From 0140effbfd1a2a6f08cdc5b98e5ad1ff21762c9f Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Wed, 30 Jul 2025 23:02:54 -0700 Subject: [PATCH 001/112] Initial commit of plugin engine-datafusion Signed-off-by: Marc Handalian (cherry picked from commit cb7591014e231f6dbdf19748404abb412a7899e3) --- plugins/engine-datafusion/.gitignore | 38 +++++ plugins/engine-datafusion/build.gradle | 111 ++++++++++++++ plugins/engine-datafusion/jni/Cargo.toml | 43 ++++++ plugins/engine-datafusion/jni/src/lib.rs | 47 ++++++ .../opensearch/datafusion/DataFusionJNI.java | 77 ++++++++++ .../datafusion/DataFusionPlugin.java | 137 ++++++++++++++++++ .../datafusion/DataFusionService.java | 109 ++++++++++++++ .../datafusion/action/DataFusionAction.java | 70 +++++++++ .../datafusion/action/NodeDataFusionInfo.java | 85 +++++++++++ .../action/NodesDataFusionInfoAction.java | 29 ++++ .../action/NodesDataFusionInfoRequest.java | 76 ++++++++++ .../action/NodesDataFusionInfoResponse.java | 98 +++++++++++++ .../TransportNodesDataFusionInfoAction.java | 115 +++++++++++++++ .../datafusion/core/SessionContext.java | 38 +++++ .../datafusion/DataFusionServiceTest.java | 60 ++++++++ 15 files changed, 1133 insertions(+) create mode 100644 plugins/engine-datafusion/.gitignore create mode 100644 plugins/engine-datafusion/build.gradle create mode 100644 plugins/engine-datafusion/jni/Cargo.toml create mode 100644 plugins/engine-datafusion/jni/src/lib.rs create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoAction.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java diff --git a/plugins/engine-datafusion/.gitignore b/plugins/engine-datafusion/.gitignore new file mode 100644 index 0000000000000..8e535981ee076 --- /dev/null +++ b/plugins/engine-datafusion/.gitignore @@ -0,0 +1,38 @@ +# Gradle +.gradle/ +build/ + +# Java +*.class +*.jar +*.war +*.ear +hs_err_pid* + +# IDE +.idea/ +*.iml +*.ipr +*.iws +.vscode/ +.settings/ +.project +.classpath + +# OS +.DS_Store +Thumbs.db + +# Rust +jni/target/ +jni/Cargo.lock + +# Native libraries +src/main/resources/native/ + +# Logs +*.log + +# Temporary files +*.tmp +*.temp diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle new file mode 100644 index 0000000000000..afd994a9eea3a --- /dev/null +++ b/plugins/engine-datafusion/build.gradle @@ -0,0 +1,111 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +apply plugin: 'java' +apply plugin: 'idea' +apply plugin: 'opensearch.internal-cluster-test' +apply plugin: 'opensearch.yaml-rest-test' +apply plugin: 'opensearch.pluginzip' + +def pluginName = 'engine-datafusion' +def pluginDescription = 'OpenSearch plugin providing access to DataFusion via JNI' +def projectPath = 'org.opensearch' +def pathToPlugin = 'datafusion.DataFusionPlugin' +def pluginClassName = 'DataFusionPlugin' + +opensearchplugin { + name = pluginName + description = pluginDescription + classname = "${projectPath}.${pathToPlugin}" + licenseFile = rootProject.file('LICENSE.txt') + noticeFile = rootProject.file('NOTICE.txt') +} + +dependencies { + implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" + implementation "org.apache.logging.log4j:log4j-core:${versions.log4j}" + testImplementation "junit:junit:${versions.junit}" + testImplementation "org.hamcrest:hamcrest:${versions.hamcrest}" + testImplementation "org.mockito:mockito-core:${versions.mockito}" +} + +// Task to build the Rust JNI library +task buildRustLibrary(type: Exec) { + description = 'Build the Rust JNI library using Cargo' + group = 'build' + + workingDir file('jni') + + // Determine the target directory and library name based on OS + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + + // Use debug build for development, release for production + def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' + def targetDir = "target/${buildType}" + + def cargoArgs = ['cargo', 'build'] + if (buildType == 'release') { + cargoArgs.add('--release') + } + + if (osName.contains('windows')) { + commandLine cargoArgs + } else { + commandLine cargoArgs + } + + // Set environment variables for cross-compilation if needed + environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath + + inputs.files fileTree('jni/src') + inputs.file 'jni/Cargo.toml' + outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_jni${libExtension}") + System.out.println("Building Rust library in ${buildType} mode"); +} + +// Task to copy the native library to resources +task copyNativeLibrary(type: Copy, dependsOn: buildRustLibrary) { + description = 'Copy the native library to Java resources' + group = 'build' + + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' + + from file("jni/target/${buildType}/${libPrefix}opensearch_datafusion_jni${libExtension}") + into file('src/main/resources/native') + + // Rename to a standard name for Java to load + rename { filename -> + "libopensearch_datafusion_jni${libExtension}" + } +} + +// Ensure native library is built before Java compilation +compileJava.dependsOn copyNativeLibrary + +// Ensure processResources depends on copyNativeLibrary +processResources.dependsOn copyNativeLibrary + +// Clean task should also clean Rust artifacts +clean { + delete file('jni/target') + delete file('src/main/resources/native') +} + +test { + // Set system property to help tests find the native library + systemProperty 'java.library.path', file('src/main/resources/native').absolutePath +} + +yamlRestTest { + systemProperty 'tests.security.manager', 'false' +} diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml new file mode 100644 index 0000000000000..e26317758fb69 --- /dev/null +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -0,0 +1,43 @@ +[package] +name = "opensearch-datafusion-jni" +version = "0.1.0" +edition = "2021" +description = "JNI bindings for DataFusion integration with OpenSearch" +license = "Apache-2.0" + +[lib] +name = "opensearch_datafusion_jni" +crate-type = ["cdylib"] + +[dependencies] +datafusion = "49.0.0" +arrow = "55.2" +arrow-json = "55.2" + +# JNI dependencies +jni = "0.21" + +# Async runtime +tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } + +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +# Error handling +anyhow = "1.0" +thiserror = "1.0" + +# Logging +log = "0.4" + +[profile.release] +lto = true +codegen-units = 1 +panic = "abort" + +[profile.dev] +opt-level = 1 # Some optimization for reasonable performance +lto = false # Disable LTO for faster builds +codegen-units = 16 # More parallel compilation +incremental = true # Enable incremental compilation diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs new file mode 100644 index 0000000000000..452a3951dc2fb --- /dev/null +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -0,0 +1,47 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +use jni::objects::JClass; +use jni::sys::{jlong, jstring}; +use jni::JNIEnv; + +use datafusion::execution::context::SessionContext; + +use datafusion::DATAFUSION_VERSION; +use datafusion::prelude::SessionConfig; + +/// Create a new DataFusion session context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_createContext( + _env: JNIEnv, + _class: JClass, +) -> jlong { + let config = SessionConfig::new().with_repartition_aggregations(true); + let context = SessionContext::new_with_config(config); + let ctx = Box::into_raw(Box::new(context)) as jlong; + ctx +} + +/// Close and cleanup a DataFusion context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_closeContext( + _env: JNIEnv, + _class: JClass, + context_id: jlong, +) { + let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; +} + +/// Get version information +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_getVersion( + env: JNIEnv, + _class: JClass, +) -> jstring { + env.new_string(DATAFUSION_VERSION).expect("Couldn't create Java string").as_raw() +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java new file mode 100644 index 0000000000000..2353fef35d7ad --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java @@ -0,0 +1,77 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + +/** + * JNI wrapper for DataFusion operations + */ +public class DataFusionJNI { + + private static boolean libraryLoaded = false; + + static { + loadNativeLibrary(); + } + + /** + * Load the native library from resources + */ + private static synchronized void loadNativeLibrary() { + if (libraryLoaded) { + return; + } + + try { + String osName = System.getProperty("os.name").toLowerCase(); + String libExtension; + String libName; + + if (osName.contains("windows")) { + libExtension = ".dll"; + libName = "libopensearch_datafusion_jni.dll"; + } else if (osName.contains("mac")) { + libExtension = ".dylib"; + libName = "libopensearch_datafusion_jni.dylib"; + } else { + libExtension = ".so"; + libName = "libopensearch_datafusion_jni.so"; + } + + // Try to load from resources first + InputStream libStream = DataFusionJNI.class.getResourceAsStream("/native/" + libName); + if (libStream != null) { + // Extract to temporary file and load + Path tempLib = Files.createTempFile("libopensearch_datafusion_jni", libExtension); + Files.copy(libStream, tempLib, StandardCopyOption.REPLACE_EXISTING); + tempLib.toFile().deleteOnExit(); + System.load(tempLib.toAbsolutePath().toString()); + libStream.close(); + } else { + // Fallback to system library path + System.loadLibrary("opensearch_datafusion_jni"); + } + + libraryLoaded = true; + } catch (IOException | UnsatisfiedLinkError e) { + throw new RuntimeException("Failed to load DataFusion JNI library", e); + } + } + + /** + * Get version information + * @return JSON string with version information + */ + public static native String getVersion(); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java new file mode 100644 index 0000000000000..5050e831ea895 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -0,0 +1,137 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.opensearch.cluster.metadata.IndexNameExpressionResolver; +import org.opensearch.cluster.node.DiscoveryNodes; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.settings.ClusterSettings; +import org.opensearch.common.settings.IndexScopedSettings; +import org.opensearch.common.settings.Settings; +import org.opensearch.common.settings.SettingsFilter; +import org.opensearch.core.common.io.stream.NamedWriteableRegistry; +import org.opensearch.core.xcontent.NamedXContentRegistry; +import org.opensearch.datafusion.action.DataFusionAction; +import org.opensearch.datafusion.action.NodesDataFusionInfoAction; +import org.opensearch.datafusion.action.TransportNodesDataFusionInfoAction; +import org.opensearch.env.Environment; +import org.opensearch.env.NodeEnvironment; +import org.opensearch.plugins.ActionPlugin; +import org.opensearch.plugins.Plugin; +import org.opensearch.repositories.RepositoriesService; +import org.opensearch.rest.RestController; +import org.opensearch.rest.RestHandler; +import org.opensearch.script.ScriptService; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.client.Client; +import org.opensearch.watcher.ResourceWatcherService; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.function.Supplier; + +/** + * Main plugin class for OpenSearch DataFusion integration. + */ +public class DataFusionPlugin extends Plugin implements ActionPlugin { + + private DataFusionService dataFusionService; + private final boolean isDataFusionEnabled; + + /** + * Constructor for DataFusionPlugin. + * @param settings The settings for the DataFusionPlugin. + */ + public DataFusionPlugin(Settings settings) { + // For now, DataFusion is always enabled if the plugin is loaded + // In the future, this could be controlled by a feature flag + this.isDataFusionEnabled = true; + } + + /** + * Creates components for the DataFusion plugin. + * @param client The client instance. + * @param clusterService The cluster service instance. + * @param threadPool The thread pool instance. + * @param resourceWatcherService The resource watcher service instance. + * @param scriptService The script service instance. + * @param xContentRegistry The named XContent registry. + * @param environment The environment instance. + * @param nodeEnvironment The node environment instance. + * @param namedWriteableRegistry The named writeable registry. + * @param indexNameExpressionResolver The index name expression resolver instance. + * @param repositoriesServiceSupplier The supplier for the repositories service. + * @return Collection of created components + */ + @Override + public Collection createComponents( + Client client, + ClusterService clusterService, + ThreadPool threadPool, + ResourceWatcherService resourceWatcherService, + ScriptService scriptService, + NamedXContentRegistry xContentRegistry, + Environment environment, + NodeEnvironment nodeEnvironment, + NamedWriteableRegistry namedWriteableRegistry, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier repositoriesServiceSupplier + ) { + if (!isDataFusionEnabled) { + return Collections.emptyList(); + } + + dataFusionService = new DataFusionService(); + return Collections.singletonList(dataFusionService); + } + + /** + * Gets the REST handlers for the DataFusion plugin. + * @param settings The settings for the plugin. + * @param restController The REST controller instance. + * @param clusterSettings The cluster settings instance. + * @param indexScopedSettings The index scoped settings instance. + * @param settingsFilter The settings filter instance. + * @param indexNameExpressionResolver The index name expression resolver instance. + * @param nodesInCluster The supplier for the discovery nodes. + * @return A list of REST handlers. + */ + @Override + public List getRestHandlers( + Settings settings, + RestController restController, + ClusterSettings clusterSettings, + IndexScopedSettings indexScopedSettings, + SettingsFilter settingsFilter, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier nodesInCluster + ) { + if (!isDataFusionEnabled) { + return Collections.emptyList(); + } + return List.of( + new DataFusionAction() + ); + } + + /** + * Gets the list of action handlers for the DataFusion plugin. + * @return A list of action handlers. + */ + @Override + public List> getActions() { + if (!isDataFusionEnabled) { + return Collections.emptyList(); + } + return List.of( + new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class) + ); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java new file mode 100644 index 0000000000000..17bbb4738db9b --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -0,0 +1,109 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.common.lifecycle.AbstractLifecycleComponent; +import org.opensearch.common.util.concurrent.ConcurrentCollections; +import org.opensearch.common.util.concurrent.ConcurrentMapLong; +import org.opensearch.datafusion.core.SessionContext; + +import java.util.concurrent.atomic.AtomicLong; + +/** + * Service for managing DataFusion contexts and operations - essentially like SearchService + */ +public class DataFusionService extends AbstractLifecycleComponent { + + private static final Logger logger = LogManager.getLogger(DataFusionService.class); + + // in memory contexts, similar to ReaderContext in SearchService, just a ptr to SessionContext for now. + private final ConcurrentMapLong contexts = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); + + private final AtomicLong idGenerator = new AtomicLong(); + + @Override + protected void doStart() { + logger.info("Starting DataFusion service"); + try { + // Test that the native library loads correctly + String version = DataFusionJNI.getVersion(); + logger.info("DataFusion service started successfully. Version info: {}", version); + } catch (Exception e) { + logger.error("Failed to start DataFusion service", e); + throw new RuntimeException("Failed to initialize DataFusion JNI", e); + } + } + + @Override + protected void doStop() { + logger.info("Stopping DataFusion service"); + // Close all named contexts + for (SessionContext ctx : contexts.values()) { + try { + ctx.close(); + } catch (Exception e) { + logger.warn("Error closing DataFusion context", e); + } + } + contexts.clear(); + logger.info("DataFusion service stopped"); + } + + @Override + protected void doClose() { + // Ensure all resources are cleaned up + doStop(); + } + + /** + * Create a new named DataFusion context + * @return the context ID + */ + long createContext() { + SessionContext ctx = new SessionContext(); + // just stores the context for now + long id = idGenerator.incrementAndGet(); + SessionContext existing = contexts.put(id, ctx); + assert existing == null; + return id; + } + + /** + * Get a context by id + * @param id the context id + * @return the context ID, or null if not found + */ + SessionContext getContext(long id) { + return contexts.get(id); + } + + /** + * Close a context + * @param contextId the context id + * @return true if the context was found and closed, false otherwise + */ + public boolean closeContext(long contextId) { + try (SessionContext ignored = contexts.remove(contextId)) { + // do nothing + } catch (Exception e) { + throw new RuntimeException(e); + } + return false; + } + + /** + * Get version information + * @return JSON version string + */ + public String getVersion() { + return DataFusionJNI.getVersion(); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java new file mode 100644 index 0000000000000..66dd36d2d0bfe --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java @@ -0,0 +1,70 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.rest.BaseRestHandler; +import org.opensearch.rest.RestRequest; +import org.opensearch.rest.action.RestToXContentListener; +import org.opensearch.transport.client.node.NodeClient; + +import java.util.List; + +import static org.opensearch.rest.RestRequest.Method.GET; + +/** + * REST handler for DataFusion information operations. + * It handles GET requests for retrieving DataFusion server information. + */ +public class DataFusionAction extends BaseRestHandler { + + /** + * Constructor for DataFusionRestHandler. + */ + public DataFusionAction() {} + + /** + * Returns the name of the action. + * @return The name of the action. + */ + @Override + public String getName() { + return "datafusion_info_action"; + } + + /** + * Returns the list of routes for the action. + * @return The list of routes for the action. + */ + @Override + public List routes() { + return List.of( + new Route(GET, "/_plugins/datafusion/info"), + new Route(GET, "/_plugins/datafusion/info/{nodeId}") + ); + } + + /** + * Prepares the request for the action. + * @param request The REST request. + * @param client The node client. + * @return The rest channel consumer. + */ + @Override + protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) { + String nodeId = request.param("nodeId"); + if (nodeId != null) { + // Query specific node + NodesDataFusionInfoRequest nodesRequest = new NodesDataFusionInfoRequest(nodeId); + return channel -> client.execute(NodesDataFusionInfoAction.INSTANCE, nodesRequest, new RestToXContentListener<>(channel)); + } else { + NodesDataFusionInfoRequest nodesRequest = new NodesDataFusionInfoRequest(); + return channel -> client.execute(NodesDataFusionInfoAction.INSTANCE, nodesRequest, new RestToXContentListener<>(channel)); + } + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java new file mode 100644 index 0000000000000..6d50e2d40af78 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java @@ -0,0 +1,85 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.action.support.nodes.BaseNodeResponse; +import org.opensearch.cluster.node.DiscoveryNode; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.xcontent.ToXContentFragment; +import org.opensearch.core.xcontent.XContentBuilder; + +import java.io.IOException; + +/** + * Information about DataFusion on a specific node + */ +public class NodeDataFusionInfo extends BaseNodeResponse implements ToXContentFragment { + + private final String dataFusionVersion; + + /** + * Constructor for NodeDataFusionInfo. + * @param node The discovery node. + * @param dataFusionVersion The DataFusion version. + */ + public NodeDataFusionInfo( + DiscoveryNode node, + String dataFusionVersion + ) { + super(node); + this.dataFusionVersion = dataFusionVersion; + } + + /** + * Constructor for NodeDataFusionInfo from stream input. + * @param in The stream input. + * @throws IOException If an I/O error occurs. + */ + public NodeDataFusionInfo(StreamInput in) throws IOException { + super(in); + this.dataFusionVersion = in.readString(); + } + + /** + * Writes the node info to the stream output. + * @param out The stream output. + * @throws IOException If an I/O error occurs. + */ + @Override + public void writeTo(StreamOutput out) throws IOException { + super.writeTo(out); + out.writeString(dataFusionVersion); + } + + /** + * Converts the node info to XContent. + * @param builder The XContent builder. + * @param params The parameters. + * @return The XContent builder. + * @throws IOException If an I/O error occurs. + */ + @Override + public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + builder.startObject(); + builder.startObject("data_fusion_info"); + builder.field("datafusion_version", dataFusionVersion); + builder.endObject(); + builder.endObject(); + return builder; + } + + /** + * Gets the DataFusion version. + * @return The DataFusion version. + */ + public String getDataFusionVersion() { + return dataFusionVersion; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoAction.java new file mode 100644 index 0000000000000..198c7973e6a9c --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoAction.java @@ -0,0 +1,29 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.action.ActionType; + +/** + * Action to retrieve DataFusion info from nodes + */ +public class NodesDataFusionInfoAction extends ActionType { + /** + * Singleton instance of NodesDataFusionInfoAction. + */ + public static final NodesDataFusionInfoAction INSTANCE = new NodesDataFusionInfoAction(); + /** + * Name of this action. + */ + public static final String NAME = "cluster:admin/datafusion/info"; + + NodesDataFusionInfoAction() { + super(NAME, NodesDataFusionInfoResponse::new); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java new file mode 100644 index 0000000000000..61ce2444722ee --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java @@ -0,0 +1,76 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.action.support.nodes.BaseNodesRequest; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; + +import java.io.IOException; + +/** + * Request for retrieving DataFusion information from nodes + */ +public class NodesDataFusionInfoRequest extends BaseNodesRequest { + + /** + * Default constructor for NodesDataFusionInfoRequest. + */ + public NodesDataFusionInfoRequest() { + super((String[]) null); + } + + /** + * Constructor for NodesDataFusionInfoRequest with specific node IDs. + * @param nodeIds The node IDs to query. + */ + public NodesDataFusionInfoRequest(String... nodeIds) { + super(nodeIds); + } + + /** + * Constructor for NodesDataFusionInfoRequest from stream input. + * @param in The stream input. + * @throws IOException If an I/O error occurs. + */ + public NodesDataFusionInfoRequest(StreamInput in) throws IOException { + super(in); + } + + /** + * Writes the request to the stream output. + * @param out The stream output. + * @throws IOException If an I/O error occurs. + */ + @Override + public void writeTo(StreamOutput out) throws IOException { + super.writeTo(out); + } + + + /** + * Node-level request for DataFusion information + */ + public static class NodeDataFusionInfoRequest extends org.opensearch.transport.TransportRequest { + + /** + * Default constructor for NodeDataFusionInfoRequest. + */ + public NodeDataFusionInfoRequest() {} + + /** + * Constructor for NodeDataFusionInfoRequest from stream input. + * @param in The stream input. + * @throws IOException If an I/O error occurs. + */ + public NodeDataFusionInfoRequest(StreamInput in) throws IOException { + super(in); + } + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java new file mode 100644 index 0000000000000..5c14455da1622 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java @@ -0,0 +1,98 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.action.FailedNodeException; +import org.opensearch.action.support.nodes.BaseNodesResponse; +import org.opensearch.cluster.ClusterName; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.xcontent.ToXContentFragment; +import org.opensearch.core.xcontent.ToXContentObject; +import org.opensearch.core.xcontent.XContentBuilder; + +import java.io.IOException; +import java.util.List; + +/** + * Response containing DataFusion information from multiple nodes + */ +public class NodesDataFusionInfoResponse extends BaseNodesResponse implements ToXContentObject { + + /** + * Constructor for NodesDataFusionInfoResponse. + * @param clusterName The cluster name. + * @param nodes The list of node DataFusion info. + * @param failures The list of failed node exceptions. + */ + public NodesDataFusionInfoResponse( + ClusterName clusterName, + List nodes, + List failures + ) { + super(clusterName, nodes, failures); + } + + @Override + protected List readNodesFrom(StreamInput in) throws IOException { + return in.readList(NodeDataFusionInfo::new); + } + + /** + * Constructor for NodesDataFusionInfoResponse from stream input. + * @param in The stream input. + * @throws IOException If an I/O error occurs. + */ + public NodesDataFusionInfoResponse(StreamInput in) throws IOException { + super(in); + } + + /** + * Writes the node response to stream output. + * @param out The stream output. + * @throws IOException If an I/O error occurs. + */ + @Override + protected void writeNodesTo(StreamOutput out, List nodes) throws IOException { + out.writeList(nodes); + } + + /** + * Converts the response to XContent. + * @param builder The XContent builder. + * @param params The parameters. + * @return The XContent builder. + * @throws IOException If an I/O error occurs. + */ + @Override + public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + builder.startObject(); + builder.startObject("nodes"); + for (NodeDataFusionInfo nodeInfo : getNodes()) { + builder.field(nodeInfo.getNode().getId()); +// builder.field("name", nodeInfo.getNode().getName()); +// builder.field("transport_address", nodeInfo.getNode().getAddress().toString()); + nodeInfo.toXContent(builder, params); + } + builder.endObject(); + + if (!failures().isEmpty()) { + builder.startArray("failures"); + for (FailedNodeException failure : failures()) { + builder.startObject(); + builder.field("node_id", failure.nodeId()); + builder.field("reason", failure.getMessage()); + builder.endObject(); + } + builder.endArray(); + } + builder.endObject(); + return builder; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java new file mode 100644 index 0000000000000..1ba5fd9af3210 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java @@ -0,0 +1,115 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.action; + +import org.opensearch.action.FailedNodeException; +import org.opensearch.action.support.ActionFilters; +import org.opensearch.action.support.nodes.TransportNodesAction; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.inject.Inject; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.datafusion.DataFusionService; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.TransportService; + +import java.io.IOException; +import java.util.List; + +/** + * Transport action for retrieving DataFusion information from nodes + */ +public class TransportNodesDataFusionInfoAction extends TransportNodesAction< + NodesDataFusionInfoRequest, + NodesDataFusionInfoResponse, + NodesDataFusionInfoRequest.NodeDataFusionInfoRequest, + NodeDataFusionInfo> { + + private final DataFusionService dataFusionService; + + /** + * Constructor for TransportNodesDataFusionInfoAction. + * @param threadPool The thread pool. + * @param clusterService The cluster service. + * @param transportService The transport service. + * @param actionFilters The action filters. + * @param dataFusionService The DataFusion service. + */ + @Inject + public TransportNodesDataFusionInfoAction( + ThreadPool threadPool, + ClusterService clusterService, + TransportService transportService, + ActionFilters actionFilters, + DataFusionService dataFusionService + ) { + super( + NodesDataFusionInfoAction.NAME, + threadPool, + clusterService, + transportService, + actionFilters, + NodesDataFusionInfoRequest::new, + NodesDataFusionInfoRequest.NodeDataFusionInfoRequest::new, + ThreadPool.Names.MANAGEMENT, + NodeDataFusionInfo.class + ); + this.dataFusionService = dataFusionService; + } + + /** + * Creates a new nodes response. + * @param request The nodes request. + * @param responses The list of node responses. + * @param failures The list of failed node exceptions. + * @return The nodes response. + */ + @Override + protected NodesDataFusionInfoResponse newResponse( + NodesDataFusionInfoRequest request, + List responses, + List failures + ) { + return new NodesDataFusionInfoResponse(clusterService.getClusterName(), responses, failures); + } + + /** + * Creates a new node request. + * @param request The nodes request. + * @return The node request. + */ + @Override + protected NodesDataFusionInfoRequest.NodeDataFusionInfoRequest newNodeRequest(NodesDataFusionInfoRequest request) { + return new NodesDataFusionInfoRequest.NodeDataFusionInfoRequest(); + } + + @Override + protected NodeDataFusionInfo newNodeResponse(StreamInput in) throws IOException { + return new NodeDataFusionInfo(in); + } + + /** + * Handles the node request and returns the node response. + * @param request The node request. + * @return The node response. + */ + @Override + protected NodeDataFusionInfo nodeOperation(NodesDataFusionInfoRequest.NodeDataFusionInfoRequest request) { + try { + return new NodeDataFusionInfo( + clusterService.localNode(), + dataFusionService.getVersion() + ); + } catch (Exception e) { + return new NodeDataFusionInfo( + clusterService.localNode(), + "unknown" + ); + } + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java new file mode 100644 index 0000000000000..58a750351fe3c --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java @@ -0,0 +1,38 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.core; +/** + * Session context for datafusion + */ +public class SessionContext implements AutoCloseable { + + // ptr to context in df + private final long ptr; + + /** + * Create a new DataFusion session context + * @return context ID for subsequent operations + */ + static native long createContext(); + + /** + * Close and cleanup a DataFusion context + * @param contextId the context ID to close + */ + public static native void closeContext(long contextId); + + public SessionContext() { + this.ptr = createContext(); + } + + @Override + public void close() throws Exception { + closeContext(this.ptr); + } +} diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java new file mode 100644 index 0000000000000..af39b70fcab13 --- /dev/null +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.junit.Before; +import org.junit.Test; +import org.junit.Assume; +import org.opensearch.datafusion.core.SessionContext; + +import static org.junit.Assert.*; + +/** + * Unit tests for DataFusionService + * + * Note: These tests require the native library to be available. + * They are disabled by default and can be enabled by setting the system property: + * -Dtest.native.enabled=true + */ +public class DataFusionServiceTest { + + private DataFusionService service; + + @Before + public void setUp() { + service = new DataFusionService(); + service.doStart(); + } + + @Test + public void testGetVersion() { + String version = service.getVersion(); + assertNotNull(version); + assertTrue(version.contains("datafusion_version")); + assertTrue(version.contains("arrow_version")); + } + + @Test + public void testCreateAndCloseContext() { + // Create context + long contextId = service.createContext(); + assertTrue(contextId > 0); + + // Verify context exists + SessionContext context = service.getContext(contextId); + assertNotNull(context); + + // Close context + boolean closed = service.closeContext(contextId); + assertTrue(closed); + + // Verify context is gone + assertNull(service.getContext(contextId)); + } +} From b7c5cfb0e1820ddfe5569657f1682b0f95de6754 Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Wed, 24 Sep 2025 11:08:05 -0700 Subject: [PATCH 002/112] Fixed the build failures, added javadocs (#19398) Signed-off-by: Vinay Krishna Pudyodu (cherry picked from commit eb0190516593fcf4cd1966271095027ac2d01973) --- plugins/engine-datafusion/build.gradle | 12 ++++++++++++ .../org/opensearch/datafusion/DataFusionJNI.java | 7 +++++++ .../org/opensearch/datafusion/DataFusionService.java | 7 +++++++ .../action/NodesDataFusionInfoResponse.java | 1 + .../opensearch/datafusion/core/SessionContext.java | 3 +++ 5 files changed, 30 insertions(+) diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index afd994a9eea3a..5c393b97d0c75 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -95,6 +95,9 @@ compileJava.dependsOn copyNativeLibrary // Ensure processResources depends on copyNativeLibrary processResources.dependsOn copyNativeLibrary +// Ensure sourcesJar depends on copyNativeLibrary since it includes resources +sourcesJar.dependsOn copyNativeLibrary + // Clean task should also clean Rust artifacts clean { delete file('jni/target') @@ -109,3 +112,12 @@ test { yamlRestTest { systemProperty 'tests.security.manager', 'false' } + +// Configure Javadoc to skip package documentation requirements ie package-info.java +missingJavadoc { + javadocMissingIgnore = [ + 'org.opensearch.datafusion', + 'org.opensearch.datafusion.action', + 'org.opensearch.datafusion.core' + ] +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java index 2353fef35d7ad..b18c36c7d7fb5 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java @@ -19,6 +19,13 @@ */ public class DataFusionJNI { + /** + * Private constructor to prevent instantiation. + */ + private DataFusionJNI() { + // Utility class + } + private static boolean libraryLoaded = false; static { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 17bbb4738db9b..9e12cb647fbff 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -22,6 +22,13 @@ */ public class DataFusionService extends AbstractLifecycleComponent { + /** + * Creates a new DataFusionService instance. + */ + public DataFusionService() { + super(); + } + private static final Logger logger = LogManager.getLogger(DataFusionService.class); // in memory contexts, similar to ReaderContext in SearchService, just a ptr to SessionContext for now. diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java index 5c14455da1622..59b21388c1720 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java @@ -56,6 +56,7 @@ public NodesDataFusionInfoResponse(StreamInput in) throws IOException { /** * Writes the node response to stream output. * @param out The stream output. + * @param nodes The list of nodes to write. * @throws IOException If an I/O error occurs. */ @Override diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java index 58a750351fe3c..4bf351f33cba5 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java @@ -27,6 +27,9 @@ public class SessionContext implements AutoCloseable { */ public static native void closeContext(long contextId); + /** + * Creates a new SessionContext with a native DataFusion context. + */ public SessionContext() { this.ptr = createContext(); } From e7000563c7347c643f3178a7cfa48988fbbac034 Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Wed, 24 Sep 2025 12:42:42 -0700 Subject: [PATCH 003/112] Add JNI layer and rust methods to execute substrait plan (#19399) Signed-off-by: Vinay Krishna Pudyodu (cherry picked from commit c9d5b171a3d01500ac6638717361e2ff5fd40223) --- plugins/engine-datafusion/build.gradle | 19 ++ plugins/engine-datafusion/jni/Cargo.toml | 8 +- plugins/engine-datafusion/jni/src/lib.rs | 251 +++++++++++++++++- plugins/engine-datafusion/jni/src/util.rs | 64 +++++ .../datafusion/DataFusionPlugin.java | 69 +++-- .../datafusion/DataFusionService.java | 78 ++++-- .../datafusion/DatafusionEngine.java | 84 ++++++ .../org/opensearch/datafusion/ErrorUtil.java | 20 ++ .../datafusion/ObjectResultCallback.java | 13 + .../datafusion/RecordBatchStream.java | 146 ++++++++++ .../datafusion/core/SessionContext.java | 70 ++++- .../index/engine/SearchExecutionEngine.java | 27 ++ .../plugins/SearchEnginePlugin.java | 30 +++ .../aggregations/SearchResultsCollector.java | 22 ++ 14 files changed, 836 insertions(+), 65 deletions(-) create mode 100644 plugins/engine-datafusion/jni/src/util.rs create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java create mode 100644 server/src/main/java/org/opensearch/index/engine/SearchExecutionEngine.java create mode 100644 server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java create mode 100644 server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index 5c393b97d0c75..69546356691d0 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -29,6 +29,25 @@ opensearchplugin { dependencies { implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" implementation "org.apache.logging.log4j:log4j-core:${versions.log4j}" + + // Bundle Jackson in the plugin JAR using 'api' like other OpenSearch plugins + api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" + api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}" + api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}" + + // Apache Arrow dependencies for memory management + implementation "org.apache.arrow:arrow-memory-core:17.0.0" + implementation "org.apache.arrow:arrow-memory-unsafe:17.0.0" + implementation "org.apache.arrow:arrow-vector:17.0.0" + implementation "org.apache.arrow:arrow-c-data:17.0.0" + implementation "org.apache.arrow:arrow-format:17.0.0" + // SLF4J API for Arrow logging compatibility + implementation "org.slf4j:slf4j-api:1.7.36" + // CheckerFramework annotations required by Arrow 17.0.0 + implementation "org.checkerframework:checker-qual:3.42.0" + // FlatBuffers dependency required by Arrow 17.0.0 + implementation "com.google.flatbuffers:flatbuffers-java:23.5.26" + testImplementation "junit:junit:${versions.junit}" testImplementation "org.hamcrest:hamcrest:${versions.hamcrest}" testImplementation "org.mockito:mockito-core:${versions.mockito}" diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index e26317758fb69..77e76633efe92 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -11,14 +11,20 @@ crate-type = ["cdylib"] [dependencies] datafusion = "49.0.0" -arrow = "55.2" +arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } arrow-json = "55.2" # JNI dependencies jni = "0.21" +# Substrait support +datafusion-substrait = "49.0.0" +prost = "0.13" + + # Async runtime tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } +futures = "0.3" # Serialization serde = { version = "1.0", features = ["derive"] } diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 452a3951dc2fb..20ddebf9c380e 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -5,19 +5,30 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ +mod util; -use jni::objects::JClass; -use jni::sys::{jlong, jstring}; +use arrow::ffi::{FFI_ArrowArray, FFI_ArrowSchema}; +use datafusion::physical_plan::SendableRecordBatchStream; +use jni::objects::{JByteArray, JClass, JObject, JString}; +use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; use datafusion::execution::context::SessionContext; - +use datafusion::prelude::*; use datafusion::DATAFUSION_VERSION; -use datafusion::prelude::SessionConfig; -/// Create a new DataFusion session context +use datafusion_substrait::logical_plan::consumer::from_substrait_plan; +use prost::Message; + +use crate::util::{set_object_result_error, set_object_result_ok}; +use arrow::array::{Array, StructArray}; +use futures::stream::StreamExt; +use futures::TryStreamExt; +use std::ptr::addr_of_mut; +use tokio::runtime::Runtime; + #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_createContext( +pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_createContext( _env: JNIEnv, _class: JClass, ) -> jlong { @@ -27,14 +38,232 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_createContex ctx } +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_createRuntime( + _env: JNIEnv, + _class: JClass, +) -> jlong { + if let Ok(runtime) = Runtime::new() { + Box::into_raw(Box::new(runtime)) as jlong + } else { + // TODO error handling + -1 + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_registerParquetTable( + mut env: JNIEnv, + _class: JClass, + context_id: jlong, + runtime_id: jlong, + parquet_file_path: JString, + table_name: JString +) -> jlong { + if context_id == 0 { + let _ = env.throw_new("java/lang/RuntimeException", "Invalid context ID"); + return 0; + } + + if runtime_id == 0 { + let _ = env.throw_new("java/lang/RuntimeException", "Invalid runtime ID"); + return 0; + } + + let parquet_path: String = match env.get_string(&parquet_file_path) { + Ok(path) => path.into(), + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", + &format!("Failed to get parquet file path: {}", e)); + return 0; + } + }; + + let table_name_str: String = match env.get_string(&table_name) { + Ok(name) => name.into(), + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", + &format!("Failed to get table name: {}", e)); + return 0; + } + }; + + let context = unsafe { &*(context_id as *const SessionContext) }; + let runtime = unsafe { &*(runtime_id as *const Runtime) }; + + match runtime.block_on(async { + if std::path::Path::new(&parquet_path).exists() { + context.register_parquet(&table_name_str, &parquet_path, ParquetReadOptions::default()).await + } else { + Err(datafusion::error::DataFusionError::Execution( + format!("Parquet file not found: {}", parquet_path) + )) + } + }) { + Ok(_) => 1, // Success + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", + &format!("Failed to register parquet table: {}", e)); + 0 // Failure + } + } +} + /// Close and cleanup a DataFusion context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_closeContext( +pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_closeContext( _env: JNIEnv, _class: JClass, context_id: jlong, ) { - let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; + if context_id != 0 { + let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_closeRuntime( + _env: JNIEnv, + _class: JClass, + pointer: jlong, +) { + if pointer != 0 { + let _ = unsafe { Box::from_raw(pointer as *mut Runtime) }; + } +} + +/// Execute a Substrait query plan and return SendableRecordBatchStream as jlong +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionService_nativeExecuteSubstraitQueryStream( + env: JNIEnv, + _class: JClass, + runtime_id: jlong, + context_id: jlong, + query_plan_bytes: jbyteArray, +) -> jlong { + println!("DataFusionService_nativeExecuteSubstraitQueryStream: Starting execution"); + println!("runtime_id: {}, context_id: {}", runtime_id, context_id); + + let runtime = unsafe { &*(runtime_id as *const Runtime) }; + let context = unsafe { &*(context_id as *const SessionContext) }; + println!("Retrieved runtime and context pointers successfully"); + + println!("query_plan_bytes raw pointer: {:?}", query_plan_bytes); + + if query_plan_bytes.is_null() { + println!("ERROR: query_plan_bytes is null!"); + return 0; + } + + let byte_array = unsafe { JByteArray::from_raw(query_plan_bytes) }; + println!("Created JByteArray from raw pointer"); + + let plan_bytes = match env.convert_byte_array(byte_array) { + Ok(bytes) => { + println!("Successfully converted byte array, size: {} bytes", bytes.len()); + bytes + }, + Err(e) => { + println!("Failed to convert byte array: {:?}", e); + return 0; // Return 0 on error + } + }; + + println!("Starting async block execution"); + runtime.block_on(async { + println!("Decoding Substrait plan..."); + let substrait_plan = datafusion_substrait::substrait::proto::Plan::decode(&plan_bytes[..]).unwrap(); + println!("Substrait plan decoded successfully, relations: {}", substrait_plan.relations.len()); + + println!("Converting Substrait plan to DataFusion logical plan..."); + let logical_plan = from_substrait_plan(&context.state(), &substrait_plan).await.unwrap(); + println!("Logical plan created successfully"); + + println!("Executing logical plan..."); + let dataframe = context.execute_logical_plan(logical_plan).await.unwrap(); + println!("DataFrame created successfully"); + + println!("Getting execution stream..."); + let stream = dataframe.execute_stream().await.unwrap(); + println!("Stream created successfully"); + + let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; + println!("Stream pointer created: {}", stream_ptr); + stream_ptr + }) +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( + mut env: JNIEnv, + _class: JClass, + runtime: jlong, + stream: jlong, + callback: JObject, +) { + let runtime = unsafe { &mut *(runtime as *mut Runtime) }; + let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; + runtime.block_on(async { + let next = stream.try_next().await; + match next { + Ok(Some(batch)) => { + // Convert to struct array for compatibility with FFI + let struct_array: StructArray = batch.into(); + let array_data = struct_array.into_data(); + let mut ffi_array = FFI_ArrowArray::new(&array_data); + // ffi_array must remain alive until after the callback is called + set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_array)); + } + Ok(None) => { + set_object_result_ok(&mut env, callback, 0 as *mut FFI_ArrowSchema); + } + Err(err) => { + set_object_result_error(&mut env, callback, &err); + } + } + }); +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchema( + mut env: JNIEnv, + _class: JClass, + stream: jlong, + callback: JObject, +) { + let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; + let schema = stream.schema(); + // Print field details for debugging + for (i, field) in schema.fields().iter().enumerate() { + println!(" Field {}: name='{}', type={:?}, nullable={}", + i, field.name(), field.data_type(), field.is_nullable()); + } + let ffi_schema = FFI_ArrowSchema::try_from(&*schema); + match ffi_schema { + Ok(mut ffi_schema) => { + println!("Created FFI schema successfully, about to call Java..."); + // ffi_schema must remain alive until after the callback is called + set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_schema)); + println!("Returned from Java callback"); + } + Err(err) => { + set_object_result_error(&mut env, callback, &err); + } + } + println!("Rust function ending normally"); +} + + + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( + _env: JNIEnv, + _class: JClass, + pointer: jlong, +) { + if pointer != 0 { + let _ = unsafe { Box::from_raw(pointer as *mut SendableRecordBatchStream) }; + } } /// Get version information @@ -43,5 +272,9 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_getVersion( env: JNIEnv, _class: JClass, ) -> jstring { - env.new_string(DATAFUSION_VERSION).expect("Couldn't create Java string").as_raw() + let version_info = format!( + "{{\"datafusion_version\": \"{}\", \"substrait_version\": \"0.50.0\"}}", + DATAFUSION_VERSION + ); + env.new_string(version_info).expect("Couldn't create Java string").as_raw() } diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs new file mode 100644 index 0000000000000..e356df7032297 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -0,0 +1,64 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +use std::error::Error; + +use jni::objects::JObject; +use jni::sys::jlong; +use jni::JNIEnv; + +/// Set error message from a result using a Consumer Java callback +pub fn set_object_result_ok(env: &mut JNIEnv, callback: JObject, address: *mut T) { + let err_message = env + .new_string("") + .expect("Couldn't create empty java string"); + + println!("About to call Java callback..."); + + let result = env.call_method( + callback, + "callback", + "(Ljava/lang/String;J)V", + &[(&err_message).into(), (address as jlong).into()], + ); + + match result { + Ok(_) => { + println!("Java callback completed successfully - no Rust cleanup issue"); + } + Err(jni_error) => { + println!("Java callback failed with JNI error: {:?}", jni_error); + + // Check what kind of Java exception occurred + if let Ok(true) = env.exception_check() { + println!("There IS a pending Java exception:"); + let _ = env.exception_describe(); // This prints the Java stack trace + let _ = env.exception_clear(); + } else { + println!("No Java exception - this would be a pure JNI issue"); + } + // Don't panic + return; + } + } +} + +/// Set error result by calling an ObjectResultCallback +pub fn set_object_result_error(env: &mut JNIEnv, callback: JObject, error: &T) { + let err_message = env + .new_string(error.to_string()) + .expect("Couldn't create java string for error message"); + let address = -1 as jlong; + env.call_method( + callback, + "callback", + "(Ljava/lang/String;J)V", + &[(&err_message).into(), address.into()], + ) + .expect("Failed to call object result callback with error"); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 5050e831ea895..3a1597c23cdb0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -11,6 +11,8 @@ import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.node.DiscoveryNodes; import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.inject.AbstractModule; +import org.opensearch.common.inject.Module; import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.IndexScopedSettings; import org.opensearch.common.settings.Settings; @@ -22,8 +24,10 @@ import org.opensearch.datafusion.action.TransportNodesDataFusionInfoAction; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; +import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.plugins.ActionPlugin; import org.opensearch.plugins.Plugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.rest.RestController; import org.opensearch.rest.RestHandler; @@ -32,6 +36,7 @@ import org.opensearch.transport.client.Client; import org.opensearch.watcher.ResourceWatcherService; +import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -40,7 +45,7 @@ /** * Main plugin class for OpenSearch DataFusion integration. */ -public class DataFusionPlugin extends Plugin implements ActionPlugin { +public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin { private DataFusionService dataFusionService; private final boolean isDataFusionEnabled; @@ -50,9 +55,18 @@ public class DataFusionPlugin extends Plugin implements ActionPlugin { * @param settings The settings for the DataFusionPlugin. */ public DataFusionPlugin(Settings settings) { - // For now, DataFusion is always enabled if the plugin is loaded - // In the future, this could be controlled by a feature flag - this.isDataFusionEnabled = true; + // DataFusion can be disabled for integration tests or if native library is not available + this.isDataFusionEnabled = Boolean.parseBoolean(System.getProperty("opensearch.experimental.feature.datafusion.enabled", "true")); + } + + @Override + public Collection createGuiceModules() { + return Collections.singletonList(new AbstractModule() { + @Override + protected void configure() { + bind(SearchEnginePlugin.class).toInstance(DataFusionPlugin.this); + } + }); } /** @@ -72,23 +86,23 @@ public DataFusionPlugin(Settings settings) { */ @Override public Collection createComponents( - Client client, - ClusterService clusterService, - ThreadPool threadPool, - ResourceWatcherService resourceWatcherService, - ScriptService scriptService, - NamedXContentRegistry xContentRegistry, - Environment environment, - NodeEnvironment nodeEnvironment, - NamedWriteableRegistry namedWriteableRegistry, - IndexNameExpressionResolver indexNameExpressionResolver, - Supplier repositoriesServiceSupplier + Client client, + ClusterService clusterService, + ThreadPool threadPool, + ResourceWatcherService resourceWatcherService, + ScriptService scriptService, + NamedXContentRegistry xContentRegistry, + Environment environment, + NodeEnvironment nodeEnvironment, + NamedWriteableRegistry namedWriteableRegistry, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier repositoriesServiceSupplier ) { if (!isDataFusionEnabled) { return Collections.emptyList(); } - dataFusionService = new DataFusionService(); + dataFusionService = new DataFusionService(environment); return Collections.singletonList(dataFusionService); } @@ -105,20 +119,18 @@ public Collection createComponents( */ @Override public List getRestHandlers( - Settings settings, - RestController restController, - ClusterSettings clusterSettings, - IndexScopedSettings indexScopedSettings, - SettingsFilter settingsFilter, - IndexNameExpressionResolver indexNameExpressionResolver, - Supplier nodesInCluster + Settings settings, + RestController restController, + ClusterSettings clusterSettings, + IndexScopedSettings indexScopedSettings, + SettingsFilter settingsFilter, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier nodesInCluster ) { if (!isDataFusionEnabled) { return Collections.emptyList(); } - return List.of( - new DataFusionAction() - ); + return List.of(new DataFusionAction()); } /** @@ -134,4 +146,9 @@ public List getRestHandlers( new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class) ); } + + @Override + public SearchExecutionEngine createEngine() throws IOException { + return new DatafusionEngine(dataFusionService); + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 9e12cb647fbff..700e70aa81a32 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -14,19 +14,26 @@ import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.SessionContext; +import org.opensearch.env.Environment; -import java.util.concurrent.atomic.AtomicLong; +import java.nio.file.Files; +import java.nio.file.Path; /** * Service for managing DataFusion contexts and operations - essentially like SearchService */ public class DataFusionService extends AbstractLifecycleComponent { + private final Environment environment; + private SessionContext defaultSessionContext; + /** - * Creates a new DataFusionService instance. + * Constructor for DataFusionService. + * @param environment The OpenSearch environment containing path configurations and settings */ - public DataFusionService() { + public DataFusionService(Environment environment) { super(); + this.environment = environment; } private static final Logger logger = LogManager.getLogger(DataFusionService.class); @@ -34,8 +41,6 @@ public DataFusionService() { // in memory contexts, similar to ReaderContext in SearchService, just a ptr to SessionContext for now. private final ConcurrentMapLong contexts = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); - private final AtomicLong idGenerator = new AtomicLong(); - @Override protected void doStart() { logger.info("Starting DataFusion service"); @@ -43,6 +48,29 @@ protected void doStart() { // Test that the native library loads correctly String version = DataFusionJNI.getVersion(); logger.info("DataFusion service started successfully. Version info: {}", version); + + // Create a default context with parquet file path from path.repo setting + String repoPath = environment.settings().get("path.data") + .trim().replaceAll("^\\[|]$", ""); + if (repoPath.isEmpty()) { + throw new RuntimeException("path.repo setting is required for DataFusion service. " + + "Please configure it using -PrepoPath when starting OpenSearch."); + } + + logger.info("DataFusion service started successfully. Repo path: {}", repoPath); + + Path dataPath = Path.of(repoPath); + Path parquetFile = dataPath.resolve("hits_data.parquet"); + + // Check if the parquet file exists + if (!Files.exists(parquetFile)) { + throw new RuntimeException("Parquet file not found at: " + parquetFile + + ". Please place your parquet file in the OpenSearch data directory."); + } + + defaultSessionContext = new SessionContext(parquetFile.toString(), "hits"); + contexts.put(defaultSessionContext.getContext(), defaultSessionContext); + logger.info("Created default DataFusion context with ID: {}", defaultSessionContext.getContext()); } catch (Exception e) { logger.error("Failed to start DataFusion service", e); throw new RuntimeException("Failed to initialize DataFusion JNI", e); @@ -70,18 +98,6 @@ protected void doClose() { doStop(); } - /** - * Create a new named DataFusion context - * @return the context ID - */ - long createContext() { - SessionContext ctx = new SessionContext(); - // just stores the context for now - long id = idGenerator.incrementAndGet(); - SessionContext existing = contexts.put(id, ctx); - assert existing == null; - return id; - } /** * Get a context by id @@ -92,6 +108,14 @@ SessionContext getContext(long id) { return contexts.get(id); } + /** + * Get default context + * @return default context + */ + SessionContext getDefaultContext() { + return defaultSessionContext; + } + /** * Close a context * @param contextId the context id @@ -113,4 +137,24 @@ public boolean closeContext(long contextId) { public String getVersion() { return DataFusionJNI.getVersion(); } + + /** + * Execute a Substrait query plan and return a stream pointer for streaming results. + * Use this for large result sets to avoid memory issues. + * + * @param queryPlanIR the Substrait query plan as bytes + * @return stream pointer (0 if error occurred) + */ + public long executeSubstraitQueryStream(byte[] queryPlanIR) { + return nativeExecuteSubstraitQueryStream(defaultSessionContext.getRuntime(), defaultSessionContext.getContext(), queryPlanIR); + } + + /** + * Executes a Substrait query plan and returns a stream pointer + * @param runTime the DataFusion runtime ID + * @param contextId the DataFusion context ID + * @param queryPlanIR the Substrait query plan bytes + * @return pointer to the result stream + */ + public static native long nativeExecuteSubstraitQueryStream(long runTime, long contextId, byte[] queryPlanIR); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java new file mode 100644 index 0000000000000..de4ace8b89e09 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -0,0 +1,84 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.datafusion.core.SessionContext; +import org.opensearch.index.engine.SearchExecutionEngine; +import org.opensearch.search.aggregations.SearchResultsCollector; + +import java.util.HashMap; +import java.util.Map; + +/** + * DataFusion search execution engine implementation that executes Substrait query plans + * using the DataFusion query engine for OpenSearch. + */ +public class DatafusionEngine implements SearchExecutionEngine { + + private static final Logger logger = LogManager.getLogger(DatafusionEngine.class); + private final DataFusionService dataFusionService; + + /** + * Constructs a new DatafusionEngine with the specified DataFusion service. + * + * @param dataFusionService the DataFusion service used for query execution + */ + public DatafusionEngine(DataFusionService dataFusionService) { + this.dataFusionService = dataFusionService; + } + + @Override + public Map execute(byte[] queryPlanIR) { + Map finalRes = new HashMap<>(); + try { + SessionContext defaultSessionContext = dataFusionService.getDefaultContext(); + long streamPointer = dataFusionService.executeSubstraitQueryStream(queryPlanIR); + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(defaultSessionContext, streamPointer, allocator); + + // We can have some collectors passed like this which can collect the results and convert to InternalAggregation + // Is the possible? need to check + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for(Field field : root.getSchema().getFields()) { + String filedName = field.getName(); + FieldVector fieldVector = root.getVector(filedName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + for (int i = 0; i < fieldVector.getValueCount(); i++) { + fieldValues[i] = fieldVector.getObject(i); + } + finalRes.put(filedName, fieldValues); + } + } + }; + + while (stream.loadNextBatch().join()) { + collector.collect(stream); + } + + System.out.println("Final Results:"); + for (Map.Entry entry : finalRes.entrySet()) { + System.out.println(entry.getKey() + ": " + java.util.Arrays.toString(entry.getValue())); + } + + + } catch (Exception exception) { + logger.error("Failed to execute Substrait query plan", exception); + } + return finalRes; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java new file mode 100644 index 0000000000000..6d0486d213a55 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java @@ -0,0 +1,20 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +/** + * Utility class for error handling in DataFusion operations. + */ +public class ErrorUtil { + private ErrorUtil() {} + + static boolean containsError(String errString) { + return errString != null && !errString.isEmpty(); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java new file mode 100644 index 0000000000000..d6de1fdace339 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +interface ObjectResultCallback { + void callback(String errMessage, long value); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java new file mode 100644 index 0000000000000..3cdb585b62c76 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -0,0 +1,146 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.CDataDictionaryProvider; +import org.apache.arrow.c.Data; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.datafusion.core.SessionContext; + +import java.util.concurrent.CompletableFuture; + +import static org.apache.arrow.c.Data.importField; + +/** + * Represents a stream of Apache Arrow record batches from DataFusion query execution. + * Provides a Java interface to iterate through query results in a memory-efficient way. + */ +public class RecordBatchStream { + + private final SessionContext context; + private final long streamPointer; + private final BufferAllocator allocator; + private final CDataDictionaryProvider dictionaryProvider; + private boolean initialized = false; + private VectorSchemaRoot vectorSchemaRoot = null; + + /** + * Creates a new RecordBatchStream for the given stream pointer + * @param ctx the session context + * @param streamId pointer to the native stream + * @param allocator memory allocator for Arrow vectors + */ + public RecordBatchStream(SessionContext ctx, long streamId, BufferAllocator allocator) { + this.context = ctx; + this.streamPointer = streamId; + this.allocator = allocator; + this.dictionaryProvider = new CDataDictionaryProvider(); + } + + /** + * Gets the Arrow VectorSchemaRoot for accessing the current batch data + * @return the VectorSchemaRoot containing the current batch + */ + public VectorSchemaRoot getVectorSchemaRoot() { + ensureInitialized(); + return vectorSchemaRoot; + } + + private Schema getSchema() { + // Native method is not async, but use a future to store the result for convenience + CompletableFuture result = new CompletableFuture<>(); + getSchema( + streamPointer, + (errString, arrowSchemaAddress) -> { + if (ErrorUtil.containsError(errString)) { + result.completeExceptionally(new RuntimeException(errString)); + } else { + try { + ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); + Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); + result.complete(schema); + } catch (Exception e) { + result.completeExceptionally(e); + } + } + }); + return result.join(); + } + + private Schema importSchema(BufferAllocator allocator, ArrowSchema schema, CDataDictionaryProvider provider) { + Field structField = importField(allocator, schema, provider); + System.out.println(structField); + if (structField.getType().getTypeID() != ArrowType.ArrowTypeID.Struct) { + throw new IllegalArgumentException("Cannot import schema: ArrowSchema describes non-struct type"); + } + return new Schema(structField.getChildren(), structField.getMetadata()); + } + + private void ensureInitialized() { + if (!initialized) { + Schema schema = getSchema(); + this.vectorSchemaRoot = VectorSchemaRoot.create(schema, allocator); + } + initialized = true; + } + + /** + * Loads the next batch of data from the stream + * @return a CompletableFuture that completes with true if more data is available, false if end of stream + */ + public CompletableFuture loadNextBatch() { + ensureInitialized(); + long runtimePointer = context.getRuntime(); + CompletableFuture result = new CompletableFuture<>(); + next( + runtimePointer, + streamPointer, + (errString, arrowArrayAddress) -> { + if (ErrorUtil.containsError(errString)) { + result.completeExceptionally(new RuntimeException(errString)); + } else if (arrowArrayAddress == 0) { + // Reached end of stream + result.complete(false); + } else { + try { + ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); + Data.importIntoVectorSchemaRoot( + allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); + result.complete(true); + } catch (Exception e) { + result.completeExceptionally(e); + } + } + }); + return result; + } + + /** + * Closes the stream and releases all associated resources + * @throws Exception if an error occurs during cleanup + */ + public void close() throws Exception { + closeStream(streamPointer); + dictionaryProvider.close(); + if (initialized) { + vectorSchemaRoot.close(); + } + } + + + private static native void next(long runtime, long pointer, ObjectResultCallback callback); + private static native void getSchema(long pointer, ObjectResultCallback callback); + private static native void closeStream(long pointer); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java index 4bf351f33cba5..2e25c191c679d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java @@ -7,35 +7,81 @@ */ package org.opensearch.datafusion.core; + /** * Session context for datafusion */ public class SessionContext implements AutoCloseable { - // ptr to context in df - private final long ptr; + private final long context; + private final long runtime; + + /** + * Constructor for SessionContext with custom parquet file. + * @param tableName table name + * @param parquetFilePath Path to the parquet file to register + */ + public SessionContext(String parquetFilePath, String tableName) { + this.context = createContext(); + this.runtime = createRuntime(parquetFilePath); + registerParquetTable(this.context, this.runtime, parquetFilePath, tableName); + } + + /** + * Creates a new DataFusion session context + * @return pointer to the native context + */ + public static native long createContext(); + + /** + * Closes and cleans up a DataFusion session context + * @param contextPointer pointer to the context to close + * @return status code + */ + public static native long closeContext(long contextPointer); + + /** + * Creates a new DataFusion runtime + * @param parquetFilePath path to parquet file + * @return pointer to the native runtime + */ + private static native long createRuntime(String parquetFilePath); /** - * Create a new DataFusion session context - * @return context ID for subsequent operations + * Closes and cleans up a DataFusion runtime + * @param runtimePointer pointer to the runtime to close + * @return status code */ - static native long createContext(); + public static native long closeRuntime(long runtimePointer); /** - * Close and cleanup a DataFusion context - * @param contextId the context ID to close + * Registers a parquet table with the given context and runtime + * @param contextPointer pointer to the DataFusion context + * @param runTime pointer to the runtime + * @param filePath path to the parquet file + * @param tableName name to register the table as */ - public static native void closeContext(long contextId); + public static native void registerParquetTable(long contextPointer, long runTime, String filePath, String tableName); + + /** + * Get the native context pointer + * @return the context pointer + */ + public long getContext() { + return context; + } /** - * Creates a new SessionContext with a native DataFusion context. + * Get the runtime + * @return the runtime pointer */ - public SessionContext() { - this.ptr = createContext(); + public long getRuntime() { + return runtime; } @Override public void close() throws Exception { - closeContext(this.ptr); + closeContext(this.context); + closeRuntime(this.runtime); } } diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecutionEngine.java new file mode 100644 index 0000000000000..1834e8cd1e82f --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecutionEngine.java @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.common.annotation.ExperimentalApi; + +import java.util.Map; + +/** + * SearchExecutionEngine + * @opensearch.internal + */ +@ExperimentalApi +public interface SearchExecutionEngine { + /** + * execute + * @param queryPlanIR + * @return + */ + Map execute(byte[] queryPlanIR); +} diff --git a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java new file mode 100644 index 0000000000000..2077fc8a1d0b9 --- /dev/null +++ b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.plugins; + +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.index.engine.SearchExecutionEngine; + +import java.io.IOException; + +/** + * Plugin interface for extending OpenSearch engine functionality. + * This interface allows plugins to extend the core engine capabilities. + * + * @opensearch.internal + */ +@ExperimentalApi +public interface SearchEnginePlugin { + /** + * createEngine + * @return + * @throws IOException + */ + SearchExecutionEngine createEngine() throws IOException; +} diff --git a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java new file mode 100644 index 0000000000000..3ecab86d60567 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java @@ -0,0 +1,22 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search.aggregations; + +/** + * Experimental + * @opensearch.internal + */ +public interface SearchResultsCollector { + + /** + * collect + */ + void collect(T value); +} + From 90d567607c5e7beb7555d332b726dd5dfacd45bb Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Wed, 24 Sep 2025 15:59:41 -0700 Subject: [PATCH 004/112] Add License, make precommit checks work Signed-off-by: Vinay Krishna Pudyodu (cherry picked from commit 98de93e511cc03040610fc53f63c0de3f01c0f3c) --- plugins/engine-datafusion/build.gradle | 34 +- .../licenses/arrow-LICENSE.txt | 2261 +++++++++++++++++ .../licenses/arrow-NOTICE.txt | 84 + .../licenses/arrow-c-data-17.0.0.jar.sha1 | 1 + .../licenses/arrow-format-17.0.0.jar.sha1 | 1 + .../arrow-memory-core-17.0.0.jar.sha1 | 1 + .../arrow-memory-unsafe-17.0.0.jar.sha1 | 1 + .../licenses/arrow-vector-17.0.0.jar.sha1 | 1 + .../licenses/checker-qual-3.42.0.jar.sha1 | 1 + .../licenses/checker-qual-LICENSE.txt | 22 + .../licenses/checker-qual-NOTICE.txt | 0 .../flatbuffers-java-23.5.26.jar.sha1 | 1 + .../licenses/flatbuffers-java-LICENSE.txt | 202 ++ .../licenses/flatbuffers-java-NOTICE.txt | 0 .../licenses/jackson-LICENSE.txt | 8 + .../licenses/jackson-NOTICE.txt | 20 + .../jackson-annotations-2.18.2.jar.sha1 | 1 + .../licenses/jackson-databind-2.18.2.jar.sha1 | 1 + .../licenses/slf4j-api-2.0.17.jar.sha1 | 1 + .../licenses/slf4j-api-LICENSE.txt | 24 + .../licenses/slf4j-api-NOTICE.txt | 0 .../opensearch/datafusion/DataFusionJNI.java | 7 +- .../datafusion/DataFusionPlugin.java | 4 +- .../datafusion/DataFusionService.java | 27 +- .../datafusion/DatafusionEngine.java | 13 +- .../datafusion/RecordBatchStream.java | 64 +- .../datafusion/action/DataFusionAction.java | 5 +- .../datafusion/action/NodeDataFusionInfo.java | 5 +- .../action/NodesDataFusionInfoRequest.java | 1 - .../action/NodesDataFusionInfoResponse.java | 11 +- .../TransportNodesDataFusionInfoAction.java | 10 +- .../datafusion/DataFusionServiceTest.java | 41 +- 32 files changed, 2754 insertions(+), 99 deletions(-) create mode 100644 plugins/engine-datafusion/licenses/arrow-LICENSE.txt create mode 100644 plugins/engine-datafusion/licenses/arrow-NOTICE.txt create mode 100644 plugins/engine-datafusion/licenses/arrow-c-data-17.0.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/arrow-format-17.0.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/arrow-memory-core-17.0.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/arrow-memory-unsafe-17.0.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/arrow-vector-17.0.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/checker-qual-3.42.0.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/checker-qual-LICENSE.txt create mode 100644 plugins/engine-datafusion/licenses/checker-qual-NOTICE.txt create mode 100644 plugins/engine-datafusion/licenses/flatbuffers-java-23.5.26.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/flatbuffers-java-LICENSE.txt create mode 100644 plugins/engine-datafusion/licenses/flatbuffers-java-NOTICE.txt create mode 100644 plugins/engine-datafusion/licenses/jackson-LICENSE.txt create mode 100644 plugins/engine-datafusion/licenses/jackson-NOTICE.txt create mode 100644 plugins/engine-datafusion/licenses/jackson-annotations-2.18.2.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/jackson-databind-2.18.2.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/slf4j-api-2.0.17.jar.sha1 create mode 100644 plugins/engine-datafusion/licenses/slf4j-api-LICENSE.txt create mode 100644 plugins/engine-datafusion/licenses/slf4j-api-NOTICE.txt diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index 69546356691d0..9059bc805acc2 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -42,7 +42,7 @@ dependencies { implementation "org.apache.arrow:arrow-c-data:17.0.0" implementation "org.apache.arrow:arrow-format:17.0.0" // SLF4J API for Arrow logging compatibility - implementation "org.slf4j:slf4j-api:1.7.36" + implementation "org.slf4j:slf4j-api:2.0.17" // CheckerFramework annotations required by Arrow 17.0.0 implementation "org.checkerframework:checker-qual:3.42.0" // FlatBuffers dependency required by Arrow 17.0.0 @@ -106,6 +106,11 @@ task copyNativeLibrary(type: Copy, dependsOn: buildRustLibrary) { rename { filename -> "libopensearch_datafusion_jni${libExtension}" } + + // Remove executable permissions to comply with OpenSearch file permission checks + filePermissions { + unix(0644) + } } // Ensure native library is built before Java compilation @@ -117,6 +122,23 @@ processResources.dependsOn copyNativeLibrary // Ensure sourcesJar depends on copyNativeLibrary since it includes resources sourcesJar.dependsOn copyNativeLibrary +// Ensure filepermissions task depends on copyNativeLibrary +tasks.named("filepermissions").configure { + dependsOn copyNativeLibrary +} + +// Ensure forbiddenPatterns task depends on copyNativeLibrary +tasks.named("forbiddenPatterns").configure { + dependsOn copyNativeLibrary + // Exclude native library files from pattern checking since they are binary + exclude '**/native/**' +} + +// Ensure spotlessJava task has proper dependency ordering +tasks.named("spotlessJava").configure { + mustRunAfter copyNativeLibrary +} + // Clean task should also clean Rust artifacts clean { delete file('jni/target') @@ -130,6 +152,16 @@ test { yamlRestTest { systemProperty 'tests.security.manager', 'false' + // Disable yamlRestTest since this plugin doesn't have REST API endpoints + enabled = false +} + +tasks.named("dependencyLicenses").configure { + mapping from: /jackson-.*/, to: 'jackson' + mapping from: /arrow-.*/, to: 'arrow' + mapping from: /slf4j-.*/, to: 'slf4j-api' + mapping from: /checker-qual.*/, to: 'checker-qual' + mapping from: /flatbuffers-.*/, to: 'flatbuffers-java' } // Configure Javadoc to skip package documentation requirements ie package-info.java diff --git a/plugins/engine-datafusion/licenses/arrow-LICENSE.txt b/plugins/engine-datafusion/licenses/arrow-LICENSE.txt new file mode 100644 index 0000000000000..7bb1330a1002b --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-LICENSE.txt @@ -0,0 +1,2261 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-------------------------------------------------------------------------------- + +src/arrow/util (some portions): Apache 2.0, and 3-clause BSD + +Some portions of this module are derived from code in the Chromium project, +copyright (c) Google inc and (c) The Chromium Authors and licensed under the +Apache 2.0 License or the under the 3-clause BSD license: + + Copyright (c) 2013 The Chromium Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +This project includes code from Daniel Lemire's FrameOfReference project. + +https://github.com/lemire/FrameOfReference/blob/6ccaf9e97160f9a3b299e23a8ef739e711ef0c71/src/bpacking.cpp +https://github.com/lemire/FrameOfReference/blob/146948b6058a976bc7767262ad3a2ce201486b93/scripts/turbopacking64.py + +Copyright: 2013 Daniel Lemire +Home page: http://lemire.me/en/ +Project page: https://github.com/lemire/FrameOfReference +License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 + +-------------------------------------------------------------------------------- + +This project includes code from the TensorFlow project + +Copyright 2015 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +This project includes code from the NumPy project. + +https://github.com/numpy/numpy/blob/e1f191c46f2eebd6cb892a4bfe14d9dd43a06c4e/numpy/core/src/multiarray/multiarraymodule.c#L2910 + +https://github.com/numpy/numpy/blob/68fd82271b9ea5a9e50d4e761061dfcca851382a/numpy/core/src/multiarray/datetime.c + +Copyright (c) 2005-2017, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +This project includes code from the Boost project + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +This project includes code from the FlatBuffers project + +Copyright 2014 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +This project includes code from the tslib project + +Copyright 2015 Microsoft Corporation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +This project includes code from the jemalloc project + +https://github.com/jemalloc/jemalloc + +Copyright (C) 2002-2017 Jason Evans . +All rights reserved. +Copyright (C) 2007-2012 Mozilla Foundation. All rights reserved. +Copyright (C) 2009-2017 Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice(s), + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice(s), + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +-------------------------------------------------------------------------------- + +This project includes code from the Go project, BSD 3-clause license + PATENTS +weak patent termination clause +(https://github.com/golang/go/blob/master/PATENTS). + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +This project includes code from the hs2client + +https://github.com/cloudera/hs2client + +Copyright 2016 Cloudera Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +The script ci/scripts/util_wait_for_it.sh has the following license + +Copyright (c) 2016 Giles Hall + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +The script r/configure has the following license (MIT) + +Copyright (c) 2017, Jeroen Ooms and Jim Hester + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +cpp/src/arrow/util/logging.cc, cpp/src/arrow/util/logging.h and +cpp/src/arrow/util/logging-test.cc are adapted from +Ray Project (https://github.com/ray-project/ray) (Apache 2.0). + +Copyright (c) 2016 Ray Project (https://github.com/ray-project/ray) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- +The files cpp/src/arrow/vendored/datetime/date.h, cpp/src/arrow/vendored/datetime/tz.h, +cpp/src/arrow/vendored/datetime/tz_private.h, cpp/src/arrow/vendored/datetime/ios.h, +cpp/src/arrow/vendored/datetime/ios.mm, +cpp/src/arrow/vendored/datetime/tz.cpp are adapted from +Howard Hinnant's date library (https://github.com/HowardHinnant/date) +It is licensed under MIT license. + +The MIT License (MIT) +Copyright (c) 2015, 2016, 2017 Howard Hinnant +Copyright (c) 2016 Adrian Colomitchi +Copyright (c) 2017 Florian Dang +Copyright (c) 2017 Paul Thompson +Copyright (c) 2018 Tomasz Kamiński + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +The file cpp/src/arrow/util/utf8.h includes code adapted from the page + https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ +with the following license (MIT) + +Copyright (c) 2008-2009 Bjoern Hoehrmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/xxhash/ have the following license +(BSD 2-Clause License) + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You can contact the author at : +- xxHash homepage: http://www.xxhash.com +- xxHash source repository : https://github.com/Cyan4973/xxHash + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/double-conversion/ have the following license +(BSD 3-Clause License) + +Copyright 2006-2011, the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/uriparser/ have the following license +(BSD 3-Clause License) + +uriparser - RFC 3986 URI parsing library + +Copyright (C) 2007, Weijia Song +Copyright (C) 2007, Sebastian Pipping +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + * Neither the name of the nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +The files under dev/tasks/conda-recipes have the following license + +BSD 3-clause license +Copyright (c) 2015-2018, conda-forge +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/utfcpp/ have the following license + +Copyright 2006-2018 Nemanja Trifunovic + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +This project includes code from Apache Kudu. + + * cpp/cmake_modules/CompilerInfo.cmake is based on Kudu's cmake_modules/CompilerInfo.cmake + +Copyright: 2016 The Apache Software Foundation. +Home page: https://kudu.apache.org/ +License: http://www.apache.org/licenses/LICENSE-2.0 + +-------------------------------------------------------------------------------- + +This project includes code from Apache Impala (incubating), formerly +Impala. The Impala code and rights were donated to the ASF as part of the +Incubator process after the initial code imports into Apache Parquet. + +Copyright: 2012 Cloudera, Inc. +Copyright: 2016 The Apache Software Foundation. +Home page: http://impala.apache.org/ +License: http://www.apache.org/licenses/LICENSE-2.0 + +-------------------------------------------------------------------------------- + +This project includes code from Apache Aurora. + +* dev/release/{release,changelog,release-candidate} are based on the scripts from + Apache Aurora + +Copyright: 2016 The Apache Software Foundation. +Home page: https://aurora.apache.org/ +License: http://www.apache.org/licenses/LICENSE-2.0 + +-------------------------------------------------------------------------------- + +This project includes code from the Google styleguide. + +* cpp/build-support/cpplint.py is based on the scripts from the Google styleguide. + +Copyright: 2009 Google Inc. All rights reserved. +Homepage: https://github.com/google/styleguide +License: 3-clause BSD + +-------------------------------------------------------------------------------- + +This project includes code from Snappy. + +* cpp/cmake_modules/{SnappyCMakeLists.txt,SnappyConfig.h} are based on code + from Google's Snappy project. + +Copyright: 2009 Google Inc. All rights reserved. +Homepage: https://github.com/google/snappy +License: 3-clause BSD + +-------------------------------------------------------------------------------- + +This project includes code from the manylinux project. + +* python/manylinux1/scripts/{build_python.sh,python-tag-abi-tag.py, + requirements.txt} are based on code from the manylinux project. + +Copyright: 2016 manylinux +Homepage: https://github.com/pypa/manylinux +License: The MIT License (MIT) + +-------------------------------------------------------------------------------- + +This project includes code from the cymove project: + +* python/pyarrow/includes/common.pxd includes code from the cymove project + +The MIT License (MIT) +Copyright (c) 2019 Omer Ozarslan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +The projects includes code from the Ursabot project under the dev/archery +directory. + +License: BSD 2-Clause + +Copyright 2019 RStudio, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +This project include code from mingw-w64. + +* cpp/src/arrow/util/cpu-info.cc has a polyfill for mingw-w64 < 5 + +Copyright (c) 2009 - 2013 by the mingw-w64 project +Homepage: https://mingw-w64.org +License: Zope Public License (ZPL) Version 2.1. + +--------------------------------------------------------------------------------- + +This project include code from Google's Asylo project. + +* cpp/src/arrow/result.h is based on status_or.h + +Copyright (c) Copyright 2017 Asylo authors +Homepage: https://asylo.dev/ +License: Apache 2.0 + +-------------------------------------------------------------------------------- + +This project includes code from Google's protobuf project + +* cpp/src/arrow/result.h ARROW_ASSIGN_OR_RAISE is based off ASSIGN_OR_RETURN +* cpp/src/arrow/util/bit_stream_utils.h contains code from wire_format_lite.h + +Copyright 2008 Google Inc. All rights reserved. +Homepage: https://developers.google.com/protocol-buffers/ +License: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Code generated by the Protocol Buffer compiler is owned by the owner +of the input file used when generating it. This code is not +standalone and requires a support library to be linked with it. This +support library is itself covered by the above license. + +-------------------------------------------------------------------------------- + +3rdparty dependency LLVM is statically linked in certain binary distributions. +Additionally some sections of source code have been derived from sources in LLVM +and have been clearly labeled as such. LLVM has the following license: + +============================================================================== +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: +============================================================================== + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +-------------------------------------------------------------------------------- + +3rdparty dependency gRPC is statically linked in certain binary +distributions, like the python wheels. gRPC has the following license: + +Copyright 2014 gRPC authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +3rdparty dependency Apache Thrift is statically linked in certain binary +distributions, like the python wheels. Apache Thrift has the following license: + +Apache Thrift +Copyright (C) 2006 - 2019, The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +3rdparty dependency Apache ORC is statically linked in certain binary +distributions, like the python wheels. Apache ORC has the following license: + +Apache ORC +Copyright 2013-2019 The Apache Software Foundation + +This product includes software developed by The Apache Software +Foundation (http://www.apache.org/). + +This product includes software developed by Hewlett-Packard: +(c) Copyright [2014-2015] Hewlett-Packard Development Company, L.P + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-------------------------------------------------------------------------------- + +3rdparty dependency zstd is statically linked in certain binary +distributions, like the python wheels. ZSTD has the following license: + +BSD License + +For Zstandard software + +Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +3rdparty dependency lz4 is statically linked in certain binary +distributions, like the python wheels. lz4 has the following license: + +LZ4 Library +Copyright (c) 2011-2016, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +3rdparty dependency Brotli is statically linked in certain binary +distributions, like the python wheels. Brotli has the following license: + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- + +3rdparty dependency rapidjson is statically linked in certain binary +distributions, like the python wheels. rapidjson and its dependencies have the +following licenses: + +Tencent is pleased to support the open source community by making RapidJSON +available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. +All rights reserved. + +If you have downloaded a copy of the RapidJSON binary from Tencent, please note +that the RapidJSON binary is licensed under the MIT License. +If you have downloaded a copy of the RapidJSON source code from Tencent, please +note that RapidJSON source code is licensed under the MIT License, except for +the third-party components listed below which are subject to different license +terms. Your integration of RapidJSON into your own projects may require +compliance with the MIT License, as well as the other licenses applicable to +the third-party components included within RapidJSON. To avoid the problematic +JSON license in your own projects, it's sufficient to exclude the +bin/jsonchecker/ directory, as it's the only code under the JSON license. +A copy of the MIT License is included in this file. + +Other dependencies and licenses: + + Open Source Software Licensed Under the BSD License: + -------------------------------------------------------------------- + + The msinttypes r29 + Copyright (c) 2006-2013 Alexander Chemeris + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + + Terms of the MIT License: + -------------------------------------------------------------------- + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +3rdparty dependency snappy is statically linked in certain binary +distributions, like the python wheels. snappy has the following license: + +Copyright 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of Google Inc. nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +=== + +Some of the benchmark data in testdata/ is licensed differently: + + - fireworks.jpeg is Copyright 2013 Steinar H. Gunderson, and + is licensed under the Creative Commons Attribution 3.0 license + (CC-BY-3.0). See https://creativecommons.org/licenses/by/3.0/ + for more information. + + - kppkn.gtb is taken from the Gaviota chess tablebase set, and + is licensed under the MIT License. See + https://sites.google.com/site/gaviotachessengine/Home/endgame-tablebases-1 + for more information. + + - paper-100k.pdf is an excerpt (bytes 92160 to 194560) from the paper + “Combinatorial Modeling of Chromatin Features Quantitatively Predicts DNA + Replication Timing in _Drosophila_” by Federico Comoglio and Renato Paro, + which is licensed under the CC-BY license. See + http://www.ploscompbiol.org/static/license for more ifnormation. + + - alice29.txt, asyoulik.txt, plrabn12.txt and lcet10.txt are from Project + Gutenberg. The first three have expired copyrights and are in the public + domain; the latter does not have expired copyright, but is still in the + public domain according to the license information + (http://www.gutenberg.org/ebooks/53). + +-------------------------------------------------------------------------------- + +3rdparty dependency gflags is statically linked in certain binary +distributions, like the python wheels. gflags has the following license: + +Copyright (c) 2006, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +3rdparty dependency glog is statically linked in certain binary +distributions, like the python wheels. glog has the following license: + +Copyright (c) 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +A function gettimeofday in utilities.cc is based on + +http://www.google.com/codesearch/p?hl=en#dR3YEbitojA/COPYING&q=GetSystemTimeAsFileTime%20license:bsd + +The license of this code is: + +Copyright (c) 2003-2008, Jouni Malinen and contributors +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name(s) of the above-listed copyright holder(s) nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +3rdparty dependency re2 is statically linked in certain binary +distributions, like the python wheels. re2 has the following license: + +Copyright (c) 2009 The RE2 Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +3rdparty dependency c-ares is statically linked in certain binary +distributions, like the python wheels. c-ares has the following license: + +# c-ares license + +Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS +file. + +Copyright 1998 by the Massachusetts Institute of Technology. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and that +the name of M.I.T. not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. +M.I.T. makes no representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. + +-------------------------------------------------------------------------------- + +3rdparty dependency zlib is redistributed as a dynamically linked shared +library in certain binary distributions, like the python wheels. In the future +this will likely change to static linkage. zlib has the following license: + +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +-------------------------------------------------------------------------------- + +3rdparty dependency openssl is redistributed as a dynamically linked shared +library in certain binary distributions, like the python wheels. openssl +preceding version 3 has the following license: + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a double license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +-------------------------------------------------------------------------------- + +This project includes code from the rtools-backports project. + +* ci/scripts/PKGBUILD and ci/scripts/r_windows_build.sh are based on code + from the rtools-backports project. + +Copyright: Copyright (c) 2013 - 2019, Алексей and Jeroen Ooms. +All rights reserved. +Homepage: https://github.com/r-windows/rtools-backports +License: 3-clause BSD + +-------------------------------------------------------------------------------- + +Some code from pandas has been adapted for the pyarrow codebase. pandas is +available under the 3-clause BSD license, which follows: + +pandas license +============== + +Copyright (c) 2011-2012, Lambda Foundry, Inc. and PyData Development Team +All rights reserved. + +Copyright (c) 2008-2011 AQR Capital Management, LLC +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +Some bits from DyND, in particular aspects of the build system, have been +adapted from libdynd and dynd-python under the terms of the BSD 2-clause +license + +The BSD 2-Clause License + + Copyright (C) 2011-12, Dynamic NDArray Developers + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Dynamic NDArray Developers list: + + * Mark Wiebe + * Continuum Analytics + +-------------------------------------------------------------------------------- + +Some source code from Ibis (https://github.com/cloudera/ibis) has been adapted +for PyArrow. Ibis is released under the Apache License, Version 2.0. + +-------------------------------------------------------------------------------- + +dev/tasks/homebrew-formulae/apache-arrow.rb has the following license: + +BSD 2-Clause License + +Copyright (c) 2009-present, Homebrew contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- + +cpp/src/arrow/vendored/base64.cpp has the following license + +ZLIB License + +Copyright (C) 2004-2017 René Nyffenegger + +This source code is provided 'as-is', without any express or implied +warranty. In no event will the author be held liable for any damages arising +from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including +commercial applications, and to alter it and redistribute it freely, subject to +the following restrictions: + +1. The origin of this source code must not be misrepresented; you must not + claim that you wrote the original source code. If you use this source code + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original source code. + +3. This notice may not be removed or altered from any source distribution. + +René Nyffenegger rene.nyffenegger@adp-gmbh.ch + +-------------------------------------------------------------------------------- + +This project includes code from Folly. + + * cpp/src/arrow/vendored/ProducerConsumerQueue.h + +is based on Folly's + + * folly/Portability.h + * folly/lang/Align.h + * folly/ProducerConsumerQueue.h + +Copyright: Copyright (c) Facebook, Inc. and its affiliates. +Home page: https://github.com/facebook/folly +License: http://www.apache.org/licenses/LICENSE-2.0 + +-------------------------------------------------------------------------------- + +The file cpp/src/arrow/vendored/musl/strptime.c has the following license + +Copyright © 2005-2020 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------------------------------------------------------------------------- + +The file cpp/cmake_modules/BuildUtils.cmake contains code from + +https://gist.github.com/cristianadam/ef920342939a89fae3e8a85ca9459b49 + +which is made available under the MIT license + +Copyright (c) 2019 Cristian Adam + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/portable-snippets/ contain code from + +https://github.com/nemequ/portable-snippets + +and have the following copyright notice: + +Each source file contains a preamble explaining the license situation +for that file, which takes priority over this file. With the +exception of some code pulled in from other repositories (such as +µnit, an MIT-licensed project which is used for testing), the code is +public domain, released using the CC0 1.0 Universal dedication (*). + +(*) https://creativecommons.org/publicdomain/zero/1.0/legalcode + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/fast_float/ contain code from + +https://github.com/lemire/fast_float + +which is made available under the Apache License 2.0. + +-------------------------------------------------------------------------------- + +The file python/pyarrow/vendored/docscrape.py contains code from + +https://github.com/numpy/numpydoc/ + +which is made available under the BSD 2-clause license. + +-------------------------------------------------------------------------------- + +The file python/pyarrow/vendored/version.py contains code from + +https://github.com/pypa/packaging/ + +which is made available under both the Apache license v2.0 and the +BSD 2-clause license. + +-------------------------------------------------------------------------------- + +The files in cpp/src/arrow/vendored/pcg contain code from + +https://github.com/imneme/pcg-cpp + +and have the following copyright notice: + +Copyright 2014-2019 Melissa O'Neill , + and the PCG Project contributors. + +SPDX-License-Identifier: (Apache-2.0 OR MIT) + +Licensed under the Apache License, Version 2.0 (provided in +LICENSE-APACHE.txt and at http://www.apache.org/licenses/LICENSE-2.0) +or under the MIT license (provided in LICENSE-MIT.txt and at +http://opensource.org/licenses/MIT), at your option. This file may not +be copied, modified, or distributed except according to those terms. + +Distributed on an "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, either +express or implied. See your chosen license for details. + +-------------------------------------------------------------------------------- +r/R/dplyr-count-tally.R (some portions) + +Some portions of this file are derived from code from + +https://github.com/tidyverse/dplyr/ + +which is made available under the MIT license + +Copyright (c) 2013-2019 RStudio and others. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +The file src/arrow/util/io_util.cc contains code from the CPython project +which is made available under the Python Software Foundation License Version 2. + +-------------------------------------------------------------------------------- + +3rdparty dependency opentelemetry-cpp is statically linked in certain binary +distributions. opentelemetry-cpp is made available under the Apache License 2.0. + +Copyright The OpenTelemetry Authors +SPDX-License-Identifier: Apache-2.0 + +-------------------------------------------------------------------------------- + +ci/conan/ is based on code from Conan Package and Dependency Manager. + +Copyright (c) 2019 Conan.io + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +3rdparty dependency UCX is redistributed as a dynamically linked shared +library in certain binary distributions. UCX has the following license: + +Copyright (c) 2014-2015 UT-Battelle, LLC. All rights reserved. +Copyright (C) 2014-2020 Mellanox Technologies Ltd. All rights reserved. +Copyright (C) 2014-2015 The University of Houston System. All rights reserved. +Copyright (C) 2015 The University of Tennessee and The University + of Tennessee Research Foundation. All rights reserved. +Copyright (C) 2016-2020 ARM Ltd. All rights reserved. +Copyright (c) 2016 Los Alamos National Security, LLC. All rights reserved. +Copyright (C) 2016-2020 Advanced Micro Devices, Inc. All rights reserved. +Copyright (C) 2019 UChicago Argonne, LLC. All rights reserved. +Copyright (c) 2018-2020 NVIDIA CORPORATION. All rights reserved. +Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. +Copyright (C) 2016-2020 Stony Brook University. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +The file dev/tasks/r/github.packages.yml contains code from + +https://github.com/ursa-labs/arrow-r-nightly + +which is made available under the Apache License 2.0. + +-------------------------------------------------------------------------------- +.github/actions/sync-nightlies/action.yml (some portions) + +Some portions of this file are derived from code from + +https://github.com/JoshPiper/rsync-docker + +which is made available under the MIT license + +Copyright (c) 2020 Joshua Piper + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- +.github/actions/sync-nightlies/action.yml (some portions) + +Some portions of this file are derived from code from + +https://github.com/burnett01/rsync-deployments + +which is made available under the MIT license + +Copyright (c) 2019-2022 Contention +Copyright (c) 2019-2022 Burnett01 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- +java/vector/src/main/java/org/apache/arrow/vector/util/IntObjectHashMap.java +java/vector/src/main/java/org/apache/arrow/vector/util/IntObjectMap.java + +These file are derived from code from Netty, which is made available under the +Apache License 2.0. diff --git a/plugins/engine-datafusion/licenses/arrow-NOTICE.txt b/plugins/engine-datafusion/licenses/arrow-NOTICE.txt new file mode 100644 index 0000000000000..2089c6fb20358 --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-NOTICE.txt @@ -0,0 +1,84 @@ +Apache Arrow +Copyright 2016-2024 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + +This product includes software from the SFrame project (BSD, 3-clause). +* Copyright (C) 2015 Dato, Inc. +* Copyright (c) 2009 Carnegie Mellon University. + +This product includes software from the Feather project (Apache 2.0) +https://github.com/wesm/feather + +This product includes software from the DyND project (BSD 2-clause) +https://github.com/libdynd + +This product includes software from the LLVM project + * distributed under the University of Illinois Open Source + +This product includes software from the google-lint project + * Copyright (c) 2009 Google Inc. All rights reserved. + +This product includes software from the mman-win32 project + * Copyright https://code.google.com/p/mman-win32/ + * Licensed under the MIT License; + +This product includes software from the LevelDB project + * Copyright (c) 2011 The LevelDB Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * Moved from Kudu http://github.com/cloudera/kudu + +This product includes software from the CMake project + * Copyright 2001-2009 Kitware, Inc. + * Copyright 2012-2014 Continuum Analytics, Inc. + * All rights reserved. + +This product includes software from https://github.com/matthew-brett/multibuild (BSD 2-clause) + * Copyright (c) 2013-2016, Matt Terry and Matthew Brett; all rights reserved. + +This product includes software from the Ibis project (Apache 2.0) + * Copyright (c) 2015 Cloudera, Inc. + * https://github.com/cloudera/ibis + +This product includes software from Dremio (Apache 2.0) + * Copyright (C) 2017-2018 Dremio Corporation + * https://github.com/dremio/dremio-oss + +This product includes software from Google Guava (Apache 2.0) + * Copyright (C) 2007 The Guava Authors + * https://github.com/google/guava + +This product include software from CMake (BSD 3-Clause) + * CMake - Cross Platform Makefile Generator + * Copyright 2000-2019 Kitware, Inc. and Contributors + +The web site includes files generated by Jekyll. + +-------------------------------------------------------------------------------- + +This product includes code from Apache Kudu, which includes the following in +its NOTICE file: + + Apache Kudu + Copyright 2016 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were developed at + Cloudera, Inc (http://www.cloudera.com/). + +-------------------------------------------------------------------------------- + +This product includes code from Apache ORC, which includes the following in +its NOTICE file: + + Apache ORC + Copyright 2013-2019 The Apache Software Foundation + + This product includes software developed by The Apache Software + Foundation (http://www.apache.org/). + + This product includes software developed by Hewlett-Packard: + (c) Copyright [2014-2015] Hewlett-Packard Development Company, L.P diff --git a/plugins/engine-datafusion/licenses/arrow-c-data-17.0.0.jar.sha1 b/plugins/engine-datafusion/licenses/arrow-c-data-17.0.0.jar.sha1 new file mode 100644 index 0000000000000..8586384ac28c3 --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-c-data-17.0.0.jar.sha1 @@ -0,0 +1 @@ +ccef140b279af80c6dda78a19c75872799c00dfb \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/arrow-format-17.0.0.jar.sha1 b/plugins/engine-datafusion/licenses/arrow-format-17.0.0.jar.sha1 new file mode 100644 index 0000000000000..34fd4704eac91 --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-format-17.0.0.jar.sha1 @@ -0,0 +1 @@ +5d052f20fd1193840eb59818515e710156c364b2 \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/arrow-memory-core-17.0.0.jar.sha1 b/plugins/engine-datafusion/licenses/arrow-memory-core-17.0.0.jar.sha1 new file mode 100644 index 0000000000000..ea312f4f5e51a --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-memory-core-17.0.0.jar.sha1 @@ -0,0 +1 @@ +51c5287ef5a624656bb38da7684078905b1a88c9 \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/arrow-memory-unsafe-17.0.0.jar.sha1 b/plugins/engine-datafusion/licenses/arrow-memory-unsafe-17.0.0.jar.sha1 new file mode 100644 index 0000000000000..14abbb6b6b3f4 --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-memory-unsafe-17.0.0.jar.sha1 @@ -0,0 +1 @@ +c2e4966dcf68f0978d3cc935844191d2d68c61e8 \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/arrow-vector-17.0.0.jar.sha1 b/plugins/engine-datafusion/licenses/arrow-vector-17.0.0.jar.sha1 new file mode 100644 index 0000000000000..8f9fddc882396 --- /dev/null +++ b/plugins/engine-datafusion/licenses/arrow-vector-17.0.0.jar.sha1 @@ -0,0 +1 @@ +16685545e4734382c1fcdaf12ac9b0a7d1fc06c0 \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/checker-qual-3.42.0.jar.sha1 b/plugins/engine-datafusion/licenses/checker-qual-3.42.0.jar.sha1 new file mode 100644 index 0000000000000..5a5268f9d126f --- /dev/null +++ b/plugins/engine-datafusion/licenses/checker-qual-3.42.0.jar.sha1 @@ -0,0 +1 @@ +638ec33f363a94d41a4f03c3e7d3dcfba64e402d \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/checker-qual-LICENSE.txt b/plugins/engine-datafusion/licenses/checker-qual-LICENSE.txt new file mode 100644 index 0000000000000..9837c6b69fdab --- /dev/null +++ b/plugins/engine-datafusion/licenses/checker-qual-LICENSE.txt @@ -0,0 +1,22 @@ +Checker Framework qualifiers +Copyright 2004-present by the Checker Framework developers + +MIT License: + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/plugins/engine-datafusion/licenses/checker-qual-NOTICE.txt b/plugins/engine-datafusion/licenses/checker-qual-NOTICE.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/plugins/engine-datafusion/licenses/flatbuffers-java-23.5.26.jar.sha1 b/plugins/engine-datafusion/licenses/flatbuffers-java-23.5.26.jar.sha1 new file mode 100644 index 0000000000000..939c91b488691 --- /dev/null +++ b/plugins/engine-datafusion/licenses/flatbuffers-java-23.5.26.jar.sha1 @@ -0,0 +1 @@ +e6320185c75767ba32c52ace087425a5a4275a50 \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/flatbuffers-java-LICENSE.txt b/plugins/engine-datafusion/licenses/flatbuffers-java-LICENSE.txt new file mode 100644 index 0000000000000..d645695673349 --- /dev/null +++ b/plugins/engine-datafusion/licenses/flatbuffers-java-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/plugins/engine-datafusion/licenses/flatbuffers-java-NOTICE.txt b/plugins/engine-datafusion/licenses/flatbuffers-java-NOTICE.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/plugins/engine-datafusion/licenses/jackson-LICENSE.txt b/plugins/engine-datafusion/licenses/jackson-LICENSE.txt new file mode 100644 index 0000000000000..f5f45d26a49d6 --- /dev/null +++ b/plugins/engine-datafusion/licenses/jackson-LICENSE.txt @@ -0,0 +1,8 @@ +This copy of Jackson JSON processor streaming parser/generator is licensed under the +Apache (Software) License, version 2.0 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. + +You may obtain a copy of the License at: + +http://www.apache.org/licenses/LICENSE-2.0 diff --git a/plugins/engine-datafusion/licenses/jackson-NOTICE.txt b/plugins/engine-datafusion/licenses/jackson-NOTICE.txt new file mode 100644 index 0000000000000..4c976b7b4cc58 --- /dev/null +++ b/plugins/engine-datafusion/licenses/jackson-NOTICE.txt @@ -0,0 +1,20 @@ +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers, as well as supported +commercially by FasterXML.com. + +## Licensing + +Jackson core and extension components may licensed under different licenses. +To find the details that apply to this artifact see the accompanying LICENSE file. +For more information, including possible other licensing options, contact +FasterXML.com (http://fasterxml.com). + +## Credits + +A list of contributors may be found from CREDITS file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. diff --git a/plugins/engine-datafusion/licenses/jackson-annotations-2.18.2.jar.sha1 b/plugins/engine-datafusion/licenses/jackson-annotations-2.18.2.jar.sha1 new file mode 100644 index 0000000000000..a06e1d5f28425 --- /dev/null +++ b/plugins/engine-datafusion/licenses/jackson-annotations-2.18.2.jar.sha1 @@ -0,0 +1 @@ +985d77751ebc7fce5db115a986bc9aa82f973f4a \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/jackson-databind-2.18.2.jar.sha1 b/plugins/engine-datafusion/licenses/jackson-databind-2.18.2.jar.sha1 new file mode 100644 index 0000000000000..eedbfff66c705 --- /dev/null +++ b/plugins/engine-datafusion/licenses/jackson-databind-2.18.2.jar.sha1 @@ -0,0 +1 @@ +deef8697b92141fb6caf7aa86966cff4eec9b04f \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/slf4j-api-2.0.17.jar.sha1 b/plugins/engine-datafusion/licenses/slf4j-api-2.0.17.jar.sha1 new file mode 100644 index 0000000000000..435f6c13a28b6 --- /dev/null +++ b/plugins/engine-datafusion/licenses/slf4j-api-2.0.17.jar.sha1 @@ -0,0 +1 @@ +d9e58ac9c7779ba3bf8142aff6c830617a7fe60f \ No newline at end of file diff --git a/plugins/engine-datafusion/licenses/slf4j-api-LICENSE.txt b/plugins/engine-datafusion/licenses/slf4j-api-LICENSE.txt new file mode 100644 index 0000000000000..1a3d053237bec --- /dev/null +++ b/plugins/engine-datafusion/licenses/slf4j-api-LICENSE.txt @@ -0,0 +1,24 @@ +Copyright (c) 2004-2022 QOS.ch Sarl (Switzerland) +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + diff --git a/plugins/engine-datafusion/licenses/slf4j-api-NOTICE.txt b/plugins/engine-datafusion/licenses/slf4j-api-NOTICE.txt new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java index b18c36c7d7fb5..4ed5e99dc885c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java @@ -8,11 +8,14 @@ package org.opensearch.datafusion; +import org.opensearch.common.SuppressForbidden; + import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; +import java.util.Locale; /** * JNI wrapper for DataFusion operations @@ -35,13 +38,14 @@ private DataFusionJNI() { /** * Load the native library from resources */ + @SuppressForbidden(reason = "Native library loading requires temporary file creation and system path access") private static synchronized void loadNativeLibrary() { if (libraryLoaded) { return; } try { - String osName = System.getProperty("os.name").toLowerCase(); + String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); String libExtension; String libName; @@ -62,7 +66,6 @@ private static synchronized void loadNativeLibrary() { // Extract to temporary file and load Path tempLib = Files.createTempFile("libopensearch_datafusion_jni", libExtension); Files.copy(libStream, tempLib, StandardCopyOption.REPLACE_EXISTING); - tempLib.toFile().deleteOnExit(); System.load(tempLib.toAbsolutePath().toString()); libStream.close(); } else { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 3a1597c23cdb0..44d7103ac08a4 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -142,9 +142,7 @@ public List getRestHandlers( if (!isDataFusionEnabled) { return Collections.emptyList(); } - return List.of( - new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class) - ); + return List.of(new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class)); } @Override diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 700e70aa81a32..621b457f1cc25 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -50,11 +50,12 @@ protected void doStart() { logger.info("DataFusion service started successfully. Version info: {}", version); // Create a default context with parquet file path from path.repo setting - String repoPath = environment.settings().get("path.data") - .trim().replaceAll("^\\[|]$", ""); + String repoPath = environment.settings().get("path.data").trim().replaceAll("^\\[|]$", ""); if (repoPath.isEmpty()) { - throw new RuntimeException("path.repo setting is required for DataFusion service. " + - "Please configure it using -PrepoPath when starting OpenSearch."); + throw new RuntimeException( + "path.repo setting is required for DataFusion service. " + + "Please configure it using -PrepoPath when starting OpenSearch." + ); } logger.info("DataFusion service started successfully. Repo path: {}", repoPath); @@ -64,8 +65,9 @@ protected void doStart() { // Check if the parquet file exists if (!Files.exists(parquetFile)) { - throw new RuntimeException("Parquet file not found at: " + parquetFile + - ". Please place your parquet file in the OpenSearch data directory."); + throw new RuntimeException( + "Parquet file not found at: " + parquetFile + ". Please place your parquet file in the OpenSearch data directory." + ); } defaultSessionContext = new SessionContext(parquetFile.toString(), "hits"); @@ -98,7 +100,6 @@ protected void doClose() { doStop(); } - /** * Get a context by id * @param id the context id @@ -122,10 +123,14 @@ SessionContext getDefaultContext() { * @return true if the context was found and closed, false otherwise */ public boolean closeContext(long contextId) { - try (SessionContext ignored = contexts.remove(contextId)) { - // do nothing - } catch (Exception e) { - throw new RuntimeException(e); + SessionContext context = contexts.remove(contextId); + if (context != null) { + try { + context.close(); + return true; + } catch (Exception e) { + throw new RuntimeException(e); + } } return false; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index de4ace8b89e09..47385aa56f1fe 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -54,7 +54,7 @@ public Map execute(byte[] queryPlanIR) { @Override public void collect(RecordBatchStream value) { VectorSchemaRoot root = value.getVectorSchemaRoot(); - for(Field field : root.getSchema().getFields()) { + for (Field field : root.getSchema().getFields()) { String filedName = field.getName(); FieldVector fieldVector = root.getVector(filedName); Object[] fieldValues = new Object[fieldVector.getValueCount()]; @@ -68,13 +68,12 @@ public void collect(RecordBatchStream value) { while (stream.loadNextBatch().join()) { collector.collect(stream); - } - - System.out.println("Final Results:"); - for (Map.Entry entry : finalRes.entrySet()) { - System.out.println(entry.getKey() + ": " + java.util.Arrays.toString(entry.getValue())); - } + } + logger.info("Final Results:"); + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + } } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index 3cdb585b62c76..971f68761832c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -61,27 +61,24 @@ public VectorSchemaRoot getVectorSchemaRoot() { private Schema getSchema() { // Native method is not async, but use a future to store the result for convenience CompletableFuture result = new CompletableFuture<>(); - getSchema( - streamPointer, - (errString, arrowSchemaAddress) -> { - if (ErrorUtil.containsError(errString)) { - result.completeExceptionally(new RuntimeException(errString)); - } else { - try { - ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); - Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); - result.complete(schema); - } catch (Exception e) { - result.completeExceptionally(e); - } + getSchema(streamPointer, (errString, arrowSchemaAddress) -> { + if (ErrorUtil.containsError(errString)) { + result.completeExceptionally(new RuntimeException(errString)); + } else { + try { + ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); + Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); + result.complete(schema); + } catch (Exception e) { + result.completeExceptionally(e); } - }); + } + }); return result.join(); } private Schema importSchema(BufferAllocator allocator, ArrowSchema schema, CDataDictionaryProvider provider) { Field structField = importField(allocator, schema, provider); - System.out.println(structField); if (structField.getType().getTypeID() != ArrowType.ArrowTypeID.Struct) { throw new IllegalArgumentException("Cannot import schema: ArrowSchema describes non-struct type"); } @@ -104,26 +101,22 @@ public CompletableFuture loadNextBatch() { ensureInitialized(); long runtimePointer = context.getRuntime(); CompletableFuture result = new CompletableFuture<>(); - next( - runtimePointer, - streamPointer, - (errString, arrowArrayAddress) -> { - if (ErrorUtil.containsError(errString)) { - result.completeExceptionally(new RuntimeException(errString)); - } else if (arrowArrayAddress == 0) { - // Reached end of stream - result.complete(false); - } else { - try { - ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); - Data.importIntoVectorSchemaRoot( - allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); - result.complete(true); - } catch (Exception e) { - result.completeExceptionally(e); - } + next(runtimePointer, streamPointer, (errString, arrowArrayAddress) -> { + if (ErrorUtil.containsError(errString)) { + result.completeExceptionally(new RuntimeException(errString)); + } else if (arrowArrayAddress == 0) { + // Reached end of stream + result.complete(false); + } else { + try { + ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); + Data.importIntoVectorSchemaRoot(allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); + result.complete(true); + } catch (Exception e) { + result.completeExceptionally(e); } - }); + } + }); return result; } @@ -139,8 +132,9 @@ public void close() throws Exception { } } - private static native void next(long runtime, long pointer, ObjectResultCallback callback); + private static native void getSchema(long pointer, ObjectResultCallback callback); + private static native void closeStream(long pointer); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java index 66dd36d2d0bfe..99695d2c96266 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/DataFusionAction.java @@ -43,10 +43,7 @@ public String getName() { */ @Override public List routes() { - return List.of( - new Route(GET, "/_plugins/datafusion/info"), - new Route(GET, "/_plugins/datafusion/info/{nodeId}") - ); + return List.of(new Route(GET, "/_plugins/datafusion/info"), new Route(GET, "/_plugins/datafusion/info/{nodeId}")); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java index 6d50e2d40af78..5512110c576da 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodeDataFusionInfo.java @@ -29,10 +29,7 @@ public class NodeDataFusionInfo extends BaseNodeResponse implements ToXContentFr * @param node The discovery node. * @param dataFusionVersion The DataFusion version. */ - public NodeDataFusionInfo( - DiscoveryNode node, - String dataFusionVersion - ) { + public NodeDataFusionInfo(DiscoveryNode node, String dataFusionVersion) { super(node); this.dataFusionVersion = dataFusionVersion; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java index 61ce2444722ee..4e32bb3b0f18c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoRequest.java @@ -53,7 +53,6 @@ public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); } - /** * Node-level request for DataFusion information */ diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java index 59b21388c1720..61a13fd263ee9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/NodesDataFusionInfoResponse.java @@ -13,7 +13,6 @@ import org.opensearch.cluster.ClusterName; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; -import org.opensearch.core.xcontent.ToXContentFragment; import org.opensearch.core.xcontent.ToXContentObject; import org.opensearch.core.xcontent.XContentBuilder; @@ -31,11 +30,7 @@ public class NodesDataFusionInfoResponse extends BaseNodesResponse nodes, - List failures - ) { + public NodesDataFusionInfoResponse(ClusterName clusterName, List nodes, List failures) { super(clusterName, nodes, failures); } @@ -77,8 +72,8 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws builder.startObject("nodes"); for (NodeDataFusionInfo nodeInfo : getNodes()) { builder.field(nodeInfo.getNode().getId()); -// builder.field("name", nodeInfo.getNode().getName()); -// builder.field("transport_address", nodeInfo.getNode().getAddress().toString()); + // builder.field("name", nodeInfo.getNode().getName()); + // builder.field("transport_address", nodeInfo.getNode().getAddress().toString()); nodeInfo.toXContent(builder, params); } builder.endObject(); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java index 1ba5fd9af3210..f6118da9254a1 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java @@ -101,15 +101,9 @@ protected NodeDataFusionInfo newNodeResponse(StreamInput in) throws IOException @Override protected NodeDataFusionInfo nodeOperation(NodesDataFusionInfoRequest.NodeDataFusionInfoRequest request) { try { - return new NodeDataFusionInfo( - clusterService.localNode(), - dataFusionService.getVersion() - ); + return new NodeDataFusionInfo(clusterService.localNode(), dataFusionService.getVersion()); } catch (Exception e) { - return new NodeDataFusionInfo( - clusterService.localNode(), - "unknown" - ); + return new NodeDataFusionInfo(clusterService.localNode(), "unknown"); } } } diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java index af39b70fcab13..a3965885fcacd 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java @@ -8,12 +8,16 @@ package org.opensearch.datafusion; -import org.junit.Before; -import org.junit.Test; -import org.junit.Assume; +import org.opensearch.common.settings.Settings; import org.opensearch.datafusion.core.SessionContext; +import org.opensearch.env.Environment; +import org.opensearch.test.OpenSearchTestCase; +import org.junit.Before; + +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; -import static org.junit.Assert.*; +import static org.mockito.Mockito.when; /** * Unit tests for DataFusionService @@ -22,39 +26,46 @@ * They are disabled by default and can be enabled by setting the system property: * -Dtest.native.enabled=true */ -public class DataFusionServiceTest { +public class DataFusionServiceTest extends OpenSearchTestCase { private DataFusionService service; + @Mock + private Environment mockEnvironment; + @Before - public void setUp() { - service = new DataFusionService(); + public void setup() { + MockitoAnnotations.openMocks(this); + Settings mockSettings = Settings.builder().put("path.data", "/tmp/test-data").build(); + + when(mockEnvironment.settings()).thenReturn(mockSettings); + service = new DataFusionService(mockEnvironment); service.doStart(); } - @Test public void testGetVersion() { String version = service.getVersion(); assertNotNull(version); assertTrue(version.contains("datafusion_version")); - assertTrue(version.contains("arrow_version")); + assertTrue(version.contains("substrait_version")); } - @Test public void testCreateAndCloseContext() { // Create context - long contextId = service.createContext(); - assertTrue(contextId > 0); + SessionContext defaultContext = service.getDefaultContext(); + assertNotNull(defaultContext); + assertTrue(defaultContext.getContext() > 0); // Verify context exists - SessionContext context = service.getContext(contextId); + SessionContext context = service.getContext(defaultContext.getContext()); assertNotNull(context); + assertEquals(defaultContext.getContext(), context.getContext()); // Close context - boolean closed = service.closeContext(contextId); + boolean closed = service.closeContext(defaultContext.getContext()); assertTrue(closed); // Verify context is gone - assertNull(service.getContext(contextId)); + assertNull(service.getContext(defaultContext.getContext())); } } From 073afec8385fa31b15b6c721ec1cd6bac042ee1b Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Wed, 24 Sep 2025 16:11:58 -0700 Subject: [PATCH 005/112] Ensure precommit succeeds Signed-off-by: Vinay Krishna Pudyodu (cherry picked from commit 5fef61747c2e034e2235739e66136108c9bdd89b) --- plugins/engine-datafusion/build.gradle | 24 +++++++++++++++++++ ...eTest.java => DataFusionServiceTests.java} | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) rename plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/{DataFusionServiceTest.java => DataFusionServiceTests.java} (97%) diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index 9059bc805acc2..a4b215b19cb72 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -164,6 +164,30 @@ tasks.named("dependencyLicenses").configure { mapping from: /flatbuffers-.*/, to: 'flatbuffers-java' } +// Configure third party audit to handle Apache Arrow dependencies +tasks.named('thirdPartyAudit').configure { + ignoreMissingClasses( + // Apache Commons Codec (missing dependency) + 'org.apache.commons.codec.binary.Hex' + ) + ignoreViolations( + // Apache Arrow internal classes that use Unsafe operations + 'org.apache.arrow.memory.ArrowBuf', + 'org.apache.arrow.memory.unsafe.UnsafeAllocationManager', + 'org.apache.arrow.memory.util.ByteFunctionHelpers', + 'org.apache.arrow.memory.util.MemoryUtil', + 'org.apache.arrow.memory.util.MemoryUtil$1', + 'org.apache.arrow.memory.util.hash.MurmurHasher', + 'org.apache.arrow.memory.util.hash.SimpleHasher', + 'org.apache.arrow.vector.BaseFixedWidthVector', + 'org.apache.arrow.vector.BitVectorHelper', + 'org.apache.arrow.vector.Decimal256Vector', + 'org.apache.arrow.vector.DecimalVector', + 'org.apache.arrow.vector.util.DecimalUtility', + 'org.apache.arrow.vector.util.VectorAppender' + ) +} + // Configure Javadoc to skip package documentation requirements ie package-info.java missingJavadoc { javadocMissingIgnore = [ diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java similarity index 97% rename from plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java rename to plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index a3965885fcacd..aaedfb2c93ebc 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTest.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -26,7 +26,7 @@ * They are disabled by default and can be enabled by setting the system property: * -Dtest.native.enabled=true */ -public class DataFusionServiceTest extends OpenSearchTestCase { +public class DataFusionServiceTests extends OpenSearchTestCase { private DataFusionService service; From 2284dcd0aa88e4a05ad00da0c2068c6fb1798747 Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Wed, 24 Sep 2025 21:12:18 -0700 Subject: [PATCH 006/112] Added Integration of Search with Datafusion plugin Signed-off-by: Vinay Krishna Pudyodu (cherry picked from commit e4ebf59a255fb4f836c5a9c23b92b95951a03b20) --- gradle/run.gradle | 24 +++++++++++ .../opensearch/index/shard/IndexShardIT.java | 3 +- .../action/search/SearchRequest.java | 12 ++++++ .../org/opensearch/index/IndexModule.java | 13 ++++-- .../org/opensearch/index/IndexService.java | 15 +++++-- .../opensearch/index/shard/IndexShard.java | 14 ++++++- .../opensearch/indices/IndicesService.java | 8 +++- .../search/DefaultSearchContext.java | 9 ++++ .../org/opensearch/search/SearchService.java | 13 +++++- .../aggregations/SearchResultsCollector.java | 1 - .../search/builder/SearchSourceBuilder.java | 41 ++++++++++++++++++- .../search/internal/SearchContext.java | 7 ++++ .../opensearch/search/query/QueryPhase.java | 39 +++++++++++++++--- .../query/QueryPhaseSearcherWrapper.java | 23 ++++++----- .../opensearch/index/IndexModuleTests.java | 3 +- .../index/shard/IndexShardTestCase.java | 3 +- 16 files changed, 196 insertions(+), 32 deletions(-) diff --git a/gradle/run.gradle b/gradle/run.gradle index 3d89bdb10fefa..3b5a3eebab756 100644 --- a/gradle/run.gradle +++ b/gradle/run.gradle @@ -90,6 +90,30 @@ testClusters { } } } + + if (findProperty("remotePlugins")) { + remotePlugins = Eval.me(remotePlugins) + for (String coords : remotePlugins) { + if (coords.startsWith('/') || coords.startsWith('file:')) { + // Direct file path + plugin(project.layout.file(project.provider { new File(coords) })) + } else { + // Maven coordinates + def config = project.configurations.detachedConfiguration( + project.dependencies.create(coords + '@zip') + ) + config.resolutionStrategy.cacheChangingModulesFor 0, 'seconds' + project.repositories.mavenLocal() + project.repositories { + maven { + name = 'OpenSearch Snapshots' + url = 'https://central.sonatype.com/repository/maven-snapshots/' + } + } + plugin(project.layout.file(project.provider { config.singleFile })) + } + } + } } } diff --git a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java index 8cd6fb7ed5aa6..d7d6ddffae385 100644 --- a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java +++ b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java @@ -732,7 +732,8 @@ public static final IndexShard newIndexShard( indexService.getRefreshMutex(), clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, - ReferencedSegmentsPublisher.EMPTY + ReferencedSegmentsPublisher.EMPTY, + null ); } diff --git a/server/src/main/java/org/opensearch/action/search/SearchRequest.java b/server/src/main/java/org/opensearch/action/search/SearchRequest.java index a1e6e7605cbdb..28f7e7c7964ef 100644 --- a/server/src/main/java/org/opensearch/action/search/SearchRequest.java +++ b/server/src/main/java/org/opensearch/action/search/SearchRequest.java @@ -752,6 +752,18 @@ public String pipeline() { return pipeline; } + public SearchRequest queryPlanIR(byte[] queryPlanIR) { + if (this.source == null) { + this.source = new SearchSourceBuilder(); + } + this.source.queryPlanIR(queryPlanIR); + return this; + } + + public byte[] queryPlanIR() { + return this.source != null ? this.source.queryPlanIR() : null; + } + @Override public SearchTask createTask(long id, String type, String action, TaskId parentTaskId, Map headers) { return new SearchTask(id, type, action, this::buildDescription, parentTaskId, headers, cancelAfterTimeInterval); diff --git a/server/src/main/java/org/opensearch/index/IndexModule.java b/server/src/main/java/org/opensearch/index/IndexModule.java index 7a8eee076fa37..21cfdcb178499 100644 --- a/server/src/main/java/org/opensearch/index/IndexModule.java +++ b/server/src/main/java/org/opensearch/index/IndexModule.java @@ -90,6 +90,7 @@ import org.opensearch.indices.recovery.RecoverySettings; import org.opensearch.indices.recovery.RecoveryState; import org.opensearch.plugins.IndexStorePlugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; import org.opensearch.search.aggregations.support.ValuesSourceRegistry; @@ -668,7 +669,8 @@ public IndexService newIndexService( Supplier shardLevelRefreshEnabled, RecoverySettings recoverySettings, RemoteStoreSettings remoteStoreSettings, - Supplier clusterDefaultMaxMergeAtOnceSupplier + Supplier clusterDefaultMaxMergeAtOnceSupplier, + SearchEnginePlugin searchEnginePlugin ) throws IOException { return newIndexService( indexCreationContext, @@ -696,7 +698,8 @@ public IndexService newIndexService( remoteStoreSettings, (s) -> {}, shardId -> ReplicationStats.empty(), - clusterDefaultMaxMergeAtOnceSupplier + clusterDefaultMaxMergeAtOnceSupplier, + searchEnginePlugin ); } @@ -726,7 +729,8 @@ public IndexService newIndexService( RemoteStoreSettings remoteStoreSettings, Consumer replicator, Function segmentReplicationStatsProvider, - Supplier clusterDefaultMaxMergeAtOnceSupplier + Supplier clusterDefaultMaxMergeAtOnceSupplier, + SearchEnginePlugin searchEnginePlugin ) throws IOException { final IndexEventListener eventListener = freeze(); Function> readerWrapperFactory = indexReaderWrapper @@ -798,7 +802,8 @@ public IndexService newIndexService( compositeIndexSettings, replicator, segmentReplicationStatsProvider, - clusterDefaultMaxMergeAtOnceSupplier + clusterDefaultMaxMergeAtOnceSupplier, + searchEnginePlugin ); success = true; return indexService; diff --git a/server/src/main/java/org/opensearch/index/IndexService.java b/server/src/main/java/org/opensearch/index/IndexService.java index 22441df923bf8..841bb23fb369d 100644 --- a/server/src/main/java/org/opensearch/index/IndexService.java +++ b/server/src/main/java/org/opensearch/index/IndexService.java @@ -110,6 +110,7 @@ import org.opensearch.indices.replication.checkpoint.SegmentReplicationCheckpointPublisher; import org.opensearch.node.remotestore.RemoteStoreNodeAttribute; import org.opensearch.plugins.IndexStorePlugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; import org.opensearch.search.aggregations.support.ValuesSourceRegistry; @@ -206,6 +207,7 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust private final Object refreshMutex = new Object(); private volatile TimeValue refreshInterval; private volatile boolean shardLevelRefreshEnabled; + private final SearchEnginePlugin searchEnginePlugin; private final IndexStorePlugin.StoreFactory storeFactory; @InternalApi @@ -252,7 +254,8 @@ public IndexService( CompositeIndexSettings compositeIndexSettings, Consumer replicator, Function segmentReplicationStatsProvider, - Supplier clusterDefaultMaxMergeAtOnceSupplier + Supplier clusterDefaultMaxMergeAtOnceSupplier, + SearchEnginePlugin searchEnginePlugin ) { super(indexSettings); this.storeFactory = storeFactory; @@ -359,6 +362,7 @@ public IndexService( startIndexLevelRefreshTask(); } } + this.searchEnginePlugin = searchEnginePlugin; } @InternalApi @@ -400,7 +404,8 @@ public IndexService( boolean shardLevelRefreshEnabled, RecoverySettings recoverySettings, RemoteStoreSettings remoteStoreSettings, - Supplier clusterDefaultMaxMergeAtOnce + Supplier clusterDefaultMaxMergeAtOnce, + SearchEnginePlugin searchEnginePlugin ) { this( indexSettings, @@ -445,7 +450,8 @@ public IndexService( null, s -> {}, (shardId) -> ReplicationStats.empty(), - clusterDefaultMaxMergeAtOnce + clusterDefaultMaxMergeAtOnce, + searchEnginePlugin ); } @@ -794,7 +800,8 @@ protected void closeInternal() { refreshMutex, clusterService.getClusterApplierService(), this.indexSettings.isSegRepEnabledOrRemoteNode() ? mergedSegmentPublisher : null, - this.indexSettings.isSegRepEnabledOrRemoteNode() ? referencedSegmentsPublisher : null + this.indexSettings.isSegRepEnabledOrRemoteNode() ? referencedSegmentsPublisher : null, + this.searchEnginePlugin.createEngine() ); eventListener.indexShardStateChanged(indexShard, null, indexShard.state(), "shard created"); eventListener.afterIndexShardCreated(indexShard); diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 609a6290d36ce..360933456a11d 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -140,6 +140,7 @@ import org.opensearch.index.engine.ReadOnlyEngine; import org.opensearch.index.engine.RefreshFailedEngineException; import org.opensearch.index.engine.SafeCommitInfo; +import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.engine.Segment; import org.opensearch.index.engine.SegmentsStats; import org.opensearch.index.fielddata.FieldDataStats; @@ -389,6 +390,7 @@ Runnable getGlobalCheckpointSyncer() { private final MergedSegmentPublisher mergedSegmentPublisher; private final ReferencedSegmentsPublisher referencedSegmentsPublisher; private final Set pendingMergedSegmentCheckpoints = Sets.newConcurrentHashSet(); + private final SearchExecutionEngine searchExecutionEngine; @InternalApi public IndexShard( @@ -429,7 +431,8 @@ public IndexShard( final Object refreshMutex, final ClusterApplierService clusterApplierService, @Nullable final MergedSegmentPublisher mergedSegmentPublisher, - @Nullable final ReferencedSegmentsPublisher referencedSegmentsPublisher + @Nullable final ReferencedSegmentsPublisher referencedSegmentsPublisher, + final SearchExecutionEngine searchExecutionEngine ) throws IOException { super(shardRouting.shardId(), indexSettings); assert shardRouting.initializing(); @@ -554,6 +557,15 @@ public boolean shouldCache(Query query) { startRefreshTask(); } } + this.searchExecutionEngine = searchExecutionEngine; + } + + /** + * Returns search execution engine + * @return SearchExecutionEngine + */ + public SearchExecutionEngine getSearchExecutionEngine() { + return searchExecutionEngine; } /** diff --git a/server/src/main/java/org/opensearch/indices/IndicesService.java b/server/src/main/java/org/opensearch/indices/IndicesService.java index 1d74f6d7d02da..b6a5c65d553c8 100644 --- a/server/src/main/java/org/opensearch/indices/IndicesService.java +++ b/server/src/main/java/org/opensearch/indices/IndicesService.java @@ -164,6 +164,7 @@ import org.opensearch.node.remotestore.RemoteStoreNodeAttribute; import org.opensearch.plugins.IndexStorePlugin; import org.opensearch.plugins.PluginsService; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; import org.opensearch.search.aggregations.support.ValuesSourceRegistry; @@ -1101,7 +1102,8 @@ private synchronized IndexService createIndexService( this.remoteStoreSettings, replicator, segmentReplicationStatsProvider, - this::getClusterDefaultMaxMergeAtOnce + this::getClusterDefaultMaxMergeAtOnce, + getSearchEnginePlugin() ); } @@ -1109,6 +1111,10 @@ private EngineConfigFactory getEngineConfigFactory(final IndexSettings idxSettin return new EngineConfigFactory(this.pluginsService, idxSettings); } + private SearchEnginePlugin getSearchEnginePlugin() throws IOException { + return pluginsService.filterPlugins(SearchEnginePlugin.class).get(0); + } + private IngestionConsumerFactory getIngestionConsumerFactory(final IndexSettings idxSettings) { final IndexMetadata indexMetadata = idxSettings.getIndexMetadata(); if (indexMetadata == null) { diff --git a/server/src/main/java/org/opensearch/search/DefaultSearchContext.java b/server/src/main/java/org/opensearch/search/DefaultSearchContext.java index 14f7b4b321638..2745c6d092155 100644 --- a/server/src/main/java/org/opensearch/search/DefaultSearchContext.java +++ b/server/src/main/java/org/opensearch/search/DefaultSearchContext.java @@ -225,6 +225,7 @@ final class DefaultSearchContext extends SearchContext { private boolean isStreamSearch; private StreamSearchChannelListener listener; + private Map dfResults; private final SetOnce cachedFlushMode = new SetOnce<>(); DefaultSearchContext( @@ -1311,4 +1312,12 @@ public double getStreamingMinCardinalityRatio() { public long getStreamingMinEstimatedBucketCount() { return clusterService.getClusterSettings().get(STREAMING_MIN_ESTIMATED_BUCKET_COUNT); } + + public void setDFResults(Map dfResults) { + this.dfResults = dfResults; + } + + public Map getDFResults() { + return dfResults; + } } diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 9743f5103f4be..e455cec7824c6 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -83,6 +83,7 @@ import org.opensearch.index.IndexService; import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.mapper.DerivedFieldResolver; import org.opensearch.index.mapper.DerivedFieldResolverFactory; import org.opensearch.index.query.InnerHitContextBuilder; @@ -822,13 +823,23 @@ private SearchPhaseResult executeQueryPhase( Releasable ignored = readerContext.markAsUsed(getKeepAlive(request)); SearchContext context = createContext(readerContext, request, task, true, isStreamSearch) ) { + + // TODO Execute plan here + byte[] substraitQuery = request.source().queryPlanIR(); + if (substraitQuery != null) { + SearchExecutionEngine searchExecutionEngine = readerContext.indexShard().getSearchExecutionEngine(); + Map result = searchExecutionEngine.execute(substraitQuery); + context.setDFResults(result); + } + if (isStreamSearch) { assert listener instanceof StreamSearchChannelListener : "Stream search expects StreamSearchChannelListener"; context.setStreamChannelListener((StreamSearchChannelListener) listener); } final long afterQueryTime; try (SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(context)) { - loadOrExecuteQueryPhase(request, context); + queryPhase.execute(context); + // loadOrExecuteQueryPhase(request, context); if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { freeReaderContext(readerContext.id()); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java index 3ecab86d60567..7c0e7f14dfb84 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java +++ b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java @@ -19,4 +19,3 @@ public interface SearchResultsCollector { */ void collect(T value); } - diff --git a/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java b/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java index 90dfc1e086602..442d81f585015 100644 --- a/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java +++ b/server/src/main/java/org/opensearch/search/builder/SearchSourceBuilder.java @@ -42,6 +42,8 @@ import org.opensearch.core.ParseField; import org.opensearch.core.common.ParsingException; import org.opensearch.core.common.Strings; +import org.opensearch.core.common.bytes.BytesArray; +import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; import org.opensearch.core.common.io.stream.Writeable; @@ -78,6 +80,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; @@ -137,6 +140,7 @@ public final class SearchSourceBuilder implements Writeable, ToXContentObject, R public static final ParseField POINT_IN_TIME = new ParseField("pit"); public static final ParseField SEARCH_PIPELINE = new ParseField("search_pipeline"); public static final ParseField VERBOSE_SEARCH_PIPELINE = new ParseField("verbose_pipeline"); + public static final ParseField QUERY_PLAN_IR = new ParseField("query_plan_ir"); public static SearchSourceBuilder fromXContent(XContentParser parser) throws IOException { return fromXContent(parser, true); @@ -229,6 +233,8 @@ public static HighlightBuilder highlight() { private boolean verbosePipeline = false; + private byte[] queryPlanIR; + /** * Constructs a new search source builder. */ @@ -308,6 +314,10 @@ public SearchSourceBuilder(StreamInput in) throws IOException { if (in.getVersion().onOrAfter(Version.V_2_19_0)) { verbosePipeline = in.readBoolean(); } + if (in.getVersion().onOrAfter(Version.V_3_0_0)) { + BytesReference bytesRef = in.readOptionalBytesReference(); + queryPlanIR = bytesRef != null ? BytesReference.toBytes(bytesRef) : null; + } } @Override @@ -394,6 +404,9 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getVersion().onOrAfter(Version.V_2_19_0)) { out.writeBoolean(verbosePipeline); } + if (out.getVersion().onOrAfter(Version.V_3_0_0)) { + out.writeOptionalBytesReference(queryPlanIR != null ? new BytesArray(queryPlanIR) : null); + } } /** @@ -1171,6 +1184,21 @@ public Boolean verbosePipeline() { return verbosePipeline; } + /** + * Sets the query plan intermediate representation for this search request. + */ + public SearchSourceBuilder queryPlanIR(byte[] queryPlanIR) { + this.queryPlanIR = queryPlanIR; + return this; + } + + /** + * Gets the query plan intermediate representation for this search request. + */ + public byte[] queryPlanIR() { + return queryPlanIR; + } + /** * Rewrites this search source builder into its primitive form. e.g. by * rewriting the QueryBuilder. If the builder did not change the identity @@ -1270,6 +1298,7 @@ private SearchSourceBuilder shallowCopy( rewrittenBuilder.derivedFields = derivedFields; rewrittenBuilder.searchPipeline = searchPipeline; rewrittenBuilder.verbosePipeline = verbosePipeline; + rewrittenBuilder.queryPlanIR = queryPlanIR; return rewrittenBuilder; } @@ -1341,6 +1370,8 @@ public void parseXContent(XContentParser parser, boolean checkTrailingTokens) th searchPipeline = parser.text(); } else if (VERBOSE_SEARCH_PIPELINE.match(currentFieldName, parser.getDeprecationHandler())) { verbosePipeline = parser.booleanValue(); + } else if (QUERY_PLAN_IR.match(currentFieldName, parser.getDeprecationHandler())) { + queryPlanIR = parser.binaryValue(); } else { throw new ParsingException( parser.getTokenLocation(), @@ -1678,6 +1709,10 @@ public XContentBuilder innerToXContent(XContentBuilder builder, Params params) t builder.field(VERBOSE_SEARCH_PIPELINE.getPreferredName(), verbosePipeline); } + if (queryPlanIR != null) { + builder.field(QUERY_PLAN_IR.getPreferredName(), queryPlanIR); + } + return builder; } @@ -1957,7 +1992,8 @@ public int hashCode() { derivedFieldsObject, derivedFields, searchPipeline, - verbosePipeline + verbosePipeline, + Arrays.hashCode(queryPlanIR) ); } @@ -2004,7 +2040,8 @@ public boolean equals(Object obj) { && Objects.equals(derivedFieldsObject, other.derivedFieldsObject) && Objects.equals(derivedFields, other.derivedFields) && Objects.equals(searchPipeline, other.searchPipeline) - && Objects.equals(verbosePipeline, other.verbosePipeline); + && Objects.equals(verbosePipeline, other.verbosePipeline) + && Arrays.equals(queryPlanIR, other.queryPlanIR); } @Override diff --git a/server/src/main/java/org/opensearch/search/internal/SearchContext.java b/server/src/main/java/org/opensearch/search/internal/SearchContext.java index ac38b364fd36b..e72ceaccfd6ce 100644 --- a/server/src/main/java/org/opensearch/search/internal/SearchContext.java +++ b/server/src/main/java/org/opensearch/search/internal/SearchContext.java @@ -84,6 +84,7 @@ import org.opensearch.search.suggest.SuggestionSearchContext; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -594,4 +595,10 @@ public boolean setFlushModeIfAbsent(FlushMode flushMode) { return false; } + + public void setDFResults(Map dfResults) {} + + public Map getDFResults() { + return Collections.emptyMap(); + } } diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhase.java b/server/src/main/java/org/opensearch/search/query/QueryPhase.java index f8427440a6c13..2e62762f56932 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhase.java @@ -60,6 +60,9 @@ import org.opensearch.search.aggregations.AggregationProcessor; import org.opensearch.search.aggregations.DefaultAggregationProcessor; import org.opensearch.search.aggregations.GlobalAggCollectorManager; +import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.InternalAggregations; +import org.opensearch.search.aggregations.metrics.InternalValueCount; import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.ScrollContext; import org.opensearch.search.internal.SearchContext; @@ -72,6 +75,7 @@ import org.opensearch.threadpool.ThreadPool; import java.io.IOException; +import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -148,18 +152,43 @@ public void execute(SearchContext searchContext) throws QueryPhaseExecutionExcep LOGGER.trace("{}", new SearchContextSourcePrinter(searchContext)); } + // Keeping AggregationProcessor and preProcess uncommented since it builds aggregation nesting final AggregationProcessor aggregationProcessor = queryPhaseSearcher.aggregationProcessor(searchContext); // Pre-process aggregations as late as possible. In the case of a DFS_Q_T_F // request, preProcess is called on the DFS phase phase, this is why we pre-process them // here to make sure it happens during the QUERY phase aggregationProcessor.preProcess(searchContext); - boolean rescore = executeInternal(searchContext, queryPhaseSearcher); - if (rescore) { // only if we do a regular search - rescoreProcessor.process(searchContext); + searchContext.queryResult() + .topDocs( + new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), Lucene.EMPTY_SCORE_DOCS), Float.NaN), + new DocValueFormat[0] + ); + + // boolean rescore = executeInternal(searchContext, queryPhaseSearcher); + + // if (rescore) { // only if we do a regular search + // rescoreProcessor.process(searchContext); + // } + // suggestProcessor.process(searchContext); + // aggregationProcessor.postProcess(searchContext); + + // Post process + // Create a list to store the InternalValueCount objects + // Can we map from the preprocess + List internalAggList = new ArrayList<>(); + Map map = searchContext.getDFResults(); + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + Object[] value = entry.getValue(); + // SUM, Count will work with integer casting, but (Integer) value casting may not work well for avg + InternalValueCount ivc = new InternalValueCount(key, (long) value[0], null); + internalAggList.add(ivc); } - suggestProcessor.process(searchContext); - aggregationProcessor.postProcess(searchContext); + + final InternalAggregations internalAggregations = InternalAggregations.from(internalAggList); + QuerySearchResult querySearchResult = searchContext.queryResult(); + querySearchResult.aggregations(internalAggregations); if (searchContext.getProfilers() != null) { ProfileShardResult shardResults = SearchProfileShardResults.buildShardResults( diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcherWrapper.java b/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcherWrapper.java index 19a59e9f7bebe..80ed92500fc49 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcherWrapper.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcherWrapper.java @@ -54,11 +54,13 @@ public boolean searchWith( boolean hasFilterCollector, boolean hasTimeout ) throws IOException { - if (searchContext.shouldUseConcurrentSearch()) { - return concurrentQueryPhaseSearcher.searchWith(searchContext, searcher, query, collectors, hasFilterCollector, hasTimeout); - } else { - return defaultQueryPhaseSearcher.searchWith(searchContext, searcher, query, collectors, hasFilterCollector, hasTimeout); - } + // if (searchContext.shouldUseConcurrentSearch()) { + // return concurrentQueryPhaseSearcher.searchWith(searchContext, searcher, query, collectors, hasFilterCollector, hasTimeout); + // } else { + // return defaultQueryPhaseSearcher.searchWith(searchContext, searcher, query, collectors, hasFilterCollector, hasTimeout); + // } + // + return defaultQueryPhaseSearcher.searchWith(searchContext, searcher, query, collectors, hasFilterCollector, hasTimeout); } /** @@ -68,10 +70,11 @@ public boolean searchWith( */ @Override public AggregationProcessor aggregationProcessor(SearchContext searchContext) { - if (searchContext.shouldUseConcurrentSearch()) { - return concurrentQueryPhaseSearcher.aggregationProcessor(searchContext); - } else { - return defaultQueryPhaseSearcher.aggregationProcessor(searchContext); - } + // if (searchContext.shouldUseConcurrentSearch()) { + // return concurrentQueryPhaseSearcher.aggregationProcessor(searchContext); + // } else { + // return defaultQueryPhaseSearcher.aggregationProcessor(searchContext); + // } + return defaultQueryPhaseSearcher.aggregationProcessor(searchContext); } } diff --git a/server/src/test/java/org/opensearch/index/IndexModuleTests.java b/server/src/test/java/org/opensearch/index/IndexModuleTests.java index 29dd60c3e638f..74ea093c770f2 100644 --- a/server/src/test/java/org/opensearch/index/IndexModuleTests.java +++ b/server/src/test/java/org/opensearch/index/IndexModuleTests.java @@ -270,7 +270,8 @@ private IndexService newIndexService(IndexModule module) throws IOException { DefaultRemoteStoreSettings.INSTANCE, s -> {}, null, - () -> TieredMergePolicyProvider.DEFAULT_MAX_MERGE_AT_ONCE + () -> TieredMergePolicyProvider.DEFAULT_MAX_MERGE_AT_ONCE, + null ); } diff --git a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java index a300e2c9cc717..7513db2d13ab7 100644 --- a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java @@ -738,7 +738,8 @@ protected IndexShard newShard( new Object(), clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, - ReferencedSegmentsPublisher.EMPTY + ReferencedSegmentsPublisher.EMPTY, + null ); indexShard.addShardFailureCallback(DEFAULT_SHARD_FAILURE_HANDLER); if (remoteStoreStatsTrackerFactory != null) { From 1eaca09a80bf32289dbb4ffee97e3ea6b031ed96 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Fri, 8 Aug 2025 00:01:15 +0530 Subject: [PATCH 007/112] Add extensions for csv codec Signed-off-by: bharath-techie --- libs/dataformat-csv/build.gradle | 84 ++++++++ libs/dataformat-csv/jni/Cargo.toml | 53 +++++ libs/dataformat-csv/jni/src/context.rs | 70 +++++++ libs/dataformat-csv/jni/src/csv_exec.rs | 24 +++ libs/dataformat-csv/jni/src/lib.rs | 198 ++++++++++++++++++ libs/dataformat-csv/jni/src/runtime.rs | 27 +++ libs/dataformat-csv/jni/src/stream.rs | 43 ++++ libs/dataformat-csv/jni/src/substrait.rs | 37 ++++ libs/dataformat-csv/jni/src/util.rs | 63 ++++++ .../datafusion/csv/CsvDataSourceCodec.java | 142 +++++++++++++ .../datafusion/csv/CsvRecordBatchStream.java | 119 +++++++++++ .../datafusion/csv/JniLibraryLoader.java | 151 +++++++++++++ ....opensearch.datafusion.spi.DataSourceCodec | 1 + plugins/engine-datafusion/build.gradle | 3 + plugins/engine-datafusion/jni/Cargo.toml | 28 ++- .../opensearch/datafusion/DataFusionJNI.java | 13 +- .../datafusion/DataFusionPlugin.java | 1 + .../datafusion/core/GlobalRuntimeEnv.java | 31 +++ .../datafusion/spi/DataSourceCodec.java | 52 +++++ .../datafusion/spi/DataSourceRegistry.java | 120 +++++++++++ .../datafusion/spi/RecordBatchStream.java | 39 ++++ ....opensearch.datafusion.spi.DataSourceCodec | 5 + 22 files changed, 1301 insertions(+), 3 deletions(-) create mode 100644 libs/dataformat-csv/build.gradle create mode 100644 libs/dataformat-csv/jni/Cargo.toml create mode 100644 libs/dataformat-csv/jni/src/context.rs create mode 100644 libs/dataformat-csv/jni/src/csv_exec.rs create mode 100644 libs/dataformat-csv/jni/src/lib.rs create mode 100644 libs/dataformat-csv/jni/src/runtime.rs create mode 100644 libs/dataformat-csv/jni/src/stream.rs create mode 100644 libs/dataformat-csv/jni/src/substrait.rs create mode 100644 libs/dataformat-csv/jni/src/util.rs create mode 100644 libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java create mode 100644 libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java create mode 100644 libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java create mode 100644 libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java create mode 100644 plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec diff --git a/libs/dataformat-csv/build.gradle b/libs/dataformat-csv/build.gradle new file mode 100644 index 0000000000000..a6dadddcb3dea --- /dev/null +++ b/libs/dataformat-csv/build.gradle @@ -0,0 +1,84 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +apply plugin: 'opensearch.java' + +dependencies { + // TODO : circular dependency + compileOnly project(':plugins:engine-datafusion') + + implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" + implementation "org.apache.logging.log4j:log4j-core:${versions.log4j}" + + testImplementation "junit:junit:${versions.junit}" +} + +// Task to build the Rust JNI library +task buildRustLibrary(type: Exec) { + description = 'Build the Rust JNI library using Cargo' + group = 'build' + + workingDir file('jni') + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + + def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' + def targetDir = "target/${buildType}" + + def cargoArgs = ['cargo', 'build'] + if (buildType == 'release') { + cargoArgs.add('--release') + } + + if (osName.contains('windows')) { + commandLine cargoArgs + } else { + commandLine cargoArgs + } + environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath + + inputs.files fileTree('jni/src') + inputs.file 'jni/Cargo.toml' + outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") + System.out.println("Building Rust library in ${buildType} mode"); +} + +task copyNativeLibrary(type: Copy, dependsOn: buildRustLibrary) { + description = 'Copy the native library to Java resources' + group = 'build' + + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' + + from file("jni/target/${buildType}/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") + into file('src/main/resources') + + rename { filename -> + "libopensearch_datafusion_csv_jni${libExtension}" + } +} + +compileJava.dependsOn copyNativeLibrary + +processResources.dependsOn copyNativeLibrary + +jar { + archiveBaseName = 'opensearch-dataformat-csv-codec' + duplicatesStrategy = DuplicatesStrategy.WARN + dependsOn copyNativeLibrary +} + +clean { + delete file('jni/target') + delete file('src/main/resources/libopensearch_datafusion_csv_jni.dylib') + delete file('src/main/resources/libopensearch_datafusion_csv_jni.so') + delete file('src/main/resources/opensearch_datafusion_csv_jni.dll') +} + +test { + systemProperty 'java.library.path', file('src/main/resources').absolutePath +} diff --git a/libs/dataformat-csv/jni/Cargo.toml b/libs/dataformat-csv/jni/Cargo.toml new file mode 100644 index 0000000000000..be5b6c92bfa66 --- /dev/null +++ b/libs/dataformat-csv/jni/Cargo.toml @@ -0,0 +1,53 @@ +[package] +name = "opensearch-datafusion-csv-jni" +version = "0.1.0" +edition = "2021" + +[lib] +name = "opensearch_datafusion_csv_jni" +crate-type = ["cdylib"] + +[dependencies] +# DataFusion dependencies +datafusion = "49.0.0" +datafusion-substrait = "49.0.0" +arrow = "54.0.0" +arrow-array = "54.0.0" +arrow-schema = "54.0.0" +arrow-buffer = "54.0.0" + +# JNI dependencies +jni = "0.21" + +# Async runtime +tokio = { version = "1.0", features = ["full"] } +futures = "0.3" +futures-util = "0.3" + +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +# Error handling +anyhow = "1.0" +thiserror = "1.0" + +# Logging +log = "0.4" + +# Parquet support +parquet = "54.0.0" + +# Object store for file access +object_store = "0.11" +url = "2.0" + +# Substrait support +substrait = "0.47" +prost = "0.13" + +# Temporary directory support +tempfile = "3.0" + +[build-dependencies] +cbindgen = "0.27" diff --git a/libs/dataformat-csv/jni/src/context.rs b/libs/dataformat-csv/jni/src/context.rs new file mode 100644 index 0000000000000..0878254479201 --- /dev/null +++ b/libs/dataformat-csv/jni/src/context.rs @@ -0,0 +1,70 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use datafusion::prelude::*; +use datafusion::execution::context::SessionContext; +use std::collections::HashMap; +use std::sync::Arc; +use anyhow::Result; + +/// Manages DataFusion session contexts +pub struct SessionContextManager { + contexts: HashMap<*mut SessionContext, Arc>, + next_runtime_id: u64, +} + +impl SessionContextManager { + pub fn new() -> Self { + Self { + contexts: HashMap::new(), + next_runtime_id: 1, + } + } + + pub async fn register_directory( + &mut self, + table_name: &str, + directory_path: &str, + options: HashMap, + ) -> Result { + // Placeholder implementation - would register csv directory as table + log::info!("Registering directory: {} at path: {} with options: {:?}", + table_name, directory_path, options); + + let runtime_id = self.next_runtime_id; + self.next_runtime_id += 1; + Ok(runtime_id) + } + + pub async fn create_session_context( + &mut self, + config: HashMap, + ) -> Result<*mut SessionContext> { + // Create actual DataFusion session context + let mut session_config = SessionConfig::new(); + + // Apply configuration options + if let Some(batch_size) = config.get("batch_size") { + if let Ok(size) = batch_size.parse::() { + session_config = session_config.with_batch_size(size); + } + } + + let ctx = Arc::new(SessionContext::new_with_config(session_config)); + let ctx_ptr = Arc::as_ptr(&ctx) as *mut SessionContext; + + self.contexts.insert(ctx_ptr, ctx); + + Ok(ctx_ptr) + } + + pub async fn close_session_context(&mut self, ctx_ptr: *mut SessionContext) -> Result<()> { + self.contexts.remove(&ctx_ptr); + Ok(()) + } + + pub fn get_context(&self, ctx_ptr: *mut SessionContext) -> Option<&Arc> { + self.contexts.get(&ctx_ptr) + } +} diff --git a/libs/dataformat-csv/jni/src/csv_exec.rs b/libs/dataformat-csv/jni/src/csv_exec.rs new file mode 100644 index 0000000000000..2043be331b35a --- /dev/null +++ b/libs/dataformat-csv/jni/src/csv_exec.rs @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use anyhow::Result; + +/// Csv-specific execution utilities - placeholder implementation +pub struct CsvExecutor; + +impl CsvExecutor { + pub fn new() -> Self { + Self + } + + /// Create a listing table for Csv files - placeholder + pub async fn create_csv_table( + &self, + table_path: &str, + ) -> Result { + // Placeholder implementation + log::info!("Creating csv table for path: {}", table_path); + Ok(1) // Return dummy table ID + } +} diff --git a/libs/dataformat-csv/jni/src/lib.rs b/libs/dataformat-csv/jni/src/lib.rs new file mode 100644 index 0000000000000..34618f94a9372 --- /dev/null +++ b/libs/dataformat-csv/jni/src/lib.rs @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +//! OpenSearch DataFusion Csv JNI Library +//! +//! This library provides JNI bindings for DataFusion query execution, + +use jni::JNIEnv; +use jni::objects::{JClass, JString, JObjectArray, JByteArray}; +use jni::sys::{jlong, jstring}; +use std::ptr; +use std::collections::HashMap; + +mod context; +mod runtime; +mod stream; +mod substrait; +mod util; +mod csv_exec; + +use context::SessionContextManager; +use runtime::RuntimeManager; +use stream::RecordBatchStreamWrapper; +use substrait::SubstraitExecutor; +use datafusion::execution::context::SessionContext; +use datafusion::execution::runtime_env::RuntimeEnv; + +/** +TODO : Put more thought into this +**/ +static mut RUNTIME_MANAGER: Option = None; + +static mut SESSION_MANAGER: Option = None; + +/// Initialize the managers (call once) +fn init_managers() { + unsafe { + if RUNTIME_MANAGER.is_none() { + RUNTIME_MANAGER = Some(RuntimeManager::new()); + } + if SESSION_MANAGER.is_none() { + SESSION_MANAGER = Some(SessionContextManager::new()); + } + } +} +static mut RUNTIME_ENVIRONMENTS: Option> = None; + + +/// Register a directory as a table in the global context and return runtime environment ID +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeRegisterDirectory( + mut env: JNIEnv, + _class: JClass, + table_name: JString, + directory_path: JString, + files: JObjectArray, + runtime_id: jlong +) { + let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; + // placeholder +} + +/// Create a new session context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCreateSessionContext( + mut env: JNIEnv, + _class: JClass, + config_keys: JObjectArray, + config_values: JObjectArray, +) -> jlong { + // Initialize managers if not already done + init_managers(); + + // PLACEHOLDER + // Parse configuration from JNI arrays + let config = match util::parse_string_map(&mut env, config_keys, config_values) { + Ok(cfg) => cfg, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to parse config: {}", e)); + return 0; + } + }; + + // Create session context + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + SESSION_MANAGER.as_mut().unwrap().create_session_context(config).await + }) + } { + Ok(context_ptr) => context_ptr as jlong, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to create session context: {}", e)); + 0 + } + } +} + +/// Execute a Substrait query plan +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeExecuteSubstraitQuery( + mut env: JNIEnv, + _class: JClass, + session_context_ptr: jlong, + substrait_plan: JByteArray, +) -> jlong { + + // Convert JByteArray to Vec + let substrait_plan_bytes = match env.convert_byte_array(substrait_plan) { + Ok(bytes) => bytes, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to convert substrait plan: {}", e)); + return 0; + } + }; + + // Execute the query + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + let executor = SubstraitExecutor::new(); + executor.execute_plan(session_context_ptr as *mut SessionContext, &substrait_plan_bytes).await + }) + } { + Ok(stream_ptr) => stream_ptr as jlong, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to execute query: {}", e)); + 0 + } + } +} + +/// Close a session context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCloseSessionContext( + mut env: JNIEnv, + _class: JClass, + session_context_ptr: jlong, +) { + + if let Err(e) = unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + SESSION_MANAGER.as_mut().unwrap() + .close_session_context(session_context_ptr as *mut SessionContext) + .await + }) + } { + util::throw_exception(&mut env, &format!("Failed to close session context: {}", e)); + } +} + +/// Get the next record batch from a stream +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeNextBatch( + mut env: JNIEnv, + _class: JClass, + stream_ptr: jlong, +) -> jstring { + + let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamWrapper) }; + + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + stream.next_batch().await + }) + } { + Ok(Some(batch_json)) => { + match env.new_string(&batch_json) { + Ok(jstr) => jstr.into_raw(), + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to create Java string: {}", e)); + ptr::null_mut() + } + } + } + Ok(None) => ptr::null_mut(), // End of stream + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to get next batch: {}", e)); + ptr::null_mut() + } + } +} + +/// Close a record batch stream +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeCloseStream( + _env: JNIEnv, + _class: JClass, + stream_ptr: jlong, +) { + if stream_ptr != 0 { + let stream = unsafe { Box::from_raw(stream_ptr as *mut RecordBatchStreamWrapper) }; + drop(stream); + } +} diff --git a/libs/dataformat-csv/jni/src/runtime.rs b/libs/dataformat-csv/jni/src/runtime.rs new file mode 100644 index 0000000000000..bcd48a7dee58b --- /dev/null +++ b/libs/dataformat-csv/jni/src/runtime.rs @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use tokio::runtime::Runtime; +use std::future::Future; + +/// Manages the Tokio runtime for async operations +pub struct RuntimeManager { + runtime: Runtime, +} + +impl RuntimeManager { + pub fn new() -> Self { + // Placeholder + + let runtime = Runtime::new().expect("Failed to create Tokio runtime"); + Self { runtime } + } + + pub fn block_on(&self, future: F) -> F::Output + where + F: Future, + { + self.runtime.block_on(future) + } +} diff --git a/libs/dataformat-csv/jni/src/stream.rs b/libs/dataformat-csv/jni/src/stream.rs new file mode 100644 index 0000000000000..2fe30f941223b --- /dev/null +++ b/libs/dataformat-csv/jni/src/stream.rs @@ -0,0 +1,43 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use anyhow::Result; +use serde_json; + +/// Wrapper for DataFusion record batch streams - placeholder implementation +pub struct RecordBatchStreamWrapper { + batch_count: u32, + is_placeholder: bool, +} + +impl RecordBatchStreamWrapper { + pub fn new_placeholder() -> Self { + Self { + batch_count: 0, + is_placeholder: true, + } + } + + pub async fn next_batch(&mut self) -> Result> { + // Return placeholder data for first few calls, then None + if self.is_placeholder { + if self.batch_count < 2 { + self.batch_count += 1; + let placeholder_data = serde_json::json!({ + "rows": [ + {"id": self.batch_count, "name": format!("placeholder_row_{}", self.batch_count)} + ], + "num_rows": 1, + "num_columns": 2 + }); + Ok(Some(serde_json::to_string(&placeholder_data)?)) + } else { + Ok(None) // End of stream + } + } else { + // Real implementation would go here + Ok(None) + } + } +} diff --git a/libs/dataformat-csv/jni/src/substrait.rs b/libs/dataformat-csv/jni/src/substrait.rs new file mode 100644 index 0000000000000..d8ca0f2846fd7 --- /dev/null +++ b/libs/dataformat-csv/jni/src/substrait.rs @@ -0,0 +1,37 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use datafusion::execution::context::SessionContext; +use crate::stream::RecordBatchStreamWrapper; +use anyhow::Result; + +/// Executes Substrait query plans +pub struct SubstraitExecutor; + +impl SubstraitExecutor { + pub fn new() -> Self { + Self + } + + pub async fn execute_plan( + &self, + session_context_ptr: *mut SessionContext, + substrait_plan_bytes: &[u8], + ) -> Result<*mut RecordBatchStreamWrapper> { + // Placeholder implementation - would normally: + // 1. Parse Substrait plan from substrait_plan_bytes + // 2. Convert to DataFusion logical plan using datafusion-substrait + // 3. Execute using the session context + // 4. Return actual record batch stream + + log::info!("Executing Substrait plan with {} bytes for session: {:?}", + substrait_plan_bytes.len(), session_context_ptr); + + // For now, return a placeholder stream + let wrapper = RecordBatchStreamWrapper::new_placeholder(); + let wrapper_ptr = Box::into_raw(Box::new(wrapper)); + + Ok(wrapper_ptr) + } +} diff --git a/libs/dataformat-csv/jni/src/util.rs b/libs/dataformat-csv/jni/src/util.rs new file mode 100644 index 0000000000000..5055c1312791a --- /dev/null +++ b/libs/dataformat-csv/jni/src/util.rs @@ -0,0 +1,63 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use jni::JNIEnv; +use jni::objects::{JObjectArray, JString}; +use std::collections::HashMap; +use anyhow::Result; + +/// Parse a string map from JNI arrays +pub fn parse_string_map( + env: &mut JNIEnv, + keys: JObjectArray, + values: JObjectArray, +) -> Result> { + let mut map = HashMap::new(); + + let keys_len = env.get_array_length(&keys)?; + let values_len = env.get_array_length(&values)?; + + if keys_len != values_len { + return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); + } + + for i in 0..keys_len { + let key_obj = env.get_object_array_element(&keys, i)?; + let value_obj = env.get_object_array_element(&values, i)?; + + let key_jstring = JString::from(key_obj); + let value_jstring = JString::from(value_obj); + + let key_str = env.get_string(&key_jstring)?; + let value_str = env.get_string(&value_jstring)?; + + map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); + } + + Ok(map) +} + +// Parse a string map from JNI arrays +pub fn parse_string_arr( + env: &mut JNIEnv, + files: JObjectArray, +) -> Result> { + let length = env.get_array_length(&files).unwrap(); + let mut rust_strings: Vec = Vec::with_capacity(length as usize); + for i in 0..length { + let file_obj = env.get_object_array_element(&files, i).unwrap(); + let jstring = JString::from(file_obj); + let rust_str: String = env + .get_string(&jstring) + .expect("Couldn't get java string!") + .into(); + rust_strings.push(rust_str); + } + Ok(rust_strings) +} + +/// Throw a Java exception +pub fn throw_exception(env: &mut JNIEnv, message: &str) { + let _ = env.throw_new("java/lang/RuntimeException", message); +} diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java new file mode 100644 index 0000000000000..ea796c6b14ef2 --- /dev/null +++ b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java @@ -0,0 +1,142 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.datafusion.spi.DataSourceCodec; +import org.opensearch.datafusion.spi.RecordBatchStream; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Datasource codec implementation for CSV files + */ +public class CsvDataSourceCodec implements DataSourceCodec { + + private static final Logger logger = LogManager.getLogger(CsvDataSourceCodec.class); + private static final AtomicLong runtimeIdGenerator = new AtomicLong(0); + private static final AtomicLong sessionIdGenerator = new AtomicLong(0); + private final ConcurrentHashMap sessionContexts = new ConcurrentHashMap<>(); + + // JNI library loading + static { + try { + JniLibraryLoader.loadLibrary(); + logger.info("DataFusion JNI library loaded successfully"); + } catch (Exception e) { + logger.error("Failed to load DataFusion JNI library", e); + throw new RuntimeException("Failed to initialize DataFusion JNI library", e); + } + } + + @Override + public CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Registering directory: {} with {} files", directoryPath, fileNames.size()); + + // Convert file names to arrays for JNI + String[] fileArray = fileNames.toArray(new String[0]); + + // Call native method to register directory + nativeRegisterDirectory("csv_table", directoryPath, fileArray, runtimeId); + return null; + } catch (Exception e) { + logger.error("Failed to register directory: " + directoryPath, e); + throw new CompletionException("Failed to register directory", e); + } + }); + } + + @Override + public CompletableFuture createSessionContext(long globalRuntimeEnvId) { + return CompletableFuture.supplyAsync(() -> { + try { + long sessionId = sessionIdGenerator.incrementAndGet(); + logger.debug("Creating session context with ID: {} for runtime: {}", sessionId, globalRuntimeEnvId); + + // Default configuration + String[] configKeys = { "batch_size", "target_partitions" }; + String[] configValues = { "1024", "4" }; + + // Create native session context + long nativeContextPtr = nativeCreateSessionContext(configKeys, configValues); + sessionContexts.put(sessionId, nativeContextPtr); + + logger.info("Created session context with ID: {}", sessionId); + return sessionId; + } catch (Exception e) { + logger.error("Failed to create session context for runtime: " + globalRuntimeEnvId, e); + throw new CompletionException("Failed to create session context", e); + } + }); + } + + @Override + public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Executing Substrait query for session: {}", sessionContextId); + + Long nativeContextPtr = sessionContexts.get(sessionContextId); + if (nativeContextPtr == null) { + throw new IllegalArgumentException("Invalid session context ID: " + sessionContextId); + } + + // Execute query and get native stream pointer + long nativeStreamPtr = nativeExecuteSubstraitQuery(nativeContextPtr, substraitPlanBytes); + + // Create Java wrapper for the native stream + RecordBatchStream stream = new CsvRecordBatchStream(nativeStreamPtr); + + logger.info("Successfully executed Substrait query for session: {}", sessionContextId); + return stream; + } catch (Exception e) { + logger.error("Failed to execute Substrait query for session: " + sessionContextId, e); + throw new CompletionException("Failed to execute Substrait query", e); + } + }); + } + + @Override + public CompletableFuture closeSessionContext(long sessionContextId) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Closing session context: {}", sessionContextId); + + Long nativeContextPtr = sessionContexts.remove(sessionContextId); + if (nativeContextPtr != null) { + nativeCloseSessionContext(nativeContextPtr); + logger.info("Successfully closed session context: {}", sessionContextId); + } else { + logger.warn("Session context not found: {}", sessionContextId); + } + + return null; + } catch (Exception e) { + logger.error("Failed to close session context: " + sessionContextId, e); + throw new CompletionException("Failed to close session context", e); + } + }); + } + + // Native method declarations - these will be implemented in the JNI library + private static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); + + private static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); + + private static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); + + private static native void nativeCloseSessionContext(long sessionContextPtr); +} diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java new file mode 100644 index 0000000000000..16feb1149885b --- /dev/null +++ b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java @@ -0,0 +1,119 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.datafusion.spi.RecordBatchStream; + +import java.util.concurrent.CompletableFuture; + +/** + * TODO : this need not be here - nothing specific to CSV + * Native implementation of RecordBatchStream that wraps a JNI stream pointer. + * This class provides a Java interface over native DataFusion record batches. + */ +public class CsvRecordBatchStream implements RecordBatchStream { + + private static final Logger logger = LogManager.getLogger(CsvRecordBatchStream.class); + + private final long nativeStreamPtr; + private volatile boolean closed = false; + private volatile boolean hasNextCached = false; + private volatile boolean hasNextValue = false; + + /** + * Creates a new CsvRecordBatchStream wrapping the given native stream pointer. + * + * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream + */ + public CsvRecordBatchStream(long nativeStreamPtr) { + if (nativeStreamPtr == 0) { + throw new IllegalArgumentException("Invalid native stream pointer"); + } + this.nativeStreamPtr = nativeStreamPtr; + logger.debug("Created CsvRecordBatchStream with pointer: {}", nativeStreamPtr); + } + + @Override + public Object getSchema() { + return "CsvSchema"; // Placeholder + } + + @Override + public CompletableFuture next() { + // PlaceholderImpl + return CompletableFuture.supplyAsync(() -> { + if (closed) { + return null; + } + + try { + // Get the next batch from native code + String batch = nativeNextBatch(nativeStreamPtr); + + // Reset cached hasNext value since we consumed a batch + hasNextCached = false; + + logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); + return batch; + } catch (Exception e) { + logger.error("Error getting next batch from stream", e); + return null; + } + }); + } + + @Override + public boolean hasNext() { + // Placeholder impl + if (closed) { + return false; + } + + if (hasNextCached) { + return hasNextValue; + } + + try { + // Check if there's a next batch available + // This is a simplified implementation - in practice, you might want to + // peek at the stream without consuming the batch + String nextBatch = nativeNextBatch(nativeStreamPtr); + hasNextValue = (nextBatch != null); + hasNextCached = true; + + logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); + return hasNextValue; + } catch (Exception e) { + logger.error("Error checking for next batch in stream", e); + return false; + } + } + + @Override + public void close() { + if (!closed) { + logger.debug("Closing CsvRecordBatchStream with pointer: {}", nativeStreamPtr); + try { + nativeCloseStream(nativeStreamPtr); + closed = true; + logger.debug("Successfully closed CsvRecordBatchStream"); + } catch (Exception e) { + logger.error("Error closing CsvRecordBatchStream", e); + throw e; + } + } + } + + // Native method declarations + private static native String nativeNextBatch(long streamPtr); + + private static native void nativeCloseStream(long streamPtr); +} diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java new file mode 100644 index 0000000000000..49fb8d9b79c13 --- /dev/null +++ b/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java @@ -0,0 +1,151 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + +/** + * Utility class for loading the data source JNI library. + */ +public class JniLibraryLoader { + + private static final Logger logger = LogManager.getLogger(JniLibraryLoader.class); + private static volatile boolean libraryLoaded = false; + + private static final String LIBRARY_NAME = "opensearch_datafusion_csv_jni"; + + /** + * Loads the DataFusion JNI library. This method is thread-safe and will only + * load the library once. + */ + public static synchronized void loadLibrary() { + if (libraryLoaded) { + return; + } + + try { + // First try to load from system library path + System.loadLibrary(LIBRARY_NAME); + logger.info("Loaded DataFusion JNI library from system path"); + libraryLoaded = true; + return; + } catch (UnsatisfiedLinkError e) { + logger.debug("Could not load library from system path, trying to extract from JAR", e); + } + + // Try to extract and load from JAR resources + String libraryPath = extractLibraryFromJar(); + if (libraryPath != null) { + try { + System.load(libraryPath); + logger.info("Loaded DataFusion JNI library from extracted path: {}", libraryPath); + libraryLoaded = true; + return; + } catch (UnsatisfiedLinkError e) { + logger.error("Failed to load extracted library from: " + libraryPath, e); + } + } + + throw new RuntimeException("Failed to load DataFusion JNI library"); + } + + /** + * Extracts the platform-specific JNI library from JAR resources to a temporary file. + * + * @return Path to the extracted library file, or null if extraction failed + */ + private static String extractLibraryFromJar() { + String osName = System.getProperty("os.name").toLowerCase(); + String osArch = System.getProperty("os.arch").toLowerCase(); + + logger.debug("Detecting platform: OS={}, Arch={}", osName, osArch); + + String libraryFileName = getLibraryFileName(osName); + if (libraryFileName == null) { + logger.error("Unsupported platform: {}", osName); + return null; + } + + String resourcePath = "/" + libraryFileName; + logger.debug("Looking for library resource: {}", resourcePath); + + try (InputStream inputStream = JniLibraryLoader.class.getResourceAsStream(resourcePath)) { + if (inputStream == null) { + logger.error("Library resource not found: {}", resourcePath); + return null; + } + + // Create temporary file + Path tempDir = Files.createTempDirectory("datafusion-jni"); + Path tempLibrary = tempDir.resolve(libraryFileName); + + // Extract library to temporary file + Files.copy(inputStream, tempLibrary, StandardCopyOption.REPLACE_EXISTING); + + // Make executable on Unix-like systems + if (!osName.contains("windows")) { + tempLibrary.toFile().setExecutable(true); + } + + // Schedule cleanup on JVM shutdown + tempLibrary.toFile().deleteOnExit(); + tempDir.toFile().deleteOnExit(); + + String libraryPath = tempLibrary.toAbsolutePath().toString(); + logger.debug("Extracted library to: {}", libraryPath); + return libraryPath; + + } catch (IOException e) { + logger.error("Failed to extract library from JAR", e); + return null; + } + } + + /** + * Gets the platform-specific library file name. + * + * @param osName Operating system name + * @return Library file name, or null if platform is unsupported + */ + private static String getLibraryFileName(String osName) { + String prefix; + String extension; + + if (osName.contains("windows")) { + prefix = ""; + extension = ".dll"; + } else if (osName.contains("mac") || osName.contains("darwin")) { + prefix = "lib"; + extension = ".dylib"; + } else if (osName.contains("linux") || osName.contains("unix")) { + prefix = "lib"; + extension = ".so"; + } else { + return null; + } + + return prefix + LIBRARY_NAME + extension; + } + + /** + * Checks if the JNI library has been loaded. + * + * @return true if the library is loaded, false otherwise + */ + public static boolean isLibraryLoaded() { + return libraryLoaded; + } +} diff --git a/libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec b/libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec new file mode 100644 index 0000000000000..452b39dc4abf7 --- /dev/null +++ b/libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec @@ -0,0 +1 @@ +org.opensearch.datafusion.csv.CsvDataSourceCodec diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index a4b215b19cb72..af87cc361bc52 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -51,6 +51,9 @@ dependencies { testImplementation "junit:junit:${versions.junit}" testImplementation "org.hamcrest:hamcrest:${versions.hamcrest}" testImplementation "org.mockito:mockito-core:${versions.mockito}" + + // Add CSV codec for testing + testImplementation project(':libs:opensearch-dataformat-csv') // TODO : adding implementation results in cycle dependency } // Task to build the Rust JNI library diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 77e76633efe92..7b63233346b13 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -10,9 +10,15 @@ name = "opensearch_datafusion_jni" crate-type = ["cdylib"] [dependencies] +# DataFusion dependencies datafusion = "49.0.0" -arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } arrow-json = "55.2" +datafusion-substrait = "49.0.0" +#arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } +arrow = "55.2.0" +arrow-array = "55.2.0" +arrow-schema = "55.2.0" +arrow-buffer = "55.2.0" # JNI dependencies jni = "0.21" @@ -23,8 +29,9 @@ prost = "0.13" # Async runtime -tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } +tokio = { version = "1.0", features = ["full"] } futures = "0.3" +#tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } # Serialization serde = { version = "1.0", features = ["derive"] } @@ -36,6 +43,23 @@ thiserror = "1.0" # Logging log = "0.4" +# Parquet support +parquet = "53.0.0" + +# Object store for file access +object_store = "0.11" +url = "2.0" + +# Substrait support +substrait = "0.47" +prost = "0.13" + +# Temporary directory support +tempfile = "3.0" + +[build-dependencies] +cbindgen = "0.27" + [profile.release] lto = true diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java index 4ed5e99dc885c..17d7f51057ecb 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java @@ -69,7 +69,6 @@ private static synchronized void loadNativeLibrary() { System.load(tempLib.toAbsolutePath().toString()); libStream.close(); } else { - // Fallback to system library path System.loadLibrary("opensearch_datafusion_jni"); } @@ -79,6 +78,18 @@ private static synchronized void loadNativeLibrary() { } } + /** + * Create a new global runtime environment + * @return runtime env pointer for subsequent operations + */ + public static native long createGlobalRuntime(); + + /** + * Closes global runtime environment + * @return runtime env pointer for subsequent operations + */ + public static native long closeGlobalRuntime(long pointer); + /** * Get version information * @return JSON string with version information diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 44d7103ac08a4..3a774736307a0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -44,6 +44,7 @@ /** * Main plugin class for OpenSearch DataFusion integration. + * */ public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java new file mode 100644 index 0000000000000..8380f8ea2dd67 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java @@ -0,0 +1,31 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.core; + +import static org.opensearch.datafusion.DataFusionJNI.closeGlobalRuntime; +import static org.opensearch.datafusion.DataFusionJNI.createGlobalRuntime; + +public class GlobalRuntimeEnv implements AutoCloseable{ + // ptr to runtime environment in df + private final long ptr; + + + public GlobalRuntimeEnv() { + this.ptr = createGlobalRuntime(); + } + + public long getPointer() { + return ptr; + } + + @Override + public void close() { + closeGlobalRuntime(this.ptr); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java new file mode 100644 index 0000000000000..201e3e3b055a5 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java @@ -0,0 +1,52 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.spi; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +/** + * Service Provider Interface for DataFusion data source codecs. + * Implementations provide access to different data formats (CSV, Parquet, etc.) + * through the DataFusion query engine. + */ +public interface DataSourceCodec { + + /** + * Register a directory containing data files with the runtime environment to prewarm cache + * This ideally should be used as part of each refresh - equivalent of acquire searcher + * where we register the files associated with this particular refresh point + */ + CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId); + + /** + * Create a new session context for query execution. + * + * @param globalRuntimeEnvId the global runtime environment ID + * @return a CompletableFuture containing the session context ID + */ + CompletableFuture createSessionContext(long globalRuntimeEnvId); + + /** + * Execute a Substrait query plan. + * + * @param sessionContextId the session context ID + * @param substraitPlanBytes the serialized Substrait query plan + * @return a CompletableFuture containing the result stream + */ + CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes); + + /** + * Close a session context and free associated resources. + * + * @param sessionContextId the session context ID to close + * @return a CompletableFuture that completes when the context is closed + */ + CompletableFuture closeSessionContext(long sessionContextId); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java new file mode 100644 index 0000000000000..e5684054979ed --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java @@ -0,0 +1,120 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.spi; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.ArrayList; +import java.util.List; +import java.util.ServiceLoader; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Registry for DataFusion data source codecs. + */ +public class DataSourceRegistry { + + private static final Logger logger = LogManager.getLogger(DataSourceRegistry.class); + private static final DataSourceRegistry INSTANCE = new DataSourceRegistry(); + + private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); + private volatile boolean initialized = false; + + private DataSourceRegistry() { + // Private constructor for singleton + } + + /** + * Get the singleton instance of the registry. + * + * @return the registry instance + */ + public static DataSourceRegistry getInstance() { + return INSTANCE; + } + + /** + * Initialize the registry by loading available codecs. + */ + public synchronized void initialize() { + if (initialized) { + return; + } + + logger.info("Initializing DataSource registry"); + + try { + // Use ServiceLoader to discover codec implementations + ServiceLoader loader = ServiceLoader.load(DataSourceCodec.class); + + for (DataSourceCodec codec : loader) { + String codecName = codec.getClass().getSimpleName(); + codecs.put(codecName, codec); + logger.info("Registered DataSource codec: {}", codecName); + } + + initialized = true; + logger.info("DataSource registry initialized with {} codecs", codecs.size()); + + } catch (Exception e) { + logger.error("Failed to initialize DataSource registry", e); + throw new RuntimeException("Failed to initialize DataSource registry", e); + } + } + + /** + * Shutdown the registry and clean up resources. + */ + public synchronized void shutdown() { + logger.info("Shutting down DataSource registry"); + codecs.clear(); + initialized = false; + } + + /** + * Check if any codecs are available. + * + * @return true if codecs are available, false otherwise + */ + public boolean hasCodecs() { + return !codecs.isEmpty(); + } + + /** + * Get the names of all registered codecs. + * + * @return list of codec names + */ + public List getCodecNames() { + return new ArrayList<>(codecs.keySet()); + } + + /** + * Get the default codec (first available codec). + * + * @return the default codec, or null if none available + */ + public DataSourceCodec getDefaultEngine() { + if (codecs.isEmpty()) { + return null; + } + return codecs.values().iterator().next(); + } + + /** + * Get a codec by name. + * + * @param name the codec name + * @return the codec, or null if not found + */ + public DataSourceCodec getCodec(String name) { + return codecs.get(name); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java new file mode 100644 index 0000000000000..18cfb71e93292 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java @@ -0,0 +1,39 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.spi; + +import java.util.concurrent.CompletableFuture; + +/** + * Represents a stream of record batches from a DataFusion query execution. + * This interface provides access to query results in a streaming fashion. + */ +public interface RecordBatchStream extends AutoCloseable { + + /** + * Check if there are more record batches available in the stream. + * + * @return true if more batches are available, false otherwise + */ + boolean hasNext(); + + Object getSchema(); + /** + * Get the next record batch from the stream. + * + * @return the next record batch as a byte array, or null if no more batches + */ + CompletableFuture next(); + + /** + * Close the stream and free associated resources. + */ + @Override + void close(); +} diff --git a/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec b/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec new file mode 100644 index 0000000000000..9b1ec055f7ea2 --- /dev/null +++ b/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec @@ -0,0 +1,5 @@ +# DataFusion Engine implementations +# Add your custom implementations here, e.g.: +# com.example.CustomCsvDataFusionEngine + +# Note: Built-in csv engine is now in separate library From a1e4ae6ee48ad00ac9ecdc768b6c58e90c758c89 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Fri, 15 Aug 2025 19:11:22 +0530 Subject: [PATCH 008/112] adding libs , data source plugin and data source aware plugin Signed-off-by: bharath-techie --- libs/dataformat-csv/build.gradle | 84 ------ libs/vectorized-exec-spi/build.gradle | 30 ++ .../vectorized/execution/package-info.java | 13 + .../execution}/spi/DataSourceCodec.java | 6 +- .../execution}/spi/RecordBatchStream.java | 7 +- .../execution/spi/package-info.java | 13 + plugins/dataformat-csv/build.gradle | 112 +++++++ .../dataformat-csv/jni/Cargo.toml | 0 .../dataformat-csv/jni/src/context.rs | 0 .../dataformat-csv/jni/src/csv_exec.rs | 0 .../dataformat-csv/jni/src/lib.rs | 0 .../dataformat-csv/jni/src/runtime.rs | 0 .../dataformat-csv/jni/src/stream.rs | 0 .../dataformat-csv/jni/src/substrait.rs | 0 .../dataformat-csv/jni/src/util.rs | 0 .../datafusion/csv/CsvDataFormatPlugin.java | 43 +++ .../datafusion/csv/CsvDataSourceCodec.java | 4 +- .../datafusion/csv/CsvRecordBatchStream.java | 4 +- .../datafusion/csv/JniLibraryLoader.java | 39 ++- .../datafusion/csv/package-info.java | 13 + ...h.vectorized.execution.spi.DataSourceCodec | 0 .../resources/plugin-descriptor.properties | 7 + .../csv/CsvDataFormatPluginTests.java | 25 ++ plugins/engine-datafusion/build.gradle | 28 +- plugins/engine-datafusion/jni/src/lib.rs | 283 ++++-------------- .../opensearch/datafusion/DataFusionJNI.java | 98 ------ .../datafusion/DataFusionPlugin.java | 36 +-- .../datafusion/DataFusionQueryJNI.java | 141 +++++++++ .../datafusion/DataFusionService.java | 214 +++++++------ .../datafusion/DataSourceRegistry.java | 72 +++++ .../TransportNodesDataFusionInfoAction.java | 1 + .../datafusion/action/package-info.java | 13 + .../datafusion/core/GlobalRuntimeEnv.java | 18 +- .../datafusion/core/SessionContext.java | 69 +---- .../datafusion/core/package-info.java | 13 + .../opensearch/datafusion/package-info.java | 13 + .../datafusion/spi/DataSourceRegistry.java | 120 -------- ....vectorized.execution.spi.DataSourceCodec} | 0 .../TestDataFusionServiceTests.java | 55 ++++ server/build.gradle | 2 + .../main/java/org/opensearch/node/Node.java | 33 +- .../plugins/DataSourceAwarePlugin.java | 51 ++++ .../opensearch/plugins/DataSourcePlugin.java | 21 ++ 43 files changed, 963 insertions(+), 718 deletions(-) delete mode 100644 libs/dataformat-csv/build.gradle create mode 100644 libs/vectorized-exec-spi/build.gradle create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/package-info.java rename {plugins/engine-datafusion/src/main/java/org/opensearch/datafusion => libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution}/spi/DataSourceCodec.java (85%) rename {plugins/engine-datafusion/src/main/java/org/opensearch/datafusion => libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution}/spi/RecordBatchStream.java (86%) create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java create mode 100644 plugins/dataformat-csv/build.gradle rename {libs => plugins}/dataformat-csv/jni/Cargo.toml (100%) rename {libs => plugins}/dataformat-csv/jni/src/context.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/csv_exec.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/lib.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/runtime.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/stream.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/substrait.rs (100%) rename {libs => plugins}/dataformat-csv/jni/src/util.rs (100%) create mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java rename {libs => plugins}/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java (97%) rename {libs => plugins}/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java (96%) rename {libs => plugins}/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java (78%) create mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java rename libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec => plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec (100%) create mode 100644 plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties create mode 100644 plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/package-info.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/package-info.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/package-info.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java rename plugins/engine-datafusion/src/main/resources/META-INF/services/{org.opensearch.datafusion.spi.DataSourceCodec => org.opensearch.vectorized.execution.spi.DataSourceCodec} (100%) create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java create mode 100644 server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java create mode 100644 server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java diff --git a/libs/dataformat-csv/build.gradle b/libs/dataformat-csv/build.gradle deleted file mode 100644 index a6dadddcb3dea..0000000000000 --- a/libs/dataformat-csv/build.gradle +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -apply plugin: 'opensearch.java' - -dependencies { - // TODO : circular dependency - compileOnly project(':plugins:engine-datafusion') - - implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" - implementation "org.apache.logging.log4j:log4j-core:${versions.log4j}" - - testImplementation "junit:junit:${versions.junit}" -} - -// Task to build the Rust JNI library -task buildRustLibrary(type: Exec) { - description = 'Build the Rust JNI library using Cargo' - group = 'build' - - workingDir file('jni') - def osName = System.getProperty('os.name').toLowerCase() - def libPrefix = osName.contains('windows') ? '' : 'lib' - def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') - - def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' - def targetDir = "target/${buildType}" - - def cargoArgs = ['cargo', 'build'] - if (buildType == 'release') { - cargoArgs.add('--release') - } - - if (osName.contains('windows')) { - commandLine cargoArgs - } else { - commandLine cargoArgs - } - environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath - - inputs.files fileTree('jni/src') - inputs.file 'jni/Cargo.toml' - outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") - System.out.println("Building Rust library in ${buildType} mode"); -} - -task copyNativeLibrary(type: Copy, dependsOn: buildRustLibrary) { - description = 'Copy the native library to Java resources' - group = 'build' - - def osName = System.getProperty('os.name').toLowerCase() - def libPrefix = osName.contains('windows') ? '' : 'lib' - def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') - def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' - - from file("jni/target/${buildType}/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") - into file('src/main/resources') - - rename { filename -> - "libopensearch_datafusion_csv_jni${libExtension}" - } -} - -compileJava.dependsOn copyNativeLibrary - -processResources.dependsOn copyNativeLibrary - -jar { - archiveBaseName = 'opensearch-dataformat-csv-codec' - duplicatesStrategy = DuplicatesStrategy.WARN - dependsOn copyNativeLibrary -} - -clean { - delete file('jni/target') - delete file('src/main/resources/libopensearch_datafusion_csv_jni.dylib') - delete file('src/main/resources/libopensearch_datafusion_csv_jni.so') - delete file('src/main/resources/opensearch_datafusion_csv_jni.dll') -} - -test { - systemProperty 'java.library.path', file('src/main/resources').absolutePath -} diff --git a/libs/vectorized-exec-spi/build.gradle b/libs/vectorized-exec-spi/build.gradle new file mode 100644 index 0000000000000..dfb95964d01f5 --- /dev/null +++ b/libs/vectorized-exec-spi/build.gradle @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +apply plugin: 'opensearch.build' + +description = 'Vectorized engine common interfaces for OpenSearch' + +dependencies { + api project(':libs:opensearch-core') + api project(':libs:opensearch-common') + + testImplementation(project(":test:framework")) { + exclude group: 'org.opensearch', module: 'vectorized-exec-spi' + } +} + +tasks.named('forbiddenApisMain').configure { + replaceSignatureFiles 'jdk-signatures' +} + +jarHell.enabled = false + +test { + systemProperty 'tests.security.manager', 'false' +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/package-info.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/package-info.java new file mode 100644 index 0000000000000..8d91260830538 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * DataFusion integration for OpenSearch. + * Provides JNI bindings and core functionality for DataFusion query engine. + */ +package org.opensearch.vectorized.execution; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java similarity index 85% rename from plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java rename to libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java index 201e3e3b055a5..c42b5d67c8791 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceCodec.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package org.opensearch.datafusion.spi; +package org.opensearch.vectorized.execution.spi; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -22,6 +22,10 @@ public interface DataSourceCodec { * Register a directory containing data files with the runtime environment to prewarm cache * This ideally should be used as part of each refresh - equivalent of acquire searcher * where we register the files associated with this particular refresh point + * @param directoryPath the path to the directory containing data files + * @param fileNames the list of file names to register + * @param runtimeId the runtime environment ID + * @return a CompletableFuture that completes when registration is done */ CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java similarity index 86% rename from plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java rename to libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java index 18cfb71e93292..b79f895c243b9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/RecordBatchStream.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package org.opensearch.datafusion.spi; +package org.opensearch.vectorized.execution.spi; import java.util.concurrent.CompletableFuture; @@ -23,7 +23,12 @@ public interface RecordBatchStream extends AutoCloseable { */ boolean hasNext(); + /** + * Get the schema of the record batches in this stream. + * @return the schema object + */ Object getSchema(); + /** * Get the next record batch from the stream. * diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java new file mode 100644 index 0000000000000..9402386b8746b --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Service Provider Interface (SPI) for DataFusion data source codecs. + * Defines interfaces for implementing different data format support. + */ +package org.opensearch.vectorized.execution.spi; diff --git a/plugins/dataformat-csv/build.gradle b/plugins/dataformat-csv/build.gradle new file mode 100644 index 0000000000000..99860394bff22 --- /dev/null +++ b/plugins/dataformat-csv/build.gradle @@ -0,0 +1,112 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +apply plugin: 'opensearch.opensearchplugin' + +opensearchplugin { + name = 'dataformat-csv' + description = 'CSV data format plugin for OpenSearch DataFusion' + classname = 'org.opensearch.datafusion.csv.CsvDataFormatPlugin' + hasNativeController = false +} + +dependencies { + api project(':libs:opensearch-vectorized-exec-spi') + api project(':libs:opensearch-core') + api project(':libs:opensearch-common') + + testImplementation(project(":test:framework")) { + exclude group: 'org.opensearch', module: 'opensearch-dataformat-csv' + } +} + +// JNI library configuration +task buildJni(type: Exec) { + description = 'Build the Rust JNI library using Cargo' + group = 'build' + + workingDir 'jni' + + // Determine the target directory and library name based on OS + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + + // Find cargo executable - try common locations + def cargoExecutable = 'cargo' + def possibleCargoPaths = [ + System.getenv('HOME') + '/.cargo/bin/cargo', + '/usr/local/bin/cargo', + 'cargo' + ] + + for (String path : possibleCargoPaths) { + if (new File(path).exists()) { + cargoExecutable = path + break + } + } + + // Use release build + //def cargoArgs = ['cargo', 'build', '--release'] + + def cargoArgs = [cargoExecutable, 'build', '--release'] + + if (osName.contains('windows')) { + commandLine cargoArgs + } else { + commandLine cargoArgs + } + + // Set environment variables for cross-compilation if needed + environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath + + inputs.files fileTree('jni/src') + inputs.file 'jni/Cargo.toml' + outputs.files file("jni/target/release/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") +} + +task copyJniLib(type: Copy, dependsOn: buildJni) { + from 'jni/target/release' + into 'src/main/resources' + include '*.dylib', '*.so', '*.dll' + + doLast { + // Remove executable permissions from copied native libraries + fileTree('src/main/resources').matching { + include '*.dylib', '*.so', '*.dll' + }.each { file -> + file.setExecutable(false, false) + file.setReadable(true, false) + file.setWritable(true, false) + } + } +} + +processResources.dependsOn copyJniLib +sourcesJar.dependsOn copyJniLib + +// Ensure file permissions check runs after JNI library is copied +tasks.named('filepermissions').configure { + dependsOn copyJniLib +} + +// Ensure forbidden patterns check runs after JNI library is copied +tasks.named('forbiddenPatterns').configure { + dependsOn copyJniLib + exclude '**/*.dylib', '**/*.so', '**/*.dll' +} + +// Ensure spotless check runs after JNI library is copied +tasks.named('spotlessJava').configure { + dependsOn copyJniLib +} + +test { + systemProperty 'tests.security.manager', 'false' +} diff --git a/libs/dataformat-csv/jni/Cargo.toml b/plugins/dataformat-csv/jni/Cargo.toml similarity index 100% rename from libs/dataformat-csv/jni/Cargo.toml rename to plugins/dataformat-csv/jni/Cargo.toml diff --git a/libs/dataformat-csv/jni/src/context.rs b/plugins/dataformat-csv/jni/src/context.rs similarity index 100% rename from libs/dataformat-csv/jni/src/context.rs rename to plugins/dataformat-csv/jni/src/context.rs diff --git a/libs/dataformat-csv/jni/src/csv_exec.rs b/plugins/dataformat-csv/jni/src/csv_exec.rs similarity index 100% rename from libs/dataformat-csv/jni/src/csv_exec.rs rename to plugins/dataformat-csv/jni/src/csv_exec.rs diff --git a/libs/dataformat-csv/jni/src/lib.rs b/plugins/dataformat-csv/jni/src/lib.rs similarity index 100% rename from libs/dataformat-csv/jni/src/lib.rs rename to plugins/dataformat-csv/jni/src/lib.rs diff --git a/libs/dataformat-csv/jni/src/runtime.rs b/plugins/dataformat-csv/jni/src/runtime.rs similarity index 100% rename from libs/dataformat-csv/jni/src/runtime.rs rename to plugins/dataformat-csv/jni/src/runtime.rs diff --git a/libs/dataformat-csv/jni/src/stream.rs b/plugins/dataformat-csv/jni/src/stream.rs similarity index 100% rename from libs/dataformat-csv/jni/src/stream.rs rename to plugins/dataformat-csv/jni/src/stream.rs diff --git a/libs/dataformat-csv/jni/src/substrait.rs b/plugins/dataformat-csv/jni/src/substrait.rs similarity index 100% rename from libs/dataformat-csv/jni/src/substrait.rs rename to plugins/dataformat-csv/jni/src/substrait.rs diff --git a/libs/dataformat-csv/jni/src/util.rs b/plugins/dataformat-csv/jni/src/util.rs similarity index 100% rename from libs/dataformat-csv/jni/src/util.rs rename to plugins/dataformat-csv/jni/src/util.rs diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java new file mode 100644 index 0000000000000..e8f0d2306d2e6 --- /dev/null +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java @@ -0,0 +1,43 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv; + +import org.opensearch.plugins.DataSourcePlugin; +import org.opensearch.plugins.Plugin; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +/** + * Plugin for CSV data format support in OpenSearch DataFusion. + * This plugin provides CSV data source codec through ServiceLoader mechanism. + * + * Todo: implement vectorized exec specific plugin + */ +public class CsvDataFormatPlugin extends Plugin implements DataSourcePlugin { + + /** + * Creates a new CSV data format plugin. + */ + public CsvDataFormatPlugin() { + // Plugin initialization + } + + // TODO : move to vectorized exec specific plugin + @Override + public Optional> getDataSourceCodecs() { + Map codecs = new HashMap<>(); + // TODO : version it correctly - similar to lucene codecs? + codecs.put("csv-v1", new CsvDataSourceCodec()); + return Optional.of(codecs); + // return Optional.empty(); + } +} diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java similarity index 97% rename from libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java rename to plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java index ea796c6b14ef2..80622fbda6e31 100644 --- a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java @@ -10,8 +10,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.opensearch.datafusion.spi.DataSourceCodec; -import org.opensearch.datafusion.spi.RecordBatchStream; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.spi.RecordBatchStream; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java similarity index 96% rename from libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java rename to plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java index 16feb1149885b..56738a87cbddf 100644 --- a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java @@ -10,12 +10,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.opensearch.datafusion.spi.RecordBatchStream; +import org.opensearch.vectorized.execution.spi.RecordBatchStream; import java.util.concurrent.CompletableFuture; /** - * TODO : this need not be here - nothing specific to CSV + * TODO : this need not be here - nothing specific to CSV - move to LIB ? * Native implementation of RecordBatchStream that wraps a JNI stream pointer. * This class provides a Java interface over native DataFusion record batches. */ diff --git a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java similarity index 78% rename from libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java rename to plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java index 49fb8d9b79c13..6f3e68baa10d1 100644 --- a/libs/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java @@ -16,6 +16,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; +import java.nio.file.attribute.PosixFilePermission; +import java.util.Locale; +import java.util.Set; /** * Utility class for loading the data source JNI library. @@ -27,6 +30,13 @@ public class JniLibraryLoader { private static final String LIBRARY_NAME = "opensearch_datafusion_csv_jni"; + /** + * Private constructor to prevent instantiation of utility class. + */ + private JniLibraryLoader() { + // Utility class + } + /** * Loads the DataFusion JNI library. This method is thread-safe and will only * load the library once. @@ -68,8 +78,8 @@ public static synchronized void loadLibrary() { * @return Path to the extracted library file, or null if extraction failed */ private static String extractLibraryFromJar() { - String osName = System.getProperty("os.name").toLowerCase(); - String osArch = System.getProperty("os.arch").toLowerCase(); + String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); + String osArch = System.getProperty("os.arch").toLowerCase(Locale.ROOT); logger.debug("Detecting platform: OS={}, Arch={}", osName, osArch); @@ -88,21 +98,31 @@ private static String extractLibraryFromJar() { return null; } - // Create temporary file - Path tempDir = Files.createTempDirectory("datafusion-jni"); + // Create temporary file in system temp directory + Path tempDir = Files.createTempDirectory(Path.of(System.getProperty("java.io.tmpdir")), "datafusion-jni"); Path tempLibrary = tempDir.resolve(libraryFileName); // Extract library to temporary file Files.copy(inputStream, tempLibrary, StandardCopyOption.REPLACE_EXISTING); - // Make executable on Unix-like systems + // Make executable on Unix-like systems using NIO if (!osName.contains("windows")) { - tempLibrary.toFile().setExecutable(true); + Set permissions = Files.getPosixFilePermissions(tempLibrary); + permissions.add(PosixFilePermission.OWNER_EXECUTE); + permissions.add(PosixFilePermission.GROUP_EXECUTE); + permissions.add(PosixFilePermission.OTHERS_EXECUTE); + Files.setPosixFilePermissions(tempLibrary, permissions); } - // Schedule cleanup on JVM shutdown - tempLibrary.toFile().deleteOnExit(); - tempDir.toFile().deleteOnExit(); + // Register for cleanup on JVM shutdown using NIO + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + Files.deleteIfExists(tempLibrary); + Files.deleteIfExists(tempDir); + } catch (IOException e) { + logger.debug("Failed to cleanup temporary files", e); + } + })); String libraryPath = tempLibrary.toAbsolutePath().toString(); logger.debug("Extracted library to: {}", libraryPath); @@ -138,6 +158,7 @@ private static String getLibraryFileName(String osName) { } return prefix + LIBRARY_NAME + extension; + } /** diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java new file mode 100644 index 0000000000000..35fd564c68e51 --- /dev/null +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * CSV data format implementation for DataFusion integration. + * Provides CSV file reading capabilities through DataFusion query engine. + */ +package org.opensearch.datafusion.csv; diff --git a/libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec b/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec similarity index 100% rename from libs/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec rename to plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec diff --git a/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties b/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties new file mode 100644 index 0000000000000..713d226cce94a --- /dev/null +++ b/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties @@ -0,0 +1,7 @@ +# Plugin descriptor for CSV data format plugin +description=CSV data format plugin for OpenSearch DataFusion +version=${project.version} +name=dataformat-csv +classname=org.opensearch.datafusion.csv.CsvDataFormatPlugin +java.version=${versions.java} +opensearch.version=${opensearch_version} diff --git a/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java b/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java new file mode 100644 index 0000000000000..27ea2251e66b6 --- /dev/null +++ b/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java @@ -0,0 +1,25 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv; + +import org.opensearch.test.OpenSearchTestCase; + +/** + * Tests for the CSV data format plugin. + */ +public class CsvDataFormatPluginTests extends OpenSearchTestCase { + + /** + * Test that the plugin can be instantiated. + */ + public void testPluginInstantiation() { + CsvDataFormatPlugin plugin = new CsvDataFormatPlugin(); + assertNotNull("Plugin should not be null", plugin); + } +} diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index af87cc361bc52..f1a8d1ef7a2e0 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -27,6 +27,7 @@ opensearchplugin { } dependencies { + api project(':libs:opensearch-vectorized-exec-spi') implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" implementation "org.apache.logging.log4j:log4j-core:${versions.log4j}" @@ -52,8 +53,8 @@ dependencies { testImplementation "org.hamcrest:hamcrest:${versions.hamcrest}" testImplementation "org.mockito:mockito-core:${versions.mockito}" - // Add CSV codec for testing - testImplementation project(':libs:opensearch-dataformat-csv') // TODO : adding implementation results in cycle dependency + // Add CSV plugin for testing + // testImplementation project(':plugins:dataformat-csv') } // Task to build the Rust JNI library @@ -72,7 +73,22 @@ task buildRustLibrary(type: Exec) { def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' def targetDir = "target/${buildType}" - def cargoArgs = ['cargo', 'build'] + // Find cargo executable - try common locations + def cargoExecutable = 'cargo' + def possibleCargoPaths = [ + System.getenv('HOME') + '/.cargo/bin/cargo', + '/usr/local/bin/cargo', + 'cargo' + ] + + for (String path : possibleCargoPaths) { + if (new File(path).exists()) { + cargoExecutable = path + break + } + } + + def cargoArgs = [cargoExecutable, 'build'] if (buildType == 'release') { cargoArgs.add('--release') } @@ -121,6 +137,12 @@ compileJava.dependsOn copyNativeLibrary // Ensure processResources depends on copyNativeLibrary processResources.dependsOn copyNativeLibrary +sourcesJar.dependsOn copyNativeLibrary + +// Ensure filepermissions task depends on copyNativeLibrary +tasks.named('filepermissions').configure { + dependsOn copyNativeLibrary +} // Ensure sourcesJar depends on copyNativeLibrary since it includes resources sourcesJar.dependsOn copyNativeLibrary diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 20ddebf9c380e..1e9981e9abae3 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -5,30 +5,23 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ -mod util; -use arrow::ffi::{FFI_ArrowArray, FFI_ArrowSchema}; -use datafusion::physical_plan::SendableRecordBatchStream; -use jni::objects::{JByteArray, JClass, JObject, JString}; -use jni::sys::{jbyteArray, jlong, jstring}; +use jni::objects::JClass; +use jni::sys::{jlong, jstring}; use jni::JNIEnv; +use std::sync::Arc; use datafusion::execution::context::SessionContext; -use datafusion::prelude::*; -use datafusion::DATAFUSION_VERSION; - -use datafusion_substrait::logical_plan::consumer::from_substrait_plan; -use prost::Message; -use crate::util::{set_object_result_error, set_object_result_ok}; -use arrow::array::{Array, StructArray}; -use futures::stream::StreamExt; -use futures::TryStreamExt; -use std::ptr::addr_of_mut; -use tokio::runtime::Runtime; +use datafusion::DATAFUSION_VERSION; +use datafusion::execution::cache::cache_manager::{CacheManager, CacheManagerConfig, FileStatisticsCache}; +use datafusion::execution::disk_manager::DiskManagerConfig; +use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; +use datafusion::prelude::SessionConfig; +/// Create a new DataFusion session context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_createContext( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createContext( _env: JNIEnv, _class: JClass, ) -> jlong { @@ -38,243 +31,85 @@ pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_create ctx } +/// Close and cleanup a DataFusion context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_createRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeContext( _env: JNIEnv, _class: JClass, -) -> jlong { - if let Ok(runtime) = Runtime::new() { - Box::into_raw(Box::new(runtime)) as jlong - } else { - // TODO error handling - -1 - } + context_id: jlong, +) { + let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; } +/// Get version information #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_registerParquetTable( - mut env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVersionInfo( + env: JNIEnv, _class: JClass, - context_id: jlong, - runtime_id: jlong, - parquet_file_path: JString, - table_name: JString -) -> jlong { - if context_id == 0 { - let _ = env.throw_new("java/lang/RuntimeException", "Invalid context ID"); - return 0; - } - - if runtime_id == 0 { - let _ = env.throw_new("java/lang/RuntimeException", "Invalid runtime ID"); - return 0; - } - - let parquet_path: String = match env.get_string(&parquet_file_path) { - Ok(path) => path.into(), - Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", - &format!("Failed to get parquet file path: {}", e)); - return 0; - } - }; - - let table_name_str: String = match env.get_string(&table_name) { - Ok(name) => name.into(), - Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", - &format!("Failed to get table name: {}", e)); - return 0; - } - }; - - let context = unsafe { &*(context_id as *const SessionContext) }; - let runtime = unsafe { &*(runtime_id as *const Runtime) }; - - match runtime.block_on(async { - if std::path::Path::new(&parquet_path).exists() { - context.register_parquet(&table_name_str, &parquet_path, ParquetReadOptions::default()).await - } else { - Err(datafusion::error::DataFusionError::Execution( - format!("Parquet file not found: {}", parquet_path) - )) - } - }) { - Ok(_) => 1, // Success - Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", - &format!("Failed to register parquet table: {}", e)); - 0 // Failure - } - } +) -> jstring { + let version_info = format!(r#"{{"version": "{}", "codecs": ["CsvDataSourceCodec"]}}"#, DATAFUSION_VERSION); + env.new_string(version_info).expect("Couldn't create Java string").as_raw() } -/// Close and cleanup a DataFusion context +/// Get version information (legacy method name) #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_closeContext( - _env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVersion( + env: JNIEnv, _class: JClass, - context_id: jlong, -) { - if context_id != 0 { - let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; - } +) -> jstring { + env.new_string(DATAFUSION_VERSION).expect("Couldn't create Java string").as_raw() } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_core_SessionContext_closeRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createGlobalRuntime( _env: JNIEnv, _class: JClass, - pointer: jlong, -) { - if pointer != 0 { - let _ = unsafe { Box::from_raw(pointer as *mut Runtime) }; - } +) -> jlong { + let runtime_env = RuntimeEnvBuilder::default().build().unwrap(); + /** + // We can copy global runtime to local runtime - file statistics cache, and most of the things + // will be shared across session contexts. But list files cache will be specific to session + // context + + let fsCache = runtimeEnv.clone().cache_manager.get_file_statistic_cache().unwrap(); + let localCacheManagerConfig = CacheManagerConfig::default().with_files_statistics_cache(Option::from(fsCache)); + let localCacheManager = CacheManager::try_new(&localCacheManagerConfig); + let localRuntimeEnv = RuntimeEnvBuilder::new() + .with_cache_manager(localCacheManagerConfig) + .with_disk_manager(DiskManagerConfig::new_existing(runtimeEnv.disk_manager)) + .with_memory_pool(runtimeEnv.memory_pool) + .with_object_store_registry(runtimeEnv.object_store_registry) + .build(); + let config = SessionConfig::new().with_repartition_aggregations(true); + let context = SessionContext::new_with_config(config); + **/ + let ctx = Box::into_raw(Box::new(runtime_env)) as jlong; + ctx } -/// Execute a Substrait query plan and return SendableRecordBatchStream as jlong #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionService_nativeExecuteSubstraitQueryStream( - env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createSessionContext( + _env: JNIEnv, _class: JClass, runtime_id: jlong, - context_id: jlong, - query_plan_bytes: jbyteArray, ) -> jlong { - println!("DataFusionService_nativeExecuteSubstraitQueryStream: Starting execution"); - println!("runtime_id: {}, context_id: {}", runtime_id, context_id); - - let runtime = unsafe { &*(runtime_id as *const Runtime) }; - let context = unsafe { &*(context_id as *const SessionContext) }; - println!("Retrieved runtime and context pointers successfully"); - - println!("query_plan_bytes raw pointer: {:?}", query_plan_bytes); - - if query_plan_bytes.is_null() { - println!("ERROR: query_plan_bytes is null!"); - return 0; - } - - let byte_array = unsafe { JByteArray::from_raw(query_plan_bytes) }; - println!("Created JByteArray from raw pointer"); - - let plan_bytes = match env.convert_byte_array(byte_array) { - Ok(bytes) => { - println!("Successfully converted byte array, size: {} bytes", bytes.len()); - bytes - }, - Err(e) => { - println!("Failed to convert byte array: {:?}", e); - return 0; // Return 0 on error - } - }; - - println!("Starting async block execution"); - runtime.block_on(async { - println!("Decoding Substrait plan..."); - let substrait_plan = datafusion_substrait::substrait::proto::Plan::decode(&plan_bytes[..]).unwrap(); - println!("Substrait plan decoded successfully, relations: {}", substrait_plan.relations.len()); - - println!("Converting Substrait plan to DataFusion logical plan..."); - let logical_plan = from_substrait_plan(&context.state(), &substrait_plan).await.unwrap(); - println!("Logical plan created successfully"); - - println!("Executing logical plan..."); - let dataframe = context.execute_logical_plan(logical_plan).await.unwrap(); - println!("DataFrame created successfully"); - - println!("Getting execution stream..."); - let stream = dataframe.execute_stream().await.unwrap(); - println!("Stream created successfully"); - - let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; - println!("Stream pointer created: {}", stream_ptr); - stream_ptr - }) + let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; + let config = SessionConfig::new().with_repartition_aggregations(true); + let context = SessionContext::new_with_config_rt(config, Arc::new(runtimeEnv.clone())); + let ctx = Box::into_raw(Box::new(context)) as jlong; + ctx } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( - mut env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeSessionContext( + _env: JNIEnv, _class: JClass, - runtime: jlong, - stream: jlong, - callback: JObject, + context_id: jlong, ) { - let runtime = unsafe { &mut *(runtime as *mut Runtime) }; - let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; - runtime.block_on(async { - let next = stream.try_next().await; - match next { - Ok(Some(batch)) => { - // Convert to struct array for compatibility with FFI - let struct_array: StructArray = batch.into(); - let array_data = struct_array.into_data(); - let mut ffi_array = FFI_ArrowArray::new(&array_data); - // ffi_array must remain alive until after the callback is called - set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_array)); - } - Ok(None) => { - set_object_result_ok(&mut env, callback, 0 as *mut FFI_ArrowSchema); - } - Err(err) => { - set_object_result_error(&mut env, callback, &err); - } - } - }); + let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; } -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchema( - mut env: JNIEnv, - _class: JClass, - stream: jlong, - callback: JObject, -) { - let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; - let schema = stream.schema(); - // Print field details for debugging - for (i, field) in schema.fields().iter().enumerate() { - println!(" Field {}: name='{}', type={:?}, nullable={}", - i, field.name(), field.data_type(), field.is_nullable()); - } - let ffi_schema = FFI_ArrowSchema::try_from(&*schema); - match ffi_schema { - Ok(mut ffi_schema) => { - println!("Created FFI schema successfully, about to call Java..."); - // ffi_schema must remain alive until after the callback is called - set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_schema)); - println!("Returned from Java callback"); - } - Err(err) => { - set_object_result_error(&mut env, callback, &err); - } - } - println!("Rust function ending normally"); -} -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( - _env: JNIEnv, - _class: JClass, - pointer: jlong, -) { - if pointer != 0 { - let _ = unsafe { Box::from_raw(pointer as *mut SendableRecordBatchStream) }; - } -} -/// Get version information -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionJNI_getVersion( - env: JNIEnv, - _class: JClass, -) -> jstring { - let version_info = format!( - "{{\"datafusion_version\": \"{}\", \"substrait_version\": \"0.50.0\"}}", - DATAFUSION_VERSION - ); - env.new_string(version_info).expect("Couldn't create Java string").as_raw() -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java deleted file mode 100644 index 17d7f51057ecb..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionJNI.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion; - -import org.opensearch.common.SuppressForbidden; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; -import java.util.Locale; - -/** - * JNI wrapper for DataFusion operations - */ -public class DataFusionJNI { - - /** - * Private constructor to prevent instantiation. - */ - private DataFusionJNI() { - // Utility class - } - - private static boolean libraryLoaded = false; - - static { - loadNativeLibrary(); - } - - /** - * Load the native library from resources - */ - @SuppressForbidden(reason = "Native library loading requires temporary file creation and system path access") - private static synchronized void loadNativeLibrary() { - if (libraryLoaded) { - return; - } - - try { - String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); - String libExtension; - String libName; - - if (osName.contains("windows")) { - libExtension = ".dll"; - libName = "libopensearch_datafusion_jni.dll"; - } else if (osName.contains("mac")) { - libExtension = ".dylib"; - libName = "libopensearch_datafusion_jni.dylib"; - } else { - libExtension = ".so"; - libName = "libopensearch_datafusion_jni.so"; - } - - // Try to load from resources first - InputStream libStream = DataFusionJNI.class.getResourceAsStream("/native/" + libName); - if (libStream != null) { - // Extract to temporary file and load - Path tempLib = Files.createTempFile("libopensearch_datafusion_jni", libExtension); - Files.copy(libStream, tempLib, StandardCopyOption.REPLACE_EXISTING); - System.load(tempLib.toAbsolutePath().toString()); - libStream.close(); - } else { - System.loadLibrary("opensearch_datafusion_jni"); - } - - libraryLoaded = true; - } catch (IOException | UnsatisfiedLinkError e) { - throw new RuntimeException("Failed to load DataFusion JNI library", e); - } - } - - /** - * Create a new global runtime environment - * @return runtime env pointer for subsequent operations - */ - public static native long createGlobalRuntime(); - - /** - * Closes global runtime environment - * @return runtime env pointer for subsequent operations - */ - public static native long closeGlobalRuntime(long pointer); - - /** - * Get version information - * @return JSON string with version information - */ - public static native String getVersion(); -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 3a774736307a0..224075b9c2414 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -11,8 +11,6 @@ import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.node.DiscoveryNodes; import org.opensearch.cluster.service.ClusterService; -import org.opensearch.common.inject.AbstractModule; -import org.opensearch.common.inject.Module; import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.IndexScopedSettings; import org.opensearch.common.settings.Settings; @@ -24,29 +22,29 @@ import org.opensearch.datafusion.action.TransportNodesDataFusionInfoAction; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; -import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.plugins.ActionPlugin; +import org.opensearch.plugins.DataSourceAwarePlugin; import org.opensearch.plugins.Plugin; -import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.rest.RestController; import org.opensearch.rest.RestHandler; import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.client.Client; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; -import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.function.Supplier; /** * Main plugin class for OpenSearch DataFusion integration. * */ -public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin { +public class DataFusionPlugin extends Plugin implements ActionPlugin, DataSourceAwarePlugin { private DataFusionService dataFusionService; private final boolean isDataFusionEnabled; @@ -56,18 +54,9 @@ public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEngi * @param settings The settings for the DataFusionPlugin. */ public DataFusionPlugin(Settings settings) { - // DataFusion can be disabled for integration tests or if native library is not available - this.isDataFusionEnabled = Boolean.parseBoolean(System.getProperty("opensearch.experimental.feature.datafusion.enabled", "true")); - } - - @Override - public Collection createGuiceModules() { - return Collections.singletonList(new AbstractModule() { - @Override - protected void configure() { - bind(SearchEnginePlugin.class).toInstance(DataFusionPlugin.this); - } - }); + // For now, DataFusion is always enabled if the plugin is loaded + // In the future, this could be controlled by a feature flag + this.isDataFusionEnabled = true; } /** @@ -97,13 +86,14 @@ public Collection createComponents( NodeEnvironment nodeEnvironment, NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, - Supplier repositoriesServiceSupplier + Supplier repositoriesServiceSupplier, + Map dataSourceCodecs ) { if (!isDataFusionEnabled) { return Collections.emptyList(); } - - dataFusionService = new DataFusionService(environment); + dataFusionService = new DataFusionService(dataSourceCodecs); + // return Collections.emptyList(); return Collections.singletonList(dataFusionService); } @@ -147,7 +137,7 @@ public List getRestHandlers( } @Override - public SearchExecutionEngine createEngine() throws IOException { - return new DatafusionEngine(dataFusionService); + public void registerDataSources(Map dataSourceCodecs) { + dataFusionService = new DataFusionService(dataSourceCodecs); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java new file mode 100644 index 0000000000000..48578c987226d --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -0,0 +1,141 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +/** + * JNI wrapper for DataFusion operations + */ +public class DataFusionQueryJNI { + + private static boolean libraryLoaded = false; + + static { + loadNativeLibrary(); + } + + /** + * Private constructor to prevent instantiation of utility class. + */ + private DataFusionQueryJNI() { + // Utility class + } + + /** + * Load the native library from resources + */ + private static synchronized void loadNativeLibrary() { + if (libraryLoaded) { + return; + } + + try { + // Try to load the library directly + System.loadLibrary("opensearch_datafusion_jni"); + libraryLoaded = true; + } catch (UnsatisfiedLinkError e) { + // Try loading from resources + try { + String osName = System.getProperty("os.name").toLowerCase(); + String libExtension = osName.contains("windows") ? ".dll" : (osName.contains("mac") ? ".dylib" : ".so"); + String libName = "libopensearch_datafusion_jni" + libExtension; + + java.io.InputStream is = DataFusionQueryJNI.class.getResourceAsStream("/native/" + libName); + if (is != null) { + java.io.File tempFile = java.io.File.createTempFile("libopensearch_datafusion_jni", libExtension); + tempFile.deleteOnExit(); + + try (java.io.FileOutputStream fos = new java.io.FileOutputStream(tempFile)) { + byte[] buffer = new byte[8192]; + int bytesRead; + while ((bytesRead = is.read(buffer)) != -1) { + fos.write(buffer, 0, bytesRead); + } + } + + System.load(tempFile.getAbsolutePath()); + libraryLoaded = true; + } else { + throw new RuntimeException("Native library not found: " + libName, e); + } + } catch (Exception ex) { + throw new RuntimeException("Failed to load native library", ex); + } + } + } + + /** + * Create a new global runtime environment + * @return runtime env pointer for subsequent operations + */ + public static native long createGlobalRuntime(); + + /** + * Closes global runtime environment + * @param pointer the runtime environment pointer to close + * @return status code + */ + public static native long closeGlobalRuntime(long pointer); + + /** + * Get version information + * @return JSON string with version information + */ + public static native String getVersionInfo(); + + /** + * Create a new DataFusion session context + * @param runtimeId the global runtime environment ID + * @return context ID for subsequent operations + */ + public static native long createSessionContext(long runtimeId); + + /** + * Close and cleanup a DataFusion context + * @param contextId the context ID to close + */ + public static native void closeSessionContext(long contextId); + + /** + * Execute a Substrait query plan + * @param contextId the session context ID + * @param substraitPlan the serialized Substrait query plan + * @return stream pointer for result iteration + */ + public static native long executeSubstraitQuery(long contextId, byte[] substraitPlan); + + /** + * Register a directory with CSV files + * @param contextId the session context ID + * @param tableName the table name to register + * @param directoryPath the directory path containing CSV files + * @param fileNames array of file names to register + * @return status code + */ + public static native int registerCsvDirectory(long contextId, String tableName, String directoryPath, String[] fileNames); + + /** + * Check if stream has more data + * @param streamPtr the stream pointer + * @return true if more data available + */ + public static native boolean streamHasNext(long streamPtr); + + /** + * Get next batch from stream + * @param streamPtr the stream pointer + * @return byte array containing the next batch, or null if no more data + */ + public static native byte[] streamNext(long streamPtr); + + /** + * Close and cleanup a result stream + * @param streamPtr the stream pointer to close + */ + public static native void closeStream(long streamPtr); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 621b457f1cc25..099ae90d20599 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -13,153 +13,189 @@ import org.opensearch.common.lifecycle.AbstractLifecycleComponent; import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; -import org.opensearch.datafusion.core.SessionContext; -import org.opensearch.env.Environment; +import org.opensearch.datafusion.core.GlobalRuntimeEnv; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.spi.RecordBatchStream; -import java.nio.file.Files; -import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; /** * Service for managing DataFusion contexts and operations - essentially like SearchService */ public class DataFusionService extends AbstractLifecycleComponent { - private final Environment environment; - private SessionContext defaultSessionContext; + private static final Logger logger = LogManager.getLogger(DataFusionService.class); + private final ConcurrentMapLong sessionEngines = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); + + private final DataSourceRegistry dataSourceRegistry; + private final GlobalRuntimeEnv globalRuntimeEnv; /** - * Constructor for DataFusionService. - * @param environment The OpenSearch environment containing path configurations and settings + * Creates a new DataFusion service instance. */ - public DataFusionService(Environment environment) { - super(); - this.environment = environment; - } - - private static final Logger logger = LogManager.getLogger(DataFusionService.class); + public DataFusionService(Map dataSourceCodecs) { + this.dataSourceRegistry = new DataSourceRegistry(dataSourceCodecs); - // in memory contexts, similar to ReaderContext in SearchService, just a ptr to SessionContext for now. - private final ConcurrentMapLong contexts = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); + // to verify jni + String version = DataFusionQueryJNI.getVersionInfo(); + this.globalRuntimeEnv = new GlobalRuntimeEnv(); + } @Override protected void doStart() { logger.info("Starting DataFusion service"); try { - // Test that the native library loads correctly - String version = DataFusionJNI.getVersion(); - logger.info("DataFusion service started successfully. Version info: {}", version); - - // Create a default context with parquet file path from path.repo setting - String repoPath = environment.settings().get("path.data").trim().replaceAll("^\\[|]$", ""); - if (repoPath.isEmpty()) { - throw new RuntimeException( - "path.repo setting is required for DataFusion service. " - + "Please configure it using -PrepoPath when starting OpenSearch." + // Initialize the data source registry + // Test that at least one data source is available + if (!dataSourceRegistry.hasCodecs()) { + logger.warn("No data sources available"); + } else { + logger.info( + "DataFusion service started successfully with {} data sources: {}", + dataSourceRegistry.getCodecNames().size(), + dataSourceRegistry.getCodecNames() ); - } - - logger.info("DataFusion service started successfully. Repo path: {}", repoPath); - Path dataPath = Path.of(repoPath); - Path parquetFile = dataPath.resolve("hits_data.parquet"); - - // Check if the parquet file exists - if (!Files.exists(parquetFile)) { - throw new RuntimeException( - "Parquet file not found at: " + parquetFile + ". Please place your parquet file in the OpenSearch data directory." - ); } - - defaultSessionContext = new SessionContext(parquetFile.toString(), "hits"); - contexts.put(defaultSessionContext.getContext(), defaultSessionContext); - logger.info("Created default DataFusion context with ID: {}", defaultSessionContext.getContext()); } catch (Exception e) { logger.error("Failed to start DataFusion service", e); - throw new RuntimeException("Failed to initialize DataFusion JNI", e); + throw new RuntimeException("Failed to initialize DataFusion service", e); } } @Override protected void doStop() { logger.info("Stopping DataFusion service"); - // Close all named contexts - for (SessionContext ctx : contexts.values()) { + + // Close all session contexts + for (Long sessionId : sessionEngines.keySet()) { try { - ctx.close(); + closeSessionContext(sessionId).get(); } catch (Exception e) { - logger.warn("Error closing DataFusion context", e); + logger.warn("Error closing session context {}", sessionId, e); } } - contexts.clear(); + sessionEngines.clear(); + globalRuntimeEnv.close(); logger.info("DataFusion service stopped"); } @Override protected void doClose() { - // Ensure all resources are cleaned up doStop(); } /** - * Get a context by id - * @param id the context id - * @return the context ID, or null if not found + * Register a directory with list of files to create a runtime environment + * with listing files cache of DataFusion + * + * @param directoryPath path to the directory containing files + * @param fileNames list of file names in the directory + * @return runtime environment ID */ - SessionContext getContext(long id) { - return contexts.get(id); - } + public CompletableFuture registerDirectory(String directoryPath, List fileNames) { + DataSourceCodec engine = dataSourceRegistry.getDefaultEngine(); + if (engine == null) { + return CompletableFuture.failedFuture(new IllegalStateException("No DataFusion engine available")); + } - /** - * Get default context - * @return default context - */ - SessionContext getDefaultContext() { - return defaultSessionContext; + logger.debug( + "Registering directory {} with {} files using engine {}", + directoryPath, + fileNames.size(), + engine.getClass().getSimpleName() + ); + + return engine.registerDirectory(directoryPath, fileNames, globalRuntimeEnv.getPointer()); } /** - * Close a context - * @param contextId the context id - * @return true if the context was found and closed, false otherwise + * Create a session context + * + * @return session context ID */ - public boolean closeContext(long contextId) { - SessionContext context = contexts.remove(contextId); - if (context != null) { - try { - context.close(); - return true; - } catch (Exception e) { - throw new RuntimeException(e); - } + public CompletableFuture createSessionContext() { + long runtimeEnvironmentId = globalRuntimeEnv.getPointer(); + DataSourceCodec codec = dataSourceRegistry.getDefaultEngine(); + if (codec == null) { + return CompletableFuture.failedFuture(new IllegalArgumentException("Runtime environment not found: " + runtimeEnvironmentId)); } - return false; + + logger.debug( + "Creating session context for runtime environment {} using engine {}", + runtimeEnvironmentId, + codec.getClass().getSimpleName() + ); + + return codec.createSessionContext(runtimeEnvironmentId).thenApply(sessionId -> { + // Track which engine created this session context + sessionEngines.put(sessionId, codec); + logger.debug("Created session context {} with engine {}", sessionId, codec.getClass().getSimpleName()); + return sessionId; + }); } /** - * Get version information - * @return JSON version string + * Execute a query accepting substrait plan bytes and run via session context + * + * @param sessionContextId the session context ID + * @param substraitPlanBytes the substrait plan as byte array + * @return record batch stream containing query results */ - public String getVersion() { - return DataFusionJNI.getVersion(); + public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { + DataSourceCodec engine = sessionEngines.get(sessionContextId); + if (engine == null) { + return CompletableFuture.failedFuture(new IllegalArgumentException("Session context not found: " + sessionContextId)); + } + + logger.debug( + "Executing substrait query for session {} with plan size {} bytes using engine {}", + sessionContextId, + substraitPlanBytes.length, + engine.getClass().getSimpleName() + ); + + return engine.executeSubstraitQuery(sessionContextId, substraitPlanBytes); } /** - * Execute a Substrait query plan and return a stream pointer for streaming results. - * Use this for large result sets to avoid memory issues. + * Close the session context and clean up resources * - * @param queryPlanIR the Substrait query plan as bytes - * @return stream pointer (0 if error occurred) + * @param sessionContextId the session context ID to close + * @return future that completes when cleanup is done */ - public long executeSubstraitQueryStream(byte[] queryPlanIR) { - return nativeExecuteSubstraitQueryStream(defaultSessionContext.getRuntime(), defaultSessionContext.getContext(), queryPlanIR); + public CompletableFuture closeSessionContext(long sessionContextId) { + DataSourceCodec engine = sessionEngines.remove(sessionContextId); + if (engine == null) { + logger.debug("Session context {} not found or already closed", sessionContextId); + return CompletableFuture.completedFuture(null); + } + + logger.debug("Closing session context {} using engine {}", sessionContextId, engine.getClass().getSimpleName()); + + return engine.closeSessionContext(sessionContextId); } /** - * Executes a Substrait query plan and returns a stream pointer - * @param runTime the DataFusion runtime ID - * @param contextId the DataFusion context ID - * @param queryPlanIR the Substrait query plan bytes - * @return pointer to the result stream + * Get version information from available codecs + * @return JSON version string */ - public static native long nativeExecuteSubstraitQueryStream(long runTime, long contextId, byte[] queryPlanIR); + public String getVersion() { + StringBuilder version = new StringBuilder(); + version.append("{\"codecs\":["); + + boolean first = true; + for (String engineName : this.dataSourceRegistry.getCodecNames()) { + if (!first) { + version.append(","); + } + version.append("{\"name\":\"").append(engineName).append("\"}"); + first = false; + } + + version.append("]}"); + return version.toString(); + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java new file mode 100644 index 0000000000000..9229b861ceef3 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java @@ -0,0 +1,72 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Registry for DataFusion data source codecs. + */ +public class DataSourceRegistry { + + private static final Logger logger = LogManager.getLogger(DataSourceRegistry.class); + + private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); + + public DataSourceRegistry(Map dataSourceCodecMap) { + codecs.putAll(dataSourceCodecMap); + } + + /** + * Check if any codecs are available. + * + * @return true if codecs are available, false otherwise + */ + public boolean hasCodecs() { + return !codecs.isEmpty(); + } + + /** + * Get the names of all registered codecs. + * + * @return list of codec names + */ + public List getCodecNames() { + return new ArrayList<>(codecs.keySet()); + } + + /** + * Get the default codec (first available codec). + * + * @return the default codec, or null if none available + */ + public DataSourceCodec getDefaultEngine() { + if (codecs.isEmpty()) { + return null; + } + return codecs.values().iterator().next(); + } + + /** + * Get a codec by name. + * + * @param name the codec name + * @return the codec, or null if not found + */ + public DataSourceCodec getCodec(String name) { + return codecs.get(name); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java index f6118da9254a1..8a659f29230d6 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/TransportNodesDataFusionInfoAction.java @@ -101,6 +101,7 @@ protected NodeDataFusionInfo newNodeResponse(StreamInput in) throws IOException @Override protected NodeDataFusionInfo nodeOperation(NodesDataFusionInfoRequest.NodeDataFusionInfoRequest request) { try { + System.out.println(this.dataFusionService.getVersion()); return new NodeDataFusionInfo(clusterService.localNode(), dataFusionService.getVersion()); } catch (Exception e) { return new NodeDataFusionInfo(clusterService.localNode(), "unknown"); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/package-info.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/package-info.java new file mode 100644 index 0000000000000..d3542f4dfe9dc --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/action/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * REST actions and transport handlers for DataFusion plugin. + * Provides API endpoints for DataFusion functionality. + */ +package org.opensearch.datafusion.action; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java index 8380f8ea2dd67..1867028fcb945 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java @@ -8,18 +8,28 @@ package org.opensearch.datafusion.core; -import static org.opensearch.datafusion.DataFusionJNI.closeGlobalRuntime; -import static org.opensearch.datafusion.DataFusionJNI.createGlobalRuntime; +import static org.opensearch.datafusion.DataFusionQueryJNI.closeGlobalRuntime; +import static org.opensearch.datafusion.DataFusionQueryJNI.createGlobalRuntime; -public class GlobalRuntimeEnv implements AutoCloseable{ +/** + * Global runtime environment for DataFusion operations. + * Manages the lifecycle of the native DataFusion runtime. + */ +public class GlobalRuntimeEnv implements AutoCloseable { // ptr to runtime environment in df private final long ptr; - + /** + * Creates a new global runtime environment. + */ public GlobalRuntimeEnv() { this.ptr = createGlobalRuntime(); } + /** + * Gets the native pointer to the runtime environment. + * @return the native pointer + */ public long getPointer() { return ptr; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java index 2e25c191c679d..956aa78fdaa30 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java @@ -13,75 +13,30 @@ */ public class SessionContext implements AutoCloseable { - private final long context; - private final long runtime; + // ptr to context in df + private final long ptr; /** - * Constructor for SessionContext with custom parquet file. - * @param tableName table name - * @param parquetFilePath Path to the parquet file to register + * Create a new DataFusion session context + * @return context ID for subsequent operations */ - public SessionContext(String parquetFilePath, String tableName) { - this.context = createContext(); - this.runtime = createRuntime(parquetFilePath); - registerParquetTable(this.context, this.runtime, parquetFilePath, tableName); - } + static native long createContext(); /** - * Creates a new DataFusion session context - * @return pointer to the native context + * Close and cleanup a DataFusion context + * @param contextId the context ID to close */ - public static native long createContext(); - - /** - * Closes and cleans up a DataFusion session context - * @param contextPointer pointer to the context to close - * @return status code - */ - public static native long closeContext(long contextPointer); - - /** - * Creates a new DataFusion runtime - * @param parquetFilePath path to parquet file - * @return pointer to the native runtime - */ - private static native long createRuntime(String parquetFilePath); - - /** - * Closes and cleans up a DataFusion runtime - * @param runtimePointer pointer to the runtime to close - * @return status code - */ - public static native long closeRuntime(long runtimePointer); - - /** - * Registers a parquet table with the given context and runtime - * @param contextPointer pointer to the DataFusion context - * @param runTime pointer to the runtime - * @param filePath path to the parquet file - * @param tableName name to register the table as - */ - public static native void registerParquetTable(long contextPointer, long runTime, String filePath, String tableName); - - /** - * Get the native context pointer - * @return the context pointer - */ - public long getContext() { - return context; - } + public static native void closeContext(long contextId); /** - * Get the runtime - * @return the runtime pointer + * Creates a new session context. */ - public long getRuntime() { - return runtime; + public SessionContext() { + this.ptr = createContext(); } @Override public void close() throws Exception { - closeContext(this.context); - closeRuntime(this.runtime); + closeContext(this.ptr); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/package-info.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/package-info.java new file mode 100644 index 0000000000000..2c6e72ef3a582 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * Core DataFusion runtime and session management classes. + * Provides runtime environment and session context management. + */ +package org.opensearch.datafusion.core; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/package-info.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/package-info.java new file mode 100644 index 0000000000000..81017da49c16c --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * DataFusion query engine integration for OpenSearch. + * Provides the main plugin and service classes for DataFusion functionality. + */ +package org.opensearch.datafusion; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java deleted file mode 100644 index e5684054979ed..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/spi/DataSourceRegistry.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.spi; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.util.ArrayList; -import java.util.List; -import java.util.ServiceLoader; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Registry for DataFusion data source codecs. - */ -public class DataSourceRegistry { - - private static final Logger logger = LogManager.getLogger(DataSourceRegistry.class); - private static final DataSourceRegistry INSTANCE = new DataSourceRegistry(); - - private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); - private volatile boolean initialized = false; - - private DataSourceRegistry() { - // Private constructor for singleton - } - - /** - * Get the singleton instance of the registry. - * - * @return the registry instance - */ - public static DataSourceRegistry getInstance() { - return INSTANCE; - } - - /** - * Initialize the registry by loading available codecs. - */ - public synchronized void initialize() { - if (initialized) { - return; - } - - logger.info("Initializing DataSource registry"); - - try { - // Use ServiceLoader to discover codec implementations - ServiceLoader loader = ServiceLoader.load(DataSourceCodec.class); - - for (DataSourceCodec codec : loader) { - String codecName = codec.getClass().getSimpleName(); - codecs.put(codecName, codec); - logger.info("Registered DataSource codec: {}", codecName); - } - - initialized = true; - logger.info("DataSource registry initialized with {} codecs", codecs.size()); - - } catch (Exception e) { - logger.error("Failed to initialize DataSource registry", e); - throw new RuntimeException("Failed to initialize DataSource registry", e); - } - } - - /** - * Shutdown the registry and clean up resources. - */ - public synchronized void shutdown() { - logger.info("Shutting down DataSource registry"); - codecs.clear(); - initialized = false; - } - - /** - * Check if any codecs are available. - * - * @return true if codecs are available, false otherwise - */ - public boolean hasCodecs() { - return !codecs.isEmpty(); - } - - /** - * Get the names of all registered codecs. - * - * @return list of codec names - */ - public List getCodecNames() { - return new ArrayList<>(codecs.keySet()); - } - - /** - * Get the default codec (first available codec). - * - * @return the default codec, or null if none available - */ - public DataSourceCodec getDefaultEngine() { - if (codecs.isEmpty()) { - return null; - } - return codecs.values().iterator().next(); - } - - /** - * Get a codec by name. - * - * @param name the codec name - * @return the codec, or null if not found - */ - public DataSourceCodec getCodec(String name) { - return codecs.get(name); - } -} diff --git a/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec b/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec similarity index 100% rename from plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.datafusion.spi.DataSourceCodec rename to plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java new file mode 100644 index 0000000000000..395e2fae52e2f --- /dev/null +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java @@ -0,0 +1,55 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.opensearch.test.OpenSearchTestCase; + +import java.util.Collections; +import java.util.List; + +/** + * Unit tests for DataFusionService + * + * Note: These tests require the native library to be available. + * They are disabled by default and can be enabled by setting the system property: + * -Dtest.native.enabled=true + */ +public class TestDataFusionServiceTests extends OpenSearchTestCase { + + private DataFusionService service; + + @Override + public void setUp() throws Exception { + super.setUp(); + service = new DataFusionService(Collections.emptyMap()); + service.doStart(); + } + + public void testGetVersion() { + String version = service.getVersion(); + assertNotNull(version); + // The service returns codec information in JSON format + assertTrue("Version should contain codecs", version.contains("codecs")); + assertTrue("Version should contain CsvDataSourceCodec", version.contains("CsvDataSourceCodec")); + } + + public void testCreateAndCloseContext() { + service.registerDirectory("/Users/gbh/Documents", List.of("parquet-nested.csv")); + long contextId = service.createSessionContext().join(); + // Create context + assertTrue(contextId > 0); + + service.getVersion(); + } + + public void testCodecDiscovery() { + // Test that the CSV codec can be discovered via SPI + // TODO : test with dummy plugin and dummy codec + } +} diff --git a/server/build.gradle b/server/build.gradle index 69f3c59556f5b..aa6afb2440654 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -72,6 +72,7 @@ dependencies { api project(":libs:opensearch-geo") api project(":libs:opensearch-telemetry") api project(":libs:opensearch-task-commons") + api project(':libs:opensearch-vectorized-exec-spi') compileOnly project(":libs:agent-sm:bootstrap") compileOnly project(':libs:opensearch-plugin-classloader') @@ -115,6 +116,7 @@ dependencies { api libs.protobuf api libs.jakartaannotation + // https://mvnrepository.com/artifact/org.roaringbitmap/RoaringBitmap api libs.roaringbitmap testImplementation 'org.awaitility:awaitility:4.3.0' diff --git a/server/src/main/java/org/opensearch/node/Node.java b/server/src/main/java/org/opensearch/node/Node.java index ae8299ee7ccb5..520427c40657e 100644 --- a/server/src/main/java/org/opensearch/node/Node.java +++ b/server/src/main/java/org/opensearch/node/Node.java @@ -218,6 +218,8 @@ import org.opensearch.plugins.ClusterPlugin; import org.opensearch.plugins.CryptoKeyProviderPlugin; import org.opensearch.plugins.CryptoPlugin; +import org.opensearch.plugins.DataSourceAwarePlugin; +import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.DiscoveryPlugin; import org.opensearch.plugins.EnginePlugin; import org.opensearch.plugins.ExtensionAwarePlugin; @@ -294,6 +296,7 @@ import org.opensearch.transport.client.Client; import org.opensearch.transport.client.node.NodeClient; import org.opensearch.usage.UsageService; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; import org.opensearch.wlm.WorkloadGroupService; import org.opensearch.wlm.WorkloadGroupsStateAccessor; @@ -1111,10 +1114,38 @@ protected Node(final Environment initialEnvironment, Collection clas ).stream() ) .collect(Collectors.toList()); - // Add the telemetryAwarePlugin components to the existing pluginComponents collection. pluginComponents.addAll(telemetryAwarePluginComponents); + Map dataSourceCodecMap = new HashMap<>(); + for (DataSourcePlugin dataSourcePlugin : pluginsService.filterPlugins(DataSourcePlugin.class)) { + if (dataSourcePlugin.getDataSourceCodecs().isPresent()) { + dataSourceCodecMap.putAll(dataSourcePlugin.getDataSourceCodecs().get()); + } + } + + Collection dataSourceAwareComponents = pluginsService.filterPlugins(DataSourceAwarePlugin.class) + .stream() + .flatMap( + p -> p.createComponents( + client, + clusterService, + threadPool, + resourceWatcherService, + scriptService, + xContentRegistry, + environment, + nodeEnvironment, + namedWriteableRegistry, + clusterModule.getIndexNameExpressionResolver(), + repositoriesServiceReference::get, + dataSourceCodecMap + ).stream() + ) + .collect(Collectors.toList()); + + // Add all dataSourceAwarePlugin components to the existing pluginComponents + pluginComponents.addAll(dataSourceAwareComponents); List identityAwarePlugins = pluginsService.filterPlugins(IdentityAwarePlugin.class); identityService.initializeIdentityAwarePlugins(identityAwarePlugins); diff --git a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java new file mode 100644 index 0000000000000..1b2a4d0d05e52 --- /dev/null +++ b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java @@ -0,0 +1,51 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.plugins; + +import org.opensearch.cluster.metadata.IndexNameExpressionResolver; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.core.common.io.stream.NamedWriteableRegistry; +import org.opensearch.core.xcontent.NamedXContentRegistry; +import org.opensearch.env.Environment; +import org.opensearch.env.NodeEnvironment; +import org.opensearch.repositories.RepositoriesService; +import org.opensearch.script.ScriptService; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.client.Client; +import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.watcher.ResourceWatcherService; + +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.function.Supplier; + +public interface DataSourceAwarePlugin { + void registerDataSources(Map dataSourceCodecs); + + /** + * Make dataSourceCodecs available for the DataSourceAwarePlugin(s) + */ + default Collection createComponents( + Client client, + ClusterService clusterService, + ThreadPool threadPool, + ResourceWatcherService resourceWatcherService, + ScriptService scriptService, + NamedXContentRegistry xContentRegistry, + Environment environment, + NodeEnvironment nodeEnvironment, + NamedWriteableRegistry namedWriteableRegistry, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier repositoriesServiceSupplier, + Map dataSourceCodecs + ) { + return Collections.emptyList(); + } +} diff --git a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java new file mode 100644 index 0000000000000..3118e3d1e7d90 --- /dev/null +++ b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java @@ -0,0 +1,21 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.plugins; + +import org.opensearch.vectorized.execution.spi.DataSourceCodec; + +import java.util.Map; +import java.util.Optional; + +public interface DataSourcePlugin { + // TODO : move to vectorized exec specific plugin + default Optional> getDataSourceCodecs() { + return Optional.empty(); + } +} From a73984183b33d1af753799f670149e15586bd5e9 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Mon, 25 Aug 2025 12:12:49 +0530 Subject: [PATCH 009/112] search interface changes Signed-off-by: bharath-techie --- .../execution/search/CatalogSearcher.java | 12 ++ .../execution/search/IndexReader.java | 12 ++ .../{ => search}/spi/DataSourceCodec.java | 2 +- .../{ => search}/spi/RecordBatchStream.java | 2 +- .../{ => search}/spi/package-info.java | 2 +- .../datafusion/csv/CsvDataFormatPlugin.java | 16 +- .../datafusion/csv/CsvDataSourceCodec.java | 4 +- .../datafusion/csv/CsvRecordBatchStream.java | 2 +- .../csv/engine/exec/CsvDataFormat.java | 35 ++++ .../datafusion/csv/engine/exec/CsvEngine.java | 160 ++++++++++++++++++ ...ized.execution.search.spi.DataSourceCodec} | 0 .../datafusion/DataFusionPlugin.java | 2 +- .../datafusion/DataFusionService.java | 4 +- .../datafusion/DataSourceRegistry.java | 2 +- ...ized.execution.search.spi.DataSourceCodec} | 0 .../org/opensearch/index/engine/Engine.java | 3 + .../index/engine/EngineSearcher.java | 35 ++++ .../CompositeIndexingExecutionEngine.java | 92 ++++++++++ .../index/mapper/MapperService.java | 2 +- .../opensearch/index/shard/IndexShard.java | 1 + .../main/java/org/opensearch/node/Node.java | 11 +- .../plugins/DataSourceAwarePlugin.java | 2 +- .../opensearch/plugins/DataSourcePlugin.java | 9 +- .../org/opensearch/search/SearchService.java | 8 +- 24 files changed, 397 insertions(+), 21 deletions(-) create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java rename libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/{ => search}/spi/DataSourceCodec.java (97%) rename libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/{ => search}/spi/RecordBatchStream.java (95%) rename libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/{ => search}/spi/package-info.java (86%) create mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java create mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java rename plugins/dataformat-csv/src/main/resources/META-INF/services/{org.opensearch.vectorized.execution.spi.DataSourceCodec => org.opensearch.vectorized.execution.search.spi.DataSourceCodec} (100%) rename plugins/engine-datafusion/src/main/resources/META-INF/services/{org.opensearch.vectorized.execution.spi.DataSourceCodec => org.opensearch.vectorized.execution.search.spi.DataSourceCodec} (100%) create mode 100644 server/src/main/java/org/opensearch/index/engine/EngineSearcher.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java new file mode 100644 index 0000000000000..138d232590871 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/CatalogSearcher.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.search; + +public class CatalogSearcher { +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java new file mode 100644 index 0000000000000..d50616ea8a662 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/IndexReader.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.search; + +public class IndexReader { +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java similarity index 97% rename from libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java rename to libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java index c42b5d67c8791..3bfde6d955d75 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/DataSourceCodec.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package org.opensearch.vectorized.execution.spi; +package org.opensearch.vectorized.execution.search.spi; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/RecordBatchStream.java similarity index 95% rename from libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java rename to libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/RecordBatchStream.java index b79f895c243b9..39a112e2aabd3 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/RecordBatchStream.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/RecordBatchStream.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package org.opensearch.vectorized.execution.spi; +package org.opensearch.vectorized.execution.search.spi; import java.util.concurrent.CompletableFuture; diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/package-info.java similarity index 86% rename from libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java rename to libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/package-info.java index 9402386b8746b..0fb858428c115 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/spi/package-info.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/package-info.java @@ -10,4 +10,4 @@ * Service Provider Interface (SPI) for DataFusion data source codecs. * Defines interfaces for implementing different data format support. */ -package org.opensearch.vectorized.execution.spi; +package org.opensearch.vectorized.execution.search.spi; diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java index e8f0d2306d2e6..7f043c0e81883 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java @@ -8,9 +8,13 @@ package org.opensearch.datafusion.csv; +import org.opensearch.datafusion.csv.engine.exec.CsvDataFormat; +import org.opensearch.datafusion.csv.engine.exec.CsvEngine; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.Plugin; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.util.HashMap; import java.util.Map; @@ -40,4 +44,14 @@ public Optional> getDataSourceCodecs() { return Optional.of(codecs); // return Optional.empty(); } + + @Override + public IndexingExecutionEngine indexingEngine() { + return (IndexingExecutionEngine) new CsvEngine(); + } + + @Override + public DataFormat getDataFormat() { + return new CsvDataFormat(); + } } diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java index 80622fbda6e31..1cdb266dba68b 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java @@ -10,8 +10,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; -import org.opensearch.vectorized.execution.spi.RecordBatchStream; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java index 56738a87cbddf..8df44473c5932 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java @@ -10,7 +10,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.spi.RecordBatchStream; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import java.util.concurrent.CompletableFuture; diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java new file mode 100644 index 0000000000000..b90e2f9f73723 --- /dev/null +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv.engine.exec; + +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.index.engine.exec.DataFormat; + +public class CsvDataFormat implements DataFormat { + @Override + public Setting dataFormatSettings() { + return null; + } + + @Override + public Setting clusterLeveldataFormatSettings() { + return null; + } + + @Override + public String name() { + return "csv"; + } + + @Override + public void configureStore() { + + } +} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java new file mode 100644 index 0000000000000..28254c0463dad --- /dev/null +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java @@ -0,0 +1,160 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.csv.engine.exec; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.mapper.MappedFieldType; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +public class CsvEngine implements IndexingExecutionEngine { + + private final AtomicLong counter = new AtomicLong(); + private final Set openWriters = new HashSet<>(); + private List openFiles = new ArrayList<>(); + static CsvDataFormat CSV = new CsvDataFormat(); + + @Override + public List supportedFieldTypes() { + return List.of(); + } + + @Override + public Writer> createWriter() throws IOException { + return new CsvWriter("file1.csv" + counter.getAndIncrement(), this); + } + + @Override + public DataFormat getDataFormat() { + return CSV; + } + + @Override + public RefreshResult refresh(RefreshInput refreshInput) throws IOException { + openFiles.addAll(refreshInput.getFiles()); + RefreshResult refreshResult = new RefreshResult(); + refreshResult.add(CSV, openFiles); + return refreshResult; + } + + public static class CsvInput implements DocumentInput { + private final List values = new ArrayList<>(); + private final CsvWriter writer; + + public CsvInput(CsvWriter writer) { + this.writer = writer; + } + + @Override + public void addField(MappedFieldType fieldType, Object value) { + String stringValue = value == null ? "" : value.toString(); + if (stringValue.contains(",") || stringValue.contains("\"") || stringValue.contains("\n")) { + stringValue = "\"" + stringValue.replace("\"", "\"\"") + "\""; + } + values.add(stringValue); + } + + @Override + public String getFinalInput() { + return String.join(",", values) + "\n"; + } + + @Override + public WriteResult addToWriter() throws IOException { + return writer.addDoc(this); + } + + @Override + public void close() throws Exception { + // no op + } + } + + public static class CsvWriter implements Writer { + private final StringBuilder sb = new StringBuilder(); + private final File currentFile; + private AtomicBoolean flushed = new AtomicBoolean(false); + private final Runnable onClose; + private boolean headerWritten = false; + + public CsvWriter(String currentFile, CsvEngine engine) throws IOException { + this.currentFile = new File("/Users/gbh/" + currentFile); + this.currentFile.createNewFile(); + boolean canWrite = this.currentFile.setWritable(true); + if (!canWrite) { + throw new IllegalStateException("Cannot write to file [" + currentFile + "]"); + } + engine.openWriters.add(this); + onClose = () -> engine.openWriters.remove(this); + } + + @Override + public WriteResult addDoc(CsvInput d) throws IOException { + sb.append(d.getFinalInput()); + return new WriteResult(true, null, 1, 1, 1); + } + + @Override + public FileMetadata flush(FlushIn flushIn) throws IOException { + try (FileWriter fw = new FileWriter(currentFile)) { + fw.write(sb.toString()); + } + flushed.set(true); + return new FileMetadata(CSV, currentFile.getName()); + } + + @Override + public void sync() throws IOException { + // no op + } + + @Override + public void close() { + onClose.run(); + } + + @Override + public Optional getMetadata() { + if (flushed.get()) { + return Optional.of(new FileMetadata(CSV, currentFile.getName())); + } + return Optional.empty(); + } + + @Override + public CsvInput newDocumentInput() { + return new CsvInput(this); + } + + public void writeHeaders(List headers) { + if (!headerWritten) { + String headerLine = String.join(",", headers) + "\n"; + sb.insert(0, headerLine); + headerWritten = true; + } + } + } +} diff --git a/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec b/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec similarity index 100% rename from plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec rename to plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 224075b9c2414..f84d782d4fc14 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -31,7 +31,7 @@ import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.client.Client; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; import java.util.Collection; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 099ae90d20599..9ef2c9faa98ee 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -14,8 +14,8 @@ import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.GlobalRuntimeEnv; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; -import org.opensearch.vectorized.execution.spi.RecordBatchStream; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import java.util.List; import java.util.Map; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java index 9229b861ceef3..a281576ad4f40 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java @@ -10,7 +10,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.util.ArrayList; import java.util.List; diff --git a/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec b/plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec similarity index 100% rename from plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.spi.DataSourceCodec rename to plugins/engine-datafusion/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec diff --git a/server/src/main/java/org/opensearch/index/engine/Engine.java b/server/src/main/java/org/opensearch/index/engine/Engine.java index 82d8871b73fba..616e908e39c73 100644 --- a/server/src/main/java/org/opensearch/index/engine/Engine.java +++ b/server/src/main/java/org/opensearch/index/engine/Engine.java @@ -762,6 +762,7 @@ public SearcherSupplier acquireSearcherSupplier(Function wra SearcherSupplier reader = new SearcherSupplier(wrapper) { @Override public Searcher acquireSearcherInternal(String source) { + // TODO : this should return assert assertSearcherIsWarmedUp(source, scope); return new Searcher( source, @@ -1439,8 +1440,10 @@ public final void close() { * * @opensearch.api */ + @PublicApi(since = "1.0.0") public static final class Searcher extends IndexSearcher implements Releasable { + // TODO : this extends index searcher private final String source; private final Closeable onClose; diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java new file mode 100644 index 0000000000000..8a3a252ffb784 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.common.lucene.index.OpenSearchDirectoryReader; + +import java.util.function.Function; + +public interface EngineSearcher { + /** + * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + */ + Engine.SearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException; + /** + * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + */ + Engine.SearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException; + + Engine.Searcher acquireSearcher(String source) throws EngineException; + + Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException; + + public Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException; + + ReferenceManager getReferenceManager(Engine.SearcherScope scope); + + boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java new file mode 100644 index 0000000000000..d4d2b913566fd --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -0,0 +1,92 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.composite; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.engine.exec.coord.Any; +import org.opensearch.index.engine.exec.coord.DocumentWriterPool; +import org.opensearch.index.engine.exec.text.TextEngine; +import org.opensearch.plugins.DataSourcePlugin; +import org.opensearch.plugins.PluginsService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { + + final DocumentWriterPool pool; + private DataFormat dataFormat; + public final List> delegates = new ArrayList<>(); + + public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataformat) { + this.dataFormat = dataformat; + try { + for (DataFormat dataFormat : dataformat.getDataFormats()) { + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() + .filter(curr -> curr.getDataFormat().equals(dataFormat)) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); + delegates.add(plugin.indexingEngine()); + } + } catch (NullPointerException e) { + // my own testing + delegates.add(new TextEngine()); + } + this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); + } + + @Override + public DataFormat getDataFormat() { + return dataFormat; + } + + @Override + public List supportedFieldTypes() { + throw new UnsupportedOperationException(); + } + + @Override + public Writer createWriter() throws IOException { + return pool.fetchWriter(); + } + + @Override + public RefreshResult refresh(RefreshInput ignore) throws IOException { + RefreshResult finalResult = new RefreshResult(); + Map refreshInputs = new HashMap<>(); + try { + List dataFormatWriters = pool.freeAll(); + + // flush to disk + for (CompositeDataFormatWriter dataFormatWriter : dataFormatWriters) { + FileMetadata metadata = dataFormatWriter.flush(null); + refreshInputs.computeIfAbsent(metadata.df(), df -> new RefreshInput()).add(metadata); + } + + // make indexing engines aware of everything + for (IndexingExecutionEngine delegate : delegates) { + RefreshResult result = delegate.refresh(refreshInputs.get(delegate.getDataFormat())); + finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); + } + + // provide a view to the upper layer + return finalResult; + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/mapper/MapperService.java b/server/src/main/java/org/opensearch/index/mapper/MapperService.java index b0acdceeff9ce..3c7d9374fa257 100644 --- a/server/src/main/java/org/opensearch/index/mapper/MapperService.java +++ b/server/src/main/java/org/opensearch/index/mapper/MapperService.java @@ -141,7 +141,7 @@ public enum MergeReason { ); public static final Setting INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING = Setting.longSetting( "index.mapping.total_fields.limit", - 1000L, + 10000L, 0, Property.Dynamic, Property.IndexScope diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 360933456a11d..0aeb96386a099 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -2208,6 +2208,7 @@ private Engine.Searcher wrapSearcher(Engine.Searcher searcher) { throw new OpenSearchException("failed to wrap searcher", ex); } finally { if (success == false) { + // TODO important Releasables.close(success, searcher); } } diff --git a/server/src/main/java/org/opensearch/node/Node.java b/server/src/main/java/org/opensearch/node/Node.java index 520427c40657e..31dfe3970bfb1 100644 --- a/server/src/main/java/org/opensearch/node/Node.java +++ b/server/src/main/java/org/opensearch/node/Node.java @@ -296,7 +296,7 @@ import org.opensearch.transport.client.Client; import org.opensearch.transport.client.node.NodeClient; import org.opensearch.usage.UsageService; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; import org.opensearch.wlm.WorkloadGroupService; import org.opensearch.wlm.WorkloadGroupsStateAccessor; @@ -1556,7 +1556,8 @@ protected Node(final Environment initialEnvironment, Collection clas searchModule.getIndexSearcherExecutor(threadPool), taskResourceTrackingService, searchModule.getConcurrentSearchRequestDeciderFactories(), - searchModule.getPluginProfileMetricsProviders() + searchModule.getPluginProfileMetricsProviders(), + pluginsService.filterPlugins(DataSourcePlugin.class) ); final List> tasksExecutors = pluginsService.filterPlugins(PersistentTaskPlugin.class) @@ -2287,7 +2288,8 @@ protected SearchService newSearchService( Executor indexSearcherExecutor, TaskResourceTrackingService taskResourceTrackingService, Collection concurrentSearchDeciderFactories, - List pluginProfilers + List pluginProfilers, + List dataSourcePluginList ) { return new SearchService( clusterService, @@ -2302,7 +2304,8 @@ protected SearchService newSearchService( indexSearcherExecutor, taskResourceTrackingService, concurrentSearchDeciderFactories, - pluginProfilers + pluginProfilers, + dataSourcePluginList ); } diff --git a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java index 1b2a4d0d05e52..0dc27820ee575 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java @@ -18,7 +18,7 @@ import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.client.Client; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; import java.util.Collection; diff --git a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java index 3118e3d1e7d90..0fee62be5640a 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java @@ -8,14 +8,19 @@ package org.opensearch.plugins; -import org.opensearch.vectorized.execution.spi.DataSourceCodec; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.util.Map; import java.util.Optional; public interface DataSourcePlugin { - // TODO : move to vectorized exec specific plugin default Optional> getDataSourceCodecs() { return Optional.empty(); } + + IndexingExecutionEngine indexingEngine(); + + DataFormat getDataFormat(); } diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index e455cec7824c6..979140a44443e 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -101,6 +101,7 @@ import org.opensearch.indices.IndicesService; import org.opensearch.indices.cluster.IndicesClusterStateService.AllocatedIndices.IndexRemovalReason; import org.opensearch.node.ResponseCollectorService; +import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.SearchPlugin; import org.opensearch.script.FieldScript; import org.opensearch.script.ScriptService; @@ -434,6 +435,7 @@ public class SearchService extends AbstractLifecycleComponent implements IndexEv private final FetchPhase fetchPhase; private final Collection concurrentSearchDeciderFactories; + private final List dataSourcePluginList; private volatile long defaultKeepAlive; @@ -482,7 +484,8 @@ public SearchService( Executor indexSearcherExecutor, TaskResourceTrackingService taskResourceTrackingService, Collection concurrentSearchDeciderFactories, - List pluginProfilers + List pluginProfilers, + List dataSourcePluginList ) { Settings settings = clusterService.getSettings(); this.threadPool = threadPool; @@ -510,7 +513,7 @@ public SearchService( this::setPitKeepAlives, this::validatePitKeepAlives ); - + this.dataSourcePluginList = dataSourcePluginList; clusterService.getClusterSettings() .addSettingsUpdateConsumer(DEFAULT_KEEPALIVE_SETTING, MAX_KEEPALIVE_SETTING, this::setKeepAlives, this::validateKeepAlives); @@ -1082,6 +1085,7 @@ final ReaderContext createOrGetReaderContext(ShardSearchRequest request, boolean } IndexService indexService = indicesService.indexServiceSafe(request.shardId().getIndex()); IndexShard shard = indexService.getShard(request.shardId().id()); + // TODO acquire search supplier Engine.SearcherSupplier reader = shard.acquireSearcherSupplier(); return createAndPutReaderContext(request, indexService, shard, reader, keepStatesInContext); } From e17bce17ac116db7384cbd70168baacbf47530e8 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Wed, 3 Sep 2025 17:55:01 +0530 Subject: [PATCH 010/112] Search and indexing engine integration changes - inprogesss commit Signed-off-by: bharath-techie --- .gitignore | 3 + .../execution/search/DataFormat.java | 14 ++ .../execution/search/spi/DataSourceCodec.java | 7 + .../datafusion/csv/CsvDataFormatPlugin.java | 7 +- .../datafusion/csv/CsvDataSourceCodec.java | 5 + .../datafusion/DataFusionPlugin.java | 42 ++++- .../datafusion/DataFusionService.java | 5 +- .../datafusion/DataSourceRegistry.java | 7 +- .../datafusion/DatafusionEngine.java | 113 ++++++----- .../datafusion/search/DatafusionReader.java | 66 +++++++ .../search/DatafusionReaderManager.java | 68 +++++++ .../search/DatafusionReaderManager1.java | 65 +++++++ .../datafusion/search/DatafusionSearcher.java | 39 ++++ .../search/DatafusionSearcherSupplier.java | 12 ++ .../wlm/spi/CatalogSnapshotMetadata.java | 26 +++ .../opensearch/index/shard/IndexShardIT.java | 1 + .../org/opensearch/index/IndexModule.java | 28 ++- .../org/opensearch/index/IndexService.java | 15 +- .../CatalogSnapshotAwareRefreshListener.java | 27 +++ .../org/opensearch/index/engine/Engine.java | 10 +- .../opensearch/index/engine/EngineLucene.java | 51 +++++ .../index/engine/EngineReaderManager.java | 23 +++ .../index/engine/EngineSearcher.java | 32 ++-- .../index/engine/EngineSearcherSupplier.java | 32 ++++ .../index/engine/InternalEngine.java | 14 +- .../index/engine/LuceneReaderManager.java | 38 ++++ .../index/engine/NRTReplicationEngine.java | 2 +- .../opensearch/index/engine/ReadEngine.java | 16 ++ .../index/engine/ReadOnlyEngine.java | 2 +- .../index/engine/SearcherOperations.java | 36 ++++ .../engine/exec/coord/CatalogSnapshot.java | 72 +++++++ .../coord/IndexingExecutionCoordinator.java | 177 ++++++++++++++++++ .../opensearch/index/shard/IndexShard.java | 10 +- .../opensearch/indices/IndicesService.java | 3 +- .../plugins/DataSourceAwarePlugin.java | 19 +- .../opensearch/plugins/DataSourcePlugin.java | 2 +- .../aggregations/SearchResultsCollector.java | 1 + .../opensearch/index/IndexModuleTests.java | 1 + .../index/shard/IndexShardTestCase.java | 1 + 39 files changed, 975 insertions(+), 117 deletions(-) create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java create mode 100644 plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java create mode 100644 server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java create mode 100644 server/src/main/java/org/opensearch/index/engine/EngineLucene.java create mode 100644 server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java create mode 100644 server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java create mode 100644 server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java create mode 100644 server/src/main/java/org/opensearch/index/engine/ReadEngine.java create mode 100644 server/src/main/java/org/opensearch/index/engine/SearcherOperations.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java diff --git a/.gitignore b/.gitignore index 0a784701375d9..ea5499ceb89c6 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,6 @@ testfixtures_shared/ # build files generated doc-tools/missing-doclet/bin/ +/plugins/dataformat-csv/jni/target +/plugins/dataformat-csv/jni/Cargo.lock + diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java new file mode 100644 index 0000000000000..5f7a9ad6b3187 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java @@ -0,0 +1,14 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.search; + +public enum DataFormat { + CSV, + Text +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java index 3bfde6d955d75..e58f0a7e5bba0 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java @@ -8,6 +8,8 @@ package org.opensearch.vectorized.execution.search.spi; +import org.opensearch.vectorized.execution.search.DataFormat; + import java.util.List; import java.util.concurrent.CompletableFuture; @@ -53,4 +55,9 @@ public interface DataSourceCodec { * @return a CompletableFuture that completes when the context is closed */ CompletableFuture closeSessionContext(long sessionContextId); + + /** + * Returns the data format name + */ + DataFormat getDataFormat(); } diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java index 7f043c0e81883..76eba217a09a7 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java @@ -37,10 +37,11 @@ public CsvDataFormatPlugin() { // TODO : move to vectorized exec specific plugin @Override - public Optional> getDataSourceCodecs() { - Map codecs = new HashMap<>(); + public Optional> getDataSourceCodecs() { + Map codecs = new HashMap<>(); + CsvDataSourceCodec csvDataSourceCodec = new CsvDataSourceCodec(); // TODO : version it correctly - similar to lucene codecs? - codecs.put("csv-v1", new CsvDataSourceCodec()); + codecs.put(csvDataSourceCodec.getDataFormat(), new CsvDataSourceCodec()); return Optional.of(codecs); // return Optional.empty(); } diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java index 1cdb266dba68b..ed8177b4fe01f 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -131,6 +132,10 @@ public CompletableFuture closeSessionContext(long sessionContextId) { }); } + public DataFormat getDataFormat() { + return DataFormat.CSV; + } + // Native method declarations - these will be implemented in the JNI library private static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index f84d782d4fc14..af5eedeee23fc 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -20,8 +20,14 @@ import org.opensearch.datafusion.action.DataFusionAction; import org.opensearch.datafusion.action.NodesDataFusionInfoAction; import org.opensearch.datafusion.action.TransportNodesDataFusionInfoAction; +import org.opensearch.datafusion.search.DatafusionReaderManager; +import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; +import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.plugins.ActionPlugin; import org.opensearch.plugins.DataSourceAwarePlugin; import org.opensearch.plugins.Plugin; @@ -31,11 +37,14 @@ import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.client.Client; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; +import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Supplier; @@ -44,7 +53,7 @@ * Main plugin class for OpenSearch DataFusion integration. * */ -public class DataFusionPlugin extends Plugin implements ActionPlugin, DataSourceAwarePlugin { +public class DataFusionPlugin extends Plugin implements ActionPlugin, DataSourceAwarePlugin { private DataFusionService dataFusionService; private final boolean isDataFusionEnabled; @@ -87,16 +96,40 @@ public Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Map dataSourceCodecs + Map dataSourceCodecs ) { if (!isDataFusionEnabled) { return Collections.emptyList(); } dataFusionService = new DataFusionService(dataSourceCodecs); + + for(DataFormat format : this.getSupportedFormats()) { + dataSourceCodecs.get(format); + } // return Collections.emptyList(); return Collections.singletonList(dataFusionService); } + @Override + public List getSupportedFormats() { + return List.of(DataFormat.CSV); + } + + @Override + public EngineReaderManager getReaderManager() { + return null; + } + + /** + * Create engine per shard per format with initial view of catalog + */ + // TODO : one engine per format, does that make sense ? + // TODO : Engine shouldn't just be SearcherOperations, it can be more ? + @Override + public SearcherOperations createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException { + return new DatafusionEngine(dataFormat, formatCatalogSnapshot); + } + /** * Gets the REST handlers for the DataFusion plugin. * @param settings The settings for the plugin. @@ -135,9 +168,4 @@ public List getRestHandlers( } return List.of(new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class)); } - - @Override - public void registerDataSources(Map dataSourceCodecs) { - dataFusionService = new DataFusionService(dataSourceCodecs); - } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 9ef2c9faa98ee..7b03b584d3444 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -14,6 +14,7 @@ import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.GlobalRuntimeEnv; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -35,7 +36,7 @@ public class DataFusionService extends AbstractLifecycleComponent { /** * Creates a new DataFusion service instance. */ - public DataFusionService(Map dataSourceCodecs) { + public DataFusionService(Map dataSourceCodecs) { this.dataSourceRegistry = new DataSourceRegistry(dataSourceCodecs); // to verify jni @@ -187,7 +188,7 @@ public String getVersion() { version.append("{\"codecs\":["); boolean first = true; - for (String engineName : this.dataSourceRegistry.getCodecNames()) { + for (DataFormat engineName : this.dataSourceRegistry.getCodecNames()) { if (!first) { version.append(","); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java index a281576ad4f40..1d274116aac94 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataSourceRegistry.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.util.ArrayList; @@ -24,9 +25,9 @@ public class DataSourceRegistry { private static final Logger logger = LogManager.getLogger(DataSourceRegistry.class); - private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); + private final ConcurrentHashMap codecs = new ConcurrentHashMap<>(); - public DataSourceRegistry(Map dataSourceCodecMap) { + public DataSourceRegistry(Map dataSourceCodecMap) { codecs.putAll(dataSourceCodecMap); } @@ -44,7 +45,7 @@ public boolean hasCodecs() { * * @return list of codec names */ - public List getCodecNames() { + public List getCodecNames() { return new ArrayList<>(codecs.keySet()); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 47385aa56f1fe..2a1d63eff2c92 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -8,76 +8,69 @@ package org.opensearch.datafusion; -import org.apache.arrow.memory.RootAllocator; -import org.apache.arrow.vector.FieldVector; -import org.apache.arrow.vector.VectorSchemaRoot; -import org.apache.arrow.vector.types.pojo.Field; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.opensearch.datafusion.core.SessionContext; -import org.opensearch.index.engine.SearchExecutionEngine; -import org.opensearch.search.aggregations.SearchResultsCollector; +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.datafusion.search.DatafusionReaderManager; +import org.opensearch.datafusion.search.DatafusionSearcher; +import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; +import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.EngineSearcherSupplier; +import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.vectorized.execution.search.DataFormat; -import java.util.HashMap; -import java.util.Map; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collection; +import java.util.function.Function; -/** - * DataFusion search execution engine implementation that executes Substrait query plans - * using the DataFusion query engine for OpenSearch. - */ -public class DatafusionEngine implements SearchExecutionEngine { +public class DatafusionEngine implements SearcherOperations { + + private DataFormat dataFormat; + private DatafusionReaderManager datafusionReaderManager; - private static final Logger logger = LogManager.getLogger(DatafusionEngine.class); - private final DataFusionService dataFusionService; + public DatafusionEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException { + this.dataFormat = dataFormat; + this.datafusionReaderManager = new DatafusionReaderManager("TODO://FigureOutPath", formatCatalogSnapshot); + } + + @Override + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { + return null; + } + + @Override + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException { + return null; + } - /** - * Constructs a new DatafusionEngine with the specified DataFusion service. - * - * @param dataFusionService the DataFusion service used for query execution - */ - public DatafusionEngine(DataFusionService dataFusionService) { - this.dataFusionService = dataFusionService; + @Override + public DatafusionSearcher acquireSearcher(String source) throws EngineException { + return null; } @Override - public Map execute(byte[] queryPlanIR) { - Map finalRes = new HashMap<>(); - try { - SessionContext defaultSessionContext = dataFusionService.getDefaultContext(); - long streamPointer = dataFusionService.executeSubstraitQueryStream(queryPlanIR); - RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(defaultSessionContext, streamPointer, allocator); + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { + return null; + } - // We can have some collectors passed like this which can collect the results and convert to InternalAggregation - // Is the possible? need to check - SearchResultsCollector collector = new SearchResultsCollector() { - @Override - public void collect(RecordBatchStream value) { - VectorSchemaRoot root = value.getVectorSchemaRoot(); - for (Field field : root.getSchema().getFields()) { - String filedName = field.getName(); - FieldVector fieldVector = root.getVector(filedName); - Object[] fieldValues = new Object[fieldVector.getValueCount()]; - for (int i = 0; i < fieldVector.getValueCount(); i++) { - fieldValues[i] = fieldVector.getObject(i); - } - finalRes.put(filedName, fieldValues); - } - } - }; + @Override + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException { + return null; + } - while (stream.loadNextBatch().join()) { - collector.collect(stream); - } + @Override + public DatafusionReaderManager getReferenceManager(Engine.SearcherScope scope) { + return datafusionReaderManager; + } - logger.info("Final Results:"); - for (Map.Entry entry : finalRes.entrySet()) { - logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); - } + @Override + public CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherScope scope) { + return datafusionReaderManager; + } - } catch (Exception exception) { - logger.error("Failed to execute Substrait query plan", exception); - } - return finalRes; + @Override + public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope) { + return false; } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java new file mode 100644 index 0000000000000..ee3e2aac06251 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -0,0 +1,66 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.opensearch.index.engine.exec.FileMetadata; + +import java.io.Closeable; +import java.io.IOException; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +// JNI from java to rust +// substrait +// Harcode --> file --> register as the table with the same name +public class DatafusionReader implements Closeable { + public String directoryPath; + public Collection files; + public long cachePtr; + private AtomicInteger refCount = new AtomicInteger(0); + + public DatafusionReader(String directoryPath, Collection files) { + this.directoryPath = directoryPath; + this.files = files; + this.cachePtr = createDatafusionReader(directoryPath, files); + incRef(); + } + + public long getCachePtr() { + return cachePtr; + } + + public void incRef() { + refCount.getAndIncrement(); + } + + public void decRef() throws IOException { + if(refCount.get() == 0) { + throw new IllegalStateException("Listing table has been already closed"); + } + + int currRefCount = refCount.decrementAndGet(); + if(currRefCount == 0) { + this.close(); + } + + } + + private static native long createDatafusionReader(String path, Collection files); + private static native void closeDatafusionReader(long ptr); + + @Override + public void close() throws IOException { + if(cachePtr == -1L) { + throw new IllegalStateException("Listing table has been already closed"); + } + + closeDatafusionReader(this.cachePtr); + this.cachePtr = -1; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java new file mode 100644 index 0000000000000..a48e697d6fd16 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -0,0 +1,68 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; +import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +public class DatafusionReaderManager implements EngineReaderManager, CatalogSnapshotAwareRefreshListener { + private DatafusionReader current; + private String path; + private String dataFormat; +// private final Lock refreshLock = new ReentrantLock(); +// private final List refreshListeners = new CopyOnWriteArrayList(); + + public DatafusionReaderManager(String path, Collection files) throws IOException { + this.current = new DatafusionReader(path, files); + this.path = path; + this.dataFormat = dataFormat; + } + + @Override + public DatafusionReader acquire() throws IOException { + if (current == null) { + throw new RuntimeException("Invalid state for datafusion reader"); + } + current.incRef(); + return current; + } + + @Override + public void release(DatafusionReader reference) throws IOException { + assert reference != null : "Shard view can't be null"; + reference.decRef(); + } + + + @Override + public void beforeRefresh() throws IOException { + // no op + } + + @Override + public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { + if (didRefresh && catalogSnapshot != null) { + DatafusionReader old = this.current; + release(old); + this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); + this.current.incRef(); + } + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java new file mode 100644 index 0000000000000..12f3c1ef91716 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java @@ -0,0 +1,65 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; +import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + +import java.io.IOException; +import java.util.Collection; + +public class DatafusionReaderManager1 extends ReferenceManager implements CatalogSnapshotAwareRefreshListener { + private DatafusionReader current; + private String path; + + public DatafusionReaderManager1(String path, Collection files) throws IOException { + this.current = new DatafusionReader(path, files); + this.path = path; + } + + + + @Override + public void beforeRefresh() throws IOException { + // no op + } + + @Override + public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { + if (didRefresh && catalogSnapshot != null) { + DatafusionReader old = this.current; + release(old); + this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); + this.current.incRef(); + } + } + + @Override + protected void decRef(DatafusionReader datafusionReader) throws IOException { + + } + + @Override + protected DatafusionReader refreshIfNeeded(DatafusionReader datafusionReader) throws IOException { + return null; + } + + @Override + protected boolean tryIncRef(DatafusionReader datafusionReader) throws IOException { + return false; + } + + @Override + protected int getRefCount(DatafusionReader datafusionReader) { + return 0; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java new file mode 100644 index 0000000000000..dfe21fb911e91 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -0,0 +1,39 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.opensearch.datafusion.DataFusionService; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.search.aggregations.SearchResultsCollector; + +import java.io.IOException; +import java.util.List; + +public class DatafusionSearcher implements EngineSearcher { + private final String source; + + public DatafusionSearcher(String source) { + this.source = source; + } + + @Override + public String source() { + return source; + } + + @Override + public void search(byte[] substraitInput, List> collectors) throws IOException { + // TODO : call search here to native + } + + @Override + public void close() { + + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java new file mode 100644 index 0000000000000..ebd0cb9a19fa0 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +public class DatafusionSearcherSupplier { +} diff --git a/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java b/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java new file mode 100644 index 0000000000000..618d8a42d6dc5 --- /dev/null +++ b/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.index.engine.exec.FileMetadata; + +import java.util.Collection; + +public class CatalogSnapshotMetadata { + Collection files; + String path; + + public Collection getFiles() { + return files; + } + + public String getPath() { + return path; + } +} diff --git a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java index d7d6ddffae385..70e0002608fe2 100644 --- a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java +++ b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java @@ -733,6 +733,7 @@ public static final IndexShard newIndexShard( clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, ReferencedSegmentsPublisher.EMPTY, + null, null ); } diff --git a/server/src/main/java/org/opensearch/index/IndexModule.java b/server/src/main/java/org/opensearch/index/IndexModule.java index 21cfdcb178499..f715dd13cd25f 100644 --- a/server/src/main/java/org/opensearch/index/IndexModule.java +++ b/server/src/main/java/org/opensearch/index/IndexModule.java @@ -90,6 +90,7 @@ import org.opensearch.indices.recovery.RecoverySettings; import org.opensearch.indices.recovery.RecoveryState; import org.opensearch.plugins.IndexStorePlugin; +import org.opensearch.plugins.PluginsService; import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; @@ -494,6 +495,23 @@ public void addSimilarity(String name, TriFunction */ + /** + * indexModule.setReaderWrapper( + * indexService -> new SecurityFlsDlsIndexSearcherWrapper( + * indexService, + * settings, + * adminDns, + * cs, + * auditLog, + * ciol, + * evaluator, + * dlsFlsValve::getCurrentConfig, + * dlsFlsBaseContext + * ) + * ); + * Example reader wrapper used in security plugin + * @param indexReaderWrapperFactory + */ public void setReaderWrapper( Function> indexReaderWrapperFactory ) { @@ -670,6 +688,7 @@ public IndexService newIndexService( RecoverySettings recoverySettings, RemoteStoreSettings remoteStoreSettings, Supplier clusterDefaultMaxMergeAtOnceSupplier, + PluginsService pluginsService, SearchEnginePlugin searchEnginePlugin ) throws IOException { return newIndexService( @@ -699,7 +718,8 @@ public IndexService newIndexService( (s) -> {}, shardId -> ReplicationStats.empty(), clusterDefaultMaxMergeAtOnceSupplier, - searchEnginePlugin + searchEnginePlugin, + pluginsService ); } @@ -730,7 +750,8 @@ public IndexService newIndexService( Consumer replicator, Function segmentReplicationStatsProvider, Supplier clusterDefaultMaxMergeAtOnceSupplier, - SearchEnginePlugin searchEnginePlugin + SearchEnginePlugin searchEnginePlugin, + PluginsService pluginsService ) throws IOException { final IndexEventListener eventListener = freeze(); Function> readerWrapperFactory = indexReaderWrapper @@ -803,7 +824,8 @@ public IndexService newIndexService( replicator, segmentReplicationStatsProvider, clusterDefaultMaxMergeAtOnceSupplier, - searchEnginePlugin + searchEnginePlugin, + pluginsService ); success = true; return indexService; diff --git a/server/src/main/java/org/opensearch/index/IndexService.java b/server/src/main/java/org/opensearch/index/IndexService.java index 841bb23fb369d..725e44833150a 100644 --- a/server/src/main/java/org/opensearch/index/IndexService.java +++ b/server/src/main/java/org/opensearch/index/IndexService.java @@ -110,6 +110,7 @@ import org.opensearch.indices.replication.checkpoint.SegmentReplicationCheckpointPublisher; import org.opensearch.node.remotestore.RemoteStoreNodeAttribute; import org.opensearch.plugins.IndexStorePlugin; +import org.opensearch.plugins.PluginsService; import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; @@ -209,6 +210,7 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust private volatile boolean shardLevelRefreshEnabled; private final SearchEnginePlugin searchEnginePlugin; private final IndexStorePlugin.StoreFactory storeFactory; + private final PluginsService pluginsService; @InternalApi public IndexService( @@ -255,7 +257,8 @@ public IndexService( Consumer replicator, Function segmentReplicationStatsProvider, Supplier clusterDefaultMaxMergeAtOnceSupplier, - SearchEnginePlugin searchEnginePlugin + SearchEnginePlugin searchEnginePlugin, + PluginsService pluginsService ) { super(indexSettings); this.storeFactory = storeFactory; @@ -363,6 +366,7 @@ public IndexService( } } this.searchEnginePlugin = searchEnginePlugin; + this.pluginsService = pluginsService; } @InternalApi @@ -405,7 +409,8 @@ public IndexService( RecoverySettings recoverySettings, RemoteStoreSettings remoteStoreSettings, Supplier clusterDefaultMaxMergeAtOnce, - SearchEnginePlugin searchEnginePlugin + SearchEnginePlugin searchEnginePlugin, + PluginsService pluginsService ) { this( indexSettings, @@ -451,7 +456,8 @@ public IndexService( s -> {}, (shardId) -> ReplicationStats.empty(), clusterDefaultMaxMergeAtOnce, - searchEnginePlugin + searchEnginePlugin, + pluginsService ); } @@ -801,7 +807,8 @@ protected void closeInternal() { clusterService.getClusterApplierService(), this.indexSettings.isSegRepEnabledOrRemoteNode() ? mergedSegmentPublisher : null, this.indexSettings.isSegRepEnabledOrRemoteNode() ? referencedSegmentsPublisher : null, - this.searchEnginePlugin.createEngine() + this.searchEnginePlugin.createEngine(), + pluginsService ); eventListener.indexShardStateChanged(indexShard, null, indexShard.state(), "shard created"); eventListener.afterIndexShardCreated(indexShard); diff --git a/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java new file mode 100644 index 0000000000000..11c0ce293eae9 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + +import java.io.IOException; + +public interface CatalogSnapshotAwareRefreshListener { + /** + * Called before refresh operation. + */ + void beforeRefresh() throws IOException; + + /** + * Called after refresh operation with catalog snapshot. + * @param didRefresh whether refresh actually occurred + * @param catalogSnapshot the current catalog snapshot with file information + */ + void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException; +} diff --git a/server/src/main/java/org/opensearch/index/engine/Engine.java b/server/src/main/java/org/opensearch/index/engine/Engine.java index 616e908e39c73..ec78a0f7a7ec9 100644 --- a/server/src/main/java/org/opensearch/index/engine/Engine.java +++ b/server/src/main/java/org/opensearch/index/engine/Engine.java @@ -130,7 +130,7 @@ * @opensearch.api */ @PublicApi(since = "1.0.0") -public abstract class Engine implements LifecycleAware, Closeable { +public abstract class Engine implements LifecycleAware, Closeable, SearcherOperations> { public static final String SYNC_COMMIT_ID = "sync_id"; // TODO: remove sync_id in 3.0 public static final String HISTORY_UUID_KEY = "history_uuid"; @@ -829,9 +829,9 @@ public Searcher acquireSearcher(String source, SearcherScope scope, Function getReferenceManager(SearcherScope scope); + public abstract ReferenceManager getReferenceManager(SearcherScope scope); - boolean assertSearcherIsWarmedUp(String source, SearcherScope scope) { + public boolean assertSearcherIsWarmedUp(String source, SearcherScope scope) { return true; } @@ -1405,7 +1405,7 @@ default void onFailedEngine(String reason, @Nullable Exception e) {} * @opensearch.api */ @PublicApi(since = "1.0.0") - public abstract static class SearcherSupplier implements Releasable { + public abstract static class SearcherSupplier extends EngineSearcherSupplier { private final Function wrapper; private final AtomicBoolean released = new AtomicBoolean(false); @@ -1442,7 +1442,7 @@ public final void close() { */ @PublicApi(since = "1.0.0") - public static final class Searcher extends IndexSearcher implements Releasable { + public static final class Searcher extends IndexSearcher implements Releasable, EngineSearcher { // TODO : this extends index searcher private final String source; private final Closeable onClose; diff --git a/server/src/main/java/org/opensearch/index/engine/EngineLucene.java b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java new file mode 100644 index 0000000000000..41092960fb2a3 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java @@ -0,0 +1,51 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.common.lucene.index.OpenSearchDirectoryReader; + +import java.util.function.Function; + +public class EngineLucene implements SearcherOperations>{ + @Override + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { + return null; + } + + @Override + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException { + return null; + } + + @Override + public Engine.Searcher acquireSearcher(String source) throws EngineException { + return null; + } + + @Override + public Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { + return null; + } + + @Override + public Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException { + return null; + } + + @Override + public ReferenceManager getReferenceManager(Engine.SearcherScope scope) { + return null; + } + + @Override + public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope) { + return false; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java b/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java new file mode 100644 index 0000000000000..992e835a5204d --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/EngineReaderManager.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.search.ReferenceManager; + +import java.io.IOException; + +public interface EngineReaderManager { + T acquire() throws IOException; + + void release(T reader) throws IOException; + + default void addListener(ReferenceManager.RefreshListener listener) { + // no-op + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java index 8a3a252ffb784..2ac38f96bac4f 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -8,28 +8,24 @@ package org.opensearch.index.engine; -import org.apache.lucene.search.ReferenceManager; -import org.opensearch.common.lucene.index.OpenSearchDirectoryReader; +import org.opensearch.common.lease.Releasable; +import org.opensearch.search.aggregations.SearchResultsCollector; -import java.util.function.Function; +import java.io.IOException; +import java.util.List; + +// TODO make this generic type +public interface EngineSearcher extends Releasable { -public interface EngineSearcher { /** - * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + * The source that caused this searcher to be acquired. */ - Engine.SearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException; + String source(); + /** - * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + * Search using substrait query plan bytes and call the result collectors */ - Engine.SearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException; - - Engine.Searcher acquireSearcher(String source) throws EngineException; - - Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException; - - public Engine.Searcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException; - - ReferenceManager getReferenceManager(Engine.SearcherScope scope); - - boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope); + default void search(byte[] substraitInput, List> collectors) throws IOException { + throw new UnsupportedOperationException(); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java new file mode 100644 index 0000000000000..0f94c80e11848 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java @@ -0,0 +1,32 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.common.lease.Releasable; + +import java.util.concurrent.atomic.AtomicBoolean; + +public abstract class EngineSearcherSupplier implements Releasable { + private final AtomicBoolean released = new AtomicBoolean(false); + + /** + * Acquire a searcher for the given source. + */ + public T acquireSearcher(String source) { + if (released.get()) { + throw new AlreadyClosedException("SearcherSupplier was closed"); + } + return acquireSearcherInternal(source); + } + + protected abstract T acquireSearcherInternal(String source); + + protected abstract void doClose(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java index fcc81335d4363..9f5cbadbb19fb 100644 --- a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java @@ -429,7 +429,8 @@ public CompletionStats completionStats(String... fieldNamePatterns) { * @opensearch.internal */ @SuppressForbidden(reason = "reference counting is required here") - private static final class ExternalReaderManager extends ReferenceManager { + private static final class + ExternalReaderManager extends ReferenceManager { private final BiConsumer refreshListener; private final OpenSearchReaderManager internalReaderManager; private boolean isWarmedUp; // guarded by refreshLock @@ -443,6 +444,13 @@ private static final class ExternalReaderManager extends ReferenceManager getReferenceManager(SearcherScope scope) { + public final ReferenceManager getReferenceManager(SearcherScope scope) { switch (scope) { case INTERNAL: return internalReaderManager; diff --git a/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java b/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java new file mode 100644 index 0000000000000..b3d2fe19b1b9d --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/LuceneReaderManager.java @@ -0,0 +1,38 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.common.lucene.index.OpenSearchDirectoryReader; + +import java.io.IOException; + +public class LuceneReaderManager implements EngineReaderManager { + private final ReferenceManager referenceManager; + + public LuceneReaderManager(ReferenceManager referenceManager) { + this.referenceManager = referenceManager; + } + + + @Override + public OpenSearchDirectoryReader acquire() throws IOException { + return referenceManager.acquire(); + } + + @Override + public void release(OpenSearchDirectoryReader reader) throws IOException { + referenceManager.release(reader); + } + + @Override + public void addListener(ReferenceManager.RefreshListener listener) { + + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/NRTReplicationEngine.java b/server/src/main/java/org/opensearch/index/engine/NRTReplicationEngine.java index 1fab651078cc4..b97d9931d1139 100644 --- a/server/src/main/java/org/opensearch/index/engine/NRTReplicationEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/NRTReplicationEngine.java @@ -276,7 +276,7 @@ public GetResult get(Get get, BiFunction search } @Override - protected ReferenceManager getReferenceManager(SearcherScope scope) { + public ReferenceManager getReferenceManager(SearcherScope scope) { return readerManager; } diff --git a/server/src/main/java/org/opensearch/index/engine/ReadEngine.java b/server/src/main/java/org/opensearch/index/engine/ReadEngine.java new file mode 100644 index 0000000000000..0e61cc70df2bc --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/ReadEngine.java @@ -0,0 +1,16 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +/** + * TODO : will use read engine eventually if we need more functionalities other than SearcherOperations + */ +public abstract class ReadEngine implements SearcherOperations> { + // No-OP +} diff --git a/server/src/main/java/org/opensearch/index/engine/ReadOnlyEngine.java b/server/src/main/java/org/opensearch/index/engine/ReadOnlyEngine.java index eba074e27f764..ad3cea6291eeb 100644 --- a/server/src/main/java/org/opensearch/index/engine/ReadOnlyEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/ReadOnlyEngine.java @@ -277,7 +277,7 @@ public GetResult get(Get get, BiFunction } @Override - protected ReferenceManager getReferenceManager(SearcherScope scope) { + public ReferenceManager getReferenceManager(SearcherScope scope) { return readerManager; } diff --git a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java new file mode 100644 index 0000000000000..fe7083012655f --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.common.lucene.index.OpenSearchDirectoryReader; + +import java.util.function.Function; + +public interface SearcherOperations { + /** + * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + */ + EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException; + /** + * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. + */ + EngineSearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException; + + S acquireSearcher(String source) throws EngineException; + + S acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException; + + S acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException; + + R getReferenceManager(Engine.SearcherScope scope); + + boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope); + +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java new file mode 100644 index 0000000000000..f2bdfcd733b09 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -0,0 +1,72 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.common.util.concurrent.AbstractRefCounted; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.RefreshResult; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +public class CatalogSnapshot extends AbstractRefCounted { + + // shard1 - r1 - f1, f2 -> refresh -> f1,f2 + // f1 - 1 + // f2 - 1 + // search1 - take searcher -> r1 -> + // f1 - 2 + // f2 - 2 + // shard1 - r2 -> f2, f3 -> refresh -> + // decref + // f1 - 1 + // f2 - 1 + // incref + // f2 - 2 + // f3 - 1 + // search1 is complete + // f1 - 0 + // f2 - 1 + // f3 - 1 + + + private Map> dfGroupedSearchableFiles = new HashMap<>(); + private final long id; + + public CatalogSnapshot(RefreshResult refreshResult, long id) { + super("catalog_snapshot"); + refreshResult.getRefreshedFiles().forEach((df, files) -> { + dfGroupedSearchableFiles.put(df.name(), files); + }); + this.id = id; + } + + public Collection getSearchableFiles(String df) { + return dfGroupedSearchableFiles.get(df); + } + + @Override + protected void closeInternal() { + // notify to file deleter, search, etc + } + + + public long getId() { + return id; + } + + @Override + public String toString() { + return "CatalogSnapshot{" + + "dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + + ", id=" + id + + '}'; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java new file mode 100644 index 0000000000000..7ec87ee68ad53 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java @@ -0,0 +1,177 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; +import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.plugins.DataSourceAwarePlugin; +import org.opensearch.plugins.PluginsService; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class IndexingExecutionCoordinator { + + private final CompositeIndexingExecutionEngine engine; + private List refreshListeners = new ArrayList<>(); + private CatalogSnapshot catalogSnapshot; + private List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); + private Map>> readEngines = new HashMap<>(); + + public IndexingExecutionCoordinator(MapperService mapperService, PluginsService pluginsService) throws IOException { + List dataSourceAwarePlugins = pluginsService.filterPlugins(DataSourceAwarePlugin.class); + this.engine = new CompositeIndexingExecutionEngine(pluginsService, new Any(List.of(DataFormat.TEXT))); + + // Refresh here so that catalog snapshot gets initialized + // TODO : any better way to do this ? + refresh("start"); + // TODO : how to extend this for Lucene ? where engine is a r/w engine + // Create read specific engines for each format which is associated with shard + for(DataSourceAwarePlugin dataSourceAwarePlugin : dataSourceAwarePlugins) { + for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : dataSourceAwarePlugin.getSupportedFormats()) { + SearcherOperations readEngine = dataSourceAwarePlugin.createEngine(dataFormat, + catalogSnapshot.getSearchableFiles(dataFormat.toString())); + readEngines.getOrDefault(dataFormat, new ArrayList<>()).add(readEngine); + // TODO : figure out how to do internal and external refresh listeners + // Maybe external refresh should be managed in opensearch core and plugins should always give + // internal refresh managers + // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds + // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger + // + catalogSnapshotAwareRefreshListeners.add(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + } + } + } + + public SearcherOperations getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { + return readEngines.getOrDefault(dataFormat, new ArrayList<>()).getFirst(); + } + + public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { + return engine.createWriter().newDocumentInput(); + } + + public Engine.IndexResult index(Engine.Index index) throws Exception { + WriteResult writeResult = index.documentInput.addToWriter(); + // translog, checkpoint, other checks + return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); + } + + + public synchronized void refresh(String source) throws EngineException, IOException { + refreshListeners.forEach(ref -> { + try { + ref.beforeRefresh(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + + long id = 0L; + if (catalogSnapshot != null) { + id = catalogSnapshot.getId(); + } + CatalogSnapshot newCatSnap = new CatalogSnapshot(engine.refresh(new RefreshInput()), id + 1L); + newCatSnap.incRef(); + if (catalogSnapshot != null) { + catalogSnapshot.decRef(); + } + catalogSnapshot = newCatSnap; + + catalogSnapshotAwareRefreshListeners.forEach(ref -> { + try { + ref.afterRefresh(true, catalogSnapshot); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + refreshListeners.forEach(ref -> { + try { + ref.afterRefresh(true); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + } + + public CatalogSnapshot catalogSnapshot() { + return catalogSnapshot; + } + + // This should get wired into searcher acquireSnapshot for initializing reader context later + // this now becomes equivalent of the reader + // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers + public ReleasableRef acquireSnapshot() { + catalogSnapshot.incRef(); // this should be package-private + return new ReleasableRef(catalogSnapshot) { + @Override + public void close() throws Exception { + catalogSnapshot.decRef(); // this should be package-private + } + }; + } + + + + public static abstract class ReleasableRef implements AutoCloseable { + private T t; + + public ReleasableRef(T t) { + this.t = t; + } + + public T getRef() { + return t; + } + } + + public static void main(String[] args) throws Exception { + IndexingExecutionCoordinator coordinator = new IndexingExecutionCoordinator(null, null); + + for (int i = 0; i < 5; i++) { + + // Ingestion into one generation + for (int k = 0; k < 10; k++) { + try (CompositeDataFormatWriter.CompositeDocumentInput doc = coordinator.documentInput()) { + + // Mapper part + doc.addField(new KeywordFieldMapper.KeywordFieldType("f1"), k + "_v1"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f2"), k + "_v2"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f3"), k + "_v3"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f4"), k + "_v4"); + Engine.Index index = new Engine.Index(null, 1L, null); + index.documentInput = doc; + + // applyIndexOperation part + coordinator.index(index); + } + } + + // Refresh until generation + coordinator.refresh("_manual_test"); + System.out.println(coordinator.catalogSnapshot); + } + } + +} diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 0aeb96386a099..d72ad733e27ea 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -143,6 +143,7 @@ import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.engine.Segment; import org.opensearch.index.engine.SegmentsStats; +import org.opensearch.index.engine.exec.coord.IndexingExecutionCoordinator; import org.opensearch.index.fielddata.FieldDataStats; import org.opensearch.index.fielddata.ShardFieldData; import org.opensearch.index.flush.FlushStats; @@ -211,6 +212,7 @@ import org.opensearch.indices.replication.checkpoint.ReplicationCheckpoint; import org.opensearch.indices.replication.checkpoint.SegmentReplicationCheckpointPublisher; import org.opensearch.indices.replication.common.ReplicationTimer; +import org.opensearch.plugins.PluginsService; import org.opensearch.repositories.RepositoriesService; import org.opensearch.repositories.Repository; import org.opensearch.search.suggest.completion.CompletionStats; @@ -391,7 +393,7 @@ Runnable getGlobalCheckpointSyncer() { private final ReferencedSegmentsPublisher referencedSegmentsPublisher; private final Set pendingMergedSegmentCheckpoints = Sets.newConcurrentHashSet(); private final SearchExecutionEngine searchExecutionEngine; - + private final IndexingExecutionCoordinator indexingExecutionCoordinator; @InternalApi public IndexShard( final ShardRouting shardRouting, @@ -432,7 +434,8 @@ public IndexShard( final ClusterApplierService clusterApplierService, @Nullable final MergedSegmentPublisher mergedSegmentPublisher, @Nullable final ReferencedSegmentsPublisher referencedSegmentsPublisher, - final SearchExecutionEngine searchExecutionEngine + final SearchExecutionEngine searchExecutionEngine, + PluginsService pluginsService ) throws IOException { super(shardRouting.shardId(), indexSettings); assert shardRouting.initializing(); @@ -557,6 +560,7 @@ public boolean shouldCache(Query query) { startRefreshTask(); } } + this.indexingExecutionCoordinator = new IndexingExecutionCoordinator(mapperService, pluginsService); this.searchExecutionEngine = searchExecutionEngine; } @@ -4265,10 +4269,12 @@ private EngineConfig newEngineConfig(LongSupplier globalCheckpointSupplier) thro if (indexSettings.isSegRepEnabledOrRemoteNode()) { internalRefreshListener.add(new ReplicationCheckpointUpdater()); } + // HERE if (this.checkpointPublisher != null && shardRouting.primary() && indexSettings.isSegRepLocalEnabled()) { internalRefreshListener.add(new CheckpointRefreshListener(this, this.checkpointPublisher)); } + // HERE if (isRemoteStoreEnabled() || isMigratingToRemote()) { internalRefreshListener.add( new RemoteStoreRefreshListener( diff --git a/server/src/main/java/org/opensearch/indices/IndicesService.java b/server/src/main/java/org/opensearch/indices/IndicesService.java index b6a5c65d553c8..5c70c3b308bd7 100644 --- a/server/src/main/java/org/opensearch/indices/IndicesService.java +++ b/server/src/main/java/org/opensearch/indices/IndicesService.java @@ -1103,7 +1103,8 @@ private synchronized IndexService createIndexService( replicator, segmentReplicationStatsProvider, this::getClusterDefaultMaxMergeAtOnce, - getSearchEnginePlugin() + getSearchEnginePlugin(), + this.pluginsService ); } diff --git a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java index 0dc27820ee575..499b136587eb0 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java @@ -14,20 +14,27 @@ import org.opensearch.core.xcontent.NamedXContentRegistry; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; +import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; import org.opensearch.transport.client.Client; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; +import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.function.Supplier; -public interface DataSourceAwarePlugin { - void registerDataSources(Map dataSourceCodecs); +public interface DataSourceAwarePlugin { /** * Make dataSourceCodecs available for the DataSourceAwarePlugin(s) @@ -44,8 +51,14 @@ default Collection createComponents( NamedWriteableRegistry namedWriteableRegistry, IndexNameExpressionResolver indexNameExpressionResolver, Supplier repositoriesServiceSupplier, - Map dataSourceCodecs + Map dataSourceCodecs ) { return Collections.emptyList(); } + + List getSupportedFormats(); + + EngineReaderManager getReaderManager(); + + SearcherOperations createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; } diff --git a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java index 0fee62be5640a..461bbc133905a 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java @@ -16,7 +16,7 @@ import java.util.Optional; public interface DataSourcePlugin { - default Optional> getDataSourceCodecs() { + default Optional> getDataSourceCodecs() { return Optional.empty(); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java index 7c0e7f14dfb84..d8e006f0f6484 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java +++ b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java @@ -12,6 +12,7 @@ * Experimental * @opensearch.internal */ +// TODO : account for sub collectors public interface SearchResultsCollector { /** diff --git a/server/src/test/java/org/opensearch/index/IndexModuleTests.java b/server/src/test/java/org/opensearch/index/IndexModuleTests.java index 74ea093c770f2..6bb68a263b46a 100644 --- a/server/src/test/java/org/opensearch/index/IndexModuleTests.java +++ b/server/src/test/java/org/opensearch/index/IndexModuleTests.java @@ -271,6 +271,7 @@ private IndexService newIndexService(IndexModule module) throws IOException { s -> {}, null, () -> TieredMergePolicyProvider.DEFAULT_MAX_MERGE_AT_ONCE, + null, null ); } diff --git a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java index 7513db2d13ab7..711a81fe4b7cf 100644 --- a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java @@ -739,6 +739,7 @@ protected IndexShard newShard( clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, ReferencedSegmentsPublisher.EMPTY, + null, null ); indexShard.addShardFailureCallback(DEFAULT_SHARD_FAILURE_HANDLER); From f2dc2835537b9aaa2bb1694091eddb6d9e2c7cdc Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Thu, 4 Sep 2025 20:16:19 +0530 Subject: [PATCH 011/112] in-progress read engine / query phase abstractions Signed-off-by: bharath-techie --- .../datafusion/DataFusionPlugin.java | 17 +++-- .../datafusion/DatafusionEngine.java | 39 ++++++++-- .../DatafusionQueryPhaseSearcher.java | 43 +++++++++++ .../datafusion/search/DatafusionContext.java | 53 ++++++++++++++ .../datafusion/search/DatafusionQuery.java | 24 +++++++ .../search/DatafusionQueryExecutor.java | 46 ++++++++++++ .../datafusion/search/DatafusionSearcher.java | 4 +- .../datafusion/search/SearchExecutor.java | 15 ++++ .../search/SearchResultIterator.java | 18 +++++ .../opensearch/index/engine/EngineLucene.java | 6 ++ .../index/engine/EngineSearcher.java | 4 +- .../opensearch/index/engine/ReadEngine.java | 37 +++++++++- .../index/engine/SearcherOperations.java | 4 ++ .../coord/IndexingExecutionCoordinator.java | 32 ++++++--- .../opensearch/index/shard/IndexShard.java | 3 + .../main/java/org/opensearch/node/Node.java | 9 ++- .../plugins/DataSourceAwarePlugin.java | 64 ----------------- .../plugins/SearchEnginePlugin.java | 61 ++++++++++++---- .../search/ContextEngineSearcher.java | 31 ++++++++ .../search/EngineReaderContext.java | 71 +++++++++++++++++++ .../org/opensearch/search/SearchService.java | 18 ++++- .../query/EngineQueryPhaseExecutor.java | 55 ++++++++++++++ .../search/query/GenericQueryPhase.java | 25 +++++++ .../query/GenericQueryPhaseSearcher.java | 29 ++++++++ .../query/LuceneQueryPhaseExecutor.java | 19 +++++ .../search/query/QueryExecutionContext.java | 13 ++++ .../opensearch/search/query/QueryPhase.java | 1 + .../search/query/QueryPhaseExecutor.java | 13 ++++ .../search/query/QueryPhaseSearcher.java | 2 + 29 files changed, 646 insertions(+), 110 deletions(-) create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java delete mode 100644 server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java create mode 100644 server/src/main/java/org/opensearch/search/ContextEngineSearcher.java create mode 100644 server/src/main/java/org/opensearch/search/EngineReaderContext.java create mode 100644 server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java create mode 100644 server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java create mode 100644 server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java create mode 100644 server/src/main/java/org/opensearch/search/query/LuceneQueryPhaseExecutor.java create mode 100644 server/src/main/java/org/opensearch/search/query/QueryExecutionContext.java create mode 100644 server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index af5eedeee23fc..ba820b616934d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -20,16 +20,19 @@ import org.opensearch.datafusion.action.DataFusionAction; import org.opensearch.datafusion.action.NodesDataFusionInfoAction; import org.opensearch.datafusion.action.TransportNodesDataFusionInfoAction; +import org.opensearch.datafusion.search.DatafusionContext; +import org.opensearch.datafusion.search.DatafusionQuery; import org.opensearch.datafusion.search.DatafusionReaderManager; import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.search.EngineReaderContext; +import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.index.engine.ReadEngine; import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.plugins.ActionPlugin; -import org.opensearch.plugins.DataSourceAwarePlugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.Plugin; import org.opensearch.repositories.RepositoriesService; import org.opensearch.rest.RestController; @@ -44,7 +47,6 @@ import java.io.IOException; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Supplier; @@ -53,7 +55,8 @@ * Main plugin class for OpenSearch DataFusion integration. * */ -public class DataFusionPlugin extends Plugin implements ActionPlugin, DataSourceAwarePlugin { +public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin, DatafusionReaderManager> { private DataFusionService dataFusionService; private final boolean isDataFusionEnabled; @@ -126,7 +129,9 @@ public EngineReaderManager getReaderManager() { // TODO : one engine per format, does that make sense ? // TODO : Engine shouldn't just be SearcherOperations, it can be more ? @Override - public SearcherOperations createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException { + public ReadEngine, + DatafusionReaderManager, DatafusionQuery, ContextEngineSearcher> + createEngine(DataFormat dataFormat,Collection formatCatalogSnapshot) throws IOException { return new DatafusionEngine(dataFormat, formatCatalogSnapshot); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 2a1d63eff2c92..1278382d782ee 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -9,22 +9,34 @@ package org.opensearch.datafusion; import org.apache.lucene.search.ReferenceManager; +import org.opensearch.action.search.SearchShardTask; +import org.opensearch.datafusion.search.DatafusionContext; +import org.opensearch.datafusion.search.DatafusionQuery; +import org.opensearch.datafusion.search.DatafusionQueryPhaseExecutor; import org.opensearch.datafusion.search.DatafusionReaderManager; import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.EngineSearcherSupplier; +import org.opensearch.index.engine.ReadEngine; import org.opensearch.index.engine.SearcherOperations; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.ShardSearchRequest; +import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; +import org.opensearch.search.query.GenericQueryPhaseSearcher; +import org.opensearch.search.EngineReaderContext; +import org.opensearch.search.ContextEngineSearcher; import java.io.IOException; import java.nio.file.Path; import java.util.Collection; import java.util.function.Function; -public class DatafusionEngine implements SearcherOperations { +public class DatafusionEngine extends ReadEngine, + DatafusionReaderManager, DatafusionQuery, ContextEngineSearcher> { private DataFormat dataFormat; private DatafusionReaderManager datafusionReaderManager; @@ -35,27 +47,42 @@ public DatafusionEngine(DataFormat dataFormat, Collection formatCa } @Override - public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { + public GenericQueryPhaseSearcher, DatafusionQuery> getQueryPhaseSearcher() { + return new DatafusionQueryPhaseSearcher(); + } + + @Override + public QueryPhaseExecutor getQueryPhaseExecutor() { + return new DatafusionQueryPhaseExecutor(); + } + + @Override + public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTask task) throws IOException { + return null; + } + + @Override + public EngineSearcherSupplier> acquireSearcherSupplier(Function, DatafusionSearcher> wrapper) throws EngineException { return null; } @Override - public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException { + public EngineSearcherSupplier> acquireSearcherSupplier(Function, DatafusionSearcher> wrapper, Engine.SearcherScope scope) throws EngineException { return null; } @Override - public DatafusionSearcher acquireSearcher(String source) throws EngineException { + public DatafusionSearcher acquireSearcher(String source) throws EngineException { return null; } @Override - public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { return null; } @Override - public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException { + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope, Function, DatafusionSearcher> wrapper) throws EngineException { return null; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java new file mode 100644 index 0000000000000..51fa703c5a1cd --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java @@ -0,0 +1,43 @@ +package org.opensearch.datafusion; + +import org.opensearch.datafusion.search.DatafusionContext; +import org.opensearch.datafusion.search.DatafusionQuery; +import org.opensearch.search.EngineReaderContext; +import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.search.query.GenericQueryPhaseSearcher; +import org.opensearch.search.query.QueryCollectorContext; +import org.opensearch.search.aggregations.SearchResultsCollector; + +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; +import java.util.ArrayList; + +/** + * DataFusion-specific query phase searcher using Substrait queries + * + */ +public class DatafusionQueryPhaseSearcher implements GenericQueryPhaseSearcher, DatafusionQuery> { + + // How to pass table providers that search other engines such as Lucene ? + @Override + public boolean searchWith( + DatafusionContext context, + ContextEngineSearcher searcher, + DatafusionQuery datafusionQuery, + LinkedList collectors, + boolean hasFilterCollector, + boolean hasTimeout + ) throws IOException { + + List> searchCollectors = new ArrayList<>(); + + // Execute DataFusion query with Substrait plan + searcher.search(datafusionQuery, searchCollectors); + + // Process results into QuerySearchResult + context.queryResult().searchTimedOut(false); + + return false; // No rescoring for DataFusion + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java new file mode 100644 index 0000000000000..5430b1c31c9f8 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -0,0 +1,53 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.opensearch.action.search.SearchShardTask; +import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.internal.ShardSearchRequest; +import org.opensearch.datafusion.DatafusionEngine; +import org.opensearch.search.ContextEngineSearcher; + +/** + * Search context for Datafusion engine + */ +public class DatafusionContext extends SearchContext { + private final ReaderContext readerContext; + private final ShardSearchRequest request; + private final SearchShardTask task; + private final DatafusionEngine readEngine; + private final ContextEngineSearcher engineSearcher; + + public DatafusionContext( + ReaderContext readerContext, + ShardSearchRequest request, + SearchShardTask task) { + this.readerContext = readerContext; + this.request = request; + this.task = task; + this.readEngine = (DatafusionEngine) readerContext.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + this.engineSearcher = null;//TODO readerContext.contextEngineSearcher(); + } + + public DatafusionEngine readEngine() { + return readEngine; + } + + public DatafusionQuery query() { + // Extract query from request + return null; + } + + public ContextEngineSearcher contextEngineSearcher() { + return engineSearcher; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java new file mode 100644 index 0000000000000..04c913351af26 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import java.util.Iterator; +import java.util.List; + +public class DatafusionQuery { + private final byte[] substraitBytes; + + // List of Search executors which returns a result iterator which contains row id which can be joined in datafusion + private final List searchExecutors; + + public DatafusionQuery(byte[] substraitBytes, List searchExecutors) { + this.substraitBytes = substraitBytes; + this.searchExecutors = searchExecutors; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java new file mode 100644 index 0000000000000..95b557691795b --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java @@ -0,0 +1,46 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.opensearch.search.query.QueryPhaseExecutor; +import org.opensearch.search.query.QueryPhaseExecutionException; +import org.opensearch.datafusion.search.DatafusionContext; +import org.opensearch.datafusion.search.DatafusionQuery; +import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.search.query.GenericQueryPhase; +import org.opensearch.search.query.GenericQueryPhaseSearcher; + +/** + * Query phase executor for Datafusion engine + */ +public class DatafusionQueryPhaseExecutor implements QueryPhaseExecutor { + + @Override + public boolean execute(DatafusionContext context) throws QueryPhaseExecutionException { + if (!canHandle(context)) { + throw new QueryPhaseExecutionException("Cannot handle datafusion context"); + } + + GenericQueryPhaseSearcher, DatafusionQuery> searcher = + context.readEngine().getQueryPhaseSearcher(); + + GenericQueryPhase, DatafusionQuery> queryPhase = + new GenericQueryPhase<>(searcher); + + DatafusionQuery query = context.query(); + return queryPhase.executeInternal(context, context.contextEngineSearcher(), query); + } + + @Override + public boolean canHandle(DatafusionContext context) { + return context != null && + context.readEngine() != null && + context.query() != null; + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index dfe21fb911e91..5151e49b4aa60 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -15,7 +15,7 @@ import java.io.IOException; import java.util.List; -public class DatafusionSearcher implements EngineSearcher { +public class DatafusionSearcher implements EngineSearcher { private final String source; public DatafusionSearcher(String source) { @@ -28,7 +28,7 @@ public String source() { } @Override - public void search(byte[] substraitInput, List> collectors) throws IOException { + public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java new file mode 100644 index 0000000000000..ff3b5953c119e --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchExecutor.java @@ -0,0 +1,15 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +// Functional interface to execute search and get iterator +@FunctionalInterface +public interface SearchExecutor { + SearchResultIterator execute(); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java new file mode 100644 index 0000000000000..27fe2d54f76d9 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/SearchResultIterator.java @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import java.util.Iterator; + +// Interface for the iterator that Datafusion expects +public interface SearchResultIterator extends Iterator { + // Basic Iterator methods + boolean hasNext(); + Record next(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/EngineLucene.java b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java index 41092960fb2a3..f12f8cda0555e 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineLucene.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineLucene.java @@ -13,6 +13,7 @@ import java.util.function.Function; +// Dummy impl public class EngineLucene implements SearcherOperations>{ @Override public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { @@ -48,4 +49,9 @@ public ReferenceManager getReferenceManager(Engine.Se public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope) { return false; } + + @Override + public CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherScope searcherScope) { + return null; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java index 2ac38f96bac4f..11760c35f92f9 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -15,7 +15,7 @@ import java.util.List; // TODO make this generic type -public interface EngineSearcher extends Releasable { +public interface EngineSearcher extends Releasable { /** * The source that caused this searcher to be acquired. @@ -25,7 +25,7 @@ public interface EngineSearcher extends Releasable { /** * Search using substrait query plan bytes and call the result collectors */ - default void search(byte[] substraitInput, List> collectors) throws IOException { + default void search(Q query, List> collectors) throws IOException { throw new UnsupportedOperationException(); } } diff --git a/server/src/main/java/org/opensearch/index/engine/ReadEngine.java b/server/src/main/java/org/opensearch/index/engine/ReadEngine.java index 0e61cc70df2bc..b5e1b63347411 100644 --- a/server/src/main/java/org/opensearch/index/engine/ReadEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/ReadEngine.java @@ -8,9 +8,40 @@ package org.opensearch.index.engine; +import org.opensearch.action.search.SearchShardTask; +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.search.EngineReaderContext; +import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.internal.ShardSearchRequest; +import org.opensearch.search.query.GenericQueryPhaseSearcher; +import org.opensearch.search.query.QueryPhaseExecutor; + +import java.io.IOException; + /** - * TODO : will use read engine eventually if we need more functionalities other than SearcherOperations + * Generic read engine interface that provides searcher operations and query phase execution + * @param Context type for query execution + * @param Searcher type that extends EngineSearcher + * @param Reference manager type + * @param Query type */ -public abstract class ReadEngine implements SearcherOperations> { - // No-OP +@ExperimentalApi +// TODO too many templatized types +public abstract class ReadEngine implements SearcherOperations { + + /** + * Get the query phase searcher for this engine + */ + public abstract GenericQueryPhaseSearcher getQueryPhaseSearcher(); + + /** + * Get the query phase executor for this engine + */ + public abstract QueryPhaseExecutor getQueryPhaseExecutor(); + + /** + * Create a search context for this engine + */ + public abstract C createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTask task) throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java index fe7083012655f..32b2d882401fb 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java +++ b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java @@ -33,4 +33,8 @@ public interface SearcherOperations { boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope); + default CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherScope searcherScope) { + // default is no-op, TODO : revisit this + return null; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java index 7ec87ee68ad53..45d915935bf2c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java @@ -8,12 +8,14 @@ package org.opensearch.index.engine.exec.coord; +import org.opensearch.common.annotation.ExperimentalApi; + import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; -import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.ReadEngine; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.WriteResult; @@ -21,7 +23,7 @@ import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; -import org.opensearch.plugins.DataSourceAwarePlugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.PluginsService; import java.io.IOException; @@ -30,16 +32,17 @@ import java.util.List; import java.util.Map; +@ExperimentalApi public class IndexingExecutionCoordinator { private final CompositeIndexingExecutionEngine engine; private List refreshListeners = new ArrayList<>(); private CatalogSnapshot catalogSnapshot; private List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); - private Map>> readEngines = new HashMap<>(); + private Map>> readEngines = new HashMap<>(); public IndexingExecutionCoordinator(MapperService mapperService, PluginsService pluginsService) throws IOException { - List dataSourceAwarePlugins = pluginsService.filterPlugins(DataSourceAwarePlugin.class); + List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); this.engine = new CompositeIndexingExecutionEngine(pluginsService, new Any(List.of(DataFormat.TEXT))); // Refresh here so that catalog snapshot gets initialized @@ -47,9 +50,9 @@ public IndexingExecutionCoordinator(MapperService mapperService, PluginsService refresh("start"); // TODO : how to extend this for Lucene ? where engine is a r/w engine // Create read specific engines for each format which is associated with shard - for(DataSourceAwarePlugin dataSourceAwarePlugin : dataSourceAwarePlugins) { - for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : dataSourceAwarePlugin.getSupportedFormats()) { - SearcherOperations readEngine = dataSourceAwarePlugin.createEngine(dataFormat, + for(SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { + for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { + ReadEngine readEngine = searchEnginePlugin.createEngine(dataFormat, catalogSnapshot.getSearchableFiles(dataFormat.toString())); readEngines.getOrDefault(dataFormat, new ArrayList<>()).add(readEngine); // TODO : figure out how to do internal and external refresh listeners @@ -58,15 +61,26 @@ public IndexingExecutionCoordinator(MapperService mapperService, PluginsService // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger // - catalogSnapshotAwareRefreshListeners.add(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + if(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { + catalogSnapshotAwareRefreshListeners.add(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + } } } } - public SearcherOperations getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { + public ReadEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { return readEngines.getOrDefault(dataFormat, new ArrayList<>()).getFirst(); } + public ReadEngine getPrimaryReadEngine() { + // Return the first available ReadEngine as primary + return readEngines.values().stream() + .filter(list -> !list.isEmpty()) + .findFirst() + .map(list -> list.getFirst()) + .orElse(null); + } + public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { return engine.createWriter().newDocumentInput(); } diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index d72ad733e27ea..d3eb1db06f4f3 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -572,6 +572,9 @@ public SearchExecutionEngine getSearchExecutionEngine() { return searchExecutionEngine; } + public IndexingExecutionCoordinator getIndexingExecutionCoordinator() { + return indexingExecutionCoordinator; + } /** * By default, UNASSIGNED_SEQ_NO is used as the initial global checkpoint for new shard initialization. Ingestion * source does not track sequence numbers explicitly and hence defaults to NO_OPS_PERFORMED for compatibility. diff --git a/server/src/main/java/org/opensearch/node/Node.java b/server/src/main/java/org/opensearch/node/Node.java index 31dfe3970bfb1..416237111ff7b 100644 --- a/server/src/main/java/org/opensearch/node/Node.java +++ b/server/src/main/java/org/opensearch/node/Node.java @@ -218,7 +218,7 @@ import org.opensearch.plugins.ClusterPlugin; import org.opensearch.plugins.CryptoKeyProviderPlugin; import org.opensearch.plugins.CryptoPlugin; -import org.opensearch.plugins.DataSourceAwarePlugin; +import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.DiscoveryPlugin; import org.opensearch.plugins.EnginePlugin; @@ -296,6 +296,7 @@ import org.opensearch.transport.client.Client; import org.opensearch.transport.client.node.NodeClient; import org.opensearch.usage.UsageService; +import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.watcher.ResourceWatcherService; import org.opensearch.wlm.WorkloadGroupService; @@ -1117,14 +1118,16 @@ protected Node(final Environment initialEnvironment, Collection clas // Add the telemetryAwarePlugin components to the existing pluginComponents collection. pluginComponents.addAll(telemetryAwarePluginComponents); - Map dataSourceCodecMap = new HashMap<>(); + Map dataSourceCodecMap = new HashMap<>(); for (DataSourcePlugin dataSourcePlugin : pluginsService.filterPlugins(DataSourcePlugin.class)) { if (dataSourcePlugin.getDataSourceCodecs().isPresent()) { dataSourceCodecMap.putAll(dataSourcePlugin.getDataSourceCodecs().get()); } } - Collection dataSourceAwareComponents = pluginsService.filterPlugins(DataSourceAwarePlugin.class) + // TODO : compilation issue + + Collection dataSourceAwareComponents = pluginsService.filterPlugins(SearchEnginePlugin.class) .stream() .flatMap( p -> p.createComponents( diff --git a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java deleted file mode 100644 index 499b136587eb0..0000000000000 --- a/server/src/main/java/org/opensearch/plugins/DataSourceAwarePlugin.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.plugins; - -import org.opensearch.cluster.metadata.IndexNameExpressionResolver; -import org.opensearch.cluster.service.ClusterService; -import org.opensearch.core.common.io.stream.NamedWriteableRegistry; -import org.opensearch.core.xcontent.NamedXContentRegistry; -import org.opensearch.env.Environment; -import org.opensearch.env.NodeEnvironment; -import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.index.engine.EngineSearcher; -import org.opensearch.index.engine.SearcherOperations; -import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.coord.CatalogSnapshot; -import org.opensearch.repositories.RepositoriesService; -import org.opensearch.script.ScriptService; -import org.opensearch.threadpool.ThreadPool; -import org.opensearch.transport.client.Client; -import org.opensearch.vectorized.execution.search.DataFormat; -import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; -import org.opensearch.watcher.ResourceWatcherService; - -import java.io.IOException; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; - -public interface DataSourceAwarePlugin { - - /** - * Make dataSourceCodecs available for the DataSourceAwarePlugin(s) - */ - default Collection createComponents( - Client client, - ClusterService clusterService, - ThreadPool threadPool, - ResourceWatcherService resourceWatcherService, - ScriptService scriptService, - NamedXContentRegistry xContentRegistry, - Environment environment, - NodeEnvironment nodeEnvironment, - NamedWriteableRegistry namedWriteableRegistry, - IndexNameExpressionResolver indexNameExpressionResolver, - Supplier repositoriesServiceSupplier, - Map dataSourceCodecs - ) { - return Collections.emptyList(); - } - - List getSupportedFormats(); - - EngineReaderManager getReaderManager(); - - SearcherOperations createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; -} diff --git a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java index 2077fc8a1d0b9..5a7d8df56d946 100644 --- a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java @@ -8,23 +8,56 @@ package org.opensearch.plugins; -import org.opensearch.common.annotation.ExperimentalApi; -import org.opensearch.index.engine.SearchExecutionEngine; +import org.opensearch.cluster.metadata.IndexNameExpressionResolver; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.core.common.io.stream.NamedWriteableRegistry; +import org.opensearch.core.xcontent.NamedXContentRegistry; +import org.opensearch.env.Environment; +import org.opensearch.env.NodeEnvironment; +import org.opensearch.index.engine.ReadEngine; +import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.repositories.RepositoriesService; +import org.opensearch.script.ScriptService; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.client.Client; +import org.opensearch.vectorized.execution.search.DataFormat; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.watcher.ResourceWatcherService; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +public interface SearchEnginePlugin,R> extends SearchPlugin{ -/** - * Plugin interface for extending OpenSearch engine functionality. - * This interface allows plugins to extend the core engine capabilities. - * - * @opensearch.internal - */ -@ExperimentalApi -public interface SearchEnginePlugin { /** - * createEngine - * @return - * @throws IOException + * Make dataSourceCodecs available for the DataSourceAwarePlugin(s) */ - SearchExecutionEngine createEngine() throws IOException; + default Collection createComponents( + Client client, + ClusterService clusterService, + ThreadPool threadPool, + ResourceWatcherService resourceWatcherService, + ScriptService scriptService, + NamedXContentRegistry xContentRegistry, + Environment environment, + NodeEnvironment nodeEnvironment, + NamedWriteableRegistry namedWriteableRegistry, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier repositoriesServiceSupplier, + Map dataSourceCodecs + ) { + return Collections.emptyList(); + } + + List getSupportedFormats(); + + EngineReaderManager getReaderManager(); + + ReadEngine createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; } diff --git a/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java b/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java new file mode 100644 index 0000000000000..0096fb1cd44e7 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java @@ -0,0 +1,31 @@ +package org.opensearch.search; + +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.search.aggregations.SearchResultsCollector; +import org.opensearch.search.internal.SearchContext; + +import java.io.IOException; +import java.util.List; + +/** + * Engine-agnostic equivalent of ContextIndexSearcher that wraps EngineSearcher + * and provides search context awareness + */ +public record ContextEngineSearcher(EngineSearcher engineSearcher, + SearchContext searchContext) implements EngineSearcher { + + @Override + public String source() { + return engineSearcher.source(); + } + + @Override + public void search(Q query, List> collectors) throws IOException { + engineSearcher.search(query, collectors); + } + + @Override + public void close() { + engineSearcher.close(); + } +} diff --git a/server/src/main/java/org/opensearch/search/EngineReaderContext.java b/server/src/main/java/org/opensearch/search/EngineReaderContext.java new file mode 100644 index 0000000000000..fe0191fa12019 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/EngineReaderContext.java @@ -0,0 +1,71 @@ +package org.opensearch.search; + +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.unit.TimeValue; +import org.opensearch.index.IndexService; +import org.opensearch.index.engine.EngineSearcherSupplier; +import org.opensearch.index.shard.IndexShard; +import org.opensearch.search.fetch.FetchPhase; +import org.opensearch.search.fetch.FetchSearchResult; +import org.opensearch.search.internal.ShardSearchRequest; +import org.opensearch.search.query.QuerySearchResult; + +import java.util.function.LongSupplier; + +/** + * Lightweight engine-agnostic reader context for query execution + */ +public class EngineReaderContext { + private final EngineSearcherSupplier engineSearcherSupplier; + private final ShardSearchRequest request; + private final SearchShardTarget shardTarget; + private final FetchPhase fetchPhase; + private final QuerySearchResult queryResult; + private final FetchSearchResult fetchResult; + private final IndexService indexService; + private final IndexShard indexShard; + private final ClusterService clusterService; + private final ContextEngineSearcher contextEngineSearcher; + private final LongSupplier relativeTimeSupplier; + private final TimeValue timeout; + private final boolean lowLevelCancellation; + + public EngineReaderContext( + EngineSearcherSupplier engineSearcherSupplier, + ShardSearchRequest request, + SearchShardTarget shardTarget, + FetchPhase fetchPhase, + QuerySearchResult queryResult, + FetchSearchResult fetchResult, + IndexService indexService, + IndexShard indexShard, + ClusterService clusterService, + ContextEngineSearcher contextEngineSearcher, + LongSupplier relativeTimeSupplier, + TimeValue timeout, + boolean lowLevelCancellation + ) { + this.engineSearcherSupplier = engineSearcherSupplier; + this.request = request; + this.shardTarget = shardTarget; + this.fetchPhase = fetchPhase; + this.queryResult = queryResult; + this.fetchResult = fetchResult; + this.indexService = indexService; + this.indexShard = indexShard; + this.clusterService = clusterService; + this.contextEngineSearcher = contextEngineSearcher; + this.relativeTimeSupplier = relativeTimeSupplier; + this.timeout = timeout; + this.lowLevelCancellation = lowLevelCancellation; + } + + public ContextEngineSearcher contextEngineSearcher() { return contextEngineSearcher; } + public ShardSearchRequest request() { return request; } + public QuerySearchResult queryResult() { return queryResult; } + public FetchSearchResult fetchResult() { return fetchResult; } + public IndexShard indexShard() { return indexShard; } + public TimeValue timeout() { return timeout; } + public IndexService indexService() { return indexService; } + public ClusterService clusterService() { return clusterService; } +} diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 979140a44443e..9c2eba33a28f0 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -84,6 +84,7 @@ import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.SearchExecutionEngine; +import org.opensearch.index.engine.ReadEngine; import org.opensearch.index.mapper.DerivedFieldResolver; import org.opensearch.index.mapper.DerivedFieldResolverFactory; import org.opensearch.index.query.InnerHitContextBuilder; @@ -141,6 +142,7 @@ import org.opensearch.search.profile.SearchProfileShardResults; import org.opensearch.search.query.QueryPhase; import org.opensearch.search.query.QueryRewriterRegistry; +import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.search.query.QuerySearchRequest; import org.opensearch.search.query.QuerySearchResult; import org.opensearch.search.query.ScrollQuerySearchResult; @@ -821,10 +823,21 @@ private SearchPhaseResult executeQueryPhase( boolean isStreamSearch, ActionListener listener ) throws Exception { + // Till here things are generic but for datafusion , we need to abstract out and get the read engine specific implementation + // it could be reusing existing final ReaderContext readerContext = createOrGetReaderContext(request, keepStatesInContext); + ReadEngine readEngine = readerContext.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + try ( Releasable ignored = readerContext.markAsUsed(getKeepAlive(request)); - SearchContext context = createContext(readerContext, request, task, true, isStreamSearch) + //SearchContext context = createContext(readerContext, request, task, true, isStreamSearch) + + // Get engine-specific executor and context + // TODO : move this logic to work with Lucene + SearchContext context = readEngine.createContext(readerContext, request, task); + //SearchContext context = createContext(readerContext, request, task, true) ) { // TODO Execute plan here @@ -841,6 +854,9 @@ private SearchPhaseResult executeQueryPhase( } final long afterQueryTime; try (SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(context)) { + //QueryPhaseExecutor queryPhaseExecutor = readEngine.getQueryPhaseExecutor(); + //boolean success = queryPhaseExecutor.execute(context); + //loadOrExecuteQueryPhase(request, context); queryPhase.execute(context); // loadOrExecuteQueryPhase(request, context); if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { diff --git a/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java b/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java new file mode 100644 index 0000000000000..356becd4fc963 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java @@ -0,0 +1,55 @@ +package org.opensearch.search.query; + +import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.search.EngineReaderContext; +import org.opensearch.index.engine.ReadEngine; + +/** + * Generic engine query phase executor using ReadEngine + */ +public class EngineQueryPhaseExecutor implements QueryPhaseExecutor { + + @Override + public boolean execute(EngineReaderContext context) throws QueryPhaseExecutionException { +// ReadEngine readEngine = context.indexShard() +// .getIndexingExecutionCoordinator() +// .getPrimaryReadEngine(); +// +// GenericQueryPhaseSearcher searcher = readEngine.getQueryPhaseSearcher(); +// // TODO : figure out how to represent generic query object +// GenericQueryPhase queryPhase = +// new GenericQueryPhase<>(searcher); +// +// return queryPhase.executeInternal(context, context.contextEngineSearcher(), getQueryFromContext(context)); + + ReadEngine> readEngine = context.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + + if (readEngine == null) { + throw new QueryPhaseExecutionException("Read engine is null"); + } + + GenericQueryPhaseSearcher, ?> searcher = + readEngine.getQueryPhaseSearcher(); + + GenericQueryPhase, ?> queryPhase = + new GenericQueryPhase<>(searcher); + + Object query = getQueryFromContext(context); + return queryPhase.executeInternal(context, context.contextEngineSearcher(), query); + } + + @Override + public boolean canHandle(EngineReaderContext context) { + return context.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine() != null; + } + + private Object getQueryFromContext(EngineReaderContext context) { + // Get query from context - could be Substrait bytes, Lucene Query, etc. + // This would be part of the context interface + return null;// For now, assuming Substrait + } +} diff --git a/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java b/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java new file mode 100644 index 0000000000000..85b47a6fd3af7 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java @@ -0,0 +1,25 @@ +package org.opensearch.search.query; + +import java.util.LinkedList; + +/** + * Generic query phase that can work with different context and searcher types + * @param Context type + * @param Searcher type + * @param Query type + */ +public class GenericQueryPhase { + private final GenericQueryPhaseSearcher queryPhaseSearcher; + + public GenericQueryPhase(GenericQueryPhaseSearcher queryPhaseSearcher) { + this.queryPhaseSearcher = queryPhaseSearcher; + } + + public boolean executeInternal(C context, S searcher, Q query) throws QueryPhaseExecutionException { + try { + return queryPhaseSearcher.searchWith(context, searcher, query, new LinkedList<>(), false, false); + } catch (Exception e) { + throw new QueryPhaseExecutionException(null, "Failed to execute query", e); + } + } +} diff --git a/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java b/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java new file mode 100644 index 0000000000000..63a182c85a480 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java @@ -0,0 +1,29 @@ +package org.opensearch.search.query; + +import org.opensearch.search.aggregations.AggregationProcessor; + +import java.io.IOException; +import java.util.LinkedList; + +/** + * Generic query phase searcher that can work with different context and searcher types + * @param Context type (SearchContext for Lucene, EngineReaderContext for DataFusion) + * @param Searcher type (ContextIndexSearcher for Lucene, ContextEngineSearcher for DataFusion) + * @param Query type (Query for Lucene, byte[] for DataFusion Substrait) + */ +// TODO make this part of QueryPhaseSearcher +public interface GenericQueryPhaseSearcher { + + boolean searchWith( + C context, + S searcher, + Q query, + LinkedList collectors, + boolean hasFilterCollector, + boolean hasTimeout + ) throws IOException; + + default AggregationProcessor aggregationProcessor(C context) { + return new org.opensearch.search.aggregations.DefaultAggregationProcessor(); + } +} diff --git a/server/src/main/java/org/opensearch/search/query/LuceneQueryPhaseExecutor.java b/server/src/main/java/org/opensearch/search/query/LuceneQueryPhaseExecutor.java new file mode 100644 index 0000000000000..59493a8991733 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/LuceneQueryPhaseExecutor.java @@ -0,0 +1,19 @@ +package org.opensearch.search.query; + +import org.opensearch.search.internal.SearchContext; + +/** + * Lucene-specific query phase executor + */ +public class LuceneQueryPhaseExecutor implements QueryPhaseExecutor { + + @Override + public boolean execute(SearchContext context) throws QueryPhaseExecutionException { + return QueryPhase.executeInternal(context); + } + + @Override + public boolean canHandle(SearchContext context) { + return context != null; + } +} diff --git a/server/src/main/java/org/opensearch/search/query/QueryExecutionContext.java b/server/src/main/java/org/opensearch/search/query/QueryExecutionContext.java new file mode 100644 index 0000000000000..f1501458f5211 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/QueryExecutionContext.java @@ -0,0 +1,13 @@ +package org.opensearch.search.query; + +/** + * Common interface for query execution contexts + */ +public interface QueryExecutionContext { + + /** + * Execute query phase for this context + * @return whether rescoring phase should be executed + */ + boolean executeQueryPhase() throws QueryPhaseExecutionException; +} diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhase.java b/server/src/main/java/org/opensearch/search/query/QueryPhase.java index 2e62762f56932..54294aae0b3fb 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhase.java @@ -102,6 +102,7 @@ public class QueryPhase { // TODO: remove this property public static final boolean SYS_PROP_REWRITE_SORT = Booleans.parseBoolean(System.getProperty("opensearch.search.rewrite_sort", "true")); public static final QueryPhaseSearcher DEFAULT_QUERY_PHASE_SEARCHER = new DefaultQueryPhaseSearcher(); + private final QueryPhaseSearcher queryPhaseSearcher; private final SuggestProcessor suggestProcessor; private final RescoreProcessor rescoreProcessor; diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java b/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java new file mode 100644 index 0000000000000..1810ed25121f2 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java @@ -0,0 +1,13 @@ +package org.opensearch.search.query; + +import org.opensearch.search.internal.SearchContext; + +/** + * Strategy interface for executing query phases across different engines + */ +public interface QueryPhaseExecutor { + + boolean execute(C context) throws QueryPhaseExecutionException; + + boolean canHandle(C context); +} diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcher.java b/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcher.java index 38e45a5212c81..790558db5228d 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcher.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhaseSearcher.java @@ -23,6 +23,8 @@ * The extension point which allows to plug in custom search implementation to be * used at {@link QueryPhase}. * + * TODO : Change this ? query phase searcher shouldn't rely on Lucene + * * @opensearch.api */ @PublicApi(since = "2.0.0") From 3508b17c87f663e77a85130605463fa3084f4d77 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Fri, 5 Sep 2025 23:53:59 +0530 Subject: [PATCH 012/112] Tying searcher and reader with rust Co-authored-by: Arpit Bandejiya Signed-off-by: bharath-techie --- .../execution/search/DataFormat.java | 3 + .../datafusion/csv/CsvDataFormatPlugin.java | 11 +- plugins/engine-datafusion/jni/Cargo.toml | 3 +- plugins/engine-datafusion/jni/src/lib.rs | 245 +++++++- plugins/engine-datafusion/jni/src/util.rs | 182 ++++-- .../datafusion/DataFusionPlugin.java | 17 +- .../datafusion/DataFusionQueryJNI.java | 12 +- .../datafusion/DatafusionEngine.java | 78 ++- .../DatafusionQueryPhaseSearcher.java | 11 +- .../core/DefaultRecordBatchStream.java | 114 ++++ .../datafusion/search/DatafusionContext.java | 570 +++++++++++++++++- .../datafusion/search/DatafusionQuery.java | 8 + ...java => DatafusionQueryPhaseExecutor.java} | 13 +- .../datafusion/search/DatafusionReader.java | 8 +- .../search/DatafusionReaderManager1.java | 65 -- .../datafusion/search/DatafusionSearcher.java | 36 +- .../search/DatafusionSearcherSupplier.java | 41 +- .../cluster/node/info/PluginsAndModules.java | 2 + .../index/engine/EngineSearcher.java | 6 +- .../index/engine/EngineSearcherSupplier.java | 2 + ...{ReadEngine.java => SearchExecEngine.java} | 5 +- .../index/engine/exec/DataFormat.java | 51 ++ .../index/engine/exec/DocumentInput.java | 23 + .../composite/CompositeDataFormatWriter.java | 114 ++++ .../engine/exec/coord/CatalogSnapshot.java | 2 + ...nCoordinator.java => CompositeEngine.java} | 25 +- .../index/query/QueryShardContext.java | 2 + .../opensearch/index/shard/IndexShard.java | 24 +- .../opensearch/plugins/PluginsService.java | 2 + .../plugins/SearchEnginePlugin.java | 10 +- .../search/ContextEngineSearcher.java | 6 +- .../search/DefaultSearchContext.java | 2 +- .../search/EngineReaderContext.java | 71 --- .../org/opensearch/search/SearchService.java | 17 +- .../aggregations/SearchResultsCollector.java | 2 + .../search/internal/LegacyReaderContext.java | 8 +- .../search/internal/PitReaderContext.java | 3 +- .../search/internal/ReaderContext.java | 8 +- .../query/EngineQueryPhaseExecutor.java | 55 -- .../search/query/GenericQueryPhase.java | 4 +- .../query/GenericQueryPhaseSearcher.java | 2 + .../search/query/QueryPhaseExecutor.java | 2 + 42 files changed, 1513 insertions(+), 352 deletions(-) create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java rename plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/{DatafusionQueryExecutor.java => DatafusionQueryPhaseExecutor.java} (66%) delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java rename server/src/main/java/org/opensearch/index/engine/{ReadEngine.java => SearchExecEngine.java} (84%) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java rename server/src/main/java/org/opensearch/index/engine/exec/coord/{IndexingExecutionCoordinator.java => CompositeEngine.java} (87%) delete mode 100644 server/src/main/java/org/opensearch/search/EngineReaderContext.java delete mode 100644 server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java index 5f7a9ad6b3187..c85e889bb364b 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java @@ -8,6 +8,9 @@ package org.opensearch.vectorized.execution.search; +import org.opensearch.common.annotation.ExperimentalApi; + +@ExperimentalApi public enum DataFormat { CSV, Text diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java index 76eba217a09a7..97a1c832d515c 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java @@ -48,7 +48,16 @@ public Optional IndexingExecutionEngine indexingEngine() { - return (IndexingExecutionEngine) new CsvEngine(); + if (CsvDataFormat.class.equals(getDataFormatType())) { + @SuppressWarnings("unchecked") + IndexingExecutionEngine engine = (IndexingExecutionEngine) new CsvEngine(); + return engine; + } + throw new IllegalArgumentException("Unsupported data format type: " + getDataFormatType()); + } + + private Class getDataFormatType() { + return CsvDataFormat.class; } @Override diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 7b63233346b13..f827e8c32f783 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -47,7 +47,7 @@ log = "0.4" parquet = "53.0.0" # Object store for file access -object_store = "0.11" +object_store = "=0.12.3" url = "2.0" # Substrait support @@ -56,6 +56,7 @@ prost = "0.13" # Temporary directory support tempfile = "3.0" +chrono = "0.4.41" [build-dependencies] cbindgen = "0.27" diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 1e9981e9abae3..1806a18963a37 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -6,18 +6,33 @@ * compatible open source license. */ -use jni::objects::JClass; -use jni::sys::{jlong, jstring}; +use jni::objects::{JByteArray, JClass}; +use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; use std::sync::Arc; +mod util; + use datafusion::execution::context::SessionContext; use datafusion::DATAFUSION_VERSION; +use datafusion::datasource::file_format::csv::CsvFormat; +use datafusion::datasource::file_format::parquet::ParquetFormat; use datafusion::execution::cache::cache_manager::{CacheManager, CacheManagerConfig, FileStatisticsCache}; use datafusion::execution::disk_manager::DiskManagerConfig; use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; use datafusion::prelude::SessionConfig; +use crate::util::{create_object_meta_from_filenames, parse_string_arr}; +use datafusion::datasource::listing::{ListingOptions, ListingTable, ListingTableConfig, ListingTableUrl}; +use datafusion::execution::cache::cache_unit::DefaultListFilesCache; +use datafusion::execution::cache::CacheAccessor; +use datafusion::execution::SendableRecordBatchStream; +use datafusion_substrait::logical_plan::consumer::from_substrait_plan; +use datafusion_substrait::substrait::proto::Plan; +use jni::objects::{JObjectArray, JString}; +use prost::Message; +use tokio::runtime::Runtime; +use object_store::ObjectMeta; /// Create a new DataFusion session context #[no_mangle] @@ -110,6 +125,232 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeSe } +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createReader( + mut env: JNIEnv, + _class: JClass, + table_path: JString, + files: JObjectArray +) -> jlong { + + let table_path: String = env.get_string(&table_path).expect("Couldn't get java string!").into(); + let files: Vec = parse_string_arr(&mut env, files).expect("Expected list of files"); + let files_meta = create_object_meta_from_filenames(&table_path, files); + + let table_path = ListingTableUrl::parse(table_path).unwrap(); + let shard_view = ShardView::new(table_path, files_meta); + Box::into_raw(Box::new(shard_view)) as jlong +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_destroyReader( + mut env: JNIEnv, + _class: JClass, + ptr: jlong +) { + let _ = unsafe { Box::from_raw(ptr as *mut ShardView) }; +} + +pub struct ShardView { + table_path: ListingTableUrl, + files_meta: Arc> +} + +impl ShardView { + pub fn new(table_path: ListingTableUrl, files_meta: Vec) -> Self { + let files_meta = Arc::new(files_meta); + ShardView { + table_path, + files_meta + } + } + + pub fn table_path(&self) -> ListingTableUrl { + self.table_path.clone() + } + + pub fn files_meta(&self) -> Arc> { + self.files_meta.clone() + } +} + + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeExecuteSubstraitQuery( + mut env: JNIEnv, + _class: JClass, + shard_view_ptr: jlong, + substrait_bytes: jbyteArray, + // callback: JObject, +) -> jlong { + let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; + let table_path = shard_view.table_path(); + let files_meta = shard_view.files_meta(); + + // Will use it once the global RunTime is defined + // let runtime_arc = unsafe { + // let boxed = &*(runtime_env_ptr as *const Pin>); + // (**boxed).clone() + // }; + + let list_file_cache = Arc::new(DefaultListFilesCache::default()); + list_file_cache.put(table_path.prefix(), files_meta); + + let runtime_env = RuntimeEnvBuilder::new() + .with_cache_manager(CacheManagerConfig::default() + .with_list_files_cache(Some(list_file_cache))).build().unwrap(); + + + + let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + + + // Create default parquet options + let file_format = CsvFormat::default(); + let listing_options = ListingOptions::new(Arc::new(file_format)) + .with_file_extension(".csv"); + + // Ideally the executor will give this + Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { + let resolved_schema = listing_options + .infer_schema(&ctx.state(), &table_path.clone()) + .await.unwrap(); + + + let config = ListingTableConfig::new(table_path.clone()) + .with_listing_options(listing_options) + .with_schema(resolved_schema); + + // Create a new TableProvider + let provider = Arc::new(ListingTable::try_new(config).unwrap()); + let shard_id = table_path.prefix().filename().expect("error in fetching Path"); + ctx.register_table(shard_id, provider) + .expect("Failed to attach the Table"); + + }); + + // TODO : how to close ctx ? + // Convert Java byte array to Rust Vec + let plan_bytes_obj = unsafe { JByteArray::from_raw(substrait_bytes) }; + let plan_bytes_vec = match env.convert_byte_array(plan_bytes_obj) { + Ok(bytes) => bytes, + Err(e) => { + let error_msg = format!("Failed to convert plan bytes: {}", e); + env.throw_new("java/lang/Exception", error_msg); + return 0; + } + }; + + let substrait_plan = match Plan::decode(plan_bytes_vec.as_slice()) { + Ok(plan) => { + println!("SUBSTRAIT rust: Decoding is successful, Plan has {} relations", plan.relations.len()); + plan + }, + Err(e) => { + return 0; + } + }; + + //let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; + Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { + + let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { + Ok(plan) => { + println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); + plan + }, + Err(e) => { + println!("SUBSTRAIT Rust: Failed to convert Substrait plan: {}", e); + return; + } + }; + + let dataframe = ctx.execute_logical_plan(logical_plan) + .await.expect("Failed to run Logical Plan"); + + // TODO : check if this works + return match dataframe.execute_stream() { + Ok(stream) => { + let boxed_stream = Box::new(stream); + let stream_ptr = Box::into_raw(boxed_stream); + stream_ptr as jlong + }, + Err(e) => { + 0 + } + } + }) + + + // Create DataFrame from the converted logical plan + + +} + +// If we need to create session context separately +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeCreateSessionContext( + mut env: JNIEnv, + _class: JClass, + runtime_ptr: jlong, + shard_view_ptr: jlong, + global_runtime_env_ptr: jlong, +) -> jlong { + let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; + let table_path = shard_view.table_path(); + let files_meta = shard_view.files_meta(); + + // Will use it once the global RunTime is defined + // let runtime_arc = unsafe { + // let boxed = &*(runtime_env_ptr as *const Pin>); + // (**boxed).clone() + // }; + + let list_file_cache = Arc::new(DefaultListFilesCache::default()); + list_file_cache.put(table_path.prefix(), files_meta); + + let runtime_env = RuntimeEnvBuilder::new() + .with_cache_manager(CacheManagerConfig::default() + .with_list_files_cache(Some(list_file_cache))).build().unwrap(); + + + + let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + + + // Create default parquet options + let file_format = CsvFormat::default(); + let listing_options = ListingOptions::new(Arc::new(file_format)) + .with_file_extension(".csv"); + + + // let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; + let mut session_context_ptr = 0; + + // Ideally the executor will give this + Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { + let resolved_schema = listing_options + .infer_schema(&ctx.state(), &table_path.clone()) + .await.unwrap(); + + + let config = ListingTableConfig::new(table_path.clone()) + .with_listing_options(listing_options) + .with_schema(resolved_schema); + + // Create a new TableProvider + let provider = Arc::new(ListingTable::try_new(config).unwrap()); + let shard_id = table_path.prefix().filename().expect("error in fetching Path"); + ctx.register_table(shard_id, provider) + .expect("Failed to attach the Table"); + + // Return back after wrapping in Box + session_context_ptr = Box::into_raw(Box::new(ctx)) as jlong + }); + + session_context_ptr +} + diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index e356df7032297..a584df7489cdd 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -1,51 +1,78 @@ /* * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. */ -use std::error::Error; - -use jni::objects::JObject; +use anyhow::Result; +use chrono::{DateTime, Utc}; +use datafusion::arrow::array::RecordBatch; +use jni::objects::{JObject, JObjectArray, JString}; use jni::sys::jlong; use jni::JNIEnv; +use object_store::{path::Path as ObjectPath, ObjectMeta}; +use std::collections::HashMap; +use std::error::Error; +use std::fs; /// Set error message from a result using a Consumer Java callback -pub fn set_object_result_ok(env: &mut JNIEnv, callback: JObject, address: *mut T) { - let err_message = env - .new_string("") - .expect("Couldn't create empty java string"); - - println!("About to call Java callback..."); +pub fn set_error_message_batch(env: &mut JNIEnv, callback: JObject, result: Result, Err>) { + if result.is_err() { + set_error_message(env, callback, Result::Err(result.unwrap_err())); + } else { + let res : Result<(), Err> = Result::Ok(()); + set_error_message(env, callback, res); + } - let result = env.call_method( - callback, - "callback", - "(Ljava/lang/String;J)V", - &[(&err_message).into(), (address as jlong).into()], - ); +} +pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result: Result<(), Err>) { match result { Ok(_) => { - println!("Java callback completed successfully - no Rust cleanup issue"); + let err_message = JObject::null(); + env.call_method( + callback, + "accept", + "(Ljava/lang/Object;)V", + &[(&err_message).into()], + ) + .expect("Failed to call error handler with null message"); } - Err(jni_error) => { - println!("Java callback failed with JNI error: {:?}", jni_error); - - // Check what kind of Java exception occurred - if let Ok(true) = env.exception_check() { - println!("There IS a pending Java exception:"); - let _ = env.exception_describe(); // This prints the Java stack trace - let _ = env.exception_clear(); - } else { - println!("No Java exception - this would be a pure JNI issue"); - } - // Don't panic - return; + Err(err) => { + let err_message = env + .new_string(err.to_string()) + .expect("Couldn't create java string for error message"); + env.call_method( + callback, + "accept", + "(Ljava/lang/Object;)V", + &[(&err_message).into()], + ) + .expect("Failed to call error handler with error message"); } - } + }; +} + +/// Call an ObjectResultCallback to return either a pointer to a newly created object or an error message +pub fn set_object_result( + env: &mut JNIEnv, + callback: JObject, + address: Result<*mut T, Err>, +) { + match address { + Ok(address) => set_object_result_ok(env, callback, address), + Err(err) => set_object_result_error(env, callback, &err), + }; +} + +/// Set success result by calling an ObjectResultCallback +pub fn set_object_result_ok(env: &mut JNIEnv, callback: JObject, address: *mut T) { + let err_message = JObject::null(); + env.call_method( + callback, + "callback", + "(Ljava/lang/String;J)V", + &[(&err_message).into(), (address as jlong).into()], + ) + .expect("Failed to call object result callback with address"); } /// Set error result by calling an ObjectResultCallback @@ -62,3 +89,90 @@ pub fn set_object_result_error(env: &mut JNIEnv, callback: JObject, er ) .expect("Failed to call object result callback with error"); } + + +/// Parse a string map from JNI arrays +pub fn parse_string_map( + env: &mut JNIEnv, + keys: JObjectArray, + values: JObjectArray, +) -> Result> { + let mut map = HashMap::new(); + + let keys_len = env.get_array_length(&keys)?; + let values_len = env.get_array_length(&values)?; + + if keys_len != values_len { + return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); + } + + for i in 0..keys_len { + let key_obj = env.get_object_array_element(&keys, i)?; + let value_obj = env.get_object_array_element(&values, i)?; + + let key_jstring = JString::from(key_obj); + let value_jstring = JString::from(value_obj); + + let key_str = env.get_string(&key_jstring)?; + let value_str = env.get_string(&value_jstring)?; + + map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); + } + + Ok(map) +} + +// Parse a string map from JNI arrays +pub fn parse_string_arr( + env: &mut JNIEnv, + files: JObjectArray, +) -> Result> { + let length = env.get_array_length(&files).unwrap(); + let mut rust_strings: Vec = Vec::with_capacity(length as usize); + for i in 0..length { + let file_obj = env.get_object_array_element(&files, i).unwrap(); + let jstring = JString::from(file_obj); + let rust_str: String = env + .get_string(&jstring) + .expect("Couldn't get java string!") + .into(); + rust_strings.push(rust_str); + } + Ok(rust_strings) +} + +pub fn parse_string( + env: &mut JNIEnv, + file: JString +) -> Result { + let rust_str: String = env.get_string(&file) + .expect("Couldn't get java string") + .into(); + + Ok(rust_str) +} + +/// Throw a Java exception +pub fn throw_exception(env: &mut JNIEnv, message: &str) { + let _ = env.throw_new("java/lang/RuntimeException", message); +} + +pub fn create_object_meta_from_filenames(base_path: &str, filenames: Vec) -> Vec { + filenames.into_iter().map(|filename| { + let filename = filename.as_str(); + let full_path = format!("{}/{}", base_path.trim_end_matches('/'), filename); + let file_size = fs::metadata(&full_path).map(|m| m.len()).unwrap_or(0); + let modified = fs::metadata(&full_path) + .and_then(|m| m.modified()) + .map(|t| DateTime::::from(t)) + .unwrap_or_else(|_| Utc::now()); + + ObjectMeta { + location: ObjectPath::from(filename), + last_modified: modified, + size: file_size, + e_tag: None, + version: None, + } + }).collect() +} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index ba820b616934d..955eca8c97362 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -26,10 +26,8 @@ import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; -import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.search.EngineReaderContext; import org.opensearch.search.ContextEngineSearcher; -import org.opensearch.index.engine.ReadEngine; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.plugins.ActionPlugin; import org.opensearch.plugins.SearchEnginePlugin; @@ -42,6 +40,7 @@ import org.opensearch.transport.client.Client; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import org.opensearch.watcher.ResourceWatcherService; import java.io.IOException; @@ -55,8 +54,7 @@ * Main plugin class for OpenSearch DataFusion integration. * */ -public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin, DatafusionReaderManager> { +public class DataFusionPlugin extends Plugin implements ActionPlugin, SearchEnginePlugin { private DataFusionService dataFusionService; private final boolean isDataFusionEnabled; @@ -118,19 +116,14 @@ public List getSupportedFormats() { return List.of(DataFormat.CSV); } - @Override - public EngineReaderManager getReaderManager() { - return null; - } - /** * Create engine per shard per format with initial view of catalog */ // TODO : one engine per format, does that make sense ? // TODO : Engine shouldn't just be SearcherOperations, it can be more ? @Override - public ReadEngine, - DatafusionReaderManager, DatafusionQuery, ContextEngineSearcher> + public SearchExecEngine createEngine(DataFormat dataFormat,Collection formatCatalogSnapshot) throws IOException { return new DatafusionEngine(dataFormat, formatCatalogSnapshot); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index 48578c987226d..a64ca2da182d6 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -8,6 +8,10 @@ package org.opensearch.datafusion; +import org.opensearch.index.engine.exec.FileMetadata; + +import java.util.Collection; + /** * JNI wrapper for DataFusion operations */ @@ -103,11 +107,15 @@ private static synchronized void loadNativeLibrary() { /** * Execute a Substrait query plan - * @param contextId the session context ID + * @param cachePtr the session context ID * @param substraitPlan the serialized Substrait query plan * @return stream pointer for result iteration */ - public static native long executeSubstraitQuery(long contextId, byte[] substraitPlan); + public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan); + + public static native long createDatafusionReader(String path, Collection files); + + public static native void closeDatafusionReader(long ptr); /** * Register a directory with CSV files diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 1278382d782ee..20e32899c1f8a 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -8,35 +8,35 @@ package org.opensearch.datafusion; -import org.apache.lucene.search.ReferenceManager; import org.opensearch.action.search.SearchShardTask; +import org.opensearch.common.lease.Releasables; import org.opensearch.datafusion.search.DatafusionContext; import org.opensearch.datafusion.search.DatafusionQuery; import org.opensearch.datafusion.search.DatafusionQueryPhaseExecutor; +import org.opensearch.datafusion.search.DatafusionReader; import org.opensearch.datafusion.search.DatafusionReaderManager; import org.opensearch.datafusion.search.DatafusionSearcher; +import org.opensearch.datafusion.search.DatafusionSearcherSupplier; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.EngineSearcherSupplier; -import org.opensearch.index.engine.ReadEngine; -import org.opensearch.index.engine.SearcherOperations; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.search.query.GenericQueryPhaseSearcher; -import org.opensearch.search.EngineReaderContext; -import org.opensearch.search.ContextEngineSearcher; import java.io.IOException; -import java.nio.file.Path; +import java.io.UncheckedIOException; +import java.util.ArrayList; import java.util.Collection; import java.util.function.Function; -public class DatafusionEngine extends ReadEngine, - DatafusionReaderManager, DatafusionQuery, ContextEngineSearcher> { +public class DatafusionEngine extends SearchExecEngine { private DataFormat dataFormat; private DatafusionReaderManager datafusionReaderManager; @@ -47,7 +47,7 @@ public DatafusionEngine(DataFormat dataFormat, Collection formatCa } @Override - public GenericQueryPhaseSearcher, DatafusionQuery> getQueryPhaseSearcher() { + public GenericQueryPhaseSearcher getQueryPhaseSearcher() { return new DatafusionQueryPhaseSearcher(); } @@ -58,32 +58,70 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { @Override public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTask task) throws IOException { - return null; + DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, task, this); + // Parse source + datafusionContext.datafusionQuery(new DatafusionQuery(request.source().getSubstraitBytes(), new ArrayList<>())); + return datafusionContext; } @Override - public EngineSearcherSupplier> acquireSearcherSupplier(Function, DatafusionSearcher> wrapper) throws EngineException { - return null; + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper) throws EngineException { + return acquireSearcherSupplier(wrapper, Engine.SearcherScope.EXTERNAL); } @Override - public EngineSearcherSupplier> acquireSearcherSupplier(Function, DatafusionSearcher> wrapper, Engine.SearcherScope scope) throws EngineException { - return null; + public EngineSearcherSupplier acquireSearcherSupplier(Function wrapper, Engine.SearcherScope scope) throws EngineException { + // TODO : wrapper is ignored + EngineSearcherSupplier searcher = null; + // TODO : refcount needs to be revisited - add proper tests for exception etc + try { + DatafusionReader reader = datafusionReaderManager.acquire(); + searcher = new DatafusionSearcherSupplier(null) { + @Override + protected DatafusionSearcher acquireSearcherInternal(String source) { + return new DatafusionSearcher(source, reader, () -> {}); + } + + @Override + protected void doClose() { + try { + reader.decRef(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + }; + } catch (Exception ex) { + // TODO + } + return searcher; } @Override - public DatafusionSearcher acquireSearcher(String source) throws EngineException { - return null; + public DatafusionSearcher acquireSearcher(String source) throws EngineException { + return acquireSearcher(source, Engine.SearcherScope.EXTERNAL); } @Override - public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { - return null; + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope) throws EngineException { + return acquireSearcher(source, scope, Function.identity()); } @Override - public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope, Function, DatafusionSearcher> wrapper) throws EngineException { - return null; + public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope scope, Function wrapper) throws EngineException { + DatafusionSearcherSupplier releasable = null; + try { + DatafusionSearcherSupplier searcherSupplier = releasable = (DatafusionSearcherSupplier) acquireSearcherSupplier(wrapper, scope); + DatafusionSearcher searcher = searcherSupplier.acquireSearcher(source); + releasable = null; + return new DatafusionSearcher( + source, + searcher.getReader(), + () -> Releasables.close(searcher, searcherSupplier) + ); + } finally { + Releasables.close(releasable); + } } @Override diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java index 51fa703c5a1cd..a9253f9e9d3b2 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java @@ -2,11 +2,12 @@ import org.opensearch.datafusion.search.DatafusionContext; import org.opensearch.datafusion.search.DatafusionQuery; -import org.opensearch.search.EngineReaderContext; -import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.datafusion.search.DatafusionSearcher; +import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.query.GenericQueryPhaseSearcher; import org.opensearch.search.query.QueryCollectorContext; import org.opensearch.search.aggregations.SearchResultsCollector; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import java.io.IOException; import java.util.LinkedList; @@ -17,20 +18,20 @@ * DataFusion-specific query phase searcher using Substrait queries * */ -public class DatafusionQueryPhaseSearcher implements GenericQueryPhaseSearcher, DatafusionQuery> { +public class DatafusionQueryPhaseSearcher implements GenericQueryPhaseSearcher { // How to pass table providers that search other engines such as Lucene ? @Override public boolean searchWith( DatafusionContext context, - ContextEngineSearcher searcher, + DatafusionSearcher searcher, DatafusionQuery datafusionQuery, LinkedList collectors, boolean hasFilterCollector, boolean hasTimeout ) throws IOException { - List> searchCollectors = new ArrayList<>(); + List> searchCollectors = new ArrayList<>(); // TODO : derive from collectors ? // Execute DataFusion query with Substrait plan searcher.search(datafusionQuery, searchCollectors); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java new file mode 100644 index 0000000000000..5603660ed760a --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java @@ -0,0 +1,114 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.core; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; + +import java.util.concurrent.CompletableFuture; + +public class DefaultRecordBatchStream implements RecordBatchStream { + + private static final Logger logger = LogManager.getLogger(DefaultRecordBatchStream.class); + + private final long nativeStreamPtr; + private volatile boolean closed = false; + private volatile boolean hasNextCached = false; + private volatile boolean hasNextValue = false; + + /** + * Creates a new wrapping the given native stream pointer. + * + * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream + */ + public DefaultRecordBatchStream(long nativeStreamPtr) { + if (nativeStreamPtr == 0) { + throw new IllegalArgumentException("Invalid native stream pointer"); + } + this.nativeStreamPtr = nativeStreamPtr; + logger.debug("Created default record batch stream with pointer: {}", nativeStreamPtr); + } + + @Override + public Object getSchema() { + return "schema"; // Placeholder + } + + @Override + public CompletableFuture next() { + // PlaceholderImpl + return CompletableFuture.supplyAsync(() -> { + if (closed) { + return null; + } + + try { + // Get the next batch from native code + String batch = nativeNextBatch(nativeStreamPtr); + + // Reset cached hasNext value since we consumed a batch + hasNextCached = false; + + logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); + return batch; + } catch (Exception e) { + logger.error("Error getting next batch from stream", e); + return null; + } + }); + } + + @Override + public boolean hasNext() { + // Placeholder impl + if (closed) { + return false; + } + + if (hasNextCached) { + return hasNextValue; + } + + try { + // Check if there's a next batch available + // This is a simplified implementation - in practice, you might want to + // peek at the stream without consuming the batch + String nextBatch = nativeNextBatch(nativeStreamPtr); + hasNextValue = (nextBatch != null); + hasNextCached = true; + + logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); + return hasNextValue; + } catch (Exception e) { + logger.error("Error checking for next batch in stream", e); + return false; + } + } + + @Override + public void close() { + if (!closed) { + logger.debug("Closing RecordBatchStream with pointer: {}", nativeStreamPtr); + try { + nativeCloseStream(nativeStreamPtr); + closed = true; + logger.debug("Successfully closed RecordBatchStream"); + } catch (Exception e) { + logger.error("Error closing RecordBatchStream", e); + throw e; + } + } + } + + // Native method declarations + private static native String nativeNextBatch(long streamPtr); + + private static native void nativeCloseStream(long streamPtr); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 5430b1c31c9f8..aaf44d6d9f7ee 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -8,12 +8,56 @@ package org.opensearch.datafusion.search; +import org.apache.lucene.search.Collector; +import org.apache.lucene.search.CollectorManager; +import org.apache.lucene.search.FieldDoc; +import org.apache.lucene.search.Query; import org.opensearch.action.search.SearchShardTask; +import org.opensearch.action.search.SearchType; +import org.opensearch.common.unit.TimeValue; +import org.opensearch.common.util.BigArrays; +import org.opensearch.index.cache.bitset.BitsetFilterCache; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.mapper.ObjectMapper; +import org.opensearch.index.query.ParsedQuery; +import org.opensearch.index.query.QueryShardContext; +import org.opensearch.index.shard.IndexShard; +import org.opensearch.index.similarity.SimilarityService; +import org.opensearch.search.SearchExtBuilder; +import org.opensearch.search.SearchShardTarget; +import org.opensearch.search.aggregations.BucketCollectorProcessor; +import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.SearchContextAggregations; +import org.opensearch.search.collapse.CollapseContext; +import org.opensearch.search.dfs.DfsSearchResult; +import org.opensearch.search.fetch.FetchPhase; +import org.opensearch.search.fetch.FetchSearchResult; +import org.opensearch.search.fetch.StoredFieldsContext; +import org.opensearch.search.fetch.subphase.FetchDocValuesContext; +import org.opensearch.search.fetch.subphase.FetchFieldsContext; +import org.opensearch.search.fetch.subphase.FetchSourceContext; +import org.opensearch.search.fetch.subphase.ScriptFieldsContext; +import org.opensearch.search.fetch.subphase.highlight.SearchHighlightContext; +import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.ScrollContext; import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.internal.ShardSearchContextId; import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.datafusion.DatafusionEngine; import org.opensearch.search.ContextEngineSearcher; +import org.opensearch.search.profile.Profilers; +import org.opensearch.search.query.QuerySearchResult; +import org.opensearch.search.query.ReduceableSearchResult; +import org.opensearch.search.rescore.RescoreContext; +import org.opensearch.search.sort.SortAndFormats; +import org.opensearch.search.suggest.SuggestionSearchContext; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; + +import java.util.List; +import java.util.Map; /** * Search context for Datafusion engine @@ -23,31 +67,539 @@ public class DatafusionContext extends SearchContext { private final ShardSearchRequest request; private final SearchShardTask task; private final DatafusionEngine readEngine; - private final ContextEngineSearcher engineSearcher; + private final DatafusionSearcher engineSearcher; + private DatafusionQuery datafusionQuery; public DatafusionContext( ReaderContext readerContext, ShardSearchRequest request, - SearchShardTask task) { + SearchShardTask task, + DatafusionEngine engine) { this.readerContext = readerContext; this.request = request; this.task = task; - this.readEngine = (DatafusionEngine) readerContext.indexShard() - .getIndexingExecutionCoordinator() - .getPrimaryReadEngine(); - this.engineSearcher = null;//TODO readerContext.contextEngineSearcher(); + this.readEngine = engine; + this.engineSearcher = engine.acquireSearcher("search");//null;//TODO readerContext.contextEngineSearcher(); } public DatafusionEngine readEngine() { return readEngine; } - public DatafusionQuery query() { + public DatafusionContext datafusionQuery(DatafusionQuery datafusionQuery) { + this.datafusionQuery = datafusionQuery; + return this; + } + public DatafusionQuery getDatafusionQuery() { + return datafusionQuery; + } + + public DatafusionSearcher getEngineSearcher() { + return engineSearcher; + } + + @Override + public void setTask(SearchShardTask task) { + + } + + @Override + public SearchShardTask getTask() { + return null; + } + + @Override + public boolean isCancelled() { + return false; + } + + @Override + protected void doClose() { + + } + + @Override + public void preProcess(boolean rewrite) { + + } + + @Override + public Query buildFilteredQuery(Query query) { + return null; + } + + @Override + public ShardSearchContextId id() { + return null; + } + + @Override + public String source() { + return ""; + } + + @Override + public ShardSearchRequest request() { + return null; + } + + @Override + public SearchType searchType() { + return null; + } + + @Override + public SearchShardTarget shardTarget() { + return null; + } + + @Override + public int numberOfShards() { + return 0; + } + + @Override + public float queryBoost() { + return 0; + } + + @Override + public ScrollContext scrollContext() { + return null; + } + + @Override + public SearchContextAggregations aggregations() { + return null; + } + + @Override + public SearchContext aggregations(SearchContextAggregations aggregations) { + return null; + } + + @Override + public void addSearchExt(SearchExtBuilder searchExtBuilder) { + + } + + @Override + public SearchExtBuilder getSearchExt(String name) { + return null; + } + + @Override + public SearchHighlightContext highlight() { + return null; + } + + @Override + public void highlight(SearchHighlightContext highlight) { + + } + + @Override + public SuggestionSearchContext suggest() { + return null; + } + + @Override + public void suggest(SuggestionSearchContext suggest) { + + } + + @Override + public List rescore() { + return List.of(); + } + + @Override + public void addRescore(RescoreContext rescore) { + + } + + @Override + public boolean hasScriptFields() { + return false; + } + + @Override + public ScriptFieldsContext scriptFields() { + return null; + } + + @Override + public boolean sourceRequested() { + return false; + } + + @Override + public boolean hasFetchSourceContext() { + return false; + } + + @Override + public FetchSourceContext fetchSourceContext() { + return null; + } + + @Override + public SearchContext fetchSourceContext(FetchSourceContext fetchSourceContext) { + return null; + } + + @Override + public FetchDocValuesContext docValuesContext() { + return null; + } + + @Override + public SearchContext docValuesContext(FetchDocValuesContext docValuesContext) { + return null; + } + + @Override + public FetchFieldsContext fetchFieldsContext() { + return null; + } + + @Override + public SearchContext fetchFieldsContext(FetchFieldsContext fetchFieldsContext) { + return null; + } + + @Override + public ContextIndexSearcher searcher() { + return null; + } + + @Override + public IndexShard indexShard() { + return null; + } + + @Override + public MapperService mapperService() { + return null; + } + + @Override + public SimilarityService similarityService() { + return null; + } + + @Override + public BigArrays bigArrays() { + return null; + } + + @Override + public BitsetFilterCache bitsetFilterCache() { + return null; + } + + @Override + public TimeValue timeout() { + return null; + } + + @Override + public void timeout(TimeValue timeout) { + + } + + @Override + public int terminateAfter() { + return 0; + } + + @Override + public void terminateAfter(int terminateAfter) { + + } + + @Override + public boolean lowLevelCancellation() { + return false; + } + + @Override + public SearchContext minimumScore(float minimumScore) { + return null; + } + + @Override + public Float minimumScore() { + return 0f; + } + + @Override + public SearchContext sort(SortAndFormats sort) { + return null; + } + + @Override + public SortAndFormats sort() { + return null; + } + + @Override + public SearchContext trackScores(boolean trackScores) { + return null; + } + + @Override + public boolean trackScores() { + return false; + } + + @Override + public SearchContext trackTotalHitsUpTo(int trackTotalHits) { + return null; + } + + @Override + public int trackTotalHitsUpTo() { + return 0; + } + + @Override + public SearchContext searchAfter(FieldDoc searchAfter) { + return null; + } + + @Override + public FieldDoc searchAfter() { + return null; + } + + @Override + public SearchContext collapse(CollapseContext collapse) { + return null; + } + + @Override + public CollapseContext collapse() { + return null; + } + + @Override + public SearchContext parsedPostFilter(ParsedQuery postFilter) { + return null; + } + + @Override + public ParsedQuery parsedPostFilter() { + return null; + } + + @Override + public Query aliasFilter() { + return null; + } + + @Override + public SearchContext parsedQuery(ParsedQuery query) { + return null; + } + + @Override + public ParsedQuery parsedQuery() { + return null; + } + + // TODO : fix this + public Query query() { // Extract query from request return null; } - public ContextEngineSearcher contextEngineSearcher() { - return engineSearcher; + @Override + public int from() { + return 0; + } + + @Override + public SearchContext from(int from) { + return null; + } + + @Override + public int size() { + return 0; + } + + @Override + public SearchContext size(int size) { + return null; + } + + @Override + public boolean hasStoredFields() { + return false; + } + + @Override + public boolean hasStoredFieldsContext() { + return false; + } + + @Override + public boolean storedFieldsRequested() { + return false; + } + + @Override + public StoredFieldsContext storedFieldsContext() { + return null; + } + + @Override + public SearchContext storedFieldsContext(StoredFieldsContext storedFieldsContext) { + return null; + } + + @Override + public boolean explain() { + return false; + } + + @Override + public void explain(boolean explain) { + + } + + @Override + public List groupStats() { + return List.of(); + } + + @Override + public void groupStats(List groupStats) { + + } + + @Override + public boolean version() { + return false; + } + + @Override + public void version(boolean version) { + + } + + @Override + public boolean seqNoAndPrimaryTerm() { + return false; + } + + @Override + public void seqNoAndPrimaryTerm(boolean seqNoAndPrimaryTerm) { + + } + + @Override + public int[] docIdsToLoad() { + return new int[0]; + } + + @Override + public int docIdsToLoadFrom() { + return 0; + } + + @Override + public int docIdsToLoadSize() { + return 0; + } + + @Override + public SearchContext docIdsToLoad(int[] docIdsToLoad, int docsIdsToLoadFrom, int docsIdsToLoadSize) { + return null; + } + + @Override + public DfsSearchResult dfsResult() { + return null; + } + + @Override + public QuerySearchResult queryResult() { + return null; + } + + @Override + public FetchPhase fetchPhase() { + return null; + } + + @Override + public FetchSearchResult fetchResult() { + return null; + } + + @Override + public Profilers getProfilers() { + return null; + } + + @Override + public MappedFieldType fieldType(String name) { + return null; + } + + @Override + public ObjectMapper getObjectMapper(String name) { + return null; + } + + @Override + public long getRelativeTimeInMillis() { + return 0; + } + + @Override + public Map, CollectorManager> queryCollectorManagers() { + return Map.of(); + } + + @Override + public QueryShardContext getQueryShardContext() { + return null; + } + + @Override + public ReaderContext readerContext() { + return null; + } + + @Override + public InternalAggregation.ReduceContext partialOnShard() { + return null; + } + + @Override + public void setBucketCollectorProcessor(BucketCollectorProcessor bucketCollectorProcessor) { + + } + + @Override + public BucketCollectorProcessor bucketCollectorProcessor() { + return null; + } + + @Override + public int getTargetMaxSliceCount() { + return 0; + } + + @Override + public boolean shouldUseTimeSeriesDescSortOptimization() { + return false; + } + + public ContextEngineSearcher contextEngineSearcher() { + return new ContextEngineSearcher<>(this.engineSearcher, this); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java index 04c913351af26..7c266b21a8e06 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java @@ -21,4 +21,12 @@ public DatafusionQuery(byte[] substraitBytes, List searchExecuto this.substraitBytes = substraitBytes; this.searchExecutors = searchExecutors; } + + public byte[] getSubstraitBytes() { + return substraitBytes; + } + + public List getSearchExecutors() { + return searchExecutors; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java similarity index 66% rename from plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java rename to plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java index 95b557691795b..8de7c7e397715 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryExecutor.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java @@ -8,6 +8,7 @@ package org.opensearch.datafusion.search; +import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.search.query.QueryPhaseExecutionException; import org.opensearch.datafusion.search.DatafusionContext; @@ -15,6 +16,7 @@ import org.opensearch.search.ContextEngineSearcher; import org.opensearch.search.query.GenericQueryPhase; import org.opensearch.search.query.GenericQueryPhaseSearcher; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; /** * Query phase executor for Datafusion engine @@ -24,17 +26,18 @@ public class DatafusionQueryPhaseExecutor implements QueryPhaseExecutor, DatafusionQuery> searcher = + GenericQueryPhaseSearcher searcher = context.readEngine().getQueryPhaseSearcher(); - GenericQueryPhase, DatafusionQuery> queryPhase = + GenericQueryPhase queryPhase = new GenericQueryPhase<>(searcher); - DatafusionQuery query = context.query(); - return queryPhase.executeInternal(context, context.contextEngineSearcher(), query); + DatafusionQuery query = context.getDatafusionQuery(); + // TODO : rework interfaces as context itself has many objects + return queryPhase.executeInternal(context, context.getEngineSearcher(), query); } @Override diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index ee3e2aac06251..58ae0f4158da2 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -8,6 +8,7 @@ package org.opensearch.datafusion.search; +import org.opensearch.datafusion.DataFusionQueryJNI; import org.opensearch.index.engine.exec.FileMetadata; import java.io.Closeable; @@ -15,6 +16,8 @@ import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; +import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; + // JNI from java to rust // substrait // Harcode --> file --> register as the table with the same name @@ -27,7 +30,7 @@ public class DatafusionReader implements Closeable { public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; - this.cachePtr = createDatafusionReader(directoryPath, files); + this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, files /* Make this jarray to be compatible with rust*/); incRef(); } @@ -51,9 +54,6 @@ public void decRef() throws IOException { } - private static native long createDatafusionReader(String path, Collection files); - private static native void closeDatafusionReader(long ptr); - @Override public void close() throws IOException { if(cachePtr == -1L) { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java deleted file mode 100644 index 12f3c1ef91716..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager1.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.search; - -import org.apache.lucene.search.ReferenceManager; -import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; -import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.coord.CatalogSnapshot; - -import java.io.IOException; -import java.util.Collection; - -public class DatafusionReaderManager1 extends ReferenceManager implements CatalogSnapshotAwareRefreshListener { - private DatafusionReader current; - private String path; - - public DatafusionReaderManager1(String path, Collection files) throws IOException { - this.current = new DatafusionReader(path, files); - this.path = path; - } - - - - @Override - public void beforeRefresh() throws IOException { - // no op - } - - @Override - public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { - if (didRefresh && catalogSnapshot != null) { - DatafusionReader old = this.current; - release(old); - this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); - this.current.incRef(); - } - } - - @Override - protected void decRef(DatafusionReader datafusionReader) throws IOException { - - } - - @Override - protected DatafusionReader refreshIfNeeded(DatafusionReader datafusionReader) throws IOException { - return null; - } - - @Override - protected boolean tryIncRef(DatafusionReader datafusionReader) throws IOException { - return false; - } - - @Override - protected int getRefCount(DatafusionReader datafusionReader) { - return 0; - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 5151e49b4aa60..e977d84a2dbf0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -8,18 +8,27 @@ package org.opensearch.datafusion.search; +import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.datafusion.DataFusionQueryJNI; import org.opensearch.datafusion.DataFusionService; +import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.aggregations.SearchResultsCollector; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; +import java.io.Closeable; import java.io.IOException; +import java.io.UncheckedIOException; import java.util.List; +import java.util.concurrent.CompletableFuture; -public class DatafusionSearcher implements EngineSearcher { +public class DatafusionSearcher implements EngineSearcher { private final String source; - - public DatafusionSearcher(String source) { + private DatafusionReader reader; + private Closeable closeable; + public DatafusionSearcher(String source, DatafusionReader reader, Closeable close) { this.source = source; + this.reader = reader; } @Override @@ -28,12 +37,31 @@ public String source() { } @Override - public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { + public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native + long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.getSubstraitBytes()); + RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); + while(stream.hasNext()) { + for(SearchResultsCollector collector : collectors) { + collector.collect(stream); + } + } + } + + public DatafusionReader getReader() { + return reader; } @Override public void close() { + try { + closeable.close(); + } catch (IOException e) { + throw new UncheckedIOException("failed to close", e); + } catch (AlreadyClosedException e) { + // This means there's a bug somewhere: don't suppress it + throw new AssertionError(e); + } } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java index ebd0cb9a19fa0..6ff7526b0fdea 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcherSupplier.java @@ -8,5 +8,44 @@ package org.opensearch.datafusion.search; -public class DatafusionSearcherSupplier { +import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineSearcherSupplier; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; + +public abstract class DatafusionSearcherSupplier extends EngineSearcherSupplier { + + private final Function wrapper; + private final AtomicBoolean released = new AtomicBoolean(false); + + public DatafusionSearcherSupplier(Function wrapper) { + this.wrapper = wrapper; + } + + public final DatafusionSearcher acquireSearcher(String source) { + if (released.get()) { + throw new AlreadyClosedException("SearcherSupplier was closed"); + } + final DatafusionSearcher searcher = acquireSearcherInternal(source); + return searcher; + // TODO apply wrapper + } + + @Override + public final void close() { + if (released.compareAndSet(false, true)) { + doClose(); + } else { + assert false : "SearchSupplier was released twice"; + } + } + + protected abstract void doClose(); + + protected abstract DatafusionSearcher acquireSearcherInternal(String source); + } diff --git a/server/src/main/java/org/opensearch/action/admin/cluster/node/info/PluginsAndModules.java b/server/src/main/java/org/opensearch/action/admin/cluster/node/info/PluginsAndModules.java index 13f7211d48e9a..5412aa00fe49a 100644 --- a/server/src/main/java/org/opensearch/action/admin/cluster/node/info/PluginsAndModules.java +++ b/server/src/main/java/org/opensearch/action/admin/cluster/node/info/PluginsAndModules.java @@ -32,6 +32,7 @@ package org.opensearch.action.admin.cluster.node.info; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; import org.opensearch.core.service.ReportingService; @@ -49,6 +50,7 @@ * * @opensearch.internal */ +@ExperimentalApi // TODO : this cannot be experimental, just marking it to bypass for now public class PluginsAndModules implements ReportingService.Info { private final List plugins; private final List modules; diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java index 11760c35f92f9..648d29a3b985d 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -8,14 +8,16 @@ package org.opensearch.index.engine; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.lease.Releasable; import org.opensearch.search.aggregations.SearchResultsCollector; import java.io.IOException; import java.util.List; +@ExperimentalApi // TODO make this generic type -public interface EngineSearcher extends Releasable { +public interface EngineSearcher extends Releasable { /** * The source that caused this searcher to be acquired. @@ -25,7 +27,7 @@ public interface EngineSearcher extends Releasable { /** * Search using substrait query plan bytes and call the result collectors */ - default void search(Q query, List> collectors) throws IOException { + default void search(Q query, List> collectors) throws IOException { throw new UnsupportedOperationException(); } } diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java index 0f94c80e11848..df66b5265ce9e 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcherSupplier.java @@ -9,10 +9,12 @@ package org.opensearch.index.engine; import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.lease.Releasable; import java.util.concurrent.atomic.AtomicBoolean; +@ExperimentalApi public abstract class EngineSearcherSupplier implements Releasable { private final AtomicBoolean released = new AtomicBoolean(false); diff --git a/server/src/main/java/org/opensearch/index/engine/ReadEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java similarity index 84% rename from server/src/main/java/org/opensearch/index/engine/ReadEngine.java rename to server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index b5e1b63347411..14747390fd46f 100644 --- a/server/src/main/java/org/opensearch/index/engine/ReadEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -10,7 +10,6 @@ import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.annotation.ExperimentalApi; -import org.opensearch.search.EngineReaderContext; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; @@ -28,12 +27,12 @@ */ @ExperimentalApi // TODO too many templatized types -public abstract class ReadEngine implements SearcherOperations { +public abstract class SearchExecEngine, R, Q> implements SearcherOperations { /** * Get the query phase searcher for this engine */ - public abstract GenericQueryPhaseSearcher getQueryPhaseSearcher(); + public abstract GenericQueryPhaseSearcher getQueryPhaseSearcher(); /** * Get the query phase executor for this engine diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java b/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java new file mode 100644 index 0000000000000..ef1ad24992256 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/DataFormat.java @@ -0,0 +1,51 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.index.engine.exec.text.TextDF; + +@ExperimentalApi +public interface DataFormat { + Setting dataFormatSettings(); + + Setting clusterLeveldataFormatSettings(); + + String name(); + + void configureStore(); + + static class LuceneDataFormat implements DataFormat { + @Override + public Setting dataFormatSettings() { + return null; + } + + @Override + public Setting clusterLeveldataFormatSettings() { + return null; + } + + @Override + public String name() { + return ""; + } + + @Override + public void configureStore() { + + } + } + + DataFormat LUCENE = new LuceneDataFormat(); + + DataFormat TEXT = new TextDF(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java new file mode 100644 index 0000000000000..0f24ca036741d --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.index.mapper.MappedFieldType; + +import java.io.IOException; +@ExperimentalApi +public interface DocumentInput extends AutoCloseable { + + void addField(MappedFieldType fieldType, Object value); + + T getFinalInput(); + + WriteResult addToWriter() throws IOException; +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java new file mode 100644 index 0000000000000..22be766ff9be4 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -0,0 +1,114 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.composite; + +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.mapper.MappedFieldType; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class CompositeDataFormatWriter implements Writer { + + List> writers = new ArrayList<>(); + Runnable postWrite; + + public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine) { + engine.delegates.forEach(delegate -> { + try { + writers.add(delegate.createWriter()); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + this.postWrite = () -> engine.pool.offer(this); + } + + @Override + public WriteResult addDoc(CompositeDocumentInput d) throws IOException { + return d.addToWriter(); + } + + @Override + public FileMetadata flush(FlushIn flushIn) throws IOException { + FileMetadata metadata = null; + for (Writer writer : writers) { + metadata = writer.flush(flushIn); + } + return metadata; // todo: model meta in a way that it can handle multiple writers. + } + + @Override + public void sync() throws IOException { + + } + + @Override + public void close() { + + } + + @Override + public Optional getMetadata() { + return Optional.empty(); + } + + @Override + public CompositeDocumentInput newDocumentInput() { + List> documentInputs = new ArrayList<>(); + return new CompositeDocumentInput(writers.stream().map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); + } + + @ExperimentalApi + public static class CompositeDocumentInput implements DocumentInput>> { + List> inputs; + CompositeDataFormatWriter writer; + Runnable onClose; + + public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable onClose) { + this.inputs = inputs; + this.writer = writer; + this.onClose = onClose; + } + + @Override + public void addField(MappedFieldType fieldType, Object value) { + for (DocumentInput input : inputs) { + input.addField(fieldType, value); + } + } + + @Override + public List> getFinalInput() { + return null; + } + + @Override + public WriteResult addToWriter() throws IOException { + WriteResult writeResult = null; + for (DocumentInput input : inputs) { + writeResult = input.addToWriter(); + } + return writeResult; + } + + @Override + public void close() throws Exception { + onClose.run(); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index f2bdfcd733b09..7ddf61d5e55b1 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.coord; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.util.concurrent.AbstractRefCounted; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; @@ -16,6 +17,7 @@ import java.util.HashMap; import java.util.Map; +@ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted { // shard1 - r1 - f1, f2 -> refresh -> f1,f2 diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java similarity index 87% rename from server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java rename to server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 45d915935bf2c..c339047cc0202 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -15,7 +15,7 @@ import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; -import org.opensearch.index.engine.ReadEngine; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.WriteResult; @@ -33,15 +33,15 @@ import java.util.Map; @ExperimentalApi -public class IndexingExecutionCoordinator { +public class CompositeEngine { private final CompositeIndexingExecutionEngine engine; private List refreshListeners = new ArrayList<>(); private CatalogSnapshot catalogSnapshot; private List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); - private Map>> readEngines = new HashMap<>(); + private Map>> readEngines = new HashMap<>(); - public IndexingExecutionCoordinator(MapperService mapperService, PluginsService pluginsService) throws IOException { + public CompositeEngine(MapperService mapperService, PluginsService pluginsService) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); this.engine = new CompositeIndexingExecutionEngine(pluginsService, new Any(List.of(DataFormat.TEXT))); @@ -50,29 +50,29 @@ public IndexingExecutionCoordinator(MapperService mapperService, PluginsService refresh("start"); // TODO : how to extend this for Lucene ? where engine is a r/w engine // Create read specific engines for each format which is associated with shard - for(SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { + for(SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { - ReadEngine readEngine = searchEnginePlugin.createEngine(dataFormat, + SearchExecEngine searchExecEngine = searchEnginePlugin.createEngine(dataFormat, catalogSnapshot.getSearchableFiles(dataFormat.toString())); - readEngines.getOrDefault(dataFormat, new ArrayList<>()).add(readEngine); + readEngines.getOrDefault(dataFormat, new ArrayList<>()).add(searchExecEngine); // TODO : figure out how to do internal and external refresh listeners // Maybe external refresh should be managed in opensearch core and plugins should always give // internal refresh managers // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger // - if(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { - catalogSnapshotAwareRefreshListeners.add(readEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + if(searchExecEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { + catalogSnapshotAwareRefreshListeners.add(searchExecEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); } } } } - public ReadEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { + public SearchExecEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { return readEngines.getOrDefault(dataFormat, new ArrayList<>()).getFirst(); } - public ReadEngine getPrimaryReadEngine() { + public SearchExecEngine getPrimaryReadEngine() { // Return the first available ReadEngine as primary return readEngines.values().stream() .filter(list -> !list.isEmpty()) @@ -148,6 +148,7 @@ public void close() throws Exception { + @ExperimentalApi public static abstract class ReleasableRef implements AutoCloseable { private T t; @@ -161,7 +162,7 @@ public T getRef() { } public static void main(String[] args) throws Exception { - IndexingExecutionCoordinator coordinator = new IndexingExecutionCoordinator(null, null); + CompositeEngine coordinator = new CompositeEngine(null, null); for (int i = 0; i < 5; i++) { diff --git a/server/src/main/java/org/opensearch/index/query/QueryShardContext.java b/server/src/main/java/org/opensearch/index/query/QueryShardContext.java index f2c278f04b021..e444bd8f858b0 100644 --- a/server/src/main/java/org/opensearch/index/query/QueryShardContext.java +++ b/server/src/main/java/org/opensearch/index/query/QueryShardContext.java @@ -570,6 +570,7 @@ public boolean indexSortedOnField(String field) { return indexSortConfig.hasPrimarySortOnField(field); } + // This converts the QB to query public ParsedQuery toQuery(QueryBuilder queryBuilder) { return toQuery(queryBuilder, q -> { Query query = q.toQuery(this); @@ -580,6 +581,7 @@ public ParsedQuery toQuery(QueryBuilder queryBuilder) { }); } + // This converts the QB to query private ParsedQuery toQuery(QueryBuilder queryBuilder, CheckedFunction filterOrQuery) { reset(); try { diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index d3eb1db06f4f3..c87b38e91bc95 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -134,6 +134,7 @@ import org.opensearch.index.engine.EngineConfigFactory; import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.EngineFactory; +import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.IngestionEngine; import org.opensearch.index.engine.MergedSegmentWarmerFactory; import org.opensearch.index.engine.NRTReplicationEngine; @@ -143,7 +144,7 @@ import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.engine.Segment; import org.opensearch.index.engine.SegmentsStats; -import org.opensearch.index.engine.exec.coord.IndexingExecutionCoordinator; +import org.opensearch.index.engine.exec.coord.CompositeEngine; import org.opensearch.index.fielddata.FieldDataStats; import org.opensearch.index.fielddata.ShardFieldData; import org.opensearch.index.flush.FlushStats; @@ -392,8 +393,7 @@ Runnable getGlobalCheckpointSyncer() { private final MergedSegmentPublisher mergedSegmentPublisher; private final ReferencedSegmentsPublisher referencedSegmentsPublisher; private final Set pendingMergedSegmentCheckpoints = Sets.newConcurrentHashSet(); - private final SearchExecutionEngine searchExecutionEngine; - private final IndexingExecutionCoordinator indexingExecutionCoordinator; + private final CompositeEngine compositeEngine; @InternalApi public IndexShard( final ShardRouting shardRouting, @@ -560,20 +560,11 @@ public boolean shouldCache(Query query) { startRefreshTask(); } } - this.indexingExecutionCoordinator = new IndexingExecutionCoordinator(mapperService, pluginsService); - this.searchExecutionEngine = searchExecutionEngine; + this.compositeEngine = new CompositeEngine(mapperService, pluginsService); } - /** - * Returns search execution engine - * @return SearchExecutionEngine - */ - public SearchExecutionEngine getSearchExecutionEngine() { - return searchExecutionEngine; - } - - public IndexingExecutionCoordinator getIndexingExecutionCoordinator() { - return indexingExecutionCoordinator; + public CompositeEngine getIndexingExecutionCoordinator() { + return compositeEngine; } /** * By default, UNASSIGNED_SEQ_NO is used as the initial global checkpoint for new shard initialization. Ingestion @@ -2173,7 +2164,7 @@ public void failShard(String reason, @Nullable Exception e) { /** * Acquires a point-in-time reader that can be used to create {@link Engine.Searcher}s on demand. */ - public Engine.SearcherSupplier acquireSearcherSupplier() { + public EngineSearcherSupplier acquireSearcherSupplier() { return acquireSearcherSupplier(Engine.SearcherScope.EXTERNAL); } @@ -2184,6 +2175,7 @@ public Engine.SearcherSupplier acquireSearcherSupplier(Engine.SearcherScope scop readAllowed(); markSearcherAccessed(); final Engine engine = getEngine(); + compositeEngine.getPrimaryReadEngine().acquireSearcherSupplier(null, scope); return engine.acquireSearcherSupplier(this::wrapSearcher, scope); } diff --git a/server/src/main/java/org/opensearch/plugins/PluginsService.java b/server/src/main/java/org/opensearch/plugins/PluginsService.java index 5e382584dbe0e..ccbc10f77cb14 100644 --- a/server/src/main/java/org/opensearch/plugins/PluginsService.java +++ b/server/src/main/java/org/opensearch/plugins/PluginsService.java @@ -42,6 +42,7 @@ import org.opensearch.OpenSearchException; import org.opensearch.Version; import org.opensearch.action.admin.cluster.node.info.PluginsAndModules; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.bootstrap.JarHell; import org.opensearch.common.collect.Tuple; import org.opensearch.common.inject.Module; @@ -88,6 +89,7 @@ * * @opensearch.internal */ +@ExperimentalApi // TODO : this cannot be experimental, just marking it to bypass for now public class PluginsService implements ReportingService { private static final Logger logger = LogManager.getLogger(PluginsService.class); diff --git a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java index 5a7d8df56d946..ad029fec7d4d5 100644 --- a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java @@ -14,9 +14,7 @@ import org.opensearch.core.xcontent.NamedXContentRegistry; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; -import org.opensearch.index.engine.ReadEngine; -import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; @@ -33,7 +31,7 @@ import java.util.Map; import java.util.function.Supplier; -public interface SearchEnginePlugin,R> extends SearchPlugin{ +public interface SearchEnginePlugin extends SearchPlugin{ /** * Make dataSourceCodecs available for the DataSourceAwarePlugin(s) @@ -57,7 +55,5 @@ default Collection createComponents( List getSupportedFormats(); - EngineReaderManager getReaderManager(); - - ReadEngine createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; + SearchExecEngine createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; } diff --git a/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java b/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java index 0096fb1cd44e7..85809b993b165 100644 --- a/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java +++ b/server/src/main/java/org/opensearch/search/ContextEngineSearcher.java @@ -11,8 +11,8 @@ * Engine-agnostic equivalent of ContextIndexSearcher that wraps EngineSearcher * and provides search context awareness */ -public record ContextEngineSearcher(EngineSearcher engineSearcher, - SearchContext searchContext) implements EngineSearcher { +public record ContextEngineSearcher(EngineSearcher engineSearcher, + SearchContext searchContext) implements EngineSearcher { @Override public String source() { @@ -20,7 +20,7 @@ public String source() { } @Override - public void search(Q query, List> collectors) throws IOException { + public void search(Q query, List> collectors) throws IOException { engineSearcher.search(query, collectors); } diff --git a/server/src/main/java/org/opensearch/search/DefaultSearchContext.java b/server/src/main/java/org/opensearch/search/DefaultSearchContext.java index 2745c6d092155..52863c08f0788 100644 --- a/server/src/main/java/org/opensearch/search/DefaultSearchContext.java +++ b/server/src/main/java/org/opensearch/search/DefaultSearchContext.java @@ -258,7 +258,7 @@ final class DefaultSearchContext extends SearchContext { this.indexService = readerContext.indexService(); this.indexShard = readerContext.indexShard(); this.clusterService = clusterService; - this.engineSearcher = readerContext.acquireSearcher("search"); + this.engineSearcher = (Engine.Searcher) readerContext.acquireSearcher("search"); this.concurrentSearchMode = evaluateConcurrentSearchMode(executor); this.searcher = new ContextIndexSearcher( engineSearcher.getIndexReader(), diff --git a/server/src/main/java/org/opensearch/search/EngineReaderContext.java b/server/src/main/java/org/opensearch/search/EngineReaderContext.java deleted file mode 100644 index fe0191fa12019..0000000000000 --- a/server/src/main/java/org/opensearch/search/EngineReaderContext.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.opensearch.search; - -import org.opensearch.cluster.service.ClusterService; -import org.opensearch.common.unit.TimeValue; -import org.opensearch.index.IndexService; -import org.opensearch.index.engine.EngineSearcherSupplier; -import org.opensearch.index.shard.IndexShard; -import org.opensearch.search.fetch.FetchPhase; -import org.opensearch.search.fetch.FetchSearchResult; -import org.opensearch.search.internal.ShardSearchRequest; -import org.opensearch.search.query.QuerySearchResult; - -import java.util.function.LongSupplier; - -/** - * Lightweight engine-agnostic reader context for query execution - */ -public class EngineReaderContext { - private final EngineSearcherSupplier engineSearcherSupplier; - private final ShardSearchRequest request; - private final SearchShardTarget shardTarget; - private final FetchPhase fetchPhase; - private final QuerySearchResult queryResult; - private final FetchSearchResult fetchResult; - private final IndexService indexService; - private final IndexShard indexShard; - private final ClusterService clusterService; - private final ContextEngineSearcher contextEngineSearcher; - private final LongSupplier relativeTimeSupplier; - private final TimeValue timeout; - private final boolean lowLevelCancellation; - - public EngineReaderContext( - EngineSearcherSupplier engineSearcherSupplier, - ShardSearchRequest request, - SearchShardTarget shardTarget, - FetchPhase fetchPhase, - QuerySearchResult queryResult, - FetchSearchResult fetchResult, - IndexService indexService, - IndexShard indexShard, - ClusterService clusterService, - ContextEngineSearcher contextEngineSearcher, - LongSupplier relativeTimeSupplier, - TimeValue timeout, - boolean lowLevelCancellation - ) { - this.engineSearcherSupplier = engineSearcherSupplier; - this.request = request; - this.shardTarget = shardTarget; - this.fetchPhase = fetchPhase; - this.queryResult = queryResult; - this.fetchResult = fetchResult; - this.indexService = indexService; - this.indexShard = indexShard; - this.clusterService = clusterService; - this.contextEngineSearcher = contextEngineSearcher; - this.relativeTimeSupplier = relativeTimeSupplier; - this.timeout = timeout; - this.lowLevelCancellation = lowLevelCancellation; - } - - public ContextEngineSearcher contextEngineSearcher() { return contextEngineSearcher; } - public ShardSearchRequest request() { return request; } - public QuerySearchResult queryResult() { return queryResult; } - public FetchSearchResult fetchResult() { return fetchResult; } - public IndexShard indexShard() { return indexShard; } - public TimeValue timeout() { return timeout; } - public IndexService indexService() { return indexService; } - public ClusterService clusterService() { return clusterService; } -} diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 9c2eba33a28f0..01e9d9a0db14d 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -84,7 +84,8 @@ import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.SearchExecutionEngine; -import org.opensearch.index.engine.ReadEngine; +import org.opensearch.index.engine.EngineSearcherSupplier; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.mapper.DerivedFieldResolver; import org.opensearch.index.mapper.DerivedFieldResolverFactory; import org.opensearch.index.query.InnerHitContextBuilder; @@ -826,7 +827,7 @@ private SearchPhaseResult executeQueryPhase( // Till here things are generic but for datafusion , we need to abstract out and get the read engine specific implementation // it could be reusing existing final ReaderContext readerContext = createOrGetReaderContext(request, keepStatesInContext); - ReadEngine readEngine = readerContext.indexShard() + SearchExecEngine searchExecEngine = readerContext.indexShard() .getIndexingExecutionCoordinator() .getPrimaryReadEngine(); @@ -836,7 +837,7 @@ private SearchPhaseResult executeQueryPhase( // Get engine-specific executor and context // TODO : move this logic to work with Lucene - SearchContext context = readEngine.createContext(readerContext, request, task); + SearchContext context = searchExecEngine.createContext(readerContext, request, task); //SearchContext context = createContext(readerContext, request, task, true) ) { @@ -1102,7 +1103,7 @@ final ReaderContext createOrGetReaderContext(ShardSearchRequest request, boolean IndexService indexService = indicesService.indexServiceSafe(request.shardId().getIndex()); IndexShard shard = indexService.getShard(request.shardId().id()); // TODO acquire search supplier - Engine.SearcherSupplier reader = shard.acquireSearcherSupplier(); + EngineSearcherSupplier reader = shard.acquireSearcherSupplier(); return createAndPutReaderContext(request, indexService, shard, reader, keepStatesInContext); } @@ -1110,7 +1111,7 @@ final ReaderContext createAndPutReaderContext( ShardSearchRequest request, IndexService indexService, IndexShard shard, - Engine.SearcherSupplier reader, + EngineSearcherSupplier reader, boolean keepStatesInContext ) { assert request.readerId() == null; @@ -1176,7 +1177,7 @@ public void createPitReaderContext(ShardId shardId, TimeValue keepAlive, ActionL final IndexShard shard = indexService.getShard(shardId.id()); final SearchOperationListener searchOperationListener = shard.getSearchOperationListener(); shard.awaitShardSearchActive(ignored -> { - Engine.SearcherSupplier searcherSupplier = null; + EngineSearcherSupplier searcherSupplier = null; ReaderContext readerContext = null; Releasable decreasePitContexts = openPitContexts::decrementAndGet; try { @@ -1310,7 +1311,7 @@ private SearchContext createContext( public DefaultSearchContext createSearchContext(ShardSearchRequest request, TimeValue timeout, boolean validate) throws IOException { final IndexService indexService = indicesService.indexServiceSafe(request.shardId().getIndex()); final IndexShard indexShard = indexService.getShard(request.shardId().getId()); - final Engine.SearcherSupplier reader = indexShard.acquireSearcherSupplier(); + final EngineSearcherSupplier reader = indexShard.acquireSearcherSupplier(); final ShardSearchContextId id = new ShardSearchContextId(sessionId, idGenerator.incrementAndGet()); try (ReaderContext readerContext = new ReaderContext(id, indexService, indexShard, reader, -1L, true)) { DefaultSearchContext searchContext = createSearchContext(readerContext, request, timeout, validate); @@ -1865,7 +1866,7 @@ private CanMatchResponse canMatch(ShardSearchRequest request, boolean checkRefre final boolean hasRefreshPending; if (readerContext != null) { indexService = readerContext.indexService(); - canMatchSearcher = readerContext.acquireSearcher(Engine.CAN_MATCH_SEARCH_SOURCE); + canMatchSearcher = (Engine.Searcher) readerContext.acquireSearcher(Engine.CAN_MATCH_SEARCH_SOURCE); hasRefreshPending = false; } else { indexService = indicesService.indexServiceSafe(request.shardId().getIndex()); diff --git a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java index d8e006f0f6484..836fa4509531f 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java +++ b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java @@ -7,12 +7,14 @@ */ package org.opensearch.search.aggregations; +import org.opensearch.common.annotation.ExperimentalApi; /** * Experimental * @opensearch.internal */ // TODO : account for sub collectors +@ExperimentalApi public interface SearchResultsCollector { /** diff --git a/server/src/main/java/org/opensearch/search/internal/LegacyReaderContext.java b/server/src/main/java/org/opensearch/search/internal/LegacyReaderContext.java index 05ab12d5ae809..4a4b96113930c 100644 --- a/server/src/main/java/org/opensearch/search/internal/LegacyReaderContext.java +++ b/server/src/main/java/org/opensearch/search/internal/LegacyReaderContext.java @@ -34,6 +34,8 @@ import org.opensearch.index.IndexService; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.shard.IndexShard; import org.opensearch.search.RescoreDocIds; import org.opensearch.search.dfs.AggregatedDfs; @@ -57,7 +59,7 @@ public LegacyReaderContext( ShardSearchContextId id, IndexService indexService, IndexShard indexShard, - Engine.SearcherSupplier reader, + EngineSearcherSupplier reader, ShardSearchRequest shardSearchRequest, long keepAliveInMillis ) { @@ -70,7 +72,7 @@ public LegacyReaderContext( // to reuse the searcher created on the request that initialized the scroll. // This ensures that we wrap the searcher's reader with the user's permissions // when they are available. - final Engine.Searcher delegate = searcherSupplier.acquireSearcher("search"); + final Engine.Searcher delegate = (Engine.Searcher) searcherSupplier.acquireSearcher("search"); addOnClose(delegate); // wrap the searcher so that closing is a noop, the actual closing happens when this context is closed this.searcher = new Engine.Searcher( @@ -89,7 +91,7 @@ public LegacyReaderContext( } @Override - public Engine.Searcher acquireSearcher(String source) { + public EngineSearcher acquireSearcher(String source) { if (scrollContext != null) { assert Engine.SEARCH_SOURCE.equals(source) : "scroll context should not acquire searcher for " + source; return searcher; diff --git a/server/src/main/java/org/opensearch/search/internal/PitReaderContext.java b/server/src/main/java/org/opensearch/search/internal/PitReaderContext.java index 5c2a9f82f98e4..b09f40f35172f 100644 --- a/server/src/main/java/org/opensearch/search/internal/PitReaderContext.java +++ b/server/src/main/java/org/opensearch/search/internal/PitReaderContext.java @@ -14,6 +14,7 @@ import org.opensearch.common.lease.Releasables; import org.opensearch.index.IndexService; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.Segment; import org.opensearch.index.shard.IndexShard; @@ -43,7 +44,7 @@ public PitReaderContext( ShardSearchContextId id, IndexService indexService, IndexShard indexShard, - Engine.SearcherSupplier searcherSupplier, + EngineSearcherSupplier searcherSupplier, long keepAliveInMillis, boolean singleSession ) { diff --git a/server/src/main/java/org/opensearch/search/internal/ReaderContext.java b/server/src/main/java/org/opensearch/search/internal/ReaderContext.java index 776e92d325ae4..1293032f7932e 100644 --- a/server/src/main/java/org/opensearch/search/internal/ReaderContext.java +++ b/server/src/main/java/org/opensearch/search/internal/ReaderContext.java @@ -38,6 +38,8 @@ import org.opensearch.common.util.concurrent.AbstractRefCounted; import org.opensearch.index.IndexService; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineSearcher; +import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.shard.IndexShard; import org.opensearch.search.RescoreDocIds; import org.opensearch.search.dfs.AggregatedDfs; @@ -65,7 +67,7 @@ public class ReaderContext implements Releasable { private final ShardSearchContextId id; private final IndexService indexService; private final IndexShard indexShard; - protected final Engine.SearcherSupplier searcherSupplier; + protected final EngineSearcherSupplier searcherSupplier; private final AtomicBoolean closed = new AtomicBoolean(false); private final boolean singleSession; @@ -84,7 +86,7 @@ public ReaderContext( ShardSearchContextId id, IndexService indexService, IndexShard indexShard, - Engine.SearcherSupplier searcherSupplier, + EngineSearcherSupplier searcherSupplier, long keepAliveInMillis, boolean singleSession ) { @@ -150,7 +152,7 @@ public IndexShard indexShard() { return indexShard; } - public Engine.Searcher acquireSearcher(String source) { + public EngineSearcher acquireSearcher(String source) { return searcherSupplier.acquireSearcher(source); } diff --git a/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java b/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java deleted file mode 100644 index 356becd4fc963..0000000000000 --- a/server/src/main/java/org/opensearch/search/query/EngineQueryPhaseExecutor.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.opensearch.search.query; - -import org.opensearch.search.ContextEngineSearcher; -import org.opensearch.search.EngineReaderContext; -import org.opensearch.index.engine.ReadEngine; - -/** - * Generic engine query phase executor using ReadEngine - */ -public class EngineQueryPhaseExecutor implements QueryPhaseExecutor { - - @Override - public boolean execute(EngineReaderContext context) throws QueryPhaseExecutionException { -// ReadEngine readEngine = context.indexShard() -// .getIndexingExecutionCoordinator() -// .getPrimaryReadEngine(); -// -// GenericQueryPhaseSearcher searcher = readEngine.getQueryPhaseSearcher(); -// // TODO : figure out how to represent generic query object -// GenericQueryPhase queryPhase = -// new GenericQueryPhase<>(searcher); -// -// return queryPhase.executeInternal(context, context.contextEngineSearcher(), getQueryFromContext(context)); - - ReadEngine> readEngine = context.indexShard() - .getIndexingExecutionCoordinator() - .getPrimaryReadEngine(); - - if (readEngine == null) { - throw new QueryPhaseExecutionException("Read engine is null"); - } - - GenericQueryPhaseSearcher, ?> searcher = - readEngine.getQueryPhaseSearcher(); - - GenericQueryPhase, ?> queryPhase = - new GenericQueryPhase<>(searcher); - - Object query = getQueryFromContext(context); - return queryPhase.executeInternal(context, context.contextEngineSearcher(), query); - } - - @Override - public boolean canHandle(EngineReaderContext context) { - return context.indexShard() - .getIndexingExecutionCoordinator() - .getPrimaryReadEngine() != null; - } - - private Object getQueryFromContext(EngineReaderContext context) { - // Get query from context - could be Substrait bytes, Lucene Query, etc. - // This would be part of the context interface - return null;// For now, assuming Substrait - } -} diff --git a/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java b/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java index 85b47a6fd3af7..533ef9b328c99 100644 --- a/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java @@ -5,7 +5,7 @@ /** * Generic query phase that can work with different context and searcher types * @param Context type - * @param Searcher type + * @param Searcher type * @param Query type */ public class GenericQueryPhase { @@ -17,7 +17,7 @@ public GenericQueryPhase(GenericQueryPhaseSearcher queryPhaseSearcher) public boolean executeInternal(C context, S searcher, Q query) throws QueryPhaseExecutionException { try { - return queryPhaseSearcher.searchWith(context, searcher, query, new LinkedList<>(), false, false); + return queryPhaseSearcher.searchWith(context, searcher, query, new LinkedList<>() /* Figure out how to pass collectors */, false, false); } catch (Exception e) { throw new QueryPhaseExecutionException(null, "Failed to execute query", e); } diff --git a/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java b/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java index 63a182c85a480..65a8c9a6b6ff5 100644 --- a/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java +++ b/server/src/main/java/org/opensearch/search/query/GenericQueryPhaseSearcher.java @@ -1,5 +1,6 @@ package org.opensearch.search.query; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.search.aggregations.AggregationProcessor; import java.io.IOException; @@ -12,6 +13,7 @@ * @param Query type (Query for Lucene, byte[] for DataFusion Substrait) */ // TODO make this part of QueryPhaseSearcher + @ExperimentalApi public interface GenericQueryPhaseSearcher { boolean searchWith( diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java b/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java index 1810ed25121f2..f9ae60a5c2bfa 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhaseExecutor.java @@ -1,10 +1,12 @@ package org.opensearch.search.query; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.search.internal.SearchContext; /** * Strategy interface for executing query phases across different engines */ +@ExperimentalApi public interface QueryPhaseExecutor { boolean execute(C context) throws QueryPhaseExecutionException; From 72e75f1d8388da92bc86c6e4ee3675948ae04644 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Thu, 25 Sep 2025 15:31:11 +0530 Subject: [PATCH 013/112] Add changes for searcher integration Co-authored-by: Arpit Bandejiya Signed-off-by: Arpit Bandejiya --- .../datafusion/DataFusionPlugin.java | 2 +- .../datafusion/DataFusionService.java | 3 + .../datafusion/DatafusionEngine.java | 62 ++++++++++++++++++- .../datafusion/RecordBatchStream.java | 11 ++-- .../datafusion/search/DatafusionSearcher.java | 5 ++ .../index/engine/EngineSearcher.java | 5 ++ .../index/engine/SearchExecEngine.java | 7 +++ .../org/opensearch/search/SearchService.java | 16 +++-- 8 files changed, 97 insertions(+), 14 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 955eca8c97362..7f794167a7cef 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -125,7 +125,7 @@ public List getSupportedFormats() { public SearchExecEngine createEngine(DataFormat dataFormat,Collection formatCatalogSnapshot) throws IOException { - return new DatafusionEngine(dataFormat, formatCatalogSnapshot); + return new DatafusionEngine(dataFormat, formatCatalogSnapshot, dataFusionService); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 7b03b584d3444..af825c60f6068 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -161,6 +161,9 @@ public CompletableFuture executeSubstraitQuery(long sessionCo return engine.executeSubstraitQuery(sessionContextId, substraitPlanBytes); } + public long getRuntimePointer() { + return globalRuntimeEnv.getPointer(); + } /** * Close the session context and clean up resources * diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 20e32899c1f8a..5dd000e28bdae 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -8,8 +8,15 @@ package org.opensearch.datafusion; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.lease.Releasables; +import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.datafusion.search.DatafusionContext; import org.opensearch.datafusion.search.DatafusionQuery; import org.opensearch.datafusion.search.DatafusionQueryPhaseExecutor; @@ -23,6 +30,7 @@ import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.search.query.QueryPhaseExecutor; @@ -33,17 +41,23 @@ import java.io.UncheckedIOException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import java.util.function.Function; public class DatafusionEngine extends SearchExecEngine { + private static final Logger logger = LogManager.getLogger(DatafusionEngine.class); + private DataFormat dataFormat; private DatafusionReaderManager datafusionReaderManager; + private DataFusionService datafusionService; - public DatafusionEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException { + public DatafusionEngine(DataFormat dataFormat, Collection formatCatalogSnapshot, DataFusionService dataFusionService) throws IOException { this.dataFormat = dataFormat; this.datafusionReaderManager = new DatafusionReaderManager("TODO://FigureOutPath", formatCatalogSnapshot); + this.datafusionService = dataFusionService; } @Override @@ -60,7 +74,7 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTask task) throws IOException { DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, task, this); // Parse source - datafusionContext.datafusionQuery(new DatafusionQuery(request.source().getSubstraitBytes(), new ArrayList<>())); + datafusionContext.datafusionQuery(new DatafusionQuery(request.source().queryPlanIR(), new ArrayList<>())); return datafusionContext; } @@ -138,4 +152,48 @@ public CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherSco public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope) { return false; } + + @Override + public Map execute(DatafusionContext context) { + + Map finalRes = new HashMap<>(); + try { + DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); + long streamPointer = datafusionSearcher.search(context.getDatafusionQuery()); + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); + + // We can have some collectors passed like this which can collect the results and convert to InternalAggregation + // Is the possible? need to check + + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String filedName = field.getName(); + FieldVector fieldVector = root.getVector(filedName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + for (int i = 0; i < fieldVector.getValueCount(); i++) { + fieldValues[i] = fieldVector.getObject(i); + } + finalRes.put(filedName, fieldValues); + } + } + }; + + while (stream.loadNextBatch().join()) { + collector.collect(stream); + } + + logger.info("Final Results:"); + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + } + + } catch (Exception exception) { + logger.error("Failed to execute Substrait query plan", exception); + } + return finalRes; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index 971f68761832c..ea90468215012 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -29,23 +29,22 @@ */ public class RecordBatchStream { - private final SessionContext context; private final long streamPointer; private final BufferAllocator allocator; private final CDataDictionaryProvider dictionaryProvider; private boolean initialized = false; private VectorSchemaRoot vectorSchemaRoot = null; + private long runtimePtr; /** * Creates a new RecordBatchStream for the given stream pointer - * @param ctx the session context - * @param streamId pointer to the native stream + * @param streamId the stream pointer * @param allocator memory allocator for Arrow vectors */ - public RecordBatchStream(SessionContext ctx, long streamId, BufferAllocator allocator) { - this.context = ctx; + public RecordBatchStream(long streamId, long runtimePtr, BufferAllocator allocator) { this.streamPointer = streamId; this.allocator = allocator; + this.runtimePtr = runtimePtr; this.dictionaryProvider = new CDataDictionaryProvider(); } @@ -99,7 +98,7 @@ private void ensureInitialized() { */ public CompletableFuture loadNextBatch() { ensureInitialized(); - long runtimePointer = context.getRuntime(); + long runtimePointer = this.runtimePtr; CompletableFuture result = new CompletableFuture<>(); next(runtimePointer, streamPointer, (errString, arrowArrayAddress) -> { if (ErrorUtil.containsError(errString)) { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index e977d84a2dbf0..6eda08fa8db9b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -48,6 +48,11 @@ public void search(DatafusionQuery datafusionQuery, List extends Releasable { default void search(Q query, List> collectors) throws IOException { throw new UnsupportedOperationException(); } + + default long search(Q query) throws IOException { + throw new UnsupportedOperationException(); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index 14747390fd46f..d85ada1e4390b 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -17,6 +17,7 @@ import org.opensearch.search.query.QueryPhaseExecutor; import java.io.IOException; +import java.util.Map; /** * Generic read engine interface that provides searcher operations and query phase execution @@ -43,4 +44,10 @@ public abstract class SearchExecEngine execute(C context) throws IOException; } diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 01e9d9a0db14d..3e5b4c717103d 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -827,7 +827,8 @@ private SearchPhaseResult executeQueryPhase( // Till here things are generic but for datafusion , we need to abstract out and get the read engine specific implementation // it could be reusing existing final ReaderContext readerContext = createOrGetReaderContext(request, keepStatesInContext); - SearchExecEngine searchExecEngine = readerContext.indexShard() + @SuppressWarnings("unchecked") + SearchExecEngine searchExecEngine = readerContext.indexShard() .getIndexingExecutionCoordinator() .getPrimaryReadEngine(); @@ -842,10 +843,10 @@ private SearchPhaseResult executeQueryPhase( ) { // TODO Execute plan here + // TODO : figure out how to tie this byte[] substraitQuery = request.source().queryPlanIR(); if (substraitQuery != null) { - SearchExecutionEngine searchExecutionEngine = readerContext.indexShard().getSearchExecutionEngine(); - Map result = searchExecutionEngine.execute(substraitQuery); + Map result = searchExecEngine.execute(context); context.setDFResults(result); } @@ -855,9 +856,14 @@ private SearchPhaseResult executeQueryPhase( } final long afterQueryTime; try (SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(context)) { + // TODO check for this +// @SuppressWarnings("unchecked") +// QueryPhaseExecutor queryPhaseExecutor = +// (QueryPhaseExecutor) searchExecEngine.getQueryPhaseExecutor(); + //QueryPhaseExecutor queryPhaseExecutor = readEngine.getQueryPhaseExecutor(); - //boolean success = queryPhaseExecutor.execute(context); - //loadOrExecuteQueryPhase(request, context); +// boolean success = queryPhaseExecutor.execute(context); + loadOrExecuteQueryPhase(request, context); queryPhase.execute(context); // loadOrExecuteQueryPhase(request, context); if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { From 17c2a2cdea8bc3cb569acdb46a0d26376f008d42 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Fri, 26 Sep 2025 11:51:29 +0530 Subject: [PATCH 014/112] Fix datafusion rust Signed-off-by: Arpit Bandejiya --- .../processor/ApiAnnotationProcessor.java | 28 ++++---- plugins/engine-datafusion/jni/Cargo.toml | 2 - plugins/engine-datafusion/jni/src/lib.rs | 70 ++++++++----------- .../datafusion/DataFusionQueryJNI.java | 4 +- .../datafusion/DataFusionService.java | 5 ++ .../datafusion/DatafusionEngine.java | 5 +- .../datafusion/core/GlobalRuntimeEnv.java | 7 ++ .../datafusion/search/DatafusionSearcher.java | 7 +- .../datafusion/DataFusionServiceTests.java | 4 ++ .../org/opensearch/index/IndexService.java | 1 - .../index/engine/EngineSearcher.java | 2 +- .../opensearch/index/shard/IndexShard.java | 1 - 12 files changed, 71 insertions(+), 65 deletions(-) diff --git a/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java b/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java index 94ec0db3a9712..5f419ce621e24 100644 --- a/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java +++ b/libs/common/src/main/java/org/opensearch/common/annotation/processor/ApiAnnotationProcessor.java @@ -85,20 +85,20 @@ public boolean process(Set annotations, RoundEnvironment Set.of(PublicApi.class, ExperimentalApi.class, DeprecatedApi.class) ); - for (var element : elements) { - validate(element); - - if (!checkPackage(element)) { - continue; - } - - // Skip all not-public elements - checkPublicVisibility(null, element); - - if (element instanceof TypeElement) { - process((TypeElement) element); - } - } +// for (var element : elements) { +// validate(element); +// +// if (!checkPackage(element)) { +// continue; +// } +// +// // Skip all not-public elements +// checkPublicVisibility(null, element); +// +// if (element instanceof TypeElement) { +// process((TypeElement) element); +// } +// } return false; } diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index f827e8c32f783..805db2e7be77c 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -13,7 +13,6 @@ crate-type = ["cdylib"] # DataFusion dependencies datafusion = "49.0.0" arrow-json = "55.2" -datafusion-substrait = "49.0.0" #arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } arrow = "55.2.0" arrow-array = "55.2.0" @@ -52,7 +51,6 @@ url = "2.0" # Substrait support substrait = "0.47" -prost = "0.13" # Temporary directory support tempfile = "3.0" diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 1806a18963a37..b48bf887ac1e6 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -15,24 +15,22 @@ mod util; use datafusion::execution::context::SessionContext; -use datafusion::DATAFUSION_VERSION; -use datafusion::datasource::file_format::csv::CsvFormat; -use datafusion::datasource::file_format::parquet::ParquetFormat; -use datafusion::execution::cache::cache_manager::{CacheManager, CacheManagerConfig, FileStatisticsCache}; -use datafusion::execution::disk_manager::DiskManagerConfig; -use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; -use datafusion::prelude::SessionConfig; use crate::util::{create_object_meta_from_filenames, parse_string_arr}; +use datafusion::datasource::file_format::csv::CsvFormat; use datafusion::datasource::listing::{ListingOptions, ListingTable, ListingTableConfig, ListingTableUrl}; +use datafusion::execution::cache::cache_manager::CacheManagerConfig; use datafusion::execution::cache::cache_unit::DefaultListFilesCache; use datafusion::execution::cache::CacheAccessor; -use datafusion::execution::SendableRecordBatchStream; +use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; +use datafusion::prelude::SessionConfig; +use datafusion::DATAFUSION_VERSION; +use datafusion::datasource::file_format::parquet::ParquetFormat; use datafusion_substrait::logical_plan::consumer::from_substrait_plan; use datafusion_substrait::substrait::proto::Plan; use jni::objects::{JObjectArray, JString}; +use object_store::ObjectMeta; use prost::Message; use tokio::runtime::Runtime; -use object_store::ObjectMeta; /// Create a new DataFusion session context #[no_mangle] @@ -75,6 +73,16 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVers env.new_string(DATAFUSION_VERSION).expect("Couldn't create Java string").as_raw() } +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createTokioRuntime( + _env: JNIEnv, + _class: JClass, +) -> jlong { + let rt = Runtime::new().unwrap(); + let ctx = Box::into_raw(Box::new(rt)) as jlong; + ctx +} + #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createGlobalRuntime( _env: JNIEnv, @@ -98,6 +106,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createG let config = SessionConfig::new().with_repartition_aggregations(true); let context = SessionContext::new_with_config(config); **/ + let ctx = Box::into_raw(Box::new(runtime_env)) as jlong; ctx } @@ -181,17 +190,15 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE _class: JClass, shard_view_ptr: jlong, substrait_bytes: jbyteArray, + tokio_runtime_env_ptr: jlong, // callback: JObject, ) -> jlong { let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; + let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; + let table_path = shard_view.table_path(); let files_meta = shard_view.files_meta(); - // Will use it once the global RunTime is defined - // let runtime_arc = unsafe { - // let boxed = &*(runtime_env_ptr as *const Pin>); - // (**boxed).clone() - // }; let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), files_meta); @@ -200,18 +207,16 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE .with_cache_manager(CacheManagerConfig::default() .with_list_files_cache(Some(list_file_cache))).build().unwrap(); - - let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); // Create default parquet options - let file_format = CsvFormat::default(); + let file_format = ParquetFormat::new(); let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".csv"); + .with_file_extension(".parquet"); // Ideally the executor will give this - Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { + runtime_ptr.block_on(async { let resolved_schema = listing_options .infer_schema(&ctx.state(), &table_path.clone()) .await.unwrap(); @@ -252,7 +257,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE }; //let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; - Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { + runtime_ptr.block_on(async { let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { @@ -261,30 +266,17 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE }, Err(e) => { println!("SUBSTRAIT Rust: Failed to convert Substrait plan: {}", e); - return; + return 0; } }; - let dataframe = ctx.execute_logical_plan(logical_plan) - .await.expect("Failed to run Logical Plan"); - - // TODO : check if this works - return match dataframe.execute_stream() { - Ok(stream) => { - let boxed_stream = Box::new(stream); - let stream_ptr = Box::into_raw(boxed_stream); - stream_ptr as jlong - }, - Err(e) => { - 0 - } - } - }) - - - // Create DataFrame from the converted logical plan + let dataframe = ctx.execute_logical_plan(logical_plan).await.unwrap(); + let stream = dataframe.execute_stream().await.unwrap(); + let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; + stream_ptr + }) } // If we need to create session context separately diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index a64ca2da182d6..c2cd748167e27 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -79,6 +79,8 @@ private static synchronized void loadNativeLibrary() { */ public static native long createGlobalRuntime(); + public static native long createTokioRuntime(); + /** * Closes global runtime environment * @param pointer the runtime environment pointer to close @@ -111,7 +113,7 @@ private static synchronized void loadNativeLibrary() { * @param substraitPlan the serialized Substrait query plan * @return stream pointer for result iteration */ - public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan); + public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan, long runtimePtr); public static native long createDatafusionReader(String path, Collection files); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index af825c60f6068..9548ced599723 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -164,6 +164,11 @@ public CompletableFuture executeSubstraitQuery(long sessionCo public long getRuntimePointer() { return globalRuntimeEnv.getPointer(); } + + public long getTokioRuntimePointer() { + return globalRuntimeEnv.getTokioRuntimePtr(); + } + /** * Close the session context and clean up resources * diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 5dd000e28bdae..2381322d76bf4 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -155,13 +155,12 @@ public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scop @Override public Map execute(DatafusionContext context) { - Map finalRes = new HashMap<>(); try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); - long streamPointer = datafusionSearcher.search(context.getDatafusionQuery()); + long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java index 1867028fcb945..547539d5ff4d1 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java @@ -10,6 +10,7 @@ import static org.opensearch.datafusion.DataFusionQueryJNI.closeGlobalRuntime; import static org.opensearch.datafusion.DataFusionQueryJNI.createGlobalRuntime; +import static org.opensearch.datafusion.DataFusionQueryJNI.createTokioRuntime; /** * Global runtime environment for DataFusion operations. @@ -18,12 +19,14 @@ public class GlobalRuntimeEnv implements AutoCloseable { // ptr to runtime environment in df private final long ptr; + private final long tokio_runtime_ptr; /** * Creates a new global runtime environment. */ public GlobalRuntimeEnv() { this.ptr = createGlobalRuntime(); + this.tokio_runtime_ptr = createTokioRuntime(); } /** @@ -34,6 +37,10 @@ public long getPointer() { return ptr; } + public long getTokioRuntimePtr() { + return tokio_runtime_ptr; + } + @Override public void close() { closeGlobalRuntime(this.ptr); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 6eda08fa8db9b..54f50ed566755 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -39,7 +39,8 @@ public String source() { @Override public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native - long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.getSubstraitBytes()); + // TODO : change RunTimePtr + long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.getSubstraitBytes(), 0); RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); while(stream.hasNext()) { for(SearchResultsCollector collector : collectors) { @@ -49,8 +50,8 @@ public void search(DatafusionQuery datafusionQuery, List> collectors) throws throw new UnsupportedOperationException(); } - default long search(Q query) throws IOException { + default long search(Q query, Long runtimePtr) throws IOException { throw new UnsupportedOperationException(); } } diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index c87b38e91bc95..eb48f0beee360 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -434,7 +434,6 @@ public IndexShard( final ClusterApplierService clusterApplierService, @Nullable final MergedSegmentPublisher mergedSegmentPublisher, @Nullable final ReferencedSegmentsPublisher referencedSegmentsPublisher, - final SearchExecutionEngine searchExecutionEngine, PluginsService pluginsService ) throws IOException { super(shardRouting.shardId(), indexSettings); From 7a935b29ac60199147ab011270a731bced640b65 Mon Sep 17 00:00:00 2001 From: Aniket Modak Date: Fri, 26 Sep 2025 22:04:39 +0530 Subject: [PATCH 015/112] added global row id optimizer and tests for query phase --- plugins/engine-datafusion/build.gradle | 6 +- plugins/engine-datafusion/jni/Cargo.toml | 11 +- plugins/engine-datafusion/jni/src/lib.rs | 106 +- .../jni/src/listing_table.rs | 1556 +++++++++++++++++ .../jni/src/row_id_optimizer.rs | 291 +++ .../datafusion/DataFusionQueryJNI.java | 2 +- .../datafusion/search/DatafusionReader.java | 4 +- .../datafusion/search/DatafusionSearcher.java | 4 +- .../datafusion/DataFusionServiceTests.java | 116 +- .../src/test/resources/substrait_plan.pb | Bin 0 -> 1409 bytes 10 files changed, 2061 insertions(+), 35 deletions(-) create mode 100644 plugins/engine-datafusion/jni/src/listing_table.rs create mode 100644 plugins/engine-datafusion/jni/src/row_id_optimizer.rs create mode 100644 plugins/engine-datafusion/src/test/resources/substrait_plan.pb diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index f1a8d1ef7a2e0..1d839a168bd37 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -43,7 +43,7 @@ dependencies { implementation "org.apache.arrow:arrow-c-data:17.0.0" implementation "org.apache.arrow:arrow-format:17.0.0" // SLF4J API for Arrow logging compatibility - implementation "org.slf4j:slf4j-api:2.0.17" + implementation "org.slf4j:slf4j-api:${versions.slf4j}" // CheckerFramework annotations required by Arrow 17.0.0 implementation "org.checkerframework:checker-qual:3.42.0" // FlatBuffers dependency required by Arrow 17.0.0 @@ -172,7 +172,9 @@ clean { test { // Set system property to help tests find the native library - systemProperty 'java.library.path', file('src/main/resources/native').absolutePath + jvmArgs += ["--add-opens", "java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED"] + + systemProperty 'java.library.path', file('src/main/resources/native').absolutePath } yamlRestTest { diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 805db2e7be77c..4dbb5374f7443 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -12,9 +12,11 @@ crate-type = ["cdylib"] [dependencies] # DataFusion dependencies datafusion = "49.0.0" +datafusion-expr = "49.0.0" +datafusion-datasource = "49.0.0" arrow-json = "55.2" -#arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } -arrow = "55.2.0" +arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } +#arrow = "55.2.0" arrow-array = "55.2.0" arrow-schema = "55.2.0" arrow-buffer = "55.2.0" @@ -56,6 +58,11 @@ substrait = "0.47" tempfile = "3.0" chrono = "0.4.41" +async-trait = "0.1.89" +itertools = "0.14.0" +rstest = "0.26.1" +regex = "1.11.2" + [build-dependencies] cbindgen = "0.27" diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index b48bf887ac1e6..d45d3a88f5025 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -5,19 +5,25 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ - -use jni::objects::{JByteArray, JClass}; +use std::ptr::addr_of_mut; +use jni::objects::{JByteArray, JClass, JObject}; use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; use std::sync::Arc; +use arrow_array::{Array, StructArray}; +use arrow_array::ffi::FFI_ArrowArray; +use arrow_schema::DataType; +use arrow_schema::ffi::FFI_ArrowSchema; mod util; +mod row_id_optimizer; +mod listing_table; use datafusion::execution::context::SessionContext; -use crate::util::{create_object_meta_from_filenames, parse_string_arr}; +use crate::util::{create_object_meta_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok}; use datafusion::datasource::file_format::csv::CsvFormat; -use datafusion::datasource::listing::{ListingOptions, ListingTable, ListingTableConfig, ListingTableUrl}; +use datafusion::datasource::listing::{ListingTableUrl}; use datafusion::execution::cache::cache_manager::CacheManagerConfig; use datafusion::execution::cache::cache_unit::DefaultListFilesCache; use datafusion::execution::cache::CacheAccessor; @@ -25,12 +31,16 @@ use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; use datafusion::prelude::SessionConfig; use datafusion::DATAFUSION_VERSION; use datafusion::datasource::file_format::parquet::ParquetFormat; +use datafusion::physical_plan::SendableRecordBatchStream; use datafusion_substrait::logical_plan::consumer::from_substrait_plan; use datafusion_substrait::substrait::proto::Plan; +use futures::TryStreamExt; use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; use tokio::runtime::Runtime; +use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; +use crate::row_id_optimizer::FilterRowIdOptimizer; /// Create a new DataFusion session context #[no_mangle] @@ -135,7 +145,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeSe #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createReader( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createDatafusionReader( mut env: JNIEnv, _class: JClass, table_path: JString, @@ -185,7 +195,7 @@ impl ShardView { #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeExecuteSubstraitQuery( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeSubstraitQuery( mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, @@ -205,15 +215,28 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager(CacheManagerConfig::default() - .with_list_files_cache(Some(list_file_cache))).build().unwrap(); - - let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + //.with_list_files_cache(Some(list_file_cache)) TODO: //Fix this + ).build().unwrap(); + + // TODO: get config from CSV DataFormat + let mut config = SessionConfig::new(); + // config.options_mut().execution.parquet.pushdown_filters = true; + + let state = datafusion::execution::SessionStateBuilder::new() + .with_config(config) + .with_runtime_env(Arc::from(runtime_env)) + .with_default_features() + // .with_optimizer_rule(Arc::new(OptimizeRowId)) + // .with_physical_optimizer_rule(Arc::new(FilterRowIdOptimizer)) // TODO: enable only for query phase + .build(); + let ctx = SessionContext::new_with_state(state); // Create default parquet options let file_format = ParquetFormat::new(); let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".parquet"); + .with_file_extension(".parquet"); // TODO: take this as parameter + // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase // Ideally the executor will give this runtime_ptr.block_on(async { @@ -229,7 +252,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeE // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table(shard_id, provider) + ctx.register_table("logs", provider) .expect("Failed to attach the Table"); }); @@ -345,4 +368,65 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( + mut env: JNIEnv, + _class: JClass, + runtime_ptr: jlong, + stream: jlong, + callback: JObject, +) { + let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; + + let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; + runtime.block_on(async { + //let fetch_start = std::time::Instant::now(); + let next = stream.try_next().await; + //let fetch_time = fetch_start.elapsed(); + match next { + Ok(Some(batch)) => { + //let convert_start = std::time::Instant::now(); + // Convert to struct array for compatibility with FFI + //println!("Num rows : {}", batch.num_rows()); + let struct_array: StructArray = batch.into(); + let array_data = struct_array.into_data(); + let mut ffi_array = FFI_ArrowArray::new(&array_data); + //let convert_time = convert_start.elapsed(); + // ffi_array must remain alive until after the callback is called + // let callback_start = std::time::Instant::now(); + set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_array)); + // let callback_time = callback_start.elapsed(); + // println!("Fetch: {:?}, Convert: {:?}, Callback: {:?}", + // fetch_time, convert_time, callback_time); + } + Ok(None) => { + set_object_result_ok(&mut env, callback, 0 as *mut FFI_ArrowSchema); + } + Err(err) => { + set_object_result_error(&mut env, callback, &err); + } + } + //println!("Total time: {:?}", start.elapsed()); + }); +} +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchema( + mut env: JNIEnv, + _class: JClass, + stream: jlong, + callback: JObject, +) { + let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; + let schema = stream.schema(); + let ffi_schema = FFI_ArrowSchema::try_from(&*schema); + match ffi_schema { + Ok(mut ffi_schema) => { + // ffi_schema must remain alive until after the callback is called + set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_schema)); + } + Err(err) => { + set_object_result_error(&mut env, callback, &err); + } + } +} diff --git a/plugins/engine-datafusion/jni/src/listing_table.rs b/plugins/engine-datafusion/jni/src/listing_table.rs new file mode 100644 index 0000000000000..a28a6292ec3c1 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/listing_table.rs @@ -0,0 +1,1556 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +//! The table implementation. + +use datafusion::datasource::listing::{ + helpers::{expr_applicable_for_cols, pruned_partition_list}, + ListingTableUrl, PartitionedFile, +}; +use datafusion::{ + datasource::file_format::{file_compression_type::FileCompressionType, FileFormat}, + datasource::{create_ordering, physical_plan::FileSinkConfig}, + execution::context::SessionState, +}; +use arrow::datatypes::{DataType, Field, SchemaBuilder, SchemaRef}; +use arrow_schema::Schema; +use async_trait::async_trait; +use datafusion::catalog::{Session, TableProvider}; +use datafusion::common::{config_datafusion_err, config_err, internal_err, plan_err, project_schema, stats::Precision, Constraints, DataFusionError, Result, ScalarValue, SchemaExt}; +use datafusion_datasource::{ + compute_all_files_statistics, + file::FileSource, + file_groups::FileGroup, + file_scan_config::{FileScanConfig, FileScanConfigBuilder}, + schema_adapter::{DefaultSchemaAdapterFactory, SchemaAdapter, SchemaAdapterFactory}, +}; +use datafusion::execution::{ + cache::{cache_manager::FileStatisticsCache, cache_unit::DefaultFileStatisticsCache}, + config::SessionConfig, +}; +use datafusion_expr::{ + dml::InsertOp, Expr, SortExpr, TableProviderFilterPushDown, TableType, +}; +use datafusion::physical_expr::schema_rewriter::PhysicalExprAdapterFactory; +use datafusion::physical_expr_common::sort_expr::LexOrdering; +use datafusion::physical_plan::{empty::EmptyExec, ExecutionPlan, Statistics}; +use futures::{future, stream, Stream, StreamExt, TryStreamExt}; +use itertools::Itertools; +use object_store::ObjectStore; +use std::{any::Any, collections::HashMap, str::FromStr, sync::Arc}; +use regex::Regex; + +/// Indicates the source of the schema for a [`ListingTable`] +// PartialEq required for assert_eq! in tests +#[derive(Debug, Clone, Copy, PartialEq, Default)] +pub enum SchemaSource { + /// Schema is not yet set (initial state) + #[default] + Unset, + /// Schema was inferred from first table_path + Inferred, + /// Schema was specified explicitly via with_schema + Specified, +} + +/// Configuration for creating a [`ListingTable`] +/// +/// # Schema Evolution Support +/// +/// This configuration supports schema evolution through the optional +/// [`SchemaAdapterFactory`]. You might want to override the default factory when you need: +/// +/// - **Type coercion requirements**: When you need custom logic for converting between +/// different Arrow data types (e.g., Int32 ↔ Int64, Utf8 ↔ LargeUtf8) +/// - **Column mapping**: You need to map columns with a legacy name to a new name +/// - **Custom handling of missing columns**: By default they are filled in with nulls, but you may e.g. want to fill them in with `0` or `""`. +/// +/// If not specified, a [`DefaultSchemaAdapterFactory`] will be used, which handles +/// basic schema compatibility cases. +/// +#[derive(Debug, Clone, Default)] +pub struct ListingTableConfig { + /// Paths on the `ObjectStore` for creating `ListingTable`. + /// They should share the same schema and object store. + pub table_paths: Vec, + /// Optional `SchemaRef` for the to be created `ListingTable`. + /// + /// See details on [`ListingTableConfig::with_schema`] + pub file_schema: Option, + /// Optional [`ListingOptions`] for the to be created [`ListingTable`]. + /// + /// See details on [`ListingTableConfig::with_listing_options`] + pub options: Option, + /// Tracks the source of the schema information + schema_source: SchemaSource, + /// Optional [`SchemaAdapterFactory`] for creating schema adapters + schema_adapter_factory: Option>, + /// Optional [`PhysicalExprAdapterFactory`] for creating physical expression adapters + expr_adapter_factory: Option>, +} + +impl ListingTableConfig { + /// Creates new [`ListingTableConfig`] for reading the specified URL + pub fn new(table_path: ListingTableUrl) -> Self { + Self { + table_paths: vec![table_path], + ..Default::default() + } + } + + /// Creates new [`ListingTableConfig`] with multiple table paths. + /// + /// See [`Self::infer_options`] for details on what happens with multiple paths + pub fn new_with_multi_paths(table_paths: Vec) -> Self { + Self { + table_paths, + ..Default::default() + } + } + + /// Returns the source of the schema for this configuration + pub fn schema_source(&self) -> SchemaSource { + self.schema_source + } + /// Set the `schema` for the overall [`ListingTable`] + /// + /// [`ListingTable`] will automatically coerce, when possible, the schema + /// for individual files to match this schema. + /// + /// If a schema is not provided, it is inferred using + /// [`Self::infer_schema`]. + /// + /// If the schema is provided, it must contain only the fields in the file + /// without the table partitioning columns. + /// + /// # Example: Specifying Table Schema + /// ```rust + /// # use std::sync::Arc; + /// # use datafusion::datasource::listing::{ListingTableConfig, ListingOptions, ListingTableUrl}; + /// # use datafusion::datasource::file_format::parquet::ParquetFormat; + /// # use arrow::datatypes::{Schema, Field, DataType}; + /// # let table_paths = ListingTableUrl::parse("file:///path/to/data").unwrap(); + /// # let listing_options = ListingOptions::new(Arc::new(ParquetFormat::default())); + /// let schema = Arc::new(Schema::new(vec![ + /// Field::new("id", DataType::Int64, false), + /// Field::new("name", DataType::Utf8, true), + /// ])); + /// + /// let config = ListingTableConfig::new(table_paths) + /// .with_listing_options(listing_options) // Set options first + /// .with_schema(schema); // Then set schema + /// ``` + pub fn with_schema(self, schema: SchemaRef) -> Self { + // Note: We preserve existing options state, but downstream code may expect + // options to be set. Consider calling with_listing_options() or infer_options() + // before operations that require options to be present. + debug_assert!( + self.options.is_some() || cfg!(test), + "ListingTableConfig::with_schema called without options set. \ + Consider calling with_listing_options() or infer_options() first to avoid panics in downstream code." + ); + + Self { + file_schema: Some(schema), + schema_source: SchemaSource::Specified, + ..self + } + } + + /// Add `listing_options` to [`ListingTableConfig`] + /// + /// If not provided, format and other options are inferred via + /// [`Self::infer_options`]. + /// + /// # Example: Configuring Parquet Files with Custom Options + /// ```rust + /// # use std::sync::Arc; + /// # use datafusion::datasource::listing::{ListingTableConfig, ListingOptions, ListingTableUrl}; + /// # use datafusion::datasource::file_format::parquet::ParquetFormat; + /// # let table_paths = ListingTableUrl::parse("file:///path/to/data").unwrap(); + /// let options = ListingOptions::new(Arc::new(ParquetFormat::default())) + /// .with_file_extension(".parquet") + /// .with_collect_stat(true); + /// + /// let config = ListingTableConfig::new(table_paths) + /// .with_listing_options(options); // Configure file format and options + /// ``` + pub fn with_listing_options(self, listing_options: ListingOptions) -> Self { + // Note: This method properly sets options, but be aware that downstream + // methods like infer_schema() and try_new() require both schema and options + // to be set to function correctly. + debug_assert!( + !self.table_paths.is_empty() || cfg!(test), + "ListingTableConfig::with_listing_options called without table_paths set. \ + Consider calling new() or new_with_multi_paths() first to establish table paths." + ); + + Self { + options: Some(listing_options), + ..self + } + } + + /// Returns a tuple of `(file_extension, optional compression_extension)` + /// + /// For example a path ending with blah.test.csv.gz returns `("csv", Some("gz"))` + /// For example a path ending with blah.test.csv returns `("csv", None)` + fn infer_file_extension_and_compression_type( + path: &str, + ) -> Result<(String, Option)> { + let mut exts = path.rsplit('.'); + + let splitted = exts.next().unwrap_or(""); + + let file_compression_type = FileCompressionType::from_str(splitted) + .unwrap_or(FileCompressionType::UNCOMPRESSED); + + if file_compression_type.is_compressed() { + let splitted2 = exts.next().unwrap_or(""); + Ok((splitted2.to_string(), Some(splitted.to_string()))) + } else { + Ok((splitted.to_string(), None)) + } + } + + /// Infer `ListingOptions` based on `table_path` and file suffix. + /// + /// The format is inferred based on the first `table_path`. + pub async fn infer_options(self, state: &dyn Session) -> Result { + let store = if let Some(url) = self.table_paths.first() { + state.runtime_env().object_store(url)? + } else { + return Ok(self); + }; + + let file = self + .table_paths + .first() + .unwrap() + .list_all_files(state, store.as_ref(), "") + .await? + .next() + .await + .ok_or_else(|| DataFusionError::Internal("No files for table".into()))??; + + let (file_extension, maybe_compression_type) = + ListingTableConfig::infer_file_extension_and_compression_type( + file.location.as_ref(), + )?; + + let mut format_options = HashMap::new(); + if let Some(ref compression_type) = maybe_compression_type { + format_options + .insert("format.compression".to_string(), compression_type.clone()); + } + let state = state.as_any().downcast_ref::().unwrap(); + let file_format = state + .get_file_format_factory(&file_extension) + .ok_or(config_datafusion_err!( + "No file_format found with extension {file_extension}" + ))? + .create(state, &format_options)?; + + let listing_file_extension = + if let Some(compression_type) = maybe_compression_type { + format!("{}.{}", &file_extension, &compression_type) + } else { + file_extension + }; + + let listing_options = ListingOptions::new(file_format) + .with_file_extension(listing_file_extension) + .with_target_partitions(state.config().target_partitions()) + .with_collect_stat(state.config().collect_statistics()); + + Ok(Self { + table_paths: self.table_paths, + file_schema: self.file_schema, + options: Some(listing_options), + schema_source: self.schema_source, + schema_adapter_factory: self.schema_adapter_factory, + expr_adapter_factory: self.expr_adapter_factory, + }) + } + + /// Infer the [`SchemaRef`] based on `table_path`s. + /// + /// This method infers the table schema using the first `table_path`. + /// See [`ListingOptions::infer_schema`] for more details + /// + /// # Errors + /// * if `self.options` is not set. See [`Self::with_listing_options`] + pub async fn infer_schema(self, state: &dyn Session) -> Result { + match self.options { + Some(options) => { + let ListingTableConfig { + table_paths, + file_schema, + options: _, + schema_source, + schema_adapter_factory, + expr_adapter_factory: physical_expr_adapter_factory, + } = self; + + let (schema, new_schema_source) = match file_schema { + Some(schema) => (schema, schema_source), // Keep existing source if schema exists + None => { + if let Some(url) = table_paths.first() { + ( + options.infer_schema(state, url).await?, + SchemaSource::Inferred, + ) + } else { + (Arc::new(Schema::empty()), SchemaSource::Inferred) + } + } + }; + + Ok(Self { + table_paths, + file_schema: Some(schema), + options: Some(options), + schema_source: new_schema_source, + schema_adapter_factory, + expr_adapter_factory: physical_expr_adapter_factory, + }) + } + None => internal_err!("No `ListingOptions` set for inferring schema"), + } + } + + /// Convenience method to call both [`Self::infer_options`] and [`Self::infer_schema`] + pub async fn infer(self, state: &dyn Session) -> Result { + self.infer_options(state).await?.infer_schema(state).await + } + + /// Infer the partition columns from `table_paths`. + /// + /// # Errors + /// * if `self.options` is not set. See [`Self::with_listing_options`] + pub async fn infer_partitions_from_path(self, state: &dyn Session) -> Result { + match self.options { + Some(options) => { + let Some(url) = self.table_paths.first() else { + return config_err!("No table path found"); + }; + let partitions = options + .infer_partitions(state, url) + .await? + .into_iter() + .map(|col_name| { + ( + col_name, + DataType::Dictionary( + Box::new(DataType::UInt16), + Box::new(DataType::Utf8), + ), + ) + }) + .collect::>(); + let options = options.with_table_partition_cols(partitions); + Ok(Self { + table_paths: self.table_paths, + file_schema: self.file_schema, + options: Some(options), + schema_source: self.schema_source, + schema_adapter_factory: self.schema_adapter_factory, + expr_adapter_factory: self.expr_adapter_factory, + }) + } + None => config_err!("No `ListingOptions` set for inferring schema"), + } + } + + /// Set the [`SchemaAdapterFactory`] for the [`ListingTable`] + /// + /// The schema adapter factory is used to create schema adapters that can + /// handle schema evolution and type conversions when reading files with + /// different schemas than the table schema. + /// + /// If not provided, a default schema adapter factory will be used. + /// + /// # Example: Custom Schema Adapter for Type Coercion + /// ```rust + /// # use std::sync::Arc; + /// # use datafusion::datasource::listing::{ListingTableConfig, ListingOptions, ListingTableUrl}; + /// # use datafusion::datasource::schema_adapter::{SchemaAdapterFactory, SchemaAdapter}; + /// # use datafusion::datasource::file_format::parquet::ParquetFormat; + /// # use arrow::datatypes::{SchemaRef, Schema, Field, DataType}; + /// # + /// # #[derive(Debug)] + /// # struct MySchemaAdapterFactory; + /// # impl SchemaAdapterFactory for MySchemaAdapterFactory { + /// # fn create(&self, _projected_table_schema: SchemaRef, _file_schema: SchemaRef) -> Box { + /// # unimplemented!() + /// # } + /// # } + /// # let table_paths = ListingTableUrl::parse("file:///path/to/data").unwrap(); + /// # let listing_options = ListingOptions::new(Arc::new(ParquetFormat::default())); + /// # let table_schema = Arc::new(Schema::new(vec![Field::new("id", DataType::Int64, false)])); + /// let config = ListingTableConfig::new(table_paths) + /// .with_listing_options(listing_options) + /// .with_schema(table_schema) + /// .with_schema_adapter_factory(Arc::new(MySchemaAdapterFactory)); + /// ``` + pub fn with_schema_adapter_factory( + self, + schema_adapter_factory: Arc, + ) -> Self { + Self { + schema_adapter_factory: Some(schema_adapter_factory), + ..self + } + } + + /// Get the [`SchemaAdapterFactory`] for this configuration + pub fn schema_adapter_factory(&self) -> Option<&Arc> { + self.schema_adapter_factory.as_ref() + } + + /// Set the [`PhysicalExprAdapterFactory`] for the [`ListingTable`] + /// + /// The expression adapter factory is used to create physical expression adapters that can + /// handle schema evolution and type conversions when evaluating expressions + /// with different schemas than the table schema. + /// + /// If not provided, a default physical expression adapter factory will be used unless a custom + /// `SchemaAdapterFactory` is set, in which case only the `SchemaAdapterFactory` will be used. + /// + /// See for details on this transition. + pub fn with_expr_adapter_factory( + self, + expr_adapter_factory: Arc, + ) -> Self { + Self { + expr_adapter_factory: Some(expr_adapter_factory), + ..self + } + } +} + +/// Options for creating a [`ListingTable`] +#[derive(Clone, Debug)] +pub struct ListingOptions { + /// A suffix on which files should be filtered (leave empty to + /// keep all files on the path) + pub file_extension: String, + /// The file format + pub format: Arc, + /// The expected partition column names in the folder structure. + /// See [Self::with_table_partition_cols] for details + pub table_partition_cols: Vec<(String, DataType)>, + /// Set true to try to guess statistics from the files. + /// This can add a lot of overhead as it will usually require files + /// to be opened and at least partially parsed. + pub collect_stat: bool, + /// Group files to avoid that the number of partitions exceeds + /// this limit + pub target_partitions: usize, + /// Optional pre-known sort order(s). Must be `SortExpr`s. + /// + /// DataFusion may take advantage of this ordering to omit sorts + /// or use more efficient algorithms. Currently sortedness must be + /// provided if it is known by some external mechanism, but may in + /// the future be automatically determined, for example using + /// parquet metadata. + /// + /// See + /// + /// NOTE: This attribute stores all equivalent orderings (the outer `Vec`) + /// where each ordering consists of an individual lexicographic + /// ordering (encapsulated by a `Vec`). If there aren't + /// multiple equivalent orderings, the outer `Vec` will have a + /// single element. + pub file_sort_order: Vec>, +} + +impl ListingOptions { + /// Creates an options instance with the given format + /// Default values: + /// - use default file extension filter + /// - no input partition to discover + /// - one target partition + /// - do not collect statistics + pub fn new(format: Arc) -> Self { + Self { + file_extension: format.get_ext(), + format, + table_partition_cols: vec![], + collect_stat: false, + target_partitions: 1, + file_sort_order: vec![], + } + } + + /// Set options from [`SessionConfig`] and returns self. + /// + /// Currently this sets `target_partitions` and `collect_stat` + /// but if more options are added in the future that need to be coordinated + /// they will be synchronized thorugh this method. + pub fn with_session_config_options(mut self, config: &SessionConfig) -> Self { + self = self.with_target_partitions(config.target_partitions()); + self = self.with_collect_stat(config.collect_statistics()); + self + } + + /// Set file extension on [`ListingOptions`] and returns self. + /// + /// # Example + /// ``` + /// # use std::sync::Arc; + /// # use datafusion::prelude::SessionContext; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_file_extension(".parquet"); + /// + /// assert_eq!(listing_options.file_extension, ".parquet"); + /// ``` + pub fn with_file_extension(mut self, file_extension: impl Into) -> Self { + self.file_extension = file_extension.into(); + self + } + + /// Optionally set file extension on [`ListingOptions`] and returns self. + /// + /// If `file_extension` is `None`, the file extension will not be changed + /// + /// # Example + /// ``` + /// # use std::sync::Arc; + /// # use datafusion::prelude::SessionContext; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// let extension = Some(".parquet"); + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_file_extension_opt(extension); + /// + /// assert_eq!(listing_options.file_extension, ".parquet"); + /// ``` + pub fn with_file_extension_opt(mut self, file_extension: Option) -> Self + where + S: Into, + { + if let Some(file_extension) = file_extension { + self.file_extension = file_extension.into(); + } + self + } + + /// Set `table partition columns` on [`ListingOptions`] and returns self. + /// + /// "partition columns," used to support [Hive Partitioning], are + /// columns added to the data that is read, based on the folder + /// structure where the data resides. + /// + /// For example, give the following files in your filesystem: + /// + /// ```text + /// /mnt/nyctaxi/year=2022/month=01/tripdata.parquet + /// /mnt/nyctaxi/year=2021/month=12/tripdata.parquet + /// /mnt/nyctaxi/year=2021/month=11/tripdata.parquet + /// ``` + /// + /// A [`ListingTable`] created at `/mnt/nyctaxi/` with partition + /// columns "year" and "month" will include new `year` and `month` + /// columns while reading the files. The `year` column would have + /// value `2022` and the `month` column would have value `01` for + /// the rows read from + /// `/mnt/nyctaxi/year=2022/month=01/tripdata.parquet` + /// + ///# Notes + /// + /// - If only one level (e.g. `year` in the example above) is + /// specified, the other levels are ignored but the files are + /// still read. + /// + /// - Files that don't follow this partitioning scheme will be + /// ignored. + /// + /// - Since the columns have the same value for all rows read from + /// each individual file (such as dates), they are typically + /// dictionary encoded for efficiency. You may use + /// [`wrap_partition_type_in_dict`] to request a + /// dictionary-encoded type. + /// + /// - The partition columns are solely extracted from the file path. Especially they are NOT part of the parquet files itself. + /// + /// # Example + /// + /// ``` + /// # use std::sync::Arc; + /// # use arrow::datatypes::DataType; + /// # use datafusion::prelude::col; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// + /// // listing options for files with paths such as `/mnt/data/col_a=x/col_b=y/data.parquet` + /// // `col_a` and `col_b` will be included in the data read from those files + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_table_partition_cols(vec![("col_a".to_string(), DataType::Utf8), + /// ("col_b".to_string(), DataType::Utf8)]); + /// + /// assert_eq!(listing_options.table_partition_cols, vec![("col_a".to_string(), DataType::Utf8), + /// ("col_b".to_string(), DataType::Utf8)]); + /// ``` + /// + /// [Hive Partitioning]: https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.1.3/bk_system-admin-guide/content/hive_partitioned_tables.html + /// [`wrap_partition_type_in_dict`]: crate::datasource::physical_plan::wrap_partition_type_in_dict + pub fn with_table_partition_cols( + mut self, + table_partition_cols: Vec<(String, DataType)>, + ) -> Self { + self.table_partition_cols = table_partition_cols; + self + } + + /// Set stat collection on [`ListingOptions`] and returns self. + /// + /// ``` + /// # use std::sync::Arc; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_collect_stat(true); + /// + /// assert_eq!(listing_options.collect_stat, true); + /// ``` + pub fn with_collect_stat(mut self, collect_stat: bool) -> Self { + self.collect_stat = collect_stat; + self + } + + /// Set number of target partitions on [`ListingOptions`] and returns self. + /// + /// ``` + /// # use std::sync::Arc; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_target_partitions(8); + /// + /// assert_eq!(listing_options.target_partitions, 8); + /// ``` + pub fn with_target_partitions(mut self, target_partitions: usize) -> Self { + self.target_partitions = target_partitions; + self + } + + /// Set file sort order on [`ListingOptions`] and returns self. + /// + /// ``` + /// # use std::sync::Arc; + /// # use datafusion::prelude::col; + /// # use datafusion::datasource::{listing::ListingOptions, file_format::parquet::ParquetFormat}; + /// + /// // Tell datafusion that the files are sorted by column "a" + /// let file_sort_order = vec![vec![ + /// col("a").sort(true, true) + /// ]]; + /// + /// let listing_options = ListingOptions::new(Arc::new( + /// ParquetFormat::default() + /// )) + /// .with_file_sort_order(file_sort_order.clone()); + /// + /// assert_eq!(listing_options.file_sort_order, file_sort_order); + /// ``` + pub fn with_file_sort_order(mut self, file_sort_order: Vec>) -> Self { + self.file_sort_order = file_sort_order; + self + } + + /// Infer the schema of the files at the given path on the provided object store. + /// + /// If the table_path contains one or more files (i.e. it is a directory / + /// prefix of files) their schema is merged by calling [`FileFormat::infer_schema`] + /// + /// Note: The inferred schema does not include any partitioning columns. + /// + /// This method is called as part of creating a [`ListingTable`]. + pub async fn infer_schema<'a>( + &'a self, + state: &dyn Session, + table_path: &'a ListingTableUrl, + ) -> Result { + let store = state.runtime_env().object_store(table_path)?; + + let files: Vec<_> = table_path + .list_all_files(state, store.as_ref(), &self.file_extension) + .await? + // Empty files cannot affect schema but may throw when trying to read for it + .try_filter(|object_meta| future::ready(object_meta.size > 0)) + .try_collect() + .await?; + + let schema = self.format.infer_schema(state, &store, &files).await?; + + Ok(schema) + } + + /// Infers the partition columns stored in `LOCATION` and compares + /// them with the columns provided in `PARTITIONED BY` to help prevent + /// accidental corrupts of partitioned tables. + /// + /// Allows specifying partial partitions. + pub async fn validate_partitions( + &self, + state: &dyn Session, + table_path: &ListingTableUrl, + ) -> Result<()> { + if self.table_partition_cols.is_empty() { + return Ok(()); + } + + if !table_path.is_collection() { + return plan_err!( + "Can't create a partitioned table backed by a single file, \ + perhaps the URL is missing a trailing slash?" + ); + } + + let inferred = self.infer_partitions(state, table_path).await?; + + // no partitioned files found on disk + if inferred.is_empty() { + return Ok(()); + } + + let table_partition_names = self + .table_partition_cols + .iter() + .map(|(col_name, _)| col_name.clone()) + .collect_vec(); + + if inferred.len() < table_partition_names.len() { + return plan_err!( + "Inferred partitions to be {:?}, but got {:?}", + inferred, + table_partition_names + ); + } + + // match prefix to allow creating tables with partial partitions + for (idx, col) in table_partition_names.iter().enumerate() { + if &inferred[idx] != col { + return plan_err!( + "Inferred partitions to be {:?}, but got {:?}", + inferred, + table_partition_names + ); + } + } + + Ok(()) + } + + /// Infer the partitioning at the given path on the provided object store. + /// For performance reasons, it doesn't read all the files on disk + /// and therefore may fail to detect invalid partitioning. + pub(crate) async fn infer_partitions( + &self, + state: &dyn Session, + table_path: &ListingTableUrl, + ) -> Result> { + let store = state.runtime_env().object_store(table_path)?; + + // only use 10 files for inference + // This can fail to detect inconsistent partition keys + // A DFS traversal approach of the store can help here + let files: Vec<_> = table_path + .list_all_files(state, store.as_ref(), &self.file_extension) + .await? + .take(10) + .try_collect() + .await?; + + let stripped_path_parts = files.iter().map(|file| { + table_path + .strip_prefix(&file.location) + .unwrap() + .collect_vec() + }); + + let partition_keys = stripped_path_parts + .map(|path_parts| { + path_parts + .into_iter() + .rev() + .skip(1) // get parents only; skip the file itself + .rev() + .map(|s| s.split('=').take(1).collect()) + .collect_vec() + }) + .collect_vec(); + + match partition_keys.into_iter().all_equal_value() { + Ok(v) => Ok(v), + Err(None) => Ok(vec![]), + Err(Some(diff)) => { + let mut sorted_diff = [diff.0, diff.1]; + sorted_diff.sort(); + plan_err!("Found mixed partition values on disk {:?}", sorted_diff) + } + } + } +} + +/// Reads data from one or more files as a single table. +/// +/// Implements [`TableProvider`], a DataFusion data source. The files are read +/// using an [`ObjectStore`] instance, for example from local files or objects +/// from AWS S3. +/// +/// # Reading Directories +/// For example, given the `table1` directory (or object store prefix) +/// +/// ```text +/// table1 +/// ├── file1.parquet +/// └── file2.parquet +/// ``` +/// +/// A `ListingTable` would read the files `file1.parquet` and `file2.parquet` as +/// a single table, merging the schemas if the files have compatible but not +/// identical schemas. +/// +/// Given the `table2` directory (or object store prefix) +/// +/// ```text +/// table2 +/// ├── date=2024-06-01 +/// │ ├── file3.parquet +/// │ └── file4.parquet +/// └── date=2024-06-02 +/// └── file5.parquet +/// ``` +/// +/// A `ListingTable` would read the files `file3.parquet`, `file4.parquet`, and +/// `file5.parquet` as a single table, again merging schemas if necessary. +/// +/// Given the hive style partitioning structure (e.g,. directories named +/// `date=2024-06-01` and `date=2026-06-02`), `ListingTable` also adds a `date` +/// column when reading the table: +/// * The files in `table2/date=2024-06-01` will have the value `2024-06-01` +/// * The files in `table2/date=2024-06-02` will have the value `2024-06-02`. +/// +/// If the query has a predicate like `WHERE date = '2024-06-01'` +/// only the corresponding directory will be read. +/// +/// `ListingTable` also supports limit, filter and projection pushdown for formats that +/// support it as such as Parquet. +/// +/// # See Also +/// +/// 1. [`ListingTableConfig`]: Configuration options +/// 1. [`DataSourceExec`]: `ExecutionPlan` used by `ListingTable` +/// +/// [`DataSourceExec`]: crate::datasource::source::DataSourceExec +/// +/// # Example: Read a directory of parquet files using a [`ListingTable`] +/// +/// ```no_run +/// # use datafusion::prelude::SessionContext; +/// # use datafusion::error::Result; +/// # use std::sync::Arc; +/// # use datafusion::datasource::{ +/// # listing::{ +/// # ListingOptions, ListingTable, ListingTableConfig, ListingTableUrl, +/// # }, +/// # file_format::parquet::ParquetFormat, +/// # }; +/// # #[tokio::main] +/// # async fn main() -> Result<()> { +/// let ctx = SessionContext::new(); +/// let session_state = ctx.state(); +/// let table_path = "/path/to/parquet"; +/// +/// // Parse the path +/// let table_path = ListingTableUrl::parse(table_path)?; +/// +/// // Create default parquet options +/// let file_format = ParquetFormat::new(); +/// let listing_options = ListingOptions::new(Arc::new(file_format)) +/// .with_file_extension(".parquet"); +/// +/// // Resolve the schema +/// let resolved_schema = listing_options +/// .infer_schema(&session_state, &table_path) +/// .await?; +/// +/// let config = ListingTableConfig::new(table_path) +/// .with_listing_options(listing_options) +/// .with_schema(resolved_schema); +/// +/// // Create a new TableProvider +/// let provider = Arc::new(ListingTable::try_new(config)?); +/// +/// // This provider can now be read as a dataframe: +/// let df = ctx.read_table(provider.clone()); +/// +/// // or registered as a named table: +/// ctx.register_table("my_table", provider); +/// +/// # Ok(()) +/// # } +/// ``` +#[derive(Debug, Clone)] +pub struct ListingTable { + table_paths: Vec, + /// `file_schema` contains only the columns physically stored in the data files themselves. + /// - Represents the actual fields found in files like Parquet, CSV, etc. + /// - Used when reading the raw data from files + file_schema: SchemaRef, + /// `table_schema` combines `file_schema` + partition columns + /// - Partition columns are derived from directory paths (not stored in files) + /// - These are columns like "year=2022/month=01" in paths like `/data/year=2022/month=01/file.parquet` + table_schema: SchemaRef, + /// Indicates how the schema was derived (inferred or explicitly specified) + schema_source: SchemaSource, + options: ListingOptions, + definition: Option, + collected_statistics: FileStatisticsCache, + constraints: Constraints, + column_defaults: HashMap, + /// Optional [`SchemaAdapterFactory`] for creating schema adapters + schema_adapter_factory: Option>, + /// Optional [`PhysicalExprAdapterFactory`] for creating physical expression adapters + expr_adapter_factory: Option>, +} + +impl ListingTable { + /// Create new [`ListingTable`] + /// + /// See documentation and example on [`ListingTable`] and [`ListingTableConfig`] + pub fn try_new(config: ListingTableConfig) -> Result { + // Extract schema_source before moving other parts of the config + let schema_source = config.schema_source(); + + let file_schema = config + .file_schema + .ok_or_else(|| DataFusionError::Internal("No schema provided.".into()))?; + + let options = config.options.ok_or_else(|| { + DataFusionError::Internal("No ListingOptions provided".into()) + })?; + + // Add the partition columns to the file schema + let mut builder = SchemaBuilder::from(file_schema.as_ref().to_owned()); + for (part_col_name, part_col_type) in &options.table_partition_cols { + builder.push(Field::new(part_col_name, part_col_type.clone(), false)); + } + + let table_schema = Arc::new( + builder + .finish() + .with_metadata(file_schema.metadata().clone()), + ); + + let table = Self { + table_paths: config.table_paths, + file_schema, + table_schema, + schema_source, + options, + definition: None, + collected_statistics: Arc::new(DefaultFileStatisticsCache::default()), + constraints: Constraints::default(), + column_defaults: HashMap::new(), + schema_adapter_factory: config.schema_adapter_factory, + expr_adapter_factory: config.expr_adapter_factory, + }; + + Ok(table) + } + + /// Assign constraints + pub fn with_constraints(mut self, constraints: Constraints) -> Self { + self.constraints = constraints; + self + } + + /// Assign column defaults + pub fn with_column_defaults( + mut self, + column_defaults: HashMap, + ) -> Self { + self.column_defaults = column_defaults; + self + } + + /// Set the [`FileStatisticsCache`] used to cache parquet file statistics. + /// + /// Setting a statistics cache on the `SessionContext` can avoid refetching statistics + /// multiple times in the same session. + /// + /// If `None`, creates a new [`DefaultFileStatisticsCache`] scoped to this query. + pub fn with_cache(mut self, cache: Option) -> Self { + self.collected_statistics = + cache.unwrap_or_else(|| Arc::new(DefaultFileStatisticsCache::default())); + self + } + + /// Specify the SQL definition for this table, if any + pub fn with_definition(mut self, definition: Option) -> Self { + self.definition = definition; + self + } + + /// Get paths ref + pub fn table_paths(&self) -> &Vec { + &self.table_paths + } + + /// Get options ref + pub fn options(&self) -> &ListingOptions { + &self.options + } + + /// Get the schema source + pub fn schema_source(&self) -> SchemaSource { + self.schema_source + } + + /// Set the [`SchemaAdapterFactory`] for this [`ListingTable`] + /// + /// The schema adapter factory is used to create schema adapters that can + /// handle schema evolution and type conversions when reading files with + /// different schemas than the table schema. + /// + /// # Example: Adding Schema Evolution Support + /// ```rust + /// # use std::sync::Arc; + /// # use datafusion::datasource::listing::{ListingTable, ListingTableConfig, ListingOptions, ListingTableUrl}; + /// # use datafusion::datasource::schema_adapter::{DefaultSchemaAdapterFactory, SchemaAdapter}; + /// # use datafusion::datasource::file_format::parquet::ParquetFormat; + /// # use arrow::datatypes::{SchemaRef, Schema, Field, DataType}; + /// # let table_path = ListingTableUrl::parse("file:///path/to/data").unwrap(); + /// # let options = ListingOptions::new(Arc::new(ParquetFormat::default())); + /// # let schema = Arc::new(Schema::new(vec![Field::new("id", DataType::Int64, false)])); + /// # let config = ListingTableConfig::new(table_path).with_listing_options(options).with_schema(schema); + /// # let table = ListingTable::try_new(config).unwrap(); + /// let table_with_evolution = table + /// .with_schema_adapter_factory(Arc::new(DefaultSchemaAdapterFactory)); + /// ``` + /// See [`ListingTableConfig::with_schema_adapter_factory`] for an example of custom SchemaAdapterFactory. + pub fn with_schema_adapter_factory( + self, + schema_adapter_factory: Arc, + ) -> Self { + Self { + schema_adapter_factory: Some(schema_adapter_factory), + ..self + } + } + + /// Get the [`SchemaAdapterFactory`] for this table + pub fn schema_adapter_factory(&self) -> Option<&Arc> { + self.schema_adapter_factory.as_ref() + } + + /// Creates a schema adapter for mapping between file and table schemas + /// + /// Uses the configured schema adapter factory if available, otherwise falls back + /// to the default implementation. + fn create_schema_adapter(&self) -> Box { + let table_schema = self.schema(); + match &self.schema_adapter_factory { + Some(factory) => { + factory.create_with_projected_schema(Arc::clone(&table_schema)) + } + None => DefaultSchemaAdapterFactory::from_schema(Arc::clone(&table_schema)), + } + } + + /// Creates a file source and applies schema adapter factory if available + fn create_file_source_with_schema_adapter(&self) -> Result> { + let mut source = self.options.format.file_source(); + // Apply schema adapter to source if available + // + // The source will use this SchemaAdapter to adapt data batches as they flow up the plan. + // Note: ListingTable also creates a SchemaAdapter in `scan()` but that is only used to adapt collected statistics. + if let Some(factory) = &self.schema_adapter_factory { + source = source.with_schema_adapter_factory(Arc::clone(factory))?; + } + Ok(source) + } + + /// If file_sort_order is specified, creates the appropriate physical expressions + fn try_create_output_ordering(&self) -> Result> { + create_ordering(&self.table_schema, &self.options.file_sort_order) + } + + fn add_path_preserving_metadata(&self, file_groups: Vec) -> Vec { + let re = Regex::new(r"generation-(\d+)").unwrap(); + file_groups + .into_iter() + .map(|mut group| { + let new_files: Vec = group + .files() + .iter() + .map(|file| PartitionedFile { + object_meta: file.object_meta.clone(), + partition_values: { + let mut values = file.partition_values.clone(); + values.push(ScalarValue::Int32(Some( + re.captures(file.object_meta.location.as_ref()) + .and_then(|cap| cap.get(1)) + .and_then(|m| if(!m.as_str().is_empty()) { Some(m.as_str().parse::().ok().unwrap() - 1) } else { Some(0) }).unwrap_or_default() + ))); + values + }, + range: file.range.clone(), + statistics: file.statistics.clone(), + extensions: file.extensions.clone(), + metadata_size_hint: file.metadata_size_hint, + }) + .collect(); + + FileGroup::new(new_files).with_statistics(Arc::new(group.statistics_mut().cloned().unwrap_or_default())) + }) + .collect() + } +} + +// Expressions can be used for parttion pruning if they can be evaluated using +// only the partiton columns and there are partition columns. +fn can_be_evaluted_for_partition_pruning( + partition_column_names: &[&str], + expr: &Expr, +) -> bool { + !partition_column_names.is_empty() + && expr_applicable_for_cols(partition_column_names, expr) +} + +#[async_trait] +impl TableProvider for ListingTable { + fn as_any(&self) -> &dyn Any { + self + } + + fn schema(&self) -> SchemaRef { + Arc::clone(&self.table_schema) + } + + fn constraints(&self) -> Option<&Constraints> { + Some(&self.constraints) + } + + fn table_type(&self) -> TableType { + TableType::Base + } + + + + async fn scan( + &self, + state: &dyn Session, + projection: Option<&Vec>, + filters: &[Expr], + limit: Option, + ) -> Result> { + // extract types of partition columns + let table_partition_cols = self + .options + .table_partition_cols + .iter() + .map(|col| Ok(self.table_schema.field_with_name(&col.0)?.clone())) + .collect::>>()?; + + // let table_partition_col_names = table_partition_cols + // .iter() + // .map(|field| field.name().as_str()) + // .collect::>(); + // // If the filters can be resolved using only partition cols, there is no need to + // // pushdown it to TableScan, otherwise, `unhandled` pruning predicates will be generated + // let (partition_filters, filters): (Vec<_>, Vec<_>) = + // filters.iter().cloned().partition(|filter| { + // can_be_evaluted_for_partition_pruning(&table_partition_col_names, filter) + // }); + + // We should not limit the number of partitioned files to scan if there are filters and limit + // at the same time. This is because the limit should be applied after the filters are applied. + let statistic_file_limit = if filters.is_empty() { limit } else { None }; + + let (mut partitioned_file_lists, statistics) = self + .list_files_for_scan(state, &vec![], statistic_file_limit) + .await?; + // + // let (mut partitioned_file_lists, statistics) = self + // .list_files_for_scan(state, &partition_filters, statistic_file_limit) + // .await?; + + // if no files need to be read, return an `EmptyExec` + if partitioned_file_lists.is_empty() { + let projected_schema = project_schema(&self.schema(), projection)?; + return Ok(Arc::new(EmptyExec::new(projected_schema))); + } + + partitioned_file_lists = self.add_path_preserving_metadata(partitioned_file_lists); + + let output_ordering = self.try_create_output_ordering()?; + match state + .config_options() + .execution + .split_file_groups_by_statistics + .then(|| { + output_ordering.first().map(|output_ordering| { + FileScanConfig::split_groups_by_statistics_with_target_partitions( + &self.table_schema, + &partitioned_file_lists, + output_ordering, + self.options.target_partitions, + ) + }) + }) + .flatten() + { + Some(Err(e)) => log::debug!("failed to split file groups by statistics: {e}"), + Some(Ok(new_groups)) => { + if new_groups.len() <= self.options.target_partitions { + partitioned_file_lists = new_groups; + } else { + log::debug!("attempted to split file groups by statistics, but there were more file groups than target_partitions; falling back to unordered") + } + } + None => {} // no ordering required + }; + + let Some(object_store_url) = + self.table_paths.first().map(ListingTableUrl::object_store) + else { + return Ok(Arc::new(EmptyExec::new(Arc::new(Schema::empty())))); + }; + + let file_source = self.create_file_source_with_schema_adapter()?; + + // create the execution plan + self.options + .format + .create_physical_plan( + state, + FileScanConfigBuilder::new( + object_store_url, + Arc::clone(&self.file_schema), + file_source, + ) + .with_file_groups(partitioned_file_lists) + .with_constraints(self.constraints.clone()) + .with_statistics(statistics) + .with_projection(projection.cloned()) + .with_limit(limit) + .with_output_ordering(output_ordering) + .with_table_partition_cols(table_partition_cols) + .with_expr_adapter(self.expr_adapter_factory.clone()) + .build(), + ) + .await + } + + fn supports_filters_pushdown( + &self, + filters: &[&Expr], + ) -> Result> { + let partition_column_names = self + .options + .table_partition_cols + .iter() + .map(|col| col.0.as_str()) + .collect::>(); + filters + .iter() + .map(|filter| { + if can_be_evaluted_for_partition_pruning(&partition_column_names, filter) + { + // if filter can be handled by partition pruning, it is exact + return Ok(TableProviderFilterPushDown::Exact); + } + + Ok(TableProviderFilterPushDown::Inexact) + }) + .collect() + } + + fn get_table_definition(&self) -> Option<&str> { + self.definition.as_deref() + } + + async fn insert_into( + &self, + state: &dyn Session, + input: Arc, + insert_op: InsertOp, + ) -> Result> { + // Check that the schema of the plan matches the schema of this table. + self.schema() + .logically_equivalent_names_and_types(&input.schema())?; + + let table_path = &self.table_paths()[0]; + if !table_path.is_collection() { + return plan_err!( + "Inserting into a ListingTable backed by a single file is not supported, URL is possibly missing a trailing `/`. \ + To append to an existing file use StreamTable, e.g. by using CREATE UNBOUNDED EXTERNAL TABLE" + ); + } + + // Get the object store for the table path. + let store = state.runtime_env().object_store(table_path)?; + + let file_list_stream = pruned_partition_list( + state, + store.as_ref(), + table_path, + &[], + &self.options.file_extension, + &self.options.table_partition_cols, + ) + .await?; + + let file_group = file_list_stream.try_collect::>().await?.into(); + let keep_partition_by_columns = + state.config_options().execution.keep_partition_by_columns; + + // Sink related option, apart from format + let config = FileSinkConfig { + original_url: String::default(), + object_store_url: self.table_paths()[0].object_store(), + table_paths: self.table_paths().clone(), + file_group, + output_schema: self.schema(), + table_partition_cols: self.options.table_partition_cols.clone(), + insert_op, + keep_partition_by_columns, + file_extension: self.options().format.get_ext(), + }; + + let orderings = self.try_create_output_ordering()?; + // It is sufficient to pass only one of the equivalent orderings: + let order_requirements = orderings.into_iter().next().map(Into::into); + + self.options() + .format + .create_writer_physical_plan(input, state, config, order_requirements) + .await + } + + fn get_column_default(&self, column: &str) -> Option<&Expr> { + self.column_defaults.get(column) + } +} + +impl ListingTable { + /// Get the list of files for a scan as well as the file level statistics. + /// The list is grouped to let the execution plan know how the files should + /// be distributed to different threads / executors. + async fn list_files_for_scan<'a>( + &'a self, + ctx: &'a dyn Session, + filters: &'a [Expr], + limit: Option, + ) -> Result<(Vec, Statistics)> { + let store = if let Some(url) = self.table_paths.first() { + ctx.runtime_env().object_store(url)? + } else { + return Ok((vec![], Statistics::new_unknown(&self.file_schema))); + }; + // list files (with partitions) + let file_list = future::try_join_all(self.table_paths.iter().map(|table_path| { + pruned_partition_list( + ctx, + store.as_ref(), + table_path, + filters, + &self.options.file_extension, + &self.options.table_partition_cols, + ) + })) + .await?; + let meta_fetch_concurrency = + ctx.config_options().execution.meta_fetch_concurrency; + let file_list = stream::iter(file_list).flatten_unordered(meta_fetch_concurrency); + // collect the statistics if required by the config + let files = file_list + .map(|part_file| async { + let part_file = part_file?; + let statistics = if self.options.collect_stat { + self.do_collect_statistics(ctx, &store, &part_file).await? + } else { + Arc::new(Statistics::new_unknown(&self.file_schema)) + }; + Ok(part_file.with_statistics(statistics)) + }) + .boxed() + .buffer_unordered(ctx.config_options().execution.meta_fetch_concurrency); + + let (file_group, inexact_stats) = + get_files_with_limit(files, limit, self.options.collect_stat).await?; + + let file_groups = file_group.split_files(self.options.target_partitions); + let (mut file_groups, mut stats) = compute_all_files_statistics( + file_groups, + self.schema(), + self.options.collect_stat, + inexact_stats, + )?; + + let schema_adapter = self.create_schema_adapter(); + let (schema_mapper, _) = schema_adapter.map_schema(self.file_schema.as_ref())?; + + stats.column_statistics = + schema_mapper.map_column_statistics(&stats.column_statistics)?; + file_groups.iter_mut().try_for_each(|file_group| { + if let Some(stat) = file_group.statistics_mut() { + stat.column_statistics = + schema_mapper.map_column_statistics(&stat.column_statistics)?; + } + Ok::<_, DataFusionError>(()) + })?; + Ok((file_groups, stats)) + } + + /// Collects statistics for a given partitioned file. + /// + /// This method first checks if the statistics for the given file are already cached. + /// If they are, it returns the cached statistics. + /// If they are not, it infers the statistics from the file and stores them in the cache. + async fn do_collect_statistics( + &self, + ctx: &dyn Session, + store: &Arc, + part_file: &PartitionedFile, + ) -> Result> { + match self + .collected_statistics + .get_with_extra(&part_file.object_meta.location, &part_file.object_meta) + { + Some(statistics) => Ok(statistics), + None => { + let statistics = self + .options + .format + .infer_stats( + ctx, + store, + Arc::clone(&self.file_schema), + &part_file.object_meta, + ) + .await?; + let statistics = Arc::new(statistics); + self.collected_statistics.put_with_extra( + &part_file.object_meta.location, + Arc::clone(&statistics), + &part_file.object_meta, + ); + Ok(statistics) + } + } + } +} + +/// Processes a stream of partitioned files and returns a `FileGroup` containing the files. +/// +/// This function collects files from the provided stream until either: +/// 1. The stream is exhausted +/// 2. The accumulated number of rows exceeds the provided `limit` (if specified) +/// +/// # Arguments +/// * `files` - A stream of `Result` items to process +/// * `limit` - An optional row count limit. If provided, the function will stop collecting files +/// once the accumulated number of rows exceeds this limit +/// * `collect_stats` - Whether to collect and accumulate statistics from the files +/// +/// # Returns +/// A `Result` containing a `FileGroup` with the collected files +/// and a boolean indicating whether the statistics are inexact. +/// +/// # Note +/// The function will continue processing files if statistics are not available or if the +/// limit is not provided. If `collect_stats` is false, statistics won't be accumulated +/// but files will still be collected. +async fn get_files_with_limit( + files: impl Stream>, + limit: Option, + collect_stats: bool, +) -> Result<(FileGroup, bool)> { + let mut file_group = FileGroup::default(); + // Fusing the stream allows us to call next safely even once it is finished. + let mut all_files = Box::pin(files.fuse()); + enum ProcessingState { + ReadingFiles, + ReachedLimit, + } + + let mut state = ProcessingState::ReadingFiles; + let mut num_rows = Precision::Absent; + + while let Some(file_result) = all_files.next().await { + // Early exit if we've already reached our limit + if matches!(state, ProcessingState::ReachedLimit) { + break; + } + + let file = file_result?; + + // Update file statistics regardless of state + if collect_stats { + if let Some(file_stats) = &file.statistics { + num_rows = if file_group.is_empty() { + // For the first file, just take its row count + file_stats.num_rows + } else { + // For subsequent files, accumulate the counts + num_rows.add(&file_stats.num_rows) + }; + } + } + + // Always add the file to our group + file_group.push(file); + + // Check if we've hit the limit (if one was specified) + if let Some(limit) = limit { + if let Precision::Exact(row_count) = num_rows { + if row_count > limit { + state = ProcessingState::ReachedLimit; + } + } + } + } + // If we still have files in the stream, it means that the limit kicked + // in, and the statistic could have been different had we processed the + // files in a different order. + let inexact_stats = all_files.next().await.is_some(); + Ok((file_group, inexact_stats)) +} + diff --git a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs new file mode 100644 index 0000000000000..91d99de5e9123 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs @@ -0,0 +1,291 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +use std::fs; +use std::sync::Arc; +use datafusion::common::tree_node::{Transformed, TreeNode, TreeNodeRecursion}; +use datafusion::config::ConfigOptions; +use datafusion::datasource::physical_plan::{FileScanConfig, FileScanConfigBuilder}; +use datafusion::datasource::source::DataSourceExec; +use datafusion::error::DataFusionError; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use datafusion::physical_optimizer::PhysicalOptimizerRule; +use datafusion::physical_plan::ExecutionPlan; +use datafusion::physical_plan::filter::FilterExec; +use arrow::datatypes::{DataType, Field, Fields, Schema}; +use datafusion::logical_expr::Operator; +use datafusion::physical_expr::PhysicalExpr; +use datafusion::physical_expr::expressions::{BinaryExpr, Column}; +use datafusion::physical_plan::projection::ProjectionExec; + +#[derive(Debug)] +pub struct FilterRowIdOptimizer; + +impl PhysicalOptimizerRule for FilterRowIdOptimizer { + fn optimize( + &self, + plan: Arc, + _config: &ConfigOptions, + ) -> Result, DataFusionError> { + let mut is_optimized = false; + let rewritten = plan.transform_up(|node| { + if let Some(filter) = node.as_any().downcast_ref::() { + // Check if input is DataSourceExec + if let Some(datasource_exec) = filter.input().as_any().downcast_ref::() { + // Check if ___row_id is present + let schema = datasource_exec.schema(); + let has_row_id = schema.field_with_name("___row_id").is_ok(); + + if has_row_id { + let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); + // let _ = datasource.projection.insert(vec![0]); + let mut new_projections = datasource.clone().projection.clone().unwrap(); + let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned()+&datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); + + new_projections.push(file_schema.schema().fields().len()); + + let mut fields = schema.fields().clone().to_vec(); + fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); + let new_schema = Arc::new(Schema{metadata: schema.metadata().clone(), fields: Fields::from(fields)}); + + let file_scan_config = + FileScanConfigBuilder::from(datasource.clone()) + .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) + .with_projection(Some(new_projections.clone())) + .build(); + + let new_datasource = DataSourceExec::from_data_source(file_scan_config); + + // 2. Create new FilterExec with updated input schema + let new_filter = FilterExec::try_new( + filter.predicate().clone(), + new_datasource.clone(), + )?; + // 3. Create ProjectionExec for sum operation + let mut projection_exprs: Vec<(Arc, String)> = vec![]; + + // Get indices from filter's schema + let row_id_idx = new_schema.index_of("___row_id")?; + let row_base_idx = new_schema.index_of("row_base")?; + + // Create sum expression + let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); + let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); + let sum_expr = Arc::new(BinaryExpr::new( + row_id_col, + Operator::Plus, + row_base_col, + )); + + + // Add sum expression as ___row_id + + // Add other columns (except row_base) + for field in schema.fields() { + if field.name() != "___row_id" && field.name() != "row_base" { + let idx = new_schema.index_of(field.name())?; + projection_exprs.push(( + Arc::new(Column::new(field.name(), idx)), + field.name().to_string(), + )); + } + } + + projection_exprs.push((sum_expr, "___row_id".to_string())); + + // println!("projection_exprs :{:?}", projection_exprs); + + // Create final ProjectionExec + let projection = ProjectionExec::try_new( + projection_exprs, + Arc::new(new_filter), + )?; + + // println!("projection :{:?}", projection); + is_optimized = true; + return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); + } + } + } else if let Some(datasource_exec) = node.as_any().downcast_ref::() { + if(!is_optimized) { + let schema = datasource_exec.schema(); + let has_row_id = schema.field_with_name("___row_id").is_ok(); + + if has_row_id { + let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); + // let _ = datasource.projection.insert(vec![0]); + let mut new_projections = datasource.clone().projection.clone().unwrap(); + println!("path {}", datasource.file_groups[0].files()[0].path()); + let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned() + &datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); + + new_projections.push(file_schema.schema().fields().len()); + + let mut fields = schema.fields().clone().to_vec(); + fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); + let new_schema = Arc::new(Schema { metadata: schema.metadata().clone(), fields: Fields::from(fields) }); + + let file_scan_config = + FileScanConfigBuilder::from(datasource.clone()) + .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) + .with_projection(Some(new_projections.clone())) + .build(); + + let new_datasource = DataSourceExec::from_data_source(file_scan_config); + + // 3. Create ProjectionExec for sum operation + let mut projection_exprs: Vec<(Arc, String)> = vec![]; + + // Get indices from filter's schema + let row_id_idx = new_schema.index_of("___row_id")?; + let row_base_idx = new_schema.index_of("row_base")?; + + // Create sum expression + let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); + let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); + let sum_expr = Arc::new(BinaryExpr::new( + row_id_col, + Operator::Plus, + row_base_col, + )); + + + // Add sum expression as ___row_id + + // Add other columns (except row_base) + for field in schema.fields() { + if field.name() != "___row_id" && field.name() != "row_base" { + let idx = new_schema.index_of(field.name())?; + projection_exprs.push(( + Arc::new(Column::new(field.name(), idx)), + field.name().to_string(), + )); + } + } + + projection_exprs.push((sum_expr, "___row_id".to_string())); + + // println!("projection_exprs :{:?}", projection_exprs); + + // Create final ProjectionExec + let projection = ProjectionExec::try_new( + projection_exprs, + new_datasource, + )?; + + // println!("projection :{:?}", projection); + is_optimized = true; + return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); + } + } + } + Ok(Transformed::no(node)) + })?; + + Ok(rewritten.data) + } + // + // fn optimize( + // &self, + // plan: Arc, + // _config: &ConfigOptions, + // ) -> datafusion_common::Result> { + // let rewritten = plan.transform_up(|node| { + // if let Some(filter) = node.as_any().downcast_ref::() { + // // Check if input is DataSourceExec + // if let Some(datasource_exec) = filter.input().as_any().downcast_ref::() { + // // Check if ___row_id is present + // let schema = datasource_exec.schema(); + // let has_row_id = schema.field_with_name("___row_id").is_ok(); + // + // if has_row_id { + // let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); + // // let _ = datasource.projection.insert(vec![0]); + // let mut new_projections = datasource.clone().projection.clone().unwrap(); + // println!("path {}", datasource.file_groups[0].files()[0].path()); + // // let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned()+&datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); + // let file_schema = datasource.file_schema.clone(); + // + // new_projections.push(file_schema.index_of("row_base").unwrap() ); + // + // let mut fields = schema.fields().clone().to_vec(); + // fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); + // let new_schema = Arc::new(Schema{metadata: schema.metadata().clone(), fields: Fields::from(fields)}); + // + // let file_scan_config = + // FileScanConfigBuilder::from(datasource.clone()) + // .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) + // .with_projection(Some(new_projections.clone())) + // .build(); + // + // let new_datasource = DataSourceExec::from_data_source(file_scan_config); + // + // // 2. Create new FilterExec with updated input schema + // let new_filter = FilterExec::try_new( + // filter.predicate().clone(), + // new_datasource.clone(), + // )?; + // println!("new schema :{}", new_schema); + // // 3. Create ProjectionExec for sum operation + // let mut projection_exprs: Vec<(Arc, String)> = vec![]; + // + // // Get indices from filter's schema + // let row_id_idx = new_schema.index_of("___row_id")?; + // let row_base_idx = new_schema.index_of("row_base")?; + // + // // Create sum expression + // let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); + // let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); + // let sum_expr = Arc::new(BinaryExpr::new( + // row_id_col, + // Operator::Plus, + // row_base_col, + // )); + // + // + // // Add sum expression as ___row_id + // + // // Add other columns (except row_base) + // for field in schema.fields() { + // if field.name() != "___row_id" && field.name() != "row_base" { + // let idx = new_schema.index_of(field.name())?; + // projection_exprs.push(( + // Arc::new(Column::new(field.name(), idx)), + // field.name().to_string(), + // )); + // } + // } + // + // projection_exprs.push((sum_expr, "___row_id".to_string())); + // + // println!("projection_exprs :{:?}", projection_exprs); + // + // // Create final ProjectionExec + // let projection = ProjectionExec::try_new( + // projection_exprs, + // Arc::new(new_filter), + // )?; + // + // println!("projection :{:?}", projection); + // + // return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); + // } + // } + // } + // Ok(Transformed::no(node)) + // })?; + // + // Ok(rewritten.data) + // } + + fn name(&self) -> &str { + "filter_row_id_optimizer" + } + + fn schema_check(&self) -> bool { + false + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index c2cd748167e27..6cdc09bd040f7 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -115,7 +115,7 @@ private static synchronized void loadNativeLibrary() { */ public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan, long runtimePtr); - public static native long createDatafusionReader(String path, Collection files); + public static native long createDatafusionReader(String path, String[] files); public static native void closeDatafusionReader(long ptr); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 58ae0f4158da2..83792cc8f7287 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -14,6 +14,7 @@ import java.io.Closeable; import java.io.IOException; import java.util.Collection; +import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; @@ -30,7 +31,8 @@ public class DatafusionReader implements Closeable { public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; - this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, files /* Make this jarray to be compatible with rust*/); + String[] fileNames = Objects.isNull(files) ? new String[]{} : files.stream().map(FileMetadata::fileName).toArray(String[]::new); + this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, fileNames); incRef(); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 54f50ed566755..53b1db13bdd12 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -61,7 +61,9 @@ public DatafusionReader getReader() { @Override public void close() { try { - closeable.close(); + if (closeable != null) { + closeable.close(); + } } catch (IOException e) { throw new UncheckedIOException("failed to close", e); } catch (AlreadyClosedException e) { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index 6123659e60e68..c0ca934323b13 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -8,9 +8,27 @@ package org.opensearch.datafusion; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.lucene.search.Query; import org.opensearch.common.settings.Settings; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.index.shard.ShardId; +import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.datafusion.core.SessionContext; +import org.opensearch.datafusion.search.DatafusionQuery; +import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.env.Environment; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.text.TextDF; +import org.opensearch.index.query.AbstractQueryBuilder; +import org.opensearch.index.query.BoolQueryBuilder; +import org.opensearch.index.query.QueryShardContext; +import org.opensearch.search.aggregations.SearchResultsCollector; +import org.opensearch.search.internal.AliasFilter; +import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.ShardSearchContextId; +import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.test.OpenSearchTestCase; import org.junit.Before; @@ -19,10 +37,14 @@ import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; -import java.util.Map; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; import static org.mockito.Mockito.when; - +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.Field; /** * Unit tests for DataFusionService * @@ -43,7 +65,7 @@ public void setup() { Settings mockSettings = Settings.builder().put("path.data", "/tmp/test-data").build(); when(mockEnvironment.settings()).thenReturn(mockSettings); - service = new DataFusionService(mockEnvironment); + service = new DataFusionService(Map.of()); service.doStart(); } @@ -54,22 +76,82 @@ public void testGetVersion() { assertTrue(version.contains("substrait_version")); } - public void testCreateAndCloseContext() { - // Create context - SessionContext defaultContext = service.getDefaultContext(); - assertNotNull(defaultContext); - assertTrue(defaultContext.getContext() > 0); +// public void testCreateAndCloseContext() { +// // Create context +// SessionContext defaultContext = service.getDefaultContext(); +// assertNotNull(defaultContext); +// assertTrue(defaultContext.getContext() > 0); +// +// // Verify context exists +// SessionContext context = service.getContext(defaultContext.getContext()); +// assertNotNull(context); +// assertEquals(defaultContext.getContext(), context.getContext()); +// +// // Close context +// boolean closed = service.closeContext(defaultContext.getContext()); +// assertTrue(closed); +// +// // Verify context is gone +// assertNull(service.getContext(defaultContext.getContext())); +// } + + // TO run update proper directory path for generation-1-optimized.parquet file in + // this.datafusionReaderManager = new DatafusionReaderManager("TODO://FigureOutPath", formatCatalogSnapshot); + public void testQueryPhaseExecutor() throws IOException { + Map finalRes = new HashMap<>(); + DatafusionSearcher datafusionSearcher = null; + try { + DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(new TextDF(), "generation-1-optimized.parquet")), service); + datafusionSearcher = engine.acquireSearcher("Search"); + + + byte[] protoContent; + + try (InputStream is = getClass().getResourceAsStream("/substrait_plan.pb")) { + protoContent = is.readAllBytes(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + long streamPointer = datafusionSearcher.search(new DatafusionQuery(protoContent, new ArrayList<>()), service.getTokioRuntimePointer()); + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); + + // We can have some collectors passed like this which can collect the results and convert to InternalAggregation + // Is the possible? need to check + + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String filedName = field.getName(); + FieldVector fieldVector = root.getVector(filedName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + for (int i = 0; i < fieldVector.getValueCount(); i++) { + fieldValues[i] = fieldVector.getObject(i); + } + finalRes.put(filedName, fieldValues); + } + } + }; - // Verify context exists - SessionContext context = service.getContext(defaultContext.getContext()); - assertNotNull(context); - assertEquals(defaultContext.getContext(), context.getContext()); + while (stream.loadNextBatch().join()) { + collector.collect(stream); + } - // Close context - boolean closed = service.closeContext(defaultContext.getContext()); - assertTrue(closed); + logger.info("Final Results:"); + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + } - // Verify context is gone - assertNull(service.getContext(defaultContext.getContext())); + } catch (Exception exception) { + logger.error("Failed to execute Substrait query plan", exception); + } + finally { + if(datafusionSearcher != null) { + datafusionSearcher.close(); + } + } } } diff --git a/plugins/engine-datafusion/src/test/resources/substrait_plan.pb b/plugins/engine-datafusion/src/test/resources/substrait_plan.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cba9595418ca141020b555d23dd8f579a7c3d0f GIT binary patch literal 1409 zcmai!-Hy^g6vx?8pd46=XJvt|>uUYRZ?6oG;H57xDecHsp{+B+ntdPN!o+xQ;scoY z1}5HkuhW*op_a(SgPVofBW9Q`B z>GiW4H{Dye@7%q2|H0(pqsLF4K6{S8O#Er$Hxs^^_{9X6dHy>d1uRUUTW}H!1;fow z#6FiYjOI**OAbfHfmEJaN#@4^hqk{6d8E>q&Kk26+mEA&`znm1yt@~0slv$1D*E4j zy3bqqV#ao|&y`A8cGk`Cf(xkwVX*X+f6fCYRtwG&5ym1^m(Ua3=i!B}&n^|0FcA7J z>06mEcz$m-$FL|Tr2$8R%Os9u8o4_<$aKa$wXHlc=lR5I%pUQ$*pzy4UEi53eGpw( zCeUV#iTDEx1E}i-KOR8yt!Wv31I$UbzTR@xNvW3iWNYQglw|%Vd3}H0K@&&Dv!u ze`G|vBqO#rGUASmSS=%#WW;J2ai5I1S4Jc<;#NlN6#nUt819h~D`eCeg^akB5mOmo R^!l$R5O~Uavr0cae*wP;XKMfe literal 0 HcmV?d00001 From 7698cf3701a1818226be15f550c2fb1c16bdfa32 Mon Sep 17 00:00:00 2001 From: Bharathwaj G Date: Tue, 19 Aug 2025 12:38:33 +0530 Subject: [PATCH 016/112] Feature/datafusion (#38) * Abstracting lucene away: part 1 * initial abstractions to reduce indexing engine coupling * Text backed engine testing --------- Co-authored-by: Mohit Godwani --- .../index/engine/DataFormatPlugin.java | 21 +++ .../org/opensearch/index/engine/Engine.java | 3 + .../index/engine/exec/FileMetadata.java | 11 ++ .../opensearch/index/engine/exec/FlushIn.java | 13 ++ .../engine/exec/IndexingExecutionEngine.java | 26 +++ .../index/engine/exec/RefreshInput.java | 29 ++++ .../index/engine/exec/RefreshResult.java | 30 ++++ .../index/engine/exec/WriteResult.java | 12 ++ .../opensearch/index/engine/exec/Writer.java | 26 +++ .../CompositeIndexingExecutionEngine.java | 1 + .../index/engine/exec/coord/Any.java | 50 ++++++ .../engine/exec/coord/CatalogSnapshot.java | 20 +-- .../engine/exec/coord/DocumentWriterPool.java | 47 ++++++ .../coord/IndexingExecutionCoordinator.java | 132 ++++++++++++++++ .../index/engine/exec/coord/WriterPool.java | 12 ++ .../index/engine/exec/text/TextDF.java | 36 +++++ .../index/engine/exec/text/TextEngine.java | 149 ++++++++++++++++++ 17 files changed, 599 insertions(+), 19 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/Writer.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java diff --git a/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java new file mode 100644 index 0000000000000..6cdb6870d7e68 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java @@ -0,0 +1,21 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; + +import javax.xml.crypto.Data; + +public interface DataFormatPlugin { + + IndexingExecutionEngine indexingEngine(); + + DataFormat getDataFormat(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/Engine.java b/server/src/main/java/org/opensearch/index/engine/Engine.java index ec78a0f7a7ec9..0b8b60bd9a4ae 100644 --- a/server/src/main/java/org/opensearch/index/engine/Engine.java +++ b/server/src/main/java/org/opensearch/index/engine/Engine.java @@ -79,6 +79,8 @@ import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.core.index.shard.ShardId; import org.opensearch.index.VersionType; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.IdFieldMapper; import org.opensearch.index.mapper.Mapping; import org.opensearch.index.mapper.ParseContext.Document; @@ -1610,6 +1612,7 @@ public static class Index extends Operation { private final boolean isRetry; private final long ifSeqNo; private final long ifPrimaryTerm; + public CompositeDataFormatWriter.CompositeDocumentInput documentInput; public Index( Term uid, diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java new file mode 100644 index 0000000000000..61341ca5b378a --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java @@ -0,0 +1,11 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +public record FileMetadata(DataFormat df, String fileName) { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java b/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java new file mode 100644 index 0000000000000..5d119a575d1aa --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/FlushIn.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +public interface FlushIn { + +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java new file mode 100644 index 0000000000000..9d7855bf21889 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import org.opensearch.index.mapper.MappedFieldType; + +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public interface IndexingExecutionEngine { + List supportedFieldTypes(); + + Writer> createWriter() throws IOException; // A writer responsible for data format vended by this engine. + + RefreshResult refresh(RefreshInput refreshInput) throws IOException; + + DataFormat getDataFormat(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java new file mode 100644 index 0000000000000..50da23bafd6e1 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java @@ -0,0 +1,29 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.util.ArrayList; +import java.util.List; + +public class RefreshInput { + + private List files; + + public RefreshInput() { + this.files = new ArrayList<>(); + } + + public void add(FileMetadata fileMetadata) { + this.files.add(fileMetadata); + } + + public List getFiles() { + return files; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java new file mode 100644 index 0000000000000..a9bb34ef3aada --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class RefreshResult { + private Map> refreshedFiles = new HashMap<>(); + + public RefreshResult() { + + } + + public void add(DataFormat df, List fileMetadata) { + refreshedFiles.computeIfAbsent(df, ddf -> new ArrayList<>()).addAll(fileMetadata); + } + + public Map> getRefreshedFiles() { + return refreshedFiles; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java b/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java new file mode 100644 index 0000000000000..666576e85cd0f --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriteResult.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +public record WriteResult(boolean success, Exception e, long version, long term, long seqNo) { +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Writer.java b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java new file mode 100644 index 0000000000000..bb0cf3e98b599 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.io.IOException; +import java.util.Optional; + +public interface Writer

> { + WriteResult addDoc(P d) throws IOException; + + FileMetadata flush(FlushIn flushIn) throws IOException; + + void sync() throws IOException; + + void close(); + + Optional getMetadata(); + + P newDocumentInput(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index d4d2b913566fd..b32a333aacffc 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.composite; +import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.IndexingExecutionEngine; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java new file mode 100644 index 0000000000000..c55834ec337d1 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java @@ -0,0 +1,50 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.index.engine.exec.DataFormat; + +import java.util.List; + +public class Any implements DataFormat { + + private List dataFormats; + + public Any(List dataFormats) { + this.dataFormats = dataFormats; + } + + @Override + public Setting dataFormatSettings() { + return null; + } + + @Override + public Setting clusterLeveldataFormatSettings() { + return null; + } + + @Override + public String name() { + return "all"; + } + + public List getDataFormats() { + return dataFormats; + } + + @Override + public void configureStore() { + for (DataFormat dataFormat : dataFormats) { + dataFormat.configureStore(); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 7ddf61d5e55b1..f8915cfaf14cd 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -20,28 +20,10 @@ @ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted { - // shard1 - r1 - f1, f2 -> refresh -> f1,f2 - // f1 - 1 - // f2 - 1 - // search1 - take searcher -> r1 -> - // f1 - 2 - // f2 - 2 - // shard1 - r2 -> f2, f3 -> refresh -> - // decref - // f1 - 1 - // f2 - 1 - // incref - // f2 - 2 - // f3 - 1 - // search1 is complete - // f1 - 0 - // f2 - 1 - // f3 - 1 - - private Map> dfGroupedSearchableFiles = new HashMap<>(); private final long id; + public CatalogSnapshot(RefreshResult refreshResult, long id) { super("catalog_snapshot"); refreshResult.getRefreshedFiles().forEach((df, files) -> { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java new file mode 100644 index 0000000000000..61c1f49da7f3f --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java @@ -0,0 +1,47 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; + +import java.util.ArrayList; +import java.util.List; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedDeque; +import java.util.function.Supplier; + +public class DocumentWriterPool { + + private Queue writers = new ConcurrentLinkedDeque<>(); + private final Supplier writerSupplier; + + public DocumentWriterPool(Supplier writerSupplier) { + this.writerSupplier = writerSupplier; + } + + // non concurrent + public CompositeDataFormatWriter fetchWriter() { + if (writers.isEmpty()) { + writers.add(writerSupplier.get()); + } + return writers.poll(); + } + + public void offer(CompositeDataFormatWriter writer) { + writers.add(writer); + } + + public List freeAll() { + List freeWriters = new ArrayList<>(); + while (!writers.isEmpty()) { + freeWriters.add(writers.poll()); + } + return freeWriters; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java new file mode 100644 index 0000000000000..6b13f9d2459a9 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java @@ -0,0 +1,132 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + + +import org.apache.lucene.search.ReferenceManager; +import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.mapper.KeywordFieldMapper; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class IndexingExecutionCoordinator { + + private final CompositeIndexingExecutionEngine engine; + private List refreshListeners = new ArrayList<>(); + private CatalogSnapshot catalogSnapshot; + + public IndexingExecutionCoordinator(/*MapperService mapperService, EngineConfig engineConfig*/) { + this.engine = new CompositeIndexingExecutionEngine(null, new Any(List.of(DataFormat.TEXT))); + } + + public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { + return engine.createWriter().newDocumentInput(); + } + + public Engine.IndexResult index(Engine.Index index) throws Exception { + WriteResult writeResult = index.documentInput.addToWriter(); + // translog, checkpoint, other checks + return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); + } + + + public synchronized void refresh(String source) throws EngineException, IOException { + refreshListeners.forEach(ref -> { + try { + ref.beforeRefresh(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + + + long id = 0L; + if (catalogSnapshot != null) { + id = catalogSnapshot.getId(); + } + CatalogSnapshot newCatSnap = new CatalogSnapshot(engine.refresh(new RefreshInput()), id + 1L); + newCatSnap.incRef(); + if (catalogSnapshot != null) { + catalogSnapshot.decRef(); + } + catalogSnapshot = newCatSnap; + + refreshListeners.forEach(ref -> { + try { + ref.afterRefresh(true); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + } + + // This should get wired into searcher acquireSnapshot for initializing reader context later + // this now becomes equivalent of the reader + // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers + public ReleasableRef acquireSnapshot() { + catalogSnapshot.incRef(); // this should be package-private + return new ReleasableRef(catalogSnapshot) { + @Override + public void close() throws Exception { + catalogSnapshot.decRef(); // this should be package-private + } + }; + } + + + + public static abstract class ReleasableRef implements AutoCloseable { + private T t; + + public ReleasableRef(T t) { + this.t = t; + } + + public T getRef() { + return t; + } + } + + public static void main(String[] args) throws Exception { + IndexingExecutionCoordinator coordinator = new IndexingExecutionCoordinator(); + + for (int i = 0; i < 5; i++) { + + // Ingestion into one generation + for (int k = 0; k < 10; k++) { + try (CompositeDataFormatWriter.CompositeDocumentInput doc = coordinator.documentInput()) { + + // Mapper part + doc.addField(new KeywordFieldMapper.KeywordFieldType("f1"), k + "_v1"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f2"), k + "_v2"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f3"), k + "_v3"); + doc.addField(new KeywordFieldMapper.KeywordFieldType("f4"), k + "_v4"); + Engine.Index index = new Engine.Index(null, 1L, null); + index.documentInput = doc; + + // applyIndexOperation part + coordinator.index(index); + } + } + + // Refresh until generation + coordinator.refresh("_manual_test"); + System.out.println(coordinator.catalogSnapshot); + } + } + +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java new file mode 100644 index 0000000000000..7373ca1fdc42f --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +public class WriterPool { +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java new file mode 100644 index 0000000000000..b19a6c893cc11 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextDF.java @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.text; + +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.index.engine.exec.DataFormat; + + +public class TextDF implements DataFormat { + @Override + public Setting dataFormatSettings() { + return null; + } + + @Override + public Setting clusterLeveldataFormatSettings() { + return null; + } + + @Override + public String name() { + return "text"; + } + + @Override + public void configureStore() { + + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java new file mode 100644 index 0000000000000..b4638538fe7f9 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -0,0 +1,149 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.text; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.mapper.MappedFieldType; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +public class TextEngine implements IndexingExecutionEngine { + + private final AtomicLong counter = new AtomicLong(); + private final Set openWriters = new HashSet<>(); + private List openFiles = new ArrayList<>(); + + @Override + public List supportedFieldTypes() { + return List.of(); + } + + @Override + public Writer> createWriter() throws IOException { + return new TextWriter("text_file" + counter.getAndIncrement(), this); + } + + @Override + public DataFormat getDataFormat() { + return DataFormat.TEXT; + } + + @Override + public RefreshResult refresh(RefreshInput refreshInput) throws IOException { + openFiles.addAll(refreshInput.getFiles()); + RefreshResult refreshResult = new RefreshResult(); + refreshResult.add(DataFormat.TEXT, openFiles); + return refreshResult; + } + + public static class TextInput implements DocumentInput { + private final StringBuilder sb = new StringBuilder(); + private final TextWriter writer; + + public TextInput(TextWriter writer) { + this.writer = writer; + } + + @Override + public void addField(MappedFieldType fieldType, Object value) { + sb.append(fieldType.name()).append("=").append(value).append(";"); + } + + @Override + public String getFinalInput() { + return sb.append("\n").toString(); + } + + @Override + public WriteResult addToWriter() throws IOException { + return writer.addDoc(this); + } + + @Override + public void close() throws Exception { + //no op + } + } + + + + public static class TextWriter implements Writer { + + private final StringBuilder sb = new StringBuilder(); + private final File currentFile; + private AtomicBoolean flushed = new AtomicBoolean(false); + private final Runnable onClose; + + public TextWriter(String currentFile, TextEngine engine) throws IOException{ + this.currentFile = new File("/Users/mgodwan/" + currentFile); + this.currentFile.createNewFile(); + boolean canWrite = this.currentFile.setWritable(true); + if (!canWrite) { + throw new IllegalStateException("Cannot write to file [" + currentFile + "]"); + } + engine.openWriters.add(this); + onClose = () -> engine.openWriters.remove(this); + } + + @Override + public WriteResult addDoc(TextInput d) throws IOException { + sb.append(d.getFinalInput()); + return new WriteResult(true, null, 1, 1, 1); + } + + @Override + public FileMetadata flush(FlushIn flushIn) throws IOException { + try (FileWriter fw = new FileWriter(currentFile)) { + fw.write(sb.toString()); + } + flushed.set(true); + return new FileMetadata(DataFormat.TEXT, currentFile.getName()); + } + + @Override + public void sync() throws IOException { + } + + @Override + public void close() { + onClose.run(); + } + + @Override + public Optional getMetadata() { + if (flushed.get()) { + return Optional.of(new FileMetadata(DataFormat.TEXT, currentFile.getName())); + } + return Optional.empty(); + } + + @Override + public TextInput newDocumentInput() { + return new TextInput(this); + } + } +} From 947291dc23cdcb4b412a418ecb00114cd3943e87 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Sat, 27 Sep 2025 01:27:21 +0530 Subject: [PATCH 017/112] Fixing tests Signed-off-by: bharath-techie --- .../org/opensearch/index/shard/IndexShardTestCase.java | 1 - .../src/main/java/org/opensearch/node/MockNode.java | 7 +++++-- .../main/java/org/opensearch/search/MockSearchService.java | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java index 711a81fe4b7cf..7513db2d13ab7 100644 --- a/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/opensearch/index/shard/IndexShardTestCase.java @@ -739,7 +739,6 @@ protected IndexShard newShard( clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, ReferencedSegmentsPublisher.EMPTY, - null, null ); indexShard.addShardFailureCallback(DEFAULT_SHARD_FAILURE_HANDLER); diff --git a/test/framework/src/main/java/org/opensearch/node/MockNode.java b/test/framework/src/main/java/org/opensearch/node/MockNode.java index 8297e6b066cde..8dcf2cb66e4ab 100644 --- a/test/framework/src/main/java/org/opensearch/node/MockNode.java +++ b/test/framework/src/main/java/org/opensearch/node/MockNode.java @@ -51,6 +51,7 @@ import org.opensearch.env.Environment; import org.opensearch.http.HttpServerTransport; import org.opensearch.indices.IndicesService; +import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.Plugin; import org.opensearch.plugins.PluginInfo; import org.opensearch.plugins.SearchPlugin; @@ -175,7 +176,8 @@ protected SearchService newSearchService( Executor indexSearcherExecutor, TaskResourceTrackingService taskResourceTrackingService, Collection concurrentSearchDeciderFactories, - List pluginProfilers + List pluginProfilers, + List dataSourcePluginList ) { if (getPluginsService().filterPlugins(MockSearchService.TestPlugin.class).isEmpty()) { return super.newSearchService( @@ -191,7 +193,8 @@ protected SearchService newSearchService( indexSearcherExecutor, taskResourceTrackingService, concurrentSearchDeciderFactories, - pluginProfilers + pluginProfilers, + null // TODO ); } return new MockSearchService( diff --git a/test/framework/src/main/java/org/opensearch/search/MockSearchService.java b/test/framework/src/main/java/org/opensearch/search/MockSearchService.java index e3bc166e56d6b..0bf59b30ff011 100644 --- a/test/framework/src/main/java/org/opensearch/search/MockSearchService.java +++ b/test/framework/src/main/java/org/opensearch/search/MockSearchService.java @@ -114,7 +114,8 @@ public MockSearchService( indexSearcherExecutor, taskResourceTrackingService, Collections.emptyList(), - Collections.emptyList() + Collections.emptyList(), + null // TODO ); } From a146b3efd655414a3cc80e7004bc9fb23adfd0ee Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Sun, 28 Sep 2025 15:28:01 +0530 Subject: [PATCH 018/112] Fix Listing Cache Signed-off-by: Arpit Bandejiya --- plugins/engine-datafusion/jni/src/lib.rs | 2 +- plugins/engine-datafusion/jni/src/util.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index d45d3a88f5025..2e4b0450e6bb3 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -215,7 +215,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager(CacheManagerConfig::default() - //.with_list_files_cache(Some(list_file_cache)) TODO: //Fix this + .with_list_files_cache(Some(list_file_cache.clone())) ).build().unwrap(); // TODO: get config from CSV DataFormat diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index a584df7489cdd..c536e7ba3ea09 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -168,11 +168,11 @@ pub fn create_object_meta_from_filenames(base_path: &str, filenames: Vec .unwrap_or_else(|_| Utc::now()); ObjectMeta { - location: ObjectPath::from(filename), + location: ObjectPath::from(full_path), last_modified: modified, size: file_size, e_tag: None, version: None, } }).collect() -} \ No newline at end of file +} From 546ef455c421db8344dc38f07a3865d77645253b Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Mon, 29 Sep 2025 09:12:13 -0700 Subject: [PATCH 019/112] Integrate aggregators to convert result from datafusion (#19441) Signed-off-by: expani --- .../aggregations/ShardResultConvertor.java | 18 ++++++ .../aggregations/metrics/MaxAggregator.java | 15 ++++- .../aggregations/metrics/MinAggregator.java | 15 ++++- .../aggregations/metrics/SumAggregator.java | 15 ++++- .../metrics/ValueCountAggregator.java | 15 ++++- .../opensearch/search/query/QueryPhase.java | 27 ++------- .../SearchEngineResultConversionUtils.java | 56 +++++++++++++++++++ 7 files changed, 136 insertions(+), 25 deletions(-) create mode 100644 server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java create mode 100644 server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java diff --git a/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java b/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java new file mode 100644 index 0000000000000..5568b7051246b --- /dev/null +++ b/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search.aggregations; + +import java.util.List; +import java.util.Map; + +public interface ShardResultConvertor { + + List convert(Map shardResult); + +} diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java index fbba20d8a6d7d..add06f8d2015a 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java @@ -51,6 +51,7 @@ import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.support.ValuesSource; @@ -61,7 +62,9 @@ import org.opensearch.search.streaming.StreamingCostMetrics; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; @@ -73,7 +76,7 @@ * * @opensearch.internal */ -class MaxAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, Streamable { +class MaxAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, ShardResultConvertor, Streamable { final ValuesSource.Numeric valuesSource; final DocValueFormat formatter; @@ -287,4 +290,14 @@ public void doReset() { public StreamingCostMetrics getStreamingCostMetrics() { return new StreamingCostMetrics(true, 1, 1, 1, 1); } + + @Override + public List convert(Map shardResult) { + Object[] values = shardResult.get(name); + List results = new ArrayList<>(values.length); + for (Object value : values) { + results.add(new InternalMax(name, (Long) value, formatter, metadata())); + } + return results; + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java index 5c2ed2b240a09..0bbb337cf94a4 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java @@ -51,6 +51,7 @@ import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.support.ValuesSource; @@ -61,6 +62,8 @@ import org.opensearch.search.streaming.StreamingCostMetrics; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; @@ -72,7 +75,7 @@ * * @opensearch.internal */ -class MinAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, Streamable { +class MinAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, ShardResultConvertor, Streamable { private static final int MAX_BKD_LOOKUPS = 1024; final ValuesSource.Numeric valuesSource; @@ -274,6 +277,16 @@ public StarTreeBucketCollector getStarTreeBucketCollector( ); } + @Override + public List convert(Map shardResult) { + Object[] values = shardResult.get(name); + List results = new ArrayList<>(values.length); + for (Object value : values) { + results.add(new InternalMin(name, (Long) value, format, metadata())); + } + return results; + } + @Override public void doReset() { mins.fill(0, mins.size(), Double.POSITIVE_INFINITY); diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java index ba32592f75ea1..0a611329a2fa8 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java @@ -45,6 +45,7 @@ import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.support.ValuesSource; @@ -53,6 +54,8 @@ import org.opensearch.search.startree.StarTreeQueryHelper; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import static org.opensearch.search.startree.StarTreeQueryHelper.getSupportedStarTree; @@ -62,7 +65,7 @@ * * @opensearch.internal */ -public class SumAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector { +public class SumAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, ShardResultConvertor { private final ValuesSource.Numeric valuesSource; private final DocValueFormat format; @@ -215,4 +218,14 @@ public InternalAggregation buildEmptyAggregation() { public void doClose() { Releasables.close(sums, compensations); } + + @Override + public List convert(Map shardResult) { + Object[] values = shardResult.get(name); + List results = new ArrayList<>(values.length); + for (Object value : values) { + results.add(new InternalSum(name, (Long) value, format, metadata())); + } + return results; + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java index 3541753d94e6f..76c5bb31fd166 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java @@ -45,6 +45,7 @@ import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.support.ValuesSource; @@ -53,6 +54,8 @@ import org.opensearch.search.startree.StarTreeQueryHelper; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import static org.opensearch.search.startree.StarTreeQueryHelper.getSupportedStarTree; @@ -65,7 +68,7 @@ * * @opensearch.internal */ -public class ValueCountAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector { +public class ValueCountAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, ShardResultConvertor { final ValuesSource valuesSource; @@ -209,4 +212,14 @@ public StarTreeBucketCollector getStarTreeBucketCollector( (bucket, metricValue) -> counts.increment(bucket, metricValue) ); } + + @Override + public List convert(Map shardResult) { + Object[] values = shardResult.get(name); + List results = new ArrayList<>(values.length); + for (Object value : values) { + results.add(new InternalValueCount(name, (Long) value, metadata())); + } + return results; + } } diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhase.java b/server/src/main/java/org/opensearch/search/query/QueryPhase.java index 54294aae0b3fb..445a58bfebe43 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhase.java @@ -60,9 +60,7 @@ import org.opensearch.search.aggregations.AggregationProcessor; import org.opensearch.search.aggregations.DefaultAggregationProcessor; import org.opensearch.search.aggregations.GlobalAggCollectorManager; -import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.InternalAggregations; -import org.opensearch.search.aggregations.metrics.InternalValueCount; import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.ScrollContext; import org.opensearch.search.internal.SearchContext; @@ -75,7 +73,6 @@ import org.opensearch.threadpool.ThreadPool; import java.io.IOException; -import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -168,28 +165,16 @@ public void execute(SearchContext searchContext) throws QueryPhaseExecutionExcep // boolean rescore = executeInternal(searchContext, queryPhaseSearcher); + // Post process + final InternalAggregations internalAggregations = SearchEngineResultConversionUtils.convertDFResultGeneric(searchContext); + LOGGER.info("InternalAggregation created is {}", internalAggregations.asList()); + searchContext.queryResult().aggregations(internalAggregations); + // if (rescore) { // only if we do a regular search // rescoreProcessor.process(searchContext); // } // suggestProcessor.process(searchContext); - // aggregationProcessor.postProcess(searchContext); - - // Post process - // Create a list to store the InternalValueCount objects - // Can we map from the preprocess - List internalAggList = new ArrayList<>(); - Map map = searchContext.getDFResults(); - for (Map.Entry entry : map.entrySet()) { - String key = entry.getKey(); - Object[] value = entry.getValue(); - // SUM, Count will work with integer casting, but (Integer) value casting may not work well for avg - InternalValueCount ivc = new InternalValueCount(key, (long) value[0], null); - internalAggList.add(ivc); - } - - final InternalAggregations internalAggregations = InternalAggregations.from(internalAggList); - QuerySearchResult querySearchResult = searchContext.queryResult(); - querySearchResult.aggregations(internalAggregations); + aggregationProcessor.postProcess(searchContext); if (searchContext.getProfilers() != null) { ProfileShardResult shardResults = SearchProfileShardResults.buildShardResults( diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java new file mode 100644 index 0000000000000..a7e979f39860d --- /dev/null +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -0,0 +1,56 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search.query; + +import org.opensearch.search.aggregations.Aggregator; +import org.opensearch.search.aggregations.InternalAggregations; +import org.opensearch.search.aggregations.ShardResultConvertor; +import org.opensearch.search.internal.SearchContext; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class SearchEngineResultConversionUtils { + + public static InternalAggregations convertDFResultGeneric(SearchContext searchContext) { + Map dfResult = searchContext.getDFResults(); + + // Create aggregators which will process the result from DataFusion + try { + + List aggregators = new ArrayList<>(); + + if (searchContext.aggregations().factories().hasGlobalAggregator()) { + aggregators.addAll(searchContext.aggregations().factories().createTopLevelGlobalAggregators(searchContext)); + } + + if (searchContext.aggregations().factories().hasNonGlobalAggregator()) { + aggregators.addAll(searchContext.aggregations().factories().createTopLevelNonGlobalAggregators(searchContext)); + } + + List shardResultConvertors = aggregators.stream().map(x -> { + if (x instanceof ShardResultConvertor) { + return ((ShardResultConvertor) x); + } else { + throw new UnsupportedOperationException("Aggregator doesn't support converting results from shard: " + x); + } + }).toList(); + + return InternalAggregations.from( + shardResultConvertors.stream().flatMap(x -> x.convert(dfResult).stream()).collect(Collectors.toList()) + ); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +} From fffbc30b80592c0ef8d16eff9e111f2a8bfad1a2 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Mon, 29 Sep 2025 17:25:29 +0530 Subject: [PATCH 020/112] Changes in dataformat for CSVEngine Signed-off-by: Arpit Bandejiya --- .../execution/search/DataFormat.java | 20 +++++++++-- .../datafusion/csv/engine/exec/CsvEngine.java | 33 +++++++++++++++++++ .../CompositeIndexingExecutionEngine.java | 23 ++++++++++--- .../engine/exec/coord/CompositeEngine.java | 5 ++- 4 files changed, 73 insertions(+), 8 deletions(-) diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java index c85e889bb364b..9df8609efbdf3 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java @@ -10,8 +10,24 @@ import org.opensearch.common.annotation.ExperimentalApi; +/** + DataFormat supported by OpenSearch + */ @ExperimentalApi public enum DataFormat { - CSV, - Text + /** CSV Format*/ + CSV("csv"), + + /** Text Format */ + Text("text"); + + private final String name; + + DataFormat(String name) { + this.name = name; + } + + public String getName() { + return name; + } } diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java index 28254c0463dad..d200f7355fae4 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java @@ -30,6 +30,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +/** + * CSV indexing execution engine. + */ public class CsvEngine implements IndexingExecutionEngine { private final AtomicLong counter = new AtomicLong(); @@ -37,6 +40,13 @@ public class CsvEngine implements IndexingExecutionEngine { private List openFiles = new ArrayList<>(); static CsvDataFormat CSV = new CsvDataFormat(); + /** + * Creates a new CSV indexing execution engine. + */ + public CsvEngine() { + // Default constructor + } + @Override public List supportedFieldTypes() { return List.of(); @@ -60,10 +70,18 @@ public RefreshResult refresh(RefreshInput refreshInput) throws IOException { return refreshResult; } + /** + * CSV document input. + */ public static class CsvInput implements DocumentInput { private final List values = new ArrayList<>(); private final CsvWriter writer; + /** + * Creates a new CsvInput. + * + * @param writer the CSV writer + */ public CsvInput(CsvWriter writer) { this.writer = writer; } @@ -93,6 +111,9 @@ public void close() throws Exception { } } + /** + * CSV writer implementation. + */ public static class CsvWriter implements Writer { private final StringBuilder sb = new StringBuilder(); private final File currentFile; @@ -100,6 +121,13 @@ public static class CsvWriter implements Writer { private final Runnable onClose; private boolean headerWritten = false; + /** + * Creates a new CsvWriter. + * + * @param currentFile the file name + * @param engine the CSV engine + * @throws IOException if an I/O error occurs + */ public CsvWriter(String currentFile, CsvEngine engine) throws IOException { this.currentFile = new File("/Users/gbh/" + currentFile); this.currentFile.createNewFile(); @@ -149,6 +177,11 @@ public CsvInput newDocumentInput() { return new CsvInput(this); } + /** + * Writes CSV headers. + * + * @param headers the header list + */ public void writeHeaders(List headers) { if (!headerWritten) { String headerLine = String.join(",", headers) + "\n"; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index b32a333aacffc..3d32ecb62d695 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -37,8 +37,9 @@ public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataf this.dataFormat = dataformat; try { for (DataFormat dataFormat : dataformat.getDataFormats()) { + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() - .filter(curr -> curr.getDataFormat().equals(dataFormat)) + .filter(curr -> curr.getDataFormat().equals(dataFormat.name())) .findFirst() .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); delegates.add(plugin.indexingEngine()); @@ -50,6 +51,18 @@ public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataf this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); } + public CompositeIndexingExecutionEngine(PluginsService pluginsService) { + try { + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); + delegates.add(plugin.indexingEngine()); + } catch (NullPointerException e) { + delegates.add(new TextEngine()); + } + this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); + } + @Override public DataFormat getDataFormat() { return dataFormat; @@ -79,10 +92,10 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { } // make indexing engines aware of everything - for (IndexingExecutionEngine delegate : delegates) { - RefreshResult result = delegate.refresh(refreshInputs.get(delegate.getDataFormat())); - finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); - } +// for (IndexingExecutionEngine delegate : delegates) { +// RefreshResult result = delegate.refresh(refreshInputs.get(delegate.getDataFormat())); +// finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); +// } // provide a view to the upper layer return finalResult; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index c339047cc0202..1a0b8b4f94c3e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -13,6 +13,7 @@ import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; +import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.SearchExecEngine; @@ -23,6 +24,7 @@ import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; +import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.PluginsService; @@ -43,7 +45,8 @@ public class CompositeEngine { public CompositeEngine(MapperService mapperService, PluginsService pluginsService) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); - this.engine = new CompositeIndexingExecutionEngine(pluginsService, new Any(List.of(DataFormat.TEXT))); + // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used + this.engine = new CompositeIndexingExecutionEngine(pluginsService); // Refresh here so that catalog snapshot gets initialized // TODO : any better way to do this ? From 51eef8f9470472cf520884c3d1fe4291c94fbdf7 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Mon, 29 Sep 2025 22:06:03 +0530 Subject: [PATCH 021/112] Working changes (#44) * Changes in dataformat for CSVEngine Signed-off-by: Arpit Bandejiya * Changes for Reader to work Signed-off-by: Arpit Bandejiya --------- Signed-off-by: Arpit Bandejiya Co-authored-by: Bharathwaj G Signed-off-by: bharath-techie --- gradle/missing-javadoc.gradle | 4 +- plugins/engine-datafusion/jni/src/lib.rs | 4 +- .../datafusion/DatafusionEngine.java | 7 +- .../datafusion/search/DatafusionContext.java | 204 +++++++++++++++++- .../datafusion/search/DatafusionReader.java | 33 ++- .../datafusion/DataFusionServiceTests.java | 2 +- .../index/engine/SearchExecEngine.java | 3 +- .../CompositeIndexingExecutionEngine.java | 2 +- .../engine/exec/coord/CompositeEngine.java | 12 +- .../org/opensearch/search/SearchService.java | 12 +- .../search/internal/SearchContext.java | 4 +- 11 files changed, 259 insertions(+), 28 deletions(-) diff --git a/gradle/missing-javadoc.gradle b/gradle/missing-javadoc.gradle index 5f3ef5c0b7d48..9e5e808c5ab0b 100644 --- a/gradle/missing-javadoc.gradle +++ b/gradle/missing-javadoc.gradle @@ -160,7 +160,9 @@ configure([ project(":test:fixtures:hdfs-fixture"), project(":test:fixtures:s3-fixture"), project(":test:framework"), - project(":test:logger-usage") + project(":test:logger-usage"), + project(":libs:opensearch-vectorized-exec-spi"), // TODO + project(":plugins:engine-datafusion"), //TODO ]) { project.tasks.withType(MissingJavadocTask) { isExcluded = true diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 2e4b0450e6bb3..0e7d047d9c721 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -209,6 +209,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let table_path = shard_view.table_path(); let files_meta = shard_view.files_meta(); + println!("Table path: {}", table_path); + println!("Files: {:?}", files_meta); let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), files_meta); @@ -252,7 +254,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table("logs", provider) + ctx.register_table("hits", provider) .expect("Failed to attach the Table"); }); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 2381322d76bf4..719ff0baa9d3f 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -30,6 +30,7 @@ import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.search.SearchShardTarget; import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.ShardSearchRequest; @@ -56,7 +57,7 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService) throws IOException { this.dataFormat = dataFormat; - this.datafusionReaderManager = new DatafusionReaderManager("TODO://FigureOutPath", formatCatalogSnapshot); + this.datafusionReaderManager = new DatafusionReaderManager("/Users/gbh/Downloads/res", formatCatalogSnapshot); this.datafusionService = dataFusionService; } @@ -71,8 +72,8 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { } @Override - public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTask task) throws IOException { - DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, task, this); + public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task) throws IOException { + DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this); // Parse source datafusionContext.datafusionQuery(new DatafusionQuery(request.source().queryPlanIR(), new ArrayList<>())); return datafusionContext; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index aaf44d6d9f7ee..1700a63f3ea5b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -16,6 +16,7 @@ import org.opensearch.action.search.SearchType; import org.opensearch.common.unit.TimeValue; import org.opensearch.common.util.BigArrays; +import org.opensearch.index.IndexService; import org.opensearch.index.cache.bitset.BitsetFilterCache; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.index.mapper.MappedFieldType; @@ -68,36 +69,81 @@ public class DatafusionContext extends SearchContext { private final SearchShardTask task; private final DatafusionEngine readEngine; private final DatafusionSearcher engineSearcher; + private final IndexShard indexShard; + private final QuerySearchResult queryResult; + private final FetchSearchResult fetchResult; + private final IndexService indexService; + private final QueryShardContext queryShardContext; private DatafusionQuery datafusionQuery; - + private Map dfResults; + /** + * Constructor + * @param readerContext The reader context + * @param request The shard search request + * @param task The search shard task + * @param engine The datafusion engine + */ public DatafusionContext( ReaderContext readerContext, ShardSearchRequest request, + SearchShardTarget searchShardTarget, SearchShardTask task, DatafusionEngine engine) { this.readerContext = readerContext; + this.indexShard = readerContext.indexShard(); this.request = request; this.task = task; this.readEngine = engine; this.engineSearcher = engine.acquireSearcher("search");//null;//TODO readerContext.contextEngineSearcher(); - } - + this.queryResult = new QuerySearchResult(readerContext.id(), searchShardTarget, request); + this.fetchResult = new FetchSearchResult(readerContext.id(), searchShardTarget); + this.indexService = readerContext.indexService(); + this.queryShardContext = indexService.newQueryShardContext( + request.shardId().id(), + null, // TOOD : index searcher is null + request::nowInMillis, + searchShardTarget.getClusterAlias(), + false, // reevaluate the usage + false // specific to lucene + ); + } + + /** + * Gets the read engine + * @return The datafusion engine + */ public DatafusionEngine readEngine() { return readEngine; } + /** + * Sets datafusion query + * @param datafusionQuery The datafusion query + */ public DatafusionContext datafusionQuery(DatafusionQuery datafusionQuery) { this.datafusionQuery = datafusionQuery; return this; } + /** + * Gets the datafusion query + * @return The datafusion query + */ public DatafusionQuery getDatafusionQuery() { return datafusionQuery; } + /** + * Gets the engine searcher + * @return The datafusion searcher + */ public DatafusionSearcher getEngineSearcher() { return engineSearcher; } + /** + * {@inheritDoc} + * @param task The search shard task + */ @Override public void setTask(SearchShardTask task) { @@ -118,11 +164,19 @@ protected void doClose() { } + /** + * {@inheritDoc} + * @param rewrite Whether to rewrite + */ @Override public void preProcess(boolean rewrite) { } + /** + * {@inheritDoc} + * @param query The query + */ @Override public Query buildFilteredQuery(Query query) { return null; @@ -140,7 +194,7 @@ public String source() { @Override public ShardSearchRequest request() { - return null; + return request; } @Override @@ -173,16 +227,28 @@ public SearchContextAggregations aggregations() { return null; } + /** + * {@inheritDoc} + * @param aggregations The search context aggregations + */ @Override public SearchContext aggregations(SearchContextAggregations aggregations) { return null; } + /** + * {@inheritDoc} + * @param searchExtBuilder The search extension builder + */ @Override public void addSearchExt(SearchExtBuilder searchExtBuilder) { } + /** + * {@inheritDoc} + * @param name The name + */ @Override public SearchExtBuilder getSearchExt(String name) { return null; @@ -193,6 +259,10 @@ public SearchHighlightContext highlight() { return null; } + /** + * {@inheritDoc} + * @param highlight The search highlight context + */ @Override public void highlight(SearchHighlightContext highlight) { @@ -203,6 +273,10 @@ public SuggestionSearchContext suggest() { return null; } + /** + * {@inheritDoc} + * @param suggest The suggestion search context + */ @Override public void suggest(SuggestionSearchContext suggest) { @@ -213,6 +287,10 @@ public List rescore() { return List.of(); } + /** + * {@inheritDoc} + * @param rescore The rescore context + */ @Override public void addRescore(RescoreContext rescore) { @@ -243,6 +321,10 @@ public FetchSourceContext fetchSourceContext() { return null; } + /** + * {@inheritDoc} + * @param fetchSourceContext The fetch source context + */ @Override public SearchContext fetchSourceContext(FetchSourceContext fetchSourceContext) { return null; @@ -253,6 +335,10 @@ public FetchDocValuesContext docValuesContext() { return null; } + /** + * {@inheritDoc} + * @param docValuesContext The fetch doc values context + */ @Override public SearchContext docValuesContext(FetchDocValuesContext docValuesContext) { return null; @@ -263,6 +349,10 @@ public FetchFieldsContext fetchFieldsContext() { return null; } + /** + * {@inheritDoc} + * @param fetchFieldsContext The fetch fields context + */ @Override public SearchContext fetchFieldsContext(FetchFieldsContext fetchFieldsContext) { return null; @@ -275,7 +365,7 @@ public ContextIndexSearcher searcher() { @Override public IndexShard indexShard() { - return null; + return this.indexShard; } @Override @@ -303,6 +393,10 @@ public TimeValue timeout() { return null; } + /** + * {@inheritDoc} + * @param timeout The timeout value + */ @Override public void timeout(TimeValue timeout) { @@ -313,6 +407,10 @@ public int terminateAfter() { return 0; } + /** + * {@inheritDoc} + * @param terminateAfter The terminate after value + */ @Override public void terminateAfter(int terminateAfter) { @@ -323,6 +421,10 @@ public boolean lowLevelCancellation() { return false; } + /** + * {@inheritDoc} + * @param minimumScore The minimum score + */ @Override public SearchContext minimumScore(float minimumScore) { return null; @@ -333,6 +435,10 @@ public Float minimumScore() { return 0f; } + /** + * {@inheritDoc} + * @param sort The sort and formats + */ @Override public SearchContext sort(SortAndFormats sort) { return null; @@ -343,6 +449,10 @@ public SortAndFormats sort() { return null; } + /** + * {@inheritDoc} + * @param trackScores Whether to track scores + */ @Override public SearchContext trackScores(boolean trackScores) { return null; @@ -353,6 +463,10 @@ public boolean trackScores() { return false; } + /** + * {@inheritDoc} + * @param trackTotalHits The track total hits value + */ @Override public SearchContext trackTotalHitsUpTo(int trackTotalHits) { return null; @@ -364,6 +478,10 @@ public int trackTotalHitsUpTo() { } @Override + /** + * {@inheritDoc} + * @param searchAfter The field doc for search after + */ public SearchContext searchAfter(FieldDoc searchAfter) { return null; } @@ -374,6 +492,10 @@ public FieldDoc searchAfter() { } @Override + /** + * {@inheritDoc} + * @param collapse The collapse context + */ public SearchContext collapse(CollapseContext collapse) { return null; } @@ -384,6 +506,10 @@ public CollapseContext collapse() { } @Override + /** + * {@inheritDoc} + * @param postFilter The parsed post filter query + */ public SearchContext parsedPostFilter(ParsedQuery postFilter) { return null; } @@ -399,6 +525,10 @@ public Query aliasFilter() { } @Override + /** + * {@inheritDoc} + * @param query The parsed query + */ public SearchContext parsedQuery(ParsedQuery query) { return null; } @@ -419,6 +549,10 @@ public int from() { return 0; } + /** + * {@inheritDoc} + * @param from The from value + */ @Override public SearchContext from(int from) { return null; @@ -429,6 +563,10 @@ public int size() { return 0; } + /** + * {@inheritDoc} + * @param size The size value + */ @Override public SearchContext size(int size) { return null; @@ -454,6 +592,10 @@ public StoredFieldsContext storedFieldsContext() { return null; } + /** + * {@inheritDoc} + * @param storedFieldsContext The stored fields context + */ @Override public SearchContext storedFieldsContext(StoredFieldsContext storedFieldsContext) { return null; @@ -464,6 +606,10 @@ public boolean explain() { return false; } + /** + * {@inheritDoc} + * @param explain Whether to explain + */ @Override public void explain(boolean explain) { @@ -474,6 +620,10 @@ public List groupStats() { return List.of(); } + /** + * {@inheritDoc} + * @param groupStats The group stats + */ @Override public void groupStats(List groupStats) { @@ -484,6 +634,10 @@ public boolean version() { return false; } + /** + * {@inheritDoc} + * @param version Whether to include version + */ @Override public void version(boolean version) { @@ -494,6 +648,10 @@ public boolean seqNoAndPrimaryTerm() { return false; } + /** + * {@inheritDoc} + * @param seqNoAndPrimaryTerm Whether to include sequence number and primary term + */ @Override public void seqNoAndPrimaryTerm(boolean seqNoAndPrimaryTerm) { @@ -514,6 +672,12 @@ public int docIdsToLoadSize() { return 0; } + /** + * {@inheritDoc} + * @param docIdsToLoad The document IDs to load + * @param docsIdsToLoadFrom The starting index for document IDs to load + * @param docsIdsToLoadSize The size of document IDs to load + */ @Override public SearchContext docIdsToLoad(int[] docIdsToLoad, int docsIdsToLoadFrom, int docsIdsToLoadSize) { return null; @@ -526,7 +690,7 @@ public DfsSearchResult dfsResult() { @Override public QuerySearchResult queryResult() { - return null; + return this.queryResult; } @Override @@ -536,7 +700,7 @@ public FetchPhase fetchPhase() { @Override public FetchSearchResult fetchResult() { - return null; + return this.fetchResult; } @Override @@ -544,11 +708,19 @@ public Profilers getProfilers() { return null; } + /** + * {@inheritDoc} + * @param name The field name + */ @Override public MappedFieldType fieldType(String name) { return null; } + /** + * {@inheritDoc} + * @param name The object mapper name + */ @Override public ObjectMapper getObjectMapper(String name) { return null; @@ -566,7 +738,7 @@ public Map, CollectorManager contextEngineSearcher() { return new ContextEngineSearcher<>(this.engineSearcher, this); } + + public void setDFResults(Map dfResults) { + this.dfResults = dfResults; + } + + public Map getDFResults() { + return dfResults; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 83792cc8f7287..eaf58b5511588 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -19,31 +19,56 @@ import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; -// JNI from java to rust -// substrait -// Harcode --> file --> register as the table with the same name +/** + * DataFusion reader for JNI operations. + */ public class DatafusionReader implements Closeable { + /** + * The directory path. + */ public String directoryPath; + /** + * The file metadata collection. + */ public Collection files; + /** + * The cache pointer. + */ public long cachePtr; private AtomicInteger refCount = new AtomicInteger(0); + /** + * Constructor + * @param directoryPath The directory path + * @param files The file metadata collection + */ public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; - String[] fileNames = Objects.isNull(files) ? new String[]{} : files.stream().map(FileMetadata::fileName).toArray(String[]::new); + String[] fileNames = Objects.isNull(files) ? new String[]{"hits_data.parquet"} : files.stream().map(FileMetadata::fileName).toArray(String[]::new); this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, fileNames); incRef(); } + /** + * Gets the cache pointer. + * @return the cache pointer + */ public long getCachePtr() { return cachePtr; } + /** + * Increments the reference count. + */ public void incRef() { refCount.getAndIncrement(); } + /** + * Decrements the reference count. + * @throws IOException if an I/O error occurs + */ public void decRef() throws IOException { if(refCount.get() == 0) { throw new IllegalStateException("Listing table has been already closed"); diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index c0ca934323b13..47547007a8e73 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -101,7 +101,7 @@ public void testQueryPhaseExecutor() throws IOException { Map finalRes = new HashMap<>(); DatafusionSearcher datafusionSearcher = null; try { - DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(new TextDF(), "generation-1-optimized.parquet")), service); + DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(new TextDF(), "hits_data.parquet")), service); datafusionSearcher = engine.acquireSearcher("Search"); diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index d85ada1e4390b..b0f1d3c30a0ea 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -10,6 +10,7 @@ import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.search.SearchShardTarget; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; @@ -43,7 +44,7 @@ public abstract class SearchExecEngine new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); delegates.add(plugin.indexingEngine()); } catch (NullPointerException e) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 1a0b8b4f94c3e..d24a847d30d46 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -55,17 +55,21 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic // Create read specific engines for each format which is associated with shard for(SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { - SearchExecEngine searchExecEngine = searchEnginePlugin.createEngine(dataFormat, + List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); + SearchExecEngine newSearchEngine = searchEnginePlugin.createEngine(dataFormat, catalogSnapshot.getSearchableFiles(dataFormat.toString())); - readEngines.getOrDefault(dataFormat, new ArrayList<>()).add(searchExecEngine); + + currentSearchEngines.add(newSearchEngine); + readEngines.put(dataFormat, currentSearchEngines); + // TODO : figure out how to do internal and external refresh listeners // Maybe external refresh should be managed in opensearch core and plugins should always give // internal refresh managers // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger // - if(searchExecEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { - catalogSnapshotAwareRefreshListeners.add(searchExecEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + if(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { + catalogSnapshotAwareRefreshListeners.add(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); } } } diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 3e5b4c717103d..42c6fdbb6bbb2 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -831,14 +831,20 @@ private SearchPhaseResult executeQueryPhase( SearchExecEngine searchExecEngine = readerContext.indexShard() .getIndexingExecutionCoordinator() .getPrimaryReadEngine(); - + SearchShardTarget shardTarget = new SearchShardTarget( + clusterService.localNode().getId(), + readerContext.indexShard().shardId(), + request.getClusterAlias(), + OriginalIndices.NONE + ); try ( Releasable ignored = readerContext.markAsUsed(getKeepAlive(request)); //SearchContext context = createContext(readerContext, request, task, true, isStreamSearch) // Get engine-specific executor and context // TODO : move this logic to work with Lucene - SearchContext context = searchExecEngine.createContext(readerContext, request, task); + + SearchContext context = searchExecEngine.createContext(readerContext, request, shardTarget, task); //SearchContext context = createContext(readerContext, request, task, true) ) { @@ -864,7 +870,7 @@ private SearchPhaseResult executeQueryPhase( //QueryPhaseExecutor queryPhaseExecutor = readEngine.getQueryPhaseExecutor(); // boolean success = queryPhaseExecutor.execute(context); loadOrExecuteQueryPhase(request, context); - queryPhase.execute(context); + //queryPhase.execute(context); // loadOrExecuteQueryPhase(request, context); if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { freeReaderContext(readerContext.id()); diff --git a/server/src/main/java/org/opensearch/search/internal/SearchContext.java b/server/src/main/java/org/opensearch/search/internal/SearchContext.java index e72ceaccfd6ce..c0f68674d737a 100644 --- a/server/src/main/java/org/opensearch/search/internal/SearchContext.java +++ b/server/src/main/java/org/opensearch/search/internal/SearchContext.java @@ -596,7 +596,9 @@ public boolean setFlushModeIfAbsent(FlushMode flushMode) { } - public void setDFResults(Map dfResults) {} + public void setDFResults(Map dfResults) { + + } public Map getDFResults() { return Collections.emptyMap(); From 3accadbef9ff432db0b9b869eb6c2920608d74e9 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Tue, 30 Sep 2025 00:37:15 +0530 Subject: [PATCH 022/112] Changes to make plugin contexts work with source parse Signed-off-by: bharath-techie --- .../datafusion/search/DatafusionContext.java | 8 +++-- .../org/opensearch/search/SearchService.java | 33 ++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 1700a63f3ea5b..4a43ff1f867b4 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -76,6 +76,8 @@ public class DatafusionContext extends SearchContext { private final QueryShardContext queryShardContext; private DatafusionQuery datafusionQuery; private Map dfResults; + private SearchContextAggregations aggregations; + /** * Constructor * @param readerContext The reader context @@ -224,7 +226,7 @@ public ScrollContext scrollContext() { @Override public SearchContextAggregations aggregations() { - return null; + return aggregations; } /** @@ -233,7 +235,8 @@ public SearchContextAggregations aggregations() { */ @Override public SearchContext aggregations(SearchContextAggregations aggregations) { - return null; + this.aggregations = aggregations; + return this; } /** @@ -790,4 +793,5 @@ public void setDFResults(Map dfResults) { public Map getDFResults() { return dfResults; } + } diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 42c6fdbb6bbb2..b2dba4b608507 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -839,15 +839,15 @@ private SearchPhaseResult executeQueryPhase( ); try ( Releasable ignored = readerContext.markAsUsed(getKeepAlive(request)); - //SearchContext context = createContext(readerContext, request, task, true, isStreamSearch) - // Get engine-specific executor and context // TODO : move this logic to work with Lucene - SearchContext context = searchExecEngine.createContext(readerContext, request, shardTarget, task); + SearchContext context = createContext(readerContext, request, task, true, isStreamSearch, searchExecEngine); + //SearchContext context = createContext(readerContext, request, task, true) ) { - + // TODO : this is not correct - need to tie source to plugin context above + //context.aggregations(context1.aggregations()); // TODO Execute plan here // TODO : figure out how to tie this byte[] substraitQuery = request.source().queryPlanIR(); @@ -1284,7 +1284,7 @@ final SearchContext createContext( SearchShardTask task, boolean includeAggregations ) throws IOException { - return createContext(readerContext, request, task, includeAggregations, false); + return createContext(readerContext, request, task, includeAggregations, false, null); } private SearchContext createContext( @@ -1292,9 +1292,18 @@ private SearchContext createContext( ShardSearchRequest request, SearchShardTask task, boolean includeAggregations, - boolean isStreamSearch + boolean isStreamSearch, + SearchExecEngine searchExecEngine ) throws IOException { - final DefaultSearchContext context = createSearchContext(readerContext, request, defaultSearchTimeout, false, isStreamSearch); + //final DefaultSearchContext context = createSearchContext(readerContext, request, defaultSearchTimeout, false, isStreamSearch); + + SearchShardTarget shardTarget = new SearchShardTarget( + clusterService.localNode().getId(), + readerContext.indexShard().shardId(), + request.getClusterAlias(), + OriginalIndices.NONE + ); + SearchContext context = searchExecEngine.createContext(readerContext, request, shardTarget, task); try { if (request.scroll() != null) { context.scrollContext().scroll = request.scroll(); @@ -1560,10 +1569,10 @@ private void processFailure(ReaderContext context, Exception exc) { } } - private void parseSource(DefaultSearchContext context, SearchSourceBuilder source, boolean includeAggregations) { + private void parseSource(SearchContext context, SearchSourceBuilder source, boolean includeAggregations) { // nothing to parse... if (source == null) { - context.evaluateRequestShouldUseConcurrentSearch(); + // context.evaluateRequestShouldUseConcurrentSearch(); // TODO : specific to default search context return; } @@ -1720,7 +1729,7 @@ private void parseSource(DefaultSearchContext context, SearchSourceBuilder sourc if (context.scrollContext() == null && !(context.readerContext() instanceof PitReaderContext)) { throw new SearchException(shardTarget, "`slice` cannot be used outside of a scroll context or PIT context"); } - context.sliceBuilder(source.slice()); + // context.sliceBuilder(source.slice()); // TODO : specific to default search context } if (source.storedFields() != null) { @@ -1754,13 +1763,13 @@ private void parseSource(DefaultSearchContext context, SearchSourceBuilder sourc final CollapseContext collapseContext = source.collapse().build(queryShardContext); context.collapse(collapseContext); } - context.evaluateRequestShouldUseConcurrentSearch(); + // context.evaluateRequestShouldUseConcurrentSearch(); // TODO : specific to default search context if (source.profile()) { final Function>> pluginProfileMetricsSupplier = (query) -> pluginProfilers.stream() .flatMap(p -> p.getQueryProfileMetrics(context, query).stream()) .toList(); Profilers profilers = new Profilers(context.searcher(), context.shouldUseConcurrentSearch(), pluginProfileMetricsSupplier); - context.setProfilers(profilers); + // context.setProfilers(profilers); // TODO : specific to default search context } if (context.getStarTreeIndexEnabled() && StarTreeQueryHelper.isStarTreeSupported(context)) { From 86da8d62461c2cee1621f29714521c4ce8453e0c Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Thu, 2 Oct 2025 22:49:45 -0700 Subject: [PATCH 023/112] Fixing end to end flow for pure aggregations (#19494) * Integrate aggregators to convert result from datafusion Signed-off-by: expani * Initialised bigArrays and queryCollManagers for DatafusionContext Signed-off-by: expani * Refactored to set agg result within utility Signed-off-by: expani --------- Signed-off-by: expani --- .../datafusion/DatafusionEngine.java | 8 +-- .../datafusion/search/DatafusionContext.java | 11 ++-- .../index/engine/SearchExecEngine.java | 3 +- .../org/opensearch/search/SearchService.java | 4 +- .../opensearch/search/query/QueryPhase.java | 4 +- .../SearchEngineResultConversionUtils.java | 52 +++++++++++-------- 6 files changed, 48 insertions(+), 34 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 719ff0baa9d3f..991409d81c95d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -16,6 +16,7 @@ import org.apache.logging.log4j.Logger; import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.lease.Releasables; +import org.opensearch.common.util.BigArrays; import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.datafusion.search.DatafusionContext; import org.opensearch.datafusion.search.DatafusionQuery; @@ -33,6 +34,7 @@ import org.opensearch.search.SearchShardTarget; import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.search.internal.ReaderContext; +import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; @@ -57,7 +59,7 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService) throws IOException { this.dataFormat = dataFormat; - this.datafusionReaderManager = new DatafusionReaderManager("/Users/gbh/Downloads/res", formatCatalogSnapshot); + this.datafusionReaderManager = new DatafusionReaderManager("/Users/anijainc/Desktop/BLRBackups/AOS_Search/Mustang/res", formatCatalogSnapshot); this.datafusionService = dataFusionService; } @@ -72,8 +74,8 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { } @Override - public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task) throws IOException { - DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this); + public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, BigArrays bigArrays) throws IOException { + DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this, bigArrays); // Parse source datafusionContext.datafusionQuery(new DatafusionQuery(request.source().queryPlanIR(), new ArrayList<>())); return datafusionContext; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 4a43ff1f867b4..c1cb5e00c7d4b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -57,6 +57,7 @@ import org.opensearch.search.suggest.SuggestionSearchContext; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -77,6 +78,8 @@ public class DatafusionContext extends SearchContext { private DatafusionQuery datafusionQuery; private Map dfResults; private SearchContextAggregations aggregations; + private final BigArrays bigArrays; + private final Map, CollectorManager> queryCollectorManagers = new HashMap<>(); /** * Constructor @@ -90,7 +93,8 @@ public DatafusionContext( ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, - DatafusionEngine engine) { + DatafusionEngine engine, + BigArrays bigArrays) { this.readerContext = readerContext; this.indexShard = readerContext.indexShard(); this.request = request; @@ -108,6 +112,7 @@ public DatafusionContext( false, // reevaluate the usage false // specific to lucene ); + this.bigArrays = bigArrays; } /** @@ -383,7 +388,7 @@ public SimilarityService similarityService() { @Override public BigArrays bigArrays() { - return null; + return bigArrays; } @Override @@ -736,7 +741,7 @@ public long getRelativeTimeInMillis() { @Override public Map, CollectorManager> queryCollectorManagers() { - return Map.of(); + return queryCollectorManagers; } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index b0f1d3c30a0ea..4bbd54c273b07 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -10,6 +10,7 @@ import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.common.util.BigArrays; import org.opensearch.search.SearchShardTarget; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; @@ -44,7 +45,7 @@ public abstract class SearchExecEngine dfResult = searchContext.getDFResults(); + private static final Logger LOGGER = LogManager.getLogger(SearchEngineResultConversionUtils.class); - // Create aggregators which will process the result from DataFusion - try { + public static void convertDFResultGeneric(SearchContext searchContext) { + if (searchContext.aggregations() != null) { + Map dfResult = searchContext.getDFResults(); - List aggregators = new ArrayList<>(); + // Create aggregators which will process the result from DataFusion + try { - if (searchContext.aggregations().factories().hasGlobalAggregator()) { - aggregators.addAll(searchContext.aggregations().factories().createTopLevelGlobalAggregators(searchContext)); - } + List aggregators = new ArrayList<>(); - if (searchContext.aggregations().factories().hasNonGlobalAggregator()) { - aggregators.addAll(searchContext.aggregations().factories().createTopLevelNonGlobalAggregators(searchContext)); - } + if (searchContext.aggregations().factories().hasGlobalAggregator()) { + aggregators.addAll(searchContext.aggregations().factories().createTopLevelGlobalAggregators(searchContext)); + } - List shardResultConvertors = aggregators.stream().map(x -> { - if (x instanceof ShardResultConvertor) { - return ((ShardResultConvertor) x); - } else { - throw new UnsupportedOperationException("Aggregator doesn't support converting results from shard: " + x); + if (searchContext.aggregations().factories().hasNonGlobalAggregator()) { + aggregators.addAll(searchContext.aggregations().factories().createTopLevelNonGlobalAggregators(searchContext)); } - }).toList(); - return InternalAggregations.from( - shardResultConvertors.stream().flatMap(x -> x.convert(dfResult).stream()).collect(Collectors.toList()) - ); - } catch (IOException e) { - throw new RuntimeException(e); + List shardResultConvertors = aggregators.stream().map(x -> { + if (x instanceof ShardResultConvertor) { + return ((ShardResultConvertor) x); + } else { + throw new UnsupportedOperationException("Aggregator doesn't support converting results from shard: " + x); + } + }).toList(); + + InternalAggregations internalAggregations = InternalAggregations.from( + shardResultConvertors.stream().flatMap(x -> x.convert(dfResult).stream()).collect(Collectors.toList()) + ); + LOGGER.info("Internal Aggregations converted {}", internalAggregations.asMap()); + searchContext.queryResult().aggregations(internalAggregations); + } catch (IOException e) { + throw new RuntimeException(e); + } } } From a8ddfcbee1668c24bd021e297f5a86e8933e0cc8 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Fri, 3 Oct 2025 15:50:33 +0530 Subject: [PATCH 024/112] Indexing integration Co-authored-by: Arpit Bandejiya Signed-off-by: bharath-techie --- .gitignore | 8 + .../gradle/testclusters/RunTask.java | 2 + gradle/missing-javadoc.gradle | 3 + .../execution/search/DataFormat.java | 3 +- modules/parquet-data-format/build.gradle | 226 ++++++++++++ modules/parquet-data-format/gradle.properties | 11 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 14 + modules/parquet-data-format/gradlew | 252 +++++++++++++ modules/parquet-data-format/gradlew.bat | 94 +++++ modules/parquet-data-format/settings.gradle | 10 + .../ParquetDataFormatPlugin.java | 87 +++++ .../parquetdataformat/bridge/ArrowExport.java | 37 ++ .../parquetdataformat/bridge/RustBridge.java | 101 ++++++ .../converter/FieldTypeConverter.java | 135 +++++++ .../converter/ParquetFieldType.java | 48 +++ .../engine/DummyDataUtils.java | 60 ++++ .../engine/ParquetDataFormat.java | 58 +++ .../engine/ParquetExecutionEngine.java | 84 +++++ .../engine/read/ParquetDataSourceCodec.java | 147 ++++++++ .../engine/read/ParquetRecordBatchStream.java | 119 +++++++ .../engine/read/package-info.java | 13 + .../fields/ArrowFieldRegistry.java | 103 ++++++ .../fields/BooleanParquetField.java | 23 ++ .../fields/DateParquetField.java | 19 + .../fields/KeywordParquetField.java | 23 ++ .../fields/ParquetField.java | 23 ++ .../fields/ParquetFieldUtil.java | 33 ++ .../fields/TextParquetField.java | 24 ++ .../fields/number/ByteParquetField.java | 28 ++ .../fields/number/DoubleParquetField.java | 28 ++ .../fields/number/FloatParquetField.java | 28 ++ .../fields/number/HalfFloatParquetField.java | 28 ++ .../fields/number/IntegerParquetField.java | 28 ++ .../fields/number/LongParquetField.java | 28 ++ .../fields/number/ShortParquetField.java | 28 ++ .../number/UnsignedLongParquetField.java | 29 ++ .../memory/ArrowBufferPool.java | 215 ++++++++++++ .../memory/MemoryPressureMonitor.java | 274 +++++++++++++++ .../rowid/RowIdGenerator.java | 81 +++++ .../parquetdataformat/rowid/RowIdTracker.java | 204 +++++++++++ .../parquetdataformat/vsr/ManagedVSR.java | 259 ++++++++++++++ .../parquetdataformat/vsr/VSRManager.java | 273 +++++++++++++++ .../parquetdataformat/vsr/VSRPool.java | 331 ++++++++++++++++++ .../parquetdataformat/vsr/VSRState.java | 28 ++ .../writer/ParquetDocumentInput.java | 68 ++++ .../writer/ParquetWriter.java | 73 ++++ ...rized.execution.search.spi.DataSourceCodec | 1 + .../src/main/rust/Cargo.toml | 16 + .../src/main/rust/src/context.rs | 70 ++++ .../src/main/rust/src/csv_exec.rs | 24 ++ .../src/main/rust/src/lib.rs | 249 +++++++++++++ .../src/main/rust/src/read_lib.rs | 198 +++++++++++ .../src/main/rust/src/runtime.rs | 27 ++ .../src/main/rust/src/stream.rs | 43 +++ .../src/main/rust/src/substrait.rs | 37 ++ .../src/main/rust/src/util.rs | 63 ++++ .../ParquetDataFormatPluginIT.java | 41 +++ .../ParquetDataFormatTests.java | 30 ++ ...arquetDataFormatClientYamlTestSuiteIT.java | 26 ++ .../resources/rest-api-spec/test/10_basic.yml | 8 + .../datafusion/csv/CsvDataFormatPlugin.java | 4 +- plugins/engine-datafusion/jni/src/lib.rs | 2 +- .../datafusion/DataFusionPlugin.java | 5 +- .../datafusion/DatafusionEngine.java | 7 +- .../datafusion/search/DatafusionReader.java | 14 +- .../search/DatafusionReaderManager.java | 9 +- server/build.gradle | 3 +- .../index/engine/DataFormatPlugin.java | 6 +- .../org/opensearch/index/engine/Engine.java | 8 +- .../index/engine/InternalEngine.java | 2 +- .../engine/exec/bridge/CheckpointState.java | 39 +++ .../index/engine/exec/bridge/Indexer.java | 94 +++++ .../engine/exec/bridge/IndexingThrottler.java | 37 ++ .../index/engine/exec/bridge/StatsHolder.java | 33 ++ .../composite/CompositeDataFormatWriter.java | 9 +- .../CompositeIndexingExecutionEngine.java | 26 +- .../engine/exec/coord/CompositeEngine.java | 124 ++++++- ...nCoordinator.java => IndexingManager.java} | 9 +- .../engine/exec/lucene/LuceneIEEngine.java | 133 +++++++ .../index/mapper/BooleanFieldMapper.java | 24 +- .../index/mapper/DateFieldMapper.java | 32 +- .../index/mapper/DocumentMapper.java | 5 + .../index/mapper/DocumentParser.java | 14 +- .../index/mapper/KeywordFieldMapper.java | 28 +- .../index/mapper/MappedFieldType.java | 10 + .../index/mapper/NumberFieldMapper.java | 4 +- .../opensearch/index/mapper/ParseContext.java | 26 ++ .../index/mapper/ParsedDocument.java | 25 ++ .../opensearch/index/shard/IndexShard.java | 258 ++++++++------ .../opensearch/indices/IndicesService.java | 5 +- .../opensearch/plugins/DataSourcePlugin.java | 4 +- .../plugins/SearchEnginePlugin.java | 3 +- 93 files changed, 5431 insertions(+), 195 deletions(-) create mode 100644 modules/parquet-data-format/build.gradle create mode 100644 modules/parquet-data-format/gradle.properties create mode 100644 modules/parquet-data-format/gradle/wrapper/gradle-wrapper.jar create mode 100644 modules/parquet-data-format/gradle/wrapper/gradle-wrapper.properties create mode 100755 modules/parquet-data-format/gradlew create mode 100644 modules/parquet-data-format/gradlew.bat create mode 100644 modules/parquet-data-format/settings.gradle create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/FieldTypeConverter.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/ParquetFieldType.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/DummyDataUtils.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetDataFormat.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdGenerator.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdTracker.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRState.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java create mode 100644 modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec create mode 100644 modules/parquet-data-format/src/main/rust/Cargo.toml create mode 100644 modules/parquet-data-format/src/main/rust/src/context.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/csv_exec.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/lib.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/read_lib.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/runtime.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/stream.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/substrait.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/util.rs create mode 100644 modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatPluginIT.java create mode 100644 modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatTests.java create mode 100644 modules/parquet-data-format/src/yamlRestTest/java/org.opensearch/parquetdataformat/ParquetDataFormatClientYamlTestSuiteIT.java create mode 100644 modules/parquet-data-format/src/yamlRestTest/resources/rest-api-spec/test/10_basic.yml create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/bridge/CheckpointState.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/bridge/IndexingThrottler.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/bridge/StatsHolder.java rename server/src/main/java/org/opensearch/index/engine/exec/coord/{IndexingExecutionCoordinator.java => IndexingManager.java} (92%) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java diff --git a/.gitignore b/.gitignore index ea5499ceb89c6..53253b95b3409 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,12 @@ CLAUDE.md build-idea/ out/ +modules/parquet-data-format/src/main/rust/target/* +libs/dataformat-csv/jni/target/* +libs/dataformat-csv/src/main/resources/* +plugins/dataformat-csv/src/main/resources/* +libs/dataformat-csv/jni/Cargo.lock + # include shared intellij config !.idea/inspectionProfiles/Project_Default.xml !.idea/runConfigurations/Debug_OpenSearch.xml @@ -71,3 +77,5 @@ doc-tools/missing-doclet/bin/ /plugins/dataformat-csv/jni/target /plugins/dataformat-csv/jni/Cargo.lock +/modules/parquet-data-format/src/main/rust/target +/modules/parquet-data-format/src/main/resources/native/ diff --git a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/RunTask.java b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/RunTask.java index c5035f3b082fe..8c4bbe6c2db42 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/RunTask.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/RunTask.java @@ -168,6 +168,8 @@ public void beforeStart() { firstNode.setting("discovery.seed_hosts", LOCALHOST_ADDRESS_PREFIX + DEFAULT_TRANSPORT_PORT); cluster.setPreserveDataDir(preserveData); for (OpenSearchNode node : cluster.getNodes()) { + // TODO : remove this - this disables assertions + node.jvmArgs(" -da "); if (node != firstNode) { node.setHttpPort(String.valueOf(httpPort)); httpPort++; diff --git a/gradle/missing-javadoc.gradle b/gradle/missing-javadoc.gradle index 9e5e808c5ab0b..f27b7debc04fc 100644 --- a/gradle/missing-javadoc.gradle +++ b/gradle/missing-javadoc.gradle @@ -163,6 +163,9 @@ configure([ project(":test:logger-usage"), project(":libs:opensearch-vectorized-exec-spi"), // TODO project(":plugins:engine-datafusion"), //TODO + project(":server"), + project(":modules:parquet-data-format"), + project(":plugins:dataformat-csv"), //TODO ]) { project.tasks.withType(MissingJavadocTask) { isExcluded = true diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java index 9df8609efbdf3..cd75df3da20bd 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/DataFormat.java @@ -16,7 +16,8 @@ @ExperimentalApi public enum DataFormat { /** CSV Format*/ - CSV("csv"), + CSV("parquet"), + PARQUET("parquet"), /** Text Format */ Text("text"); diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle new file mode 100644 index 0000000000000..27333467832cc --- /dev/null +++ b/modules/parquet-data-format/build.gradle @@ -0,0 +1,226 @@ +import org.opensearch.gradle.test.RestIntegTestTask + +apply plugin: 'java' +apply plugin: 'idea' +apply plugin: 'eclipse' +apply plugin: 'opensearch.opensearchplugin' +apply plugin: 'opensearch.yaml-rest-test' +apply plugin: 'opensearch.pluginzip' +apply plugin: 'opensearch.java-agent' + +def pluginName = 'ParquetDataFormat' +def pluginDescription = 'Parquet data format plugin' +def packagePath = 'com.parquet' +def pathToPlugin = 'parquetdataformat' +def pluginClassName = 'ParquetDataFormatPlugin' +group = "ParquetDataFormatGroup" + +java { + targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_21 +} + +tasks.register("preparePluginPathDirs") { + mustRunAfter clean + doLast { + def newPath = pathToPlugin.replace(".", "/") + mkdir "src/main/java/$packagePath/$newPath" + mkdir "src/test/java/$packagePath/$newPath" + mkdir "src/yamlRestTest/java/$packagePath/$newPath" + } +} + +publishing { + publications { + pluginZip(MavenPublication) { publication -> + pom { + name = pluginName + description = pluginDescription + licenses { + license { + name = "The Apache License, Version 2.0" + url = "http://www.apache.org/licenses/LICENSE-2.0.txt" + } + } + developers { + developer { + name = "OpenSearch" + url = "https://github.com/opensearch-project/opensearch-plugin-template-java" + } + } + } + } + } +} + +opensearchplugin { + name = pluginName + description = pluginDescription + classname = "${packagePath}.${pathToPlugin}.${pluginClassName}" + licenseFile = rootProject.file('LICENSE.txt') + noticeFile = rootProject.file('NOTICE.txt') +} + +// This requires an additional Jar not published as part of build-tools +loggerUsageCheck.enabled = false + +// No need to validate pom, as we do not upload to maven/sonatype +validateNebulaPom.enabled = false + +buildscript { + ext { + opensearch_version = System.getProperty("opensearch.version", "3.3.0-SNAPSHOT") + } + + repositories { + mavenLocal() + maven { url = "https://central.sonatype.com/repository/maven-snapshots/" } + mavenCentral() + maven { url = "https://plugins.gradle.org/m2/" } + } + + dependencies { + classpath "org.opensearch.gradle:build-tools:${opensearch_version}" + } +} + +repositories { + mavenLocal() + maven { url = "https://central.sonatype.com/repository/maven-snapshots/" } + mavenCentral() + maven { url = "https://plugins.gradle.org/m2/" } +} + +configurations.all { + resolutionStrategy { + force 'commons-codec:commons-codec:1.18.0' + force 'org.slf4j:slf4j-api:2.0.17' + } +} + +dependencies { + // Apache Arrow dependencies (using stable version with unsafe allocator) + implementation 'org.apache.arrow:arrow-vector:17.0.0' + implementation 'org.apache.arrow:arrow-memory-core:17.0.0' + implementation 'org.apache.arrow:arrow-memory-unsafe:17.0.0' + implementation 'org.apache.arrow:arrow-format:17.0.0' + implementation 'org.apache.arrow:arrow-c-data:17.0.0' + + // Checker Framework annotations (required by Arrow) + implementation 'org.checkerframework:checker-qual:3.42.0' + + // Jackson dependencies required by Arrow + implementation 'com.fasterxml.jackson.core:jackson-core:2.18.2' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.18.2' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.18.2' + + // FlatBuffers dependency required by Arrow + implementation 'com.google.flatbuffers:flatbuffers-java:2.0.0' + + // Netty dependencies required by Arrow memory management + implementation 'io.netty:netty-buffer:4.1.118.Final' + implementation 'io.netty:netty-common:4.1.118.Final' + + // SLF4J logging implementation (required by Apache Arrow) + implementation 'org.slf4j:slf4j-api:2.0.17' +} + +test { + include '**/*Tests.class' + // JVM args for Java 9+ only - remove if using Java 8 + if (JavaVersion.current().isJava9Compatible()) { + jvmArgs '--add-opens=java.base/java.nio=ALL-UNNAMED' + jvmArgs '--add-opens=java.base/sun.nio.ch=ALL-UNNAMED' + } +} + +task integTest(type: RestIntegTestTask) { + description = "Run tests against a cluster" + testClassesDirs = sourceSets.test.output.classesDirs + classpath = sourceSets.test.runtimeClasspath +} +tasks.named("check").configure { dependsOn(integTest) } + +integTest { + // JVM arguments required for Arrow memory access (Java 9+ only) + if (JavaVersion.current().isJava9Compatible()) { + jvmArgs '--add-opens=java.base/java.nio=ALL-UNNAMED' + jvmArgs '--add-opens=java.base/sun.nio.ch=ALL-UNNAMED' + } + + // The --debug-jvm command-line option makes the cluster debuggable; this makes the tests debuggable + if (System.getProperty("test.debug") != null) { + jvmArgs '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005' + } +} + +testClusters.integTest { + testDistribution = "INTEG_TEST" + + // This installs our plugin into the testClusters + plugin(project.tasks.bundlePlugin.archiveFile) +} + +run { + useCluster testClusters.integTest +} + +// updateVersion: Task to auto update version to the next development iteration +tasks.register('buildRust', Exec) { + workingDir = file("${projectDir}/src/main/rust") + commandLine = ['cargo', 'build', '--release'] +} + +tasks.register('copyNativeLib', Copy) { + dependsOn buildRust + from "src/main/rust/target/release" + into "src/main/resources/native" + include "**/libparquet_dataformat_jni.*" + include "**/parquet_dataformat_jni.dll" + + // Set strategy to avoid errors on duplicate files + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + + eachFile { file -> + def os = System.getProperty('os.name').toLowerCase() + def arch = System.getProperty('os.arch').toLowerCase() + + def osDir = os.contains('win') ? 'windows' : os.contains('mac') ? 'macos' : 'linux' + def archDir = arch.contains('aarch64') || arch.contains('arm64') ? 'aarch64' : + arch.contains('64') ? 'x86_64' : 'x86' + + file.path = "${osDir}/${archDir}/${file.name}" + } + + doLast { + fileTree(destinationDir).visit { FileVisitDetails fvd -> + if (!fvd.isDirectory()) { + def file = fvd.file + if (!org.gradle.internal.os.OperatingSystem.current().isWindows()) { + file.setExecutable(false, false) + } + } + } + } + +} + +// Wire Rust build tasks into the Gradle build lifecycle +compileJava.dependsOn copyNativeLib +processResources.dependsOn copyNativeLib +sourcesJar.dependsOn copyNativeLib +copyNativeLib.mustRunAfter clean +buildRust.mustRunAfter clean + +task updateVersion { + onlyIf { System.getProperty('newVersion') } + doLast { + ext.newVersion = System.getProperty('newVersion') + println "Setting version to ${newVersion}." + // String tokenization to support -SNAPSHOT + ant.replaceregexp(file:'build.gradle', match: '"opensearch.version", "\\d.*"', replace: '"opensearch.version", "' + newVersion.tokenize('-')[0] + '-SNAPSHOT"', flags:'g', byline:true) + } +} + +// Disable specific license tasks +licenseHeaders.enabled = false diff --git a/modules/parquet-data-format/gradle.properties b/modules/parquet-data-format/gradle.properties new file mode 100644 index 0000000000000..7717686e6e937 --- /dev/null +++ b/modules/parquet-data-format/gradle.properties @@ -0,0 +1,11 @@ +# +# SPDX-License-Identifier: Apache-2.0 +# +# The OpenSearch Contributors require contributions made to +# this file be licensed under the Apache-2.0 license or a +# compatible open source license. +# + +org.gradle.caching=true +org.gradle.warning.mode=none +org.gradle.parallel=true diff --git a/modules/parquet-data-format/gradle/wrapper/gradle-wrapper.jar b/modules/parquet-data-format/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/modules/parquet-data-format/gradle/wrapper/gradle-wrapper.properties b/modules/parquet-data-format/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000..54d42eff023d5 --- /dev/null +++ b/modules/parquet-data-format/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,14 @@ +# +# SPDX-License-Identifier: Apache-2.0 +# +# The OpenSearch Contributors require contributions made to +# this file be licensed under the Apache-2.0 license or a +# compatible open source license. +# + +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionSha256Sum=2ab88d6de2c23e6adae7363ae6e29cbdd2a709e992929b48b6530fd0c7133bd6 diff --git a/modules/parquet-data-format/gradlew b/modules/parquet-data-format/gradlew new file mode 100755 index 0000000000000..f5feea6d6b116 --- /dev/null +++ b/modules/parquet-data-format/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/modules/parquet-data-format/gradlew.bat b/modules/parquet-data-format/gradlew.bat new file mode 100644 index 0000000000000..9b42019c7915b --- /dev/null +++ b/modules/parquet-data-format/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/modules/parquet-data-format/settings.gradle b/modules/parquet-data-format/settings.gradle new file mode 100644 index 0000000000000..6f5da74a14d2d --- /dev/null +++ b/modules/parquet-data-format/settings.gradle @@ -0,0 +1,10 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user manual at https://docs.gradle.org/6.5.1/userguide/multi_project_builds.html + */ + +rootProject.name = 'plugin-template' diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java new file mode 100644 index 0000000000000..e37b1a5ca543e --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java @@ -0,0 +1,87 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +package com.parquet.parquetdataformat; + +import com.parquet.parquetdataformat.fields.ParquetFieldUtil; +import com.parquet.parquetdataformat.writer.ParquetWriter; +import org.opensearch.index.engine.DataFormatPlugin; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.engine.ParquetExecutionEngine; +import org.opensearch.index.shard.ShardPath; +import org.opensearch.plugins.DataSourcePlugin; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.plugins.Plugin; + +import java.io.IOException; + +/** + * OpenSearch plugin that provides Parquet data format support for indexing operations. + * + *

This plugin implements the Project Mustang design for writing OpenSearch documents + * to Parquet format using Apache Arrow as the intermediate representation and a native + * Rust backend for high-performance Parquet file generation. + * + *

Key features provided by this plugin: + *

    + *
  • Integration with OpenSearch's DataFormatPlugin interface
  • + *
  • Parquet-based execution engine with Arrow memory management
  • + *
  • High-performance native Rust backend via JNI bridge
  • + *
  • Memory pressure monitoring and backpressure mechanisms
  • + *
  • Columnar storage optimization for analytical workloads
  • + *
+ * + *

The plugin orchestrates the complete pipeline from OpenSearch document indexing + * through Arrow-based batching to final Parquet file generation. It provides both + * the execution engine interface for OpenSearch integration and testing utilities + * for development purposes. + * + *

Architecture components: + *

    + *
  • {@link ParquetExecutionEngine} - Main execution engine implementation
  • + *
  • {@link ParquetWriter} - Document writer with Arrow integration
  • + *
  • {@link RustBridge} - JNI interface to native Parquet operations
  • + *
  • Memory management via {@link com.parquet.parquetdataformat.memory} package
  • + *
+ */ +public class ParquetDataFormatPlugin extends Plugin implements DataFormatPlugin, DataSourcePlugin { + + @Override + @SuppressWarnings("unchecked") + public IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath) { + return (IndexingExecutionEngine) new ParquetExecutionEngine(() -> ParquetFieldUtil.getSchema(mapperService), shardPath); + } + + @Override + public DataFormat getDataFormat() { + return null; + } + + // for testing locally only + public void indexDataToParquetEngine() throws IOException { + //Create Engine (take Schema as Input) +// IndexingExecutionEngine indexingExecutionEngine = indexingEngine(); +// //Create Writer +// ParquetWriter writer = (ParquetWriter) indexingExecutionEngine.createWriter(); +// for (int i=0;i<10;i++) { +// //Get DocumentInput +// DocumentInput documentInput = writer.newDocumentInput(); +// ParquetDocumentInput parquetDocumentInput = (ParquetDocumentInput) documentInput; +// //Populate data +// DummyDataUtils.populateDocumentInput(parquetDocumentInput); +// //Write document +// writer.addDoc(parquetDocumentInput); +// } +// writer.flush(null); +// writer.close(); +// //refresh engine +// indexingExecutionEngine.refresh(null); + } + +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java new file mode 100644 index 0000000000000..694df0c4a9f47 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java @@ -0,0 +1,37 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.bridge; + +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; + +/** + * Container for Arrow C Data Interface exports. + * Provides a safe wrapper around ArrowArray and ArrowSchema with proper resource management. + */ +public record ArrowExport(ArrowArray arrowArray, ArrowSchema arrowSchema) implements AutoCloseable { + + public long getArrayAddress() { + return arrowArray.memoryAddress(); + } + + public long getSchemaAddress() { + return arrowSchema.memoryAddress(); + } + + @Override + public void close() { + if (arrowArray != null) { + arrowArray.close(); + } + if (arrowSchema != null) { + arrowSchema.close(); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java new file mode 100644 index 0000000000000..c8dda6dbc195c --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -0,0 +1,101 @@ +package com.parquet.parquetdataformat.bridge; + +import org.opensearch.common.SuppressForbidden; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.Locale; + +/** + * JNI bridge to the native Rust Parquet writer implementation. + * + *

This class provides the interface between Java and the native Rust library + * that handles low-level Parquet file operations. It automatically loads the + * appropriate native library for the current platform and architecture. + * + *

Supported platforms: + *

    + *
  • Windows (x86, x86_64, aarch64)
  • + *
  • macOS (x86_64, aarch64/arm64)
  • + *
  • Linux (x86, x86_64, aarch64)
  • + *
+ * + *

The native library is extracted from resources and loaded as a temporary file, + * which is automatically cleaned up on JVM shutdown. + * + *

All native methods operate on Arrow C Data Interface pointers and return + * integer status codes for error handling. + */ +public class RustBridge { + + static { + try { + loadNativeLibrary(); + } catch (Exception e) { + throw new RuntimeException("Failed to load native Rust library", e); + } + } + + @SuppressForbidden(reason = "Need to create temp files") + private static void loadNativeLibrary() { + + String LIB_NAME = "parquet_dataformat_jni"; + String os = System.getProperty("os.name").toLowerCase(Locale.ROOT); + String arch = System.getProperty("os.arch").toLowerCase(Locale.ROOT); + + String osDir = os.contains("win") ? "windows" : + os.contains("mac") ? "macos" : "linux"; + String archDir = arch.contains("aarch64") || arch.contains("arm64") ? "aarch64" : + arch.contains("64") ? "x86_64" : "x86"; + + String extension = os.contains("win") ? ".dll" : + os.contains("mac") ? ".dylib" : ".so"; + + String resourcePath = String.format(Locale.ROOT, "/native/%s/%s/lib%s%s", osDir, archDir, LIB_NAME, extension); + + try (InputStream is = RustBridge.class.getResourceAsStream(resourcePath)) { + if (is == null) { + throw new UnsatisfiedLinkError("Native library not found in resources: " + resourcePath); + } + + Path tempFile = Files.createTempFile("lib" + LIB_NAME, extension); + + // Register deletion hook on JVM shutdown + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + Files.deleteIfExists(tempFile); + } catch (IOException ignored) {} + })); + + Files.copy(is, tempFile, StandardCopyOption.REPLACE_EXISTING); + + System.load(tempFile.toAbsolutePath().toString()); + } catch (IOException e) { + throw new RuntimeException("Failed to load native library from resources", e); + } + } + + // Enhanced native methods that handle validation and provide better error reporting + public static native void createWriter(String file, long schemaAddress) throws IOException; + public static native void write(String file, long arrayAddress, long schemaAddress) throws IOException; + public static native void closeWriter(String file) throws IOException; + public static native void flushToDisk(String file) throws IOException; + + // State and metrics methods handled on Rust side + public static native boolean writerExists(String file); + public static native long getWriteCount(String file); + public static native long getTotalRows(String file); + public static native String[] getActiveWriters(); + + // Validation helpers that could be implemented natively for better performance + public static boolean isValidFileName(String fileName) { + return fileName != null && !fileName.trim().isEmpty(); + } + + public static boolean isValidMemoryAddress(long address) { + return address != 0; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/FieldTypeConverter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/FieldTypeConverter.java new file mode 100644 index 0000000000000..b4ace7c4b1953 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/FieldTypeConverter.java @@ -0,0 +1,135 @@ +package com.parquet.parquetdataformat.converter; + +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.apache.arrow.vector.types.TimeUnit; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.apache.lucene.search.Query; +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.TextSearchInfo; +import org.opensearch.index.mapper.ValueFetcher; + +import java.util.HashMap; +import java.util.Map; + +/** + * Utility class for converting between OpenSearch field types and Arrow/Parquet types. + * + *

This converter provides bidirectional mapping between OpenSearch's field type system + * and Apache Arrow's type system, which serves as the bridge to Parquet data representation. + * It handles the complete conversion pipeline from OpenSearch indexed data to columnar + * Parquet storage format. + * + *

Supported type conversions: + *

    + *
  • OpenSearch numeric types (long, integer, short, byte, double, float) → Arrow Int/FloatingPoint
  • + *
  • OpenSearch boolean → Arrow Bool
  • + *
  • OpenSearch date → Arrow Timestamp
  • + *
  • OpenSearch text/keyword → Arrow Utf8
  • + *
+ * + *

The converter also provides reverse mapping capabilities to reconstruct OpenSearch + * field types from Arrow types, enabling proper schema reconstruction during read operations. + * + *

All conversion methods are static and thread-safe, making them suitable for concurrent + * use across multiple writer instances. + */ +public class FieldTypeConverter { + + public static Map convertToArrowFieldMap(MappedFieldType mappedFieldType, Object value) { + Map fieldMap = new HashMap<>(); + FieldType arrowFieldType = convertToArrowFieldType(mappedFieldType); + fieldMap.put(arrowFieldType, value); + return fieldMap; + } + + public static FieldType convertToArrowFieldType(MappedFieldType mappedFieldType) { + ArrowType arrowType = getArrowType(mappedFieldType.typeName()); + return new FieldType(true, arrowType, null); + } + + public static ParquetFieldType convertToParquetFieldType(MappedFieldType mappedFieldType) { + ArrowType arrowType = getArrowType(mappedFieldType.typeName()); + return new ParquetFieldType(mappedFieldType.name(), arrowType); + } + + public static MappedFieldType convertToMappedFieldType(String name, ArrowType arrowType) { + String opensearchType = getOpenSearchType(arrowType); + return new MockMappedFieldType(name, opensearchType); + } + + private static ArrowType getArrowType(String opensearchType) { + switch (opensearchType) { + case "long": + return new ArrowType.Int(64, true); + case "integer": + return new ArrowType.Int(32, true); + case "short": + return new ArrowType.Int(16, true); + case "byte": + return new ArrowType.Int(8, true); + case "double": + return new ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE); + case "float": + return new ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE); + case "boolean": + return new ArrowType.Bool(); + case "date": + return new ArrowType.Timestamp(TimeUnit.MILLISECOND, null); + default: + return new ArrowType.Utf8(); + } + } + + private static String getOpenSearchType(ArrowType arrowType) { + switch (arrowType) { + case ArrowType.Int intType -> { + return switch (intType.getBitWidth()) { + case 8 -> "byte"; + case 16 -> "short"; + case 32 -> "integer"; + case 64 -> "long"; + default -> "integer"; + }; + } + case ArrowType.FloatingPoint fpType -> { + return fpType.getPrecision() == FloatingPointPrecision.DOUBLE ? "double" : "float"; + } + case ArrowType.Bool bool -> { + return "boolean"; + } + case ArrowType.Timestamp timestamp -> { + return "date"; + } + case null, default -> { + return "text"; + } + } + } + + private static class MockMappedFieldType extends MappedFieldType { + private final String type; + + public MockMappedFieldType(String name, String type) { + super(name, true, false, false, TextSearchInfo.NONE, null); + this.type = type; + } + + @Override + public String typeName() { + return type; + } + + @Override + public ValueFetcher valueFetcher(org.opensearch.index.query.QueryShardContext context, + org.opensearch.search.lookup.SearchLookup searchLookup, + String format) { + return null; + } + + @Override + public Query termQuery(Object value, org.opensearch.index.query.QueryShardContext context) { + return null; + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/ParquetFieldType.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/ParquetFieldType.java new file mode 100644 index 0000000000000..84f1b9a4bedd2 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/converter/ParquetFieldType.java @@ -0,0 +1,48 @@ +package com.parquet.parquetdataformat.converter; + +import org.apache.arrow.vector.types.pojo.ArrowType; + +/** + * Represents a field type for Parquet-based document fields. + * + *

This class encapsulates the field name and Arrow type information + * required for proper type mapping between OpenSearch fields and Parquet + * column definitions. It serves as the intermediate representation used + * throughout the Parquet processing pipeline. + * + *

The Arrow type system provides a rich set of data types that can + * accurately represent various field types from OpenSearch, ensuring + * proper data serialization and deserialization. + * + *

Key features: + *

    + *
  • Field name preservation for schema mapping
  • + *
  • Arrow type integration for precise data representation
  • + *
  • Simple mutable structure for field definition building
  • + *
+ */ +public class ParquetFieldType { + private String name; + private ArrowType type; + + public ParquetFieldType(String name, ArrowType type) { + this.name = name; + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public ArrowType getType() { + return type; + } + + public void setType(ArrowType type) { + this.type = type; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/DummyDataUtils.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/DummyDataUtils.java new file mode 100644 index 0000000000000..0d6c2519d463a --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/DummyDataUtils.java @@ -0,0 +1,60 @@ +package com.parquet.parquetdataformat.engine; + +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.opensearch.common.SuppressForbidden; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.mapper.MappedFieldType; +import com.parquet.parquetdataformat.converter.FieldTypeConverter; + +import java.util.Arrays; +import java.util.Random; + +@SuppressForbidden(reason = "Need random for creating temp files") +public class DummyDataUtils { + public static Schema getSchema() { + // Create the most minimal schema possible - just one string field + return new Schema(Arrays.asList( + Field.notNullable(ID, new ArrowType.Int(32, true)), + Field.nullable(NAME, new ArrowType.Utf8()), + Field.nullable(DESIGNATION, new ArrowType.Utf8()), + Field.nullable(SALARY, new ArrowType.Int(32, true)) + )); + } + + public static void populateDocumentInput(DocumentInput documentInput) { + MappedFieldType idField = FieldTypeConverter.convertToMappedFieldType(ID, new ArrowType.Int(32, true)); + documentInput.addField(idField, generateRandomId()); + MappedFieldType nameField = FieldTypeConverter.convertToMappedFieldType(NAME, new ArrowType.Utf8()); + documentInput.addField(nameField, generateRandomName()); + MappedFieldType designationField = FieldTypeConverter.convertToMappedFieldType(DESIGNATION, new ArrowType.Utf8()); + documentInput.addField(designationField, generateRandomDesignation()); + MappedFieldType salaryField = FieldTypeConverter.convertToMappedFieldType(SALARY, new ArrowType.Int(32, true)); + documentInput.addField(salaryField, random.nextInt(100000)); + } + + private static final String ID = "id"; + private static final String NAME = "name"; + private static final String DESIGNATION = "designation"; + private static final String SALARY = "salary"; + private static final String INCREMENT = "increment"; + private static final Random random = new Random(); + private static final String[] NAMES = {"John Doe", "Jane Smith", "Alice Johnson", "Bob Wilson", "Carol Brown"}; + private static final String[] DESIGNATIONS = {"Software Engineer", "Senior Developer", "Team Lead", "Manager", "Architect"}; + + private static int generateRandomId() { + return random.nextInt(1000000); + } + + private static String generateRandomName() { + return NAMES[random.nextInt(NAMES.length)]; + } + + private static String generateRandomDesignation() { + return DESIGNATIONS[random.nextInt(DESIGNATIONS.length)]; + } + + +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetDataFormat.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetDataFormat.java new file mode 100644 index 0000000000000..240a33c10531e --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetDataFormat.java @@ -0,0 +1,58 @@ +package com.parquet.parquetdataformat.engine; + +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.index.engine.exec.DataFormat; + +/** + * Data format implementation for Parquet-based document storage. + * + *

This class integrates with OpenSearch's DataFormat interface to provide + * Parquet file format support within the OpenSearch indexing pipeline. It + * defines the configuration and behavior for the "parquet" data format. + * + *

The implementation provides hooks for: + *

    + *
  • Data format specific settings configuration
  • + *
  • Cluster-level settings management
  • + *
  • Store configuration for Parquet-specific optimizations
  • + *
  • Format identification through the "parquet" name
  • + *
+ * + *

This class serves as the entry point for registering Parquet format + * capabilities with OpenSearch's execution engine framework, allowing + * the system to recognize and utilize Parquet-based storage operations. + */ +public class ParquetDataFormat implements DataFormat { + @Override + public Setting dataFormatSettings() { + return null; + } + + @Override + public Setting clusterLeveldataFormatSettings() { + return null; + } + + @Override + public String name() { + return "parquet"; + } + + @Override + public void configureStore() { + + } + + public static ParquetDataFormat PARQUET_DATA_FORMAT = new ParquetDataFormat(); + + @Override + public boolean equals(Object obj) { + return true; + } + + @Override + public int hashCode() { + return 0; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java new file mode 100644 index 0000000000000..0068cd41e59fe --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -0,0 +1,84 @@ +package com.parquet.parquetdataformat.engine; + +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.engine.exec.*; +import com.parquet.parquetdataformat.writer.ParquetDocumentInput; +import com.parquet.parquetdataformat.writer.ParquetWriter; +import org.opensearch.index.shard.ShardPath; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Supplier; + +import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; + +/** + * Main execution engine for Parquet-based indexing operations in OpenSearch. + * + *

This engine implements OpenSearch's IndexingExecutionEngine interface to provide + * Parquet file generation capabilities within the indexing pipeline. It manages the + * lifecycle of Parquet writers and coordinates the overall document processing workflow. + * + *

Key responsibilities: + *

    + *
  • Writer creation with unique file naming and Arrow schema integration
  • + *
  • Schema-based field type support and validation
  • + *
  • Refresh operations for completing indexing cycles
  • + *
  • Integration with the broader Parquet data format ecosystem
  • + *
+ * + *

The engine uses an atomic counter to ensure unique Parquet file names across + * concurrent operations, following the naming pattern "parquet_file_generation_N.parquet" + * where N is an incrementing sequence number. + * + *

Each writer instance created by this engine is configured with: + *

    + *
  • A unique file name for output isolation
  • + *
  • The Arrow schema provided during engine construction
  • + *
  • Full access to the Parquet processing pipeline via {@link ParquetWriter}
  • + *
+ * + *

The engine is designed to work with {@link ParquetDocumentInput} for document + * processing and integrates seamlessly with OpenSearch's execution framework. + */ +public class ParquetExecutionEngine implements IndexingExecutionEngine { + + public static final String FILE_NAME_PREFIX = "parquet_file_generation"; + AtomicInteger counter; + Supplier schema; + private final List filesWrittenAlready = new ArrayList<>(); + private final ShardPath shardPath; + + public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { + counter = new AtomicInteger(0); + this.schema = schema; + this.shardPath = shardPath; + } + + @Override + public List supportedFieldTypes() { + return List.of(); + } + + @Override + public Writer createWriter() throws IOException { + String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + counter.getAndIncrement() + ".parquet").toString(); + return new ParquetWriter(fileName, schema.get()); + } + + @Override + public RefreshResult refresh(RefreshInput refreshInput) throws IOException { + RefreshResult refreshResult = new RefreshResult(); + filesWrittenAlready.addAll(refreshInput.getFiles()); + refreshResult.add(PARQUET_DATA_FORMAT, filesWrittenAlready); + return refreshResult; + } + + @Override + public DataFormat getDataFormat() { + return new ParquetDataFormat(); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java new file mode 100644 index 0000000000000..21f28bb912164 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java @@ -0,0 +1,147 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.read; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.search.DataFormat; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; + +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Datasource codec implementation for parquet files + */ +public class ParquetDataSourceCodec implements DataSourceCodec { + + private static final Logger logger = LogManager.getLogger(ParquetDataSourceCodec.class); + private static final AtomicLong runtimeIdGenerator = new AtomicLong(0); + private static final AtomicLong sessionIdGenerator = new AtomicLong(0); + private final ConcurrentHashMap sessionContexts = new ConcurrentHashMap<>(); + + // JNI library loading + static { + try { + JniLibraryLoader.loadLibrary(); + logger.info("DataFusion JNI library loaded successfully"); + } catch (Exception e) { + logger.error("Failed to load DataFusion JNI library", e); + throw new RuntimeException("Failed to initialize DataFusion JNI library", e); + } + } + + @Override + public CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Registering directory: {} with {} files", directoryPath, fileNames.size()); + + // Convert file names to arrays for JNI + String[] fileArray = fileNames.toArray(new String[0]); + + // Call native method to register directory + nativeRegisterDirectory("csv_table", directoryPath, fileArray, runtimeId); + return null; + } catch (Exception e) { + logger.error("Failed to register directory: " + directoryPath, e); + throw new CompletionException("Failed to register directory", e); + } + }); + } + + @Override + public CompletableFuture createSessionContext(long globalRuntimeEnvId) { + return CompletableFuture.supplyAsync(() -> { + try { + long sessionId = sessionIdGenerator.incrementAndGet(); + logger.debug("Creating session context with ID: {} for runtime: {}", sessionId, globalRuntimeEnvId); + + // Default configuration + String[] configKeys = { "batch_size", "target_partitions" }; + String[] configValues = { "1024", "4" }; + + // Create native session context + long nativeContextPtr = nativeCreateSessionContext(configKeys, configValues); + sessionContexts.put(sessionId, nativeContextPtr); + + logger.info("Created session context with ID: {}", sessionId); + return sessionId; + } catch (Exception e) { + logger.error("Failed to create session context for runtime: " + globalRuntimeEnvId, e); + throw new CompletionException("Failed to create session context", e); + } + }); + } + + @Override + public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Executing Substrait query for session: {}", sessionContextId); + + Long nativeContextPtr = sessionContexts.get(sessionContextId); + if (nativeContextPtr == null) { + throw new IllegalArgumentException("Invalid session context ID: " + sessionContextId); + } + + // Execute query and get native stream pointer + long nativeStreamPtr = nativeExecuteSubstraitQuery(nativeContextPtr, substraitPlanBytes); + + // Create Java wrapper for the native stream + RecordBatchStream stream = new ParquetRecordBatchStream(nativeStreamPtr); + + logger.info("Successfully executed Substrait query for session: {}", sessionContextId); + return stream; + } catch (Exception e) { + logger.error("Failed to execute Substrait query for session: " + sessionContextId, e); + throw new CompletionException("Failed to execute Substrait query", e); + } + }); + } + + @Override + public CompletableFuture closeSessionContext(long sessionContextId) { + return CompletableFuture.supplyAsync(() -> { + try { + logger.debug("Closing session context: {}", sessionContextId); + + Long nativeContextPtr = sessionContexts.remove(sessionContextId); + if (nativeContextPtr != null) { + nativeCloseSessionContext(nativeContextPtr); + logger.info("Successfully closed session context: {}", sessionContextId); + } else { + logger.warn("Session context not found: {}", sessionContextId); + } + + return null; + } catch (Exception e) { + logger.error("Failed to close session context: " + sessionContextId, e); + throw new CompletionException("Failed to close session context", e); + } + }); + } + + public DataFormat getDataFormat() { + return DataFormat.CSV; + } + + // Native method declarations - these will be implemented in the JNI library + private static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); + + private static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); + + private static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); + + private static native void nativeCloseSessionContext(long sessionContextPtr); +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java new file mode 100644 index 0000000000000..7d007d5584a8d --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java @@ -0,0 +1,119 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.read; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; + +import java.util.concurrent.CompletableFuture; + +/** + * TODO : this need not be here - nothing specific to parquet - move to LIB ? + * Native implementation of RecordBatchStream that wraps a JNI stream pointer. + * This class provides a Java interface over native DataFusion record batches. + */ +public class ParquetRecordBatchStream implements RecordBatchStream { + + private static final Logger logger = LogManager.getLogger(ParquetRecordBatchStream.class); + + private final long nativeStreamPtr; + private volatile boolean closed = false; + private volatile boolean hasNextCached = false; + private volatile boolean hasNextValue = false; + + /** + * Creates a new ParquetRecordBatchStream wrapping the given native stream pointer. + * + * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream + */ + public ParquetRecordBatchStream(long nativeStreamPtr) { + if (nativeStreamPtr == 0) { + throw new IllegalArgumentException("Invalid native stream pointer"); + } + this.nativeStreamPtr = nativeStreamPtr; + logger.debug("Created ParquetRecordBatchStream with pointer: {}", nativeStreamPtr); + } + + @Override + public Object getSchema() { + return "ParquetSchema"; // Placeholder + } + + @Override + public CompletableFuture next() { + // PlaceholderImpl + return CompletableFuture.supplyAsync(() -> { + if (closed) { + return null; + } + + try { + // Get the next batch from native code + String batch = nativeNextBatch(nativeStreamPtr); + + // Reset cached hasNext value since we consumed a batch + hasNextCached = false; + + logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); + return batch; + } catch (Exception e) { + logger.error("Error getting next batch from stream", e); + return null; + } + }); + } + + @Override + public boolean hasNext() { + // Placeholder impl + if (closed) { + return false; + } + + if (hasNextCached) { + return hasNextValue; + } + + try { + // Check if there's a next batch available + // This is a simplified implementation - in practice, you might want to + // peek at the stream without consuming the batch + String nextBatch = nativeNextBatch(nativeStreamPtr); + hasNextValue = (nextBatch != null); + hasNextCached = true; + + logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); + return hasNextValue; + } catch (Exception e) { + logger.error("Error checking for next batch in stream", e); + return false; + } + } + + @Override + public void close() { + if (!closed) { + logger.debug("Closing ParquetRecordBatchStream with pointer: {}", nativeStreamPtr); + try { + nativeCloseStream(nativeStreamPtr); + closed = true; + logger.debug("Successfully closed ParquetRecordBatchStream"); + } catch (Exception e) { + logger.error("Error closing ParquetRecordBatchStream", e); + throw e; + } + } + } + + // Native method declarations + private static native String nativeNextBatch(long streamPtr); + + private static native void nativeCloseStream(long streamPtr); +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java new file mode 100644 index 0000000000000..987c9b9cecef5 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * CSV data format implementation for DataFusion integration. + * Provides CSV file reading capabilities through DataFusion query engine. + */ +package com.parquet.parquetdataformat.read; diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java new file mode 100644 index 0000000000000..143b9837c6970 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java @@ -0,0 +1,103 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.fields.number.ByteParquetField; +import com.parquet.parquetdataformat.fields.number.DoubleParquetField; +import com.parquet.parquetdataformat.fields.number.FloatParquetField; +import com.parquet.parquetdataformat.fields.number.HalfFloatParquetField; +import com.parquet.parquetdataformat.fields.number.IntegerParquetField; +import com.parquet.parquetdataformat.fields.number.LongParquetField; +import com.parquet.parquetdataformat.fields.number.ShortParquetField; +import com.parquet.parquetdataformat.fields.number.UnsignedLongParquetField; +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.apache.arrow.vector.types.TimeUnit; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.BooleanFieldMapper; +import org.opensearch.index.mapper.DateFieldMapper; +import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.NumberFieldMapper; +import org.opensearch.index.mapper.TextFieldMapper; + +import java.util.HashMap; +import java.util.Map; + +public class ArrowFieldRegistry { + + private static final Map FIELD_TYPE_MAP = new HashMap<>(); + private static final Map PARQUET_FIELD_MAP = new HashMap<>(); + + static { + //TODO: darsaga check which fields can be nullable and which can not be + + // Number types + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.HALF_FLOAT.typeName(), + FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.HALF))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.FLOAT.typeName(), + FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.DOUBLE.typeName(), + FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.BYTE.typeName(), + FieldType.nullable(new ArrowType.Int(8, true))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.SHORT.typeName(), + FieldType.nullable(new ArrowType.Int(16, true))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.INTEGER.typeName(), + FieldType.nullable(new ArrowType.Int(32, true))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.LONG.typeName(), + FieldType.nullable(new ArrowType.Int(64, true))); + FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), + FieldType.nullable(new ArrowType.Int(64, false))); + + // Other types + FIELD_TYPE_MAP.put(DateFieldMapper.CONTENT_TYPE, + FieldType.nullable(new ArrowType.Timestamp(TimeUnit.MILLISECOND, null))); + FIELD_TYPE_MAP.put(BooleanFieldMapper.CONTENT_TYPE, + FieldType.nullable(new ArrowType.Bool())); + FIELD_TYPE_MAP.put(KeywordFieldMapper.CONTENT_TYPE, + FieldType.nullable(new ArrowType.Utf8())); + FIELD_TYPE_MAP.put(TextFieldMapper.CONTENT_TYPE, + FieldType.nullable(new ArrowType.Utf8())); + + setUpParquetFieldMap(); + } + + private static void setUpParquetFieldMap() { + + //Number fields + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.HALF_FLOAT.typeName(), new HalfFloatParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.FLOAT.typeName(), new FloatParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.DOUBLE.typeName(), new DoubleParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.BYTE.typeName(), new ByteParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.SHORT.typeName(), new ShortParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.INTEGER.typeName(), new IntegerParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.LONG.typeName(), new LongParquetField()); + PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), new UnsignedLongParquetField()); + + //Date field + PARQUET_FIELD_MAP.put(DateFieldMapper.CONTENT_TYPE, new DateParquetField()); + + //Boolean field + PARQUET_FIELD_MAP.put(BooleanFieldMapper.CONTENT_TYPE, new BooleanParquetField()); + + //Text field + PARQUET_FIELD_MAP.put(TextFieldMapper.CONTENT_TYPE, new TextParquetField()); + + //Keyword field + PARQUET_FIELD_MAP.put(KeywordFieldMapper.CONTENT_TYPE, new KeywordParquetField()); + } + + public static FieldType getFieldType(String typeName) { + return FIELD_TYPE_MAP.get(typeName); + } + + public static ParquetField getParquetField(String typeName) { + return PARQUET_FIELD_MAP.get(typeName); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java new file mode 100644 index 0000000000000..225323e6a7ffe --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.BitVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class BooleanParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + BitVector bitVector = (BitVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + bitVector.setSafe(rowIndex, (Boolean) parseValue ? 1 : 0); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java new file mode 100644 index 0000000000000..5f2170fa95987 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java @@ -0,0 +1,19 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.opensearch.index.mapper.MappedFieldType; + +public class DateParquetField extends ParquetField { + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java new file mode 100644 index 0000000000000..a5837ee851364 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class KeywordParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + textVector.setSafe(rowIndex, parseValue.toString().getBytes()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java new file mode 100644 index 0000000000000..3d52106f7acad --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.opensearch.index.mapper.MappedFieldType; + +public abstract class ParquetField { + public abstract void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue); + + public void createField(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + if (mappedFieldType.isColumnar()) { + addToGroup(mappedFieldType, managedVSR, parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java new file mode 100644 index 0000000000000..a47f35fcd9bb1 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java @@ -0,0 +1,33 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.mapper.Mapper; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.mapper.MetadataFieldMapper; + +import java.util.ArrayList; +import java.util.List; + +public class ParquetFieldUtil { + + public static Schema getSchema(MapperService mapperService) { + List fields = new ArrayList<>(); + + for (Mapper mapper : mapperService.documentMapper().mappers()) { + if (mapper instanceof MetadataFieldMapper) continue; + fields.add(new Field(mapper.name(), ArrowFieldRegistry.getFieldType(mapper.typeName()), null)); + } + + // Create the most minimal schema possible - just one string field + return new Schema(fields); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java new file mode 100644 index 0000000000000..6bcf6d091fd62 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.opensearch.index.mapper.MappedFieldType; + +public class TextParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + textVector.setSafe(rowIndex, parseValue.toString().getBytes()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java new file mode 100644 index 0000000000000..75d0607a18eb7 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.TinyIntVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class ByteParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + TinyIntVector tinyIntVector = (TinyIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + tinyIntVector.setNull(rowCount); + } else { + tinyIntVector.setSafe(rowCount, (Byte) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java new file mode 100644 index 0000000000000..a552efa146bce --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float8Vector; +import org.opensearch.index.mapper.MappedFieldType; + +public class DoubleParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float8Vector float8Vector = (Float8Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + float8Vector.setNull(rowCount); + } else { + float8Vector.setSafe(rowCount, (Double) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java new file mode 100644 index 0000000000000..de10a122f40e7 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float4Vector; +import org.opensearch.index.mapper.MappedFieldType; + +public class FloatParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float4Vector float4Vector = (Float4Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + float4Vector.setNull(rowCount); + } else { + float4Vector.setSafe(rowCount, (Float) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java new file mode 100644 index 0000000000000..4d393d3a804ce --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float2Vector; +import org.opensearch.index.mapper.MappedFieldType; + +public class HalfFloatParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float2Vector float2Vector = (Float2Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + float2Vector.setNull(rowCount); + } else { + float2Vector.setSafe(rowCount, (Short) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java new file mode 100644 index 0000000000000..0a14344b6eaac --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.IntVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class IntegerParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + IntVector intVector = (IntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + intVector.setNull(rowCount); + } else { + intVector.setSafe(rowCount, (Integer) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java new file mode 100644 index 0000000000000..7221d64c6590d --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.BigIntVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class LongParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + BigIntVector bigIntVector = (BigIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + bigIntVector.setNull(rowCount); + } else { + bigIntVector.setSafe(rowCount, (Long) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java new file mode 100644 index 0000000000000..8e28bdda9ba54 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java @@ -0,0 +1,28 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.SmallIntVector; +import org.opensearch.index.mapper.MappedFieldType; + +public class ShortParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + SmallIntVector smallIntVector = (SmallIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + smallIntVector.setNull(rowCount); + } else { + smallIntVector.setSafe(rowCount, (Short) parseValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java new file mode 100644 index 0000000000000..ed5d4f5509a3d --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java @@ -0,0 +1,29 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.UInt8Vector; +import org.opensearch.index.mapper.MappedFieldType; + +public class UnsignedLongParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + UInt8Vector uInt8Vector = (UInt8Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + if (parseValue == null) { + uInt8Vector.setNull(rowCount); + } else { + long longValue = ((Number) parseValue).longValue(); + uInt8Vector.setSafe(rowCount, longValue); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java new file mode 100644 index 0000000000000..83e60d863aeb5 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java @@ -0,0 +1,215 @@ +package com.parquet.parquetdataformat.memory; + +import org.apache.arrow.memory.AllocationListener; +import org.apache.arrow.memory.AllocationOutcome; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.RootAllocator; +import org.opensearch.common.settings.Settings; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Manages BufferAllocator lifecycle with configurable allocation strategies. + * Provides factory methods for creating allocators with different policies + * based on OpenSearch settings and memory pressure conditions. + */ +public class ArrowBufferPool { + + private final Settings settings; + private final long maxAllocation; + private final long initReservation; + private final AllocationListener allocationListener; + private final MemoryPressureMonitor memoryMonitor; + + // Track active allocators for monitoring and cleanup + private final ConcurrentHashMap activeAllocators; + private final AtomicLong totalAllocated; + + public ArrowBufferPool(Settings settings, MemoryPressureMonitor memoryMonitor) { + this.settings = settings; + this.memoryMonitor = memoryMonitor; + this.activeAllocators = new ConcurrentHashMap<>(); + this.totalAllocated = new AtomicLong(0); + + // Configure memory limits - parse size strings manually + this.maxAllocation = parseByteSize(settings.get("parquet.memory.max_allocation", "1gb")); + this.initReservation = parseByteSize(settings.get("parquet.memory.init_reservation", "100mb")); + + // Set up allocation listener for monitoring + this.allocationListener = new PoolAllocationListener(); + } + + /** + * Creates a new child allocator with the configured strategy and limits. + * + * @param name Unique name for the allocator + * @return BufferAllocator configured with pool settings + */ + public BufferAllocator createAllocator(String name) { + return createAllocator(name, initReservation, maxAllocation); + } + + /** + * Creates a new child allocator with custom limits. + * + * @param name Unique name for the allocator + * @param reservation Initial reservation amount + * @param maxBytes Maximum allocation limit + * @return BufferAllocator configured with specified limits + */ + public BufferAllocator createAllocator(String name, long reservation, long maxBytes) { + // Check memory pressure before creating new allocator + if (memoryMonitor.shouldRejectAllocation(reservation)) { + throw new OutOfMemoryError( + "Cannot create allocator '" + name + "': memory pressure too high"); + } + + BufferAllocator rootAllocator = createRootAllocator(); + BufferAllocator childAllocator = rootAllocator.newChildAllocator( + name, allocationListener, reservation, maxBytes); + + activeAllocators.put(name, childAllocator); + totalAllocated.addAndGet(reservation); + + return childAllocator; + } + + /** + * Releases an allocator and cleans up resources. + * + * @param name Name of the allocator to release + */ + public void releaseAllocator(String name) { + BufferAllocator allocator = activeAllocators.remove(name); + if (allocator != null) { + long allocated = allocator.getAllocatedMemory(); + totalAllocated.addAndGet(-allocated); + allocator.close(); + } + } + + /** + * Gets current memory allocation statistics. + * + * @return AllocationStats with current usage information + */ + public AllocationStats getStats() { + return new AllocationStats( + totalAllocated.get(), + maxAllocation, + activeAllocators.size(), + memoryMonitor.getCurrentPressure() + ); + } + + /** + * Closes all active allocators and cleans up the pool. + */ + public void close() { + activeAllocators.values().forEach(BufferAllocator::close); + activeAllocators.clear(); + totalAllocated.set(0); + } + + private BufferAllocator createRootAllocator() { + // Create a simple RootAllocator with basic settings + return new RootAllocator(maxAllocation); + } + + /** + * Simple byte size parser for configuration strings. + */ + private long parseByteSize(String sizeStr) { + if (sizeStr == null || sizeStr.trim().isEmpty()) { + return 0; + } + + String trimmed = sizeStr.trim().toLowerCase(); + long multiplier = 1; + + if (trimmed.endsWith("kb")) { + multiplier = 1024; + trimmed = trimmed.substring(0, trimmed.length() - 2); + } else if (trimmed.endsWith("mb")) { + multiplier = 1024 * 1024; + trimmed = trimmed.substring(0, trimmed.length() - 2); + } else if (trimmed.endsWith("gb")) { + multiplier = 1024 * 1024 * 1024; + trimmed = trimmed.substring(0, trimmed.length() - 2); + } else if (trimmed.endsWith("b")) { + trimmed = trimmed.substring(0, trimmed.length() - 1); + } + + try { + return Long.parseLong(trimmed.trim()) * multiplier; + } catch (NumberFormatException e) { + throw new IllegalArgumentException("Invalid byte size format: " + sizeStr, e); + } + } + + /** + * Allocation listener that integrates with memory monitoring. + */ + private class PoolAllocationListener implements AllocationListener { + + @Override + public void onPreAllocation(long size) { + if (memoryMonitor.shouldRejectAllocation(size)) { + throw new OutOfMemoryError("Memory pressure too high for allocation of " + size + " bytes"); + } + } + + @Override + public void onAllocation(long size) { + memoryMonitor.recordAllocation(size); + } + + @Override + public void onRelease(long size) { + memoryMonitor.recordDeallocation(size); + } + + @Override + public boolean onFailedAllocation(long size, AllocationOutcome outcome) { + memoryMonitor.recordFailedAllocation(size, "FAILED"); + return false; // Don't retry + } + + @Override + public void onChildAdded(BufferAllocator parentAllocator, BufferAllocator childAllocator) { + // Track child allocator creation + } + + @Override + public void onChildRemoved(BufferAllocator parentAllocator, BufferAllocator childAllocator) { + // Track child allocator removal + } + } + + /** + * Allocation statistics for monitoring. + */ + public static class AllocationStats { + private final long totalAllocated; + private final long maxAllocation; + private final int activeAllocators; + private final double memoryPressure; + + public AllocationStats(long totalAllocated, long maxAllocation, + int activeAllocators, double memoryPressure) { + this.totalAllocated = totalAllocated; + this.maxAllocation = maxAllocation; + this.activeAllocators = activeAllocators; + this.memoryPressure = memoryPressure; + } + + public long getTotalAllocated() { return totalAllocated; } + public long getMaxAllocation() { return maxAllocation; } + public int getActiveAllocators() { return activeAllocators; } + public double getMemoryPressure() { return memoryPressure; } + public double getUtilizationRatio() { + return maxAllocation > 0 ? (double) totalAllocated / maxAllocation : 0.0; + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java new file mode 100644 index 0000000000000..382c8c8b647fb --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java @@ -0,0 +1,274 @@ +package com.parquet.parquetdataformat.memory; + +import org.opensearch.common.settings.Settings; + +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryMXBean; +import java.lang.management.MemoryUsage; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; + +/** + * Monitors off-heap memory usage and triggers backpressure mechanisms. + * Tracks Arrow buffer allocations and provides pressure metrics for + * controlling writer creation and flush intervals. + */ +public class MemoryPressureMonitor { + + public enum PressureLevel { + LOW(0.0, 0.7), // < 70% utilization + MODERATE(0.7, 0.85), // 70-85% utilization + HIGH(0.85, 0.95), // 85-95% utilization + CRITICAL(0.95, 1.0); // > 95% utilization + + private final double min; + private final double max; + + PressureLevel(double min, double max) { + this.min = min; + this.max = max; + } + + public static PressureLevel fromRatio(double ratio) { + for (PressureLevel level : values()) { + if (ratio >= level.min && ratio < level.max) { + return level; + } + } + return CRITICAL; + } + } + + private final MemoryMXBean memoryBean; + private final ScheduledExecutorService scheduler; + private final AtomicLong directMemoryUsed; + private final AtomicLong directMemoryMax; + private final AtomicReference currentPressure; + private final AtomicLong allocationCount; + private final AtomicLong deallocationCount; + private final AtomicLong failedAllocationCount; + + // Configuration + private final double criticalThreshold; + private final double highThreshold; + private final long maxDirectMemory; + + public MemoryPressureMonitor(Settings settings) { + this.memoryBean = ManagementFactory.getMemoryMXBean(); + this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> { + Thread t = new Thread(r, "parquet-memory-monitor"); + t.setDaemon(true); + return t; + }); + + this.directMemoryUsed = new AtomicLong(0); + this.currentPressure = new AtomicReference<>(PressureLevel.LOW); + this.allocationCount = new AtomicLong(0); + this.deallocationCount = new AtomicLong(0); + this.failedAllocationCount = new AtomicLong(0); + + // Parse configuration + this.criticalThreshold = settings.getAsDouble("parquet.memory.critical_threshold", 0.95); + this.highThreshold = settings.getAsDouble("parquet.memory.high_threshold", 0.85); + this.maxDirectMemory = getMaxDirectMemory(); + this.directMemoryMax = new AtomicLong(maxDirectMemory); + + // Start monitoring + startMonitoring(); + } + + /** + * Checks if an allocation should be rejected based on current memory pressure. + * + * @param requestedBytes Number of bytes requested for allocation + * @return true if allocation should be rejected + */ + public boolean shouldRejectAllocation(long requestedBytes) { + PressureLevel pressure = currentPressure.get(); + + // Always reject if critical + if (pressure == PressureLevel.CRITICAL) { + return true; + } + + // Check if allocation would push us over threshold + long currentUsage = directMemoryUsed.get(); + long afterAllocation = currentUsage + requestedBytes; + double futureRatio = (double) afterAllocation / maxDirectMemory; + + return switch (pressure) { + case HIGH -> futureRatio > criticalThreshold; + case MODERATE -> futureRatio > highThreshold; + case LOW -> false; + case CRITICAL -> true; // Already handled above + }; + } + + /** + * Records an allocation event. + * + * @param size Size of the allocation + */ + public void recordAllocation(long size) { + directMemoryUsed.addAndGet(size); + allocationCount.incrementAndGet(); + updatePressureLevel(); + } + + /** + * Records a deallocation event. + * + * @param size Size of the deallocation + */ + public void recordDeallocation(long size) { + directMemoryUsed.addAndGet(-size); + deallocationCount.incrementAndGet(); + updatePressureLevel(); + } + + /** + * Records a failed allocation event. + * + * @param size Size of the failed allocation + * @param reason Reason for failure + */ + public void recordFailedAllocation(long size, String reason) { + failedAllocationCount.incrementAndGet(); + // Could log detailed failure information here + } + + /** + * Gets the current memory pressure as a ratio (0.0 to 1.0). + * + * @return Current memory pressure ratio + */ + public double getCurrentPressure() { + return (double) directMemoryUsed.get() / maxDirectMemory; + } + + /** + * Gets the current pressure level enum. + * + * @return Current PressureLevel + */ + public PressureLevel getCurrentPressureLevel() { + return currentPressure.get(); + } + + /** + * Gets current memory statistics. + * + * @return MemoryStats with current usage information + */ + public MemoryStats getStats() { + return new MemoryStats( + directMemoryUsed.get(), + maxDirectMemory, + getCurrentPressure(), + currentPressure.get(), + allocationCount.get(), + deallocationCount.get(), + failedAllocationCount.get() + ); + } + + /** + * Triggers early refresh if memory pressure is high. + * + * @return true if early refresh should be triggered + */ + public boolean shouldTriggerEarlyRefresh() { + PressureLevel pressure = currentPressure.get(); + return pressure == PressureLevel.HIGH || pressure == PressureLevel.CRITICAL; + } + + /** + * Gets recommended writer limit based on current memory pressure. + * + * @param baseLimit Base number of writers without pressure + * @return Adjusted writer limit + */ + public int getRecommendedWriterLimit(int baseLimit) { + return switch (currentPressure.get()) { + case LOW -> baseLimit; + case MODERATE -> (int) (baseLimit * 0.8); + case HIGH -> (int) (baseLimit * 0.5); + case CRITICAL -> 1; // Minimal writers only + }; + } + + private void startMonitoring() { + scheduler.scheduleAtFixedRate(this::updatePressureLevel, 1, 1, TimeUnit.SECONDS); + } + + private void updatePressureLevel() { + double ratio = getCurrentPressure(); + PressureLevel newLevel = PressureLevel.fromRatio(ratio); + PressureLevel oldLevel = currentPressure.getAndSet(newLevel); + + // Log pressure level changes + if (newLevel != oldLevel) { + System.out.println(String.format( + "[MEMORY] Pressure level changed: %s -> %s (%.2f%%)", + oldLevel, newLevel, ratio * 100)); + } + } + + private long getMaxDirectMemory() { + // Use heap max / 4 as a reasonable default for direct memory + long heapMax = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax(); + return heapMax > 0 ? heapMax / 4 : 1024 * 1024 * 1024; // 1GB fallback + } + + /** + * Closes the monitor and stops background tasks. + */ + public void close() { + scheduler.shutdown(); + try { + if (!scheduler.awaitTermination(5, TimeUnit.SECONDS)) { + scheduler.shutdownNow(); + } + } catch (InterruptedException e) { + scheduler.shutdownNow(); + Thread.currentThread().interrupt(); + } + } + + /** + * Memory statistics for monitoring. + */ + public static class MemoryStats { + private final long usedBytes; + private final long maxBytes; + private final double pressureRatio; + private final PressureLevel pressureLevel; + private final long allocationCount; + private final long deallocationCount; + private final long failedAllocationCount; + + public MemoryStats(long usedBytes, long maxBytes, double pressureRatio, + PressureLevel pressureLevel, long allocationCount, + long deallocationCount, long failedAllocationCount) { + this.usedBytes = usedBytes; + this.maxBytes = maxBytes; + this.pressureRatio = pressureRatio; + this.pressureLevel = pressureLevel; + this.allocationCount = allocationCount; + this.deallocationCount = deallocationCount; + this.failedAllocationCount = failedAllocationCount; + } + + public long getUsedBytes() { return usedBytes; } + public long getMaxBytes() { return maxBytes; } + public double getPressureRatio() { return pressureRatio; } + public PressureLevel getPressureLevel() { return pressureLevel; } + public long getAllocationCount() { return allocationCount; } + public long getDeallocationCount() { return deallocationCount; } + public long getFailedAllocationCount() { return failedAllocationCount; } + public long getAvailableBytes() { return maxBytes - usedBytes; } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdGenerator.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdGenerator.java new file mode 100644 index 0000000000000..8735efc2b21dc --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdGenerator.java @@ -0,0 +1,81 @@ +package com.parquet.parquetdataformat.rowid; + +import java.util.concurrent.atomic.AtomicLong; + +/** + * Atomic, monotonic row ID generator as specified in the Project Mustang design. + * Ensures that each parquet file has sequential row IDs starting from 0, + * maintaining a 1:1 mapping between docs indexed in Lucene and parquet rows. + */ +public class RowIdGenerator { + + private final AtomicLong globalCounter; + private final String generatorId; + + public RowIdGenerator(String generatorId) { + this.generatorId = generatorId; + this.globalCounter = new AtomicLong(0); + } + + /** + * Generates the next monotonic row ID. + * Thread-safe and atomic operation. + * + * @return Next sequential row ID + */ + public long nextRowId() { + return globalCounter.getAndIncrement(); + } + + /** + * Gets the current counter value without incrementing. + * Useful for determining the number of rows generated so far. + * + * @return Current counter value + */ + public long getCurrentCount() { + return globalCounter.get(); + } + + /** + * Resets the counter to zero. + * Should only be used during testing or system reinitialization. + */ + public void reset() { + globalCounter.set(0); + } + + /** + * Gets the generator ID for tracking purposes. + * + * @return Generator identifier + */ + public String getGeneratorId() { + return generatorId; + } + + /** + * Gets generation statistics. + * + * @return GenerationStats with current state + */ + public GenerationStats getStats() { + return new GenerationStats(generatorId, globalCounter.get()); + } + + /** + * Statistics for row ID generation. + */ + public static class GenerationStats { + private final String generatorId; + private final long totalGenerated; + + public GenerationStats(String generatorId, long totalGenerated) { + this.generatorId = generatorId; + this.totalGenerated = totalGenerated; + } + + public String getGeneratorId() { return generatorId; } + public long getTotalGenerated() { return totalGenerated; } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdTracker.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdTracker.java new file mode 100644 index 0000000000000..418c96efa07ce --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/rowid/RowIdTracker.java @@ -0,0 +1,204 @@ +package com.parquet.parquetdataformat.rowid; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Tracks row ID ranges per parquet file for Lucene segment mapping. + * Maintains the 1:1 mapping between docs indexed in Lucene and parquet rows + * as specified in the Project Mustang design. + */ +public class RowIdTracker { + + private final ConcurrentMap fileRanges; + private final AtomicLong totalRowsTracked; + + public RowIdTracker() { + this.fileRanges = new ConcurrentHashMap<>(); + this.totalRowsTracked = new AtomicLong(0); + } + + /** + * Starts tracking a new row ID range for a parquet file. + * + * @param fileName Name of the parquet file + * @param startRowId Starting row ID for this file + * @return RowIdRange tracker for this file + */ + public RowIdRange startTracking(String fileName, long startRowId) { + RowIdRange range = new RowIdRange(fileName, startRowId); + fileRanges.put(fileName, range); + return range; + } + + /** + * Completes tracking for a parquet file by setting the end row ID. + * + * @param fileName Name of the parquet file + * @param endRowId Final row ID for this file (exclusive) + * @return true if tracking was successfully completed + */ + public boolean completeTracking(String fileName, long endRowId) { + RowIdRange range = fileRanges.get(fileName); + if (range != null) { + range.setEndRowId(endRowId); + long rowCount = endRowId - range.getStartRowId(); + totalRowsTracked.addAndGet(rowCount); + return true; + } + return false; + } + + /** + * Gets the row ID range for a specific parquet file. + * + * @param fileName Name of the parquet file + * @return RowIdRange for the file, or null if not found + */ + public RowIdRange getRangeForFile(String fileName) { + return fileRanges.get(fileName); + } + + /** + * Finds which parquet file contains the given row ID. + * + * @param rowId Row ID to search for + * @return File name containing the row ID, or null if not found + */ + public String findFileForRowId(long rowId) { + for (RowIdRange range : fileRanges.values()) { + if (range.containsRowId(rowId)) { + return range.getFileName(); + } + } + return null; + } + + /** + * Gets all tracked file ranges. + * + * @return ConcurrentMap of fileName -> RowIdRange + */ + public ConcurrentMap getAllRanges() { + return new ConcurrentHashMap<>(fileRanges); + } + + /** + * Gets tracking statistics. + * + * @return TrackingStats with current state + */ + public TrackingStats getStats() { + return new TrackingStats( + fileRanges.size(), + totalRowsTracked.get(), + fileRanges.values().stream().mapToLong(RowIdRange::getRowCount).sum() + ); + } + + /** + * Removes tracking for a parquet file. + * Used during cleanup or file deletion. + * + * @param fileName Name of the parquet file + * @return true if tracking was removed + */ + public boolean removeTracking(String fileName) { + RowIdRange removed = fileRanges.remove(fileName); + if (removed != null) { + totalRowsTracked.addAndGet(-removed.getRowCount()); + return true; + } + return false; + } + + /** + * Clears all tracking data. + * Should only be used during testing or system reset. + */ + public void clear() { + fileRanges.clear(); + totalRowsTracked.set(0); + } + + /** + * Represents a row ID range for a specific parquet file. + */ + public static class RowIdRange { + private final String fileName; + private final long startRowId; + private volatile long endRowId; + private volatile boolean completed; + + public RowIdRange(String fileName, long startRowId) { + this.fileName = fileName; + this.startRowId = startRowId; + this.endRowId = startRowId; + this.completed = false; + } + + /** + * Sets the end row ID and marks the range as completed. + * + * @param endRowId Final row ID (exclusive) + */ + public void setEndRowId(long endRowId) { + this.endRowId = endRowId; + this.completed = true; + } + + /** + * Checks if the given row ID falls within this range. + * + * @param rowId Row ID to check + * @return true if row ID is within range + */ + public boolean containsRowId(long rowId) { + return completed && rowId >= startRowId && rowId < endRowId; + } + + /** + * Gets the number of rows in this range. + * + * @return Row count, or 0 if not completed + */ + public long getRowCount() { + return completed ? endRowId - startRowId : 0; + } + + // Getters + public String getFileName() { return fileName; } + public long getStartRowId() { return startRowId; } + public long getEndRowId() { return endRowId; } + public boolean isCompleted() { return completed; } + + @Override + public String toString() { + return String.format("RowIdRange{file='%s', start=%d, end=%d, completed=%s}", + fileName, startRowId, endRowId, completed); + } + } + + /** + * Statistics for row ID tracking. + */ + public static class TrackingStats { + private final int trackedFiles; + private final long totalRowsTracked; + private final long activeRows; + + public TrackingStats(int trackedFiles, long totalRowsTracked, long activeRows) { + this.trackedFiles = trackedFiles; + this.totalRowsTracked = totalRowsTracked; + this.activeRows = activeRows; + } + + public int getTrackedFiles() { return trackedFiles; } + public long getTotalRowsTracked() { return totalRowsTracked; } + public long getActiveRows() { return activeRows; } + public double getAverageRowsPerFile() { + return trackedFiles > 0 ? (double) activeRows / trackedFiles : 0.0; + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java new file mode 100644 index 0000000000000..7d196c2fdfea7 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java @@ -0,0 +1,259 @@ +package com.parquet.parquetdataformat.vsr; + +import com.parquet.parquetdataformat.bridge.ArrowExport; +import org.apache.arrow.memory.ArrowBuf; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.BigIntVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.Data; + +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import static org.apache.arrow.vector.BitVectorHelper.byteIndex; + +/** + * Managed wrapper around VectorSchemaRoot that handles state transitions + * and provides thread-safe access for the ACTIVE/FROZEN lifecycle. + */ +public class ManagedVSR implements AutoCloseable { + + private final String id; + private final VectorSchemaRoot vsr; + private final BufferAllocator allocator; + private final AtomicReference state; + private final ReadWriteLock lock; + private final long createdTime; + + + public ManagedVSR(String id, VectorSchemaRoot vsr, BufferAllocator allocator) { + this.id = id; + this.vsr = vsr; + this.allocator = allocator; + this.state = new AtomicReference<>(VSRState.ACTIVE); + this.lock = new ReentrantReadWriteLock(); + this.createdTime = System.currentTimeMillis(); + } + + /** + * Gets the underlying VectorSchemaRoot. + * Should only be used when holding appropriate locks. + * + * @return VectorSchemaRoot instance + */ + public VectorSchemaRoot getVSR() { + return vsr; + } + + /** + * Gets the current row count in this VSR. + * Thread-safe read operation. + * + * @return Number of rows currently in the VSR + */ + public int getRowCount() { + lock.readLock().lock(); + try { + return vsr.getRowCount(); + } finally { + lock.readLock().unlock(); + } + } + + /** + * Sets the row count for this VSR. + * Only allowed when VSR is in ACTIVE state. + * + * @param rowCount New row count + * @throws IllegalStateException if VSR is not active or is immutable + */ + public void setRowCount(int rowCount) { + lock.writeLock().lock(); + try { + if (state.get() != VSRState.ACTIVE) { + throw new IllegalStateException("Cannot modify VSR in state: " + state.get()); + } + vsr.setRowCount(rowCount); + } finally { + lock.writeLock().unlock(); + } + } + + /** + * Gets a field vector by name. + * Thread-safe read operation. + * + * @param fieldName Name of the field + * @return FieldVector for the field, or null if not found + */ + public FieldVector getVector(String fieldName) { + lock.readLock().lock(); + try { + return vsr.getVector(fieldName); + } finally { + lock.readLock().unlock(); + } + } + + /** + * Changes the state of this VSR. + * Handles state transition logic and immutability. + * + * @param newState New state to transition to + */ + public void setState(VSRState newState) { + VSRState oldState = state.getAndSet(newState); + + System.out.println(String.format( + "[VSR] State transition: %s -> %s for VSR %s", + oldState, newState, id)); + } + + /** + * Gets the current state of this VSR. + * + * @return Current VSRState + */ + public VSRState getState() { + return state.get(); + } + + /** + * Exports this VSR to Arrow C Data Interface for Rust handoff. + * Only allowed when VSR is FROZEN or FLUSHING. + * + * @return ArrowExport containing ArrowArray and ArrowSchema + * @throws IllegalStateException if VSR is not in correct state + */ + public ArrowExport exportToArrow() { + VSRState currentState = state.get(); + if (currentState != VSRState.FROZEN && + currentState != VSRState.FLUSHING) { + throw new IllegalStateException("Cannot export VSR in state: " + currentState); + } + + lock.readLock().lock(); + try { + ArrowArray arrowArray = ArrowArray.allocateNew(allocator); + ArrowSchema arrowSchema = ArrowSchema.allocateNew(allocator); + + // Export the VectorSchemaRoot to C Data Interface + Data.exportVectorSchemaRoot(allocator, vsr, null, arrowArray, arrowSchema); + + return new ArrowExport(arrowArray, arrowSchema); + } finally { + lock.readLock().unlock(); + } + } + + public ArrowExport exportSchema() { + lock.readLock().lock(); + try { + ArrowSchema arrowSchema = ArrowSchema.allocateNew(allocator); + + // Export the VectorSchemaRoot to C Data Interface + Data.exportSchema(allocator, vsr.getSchema(), null, arrowSchema); + + return new ArrowExport(null, arrowSchema); + } finally { + lock.readLock().unlock(); + } + } + + /** + * Checks if this VSR is immutable (frozen). + * + * @return true if VSR cannot be modified + */ + public boolean isImmutable() { + VSRState currentState = state.get(); + return currentState != VSRState.ACTIVE; + } + + + /** + * Gets the VSR ID. + * + * @return Unique identifier for this VSR + */ + public String getId() { + return id; + } + + /** + * Gets the creation timestamp. + * + * @return Creation time in milliseconds + */ + public long getCreatedTime() { + return createdTime; + } + + /** + * Gets the associated BufferAllocator. + * + * @return BufferAllocator used by this VSR + */ + public BufferAllocator getAllocator() { + return allocator; + } + + /** + * Closes this VSR and releases all resources. + */ + @Override + public void close() { + lock.writeLock().lock(); + try { + if (state.get() != VSRState.CLOSED) { + state.set(VSRState.CLOSED); + vsr.close(); + allocator.close(); + } + } finally { + lock.writeLock().unlock(); + } + } + + + @Override + public String toString() { + return String.format("ManagedVSR{id='%s', state=%s, rows=%d, immutable=%s}", + id, state.get(), getRowCount(), isImmutable()); + } + + public static void main(String[] args) { + RootAllocator allocator = new RootAllocator(); + BigIntVector vector = new BigIntVector("vector", allocator); + vector.allocateNew(10); + vector.set(0, 100); // Set position 0 +// vector.setNull(1); + vector.set(2, 300); // Set position 2 +// Position 1 is not set! + vector.setValueCount(3); // Claims vector has 3 elements + +// Position 1 now contains undefined data +// long value = vector.get(1); // Could be any value! + System.out.println(readBit(vector.getValidityBuffer(), 0)); + System.out.println(readBit(vector.getValidityBuffer(), 1)); + System.out.println(readBit(vector.getValidityBuffer(), 2)); + System.out.println(readBit(vector.getValidityBuffer(), 3)); + } + + public static byte readBit(ArrowBuf validityBuffer, long index) { + // it can be observed that some logic is duplicate of the logic in setValidityBit. + // this is because JIT cannot always remove the if branch in setValidityBit, + // so we give a dedicated implementation for setting bits. + final long byteIndex = byteIndex(index); + + // the byte is promoted to an int, because according to Java specification, + // bytes will be promoted to ints automatically, upon expression evaluation. + // by promoting it manually, we avoid the unnecessary conversions. + return validityBuffer.getByte(byteIndex); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java new file mode 100644 index 0000000000000..89ab076dc88ad --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -0,0 +1,273 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.vsr; + +import com.parquet.parquetdataformat.engine.ParquetDataFormat; +import com.parquet.parquetdataformat.writer.ParquetDocumentInput; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.bridge.ArrowExport; +import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.WriteResult; + +import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; + +/** + * Manages VectorSchemaRoot lifecycle with integrated memory management and native call wrappers. + * Provides a high-level interface for Parquet document operations using managed VSR abstractions. + * + *

This class orchestrates the following components: + *

    + *
  • {@link ManagedVSR} - Thread-safe VSR with state management
  • + *
  • {@link VSRPool} - Resource pooling for VSRs
  • + *
  • {@link RustBridge} - Direct JNI calls to Rust backend
  • + *
+ */ +public class VSRManager { + private ManagedVSR managedVSR; + private Map fieldVectorMap; + private final Schema schema; + private final String fileName; + private final VSRPool vsrPool; + + public VSRManager(String fileName, Schema schema) { + this.fileName = fileName; + this.schema = schema; + + // Create memory monitor and buffer pool + MemoryPressureMonitor memoryMonitor = new MemoryPressureMonitor(org.opensearch.common.settings.Settings.EMPTY); + + // Create VSR pool + this.vsrPool = new VSRPool("pool-" + fileName, schema, memoryMonitor); + + + // Get active VSR from pool + this.managedVSR = vsrPool.getActiveVSR(); + initializeFieldVectorMap(); + // Initialize writer lazily to avoid crashes + initializeWriter(); + } + + private void initializeWriter() { + try { + // Export schema through managed VSR + try (ArrowExport export = managedVSR.exportSchema()) { + long schemaAddress = export.getSchemaAddress(); + + // Direct native call - RustBridge handles all validation + RustBridge.createWriter(fileName, schemaAddress); + } + } catch (Exception e) { + throw new RuntimeException("Failed to initialize Parquet writer: " + e.getMessage(), e); + } + } + + public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOException { + // Ensure we have an active VSR (handle case where getActiveVSR() returns null) + if (managedVSR == null) { + managedVSR = vsrPool.getActiveVSR(); + if (managedVSR == null) { + throw new IOException("No active VSR available"); + } + reinitializeFieldVectorMap(); + } + + // Ensure VSR is in ACTIVE state for modifications + if (managedVSR.getState() != VSRState.ACTIVE) { + throw new IOException("Cannot add document - VSR is not active: " + managedVSR.getState()); + } + + System.out.println("[JAVA] addToManagedVSR called, current row count: " + managedVSR.getRowCount()); + + try { + // Since ParquetDocumentInput now works directly with ManagedVSR, + // fields should already be populated in vectors via addField() calls. + // We just need to finalize the document by calling addToWriter() + // which will increment the row count. + WriteResult result = document.addToWriter(); + + System.out.println("[JAVA] After adding document, row count: " + managedVSR.getRowCount()); + + // Check for VSR rotation AFTER successful document processing + handleVSRRotationAfterAddToManagedVSR(); + + return result; + } catch (Exception e) { + System.out.println("[JAVA] ERROR in addToManagedVSR: " + e.getMessage()); + throw new IOException("Failed to add document: " + e.getMessage(), e); + } + } + + public FileMetadata flush(FlushIn flushIn) throws IOException { + System.out.println("[JAVA] flush called, row count: " + managedVSR.getRowCount()); + try { + // Only flush if we have data + if (managedVSR.getRowCount() == 0) { + System.out.println("[JAVA] No data to flush, returning null"); + return null; + } + + // Transition VSR to FROZEN state before flushing + managedVSR.setState(VSRState.FROZEN); + System.out.println("[JAVA] Flushing " + managedVSR.getRowCount() + " rows"); + + // Transition to FLUSHING state + managedVSR.setState(VSRState.FLUSHING); + + // Direct native call - write the managed VSR data + try (ArrowExport export = managedVSR.exportToArrow()) { + RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); + RustBridge.closeWriter(fileName); + } + System.out.println("[JAVA] Successfully flushed data"); + + return new FileMetadata(PARQUET_DATA_FORMAT, fileName); + } catch (Exception e) { + System.out.println("[JAVA] ERROR in flush: " + e.getMessage()); + throw new IOException("Failed to flush data: " + e.getMessage(), e); + } + } + + public void close() { + try { + // Direct native calls + try { + RustBridge.closeWriter(fileName); + RustBridge.flushToDisk(fileName); + } catch (IOException e) { + System.err.println("Warning: Failed to close/flush writer: " + e.getMessage()); + } + + // Complete VSR processing and cleanup + vsrPool.completeVSR(managedVSR); + managedVSR = null; + + } catch (Exception e) { + System.err.println("Error during close: " + e.getMessage()); + } + } + + private boolean checkFlushConditions() { + // TODO: Implement memory pressure-based flush conditions + return false; + } + + /** + * Handles VSR rotation after successful document addition. + * Checks if rotation is needed and immediately processes any frozen VSR. + */ + private void handleVSRRotationAfterAddToManagedVSR() throws IOException { + try { + // Check if rotation is needed and perform it if safe + boolean rotated = vsrPool.maybeRotateActiveVSR(); + + if (rotated) { + System.out.println("[JAVA] VSR rotation occurred after document addition"); + + // Get the frozen VSR that was just created by rotation + ManagedVSR frozenVSR = vsrPool.getFrozenVSR(); + if (frozenVSR != null) { + System.out.println("[JAVA] Processing frozen VSR: " + frozenVSR.getId() + + " with " + frozenVSR.getRowCount() + " rows"); + + // Write the frozen VSR data immediately + frozenVSR.setState(VSRState.FLUSHING); + try (ArrowExport export = frozenVSR.exportToArrow()) { + RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); + } + + System.out.println("[JAVA] Successfully wrote frozen VSR data"); + + // Complete the VSR processing + vsrPool.completeVSR(frozenVSR); + } else { + System.err.println("[JAVA] WARNING: Rotation occurred but no frozen VSR found"); + } + + // Update to new active VSR + managedVSR = vsrPool.getActiveVSR(); + if (managedVSR == null) { + throw new IOException("No active VSR available after rotation"); + } + + // Reinitialize field vector map with new VSR + reinitializeFieldVectorMap(); + + System.out.println("[JAVA] VSR rotation completed, new active VSR: " + managedVSR.getId() + + ", row count: " + managedVSR.getRowCount()); + } + } catch (IOException e) { + System.err.println("[JAVA] Error during VSR rotation: " + e.getMessage()); + throw e; + } + } + + /** + * Checks if VSR rotation is needed based on row count and memory pressure. + * If rotation occurs, updates the managed VSR reference and reinitializes field vectors. + * + * @deprecated Use handleVSRRotationAfterAddToManagedVSR() instead for safer rotation after document processing + */ + @Deprecated + private void checkAndHandleVSRRotation() throws IOException { + // Get active VSR from pool - this will trigger rotation if needed + ManagedVSR currentActive = vsrPool.getActiveVSR(); + + // Check if we got a different VSR (rotation occurred) + if (currentActive != managedVSR) { + System.out.println("[JAVA] VSR rotation detected, updating references"); + + // Update the managed VSR reference + managedVSR = currentActive; + + // Reinitialize field vector map with new VSR + reinitializeFieldVectorMap(); + + // Note: Writer initialization is not needed per VSR as it's per file + System.out.println("[JAVA] VSR rotation completed, new row count: " + managedVSR.getRowCount()); + } + } + + /** + * Reinitializes the field vector map with the current managed VSR. + * Called after VSR rotation to update vector references. + */ + private void reinitializeFieldVectorMap() { + fieldVectorMap.clear(); + initializeFieldVectorMap(); + } + + private void initializeFieldVectorMap() { + fieldVectorMap = new HashMap<>(); + for (Field field : schema.getFields()) { + String fieldName = field.getName(); + FieldVector fieldVector = managedVSR.getVector(fieldName); + // Vector is already properly typed from ManagedVSR.getVector() + fieldVectorMap.put(fieldName, fieldVector); + } + } + + /** + * Gets the current active ManagedVSR for document input creation. + * + * @return The current managed VSR instance + */ + public ManagedVSR getActiveManagedVSR() { + return managedVSR; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java new file mode 100644 index 0000000000000..088a990353157 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java @@ -0,0 +1,331 @@ +package com.parquet.parquetdataformat.vsr; + +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.Schema; +import com.parquet.parquetdataformat.memory.ArrowBufferPool; +import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; + +import java.io.IOException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; + +/** + * Manages VectorSchemaRoot lifecycle with ACTIVE and FROZEN states as specified + * in the Project Mustang design. Each ParquetWriter maintains a single ACTIVE VSR + * for writing and a single FROZEN VSR for Rust handoff. + */ +public class VSRPool { + + private final Schema schema; + private final ArrowBufferPool bufferPool; + private final MemoryPressureMonitor memoryMonitor; + private final String poolId; + + // VSR lifecycle management + private final AtomicReference activeVSR; + private final AtomicReference frozenVSR; + private final ConcurrentHashMap allVSRs; + private final AtomicInteger vsrCounter; + + // Configuration + private final int maxRowsPerVSR; + + public VSRPool(String poolId, Schema schema, MemoryPressureMonitor memoryMonitor) { + this.poolId = poolId; + this.schema = schema; + this.bufferPool = new ArrowBufferPool(org.opensearch.common.settings.Settings.EMPTY, memoryMonitor); + this.memoryMonitor = memoryMonitor; + + this.activeVSR = new AtomicReference<>(); + this.frozenVSR = new AtomicReference<>(); + this.allVSRs = new ConcurrentHashMap<>(); + this.vsrCounter = new AtomicInteger(0); + + // Configuration - could be made configurable + this.maxRowsPerVSR = 50000; // Max rows before forcing freeze + + // Initialize with first active VSR + initializeActiveVSR(); + } + + /** + * Gets the current active VSR for writing. + * Simply returns the current active VSR without any rotation logic. + * + * @return Active ManagedVSR for writing, or null if none exists + */ + public ManagedVSR getActiveVSR() { + return activeVSR.get(); + } + + /** + * Checks if VSR rotation is needed and performs it if safe to do so. + * Throws IOException if rotation is needed but frozen slot is occupied. + * + * @return true if rotation occurred, false if no rotation was needed + * @throws IOException if rotation is needed but cannot be performed due to occupied frozen slot + */ + public boolean maybeRotateActiveVSR() throws IOException { + ManagedVSR current = activeVSR.get(); + + // Check if rotation is needed + if (current == null || !shouldRotateVSR(current)) { + return false; // No rotation needed + } + + // CRITICAL: Check if frozen slot is occupied before rotation + if (frozenVSR.get() != null) { + throw new IOException("Cannot rotate VSR: frozen slot is occupied. " + + "Previous frozen VSR has not been processed. This indicates a " + + "system bottleneck or processing failure."); + } + + // Safe to rotate - perform the rotation + synchronized (this) { + // Double-check conditions under lock + current = activeVSR.get(); + if (current == null || !shouldRotateVSR(current)) { + return false; // Conditions changed while acquiring lock + } + + // Check frozen slot again under lock + if (frozenVSR.get() != null) { + throw new IOException("Cannot rotate VSR: frozen slot became occupied during rotation"); + } + + // Freeze current VSR if it exists and has data + if (current != null && current.getRowCount() > 0) { + freezeVSR(current); + } + + // Create new active VSR + ManagedVSR newActive = createNewVSR(); + activeVSR.set(newActive); + + return true; // Rotation occurred + } + } + + /** + * Freezes the current active VSR and creates a new active one. + * The frozen VSR replaces any existing frozen VSR. + * + * @deprecated Use maybeRotateActiveVSR() instead for safer rotation with checks + * @return Newly created active VSR + */ + @Deprecated + public ManagedVSR rotateActiveVSR() { + synchronized (this) { + ManagedVSR current = activeVSR.get(); + + // Freeze current VSR if it exists and has data + if (current != null && current.getRowCount() > 0) { + freezeVSR(current); + } + + // Create new active VSR + ManagedVSR newActive = createNewVSR(); + activeVSR.set(newActive); + + return newActive; + } + } + + /** + * Gets the frozen VSR for Rust processing. + * + * @return Frozen VSR, or null if none available + */ + public ManagedVSR getFrozenVSR() { + return frozenVSR.get(); + } + + /** + * Takes the frozen VSR for processing and clears the frozen slot. + * + * @return Frozen VSR that was taken, or null if none available + */ + public ManagedVSR takeFrozenVSR() { + return frozenVSR.getAndSet(null); + } + + /** + * Marks a VSR as flushing (being processed by Rust). + * + * @param vsr VSR being processed + */ + public void markFlushing(ManagedVSR vsr) { + vsr.setState(VSRState.FLUSHING); + } + + /** + * Completes VSR processing and cleans up resources. + * + * @param vsr VSR that has been processed + */ + public void completeVSR(ManagedVSR vsr) { + vsr.setState(VSRState.CLOSED); + vsr.close(); + allVSRs.remove(vsr.getId()); + } + + /** + * Forces all VSRs to be frozen for immediate processing. + * Used during refresh or shutdown. + */ + public void freezeAll() { + ManagedVSR current = activeVSR.getAndSet(null); + if (current != null && current.getRowCount() > 0) { + freezeVSR(current); + } + } + + /** + * Gets statistics about the VSR pool. + * + * @return PoolStats with current state + */ + public PoolStats getStats() { + ManagedVSR active = activeVSR.get(); + ManagedVSR frozen = frozenVSR.get(); + int frozenCount = frozen != null ? 1 : 0; + + return new PoolStats( + poolId, + active != null ? active.getRowCount() : 0, + frozenCount, + allVSRs.size(), + allVSRs.values().stream().mapToLong(ManagedVSR::getRowCount).sum() + ); + } + + /** + * Checks if backpressure should be applied. + * + * @return true if frozen VSR slot is occupied or memory pressure is critical + */ + public boolean shouldApplyBackpressure() { + return frozenVSR.get() != null || + memoryMonitor.getCurrentPressureLevel() == MemoryPressureMonitor.PressureLevel.CRITICAL; + } + + /** + * Closes the pool and cleans up all resources. + */ + public void close() { + // Close active VSR + ManagedVSR active = activeVSR.getAndSet(null); + if (active != null) { + active.close(); + } + + // Close frozen VSR + ManagedVSR frozen = frozenVSR.getAndSet(null); + if (frozen != null) { + frozen.close(); + } + + // Close any remaining VSRs + allVSRs.values().forEach(ManagedVSR::close); + allVSRs.clear(); + } + + private void initializeActiveVSR() { + ManagedVSR initial = createNewVSR(); + activeVSR.set(initial); + } + + private ManagedVSR createNewVSR() { + String vsrId = poolId + "-vsr-" + vsrCounter.incrementAndGet(); + BufferAllocator allocator = null; + VectorSchemaRoot vsr = null; + + try { + allocator = bufferPool.createAllocator(vsrId); + vsr = VectorSchemaRoot.create(schema, allocator); + + ManagedVSR managedVSR = new ManagedVSR(vsrId, vsr, allocator); + allVSRs.put(vsrId, managedVSR); + + // Success: ManagedVSR now owns the resources + return managedVSR; + } catch (Exception e) { + // Clean up resources on failure since ManagedVSR couldn't take ownership + if (vsr != null) { + try { + vsr.close(); + } catch (Exception closeEx) { + e.addSuppressed(closeEx); + } + } + if (allocator != null) { + try { + allocator.close(); + } catch (Exception closeEx) { + e.addSuppressed(closeEx); + } + } + throw new RuntimeException("Failed to create new VSR", e); + } + } + + private void freezeVSR(ManagedVSR vsr) { + vsr.setState(VSRState.FROZEN); + + // CRITICAL FIX: Check if frozen slot is already occupied + ManagedVSR previousFrozen = frozenVSR.get(); + if (previousFrozen != null) { + // NEVER blindly overwrite a frozen VSR - this would cause data loss + System.err.println("[VSRPool] ERROR: Attempting to freeze VSR when frozen slot is occupied! " + + "Previous VSR: " + previousFrozen.getId() + " (" + previousFrozen.getRowCount() + " rows), " + + "New VSR: " + vsr.getId() + " (" + vsr.getRowCount() + " rows). " + + "This indicates a logic error - frozen VSR should be consumed before replacement."); + + // Return VSR to ACTIVE state to prevent state corruption + vsr.setState(VSRState.ACTIVE); + throw new IllegalStateException("Cannot freeze VSR: frozen slot is occupied by unprocessed VSR " + + previousFrozen.getId() + ". This would cause data loss."); + } + + // Safe to set frozen VSR since slot is empty + boolean success = frozenVSR.compareAndSet(null, vsr); + if (!success) { + // Race condition: another thread set frozen VSR between our check and set + vsr.setState(VSRState.ACTIVE); + throw new IllegalStateException("Race condition detected: frozen slot was occupied during freeze operation"); + } + } + + private boolean shouldRotateVSR(ManagedVSR vsr) { + return vsr.getRowCount() >= maxRowsPerVSR || + memoryMonitor.shouldTriggerEarlyRefresh(); + } + + /** + * Statistics for the VSR pool. + */ + public static class PoolStats { + private final String poolId; + private final long activeRowCount; + private final int frozenVSRCount; + private final int totalVSRCount; + private final long totalRowCount; + + public PoolStats(String poolId, long activeRowCount, int frozenVSRCount, + int totalVSRCount, long totalRowCount) { + this.poolId = poolId; + this.activeRowCount = activeRowCount; + this.frozenVSRCount = frozenVSRCount; + this.totalVSRCount = totalVSRCount; + this.totalRowCount = totalRowCount; + } + + public String getPoolId() { return poolId; } + public long getActiveRowCount() { return activeRowCount; } + public int getFrozenVSRCount() { return frozenVSRCount; } + public int getTotalVSRCount() { return totalVSRCount; } + public long getTotalRowCount() { return totalRowCount; } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRState.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRState.java new file mode 100644 index 0000000000000..cd55f30ca24cc --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRState.java @@ -0,0 +1,28 @@ +package com.parquet.parquetdataformat.vsr; + +/** + * Represents the lifecycle states of a VectorSchemaRoot in the Project Mustang + * Parquet Writer Plugin architecture. + */ +public enum VSRState { + /** + * Currently accepting writes - the VSR is active and can be modified. + */ + ACTIVE, + + /** + * Read-only state - VSR is frozen and queued for flush to Rust. + * No further modifications are allowed in this state. + */ + FROZEN, + + /** + * Currently being processed by Rust - VSR is in the handoff process. + */ + FLUSHING, + + /** + * Completed and cleaned up - VSR processing is complete and resources freed. + */ + CLOSED +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java new file mode 100644 index 0000000000000..8db471ee9a77a --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java @@ -0,0 +1,68 @@ +package com.parquet.parquetdataformat.writer; + +import com.parquet.parquetdataformat.fields.ArrowFieldRegistry; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.mapper.MappedFieldType; +import com.parquet.parquetdataformat.vsr.ManagedVSR; + +import java.io.IOException; + +/** + * Document input wrapper for Parquet-based document processing. + * + *

This class serves as an adapter between OpenSearch's DocumentInput interface + * and the Arrow-based vector representation. It works directly with a {@link ManagedVSR} + * to populate field vectors and manage document lifecycle. + * + *

The implementation follows the builder pattern, allowing incremental construction + * of documents through field addition before finalizing the document for writing. + * + *

Key responsibilities: + *

    + *
  • Direct field vector population using OpenSearch's {@link MappedFieldType}
  • + *
  • Document lifecycle management via ManagedVSR
  • + *
  • Integration with the Arrow-based Parquet writer pipeline
  • + *
+ * + *

This implementation works directly with Arrow field vectors, eliminating the + * intermediate ParquetDocument representation for improved performance and memory efficiency. + */ +public class ParquetDocumentInput implements DocumentInput { + private final ManagedVSR managedVSR; + + public ParquetDocumentInput(ManagedVSR managedVSR) { + this.managedVSR = managedVSR; + } + + @Override + public void addField(MappedFieldType fieldType, Object value) { + ArrowFieldRegistry.getParquetField(fieldType.typeName()).createField(fieldType, managedVSR, value); + } + + @Override + public ManagedVSR getFinalInput() { + return managedVSR; + } + + @Override + public WriteResult addToWriter() throws IOException { + // Complete the current document by incrementing row count + // This will internally call setValueCount on all field vectors + int currentRowCount = managedVSR.getRowCount(); + managedVSR.setRowCount(currentRowCount + 1); + + // TODO: Return appropriate WriteResult based on operation success + return new WriteResult(true, null, 1, 1, 1); + } + + @Override + public void close() throws Exception { + // NOTE: ParquetDocumentInput does NOT own the ManagedVSR lifecycle + // The ManagedVSR is owned and managed by VSRManager/VSRPool + // VSRManager.close() -> vsrPool.completeVSR(managedVSR) handles cleanup + // ParquetDocumentInput only holds a reference for field population + + // No cleanup needed here - VSRManager handles the ManagedVSR lifecycle + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java new file mode 100644 index 0000000000000..b17abdbafb45e --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java @@ -0,0 +1,73 @@ +package com.parquet.parquetdataformat.writer; + +import com.parquet.parquetdataformat.vsr.VSRManager; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.Writer; +import org.apache.arrow.vector.types.pojo.Schema; + +import java.io.IOException; +import java.util.Optional; + +/** + * Parquet file writer implementation that integrates with OpenSearch's Writer interface. + * + *

This writer provides a high-level interface for writing Parquet documents to disk + * using the underlying VSRManager for Arrow-based data management and native Rust + * backend for efficient Parquet file generation. + * + *

Key features: + *

    + *
  • Arrow schema-based document structure
  • + *
  • Batch-oriented writing with memory management
  • + *
  • Integration with OpenSearch indexing pipeline
  • + *
  • Native Rust backend for high-performance Parquet operations
  • + *
+ * + *

The writer manages the complete lifecycle from document addition through + * flushing and cleanup, delegating the actual Arrow and Parquet operations + * to the {@link VSRManager}. + */ +public class ParquetWriter implements Writer { + private final String file; + private final Schema schema; + private final VSRManager vsrManager; + + public ParquetWriter(String file, Schema schema) { + this.file = file; + this.schema = schema; + this.vsrManager = new VSRManager(file, schema); + } + + @Override + public WriteResult addDoc(ParquetDocumentInput d) throws IOException { + return vsrManager.addToManagedVSR(d); + } + + @Override + public FileMetadata flush(FlushIn flushIn) throws IOException { + return vsrManager.flush(flushIn); + } + + @Override + public void sync() throws IOException { + + } + + @Override + public void close() { + vsrManager.close(); + } + + @Override + public Optional getMetadata() { + return Optional.empty(); + } + + @Override + public ParquetDocumentInput newDocumentInput() { + // Get a new ManagedVSR from VSRManager for this document input + return new ParquetDocumentInput(vsrManager.getActiveManagedVSR()); + } +} diff --git a/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec b/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec new file mode 100644 index 0000000000000..452b39dc4abf7 --- /dev/null +++ b/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec @@ -0,0 +1 @@ +org.opensearch.datafusion.csv.CsvDataSourceCodec diff --git a/modules/parquet-data-format/src/main/rust/Cargo.toml b/modules/parquet-data-format/src/main/rust/Cargo.toml new file mode 100644 index 0000000000000..8b6999ad81701 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2024" + +[lib] +name = "parquet_dataformat_jni" +crate-type = ["cdylib"] + +[dependencies] +jni = "0.21.1" +arrow = { version = "53.0.0", features = ["ffi"] } +parquet = "53.0.0" +lazy_static = "1.4.0" +dashmap = "7.0.0-rc2" +chrono = "0.4" diff --git a/modules/parquet-data-format/src/main/rust/src/context.rs b/modules/parquet-data-format/src/main/rust/src/context.rs new file mode 100644 index 0000000000000..0878254479201 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/context.rs @@ -0,0 +1,70 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use datafusion::prelude::*; +use datafusion::execution::context::SessionContext; +use std::collections::HashMap; +use std::sync::Arc; +use anyhow::Result; + +/// Manages DataFusion session contexts +pub struct SessionContextManager { + contexts: HashMap<*mut SessionContext, Arc>, + next_runtime_id: u64, +} + +impl SessionContextManager { + pub fn new() -> Self { + Self { + contexts: HashMap::new(), + next_runtime_id: 1, + } + } + + pub async fn register_directory( + &mut self, + table_name: &str, + directory_path: &str, + options: HashMap, + ) -> Result { + // Placeholder implementation - would register csv directory as table + log::info!("Registering directory: {} at path: {} with options: {:?}", + table_name, directory_path, options); + + let runtime_id = self.next_runtime_id; + self.next_runtime_id += 1; + Ok(runtime_id) + } + + pub async fn create_session_context( + &mut self, + config: HashMap, + ) -> Result<*mut SessionContext> { + // Create actual DataFusion session context + let mut session_config = SessionConfig::new(); + + // Apply configuration options + if let Some(batch_size) = config.get("batch_size") { + if let Ok(size) = batch_size.parse::() { + session_config = session_config.with_batch_size(size); + } + } + + let ctx = Arc::new(SessionContext::new_with_config(session_config)); + let ctx_ptr = Arc::as_ptr(&ctx) as *mut SessionContext; + + self.contexts.insert(ctx_ptr, ctx); + + Ok(ctx_ptr) + } + + pub async fn close_session_context(&mut self, ctx_ptr: *mut SessionContext) -> Result<()> { + self.contexts.remove(&ctx_ptr); + Ok(()) + } + + pub fn get_context(&self, ctx_ptr: *mut SessionContext) -> Option<&Arc> { + self.contexts.get(&ctx_ptr) + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/csv_exec.rs b/modules/parquet-data-format/src/main/rust/src/csv_exec.rs new file mode 100644 index 0000000000000..2043be331b35a --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/csv_exec.rs @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use anyhow::Result; + +/// Csv-specific execution utilities - placeholder implementation +pub struct CsvExecutor; + +impl CsvExecutor { + pub fn new() -> Self { + Self + } + + /// Create a listing table for Csv files - placeholder + pub async fn create_csv_table( + &self, + table_path: &str, + ) -> Result { + // Placeholder implementation + log::info!("Creating csv table for path: {}", table_path); + Ok(1) // Return dummy table ID + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs new file mode 100644 index 0000000000000..6ef32c8f5050a --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -0,0 +1,249 @@ +use jni::objects::{JClass, JString}; +use jni::sys::{jint, jlong}; +use jni::JNIEnv; +use dashmap::DashMap; +use arrow::record_batch::RecordBatch; +use parquet::arrow::ArrowWriter; +use std::fs::File; +use std::sync::{Arc, Mutex}; +use lazy_static::lazy_static; +use arrow::ffi::{FFI_ArrowSchema, FFI_ArrowArray}; +use std::fs::OpenOptions; +use std::io::Write; +use chrono::Utc; + +lazy_static! { + static ref WRITER_MANAGER: DashMap>>> = DashMap::new(); + static ref FILE_MANAGER: DashMap = DashMap::new(); +} + +struct NativeParquetWriter; + +impl NativeParquetWriter { + + fn create_writer(filename: String, schema_address: i64) -> Result<(), Box> { + let log_msg = format!("[RUST] create_writer called for file: {}, schema_address: {}\n", filename, schema_address); + println!("{}", log_msg.trim()); + Self::log_to_file(&log_msg); + + let arrow_schema = unsafe { FFI_ArrowSchema::from_raw(schema_address as *mut _) }; + let schema = Arc::new(arrow::datatypes::Schema::try_from(&arrow_schema)?); + + let schema_msg = format!("[RUST] Schema created with {} fields\n", schema.fields().len()); + println!("{}", schema_msg.trim()); + Self::log_to_file(&schema_msg); + + for (i, field) in schema.fields().iter().enumerate() { + let field_msg = format!("[RUST] Field {}: {} ({})\n", i, field.name(), field.data_type()); + println!("{}", field_msg.trim()); + Self::log_to_file(&field_msg); + } + + let file = File::create(&filename)?; + let file_clone = file.try_clone()?; + FILE_MANAGER.insert(filename.clone(), file_clone); + let writer = ArrowWriter::try_new(file, schema, None)?; + WRITER_MANAGER.insert(filename, Arc::new(Mutex::new(writer))); + Ok(()) + } + + fn write_data(filename: String, array_address: i64, schema_address: i64) -> Result<(), Box> { + let log_msg = format!("[RUST] write_data called for file: {}, array_address: {}, schema_address: {}\n", filename, array_address, schema_address); + println!("{}", log_msg.trim()); + Self::log_to_file(&log_msg); + + unsafe { + let arrow_schema = FFI_ArrowSchema::from_raw(schema_address as *mut _); + let arrow_array = FFI_ArrowArray::from_raw(array_address as *mut _); + + match arrow::ffi::from_ffi(arrow_array, &arrow_schema) { + Ok(array_data) => { + let data_msg = format!("[RUST] Successfully imported array_data, length: {}\n", array_data.len()); + println!("{}", data_msg.trim()); + Self::log_to_file(&data_msg); + + let array: Arc = arrow::array::make_array(array_data); + let array_msg = format!("[RUST] Array type: {:?}, length: {}\n", array.data_type(), array.len()); + println!("{}", array_msg.trim()); + Self::log_to_file(&array_msg); + + if let Some(struct_array) = array.as_any().downcast_ref::() { + let struct_msg = format!("[RUST] Successfully cast to StructArray with {} columns\n", struct_array.num_columns()); + println!("{}", struct_msg.trim()); + Self::log_to_file(&struct_msg); + + let schema = Arc::new(arrow::datatypes::Schema::new( + struct_array.fields().clone() + )); + + let record_batch = RecordBatch::try_new( + schema.clone(), + struct_array.columns().to_vec(), + )?; + + let batch_msg = format!("[RUST] Created RecordBatch with {} rows and {} columns\n", record_batch.num_rows(), record_batch.num_columns()); + println!("{}", batch_msg.trim()); + Self::log_to_file(&batch_msg); + + if let Some(writer_arc) = WRITER_MANAGER.get(&filename) { + let write_msg = "[RUST] Writing RecordBatch to file\n"; + println!("{}", write_msg.trim()); + Self::log_to_file(write_msg); + let mut writer = writer_arc.lock().unwrap(); + writer.write(&record_batch)?; + let success_msg = "[RUST] Successfully wrote RecordBatch\n"; + println!("{}", success_msg.trim()); + Self::log_to_file(success_msg); + } else { + let error_msg = format!("[RUST] ERROR: No writer found for file: {}\n", filename); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + } + Ok(()) + } else { + let error_msg = format!("[RUST] ERROR: Array is not a StructArray, type: {:?}\n", array.data_type()); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err("Expected struct array from VectorSchemaRoot".into()) + } + } + Err(e) => { + let error_msg = format!("[RUST] ERROR: Failed to import from FFI: {:?}\n", e); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err(e.into()) + } + } + } + } + + fn close_writer(filename: String) -> Result<(), Box> { + let log_msg = format!("[RUST] close_writer called for file: {}\n", filename); + println!("{}", log_msg.trim()); + Self::log_to_file(&log_msg); + + if let Some((_, writer_arc)) = WRITER_MANAGER.remove(&filename) { + match Arc::try_unwrap(writer_arc) { + Ok(mutex) => { + let mut writer = mutex.into_inner().unwrap(); + match writer.close() { + Ok(_) => { + let success_msg = format!("[RUST] Successfully closed writer for file: {}\n", filename); + println!("{}", success_msg.trim()); + Self::log_to_file(&success_msg); + Ok(()) + } + Err(e) => { + let error_msg = format!("[RUST] ERROR: Failed to close writer for file: {}\n", filename); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err(e.into()) + } + } + } + Err(_) => { + let error_msg = format!("[RUST] ERROR: Writer still in use for file: {}\n", filename); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err("Writer still in use".into()) + } + } + } else { + Ok(()) + } + } + + fn flush_to_disk(filename: String) -> Result<(), Box> { + let log_msg = format!("[RUST] fsync_file called for file: {}\n", filename); + println!("{}", log_msg.trim()); + Self::log_to_file(&log_msg); + + if let Some(mut file) = FILE_MANAGER.get_mut(&filename) { + match file.sync_all() { + Ok(_) => { + let success_msg = format!("[RUST] Successfully fsynced file: {}\n", filename); + println!("{}", success_msg.trim()); + Self::log_to_file(&success_msg); + Ok(()) + } + Err(e) => { + let error_msg = format!("[RUST] ERROR: Failed to fsync file: {}\n", filename); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err(e.into()) + } + } + } else { + let error_msg = format!("[RUST] ERROR: File not found for fsync: {}\n", filename); + println!("{}", error_msg.trim()); + Self::log_to_file(&error_msg); + Err("File not found".into()) + } + } + + fn log_to_file(message: &str) { + if let Ok(mut file) = OpenOptions::new() + .create(true) + .append(true) + .open("/tmp/rust_parquet_debug.log") { + let timestamp = Utc::now().format("%Y-%m-%d %H:%M:%S%.3f UTC"); + let timestamped_message = format!("[{}] {}", timestamp, message); + let _ = file.write_all(timestamped_message.as_bytes()); + } + } +} + +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_createWriter( + mut env: JNIEnv, + _class: JClass, + file: JString, + schema_address: jlong +) -> jint { + let filename: String = env.get_string(&file).expect("Couldn't get java string!").into(); + match NativeParquetWriter::create_writer(filename, schema_address as i64) { + Ok(_) => 0, + Err(_) => -1, + } +} + +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_write( + mut env: JNIEnv, + _class: JClass, + file: JString, + array_address: jlong, + schema_address: jlong +) -> jint { + let filename: String = env.get_string(&file).expect("Couldn't get java string!").into(); + match NativeParquetWriter::write_data(filename, array_address as i64, schema_address as i64) { + Ok(_) => 0, + Err(_) => -1, + } +} + +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_closeWriter( + mut env: JNIEnv, + _class: JClass, + file: JString +) -> jint { + let filename: String = env.get_string(&file).expect("Couldn't get java string!").into(); + match NativeParquetWriter::close_writer(filename) { + Ok(_) => 0, + Err(_) => -1, + } +} + +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_flushToDisk( + mut env: JNIEnv, + _class: JClass, + file: JString +) -> jint { + let filename: String = env.get_string(&file).expect("Couldn't get java string!").into(); + match NativeParquetWriter::flush_to_disk(filename) { + Ok(_) => 0, + Err(_) => -1, + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/read_lib.rs b/modules/parquet-data-format/src/main/rust/src/read_lib.rs new file mode 100644 index 0000000000000..34618f94a9372 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/read_lib.rs @@ -0,0 +1,198 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +//! OpenSearch DataFusion Csv JNI Library +//! +//! This library provides JNI bindings for DataFusion query execution, + +use jni::JNIEnv; +use jni::objects::{JClass, JString, JObjectArray, JByteArray}; +use jni::sys::{jlong, jstring}; +use std::ptr; +use std::collections::HashMap; + +mod context; +mod runtime; +mod stream; +mod substrait; +mod util; +mod csv_exec; + +use context::SessionContextManager; +use runtime::RuntimeManager; +use stream::RecordBatchStreamWrapper; +use substrait::SubstraitExecutor; +use datafusion::execution::context::SessionContext; +use datafusion::execution::runtime_env::RuntimeEnv; + +/** +TODO : Put more thought into this +**/ +static mut RUNTIME_MANAGER: Option = None; + +static mut SESSION_MANAGER: Option = None; + +/// Initialize the managers (call once) +fn init_managers() { + unsafe { + if RUNTIME_MANAGER.is_none() { + RUNTIME_MANAGER = Some(RuntimeManager::new()); + } + if SESSION_MANAGER.is_none() { + SESSION_MANAGER = Some(SessionContextManager::new()); + } + } +} +static mut RUNTIME_ENVIRONMENTS: Option> = None; + + +/// Register a directory as a table in the global context and return runtime environment ID +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeRegisterDirectory( + mut env: JNIEnv, + _class: JClass, + table_name: JString, + directory_path: JString, + files: JObjectArray, + runtime_id: jlong +) { + let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; + // placeholder +} + +/// Create a new session context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCreateSessionContext( + mut env: JNIEnv, + _class: JClass, + config_keys: JObjectArray, + config_values: JObjectArray, +) -> jlong { + // Initialize managers if not already done + init_managers(); + + // PLACEHOLDER + // Parse configuration from JNI arrays + let config = match util::parse_string_map(&mut env, config_keys, config_values) { + Ok(cfg) => cfg, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to parse config: {}", e)); + return 0; + } + }; + + // Create session context + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + SESSION_MANAGER.as_mut().unwrap().create_session_context(config).await + }) + } { + Ok(context_ptr) => context_ptr as jlong, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to create session context: {}", e)); + 0 + } + } +} + +/// Execute a Substrait query plan +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeExecuteSubstraitQuery( + mut env: JNIEnv, + _class: JClass, + session_context_ptr: jlong, + substrait_plan: JByteArray, +) -> jlong { + + // Convert JByteArray to Vec + let substrait_plan_bytes = match env.convert_byte_array(substrait_plan) { + Ok(bytes) => bytes, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to convert substrait plan: {}", e)); + return 0; + } + }; + + // Execute the query + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + let executor = SubstraitExecutor::new(); + executor.execute_plan(session_context_ptr as *mut SessionContext, &substrait_plan_bytes).await + }) + } { + Ok(stream_ptr) => stream_ptr as jlong, + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to execute query: {}", e)); + 0 + } + } +} + +/// Close a session context +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCloseSessionContext( + mut env: JNIEnv, + _class: JClass, + session_context_ptr: jlong, +) { + + if let Err(e) = unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + SESSION_MANAGER.as_mut().unwrap() + .close_session_context(session_context_ptr as *mut SessionContext) + .await + }) + } { + util::throw_exception(&mut env, &format!("Failed to close session context: {}", e)); + } +} + +/// Get the next record batch from a stream +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeNextBatch( + mut env: JNIEnv, + _class: JClass, + stream_ptr: jlong, +) -> jstring { + + let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamWrapper) }; + + match unsafe { + RUNTIME_MANAGER.as_ref().unwrap().block_on(async { + stream.next_batch().await + }) + } { + Ok(Some(batch_json)) => { + match env.new_string(&batch_json) { + Ok(jstr) => jstr.into_raw(), + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to create Java string: {}", e)); + ptr::null_mut() + } + } + } + Ok(None) => ptr::null_mut(), // End of stream + Err(e) => { + util::throw_exception(&mut env, &format!("Failed to get next batch: {}", e)); + ptr::null_mut() + } + } +} + +/// Close a record batch stream +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeCloseStream( + _env: JNIEnv, + _class: JClass, + stream_ptr: jlong, +) { + if stream_ptr != 0 { + let stream = unsafe { Box::from_raw(stream_ptr as *mut RecordBatchStreamWrapper) }; + drop(stream); + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/runtime.rs b/modules/parquet-data-format/src/main/rust/src/runtime.rs new file mode 100644 index 0000000000000..bcd48a7dee58b --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/runtime.rs @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use tokio::runtime::Runtime; +use std::future::Future; + +/// Manages the Tokio runtime for async operations +pub struct RuntimeManager { + runtime: Runtime, +} + +impl RuntimeManager { + pub fn new() -> Self { + // Placeholder + + let runtime = Runtime::new().expect("Failed to create Tokio runtime"); + Self { runtime } + } + + pub fn block_on(&self, future: F) -> F::Output + where + F: Future, + { + self.runtime.block_on(future) + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/stream.rs b/modules/parquet-data-format/src/main/rust/src/stream.rs new file mode 100644 index 0000000000000..2fe30f941223b --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/stream.rs @@ -0,0 +1,43 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use anyhow::Result; +use serde_json; + +/// Wrapper for DataFusion record batch streams - placeholder implementation +pub struct RecordBatchStreamWrapper { + batch_count: u32, + is_placeholder: bool, +} + +impl RecordBatchStreamWrapper { + pub fn new_placeholder() -> Self { + Self { + batch_count: 0, + is_placeholder: true, + } + } + + pub async fn next_batch(&mut self) -> Result> { + // Return placeholder data for first few calls, then None + if self.is_placeholder { + if self.batch_count < 2 { + self.batch_count += 1; + let placeholder_data = serde_json::json!({ + "rows": [ + {"id": self.batch_count, "name": format!("placeholder_row_{}", self.batch_count)} + ], + "num_rows": 1, + "num_columns": 2 + }); + Ok(Some(serde_json::to_string(&placeholder_data)?)) + } else { + Ok(None) // End of stream + } + } else { + // Real implementation would go here + Ok(None) + } + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/substrait.rs b/modules/parquet-data-format/src/main/rust/src/substrait.rs new file mode 100644 index 0000000000000..d8ca0f2846fd7 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/substrait.rs @@ -0,0 +1,37 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use datafusion::execution::context::SessionContext; +use crate::stream::RecordBatchStreamWrapper; +use anyhow::Result; + +/// Executes Substrait query plans +pub struct SubstraitExecutor; + +impl SubstraitExecutor { + pub fn new() -> Self { + Self + } + + pub async fn execute_plan( + &self, + session_context_ptr: *mut SessionContext, + substrait_plan_bytes: &[u8], + ) -> Result<*mut RecordBatchStreamWrapper> { + // Placeholder implementation - would normally: + // 1. Parse Substrait plan from substrait_plan_bytes + // 2. Convert to DataFusion logical plan using datafusion-substrait + // 3. Execute using the session context + // 4. Return actual record batch stream + + log::info!("Executing Substrait plan with {} bytes for session: {:?}", + substrait_plan_bytes.len(), session_context_ptr); + + // For now, return a placeholder stream + let wrapper = RecordBatchStreamWrapper::new_placeholder(); + let wrapper_ptr = Box::into_raw(Box::new(wrapper)); + + Ok(wrapper_ptr) + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/util.rs b/modules/parquet-data-format/src/main/rust/src/util.rs new file mode 100644 index 0000000000000..5055c1312791a --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/util.rs @@ -0,0 +1,63 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use jni::JNIEnv; +use jni::objects::{JObjectArray, JString}; +use std::collections::HashMap; +use anyhow::Result; + +/// Parse a string map from JNI arrays +pub fn parse_string_map( + env: &mut JNIEnv, + keys: JObjectArray, + values: JObjectArray, +) -> Result> { + let mut map = HashMap::new(); + + let keys_len = env.get_array_length(&keys)?; + let values_len = env.get_array_length(&values)?; + + if keys_len != values_len { + return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); + } + + for i in 0..keys_len { + let key_obj = env.get_object_array_element(&keys, i)?; + let value_obj = env.get_object_array_element(&values, i)?; + + let key_jstring = JString::from(key_obj); + let value_jstring = JString::from(value_obj); + + let key_str = env.get_string(&key_jstring)?; + let value_str = env.get_string(&value_jstring)?; + + map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); + } + + Ok(map) +} + +// Parse a string map from JNI arrays +pub fn parse_string_arr( + env: &mut JNIEnv, + files: JObjectArray, +) -> Result> { + let length = env.get_array_length(&files).unwrap(); + let mut rust_strings: Vec = Vec::with_capacity(length as usize); + for i in 0..length { + let file_obj = env.get_object_array_element(&files, i).unwrap(); + let jstring = JString::from(file_obj); + let rust_str: String = env + .get_string(&jstring) + .expect("Couldn't get java string!") + .into(); + rust_strings.push(rust_str); + } + Ok(rust_strings) +} + +/// Throw a Java exception +pub fn throw_exception(env: &mut JNIEnv, message: &str) { + let _ = env.throw_new("java/lang/RuntimeException", message); +} diff --git a/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatPluginIT.java b/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatPluginIT.java new file mode 100644 index 0000000000000..f4c123b8a96f4 --- /dev/null +++ b/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatPluginIT.java @@ -0,0 +1,41 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +package com.parquet.parquetdataformat; + +import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope; +import org.apache.hc.core5.http.ParseException; +import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.opensearch.client.Request; +import org.opensearch.client.Response; +import org.opensearch.plugins.Plugin; +import org.opensearch.test.OpenSearchIntegTestCase; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Collection; +import java.util.Collections; + +import static org.hamcrest.Matchers.containsString; + +@ThreadLeakScope(ThreadLeakScope.Scope.NONE) +@OpenSearchIntegTestCase.ClusterScope(scope = OpenSearchIntegTestCase.Scope.SUITE) +public class ParquetDataFormatPluginIT extends OpenSearchIntegTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singletonList(ParquetDataFormatPlugin.class); + } + + public void testPluginInstalled() throws IOException, ParseException { + Response response = getRestClient().performRequest(new Request("GET", "/_cat/plugins")); + String body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); + + logger.info("response body: {}", body); + assertThat(body, containsString("parquet")); + } +} diff --git a/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatTests.java b/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatTests.java new file mode 100644 index 0000000000000..b52466249d727 --- /dev/null +++ b/modules/parquet-data-format/src/test/java/com/parquet/parquetdataformat/ParquetDataFormatTests.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +package com.parquet.parquetdataformat; + +import com.parquet.parquetdataformat.bridge.RustBridge; +import org.opensearch.test.OpenSearchTestCase; + +import java.io.IOException; + +public class ParquetDataFormatTests extends OpenSearchTestCase { + + public void testIngestion() throws IOException { + // Test only basic functionality without Arrow operations + try { + // Create plugin but don't call complex operations + ParquetDataFormatPlugin plugin = new ParquetDataFormatPlugin(); + plugin.indexDataToParquetEngine(); + + } catch (UnsatisfiedLinkError e) { + fail("Native library not loaded properly: " + e.getMessage()); + } catch (Exception e) { + fail("Test failed: " + e.getMessage()); + } + } +} diff --git a/modules/parquet-data-format/src/yamlRestTest/java/org.opensearch/parquetdataformat/ParquetDataFormatClientYamlTestSuiteIT.java b/modules/parquet-data-format/src/yamlRestTest/java/org.opensearch/parquetdataformat/ParquetDataFormatClientYamlTestSuiteIT.java new file mode 100644 index 0000000000000..324c6ce3debd1 --- /dev/null +++ b/modules/parquet-data-format/src/yamlRestTest/java/org.opensearch/parquetdataformat/ParquetDataFormatClientYamlTestSuiteIT.java @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +package org.opensearch.parquetdataformat; + +import com.carrotsearch.randomizedtesting.annotations.Name; +import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.opensearch.test.rest.yaml.ClientYamlTestCandidate; +import org.opensearch.test.rest.yaml.OpenSearchClientYamlSuiteTestCase; + + +public class ParquetDataFormatClientYamlTestSuiteIT extends OpenSearchClientYamlSuiteTestCase { + + public ParquetDataFormatClientYamlTestSuiteIT(@Name("yaml") ClientYamlTestCandidate testCandidate) { + super(testCandidate); + } + + @ParametersFactory + public static Iterable parameters() throws Exception { + return OpenSearchClientYamlSuiteTestCase.createParameters(); + } +} diff --git a/modules/parquet-data-format/src/yamlRestTest/resources/rest-api-spec/test/10_basic.yml b/modules/parquet-data-format/src/yamlRestTest/resources/rest-api-spec/test/10_basic.yml new file mode 100644 index 0000000000000..0399b16c51642 --- /dev/null +++ b/modules/parquet-data-format/src/yamlRestTest/resources/rest-api-spec/test/10_basic.yml @@ -0,0 +1,8 @@ +"Test that the plugin is loaded in OpenSearch": + - do: + cat.plugins: + local: true + h: component + + - match: + $body: /^rename\n$/ diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java index 97a1c832d515c..506384c09fe1f 100644 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java +++ b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java @@ -12,6 +12,8 @@ import org.opensearch.datafusion.csv.engine.exec.CsvEngine; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.shard.ShardPath; import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.Plugin; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; @@ -47,7 +49,7 @@ public Optional IndexingExecutionEngine indexingEngine() { + public IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath) { if (CsvDataFormat.class.equals(getDataFormatType())) { @SuppressWarnings("unchecked") IndexingExecutionEngine engine = (IndexingExecutionEngine) new CsvEngine(); diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 0e7d047d9c721..7155154d14e75 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -254,7 +254,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table("hits", provider) + ctx.register_table("index-7", provider) .expect("Failed to attach the Table"); }); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 7f794167a7cef..45a2da3e6afa3 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -26,6 +26,7 @@ import org.opensearch.datafusion.search.DatafusionSearcher; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; +import org.opensearch.index.shard.ShardPath; import org.opensearch.search.ContextEngineSearcher; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; @@ -124,8 +125,8 @@ public List getSupportedFormats() { @Override public SearchExecEngine - createEngine(DataFormat dataFormat,Collection formatCatalogSnapshot) throws IOException { - return new DatafusionEngine(dataFormat, formatCatalogSnapshot, dataFusionService); + createEngine(DataFormat dataFormat,Collection formatCatalogSnapshot, ShardPath shardPath) throws IOException { + return new DatafusionEngine(dataFormat, formatCatalogSnapshot, dataFusionService, shardPath); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 991409d81c95d..15ee31ca7663a 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -31,6 +31,7 @@ import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.shard.ShardPath; import org.opensearch.search.SearchShardTarget; import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.search.internal.ReaderContext; @@ -42,6 +43,7 @@ import java.io.IOException; import java.io.UncheckedIOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -57,9 +59,10 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService) throws IOException { + public DatafusionEngine(DataFormat dataFormat, Collection formatCatalogSnapshot, DataFusionService dataFusionService, ShardPath shardPath) throws IOException { this.dataFormat = dataFormat; - this.datafusionReaderManager = new DatafusionReaderManager("/Users/anijainc/Desktop/BLRBackups/AOS_Search/Mustang/res", formatCatalogSnapshot); + + this.datafusionReaderManager = new DatafusionReaderManager(shardPath.getDataPath().toString(), formatCatalogSnapshot, dataFormat.getName()); this.datafusionService = dataFusionService; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index eaf58b5511588..7aa20c5f2aeb1 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -13,6 +13,8 @@ import java.io.Closeable; import java.io.IOException; +import java.nio.file.Path; +import java.util.Arrays; import java.util.Collection; import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; @@ -45,7 +47,15 @@ public class DatafusionReader implements Closeable { public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; - String[] fileNames = Objects.isNull(files) ? new String[]{"hits_data.parquet"} : files.stream().map(FileMetadata::fileName).toArray(String[]::new); + String[] fileNames = new String[0]; + if(files != null) { + System.out.println("Got the files!!!!!"); + fileNames = files.stream().map(file -> Path.of(file.fileName()).getFileName().toString()).toArray(String[]::new); + } + //String[] fileNames = files.stream().map(file -> Path.of(file.fileName()).getFileName().toString()).toArray(String[]::new); + System.out.println("File names: " + Arrays.toString(fileNames)); + System.out.println("Directory path: " + directoryPath); + this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, fileNames); incRef(); } @@ -87,7 +97,7 @@ public void close() throws IOException { throw new IllegalStateException("Listing table has been already closed"); } - closeDatafusionReader(this.cachePtr); +// closeDatafusionReader(this.cachePtr); this.cachePtr = -1; } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index a48e697d6fd16..192be34625bd2 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -11,6 +11,7 @@ import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; @@ -29,8 +30,8 @@ public class DatafusionReaderManager implements EngineReaderManager refreshListeners = new CopyOnWriteArrayList(); - public DatafusionReaderManager(String path, Collection files) throws IOException { - this.current = new DatafusionReader(path, files); + public DatafusionReaderManager(String path, Collection files, String dataFormat) throws IOException { + this.current = null; this.path = path; this.dataFormat = dataFormat; } @@ -60,7 +61,9 @@ public void beforeRefresh() throws IOException { public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { if (didRefresh && catalogSnapshot != null) { DatafusionReader old = this.current; - release(old); + if(old !=null) { + release(old); + } this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); this.current.incRef(); } diff --git a/server/build.gradle b/server/build.gradle index aa6afb2440654..a70fe49ec6365 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -137,8 +137,7 @@ tasks.withType(JavaCompile).configureEach { } compileJava { - options.compilerArgs += ['-processor', ['org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor', - 'org.opensearch.common.annotation.processor.ApiAnnotationProcessor'].join(',')] + options.compilerArgs += ['-processor', ['org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor'].join(',')] } tasks.named("internalClusterTest").configure { diff --git a/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java index 6cdb6870d7e68..2bb09a50dee52 100644 --- a/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java +++ b/server/src/main/java/org/opensearch/index/engine/DataFormatPlugin.java @@ -10,12 +10,12 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; - -import javax.xml.crypto.Data; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.shard.ShardPath; public interface DataFormatPlugin { - IndexingExecutionEngine indexingEngine(); + IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath); DataFormat getDataFormat(); } diff --git a/server/src/main/java/org/opensearch/index/engine/Engine.java b/server/src/main/java/org/opensearch/index/engine/Engine.java index 0b8b60bd9a4ae..c17927990df7f 100644 --- a/server/src/main/java/org/opensearch/index/engine/Engine.java +++ b/server/src/main/java/org/opensearch/index/engine/Engine.java @@ -79,7 +79,10 @@ import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.core.index.shard.ShardId; import org.opensearch.index.VersionType; -import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.bridge.CheckpointState; +import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.engine.exec.bridge.IndexingThrottler; +import org.opensearch.index.engine.exec.bridge.StatsHolder; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.IdFieldMapper; import org.opensearch.index.mapper.Mapping; @@ -132,7 +135,7 @@ * @opensearch.api */ @PublicApi(since = "1.0.0") -public abstract class Engine implements LifecycleAware, Closeable, SearcherOperations> { +public abstract class Engine implements LifecycleAware, Closeable, Indexer, CheckpointState, StatsHolder, IndexingThrottler, SearcherOperations> { public static final String SYNC_COMMIT_ID = "sync_id"; // TODO: remove sync_id in 3.0 public static final String HISTORY_UUID_KEY = "history_uuid"; @@ -1639,6 +1642,7 @@ public Index( this.autoGeneratedIdTimestamp = autoGeneratedIdTimestamp; this.ifSeqNo = ifSeqNo; this.ifPrimaryTerm = ifPrimaryTerm; + this.documentInput = doc.getDocumentInput(); } public Index(Term uid, long primaryTerm, ParsedDocument doc) { diff --git a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java index 9f5cbadbb19fb..b291c32b8c985 100644 --- a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java @@ -163,7 +163,7 @@ public class InternalEngine extends Engine { protected volatile long lastDeleteVersionPruneTimeMSec; protected final TranslogManager translogManager; - protected final IndexWriter indexWriter; + public final IndexWriter indexWriter; protected final LocalCheckpointTracker localCheckpointTracker; protected final AtomicLong maxUnsafeAutoIdTimestamp = new AtomicLong(-1); protected final SoftDeletesPolicy softDeletesPolicy; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/CheckpointState.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/CheckpointState.java new file mode 100644 index 0000000000000..52784d834d837 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/CheckpointState.java @@ -0,0 +1,39 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.bridge; + +import org.opensearch.common.annotation.PublicApi; +import org.opensearch.index.seqno.SeqNoStats; + +@PublicApi(since = "1.0.0") +public interface CheckpointState { + + /** + * @return the persisted local checkpoint for this Engine + */ + long getPersistedLocalCheckpoint(); + + /** + * @return the latest checkpoint that has been processed but not necessarily persisted. + * Also see {@link #getPersistedLocalCheckpoint()} + */ + long getProcessedLocalCheckpoint(); + + /** + * @return a {@link SeqNoStats} object, using local state and the supplied global checkpoint + */ + SeqNoStats getSeqNoStats(long globalCheckpoint); + + /** + * Returns the latest global checkpoint value that has been persisted in the underlying storage (i.e. translog's checkpoint) + */ + long getLastSyncedGlobalCheckpoint(); + + long getMinRetainedSeqNo(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java new file mode 100644 index 0000000000000..39f8929fe703c --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java @@ -0,0 +1,94 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.bridge; + +import org.opensearch.common.annotation.PublicApi; +import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.SafeCommitInfo; +import org.opensearch.index.engine.Segment; +import org.opensearch.index.translog.Translog; +import org.opensearch.index.translog.TranslogManager; + +import java.io.Closeable; +import java.io.IOException; +import java.util.List; + +@PublicApi(since = "1.0.0") +public interface Indexer { + + Engine.IndexResult index(Engine.Index index) throws IOException; + + Engine.DeleteResult delete(Engine.Delete delete) throws IOException; + + Engine.NoOpResult noOp(Engine.NoOp noOp) throws IOException; + + /** + * Counts the number of history operations in the given sequence number range + * @param source source of the request + * @param fromSeqNo from sequence number; included + * @param toSeqNumber to sequence number; included + * @return number of history operations + */ + int countNumberOfHistoryOperations(String source, long fromSeqNo, long toSeqNumber) throws IOException; + + boolean hasCompleteOperationHistory(String reason, long startingSeqNo); + + long getIndexBufferRAMBytesUsed(); + + List segments(boolean verbose); + + /** + * Returns the maximum auto_id_timestamp of all append-only index requests have been processed by this engine + * or the auto_id_timestamp received from its primary shard via {@link #updateMaxUnsafeAutoIdTimestamp(long)}. + * Notes this method returns the auto_id_timestamp of all append-only requests, not max_unsafe_auto_id_timestamp. + */ + long getMaxSeenAutoIdTimestamp(); + + /** + * Forces this engine to advance its max_unsafe_auto_id_timestamp marker to at least the given timestamp. + * The engine will disable optimization for all append-only whose timestamp at most {@code newTimestamp}. + */ + void updateMaxUnsafeAutoIdTimestamp(long newTimestamp); + + int fillSeqNoGaps(long primaryTerm) throws IOException; + + // File format methods follow below + void forceMerge( + boolean flush, + int maxNumSegments, + boolean onlyExpungeDeletes, + boolean upgrade, + boolean upgradeOnlyAncientSegments, + String forceMergeUUID + ) throws EngineException, IOException; + + void writeIndexingBuffer() throws EngineException; + + void refresh(String source) throws EngineException; + + void flush(boolean force, boolean waitIfOngoing) throws EngineException; + + SafeCommitInfo getSafeCommitInfo(); + + // Translog methods follow below + TranslogManager translogManager(); + + Closeable acquireHistoryRetentionLock(); + + Translog.Snapshot newChangesSnapshot( + String source, + long fromSeqNo, + long toSeqNo, + boolean requiredFullRange, + boolean accurateCount + ) throws IOException; + + String getHistoryUUID(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/IndexingThrottler.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/IndexingThrottler.java new file mode 100644 index 0000000000000..050dc07d1011b --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/IndexingThrottler.java @@ -0,0 +1,37 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.bridge; + +import org.opensearch.common.annotation.PublicApi; + +@PublicApi(since = "1.0.0") +public interface IndexingThrottler { + + /** + * Returns the number of milliseconds this engine was under index throttling. + */ + long getIndexThrottleTimeInMillis(); + + /** + * Returns the true iff this engine is currently under index throttling. + * @see #getIndexThrottleTimeInMillis() + */ + boolean isThrottled(); + + /** + * Request that this engine throttle incoming indexing requests to one thread. + * Must be matched by a later call to {@link #deactivateThrottling()}. + */ + void activateThrottling(); + + /** + * Reverses a previous {@link #activateThrottling} call. + */ + void deactivateThrottling(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/StatsHolder.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/StatsHolder.java new file mode 100644 index 0000000000000..27d0c099aaa53 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/StatsHolder.java @@ -0,0 +1,33 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.bridge; + +import org.opensearch.common.annotation.PublicApi; +import org.opensearch.index.engine.CommitStats; +import org.opensearch.index.engine.SegmentsStats; +import org.opensearch.index.merge.MergeStats; +import org.opensearch.index.shard.DocsStats; +import org.opensearch.indices.pollingingest.PollingIngestStats; +import org.opensearch.search.suggest.completion.CompletionStats; + +@PublicApi(since = "1.0.0") +public interface StatsHolder { + + CommitStats commitStats(); + + DocsStats docStats(); + + SegmentsStats segmentsStats(boolean includeSegmentFileSizes, boolean includeUnloadedSegments); + + CompletionStats completionStats(String... fieldNamePatterns); + + PollingIngestStats pollingIngestStats(); + + MergeStats getMergeStats(); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 22be766ff9be4..d7306511b4139 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -77,12 +77,12 @@ public CompositeDocumentInput newDocumentInput() { public static class CompositeDocumentInput implements DocumentInput>> { List> inputs; CompositeDataFormatWriter writer; - Runnable onClose; + Runnable postWrite; - public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable onClose) { + public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable postWrite) { this.inputs = inputs; this.writer = writer; - this.onClose = onClose; + this.postWrite = postWrite; } @Override @@ -103,12 +103,13 @@ public WriteResult addToWriter() throws IOException { for (DocumentInput input : inputs) { writeResult = input.addToWriter(); } + postWrite.run(); return writeResult; } @Override public void close() throws Exception { - onClose.run(); + postWrite.run(); } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 399ec3df3a663..0a3be8f571a2d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -8,7 +8,6 @@ package org.opensearch.index.engine.exec.composite; -import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.IndexingExecutionEngine; @@ -18,6 +17,8 @@ import org.opensearch.index.engine.exec.coord.Any; import org.opensearch.index.engine.exec.coord.DocumentWriterPool; import org.opensearch.index.engine.exec.text.TextEngine; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.shard.ShardPath; import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.plugins.PluginsService; @@ -33,7 +34,7 @@ public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine private DataFormat dataFormat; public final List> delegates = new ArrayList<>(); - public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataformat) { + public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, Any dataformat, ShardPath shardPath) { this.dataFormat = dataformat; try { for (DataFormat dataFormat : dataformat.getDataFormats()) { @@ -42,7 +43,7 @@ public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataf .filter(curr -> curr.getDataFormat().equals(dataFormat.name())) .findFirst() .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); - delegates.add(plugin.indexingEngine()); + delegates.add(plugin.indexingEngine(mapperService, shardPath)); } } catch (NullPointerException e) { // my own testing @@ -51,12 +52,12 @@ public CompositeIndexingExecutionEngine(PluginsService pluginsService, Any dataf this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); } - public CompositeIndexingExecutionEngine(PluginsService pluginsService) { + public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) { try { DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() .findAny() .orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); - delegates.add(plugin.indexingEngine()); + delegates.add(plugin.indexingEngine(mapperService, shardPath)); } catch (NullPointerException e) { delegates.add(new TextEngine()); } @@ -91,11 +92,18 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { refreshInputs.computeIfAbsent(metadata.df(), df -> new RefreshInput()).add(metadata); } + if (refreshInputs.isEmpty()) { + return null; + } + // make indexing engines aware of everything -// for (IndexingExecutionEngine delegate : delegates) { -// RefreshResult result = delegate.refresh(refreshInputs.get(delegate.getDataFormat())); -// finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); -// } + for (IndexingExecutionEngine delegate : delegates) { + RefreshInput refreshInput = refreshInputs.get(delegate.getDataFormat()); + if (refreshInput != null) { + RefreshResult result = delegate.refresh(refreshInput); + finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); + } + } // provide a view to the upper layer return finalResult; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index d24a847d30d46..2a8e26caab7ab 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -13,29 +13,35 @@ import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; -import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.SearchExecEngine; -import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.Segment; import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.bridge.Indexer; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; -import org.opensearch.plugins.DataSourcePlugin; +import org.opensearch.index.shard.ShardPath; +import org.opensearch.index.translog.Translog; +import org.opensearch.index.translog.TranslogManager; import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.PluginsService; +import java.io.Closeable; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @ExperimentalApi -public class CompositeEngine { +public class CompositeEngine implements Indexer { private final CompositeIndexingExecutionEngine engine; private List refreshListeners = new ArrayList<>(); @@ -43,10 +49,10 @@ public class CompositeEngine { private List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); private Map>> readEngines = new HashMap<>(); - public CompositeEngine(MapperService mapperService, PluginsService pluginsService) throws IOException { + public CompositeEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used - this.engine = new CompositeIndexingExecutionEngine(pluginsService); + this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath); // Refresh here so that catalog snapshot gets initialized // TODO : any better way to do this ? @@ -57,7 +63,8 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); SearchExecEngine newSearchEngine = searchEnginePlugin.createEngine(dataFormat, - catalogSnapshot.getSearchableFiles(dataFormat.toString())); + Collections.emptyList(), + shardPath); currentSearchEngines.add(newSearchEngine); readEngines.put(dataFormat, currentSearchEngines); @@ -92,14 +99,14 @@ public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws I return engine.createWriter().newDocumentInput(); } - public Engine.IndexResult index(Engine.Index index) throws Exception { + public Engine.IndexResult index(Engine.Index index) throws IOException { WriteResult writeResult = index.documentInput.addToWriter(); // translog, checkpoint, other checks return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); } - public synchronized void refresh(String source) throws EngineException, IOException { + public synchronized void refresh(String source) throws EngineException { refreshListeners.forEach(ref -> { try { ref.beforeRefresh(); @@ -113,7 +120,18 @@ public synchronized void refresh(String source) throws EngineException, IOExcept if (catalogSnapshot != null) { id = catalogSnapshot.getId(); } - CatalogSnapshot newCatSnap = new CatalogSnapshot(engine.refresh(new RefreshInput()), id + 1L); + CatalogSnapshot newCatSnap = null; + try { + RefreshResult refreshResult = engine.refresh(new RefreshInput()); + if (refreshResult == null) { + return; + } + newCatSnap = new CatalogSnapshot(refreshResult, id + 1L); + System.out.println("CATALOG SNAPSHOT: " + newCatSnap); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + newCatSnap.incRef(); if (catalogSnapshot != null) { catalogSnapshot.decRef(); @@ -169,7 +187,7 @@ public T getRef() { } public static void main(String[] args) throws Exception { - CompositeEngine coordinator = new CompositeEngine(null, null); + CompositeEngine coordinator = new CompositeEngine(null, null, null); for (int i = 0; i < 5; i++) { @@ -196,4 +214,88 @@ public static void main(String[] args) throws Exception { } } + @Override + public Engine.DeleteResult delete(Engine.Delete delete) throws IOException { + return null; + } + + @Override + public Engine.NoOpResult noOp(Engine.NoOp noOp) throws IOException { + return null; + } + + @Override + public int countNumberOfHistoryOperations(String source, long fromSeqNo, long toSeqNumber) throws IOException { + return 0; + } + + @Override + public boolean hasCompleteOperationHistory(String reason, long startingSeqNo) { + return false; + } + + @Override + public long getIndexBufferRAMBytesUsed() { + return 0; + } + + @Override + public List segments(boolean verbose) { + return List.of(); + } + + @Override + public long getMaxSeenAutoIdTimestamp() { + return 0; + } + + @Override + public void updateMaxUnsafeAutoIdTimestamp(long newTimestamp) { + + } + + @Override + public int fillSeqNoGaps(long primaryTerm) throws IOException { + return 0; + } + + @Override + public void forceMerge(boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade, boolean upgradeOnlyAncientSegments, String forceMergeUUID) throws EngineException, IOException { + + } + + @Override + public void writeIndexingBuffer() throws EngineException { + + } + + @Override + public void flush(boolean force, boolean waitIfOngoing) throws EngineException { + + } + + @Override + public SafeCommitInfo getSafeCommitInfo() { + return null; + } + + @Override + public TranslogManager translogManager() { + return null; + } + + @Override + public Closeable acquireHistoryRetentionLock() { + return null; + } + + @Override + public Translog.Snapshot newChangesSnapshot(String source, long fromSeqNo, long toSeqNo, boolean requiredFullRange, boolean accurateCount) throws IOException { + return null; + } + + @Override + public String getHistoryUUID() { + return ""; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java similarity index 92% rename from server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java rename to server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java index 6b13f9d2459a9..ae4d2ba84e5b6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingExecutionCoordinator.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java @@ -18,19 +18,20 @@ import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.MapperService; import java.io.IOException; import java.util.ArrayList; import java.util.List; -public class IndexingExecutionCoordinator { +public class IndexingManager { //Internal Engine private final CompositeIndexingExecutionEngine engine; private List refreshListeners = new ArrayList<>(); private CatalogSnapshot catalogSnapshot; - public IndexingExecutionCoordinator(/*MapperService mapperService, EngineConfig engineConfig*/) { - this.engine = new CompositeIndexingExecutionEngine(null, new Any(List.of(DataFormat.TEXT))); + public IndexingManager(MapperService mapperService/*, EngineConfig engineConfig*/) { + this.engine = new CompositeIndexingExecutionEngine(mapperService, null, new Any(List.of(DataFormat.TEXT)), null); } public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { @@ -102,7 +103,7 @@ public T getRef() { } public static void main(String[] args) throws Exception { - IndexingExecutionCoordinator coordinator = new IndexingExecutionCoordinator(); + IndexingManager coordinator = new IndexingManager(null); for (int i = 0; i < 5; i++) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java new file mode 100644 index 0000000000000..b7084d270079d --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -0,0 +1,133 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.lucene; + +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.util.BytesRef; +import org.opensearch.index.engine.InternalEngine; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.ParseContext; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +public class LuceneIEEngine implements IndexingExecutionEngine { + + private final InternalEngine internalEngine; + + public LuceneIEEngine(InternalEngine internalEngine) { + this.internalEngine = internalEngine; + } + + @Override + public List supportedFieldTypes() { + return List.of(); + } + + @Override + public Writer> createWriter() throws IOException { + return new LuceneWriter(internalEngine.indexWriter); + } + + @Override + public RefreshResult refresh(RefreshInput refreshInput) throws IOException { + internalEngine.refresh(refreshInput.getClass().getName()); + return null; + } + + @Override + public DataFormat getDataFormat() { + return DataFormat.LUCENE; + } + + + public static class LuceneDocumentInput implements DocumentInput { + + private final ParseContext.Document doc; + private final IndexWriter writer; + + public LuceneDocumentInput(ParseContext.Document doc, IndexWriter w) { + this.doc = doc; + this.writer = w; + } + + @Override + public void addField(MappedFieldType fieldType, Object value) { + doc.add(new KeywordFieldMapper.KeywordField("f1", new BytesRef("good_field"), null)); + } + + @Override + public ParseContext.Document getFinalInput() { + return doc; + } + + @Override + public WriteResult addToWriter() throws IOException { + writer.addDocument(doc); + return null; + } + + @Override + public void close() throws Exception { + // no-op, reuse writer + } + } + + public static class LuceneWriter implements Writer { + + private IndexWriter writer; + + public LuceneWriter(IndexWriter writer) { + this.writer = writer; + } + + @Override + public WriteResult addDoc(LuceneDocumentInput d) throws IOException { + writer.addDocument(d.doc); + return null; + } + + @Override + public FileMetadata flush(FlushIn flushIn) throws IOException { + writer.flush(); + return null; + } + + @Override + public void sync() throws IOException { + writer.flush(); + } + + @Override + public void close() { + // no-op + } + + @Override + public Optional getMetadata() { + return Optional.empty(); + } + + @Override + public LuceneDocumentInput newDocumentInput() { + return new LuceneDocumentInput(new ParseContext.Document(), writer); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java index ea4cff42ca905..1bd83dc8cdf54 100644 --- a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java @@ -389,17 +389,19 @@ protected void parseCreateField(ParseContext context) throws IOException { if (value == null) { return; } - if (indexed) { - context.doc().add(new Field(fieldType().name(), value ? "T" : "F", Defaults.FIELD_TYPE)); - } - if (stored) { - context.doc().add(new StoredField(fieldType().name(), value ? "T" : "F")); - } - if (hasDocValues) { - context.doc().add(new SortedNumericDocValuesField(fieldType().name(), value ? 1 : 0)); - } else { - createFieldNamesField(context); - } + + context.compositeDocumentInput().addField(fieldType(), value); +// if (indexed) { +// context.doc().add(new Field(fieldType().name(), value ? "T" : "F", Defaults.FIELD_TYPE)); +// } +// if (stored) { +// context.doc().add(new StoredField(fieldType().name(), value ? "T" : "F")); +// } +// if (hasDocValues) { +// context.doc().add(new SortedNumericDocValuesField(fieldType().name(), value ? 1 : 0)); +// } else { +// createFieldNamesField(context); +// } } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java index 51400567025eb..f21ef93522b9d 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java @@ -845,21 +845,23 @@ protected void parseCreateField(ParseContext context) throws IOException { } } - if (indexed) { - context.doc().add(new LongPoint(fieldType().name(), timestamp)); - } - if (hasDocValues) { - if (skiplist || isSkiplistDefaultEnabled(context.indexSettings().getIndexSortConfig(), fieldType().name())) { - context.doc().add(SortedNumericDocValuesField.indexedField(fieldType().name(), timestamp)); - } else { - context.doc().add(new SortedNumericDocValuesField(fieldType().name(), timestamp)); - } - } else if (store || indexed) { - createFieldNamesField(context); - } - if (store) { - context.doc().add(new StoredField(fieldType().name(), timestamp)); - } + context.compositeDocumentInput().addField(fieldType(), timestamp); + +// if (indexed) { +// context.doc().add(new LongPoint(fieldType().name(), timestamp)); +// } +// if (hasDocValues) { +// if (skiplist || isSkiplistDefaultEnabled(context.indexSettings().getIndexSortConfig(), fieldType().name())) { +// context.doc().add(SortedNumericDocValuesField.indexedField(fieldType().name(), timestamp)); +// } else { +// context.doc().add(new SortedNumericDocValuesField(fieldType().name(), timestamp)); +// } +// } else if (store || indexed) { +// createFieldNamesField(context); +// } +// if (store) { +// context.doc().add(new StoredField(fieldType().name(), timestamp)); +// } } boolean isSkiplistDefaultEnabled(IndexSortConfig indexSortConfig, String fieldName) { diff --git a/server/src/main/java/org/opensearch/index/mapper/DocumentMapper.java b/server/src/main/java/org/opensearch/index/mapper/DocumentMapper.java index cb7e08f062d6d..cd520eb5eb1e2 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DocumentMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DocumentMapper.java @@ -51,6 +51,7 @@ import org.opensearch.index.IndexSettings; import org.opensearch.index.IndexSortConfig; import org.opensearch.index.analysis.IndexAnalyzers; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.MapperService.MergeReason; import org.opensearch.index.mapper.MetadataFieldMapper.TypeParser; import org.opensearch.index.query.NestedQueryBuilder; @@ -253,6 +254,10 @@ public ParsedDocument parse(SourceToParse source) throws MapperParsingException return documentParser.parseDocument(source, mapping.metadataMappers); } + public ParsedDocument parse(SourceToParse source, CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput) throws MapperParsingException { + return documentParser.parseDocument(source, mapping.metadataMappers, compositeDocumentInput); + } + public ParsedDocument createDeleteTombstoneDoc(String index, String id) throws MapperParsingException { final SourceToParse emptySource = new SourceToParse(index, id, new BytesArray("{}"), MediaTypeRegistry.JSON); return documentParser.parseDocument(emptySource, deleteTombstoneMetadataFieldMappers).toTombstone(); diff --git a/server/src/main/java/org/opensearch/index/mapper/DocumentParser.java b/server/src/main/java/org/opensearch/index/mapper/DocumentParser.java index 213fb48595b8b..b81b3dfde7951 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DocumentParser.java +++ b/server/src/main/java/org/opensearch/index/mapper/DocumentParser.java @@ -46,6 +46,7 @@ import org.opensearch.core.xcontent.MediaType; import org.opensearch.core.xcontent.XContentParser; import org.opensearch.index.IndexSettings; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.DynamicTemplate.XContentFieldType; import java.io.IOException; @@ -76,6 +77,10 @@ final class DocumentParser { } ParsedDocument parseDocument(SourceToParse source, MetadataFieldMapper[] metadataFieldsMappers) throws MapperParsingException { + return parseDocument(source, metadataFieldsMappers, null); + } + + ParsedDocument parseDocument(SourceToParse source, MetadataFieldMapper[] metadataFieldsMappers, CompositeDataFormatWriter.CompositeDocumentInput documentInput) throws MapperParsingException { final Mapping mapping = docMapper.mapping(); final ParseContext.InternalParseContext context; final MediaType mediaType = source.getMediaType(); @@ -88,7 +93,7 @@ ParsedDocument parseDocument(SourceToParse source, MetadataFieldMapper[] metadat mediaType ) ) { - context = new ParseContext.InternalParseContext(indexSettings, docMapperParser, docMapper, source, parser); + context = new ParseContext.InternalParseContext(indexSettings, docMapperParser, docMapper, source, parser, documentInput); validateStart(parser); internalParseDocument(mapping, metadataFieldsMappers, context, parser); validateEnd(parser); @@ -102,7 +107,7 @@ ParsedDocument parseDocument(SourceToParse source, MetadataFieldMapper[] metadat context.postParse(); - return parsedDocument(source, context, createDynamicUpdate(mapping, docMapper, context.getDynamicMappers())); + return parsedDocument(source, context, createDynamicUpdate(mapping, docMapper, context.getDynamicMappers()), documentInput); } private static boolean containsDisabledObjectMapper(ObjectMapper objectMapper, String[] subfields) { @@ -176,7 +181,7 @@ private static boolean isEmptyDoc(Mapping mapping, XContentParser parser) throws return false; } - private static ParsedDocument parsedDocument(SourceToParse source, ParseContext.InternalParseContext context, Mapping update) { + private static ParsedDocument parsedDocument(SourceToParse source, ParseContext.InternalParseContext context, Mapping update, CompositeDataFormatWriter.CompositeDocumentInput documentInput) { return new ParsedDocument( context.version(), context.seqID(), @@ -185,7 +190,8 @@ private static ParsedDocument parsedDocument(SourceToParse source, ParseContext. context.docs(), context.sourceToParse().source(), context.sourceToParse().getMediaType(), - update + update, + documentInput ); } diff --git a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java index 7ace516459763..1bf76a6420f4c 100644 --- a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java @@ -862,20 +862,22 @@ protected void parseCreateField(ParseContext context) throws IOException { value = normalizeValue(normalizer, name(), value); } - // convert to utf8 only once before feeding postings/dv/stored fields - final BytesRef binaryValue = new BytesRef(value); - if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { - Field field = new KeywordField(fieldType().name(), binaryValue, fieldType); - context.doc().add(field); - - if (fieldType().hasDocValues() == false && fieldType.omitNorms()) { - createFieldNamesField(context); - } - } + context.compositeDocumentInput().addField(fieldType(), value); - if (fieldType().hasDocValues()) { - context.doc().add(new SortedSetDocValuesField(fieldType().name(), binaryValue)); - } + // convert to utf8 only once before feeding postings/dv/stored fields +// final BytesRef binaryValue = new BytesRef(value); +// if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { +// Field field = new KeywordField(fieldType().name(), binaryValue, fieldType); +// context.doc().add(field); +// +// if (fieldType().hasDocValues() == false && fieldType.omitNorms()) { +// createFieldNamesField(context); +// } +// } +// +// if (fieldType().hasDocValues()) { +// context.doc().add(new SortedSetDocValuesField(fieldType().name(), binaryValue)); +// } } static String normalizeValue(NamedAnalyzer normalizer, String field, String value) throws IOException { diff --git a/server/src/main/java/org/opensearch/index/mapper/MappedFieldType.java b/server/src/main/java/org/opensearch/index/mapper/MappedFieldType.java index a3ea6b5764913..751b56cec6248 100644 --- a/server/src/main/java/org/opensearch/index/mapper/MappedFieldType.java +++ b/server/src/main/java/org/opensearch/index/mapper/MappedFieldType.java @@ -87,6 +87,7 @@ public abstract class MappedFieldType { private final boolean docValues; private final boolean isIndexed; private final boolean isStored; + private final boolean isColumnar; private final TextSearchInfo textSearchInfo; private final Map meta; private float boost; @@ -101,6 +102,8 @@ public MappedFieldType( TextSearchInfo textSearchInfo, Map meta ) { + // TODO: take the value from user input + this.isColumnar = true; this.boost = 1.0f; this.name = Objects.requireNonNull(name); this.isIndexed = isIndexed; @@ -185,6 +188,13 @@ public boolean isStored() { return isStored; } + /** + * Returns true if the field is columnar. + */ + public boolean isColumnar() { + return isColumnar; + } + /** * If the field supports using the indexed data to speed up operations related to ordering of data, such as sorting or aggs, return * a function for doing that. If it is unsupported for this field type, there is no need to override this method. diff --git a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java index a04f8888a2347..9895d264de390 100644 --- a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java @@ -2171,7 +2171,9 @@ protected void parseCreateField(ParseContext context) throws IOException { numericValue = fieldType().type.parse(value, coerce.value()); } - context.doc().addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, hasDocValues, skiplist, stored)); + context.compositeDocumentInput().addField(fieldType(), numericValue); + +// context.doc().addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, hasDocValues, skiplist, stored)); if (hasDocValues == false && (stored || indexed)) { createFieldNamesField(context); diff --git a/server/src/main/java/org/opensearch/index/mapper/ParseContext.java b/server/src/main/java/org/opensearch/index/mapper/ParseContext.java index 5d382ff28bcf9..5ef7e892a7ce5 100644 --- a/server/src/main/java/org/opensearch/index/mapper/ParseContext.java +++ b/server/src/main/java/org/opensearch/index/mapper/ParseContext.java @@ -39,6 +39,7 @@ import org.opensearch.common.annotation.PublicApi; import org.opensearch.core.xcontent.XContentParser; import org.opensearch.index.IndexSettings; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import java.util.ArrayList; import java.util.Collection; @@ -242,6 +243,11 @@ public Document doc() { return in.doc(); } + @Override + public CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput() { + return in.compositeDocumentInput(); + } + @Override protected void addDoc(Document doc) { in.addDoc(doc); @@ -393,12 +399,25 @@ public static class InternalParseContext extends ParseContext { private final Set ignoredFields = new HashSet<>(); + private CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput; + public InternalParseContext( IndexSettings indexSettings, DocumentMapperParser docMapperParser, DocumentMapper docMapper, SourceToParse source, XContentParser parser + ) { + this(indexSettings, docMapperParser, docMapper, source, parser, null); + } + + public InternalParseContext( + IndexSettings indexSettings, + DocumentMapperParser docMapperParser, + DocumentMapper docMapper, + SourceToParse source, + XContentParser parser, + CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput ) { this.indexSettings = indexSettings; this.docMapper = docMapper; @@ -417,6 +436,7 @@ public InternalParseContext( this.currentArrayDepth = 0L; this.maxAllowedFieldDepth = indexSettings.getMappingDepthLimit(); this.maxAllowedArrayDepth = indexSettings.getMappingDepthLimit(); + this.compositeDocumentInput = compositeDocumentInput; } @Override @@ -458,6 +478,11 @@ public Document doc() { return this.document; } + @Override + public CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput() { + return compositeDocumentInput; + } + @Override protected void addDoc(Document doc) { numNestedDocs++; @@ -718,6 +743,7 @@ public boolean isWithinMultiFields() { public abstract Document rootDoc(); public abstract Document doc(); + public abstract CompositeDataFormatWriter.CompositeDocumentInput compositeDocumentInput(); protected abstract void addDoc(Document doc); diff --git a/server/src/main/java/org/opensearch/index/mapper/ParsedDocument.java b/server/src/main/java/org/opensearch/index/mapper/ParsedDocument.java index 16e38980f8600..bcbf6a5fb38f3 100644 --- a/server/src/main/java/org/opensearch/index/mapper/ParsedDocument.java +++ b/server/src/main/java/org/opensearch/index/mapper/ParsedDocument.java @@ -37,6 +37,8 @@ import org.opensearch.common.xcontent.XContentType; import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.xcontent.MediaType; +import org.opensearch.index.engine.exec.DocumentInput; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.MapperService.MergeReason; import org.opensearch.index.mapper.ParseContext.Document; @@ -64,6 +66,12 @@ public class ParsedDocument { private Mapping dynamicMappingsUpdate; + private CompositeDataFormatWriter.CompositeDocumentInput documentInput; + + public CompositeDataFormatWriter.CompositeDocumentInput getDocumentInput() { + return documentInput; + } + public ParsedDocument( Field version, SeqNoFieldMapper.SequenceIDFields seqID, @@ -73,6 +81,22 @@ public ParsedDocument( BytesReference source, MediaType mediaType, Mapping dynamicMappingsUpdate + ) { + this( + version, seqID, id, routing, documents, source, mediaType, dynamicMappingsUpdate, null + ); + } + + public ParsedDocument( + Field version, + SeqNoFieldMapper.SequenceIDFields seqID, + String id, + String routing, + List documents, + BytesReference source, + MediaType mediaType, + Mapping dynamicMappingsUpdate, + CompositeDataFormatWriter.CompositeDocumentInput documentInput ) { this.version = version; this.seqID = seqID; @@ -82,6 +106,7 @@ public ParsedDocument( this.source = source; this.dynamicMappingsUpdate = dynamicMappingsUpdate; this.mediaType = mediaType; + this.documentInput = documentInput; } public String id() { diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index eb48f0beee360..e251df24bb7b4 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -81,6 +81,7 @@ import org.opensearch.common.CheckedConsumer; import org.opensearch.common.CheckedFunction; import org.opensearch.common.CheckedRunnable; +import org.opensearch.common.CheckedSupplier; import org.opensearch.common.Nullable; import org.opensearch.common.SetOnce; import org.opensearch.common.annotation.ExperimentalApi; @@ -141,9 +142,13 @@ import org.opensearch.index.engine.ReadOnlyEngine; import org.opensearch.index.engine.RefreshFailedEngineException; import org.opensearch.index.engine.SafeCommitInfo; -import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.engine.Segment; import org.opensearch.index.engine.SegmentsStats; +import org.opensearch.index.engine.exec.bridge.CheckpointState; +import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.engine.exec.bridge.IndexingThrottler; +import org.opensearch.index.engine.exec.bridge.StatsHolder; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.coord.CompositeEngine; import org.opensearch.index.fielddata.FieldDataStats; import org.opensearch.index.fielddata.ShardFieldData; @@ -453,7 +458,7 @@ public IndexShard( this.translogSyncProcessor = createTranslogSyncProcessor( logger, threadPool, - this::getEngine, + this::getIndexer, indexSettings.isAssignedOnRemoteNode(), () -> getRemoteTranslogUploadBufferInterval(remoteStoreSettings::getClusterRemoteTranslogBufferInterval) ); @@ -559,7 +564,7 @@ public boolean shouldCache(Query query) { startRefreshTask(); } } - this.compositeEngine = new CompositeEngine(mapperService, pluginsService); + this.compositeEngine = new CompositeEngine(mapperService, pluginsService, path); } public CompositeEngine getIndexingExecutionCoordinator() { @@ -846,21 +851,21 @@ public void updateShardState( assert getOperationPrimaryTerm() == newPrimaryTerm; try { if (indexSettings.isSegRepEnabledOrRemoteNode()) { - // this Shard's engine was read only, we need to update its engine before restoring local history from xlog. + // this Shard's indexer was read only, we need to update its indexer before restoring local history from xlog. assert newRouting.primary() && currentRouting.primary() == false; ReplicationTimer timer = new ReplicationTimer(); timer.start(); logger.debug( - "Resetting engine on promotion of shard [{}] to primary, startTime {}\n", + "Resetting indexer on promotion of shard [{}] to primary, startTime {}\n", shardId, timer.startTime() ); resetEngineToGlobalCheckpoint(); timer.stop(); - logger.info("Completed engine failover for shard [{}] in: {} ms", shardId, timer.time()); - // It is possible an engine can open with a SegmentInfos on a higher gen but the reader does not refresh to + logger.info("Completed indexer failover for shard [{}] in: {} ms", shardId, timer.time()); + // It is possible an indexer can open with a SegmentInfos on a higher gen but the reader does not refresh to // trigger our refresh listener. - // Force update the checkpoint post engine reset. + // Force update the checkpoint post indexer reset. updateReplicationCheckpoint(); } @@ -879,19 +884,20 @@ public void updateShardState( * primary/replica re-sync completes successfully and we are now being promoted, we have to restore * the reverted operations on this shard by replaying the translog to avoid losing acknowledged writes. */ - final Engine engine = getEngine(); - engine.translogManager() + final Indexer indexer = getIndexer(); + final CheckpointState checkpointState = getCheckpointState(); + indexer.translogManager() .restoreLocalHistoryFromTranslog( - engine.getProcessedLocalCheckpoint(), - (snapshot) -> runTranslogRecovery(engine, snapshot, Engine.Operation.Origin.LOCAL_RESET, () -> {}) + checkpointState.getProcessedLocalCheckpoint(), + (snapshot) -> runTranslogRecovery(indexer, snapshot, Engine.Operation.Origin.LOCAL_RESET, () -> {}) ); /* Rolling the translog generation is not strictly needed here (as we will never have collisions between * sequence numbers in a translog generation in a new primary as it takes the last known sequence number * as a starting point), but it simplifies reasoning about the relationship between primary terms and * translog generations. */ - engine.translogManager().rollTranslogGeneration(); - engine.fillSeqNoGaps(newPrimaryTerm); + indexer.translogManager().rollTranslogGeneration(); + indexer.fillSeqNoGaps(newPrimaryTerm); replicationTracker.updateLocalCheckpoint(currentRouting.allocationId().getId(), getLocalCheckpoint()); primaryReplicaSyncer.accept(this, new ActionListener() { @Override @@ -1015,7 +1021,7 @@ public void relocated( } // Ensure all in-flight remote store translog upload drains, before we perform the performSegRep. - releasablesOnHandoffFailures.add(getEngine().translogManager().drainSync()); + releasablesOnHandoffFailures.add(getIndexer().translogManager().drainSync()); // no shard operation permits are being held here, move state from started to relocated assert indexShardOperationPermits.getActiveOperationsCount() == OPERATIONS_BLOCKED @@ -1126,7 +1132,7 @@ public Engine.IndexResult applyIndexOperationOnPrimary( ) throws IOException { assert versionType.validateVersionForWrites(version); return applyIndexOperation( - getEngine(), + getIndexingExecutionCoordinator(), UNASSIGNED_SEQ_NO, getOperationPrimaryTerm(), version, @@ -1137,7 +1143,8 @@ public Engine.IndexResult applyIndexOperationOnPrimary( isRetry, Engine.Operation.Origin.PRIMARY, sourceToParse, - null + null, + compositeEngine::documentInput ); } @@ -1151,7 +1158,7 @@ public Engine.IndexResult applyIndexOperationOnReplica( SourceToParse sourceToParse ) throws IOException { return applyIndexOperation( - getEngine(), + getIndexer(), seqNo, opPrimaryTerm, version, @@ -1162,12 +1169,13 @@ public Engine.IndexResult applyIndexOperationOnReplica( isRetry, Engine.Operation.Origin.REPLICA, sourceToParse, - id + id, + null ); } private Engine.IndexResult applyIndexOperation( - Engine engine, + Indexer engine, long seqNo, long opPrimaryTerm, long version, @@ -1178,7 +1186,8 @@ private Engine.IndexResult applyIndexOperation( boolean isRetry, Engine.Operation.Origin origin, SourceToParse sourceToParse, - String id + String id, + CheckedSupplier documentInputSupplier ) throws IOException { // For Segment Replication enabled replica shards we can be skip parsing the documents as we directly copy segments from primary @@ -1198,7 +1207,7 @@ private Engine.IndexResult applyIndexOperation( UNASSIGNED_SEQ_NO, 0 ); - return getEngine().index(index); + return getIndexer().index(index); } assert opPrimaryTerm <= getOperationPrimaryTerm() : "op term [ " + opPrimaryTerm @@ -1219,7 +1228,8 @@ private Engine.IndexResult applyIndexOperation( autoGeneratedTimeStamp, isRetry, ifSeqNo, - ifPrimaryTerm + ifPrimaryTerm, + documentInputSupplier ); Mapping update = operation.parsedDoc().dynamicMappingsUpdate(); if (update != null) { @@ -1248,10 +1258,16 @@ public static Engine.Index prepareIndex( long autoGeneratedIdTimestamp, boolean isRetry, long ifSeqNo, - long ifPrimaryTerm + long ifPrimaryTerm, + CheckedSupplier documentInputSupplier ) { long startTime = System.nanoTime(); - ParsedDocument doc = docMapper.getDocumentMapper().parse(source); + ParsedDocument doc = null; + try { + doc = docMapper.getDocumentMapper().parse(source, documentInputSupplier.get()); + } catch (IOException ex) { + throw new RuntimeException(ex); + } if (docMapper.getMapping() != null) { doc.addDynamicMappingsUpdate(docMapper.getMapping()); } @@ -1272,7 +1288,7 @@ public static Engine.Index prepareIndex( ); } - private Engine.IndexResult index(Engine engine, Engine.Index index) throws IOException { + private Engine.IndexResult index(Indexer engine, Engine.Index index) throws IOException { active.set(true); final Engine.IndexResult result; index = indexingOperationListeners.preIndex(shardId, index); @@ -1328,10 +1344,10 @@ private Engine.IndexResult index(Engine engine, Engine.Index index) throws IOExc } public Engine.NoOpResult markSeqNoAsNoop(long seqNo, long opPrimaryTerm, String reason) throws IOException { - return markSeqNoAsNoop(getEngine(), seqNo, opPrimaryTerm, reason, Engine.Operation.Origin.REPLICA); + return markSeqNoAsNoop(getIndexer(), seqNo, opPrimaryTerm, reason, Engine.Operation.Origin.REPLICA); } - private Engine.NoOpResult markSeqNoAsNoop(Engine engine, long seqNo, long opPrimaryTerm, String reason, Engine.Operation.Origin origin) + private Engine.NoOpResult markSeqNoAsNoop(Indexer engine, long seqNo, long opPrimaryTerm, String reason, Engine.Operation.Origin origin) throws IOException { assert opPrimaryTerm <= getOperationPrimaryTerm() : "op term [ " + opPrimaryTerm @@ -1344,7 +1360,7 @@ private Engine.NoOpResult markSeqNoAsNoop(Engine engine, long seqNo, long opPrim return noOp(engine, noOp); } - private Engine.NoOpResult noOp(Engine engine, Engine.NoOp noOp) throws IOException { + private Engine.NoOpResult noOp(Indexer engine, Engine.NoOp noOp) throws IOException { active.set(true); if (logger.isTraceEnabled()) { logger.trace("noop (seq# [{}])", noOp.seqNo()); @@ -1369,7 +1385,7 @@ public Engine.DeleteResult applyDeleteOperationOnPrimary( ) throws IOException { assert versionType.validateVersionForWrites(version); return applyDeleteOperation( - getEngine(), + getIndexer(), UNASSIGNED_SEQ_NO, getOperationPrimaryTerm(), version, @@ -1395,10 +1411,10 @@ public Engine.DeleteResult applyDeleteOperationOnReplica(long seqNo, long opPrim UNASSIGNED_SEQ_NO, 0 ); - return getEngine().delete(delete); + return getIndexer().delete(delete); } return applyDeleteOperation( - getEngine(), + getIndexer(), seqNo, opPrimaryTerm, version, @@ -1411,7 +1427,7 @@ public Engine.DeleteResult applyDeleteOperationOnReplica(long seqNo, long opPrim } private Engine.DeleteResult applyDeleteOperation( - Engine engine, + Indexer engine, long seqNo, long opPrimaryTerm, long version, @@ -1446,7 +1462,7 @@ public static Engine.Delete prepareDelete( return new Engine.Delete(id, uid, seqNo, primaryTerm, version, versionType, origin, startTime, ifSeqNo, ifPrimaryTerm); } - private Engine.DeleteResult delete(Engine engine, Engine.Delete delete) throws IOException { + private Engine.DeleteResult delete(Indexer engine, Engine.Delete delete) throws IOException { active.set(true); final Engine.DeleteResult result; delete = indexingOperationListeners.preDelete(shardId, delete); @@ -1469,7 +1485,7 @@ public Engine.GetResult get(Engine.Get get) { if (mapper == null) { return GetResult.NOT_EXISTS; } - return getEngine().get(get, this::acquireSearcher); + return getEngine().get(get, this::acquireSearcher); // TODO: READER INTERFACE } /** @@ -1480,7 +1496,8 @@ public void refresh(String source) { if (logger.isTraceEnabled()) { logger.trace("refresh with source [{}]", source); } - getEngine().refresh(source); + getIndexingExecutionCoordinator().refresh(source); +// getIndexer().refresh(source); } /** @@ -1511,7 +1528,7 @@ public FlushStats flushStats() { public DocsStats docStats() { readAllowed(); - return getEngine().docStats(); + return getStatsHolder().docStats(); } /** @@ -1519,7 +1536,7 @@ public DocsStats docStats() { * @throws AlreadyClosedException if shard is closed */ public CommitStats commitStats() { - return getEngine().commitStats(); + return getStatsHolder().commitStats(); } /** @@ -1527,11 +1544,11 @@ public CommitStats commitStats() { * @throws AlreadyClosedException if shard is closed */ public SeqNoStats seqNoStats() { - return getEngine().getSeqNoStats(replicationTracker.getGlobalCheckpoint()); + return getCheckpointState().getSeqNoStats(replicationTracker.getGlobalCheckpoint()); } public IndexingStats indexingStats() { - Engine engine = getEngineOrNull(); + IndexingThrottler engine = getIndexingThrottler(); final boolean throttled; final long throttleTimeInMillis; if (engine == null) { @@ -1564,17 +1581,17 @@ public StoreStats storeStats() { } public MergeStats mergeStats() { - final Engine engine = getEngineOrNull(); + final StatsHolder engine = getStatsHolderOrNull(); if (engine == null) { return new MergeStats(); } final MergeStats mergeStats = engine.getMergeStats(); - mergeStats.addUnreferencedFileCleanUpStats(engine.unreferencedFileCleanUpsPerformed()); +// mergeStats.addUnreferencedFileCleanUpStats(engine.unreferencedFileCleanUpsPerformed()); return mergeStats; } public SegmentsStats segmentStats(boolean includeSegmentFileSizes, boolean includeUnloadedSegments) { - SegmentsStats segmentsStats = getEngine().segmentsStats(includeSegmentFileSizes, includeUnloadedSegments); + SegmentsStats segmentsStats = getStatsHolder().segmentsStats(includeSegmentFileSizes, includeUnloadedSegments); segmentsStats.addBitsetMemoryInBytes(shardBitsetFilterCache.getMemorySizeInBytes()); // Populate remote_store stats only if the index is remote store backed if (indexSettings().isAssignedOnRemoteNode()) { @@ -1597,7 +1614,7 @@ public FieldDataStats fieldDataStats(String... fields) { } public TranslogStats translogStats() { - TranslogStats translogStats = getEngine().translogManager().getTranslogStats(); + TranslogStats translogStats = getIndexer().translogManager().getTranslogStats(); // Populate remote_store stats only if the index is remote store backed if (indexSettings.isAssignedOnRemoteNode()) { translogStats.addRemoteTranslogStats( @@ -1610,11 +1627,11 @@ public TranslogStats translogStats() { public CompletionStats completionStats(String... fields) { readAllowed(); - return getEngine().completionStats(fields); + return getStatsHolder().completionStats(fields); } public PollingIngestStats pollingIngestStats() { - return getEngine().pollingIngestStats(); + return getStatsHolder().pollingIngestStats(); } /** @@ -1633,7 +1650,7 @@ public void flush(FlushRequest request) { */ verifyNotClosed(); final long time = System.nanoTime(); - getEngine().flush(force, waitIfOngoing); + getIndexer().flush(force, waitIfOngoing); flushMetric.inc(System.nanoTime() - time); } @@ -1646,15 +1663,14 @@ public void trimTranslog() { return; } verifyNotClosed(); - final Engine engine = getEngine(); - engine.translogManager().trimUnreferencedTranslogFiles(); + getIndexer().translogManager().trimUnreferencedTranslogFiles(); } /** * Rolls the tranlog generation and cleans unneeded. */ public void rollTranslogGeneration() throws IOException { - final Engine engine = getEngine(); + final Indexer engine = getIndexer(); engine.translogManager().rollTranslogGeneration(); } @@ -1663,7 +1679,7 @@ public void forceMerge(ForceMergeRequest forceMerge) throws IOException { if (logger.isTraceEnabled()) { logger.trace("force merge with {}", forceMerge); } - Engine engine = getEngine(); + Indexer engine = getIndexer(); engine.forceMerge( forceMerge.flush(), forceMerge.maxNumSegments(), @@ -1684,7 +1700,7 @@ public org.apache.lucene.util.Version upgrade(UpgradeRequest upgrade) throws IOE } org.apache.lucene.util.Version previousVersion = minimumCompatibleVersion(); // we just want to upgrade the segments, not actually forge merge to a single segment - final Engine engine = getEngine(); + final Indexer engine = getIndexer(); engine.forceMerge( true, // we need to flush at the end to make sure the upgrade is durable Integer.MAX_VALUE, // we just want to upgrade the segments, not actually optimize to a single segment @@ -1703,7 +1719,7 @@ public org.apache.lucene.util.Version upgrade(UpgradeRequest upgrade) throws IOE public org.apache.lucene.util.Version minimumCompatibleVersion() { org.apache.lucene.util.Version luceneVersion = null; - for (Segment segment : getEngine().segments(false)) { + for (Segment segment : getIndexer().segments(false)) { if (luceneVersion == null || luceneVersion.onOrAfter(segment.getVersion())) { luceneVersion = segment.getVersion(); } @@ -1733,19 +1749,21 @@ public RemoteSegmentMetadata fetchLastRemoteUploadedSegmentMetadata() throws IOE * * @param flushFirst true if the index should first be flushed to disk / a low level lucene commit should be executed */ + // TODO: This full method changes public GatedCloseable acquireLastIndexCommit(boolean flushFirst) throws EngineException { final IndexShardState state = this.state; // one time volatile read // we allow snapshot on closed index shard, since we want to do one after we close the shard and before we close the engine if (state == IndexShardState.STARTED || state == IndexShardState.CLOSED) { - return getEngine().acquireLastIndexCommit(flushFirst); + return getEngine().acquireLastIndexCommit(flushFirst); // TODO: READER, SNAPSHOTTER? } else { throw new IllegalIndexShardStateException(shardId, state, "snapshot is not allowed"); } } + // TODO: This full method changes public GatedCloseable acquireLastIndexCommitAndRefresh(boolean flushFirst) throws EngineException { GatedCloseable indexCommit = acquireLastIndexCommit(flushFirst); - getEngine().refresh("Snapshot for Remote Store based Shard"); + getIndexer().refresh("Snapshot for Remote Store based Shard"); return indexCommit; } @@ -1874,6 +1892,7 @@ public Set getPendingMergedSegmentCheckpoints() { /** * Snapshots the most recent safe index commit from the currently running engine. * All index files referenced by this index commit won't be freed until the commit/snapshot is closed. + * TODO: This method changes */ public GatedCloseable acquireSafeIndexCommit() throws EngineException { final IndexShardState state = this.state; // one time volatile read @@ -1936,6 +1955,7 @@ public Tuple, ReplicationCheckpoint> getLatestSegme * @param segmentInfos {@link SegmentInfos} infos to use to compute. * @return {@link ReplicationCheckpoint} Checkpoint computed from the infos. * @throws IOException When there is an error computing segment metadata from the store. + * TODO: SegRep changes for decoupling. looks to depend on codec. */ ReplicationCheckpoint computeReplicationCheckpoint(SegmentInfos segmentInfos) throws IOException { if (segmentInfos == null) { @@ -2445,7 +2465,7 @@ public void postRecovery(String reason) throws IndexShardStartedException, Index // we may not expose operations that were indexed with a refresh listener that was immediately // responded to in addRefreshListener. The refresh must happen under the same mutex used in addRefreshListener // and before moving this shard to POST_RECOVERY state (i.e., allow to read from this shard). - getEngine().refresh("post_recovery"); + getIndexer().refresh("post_recovery"); synchronized (mutex) { if (state == IndexShardState.CLOSED) { throw new IndexShardClosedException(shardId); @@ -2522,7 +2542,7 @@ private long recoverLocallyUpToGlobalCheckpoint() { final TranslogRecoveryRunner translogRecoveryRunner = (snapshot) -> { recoveryState.getTranslog().totalLocal(snapshot.totalOperations()); final int recoveredOps = runTranslogRecovery( - getEngine(), + getIndexer(), snapshot, Engine.Operation.Origin.LOCAL_TRANSLOG_RECOVERY, recoveryState.getTranslog()::incrementRecoveredOperations @@ -2531,9 +2551,9 @@ private long recoverLocallyUpToGlobalCheckpoint() { return recoveredOps; }; innerOpenEngineAndTranslog(() -> globalCheckpoint); - getEngine().translogManager() - .recoverFromTranslog(translogRecoveryRunner, getEngine().getProcessedLocalCheckpoint(), globalCheckpoint); - logger.trace("shard locally recovered up to {}", getEngine().getSeqNoStats(globalCheckpoint)); + getIndexer().translogManager() + .recoverFromTranslog(translogRecoveryRunner, getCheckpointState().getProcessedLocalCheckpoint(), globalCheckpoint); + logger.trace("shard locally recovered up to {}", getCheckpointState().getSeqNoStats(globalCheckpoint)); } finally { synchronized (engineMutex) { IOUtils.close(currentEngineReference.getAndSet(null)); @@ -2609,7 +2629,7 @@ private void validateLocalRecoveryState() { } public void trimOperationOfPreviousPrimaryTerms(long aboveSeqNo) { - getEngine().translogManager().trimOperationsFromTranslog(getOperationPrimaryTerm(), aboveSeqNo); + getIndexer().translogManager().trimOperationsFromTranslog(getOperationPrimaryTerm(), aboveSeqNo); } /** @@ -2619,7 +2639,7 @@ public void trimOperationOfPreviousPrimaryTerms(long aboveSeqNo) { * @see #updateMaxUnsafeAutoIdTimestamp(long) */ public long getMaxSeenAutoIdTimestamp() { - return getEngine().getMaxSeenAutoIdTimestamp(); + return getIndexer().getMaxSeenAutoIdTimestamp(); } /** @@ -2632,14 +2652,14 @@ public long getMaxSeenAutoIdTimestamp() { * a retry append-only (without timestamp) via recovery, then an original append-only (with timestamp) via replication. */ public void updateMaxUnsafeAutoIdTimestamp(long maxSeenAutoIdTimestampFromPrimary) { - getEngine().updateMaxUnsafeAutoIdTimestamp(maxSeenAutoIdTimestampFromPrimary); + getIndexer().updateMaxUnsafeAutoIdTimestamp(maxSeenAutoIdTimestampFromPrimary); } public Engine.Result applyTranslogOperation(Translog.Operation operation, Engine.Operation.Origin origin) throws IOException { - return applyTranslogOperation(getEngine(), operation, origin); + return applyTranslogOperation(getIndexer(), operation, origin); } - private Engine.Result applyTranslogOperation(Engine engine, Translog.Operation operation, Engine.Operation.Origin origin) + private Engine.Result applyTranslogOperation(Indexer engine, Translog.Operation operation, Engine.Operation.Origin origin) throws IOException { // If a translog op is replayed on the primary (eg. ccr), we need to use external instead of null for its version type. final VersionType versionType = (origin == Engine.Operation.Origin.PRIMARY) ? VersionType.EXTERNAL : null; @@ -2667,7 +2687,8 @@ private Engine.Result applyTranslogOperation(Engine engine, Translog.Operation o MediaTypeRegistry.xContentType(index.source()), index.routing() ), - index.id() + index.id(), + null ); break; case DELETE: @@ -2698,7 +2719,7 @@ private Engine.Result applyTranslogOperation(Engine engine, Translog.Operation o * Replays translog operations from the provided translog {@code snapshot} to the current engine using the given {@code origin}. * The callback {@code onOperationRecovered} is notified after each translog operation is replayed successfully. */ - int runTranslogRecovery(Engine engine, Translog.Snapshot snapshot, Engine.Operation.Origin origin, Runnable onOperationRecovered) + int runTranslogRecovery(Indexer engine, Translog.Snapshot snapshot, Engine.Operation.Origin origin, Runnable onOperationRecovered) throws IOException { int opsRecovered = 0; Translog.Operation operation; @@ -2758,7 +2779,7 @@ public void openEngineAndRecoverFromTranslog(boolean syncFromRemote) throws IOEx translogRecoveryStats.totalOperations(snapshot.totalOperations()); translogRecoveryStats.totalOperationsOnStart(snapshot.totalOperations()); return runTranslogRecovery( - getEngine(), + getIndexer(), snapshot, Engine.Operation.Origin.LOCAL_TRANSLOG_RECOVERY, translogRecoveryStats::incrementRecoveredOperations @@ -2782,8 +2803,8 @@ public void openEngineAndRecoverFromTranslog(boolean syncFromRemote) throws IOEx translogConfig.setDownloadRemoteTranslogOnInit(true); } - getEngine().translogManager() - .recoverFromTranslog(translogRecoveryRunner, getEngine().getProcessedLocalCheckpoint(), Long.MAX_VALUE); + getIndexer().translogManager() + .recoverFromTranslog(translogRecoveryRunner, getCheckpointState().getProcessedLocalCheckpoint(), Long.MAX_VALUE); } /** @@ -2810,7 +2831,7 @@ void openEngineAndSkipTranslogRecovery(boolean syncFromRemote) throws IOExceptio innerOpenEngineAndTranslog(replicationTracker, syncFromRemote); assert routingEntry().isSearchOnly() == false || translogStats().estimatedNumberOfOperations() == 0 : "Translog is expected to be empty but holds " + translogStats().estimatedNumberOfOperations() + "Operations."; - getEngine().translogManager().skipTranslogRecovery(); + getIndexer().translogManager().skipTranslogRecovery(); } private void innerOpenEngineAndTranslog(LongSupplier globalCheckpointSupplier) throws IOException { @@ -2972,9 +2993,9 @@ public RecoveryState recoveryState() { */ public void finalizeRecovery() { recoveryState().setStage(RecoveryState.Stage.FINALIZE); - Engine engine = getEngine(); + Indexer engine = getIndexer(); engine.refresh("recovery_finalization"); - engine.config().setEnableGcDeletes(true); + //engine.config().setEnableGcDeletes(true); } /** @@ -3295,7 +3316,7 @@ protected void doRun() { * Acquires a lock on the translog files and Lucene soft-deleted documents to prevent them from being trimmed */ public Closeable acquireHistoryRetentionLock() { - return getEngine().acquireHistoryRetentionLock(); + return getIndexer().acquireHistoryRetentionLock(); } /** @@ -3305,7 +3326,7 @@ public Closeable acquireHistoryRetentionLock() { */ public Translog.Snapshot getHistoryOperations(String reason, long startingSeqNo, long endSeqNo, boolean accurateCount) throws IOException { - return getEngine().newChangesSnapshot(reason, startingSeqNo, endSeqNo, true, accurateCount); + return getIndexer().newChangesSnapshot(reason, startingSeqNo, endSeqNo, true, accurateCount); } /** @@ -3316,7 +3337,7 @@ public Translog.Snapshot getHistoryOperations(String reason, long startingSeqNo, public Translog.Snapshot getHistoryOperationsFromTranslog(long startingSeqNo, long endSeqNo) throws IOException { assert indexSettings.isSegRepEnabledOrRemoteNode() == false : "unsupported operation for segment replication enabled indices or remote store backed indices"; - return getEngine().translogManager().newChangesSnapshot(startingSeqNo, endSeqNo, true); + return getIndexer().translogManager().newChangesSnapshot(startingSeqNo, endSeqNo, true); } /** @@ -3324,7 +3345,7 @@ public Translog.Snapshot getHistoryOperationsFromTranslog(long startingSeqNo, lo * This method should be called after acquiring the retention lock; See {@link #acquireHistoryRetentionLock()} */ public boolean hasCompleteHistoryOperations(String reason, long startingSeqNo) { - return getEngine().hasCompleteOperationHistory(reason, startingSeqNo); + return getIndexer().hasCompleteOperationHistory(reason, startingSeqNo); } /** @@ -3333,7 +3354,7 @@ public boolean hasCompleteHistoryOperations(String reason, long startingSeqNo) { * @return the minimum retained sequence number */ public long getMinRetainedSeqNo() { - return getEngine().getMinRetainedSeqNo(); + return getCheckpointState().getMinRetainedSeqNo(); } /** @@ -3344,7 +3365,7 @@ public long getMinRetainedSeqNo() { * @return number of history operations in the sequence number range */ public int countNumberOfHistoryOperations(String source, long fromSeqNo, long toSeqNo) throws IOException { - return getEngine().countNumberOfHistoryOperations(source, fromSeqNo, toSeqNo); + return getIndexer().countNumberOfHistoryOperations(source, fromSeqNo, toSeqNo); } /** @@ -3365,15 +3386,15 @@ public Translog.Snapshot newChangesSnapshot( boolean requiredFullRange, boolean accurateCount ) throws IOException { - return getEngine().newChangesSnapshot(source, fromSeqNo, toSeqNo, requiredFullRange, accurateCount); + return getIndexer().newChangesSnapshot(source, fromSeqNo, toSeqNo, requiredFullRange, accurateCount); } public List segments(boolean verbose) { - return getEngine().segments(verbose); + return getIndexer().segments(verbose); } public String getHistoryUUID() { - return getEngine().getHistoryUUID(); + return getIndexer().getHistoryUUID(); } public IndexEventListener getIndexEventListener() { @@ -3382,7 +3403,7 @@ public IndexEventListener getIndexEventListener() { public void activateThrottling() { try { - getEngine().activateThrottling(); + getIndexingThrottler().activateThrottling(); } catch (AlreadyClosedException ex) { // ignore } @@ -3390,7 +3411,7 @@ public void activateThrottling() { public void deactivateThrottling() { try { - getEngine().deactivateThrottling(); + getIndexingThrottler().deactivateThrottling(); } catch (AlreadyClosedException ex) { // ignore } @@ -3424,8 +3445,7 @@ private void handleRefreshException(Exception e) { */ public void writeIndexingBuffer() { try { - Engine engine = getEngine(); - engine.writeIndexingBuffer(); + getIndexer().writeIndexingBuffer(); } catch (Exception e) { handleRefreshException(e); } @@ -3708,7 +3728,7 @@ public void markAllocationIdAsInSync(final String allocationId, final long local * @return the local checkpoint */ public long getLocalCheckpoint() { - return getEngine().getPersistedLocalCheckpoint(); + return getCheckpointState().getPersistedLocalCheckpoint(); } /** @@ -3716,7 +3736,7 @@ public long getLocalCheckpoint() { * Also see {@link #getLocalCheckpoint()}. */ public long getProcessedLocalCheckpoint() { - return getEngine().getProcessedLocalCheckpoint(); + return getCheckpointState().getProcessedLocalCheckpoint(); } /** @@ -3732,7 +3752,7 @@ public long getLastKnownGlobalCheckpoint() { * Returns the latest global checkpoint value that has been persisted in the underlying storage (i.e. translog's checkpoint) */ public long getLastSyncedGlobalCheckpoint() { - return getEngine().getLastSyncedGlobalCheckpoint(); + return getCheckpointState().getLastSyncedGlobalCheckpoint(); } /** @@ -3758,7 +3778,7 @@ public void maybeSyncGlobalCheckpoint(final String reason) { } assert assertPrimaryMode(); // only sync if there are no operations in flight, or when using async durability - final SeqNoStats stats = getEngine().getSeqNoStats(replicationTracker.getGlobalCheckpoint()); + final SeqNoStats stats = getCheckpointState().getSeqNoStats(replicationTracker.getGlobalCheckpoint()); final boolean asyncDurability = indexSettings().getTranslogDurability() == Durability.ASYNC; if (stats.getMaxSeqNo() == stats.getGlobalCheckpoint() || asyncDurability) { final Map globalCheckpoints = getInSyncGlobalCheckpoints(); @@ -3878,7 +3898,7 @@ private void postActivatePrimaryMode() { // This helps to get a consistent state in remote store where both remote segment store and remote // translog contains data. try { - getEngine().translogManager().syncTranslog(); + getIndexer().translogManager().syncTranslog(); } catch (IOException e) { logger.error("Failed to sync translog to remote from new primary", e); } @@ -3987,7 +4007,24 @@ private void doCheckIndex() throws IOException { recoveryState.getVerifyIndex().checkIndexTime(Math.max(0, TimeValue.nsecToMSec(System.nanoTime() - timeNS))); } - Engine getEngine() { + + public Indexer getIndexer() { + return getEngine(); + } + + public CheckpointState getCheckpointState() { + return getEngine(); + } + + public StatsHolder getStatsHolder() { + return getEngine(); + } + + public IndexingThrottler getIndexingThrottler() { + return getEngine(); + } + + public Engine getEngine() { Engine engine = getEngineOrNull(); if (engine == null) { throw new AlreadyClosedException("engine is closed"); @@ -3995,6 +4032,23 @@ Engine getEngine() { return engine; } + + protected Indexer getIndexerOrNull() { + return getEngineOrNull(); + } + + public CheckpointState getCheckpointStateOrNull() { + return getEngineOrNull(); + } + + public StatsHolder getStatsHolderOrNull() { + return getEngineOrNull(); + } + + public IndexingThrottler getIndexingThrottlerOrNull() { + return getEngineOrNull(); + } + /** * NOTE: returns null if engine is not yet started (e.g. recovery phase 1, copying over index files, is still running), or if engine is * closed. @@ -4185,7 +4239,7 @@ public boolean useRetentionLeasesInPeerRecovery() { private SafeCommitInfo getSafeCommitInfo() { final Engine engine = getEngineOrNull(); - return engine == null ? SafeCommitInfo.EMPTY : engine.getSafeCommitInfo(); + return engine == null ? SafeCommitInfo.EMPTY : getIndexer().getSafeCommitInfo(); } class ShardEventListener implements Engine.EventListener { @@ -4722,7 +4776,7 @@ public List getActiveOperations() { private static AsyncIOProcessor createTranslogSyncProcessor( Logger logger, ThreadPool threadPool, - Supplier engineSupplier, + Supplier engineSupplier, boolean bufferAsyncIoProcessor, Supplier bufferIntervalSupplier ) { @@ -4921,7 +4975,7 @@ ReplicationTracker getReplicationTracker() { public boolean scheduledRefresh() { verifyNotClosed(); boolean listenerNeedsRefresh = refreshListeners.refreshNeeded(); - if (isReadAllowed() && (listenerNeedsRefresh || getEngine().refreshNeeded())) { + if (isReadAllowed() && (listenerNeedsRefresh || true)) { if (listenerNeedsRefresh == false // if we have a listener that is waiting for a refresh we need to force it && isSearchIdleSupported() && isSearchIdle() @@ -4930,15 +4984,19 @@ && isSearchIdle() // lets skip this refresh since we are search idle and // don't necessarily need to refresh. the next searcher access will register a refreshListener and that will // cause the next schedule to refresh. - final Engine engine = getEngine(); - engine.maybePruneDeletes(); // try to prune the deletes in the engine if we accumulated some - setRefreshPending(engine); - return false; +// final Engine engine = getEngine(); +// engine.maybePruneDeletes(); // try to prune the deletes in the engine if we accumulated some +// setRefreshPending(engine); +// return false; + getIndexingExecutionCoordinator().refresh("schedule"); + return true; } else { if (logger.isTraceEnabled()) { logger.trace("refresh with source [schedule]"); } - return getEngine().maybeRefresh("schedule"); + getIndexingExecutionCoordinator().refresh("schedule"); + return true; +// return getEngine().maybeRefresh("schedule"); } } final Engine engine = getEngine(); diff --git a/server/src/main/java/org/opensearch/indices/IndicesService.java b/server/src/main/java/org/opensearch/indices/IndicesService.java index 5c70c3b308bd7..e9f377d666c6f 100644 --- a/server/src/main/java/org/opensearch/indices/IndicesService.java +++ b/server/src/main/java/org/opensearch/indices/IndicesService.java @@ -1113,7 +1113,10 @@ private EngineConfigFactory getEngineConfigFactory(final IndexSettings idxSettin } private SearchEnginePlugin getSearchEnginePlugin() throws IOException { - return pluginsService.filterPlugins(SearchEnginePlugin.class).get(0); + List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); + return !searchEnginePlugins.isEmpty() + ? searchEnginePlugins.getFirst() + : null; } private IngestionConsumerFactory getIngestionConsumerFactory(final IndexSettings idxSettings) { diff --git a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java index 461bbc133905a..cf008d3098fcd 100644 --- a/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/DataSourcePlugin.java @@ -10,6 +10,8 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.shard.ShardPath; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.util.Map; @@ -20,7 +22,7 @@ default Optional IndexingExecutionEngine indexingEngine(); + IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath); DataFormat getDataFormat(); } diff --git a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java index ad029fec7d4d5..e1c68761dd0a7 100644 --- a/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java +++ b/server/src/main/java/org/opensearch/plugins/SearchEnginePlugin.java @@ -16,6 +16,7 @@ import org.opensearch.env.NodeEnvironment; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.shard.ShardPath; import org.opensearch.repositories.RepositoriesService; import org.opensearch.script.ScriptService; import org.opensearch.threadpool.ThreadPool; @@ -55,5 +56,5 @@ default Collection createComponents( List getSupportedFormats(); - SearchExecEngine createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot) throws IOException; + SearchExecEngine createEngine(DataFormat dataFormat, Collection formatCatalogSnapshot, ShardPath shardPath) throws IOException; } From 9f1eed663538cc36ade275b92b10387ff413a62f Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Fri, 3 Oct 2025 16:33:57 +0530 Subject: [PATCH 025/112] removing CSV codec and integrating with parquet module Signed-off-by: bharath-techie --- gradle/missing-javadoc.gradle | 1 - .../ParquetDataFormatPlugin.java | 22 +- .../parquetdataformat/bridge/RustBridge.java | 32 ++- .../engine/read/ParquetDataSourceCodec.java | 18 +- .../engine/read/ParquetRecordBatchStream.java | 10 +- .../engine/read/package-info.java | 2 +- ...rized.execution.search.spi.DataSourceCodec | 2 +- .../src/main/rust/Cargo.toml | 53 ++++- .../src/main/rust/src/context.rs | 2 +- .../src/main/rust/src/csv_exec.rs | 24 --- .../src/main/rust/src/parquet_exec.rs | 24 +++ .../src/main/rust/src/read_lib.rs | 16 +- plugins/dataformat-csv/build.gradle | 112 ---------- plugins/dataformat-csv/jni/Cargo.toml | 53 ----- plugins/dataformat-csv/jni/src/context.rs | 70 ------- plugins/dataformat-csv/jni/src/csv_exec.rs | 24 --- plugins/dataformat-csv/jni/src/lib.rs | 198 ------------------ plugins/dataformat-csv/jni/src/runtime.rs | 27 --- plugins/dataformat-csv/jni/src/stream.rs | 43 ---- plugins/dataformat-csv/jni/src/substrait.rs | 37 ---- plugins/dataformat-csv/jni/src/util.rs | 63 ------ .../datafusion/csv/CsvDataFormatPlugin.java | 69 ------ .../datafusion/csv/CsvDataSourceCodec.java | 147 ------------- .../datafusion/csv/CsvRecordBatchStream.java | 119 ----------- .../datafusion/csv/JniLibraryLoader.java | 172 --------------- .../csv/engine/exec/CsvDataFormat.java | 35 ---- .../datafusion/csv/engine/exec/CsvEngine.java | 193 ----------------- .../datafusion/csv/package-info.java | 13 -- ...rized.execution.search.spi.DataSourceCodec | 1 - .../resources/plugin-descriptor.properties | 7 - .../csv/CsvDataFormatPluginTests.java | 25 --- 31 files changed, 142 insertions(+), 1472 deletions(-) delete mode 100644 modules/parquet-data-format/src/main/rust/src/csv_exec.rs create mode 100644 modules/parquet-data-format/src/main/rust/src/parquet_exec.rs delete mode 100644 plugins/dataformat-csv/build.gradle delete mode 100644 plugins/dataformat-csv/jni/Cargo.toml delete mode 100644 plugins/dataformat-csv/jni/src/context.rs delete mode 100644 plugins/dataformat-csv/jni/src/csv_exec.rs delete mode 100644 plugins/dataformat-csv/jni/src/lib.rs delete mode 100644 plugins/dataformat-csv/jni/src/runtime.rs delete mode 100644 plugins/dataformat-csv/jni/src/stream.rs delete mode 100644 plugins/dataformat-csv/jni/src/substrait.rs delete mode 100644 plugins/dataformat-csv/jni/src/util.rs delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java delete mode 100644 plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java delete mode 100644 plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec delete mode 100644 plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties delete mode 100644 plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java diff --git a/gradle/missing-javadoc.gradle b/gradle/missing-javadoc.gradle index f27b7debc04fc..da60d3afa0a78 100644 --- a/gradle/missing-javadoc.gradle +++ b/gradle/missing-javadoc.gradle @@ -165,7 +165,6 @@ configure([ project(":plugins:engine-datafusion"), //TODO project(":server"), project(":modules:parquet-data-format"), - project(":plugins:dataformat-csv"), //TODO ]) { project.tasks.withType(MissingJavadocTask) { isExcluded = true diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java index e37b1a5ca543e..d6553a14ab23d 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java @@ -7,7 +7,9 @@ */ package com.parquet.parquetdataformat; +import com.parquet.parquetdataformat.engine.ParquetDataFormat; import com.parquet.parquetdataformat.fields.ParquetFieldUtil; +import com.parquet.parquetdataformat.engine.read.ParquetDataSourceCodec; import com.parquet.parquetdataformat.writer.ParquetWriter; import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.exec.DataFormat; @@ -18,8 +20,12 @@ import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.index.mapper.MapperService; import org.opensearch.plugins.Plugin; +import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; /** * OpenSearch plugin that provides Parquet data format support for indexing operations. @@ -58,9 +64,23 @@ public IndexingExecutionEngine indexingEngine(MapperSe return (IndexingExecutionEngine) new ParquetExecutionEngine(() -> ParquetFieldUtil.getSchema(mapperService), shardPath); } + private Class getDataFormatType() { + return ParquetDataFormat.class; + } + @Override public DataFormat getDataFormat() { - return null; + return new ParquetDataFormat(); + } + + @Override + public Optional> getDataSourceCodecs() { + Map codecs = new HashMap<>(); + ParquetDataSourceCodec parquetDataSourceCodec = new ParquetDataSourceCodec(); + // TODO : version it correctly - similar to lucene codecs? + codecs.put(parquetDataSourceCodec.getDataFormat(), new ParquetDataSourceCodec()); + return Optional.of(codecs); + // return Optional.empty(); } // for testing locally only diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index c8dda6dbc195c..8ef4596395e97 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -11,21 +11,21 @@ /** * JNI bridge to the native Rust Parquet writer implementation. - * + * *

This class provides the interface between Java and the native Rust library * that handles low-level Parquet file operations. It automatically loads the * appropriate native library for the current platform and architecture. - * + * *

Supported platforms: *

    *
  • Windows (x86, x86_64, aarch64)
  • *
  • macOS (x86_64, aarch64/arm64)
  • *
  • Linux (x86, x86_64, aarch64)
  • *
- * + * *

The native library is extracted from resources and loaded as a temporary file, * which is automatically cleaned up on JVM shutdown. - * + * *

All native methods operate on Arrow C Data Interface pointers and return * integer status codes for error handling. */ @@ -83,19 +83,37 @@ private static void loadNativeLibrary() { public static native void write(String file, long arrayAddress, long schemaAddress) throws IOException; public static native void closeWriter(String file) throws IOException; public static native void flushToDisk(String file) throws IOException; - + // State and metrics methods handled on Rust side public static native boolean writerExists(String file); public static native long getWriteCount(String file); public static native long getTotalRows(String file); public static native String[] getActiveWriters(); - + // Validation helpers that could be implemented natively for better performance public static boolean isValidFileName(String fileName) { return fileName != null && !fileName.trim().isEmpty(); } - + public static boolean isValidMemoryAddress(long address) { return address != 0; } + + + // DATAFUSION specific native methods starts here + + // Record batch and streaming related methods + public static native String nativeNextBatch(long streamPtr); + + public static native void nativeCloseStream(long streamPtr); + + + // Native method declarations - these will be implemented in the JNI library + public static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); + + public static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); + + public static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); + + public static native void nativeCloseSessionContext(long sessionContextPtr); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java index 21f28bb912164..f20a9bae06ea2 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package com.parquet.parquetdataformat.read; +package com.parquet.parquetdataformat.engine.read; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -20,6 +20,11 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCloseSessionContext; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCreateSessionContext; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeExecuteSubstraitQuery; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeRegisterDirectory; + /** * Datasource codec implementation for parquet files */ @@ -33,7 +38,7 @@ public class ParquetDataSourceCodec implements DataSourceCodec { // JNI library loading static { try { - JniLibraryLoader.loadLibrary(); + //JniLibraryLoader.loadLibrary(); logger.info("DataFusion JNI library loaded successfully"); } catch (Exception e) { logger.error("Failed to load DataFusion JNI library", e); @@ -135,13 +140,4 @@ public CompletableFuture closeSessionContext(long sessionContextId) { public DataFormat getDataFormat() { return DataFormat.CSV; } - - // Native method declarations - these will be implemented in the JNI library - private static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); - - private static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); - - private static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); - - private static native void nativeCloseSessionContext(long sessionContextPtr); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java index 7d007d5584a8d..3c23e4fd9d1b5 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java @@ -6,7 +6,7 @@ * compatible open source license. */ -package com.parquet.parquetdataformat.read; +package com.parquet.parquetdataformat.engine.read; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -14,6 +14,9 @@ import java.util.concurrent.CompletableFuture; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCloseStream; +import static com.parquet.parquetdataformat.bridge.RustBridge.nativeNextBatch; + /** * TODO : this need not be here - nothing specific to parquet - move to LIB ? * Native implementation of RecordBatchStream that wraps a JNI stream pointer. @@ -111,9 +114,4 @@ public void close() { } } } - - // Native method declarations - private static native String nativeNextBatch(long streamPtr); - - private static native void nativeCloseStream(long streamPtr); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java index 987c9b9cecef5..bd486fa1e26f4 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/package-info.java @@ -10,4 +10,4 @@ * CSV data format implementation for DataFusion integration. * Provides CSV file reading capabilities through DataFusion query engine. */ -package com.parquet.parquetdataformat.read; +package com.parquet.parquetdataformat.engine.read; diff --git a/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec b/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec index 452b39dc4abf7..7d1e56cc25536 100644 --- a/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec +++ b/modules/parquet-data-format/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec @@ -1 +1 @@ -org.opensearch.datafusion.csv.CsvDataSourceCodec +com.parquet.parquetdataformat.engine.read.ParquetDataSourceCodec diff --git a/modules/parquet-data-format/src/main/rust/Cargo.toml b/modules/parquet-data-format/src/main/rust/Cargo.toml index 8b6999ad81701..21ba3950aa9ac 100644 --- a/modules/parquet-data-format/src/main/rust/Cargo.toml +++ b/modules/parquet-data-format/src/main/rust/Cargo.toml @@ -8,9 +8,56 @@ name = "parquet_dataformat_jni" crate-type = ["cdylib"] [dependencies] -jni = "0.21.1" -arrow = { version = "53.0.0", features = ["ffi"] } -parquet = "53.0.0" + +# DataFusion dependencies +datafusion = "49.0.0" +datafusion-substrait = "49.0.0" +arrow = { version = "54.0.0", features = ["ffi"] } + +arrow-array = "54.0.0" +arrow-schema = "54.0.0" +arrow-buffer = "54.0.0" + +# JNI dependencies +jni = "0.21" + +# Async runtime +tokio = { version = "1.0", features = ["full"] } +futures = "0.3" +futures-util = "0.3" + +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +# Error handling +anyhow = "1.0" +thiserror = "1.0" + +# Logging +log = "0.4" + +# Parquet support +parquet = "54.0.0" + +# Object store for file access +object_store = "0.11" +url = "2.0" + +# Substrait support +substrait = "0.47" +prost = "0.13" + +# Temporary directory support +tempfile = "3.0" + +#jni = "0.21.1" +#arrow = { version = "53.0.0", features = ["ffi"] } +#parquet = "53.0.0" lazy_static = "1.4.0" dashmap = "7.0.0-rc2" chrono = "0.4" + + +[build-dependencies] +cbindgen = "0.27" diff --git a/modules/parquet-data-format/src/main/rust/src/context.rs b/modules/parquet-data-format/src/main/rust/src/context.rs index 0878254479201..022912ed84c48 100644 --- a/modules/parquet-data-format/src/main/rust/src/context.rs +++ b/modules/parquet-data-format/src/main/rust/src/context.rs @@ -28,7 +28,7 @@ impl SessionContextManager { directory_path: &str, options: HashMap, ) -> Result { - // Placeholder implementation - would register csv directory as table + // Placeholder implementation - would register parquet directory as table log::info!("Registering directory: {} at path: {} with options: {:?}", table_name, directory_path, options); diff --git a/modules/parquet-data-format/src/main/rust/src/csv_exec.rs b/modules/parquet-data-format/src/main/rust/src/csv_exec.rs deleted file mode 100644 index 2043be331b35a..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/csv_exec.rs +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use anyhow::Result; - -/// Csv-specific execution utilities - placeholder implementation -pub struct CsvExecutor; - -impl CsvExecutor { - pub fn new() -> Self { - Self - } - - /// Create a listing table for Csv files - placeholder - pub async fn create_csv_table( - &self, - table_path: &str, - ) -> Result { - // Placeholder implementation - log::info!("Creating csv table for path: {}", table_path); - Ok(1) // Return dummy table ID - } -} diff --git a/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs b/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs new file mode 100644 index 0000000000000..9fee54317d09a --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs @@ -0,0 +1,24 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +use anyhow::Result; + +/// Parquet-specific execution utilities - placeholder implementation +pub struct ParquetExecutor; + +impl ParquetExecutor { + pub fn new() -> Self { + Self + } + + /// Create a listing table for Parquet files - placeholder + pub async fn create_parquet_table( + &self, + table_path: &str, + ) -> Result { + // Placeholder implementation + log::info!("Creating parquet table for path: {}", table_path); + Ok(1) // Return dummy table ID + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/read_lib.rs b/modules/parquet-data-format/src/main/rust/src/read_lib.rs index 34618f94a9372..516e9acca9d06 100644 --- a/modules/parquet-data-format/src/main/rust/src/read_lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/read_lib.rs @@ -6,7 +6,7 @@ * compatible open source license. */ -//! OpenSearch DataFusion Csv JNI Library +//! OpenSearch DataFusion parquet JNI Library //! //! This library provides JNI bindings for DataFusion query execution, @@ -21,7 +21,7 @@ mod runtime; mod stream; mod substrait; mod util; -mod csv_exec; +mod parquet_exec; use context::SessionContextManager; use runtime::RuntimeManager; @@ -53,7 +53,7 @@ static mut RUNTIME_ENVIRONMENTS: Option> = None; /// Register a directory as a table in the global context and return runtime environment ID #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeRegisterDirectory( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeRegisterDirectory( mut env: JNIEnv, _class: JClass, table_name: JString, @@ -67,7 +67,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nat /// Create a new session context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCreateSessionContext( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCreateSessionContext( mut env: JNIEnv, _class: JClass, config_keys: JObjectArray, @@ -102,7 +102,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nat /// Execute a Substrait query plan #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeExecuteSubstraitQuery( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeExecuteSubstraitQuery( mut env: JNIEnv, _class: JClass, session_context_ptr: jlong, @@ -135,7 +135,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nat /// Close a session context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCloseSessionContext( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCloseSessionContext( mut env: JNIEnv, _class: JClass, session_context_ptr: jlong, @@ -154,7 +154,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nat /// Get the next record batch from a stream #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeNextBatch( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeNextBatch( mut env: JNIEnv, _class: JClass, stream_ptr: jlong, @@ -186,7 +186,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_n /// Close a record batch stream #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeCloseStream( +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCloseStream( _env: JNIEnv, _class: JClass, stream_ptr: jlong, diff --git a/plugins/dataformat-csv/build.gradle b/plugins/dataformat-csv/build.gradle deleted file mode 100644 index 99860394bff22..0000000000000 --- a/plugins/dataformat-csv/build.gradle +++ /dev/null @@ -1,112 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -apply plugin: 'opensearch.opensearchplugin' - -opensearchplugin { - name = 'dataformat-csv' - description = 'CSV data format plugin for OpenSearch DataFusion' - classname = 'org.opensearch.datafusion.csv.CsvDataFormatPlugin' - hasNativeController = false -} - -dependencies { - api project(':libs:opensearch-vectorized-exec-spi') - api project(':libs:opensearch-core') - api project(':libs:opensearch-common') - - testImplementation(project(":test:framework")) { - exclude group: 'org.opensearch', module: 'opensearch-dataformat-csv' - } -} - -// JNI library configuration -task buildJni(type: Exec) { - description = 'Build the Rust JNI library using Cargo' - group = 'build' - - workingDir 'jni' - - // Determine the target directory and library name based on OS - def osName = System.getProperty('os.name').toLowerCase() - def libPrefix = osName.contains('windows') ? '' : 'lib' - def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') - - // Find cargo executable - try common locations - def cargoExecutable = 'cargo' - def possibleCargoPaths = [ - System.getenv('HOME') + '/.cargo/bin/cargo', - '/usr/local/bin/cargo', - 'cargo' - ] - - for (String path : possibleCargoPaths) { - if (new File(path).exists()) { - cargoExecutable = path - break - } - } - - // Use release build - //def cargoArgs = ['cargo', 'build', '--release'] - - def cargoArgs = [cargoExecutable, 'build', '--release'] - - if (osName.contains('windows')) { - commandLine cargoArgs - } else { - commandLine cargoArgs - } - - // Set environment variables for cross-compilation if needed - environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath - - inputs.files fileTree('jni/src') - inputs.file 'jni/Cargo.toml' - outputs.files file("jni/target/release/${libPrefix}opensearch_datafusion_csv_jni${libExtension}") -} - -task copyJniLib(type: Copy, dependsOn: buildJni) { - from 'jni/target/release' - into 'src/main/resources' - include '*.dylib', '*.so', '*.dll' - - doLast { - // Remove executable permissions from copied native libraries - fileTree('src/main/resources').matching { - include '*.dylib', '*.so', '*.dll' - }.each { file -> - file.setExecutable(false, false) - file.setReadable(true, false) - file.setWritable(true, false) - } - } -} - -processResources.dependsOn copyJniLib -sourcesJar.dependsOn copyJniLib - -// Ensure file permissions check runs after JNI library is copied -tasks.named('filepermissions').configure { - dependsOn copyJniLib -} - -// Ensure forbidden patterns check runs after JNI library is copied -tasks.named('forbiddenPatterns').configure { - dependsOn copyJniLib - exclude '**/*.dylib', '**/*.so', '**/*.dll' -} - -// Ensure spotless check runs after JNI library is copied -tasks.named('spotlessJava').configure { - dependsOn copyJniLib -} - -test { - systemProperty 'tests.security.manager', 'false' -} diff --git a/plugins/dataformat-csv/jni/Cargo.toml b/plugins/dataformat-csv/jni/Cargo.toml deleted file mode 100644 index be5b6c92bfa66..0000000000000 --- a/plugins/dataformat-csv/jni/Cargo.toml +++ /dev/null @@ -1,53 +0,0 @@ -[package] -name = "opensearch-datafusion-csv-jni" -version = "0.1.0" -edition = "2021" - -[lib] -name = "opensearch_datafusion_csv_jni" -crate-type = ["cdylib"] - -[dependencies] -# DataFusion dependencies -datafusion = "49.0.0" -datafusion-substrait = "49.0.0" -arrow = "54.0.0" -arrow-array = "54.0.0" -arrow-schema = "54.0.0" -arrow-buffer = "54.0.0" - -# JNI dependencies -jni = "0.21" - -# Async runtime -tokio = { version = "1.0", features = ["full"] } -futures = "0.3" -futures-util = "0.3" - -# Serialization -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" - -# Error handling -anyhow = "1.0" -thiserror = "1.0" - -# Logging -log = "0.4" - -# Parquet support -parquet = "54.0.0" - -# Object store for file access -object_store = "0.11" -url = "2.0" - -# Substrait support -substrait = "0.47" -prost = "0.13" - -# Temporary directory support -tempfile = "3.0" - -[build-dependencies] -cbindgen = "0.27" diff --git a/plugins/dataformat-csv/jni/src/context.rs b/plugins/dataformat-csv/jni/src/context.rs deleted file mode 100644 index 0878254479201..0000000000000 --- a/plugins/dataformat-csv/jni/src/context.rs +++ /dev/null @@ -1,70 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use datafusion::prelude::*; -use datafusion::execution::context::SessionContext; -use std::collections::HashMap; -use std::sync::Arc; -use anyhow::Result; - -/// Manages DataFusion session contexts -pub struct SessionContextManager { - contexts: HashMap<*mut SessionContext, Arc>, - next_runtime_id: u64, -} - -impl SessionContextManager { - pub fn new() -> Self { - Self { - contexts: HashMap::new(), - next_runtime_id: 1, - } - } - - pub async fn register_directory( - &mut self, - table_name: &str, - directory_path: &str, - options: HashMap, - ) -> Result { - // Placeholder implementation - would register csv directory as table - log::info!("Registering directory: {} at path: {} with options: {:?}", - table_name, directory_path, options); - - let runtime_id = self.next_runtime_id; - self.next_runtime_id += 1; - Ok(runtime_id) - } - - pub async fn create_session_context( - &mut self, - config: HashMap, - ) -> Result<*mut SessionContext> { - // Create actual DataFusion session context - let mut session_config = SessionConfig::new(); - - // Apply configuration options - if let Some(batch_size) = config.get("batch_size") { - if let Ok(size) = batch_size.parse::() { - session_config = session_config.with_batch_size(size); - } - } - - let ctx = Arc::new(SessionContext::new_with_config(session_config)); - let ctx_ptr = Arc::as_ptr(&ctx) as *mut SessionContext; - - self.contexts.insert(ctx_ptr, ctx); - - Ok(ctx_ptr) - } - - pub async fn close_session_context(&mut self, ctx_ptr: *mut SessionContext) -> Result<()> { - self.contexts.remove(&ctx_ptr); - Ok(()) - } - - pub fn get_context(&self, ctx_ptr: *mut SessionContext) -> Option<&Arc> { - self.contexts.get(&ctx_ptr) - } -} diff --git a/plugins/dataformat-csv/jni/src/csv_exec.rs b/plugins/dataformat-csv/jni/src/csv_exec.rs deleted file mode 100644 index 2043be331b35a..0000000000000 --- a/plugins/dataformat-csv/jni/src/csv_exec.rs +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use anyhow::Result; - -/// Csv-specific execution utilities - placeholder implementation -pub struct CsvExecutor; - -impl CsvExecutor { - pub fn new() -> Self { - Self - } - - /// Create a listing table for Csv files - placeholder - pub async fn create_csv_table( - &self, - table_path: &str, - ) -> Result { - // Placeholder implementation - log::info!("Creating csv table for path: {}", table_path); - Ok(1) // Return dummy table ID - } -} diff --git a/plugins/dataformat-csv/jni/src/lib.rs b/plugins/dataformat-csv/jni/src/lib.rs deleted file mode 100644 index 34618f94a9372..0000000000000 --- a/plugins/dataformat-csv/jni/src/lib.rs +++ /dev/null @@ -1,198 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -//! OpenSearch DataFusion Csv JNI Library -//! -//! This library provides JNI bindings for DataFusion query execution, - -use jni::JNIEnv; -use jni::objects::{JClass, JString, JObjectArray, JByteArray}; -use jni::sys::{jlong, jstring}; -use std::ptr; -use std::collections::HashMap; - -mod context; -mod runtime; -mod stream; -mod substrait; -mod util; -mod csv_exec; - -use context::SessionContextManager; -use runtime::RuntimeManager; -use stream::RecordBatchStreamWrapper; -use substrait::SubstraitExecutor; -use datafusion::execution::context::SessionContext; -use datafusion::execution::runtime_env::RuntimeEnv; - -/** -TODO : Put more thought into this -**/ -static mut RUNTIME_MANAGER: Option = None; - -static mut SESSION_MANAGER: Option = None; - -/// Initialize the managers (call once) -fn init_managers() { - unsafe { - if RUNTIME_MANAGER.is_none() { - RUNTIME_MANAGER = Some(RuntimeManager::new()); - } - if SESSION_MANAGER.is_none() { - SESSION_MANAGER = Some(SessionContextManager::new()); - } - } -} -static mut RUNTIME_ENVIRONMENTS: Option> = None; - - -/// Register a directory as a table in the global context and return runtime environment ID -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeRegisterDirectory( - mut env: JNIEnv, - _class: JClass, - table_name: JString, - directory_path: JString, - files: JObjectArray, - runtime_id: jlong -) { - let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; - // placeholder -} - -/// Create a new session context -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCreateSessionContext( - mut env: JNIEnv, - _class: JClass, - config_keys: JObjectArray, - config_values: JObjectArray, -) -> jlong { - // Initialize managers if not already done - init_managers(); - - // PLACEHOLDER - // Parse configuration from JNI arrays - let config = match util::parse_string_map(&mut env, config_keys, config_values) { - Ok(cfg) => cfg, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to parse config: {}", e)); - return 0; - } - }; - - // Create session context - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - SESSION_MANAGER.as_mut().unwrap().create_session_context(config).await - }) - } { - Ok(context_ptr) => context_ptr as jlong, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to create session context: {}", e)); - 0 - } - } -} - -/// Execute a Substrait query plan -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeExecuteSubstraitQuery( - mut env: JNIEnv, - _class: JClass, - session_context_ptr: jlong, - substrait_plan: JByteArray, -) -> jlong { - - // Convert JByteArray to Vec - let substrait_plan_bytes = match env.convert_byte_array(substrait_plan) { - Ok(bytes) => bytes, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to convert substrait plan: {}", e)); - return 0; - } - }; - - // Execute the query - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - let executor = SubstraitExecutor::new(); - executor.execute_plan(session_context_ptr as *mut SessionContext, &substrait_plan_bytes).await - }) - } { - Ok(stream_ptr) => stream_ptr as jlong, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to execute query: {}", e)); - 0 - } - } -} - -/// Close a session context -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvDataSourceCodec_nativeCloseSessionContext( - mut env: JNIEnv, - _class: JClass, - session_context_ptr: jlong, -) { - - if let Err(e) = unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - SESSION_MANAGER.as_mut().unwrap() - .close_session_context(session_context_ptr as *mut SessionContext) - .await - }) - } { - util::throw_exception(&mut env, &format!("Failed to close session context: {}", e)); - } -} - -/// Get the next record batch from a stream -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeNextBatch( - mut env: JNIEnv, - _class: JClass, - stream_ptr: jlong, -) -> jstring { - - let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamWrapper) }; - - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - stream.next_batch().await - }) - } { - Ok(Some(batch_json)) => { - match env.new_string(&batch_json) { - Ok(jstr) => jstr.into_raw(), - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to create Java string: {}", e)); - ptr::null_mut() - } - } - } - Ok(None) => ptr::null_mut(), // End of stream - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to get next batch: {}", e)); - ptr::null_mut() - } - } -} - -/// Close a record batch stream -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_csv_CsvRecordBatchStream_nativeCloseStream( - _env: JNIEnv, - _class: JClass, - stream_ptr: jlong, -) { - if stream_ptr != 0 { - let stream = unsafe { Box::from_raw(stream_ptr as *mut RecordBatchStreamWrapper) }; - drop(stream); - } -} diff --git a/plugins/dataformat-csv/jni/src/runtime.rs b/plugins/dataformat-csv/jni/src/runtime.rs deleted file mode 100644 index bcd48a7dee58b..0000000000000 --- a/plugins/dataformat-csv/jni/src/runtime.rs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use tokio::runtime::Runtime; -use std::future::Future; - -/// Manages the Tokio runtime for async operations -pub struct RuntimeManager { - runtime: Runtime, -} - -impl RuntimeManager { - pub fn new() -> Self { - // Placeholder - - let runtime = Runtime::new().expect("Failed to create Tokio runtime"); - Self { runtime } - } - - pub fn block_on(&self, future: F) -> F::Output - where - F: Future, - { - self.runtime.block_on(future) - } -} diff --git a/plugins/dataformat-csv/jni/src/stream.rs b/plugins/dataformat-csv/jni/src/stream.rs deleted file mode 100644 index 2fe30f941223b..0000000000000 --- a/plugins/dataformat-csv/jni/src/stream.rs +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use anyhow::Result; -use serde_json; - -/// Wrapper for DataFusion record batch streams - placeholder implementation -pub struct RecordBatchStreamWrapper { - batch_count: u32, - is_placeholder: bool, -} - -impl RecordBatchStreamWrapper { - pub fn new_placeholder() -> Self { - Self { - batch_count: 0, - is_placeholder: true, - } - } - - pub async fn next_batch(&mut self) -> Result> { - // Return placeholder data for first few calls, then None - if self.is_placeholder { - if self.batch_count < 2 { - self.batch_count += 1; - let placeholder_data = serde_json::json!({ - "rows": [ - {"id": self.batch_count, "name": format!("placeholder_row_{}", self.batch_count)} - ], - "num_rows": 1, - "num_columns": 2 - }); - Ok(Some(serde_json::to_string(&placeholder_data)?)) - } else { - Ok(None) // End of stream - } - } else { - // Real implementation would go here - Ok(None) - } - } -} diff --git a/plugins/dataformat-csv/jni/src/substrait.rs b/plugins/dataformat-csv/jni/src/substrait.rs deleted file mode 100644 index d8ca0f2846fd7..0000000000000 --- a/plugins/dataformat-csv/jni/src/substrait.rs +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use datafusion::execution::context::SessionContext; -use crate::stream::RecordBatchStreamWrapper; -use anyhow::Result; - -/// Executes Substrait query plans -pub struct SubstraitExecutor; - -impl SubstraitExecutor { - pub fn new() -> Self { - Self - } - - pub async fn execute_plan( - &self, - session_context_ptr: *mut SessionContext, - substrait_plan_bytes: &[u8], - ) -> Result<*mut RecordBatchStreamWrapper> { - // Placeholder implementation - would normally: - // 1. Parse Substrait plan from substrait_plan_bytes - // 2. Convert to DataFusion logical plan using datafusion-substrait - // 3. Execute using the session context - // 4. Return actual record batch stream - - log::info!("Executing Substrait plan with {} bytes for session: {:?}", - substrait_plan_bytes.len(), session_context_ptr); - - // For now, return a placeholder stream - let wrapper = RecordBatchStreamWrapper::new_placeholder(); - let wrapper_ptr = Box::into_raw(Box::new(wrapper)); - - Ok(wrapper_ptr) - } -} diff --git a/plugins/dataformat-csv/jni/src/util.rs b/plugins/dataformat-csv/jni/src/util.rs deleted file mode 100644 index 5055c1312791a..0000000000000 --- a/plugins/dataformat-csv/jni/src/util.rs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use jni::JNIEnv; -use jni::objects::{JObjectArray, JString}; -use std::collections::HashMap; -use anyhow::Result; - -/// Parse a string map from JNI arrays -pub fn parse_string_map( - env: &mut JNIEnv, - keys: JObjectArray, - values: JObjectArray, -) -> Result> { - let mut map = HashMap::new(); - - let keys_len = env.get_array_length(&keys)?; - let values_len = env.get_array_length(&values)?; - - if keys_len != values_len { - return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); - } - - for i in 0..keys_len { - let key_obj = env.get_object_array_element(&keys, i)?; - let value_obj = env.get_object_array_element(&values, i)?; - - let key_jstring = JString::from(key_obj); - let value_jstring = JString::from(value_obj); - - let key_str = env.get_string(&key_jstring)?; - let value_str = env.get_string(&value_jstring)?; - - map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); - } - - Ok(map) -} - -// Parse a string map from JNI arrays -pub fn parse_string_arr( - env: &mut JNIEnv, - files: JObjectArray, -) -> Result> { - let length = env.get_array_length(&files).unwrap(); - let mut rust_strings: Vec = Vec::with_capacity(length as usize); - for i in 0..length { - let file_obj = env.get_object_array_element(&files, i).unwrap(); - let jstring = JString::from(file_obj); - let rust_str: String = env - .get_string(&jstring) - .expect("Couldn't get java string!") - .into(); - rust_strings.push(rust_str); - } - Ok(rust_strings) -} - -/// Throw a Java exception -pub fn throw_exception(env: &mut JNIEnv, message: &str) { - let _ = env.throw_new("java/lang/RuntimeException", message); -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java deleted file mode 100644 index 506384c09fe1f..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataFormatPlugin.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv; - -import org.opensearch.datafusion.csv.engine.exec.CsvDataFormat; -import org.opensearch.datafusion.csv.engine.exec.CsvEngine; -import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.IndexingExecutionEngine; -import org.opensearch.index.mapper.MapperService; -import org.opensearch.index.shard.ShardPath; -import org.opensearch.plugins.DataSourcePlugin; -import org.opensearch.plugins.Plugin; -import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -/** - * Plugin for CSV data format support in OpenSearch DataFusion. - * This plugin provides CSV data source codec through ServiceLoader mechanism. - * - * Todo: implement vectorized exec specific plugin - */ -public class CsvDataFormatPlugin extends Plugin implements DataSourcePlugin { - - /** - * Creates a new CSV data format plugin. - */ - public CsvDataFormatPlugin() { - // Plugin initialization - } - - // TODO : move to vectorized exec specific plugin - @Override - public Optional> getDataSourceCodecs() { - Map codecs = new HashMap<>(); - CsvDataSourceCodec csvDataSourceCodec = new CsvDataSourceCodec(); - // TODO : version it correctly - similar to lucene codecs? - codecs.put(csvDataSourceCodec.getDataFormat(), new CsvDataSourceCodec()); - return Optional.of(codecs); - // return Optional.empty(); - } - - @Override - public IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath) { - if (CsvDataFormat.class.equals(getDataFormatType())) { - @SuppressWarnings("unchecked") - IndexingExecutionEngine engine = (IndexingExecutionEngine) new CsvEngine(); - return engine; - } - throw new IllegalArgumentException("Unsupported data format type: " + getDataFormatType()); - } - - private Class getDataFormatType() { - return CsvDataFormat.class; - } - - @Override - public DataFormat getDataFormat() { - return new CsvDataFormat(); - } -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java deleted file mode 100644 index ed8177b4fe01f..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvDataSourceCodec.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.search.DataFormat; -import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; - -/** - * Datasource codec implementation for CSV files - */ -public class CsvDataSourceCodec implements DataSourceCodec { - - private static final Logger logger = LogManager.getLogger(CsvDataSourceCodec.class); - private static final AtomicLong runtimeIdGenerator = new AtomicLong(0); - private static final AtomicLong sessionIdGenerator = new AtomicLong(0); - private final ConcurrentHashMap sessionContexts = new ConcurrentHashMap<>(); - - // JNI library loading - static { - try { - JniLibraryLoader.loadLibrary(); - logger.info("DataFusion JNI library loaded successfully"); - } catch (Exception e) { - logger.error("Failed to load DataFusion JNI library", e); - throw new RuntimeException("Failed to initialize DataFusion JNI library", e); - } - } - - @Override - public CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Registering directory: {} with {} files", directoryPath, fileNames.size()); - - // Convert file names to arrays for JNI - String[] fileArray = fileNames.toArray(new String[0]); - - // Call native method to register directory - nativeRegisterDirectory("csv_table", directoryPath, fileArray, runtimeId); - return null; - } catch (Exception e) { - logger.error("Failed to register directory: " + directoryPath, e); - throw new CompletionException("Failed to register directory", e); - } - }); - } - - @Override - public CompletableFuture createSessionContext(long globalRuntimeEnvId) { - return CompletableFuture.supplyAsync(() -> { - try { - long sessionId = sessionIdGenerator.incrementAndGet(); - logger.debug("Creating session context with ID: {} for runtime: {}", sessionId, globalRuntimeEnvId); - - // Default configuration - String[] configKeys = { "batch_size", "target_partitions" }; - String[] configValues = { "1024", "4" }; - - // Create native session context - long nativeContextPtr = nativeCreateSessionContext(configKeys, configValues); - sessionContexts.put(sessionId, nativeContextPtr); - - logger.info("Created session context with ID: {}", sessionId); - return sessionId; - } catch (Exception e) { - logger.error("Failed to create session context for runtime: " + globalRuntimeEnvId, e); - throw new CompletionException("Failed to create session context", e); - } - }); - } - - @Override - public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Executing Substrait query for session: {}", sessionContextId); - - Long nativeContextPtr = sessionContexts.get(sessionContextId); - if (nativeContextPtr == null) { - throw new IllegalArgumentException("Invalid session context ID: " + sessionContextId); - } - - // Execute query and get native stream pointer - long nativeStreamPtr = nativeExecuteSubstraitQuery(nativeContextPtr, substraitPlanBytes); - - // Create Java wrapper for the native stream - RecordBatchStream stream = new CsvRecordBatchStream(nativeStreamPtr); - - logger.info("Successfully executed Substrait query for session: {}", sessionContextId); - return stream; - } catch (Exception e) { - logger.error("Failed to execute Substrait query for session: " + sessionContextId, e); - throw new CompletionException("Failed to execute Substrait query", e); - } - }); - } - - @Override - public CompletableFuture closeSessionContext(long sessionContextId) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Closing session context: {}", sessionContextId); - - Long nativeContextPtr = sessionContexts.remove(sessionContextId); - if (nativeContextPtr != null) { - nativeCloseSessionContext(nativeContextPtr); - logger.info("Successfully closed session context: {}", sessionContextId); - } else { - logger.warn("Session context not found: {}", sessionContextId); - } - - return null; - } catch (Exception e) { - logger.error("Failed to close session context: " + sessionContextId, e); - throw new CompletionException("Failed to close session context", e); - } - }); - } - - public DataFormat getDataFormat() { - return DataFormat.CSV; - } - - // Native method declarations - these will be implemented in the JNI library - private static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); - - private static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); - - private static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); - - private static native void nativeCloseSessionContext(long sessionContextPtr); -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java deleted file mode 100644 index 8df44473c5932..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/CsvRecordBatchStream.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -import java.util.concurrent.CompletableFuture; - -/** - * TODO : this need not be here - nothing specific to CSV - move to LIB ? - * Native implementation of RecordBatchStream that wraps a JNI stream pointer. - * This class provides a Java interface over native DataFusion record batches. - */ -public class CsvRecordBatchStream implements RecordBatchStream { - - private static final Logger logger = LogManager.getLogger(CsvRecordBatchStream.class); - - private final long nativeStreamPtr; - private volatile boolean closed = false; - private volatile boolean hasNextCached = false; - private volatile boolean hasNextValue = false; - - /** - * Creates a new CsvRecordBatchStream wrapping the given native stream pointer. - * - * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream - */ - public CsvRecordBatchStream(long nativeStreamPtr) { - if (nativeStreamPtr == 0) { - throw new IllegalArgumentException("Invalid native stream pointer"); - } - this.nativeStreamPtr = nativeStreamPtr; - logger.debug("Created CsvRecordBatchStream with pointer: {}", nativeStreamPtr); - } - - @Override - public Object getSchema() { - return "CsvSchema"; // Placeholder - } - - @Override - public CompletableFuture next() { - // PlaceholderImpl - return CompletableFuture.supplyAsync(() -> { - if (closed) { - return null; - } - - try { - // Get the next batch from native code - String batch = nativeNextBatch(nativeStreamPtr); - - // Reset cached hasNext value since we consumed a batch - hasNextCached = false; - - logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); - return batch; - } catch (Exception e) { - logger.error("Error getting next batch from stream", e); - return null; - } - }); - } - - @Override - public boolean hasNext() { - // Placeholder impl - if (closed) { - return false; - } - - if (hasNextCached) { - return hasNextValue; - } - - try { - // Check if there's a next batch available - // This is a simplified implementation - in practice, you might want to - // peek at the stream without consuming the batch - String nextBatch = nativeNextBatch(nativeStreamPtr); - hasNextValue = (nextBatch != null); - hasNextCached = true; - - logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); - return hasNextValue; - } catch (Exception e) { - logger.error("Error checking for next batch in stream", e); - return false; - } - } - - @Override - public void close() { - if (!closed) { - logger.debug("Closing CsvRecordBatchStream with pointer: {}", nativeStreamPtr); - try { - nativeCloseStream(nativeStreamPtr); - closed = true; - logger.debug("Successfully closed CsvRecordBatchStream"); - } catch (Exception e) { - logger.error("Error closing CsvRecordBatchStream", e); - throw e; - } - } - } - - // Native method declarations - private static native String nativeNextBatch(long streamPtr); - - private static native void nativeCloseStream(long streamPtr); -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java deleted file mode 100644 index 6f3e68baa10d1..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/JniLibraryLoader.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; -import java.nio.file.attribute.PosixFilePermission; -import java.util.Locale; -import java.util.Set; - -/** - * Utility class for loading the data source JNI library. - */ -public class JniLibraryLoader { - - private static final Logger logger = LogManager.getLogger(JniLibraryLoader.class); - private static volatile boolean libraryLoaded = false; - - private static final String LIBRARY_NAME = "opensearch_datafusion_csv_jni"; - - /** - * Private constructor to prevent instantiation of utility class. - */ - private JniLibraryLoader() { - // Utility class - } - - /** - * Loads the DataFusion JNI library. This method is thread-safe and will only - * load the library once. - */ - public static synchronized void loadLibrary() { - if (libraryLoaded) { - return; - } - - try { - // First try to load from system library path - System.loadLibrary(LIBRARY_NAME); - logger.info("Loaded DataFusion JNI library from system path"); - libraryLoaded = true; - return; - } catch (UnsatisfiedLinkError e) { - logger.debug("Could not load library from system path, trying to extract from JAR", e); - } - - // Try to extract and load from JAR resources - String libraryPath = extractLibraryFromJar(); - if (libraryPath != null) { - try { - System.load(libraryPath); - logger.info("Loaded DataFusion JNI library from extracted path: {}", libraryPath); - libraryLoaded = true; - return; - } catch (UnsatisfiedLinkError e) { - logger.error("Failed to load extracted library from: " + libraryPath, e); - } - } - - throw new RuntimeException("Failed to load DataFusion JNI library"); - } - - /** - * Extracts the platform-specific JNI library from JAR resources to a temporary file. - * - * @return Path to the extracted library file, or null if extraction failed - */ - private static String extractLibraryFromJar() { - String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); - String osArch = System.getProperty("os.arch").toLowerCase(Locale.ROOT); - - logger.debug("Detecting platform: OS={}, Arch={}", osName, osArch); - - String libraryFileName = getLibraryFileName(osName); - if (libraryFileName == null) { - logger.error("Unsupported platform: {}", osName); - return null; - } - - String resourcePath = "/" + libraryFileName; - logger.debug("Looking for library resource: {}", resourcePath); - - try (InputStream inputStream = JniLibraryLoader.class.getResourceAsStream(resourcePath)) { - if (inputStream == null) { - logger.error("Library resource not found: {}", resourcePath); - return null; - } - - // Create temporary file in system temp directory - Path tempDir = Files.createTempDirectory(Path.of(System.getProperty("java.io.tmpdir")), "datafusion-jni"); - Path tempLibrary = tempDir.resolve(libraryFileName); - - // Extract library to temporary file - Files.copy(inputStream, tempLibrary, StandardCopyOption.REPLACE_EXISTING); - - // Make executable on Unix-like systems using NIO - if (!osName.contains("windows")) { - Set permissions = Files.getPosixFilePermissions(tempLibrary); - permissions.add(PosixFilePermission.OWNER_EXECUTE); - permissions.add(PosixFilePermission.GROUP_EXECUTE); - permissions.add(PosixFilePermission.OTHERS_EXECUTE); - Files.setPosixFilePermissions(tempLibrary, permissions); - } - - // Register for cleanup on JVM shutdown using NIO - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try { - Files.deleteIfExists(tempLibrary); - Files.deleteIfExists(tempDir); - } catch (IOException e) { - logger.debug("Failed to cleanup temporary files", e); - } - })); - - String libraryPath = tempLibrary.toAbsolutePath().toString(); - logger.debug("Extracted library to: {}", libraryPath); - return libraryPath; - - } catch (IOException e) { - logger.error("Failed to extract library from JAR", e); - return null; - } - } - - /** - * Gets the platform-specific library file name. - * - * @param osName Operating system name - * @return Library file name, or null if platform is unsupported - */ - private static String getLibraryFileName(String osName) { - String prefix; - String extension; - - if (osName.contains("windows")) { - prefix = ""; - extension = ".dll"; - } else if (osName.contains("mac") || osName.contains("darwin")) { - prefix = "lib"; - extension = ".dylib"; - } else if (osName.contains("linux") || osName.contains("unix")) { - prefix = "lib"; - extension = ".so"; - } else { - return null; - } - - return prefix + LIBRARY_NAME + extension; - - } - - /** - * Checks if the JNI library has been loaded. - * - * @return true if the library is loaded, false otherwise - */ - public static boolean isLibraryLoaded() { - return libraryLoaded; - } -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java deleted file mode 100644 index b90e2f9f73723..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvDataFormat.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv.engine.exec; - -import org.opensearch.common.settings.Setting; -import org.opensearch.common.settings.Settings; -import org.opensearch.index.engine.exec.DataFormat; - -public class CsvDataFormat implements DataFormat { - @Override - public Setting dataFormatSettings() { - return null; - } - - @Override - public Setting clusterLeveldataFormatSettings() { - return null; - } - - @Override - public String name() { - return "csv"; - } - - @Override - public void configureStore() { - - } -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java deleted file mode 100644 index d200f7355fae4..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/engine/exec/CsvEngine.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv.engine.exec; - -import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.DocumentInput; -import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.FlushIn; -import org.opensearch.index.engine.exec.IndexingExecutionEngine; -import org.opensearch.index.engine.exec.RefreshInput; -import org.opensearch.index.engine.exec.RefreshResult; -import org.opensearch.index.engine.exec.WriteResult; -import org.opensearch.index.engine.exec.Writer; -import org.opensearch.index.mapper.MappedFieldType; - -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicLong; - -/** - * CSV indexing execution engine. - */ -public class CsvEngine implements IndexingExecutionEngine { - - private final AtomicLong counter = new AtomicLong(); - private final Set openWriters = new HashSet<>(); - private List openFiles = new ArrayList<>(); - static CsvDataFormat CSV = new CsvDataFormat(); - - /** - * Creates a new CSV indexing execution engine. - */ - public CsvEngine() { - // Default constructor - } - - @Override - public List supportedFieldTypes() { - return List.of(); - } - - @Override - public Writer> createWriter() throws IOException { - return new CsvWriter("file1.csv" + counter.getAndIncrement(), this); - } - - @Override - public DataFormat getDataFormat() { - return CSV; - } - - @Override - public RefreshResult refresh(RefreshInput refreshInput) throws IOException { - openFiles.addAll(refreshInput.getFiles()); - RefreshResult refreshResult = new RefreshResult(); - refreshResult.add(CSV, openFiles); - return refreshResult; - } - - /** - * CSV document input. - */ - public static class CsvInput implements DocumentInput { - private final List values = new ArrayList<>(); - private final CsvWriter writer; - - /** - * Creates a new CsvInput. - * - * @param writer the CSV writer - */ - public CsvInput(CsvWriter writer) { - this.writer = writer; - } - - @Override - public void addField(MappedFieldType fieldType, Object value) { - String stringValue = value == null ? "" : value.toString(); - if (stringValue.contains(",") || stringValue.contains("\"") || stringValue.contains("\n")) { - stringValue = "\"" + stringValue.replace("\"", "\"\"") + "\""; - } - values.add(stringValue); - } - - @Override - public String getFinalInput() { - return String.join(",", values) + "\n"; - } - - @Override - public WriteResult addToWriter() throws IOException { - return writer.addDoc(this); - } - - @Override - public void close() throws Exception { - // no op - } - } - - /** - * CSV writer implementation. - */ - public static class CsvWriter implements Writer { - private final StringBuilder sb = new StringBuilder(); - private final File currentFile; - private AtomicBoolean flushed = new AtomicBoolean(false); - private final Runnable onClose; - private boolean headerWritten = false; - - /** - * Creates a new CsvWriter. - * - * @param currentFile the file name - * @param engine the CSV engine - * @throws IOException if an I/O error occurs - */ - public CsvWriter(String currentFile, CsvEngine engine) throws IOException { - this.currentFile = new File("/Users/gbh/" + currentFile); - this.currentFile.createNewFile(); - boolean canWrite = this.currentFile.setWritable(true); - if (!canWrite) { - throw new IllegalStateException("Cannot write to file [" + currentFile + "]"); - } - engine.openWriters.add(this); - onClose = () -> engine.openWriters.remove(this); - } - - @Override - public WriteResult addDoc(CsvInput d) throws IOException { - sb.append(d.getFinalInput()); - return new WriteResult(true, null, 1, 1, 1); - } - - @Override - public FileMetadata flush(FlushIn flushIn) throws IOException { - try (FileWriter fw = new FileWriter(currentFile)) { - fw.write(sb.toString()); - } - flushed.set(true); - return new FileMetadata(CSV, currentFile.getName()); - } - - @Override - public void sync() throws IOException { - // no op - } - - @Override - public void close() { - onClose.run(); - } - - @Override - public Optional getMetadata() { - if (flushed.get()) { - return Optional.of(new FileMetadata(CSV, currentFile.getName())); - } - return Optional.empty(); - } - - @Override - public CsvInput newDocumentInput() { - return new CsvInput(this); - } - - /** - * Writes CSV headers. - * - * @param headers the header list - */ - public void writeHeaders(List headers) { - if (!headerWritten) { - String headerLine = String.join(",", headers) + "\n"; - sb.insert(0, headerLine); - headerWritten = true; - } - } - } -} diff --git a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java b/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java deleted file mode 100644 index 35fd564c68e51..0000000000000 --- a/plugins/dataformat-csv/src/main/java/org/opensearch/datafusion/csv/package-info.java +++ /dev/null @@ -1,13 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -/** - * CSV data format implementation for DataFusion integration. - * Provides CSV file reading capabilities through DataFusion query engine. - */ -package org.opensearch.datafusion.csv; diff --git a/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec b/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec deleted file mode 100644 index 452b39dc4abf7..0000000000000 --- a/plugins/dataformat-csv/src/main/resources/META-INF/services/org.opensearch.vectorized.execution.search.spi.DataSourceCodec +++ /dev/null @@ -1 +0,0 @@ -org.opensearch.datafusion.csv.CsvDataSourceCodec diff --git a/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties b/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties deleted file mode 100644 index 713d226cce94a..0000000000000 --- a/plugins/dataformat-csv/src/main/resources/plugin-descriptor.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Plugin descriptor for CSV data format plugin -description=CSV data format plugin for OpenSearch DataFusion -version=${project.version} -name=dataformat-csv -classname=org.opensearch.datafusion.csv.CsvDataFormatPlugin -java.version=${versions.java} -opensearch.version=${opensearch_version} diff --git a/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java b/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java deleted file mode 100644 index 27ea2251e66b6..0000000000000 --- a/plugins/dataformat-csv/src/test/java/org/opensearch/datafusion/csv/CsvDataFormatPluginTests.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.csv; - -import org.opensearch.test.OpenSearchTestCase; - -/** - * Tests for the CSV data format plugin. - */ -public class CsvDataFormatPluginTests extends OpenSearchTestCase { - - /** - * Test that the plugin can be instantiated. - */ - public void testPluginInstantiation() { - CsvDataFormatPlugin plugin = new CsvDataFormatPlugin(); - assertNotNull("Plugin should not be null", plugin); - } -} From 802b3350cc893ff756a41c36cf29d611a599f14c Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Mon, 6 Oct 2025 21:47:29 +0530 Subject: [PATCH 026/112] fixes for publishToMavenLocal Signed-off-by: bharath-techie --- .gitignore | 3 + modules/parquet-data-format/build.gradle | 70 ++++++++++++++----- .../wlm/spi/CatalogSnapshotMetadata.java | 26 ------- .../index/engine/TranslogHandler.java | 1 + 4 files changed, 56 insertions(+), 44 deletions(-) delete mode 100644 plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java diff --git a/.gitignore b/.gitignore index 53253b95b3409..e0255df35cbec 100644 --- a/.gitignore +++ b/.gitignore @@ -78,4 +78,7 @@ doc-tools/missing-doclet/bin/ /plugins/dataformat-csv/jni/Cargo.lock /modules/parquet-data-format/src/main/rust/target +/modules/parquet-data-format/src/main/rust/debug /modules/parquet-data-format/src/main/resources/native/ +/modules/parquet-data-format/jni/target/debug + diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index 27333467832cc..83e048eaab8c1 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -33,22 +33,6 @@ tasks.register("preparePluginPathDirs") { publishing { publications { pluginZip(MavenPublication) { publication -> - pom { - name = pluginName - description = pluginDescription - licenses { - license { - name = "The Apache License, Version 2.0" - url = "http://www.apache.org/licenses/LICENSE-2.0.txt" - } - } - developers { - developer { - name = "OpenSearch" - url = "https://github.com/opensearch-project/opensearch-plugin-template-java" - } - } - } } } } @@ -167,8 +151,58 @@ run { // updateVersion: Task to auto update version to the next development iteration tasks.register('buildRust', Exec) { - workingDir = file("${projectDir}/src/main/rust") - commandLine = ['cargo', 'build', '--release'] +// workingDir = file("${projectDir}/src/main/rust") +// commandLine = ['cargo', 'build', '--release'] + + description = 'Build the Rust JNI library using Cargo' + group = 'build' + + workingDir file('src/main/rust') + + // Determine the target directory and library name based on OS + def osName = System.getProperty('os.name').toLowerCase() + def libPrefix = osName.contains('windows') ? '' : 'lib' + def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') + + // Use debug build for development, release for production + def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' + def targetDir = "target/${buildType}" + + // Find cargo executable - try common locations + def cargoExecutable = 'cargo' + def possibleCargoPaths = [ + System.getenv('HOME') + '/.cargo/bin/cargo', + '/usr/local/bin/cargo', + 'cargo' + ] + + for (String path : possibleCargoPaths) { + if (new File(path).exists()) { + cargoExecutable = path + break + } + } + + def cargoArgs = [cargoExecutable, 'build'] + if (buildType == 'release') { + cargoArgs.add('--release') + } + + if (osName.contains('windows')) { + commandLine cargoArgs + } else { + commandLine cargoArgs + } + + // Set environment variables for cross-compilation if needed + environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath + + inputs.files fileTree('src/main/rust/src') + inputs.file 'src/main/rust/Cargo.toml' +// outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_jni${libExtension}") +// System.out.println("Building Rust library in ${buildType} mode"); + + } tasks.register('copyNativeLib', Copy) { diff --git a/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java b/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java deleted file mode 100644 index 618d8a42d6dc5..0000000000000 --- a/plugins/workload-management/wlm-spi/src/main/java/org/opensearch/plugin/wlm/spi/CatalogSnapshotMetadata.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.coord; - -import org.opensearch.index.engine.exec.FileMetadata; - -import java.util.Collection; - -public class CatalogSnapshotMetadata { - Collection files; - String path; - - public Collection getFiles() { - return files; - } - - public String getPath() { - return path; - } -} diff --git a/test/framework/src/main/java/org/opensearch/index/engine/TranslogHandler.java b/test/framework/src/main/java/org/opensearch/index/engine/TranslogHandler.java index 9e4e59d9a4d15..064bc6281d997 100644 --- a/test/framework/src/main/java/org/opensearch/index/engine/TranslogHandler.java +++ b/test/framework/src/main/java/org/opensearch/index/engine/TranslogHandler.java @@ -153,6 +153,7 @@ public Engine.Operation convertToEngineOp(Translog.Operation operation, Engine.O true, SequenceNumbers.UNASSIGNED_SEQ_NO, SequenceNumbers.UNASSIGNED_PRIMARY_TERM + ,null // TODO ); return engineIndex; case DELETE: From ca6283c22369041c8e617e83c49f009b4e178494 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Tue, 7 Oct 2025 11:17:43 +0530 Subject: [PATCH 027/112] add readme Signed-off-by: bharath-techie --- plugins/engine-datafusion/README.md | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 plugins/engine-datafusion/README.md diff --git a/plugins/engine-datafusion/README.md b/plugins/engine-datafusion/README.md new file mode 100644 index 0000000000000..bc4ad580df874 --- /dev/null +++ b/plugins/engine-datafusion/README.md @@ -0,0 +1,73 @@ + +## Prerequisites + +1. Publish OpenSearch to maven local +``` +./gradlew publishToMavenLocal +``` +2. Publish SQL plugin to maven local +``` +./gradlew publishToMavenLocal +``` +3. Run opensearch with following parameters +``` + ./gradlew run --preserve-data -PremotePlugins="['org.opensearch.plugin:opensearch-job-scheduler:3.3.0.0-SNAPSHOT', 'org.opensearch.plugin:opensearch-sql-plugin:3.3.0.0-SNAPSHOT']" -PinstalledPlugins="['engine-datafusion']" --debug-jvm +``` + + +## Steps to test indexing + search e2e + +TODO : need to remove hardcoded index name `index-7` + +1. Delete previous index if any +``` +curl --location --request DELETE 'localhost:9200/index-7' +``` + +2. Create index with name : `index-7` +``` +curl --location --request PUT 'http://localhost:9200/index-7' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "settings": { + "number_of_shards": 1, + "number_of_replicas": 0, + "refresh_interval": -1 + }, + "mappings": { + "properties": { + "message": { + "type": "long" + }, + "message2": { + "type": "long" + }, + "message3": { + "type": "long" + } + } + } +}' +``` +3. Index docs +``` +curl --location --request POST 'http://localhost:9200/_bulk' \ +--header 'Content-Type: application/json' \ +--data-raw '{"index":{"_index":"index-7"}} +{"message": 2,"message2": 3,"message3": 4} +{"index":{"_index":"index-7"}} +{"message": 3,"message2": 4,"message3": 5} +' +``` +4. Refresh the index +``` +curl localhost:9200/index-7/_refresh +``` +5. Query +``` +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "query": "source=index-7 | stats count(), min(message) as min, max(message2) as max" +}' +``` From 33fb888563caeeb2ce16703c84f2c2a0b715f351 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Wed, 8 Oct 2025 08:09:10 -0700 Subject: [PATCH 028/112] Added support for average metric aggregation (#19559) Signed-off-by: expani --- .../aggregations/metrics/AvgAggregator.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 5f99a9cc05558..2ad44cd33aa74 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -51,6 +51,7 @@ import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.support.ValuesSource; @@ -59,6 +60,8 @@ import org.opensearch.search.startree.StarTreeQueryHelper; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import static org.opensearch.search.startree.StarTreeQueryHelper.getStarTreeFilteredValues; @@ -69,7 +72,7 @@ * * @opensearch.internal */ -class AvgAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector { +class AvgAggregator extends NumericMetricsAggregator.SingleValue implements StarTreePreComputeCollector, ShardResultConvertor { final ValuesSource.Numeric valuesSource; @@ -275,4 +278,15 @@ public void collectStarTreeEntry(int starTreeEntryBit, long bucket) throws IOExc } }; } + + @Override + public List convert(Map shardResult) { + Object[] counts = shardResult.get(name + "_count"); + Object[] sums = shardResult.get(name + "_sum"); + List results = new ArrayList<>(counts.length); + for (int i = 0; i < counts.length; i++) { + results.add(new InternalAvg(name, (Long) counts[i], (Long) sums[i], format, metadata())); + } + return results; + } } From 3e074ddd70953f4776bcf3e2cca45f03c7ec9f30 Mon Sep 17 00:00:00 2001 From: Raghuvansh Raj Date: Mon, 13 Oct 2025 12:19:16 +0530 Subject: [PATCH 029/112] Fixing rust build for parquet-data-format (#19611) --- .gitignore | 2 ++ modules/parquet-data-format/build.gradle | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index e0255df35cbec..ad1e3cfdb0f9f 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,5 @@ doc-tools/missing-doclet/bin/ /modules/parquet-data-format/src/main/resources/native/ /modules/parquet-data-format/jni/target/debug +**/Cargo.lock +/modules/parquet-data-format/jni/ diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index 83e048eaab8c1..cf0b223a85cac 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -157,7 +157,7 @@ tasks.register('buildRust', Exec) { description = 'Build the Rust JNI library using Cargo' group = 'build' - workingDir file('src/main/rust') + workingDir = file("${projectDir}/src/main/rust") // Determine the target directory and library name based on OS def osName = System.getProperty('os.name').toLowerCase() @@ -166,7 +166,7 @@ tasks.register('buildRust', Exec) { // Use debug build for development, release for production def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' - def targetDir = "target/${buildType}" + def targetDir = file("${workingDir}/target/") // Find cargo executable - try common locations def cargoExecutable = 'cargo' @@ -184,9 +184,9 @@ tasks.register('buildRust', Exec) { } def cargoArgs = [cargoExecutable, 'build'] - if (buildType == 'release') { - cargoArgs.add('--release') - } +// if (buildType == 'release') { + cargoArgs.add('--release') +// } if (osName.contains('windows')) { commandLine cargoArgs @@ -195,10 +195,10 @@ tasks.register('buildRust', Exec) { } // Set environment variables for cross-compilation if needed - environment 'CARGO_TARGET_DIR', file('jni/target').absolutePath + environment 'CARGO_TARGET_DIR', targetDir.absolutePath - inputs.files fileTree('src/main/rust/src') - inputs.file 'src/main/rust/Cargo.toml' + inputs.files fileTree("${workingDir}/src") + inputs.file "${workingDir}/Cargo.toml" // outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_jni${libExtension}") // System.out.println("Building Rust library in ${buildType} mode"); From d80272f3b7b1926249f0c31ba7499a0aaea7fd89 Mon Sep 17 00:00:00 2001 From: Bharathwaj G Date: Mon, 13 Oct 2025 15:39:43 +0530 Subject: [PATCH 030/112] Commiter integration and build fixes (#19612) * Feature/datafusion 4 (#46) * Composite document writer pool initial implementation * Committer interface and lucene based commit engine implementation * Catalog snapshot changes to create segment view during commit --------- Co-authored-by: Shashank Gowri * fix build for commit integration Signed-off-by: bharath-techie --------- Signed-off-by: bharath-techie Co-authored-by: Shashank Gowri --- .gitignore | 1 + .idea/runConfigurations/Debug_OpenSearch.xml | 24 ++-- .../engine/ParquetExecutionEngine.java | 24 ++-- .../parquetdataformat/vsr/VSRManager.java | 19 +-- .../writer/ParquetWriter.java | 27 ++-- plugins/engine-datafusion/jni/src/util.rs | 11 +- .../datafusion/search/DatafusionReader.java | 13 +- server/build.gradle | 2 + .../index/engine/exec/FileInfos.java | 35 +++++ .../index/engine/exec/FileMetadata.java | 3 +- .../engine/exec/IndexingExecutionEngine.java | 4 +- .../index/engine/exec/RefreshInput.java | 12 +- .../index/engine/exec/RefreshResult.java | 16 ++- .../WriterPool.java => Reportable.java} | 6 +- .../opensearch/index/engine/exec/Writer.java | 6 +- .../index/engine/exec/WriterFileSet.java | 52 +++++++ .../index/engine/exec/commit/CommitPoint.java | 96 +++++++++++++ .../index/engine/exec/commit/Committer.java | 18 +++ .../exec/commit/LuceneCommitEngine.java | 70 ++++++++++ .../commit/LuceneIndexDeletionPolicy.java | 33 +++++ .../composite/CompositeDataFormatWriter.java | 127 ++++++++++++++---- .../CompositeIndexingExecutionEngine.java | 67 +++++---- .../engine/exec/coord/CatalogSnapshot.java | 57 ++++++-- .../coord/CompositeDataFormatWriterPool.java | 127 ++++++++++++++++++ .../engine/exec/coord/CompositeEngine.java | 57 ++++---- .../engine/exec/coord/DocumentWriterPool.java | 47 ------- .../engine/exec/coord/IndexingManager.java | 40 +++--- .../engine/exec/lucene/LuceneIEEngine.java | 21 ++- .../engine/exec/queue/ConcurrentQueue.java | 123 +++++++++++++++++ .../exec/queue/LockableConcurrentQueue.java | 54 ++++++++ .../index/engine/exec/text/TextEngine.java | 42 +++--- .../index/engine/exec/util/SetOnce.java | 73 ++++++++++ .../opensearch/index/shard/IndexShard.java | 18 +-- 33 files changed, 1051 insertions(+), 274 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java rename server/src/main/java/org/opensearch/index/engine/exec/{coord/WriterPool.java => Reportable.java} (67%) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/commit/CommitPoint.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneIndexDeletionPolicy.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java delete mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/queue/LockableConcurrentQueue.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/util/SetOnce.java diff --git a/.gitignore b/.gitignore index ad1e3cfdb0f9f..d5ae200e48db9 100644 --- a/.gitignore +++ b/.gitignore @@ -82,5 +82,6 @@ doc-tools/missing-doclet/bin/ /modules/parquet-data-format/src/main/resources/native/ /modules/parquet-data-format/jni/target/debug +/modules/parquet-data-format/jni/target/release **/Cargo.lock /modules/parquet-data-format/jni/ diff --git a/.idea/runConfigurations/Debug_OpenSearch.xml b/.idea/runConfigurations/Debug_OpenSearch.xml index fddcf47728460..c18046f873477 100644 --- a/.idea/runConfigurations/Debug_OpenSearch.xml +++ b/.idea/runConfigurations/Debug_OpenSearch.xml @@ -1,11 +1,15 @@ - - - + + + \ No newline at end of file diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 0068cd41e59fe..4778d21f51452 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -1,16 +1,20 @@ package com.parquet.parquetdataformat.engine; -import org.apache.arrow.vector.types.pojo.Schema; -import org.opensearch.index.engine.exec.*; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import com.parquet.parquetdataformat.writer.ParquetWriter; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.RefreshInput; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.shard.ShardPath; import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Supplier; import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; @@ -47,13 +51,11 @@ public class ParquetExecutionEngine implements IndexingExecutionEngine { public static final String FILE_NAME_PREFIX = "parquet_file_generation"; - AtomicInteger counter; - Supplier schema; - private final List filesWrittenAlready = new ArrayList<>(); + private final Supplier schema; + private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { - counter = new AtomicInteger(0); this.schema = schema; this.shardPath = shardPath; } @@ -64,15 +66,15 @@ public List supportedFieldTypes() { } @Override - public Writer createWriter() throws IOException { - String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + counter.getAndIncrement() + ".parquet").toString(); - return new ParquetWriter(fileName, schema.get()); + public Writer createWriter(long writerGeneration) throws IOException { + String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + writerGeneration + ".parquet").toString(); + return new ParquetWriter(fileName, schema.get(), writerGeneration); } @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { RefreshResult refreshResult = new RefreshResult(); - filesWrittenAlready.addAll(refreshInput.getFiles()); + filesWrittenAlready.addAll(refreshInput.getWriterFiles()); refreshResult.add(PARQUET_DATA_FORMAT, filesWrittenAlready); return refreshResult; } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java index 89ab076dc88ad..d7dfbde2948ba 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -8,25 +8,20 @@ package com.parquet.parquetdataformat.vsr; -import com.parquet.parquetdataformat.engine.ParquetDataFormat; +import com.parquet.parquetdataformat.bridge.ArrowExport; +import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; -import com.parquet.parquetdataformat.bridge.RustBridge; -import com.parquet.parquetdataformat.bridge.ArrowExport; -import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; +import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.WriteResult; import java.io.IOException; import java.util.HashMap; import java.util.Map; -import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.FlushIn; -import org.opensearch.index.engine.exec.WriteResult; - -import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; - /** * Manages VectorSchemaRoot lifecycle with integrated memory management and native call wrappers. * Provides a high-level interface for Parquet document operations using managed VSR abstractions. @@ -113,7 +108,7 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep } } - public FileMetadata flush(FlushIn flushIn) throws IOException { + public String flush(FlushIn flushIn) throws IOException { System.out.println("[JAVA] flush called, row count: " + managedVSR.getRowCount()); try { // Only flush if we have data @@ -136,7 +131,7 @@ public FileMetadata flush(FlushIn flushIn) throws IOException { } System.out.println("[JAVA] Successfully flushed data"); - return new FileMetadata(PARQUET_DATA_FORMAT, fileName); + return fileName; } catch (Exception e) { System.out.println("[JAVA] ERROR in flush: " + e.getMessage()); throw new IOException("Failed to flush data: " + e.getMessage(), e); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java index b17abdbafb45e..eec04ef35650a 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java @@ -1,14 +1,17 @@ package com.parquet.parquetdataformat.writer; import com.parquet.parquetdataformat.vsr.VSRManager; -import org.opensearch.index.engine.exec.FileMetadata; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; -import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.engine.exec.WriterFileSet; import java.io.IOException; -import java.util.Optional; +import java.nio.file.Path; + +import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; /** * Parquet file writer implementation that integrates with OpenSearch's Writer interface. @@ -33,11 +36,13 @@ public class ParquetWriter implements Writer { private final String file; private final Schema schema; private final VSRManager vsrManager; + private final long writerGeneration; - public ParquetWriter(String file, Schema schema) { + public ParquetWriter(String file, Schema schema, long writerGeneration) { this.file = file; this.schema = schema; this.vsrManager = new VSRManager(file, schema); + this.writerGeneration = writerGeneration; } @Override @@ -46,8 +51,13 @@ public WriteResult addDoc(ParquetDocumentInput d) throws IOException { } @Override - public FileMetadata flush(FlushIn flushIn) throws IOException { - return vsrManager.flush(flushIn); + public FileInfos flush(FlushIn flushIn) throws IOException { + String fileName = vsrManager.flush(flushIn); + FileInfos fileInfos = new FileInfos(); + WriterFileSet writerFileSet = new WriterFileSet(Path.of(fileName).getParent(), writerGeneration); + writerFileSet.add(fileName); + fileInfos.putWriterFileSet(PARQUET_DATA_FORMAT, writerFileSet); + return fileInfos; } @Override @@ -60,11 +70,6 @@ public void close() { vsrManager.close(); } - @Override - public Optional getMetadata() { - return Optional.empty(); - } - @Override public ParquetDocumentInput newDocumentInput() { // Get a new ManagedVSR from VSRManager for this document input diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index c536e7ba3ea09..1b6da12c49ede 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -160,7 +160,16 @@ pub fn throw_exception(env: &mut JNIEnv, message: &str) { pub fn create_object_meta_from_filenames(base_path: &str, filenames: Vec) -> Vec { filenames.into_iter().map(|filename| { let filename = filename.as_str(); - let full_path = format!("{}/{}", base_path.trim_end_matches('/'), filename); + + // Handle both full paths and relative filenames + let full_path = if filename.starts_with('/') || filename.contains(base_path) { + // Already a full path + filename.to_string() + } else { + // Just a filename, needs base_path + format!("{}/{}", base_path.trim_end_matches('/'), filename) + }; + let file_size = fs::metadata(&full_path).map(|m| m.len()).unwrap_or(0); let modified = fs::metadata(&full_path) .and_then(|m| m.modified()) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 7aa20c5f2aeb1..ec01a01b57720 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -9,14 +9,12 @@ package org.opensearch.datafusion.search; import org.opensearch.datafusion.DataFusionQueryJNI; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; import java.io.Closeable; import java.io.IOException; -import java.nio.file.Path; import java.util.Arrays; import java.util.Collection; -import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; @@ -32,7 +30,7 @@ public class DatafusionReader implements Closeable { /** * The file metadata collection. */ - public Collection files; + public Collection files; /** * The cache pointer. */ @@ -44,15 +42,16 @@ public class DatafusionReader implements Closeable { * @param directoryPath The directory path * @param files The file metadata collection */ - public DatafusionReader(String directoryPath, Collection files) { + public DatafusionReader(String directoryPath, Collection files) { this.directoryPath = directoryPath; this.files = files; String[] fileNames = new String[0]; if(files != null) { System.out.println("Got the files!!!!!"); - fileNames = files.stream().map(file -> Path.of(file.fileName()).getFileName().toString()).toArray(String[]::new); + fileNames = files.stream() + .flatMap(writerFileSet -> writerFileSet.getFiles().stream()) + .toArray(String[]::new); } - //String[] fileNames = files.stream().map(file -> Path.of(file.fileName()).getFileName().toString()).toArray(String[]::new); System.out.println("File names: " + Arrays.toString(fileNames)); System.out.println("Directory path: " + directoryPath); diff --git a/server/build.gradle b/server/build.gradle index a70fe49ec6365..917d44aec4664 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -78,6 +78,8 @@ dependencies { compileOnly project(':libs:opensearch-plugin-classloader') testRuntimeOnly project(':libs:opensearch-plugin-classloader') + implementation 'org.apache.commons:commons-lang3:3.17.0' + api libs.bundles.lucene // utilities diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java b/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java new file mode 100644 index 0000000000000..436df520fd67b --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +public final class FileInfos { + + private final Map writerFilesMap; + + public FileInfos() { + this.writerFilesMap = new HashMap<>(); + } + + public Map getWriterFilesMap() { + return Collections.unmodifiableMap(writerFilesMap); + } + + public void putWriterFileSet(DataFormat format, WriterFileSet writerFileSet) { + writerFilesMap.put(format, writerFileSet); + } + + public Optional getWriterFileSet(DataFormat format) { + return Optional.ofNullable(writerFilesMap.get(format)); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java index 61341ca5b378a..41efd124fa437 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java @@ -8,4 +8,5 @@ package org.opensearch.index.engine.exec; -public record FileMetadata(DataFormat df, String fileName) { } +public record FileMetadata(String directory, String file) { +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 9d7855bf21889..2c3f63fcf0da2 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -16,9 +16,11 @@ import java.util.Map; public interface IndexingExecutionEngine { + List supportedFieldTypes(); - Writer> createWriter() throws IOException; // A writer responsible for data format vended by this engine. + Writer> createWriter(long writerGeneration) + throws IOException; // A writer responsible for data format vended by this engine. RefreshResult refresh(RefreshInput refreshInput) throws IOException; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java index 50da23bafd6e1..135df6f0855fa 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java @@ -13,17 +13,17 @@ public class RefreshInput { - private List files; + private final List writerFiles; public RefreshInput() { - this.files = new ArrayList<>(); + this.writerFiles = new ArrayList<>(); } - public void add(FileMetadata fileMetadata) { - this.files.add(fileMetadata); + public void add(WriterFileSet writerFileSetGroup) { + this.writerFiles.add(writerFileSetGroup); } - public List getFiles() { - return files; + public List getWriterFiles() { + return writerFiles; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java index a9bb34ef3aada..8357529d7acc7 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java @@ -9,22 +9,28 @@ package org.opensearch.index.engine.exec; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class RefreshResult { - private Map> refreshedFiles = new HashMap<>(); + + private final Map> refreshedFiles; public RefreshResult() { + this.refreshedFiles = new HashMap<>(); + } + public void add(DataFormat df, List writerFiles) { + writerFiles.forEach(writerFileSet -> refreshedFiles.computeIfAbsent(df, dataFormat -> new ArrayList<>()).add(writerFileSet)); } - public void add(DataFormat df, List fileMetadata) { - refreshedFiles.computeIfAbsent(df, ddf -> new ArrayList<>()).addAll(fileMetadata); + public List getRefreshedFiles(DataFormat dataFormat) { + return Collections.unmodifiableList(refreshedFiles.get(dataFormat)); } - public Map> getRefreshedFiles() { - return refreshedFiles; + public Map> getRefreshedFiles() { + return Map.copyOf(refreshedFiles); } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/Reportable.java similarity index 67% rename from server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java rename to server/src/main/java/org/opensearch/index/engine/exec/Reportable.java index 7373ca1fdc42f..620539c877c76 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/WriterPool.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/Reportable.java @@ -6,7 +6,9 @@ * compatible open source license. */ -package org.opensearch.index.engine.exec.coord; +package org.opensearch.index.engine.exec; -public class WriterPool { +public interface Reportable { + + long ramBytesUsed(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Writer.java b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java index bb0cf3e98b599..d0ad4d35b3fc2 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/Writer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/Writer.java @@ -9,18 +9,16 @@ package org.opensearch.index.engine.exec; import java.io.IOException; -import java.util.Optional; public interface Writer

> { + WriteResult addDoc(P d) throws IOException; - FileMetadata flush(FlushIn flushIn) throws IOException; + FileInfos flush(FlushIn flushIn) throws IOException; void sync() throws IOException; void close(); - Optional getMetadata(); - P newDocumentInput(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java new file mode 100644 index 0000000000000..9ab00b4753d74 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -0,0 +1,52 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.io.Serializable; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; + +public class WriterFileSet implements Serializable { + + private final String directory; + private final long writerGeneration; + private final Set files; + + public WriterFileSet(Path directory, long writerGeneration) { + this.files = new HashSet<>(); + this.writerGeneration = writerGeneration; + this.directory = directory.toString(); + } + + public void add(String file) { + this.files.add(file); + } + + public Set getFiles() { + return files; + } + + public String getDirectory() { + return directory; + } + + public long getWriterGeneration() { + return writerGeneration; + } + + @Override + public String toString() { + return "WriterFileSet{" + + "directory=" + directory + + ", writerGeneration=" + writerGeneration + + ", files=" + files + + '}'; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/CommitPoint.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/CommitPoint.java new file mode 100644 index 0000000000000..b3791660206d2 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/CommitPoint.java @@ -0,0 +1,96 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.commit; + +import java.nio.file.Path; +import java.util.Collection; +import java.util.Map; + +public final class CommitPoint { + + private final String commitFileName; + private final long generation; + private final Collection fileNames; + private final Path directory; + private final Map commitData; + + private CommitPoint(Builder builder) { + this.commitFileName = builder.commitFileName; + this.generation = builder.generation; + this.fileNames = builder.fileNames; + this.directory = builder.directory; + this.commitData = builder.commitData; + } + + public String getCommitFileName() { + return commitFileName; + } + + public long getGeneration() { + return generation; + } + + public Collection getFileNames() { + return fileNames; + } + + public Path getDirectory() { + return directory; + } + + public Map getCommitData() { + return commitData; + } + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + + private String commitFileName; + private long generation; + private Collection fileNames; + private Path directory; + private Map commitData; + + private Builder() { + } + + public Builder commitFileName(String commitFileName) { + this.commitFileName = commitFileName; + return this; + } + + public Builder generation(long generation) { + this.generation = generation; + return this; + } + + public Builder fileNames(Collection fileNames) { + this.fileNames = fileNames; + return this; + } + + public Builder directory(Path directory) { + this.directory = directory; + return this; + } + + public Builder commitData(Map commitData) { + this.commitData = commitData; + return this; + } + + public CommitPoint build() { + return new CommitPoint(this); + } + } + +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java new file mode 100644 index 0000000000000..8c56bd6c8c983 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.commit; + +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + +public interface Committer { + + void addLuceneIndexes(CatalogSnapshot catalogSnapshot); + + CommitPoint commit(CatalogSnapshot catalogSnapshot); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java new file mode 100644 index 0000000000000..6a09850fdbfbb --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -0,0 +1,70 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.commit; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang3.SerializationUtils; +import org.apache.lucene.index.IndexCommit; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.store.Directory; +import org.apache.lucene.store.NIOFSDirectory; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + +public class LuceneCommitEngine implements Committer { + + private final IndexWriter indexWriter; + private final LuceneIndexDeletionPolicy indexDeletionPolicy; + + public LuceneCommitEngine(Path commitPath) throws IOException { + Directory directory = new NIOFSDirectory(commitPath); + indexDeletionPolicy = new LuceneIndexDeletionPolicy(); + IndexWriterConfig indexWriterConfig = new IndexWriterConfig(); + indexWriterConfig.setIndexDeletionPolicy(indexDeletionPolicy); + this.indexWriter = new IndexWriter(directory, indexWriterConfig); + } + + @Override + public void addLuceneIndexes(CatalogSnapshot catalogSnapshot) { + Collection luceneFileCollection = catalogSnapshot.getSearchableFiles(DataFormat.LUCENE.name()); + luceneFileCollection.forEach(writerFileSet -> { + try { + indexWriter.addIndexes(new NIOFSDirectory(Path.of(writerFileSet.getDirectory()))); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + Map userData = new HashMap<>(); + catalogSnapshot.getSegments().forEach(segment -> userData.put(String.valueOf(segment.getGeneration()), + new String(SerializationUtils.serialize(segment)))); + indexWriter.setLiveCommitData(userData.entrySet()); + } + + @Override + public CommitPoint commit(CatalogSnapshot catalogSnapshot) { + addLuceneIndexes(catalogSnapshot); + try { + indexWriter.commit(); + IndexCommit indexCommit = indexDeletionPolicy.getLatestIndexCommit(); + return CommitPoint.builder().commitFileName(indexCommit.getSegmentsFileName()) + .fileNames(indexCommit.getFileNames()).commitData(indexCommit.getUserData()) + .generation(indexCommit.getGeneration()) + .directory(Path.of(indexCommit.getSegmentsFileName()).getParent()).build(); + } catch (IOException e) { + throw new RuntimeException("lucene commit engine failed", e); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneIndexDeletionPolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneIndexDeletionPolicy.java new file mode 100644 index 0000000000000..5a6d14d74a191 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneIndexDeletionPolicy.java @@ -0,0 +1,33 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.commit; + +import java.io.IOException; +import java.util.List; +import org.apache.lucene.index.IndexCommit; +import org.apache.lucene.index.IndexDeletionPolicy; + +public final class LuceneIndexDeletionPolicy extends IndexDeletionPolicy { + + private IndexCommit latestIndexCommit; + + @Override + public void onInit(List commits) throws IOException { + + } + + @Override + public void onCommit(List commits) throws IOException { + latestIndexCommit = commits.getLast(); + } + + public IndexCommit getLatestIndexCommit() { + return latestIndexCommit; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index d7306511b4139..58a224d0fe9ae 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -8,9 +8,12 @@ package org.opensearch.index.engine.exec.composite; -import org.opensearch.common.annotation.ExperimentalApi; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.lucene.util.SetOnce; +import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FileInfos; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; @@ -20,22 +23,38 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; -public class CompositeDataFormatWriter implements Writer { - - List> writers = new ArrayList<>(); - Runnable postWrite; - - public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine) { - engine.delegates.forEach(delegate -> { +public class CompositeDataFormatWriter implements Writer, Lock { + + private final List>>> writers; + private final Runnable postWrite; + private final ReentrantLock lock; + private final SetOnce flushPending = new SetOnce<>(); + private final SetOnce hasFlushed = new SetOnce<>(); + private final long writerGeneration; + private boolean aborted; + + public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, + long writerGeneration) { + this.writers = new ArrayList<>(); + this.lock = new ReentrantLock(); + this.aborted = false; + this.writerGeneration = writerGeneration; + engine.getDelegates().forEach(delegate -> { try { - writers.add(delegate.createWriter()); + writers.add(ImmutablePair.of(delegate.getDataFormat(), delegate.createWriter(writerGeneration))); } catch (IOException e) { throw new RuntimeException(e); } }); - this.postWrite = () -> engine.pool.offer(this); + this.postWrite = () -> { + engine.getDataFormatWriterPool().releaseAndUnlock(this); + }; } @Override @@ -44,12 +63,16 @@ public WriteResult addDoc(CompositeDocumentInput d) throws IOException { } @Override - public FileMetadata flush(FlushIn flushIn) throws IOException { - FileMetadata metadata = null; - for (Writer writer : writers) { - metadata = writer.flush(flushIn); + public FileInfos flush(FlushIn flushIn) throws IOException { + FileInfos fileInfos = new FileInfos(); + for (ImmutablePair>> writerPair : writers) { + Optional fileMetadataOptional = writerPair.getRight().flush(flushIn) + .getWriterFileSet(writerPair.getLeft()); + fileMetadataOptional.ifPresent( + fileMetadata -> fileInfos.putWriterFileSet(writerPair.getLeft(), fileMetadata)); } - return metadata; // todo: model meta in a way that it can handle multiple writers. + hasFlushed.set(true); + return fileInfos; } @Override @@ -63,26 +86,77 @@ public void close() { } @Override - public Optional getMetadata() { - return Optional.empty(); + public CompositeDocumentInput newDocumentInput() { + return new CompositeDocumentInput( + writers.stream().map(ImmutablePair::getRight).map(Writer::newDocumentInput).collect(Collectors.toList()), + this, postWrite); + } + + void abort() throws IOException { + aborted = true; + } + + public void setFlushPending() { + flushPending.set(Boolean.TRUE); + } + + public boolean hasFlushed() { + return hasFlushed.get() == Boolean.TRUE; + } + + public boolean isFlushPending() { + return flushPending.get() == Boolean.TRUE; + } + + public boolean isAborted() { + return aborted; } @Override - public CompositeDocumentInput newDocumentInput() { - List> documentInputs = new ArrayList<>(); - return new CompositeDocumentInput(writers.stream().map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); + public void lock() { + lock.lock(); + } + + @Override + public void lockInterruptibly() throws InterruptedException { + lock.lockInterruptibly(); + } + + @Override + public boolean tryLock() { + return lock.tryLock(); + } + + @Override + public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { + return lock.tryLock(time, unit); + } + + @Override + public void unlock() { + lock.unlock(); + } + + boolean isHeldByCurrentThread() { + return lock.isHeldByCurrentThread(); + } + + @Override + public Condition newCondition() { + throw new UnsupportedOperationException(); } - @ExperimentalApi public static class CompositeDocumentInput implements DocumentInput>> { + List> inputs; CompositeDataFormatWriter writer; - Runnable postWrite; + Runnable onClose; - public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable postWrite) { + public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, + Runnable onClose) { this.inputs = inputs; this.writer = writer; - this.postWrite = postWrite; + this.onClose = onClose; } @Override @@ -103,13 +177,12 @@ public WriteResult addToWriter() throws IOException { for (DocumentInput input : inputs) { writeResult = input.addToWriter(); } - postWrite.run(); return writeResult; } @Override public void close() throws Exception { - postWrite.run(); + onClose.run(); } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 0a3be8f571a2d..cd45d24432553 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -8,14 +8,17 @@ package org.opensearch.index.engine.exec.composite; +import java.util.Collections; +import java.util.concurrent.atomic.AtomicLong; + import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.IndexingExecutionEngine; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.engine.exec.coord.Any; -import org.opensearch.index.engine.exec.coord.DocumentWriterPool; +import org.opensearch.index.engine.exec.coord.CompositeDataFormatWriterPool; import org.opensearch.index.engine.exec.text.TextEngine; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.shard.ShardPath; @@ -27,41 +30,39 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentLinkedQueue; public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { - final DocumentWriterPool pool; + private final CompositeDataFormatWriterPool dataFormatWriterPool; private DataFormat dataFormat; - public final List> delegates = new ArrayList<>(); + private final AtomicLong writerGeneration; + private final List> delegates = new ArrayList<>(); - public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, Any dataformat, ShardPath shardPath) { + public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, Any dataformat, ShardPath shardPath, long initialWriterGeneration) { this.dataFormat = dataformat; + this.writerGeneration = new AtomicLong(initialWriterGeneration); try { for (DataFormat dataFormat : dataformat.getDataFormats()) { - - DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() - .filter(curr -> curr.getDataFormat().equals(dataFormat.name())) - .findFirst() - .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream().filter(curr -> curr.getDataFormat().equals(dataFormat)).findFirst().orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); delegates.add(plugin.indexingEngine(mapperService, shardPath)); } } catch (NullPointerException e) { // my own testing delegates.add(new TextEngine()); } - this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); + this.dataFormatWriterPool = new CompositeDataFormatWriterPool(() -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), ConcurrentLinkedQueue::new, Runtime.getRuntime().availableProcessors()); } - public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) { - try { - DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream() - .findAny() - .orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); - delegates.add(plugin.indexingEngine(mapperService, shardPath)); - } catch (NullPointerException e) { - delegates.add(new TextEngine()); - } - this.pool = new DocumentWriterPool(() -> new CompositeDataFormatWriter(this)); + public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath, long initialWriterGeneration) { + this.writerGeneration = new AtomicLong(initialWriterGeneration); + try { + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream().findAny().orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); + delegates.add(plugin.indexingEngine(mapperService, shardPath)); + } catch (NullPointerException e) { + delegates.add(new TextEngine()); + } + this.dataFormatWriterPool = new CompositeDataFormatWriterPool(() -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), ConcurrentLinkedQueue::new, Runtime.getRuntime().availableProcessors()); } @Override @@ -75,8 +76,12 @@ public List supportedFieldTypes() { } @Override - public Writer createWriter() throws IOException { - return pool.fetchWriter(); + public Writer createWriter(long generation) throws IOException { + throw new UnsupportedOperationException(); + } + + public Writer createCompositeWriter() { + return dataFormatWriterPool.getAndLock(); } @Override @@ -84,12 +89,12 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { RefreshResult finalResult = new RefreshResult(); Map refreshInputs = new HashMap<>(); try { - List dataFormatWriters = pool.freeAll(); + List dataFormatWriters = dataFormatWriterPool.checkoutAll(); // flush to disk for (CompositeDataFormatWriter dataFormatWriter : dataFormatWriters) { - FileMetadata metadata = dataFormatWriter.flush(null); - refreshInputs.computeIfAbsent(metadata.df(), df -> new RefreshInput()).add(metadata); + FileInfos fileInfos = dataFormatWriter.flush(null); + fileInfos.getWriterFilesMap().forEach((key, value) -> refreshInputs.computeIfAbsent(key, dataFormat -> new RefreshInput()).add(value)); } if (refreshInputs.isEmpty()) { @@ -101,7 +106,7 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { RefreshInput refreshInput = refreshInputs.get(delegate.getDataFormat()); if (refreshInput != null) { RefreshResult result = delegate.refresh(refreshInput); - finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles().get(delegate.getDataFormat())); + finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles(delegate.getDataFormat())); } } @@ -111,4 +116,12 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { throw new RuntimeException(ex); } } + + public List> getDelegates() { + return Collections.unmodifiableList(delegates); + } + + public CompositeDataFormatWriterPool getDataFormatWriterPool() { + return dataFormatWriterPool; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index f8915cfaf14cd..680f325d84a69 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -10,30 +10,42 @@ import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.util.concurrent.AbstractRefCounted; -import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriterFileSet; +import java.io.Serializable; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted { - private Map> dfGroupedSearchableFiles = new HashMap<>(); private final long id; - + private final Map> dfGroupedSearchableFiles; public CatalogSnapshot(RefreshResult refreshResult, long id) { super("catalog_snapshot"); - refreshResult.getRefreshedFiles().forEach((df, files) -> { - dfGroupedSearchableFiles.put(df.name(), files); - }); this.id = id; + this.dfGroupedSearchableFiles = new HashMap<>(); + refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles)); + } + + public Collection getSearchableFiles(String dataFormat) { + if (dfGroupedSearchableFiles.containsKey(dataFormat)) { + return dfGroupedSearchableFiles.get(dataFormat); + } + return Collections.emptyList(); } - public Collection getSearchableFiles(String df) { - return dfGroupedSearchableFiles.get(df); + public Collection getSegments() { + Map segmentMap = new HashMap<>(); + dfGroupedSearchableFiles.forEach((dataFormat, writerFileSets) -> writerFileSets.forEach(writerFileSet -> { + Segment segment = segmentMap.computeIfAbsent(writerFileSet.getWriterGeneration(), Segment::new); + segment.addSearchableFiles(dataFormat, writerFileSet); + })); + return Collections.unmodifiableCollection(segmentMap.values()); } @Override @@ -41,7 +53,6 @@ protected void closeInternal() { // notify to file deleter, search, etc } - public long getId() { return id; } @@ -49,8 +60,32 @@ public long getId() { @Override public String toString() { return "CatalogSnapshot{" + - "dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + - ", id=" + id + + "id=" + id + + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; } + + public static class Segment implements Serializable { + + private final long generation; + private final Map dfGroupedSearchableFiles; + + public Segment(long generation) { + this.dfGroupedSearchableFiles = new HashMap<>(); + this.generation = generation; + } + + public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGroup) { + dfGroupedSearchableFiles.put(dataFormat, writerFileSetGroup); + } + + public long getGeneration() { + return generation; + } + + @Override + public String toString() { + return "Segment{" + "generation=" + generation + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; + } + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java new file mode 100644 index 0000000000000..2934b4b4b50fc --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java @@ -0,0 +1,127 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; +import org.opensearch.index.engine.exec.queue.LockableConcurrentQueue; + +import java.io.Closeable; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; +import java.util.Queue; +import java.util.Set; +import java.util.function.Supplier; + +public class CompositeDataFormatWriterPool implements Iterable, Closeable { + + private final Set writers; + private final LockableConcurrentQueue availableWriters; + private final Supplier writerSupplier; + private volatile boolean closed; + + public CompositeDataFormatWriterPool( + Supplier writerSupplier, + Supplier> queueSupplier, + int concurrency + ) { + this.writers = Collections.newSetFromMap(new IdentityHashMap<>()); + this.writerSupplier = writerSupplier; + this.availableWriters = new LockableConcurrentQueue<>(queueSupplier, concurrency); + } + + /** + * This method is used by CompositeIndexingExecutionEngine to grab a writer from the pool to perform an indexing + * operation. + * + * @return a pooled CompositeDataFormatWriter if available, or a newly created instance if none are available + */ + public CompositeDataFormatWriter getAndLock() { + ensureOpen(); + CompositeDataFormatWriter compositeDataFormatWriter = availableWriters.lockAndPoll(); + return Objects.requireNonNullElseGet(compositeDataFormatWriter, this::fetchWriter); + } + + /** + * Create a new {@link CompositeDataFormatWriter} to be added to this pool. + * + * @return a new instance of {@link CompositeDataFormatWriter} + */ + private synchronized CompositeDataFormatWriter fetchWriter() { + ensureOpen(); + CompositeDataFormatWriter compositeDataFormatWriter = writerSupplier.get(); + compositeDataFormatWriter.lock(); + writers.add(compositeDataFormatWriter); + return compositeDataFormatWriter; + } + + /** + * Release the given {@link CompositeDataFormatWriter} to this pool for reuse if it is currently managed by this + * pool. + * + * @param state {@link CompositeDataFormatWriter} to release to the pool. + */ + public void releaseAndUnlock(CompositeDataFormatWriter state) { + assert + !state.isFlushPending() && !state.isAborted() : + "CompositeDataFormatWriter has pending flush: " + state.isFlushPending() + " aborted=" + state.isAborted(); + assert isRegistered(state) : "CompositeDocumentWriterPool doesn't know about this CompositeDataFormatWriter"; + availableWriters.addAndUnlock(state); + } + + /** + * Lock and checkout all CompositeDataFormatWriters from the pool for flush. + * + * @return Unmodifiable list of all CompositeDataFormatWriters locked by current thread. + */ + public synchronized List checkoutAll() { + List checkedOutWriters = new ArrayList<>(); + for (CompositeDataFormatWriter compositeDataFormatWriter : this) { + compositeDataFormatWriter.lock(); + if (isRegistered(compositeDataFormatWriter) && writers.remove(compositeDataFormatWriter)) { + availableWriters.remove(compositeDataFormatWriter); + checkedOutWriters.add(compositeDataFormatWriter); + } else { + compositeDataFormatWriter.unlock(); + } + } + return Collections.unmodifiableList(checkedOutWriters); + } + + /** + * Check if {@link CompositeDataFormatWriter} is part of this pool. + * + * @param perThread {@link CompositeDataFormatWriter} to validate. + * @return true if {@link CompositeDataFormatWriter} is part of this pool, false otherwise. + */ + synchronized boolean isRegistered(CompositeDataFormatWriter perThread) { + return writers.contains(perThread); + } + + private void ensureOpen() { + if (closed) { + throw new AlreadyClosedException("CompositeDocumentWriterPool is already closed"); + } + } + + @Override + public synchronized Iterator iterator() { + return List.copyOf(writers).iterator(); + } + + @Override + public void close() throws IOException { + this.closed = true; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 2a8e26caab7ab..1329d7879d1d0 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -8,10 +8,8 @@ package org.opensearch.index.engine.exec.coord; -import org.opensearch.common.annotation.ExperimentalApi; - - import org.apache.lucene.search.ReferenceManager; +import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; @@ -22,6 +20,8 @@ import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.engine.exec.commit.Committer; +import org.opensearch.index.engine.exec.commit.LuceneCommitEngine; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; @@ -29,11 +29,13 @@ import org.opensearch.index.shard.ShardPath; import org.opensearch.index.translog.Translog; import org.opensearch.index.translog.TranslogManager; -import org.opensearch.plugins.SearchEnginePlugin; import org.opensearch.plugins.PluginsService; +import org.opensearch.plugins.SearchEnginePlugin; import java.io.Closeable; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -44,27 +46,30 @@ public class CompositeEngine implements Indexer { private final CompositeIndexingExecutionEngine engine; - private List refreshListeners = new ArrayList<>(); + private final Committer compositeEngineCommitter; + private final List refreshListeners = new ArrayList<>(); private CatalogSnapshot catalogSnapshot; - private List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); - private Map>> readEngines = new HashMap<>(); + private final List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); + private final Map>> readEngines = new HashMap<>(); public CompositeEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used - this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath); + this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath, 0); + Path committerPath = Files.createTempDirectory("lucene-committer-index"); + this.compositeEngineCommitter = new LuceneCommitEngine(committerPath); // Refresh here so that catalog snapshot gets initialized // TODO : any better way to do this ? refresh("start"); // TODO : how to extend this for Lucene ? where engine is a r/w engine // Create read specific engines for each format which is associated with shard - for(SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { - for(org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { + for (SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { + for (org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); - SearchExecEngine newSearchEngine = searchEnginePlugin.createEngine(dataFormat, - Collections.emptyList(), - shardPath); + SearchExecEngine newSearchEngine = searchEnginePlugin.createEngine(dataFormat, + Collections.emptyList(), + shardPath); currentSearchEngines.add(newSearchEngine); readEngines.put(dataFormat, currentSearchEngines); @@ -75,28 +80,28 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger // - if(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { + if (newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { catalogSnapshotAwareRefreshListeners.add(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); } } } } - public SearchExecEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { + public SearchExecEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { return readEngines.getOrDefault(dataFormat, new ArrayList<>()).getFirst(); } - public SearchExecEngine getPrimaryReadEngine() { + public SearchExecEngine getPrimaryReadEngine() { // Return the first available ReadEngine as primary return readEngines.values().stream() - .filter(list -> !list.isEmpty()) - .findFirst() - .map(list -> list.getFirst()) - .orElse(null); + .filter(list -> !list.isEmpty()) + .findFirst() + .map(List::getFirst) + .orElse(null); } public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { - return engine.createWriter().newDocumentInput(); + return engine.createCompositeWriter().newDocumentInput(); } public Engine.IndexResult index(Engine.Index index) throws IOException { @@ -105,7 +110,6 @@ public Engine.IndexResult index(Engine.Index index) throws IOException { return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); } - public synchronized void refresh(String source) throws EngineException { refreshListeners.forEach(ref -> { try { @@ -115,12 +119,11 @@ public synchronized void refresh(String source) throws EngineException { } }); - long id = 0L; if (catalogSnapshot != null) { id = catalogSnapshot.getId(); } - CatalogSnapshot newCatSnap = null; + CatalogSnapshot newCatSnap; try { RefreshResult refreshResult = engine.refresh(new RefreshInput()); if (refreshResult == null) { @@ -137,6 +140,7 @@ public synchronized void refresh(String source) throws EngineException { catalogSnapshot.decRef(); } catalogSnapshot = newCatSnap; + compositeEngineCommitter.addLuceneIndexes(catalogSnapshot); catalogSnapshotAwareRefreshListeners.forEach(ref -> { try { @@ -171,10 +175,9 @@ public void close() throws Exception { }; } - - @ExperimentalApi public static abstract class ReleasableRef implements AutoCloseable { + private T t; public ReleasableRef(T t) { @@ -271,7 +274,7 @@ public void writeIndexingBuffer() throws EngineException { @Override public void flush(boolean force, boolean waitIfOngoing) throws EngineException { - + compositeEngineCommitter.commit(catalogSnapshot); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java deleted file mode 100644 index 61c1f49da7f3f..0000000000000 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/DocumentWriterPool.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.coord; - -import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; - -import java.util.ArrayList; -import java.util.List; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedDeque; -import java.util.function.Supplier; - -public class DocumentWriterPool { - - private Queue writers = new ConcurrentLinkedDeque<>(); - private final Supplier writerSupplier; - - public DocumentWriterPool(Supplier writerSupplier) { - this.writerSupplier = writerSupplier; - } - - // non concurrent - public CompositeDataFormatWriter fetchWriter() { - if (writers.isEmpty()) { - writers.add(writerSupplier.get()); - } - return writers.poll(); - } - - public void offer(CompositeDataFormatWriter writer) { - writers.add(writer); - } - - public List freeAll() { - List freeWriters = new ArrayList<>(); - while (!writers.isEmpty()) { - freeWriters.add(writers.poll()); - } - return freeWriters; - } -} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java index ae4d2ba84e5b6..3e6a751caef2a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java @@ -8,43 +8,48 @@ package org.opensearch.index.engine.exec.coord; - +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.commit.Committer; +import org.opensearch.index.engine.exec.commit.LuceneCommitEngine; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class IndexingManager { //Internal Engine +public class IndexingManager { private final CompositeIndexingExecutionEngine engine; - private List refreshListeners = new ArrayList<>(); + private final List refreshListeners = new ArrayList<>(); + private final Committer committer; private CatalogSnapshot catalogSnapshot; - public IndexingManager(MapperService mapperService/*, EngineConfig engineConfig*/) { - this.engine = new CompositeIndexingExecutionEngine(mapperService, null, new Any(List.of(DataFormat.TEXT)), null); + public IndexingManager(Path indexPath, MapperService mapperService/*, EngineConfig engineConfig*/) + throws IOException { + this.engine = new CompositeIndexingExecutionEngine(mapperService, null, new Any(List.of(DataFormat.TEXT)), null, + 0); + this.committer = new LuceneCommitEngine(indexPath); } public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { - return engine.createWriter().newDocumentInput(); + return engine.createCompositeWriter().newDocumentInput(); } public Engine.IndexResult index(Engine.Index index) throws Exception { WriteResult writeResult = index.documentInput.addToWriter(); // translog, checkpoint, other checks - return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); + return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), + writeResult.success()); } - public synchronized void refresh(String source) throws EngineException, IOException { refreshListeners.forEach(ref -> { try { @@ -54,7 +59,6 @@ public synchronized void refresh(String source) throws EngineException, IOExcept } }); - long id = 0L; if (catalogSnapshot != null) { id = catalogSnapshot.getId(); @@ -80,7 +84,7 @@ public synchronized void refresh(String source) throws EngineException, IOExcept // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers public ReleasableRef acquireSnapshot() { catalogSnapshot.incRef(); // this should be package-private - return new ReleasableRef(catalogSnapshot) { + return new ReleasableRef<>(catalogSnapshot) { @Override public void close() throws Exception { catalogSnapshot.decRef(); // this should be package-private @@ -88,10 +92,9 @@ public void close() throws Exception { }; } - - public static abstract class ReleasableRef implements AutoCloseable { - private T t; + + private final T t; public ReleasableRef(T t) { this.t = t; @@ -103,7 +106,8 @@ public T getRef() { } public static void main(String[] args) throws Exception { - IndexingManager coordinator = new IndexingManager(null); + IndexingManager coordinator = new IndexingManager( + Path.of("/Users/shnkgo/Downloads/mustang/lucene-committer-index/"), null); for (int i = 0; i < 5; i++) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index b7084d270079d..8afdc4f9901d4 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -13,7 +13,7 @@ import org.opensearch.index.engine.InternalEngine; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.IndexingExecutionEngine; import org.opensearch.index.engine.exec.RefreshInput; @@ -26,7 +26,6 @@ import java.io.IOException; import java.util.List; -import java.util.Optional; public class LuceneIEEngine implements IndexingExecutionEngine { @@ -41,9 +40,10 @@ public List supportedFieldTypes() { return List.of(); } + @Override - public Writer> createWriter() throws IOException { - return new LuceneWriter(internalEngine.indexWriter); + public Writer> createWriter(long writerGeneration) throws IOException { + return new LuceneWriter(internalEngine.indexWriter, writerGeneration); } @Override @@ -92,10 +92,12 @@ public void close() throws Exception { public static class LuceneWriter implements Writer { - private IndexWriter writer; + private final IndexWriter writer; + private final long writerGeneration; - public LuceneWriter(IndexWriter writer) { + public LuceneWriter(IndexWriter writer, long writerGeneration) { this.writer = writer; + this.writerGeneration = writerGeneration; } @Override @@ -105,7 +107,7 @@ public WriteResult addDoc(LuceneDocumentInput d) throws IOException { } @Override - public FileMetadata flush(FlushIn flushIn) throws IOException { + public FileInfos flush(FlushIn flushIn) throws IOException { writer.flush(); return null; } @@ -120,11 +122,6 @@ public void close() { // no-op } - @Override - public Optional getMetadata() { - return Optional.empty(); - } - @Override public LuceneDocumentInput newDocumentInput() { return new LuceneDocumentInput(new ParseContext.Document(), writer); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java b/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java new file mode 100644 index 0000000000000..9b8b774063a87 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java @@ -0,0 +1,123 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.queue; + +import java.util.Queue; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Predicate; +import java.util.function.Supplier; + +public final class ConcurrentQueue { + + static final int MIN_CONCURRENCY = 1; + static final int MAX_CONCURRENCY = 256; + + private final int concurrency; + private final Lock[] locks; + private final Queue[] queues; + private final Supplier> queueSupplier; + + ConcurrentQueue(Supplier> queueSupplier, int concurrency) { + if (concurrency < MIN_CONCURRENCY || concurrency > MAX_CONCURRENCY) { + throw new IllegalArgumentException( + "concurrency must be in [" + MIN_CONCURRENCY + ", " + MAX_CONCURRENCY + "], got " + concurrency); + } + this.concurrency = concurrency; + this.queueSupplier = queueSupplier; + locks = new Lock[concurrency]; + @SuppressWarnings({"rawtypes", "unchecked"}) Queue[] queues = new Queue[concurrency]; + this.queues = queues; + for (int i = 0; i < concurrency; ++i) { + locks[i] = new ReentrantLock(); + queues[i] = queueSupplier.get(); + } + } + + void add(T entry) { + // Seed the order in which to look at entries based on the current thread. This helps distribute + // entries across queues and gives a bit of thread affinity between entries and threads, which + // can't hurt. + final int threadHash = Thread.currentThread().hashCode() & 0xFFFF; + for (int i = 0; i < concurrency; ++i) { + final int index = (threadHash + i) % concurrency; + final Lock lock = locks[index]; + final Queue queue = queues[index]; + if (lock.tryLock()) { + try { + queue.add(entry); + return; + } finally { + lock.unlock(); + } + } + } + final int index = threadHash % concurrency; + final Lock lock = locks[index]; + final Queue queue = queues[index]; + lock.lock(); + try { + queue.add(entry); + } finally { + lock.unlock(); + } + } + + T poll(Predicate predicate) { + final int threadHash = Thread.currentThread().hashCode() & 0xFFFF; + for (int i = 0; i < concurrency; ++i) { + final int index = (threadHash + i) % concurrency; + final Lock lock = locks[index]; + final Queue queue = queues[index]; + if (lock.tryLock()) { + try { + for (T entry : queue) { + if (predicate.test(entry)) { + return entry; + } + } + } finally { + lock.unlock(); + } + } + } + for (int i = 0; i < concurrency; ++i) { + final int index = (threadHash + i) % concurrency; + final Lock lock = locks[index]; + final Queue queue = queues[index]; + lock.lock(); + try { + for (T entry : queue) { + if (predicate.test(entry)) { + return entry; + } + } + } finally { + lock.unlock(); + } + } + return null; + } + + boolean remove(T entry) { + for (int i = 0; i < concurrency; ++i) { + final Lock lock = locks[i]; + final Queue queue = queues[i]; + lock.lock(); + try { + if (queue.remove(entry)) { + return true; + } + } finally { + lock.unlock(); + } + } + return false; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/queue/LockableConcurrentQueue.java b/server/src/main/java/org/opensearch/index/engine/exec/queue/LockableConcurrentQueue.java new file mode 100644 index 0000000000000..e46ec5137308a --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/queue/LockableConcurrentQueue.java @@ -0,0 +1,54 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.queue; + +import java.util.Queue; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.function.Supplier; + +public final class LockableConcurrentQueue { + + private final ConcurrentQueue queue; + private final AtomicInteger addAndUnlockCounter = new AtomicInteger(); + + public LockableConcurrentQueue(Supplier> queueSupplier, int concurrency) { + this.queue = new ConcurrentQueue<>(queueSupplier, concurrency); + } + + /** + * Lock an entry, and poll it from the queue, in that order. If no entry can be found and locked, + * {@code null} is returned. + */ + public T lockAndPoll() { + int addAndUnlockCount; + do { + addAndUnlockCount = addAndUnlockCounter.get(); + T entry = queue.poll(Lock::tryLock); + if (entry != null) { + return entry; + } + // If an entry has been added to the queue in the meantime, try again. + } while (addAndUnlockCount != addAndUnlockCounter.get()); + + return null; + } + + /** Remove an entry from the queue. */ + public boolean remove(T entry) { + return queue.remove(entry); + } + + /** Add an entry to the queue and unlock it, in that order. */ + public void addAndUnlock(T entry) { + queue.add(entry); + entry.unlock(); + addAndUnlockCounter.incrementAndGet(); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index b4638538fe7f9..7e7743c17f6e7 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -8,9 +8,11 @@ package org.opensearch.index.engine.exec.text; +import java.nio.file.Path; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.FileInfos; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.IndexingExecutionEngine; import org.opensearch.index.engine.exec.RefreshInput; @@ -23,10 +25,8 @@ import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; -import java.util.Collection; import java.util.HashSet; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -35,7 +35,7 @@ public class TextEngine implements IndexingExecutionEngine { private final AtomicLong counter = new AtomicLong(); private final Set openWriters = new HashSet<>(); - private List openFiles = new ArrayList<>(); + private final List openFiles = new ArrayList<>(); @Override public List supportedFieldTypes() { @@ -43,8 +43,8 @@ public List supportedFieldTypes() { } @Override - public Writer> createWriter() throws IOException { - return new TextWriter("text_file" + counter.getAndIncrement(), this); + public Writer> createWriter(long writerGeneration) throws IOException { + return new TextWriter("text_file" + counter.getAndIncrement(), this, writerGeneration); } @Override @@ -54,13 +54,14 @@ public DataFormat getDataFormat() { @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { - openFiles.addAll(refreshInput.getFiles()); + openFiles.addAll(refreshInput.getWriterFiles()); RefreshResult refreshResult = new RefreshResult(); refreshResult.add(DataFormat.TEXT, openFiles); return refreshResult; } public static class TextInput implements DocumentInput { + private final StringBuilder sb = new StringBuilder(); private final TextWriter writer; @@ -89,18 +90,18 @@ public void close() throws Exception { } } - - public static class TextWriter implements Writer { private final StringBuilder sb = new StringBuilder(); private final File currentFile; - private AtomicBoolean flushed = new AtomicBoolean(false); + private final AtomicBoolean flushed = new AtomicBoolean(false); private final Runnable onClose; + private final long writerGeneration; - public TextWriter(String currentFile, TextEngine engine) throws IOException{ - this.currentFile = new File("/Users/mgodwan/" + currentFile); + public TextWriter(String currentFile, TextEngine engine, long writerGeneration) throws IOException { + this.currentFile = new File("/Users/shnkgo/mustang" + currentFile); this.currentFile.createNewFile(); + this.writerGeneration = writerGeneration; boolean canWrite = this.currentFile.setWritable(true); if (!canWrite) { throw new IllegalStateException("Cannot write to file [" + currentFile + "]"); @@ -116,12 +117,16 @@ public WriteResult addDoc(TextInput d) throws IOException { } @Override - public FileMetadata flush(FlushIn flushIn) throws IOException { + public FileInfos flush(FlushIn flushIn) throws IOException { try (FileWriter fw = new FileWriter(currentFile)) { fw.write(sb.toString()); } flushed.set(true); - return new FileMetadata(DataFormat.TEXT, currentFile.getName()); + FileInfos fileInfos = new FileInfos(); + WriterFileSet writerFileSet = new WriterFileSet(currentFile.toPath().getParent(), writerGeneration); + writerFileSet.add(currentFile.getName()); + fileInfos.putWriterFileSet(DataFormat.TEXT, writerFileSet); + return fileInfos; } @Override @@ -133,17 +138,10 @@ public void close() { onClose.run(); } - @Override - public Optional getMetadata() { - if (flushed.get()) { - return Optional.of(new FileMetadata(DataFormat.TEXT, currentFile.getName())); - } - return Optional.empty(); - } - @Override public TextInput newDocumentInput() { return new TextInput(this); } + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/util/SetOnce.java b/server/src/main/java/org/opensearch/index/engine/exec/util/SetOnce.java new file mode 100644 index 0000000000000..189e49cef8458 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/util/SetOnce.java @@ -0,0 +1,73 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.util; + +import java.util.concurrent.atomic.AtomicReference; + +public final class SetOnce implements Cloneable { + + /** Thrown when {@link SetOnce#set(Object)} is called more than once. */ + public static final class AlreadySetException extends IllegalStateException { + public AlreadySetException() { + super("The object cannot be set twice!"); + } + } + + /** Holding object and marking that it was already set */ + private static final class Wrapper { + private T object; + + private Wrapper(T object) { + this.object = object; + } + } + + private final AtomicReference> set; + + /** + * A default constructor which does not set the internal object, and allows setting it by calling + * {@link #set(Object)}. + */ + public SetOnce() { + set = new AtomicReference<>(); + } + + /** + * Creates a new instance with the internal object set to the given object. Note that any calls to + * {@link #set(Object)} afterwards will result in {@link AlreadySetException} + * + * @throws AlreadySetException if called more than once + * @see #set(Object) + */ + public SetOnce(T obj) { + set = new AtomicReference<>(new Wrapper<>(obj)); + } + + /** Sets the given object. If the object has already been set, an exception is thrown. */ + public final void set(T obj) { + if (!trySet(obj)) { + throw new AlreadySetException(); + } + } + + /** + * Sets the given object if none was set before. + * + * @return true if object was set successfully, false otherwise + */ + public final boolean trySet(T obj) { + return set.compareAndSet(null, new Wrapper<>(obj)); + } + + /** Returns the object set by {@link #set(Object)}. */ + public final T get() { + Wrapper wrapper = set.get(); + return wrapper == null ? null : wrapper.object; + } +} diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index e251df24bb7b4..1212ed617c93a 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -1216,7 +1216,7 @@ private Engine.IndexResult applyIndexOperation( + "]"; ensureWriteAllowed(origin); Engine.Index operation; - try { + try (CompositeDataFormatWriter.CompositeDocumentInput documentInput = documentInputSupplier.get()) { operation = prepareIndex( docMapper(), sourceToParse, @@ -1229,12 +1229,13 @@ private Engine.IndexResult applyIndexOperation( isRetry, ifSeqNo, ifPrimaryTerm, - documentInputSupplier + documentInput ); Mapping update = operation.parsedDoc().dynamicMappingsUpdate(); if (update != null) { return new Engine.IndexResult(update); } + return index(engine, operation); } catch (Exception e) { // We treat any exception during parsing and or mapping update as a document level failure // with the exception side effects of closing the shard. Since we don't have the shard, we @@ -1243,8 +1244,6 @@ private Engine.IndexResult applyIndexOperation( verifyNotClosed(e); return new Engine.IndexResult(e, version, opPrimaryTerm, seqNo); } - - return index(engine, operation); } public static Engine.Index prepareIndex( @@ -1259,15 +1258,10 @@ public static Engine.Index prepareIndex( boolean isRetry, long ifSeqNo, long ifPrimaryTerm, - CheckedSupplier documentInputSupplier + CompositeDataFormatWriter.CompositeDocumentInput documentInput ) { long startTime = System.nanoTime(); - ParsedDocument doc = null; - try { - doc = docMapper.getDocumentMapper().parse(source, documentInputSupplier.get()); - } catch (IOException ex) { - throw new RuntimeException(ex); - } + ParsedDocument doc = docMapper.getDocumentMapper().parse(source, documentInput);; if (docMapper.getMapping() != null) { doc.addDynamicMappingsUpdate(docMapper.getMapping()); } @@ -1650,7 +1644,7 @@ public void flush(FlushRequest request) { */ verifyNotClosed(); final long time = System.nanoTime(); - getIndexer().flush(force, waitIfOngoing); + getIndexingExecutionCoordinator().flush(force, waitIfOngoing); flushMetric.inc(System.nanoTime() - time); } From c00d031ee7023f1b30c6cafabe500fe410f45a69 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Wed, 22 Oct 2025 12:48:29 +0530 Subject: [PATCH 031/112] Uptading the implementation of ArrowRegistry and ParquetField class (#19562) * Uptading the implementation of ArrowRegistry and ParquetField class Signed-off-by: Sagar Darji * Adding Java doc for the ParquetFields * Adding parquet-data-format/jni/target/.rustc_info.json into gitignore * Adding new feature flag for pluggable dataformat Signed-off-by: Sagar Darji * Removing not required files Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji Signed-off-by: Sagar Darji Co-authored-by: Sagar Darji --- .gitignore | 1 + .../ParquetDataFormatPlugin.java | 4 +- .../fields/ArrowFieldRegistry.java | 204 +++++++++++------- .../fields/ArrowSchemaBuilder.java | 104 +++++++++ .../fields/BooleanParquetField.java | 23 -- .../fields/DateParquetField.java | 19 -- .../fields/KeywordParquetField.java | 23 -- .../fields/ParquetField.java | 103 ++++++++- .../fields/ParquetFieldUtil.java | 33 --- .../fields/TextParquetField.java | 24 --- .../fields/core/data/BooleanParquetField.java | 59 +++++ .../fields/core/data/DateParquetField.java | 61 ++++++ .../fields/core/data/KeywordParquetField.java | 62 ++++++ .../fields/core/data/TextParquetField.java | 63 ++++++ .../core/data/number/ByteParquetField.java | 58 +++++ .../core/data/number/DoubleParquetField.java | 60 ++++++ .../core/data/number/FloatParquetField.java | 60 ++++++ .../data/number/HalfFloatParquetField.java | 60 ++++++ .../core/data/number/IntegerParquetField.java | 58 +++++ .../core/data/number/LongParquetField.java | 59 +++++ .../core/data/number/ShortParquetField.java | 59 +++++ .../data/number/UnsignedLongParquetField.java | 60 ++++++ .../fields/number/ByteParquetField.java | 28 --- .../fields/number/DoubleParquetField.java | 28 --- .../fields/number/FloatParquetField.java | 28 --- .../fields/number/HalfFloatParquetField.java | 28 --- .../fields/number/IntegerParquetField.java | 28 --- .../fields/number/LongParquetField.java | 28 --- .../fields/number/ShortParquetField.java | 28 --- .../number/UnsignedLongParquetField.java | 29 --- .../plugins/fields/CoreDataFieldPlugin.java | 104 +++++++++ .../plugins/fields/ParquetFieldPlugin.java | 30 +++ .../writer/ParquetDocumentInput.java | 12 +- .../lucene/fields/BooleanLuceneField.java | 52 +++++ .../org/apache/lucene/fields/LuceneField.java | 17 ++ .../lucene/fields/number/ByteLuceneField.java | 31 +++ .../fields/number/DoubleLuceneField.java | 12 ++ .../fields/number/FloatLuceneField.java | 12 ++ .../fields/number/HalfFloatLuceneField.java | 12 ++ .../fields/number/IntegerLuceneField.java | 12 ++ .../lucene/fields/number/LongLuceneField.java | 12 ++ .../common/settings/FeatureFlagSettings.java | 3 +- .../opensearch/common/util/FeatureFlags.java | 12 ++ .../index/mapper/BooleanFieldMapper.java | 27 +-- .../index/mapper/DateFieldMapper.java | 36 ++-- .../index/mapper/DocCountFieldMapper.java | 5 +- .../opensearch/index/mapper/FieldMapper.java | 11 +- .../index/mapper/KeywordFieldMapper.java | 34 +-- .../index/mapper/NumberFieldMapper.java | 13 +- .../index/mapper/TextFieldMapper.java | 26 ++- 50 files changed, 1461 insertions(+), 494 deletions(-) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/ParquetFieldPlugin.java create mode 100644 server/src/main/java/org/apache/lucene/fields/BooleanLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/LuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/ByteLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/DoubleLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/FloatLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/HalfFloatLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/IntegerLuceneField.java create mode 100644 server/src/main/java/org/apache/lucene/fields/number/LongLuceneField.java diff --git a/.gitignore b/.gitignore index d5ae200e48db9..fd9b9ad386961 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,7 @@ doc-tools/missing-doclet/bin/ /modules/parquet-data-format/src/main/rust/debug /modules/parquet-data-format/src/main/resources/native/ /modules/parquet-data-format/jni/target/debug +/modules/parquet-data-format/jni/target/.rustc_info.json /modules/parquet-data-format/jni/target/release **/Cargo.lock diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java index d6553a14ab23d..3c686bc37f209 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java @@ -8,7 +8,7 @@ package com.parquet.parquetdataformat; import com.parquet.parquetdataformat.engine.ParquetDataFormat; -import com.parquet.parquetdataformat.fields.ParquetFieldUtil; +import com.parquet.parquetdataformat.fields.ArrowSchemaBuilder; import com.parquet.parquetdataformat.engine.read.ParquetDataSourceCodec; import com.parquet.parquetdataformat.writer.ParquetWriter; import org.opensearch.index.engine.DataFormatPlugin; @@ -61,7 +61,7 @@ public class ParquetDataFormatPlugin extends Plugin implements DataFormatPlugin, @Override @SuppressWarnings("unchecked") public IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath) { - return (IndexingExecutionEngine) new ParquetExecutionEngine(() -> ParquetFieldUtil.getSchema(mapperService), shardPath); + return (IndexingExecutionEngine) new ParquetExecutionEngine(() -> ArrowSchemaBuilder.getSchema(mapperService), shardPath); } private Class getDataFormatType() { diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java index 143b9837c6970..0b7f75ddbe5b5 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java @@ -8,96 +8,148 @@ package com.parquet.parquetdataformat.fields; -import com.parquet.parquetdataformat.fields.number.ByteParquetField; -import com.parquet.parquetdataformat.fields.number.DoubleParquetField; -import com.parquet.parquetdataformat.fields.number.FloatParquetField; -import com.parquet.parquetdataformat.fields.number.HalfFloatParquetField; -import com.parquet.parquetdataformat.fields.number.IntegerParquetField; -import com.parquet.parquetdataformat.fields.number.LongParquetField; -import com.parquet.parquetdataformat.fields.number.ShortParquetField; -import com.parquet.parquetdataformat.fields.number.UnsignedLongParquetField; -import org.apache.arrow.vector.types.FloatingPointPrecision; -import org.apache.arrow.vector.types.TimeUnit; -import org.apache.arrow.vector.types.pojo.ArrowType; -import org.apache.arrow.vector.types.pojo.FieldType; -import org.opensearch.index.mapper.BooleanFieldMapper; -import org.opensearch.index.mapper.DateFieldMapper; -import org.opensearch.index.mapper.KeywordFieldMapper; -import org.opensearch.index.mapper.NumberFieldMapper; -import org.opensearch.index.mapper.TextFieldMapper; - -import java.util.HashMap; -import java.util.Map; +import com.parquet.parquetdataformat.plugins.fields.CoreDataFieldPlugin; +import com.parquet.parquetdataformat.plugins.fields.ParquetFieldPlugin; -public class ArrowFieldRegistry { +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Registry for mapping OpenSearch field types to their corresponding Parquet field implementations. + * This class maintains a centralized mapping between OpenSearch field type names and their + * Arrow/Parquet field representations, enabling efficient field type resolution during + * schema creation and data processing. + * + *

The registry is initialized once during class loading and provides thread-safe + * read-only access to field mappings.

+ */ +public final class ArrowFieldRegistry { - private static final Map FIELD_TYPE_MAP = new HashMap<>(); - private static final Map PARQUET_FIELD_MAP = new HashMap<>(); + /** + * All registered field mappings (thread-safe, mutable) + */ + private static final Map FIELD_REGISTRY = new ConcurrentHashMap<>(); + // Static initialization block to populate the field registry static { - //TODO: darsaga check which fields can be nullable and which can not be - - // Number types - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.HALF_FLOAT.typeName(), - FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.HALF))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.FLOAT.typeName(), - FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.DOUBLE.typeName(), - FieldType.nullable(new ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.BYTE.typeName(), - FieldType.nullable(new ArrowType.Int(8, true))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.SHORT.typeName(), - FieldType.nullable(new ArrowType.Int(16, true))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.INTEGER.typeName(), - FieldType.nullable(new ArrowType.Int(32, true))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.LONG.typeName(), - FieldType.nullable(new ArrowType.Int(64, true))); - FIELD_TYPE_MAP.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), - FieldType.nullable(new ArrowType.Int(64, false))); - - // Other types - FIELD_TYPE_MAP.put(DateFieldMapper.CONTENT_TYPE, - FieldType.nullable(new ArrowType.Timestamp(TimeUnit.MILLISECOND, null))); - FIELD_TYPE_MAP.put(BooleanFieldMapper.CONTENT_TYPE, - FieldType.nullable(new ArrowType.Bool())); - FIELD_TYPE_MAP.put(KeywordFieldMapper.CONTENT_TYPE, - FieldType.nullable(new ArrowType.Utf8())); - FIELD_TYPE_MAP.put(TextFieldMapper.CONTENT_TYPE, - FieldType.nullable(new ArrowType.Utf8())); - - setUpParquetFieldMap(); + initialize(); } - private static void setUpParquetFieldMap() { + // Private constructor to prevent instantiation of utility class + private ArrowFieldRegistry() { + throw new UnsupportedOperationException("Registry class should not be instantiated"); + } - //Number fields - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.HALF_FLOAT.typeName(), new HalfFloatParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.FLOAT.typeName(), new FloatParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.DOUBLE.typeName(), new DoubleParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.BYTE.typeName(), new ByteParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.SHORT.typeName(), new ShortParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.INTEGER.typeName(), new IntegerParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.LONG.typeName(), new LongParquetField()); - PARQUET_FIELD_MAP.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), new UnsignedLongParquetField()); + /** + * Initialize the registry with all available plugins. + * This method should be called during node startup after all plugins are loaded. + */ + public static synchronized void initialize() { + // Always register core plugins first + registerCorePlugins(); + } - //Date field - PARQUET_FIELD_MAP.put(DateFieldMapper.CONTENT_TYPE, new DateParquetField()); + /** + * Register core OpenSearch field plugins. + * These are always available and provide the foundation field type support. + */ + private static void registerCorePlugins() { + // Register core data fields + registerPlugin(new CoreDataFieldPlugin(), "CoreDataFields"); + } + /** + * Register a single plugin's field types. + */ + private static void registerPlugin(ParquetFieldPlugin plugin, String pluginName) { + Map fields = plugin.getParquetFields(); + + if (fields != null && !fields.isEmpty()) { + for (Map.Entry entry : fields.entrySet()) { + String fieldType = entry.getKey(); + ParquetField parquetField = entry.getValue(); + + // Validate registration + validateFieldRegistration(fieldType, parquetField, pluginName); + + // Check for conflicts + if (FIELD_REGISTRY.containsKey(fieldType)) { + throw new IllegalArgumentException( + String.format("Field type [%s] is already registered. Plugin [%s] cannot override it.", + fieldType, pluginName) + ); + } + + FIELD_REGISTRY.put(fieldType, parquetField); + } + } + } - //Boolean field - PARQUET_FIELD_MAP.put(BooleanFieldMapper.CONTENT_TYPE, new BooleanParquetField()); + private static void validateFieldRegistration(String fieldType, ParquetField parquetField, String source) { + if (fieldType == null || fieldType.trim().isEmpty()) { + throw new IllegalArgumentException("Field type name cannot be null or empty"); + } + + if (parquetField == null) { + throw new IllegalArgumentException("ParquetField implementation cannot be null"); + } + + // Validate that the ParquetField can provide required Arrow types + try { + parquetField.getArrowType(); + parquetField.getFieldType(); + } catch (Exception e) { + throw new IllegalArgumentException( + String.format("Invalid ParquetField implementation for type [%s] from source [%s]: %s", + fieldType, source, e.getMessage()), e + ); + } + } - //Text field - PARQUET_FIELD_MAP.put(TextFieldMapper.CONTENT_TYPE, new TextParquetField()); + /** + * Get registry statistics for monitoring and debugging. + */ + public static RegistryStats getStats() { + Set allTypes = getRegisteredFieldNames(); - //Keyword field - PARQUET_FIELD_MAP.put(KeywordFieldMapper.CONTENT_TYPE, new KeywordParquetField()); + return new RegistryStats( + FIELD_REGISTRY.size(), // Single source of truth + allTypes + ); } - public static FieldType getFieldType(String typeName) { - return FIELD_TYPE_MAP.get(typeName); + /** + * Get all registered field type names. + */ + public static Set getRegisteredFieldNames() { + return Collections.unmodifiableSet(FIELD_REGISTRY.keySet()); } - public static ParquetField getParquetField(String typeName) { - return PARQUET_FIELD_MAP.get(typeName); + /** + * Returns the ParquetField implementation for the specified OpenSearch field type, or null if not found. + */ + public static ParquetField getParquetField(String fieldType) { + return FIELD_REGISTRY.get(fieldType); } + + public static class RegistryStats { + private final int totalFields; + private final Set allFieldTypes; + + public RegistryStats(int totalFields, Set allFieldTypes) { + this.totalFields = totalFields; + this.allFieldTypes = allFieldTypes; + } + + // Getters + public int getTotalFields() { return totalFields; } + public Set getAllFieldTypes() { return allFieldTypes; } + + @Override + public String toString() { + return String.format("RegistryStats{total=%d, }", totalFields); + } + } + } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java new file mode 100644 index 0000000000000..3244bddc2f832 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java @@ -0,0 +1,104 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields; + +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.mapper.Mapper; +import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.mapper.MetadataFieldMapper; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * Utility class for creating Apache Arrow schemas from OpenSearch mapper services. + * This class provides methods to convert OpenSearch field mappings into Arrow schema definitions + * that can be used for Parquet data format operations. + */ +public final class ArrowSchemaBuilder { + + // Private constructor to prevent instantiation of utility class + private ArrowSchemaBuilder() { + throw new UnsupportedOperationException("Utility class should not be instantiated"); + } + + /** + * Creates an Apache Arrow Schema from the provided MapperService. + * This method extracts all non-metadata field mappers and converts them to Arrow fields. + * + * @param mapperService the OpenSearch mapper service containing field definitions + * @return a new Schema containing Arrow field definitions for all mapped fields + * @throws IllegalArgumentException if mapperService is null + * @throws IllegalStateException if no valid fields are found or if a field type is not supported + */ + public static Schema getSchema(final MapperService mapperService) { + Objects.requireNonNull(mapperService, "MapperService cannot be null"); + + final List fields = extractFieldsFromMappers(mapperService); + + if (fields.isEmpty()) { + throw new IllegalStateException("No valid fields found in mapper service"); + } + + return new Schema(fields); + } + + /** + * Extracts Arrow fields from the mapper service, filtering out metadata fields. + * + * @param mapperService the mapper service to extract fields from + * @return a list of Arrow fields + */ + private static List extractFieldsFromMappers(final MapperService mapperService) { + final List fields = new ArrayList<>(); + + for (final Mapper mapper : mapperService.documentMapper().mappers()) { + if (isMetadataField(mapper)) { + continue; + } + + final Field arrowField = createArrowField(mapper); + fields.add(arrowField); + } + + return fields; + } + + /** + * Checks if the given mapper represents a metadata field. + * + * @param mapper the mapper to check + * @return true if the mapper is a metadata field, false otherwise + */ + private static boolean isMetadataField(final Mapper mapper) { + return mapper instanceof MetadataFieldMapper; + } + + /** + * Creates an Arrow Field from an OpenSearch Mapper. + * + * @param mapper the mapper to convert + * @return a new Arrow Field + * @throws IllegalStateException if the mapper type is not supported + */ + private static Field createArrowField(final Mapper mapper) { + final ParquetField parquetField = ArrowFieldRegistry.getParquetField(mapper.typeName()); + + if (parquetField == null) { + throw new IllegalStateException( + String.format("Unsupported field type '%s' for field '%s'", + mapper.typeName(), mapper.name()) + ); + } + + return new Field(mapper.name(), parquetField.getFieldType(), null); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java deleted file mode 100644 index 225323e6a7ffe..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/BooleanParquetField.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields; - -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.BitVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class BooleanParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - BitVector bitVector = (BitVector) managedVSR.getVector(mappedFieldType.name()); - int rowIndex = managedVSR.getRowCount(); - bitVector.setSafe(rowIndex, (Boolean) parseValue ? 1 : 0); - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java deleted file mode 100644 index 5f2170fa95987..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/DateParquetField.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields; - -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.opensearch.index.mapper.MappedFieldType; - -public class DateParquetField extends ParquetField { - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java deleted file mode 100644 index a5837ee851364..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/KeywordParquetField.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields; - -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.VarCharVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class KeywordParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); - int rowIndex = managedVSR.getRowCount(); - textVector.setSafe(rowIndex, parseValue.toString().getBytes()); - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java index 3d52106f7acad..714b0e6a45aa8 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java @@ -9,15 +9,112 @@ package com.parquet.parquetdataformat.fields; import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; import org.opensearch.index.mapper.MappedFieldType; +import java.util.Objects; + +/** + * Abstract base class for all Parquet field implementations that handle the conversion + * between OpenSearch field types and Apache Arrow/Parquet data structures. + * + *

This class defines the contract for field-specific operations including: + *

    + *
  • Adding field data to vector groups for columnar storage
  • + *
  • Creating field instances with proper type validation
  • + *
  • Providing Arrow type definitions for schema generation
  • + *
  • Generating field type metadata for Arrow schemas
  • + *
+ * + *

Implementations of this class should be thread-safe and stateless, as they + * may be shared across multiple processing contexts.

+ * + * @see ArrowFieldRegistry + * @see ManagedVSR + */ public abstract class ParquetField { - public abstract void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue); - public void createField(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + /** + * Adds the parsed field value to the appropriate vector group within the managed VSR. + * This method is responsible for the actual data conversion and storage in the + * columnar format specific to each field type. + * + *

Implementations must handle null values appropriately and ensure type safety + * when casting the parseValue to the expected type.

+ * + * @param mappedFieldType the OpenSearch field type metadata containing field configuration + * @param managedVSR the managed vector schema root for columnar data storage + * @param parseValue the parsed field value to be stored, may be null + * @throws IllegalArgumentException if any parameter is invalid for this field type + * @throws ClassCastException if parseValue cannot be cast to the expected type + */ + protected abstract void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue); + + /** + * Creates and processes a field entry if the field type supports columnar storage. + * This method serves as the main entry point for field processing and includes + * validation logic to ensure only columnar fields are processed. + * + *

The method performs the following operations: + *

    + *
  1. Validates input parameters
  2. + *
  3. Checks if the field supports columnar storage
  4. + *
  5. Delegates to {@link #addToGroup} for actual data processing
  6. + *
+ * + * @param mappedFieldType the OpenSearch field type metadata, must not be null + * @param managedVSR the managed vector schema root, must not be null + * @param parseValue the parsed field value to be processed, may be null + * @throws IllegalArgumentException if mappedFieldType or managedVSR is null + */ + public final void createField(final MappedFieldType mappedFieldType, + final ManagedVSR managedVSR, + final Object parseValue) { + Objects.requireNonNull(mappedFieldType, "MappedFieldType cannot be null"); + Objects.requireNonNull(managedVSR, "ManagedVSR cannot be null"); + if (mappedFieldType.isColumnar()) { addToGroup(mappedFieldType, managedVSR, parseValue); } } + + /** + * Returns the Apache Arrow type definition for this field. + * This type definition is used for schema generation and data type validation + * in the Arrow/Parquet ecosystem. + * + *

The returned ArrowType should be consistent across all instances of the + * same field implementation and should accurately represent the data type + * that will be stored.

+ * + * @return the Arrow type definition for this field, never null + */ + public abstract ArrowType getArrowType(); + + /** + * Returns the Apache Arrow field type with metadata for schema generation. + * This includes the base Arrow type along with additional metadata such as + * nullability constraints and custom properties. + * + *

The returned FieldType is used when constructing Arrow schemas and + * should include appropriate nullability settings based on the field's + * characteristics.

+ * + * @return the complete field type definition including metadata, never null + */ + public abstract FieldType getFieldType(); + + /** + * Provides a string representation of this ParquetField for debugging purposes. + * The default implementation includes the class name and Arrow type information. + * + * @return a string representation of this field + */ + @Override + public String toString() { + return String.format("%s{arrowType=%s}", + this.getClass().getSimpleName(), + getArrowType()); + } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java deleted file mode 100644 index a47f35fcd9bb1..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetFieldUtil.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields; - -import org.apache.arrow.vector.types.pojo.Field; -import org.apache.arrow.vector.types.pojo.Schema; -import org.opensearch.index.mapper.Mapper; -import org.opensearch.index.mapper.MapperService; -import org.opensearch.index.mapper.MetadataFieldMapper; - -import java.util.ArrayList; -import java.util.List; - -public class ParquetFieldUtil { - - public static Schema getSchema(MapperService mapperService) { - List fields = new ArrayList<>(); - - for (Mapper mapper : mapperService.documentMapper().mappers()) { - if (mapper instanceof MetadataFieldMapper) continue; - fields.add(new Field(mapper.name(), ArrowFieldRegistry.getFieldType(mapper.typeName()), null)); - } - - // Create the most minimal schema possible - just one string field - return new Schema(fields); - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java deleted file mode 100644 index 6bcf6d091fd62..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/TextParquetField.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields; - -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.VarCharVector; -import org.apache.arrow.vector.VectorSchemaRoot; -import org.opensearch.index.mapper.MappedFieldType; - -public class TextParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); - int rowIndex = managedVSR.getRowCount(); - textVector.setSafe(rowIndex, parseValue.toString().getBytes()); - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java new file mode 100644 index 0000000000000..e15821d551eaf --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java @@ -0,0 +1,59 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ArrowFieldRegistry; +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.BitVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling boolean data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch boolean fields and Apache Arrow + * boolean vectors for columnar storage in Parquet format. Boolean values are stored using + * Apache Arrow's {@link BitVector}, which provides efficient bit-level storage for boolean data.

+ * + *

This field type corresponds to OpenSearch's {@code boolean} field mapping and is + * automatically registered in the {@link ArrowFieldRegistry} for use during document processing.

+ * + *

Usage Example:

+ *
{@code
+ * BooleanParquetField boolField = new BooleanParquetField();
+ * ArrowType arrowType = boolField.getArrowType(); // Returns ArrowType.Bool
+ * FieldType fieldType = boolField.getFieldType(); // Returns non-nullable boolean field type
+ * }
+ * + * @see ParquetField + * @see BitVector + * @see ArrowType.Bool + * @since 1.0 + */ +public class BooleanParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + BitVector bitVector = (BitVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + bitVector.setSafe(rowIndex, (Boolean) parseValue ? 1 : 0); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Bool(); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java new file mode 100644 index 0000000000000..766895b310e6d --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.DateMilliVector; +import org.apache.arrow.vector.types.TimeUnit; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling date and timestamp data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch date fields and Apache Arrow + * timestamp vectors for columnar storage in Parquet format. Date values are stored using + * Apache Arrow's {@link DateMilliVector}, which stores timestamps as milliseconds since the + * Unix epoch (January 1, 1970, 00:00:00 UTC).

+ * + *

This field type corresponds to OpenSearch's {@code date} field mapping and supports + * various date formats as configured in the field mapping. All dates are normalized to + * millisecond timestamps before storage in the Arrow vector.

+ * + *

Usage Example:

+ *
{@code
+ * DateParquetField dateField = new DateParquetField();
+ * ArrowType arrowType = dateField.getArrowType(); // Returns Timestamp with MILLISECOND precision
+ * FieldType fieldType = dateField.getFieldType(); // Returns non-nullable timestamp field type
+ * }
+ * + * @see ParquetField + * @see DateMilliVector + * @see ArrowType.Timestamp + * @since 1.0 + */ +public class DateParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + DateMilliVector dateMilliVector = (DateMilliVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + dateMilliVector.setSafe(rowIndex, (long) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Timestamp(TimeUnit.MILLISECOND, null); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java new file mode 100644 index 0000000000000..c1d36f35fe286 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java @@ -0,0 +1,62 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +import java.nio.charset.StandardCharsets; + +/** + * Parquet field implementation for handling keyword data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch keyword fields and Apache Arrow + * UTF-8 string vectors for columnar storage in Parquet format. Keyword values are stored using + * Apache Arrow's {@link VarCharVector}, which provides efficient variable-length string storage + * with UTF-8 encoding.

+ * + *

This field type corresponds to OpenSearch's {@code keyword} field mapping, which is + * typically used for exact-match searches, aggregations, and sorting. Unlike text fields, + * keyword fields are not analyzed and are stored as-is for precise matching.

+ * + *

Usage Example:

+ *
{@code
+ * KeywordParquetField keywordField = new KeywordParquetField();
+ * ArrowType arrowType = keywordField.getArrowType(); // Returns ArrowType.Utf8
+ * FieldType fieldType = keywordField.getFieldType(); // Returns non-nullable UTF-8 field type
+ * }
+ * + * @see ParquetField + * @see VarCharVector + * @see ArrowType.Utf8 + * @since 1.0 + */ +public class KeywordParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + textVector.setSafe(rowIndex, parseValue.toString().getBytes(StandardCharsets.UTF_8)); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Utf8(); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java new file mode 100644 index 0000000000000..dbffac52a106f --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java @@ -0,0 +1,63 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ArrowFieldRegistry; +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +import java.nio.charset.StandardCharsets; + +/** + * Parquet field implementation for handling text data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch text fields and Apache Arrow + * vectors for columnar storage in Parquet format. Text values are stored using Apache Arrow's + * {@link VarCharVector}, which provides efficient variable-length string storage with UTF-8 encoding.

+ * + *

This field type corresponds to OpenSearch's {@code text} field mapping, which is + * typically used for full-text search operations. Text fields are usually analyzed during + * indexing, but this implementation stores the original text content for columnar access.

+ * + *

Usage Example:

+ *
{@code
+ * TextParquetField textField = new TextParquetField();
+ * ArrowType arrowType = textField.getArrowType(); // Returns ArrowType.Utf8
+ * FieldType fieldType = textField.getFieldType(); // Returns non-nullable integer field type
+ * }
+ * + * @see ParquetField + * @see ArrowFieldRegistry + * @see VarCharVector + * @see ArrowType.Int + * @since 1.0 + */ +public class TextParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector textVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + textVector.setSafe(rowIndex, parseValue.toString().getBytes(StandardCharsets.UTF_8)); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Utf8(); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java new file mode 100644 index 0000000000000..9bb2fabb503eb --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java @@ -0,0 +1,58 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.TinyIntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling 8-bit signed byte integer data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch byte fields and Apache Arrow + * 8-bit signed integer vectors for columnar storage in Parquet format. Byte values are stored + * using Apache Arrow's {@link TinyIntVector}, which provides efficient fixed-width 8-bit integer storage.

+ * + *

This field type corresponds to OpenSearch's {@code byte} number field mapping and + * supports the full range of 8-bit signed integer values.

+ * + *

Usage Example:

+ *
{@code
+ * ByteParquetField byteField = new ByteParquetField();
+ * ArrowType arrowType = byteField.getArrowType(); // Returns 8-bit signed integer type
+ * FieldType fieldType = byteField.getFieldType(); // Returns non-nullable byte field type
+ * }
+ * + * @see ParquetField + * @see TinyIntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class ByteParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + TinyIntVector tinyIntVector = (TinyIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + tinyIntVector.setSafe(rowCount, (Byte) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(8, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java new file mode 100644 index 0000000000000..762be4d468bc2 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float8Vector; +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling double-precision floating-point data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch double fields and Apache Arrow + * double-precision floating-point vectors for columnar storage in Parquet format. Double values are stored + * using Apache Arrow's {@link Float8Vector}, which provides efficient 64-bit IEEE 754 double-precision + * floating-point storage.

+ * + *

This field type corresponds to OpenSearch's {@code double} number field mapping and + * supports the full range of IEEE 754 double-precision floating-point values.

+ * + *

Usage Example:

+ *
{@code
+ * DoubleParquetField doubleField = new DoubleParquetField();
+ * ArrowType arrowType = doubleField.getArrowType(); // Returns double-precision floating-point type
+ * FieldType fieldType = doubleField.getFieldType(); // Returns non-nullable double field type
+ * }
+ * + * @see ParquetField + * @see Float8Vector + * @see ArrowType.FloatingPoint + * @since 1.0 + */ +public class DoubleParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float8Vector float8Vector = (Float8Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + float8Vector.setSafe(rowCount, (Double) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.FloatingPoint(FloatingPointPrecision.DOUBLE); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java new file mode 100644 index 0000000000000..954f57076a514 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float4Vector; +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling single-precision floating-point data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch float fields and Apache Arrow + * single-precision floating-point vectors for columnar storage in Parquet format. Float values are stored + * using Apache Arrow's {@link Float4Vector}, which provides efficient 32-bit IEEE 754 single-precision + * floating-point storage.

+ * + *

This field type corresponds to OpenSearch's {@code float} number field mapping and + * supports the full range of IEEE 754 single-precision floating-point values.

+ * + *

Usage Example:

+ *
{@code
+ * FloatParquetField floatField = new FloatParquetField();
+ * ArrowType arrowType = floatField.getArrowType(); // Returns single-precision floating-point type
+ * FieldType fieldType = floatField.getFieldType(); // Returns non-nullable float field type
+ * }
+ * + * @see ParquetField + * @see Float4Vector + * @see ArrowType.FloatingPoint + * @since 1.0 + */ +public class FloatParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float4Vector float4Vector = (Float4Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + float4Vector.setSafe(rowCount, (Float) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.FloatingPoint(FloatingPointPrecision.SINGLE); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java new file mode 100644 index 0000000000000..dbc9ee8f6a171 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.Float2Vector; +import org.apache.arrow.vector.types.FloatingPointPrecision; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling half-precision (16-bit) floating-point data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch half_float fields and Apache Arrow + * half-precision floating-point vectors for columnar storage in Parquet format. Half-float values are stored + * using Apache Arrow's {@link Float2Vector}, which provides efficient 16-bit IEEE 754 half-precision + * floating-point storage.

+ * + *

This field type corresponds to OpenSearch's {@code half_float} number field mapping and + * supports IEEE 754 half-precision floating-point values.

+ * + *

Usage Example:

+ *
{@code
+ * HalfFloatParquetField halfFloatField = new HalfFloatParquetField();
+ * ArrowType arrowType = halfFloatField.getArrowType(); // Returns half-precision floating-point type
+ * FieldType fieldType = halfFloatField.getFieldType(); // Returns non-nullable half-float field type
+ * }
+ * + * @see ParquetField + * @see Float2Vector + * @see ArrowType.FloatingPoint + * @since 1.0 + */ +public class HalfFloatParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + Float2Vector float2Vector = (Float2Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + float2Vector.setSafe(rowCount, (Short) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.FloatingPoint(FloatingPointPrecision.HALF); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java new file mode 100644 index 0000000000000..1dc28c1eff385 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java @@ -0,0 +1,58 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling 32-bit signed integer data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch integer fields and Apache Arrow + * 32-bit signed integer vectors for columnar storage in Parquet format. Integer values are stored + * using Apache Arrow's {@link IntVector}, which provides efficient fixed-width integer storage.

+ * + *

This field type corresponds to OpenSearch's {@code integer} number field mapping and + * supports the full range of 32-bit signed integer values.

+ * + *

Usage Example:

+ *
{@code
+ * IntegerParquetField intField = new IntegerParquetField();
+ * ArrowType arrowType = intField.getArrowType(); // Returns 32-bit signed integer type
+ * FieldType fieldType = intField.getFieldType(); // Returns non-nullable integer field type
+ * }
+ * + * @see ParquetField + * @see IntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class IntegerParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + IntVector intVector = (IntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + intVector.setSafe(rowCount, (Integer) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(32, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java new file mode 100644 index 0000000000000..32402a32de6d4 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java @@ -0,0 +1,59 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.BigIntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling 64-bit signed long integer data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch long fields and Apache Arrow + * 64-bit signed integer vectors for columnar storage in Parquet format. Long values are stored + * using Apache Arrow's {@link BigIntVector}, which provides efficient fixed-width 64-bit integer storage.

+ * + *

This field type corresponds to OpenSearch's {@code long} number field mapping and + * supports the full range of 64-bit signed integer values. The implementation includes proper + * null handling, setting explicit null markers when null values are encountered.

+ * + *

Usage Example:

+ *
{@code
+ * LongParquetField longField = new LongParquetField();
+ * ArrowType arrowType = longField.getArrowType(); // Returns 64-bit signed integer type
+ * FieldType fieldType = longField.getFieldType(); // Returns non-nullable long field type
+ * }
+ * + * @see ParquetField + * @see BigIntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class LongParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + BigIntVector bigIntVector = (BigIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + bigIntVector.setSafe(rowCount, (Long) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(64, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java new file mode 100644 index 0000000000000..94927ebfb7601 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java @@ -0,0 +1,59 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.SmallIntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling 16-bit signed short integer data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch short fields and Apache Arrow + * 16-bit signed integer vectors for columnar storage in Parquet format. Short values are stored + * using Apache Arrow's {@link SmallIntVector}, which provides efficient fixed-width 16-bit integer storage.

+ * + *

This field type corresponds to OpenSearch's {@code short} number field mapping and + * supports the full range of 16-bit signed integer values. The implementation includes proper + * null handling, setting explicit null markers when null values are encountered.

+ * + *

Usage Example:

+ *
{@code
+ * ShortParquetField shortField = new ShortParquetField();
+ * ArrowType arrowType = shortField.getArrowType(); // Returns 16-bit signed integer type
+ * FieldType fieldType = shortField.getFieldType(); // Returns non-nullable short field type
+ * }
+ * + * @see ParquetField + * @see SmallIntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class ShortParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + SmallIntVector smallIntVector = (SmallIntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + smallIntVector.setSafe(rowCount, (Short) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(16, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java new file mode 100644 index 0000000000000..9736101672eca --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.number; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.UInt8Vector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling 64-bit unsigned long integer data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch unsigned_long fields and Apache Arrow + * 64-bit unsigned integer vectors for columnar storage in Parquet format. Unsigned long values are stored + * using Apache Arrow's {@link UInt8Vector}, which provides efficient fixed-width 64-bit unsigned integer storage.

+ * + *

This field type corresponds to OpenSearch's {@code unsigned_long} number field mapping and + * supports the full range of 64-bit unsigned integer values. The implementation includes proper + * null handling, setting explicit null markers when null values are encountered.

+ * + *

Usage Example:

+ *
{@code
+ * UnsignedLongParquetField unsignedLongField = new UnsignedLongParquetField();
+ * ArrowType arrowType = unsignedLongField.getArrowType(); // Returns 64-bit unsigned integer type
+ * FieldType fieldType = unsignedLongField.getFieldType(); // Returns non-nullable unsigned long field type
+ * }
+ * + * @see ParquetField + * @see UInt8Vector + * @see ArrowType.Int + * @since 1.0 + */ +public class UnsignedLongParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + UInt8Vector uInt8Vector = (UInt8Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + long longValue = ((Number) parseValue).longValue(); + uInt8Vector.setSafe(rowCount, longValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(64, false); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java deleted file mode 100644 index 75d0607a18eb7..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ByteParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.TinyIntVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class ByteParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - TinyIntVector tinyIntVector = (TinyIntVector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - tinyIntVector.setNull(rowCount); - } else { - tinyIntVector.setSafe(rowCount, (Byte) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java deleted file mode 100644 index a552efa146bce..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/DoubleParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.Float8Vector; -import org.opensearch.index.mapper.MappedFieldType; - -public class DoubleParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - Float8Vector float8Vector = (Float8Vector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - float8Vector.setNull(rowCount); - } else { - float8Vector.setSafe(rowCount, (Double) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java deleted file mode 100644 index de10a122f40e7..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/FloatParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.Float4Vector; -import org.opensearch.index.mapper.MappedFieldType; - -public class FloatParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - Float4Vector float4Vector = (Float4Vector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - float4Vector.setNull(rowCount); - } else { - float4Vector.setSafe(rowCount, (Float) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java deleted file mode 100644 index 4d393d3a804ce..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/HalfFloatParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.Float2Vector; -import org.opensearch.index.mapper.MappedFieldType; - -public class HalfFloatParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - Float2Vector float2Vector = (Float2Vector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - float2Vector.setNull(rowCount); - } else { - float2Vector.setSafe(rowCount, (Short) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java deleted file mode 100644 index 0a14344b6eaac..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/IntegerParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.IntVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class IntegerParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - IntVector intVector = (IntVector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - intVector.setNull(rowCount); - } else { - intVector.setSafe(rowCount, (Integer) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java deleted file mode 100644 index 7221d64c6590d..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/LongParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.BigIntVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class LongParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - BigIntVector bigIntVector = (BigIntVector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - bigIntVector.setNull(rowCount); - } else { - bigIntVector.setSafe(rowCount, (Long) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java deleted file mode 100644 index 8e28bdda9ba54..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/ShortParquetField.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.SmallIntVector; -import org.opensearch.index.mapper.MappedFieldType; - -public class ShortParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - SmallIntVector smallIntVector = (SmallIntVector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - smallIntVector.setNull(rowCount); - } else { - smallIntVector.setSafe(rowCount, (Short) parseValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java deleted file mode 100644 index ed5d4f5509a3d..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/number/UnsignedLongParquetField.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.number; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.UInt8Vector; -import org.opensearch.index.mapper.MappedFieldType; - -public class UnsignedLongParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - UInt8Vector uInt8Vector = (UInt8Vector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - if (parseValue == null) { - uInt8Vector.setNull(rowCount); - } else { - long longValue = ((Number) parseValue).longValue(); - uInt8Vector.setSafe(rowCount, longValue); - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java new file mode 100644 index 0000000000000..6ca4a639c9538 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java @@ -0,0 +1,104 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.plugins.fields; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.fields.core.data.BooleanParquetField; +import com.parquet.parquetdataformat.fields.core.data.DateParquetField; +import com.parquet.parquetdataformat.fields.core.data.KeywordParquetField; +import com.parquet.parquetdataformat.fields.core.data.TextParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.ByteParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.DoubleParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.FloatParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.HalfFloatParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.IntegerParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.LongParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.ShortParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.UnsignedLongParquetField; +import org.opensearch.index.mapper.BooleanFieldMapper; +import org.opensearch.index.mapper.DateFieldMapper; +import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.NumberFieldMapper; +import org.opensearch.index.mapper.TextFieldMapper; + +import java.util.HashMap; +import java.util.Map; + +/** + * Core data fields plugin that provides Parquet field implementations for all built-in OpenSearch field types. + * This plugin is automatically registered and provides the foundation field type support for Parquet storage. + */ +public class CoreDataFieldPlugin implements ParquetFieldPlugin { + + @Override + public Map getParquetFields() { + final Map fieldMap = new HashMap<>(); + + // Register numeric field types + registerNumericFields(fieldMap); + + // Register temporal field types + registerTemporalFields(fieldMap); + + // Register boolean field types + registerBooleanFields(fieldMap); + + // Register text-based field types + registerTextFields(fieldMap); + + return fieldMap; + } + + /** + * Registers all numeric field type mappings. + * + * @param fieldMap the map to populate with numeric field mappings + */ + private static void registerNumericFields(final Map fieldMap) { + // Floating point types + fieldMap.put(NumberFieldMapper.NumberType.HALF_FLOAT.typeName(), new HalfFloatParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.FLOAT.typeName(), new FloatParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.DOUBLE.typeName(), new DoubleParquetField()); + + // Integer types + fieldMap.put(NumberFieldMapper.NumberType.BYTE.typeName(), new ByteParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.SHORT.typeName(), new ShortParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.INTEGER.typeName(), new IntegerParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.LONG.typeName(), new LongParquetField()); + fieldMap.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), new UnsignedLongParquetField()); + } + + /** + * Registers all temporal field type mappings. + * + * @param fieldMap the map to populate with temporal field mappings + */ + private static void registerTemporalFields(final Map fieldMap) { + fieldMap.put(DateFieldMapper.CONTENT_TYPE, new DateParquetField()); + } + + /** + * Registers all boolean field type mappings. + * + * @param fieldMap the map to populate with boolean field mappings + */ + private static void registerBooleanFields(final Map fieldMap) { + fieldMap.put(BooleanFieldMapper.CONTENT_TYPE, new BooleanParquetField()); + } + + /** + * Registers all text-based field type mappings. + * + * @param fieldMap the map to populate with text field mappings + */ + private static void registerTextFields(final Map fieldMap) { + fieldMap.put(TextFieldMapper.CONTENT_TYPE, new TextParquetField()); + fieldMap.put(KeywordFieldMapper.CONTENT_TYPE, new KeywordParquetField()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/ParquetFieldPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/ParquetFieldPlugin.java new file mode 100644 index 0000000000000..09af099dc028a --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/ParquetFieldPlugin.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.plugins.fields; + +import com.parquet.parquetdataformat.fields.ParquetField; + +import java.util.Collections; +import java.util.Map; + +/** + * Plugin interface for registering custom Parquet field implementations. + * Plugins implementing this interface can register their field types with the ArrowFieldRegistry. + */ +public interface ParquetFieldPlugin { + + /** + * Returns additional Parquet field implementations added by this plugin. + * + * @return a map where keys are OpenSearch field type names and values are ParquetField instances + */ + default Map getParquetFields() { + return Collections.emptyMap(); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java index 8db471ee9a77a..922baa115b8d6 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java @@ -1,6 +1,7 @@ package com.parquet.parquetdataformat.writer; import com.parquet.parquetdataformat.fields.ArrowFieldRegistry; +import com.parquet.parquetdataformat.fields.ParquetField; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.mapper.MappedFieldType; @@ -37,7 +38,16 @@ public ParquetDocumentInput(ManagedVSR managedVSR) { @Override public void addField(MappedFieldType fieldType, Object value) { - ArrowFieldRegistry.getParquetField(fieldType.typeName()).createField(fieldType, managedVSR, value); + final String fieldTypeName = fieldType.typeName(); + final ParquetField parquetField = ArrowFieldRegistry.getParquetField(fieldTypeName); + + if (parquetField == null) { + throw new IllegalArgumentException( + String.format("Unsupported field type: %s. Field type is not registered in ArrowFieldRegistry.", fieldTypeName) + ); + } + + parquetField.createField(fieldType, managedVSR, value); } @Override diff --git a/server/src/main/java/org/apache/lucene/fields/BooleanLuceneField.java b/server/src/main/java/org/apache/lucene/fields/BooleanLuceneField.java new file mode 100644 index 0000000000000..5d8349a8c18bc --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/BooleanLuceneField.java @@ -0,0 +1,52 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields; + +import org.apache.lucene.document.Field; +import org.apache.lucene.document.FieldType; +import org.apache.lucene.document.SortedNumericDocValuesField; +import org.apache.lucene.document.StoredField; +import org.apache.lucene.index.IndexOptions; +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.ParseContext; + +public class BooleanLuceneField extends LuceneField { + + @Override + public void createField(MappedFieldType mappedFieldType, ParseContext.Document document, Object parseValue) { + final Boolean booleanValue = (Boolean) parseValue; + if (mappedFieldType.isSearchable()) { + document.add(new Field(mappedFieldType.name(), booleanValue ? "T" : "F", Defaults.FIELD_TYPE)); + } + if (mappedFieldType.isStored()) { + document.add(new StoredField(mappedFieldType.name(), booleanValue ? "T" : "F")); + } + if (mappedFieldType.hasDocValues()) { + document.add(new SortedNumericDocValuesField(mappedFieldType.name(), booleanValue ? 1 : 0)); + } else { +// createFieldNamesField(context); + } + } + + /** + * Default parameters for the boolean field mapper + * + * @opensearch.internal + */ + public static class Defaults { + public static final FieldType FIELD_TYPE = new FieldType(); + + static { + FIELD_TYPE.setOmitNorms(true); + FIELD_TYPE.setIndexOptions(IndexOptions.DOCS); + FIELD_TYPE.setTokenized(false); + FIELD_TYPE.freeze(); + } + } +} diff --git a/server/src/main/java/org/apache/lucene/fields/LuceneField.java b/server/src/main/java/org/apache/lucene/fields/LuceneField.java new file mode 100644 index 0000000000000..0537f4ffcd80b --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/LuceneField.java @@ -0,0 +1,17 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields; + +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.ParseContext; + +public abstract class LuceneField { + + public abstract void createField(MappedFieldType mappedFieldType, ParseContext.Document document, Object parseValue); +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/ByteLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/ByteLuceneField.java new file mode 100644 index 0000000000000..c7f2f842e6435 --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/ByteLuceneField.java @@ -0,0 +1,31 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +import org.apache.lucene.fields.LuceneField; +import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.NumberFieldMapper; +import org.opensearch.index.mapper.ParseContext; + +public class ByteLuceneField extends LuceneField { + + @Override + public void createField(MappedFieldType mappedFieldType, ParseContext.Document document, Object parseValue) { + + NumberFieldMapper.NumberFieldType numberFieldType = (NumberFieldMapper.NumberFieldType) mappedFieldType; + + //TODO: check how can we get the skiplist here +// document.addAll(numberFieldType.numberType().createFields(numberFieldType.name(), parseValue, +// numberFieldType.isSearchable(), numberFieldType.hasDocValues(), skiplist, numberFieldType.isStored())); + + if (numberFieldType.hasDocValues() == false && (numberFieldType.isStored() || numberFieldType.isSearchable())) { + + } + } +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/DoubleLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/DoubleLuceneField.java new file mode 100644 index 0000000000000..26f0aa6cc3b0d --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/DoubleLuceneField.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +public class DoubleLuceneField { +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/FloatLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/FloatLuceneField.java new file mode 100644 index 0000000000000..adb3aaa2ddfce --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/FloatLuceneField.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +public class FloatLuceneField { +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/HalfFloatLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/HalfFloatLuceneField.java new file mode 100644 index 0000000000000..56fcada6764e3 --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/HalfFloatLuceneField.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +public class HalfFloatLuceneField { +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/IntegerLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/IntegerLuceneField.java new file mode 100644 index 0000000000000..8fcd2d6bc0ea7 --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/IntegerLuceneField.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +public class IntegerLuceneField { +} diff --git a/server/src/main/java/org/apache/lucene/fields/number/LongLuceneField.java b/server/src/main/java/org/apache/lucene/fields/number/LongLuceneField.java new file mode 100644 index 0000000000000..0ccaf765d46a5 --- /dev/null +++ b/server/src/main/java/org/apache/lucene/fields/number/LongLuceneField.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.apache.lucene.fields.number; + +public class LongLuceneField { +} diff --git a/server/src/main/java/org/opensearch/common/settings/FeatureFlagSettings.java b/server/src/main/java/org/opensearch/common/settings/FeatureFlagSettings.java index ba6ba1f88b58c..f30b239116a5e 100644 --- a/server/src/main/java/org/opensearch/common/settings/FeatureFlagSettings.java +++ b/server/src/main/java/org/opensearch/common/settings/FeatureFlagSettings.java @@ -39,6 +39,7 @@ protected FeatureFlagSettings( FeatureFlags.TERM_VERSION_PRECOMMIT_ENABLE_SETTING, FeatureFlags.ARROW_STREAMS_SETTING, FeatureFlags.STREAM_TRANSPORT_SETTING, - FeatureFlags.MERGED_SEGMENT_WARMER_EXPERIMENTAL_SETTING + FeatureFlags.MERGED_SEGMENT_WARMER_EXPERIMENTAL_SETTING, + FeatureFlags.PLUGGABLE_DATAFORMAT_EXPERIMENTAL_SETTINGS ); } diff --git a/server/src/main/java/org/opensearch/common/util/FeatureFlags.java b/server/src/main/java/org/opensearch/common/util/FeatureFlags.java index c53922b0e5ceb..fc1ed5a9b8f5f 100644 --- a/server/src/main/java/org/opensearch/common/util/FeatureFlags.java +++ b/server/src/main/java/org/opensearch/common/util/FeatureFlags.java @@ -69,6 +69,17 @@ public class FeatureFlags { */ public static final String MERGED_SEGMENT_WARMER_EXPERIMENTAL_FLAG = "opensearch.experimental.feature.merged_segment_warmer.enabled"; + /** + * Gates the functionality of pluggable dataformat feature + */ + public static final String PLUGGABLE_DATAFORMAT_EXPERIMENTAL_FLAG = FEATURE_FLAG_PREFIX + "pluggable.dataformat.enabled"; + + // It is not allowing me use Property.Consistent, will have to see what other options we have to make this a Cluster level setting + public static final Setting PLUGGABLE_DATAFORMAT_EXPERIMENTAL_SETTINGS = Setting.boolSetting(PLUGGABLE_DATAFORMAT_EXPERIMENTAL_FLAG, + true, + Property.NodeScope + ); + public static final Setting REMOTE_STORE_MIGRATION_EXPERIMENTAL_SETTING = Setting.boolSetting( REMOTE_STORE_MIGRATION_EXPERIMENTAL, false, @@ -146,6 +157,7 @@ static class FeatureFlagsImpl { put(ARROW_STREAMS_SETTING, ARROW_STREAMS_SETTING.getDefault(Settings.EMPTY)); put(STREAM_TRANSPORT_SETTING, STREAM_TRANSPORT_SETTING.getDefault(Settings.EMPTY)); put(MERGED_SEGMENT_WARMER_EXPERIMENTAL_SETTING, MERGED_SEGMENT_WARMER_EXPERIMENTAL_SETTING.getDefault(Settings.EMPTY)); + put(PLUGGABLE_DATAFORMAT_EXPERIMENTAL_SETTINGS, PLUGGABLE_DATAFORMAT_EXPERIMENTAL_SETTINGS.get(Settings.EMPTY)); } }; diff --git a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java index 1bd83dc8cdf54..452922a98ec5e 100644 --- a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java @@ -390,18 +390,21 @@ protected void parseCreateField(ParseContext context) throws IOException { return; } - context.compositeDocumentInput().addField(fieldType(), value); -// if (indexed) { -// context.doc().add(new Field(fieldType().name(), value ? "T" : "F", Defaults.FIELD_TYPE)); -// } -// if (stored) { -// context.doc().add(new StoredField(fieldType().name(), value ? "T" : "F")); -// } -// if (hasDocValues) { -// context.doc().add(new SortedNumericDocValuesField(fieldType().name(), value ? 1 : 0)); -// } else { -// createFieldNamesField(context); -// } + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + if (indexed) { + context.doc().add(new Field(fieldType().name(), value ? "T" : "F", Defaults.FIELD_TYPE)); + } + if (stored) { + context.doc().add(new StoredField(fieldType().name(), value ? "T" : "F")); + } + if (hasDocValues) { + context.doc().add(new SortedNumericDocValuesField(fieldType().name(), value ? 1 : 0)); + } else { + createFieldNamesField(context); + } + } } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java index f21ef93522b9d..e77849404a585 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java @@ -845,23 +845,25 @@ protected void parseCreateField(ParseContext context) throws IOException { } } - context.compositeDocumentInput().addField(fieldType(), timestamp); - -// if (indexed) { -// context.doc().add(new LongPoint(fieldType().name(), timestamp)); -// } -// if (hasDocValues) { -// if (skiplist || isSkiplistDefaultEnabled(context.indexSettings().getIndexSortConfig(), fieldType().name())) { -// context.doc().add(SortedNumericDocValuesField.indexedField(fieldType().name(), timestamp)); -// } else { -// context.doc().add(new SortedNumericDocValuesField(fieldType().name(), timestamp)); -// } -// } else if (store || indexed) { -// createFieldNamesField(context); -// } -// if (store) { -// context.doc().add(new StoredField(fieldType().name(), timestamp)); -// } + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), timestamp); + } else { + if (indexed) { + context.doc().add(new LongPoint(fieldType().name(), timestamp)); + } + if (hasDocValues) { + if (skiplist || isSkiplistDefaultEnabled(context.indexSettings().getIndexSortConfig(), fieldType().name())) { + context.doc().add(SortedNumericDocValuesField.indexedField(fieldType().name(), timestamp)); + } else { + context.doc().add(new SortedNumericDocValuesField(fieldType().name(), timestamp)); + } + } else if (store || indexed) { + createFieldNamesField(context); + } + if (store) { + context.doc().add(new StoredField(fieldType().name(), timestamp)); + } + } } boolean isSkiplistDefaultEnabled(IndexSortConfig indexSortConfig, String fieldName) { diff --git a/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java index 240d7fed16b60..f7bca0ec83ed7 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java @@ -149,8 +149,9 @@ protected void parseCreateField(ParseContext context) throws IOException { if (value <= 0) { throw new IllegalArgumentException("Field [" + fieldType().name() + "] must be a positive integer."); } - final Field docCount = new NumericDocValuesField(NAME, value); - context.doc().add(docCount); + context.compositeDocumentInput().addField(fieldType(), value); +// final Field docCount = new NumericDocValuesField(NAME, value); +// context.doc().add(docCount); } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java index aaa2c9c029974..6089a7a5ca9b8 100644 --- a/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java @@ -41,6 +41,7 @@ import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Setting.Property; import org.opensearch.common.settings.Settings; +import org.opensearch.common.util.FeatureFlags; import org.opensearch.core.xcontent.AbstractXContentParser; import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.core.xcontent.XContentParser; @@ -336,11 +337,19 @@ protected final void createFieldNamesField(ParseContext context) { FieldNamesFieldType fieldNamesFieldType = context.docMapper().metadataMapper(FieldNamesFieldMapper.class).fieldType(); if (fieldNamesFieldType != null && fieldNamesFieldType.isEnabled()) { for (String fieldName : FieldNamesFieldMapper.extractFieldNames(fieldType().name())) { - context.doc().add(new Field(FieldNamesFieldMapper.NAME, fieldName, FieldNamesFieldMapper.Defaults.FIELD_TYPE)); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldNamesFieldType, fieldName); + } else { + context.doc().add(new Field(FieldNamesFieldMapper.NAME, fieldName, FieldNamesFieldMapper.Defaults.FIELD_TYPE)); + } } } } + protected final boolean isPluggableDataFormatFeatureEnabled() { + return FeatureFlags.isEnabled(FeatureFlags.PLUGGABLE_DATAFORMAT_EXPERIMENTAL_FLAG); + } + @Override public Iterator iterator() { return multiFields.iterator(); diff --git a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java index 1bf76a6420f4c..bfe9151150aba 100644 --- a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java @@ -862,22 +862,24 @@ protected void parseCreateField(ParseContext context) throws IOException { value = normalizeValue(normalizer, name(), value); } - context.compositeDocumentInput().addField(fieldType(), value); - - // convert to utf8 only once before feeding postings/dv/stored fields -// final BytesRef binaryValue = new BytesRef(value); -// if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { -// Field field = new KeywordField(fieldType().name(), binaryValue, fieldType); -// context.doc().add(field); -// -// if (fieldType().hasDocValues() == false && fieldType.omitNorms()) { -// createFieldNamesField(context); -// } -// } -// -// if (fieldType().hasDocValues()) { -// context.doc().add(new SortedSetDocValuesField(fieldType().name(), binaryValue)); -// } + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + // convert to utf8 only once before feeding postings/dv/stored fields + final BytesRef binaryValue = new BytesRef(value); + if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { + Field field = new KeywordField(fieldType().name(), binaryValue, fieldType); + context.doc().add(field); + + if (fieldType().hasDocValues() == false && fieldType.omitNorms()) { + createFieldNamesField(context); + } + } + + if (fieldType().hasDocValues()) { + context.doc().add(new SortedSetDocValuesField(fieldType().name(), binaryValue)); + } + } } static String normalizeValue(NamedAnalyzer normalizer, String field, String value) throws IOException { diff --git a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java index 9895d264de390..0cb637fae9993 100644 --- a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java @@ -58,6 +58,7 @@ import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Setting.Property; import org.opensearch.common.settings.Settings; +import org.opensearch.common.util.FeatureFlags; import org.opensearch.common.xcontent.support.XContentMapValues; import org.opensearch.core.common.bytes.BytesArray; import org.opensearch.core.xcontent.XContentBuilder; @@ -2171,12 +2172,14 @@ protected void parseCreateField(ParseContext context) throws IOException { numericValue = fieldType().type.parse(value, coerce.value()); } - context.compositeDocumentInput().addField(fieldType(), numericValue); - -// context.doc().addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, hasDocValues, skiplist, stored)); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), numericValue); + } else { + context.doc().addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, hasDocValues, skiplist, stored)); - if (hasDocValues == false && (stored || indexed)) { - createFieldNamesField(context); + if (hasDocValues == false && (stored || indexed)) { + createFieldNamesField(context); + } } } diff --git a/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java index bb726893b3d17..bc4fe901935d4 100644 --- a/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java @@ -1046,17 +1046,21 @@ protected void parseCreateField(ParseContext context) throws IOException { return; } - if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { - Field field = new Field(fieldType().name(), value, fieldType); - context.doc().add(field); - if (fieldType.omitNorms()) { - createFieldNamesField(context); - } - if (prefixFieldMapper != null) { - prefixFieldMapper.addField(context, value); - } - if (phraseFieldMapper != null) { - context.doc().add(new Field(phraseFieldMapper.fieldType().name(), value, phraseFieldMapper.fieldType)); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + if (fieldType.indexOptions() != IndexOptions.NONE || fieldType.stored()) { + Field field = new Field(fieldType().name(), value, fieldType); + context.doc().add(field); + if (fieldType.omitNorms()) { + createFieldNamesField(context); + } + if (prefixFieldMapper != null) { + prefixFieldMapper.addField(context, value); + } + if (phraseFieldMapper != null) { + context.doc().add(new Field(phraseFieldMapper.fieldType().name(), value, phraseFieldMapper.fieldType)); + } } } } From 0541444c22e47235769d5cc1a315a508b05122cd Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Thu, 23 Oct 2025 12:46:47 -0700 Subject: [PATCH 032/112] TermAggregation changes and handling average with projects, filters and groupBy (#19749) Signed-off-by: expani --- .../datafusion/DatafusionEngine.java | 4 +- .../datafusion/search/DatafusionContext.java | 10 +++- .../action/search/TransportSearchAction.java | 1 + .../index/engine/SearchExecEngine.java | 2 +- .../org/opensearch/search/SearchService.java | 5 +- .../aggregations/ShardResultConvertor.java | 14 ++++- .../bucket/composite/CompositeAggregator.java | 58 ++++++++++++++++++- .../aggregations/metrics/AvgAggregator.java | 11 +++- .../aggregations/metrics/MaxAggregator.java | 10 +--- .../aggregations/metrics/MinAggregator.java | 10 +--- .../aggregations/metrics/SumAggregator.java | 10 +--- .../metrics/ValueCountAggregator.java | 8 +-- .../search/internal/SearchContext.java | 4 ++ .../opensearch/search/query/QueryPhase.java | 4 +- .../SearchEngineResultConversionUtils.java | 4 +- 15 files changed, 115 insertions(+), 40 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 15ee31ca7663a..479d6cf03abc0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -77,8 +77,8 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { } @Override - public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, BigArrays bigArrays) throws IOException { - DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this, bigArrays); + public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, BigArrays bigArrays, SearchContext originalContext) throws IOException { + DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this, bigArrays, originalContext); // Parse source datafusionContext.datafusionQuery(new DatafusionQuery(request.source().queryPlanIR(), new ArrayList<>())); return datafusionContext; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index c1cb5e00c7d4b..11ffcf8d53a63 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -80,6 +80,7 @@ public class DatafusionContext extends SearchContext { private SearchContextAggregations aggregations; private final BigArrays bigArrays; private final Map, CollectorManager> queryCollectorManagers = new HashMap<>(); + private final SearchContext originalContext; /** * Constructor @@ -94,7 +95,8 @@ public DatafusionContext( SearchShardTarget searchShardTarget, SearchShardTask task, DatafusionEngine engine, - BigArrays bigArrays) { + BigArrays bigArrays, + SearchContext originalContext) { this.readerContext = readerContext; this.indexShard = readerContext.indexShard(); this.request = request; @@ -113,6 +115,7 @@ public DatafusionContext( false // specific to lucene ); this.bigArrays = bigArrays; + this.originalContext = originalContext; } /** @@ -123,6 +126,11 @@ public DatafusionEngine readEngine() { return readEngine; } + @Override + public SearchContext getOriginalContext() { + return originalContext; + } + /** * Sets datafusion query * @param datafusionQuery The datafusion query diff --git a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java index 541ed989b35a8..b47ae243788f7 100644 --- a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java +++ b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java @@ -324,6 +324,7 @@ protected void doExecute(Task task, SearchRequest searchRequest, ActionListener< ); } executeRequest(task, searchRequest, this::searchAsyncAction, listener); + logger.info("Search request received is {}", searchRequest.source()); } /** diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index 4bbd54c273b07..7a08dd16983bc 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -45,7 +45,7 @@ public abstract class SearchExecEngine convert(Map shardResult); + default List convert(Map shardResult) { + int rows = shardResult.entrySet().stream().findFirst().get().getValue().length; + List internalAggregations = new ArrayList<>(); + for (int i = 0; i < rows; i++) { + internalAggregations.add(convertRow(shardResult, i)); + } + return internalAggregations; + } + + default InternalAggregation convertRow(Map shardResult, int row) { + throw new UnsupportedOperationException("Row conversion not supported"); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index dc3411f654022..73de1b76b3d35 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -72,6 +72,7 @@ import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.MultiBucketCollector; import org.opensearch.search.aggregations.MultiBucketConsumerService; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.bucket.BucketsAggregator; import org.opensearch.search.aggregations.bucket.filterrewrite.CompositeAggregatorBridge; import org.opensearch.search.aggregations.bucket.filterrewrite.FilterRewriteOptimizationContext; @@ -100,7 +101,7 @@ * * @opensearch.internal */ -public final class CompositeAggregator extends BucketsAggregator { +public final class CompositeAggregator extends BucketsAggregator implements ShardResultConvertor { private final int size; private final List sourceNames; private final int[] reverseMuls; @@ -727,6 +728,61 @@ public void collect(int doc, long zeroBucket) throws IOException { }; } + @Override + public List convert(Map shardResult) { + // Generate the composite keys + List currentCompositeKey = new ArrayList<>(sourceConfigs.length); + List compositeKeys = new ArrayList<>(shardResult.size()); + for (int i = 0; i < shardResult.get(shardResult.keySet().stream().findFirst().get()).length; i++) { + for (CompositeValuesSourceConfig sourceConfig : sourceConfigs) { + if (sourceConfig.fieldType() == null) { + throw new UnsupportedOperationException("Composite aggregation does not support script field types"); + } + Object[] values = shardResult.get(sourceConfig.fieldType().name()); + // TODO : Would require conversion for certain types, + currentCompositeKey.add((Comparable) values[i]); + } + compositeKeys.add(new CompositeKey(currentCompositeKey.toArray(new Comparable[0]))); + currentCompositeKey.clear(); + } + List buckets = new ArrayList<>(); + int row = 0; + for (CompositeKey compositeKey : compositeKeys) { + List subAggs = new ArrayList<>(); + for (Aggregator subAgg : subAggregators) { + if (subAgg instanceof ShardResultConvertor == false) { + throw new UnsupportedOperationException(String.format("Aggregation [%s] doesn't support shard result conversion Impl [%s]", subAgg.name(), subAgg.getClass().getName())); + } + ShardResultConvertor convertor = (ShardResultConvertor) subAgg; + subAggs.add(convertor.convertRow(shardResult, row)); + } + buckets.add(new InternalComposite.InternalBucket( + sourceNames, + formats, + compositeKey, + reverseMuls, + missingOrders, + 1, + InternalAggregations.from(subAggs) + )); + row++; + } + CompositeKey lastBucket = buckets.isEmpty() ? null : buckets.getLast().getRawKey(); + return List.of( + new InternalComposite( + name, + size, + sourceNames, + formats, + buckets, + lastBucket, + reverseMuls, + missingOrders, + earlyTerminated, + metadata() + )); + } + /** * An entry in the composite aggregator * diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 2ad44cd33aa74..0e6bdaf4a32ae 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -49,6 +49,7 @@ import org.opensearch.search.DocValueFormat; import org.opensearch.search.aggregations.Aggregator; import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.InternalAggregations; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; import org.opensearch.search.aggregations.ShardResultConvertor; @@ -61,6 +62,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -285,8 +287,15 @@ public List convert(Map shardResult) { Object[] sums = shardResult.get(name + "_sum"); List results = new ArrayList<>(counts.length); for (int i = 0; i < counts.length; i++) { - results.add(new InternalAvg(name, (Long) counts[i], (Long) sums[i], format, metadata())); + results.add(new InternalAvg(name, (Long) sums[i], (Long) counts[i], format, metadata())); } return results; } + + @Override + public InternalAggregation convertRow(Map shardResult, int row) { + Object[] counts = shardResult.get(name + "_count"); + Object[] sums = shardResult.get(name + "_sum"); + return new InternalAvg(name, (Long) counts[row], (Long) sums[row], format, metadata()); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java index add06f8d2015a..5186dcbd26051 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java @@ -292,12 +292,8 @@ public StreamingCostMetrics getStreamingCostMetrics() { } @Override - public List convert(Map shardResult) { - Object[] values = shardResult.get(name); - List results = new ArrayList<>(values.length); - for (Object value : values) { - results.add(new InternalMax(name, (Long) value, formatter, metadata())); - } - return results; + public InternalAggregation convertRow(Map shardResult, int row) { + Object[] values = shardResult.get(name); + return new InternalMax(name, (Long) values[row], formatter, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java index 0bbb337cf94a4..d8eee716351aa 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java @@ -278,13 +278,9 @@ public StarTreeBucketCollector getStarTreeBucketCollector( } @Override - public List convert(Map shardResult) { - Object[] values = shardResult.get(name); - List results = new ArrayList<>(values.length); - for (Object value : values) { - results.add(new InternalMin(name, (Long) value, format, metadata())); - } - return results; + public InternalAggregation convertRow(Map shardResult, int row) { + Object[] values = shardResult.get(name); + return new InternalMin(name, (Long) values[row], format, metadata()); } @Override diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java index 0a611329a2fa8..ca71213755698 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java @@ -220,12 +220,8 @@ public void doClose() { } @Override - public List convert(Map shardResult) { - Object[] values = shardResult.get(name); - List results = new ArrayList<>(values.length); - for (Object value : values) { - results.add(new InternalSum(name, (Long) value, format, metadata())); - } - return results; + public InternalAggregation convertRow(Map shardResult, int row) { + Object[] values = shardResult.get(name); + return new InternalSum(name, (Long) values[row], format, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java index 76c5bb31fd166..f0bf15669bf23 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java @@ -214,12 +214,8 @@ public StarTreeBucketCollector getStarTreeBucketCollector( } @Override - public List convert(Map shardResult) { + public InternalAggregation convertRow(Map shardResult, int row) { Object[] values = shardResult.get(name); - List results = new ArrayList<>(values.length); - for (Object value : values) { - results.add(new InternalValueCount(name, (Long) value, metadata())); - } - return results; + return new InternalValueCount(name, (Long) values[row], metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/internal/SearchContext.java b/server/src/main/java/org/opensearch/search/internal/SearchContext.java index c0f68674d737a..5cc9905c574ec 100644 --- a/server/src/main/java/org/opensearch/search/internal/SearchContext.java +++ b/server/src/main/java/org/opensearch/search/internal/SearchContext.java @@ -199,6 +199,10 @@ public final void close() { public abstract void highlight(SearchHighlightContext highlight); + public SearchContext getOriginalContext() { + return this; + } + public InnerHitsContext innerHits() { if (innerHitsContext == null) { innerHitsContext = new InnerHitsContext(); diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhase.java b/server/src/main/java/org/opensearch/search/query/QueryPhase.java index 25cceae77bfd5..f68c751f19965 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhase.java @@ -151,11 +151,11 @@ public void execute(SearchContext searchContext) throws QueryPhaseExecutionExcep } // Keeping AggregationProcessor and preProcess uncommented since it builds aggregation nesting - final AggregationProcessor aggregationProcessor = queryPhaseSearcher.aggregationProcessor(searchContext); + final AggregationProcessor aggregationProcessor = queryPhaseSearcher.aggregationProcessor(searchContext.getOriginalContext()); // Pre-process aggregations as late as possible. In the case of a DFS_Q_T_F // request, preProcess is called on the DFS phase phase, this is why we pre-process them // here to make sure it happens during the QUERY phase - aggregationProcessor.preProcess(searchContext); + aggregationProcessor.preProcess(searchContext.getOriginalContext()); searchContext.queryResult() .topDocs( diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java index 9e9ac280453e3..586dce7c1e9c9 100644 --- a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -35,11 +35,11 @@ public static void convertDFResultGeneric(SearchContext searchContext) { List aggregators = new ArrayList<>(); if (searchContext.aggregations().factories().hasGlobalAggregator()) { - aggregators.addAll(searchContext.aggregations().factories().createTopLevelGlobalAggregators(searchContext)); + aggregators.addAll(searchContext.aggregations().factories().createTopLevelGlobalAggregators(searchContext.getOriginalContext())); } if (searchContext.aggregations().factories().hasNonGlobalAggregator()) { - aggregators.addAll(searchContext.aggregations().factories().createTopLevelNonGlobalAggregators(searchContext)); + aggregators.addAll(searchContext.aggregations().factories().createTopLevelNonGlobalAggregators(searchContext.getOriginalContext())); } List shardResultConvertors = aggregators.stream().map(x -> { From c61849d73b86568621472a670864518eacd9c32d Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Fri, 24 Oct 2025 22:29:18 +0530 Subject: [PATCH 033/112] Adding Ip, TokenCount, Size, ScaledFloat, Binary and DocCount ParquetFields (#19718) * Adding Ip, TokenCount, Size and DocCount ParquetFields Signed-off-by: Sagar Darji (cherry picked from commit 70865d368a67b41cf3298b3680cec67f2233dd82) * Adding ScaledFloat and Binary Parquet fields Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji --- .../index/mapper/ScaledFloatFieldMapper.java | 26 ++++---- .../index/mapper/TokenCountFieldMapper.java | 12 ++-- .../fields/ArrowFieldRegistry.java | 4 ++ .../fields/core/data/BinaryParquetField.java | 36 ++++++++++ .../fields/core/data/IpParquetField.java | 66 +++++++++++++++++++ .../core/data/TokenCountParquetField.java | 61 +++++++++++++++++ .../core/data/date/DateNanosParquetField.java | 61 +++++++++++++++++ .../data/{ => date}/DateParquetField.java | 12 ++-- .../core/metadata/DocCountParquetField.java | 61 +++++++++++++++++ .../core/metadata/SizeParquetField.java | 61 +++++++++++++++++ .../plugins/fields/CoreDataFieldPlugin.java | 24 ++++++- .../plugins/fields/MetadataFieldPlugin.java | 40 +++++++++++ .../index/mapper/size/SizeFieldMapper.java | 7 +- .../index/mapper/BinaryFieldMapper.java | 33 ++++++---- .../index/mapper/DocCountFieldMapper.java | 10 ++- .../index/mapper/IpFieldMapper.java | 28 ++++---- 16 files changed, 490 insertions(+), 52 deletions(-) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java rename modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/{ => date}/DateParquetField.java (82%) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java diff --git a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java index c2821c633c686..78e8bbec3d2a5 100644 --- a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java @@ -498,18 +498,22 @@ protected void parseCreateField(ParseContext context) throws IOException { } long scaledValue = Math.round(doubleValue * scalingFactor); - List fields = NumberFieldMapper.NumberType.LONG.createFields( - fieldType().name(), - scaledValue, - indexed, - hasDocValues, - skiplist, - stored - ); - context.doc().addAll(fields); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), scaledValue); + } else { + List fields = NumberFieldMapper.NumberType.LONG.createFields( + fieldType().name(), + scaledValue, + indexed, + hasDocValues, + skiplist, + stored + ); + context.doc().addAll(fields); - if (hasDocValues == false && (indexed || stored)) { - createFieldNamesField(context); + if (hasDocValues == false && (indexed || stored)) { + createFieldNamesField(context); + } } } diff --git a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/TokenCountFieldMapper.java b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/TokenCountFieldMapper.java index 929a9890a9ec9..ab19445e865fe 100644 --- a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/TokenCountFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/TokenCountFieldMapper.java @@ -185,10 +185,14 @@ protected void parseCreateField(ParseContext context) throws IOException { tokenCount = countPositions(analyzer, name(), value, enablePositionIncrements); } - context.doc() - .addAll( - NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, index, hasDocValues, skiplist, store) - ); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), tokenCount); + } else { + context.doc() + .addAll( + NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, index, hasDocValues, skiplist, store) + ); + } } /** diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java index 0b7f75ddbe5b5..48f1426a476a2 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java @@ -9,6 +9,7 @@ package com.parquet.parquetdataformat.fields; import com.parquet.parquetdataformat.plugins.fields.CoreDataFieldPlugin; +import com.parquet.parquetdataformat.plugins.fields.MetadataFieldPlugin; import com.parquet.parquetdataformat.plugins.fields.ParquetFieldPlugin; import java.util.Collections; @@ -58,6 +59,9 @@ public static synchronized void initialize() { private static void registerCorePlugins() { // Register core data fields registerPlugin(new CoreDataFieldPlugin(), "CoreDataFields"); + + // REgister metadata fields + registerPlugin(new MetadataFieldPlugin(), "MetadataFields"); } /** * Register a single plugin's field types. diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java new file mode 100644 index 0000000000000..ef68ff94e3dc8 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarBinaryVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +public class BinaryParquetField extends ParquetField { + + @Override + protected void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + final VarBinaryVector varBinaryVector = (VarBinaryVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + varBinaryVector.set(rowCount, (byte[]) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Binary(); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java new file mode 100644 index 0000000000000..6553bf79636ef --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java @@ -0,0 +1,66 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.apache.lucene.document.InetAddressPoint; +import org.apache.lucene.util.BytesRef; +import org.opensearch.index.mapper.MappedFieldType; + +import java.net.InetAddress; + +/** + * Parquet field implementation for handling IP address data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch IP fields and Apache Arrow + * UTF-8 string vectors for columnar storage in Parquet format. IP address values are encoded + * using Lucene's {@link InetAddressPoint} encoding and stored using Apache Arrow's + * {@link VarCharVector}, which provides efficient variable-length binary storage.

+ * + *

This field type corresponds to OpenSearch's {@code ip} field mapping, which is used + * for storing IPv4 and IPv6 addresses. The IP addresses are internally encoded as binary + * data using Lucene's point encoding for efficient range queries and storage optimization.

+ * + *

Usage Example:

+ *
{@code
+ * IpParquetField ipField = new IpParquetField();
+ * ArrowType arrowType = ipField.getArrowType(); // Returns ArrowType.Utf8
+ * FieldType fieldType = ipField.getFieldType(); // Returns nullable UTF-8 field type
+ * }
+ * + * @see ParquetField + * @see VarCharVector + * @see InetAddressPoint + * @see ArrowType.Utf8 + * @since 1.0 + */ +public class IpParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector varCharVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + final BytesRef bytesRef = new BytesRef(InetAddressPoint.encode((InetAddress) parseValue)); + varCharVector.setSafe(rowIndex, bytesRef.bytes, bytesRef.offset, bytesRef.length); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Utf8(); + } + + @Override + public FieldType getFieldType() { + return FieldType.nullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java new file mode 100644 index 0000000000000..bac92cb196e48 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling token count data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch token count fields and Apache Arrow + * 32-bit signed integer vectors for columnar storage in Parquet format. Token count values are stored + * using Apache Arrow's {@link IntVector}, which provides efficient storage for signed integer values + * representing the number of tokens in analyzed text fields.

+ * + *

This field type corresponds to OpenSearch's {@code token_count} field mapping, which is used + * for storing the count of tokens produced by text analysis. This field is particularly useful + * for implementing token-based queries, analyzing text complexity, and performing aggregations + * based on document length in terms of token count.

+ * + *

Usage Example:

+ *
{@code
+ * TokenCountParquetField tokenCountField = new TokenCountParquetField();
+ * ArrowType arrowType = tokenCountField.getArrowType(); // Returns ArrowType.Int(32, true)
+ * FieldType fieldType = tokenCountField.getFieldType(); // Returns non-nullable 32-bit signed integer field type
+ * }
+ * + * @see ParquetField + * @see IntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class TokenCountParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + IntVector intVector = (IntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + intVector.setSafe(rowCount, (Integer) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(32, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java new file mode 100644 index 0000000000000..43592b5264f02 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.data.date; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.TimeStampNanoVector; +import org.apache.arrow.vector.types.TimeUnit; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling date and timestamp data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch date fields and Apache Arrow + * timestamp vectors for columnar storage in Parquet format. Date values are stored using + * Apache Arrow's {@link TimeStampNanoVector}, which stores timestamps as nanoseconds since the + * Unix epoch (January 1, 1970, 00:00:00 UTC).

+ * + *

This field type corresponds to OpenSearch's {@code date_nanos} field mapping and supports + * various date formats as configured in the field mapping. All dates are normalized to + * nanosecond timestamps before storage in the Arrow vector.

+ * + *

Usage Example:

+ *
{@code
+ * DateParquetField dateField = new DateParquetField();
+ * ArrowType arrowType = dateField.getArrowType(); // Returns Timestamp with NANOSECOND precision
+ * FieldType fieldType = dateField.getFieldType(); // Returns non-nullable timestamp field type
+ * }
+ * + * @see ParquetField + * @see TimeStampNanoVector + * @see ArrowType.Timestamp + * @since 1.0 + */ +public class DateNanosParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + TimeStampNanoVector timeStampNanoVector = (TimeStampNanoVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + timeStampNanoVector.setSafe(rowIndex, (long) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Timestamp(TimeUnit.NANOSECOND, null); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java similarity index 82% rename from modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java rename to modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java index 766895b310e6d..f995a766ce714 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/DateParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java @@ -6,11 +6,11 @@ * compatible open source license. */ -package com.parquet.parquetdataformat.fields.core.data; +package com.parquet.parquetdataformat.fields.core.data.date; import com.parquet.parquetdataformat.fields.ParquetField; import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.DateMilliVector; +import org.apache.arrow.vector.TimeStampMilliVector; import org.apache.arrow.vector.types.TimeUnit; import org.apache.arrow.vector.types.pojo.ArrowType; import org.apache.arrow.vector.types.pojo.FieldType; @@ -21,7 +21,7 @@ * *

This class provides the conversion logic between OpenSearch date fields and Apache Arrow * timestamp vectors for columnar storage in Parquet format. Date values are stored using - * Apache Arrow's {@link DateMilliVector}, which stores timestamps as milliseconds since the + * Apache Arrow's {@link TimeStampMilliVector}, which stores timestamps as milliseconds since the * Unix epoch (January 1, 1970, 00:00:00 UTC).

* *

This field type corresponds to OpenSearch's {@code date} field mapping and supports @@ -36,7 +36,7 @@ * } * * @see ParquetField - * @see DateMilliVector + * @see TimeStampMilliVector * @see ArrowType.Timestamp * @since 1.0 */ @@ -44,9 +44,9 @@ public class DateParquetField extends ParquetField { @Override public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - DateMilliVector dateMilliVector = (DateMilliVector) managedVSR.getVector(mappedFieldType.name()); + TimeStampMilliVector timeStampMilliVector = (TimeStampMilliVector) managedVSR.getVector(mappedFieldType.name()); int rowIndex = managedVSR.getRowCount(); - dateMilliVector.setSafe(rowIndex, (long) parseValue); + timeStampMilliVector.setSafe(rowIndex, (long) parseValue); } @Override diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java new file mode 100644 index 0000000000000..e7e61abaa4f35 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.metadata; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.UInt8Vector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling document count metadata in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch document count fields and Apache Arrow + * unsigned 64-bit integer vectors for columnar storage in Parquet format. Document count values are stored + * using Apache Arrow's {@link UInt8Vector}, which provides efficient storage for unsigned integer values + * representing the number of documents or occurrences.

+ * + *

This field type corresponds to OpenSearch's {@code _doc_count} metadata field, which is used + * for storing aggregated document counts in pre-aggregated indices or rollup operations. The field + * stores non-negative integer values representing document frequencies or counts.

+ * + *

Usage Example:

+ *
{@code
+ * DocCountParquetField docCountField = new DocCountParquetField();
+ * ArrowType arrowType = docCountField.getArrowType(); // Returns ArrowType.Int(64, false)
+ * FieldType fieldType = docCountField.getFieldType(); // Returns non-nullable 64-bit integer field type
+ * }
+ * + * @see ParquetField + * @see UInt8Vector + * @see ArrowType.Int + * @since 1.0 + */ +public class DocCountParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + UInt8Vector uInt8Vector = (UInt8Vector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + long longValue = ((Number) parseValue).longValue(); + uInt8Vector.setSafe(rowCount, longValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(64, false); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java new file mode 100644 index 0000000000000..df87af1956a36 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.metadata; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling document size metadata in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch document size fields and Apache Arrow + * 32-bit signed integer vectors for columnar storage in Parquet format. Document size values are stored + * using Apache Arrow's {@link IntVector}, which provides efficient storage for signed integer values + * representing the size of documents in bytes.

+ * + *

This field type corresponds to OpenSearch's {@code _size} metadata field, which is used + * for storing the size of the original document source in bytes. This field is particularly useful + * for monitoring storage usage, implementing size-based queries, and analyzing document distribution + * by size across indices.

+ * + *

Usage Example:

+ *
{@code
+ * SizeParquetField sizeField = new SizeParquetField();
+ * ArrowType arrowType = sizeField.getArrowType(); // Returns ArrowType.Int(32, true)
+ * FieldType fieldType = sizeField.getFieldType(); // Returns non-nullable 32-bit signed integer field type
+ * }
+ * + * @see ParquetField + * @see IntVector + * @see ArrowType.Int + * @since 1.0 + */ +public class SizeParquetField extends ParquetField { + + @Override + public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + IntVector intVector = (IntVector) managedVSR.getVector(mappedFieldType.name()); + int rowCount = managedVSR.getRowCount(); + intVector.setSafe(rowCount, (Integer) parseValue); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Int(32, true); + } + + @Override + public FieldType getFieldType() { + return FieldType.notNullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java index 6ca4a639c9538..20bdfc9610d13 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/CoreDataFieldPlugin.java @@ -9,8 +9,12 @@ package com.parquet.parquetdataformat.plugins.fields; import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.fields.core.data.BinaryParquetField; +import com.parquet.parquetdataformat.fields.core.data.date.DateNanosParquetField; +import com.parquet.parquetdataformat.fields.core.data.TokenCountParquetField; import com.parquet.parquetdataformat.fields.core.data.BooleanParquetField; -import com.parquet.parquetdataformat.fields.core.data.DateParquetField; +import com.parquet.parquetdataformat.fields.core.data.date.DateParquetField; +import com.parquet.parquetdataformat.fields.core.data.IpParquetField; import com.parquet.parquetdataformat.fields.core.data.KeywordParquetField; import com.parquet.parquetdataformat.fields.core.data.TextParquetField; import com.parquet.parquetdataformat.fields.core.data.number.ByteParquetField; @@ -21,8 +25,10 @@ import com.parquet.parquetdataformat.fields.core.data.number.LongParquetField; import com.parquet.parquetdataformat.fields.core.data.number.ShortParquetField; import com.parquet.parquetdataformat.fields.core.data.number.UnsignedLongParquetField; +import org.opensearch.index.mapper.BinaryFieldMapper; import org.opensearch.index.mapper.BooleanFieldMapper; import org.opensearch.index.mapper.DateFieldMapper; +import org.opensearch.index.mapper.IpFieldMapper; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.NumberFieldMapper; import org.opensearch.index.mapper.TextFieldMapper; @@ -52,6 +58,9 @@ public Map getParquetFields() { // Register text-based field types registerTextFields(fieldMap); + // Register binary field types + registerBinaryFields(fieldMap); + return fieldMap; } @@ -72,6 +81,8 @@ private static void registerNumericFields(final Map fieldM fieldMap.put(NumberFieldMapper.NumberType.INTEGER.typeName(), new IntegerParquetField()); fieldMap.put(NumberFieldMapper.NumberType.LONG.typeName(), new LongParquetField()); fieldMap.put(NumberFieldMapper.NumberType.UNSIGNED_LONG.typeName(), new UnsignedLongParquetField()); + fieldMap.put("token_count", new TokenCountParquetField()); + fieldMap.put("scaled_float", new LongParquetField()); } /** @@ -81,6 +92,7 @@ private static void registerNumericFields(final Map fieldM */ private static void registerTemporalFields(final Map fieldMap) { fieldMap.put(DateFieldMapper.CONTENT_TYPE, new DateParquetField()); + fieldMap.put(DateFieldMapper.DATE_NANOS_CONTENT_TYPE, new DateNanosParquetField()); } /** @@ -92,6 +104,15 @@ private static void registerBooleanFields(final Map fieldM fieldMap.put(BooleanFieldMapper.CONTENT_TYPE, new BooleanParquetField()); } + /** + * Registers all binary field type mappings. + * + * @param fieldMap the map to populate with binary field mappings + */ + private static void registerBinaryFields(final Map fieldMap) { + fieldMap.put(BinaryFieldMapper.CONTENT_TYPE, new BinaryParquetField()); + } + /** * Registers all text-based field type mappings. * @@ -100,5 +121,6 @@ private static void registerBooleanFields(final Map fieldM private static void registerTextFields(final Map fieldMap) { fieldMap.put(TextFieldMapper.CONTENT_TYPE, new TextParquetField()); fieldMap.put(KeywordFieldMapper.CONTENT_TYPE, new KeywordParquetField()); + fieldMap.put(IpFieldMapper.CONTENT_TYPE, new IpParquetField()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java new file mode 100644 index 0000000000000..7652818f92f14 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java @@ -0,0 +1,40 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.plugins.fields; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.fields.core.metadata.DocCountParquetField; +import com.parquet.parquetdataformat.fields.core.metadata.SizeParquetField; +import org.opensearch.index.mapper.DocCountFieldMapper; + +import java.util.HashMap; +import java.util.Map; + +public class MetadataFieldPlugin implements ParquetFieldPlugin { + + @Override + public Map getParquetFields() { + final Map fieldMap = new HashMap<>(); + + // Register metadata field types + registerMetadataFields(fieldMap); + + return fieldMap; + } + + /** + * Registers all metadata field type mappings. + * + * @param fieldMap the map to populate with metadata field mappings + */ + private static void registerMetadataFields(final Map fieldMap) { + fieldMap.put(DocCountFieldMapper.CONTENT_TYPE, new DocCountParquetField()); + fieldMap.put("_size", new SizeParquetField()); + } +} diff --git a/plugins/mapper-size/src/main/java/org/opensearch/index/mapper/size/SizeFieldMapper.java b/plugins/mapper-size/src/main/java/org/opensearch/index/mapper/size/SizeFieldMapper.java index dc966a3dfc50f..ab355883c841e 100644 --- a/plugins/mapper-size/src/main/java/org/opensearch/index/mapper/size/SizeFieldMapper.java +++ b/plugins/mapper-size/src/main/java/org/opensearch/index/mapper/size/SizeFieldMapper.java @@ -99,7 +99,12 @@ public void postParse(ParseContext context) throws IOException { return; } final int value = context.sourceToParse().source().length(); - context.doc().addAll(NumberType.INTEGER.createFields(name(), value, true, true, false, true)); + + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + context.doc().addAll(NumberType.INTEGER.createFields(name(), value, true, true, false, true)); + } } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/BinaryFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/BinaryFieldMapper.java index 040491f775357..1239cf57fe447 100644 --- a/server/src/main/java/org/opensearch/index/mapper/BinaryFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/BinaryFieldMapper.java @@ -205,23 +205,28 @@ protected void parseCreateField(ParseContext context) throws IOException { if (value == null) { return; } - if (stored) { - context.doc().add(new StoredField(fieldType().name(), value)); - } - if (hasDocValues) { - CustomBinaryDocValuesField field = (CustomBinaryDocValuesField) context.doc().getByKey(fieldType().name()); - if (field == null) { - field = new CustomBinaryDocValuesField(fieldType().name(), value); - context.doc().addWithKey(fieldType().name(), field); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + if (stored) { + context.doc().add(new StoredField(fieldType().name(), value)); + } + + if (hasDocValues) { + CustomBinaryDocValuesField field = (CustomBinaryDocValuesField) context.doc().getByKey(fieldType().name()); + if (field == null) { + field = new CustomBinaryDocValuesField(fieldType().name(), value); + context.doc().addWithKey(fieldType().name(), field); + } else { + field.add(value); + } } else { - field.add(value); + // Only add an entry to the field names field if the field is stored + // but has no doc values so exists query will work on a field with + // no doc values + createFieldNamesField(context); } - } else { - // Only add an entry to the field names field if the field is stored - // but has no doc values so exists query will work on a field with - // no doc values - createFieldNamesField(context); } } diff --git a/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java index f7bca0ec83ed7..cbf5cd22df2c2 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DocCountFieldMapper.java @@ -149,9 +149,13 @@ protected void parseCreateField(ParseContext context) throws IOException { if (value <= 0) { throw new IllegalArgumentException("Field [" + fieldType().name() + "] must be a positive integer."); } - context.compositeDocumentInput().addField(fieldType(), value); -// final Field docCount = new NumericDocValuesField(NAME, value); -// context.doc().add(docCount); + + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), value); + } else { + final Field docCount = new NumericDocValuesField(NAME, value); + context.doc().add(docCount); + } } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java index b2e8f75a4f444..ad573d9ea6741 100644 --- a/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java @@ -665,18 +665,22 @@ protected void parseCreateField(ParseContext context) throws IOException { } } - if (indexed && hasDocValues) { - context.doc().add(new InetAddressField(fieldType().name(), address)); - } else if (indexed) { - context.doc().add(new InetAddressPoint(fieldType().name(), address)); - } else if (hasDocValues) { - context.doc().add(new SortedSetDocValuesField(fieldType().name(), new BytesRef(InetAddressPoint.encode(address)))); - } - if ((stored || indexed) && hasDocValues == false) { - createFieldNamesField(context); - } - if (stored) { - context.doc().add(new StoredField(fieldType().name(), new BytesRef(InetAddressPoint.encode(address)))); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), address); + } else { + if (indexed && hasDocValues) { + context.doc().add(new InetAddressField(fieldType().name(), address)); + } else if (indexed) { + context.doc().add(new InetAddressPoint(fieldType().name(), address)); + } else if (hasDocValues) { + context.doc().add(new SortedSetDocValuesField(fieldType().name(), new BytesRef(InetAddressPoint.encode(address)))); + } + if ((stored || indexed) && hasDocValues == false) { + createFieldNamesField(context); + } + if (stored) { + context.doc().add(new StoredField(fieldType().name(), new BytesRef(InetAddressPoint.encode(address)))); + } } } From 5b6569ca38b75fde9491fbecbdcdad3bcdacf6c7 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Mon, 27 Oct 2025 19:26:38 +0530 Subject: [PATCH 034/112] Adding some base classes for Merge implementation (#19780) Signed-off-by: Dhwanil Patel --- .../engine/ParquetExecutionEngine.java | 8 +++++ .../merge/ParquetMerger.java | 30 ++++++++++++++++ .../engine/exec/IndexingExecutionEngine.java | 2 ++ .../opensearch/index/engine/exec/Merger.java | 31 ++++++++++++++++ .../engine/exec/lucene/LuceneIEEngine.java | 6 ++++ .../index/engine/exec/merge/MergeResult.java | 36 +++++++++++++++++++ .../index/engine/exec/merge/OneMerge.java | 36 +++++++++++++++++++ .../index/engine/exec/merge/RowId.java | 26 ++++++++++++++ .../index/engine/exec/merge/RowIdMapping.java | 25 +++++++++++++ .../index/engine/exec/text/TextEngine.java | 31 ++++++++++++++++ 10 files changed, 231 insertions(+) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/Merger.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/RowId.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 4778d21f51452..1c4ea2c19b892 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -1,5 +1,6 @@ package com.parquet.parquetdataformat.engine; +import com.parquet.parquetdataformat.merge.ParquetMerger; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import com.parquet.parquetdataformat.writer.ParquetWriter; import org.apache.arrow.vector.types.pojo.Schema; @@ -9,6 +10,7 @@ import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.shard.ShardPath; import java.io.IOException; @@ -54,6 +56,7 @@ public class ParquetExecutionEngine implements IndexingExecutionEngine schema; private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; + private final ParquetMerger parquetMerger = new ParquetMerger(); public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { this.schema = schema; @@ -71,6 +74,11 @@ public Writer createWriter(long writerGeneration) throws I return new ParquetWriter(fileName, schema.get(), writerGeneration); } + @Override + public Merger getMerger() { + return parquetMerger; + } + @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { RefreshResult refreshResult = new RefreshResult(); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java new file mode 100644 index 0000000000000..e0230ee6abb1b --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.RowIdMapping; + +import java.util.Collection; + +public class ParquetMerger implements Merger { + @Override + public MergeResult merge(Collection fileMetadataList) { + // TODO + // Add implementation for merging parquet file and returning MergeResult. + throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); + } + + @Override + public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping) { + throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 2c3f63fcf0da2..17c1610cce40d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -22,6 +22,8 @@ public interface IndexingExecutionEngine { Writer> createWriter(long writerGeneration) throws IOException; // A writer responsible for data format vended by this engine. + Merger getMerger(); // Merger responsible for merging for specific data format + RefreshResult refresh(RefreshInput refreshInput) throws IOException; DataFormat getDataFormat(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Merger.java b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java new file mode 100644 index 0000000000000..14fe7730901b2 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java @@ -0,0 +1,31 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.RowIdMapping; + +import java.util.Collection; + +public interface Merger { + /** + * + * @param fileMetadataList List of FileMetadata to merge + * @return MergeResult - having RowIdMapping and mergedFileMetadata + */ + MergeResult merge(Collection fileMetadataList); + + /** + * + * @param fileMetadataList List of FileMetadata to merge + * @param rowIdMapping Mapping of old segment + old rowId to new rowId + * @return MergeResult - having mergedFileMetadata + */ + MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping); +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index 8afdc4f9901d4..ee7737d1717ac 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -20,6 +20,7 @@ import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MappedFieldType; import org.opensearch.index.mapper.ParseContext; @@ -46,6 +47,11 @@ public Writer> createWriter(long writerGeneration) th return new LuceneWriter(internalEngine.indexWriter, writerGeneration); } + @Override + public Merger getMerger() { + throw new UnsupportedOperationException(); + } + @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { internalEngine.refresh(refreshInput.getClass().getName()); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java new file mode 100644 index 0000000000000..a8217877dc56b --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +public class MergeResult { + + private RowIdMapping rowIdMapping; + + private Map> mergedFileMetadata = new HashMap<>(); + + public MergeResult(RowIdMapping rowIdMapping, Map> mergedFileMetadata) { + this.rowIdMapping = rowIdMapping; + this.mergedFileMetadata = mergedFileMetadata; + } + + public RowIdMapping getRowIdMapping() { + return rowIdMapping; + } + + public Map> getMergedFileMetadata() { + return mergedFileMetadata; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java new file mode 100644 index 0000000000000..c0a09c2b9de0b --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java @@ -0,0 +1,36 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; + +import java.util.Collection; + +public class OneMerge { + private final DataFormat dataFormat; + private final Collection filesToMerge; // Files to merge as per given data format + + public OneMerge(DataFormat dataFormat, Collection filesToMerge) { + this.dataFormat = dataFormat; + this.filesToMerge = filesToMerge; + } + + public DataFormat getDataFormat() { + return dataFormat; + } + + public Collection getFilesToMerge() { + return filesToMerge; + } + + public String toString() { + return "Merge [dataFormat=" + dataFormat + ", filesToMerge=" + filesToMerge + "] "; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/RowId.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowId.java new file mode 100644 index 0000000000000..fff09aa68b6fb --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowId.java @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +public class RowId { + public long rowId; + + /** + * We need this additional information around file name as well for post-processing usecases for reassigning row id. + * + * This file id can be the file name/id of the primary data format, all other data format needs to store this as well in doc. + * Using this older filer name and older row id we can try getting new row id from rowIdMapping. + */ + public String fileId; + + public RowId(long rowId, String fileId) { + this.rowId = rowId; + this.fileId = fileId; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java new file mode 100644 index 0000000000000..3ce812d8e6150 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java @@ -0,0 +1,25 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import java.util.HashMap; +import java.util.Map; + +public class RowIdMapping { + + Map mapping = new HashMap<>(); + + public RowIdMapping(Map mapping) { + this.mapping = mapping; + } + + public RowId getNewRowId(RowId oldRowId) { + return mapping.get(oldRowId); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 7e7743c17f6e7..f50f7446ab7f8 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -19,6 +19,10 @@ import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.RowIdMapping; +import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.mapper.MappedFieldType; import java.io.File; @@ -28,6 +32,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.Collection; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -47,6 +52,11 @@ public Writer> createWriter(long writerGeneration) th return new TextWriter("text_file" + counter.getAndIncrement(), this, writerGeneration); } + @Override + public Merger getMerger() { + return new TextMerger(); + } + @Override public DataFormat getDataFormat() { return DataFormat.TEXT; @@ -90,6 +100,27 @@ public void close() throws Exception { } } + public static class TextMerger implements Merger { + + @Override + public MergeResult merge(Collection fileMetadataList) { + // Here we will implementation of logic for merging files and reassign the row-ids + // and creating the mapping of the old segment+id to new row id. + // + // Needed when this data format is configured as primary data format. + throw new UnsupportedOperationException("merge not supported"); + } + + @Override + public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping) { + // Here we will have implementation of the merge logic where we will have the mapping of the old row id to new id + // and merging the files. + // + // Needed when data format is not configured as primary data format. + throw new UnsupportedOperationException("merge not supported"); + } + } + public static class TextWriter implements Writer { private final StringBuilder sb = new StringBuilder(); From 0fc133f88bd26e4ae4b7441114ce13ab7d107868 Mon Sep 17 00:00:00 2001 From: Shailesh Singh Date: Tue, 28 Oct 2025 12:00:07 +0530 Subject: [PATCH 035/112] override getMerger method in CompositeIndexingExecutionEngine (#19791) Signed-off-by: Shailesh Singh Co-authored-by: Shailesh Singh --- .../exec/composite/CompositeIndexingExecutionEngine.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index cd45d24432553..0541b136cb2f3 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -14,6 +14,7 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.Writer; @@ -117,6 +118,11 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { } } + @Override + public Merger getMerger() { + throw new UnsupportedOperationException("Merger for Composite Engine is not used"); + } + public List> getDelegates() { return Collections.unmodifiableList(delegates); } From bd208586e2d6f98c692106eb75c9ecda201e97f6 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Wed, 29 Oct 2025 11:14:45 +0530 Subject: [PATCH 036/112] Added MergeScheduler/handler and TieredMergePolicy based on Parquet files (#19794) Signed-off-by: Dhwanil Patel --- .../CompositeIndexingExecutionEngine.java | 7 +- .../index/engine/exec/coord/Any.java | 9 +- .../engine/exec/coord/CatalogSnapshot.java | 12 + .../engine/exec/coord/IndexingManager.java | 4 +- .../index/engine/exec/merge/MergeHandler.java | 90 +++++++ .../engine/exec/merge/MergeScheduler.java | 38 +++ .../exec/merge/ParquetMergeHandler.java | 78 ++++++ .../exec/merge/ParquetTieredMergePolicy.java | 222 ++++++++++++++++++ 8 files changed, 455 insertions(+), 5 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 0541b136cb2f3..4f9e65df41866 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -36,7 +36,7 @@ public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { private final CompositeDataFormatWriterPool dataFormatWriterPool; - private DataFormat dataFormat; + private Any dataFormat; private final AtomicLong writerGeneration; private final List> delegates = new ArrayList<>(); @@ -57,17 +57,20 @@ public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsServ public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath, long initialWriterGeneration) { this.writerGeneration = new AtomicLong(initialWriterGeneration); + List dataFormats = new ArrayList<>(); try { DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream().findAny().orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); + dataFormats.add(plugin.getDataFormat()); delegates.add(plugin.indexingEngine(mapperService, shardPath)); } catch (NullPointerException e) { delegates.add(new TextEngine()); } + this.dataFormat = new Any(dataFormats, dataFormats.get(0)); this.dataFormatWriterPool = new CompositeDataFormatWriterPool(() -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), ConcurrentLinkedQueue::new, Runtime.getRuntime().availableProcessors()); } @Override - public DataFormat getDataFormat() { + public Any getDataFormat() { return dataFormat; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java index c55834ec337d1..aa51849b5dbd1 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/Any.java @@ -18,8 +18,15 @@ public class Any implements DataFormat { private List dataFormats; - public Any(List dataFormats) { + private DataFormat primaryDataFormat; + + public Any(List dataFormats, DataFormat primaryDataFormat) { this.dataFormats = dataFormats; + this.primaryDataFormat = primaryDataFormat; + } + + public DataFormat getPrimaryDataFormat() { + return primaryDataFormat; } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 680f325d84a69..f7f8ba1bed30c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -10,13 +10,16 @@ import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.util.concurrent.AbstractRefCounted; +import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriterFileSet; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; @ExperimentalApi @@ -79,6 +82,15 @@ public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGro dfGroupedSearchableFiles.put(dataFormat, writerFileSetGroup); } + public Collection getSearchableFiles(String df) { + List searchableFiles = new ArrayList<>(); + String directory = dfGroupedSearchableFiles.get(df).getDirectory(); + for(String file : dfGroupedSearchableFiles.get(df).getFiles()) { + searchableFiles.add(new FileMetadata(directory, file)); + } + return searchableFiles; + } + public long getGeneration() { return generation; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java index 3e6a751caef2a..fc771995beb57 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java @@ -34,8 +34,8 @@ public class IndexingManager { public IndexingManager(Path indexPath, MapperService mapperService/*, EngineConfig engineConfig*/) throws IOException { - this.engine = new CompositeIndexingExecutionEngine(mapperService, null, new Any(List.of(DataFormat.TEXT)), null, - 0); + this.engine = new CompositeIndexingExecutionEngine(mapperService, null, + new Any(List.of(DataFormat.TEXT), DataFormat.TEXT), null, 0); this.committer = new LuceneCommitEngine(indexPath); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java new file mode 100644 index 0000000000000..1bdbf6e3ccd4a --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -0,0 +1,90 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.engine.exec.coord.Any; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + + +public abstract class MergeHandler { + + private final Any compositeDataFormat; + + private final CompositeIndexingExecutionEngine compositeIndexingExecutionEngine; + + private CompositeEngine compositeEngine; + private Map dataFormatMergerMap; + + public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats) { + this.compositeDataFormat = dataFormats; + this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; + this.compositeEngine = compositeEngine; + dataFormatMergerMap = new HashMap<>(); + + compositeIndexingExecutionEngine.getDelegates().forEach(engine -> { + try { + dataFormatMergerMap.put(engine.getDataFormat(), engine.getMerger()); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + public abstract Collection findMerges(); + + public MergeResult doMerge(OneMerge oneMerge) { + + Map> mergedFiles = new HashMap<>(); + try(CompositeEngine.ReleasableRef catalogSnapshot = compositeEngine.acquireSnapshot()) { + + Collection filesToMerge = getFilesToMerge(oneMerge, compositeDataFormat.getPrimaryDataFormat(), catalogSnapshot.getRef()); + + // Merging primary data format + MergeResult primaryMergeResult = dataFormatMergerMap.get(compositeDataFormat.getPrimaryDataFormat()).merge(filesToMerge); + mergedFiles.put(compositeDataFormat.getPrimaryDataFormat(), primaryMergeResult.getMergedFileMetadata().get(compositeDataFormat.getPrimaryDataFormat())); + + // Merging other format as per the old segment + row id -> new row id mapping. + compositeIndexingExecutionEngine.getDelegates().stream() + .filter(engine -> !engine.getDataFormat().equals(compositeDataFormat.getPrimaryDataFormat())) + .forEach(indexingExecutionEngine -> { + DataFormat dataFormat = indexingExecutionEngine.getDataFormat(); + Collection files = getFilesToMerge(oneMerge, dataFormat, catalogSnapshot.getRef()); + MergeResult secondaryMergeResult = dataFormatMergerMap.get(dataFormat).merge(files, primaryMergeResult.getRowIdMapping()); + mergedFiles.put(dataFormat, secondaryMergeResult.getMergedFileMetadata().get(dataFormat)); + }); + return new MergeResult(primaryMergeResult.getRowIdMapping(), mergedFiles); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public Collection getFilesToMerge(OneMerge oneMerge, DataFormat dataFormat, CatalogSnapshot catalogSnapshot) { + if(oneMerge.getDataFormat().name().equalsIgnoreCase(dataFormat.name())) { + return oneMerge.getFilesToMerge(); + } + + // TODO get file mapping for other data format from catalog snapshot + for(CatalogSnapshot.Segment segment : catalogSnapshot.getSegments()) { + if(segment.getSearchableFiles(oneMerge.getDataFormat().name()).equals(oneMerge.getFilesToMerge())) { + return segment.getSearchableFiles(dataFormat.name()); + } + } + throw new RuntimeException("Couldn't find the file to merge for data format [" + dataFormat + "]"); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java new file mode 100644 index 0000000000000..dd4d176fb55ef --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -0,0 +1,38 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.engine.exec.coord.CompositeEngine; + +import java.io.IOException; +import java.util.Collection; + +public class MergeScheduler { + + private MergeHandler mergeHandler; + private CompositeEngine compositeEngine; + + public MergeScheduler(MergeHandler mergeHandler, CompositeEngine compositeEngine) { + this.mergeHandler = mergeHandler; + this.compositeEngine = compositeEngine; + } + + public void triggerMerges() throws IOException { + // TODO: Move the merge to seperate thread + Collection oneMerges = mergeHandler.findMerges(); + + // TODO: For now it is serial. we can make it concurrent if needed, similar to concurrent/serial merge scheduler + + for(OneMerge oneMerge : oneMerges) { + MergeResult mergeResult = mergeHandler.doMerge(oneMerge); + // TODO: Apply merge changes in engine to reflect in catalog snapshot by triggering refresh +// this.compositeEngine.applyMergeChanges(mergeResult); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java new file mode 100644 index 0000000000000..6d23420e5d194 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -0,0 +1,78 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.engine.exec.coord.Any; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class ParquetMergeHandler extends MergeHandler { + + private final ParquetTieredMergePolicy mergePolicy; + private final CompositeEngine compositeEngine; + private final CompositeIndexingExecutionEngine compositeIndexingExecutionEngine; + private final String PARQUET_DATAFORMAT = "parquet"; + + public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats) { + super(compositeEngine, compositeIndexingExecutionEngine, dataFormats); + this.compositeEngine = compositeEngine; + this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; + + mergePolicy = new ParquetTieredMergePolicy(); + // Merge Policy configurations + this.mergePolicy.setMaxMergedSegmentMB(100); + this.mergePolicy.setSegmentsPerTier(2.0); + this.mergePolicy.setMaxMergeAtOnce(5); + this.mergePolicy.setFloorSegmentMB(1.0); + + } + + @Override + public Collection findMerges() { + List oneMerges = new ArrayList<>(); + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { + CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); + Collection parquetWriterSet = catalogSnapshot.getSearchableFiles(PARQUET_DATAFORMAT); + + List parquetSegmentInfos = new ArrayList<>(); + + for(WriterFileSet writerFileSet : parquetWriterSet) { + for(String file: writerFileSet.getFiles()) { + parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(file)); + } + } + + List> mergeCandidates = + mergePolicy.findMergeCandidates(parquetSegmentInfos); + + // Process merge candidates + for (int i = 0; i < mergeCandidates.size(); i++) { + List mergeGroup = mergeCandidates.get(i); + + Set files = new HashSet<>(); + for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { + files.add(new FileMetadata(file.getSegmentName(), file.getSegmentName())); + } + oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return oneMerges; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java new file mode 100644 index 0000000000000..42da8525a70d8 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -0,0 +1,222 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.apache.lucene.codecs.Codec; +import org.apache.lucene.index.*; +import org.apache.lucene.store.NIOFSDirectory; +import org.apache.lucene.util.InfoStream; +import org.apache.lucene.util.Version; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class ParquetTieredMergePolicy implements MergePolicy.MergeContext { + private final TieredMergePolicy luceneMergePolicy; + private final InfoStream infoStream; + + private static final Set mergingSegments = new HashSet<>(); + private static final Set mergingFileNames = new HashSet<>(); + + public ParquetTieredMergePolicy() { + this.luceneMergePolicy = new TieredMergePolicy(); + this.infoStream = new InfoStream() { + @Override + public void message(String s, String s1) { + System.out.println("Parquet merge: " + s + " : " + s1); + } + + @Override + public boolean isEnabled(String s) { + return true; + } + + @Override + public void close() throws IOException { + } + }; + } + + public List> findMergeCandidates(List segments) throws IOException { + + // Convert Parquet segments to Lucene-style segments + List luceneSegments = new ArrayList<>(); + Map segmentMap = new HashMap<>(); + + for (ParquetFileInfo parquetSegment : segments) { + ParquetSegmentWrapper wrapper = new ParquetSegmentWrapper(parquetSegment); + luceneSegments.add(wrapper); + segmentMap.put(wrapper, parquetSegment); + } + + // Create SegmentInfos (required by Lucene 10) + SegmentInfos segmentInfos = new SegmentInfos(Version.LATEST.major); + luceneSegments.forEach(segmentInfos::add); + + // Find merge candidates using Lucene's policy + List> merges = new ArrayList<>(); + try { + // Get merge candidates from Lucene's policy + MergePolicy.MergeSpecification mergeSpecification = luceneMergePolicy.findMerges(MergeTrigger.COMMIT, segmentInfos + , this); + + if(mergeSpecification != null) { + List luceneMerges = mergeSpecification.merges; + + // Convert back to Parquet segments + for (MergePolicy.OneMerge merge : luceneMerges) { + boolean validMerge = true; + List parquetMerge = new ArrayList<>(); + for (SegmentCommitInfo segment : merge.segments) { + if(mergingFileNames.contains(segment.info.name)) { + validMerge = false; + } + parquetMerge.add(segmentMap.get(segment)); + } + if(validMerge) { + for(SegmentCommitInfo segment : merge.segments) { + mergingSegments.add(segment); + mergingFileNames.add(segment.info.name); + } + merges.add(parquetMerge); + } else { + System.out.println("Not valid merge already in file!! Rejecting !!!"); + } + } + } + } catch (Exception e) { + throw new RuntimeException("Error finding merge candidates", e); + } + + return merges; + } + + @Override + public int numDeletesToMerge(SegmentCommitInfo segmentCommitInfo) throws IOException { + return 0; + } + + @Override + public int numDeletedDocs(SegmentCommitInfo segmentCommitInfo) { + return 0; + } + + @Override + public InfoStream getInfoStream() { + return this.infoStream; + } + + @Override + public Set getMergingSegments() { + return Collections.unmodifiableSet(mergingSegments); + } + + // Configuration methods + public void setMaxMergedSegmentMB(double mb) { + luceneMergePolicy.setMaxMergedSegmentMB(mb); + } + + public void setSegmentsPerTier(double segments) { + luceneMergePolicy.setSegmentsPerTier(segments); + } + + public void setMaxMergeAtOnce(int count) { + luceneMergePolicy.setMaxMergeAtOnce(count); + } + + public void setFloorSegmentMB(double mb) { + luceneMergePolicy.setFloorSegmentMB(mb); + } + + + public static class ParquetFileInfo { + private final Path path; + private final long sizeBytes; + private final long docCount; + private final String segmentName; // Added for Lucene compatibility + + public ParquetFileInfo(String path) throws IOException { + this.path = Paths.get(path); + this.sizeBytes = Files.size(this.path); + // TODO + // For now doc count we are deriving from size of file. + // Once we have that info as part of Refresh Result, we can change this. + this.docCount = Files.size(this.path)/1000; + // SegmentName = FileName + this.segmentName = path.split("/")[path.split("/").length - 1]; + } + + public Path getPath() { return path; } + public long getSizeBytes() { return sizeBytes; } + public int getDocCount() { return (int)docCount; } + public String getSegmentName() { return segmentName; } + } + + private static class ParquetSegmentWrapper extends SegmentCommitInfo { + private final ParquetFileInfo parquetInfo; + + public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { + super( + // SegmentInfo + new SegmentInfo( + // directory - not used for our purpose + new NIOFSDirectory(Paths.get("/tmp")), + // version + Version.LATEST, + // min version + Version.LATEST, + // segment name + parquetInfo.getSegmentName(), + // maxDoc - number of rows in parquet file + parquetInfo.getDocCount(), + // isCompound - false as we don't need compound file format + false, + // has block + false, + // codec - using default + Codec.getDefault(), + // diagnostics - map with dummy entry + new HashMap(Map.of("dummy", "dummy")), + // segmentID - generate unique ID + UUID.randomUUID().toString().substring(0,16).getBytes(), + // map of attribute - map with dummy entru + new HashMap(Map.of("dummy", "dummy")), + // index sort - no specific sort + null + ), + // Del Count + 0, + // softDelCount + 0, + // delGen - no deletions in parquet + 0, + // fieldInfosGen - no separate field infos + -1, + // docValuesGen - no doc values updates + -1, + // id + UUID.randomUUID().toString().substring(0,16).getBytes()); + this.parquetInfo = parquetInfo; + } + + @Override + public long sizeInBytes() { + return parquetInfo.getSizeBytes(); + } + + @Override + public int getDelCount() { + return 0; + } + } +} + From 129122dc3731cf07f805750301f415e2d70e1497 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Wed, 29 Oct 2025 11:23:02 +0530 Subject: [PATCH 037/112] Updating the FieldType to be nullable (#19807) Signed-off-by: Sagar Darji --- .../fields/core/data/BinaryParquetField.java | 24 ++++++++++++++++++- .../fields/core/data/BooleanParquetField.java | 2 +- .../fields/core/data/KeywordParquetField.java | 2 +- .../fields/core/data/TextParquetField.java | 2 +- .../core/data/TokenCountParquetField.java | 2 +- .../core/data/date/DateNanosParquetField.java | 2 +- .../core/data/date/DateParquetField.java | 2 +- .../core/data/number/ByteParquetField.java | 2 +- .../core/data/number/DoubleParquetField.java | 2 +- .../core/data/number/FloatParquetField.java | 2 +- .../data/number/HalfFloatParquetField.java | 2 +- .../core/data/number/IntegerParquetField.java | 2 +- .../core/data/number/LongParquetField.java | 2 +- .../core/data/number/ShortParquetField.java | 2 +- .../data/number/UnsignedLongParquetField.java | 2 +- .../core/metadata/SizeParquetField.java | 2 +- 16 files changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java index ef68ff94e3dc8..eaa4d5209bfc2 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BinaryParquetField.java @@ -15,6 +15,28 @@ import org.apache.arrow.vector.types.pojo.FieldType; import org.opensearch.index.mapper.MappedFieldType; +/** + * Parquet field implementation for handling binary data types in OpenSearch documents. + * + *

This class provides the conversion logic between OpenSearch binary fields and Apache Arrow + * variable-length binary vectors for columnar storage in Parquet format. Binary values are stored using + * Apache Arrow's {@link VarBinaryVector}, which handles variable-length byte arrays.

+ * + *

This field type corresponds to OpenSearch's {@code binary} field mapping and supports + * arbitrary byte sequences. All binary data is stored as-is without transformation.

+ * + *

Usage Example:

+ *
{@code
+ * BinaryParquetField binaryField = new BinaryParquetField();
+ * ArrowType arrowType = binaryField.getArrowType(); // Returns Binary type
+ * FieldType fieldType = binaryField.getFieldType(); // Returns nullable binary field type
+ * }
+ * + * @see ParquetField + * @see VarBinaryVector + * @see ArrowType.Binary + * @since 1.0 + */ public class BinaryParquetField extends ParquetField { @Override @@ -31,6 +53,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java index e15821d551eaf..4b2237bf1aa1f 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/BooleanParquetField.java @@ -54,6 +54,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java index c1d36f35fe286..1814e20891f4e 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/KeywordParquetField.java @@ -57,6 +57,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java index dbffac52a106f..e4c93aa9f608f 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TextParquetField.java @@ -58,6 +58,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java index bac92cb196e48..603189bddc80b 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/TokenCountParquetField.java @@ -56,6 +56,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java index 43592b5264f02..09ca4d50c9fe7 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateNanosParquetField.java @@ -56,6 +56,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java index f995a766ce714..8554314e722a7 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/date/DateParquetField.java @@ -56,6 +56,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java index 9bb2fabb503eb..d9d45faeb3872 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ByteParquetField.java @@ -53,6 +53,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java index 762be4d468bc2..ac2b3a6e62927 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/DoubleParquetField.java @@ -55,6 +55,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java index 954f57076a514..a516efd2f990f 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/FloatParquetField.java @@ -55,6 +55,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java index dbc9ee8f6a171..3019773e6bd42 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/HalfFloatParquetField.java @@ -55,6 +55,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java index 1dc28c1eff385..b11d49b666799 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/IntegerParquetField.java @@ -53,6 +53,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java index 32402a32de6d4..850ac0f004649 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/LongParquetField.java @@ -54,6 +54,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java index 94927ebfb7601..07ee5c1b54814 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/ShortParquetField.java @@ -54,6 +54,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java index 9736101672eca..7f8e407f29092 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/number/UnsignedLongParquetField.java @@ -55,6 +55,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java index df87af1956a36..1367cc7542155 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/SizeParquetField.java @@ -56,6 +56,6 @@ public ArrowType getArrowType() { @Override public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); + return FieldType.nullable(getArrowType()); } } From 69a73a4daebaf0deedbadad52779167cd92e43cf Mon Sep 17 00:00:00 2001 From: Shailesh Singh Date: Wed, 29 Oct 2025 17:44:52 +0530 Subject: [PATCH 038/112] Parquet Merge Implementation - Merge Rust Implementation + Interface Design (#19811) Signed-off-by: Shailesh Singh Co-authored-by: Shailesh Singh --- .../parquetdataformat/bridge/RustBridge.java | 4 + .../engine/ParquetExecutionEngine.java | 4 +- .../merge/CompactionStrategy.java | 17 ++ .../merge/ParquetMergeExecutor.java | 37 +++ .../merge/ParquetMergeStrategy.java | 34 +++ .../merge/ParquetMergeStrategyFactory.java | 23 ++ .../merge/ParquetMerger.java | 9 +- .../merge/RecordBatchMergeStrategy.java | 50 +++ .../src/main/rust/src/parquet_merge.rs | 286 ++++++++++++++++++ .../main/rust/tests/parquet_merge_tests.rs | 105 +++++++ .../parquetTestFiles/large_file1.parquet | Bin 0 -> 22770966 bytes .../parquetTestFiles/large_file2.parquet | Bin 0 -> 30367634 bytes .../parquetTestFiles/small_file1.parquet | Bin 0 -> 1329 bytes .../parquetTestFiles/small_file2.parquet | Bin 0 -> 1349 bytes 14 files changed, 560 insertions(+), 9 deletions(-) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/CompactionStrategy.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategyFactory.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java create mode 100644 modules/parquet-data-format/src/main/rust/src/parquet_merge.rs create mode 100644 modules/parquet-data-format/src/main/rust/tests/parquet_merge_tests.rs create mode 100644 modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file1.parquet create mode 100644 modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file2.parquet create mode 100644 modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file1.parquet create mode 100644 modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file2.parquet diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 8ef4596395e97..97b306e9d0ee9 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -7,7 +7,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; +import java.util.Collection; import java.util.Locale; +import java.util.Set; /** * JNI bridge to the native Rust Parquet writer implementation. @@ -116,4 +118,6 @@ public static boolean isValidMemoryAddress(long address) { public static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); public static native void nativeCloseSessionContext(long sessionContextPtr); + + public static native void mergeParquetFilesInRust(Set inputFiles, String outputFile); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 1c4ea2c19b892..8ad42c6de6bd9 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -1,5 +1,7 @@ package com.parquet.parquetdataformat.engine; +import com.parquet.parquetdataformat.merge.CompactionStrategy; +import com.parquet.parquetdataformat.merge.ParquetMergeExecutor; import com.parquet.parquetdataformat.merge.ParquetMerger; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import com.parquet.parquetdataformat.writer.ParquetWriter; @@ -56,7 +58,7 @@ public class ParquetExecutionEngine implements IndexingExecutionEngine schema; private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; - private final ParquetMerger parquetMerger = new ParquetMerger(); + private final ParquetMerger parquetMerger = new ParquetMergeExecutor(CompactionStrategy.RECORD_BATCH); public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { this.schema = schema; diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/CompactionStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/CompactionStrategy.java new file mode 100644 index 0000000000000..b2d3f6c16ea53 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/CompactionStrategy.java @@ -0,0 +1,17 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + +/** + * Defines supported Parquet compaction strategies. + */ +public enum CompactionStrategy { + RECORD_BATCH +} + diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java new file mode 100644 index 0000000000000..98838116543da --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java @@ -0,0 +1,37 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + +import org.opensearch.common.collect.Tuple; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.merge.MergeResult; + +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Executes Parquet merge operations using a chosen compaction strategy. + */ +public class ParquetMergeExecutor extends ParquetMerger { + + private final ParquetMergeStrategy strategy; + + public ParquetMergeExecutor(CompactionStrategy compactionStrategy) { + this.strategy = ParquetMergeStrategyFactory.getStrategy(compactionStrategy); + } + + @Override + public MergeResult merge(Collection fileMetadataList) { + MergeResult result = strategy.mergeParquetFiles(fileMetadataList); + strategy.postMerge(); + return result; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java new file mode 100644 index 0000000000000..a6f0dd2855ba6 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + + +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.merge.MergeResult; + +import java.util.Collection; +import java.util.List; + +/** + * Interface defining a Parquet merge strategy. + */ +public interface ParquetMergeStrategy { + + /** + * Performs the actual Parquet merge. + */ + MergeResult mergeParquetFiles(Collection files); + + /** + * Optional post-merge hook. + */ + default void postMerge() { + // No-op by default + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategyFactory.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategyFactory.java new file mode 100644 index 0000000000000..361263531bf57 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategyFactory.java @@ -0,0 +1,23 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + +/** + * Factory for creating appropriate merge strategies based on compaction type. + */ +public class ParquetMergeStrategyFactory { + + public static ParquetMergeStrategy getStrategy(CompactionStrategy compactionStrategy) { + switch (compactionStrategy) { + case RECORD_BATCH: + default: + return new RecordBatchMergeStrategy(); + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java index e0230ee6abb1b..cdb879866d9af 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java @@ -15,14 +15,7 @@ import java.util.Collection; -public class ParquetMerger implements Merger { - @Override - public MergeResult merge(Collection fileMetadataList) { - // TODO - // Add implementation for merging parquet file and returning MergeResult. - throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); - } - +public abstract class ParquetMerger implements Merger { @Override public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping) { throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java new file mode 100644 index 0000000000000..49d3512c9b2f3 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -0,0 +1,50 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.merge; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.RowId; +import org.opensearch.index.engine.exec.merge.RowIdMapping; + +import java.io.File; +import java.nio.file.Path; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static com.parquet.parquetdataformat.bridge.RustBridge.mergeParquetFilesInRust; + +/** + * Implements record-batch-based merging of Parquet files. + */ +public class RecordBatchMergeStrategy implements ParquetMergeStrategy { + + @Override + public MergeResult mergeParquetFiles(Collection files) { + Set filePaths = files.stream() + .map(fm -> new File(fm.directory(), fm.file()).toPath()) + .collect(Collectors.toSet()); + + //todo: fetch correct outputPath + String outputPath = "~/"; + + mergeParquetFilesInRust(filePaths, outputPath); + Map mapping = new HashMap<>(); + RowIdMapping rowIdMapping = new RowIdMapping(mapping); + Map> merged = new HashMap<>(); + + //todo: populate MergeResult with actual rowIdMapping and mergedFileMetadata + return new MergeResult(rowIdMapping, merged); + } +} diff --git a/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs new file mode 100644 index 0000000000000..63f6621b2b5b1 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs @@ -0,0 +1,286 @@ +use jni::JNIEnv; +use jni::objects::{JClass, JObject, JString}; +use jni::sys::jint; +use std::fs::File; +use std::error::Error; +use std::any::Any; +use std::sync::Arc; +use std::panic::AssertUnwindSafe; +use parquet::basic::Compression; +use parquet::file::properties::WriterProperties; +use arrow::array::{Int64Array, ArrayRef}; +use arrow::datatypes::SchemaRef; +use arrow::record_batch::RecordBatch; +use parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use parquet::arrow::arrow_writer::ArrowWriter; + +// Constants +const READER_BATCH_SIZE: usize = 8192; +const WRITER_BATCH_SIZE: usize = 8192; +const ROW_ID_COLUMN_NAME: &str = "___row_id"; + +// Custom error types +#[derive(Debug)] +pub enum ParquetMergeError { + EmptyInput, + InvalidFile(String), + SchemaReadError(String), + WriterCreationError(String), + BatchProcessingError(String), +} + +impl std::fmt::Display for ParquetMergeError { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + ParquetMergeError::EmptyInput => write!(f, "No input files provided"), + ParquetMergeError::InvalidFile(path) => write!(f, "Invalid file: {}", path), + ParquetMergeError::SchemaReadError(msg) => write!(f, "Schema read error: {}", msg), + ParquetMergeError::WriterCreationError(msg) => write!(f, "Writer creation error: {}", msg), + ParquetMergeError::BatchProcessingError(msg) => write!(f, "Batch processing error: {}", msg), + } + } +} + +impl Error for ParquetMergeError {} + +// Statistics tracking +struct ProcessingStats { + files_processed: usize, + total_rows: usize, + total_batches: usize, +} + +// JNI Entry Point +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_mergeParquetFilesInRust( + mut env: JNIEnv, + _class: JClass, + input_files: JObject, + output_file: JString, +) -> jint { + let result = catch_unwind(|| { + let input_files_vec = convert_java_list_to_vec(&mut env, input_files) + .map_err(|e| format!("Failed to convert Java list: {}", e))?; + + let output_path: String = env + .get_string(&output_file) + .map_err(|e| format!("Failed to get output file string: {}", e))? + .into(); + + log_info(&format!("Starting merge of {} files to {}", input_files_vec.len(), output_path)); + + process_parquet_files(&input_files_vec, &output_path)?; + + log_info("Merge completed successfully"); + Ok(()) + }); + + match result { + Ok(Ok(_)) => 0, + Ok(Err(e)) => { + let error_msg = format!("Error processing Parquet files: {}", e); + log_error(&error_msg); + let _ = env.throw_new("java/lang/RuntimeException", &error_msg); + -1 + } + Err(e) => { + let error_msg = format!("Rust panic occurred: {:?}", e); + log_error(&error_msg); + let _ = env.throw_new("java/lang/RuntimeException", &error_msg); + -1 + } + } +} + +// Main processing function +pub fn process_parquet_files(input_files: &[String], output_path: &str) -> Result<(), Box> { + // Validate input + validate_input(input_files)?; + + // Read schema from first file + let schema = read_schema_from_file(&input_files[0])?; + log_info(&format!("Schema read successfully: {:?}", schema)); + + // Create writer + let mut writer = create_writer(output_path, schema.clone())?; + + // Process files + let stats = process_files(input_files, &schema, &mut writer)?; + + // Close writer + writer.close() + .map_err(|e| ParquetMergeError::WriterCreationError(format!("Failed to close writer: {}", e)))?; + + log_info(&format!( + "Processing complete: {} files, {} rows, {} batches", + stats.files_processed, stats.total_rows, stats.total_batches + )); + + Ok(()) +} + +// Validation functions +fn validate_input(input_files: &[String]) -> Result<(), Box> { + if input_files.is_empty() { + return Err(Box::new(ParquetMergeError::EmptyInput)); + } + + for path in input_files { + if !std::path::Path::new(path).exists() { + return Err(Box::new(ParquetMergeError::InvalidFile(path.clone()))); + } + } + + Ok(()) +} + +// Schema reading +fn read_schema_from_file(file_path: &str) -> Result> { + let file = File::open(file_path) + .map_err(|e| ParquetMergeError::InvalidFile(format!("{}: {}", file_path, e)))?; + + let builder = ParquetRecordBatchReaderBuilder::try_new(file) + .map_err(|e| ParquetMergeError::SchemaReadError(format!("Failed to read schema: {}", e)))?; + + Ok(builder.schema().clone()) +} + +// Writer creation +fn create_writer(output_path: &str, schema: SchemaRef) -> Result, Box> { + let props = WriterProperties::builder() + .set_write_batch_size(WRITER_BATCH_SIZE) + .set_compression(Compression::ZSTD(Default::default())) + .build(); + + let out_file = File::create(output_path) + .map_err(|e| ParquetMergeError::WriterCreationError(format!("Failed to create output file: {}", e)))?; + + ArrowWriter::try_new(out_file, schema, Some(props)) + .map_err(|e| ParquetMergeError::WriterCreationError(format!("Failed to create writer: {}", e)).into()) +} + +// File processing +fn process_files( + input_files: &[String], + schema: &SchemaRef, + writer: &mut ArrowWriter, +) -> Result> { + let mut current_row_id: i64 = 0; + let mut stats = ProcessingStats { + files_processed: 0, + total_rows: 0, + total_batches: 0, + }; + + for path in input_files { + log_info(&format!("Processing file: {}", path)); + + let file = File::open(path) + .map_err(|e| ParquetMergeError::InvalidFile(format!("{}: {}", path, e)))?; + + let reader = ParquetRecordBatchReaderBuilder::try_new(file) + .map_err(|e| ParquetMergeError::BatchProcessingError(format!("Failed to create reader: {}", e)))? + .with_batch_size(READER_BATCH_SIZE) + .build() + .map_err(|e| ParquetMergeError::BatchProcessingError(format!("Failed to build reader: {}", e)))?; + + let mut file_rows = 0; + let mut file_batches = 0; + + for batch_result in reader { + let original_batch = batch_result + .map_err(|e| ParquetMergeError::BatchProcessingError(format!("Failed to read batch: {}", e)))?; + + let batch_rows = original_batch.num_rows(); + + let new_batch = update_row_ids(&original_batch, current_row_id, schema)?; + + writer.write(&new_batch) + .map_err(|e| ParquetMergeError::BatchProcessingError(format!("Failed to write batch: {}", e)))?; + + current_row_id += batch_rows as i64; + file_rows += batch_rows; + file_batches += 1; + } + + stats.files_processed += 1; + stats.total_rows += file_rows; + stats.total_batches += file_batches; + + log_info(&format!("File processed: {} rows, {} batches", file_rows, file_batches)); + } + + Ok(stats) +} + +// Row ID update logic +pub fn update_row_ids( + original_batch: &RecordBatch, + start_id: i64, + schema: &SchemaRef, +) -> Result> { + let row_count = original_batch.num_rows(); + + // Create new row IDs + let row_ids: Int64Array = (start_id..start_id + row_count as i64) + .collect::>() + .into(); + + // Build new columns array + let mut columns: Vec = Vec::with_capacity(original_batch.num_columns()); + + for (i, column) in original_batch.columns().iter().enumerate() { + let field_name = schema.field(i).name(); + if field_name == ROW_ID_COLUMN_NAME { + columns.push(Arc::new(row_ids.clone())); + } else { + columns.push(column.clone()); + } + } + + RecordBatch::try_new(schema.clone(), columns) + .map_err(|e| ParquetMergeError::BatchProcessingError(format!("Failed to create batch: {}", e)).into()) +} + +// JNI helper functions +fn convert_java_list_to_vec(env: &mut JNIEnv, set: JObject) -> Result, Box> { + let iterator = env.call_method(&set, "iterator", "()Ljava/util/Iterator;", &[])? + .l()?; + + let mut result = Vec::new(); + while env.call_method(&iterator, "hasNext", "()Z", &[])?.z()? { + let element = env.call_method(&iterator, "next", "()Ljava/lang/Object;", &[])? + .l()?; + let path_string = env.call_method(&element, "toString", "()Ljava/lang/String;", &[])? + .l()?; + let jstring = JString::from(path_string); + let string = env.get_string(&jstring)?; + result.push(string.to_str()?.to_string()); + } + + Ok(result) +} + +fn catch_unwind Result<(), Box>>( + f: F +) -> Result>, Box> { + std::panic::catch_unwind(AssertUnwindSafe(f)) +} + +// Logging functions +fn log_info(message: &str) { + println!("[INFO] {}", message); +} + +fn log_error(message: &str) { + eprintln!("[ERROR] {}", message); +} + +// Close function +// #[no_mangle] +// pub extern "system" fn Java_org_opensearch_arrow_bridge_ArrowRustBridge_close( +// _env: JNIEnv, +// _class: JClass, +// ) { +// log_info("Closing ArrowRustBridge"); +// } diff --git a/modules/parquet-data-format/src/main/rust/tests/parquet_merge_tests.rs b/modules/parquet-data-format/src/main/rust/tests/parquet_merge_tests.rs new file mode 100644 index 0000000000000..46ac89421f6d0 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/tests/parquet_merge_tests.rs @@ -0,0 +1,105 @@ +use parquet_dataformat_jni::process_parquet_files; +use arrow::array::{Int64Array, StringArray}; +use arrow::record_batch::RecordBatch; +use parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use std::fs::File; +use std::path::PathBuf; + +/// Helper to get test file from resources +fn test_file(name: &str) -> String { + let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + path.push("../../test/resources/parquetTestFiles"); + path.push(name); + path.to_string_lossy().to_string() +} + +/// Helper to read a Parquet file into record batches +fn read_batches(path: &str) -> Vec { + let file = File::open(path).unwrap(); + let reader = ParquetRecordBatchReaderBuilder::try_new(file) + .unwrap() + .build() + .unwrap(); + + reader.map(|r| r.unwrap()).collect() +} + +#[test] +fn test_process_parquet_files_empty_input() { + let output_path = std::env::temp_dir().join("test_output_empty.parquet"); + let result = process_parquet_files(&[], output_path.to_str().unwrap()); + assert!(result.is_err()); + assert_eq!(result.unwrap_err().to_string(), "No input files provided"); +} + +#[test] +fn test_process_parquet_files_nonexistent_file() { + let output_path = std::env::temp_dir().join("test_output_nonexistent.parquet"); + let result = process_parquet_files(&["/nonexistent/file.parquet".to_string()], output_path.to_str().unwrap()); + assert!(result.is_err()); +} + +#[test] +fn test_process_single_file() { + let input_path = test_file("small_file1.parquet"); + let output_path = std::env::temp_dir().join("test_output_single.parquet"); + + process_parquet_files(&[input_path.clone()], output_path.to_str().unwrap()).unwrap(); + + let batches = read_batches(output_path.to_str().unwrap()); + assert!(!batches.is_empty()); + + // Verify ___row_id increments + for (batch_index, batch) in batches.iter().enumerate() { + let row_id_idx = batch.schema().fields().iter().position(|f| f.name() == "___row_id").unwrap(); + let row_id_column = batch.column(row_id_idx).as_any().downcast_ref::().unwrap(); + + for i in 0..batch.num_rows() { + assert_eq!(row_id_column.value(i), (batch_index * batch.num_rows() + i) as i64); + } + } + + std::fs::remove_file(output_path).ok(); +} + +#[test] +fn test_merge_files_with_complete_data_verification() { + let input1 = test_file("small_file1.parquet"); + let input2 = test_file("small_file2.parquet"); + let output_path = std::env::temp_dir().join("test_output_complete_merge.parquet"); + + process_parquet_files(&[input1, input2], output_path.to_str().unwrap()).unwrap(); + + let batches = read_batches(output_path.to_str().unwrap()); + let mut all_row_ids = vec![]; + let mut all_names = vec![]; + let mut all_ages = vec![]; + let mut all_cities = vec![]; + + for batch in batches { + let schema = batch.schema(); + let row_id_idx = schema.fields().iter().position(|f| f.name() == "___row_id").unwrap(); + let name_idx = schema.fields().iter().position(|f| f.name() == "Name").unwrap(); + let age_idx = schema.fields().iter().position(|f| f.name() == "Age").unwrap(); + let city_idx = schema.fields().iter().position(|f| f.name() == "City").unwrap(); + + let row_id_col = batch.column(row_id_idx).as_any().downcast_ref::().unwrap(); + let name_col = batch.column(name_idx).as_any().downcast_ref::().unwrap(); + let age_col = batch.column(age_idx).as_any().downcast_ref::().unwrap(); + let city_col = batch.column(city_idx).as_any().downcast_ref::().unwrap(); + + for i in 0..batch.num_rows() { + all_row_ids.push(row_id_col.value(i)); + all_names.push(name_col.value(i).to_string()); + all_ages.push(age_col.value(i)); + all_cities.push(city_col.value(i).to_string()); + } + } + + assert_eq!(all_row_ids, vec![0, 1, 2, 3]); + assert_eq!(all_names, vec!["John", "Jane", "Shailesh", "Singh"]); + assert_eq!(all_ages, vec![30, 25, 23, 6]); + assert_eq!(all_cities, vec!["New York", "London", "Delhi", "Bangalore"]); + + std::fs::remove_file(output_path).ok(); +} diff --git a/modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file1.parquet b/modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..bff2d5d2a8c1b8f350313ff092dc3ba4bdc905d1 GIT binary patch literal 22770966 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
0ioT7OAOB!2=FX^w>1S9WQjRi}?9 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π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
|25-e;!r8lBkD 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

O>iy_r^uPrI%?N!JXJCKhYGn7 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%0Dk>qzVd=2~&Gr(2SuEue6J7<|wDemj{Mw*)J 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 z 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

p0gONxNpEOuN6x5TsR!_d9>S&-AW({9yb% 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≦|fQJm7t4)?gv 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%0A6!$Sb(DhC~2 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%0A!ykn-ptF5`T=*$Eg&f~jRS2gA2bc15a2B?I zl~$$HbKvn4P}`TOj?(Yw-o_Qist8s1pZYdqIl|g1)5y4gtH+pC*Y~bkbQReD6mdRJ zWA1otrAy3|yGw1-d6OkOtHgdoR@Rf^Fli1P&Wo`S*MY&R)h9~tj#NQ~>cp?_H>Uz? z6gNm1O!v)8C`4M6TMz++>oSRJXUM{Wi)?x|>HpO3&8lHK5R2Cv>e`=Iudi(`lU*rJ zB>>W%t*eHI1?P3ZW3AccX;j)6zsEWZvPvbI97m{Rk+R^wpYg*9(l}vcKH&6Iw!dPt z*Frj;hK$5x)kLnNG?Giyxhb+U`$ft)!p7q!9)HNp1My{!qnROf>(HqF;T?8TOy)-U zx%dOyLS5y?P1GKWMjSb6p;icnl!~(a)e!p2K=#B-k9ZmtH?rYLzRt%^Q^w%lw=`uM zw*2tqt;C%>s}7??af`{m898<6CVcd9b=#<<{j5j@e83nx}v zs#IHJeBfj6SDq92W6Fp+!Qy#I#$9Q#$er8s#IT;!;B=`7A zt*M!u5%|ql#N4ZcxR6p4ythKn`9jxR5lP=VesQ!8ZgJfAX5DRGJBtRWon+0cGf_Z2 zZ4tzaC<(Yzor5q}>1tM^NfC!h#=!IW_leI&Ww3!%CTy$}4uAMA3WgtF{}n$-I`2)$e6`%R2o8LIgM>6U zPqBw%Nj*S1eS9W7A}7bso2^|7A(z_Gsc>&$q&M;!S-4$e-WeRtnX}_JL?x){cXMd! zCBw8*(eOLcD(NAMG@v87?!+X$<^`Lygd|sA@sl?B+!uNLX639|xQ1SogH@ic+uDc# zN;u`%e@mn~n#eEZE+*=_s{KXv$rqEV2zM;C3cYy@N9RvwZaX4n{GERB@F}8Mt>dIT z*(m%57Cki}E``e}UvoKL;ub$r^<#P9V65W%4+abM_HyN{DdQvebR{#v=fRCSpD_F` z#j-Sn`RDfbF>sQ5+u+Z&-=wDhVua84%UA$MRV z4>rzQ$%zFmtCs&wHeSH1xAO2+;o}3h$+)ELNIqjx_ZF&;ka|N5ox2r)yHBR&T_3l8J0&UZWbP$s2|}#e`oM{?6;=yweQR)qMK#a& z7aQrQb=+yl=Sd>@UJ9ycIb`)iP~533SyTZ|c2UZYyTG9@&W)y7NbNohbF}7fAvD&G z!Yy~F7nVmxUS=ilS6ubkT_uUAA!W02O@qfkB+)LWJix14N`(#Uo}xQ}n_c{cB~5|j za67JpiLCwkdA+~5t3&rehvvQ}*#cAabGCwW2d49134N@jBNR)H}x zn%7O|Acyh*eNgvEvpzf2fF~QpV(`tat+S zpBZ$>BEWU*tp0LKlo=?IdK1kRw^A)O1{Ge7`8d(>_~d?ZT#nRkd4B|0Q4wN;pPQbI zM7q3!0TcK6JB7uey2b;*!?!Sg%2Pg_LP4q;FP8}E+)D~$^%H-qXZbm49EaR5=Epke z`y|M6NFl^lnl|Kw`PBEctMexARF-Tj*h^Vs!coWKvPaN#Xm|6;O(1V3<$PS$$<>V{ zMzr?Hjyl>k^D8=2#2V{Cii4&>4u;}4dL1Xfjp2?Y?pjs`b9=xx#9Lp4c$E;W(XTWW ze6gM!-3OiHJJg4M;+@ST$tu(2EuCMdMDvtDeVe(wy_BQdTE(jk9A8ew3r}gfy-mTm z(iE_Y+*9YAh8N3W^@5}pLfsxVe@Q%eS!LprrSjL)1m)6bfQ=PYIQ~S7$NSRS?1X~G zGeN8dq9yCfte|NEWQR|6#ZnfE_(zHln55z;sAT7 zuToI7FDM^53|gY+{t9J4T+dz64H?4MZ;w!G0v5)gy!sUslPHbFt+pXYM$gKso9qbUO;Z??`oVg%^xag?|+}|}(J@Z$c9Ds7(7{vX>1TM{* zs!=I%d0xhuj9E1gpA33Cxv3>rBYG%+DJk4INi9HFy1{KI; zsRdHBUi~nyt-~NYg$NK5id}0AfhJtp%i^_2nnZ+m(8GTW29Vt^y>oeDn| zh29yf#1)Innj313*C-Gxdft312e$gw1>wW4^vUBXFuyDHNr(vQoH;HJlLo$9svAo0 z1c8H8){;$LUrUkxHi)PYh+zEeJPtM5E*J+s_bxDVt~cC>*V@X0dR;b)Dz@^*Jd@&D zTL2G}b*UyaR6ZXDY-C#WYK}-yk}WaMzSEm(%)>0Ru=r1&^2k&Cio&kOKGERKP$~^z zqK?n^&P{Ay-$Gvu{FUk0D%w&-@#Jh-SjMsH)#9L1R~{yX=xL|&^M^XPD&Q7@GdOb* zryZX-cXr^0oaAmJDu~6HKR6yHouHkO)rcn8Q`$2~f@Mb*tLeI|;?nP}PDW6-qdl5_ zkecX83o~bWJM=?+qaq-Ie3M1hipAx(;*>&e?5Nen`&L_-{ei>rDZqTaFUcpg4OzI= zltKX}l;(M~IzzSSnIIwVvyp&!qjPW0T}k%dqa=Id)I^GF_8&AnrW57AnT&@ISrL#+ zQ++~=T8QRiM`JXlmN=Uh0(Ez>YTuubefeykA4Dorm7X_n+JSyw7y=5#yDME;6*4$8 zv8Pdc!xSW}$Y3XB>O5C*+>2q?q#6e$B7}MW|N0{IXx%OgMhKnCY$;HhTm28k;ogCv2hRM#QMs z&x@+6s|D0Cg_pA~=O=(i;f%(k_1yb`73X@>QuJZ&W%>Eo#`K^VGPxJdx;X5;bu?Ua z)JC7Us`@%et=+L79J&VE?gpzR-B4Q?dn#2oot&-@aZuW*BWfrYipx`@Iq!fTdG_~W zsp>69m#r`u7nMA|tkO5TZ!q#bMcNoMj3e+0P^B?4y_GF2<=6o6C=>V6yb-nU{(SbQ zsOvGtszwUsB(t?WnNxh7w+IQmDYIF@jn7Cnb47iz>Nn;~*~BV-2VRVQa<{H;jB5TI41<@8nJ>}MGlWPL zvbkR#&;3MTbi~HGq)3=44r?NVfaG>ee?npDMHa<1k`SP*2 zemi<%%&X?9uao1#o}oUdg4K*W0hPqD`_;(3_vhV0hcnee@3x|R(pccCmyfq~=sS%I>%WGlvPM-;>H~jD|1#i z^y&~f9X`tA8inDhmMnJmMkN+Fud7LG4%le@$_YDR-!1>nJZ7xkr{f(mN**_i#8gMv zRA~jk46<`WSqPdIy=rIQ73sho@_8QZQ)-_^ z?s-l$pP!=3NLcWHJ|~X#`H_4++wCC+#Qx4}C+uTm6s&^d?@dkVNN6;b_u3H|?ux#l zU?`Jwj;oK9yzSXgu&#tm_DQCy#-hj8F9NJ8_o%C#CVAva&Yj`mmB^A`xw`aPCT=1+ z0Gl{}-eB4IWWNJcB3M{jzdP_hVD-gx+l-SoB&bGc36D93W5va01B8QJ)Pct1nR^1vfkk2% zWx7bI-`{MNkfP{!IlZ4#Tn4tE|7`Fqq%IBoONl%Lt)~pne!@E6j z_1%ig>-!UB9d!mDuVdV_DvuCWTuddnQck@{z~plr(>mL6Ls<~Y9~Pv_{xc8xxi9LN7>$e_YH`#>V9&2) zP+PiC;QsjQQ*EA3{d2(EP0}U;^zq!_CnvMwtKQ*;=bip#DdJ5*{mz)LgiHjd{WAVC z_6at%h$XA57(?bVv?psHv9Q#=sOn-JeRg58$3^$9$L3vNox)#{f`9l(xqRKNtm1wI zSXjjhfx>+I)0s2WMxpxtr-*E`>cl@f^?bJe1+XtD20_bY%Ea#^_xV>PB4(;+e3gU4 zvp)oi`GYR-9UCz6W#Dyli(CI@LwUGb#2(k|x*$jKpL7dFefS3tMzAy$$J?bsIJt7( zBqy+%Qv>G_4;Ka7trWq1CQUFIL}CgBN0<4jA*SC3d&Qk3u}zy7rEI0mT}dx)^DVM$ z;TqcCD+DQsp65*?dbC}1>eZoc?2ODbDEo~%SuY@F#ZZqb)`bZ!tyH;%Vxy8e?eMoS zKxdv)0;M|N=yi9&ts9E^5ww%397sE3sNk%0W=`cx!v=Gbx*BHY0Zao!lcI}uBl=nn z|C5gK(pQuyPiR#{xHB{JM@up-Z3POe&XQF#eVBuk$H{PG-!9NGX18d@S@V$q<4JHi z`1HPUzr?KkB%fPLF=0>%S}Xr!S6!1eM?cz0#gmk)P|iE3<9Sgu!Ys8Y(K*J&SM^S$ zjsoefUM*`hEX;Ruu~XAIxT^TdpUY>1gMUf3yq$Wl)U4+hRynO`ym`Dhp2#;hoq+MF z@D9`J0>IOe^N15x(Y(3s4g*2u!om*IRN^4kzowoN6P*dks^Og!&kt^XWE49yXCeljHY%sLA{w^eYp}@Mxh|YyxfvKpko2A3a-FcomB!FOG{?u@832p40 zbvZ;bj_D9ADu1r4Et}ho=JR!JPeIQr>83uHF}%*(ZhdWjGHpjjS9tZArAbvnPSnAh zje{{IRX_0LPAD8~+^c$DSC&bgjV-j{2-Ad6%Gp6j3t+_1iO!KKi?(LG>s#vpaqO*0z zkT-4!>-0FpCi-wtS2SmJt-^l(FBTtliAO!)aQ1GTl*qTTWvi&H56PciA%63>g4j{O zR@^Z;CEkwOTsy#ZVKZmUL~mVA>yR*yIPoKG#kM=*0|7%W+|ios%$>X%9gCDnEzm4g zb?Q~jHS`O%HBT`}8)6_s+*(CK$CHC1*cOv-d~xDJyWKl;{8KpPF*SMpTrSfc=|ouC zjx;qN)(^9WxQ%a3R;1SqoRjq!;?5kvGaH|{ZZ8+-(23i}pQ(bqh^#KlHAhF|+?{vh z3}qFjLfGea(AvgT>HzLI=UT;G&|K&$C;lYR-<_Q-vJ#4M8whumI>+@>Pj1bmk5H9v z!NW~DSH*EBJ`9mr$xsRC$wB!TM$7QNDA=mxgI2fM3F|3$SN7J z`bEd!ooHBfctJa;+d-T<%M(23XB&^uJ)!vdk$X_?_-O!!(s8<2+I3=kYMox+wB1D2 z$RX&dbxc^LZJu6Zqs5=2zgBs3lyFQLi&Bhu!9fE!8M2*r_6XShm7A{CaUm{YWkhVP z&g3Y+vNJRfngG0dPG%(H z*&Gso=+b&Bg2^X(eByq*mYL8LU;3jGFo$++oHwL+B2r63nR3?vn|!uhc)vBK#S6KR z1h{s%TUSmBOE{2*(TjiX>s5Y*&)sQJkFC0_3;+?Wq-R};-r8b=yuk#P%4vR2IOQW; z$4s;Pe92;A*2?3dfaBuXb_;+zQpK}nW%{=xS1$d2uM(|jOQ~3;&|f8nu7~z7$=W%f z@R`}#)i?&?^Rub0J#7dz56Q>)SBNBKdZ&K;c50T3M#T|fQS|vF5a5Ag|HWPvo-H?- z(#Y@$9hn?h9ZxBnJ#CDD04q=SS8}%(>{OO)RQ{ojBLL`$$*T+5Dj>dIMzqVR1uldO z$-Z$d(yArSw<2OE3Of`2?%8gm|;eNoFI7W#=$}uOf}}yoajTC#iKtjg4V5P%6?!9NtyKVz1f3 z-T><@%-QGLE!X-;*M?mEth?27H-c*Tj0#Lee-oNZNQ&q~+4)f%>0d6=qSbPE z`Spe_nvNGi(i1?bwVU&eR!M)aO#=97P%?474g4%B)LdR9ltOSJ8lSYd=NE`|t%g)Z zBb%}nj1-3`^Sw}{$%3bxbnOXP_)g^7!FUfD{U%Hh_~n+SOU24h>;n*AWR;yojN7oI zVDlC#Xul%DtA>_wwG)oWoQod1XOieLKz<3#-TQZ3Tv2Hy~f#>n|iicu& z&QB-DNttO>I-yFIi}M1b&;(E|TslX143o#)WTSP)U8%Fdf8cbI%A&4j%=)`jyy5IX zFT{tnC_JtY{sX~uu_&p1@)for)Zv3w7D=2{y4QX+GJbI3_;H(+4;`G4YD3RIxzFqA z^+HJtWz|@2ERQV-K%SFRDF76dmu&#gzL=odb1dOLCPSU8A z^~2p0tcc{z$i-plsATrBt9Qc+a8h9Z{l3}V;XoIV2u+WV6ZfL$Zkr@?Jbq>Wo+N+R zf27#=RLI<#y!Jtgb31EMRhd_&)x<;EJOJ+ayQ5Xz_tWHa@Rs7c&nF0`_%7Zx-?ibl z{E;Q5)@LW_$mK>lc|N+5n{SngBH_4fN_xZ0JdOaB62|Wq%pSgrGF*HVa=+|`04{fZ zd|8}~1wVx|;tGh~8_>dez!M{aOEhb?i*xSCQIb2yY^Uc>!E$3*P(B|AUA&!N%DHL8 z<2!TRn!Jy1n5>rLVmbzt18HvMoGT?awq7W*mDO^PAzPTS3D|trcwFf#@F3R}-v&D2ZkK8$KfMv`l{|Ot#5kk@J(yp37R?*q?36K3@&%>!ntv{j){oFL9c?wmml4S@5 z)A+%pqig^s%}83rCO9#aBTtysZ!9|JQ4@FFZ5a&WCjmS?8W;Df-gdyk2>o#ddGAn@ zq%iT6N{Nf3q6|B|GEl%_+~MSg4HFZgOn*JPyS!&qt0$Y6Yn38kHGqod`aC!>qoqR6 znHlnqWrjbShypfj0d)ygtIxDya$cK89P2~cFwbeSO`jR1ahEher}k`P9K0nA_OFB5 zA?zstwpLx@XRH>x2l~D8Awmh>bt@}r|LBd7`d%Hkx6e4b zjpJNdIC7{@lIj~hDbw*+{3~ZpYJ=R`-6W62nm@X5DsX<3hpIwWxQ}x5MxOVOCQ67& z2dY$6e}g>n!1=r*=aJe7crr4Ib!9NX&g?2ftc!g1AG4nU)T>nrMI1|q13?PwelbV) zjBC{azJJm^Kk(eN8SUr1$qX;K1769(T8e^nRD~m_XJFn`G>1BY6Ionvp+|16vTBWq z>)I(kjuW=K(WVAuY2E6LQ262jwUy@EpF^8+oVxj`r8jUJJY;HAAk;Wu1Fjq z`ZZuq%-aJy)cdvNAiwL81SaJr9g|fHEITYNy_K@$&_byC82CYeyA1y7;1$}cmB<_~ z!)}wj3uV{^gA)yPas1{;HbVi>IxQU(*m{++Ltu9DQu8Y~Y~&>q#Kb4YBTxC6kmiW} z-H!S_+*}~!6|g_ipU%SBeSLgN(nYK=HDCbdD!PrT7e048Wv9ZzbrffzrF#NMs}@w5X>kkQ4vF`Gw8oRs8<5*7qC`mEr^+McHd(G zJC2H3eW*r!mHu(_Lj@W7Q$I|&ewBD_nYTKEbjKZ0<;o~OI6p0dM@0`Uqt@! z38KcaJr{RFE{`YUQ|^hSD@m1Dx52StN?dR3LTBA9NV0Rn95we7jg7z5t=kugm7Adn z6pT^Y36+8;hPC8{OELc}l>yTCaaqO!#741s_)FSZ*)m&0{XE$3c*obd*XN6{hQ-G8 ziCS)n8OKTb^PYpM1tD|!lW4Jnw~&!3Y~kh5L#wyoOrq$@pF~x*ZI&0nuT>Lv^^Ts@#8FF!MN3Q<@Yubf73W`H@*UVicczW6Zg`%3bdP_agM9V52ubj#&#v zvv-7+jjMc4^bJrrK7dn6HT^R?bZu00E^#KRq{&CB#CEgI7Y=6QLLO~qtQhEnU4QF7 z{!YxQr9Vil+NS7Z+1eqZ#CZp1>NHZpRP)6W&mFt~*D?!$!Zaz4Gc2q20WHedX>eo9 zMi=0dLZpPIc2~w}e1AI3dVwB2ns~_JnOm z((PmGrq+j7>Q_LLkFICu1F~)m&D%Wjk^H$9Z>*Yqu42ee%KL(|YBOqW4X$FPB7J0X z4gy6R+;gAZqxJy(+?JjDxC0ZewgxI5GKOpDVp3Z4B4O68(4tVjU932#an1!hf{zixA>~#$L1l%D*(c3YgS5*ddU2Mt zC(H&r%`xxxV9qp1qZ(0f;cezqB|)5*vB6DbOqx3LE-;5;-{VxT`{>kP>yfozAqLsz za*sy~=bc=Y=Kj$F;D_B8V@7Rv-nrQqAt$9Do~&BE>6@Afjc3a+yjmZ1hV2Zt$fW3* zczAJJx5?ZQGZ%Py0H%M)CKPTW)63(j&goD422I$@n&qzzgzz|-jU zFVpQ1R5QvG!Qv3Gu7g?Iez!1fa1v*?`Y!T^G%l*2EZM-QoC#YnSk%rpoS_lw-Oe1^c`9DoJ2>ry0I;`E zs`zHc8n$xMYASk=bkTOYABD8>NfK(vD7rEcF5$e1Vp70F(PUt+Eb8iaaj5u_d3v?p z+Nt%5;iNPRlT;mX={DFW>XVPas|`9$*ug%!0U*Jx zj^|ZqFehczj#JN)6i5Pe78Rs znkIR8bX6W0?-vg)EfJH`m=@U6?h|laC4E-u^{0wsu@mWYEDtYie1hI#IZhEIFk340a& zmtU?`T@`$>)TwDdsUMh*R)5nhhS$FmRHy&2QIDx&D-?(&Ne8 zT@DJ1&WYT@l4Y=Hho~mB*)WiMpDG)(7uYNkYdW#_t~nQqF$LzSEZvpge&(J@m=W6X zR@QYNhhWt6)EYM~%8XQcA}L}~^y7Cd(d>Eyr>otX>^&NRL z24(;b6YYS|RronMP@R`}x!Bz=J0d16W>)V~;z&3aQ43adRGce;U+{ioHLJvrx1#Xe zz%?pLQrbCYm5|>Wr%6m+Qg!s>Ls^^)ua-X->?WS^0nynBvfp>luC5CT&s7N{W3jc& zZ#U5+wF>H1jfiYBliVZDD)DEY|H`^uv=MS5q`ykP(U1NOdfqU&0DKjGd~nT!L;vj4 zZKmj#-i(VUt)y;}gd?SpAD(2)Qz}dMc1&)i$vtC+<@X@?lv5XPD*f9F=C( zd>8<^aNmA|LuncU3)l27rZFlGag?xaep0JQ{yVTu9V;+cHRwq>N0YR2;GpBMio-pE z9e_oZpmy|?^;6|GB@hyVv@J2yFDYI$3+emW1k-vVbW~x&i7>&6_>^9 z1pqTMy?^xCho<7cUJJ^Sr}&D@+SfQgNnQ`S`HSgz%PQ<=FSSYWO$ekBGF-XJs=q&) zp3!}%Dg_b=>szfv+Af0QVU-3 z-kI*;cZtmwsa37+9|l-iRlZk?SjPj9sW#U<2~)7#D|HnF4fJW?^QmY9QQ-{-P{c#c zIi)V6(VrXuAi3ZV%_!pBi~+0G**c2wjwa=dJ1u3w1z|}`CI>(EtDyc=%S`m&E9sTK zfWI?CP9%4tyIZPFf5qbu(cxa2?2PbVbzS5Z2^^Gk<{(L3I!=dj^pCLkG{Z_JI2_kX z^}jR3s4!KWA0#IE4E|hjZ}_$IOjXjGq2jRC{tqv`HMdULU8;*N7iNrjT5O>nPdIpK zasq~6*GHP1I*OgVK%>WWM!O@IF?GTyn29nRh^*o)*++Yn#n2@ZTcvt(R~intL5 zgE~2zGA#~khv4f(&3yGi2Di5R$cZY zRQyDC5&aNDi-`nY`YQz;pTL^8)zE3}QgM-S6S5Gax|BD2y*lAUDo@GU^bCM6NTMge z&5pAS3(d$EDGEE;x_sLIVARa(sF>lId!F9iXH^T2yBR^5H!l&C^-D`&dfv4zKEb3v zQB;j`P-9^@=i~sz8BSgdx&u8TFR6>C%9j9TDsVTErUIk?&;+~6xCvPyTf-(h%GVvO zO850o0Y5C@fV5_2Tf(iB{%;HW4(gkkrCNBi-uMPSK+0}JFX@Y$lO+ZuVz!6LBZj^lacE*tY9 z`sAK{RyVV`dh#+nrO&kvctB;VXj2h%>-Z$jKVxuWRb z9h{vw&J)}8jC#PDeYB5PbywG7$LWk@Gth7v>6SAG)MYjtW~)>NEAIw)NX6>apf3R* za}cFwrMvMjM_?Tlmgp-1R0N9s|aSxj_QaWIUdLcw~M?~ zNbiPHg71s(vjMe9R3c2MEkL96KazAkpg`d5@k7CZF3^NNs^D=;0V4sV08 zmGStJN}Sq_O3D|ZzRDK2E`8;qwh z14is=t~MJL!vFaB%}e}ampO5ibRZK+bGMMMjd#Qwy982O&N$=d>ha_?ujjA6a$Do8 zzdAm6=XEi&j!?>ais*R2OXd9f@`uhQAKTXu{BVI|=iSEdkgBOMuyN)z8-QNkTNXhO z+!#IivJve_D;_mzu~#iX;rF=BO@woaZ$b4@{@PSoqKjTt5dDdkRIU zhS^tbj~c=gs~Nt6}g59?so`ww%}Ix4lA4 zdSi8!|IBRR2j?zZ`*2nmC37n9p^QzC&!8^C4E$J6ev(2N>2=kmBwUJG8DmvGMIv6# zD@gvhd_)`Y&PPr-Y8nQ5F3X)vc}mpj%rM-0M0kr%ea7t%5mUu0YQ+Ri7)f0N`H_!+ zIyqzT&Typ^^V|;YR-E4iuBls@ls@r69juEXzhyFV9XDn{P(+3Ur^CWnN*x$Q zpSMh(%KpfA5u|E;L{5z8YWg-L@g_T-TM**h7Eq8Vq2siwb=P~X$O(t_a?}j z@?EQ9FvK1Al4IY(C<7rW)3nAq*ogrD{Cqe{Xjaj3;2K6mVZoWFiYf5QU%wAa70_eX z^Sc~ymOcw`^oIs2 z4!551VyMSu?aEgN7Zn_N=6-X7#h~q~9oI4VMFV@&Jm$33Fekab`H4E}*4WBI&s*Ws zRD%VJR9+QtVJ?$Mps{hSArMOK(bw3)(T9YN^Vx3S+(LMPygheRd3Fh1ntO}rvK?ly zET(?nJ&c!$=9lSxUgShc&vrUPlE6;5d9bT)(z`)Pwq{NSy~SO<$^CKC!HRb8g%k>) zSSvIko$rVDi1uVsG3wQ{fTaFyD|Qt$%=}2`L>_pF@;RMvQ;KNtF=rLzQDX>t5sMGM zR+C59u>z>n9I$hU$u^`kSZ3Q&T1?j+&2>mhv0U@^J{^b8mpT~l$EhKNW1)#$^cdfU=%;sZ>~&oMJ_f?*f^^Ve;`Jzm6#a7C`YDw zPn-nbml^~+BCI|Ljwlzalzng=lN;Y%Q(4RTwJ{;BMh@Tfx_lhQtXIQv9n~CERy--} z2VeTmQb@#h>WCliIjOXUjNskrrEupRF?VE%uYxd9K1kE%ZmSn$Txl$p5O6gz@`wv% z8BXO#K#~NjHewYeIsPBtwkC{g>2o)o?|X3Q1tldtpcg$FCr82f&UjPWl?n0v1>5nj zwOYI@E!u{7@t|# zMxepzUUZgLli7Pr&-L?zpmq1`1{8qRo#i@5th)XKC`WiL>;K0Iym2i!{w7 z;6U;&4oA&@?qhU4#=$~@$marC_DrR)}}+Q6hpSfwWh!*1uXxd zUMYV|gflBTy@o#@Z6J7B*j3YVy!Jo$MM9G7PE~RT{E%k=UWBGstoeyyY55JA15atd z#gmWlaX#6~8{ho`xq^~-RDq>?t^m~8XRNp#lROg#zw=elA~|dnjPuV%;NhOKv_+yW zLiV^hj=4@<ndVy5A170aHsqwT7hB3dozTeL z#VO7Agj8sUWaIR*Ha+GgbiO%ZX^~9}_!F^?@nPIK{LHoJvy!>ZScsDI- z)@DpGPinw^>VEbJR2Y)XIiFPVC*?aSZ5YF6LlRKhRq=sAz!dtt)m*ZPeh{4>h1#@S z?Kw4*=^d4H{FedK2Y1bF=s1T9a7FbY3lE`b>f)s=^baeCDMCav9rh%rA`Z%V2)j!1 z!hB(IXI`Ha=jCy`$gFE5+)Pudy^n)<(ifeC8vvE|i&e)AFjh^2wDl`Gdn?Pou*KP^iH+v1yjm3VX_}){ z!sV((JW3f~BCyGPZ3dR|+I7VbZVwzwy0KIZB#*#5?UPit@JcaUH}OxBo73QEunXeH z{o=Zi$`5xQx5KWf*vF56=XeFU6?T%`W6potH&}C1!=)s8Zs6uC!2Jy{PzdZ#EseSo z^KnsSx=9%F$yt!hy?x<)voeBf=084&^;od)>a97+z6Zjc)$68})CxQd;h_?b48{G< zJZ10I@u3SwGqI1+8;?`+BI;$U2xBW+Z}^+Mnb>*HXdb&oSMxBD5<{TnPQQt5feiJo zV!6dqqDtA0dIuOoDpY@HQb0bPl5<_!J1 z8EVsI>Wb>J6?xy7?Rnhr*6$$p?;Ywd*p%*30XBA z4w9VMG8MNEuGf~1(b*M?5|ME76g!VN@RGY0wpe#YFBx+!ZS+&VuRuG#IBo(sA+>Fx zhH7Y2r_hq{&UkEIQJwx7kLO2u^@qS~!27Z*5AZn43U9?63;Pe4`^`&|^R=bPRw?2y683GMMWc0w zd7w!Xf6XAQ+d)>lfp9S+& z%W&eQNMC8$B;Efhhiy7QQaBTz(r^goJ0%CeWeS`x@5{V(;U98;v}lcYK;KBd$?Gz7`@{C zz-N;%IBfwAkU(8Ls6na#!GRO>jO8P?y6SJ^lg)_@vLZ+voKwM-a~WyhbQ5mnuJ0rd z6bm+A50SSs$^6SNZLxsYc1ni{qtiw{6F+XCNb*;g|*%b?Tn+6!)Xm)2u*BR@z?9r>Rfu2 zQ!r1IRK?DRD^A+OV$I(jO^ok+e14nBv%(ovF~|9FAc}aZiK zhadT83lG$t2-8pVnk}ga2N%*00{U2GW;g-@Tj@6pT8mF=uQ^EF;Cu4 z?puCocYnA%j7_3b@{^O>ch!v8AFZc)8DTElBP6_52@cs?PGP85+;GDi_^Y7DTS)O; zu`!i!ZtN?i$XwPp!!0^ajy$jF$j?2gf)FZKK~W`9JfYdYQS>oH6vjU#(*=BIg6BnF zlJq5oVZ-g<@z%PO4bLq@MXI~{6e%bBq~ZalwK*sapkS8r0+>VVv+fH5CzjCkN~G~p z1P-IT0=D$*Y=6=|Fqi$y`AHxU${Dw|LO`$D9ezGiO_^MSv^3n4Q%5^@2WQA6q}1V# zap}$JF%ikSi?>8aw-e@T5USa!Po9RA_%HxNaW3l0x`&NkPN)Bp5h#f2p%H zeW-4SW5PpkPxZG2o)KxnSeS%Bvy{^&snx6XgZ%KZFuM-+v3gu69WwGL;D(CBCxcsJ zV}EmpS%ar^n%tdXTnxw?5UD$zh{DMIP zQ(qaW;1Qq5A=KTK8jxeA_Vj^tt;`9CLgBqif4 zFbV^fW)yG>%RL)4)hifMfrUnqxmQaBp3J+Gz6T~`qJ^O_zHaNGa%N~ zyhJ9bK3`JAFj*LJ{iBsVBY(XSRx^W;%HNW94E7?s3PLo8wK&>Ht_~CNF}1*htJ`tJ zR&n63?l}F<$|osB<5J32o;eb4Vaxanc2xxR$WLwPA5U|ujIlvKJPoFRIvW;_Pz-%& zSly>@VwfNK9ZznEa=G&fD;mWWEYy90grTgkavduOXBpw<$VMLOokm=pJRMz>Vb^R< z>rA@rcP^~b5-f zngonTx7m1TG8HWRr_AARC+tr%x2TI;J1b0dU`2-NrU}o2*}#*fiILGk>Yz{AA&;jp^H7$B zNnfMI;$qw#S_haq@h|8y-soO!%=NM%`-twNsL=W&AY0BgL!pUK@JaC$;d(7~V6J&O z^USVOoxFh!K9eIXpcKHl_hOXpQQb1J;@uY`*g|u%P}Rt$uVyuMd(}62vuehc35ez* z=NTAMdL=y;L?_P!iECl&1>WUaA@Q6`SeV%GlG64b_n%klJaS!x2-+ANuZ?M4O+i%t zd0VUhYElrSVc^YM?JbAF!fI9B-ytUh0o}ks!Ed2?#3(aR&s(8b0!sDZ9BenB4+bnP z=g#9(wjkRYH9n zt?TZyw6*4J9L^WXM{_Gl2V~)~w^R8f$ws;Y=jdh0rx|w8k@Uf`? zPlJ`UrL#CHJ;?X~O{co`Do>}CY*{Fl{m#z~Ys zQ?hQ`5|c=)Vcu)=5;+t5&^yK6#2Nb3Q#7P-y#j_EqrvUOyy*3m+ntne2QXX3FpeZ@ zZ{P^D5`hOm(AZX&J&MeFSC>e&b-3_u@ml`bDknhFJHy4#%b*l_oN+;t&*wo{Xdr)H zX_DlGCuKP1slI`;F!NI6L)cWA8!xto(J|n$x_Ew?1Qw^_2hZ#BVNCy0dDA-A15Vi< z5Bg)pHHMFqcp(FX6jDWDW2RXLzs0rK=TdC4O8>j^bxrv2n3=D3S+{QXRV22!PmyYa z{0f?fTgJXQmvu?D3&~&EFZ$A&;l}#|8-L!!FaZKRgA1TB4n*B1zg924$swCe>k$<06Db<$I1_cH5{_z&uzi6@`Uss|!^^JBc)br2DJVZv^vM}Mm|ATe zlPr^)h0v&p_y{Xh#TxW_*_X>fC!P;2=Z7rhfs5zubMu^IS-XCGP1*hQy;M>=4p(YAW z=9?~s{gKhw@tCpXQ5Ml~te<3ElWbD7f zJnKO%F3Bf!>qN90k;#cfk2HYwYzza&G-%gjj7BI0=_nUG9YYzvpIBt%^ooGy)BjNL z+k3KAC%0noQE4h*pd5rc#=iK`2KJHplPDHd2b&&8H<74rhCy$9ZoI(WppRaN<@a>- zQ0yFM?^>P1i!Jhgu&sMe?xnT@RWn-L@Km#;K~rcA%(QXGjHe%Y$th1cXg!SJIM7Uq z=k!gL?;m-$B^Yw2M7205$+*CUw>nPXFdfl956(NYPuN$juxttZBlB@C0w(Q`>qs7& zWL;SOCT&zs1S8FxQB_HZOHIZfQO@>(eoDiM9Y)i&wW-^06k!6xarTMnxm647BjG0- z9H9#Z((f211ZNUgH2I@Boog-l6Gm>QN(Uu-o7W9RMWSJ@SH8f2*5Su58_l2sa><#u zuEutSje+$_VD9>bx95q|3IK1hs2MO}MA{1H5fKs_*`cL8zP~ePl-{|X3bATQPPk3O z5tI&2$aP6yNG4wYq;&W;Mi%zJ^;8w{{F67oT(sda-C_=}!{R(dX2lhv*R+rgPrJXi zA#D66o--0bdM?Y%!W1y8@c$G`w|@k{;k@5+IqhE};X0LYzJ_<|h8cn#j2OA?Ew*-z z$s^@3z+GrM4((xi+|zz}>2!sFi!QF3_hdliRLph%lLC8WQ4;f_T)AV3!cIK3RF8v7 zBFV>|jGk(Ujrr-jlQ6$MEIMeu21JM7?4vymsJFQ^BZavY{I8yxy2XVM#Wco-|a z-HZfoZ-J1#MN)a;_mju3?RhD>DiZHe2|1Y~3(3$UfR-ob?sJc^yQ8`Rx+}t}@2i$o zw)>S}BuU%RPU$CC6)fD;s#@6>y-?skh|1MO*A)daKsGceocg!y-540Fyo_>r{iO70 zgV>j+!c`;Wi|gbj$+mKibK!qK6Ae!;d3zXL)d_X7$sFYJY$#9PV1K=252WS22*g{Y z(xN*T#G0PDFkuMm7H?NCU|e}M^xWk!%~DlNZdnnSnqM!D*tNcgei!Aif#K^lKGI!A z&~E{3kq@rpr_UxqjzZphbU=(7wVcbPQgX#?s*~a8aNGX9#lizc1T`AF17H#~m?F>j zrwG`tFAzQrSDHEbL2eEU5T0M+VymK(AQd<^eLrksM8~qz)cgJr!$~A%F?9MzzwyB; zWMq7hsd&fcjfU9Oqrx6X?0km1kSA8La!@&adBA59@<@n}qJ6R#5MAa;)TyM&D&(3W zu3P6fwVj78<=Pu8TvaP5>>c+46oyt9HM;)jNK2lP9wy@D>sL5=a{aKo57ojQ4LCFI zQ|5Gc#J1^%f=c)VVb_i1f+fs+8$6HV@@D<<^s3Hp=M9;&TL`i`Uqj&#<0>Cp4X)r& zwjsm*#Ig-)0dN*CFEYmOYci#7cNKkmI<&qQ{?y_HHm+3i{Zy5s?fnhrJa7^eZfXPs zhAG*+JGHxYd#E`B4K(@`NY`2*Uet?V61F!k>k~!u#D+(&T&d!71=GQO>G_VJ@@5`b zxCTv#@N-mP@fg8b;Ju~j32T=esi7@XFPv4{gA1Bo>$7EvqWL6N+H2SM(@oATH&gaH zEGlS%WN^HQ4kfzKw5Oo?A7f^gV9Acc(Eaba;{cK%;%2@63SXN+h{4V(GqzHZI(*_p zG;g~B?wMMPWxgdhDUXKWlqvseF;3an^RU*)Wz^gX$ws3gC?y0x83FC0qw zIyBm{(Xntbopf&c{I@%3J{HR}*nZTxZu3=97@oqCLX!-e;c)t_Hx&8L+!g+zeT>hq zh|7Q(Nb1Z5TdAh3l06s40}i!UXI|&HgfGlyj`r%qVOd5)L+g~RA+jjCaW%CZ+YNME z$<%fa_7FzqwWopR^A2ZYc%-h|U-yFzpoud!c0Kqv zw%#dauh~P)-5Rm1GPyE3p16-*Oqrnxb=vP1=!V*m=p?5+)(Mca(B*7Ye+lx zvJ#%DHvPm{k##w0v-Tvz`@3#RO!~g(SjvtKWM8qTF zn?sqHidfTO{9F3ME(3^UBp?uuPZ{Hynzb=S#fIBA%BTH@ws96OtdbgANd{w2_hZ=V z74Cl|AYwh*4$34Un)TEZxY?B51`&&brUObRdoX# zk`f01+tG58Uau3yaQtdh79F4t!a-$7PhEL$AA=bkQpV4jpqh3~F#>AYr-Ngg)d_zr zmQVf3lpd&fP8?8bH|M?r`-TuNCFiO5wd% zhXe;bLEtcL_0(3-8-c-d*48I801!66&f1)nyolvE#lUL!1NHnc7QyDW-=ov)uZJtdVMkBsz6hDYK17+)-%=A3=xce4~q zfS&+EKC5;q^cXr14?{rqme_Kdp19q0m7s;4Oa$jI^;G#Y@LKGDL>Q;S%U4AKuP4w6 zhR=-l6lY4g*~iegds9|M`c75?TJ9bSH$wXSM6w$k12NhNrJOU=zr~p3iQ80=XXC`4 zSWK}E)?#?VQxy@5E4n1^ox{O>6O>}$?>q@==lo<0h4iT5*;vY?{14;i2K6R@Rg&GI z=XB}0a{s$1qyNF&xONStJ*S;o1RF_qu;w&{nQo(gO0!1VNs!xJS@s)02%e)!kka7P zvhkVDY|3SWcoTLQPdpd#A3~{6=P;%7e=z$_t7BnNbZq<$Zo)^xgI{CVllI*Np3kYe z5|Md3CN)3GCk$%%`^IS!a! zA>|S+Jvp#tz;vRP&qJ-~;0tjh$4>};t0lU-YI=~?K&$dw>PG4|Fw0HXr*KkXEr79S zDpzpO>G%_+qOlA|T_9}PV`{QZe=T51!!*IoUv58Ak_J>=HvCUiZS2MGgm&Po<0`Ym z>`|1_BiYq zA_^+1mx5)y2p@~qlzV!?w?ZS|PTtAhXQ}hg`vVNVrr`xW=9<117}5>e2S{R9Uk<8l z39DUyIC5FnV(7+zQqy&MiCNh@C@Oh|gH9LqAl|r4U|XRasL4>H3sVd_FEM)2|snfZhkR-rdNV8`|sLdqZ>gf}&5Uuu}w zzXeRN&{LwgPqD_m2iW4y59}oLJn{eFJkdq(K_~pf$jK^u6F_SlFN@!e?%JIT&LpXb zn?KcGcoz`+$PugN_5*LcylOM56T&eXqPuoR=41P5t6R;5@vU$lAvBwc+t82@?hESlnG9h&=ZE$J1*1>J>VX)}&LVC-L z#?GA}g@yE@apy+tb0$zv!5RNpPy8QiY}jE@B4j9KK2=%}c9v5ay6`}U_HA5yI9!8l zhKbY_zXxaPNR}ys#hA+L27tg!>?hSB>8`qLM5=-|SQe&3ern^IKSALkwRfhbsj~-! zQzy-4AOZ+NA~kVGWD%kENWNUhZi@KID%EMy!;9SiD(jf|W6Y`wRk6f$+=#G^}TWx zuyBgrOjqEVLw$IN*;Q)}DiSmuo9%b5lm>kdgeGocIL;6=zqd++gD+L1-{FQ;IOyt; zl)lKc-Eq$Wi5l+9n(xd83aC3+*)au03TDVEW}f^6$_c#b9nZ)#NXyt$&PKRAQl9f$ z{uCG6^XR5@4yjA!9jPCH$(kmlyXM3Pj>`GVsPVBV)dN8+CobeX=94SDV|rTG63J^L z#ZY>)9O6UcBu9n*ZPCt!>%gzf;-H26#6)qK8K9Bit>?e*=v zlAbJ-e|ngO{l`qnik}_xtJf;FS54e_6F}zyhadJsPgV^EV_9{UK82#$*UCe`9bMLc z1pBSNt5ReXW9p~LuBHlo%()X&W|&>r-pEr zUyj|&2x3|rwwXfpJz2(*C4*d$+>&-o3*bQG=v(%o5t(JI7}&Z-;?ex{VP(SqOubCp z6cON=2OR%kyU}pi46y22JK6&ibV`0ErFPb+(w{-OWu`)Q5yGhXaj>4rb%f)o9^5$F z0|>YQve-bdEFp0zcOp4zN{EY+IWZgF_!=nQKB-a#RuU0$MF3l(`rI9@qH|22*9is>QH z!Cz4)aC+>+q|w#*SjHS0FtP3`_KDKt`-v1+sAbGbg33n84ugnh{FGTle#GA8C8E)5 zs{Uo6Owob}r9Sg)VZUpwRwiIm1=2^uuvmB|t26nY;yF@g*bfpIB^J}=lUG8^6W}t= zqAKhDaB>=}tk$6ZB=4yoAs>S9UzGEECdk}<`NYBTTi7Y% z(T(@TzF68$5bW~)+S66sIl{%sz|KT*VggyXg=f?^7X$D3N=WD#+)VAx5i-eulhTJ6 z{Yb~(9Az>Z+H;~@kB#|gR~agns-(07)GDZn$gv|pOGO2VhlDpNYx~=A?*=h5e-P2Z zZP*$p8J(UJ_tq`sdW3xQSX>V+i0->WWc>1*#-{8(2~U6xJ#lSbfQ50*z*i+6s{&K; zP`X<&$@dg+AWs$G^Xa&NK=)=5vt}@)7GZKNkJ3I+WUgaa9+Nvwq3Qt{GwIq`$tc09 zG|!ixHcBKT(ZZxALF37;Il?2~1-56!K;T@1vbd1~U*hEppk?6JMV!ml$?51V^=AGf zG@ZPC9vS?!XI6hzgD@b|O~R^OW)CS?fv!q_OqNiwdk)iZ%1(9FK{zqWIA4VI8+)bX z1qyR7+Mwaksm{FKl=D@$x;@MQJl0tB*>Q|zL(y+(Jo2O z;4iV{vR9w@zYT}=jNU!&?uiCm;;#@9YG0~uz6ifbUB3&(mRG_vRwtdOB$O8Ct(Y;4 zj5BvYEygjQd2K3|I>tyEw+h60X5or*_g1 zx`x`~IV;pBKt@F`y0N?^^O3t~|4OEWLhB_eZ zrWw0x5jUMFwt}3bA(gEfA=}>#Fj+@NBN9?L=~(uON?zG5YbV&D?CixBt8Y7htMQ}W z;YOWRSTXzAa_4oz2m;Up&&;#1Xv+ER4z-!vm4SnA6Que3LWGEF)$ZaXwO)q;8{P^p zvl1XrhjG&7!HJz^%YA^?gLXo}LIW5|1aZ!HP%6!aiDu^z-$h5k(?3q=e&ct%AX34d zh0FOz+bmofadCU%!(?&rih+H%!VeGP8M!hD+?3EUDLzWXT?Mei?j`4S3v>8x>TB=R z$PjSQb;^!Q&Ygt{7px!?<}nmkca^g5l^sf-jUr=e<1h8p$0|gX#r$RA8Ysf;$}Ya2>kGxX#WWFNbL_3tPxc)Skk5?#H!KkyG>(<6OibaS zP6h}9e^f;%*7a!mfF4a&ow5&G=?lL`Gq(avg=_Iu=cPzM&b?uv78nlNJRU9E?iLkk z!^2mUgQ>cgDlXedB1hk)A)fgjN{~;L%wIq;)km1B5LtZRpb;uU0zna>c01aJBD})( z6m84MyleUdvHciAnm6Gj({Fo*7(lE-%@BVweU#cFP-v8xS#f#hJjR6i1cJd5LcIe( zU1@RQIT>cP!j{crCb&My|Hw~;&F4TnKY-U<%Eafm`-S7vNLu1WGi+5 zWMmL!A72%^L5sSQ@!xqF9l_|ilG+suFIQz|vvkj2CJ!xt|G4qKM!3UqfLA;*lNf|5 znkhk`iqdq%%q)l9#diQoQ6v@&d2l_o$)kALPPd;|!k{x+dEqPOpEh&I_Kx+mN|gq- zrX^D}870n`Y4D>~!)53wCU;%AW)5>Vz%D27oksdl(v?xVcUp^R$BImfv|T%X7RCOG zy7`EjNX$;DulFe@Db?cY1GpV;Tff+?SO$whN{Rg$o+d|S@O64XK5Br>T^;9{2TrXX zc@gjE2AJ^R!Obxx(}LgVog_EOJ13V!Pu&K(C@BL#paA)T)?6h?2ZPV0Xm%WgMOYLm zEUGwsR2&vf3s5G8N@CbfEf;32)Z%YsKd+(?)s;yIO8cpU!IVUQ92L~ht{GL{oAV@O zd#pkei*dF1$iO|5!Qq=$v=iK`f#fqnCkq)`-wef)N6-vEkFi9Uz9f1D_Ti|40)ZK) z{D^uwvS0+P46)OAc0lRALWG$an&k)4n~QBOh*brZKs>eG1Ac5{Kra$ZpHSp0{r-dA zmlF)s7K^k1S6YzBtG%&s1qp}EICzj+^irs6CkV?P(v<=+#rGT64}z?TpIF_clYm&I ztqbo|J}1cxC{G&Bj|%Nv{vv9ODTp}M4gyngE=j|94mO%hZpGsl|< z9q>Kb3b5E8XhM2;O-nk*vR7HdO1oTEfD}iPY*#X1AzKRf zXvm%8k`&+9Bg++C!5Og^D~nZU1=rJ(;we;=$ieXU4}nM!teR3*nKV38>S-Ru-SV|h4Pej3lQm!OXO+vvxsyTmnvuyTjJu9E}j_k+Id z3i@t3to*34?Ihg(5mlpDTs)1)uLnwko?{sXP?4$>@Kx6|Aas*^-!?NTo==R+$O+Rq zEBX-bdO?_?ubrxgPoC0$y%M+yqTJ}ZXo-)Bjsb-Ssq~F+=rIe4HK;gr6MEsIsGZ~1 zuzv3j__+EPxCiuabAx>8noAGu&RQH{=~Kh%yLsOvK$U6j3~1%-8yV6ACe&pmMF+!% zdhU%=X9$;fHo(bOFBTuLu{Ekf@!V}Ppd5Qn*s8bK1b5sCTh|Zv{i4vd>leNo`QcDd zkH0SXL9&Cm4-W$vKzyco)BG8>4b4#ySf=&g3S(SAPbw>6RX>>Bz0PlUas`a+3j#JF zZd};L%dA@V^k(2&%|1CxK)vEH8KC@PA^rx*2@=g}gR>j$vwbjhp?=OyN6#QsOx@fA zg%lTU0$6Ho^_khN$~MU0npoHf?^i3r2H^m_z|I3}%qeF+W<#^2>&do8Q!4Ybj+N7t zXVO$;9M-mvC1)f419|9kv#;vfC>|~sHjN0+=mLN|CkT%Gq@apn^zUi7W|b0r@xo#5 zsy`3S<5^S&V`0UiiR0pVS+*Ipb5`P*nUQW9%F{Zq-K4-ObZAhOZWL)wER#t+L)m0x(QLbFu(~xmusYA_^rU4(iC*KX7mkAOf zVoVF3eGdnQaB+7Q+3P`JFf1w)qaR1M%);C_YssxcuQMC`9sIaChwMG!m+Sk0HwGna zM2|W`?nF(Po2Za+EYh|K_$LGIqBCGO`_%^8NDQo6hcj}B>oTWc;@U@NQFVAio$$BC z;~sTq;RT&Dr^+S%8hm0T(N0~OU{zyZ6$yb=sw}7BKu@1kPGOItgWvHLWHE+BDIHcE zHKy7htN3x)|DoF&=>EEHOspvG&3JPlKsYxh$Y=n92|m z&v;G*UaaO3{G|5>f?P9%xT>Z70PR62UVP#|aXt zwa(Q9h&2^jN}*Ts^kpY5r4Rlp8;-(Q8{*I%bXz8t5c1fxsT0_#;+3Jyei={xpX?&} zqzR~;^K-^$h~0N|#k-$AiOC>8P<9~(kWJ1)k@9Zst z9aiV{CzQ81zo!#it!czhLyWDh%qn;nB{;1)`T(1*J5z(EI~19k%9U436E zeAs_w=TLD_r2;T;tlN8LWHwrd_t_YpH*bg~b$&m2A ze_u%=!;>%KO4(pSw6l>_;n$xFIeb^9yv7?gr`TNkp+@!Ac0ScG%7L*qn)=U?fdXZf zn0ZB`0UQF{(R#|A>cbdVQ7NkI21I+<&F@ovVnttD8DTy%gx!#HcQrAJ1w|JJ!BsH# zv4c!8y^KEqWrFXQ^+({tc^Yym zXEy$amofer^V7~X0`p+T8J+)`L_A$t~N>2v_!S@y`pPthdq0%h2B=+{)o9I z!lUUMbjfq(QdX&@LP|I{uV5&Gz&s`+0jSM)=yJui2Za9l&N!hBKl9nlrWjtXmaLOs zBRd%yk;q2h+iUZT_>Xf4x$Atqu9jM)`1fy?f-M0hO_f`L3YSy0pRq_G3ChPlT~u=9H`~K zv*Af7wskpACZ5kR9`?Q?$$3q|e~<#Jk52&EX7%c_#s7d*6bZ0cGf8EnQgh8YZ>c<0 ze-jdM@r=#N%|bD6Cs#T)I6nQ3sf?MDH9mwNW)B62=Eir<6BCm5t@)hJNF=}Zy5cYv z4xqE*WO%Z0vm}65a!Z^U?Zu7P;_=tXif1$<=Hb&Whi$T;4*ntg4)75616iE23bYhl z@mhxl)J_Ia85K<~x)(H|j+0YOsK>>@JcVKC=a5}b!epjUd<0!^r&1QJ^sitYZJ@Pv zj;XJuMXAhBYWH9s3fssp~NYF9_n+i0bP zr&La-{xDlm9J~wsp{_}S{btk;63&un|9}@usZ8a2U z59uLWrRE9?wS~pu{NgkgEoP+U*Ck@`?z)QN3iaRCmyhg9)|PxsxsZV{r?ernzT z+{A8>rtqjb(#8D4C6+Q`a|`YsL^Uz`&G;X}6S;!rOVaeU(ZQqrqPBcUa}1d+_B9fm z{?uEsA>Bg(rc)-B+RypRPKcIQzQnP@(@kQIepPUjOc3Q*0NHTC+CZbkdCDTq_C+ph z(J))!oIH2J7I4jjn@No1+H?oFxLO*ij!DdXxLkGRqUk7v*K`EauMHtFlNjj^yfX2DWLPtH~@%anP+A9#(NuP=|&VDsV zRfgg*A7@b|jeb)+q4H6qRA47|=HbMJX3~^yXetY{DLfNasK(QBm^upu$$xPMnkodt zDo>u2)YUss>{kPi$VAw0580l5X(B3RO_>z%I#KDW8<4Pr@LbI13e0zlmJ>F7Q39I)e zED_3Am$j6Cl~XG_u*+yr>)82+TPLC8 z_?&x2{z_%}KPuPj? za=tA?6$YyqmZjYE1rg;gBgKx=>j;>j3LEujHdnVF{!PsF=CG7 zBao2Ty}IM5!a13jz71k1w}5Vr#~_lV$$V&IIXq#@^g7?<+YSp?Rfl^ZS`cVmQJDU6 zR@Td!USG(tQE{`Va@xS>uhn#NQc%H!*R09~V=RDdn}rqI>cs!j2jV)(Wsq|E!NrFD zhPl-=l^Fd65s==(dJ6c4P&oI%>V6;l# zv~RzW&JFkwbGfj3k%IS=c6&f85k7&GOESetyJE{`rq5hnzG;%gh82opsrK$`lC2cr z4{INEey=vO2i*kO2so+2B>X2dT(z|z60sFF1%B#FNs?6IciM;aJ3A5S;z5a7Sf+P- z{<7LCi2D8DI8zkGdcrtZ&kqb)IJKP2q==HYl?J_7W_ataqNc^gs^~C4MJqhV&BDXI zgF!|O^4qN=u$dDeBrHYfMbOh&#*^=`Sd;eyKNeTFbY#b~-Jp=jU$@>PL~(3 zHxPc?MlEnX_iX1jsJ8hj7Y*SjCQd1)a^^8uHqTMr<_M)HEu>kPUJx(6GlYTK-RT#3 z#f2;BWTFaJT)H;>UU?$IZkaobdsp$ZVYR2-4QIF$hC#d4j1fd-Sasjfq`JQv>mfzq zyx$oZbQ1T4XvF2xy~Bb`MR$41}!p2UQ$OL*=yYjlCK>lLM*syC_1nmvu z_^|2?qID|N-|PlCLawAr4m-tRYy$X6^T)NReoAL#jy=DvQ+6JJpF*e;e75kA#75`+ zcpq;t=9Y2GRXnj|Na7der#O)4^zDSE&vK8Aw~rncx^y_2{;9y`chLWUvvl^I935c! zc2>`K-Nfrm)}lIPV=hj3u^QL<^s)x{Zo=q+c%zOr>gk z7(F%8Wa;^!@`ae8A<%6DpH*@Kv9cS$rY|>dZJ`8$%~-|D297Eu<*eXK^wjYev&5!4 z_)Kh}!wvf*NiXalZ(-1Ue1_U9*u_k`V;ZQy z0|@Wjc5xb@Z&lvJJjMIQ6A2E*Rq!fzsjklVX0Cv0rG~vu%2z zSiP}~RiQ3tCc6&M@WO-ob_+7Up93D&O+?ZXauh}x;TrlR3Cag=)L6ZF#*`@Bl%f1g z-6*eU-P`U)U4<#x`02SZ>gzMs`xrl6d;vMKIZ{USHP1+nximm!;1KiM((9QC8931P zE*}hJRFs1cToF3x^|R#eHOi3~boI_adguPcLENsASHPTAspJ1KHq@}4E~=?y$wb8} z?N{>l^}|A9VwF5k3}NaFX~NbG^CWHMt`#_ke976dHuNp`e(`tdjkOP5MakJ6eq!XD z+Uer2qKJHA1`uU4CiPQawx97lr^}!d^3L|wocg=-WK3?k@o*VUOSKCWPRTjF%c90~ zClrZtjxKp)qv#A3-uiG@f*ku!m_E%kRId3V>9YG7GEO^|;Zq^aPtM;_CsR2UbqDbd zvAmyClyiq_PC#d!_^KDd6^Q)&h2bBJx@#m;_XQN~X+hkR^y$0gt=QiPGL@U76Cai< z>ZygX?3{$W#LHp95_QL7$$98m4uZybB-ogF^^`K^#G{KXc}*NWGd|YP|JL!#5?YV1 z59EwMw|usWp-@o--0N=>p4+VHE3O>_IU|n>z z`k_D&u1!-BhmFf6aE!3~^=@EhF%eaH;Ip?TIc44ao*qLswQhW=jjk6gcnlem`RgDK z_5=+UGp7Lbhgf+@3AsI*F52IsanKItX)yMmxY#bgTCd3i?`-gy5CjI_#TbNx}Valij z#sL2G1<09b2brD&&t%@7SGB8#G9gk;y+_1ztG}ldHp%6Pq&!(=4j7+qkc5eQ5PKvh z-hlihDo0g?cx$W*a(_SBSt&Hl2|9K4L|g2NqBpc<=T(&_|Jb+zgHHE0-}0h=NjT+; zi@8qI_vR`&OKqsN%HyU%^CR)i6R52mltnnKHZ7RJu5ghYlZC3qo51FZjtWsVOQO;|eZU#0Jht9%+PREaq*h*GwjLKZ1 zJ2WVOlYpO4^HTD9o$uPDbRKTp|OT_^F% zk?CymL<-hs&Z!7|87H|vN-)-ct%^cM0QTpvph9p$Lh9a#z#_{_&3({yb#&a+skw#< zrj)m;uLC*|3VanMt5(K^2a0Mg-aY=hlPnzrBA26zS{pyYD@O=coCv5R$j2lb(+M#h z98ezVeJDrYSbcpSU`OspLwVXoAbU=mbDyx`l2TV0R_fGB$Pj`M?23wOo6Xi;wdG&=_9(PV)peq3qOZly_cx{ZnA*LA z=VWD(mpRZ5=LpLRUWi@=FOhM%v7|1O&7w|1(j}-y0Ebm~Y(>9g-{Rpi4@}NUk<1Sy zY*uzp@a$G4;VJgf56AL2mLi&!MEF9{N0f~RBN}13vjT=s##;!jnF<~!DplXX#gwAO zL9>Ec^NiA95=4j2!c)sNXn*1&884Yb<6mK!+C=KEc`DNo4ME^8vx1OP=oQkU!wgC| z)#l(F6Dg9izKP+$Iy!Zt>n^R>tHX#TC-I-dszsy<_(<{F=>((&KuKg}m*LBzu#IXM zvk^|7>fxlxs1W_ytxT|WhXbCtaO~QiSa@QJLeZT|=SL5xc3csWdf~8_;06-@*hvjE z?8Nk;*uGK<_ikUo)}@P@;e&-E$iMur>lppQ^RLN{`5r9 zYfvwPju3axkU607u)0sh8%oM4&TgBGE!0yysT8$c5sK_X)*)p>^($1R3c0LO7}xtiuwnIDQZ`6MnVovtECziPSs}>Vt8Zq8sZ`6 zfGj#R4xGt~_A5v3Cso!fn*5ASrh9d4EYiJX@I-^Xh*_`C$PU2Jpd#ypBw^$2c#+qske0r2%qsol zoXj)Ep(QDk(V4uj`L@Ea>W|jE?gNqHI(2f<6%%YF-tDs(VF;zkE%mZKDzQy)gkZi(}{^kP|V*^4y#PUL0o zaOvdFJSnm;n5Oc0CI1|S0VTb62AF}0YDLahjg#>zt6@D66a&kw8L35J1{JFe@ox!M zyaF_NajBW@&!hWvF-xknw!T2v-@aV+V2d1tvR;j7m z45+D(>x2O2mOhtKh3Nb1)vY;X)fCF|-BJCw3}v`9QD=9(mq-fS$HVQ};;Al@c z?B8Z!r_HhoWC2Wr!tR(^kdn0*7bGB;^sAFNEP2>b+Hi^Gr^V)TlGrGBe*H@DXd;Cb zyE9}69U2y^Ajbp3VcsG9Dwv{tA}?S{)9ogX+-OOdais7SH{SwX3EKgBBqT2?QU@^) z^4ATrtFApB$c^jUyH3-~+^~gJ6-MH?q=){+RYgC)mo3dqzK6H)->cCHOKT%gi<9`T zi1klvGq;<_*kRQMSltra9L7oIR!4l5#*-NxU^Vq+fDPmDkH)tH*gfnJ_{=3a)_GNn zgHDXtP>xcN6$jFln^L2o1^i%(t;BN#P_N)vR2SLuO7{gJSeA@!w$3fXh5^@!MbP?D z&RB=el2c$X1)jNaD{=(c-*B9#PP=T4YOztBq62m!x~*-i9(b3BGUvyFM^Gy6J$MXT zb~1o|xt;{9xI>^uSe!ZZ%*%rGiG4N*P+m0}IvvE7xusm(EN*(-Sn7f&OM@L#zk72D z^gudg8ER|gOQ8rjk`oP|{pk4C-8fu+(^5N8H+mTQ1`(NMb=()ks34$sA|nmrbZ-QJ zizg$$SjA3Kd>j5Wh)ibw=6-j6C_A*uP9U;X0KDKVwTbO=w(+x3B{vN4+xWaFv#K=P z7*2lWF#$_!6L#(tdqhGV)e_Pzk7|_!M4d_`p=O1e331Pv#=}Rn1eEAh3;4D*1k_D7 z?=+`vs~QhEjzcEmm7~goj=X_PZm@TWHyeXBqF8}TeX&;AWP@fn<{R^>0Egv8#Wx8@ zw|;xER9!P}pe}qI!#H0hj^E3s0kVIHQy6b$hsB~CBB61pJ~98>tj%Z5^B0kTXs>CSIv1c_FMJT9p4QLR)&>a%Q z;jvYrj+2-iFp2!=xJX<^ucAP@3}c|{gjKqKF@jNs?&QE*=~N%HqP7&6hq=wRk_|rY2*zBN@;xGC-;A(^)tABdn&IKiN8K!HqqQ zR@aiuby)&oXYqt8{Y7qTiM>DKOvRgxs_h#pQe4lrsuAmJFS(lS($y9=rTkt}AM6RI|b*)owlGh3`a_2JRtvE}S~r|hgyOG4EWtL5qZU3jt&$kIeE@$Rw0Ntl0#7L9Ud8#*YW z$m78K2qKU`kSrCwC=ICdi#jEfppY((aPS~nG!!kImytO?A!DXn{@3a3MaaHv)H{j` z;WSRKI8%*u7^qb}BEH(f|04QyrnD?;r<}NU^|tv8qt27HQPNZjss8u0mJWKvnOSyv z3~7e%8792g_|(Y9bB0yb7uJ7tL*@h?7561A?}I9XUx&YHqTKE%osYEO^9OAhF#*OZ zJo<7_7*36`TZAK~aku}02Z8EoUwY<+vZ&TuNrlk Gh01<^#GQIjLA{Cw<$b;RcM!4)e_3VXdE~mF{?#28 zYEu)pz+Z1|XP?EZhoB91`cG0Y*ZKWpd(mD7`8{3gidPY?`3+B10?5xkVnF4K-#g6E zC=WTZ5f(0;$NRR@DYU4#IN=P4!7goEW$_}3EfZJ;fR>8ek+ZQ6OwrSi?5isjy8f=@ z3z``SotVl+4bV9Pgo|%1%A-h3OS5Cx6Dq$8?EJ<>mlfzV^DA~l|7cp;?eJ+?>@@;! zv3TWC4Dl5crjq*xGiiwih@BtJSXgCfMb%|+P$ESFu;dVn4cnGT;@CUg7;=V8=7lmz z9Ke_wS6D6?bkV*U8_E!tY;xn^82u=;lYo5aIMlyN4cF4-r72?W7Z2^21( zlbwq3kn4{5k+|AI+7Y}>@l3Ke=WeWTm;SOl5pJDxb} zovaL-t+c@__=)jDAxa^0L&mP5rok138+z5;&ZtY=HXp&mnu?9D3Ry&Gj2J*LR$$T% zd{%$7AI5*>xFDhzO54pPi(e0R^TDEm5{P9x9j>STkwk;gmdVoK_dK31Z2h(X4_OXo1@UdEO2fx78-{BU=Z8RX)SQYeE3rXlB4R8$@`jaI zm}7^Ux1p;(^-|(k6rLt#rJ$gH_<2!^1x>3m3GQUXwG_u?HcSt}wNdRYi~2fRHZ<>c zRiN77{{hwsF{1RY@YfMuRxNH6w&CJc*S{hMQJZJ=gN@$W0X>}*3KG!^jk!3BV)X13 zp6MQWDf4xCAzBhFPF=E5sB$Py0q3}?Vt$&$GzGZKs2;8D9LYf;b@U(Bu_@6{ ztr}dN6g9q9)1_{cB*|q~xHj%}*M-p&ZMG)^W(PZ~-wKc4*>k_xAwePWZZ3>48lt^- zy5a;Fne4n>pAm%U9n%YaF~skA$H;#ZhH6&rZ-fhE`8gChi!3Th$j_jwgpc#mFNzeT zzBwryJlfbwRx9PUe-@Qp45`7yb+m5*{38sbpZvLg#ZmIttL+#634{|N$zPLq5+fap znJyXo2ITx%l{XVV!ZaOK3$&e4eDwOtx zNCl0N{JDq`yY)iq`zy&Z!T}l7_Zq#PIs11(J~N{t(BD-~&c~Mq)S5CtSlf;vkl6Cj zR6{i@CFEzo>kjzCR25ScKiMx=6_4KJX%KM+3PfBW9E7OpQUjkfD^vv24_PIxm^;7< zug5tFvis$%Lc@y$9E-~`!+VBBg)jh*OH*)mgMD-?Rtri%Ve%DWsy=sex&2tqxC_o_ z>@HUhr27jvX-2$c=dO~(Lyp)Q7yIWt1XP^Au5V&?X{rVq83rGU0nvG7U-kS#iKrM}9aS!O!?N+>%Zok-^+2K8M4TCG5z zQGuum#9m)O4o71XOD^BJe~z8Q2I*nL`BGvZO$<(M!f~=>Mt5Q^k%c2$W6%h_IB^iT zs^-@iz#TS2T+xHEyEsBa4)>!j_xY}YNsUPDl7kDCga z9al^8)C4WYI^L66R2^4T(~dWXV~o#}3?TwzoIS}OO20@GHD?8W$@=%$KAjiU(YVa0 zu+!wG#+gqehVSf!Wnwm`X6W#yYS-7{uyL`7C1B4;(cq}0Ny8oq>`Z)4+&T3;K3Iki z`6>14o$<&StvTBwoqb<49W?NQ*v6|YQCm~(M&eX^BHx{X z68o&$XTdu+A!kYSuwgJ|Sc%xN)WIhcR}W{-&9{4u-ivUrN1gKT0Do8a(>4c-=-Y_D z?Vhlo`gVeh+KXcU{ckD-M9lo@oKBxgz}%M~2lgrsl%A+==1P4|CdpVWC`jHLFFPZ9 zjhXdIk?klXeK|0;biUq)nHznExS1}zG6aaHy!fg4>Eh^Vc61$7+XeeeN`_IhCrwUA zXUa|9OtFmkUSW=O@x3o3JNPiVVv?$2GXRs3y z*DO{P527Zc{KOtIx|A+VJ3u%ocFojc>dUgH9p-QYY!|Ns;ru8+`5Mt+V3pZf1(&Vu zDx)^wU0UfE(Y+om2S+>;WckC3{@i)gkT{nz8*lII#i@o{vZ6o#TgDlS+5yG+tGXa+ znv9SPmi>8K;8hH9?otS!22|E1%y(CLP+_JD0g*-Jq|GSGonlO1_v(a(?cSDmc0y-k zjg&1PUyj2I*KMV6*!shaiOJQajMWjYPSo~2Y{%|wj6a2BdC?XHc2rzX-jMV_dEr8- z3r}|Ws+;rN{c=#?OWi}ow$m+^YR*4tYTrR&tQ$s~yEH^az_Y`uX-8+eQk6?=vpp6O zkBeyl#17iOe}K98!BF~O7s)uZHgE?e3PMxImW%3Phw~jhzi$D3On&q$?6W&)Fm@;~nmV}yV*9DVjf@Ad<`G{G zjIksLE>$%1PZx9{7@ESuL6GM0mGPqqK)7*WtOq#Orx@{ixNsPVx78D>9_dck4eevA z5Mn`d-}T%K90h!Ka6`a3RX{-W)G0!X9U-%Wyvs^@W!bZ%F@zb@Y#*Fu=-75E+HWkd z%3;Yb$FAKyJQWwJiGI5G`QW7tv2eVGk}$6jW>r)X_DHR*otPpiflQH9h${Wi)s-5*qWU@Dba$ZnjQ2~ZCt2%YB z;K$4*N?@yMbHu7mvx=dUdXBpDA|z~pbtfDxBt%;JwgNLFUu`^edgS5m$l^`RNuU%l z?sjVgLk$ul#P#xB{BBHa%+PSWKZmzZ$>C@Xfcbo2V@L2ugP#OVG_JH{qq#zM?h)b| z^Dvj>_G%<60~#igdE1rqUzVl$B9d7u=DYV5fl+zXW}Y?6>N;{Ox&O$-ddG6xu+ z_pDUYmt{VXKFYQdnNwt(S6PpjKY#mxMa42f&j-(xr4ZVVSrQ9;n;m zEhA1;PF(;WMJ2c@bo@Caeh>L4z+!bdVkt#MtyvYLxnx~=4-m9- zCB2I~U>0tLpUSABIv_z;ZZ=<;0*_LJJU99TbYMsWd2&>7Wj%^TXPo-HOJ? z@r?1OrGcrGg|8p(Fi{+^@H|I#EFA$4wm+H|98I7oJ-{*fn!@i#qq)ipN~uf*yr=Nk zHPlecR+(f`m5A)lte7f+JMf2rkb8_gEZaIpC~7u}&FCy_zH2)+WD-edNoY80BJGo{ zv`58KXTsd3CcFi`bp{4Tx-b{6s->6*gD%vsn`Ge~#bJXAV#Bj^kN==x)xb}j?~*NW z{?FRCV@}iOd!m(||Bi6csxv-JxB))NjL(IwEXN0{B(&3av3==`)Ea`h2)R5lk;7Dl z>$*^%MuW^V*_;X`7o%kH{YN-Y^{E%UJx5|OsW@Y?A(CAE#z6|q1ntQZLA3H2L7pAB(<3bo9aIT%Otxp_R*^1(}f zz|FVJ-%;wUVmg2MI4$E*kz?W2_Z(>wrWReXwLnG$ot)W^9I#QP6095veftK~b9+W) zfq(Ybuc;vL$;>G0Cq~kP&E+An82Z=Py#=<+E8@;*96840XHX}oCec!5kfnFm-E z*)QAJQ8QK3m9y8KjgXM1gin!0&7sJ20C99WJ4dX-+P8SB0N~?E-+ZuEafu7QN~_?e z&s;(&*3ur5w-E@r&|2pZC~xS`yUhdO`TddAR4gHsfv7LB{1`aR2vE9UEM_K$3q%s? z>#h1BiVeR@TJ6A%!>}+k89~X^;2;Jumbwn~UJXq#sLgAfbo6e0d=S6K?D7~` zYgORKPs|rLdUq(S6n$R-hlTbl{2aNFmfowSECzsiBegV!G}}Vmyqa7i!QrACkxJ|z z2bUD%jA}K=(skBJfr1S<+6hEPlShQvLG4ml|07k|azO(95SrTZOz5X$rdQWVDps4^1I^zlb`ufC16#KptL# zCZ-+r>(C=h<5vdD6I#wq)v)cz`J@E1-3~~&Ai7vMOle#@h!=Pas%Qc8Qqn&O=fXol zSuono!$8A>%SqvVHcr7N8aWX<$Il|v2;Eer$W%Od#bzhILS{0oa{Ay>xjhz-&teZW zOJM(e_z~u-r#Y7)oK8+aG*3vsIRDNG!)-R-BQn+Ht+9MLI4F zRrrTKH2VB(pC5%z*RC0SR}LIar{H);yLwbDlLB$L9$AXyMG{am{Nld%CjAlmgiwye zA~EgEndUEr4u835Xpv==^66Wcy@cRox*^WB@?x(nR~rcM2;?BE!Nq4ro9}~U%T@7Z z*P|*)sV!V9m1rGCai45-oKh%go?u}k_A3|1p5l}ZzCWFYQsWNu!GW$b7qCOpuqme& zWKo=*g$rfsTX&G=cOaFnp!1cec+|A(@*OmS!BWz7v3hbD?WI+kP#u@(iwxHo2{W=ZK=x7l%%IH}AyrvSmRQ1p@~E zoU+@#p{bXAF^d7!&|p{98?m~pOC==&ma>jJjBym9bao2H<(3&!vqcK(@rCgOn`?;ukQQRH*IFR?S`~D@8c4v5H%U}*HN0}RSYCy!zxF&@ zb5;e5#Z#F;a{*-V7h0U9U4Fc<4oM0Fi}tnS;=uHmL>z2f-!?$51KCatyOAC9o`S*O zNtx37vwCpVk|#Kfo0C7z9a1M9s7hyR>>#WB77Ep81%)?9mkgS`iVh(cv9Wa#;z=_Y z%i}0KvP!-Fs%^|WjVhVzPsu1_?meTd#qe#g;Wt`Bi|pJ`$+p7ay9Cl$@mpi>PNekG5urdV?&6FN&h`l zInvScRuILG-Ls)vdeNmnbvnXfgP7)0!Zti&t0Vr4NxsPAp4zxn6hgK3x z?unUJmFO-^`8}q~hNfsrG-bD|0SC#kGN@wnU}_Pg3oIfRie~;qwlZy7;o;o0Wz&=X zIXZ@NdbUASEyBXBA$rsz`3Hq2%EGbADqOV!vE5mwJRb~KH6AM9BPoLiwc%H5AfirF zZFlCj@;|DVWMJQS)yFL6k#GYSf>&YVO{UDNI%A5=db{Y#x2i95B-~~dmWdPqQxGXt zzex)$Os80tnr1v_V`x6$@wFmmQ6)k#oIByLWtK4BZcaXJoAb6YG)5t~vO;J$D`-*w zrDsM}8$V!8uu;pCYfiYT~r>A`qWWe?uFI7_$tE z>O&*FzH`@wcr{2+Hy)c%Xl$5CunTd3oCI==@y{l@WlRI0+5O0A1UdXb%<3CR2MI}g z0^!gjicBqma=`DIEI+ah=EZwgiwMBBM^6JXStqK0FlAC`613fqsmxw|EZ$)!+9#g% zdFarg;nhNq`r^SyfDM-qH7JvlM6q{T6m8S_dN>wEAM^K~^nRf^%l6V=I zoQ040MCaY2G~CGp`cr!CHu`gfnSy2vi2UMZ2WH`A<#h)SbR=`)C;u~35SU4w7E0E2 zZCLpSZx?FoI-oazLZY`z8)M69wxiBzm|_+7+RI^?Yyo#glsI%FxUXt~%~h+er)B~} zbL*8f4o)4J)f)lPjqWnxz!F5tRx`TKiD5X~{F3x1s`)rUu5H|@Y@5sGCCa=fHr6AX!v}&q2cZ_;yO#H;Z{$gJy~~w6+1@$2NC1eK-X_a_ntZ*Q;n2bQLl-HLp5*2p;!;xjv8xL645U6CxVH`=pZcpt44VOsf>8U z-bgs>M#yT>>T;|MBl3pH-f4})4X2H1jIz-w0=I8(NN~UxeoTGf4cK%?HJx92FH*R54nPKeXqD zQ}JAYn4IEB0bHf+?#7bnSiLx?Ek6&E8Ie#KJ$RJ_Q^dl>0si6P2viQ(sRSQ`?E1!W z1-TGtj*onay@G2ck>KL!$XW394k=(Eui8=1R}>>@<~F-f-ft z;*-so`qP^Z5RHph^?=RsWKeq><)C^s*F8*YcZ^d52=x(w&N~7x6_wqc9Uu9bIi=wS zO<0ZW8!`r~B7qU^%XDpBp0|Mpy$Zn%Tw_6^cyKC1P;H?+Q)X%<0*>w#4fg!UMNbHT zuDt01k*%^NKuCuUKpztNC?+RByJb<3SeU2ux8G969a_ypZ{Z{}?qR@AIO#da*5*o4 z@b&ETE6Rb=wAV;w`BM%fgxDSz^Gu;aLr z_#0ClA>#p+P+Yk#0_D@?=X6~=7`*d)<+?-<#_($-$UolZbELn<(QhU>`#mz$sgKcJ zszzDO{WbjyK;Rx+O0~X0#j1Nuu4AHH>iL|4%Ei|C7#v8O>VkYAoFBHlbRDIQxZ@!x zKm(9fx63j3)Y(08wUot@RSSPJ&ao>l0*|60;k1e(}tX`SZ(IEcB^k{Q5pXo$BVnS@e7#kz+dYSFYgr|@PecM20j4RYM z)|&i&i8+&=2H8<-W-OW|=Uv6c*GNzFKk!wesei*<0S z#+o2r#o}UfK6aUk9BZ>k5izHJK|H~XKuYDCj5>4K8o*QR;TO+)Xz|+(lGjDAKFLgu zQt*`&@n-Wo zk#(>lFxA+$P^~_QqocriWyH?L2lAf?t6!Fnkdeypq_Eo{sY;GzgTv%ZAZxX4@}z;- zErU|kyAdn@zpN}=WEs(K?R%$cY|H>Nb5eCC(L~;>Aw_UM9A_2*1L*F9_e>DR9oCc6 z3YS3^{sNIz(|kP3R8)3wHByhfeIPc^gm+$=(GiH@tT5t%l;FZso*|-ZP??tXyDTBc zIKfGBLM|4Lq}t_C^?HJOqLI@tIY?HbIC7u*=BbS7NLEg?sdV?$k2L4Ldzd)<6JOh4 z)r=Wb1z%tyM)>QgH9tA;-Zi@6iQk22{jP>pSn(SpteV`MV#v2znju~t_lXuaN@PkS zA!ikbk;^#ky$RwX4QmDAx5w76AifXGsv7hturD!axt$$mICvxfLDd4@^bkUdr-(&n zde2TiVW;M6wBqVV>$RF9IruA(KWcE-2rLbv%?x940X2w1Y&3^~29ul}snWyXD(Z-` zN-SjOAa`KMr3_9wk=afVZ4!?uaTSjdWR;t79?HdIPPYCJ^M{bOg@!sK71UAa>_9v} zY_Jx(>AoZE)v`!?M!rI*fc@6>8x+=2yBz?+RSO3jhEm)1@~#8Kk~HV&;g^$0-vTI< zH58`|`HW7tmKiyyUoVjZcmDI-c^4gleX^);)Sxt#VYDGt7ms$a(3C+EJjfgM?imJ`1n+%BbES{kYQZMUtI$`HBt z->uQvMnaENCHWzA>3=heJWyWsDpR2;tCi7HoR~4)K_s8aiG3Y)95m@RR2-2S;4m4_ zNtqEV0=&T8;;}6xrp#p0fV!4OVm_ZT7sV>~Ri(joF;roGl&YoL*?CINYC921@e<%v}1cLzTi;iq}t)cUAuaeH9=T! z0$8Ovf6=3El7*I8LAr9_M`#oDNOB-*OT+OD0|uYay)`yQay~bR6r1K_jSAd~SCv>t zfN?_?GT<PTI)28FO?BBCuJ-MgR<6y;W5yVnL^k}&R%aso$fk7Ry(rZf*SXgm`a`>I0myiFaC z_H%Y+nlC0~5@~0OgI__|B+;Z!RCq~eMswLL@jpidR&UGvk_XT9>JPSnaO`-h5exP* zI(;8YsWy-a>@-Tj{!qB7Lo<0(L6wD{dXvmc=GRR~K+^4*xt6~Kb6a|F-u62j{|x?gVJIBF;vh2@)2}#Rj}A& z9fVh17HFwCBMJFjZ{0wO&J$QnwbwZM+mdc@W)SJax_<65q2!##?_Y*wnw6lPy~MUQLb2fr@vdxM~_&RP9sOP(=Y1SgMp48+NVz3kFg3-Hx_udjUP9(d)y z0;@V+5u;^lk%;;`h>!ls#KWu@z`Q1f24CeA0m6wNOcXI?++3OU4uQjrC$+a3f`N#X zB~P^&=x`kCrcxGNcrM`bF?AyJi#=69Z2QTOOSqAnEEca81#*(*;A0}QP5CO)Fjbfn z^Wxr4@(QRe#c^tI^yVXx3(OS^h+*LvK}`TZ+4?| z*WM4acMk${1sHj_|B@YP5fs!nY7p*cIQ8Xqv7$zB{8`9eP0e%LD0ote#O4Tj$wgvnG{ z!I+TwJh+#&j$1(*$~CX&gvVB)w6JIhkL+kz22&3N5ilSIl5FTZr~Fi_b!Fou6D(mC zq?05h`&?GW7oRDkoU4qMMLqQ@>;Z()jLoX{AiDP9$3(rV>Y8!wcvzchSJQ4RkrdDN zbr|^Ku_rrl!6{!|5dnBCo*$91dodkkCFHxz0TvL>!ne7_ec1*7aL9}ZNp@MPaF#KE$PepAMiOZaqGh{?{SF~Li;x})VB_K2d2)zFwv73TB z5+`4_Z;zYX27DC0$JS(FP~8xNI!O&>bF}$M52vqVXKs%q<0eWZ%HTmAx4%|E`P@xq z9qD!`^X#m4a22~)GSTk1zNQ#p<90r6)q`&4^*`vliamjOLyI$o@&?&n?S;(Heo2HfZlR5>`$ zhZw%A4EWzjI})*gZm|DgQobMLCuq?MNAI&A)Z(W-qoDTJzsljnp$pn#KLpML;Q7Sj z2N&iz?hIg$p@jpFm&X9VD-pF&){>E|(kaYx;j{h+XneEkwtRHijw`RaleCAo*aOT=_y( zdJ|}BS_FA~Jb@1NgHquv&=s?>hB;QN3jB6$tSc5>@hLcPEWZ*sU;RZ$)v#!&svD7W$&P6p>F`^$Kt1rm!w|^&73+7B+Ne$YD<@EzSD7?ZmW7 zDYm7vyjNP#G(QgCTwW9tFt#*-9m1+f)#tb^eft7=YRXXKIJac`7ogby9)LOv6vj4` zmh&C=q#qZV)^iuk{<)XmBn4Y=4@yMoNe8o`WQ7#( zNO>zpQ{GR#A9`$GFxjYR7kt%HM`$DpK&n6B50g1z74*A3$6v)#<6<`UzAwZ=Xs7^C zm3RQpOVO2;^tAuK9GQ^_uyt#Pvy`gO3KnMxvCcj;u<-z#*o0r-@?5d9N;RE^66=8T z?7oX2c{$=B@QX6}#+)m!77-4bQ$y#6^)aY9mBKMYuihVq7EW4Y+lWF1iR8n_hV3{s zqNoW3_#G||VWo30OIahO5X;TA;!bNWLl5H8FSH!x>TB^2ZRKf*Fr>wZ!qL#^%VjB) z0c-y98T`LiijuGHRE1Hoa}4BG)}h5$BRn#E>6w1W8`4QVyRuo^XJG)80TkXOk^AMekYl@#AjbB zm@5MsLMQJS z=2&hk`;jB)vR`ay1U|8R41gcKA0CT&&emhnuT$5D!+8B2h+;QZ!MX#0tu&&+FGnRW zqF=TOgwBZYWxy#HL+IZCt%Zp0v6EyQIg1MWYfg^%sy_^>Qzu8%(6j)4*}k`5tmD~z z)cA8aoY~*g68v@%uZk_LaTp%(_`2_+(8FSe6%*DR zIT;_B=@|{Ys%@xIx@*IrMdu2}_1D21(c6Jr`MCxlpu--J#p8FNwG4LMc&Yv$TSX4y z#haXBJQdXjbjFwTCMEX95!_rl1D$iC+$OGZBME}qqGx3NXjg+E+?B+cCYmck%Am%Y z3!;5TJ1fMhKTipq9~(xpSzW;qaSjgx<=~{MuR*aW3!~}ZAZxUfe!1WvjnO0=m?K}l zbqD7!D7IY{Z#$^Y(<4kpsP}APNBO00Yzg-3CsF)rYDhfM*xT>j3HFlGhW`x@yB=r> zwg(#Kx*HIy79L0bjYukx9ykDTuHn~We>lvcv+~+nAtnK?Iyp%Q?|dCxg`an-^5TG4 zR2FaWKejS(Wk`+p3IR(=a;VL%f#OsKpQlVk+`;9URbd~b8Gl#kM16srTVdRmJB0(M z_P^-QfP8t4ebJg7R-I8+@jWd$A?x~lei};Tv*OTY+h%d8LFa6(BJexJz+mDLKPK>-3SR8GK+@Q{K-CFV zS1tf7r30MBdHOwm5jeHAIChD?v7F2V3Qft8+uKPSN3qi@3l9keWGp^LM{Y< zHyGs9**OGesO9Vz4#f`2B`Vo6}|A7hR4$Z(_LV93E%jzPY=q^DHEg|`;;6Y zCK_}^QGrjct;tr`2hu-V$DKAsGp~+hu!hEji@lC&fpE{MK#Eg^q;FxOngcWFe2Ceh zv8owu2r4B%ICJ~D&&y||q=(^(kPU!d5%@ct|3upvx2X&JMLma^dC~M$@ng(j+4w`e zW2*uy;57vg;KXAqEUIpH%&El!Y#A>U`5%6CtS@4LdMN(7onpb4>1yS8i$V0&6rT&~ zDNoK-_(j_kC+7Y8=@)+c#$&wL|0v)x-LYNf379T{e;r zm^Y6$jYu+FB>eV*g&BxyGrIPN{wEG(y76>0aKrWo}M^ALQz%(r=|%SUnVY<#2YCGR^SIJztn}>ap zQgtD`c#HE1^aCw6O!OHnW(re{6$mPc)NM-WN@2jW;8lXdA|kF5_eK@a4!2`VNakCB zF!z9;PXuMeu^bkz7BVk3QFp<6d}t>Oq*U&$8zAA3Rg)p`26yr3I7TcOYiH}lF=xdo zmM$=koSH5KoIiEQ=PB=jf}A;NIed3M-ZJxhC9>z%{K zFLU5*D`-zh&qokA|3R3mv7oFFee2vZ4ISmM{%Rb!3tJUn% zY9cG1v$8Z>nYv7?7rZ0cl`O-HzA$udDwJ!(pyIF2bjMWJuv3d606&@@uX%0dVdPWN zPg+Yxf591rAGU#<5>=NdyLAHOG?*wlA_F**Ya`S6I4%C`C)_PHXa)mJ$d5jfy5hN<`7Y^SO zr+z1bjl@MY&E9?>{MkT|WJ+PS4NT{klETap^?}DS$^WvqsdoHakIy6AbRt9KNdj zl+VQb*;}P-s^TcC7kz<#EZPL(#2>jb<=J5LeTx*Sl&;)(%WI8Q#$z#-VT@nB`urKI55 z$rTN}>^S}%BB3F&s>rv4-wKYPyKyoQ?^&I!h_=eY3&&3T1UVlB^Ttsoizr2jmtgV` zXe!1GGFB21nI^`REl(+D=kBN?0GJWbD|2hN-T}{fx>bPY);>ITJ`*I=DRUSv0#>k& zCWrwy-7o>L~#8i2y2ooH#U1hl~cZyvwkPIilHusqxcSWD`sT7 z7*!Mcx_mX}Ux7Lt+2t!`-CRv=07~`;ajUwDB}5wL58-mo++*RZ@b)A}&bf0VWVs}= zN+F17zP1C77A6ewe14y_Pr!F2*%>Ra7sg5up^vBqlmQ=^pfsX^Fp>bz~=^ zTb(xJg}lZ8ugutX9oAezQ5Qqi1u`xgzNndFfk5!!gve9M57ON+p(ztNrWAd_?y_plFv{2(GO_}!Q5oaQ4KdH zKzvrRE+ES&ZR?*rC+_(GQ$mx>q{S7U%KTP_YNq%Jbpdn&hYn|ZP@O=WrWc>sYh>&CpV0rK)LfEn$zk0(Hjl;Oh9f-xwsVmL zKxXc9D_$$LC4NBgBb{4ietemU-JQM;Rb$#8++^XI1w46f5MtQiD3I@DRbZ;Aq$ODRKKhj)cfiQIbo1hx6;9ew(B(% zOp1&~Gsk_6-jy!s%I@Ke5 ziEBm zz1g1J8Z(Q`EEV8F%+?=n(59yEv-) zT_L4X+rhyqMSYW=vEX1?cuu;_RKazE5y7hsti5V4TdW!prq4}yQT#_qAe@QR6$}#b z0wR8Yt_zd((|;JhIf%O{Nj?jrd0P7_qDKt%HeH796O*k_;zX`eM505)kIUY(yL7G@ zxBO$~ll$9%1*zH<>#kwvGBgLJrHsLMnwVE6R4lIej-nLz6lgH3hE;|u z0SYq?I|qo&C=08u@o?1ozqyjx5?n;!U z-#9rXg%~Qj#_+$;qNB3KmwsQJlu>HpkKUdj!BFH)v?c??ojF$joYhOUcsVvw8P$i& zZOM)<;fTWag%MjjbeH*`kKao^xZ~XgWEhjmIv5xUb#Pu5-t@-9NwjifpvXlx{h+y1 zkYa3cRCW3O9Z>Q#@aJ==yJIj;4DKtv{5bMRKWMm+StBOt+NhLlwB90u7= zGH)m2>L#;7(JMKVpr*;h5A~?q^0p6QO+1kg(e*EeF&r5{IWC^N~S_%iky9#rpHAum;vLpxsD?8rk({Zy@e4 zUcu{VqL@#q`p+}9Vh{7gv(Y;j1J)xo6_Kv1LqaOpC$`RE@j>5C`0_Lno=P}B0uB?e zS%ej0IU1G|6ESgFP&S?h8&p@a!y5uIwiFx>3n#4>3Jqf+xK}ze#t5#n6aGl)-MS&3y z&iNarGd~*(eDU-9)5Uj3Y?@ zK$>g(6ve`9N))e1v(xf*F*kZ_SAdhKZw%}-9#*M_avGBg8H0A~SS|d0`Vk?@s<(`R zeG{4k7B*XsF2E!ut5jS9S*yDGCRHH$uvY}(CWcZ#zINK*$O;-=p9Hv5Uq2 zsTs_WdoaH4)MBS1Jjk-WbwgRx^M!+6OZn_NEznb&Ibjv>uJbpah}{Z_3HxL5ov$&K z%w{jXzZ2f}U_z6^Ev53LD1JnNveOg#;P{MXmv)Q*$47&r+F{s^G`!|CO4 zLP2Y_rOWF52st)eVJfT;y!1GFa(Iwp;X_uj`@=R{uIBKRV1#f1|fEa z6vYADYfXZ2U*^jGK1(edJ=4KNpp~e*V77h}jJRt;!>&ya(w{M9{#X6nfMeNZ@T41= zoRm*Y&uDC&YB z6o*DfR)uUX1?g@GS z9Ge!y)^U7(;NE4}lwge6bL6zCFPIwLv2Zx6(9T~V>=dwsgu$KXiRj}TnU#y%F}CXk z4$`0QoTTt(sG#aU3N#IgP!NytE^yJ|BNq0ynm{yE!JOdE51eMWx_C5PDWXt^FW(j# zQ{^03Y#iGg>#NAI6hbZ!Lps{HUloUku$0w^R4jE-9#UT6C7hD?Kiesu!@;Kj(CIXD zG^L+NU_E9}l*QAs*SU%?t1hxbBHQo!VDDZZkoD=i&A*!<9Ufi^+83-cAmd0>IkBN! zq~?7m-L5XJbu-H9P+_B9obcJLlCzn!F!I86$qWotaps51G1O+2net3J+&OhK`Cyv; zBK6=g&21ye+m!X0ScQkjZm_Q!${83y98S`Qtw6|POAdbijGh91k z%{mG2leLmp*eH1Fr}CTgV=csWeTt^{7tf)G3}eP+kTOph=zW_^N2;9-^(U6uYB^RLrsSwJN|Juq}6t!gtVYQH8m6douaVa+|10m9ub#JYj z_4VU>66p!r*yGh(ULdPNbJB~#&xt4yTE2^8OgfFJmZk^@DgQh!bPc)?PHBehpLF5T zf$N57&m5JhGU1_>S*Y?9fXbUgVBv(NkqnNc9!My78oWDxm^?Bu`n_+;^C%rJ?43Vh zl>&W}=};F208k-dXD)%@aB#}$Tt_a3$Mb-Sn?qD)pNih~kSgf>09eDvy!FwE_;A+e z1D=yI&%#xJ%^R>Qs}{$2I6B*4+ub`s8w$U5=cy+<^hHl@owRF{FhYEWVG|H5W8dJN zws`}V%AcrJ+(a?%6x8cy1*OM(Ir))WbZ+t!Q|Ba1nk6~p%TPk(+xIShN9snb5I^QH zliBEWdvv`9`Sq%bE3Y}iNyW~hfK0@Qq+W^QL%B>^ZTc#`fSO1c_QyQ#zLi^{pr9-Ah{HQ?M^XnS@{(LBMf9nr z7(Fxy|1Nl}YTx-?4d&~(3u7D%*5r^?#+@tAjCjZW*!E5^r-x0nMMMC;a^Jn%q3o<=hjf$vtrtQtnVd>j*<9 z{nUhWb9Mt*E-lAVN^@?H$_1k99{3q*2k4`zHa;`WQjM7UfNEOsL{j$m!^cTy0>Zaj zyWwEwlgS`0h6f_rRc{M&<~BywL4z%ay1i4PwmQW|Jm}{7+pt{Fs>SfM6wRxBj>U7Z z@h`NgpAvYR2!pABPkNfPvrQDFQqiEDf=?Llma2%a)6)~+t3r>Aw^$UvI8~tl;v8th z)sTEy85tbBs)4PB&MLFCS07RXQEbEjkbDi?dPFEx0I25pvh# z19UEu+#IoI5>Nh1jmAHr;-$qD$)u8>Kt-(r4i_&xqmXk{nLV|0FUV0f!3T>F#8NDv zI5W8uVqD{XETfTD=ptn=R7_b`Ovk+~DsATZFons-5k=`?h+XmFy}t*_&y3L z<+QgU=#fzKV~m1jk3PIMtqubbtNzDKMm^M<=<;~*cff2F)pbVdhZ8$L5+(WrxB}RB zr2_jl-+7$iuV4?51jH(+&EXj`$YeUISDy)TP$>UMhwBQCBMtm(sD$gW53Lbg^h zP@;I-MS$RqdWBflkN06VTCCFEX|7)3O(Rc#NzfmGcdW;lV-wySv1-I0-R|f=wt>DM zP_gsNwgIqk19}`16lz@_ACKvvDZ_U&gmPK{AIJ2Lx@!Pu&FRE3X}Z`m(mYQJ`v+jk z`rePPgvD$8EdNh%AIpEFCQ-EO*ozNE%~u0U^tjMFM3k~>;{cmk(;%*o?1g;NX!0j8 z|7PKvK~+2zRIFk@uAdVDw+TgrWc)V+5|)g2JL zO-a21n%cnEs)SnrgYHXL@-4br#;%ujB=Dl=L=lIdH?-{8%nx)afz|PPMNHY?>XWdd zWZ@!e994Q}-;RCY9YNu%pi{y%>oD>luu1|dTI)VrGF7jfbVvh%&r_}=C$EKvD9cjS zHAhrdZ09UitvKfS?Gd2DbaQ&)F8wv-l701M@2m(O8YY612az{tfGL;YZ8C#=WcW<` zs)BYVk$=@*Ok`Cwa8HZS=-pLNq&%AgOqAyn5!xw(I#*&oa^doA8!O@P3HPg8)q`AD zi=1R9NRINN`jylphIXS`3U1ZR4sV6@s(lmuvD$)Iecv=Wc_IeD%O)|BbA2O{Se+HN zUK7EX>g@H8<`|`q5xQm1PQ~=gA8KcE#I}xP`7mLewmv-b`IYeI;@H5|D-&ZRAQsQN zO}_5g@dSERFy?xTSV+M#YqD(rfsZwp#!3S%=Q9>2wgU-p4$Gn!6C1zJ)qc!$&AxRo z`-8w^%2{Nret2%}5RuiQ{6(8ls1gE0HNj3ASoP<)9p@eF(w;0}q-V+NfS+h;`|E8> zm;fcIa7X3G-tJ)!kVck3bgRAPk5I`Wd?a0%(QJR;8KR`dVnF7)U?nVy#0`1)G zL}B^4qL1YQKra{xux}x96oO3N%e|#+a&n!VOlV&ZBe@Sc+&QrAgB`;uo)l*Vznr%z zq{E?zau7LEf7X$M@giPvF;AYS2my~(&U5Fd7*!mdtXMgQ8^wu|^NMIY=mE%%%!Y_| z0J#0n1Y0(s)K{&8E0_BvBNRz)Ui{li z)Y)L@_r&%87Sfa(q<8- z`3$x&nmvw=rR3?Z78@>%O7^r2_U*b8&B@aX*ok&fk!c0Pm)~QoFxrh9>@zi7ZK2SE zBoj=XEE>ulc-q(?^R_7exVHr3~F?r+Xj&)J$$fA+c(q?qEl?RcEUQ!3JMMfI={d9 zP%51u*e?IR3mxUHID{J72T8d(yP(%V3QiYhc`v|ZVGDaE3s<;WVJden5!Z8ymq9Uc$>I1V}6GdH$~hcvcj>w zbzu8H@L1l9xM!8JFndo8osiySh`^|S@ejIRAUi-#P9e;OVX`PlU*kB=*z2HCpSP9M z6HhZs;d&sQ2=P^=AYW{_O*KzU^Q&@?DUqWuSR03I-yOHGXOq)h`Hyr~psOI|WVky( zEW~2xHg;Hj*sCbf@uFM}zfrOMAyin{|It>jEu?h`-q+PQI%YcA(vhcee6Tu4X`}LN zb12P?&hS2z5nOU>#D^k*z@Rf#UIhy)890xxiHLKuEek)qt=LWa%(5csntsY%wm`GT zg?ypV@YzxMPyB#6@h?KlyKkgPS8Ak5>OLf(8=)ZP$q6Z3*P^H-FK^<@> zIteb$K8`Ac=)YW;_KUkA>(V3gCi6cJ%a3ksQqEK4jLlhBxc-?u?i( zIM_`ORV|1aLuO&}O5}t79uG^{4gjh)-f~uZMOaSpSknPZlfH6{NUjMF5IWj$!LJrE zE;G{c$CY>-Px^Ucc6*EW*Y6_Y=W9k|R$mRZPA2x* zS@z9eL!6Tk!D`K>dv}dApMkeIneBC2&P)&oPy3##*$hl;H}qe^wiLMItTv3b+>QYp zFnjn?{G%Xdq9`OE+d9Cz3(0Bmz$>Tn60`W5(fuk4?78`FgUIE?5Nn5lw#VU0m?yEh zul7K(c3$G&5rsfo28CLx0@p@ttmx8@mZd0%Z~J%Drwp!B-4&jc4}tQn?|3e|Ttl0x z;sBG)DyyI~cyflpxOt#F;U z4JsYX$S!UQ+y}}CpxDH)@pLqTB7YCwARbK#Zp%gNC#$(=Dm)X0p{LL1 z>lja}i!(Z(^JYW-j+`Qj3s#}Zwg1$>Q7i?IqY}fGXz=~<%H_%gqr!I}xR?1DwWCy~0nSrcgQpB_hPNOA%?l|XQ&N$XtD_G| zY{-M}S~1%(kL@qzF^i{y!y>GFp9y5)U^st6=tQ7!kP-0&R({rdJG>e}wx)X7Xm&qY zpAB@)uI6I~s4{ux5IU|z)o5)P$@uqgFF1ID2{2aadHH)473!B-Wn>&pH0-L_Enf@V zWURU{SLvy3?#K!}R$b!b?1xE*d4->Vl~yF|J%Bv^-i@d@ZJ7;C#&n!6y4wKGNiF^y zS9Lmx!H<7`W@K|ia6RIO2`g=Iq1N$c%lBg9{dH-mxZIt@8E#nxQcS())q5%!Tvn3wGtfS|5K+ z+b?2%T=1&5KEgPC%2)Y_In|8mE!F~UXk{a9j{}(nbEPCA4nuMAy~AonQfXOkLhX;K zVox1`ViK6(27|9|FUsQhk`6zo;}w^&*6lX}*iOw}Zb!si@Oz#KqCCxybp)nbpO3+U zNg#gSY-9M;$Jjzwrl-yVH>(i0i$ac_I-*S`(iOTV`|R>vQU{vM4s1R{HMHndU#vB+ z6B203C?{QhkztkhjhlT6I>o9xYLCeS@_1?g*lx;92#Yg%CMLiW%qup;tL!)@EgzS4 znsCNkHY&ar4$IP;)?+KyjywO2Pv%F$LBDuU#y$r|lt zW@h!RqIFL+D}RVnnLcctW7I6S05m*2+cU z0a2BC67zvRzU_%cwNnyyz^e?Lq*tqjkjxAtR4Cf;0QThbyX4^mzjbgT09O~Qaj}(Z zH2U7+u=^kRDhn1Kv8f96(3xMc&FUQ;d+DKIFgvoDBNyf`y$YA)UOn7&={aT=9(yE( zL{0;hi^+5;=$~Rr;hpispsHdgfD6;zdQps?%3$7;r%_~AUk8EJrqo+raCVxTjbk>L zHh`xw_s<8@(q*3gTl|U63?O{#Ksy#;@kMos zQE?10iVn-zJ9B1Wh8a7E&5P8fu=yp=sDqT?`ED<>-K=wpnJcE?qm7h(G z6ZV~d$0n}23k8CmRK6dNy@ksu?^U$wtxAL87-zz%RgGr6X^s}eMSCuP-H}h!EBG55 zZVDv}ry>krP-EtBFs?-aUsZ%%)ilGyE!lFe8#$9P5vcNR56(@OdNBnP=_4S94pazi zEmrFeAO$OqHHz4slr^l_SVx(}?-e*`6bCP0uHJ`Wr$QFXDzDwpTAwWTBD5^>R#KZHf3H^6v3RLF-^ z&b$3sCF$ko8@dB5yZP&Z5@9PscQSp@VqW7snSv+d< z&M{lXallKbcFyqNL`im~j28`;+K(!ZYg(ZDZB7K!#%YDThX$<8zNo{#^KVSU!$8~D z&nMC8?%;Uui4n8-v62B^7!Y*jZd797&;q5$B2oe^UMpLZ+~n#wa(Ny0B0MD{>l~!G zUqygn56PkPOpjzv_W0`Ukmj`AROyoz%sZv&wX{n4#z!B@2YS`ZEH))RxKWvsPA+Ct zz&2x74f+}|{618S#?OXRq>hiX{o;}CuP>m&D2bZd71|<8&h#}2+6eZ$%0-kyb=M^R znq7f`RrxQrrht%0f{Wr)z9V)&M*`q>+ch{bm+ivA#x%c0o7iJ2fi4SON8nc*iQrV> zV>`NARCh)NW~AoY3(<4q#Adr6Jl6sxB4>#;O03ckowq;Y#c-tsohETZnl3YU?;1E( z7uh##EK=VWYpTfo@t&D0dUsk0o4?X=zf$ze? z<%S9tm*>l6SUQx31qUIEVBZw~n5T$hI93cf8+C7c8kNKp8!||i7Kr#%~{x; z0{d;OO`x!7^p!l5G`IL?7 zgJYW0*Cel;I@^_H72q2I0y7OtA0wBJH94wj#;1FXT& zC!AFkq1c(u7ONCjyI(YT1U|*KwyR1K?N{nl-hS9{zXKqv%sfX34 zu@X8AeD!bf2v6?6M zRz#ZID5Aj^&?N`IQFS())=jArwK5m@9R}?}> z{KI(rEy&-u6WdA2oA1S<>O$&&lv@cXK%&@BA=IrbrOG>nr65Ke-t|c($WN^x6sv zL7)gogix}Z2l~4poK8N>_Em{7Gh2lFZ53k%I$TXnrRMxg_;Iz$ijf^jBvB{ z{Ki3yEzb&ma5+r&HIG6{2(D&!z${!uxs890fHLsueQo?m8ELrN3Lel-NMI>f zj-jdrZO@j^zyA$tgrpwJ)$K^k==eoAcwIM1#iOxpdZ?u|<*tsf62G22iH)fXBdtHE zt;M3E#^+~18{S8G55Z&1eHOe_4St^@yFliai6oIBlKJrH*nE_;T6UX4q+NKiEEY0N zx>JXbPxN?r%hq0H_CR_!rx9R#viYK*E!zqUC*j*;$t7nctaoSo20cfgc5v||*hxZW zgep8mKAh1RvCJJlW0^!*y#}n%DmY8!bD21i;J3xC0kzyn}tlIvExBG*w8625y zzLP#S@Y2exk|u{d{b}x<(o=Dch($4sN6j%CnTrLpFi~9p$Y4`}GZ;o-!2KXru@-4@ zg!xJfTNwknrN(0F`ew-bU&`Z6~;JA4YwoXV^Jf881tQx`n8G-* z>Qxq>x-iP8boN)(Db->gZf2t)EwaLhxprh($ghk1^yQdaRx@|r`Er1uhJyv}ufF)` zuu<)g5kYZjCtJNj+VdlG*cH$j0LKh%H=N4mWykJ6z{ZGT<4Z;g0g3;Vt~{jelLkm1 zgM8*Sng&ZKKccHlQFRAAu5Qz!i+Sl}iA6Y+~7Lr_Lb z)8JS*XKAt&aE1JKl&F@_iUDP zPghchn7$+&vku^$ieel{&vYpN@8Q(sE(wEPv}-sxe=4DOk~TKoVUg(;P?(q29~1>Z z6@}x(fCBfp(uPI7a6sw6(sDXjTYj1FsvPV`A%94=yP z{Y99g>hhaR86m&tEzp^Z8v|JYdY<`&MLA%xD*^1M$qI8`fPTU_bVd4HYqmO$MZ~p{ zLUZWySQ}vpd*=G4UokSfP-UDX%~ZCK!+O~myxr3ejLY|*G5nbm=nBwcyuNcbQKj^ zl`TgP=4YY}^!fNSoUrA(q^LQ{oqPVp;A$CnIVLpa>ha4@KUfv119bUz*S+}NrY7yB zAohTf-b#?{H)Dr%w$txmJjaJRkId#5kGe>H1$7MJr->^dp6$gGAwIDv1Up5veFY|~ z6CYZTIYxeDah>csj?IHqD28|2^MZpX-l%ip?y7)AP)mR*Syp))c641UKSAd;z zB|0Hrgf92#&!7G6()HlUgqsQ-5T=hXug^=t#+9z`)rlEFJu=>pn{VUh z3|lyZ#u?r16D?;93E@9pyZG5E#@@-XYm}AcDiN!AA(6{rz_?l<8sSSgc1i^OBTWw+BV6ssl-xs{(-1lq=20V2;r&K$o3EW2Cbxk2inULcuw>6mCi(2sOAQ6XrWT z!#plltLYCDzYnV16fwe~c0UkuQkeIDPMX{T{1`it(0I`l=lbSka(TE)sk*_7?1|8_ zSc8?5H^ah5*aMFhS@?mG;)Yp{%2`2tzetmpX8+^aR-4sxzJu@M0;Inv+BRFRev#PH z3fEebh~uOVN&1i#rcqbzB;>otTp zY!*%hj0XckEHw_b961kVl$`==Ef&SziaFK)>d*_bOrtj3weZ0x?zdF+8kU-apYn0U zs)Ls;zABSHddWet@MWNE-D1JPd&I`+;mORs8UrEsGG4BJshu!~4)p2}`BX&l%2pG~ zs^b&`?4%kUA5H%i8DH!3lqF&Ux`MCiAJ4^}F1B|cegfJ<;~biv8;P1f{(wRUoK7=u7m9{}bvEN04hS~-?W36?6} z!dB(_4vLdbl~2GywedYeKpXl-cSYy^IwSQ0D7g4527a5H3ne3~XnQ;QVHc4{8S{l@ zewU;lE>pBy4h0v-m)ZA}$6i+s_;;%)9uo?J$KgdF*9?qPP>5xKodituaa}>4x9rDM zlIv1R0ad(X)r1AWU1h$u%^_Cd8w*--QE5Ylc{{H73?Ug4G5U0>IFw@9^q)l<-I~ei z;PQrWZyh$iwib@GS8zNj5)S7Q+i5aor|Nk4K(q>6{`k@iA8#@~iZOkoJ&klCIzPtB zGL|ZWFmSoP&C{#D;u$+LGAo+n3*;(!;Gx!*#=ToCqq)h8!&TiHr^DqUh7oI)=IV-hhVBf7%|P`Z-G z3gYF5lQeQV?d$u&EuT>u?;MDq*VGFO2q`75OD_t|pqme>`Rh@tWnT`3=-3w1!>2>> z!p|pNEtRi{h0mjz7(YxlUrvlLpwZn^z-uN7=S0L$dQ-zi1&yhbn}9@wL7APy5ZgiOM8`ar5kk#E ztVB^De#2un?UT&96rnOy+#Pu52QHhie;AykIN>acTj_Wsv8*0RDP)z3xf-?qek}E0IBz-1#cT01-Vc3Q|v=`4hI|IxtQ^?d><$t-F~l>u2L1 z6QyAf+lu`-PoXQ+HynU<&?kf>GXg^bj;LaxOlVO$wl*@)=c>)Ic%;p-)b!=x);Rt; z!iynEEO`u&M80~fy=KU@lu}Kp+&2O8&AyBqwim)3+dgtAg7p5D{hFB8iOWNmG@){? zS5td#ljslYFCTgwq!)g)VydSP$1A2X;>5AX#3nzYtitqFC#rAbw#?Pb{L90EP!36` zyrNkoG>Em4tgH7QCf9i@kQq~bhJkY8G~++b`V0~z)RAFw^7Sg;Qudo& zRCAAEPLg^Lb=7EvG@{#VO0AXmSv$h;TZ$;YsL@pm=x@=l)FI2)faK2xc%LFl(0I^D z{;7dz=9Oya!^X{GDOKT}BsfTU4GxaJj}Fc|*_;>ScdJxn4H@I8#bo^)6o2e^kf&>E z>zsAyY?U6aQ~=&ks}HgNdM;!NrslqY!Z*Hlc&4C5E`JUv2s$)b5PJP4taRpgjK7Oi zdVF08`twdhH$!QjJ->KbiK$}(X+>7=;I?0ibgFp6NEpHcb)V{URm_EVxnHPm9ffB^ z9$j23H=3&=V3iYCDj@#}6L$8Ln}FsMG6oPE@5*5>o_w3k4WSyXeOK?;7kC%?^4n!8 zX6N8PX)HG&`ZeHE>7E**OcaW`Oiaxr1ycElhaG}rEb~LzAYYN?GIG*uF$$1jOZN8d zL;!vGs2MxHFl7CX{eoEz3&62PV6aiSQ7Nm}Z1&yY;~@Mvwb?>uDi?e6bHE_hu^Rq? z#d%lT*+$r%=h>8?pBhIq_w{VFgpwE$>=h@$lS5XSNLjtfKrV$uzOIdX=6LOU!)n{? zEY9NKLq=r?agC`7IGtJ&_^O)0RPgtTLzC)S^^T`}vw9%NGiF23$p<30-SFoIZmp>& zWZ`dW#eysh%yA^fvNkpjz6#g>H5M3hae}tVMt%&lvthWG0{gsacFb$|eeMZB8!yybN zHtm!@4JA$HO30|*h^q`fG1>^ijd6$Q+^6+af~S|zxph1w{IDO!6iH$WsR{JqVg4{vb zEN6|be7+twh!tfl%GKSWcwqN7)!W`koK`$PaGgtK-D<&Pz=Z_A-a#mR>49Rh`s_G# z6fj5P&ISd_feQ5jR9^KDaFvf^59u?d4!90Y7WJ*zs#b=dG5rOktVD}ovYiXJa+FO8>k;B6)xPF0YT6SiCqDE%~@KNQ)p+SFEH5`b2W8|5 z%R|HWL!KD(C)k_wQ_aGL)ugsW{_qOQ$MSrF<_~ckKoMV!C;b*OqFwe<^qb5d2rI8D ze~fwKP*e38_3>1)8pjsN*m(Qyg2YVPB8;6v#>49_h<2K>SjOPFL9zkDG?}0}A} zlIauFinuZ8-?le7!`QF+F9!F@UJE|l&nPGhHgDd(9&iIf@Vlprv zjvdqrx;$EWTw~*nx9mD&Q7t=L_X4=EEB=i;Wr$L5P0yK!8o5ys@_6fAoWfAcx! zRy=yZ-cm*SCi*7r1k2Ik@W4pKtnR#0)L(_F1w|LdtO}u$0dpTt{&EaoSf&hY#S2cz zAR90G4@y~({5d>7kdRMVcH2&q75e~w<=!X?AGrzxvdhuQ$8V*KSFz>NE$>r^*zaUs zIOV~X@vU;r#jeVK2bG)R6(=q-Hc~_Bi;9~xBl?dJ+^V_VruJtr);yRt!B$$pG4`_e6jl@fZCE-eQm)?EIhmvYbTVWf^MziJxy1P981R0!6TpINFu&1srgI=!@+Ru zc6xrV?V1>3<&Y7NXZ!s4saU~kzQ56%iI}(iz~Ur#hiNN9kga-}>;gceda^tvKmrhY zb`NA*xNeFbwoUwmT^JfH70w4)U8Y!0-Bh?i#_Fcu=5xeW zP!~wH%IBb5QKYUiHE!@r_*X)mk*T$E{fW(`raNFInQ|eQ6fa22Vnv}sYT;izI9O2b zSGGg`y>QAGjx)wpT&Nq+OKZzGdC89kbsZr~>ALh)n(szfr_fOPOz4a>Op`#=Qoj7fXjt(YNYLc60gWl zl@|-6UvyWe|Fxmu_^KG1zE6hVO^)#l#wuo~L%1TtDmC)ZmkqS4m5xhHC^fB!#;Yya z3a&JX2C7Tq$LLIL5cu&8BKLGu%i0dD6A6eWf-@DG^Eh`8kdBk{WAY>804Q&VQI(WW zwvSZ;E*TVriLVT}?9wR-C48=_P|ch`lZsy%h+M_NuwhYN7tHF6`5iOD$(O{KiqFO` zo6g!hiVxc}mDE+w&m;1Ru;K@So)Ej+0zO)j<*PDoJ}1>tT9o)oP^MhK?_3{>5 zAC|(oE?=O&v`*5?2bTwwJ`ByLwpHOZ#eNxKFSD|UK4?mD>LB{SBMJJVvYY0R5f@|U z4Upe+ZM_~P$L@&uZR7hZ&(|kXJU&LEHmZb9p4Mr4x>pM0OW-ISLrDJ$ z7VQcV0jfJdd^Gm>OftJ!gn)ym5I+8F?#ExLruE*18|H=!s#i-49EXocZeJJK%TdCU zD|WhCDquZ!RT27v27#IhU$VBfU$^7??zE{PuWR!SD<|x{n1<}*iMV! zb5vvj@R3yiBgRak^A1{%VLxiu+1XJR!)l|JzMr9Ey(PG|9X ztX@)#Iy1Fh4KHIfQ z0Y9^>og!1^AlvcmC1NnwH2joL`#wYD^ul9MxXt|8S(`oVuz zn)6|)u%6-&y=T*574{+>IVdnZ7Df8el(|x@sT3306W1SAjh6R7O2;&RICnmCxbo({ z_e4Cl!4ka~bu!EP3D(cQu01Sd)wayZrXi(zTJ#qJkz7nU0#|T_VoVbLhf_poCQAGn z?Ne?|94Ob7 zvtx);QL>w2nMwNs$kec?s*q5#1w8teoNvl z;gDkXk1cmj0mC;VZ0w=kmHgx2cRGdM?g}+*W2_UM$T;*EDMnT#MnsLV|D+_UtZv_p z>Zg{a{+TVQVwyq7^~FKz%ita>gXK7?FiFnY#YPBJ%e_)>sv;fVBA%UJ>}_0TbC^&h z`zs8U_c%0s7DfDtW3iud?Ufa5;%FA`YM87_Qjd>HKW8zV;Wt zN;fiT($uZN9UhD0lRC?tU7?S4$MJP6VZI_>^W_1gZEU3(f4*(EXs1lJqkM3l9}Y!I zwV|o>Dgn-1m6-s=?Kz8{i?GM?v{*5mr<_`$A*ZauT0+B$3R?AA23B_J_pyAcBgR;znJb5wnU0;w@JbQ_b04;-X8I6=)f1n29E3;u{1}9XfJA9>T(Y&J?EE4}oF54LnTE$IyEey4%(LnoWhEO|s%au{V@}1UBAkbC?k*t?jH^ptag`hnY@?Z#3V3=aE5xn$ zy>RL%aU80Kq7%_;7UCKDEW-w=6C@65u8c8UrD};23CEMWX6}*aW82a7mfYxTca{hf ztWrepq|deVD`QTNI`kP;$5GMxshq>*k^ek+Q();eoCQ4kuQv#XEk4{r0u_U-8NFnG zvVd%r>zw$vjj$-d0kcBQ%xgy+?aOO^kA`glRUK~jMz81|z2uBliq8xx-q+oQ{X4@k zIC-yvP@40a4s z;$Z$}QJ+@$*vK@H)tw3~oc_EjOnZs^UFkOx@OH(1G^$=57z}mIt?vLf; zB8D$NI|j!F?Zx*mmiAeu$4q?RS+)4EroK11g**jj=r_k1SIK+! z!h`Gf-4Voez~HE)ZylVA%&Y{=u_5+En&ppFlqJVbFgtgJS>$5NebYf7tFmP|HuTPG zm=f=JsYhY}V6J55)c~QGd`Udx6 z^VqU#R1Rs50`tf;KjXMIJSMt4j=K75Zo$eK0u`l_GNc6ot6UtnX;9K!xNRzPXg6yG zuO}>DPESF@Wb<*f}`RA+7B_#-FSgBbvFez;C4LA zd5AOm6kITSv?R3lCmQ)G`%V`d;n!$?((Ag2hXw-JxxV!`!L?g?D|JM7xb}EKxW`;z z6&}*wakuW=B2oDm0ts4E*bFsk@i?F+3{03G-wM9p-pVnPC{=@)GH}~ewWssuR^?!D zJJM~cSW!fLVR=xW;^a)3z^IIXu#2Lw-cHJ)#QBOm7jb&@6jQW;?%d3KCpGNmx5&Oq zC;IJpXY&L(vJ*f4-)+HO*XmJZy8)s5R8Mr}I6JJGvSVWl#?}rcURb41UB6Wr*dar% zlGn_=%qDzNTinocqk70Nc+jGhRb5l@{mXS)_&7-9X*U-|Er@*Xn@{AVal0vj z6O4ID*ju6Ce2+E-WiwPc2o}y(39(a@Bi(EqEUPq15iignZ|l4wkD1|sji!lJMn&^| z+;^g40UzoDgLU+6bmJj$2mJNe(V?JA?{*Z@sf?u7^u(j8Sm>Per>}<*J~QYGGLf30 zSMZ#b(CC6B&OjSdj-4L~^EnH%Ru%i$W_FzfGWshlkU~%4|+Fw*;i=$WU z`=~f$gEkwq{8Z5b$JURn#N&!{v%B;f-iqfPvQ2KMntWw%Kq2S^$9ILsnL#+%&i$xE z%#ZpFh1fT6vDZ*5ov9;LnVh)1l*k}7kA@>%}so$e9h6PNq4R~$i z*R>c2#d`Q+6~14G&WdfZuu$}zo?67F;K$!Jx&N`$Cld!c4LkObDV7y88=g1MOYHDu zX)lC_4P!2YI6Zg#VpDgN3MW<241h0tjrjnK7m4A-E3EO|qk{#lSh-*y$YZ_%addFL^{OtYZL( z-Gg`4=mdtZ@<>B%H!j-r9HJF_Io`sR9FWuknbsP9O38oax>W)&Bi$LAs|8r7CoPe6 zBlnh~3d8_m6{#BtXMvLH&8nTB`1)|t;~a<+zPe82EbfU372|KRY+r$}QEAY|jY0)~ ztNWC}`LV#d&Ao62YX?y^{z*0nl8PjG{@w$UI52uI#_GcHDi<@rqQb%$1lq>uB-uk2 z(h+%4J1*ygN;ksc$EH~rS*H!n)6dtfa{Q(yp0N3C)8oH{-6b^}HkVGbQ{|b}!Jyx0 zPXIaWl@CA8JDr$G!JEk55}^26%)FyV_;XL22u{UYFg6Bh%AGN@s0sx@WK|-2pdLpm zOpTLN?rYA3gIJeRlbg^Fn7nwLC@%^zvD`}nOE0yP6YM*p{ihC`Ke#`_Zqs4^T&N2)N%*qhZ?FzC-k8|qS81;O@`(505KoZ3oIw-K;p#(m`bWV-ie z6&-i_4`grc#-mIYcD>f%;)5Ishv`M-)Nlzromu_1Q}N<7G$BMb$EkD*6bXtXt9JsV z{a-L#u~iX;)vFLz9Lgks=JIH-Y&`UzIyyhfY~3?)P;o%+kvu<^qhD=HMzG>qC~l7h zABQ5M(AABFAY#>iP^)Za>#mZtay~#SB&8;${T_aZRpD8lg-bg}u!G;^p&~qL1yi*V zkjG*Q6L3C?>8yz4X=%$$YUO}^_tX3R^qcvyfQzQ&Bj&006crA9?cHA97<_BJF-#_q zRdTyV%dov{>77}HpF`>ObCYUX$S-tIeScBr}&JT5XBN;6(h3Wk{%^^4k= zDK=w<)vH>uT+UcjZHyrw1X!(J1K|h9335#=%-vBqnirD`-+52HJK&W>x?%yg){p8+ z95=KINNMG(cS@MD*<44(*(ZS+fpZnUY}hjkcVgKZIu@TUL`{*GcLEAKE=JU_@*ub$ z?SK?8j)T9 z=srQ-v>OO53m{E@_cTVZ=BBU;BC*CQ7sNY-du-xH^C#oKGl!L|ng#ZH1rEE{kf~z) zRNhL%>IqR^^iW2Nlo$A8ad_wRzRMNOSo%SHm|>L;sKiPA{dK4Z2L_rl$&cG3g|0`} zFn{YBZPntI9BW~mjcMKHXEy92h$?b8#kgk1YxE-Hu)i|y*-!Nu{;NY2$oq?_ zAN=DD11jhY5szOl$|%;q0}pDR>R6PuA@NZJsTe0MRlG|ht-3n~fw_$jGa>)$JC+_y z9|(t*rTloAUxn6_))P#PyGCD~9fOXPMWqe^QcYLiQbzcjGn+UI^EN}zMWv}w8}O54 zR_PooPUbz@VE<^>R1$RUTwR}@nl5dzuy9cm_|)vBG4vaA8GdEuP#t$GZxt6OxvF|4 zt0Rj@>Lj^G3=k&kvw>zxAfwaCc60kVq3Be>MNJ{_-I>Y=Tnr7|p?U}LFt4A0waujM zP7VpxF-+{Y*%1?Y&kO-jJ6L8!O-0TA6BVC_Yz$UqB@z=Y1fvm&G0jFlPvRBjiqwWj z_@_=tOeLsaog%lQ(wGw7({mgYdR0drPi5p#Npv@@2l5nRPZi>8uOAZvb;b|2)$b42 zMO3xNCCd3YRexoQOk#WNnA{lrk)sBR%9ssb#R675Sl<~a%WhO(KHU(TvX0kmo4Z30 zyJZ7Ss_+7bBH5HgS>z(QH2hVg!8-w?|7~ilDmy#cY;Nbqr+^Vs`B_#CTSoDuO72P(S< zx?(F-9*Zps}dF)&$0%Q+0Im2KklsA_T1BMM?tCx?{O|KfmIaH`?_2(;}Z$UMc! zB_eAyy2vK-U3Q*gh>4SqCr6!Gva|<)TAtr9W<#jT<-5uw{72E)S9 zHEy;XN~?v9q1^h4F5s<>=t<$0O`~VEz@8Vz7%HF4*r5k=iZd%?a|lRAOq z$VHI~2pcJs8>JN&4;hNOkOluK4ujaPtx>~A0SD$7=RnO6kjZJUkUB#lHGy;URK7Ti z+PU-N-a#Jls>D+$vB#?OzG26g)KeRMcAPmU$H@`#+?&ozg;k~k=zxcydsMtY^s#da zNX%Af^~l3!@rdGk@D{RTVC9kU(RMlFN0fixe zGh4E1)&P?R^Vll>%-4|f;b=B2$D-m8@N2zDxm)F@w)|GMR3^mkLxej@R?WcR*tDsD z9Ej7ERN7N+g%=fA#L|b*kk?p1@Sv3ZZ$>;IJ!w25-f6LcWf=9vcW$Qu23QDGb|aH2wf5x|ks(kvPY3p3coF0{vbDKMgkDVfw4rrNaB7lr?-X%ze1 znAlqVj#rEl9AAjj7tt3bCfKK7CDmHLkgSXwNWIRiww;7 z>{qo`QgQ8kyR*YBG#nJz4P8}5Y^4SqWE%;x$yqP04GLPT^WOQKBi@Uqp7E% z-1RiQ);SYT*Gp!v!}j9NTJ+VvomNN7qO>M7ew)0+@nj8w`8y_K?9~>w78b;i;yt7b z*s}d9wj!hQdxKB&8T|upxUJ|Y!Dx?%5nw-aDXZkWX*yt+Zp$eog&1$z`REUUjs8F6 ze}SyX)Dg~8g9YEb0QJhK^t?zOCa@kDO@Snx#xeN`W8CP1(y*ge$NVo9%ogS`8wfZS z=0xSTzPH3NEy$RhtF8vc5yH`H5Eu)KvcD|6AP5~_LO!-97MrnQoMwi$`|KfBO*;DW z@#W<1+)*JdI~7EIQBHX$%bGlz3ajhrn_~|dP(HPLP*1;2Nv8&%4crT9I@On|yzAPn zgW{%AF7Woo1}M&k>cv(SOFR6j111{@H*9%y`VCM!8;gfsCv!MC)nH3o&%?MD-+USo zNz^`Kc=ScQx-EbBstaO z)?3FP|DnuOokgV#pSCTbb!8$!>tcR+G&lWb_35W7)N72xZgd@JYB zu1-wem0P}I_*FjG>Ht>!8IL9q^(|5V0w()Lzr#|ad1|NL5?S^_l=2;^#$5dSpLSDq zII1(}X61pwGMs|4x)GFe(rzcR4Sxm9=}a2buv2{zrzkFkZRc}Wyn~VO3j@ZR0ptEA zS<&ec;V0kjTlA|Q#{-tbd#~o`muRYEI8b7%%fbPxw8E>*2ok-a57&+M?UxrUDt6~IwpIbk%(GR#*+ z8!*);Z;|oL=ON$}zyh_iJ)-jgg^6xoob1;FVWtS499su4l<(3=&fSPd7h_GxC}9I$ zUbg16DE2?5I~~RC2^PVIf3}Ncy|_(#*}=mq*xzahy?GVVi>*ksJI)gKV}XqybzEAa zATeO4V&q68r8YPz_(CxV7hmlr=z_&&*?PBP#8{o)Qq^khpMSdq z4FE5ZV@*6D+7sELn}{c$0Uy~okT74Wj+0dV<7GIciLND!>x}G;s+Px3-TX1Un?)kO@VPVx`p#TDXHuq}U)47;H1wNjHkPGiN)ur|yt&QKXhaMG9`l ztRcIzVd0SUaT~NBxoa+h7ntXBs4LDB{Ks&ePYMz1Kp;XhDsh*2k%mrcJRa_@SRUd5%aiY&CE z5vG;WuhAo==n?%Gc7XhTn$^Ftn|6FkbSsXaDNf#0X+^`^Cchs`_A%!Qg|Eu6YK`+} z5RBMppS&MaGc!DMA6H3MR_K`cE`Tu|E|GclkzIY58GM2-qCP-vu=91!W7P0i6vIEj z;PMFy$nJKC! zBzJ-1rBswwyG>D)pW^C62+|Iq76`wSIPhZUBni)&(-}9h(ZL=SEM?XiKm`IMxBWxP zM11ru6GMuBLNpEU-yBrxkHLf{qLC|L<6rhm(s#Gw?r5!pP^NJXT{NfoP?IX=-(G&w3-EFmvAUZOE}Qp3Y}=) zN)UFw;8RTKq=VL7_n8O9S;T)CYK$vDbr%7${iGp89FS!lkr~0E;x&g(soBJ6^4s!l zB8XXqsK$zdN9yBRv?#iX1=XcMI7p~s6ZZ_BG8v_;h6I_ndlr?=6CQdU#rBpYCBlyD zgEo%sDK?KQpBsrV9x=4r7sqO+Gc-%&H1#BBKF8i5ws$#=ALC)GLw_sfM4+y^E28rx zp#!84=nYv4#uQ^&aad9qqYRF8HERKjMuA}E{pm7wuSgZw?H%-Z6Z#nsz@E6$+HHqLvNaY%_~p ziE7@$W9y#`vSG-fE|F!g1Ny;w8Pz|GCJ!#^Q}5FqWu`8n7@Wq>kw0kZjK7*W}`?X3Vt15VP&JjZ-H$=|Hw%;5*&! zz2km-IZzgUNz~$aJ7HJ0P^kVMOW^5vmT4E^rFSB<2^PV7Q-^2GlL`f4k7PZ;cF~V@ zKJ#a6>Y@;bI#yj5BP}i!uOV_iJ@`j5VrPabF9gh)v7yET7%BPB}E)O9aS8^zZ^De8h1wzGjOyDtia;*~X%5y2& z!qma$IsrG3;{-ufenlb8@v!6g(b8M`X{Vd2Dg(CKZ&skSGc~a5RUM=9=67-77n5(i zDnuvn1Qu^uA!(HY;GH-iq?;$GnBbZMgmX3ZYO6Kl#x?r>*2zwods8xLUbE%AmA3>de~tCxS`r>?3Ek-E8*QD3P5+x^zoPe)kvtm(x_XtK-+C z6NQal_7V@P%<1mU1*^~?6L%GZ)0DHXZF5x%YH{%MnYX6PKJ>ak<}%);j*~sqzE0oZ zkMA>I(S=mQJXJk*h%Y6jdt)Gl`6?S^zjw?8YT8O^tPB3}Y&u24$_HYQS~0~;~rmb0++hGA!BWP1xCu^>WAy`E(-Xn z=o^jMa_CWJ)!u9G_0I(-SQ*wAzlRzjaIo6Y*9Z7&epzL9QrX!#-cJxt8w!KtIMEZj zIO9Y`qM2A0UYeJI#%IdBSW23wx*5KAU}tYs96o>qq>7Tz#r`NG}EK;YtPk86I5-LXA;p`F(38J(Go%w%kIM^zd;VBv@$XzEXh~g2So*Eb06lWIOf((qEihD@I8;te!|S^_+mScn9TF+^=h&i zaiBW}XX-W<(hdDc`#P#jz`xYuzgIfb7c;K@0Nd>spIII6g_X0+I`?fY4nL|6d!8(p zanD^R`ZKlbL`G0*)W?V6A*bnnN&1Lf|0a^;%Sws(S`M{I?R|0Kqr4t)Sm~&OK6~g? zh*R~Pq^(HnM$?|HBU)B%1!em@ajQyRW(v2jZ59}oaAM@H1z-C>%ab7e6#%{W;o?;_ zioqZz7=9Nq_A`Yeg(X*$iGAh%RiX-KRAhlz(p@$}35?{pEI~iBo4t|XXw^eii`>Qj z2s@@jig%?q()`q=cBj_B+5&m}rq;r=+v}Um)WU6Ifl2Hu;;)$(k7&icZw`;17N0o6 z(~juSdhi;mUWTgLhBLZwUZ^H0emnlKRp~sw6PU1C^~kNz{&xHXfp&F~ z&ETP9mj}MOlsu>uR*EkTUqTaU(Nl5Y!5!r{%)49?V1S@mEj3Zi2V9y^2VZm z_#*H;IMB#gNdl_r#vLd;)QvxdAD$nB78Z$xsmuvBBF=e*S4zyk1i+T3NppSjj4@Jy zT*01*x08R}3CCD4vigU&VPt$6BMV3LVu&-d=ZMm_-bz9A3MZRTpk>InjG`4AOQ&k_ zL^o+Y0YVeosF+%-!KjK20F^qgWh_AwtpgO^;=!l@Wwg`CA#h zEhAn+@R7HaKP>BaeQj7EdZpb`l!wgFMByCaU8;-V6$AAlS zeXG_-EIiYaTv2!)4f60Iaz$OB5M=VKeHXR`RGdyZm1a0Bc6!4#Mo;Y_T2@O(tk=#d zJxrWRxQgWB$SVqkt#3gwF@!OM%m+DkCGSuI;B0lW5}@=}pe@42NsP^~aFb8{)$gAH zjUD;1l_LzE_i#~UoTXOgz4PQm=U8;%{egYUR-y$bEFC zEw;+-(B-&$24xS5-oo|Cu4NWC?`c@b(CpkHxeJ!xuSzno%I)znniV7mmZ-%KTYIF8 z>u}2|!I~*szdO-0B$ZJ?`OFh`t0}jbFI+<}cc+K|`ji-IR5gy9_9K<;Ae#_}hyy^y z+?G)3j>Zdj&T>j0Adsua4XZ27!)N6#fb4kTnSkVKGMQZKYV?ka?*#+nbtZns3Hv+U zIzFV8kgg1;z==L~F#r|EK)61pO7SDu45N}Vt8~W-tGC!yFu2lGy6jzHqSU$7&Qt*h zr}rk)2kq>|$T`KC(~(P}2i>CI#a+U4a4fO+l*}>M;j>kt7GA%y9JD7L**i9^N#GJQ z%?bVSi|xjbl5OkmP<30m(#t`_NMY4AgmxwIEX+$tovX0XA85i`e*M=j`Qb!gDF3J_iG@IR6xgq_N(kWH znUJq3JpHs7n#uAmgnL3NmJN-u2|q8CPToj<0>eIMkJ|d2!n|%bO<=AJu<*5-DXy`d z`av6eDN^UOII1(Znzzy+wS_zDxo2QNsWGyEH^vp`TmizFO0%1a3RPoi=yHVp_XUQy zd#&`8XfKEsN_MN@==*pWgi;?7_J1xoEU3lyfv`4 zPB9eHYE{^>_Ypsku(?V!Ugw~I>GkwV5yGjAURhqTzP}e@v&P=L$Jy)CL2|uC@d(-d z36foB_;*^U2aClw=otrPm)2T2(5P+X$KhXC|77bbgWUbH{r3p`AV(AvkI!>fSnn-a@p$qcq6~jW)=3(C zA;XsMVs$sN$<@18aN(H%!p+2!rDzLGInrOdm4E?-fU363hl8=v@MRpUU7(}ukXgL$ z0V$0&J`cY|!R4>EJSI9)?A3Vr!v1E6sPHC2+)P2gGK|HNKt%Y zQ(h+1h41wMK&`y6@Y9ckA)W4SClgMN085I#X4okT%BxvdAZ_`SOsp0biYHrBr6Px~ zOeOyEhqCkM9Ybly<>3wxndYb%IpEkW8;Us4q_`kLNyU9D>R9Bwlc-<}%Fet%xN|?b z{Fq8*B>9z3Y*ai2s1i|*&d3SaNwI>mXtY`Vk-k?dkW6*gY_mP_$cD4@_6^=vpP6Y$lX`xe^IA-{>OckEBvoL}Mg_jHrIjsX z{A#%J5P}3(W)>(D>=M2m?m%Q?s$jvtErpy+q~6LpfSSjoW1D?0FlqCpi*;=NqREy) ztF6+*K2jZ2p00X|zq)ZkLng?r)*b1584(b1|LMEV=GnIPxKfz7Y;ksUDOMK6fW8s6 zF&3`>irYs>=RW9;lcl5P5`uM3%FY2F&$7VInLQj}fbgC!_$@c>VPf-83Iz}xPS>(J#~x^6(C+B1C) zK_`U-og#J>QMfnL$y~2cv;He2;{k7mQ`zFo3tyD?J@5(63bhd3AxJxfFn_|ifCJa% z<3%xY5ZM774I>EHTq@2P$tXyncPR~?0_xmSZR?;7F60i@iSweW>98|;$~Qls$~z(= z$8mjQ@C;4g0pots4raYbxL^5o|51voc5Lvv3tQ`2oS< z|EJW9vMfhZ7`p#mk1rqz?3dMNz8o)t03if+R`*BzMKd<-kyYO_#L1gjsNs;x*`u^E z;c|5DaygCt5ivJ^MP@H@t=kg-O!XU+jIcHapkAtd#?E;q*R@jMjZv(y6}`UYlZYY$ zOpjGODICwGZr5Zb;ecU1O_N5-v~;g#lKL;8zNzRdN-2TgGxSp%SN)fwK9oh6kE2t6 z1>H|l=eMe@p%yu|KMO3xvkJ(9k0)eT{8#CQcOBryswNf(FZ%0z?p0WN<&%hd_=;y; zvzr;N9#JOx(Zfz%R0z&9KBgQSfj*Wy>r_D~ z*h#Y%5eDW&ymOpG#d+lqH&~aa(1j)q+hSTEv#p@!6000~WJyr+ zSF|bji?2{k3V2J`%#_H$3g_v+oUXmstSY#U^Kb`(N(4w?ylGgMlYMhIyc@mlZu()J z{m;bb)>g!+sBZA|D6Sj~)C<|N;YO-*9hV%J7_fJT+UL~?#sw}!op|a;F%_nJb#R;K zhdd6p6mET=LTm##<2TQOuQ#)2cj}*tyl09t^9!#h<5X#ic({5OaBNJ$Z!mE?c?kb! zZjcn4_;Jb1cgSoh{{`*nRXhPzZDP?kGPu6wnLMk=WxO`JhjA+brVnS>w8^@Y*Q^`n zU@>ppd7SVVgN%&2T9*2khVLYn?mFNh==>OL6Yd;Ed6j;NR3x70Zqf(oFGt5K9t18a zdDubaU?PU6qxOf4C~3rO4O=a~s%|=Z5)2d0hMM-YQ)>Sr#FL>ya(GY;6YKF{SCmQd z5=)L4DE!Ibu%T4ku-yl?@!|#9gXWPIHl?I%(={nzmEbAfB=h5{662_9f$2&(4ik<$ z6lc83g|?ld$Gf~z2dhOYwT5>D^+KwIT2P@m1lCYPjM4Zo5PqP_#YW6FI)c#Js z=prjaGuR^fhmO=b54fA6g>VG0*l4sBNo5Ml?`b~r^pHy#HK*$6sD)V1JxS$XIdN7F zB#cV;J6ogsla*bE!H_X9%3~3Dtk2t8a!m9%JgEt$o|wf`gt8qjzSZO}L7oss$)Y4Z zwNuQ=tL!Kszek&qUxNxf0n#)1u?ij!g#F$;_$D0Tt8!j^te*bF`O05LLv%N!{>!3nRpbQQD?cBi5*Ehx`G>pWcNjzBYs&nak%iYnnj4rZoCw zGENq(e!P8pi^CMAgu5s+Q{R-EjzF&{HGywDv+fc<{Y{>hl7`W!F1D84RKLz4oh zp>g|h|MB}6TQnkFw}_MaTcQ>4X4!<_e9LU0^LS^gS>B}Ym@TKhb9D(|t1&fmD@q2D zWomRqV^2Q-dN^0&o_cpkDbjYnQM~j0V+JTqrh^@Eah}=~m~&p)N%0z*(!@)3@s+5oQV@Vn zhKrIa;fc!O6D$td7{Xj|mns6vD&^ZWx>n+s2yM!dU8mG~m0z;W3X89C6S^|=JZONv zev+09FD8$n8K;eQ_?Qrj9gi7}tIDZd`VHr;(3Q!MntFhw_4VnH@$AfEM3FBq(o1ag zD$p=|iY=)ZIovQylO+b+uFHE44gmyckOvyuxzVeED^4+KuGRqx8PBrgNl6mPX<|97N5lnvon+FybYYUl zm_VBUul^H;k6S?fsZ--*v3mwL&*T_y_g9#kW5MEi6opsMn+T=hoN9a{q*-1a6_%4) z!N2`-+}}G*-QA0{`&2pM*#quJF4y`5HK+JO*yl9iMca3W6ZQIgj{6N5Arw3V)@9sA z=u2x1=>y4EjhwQ~8`#eM#n7(C1 zBE?zy;4MboiWNIR=BcSvk#tb#>eJ!7L-0Z~?8G*!BKc~zw)F1on&F$4Km6kL(L;RA zhQsO>7Vp{*BuvPQpHrdtJHP5O=81JchR2LIC;qrKqTHW=b|b7jLEtN8aS7t?G=j@- zL0CpLMeRm@Cy_&>jaHUPWDi6v9jOlFw=(lrf;pS1e_kvphc5G6Rj8B^fPu;2eL?%z zC4vpp>WpH7evb3Q8$_pWGFu#N<@3<1m56Px-Xh|n#d>KRWj4Q&(<&>Vs_{baL z_1e@`vw1cyAsnp&Ocd>sS>6o2;!Lxw0*`ix<^h3_4+(fm(pja;L4nm#48imUIG?gY zIKhV&nd=$+WAMRrbHaYjUP~Ztp7$Mie<)1Ak_tN}3~>);EJ8$w;3(f6flr`nEoF8# zE_FT{XIznBn_OEEpaXA^73jlMp!NzUuKy!Rg{l4T5EsS}C``WuM$G}&){{s!9D|@= z&$=DYiHh}x>bK{+MVl8Qoqi06DdT3Yd>Gs{eJJ9@@jOlK9%w7orukJwyNGkP{5B{A zoJH8`pLt_O%c*GgGE@rICY`P} zIB!9OWpVlyk7OAqE}6X*!pg`mfXg?L;2jLrP62qzWf8c54ps{xu3R*^Q>`1+o^?yl zAZ16aM&Pga2lSkG4EIwp3uAwYT$4)q2j<$+Y-sS_0-B^c(K}|SW0hMKWW=CMk5JDK z;uLb6guz~|jFaar3D+`3G+|iWN-?1Dc8&(%3S$ zF@D^vh?y!j?d%W4^TP~?UN$U-f>$PA9lK>|u>p<~ex4BPOcQO_2=}3wIEE1JjzdAc z?6}}P)z6LdgX@%7Pu#qi``D9|k~1H2z(x_y28!^;q&_9manf4UY(yvgaWu*6p$G`kEn2fMhvy$XjH^yFnrp(r65PE1bu+RA{PrV zID%vTppLE3`-uId!)dS;EfaShC&n3bmw{={tw1!cPxjaPr3e zk-y^Y1CPKo>`dD7H9FxjeLSarv2|x0wv41$;ay2Yi8!s48tZ*(uTA!l3qO79*1-tZ z1R-Skox76&7dyjC_EV38){xu`1qmDPRELSnV5?*$JRE6o0Ed` z`(grbC@n0m7TmY16RkPswuW{ZU_{tygt7yLo6=X60`FF!${nd6TYRQpi)10ejW^W5 zmOfsR`&79Qo_}loIQtQBE<0X%@n@p77*0RQC4)M`K`46(ox`X&tN3ul_VJTn_iJkP zsQ=WZ^3l|EFU*8+j1K#`XxTgp003pgp+yh>LdH{5K6v*0z(T{yu3znH*Os9xDaq8; zlqWm`tqz?uXPw(6e2s54X+~^=uK;er_n>R1;zSf20EI-P9M;5A%HF}{=Aw=yZf;J} zQNQ;Q^#lD=*b+`T(4Wa~rT+HyOvp7wTq|@j`(VF{J;8A+34B3>`8S;DPQ0gfZnKoQ zJt)dxn#)RwyzA;=&_f1z+<16PxTN)A+cdJM4zu4K@n&l;zBD1ZB7L0qo}Kyzm@-yQ zF|er(-@3+?{wYin6nPtbr4k9XlvVCj@!AM?VQxB-|T%pJfX`cg$b z!bFN1#Y#&Ge)ZppSr|$*&T|3|cDAcr{C-qsGZt0%q|2%!s#0ZyqRzr4GN|a_!gDlS zry-`BEu&Q59@`ikkg}4g;JC{uwVxMV+&)}$tpN^6r&55mt8`0XKYeg6NJLz$lI?)@ zluZ6CbH+y-f7$-YpI=ecAqU#|k;~z&sPN~~6vVnqLB6h?t@%=w;xlm$5DY~E&45{m z?$x2)6L_ zrmGqXkDiBR$vEXoX&!N6YaxvL$hc1Ijtu6-;1`moCJYGx7(3o4+qzgm_4xt7W0nkA zg(a2GXb%2 z*U3?L=F07<>tSZ{Rd78MdJG2mxl2T|nKIN^Fk*RRqfQ14`v`R$`__9y|CZ!;WF$B?PU_MYy0Ri23YZ;& zT614EFct@7Gab@~cxjqgb;`$IN@Mwe(TTFC6YjUMf*qSvPhVnD&W}mc+`}7J z-mM!_K=kIBhmgy${@ib&m1Vw=gv9Y?(O;Ge!ET?&JMenvQcUgJZF& z0ITQgwqCjHdjk(?_q47EyuGrit@3jHl!%SY^yn;mU&T}_oV+HR3-0}%CI`1*)qrdI zNKup4flcw4E`PKn9q<%!Jhv+m2Pd;1WW}U|sqvF;P)F3EK=R00m%#O5VKD(L8L$e$ zz4|L1+<4G>a&*)atLRdhd1|`fX3+^4zS8CnUR@n8EGIAaEbyIG|Mq@!ZQMsO=Lgnr zQJ*ZW-B`VuEPH))s$~rJQ4R)XG8M&C?C@00;y<;{Ua}0LUv{ZjrC`Fs&k|^Z8ZK@6 zAKa#z`g&@Vz8`XxCP!v82>q$BQu3eNhHoL1Mv@0ki(aA}{yFi;ZMdiUTyS4GpwVJrXqOsud?!6RU@>P|ts*>pPVhJcq50%pt+)XxQVeVP@ zlHY-1UY*f3`Q&rzs*1%5-$lEK{?bqh95=}`s6Pft2Bgm6-i^vDuj6DmObC3KGn^iC z5`c@jwklwq{dwm&B4F3`Y~x>L&(v~tm1N}s(mFBZv#@+K&Aio&oXAC)-xZ~VV60I4 zQ$RRXP@aG*FaD1v_R@XwiPzP`d8vcTX?keDt)$m%*_een$L53am>Nm~=#o|Mg-68u z9}7VE9#9Umxln64Y%_p~I@G1Bs_29WO-tCQ%=8J)^(DK4>eO?atqLy3bBCW+k-pU% z92V#AWPDUBTqwo*33=`lf%Nq}Ub=|*%eWJq@>@rKPwB{6y5gc?{_(H9aXG_MdW_17 z@Vt-f==4xR8;Gf4O6a+o)_2Rr|c)1&5L9ID+3p|Mv^Jx^jw>ZZ>71CvjZM zG_=&>k~OpAw=h{*-#54k_Vt!E_il`2m$Su)k!4b31Y5~&|6Q)(kvye^C_7H-3PzeG zu8}l<0mGNyX{v@slsi0J%dIimCf)V1v2iUv=v*@;R~ve#0E&%DWC}KvVt>=}&7q6m zMG58jBDBiN#>QvysySzF1Yz@a4{X&a1G}SNfkZ~>^p8}#V8ksbr!AK%R5TZyGE_J# zTRZXS7S$h2Ob|jj5#7lgt7NATHf8Z5da$JtRNmjUu>9@jtJKQPF%J_shk~D*M2v>%mA?ccSH*ykf7zdr}e0Eb&Rxf!S%f(4SnFKyI^9B=2^H*?x*7~?mS#kfk0#(;P z_+-LP`mk3f&*|pgWRMMPGT|6ooUL|u|7j@XEL~L|P7ZkaE!q>Y7{T^kx9o{8c9Nin zpFM=4_)0O8qm@>&x?VlvX~wB8@io@0H%ATmiQmeb>!e%OL;b2im<-}HPpJm$nQnJ{ z%t7EUOXun<1>j30x0@nXodAA5lfhV?lT&7A=Y^uU%((9S*s76$&7NNzxPzk_ickr9 z0J!Sq<{-hR8qPsfH#2fuF(y1?+50r4NRP9z9Wl|%7RV3dbKi(p)Rsh^gvT2+c_1;ooa980#0hMox zLmsPy`lZ&>;-W8U6|)+HY2+Eh*_bRM?DBg_dFjVw9-5Ssp2+}v3r|Y+D^UGIi3_wo ze#!zb;k9WzVUKfs4X3#%ZZ@#@#NrG9dUCsqcpzDHVdUh&wUpXAZh0Np6`;n!M@qsw z@)2yFdUdtK1MSbrMx^LFntD%T)7>WbTIb7Np9*88;Wmn@MrLuL0^{*p6w>pse*Cl%B4JRAh8;qo&F^R!n)wAcBiDAySt^tr*l^w!Tz~ZgzP-b zPyoFPSg~jn?$J^LDL-)5sZKxWVB~gC#8__FNy%zd->na5kBvl~w{QCy7rI(%oN8$~@ zlVIWiqViBt7Vt`$-%q0{(#OrO?kk7(94J|FXlhH(AIIULR|2T#0GsrLZ^6~~ja8)n zsy4-N3iP9GEygRO@m`g?uRWm>4ovJfr8y8%1>I(+jk#~hH35^UgTGRZw@b6Vw44Z~ z*JBZ1_g>T0G2(Qhb6umX#fV8n(0n=jUl{#25->2>WmsVlHjb(m8+L6Rz5I#?)k4ej z=U8-!UX7K!cVJt0zJqmAP^|fhhmheGQ&L6!rMY;iEq$C=g&^lCqPa?FCi1P_GLj0uy*IY{gqbe zy;XClz`exvMfE{ZLfR7(+mq4k3)=M>=@cEzgdHS0(`hN z1%@%-e%3}8#X(uP&D>qjCD1Sr#19eI_JuO?Xclx6la8jH6SZV8q+*(KP~(#s_u2IQ zNq;bn6Hd)`d%J%15f#DLoLd-L)w#v$rF3IpQ7nJ5<5p%)?pNHC*o_p0*srp#tB#m! zVkRLmDr=6EanZ8!eDzHHar-^+R_H-=y}{b8Loj)ODU%TvX4fa>Z0xme^PYj*NMhTe|&sFh?C? z`Rz*0ta10JqyKg&u!G&EZ6;OY8T(2@2Xycm4 zd|un(ExCbu0lpToQ_1z3*uG-00QHs$7!0KI+m7 z?r0Krc7IZe#Y=ed>m(Mr536$Zp~>kb7n4y*aZ{)Y=Ep@LA+Gsd0Tmd!nh`m?Wgoa- z^W*p#75t9=^+w+Z_>g#CGuP|@r~7mQvk{e2A-NHx!HbJM9R&YgocV!}}&U{Ph{tYx>zzpGpR7OJS%8cL+69+*B4!Zfib z+Z+8Ea0}nn36?3Nv+Bug%%YSHw?@Z}12HzS_^An#2qp5d;PDjUAU{9;$nMwxspx!# zt$j_%yfi?B<-;8S^`fc7H{xzs0A$r(a9rjr+$-*8Jj#)taWg6VDklLaG?s_!(Oh$_ z=$GTe1el{{T|i zALd=BvrCu<>q^vBkno@53c|MyXhVRtywg5_+7{4w~7mW1 zkSY|n`Mn!|eixNiV|=(RRO=>nd9mWn`|48R^*gLR&vkf^V#-ZW7%y9$v(=kgnRR5tfBMqQwaSv)7MqbPvLI+fwJnx;x*EU^E6fR$EP}G-Utt_ zkWsnAu7Zz;Nnmh)5xHBIT=C`N^&rA4l9hJ?pBKkAxKs5Tvt%{+OadO8zC%Y>t9UTW z3H&f|64(4wG8s?h!Fpa^Yfov}+0b^d`_PNA`U~AeUju3`;GhV$CjbDRjS?&yf3yPO z@_I-rp=Fd2rCYmyX!+d$JGw_px9Xva2AV=D1JHHgm8_e&F=DF$Snd~*eOCbFl_y2j z&AD*uGkZKv>#*^Z;%{IshoX6dMRCW%M065tIjOE zFdwHqSFr5WWNh?e%}!ZVV4Wlit0Y+QayS&19}OD{iAB_AR-zcq4vnzUVPyygq`px5 z3(E$I@*dD!_PnWHc5cap)p`l(PXb3NDh{j8kVWO=1u!*t>`4n(GoxOq^IUh!5~oG+ z5c{Gc#M|(oRP{J5rfQ+W&@aAM6nKJ0YnMAYOkh@NT8$|8#Ep8u8Pw#)Z?{m|V3bfN zm=xLI5PVlD3)l`sI~IFvSh%UXJ!`I-`DZ$Opc_yXY89?vY@(VT@Z|kfM%kL{!FAeLyEoMg~P2{+DzhC}yeS&e(k4BJjQSjGkp)FTy_OUC$=!rmnyd&R?f zZN<4SWs6lyhE=1%%so=+t7<;kL24K{{Kn&^HizYQU49h+FSf08LDgk@;iGkN^l-sR z29cW5!K(p9D7I-4MnfWCqhaB$wHr_5x1Itl&RKPCgHiDngYB7EyR2)wc!=+!o}`Zg zE27_4g*98O(hp9=rS)t{`!qE!X2P?|d}^}=*5tH;=0wR}ATIFbI7W$8N%I<7p|*rL zcaN33>m}XQ8d4RwS1|CacQA1(AS}!B!*-Lv@qQn3&w9=5xEW$pJG#wA!Dj>IDe8ft zFP60FyCF!r_l(1fkV&o?;uS(ETWjwa$Ep$(cAm7_h7QuY0fQ`@t=h^ibd_fy$~kw- z)C*1+h$Dn#JR7G@=f^djanZu~*sVrzQyIsvb}1_&G;zn_g8KIR#|^TzoZZY3ai*ok z`^=CN^!zyN{XG{c&Ijyls3PJYmla$aq1VyAX<#gUtMW$@cu98VpcWt*-9FjM)$c^H zotIylB&$^if5PUpR|>#Wt(VF7LpVQOhU4g6>#t3JJK zB_yjewuh<#EsXQiwdC55oJ9_HmV?^g<@1RY_T<40PwHlzt-6z7teW)6r{JgC+?^Ey z2Y$VI$5EOXQH`gLI}BXcVZRzbhfeiGvr*p@jb)?1pY$PD$jV`fZ!)v#H^2>Ep;mo7 zAfnE+kcZV3_30Yi|N59|nE=NWCPW{q{*%L?nqT8=dZbp>RTy!{^{Bc5esG@( znmGVG?JsolIJl0JZKKXhe+Bf50=aa^s!`RGBfZYT62&i@E7@!fIMe+>N%LTyPdQ86 zRgU^3wmLc}lT-13;@m9usOBUZQZ|uIDwUGVw4M*EiUv8l+=fm#xgAKaS_TIfD?61C z%k^g9+~XuV?2_OnWU26fBw{vM71+F{ zDrQ~Iil9Fe9|r=5MfBT_ID?#@!0jl$vocJ!(gKrFG0(}nbjmVkf_EU)v8M|Sw8Uh( zVE1#am4CM1)Z@LGQ2t}VK}fX3Dxld|NIb{Y;_dYle9D+fWRd?sOCX1K!|OBF9sbv- zO%7R2dV^ey^MpcY_M@f-v+inobZzHg9@zWUk>ZDKF%`)?J@^|zU#heBCxxfHiA;-p zJQtbZn@Gm@MU}CcVF~l6qMJ8M!|nJ&z2cS$>Ac5}YFo}E$%xbp+^zJOzv(;nH7kau zI-DfMi~x#46f=_}7u($^w5D}>{xkyt=T87UR0_-_5Ok>=kA?3ZV@@gxoDg=U5pAVm z(;NQisO%l;l#$&k$?si|#`SMQQ}E||MESgmMeNdW@lj}1cd2XV`YJFcluV}jeao9^ zV-AJJU6c3e3(d{m#Kyj)a+m|~beNTHMKfoT>!>4mkE0?-{}?66wLk0Q_GQFth+i?%WNrfB<1NIi=#5vx>fD;M_ zY`G>D?fN#rEtGsMn-U@}A z+L_D#o$H*OB**ld06Xg6MWccL7#(?ke7@1Pw%WgygU)tdHqQrb8bd z+j!kh1?S5wmx{Hpbb1V@u96ofyyWD-q@!1*-$G^b0kTcY?dB-0U{V_GxFKNqKTsbJj6Qoupk?ai;f|QzA)X3nvnx|#zql2iUD=3cJTKD%!2($nL-h;|# zNj9{KwMyeul+aDe!tPkYvr<7g&r~CAvmnoc~&d%U%H# zfC5ZBr(x

%c8)d8daS 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

7B9EQacdyJahp7p*Ln_|g?G6I= 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�+0Q4Fo*c?5g&TWFFbMq4_|)`+|HXTIL(Roa5_Kz=evFQ zz{^Lv?S#YJ`c6l6;K2)TeCfn5^RK`9beQ|`w~zmHH^=b71Hb&3Kf1UNnD< zr-ytxC)e%~xxo(~Iy;Yt+?X$YreE}Q&OY}hJnj?z;2{_C;=MWWyEOZ%W4_!Qp6Nqp zebk|=XZkqL5BT}UuQ_jWrrwWyp|5jz(Vy;k(oui2HyrYBpYL)j@A{fI=k=qz`Q@u;b3`Y&Z^QZ7 z%2#^H3BG>c>1xh)JFl<$bmj}4y@yMEe$(4I_klUx>PH`SFM1E3I(WiGKf38dPdv>f zpXAaxb@^fr=)za~)T1w-%`Y9yf%&n*>6z~GrH=1(lJmp#!B2lW$sb+$WbX0MN6zI2 zzrFgnPo0O0j{4zipZ@MQIp&|7@P(e9%|9G`!Bai@!D&A{e3UP_fuCP=bT7jP7az=% zI`%uyCp_s3uV;G8J6`JQ3m+Znj~Cu^4&l+qIsLElR~`EDkB;t9`k7<-xv9=-rK{Y* z|Jir>rQ=)g;irebc<6(#e)4Lr)VH6H?j5+)cVFlWC;oi2UmrTa%{MDQ&9(P@RZq_C zbKk&CXL#h=K78QuJ3}YWzPtD61eZDX-Fe^P(U%VN{}?{vM?boHrh{C{sl3<+hwq+m z>W3d)gq z|K(LK&5hN2b)|FT|YSJsGc0*O)vM7dj~)I;l~g9%c*-9Z#>M|W%{X4H#*3n z`-)F=chAsEAGjZ@k0)I2Df!e7K0267^^Qh8`{_b&`r&6j;pQuS^z$B1{rH8a9GX9U z@V9Q^<%{}o$_stz6uuTl@8K56BTe=|A`5 z2_GHdku%@J?UxsQ-P?48 zLx1?qqq&v?yy<67>10mn#8*D@OMU0uFZi27?_bg%fBfhSw;bx@ynb-GXVshep(CB? z2$%EtdXFc4FnIrK78P% zgE_oypZW404!o^$;J%l8{>za*p5>KZ2leG6eEQQ14)s^(%o%<7${+anD}Qo1htk2fWUiFZaJ^`Z`A^_aPnV$RGOA!#;J@+0qS8&vL)|e%Oi! z|LN&I&|f}%=ZE>whwk{%o4#^C^XVBceqM#scX;JbfAf3Ze&_f(d3dI$`^|j9;r^f} zA1>>I7d<@x=sP@qpXthP^B^ZrgRlO0;^X{k|JI7Px>FbDU*ya zywCZEH-GWs%gmwqy6-%F;deiH&u{ZdfAeH6;E@x3=%5ZPP2&_jiHZ z$c6g?j`PlWb}z{_UUYWP$_t&$t2u_(e!A-?ALfd_@X{TBe(8q~ALPV&IINQoJXUz+ zn6BRIPxr@k;}hNF+C2b|K2|=MBmT?jR{hl~&-laR9+oHX`30X`$mc2J>P{#k!|dX_8Ce4zK%IeveQXFT~RA9&1r7e4sqQcmgXcfbl4-<_ie zoK`u!4lf+$l)w1XkzbziFc2#Jc~?hH zz2__4_{#_Qt#W~{`G9|g10Fo&&^f;FK|kln^U;3(!R_~Yp7YEw9r)N0yH5cB~R}T2-JD>S4e-jU1 zHW%i}${+KBAG~tISNq_WPkvk71M)`?-}N;w<`d2>Uwv0kKY4*`wf|+T=8j+P zL%PtH9#(klr>l9_S5EA=!mU3)>8Fl-(tGl7p5Ag|r32jF^Plc~rN8{x2M_&D(oz1M zhm)Q^+Gj33Z@pLFoZ~}Rb>&PQIZ%)9tGdqf4_@=-oOyI#;b-po=e+sClVA4XwHFTk zE_#MXeR|W;3ZK6C@J~N@U#qX4^YTMKees|to#hiw`pB#I_VZ2tj>4fX-mCX;>cf9H z-EZb!9jo`3)wBBjP?tXRpc~%K(Phquxp5v(zViP$9Q6L%Gd}vrCq3ntzkI~se&6Y@ z4;+*C?61#$xcEa4e(JZzzNt4q&8d}MbfgR1c)(A0`ly4y`_u2kLAd11+^H{*e3x_h z>7@^y_)15(!*9QP>M%b1d+ph(zdYKHpB(T>KltTVPW=9wJAd!+4NiRRqZ?fG!dHFI z^x?1f@&})~a>Ng-d51^t=p{FFu#aB)$c0>8q%$APjd`S#`u5>z4(MS&e$MH0T0i>Y ztuDOuR#*P%;n|$<9e(*Tf9_xB_=X1@=1E@QhIjgCKOFMTA31#=`Nk7I{_vl#bdYDh z$q_%zfgJ0Lhxvg^AN%jZXCFW4D1UJIozq`l%nx4l!ylhjKf23{_xQ<|T+npJ)2O4eu5&ddlx(@8#4!c{(JGDgYSQOkEio=aSxgk-{~j6zpDeMXZg391A3}!p6LNM{&Goo``im~=tCDc z+&|vaOU|9=gZqF_aKNeVTfFI{u4g*ygSYjw^M2>ehyM6@uRdIKk$?5*!*~7oX5R5o z*SX189X#-&m(_W?@DV=q{V(2f#z#4nf9L1`muEV;FZs()@984%@Y6%C^v9R(bXM2A zu@O@Rs zd${-||8Vi2p7fV9zrXs)gSqm|KX@<0v9;2l4!*m`_$XiY^HUD+;TyfI`s3@pXMN29 zJox$U++O(Yv&xG(S?$yRtY`UC*Liy3BL{q>hyCV6l)z@75Zom6Rec$1~PY1rj#b0wk7kcZj zKE3s!AKg6j7cczXA9&M2AO3CObzVJl=W}E^y9%@@2&vPyFf37rye_JeeQwzlE0`e3Ub}qmySk=m&?~{;jUQ@?byw z_HXUCkG}NN4?aG^Z`F6+8*)vjulmu`@6S{3@#KrXa-=?;)R9By`6(ZC=8wKd^`(bZ z9_fIGJjjpvnYrRKJ?%GN_`;>~k=_e2B>0^~QIb7)hm-)xXT;Oxt zesx}Zw$DBKulM-S+cP}oiq5NZ`pX|Z_{e{C`M@W6gG)d9$URu^?-H-Zv@7X*!2ba~n(Z&6N|3iJv37@i!2|oPk0|#B{xLaSj!&iRHqkBY7@PJ$X;Fc@+@Hg*t^Luj>4s$Gjcuu|PEQj>8 zs*jI3;5VG~!NYvGFXRP2_~G$8w!*ItUwxNf@9~Bo9(vKw-12kg*?xTaB!Av}rVsz* zfZsdu;1~Vzz>`1v+b@Tg)xm>q`oXi`KDm`cy3;XD0tuWaRn{&EMuc~oz;pPum1iQe$5B=ire8&+@51KkcKxJk!m2IglUu_g>zu`l;jGQTo$^?)u})FM7&} z`$n$igCFYBmpds)V(3k za&u8V{^{#k-uTBKIk&>k7prsTSbcr@ET{A{SI*4zR}gW>-d>_I`I{5 ze!=Cvea?F?U+Tff5BT_Izx&BPe7}X$NgT$*?FepQeE`lT$m5KnnU>M?mqFIo^a~ty_}d| z`gx`kUi6VOIfQ@u00-Q7$^CnL=|ner=_4obn{#}f!^?Mh)8BjdBOleFv)tjo!f8It zk9nsXe(LJ8bzU9ktnkYPUGSDa{7$P!Cwkg1XYL37(bIdm;1hm)_Ut}_f2%+I>dK>) z9&oBFUv#6pI&i6DA6?Y-oqk8*!iWEI&eyN@!Nt$jdwSVNS9y0%{jGEGsAnGJ&z#_Y z+&R45gIB$mSAACRKU?`@pZjpP@9r-+^v6f8+?V>ukNR)bv){dshyCV-AMybYzH%VX z@(33lz2E9Dhw9p=zrN-}PWb3OAN4b@>bVc}!=Fz4(oY`nvky-D=<8lk*FL()F+cgZ z(g7de@iaH`px$Ta%$I!Qp`PCn`87v;zp9RXe3e@{$DbZ>>SG?|(X%@6Z}pR3`oZTr zJ>4U#bM8|)qAMQs*I$nK!8bXFk8X6N1AKDk{8M=BcV0jI@PU0wHwx%A8*_2HI7I=GkMeMm2U(x1=1t0S-Y=|^8Y>1+=5$6HQr z>d#NO`Dp)V`_!YqxucJ~zze7OrPo*W^ufzK(MKIPd{;+q+(Y`wz5VdQ53f1&eG8ZO z@Tnsw@X7(a@_SYtb>)g)e8x{-b8*^vb$wS)j_^^}{Ryvq>dFP556 z=tzJ3>Ed3IFLn6u8D4zkS$(+h;q!C2yOB51-5yzRRjn>+jHZ|?N7kB@YO13o#RmwQ6pyZYm+9{ug(qrA&CKj=zt{P9zdK60m@ z+ryE&6Pb?Imx_4l4X^m8BZ9Y62&vtK{=3%%$rhtA0@ zo!#Sb(M><+eA<^eCQ*G=0=|6hd*%h)qUpPu)4?jClB!Ir=I*+ zw}B5{eCQ!Bc$g1*(2MU@eenILAHD7K9WQy+*Z$qk^B+#<`9(*0pbtI0e;at5v(I;U z+^71=og6$@&pG_@#K(Jh>8PH0<2xUGKdleH=;QZ74)m1+=j@}KIeQ%VJ>%_n&9gc4 z45#|uySMpEe|+?(&r>+~;6A(Ry}6Nd_4#Lo&%Dwb5BHBe$(MPgA3kv6sXm?L#0s}Q z_{xXAaswy)_wj|>{Q{>P!X*dtqaK~$l`DPlRM+pm{^m!2KFKY8?1w`={N+z>>EJwF zeb>)-I$e&OKJ@H6d~!i|dRyU=H+;;6dlL_Hi=TUte)`Bc+;})oU-JP!JpAMj-}I%E zIpU91efa6_{^ma&A!~V`nnJ0(A=75`qSNaefdUr{mmI&@S=mh{8!(c zzcFt<9`3fgqaN^5HbGOn< zUg4KlxuYYT_{f{Q=u0R1@kKxLDR1_BmJ7P74>z6E$J=*)%H>f!?UN@u$}?Q}>JOhh z+fNVuD&Rb@s-MCOllR5yP4ME-B- zBR`(uP}d&!=#NkJif<2(J>C4i;8$IE!mGRw<(F4o>ZCj0$qPUJ@CFCpnx>@gd!&Kkx~+JbXwGeWV`u z@uuH>7e_vQZ2wpt>f{gn=wmqWg-1HOFD`u_if`pJ@9~Cjbqap;Q7A% zbb;6JwYuSe(|z^)Dh__+=RbJ8<43r}fd`L#<(#hYh|5RxaZU*{adhxebtVZ|ri++W?>t@u0}=B8Ncv5yuN$4(jVXUbeVbJ@m}A}d-CF2Kf-VR;8R|HQiu5sAOG+(f8ddi=t)QU z)TIyj1zz9jO$WTuNnH577f-$Re5f9MsbBCauD=KH>ihH;e(CWwJ>5TTPk(#$;1yr^ zUIxKzJU`@;?qNYbTJ3u z!y~@LKdvtN%5&BC)v6A0>7X8X+=s`!q386Yd%piIAKl=1~+v5c;x`^-l z$L>3~rw={wG2i185A@Ox^biMrx;VGjckT>1H&Uh=D#Km9+BUi8qPc*Bo8;?q~1?#*{}<4e|0|Ns*5l9)%?;A;^K?H)Z-n! z_+1>|^%36GF?~%Be0tBH{6$~ZxAGamJY?{u=_k)PC~ zudU`2f83=b9`WP5ch}vcADnX!r~Xr){-=X}6<>e&ozk~>`A#3et)K9$UU5#ULmYd2yQe-p z>JNI+LwxnG;^P62-oeE$bmt@I^3e%i{CVg1&5Xr?iH{$;c`qNm z`5kVn{&6lIJnF-{clrpA`2Q5&@;p{(w(jc|FMdM_V-;pac~=?its z=N&$+bXeu#Bfp#C!RNa^^7{=R{^b>S_J#ZEgGWC8l#g!sRUe(y=RH4J;pG>2%nSMG zDIPuO`5I5|<4+y>4Q_tHgZ>uRsy=$Ek59}4c-@m15A>5q{pO=M^pr>c^C`aIr_W9G z!)-P9)vq2t)gN&1hxqmr2cEr`Pu=RphdG1~I3B`%&?+B(`Ph5&1CR3HZ5PLUpo=*C z?e8qS-1QEhR=yHnethv6AG(JJy1})|Bd_>yeHrI?@E-5_!S8^0^fq_+T|My7ck0GR zc)bpfyyD_t{KM{9<)iC!=f2DDK3w#7kAC!Y4-RwM9*^GPiGSdsBfj|*pLD?we$5~8 zzE_v;aLU6U_~d)<_|kqAkH7FX>%+VF`q1~&;=m1${OXoZJ^O$1^D}+$Oh@tXtsZ&B zRj)XB!8`nL%VX~8Tk{g%c!I zd`=hl_}2OCALslmo;dL0k$(CdPWS2L9p2^ly8s8i_&{CW@r8N9x8jS3Z~WoQe1dzW z6Tic2uaC_WemUzM|H0`Uop$&555MN$`_AzNpZP-veW!l)i6{PD@#qGh{@_o1$Sa=u z`QGml|IE1hK|S*G0enBg#rJfg4_xBQ2R}UYh8th0dbNxtn@y#Rt zSC=?^<(~X_#0P%pCXajG?QrrFALxhGIseIvM|G-4-?)dbslR^afBhvd9r2b7 z%{%X=ALXC;%^P*o34W`0<_$b}l%Fr?4hJ2@(O>$Xe&#rSuc{A^aN%H&%!q4BjPp^3{5B>49d&dv(;@>>Oi#bED=@;+tHgWMA{^*KF_|L)xum5M@$sR6s z;8h&H<~wzpFXj+Gn2Y*G{o?S6y4B;IJwD-AC%yjfJ$!T*PaOQprytzcFZ>EWy=EO# zAMg3lef;9poaG1k)aCbtE!K2UVLszCOF!|&@$RBH^6DS&=uQuO$WLebzbT$M zs*m-zRa|&K_71;%fFJXV-sX~bbg<`teW7mkszY6LS>bRFAAaEH6FB+HJ*)ma9=!06 zcvkh|6OVl5cg{Wh&iHtskA9#VyyE*kf!j(C`SCpW<|qE}kDr;J|KP?Gy`JLhrPaCL zE%E864!(NVJ3Q%ke2Gs7dGTuw>IZzNUtjW*b;jWzxV`5$_36)F;pPXv#}i+wR~&v+ z_tcl}=AjiI^jAMU%_({LQXcs6#TW45UH{2Le=9x3l^;|V_T@Pik9NC$O(jTd9!V4$A@S}NY-tr~hy_Z*i;FB-)Cm*N_|9Fr` zJaynxKK<#w{`1|Q5Ah3!`uNX%{m$R=(#?Fi$&Yk$pTG6j?jHU5SRHtxD;@X@K0Ntd z;eYjd_qlv<+_#6%xjE$>Jx{wYKK}TE{^G0OxjL-k^MUvD-~)WohwsG4H~#nnKlFSE zzjOVm9{!~FVfW8l)$cuC=qI0f0RKZn{CwvezjTMsJc37m!+~${ z)We^6ve(z*!Y`iq?!yb0I=$1c=7D*EA3B`G1D*9Jp6HGb@ptd^FWl}~;l&f2;+jkN z@f{90`GBAB;k$dj%X1e_I>76lIda=Qx_Kv_`2nx{{HssZ$tQH+Q|IQ3c=+Q3x|j#@ z!{fWS^z~i6-su;*>Nhy(YR@O|^N0L!;@R&6-1L)w$FF$u!S6mli+|cXdU-$Zn@8Rq z^v)hmza#3y2fgLzM>@mLA9SbZL;2LhSNyLJ#TWO!cX)z_pT)G* z!#v0Dtc&jA;AMpyZ+s`N-yJ%`&nK_Fhm-%sg~xaE4qo~2LEnqw(m`JF)Zsl|#PQy$ ze!ftnp)%Q+p@p+0!v^^U*b`7rdd#~=Ls#9#QMBmcug zNA<|}T0Z=VgBSSmZI92(-k-MOpFhkGINi6MK_~lcddhp?VcVAuZufD^lZ}8^6Iq3e|-tjlT zx=&yA(iu#oqA&2~zW#L1XZ*p(bWx|dqaJnep?K!Kywk66;#r-144=B>J&Aws z@dn@D&f$QM?(*T0{=0YdfroF^r|vcK;2Ur1h1+{P(@&kR#p5^ntK+$IK7>=f^5Mr` zT>QXCANAo=zuNN)o~_==1DF1#qk5h5vAXduF1_H^NAxmx&0)OqiMfOy{K4tmeL9%0 z_!k#m^N`MPEu-gkA-VRuhFKGiqk`VI#k+*8;4;_(HY`G+6n^G;pf`TdcX z4)!0)qaVBzPyf)FzI2tJKj>qBUVL+&o?rXUUwq}By!cj^xbm;!Sp7YOANuGAysBGX z_thuAJ`n$)e0+vSywZ{XedlxiW^X?5*)G03@Ovj8-tcR_dv{VCePgd~dpy!nALuLi z@$Wud_<~zLKH_`0=*P$SRlj+~2lUY|^o3s@c$|B$zsv!?^ZTe?yx>=z{OA7fcztZ; z6FBq{+}_dWrg!k*jh=W{kN(wRrXR$}g`zzytr_L0sqJ(n)>%f+xJ=i@xIU z1)k~RoIkv$x4k_0mfyMi_`sk0{A-T#t+?1zJH@1Fbk zaSxw#gU5F`tlsG_epHuvH1qPE`t&Ovyz^ZizA?Y(NC$tP(V1_>(?9&BKDx-KAK}9* zKgvsQ^XfW&<>znr)UCh7=TCj&J6z6J@#*gzFYwEwKIeEc7wqXxKRm(ntGxKt2XNqp zFZ3&)<8S)NdwJxS$Gr89?)s0ec-If=S06p~6@5NcmvemLS$@BRbmK>L`yE%eRo(Qn z=W~3~$qI)$@$J5R>VXe`@acPde#DD8!Jl~KhuOFC;6)#qBlM)Zb9*?v=PSC(XT3@v zdEr)vc=}Jh^7)QWI3J6Zga5e*EQ~`1*`b@X2TNg3~#k_=XwQVhcCoe7oEiS-R}n9@}IfEKk|yh5BR}{ z_g~@>59;w<-TWdS{p6$n$KrX9kKcWFPk+hh96q|LA0Or#KH&D9uJGwE_u;3ncj~|w zoz)>8{@+%QxO|Lv@9?J{evpq2R_FQ>FW$>zo=;rrg&%+L!o`2|;zRcys*iqnI_^8( z`T4Hz&#mx@=bTUJERHLmcnb@4Y>oc%v&k=8^l(`DgkT4*2PY2Xjkb z@s)h$hv#u!;NRYz}NS9mQOr9n=|mc zCl8;}Nq^%-o%F+xy7U9xcX-5g4v%xV#5?I7KGp3$-SNn;@cFL)`FHl8?|3r5X5Db$ zi*9uCyXGD~)D6G5tNP$puN4pQi$h<0=>z%s$UT2g&>Ju20DtOV_u&!`e!9~SpZ?Ai zpD*3xU-#wL_jK^xJ^Az#eD?a9Zu~(fyj{dM-T243{(<{z_xV+Pe8EX??|r}Sz5CwN zO@8&8dw5Wvdc3Cxp5-+U)Hm<(5ufm(z5Dk1-CR(Ydf?J;^u_1g!)bovnSS)f4;=F1 z`6OQXl|P>Pj#uY&oVfTB|M%dzO#oPKltYp zc&y&h4KAy?`P$yR;1hh!Jmw@lW0%jb>V?e)rB|w z!l4hn7hk>nf=6}l@X<+Jc;&~hxcUr!J~=ENoo768%pH8jjfB12qu2%fxNk7R? zH+u7v74LAshX?bEe(J-U`kd1N4*L6!Pr6z4iFf9;`n<;je;mitZsm9U&`BOVs8=2G zxTjClYd+wOAD#1oKI1#@@F+ige0LLmb(vRu<(~ZZ_~lD=sLy@=;s<%?%s=qLDc%a- zZWT`+zblWO`;Je(qOb3--B%AE;Fpi-u8;A>cj~7nU#J&uy7Hm8^2>`C{^lcb`4Laz znD4&BiElW}Q9RJwJ9+5K2Y7dGo?7vNH+=D@d-DB?fBLK2J9F!M_xJ%XtMAs`Uft@H z@49pTSC9MRI_D?n{6i;k@u+U~(n&w6pU=!!eTxV8`9ywx_1$}O01xi-4d3yJeDC6e z?%v}`J^IqRdndoSr#|=aL_d4F;2*F2iywO96HfiE4t+*Hy73d8)F=Mm>TpjT@QWkA zy7|){&*q(e(I@hm6Z8-t4m{xpZt?jHkND9i{Nr~OZn)gD@(sUP@!_4k>ad58Fa6H& zpE}h?U;N3>2j-3Y&haKM->UN@9r?pMI^q*f^N?TQf%FjtaRbO$23zC8NP{KhYx#D$N}t9s2nK2yK^@ZypG^c|hV^IgB%#1nk#z_&Q^xDU5{elPf5Jbdw^J~6lX8cun=ryIY)XHM~nJp4&d zxZqU>UeDtP9`E@Q&-$M}-g}2%defKh`ICR)@lIYm;YGdX2*0b_eg4pI`a^s;z4y+Z zFYu~Q^#eTWz=M0<=|6b+)jfIDk05B*clTZCt z{bLUBDPGj+J$>{Go#?Jk_3Jxv{O-v6B|h+kcYedyhwhm#d^>gbP8@u>Pd_*&U;0yA z^_T~A5RXp!fnNF!U+&Y1@8whfs!n`~3$OM6`oX!p_;Md!dRp-U7k`Pvr&j(t3a@v& zJ>Bu(9$nzT2i*8|jyHJBReJCRpW{ux+j|cOpU9(s`Jcb}Pd)OhlWz9rvO4hvhj{Rq z+v13C&%fST`BFamdT%bhqz6Cid%T}?&L_^zYyPvxlY9C{Jb2WrALuI&|4e?qgoi%j ztHbZuW%u}Vw^t8d`G*hf>Ej;V`Okek!l7=ySpx@ty#Ls_{-PUx=pqjN=#CHh@eDsd z!-*gBRUUlm7ka|wTwZ>X-#hu}$B%fE559})$Fn@*@`Jbs-G@&-aPf-qxf*E8~@+JgJ*f@idX*S1AOX-RUGp}|ItZad%yGi zB0s!uiZ}hP54=;CzaxCdr|0dds&*twpJp8X8#Ko8V-qV#X zC*i`6I2V1#51#4fyFR$-zP#$k4}Iwk7k%liZ}f-$6kpv|dh^A*aM^GiMQ z~cytxObJzdh_+G@Ml#A-svC@-t-5)`OAEvH($xi7jUXqUUl266CQcRQ>XqtjCXnAz@PcB zyN5S=sdxHcKKaFQ56`Q(_!gIs)a5=t@JI(f<46ARo__j)AHS8~d;HB6pW@1^etfEv z{_3DJUi6Rqc;fG)aPbd4;1nMp=AgLr^j%-m8(#5F%f}yY+w&K`;P74^aqx+6`1ltN z{CUq8{D;@i;ZQG}-r2(=4%~jv@sDRX#i6fvcoUb8;Ih(F9{inzd$pQp{B8AKU(sD1 z;^LPd_!Dlr>I;4Fwfue;ovVwV;dBo#&gl<__;`hb&d&KjUDh2gxbZEH_v+Lq@Zf<@ zeTPRq<}4gm`g{zB`rzPCdeYl>eQF;2E-!p^1IzaJmO7$eW)IKh(jm1_<=rn7uTHO4|#o`{NlyA`t0GNj^1%PI zJ^iitm+x-e<3~E+k4}Dn)Gx1i=At~#t&?Z`axNEH=h3%NB^lup53{8 zc*h_7e9i~z)W`VYH+~QoZaiD%5lT`nqq<=_B{?jtBSkk9sD4I=V;4_anb|&wYnO{rJ(B`T`H;kMo(w zeYhXXvs>v5m$=T4y9Xa1;Lm;c;PG7?@A#b0_z(}y`2`Q~nMeA~`_pi`kAL~y=P&iF z-r-08(v|M=@&#Y=ojCkM2YKYhkNRH9j~{x=qaOFfg%1uqh-;4*_;>k!x0=tsyT3XY zkKXzUFZ41Gu6l=mev=;`>cp2i%|-9rQ!jk->3{x%lkfE(zro8--qBGW_wWP1`hBM- zzpF=Fap>vZuXysF|DE$89_Y@;<~rX_{_wz8>ZPZ8y`z`<_=g_!#-lp@9;t`^_<|F! z>cbyi`E04O|)0gJ*hu-6Vw|CCx zzKf6d*Y1n!?;CwU$D{7iQQpZTzUhNs`PB8Tc>Ycj9}a$07vHPvwD){YuibY%!{NQU zUdBDX<5%%~r;m5vd#^5iW%bTIJg(lsgGap4%ZeZKNL_f>Z&vs1y)&2bcNh+Q@ayh7 zTkD|z9sMAW`*^_@e(m`I&-nFS-R770@IF@`UJlyxBYoje7r(*5 zpZW)WJd3Mde0v8M|H@~6IH!mC$QR<$TYY>4w|b_|aPYhNBA%5_<_3P@QYZXyz-Rv9 zMLhkEH~H~o55G9{hTHEE{rMFR=ltirbMaR`z(0S%!ROxLLtm(0JU)Y4AJ7p_`0$Aj z`p}J@{B{~%dgB$(;)|<(^B8XP9A5G0Z(isZ`SD~P$fxhQDRS&)G`5%A&4uTuM>VX?h^NfG+K|lR;9Ugy|s2d;f%O@^g z{M|6$)7yN(2OZ(zTkr8lH}5Cke1U(s%sKCUf2>aN@J$!~$DjN7Ge_k0-Ci7feiQGe z{CH8fJo*(rdeaL(;`*+C_`;rV==V^5_uztCJ$z){y`%qOd-<*E6X&^m^yD)-@;RLP zU0=v=RX={<_fG%g6MuZ*e1!{7{B9nKi#PcvZ*b@X{Nj^e@Sxw+tA6(`!lh0;zyq&% z=7W6j;-8=J4=+CGu?HXUz=;?2KXu>lo4$bypKz&bey4|baIfOK55N2JsfYj6?>(H} zn-hF$Ju4p_@#9>)zugn>O?&n6o7Fk~cK6}8nuGF+j~Be_Kk>aYPw~Kq_*0j@M)n^&5tYmbiy~D)G050_>kZDhCfb<>+c$S_xTV`zf1VjpY(+rKi=a9pYXfS_Xpvj z1Dt;6)X87+s%ySm#l!F9(|3NMGoAcS(M4VOg4Z5CJgFalR=DAl-@L&WJ^7RW_{s{0 z`A$cC!=Zk4$Y-Ske0-oT{R+4IzI%@^{@`2s*sD_?xo^+Mbb0&FfB&p-;|V|N#miyu z)PW!Q;PtzpuiR57TzJHckt28e0lD^IgL;8e|E0l)usRN#~<{gKRoIZho1U}F7CngI_jZ|_;lqH=WyX$ zJx|4x$BJk8@r94oJLh=!PJBMZ6W!JATz{(1-1%G{dv(!EKHvFE9n)8Qqz?TjKYa8T z*E@5G-}!&~jh=MGKmX7f&g1HIUp(`R{`3_OfB40dy5AR99&yz{H~#S*53Bd$h|llv z;1Mo(AA9e%-r#&ecah@jrF0Zusr_9N&CFFYnJxpgUOe)l?{t7mU%5vYzLp0+ zdOCYp7-#Gqkg)1M+f}DPd|MDhxopW{= z1zz#Z5i6Yz@`--7uD*+JKEbC>K9Wa$?m0JS^xem&J`|LL61)I)cEQ4f9f6Ta}| zoSxp{!994-%FkbP3;EHE-~$ zZ`4aK@A%I8S{(TBX71ukf8BRqKDy%xe|)4L#21HdGrzjz#RH!CL4JPLU+&Wn58lzk zJ37Hh4}NuDKjBjy<^>(Z(--&>-#fm9o9_I9PrlUO^5{!=@uhFXhlfAKr-yk%cklT{ zz2+R>hzpN7XMdDW=!PeJ(g_~t_~3i-@NeD4m&bSU@MndeF5cl6emcM-4`159EB|Wc zC%&`CvwHA5@#+`+!mA#>kx$>fl>e&LeRbo{3J*WgVe)Q{_zoAI_yx`%<>xc`_z>Pb z?um~dtG?ksc)jO;_2N%F=WxPLH#*~uPhZ1_7xQEFT|EAvi}+UcipLM~nt$-%i7&jT zgZUvZ-ti%hy?XdSd^q@k|IK^4;T8Yp?e};P4<2#7$CG|=A5QaQz7wAhK9+Cp;St9< z|H-E=^U=DBtNyR;@$DRc>fsCD@r);a(&y^sU%2^V;-@qJ!$EKJp6`6$;im^5;@5Y) z!2QxYdh@&d?&DQ|xd$J9)O%T6@y!i5_ynKofP+8%Ug!sW;q$pX>czWwyL0-|U;dNM z;e|&%c#>ayb-?+vICSAh{mzHt;RBAz6W!cXr~B%a4}SWHcN8vu)lc60dkwGVsC@Xx z_bwhj_`}~3c;-`aR`2*<9ek$m`D)^)r{5X;sNdWa2TuJ&FaDx~`qU3UUhqXn@$hP1 z@R9H8kOyDl@&ms0jr;QQA)d`s`S?{{@!i7@-_rwM>Q$F_d}j{_-DV%y|4nE3@#Y*3 z^~1-H{K2nqic5FAIhXIM{P;g??>)cad38>IbDSRh#E;*)ZytK*9-f}M2M?d%Pd~|r zAG|xKr~34_IJ-PndBii9=)f=H&{sb546o+ODi3`6ogVUu0|)-$)o-7Rhd2EJAD+e0 zzuv1C&-}n&?(wyL;eUDHRj2p(mIoi|agQ&=l}}xKMn`_2hd%IovEl_k^x#Kv_*q@_ z%e8C3?9^}=>bkvvd!NrH(+tWc`;gA3DAdho%gzxAv z>zKT%SA6{g_m6nRlke{1g$~}!&u{phdZ-6~yL@=iZ}QRoxO?vFC;GTAzdFU^=Rd`v zgE;t9Hy-(x@A+0=(2f3lr$6Np4<)gkD;@&yW1%98Y|DR2+M&cXU*T`}Bq%-mk^O@2B>Bgctt48u#%zb%8@( z@5Hy~Ki~Pyd%W<4{-duxf|F0xNq>Aghu8d~1HIrntzP{GxBT$JDc}FScMl%CnoIno zPI2@Np8kYOf0>`&y9d8`>W5SP^ygdrzzc`(_VVMycl}96a|e%njc+*I*U$X*wR+*( z?eSs`=u0@%@16M0t@KbIU3}*ce83NyZdqo4YmtILXCxbdey)vZqYnx_}> zgkS!3k51}v&z?`{=RM!!6)*0oi!b>@zq+p;I{p~Cy6-*S<@Yuxb)`-xZ!XQfApoxr}Bvd-|9Oa`9{6)Xg^-0UyDIKi}2=v-;I7uRieI zJHDAZ^DiCThfiGZ;pZ#9q`PxC@XwF@1*XP{K3Wd;;I84@%Wdn@H^)pdf*p7c(IqCKKw>M@yvOD&xtE9-{Hw>KC9Pz z_~?pPK7i9Xo$)Qcd+Oi|-|`OT4X^vR=h^{OB@v5&r_uV`7i;p*b#vky* zDUUk&MSOMnZcgAse7NCIxBK+Qx4P(Oj`0V7!i8_~-NTD`>e6R);1~Se$DjJuvHPwb z^OMfL%co9$Qm4A~8=d$QzvjJo?$OcTb9j(Pe~4#3>RWZlV|9T(}m^McOa!wZk^ zc*K`@`1W0WaH?BBm_PEkZ+^ffo;`olgAV+_H|}5l^WQ(`c%U2qOuhNYT!Z_ec=#|+ z;NfRD@JbK3tiD^#MRD~D-u1P;-wpNfH=e}BKfm#lI`q%s;7fe`;mN(L?yG0wh6mn* z?oZwEEsp#8K!4za9`wY&IB>zw2kMkZeE0atxjDw4bk!GdsRz&Y@ZwoM@%4@T>e09G z>H~cvk3OC_>4k4`)W`RDQOCRV`PMr9hFACDF#q-ML+|-P-SiRPeSG44|MR}eR0%B-|xlIx8m}nym(MI9`&8yQSa34o&4T=hflodUwXn%Z+X@C9DZ?j zd${Srf72IyCXaaZ6jxp5iF^EsM|$8BPWm5)@4nT1Q7?Yr-QA;``X9%4{R0;ttnSIH zPVvQa4nMxl9k}$beELEh{&8P_nFsEPLwEJ_KmVB9boAbRd%mHke&92F(NDeV#Fu#X z6Q4MEIg4MvW4^;-UU_Fexo=M=-|h9OxeAX}9rpaR!$l`J=&nBXt3zHq9gR5p+&g^n zIsCr6Pk((x7j@|uc+G3N>MwrcGk(F7JpAGw9O9|Z-h24@SHHk%p5aj)c#=oI@}W5a z&+mAJLw$T>UZ__b-|4MC%sYKW4|5D2euHO+11|BzSFgE3SN-W8zVN<^%U9-|y>oog z4KBK<0}eb)|H3Uk-RO#M`tl83y;F~SaH^L-?eT_ZzJ*u*Sw9`D>Y=~>;tT!DZ*Z#1 z+@X&+{NVjg7d%enW?X(yzkK3(uU_@Z@7z1Os}KL? z3m);ME_$fX-h2A1WBS{D{7(JxBrhEN8I&RO5(v+8H{ zf9M{5=_W27_(vXn#+TxmTh8&S&)`xIz5IUabGlpU&2Mm7@#!8s{H`v2JLj`{@d1yO z@8FS_&U90!cRPOZM?W}y#|xbFm)D$pQ#`)m54^Z9jy}ROf50!#d2#UqpS}3_oN?7J zuhn<`M*Z@Nb>b=k`|=NNy9&!>10_g(S7w92n;{VbojcvGkN>Z0TPuHWFG zqk8c)^SckHKBNmj`7W<_yZZ3Q2mGWCapZCCz4-b<-<*v2>d{B~2k-jWe5C_^4vWXn zbm2ezs8gKPJLl@Rm)G2o&+i3Z=;*z@IQTO6;h-lTy{8lW^5Dfgeia|Dd}n^}iSOo( z_x$P}UYz5XzvcN6f4^GkZNBSMeDR6;)UkVy7e0_r{rW^)=X~NjKKX=>aPu2Kifcaj z&QIb`UE!sRKBt?0P(L2&Wxl+_;lbu_0Rj_J(r)JlQ+M^bmL<< z`3bN5pl-T*hhKd1nL6+Yw>-X!BM?{S%jfr$59rJ{ejoVJJN&Cx zo%S=2{P3ucPt}c2eTR4X)s1gHa!(%jeCJm>*sJG#JkbMwIP@nU!mS>Ae43M1y5Lp4 z@R-x$KZS>`^yDk|_}dD<_u~8RJ%7`Yuka_Y`|!bm4=ewOD?iHe8r#6eW$a&5XT(BHyru`KkD-L8NTsqPtV(Y00+M4PdEJF zm0tMackzAKC*~5}yjK_f_~Is9>X4US^xWN(U!SSVN>6^H6CCOl51;zqUS0UZ4?V=! zmw4logYeSX@6Bo7)h*w7-@V6!d-%pH9_5FRpYUOY4{!E-W?rk0KKzU~Je`G?ZuaiU z!)M~Trw)1bmGAgdmpb{2k5@S8i%)#f5&wK84}Qd<1Ks%6oaG08hYRn%zl7^;D?ae~ zvF}#-=!!4%f-d6X;l4QXuJ-Wa0iWLKi`{*?(2q~?FaA;Y`A0wUD}U$@e8Df?jBk%0 z_{GQXkMh$AKYT0>-ksywd-&>Ej;$)GyBpFTa^j-tjSCsso?+;vf0l zlZVdYsDI+;FM08$5AE^mJ-mEl&$sGQC!d*L<^+D+$0L34sBh^3hy3z-PshXfrWfDh zMg4qfZg?k-KI03k`shMmao|#qIP&uy-SjVi^Sk@<@WVs($%j|J`*_z!>V;E3s9#-p z$D25O2$%eHgP-5bC40P?AN6EASci&s85j}N-hSN(9hPfxzmm-6wsb9(ZFI{ArDt#nf# zpLmb2qj1Be@8NS_KJWAoyz0c8xv+|lfAhpS9dRlQc< z>Ba}X)pFMYu;?(;2Q(%YPaW6oFn@B#gN zpZDe0ALf?5b8+COGu_N*b;{4L_;pSAwJ;m0?9#fR5C#hdSY zyocWkKmF99@9?i5@FySKd`TZG9QYO2T;~Tk+!OyG{Pds~{P;4z;Pp;E=lo26x*U}U zUiHuq9z5_VpV5cDbdX=a!f$TSS3JCVuO4{a7uTvjyr@SUx~WSY`d5GA!#jBRLR>!7 zm*(Hwc*MW^bdu+`d-!l49=}g~0*`$DPT0kf2TpT^Z^UumcY4u-PU?ZjJNLX_<%bu4 z>f<;5HaGBZF3GDde4Q8HUS9F>rw`#f?j3yQiM;ahJHGITXFTv3|A;G|KGrY0{BXT# z?{^0;^59|O!6$tFUgc-?>XU==@C&}=@f}Wm>z=skp)0?e*Yd!_M}NvM4*kRtS6+IH ztA2ZN+=rV^;(Etl_|R|W2R`{jTz(SQJ^rFU9{E}Rqw3cG<`CWFq1U(W!>wMp_zs_V zZiYY;Z`5~^6L|L%_DswA0O@TiO;wCSRQ>W zpZNHM*LV9L#mASp@IH2qZ+xl4JA3_sXZpy)xA>%wI`jdYaERx=`C-q0_VVD7@A$(C zw|IWv`Aj@3ebt38@!;oc{xIjnrSpnk@8r>^@bjH}aMD{mdBw#eocusXzHv{U*$?8; zSN%Ku&gGZKJ@s64Uwpo%7oOnaJMsC5UgF_j9(@9jxutG?5}(iU4Yw8V?wb#EaE}l9 z>bQF0Gmo8Lb&hxW?Zx8@bvu94d;E##9en%`|3mL4ANrX-;;TcQc*d_h{H;DX;fD+V zx8cy|;(PD+$ErU3^P_WqfNS1|L;bt_e)su6-R2bCtn%t_b<&wmd~B7M&+YNaXLL}9 z`{K&$9$YWggI9U=10Tr84?lb7+v`J%mZbHh8l!{hhnTkqh)3qS47 z;pIPg<)b6s)y02&CZ9gRn|^Ta`zk*?^33}9PhaalxYh3-U-12NdCXID!FPG-FP=L2 z2H*Uq9=!0cymX+S)jRj`gHOJ6PrY!$<30ZPh2QyH9K7&>c}b5QPkf*c@C7G-$P1VF z@aZ2u^1G=%Ji)79;jq^aR{7P3H|OHf%RT(SK@auwgF4{%_n^G^(^q_AZo#iU_~6l} zvrq6WFQ0u$7w^@9XTGJEK2Vq6hx?(gIQoJgXP>;IB!!N$wr>lH;ga_Z= zSBl1E=3dex#GWG(Yf7Kkuy0r=E0#-#K38 zg%1z#;d}BXu6oq154@)vALA8&?(+k^+!t5f-qC^1aO+39h|j-#@1FYL;&(jp*>Sqj zmG9u?Ydpc{`+T>Hr!MdKp6+=3)O~fyt1fZyL? z#Z^Ba`u&9upH}hccpvZbdXF!w{^1wCRX1Mj;Z&!+K6M|@_;QX{`0znD`1Kur;Z+YG zeW*_N@F|{mbf$}b<_kQCgD-jLfd{(afe!R`?!9`=O}MPr)d9aa>f_hT?%`J*c){=P zp5H|}d1tPuTRuKA-`rEbe0Wp0d12nDLq5Lv7A`z{&nNgbH}UAZIQH=4*PM7Q4_@JN zU!C%*2T%NCj<_ct{POrcp$~la;`qJR=R2JGS{(890iU>s7rx-@RXqOH&v58N_vk}s zdGMfadWyTtBMyGyb`LK1{eHnMAOFx7PCj&BT>6;Hc!67A@~v~am^IW-4cr*|Bg}>>kAK`l&o)4{fI&TlJJb0ep;m4!+aNrdVK9f(~ z>iS)N`OGDJnTzUkF2A_y+=uJAdevz!zBqhog;T$as~$L<^M}1Yqlfo=;aom* zT%CO89UpmzPx|T;fA`?Ud-vtnuliCx`tgmM4?6HSzVNLd@j@T> z^*J6sr0;H}gS>QhUp(_!U&6sh{Ei=S)DH)qkIPR7bxeQb$2W+r zoG0PJr+VFUzPhLG=k~i*UB1if`)&95o&J1n{>baSy79~>_=9H^A20kTFJ9pDPQBvV z^Ao*&mq&bh@e3a5uTD7hm42}2dp_FL<6K;P!9gFq^4V+e;Zz^LiKDOm9R|02;?V;S zbQOmW@nG+FjE-=@i)T3Wq5O1~UtD?qR_9ZzJoNtBcm7cyUcIA}`p%GDg=cj* zmj~|2hx@+6!!Po}EiN78$Afct_#5Bm5I*rQ9zUuRZt?jDU-tT7$0Pja-TS`(Y^4vp z&hI-H4=?76`*^|+p81sSyLjre$BXxVKlmDd{NTPkcrqX4`(8f0eQJ;A)m}b4$fs_4 z$q&E$<^mjemQO$Ohq)uKes}KoLLDE&Nq2S0%RlCk{NA}IFFt%1PhE7wKVPW>Ki-ME z!zqq=;dcv8b<;t;-t!l~(Uo82SD*O&$nW|_ztT~C^i>D__}P2&${sK3;0rui<#qlp ze&AP^`Aipl!mBQL;lL-nm&Nyg3l zgIhiFddF}0@s2;>UB&gCe(=MIFL>~x@9?4yeDa@jd${Qazx?JS9C+aq`}6R72amXT zQm=k9NA#0>&hf2JXT9>v%kS{eL7npR0e$$xxxWweGu`m@@$4QPd`Ulf_z`Y--1mEa7q8QAbeES; z@S$(`SA6&R9uE59WtUfeI^u^9_!K_%=}&ue7(RNKvv^ZCAFERwe|PiqVL17LKH^+- zuKv|t{qoWWZ{qQ-K2Z0>&ky{oe(~^wFL=b|BY4%V&vv-w5s!cQh)(L0-`}(D+4BQD z^5NS#eB$EYJG#Q-o;ps#uYU7EKK@nL>OTI(-F=_FcJ4i2!3l@?>m1*F!*}1y<9zzb zT;glz__BJ>H*oR?AJK^)&7aF~_%5FN*PX*-uaDI$9=z()-{t^b>GP%d^p{t^&=tRU zc>UaWyxH>sAK_12xbbUsZqMKH@d^I%LQnjPuiu^P2Rw); z5B>0Bm5-mjmrs5CY88(z;_(Ha!3m#pyu<15BRtU;59+29yjJ?)L%;DK9KPd4e*F&@ z|KdS?eB=JkCwPKW9)1?r@6TQD#DQb={eA0hy>I1jJlyo1ALU(rSEqAv>1P%Hsdo>p z>X%PH;?sTS@|zRtmKTre)(_?%-^fE>D}U;H`pVCr?&Cpy`WJ3>SZ7{(>r;I4rTHyC zUHMR*^71);KE*S?@e4lmi}!qX-8*&NwzujxxamxX-`!WY`0%J(y?i_KtJ8gbDE}@G z-R0#+`Q&$xj`+l*`h4d%yy4Y7J`k6$@xp)dsgJMBH*xvX-xISx)C~{b)hoY#r#nBX zhflo6Gkp3=ee%)^pY-;gujpd_^RamRC7$}}0GHoK@!S)KFT~+De5(^qany%@-{qtK z`scrY>XMhQ^s{^Vbm{K+TS=A^0#LXvo#;^WX&zI`CYNfZnQos4fzw%r8 zO>ubE>A3px`{-`+a=>xuXUmbYh7kuE+IsWjS~%Bc18V7pr@4sE=;=bq)_b)#E$=st3-8^6;T}bkV19@~L>@yRT01W*&OtbL#gL z9`h34^1+K=_wd1Q_k%zFvBH5Td-bbRKhQ;e^x#|X_!1xdVeg*0cR2aNIh|MM`WX*& zl+S&AF0cJvaqxuaw|!U7OM7)YUwy|Pe#F(cc;p-R^%-31rz1bWOUFOuQkRhQo_aquO+bN-!p=%G$?itmoA&pmbQzVi(~c#mgz zz2jT;>Q{U3{JnukyomFo{CI+cFZc<6`b~bmlSe(`tCw&2U%&7NUG#;x@_Ua@_wk}G zE1j(TrT^i8lg{d-H-C8dDZbRj@A#&Jd;H+{;!W>;R~NqN4mVx+63_PZn|*{w@!*7; zf5mri;yw;9-tp)@9qi%ZL-Fuw-oxwtZFzPp9o?gg@9L9}j(DLbo$)P?xcH!(Jzekv z7eA;^e!Q4pd@UXx;KC=};lYRR@`#UT{`e4I_|@m)`HnX{@w0dzi=)n2KmS@!y6+xd z_){I`1pKGH!;g6Gr$t__8n@g^S)+eXMWrARhhs7tUQB@as#f zI_N9DIQ(Jd8@TXgm9$yr>?)@q(48I3v`}Dp|6~78SjCf{FYw3@;_)N={2&f|aM8tmbvSn)Uwnsuaq$9&c!%Nl-fG^+hkx(nca9JB z$%`-ZV9s%R7w_SP&%KB8?pF1| z=X`a}|9BD~K70LzfAdK^{OX7KUVqV%&($UWLAcZfpZn^>`=qcXQ{k`})%P z>O1`6%10Nv>MQ5);~PG8*o%V)xTi1ag}3MM?N<5V_|td&N*8{%{^*`M@L_L`;9VcU zM=yBbq#NDw$S?H3hj{Qir-yj(!2##b>ag;sc}WL6t?uJN|9JPqNZgpOUm+$xmf9l{j@$pY5_u<*a_5Vb3fRE@8 zk8^n85g$MDUld~Y^G^SX3m<;)48Q(SC!gX?pM41zzW7Ca`S5P#Klteg?}y@wuV2*d9^UXP zAKdg(kKbp0z`s2`@uCj#%{zF^H+j5=f9h=>h=T`s;g=VmaMBh3zVkgE;lh);#eWmO z?s?}sJaDL&kNC|w{rMMv^1;W?^6-dK{K1dbr|Nf4e!4ox zgM9koL+{~oj(_^$fgkD5=kU4zICS~m-aYe7Tq~X2qbnZ0vz`_g9{S-AKKb?MP4Dn6 zKAp}xrwcyB!@v9d?c5&kt9Vv;^dVl|S07&J$yfNHySn|I0=GQ)a35}U(~U3j%1``) z2mHXPkKA`IjymKw2lV}A{HW9WLzXi=W|#Q(Wij zG*9tsuH#*ws+&LH#v7czd*?nJ;^XCOI^dT+;_wUHc!FP_!*7oA$5rv)xALd@n2YBW~dn;a^^Mmi-+nZy2OJ{ri443@g)6Y3x>5Ct{tHbXo zpNXe#d;U5OuRQYdEB@7qAN?So_$S5lo&Vf-4}N}n>D}x@^UAsUAG*&MbW#VOtCJq; z;j^g=9{Gn}aF`qFq9Y%h+xX*map1&{z4^gM`bIwA#lr`_`P{jF($DJld*U8G)uYby z_}#7Q!i!ZO;!~Y?p$B~Yr#^VZ$3K6#&nNi8AN{=7C+eUB{mobB>c=m?s6&4JNe_7Z z-6B67^%b4)AwJxGx5bC=Io|OGuXyg`!#vU#bXSKuozo3|arowM`SmM(@kk#&;uH0$ zgC2NPmw5oE_wJc9`dFXC#jo(gjUVUgSFd{Dmk$p3eAfr^zzvW4`f$Y?z2KskI6u0F zKi~1JPWioupI`NlzQLn&@%0;=>bKGhUVNEr^3z{DJgA#r;lP(wT=R(U^as4^hKH{7 zn`OQH*+N+;`_yJD$)rm*A%>%gc01uq<(V0K+=$$?> z7k$SkJ>{D`$%h9x=s9_DPagdGu20~F13!4s7x>~o`P}pS=e~ONAD#IcZgGG7^WQ&s z^^^N}hMS&z^oYMEZ_x$BPKltu<6>clPne%>k=?9;@?)@&WdvM6B zulPe8K9>it`qe#r(u;o%%Ih8<<5T_k`PqHC@~QZIfM2}JOE>Z1-mv7VqKVIR~*ONy& z!y_+V@FF~8L5J$~up zySnA)KRVGCHd%!V7))!Mx*Vxb?mK z_*B1hI@sfjU%cm2c>TZ6?+pC<-aUHp(@lKsR=VK@PQ23tPWaSMzlqa1ec*!A$`|~P zPxV>l#UDP*4|70YtJ8b_QP*qr%g;}6@R|AH_gWltOr3NP2R^>QgLkX^csOl8>oK4C zRereP631Mjzt#O+9zIo{Jp8b_#}D4gr#|`gAN+jbKAsMW>mD55f9;%Z;=m=IeiRR{ z&f(<)dAx(0F5>I&=>vH2Z!WkezxgbV`1Fy7zxd{=y6y2r7w7olGkt+S^}GMRxR0&s zfDb?V>U;O-?swy;?{J$d=7Kz{dw9^7{Nf&6;nyebTCJc!AEf7ACLI* zjz93}JD<^?u6R-}Ug7s0e*Ec2`tqat;KGM_#Yb@B!TgmUZ+!2&y2X)~@8rXicjgFQ z@dBqkT;iGMzyJB~A3r&#pLh0f@(W(<#c_`gzNMuWj z=&DcY@7*fDckrs;@2)vRfB5txecVWeTpA`#FM=0r;on;6>d87xjgE^2mQ^T)85NRckkq#`l?4>e^2T6Ra|k*1@-YY zzVYFmy6L7a@zt*`_u)D&zxeXe32yqCU;0-Zc+5xN-Nzq%e0g1da{yl7%`5rEftODD zfsg2+-suPN;jrpMy7LF!?B(~ni6{EQEiQcO*B^LPzj;6}_jWw_E}uC9k2>MP+ppeF zpSY+0#n+$w!4Kvrf9iYj56a{IReSN(E3f;zdwkCcU80Y^ zl;63%dGIEj@Vy=N;8%U#d&j3%y5OCz^swhQIMjhZ^A=C)F^}-%zWjI;kKTM~T!?$ z&hdU14!Gc?8yxxyFYw?`JoDK6^gDo8xcEtYe8IcI<@Z-SI_n4L^2-CCI?Mz8AfLE= zuO2+ZIqTpjKD4?g?`?IMn|P*|{;|?WocrFJ3vlDdJG|lt5Axzw9K7R^Kj?!&v{{ZA`?@rhse;8VAJ^pFo<=83xL zYMuRIPj~m^_XYQCY^3WGT z|9P)(y!Vb@;Kr~1GC%Q&2Y&Lqpg!mLR4@O$i$C$yWv=lF-RJ@D)B{g^$Vd2xPds_y z!wa71X@!d)@CT>&>c%_Xe1~)DWN!S97x%^0kMhE=9{K1luX!OJ-ssJ*_;*h}@5R@b z-suDVtUfx6$LG%ZMnB(Gw>Wg$09 z`yO8RoVza`ocMX^o%v!Os!M!&>L>U4Mc={C7v8HwUU>LOAMu5__UfREJ^b?WyWb)2 z^#y+D02kfytUO(~)KJ4kmfACu6r=xl3yZn5wZ>;dT2eac%zRO21KB0^IZ{kfqz=d}{g5$RP-dXtypZ4B~!)NfF6p#M$^BtYc6YtCw`S_I& z_)h)m_Kv^QgMaV&5Z~qyKX`{XzJya9^u+gE;eZ!D{<6p8jxTuiyK`~iSyV zv%0U!gKzxdnLhf-Ile#j9-sK)8NhF-Iqsw&hcR$)5$qM!F^snKKEUH z=BxMg6c=uO@lM_P=1qC<3kSUXh#&D!ddDAdm^<|23-_JlSv>FYXr8U|m^<+E0Ur2O zUbxgLp8mC`lQ{6=A3x>>Uisg5`RNZgzf2z0%YVB%|FoKO<_I0(qLX^*r4RItRbBYD z!tXtwhy$lNhY$SHgPyZ){eD_q`bIr?7e_txh6As7R}bIw6+Z3xL>>B{ADye)J$m9_ z-SC)$aDT5peadIM?|i8L^_%{N8;|g*gO9w!8~o1U5f6U8Iv99nJ@C^DFY?ggr8x8u z7Y=^M6aUa1zx=0O`qM!l@UeHkn-_d$r8A$n@0_0e2nYQ9N5_Zi^&PKp%7-ud(8IaB z_{H}szPZFt_`^G%#HR~?sYBh~@tJzmaX573FDw74gRjIjkNBE?uf_EpUip4?&L_Tm zCqKOSR>$hS`+UIX<{MtrOK*O_Gd_28Y~;KQ4Gotyva5>MTHr+$5eZ}IR-H+`#aI*NlQK7a>aI*M-(FJIzo$Co_% zK%a@PPV?6HsRzFCjCbFEluteO&iNc(c<`fs@9&ET5B>42F8zTI{P8#c(&t@q<ll6Ud z)7^Lc(3QXFx_hT?df~$guho10vFaaj@PP;U;WPL6hwtRom(IV2*Y5|PnM+o`Z{Fhv zPJDQeUp{mX|K>h?&h<0Bt$4?S_^07lpFJNPbnbT?Z~EW4KExk9^tbXCzVIj>KKY7| z)oZ@-zkadOQ+&M2&kuCL55MUz`PIQU_~tu(ODFfl@g9DC3@?0mqtku7t51b64|KUgd>gF4LK!0(4rw_dL>ZGG{b>qogQI|US0B%0xclEo6UvcpYw|O9r``*L% zE1vNrAO7(zKK<39pI31%Th(Rm;~y^mfd_B!s)KL&g?{qjmv7*dkG}SB!J!`fsDtkE z_G``s#!c;1;Sc;qkfyyJ6m<-sex-N!3k=tXyP zk8jOSd0)egclW&KKi~Z>crPEHiw8Fy^rt<)s25LsKz};?4d>Lyd-cmp4}AOnP#i1$ z@knpJ!i)Oowu)n}xTl}Qb8mMap7ZwR96jj;mw5VJJo>0xJooe!ztB(J-rFJ>8^fr zlYi7fUwGtI2cG!c-}(AM9DV2aK>g+gzQpAp{LvR4Jiu$!uXKXjT;mTo#QB&`e1jkJ z&t5;-!>>+t@wqzmCw$_(DKCETFz=mqZ|1d!Q-1p6&HRHCZo2cAc>|9o%sN- z$KiF3SN;*#cRKt_cfBQLu`FR2USp7xh(M{p0MrE{f`th4AJV>9?{kw8+nb8+uFCvQ zSwHfdUU1rvr+Jg#J@kQ3F5xpD`h4n~{&+es&vM5XJe}vW_i+0=fZueH4|$Y7=lSYc ze)*}c`$Ap5;f)u*?g{(o;k~|a@lSs2=L6m0z{7j@8P4b{L`Bc`q{@%`q=L~ z-}vA@z>A*dN*(*WhX*fn!gqb}ptqb{#M`Q`{c@n5dEk#+smG7k>UyRRe`X*2^9vkV81-NL@bQLqGYHTXl}>H+kY~^&RisIey6n{`ju;@dYmLop;|lM>oFl z(Hxlvdbzjc6i&ZO`pBX4@=6~oJ>ij8e#jjj?kRfl$Fn+cA(*c=+9>3my3F?+<+VWj^fV zzj=cPKliBb`k5QN%&(Q-?m>L$0vBHNwGTddloNBvZ!27Qde85}{FiI{?SogItut;Bt-*o}JeZKf1xoKXb}={-{SMxu>@kZ+Q7{m3wo^SA5~u zmpt z^t`S=U7Ww~y8R z@qvEykZbwm6JPj54?N)VyKokMxYUP-f6mc)caDDM!2LgU;)8okU47{7{mh~K@y&ek znO^Q&KG+Ah@9r^u>7%djeB~b<=tpNb_{taO@sdM*>CHFy7XA1te{{584%OkOee}hj z&-{}&dYMBy837S`03ex&vaBDJ~{NAKX~IQPkh$TGk*5b zl@FKY-+aX{Gt*5L0x zqMthEh7RzX5B%Zu_m(>5)jcLh>hT{=b>;9eoaTiN@*(Hy`;HHM`of9d-|Anq(nno< zToA2<`hrd?5J@Xe{KB+5j z{D8-*-cdYWTFnh!e1KnF{<=r-{#zZo;-jAV(8nqt`rzk1ALvBKxBAgx_v{>f^^p&H znFseV-|6I;zjULs+&|XWK63{jAAFZLI?-7!=>!)&=)UTwzkYcC={w!{%s=(u;y)eD zmuLQ(EB7EA?oB%I34Z+W(idLy&kud%-Tb?EoU@-Ue1_M4ImI8|olf|8=8HVjSDy8k z6FB99kM0e)@Q_1!(9a5oym{~ZS-91gQ*%ZS`RC*0PY3?U4IkCThmLUL3$Imw^e!$6h`0b~gbLzt9 z?;Wc;aJoP6KxWzKRW4WKGdZLzUsP{+}A%wT|T*w@a3mf z{^b%Ld9qI*_ksHkKYGZi{pJZDI=Nr?BG2XtzZEaPmvoXVyzP@Gy6O9^I{c#tzx7ua zetpfgXL?!b!B>9ik2kz@vCq8ggNHou1x|XKUvogeJ#^!fxsy{k=tCF2`<<3w^X1-w zTRr~cC5QImqYm6N*YW|6+|gGby3iRve$Wfv<8<-fy`{f=s4E}(@zGr2<-FX{&px?@ zgKzR+pZiE3zQHROcv|H~e?0gnr|Q9>o;=ar{mVc4%8T>nmk#a|^CO4y0Uv&HqCcPE z=a+u`az8!iCw<}9hpzbG3lE>Uz%y`kD)V!%Gi-x;NpTeVy0OvwMkd^x_A7@iedW(w9!o z>*G5<=EN#j_|ui1aLO_N=nN-a;F34>&6PaDYgO0%?%Dle{{4Qz>AsblnKL=3qnvu) z}=C6K_?dPYu z_VJO=@Te=t_Q{85b?L9KIiKJe6^4|uxA_46K1{e5@u@Xg%O*FDG&xXgt) zG{-*&-qkZd%s<@ts?UFV@Es30ednwG{Dn(Dy5Q&U2|DmkUg2?0Zuun_@aaPzc=+U; z`%PbYaUL%^(vN?1SI0hi*2n5T!CRi_=IzMCWX{??B!t7p9BNY3n2U;g<) zC%J%^KKiQzuUzm$9_3v<_3638%YV6XUJl$B@X`-HI?iV~(N~|D7dYinKfKi8zh`yL zr~Pz+UtY}L)Z01x=mQTwt@?YWi@x%x9{u?SuN=sizjx#Yem=?DW4_6?_nytWJa~o! zujvCH>EWE*;RT=HS3FL_1&{Oc;+YS0@SUIL+Vf>~>1@vB23~s6U7a7Dw}1DnF5T!w zA9dZs@S10Q;q-gq*>~sX9P7u=!*JcU($zfhK~Ct8&+43fTJgY>9`LH8K7aY*Jl^Kq zN@w>a{vX3bcfNe+Jw4qwcss{W`^}sAgO?Nj_-KL0sQU@_2})sn)e;O@v!nsJ$||; z%prdG%OAabrx!itg`V;x$N0z>AK}*@{)vk|^phVvtZ?y5KffpRl{YJ$)aQ#l+9#Ku zowKU1pL-Tw=jnu(xuCDPu+rzS+<2BZ_ZS`Qv(i~#{_N_}ouBmQAHU=nANtbkYxRD& zPJYh)?7N)Z^-Kr%px;CL<=7nHzdBEEe7vWtd6j25!OwoU;n2_A$-8}YQrCT;FJ14$ zsV~0Pm%h^gngchFcvg+*b2oPU){cKIT<@xuEmZPd#(QKXdw&PjoT=@}wWV)#sxe zI!}Lf>19skKp*(br}O+b@A#S`OtoR+y{QAR^Q<=-~2U~aLFmZ?5D@y>dEg-&+cF2)1 zpAS}g`<>&X^Xkeq{CtJW-0*`Q@XDk5?gKe9$MQ`dy5qqoeDuQ`56^H-och8eXZ$v= zc$zbL=d<_jL;d-v4!rIoedW+T_26)h4}7PuInd8{e0F(}Gd|GUoYG6)eszu?_Pe*- zPkd2VuJGVLALt3c@8;Bes*8tJfA`@-INeWjs-F4a3!cuyc&6Qq!v>z|`2|wkP zo-?m_s-r%f=1^YX2LTD_Nhc<3$va(tVP`tlP`IhAv|$mi}no#j9sb>Vj&E_tAr z^Zb@?`IHm)2;JOgzB{kK9NR|+^L7&t`r!|!)jsv$q6a*5h10z9i5{!I@*u}>s_VR5 z%Y{Ck?b8Pj_k%ug@y&Ps*hf#lQ-8uMw{m2kd4Pkyc;aXN=&HYahY$Rhdvk9;eduKl zopT@IX)f;L!B6))UF1<;Jj^rRR`aTky86PSp6_z%oH}^%<9B$?q5X8no8NfSMIPh_ zfA#TG7hXQl8}1z*ebjT#?>JogIwwzX$+29RPdVbpTYc#WmuI=O&s>;Oc<{vEIe6$M z@1EroeyjfK(uMyk-15U`xXgk3PY&hFJw}KBrw>fnzD-29ul z*Y_Y^bf7of@?$>Wat@!<>hPCde0Oi)v)b>wdq-V-f$@~P=`M1 z?C|++{`im2tV;*_@k1SR%m4*IJnPw>D=A3nJc>k| z$GqFeH**4q{_cIg;t7|W(}TYDt7nCSuW&f0F5Huce8A=YqdR_nr_2?8&ckhv+(YIJ ze}2QGpZECigHJo%^?T`=-s=0VzC4*PeCR8mbdxi<=;B^52Xb;34u0Uv4|&Cle)Oc5 zXL#rbCmrzc-g!9Ow{(D4J@cm?JXZSPtFC!-ALwh|yx-|TH{bE&hx7D?TOB&8#~=9Q z4-db~>blqYWS;SGFW@OZf5Pv*IdIRwCx7a@NAdOEe&_#I-+OxS(|2|7qK~?G+y7i$ ze#5UXAMKZKI>GT)9eLo7y8eE0jz0Lm@4S8HbJpjBdt-HuuXxI>`wT98_~jWc^G8>_ z>~l^ZdRpZT9z31r3w`ONzx>-zAGx9beZ0-3Ie|-V>4ZOB?DIQfKHT$g*sqWL;Q_~U zc<^w}ePX`w@ZRt5N#}Q~yzvhnxu6?de4#&nbZ{O&{>Z!U`0yQ1_oUKK_|+ef`du z3q1HqCppIJD1Dq)-yG6O?(yOiKiqTryC?8?s*hEFd9lxYdR7Nd`qM=}dY;yYj`(>` zNBPswe&2sr$Ngk3;rC2W`KL4dbW>OU@y7!`IkZnb`PFZS&;6mkzUGFn=0}d@Qa;po z&b`f7b?HJcIOuOxPksLBPe=HDHy`s^UAoWv1W$df@YC6fhdHJ@eOLOL2Xnw@{Nd7H zJ-Mc%die5#zwqcI=l(93zQDm3_a9x%1^nvq!`#ZDJm6(N9_E04N9lu){KBt4zs%e2 z+D?hCl}x6ga`n?7_t4i{bBb9Cc_{rJ#>u5!T_{~uOw;)2iI z%RfAP#LqtZI8SHwN)n@8vLw_jhmrKk6v;gJve@`2CZTlF(P{KJ#K`tfJ-;6GjQ z_j?7O=i~HqU(CGeD}VgM&%DB^zPT`Wa)2K{@pc|=e$h)k_2DqT&U?S&1t1V(C(|7X+zx$5w`0!0XIvk_}KIVfybokvq=e#!` z`tiYBIA>0utAoFKc*>*qbZ{T+&dUisoRdTQ)SbGTN9XW?j~{%akDT)NH9UC3%XjrW z+Yg_7%8|b2SN^BZ^uQlaJk;gO3MW2%heIyZ^K5l*^M$|o(!+hAE`8OJV|ekBBRO&3 z@`>Mg%sEt_zVN_FFMaIuY;N_z%RKSHJxC|-;lfW|%%yX5fd@bPtoYMYANh9P9NDKn zJ@Ds)oYBv{AP>%2?Sn^tyyus^@l!v#`W>OWI(W#tKITS#eK$vV@Bx1F$v^iGefX=6 z{rCU;_mBQ`(_aqM!wYXZ*ryLZ`g!kn1%B_{Q*^?^^XG8VZQ`T!@&)j|KyZb_4 zI?I{o)qc64oBr2*#}jV*;ot+E;G#QS-KXZ$Gh9~plJj!K4}7h3anBxy8!qqh<2U~1 zl`j6?R~HVr%$I%e@z1k;axXXL9uDu#AKdi8$9(YDKKBy;@injV%pX2ZU+L*QpXl;$ zx_XvdIfH|4<^W%MJBPQtxo7F3E}ow8=O_Q@FK_aRm%4IIZ~N&2Cp>iIr}Oga_mj`= z8TH_x=eu;YA3uKMqrUxCzB#w62dDG&;Qw6Jk#D@z<2OF~!_7bXsV@g|>;5u7a9h>k zk9@3nd6p}Aa=&`!C*2M^ufFqq^~_hi;f4=i_~nqlp3My(KGpxV^+T&U#urY$$%%Ue zPIHIPef2!6w|X!4_VK~IS@BYbe|(n%b4PDF}I z$6Gknmq)nh=euY4>A0%nJzVsH2R{2wI%i&-5<+?s!Ua&YoDC{2`4?^aSu(r&bhD6hn#rto-oJosEg<9KljP~#AR;Hzxx9|xaC1^@P`*3 zb7B7E%gSf_`K``fI@+(l`&XXj!FT8691r&fKKxM+FLmJN2mSf3uex;iOkZ`Z`0@o# zzN~-#`zNRN!-Y3I&ROBQsSf^l%gMLCtE-Rqe0^vioaUc?=0hJo+Ak;euj-jQt9hiO zK62^%Vdw4p+B2NyT>j{y&d2uCkq`7S-}Hr_uIijt$0|Sg<0}tv%8xmdZ_jwsA71y{ zuCMog@8pZW&dY&wp5dSy-{IyT9q0<@ML5g{-1KyBt@f$UNBijxpZaj(Ltpje0Dk@4 z-|Dz$4#FX?c)Bn2!3R#hsc)|74v)HY#g`B8%71JMh_jkqayl48W>%O3q{q$GQIePeeNL@bC&v$y@k0<>6cFunK z!$%K%?dLb$R(wCT;^m&=Gk<)?cjA&`bMF43i(J5gC%yD@Khc*CaJpCUFJ!`8#vYF1Dx_NuXKc$Zu-)NzW&adeB5{Zly^SE;aUFaVZXfS@7{r1j^Xw@ zAUAmN$NW3*`&&7K!`$FO5AV;~f7MEVzSGyeC%3Ep_&5)*K5(c*U-P1#`$S#(z(GIr zi>L4M;aNXA($)Muh5xXXK6HVL-tgI{uJdwr7zrkkso#F zM`wNfE~w)?ALxshoZh9UT>k8tpYCDvX>RFcpStctIfBQW@a?)jtM#T;9s2sNKOg;$J z^n;Uc^!9w5FZMt7tRFsdOox;9UA4l6pYQhbLmj_M@{d0pzN=#{_(>Q0=s)|>UmtU6 zpLsMN`15(r6`t_I<#*{KJ=CEioxPW9=iQ^8;e}s)d6XOH^!Z+Yb3s4)!;e3H@<<>0 z@*iG#;`_V$(NS(aTg{W-Dfh+hyzlzMO;2^ruV;MaX3md1(vc5zq#r(XroU&n@HIc4 z>FXZBkIw3wTX~aTeBpJT4}a5%9(wdt)cX{B;L%8^9KmELipHI%yk3agGGrxcQ;xE12 zQ*8vd~>C<`N5Aq@WN*<<%yqiLI2O;_WSm$XTCWHuV?v@ z3w7aN=07x}NETmwT1&aw@mZ z;{}ho8$R2PY3?XjXcQ-y!PpjuN>0Z?~nR&Y`(1K)%^44DE!{j(LJjlT<7gK zCv?IWAGxBhdBR71`{W4@_Y+<4#Yax)f`^>Y10LtiCERe?@4aU_d4~IH=m4*MatZH! z`|+f+IiM%}@<<=w@%AilU#c&kp6LSz{pl=cbav0cPd|0&CkMakEC1#PFF4Gtx^#EW zy{w*oatA;D&Z$c$d6m1b;oGfzIPMv5zIcWYU-kIn_ZdHW=p#42%awELd(TI_>EJ!y zE8Nc0;kozfn|JGB-_@5NxZQ8o>-N*retD38{e72fe!}CvGpBf4<k3SyL{1y&YtP#epUw#yyS_F?ge=4SD%0Uf=B+J!$)`e zx(DosA7AI`ysLu;{_ycp9=vxisbe+ga>EyO>BATM;jqt~;ztj8;+ya4IAcDGG zswSDz1kKW_C*NBHHBKm4T!JaCvdI$70o-{2{y?pJu|;+g;M zf9LdrOFpdp!5<&G$hki91gHAuO&!npt#q^>9yyU~{pokxIX=_V@2-9FAfMjjH+8{- zu21#Zt@zOu5BvDZC-cA;^Tb!Y+z;l!e49i2t#HuGs=j`7@!mb^9*|#iMHl_yQHS2@ z>BB#B;GQyXbTSWeV?X@#;*Ypv(L6A%FUw z^xk>(>2lV0b=8q4=lRC})j2ww%c+xRJm8iqep<~7y}s4QemLpt{)Af{eAPRx4xjiA zkN4{EhhCoL4h}x)2eO`02c>O9y#^UwwYdfqm-2@4GyyBUkvCcjx$Qe&t0S`Zx>h>j zC0G2_NAC1-4qx-bCwain+}cM^^?k=rUElSE%l+ei=9_)+@!x#mZJz)9^WQ(u=3@8W zyu-74uZ}tP9v&+{`9Meca4(t%zX$ROx99Wv)73nf8~E*mA3k{GLH^-*sJ?rjkLp^@ zi#dQFPWb31r}BZP_vSpRDk}>F@aIGhX-~h67Hz;^n=1aPtKoc{DftwmQcj`sky++`&Z; z`{jdQc=&Ff^s$eQ@*@ZMU8RHXaJw(z@g7cjKJUDK?k(Txe%C%L{pb!S{B*^8>f{`p z<_Hda0@p1UY5B|_eo!x#u zy2t2;pFGK>eSTNqkQ={S->c78eLXt|2VEyleBpv)RiD1cJbn={PcPrCe!u9ZK0b13 zl|%l~2M+t-=MO#HkLs95`{@t2bLJCo=bh6>4)MWT&h(czD;{_|Z!YwOOAhh2|1_V~ z`Im0xw~B3FEKuUP4V7hUK*@i@mP_ZVN`bl=kx zAHLwB9~@Tw`Q`rd{dcJG z{hs+tKRT%MzB=^6d;0OQefZO9=F~lK(0)2xk3RAw2l(B!k3aUwf%{*7{@^$BA%FPN zLtVW2qOX-6=727r!U+%j^w5vK{N%fHbfGJMcJ=WwUwF%(efa2SzdV@}-}z)7@LKhy zC*Jg-pFGe;_n6Z{)AUu zxarT2yY@Lxr3#;#V(-jVLOCR%1AHKlnyZq=2 zpLw7oz4+z5`-}f);in5<=|ERL!F|*@&v@f&PT)IizkO@;g;%cmuMWQaR*yb(`%_&$ zUG@x@`++WWgNsk{>3%T>@<=bbm>0U($1i#F%=h!~!J#f+R^Rz=KIo1gUVOdk9R1}H z55Ft!LwxB3pE~y8p}#un>cdYus83JNc+o*V_0g9eaM3|N%&%uUd`ky;f#-C*mpl6F z3!i8B)P)Cc`8laR{p6M|>dM1vzq!K~p09nEFLm&8FUo^`aOsDKJ~!2se|XKCT$wNL z+bLk$DPkO=W87_GE%pcGApqc3efjVH z#v2a&>1N*aGiQA8UXJjDmmhFh?bC1KhX-GCW-jSUCw$d)54iWtk#lFmC+F$%z3<-R z370wJ+iCmxfw$Z^XKvuaOOEI&2XIW>?g4qU&%Gj#^0UIn|4%)eGy1@x{@3=I8~Wfy zZ#d{q5B2bsNBHohuesnmy!4ho&(7(y!#lsz84h{luX`9C-~Uz*ZaUFL&dmvb;o=KE z@Y6{j`7j^!qbncPUE%Uwe|7ZnyKA25PFMTAhZC-|`q0<2di2nTp6bgp+}^7%NBr_k zH@>;Qe9(P(buzik{`L{qdM@JFY_i}__}}ahKt_t z&+quq32wQQH}~E27f$yrU(}I1`oIf6-|%+7%H?@}9Jbo;{*pgB!OcIo>Fhnfo!5Wr z$Y*ur(mbk%m(_Rk1lMys+L0f9d(Mm49-huV?42{DkYZI_mP@ zN>}@>@~$4-@+Ked5q_)ZJzjYDZhq({Px{M^eta=UbiIq8dU(pAT=>ohxU8!>aMGVo z`pOSI%!^gtLiDobTGlXS~dt_xzgv${`$bqaS_Dp`6&q z7dbQ+&chFfdhQRoq8FT==`TNU%B9tPVb0`=Pk8h1G~Lvrs})bV@b>~8^i_u+`l*XA zUVO$!JvpTpeasbK;rCvS=PGav*o~Tj_)!KX&i&r!Ss(=mVcs9X{Jn zfAfN`-%&oehw$^B?)u8t&+zJJZs4FdANZ&~+)vd}SFU~67Z2~%ksE%}(R+T-Q9ji3 z>>U5;g`Ya+fiC8@k9Xobb_$?{bWv{q!)ebfL5R17H5hAAE4>_cPwk*=KH? zm#gpXS0At4dwTGfUwG1!zUtDG5BRF*{8@eewyswD=|>;=r6*qI3SajIy{+)eFJ7~s zIdot6`$ivq>5aes_NhZB^C&O$nEUx4A9T?NE_u<%d%2e*zMIdT&UBymzTC@^IhGgu z`2h!A;B*cic`!%(^*cfjxYUJL-ucN#=lSU#fX}@s=W-w?^qaYY(>}V$10VIJ58U?S z#ScE|Cm;I3sSf?<$wxZL;YGg6q4)6XBk$&wUiRs$9=!PQkq>mHhx=I_ywr!A9&lZS z-+iVopYift9sb&{FTLbnZs`k`T&ZXN)We4!a_(L-r*cRq&+y~v9R2yhS9y9%4?emt z@wZ>@;NzE^;;$b3e3yTH>1Tz{etPrId;8pTc++$0L8pJ?$shSr2T%UvrLP>iN9lx* z^L+CA1P?#xw8H~8JoI(H!7De;^O+B?)zcqexb#=|WBc)tQ+~J))N#Mav1j|>l4JGF z8(jRuA1*%8Q(gMNArHU9PZ!_u(GMQ?f}B5fp57-t^9?>Y^y9~E`^~Sue8j^&fVVu* zM}K(D8JuvLC%((Q`Nq?G=lMGO!n5K5=S$D};AIZHH#g?pKF{=#7kbdqJi&#x{dCkv zzW6QoaM^G59$q@jKcCIBKK8*o^@ZR4U_bowst=uay5dVGxl|8N=X{4#Km6z+PjVnn zzRQt3<7=gpe6R50B_9vHcg}su@5{ccL$9aa)5jd+W&Y*ps{MGHGjmQ~dV0oF4(Q>Y zvEMTv?4z&WA9G|sey`!93mrVmkNLBIcTOKZ(aT)WS3myDe9%))-QV=`efs7;vC_eL z{ouoopY)Nt^LVM}ynX8OQy%2r^QY?YUoPAW-owFXb?J()`Eg&+gWvc$ub=wr!3C$B z+Q%3Dyq5#`<-q-8KIKy0;Gw%!e{%^x|DEFl{pkT0J+s{Y(;HRJd?oPrB)M zn=kxV&wlp;-{b;r=lDlwa|)-t(h;9oZ|Wy9l}Eb6$rt>rbdn4BrXIfQ zZ>~MVA%FaqPrjI&!}RAj|LMRlI8WLyufF504?gO{&2RTN9RF6=>bpAp=O^9qR2LpO z;IDf`KhOB$a}y5vGADT0FHdxVgAQ`zyYuvi)4a%syui7_<99)S&-{=pea!=1;Kc_{ zzRQjIfJ+YL-}*gV{K1os^!wO8{G6i~{Oaye7mw9@=lP1adhqBgN9tc!$2s-rO&|RA zv0irGGyM)n-FE};%$56+k8t_@anGoak8|ckj_CxS{NIMdJwYe@?DH(2=5=+RPx9gK zWA_f7;lh_6aKa~V`18X#yw#N}{&>$fbHNw;@z&pdees<6w9k2S#TWc{`rxS^pWuSm z{b2e&OLe-0;x*Z#d}!Kb%&$_$^oR4WIY=^4)trz0}uzC+GBr10SpV z1P{2KbHC7g-f!mJ{pELqA9R!#y4mOVMt!-oUtKut=Lekn;XyBY^F==BLvQ-g*UBgP zG}rK&Cw1K)_&JX^-OWG0W<5OdS067c|MjB>Up(_4uj#wIsq4PR$N5#x_+d`r$5Y>T z?Ux(RaOiVvp^K`Sy5r564`xjq1@q8Ly z`p66a)HlcUkwbX+35T4h@4nQZj&$LxJn>_Pj~?>GAGq|>$3D5^1D)M3^r9~w>P?(- z#TWhlhErX<^~2+5`{3b|`;cGmUHjyZZ+tKZ@XEK`(}xc7tS+DV2@n17veLroGPB;4C50`u6zVrI3V@`d?4_@=89=~?=?4$RG-kSr@_~CC=*L=t;-}KW* zZt#4r-)fa_y1+qa@9DrV_~@*j_s;VZuRryrzk9*GBvBtXx<}3c{%aQN;;URzOSnY!YUwZOO{^W>maPyZw^!6+d@R}?8+)H@-E+6`N59iDU zy}XBCPUOs7@(oV9!a*1K>1e-u4SxIiufN>+eQ}O{-kT?W%9nlggOiW?smoXV{EpBO ze!8fGA0Bj2=e%6=O&#Yh`mWy3o_$xB9;@&2^}c8P^tTT`_2m>Vd6xru!Jm)j-8s1B z<0c&T+XuJz-`mF@-^~O6=tpn<$j3ut!TOGLZbKd<=pZWVEH~PpMKX!fjaM!cG zr#$sDQ+hxg{geSoj?emBe` zKJ?-*eDqY;?;73U^jcS7_&)!?*P#y2( zSRZ}yxvGx&Rv!=F&7pf?caASs{oNP~#>@z?K%dBqn_a|JJac=AC$ z)mibPKOcQR@4K8hPgncsjTih@xpfc7rSJO4se1f84F{b(t7rb?27mhaJ(xPeU@l z_RG8e@JwF2{_x=MJls|}yYAfgR&~vj)jsn;Z}$v+SWK2oK%)Ef3z)6CQt$ zdB4KXS3b~JPN)96bM#loemwQ16aVE8KX`qIhu`|q$-KG8+$YcBqVMbrC%^FJ4}HxI zo$%q0`F7rS&+zjJFZp^4r~UZxXX>gSz4*-+et9pyR`pNn3$MC#q5~Xsc3wUG_=ul8 z%RT-Rw>-OF<(=Pf`dz^jUcR``=t(!ZlNZnQ|C|nZ@fB}6(gQ#Di@vKmasxNKa-cr^ z?!DQ^dwTH6c|O@kSKpm8Pw?>z5BIlyNAaK|T+Z-NB+o#d)2wq@Y72jI{MCE`GB8)@W>^caOnTLe)N=6 zxcMNLbmkNN_<)Ccp6z$f$+zbA}bO-n_|^^Z0$QJ{)-1=h!P6xVM&wKBl^mhUM+z;l)-wX1>AARX6 zNA!RPANAx!p5dB$(L=t~mrs42qmO;&Pk*@JkPq_$k6by&Pk7Yfqda=1qx0(V#qXqf zqObn^kPG|iIel;+;KLty^{0<{($_xy=|)HA@#CMlb{>aE{-;oA1kXQ;&}3kREiBd-o{bd{AG`@S=nJKpydfpYC#~9)EnN6TJA^ zH**Fr-{^}Ey!3(xUi{6W-wFE27u@uwFP}WaD^GlN-tUL}!3m!^p&uOlaIeiec$gnL z(hUxJ;K^V3oYRjF`q_`C`;eX=|M~A9UG(So%niQgM?UeC3%4U7zc7+^QbFc;F?U`Z#AUt?=uIFP`Sie8I229O>iPT<}4Cec`_veB85g z!WaH}|JphCy482Q%&pwZgFNz!f4jQg)02jq9-g0!*`8q~!_1>KD@uKr|#0O5_;n2_b`To9o`sxQaoX-7dzwaMXECobbz+`^8Eh zeB_uP@Eq5dZ*b_ZAKv(>&sTH6AG*n_e)Qn;S^e>$hy1+t9e+6KD6i&9Zq!#-f2)0X z;K?_u-!XIP{(z5P@VIyAj6Ypo&+@@vzaxC5zr1+w z+3%HH=?}L&c#k)|)G>E_~n9zp`QC;{_dzF|L!-w`7R&s2leHOp5~n%>c}-c`RW-i`tXDA z>Y5XJsK3jPIrEGUU)9wQKe?21IGm&7^aY;l`pb#Dt8XsM2_Mye=sa9_t7AXC@P<>~ ztoYdHKB2oD!|NVVPag4g-dy{xKK$m-{YD?Y=!-Xfe8&?`b?Ga|aP!MN!TFq?d~;52 z^z<2Ssne|C-Cd*+_&oJXU^zqjxXA$zk24ucm33x zIDb}0E}WyQeA1O}`qBqqzU!;L{rrZPzj8!ZIOwLX{c^w$b4MTh;HRtp&e4_rba3C< zuf811m-Fw_(R;k*kAC*?iEi}Zx18#?t8b+Toc7TRZ+xygZ@(Ove{+d1U-@A^@j9xW zx^(xI3DhQe^1Wb%f(Uq z=>orJefiEe_2>wXT;l_W`QtCVaNr?FzSB{Ca}J;Pa!WTp(it!N>8?Lq?k7B)e@iEI z^n+JE=q-2Z$f=ys&pG!4JnG5={mg@N?gc)`r~P#L7=GvYDlb=kr;on$a39E@bM)|@ z?{K;w@sb~Tg4=udD}Cu_UE$P^kNUVj)x*QRW1sr?$(wz2l1qN+Xa8Av=<}&(y3h$< z{p15qIrm*3-|2$St`EL^mVft6`MlbvEflD7g@zZ?hx5Kkq`K_*enp-^8r>lH=mJ8?P2Os|MQ$0NS0SA5)w>o~0 ze0N`cj+f`7p7nE2Og-h#y#a?l&ij5@T{!Q0b|0wkz599k>q;k){H^3#0L$(-PC)n6ZczNVAhySM3j*LQvC zZsn_c8BTrZBq!$HJ!F3T&g}Zp(Y*+#^K|iD{^;(#+`@|hcXjw@4&ASO`VtQBoudyO+%NRwzx&x7n=3xj$$og` zSuWtAKYnryr+$2OUVVPamw9u}Jkg7;c*-H3zRQo59(dsEelT~w!*9;?drE&e`R%d5KpJKl25KR)QI zuDOzDefbZ+x#J^U@Kwhg&=+sG;rS6>_mUNVD_wnu+dZP6xq+Lmc*`j~_Q6Fzb?8J# zIh7xN%)G!$C-;N*{DFgh`qKF|eLlDP4v!q#2akSqrjz+mpMUb>-jGB4p6ic~dxO6G z;J3NO6F>J3e0Zqm{%{U%{_00Z@A(2hAKfqfmuq+@4)5{*8*lZjblZK$&;FC%^My}v z@{>+@@&QhI&`DnSOb_qPsa(scdrSV|{}E38yoX1BIy=v2-^~x4c+v+>deF;vbLJdA z&Y64p(MK-n$!Gd}h@XA*RmVK2=kHQ^G;j9N(SE+_D}Va)0S@y-KlRk-hdSARfK18o@KEB~& zF7T8)x|l<{xF_)C_q+J$C(n4nEx&T;8K0?}@80XHE*|=sYdMx1x=y{_EAk^B@_;|T z+z)ul@pb&4TIoqg{P=G_yuPb1SN8Af^4YU~{8{be6JO+?j{3<1obcdxQ$6qXF$bRA zAAD7hFL3dJZ|)y?l_$Qd=RN=6SI2kf^nrsOvkxDR;>mwL*e?hAnsf8AJI@dErk>o= zpC9Vdn;-b-NPJsfnM`k4!Q_>Ld`^z)rxR`~e^-0lo1cdzO19;OE#^BEuWY#;scq6fTu zmIJ=g6CeKbP5#`Y_~{D|ALL72b>Pw0Ide)Ey1~mYIW(W@m`8op<(vHQ$DG5X4;=Q< z!Me%?KfULhdsKb<`3nc1_$v2&Q;)yq8-IGh$)A}|b>K8l7xB=~J%~SDeCIPfaw{)* z@p)CBuKw;(hrjN3KFTQ^bmpgfOh0w-#LqK*%r)Hjy0_=O0vBKO)1M#mhL?K$kyHA6 zPhaopMJM>-mT&&k84tYmqo4EU3QqSMJn{pV{_4};--GJ&4Uc#EzK8$nxc~HXUpOaE zR{QuyZ*|~t-u%gp_j2OBzU~Ko)aUnOJnVPxxj)sVKiu?@hnMQmS6_bN;XA)q=iC?0 z@!!32(>}SSm%PG-2YmLcZ(igD4)Y;@aPifB0+$@yFK2S1pJ%@4kEg!&=?lL){DX%c z<`+-rzowV{a>5Te;vZj}pStVkzQf0=o;i{$yyT7U`r>6DJ>2v7@!9=M?^zdqdF7Ki zR!^OWbfS;*d{SS2;j|BaeAVTj-$_2g!yh?t9zJvD_rf{)z_-IM|8nZQXTI6zoO!3G zeBzsQI4|B-}xXd{{>Ghl*a(dS@zUtEtU;FrAZq1=*yyazA zUykJzKJ!C&I{)gN9I9)M%_;rqZZ&6kIR}SlKCJrbizi*xqlet8V>RdIiXZfIAD9y> zKk3FFI>{Fu@PLyJ`l~B<@?^Dt#~VJYy!d;{KJV$Q9vtw)>%HG$zR{VUp5@hk`7j47 zykA?*51-+2AK-5vKaV=EKfLllUvtN|-8uJ|^YTG=b>KEva-pBxz-9jBMm@U1!56%o zvtNGHeeuwT4szifU+LwX zJejkT@WM}j_XGa+%bRm_Hs_w5mnZt!hmRF*zo+`T$M7&$a^@U-?h}0JtL|ZZ?dPZZ z^r4?T=u2;TXyy$t} zemeOs7ku_C_xgC|hn(og2Xk^;KX`Y~cpml4ANtVOKKj$qz4EE^>Rk2=zxm~px^U|| z_o+j7e&In6da6fP`Ef7UM?ZM^2A6)5r+RPk!`tr+A6MVyL|=NSD<|+-&DUdf& zp5{S6xaFTN_{!PTQ=a&(o;vEn3lBZvRi9q?)6MF4jKA(Hxb%Ss54p9EKI+J^dE>A7 z)OYHqkDQoa_W&NR`Ku4#=*tgv%&j@G%8m1Kv8s=!eACxC`I9?!Jex0d;FEKD(9d`E zo!8%7d4`AI^rkDH3zzxegL^_Bb?JyNAK{f3In!TV{pEtb`k6zy z)X#qRC_Z#HPwqW)#!ooZhg;t1te?8)<>sVSUg-j-efXPG{Pg7$yz0R*^Ue2z`t!{_ zAvbW)U443(D?Z32-Q`(6>5He8K5`=m&VLT)ZlxQ3c<|>_`}n~p=kS*=D}Hd913F(< z*J`e;aF`SQ{4UW|Klz})dj*e~7yk2wE-PH-Ngnt{N4oIuu5)~pYxf{rc+gEWg)qCgM^UmW%FDssWKdug6?W32~KKjsCJvzw&o!tw3mKVJF<9EP!{mdgh z;G?5+@_?7VJAQQ24^Dm5Gbi+r1AX0Jc+=Zl;;FuTtZ_J4#pc1gHIU;Fs_6PG{%&puZf+IXrZIUw=H{qX+%e)6Y44<#1KcIXvV*9rNfO zoxV9|F8IWc+xnO%I;rm*zs!r=;p@Bo^rI8q;I!{+{pEc=0v`G_YT?pJe*H(%7X&pCbJlmq+l zhZ|q`<-^>$pW%~R{=)B^9Mi`=WB%}P&V52(_~eZK?gMz~V4wQ(XCEK=Oi#Ih4~|tH zrhfST={x*<@LqrY-nW11^U!JAQ_pqXS~kp=YHkq{7w%(yGQtF9^sHXc=<~YJmmoo zy5Mc@?1$@fxZzTtp0|CcH~pN0>#}|7)9q95`3g5&Ynn_ z4j(#w>m0p(x0-*eoU6AwPoLd0Tyj89_pzMNLq9y}=R9A0hg%Ny#oJ0hdcy5qvL1$8 zz2lzw=RW1{hrX*n_0u13bICV4;-kKNnM?Qls-L>@Y(JcE$jM#j)VJy@hxXBDcTRuj z@SSoNWGao)W#{n_nTpRV#OKXAz_ zz3_*hZ{FMIzBDg>*W{9J@}-VBa39OL{J7tpb6@C7N4)vKcRA6A-+0qe{^=~Ia^zVb zIl~)I_~E9r`ufT--QBBr(;HrT&7AT9Z@Gk%-|`_3?uS)A6|+F z%By|w_%45P?mZplzK_9ryw|e%$WuM%6FK_Z{#gEVMmWP@}iFUp%)$gq#qtXddAPQK74XN(rJx4aO1C^yz$fhXzt*^NB-pQZ+-NG zPj2Lo-+ZB)+~H@w+#h@}PyD1med$k6{p^QBe$0#g_|nsNtM_=BGjmK&&+}eYf2SAR z^2R?n=?WixoHI}Q$T$D^!7uY92l6Lx{FhJpl7Hv;!Z+WY*H`_CS3da)Hym`L@5~7w z;PksnNA*4HWB%rSBH#3(C;Z;i5g$18;g5OZpZ@YoAJ23&U+~K>pUsuJba^XJ>Zzly zI`G*CKfTQlKj~`D<=*_rnflJVU-+pXUFDo^=4RHhkM8iRk3awT0>Aut@4n}c_jsvi z{>(8w>7mX}cRH)*9KY!69>VLW^Xiy${oRA=Ip>)Ua&12Cqp$qxV;}$ZH5b0~g+6et zftxRM(#Jme#mC&jC%>oF<%8U*;~vJ_svdpm4nLjcQNNS=xzD^;4`069M^Ajb=Y#Wd zA&>NhLoV!t(>`@4FZV26Cq6#F;hC@V8BZ%+@RJjIyMN3pAK^E5?mhEj?&yp+zP|I> zdHcPWSGl0O{OIStdCq5f(0BHur~6G`tA2hL{XXpKdrv1i!hz>&`}sQWd%n|g`s>+w ze##Yn^wS?N`Q@XW&|ALDJ%8PA^quwG1N1eA@bHgM?sfg?0x!Mk;l29-PI}%I^w4-K%)e-CW6+JowHR`0bYu`l>INaKgh+{^`RH{=h*uI^e-)`T9~G z`9x2Cc%J9*qAy>}5nOU)Ui5Wez=yBCGZ%EC1D*IpKRkVhi|+7wHh=m%r>>mCNeB3y zcaHCPv{O_rkmWD19kAyPaU|-8-DzjFS+n+{^`u$hj4jsKVIgBZ{`nvy!eQReSGJu z`uOOp554hmAIPcqc&n$r9GiRk(o-Ke^;h3Bz4%FY@8waxy{9K!=D_=>^phXuqe4`tj{4p=r@lj7s=}Qmi z@Q^qA;XbIIzbEJ-XZq6Des$EBFF4?YLr$#v$Uj~1a-Oc{NY3bkFMj5d|N8mexQZ{_ za;A>F@=f01PC7+rmLq!5)iWRLgNxp9sEfCIiXL)fox1%=7kyXHa>*xk&8>aD z%d2{P-PPk0pXu*ja!wsNvLA1GperAo=LekTSMELg&VO?wFY4-tKc7CvOC8VdQ|IBN zmmKnye*88!aHuD@^2p!IaPZf6@8#Bgg%4cx;J>-ym;U(68Qyf$Pj2|AuKoDyFW2_b zh2Q#_FL-vm)sZK2r$60&mrHp0gq2azRSJy`shz*et0jx{@$RoI&k32 zA9d&izdV^!c~{>Y$O9koqX&F`@9g6Pe0Vy?PxI~fkpJ+jXW#4(xBhg%mmc`&kEeNc zPVVXC8BhMe&sY21E9TAlPvyeBU=G|1=1^{&=ac^U!0q>GRiAG7nLFS4sV@EGoNv2& z-n(!0gPR_B^GiPYrtWoh-&*~i@XtLWFZk$Z4(Lu#bH-n}w_hE4@C7dQta9r{>ZI!p5fc=r#D=3X}|CE z#)p3D$QfMj3D0uoygqV?FWvAq-*j=F@80W&-&y?JTlA-s?{e+Ee(oW@nBVW!)fa!? z;W}xbXW#inSNhPC?sVXv9O5sB{DxaT=to~TIs zH`n;7_fS3S?%DlkrH6C$dTKwstLNRSzjIc%>6N1x9< z)6;pm(ce7bB}d-FK~L|^BVXK8{E`Pa_&)pNK~MGc)yEvjEq&$LeEg0#U7Vw@y7rk< z_c(v-`%pb~^rs)5_L&EHQ6CTf$-8HL>4l&Aa%i6wPxH=a^XGn1N6tUR3vP4jnJ;{G zuh5ata$_Hz^phug(wWb4Wlo%v7FY3W-4&^nXAC?|M1_n1EL!=;Y>>YF#`=xNUAr_R^v z9}FMl+`Q6(kA6So9Srt>e_xne_2HwBdcK=)^Jfn5^Bx~{^f8b8 zq9c9H34Zd;f6w~z%X|9M4^KXO_MM*2(GyPjH`n^Yi-$bo36JmcvCD-z>cYi;`GG_3 z_{k6Y;`g!o_S2EC>d{>tI+!1L`S@5}IXmo`FZRg+U*zBY0;f98nRET=4yXHzZuG^| zobyq?Szo^1!tdVqUOo2|Kj?bUIs54+4|MV#AAEP`>2TaLAK~>L&WrZZ)!(!HrL!E$ zH$Uj9uYAF$KHcy$|8U5kKKzj%Jn8x+-0-M#)BF2Y^~{UB@v+@JK}4_>~jW8UP?e8{hS(8K*_9^}sb0l#^0o(^=Hc=5+a zAM<=!ZsZ3K_2>luYCnGTlMlY}gFouRug=s1PCA>1nIk&sgZG#4@c}-3zxSP<>cY4C z&KJD-0H3~mQeR#5-1}C3;AM{88}yoY}9w{Ll?Pc=3{R@9}nT z^ZjS~(UmXmRr;u-t~z*`FM7DI^u-51yzu5D-@Mn~IrBO7^E=_b^PN8M$um9mlN&iS zPoA&RiC%Egh3@=;S6%hwMxH)am!Il*4>$ercVF^}?&{-dzZ}BvUZu17p_~2gclgXB zojv0TxA$<$xqFAM`uOhsN*D7)Pxw6ZMGoC_eBi$vnsevjZ-$cx$yh%{dKsV zqo*9GgE#%<5)S&T>cIoAKJYr{eo|K*e&`Rky6$K7=&K*Re3S<{_j@G|PvQO_-F1?c z#S(;J_^ts^8bJ~j7C_%>0pk9bbO*lAB+k)Eo~p`>_`1j+-AA7FvEQ@0{Nyt}aPbiy zIL+m%FTVK0!FTgzUioD|zu@BUTlM*`&-dQLiHF}~xrW2N?mQiQcOD+R%`g4jV|-QD zIs4of|Kj1C@6MSg&+5>Tet4T#x|uh=_--!zKH@D`_?QbhyiaGm)s>UyzVq`_&-{@q z=O+$);Z_$PI>BKdAI+iue(&tt!sG7+{LM4G=7k>c^40xjr4t?T(9e6h#@n;}$sM2M z&OUX`0X=u)<@@RxF7NSzTi$%9FTde(pUH)Oe6deH)uEU9vycAnD?Irq&-(EJFY{nO zJ@Mi{Ui36K=GZDXc*-5$@l_Xo`FTojdcvbVJ>^S1^MWTm=E^sI(t$2J_1Dinc<2SM zoSBc4&QD%^!JB^WdphAoe>pH${Ks2g_~Dih=i!APFLm(qUR~$u$X_{tS6z9f3qSFf zBRJ)PZ@$YT9QgRXa}Vez=klU1z0}1MK0NGmzj@Y2zVMWjsXLvWHwWr&n(eIc%(G_2~`ETyw zp$C28aqg^s{=Sh@`p64B-or0PbWqP+@(X`+b6;P0ta7U^-0I^gZ}R`6diK+m4|K&- z{7f!`Hmf-Tm#} z@%M%2o%*QDSNh5q9_soo7wW15FTeDYKe^N2d-s?3^uU8|{KgwTe(_IV_2~I4-s+iu zxb(YkAAEc<&-9ij|4&ngKX93A=jlf;I?_#F^*!@NZs;MuaOg`%zL_`g)%WbXxy8c@ zFa79(AN+i9FTlOh)k+8W9{SE#x#A<<-s|I;4)UR%xlzY{xi_De^_LU%%qzX+25x!a z<5_j+LI?fzp|^a#b>FD=J z?&M0|=t(d4xBYAAD(B{d4(d3MKRw}-S1TRh_B%lrKG8#8IlK%XedsG+`14(!oTs`p$ZA@L$gGp%4A!l`irOw|(vf{;J0>x_Rc8 zd*DmFoRb^%;Gz?s>9RU+PUMe2_Td8$-#q(!k3R6I=NUfpf)}0ea}V>;Grs)f10VIn zTOaS?=7XHVMOW|PriXm+&wjY{gG+9_mp^%+zxkD4eLcfB_2wtt)G87u`ayoURD;?Z-&eKtT_=Gn-;K5TJc&%G_{a%{e&%LL&Jn{`cKG;W3b@7ll_cR^U zQ%4T1?iJsi6m-p5%az@Zd=|^CBtb-d~k2_!yKvO{cU=wLudNXfj)i@=&P=Ca%G>nu(~JtkGJ0?JorQ} zI(-T+{`%`nfA#4v|NNvQp8C?89_9%izhn5&&w0Abo%=*?=>We|XiQ*G1>#j}G*f3%?(HhQt-nG3k}rz=0@K^;27r#~I-gTp;wAD{W)9`cn}osV*1pE;2m_l}&J-#Mpp;2d6b=cjq5w|!Q=(!qY;;o%Rw z^mUG3^6fm`zNeFX($V~yXY=j*^z~15)LY}3fBI~F=ZCrSJLC5Xj)(U1$9ensiRYX{ zb@)avIaW^{I^ya6;ji!NnLoL-%C~-asQV*czIzWpJ+1h{>-Ww*42Sb_GUvc|^MZ#u zbeR6rmk#Q?U+5|SawdoJZ{D1<4<9*|W4WONobcf7yK`{p5AQ*`>+77=T*|v==jjKp z{(O9|zMS~(-lh9$A7A+dAN|dRx^y#l=7LW1o>YhKZ}r8Oj_{aw`r+-o@A|9nKJs3D z{JzvzAJ1|jhxo{$Il_xCTlJi$uYAJmemQPGTzqhj&V2O!Q|ItjM-JiOAKm0e4&c%6 zuDa)~^mypm>OJ51tRLOzV;>**Yc8CF!yKH}7q8VbKF;x3uI;0ndAsPmzV?|PKHxX^ z@eve3dJCf$wKH-N*9fyLr?{9w$EeptrvALT9?c>)z+1zMj?N@8|HE zJGoNNIeqYh2Y-CzN#6C71Acq9kN)l>Jm921ochoSF8aR4OC5gD!#+6h#uFa%WFP!+ z$f0L>l3)6`f8fU3+|bi^`So3Houjw>n>RS#WQ(GMOv>aQ=Kcgu z;lI9k(sk;6Hhj?MvG;tZ3;+0or`+(>JlaQhzTszH=%YTIe6ZRFkKFo>kGlGQiw|D* z^G)8j_VM?yXML^a$9<{3du?^j{eX{t=7YZUkvHq?M_)OhKRk4Ye+vhl@ZlHU>iurN z_x#caANtEHesqvS`rKC6{5nT3dEg(N+#Al}r5`@>&R4wkF&}iF=ke9wYCj#|rH4M| z3vPTb;%z^j%`e}lZt%$~9_GWngO|KJM=$v4f~Q=0b`SbJptJi4Pd>R1;qo5dnG^Rh zzx4N>9_Q&LH*??WyT0_$SFWvi7koLun5dvnG|Jk*05 zK7Gxd^L*0Ze)pbwe8%51UF>(i!0lOob0IHu=f`FKn1A=q_uiWW^Pvu2aLBLw%sKwZ zwSD@?4S(Q;&kCP@d{f81E!_N(U-{>g9J?RPIohHJk+0f;NS;*Q%Cv2&+iytoR?EL=sNK_2dBDt`n{D~`{kBD z?lZpe$9}x!1wMStCx7U!zh{0sJVj_SgJ-*t7&!*kDc zo!@7F`|Z=0&hY6ghxpNz@8-ob9i8W!`NB&dbI)(Q87td(o6rl&f(`hJ@JrRKI!kiq@$Id_~A`YzX$Yl&Pso|c@C%F6X(?R%m?r3 zq8~i&ANBDu|MKBI-R0FB$hY_Ova0Xi;0s*N^V{=NeDQFeuI@3udFHeI>d=ioAJzAa zH$UkkkLFn&I?B7g?hpA<-#)zQAb)e8XL`^RPC4WQ{p8C&c-*V{(T5K3;X!A-^^*hr zIjh__?|D_v{qH@$?RRgu*YT$}9q1)D^x&^P zf9lIu_Yk~CedmK*)5U(@=^%&pTlM1${ndd(US8_&zJ-S__QR{MeClK64_)K}K6UkX zPHySW2lt=*(R(gjL4^LS32^6x#r z^pPX_!s~wKqrA{jUFWRkR}T5e7xO_Ub9Ea}y6{OpJN`R@B?r2q^|dH$vZvy zqaQu#MepC?@_x5x{=ntDesIDix9Z5_%sGAa#gotKnkzZ|8Lq9>KF@ga<-C1z!cX%e zXZFdDIioXv>YH!--Rtm9{p6K??l=1LNgw&a13z<*4?OnqNj-Xb|1CXyhZmozkGYWp zdhk!)yyu5Gb3gI#to~1}>id1Ar+G6^&acktiy!=QY1QAH$s_;iP0xqw%P+s^E+H*o0hzW!Dnxuq|@ba0-2&ij5;oz-f- z;Zq+zdBltF>hMS2@wlkI{`ByBpdWqZA8+;HghxKqg?F!hepm2!ufb&w%q<+wZPhVX z=9S*+z{z)Y;gM_mE(BUuXJ_Jym*#p z{LBe`19I30nmGAW7(-tl{QrCX-W$xkUJ6+^Ye!O>|(M|5$4{!B{iw}Ht zpYesB@+r}KR$H8Ury-EKYa96&s_KpAKm%KA9(bANH6n52RW4oxZD?XRG&`j z`;IT1c)1t(U>?24$9(JKyL$$n$9UjnpM3L0Kfc2Sr`)SUfAj5LhL5iFhL?`&ukgu> zIguN_*$+2=@RS=o_#^jnq2Eh=oinfBdQTVq)p7s)XrE{Jj(fjaCq8xfr2c#R=`3gV z(?y=>!v}L^b)UgwpJ%!948MHfKl{iB9PWR5@=-43fv)tn4?p;v^GugN>BA>_=nFsH z;OCD#&<8H>@$p@K^Xggt`6lP)#CbWSvmDrO9%g_1)iFQxa^8FMWFE|ixySQ5{rI2` zz0`w~eiIK~&f#}jeR%jM&v01f6Yh`BZ>_$&U**s~xz%4z;O7(kaz}4{Jkx{D&Z}oG z?1xW%y5jFyF5u)39pnH$zcP{WapH&_H!-cmwk$*X*zx#l1 z6A%98*h*h@@RUpUEx!8VXa4zWZsp7ByuNbmcZ{Fz8~gpf;isQ-c-`h3f8nN=XMN;O z&iFuYD?D^j$1~pM&3y&;Ubyfvuj*S$#x`PE-tyzrNI`p{2Z{6587f9Kp6a)=L~&5wP2wU3YZTH%LVKYGZyd8haE z3x4nEY(F35g)a2;jK6vD-LrcePv_|EJpJJ34}Z;>`f&2c^W+T&ebrIdcm15d%~w9T zx9H6eE1vW;55CjeJgH+|*Mbcc<|r@{dcN&*J>_T&vHvY zdRgI=Oa19vY`-|vIG@XbnB`r)fS+;GY{U+AYVJ-cG zT+YcOp7b-1aPozZ>eIzJbB)(=x~^7z;85TDFYS|a^~?)>_#{7ccArlC>dTWH%aeNe z*k}H&a(Na``r@ar`GXfu_kr_rDHood-|FL8eg5gsU-z7TboSmef9Pc{_S4$sxbYp*--@eW9LQ(GySo>4cBI6URyZz@x4_m>W9K z7asfQV}%QT{(Y~XI-bp?XW!-OpmTJk5B&ZffL}el%%2>>BNuQxXO%BL>vItvx?1@u zC-BP?9{l0E_w+Phe1+G0zk`0y`QvxQIe5$q-P|W|dheXMr{~O-ea_**KlSM?N5|<# zZ}0Wvr=039Z~Uhx9DJ6ytNOshAAHS)oT?88-+fn)zI5d;Uhu(jSU6;6s1D=toa0J=}wM zs^h(We3C2p^r5%8x`~&$vY$Wl;~7u6z|X1=zvM_=zR=%yK6;P8T;O94=-}RzFMRNv z`q2Gzy!BT{Uhu$6o~`&h@0`Cwu37$$#>`QK5yS~EByAs3zvIEj`?FgO&0ep0ld*}S#=>tE$az-D#_$k-w(x2Yy;OqTsx~L1UIdadbFW>T| zj=t_^>%0%>=RMx$*n4>JmhUaRe766l_ww(Y_xSKf?pNpNO;0@K{7d`z?!0q!;4hw@ z?N^r{c*qBy_PH13f~>!zgppN&a-}W(icz9cz&xM-0Jgd>$`LC`8`s{-z9j<7k~IEe|&*kj(nE`emRea z`$)d^l@odJ9#8x6z|-9D86N%QYSxh>b3q4q{XY6TjGpdEc;$?4N9pdp``UZ;+$-)e zIOzr#Uh3>r-+MXqoi6SnI!rwJ&_NzN<8P(2KJqKC`pNy5aPrGJ{^09=mt%U!A6@At zKk%pnj~qHD?{LyV9sSH79r!Jea;+|1@P)%FZ{|d<;G@TGI;~c@zwOz|Xa3tyU-uYY z{+R=~w{X~}-gWP-@=X_hIZqFD=qiVB(~mCZOnvA1Y9IXc^L_H6BR}-J zhz}hnUU~LAKu7QC;Jch3S66P}mmBv9zxXSM>f=Kv`oXWBc~XZT_Tx!UxXcfI=wL3) z&E&}+=V!k8&nNfV>Cl^A?yKK@x5AA-obu!Tpr>c&R`u}y+_U%e-FmOSIl!AP?pgN~ zKJqtlnFsH!e3vKr(N{hCm|OMa!#VoMJ>91s&e8iU-t?9m`8D@+qci{E@f}XOs%Ng~ zCx7&SXX>rLeCv<56@T+%AD`*UH~rM5Gri!#lWuaZ{-5--U(VElk1zP(37>tQ>8~Dq z^5VVu^nD8t9pu*i<2xMu;Ey`=;wPT&1v)qn_pIZda-Q${n>TgfHCOn-uO6Iy=Z`$| z**-k%zf7l(R{3?GIwv3e@N9Lz;w|^`<-7Ovb3egtUh(!j#V@?+;5_}{)ej%f^2G-$ zJ$%Ot4)?aa@l8IS(hpzvn*DUQ-%3x<@VZYzXms9$|C697NFTd071v!u-b>u)lxa9>-b>s^k_pf?%rI-DDr9b?5)6?AJ z;rSpv=%}uG?k#@OgP(Z7rw%{ir@vgfH|S}fRULDVw>+6k{hgb-J16JP@eNLS!c$+q z@=bpARfjI>(VZ@GEZ2N9PjGGdK_B-8e$LZTUgTMxda}HJ#PF?mXUfw%-cx%)i{x6(2m!8C~QI4&PTe zJiCwNL?8DRz47I<{_;Wp)9T-}y07I_4&agpdBjgH%mp0$aGs8E(-D6B_+yoOIlxbz z;PLmsNB`n$iKqm$gx&%DzKAG%LH>8!r*>iABd*^i#nf4bv$o}ci@v%IM< zxBQ_m|M^OXt-AgWFpv1?WB$$0>Ky;Qcb$9%x&y!@z3Klcv2bk_%d zx%e7>=RMQWJzyUAXcV9oz36S8+~54+7hUKn2Xb{4Zu{uMS9znS{5yxY@A5BC^y8m7;;Xr) zoAZ3OkN)ucF6VgDnSS(!Qw}`)oihjWcakpp!3RIwbmkkL^z>bx__b9ZPWa)YGd$|Z zf!y*5UOsr{GauBk4g*QFq++44C!7T@L#FGx@$$q}l%SsPA)5-UV-*^66 z)i)3D)5jdq$6WH&-0sBlPpk9r(93!C;FmZ4$N_xjUR`s*S99V!-1p(RYn}V$5-$Go z$2_S|cY3bs^3{8JJn#E^D}UvK-hMaXpaY)p&`Um?_nnWMQ?pKnL~AnH=a(Cpp=|#c%hm`H%!A5{_{P(^uv>1 zc&JY&`^}Ge;G^^W^IdM}qCTDBp^Nit=!_4a>B?{W<;Xrfw(98*kNI+c%Exp2)%)7> zud(uF^&W5g_~`ph`}mI6oF~4>4Sml$ua5gezV)$>Z}i3=PdRko%Fkte@cY~|z3BrV z|I}AUKJc>-F8P4Z^N;!+wyGyD_{q22@ZEjm_t8Fj;b)&5&|N(~;fV)bS(8D=-FduS7=eZw_HF)dio}ichR`&}0a!tqQ>dLVk!An2Bz`;j6 z4y)sSagP6R>c=m7@Kc`o!5@0d%hbhwb@X>m?k6ugZQ;l7sAs>YaG6&;)T0}|c&Sf! zKJi`Od7sD~9OmyfT>R&Yd9#lm?hU%hD?j9dANH%aQ$P6OqQ~kxoN|mep7d~km{0lK zs-wRBa%NuXZ%+7&hra5|x%cjKeffvK{rts~e(J#I9Q^#CGd-RE6Hk823%%9j-(2l8 z7xbo&xxmYJK6=JWUd)YL@e^OX%(wIIIX+qKgVTBbyD#YGz5V7_AM=F=|I8gsQpZvoi_w?W+o#-M*cz90_{qRv&KlS-fC-cc)`{kIA>gxNY zJh*SH_R$}1y3&ar`g=e7!;QCl!TgvHc;wbTzR_Dg?R$)ezH-2SeSf!4Klcot-uu0U z+x;X5atn|7p*J7pOYZSA5BSrSfAn^r$%j1g2VT5>#!sKUp7oIfK2058+OH1&czcFR z9k}73x4!h`3qSR99v*egk-Biun=f)G*YxxrALrDA<1pUNn>)UFj~Beoo10Y~bLrVR z`pc=`EqUQ9{``HfF1_fo(|hv=C!OJP9v`~VQ?BI2T+sdN4JUkf&3W_w zM|GT&2YQ=Ve9X6JbeFTLb|zMkp$Sbg^+98bN+d-AhiKRLBeee>jA#6w;@ z(}(W(^A~S;^}PwF`$HXm`Ys>x4)4r~@8)+^-#+tZ{^-e1xq#bhzg*ydd;&y|;hrqyE?SUAE%EUpks!b=BKC#~(SMm;QWHUmbn%Hkb0}ySnhmjXM02 zfAdRc_m_OBBOma}hkokw0bh0D{+tf-ryd>o%P%>RKRGae>e0(Sb5B?J;5O&-LO<`_ zyKtMkSsxDPehi=0#}|I@;r`Y+c~e&&{C>Je^l{FLhg|T39&~_%-}>>5u6&?}d&+rw zsz3L8b|2!a9vEjt6`{BmVvmC**pMHF%(?jq1jJN#Z<#$7W^DT$;aE`v}$_KsVOn*8%kB>PrzjT!g z&wh{ekrO$#;IytY8TI1KS?g=>QW{&8uA0Op}-u(6+e)^g3mw3WW zSGeGiclnTOzQe5_-P}{^%A0$OKUVwX7+)*j=6N}Ep5FYz+d28NA5J;D8oKboy?`$r zoKsIeGpj^2VpP>X;*a;gkcphF2ct$v$c9hszi05LyS{K(&4=%FkbilQZ$7yHHlfyA<^Jblck+~DV&_wwqT+|$o`SbaY7 z*Y}gY^OvrE_u&4~K03&${NQg+=@^VKul>eEqP zm+_KEb*<(SZoI7WNmu>l13u^Rku&)C0FUo~!Y4QUkr#8qZ~o8` zPIGGh@RC<~@H-{v@R&17@uXy+_5Ag8Sobm%-I`L6%@Si%-gZ^-C;h?vC z&ih>6>OU+&wRn>y?cQF{B*zJ2hSERzbE#|1>XFYM?N`c9wuJj)uEgDQr9~3LP!1F zQ&zn3l|T25`+Yy2Z>?J^-}L4CJV!4$@s&@!-K%h$GrT?T*5B`vdEpnl`r7YzKz`)k zvz0z@>gzq+eBd`dgs^bATVc=;@sM3Qu{I zGxr7D-^0JxN_RPuKfK(t>bckC2wpzf2M1hu=;!_9tuEc@<$3nOi*N9HHrMWF>r4FA zlNUOhcRuisPI4+A_{b%^^1vr``Jz8x)x|?T&6n?U)gLd<=2`xoQx7k?@B_YsbfTks zNPgj?-)cXd{NA`H%$aAa-&MJDzvv@p@~e;Y_;{9M{Nxc%`tVO~>1V#^rjB!TagN`7 z#zTJakq_tH<8a&WneOr-7y7{OJ)XXA`N4N}@N|w|{HHg+@Zmpv&huNIuj=cWo^<4c zc|UEx`E%d%n@)164nA~}BRG9mhwkdoXJ_E0A3S*CLr=b{JNxn*KDv2!5A)6aIQ^if zm4D8gGyeH~(#QRa2fgLleaR*5{&q&Z$cuc%7F!tMm9c52t*Z zM|J7QNBrnS7yadd9&}aDeJW3KqK^Aw#aDm6%LiUlAO6!pzU(tM=JQv5=na>g=mQUY z>OXd#ujU0#I>S$Yy2yok<^m5Z{orz59<2H}C!ct`XVp0fKc4v0XX`ti@RJAUCP(_x)jdRC`{9)jeeu(uZ~UeMJnmKdle&(z_g-);Mx(_h|Zp5c@a^(H?0mcT}|_21GPFZYUb_`&U29(OvgE}iMA&TadCx60q@nQ!p#_g-H<%ZdJz zr{6*Ou^(SJxaMm$rF9? z@?EardX4@bR5qaN`LleBSesZ_{_VGpGEd4_@Y5AJ6de^*Y}4 zmP2^)eQh6H<`8am`3yHc_R$}Ht3LFX6Za_n^~V=(eB5*J;>Ulv<%@psHhgKt$APj#(wGxy;MpZ(@h-s$$IKKjxRF7M?CPX6z99v|QN z4L=|F3>O~sH*b8Nb@81(s5kwxpFjG`=}!3d-Fn8~{o`J=zPC^A_zH(Q=0G2FDED-s zJACdhI{L1UI`T_*=T`XWk1t%F;g@gx^pO*KsE;Rpazy8c`pdm}hR1uklmqzW)O+^` zKg_2beAG`py3mi#_RHH#=hTN&omp2d@icF8XYOvQtG@5}@XPnre)9&8{#NsVzxkt= zXF1Z>efU-%{@bq~ALR`m@73ckTV9`dN()EBSka5^u)bW(?Y`onYDdEebz^8L_vI{UrV zk52TaE4)XYhXY@8Dj#x7H+kc;zN>n2p^yFg%R8U!rwhbw!&+5sY+*|R~2Y@zQ%>P9ANJ|TFZ|V~kKDq|2X*)^hw@|I;ZYZF`oT$OeB|3X`s!!?=Y4^% z9N0%s`RBWS<^WH8_+ftR|McJAe;2Lvv-+L!JMi2-=ire?KI0>AbfK%daM}+Sf7ILR z>semCmn%NwtFG^S@}58P4KIDwp^rSBg-3pNd)7x?I^wi&aMU31~te5nH;TzoMvbTf~9 zqPO22tA6Ia$zpzReikZGI6UzC;5a^ z9{A!uf{#A>Z{dd5`_+5*l+}G8xAyD9fAE!-&p1yp56YjfoqXYlcp@-a9@sT$^=x3kr^qo1SkDNItS8zFp zx8HH+@%rtFMr(wzT-(}{=#dH=w+Yx?hC&28*X*v-gkZRgkKK$$9K5p zhi>Y@p^y6$u8VY|7e3ybAHP%TsbfC*;P*uC=w{umpZuxMclz;xuU7i#2e0pZ#pkwu z>dLjb<3C^UUY%1{KGl&&{pb((Tj%M9xASz9SF3vNU2`N4>f!~5`g}H*`tZe^%By<( zIUc;}p)Q>6bvWn^KmWbAUvA*zqxxI@;f058=D~ePZ~D{2v-)ta>YF3;B8U3$8(#bI zy04Bo!UrC@I8O(D>g(A)=kb?6^Y0lx`lu)0-uu0gZ@%LRw|dqse(JhE<7F@ErwKXvVwU*F9y-{r>gSxk-@-+AeDwD$xAN`1b9n0iTHW(je!)u*^MU7TKOO9&oBr_e%Q-yZ z@m^oKa6ifw9&q46clG!rPxj+^5Pp2kxqRLBT~7GnymRg!IWqUxoyP-z`TJKs;pQV8 zbfue|>kF5x}UecTK1&=ueL>^+`%Z`HeLb&d~y zf8~Y${D6n<{E`QANq67*s4t$LeWx40<%Uo2(T%S9!Kn@%oQKaj`q0;RxcTI}`h1|9 zd%->Ay*X7EPyXsZ@$(4}`qE3T2laJocPPDbMor<eE9G z_|Ff0`41=j?i2U<7EXE{_l&=~^o7HIxtluZk3YZdqlf#7@4oX3U;gtGZu{xJ!cRwh zy>|`|IPim;KX|G~4|Cw2nf&0f!ikT2na<{3pLs9Q(fth&%syp=!dt3wy}2E6*x$K0qdH}Zm){rJe6yz_%jc)*2^_j1oq z=lB8_9`LJk^xxlqm#uK~OP=HtUiI*!ueqR)dqe))HyuP>*G6I z^yN4Gm)z)<-438_8ngH z#drJMSNx?1o%ErndVF+VUFUrF-adKYH$C3MD-ZNBck0p?A1goPm0#u!9&?G0XT15v z7xm1U`M_rjx4g&|pUeS2)U*F*=lPDeI{5moA0OmIeYoXGJ*&F>cE36Y?|ZoTL|?h) zmwdwGy=VUOQ9r)n=e~7M;3a?jp)23igM$wIvf`(%e86QMP6u!IHY8c)8BVxmrM2KLmufyM|shQ zKlss4-tgkPzI>W`nJfI|YVzUZoKMeugU5UI;M2$4;g1iUc}CoeziXKv+(AM&N{ ze*5vpi!c1$YoENsK_`9qOIN>pa>-A8eCM0G^5WS_XMNz5Cw=ha51rl1>ce5~otFnb z=mRI*>d}SYe6gOVpIp#Yf4rPmPhave>X-w$bx)`_@u){nzB@-p``oLu4&CtN%bW+e z=uI#Ee7qva?fY)<-mN*XY(na@`U$&c>cvt9`NJa>YRH@J-q1V{`3s@ ze&^-Ud-(C+X`l1%JvunAuN=yqe8J5>_k~=ktB>#cm{YjrQr>-spWk%n1OM@|!t0#8 zPQTzeNf+nkmu_@9ZXZ7Ulv8@a?b-ahev#kFRv5uN=vZea?T5k9%nKY~6ac+P~NP$5wpt zfs<}O+Q%2a%XsnEJs?;3@Y`JaU4nyd^f33UzWkB{`{)5TUHEL}E1md7UwOw%9^g0s z`rwC;zUGTwTlhVz@7{3^UwZuO-jWO7^@EdNcpcZ@ems1qD<0nC2@kyVgk$pZj2FFU ze$_RibSVedUBtbm0$v@=H&3;DiTH_5B^iuTSB@ zLoVH4{K1!>=1xw{k2!v*F1~P>L%98Z&_}NMeO(>8Og-V`lluj({m#n)Jf7)AU;XGW zkLJ@p`r_*xf9%uW$~SqV6aUmvm;Ul{5g)jwZ+m^GpMLP;?K_<6Z=I(jUFAYQ=i%Xx zeeMCdz|Sg2a>#!=`R;3muxmHJi z`{3gXUE~hVU)7Um{nb;)T%WXGe&j(t=RCt}uAVxto_VDAW8dkAKmYO3mtXqAr9a>3 ztS-LlJq%uO(?`zXgO@)1@ZFrvIier_Yv>`5?lC;+2B-YGU*S{Ne)GbAD_(Sio1Sue z6h1lg-W;eSSM*h9?xPDo@%3JQ@tD5BV~*(Op72a(IMm_m7B4yR>^_3q+~P%Nxq^pZ zbl{VGc;=UV&htsXc@7`n^@EF^?hU-?C=c!#_a^_%1O3b;z4&a^j~?y~dh^kH^Fn7h z^oLsx@T8M{`oRIG@AB!poTvl0djc-=;c#bM)q~dGNao z-(xuNv=3kJ<;ZtD`73Y!KJq&%?@#rSQ}~?2i@)kRM{l`te_8Rz2M#%?bVF#QmbbT*wn1aMIg3_2ipxc=&tDIeC*yKH{Se zyl|>xzxl#nJw7@I4?c8}54x&nA3X4GZAM>)n%e#`}YeqYr!FLc7koY4a=zQcW(KF-k#F20?&kKTOdlRoZ6ddQu6 z`dH;eA3W(G*XC@l@X~MI7xKw3IaAlF?}{g#UwZyI`122L^B~XW&_2)V$sgbNVx{k1 zeetHt)_Zm6O;7o8k4)Zh(M>M#;E!{1h%Z0&ao%@xpeDGb)<;?F9U!8N` z!_C+8bmAYqR`v0O4_?0`e8bN^dE~SG?w$8=IzQ(JUU=Y`dehUq@KFx& zxBBj$wfcLHZ@>?gu{L=^Xx6Jk5>1 z>fqx&z09?HP)?mwPoCVzaC=r4K6=ZE{P|tPM{dlEzH)Z|-`{_9;6MH4TVMI+7a!iL z!*}y#rMvv$1*d-S;1927IOQJ?-|?jLO}OCI4_>;f!!J61blyIGId87uwx1t#gU7Qx z$v2(o1E+g+g@aCT!i~Q<@%sTUUp@0xzNgOk>kAj2@~p4@TR8cxt{md)_n$AG`G+_E z=tUQJ@KE18*iTpd;h~Rv5?;@Ia*j@X)X$u|-+X^e2R!&DAN<2l{h4oisAs=t_nmt5 zgzHl{@KxXQW#6rQl@mHz=|U%d&`%y$b>)LD`g<==e1pSk?(p<`LD!i(_lkX6IN+o6 z%ppI$cTT=OS4VzU&#$e{t1l05*oVi~xz*~NetdJk(v|Lb(*Zy4t>(meb@4PGJK>Pe zuRU+A>dA%YnMXR%Nlx)nA0ByCm)~&VXAaB}yz(e7_S0Xz=XlUb{^9q#W^U~J)j6xY z>dQAg_-n<>emL~Q1Ae-BrZc_plPmWoU(J#C=1gDu`JJGvoY-%!;kZZ#ytba@$oaS4 zyDz+#19L<-@9ArPy~hK8{OqG2-0=DiC;sNixrvXye!pja%!M2{uP@&6KJ|eUFFAns zA^q@_Q@Zone8{hRRe$f{_bfM_@u3gia%k0G&Yicy&o_R_1D^QMM;@$nRF}T;N*6w= zW8U?bSN-_veo_xE&*oHpddRDJgqI%Xh+gKNE^zMVul?>BK7AVgJ8z%d;EN|5c+h|1 zkPkVNN4by#c+@pVQ$IO84!2bwe&G+Vm7e%GM_+zAzv|-|K7Y61|9$N9oZ)gc;O7@zY5AvoyUtW`qIh$B4=_>m-&q6TlnEN&*q1(Tl@5* zuXAw1Eq}ht6?}5Q59jFOyZ!e0os$Q8c~4LGu6v#ic<}W-Uf%0RU%JCX7j^YDhj`ML z?!McPkKCyzXLN85K6v~-(m@|Q&4qcAN52E~QAhsVSNPlK9DZ^#_v!Dx!PhzYaSl%N zWItc^fx~?QFTeSAoS$;LdX{rJHIMeupTGLS$4@zxYdB8-(U-rzyLag+SM)G9_VL^A zs5*S(m)zJ7w|(vhb?HJc^9&dLAz8GX!|_xi|%Ji)Cm-F(N_d`;ctjvmg@Q$O=0XYlaFzAYa5nJ4w= z2!|Zg0UmX}RF98zbAPyBtnw%a>f@!pIg?Z8@G$r8EAzxZx_g!{=U>B(7as7-gB;1f zexB(-_la9w_ZdEN04JZW!=;aW$lKIMF7Plf^j43)a;P8N^mBj71%Bq7j_UJKUwH7` zj}IO2axduTcg?dr)6@M<54b(6&o6m|i#~MMk1kd^%ZK^q--?g>0}uPXx0*9P%b)zn z+0^r;KIQ`s_3&|yFZg7lN9xUm7>4B$ubhY1k z_37b$kQ=#|1G>wjJbNz}@aUtS`H&Cu^D|xbp^x`;GZ%hu=;7YwkMr_q<>Pz(=)o^} z@SW~((FYIu;xFHFfIpr6Uc;%LeDaU3^O=uyfL|Rv-EZETe|Y3w&d$;UfBf*5C-3>f zKmOoB7kuSGZtjQQ&Z%QA;MC9kr9K_yzNzL3d~;qOdh>z4_|OSob?M+4K6=PK zT|FPgXZF`mPUP>p{d}VveehNnesi&PUM}?EyZeX^?j8E-^SwIws;eIT)X@)q`GFIU zPt|p=@dtkRp4#X8oDXwCH~p=Agr84%nseXHm3{Ifr+D#84$VKD?gu$=p04WC;n5_Yz;_n;&@a4<0<+KXkec7kv21JDhm( zO}^;N7kc;yfSd=sf=X#`{+|`HPqR_`}Hu`{8sBPyO+f7x%pW z`oOIpo%un}f90RfzQd#b&v?>bJ-XfW-Fdpf>%6%#|9H?-XAz`q9@pdgzP4Ri5~!?|FH_PaS%h3+Lc>&Pqpm@IfBw z1F!p9efgJnJj|1OM?d_{FZ}B87fuX4sG=MU0_{&4YMUY)n!oYD~wb?||oE^=-j zKG$Dgx^4rPb8zcxj_IWj{@(9YPhI%%`xkCJ<fSwePk1awlJOcYo5sdAiXHUwu|}J*y}0>Zy-ET=3A@ea3(J zgI`|cz)F9*+V?GdeB+D#a%%t9et7kV6E8d;+ArVU!zD-f@QLs0(#1TfOK-UG@%^~| z`nfOg;+u1H_8uSn@#T;2czmxP+|J=g2j}tB4{mwE%iMeZQ=g|+`0?elx^S=dn}7Y_ zk$ZDWcXj6+x=-Ztu=?hLpXMB|>-M=<`Re^`-_?~jI?5}Z`R1O3n@)6)YdOT%J*cnx z@&%W<$4jp0NN4)WgL?W|;XH^hec_=O9(;!LwR8Bu!9TjWXZQd&eDZ>?{pQ8*IUexR z1z&!_NiTKul_$Q~hbJH5!N@zHxY_(xZ| z!KI(P$Sr*4$v!yTQ2#p z=qU$&SH5>nzSUQcu5g=I_k?rsx=;DJsxOD~3CDBa&7)PW+^_n&C#IkD)rW3d_4it5 zf9K2v-|0v<_c&bq($76B5BkxK-*n@r`sUp}xL3I0gyXUIbk+|)_2o(K;e^|Fx;xJw zzM3Ps74R*?v0Wk2m~q`tH2k&`&-5=qx8QKjy<6@Et#R%@<$Y7wXc1 zAM$A~_ys?lcs}GK9r=uxJn(@(@ajt^_|1*J_{)L$pr`%n+pnH`fG_mW-#zZ$kVpFP zgRbUF?&xa$NEh?AdX^XZTIoj@`~01N4;|%RUg(aOzHIV-#@Zbf%yqin@`>vn5 z@@hYQ_#;PhLx24Ahlk&I(@9<5=>(7aL%!xcsXyFs(aAGB=1G1$!$S{xS=}qn@l~Ge z<2yg>rw>2r3n!iULTB?%mx%*j{LGj4^qP6*tGtdP6Qe24R{y57r$yzt#U z;5%G=!dG3q?c<|<<`J(I4)>0GMSuRtt9kv}Ip^ipN*_7VR~_?gAKmFIFXnOTh}W#o zZ@H6y{e7p8XL+Ev9Gg%1_g#+Z=Dqzp=_6NL&sP3&*>RG<*ld~_Q5B}y-PRto!>EpcI!KDvATYcn`uXN;}x_p6$j(Eupoa)G> z`m4U?&pCSYjX(IQ=XU`FU{jJm{w`UFUs@hkVceQ-Ag7=A3-Ma~Mv#(ebkPzI(<;Ug?Uz^WNi$ zH{Z?Qdwt+i-+iDDzkG+E|M=rQ?=il*5AZeLkKv%dT$oRNy|Mc2DtzZ|0SLc;jQAeDVoCJmiXwbmQ~y^n=IBzq7u>$3J!9@;d>CI&#N?>bdg{C^@T%y{mi5HTm0#VhrF0W_m6XO;hg(l z&gD`L_1OMT_RIk}&6WS_kFP8a&p z4?q1qumAr3lOH*B5BQEJeerW|z+sN$Wvf0N)w$_CpY78hZ}+2qazbbQy@$_vt2xn! zkMxmi-{DgCB)oLu=Ueab)lWXmkNb>o{Gx|*bkr9v`{mVlec+|*MY#Au$JKi}tIHqf z@RKL`wqHKXm1q6wK_9r~9v~wqxb6A&mVl@!xtZZ(e0yta=v=zkA2pYzUwPj=E8ljwT~|NsUuhX zr;j;SM?ZOWk9(#EooCK|h67G>0-rqLZy$f;!8tm@K?nHd!(73`FZYJrsH-15^fU*2 za}HiU%aPxC@8!XJ_X6Dd;HfSiaIbWfLq6{Jo^SYhrjz>gxa^$s@`eXJ=RW-9-9CB2 zPd@l1M|6Y}e{(Lc?nAz)^RUU2f;IT+l@wzi;M~-g1t&diI+$b?xVaT;V4V{CCdW z$$|QG!kZs_v!6fq(O)0A^`5`kc))=NUikP9kGZ>#mwNE#GcHTL2As2FMAHC$5ANt_0p6~R!s-O9q_Zr^xffHYPz=xOBJgxe8 z510P@k}G=251r)2IlkKGUg94e=!hr$aG7uQ>8d^+@@FpY;$@%j@H!{Q=7aw5smDhv zU8m0UQeWRKJal;O*?GFa3zvCv-}t?wtNTzr{q^x(-Bn*cHx8HkxoR<@G zY9HQo_TK$RH>>+!eZMd2@Cgt4pT(1}-oxdd;3NO!R$ad6>)AfP+j3 z9`Et-UB1l6?2n%u@qnzmGk+K0q8A-K>w~xZ%nFZrh4Xdf#P{ikIgvkl z$OV4B!-LOhedsQ?c=N$Ner}!fOh4~E^Tp~t-ttN}_{{|$<-|VUcf!Fpxll0 znj`$pw|dUY6(8+W&+j#S@+k-KIH#X|aN|iY{_&qLa_7D^C;0GzKKjssZ|-U5@X${l zyjMp)&4YgKmwCVOn{Rxkv+w3YANPX&d@u*@VR`2dAMleSKKQ+(qkVoy`N1!9LpS~$ zmOuODioeeB5ih=&2Rf>!zC7^3Jj#JS_}lM0z4<{;{rLtzpXG_}yYaMN?&)o%GyUb0 zZ~FRZdOr>hT3$xlxCH>hm3bIJ}2jec#PL-Qc0uoCCSCpKtVW{yBc~CVz5G zFX#1vQ;y)b{;saPnPYwAjGpeNPn|PQ_}Onx<@2ijc)~BAzT-<*bFQ!Zh;MUV?AJ%` zR{ed4)3d&Ogx`E_otGPW(M7)G(L6X$C;Mj(sD>U-@-U!R>z1mv8O`zR<_~$i4aTOh10>3l}||vkzZ* z`OGKy;F3e<@sJby>8(DT_QAzht9whX_+Y<&=FE5cUX^P&<&R(T!%uqPZ-rkSyqxC; zf7G-3J>skPaN{9g{DKpIez+gr|NHw-4&jAo>$`cj@}Ew8Sna2~eR6uxcmAD@{d+yb zH+7REI+zzcyyp|$;N}m0@cgW=`++}lBp2||34iw$AK*7faLT>=NNcRt%sFS(=-{otoFpWt%8I(HaPd6NgYCVn}i zpPZ<(RZo9)=n0QJm{<3L`h2DfJ?Wt?o&5hmeYwXIFSzt~|KTBL^yI(4KjgqX;HAHO zd2b({?hm;&Px$EPymNBK5BDBC^oPU!ga;hz*iRq*YToC(n~+}yHn=;M7mv zX5Qh`M?TCMJ?ZOr1wJ_V=R2RR^pO+iAJV~m%cZ{jGUxWuiBI%~6L0#!VSfGI&;xI{ z=qQi+smC|(>1#hce6!-^JDmK#OAo$S_46GLbv>(R-=FH?ZEpBY2Rg&$z59l5beTES zM_qpN$2oq(Auo8CQ~3GG7dX}TY>xTqyn6s%bK?A#KKA>5)qD8VSI>P*_xtwKPY%q7 ze7NuUNjJYga$x@W`MLV@9RBb+r>^~cptJYCtBc=7&+vF&W8Ztv`q;nq-U=7|^gC^z zx#KfE%{g3n>L*8X$zS>N`^;B3~?FI|sk_Tkq*cCwk-Q-geGCM6XqyU#;|{gSmoF zANl3Gy7bWxZv5rty?%5sA9PobuJGXl7r*K3yPWbvU-NHH@uUa+*t)j(#_n^ z1rGi2=DYWDEoc05|I@*Fb?N1vf`?wO=}b@a%qRK54<0#mFH9VC=C6Kyz;Czya_o0R zefPaO@Zu#mzT@XTz35K|zVUNE9PSl9(ovrApuhL>OgDMGsP5LPo_VqIjn2-|i!bWh zCr|R}oczJ5KRxtSmk%qP^BHb^>8ZZ_@qusl@f$9E`1GZ|_Mi7mU%taHA8^7)A3nn; zpXQt1=H3bid~#q8j5O9s1*=9v_^y;%T)X9;>;v&wb#Yq?38Y+kK&*Ikax+ude*^%l(hPd6NTm-4Ar| z-F-oC^}p9w?&&CxaM1%Fet7ns?)uQ%KF{=#1N!16Pxen8Uc!y1IlJlo#4peMGXL^u zr5{{$aSy9we)z7xIaD7WzM2nu=_3bt<7d9ye{j$fPdTTn{d9v*AO73#8D9Ip8rSf`_#&B zetNcFUg+kT4)pz>@H$J%qG`e~{H*~Q6`=)X0V1Oe1p@nD(tqH6on(aZds5NeRhiF} z^&-A>u&(;x@1DoYy>r<H?nF~6Z2l`Jw_S2IO=7j$6;Rla< zLk{%yJBT;E^mAU_$y2WRjvv0xd!9JlKltyam${K|`{0D1&g#n9admvBr}tamJ-Y|s zQIOy)XxrdAX>cK5%R=+dq(OF${Oh@@wTAK5*a(-%+^n!$a=e zTU-0^)khA@p?>mX9?UKL>Z>a^?nNuT-S_tK7k~XP!if*v@z&RUP5deU3YCtf=66)t`0qOW_v9P*V;^mHHai9Yn@FaG-JBR`%` z(wPtH!t<@~bl0D5_IYm~z4>Dwe7<`RC*ACW&wXZ}d(65MPIHJ4oYNl+%No-M|E%GNiX*gec|)09-ZLzoi3i` zb=3!NdYBh_n+Nxhefq)!FaPNQm%j8;2M)QAC%+^5OrPkF?`3?vhYKD$<72;meBvAa z>Ks-7YOM0Ak9@(wPkrIoMxE8OJey~8M^Am`ynN|Az4?kCJmz`!ac|l$2XK6?K0oBi ze*W=|-*l!gUFqOFA8+a-AM~`(9MVC3{OqTPImT!1htqy__{=x?ru*k`&imB-<0nsa zp~F+>)q@Lvb4wTf@bg~&+!K7Ab9Pog`0$nozI-3N_8V$cl+g%zWnfvA3eQy-{B=k@Z&G1{BoX7 zaPS8n?+@akK0eONjl9vvyy|Z*@Kc8#&dar&@yUMoow?FaUAoJaxxr6e{+TE9=68($ z`snZe#-Fe5S-Dk@Z}iuX5A>!3-{5y1Kl;$iIsM?^AANk^%}>6`5ud%kZlAd@C(g_H z#LF*y>1d^!@9^qp-rY~|s|&C9awZp6{#yAWANr^ZAO6nqTaL^l9jxXKA9~S={_5hP zE_`tD+x-Kly7+r9C;E9WN6xK$l^=STQ@_7_wagS1bLUcYjQL z?ic&y$bPu_i>G^U<_KRp(^k1KFZSc%G2s@qth9$Rl6) z?>>c7|A}|zhAw=Bcj^k4xuBao=m+n9x~Qw3T*6_V;V|#M!%rvt=s-vM&)mR4Upcam zj^+^$^EYz@hn$%k=grqm{N)u7xakR(d)Ik7<4afi(Gy-g%$fdQ!g1S*mmE&q=0F`d z@UY4!|KtD4}b=90dihl3__knu$(+5BEDi`ic z`nw14yQ{ytaz!7!^|v2yd7`WH-oI5}4)LQm-1?b&`JxkE@`nFj^|x00+}GyCd;H~x z&iup6GaczAFL2;1|1*DbOke)PPY=B5;@q!z!J{u;?yc+g(F0%n8BO@ute3=ve z(^)Ry!&6^#X`eZOTMqpGx|iuMAM~E}+_U(8NjLh_#T=SrdeZ?vIpdpL^B-@x_(w?%9Z($3;KJHk2z4!{5VHY~s z=|>m&!Pj~3o#QJX=;eNc+dR@&o_*&JUFgjpy1MUghpxW!A3x{iM_>5i#9M!PkVE_E z%vXBz!yMS}y}8lHoYEIByy*zfM||B&@S9sY@?C!2AM(jRddq`4aM+J8ebx6Je*5UF z4jtuCUid;^{NV9yzj>p(efr|5kG|^fr=NP}j*feMw@-ffr;omLkbC;zJy*KpMQ=LD z1^jTEf4bVQ4qfn)Kli3N;rC5E=_qgd%ANe!@BG;~Pe*v&Z*+pwd-&Z4>RNwP-+A{1 zKKk*8uJpuz`auWh;Gv&6bI-x&_n6=Gn7Ma<%8NYF)ja_Rzr2T={&Mv-J=Aqhec$n- zkNxzKUwrMOulaFLnIF&i^BJ${8-0$$jR!oRdXI zbiQw&`)u`$zk2Xm;nD|wxas9P9q`o`e)*Ln_4p%?cx>U6C%nv;x#O4pcn)=lKbbxxsJZ@ZLUs^xY4KIlz}L`oL>0?UQpls7H6c?bb(Kd9&X=%wIe{bxv;P zzJtD-7juo@)QfNS^GR-;=Mx{`mWx$iJm`YA?{w17JlXHQq#vL0{9K>MR=Kuc9rp-) z=0~pKgv;ESgQ>5&@blk&2M_=0tsfk8)L#zqkc%yT`18Rz&+x#{7d+_fK9CRi=}NEJ zA71*&haAx9EWG;2srk1bU+3`9-#o&PzxQ%!4xQ(}b9n1(e(aZf@9984xr9?a_X7R? z#9LkWi}(6CPv1G`aPZwZ_~C=c9D6or>O6(6JU(Ts3XZY~%D80Y8(#L+!csWn^t#js4KHMkH%Of88uFmhaercr(J>385@`=y# zL}xl#z1Np6eA0(*JK;EPrSE>v<`5qFhM!*g`kk;(9k}J!9LObnbT?P@_g}0UN z=GuGx)#Ddlaz;12_+d`WCp_+Ry!FFVUwNU6-0?$y_~k-g=tWOB^rHtK_(liM@@qew z@X-gptsL-!KlbATA6@0hJxf>koTrZ!KIim(4+sAA=9Bl(x^(tzZt#YSf9jhD`kT)!Jf5AO`1GX< zT<#(KHomMzk&wQeXd6}!{WlYI!AB*tK&P~`kHh6(9A&gc4Wt$cM(KFtIF z?WddX>e3NjI=Uz1m`?IYXS|)~o18iaFJ8{$^(kI{pX^hI?)cK3U+VD*fAguHT+kg~ z`tjR)d~d?%84fw7lU)2uzf~PR!yy;&(ZM{?iC_59l@9)2OD}xj)*oKF!yza1H9z>k z#c%x8wc5vj&+xn7;N+X{=0&~N|Nj2tlexmfxvhQfN4)*Lq^}h|{OIkR_x9tBd|CC|TIoht=glo&tnLH+%)7k6s~^5{Mlb#xghO3*@YP3M{PBht z-&H;L)z-5)Fu(2#`NN;je0NXDi|_6y=lsr{)XzM_$#37~hz|6YAG)ber{n6=hkyFW znfLV6&%H%QzPKNpQ^$Vy<*Gm3=}LcoIS;4%L4EhS`NSJPeE6jvKK9WCE_1{;KGB`7 z@EpcRKl}8t@2!1uR9(a>Eb2ufD$Om^1m*&$Hag^Hv}F(S@$`fk%J1 z=;gfoL|#18@1=h3JGz@2ee}l4C%87f4&iwIRA9dk-NLRV%i@x$fKY74|j`VRK)4}Q-obp0PIQd0qy2`Qo zzPtbQ!OvXq5r6)=SL6>rzQ_gsbiva;`l;``dyWt4$uT`v`ulFhhhFxoTx{qo6h+iSD*gonm+dHyE^YZ{_;n+!bF-?!44{^m^{1$&vYy zGyUyf@z&SSsRG)kps5Fzcv~AD!T~Up;+&e+!Sf$5WltzUu=ATy)pp z-v`do1HZHC$rW7m@}0k1`{9ve`R9`ytLwbJ`_+L{-r!V6E?4{IcJk2gwte)__o4UZ z-hO_VFZTi5^yiN{pQ`8Y2Y$%UJcpk?_F3^XZ@blpU%l0Px>?~hKXSz%`#yJ`{`A&g z?yknZ^Pc5Hed|l#`DU)wkyG{MiVyI6rl)#x^EPm}m*%}CpK$TjJ~$q$XKvuIUmZNR z_R9l2>bZCD@LgZ|aj(cJo_O;MKF{jvCm$|` zS8@fnT*x6E=xd)k@dPjYq_mlqk zyARZ{(jRYgWB%zcub%0~U%dHXpFaG<2R?i~pT&pIbkNT}y!g60=boX9xlvbc;8X`c z{p6Ug^x^+U{pc#M@VMvr>wb0Koa;vydBPVje9Y}h{kK;Aos%>C>8YN3iXQsQx!ls5 zuI9&k=i%l%{hXse9#;6|M;*NIrN8g+(Up((sjII!#?yJv=2!mtizj_OAZdJB{=YwJ2>g%y?ye8zkXYIE?V6Olh<+Ioj2#s(-BWP-F1%daswAV;Fkw^^K2hq zy@x|Ry!g&nd87kA=2YJCQTI0d@ZhB%KJEqih1UwN`^kQOS?L8Y-{n^x;FDK4@wpDS zXZM6$(feon@aCWWasZ!taIVhd?Ouk*Ik}ZHx_Fj*`oecref#Bz&+Qy%cg!~D}# zAHLFqzx0CFc|OCT&)jeR%mx3x#@igxQ4aCc*L~nUeCj(tanO^$aM0~F98axyxo_>` z|7rW^X0GV&o{}GU{l4H!2RWAm@71xNKlHH=PW9;kkNx(+FQ?AA=j~VD{l*8r(NjL1 zqrdO)$QvE?e@IXHn`IORwl{v-gwD@zUskm&aL|M#e00{V?NcVm-(fG`vOk$0-xNx$DiJC$c1x!ql28P zuMQmQ$-|rjzf0cJl}>Q-32*+%l~q4_d-k1=c(@PwPjCI?3O{R$c9{hCTk2>a$ ze&!5L`1xo)zULENyq7z8%n7{usm~wxkp5TIw_on;*N3itpXo^#ze9Z8s%x&ir}Jsw z<%eGQ!O1`U<%)migUVf-Eep>PkfdK zdE$fp_`>Tvoy?i@_QB=7dx!sY;jcPYdYKb-7=hY!5a?e;pZ#9>cJ^LeC0R%D_(S!7r*=J=BkSc;K5({fqO6AwpMuj-oURf-gM&2blqT)yFyd;^RDj%mM%C z0yqBny65E`e))X}m%8fdPhay5H(&VVzM!MJ?oHq6Mo)U^!!P^b!ON<@ygSDSb@Ad8 zT=>Wz-Q}9@bnsn0_l5oXt@L#6u4g%NkMm*cJ6?RT|EBMB_IJmeALs3p4?3>u$OXJ| zp`ZTh;i;ehm+;ejefW*HXSnEx7a!=wC+9xGtq;H8z3)3;z2}!Y&YOSu9y{;7dicu$ z-PNa`XZIZ*@+hZtrT0^P>7kx;_IXbSe#p7`hQs{vht8hqAP01?&w2gzp|5%4r}yf* z&*(3Qe8c-K{+^xl9$)&)iF?C-IOrya+wj%g$phYWfFEBv(^o(DAHCpLPmbvAUY9Gs z1E<4(ddZ7tb?~GI9Qxf>&pk?ae&T_r_k31Q?&&Ab{9E<$_mq9|O+W7++s_|)(H9Om zpZw%O9lFW8e(ILVxS0)9Hex2gxHIgxk!_^O^9_ztK3x7GE` zM=PKCZXbW0SC>Eh@cXyb2Oj>KJHH3&xPOj2=YEqH&%V3I_y)H=@X&>hav-O8nG?Tb ze0~cLUhW;f%Lg6g1b_FHd0W+!7y8HxUg~=<_juk{M;_G0`@QdSgv_Ngc5@}eIe>Nt1&-`{_5%OhXq2_Ng!!er+{uG|awLEJfSVq7@ue&NzRL-H_^z)xbq){v;lLMe{?ij*y15VK z8gD%4%6ES12M;~*bbru`ulB3&nJ#=b|Lz04oTJx6x~lJ4KH#UHy71d?g`ZAv!GRCG z?AHe__nK#V@Plu1;vSGwt2y>}ul?%6hmU)UUi#tZ9#fy6>hKXh`EyP^edJ0#d2(*c zAN=_AsrPg=Kl++q`^^KK=7z5J!-GHloYzMl_~!h?%SU|RqXS;>xJT&Y8E$&xZw|f3 z*L&yrkFWah`z{CaD=+wakC(p3`El6l|2fXn3vYbz;5!}QP*)#1!>gaUdaM6at8@Cv zJ>A_`^w7^U9qog2uljU=S03dCKfL@-$$|IoTl?kAeWoA2eB8pp7xxMN@_>)`=GlJv z^y;3H9kJM||U>T-xWm-&gBSedsY)KH#GcANWZ> z_nEx#4}bTdzPt6u1OBb|c*`|Ceb;xj-%3Zmse9f&xabd`yuia3zR8Pva)^gHq?`O$ z@sSt%@G__7hwh%?!JL>2`QaD-_|Z@9f2WW2bISAFDK@L4)E^ON8ZdEALl;j)rUtN{>qVk<`o|P z!Al?gJmY2V_-Y^j`TQ6k&-%dS{>iXSImbgj z{>1O2b)NHGT{^-`H+<;pesbP-{<<&Ci`+U7H=goq-tgr=AKkB8e9SwX{BVBOgJ-_y zv-kGNqkD#~bjIIzI?xd>D<0++e|@IzaLJea;O$v|ebv*4U+x><<%VATGoPO2A3k%i z@`1nVxWD0(9A2{HbGyT=Yn;-54``n`k;q)Hgt@rl1H|T7? z^X_r?=6mP8heLktqq})hAAWu9Q_uIq`q0}wjjvqM*LVA^^ro}-{NTfW{phc*`;Fi7 zDqsFSaLyb#M-S)hgNxqqxo1{*01SCr-Sahu6KJzC6IgCwTaz9=uk5KZRrZpf6tLpPq7Rj^V-6vpVuYSHI`Z z)5U(e`)p6dJVo};&V_{sC?{9`Np=1*>|eCLOJ<0;Rc<-nZ6$w&V3 zgI{oM;lfwl``*(N4s!y(esH)?{66SMAK&$RsSjW9ho8Ron`__c45wV*R@bvS`j~${ zT7Ab~?)XmURed_h*IDoJ#g7m0xG&^EUwM;TdYB9P!GZU4ef8sux#b(2{B(}K{MVmu z?p3(yBk%lnf8$9%ec*NeDcpFOL;ciuPLAR7tdBgb>e@GRV?SNC_S2Oq*C%0d!Z!X+}`oXIXT)rQ5 zUS6#HfnR;+y|+&vd6yeHIxlalzVgT~KHw=&@bgQ3c-4^ux~Rt|_a)q0IJ}2bJwEg6 zNBi;OH+=ZXnf~gSPkmPP)b}19KI1J1Tj%gHpYrAYeQY0{;5hF+KI)qv`pAjC>R8q1 z(@S-&a2EH_nzgP4(48tR{P+ms}&Eqgx8$%=d3#P zp}%v!;Awn@)Zg_(E5Gor9O(bTF56pr3hwPap5?qp$p_XT`@p_mS`3 z)5ASPZ+_tOEq(A`J;MWs+{g#sc*>Le0v>wV53l>fGauv;Zn=fuJ*ckzblDHT`rdn1 zcWWP==py%U;mcpSg2#7$(t*Bm#Ai6@b`=ge<^x=G=M#K#3Ac0Z1^elvj`_pi{Y@8s z^Fz+zkqiD#{Q4fp3s2AdagW32ciVgZ>Z6YN@!d21__ONo9_0()`0KruPW5GubE5x+?R6T-onScIVX?uMIU;*zr4p!e{;YmebiUST*-&|gU?C__4otF ziof@ALVxGHmjn6a+g)|!oX>Qo6MlH8@4P(omp<_FS03PT9&dj0%{jjt`pT!g!$ns) z*57-$@Kp~_y2_80Uiv<#+ox9j)p2jhlXG$=H|A1a=%7CQ{D4=EY)c>b>8YN+yX|uhZaCdH-Kk?OH&aBSyZ9db5?|j5x9k|?M z@X~|+_W8Z?Ue4S*^f<|1=lCzD@Hr?@X3qseCC_?^xzj=^fQ0*ZXX`LJ7=!scE#6ze*EY?{o%peoO{o2Irm;& zdg8B+_gD49i_h@;4$oct`Jx~Fy>~CkgL{i!`qSUhKj_I~U6p_M-R znP8;>%C{@uR2wT-J{scsMUV^7z<({OJw1{i}WM zbt@m;yYR>d9_|r+@z|=%Pr9fBzh^w%C(g^6eZD(?QXloz!P9-J&T7A$c<;P?;;+7Q z>QDdV+&=Z?R3ACun>uoAZsg2-nM3&GlwWW0+FIqE|N6)!-|SOYJ21Hd z@X}vj^P;YEd^xQzTzKf?_XiF+!P9yE>i?y>^w&>a^Czc#*PpMeI`*4Cdhm5?pZ#>X z@4b9Fhc7?vbFbk6*W^hDbNW#q`|*bNsqg%TPait(wog6h`Kyk(vEM%a-c<)*dE*N{ z`tX6zaPqXZg!>W(_9{(TVG|zGhFFpAOmsNj0I!7lu@Cgskc+g3I_~gWW z<^JN=7JhpA9rRwV;G;8~p6TG6dE)P?kA3j-XX*s6dU#$`$2$AqH~DxkKltP8zQPk8 z`aADFvVYd&o1Dpodgh&v>bSqXhl8JV<|q8-U4DHxM{?o*p*KJ9Gmm_sw;bUw$9z1? zkKe8E9Q16z^ZLsbUHC{ZxbfmQzwmROj&RXWJ-p2E&+x(N8D1+r-E(m81s?Sus%yUK zDi3(c5q^B91N_d*mHP=k{q3VK-0m-Zd^cZk(SeS5=xe`y{$BCj@AVdc&vbKMPWVqZ zIh6C=>hKv4`r{#==1^`ut49xcb&u0+)z5e5_&|62@p5kZ$rtw|z4+#SQqO+4@uZh$ z`qRxbJ=9ajcfT|C>30)v`TyuyzUkyUUAFeALl1i4Yd+n3?jim@SBJj(nFIF*z1)-X zjGsKgb6s8a)PawFzVn@rtMl?je>uGBJD&3H{xLsR=ji8NqPOpOd!`dV?8lp*aGNu8 zAb)VFM<>ttI4`H}F{}Naf2D&Q;iW#G+%tTHhkkUDBmVGBU;e|(&!=!$)%Beop7DcQ zzU2{a^CVy9N{-=xj~?<2kNxgB`}jw9=iGbv!$U`U(VL!l@aHgH=&Byx^pIb=d3JAj zR!4ulazL4+sA8E&qJB53c|B_XQo)gHt_zns@V0U;gTY2R$FtlV5*&rV~Ht z;v5|GfMa!@5Bl-PyvwiiaH}J?R(;*OazIDFD|As$j`gwP$sf4fXX^Vdhx)67*Kxe* z4X^vk{cTR{!=pUji<=5h-MJoJNGe|6>8cYdqyp1{+*;OAbXzm-06r>~sy zO<(%rt&jY`>%QQx`uNh1PWr*iSI_YCgML=}xCiV%NN4!uY4u(`{P^(FclU(4@X!HY zbH^8T^pj6@^{2Po>F1n!^pYQWRS&M+aGQJi;DdVb(hWYm+^c-Ess|t3p11nT7k>1o z^IiMofnWN|1H5u={(aY94&_E&KKKr&K6LWlGkxK8&(fQ2@aTg#y?uw%?~1v@&m7o) zo<7d;oe%t$3wprCKRVNeKkD$^d${nokDmO52XFX&cR%P)7domhPx8TMb)EA&Ngs3l zmQHZL)k!hm%kE%AxQ2oKzQI`1qra-x0b_UR!nO zB1fM2X5VT*UDU;sKJsOsJmD{gbl2CjzWB-kJ=8M~bmWWsN-p5wFCOkcd7iGVxeRP#ex%W&DK5d;-*L$nFbmyP%aLBhgvX6gsTIlTF#zGrpKrDx~VlPh^NpK$O`U%8?m zeICLskMxln=jlr)zSB=XeyYnqeAK6p+{z#PbfqVK;KmmoI_e7-{jB)VQQqW<4s>$Q z;U%Z|@L@|wec_WwzuW4{89in_zc2Jq-+gP24(fZ`$~X1!)E`gJbT;Sop`*I`{;7|9 z(tT#WW_`J%+v>b$Iyeu9zWk@B@9@Z%zHsyLxPEl^EH`q?2Yu)U?^Yc+y?4%h%Cnr> z@9$6hW?tzbKl;OMUijlZKKkHICwS-x7ys#oH$IQ?<+pwE#W()KZO-iTjKBB#n=5_! z&KIkk<3mUDYhK(V^psQkoTr01p^yFY1s9z^(nTHL)wlY6#h;$$WvdQ9`3D!h^i_wy z>cfe*I&kV^&gqS(I`s5xKOOl1m%4JSo}9>qbNar=Tm7e=<&O_^F$bRM{-twgt@o|= zAND-!>tmka(GhPx>SGSK`mI)e;7wQc;FlM?`6=(_3?6;)H7|I;=~Pj`RA;DSY_ivpTPy zI&%Kj_ls8b`QyAkTl@IychK*J`v70QJI6=9(I0=ft?I*RKYi8ntgm^)m!JCJZ@>BB zE1&5}Uvr>7o#1evyASXy22c9k#uEOMm9Oy1D;#{4Q@-=TdQ?4gsXpHFy|oW7 z{@`W4?bDY|@W9P4IK0Q-9685Nc-4i6j_UpjuQ|a(ef;E9T|DHG9&p$PkN5J=Z+X(6 zPb*yZ!@=+-u(Bx2lIfd~{TgZ~Ed%2l)6TM|`J)oVhpY@G~5A zv*Q2WchAnj>)xXuzVdb0dAV|49_Z(u#Cz);oxR6jUg=67_beRdLLK+WOZDkZpVQv+ zNzT-hL;die1KjH3dsSVl{d4}DlM6WMZNGbGRTocs!{NKRl@s;pDmQT1r>;Elm7j3X zm7gc!GEXzd@aZR~c*+y}{Dw#tcX+05*}*{N-Lh^~|Z#!u z;iRj&&eInT^MpU#_N%+9tDd~zYabuzYM(is{^KJz_?t`o`GGJ0&5izYhL0S;?>iAMc­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

_U>Bk4>)#X1O=>wnraM6R#(--^ct^Q62 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

gmAeSo~=7LW5eV2QAfZH6>4{kc>3y1lDe^;Mg z>cg+Ue)1{TPn}oCy8Q4_?&gzj@Zo_k9q8shuwTyP-rW5Nm-BR$Z@A=}PM-4OUeSl& z>cGi&>*h}#xuQRP+$+AT3qL$^2ah@9zwi3Wy}X-q{q)z@lOJ-4_r!s>b-vIQE`Gb; z;P5UleA0jApY!^|B@g^om(T9iv+6weq=(-HI;t=C`nqrMb)MhqnjdpPU-QII@AT%k zeDFsfIL#S8zUxOX{>!y{dg{YB_l5g_Zuoeg{_yuAUFD5V6QBI*=ZW{s4So1bXTG>6 z8p>ra)yWc ze8vY}`1GNpb-2vK^plQocz6HnPd|F;Yi`^hp6)q#Cw_j?Nq>DF(vL2?clm`A9(?sx zmmcQbdHCI@atE)v*5yTBotIPdil=_`kWYHT%NPBv<4xc5_*=(=pXSMTddZpl0dDgT zpS-=V4;}G`gP!!D6CLcgk1qJZBd`312Yz#)??JfeARnvm`a4g*&w~#g?DM+_pZmew z$eFyl*ZB#bb-4fEK04FqGJJHvM?E~9qo41yzwda%L2vti)mL44rLXh!u}&YkF%P?X zeh28|cSt?DUyT0x;CIwIy!zoW-|@76b>4jFchYyy)86?pb=OA@{y3XM%mvTTy>u};D|LXF|lYizxeR|o)PyXu%2OgeuqvN~y zs_VYzuUyiNj^@DJ;GvKH>Yvw#&iuwxKJbLkcl+U?3%~dbHyz-HOFq>75ib4o!O!oZ z_m}qT>m7eO%D3WNG{xS{Gz9P+lRM)AHr*1?fcbtIPu5JIeFRb=Q~|}hl8&C^M2cT-(P!& zOFrSy*BtZ3cXjzrKf1^hK6I0NI8MSrFL`v2`JI6SU*GAW9z6Qnho4;W6CQfn{~Rv& zx4!N-dcry1-Lv%Nr(C&r<;8hA^GB}rg-=e^r5m2~^lpCS&UbnI7GLv%mp*XA<-B>r z*Id1+o_+F354x(SKRx709`V-iUG=TghaUX5E`M}~OFr?2U(V$j9=VV=zTq!VzMF5~ z@w^W|KEB&0r|`R{Jn4%!f8JLYPW$jRFYx(}H+}enzx>R)_W!Cc-RyJTT*{k%pE}2f zxh~iIhii3CUf`n--JPc+obE6AgWFS1<)2RK;w^9H)ZECEb^WK$_{*1E?D*aE)DK?u ztox1^yz0>ne)Fim+?gBw>8FqT+B!aR$R~M}WBd5-JG}gNUO)SMpZSnu{plia^5;IJ z$3wbWcMcx&?K^+yN=NoM}>x-9j>bpPqAwOTjsh<7tIEM%P{Iu@# zPkE4U_lqap%^_WX)yF$t>eClKxzNXbEf?|&kNxyD_wF}2!J9tvWIrBsabNxoKYVb} zUmtbhF(2*`{pl>1>d1k8?i=eLhF|gnzq+e^bfY(%=2-vTemUcp{&c0I@A~1bkA3vA z&phx?p6N+C+G2Vf6AA4 z`pC2T@X*6N;bFgdfe#-0KZJ`u?rnO?2|wxXyQg||ms>u=byB}KJ!d_>*ay#9`{^<7 zA^rHP-^?AJerM_8JAdeGZq$W`j_zST?r_>?-qf49kOMgIaGuZBSM|*`9(3fVy6Tv7 zx>@(+ADr@I4(Q1rbEZFD@Y54+`{-ou;B}tQ^wrP3cNKr{a^&3m*73y)9^c`jqnyaI zdiY;dR~*{*{*?0E_KJddsPq>}qgZq{b>hp(w?nmcmKR&x3>5nfx;4$asjXr)~)YC^k`DZ`f z)Pa|8p7Li7=!uW|a!yx%cy|sTIWX7emi~Ci^BTUL_pYyfhkfT8J@J9ZT&Uwdp@V$u z>ppcJoLd&ZsBkqJ~*6%2M)P57uMy=Q!e=?2lSC6&zUDV(w9#1LI>}B)}MdA zyI0H!9p?M2M_2gehJSSCkNG{x|F=Eq>37Hc>ZcD~@t}+S^r8CYecJl)_oZ}i}Yd&0ee7oFYXaL`#^@z9@tc<~Kxb1RSV*w2?aUwoz?U42(a zeLC<9KK#^yi~n?hM{eMur@H#^pKkP(V|n!5dAi<~zyEh0Zs+uK&)s#N{_a({`2fH7 zgy)zWBX7te!cgE1%>SZ#p?|uDtWp{e%a7;MK=>{^8}GkrTY&`WkNh)LnhI&zz~} zdDcFd}dxazj^h;~s$*AM-8;@I2NZFLl-Pq%ZyD3tmtA_-vniIIl09Z^NOE z^YGKj^L_i}7*6%+BES0K>AXI4kq`HRd{~zU{^~U-^KK+}byFqPu=_<*5(c_rp)Q(2oxMg&Pj%;gDZBa9{En?w|Fg z&+mc5eR0uuec{lDpZd_BZgRS-!$;@&t`0uV>-W-mIfh>ydYK=3&=ZbT9eI@p=j0N9 z^CBna(S4vE+|JSYv3}-AKHl}+6Hj&U*9Sj-!68rbiVuCx>H{bJuKP|Webx2k`{W}} zeE0jtfA8i}j_Cs*-|1{l^izlb`g-S!dh#`KxrdxPjXyoe*B%IAHC==zi|4!Qjc!aH~D*$-tHxM^p!Js z>E#KRzH$sdz04Q<^wZxHuZM8aLw!8dms9oa<3FD6(aY+(fADl4=nJR$Fpu&h$L1Su zc-5c&T-Tq@@R~Dq==h`k?nUqNDYu?*!-=1DJmi88@aPK{|LH(?>vFKd$p`Z&AI{Uq z+|KX2I&^}YkMNp1y2+>W=H5Oy&9|reeDcl*y6{^)^X+%Q?}X=yhjaYE`%mlU7C-*U zxxA{UuXlRLJO3s>^_<)P{rd;M+|wO@`1Iu~AI%@#=#0nQXU^zhe$=Or+~GwZx#NSr ze8LNk=Xja}`{+bpxuu)>?hW@79NyKDV{>^`U+;3@sg84ez(-v=$@k>Nr&T}x;UQ;y zfCoRi^WS&p%$NMg+e!WS>^r>nt79KszIPseyq%W|`{`sK{qR-Kd3wO_cgQ*Spgj6r zhFdP^0f+T(;eX$g-un1XC;8$t+|J1b9nGEm9n=ROb>$lWAMK+bzH+0U`tZ27;4o+2 z=^-!b`!28Wd#988SbtBtz`w)K5BGsOpIVn^Jj}U!13v!ZZ@+ttzwR0SnK$~V3opIQ zll^e>l^=4m!Vj1G)6@M#AM>L>oP3cZKCA0~k{kK8pI++m+daTX>vX_V?$oCv9CAvZ z^LYC%H}IHS{#ZBfa==%4(a*fW?VP&s^PRr#AH1B?hhK2vA&30s`;Mo6a_1Z#^y7ov z=_lXt@kbs0dxr;KJe>1RAM+?*_?mC^_zD*tASk#<$_=E;Kxrs`|ce7 z=qV?YKYVnSKmN+UI{Lz64(LW_Ipr6h)G-fq(}(ZwGy2jKKKt>f=gdF8ey8{YpL-U6 z>wK`T{_IDO-{puN^rH*j@bJ|;Jod}m*Xq&(@9VzPhu`YZ-FJCC?Ht^EkRLkO54ZV; z!@Qag=k&8ruJOeWet7Woq$9uKgj*ielN){D^Y?{)et+QPxB1|^9J?3sS5F;0?K4ks zySF^)EFbvuOFi$O^UM87H~8t`yS{kr&eKJ%@YT=USU2Bvl>_g5k`ws!x9@NL`3HyG zs^c8p%^5xE`>}fT=L;NkrpHVB@iWKp9JGGX6MyySqmKJZJ$dBEyf3`VGameb(~~de zNk6=uqZeP~9WL*1)19vRS(odhbimv1B7ga2|8BpWs;>?{^t4az=e^8NeeIVc@1D=~ z*T*^h;HJO6@_EpCb=0-roazrRKjekJ^6W`py2+iK(hF~W4b;xeh1`JetoC+sxCe3SBDOCgV*nfc{4|J#}|M7_=TrF{MDb% z>bZB|lqdVHhE9G*B%Q`cKhYRIXGAA?h*H* zygRQR9rf{is1Bd>lP5l_i$8zNvwiA#;_dg3FLYK1FMQ}nU-;>Xm)ycD&-la5Z}*IK zPkrE)8#yq??g4(l`8gfwiHCfu=Ses3^w0-CxL5V*0GHoMe+T%EkNbx1>e0=4_nA88 zncw*FnQnYN3ZHel=ua0pbx)Wh=RN6XAKv`rBfWmq9}oJe?;QW|mnZj?9I8tPIOwRp zdEp=2&O65!@ARavC!TP+_u$7*9sB5O4)_X>dzLTqD}Q*qSM|e_FYvfO=(y5UQA`{j==_?QoM;D^ULoOGwNInocV9Z$N#p+9}-;&%&v z^FfD~>d{kO>-xecS8(uAeR}!bfgd0J@xEoVo54e})#=gVq;mdb? z_@d5kzkcwm>psz6{?&t99^{fP@++|+`tYj@2c6`IulUo4 zj&kQdQ^z^=y*p3u6<;{bv3!~n_Zh!E@l}@}bWzV!KKSAZ58ia2ep`nR4*tEyhtBYs zD>{0&-*-7O4}798ocQA7$rt!M-G}(@aN+~Md6P5i&YK7O&53zGtM2MK`|(ju>_2M% zd|vdO4|3#p%RS+oIiMpR`q6FbO=o=JmIFEF3;y=e&3SVHmmIj4_~N^IaO!Iwt?Nez zPjx-%V6OP#Nq2Q`(%J76zH)4S+$+w*NpJk!U-<9p<1H`Vt;;BsDW>HjmF@Zv>BzUue6 z{qK6>K{xl59QZp2KmYIHC%o=8_29o8`1pj69O5N+{MGkEb<|Y{5AX1s3*Ysjr+dkF zIil09A6|HPs_#B>Z{hFv7aw!t-CWIl(pRqdyTW6A`fnc|^yMQRKUQb@?H(}abki4p zJbmZC@8;V&zvf)PDUb3*S5I~2*&O1JC;s%23;x0>AAG`7UHth_pXZSAvf64*8^weK{^N$aG%&YUBe6tTvIhPCm$RWIP zF?DetxCivZ#}hC8;okA}9Zxvm`_(>vdUr3VFL(6etK86sj(q%DefKop>e~+&U-+kw zT+0dFeTQE@^p!*NXdnI$;o}3nci%tt)DK@g?1N*q9}egFhZmpt?%tSq;6JJ^o#DsR zI-lf+zHqr0=^z(!$p<>XBS-Y#;Zf(fcly9}*mruFS2?4reE1!aJN49u!#R4&rSJUE zUp@IUKXh}?$pIbsXs+c5F23Q*XXojPKRli*eawS%>eE{e@Z}F&eC0b|ou@0^kIxo@4vUoQAW z*H7`G9~|b}Q$P6ORF@upPv{E|UF2Zqo6hFcJgP%S{(I6-9_?2LfA`mpuY5RXoi1{K zKi=lhT$+FPf%^291NGoq;ed~id^QK_+Rs1x=*oZhi*x46cRt~v9=)dy^pFew;Y}aB z`KT}6ejnT;Q~$|VUw+c_G2Qr&hyCvLdA~X5J70WvFTkxH-saqQ_|1VF^3hz_2PgmO zHRsBCbIC`2gEy!LsA3om)aS3NlBNk8`#oz#Jk4k!Qp`^Sg#-mRNg`7)3A!TZoTx?AVF9Pm-y z>(1?-*73g`>-O`DAI`($sh<9FCeQfNA6~h?sXyNQlPB+R(wQ&v>b~Zqe)6UseC8HD z{NzRs%(?UQ!FPq&<7v$t}fs7 zlRr4TCRTm!f4UgYTzB;Fm{j0j_ z%N73andkPY&!_9Y!vnYV%hp#iws%!_w^nk)R_F`shg zoSeaHF6byvzN_cmdHR|Mb7Q}J(2);vVUFMBi~H%hcR1)qZ#jck9s0mYcX-{S^pb1m zos&O$=_@z#5BIFYN4V+X{Ei==^|#J1{P-+)e3M7#-9zx=DQ^=mochU&JmQ6~dE~2m z2p|6W4mThE##?>5-~;bN`|yzmzR&?a{pr0rFPCtcV>s-C&$~HtZt|Ud)x(R9@?0sYU{P2L2j`VY1;6o3&-PMsp-|3)^{&>LkuJd@)M-F_K2k+|2yZPpi z^K^z!F3q3*^rGjSAGqWPe*Hc9!*6xzrawJj;?HMzR^R2(J*F=`TV7 z-goD3dw%U{zTo@ack_k+$G)$g=8Epl(Nn(V?0e^SPw%heo$l7@p*|eXos&B{d8ad; z`of1F{pmz^ec(~wQ;yBKdT^=BFYoHZ36FF9&_|y5Mt6R}hcDcIx8&1zJmFEFK3~&S zZt;T)PWKgl>f5gletwVS(mkgy{Pw#y=)`}ya39z=?-%=gr=R=Dy8FWK0lmzXzMlBI zxA^Y-|HG>u-tJF-ugH_9?|d{TazRJ>n}6r{3^%;ayFd9#M|I&-mrwS)kMvWYFY>X< z6JGR}TlL{m&wet|kW zs;3|R@T$WH=jjeFAK{cE`}9|j-|EtjU)JG+3m?A0qwaZpR!{n<2M0gRmHW#4e(5}) z<$!K-Xuj-I7jE@E&A;<>rx$;%%LSh1gWqty39ow2@sTfd#1l^X@DYw(UH1we@<%uR z!AB4NdxzV7d{}+wJG~y#L2mp`=ns#1;=3Hs)qQ8byjgcodg{+7PdMI(%l%9zPjd&4 zcl_+5kNbiT`p}hs-p#MM#fLul(rJa)ce#RJUwQR=AkXT;p{|_3Yo656Pj2ZgXV&#I zXZE`XOc2=^>mNX0e(8`ub%$qhOhd{zo+x=Q@-izJe;2H7kK27 zUi!iPK0f9^KmF+=fAE=K`p_Ld@6La!kN)uUP5<-unH%Tnr@lFL4u9)#@{RBMdv^|A zy6C&Z1Lu$42FTLaf4!Q8%6JGPi z4?4(=y5`vYx|i^xi(KIiKODaM9a!=Aj<@~pTkCwIm+$9ywEQ$B$lg^7oHt?NTqb?~7B9nBTIbdxjp z3f|_}IX?2;ywlS=-Rb)_{LbTPKIDY|a`B;a>e0bD_~f47O9r*NIA2?R;c+y8*x#gF>&ePR*I>NoH&sX;wzWkw= zJkI)f%lpsj@*8gYd&<8Y!N)J>^-(t&Ss<-2=* zwck2D_2(1)oulu>uRgs_t8YI%);;-Q9`V9QUw%%Xyz^P!d{wj=Y542T1;mqmoIhjk|%lPgLQf3yIkO@&sn<5xg63>URL|O zyEpiRpLcq@=bV=Z`{`t^_-Gw2eBs^Up(k9P=950|FW>dyqyBV!slF%u?U!%AZ}QA9 z^}Ndmyzr}UKU{RgpRf9_@X3wb%awkKAYc(i=OJZN9@DX zdF$|+132Z9-gv-apPV}{2cG(v4|wSL<-dRb%ncvqP#^i8bK{=b)zJqpddf3>)Ny{| zr;~N{=}Zs0@?U@T@S&63sAHWT>c}e{zr~Lp@(U-woQD^G`G(hAxu4t*?p?mv=bS#~ zTt57+sYhqNInU>#`0&|1XCCaQkEeC-=IOb5zSDtE@W?Mc=exPPtR7vSdiTVi-|kyF z@P+T@fNy*?-*i%&Lq>EN92 z`tm_u;O5KZ$5*+V_34AJy7V!h>c|Iu)l;AE@Zjy8-h7fHy7L)t=k>+c{SF`A?#Y$D z@VUp$zjgk?&p&*3b@a#E{d+h1$Tj`c)sL_Ix2`^2@YDx>=j97O{?Qo@d7~%2>EL&Y ze*Aa8sb>z&JKgz7NA?Qr>X5!+Hy87V3XL`H$$8p5{r8R`tI1G*@`i0Z!{vCw<_Z{y9$< z=jT0uzud_Qf6cG+@VQsy1x`7X2l~(tfA9LMZ(jKAy!!I1j;DEdUVZnBIk0Z-op&F~ ziNA~O!;`Mw=_Z%-rXyVYzkmPi(}!=q%d`KV${T&mjdRwot1nmj-}HUzCztx|_VLwz z`NC6Q_^s2A|K`UW!t-nNkw?EPd^Zp9%K?1O;m>b<<=0%AWBsl3=l?zB-Ff#0obd5S zp7{Z%`$B(nC65p3BCqzz?OE%1%Afx5y=kBN`oh5vI?A^?@+JSfdh~Lh4(iJ*KIW7j z{L=>?xalvK_*>VPK6If69KOpZ9Q2YyI;l?wzS#$lxuS!-eor5Lz2iOgbbsJyKfmCC zPe1GOt`2|r`+MNQ$9KA$XS&eIIz908T`ttc@3_AB;CIk>IPp?PUg)f@obW-u`0u`X zt-k!w2QT*(f7Iuv+<2->cewl==A1g7@X4e7@Ztlne(o3h+5$2e);s| zD?iN#ef_TKub=+b^_O?K;~V|GTj!U1pDw;T=bkm6bW{glIGmSX@ATvwJieO`KJo*u zzv&Mz-{6DGJs}r-lXp1vbAIMn&fE{q@y$J=k9&tM^pYpJmJ4$$4-?<>$QvEy1zvdQ z1h+ilXP)q}ZvN@{p}zXS>D~Fm_Ib)9T>O_?{q*5Go#3D=UFfOrLw)grk6v_^19kX4 zeUuw{vyQKRyT16CLww%0jyJ#XEZ#BI*#EEk^U3~qhtzv5$` zbH3Z}JpBGnkOTVR>Adge2TuFkd-__JbN%@H7+&+{cg0-&ZGHE2U*h2&gI`~{fs?NA z@!xqk>@#=rC=YbSOFnMGM_0a^FZk_~f4TqBdFQ_M?!5i>!AB44@+n__m*}Cs`-k4@ zd6!?f>1&;?>hObaPvPe?f9dAlkbnE-1WrEL=e&95o7}1kuX_S6?{a_-o_to{ck`tm zeVyk6JysE3e@6N%Cul{^;FFA)dKllw7-g2w2`cp@9Cx7bbuO3`{a(~E+TzpRt z_4p-EboK6Dkt2D43lH~~{&axXIeyFS4i6ojFz$@Gd%XeEywbLr{5vG=sVBjOHc3S+f%OL^RBM@c>2IUb1WZntFQaR zclyCkCwZ~odG`}v%(WcCcl_VKf4;+|FCFRUsSmx~H~8RrU42h}^M#)7lhuCv_-@|x zkr(~#qXT~Yz(-CF>jS6xg@Yc>=_e2R@`H}{n+v+buMR!r!~D@7PkPGf4mX@~XTSOK zbRIsstm?q0zj|~s&+=a2JG;dah``rsiy@{gDMLoQyc zCy)H(kGk$ne$iFE*#~a*=mHl!zVpL5zaP%)W3J_i&hVI5cmk(ew_1rw#Pa3os&;})G_b)!HbtC9pw%#I`fyl@*rn;!QrVs{rDu8 zzv4yr)%$TzJmiTU`t9~vU%k5@=%Ei@axIU)J7=AraGEQ+Pk!>HFWmIr)mP8GAP4y9 zuO57O{H@M?PdH9{htK_EKi&D@-r^%1a2-_7(>eKY&V1@mH#xx{e)`Z~JvqjU9`a{S z>B^78aQZH%bm6-?`t#d8=sdo7;jNBbszYae;o+Y;*4>}_s3X7TiGK3HFZF!)G#7qn z)WOSrw$qCq&eO|2Ie-Hn=j6(F{?bcdxcKK?9sKpDi@tK8o_xHE$6e3WlRx^|XYSxs z-#Je{(c3<}=q2yw6MlL3lpE{rIk1*nMU{T;_@1aLc2odxJjk zsyBUd&VKdz>+c6oI^%5~`6}mM;>EAkyZqASci;IUCw!0xebk|g{eJi8h?hR@1G>wX z`QWpC@`9)RaKQ_|+{0nNdqH1#=qs=A@FTe5g-BW-2+>3I}N4V|7%f7eumq&A}-sB4>-gJ9c9sHfgm#%c8JAFLugi z&eT&!4)vp#^&Kwt;g(O|ouik$c(>0zBaiya8(-XO@?(Cc-gL8$AHVp`FS@9!@2qP+ z_+{SpQ_puitWO`+;Wr)5(pMe#`%B;H@TYfp=_+s5`RvI@eDK$g4*Z16y(~ZYT6bSq zS08`*q(5KXqx^DT`;L!$N*_GTC4KePhraUYJic_}m-F7`03Q741h;(K@4m9GAAjYN zuJTVOI(*G%-|_H1>);2^oHO`NtLy%zmps{rFJ0)(cmDFpedD`xaO(@dTzdWumw8>i z%L|?0GY@#Ux9~Ox@ZblhKIXuFILx2@e3cKmw0<34b)1(2IA$*K!qYjp@S-!l@bR55 zbdeu_jg_01_A z<(Uum%e5S-@BOZN_^4+eKjjHud3RsQiF-gj`oh5J?MtPef(=Og^|+trf`=k>X2U4Qz~d9|+o>c}sD%)NZ8Zyt92 z`D9-3)KA{+GxvTkox{%)9&`Mse(neP#!nykJ>iF!uJqwEKlOJ%+D~UV;Fd@8sh+;- z@eTjG_|Owx^;YZVntpJ)hvfZj`{l*`>-<^k=96B|xrfXl-f)@^{qXm0KOOYrpSdz0 z=i!k9IK7(#e(PtSJgVz=2~Pew4LU%AN}Nk-{#tP`{0o`{pH9LAN=*l z+Y?`Tf*W7+U|pW{zmJFgcn)&~x`g8wqz;FpJYedjm* zocDXf7w659{J`(N@O|nH$F47Y`tXZ>-sO(o@X^~nrmlK)GS~C>0)PAA#nasK!#zQ7 zPkNY(Pw|73e$KDf<;>i8^2hHle(q6u_kF(G$5(yflXv*^^|b#Woa*_`M|m|5p7KgZ z`{jZ@?ghE_d#&!SzkKnVAN=Bze8>x5?O)ZS1OMb!KXZidS?BOE$MCCTKi!>EpT6!r zxq%N}{q>=z@1As$1NHHTSN_%G6TS3x&OLyKd&WAR^5NY+eB|C7^ZiSD!Ve$(@@BuB znqN86*Br?Q-OUeQ%@tkL=Z~EEeYLK>oWkonUFi8fey2V0mlyo`NJsY({CMJ}zk2kx zPB-|?op-sHC;R!OzI@P^j=t*;|B5G{@RZAo*6EKY-OPjYe2_~z=;Ph*gns5w9ruD9 zJC6^1e4~r+-udY%hj_pX2VLn;M||yrPafn+z9wG#!k2!;vudDrXgD-ycbdEmu>(4jm)pgEy_56;?6J4F7KYh%LIisWB4LR`L z{X}Q{0^%h?OxK45BxPBbWqR!iHrWu(fhhw^XW_Paw*?*cx)YR`_zZi{o&qqU*P5M8-B z!OaIc>u>!woOGqLT;t1czQKhbeccDzQP9wp1$8# z4{rGQ>AsMM)qeiMVV^$oPd7QnPapoN!*~Aj)7;As9`eO+`J|cF{SB~lXw{`eD<DuKDKvG`Dz}YdE~;*N=39Pj1w;(x1Nis7pV&cQ5E8zw_C=sV{$iFWl#J z!AD-?fS>eoPF*?Ur~Uf#*Lyyxrw^a(|2_1hi#qV0w9kE@o;lFRy}8;?H@Vxrrw8BU zLLTi`kI(!x2l60~@Hj^w=kVk6eR%9Y=~-Uk_g>!d;In;JIq-LzdEkrpbf&AhcnAj_ zd@n^dU8$=`qPhIa$=wQ&YM?0+Q$!k_~|`e=qG=2?OE>40bcrB<$|AZ z!6U!;`wpKxtn@i={X16v>B}ED<%mvnG3R{8lkW84llx1K&V(o^2(3YUD+lMnXcwd&7L`L*{{D`$_?M?;yhmV(T5N6#27eg?f%|Rm;c}np^QG^6cmA^X<_~{;_@S=-{NwLcb*%F|J@`mBIiat4GXL@>U(V}G zFZk)P!XwA{!@c{?ALrq+pAYT{KEdfcf6bBn$jfW}+&ggMZB<8(z4v=8uj=71S5`XV zK`%L_C;jEzKK}8WK5~GkJkbMhdfmnw5Bcz2J-+;CKc3Fhoga9phX?)SUVZP?-SzQZ z&iO@u`I+_MaIi0xuk^bMoao+@9sa-00)HxiD{Z;x`|C*N?vX@RNVO^VRp`aMK4La|ain^;d_! z<_917;}5>{mkV>QzGu0Rm&uD?>cXu*T>O*=`SN?g5B;pp>2DvN>cMUPeW$m%w$FNy z?sSk}dE<-s@&~sSe>qd1KYZn<`#^tu%@w?S^PZpdFqe4C<9WRNZpbhH;DOibJ3a7# z177njhw`G1`t)}XP2bhWpT7FjeaA;#_nx`pH(lhydGCK$hmQK2U%JVyzWB-`9pJ_r z4!MEDcY4V&ecANX6%hk2AkdD0I)^R7QWazzLHJ=2Na zaPb*F_m4cur+VtZrN2Djtc}^baPA7Aq zKA-TRyT2FsqMmbdp)XwWB+pj*(fu}F@}!S@(RaGhQ9ZaTR_zWIW`+?r3{)uD$x z`VI$Ot?oJgIZr?D@#QN$`AbhZy^pth%Ut5Azw`LmCvW)f>Z!|T^D0O3!FPH)?>n6Q z<|7_f_YE9$!OOFI9v=PqX}>;jIDZ;H_YVKuBmAcuefa0R+|kps9LOCU^p;<90G~O~ z?@Ku4Nqsu=*StG#ZoKy_PwLozH~i)k9n6`z)E|C6@K1fd%MrZvxT>#ubdZ1h_&N8< zf%p9JUO#gsC#$}m`3^6C@S+FbotG#3=t(bi;8zE4_pLeyLl3$1T^`ig?f2dN>0YtQ zFYT~p73~< zKYjH%iw_>(dxqQG@k?EE#&`Iv>eEx+oTt-K{qW>3|IMj9%G+h<@ZzVO;vom_EBA+a z!IKVfIp_YP1K#+lhZorz|TIvO`Qe`&>Blc~BIopy z8+pV_ew@RDPWD^vpE>6Po#DdsTYkWSpB%}7XXovcL-PP1-{6-|c%9c@eLk9Jb?GRF z?s5L?cz7=t{Gfxm!&eUBa~{r_7dU;#(|b6rc)%go{E$O)=l#$4z@?x3@Wnp9sIR~G z=1M(tE5FXsMV{c|7k|tn{B%$UUO975scRp9`6oZ-l5cc@Pwx1yzGpdsQ$645BY*O8 zpYE#_4|4@KAJnI#K5_#G{p~xizGphhAAG*c&uQoApub$d?K@uXHTMcV;rI86Iv1Tc zxBTC|hXYQ}@VGbSUf%dj2YBQ|F8IoC`{AZPUDe0uIGpf$_MOl4Qg3xmJvo3|fBEMN zd@r3>hkyFuLoaovzVc%qAK^I|IDhu6pM7{ZFK^};Uj5CT`grltK6*{R4#Ob_bcbX1 zqbps$bY8ykS-s~QAM7{J&dD)<;C4>Fou>~S@pEswSIh~0@KFbUbFUs<@!_jF^f3?e z52y7_I^f42I_kUI=RWz=Gn~%j?K`}5!ka&eJKj~3ue$oniCoDWzv<<@oatwudh~{iKIV^aa;3j} zA3o>plP@`-w|ert(t)4+b>4US;inEA-2e2~Pd@SXoi6z6i_b;4+%x>7D}CUkryQ#P zw>s`0{#xa3>O^NNeC{{8z&rn5ft1Iiw^v;kI(K=&%Uc~RSzz>-FN25{L_if>cT-EdhkVVyr2Hq zM<;W_H+<#G9C(Ju$_G00f#3M*kFR*q@pkl;XLYRZb^GDooyQMvxzU#{^oG|yIfe@k_p5sXFYoEe4?ghCIr!+R zKRzoSzWbfPUtavqcuxmDm=pN$kVk&%?>v3&t@LwG;BOw}N{;Y`(>{99 zgMaFIo<6H{5pH_u2S1vkb zgT8V!>tEGheRa*1^LWaWI_AQ?V2S z99_MKhY#@3_ig9x+Lp^xu zNS_^l`K6C}bB?~A&pYS6y58dr7aj4D8+nr#c;&?WI_Epy$KimBuW+ct5Ay?;-w}D& zhp$rydf7*B{yC>Vd@G#z&<$RG!mEz^#cB@CGv7R`k0&4KD{t;;`1ONx=HGXI;d?lE z@fCl%(+dwcJ<|z3_d1{Ce$E-*a9O{F%bdY;(tA3pPcQlU+djFFU-yOI8@%w=PagTK z4!n4~Pu#!!-}UFOd(AmGoww4BUUcOHU*WP}{Z(K1t^8I;p5%uPR(y0nOa;D>tVkzVG8{_a)% z>{Hi1=jcl(y6Gct@R=Wau6*FPdU7yv(1ULJJyyr>0bS@d^JpKOa&Dh{d*+3npXx_1 z^XxpH=3PGMNEhGdd49oRKIvwj@PJ1y=|*?o>FYck^o9dZx_*x@o%}xXK^?i4XFfP* zl`H$!2Hhr?!{eSxwGnTpLvvf`H^3J`9ViI%>MF1A3ECSp23%| zd~_af=iTe{_1*nIf4=jPUQg*EKlJ4fJ$=Vtp7e7s$b~sNt3DllS6{y1#e?4Tl8c#B z&-l4lj_V5-9=rE&=_`kP#gp#v^My}zz{{N5=N?m!j&zp4S!d=7ZaCGo&wKUZb51Tj z)7LpX-Q()ZmwE7PUf`yWJh?~UFwZmZaPdu^%mY2umzT+d-{z37>fl9h{RyD)YM#~S6TWc54JZBJ!{2#%hZAl-%k5ow^fCAL>q}2Q z;psaa=tlRe>O1c{-}%Bf{NS;V&*tN$x^ihQt#HYSoYP%>deI5q^XmIf5BISCc)4HU zv5#Kv7dn{}^Q{j*J*%S+oZdT6Z#u~%{`l&v4?nKsi-$UJ)001Zpr`!p>cGc8d4@+m z&4)QqPe12Rt1GW3J>xHr{HGV6%;WTxAHKt3Ugd#)>X{>Yt?-y*b?EGzK5)3t>0zZi zKKAp8j?U|gH+=FUAAF%FT+aKBzxzNv{_OZ(w$jnPdG6Pe0TrAFW+>A_h)$MB6rT~BbT1tKXCGyuX1hW7hTLLeEgw5U+766 z{neEh`g$)X>X>u+Q_pwvCl~nAP0r;EPdPA8@(jnX^wkefxcSOId{^iA&o{YNA8z0A zq$^zJ-Z}62jhAQm;DC#M{8Lwd`>gP&a}zJ$<A&-M@?9PG zJ^to_4t$b>kM;3h4&>Kd@Krtj!!hSyuAZxJpL+7>yJvpW@v!rr^;eIN@~OU@`YvyD z<+Hkfhu-+Ychh&ent!W#fe#*i`J@lO-E-<#`EyoZ_4vGOaMJO2c%1iL{`mr*zUJ0@ zJj@#&=Er_>LQnoUPbWUYFK2M`(Rcm$#$URbvmIYL`rYCSJ=DYBJkS@9Z`IQmpR?Z2 z{J!r!eCC+m?hiVvudm$jiw@=;Zuo`(k? zc{G;?PD z&4)bm18(16(*2+nA9(2KoH?ZnpKdy@u72>!k2?Cm?_P5+m>c`uE9S?ud2ya@{*H5A z?&uGnT*>d$PtNg_4}IywM>_a!-t>V>9pCYCj&JJAuYBW$FF(|gJGxIF?(%E3>Sqqs zffEk=@a5yj>d;j_eW$zmHGlkm?z}qgXShA%ji1%IT^+pXLx1?xkw3o3ksO!<`<;gu zeshGUIdC2xIPkHLuKbrr=jab7|KQ>qzUsoW(uMB)mOpjm$h^RdH$UP3SY6NNgm3EZ z_PNL4gU5c)>dK-1c*0>WR`u=Ui{DGQLm*?tOW3zr*J|TfU|VIk@E4>VCirF22!$j{4I{e}2k` zJgVcp`f`J}{U5>$zrI#;wc4k@xt2q9cl*o{9C9=L_q#cLk$3#*sjhnbk`MDX_x%nR zzb|^$-|q+gd{>u#&VTB>{=UP-AH3*BXZz)pesIGfC%)6edAV{g%Q0Sf@XL4ipSktk z{c1nI;GxrszjN}UFI?t`9_rIoKJddAKRE59uYACvukRD5oYLE~{eEA}10VcOd5?!Y z!2z%R^nl}Cdg+U&XZ`7gulnXtzUg8v=-`=ee55;H;72^n(vx{hg<`_xQq12XjqteBZ~HzWUJFe)p?$@c!w% zefqf{_(UIi$Q!-PkA1Jzm2dpKr~i5T@S`)`;DJva-{sJGxqqy#-$OWd@A-y@yx1pa z=7LV<6MlZ%|D*c$$s>Gl=;!=ypZSCTu=n_y19_A$ z{GGF3UwN>ffBMteK0eDAyzuZze)X3(_1$-Lq`z}~z{k8D#hae)3v*(nr#|LS4*4k; zbjHIR%01ma)*lZ#d3ImW+cTW}*9R|kmuq^=dOzZ4p5z)o z^GIj@$;b2?PkD3y(Gh;<@OLje2ao=E>TfR1318``E+6QlFP-MR!V8C7$d~ixPk-<6 zq@((9%N0K6#A+V+Hu1|RAJsF@zB{L{y7-u9`Gm)u$j>St<_~ZB;zuvK@)-{A536_3 z3eR27&hcGt_2Cb{>21#CSw7ug>dH0V^wV$ZXRden_=5lM-oryTebvX`KK0;G2TwZV z>-kOn?C0CmPknyEVGit>dTLrTmJCHe*NXm zK6zN_=AN;S4)S>1KKSJY4s+@~ocPe|TXoEhzU~XSPhPVh1p^6!~G>dM`mGjrs<{`TXczWw&;XFlMy z$`@Ve4WGR6TOISuFaFc{XFkdUKh%>W@8v!v!Q+eQz`#?WB@c*%T-otBtoL7%7 zaJ!fA_w2iz`|kI}oV%y&$6G$=&QGiP;E#O6Z+>_D)P=)2_3@W)c<4_jdeA{%KDZC; zheJI+--HVeeyS^{=Gk|;$tzxT;S+uEkyAO*-+nwi^9g^v;K4&K<(fYHGY{Td@iF)6 z%8z?P4&kCRzvRb0_W@nsrL(@i(^)<9;JX~rTaMtMr#|#jkMH);$9MkG$9Hq;y}t5v zA0PX!dp>EE11tXSIlSQDAOGcoe{fp$(I0L(lb7@G&;cI%;Bnu2##7#$lV^4HQ4j9R z`pSdfTl+lYryo7}h$ozISn110xuXle zI)p5{_N z{&EpbUf0-x!uG-Ic=ir9N?Pemd}-?(QSG!3$1#RnI;?<7eNe^pj`% znK72PveB&p7=6-pVJ9(fF9CXs>M}2))M?d}PsvaM|cV1rT zVl~(J)6cxXNf)`1H~N?tdDPE5%b7XR2M;--JD=^tUmp0VzP@LQcG= z3tak`YkoTiA6#eYj}QLv$&vcL&wG^K-t(FN?iD=s#~)tx>4c}esiUs^>FXZB$DH!t zxqs=&N4fcwKDVv()<-_B`c7Xw%me*=hwHL)>djoLPak=sw>hAm zBmLmzm%j4-tvd9Xy4ojC=GA>5fAoX(3wO z)P>W%p%0w!s7HS}P*2YBbdTw4KIn(HdssdDSG@RY_4f+=e868G;MZ3!9;+)Cc$rIe z;IW!dbL_ob`%WKv>L*ul;O%z-U(fHu$=}_x6%IP{0Wat5vpPS0h0lEO5l-{;Aslk< zKIX@H-{En8$g{qD;S*o!Mkn({7x>I0|9w|a4&YS}KF|8Ca69Mzp&Os+Yd`+x#{9{H z?{Iq$zj|=#%Rl_(-+SlOr#BzrruWp>?~ilvTh*b5I_?Yi%0ar}1LvRKn9H#q3zz5F>xU-t+7=qeXhe!BOpcj5WaY9AfVjXctsF7Uvo9$fMQueqg* z{Fs{^4taA<9XeX+El2Xgk5xUs(p%2;J8B>P`d|0{xz#;NKRDntfApa%oN(xCj_F2c zK0el0?%-0_vpJxlwd=|@lJR(jYk z7v}1y@Ak>Rxw;+a`77t@y@wATedR=b=jaBP zoY93pbkNs6^9nEi{Dwyzzjy9Wd89A>cRuioKJEp0>1fV=bdK+MsCV3Vy5J8VUswC| zwO@aAr@kRaVFWvN^i#fxGF2BP`NAss2T;>T+_lo-&KX~a%pIsmR(HS0f z^|4=lx$$h(*LObBSARK^W4}Lm=3$kA9SXJJh>OV*Uvp6Z+xaV{U#1M zGLP!R$wxd6!bu-~%Y!_^L2vmv8oc%8hdGnShxWr|e(;hX{+MgIq$hlMc~+nA&hbTV z;l`WZ^r5$0sxJrl$f@)6b6!1s%8xt_2nBs%#9q%nK^MksZSrd zc5h8T`KX>}zS0*@_4&hJ`<*v`cs-XJI^sEf;WwVAHKoqJpJHP$9Z!HhaAY4 z+~}hYTyi4!_NmWrI_X1yIe|+a;a88p@aVhK(>yz8pPa*sFaONHIfsMK@XM$C!Hu_^ z(Vx%u=|dN}FfYE(K7Nl@Jn`WV-k#}R(f8x((x0#T%ZI-5AcyM9tLIr4PkFXa9ruNNxi9pa-{G@g9XipS zPV&Tm=lQ1&|9qDtD?D_e8~yQLGd|6{(9Jn| z!$TMNg>&R=M&l z_x!;_Zsq(<_2+py$PxYN%{TKvM|$Yz93QNF!b=X}h10WDUAoGd+{(2+xABuFKAS7^ zWS{!<;3K`Pe4_(hyr;kSR(jA4FS&4D9^QoC9GTOpA06o?2lR0sZ*}>mF8%O_SAOAk zf5A^zeVya09C?-#`oT?K`8N;vc@H=L;KC0M_{=X}KhqUXd51$E-}RHT`_A)8PWU|c zO~2eD@T#L9y{+y6&of^;Jjbnc(UiMoNecboo+V|M%_d@=5@6F|N z&wS&r_v)EjIOqV6b9kvQXK?VJZgi%D`Il?w;lo!w^WwX@e3x&y;5OgcP|tU~+za%6lYjQhg*m}*;>AmD^rx#j`08h$Jn+N4;@)(zw%dPprUqAKega=%o(nEdoqmG>UZZ#kBM^`zNA9~8SXZZQP!r{C6a)hTm z-~pfS>fiw{J^3t$e4`&+^Zw?$Tv+AEdF$u++_##0_3`2h-8|d(t@C)wmGkPFKX~Xs zPr0Mht}dP2GY`FY?xp9Stsh(IudX`In*(~|V~*vW{@&xoFMRl@9v*y=Kl;Io2Rz=( zqnxX=;wRU9+`XqW{P5`ScTv8q_|uJ_=EOaPuX^g6W6$)02hKS+@4~Gwf6PBW`K%tD z%z?b~0Uq92f2WQ-&TH@5BT86i?8^v^w0-x_c5IOp)=k2Devl- zL%8K@)^R`RXa9$A!H<{R(%EA+P+YT2W z)l~<6b>x}f@Y5N7y7I%E&_^A-%_E)f!^HU)-3{=m88YrniWXQdN`~AMl|Uo#kCV_4VwWyr?e+=F@(2u;Z!E&z>Jz-P?Ha%d`2FGrFI3 z9v=AZd+PgYr5By_SC1d`ghL+rNk_Q($!Gh_JA9tqL-fVN`%mGO7kJfoztLY#@xc>s zb0!z|?fSsynSSuWK_7he;Wzz{t82d0gO{#&`!0{3NoFq`ILWiY5vs17d|@Bm7n^+ z&o^_Aw|#W?>>QrX(TNVfo-@cZuGl|Q)T(n>$M#Fx(c;!kJq z;gkpa)Zss#{I%LgN4mlXKR*0|k5BZ3??d`Lw(`NVy3XT|hy224KOA({hrT!U`_syA zbIWIZ)#0amO@1$`Be&)RAGqmhzVv~IUvxEh?r}c(?)L>?}z0(0+dg*5lR{P|Ge)h?sm9BK;8@=RBf4t18x#t)B=2l<1Q`dev;N`t@^u||i z)RP0b#RIOB^x&&`KkYrA%>iEWLr3RdItQ=3(HVc=)zt@I`J*p>@T#W{+z<7KLp|r+ zyL9BQdxfsf-&W6eImd&(<{VzRh3j2)tn`-yzVOrf+&TKdV{Y~F48QvJ!(}elRC*SpR zpV^1Meeg_PblBm6iym~QyIjfv+*bJcEZ^o$e&N>Fd3y8TcklU37j^i{Z+_UPFCUz9 zuc* z_`spRe9G0kbnv@@zdp{>K_7m|t6bwJmvTr4I(hHhQ8=83m(TRz7ya>}AH4dhyQ=TI z^ZN7kwtaZ%OBZwRy?nZl+*kUV6VLj?M^}2`%@2Ch#eE3}TyjJoxa8lw%M)C3$ zorlkR{`>Ad{q%btddesK{4@7^_(TVJgu^Ny@W{da=u4-WclgZ<9p#iR@`4|n{POqA zNqyai`0`zyAMKL^_oLPQ2RGl{V|?bHeRQ(QHD2D!ss8Ro`{AUoefrWLPP&>4@8!*$ z$roMpp}$q0)PY}pxw68?H~#C(ucLH#&rUu4zNiC-9C~(+&u}`gubj&X9PU5+<%2JB zY(C^pUgbo8t9tl*o^|-*Jzw$m`v9kW`0jprNzaKJU%v4b9{cgqk6zB{D<_`m3qM`y zBNyt+9o+Ph2mYBO`of71-)BGbY<`?~A2=_kbfb%B`Nr>k`tobuM|?M@?gKcS3AA6)J=b@Y=1 z&-5^NPvJUf)lVMvIqW-J^rwfpp_{(WsmE7%ryla7K0M}yPb)m;%J+A@r;B?L9(duB zb1T2q*I&-2Z}6+<87}Kpxb&y1XSvarKJczRTe}r?2%Qe(=K~uXN`h|LJ0G)H4V4p+7(9NC!Ce+2P@r@A$zt zzk7yDuG~XU)y2#6N$=&rcX{%jpYYM0Zu;Tt9)X`O=9lj3xzDWhqw5N%@A9E9eekD; zesH>%=r6yYs?R4r+pn(ga`n==-O5M%=)3wpb@P7uDkpUCyJSA#B;j-U-W?pYyM;{p#rtk9^6u zJ|6}S_kg}~L`V4LM6Rc<^tKN^zss-n)gLZ;%imS|^!NT_@8ymT@_E{K`GA|>a5%R{ zJmS=Qlmf zA3c7it6Y2j)_eK&-ah&G*gpE>3#Z(`LkB+N;ofmCsV7hN(Mf$cb~yN=9=xmX_`|{X znKymqhaPymsUBUeazNkRJ}bY}#Y67kvrk^lA-?VbzVLnSlOy%yPpdApz!C_A5WKQW})lV+qk!L*NQ^z^E@C?UgKEp{D zy1KvIySx2zV8z?LB~R+lzI=xhFZp?@58U+RtA28CuG~LYorfPzKFJ?Gd{%Gjjt?K< z;DcxPH~r|WFCO;sjUI9;$Lh;B-tuq$;O8T}<_T_dgde|GdUi7x?i{&drN@{E{#Go!4I8cY(|oWGE`GRw>8dZE;pP`# zJmaGuAN94Lp6XlW4u83mC-dNU06)6z{L;@{s_R+q@Zme$^5Pub%_lti<3&fl!Sy3t z>fmAC_^H14?rFIAg(v^jH;4M$XD-Z-{ZnT=X0Fv$Pu}2!n=k6~RUYYT-sD3a_o}(^ z9UnTu{Wo3pr!ODOn|ge++UNJweFrDp=2IWJp@(z)rk`hdlsoqY9`Ml1?+=|;Jn^A} z{_y%vNAnC1|M>^Ec{IOtaZm8moZw^C*FL=M$4g#4>&It#rxRV&=cD<7pHKAAUv6I0 z&m1}DUZay|xag0E`@?%U^?}zM$cbEfj}N|Z<98iief6;)e!Sr2qdE58eBqBToi6JK zr+bDT&ckV5%!B*EJjxGWeF^9HRy^fU?(J8fF8G^2xud&W(x2aQ zOK<+sM_+#VU9gYdaGHC(?ZZb-;O7$_`l)LlUVMjxf9lAQ^LX>mv+vfG?)vi?Z}s8e z1D)V;ub3NtdX^73%p1Sx=00=IvvctN4maNLTGizX{qf{Kf7IohTsco~xaevg=;XVc z%f0n6-0o|7nj<*f5Ae`ej_s$T`ufv{e)zcuoYUW&@=bqw${$_%pIFlXxWS6+5H z(AhaW)VE(Bc-51ur|R*8ZuY5z4;}TP58w1NC-UOH;J-TfxIgiy7eDaT*FB0C9(bwq zC4T-cP{%%V;68CL!EdF5^YURoK6F!`9`NwXe*Nvomk(C@>1)5b_VEE9zS7P7$Q^$2 z#!tT7rJs2>*L+kTJ~;U2UWCj1m=k^ZNw3@b{%NHX9#ePur@!Z4oyU`2=GDETpZ?C# z5kBwDH9SZ4p%;9!?;{ykM`R^QE_C>?!K!7kNW1xoT;my{JW>rcTcNJ zXU}+fZ|?a?4?dVL`k6Cx0S_E>pySu_f;ZgixR2#bAH3nj4}Q6!7u@Q>qmI8@<%6Ey z(;H6x+_Q2+58v^WQ@X&VAAkAae(+u$edtfmS#%tv# zzfOC0-gmg0a4A>*s!^v-_O>R`d1Pc{=E4 zp8k&d^y8cJp7E7e`gz9Vp}Ok*?ipTlMK9;vLvl|?zyEZGn;-n5E8Na`FURnh2YH7F ze!0WLoY2=j!B;t%_~~aK9pSO6O9y!D$9tux`Gf;r_l2C8Cp_usI~~n|K775bAHU6= zXSt>KZohfrw|@Lt?ekq36<+q4C;iPUyy|~SH}g*q zxa31#-AC><@8P!}PJUe1M=q`Q%PBwQML+t&#RvDK-zC1Q2Zy@mi9UR~3Lm|8&ojU7 zKYG(oKj-c9UVfdUi~4ZjOJBSvKRJ;PI?4q<)Pskv>g#(DUp`H};PjpD{?793zA&fy z$SIum$(ua7ci~Z=-}1Y|>$`sH(7`_Q`k{0DKI~avdit)Pyr^rQ>4c9wOuzZaH}&NO zemcsj{J`gat~+)zVZ)FIeXuJ-}z2Aea!(KK6TE0@}_6_?8C=> z=h=Dq^u?P`aF~1b@l#h`=;D6ogZgr*4m~{29Me^QIaP-)czKp5zQ3f8Iov(tAxH8I z5B}!Vdp?_cy3Km#k3P;>-5*x@lnXr7o%5l-JjpA(`0#tho9^)I>zw}dgWvA}z4^gs zIy&$9bA92_UtK=StvPm%pYY+sPrT%o9`Nt_Zl73-|^L79eB-^ee|ZY zT+0jHS2}nPk2?O&r9a&A1BZOMr{+F==f&#ozUGK7`r@arTsqH3_mWjk=|E?^tniy3K736dI_rZcUVPVAKlLB0 z^R1QMe1&t~oAi}Oy14h~;ygXzaGvjY_&ukiJUHjQdRFJ@1wY-~6Y9_pZ}{m(mxpw* zI`2O5`z}B9HwWI!CqLv0j<@xZGq~X3J3a8_JKvmlf66Ib?h*F`T<#(Kzl4V$&Z~crFR>$v|9MKsreB}oo{rRLXJnEec zJaCvpygZwm-8ngyJ9Fc``-;!_@eO`CgA0E=>5kWj`kQZaWwqaY^PjKkzzH|Jbfk~@ zv$_}DQ@_F^mw5O+!w(<0eoOI-u-0%gyc@BR$@!ed^b8zBsj`Woi z`s*(*zUz0LZg_f67w1>|+*kaAM}K(i)0f`-x9U56;xoK-x56!l^xy*=a*v08_`ruZ z-14aZ*ZA89KVJNX4v!>U&vbKd;4eS)x@*6j;2|gY&=EfT;9u2I-*@%> zK3eUkD}Vhi!|fj1)u$Uh@RfTx=aZbnVIO?f_tnRfKKQ`rJ$!J$tv}rEcYg9u{`u!# zwU0h;!UexPz+ujP|JeT5R&%M2?|gKQk5==QE z=sWSiPY?OEPk%b7uP!~{wjUmT!R^_(6%XI#$K04B_|)ek9Q1Mz$%p*Og>}~#PCC+! zFY3_4T+qqfT+$-?Vf1aa{Idfm(=NS%l>7_0n@^2p>_=Dfu zc<^68ew_CGu~l8?@i70+!v!z?&Z}qM=%o%G^uP}f=d8Y~YyBH;xs?;Sb071K9&pe> zzTE?O<7=MbR>yw0gx}`9KnOPdU)Wep8j~* zZ=OBN+ikeyMPIz+*8J%!H*l%rJD&F8C--s+xA)HJD_8C-_XfSy@%}JAc*+^y;5DE0 zrVm}@+KLBU_^Ly9&wP_Jecp#}zNdrStoHGR4)k@NFZ6XUm^=4_`7obyM?d`duAcAo zrYC&P(VY);lu!P>#tUC~BV2X>FZg(*Ido2ORYA zJBz1tazqch+Rq=khKtU>(si}UwZ8O}uiZX40_GgT8orcAvoMJ3jQKAK&HH z-~XQB<*(fH(LIgN8ocCg=F)tM?%u0;l@)a^Jy6cl+EE@@@6q-07p9XZ7HrxAk{8)!{#%%p-l&w@L2a*V&c!Q&i0bc4^F*>@67_ctH)aeqzy)TN&~&g1Vrz2(90hJEsm?+%ym ze4!scbN=0<&U?1soLb@Hlbqr&U-C~6`Ec*SAt&(ai-$bnYYwdZq_%ct zr3YW&lNbHXHN0}AuJ3$xo?q(7g?;ehqu%AfPrtbjetpcH{9aT?E)wF60$Y`p^Ymxxq_L@pJFUCm+-?KWC#qUEn&NO=!B1Zj*sfdpZ@s5 zM=v>=eAJ`&4yQcBfxrFoDo=3oRUXWn6;Ar72QU1-^HmP{Mi2AAH#)C)z@Z*qGau^l zfxha>As%#xmrm|Ked+Bz9(<8A`{B3`zx#$h>ew$o?g4qk&wkJ9>3dxtxbVO0z4Lh3 zM-TeT4?pF>KEBWmPy6KFdA{Sx2k+$wAG!0L9`H?F^mAYG&+n0baKm|`(hPv4vN zy|&_E?)7sHZ!4YLAFDd>!h<(o^pkUV?0=~a-SCw!_pDsIH_QXx?o%ti=2IQ{^queU z%8mW>#>;uQ8caWCTKJ-_A9Y7W(8Hz_{%r*t1exva*Zcl=*nm3&5gSBv%<5(ZSK_N zBi`P_tDk50lzw#g-in8Qa%n$Ybc18+Wv-m#A0OnHAMo4ncZT2c;+(#6PWOlO@?DPT zXddUi$Va)yhc58YPp;i7awAuAZvNnx2m9y@uYT&&89)8u)JLxD$46cI`W>Z{y6!Ri z;G>^;=MS9D(HCy_ioZYPP`==T*E#cxAAR9+PF;G?^)>&kbaCHV;ibQR`l#=je_yIE z$MCAl4}9@c4FT_DOu6*-6>%uJ$a!oI}QJ??rA#*9$@<(U5eRs}%p{~5> zORvcnKX~VN_~nc~@`Ddu_-~Hirsw>wpL>#y{FHz7)KQmT@ValNe!k=J5FT~$l9O47 z?pC^+XL{`F%C&sJ%?J6gpKt2%L%;dm?*Sd$7kr=hB))jk)j7EI^K8F;bfu5`f^YQ0 z*E#$6tiF5Jv%2(=dwSAKu0N%>{H>nt|JpMi{5CKA(Z@dc>9MQB7e1+PuIPZLee|af ze($QgTIobLt3LEMN1m>r|qwUKF-6-2l)7hufFi{onCTBN4)3@r*rtx$?q=Q zaNuJO_^r?UJCLsQ{FBad%zypymIw2JFT8Zp4{yFW52t*?iKl0}tnkrK9rf{fY@d}6 z$Gw+7e#rxV@=ISjc(0y0kr%xAslLBIJo9&jM}2c>buaS6y+PNhI~{#D5Aeu0o^nG+ z_Y@xZ$%Q=8%YOLb#B;|FE_&Yf-g(b_mlG>J&N~M$eEO(EC%Vh8e5$A4Rds*1(v^Pr zt-gDvs~pRh9A30vfBW4h@=YK7JnOHHb9k!fnO=P6lYFW-zw1jEa}6Iotn{@{UfhG~ z(-oh`^q?dE)SUi;yc z5B>ORAHD3yOMd=_`>B;~d~^R>;g@@T)%j8#{_9H@y2+LM&%I<0>7|~2aIN~tq4}_1 ze)Z))o#EiS@A%V4U*GYhFZ}K^JU)fbdG*|5`W&|p9{E&XU-jrMhw@7YdEpm+?q&Pk zWAdgR{CxKPHk|zAFFbg{E5Cf?1O2_H8=P`s?&)P-oTHm(b?o2a#nXQEy~oqa7yG=Q zzRMfG=t_Tc2N(a{2l&2()3f>IgL>{q_W)e<_nz+X$kAzi@SulzvtOS1t3Mv_(icwo zaKF&UIlA)SvvW@apFY>U$BQre<4;$)mjn2m_Z~0%PwI2j$_M?w^nU8)JHORYSD*Kt z$BTdP(Scvi^TqFveV3!2eSCvoeK_SF5B1;Aw)Up~N(H+|)n&hBY>_x*14`QEeo>fz%a&{xhpTlIt6Gd<)~KldPC@v-`yoO$wI zU;B4FezvM_bx+YB4>_X0_g4P9Pvz{sKJ>K@4s)t5U7V8}eB_V+tNN#{m#yl}`Q)$r z1uwYqryD=aA$+?&zRS~d@8NmqSzmKOH}hscJp95RU;4>|I_?L*H*#vVPpw`C6 ztmf5zI<0}5E^@#xINc}wg_}NfP+uM|>tn9%Q*ZVCx)pEtmOgZW$KRoR(U))d!ofGI zeDhmF8(-DY&wWWhyxb$^o!)#=_eVa+ zfoD1Nj3=CM``xtvwt8^tPdDf3L~r=vd{Z5~<=uXM%?~)pJk435R);537FW z84h~Tk*;z=e|_AG-rMIqzmLLs+=?fB^27h#KIimP7k+&3pfmsIW#t>(bn^YCzV^{Y zU-&NC=e>OMNgnu&k9)_Q@DUF@>FIvZ4_>;-hr0Zuv-^`S`of8~zEelOm;-&_frH*Z z(#8En2f3G1zbESQSv@@EM4dm?r;k-VIy(=)_x!l5j{AZB?iu{#jGpdsy7EuInTOBy z;mbkKbmp&m@&)(w4Gt?kX`xBByw4(gdZ`1LdYc-Th=_qo+MzNsfC@&Pxz`tXe(@<|6e z<7Yp9R=mxrbLN_V^jFWbyugQtbMk9mCV&0q04}+LhhDq<9m>=3bFwIIQr@x#EN01^0#fnO^$xLm#<)7hkLWbhDq2bb-%zE4}DT z7xkSp=d1qa4KMrP_Wrf~aDM5TKKl4h7k<&7PV|?fIT!f4U+lwoe%H@xuJwfr?%5xH z^S$Gz9-Yp5Phaz6?)j&${d}RXoZx5Q%(0x~V{WYGQ9ZdekNU|ge0=c?zxlz7PM+0+ zS3Yjjg^u>~i~j1(XSwwLv3ly$;bZUR{e91LqyxV6GHY9}}ni(iblE;H3{7@<1Ovf2Oy(c*v9Ua_PLjR`uQQ z@0yrbaX-+VKXNm1)5m`M_(Bi< z$TMFq!c8al2mIy+e)ZiWaz;Nst?JI4sJHtrzv|#i5BT^_U-j+d|A*@0hp+odKmPH7 zPW<769LR-!_w|t<_sFN-Tlq@|{o!*Se!n|(c&Hvf_|0E<{x$!2;H$nI(UrgE^y7zp=3b8MSJxcV>q~i%3(xBC zfey~o)$g2s`sgb+d^QKGzV0JD+}HG{1Kr#M-m7Q+&4GG+fCEpy&|Q7H;vxU);mddZ z^pP()(T9$B$vOXh_pHvu@jcz}fDeBDxF_|KAARwpoA-FZZ6DqBl?U(bmw$X#c-7&< z$KK-uKmO`_mLGXhpYDFgeV@AMC*ShQS9zy{-$8TgS?=vqXX4?T-vK$ZpTGQaUR^ok zBVF;O&(z&LMK^uudz`PzVqv{`gqV`_nwZcXLCRw zIhPl@(1|}EI?o4u@W4|p@z>{|^K&lowqJhexH|_Y9Qt?r6S;HVetNF@ z!-FS%%#VEVOPjjUYymWw@Zt9zdtNO^NIp7;V_~n`Y`uV-_48OW^NN@Wu>hJFa zeXabZ6aCn@@b_qkBjnIylb{eB^H4 zL;kLz6aC$PaH=D(^x>Pn^p|(K$f5km=iBtem%q--<8Ghx{4;lSQtwy$>E*uQCp>Zi zr@DNW+c_unRi7^Ec+Zy=o~KrL^@kT9yzTeietERo&qwzQ|Kvnpd4d;CJm_c+?V}qV z&6EA|r5`-_t508g!~Z#bR8R8JbkFHd6auOHy_TcPk;HOr#xL&7f$v0 zrN4PqpI&r2t&aWYJ)19iqyOqVU7Xh!j@>?dJgZ}l)u$WZ+_U^rpAYnz`SFa0I_6#- z{OQ7fda5tabTgOu$h90<`Lxo(Ir`As3OD|I*H@0{jgK7qE>G@5`|!9AkNNT4JWoI9 z!Y_RB^E-{V{dm(CPxqO7Kt2z`1qZ$O$Pc*jlMnm(Z9o0!4ljM(C;raRpI&g`O<#5J zwwhD9Hz%I)R!83*f4Jr|9;4m57bkR>P<<$K}7e4aYv)q_l z=isK#>~BAP@S~r;p80hffBWfSKJfDULI>aFir)CrQO@AzH@^H+4}Nv<`W8<6;hp)G zGw+@I()rcuyWeT}>Em9bhv)Oon_F{32l&l9zPoeI%fGsGRfpc{dB(>+b?Ijw59^1I z9LbkD^z{4ay?*jZ2j}@IAJfm{`k%J`Y?WKO$Ok>mAz$F3v%Jc)e7L9Sg12XU_)dRy z>EONj;1{0y!pFCd@v~n)@A>Ta2QPf-z$ZEO9Y6i8`s1sg?{M=?AH4D4^XGV|=f0cw zC;uicyzqbz4t;;sXU?T(=lLby@OdwX?gO}dhx@R8^ij`z`5l)py2$J9yn8|)e#3#k zbNa#O_hMBKPv_yZ-+O({nOyM4e!Q%FbuY-}@A@CLniF{G=h3^jFXK9p2kk`da;N z!D$}#_n!WAk$X9#qi22}*VlXfJo}x{kH7SxH{STti!RRF59h3R9UeK*XZr8E{Ls%l zTltNb-0|6*!GVXlv+_$W=?9m3&eP#f;AL{qDlyJDtrT{x9vjX~mC@>b>^eT)~5{et7bUFZ}pW9X{|ye{&~KbkJXY zxiWurG*9~O`Z+)6M1THGT^mk9l9sKSA`}9?pZxa`O zaLBbhI8Rso_-&PE_~D@k-tG=EbudnGbr) z8(#2uFAwzOn|ye-(oG%D<_aJD%qbrD>1)p5+v(&!!b5#N&3V;N9rgLhXS%`3Pxpp> z{Bl3tgv&F(cMAD;Z)CkB3E+654reLUG-*txbUJMJaVG%oR^2{(?kCF zsh;!tnAfkJryIWX<1769bI;LH-(5Ytx-Q|!!bdXE< z>F0i-z4!X#hKIRurx|$F5>BSfIeb?7H_4q3n6AvBn z^sJ9O^1(dti7vjYBcJ?n|HG*dKj3^j^2KkwR^RCf2VT4He_Qc}(>?9JTevsD zdt&AZFZ*`6gUfuWuMXeM3mwd>9N}X>J)F~zANI-D=kU-&J$>lty`1p%W9Qvde6!LE zE;!_A)_4EHO+R?_!Qbz)dk#Ln!6&DO;r-JJm-F!I$2U1~o_~CC-hTY(1Q)#K5{~K1 zkMKEXF6kog^z>d`e#)`?mGABce9WzL`1vlU@X!MvKEc6%`m5{N{enM#=%x=`&e6$x zb7+3>=La70EALO~OJ{ZHDra!5_B-bu#fuJb@Jqhwp)UM%RF}^3=f3BIm7ns4Cw<<8 z*FL=Tf#Y5K;Ct*@y^lT18J>LeJ0MT`@_`<7R*xUY#;ymi0|sV_wH5rGnj&``5hZ8P2l`Fb?FQ0h1cjSUT>dAw7wO`)gr#D>R!fD>r z;VU2UlyAQW{DhmX{MFxl$T|J!1{c58(Z{N;JkWvec)M3U%LN{A@rB;>h08uU(idOz zpuT+RgO`2q$T{DAhZ_!cJ-ff?=>7M6bT8p$KRxl(2VTDGcTqiaufBfp!f!u+rZ4n_ zOK#ziTlw?2~ujy?5T+!lggH=8>L$xBR|2M@M|%e@##P z?2}XV%$;Yr_{$gHS9Rq`-Lu}yCtu)&XU-{p_{szS+$Z|Wv-j{l4_u!4?f&4CbDn*N zmrn4}k-qZinXmeq8@|J<9-ZKOAAb3!ll<+z>+AP}{+@rfPai&h?Y;TJ+jsmttE2zq zNgq7*=ii_D$$|UFT*HAc{qd#?zN>otfy-*n_4Qtk_zj2L(?PEIr$1cg(|&rWqpmvi zribT)c;H2M^L*2H_on-U-tk@q zUpij2k6-Y+Pt-FeI#j zK~McW(?dStl0W{qzx9(NIQfCM`BcyQ`*hkvFMjD~-tgp$d&zq|zgEwCb@bPlA9Ft) z%!S;_fgHjq7jo}jn>x`IZu&WIzUk@y##gSrhX*e>`6VCpg&S|W!ej37mJd3bo0%{7 z7hL>>i=I|E=^-Eb$?4oD|Gt}7c=6@K#B2WHn>skB9{l*huMZvIrZb=DMtAzqTYlsd zU+3uquR8J~U;28MANb6L^Z0#hPVlBHo#oDc`pK7j-8}J8uGRND0N+i0-J8zQ3toNb z<35E`U;NdI>83tC^x?1f_Wi3r zz3k_=JksqTecH4|>Uix#xrVp%32hs&_p4^AjKa)i;Ow zyNCQvo>x!4`N|UO_;;lbE&eIux`kHS#%dfoQM@PSx`dIyr z$vxfVh~DxnxANw_KG*4nFaGe+8y@*l2M&HZZ{>se#uFd8mm~e?ZhoAf`KK%1^5h=% z%zrw_m%i}RgU{w1Pk!qsPoCkK``ripa9{8fKkxCDYkkzUpB|p&j(+Bt-~Rsc-n_yE zzy0{iDL>`yviz7^D<1G%w9kCNEl>0_zuwagUO3DfJofRI?|kI9{Fy`i?8irb;GwVn z_?rWK;i4nG<=wqwp3E=&&hw8>e4?Xym0SAFKKObMw|hyyl|OQTr@W~Thuq@FXZpdV zAHICWi@xgdgI|1rhfj2qi=*)Sj*t6x3=zk7tQ=9ix8(Zw@8-D`3qcix*Lxz- z^dByLF&=oH4^`|So{FMuJ`6d_UT0g$S%fFld{r68Fx~YSQ_w>{sZYw|er=Rcg zp^j(sNe_4~!{X{e$G}m&@AK%rHTRz}r9@OPO953mlKR?|&{Gva8=ELs`J^3QPaP!wXd~!=Cx~VHS z=1*Tb;K679$ss-9-~(Os!&5!;=3d#-iT~zG&f$D&AK&nDA6YkFa?2Nax1Zj7)x~e} zr9XXqSI2og`ODX@>f7gD!^eKQ;w^v9JI7zX`~LsV!-2m#=Gl2U<`2JSuINq&{@4$P zxuFYx`C+d0#eC{uLZ0X6b+urq)EB@01F83Lq)YaEM zy7R|Ac+3f%_)2g7sOMgCZ>i_Lri1->>CZPf<=A<1B|n=9)irb03ROagJ1BNFTT;hi`=>wd^bPvz^}jhd-+OF=iQHVgjZkh>bW=g zuMQmi)t6rG59j%*zP#{Bo_v>Ie&FdGUA^N&SN-sJ-@N|ke}DYf-%~#HmrwaKx9Y$r zcYNpDd;QFX{FpaB!*BkrPyO_@&%3Al$h$tr;o#G^-tod;uH}RdTl?uQw{iiG@A}Ds zJmMo?m(}&1ZqC62_r$|rKCSA>p?t`N^Y~A{@#3dk;%V;i<&*mO(-m$!_#uD%l23fR ztK%Mn>tgVH>|H;3Qr|j$^q=#quljs3_weKGyS%9f_j|bX-Fl}JoOI@!cX^@zx@cEsP2XjXs_a|M=y?yh$IrH?pKKs)VKl4g|zWL5) zec^E*(Z$@*0SW>E; z*6HS5Ugen{^oEmO`tVW0ecO3B&5!%Rc~AY|;=B2BP9EX$E-(7p zZ;t3{&iP9h>-ecFC)VwkH@Wsy$31Vp@!=CZo-l8$cyGPad-YBayye+EsRJK<)sY7|o_@gXi5I>2@I5?oB5(AVa{-6^`cD79 z)pKv@i>Lb$U%7-69=z41n>_5-$DH|2SN-kZ+D|9^&6$3laNl&!KIibZ9}c;;&pAAu zlRvq^6MlW&L-eMP?|4rf{L{z1AXjq42Xn7KeVwD@&-9Qx`}y~;?|6Fu*80pB9`cNj zIr!?FI((&vJiFKJ^X{Ic55970KR$3+mlyNFUwn?kM+ds`2|hUZJoDwgFkg7fm32>e z_^B_vTez&N&nJ4ANBiXzpY!U#%YS*`Cm;DHcl7rAc~L#Qyz|3-4WFla{{J#x@R<|q z>hY1U_QRz%dw#aBM$9A9BLI{MxW{`~VDzpZ`r(+4m275w_Smz?LXJXnWAj@=V@(o=o=@x%)rKG=63 zeoyzdd|HRweNETZd3fA6?koM^gP;ETm^;40OAonpUJmuKpFf`V;b9K^?#dnC;CJ4< z@>?A`(Lqk}aL>_A4%G3xaF%}N5Nzo8Q+owL=>1dx^(Php9U!9{r-Qmz@<{1vU>O(i*@v{#uyyy!zzs&7X zyglKC4_G|w)%UdLWluV--sJ&axSW??=gpr!=Erw9+)w!G!w2i~ z1t*?zA)j!o@0@+!)iqcAz{k2dQO|Qr7x{G_Z#=Er$6x!*iG293|7(5V(qFyLzN@!- zKkWI?lU~;8r5<19On>;*g@do>)z_b1_wYiz=4sC8gumQ<&lmTA{&;SEmvis@d>ftMI_^Qu$y5nJ89X_Zdhw>>m z@Y7dac-?0!p1*slXB}Vrou75_#!DX6rO(WbdqS@4civMj%_ZO9!jCTWa=)2ta|*xj z^i~faxb@eUZ|a&$`7+=5s>3IB%pG0vb$`J(bFZHq!z*X{d)J4~a%FzZhj;wU5nbt{ zKV9z2k9U0RgU`Ky4?N~w-sFO>c=%2iKFTfq=nb!2($y1RxcKM1b98VI?8H~j@aFf{ z_p6@n1G>03@v{#v_^itfJw4TNFTlZXzQVb}Lq~P_q5sxC?`OSR=eO^CkVpBpUq5*1 zho^g<{&K+=c|0Gud{;;A<;gj^xIg%y9$)0}nZepB{Mg z30}D9>&Y*D?1LXq^J`w@NPT+gE5~@^FK6=O-4jpmbl{7*@?AeX;G!#C;K!4WNBQO* zZhhd_UrzMLOP=M*li&Kn$8Y$}Dcp3HFXx@Z2QGD;cW>YUhko+v{<=?x)l)tC$dx>w zv=2^x{%M__e4!gZ;FKG42Df#5e^(b?zTCDBpZvNP^rauY_;t{E_|?JBc{vPrmRUe*8T7 zt*<_wd^BhD;0t{8gil}dhrc_YdFY5^hgA$|*eRdRJ!~{p3SGd30XR z>~l|f;tL1f_)Xv3@A5!LxcH+lKlpPTe(QdpUt5P;pX=7Qo^Zj*7jsHSeDI{7{_^0v z{5i)Tx#ORC(SPR5eBmVzc>RpWyhrr0PG5ESL|1yyO)lYu{KJ_4Vg3 z|MZa)b@>60`J#t=zpYQZG zk8)*B)Vr!L-t^`_9_qqpzU2>&RXsY;2akCkZ}Z^y#P5K6$3E|TbIyJ|@WfkAyvv1k zx!@NZ<_%A}(+3~@yz>`tdLN|^9)EhLyK{0vPr3VOKfK=6(Z_eWP@iu6F(>BXclGI_ zFJ9)0|LV!Bys0NQ@+fckdD=%uKGEAgIa7z9Up;j_;ov_V{ccY_ zc+!JUav~r6@|}+Kg%2O!<$VjU{nqWH2Y&Q3=X|x_I=$dCFLHWTUwJl1$F0*De|h4s zxuBz*s^cj~`dOD7^_<63KIGna`00hGclQAN&hrN!e$eYM-uA;m|J8Ro;zbvI`Qu)s zr{4vA+;8e{)yGf1=DYrQOx{n`kvsD(SLQ~(`Jq3Z;IrTSs82t9<MzH%bp_TjCsdi>rU zeax}E>uaAJyYKXqFaGK8JbmGo6W{SR*Xq!l-*U#kE&T9!ms9(#KewN6@R&>afyX)c zeWyE~?oaqvec;4bKmM!ZJih$I+j;pkAMPRh(@2=|xw1(p?^%(}$n#Yq^tizVg%D)7dEnK(r@Hvcmz?q$KR&@}-9Elqm)mXNhG*ta-uY-Q@xsUbX+OUD@zMR|9Nf;C6FK3h zb1U55o#Q`$@R+%Ri@$Wz&;4S4`JwJ@{rL;8{P2UXzTb3CK0K|PJ3jE8Z{F!Bck0s- zUwX{%{GcP9=)q^YIIpih=2RVh%_U!6;%%Luc-yBQ-P~_l=x%4h5R z)(=nh{H{2szW(&|9bfv<$$fy2x_orc`wj;^?UxIE_TwvWbb4-`&-8^yUHIv0pZV37 z&hjTW>e+|4cl(^@Ki&Ca4(MvXJo*l|^DCb3J)Ugr+dIYPkH8(`Eb8E4;MZB&bW8w7EbqrIl;qu^)KVYC%o~aiyY`9PyC~!efW9D z9}oAFdjoFygikKua*xoB&-l`d59&BChxD)?U-^UAJkdvfhodVOZv)>KJrO#x&2#Rd88jb-E(}f?i?Ta&A;>N z(owG9kO%t6r#^i3RG*)6L=Sw`agWlI4s!7nKEA<6clxT!2fWm!8{F{FhwpSSf9l?b z13q)94_xY-JN5lPKo|b3>eAWo1O4sCA0GH;KKLZ3JJpBJIl9{qw|U{G`dfAIrGs3{ zlYa2)hZkJ(j~}1;fG1txqoeuYgZlc}FGt?x!8!f(=ev4x>R!7}2R!I1=k(#f-x2d^ zKIlY0{#tk5y=Q*^)}MZSk$dla!w+uv2L0ftlYRQbClC72kzUTx8SmfW)khursz*=w z{4Ubpy7^qyr6>LLmlO5nh(7KEeawNUzIfQLulvWm(8;^=_~Xq-zT$(2cevD}w|m39 z!3&SR-sx-}o#($g=FMF2OP=kMtM~MuIO(mPC;j*Uhq-~%y<#5u$$vh>VgJd%<2xSe z(O+Ka>K#7(-l{8~bo8XR`#~Rd>8b9&fphM^?K|GS%d&#T`}ph~UU`r&_rt_17oPHkhrGxKp7ik@U%tX?U0&R8^Y=kNIhU8Oe2_c$tvYu%K{vU=+x>y(RvmcV`}~pzKGI*_=&BxF@POMs-~Il`@4WxySAY27&|i+6 z=RZH`A(x)~#e4p4(n0RNq@NK9N(me@9?TGm!5QYpXl$q`f?1Hd6Osio?Kjn1Agb} zt}osA2d~`1&4;bJ`qEdUm~mRr8lk2l;&v|pGK7Qw&lViG@N4mSO z^!HtVIa7~5@+L2Ib`B1F=zumo z4Y|NquJnV4Zt&}iFF%~)llt_VI9Isjz+BLSpK|)#ez@@CKYUyJ=ziL}dg@!3Kl}Nk zz9-&rsE4O~s7p_H+%M+Le!S(++`DhhtNY4#zR_D4hn1399TdVIqZZ~N$De$=&J4&ZWsxlg>~Pe1dEC*Jzg4SqSMm%4m( z9xn625ASjb9~|aIJv`y?lq>h4`tnSto&1r<=ic?5`B;6IXLIhnd^iUOocyH=JO|bF zlskO43k!^yLqo0@Q;CPEKJ5 zob-m*JN@kAhdS~{mzf)U`9~*p;N!o2^5UMBKmFWGaC)Z~-1_UIul;nVw|(x#nPWU> zoxSwrk9*B|`}v3`z09xk=7!JkIcJ^!a*MAy)t4Upwcq_i$BCEz_Q~gdeB}x+^Ro3F z?)h#`>5aGg^fc%404II;!LLY^%r`xqg98t`s)sLs{chNAp6K%) zKD_Ye)673V&H1dSzqA+WYeAnOo z!WX*mng4v?Ge7k)=hH`Z_^Ll$&4qn(W8UZ@|MtOqn2zwt0iEbWKXvK%qx1B}3s1S% zN8a$HyL0sLJ0chG&{sV~rolecW&Q!NW&= zou}{b&ckC4_zI8b)_%D-=p9aZqyshX;a*5%cCPkz8}{^Sup_Y!{m@-#o5bn{)_@Gw`e>FOSK zA2}!I&f^2Gc~Xb3^5&kPufB3CFY;#pd${zGzpZsR&5gP6oeunmkG^=h7vzvHc*ub~ z!^t;K`P5I&t;3I>ce=`}{&b;(KD+UkGkoMwUioj18qoO1jeUwruB z96iiGU97`NSM!9od&WJ1Km7LVXHM~Qj?a9ci+e(j;ldX_y!pvDdeMWv&dHhiQ{Oth z=wj~icVFUZ9e#PCi~4l1kDu-Z^W?j}=9i!5Q~uzDAD;bkKzDhxpZ;{!-+q16bKbmo z$IE_o)TaZUaCzd%FMQ3hIau*gM~>W^`tXNdassdX>f^h9a*wxpf7n1$ z^)cPxwBJ6t;gdT2a3AAkZk*?{{c^KcUr%!(xAZi3<`zGG>U%T%U%k`GJKy1xYdWZF z&g6y9_|OAh=gjH+|3v=f3GTTcUO6(4bdqOy)sx#T-uB~RzkPI=e)AK4yyeTB@ELwS zdD2y`CAuk1fTRdZ9l$verw%%c<4FT>9;!P{-A?;=2Bnt03YAHn_v0k zulrf<>Ehg1IHoS@$)`EEYd^i^jGyj*xaCA1%)Ok^Q$2X_r;B{c6CLe$9)IWE2mF^a z-{Dc0FTTqG-h9WCU;Mz=+~Dm=cTfBIf{#AtpO5(Q3qCpGoBQ3|>+hUg($zZO;J}Y= z{5~lMe1~s-_im2h-0i$v!i|r9baqZ(_knzxJNUiRLEiAChx^5Me7Eqy52w81%O85e zC%1URtFP~Lb`N>V+X@Gs@X<>@c;T3Rv+J+2RPxf?mjUm z@bW`$)t3kNApOdcOSUe}BF^M@K%%t$D-SdG{$D?AxtAT=sd#TQ2GEyu8WxXZ85K_3mk1oi)Cz zLw9)m{^ISNoWVPJ%LU)ft3L3XANp9Qubl3O*S!sw{hkvK9r+hn&lwcY4VYp8Qe=KmN$A^YF}EJBJti?)j+)ANfT` z{+J`U=7whW61qZ#c zzTF>N_|W4`D3p5lJXb@6w8@>Xx=knZLI{+n`z zCtd02{*gCx0EfEjd8Z5faMD@6^rwsd{FV#3H+S$_=l84wr}?2TKYiybT%Pd3FE4UM zPyWLr-}IPstv_Ayr5FF`D6iM~#b@`iJis9@o_N5ej-2YF4j;@R-OQu=0$%rtduGlN zz38Z({!&3YFDLnFT@K{f z?+X2;H1^_BjtfzV0#eLLYwV2PZwOn_qg%!3q!E)HBz7gNMKL zlMns8Z`HM~AD(djXy07tgM7J<^oQ@c^KuM7Kj>>-+!Oq>4#%pV`SAZ5{`^*lzVs`*wC*S3Y9^UDy4;|zI5B|{w9{Q<65BT|K?(lO? zj_E@e`_*%=@gGlp9VJ}dFve>_cJ}L z(}V8rBYBrQ{MDBy`lu_9@V|#czTu#s{`}F8e$G#P_Ic7-j^L$>I&i_s5A(_w-_843 zJm@cHbfSa4bkf(n(8*lEkH3BD@m((INH=)pMqRw=GV$QU5BHhA_Tz)Ey7W?q?&c9s z_AK^;2IxeE7GukDfcd%hR9U^^sRR_`yGX-COF>Lw|F@KXvhP zULN6rbLs`pb$IzH57z0xU%u%Fzx7o;I?`1?xjtzhf8^hHPxbVdPdu&PSC8)c>f<~8 z@Z#(2r?1}&eALqiZa)1B$NxJoZ+OG0zk6GL>8r2&;34mFqaOe4H}81JDIev_T)=-8 zA2{UBeoy%Id+r>4`P2By z)7JYVc6CKTgeUF`27fyNPzk2d459XMU^stVfK6rkw zum5xP)lW{Hr#Jj~nGf@@RaZ_t@qu4`Ih*|XL|1&^c1~TnheKa^bPrG6<;=XAKYGLE zyFPHhDcAa&XL`^JZ#l)o{L&vT^8>&B@R(b=;;Wvgdi=7_IXvaWyS>UgUz#=0!f7 zrwhL7&{_Sz|M}nFK~MLB^E037yU*McaNzM(J>ThT9^s%1|ICv<`06K*{Ff^_d%~|i z-}q{sPxi|NeDKJD+~cFar@CAG;n7!q^`#Gg>^FbT$uIrj<-7B8;odM0*6HARA5K22 zF9&$Ttqy4u|6`B6s>_=LCp_R&i|^rH)$&bvqHX%6UTe(uuAKD^v9hlKkzWme0MMUy|T`il^%Rl&;K{{lPfx3 zb?#43IOWhj_XYjrN?%X&N_YD3UoPqA#hzq9zm1&==aLkIW2eexpT@LzO}PxO|5I;nTve)_^sKe)}8yuksd{q*9GbMQG& zM|D;>)T5vCbmFf(;o)}yemcOxCw-y54e*A?W zPrUi2zdV^!IQT+WINU$_IETlUAAIvJzju9i|H5IOeI(}c=*B({<`=1xT+_gzT1yKf8g5& z4*4@jaN);)c`z@tkNvOJ*9R~4;l+cm_N%X+`<`xoKb+^29LXQv?kn~9Ctv!`dEvMF z(*ITZ;i0ZP+edGH(iv`b>53oU=t8&2Lw)@{<@+Tc-3adA=W} z4?cUn)5$%i-h7u&{r&#XjV`{!EeGaAPVA@0)Qt}E!Dr{@I^5xcScjWVbmy}i^U=C@_~FwB9^dh@4u^Y}f9_X4%9r_- zV>;XCzA>Nn;pe`QbNZ_52|u0Tp^tNXbk05gmCtaP_n9wv@bG=>yn6)x-PY-8zRbU; ze*AI2@eMw{!l5r;oYT*|TR#X7-Sz!!-S2|>^0xZUH+A))1D`zUp$?pKB`5qdZ}jDd zedbqRdeBu);hgVsK~MY4Bft1(zU_CPz+(>Zmow-2Cui2pJ00nLp3c_kp^kHO@%?+} z=k7Z~_|Ti5@-Dad>&G{BoYNN{{MFb0Z#dwVWA%J@ z4{hz|i+B3-Q%?B-2mH>dqaU394>L#l%af=2D_nf?-Mjwk^PgVwHS_7a`v_im=tWoG z&4d2*ppX6f;mOzE@!^ZPa=+p$hw9p|zjb*~Uw^r?kKgvoD?i+a@VZ~zQ}CE8zM30- z?AMQO>e5$#>+UUiGZ*}(5BU+Uq^C{xuKK3c+rJk zc=6f%m}5TSBcGn;gpTmq?;eNCIZrtFP7iYpk2==v$J>0Xr#`>!gOe^ZU*7rX9>Hs+ zJH5<{cXbcj2Zy?6t(%LN-p!Rde1XF|UClc^)b(9GI?>hd8$aYz-sJ=CZ{dT3A9TSV z5Bv3ZAHbn5Kg|z(zRSCO!|Q22=xiSNPak^P?>s;0NBUF<^l@H2JoWc( zKJhhA{KVJq5dZNvzi{!3KhC>PorBB0pswE$x%K25UVG(6fAa*tzSIBr&bgoTr?Wh6 z?c*<8aPY%@ML+-F*vAib&6RgJ;i3~?_`qlL!*96hD*x)p2_59qK0N-$SAF+^{JJ;v z!*A;xp6c^SJ^6N@!B022G&l5sn@(~F5C5IF4&QzFK6gta_UT~`iH(mH52c8$z z<%f58)#JN->-X7tzR=BnzVeYT@~xi!`l=`QbaM~W`LO z)VJd$L=Np`ILpM6mMIL?Mtqy(EmxHgq`(1(0{j~Mne*5??m-JHK{5p>x zec;p&FS+K!nnUtN#hA~=J9x;A zJo3ly@LT)oLN7Y-Tdr37)qz7_bHKN`k4}7qPhIOB>L4 z!U31>^!6P--|>{|>GMIl>qB?CxmW2&U+Z+&S8mOVJktX|x}DXZF8W%hlfHP;?WFVO z8cy}`k}vg~lP7)Y>-kZA{@Diy{qcfZF6q0f;~rAaIrl1EuiEdNb$rYx9n6{gh!6V6 z!_B~f4_y4zhpzGt?^Ye}@XHV1y}QTc@V4`O=bIeis}EdjoSQ!2Z=T$H=1?x=iGKR% ze^MX%!Oa(Q4v&19FXznxzI3LGcY4c@bLNJgbf7nW^yBlytzx-0y{l>Qy4|qJ?FV5Qs2cCG#4}JJ4hjg?~ zH~h?tzH)+}I$L=4rJsF#qd(of(+wWD-FtjB_x97%6K?mJr#!>q38%T&&+m?$@X@}b z_{z6j=wlA7n;$vmr+579zZrVcOOEISAD{H4gM9g}Eag+6kRhjsYnl3sGB zpWl_aA5OgOqbDEeVV`w6y65FiF4TeRYUI#)y>3-}N&eeDwXa^L&&OKFa}KaF_@B@yGp27k$i$yqZJb&9nQ6F8a|| zeLBI#5A)@zFW%}{S4V$+<=#BY5ngf!4}A~QlYVrev)sc$4|76q`}j+5`{e*GIi33P zlit3o2e*4uJ$=mO%n_dW$qyZUSDzo|j{f?}J6-knbRG}6!w*h%FYdKe8m=q*QZ(ob&W%YHcZ zTgMAe`JoT}@r9r7v!35m``}kkE}f@~b^P2D-ua9N-1LLfQ%>c;?}j=n{`7|1@0q&l zIL9}6lXvU-;3tpn4fs6u+YOJo#E*XJnp3{Yg?;V?cz;xP>&XYa@q6#Pd(1g`kZU>7 zhramZB^Pv+M|#Mg{F+1eET8!>_tD++Dg5fb_U;}tA9RvuJn%LD?qNFOVNUslx18eP z_sTiz>gtQ{3a>i&nh$-i+9wBF?{vqXkNEJ(y4+aDU+&=I1O4P$9sKo`C%Vx|?(ooG z?%cQVIu94Ve5RxG_R)j?eBitO_?Sz)<(zN&m;-#|m`-x2K0j9ec;W>YKJ>5;FYEfj zOMmNp@y=H`Hb(9zR8hu>cj1wKX|`Y z#~jJ!MeB6Zhp+bIrH=Z}xi{hFH@)%qU0+XicH(z*o>Z9Jj>hT?Jyyzsa&bvpPbD!bs9H021K0WX2Zw}?^u65_=(Zj;rVWXYc%Qf61YF zppSQb`Q?6)H|OPuUe0ax^@Lvz^to-H{+@WPzMFse`9asIo4kH?9)5ZE|D5miqO0$8 zlS6pn^SdaY>d1%rfEz!)tLI+j7d`2P@63ho@}?i%=pdi!dh!t-`#kaTGaU z-_y@NdU%IhKHyuO!$MSfI;Spw z>1X|{e&$~v`02zKKKcEopStvxD|q-WCw#zPjy&Cic;IPH=>Ui4aeVmyt9MU)>C6xH z%%A=4G4<%iZ~2oKyx^vbdh#JR&eMyY_ItuhPxbj^9e%j^%0KtOMY{0AlYi=O?K6*Z zk3Syp+b3^wX}%7sr;a@F#rkR=9ACZP_Eg8Z=TYDFr-O6w@zXiEq8FW3^|qcjJ>isJ zK7Wq={FNK~={51Xf8?F7>hs%Ns>65u_~ZRLTy)_-{jJl>{J~8Ze&T6AUgm&Ka=Ype z=lnnDwC{4jAN=U3A71vuy-=H2sKb-d#(FLb0A{GRsveqTNOe)dimK1{#m!~EhwNBH^e-oc*_`gyt+ufice z@blYwe(~E};HQrI^np`9IaHUQ&fSDZp3ILNs7r^{e!6*{x6VhuEBfGJT|anyHy6&? z4+mf9g)cvxvtK>;rYC;#rLJ6fS69EYc$x$Fmy%q zS;vb${NpQq=&m1K;d2kK{BXajhYy|U568R@z01jUb@BGyJuiReKpxzu&U;tae!S?T zzInk{PWeDT_Xqu7!s~vJJN=yFyQg)(GkjNf>PL5Y=!(A_sEe2RFh}GIYSPftAgD*yW7Z=UU!TTglApT2aK6YFv+ zXLK`Hd^g|ng%=<6pS;zVNBMJqSU*V@Jk2v4eDtm_zu@DieR6^S%%}7Gbq*i(=<0Xb zobn5A{P>0^KjnPI*LU|8f90GW&g%;=KGwa%;U0%auFa$UaL6M*a>hq_fY&=6)up?7 zc+-zxaO>|~zUbtbSq;7G6Akrw1IX^YUd~zCHPcmmJXNzB+za=#Q5<>@a2P?`OXLb*LmXM{#OTXc;rN1^JBjBrH`EOi{I`8d7>-5 z|HOOiDTnI7WxnX5E*|ReSzf)-0_=2Y#%89xs^?^ejxuh2!Tl?jZ zPWb98pWfXE@bTSq_E#SsKGALFPaSyW$GUlvm-~3oLr&yVKYrlJXS(r??|7Rh^JVVv z;U7Nm>aQPN_~<(x_VJfb{J@(I@@l`i!;`=E&AjnXU;TE{Q$M`yH#cyYC%WTfu3xKn z*3&xO%sKz25Axxjf!BHc<(!}P)5Dzb5kI;95k9|XaJx6mJs;^pe>%&L9LT@Et3IA` zC~x$jFFbg|BY&Q7@DXqMr3-)Q!xz5M0UrJ2)?Ctq5Ae>uaxp(lh4i{a{>Z1<+^oCPz;547`ItQP5f!ls~%#U^c zm;40?^^CMSu@#LF1HXrgSH+0*=ssHNTIXN~L_&&6c zj=sB}e)SzrIi;U|>gy|S{F8TcPe=Rdr$3$W$J>5+;H!FaOc!rDIXdVoe|Y$=o?O^3M{?pGa}I9r z^rw&g=AYmCxYzKIv(Nwh?+;FMVb1B`yt$qG)q@KUPd>vh4}9c<@7Cr0TR7D>pYYlz zC+-7v?DM39`@nr87w#Q6>Ff8$yqXhw%OCyl-@?xi^Djr{QXhQbpo{)^s)v{U^njlZ z`tVO5`QwxPs;{s4lUu&4Zy$g3GdKF_1D|)e)N>zsr{`OGKJ}CfddexB?w9BG!-o%@ z;Ze_i{pf6tt(#AE@^Ve!i7JctNr|Szw!ev`q5ur?Y9nx`$KN!!#bb6 zt0Pb5i+_Gk4J~*^2gV$ zesZF}{qlmZe94FU_?ioIC->&moSS?3u^$fi9{u3bA1-z9kTZSN<1byj%c1vw>2chX zPJECn`G5yb>&}}Kc;Hi)j_y(U@%zVLzVV%2axI5)CJ*L_f9k>s2mbUiH}VFzKKjDr z{@{yTdv}hH>ZwB~{OJNOfAw*}L!4Z#ucB=!_TKKdNUg+&9k4 z34Qcchc0l*qnw!+{PE_OeBx~$;pMw^_~4S$op`7NhyMDwr|`DlJHPZ%m(F~ZZ#sC= z0Z%%c7w60y9(065zC7)BZ}EG@8&7)4m3wL8uutB-(?_4D>Z=0>UEtsY9puM(yu6!R zb538rn+Lh{oj-K8-@5x%UM3#z`r2E)e1@`2B3c;p{Ge&TB$@!dLSU4L^br})#y{Kx~JO>Z|AcYTeWQC_m1-cj$)) zp7gCc^~{_8FXaU<`N9ug^C`d1$+36&)0cnhd)FUMefZ7~b?t}aG2HY!>|K6$ zdzVxF_0gAJ_R9wx*5$&zcvpS<_`wJ7@&gwh`rv1ub9l!Ek+?hm;1eQKZi)dwDP$0zwwSI#`?Z2rxO@1F7mmwJ4G&+imG|H8{3 z`opQNI`YbA{=>&dKEXqO=j6k8edx^xdFR^-ula_X-t<%#Ke)|-^K`;@p4X2q>e@Hg z-Am8mln=Ui|LFVH6JPh7r~FLc=qn%g$sb)Fs?R5Sm>ci#(AiwTzxiU0 z@UtH-eB_HyzVlPg=?9;Fa)}53tgGicz3_+2IeqD+?|!`HYwI0uzBxx{{rRY`^X5T+ zbLr`RkuUnvPd~i)BnSM{-%}m=kT>@(z0|vouezVT!%au?vfFp_qK|jJ+J_$<>5ZTH zfQ!C#FlYLkUr#=|XW&rBlmDJ_=AJMY-su4^ANZ~gobuv3-OYh_y6XoAJ=EnV{p5v? zawK=o%Z2-tKhDv|)9(tN`qJH8xYw+!D=+^qcl@E>NBP0)s(1H_dUTURJozbSp8E6e zxw>?AZ^(_he8x*(deDN!tmJo#e3`+SAR6MuN+9}jZ@kEa~bN#5wdKYp2Cb?G1v z&eH`C{p1y|>v-75SN-LbF7WWfclj~5aMD+Qxbdc|T;jvOqwtwab>xn(c+ly-bL!w@ zuH*y`xa32A@#GJk;nq*x-TInC`}qL}{q^y#AN+X1_ow=FfnUCyhwG{RaJZlN%_qMn z{G_k_a!r5t8k~HlHy>C1CkAM78SFZ4$IQhpfIN_ro9{8#^^?_dby+)S){(uj%Gqfg3L0=_t>1;jjAk!$rrR z^^tdT$7lI)&)9Ds=p!HSeXs87sjhtB3!l2q!FSa8t*4ygAzyHsU+bRm>ra0?)z_B~ zbn)c3eR3p+a^OCg^?k?J?~Qv;UYw`zxs-Ew>1EF7;9k>LzIM_XFS#<8aKWh# zKjaQxb4hP};Dq0NSa+Y%TMpdQc)_PH-|&*J-FWHa9Q~cclb-6zhkJ;B-raxvR^MFU zZ5<9es|SyD@6OA!yumA1_|lK=_;}}=ea`tV2Xgb7esWJ2_Y-~0q5DQ(=f0}L5A%pG z9en4z+|ol1e5Zr^(0TRY<+J-sj^tWy`3gVZ=z))Za*GE)zQ>o}>dLkK>hT#~>wM?i zs;)lf*Hd5f=N$d;fd@W1`z~klO;`HS18#b_f9!`xeNXy(szV=n)L&lJ_wGKT2YkNs zk=}4y*Z(kGednuO$O&Hh$(ebVPkP(ue&7e3^82U$>UgS0hpm0q`A6rszQetG#}h96 z^`*D@rSMS!{kM#A#Qyu*1Vs8AO#ZNlJhmXE=P@j*!n-f0buP+?>^PNxD z@uIi;oX+sVDJSyasXsr=rFzb(XFs0wf$u2&>0}?izRQKVl4pI*i*x#H)puX`&PVU& z+&#$$ed%J(-GkQoz+Zjk$9KH()t8R+;*0*y+pq3>{Nz`Ce*3Pjdh~K%zf|W>&zqif zmP5MfBX9J2>zw=4y^NpS;J4b(NBz|^r~1I}JRJJrt**X!mpSg5@$O}IB<7qC; z13Yw=KXXJ+^X@wx;FAY@Zqvs(Ij5_2b@<}xyL_+e!3~F}x}Nez2Y4Q;BQL&ht(#}O z)i>94TJ7f>f9$tUe&m{O&dUe=zE_tn{E}b!lr#I`-8yeS-{I8Hywck|xnDe;(^qc! z38%X5clRM3tjo3f>fq@e4|C*RQBObq$)WY%>43kStGnO#)syd2Prk!JXS%3E7jsS* zIWre{(?f3f03W>e;qSiGN6z^tZ*-w2eXW}#xZcyj{5U5k_~389+{%ah22XzZE*JEq zKRo#2!4G_Wr#qeSz>hBOL-_fmuKn&AKHyC^_r_y7&0LvBIr`l`^}N$fu6%dj!bdMp z{o&QecRIo+FL25$UVNe_{o$fFAJlg*(_LP+__}xG+IK$Owoe_uXU@aro}ia^b?LxY z_}#PWPQLWvxB7VE1qXf2@e02_*7*pJbLNE(av=ZD)#H!v>RYFe`N!A0xq=_B>*~{w zF7gVOoXDZ`a$uhL>q$?(;G-@bth*OhxIEA=Ig=?|BFc+pdz=lYo&K27}e(ARw+Z}LiiKDt-T zh5GuMAGrAFe%DtW{OKjHbW)GM*YPvA=0=X-r5_x8mtQ*T>zv%vm(S|MjSsyZ!zEYh zm}C07FX%28@YqKeddaoHfysI(^KSIgo34kqhh2!y%9Q%CU8Ns1MIwI`}Rxevk39&v$ivr$2w;rk5P41Go8- z54lo@pY(TcsCN{8c=-$$Kjlf@;fEU@bEv=X-sN+rzI1e+pK!{9y1v8V-MwbMeV0FT z1-BfzKb)5n`GC(pbBYgr+#~AGIdNaz#v5+uOUAU~vt^CQQ`p&5fkDSp{-r!cpJx(9@f$#kJ2p2s)uUpq& zA5Xr><#GGAvI$EcfIm1U?x|kRE<->P);7|`we#xt+I(#)p z&dHDd&cVTFddn$XJL%we0e|aneV04D&CzAw@#Bwt;H9p8t8?^(S0DP|t)KqznG^l^ zXutb`PIS-*KJRqVM_u>%{m=s+dEtXTa(2);b$!R*?~guwlvn5dZqfOqx^e}FIg=Ob z{POPqAvt@go}5@WU-Y$(KYaGl?X7zLpW&yuR?m4kD?QXzkFRv)3!HTIT^;uUo%pqe9{R{V zy!^ypj`&0ey2+7se#p5zz#)fl^GAQY+ym|lb^R{jBUgBs6L^o~t^R)Rbkbj*KKhOy z-0H$%pZ@%kD}CIX{FRSi1DALDct@9uwo&Rn|>^E1(^@mR` zQ5`040r-Mp$l?+LlUi*MHH ziJ$vVeR|;w7yb0(7ybDn?{L!#Zh4gp{O$8pM<4t7@t$7ad%|VT%$0L+niF%hbzWZJ zvyWcRAGQCpr~BBtdjWsE;ibE$`s%>NU%Joy$RD4-!sEWvA1=8wUt9ZqKkr>G<-k)v zdDoZT^rMU1!y$+KRfn$X$(vmI{inm^Vcz%#k9YjehCXzngB;mUZ@A5mC!g`4lN{1Z zU+?BhKTmqe3mweW3cv5>!+HMc@1^~8Q^#DG z2fXd)qrCG?PR$oSe01J^>-ghip4?B)(UZ>b^2fXWaH>0X;R{{l0{ z$rp9`y9PgVh~K>LyyGVy@<>1LbUm#P9C*6F%z^K4xX<9`JACF0PyLDr+WlXx$&I-@MVR=`}9FwPd>t>zB+j5=RV>0RzLqg*iRSd_{dkkKi=g- zJ$fHkU;fmWXSn&Mp8oXYr#gPW_=OkU;GT0PSNOvz55DWCzx!TY_q6`-;>#E3ysz}I zA0NEs2|v2J@18nOM||Oy3-9IzUp_xp=XXzj=toa=zPHag_;*^D2fE?m-qV-Q?k(^7 z;|cewKE2_w&pZF0alP`-_fza}Ur9U;N;pk9}~sKj@3Ed&?Zahp&4D zet69}TyjKrPdwqnQ-Aup&-g5lbmprkot?v59(ME1ez@fdZ@lPf9=*dWKhEnzPkF)H z{5Y>aKI+q*&gz&K{yL}5#O=VNi~-s;E&UDd@059jfpd7~>F`r_%kcm3g!H&6KSmIwLY;v>&^m``|phsPZ0Z_d=? zCtQ4^Ge6yT@;UEE@9Of^+#QEsjy&mP4(I_V{ndesu5x4k=wcuK*5Tv7bM&J(9PR`B z)xp>ONjEu}_3(kq+`&%=>-w8RKCE;!|L~h%xq%B`^}WjnUDf9UTztdF{X+*hcf#en zTFNHq-<-iOe|&U~4v*n*4llXK=dOKpJ?otwbb$Y%@AkP@-DmLWXAa=vi+6tM z2ePJ_(Ue)J|{Fw{;>41-Ya$yej^}BLieSYD` z|37_q-goy1e)23=?$4*r^FU%JW-ynLiTz3u1USGvlZJn)rH@ae;EIP@_O>i8}{-tnZH`vhM)O+I+> zmv6H#|MhV*q;P_D<>{p+j=2w0H4_cQa^C}msy7ti>AG(?gbEpqp)#JPG=0$z|_~ZEz4s#@z z>hMQ>da182pX|fOJ09*;e!kS7Pxc+Pj;H$SdeYVJ0$h`~^YG#;5Biutb46eCW&JsP z`qS;Ab-eN8=ULz7b?e={%0Ha*9WMHLI{znL zt0$c90dpn?a!4op^r4&iu%FNN=_^n2i$9&;7OiI4Wt+jsW>JnkEFwc_di z#e;5i#8W<;hey86p}O$V6&`i%gUdYAjZXIc3NQcZA_wM<&-&pD7>Q+~qb`LF%*!Ebr=oloB75`VdnEBnordhP-FrU#wiRga%@AKrM%i@ed5F3!{0 z`P2Bz0o>N*NIt#OPaWssmJd9)`pBt1t93m2ub$k}SzS2f$hzG6U4ut|{_&YVGiQ8I z*W9Qthwd5r!fU@As{^mOvX4*Z&pEi@R-caY1`plj**^Nx!@TlQUYx_rIZwLFgY)=1 zr;c2j7rdQ!ugi)1#X5iZ@BWuh^A10q{hrg&Irx8^);@a5Asyh54|>9HzdCZkKlt&QdeKqd%!j_#=}W(A7AKU{@g?IX#ZFGS3@zYNZ z`0O1I`tkK&{rIRKyygdA{+Nfo&O5hyhYxQ1;NhPqfAHWB|2^fvIsEZ;FT(vE9=~tq z)YEzU;ecN*PO3vc{pCVm`M7Vtdiux%9pU1udqAFi=a+MIm0$Oe+`wnu-0}JE(8ava zQC&XZVQ%SRoxj#s^}l+WZ*%G#UFbOX@qrF<2Nys1EFW^DF5P_RzbF2D(~n;AuO7eL zH}vJN`BsZ`svaSjeV&5ix=@K?UQyEokr=0hLzj*oeBf6{~QaL`+SIj6UK zhrW2IOK)}MR6li3(phfcRM$SZCX_`ru2)6@Iw+DnI(r#S?$`F`wYYkM6tmp%h%D+DL^GAL4@Q0fYQ%^ejT~bd!e#4=U{&Z7E&dry1_aC3-MnCxE#oY5l zethR6f6RybhA-}QIQeehOa8%uw?6vfFMs+vXWcz1CwR>#9CXn~?)gY(_s@Unu9K`R zmLLqnt^wrIW6>@^?C29v_P?Y%@O>t6j!x=iRc6H3MgC|FH{SAXF8xk;@4WhaflFTS zmT$V@slR%1&L{ifmkYU*Z}{lOkCh+t$PaztaNd48IOpD-xZuT)9`Zs5_mumW-hRKl zhsV==&#xiZ)C0T2D;TOZ%)3AY@`JsjT4 zxB20ldhp1>efZ_Y-w|?&pZACDH&1ZmMKAZ3T-d*L9#44Xlzx0TZ$I45nJ4|=aBlX+ zQ||PY5B1c+8;=zZPv`8HANTNe`}smQb@`6hP5bGfp7XxzPj5cT10V6zmyYn7H~rm9 zaz;mM{>c^m>eE+F;BX!f{rCo#bH2ML+#7f4gFhY3mHGEwf9LqJRp+@UJ)FbG+|iXE z@-yFC%L{(+smn)oyvN_Ys*b1c^mmT#__?3tLmzzU#&3G4D^GCfBTsVAPyYD3$K2sf zU;X9Ed3db(u0OrZh5B;iKCmAiYdG%mn~wOyM>jgS|L}6pI{$6dlOH+chx&Bni}&!U z@BK^l`LCWjzU!+Fo^+JUE4nX{LBS>_&c{VaMPRq>Uqi)KRw|)tsWiuftQ@&PZv7-u0Q#r`H_T%q6{Bo?%TmATd z)!KV&d8C&*@+p7x=L?+r+wZ=@3tn~k!!P=HkEc2Z;g(1G%H2ud;kRGz^rbu9$SByaH(hg&^~&p3pc&4+IQHKo^#*UcR5ne9PIZU4)?A3b6$OZymU@K zIOr*_csVbx@X$jY`Q?wi(vv^l%hy?W_(dmk#4q=R{cx|&!%H7|<}4Yb}ozoXS_a0ny<&SwYXLP{VeZep9=_gO_13tsyo|bpK ze20fF_^IRX3_9^eKY3RdFFd?=f9mV^X)71%%7gv#hR0R=`6*}W*a!DV`{^v-^mdMp z&cVZfYdXNe4|$MZ{M4nVT)?lc_k4W`w|Ox~aLbdreAM6E=&z4+beXx(&pgwge)Nz_ zb?HKX_Xa)T^m{GO=0iXH^l{$(<_V{qspClpxZ#A$IeDl1Ub?&2@R1Ys;rFypuH;P}d8Wr%{N))A`0S&r z`f%tg2mE*5Q-A#E$UpwC;fJ}=$9MJApSt6-Rqt2NZ#^dtJmpP2`r!p9|LG?ma_4^X z`!7dyGRJej`IJNWoi`Ww!>6BlqL(LLc=C@AzSEmd`oZPAJjgeE{Deym57QlQ_363a z_cfmS^Fx32`Rv|=%Q^hbll+=*{@`zJ)rU`iKJ(wa$N^pP)E_Q+rJKI|R>yh2t8mIK zeE9p_(Puu@=dZOVJn-Y?zM!xDa9`$^_i_m5ec$N?_pjbt`z~kJ>Z*gM{K(yL_5Sq4 z!@W#Tec{8Kzn*e7f49t?In$3%`lv5waI0q@p7iA>-F;v2GDrB*PanQ*?Uz6G-8bsv zDfe>bJ^jp$`KFWo@WF$h_k8qTKYn}(ufFaLK6=W5oH$2+{oL33$|)YsyN|c}Pk;1P zm+qeK8S^F|c)~$<_36kLI=gS^qrdx0edp!ZJmSX(_mw=_=SgQc=qpEZg)dxq!(n}z zj-KYz6MoO+r2o91_<)Z&p|k$`;WQ7{euvKb&M!Gp z4^H=k-x>Af32u4D`>OhMlNa^Wq0dG8;pdC{4qrKAu86ef98kAHc&0e!9Qq(mcq4x#N@ibo125lRoCuc{wwOzI)0gKlx~`2U2D03-+Q{i$)AVOm#*fEU*^O)edUM#e58{+@xlI&`oe=Byx!B%{UrZe z=jF)nBHie!AN+KA={!C4aX-m7Ui!j8XLb0zs_XZ|JjkE->e5N>^i`Msa^PO|)Q?_t zr6)dc*pCN2~yyp)e`M^K<t4KIheQU*P-HK6uO{|I~$xKkflO@nKbu4(=`I%maV$;DhyH zb)3T=U-;mHM}59IXCHm|AUAl^3lH;x4_(cfe!JnNBmC|ic%4(<8XmcZ*F1VJ-=FKJ zzI(}jxYThDA9_0nH$T0XYdGbH4(5n&^rVORpsVk2%gw~+UfJU5JYK%zjga z;X57N1Nu(g`C{()D=+x)Umf?7`_z1@Lw|M5Gu-gOEr;sSM-J8fnST6KA1`(MuJOtD zSs!0`e1~i1QeWTc;eK1gUw*ykFpL6P(OE}FfzR&gHBmca| z)49F&%LBdeqNjUYUAd*Jr+bZVbdo!~)Pc)f>(3{+%!PZ9j&L5t11@#xj|X3G+K)ee z^p$7t>94MPOFjGDBXG!ze8cU2vBsM(bdwW$(N!OH>E*n+kV`n#l>_|jqchz4Tn>HZ zlpgxR0T*51#`Cs%>eHA0bg_?5zB?yx<^&%+<>I1#XFd0Onj8G}+3EZ0DYx+8N3Y}d z$ua%q41f6SH=lH(C;af@DbM`G&wfw-m`gb5w}sbt_27m>eZEeg&EsM9&EdTJ)iGR+U zZ+^-J9{R!UJ^XY~M?Zb|WKPVv^Y+VuJlSWC%!Rtn$pxSILr=K)V9xdVRzA$LbLzM^ z@Q@qz=;}Pb=%ye3>cV?pe>t_j>^;4=*7);X?%;#NJmaaJIkkSOEdPN|zPoSewCYbsxm1VV`o9dka_5OR ze(;%lxltcKx}J^t?tz2e^V2zcnOnK#_v#!R@Z(E&^}n{CzIegSNB6aS(ieYoh!-6_ z^`V3FaLAi`Zu)L5w{oo>oOrnJ^ml*Ib2r}dZcgFApU&pkcCs*R9{`b z`nzfS^!FdU^1(;C;j0cl&day_$S)t{+LKQ=^|yvke)RR-d-&uMj`?2h>4lFv^j+bg zr@8PRPWr%OKfUQF@A$~YulmTF-v#q%9`LwqKRobz`p!>!;Vrj(a}E!<&+7v(efZ~| zqoaAZ&w0AQVczsJUnlj04_8+yFSj@M^ESRuwOs-p(kB#s=L?I zcXi|l|HJnAd!5hpb&r@Uc{5-9^Ikr;>dJw>zVk`G;BjBWJ^ARPKU{cN^IIMK_{k5t z;{i9l_$jyg!0%pojIVR*$RFSErHlOPFCTDws%wt?-mdz(FW`Wae(=x%FXz>jBR=qp zZq|6nskw4LnjibT*H8b6mv8FnOMmCpr>ne9UGS1Gy33FL^ij|6fH~qfe9n6>2ksMn z^rt)g=3$;!pRV?MZ$8bX`+`os%M(8I;_uFwGpQ$6{C?_1~i_S#x5?W5O8-|6gkYwNw-Slb6Lo!!6IbnzbUyXwNNzd58Y|KW8H z&H0xfe!)dAIQW4dzgBqULQe7I2OOvE*AFf^F<W{OJRSxm)#7 zhrjZsKb&-$=jnhyz2Gr_{F56z;E+Ro)Y1PTy#B6&n?CT$FTLC^{7_GRpP$EqoW+l%}F@r1|IM6my(A@>w6> z@uZLb-rJ8aedj#LADndLkMnet8~Hcq_<7P%eSGOmPv6y>`LVu9C%%4ZjknzJ)j9c4 zpPt^s4;Q}fW%EF1e$iJ>^y8a*LqB-s8cy}$zm6BZ>EwQS?z{bbg=^xZmp=UUbZ_um zUEk>>xA?Ab@R=TOy{D`Fa)%e3^5TB+yXF3KU-%B6JjuI$a-yH}`dB-UHy-lMH*=vs z-gr1iA9jsSo#F`{}Y;n;$uoJ9**nC@9AL!#=z}LB%8~Ml6y`YYHql+ByW$J(zz34Az-aF^JdVHjlbH1Ag zdhnYb>hYJJbdneR@Nu4Q`uMIceye<_uPz_;a~==%<=LF@0Ux>XJK#JY>Er(g6EB_T z9Kfxgd(3>|qYpmjfp2ibA*br&FMr}|j zcb@Nkhu6L2yt@3d|D$vKv-Z1W4xNWn9r<3>!H*7n;v2pB{4EIZRg?jUVrmsKJVJEuYBXbLY0X!2?st@K_IVEv-Snd?pM94ned%By-{oN9kOR8Nm-qabIft9Bc)Ew2 zv(Fk&{rIlFeDTpaJm}6JIMs1ZPUzv@SouOX`{+kkxcNapYku1&H|`s`9T zAWZ2e1}sVPrlg)55MSsF#N$&f9KSdFZUon{LaW1-@SML@QL2^g9~1~ zTJ!8##AQ-uSP-KK9{h4n6rn=f`+iZ>{D1w)N^M5Aa*lOD@!?Y$@c z+*kU@m-~rc`rD`OVR)UR+tzzJ%cHtR@|XVdr;oaF zr=L3TdXJ~49Px1r7ku#k>^=R=kKDlTJ6`Im%U^oIg&$me!55$31D}1Kc$jOsnYn+g zj{8!s@Z>xE>U+XtuKC3eb?n1Sj?BM(o_pakFVC&@p*z3vq?25@U%kguZv77MO@BP- z!5{tTL1**3A5Ol@EuH1iclVL`^#39`X)9Jmv}?`{V##{pdqC z{#n!4IljsP9{iNY_k5+N{?3_0e7(m*KY5lYFQhu#b-T=?Ay(tGe`)M}7Es-ahBQk2U`G<3WFTif=L-|>HM-^`bsYY z+Xpv)=t6(r`EQQk)0dxc!ND(2{@_Vh?^n3w93K1m!*4w0*?YRu%RagA|1kXQ_Z|;x z_~6k8F26%`vv!V7`oJS+a!*Hf^rwgObmJ#pe!tXl4o2EOlQ9n>d})=`r#q( zcJU z@bG(~FP+V^dG(!t=2TyNJe`vd`1PmP8v5{CA3XeS!|UEK2cB{SAHB>Mf9au*T=?B{ zZVMkC@Z%>pc&H~o>hgsjc)?9KxZt(V9O^G$^pG>Tz6!Ve!s)yHaPn6k_dCxg^GIKQ zsAtaPXXchJ>eHEza9ZOlU;LDJ_lBJE2VQ#O%}=_h11~+~Pd&Q0Pwewvp77#}{c-^> zKIiG{_n41#(w`6VK!3UM`;7-b^_@P@OCRUq=d&EXgi~Mp@S!Vw`rGG;pL+E3-F@U~ zpLNiNmf;^RFY>d;M2@ZuX?=w`0vRvrFYAJkVr_{@?0e6*j>`oklK z@Z$eoAN%O1FMs*T7w^^ecb<<-1(*$$ZcoU-N$xUh}FyJ@BTB`BZnFr?I^?bA=a$H5yP^~@_@;ZbM$3AZ`)yGI}A8xK7emkS3h{w z(GOpJ<`W-!%f)^5)s+)@b5HS~&(8DTy|qgwq!0b@kvsQ_eeNAR_$xQ=8~diubb;Tz z>nrES=}7NcpMIWnX;XO@TZ$xsz+ab z%9VQfm?Ql>-|BD9@pMjqb?IlW=p;9O56unVJn@GgFLj-lH+ba96JGn}1yA!Scb;-0 z5BfW=AAEF_13Ihky(e6Jhfgl_;V-|<@pXQvXP^7)vhVtv19j*~XZz_dr+l9{t<|y5 z9KofYd)7X>;bR`@B{!)K+^mTv0gNMJPw$7Pzdbtn2^&L+8 z)#p1Ofn z9lr7bKECS1KYEx~_ZfZoFZcYUzZ|-6?4zIi3V;0IqN}xi@TiZUJg7@wb)1JEKj-k4 z3*Vii58v@TEhm1Dezb;@KlHbDzo@(0IZwFhj4zz@lpFrbh4bq3oj!b^ll#wo;=FoO zXMWSmdGigQe)N=YPr1VHH68e*uKjR(x{sZcXW#j|Tiu&i$%Ce)>4i5BSw{&Ud~zCpUEQ`vo6; z)TI+0_yae7^!^=g=jo)cK5`&0zN=41e!#Cjz3B!gKBwVuU+JgMd*A&Ytk%xyhll*o zlivJ-gHG1?=r5;J2j9(;{OQM6^Gt__aKpnF_rY!7>2*GM`VOyid~*-t0S8>>k)HAc z2YsAd^_S11)_hXedpfAM)Bc;DaBr>U(K)`+O-|@XcX=~!zRUGt_2mUV{otn;y!QJp zS9G>k4D|%j<w2YvX@AAIFQ zF80F7Ke*`454m;!z{O`e$r;}2-PC9D)yF*oFCOZ?be`|a6OU8~fx0Zux39iY5&r?75hQ9dF&wWX6-|>?tb>v1~tm(jib6_6%XFp%`H^=<2 z4=%ZvC-)8=^fwpg#{C1A{dn=q{edTc?1Rf3TB|1)-#-2Q#}9s;_Wq)$b8yNzpYWqI z9CW}-U;E(mcb&DTx_I)1esbqtpyvv=I`T{>_X8jGk!w8N+k8B#Ewcnav z@Ttdd`BPs#_R9aM=gH_jKdWW4QQDPdPLX{7~2Ym?!+@ zz`eayA5Kqtm>WLJz4LHh4V?J$kFI!_3wfZQbDs3D-@M}m@7MbK{g7Mzy_Xw0sqa3Z zC*AR~UtZ}+XT0Rse*Vgn^KwT|b?~6CI_5=Re$c^petNIY%ncm!JkQCm{L|Ur6LJJM z{+{Z?tDgBYPx7Un@A|HMl?VOlXYS$Chu)rY=Dw3#d6GZ(g}(fx6Tb3=AD`umKkAt8 zEk5oazToX?Ud*97c+y$E<AIz#{L_oRe1^~bxc}_uoBPT+edl-e;gJtHQ=gx5=Dl-#l_Pra!{0Y>%zK`W z`1_70{nW$bAl>kNYwh>Ke8R1s?|g@s@BB5V{G%DXQ=EqZb z)$=s3?jQY~lOKBd&R=@S&-`vp5Bl(t?{t|u(AV6^1wUWnC7*c6f%Tj#xXrcibiJ%D zJ>ixE-{s$ZLuYzuB#GB9f$(#4q>bZB|*N+~~{m5Ur zz{hzxcg{U*o~-F37ktIX{MhgOY5nyx4{{}k^u*I#@lkH!@Lmq_l0UfcmOu9uy*$-{ zUwyy3@`As8^2JYm;Nhq9=jmZTeYT;K`SIQS<3%TU{C?4iAM}0r!W2B#e*;ILv?-Ut2LbT@?GEE^fll1!GVwbz;C|bG*9r!FCX~C zA8We0ANb;4hEs0r*N4t@;IlltPw9oP`$Aps)uWS~TgwT4cj@Ol9_Ctp<%1vA^wWoL z@H>x}yvc!{_Eqsxs*5hIcFc8;I@w+bfE|Q{CkLp`G8kW)q`JOYx#5D?}qt< z&-~ag7kr0DUq0!_S3aq$k8|b%FX!yrkFWan<3mSJ@A)7{@`#Ul;xF8C0*`ufj=#CV z%bf9puKbW2`PJV!b@Vd_c&O*Qyvnn@s1K+4a}UvhzkKkdJHP!N)5UlFJ?ZhBU(WMS zeRJs^gP$JWn+N#ih#qw2)7|LnzJLpFIIQ_YFMp5H*?Ico@0>j039tEZPvGS~kY~PZ z;a68KJ=KH9yF9E3fd;10Oy)r@#Bn`z>94H{bf~^qtRi@ScBs;14}~ zhljuNp`ST+&!{I?^q?R7ax8a$!b=D9MJIFSyncLF&v$D+%C9`}+dh8LkI(qHPw=G| ze)NHd-uk}84_~>*Z}K+(@}dr%_(O-8@2!6F3=iM*<+q&B8D94>{&J{3eBS%rqaz;b z(wPqUO#N2)<<SPj7wjc`3g5*`9ycQ_LO_P-Ai<&>rpsr(65o6Y4nUNeAV!HFMz)WefM&bcSmg+o5+rw*O)!GqrB<9gtymwSe9 z{B_T$BVY2#|Fi0m_|tptH#hY5J4io%$)SAOPj~kz zKJfdlE?oTZloRu7KHRf%LP!4dMNZU*!#Q&T4}5f$|CMjv(-VI@tj!r6<$#~+nGb$! z^^teJs7GgY-T(BUKb_>vclnz0;C^-vE~qe3 z`kOO-;WyXt^N+s#;jcBG=G5HL!xL}k@O5tDhR?mjS3c0s9Pm|r@BNOspXkLG@11j> z>j(esr@#OFKG4S;!DAlHiM2W4tGVL`y!^)#9{u=v93DA@-+e?kdA)BxfAm-1em?j; zf|nlrGQaxKSw74so#oYg=jBU2=t++)+yiZocD7pVfExc`)*G7s-HZaq?M+pn+u zz$ZuY1?NRNIOn@u!DYVjaGqaq>PHVgOkQ;N-BVq;vsQPm<$^BO?ni#ZO?SHCFCTE> zCFgQxZp|A!@Z!xMzR;hZ&QD*>0YBh&jt=m8kN3(?_00vo@@@Xr#~U8!<=uC>xG&5( z-tgUogWmAD59n#G;GW;j@3&FUJtD8}G540f>g!JjIN_iR{(RP-pYp;_{pfHKPX5Tp z)_ZdVFC6sto-gLme89;U@A(41Jlan$e4Y1%UtZwHlMd?oeUVqX;H!@P@**dEu#dkh zo#-Xs*6y{V_TlgTx$8Y0owIfxjyd1>&pd{?x8|n?7(^!*A~7 z8-I1_MjuZ;I1iWa^tDf(eRsdYEm!*C0mnl;&9$dGc-g0~^?Bz#A6vsicY3>b_;B5R z_}mNXt0OOW?RTH!$v5ZKl@s;hR}Wt~#6utZ|222|yZ7Wt{^XMn@@Nj>#Mgbg#naO{ z{Eqw1M?BP(H|O=2tBDg&@A(Foxu?5ambf8J<9ETF(Aj%F&{rLL$rV0+_wb~*yz65> z-SEQO?-L#6&^*XDz43=zKICPk7aZ!tA)oGf-{IFs?&&W-bfXX4ba)%SsY5?Gg_n=~ zr3>HiflChIm)EQM;t4lD;er#6t#feD)j7KGQy=)$aUbvvZoc!?K6UVtGw10cFXok= z>hY65&Z#3ma-+Zenmg~|rr$^UI1dlrp7LhSXFYmN-gM`S^L#Yl{D2!TIdqRXPcP@6 zL+h< z%rD>R<-L1@uIj;MKJk?keD}iVJKf<|mwxhp&^c?k)z?=aKA2y*k|+K7i04Cn=X|od{^5-ez3JkdCtuXZ15f?oeGZ>< z{Njtg>d{?Y{OvOzaKpt{_mQVum<#>Y(bswS`Q#it@peVlG56}s+?WS>;2*u6b1$2J`^=y7{H8m9>AIU9{|#N>bA z`@%VX;wwMS>8~%I{G=N$5)9ltZ~GdcBLee))N_`X($ zF6!C;weRrY;k%rv=V^ZF1P`Bm=ac&UbT3@gUtRm~10SCD(GPC#)%AM>ho_wL%X#;led@p=w{q{jd6yeJ@um;n>Z@bzcR^n` z`H2rdk4CQKn$Mo{C};5azE#J2ddnM~;KSFwgYR*5_+afG``&l=qQ3g@)4kyyH@EIV zeCTWbJniEvo#mEJbcY{rKI3amKm6T$`r;u+e1yY3`0(}J`SWz5!+vY{;HJMkz(-eW z=ji7CFt7A+&&e78%(;GWt#GO5y{Ed)(HTDXK0WEJA3WyD9PrUStPg(ps!w0@#D}Bs zyI=XjH&1iRSMxw8I$P_Hr`+quKl^-_GdT5I;glDB=tBqkxWDnSRv$08&4b**EqD6z z+5F-`cl^vd{GM?08-DqP-_tzs3l4s%S*^rOE#(N8^d zYR>4XKHZPgl`i=F>Ak)ut@*ZEd;i>e>uIeo-QN1nS328|pSkc}9XvhN_1#?XSD#g1 zx_RnDZ~XC;V{=XK%j&rYe22sRNoRR+{(I-o1}=KzrLH-{Pk-mtl{fR|yPP{O2lm7J zGd%Rg-yG4!{U~qn$~RqB_2BiL9`ea|y712&$&L5c=29Jbf?FSX_T&>j&e73*;=Q$; z$Q2yk(~+)x^LN#KdhGVZ7f-l+=YzWPDyQn{L!Yhs{O3F0_<+CrR9$@O>i1JU_t)%a zuI%HhKHjT~_X;l@bdh8G`N~K4*YiKlK(b@VY$@}Qpn z{B%woc`;Y~ptt*-U(Um2ZNGi)0s7GgUh^V{@H>Yu9?tOkFIh9r@5lH zeQ@y!4t41a2R-D^oXC;+QrEpmAO85R?_GQ@d(y{#{N+}EyycP4TXpbsPEPFC$G!K` zxxJopVlL=sKYaH2eVTmX!2=F_-8=4izO8WRV=npcyC?tT$i2cp_knwuE_{?b`pT=^ z(Nq18@X<|Oec`r`KlbzA+_)#`3om{6?Y;fe}R!|%O0g%ch)W{~~Kj5-Ye|exgUFdE;;D!@!-{GK-Ig?Mi^Mmj5CpUbO4>`h{j_~u{dA`eqdAM!f z@P*ete#s}kc);bH@9Mr)Umhk-bEv+2;it|=b)44+PIKzMk&DS&9eCyHvHI>2xXl5b z@t*nTySj9f3;A+RU%JZ!-1LwG`|0DUul%SFC%)eA#q*)3eeSQ-d;RgzUykJqPjjNK z96Rs#g06V}sh^zETU~xSXI|(92cNyi!@SZ#e&FM)oY8}C@ZcqP^p+RD4|0x=9IMAK zyzo&6es#>d^K|4VTzJWgJgdV`@9A%T=!7r*zUB}A;k9qR=QrGRwV&R6bKV@dpXtL_ zyximV<6%vA_d31lM>kKpS>p{az2N1K{OqNVwR+|WKmFn1n>_h0r}B=kbLJi%{@70k zb>Zi;dtct*<(ItBTR-_wmoM<1rUT#9G2eWb4>;-c+Iipk=RBP51$@2dJ6v)>C%-d% zcHTVcOK<1tWFNl#p#OgO^^+4h;`hXl|JHfD=|MMm-6!hu2Oi()CZBv)S6}DhcTdQR z^VaS;I^%E7>4c};xL4Je7f*HRZJyi*`1(G1&U-JR)mwbSiZqD(;IeCCn zj`*pMdq58D_ulWSdjM|x=tfWd@rDZz{oU6qUh<)?bLxBYRi63rxjOPKcXXnk@A3tQ z`-7i&=tsZr^`Sf7a%U|!=EFT8|N7Ehe{*gQ%sU+X=P!QlMLE-7KmF-tZl=HPKl|hW zFYonLNAB_E4;9T0s6XG$nR;}2iKjYzzz6?_u}^*H+=u!*N6+`p%cVYilN;~VkstGbhxc@l zQ}yW0FL~voKKNgUk1z57FW<~FyynFG!{fdC84h`)3%vB9vpVY184tMB!xw&hws`Sd z9p|m(gm3D(_uw-(a!UvM_<$e1-8*s&pShx;3jiBli^y?)1~&e||6QQ;&a-?SmWNnL~B)rLX$(e_lQP>1<6ueB_z#?g9GQr@r%WxQFFP z4%`#?*{{BR{81N9dG<6X>d||}SA96>P1mdT`MdmUYd+v1hvwOu{^r)b1Hb!1eYo|p zwtuVt>S@g{Jj@+@_VJ6~@X06s@H@2_XWIo*$0<3{om6OK6&t-zMk^MU-JitxrEm~ zxx-UV;Np+I>d3MA_WMeQHSp7cu5%vg@4Wj-uFSFA$%FZ^Up{=7Pr0QRUEucA-#v{t z-10*gPx`@u?`1kTr;fSf+r+D$yjaT#-_%jxS|5Dn>O4H^(Vf2Xp|3vb&#`Fe3$n>;guKo&95BteYO9#=bT&h^@CHcx6bjMPH@7ZJ{{=mcS=3y-AnpA zua8{&{nL-`bfojoaPmhT-|0k0_aVRO=Q}^tg^zyf+OHqI+;95YPY3wvqYr-cgUkHU zL4M@Ve90eOorlYOIS&s#ocH$?zr2?}y!Cb7-vM&KNB4-F@l{=T`6tJ4^2vGn?Bx4P zPyV=vUVG0U`1uJxoX+8G4UhA1!VM39_^GaY7f$yHKj8D7p76a5esoaBT7UTY@4okU zsyy0vQ++wZ2QGTi7cTYa<2#-7bsj&tSKpj`35R;>;OD*k;ZGmAm1}u)AM%q<>c|&A z@t~hP!_WWU;axrH;k^2neRr>zTm0mFw|&-l@dv-h_R)`?^uF#pKiw4lbq7UJg5sdz1%DI>w}lvz>Pm&;Ml^&cYe~(dvj(U;4??`GQaT1r9ODman;{` zI>?v0e3Sz|$uYe0@w2+>{cdfJ@Hy!{UGV42>bw41YjvIDgB-!B4jtthKe*|lu5;#> zpK|V;{5hw;``hmUUUbL9+Bx}^o4xpYZyxlM1HTjc(nZebEr<5W2Oj3;yuSL$fxdER zzdCe;3vYUwA33q#d-o5WC;r)=Zr9v>L&)yLZtUTgfO-f~5E zd8H>E^ye?#`C_d;KJtRUIa6Pr<(Pi>n`=JeCAV<%$$LKHCpYd-y67X9bfuT|ZN8ds zzQIi=yw%5(Zg`k`Pxm`M`oJp(>d_evKIjkkeYo9&SFP=*oBQFd@9OY}e)hQs@#2$t zbzjiUJ%F$LtD~R&_`Bcb&y%nE%a#1{g%5bEkB9y40d?$$%hP_o$cei8!p~Q_!mXZu zTe{2toEv@dl{b38|5zP<-M3cH?~eP6Z*a?lT*;AnQb&EcRL|4ATg$b4oP|pc@sJ0; z!!>!R#|QlBOn-luz^T5qKI%CKr<}m+JpbeiPW$AYpVq$PYo6^hAMT^mbmA+#`qNJy z)YFgt_T$Z8@8RONzHpicdhCXa{`ak&;{$x&@3jw3dBopZ&fuam{`xwn9=`g}fj{`r zi_iMGSK(FPoYPAkdg*6Af5r1p&()KD7p>jP`tpb0?iG6KV;(=M1E<{RKY7YI-f+R8 z4nN_TI_g7r_nO~lJml;-ocw`*>fteHXzbfKej_HFgU13&kKCtmQ&wL0=AcX*gn zI?FkJav;xl0}o#Grjz@{n&0r@%SXAE1A4+w2l~jPeR7WnUU<_@A9c*5d5}-JFrRSH zo9`2s`p&~Ar*L_iKRNJ}_sjG?=}Dhi-@T@ub8_$Z06zX$<0ohQl9Q+U)6HDS3;)%X zNB56&`p{1f=)pgH`9^0x(TNWH=Z}8sdEz0r@R=8W!AT$d;E`*%#xSZo7-1_4wPx5F@SN`gY7oGK&ANevTe6Zg=$j{l=Ik|HWJ14JlU?2VQ zq>uXV=}uqsB+q>M?;rlCFW>Zqb&>ztdIKvpRN6LRv$k4nR7b&ZvNnrS2=*6|K?Ecyzr)*zHq|te)e>)=p#SA%N0Ib`1FCp9Kk8S({H%s8E-h$m2dj$ zqb}X}&bNv4BfR{j6TjqJuAJwWIrSY*eCY(wLH*$651jhZ#hh-P)6YHbcf{|KzWl<^ zJ?_1Icw5`AKR@{9{_!-YbpH`f_~>p;H}&X1Kl;iy{q&JHJn*tlKHS4}r;q*glza0= zfBWHg56M5jJ zlUs8tNBHp@KE9bRJoS+SI(Sc4KG8*=kD&wnZ@rgOI`f6D@X?je@@M|!77zRRLRWc_ z3%KD@mtJttnJ;kBh0gfUSHAV1KI%(PI=H9k>6|)nklU!>d@OhxbUO1bLJZly3<=u>41-VbX5lq`1#}>GC%5G#|K`yG>__S z?c>*%)}HY46;5k7FFFUWde(fOIPiyuetd+(K0NvEJOAAqa?4-$fwf%FkzVF;#Rs0P z^?6VAoR=Fo@W;b^-FKc|{N~$J-{~el_`+ij=q6uu)`vgN!!1YhK^Oke(ftFbJb2>a zo}`a+`tZrzz=@Cgd~^TO!FhV%ZQqt|^rNSG{DB)^e#2|ubM^4C&%Du%&-&PJ4Huqt za^J1`$e;f5$!EFO*L_0|_3`Gj{`|MbkM4MR$_<_Q=KjDFE`8-re(<0-fA}`v!{_%$ zuJz%c_jEI7bg)k!KJnRi_~3`f?*o15L^pc)T{Q>t>Io+t*8DRc_R~!tPv6~xawHG< zd(VG-_2;j7lDGBg??3way;IkBPq^?t@4UH&*YAZK=?foU+?(`w&fh`iiQd-yvCn<% z$!EIK9dA!O%_Y6$4sK8Te8*28`S3KyaKc6Jv-E?Hj(Av`OLIsM^Fmkk4@X`4std0< zz|VcbAGp=qhTrrv|NLL=n|{J6M}BwYRbTq)&u@C*X^!|{e)(wb;FDXr(}f=TdD^cJ zef%!a#e04Aw^Itvr+2Uos%_+a=&G*%Qb@Wlsywmfk{q8;c`NTip<(N+T z;_tol-s@vN>B}#;@skhx=?1^2_v-uo!$TeK=|*>d|JyG&@NMY>m-F;Ach2cYU;FWs z1AXO0{$A>L*wg(Zf9|`TzI(s5R$qTOeK)uEIq$xfcYXLL$N1gU&wIIm3orMgK5_w< zK61ksb@7MaJp(V@;hgy4bzWcmn# z@!mfDSGS&fKHzJsqektb^7@3zT%&}x^M8~vvbz^nG@gTOs?p~ z$Eh#<-A{CP-Z}bt?{`3s;I(f{H$3^`zE+1nc)^FCIp>oc(9=BVFE4a}UmxF{qq{lK z4=;V)Tktz?{^e)tiHG{?@XdF1-IM&V-`trae9aBr`6pL+=r3RLtR5ZcD(CR%M?b#$ zuK)Y+-Ftpm;|0gm&HR~DdYdb}^oLtM@Hq|-AJsD#*7R{ddE%=sU-+f|_xi}O{`Sj1 z9{8Vi&U~@}QnI+;XB0pY*XGetDNiy5hq}{oyhn`tVUbb0Cl2 zThkK`xp_;!x!;gw)7w1y&QE>Sp}Y5Vy$XkU{I9iK%8S18<-L05!xInrQ`dQG zdFIDc{psXMcRta@d-aYw4;LTwrGvTQt9@|rUwt`{Q~l*mUB1#+zWC(59P&|K`CxwF zpaUP~zNs4={7@f1xtKnxBSHH`Qf|zaLLbm{q=)~zV0FYPTP-%{F^sx z`}Bj0o_yh_T;aL#Zu3oE z=!v&H!L8mw_4zL!lLuYT+Yhff*B3th-8X!qAHO`!89b{#`0*VN{pdv}c;r$&`X5)9 zzH%#Xbfla5baP%kPkG0ePI7ZpU-^?WI^#=cx#P3>@tzKHMpwStr@s4I{`9ftn>nyw zKFzUy{HGVb@bcSx`NESP)_k^)kM41N`2pX=#ZNi5j}CB|%c-k=aHubz{8VTA^!K0p zLay*q$NeCW@=R}d;I&_0e$kE2a_Pwz`RA|w_`z*%_((tR^~Vc7KG4~HMrU&(FYW_+ z;32Q-s)Gj|@qkOd@ln@)^9#2eyKnd>XZFn}9?ngE@`E2;Uu9H>d;ee;i9*^xi8dt`tES!Q z?t5=u@b=w(f92p$OApiyZqWuKldh{ za%A4^b1%ckZ~eU2M{en>4xjM0Pk+9sf06EZt0RB(d!$))HDMxte3lF^3zRR^b z{FW#8;LM?O_S46E{OPM6ovqzlbfJS>nj`bdKY3J7uINe!_Y@qrpZ@-%Gu`+|U-!P; zz=y9j9{9rR{)7h(`0eAX_jvl9kQ=|-aMH;=CHHvhkB9es*N+bN=?kxO<`*C5rtfm1 zj(LU8Iq%&wbe9LZ%PZgLaC-3dk2S2*uN%ymG@msFwdD{1_=Sxp~o#(H7m}B<_y!JUa@wrFvptGmGzSHR~ zT=bK3{=skV@PiX?=lBfIRrT?J+f#pa=)@O({HP9J-9ygN%lV0uZgOS6{_^gLum1e^ zdn1Q*G-r6yLq4tbpM3nCW$vx{rN6w<9}fO{(x1-eif(w}!)N-+oAY#{uRbeZ%!PXh zKKX;24s^knALd#ezteP+FMQyn=g;uq#dq__C%N(6dpzl9pIq?4e)`i-9_D>$4xFP8 zT-V{I51;I#yZ(5)pYVpCkMJK<-#z}(+MM`Z;5S}$rKf$qyEov0pC09Q;?`y(O3QgP$+cH+AF>KIi0J zF6B=y?B|Dl=38I<@Q_nE_gxOurw2XV=X7@7?+1PO={;SXhu6H~2^ZbvOFcO8p7Wp% zoz1&_>hM>doRd#{>F}>}^i&5wy70?9$QwPZ&Bw3u#z*_)3m?DJ{H3FN#P7d+sSlTX z+Whzq&-ZYcLuvuCvf=g zzT>BUbmFUfP7e5LpPb1j9{A&jmwC0O8=m^X#TRRR39bWZbJAcuW zKI+pO9{R$spZw4n-;e6b_14<=qt^J-5q|aDBXFq;AHCJl4?g#z9MOZna!oI~;zjqJ z@Hz*tdjmc=>{DNVeAHKG>TiDVlY8~d2OZ^}zt-j&zp1Z!&iT$KIiaWZN)PkE7i+ot z(LTD%q562y<*xmH*X0d<`{}F?J>24Xea8boyyetBPx(_94t4OAJNx023-iQR-|4f`moM;p@?9S2gr7N}8-AYG z)u$I8>fo=x_xhVx^>3@^>Au4QPIE#(PyFfP_u{0watN0>a$ndl_wdO-U+HEaKb)6K zKFGJe{5lVpefY_v{c?k!{L+;kzB|8FA8z^LgZ}dMwf%DE{(!^p4xIPx=chjA(Z0{^ zo4MI~FK2j7edr4>T-J1V&*BNU_s-$@Qh$2!!G3+cmjgOqc3uwfdFVY{tF^lNnio3q z1%G|%NGEmmS5Kd^r8Q2=glSE%(*9h_u8+HJenWA%LyH<;kl{K){~BM zPA`7RmAv7pzI#A@-|2}5e9oB%{oHeWkuUnvhmZEVZ`8#{U47{ME8g-Yr}n#dyr%K>5~I^5P*zv+wm@WTy{y5>Q?Jo%xH z{NN!k`uhGJF21T~EeGa_Kl;IGZslAb{ME5f&dja+=%bGFd{!5JYy0Jf{(Og%p5|Nb zJmmr&db>B&)t6s#@FzXZpM1mby}EpX58u=3zymk^i!oz&xt-kw2-qq1h9sTf`I@@pV zSA5MApZI~lzB}zd=*b7~@ua(ZPj2b7bzbi5*N@)%z)N@duBv0d9Oy$&{G9V%J@?=H zz-6vh@9D>1=jiW#GOy0dFMN1@t1f=ddAir|GtbV^$J##iX0G7#9UeNEZ@k=BbfLHR z=270@p|?EvZr<@%$2`D`2fp5$3v&!F9P+P^bNJHJ+{3}Yv-~h`=3SnC_T7GS0S`WS zo8N7mGZ%8i2j}&ZQ@Mp(KWn*M^-<4zy3qlio%ZvG-s;mwKGekb{rjU+F<_`gr<%QlDRV!{fbt$_-xl(8oUbto8By z5tcobj6e3 z`j}_F!B2O6+_(18(|7gNl^6P{_cdMMbl&~Om%H}Kw>tRiZ~ytwTTbmWkLJ}}>Q86- zSksX|zT@{)U-^L7eA9(b>e3M}xb#!kIXvfgzQ2XTeA&lO`BaxK@WScu4LIrJ{*eQH zcba!?RT%!myYIMo^Ru!pB#EmcYWRKblf@*k9$U6`m5uKw>f}YzW8fDU(_=Kges}5Xr#zW5G_g!83@J-JDgvWXLpqq1Z9_8Kq z-d2b2>UqEV&j0VN`67RCsY?fZ=&mkZ?5C^!&g%=8e*99$8ZN(M>bMWhxxBu|hfey_ zi7)2gdG`!G+*5Gy_&9(Dz)6>1c?-efl=z<5m zoP(P#e3SdV>Uo+E{LIs@_ThymU*V7^eDE-*^ixkA`TSNN`Q@+up6~5D=n04Y@1)LfZ!c;%Fi@?x&&$S>#3g(u(n>3)$rIOPB? zde{%QzWj0j;m9g;BWnwU-C^y^_-VeIe^ccpH)ZB?c+C{ z=s;io4hffNyZ>kFWju(bal4KJ?@7 zN$<@ko^&x!zSGrrd_3iX|LXGxPyU-DKEbV@CtU6=?^pQgU@qw6ob}dzd2oO5M}0oP z!!NwtWAxz5oKI`#^p$IQp)(%zgo8eCm}mK!`p(?UJges(REIw9W%nN3-_y^N4{*!r zW&7l8<`5pdGM@7}8;U+Un=Z~XX+4`1ngI(T^RJfGwaFZ|(k@8D-` zKH!p5y!A8Rc=N?Red#RE_{$+3)#ac20dDW{l0$vnZ`Ss|rWd{GXCJ)y<3lGn_=$&l z@u^n`C(0OI?~zi5FhnZ4`2B4*57{p{QmQW&YpP7 zfpc`@n>yaxx23DR%d4FG9gtJ{;I04suCD(4@Se}B{_-p@=G^^eUf?wUeBh@#&f|%X zIitV#?gRSp(|i8N6CcfidEuwIpcmY9kbnK~aX-N+H|`g6A-DMPSN`Br4-R@euf9C- zn?8OI@X?>{`0!JIdF7jVz}tB^tm){y`<+ktc+$l_IPstJ`cdBaN;mh&%n`ou!0Vhj zfX_ZT!3z#KqOY9UC%02qKI6+5x~s1q9`Z#W`+e7!Km3|=YtH4;e!1d@?-Peysc-+5 zAL_}Wxl*6reqZpCU%r?l-|@4SKl;Jt-ow)zyMLUgv%Y+XAAdP?FYm@v{_s=RKDmV3 zS}x$l!+UtuqZ2(n>4}HD$_HG|^U-(b zeB^*H`Z=dQoSwd`V_y9($%Fjzl^=X`jy~4(=ZATO2VZ^YM{oBHzF*_-{6lLz_@SOU zaJl#3r^BiaK78T7e8XY>e5XHr&coq;HiypPM;EzMhaS$qgmde8($gHvrMZ+BIhQMb z<8Qyb;%gq@<0Jjx$H(uXK764oJ>*kf)uXGrawjJ%z8^i|q^o;`?{u`5NB5a}`pd1p z@=h;$+fOfbw{ZRH>3592bi~JZIO!$V&gnx}_2tFyFPw5FQq4mmctMou6}J-t^;}`tZ3& z;pC&f=Gz>|9UOF_n|<=(yC+`e%e_HQejdb&{_;y-_~54pUDc(Jet1uw_^F+=1_yE89_L&EB;6Bp_AG+f+ z{gF3#?8BGe@&Si_(>Ff(ZvNy_pZU9h@8pLE-8`Ll@2QKwd+jA%;lc}U^J5;(3BLUH z9ZtT>-&P-Zfdg>$R>cjn9J!|~%z~6kyfn3b}^!NM2NBZDFfBogz@1uQk1P5R6 zpu<%>Jk>FWw|(aaeayl9?mYbFhfnfCkALN#k9hJ!9?Tsbw{XJkzJ{9)erMEiUVZ2I z$UpkfOU*72=&+b9`$pQc91i!rD;hg^JnNPaG;oh(xUb?xj_@O>O_VN=CJn4VY zck`nT{`BOZxw`J0I`(@n@ARMgz>oJ;UslNNiet7Alp0#uG42OBsM_upbRXzHA4hJ3R^4NP%xSW@3`gkvA{GuB_-Am^A zygvB2ADn~JoWg;(oXZ(J{LmK<`QEQD-29g(`|(l7y<+b0!~;(F-5chG9}~B{9fr$( zdEx8Uce=psJN)Xe_S4m>e?HR3y-p7}KBt#@{KHQ@_4QMqKITcT=_(iYn>YEPr@GGJ>nSht3=f~_Y)<8t zuKMHSJH6qymVfw9(n&t;H&^`f9u80S;Bijw;n!cjc=&4`)T6JbxiKH=oK% z`IdJ+Z`HNW99z?!Km5QCK05J(&Ul$m@706f6HZU_W=^c>j4xgN-tx!yyLi%_zkhm9 z4>;ZP?oq$5boSgjPbcsB#9wn^tsbBFNf*D%^pgiX;H3v&@S>;l?mPaf#}E0!n{M{W zx%YHZ&v|(;FZ9KiF7VqYH*}!qe)`G-|M0cGY#-jUK3(jmJAQaL&v(4}C-?FPr~AkK z`h2h-PJZ+6cm4QeuIVFhPwkUO^Cus2hrjc5 zp{M$Mkbi5uoR=?kednwEsE;ST=&YW5LVoy)AN}B#SKsNUu6l5tq?7vk(wFWZ?el&5 z#6SE!^`j#^?wM6xdDmCY@KQ%^%nMwebj25b_cQ14k-;13-1ql>zHa!%gp;Jtj)iH>m7K|bN6i(IVqhs(3yEp@%0 zx!9fOj}<@o=q+!)Kc4aimz?NhKGfm2{^rp>{_zJ- z`1tA`leeRA;_Y5H_xAD8ijVs0(2Y;{(_5bPG57Y#4ZPl~=e<7a&=Ed5x=--=9$$X( zozD2E2e(|CBlAE{IKAfspUjK=^GjazoqEHiE*$P1_mG_W?)PZN*Zl~G`Fid8+F z-tvks-1gDQJ%m4h<<|YnKe^!pz4*rm=O!Pz=_AMZm;=7?$+Ojb$%}gfzp0mJ{q?n< zUVPxo+)rP6;t4lA__#mtea=7r%ZpsVW2G~^^tK;v^8yFl`od`+T<$UTSNQ1VJzeN5 zcl3~N_YC~Ln`1cS!hU$%kM`4f&V&0vPTfOr`rVgnc;KW9edz`lJa9ax%R?*u`Jtaa z=0#oa<$0d>o$k)#!#DbS50AR^Fdy`zv-9flpHKXz(`$S^%lGQN6@IxlKk(`6cfq|W z|8u1S->q=)pT79c@?Slloh#K-e#_3ZOIf{%McZl2l?KVA7F zXLP0m9_CMfeBt7Yd&PIZm;R1XhkpFGmt6XO^}qlA;YWA%^p!6><E<|KxP~NC$eGXMWKK9{69XPftAMg3t7~A5V4hqO1JD50`xF=bljiU3mB*Pk7LY z-ulZS{Hr?NJO8cs^6ws%55CdIIXQ7}!HWl7^i$V;=e$1N^I5LmgwKBOk9%)F-QeX1 z{rCZ|oWTi)XS%_KAK&B)K6x}}<`*vS&%(W1;q^@C*+=fIe20_n^w5uAa`(Hw^5h;e zKfd!#Klyi0$&GVz$scv__nmL@KzF&t8z0}@KlJ9KI(V3K=hSuHobbna{G68$e(@VV ze$f{mIpZrI+yipr-jX*tqbD8JrKkP$SKoQK^_LU#jX%Bgkq6Is!Q&owo}Y3ehjfPr zUh~U8^XXY%`I1-o@ueF*`GU86@rl3s!4D6ftGUoeZr$7Xx(C#8o=L?Uxh$_~Blazt{9r$2tDXk(}WNw|er#FFwJ8 zKYn!ep8npOXa2zjr~LSi2mj!OPcGck@XIm3@s%gP^WN)2SANh_U3|=!eE&&r>xZ8C zYhLL_Z~EFt5BZWOIOuG}UrzOxM?Sc(=!Q4F>1w~6crUk}`AH}B;la=EpWJwlC%kmv z^LhGN^`#>obfXvl_-wA_z&!HbdHK^{KlnWJ9e=v;TMp^3?~adibi!xmPk!YNU-itR zd^m5VgE^Y_iu|}Q;gL^#@v;A5_`*l$?UM(%{r=%kubb+@r@lJ!!!P%tdhp5@ovrq( z0~fsT(@md0;gTbI!>!(B``iQStLr=;?ekt;b3yl$>Y77+%q#x#0FT_*4~IO$A@BO@ zOHXywhXX%)SzWC9PFLDEq+}iKH zp__A_kMd7{eBpGT;{!Lo_TdSi@8*h5_&wFve*RnK051LMVUFZuSI_T@{rajyCvzj` ze23>l_2}UoUsm7g=R6(wil;j6Dfb;c+$Z#wGrxcOIBy=_4<Le|f+kKl|XLr#xL( zm%n_36E1$KudaRYx+molAN|a$d|K&h<+ps{qpmvq=cCpAjW-|Q--9C+Fmo{(Q!t?s7#B_>SX&mprNO?*a1+mpZ%O7Cxmlf; z8+oG(Ugp6Zopx@wn(tr#s3&K9P>)Y^HOKt1A1-~|AN(vzdFCVj^5H#PR`}>B-*CvAI(Vq>`+9>hskz9&)8W-w(n?H~8V=k6h5locL~@<n&nM^cwBLES;K1Ya@RdL6&V1tOy?XSatK9DD z!zKT8ks~>MX}`R}El=vm)zPT0u6spp)RQOs%nv=~iO#>OuMS`3RDU|soi4lc^wgI= z^z^JQ9j8A0gjeqMe9EDHaGFDUp2rh@?_YZ_*WUA)zE*QfPy6S4 zeDRTgzVmhZ1}FXSz}vj@&F_lb!YL=t+Xn}|`QTa3)weq5{;^Nq%>jKM)0K|TJ;OyW zxXmj(=83*|@QLsG*iS$D>#r_+d_M}8yt!ZKPfz`P=f`2^=`wNPx7){e=i#IW9pwZ+ z`0R&cjkedz68un#WZ=|~Uz z^f6cJ%O(HJA3pf2Eqt}(m8$QQQbK|{4@`EnFsjrlvDWW4~IO$X)fkDd4bo8uYTs1Zgk?S-@_g6 z`&Rfoo2S)xb7rpW_q*hrJh@-!&JR3Js!M14=m9UEtaNuy-r)UEUHOq$zL*m@`KdoW zsITvQ z#2+7Z={xfa5C5;LYwqxX3xE3H!5_Zk>;95&c+8o;{4*zX(TC1>(BF4@$c?)4<{ok{ z;AKAOC2w+TUg>_7KJe3tKF-T0|MjH@9{S3moS7GX&;uX+)ZgLa2VQXMuP;61m2dje z)j9s?cTqoi;|HJUB**-~m#%otRSwjXAH3wt%1_VoXvGVD_aq(7k9p#wyvrAz>EZr` zQ%c<4wk`{Bgfd2>Q1_~GCq9}dcm z{d~~Z?~ikGqmTU3m2PqjH(qeiOU~UxaL5fD>cXKuz3KTBAO7h7*n9Q(4hOyIVwESl z;NknM$6xmzUHJ8O=#Br>1^(0ad{?Z{H~Zs=itSMzkH;p-#7l~Z?4sqU;3N(mCyKDZ+q`MzWDRcKDg-a8Gp}m z0>Afizz2Bg;~w$dIsVB5|J*C~(ZRe~eWxGY>Eye7!H<`HzQgODFi(8v7rxi&?Ea?< z{(R!Uc{PXL+b1t{G9S+QPER?6hmP?3t{;BpM;_p{-#&i8sjfbBR}W4)(3xLyM@R3S z_xlc)zWT@~pZV*adUpr<_Zf8v2#-qh!hT;eM? z=8jMHn+Levw{ni}^bKGA_(4bh>%%wi@!RQ52Yl3*XTM|S2TpbA1c%jmdhpG6bAAvG z`I|iCiT-fYRZi8DGk((7dA{JG&Ph1r#eUCl$|qmwAQ$l9FX!%C_d8zd>BD#a;j5qb zeA7pct#nq8kMx1l+^UC<9MFfp=E!}-*l!IUU13@-u@ngLqDrLxUz9`-B;e8C3}`ti?vz{Lmp+5fZpax7=+dk;T-%$Gd8REJ*lHOG9EOT5(6j~@Ks zgSmi@UU;th^BZpYAl>2udllB(nnwW=#HWmJDl=BKl7r$e*DpoANc4`2R!)6Z*wmnzOQh}wckze`QaYI z$3FGUvvbo|{md0Ua_ydwZ|CViFS_bWKfcU)!{2?apZD$&y6S5l?emQHx1k$6_~WBK zzV0LQ<=*h@Je~3J-u$?)<};t+rWf7mDTn67eZy~j%^}_73@&=mUyksF10Ouqmt#Jf zA9&0K{_<^(`9N>}$t%8a>#wf&6R+?4fB*gC8{MvZk01Q@$uU0eC3?~Gr8;z&IPi2Y zc&49wmM(Ixk9_gbetD;xdjwu}+&}iwo4)wU16*{bllpSYCwSyje&x{W?<{rgb1(2= z;{BMu`oRx39_sM{-l-oxySjXz&v@y>e>hg>^>KepALW4#_Tj-t^CBm5%@28=I?{*l z_{*8xc#kjqat5Ds_^L~1&vb?FEIst$BY)}XJihwd2jB6~_n~Ke-BWZlhr509zIv7~ zId`Ag=l=7a9{kn^F8kD#E4t}JH|OO+KmC1|H+tbiCp>+ZAHH42mp;DZ0k1rnXREqL z)wyXkw|t-jyzWEq?WYr8oyXri@KrwU>MJMko%h~7j`xS&Tk+S=vvZzbJI6QonEdjU z{`7;>dGF6gJ>TWYeB*;3T;_*f`r>Wf_3@p4>U-uteEQMpdv&b*Q=h+bW$wLq-#Ity z()FZ1c)=+ja<?%{Gbn?tor#qk!SY`-K}!x9Nu5+#~-Wybkav& z;aA^1<@Zn?BVzG_Qy+6rPrUWx zn|$G|4t>mxJn+?feSCM$9O`FYJj3Oj6<_(5H#jG5dh>-3Z_}4=>bURT^<7TPoB1&3 z{Dnt<`QX#(sE4omH+|o&aKNv=I{cs)ec*K7T=0$mC-tElUFm`c-KLM;!-2<3b>+Z! zxs-eT=p#Syd2e3jhtKjWKkCBkSv~zfrJq$@ z=j49s51;$mK66V4d7$S>{p8W_hI8u5p?&G-SpAl+874M)8$|Oz^$)(@&Kp&@Jo)&v3&b3uQ&11 zUmobh2XjKFADz?3y`YZ#(wX0K0Y7~2s)q+%7gEc{IdE^C%*8*d-dc+KJmiWeMSd9xxeJuKJ|T z)TfXAbfzmE;Wj7q;v-!retq$WPcG!%-PVu%+AAZ73f8VWi;gdS> zdvAXE0Ee8?*?Bp!nhW=aoVs7>!e9J6%Y!`9n=W|pS8nL(zNG^m{M^k8-p+e3?|7fK zUk>P_kNogiU-y)I4t~1P2|nliPT{Y=bMg)!-}(GIy!OdE-|(A%=h7KJc)M;o@ZZv z$gjN5JizTc-ROT;Up|{J`}qO~K3_ZM9x}Jy)6?%K9pzmgy715HyZU&|-(fn*4d3{q zAN}CKM?T$u`pO?&@Zqa^@@GGP>589wQD6S!v(pnkxZOwixF6JU5Aqp)`0%oiPFB9j zk$jjN&v;s|!z(AZJ;R|M|Kwahcs%oszWUNn4&{$->c|~De6!ErMf9V;{&eG`ete&N z=wO9QJ$}z;b>OA5yzt$3KH@0{>bvJYr9WQofBfNi+dlKeFZx@*w2vOnna{Jn>%%wq z5}nP%T-DPbpTp|nNmuu)dBszm>95?#`P9kps_*od(~seROTPJ{uX&}@=g#p<9r$8r2(_``3X+?Xdi@JkNiaWDFgKYZ>5b3zY3@z*>}e*B>W{Px2KuY9<-@SHg0R6lj( zOs?ojUwHUwpYwFY&%D5+-^w3)n-h7{S6%zyv)}3-yQr?d_|uQy*1Puejh}qxBcFb^ z-?O~h53l}w!CMaG+dRQXXL|9;?|}TM=bqpL9qeD>_1%g$-0tD$_M1jSrE_~>Uo=*S22^I9Ez z;m21Ub8Vmd%^bra*LcHg9~{2x4-cK_X`lOsUh4UdxA#x+G6(V?H|Beu;~U-my#OD7 z_;3HJ-(joo^rXA~@X^gYs^h(TO9k2KjefzazuCa;WMuvtFND2@df`+?UQG7 zNGJ2fclV(@(vNQH;EUhX%YJq3rz2nezPLZ>@-y6ga(?%IwVG?V&8zqHrKj_Bqqq0Y zd#0E3>e6@p@4tWeIL9x(z-Nxt!&5!;X!ZNXCw=I0S${m#l@s$MFY@l*lt+1%fBo&3 zUp(|PA2Tm_%b9xaaXGS2-Lv?3hEtB{gg1Zj^WL)+e)A-se9})I?UOsc$*FmT2Tyr% z&+$Qjb?6GO-0_u<^l|Ug9WVKz6CdEjhrjALZ@#Tx(*L=2xAM(B%Rl&kw~x>8@W*%0 zaO*=C_4p!>{L-K9_Bp@8A=mow6K=lH-Myr)XL_q|9_h?S_30=dbbuQV`l~}9_~F{| z(Vq|Qfmv6M`DmWx$a~LnGV?)K{l13-UVVJG(w!dsbPv&=ZobRAIZ}rnaGDQ#$s2t7 z;>TyXmj}M`i|<$QREG}m>*qV(^l(qX>3+2TvHH&0j}PC?iJZut{&4AIzdm@=&3=Cm zcu#NlmOMG{_Z>fa>F1d~bfu%b;H$sB=1jkd%e>%Czq52SXS-*4g4g{)Kl#VkeB$BW z)`xEHZ#m-^e)_}3cX`ua4(S6Y{nT+zKHymK)E92|DE#J`-h8FI`$K=an@@WC{e#Os zIP@{UaN;AM@X9yb`p^R|I?I!M(2>vlloRET8bghaVjD zptri_7;pRWntI#MFTThfz2Kr7{rTZ{7f+Bv?+qg>-d zFLPv{zn}2smwD6&A2{ed^^+@eU_U(q~m)KR&x>yyug1aKeYDdBBtYbabzo4>_T?`gFy^yy1bTzVPB_ zJ|5yHFV6D=UU=wh&gdss>gdM@I?4%s;DpPZm<#;%qo-%9y7Yiw9X#X!PW8^y!Tn>t zorjk{bXE7L^H%dh7x#ev`sqLS)72dLzUt$CqK{P`=_pt9(U0zQz(X$NS>FAQz+o=s z(7nJ%eetD(I#&09`GrS)xb%^K`_%U=zx3l1z36V07rxO+U-N0z&-XdUbl1-_-Swfb zdh}55OFrXmpZnfinS1`r*|*N)gD)I%j+bY6CqMPnp|g3w3valsaGR@-;o~#E&_ON_s!wOU@uR0)%bojgb^b>y|J*yC`9@EAJatZeddMqYaM6`c z`kR|K)$?9GzQ7@O5ABD4?xPc3>1A~v+J_%}c-f~f9r?i@If7FjcR20Gmv3}(&OUtj zC{ON3c;Vs)JnFd5@Q}No;j-HA9^yYg;q&Z1G!NdpkMPphGd}v*PZxFh!aw(g`M_VU z)$OFFWI!`~o@@w*x2Xh9$zWg%B-}A}+L8m{%KmFtrAGp-z zlR8%Sf^+8Ypgwr`uAkidj*ndOpPuTPcRuLjJ-p_KUi5{-edIpS4=?At*bdh8I`S-bf^pR)Z=`WY`aG&|E4*dA?i%;;W|Fiy9 z=Y5x-$M(Tz?(LUPzTLLpd|BmwjlO(TpZ;=9KmNM!_@TdZbe0#o>BCR{;A7<X`bdiMZ-?WYeO@=afOzJ=F!&(^cP%f~~{Z(8+n9xu4`q02?* z%rD*O>^mL!q7Gbm;3s$T4&SaHz3k`v@4nBupg&#Z%I|?X=Ec1*bAdO$c)>|e_066A z^pICM(VuQ`t@yxYF3)?97hUP3E}it{ue$odubz8BPU%Vy{-_U+IhSj=@Wo3X_nUM2 z(oYUOtIJ2cO*h}+G537nn_SANzhCU%)x+~s&!1bJ!yj&V?ZZ=FzThiA zd^NvvkB5BFlfLTM$5(abi+=JzH@NWg9!~t_OJ4NVhwgB$baKylri*)mesaK9I^aV` z^__#ud;ZarPjqna@=0HRADRPsu%Ey1)88}w)a8fz=J#mi2TuLyYVPnl>>MBYgs-~h zfUop}3ts!w_1$~-fPQ@6;lO|D##em!sL!11gX-z4K7RajZ}UT6{pgFY^K`JEu5!jF z^_}Aj9pr)z=JRLx)m=UN|HoO+-kYbZ-tSg9_B*3Ko#DV!p7EseCY+IfF~i@KBG=@Yi=TT{e&Iio1>=J;Q6B{`Ow( z;Gh#e{E#odLvZjHA9(5Iy>oEOBmF$PpY78hUjDn^`0Ty@cz=&4U*uE{=yuya{p4JZ z^`nD)dRB)Yas#)1@WCNx@&X4P)c4F+b0hy&e&}a~i*M?fU%2E1Z~9t&=bQ8N^4{FZ zv-5Dsq5RR;KKjT79&~rV%N4!hlVA6}_4prou%9k)nG1RH>^r`A{;58H=z@p+e6qsj z{+9#3;!i($lWV!9yZawb=j2U4x$}$%z4-JqUh-_N>GHMj_{o#~@_|ZpSeEG)jx8dWfK60!cUUG;RoP2_Zu6&`J z{rdWDF7(Hb@A~qAzUtyBU;Myp{?55~&C^PUnP>M09q1w#azj@+HV<^#)z^>j>e9nG z`M_uTg|GJ$H^1)c%Mbd})xBiDoLKoHhwf+j!bg92QK~S zHzDHrAjZ#bOu?EW&(>ez?3@9Of= ze*C=0>ok6A@N`e`k6!k7NH00V$9MQV!|54ccvtx4 z0S@yj*S^DzH@xc7&+i;v)pgE$xZp95c;jiV)rG@c%MX1$Tj}Orr<kABbTs6Sr(UqffO^{4Nw z<35I)fA-&2*S@zs>noS^cdvM+6aDRn4}bTzdC`a8c*_Nxa>{Rb>Em}pUHm<(r=R-+ zUp(c)Ilps!-|6B!KJd$ry7Hio9C=SaysUCcM|f8K@pZ4!A5ZrI{pFFK-a97;aNgBt z>S&)8eyh2LpDy}Y?e}};UbCN$`0+&!JnwL>R=mxn{hsyVgO$FQ)!{20=%OAS;XLUa ze)N`8@8!llD_3}%A30TrujW@S=-@t~zh`{)fgeBms}Gkt_|r$O>CK_>R`Vu@?sxB3^{jlw`)A+baNp5GJ$UKH7dp$odx@`j@nzS~KF_|(v-9+@4_-RU z2|n%#y2+LE@VL*+tMl@w4;}gEJbcc>Pbc-P>Y5kl;7|{K^KEYBS1#e=7yq22qx`Bv zFTTMuak~fTjGtWl{XWZ2IZ=1@USIg}h6{iDo;wHEo1XE*3x9d`j6Ym>z$?Fa(VdQb z*AHKHgYoc_{@)cb>ecKKJb_a`oIOhdd}-Ff9?(SW}ZCH`tBb(^N}9r z&H2yyrmuWFjQ8~Le)nBn{P1xv$q78_n;$&o%>2^NdwBKxQGdCTBmJF&S04GfIuED( z@X!#Q~Db8q0Y!*3s5^_NTg=)+&n^5j{+=@0$Q zk?-%qA^)pqb?EH7{P9U0&v?+4UgksY^|kW%ss4ERJyDmhaQX}okIf09Q_`=Vp`THi1_?aj5=%bH)?i=6f;Jf`V z@stO+<-}Z=8~LQ~x6bRMFP!wE&rSQ+IQOn+^GpxExsTM>*W4X+o}O~74m@{@gN}6i(s}tZ-}pTC{kBzK@9|aFJpeZy z^l^{!3t#8xDu3|o`ooR4yqQ=0?W2o(m>%*hk8)=HP(QlkXQh|=^tNAp_X-{4hi<;Z zfxmfi@4{tXj>D%eKgb^u-+ixF!`0Fn}_~B1ab0&BE@m_s7x=vUA;IEz>!fhY^^w#fN_4L8he)-hjv%KkR zm4EfsrHl1*edpZG`h42$pE}Z4J*se}ZuqSqpYZnGJmAa!hw8gu=s-`n?K5Y-%N@V)z*B#?^~HzY{4}5Xz(ZF#HGk^M zA3d$~fJYzx!UMOJ9_|OesH?BMeoaTue4`V5&f&qQxzbBc+)r{QhgN#flYaW}kB)L+ zPViFSy{|4kt_Dwf@y&Vt(#L-F_@F=E=yuaNy2>?t=1o1ixX1KYkAI%^<*)bjrXSww z{s@<6bICt?m~Z)|Ki=xY4~Kg6a-P5H`|ci)L;LW63t#)q$7y{0j`HuM_v-pxqPsfw z!R4O7%X|LHiMgZ;JoKTT`_w(c5B=!|pS<8JH*4^8e|Yb_e8J6+i_ZJ*-tt~OINdLD zDPQ>EOAkEFGoF5L>B=X%J%-Eu%`f%fvybj_EGO#QFW+#$ZLZ|ZzWJR#bhOG3JkIk| zeR(mraJ#>L#amyxn-}Nq+ebHb@%PAlqWcR*N2bhjc)qDc@!S!?Ux@q$jhvY z5C7x{4)biEd*Y$K@`$Hrc+_>BuMh^_5@W z;ecO0eW&NFuRq-Mho3I)YtM9`|*nsE?OA z_ML}I9sSLXI&{O=eSwGHML785{*fnnm3#ZlpT7LF(%pW3%bjx%@qycW{md=g_^hD= zKjYGQor6ax6<%|95(M2D*ysV$Pbf+)f%>zC7W}g03=f0Isc&g{z zZTsXJAG)ij?{5E5t3L2P_MYB!(NBLq`>qb1r+#umNA>yd?;optt?=;C{Qy6I@RTp} z$S?PW`Lgm2FLif)&szC~ukTj%?ZeCS&+5?0Ip6t5XFkd!|KO1q_2@%C{oOb8(MN8b z=Z}7JEJyI0bN=WDpL@%9{_yQ{I>^b#p7C*>KJv{^t9wyi?X%*K=Ush#cV0a@*hdfh zdz1O@aCW28Tq7#Ri5pqKi|x&I`F|oANM&u z@LB0jANbYdzxQ;(U;g0xUOjrMF9+tp^Huxh&s^aR2Yl`&IpwESKi}yn@8(B-;FK$P zcDUT{{M5%eJor3$m`m?H^UwQ>`l%}?{K7|GoyUuAaKpv_Red?*AAj|iCw=%%H#*Ue z-}=*mj^>ws*WvJ9AGpnlIsDLmeB_(2&htrs=kTF39<%;seXMxHjSs!tGt)1Act7U_ zF6(i9{BBatFV@bcc`c@bm3kxadVse5`T+KcDcU zKRn*^gZ}WjAMjHTK6=XwKI+r+DE#=TXAa%JepjvD!{t0b=tFn=@bO*F_2mn^D|{EN ze8L|N^KDM$UM|e5^K`J^ywHWObnpxx{P@rjE_nH`KYirHd8>Zv$$|UhAszhPq&{Bo znfK@R%MBiQ%Llyrz@e`D=Wq2^>(5r_=*kbe$|u}(_UyYlQxAO9Gv9EVQ~l{Aug>cy zmw52!bA03xe|XICZXbQ`dd5pX{pBA|-{Ikp`sP<%Jn8MboXZJ6ZeR}HeesP{2 zaQbdu>Fr+A-}js)p@(OE@Zztzm3wu4rz75Sub*?fzE<-}2k-d- z$D7Xa&$@c=+*8kf59QEGCqC;#Z#v0`?|A4dpZMdAhkL+%?wp+J2e&$Sx);pH#O3`- zeEBDr{D&JZ=k({}st%m`sVA3s(h(mxxMX zt9|gp;k$gpE29u7HzXXA)}b z`Q|?01N_dr$LT6R_Iu_p-{|8!KIW2c)?fL6A3pry8$IOTetqcZJD>G2FTd-DmsQSv zSBFpX$q&5sr86Dy#a~XnryoDvW9s|8S>ffU{dD=-_lcV>bkmQn=JvGn_F3fxPddm6 zeLr>nU;E9s+~MyW{q^x)4(SFb9`@54e>nKP!Y41z zPX{`iC;7rh{T+VuP9HwP>E5T8_wppC>fx&{p8R>Oul(Ze{-UGrc&djlJ?V|FI_6AY z_r3bgt?=N3A79)%f7(YU_2u1tZ$Cfmd+9uX=qkr}`feWRYrlGY{8e4N>8lQ2t9|O2 zGvD!6kIw4iZ$Dl2Q;#q7pqD!I;X9r6oqg<=E9cast2#TLZ(8SlWuEEhoceyh;4u#$ zhknjGr;fbaPbYol&Pq=@ns4{8e8`#n$_Jk6(8c`dZ^ehM{E-)W;iaB^{5ebyyybHD zUcd96FI(MXzS9}6x9!u1E`GQ4gU_=Z*l(WrNmuv1e8a^LbAS&#@4{uJlY7ZNz8tq- zpX;9SjRG*(~-~m(A_>b|sQz#$ip=_Ft7pQ(#`*n8{lygKy4!*{uqBYffT-hMjSx9Wqhe9~DC;If~O^pjh2 z>i1k9{#u>8tv`L$aj)RVZ*}dH6S&}pgI;oG->$EE{Fhg`#*^>zp$=Sl@%y;?p7m1) zU;fJvynaXEbIyFzPkrxC>U-Zx2YFS`d${oCmwnFJZ*J)0y}twG3lI1HLwN9{7rgRi zl|%mHDbI50e!Qr@XZ_44e&z`-I>YOJkSqP=5f1YOFCE-J{8!hrI&{ZlKEn$?9Q1=z zKE20}PUggWyw%s2AD`0EJorw}qrS@rzs<4LK6%1lU%A&$p80`~KJ>;*-re)&5>DUw zX#UNSe0fht`PLuai+JPbJAd4t^2{Ij)rSjDd6fgY&3Te9`0=Ep@A4-v{NblOs84rw z;8O=qI>Sjfed$aue#@J=(Z~HEm-d?v?^n9Jhj!2KTj_zf`wt%e@PThu=kauoUSI3W zUp!Xtos(zza9&?J$;IxxdVc5e_d7vv`om$>56=(PH8<+uE1&#{3V z1&8^PTX^uMm(_gWXmPy@r=(I(w#@^YY`_et76XXW#iDKkCXiyyk^|{Fe)Q z-K8(x)RkxF^!0lnH}t0m-{e?s`KSNK`pN}g_~jh^^zj~Uy7OBuK3AX4`kG7q>Fb%E z@Vi&&gFl_D;U1F@b>v+?d_6l)S2^1Cffo+v>0w@`4u6ME{HLq=bbWoE zLOtK1E#Bm+~gRa;2|)nFIHk`PCo4hx)0f9~|D>M^CwdOCLV*9WMOo=b2yT zl0S6CV}(m3tSI2v}@urU)$Q#^zy-9y{?B}C% z?j`uV$5$PG(c3))uQ^l4ygTnbzwQ4X&cjywrcQ9dZ=TLOC#P__7yZue_QCDhJ;rZ3 zUAA8xKEf$C@XIG(k2{YC9X|CQfBx!g-<&7;#1D?S%7L8V#SgsfTj8P8x1P;4T z+|+;SMIZWE@ib5B>#GmH=&{3h+e%M$?|YBGoR~|wmLvC)^X?VA=}u>JNild!z3`(aJam(9`K0%o>a13J(^WlwI!7OUPdo4X)Cq1mhtGR{ z(DnVmRE)qC~fGFSA%myhy7KmO2JANZf^ zbKR;BALT{P_`KWiJY0N&8y-23Uv=Q-m;0AK_{j_Z)%CmRy*}{Ci9YxZ4{%;o2QU5I3(oUFAM>l8Jh|uK!&`3LtLo?r2cEt=Z@%?02jmT29P|{rc0J&+zfX^Wn%FAJw0D=}ag2eX5TA zaKZ7n@AAeM_b@zsS?!0%J%Nw;z(;PJ_Z|-C^!4oARsD9W@7D9)!->z-n}6`}#WNoK zbl$W5awDIUhkThsxaHqHLl61#U5Y1O%;gcu6O`hgXZk)pt z?}zHah4*FeeK!xQ_rA-!9N=r7`QW@c@odiFrw1H#roVkV9P0ZWq>E?#@7ganaKKG( z`tXD9^6S0dDgErzk1y)E5A{(;{^`aCxtBNlZsQ?$@~Xc4+fP3}!8!G(i+fNVy2~N_ z?tzQ&ICt3d<9IJeaseMd`R={CeA?B6TfRNh-JE&GA3i?v-RiyEnGgKw0Y4r1sIO;z z`HGMFr$Zn5(p7HwB4=_zC(rugNmst>2iI}^@m9}%^J0$R@!j0oM-TUc_js98e&H$4 za&KhaOH+}ig`{%Lp)pv6x$NITP++X_W?>jyD>vtbMxjPF7UHIs|XE@%s zpZ@rp8}q5Jm2Ujun>zUMSzh%$uCM#myy%O!ywbyp51#auFFwg79Yv^VEe1{J& zb>#^jI>?vz&hZa!t9p1irw+a7M^8NIK6CGW)W<%n{j-m`k}rClq!S&VdRAY~<%gf@ z(*Z7dH~&_1BOm(6gMQxQ6J9Fi+oPFxhm2dc(AGqxE{;GQF<3$(e_$9}5P{)3`^m`-M<{Un{*vD76;WUTzfMbQ* z?}2%g1Lx$&eEJS29C*ney!Ki7Bq#skudX?S!+g?R9_0)l-|0#ZdGTGI=%J5X$P0dS zkz0J!ac{xJKf0)^9-Z9JawMO8!B3v%dAi`g^A|7o4L#+E{_xYwdFS}W7kSgy`8V~I zH}B!67a#mS9CePap6UPEcjw@s=hW|Q`_^K>wu z-a7}c^YA(ckA8AQ55Cb)fBX21kGk^7A9~l$&>o<+i#9`_2A{pN$>Tu@>_qp`R+WQtaS8@KOFLXJ^10pC-oZ+P(9CW1vz0{+_4zK*fYcAlC3pmd@rygGN3!nRB{=Tb2SHAL*KJ?Vb zv$}lb8y(=&hyHNMBmQ(X-*PAa@W?%V;PLEtm48c?pB#RvpZD;;>pdOuv)T`b z)qdykF*oMle9)Cn_{p1jwEs`IMzdCf13%M~L^o55W`0)o1 z_q=(b*YpcM`MM6bx^k?axxH+kyuxX|;OB=qfyaA3(U&gj(giL$@Xa~7Ug4q>UgmS2 z=NrH2Mz853|K;0vI?>;1pZjL^p&Neqp2y?9)j2D_)#cZmSNhTeF6ZPCPIF2}c`;{v zr4Jl*F%NjbLm$4HW4`=Lce#-Ze!}g3_?1p_3Wr>%?>&6<#$O)j&lh#%7Y;e38(jQQ z&)itO$Dc0Vn-BQ#GOzgVczf?W{N~jC=N^&^^9qMLa>7@=_&cSUi;4pVz!>hhL z!RNev@Y6Y5 zTfJ8wZu7-gc<_0wKA-tRC*SYdM^AaBt9gUldHw!&-fEvZ_?b6-J=4=ZddoE*@WPu8 zR{Ye52Tpv<6@TcepE~kGKYcu#3;w&O)p38w1E0)=?{NCNZr)RJX>RE+=XjV4`{hSJ z`qD=|KFNXoatojN_1?Pv_uoI?>46`;)iKBL%eTJfL>+$fiI4E=j}ITL&gn}ZKAneO zUG?ZEpH}$r;@4?);E)e})pd>^@VQT?9=^-5eA3f=`2CRsyyOoqIQeIVhpzm5iPvt$ z11`B%M<37T_I>B!r6)Y_n}2?oH-36{PEP1XANQGO_ZU9vyYGF6i;nU#b>TbQR{p|= zkMnTK1%I5QuiV3dhdS_|rz<@4g_|Gn!6V=Jt8X9wak z#6Hh{AJoCm{LSA_`te;K`r={5lOG?$g@^w3PakgDFE{2L&hLGf1AfA7rMvxj&>K$o zG(G6#na^+P%YQlJyZaw+`27CBfiK+dXS&+QH}^R`tg{ZjpNHNjJ?~ca)!{3i@}#e4 zc=^LW`|!Y_tv-M0Y7XR_ zkM42&IK6Hh{eL!FD@sbZX>GZ2UyVZC4$T|av9fv)PA4>;vi?&JVY=k=E>^P`V@$$S1--S2ef4?gPf`7|Br zB#-VFKJyD7_|>Hg-|1jp=uJ2Hy8=v>-!VkFQ z6ffUBPdxJPKBANP;)mRuOSy2KAMn}F54!SY>P8Q`!j0E!eEsgKM|aQq${F73das|l z&g1n`Kl2E$dDB-N=ji*l^X9>P;)4fV=EI7II(&hbKJ?_D`$!Jq#}9tFlT-Q9S5D;s ze>tWrf91};AA`TT@ZnD%xyS2k=jpn8_MQIpJL|i7Q4epvJhu-o_Y0k!*I!=j)1Qtr z|8(&EqJF#8?*rfD!hZVE-+sEog^%A2e$vG`_2q_d{KlIe?iK!+cY50IyJzS0J%}&e z=q?v@cJJA5KHPum=|@kx^Vb~eCTUL@y2J)B_GuD9S{DP zclmb?Ke;zo^yed;;FKHrrJsKK@CR@C;Um7zn`iIk? z{p80yc)!ABKR*0+pXrB(zV@37dBoFq{Pe}2KXAz@9pvLnIQ4N~!lf>Ktavz2Z*}35 z7x^$>_Ur4OfZKce!|go(=tyUE?&2lSaLDUb-|1s6)zJq|zaLgUS@AolE*$hQXYw-j zg%fW0;Qn4+=gjN3-rHwB^y8gtC-{p6M&&dCja_R|Ajxt0?-bg%u%54!OIPv=(q)Q878^8`OX@a7{va>b7i z)t3|X=mLk|7yQ*f?7Tkk;zh`{fru&mYqdKRBJIqda)V zTh6`r`@l!}#nXE$z3@E+(>eda@7 zy!eR+9pUudJgN`3e7GNGeSYdkck_m~T&l-+@Av=y`zHtTrXSzngwK6r-smU4_VI^r z=E1(#`s3qwh(1Ss*Pl-E4kuooeW#y%;;j!~;Fnk5)id{WQb!K;bAH}m_B$_!aN%#h z@SHh=gP(E=FFtUntB(GBksEmN(4W6MAH2uMIr_^F-T8dqdH&lcM^?D~Zt9D-yqjP8 zn=^IkD!=rC(|fwfo4WF9zq)ebeuY;)<=#qPb>XC=zPCdk_4qk?(#w4CjbHDpXQhYL z?}BIe;IYaJ-^?rid^)Y4{&?c=Ssvh$L;cj{m-*9|UvzPv-tJece)Rhh&dKY!_wo$S z<=_REe({{bT>cBX4w& zQ~ULw`p}gR>Y8VBWZ&oTdxmfKp09E#4|Ia#to{1Ib=!OM%?EnW0Y3W9zU~9}6J7W# z7j%M$Z*V&YxBSSB`uyiFoN|IEpXf2?fnRixC-*j;y;lcrdYN~);iVJ(=;6NLoBsHy zxAI3W;HRhi;A{Kfb`B2uxJUH!UcS`P4{y55E&t%1tN!}ICBJxE`7R&yI*6C~_3S>; z*S&hxes%1FA1^-A*}cP8Jmp%h)Nu|@Jn5$%9o#qY@gHvYtGufZhkI(rk6zwSpXmj^ zdxU;)s7Dvie1Y5FSNhr~|K>=(>Ea&2PoD7N4}5soKflWl{p9~JUGSE-_v8KQ*?Ii< zrXJn+Ay4Yb!~9NPb44$F;G)~_fyZ2{&tJM8wOfpC~Zyw?1FMMb1!yk{;d%1FsKKz3R zPyW%B|LW4yd-df{UH$p%caIMG*zZ|B=;5B>KfdtUk3WC-=sf;#sRx&5_4q@Vuj$Dj zxuyfWyM6k~3Eb-aY2O;Fxq)N%T@LWJ4`06e?jFWZU-!NHgP-OMPxyS-N6z7c%Zjf# zFn9ED4j#Vv{i2g+IMu`ZOS+u2;<u)ue`rySEefdf^xcP%8eeg3kD;#{a z%CEVU1Nu9^J5MLyoySw|+(+iv{x{XZUoP-f&z#|Bp7e1JKDzP4IrBni_a`3q@$-B5 z)LA{#$GpO)t{neuKb~;%jX!XxD=&0|k1n41CQtC_FXwWKk6hCcKRNQ99^U^LeDsqy ze$#{B_NmJU`{-gnesd1!LkIi$EwA*r3NL-}@T~q}`}lFxGac#YUeQnfoToP()Ti63 zu5wDP`{?OCf3Djn z=k5jX7c&3(+56v@W%r`{-_JT ze((PG-@n~TC;jBWyr?G^=0+~@Q%An#-94_q?|7JBxYYX_KK{CI^o2_w`p7N+^p`KZ zR`v0L%UsCGtOKV$_R&X9=&!GQ_zu5$@SYERr5hjVqOQEcuby*qLMQp8tGaYDzw;i| z7jJpf$DFAz&wQr)yl?fPyFTtw_t?%aIl#;P!YAiF(}&;uf|oAz_d7!m`{1K5f4rAt zD?ikAKRJ&Fe!k0%`c^v9Pu}^(7dqiV2X);`=G-~;eYf9z#V7OPSsyyVgSQ;O!5_N2 zukn!|EC1l7-|zB3fAi%2pg+IWS4VF6W$x@dt3G`Ep^tvv%ZoYZ(@k~ob)UnhKiqO5 z|LV$#dhqf`omD@6(urU6G`I9~e_8QV$NP8H=c|5no2%aieB}90b@=JMJmJMJxq<^< z@8t_$IMjgyAGqaTuGNuW{>sC*fAF^tPyOXUJ-*S`IrZIZlixf?f4*Ajs4iY~_Fg@@ z$hrK^f2f2;14|Tn;-A_3XeMY)6ZP_{gHS3)iGyZ!z-Wg zo7dHMI=Wx*r<*y`m;UlgPx;`3d&NqB=jh=6qO-noM`v}d`pLcbbmW8c^wAG4ed#QZ z_Q^9p-23w3na=i4o#?0z-{=Yloc!>6gs1nv@=yNcoqzJI4?Wzw^qRhSPX~FCH#pRx zgB)3%!;9X|(an3j~IIJi{Ts^it1x{OINP zMx9kZIpdFW{JUEU-QE^y3pS}XO88N{&K6I zedgPFxXg?1@(G6(KhO5*1HXRwtBbdJrMKTFdh(s$^p|V<@a2nK>Su*xrN2Dwo}E|! zwD20!o`2z)w55&%rC!I{p3y`Jo$tNe(=MGm;UC4-sYSCaPbdb^QkYq>OF>+ z?&{mmZ@@zR)caAR3)180rQ@HSU zPG0@pAoqNbL+9r`>)AZOr$5}D-3#X4d%DXXo#3Y#N4I`rYIeAtJdy7DcT?g{s&{qV!*z5V<(AN-JK^TQ81sRu88 z@zj_8-s1_UbL!AnZs=?u{O%R{$|HR8xYE~t_1zzM;Y|l~r60ZBuk_;wob;3nIaB98 zJnG}6ueozS`yHRpbaZdZt-Pp1cYc{)JmB$t>S(^@zYCB2QPg5 zz(+sz`A9$d^IZ<)%6YoGH`M1B{@=n2Cm--Iw{i-{>YV(`muI;2GasKjr=A?Cr!W5U z%YQuSr=Rok>pMO8$tSCO3~%r0LPxpg7yRx|`_$pHT*4)PaPfgpc;GKz=ARzU@rN$@ z!l^IcoIlP7`Qi^f)OC(;e8AWJV5JjZ?3;Xc{q>a-y68_Y`q1Hb=k?<^{pHzxVc+-8 z(G^a0`DOLpetqQ@Z}Tnp-qQd3{X>Nvl9rjuv)vV8j;G^gt62Oq!mkwf#ZK7a9{ zuUwilb?IcD)RAZJ^)(-G&OY+sy}9Je`rm*5=m#%cuYIQzpS+hdy1}_S=l-ON+{hu_ z%^Mte(On-pc{ZPPb&fuV;n0^3`qP0hz;Quci{59ursUxp+mnZj< z{`cY0$Nb_u{gWU5x__Lb1D)a1mk;ne?{~z0IkT>C$_ak%3o9I+zjRKn_#(G>+Rs1V z&4cgim_NSSZyz7<^}FT1@Et#O%sCyL=Og?F@v_e|Kjj`C`H(L;q&r{LgVVi07x=!^ z|GAZp&byDSa)hsQ{Nx)Q%%{5M0UmWGPI;1NIn|F3e5BKghwt(WH+|sL2i~X7t7E?0 zll0r|gG;{L6My^e{-PgW@udqN@R0+&;I`jBx#B-u_Q?qx@@F5P`9vr6@WLAoa{>on z;ii|q^nmL*eZ1$B`+zUbtIHp{n_oUTC*O3|$GqT02RfNcxx)i*@Aac6-15wqS=W65 z*GdPv@WDKJRv%t^$dzpt+I=RNy>ko$yQbWz9r$R)k-R?i&4=YFD-`gGzOKlphc zKEE&gyXieXzT=@U-gH-AT{z`beSXWM^KvI&`p{Dz=mHOZ--iCXXLvlzmsKu&$D7aY zO*!(NpYX^NUcTG!o}$|dAAR|Z7yll{KKF$0^n^nmtn|g#dwS{*r~3sC=irAMPxa)E z-&TIgH(%+>UwX+OJ>-bK_&Wb5ec*%3eF?ww=8nIhB!f@}Mq%^mk9{!*BDz7dktSr@C}@{w%(D)6+dD z*Xq$19`)5z|Gc`^Wm!FxRDu|~eExMcV2$Hw_gtU zMsK+B@w+4M>hZZyYKXb$Grg;e$L|or#W#>uH4`5HT&U{ zFa7=Q@S9Gaxmz3`}pU*+|o%O_syIO=gg_|_&85b@9D^Yyx}pI^gJvl{4o!5V-Dnm zuJHPuq$eDHKc1^k7x`Vi#}hvDhMyejOE0Va?hE+gGAGXajxYcH9_t6E_w=NLd6NUV zlo$P`Z}9NdIXXG-KIA7o)JOAN^gHL==2M@fRhZ|qIU4`2@`{~RV=jf)NI`X6r-s{E{2_zl$Fp?l1V%_1?VWsjeJ)kC%RYIjo=Wa%Z18#b3YAouh;KnZC)L zdU9hQeE7NF%(?#jwVyt6>$^UDpoeqto`v6gy1L)#fEOO-hyLoU>hTXxxcIA{esUo{ z=0;xepqKORA@`f}e5DKA{F6WVpx2-9>xU;_Zu<_OxpU4l-gKq6m9FN`JlZdZe8bCk zI_&V^iLR8)sriD^rs_T z@pJ##=Nw(|HqY`RSG&G)3!nP%!HYLPxd(igC%&5}yv^T^_y6gzlccPcAPmE<0i{)-5Mco# zihY5|{+DzIzRx5hu9J#$PF3dDW&MQs@&Rtobb=Q?b@8LiVRhAq=UwmNSI6&~KJaa5XP?!4%8~mQEl3A@@h^ql^0b z(+3~ty*D55@!xy+`3(mj)!hRJz2T7uxanx0KKR1{FJJY6-+ky={^Z^{`_xxg&diy- z$Q^wrPv`ljjyZP^@r93caL#?A{;zbz-@cdLJI`PF@jE8Z-h0MNZrx9E?_O{pxew^z z_Ygn77jW{K{_1;=AKdO0e69Lg?UxgJ$*Vlk1unSdMPAL7XW!{Cb#t%L7hkyaaj(!% z&g9%mXZ^g#-+amQ%6EL_Q9ruMqwmhipLv#Z_~^=Ca|jQ8@RA?*oLtKn|J8xR>b$z} zs1KLi<0b!A_YvRK_ntp;#z)^h>#GkPoR>E|<&8e}nG3x1bq~l5zH%m4>hse%d6fq` zn=icOgT8)W_++0t?gcok<`sVX&6PaS4}W=-XE^Pri+kC3KFg+n6AtI_ z)`y<*i5DNuoq6_MzTn`O_wqqEb8Yn=KlrX+{rg8Bb>)DL=2K41hxhpSopZ18hu(Cf zi@tcvi~9UBZ+y~+?#|O+T|DUzFTL?w=^$Tpp1H@LFZ@)8o^-^A?s(V-m$~e7WC@TyPG^P#t#e(t^c^ix+I`}LP^y2*ze z(g6?o;*&aZ?>qeJ@gLu>;q`2v=fl3s8{gy=K0bJc2Os{PRS$o9Sn2+zefZt3-#eaUk3D>(;`{-&P-0duuOR`~R@pFZxjRekdVuUz5{7k=gyKKF|L^f$lGTh*0!_or1obMJR=hZi4p?DtGp z`1r(sea*M`a>gIO1M=bikpsD>C%x(HoVs*#pWw?cc~eiW@qm*aaL|=r&Y!23@8;V* z;oiGzA6?*bkIsE~nIm%}$5+*ZUw^*f?>rym20r!lqbs~{(aoIyt-n5=<)p5Ue*{OZw59r*Zql|KA|4?j7;haYr>)BQjvIMltU zk2zBpfBQeR&k7HI@}>_x+z($nFQ<6Z4}bXS^SX2P=`T0@duZQzt31kNqOF5&jm2T!8U;LfNm;S51{B%#^DGz+`o_=)3Phb1gqX)m_ zMP29d`4KLC^pXQUTJgry>O5W5rKfp; z6F&Uh8~Wl!FZUrG>^Hx7?R4Xtd6E}+<=XwqSL;=E_)bSTp~KYsu5S#F z_0*9E^FeR?;FAaQC}-vn4)Y8Tp5E&Zmw9y_PB`R@K6H==_4v#;E1rCE9)3RI2NyqY z%O8ELe70X5bEv<$!2hOt{F4Xypoe>0Zsl)v9zJ~Fk{`Ok#}9SogU{{@b?L=lx!U!Y z1NRgk)OBys&w0A>+x>T6T|D?pM>y#ySMCvh&XvyY!KuTC`od*D-T0xdc~K8edecYl zoL3(|edxny`pboW^mgB=x5CdSy4XiozUU(-c<_6!^n%BExcT=d9QMO&uFL_w<%MqQ zsOy}((plcV*3Z45o;jp5+|HXnzaR2McR7QHe*BUP{hj9ry!5pnPW9EplP>1MeV`s+ z;8frI(+w_p@Sgv8@ykB-%qiaP1^oOT@EI?<@)=I|Ilg$vr~ElDU!M7?54?PZ$Eq%V za-c8Y{a#GH=&ioocyHeLN)qO_w>fsc|PG!PkG?? z_v)Bix!%2(Q+?@yw{yPB3%%uwPx7sg`;ty@sV|S-%L82eriVW8t7AX@leaqb;)ByI_WPz?j^rd^3H$zPCEas)iXWyu^&JAz=z-TrKfXzk{A5!*9RZ(cevz~p8UgG zzT}*~=9&)lQy-s+M?blyi#dSHxyx|M2S5EiqK@CmnJ0NQ*Yt$f{izTA>Fhf{=*~ya zaLbd`dB6KV;zMUT!e_4NVlLgoc-l`lJl!|&@^99~&v|;#L0`F6M}Io;fnT2aLT^0r zl2^F=KH%jUPI|8NqdQ%lgIiwUhlh^*@@$T*axAa*(-(jH;DiTn^Un|Y^c{bBg8MO^ zbbsiXj&Q20o@e^t4WIR{dgfUU_=5)=aLcdra_pXQPJcRC>8%dDcT}e4 z`^}yDaNwc79Q&@m`^YL6c+dxK=X{qx`Sd&M{+)gG!5<#?xg5eTKkDJl7rMY_zdG_@ zrSDG1Z>@On4L*6a^4~r=pcCBhs_R*OewrVB`0Do&5BkWXoYG_R(w86n*T=l#K}Y!T z@SeW#nnUOD(U0yc{`#43`GHGazh8LEgOyL8s;eH~efOR&@Tv3AdHB`ir+aJW7H)dr zM-TUldB=w??hk(I&o8*-i4Jn%nNRrY?>?nJ9_CSg;Kxsn%$2!@OCI>B4?e#0k>2pq z0Z#J(zk2G>#R?z%a!gnAVy^vudrv>QsI$ufAJvlwKA3x}bNIimj`N=NmAm;YPk7V+ zrh4+L58rEqmG-`)Fi<=pB!JoMr_z2L^*{Mct+`0KlsUgktT;FeQ$@K7HQ`}uMe ze!PD4Om{r#>z@7GKDoi${YF3YpuSwd!xy@!BY$w(bb=FqJm1vUJ?eK|e|7QISMK3AXYlH)p4{RgXX={^ z{_SwVIrAeQ?lZc|9bcW3b9}#6-@L7!;h-0N`Q^S zgD;$(`GD8AaPh$$>1Urg_6!Gn&hguKxz^u4{>!_%e!uC;ci;8X2XDT~BVYA1*QfE7 zGdjZS?-TxfY`+{?0Hz3E%2G-t?!7KK#MQywlrxxb>k69CBeE`3Mhwau1I_>e)vh-__%@IiQQY z$OT;b^MNjt|LnsTbIDJ0pr3l~33+zk(hqMrp*J3UHb3^`?K>an04KflgOi@-RgTSx z{&ZBIj_T1tJ$?D8uH4F{TsSWua!fzx=?5=7{E-YG+(YW>=liO^dh+F*{c?y8pQk<-)pHNZoBjCEmyi600}uH$ zC-N!J@`;D}!;fxq$S-x=Q}|l>XrFU<;K`5kq2p=KFJpy+j&zVGIiVk3a;Kj6@bFho z<;yyC@m?Q#!ogQ~^)oNd!^OY->fgVQt#pACZ*!@iT*#ll6XcHma-hCBftNmbnG5HB zgzLT)Z+^oGmp*XAK^Oh#!9S~f%Axc4^3A>NUb0`#%z+gz_pF?nCwS#cuJQ6rC;IK7 z5B>R!ulvn@bIVt}+|P8@&wSu#Ue)IlyjFbqXP?~jdG^;2PdNF3kNnZo>bv_)UeuM> zm45uR%74c@zr-a!v(i|^UryFP-sxk`;m{8beEILY^X9}{@e4k6)Q3x7xaCJK z%!eGxue|UTUn_pj!4D_ge1X&a$=7Xq!~dt}Z>@Z%2YvA}2lmm&s*gGSR9$uSr;i+( z4|U|hIe5+GtZ%=1>d3#o{Ib$(hm$|_prbi4uktAuaN4gv|BtH=AN}~_J6`tDo&TQc zys9fl@ErACuH;1@>&!nqbf&w0bk)ax`BzVU_ZMFBJM~o$UOcbj0mpsM>e1Uh?3~=e z!DoHol|yyqP@X*Vi;i-2Iq>-X=RX{DqND!sse`Y6^pjutR9{`X(t-cx8!mG#U+Uto z4!!hyil@4K=Ho%%;a11o@J}7Mcjw^dr{4+q^l?A(O+7xrAxHRoR*#SH$_+en4v%@@ zhu=jw)YXS>>R!atiZ5U2#25PGBX533;GhS61{h2>=fHxj|F`wpUS6{B|qXS<2;lF$JwDWYu-+jRsxcMU=d~#lY{OzYV z{Pxpj=8P`#1rPkr!>^xxa>{pg+@H?NpZT8nedhz8=?@Qm%s+jc=Lf(1Zk?yUbDrtK z4|$^tUFCDWr?a_p|KfqK9GYkMq-?M(IN_eW<<)!m@p6uS zbav0lpE~A(PjbRXd6IAV;g%o1=&v5$=2%~KnHN?g9JsHMjc8zx#p@ z=8t~*$QfL8RtG+FN?*9_Gk;b&hffaZAh&SKrF_YYbM68A;G~B+f(t+O_>QlfdB5`y zez<(6+yB+mpYC|`?V*AJjQ*KYsku4}Sf=55B&8&v&^npH}{u zPjjL#-MoKSKRTI_ zH~Y;$K5}Pn_`K2$4)+-S@baC$a)F0u=j7YHfR}xAOCt zbDrU$E4}z4Px`~nZ|}`7-T28j^Z6&-@&u=x$_YL6lM8t1N)J5sbx-p4vujsd{%UAR9 z-1~Q}eBv8Dt#U^<`KGUZe8Cg$m-^6a&ZqNm?)K9GPPw3~{^r(qD}Cu>KRo)#rTof~ zKJ@n8dv$$Z;l>9~_&@dCeDX`a;FUjh@bm0D-#p{TC-3#;ulq}0`F0&XKEb1poYM;) zdU%$zT|KzuS3bR`pFCUjHMf`5lfTuod*QfeKACH|l6!dZQIB5w@9Oc9U(V?x=kUpo zIiNS)oa4LSYwz`ipKi|6&3y0`u3zDHpRJztkz4raqn~b-7-M}K+aE8Xdf zr+Vf`7B(g$AmJYIBl4qpA?qq}7q5zHrb3KfbAJKRx9I4mm!HH+|IQ z%TwRYy?W~4r!O3Qf9$-x$%Wrj_35rY-the2cRra<`uH88gWTK>JoeL(F3!OVm%8-g zKi>RR*Zn{Td4-pL&f&SjsW1QZ)z5w4_dq@VoK^>a_~F5mzv{~KP3PSQR`~4Wm+$)H zMOS)xmIFBHV#N=Cb>(92lSB3Jb>Hxlj`+jeBt$;u5#!-p75Bb$s4ZY`tngu z^fOQJ+s7~XeRr?vFGubftNTiQ_3)xEUF1d|=jA{je(}k@=Dsl>aPWza^oHNcSF3#D z3#U1U2R?c9tUsJ|#9OZM^z6KIeCH!Rbj3@aJx7Cvu=gs-l2>l~fvAa`>vy+5mub9msZj$D{q{@ZUKzHsB={)U^5{MFCA z@kxDk=_DWKS3i9C4Hy03m&Z@>r>p*RF5!n)z4Ok?yIj-Ldw%0VKfd`cm-@(ydUEGG z9pJ@-F7~Z((hqKR<;b(&8};GF8(w@LtIt<;;BZfP&lkS$&eMes^1>JV;AHj-~2K!=1b1x zh~E5D$Nk7}&-R-?IQ4^5AG(~TqkOn$+#Bl20X_8RKOU=k>f1+W{qWN7cjxS%KJmwS zdhiP`_2ksEee}Xd4xGnFp7e1}?&XY+-s>mF@S1ylJo86>=&l~#_QNZmzT>AK+%ZYo-efcFme1Jp0=f3krKXq2$<%fRe(mwO24?NC)tB&_CJ?k&m>Z#*A zp7zmq=1yKeRo_1NAs z|6lF1AAWq{a^Cz{@uHJw{^3urU8D9JG!^d2~DF<>Y zXMC~J3xE6JhQoaTpL>8G@`|Uts*5)sbh?Nq9Qe7H_~)L-Lq9y|2|xYyF>iE%4^MsY zQV(vvyYKMQ=O!Nb^TR$k;Kc`CyuVjRKmMB|In&QRd2rr7_a(jHa}IC&@l}r=zMEtE znG?L!H^0vLy_s_;PxR(5oz;;Od6aYa4ZLy+H-G8P7r4xwT*#qwaKlG;y3$(?)S(X^ zd{kc^_+rK1?|@ZZ`l|z%bLPfAzQ6~M)qRIA-Qbl=x*n8Id4yZe_2H8~C*z#l@Wnj_ zkNtF(D|*AHFCFAUZs3&@_2dp;_k;81V1--$d{L4En94;=Q%kG~7P z)|YuVqVp2O!oAK}JJ-sJmt=jcCmbsit9`d>P4j^KmecjwFv z{q1xA$P0Yt%Q^U+gLj4FpjA%vpZdb9uQ_pE4(TgT`W}ux`pE&@cz7>A?ghM@cMq6X za|9oK;isefO+P&Nhd-U**zqtIc$phG;I-02A3n&l`89X&*(cZZ-{pw^=2TrdREJ-1Sm9BZF7hGo@bS@m{CD`|gg?$%`MlaMZ|cd7_wK2$ z?RP)&#XLAiPxFJn`<8C%!YQ}v(#tbl-RnC%^5s4Kd>2>`qIZe z1E1WxH}Fwk9dji|@?e!ixZ#yAKFPg%S3f%A2e)(bNnbcT`>rqFAM-_C@a4aLaCpxL z{G3yV-gMJfp4^M-(gja-edja0`r{!V`tsQv$t54miGAu?&C}2Hac{xz9+Vq>=zY~W zy!4kB{<)8Q_nvN6b>&kX=jbaB@VOuK@%=u0=9+H!<3%TR=%Bt_nQ!{SXFq)WG(Y&z zPmb`i>Zh)G(^oF(XMH#P+db1&uGBS;&g1VsfL9LaB+uWfFIO{1_{lH5)Zr6-_yr%{ zaJa|u|5blH-6QInEBobC9XjL77xM*=^K`;jUv=pzCvs%f$DHBiyWatNt0zbH!R`Lw zJ6-8acewfce{&$e`r|D(^o2uTdc*1OGW|TmO$R#8-0;U7>5m89&4YY2ee(gA_i{S%nQJ=ZyQ-^?@8(}VfZX>v)sywbM%%=e#?dLaz=Oe2i^H3XU?fh zcXi>#kFNId!5sK~wBP*EL4M?o?)s=lKY6#GKi|{K`!)2#(|b7hMi+JLgOl!Ws>@gN zgopcBo}8CM`0+HC>iWLxpFppL`>o@0v@AjDk`EcLx$9X>UOHS$Ro;gToc~##tz15``z47v0 zUwLxgKKX!$Zt{sQpXeg5e5ap%c<_VnzT<75-17@A{o$vddBq!FdhiEN{=+GkaQN<7 zf4F8|y_Zw>1-#$$Q9b+UMQ?ri?EW(k>dk)k(aU+d&`Do<(1{P`Mj!bwUvf+jebqJB za-*-DSn;LfUHUk0AOGm-yZ+AG53l_%LwEY{U0?g??EBP*U*_9fxKHU$N6&I?PVn;l zJDkqZTW;{9C;y#?+kN`CdUU3je5uc8{+lcH%nQDFz@;u7&7V2fUte|Utv}OPwr3m ziQITke?0Z0gZ<_~Uf{;tD);)+ccoXPD)b>Wk9 zygXasp$EMDg_D1t-3R=jmvj7eU(tgf@&T`V1y8*6gVT9F;H^JD^jqnn9>4iPM|I(# z4;`I@$2^*A{+VmI-ql|&cF%I?Jp5OEmv8&cyF93G9^to-{&?dHKRllGqZ_^XJAJet zKKj6O6c6?3Xw{$o^jn>i5A)z2kr(If_ntm@(?LD?rk}d>F(>#=pY?HX;rlw=@bXa~ zy1Iw#lNa*`r}?t-Ltf;{@0+^%eF~2}c&0zT_R|p#eevVB^QYC{t#rZjL+|x>?!5Q% z0SCSCFb|&9HJ^UpR`ukJuFk0|UvR@Ew{X$dcl*_)hxhIqt9p2OZ$DkE_`r*|`$t~g z7xL^oUh;}BALT~Q@iRaA`F=V4p$i`7OaAEM_d&f~9lX?s_j}*fUg@-pv9{NOPU{DE8k{O*`1`>pi%ceLNLukqz0oxFz=Zu0>*o%zatzPktbr;huD zKltDQA0O1k!#Vu<4!`|!0Uv+dlfJ8m*YwTY;cK6J_$3|X*POwnuR3(pmv4NBe^-}} za>Yk;BcJqhADCnB>0m#6@H+>GdqY3^`&}{j=Eo|}_RF!k*N>i7^QJEy=>UgZ=m!Ts z;rCsh_{t}E^re@)sz>*gAL`02eDZE?)RPmsU026E^8*jhbfK4XkDXtw`pjJ6;qMu^ zZaXK(a)=imeALgq0FOCxj$e41NBH>aJbm%-UM|(aYlmAOJnWxyLtl0HXr-t6^u`}A z&-8GPu5u1Pp8V8bF71;`{N>Rc%B6eGJ)p0;&eO#`1Gn>V>thbSrR#2m6E8WUxBJZf zGk-ta|9HqhJf7u8fB585Zuo2dv^ZMb#ANo4)UeFI;d8C7!;E%6*a^POm&m8*>uRJ)fzu!ao$4CCmxxCQX z3NM}1p@;Y8Kpy0jpYZ$p!*~4T(MlhAhLeB%S>*{|=jB>I-~Y6qFJF7+8=Uq}fAEz% z=l$N%kq)c+>d+64!@hfl8xD26r<>Jx`}r;3@X?d+@+dEG>f^rgENAlXoO_2aba{#w z|Gk$J-{sbOx#KrK@zMu>b8}Wd_cwmt!y&hH!CTJdMIP`p-~97?CZFo7%TK!F3GY>S z<;?H2m9O%&+izaz1BZJ7ZgugcFCXO9es%4qGyU+9SNARboIedG-t?mzoc7BZJ@9c) z$(Q-T8xMHZ!HZw&@(C_^R?qJW|Kvd))%81v2Ve2=Y);H29&$++xX#l}fBwNG7v^EN z-yF>M<`yn^|ZgYNdr9UT0ki~V$WUwALia!Eh<>F@i; zc=+9b)4f6;b>PHH-_zmaPvh@=_pTf<9^T=E`G=> zeDuWIdHwa_@4IlzzuzG_#K(ER8~V$md-qHA?1xKE>FgPQe!=heKu+OR-(1i`9nW-@ zA9KzxI+#QH;=y0KcwX_Nubj%Ae0qjM9z4@s4&bA^I`SzGaPl1wyy28PIN+ow-}Iv& z-{4WldpP){4*&3x8}*&TTit{7^nBT~Idosr17G)>@6$)P^iz*-aOzJ#dg04|=jbaZ z@_@g&z~4N{t9ts=9X|fPO$Yip@BYQlv%b#Jg-&#Um(J!8KYGyHIsDwC^q~iw@R)Ns zb^bbD>br-{wfoQ9npg9WryRo#m%8#!C-=}z{rQ5&?mfI#xpH0~xcFth)#n#}bfzzz z@P@;^C+GCV8xG&i6~Emtaz-cm;qxZGa?dZk@TZgabHBQBXPxpJDvDLS2?oc$xm}4?~@0-d~=?Dba75!y!oIGpHA{mUpVM#&eY|L zc`;Y-tK(T8e(S?$y2-!X!Mm#`Z+xIH-Snk5J>R0l70#J;N)9c;M;#>fB2!o$q?yt#q?b9^BJ% z1}7YN^UFQq9KG~2|K>$q`oN<;-{ppXbTSuk$OoS0P(I8xp8C6I^!FVfewZuw0DR^W z4|pbj{?iv;efjK}UijnfS$+KAr5{}On|r+VH%D;kLofF?UFo48{p3!4IdGm|@Zc*y z@X`?uecrzM_s@PlnOAzKt79Ks_{C>^ zy|?No=W^&fpYfmvy}dU_aJd)d)jYsq^<7@^Uh%@4A99YDxpE)TgJ1Z`ox0wu%P+j< zKEBH%-tfw;RW9hF51sWfe^z~`F7V>VZ>t=c6FHAMm;t z=&X)s^{o7HPA=5voBi%jI`PRWuXyUOt~&bJ&o}z{yUV@enIC*Gm+~6 z`oW9G^v!*v|4sGek&gPR2fuTCluP-+Pp;vx>Tf^3>eAVJ^FR;p`3E08+>iR>W0mKb z+sPk3{ndq^-*o36p75z7FXr65z=Ib(^--7qaQeN$Q@+ig9GWx!nX~(Rr=N5B(#x|x zlP|yVfFC|O=_{}JTjhyv&*9TwF4XZJFX!O69_Q6JZ$J7@cRZ~2{caz<_^2NnH{Ip&uDW(I0O4+|_Zf`A%oN)pw84A8x$)4)?0Q zJknMFZ+(Z8p5DtVpPch-->!~4$)VipYwq|UFZSU{SAF=UKYir`Upm;o!bLaz>_Irj~Uwq`ud-KPai}bLntG{RGJ=2H& z`ta2pxp(ZBKlSaGKlQEl$^A=s`Mi6UORF5>C3kSp(+aQrujsbf=ed zaMO){=1Y$7GUxpE3?E$Po=$Y*hx7EnS8mJ?UGO&N=FT%;@pj&KE8h0=k1l-YpZ9pF zD^K#T4qxddSNNL)c{g|V(Lv7PwqIYm`p&=8{O6d37*p}V<|Z}{qb#L++PIJOn`1E;OU;OOT-yEpx9((Q_ ze0--nz1_$Bf_rsdPTgPhu^&J6@Otb#KI+m_eb4sGEu8b-=a+i|Un?AR)fawv^p{Wf z2H*Ytsvn)@`!s&^^`2kO>Ek=x`r>Id=Tmq2kqh&$zx+DK2lt5ga*vPsqyJgF=A4;F zI?{;_@(HJXp5+F9xsy{m;icaWkMG{AtDgKj51%~H8$WvBNk@5hf9Pkw`KGJiQ~BY) z{K=bVx|?J9robY&mVL9E?w1?3w-EKSN`!${fp|zAH3$)J~-(} zCpyZXKK8+d;Mo zeRobD`1vJg>Y6KjeRuzuAN|aUXL+DAzVbBhM{^~YzUxm9`1F@Y`M{5kbb-&k29Nq5 z(~(a6msihxFmJxE&hzW8XZU=VFMZ*}o9=kXH{5jfed5v=Kf1t44}6`M2fF?oeDL_x zdv)Az^i|Ki$RWOb*3Z0{TkqvWU;219M|kK%e|@~CJ6`lNpK{9o(|GbnU*GY^(>^)H zmp;zJ>t57{u6*;Xt{l+eTlmZaJoKZ_ym!o}dB&T6e*gFZxBT(Ny|=>wul@AJ6A$O$ zHcxQNH{9+4eC(4m_2~n@+{5iXymDub>0$nU$4g#3-}T<#XP(uYyzrJ2emj3S`p}n- z^6cJ~D|O^W-szz}Jm#AJ{N+2{@!<=-^jFVZ!LL4^^q{}FcoSd!@ZpbK`_3P{?DO6H z>L)L7nF~72obnegy2$DG@X|s4^reTnltX>Zfx7B>)>r=Ep(7vYAfNn}7kKH3rxhOO z@Zi5X`kEiPmpApS=8)cS(1&jBLHPM)>eHo#e)T=jmjn=Y4+3k=(jJ%#*yzv0U*% z9Xim5e)!YTz0NQD^-)hAXIsDC`y7uGay?euX zI=~0-yZFgBe$M%hul#urw>;yA*VG+e{O39M5uEziXRh_N-+TGzA3x0tzkPQe9_LTf z1rGDhmv4Q?@3?3Bz)J_ue1ca!_m_JSK7PPW4}S1l9X?w5fxo))1h3yc_nCR1kKEyF zF5DC5&Ya-unLeKBM^}CIlTY`W{r164FFMhe?|7O=deA|RoYzku@A;#?eR9JWe!Ca& z<`2I3xqtQHt9q+k$)&m0M}KwU)c3jbo_EjA(Swe3<+tBM{qb_od*&Pb^pQLIzpuYM z%LzW_ZncjN>fys5ewb7JoHu9s(;ZL#%d>r7>W`oLbmJSn>5m^B@N>@U938&Zj}CaK z2OnR|J^Vj9@4NR_{=)5dRPNNro8NqOo1{?gzTzkGK8s;jKPh>~o&3bfg;|_}zw!4(F$RXT(rX$??m_z)0 zr=NP}fNt>O<-YqA4|U*&gHL>h%llc6j_{f*b8OD>o&MS{*X9f^{NTpJ+{gjEc=H)9 z-{Jp~4)UkIzWAzdKfco!^I^W^NPlzcJpA_YjnDEWPv*mSt9wIT=hW4o-}H1|F6ncZ zE>?c{dqbVwzK^Y6Tg?GI%pZU0=smpnsYf64Zl2@_F6Vsrdn;G+rw;t`DNp7}9l4Ny zxln%%zIZza7oFAB$9ed6_1qWm($PNp@!LGQVSH~RC5pR6Vfjr4QJoK_3uF1=HI=Dy7gZ!B^IZ<<%wM{gmtWO4*Xr`$y@jXx@?$^U^~KN12YH73p#JKqFK_d`d6{~` z2{%0Ynk#+jAn%vqP}e^F+|%+R5BeN+o}O~bSM$kNIZh4xJ=-~HIZul#w`tXBZ^e{KhnFF}ZFI;?92QE0wfqnG$ z-HHd^bpD)w>cBx?Ie{N<{;MkoboX8VsRupHv-3MVbTGH>4gR>d?UM_7(oY}$K2=|y z_~E-ca)ZA<=8!)2xhD>)&nLRd1wG`SZ|cfDz3FL%M;$rhgZqQe?iIM;fsdYaz7IcN ze0Lr$d35jd10H?pf+w8L`)+>V=eJdVd3Ar%!7870n)ASSEBq_oaxn49FFg3l8~^xx zT0M2?N*Auspo#-w|i_?UmoFf@6k&?xxR2Rv8r%^4lx zKj^#tcjH-Z=!YjB@`$H=KURnT&hrfqy3B-;CtrD?CmeXl$xG+$*VnW8=C}9qW5rv3 z<;?x!8D4qOpI-6-r`*v2e|`8rpXn^$a^$@gZu+=);KW}}_#_wV`khhNemwX$D?j?kvHI%$X}|Myz3;s_GAI0U&&q{4b&ihkdWM(3 zvo1aKftNpYrt1o)6@NVR^WB`mBTsU!F5US|NB6q=^s~=*`1O_Jcj1N0oVs`DVZO~5 z{(SUIfAc3d?g@PG<)<7v&o_Pbkt4e4!#{evH{_fy_RE``Tk%$(KIR7wdd<~$I?-7k zTMe&Lk6i%}Quo8I$p=F{)1+{uYmKe+YfkNWhtUk=na$DVJ)g(n{B;^SGaJzM2o z-?!D}i+u1;9eD7e7oDA#C;Qz$_RI6#(3x-Ufz@~Q<;Z#Z+c)3SX;+7j__}A{r7s`s zQ(yk^fs@bt_)$Oj%#jsuec|K_{qdm-{nU{oKFJea^oPei0jKYDkq_%}Jnmb~gT8*} ze>(gL+|;6k9!Soxx8+_yz&bl{qd0(t9ss}He zbkbjaI?DO`&Z}e2^xu8g&wSBaPQ0J{;KqaQp6SO=_~~f=)TbLC-5+q%!S5d)aG5XX z24pKbTf~q=?o8_ob#Svf7>tbaJgSRtBbeuaLT(mf!FV^ z`^>YP<3U&Z=!C!b_~ONXKEdfe!b=|T$J=}7r`;Z@S$%owHwZhLg{jPiOJ6-j+f49$k@tfXw=}Rx?)Hf$^ z@?qvzefZsr<_B-N<}ZA7ls|mbrI-5raF4p@y#E`2d}ppa<0UulM>@kN_juSZ_k1?z z^mRYTmAuIZe0cCdf9LI!Q$EZ*${&1FS9Rc(EBs#4O<#VPTj$`HH}C01C-=1b#D4nt zE-&)oJ-^}L*TjvtT)G$O>N|Y&^Y^Bldk+VH<&Z9P^?P9s?Wczv^2t8<>{lNSe$WA5 z{d}i~xs?yR=t_UQ{EpdYPVu7~J@{|V_@ORe`F>H3NET53f}{zPcCZDhGVUi~j1lU+6|} z^Ngo`@=G_rWAgA2Ztu-2Jn+krdi<7eInW;-y5U7Hddzj|q8@$uBKPp{9ggqua$lHV z`O{Y}t>)f6N=Lc$UJmHv_elMN`qN3B-@T`=JgNi#G zc*_(1e3lRXtoq>rk6e1DyZ3Oyg%@3~tLqsKbLTsM%^805rXPIv%R7C{Hyrx?3I{#l zmM=K?rVszkk>5dm;gVnZ@!tIKSzo#Fo&IuAw{$RH=Gimc-oqi6&huL? z;PWiM_^W4L;NcfP=mEcZeh4=`;IZm2e{$m)4)x44z3kuh!P~R%^6vim(083Suk2g#)t^p$x2nfqzP|1}zH-1v z_buF4?dQM#ba9UU{BW=FUthZXuC9AXKl)hdfRFs(Z*F|Y%Rc((;~bsf`#f}^8~x24 z9(eN$UiILB%X#|IT_4}+2#-}CdYC8Y=qHbS28+GXDoc;Xcx4DzQx8YWgFTOiZ2m15X zy{f-ej_6BI{+f%Q_4llvJbAAU-|1k#efYTtm2JKylrch%oq(eJ$X zc$z=&-AC~9>0Rga$HTntzT4+Ke)FD$$DH8fyp`Vkg_ke<a;JEtE#<&5v1@zmeEnN#yXH@TKmIe;4u^X0z718(`^&*yYh z2R{4MnL6`X?)XV3KD#f}!&_fethT$7e4MUI?Dqbe55nK?N?t8 z=?RCq@_WDsxip7($))#J=kS0-URM4&kEic&!u7iS^rNTqyYJ?X{&aOtUH3ix;N-Vl z`o5|!$M}1O2Y-F|45$70!ug~6{Dnh4eTR#Gbdg8-*7v!(ay$FN3AZ_f!*_Y0hdkJa zpL;;Aymy{X>Rg6TU${NvrQhH7>q8$aedJvo&+5TJ4|u$H@6hF>zHqqLuK!10zxVo0 zeCqH~fBfZ(pPuDMf8XW6z8x;}4F9Lzn=AFsdyhXIeP4aI4^Dl}m+$!bP7k@p+wY4$ zd^H#RF`rZK<8Zm}@K<;03ZHYk^Kj~qpZ@%_$}Jx58Rx8Ylt1?qz05U!D?D(SBYfzG zhregwqz``PSDy8Omu`5-mGw3}=1v`Y@y(pcBYb$mjfeY4KJj!OE;#7u9DU_g-r&O< zZs*nK13%T3mrwD=6CU;Kmjmzd^z?T1r-pX=*BH!t$&`_v!q zpPe^va^(H=kq-Lsk)FrZgPWet!O2(i1dn{G1HW_prIYjO`8&%#=jiq;e9rOFcX_0T zKJ?&|oO-^guJh yx-?9Prt%clb+ZK3MgmyZwCPue$O92i@)GKfZL``2?4Gc=&EVANA*xxj(9&)jc2= z?pOWjX)fTV!}Oakbm2c=)j10XoX(kddeH-3emQ?#9eII=&T>dMbMJQrKPw#OfUlmd z>eF9e`kNQu^~b|~Wk0^^%BOzxhT9xCKXLN!B7L0aGaT^2LkG{R^L%t)smE8i+`sBr z`QY~fe(%-gx9{+KZy%k^jeNfkul*CJy83=@|6!{-@~e;4yt;Sj%s=xq=g4>Wo_g?m zmTUOTxqbAOQ+mU@;$fv9-|2%d{&4fheS)XCv)_Ao%@sUw@(X_FZ^9{Ow>|3%w?1@( z?{)jl$K>T+P+tya9_hq)b@B3^etr-1gZD>x=!nl%@8MR*eV`uw`0gI`UY`6;!Ywy+ z@?Fm9sE_Y_qL2L8Z+`gaoPKgChy3O*{pi4N=kcVs^X@&o;Z_G;c~b97I^$(7k9u$Z zcF(@Ap7F;MfBE7sADp+s={w!vgI^BpbDzk`ukgr+mCkZZFTXQ%#GgO*=?kazuzvK! z7e3$h=No_MN;i6(R#!d!<>GDMcdLFcJ^MRBj`e}te!lBtzT8)I)!%-2>9^|34}9rO zUvsIxobcDZ!*_n-4Ub&P^ZWYatG@l0eaDYq_VZaz@pLc1;eNtXef_-0hfeM}y6_iY z=lO5H{Co)ic`KX~w|e-hs}A4smLqkn_Q@;WazGb#@ZvX}-3#8!*~fVBA3r(uo)6B` z8-M%N!&iTGcm2!-U(AbnbkFh;4u0X|ymR)szu_|@9|iD z=LdXrc<8%x=8~WM<+u66d+t}~b#>vV+ePo?Ql8+UBmU;Wcjqpv!w0$W-u=f%y3tXt zoQGRKzmxCl1Go8dU%OxUW_7RVXAbmpjz0WxKk9>r`v^|+K_}<*!GnK09(dE;{J?eC zKIiFbpMG>%?Z*>N`J=o0MqN3g>&yo}^mGr=!@STze|Y6cedpDaTkqX(>d28g?klGG5yS?{rr%7=gcL%^V$24)uro8&-~HfdwJuNeS97@_-`C~u7&4F|7Q~TwIo^(-HF0J^=l{)b9-F)EXy?*9IT`QmDKplFU z2Y&IxobL3bmpP;hUhWm=toqW=9NtzJKDqIC^l{(aPrGNl`AR>y@7kv?eOB-J=RKc1 z!{xpGc;kT|-tIfPI}e|E;;a1f9bfg_y3a!v}|b`s(AoT+5Go?h`n7b@}G^(|+&i zY99GUcl_jB-C0j=zSLJv+$V73!C$!PX3ov&%!#^m;m5@DG;o+#IQT+$@6~f2UV4A6 zE}nA3@A*tm`dxS4?%iM zzH)5t>{m};KA1bdGv*i{KG0tux~MBRbkk?04?le8i*rxylV?2SPhb7;zv`U%P~U$0 z=+8I%>F2)U=ilm1o#0$j@9p}`cD?jns?Kf}mxnJn6ADmWt zIH!(2@S2}hKlikI86MAv?W40f_T7C+SNgl(UOG<)d}dv_Ru5n2;pCJ3{8P`l=lasi ze0w&h=2?#EXKv}Xt4C)(JI7Zz`45+S&zzV;b?GDT&cWwB{Bq4-`opE3_i)eoUhz^N zf4HptrmNpYI_aw(J={OP>w}kjKppy+bMr?>I@_-Nw%e4&Gto^tHI!4p1p+*|TQKYY}aUpmqokC|KN-0OT) z|1N&c`R-ofE8WZ^{OX!Bc;)ZB`uOt+e)l6?;PKrv9&oE8FL2whFFbser#Yv5k_&#r zt?pTT%oD%pqpvwp4^I8P=coMHr;hse`!09-;$vRb^~@*v<(E2ieLwQPdX`h?U-y2u z(rfCy`c5}|;G>f|_PIB_r@#LES6?paA;0$fuD<-jBOmtDQ|{#XG(K_*m+$6~-ap%~ zzuzZwrH=f`f&9ZIhkVn|>Ym~!Kjg-I@YnBxzI1bc(fwQa`9wcD_}!+rzI4@3UVMM7 zF8%Do17Cgk<(&F(!EdFn`g~B|`w!v3i|+91tDg6Cp8DF)H}fh-_FL6)pWK8;Ud(|! zdH=S3@+PnLiF7SX$4)EZs{?3^X`|MO`>b?&L{_1{ZdZ8Zk1y)GxA21tk6DLq>hjAROds{(8^64V%XfO=tG|5e>zuxL^TRyQ6)*Vt z4i8=EOLw^Jms>pLP#^W-{QTA^s!xC4 z<=^kD{L8I>EgWHxKHpmhbNu4pPzhp&NDoG z^o-ZH>hS>{-{DlxcYe8d%%zpi@2W4i^n%BE`qBp;`Lgosdv(o?`-&cL@CgoceBXKd z=>Ug*ey`ws?3^6Z11|o_;p_JMzIs-Vk93AhUf{8hKI;12kQ2Jn-@M`N9RKh(zxe4- zN8k0Qr+(_e`zxOG@$7eqzI60#?$qbA`gAy{zWYzU8PCtEi`{9=(@9~!tb0&B0 zp;evpR{iKX@z9OV`l)+d9eDXHC*~Dyb=1YrcRuUGPkPEBzE*p7P=ML(cHg zSAO)T4}Im`dG+BiNA#8#_m8>pe(GRO=zW{se3k?L!s{Nf9}e~KlmDyg(g`lS=p?7k zKX=ajI!{OS@i*`Ekr#O7$a(iNpXp>D9go6ce&I7`az&r1GoI!fF23u>U%KM~mpsV5 zoZz89JaULHJ{R$kU;e_wSM#JFoOoN+!;2s0bk&bv^pJP=g#G-M%P*a$i@d;RAD?D! z;KB<}b>$W=dOPPk9q^SKc&&2kyZ!vN($9R*iJ$zTlRUshH}$RZj*ncx_bWZ=1+U+e znFsaYgTp!B<=cGh`ru<9Ui_0&t3Ghc6QA*rXL|At{+Sp3&5`@UedPXeo-b$dFjw}O zE4ko{`_O)T@S`&w?B^$cJmU|q^Y-CS7xxtX_@y2l`D8Bf(8oF7&4E5}t7o40g132< z1HSN!FY5by#y;opqQAV;RbPHN&lkSVdjLNC>5aEJHc$G(O(%SzEmj};qm?v`&2Y&j=7aYFh>-W`n zI>9BEeAgepoAfXbes|#IlezNDcY3_5j-0@+4qPwoQ_p_+(f?!n%(Zj&(N7<_R}WwN z-E)7c%WwAwUUZaWda29z$;UH2=|ZRb`tn&n&vNqIK7H`#w_M99UU+z~uN=^m&-T*+ zUUP3BU-flQ<7=Nh$@ABExKG@N@bPQDR|kH6>ErqT>fj0Q3J1J=q`&!)CwSZwd~u#1 z>gWfbXS&l_4$T99<@X?*{B)k)@(hRX@aXS8*wvFKy5UP-e!~q9yykA|052Z&gU3C! z!a;9(=mVF1=1$(#H<$RqD=*Hei?_a3=j2lU-LrVp1rGPR{X1TMpYV6DIcE;w#@~7S zt@!9ChxCy<>rpu1_TD|J58uz*&(AsEaNdl4bah|R#~ky?{J01BBERNRe(f{Q@~;nH zj>E&(`=0qhKe?s{pRIWDO&;`{y2&xV>U+jtj^!U;&+@Ut?Ylg9wx5suGT-#kpN@2= zBi#7%Pkra;_cdJV$e}#QBYoUUe32*p_^Lj?@TC_YcKto`OFz8Tr6)e{(ghCn=tvju zJFUs?U$>aLWN7-B;?n57c?-oVmfze5g+c`NUHlJe~I*Zgu$cx4!tf7x93{ zJni<&hk3Ez?-5=2>R$0IS9mzDA3SuS!>Ygi^z@9UI{3g#54n*ixmM?>K5|7TxsYGH z=qi7+j&pRu`%iuNYQ5;ay03daXypg}@xW7_&AA-oAvbvNLtXjR7oJsrEB)2cht6=> z$B&u6_tkZOsAo>(nqGL*5g&Z{#t*uyg(R& z%hVM=dEf_qoSXd2r5wXePyWMiuK3J1@70$VIq=;aPQLc*4-cQ|?S3%_{IK8e6nyS~ zzSIA{y!o!a`Q(cn$(=muYo9#9#V`8skq`Rw8&CR~1OD)VpYC5i>2LqUVZWTfK@WKO z3^%>u^z1%zKhg<){pl<3eAi!Jdj7~4{N-7H`S{a5y!ocS?|9IOkMiId9zMY<7w&a9 z>3J3oIQeAd7d~{l>KvWS30!>9mv8)4&+n_b!UG<;!UtYH^4mUo{t6$wo}Ht&RULZj z<2_%^C7kxtS$^=Pqw~K14xc)3^W91>`W$tR9`fn?>bv=bSN`DTKflZaKjEX_+$U$J z^`r0Z*?s6fgV#N0KOFqN?mS=A;hUV{Yd@U6uj;^Uew?ER{ph3~+}5|%lY6+~wDObh z>X`?)r^bL!#upYL)iSI)V|)jh7hm0o=I-o3|fb=^<+$O}E_z<0XQ$(-?@ zp8C)QetJ4DU+~}!uX|Eo_mjCW5AgFFFFyEPa2`K-GXH#*D}JcwSx))rp81d;@@pUd zc&TUZ`6dVF)p6c49n^E)_vt$xht<;`f4<76dVHjtdF6-s_Y6Nh_{kr2%*zT7T>R5V z4(*4N@8%d@JmH`ReCo@WXZeFeo_F~4SC7AP#0UG}!{a}?>m;kHW(mXaKL$XQLP${< zfPhpMDHih|(rx%YomlJI$+h>+jQFa^gZi5Ty5r}*Fb{arPoCw@IrBe#g3EdP^^qSr zv&uc(R^Q>5FF5U^!%e!$t(=$#_~`xr=Egnowt9HbNni8Lugmt!f&TPxFUik`_VbV4 zvyYs~jl8YSyKRoqS&v(B|{FP7hKtKKEk>2u$ul_6i-oNkJ zeB+Bhd~%Ery!5co+zFU-^Px4(wAGUi#S&w|qXw$9eMx zC)`&3=%haWd{Eyxy2FK^`}rswyA@tJk{9==^-cTbPM_6#zRELS`xY;L(3KwE+s7Aqv3l=*bbq)XF2lQ9%^AG#%kkg#nG5^P zm3{6_=i#wB&kwqpQ@YFHaeeuuF5mC_?(a}_HSD)v;Z|vw{c=f1_{}Rk^p#h7nR|8QL0>sq z^`jTx`Acs)!K)ts^mqPkb?K>}_vVH^`neC}K)&f?&dmipyMFqcPkDupe)iLeFL?1; zJ-OA_oa+xi+<3Zgyq8yb!Dr&6m)yt!yuQ=leZ$|C9`?zPdidD)*nal|Tyk;Mclya4 zz34<|c;TYku8y4Z$#*`RBl)wRZu&Vl^@of8@Z;}09q{FYdl(NmotF>39>z=F`6SQk z(GPw(@;d`BUi4F6U46`vx+@%b(anB&#Yax9yYu>*Ke?i_yx{-RIeC*K_^f!?kG~v$ ztqvUg*Wd4u9DHlPI&}Nddw$|ecYNW|pRasZmoIY3SG@4y4}ALYL4Ww<((}XMuMR!* z<%4^RF8VnqcksypJ^9Q>=jdwv7%qMIjIaF8{&J{3p6bdMef8nHJn#cv{OO06-#>V~ z$DbbZpgw=-uReXv4SsT>zw>mF3;f-`>gX>I?o<8v?Ou{YdF3Bn?05gtPp2LeTbj_aMR6d z&h*#Me(&iAAD(>Sr~UZS6MoP1gHvwcQqO+h)q%rY(cd#2M^6@aJp#eQdpI zrL%rFy~q2uXa1NM&vKzIKj}?Zb?xJ$dw{-jyX#Ar-#xoe_2m~_KiX$*%#;16eTU0_ zecyWQ zKCAC=nj?C`;ry5In_G40q~4qM;SCr3?jbqBV|Pwo_-?M~CD-PR&wO)#(Ubq)s|Ww8 zFWumR6Cd{tztq!T9{4MtC)GDk^pYF(?3Xk5CO_tTe%VJay6Znz*D~H={^2%!7q15;e+G3XMXZsU%KeWpZ|AX znIm=KgU9csoWMbMdN~LG^oc(1K{(B&I_5!6&6V?f<=32d-__MeUAd;mVS1WJ{Pg3K z{K^Ym8Fl!e4XF*cb=bcgO5Ju&b=&e?j!Z&3=aIJU;Lo6?{M&u zZuaAOkq-FlBS#i zH$I-}%U|#50Pk`7$UmO^h8HjU)c@6a{}1D*+}kJrc0|LLF){P^D1j}P|2_tJO! z<%G}p`yG=@{=d6y*%!N5rk3RB5 zcX`DdzrX3=9+3}y;Dg^eyyQ=P`taX5`S%P5zJ4#@;HzifCtf(@knVJ`pN@3qvw1Wx zekatWGk^I9x7^d)IsD~Hj_jw`PJj69yY4+cbf*VjeU}%09Ch9tTjf?iK05~w-&b|? zqX(S)go}Ro^G$x~|5RN#_{T5vYR=_aj_|OLAHM4g7oFz4bs7#UK6t}L55FVw1BblH z^{49Ej|W}w_g)U=3opLP6(8gcKKDBw@JW=Hxa0`keQ? zTk)R#^`S2x@xj|Oy!2KV9&=!I-h9b1pUkJZz+dh?>noS=s3#9}z>{w9@Z0?Z$3Z%+ zR(Rx%&i1)y%ojiT@B6NvJki(vz)v{v@w;F?%#-i>$p;&3p{j&i+}id ze-BA3mK@a@Y_g)`7=tf`P>5r$}s3Uhfyyh2fIr82d(A%7=OAqzj5Bxi< zkGl4&3%~dL;HSRym4CTCuRfh;9l2fYqpRGw?>+0w7xSf#e)PeUFXmrAewrKldv=~* zc+t^$&+t1>AN=7kpYq^6KJF)Y;N~lTyr+|#@PV&8ea#=7`teV0?SoGr^8ufGOit(_ z@0azZkMnXjeZbef;O_-^^rfeMp5dnlza}2Onisg>^h7kzVdCxxfn!>!<4IFHe)N`Jo%$@!~+<&2Mfc8}1Dp6d8+r3ZZY znm@kM2|vFd&dUvd=xt8u#dqJ$2|RRA2mYNt&fzP6bg`O;tIo+WeVtcVf2(=X|FJrB zhmZgCfzN!>T`uK_-tGlD!OI6cWlwKKw9$ z_~H*YefUpr{@5>Pbb(tR_lkKsOb@y^PY-zbCFjohE+5{TTfE&{@Y5A8{^4UDK0dhD;GhG&<;1i8{8wM@`R%)vZsq}gy70rj^&C#Qhxe)X^ra)6 z=)c+rKmO(hUOK5GhgSW~i8|`?U4MSl%RRyu_~c6-=z$*{=)!+E=qP{mQIC)M;OXxa zzVMU(&ch*(<`6&c->0)xZsC?sc;Rwi&;t+8`tu17-}UqC9-<>2{87ifa2syEsLxk; z=%pUse1OBfp+25+g}?ml`ty19jEDNp!~3Is=E?l2FSm5q?T4EV{O70hbdY;I+!OX) zRF^LJ%gO5dL94p-(%(M#;I^Nhe8FEI_cDFV3ICk;o!-_xaLOHi@XE7uzQe^=zVYF> z`p(hSKJ&qMdbmH}htvH^SNYZ-f4Z16=ixB#-ovRro#BLsZ}iun-h7;T$&EbGS$^ah zKHvSW!%KI0q=RSmJmUi&p6a-_@uP6hsy?0NOkT|;J^X!T&g5K<&66D9r5?SUrz@Y-QJ2oI@v~1Z@l}^jbp3zd;iMma z^e|uaI;=lEcF*cNM_2XfpuT+Ebsn$PGhf~J{8NvP@=GuIvJZZB?4viopX)1k^Inj5 zJl#w3roLyt8~Qt^k9u^GXFS!R554IGr~Ei4x9ZC~UG-OY$J@NCC*S&ckC*%9sq^;J zl^*KjPj7kq-g))tfsY)S1G>XYUn{-q`^wL+3^mQ+pKl|~e@6^q`1($ws zsY_S>$&LGw5B7hFr@r{B>%Dq#Sk?9WrJr;9$>+=k-rno)y*$z5LwM!e@5Vvz&4>5a z!@iq)_XXeO$-MFhZhZMqf8Y5muY9G0{_WmbTHR&^Vxg%g1-2uBR_c1k*?+vK6&D!`uOnAJki4(;>TZoyf;TX zUEq`xIl||6`|yxEdhku2f3@G-;R~--e|e#sdElph{O1$A^s!Gp{y7JSzIelJ{^Wtr z^e}ho@ku>8sVkrQdQTU9&B@%yKm6d(Utj0&zWwjtKXdfCXS%85Jic(4JNn9joYGZa zI>>|HJLmYKkN)bzYfjr$M?sjJ)#CKIhbRpIgo2Yj~$#_;{~AADuG?aL`|l==!!kc*9{opXmO+ z{pxscKYV=fUjFIr++p?9#fP7#egED{XLZzEWPt~|?;`^?MSthzL=Jbln;*D+r|-A+{cY9X?~;D< zj?-^CxkuzhUpd7`e|^1|EA`=(56}AXlkeu!dwTEcH>4y70*_ z9nGUvUh%Mxk9e6Ab)AO;54o7nc+im^=EwcwoOyL`*vCiDeCMk?$_qWzH|KcB0_UHR9_yfatkkC>U$~e2F7m@% zz->QW6nM3vPQV)K0)luKPuj*_ZzG zr7PXw#t&~ezwZyB9^F55z!To{bWoQc^1#Q(_Ngl$=0ttZ z{F*qux5A5u{qV@YeR5{r-D~i?4X1t1(-A-W%z^pDgHGP>>e_FgKJfGJuKn_2Zr$^8 z%OARWhMVu^);ak2BVW$REnVc?d;Q?_yCM(rfv5TU8!x!vr2}8+1gCRw!lN&L>FA!2 zJN3*L+~!7K_q`mNThID9|2{tO?Vi0ihvoqe_a=VunnOJ0Q$KmSs*iro+0SSC(o2r? z!wU}e`7wR6-+aj@UHGxWCkOWN2Oi()$1ihim0y0)Lm&9z_I`&$U306yXMWtbA0Bzp z-#pNpzwnq(ddNTD`GJ@DJFPGMUwSrgH$BtOIXvK5?UOft$fJDYB@ezkPeNrn#b?7Ds{NCx|J>KSv&Y#-{=S9zJyr&1h&5?R^JMWyl znn!g#^Op|J>jTe2_2`3-Iiv@F;M$#|6W{1dcYgVOd+MC?@bT9^{OAh5{m#n|Ty(Gx z4)}aGNA3^xt$c@rkIvD{J?5Ob#M?Rb%(;E)@!c~W^)a7#(9u3ReNSI`Hoxu(?{9|> zbdeu(>mK!!fhGd{=@o~wQ420pm>PLG)I8+u|DwWhu5d@;wvBS zA-Ur3^hI9OscM|^_M64oPNV&KOOiY&+6N6uH0k%^WEPSeAM5Z(Txsp`mP?l?rA>oT@K}K@~1!j z+?V*MM`v~5;AT-E&-|sU`GmuMI?27?CHv%G{`d?h9r#WU`tlENb@hW+&dmj$bHBX6O=suj3lDg{ zo~%z6+X zzT%<2dzP+pfES(k;vByE_&Wy=^P(?Zop-Uz36Q}U*NOCZ!Yn4 zZ_w{cI{G`uT<_k?i~W3-PrA|@Uh_)_`#qaeKFGbk_``3XInxhM_3d}h!^2l~>4Bel zhs$?9(OVt$?Wemr;-h;;Zs5F1U;aP$Y&BKxF#Ps%#Z%R!lMry z>d2#9$boZw@f~mT04M$Qk!L!4PfvaD#&d<257TG)l6Sc5gO3jO!z*`(^>NQRZ!X-Q zaM6MP_~_@mzV_|<&_})N-qQ&Webs?m{`qXq^~XzH_ltWHUVP1=_k7aFT*4uj_L(=& ze3d6S`NU`U#%uiXc-u3+=7vx5OfUJ7V?M(JhaAzvck^^oUvmks@80W=H=O2PKRIwe zujX4Q>b)G`&qwvurLTO*(XNhq=2~5N;H0OV(9w5wtnv;&y*|_z z4mz1De(*iVvq`R9kZ$J2R!+izar@eC)QUhB&*c;WGW`b9tf`u(M+ysN_pf6wwk zfBN&4uJXzcEBti$6c7EKx6fSDiy!LAr@5o2@A#-IZ+@@ofCvBO8V`M)GY|CBhmZQJ zr?0v6ESKu=?LJ-b;Tv7};F(VJkQvwYBFg_n-*J?HSlTb}Xd zqx-^l^W^tT&giQjf6cvm_QPYI9>R++Tyn`5dg}MLbLx8b{h;r6t@`0Ki}n5U;O33yz)yO`pN^|as{9MzOVQ>w|l0m`H&a)pFGoz?pC_+MLoX2BcJ;F zPQR&#Iiwps@OKaB?{|z3bmb#l-qQzP&vdrWvwMXe@+)uV6h6;0@A~l@KYj3|=Sx1V zR_~p^?7f`O&9i#^HCOc0U!L*dFI;?d&OZJ4%ZH0_UA4*~-Mq&G-raupGyHtEsz*h9ZtfTS@sm^i@RE1B*pDwf`pc8=aL5JTa>RFiJ)1v# z%m>`?$mhf>XZqql``{-p^yIhuT7UDYF1~zs?^xvzFFxB3kN5QSosQ-|?cW{&MA> zpo3iLr@lG!9zXci{Z_v}t@g>6`J#)uboE}o)Z?dTdeK82e16rR&h)3t?1Q)5xmWF{ zm){k>&{YoQoR4qAfe*dlQP+J4H$PVA<((g%;lR_qDerQjzVGfGxrN6*{?WsJI^juw zbHf+)cKCfi?pa@W)SW z(qBGTc+CYo>cTBQataq8=!Azpbkj#&{C54-F}LdL`>TEW;3H4+Jn`YrPpkcKO#bdI zd4OMEIg~H!&A{oL^{(%qTk$im-qX=Ng(p4b0DgGYQP(*<7rb=fzdGta*Y8^^eD=wa^X5-| zIQU5)_l9-qY#&`#{o%LL1rPJ;Je=-3d7+cl+{nkSAKvaqIL#}*-qQy!xb)|%IX2fv z_48eB=`T-wlqv+^H*N*a9+O6 z54?0bPd9w!P!8yCr61g$<#YOpFMR6zJA~eR@~od6;f){vBTR4$Orw+ zC0y|0V}9IU_MN7udVG*0yyS#0c)@FxH}@%C{Bpm+0Y4n}t#Hwk@A#`rKj+lP!#?`h zZ*KW;S3l>i&eOqp`obqK?hU!%n^i8%G2P|UIsVA2{#J8F7yA2Mo_L&-cl+hr^RIM( zi!aXc4G;L_Y@Va5Jk5P_x$0}5T==dIzr2@6`|XoIc=6&F{QQ)cPvMXc=iz(mJDzgj zy=OjLw;vw&nEu{R{QR=tedQd#+$Xa?o!-^o-y!gsQ#v}o+Yi5-(qsCKpFaGfkMHtm zp04Tx|LWP?@lig_1%KeU>>T_jJ=-sD>hoEy^_hL;9e?%lf}c<7;Nv~r-Jg6m-&XaU zx6kh=9nHJ??md0z&tLfUaULJOsi%&9bo6`V@0_{Hn>_QI-iP_Z4|(>T&-&Q!JKyEU zck|0%{NbQ09r3oGe)^g(zZZDXkxq1z8#wOcsg9MO@To7ayK{8+T|YRE+D8YvOdjyz zO9wd3H{I2n_YIx>KDh_vnUC=MU7EV+Ctvbu4)L7xrH^}_K6Eyx@V}-Hz2U`QAH4Yv zzufT6JmTg4q>KLe@&i7&<(@D4@C{D5_-&5xbI-tQp5;OvdFLD7^`k3Xc))d=j&RKP z?h|?T%wP5R`M!F5;FI@wdA6E=eCPu=eJ`tTAOGmBFCXQIU(WNFzRuGbZn=fS3ZHzd zYo6)J2YIA7zv=3JFhB6mJkXE+{LmjhxV`_DZg9(mXZouvXZ+zW9qC5@v+CO~kNTRE zna|ZZIhwhqle+l+>YU%FA3f9AeTW|&-0yVfhdjx@`@nnt$ccPRozy!Fk9$^s{NTh- zeSG+^tHXEspu6vKNFO-y=P&)emsj=hH%In+55IglFBkF-uYGcP9UnT;*LS?-Nq*el zcsNfte$&A!w{YvDu3YgGZuRLaZ|dSr7x|SN`{fcob?F6%I_k@Xxl#Wh{d}jBbM)XR zz3_HkUH71U=0aV4;IBs0%n!QbB}a6iKiu-= zp5?RqMtBTSj#u@ZzKT z=8LcP<307$A5Q-B$$R>%~;-7we;{)9I zx=-|nPhQNkzUugU!FM^4YdNtGF1+aSn!a+W9v$7Ec;W@O_vT*?_ym`Gz<2x2f&FyA zLqE9ivL1y0V=H~luX|07)Z;6C%z;(T`R6>G?h(8^yZ6*}UR^mcA9Tc<5AtSiXMMiu zZ@)V9p|8BsMISoz5q`L*4(d8Dk8-7se(p7W)wP;8dfA7U+)w@Wl_PmJH*)Z%T)-pG ze0=P?_wr$NPXE8{H>Z9F&9if>efT>MAOHC3o~0{1_V4QbZsiNV%$0uT!g)HWPcMAT zgF5DoPxLm==E};qkKvOC{&|*1tNllv;|qQ1ARp@R*L;{GIGx`^FL?BUpFi}a8@=RO z{>__w(T^YW_1&ED0S`Fv;j6jegMIi}-7D6aKf0`uvB}Jw<e?`tRSr%hug0Z}6x~ zC-<#+F$d-h{<&Y?AxHL` z*O?Ez%nyDmoc61)o@af`jpuKjcVBzY2mYxeH}sSfIOyRXr$5~G;p6_|gL^`rcKFN_ z9r2@=dGV~T{pKBiIPii`9e&D}eCm4^F8Otjdk?Sqr;GP;p)Vi!_^JBv*iRq0PTI!@ zedO7D^Pvvi`5;eL`qPb`^y9yKh+g=a(=Xwp3;gz(CpgqmcYcT4cl^u~eC87$KIpT< zg(qM6aM*YAAXoHrf0&QU_Vdg9Sk=|vywQQ*@X%{jmk;#AOJDfhi}301_ttxJf#*wo z)KOo);GnB#dgx0pxa8S6`{~3NeBA?bV?Ow+?&t8r?;M@XD;{#B4!wPsXZph}k92WP z{>;@5j}2II! z@<9)E@shjA&+iT$;CwgqQO|q#j=p&F$$ZHHU(C02_|OSnIkQha{oUL0qP}x?;n&|B zxDQs}>CP|ySk05wJn#=6znktsb@jK(2_Mw+tPdXUTk}eH_c$JK@Xw`})wq``vr@HGSaH zSD(lB(^byQi#qx_hnM~GDnIn4H(YSSEr-7IA8)$y6@GZ&lNY$%1Lj!{yyuVm#y&pC zyL)Q#;Uj)<-~q4s_j~9Z-S{d8aw1>8(+v-Er4OCtnD6SSyZ-z4kKb|zCwh=q zZ69Ced;RdG2fg9u6CKop2k*0Va39bIe*N+10~~aPhyK3v$EuF|RbM%RPaX4&CmwQS zKb-KX#}BLT?jQGyx!|ks^6y#hyq6>W>AlkxZs+)ohxdGY(>dqik~`=4OFz8y=Z87- z-hIXgzbE?96&^augM9L3h1c_O&+72UeWMTEoi}&xKXc+fR*#-?>wcp@ebuLfx^m|} zg;#&~h5diy13$g_j}JZhBfs*5hr04)Kb&yE!5`o4H@|$*N6!6S1joC0c*aK_HAzU53G_~^xF``sse<_G=g%|G*Eh1dMr=e>NH8+GB-Pd)wo z9bz9oe8Za#>X<9@;+gN}8!kTU%YJevrr0>f5It9pO>me3*AR!iR47 zdgdFy+z0X^KX}vKK64_^ba5UZd4i8_{87iVJmRmuywQ_SR(;$v(-(Tc-58Z^8g1u;gxH+`OGK&n3wnELS25)!!zAJw_i@oH=ppa(petmgdXxI$8_U2 zesJPpF6iL*4KBYUE4+N62ffTA|K7FVywII5>d==y^uv$N_S1o{@K2rLan3&Z!;|jv z#2@?Q+8oHCy72RJ*7Y7gb?v)LCwR@@OYiaL9~|xlKGI8G+%xhCr*m?nFW!9TgZeu> zd^aD{4}IWvAJJERx?ADrD}4IP_X-Cc?EBt(`IiTH_1A|k&dagYIl7n|`dRPm%UAP8 zSGe*1*?#)LZO-79J9=2nk(JN#K~K7yH@N5{U-qj*Z@JW0uIMp+#uIM5_V9%+>X-}u zSmlRL$JMbq#}|6Sp)cO}nOk+=FZUQ+>hWE^^fMRyriVGy*PO|hzI;@l z?sWEy2c2*8ZQf&YFHiKuo1glte_B2Bjwc=IY(E@tJBJ^i@Q0g@@=j;>f&R{$H#x!+ zuc^13^MmgC!$}|g4#Mxf9Pk%!`JH{}i4XtzC)e(M_37-rob$^$D}3@VNBZ~$y%Pl|jgPRU``i?K$^p$UZ(hoj(^o5tdbb1>6=z%vKojYs49O%m@bAY$} zz;88ozQX|*UA~Qe_FLU+p6R$chd({>``CAS;Vbvf%PXDTTfXD#yj34M!HE|=>2?|( zb46$P-Cyo~xzk@g=iQ5ZH&5QfK- ze)Z^t2mk46H7{^Ej|cv8f{$FmBcF2PJ6-U{TRn3kN9LTreDpl;ANtde4xZtm2Vd~# zr#|{$=a>5pkBi>Z%c?G4^z&UEb@joA&hXI7ytqI4XddNOe>rj9Ie7ejyI1&xKOg0W zPv-1v{MEyk&hYwf?&Shlc_If9$+{F6KNe$}5I_~GHZoYIs3R=Dx>yQHuC z!M$Q0=mx(!a-bgl=lVPRm#yxl)ieHb1CKeh;zvLD)in?N;FtXH!*{%#gGWDkrZXOJ z%8i`hWuEA%kG$`A^Os+zy~ooW$eA4B4VS#oQSQ~lf9j+zzs#5X!+jSnyyOr+_X$1J zQD0uoh5G83AS=3ZU+ zocCURa|k!z&7VBVG2Qj$FI;k9&iRO+mEL?Z=gyli`{=KaysOV&b?~BxTi41Z_*(fV2kOX;Jj*3s&hY^* zzI%3F-sA&5=i#FxpJ(3ioBZi1C+0vOKKlCrK64BQ9r!OlU(!$R&8zzIhbMjT^4`5` ze)-`1Q+?zBA9?k=O9wdAHOKhLhq>6*rvqR0v7c}5Cpo0gX?6H1H}rwWy{nG8{G#vl z$9X!zXD;NEZ*phlA3f!Xk9@QLM||W#zT6vp^c`RGz(4x%$#*_^#>;*@_&3$~&tsxKE-`}sj9KDjU5W6$xj!cTv=oHNhnQx53jJiX}czT&U> znZBqa-|E0)4(S62p5{P~;e(qlp3Og;bfzQ!_2IMn{P&EP9GOSwCvN=lb^a({q8HDaKGR$ z&vL;}@A0RvI_jDexm8!L)p6g!>t3fbf30%iK9K`{;;YYb{Q2W|!gu}TR^DDZM=yQh z)K`A&!^=LoQXgM_(9iD%9e4fRZ&v)|gueXH$9&ljA0O0*PoB(&dqLj3m)Ds~=cf63xD{q(v3cJIq5xo>d2w}?hns+)8n~1at0qfelO%6U;fdV4|K49 zSKqxe=aByT!FSm?eB=uM$G*eo9No+VpR9DiQy%D~{zdiGm1n%+h67G@`0bp0nKynp ze^Wnm`m5(Zt@M>YJXYVGms@)B!+U%^+sA)8!R?-c7eBbH{Gq>mzJ?E8x_Ym!-)+3T zH`jRZL%!gnFCE~bn|=ED4yRmy4lf+`UH4uedf_eKe7C}DPSkOK?dqC)`>p1aZgiou zXSuS%2bVhb^WDAbySb4MIQWM@J?Z1#Q=jhUjGpd8^P-+S$QRrzedLjj=ALd=b2)L- zMQ-%9Up;-?k9eprC;WvEZubLS@uHXh{P!L&@7+WC!XdBv;YDBj_^6)m<_Nx<^fmY9 zP2TWS_f7lppx5rbKKjE;PxHqg{NxcHb4YLZBK(*2qnl@X_??k!ydFCTmuEcWV6_iV z_)dFozWB>`dch%Q=EvOnj;9>bZTdl%*#|#!hqw8)(of#_V9v~=ed^jrUwZKYPI;t@ zKI*A2AL{M&q(42?x6eG#32wQ<-|F76A3pk-3;p$zd%l|!`B7g^+<)rOLmhqi4)=<; z)$fA2pfeu)_l$?X2jJwJ@9N91d7E|AcR#}omvg?G1NvL(;-28UJeUJI$OnJr4IX+r z4>x_`!jEor;oF=8{;IDozUFq~(~nP{>3yEB^n=r!>udh;l`DAVR&MA?Ke;pSaJZ*m z!{MGYU%t~*KJMCYKGl^gKH}+~v+~n^y6LZ<{`%t0fA_s}aL^A<^Q;dX>eH28^nlMj zt1f-zL0;gKhn-I5Oz!dV-W>25FLl(1TQ2DA-ow{E{JfWY_pbcu1BZI};t4;VzRRKW zR=Sx_In>wvKo8G+vL7D4&|m)OEZ6G8D~E8%pYQtFCl6Nd)z{B=xr0aE%q4z&;TzrY zqN~+8^Qa!Yc*qBx_^rNv_NmJs_n7>_!*~9wN`Em37@>z7hd1- z=ARsxOa9Q${UNvZ%~d}2rwhLH^Bx|*?|bCMeBw=4z8tro?^Zg>BR=j~deMi@@2e+Y zt7o|Nrx%{;@AlJIZs`vnUFCxw`qKqI`sm}mT$*?N^>HtL443_Q@QcpoPcHPOn^j)T z3%$%EzVzpp`$=x-AYXW&h8G{}>OH;a%WwCLoSGB7;ie1U;pCfn!-Ec<>8*~w{N$s2 zI7fH)llurx{pm^v`pCQeR=)8ae>(Y{;46ImZe0{ndw)ZuWbot8;Xs5C7$4hl5{m@ShHJmM6INQ6DdL z>Epfm^LymGx_HVFyz0}J4t#tQ54hyU{Yf8s;Hi!rOrCNJkDS^sm+m|Hq9;G#GbeIE z7w_paeSL|aT$m60%muyRrk6hO>d#*~@PXcPj)%JPLvOq?`A#3_-9LEf=N@uSj_AQxxuWOS_&N8kXZ7f8 zZv4*RB`2$MA6w@+-{}T7obt?1c-1$D^ggK%|K#6!I^nAyp7`_C{PEW_-sW0P)RW_x z8|U~7H{JM(zk2k+*ZqelKX2miy!Y_P5kKJIgZ^}e%XfO>;l2Fwi;nJ<@8O~&T;9|5 zTl?UrkA89pH{IPo@W2fh|L1vi<$e0)ev=Qlb~w$a`s&dcpR4xEA05mSo#=p%^LUtd zx!|k5^#55uI^ah)b2z^{FJE}9>iKS!H@_3^NBiXrK7HwEj_GLb?VS93ub&)URv$jk^w!sTIeOnY zb?7f2&dZncbaD@QmIr?EnLqmAiN9y~;pKz+C*d`Z@aO|4eeIV&b$r)vRTpma#YZ^k zGr!Y`p7y!droZMy9pCA$AAQ{i@W4-R_Xu0{;cMdP}ZqDgW2l(vg z6CQqd;W|x!_aUG3$HVWex#k!D&8ug*(+|E6^^?Ed^J=9ZeVsq+J3jci_vIFDI@(7! zb@Zo${HSk^>2^_ny3?6|@YBb<>Fc}S8|PcK%*IKEVGx56c7e3eJ~>n8^Xop%q& zk@M!v?* zFYW<-<$=F+fnScyjePQv-tfzde9;XrIN#yedNA?hyV7?{^n2q)Yq2}^psn9fE!;p=&24L_@keEnM3zC z+f$LM-qRT#-}RxR+`*%t{x{_XKfLsn58vsECqDdi4?C~E=ZpHmBbVy)55L`h zy!BDf{lq`Nqt5f${drbBea)#H+NbW^Z~ow*kKD)$9G>;zv%FaGcE9jbeR=eruIf6k zzFhDL4)-B_oIgqzKH%pZ-@NCGd&D_)eW$-%@X7sxzh`*tgIsDjp{LL-=>aF%&wDR#=&+adE_+t*?P=}6wx9F#i_vW5n>h1d4 z=l5Tp=!GX=Uj1$>t4WHee>WuU*$;u-|53& z^X5I?r|o;+>bv`bpX%$6*Y2G6>ftX(t9{Pdf8G1t3O_yQhA%(W)yH{0!z*WWchBQT zSNr7D%Kw>%6<+t1{qX+mJAURKK6u@0a*wzA^pa5hrgAc{PwKQtgD|D zF8S5ZJox>wIwz0#^K<4=?w-;SF8QL*L*MbFJ3r~+eo@ym{&MHM)qDKhw-Y~p@XCYw z@*^+q8TIjkPfqYN=kn#Am@7T`0}s4(ghL;C@%??e^4C3!hxt`cZtC| zv7g`iz{5ZJ52dasXj^nr)(aLE^3_MOLrANsG} zn``;ut9pE*qm_>4b>_x-`^=fS`%!=S(g#m?<(02+(uL2b)x*oax4pO0#XOj2IQY3c z_p23ey33uu`l(N6_0@yJetqRo4(Mino#&_g!b@-YbB>?zn@{KUhm+3q(bxR(h41>g zm)z(0>mwglb3qTe<)?n;>O(&GJ)|E#4}I6q?}S{b&!4HIKJ-^t9#{3{&fK|I?8n>l zpU&Bb7d~&sce?AtNB5CD@|E7c^TmA8g}-to4|td}deK+T)u*o&UpY97&u)d2zI<@+ z$e;82IFBE^awDhmXrE{L>xUm*<&ZA+;U$Oa$pu{QG5X5CJj<7Jc&e|zI`-jbKR?X3 z^L&;kIN;_VT+SWki~jP!4?6S1K7Ht_51x4N#k22pbbrb*obsx_yvUb*>fi&PK6H^o zc<3qz`guM`7x{o+e(6I8xXkxW=lLd&=3Bn#_v!!i!vh}coI`l%iLd?c8~NV#gPVU= zdcbSHJbTYKd6P@;=>ZQNzt&$Jxagn{UUcLyd~m5}l~*gh@q>qsaNQ4GR?qTAN4UIq zj$iP~i#qV(A-|sG-JGk(C%Ve7d%{XjzUwQ0@&=!C-mA+8zcHFvOQ3q~y+?=)Qek{5qR(3fs_!Vjl?ht;E>+~~t! zIkeIp56^hOC71fiJsj%m>t3UibH3A`PjbKyzTu^xI{MPp{NZ80XY(YNaNwzry7sFt zS6270`SG4k>cH#wg`a%C$Tzrl&-QzM+xyk3{_mdgr#oKwt1mxtA=iGFJoAT6pX);p z`ru0s`{Yo5@RcvPJ@aeg;)|T9x5EP`{Pxk=Jjs>&4G+1a4_)Ptj_z4?)P)bp;f{PdPTzc+mQGw{%he|*r#y&wm8$`@Sls^jmzFZGkd+n&95 zj_>-?Rek!{Y+Q5^p_WYIj2JS& zR^QE|_w?q2dtRP*{o&DX&JAAlQO|k%)m2Z<`0SjVdk?SqmLs}32cNl9$9}%ifiCjw znXm3ebI3Py29IYr^wAd%xYRRur|E1S`GB9_C-3FJJjgL#@(2%{?kzg$@7eue9_{BZ zJ@Dnr%)1;qZ@)g~S6=4tk-WgKo)sU@>c|`Z>e!FpN^d^#A71&-l>G zcYIFj&o}-pQ;bPd!Bx9(T84q!pA;&G3UN}Z=Uq`USGV;tG;qWPke5|zgqo1;6*pQ-?a}8 zdg;f1zq54Y6aUQ{AK{Qc{otXSzUukilS}95gYR*;`J^x0^iy9ht)4u~f%<%L-hTY-!;c<(GY{?stGQLrdHnJ9Ob2}A!#@1w zoFC?&Z*uebzkmOH*XN}7e4z(j^}}m^SNF0ybXz^^@BE+Me{9vqdHv*pZ|cwmZ~N_& zEAQ>&1Ao1T%Q^VWulaZ0xgCD@k>4frZ#9SX)khxarH*-YkHO>KQ5PQdzlMhn^60(% z@{j+12l0^`c+9uDzQZB^_~2=u@9@rhRegNTG5^&)ji36fXS&M=KjjK<&-Bz6FFu$D zc=T~E;-e4!)pM`PHyzBcKJsZFUhw$-H=gE}U;Lx1{`%2bUOn?oJ$#&_7hLo;5Ay3? zqAR@S*qqT%ALsch*X|MXO(%JP8$PKYVn86ECa0(Gh<-^G|;0IqzZjx;cgu z54`o^ue$uT-+BDh#X~)K;B{}QtB$_E%N1YU6Z*=BRsQ(^2fv*&7v{*SpZU;_pT6@8 z&hO#WhhKcgUmx=$pYA*U=_3#J@gF|g zM@Ra@K}WgZ8+N4Vsjp86k$S3UgU;g|a6^uBY~ zt#rqeKl)7`p7E!X`*gmSWB&WjPx+XB!b3m2-QRFe-t?CPx|%=d;nIgLbTc3Hx6&66 zIP8} z?wsF2_qBfNTj|IzIr>!{^}L72YM$f^4>~v}XZEk^!$EKRyvL8f{L{~T;Y;tE>Rb7R zulwS#eez2u-}xi2_{pKZa=>Ri)saVd{P5A+KF@TLQ$DJruiqQ@ z8=UI!nZC}`A5MMb7jM5KABJCi_n!V%_kd^h^!IFq2Y$Z8#TUHsk&~&zNqF5K`oQhG zXSno}m-p52o=^ON!@VGv`pFR-?h8Eh<%9c~9_}Cf=m`(~JzMe8=PVv{l^44D`$2!c z!|U01Ij6&}K0ol0bGkWazwdOU7hH6eC%&0q{`g&>J6-J8$9+b3^8ug!bb^aMaQmIX z|4;nsZa*CKmygwczIw*vsPFK|#$vyAA z`(N(q?tal1UUk%mPwwPOAAGG3@q!y(K3VnA7Y;u8?wOAIyPxdC3r>0EmwS7K@3{4< z)jqzP8-Bn+M>(StJamB5y|L@VS9x(y&{Msi?Uy@#;^n;D%adpG1i$%F&%E*p4*t29 zlJk2?0LCx3Dx-*U<)`}wDjoX7`$ z@VjsDcTcbQc`qMwg!;US2$_FF$zk-@M_^54ne1Klt(V zT`uA06Wnm=kDq$#tHU2U?evCMPWeX{Jn)tS_3Y!b`Sd%cA3uK7mws^IHFcI(I_QHR ze0bw~TOazHBj4R)=GVNs_vzsMx9Z6cJb1xF7dZ7ZFY-liI=T1c$g|wzX>Rd@_c?s- z8TZ2KJ)eA+7detU_nW*rkGFI9z)ycV%K`o2hL?VH@*QscXD*yOh!>ymmn*#ZYd=2t z!iO)O?j`*_%YnM|q6`1z!d&A=FTC}86Cd*dFTeaQsmFi3t#W0KtZ?&9PUT8I?9-24 z_WcT{xlqTP>t`P1-~Gi`c=e+Xe)N>5)B4igK03-9esZQh9r;72lj_QgbA00e^aC#S z>@(kVf)g&!aw_le(-~eqT!)iR^nq6$xSgXr-OMSx{E@%u3xDzAvpF!0$ah)T4vG*6-oKS3UdXM1A+AJi6x|1|L4j7u?SATVML< zM?e11S>DuN^_3^M^)V0TKz;M54;=JT&wJ9@K8t2 z`3DDG_#toJ{|=Y=()XqJa_1bp^y8;|`CXv9zUEzS%mLlxZ`GF`bfmYuUANDEICk&p zJnO=TxBl?s?Y;X?KRoCJA7A7X4s$Bc`lxSS)Z>fy<^+HE-4F1(&-{MLfn30Uo<8cs zFaPS<=R3Um>*s!;^V}~7^p;yWk^^<=Ll1TF!F$Dn?s6u_eEQZtD}Ch`PyU>=-%5Y; zXAaz}^n#l%^fib0@W%?LxquTM{M}zWeDtF~9rbe_Ugz+UYdYvJC-|!?N6xz!yoYav zPhGz8#WNqwGyj}ZA0K+_ZyxCHoIJQc)RABLlXp1O!`FUz;lodE{Cy+8zQd`Hdg}8> z4&Zd2{+{u~j~?;)4gC0;KNfr zx}J5OzVOqJZ@$w-9?h#d`qRTc`dQ^ze)tAAyygXe@A=?a4&;2rOJ1z-J7-?h!^eE$ zFVFJt{xLUvv0q*L@bvphFZDe8?!EJTlqdV~)z>{IXYM(A;3)?m(@9^edrwZBGrw@a z`BELv^s^uTr}p7x4&-6_NO%7~c5fKR(k(Uic>;bm14h_+~#p>{HjhV2<^NQ=a(mJD=<`A9QkG z9K=uk*PeH)Jbmbyp62?n_w@DNTzF3(bynx}J?bcRu3>hk2#biZqH+D}*a2%qVLuYLTKH}ee7 zSv>IOpE~mASsgmUE0=U}&+yv{w>;C&Jb6!dzRI6_OFek#P6xW3$Im@3AD-#t{Cw7b zRfi7dj{eT$L0^7*4>vx1gXS&iEZu;nB4)mcD9(d!q z^ToYEANLHN?}mTy$({MshfeCtm%j9|swX#cg+HEr($_PekE(m`q9_#(U0nRFIRFS2XNT04?K9#S^tmKr?(vQZ}%N<`FB6_ zQ$FZz9_b?Y`nqq_U-i+KANa^GfAv)lF1qNij`Mh&)$eC3eD?9hck|>uUEy^OUViWk zKCAQiz+>+CXa3}a&hX;52OstLE`RWQ54U{jZ%*i|FZ}$Yr#kS!r=NNG9Zt{c=tsYa z2Y++1sv}=;^2t4a&^~?KPx{-h?{WL($bNa+eaF-N3kTipduTsD%^%(DbC0?2@RTEd znLD}U3!Lz)kH5Uh6Mg7rg##~r__N~U-f`|t@Ac=Gdqw{6eQZDd)iY0U$`$LW;fA9-_zS-}0 zZSI#(bIBii!{a-B@zWQ6dg!ALALPV7bH&G}_*?0Q551gsA6eCxpX=)JT@LBbXWu>J z4c|?5%mKXeDVOwEV?RFhRu>QVB%SHUKl`nCsSB@M$fMl8ghxJ{moIawKb+3HcfME0 zD&O?vvlT8r@@4La3m-V(cF)j*4?n^Kzr690uk`fZKDy(nE`I#suenr*&T!*9=gmHN z+f&Rcb9AFOd{+9=)ts0IzgK+07Z3i@kzdZ!g&z9AqaGdLG9T*R#@Fwf_v-W4 zoZ?R(b8i0l3g_hMUZRh`1Nel8)m-oeUeA0rALdP7-BWnk&ks1%g##}4jMaX8t@?dS z&x6+0iU)l5`F)}r-{`hGFYo;1hiCrEiTv;Ze)ZLrKfc<}fBVe`zwg6kKFot>JmJKX zual2+^yL#>`EplZ`Qy9q`q7`S@T-TPdEm!Y_2q+(@R-lJ9}ef_N8b5@zxNmQlhf7n zX)B%8h0k2thmSnKM-Qv|yZU_aeAs(+>BmpHx_9i?-+R9gR{Qv%9v|IX{7_GSeILU| zH+i8if8~VERyowyIrGQ2m-_JAe$RN|2ZuS6XMZ28p{qGFU-+pHr@1nxbfc41PTe!= z!6z5K+rPs_PyO6K>gXfC&VBAYp8Blb^AT=2kYjr5`?GWWl0)-FUpn!Lj`9bW+*{?x zJ$76_czlOv*1c@M^PcI6KfmM)e)9$=zVhN3F1pgeeLz?I>BS#;b#KY1{@(jtbYGYs z_3*=2e&kABb?9Y39NzQIyzx^$+yivyd;4at>@&A;(?fr`;e)zxn_K+N zg}!{_k2>)1OI}uZ^;gG!{oyx{?nU!7bHO)#=m@tyaw=c+;WPjENgu24`rz&Tjvv3| zfWL6cpIp$JUUZ-5)io#PiXL>e4=#1+OGi48cN2@@&6*jNW+ObzUF2r5jz`i}1^bI((8VbLzc5_`<8M`R6lz)RTMX@ucgo zc&LMiRXsfQ^&QTG>hRe;>YmV#Px1!O?!0F?!rys)=md{^x-aO#XYb`jUG?ZHe|&VF zPV~eRfBVfbK5)IpPtN5*eeWl4_Y6LCl}qpG>UWx6evhWE{8o=2=I1E9axXt}tq)#& zfERCi;Q3fx`Tx?hoY5Ix_sLMc=;|T`W%gY<`OS@)6E>&rye|>;ZXl;ecT_O;ez*V`>gUNzxLCSzxKO_ zJku3k_}xSDZr`pyKIUcho^I|xtNg`|-^WA-+E?(->O@Dadq|1EX`NK#2J;N!Ve3&`Ct&UZH zIgmU2=}LDzv^d|JC7}T&c?k-{p~ya%}GK zvHCr*pWkxEC%IO~KKP&F;qN?s;gOry_UX$X_ZUCD$CKXbdk+V{&6Dr+Ru>NWq&4Y8kd*+8{`Ne~d>g$IO zobqiyf8Bd@$J@M_Oa1hBP9OIg-{jrz6o294kKDk|CwX>WPWZ(ab0A-Ih2uV-yvN6P zzQK>T^{MlZ!*9B(BX{cQODFS!Ki%-*$3=bkwR`qnuJBRc>bvt+=jkM8{D#Z#%-{Or z@4M%tfs0;#2kFd5xuK&v_{)nqlY4nE$9$3pI>IAQ-qV90`pcjC@VlS*Xzt{V?s&;9 z{O&vVH(buykEg!$^>?Fr#KU=WBzJH*ryd;qv`?P+!v}cGo1D-G?x_dfbd{?Q<%6E^ zOe4~( zN> zG3(lg$4xx>;$DOw4t~?gclWe=Mt;1f+hKjo1>W?++jl;=Klw55Ir*WB-xYQ2#}`k1 z`QyA?IPV_90}i>u>Jpx7z=?mA>}ND_qXwWj;Q3p1yK#p42sm z@-AQa$T>W6jGsKf2fsOV4qmwQcMsyPE}s08TRG>4`tYg)7d_N@Nf*!fIgg(?kXL=^ z=Nw<@t3Ukq$+7QvKZM5|I>!e&b3gHm4t#@SSI_*I1OE692R@$FH3xL3gS@NjJU!K? z*KK&rHGb;L3H|xz9KYzqPdKf9pZVwhUG=|er3*aH!9xdgY#;sQ0&c$PLl1q_b^pz} zc!$14^$7j0IAAk7i>scN3^)>hIYjx!oU-@+}$obpw z@>PA`;dO8L&X+_{&{?ON)@zvj%?oanD{N~eq%dLI-!U5lh`dj50K0MWzM|$&t zPWsSOJ$Ue#_2Kfnp*}tNMrS$T6CC=hBd7eP$BwtW_>SkBzQds&zr3eEepdDTzVKD9 z>0mDC53hORr~T^EReiqDQEuE9c*&1`?ln23^Y8f6>*siOubB6zzQZfObcCBe`p^$f zy!psy_qRFLM?UQL-JHUWr*rZmhw$0wJiX}WJlvl3F~@RZe)u6r^nwHKsgJpWXQi__ zcJm9T9UUF>C=_EgV zgA+fz{Lbko$8s_8@y+@%ochoaPda&TAAEGR-~EFp+;FY>(SvSsq>g>+m_K-}_|chf z?rVO)U)zR<1{`Pr~ zul>H8SGl(jUw+HMVfFElXL;c}{OUW8A0Jlr^tH+bf4qnLtaIkUd%nm49y15-Eq(Ze zkNW1ud-d@%$NK*Xm+y4pv-{Y7dbz*o<-YXHA9y{}6Hhw9ZBFR#{*}ky;dOrI%c{OPsZCm-hJZSVQzJKf!b{QlYg)e4tBR($cJH~qZlKm6Xyv;Oo@7jAg@VgC4G zH7_sWR#z_EFY<6dcskEt^GZkesQjuYZ+lKWK|nM`asNxILA}o; z&Z(N@x%Xy9d|l*^1)r6kR&&0q;~tPB`{>1YeGfZFSMzB7tAN%NLuH*?XzMq6cf9L75`%ZuNGko+g zFZjSme>myvnJ((U0Uw?4z|->@`1mZ3a?1zx^pO*}axXfEKiqO{?woUvIL{~d{LF`a z{BWMW`q1xlJo)1u(FYE>GyibYLqGfICAakDBi!<1rQ?rqnLE1Dn~rj}+Am*t^IOj7 zqn>@vdv@>90Y13sf-IJ`kNp39scUUuMdCu>YV#g4*9ji zssHDmoyXIA_3%>%Zn=d+ULLB;H@f1_7x_~kKRT;NNBEti8@#^L5l?xB8(#k5Pd7N_ z=rlg^3$J;g1K#SugNHtM)x+1b{pQH?bNl&2PyOJOTYBhcp5Ud=uYp4y_30o7<_ljw z$f^Et(?0V?cPpIcPklJen>yah zkN5O=svkad=L=r+r;qvBotJaG%!PYLJ#%Em9}l?9$*R8Za%>-7@V#k2oj&!9w|)Fj z4=?-ifSW(|)AhCbbLHQ0-{nUhXMg?Z=yz7m`D9M%53f9!2lop6^!^hbzN*iEyyVS$ z`1OGgUVZI{*L?76;`$gKIOI=m=*?Gk=|^`s@TEIk`0&|&_stFmedJAFIIZpt`I9eo z?c*1J@s}q)m|Ne~*I%B@h5N-mdEk>=*vB{dGoSR(pAYcT8&3Yx$$9rG{o%S!SI=~Y zi*D+`$rpK~v-))M9xrvR^uW(KIK1aK92WyOeXn{?KfIi?Pu}j^FAw^|MPGI4_@Q(3 zk#l{W%SHAmQ#n1aWUthva|J^fvAA5EVUn~4_PFFtL=e^&L zgX-S3>hHVv`140@=w;62k1p`Qfj@usgI`_u*$$WU{FO7j_)KTM>SG@C^E(HRT;c6I z|M*}vPx54+yvhxI=>`WM?57idtze{k^&9nO7JBP3Q@!PX=aO>~Br8gbygIkW^ysxkKe8ks0*zaDFyR**2 z$!9!g9e(`j93SM|IsVHDeevXvzUtWr2R`b`uQ}k4T$oGqpuXJ6q4}2s`Ed{P1y1$( z{Vx8#^M?-h(+?hV&kz0iL0^8#0iMpeUp?!~5Bj*D^q~VBbmx~k`qE#1>8~z*`KrHM z+D8xk)YDfk?T3H=^WT5=AN35EKHk&CclCaEjvxHiUqAKuX&#-!lkfEK45z-n%OxD{ z0Xb6F{UHx<@WV6Q<^n$Y%G*J_=`RO(9rj%w)HNSxeYZ{?>d1}n?oT}A0zSF14{!PO zOjmX3JNuSi2mQ^9`CRRH&&i$l_`+q5`GvoJ&hZsKdHqs9 zxl;eG_v+By`>Vdg%?~=b7oE4?K045e?{GQ)qdszKKYjR)pLKUmUd^HJc*+I8)yG#p z;GnbodT*t_eBdoN^rH*i&8<171AlzSM;$qsc;rHVd83Ow%Y*a$gCD+?p7c}4J^Q!s z^r0u8)N^0CKjcS$y32#QbTFsh|EVv2bcJL32ao&G{K|p-^oE=6&-H`zXV3C#KOFp| zH@;SS%AGvpx2mr{o$!?dzgOzu!yo|9{hIRv$=!Yy>G=6e&_jYUhq)QcRIVz-D7fQPVkdgxYd;x=REUA9`V4BF7}xt zc+|6xKXPN9@WAUPpVU*I@A$~KRUgmtXXU&4c<`Bi_Nn9knSFnSQ@-_|xcRD{{k!vY zkq0ZEzP8UC!fhXa;K7Hk`05KEpWQE3{+I)L$n6RbUCsSz@68E(_FeTIANb_oIq&ts z2QE3p*E#v1r+)O}BR$-Qa>pm@)Z0Ed)K$m4*{44~&fzQ9av@)GC{S6}+$ zZ`IfNht9hv-RpSx4i6si=mWQB^L$=?b>wWGmy7r9U#;elukd@ePcG@>KI0#J@*{V2 zQwL7x=6?C6gL$)G4%C55KRNZg@g|<$!)Y$nweo?EaxOo7)^Atevwq&Y2h4+d`ol>l zKH;~jPZxF7v)?Mu?>Z;{bcEk`dG!0IFCFl9U#Y_f`{cqZS9GK=zs#vR@~R&km+_#N zXZe&9b@0)jZhU}G?&xDa`C+}Szw>bL(HuH22lm5*ues-!edgM~i}(nq{d|{Wd4Nm* znRomBuBZba-PLhkF8D_e{Q2ScOMU0~gx^Ve${}6k-~EIyTyW~gpD)#u7kPxAzH%Uc zbn*=6RrUBOzjFW7cfP>k9A0qlflnPgo#zMK{KETlb>vMy^;X~2aX;_gn}_qB@u#!- zrX!yGw0`V7f8m1D9LveO_UkL(-pjf3{DX%+@YBbBzM5-w<&Dnp^O^7J;Vq9l+;UGR zJmkZ7e(^^?eVl_&KYiZRk3P=fA?I_ydF4AD@Sv~np3Rkg@Y4Hhc;JNJ{bjEFy`Ubw z`NdE5-P2Y+!)3quGDmzfk1Kp|$)()OrE_$YYdp=X_juuPJao|4%6EA6kxTa?J+1n~ ztskF#r!Rc+ffxTg%b)cq{Jzusu=nbEPe0G{BnR$q_dmVl*E2o%M<@K`L49@gr=NR- zZt9y``nV7I&R6<6Prn_1Ig}&**#|$|>X-vKPag2l`89m*m(?>~aLNtc z?9<14`tnI1_cfj1;=exT`6(Ru`VNP>`rAj}Jehtqrd%Qswjx+mn&9GWZm zUc$p4e)_Jj^YSXs<_He@!ATeT$*JE@_a3}-*N@-$nPYX~yo?82-qT4v=Y6-rFW-Fg zoo?`}Cr|JkheLkpfS2DZI^n-NXU^o_cRuhJPQJ;Vxr29ASHAeiH|Nwhzj6mJ|KQ<^ zKI-}XaxZzt*L~)G;SZhZ^e)_It?JR255CKjbL!zw*SqSeV;_C==O3Kv@6Pkbce?Xi zF8D=HIiWioboZXF-|L6JesV0g@{iw~WBkpL@9N6?svp1QTn^0F-}brJ@bGM&o%5Z( z|A${*=qqo0q6h*$L+;^`Tex4s`LWf0 zI?5Lu`0QCJ66FH;@{`7_$UiX%{ zf{)Mo)6J@`I?lNtqfsgpPfA|a!z2U`=fB4`*Z+PLNA6=dQ5iWhs#xtDsgI^tabDkb> zIPX4_7xxw%p4D+qA9|Y?`LiB`8*hBQmm7WL8h&}wmw$NEU7n_&p7r&+BA;~QBVPJ> zhLf-Kz|(#@O#Jxq5ifJ)-f(Z3L-!J$?f3gmFTTPFm%Pf8`%fM3KjoADbcM@)ecfZu z)5V<7eODK6_1$OufZx2qgTMOfcy^wDa_byD%)1=Ok^IYpoSJ_)@Kw)u=it#teL0X&&h1UgV2<^n+{q zJ^MSazxs29<19Sz(E~pH{LcC=uk^gEjy&;^U(Wkoq$8c>S-#-mzdX>xcR5lQFa7z- z$36JM?_PEuANLF1`tYAm@`u;d2X6O?oWdht-amztZ}zF{cZL7__6(Q%$$RsFhjZ%l zfp6{|^Yk`c^nuekxjAef-RVp>{^@I_H=c6iJpB0ZO+Pxyl{~!3%CmiRHb-=lSNomU7aqFs z(S0j#=1xC&U&BXFe$Z1N_YNL#sV6UVk<;_)!>=Bl^f!0&JN)wSyL$BUdxt;Vp4FoV z|K)`L`djr;pC59%!y(6VgAd=mcg~#nt}frK^o0|Dy1}iUIe8Z@yw!t?4|MXLujX4{ zI_m4Y^X?bA+Gk$zx6l11AMlz_zRHogdyW@8=9LceY^66G>X;We&A0n^*GFCY@XP$c z%YQoiZeG;WhhM8cbcV-!Jn%J_czx@}1rXQzkx@}3Ux==ZDrcwP03H@)z~ zi+|4Jaoc$-d~!**-9CAMPww$^zqq&TGxz3QA3EWoj$F}QUGqRMzMH4JaMHnf_bEMA z`{Y)>eAgdta|@q*(8Jv5Z%*-Z-5ymor>-FZ6k$NJiSzc2KYJ9_Zj9OA=Q_4y)K_RBq9hxL^Y{?fsmnJ;+tb#6Y> zLqGF3^RJKjGY`)5neY7ctUjJ_^2I(p?N>)Xd6rN4QIGHDa-|zS?hE?RjUVy^hkEXL z_^tf9u8;lj(c5`_;r5-bR(jBt4tV0n7yZnkRZe&K;E;3t=^`iQ0baioQx|pQUHv6x%bY|f$q-Xfv>G#-qdccd9`xFkm-FtH9 zzQczO=8ZmlGmp-#a5!gf_~L%xqg>I+eZ+71QjdQ2<8N;9hKGK1qmO*4Ll-*0M>qWK zgHxX9OgA{xr}xC6p7;9mlg{!>N8j-`4@c>L-0B|t-7`PviiiFB!-a=)bg|#P3J)Ln zFZvy-#$4s2Yl9_FZ`nmzVPBpfAc7(&ck&T&fRLCXa3N~vp(wS zBNy_6kGgp9gPyDY^fwoBVy^6mgMaj(^GWs0hu;;su^zNf-puJ`@72>+U3xpOk2!?P zoY9Fd&Rf053xDV7rp{^j=uIEECm;Ut0}r_I!&k25#C&yg&!~b&+0 z7vA*Hmo9RKpZD}pSKj19-pub=d68c@e+`cd~)YKobuy&hsz2V-QeRhJ-ol{JYDsL1Achb zb)V1!@7L;?Blig2aPtW+`Z&iQy!2O3j`X)5FFf3Hbes1Az3@K||5Gcy+%s}&wU1A7 z28Z+Tdd3%SbGGVB2RX)@URM0glX`ONyOlqDcfaU|2cPIjmv`ZFZ{y`zT{=5QulJpQ z+xn)}ez|aO*e5^w&{2JPga`grefi;|_xAA%PJQJ=?)mHduKv{9KKV@bOz8edUI4^1wge@!}_b^y3d7J;UW*l0P`Sr#F4*2A6xm``_uM z4?K9v0srab-k={p@2iIoT>O9wZu;>R{#_k?)c2jQ?o~Mby+?mK`;M>r@{X@_=EXjG z(GO40{J>Ye=Xl7IXRG_)N?&v2o}klJ_4Ji5=lBP|efodwynOM=T*`^LqMv8_@XP*H z-G^3q%{Tq-`p!=}sq21!ZJ$+c=)^bY=;gjw7fyBI#mjs3tmfV`UN_;wLk{_GKmKs- z&fy`)<_cbT^v9Q8a%1lFalhaTmwQVd_#rpm>mxre;e}g{pJLl^zc2{Qjb5!?WYqx>27}QlN);4 zPj|S~v*M4ZT=UI7e$ekKeCC)hc=&Fvs&7JRkHkcX+^KKm7Ek4?UcR*L_G& z{k)fRK3n-pA3SFrzOMN3;j(8ue%O;dav=~3*Eh!bN*Zm9XzWi z=X|4=`-Prz>ptg;I`r7}Q&%15=6$Zd`$1iG4ys2lKGGFmIpP~1>1S@}<(!0=($lWX{Ae>~k2es7$&fA(GVlNbB& zdFi`(f|oAp)0f})doL$^mmmAogTsAD7jvlpX}IK)KKSWt?mWvM|MlgIee#FDT*2Y* zA^48NgP*!q@7b>uH>BmR+ zGW;){!^@n>jlSl_Ju9d5rJK3H&wKm-)K9+Q^E-gAd7gae*uF7#B-ywg)2_@fTKbl{Ws^61{Bv%YZ1z4PupeB})ux_Msdg)jbi@e3Y# zvG1w#>gww~yzt8x9ry-6Uhuis@p9h11&8zI5g&Ev@FTo(1E)Ir*zf%Aoc(yw$v$(6 zFI?urisxB%JQBXLp`Ha-|PE=Krew^6NVt`2!!{ z)HN6GKXa`v-uzS_UVPx?mwhMU)7M<7?>;oI^o5Im>cY)W`nqTIl~?!ST{z?&ZuwK6 zj`XFY-&H*M>APn*@Km4vaI1$WJ^Wtb?O7du$d`S1(#IUg7az>UN{`*@cL;8{=mM|# zP>=rR!G7QAg}3kc`pzHt?y2*zez~vkr;G(B<_FY#OZaI)E z`}smQb8H^u%|7$$86G^3Ug4eR@P)&(yzq%{-pjRo%7yzBU%53G=9(_@%7-`ck$*nW6;F9NZ@<3o zPv__@AL>7Jj$U~4?WFJYk{f-kbajp&R(ZjPPU^$Mf4Uhr|{GRh2FMQPZ zcZl~l?Wf!H3r}-Ehttl{(Rq2Gr~3jv`Gm(@tm^S`>M395PhQkFS9jHcmu}`qp75Xb z=%=1M9u2=Te2_3Hee%DvN)Uyw6^I*UF{N=xA{?N^RuC6|Eu0EXjd&b{>{`hWAu-}F1Jj{6Z_y17sEmAjc&xpoc@I?B6#{KC^Ydg@1~ zqmdu^kOO@6HGlF!XZ`T?ozC=>GkK?r{MtuPIr98Fyz0|i|Bro#i%xu`16}RIZ*`tO z?yso>-Rz?$-Q?nJ_1tUrn}2%fYrnkl6F&DA{q#MnkMHI}efI@@=ttMxdH&%+U-;Fb zpWGdH{0e9_?sX2@PeCeeBck)*Xo{;`wh3}7j_ujpNkN13e z)BdMceCbRdeLb5?_?`0|Z}WhkXMWMucl`M%hxYT4esIv6zv|(27C*V!J=4RSJ7>S| zbkdj3t2%hQ7xca9JKl8CPma_#Kf81MGY9ZEFCYB8?3`yj+yin7pZmZw{byhO@l;pt z@Wzi$=82EquW<6qdAYX#Tl?^m1HAQ@Pxax0htBfj_fjAI)xr0o{`BCZ`_uf(t8<>! zhXW5e!^eE$%O`rPqp$Znd~llw{+nax)zwEmc;!ScM&YK7Q>EaxGaH*>f zoN^@3>U~Hr=hagOKfdFq9v`QUa;pEXkNvCX`&NF@!3rr`I1xf3b!2Kt)JCB z!XLQZ4{yT>2mbt!FTWRf!7m@~1vu%ckN0q!2Y#!AH{5c|Pd@U`eBry}W1jr};*A#` z*X_s0J;qP{=Qw@Rlp{CI|dDj1NEl z^h{5D=m4kha%V2+1F!va^&KC0-_#!tI`PdsdS309v(xeHygt(}zQ`fH_$$}u&UBGFF5@@iLX4XLl6D+aUO2{@Z*#HaL|FT`pf4*I^ykq zgM&U+a|n+pR;){C%PCVdr|Im>R>cQ{3RW9fNj~vLa-wA!}rz`*I0q@WJ@SWdQ zx~S`3pp!ZFdk-)E`s2Imr@y}Zpga6{>0>`X>14lt<_<3B-E-#WPk8L-$GhIcYhK}; z`Z!N7ewq{ahJ30^e|&a*;iiYWc)$tIJg1(1e8-D__RT)b;j;HDQn^}!o% zIX36M%l}FG@>f6S)R#Z!=}tfR@sVTi)u$tV?lnGNg@-=w0Xolp@Tqg%dHQ_p`Ae&N zme2OXMQ8i?p$;9KqX*u6w@)stbis!%@#o z@PQtDz}uXf3-kA!Ui^SZef8XDc+yE8%(Z^{(_qaLTQ@v7Zj=@QuIl!%J^? z=>v}(;34OHf6X`fbKVLEzMj>QPq_J|9{hBbFZ#nx7xm4HdRBhYgMV^^r|)#4xBBML zJ>dL(dcXxI9`32#KJx(=UEu%GKDpsH9Qw(z+|y4zy4lZHx;@m#yxUKAbE^MK`{AR5 zy8M@~-F|+XW4ZQwCwKbEt9;OP>P81d)hg5=nN-ata!pn7w1;I=|E2_ zz2t%q@?;;JaxAxW^t(hS`nb2uDV$b$!I%H^lp}rU2#5W2!$E)hO4?g|fr|R*`{YYp2^Oc@{KjdEj<8aXlKYrlB zXZZL)2lKDaWp(LEUv=rU+UNd--#Pr;@9quxq>pEF%zy9YM^5SO{Z%;5Tj8HP)x(<} zZ#rjQ)P>KgkN)ad-G6kq&wD;kJ>-MF^6UPPKl|YIo^qK^0Y$b&lesV`^dTE69n z{`{hs_v*KksCNY`%W)8q^rL8yYJ**F8G0$`$K-@Pd(q=Tl|AZ zeK_5F-t$SW%%Qq;u-_cuK_7MLNOwAzQ+54L^UFCtsYg$G&2#Xm!$0`wU{#OraCz@O zr#C;~Hb;;D{P!Pz@=r(m<>aFM>K*rNKmS+n-B)x_A71s~frB4>rK`Nt$vr_&{?Y|L zefT1O>XpPkPC<-)a2dlV2;}`KmtN^raWy+;jBQ-~DkIK6&SZ9MFT_bafwH zc3%GUQTJQl`CyLp$B!QP<3WFQ>@&yw=8r!1>*G89QkPH8<1cS?zD`g6s)q-C|F6DtR(i{m+|$RL@)KVD@bq0hdgEX{q*!b1-^_1$}X@Ym0Kb4qvjjrqVs-qrUVKKk>^Jpm_w<@6}t6NmFJeU}q@ z!Hb`La=cJ=H@W3YrbmE8p{8isRIOw5|@BDUuntyX-em%n>kLtUh%mp0!(uIF? z)!)6358mqXh2L^WFTV4EKGysEl2i4}xAVSxuRkB@WUk~3Z@I#I)tAq5MGyV-mveQU zKdBBp`tim4^Y+27?}y&=OCR^7eiJ{x@#X7j_2iT<^25jJk2>_1N4WK${?eTe_~^@b zdfI38_l7yS3BP+|)>qelyyZzYa5?9ew3Xztujx;KfH@&vF0G;zJNdu|e$Q~zM_uz}o~-1S_u5_gmpl5Y%SU;o%T?!I zTIGQ5c;exld(=uV^97e@b?{Z+dAX8*`r#`#as`L_JN)XxBVT;;JXdoo2hPj0y87@_ zUGw2P|Kto$Id^a0hg)BK_{lGI>0rNn(wBd~tLt8n2l~?0etJH3P9OQupHB3^XLU~f z^PcU;Q!e;zHNW!jJ^kqbkMHU^C#P_jA3E?!j?|wkUU<`6U-!(1c*5Zx@GQrC;yeA| zFt_~o-Td;)e);`Xf8XKq-ZTF2;AF~4f{D9Xpet7$C9_8IW`EWm)Q+f0(PjpnDA9(nVAHB?j-&N=MY<|r>KjD)f_lbVa z?{wjpbNbWQetz-`e}3|xuD-*Er|>{`8hB{?Unl&dWEQp3_0z)W=tUx$zx8dRpm5AHKMs zkD;_I6&g+ApIixpy{N{@;9}J6-7qm-Fz!A&2s!E}h_W-}38IedXWW z`i`G|=D}+I=&T=Ha<%KjPxbND$K24HZt&rSueqE1;lr2S`t$KMT=aGyd3LYRNe=DP zM;-pykDtEuxv4K-J+I!Mv|hB*fv)mG7dps`c~H+j`Jf*>a*Gc?&5Js4sHYB{tgZ5eF3QqTz{&L|w9&pHkI=lLEFOTwIb-&27`SA>g zytvoR3m@R1o19HOr_ONE!S4dU@iB+`!>K<#@Kz5l`{k1F{Nj`Q6)y8SdFiJPzdxn> zb?X|det5wtUvxJghn@Fq-pqj<)4?;H&8_`-(NPXO>&IXC@xc!d{q&)SI^IwH%{QEK z;=b7Nrjt3~r@51Fxsg-zVjtXi(!o6;7v@2K-{J6m@|tt0Kflb8JgG+~c<3$va&Mm8 z5Aq0y{@>CKANuMmN51o)u6*V%J+1oqd*;4=a*PMQ?&s6?$%p!KEBAiKrVi!{e)agz zUpjfOF5l_kyE=0Gaqz(tAARt2Z}34KzQb+4Hm^1y&FM{*25J>(w_b0#nN=xcSJUiQJw2m8F|7eD2n|8nw_|9qq$ zy`AG5Kj4LZK@XEb?a$rAQyjPb$aHtFS zZ8+Tv_BjXdN&Do-IrFKmI&w!p_2h#ud|%af&RpB?_u9PDW7elLpDwG*fBM10H+kIc zrypMPK7j{LI`ChP)W?HQaM6pdbdhKN%cuK+ZgTEB{!<_K1-$M#c;M!%{d95P$(x+% z<2!%kW~C>d{DsqZI;kh0c*!5#%)jsE**X2>fZx93%O~%DhSz((!R>kWgO5J=*e7>y ztB?P;p7C=3smCXHdPPZ zsGPvVXa3O*Pr0SHXLGL}-RTK0Jv{5@9K7nvt!KH_A76gHODA>cd)|BbV&o4UTD^GClaMBeYKG92_ z=>WI9^IJbU(pTSHeO zH%I)&pU(Q=X%5_v&dVrx2M@iS$5TG+gTsElssA&-owMI}I+-u$ z<;)_edwc)zI5`WM4PJV>*YJ`bbMBsp zhyTvYIehSYR%hnQdAR5=2Xr&9{8HB(nNRzjr-R(<$45TNr#^I0U(Wc$zm=}|(Txvy z$+P$L*Ux?NTs?fuzZ}^oN9LLy_`?UkXS~h(m-^9xkMxi)IPj1IKGVxN-{FCe4-@xE zIKH>yOK4T^D ze1g+GNcT_aN;kTz!(V*dEAs01jt}0`5nlc1442h+`7|f`(#7w9K6JxReYwVmp78Jq zPC3xeJmYJh{PBZ7?lJQwFL20>zUImtzy-g)a)`hF@X|?+Am@<1D))feC@--cYfl9zkJ9y-Q6qr@QY6P(o-(Xt(@y8kDk?+KYGc@>PXP#Ei^pP|3CtuE~&mVl~=UILD<(?k& zbq;?0%nQDBSBLI+!f&O^r}#Ms7aVxtCAV^Dp6KN7Dm>Nk>^vRS(O+)nefKk*?y-ZO z@!=!BbldHNgU|9MzjUM<{o!yw{H~rn(h+`q^gV7rUEqd8UwHMSt2y)@K7PWgZ}dAyg9{NzZH&?R{4kjruS1v&-Av^Nxtw?SAX-0m-BJ~ zpH&^a+&A9K8@%R`9{Ry&m6P*$$}fKWSmQhYoRjmb_Njm0Gk@Upy!(!qJkr5^z#qOJ zbPI#yT_v^sLH~5_61D&1cs~o^hU+;H)=;rr`uJp(Mto?M+Urz8) zmk#Ec9{R(hF5dLyD}Pq~OF@GA9dh_3vasO zi2ag=eyL`CU^pi_I$Qd5` zPahBB1BY`@y_a8o^>JU(fj;!+gYR(C(|qVp4?Ov)o_z4#y>SsvI_rZcJ@t`4e(7hG z8@Z?3u8%tJdZve*s_XA!-{qPAbfE`7<=-6fkFU;o<_})@&YbcGPx|XaM?TAeT;T8T z6FleyxA*Gsg|75l>4!I;-E-yvK6C1v9M}(+{co!;CwS}scl75UJm!yXe8P*baw-q* zBl_d-J>BKQdv)}m-><_5mV-a!Dun;q(18+<4MMU4Fo4KY!uS*Zqc<`7v+u<-7dSgKqfK?Kzz4(}O;I zkrzJF%RVc==;9vT^?^q&;MK=@`oKpI_az?ht1GYenGgE&5l*ci)muYC5MZthFDqC0==^WAy8=tw7d zlyAP%*PQT69llK7-t%8wIZ#jj=wc4+ zXW+Kq>OTEgJ^1-3H+a%T4(*dSJoyEeK6JweUVZ6IH#*Q)?&)Xl*@cS+we6jM)KKSv*%RPYyAFX)kDEZ9ylj^HWAMc&xE1mcVzg#*8H(%VN`p|{1<^(=^ z(1{P;>(385&{-Y*<%*Ao@m9y2(@{Tpmvj8>hlf6V(+@Aa)i<~FrMr88p7`G zxL0oDMGv_6V*mH{$*;b2pNZOOCP-S{Lv@R={~`H2@D z?1zt!_|n&Td2{dJZ4T%TH{axezUss8J)Z6}=lDZ6@A0D_-jDf&uUvZO->gFizL-n% z;ol+f$&otdQh&P9!}F}~yZZ9uckMMkc)Abhr!W1?0i07O&-&6|T{`hsfA_(U@bKMt z{=-EdxamY!IOqkxe5t3tIi@3>=iecC z(Lo;IHYae?2R}IE3_kwg0jE0h0~h{u;osMI-M5+pd68rN-R%W=#R%;yyO%fIO)h=Jk6VW=99km+s7y0<&<9hkOTLMyqjCR)iHNd zKlyXc?=!r7aSl#CTjd^addeld_Tj@f?`Lk^KhE<5Z+_6#etyY`e)8m;ed@~x-gH$L zUgxcJc3$rFhmT(Ht1FN4_xR6$|H-HPx(C#gb1R>mlOOY{uJ`6%e|eT4@8tnMy!BNN zPW{z!-giE@hvY^*`pd;(deDnb@@O9Am{0oSjV~SLl>hQ&&U~kfyr}2zPv7~AFTKn) zp0oaI{NR@#yy;6Hb0ybS_bi@tkYoJtJ*}^E^yV-8ba#)aCvW<=Pt?DyK7Y)EXFB1@ zPdMoETpjxIg&+FTfnMeWKHr_Aw|SIHddLaA;enq{&YQE3;hlcT0p9Y7-#m|}zHsU9 z_k*tb@`r!w`!28Q;iryV$SJ(e<1J5gGv9LV{-7hDcKXP+ z6<_Dzr4N7P2TpwH;5+JdE7xVDYv-<`QI?2IN`{a7oa}G{A;%$z7 zmpgixM?N|a*B-ck_3XU;?gM$jLynw-Lw)xdJ*Lih)BU>s&YKg@?gKjEOHa6_539QL zfSWGzZvNyHFL}@x4!GTKC-reZ_%3hel@9U@mvi?2uAaQ%OK15sKXL&tKD#>jte(~T z+p~UhzI)GixXqJ%&~LThyz-4N_VY_V=Xts2llkyo9(;!be(&L@pT2yx4^I2s%bxAWgU<3S-}d<~mvsA+ z56=00wSW3@*M5GQFL{$6b=~Lk|1^9zZ`Rd!`EbrEm-fR0Hy`8@FMi08xshjm`6+*& z!h;_ibi{{`@WCaQa%Odoz6bS@JF9(smLK})qd#2s(*X|t;P<}1GtayC`qRlh{jTqF z>Y3jBpff!5*VjJp&8byCd80obAHv~z^*sBk!yoyPQ*$r(a;v_+^qkN9qN}{=Lm$uj z+2?*W=Y00wc|MstI>OE8>vWJW`sg=v2)F#G&)*-_bN~4J3NHJ0`>c34r@rrW{@OYI z(D!fe;o+D3<1eT1(BZQ4bihL$dA)0&dh#Ym>cZ!o`tAq0H7|VNkA16t^pGp()S(;S z;GrvB^20B4>Ky;=r!ODn7GL`4 zXRhVU+}j7QywO2k_~yLa!a*Q|{aMyyzfTN9jX9_2K0Y9&g&O4`1P+kGk^jez6aK`_yr7 zImZY04FBOd3(uT;=jrFXobnq_df~-i{N>Vqy6S6Q+-H0?2YAhA_|#X&vwYbHw>t7H ze{?jjboL!?ez+&$4(Qdx_dwKiV+KkMtOKEHS8ouh~IANp?p*PiLFo^yPGlb-6i z7w)RFTAla)rT1@Iozqtzy86ynb>MfO$va}_Dxo7ZoKguiJ@Ym<2{_vV(xud6?uJ*eZe5a4|=E^zm-5>bDix-^k z0rv)f^uG-U-T43yAK>!r_t!qU(odOcJ^`jfT9!4Mj!R3Cyn}5F3Q9mo3_S2s} zc+mwPxcKKhe&*F&nL9q>!*{+~@d4`r3z&{K^%5 z>7x(4=8?Wu-{sc5Az$j#)g00DCj9ba&iM<6++MdIAGoc2(MNwi&|4jS;g(zY^mm@_ zI~?Z4e9#+zD?jDJeWwop-Ou_tM;G7Ch1~L;PxQmrK7IHn2Uqc-16=Ui@4TFU?ws>< z-~)a1_v|~p_~5o_xz_De)LsWA9enO3*O&7(*X|8bY1Opf8z7C_wu8UdlOFj@z*_|AKv!! ze^=ies82_~TlAqfot#%64!q5uxzYbieew4mUi^HQi`6;$>4Pu4a)pO`%e>xI2VZ^R za{j1&^60!i@_5=l-_4Ep@}i#p@a@jyNjEyv0Z#SJk#lr0Z+w*}Jml7UyyZuZ?Qhpu2e8++!Gw1S0H@fr9J$GGS zIPu-RrRFecv|H^j%FXfSA5c!4s_w0zH&gnZ{+}Q`TE^^eVx-6 zfBMS3dVGS9Zgl)weR!>Mp+A50H~;eCUU*wQbEBT~@H%IooZ|7PI^Oe7Zs3ALfAhOK z&wuaf#&`YY&YbX_KYZEMrK5XaKD?)&+{&dq!0qn|I`LUu^Xj|(_`6rkiSuyl<9_1b z%qf1Kk^s&m7@A_HIBYpVoJAU5Z*B5^JInOV+@qw4F>cQ{5 z{qp1fqpN-D$$>e+lb`mP4}9>GH$Kr>fBBRbKATT?>13c+^*iE^FZC->2U5nI3ZRrSG2ULofXJ1D|^Ot0Rwcq8|N@>qigg)pL%2 zaN!|0^rA1H%(*@%^>aU&f8X(1?enb8Y41J5rw)ItaKl3{{ryhiFNeN~vhs~>&%MJIfGmrKubjGsKzujp9bP#31Q*|(cTZa7(*5n6 zJn#$7m+;WXIl9{qpZD%H_06mI{G)@sm?QTH|MB)a;+(wDQNFEk<3Znv1OKn_rQ@5P z;egLv;H@q^yL0A>E^>*Vd9%W;-f4B{ELSt1^2lGmAD;QQ`cO|hgCmy z;HMj$^rRyk{D9Xvdg<$#F7}6z zx9@av|KRPOp&LAK;P0HA9ibehSe)tQI^ZZd4F8Y{P{^9F>)EBQ6 zj@|0sk#qgjflChc;Rhe+$yd3gmlc2K^yeR4Jj(;0-4A~E^p$t|(FYH6#V7ftC*1hD zN7R)MI;lf{b?}4Zb2`IMU%bp2-s+kg{mid=c(3a7+5D-?2XieK`18|Tss|6f&A0jE zzxw)`6Zf9n(TVTy>(6g~*>4W;v5z18p^NwC4sX851zhU$!?S&OD*{Ntm)?{LeR)%?+q zk9@)h5BHe<{{Ap0bhV$KR{r5hU;5(-7hUA^TY040JjV~X@Rw_KF7T3yCP4{)4_TB_{Nvl`qI^Vy17r`G0%8;Peu3U%cejec`?PK|gx(Pk;X4B|qjwE!^?9uhU)0r~{_opIclG(KE}hJcd68rLtaOnxdE^f~ zaN=t}UEtIYAAQWf`tBDz%m*FyyN$Pd$^GGefpd+0_FL(1j_IV2T$^Xl=GQs-GG}vj z|EfQ84Uaid_e=Qkl3(-d{qx|dKi%fM(Ti{VqQ`tTPx1yY-{fJQhhIMVb{<|l`E365 zqc>gns^6-P+~_Aibn;%_oyXr?>1RKk_{%^3(^(%lJ<|y<&vI{G+*^F&o4N6Q&ZY0_ z=!2I!^pF>P=*e&R>BOJQbe2DT@uZ(Q!A~CW_WW8s=j6)0VE=9(eDK3D@y#6Y$$R?X zDUb9!ub=*OlovSgG{^AEF@5~L`5n>+F8kyP9`nL)e%OzPeA4AO{BZg1z4P>=ue|FA zw|fOXy6Hy`zL^L9%ZIswi>}Teg&R(K!mGZ#$TM8>>Al}kdg2MUXL;1e?-Sm9Hh-S^ zVP5I-7!Uf&jehhsmvTWjdA84aI+|B2KJeoYA0Jn^^p!7tC%>5o_&-;NKkgBJ>w|~) z`26a;zVO3kpB$)1-{}kemMgMt^=r3o^d#0QF zai^Eu$u->a=H4++bb<$ebHW#MD6jT;e^GyW@lRcT!8LufpU?m2hkAI}PcOXaX}_FU z@un-C+`IHLA9C(qQpYo2%oY8d_iVovzVGQrSN!qv-u#(kc;(8oJib&{POR=b^&Z-1 zPWg1#d;IwgpZ8YvoWsk0e9Q?QoOfTrqaQx%$q!u~!)eaH_Pko7l$PK){!zsVc>#MHwc;G*CDL?wajW0dC*M~38Pkj3D zNq^_?R9}9~ul@2UKjs{-iCezZGcWvckMYC&TKNmNXS&jzKKk%MuHiOU&a3OZJlGEx z|L7rS>iCY|QF*85+n(K%{ywsw4}7AJ{jZ(3@1AagN||xH(dC8rW4)al=Fx1%7eL>dcvHh~<&9i>; z1CM;dg_rN{7rM;%@XH+@{Lzn|e6){m=Kf9kT(tgZl^^HvmlO5ypd)7wYptPW9s-9pu4z_2g7P{NSRuee%Q~^_-jh z)!pgfoWHZw=L`MmVNU2kH~F&9dA`ae-#xpR_+TFRg9krXxaEs(bihOY@v~1(oR=4M z`S`Xz{I_3z-RJzCb>DZMA9R!p{=rE%^M#Lne8K0k`tcclY=|@lgd5@=gG!N?P zPe;$r!$o)b|C26oxi|Q&FP!@Q-*@_{M}Ih0{owTMoVs%kPC92k)x!sm-9B@G_r&2o zG#_|-cCV;I_jlEobAKPW@8nBf<&j_N$(0<^1Agb^L_N8C4Tn6MD|xdI9(u_uo!xs@ zed&p>di;k|9l50|9B|E*FYXcg>gzpyryuIc4gJln{c^6px#IK8^<}!!*Zr%mKJ>&_ zJ?H4-JzeG1y$hFIgnVb0TMQhnMei2S0prhM#_L;$@#Ye1nI-@`0ba zcj;`ux_CMVpMLtdmpsEkKf3E{j_9PWT;oq~=j7U)$$?z)f$vuOtGnWR*s2d4@SgTv z?%}YXu6W=p*Kz}gIdR_n>bvVlpLadu_o-((s3#9_x?k~wgFfa|?wvDVa7;h&q>Jxz z#1H(;r}>8qU%vQ`H=go`2i|h(-nQZ;&-n1kyy@dR{T|bI-oMV_Er0T$KR@UPC!O?D z$2s|MKk&T<6 zp|iZGD<62#!#;TVCYSKa>r?%9D?R0bE^y)L{*!aQ&`a*|mkYY#p&tHt*$)q%R(;K_ zysK*;-e2Q~H-FWK)87f^46m2Y&pzf>-pnf;@+^10P z@EI@9a;=Ws(Lo)#q@!m!!rQ+$_yE6qfY17<$4@!p4?btZhohdo$J6`szMD5Z`6wTF z(Dk8n`0#U|dcJ+K$N8i7Fr<+x7R^R0m5B26geeG9|@0Zmxr*Np_p1^bF z*0Xx>xi9eZp5O8XHy-@k;gSo!%LSbB1|NUr)V$*D*}Wx~@&S+c7vXRo9`E6hTYTxR zj=bB4AD!{QUmoeCF2C@=8z1@e`}HyW=4kcIAAR-HUk>@Np6}+EFYYb6m=k!+5&!h} zJD?8T;Bo)qC&zHvcMvc2_yV`w(L;Z~lYD}YU;N<%|MZgwzeDQs2Ojm{p`-gr{@oXN z>TkZ(l~?CH(+du~W?#PBFZc2#Z*cHYzpv^2wsp07@0>jF3m)~=qbFSW!t_2pGg;Nh1%;zxJ$2A_TOkw<>e!#O#DOAf5^=e+uSf*U`)=tn2_AN+Df zANr{WCtmVubu z%8PUIPp92}d7!(x^s(RS++FA4zv!9%vyPnd!Sj9R@Pv~-Qx|;Y<+k(kjJNwnJ^T5> zZ!6vCt`2;3hes~ug z*-Ae-;*Wk)zhB|f4}QA3mz|>@f8@(t(jRWR;U_=($c6bZ$IiP?^fM1u{XFB(ALq>r z{f^^JH@?_UZ~mAIdcf_RI{Y(d>e#0*J?Lh?d&GXa!_6n>=|(U6SN!N8xAN{D!pnR8 z)t&m<=eykFaadm~UF6A}@q@4CNN(}L!#wf%qCRw@pYv9A`N9vnysZwLaw)gY>rb~| zorBXk@A&|y`sPuNtn_i-e0%1LeXIVS`E=HMzl(InTYov{pJ%-1eWAbm3@^O-@0@(l z-MrA#e)H-aUT~Wi_3*<39ystcAMz$=2k8Ts{rEdaSANrl-|{U#aH_+9=ixIyaNsK+ zbfOO(tnzO^{PxoqKJ!68df-Pte$v%>xb>sI`LgQoJYLSz4Ia6pgMIE>eEr_g)4nhH zsP680`szI0dVDNedI|!bBaIx=t4Jh;Ir?f z_k1#Ma;WdS_VLAj{?Ktgm_xBea<<##Lo#}C1KlcEi@u07M zc(^~{GoN&qN50_g-vjQOAN7CVI&&=t@^2p1;UB!;tK(T8eBr`ZU3}z=|K`H;>`PDI z-DjTVK7cdXL|2`{@aX`$S&wgpY6P*+*~t`ARo+op(-O=jbgbd{Ga7 z`Qk6#=bX_+Ke+k(H67^8CpyU^-{s5v!S8o~p7M;p`;+eQs81LC?Zd}B%Maf0!-t=| znAa6ga}6(j@K@J+xcQ?GJba*+RegQk^M0TC%1`&59Pwd?+bZvLmv6qn>AUxE_)cf~ z;|q_va?4k%?{dUv=hau2pLp>5CVuMDg^%9rLs$Lj#Xq^@BcJ?T3J+cEcYnzXoN~?& z`E&2er@YAnpYXsRt}pR+k2$X{-96J&J$)v>pVf8m%7NVThhO%)U+||BpFFE0=c|5n zfD>Qm>1clV1)ukD^94WmA^+{;hd%1*k0(97cV2$z3Wt37j<0-r#-ERJWS;3wH}fyg za^*c7zT;<=8~D9H&j;u9rRM{ayKuW;z&J>OsJ!zVc8?R($VaZj3adeQM_;P!hZuj;@p2m1R? z-(5Yq@Llfk;2+)Kf9gEm_|i$=i4Q+|=>M~N@ICfypT2nMBOm78JXq-@Km3+Me(UQT z-d6YLaky5i{#JQ_4=;J6E8g(oWu+^;e6jyq{pEtLbh7UD@lRiP@jhtZyl?oRjy&=o zU;3LD``lOZOuyNmANb8@^Wpx1TRnQwj~?{qgL}iX^)UXv(^YQNxo)4oqwv;O9XXo1 z!mST|Q|@8!<-)V?aMQ*4>-ySf#n*kq4|6Do_`oe6_^SgC zo$2(k{=V~{p5{z$Jx`wS(aE#>k-qwvZ+V=0z`VBaQf6NU%dM^-FNlqMsK;Nhx+)zYo8pz%P)BFkw5vMzg##cU-X~*;7N{~?{m|300J&`!l#t19!mWo@Jfp8CS${X=?s z|E^~|J>%ovHD~bZd(nBnUwp*}PWKM|^l|U|4!3jW9X~kb(>d??YQK6bob1(M=!sgSz}N*XqB-3r;-v$4@xTJ^b|XY(E|3pWfzk)`M^2#`7Ya z^rpXhc&+x~g%7^;qNj5QqrN%8i|+RC_S2hBc))2stm?pJ&hVx?Jg@bE|5MNMMQ1ox z-_@a$_we&uUG?N%Zk(sT6%P9I9d5q|@?mveUAplFu6OZ($9H)3Rfmr9sXrcc#~)tz ziTQ!gc{t=yuK29KocKQPtsNhJ(c`A~@Y%7uXi>cOqwN%dE&{`m6exbJ-S_W>S$*Q|2!w{uo=ftUM;j#fJILtXiU z%Xj)te4gd{GCcCIdRE8Wn?E|MZ_e&4YZ=&-}wnH@eb? zF3!8J<=h;2))x=w)RS*HlSB8@yuau?dGlSK%!NF{MHhKC59ZT%efaBsa1Jke(g8pB z4P12dEI;%<%O`n+*BtM@^9wKczH@kZp8COOj;#9NXQcyO%#D?Ap3O18r@wT-?>=61 zz>DtiJ9pK7=isxC5A>32x>?N|eD>pGbzkYncXI(J-sYJv@U3vu$v$(;7vJRyE_#_u zbM8J;$9->(;g4tf$pwGZeH%adH}Cx1eK+rNvwCl( zmwSm$*X{G24qti?7eCa8)9;Tu_1dyOf`9H2d7-oW4j%O< z9&>mZZr|0zpYQO=pL233=kzv*bT=oS)u#`?=Xt)+PmbZBzxkvSADpM7TwC?q=^&?c z=9he{Z@=^OmQ(zl=d0X$zv_zzyz29rZq_%QGcTU$V1+{+KI&r*_@mC8Yd*niF5q^a zFXmZJ^re%&_MgOuPV#S69}hapE#3Vd*$QL%otHm3rKe}Pl7HVlJ5SeLKlEOQA z&oeyssY_QrSmBX7`JvZN7rg1AuD<4DwI5!1%&YVA1lOO=!DU|6!$+=n`)3~L$uBvz zPanAD5l;Eg*S+L-0uJZs2M-IbLyd^0a}bwA>dr(Dw2oYD;*Im6epIe5xv_2|t9deddD|LO-f{nVwa?{vgVF5q;$sXCwPci6gGrw-~~^j+TEk9fnaj`?$*U-;`Ix8_eB zJmBW*?{L^J4{*_$|K>o>_@%CA-_?;@_{@)U(|@|ct-p2ty`UdHJ6<=f^qM-ZzIzWJ z9o*}9^T&Sg<&CcJnG3k^#c$W&em<%LxAXk`*g5{2Blj$wezwnfb=`Y#z=;?B>e5$k z=X?1#*X~z&(AS*N3m^B1e497?oL5hOxpHs9iH~{Zn>zZ@iEieXzWn#zJkWu@@S0<} zqwjG(@Yg>1_I7w3ceBGz|?%tap_o4o9&G|70d{G}> z_XxhH^?}bE&`oabqc2===qn#|v6@@+`mVlwloLGRrGtFv!zXps@r;N4bTyy+kwbj> zx59^y{qXUD9`x4N{K7r^yJys+qj{GT{?U{;31cVfFAgS8(#> zZTr--&pC5xUiERFFXm5QzXSB3quk=FuiVO$T(}SUBOiG3)e0|N_~zN)9emeM-tdxd z_3-(VUhXCP@Y;RH$Gp*vzI>)XJl@k&f4ei!b=Q zzwnd;KH~|8`A`Q>I{WUud6s{9qOZKZOMm_0g~NXN!QVMP@>gEqmqYWQK7HVpBR>=>%P0Nq!<#<(xzF~{ORn%%$9cIn=km*EJm|~6 z^^ZRC;yfMYlV0k;10O!}E0^ZPdA!tzk1zO`AG~~r2M<1}gU4Asozs`z7k#HAALUD3 z{=3)YS$#S79$xt6LeA`m(>{L5jk$%7FYcL{GkU_!Cwh5LU+3YrA70P&bHDQ2N+0Lo z#7kdu=zhdQp6#RGRsQH}KOgb3-|quFeB={ce4sZ!{I0<*5A=aYAARZLK9Uo9$Uj_i zYaZa*@ufR`&DreZyqv&AUwT`Qs}Coh^pFSnP#+$3=@0kaz)dIm^6j;Kbn!cL+k5l- zrf2>5VqVRSeeiwkoId73T|D*w)_yv#p7E!L@A`O_TYqQsS0DB1B(J`!#}D_X`uLg) zI?>f!$T|La=;xUa>cb(gR(Ro|2j8cDe1ebOazPh(_16b~{rzqn=La6@!z1tV;XB;s zMIC8iDhaP;wkMH!O2Yt+mxl@Nf`pYd| zR`1=L_{$-_>R91d=Qy4C3HOKIt7~r5JsscquP*)ZqXV7jtggA$-|F7_T0eP~e>uXN zFXlvUA3oQYK94=S zZ{Vh{?{Z{b=`P>;;Q=?i=J2q7boQ*jy8KaZbq;U2GavB5@iKVH4L!Gzd5Cw9Ltk^-m5P+^rSN!?mzd$dAi`S zdX^u$s_VPFc$O1&`G*(YaLXV3?i>5)NGCb>o-Xbix#TZA>YHCYz;BM|=RDlb!|NP;-otGk;8kyhL$2}V z7ahO1&wl;+gs*vb9xnBr=Re=%1x|T`$9p-2UvAW+58Z!;o4@clXMXY1hfet8GkJP; z-u>(xzI>pYdhQjuaj(gRdiH&e5Byd<|n@&>~dg*U9H-69b^BzzA%(>qcd6XCW!{NJ} z(UDGYICm9)`a36I{G;DX`_-ibpZE@k_k5L0b&jgXPxm8!c*`;Tbb~`5b?D*TQ+@d2 z{>Mw5)xO8E-*-IpGjI0u)pvdA0uSBk`>lR+AHL>FKJ@e6KK1Eley^+VJe}p-K66Q5 z_~4aGIl)uD=n0SeQr#U6KH>YO_j1P{IWYHfMK5?>I!_n4=&v7K@bJrhVTDT_Jm81d zeJyV*9Qw!&Uh3FqJ?NY{H20r-kB5Hn^P6ApA$Sqy{&YDO2>1{vV>1353_~wd_{L@7~%pLuHr7Iof6mQ?Xhu3{% zZsgv2S6%+OZ{ebsc~sYVD?gp1BR}ZKH~jFyTOaS`&`MW&!H1_h=1acSbugj;YVlBzUxOXIPCXbe&44PUHJ=#m7eY;b=8vt z{P{0Wzv`o&_wH%<>8zhR>dLLTgNL4Y$emnX*Z*y+^KyufXL#gOA3W8EpN^~g-e2`B z*Z9*JKYH*TpWS)S^0s;}pK$X-uIz(Pef;3#kMruzoV?c8yx=4M^p{II+b5Us(34N* zQGfO5=^1Xm(i1;*yr++TaLJi^=0qQPp}RboXTJKo3LdNP^uo(~yyOp#nTI#&PG`L6 z=zdcdZvEtd5Afpeo^=n=iH_dOiQM{r8a{R5qx*T^%`u+xMK8IPA2{%X7f<~0^Ic!} zIKTdcW4GG(+%q5Gu;K^5{HSN1_~ssyC(m+jKRy4}|EyKc`0bg0bf+ty`9eSZ)a46Z z)VJUK;6Yz?_~hAl`H@q;^2t1{`0)b|_+Q6&x_ken@9=x3GaPbY4)Di|&+6a;F_deZT= zdic9f;lRf{^3hz-oj!7c58d_0LmuTtKfb_?$5S}vO+R?lktcq@fiIop{HVHfH79WD zH}R=2H}=D&4&L;3f72B%ec+cj`}yyF<&XFJ%bDD{*VJ=f{@fepMo#F&NB1xv@RUQp zCssL?FZYi8t3y9H`7Q@?MK68rr!PMC`%XXn#l9e;Y!$=uN0KC63E9`xa>T>Lic+ zw+|kC<cS^) z@R(mYkZby=e^x#G_yjMV;NpYt{Bdun>+dOg+s{}2(OKTrcV1rbn)9wMo%pAo)g16g z>Xck#jidi-(-hgU@t@oBrR^SATP?KYrG$_M0R6tAjs1e1}u6_<2@6-~BH5`wf0N z!0#TDGku(s*Xg5sgdT9H$6t9|;X7)j|2&5`{hY%KPdWIPzWCumFMe5lr?dIvyT2Rg zKp#5N!S~K;%J4)>+s0r|&=Z}c*s`pKF7_?rv!r7s=%0w;gq;v*g4m^|cW4PTwdpZ@mqkM8DH z&ftU(E-Ss@(%*d1$#?zakAHlHLx1|p(L?-ZUEkrgk8W_v1)ce6pS-JMpA`@FzJ-S# z=9!M_crO?HP}e^CnQwjM$T>N>slV^~dhd7D?;gJNm2>k?e|h~`eK^!JFLG%9;HRfP z?kV@F{CQ6YzNxPtKBof@{OaOCZ~2i&`pFC3Eim-li92Y>L<-+iFJ{l2@G`Z~u)eek6l z+)tg;=b>ly<-+fndb@p|;r4fddFQM8a%8Ub;h%gs=RJL$H$U*Z-{gZ2p6LfCKIYi{ ztsXz*883D8hf~h{ee@@NJ`O$kW0fPhpYzQR{?Uuy`r&_GKR&OX?KjtW`7ZB#@!fra zkNR}89}d3DrMynv=Pm3#Mz@7_PgXSc#j7rDYmUg5g!ocW=z_i&pNKFNdqR(0jl{feKtfm3f9nG&fa*xo55Ad$enGgQLX&;{W z_X@qpL;C3pI%LpMC>>%0|yJn744KB_bE zdk-g{=wrU*RX_Eehu6KrU;5BhfBL}dci=QX;Fd4===9t^`^^De+2@*-sa~eds$p^pP|ByvO@(=ipJteRJ4% z{?iYy)pvdHFgN_Qs;j>hJ~`qy-SFiboOFguU;g98FW>oSpZa*dj~D&<3n!n|(Z_x5 z9#YSo;I*p{KVIs3PiMZVGv|Q5@VOW8wO-a2E;%!g&YiW7KJem)x4iMq+}KAKeE3aY zd6z@@<(%$Tb?}f+{^^S^|GdZNZ~W-{u4nr4$$t4Zzx@5(xtmrz^p!h0!|OZU=s|z_ zx@YO?9xxZXzWkCOy5q@TedXn;^ZL-~OYi;u%>I0UU!T=E{y675J>`#H^j1$UyobZw z^G*KX#+zSo!lmC1r+WOvn;+)Re)=DGULN4%9~^u%ub$-_KKZ4SInbYf`oeh~4!*CR zXI*~#uD^N2-|sh`^o0Wtxu-k+aM9oDoILOuemd%-FC6B_d;Z9o^LTqN?{M)4PdTH9 zIWS+&sZTG@e8!Vc?kjnRSKjF6-f<2NJoJZ?e{edd9=>qt>pR}wn?wHbhu-wpm#)9d znLbv1=s_pv+^_P6mwedo_mDpK^*d~(FFx?vhX?)j)BmnIFRjkc`t-pMZ~3LabNrKI zb@9>{Z~N%K!gJP&hr0BTW8dlJ{*W6vGXMC~i9Y(fhupjLaUapaN)N00>cMpoANSvJ z&-(A4-;VeC`z|Lp?b8Uf}Y3?em@PaC){nCy(C4C*Sm=gE_Ge zZhi4|4uAg0HT?3p;_beG2R?dzYo8p_4?g>S=LbGtIk&W>dLMD_?RE_ML+p=4sYkwl^cGT2j}m?K_~MLxA)HTiGFy~ z&w2TxpWJ+`A3pfejjyYHbW$H)->rP5pZ(X>@m@bVT=ZSeeRmJ2gD+jx!(V^*$YXWg zcl4u+dN=J`t>%A^XTIwXKYzS;zrbbA=)iaV^|PN}bf*vh_-6k3tsXpA;a3+=_|)aQ z`sP%B&wM$ruAI|XuI60&eRHqj&mZ%P2i^I}e>%aVuQ@T_c+*2pJj)fG;5Ju$RfleV z=iq_Qe9N8raL?d_C)}R(qm!KQhfeZ4@#1YCJ>=Djul;zyV;`P$bIyDI(GzdKGjgFm zKJFEK^idZdD_^X1lMgzWNAp2{{NxmF z`}xM7S=WB~cb|Et3;*cq`8@wWw0hQ`FLEGv_Tz`Yy7C~;`tlDiyy2D$IpLe!UWQYB z&wQgV9QxSj_m%(h#&7T4kMyMno_ITt7aSkMNhfo~NA*|xVyn4RNH(l}3$A0>Iub%se4{+HpSKhDq z$mwOzGnev5Px{iu{RR)*R=nt{AAjlYJfEFcpPuT_+p{^FzRA71JD%nn4&U8xd@ygT zbM8xisv}44OF5;Rdi;<__|1!XgTr^e$unK;$6sGMzYRCP;NhcthfeZ?pXcl9s4KVd z;YUxnhNDZ zc=@Y79Q3BA`&3@k(-$svf;Hi%9{PR1gKcCE(+~0-MIsf0_CtUo2PhGt3 ztHTdI!^bcE@S?k1;$@EHhEDqFe^Xz%G4J})%Y5READz{4ztfX$@X~M9mmd1K&*bW~ zefa3(e!#!?CMJFZ!v=KhJQ%O$T`RqCUUnfsg9YUp={yH|N#$o-eQA$4hSb zZjNSs`+bK4E_~^tFW)ZeOD}pmFAs9#e$)p(_2D+>6PJGa@KYW4hWc>Gx$o{rzRQa_ zGH-IN9^ZWD`$`A(;G*~MzQc*1I(Xv?k9$!)y5nVz^`Cy3U%vT{C%pQdhLcbHlM{I5 z(VY5y#X}$ZnIAs8AJoNzPtKcXb3`}$+zWWX1;74u;Fta0%aggIyT0)9kq_n_4mzku zAG(@TIOM^6s1FzX{85)KbihYWixG?{e7no{&?`meR$J(e#(!!<^dn~Aw4|r>UhS7pU#_?5ACO;Ji0&K zUvSXPT$oq&)W?H<@ZbfHoH%E{^YVk2x#NSnc)Ca6$4^~-afyNWLz<&2(k3OC+z@7{$+J-K-dr(DS=J8Zc{aM53`)uAVS_$v?2^IIP9=YxKa z;i8NA=c~TznOC~2OBe6eaZVk)SAFSx(lcIkH$U{?CmeXwg}(aBA>QUwPWTR&{_r~Q zJ-+JGQQvRzFqiHjK7H;xojl8vy7+l^FFD6I^K4Gcm3{Q{>>h(huK9EoKKj@v*S_n= z7xy8Y?rC~h<(_~LgE4|P7IgZlJzZ`h}ve7isSbypqv z#K(Tmc+zi`tJAGtL*@W>HfR({}TKiyaT;4~L}(BHG%@EuNl%q5-l zp^N_XkSBV2rjI`SpdWqt?^)jHT)fgO2=% z*Zb4(@L%5GR>$1l{&^ya6$?r_4VkMnd}?UOV3z2^(v;F425 z!DHU|fzx$|MihOec)FY4|wI|I6nH~CkJv%KR)tD9-WsL zzQCuy^YRIY-)H;$U8cXfeCEF#+2_0akDu-ny7|r@{?dD;3*Pkf9Y1{Fw%>QW_-C%+ zb}#vk7kusud6f%3J4Z+NtbD@D2j}46Grjr9U+3Hh@?>80p^tlj9`tb@e)ka^{E@%O z+dh5OHAixcKi%z9A0N2gKXf-A@cO-wBl)7YdE}!y@-0XDsY9oeat0r~^5MIj($9DO ze^keNeyE4H{p!gNKkzV5{Fu7fe^Fok>EgRN@XS9sgHs*21tlB@(Z83bhKX7 zpZ@gnOkeorUw?S;{#8A^)bXBgaKkAV=F>iS<_fnubfuR%bmljIaFyVQ~v17C;ajI-8p*6=Y8*ehv%;M?i2d*(=(j#%dPKpf|vhrzpIbB z@VN)+r&TVj=8bQ1BzJJg9e(gQcN8A_(N`V3?57)CtMhbG2VZkS zFZK8er+Wc^{?VOJ^pYq3dk>HK-r>W`JnIXeI&^~5{*&s+5kB_AtG|7Gg3tZIM{`V9 z`}MQ`ss0m}`GbcqRz8?3_lLT0;UP!v4?Mhw+sbcs@yEkH{chs{?_Bw$Ki^+EXQjvQ z-tSiX=_kkZkaxK{?wmY0FAwIFKX`hNk9)wq<@uoc?h*Xx?*7Bqes$&CGynOekGZD1 zKCAxp@cU;~*ZlI?T+kVBc<3g7zSD{B_PK}XN)ONQ@)u9}a-L51;eQ!VeAI={d|tKB ze!9sA9(<&y?{vZIv3lOiJO1#gpi2`>4-U%vE#n@{}oJ3&YN=ucNV@NK1oJitwF^985-kIs1G3AcXm%8mZ^&HnaT zl28a4^z@@I7&`A#Mms_~_ZZ(I_xkve|uD=uU zrlarbO&!#CKgqY;<7+PQH9vAeKhNe+KhONOUw`M|buY;YzIgE2ce?Wl4?Z2_uXE;H zuHf`tAGv~uzH;oIfSaG{!1b>Fa>sA^(ucnA$qzpA2_L@ZpB~P8=BM2GZtmP)R{qi* zPCnuTuYLHcqd%PHiZ9Mt>4&det1CC&t8Vux9TU~<_k{m|HWIr;NI2an|#YH|LEoK6>}sf{E;)yc*_S} z=%=22ui>%Y_3XYdhj>`&>KTvKdGGO&Kj+|4pWgPvZ*J{}i|)SDK`zaY)qeA6&gI^F zd83DXKEw+?egE{{{jI;8?7n*s553F}e)8x0d|uU~&;6+XGM@SGz4_yV{L^Q5eznSp z`x_7Zy}xZgJ=LWv-{h3O`j`)Su*&;g_08$*!#8@;k8g5s)t?S@F?aH-AD`VD>c9=B z^K^%YPkeUXIeqvoPjciOy!3ZoA2`)F7xDrxoaVrN~*nE2q7Q#j$EJ00Psm-`Gpc~Vb))T1vRbjIUDxIOD* zHHW)>{LzOW?oso>Z@=4k(}!++UDdbWy&!M!(}OlSlt8e4g2-MM}9n;5BC6F zrtTBJbNuqVt-kw=E<676M;E#CT|K$MM{eMv&)4cYM@Kr*?z`DXK75BCKYg5&3x3iWZo0`CzHmLHi+=j--rKJ({_5j} zxBG+t-pi+)!K)q|<_`|%?epGh&iDbB{C|kYYK6-)yvz;DZ;w6G-8201tFQNR;678&dp_f5pWhGqsV^@F z;n4>V{O#w5xt2foklfqD}3aG`^7w|e_K5{@cV!_ z|L}9(vpmT!zwoiri$8pW0}u7xTlAxgd(Is4lfHDp=P7=4fM@sKD$jB+&(6V1AAR|$ zA3pqb&p5A-XL*uS_oE!rW9CXe?Ndii=tdXs`E6d{gxfr>^pX3+p5;tF%oYEf$D59D z&`lona^v3c;`9MK0peayMM z@E>3At@NS49MDxh&4d2%(SzS~Jc~b`=F#e2fLrdJvpVm-gp;3t>qCF|)c4*#eWp(Q zc3ZcuyVWdiKLtJ-E)R zd(vt?@uiQIp7H|+-1LCo+|pML)caFk{>Z_cH@fjpzukE_fBM5uCwZmwak$li%d`6wKR!FhKXvi@RbBYu<*Rf2kXtjixAox{f8qPxclQ}R?3?HL1-Cxx@f}V)=%_yZoTH0Xj^Til&VD~Ut4Bxu z_y`aD=EMGnba-kt=hiR1#~Yrb-s7b%{QP;}J~`6Ivz%Jx5r6(Ur@kD>p?+3+%9Vb; z^Os)wyoQ&)p7DkQ@ALNaK@RET{}JvvzRR8O@H*$-g8yfI^oP%W{NOrlzkc-OH{SHb zQy)2#BmS!6cgboVR(;*~XFaP`cIzn zzdLV^@^2 z`O=>sazih^yC;2D7asoW3m2SpP*2Y2$_IYS4V?O#8~T_x`oN*D_tPJI^tX>raN;4i zp6TTt!3Tc1fRoPjp@&?!e?0REKY5*XJmX^ycDaDt3J*QZ5g+A^F6KcWIGr~q@WJig zu<9#U?g#g|6@NVV=^VXJ2S2{(W4`DtNAQ|sIdNa`A8-20qxbG{c+CU6-s34Bc+gQ@ zed(wko}Sg^51#HDJnWY@`EYKh9~^Q!?^pHUvY!upG7tPV&*oMgIPjKB&vM{Bf2Mz) z>Fu2U?g=>PD-UqsOE2d=yHDw?9{HAG*>BPW#lOpZRnDIB%t+dRO&>SG~vH z?^e9wk}LYr^Jn|@lV7=!KRDoi?HpbB=2>nI+J`?}>dWiL_R-bc>C0dBSNqj5XLPix zt3UkexDWYFC%PWi$9{go1qc58;Rjs&lY8^!JH7la>7%b)(#13V;F)v8SAOHAFC27n zZ_QlLk?;7(A>a7RFZUE3>FjsIT;fRwxzW!vec{vpIiKX$T;t_FfQQcZ)5(0mM-P0h ze1H!xzaQpCe=A@0l^gHP>y8iHzVnwK{G_+@`niv-c*;3F@TI2}4t?>KV}8-eJi&{n z{L#gEc;KVIJbQ*yUg>TA)w@kM`Iakn_&)i-?LA%T^i`|7dx^t$QUD*t|;%(d?)?Wd=G=G}g}c{b1b z;!THDU3{GLOn-IpREN%gtD_&>_Nz-z=iqXV&-8MS$uXb(?wN-lg9lyYn}7J4L;jq0 ze&&(R>X=98x+~<$l(q7rb!bkEi$MSYQ5nHV@{IuKM6%KfK;g9(09!_Q%Vde2?#L zr8_<8{-f`5rw=|>_33FpAJlQL$&-5c*ymoO3!UiiUh=FD{LUW@p6bi1d7-l$m}B!} zKIDlX&eKco;gS#c7~Jq$ydE0s4y{D6Y>gea(>O4L92sfSRYX0Ehzm;z0LVb1gvC_qP`SCj`AAIzC zXMbWvaKozq8Mxv|fEEXU?dF0RUp^ZLT~t?%BO z4>;vj{@q7sozqvnr{43$obZ+3c&zs8d(yM_e7f(w@A#Q(`7mdEa{u6?u6)2HAMp9E z4<2$Mm%e+C{|+yFa$?Tt3a|6#PksCOB&T@Ek9zj;lV9f1KIi02PWUEYzSBh>@iHIy z@licK;O9Mj@@hVu|D1mIn@jqb7x_>Re}2oE{OW^0pVj3Xea(%1eDU5K=ttibetMcy zIadE<@RUdW_`pB9;6)$z4;=XD510JtYvrrwFX5WMfAXLYU*Mthr_S?(&+ZG)zT>ew zCpYGr&(7oJe%GHq@+wbw)73sc;EN9&_R9^O?4uVw_$L?6sV_hH;OV<(``oMe!DT;R z?UMt#*e|d0NB4vDb`QaApZs}-+r5If`ufR<+~T9o+%GroJG$cKS+40!7ydrQXSKQ) z&EQ|NB<^y_YNc;ma4_;etaR^pQI{ z>e){p z&vL>qxYXr4{ms3)=F5FAk8sMVb8^iec+J1>@+Hsk@WcLhb~4xlbME%rks&;qSh24nI1>?fEnubWz8g*oUXO<^c{X9(-4iU-0vh&-CM)I{L`Z zad^!SzH$uT_x5?lTmHP4SNPmte6Z^0{H{J-=*55cxVeE(zSO0|UG?DRn-yO5@TM1^ z+MAhvCK#es#|1MHj33awM1Pnp-^amlONpp`#UEeDHSv$fdmK zLw9=d&wKmS;fLQdzVibfy0~9_r^~=0Cqz`{YqQb@1dH+;osLdOD}i^x0g)r5?Z4r3)X-jeT_Z6@GP`r=RcM z(*a&O$&DQGgHCY61&{ADXLRGId2>!aoQD@q`kA*KPdTOoTwnSwukg^te)9^K?|AE@ zuJ>@dck#iKpLpRTm(IxXLtVJt6Z)ugl1_Z2lledIJ6v)h5AFwj z-9zfwx2oe_#NRpht2uU_@8%GGIh9*{=wg+3e$iDvK88yU=plFT@{ONxnjd)Zr5|0* zEuOxsiy!^;r#~O@!S5yf^5wj9`oZm9c2BvF^!IEo;kREu-{Fx@b@;Kvho{wi-1l7` z_+*t^y2=9|uRCwQ_j17>{pNo6GrWA1Gj-%()z9yw{L`8K{81M!_4)I*diwdU554#+ zxBP_9y+nWKYIJ-l)< zb>$Nr@To&b=kTBp-u!bv!0j1+E1&Q+H*zBP`oM*c`NGqRr+skPua6wTk1rl{flq%q zGcWW}&+m$Rfv$3~%8PyS&;NN}sOvj^@*@xMnP)!1`A}bZwBJ0?L0vxJPe-dhaxSm> zxR2DQr~8RNr{VH`^(-Im557#F?Vmj9Mjz++M@Kj>>dQCh%o*M2;+)@M`teEb`A;7_ z;h`7b;kXWue9*}}z~j4m$DO0E`_11c(@%Km0pIuPc&0!9@%LR{`mN6E>$`m6qn>-3 zKl2>@+(U99$Mldl@9pQ??0Y!$f?u88cRtbIJwi`DyGJHZ^C&NPdZs@e_$CMN(1q^u zf`{DVfvN~#9$v3`mx(DHv7yIGnn>o^7 zj`6bZDIEOcvpJwYK6J%{?sS!xc^(dY%^N*En@7IsKl22y-yin?epm7GdnPw@b538l z@ZbmD^yCYCa!p@8(eW@GtCbG&sIPqRo6hQZRu9kL)ulT;2fde5I>-y2>eAgR&vdgN zUV6)sIpC-BeA?l`(>Xd{^c{Zw;p?8IkKC$bpZg3B`J|KF(u1#_`RyL#lfLv)7he9$ zy*|FfpY5lM z9Ox&9>dUo0SDmLje)g$D54`B)yBxTW)csw3I-3)HJkxQvAHJDS_3`B+UF~;oSn=1- z{RTH4{J<9u{pezj^rfFX9>&A(#jK+*ANi&)pY{1%J^1AZ9{9}x9rZWIazrP(*v|)f z_g#PIL%9~Yx_n3KdugHyh?jd#Ub8q{9jCrE7 z`gqw-H@>=GAJa>2oX5jlcuzOEB)a9Kj74tA9R)z^GgRgg2ywR<=cDbP!y$L-%zgIr!|%*>`kNno=?kyA&ePL(_2?kq_*vx@fBwlO9P&+X z^T8+nm>)RQgWvvxc*-ZAoRe!gH4pUFhY#?XPrUS_m;JBx=O|6DbqusN7z=t;+{J_UK^&hIk2djI+c|IPspAP06PdTAGzkG+2ZgRn2`JVTL+*y5h zKjDYJ`vSk`aO-1k`0Jb%KIh@I;;#;U%nKdu2pio4oMJd-tTg z(v!aUstXq$bn_h!xl&I~K8Kqgmpyw=SNDN?oBwd}SAXZ-hkTYFdGl-z%nkqKjy~$Z zv%+f*>7gF}bc5TR(pkQoa}WCN{^Ylu(8qgvsHe}=MP8i8S5Eb%tGe*Z2_5a@>rNN> zvQHiLz30EW51r?qT+108a66|iU+HGQKIY1t$rXHbpflgC&huSPUzeHu5yMi9=_w}zTp>L=>gxjeB%fH^62jl^={kmet^$D_)pr$ zr`0q5p5gX)gFfy9^B_<9(AAvqg+6e4Z+_g{c=CZx{%&v{UjCX}xadYNIirvMa%_di zyxA{ze1cO>;B#L7~o>~x>_;OE0l`e)|U_on%!3p{+GH^154`eBXL*8$9(em*)z3?niWBOR-#+=ZVo^Ux2zkSa8?tYO=d5|x2KyQB2lV9?1 z{=fhJnNvKymm}x-&TqUft3y9L;N`P9whu3Q=;u4Ubar3y?Ww+pt#q?ruHZ4>ay)h zEk`>&)Ta}i>do(bGoSk4>GuFnx?R_gZ*ukAdvl|&eDTGK$M4R;4X1td_1?U$&hZI; ze$&$`kLsB(c;WGUR((07H{Noy+Xt8WbcD})e)~O=ea z%e(J%oO-F}{&WB6Pj|RI)4@4B+}rrk$!eZG^MP-^Tjdmgxr39w_?jp6;lx{RiMyJ-`pV;8s@-@SwB%PLBEQnXh=`wc@Kkz0H@teA9n- z&V7TQ{L3Bu`tb!nb?Bi#{bwHZS@k#1`niAMQpf$~J^!q9kt4dkuMZvko~SqHk?!8p z6)rsGiEsKlPnV1O(@##-p|5)UrjvZ)t-gH1#aH>{<8A%v2#5D{nR7umb1P4LcQ4S% z+`%{RGxg!ZQ?B*ni)Z`rm1A=!Kl;MwJKf|GF22xLUhL=JNXIAIw zB>(g^ugcOcF-SC&w$%_x>!JNw*|Ka5q ze002zw>o&~&wu{#Q$4!F?cQ)sF4VuOpLvnb-Fvv*Q{L<29Npx=Ilh{Axszx8tnkto zPx|m*ANt_se)H_S{Kz-I_(>nQ=_eoNn1A$xi$8FCc3;3PhgSN_fw@qhUht_;Cpp8D zj`;G;eR+|u_Bls4y3&cy>b-W}e!j~go%qdvdYC&p;zxIV%z^Lp(C023`oQBH|L}B= zdghCM^n`;h=k>8q9k}#?!+AL63}1EObk6S&f8;{G@Q0hu`0&MfzIjg{y7?}bE1tfq zE06L=C;6a@+~7wSddV$5baGx!;G`Fx`l<^je23weGko0ZzMFUVhWUmMFZle9;CE6V z=lM%7`oqm%x~Kz}x#t6&^~VzqetI^4&cUNUymWP6&>L>&>EJ!QaKOno_X-^Nnj7c& zK?ixp15UX31-BJHbPX*pDnZ{`Lr`01i9|D02gUvjLz_v)G>tM~TlLq|O6Aph<;bL^boZ@SXa`-AxF z%h#{H|K95Uk%P(CclVMy`rKECuD-)>Zs@z(Pj@*mx4ZB3Hb45=cRBW%XW!+*{YBT+ zIsDBneDuYaUXPu#-?Mu5%bz;*_e>{#$}PY6DPQWkKjcjx{y4`!`IRg4Pj~&ihlg)+ zXYTl_E*$O$`JpRb_|r>${M7MYUhw0;x!L)Ehx-l>InbAW_RELd`c6kUe%0r5t9|mM z4xRADe|2uR!snbE;S0B1>n|^Gz{eN+)uA(ey>|`|tNTZO=<+7qbes6-g)g7zuD{I07)J8$mPu^(PJ zxeO0I&A)y8qnG>5eEOY)g zjV|;!j}M%_t7|U3=aK z4{o^Nwhw;#&3nbOzVwiP`1mJh-@|GDx1PN`h2c-2u~9^q5hGr!ewP7dL=f9gta zxbUW@x#z!o(|2=9XZeszzZ3FG2lbra<;3qVTzrOuZ+N&j&8hEyt4A+B>H~-S4sPew z^BxX9(c8U7Z~lL+zd3-{`(J&3*Xp}D<(GMM&VKsR#d~#~qa)t%^BdloJO1KDFM0B8 zuJmGWEAlKY2CR{C18m{F-^RpYHg2uRgxMdsbgR_~`HZSw71P zyylfY^niyia&G?2iGAv>`sgcv>c|UzasWSG>ZxOX)Z-tY)a47l_Pg&qo4c#<>Px?; z-h1}lJ>#DD_l&vK-~7v`)j7VJE9c}Bz8~S>Cp=$zzgyK;4^DjP#dmqMPe1vBM_&0r z#}Dj^rbU@ zSNh;%pLvrn{OL|7_~f2{=EOX~v+D&;csD5(g*_`tUZvLu6Cw<_xdQT5IGOzT5SKYJl^TR&(COr1ZFWd*6H_!Iz zs~9vJRJJ)$9H*E zUry!R@9$H3AGX5Df9KrG&hcCR=z%Za_46Gb=jbZ`R{7L#o<9z+xmZ1`54Rk8Z!YjN zr||6R&_N#gV!pkH-|v;V<_llx1();i@WFTMkMPK=`_w$}S?mILF20+mU48d}e&(7_ zbe3~Itc>Yq$U7bBOE0+fqsPt<_3)s#9LR_7@agNk`u5RLKe>a;Id%AhhdJPv z@A|{%**!St{WzX<#7{2af$Xo=1hHf;Gg+% zKj%<~=`E-9#*1(E@pYbulYVkSXZ7K-UykTtzxBSn;Nc$iJLlOx_~gpHWj^Sn zuX_+*y2^$3@am)PRrv5S$MVVd$M&hOFW%O6kV>BlF3Z^$X1oP$d~@qvqu&dV8o z>aW3*j_S%GpZHIAb>&ZeKEq>`|6O0W{oOz(ecWI4v48H95BvEgpK@*f;gtvY=xVO? za}VN0AN%pKx)11VzJ14sesIVQJ?JhM&d=QPnQrjIX)g5T6MpLI2fuTl|M%ZNeBq-r zU-59xe5}s%hn_dR$B$2brzRiY;ePHsyuPbvzUTp$zWACebHg{!@&Y&C=q`_bN92)D zc+<;yc<6+$yubyodkSuU7s4gqp6TJe{p#Y!AO6`d@AlE%>ORKPe)`E9pS;JzeA0zq zaKj^a?kDwj{(I)L^ZM(fKAo>SZywAaeC|Iu_zSPqK7Gxdx$q1Rz2K3T^YHk+l?(j5 zmplCN^LK*x^w0->edI`g_{|d?;IPV%oLq!kedp!D@7G=X{0`CsFFfJL(|w?>`O(*V zc=0g@e9#AO{?m<5@T%v&qmS?K(~-`zzI^yDXX^b-7kKDkHMelm(LA~Dra$f%I?B2I z@{0$()TO)o%lxSWKfU3?!+CyvkEi$g@&!M*)Hi=tdeBo{e!=fvmJ>SYCpVtemlt}# zOJ6xxmp=N*H(lg~4)UTupYg%ZoWTW;=bQ9&KjRITXL&PMa{j*a@(qu^{NNK_^2#Uu zCT_gH)Mw^SKe=+xPoLDKFMRG7xx<5=@(%}J`9cT2m{WD=>h}Upyy118FY@HPzV?|9 z{rCy|>Yb&le8NQ!{^L&%yy?eZzYE^W$8ml1m4AHju<~1fb>+nQHSkY=@o}CH z`q0CDL|6RjNgw^)EAZ0?Zu{u4!zr(PcF(&P^pjus%@O@PJ8wSeOdohW<0&tAnoIrp ztS&z85Buc+emc=b9rJE3=sw@i^ZL9?KmOs57aiy(|L{#b@X8Au_PZD5fe!qz|14bm zT*GJk;K5ri=68Mc#m71O-T%JxmA>-n_Y5!hCtu{loH>WTys8VIxi(kwgg?ISF*xXL zUgXa_KBS*M?iIPfpWpDyy*}{4O&>W@k8kct{PlNU4(SH>%!4{`m{)!2>KtF>(|-N< z>vw`r_Ti~M9pwuTb?~+XX%@cg`y4y!5@A1LgN*BE7Eic~7JH8X2`SRVm!h;uF zd~v_vMOXJ5z0@;*`ti?PdrxnDfaW53n++x(C_Ii)uqbn>0we!skjf8xRyeth*m3dhe@{?kXU;l@{9`HsJP z3LbvbUwyfNi$3l%@A+KJpH)IdE^l=e>EbpAYJpe|_l12YJKOeshjDot)#_^pOtm`nytIU((An z{GR!R$9enVR39Ga>7oul;WJ-!u>ZsGj}H3FAHDIBYk26do^x_a4|>wq?-acD^AAsb z<=1?h7x#;~RQDu)w?jwybFavye8?eO@Y0V@bk)b-3vlWK5C84s58e1lFLOvwedUxc zd@z6dp2nL#@bVu{y2H0Sr=B|UK^J}H0T1=)#!vU7`JoFR^_64Ke7z4BUDTC7`{01v z+)n)ZxYy*KpYp0Np7gX&AFF-%(VdU@>nDfuPA5L&YoAqqR=Vh~A0OnF?|g;lvGY%@ z`kS+FyyqtJVDDWA61c&;D+}7cO~|C#!QiesG&Jb?9={KKB~@ zc*-NZ@Z$#`|MgXORp0#1_k2)Cefe{rs|&w6-aphwuH{Vb;H9^DvCn;|Ki>4C3!eO@ zn^lg@3IElXPv1|%?Hrxt-Re6Z=pfg=<3%_8Jkv|wUiSyyaC?TA zPx`wDCVzeK_B`_jKfmtt2OfRD_TD_GBR~4PFW{$_`p&^`J*vL^s*Ar|`3^UH?g{hh zK3Cs8Iemh2)!*-w^UlFB&*MdB&wQnqyu!;j_3@Q6dZ_35Ih=Hq2RSoO-pjM~yz{rM ztJNIv>$3Oi!eO<~{K*S__~l;nJol+b2RO}#`gF6O9^Sj(+&B2pgKl#A5I=e64_)oU z$9*hcmz|d%e)8Sl537B0#pm67&v?igo#a8j=pz4eY9D;&9X>qdQ4Z)yzpHSW_tmra z=1hJ5z{^Ma?9RghC;#}Q?(9oP`SA=lztxv}b?L!RJiXTsAAb1#fXf{4363A}^WOdB zJX~`9uKlwQJge_=Nnd}DIA=ee`Z%u--f|5uKI-w!dpyjA{Hr66^mCs$CvW=88(rj3 zZq&ugy!fszfANKzA8^TwxySP%ed%`4vpngezkJyT_hILDt3ICTua5e11}9zQhu`o| zzRp?Q2P+(}t=^kA_k{0wowOf6cb&oKHm~x9um1FQ zPCY!#5ntsRe|+AASN)m4uYLEsA&>ggTb}u#FI-l7@=<@QT*(Qa_RtkB?^oaHrJg!; zHV<@A=c@B^;~c#7QpY^0BM4mqPtK->uJn_Mge&)?RATMz8bHxJ={o!^$xOecEZ@&lj z>mwKT!^20H?nQHbQXf3rhpYE;=DdBEeaDZU@<^wz?VG;h4F|k*gM-d+ z=tm#;<&AH2JF7oje|o0>dCz?LGQQK>KDf>8ar^a!d-hXzwcjc?^1u7eM|#sAFZIly zee|RUALu40aQg24a-ME*(ZM|5BSgn z4t43{Jp6J;7e484zd48FZ~EM|sw206 zzTjiOXT014`qC9Xb=^-^{^QSI_n`0c0ykWq?e~nY_jHzX-yidb-sY2T`p}pE{Gb!w zbfmKtetDoD9q8n~)t?@4(!+jy;Ge7cl%pMAedjY?^6x&SpZau#Q|{=6_pkcFF9&jC z9_i-3o4DL-_?}nSJ}dv>l}mq5!9kB%S8n+#4}9mJ6&~{}2mJNjGd$|)!%z3>b^Q3J zzVpuMhcA9~Fjw%pKj?8(AN#)bY(C&|{;KbCU@rKsj_>N==XX|asdHpMw_^OMqIfC0f$v=I}JN)W7@0@+k!J|H3>4UfL^5H)5 zUSEEEN*{gbAZPUAr#|YNcRKQ0J-*Tl5BI_U>8_KktdbxM!?gyaw;^d{0iq%(kap~U zNj0eVnZ!Be*131i=xjBsoy!x6)dg8}_`J=nO?l=3ayGQlg z^~K-1y81bXk6fs)pL+rxKH+b_^Y)vk`84;|`Q|?KPA~qz!ymrmcNK5G$s?Zn%Afx7 z=l<|r9rv8Sw?EZ~@2hunWA5p|2jAg^OZ{CPa{(W{=}T{Y zz3EDyFYS|a@A|+?SM}BLZqD`Pzg)|KefRanUk=O@9S++^clSGe@P{8?=iL*&%eix_ z`uMB}EJ-qi;$=lFmRo#fuSbM6cM;iS9s^njZlzU$8)INd|);!9`xm~(p56;6HSi5~iT zw;wP4)b~^eF6TVWy?Y0L@A#Q-b@ipET*#So>V3*b_t(t%^Z}o@o%3CPb>)M;f7>sA ze1dEB{iLUJaM6k1&gsXW!_K>h_yebR_ln<9_YxfX(bIG4N-ufb^>;7A=?Om_&6oQ6 zKU4=!_XwWHqmR1y(@}kR=w%Mo)dwGQ;Jka;e(!$o@V^U}bMVTu+`}us?tAmfFFL{N z2_If^t)Kbj7o2{#`FFLb7-d(T|Bhn>equIT~4`JkhI^tK-^e!*?7 z=ubzw;J@MlKOgY0AAak2d#AJW@T%*)JmKe@`IHCekHaTF^tf%^Iltq0$q}98!_z$n zAD_($oci)pe&{JzH{rnxe&5xVU-j{U(>nk7tH1ki*KhTt2Vd-`AAROIJmdr(eet5R zdrKX9>aU($;4kO$dlqhW>Eb?KeOF%{^Q!)7`}D_?e$K0JogeZhhZog@kB{=9-X8eO ziFI?&4?NAiIguB+k~cc*D~$rttHOOE)WF1_qmM<0I&cz2$Ubm5166Nmors6%Jx z)uR(V&9{7*SLfCD{+!;PaLJn|zH(1by6{;)y75U}dA4pI_%Fx$>O&9tmQ!;?XZ!h~ z51rh5E8gnCZCxF?Ge2FnOblYjdC2#0t6d8dPW%02Ydx!n^!{50Ho%kmAa()+2IhR*Y_lvsf$rJze!`uG(gclF` zdwvOzdVXi{gN0hjxmPx{I+zSi}3 zk6MRQUiDMo@2`1s4lnr4J>B8JL(b`}o^x_0pK?xr=is7)JkmjbK7Rk_zkj~lFOP7_ z6Ce0Ycf8gAP+k1sF=y)Hrw;w?qYK~RJgGkY>0l1cmv=bi(cHmpZs4&WPk!L3bo-}vGF)6cw_ zYr1{@=f8jENFDj$3mklu3w_j;OLgeWSN+V9KJu+TJ$+Y4UT(szk8|?pogdC$cJ5tI zIoiF`3okmuM<>4NuMb_#hq~^2{=#R@?Ss$nlDzTtYdGm_?({SF^uD{PWK`oOIXUy8d|3SwFh+QQqjne|e@aJs$E)KfcQczHocq zcaEQY=9l{N;T<3EbiogQ{CxNByL%HpPx$fIA8-D<@9@N*PLJ`ED>_?;$35iy`_A3; zG&k_511~)G(GOnz=q5ME)&J7dy+&8()T4uY(mH+3pL@f6sxK$zX4Utyr*$}-Hy?26 zXPsZ>Mqa(k`>v1kbe2DPFt>21=Sdg-%duRq`q)P&`9ANvdE*5PdejC5B%|>BfsG`H!FPd z?;McicDfrH^^y3mooAx%YjA zgAR1rt$Wg$pXNkAzQKRrd3w{$+{5o(U-Kg;`ui?7v!8tP-+6xMC#P~Jr{)!IJe*UH zZ}d{fJDtq&N(b|E-Mc>YR7W4a%cJ#&&dZ&3I_f9SzMCWOyE^v6!B=`;w-0{n_NgnM z^zrvPp61hjd7!(xczEZ79G`>--hHS%4c&(cRbAl+~x@{y3J~-swK67dg>4>lWbkRp$xwVfz>d7x1t zH;yui&*=kc}AT)MaPbHCHsI-Ky+k>B|0OAmhP$5(pG1zyuf`{-l;oAfeg z{DGgo{DO-g_W6ELJv@Au2lGN-yuH(d&+=y-Zo10ps;~P94(oJ;^Q!&$${*bN;!F3* zLmtdK-2B1|ZhiP97uNBC^KUrKH{Q;}uRq@K^UsrSGtYQCFQ4@L9gdTpbfCBU1rBqy z+i$+`m0wT$=?p(y`p5x&>Er(O?%enK^O3G}!^=JFexr|b`p$KH?Ni5G*-uycy9emw z{CvVmclF@JhhCGfdT>6Z2c4$gzVnIBa_KvL?Ngu6`09UK-^-r(%Z)tAoqqP4GyBxX z7p}AF!!f_x=RR;Rnp5@pgx{{NzU~ix{OP-T&e2z0d7t?(*Yxs)UmZHbfhXPcISLQm z;Wa1T^_2&@+voT4uzKz(zPRt+_8ktmgJrls@p&fuHu7 z7yLc>B9~KV>+0bJhx6*;&%e8Pz(r4W?2}V?)$_#PeWR{(aN9?Z zPd@Ieqd))o?wwxprJpQGQ?`=-8o4i33g$NXCNZa@C|@9@i;zI5aZ9CG;5IXQzH zKRRBu&+m&lRu3-v(%ZdCU;Fv0K0emv4?aBk0FQfD-khVCb^FYTJozq{_|cPY^6j35 zN8PjZF-PW|9_sVoKHqOUuO7YhecyLEHwSpQU+ss_JAe5Ghd%J}13r0{D?XVU{;1ea@>-Z~ovThj`8>o$-23C%pMbx7k-tteZEuogKqS+kIskn z!%rXgfPM7#oiBJ>mlONVo%-@1m)7aVU-j_ASN`exW8i=4UEcU456;Uuecemy>JOKv z@9LXd_mg$F@ljuYxb%@zefW41A3m8ob>xNaa?NLTorhoEoHHMf^^-HX;j?q@CHVM2 z2mSO{kKX*0BX#9NZp^_=xcKY5@A}IvU+7>Se8Mvht}kEdYcBW~TfX$SkN$MG&L?>2MF;o#`}osYe(34mr2|~}%C~u^zy0z@FLftg zKFFhdmCoOrSI&IkNd$n`g`XWoqRt?AH3xTE`0pH@l*cjEC+DlZ>08 z)uE@pa!Ch$)lpv_=;qAAUZcr;~H=$cO#<@d-YUC!L!(>4`V}%!}{x2Zwh$n?HKU^<91Cg}-$8 z(RY2}c3vNO(H~yl>HevD)+ave{G3ny@i7N-#4q<2{LZcV)0tm%ppV~I^=2RQ!#8}L zlVAJrqz`=NSB}(!i!Z*bXP^ATX+IzFc23Tn=dGNXP(TRb^4i0`BB$?eg9TZeR;%FT|D99Kiu}41A60YUhH=t$%(wtn_lwH zH##4N+kSlEr#oKm1-$78CqDEuPxLY$@Zu>ae8LZI_kep3ZaVTuT{%;Se(>m{K3(9E z=bb)u*WbP1JKgBRXMVg?2M_(>^j&>C;E_A{o%>o{>#x1*|9`yr3O_&9<)d8lM?L!J z=lrU_{Llj*_3?RZzw`3p9R76lq_=yO&z|%5*Bro4fBf)qpLo{?KD^X3fApazoaP=6 z_4L(GJ?DIf(>mYy8r7;qxZF)qx8yIsDi@bCw7kE$as{v4x`*(TNB$qgi%#xEe#oJH zaz%IhS9R!SuJ~Y1@tW)Qd-7BM;P8}xeyYn?b5B>e=mIz2P$AetG5# zJnHyelrKJ-C%ousuH;^y=XBwN@9N;gH+}gcSNOxn2e{3hI`Hw09&o^Gp3F79Jn6RM z0iW}J@8s8a?{vcxe{*OKtn-7e@=r(od!+iiXM z@ANa8_YGd^z@x9+_g)z&&-+0jAt|asa;%R2@=kB(;Z(3W>Z$K=(ODkkResf@kGk-xM_>Hi57wQh zA3fwx?vBGJZ}yvi_o+En2M+z!RnOemk3SxCf|K6nkq&U$x5LX9^{vArhwyyv9R003 z$N!i1Id8t?*WB3$mt4{bA3CXzw>h?79@N+OCOp?Y=`6?QMjqkdr@7Eyp6EsgI(s)4 zc$!D~mlL?1_s)O#J?YP9&skUg+)w01p6`3ocj7Sr_D{U(!y||8D|+hBC;Iq~ z7eCE``B$ILbiv>KGI_wSj&pG13!j{*%U^S)p8YHR_^aL?y5eUZ`J<2T@SCd-)p1X+ z-X~7HY4}r>1o|LxaE|u*VXZ)i@CJ_qL4)SU^_4#%d-_;WjInxg>e&Hn# z_VW!6Jpb<;-0}dYxx$ZM^nw#lJj|E*F?Y`6$zSU;?{M3Pk9&y!|EGhxatM$7%FUb` zb10|uwayRx)ujV|`r2>(`#=BvGtbV$OF#9^6(6Raa!NlruwNbbz}Nco(et!*xl|9n zqrT(m_s@Pf@$el!`^G&e#EM|Z9lqdcZk=<#>c>Ai&{e+8$GiIbE?01w8#=7^%O^b6 z=_3c`mOgUgocg}ccjw{J2TnT5i~jPq!)rg@_R+(4_2HrKb9M02kDv6TlYGboHo z^qr3G2l<6lzTwlCZt9wQd7&4*@wf`dQ&081>%01H9_aVxEmvi2Ir-!+nefbOj&!Inm@uZJArz0NjOF6e6 z9y)sWT|S+|Q%>cBPv#8X9d7*j@9zTo(b;$Y>!%)E^mE=heDyUKepl7Sm+w;_Irn|m zmp5}wcYf(ZKlS9-J;Q&x`3|o<%L5vu+9@9;V2>70K0f^lca>RE&;K4uo$O|3mBj3Jz(uXhB`3eVp^ugPG zDnIh2uKQ6v`pFUBt(!OXt<#rI=84YM?S~70^R5mZos(BQ<>{cj*at7&&96M*#aH=q z@5`b6a%`OszN-(1edgJIy7K{kdhh{nbLT#$3!KjR{yrV>YP0O?4AGW(+Qr{K6(7oyLpm#eD$M0pXnt>f2xCre8{c3&f&u^ysh(DJ$><_ zGvDEpZ@RcY?3XY2)H@459?qF>{_@+r>F55`htG0{m-=+0v-^lI`0$wy&hu4{=hMBR zp8cM1IwuGE@(ph5?h*X$GlzV_&v$z0Yv0dw=ZCrC2mW;C_wUZ(w|nQ4eUl&m-D|Ty ze|?8*Ri6&>EFbpq+j+X+10Oxi13u;fUr*opp}v0R9&dRuM~~r`AAb8i#RGr3>aUOA zeR;)8eRZtk2cLKI&R@CUhyI@G^HYxLMSr;Xqn>_v$fx*kkU&f$Ttd9@&Z9N6oDq(hDv;=xje<;Gm;@ za(599>+0g^zShSa!TW!CQAf_`iU)t`p$?z<`Wilb@WY3W>iQj#BkOSRQC+!oPF;NY z3g_4Gm@j#w2fe0#@`)!Lp8Cmyed@cX)lpww>|f!7(^LNBmcI0aTR-`8fALfP@TIeL zeBiQ=Uh?x8PJbuSm(TL4|55wZqr>Fqe&DBj;JEW}s!K=T58CJN8To zsGhvrFIV)U3qAQ|Zt#HT|afL%NafSPft9}%ML%Ey%;I(@93Ik6uP_2r#z{E!pt@?o8S zc*!Mw|IcqczlM*_^u$-b=>6J$`zAkgLO;CWpLOuWgAV4`{`>m6zvL8t`O$~I>eHDX z=EHr#KmM-z@yi_GBggu?m*DV}tMApD{plp{a-*+zbH#r+^p{6{@$z)eyZp<6`-%?q z#oL_1j}P4Zab6B)F5jes`J@}YBL=0Fad!;>%c(~m#qi68Ikqo42idfM-)pFF|g{(zTXcv<(v z?=l?pkQ@5z>t3~A-psq4dWYZqKh%fc=Ei>h!lAGG&Uf=72Yiuh`|zd%KF<3tH*_&) z`nrGR$vOSqoA6%5bM@5Ux;py6B|kH-d{Rdre$!p9J?SAY?p3(;cfZN0b@}9%^LWug ze?G`PUDYu+-sRnWAP4xW1DE~!y0`V0GyKhm9O8YPFZjr_b@}1HJn~O|^zoeM`AJW6 zPCvfu<37aib2#;OOS_xw1X`0>krIOzosUY>Z%jr&c1b0bG`NoW4x@jHC#(L=uEhJNzoJN|N^4;*sf ze!v4?e&}n?>~mgyd8Hd2;e?MKJAQD=xAW!;A2{fY4;*yE2cA_Q{^4QH<&q!z>Epgu z*M4=~2k_v@KXtvEGrp>i?`?S9N7m(zKlI}NLFaZ)c{Vrd;7t$rF<<#6kLt^_xu*mD z@ivdX>+2m~zc={O#k~P1TyXlXuln}$iSFtt2;@W+!se3v7*3z=-tJZVywedM=kPX<>hRaQ`;%XMkW;_ge8d+Hy2%gx zzN_mUZgb>*rr%?EI_QZ9e)Q!FUCo=k%b|CE;z2h&)z=RWxu%zQzIvxKKW9$hbU)}r z5B1F_JpA&zf|q{I^IcBihr`pnuk?l2{lG`Qx*zF?FQ3f;J?YC=-{HjzU%ts1U-@NT zY9-4|?GZKYi45j^A*}0lso)9?UfyZ^|d%CaLF|s zbTLPCz)Mc}pg;ZOR6q0caqv(FZ|~;GeDY5Y=wm*elN&tLaSrc^TYlhnAHnPQ$$9!X zH`nEoZu-+xAM>M*d|suK{&Hm=%(whGZy&woM<02F&r=TR`KA7Jq$~gB>0SHOpE}{; zDUZ`{>nGJSU&p=k%Q`*ju-XUjL+{Sde9#$Q`Jx}4@uVl8?WY$V;ed~S<{nQx+#A-- zi=4=r{&4fl9N-~W?#YRRf96zfgdh3g~dfxG!=kznL@Zik{-{nL- zJo(@pzpTqKpYY-%9M2)gLc8urA+t$))e^2YT73 zo+q66;{&hXUpURB`(EDk_oS0PbXoD@>%?X5=sES1C%DZ8Ja|tX=x$vu;OB?F`do%r zp6TP>{M~oB`KT^@^l)#@{J|w>>X{4Y`9eqcgn6OA`taFr4$TuEtkWC69lyy(KmF;% z7j?Wl&mTNLRo}X&`H~;+{K3;Y9`w?m@9@dF^X5n&IOWy-L{GVq2j}#Y8-3{XHJ<9w zO`hgGOdt0XesV!qdC~`Nyy1mUU-;!!PT`~%z4fOLe)P8gBA)Is_?)LVTqo_n>uFs+ z^;ZW!-|2=wUEWvEe!Sq**SUGW(VhQ%q7$F3n;&)Ps~=wG*u82UfBB%_Lp=EOt9SM3 zV$RR|&L`*Lbl%*VbGY3vayD_|Nk2H~r9b@6n-hM(V;xRB1iLlJKn43%+0&j z>Ec}-_YNQMQ-}WW`!0X-Xdd{YE}!A!gFMku-th7?U-tRkq>H-d@FuU`%YKy`o6Eee)gFQ`>dO5`|)-U$csFhTRG654sh~;&+5^e z4(?Mv^Iub(7U!}U6JvmZYE)uosFX!gZ}&UDgGo>qPFagUf^ zbK~BB*M5EJ{%hce8~^!TKRozFcevHTUw+_+PoMj6zZ z0JnP1dtc$$J)QUcd+YG&1JBRCAN4%$>Ad}Pri&cV!@YwK-1gm6cl9)9^n%;H0k8UU z0~cN4Q*Zh$U+xccV!wXs(g7a%-r=^N4(3>0b0jzV(#LoAjl9w2wLbip6Zg-@zWY6r zOa0x;c)&|P{^(~;;Dd**>hn=<=)xa$<;{IyU0r(VYn@K=O<%sK=e&E-ec>Hmx_QbY z-JScHp7c2B9d7!0THo!1UtRb8x4!cmZogO7<>W{E@%N55|M>2_IdD#Y^Tr>(e5}v( zkv{s#8~x;Jb>6xh?AGDJ^F!L5F!DsohA3na&fgkjC|H`d-RmVB^ z6g^h@;zM7)$%Q)h!;LRL=6-W4AE))hlTPsYuAaQ&Z=U2xKJlWX{q&{_9&~k2I>%2q z=%Jr;^!Xbfc=3nRJuOFklUMz{!z*umrJuRp^_6eusLvPoIDPPZ?Yw)%ch7fy zhvT7l=ic}3NiTf(pR}+z%5ts=quOG;ZH~Y!C~Efh_8D3!3Qrq_&YDB z?iaj$e~v%jyyG$FRQ~mIUwGmN$6R-g&-j}&_nmpbS6_V02Yu)vPx`F*;fp_C<4H$PIOQ7;dE}el zXZ`i13;mylPIBZNech+@m7A#t{`8`+cRtIp=kIW=p5|S>^VZ?P-?|*y@80Fh?!4by zK0A+(ywTgeizi&}EqM4KpZv7X{K97r^o5Vk`r-vI{Boy`bNZS`KJ$%k`g-EUfBWE~ zqrA8;@TQl1S$A*posRm*2mEr1?`^)(0}j5q@0{~{fG>W0F+cLXs&7C4>A^QRKeZnZ zPdNAsFPtZxGne+ukACK0w}18ID}HjJ{yZ=L^y4Rde53Yq3@SH)z=SRc=UxEKYjSLt9RBDe|^k7ALYjP$Ij``SM~LCo=&TC_L)QT zqMm-c{hsoUC!Od9x2L*z!i@(%%%gjZU+UW@U-r>mUihWIKJum>|Kywg=E9tL%8|b( z)m!PK9$b9C>$^PQZ*KhELtlR3ug=fv-1dYE4t~&sUUYz4PTX(q7j^LGzy3G%l@B=R z?cSCnB(!|!Py+~(L*KIFz6;49yBHc#eGPVJ``KmPBj zAN}~xclVHe>eCVKonCOzLr(e2Z}@zdL+`74^!(eqT&e?~`tYbPuij4v&g?~}@JnvtRmVDC%q^YWTNA%^eVupD=yMn!>*k2Aa?A%ga*m$xI;S6f)p7suNgmYm zqzgQFm@oLP%Y(U>Q~mhKKldVk;WuCKn-}}x^_?!BD?RyZKJisYA9~6?J=K4%9^Cl2 z|KPTM-+u4z0X*b_&gS3!<~v;a$hmX$_s%cBTQjHT*ExQ`i-&c3(91r$*$2N|$l2^~ zUhI<>`{9-+KA2zl;qb(VK6HP`2fmvx`<%DF+OHqK^u^OV{_?1=zeDh#AO3LRD<9_U zG#u7{_x{pT9{D4e=1q>^fe&u$>UdWVF7@~Ym;1zgse`Y3@Fcver+Zz_Jk`hVy#08X zYx?sC9{AeX-v?B|mgh$9MAqk2=oL?L$2I0w3Mv#{A2h?{Lq3 z@*ux_H7E8z)Sqv=cf8!=_{b-{@ioWpEjjlcZga+W-{HVhANtsDuFQpeIzREtn|1#3 z%l+c~LHt)w=k)Wg4!&{=&ui!Dr;i*t&qw<6hu(P8m#*;27oX+G+|XSf_)1sx%!%I- zzdLe@zxsSq*Ha$($6tDwSGZO>(Vbp!{pdTs^tIo2KEO{;^8^<@@W_Fuxu6p~>hMb) zeLU$zA3n&v=hTt@&huTJ`=J9oaPuEey6Zz{@BHPPywQc8zI&H*_4ReX+=P?={MoI$ zSEtTreOI3z=7nzR!Y@biVI3cJ;peM+MBS;cI`GIXpXCByINdk;!67erU&YtDck?g* zzQgCqC;aetP9ON?5H9)Q<4JgS&!e917yk0alYXA^C5Pq}UhfChhu405)uErc@VhPt z?lFFN#~VNW>4lg1q6^;E?W3pqa60GvMZD-?ov(DiY#-jccf9$Nbh0AGqvuj?VI7-Ms5F&(T$0 z=nnT|{M{Gy!Q0b$edz%gz0I$Ahlg)?%K=}_CmjC1rYqfdc=k?{2 z`$O*N1_#~rl{@?Csm`ts9n3kra;nc!`)_+Xuijbf^w6L0AN#H@Jw5HGFWlyvZ+P;H z|L#Zn$)UdRI}fM%_WR+y9Pwf1!aX2g`oV2p@HvgYC*6IgpStE-U%BD0zIf{=Pv(wp z>N-bP=jmkKJmF&w<&ocibsmwIxEhyLpM-Ea@8OFy~5 zk1yWovhvfsm>=Ke`nG-W%9Z@u|D%0!2nYVV?|h^$zn#Z}@6OAoeW%rAU>Fr4OAZ54`C^FLTbPRo@Szzg*FsE(h(CCpxP~2Y&lq zF(2^H`&d1=>1v(7-u3$$9(gu5`pO@_{66y0yL*>D`19p%=;S;e`q0Dt&pAhs7d`oDpLKHs2Y>CO zA3ymH9~^MO@0>b*r<^k%^ne2{K6xI*Q$KS?S9S5A7vAPTj`fj4dHP---`ywh!YLol z!{h!m4{{8LC*JgiTW-t={rnD?clW8>$Rm7og3nyg)BY7-_3$?@@dbv|O=o_=ufDnPd`WkG+-v&K z%{^w_9P$Gnb*}Z+rIYu+;ed+{@-=e@ z*J?aR+e5${B(jPzj)x%3J^yeeo>f=p6 zKFP;@{q4t(U;5FBp7QV9_v*-(Tv*qKzi_J$54`3VZtHM8){joU(~mxM)8A7*^|6jW z9pUqo|2_JH{@bz>1J>6gM&z!-huR8Eq$NOjX;n2riS^v^Lyy0}e(*Ztx`FPcN zzaw&CzdHKzNgn*}!fn6#Q%}z1ML+Xo-r$uB>%YTEFZZK7$cG&JyTkm#BbWB8V;#R; zKY4W?4>-*Sf7OEnK6Us*KlS9yy~iiH;6MI+=Zk!+&p$bVLr(ZkUpVNlKi%ntr+vQb z?;PCl@xi@jozD21ANf!pZ}ZA0`J$(FI^sn?zF3zN{`gK`_30(Q`j~Tg;a49o-{nkS ze$nT-+~MOKKh2kS`1r~f?|3`sJAIso(>Xl&dJ-<{-r@5O7k&7v|9N#zd&1}b_|&@J zN&Wb)zVGkaFHdxo8}}%j`0_zN@9M1T%7Ld`@4m|e-Qd(;U-@y5;P3Z#>gRq|*LQrK zQ`bA3bDh5ON>@DZ<1=%|M>@Ih;GqXzo_yt#y1sj-gIvIg|5LcU@80Q(hdJV}-0}ln zc+|D-oP6PlpL^7IIQR_zP57>RnlpIlY@d6A&+5pP`xZa?s7Fuw(ADpFr5B{q>bgdctMDK5~XHUi#~Uhn&f^cRViQ z;qMAO@uQ#q=2LFfQP+OC;)B0O=;HSjKmGYHH|m=U`{a$^=EFO@azZaU9mN|CPkQhj ze)_=+pE}l^d#pab^q>zua_-#|54t+9AN^12BNucwFZP*lb>xiS`oQPA9KgkYeDz!5 zpo=`yPae&$J`bJaGr!d1E1Z1Xox{@{$OXIy?bFwJ_XZqtW$x%9NAST5A3yZ$fx?9Qn#AL`&U?>p+zS$9OpJUe}kO@?fvFZI{12rgI@A)9{B;ET$)?{;iVrxZ)|K9@IZKgq57 z_QQjhd&K>7Qcn0u2fC{RKmKydU;X(ZUwFZ(K3s69OHb$NVcz(F|L5@Y@lEgYqo4f9 zKfmCX6FR6n_j@-_`n}edUi#5j-tlzb(2L*nk~{m%DIMs~Z+O(xk3Zh&<~hH6hsW=% zcX@>eUvtMlI?69Ut@F|SjVIml^E>38;}`$jTka>{@uNT8@q>e(p76>8Uh3crKR@7y zn}2Y~hy8NH7yUiyO`n(Yg}1!xXFlPVgVj0j{Nxi~=xa{l-krCuznq#c@A3h^T;gk< zt-Fut=RTl|x_sjUo#^}&PX4Uk>EgV)zR$eS6EA(_P@k*noAcc}-Qc2!KJYjvXZrHP z@00U*>BCRD$uoTNPIvv}L!P|D%OCu$>nnGD&)oxj!Jlv5SNh05e%A4zleyDZPVj`2 z4(dw%zB{`6V#=a)R{FE?_Jhk9~j z&dj5n(O(YuDyQxT_2Gw){(h(6k`wu%tG@hsjUU`^d-t91p7f9lIQWRK`J~%fb@^ky z?K2m0f(QQep}&5fc);iB9G&T54(RtGeBM3HgFbZSCtvizgU)<$Z#pMu=7XNj*+&O; z<=uIGz3WG3eWxDk(!)9Z`N|*r)PaLO^y7p4^OH{M@KG+|l|yyRi#l}B4<6^`7jAQp zk38MwH+^nFB%pl?!~~ zFb`7~`{k0Z-sO@`>Y5LEpod&JPe=UuDvy`(fq(aIT_4ZYcYW!AmvuUsm*>veM|b&h zP9Hir$1gg%FVwT&K7N`D{pg7YJ^a09A3fYZa%Mgr>1IBx%LQF#9eIF*?tFs>KD^DV z^Zdk1j@%E<<4Z}!UrU!L-To^lPh=W3txc*qYva%5dS zIj5_8il1=M7Z13;*MItnH@*MQ7vJeT=fykRbk+|}IN7oC5b>#sbed(nReC7mSdN{AoUG?>IUVctT ze>sB}KlSnCvv)qdR!@#T^zPm;Z|+C_(G^d15PZpqg6lqvUi0QVT=>f+Ty)|i zf4$Sgy{r#E_^98f@X0Yec;W5dlatjs{NSXs{^k%L{+bIpl23K$NpCsO-#NeM=0n}j z;q#q-=F(itEgk8>zd6tHM<@H$kvqKkO%MF&1P@>7V;x^Qt51J@ou}81|2!|Zbdfjt zpqq2*nFsjzJ?*4H{6@ucUMaKl9}d87kB^}X#JedJai^uv=r*5TwQ9_qP= z%@5t_<@ala17119!`xlB&v|p|yu8aF9Ogpa@y1tuIPuaCF8Vr8Py5Z6dide3-f=wK zpK$sPr*nA8E8Ot-?)^{o=?|}Y{oQx^;pZH^cKh&@3%QhM>vCd#_4VDlIW`w~%QZde z};8(>FBg2= z?O#3V1ScHM^AlcA{>jrz_2`6`eRQ|Z$9az4at#lE?8gUhIsX<8dO2^t_B``Qp5K&hgXynMe5TQ&)d_)7Lrk?p~4yI=d$(e!i)X z4_)+!=S%+bO<%tF`&55?;Dtw@Irrv9Kj+oEt-qYPZ|ETBr|mOm_{)QO?rnV4cb;!> z%a4Bi!^eI)$pL-UrTgD-nlIl!w9ZfX-3xS+S5N!ogg$b}FW=`nefaP#9PpZB-`!_Z z59jz{F7(I49C-5ElP}J@KlIo4cR1<3dUuY#`ryIO&+Ug-A3DKRq;9 zKH*nSp50G$hueO5^x>a=a^v0nIESac@w};B zgYNQ4FM7j6SNrjTo4@7@PV;0g>BoP$qZdEag;$Q~=3c^64)u56`A#3WFVn?7{P30! zc;!id^CPFbde=Sq0zbay#5uV5x}1A5S>wF9-4^ z_xi{MU9InM^PRrt3m^Ge?Wd!;I&9rM!|lABt50{n!#{D-nGbX}KX7@{(|y6W$s4Yt zaJvub0w=xUQr~wx=>?y2^6{fS?pb>Iz45eP4xEFZ@A9#$tFQfETc^Y7-Q2*Bk9$nc z=mLj&`0`m_y!faN|E}uq-k>+W?iW7u4Ilp6r=RcY;%n~Ahdy+ZTl?vuFaPwV+nlfK zc+pQieonk_(#4aG{P0d^c=<2?>dBKQo_sT}as;>YAL4-@zuS{czYPPk758J@K<{?)Xd>a|yqG z&dCkm)R!M~gpc1ldf8`w7&m|7rx68ea)A5KEjQU^PX~O&g6x@@Of89F6gT7 zbvQrwuNS)5SSF;dpAl@ARP?zV@4+zn$Zs{i}87=KU!b>cIy$ z9`c|MedKo6M?E_7iGKX`q?f$Pm;HRD!&!aoGiP*kPpT)6zT-g$b?N5Z_xiYJ@bOMx zIim}_vyS@obU*7uxBL3af%zsozn=!?g<>d38k z=lF*&T<$Bp@UR~qxaC3KorB*~j`(vtbfc60{FDoMlqcWua^HTcuKoC0mmfYJwx52U z_&Kl7Y5SeSOI_d9@y-Xibnmzy_)bsf)TJvwe5VKgd*IWLzv}ay4{|Q|>iI6eeEL=& zbAZRpwfi1_IPj&T`uNDP^KxzuW=@=wPdQW9-!1C$2Tyr%Uf$hfbd)1?+$;LS>3(s3 z>ZK1oNp3MU_(Q`hgw zLG|H>TR!nKfAH8ZZ+OXzeezCMc-R;Dnoh=1%_LQy&k!<;s2GJU&zB^ZbN+^{yU%=EuBP z*H2wI@wTp>`-xue5x+-#m23O(kz>5*KwtRiM^Ec=4xc*s=_B9#@`T?#;(k;ge)Z%9 zPk!O&X-+)lOYS`VzskJ12lz(^IA&h>0UuoQVIJLM@Zv#l-{n@G-3N0YJ@qqp<{KX8 z^!2WveA3-J-0;wmK5|13_2p6@`Jf}b^p|&j%Y%Hl|MZ=dGR{h}T zkNegAPB;7H3V*qRM?bvf3ZBdQ!mGZgd60MW2fsO{*RGzq@GiIT>I;{5=k$@MPt}!c z=lDh^=jcio_381YdiHylQ}yNJx&8chjt{fH+_(qnZrwXx{D9Z}FHicJLpb@M4xTH# z>UzQ>m*$g>_Ti(y@A}J&yzzz4f9lT%yy289c=h|;Idy*aKI^%M;4zu2Nzx7cHTLDIp@3j^pjV0%_CfszdH2zoc{cR=eTwF_2HNN?Dm;A_Xm9P&gm~Nc+(pW_~^|yd_Cm@Z~4`Kg8&%m*LgaKD&C_YB_fsACSDr@Q|2a4)LkJU{sF2?rhBo6hM6r+)g- z*>^dGU#{KD_L+D3@JX)BhdIL6{Q@8V?6;0De)`L`eR#lSZupBoz38kjJZ&{-?fled+ysPda!y zCr@(oe&FYiI`V`kJ>b^gJxCYl>AvejA9{Pj&mXwuj*jxj2leb%$9K7+mwN_I{qVNm z{ly3KNUw+Zc=v?QeW8x~!2LoGeVua;@CQG6_oTZVSy$hazUF{0_|VBZedOO9ulUl# zcX`5tF7iSL{?ONV`GAiOczef(U-ZF)&T@jcxiMdO;HfVE;PT!5Gv|=r_RFdFx9NqK zxv{P;z2LTQcOHKI@bq+!PH?-&;JL4!eDPh5_)J&+>ceMq|5!bKz+pe0_`o42?rZ(| zHS5cZI&k92SN!dx+Y0CI$!~S^lOsI+uHYxX^6FhqudA=F^Yr}N_tlfW&fBl9T=0v2 z?k)4GzWuM&r{{6+*4;zS(}Q1f<{stKt`5EVrmsAy2dBB=J09kZk8-2`)DsT)&6Rxc zpO5O&6+U(CgC8IDj^ZmvaMMjcb?J+T{%6%OAL{T$e?HQe{`TQPPx`uF%>10H@k2cLO|&)<>w(T5NE z=xbeHIoRQ%Gd#}gPiOwZYrl6sI44)|xFYu4f z>d--d=jDJua9fu*>-xdLKmF;ChrF1BhkUW$JAU%~rG0Y2H@>Tj$8P`cp76ut_sw~8 zCO`1FXVrznyE%~?{=x^x3Wt6A!e?Ifo&LZthw|nAw;w)z?WaGU=i%`k9{GFUcYew> z9QeV(FZTl+c*(nd@@}5!W_{J4|M$Ja?J3Xj(?K45f9*Wq7|am z$TwY_dklvhnos*K22T2#Gw0z`=XdA){>TM9>hskc>8CEe=x(m9;|aI?tFIq@oP*PR z?eJdqbl%f^%B$S@JIi;umK!?ZH+`^f4%M+wZuO(5drxlQ!1pj7zN;&T@+F_ntKzPf+a<1?Rpmw)#@JiB^wiXXoCPaWywygu#+xZ#jz_}w#j(@#D7<&56)V;v9s z%?liO%MX9)3^zRL^oI{__ndR|a6j^cU+yK}>FPY6%mv-d5k2Wg2YBQSes$!=yWHSISNg!i z*Wcw0KRT-;e{$mqH(Yd*mOPB8PmE2Yv9Cr|#qOCS34 z2Oo7NfBDf5Ke(Ntef0%!r@P-#Yc&yuR&iD<7T&PE1 z>->k8Z*+iDe{)SY{neER_Xgkemsk49wR-fRm+yF++fV5TFC6Y6@A}J=JmN>ESx4US zl^=S*`z{>jl#ZT!f!qB-4?5jc$3D35)Ze{85BG=u_`(Ip`|8Vwe*7>`^y8zPz@v`) z#C@qh-PK!zmz?MWuX~N(<_$i-Pw?ZVk9ma$e|3D{;o&bI_=(5FZO-lYyP^&razrjaQH57@?oF+z-6Alr-%Oh(bt^PU*6=9o~PB34}9rm9WS`> zmm9dBt0xccS3Y@KU+ssR4sxO{-Q{2I%=xeC;LBhB<0W_ct3S`_V_wV=z4+%{AM@v( zFY;x6;KmcKJ@k+}dh?MUaNw^W|J7H=J$6?gy2z1t`EpJU)WeTHawVtsnPYYIl_R;r z8y`7QUmoG31Ks#2ckYwtczTx``@QSSKR7+H0=r;GZ~i9hF~KmGBQ3v(?``12Dl z=ir9xs6O;o=c;u&$UPo(Xy;@w857zR^j2PkP&LF8F+0efrQ>F3l%> z@iF)Gz(daH05@IX-}QCx$}PV9m0$XpPwV>NiI2Rh0~eq4krOypxSWUIy#zOZt*b9D z?j7g(>S-Un@xjAB^Wz@iBR%;jU;24BH}KNqAfE0Kb3hOM<%s_DrjOqd>+pN0GhFI= zr=K}8XP$E5oOOJr-`3T`OP=xZoVk~4zNq(qbAzY*LqEEh7rMIV^o4_Na^W2w_4(%h zfs-!$p8nY9o{%THnkzoj3r>9Wv2W^c4(z8N-p=t~9d7(vygR4PQMlX(`nxyb@YIJMbmBkV;lNYA`0HMA zo-Xo9Kj+|=Z+U`u*5ivh{H3$sF;DrBXHWUT124MTr;a}Q!VfQf}a_sxAkA3ukWA&ZRbf?SbzU!~9x!ir1Prsk)$%P!t8~^lCmv8vv>uE04!`pdy z++*Hv!wHZ5p8TW#QTzGEfBW>O1AXXBkIT{5+@7_rzxr}1r*xtledPuYxOa7(gHN9M z&sTcNnfm#9RES>P6@7Hj+_vV~B@4kI%|LiyYrKdc=W8ECVi#L4E(TiVnq@Ve` z3YYKtIcJ}Fhu=NQPx`8(4?J{`4|(;S&g!d+r+0qpZ;s^4{iKe2mwxo}{agH<;}ibw z3;NdBM)Lp}4V9=-9Ld6X}B%^ejR)w(>mZ{!Lu zy2=MX`Akpz?8h5VI$QV7ced*&ndgCW&`pbuY&YPFH?=d`l z^Sh+3b$#W|{m57M1^wvuv-*Ay-t^ATtKMg>;Fnu{{4T)bynX7(g}-BbH!t$Q2YR|+ z&7peU-Gg#0NBq{;J;g_T=tdtoqKi6wq#GXcO&`9(p)a4zw|@Nmn(p$pdiPx)IMm~t zed?=Yj_J!U`KFH?>N9g=o&NCgkDqw)g${JFpRel44_)08_d^#v^iyA5_dQ~qhluMR)pg$o`zbdSh6U)($D&>c@Ysq5af&+o`{I>?23=1|V)VO>7) zg~!~%Pd|O|po5&i1BbrW-9LZBtDkjv_-=0G%3Q!Be|(~szHrf-esJ?&KYX3%gY$Se z#~0u6_Rc4KJ@s+l;fWW%`r%=I?BkQZ_}gdQySi}80bk`-Ugh3*IiZWWRF5Cl)uAVR z^mBiCH(&V5D<0~*zvw3y`1rlxtKSLt82|C23tiR2Q@zV_E3f*)LqB@pyE|te-{4i( zIsD<0BRJfvp6)w&p(8$YmP@|}Z^NbjOYiopi|41lub%e9O;5b-lRvol;GW_?-tseX z@l$>K=%gQ<@VTGmfDiPPYxw`hk3aMk2>;%hwprWS6}xdz1(x^;}5ra zk*|yTyI=U}oF`s<)K7o);KtKFefg{}UspKf4IXvzR|hV0rl0w;|8sTkdh*$KI`T`7 z`E9>k$Rqsr;o%-r2R^x`7hUY5FT8Yk4EJqM?{Xra@WUl{{80a;I&_s6c<4f3_l|SN zLr1xX+c`P%bT6ND9zOcuHGQ%V->1&&1HW9*$=@G%IZr2iNj&k7yIc5 z7oV+rr;qzV&hW<5-03SvaI5Fuw$5ksA+Pr7zvAiMqnGdS!C{}A;=QXwN50BGozyWe z@Zco}>V2xN`9AMmzMWsK^O+9z>#vV{5l(ql2M>ABkFIp02fy{PA5V4lpH9xv-Ms_1e7g_e!OvW(1DC#X?p~&Y zbvpXHk}qG<^|q(|pLVtKL0xm|oIJrn7f*i3jr#*1xXhn> znGf`$`$@dq_wHZ&;l;;(ez=F|ijO+;J~KzonG^NpiXYzP25)}gGx1ng$9FvOlV|nh z(z+a&BRIuaghm zR{P+hAN=s(At#=6kwg8>&(xKV^6Gwp&pCbROCPxC0*8B3J-*6|cY2xYKk+yJ*43vU zyyg=Re(S6LVRhj$XZYd8NBP&EA8_%Pp6bv=F6cA;m4Dy)ML%`n%G6a4Ar z9G~Qe?r?Z_ukt~Ca|tKi-2>*0UUIKL{=U;!p5WyhUFF6*{P4&F9KM?yea#=9_Uq?e zUiczcbik87^ng>o{2swcf4P-!eZ0d-C+GE77jFCI+q}quxWWJ?KwQ z{C$^4`G-ecx_k?VdC_mK)7jkdL0$OiZ(jH)*Xq;Bce=>kQ@H5FPxBy8ldt<0Z@HI4 z`kEJdz>S~%^5NcwPaXW>m_9gf?&f^)^-p}^pr@zY9kh?{^uPm7b@7y6`_z?7_3>BN zoX~&QU*72B2Yn;a%tL zKj~dvzUYsK{pR;==irq~e$s*7a)Ph9g;#d9k<)c1y;j8>Uca9Hu>EpZla)$?B%op5pv8yld z?gQ)cK_B-ZJo>=RPxa{or}?CVoH{9{H`0 zI&wsJ>-fnjea#bI>f$30^i$9G^K{^!r+&`4ck$v2KJtJ+eCo@;b9AJSI(YvH7ya?z zgM0d8`@GAS`sNvLPk79i`_Z~Oa*H>;?faMRdP%CPS;8>87rEHXnTW8-6*V z3m^1%f2)s=^YH2;_i&kCxu=)DI~-Ph@uvIatE9K8C;A^-WLul>He$K=^QbB&)BE`G{|x^Unl zAI|aF{f3XeaLA*)Ixm0pkUKc|slWI5^1*p?1&{m7KEBJ1T=1JN^fJeA;Ok!XY(CWW z-kkCUPCC&=f4aG!;j`igm-G7K%|COYzx>hh-GBf7!DSzQazStU=}RYg;gVBxVScTA zb}zX9%$r=`OD`*5-3Rgkr`*D4zZ}@7uYT?gbNexUcI#;?-Q)sp`PN6CalTZA^k1ujA$15E6>F@80-FLY*k8-6hU##k>RcT=sR_zFMa%8$*bIbDG%P$7Y}{R zuN;2socH+1!E4|3mq+uBpL%k7*g1Ir_Dl!4^Pc|t!u_Xn^y1H~Pj5cKt&Vvy_i|w# z@TUh{`pOyn&dZVgbf3Aw>r;H_X}|oezPo?<_S}2V>cOv`?{we~-#o)7k95|Tzxwir zZ~F6Beyz^)!JPXYmTU7u7xQku>7kze{Dcc0_3=@U&g$7mH*qq}D z)#bnM=8i6MDPQ!LE8p$^Sl!jix09adIeMu3&^|e&gZ|#bDVOr%JwN1KUg+b#;U693 zZHI%t_T$S3E8p#hlMnKFQ(gMwhd12(;IsE|;VGAJ%PT$cJ*zLC@}@q#=22bx>dRlc z!Y%Lks(V;peCUX``Sq->{&Mf{3OSPp_~gj>qxw3h5C7EX|7t&c&Z|!seEEzwz2T5| zxx<6*@W`#-4LRXA9rd^0cl~zw<$zCk`i_tLd3DY`54UsAedmw<^oN7)&a11RI(XVI z$9&LNef|92(@~y0`%YIm)Yn|l$NZTOIi-sgF6ZHqBRu$YkzRa;Lmj!A=i#Oo{qS^e z!YfzwwhupZE(dVS>0>zM4PN{3l6Q6aXFvV%(bqou%NJeUgYc=NAKfm)`O>PM`I8?j zeeqD2fAsP@$TxYAJ38|Pe*5&38~*HY%A@}9xG(%}$UC0qi7#;T&3kn`J#C=&Qdx!Hf5Nc8}VRk9^@l zM?RT1b1`-IULIC@dCw2}IPbpDcl!9VI_66b)uRs{^p$V=ns@h$e(FBd=d2ZPd7wKy z-s`K6_vREoed(hYhq zoP*yz$#?ag<0pUl3YUHQ!NYgD+6SM$SK+eKLwz~h?StF>+0jr4|Vi`3(oV-&H1J`Ugp4i{pfC9)q}%+_ca`NdDaImb4+(U?!zl5=IEsNGgs=W zBY*T!PaVAI%6~rd!9C(U|M)8>?ic!bPcOOj?4E)fE_%^XAN9?N`t)(%t8YJ_pRRICx1)4&4lcgI4;LT!PB;7H4^R2!C%opsN-sJ*hf6-_3x|BE z=iIx_!A}=@>W8m7&hgv5#b^HW@uWV^%bR|?@Am754`1X>JvzZ-)rY=#(0TST_jEBg z`1o#K)UkdFKRw(B^1=tcyWiD?Qx56pJ)P)b4)9kOo)sQB;Jbb5^T8a_-9Em`n;iSy zk#GI%fn5BumuKXuLDMd$RD13JqG9_EaX{P&E99MFxA@LBo3!(qRCxOdz$ zc+%H7{^7BzhcEy6u0Q|P(T8qUx!{|A^x`XA{BqyvXAbB}PkiCG%8hgMzK$Q<=F)e$ zgx9{Qw`cdG`)c;ZgMR!}*SvYAm-`N0IWa$SC2#UWALsaIAN}Dt`S0I9_28$Azkm3} zXZ-D_13vsQC;WxaysJk)J~-z-!JnUU<2>Ey1Gl>Hd+(fn@~-bn7d&5jwr}?gm)z%mXzVwo(gX+Q!k5wMkGZ*~(+IfCh;o}#+^6uHZt49a>=zJR=LIx54o}*9=YNde(qIz@9M+F5BH_{#@{)sKJ>DmkLH~& zaLASX;fa_0ntwd#pbkFrAs6&`i60+4!v(K7qbFW;aL$UK{px?KAAIoGkLPM1-{k;* zxx=3x>d2cpksJ4y`w3q22oL@F>brCDEf*Kz_1!&YUi9VXRr~QUhrZ(j4E4(s{K{e&E1UU;O5M>;9G(ee9PT=isKB_vXoWbL%@j z;Bj7G`{iFA?5B&o%A5RsP6s)GhYoadFSsw@+e1e>c<&rsc$!OoSKR{h~#;erz`&+Zd_@sxkLHlJ|wTmJFa z*S$igAK}o4zP`%^T>7cUe|VhJ-|sveR=JQ{IiQ1c--k|~>1_U-SJysx@h}I@@t+R% z)6>0a-|4_})AMtyeeMIfkQa6701rL&H{X1xhxyP)-(7$8^yN2y6eXTDX_`r#`df(cQm)!aLO|I;xuT>xOf{%Lm=qvwxkQX`Q zHy-NJ5g&TXsXFxd7%zR*!%shT@h}g3$5UT?tnNSgg4f?;^u>$s&ckJuL%MqppZQaF z#q+#%;+7wC;yyWSznrOW4)KvU`^+DFbo8CxaLAoJ*~d4!=z9<@dDb6Z{rL|k{`8@* z^XB)s`ueV(;e?MK@?zec!{0sNJ05;_zEq#@`p7B0G1)hkTbK zxXlaQzE{Wm!c7l-@Kj%(;Nc4$;D?W1c<==d&*suOe~($=qo=tw7jXWH7yap=51d!+ z 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 -?kUN6z8K^T)_NJaosGAMpFGzj@lJo_oo6 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%0AARjJ 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%0A9M-RN5-|DX)KinhmS@ppmpWoGyFLm|hKfU-u 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⪻VPIPMHM5rzn<2ZW!-Gx@U-}Arez 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

>b&h{-UQOrPwRO-OTBg*fk(0295v+8# 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

QGG@lH%rrQJ<8bh>Z3PA?_ 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 z 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®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

>%0qy@NJCkHtcI1Zc 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%0Dk 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 aX)?F$9@?>Wnp{}|Hbw~us8O<3?*9iRZdHZ= literal 0 HcmV?d00001 diff --git a/modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file2.parquet b/modules/parquet-data-format/src/test/resources/parquetTestFiles/large_file2.parquet new file mode 100644 index 0000000000000000000000000000000000000000..fc5b4a5dcd45b87e7464e1de50d70639578242ec GIT binary patch literal 30367634 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]K7EdRf8w+{Ibiw0zIr!n;^rSBv1&oMG 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

ZHExSC2z6i~XP?J>ZQal9sFu~CsmgaD*8<~I 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

  • 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
    ADsF8YTnX$TTIwn=X_IG{}S}5jb#LRGx33 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
    cOOKVJyk)j7Pnk&k*sW+2D@KOm3p|7F+U~I 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 z z1%CcsaL%0g4j&wN;X^lm!$W62@b4ed~^zof9d{q}dzgOl3e!Ai-FLbpJKkInWLw$aG=Zm`f&|h7A`TdyQ z&g0<;w|>sk&m8cZzW#ojyx>(=zW4@*@A4u)^ybs2@Vlq<{n)xE+;GCN+UKdS{P4lO zLC=%Uxv%LdkNEs*A71d|qb_~%@NOTzzSA8ZyyQ|}_cWdHl23ZUAwS;nptJnXTpq>~ ze>mZiUpRLA<&rLNx!>@VgX_-G#W{J05C89Dzjx>O=)UGZob;pzUe4)bpL>F?bfE(u zzvRF=9r#2i_Y$0Ns{6XPr*;#s^+L)7k!`_{bH#)LnhIjvw8e$4`Av`_8H( zUvgyKJwP}4rMvqTKl*&GE?xPmkKE}euh!|n5B>2{_p(0cJ>h|ae{`R`@S}%(@*5s? z;Ivhp^pbj88B4I{J;xuIOLiB{B|!p59jp5 zeg7w(a;l$m^r5%D$K#xS>cS)UaPpH6elO{!zWc^}Irmgw{`~A6KXviKhwgG`uJwTz z4tmoC4*2v@PanGR8*WcHeK%h#9@gdBJn`YJed@tszUdFYobS%rPe=9L8|L4Bx_Gyb zo^no4_qyK!{>ZuWbig0(`*7N?J{<0Kb8hbJzv#St!a+BB*e@se$dw%EH*w=T=Ys!o zfZrc{aH-EnIrjasKIRBt z`LmDz{Ka2x`C)G93>V+%Bp>SQ&nNuNIbG;P2lE84oXCNG<_B*6d#9&5{Km(VuPfcG zd-}bYdeGfm?atGi9_|-<*zcafA0PYS(%-xN{P%9|)RBKW=qEpL(#?4|@ujyu{O5=K z*k}IWGavTbhv&?dL$Cbg(}CkVE%~`xhW&Y3sAXL#|8-tg-Kzka^UqbGgfRUbb0JH7GqG$;Jy zJKdbSEuVN;w;vw;@RA3=oA$Z)=!Ks-G(Y&si9DJcd52G5deFgn>-h7>T$wxdR=lm_ z%|G|8b$IbmpKkil$(+(dPOal>U43=*bzjnv-k#>dKJ%#_JnGTMz3MwWa_Sy_mrmxA ze&&KtzuG4k?|X-nPV`mZJ&2#&x!3K}4-Wq0VI5w&tEWD^{8NVy@X0SebdvLL@q^!f zdD6!@JnYkV`oRZ$@W3BGdeapy^Wa@x`Q{vb)ze2l;dLG#zRH(%zdPnoe|e^Z-;JGq zbo7qTdEec`zUxn)tMi zb@fxvJgY-T_dOh*ztd^@-suXYRw-eI$2uwr(!y2G3=E)Rhl)=tKuT)7w1hBhT_8zn=7i z8$b6FJ?KE^>u~BXKXAzzUFW&C&hr;OI>QCO{`|$4UY_=wU;W)*@`W#c&dU`X_k*YU zaNy4;&x6jp^Ct-rdy%Ln}U`yJFDKJz0_bj4%ElOO8H zsr!O|c*&Xk^Mk(X@D0zS`r*kpI=Lsj%Ml;pq>DVL?|!|ikNR|To}RP5b-d|-hdk=X zCw%D1Z*#^kzF1d>j`F7;9{jUUA9~9@f9MDAP7nL=<||zG@re%Z1-}2Np1i?9fBW1I z`ss7ld3c?d8$9`CKV4rsKl9HA`pE~Lc-W^8oN@&(9o*-uzVb*P=e*NFo!vQeM<06d z8E!u5>poN8cYO4d6M1(IfB5xtPR`v=aJ&EbqduJO7yQ+cYxAc+{(LrX7wH3!dw}13 zz*j#!o3o6tLL1&;OWT^xx`Z)KGI(wxb@fPBs_HRU7v%#yLaJG zmyY=J!#?`?PJe#;{a26w&dHT}c;Q30n{b+!v)&(j(r3QoCvWmY4}Ll)Cw#{r?jQB@ zw4W~WAWwM82i@VJoBDETF6f58x#c6Btvkn0b0|0NCw%cYf9^T?kw4$<*B1_Y@rMrj z(TlJD(or4fz0(N}xiS}gq%Z#P%ANesnZE8#_ksHK<2xVaa}V6kTbDz;) z)X`Hcr1iRoIKGcCr&g|1qovEw)8-9J^wT>@6sSCH9$_2mag{OY%@`Y~d!f_HGdO2@C%rjp4nP)uYaaHeMPyNk_{_X|e z>325HnJYTTKOgXr6X)sW{-Yb8Z|fru`rz@>cX_~{@AQG&JKyCCUpe!g9_~%=aNz@= zJnnG0FPt~Wp75;p^UFFN;gUQ4%9C~TC|B@$@>`DS={)`D;dd53Ir5Y{ec_@DKK$MB zbk2T0&i(Rn-Z}5?Gq~`wkN@iWJdL)&z+XN037((R5kL5Uwr8# zedxm%`qOvn#c%8Q!>hmVkLjbXxwa0s^ZLR=A9Ji99nB-Z-MhQKtEYVEPgnEjy!qpw zbCb9GmM`8v)sGJR(MR6!R@Zs`*wiyh7Ui!$Paz#L3e(tPk-|*SM-nzc=3@3`q9CC!Y6$6=P&FetyXTUDTx)-+Wh3F6eE)zV^E};IdC0`qNo%TXKRJ^Z_W-}lpWLX2j~viJ z9pCY>E+4)-2M7G}3=jY9*Owmj#tU9g_ni8CSm~gS`NCg+IpVuM&i|;6d6Wa+)wM1! ze6p?%oW83oH`eI{kMri*eEbQYbJop`x%XYJnWQpPqD)OY7d@`#5p}9~^YT!+v;n=jE1P z=1Xqn1|NA)Pkp?cbDz+8p7V~s`+zQV_4{!jUUl&>|M1a=j(G9kdAYz(U+3lcw!Y>= z-t<=oUi0ld+@A7pKYVnTPx`L<(?<@>3w_|%7cTm`Pvyz)3BJ2N-u)f*+&VmP(wlzP z?UO$`!N(VR=*J)Y-9zf&fxn!)@8F~hTy&c{{fn1=@(4eC{87if#Amqew+;s$*5THd zAM}(9=it$Y9`yFE?pwV6_N0$Fp&uS}_4~mu>of2A;zL(H%Afk~7xx35)upd@xOe!? z9lhKq?mN2E2T%8q`uyO#^Kj}%e|fUsJlUrY|L9EL6@EJUopoRG32u7gD-YiFHS8z2KpTT)<5~_aQ&r&-R%EeBj`Z{&e>4JH6nM z19_wa{La%|uHm$wUg!BNXP)rzk&f;qPq^p<2mI#E-!t#(=PCd8^9^q~Gk5Tt4|9hP z{O%L$a;omE$1l9(#5|i{{;Eq~{NeGWk9&jp-}&R5eYf$q-@MQlZ@B3MAHC!X4*T`f|Db;Q?%w5# z?sSz8^92w5@(!2hQ+4H8edo^muHXCK)#oEUcHiX(4}3l0ri=ah@!5I4TF2MAT-h%- z@WSuBxskgS?w6ildh*x0d60Md!9zE`x<8!L-+BDuR>yaFP?t_Sd~}x+`sq&xJmIm= zeP`~i%dNRu_4B*o-lDrce&^&6PW$!4hYt_cr;~ngx!3HIA9d-V|EKE7Go9Uc&f8CC zKDdYJfgfGXlXG~fi=hZz)vrAoZ}xI}$L zT>8UJA3XJ;AKr3HfAeSV)x}eOQd68#x2sgdt)Ex8GIs5U{4^HR!V81%>(2XDPm;*WDAHM3im)x^(%L~2d zy&|{p!}Iw+|NEzoIpnu|sEen($S2?6^4;93Bgd=0bimJd{ME&WKKM9~4;{@3|K-KJ z@YQ+s;Dv{-c+zLqms3xy{JB1`p`?x z%_)CBR9}B{?@0%E1^;3?CeR zA6NU;!Sh|~e6w!;=w%Llrz`)}HUDy^FMPXxa^*rlRIPvfuZ}+qO*(Zl`<6REmvaYW4?lJq|lVkeR zlit3=@4R~a_MMJ+ekc$0T)kU==>1Die#x~Qnpb(@$L<^-_~Jg01GxCBF8$QipYQ7G zuQ)H4>dFhh@%JvL{GNYbz{4;8!Sg#^%$x7(S~u_Tz{h|4=rnV~C-;(E z&;ft?%Yk!rlQa6$_j^3}W}ox$&=+q{e!)RcI=J`bM16ea$sGL&58b@OY5wqZ?zMC9 z(8uqGd4-!_`txH|2OoINo4*52+lL2!aN^G|=jbVKa!g-5oP!H5`IBe-=`LUL=AOd` zUcBI;D_(HPiF0xRpMCh#-MhMSC-3UWt-1V=u6V-(2ma;~e?C8VUViX~L*K*p(M=BM z@0@;ggwJ=l)U)4x%?IcBsGl6r$Gp;2p7b}T^1p{(eA184*5Q&9`l<)N{PM-z{299O znGf*JeCTi8?-Kmj@X!Q$Oe7RTpl3@in*n@h*q(n_qSG zRcH3OO$X=ss4iWdGiUbGNlxTO?(pNY9KuI`{>z0rYv8kwzUIulI%l8yzQc((etd#Y z4$KuD{T{)uo;4{mQ4cTs<&(aA z#0y^MD{=Fw$bfmBS=0sl1>wV|{^uz~mIe<&O-G07! z$BQr1U*F;N`z5dN!$&Xs>8mf?{LydnUE!5WxzP8l@9>y!-|0pN{+cW2=rw(X6AyUZ zQ*sTrdBNB3ogCSR54`-tPha!v-TA9{n;&^K$Ld8G^>eJmi{rE>W z_vVhD^K^4wKX~b@kGkfMu5jyvC;jA6UF+WIDo=EC&VA%}$~pOxAM->%e7*A-Z~V*? z{N_SV?BlonbhF=lT8D?O{J>wXe&vfgbimtp^Mb$M55DkKUicsve4;Pi>4zu3|AtF{ zPyOb6(HRf*<7=P3_US)y z%7q;9YwGF#qMLVo-s1PC=k7@-^CEBX$RV80(_LPihtCrp{PB}x=ggD5$)kPN;WAJ1 z!B@Qb1Ggs}csS1&IOwY`oOI*6e)2&t^RUvH5AHKM$O}EK;|J%|(S4&Year`3vmbxu z+x>u-zVwh^_34GD9N)!L&fwM0ckBAgiF-kP{p_a`f1H<(gZew~cffhP{J!v$Uiiof zT>N*hs|PQg@Vp3zzr*S8-TAZj;iDe?%)Ok!wK|8tJkwWx;KGB?*73cnp8Lf<^QZ3A z9}f7O03@b!R{O&f>#oIiN2c<<`^hhkfo3KFE)J*-!tc`od>E z>C8v>0$uRZ*Y6b`^tI1i>tp`u<(%Bf6F=qNy+S9tOdR;zhbR5{sh_;5$5(pdZ%*j9 z)6Y46(hYw3(%1aU6P^67SvSA(0LM{%tvhF)={%osItLHG-1qv!Ek|-eH+iAM3fI&f zK78Q#*M9x=p@-b?*ZG+TzPNwooR8|LYd^o_1%7?_1V6s?kz4uVk9p(2+^TP0?9-qA za>^(B>3WlH_Va^I`qGnc>bM{A$44ExFsJt8i8sDD_*H7SD8BoE{Ne|F`6OTT(+5B2x&-`15UoPO4fA!2aUUZ=&Tnr~1x@Y9fKK9@k+ zJl^>F?!51EsSn*JuIuWrlr>e**b=}uq!oLkk?pZ;=1 zFHiZ$6Mnql=NBBG>tinI<=s6CpZh?5yz|K%=|d;?v-yTc9^fzsaMOpr=0krt)%C94 z@A!GX>zz+{(NBGIrLO(%N4({Up8TQ%fAFFwz3@_({ukloC%$-iKW`ts;Kak6sBb?V z%!|H!gO{FkGOu!I-tk}IQHRfTp&Na@tB0RH<{r+|>gz*K_`Tal4|RRl-yFIZ@#WjD z-%(G#()FZueDPSVn`iTg4QO#-3xML&hR`82Y=*AAAID2Zu-#YOLf$j zPr6N>@R~z8P>)XL-#o~*`ycL4^~VSb&R6~U zfxq17OLukTPd)jOGdR?_j2A!bxBjc|^r4^caM42@_qW{0g>!P_9yC{;eBJfO*E^nY z@t+P)or71-?bC;Ec+-u4@YC5`$PFIq!buPMd720P)OT;u34ZnE;di{?P>&99d8fDE zBj;9i@Ym<1b$ra3I)D2v*Y@)RZ#j?;{PE-mzH(qL&*~%pN4?u`&gm^L-r@94Pdf15 zywOD+e#^1_SK(0SYwvV0*YUG(Lz9K%IVzR=ITrj9(x7aq>jSs(s-cb-pj zwBji*{BYhr`Z!O2yy>v3_tcYa_VW*3_deh8lLvajMK|Z@Hd%#f8XKfJiqxRC-!;wlt=doym-%g=2;Hqi2iuefsc6O!%u$e|1tjZOK)|Y zlY{H_`>ww4&eKPI`{ax6a%c|uinnv8^_2@bu#PXEz4P0>jVB#3lJ3sY;UXO75nsN~b-6RgGe^Gj(?0hb zT@riDHHAnE84?Ou|KYj4P7f<-~fs4NGGkI_i$m2tL$+a9=cR$Jjp7NsJs*Zl@ zm>>Inm!Ii3zVZjR{L|OEoY74#F05s1Ls!Iq$o3@`WE=`Qf~|_oT17 z^5H&lZsNpOUwoZ|!;^06o#mT+AM{RV`Ld3OeA7=pz4Kol{a)H92lRO!edW)*;7u2L z^L6?FhupYF&6RWVOdojYA_sC#2l~+2J!cN_vY23 zc{uTQ59nvz`9I;)*ZY0zbhDo?_UUUsJ>^Xv_~E!%Js=mVd* z_Z@z}^ZL;je^0pNgP!>5XCEEp#XXBB{_Y$2)rU_m_+*~tOg;VO$GUv1bdqa4@y7!m zzMB{I?ei|5azStR6`b-zH+=Ya96tQrQ*^+?emvz{-pm0W@bKL}deg%_;0eDunL5Cw zjy`<$lq>hResI7mpZDn?=j!l-{@(55gL_6!@Zpztepq*2J^IVBJkgQvbkKL^l`eSE ziw@T5WM1fwuX_Vd`tij*;a>fkj=sws-RO-!TzFb{9xph}uXFTX)%KDthv>cFSJe%9$OPxPTby!zuu zuW$K?=j5Rd{rR*zCr{?dce#dBzVvZke|=VU_j_r+)#s17u`ZYRxliE1%kP?e@#!LbbdW3f@HlLrcR7c{d48JbnV;+Gc=7{Y zIX)l#=<5FUw9maI4}8Pd`l>FS%sajDq!;}9*k{i8YM-3SA3pr0mwf97k2!%$eSXkE zU4D4-lMnpd@uoApbdxXn!^3`h%z1)a|AYGQUry+yFFp9d@7FhadgnmpAjmKX~;sFZ|{w{>R}_$2mOd$Y1@nHgKr#keLGk(&?9Pkq!Jm_Sf zbM$|%FTVQWYoGq|V-62H&qp};?40`gdzUNg_QU(V`h1`>{p8JD+_wLBPkOi?-4k?{ z2fo5XH@vK`>Y7va>A^=h%?q9BcTpX@^f8BYRaZZF&pWTKzP{6+esFr{E4|>c&${{Z z&KJ7tLr?tVpYD7$H~36l^)b)%upe%7AaC@N3wfaH?7!2`{NeN1`po}p>-6#N{(~D1 z`_zZixxdxJ@49#O_#{8_C|9ff-aXaj%YFOk&Sy{S?hE|sYn}dZxhL?U?|XCsy7u!^U#t37b1ygU3G?Fjjm~h> zVeZ3MPUxt=^-H|rmLGi7frsCCInVFY>X}>l;;VbZKK1m!>b%_j>KT6bjd|m{{Nf82 zAADC2K05FfFF57ZDz__K?h$qI<*WR_t3IFUa$G&Q>B3j5I(`TEudcrQlPmXxKJpHS zzVvqv&-v^;J^1-E9`Z?d^KCx2_VEEPJn^8XdAsbK^Y}Y&pE`7+k9zd6U+%4PK^Ho? z-^>O6aL@s7d8EI*+9y|5b>*Et@XMLH>flR%xu=u4p`RS!OF!TFjXxdDi9Yt5mz6(q zF9-amE55#acK@1-x9ZVv>fqkNk3NT;qn|o(@W=ehn|!M4UQ*XN_Y+)r(MvA);F&J; zlN)~HPY?dk6;6Eg#nXN{qL=sZJev#qB`_J^t=ZIfX}#?WYrc@Z`rse!6eW1HSO`2|xYy zQOEBA9O_OTFY0TR8@kJlJnI9G`_w$)_r1FCm_zvGR9$@JSbsT$LtgkzM{_|B{>Uqx z<&dxX!RsEt$L|UM^f$-);0cdB;J2S1>d3ns;|rJXe55ygGw1Z+Gn`-R>zO}rOly=7Y@4k?wL;X*3bPR?=$~+n`61-r+m2A;O9Sm--aG?!!Nq(rw;w?hhL8E zGym|(4`1kD|4Devhy2pPKDjav<`qu*sgIAoxAk$qInP%oa@6k zd3T?>Z}fE@Zu-&NKKjZp9pLp{F7?M34|Vn7gZK27Tl1^0dq6#Tpr<^p^yjzx#eK>b zzR_1dx_D0q{psbqmHu-1EgXLD@S+dB+M?d<=37o#e_oIGaTIs}p`|08w{igo# zK2=Zd{tqYI=2wp0OLV8B_wEbx=oue6;ZINfw(#-Iy&<1gx;rl~^i;>aga=%7g~xZk z%NO1&T<@(rt?UwVu^r093&4+yAHS>lS{oFfrq>Fw0!`nXf z=_()cYRH-et)GOU-b73r@H3b zKK$G_t9s74Pxz#+_jo$Db$-5|{=rQ@KD&3!D_`_Ahj{2qAGqA} zkw5nbUUDyIbe9J@$T2SN{S1)z_+?+`d(puXy39u9aSR zI48e;2jH^bv%2ykr}W~F+*;w1NArg#-`pSOA0GJdhg)9Zu%BMu^GjVmyHE7h=OtbF zHj+NYn@IsDYcAD@SC$*ukHp7)(k`tlVI z_mOkvmp*c;@6o8Mulw?>?|kqbPW$LCr|M7KbfSa%h#zvZ>T7=SmQQ*3KYZ%B=k4PM z-RJ{{`7%G|$#=gOp4~U4@4(6bsSlj;jVB-BgIg}#8=m#!BR%9&9sA5bp7MB^?s5gM@8;Y5T(n=_eW$zk z^rj;{;P71@)uF535pzv9_~D#B;{y+!`Qki1<;gujcm4TJSGf769-ZyiA5Q+j=l1~) zxif!wnSVO@eWVxP?5C4@@+$9mnJYNq_v|~|c=1PH{NR%l{LBZQ_~0qO@&N~Z1H@xK9zN1h7{&}|Fv)s~&{_^ITesVzv{or#BK7780LqERj z>pdUO+pj*q{EoS|_2HMfRYzTZsjEL+em}hDhjZ=+e#^CeR=DuuyE@LV_|cPoaG3M? z9WVLN*F52;K0e3w4|VZAOW%i~^KH+3qA$LlCvN_zD{uPxF28()7f;{eTm#>I z&v=_x`q1CG=?nebEBwJnKHN8Q=({}3Jj07W{o%xquIj>R?)gDy`nWgz{Xjo>)RkMm zD{$!V_XBUfz(HSp<>61dyBGLtj<>$kjXvtik36VnPVu9keNzWK^aK5dVm;Q91Bj5DpD;?cGp5*{8 zedRZ%X{~ibsK)*%RlpFUf|@PedZA!&(71+?+$>6N-~IIO-}GV55B_q8??dO|g~xZfq$@w@3kTkOktg5jW6tqY&we?f z^VjgHzXo3C%(wpf$QS(P2S2*e)pzIRZL2T6`6aKv`woZu!#U4%w!-V2{(O)d`{Y-C zOg;fyU*z6J3Zt?T|DXi6fb$DE8cY4 z+9wb6!OMB|_zQ=9=2afll{@&HvwH7df*)@=(N{hA=|F$)t@<=Z^k}tUEBoDsB>HL2F_e)$gH79V~64${@{A$|0t1HUGJ`Ew3l^8^q5;PmXfyvc!; zUi#p16QAj${K&Is{>mSp_(PA$W7UUG`pX+0bfp(P)wN%4P6vK?;Ip64R`W++I^icb z&f`O8^^fXrp6IW>IZ_X9dY*M&E_|08{LLpn;PKu*_Z(hwBHwhzm+x|*KVAL(CO2^L zV})P-@o`VklTLW=k8^yXAAEFFS0A{|Cw}_U;cDp1H#+chuYGV{_Dm1`=&I`G&{uvv%g;gm+(TBmGgoqP-hO(>jec~%hrW2ZFYMo~9$)y+H_z(eD_3y( z{#reJ@zD=o-|fdk-dA<3`q+m*oOE%|@JmkAl_z@Q4ZpddyHy?d=^*dw!v~Lg@XMtY zUUi+95BCS2a!XJC$UR^9Z%*|whwhP?TlM9{K00|X$8f;A<=d}T_pCbfhr@Zee|FA$ z_|&0;+?roG;yWDf3qF|--}N!KeBHYWW@|BNt zmOuT~kyCioRqtzc=^@|ro&E5X<8PgRXx(e|9v*d^`Es6LbdUpeJmVp6?p^oCTln~c zzZ~539Ui%WOFeq(D_73p53joPQ4fDQn=AgSCqMd{OS*f8gI?wjU;cTP2R!t(>Pt6u z`J$hCc>hjE_Y7Y8yGP)slia$G!o!(TbkPp;|ZKHxW>%*RLl;DJLu_cR^oqQCue zNKf-Zf4J54-h9x9ul&Ssg%f^w`AGNM_HARo-1wbD@<$K;ANHLt z_`qpi;FKTx>A@HKcB?CQ>balXd-nSdkNlfw{nUeV@}LLZ%#}G*UmZEJ4?lX^=e?Zh zFLx`xGiSbgFL&m`y~H1S!t+wy`5sTYKdJHBvFe(sz3 zosam*A>F^_hxw5!_4q+w_2}VQUFTPI{eJlFS$}-tkc+MJbcV-$bvEjodphDve?IE} z+<89n!@Y7@qh>zaukEj0dz`yG2oP2urI|;A9o9v^TyzxPf`E*zx`}hP8-uBbe zemVA?4*W5f`p^S@b4t%I;o*ne>!;5_`{=2@e(LJO5B%iVeCSJmI^$!`=)yPq;7~_D zE1&S74?nE#S$*MmPT%wR+owLioTG~zyZ78%{NSrx@`Il8qc45=!xwYsJ-w}bgU^2T z`EEbG`Q-UM{_cajp5euVo;!W#2jAfE9v*uCpRRJR4}9j35BSOj-QYB@e09G}{qR+v z?{dj6JmKdzJ@wtv!#V!p0f&42vHh#n^J&lec!nP@e>cEy|3&BR=f7OeoYKMnOW>0W zeyVHb6Z~6!eU}sUp8GCW{DdDb{?7S@!~F5X{Fpb-e8JCsqCP#W`oSXy^y1HDJm|%T z>9-s>XAbCUUff%r)#snwz$K^VMc$p$M?JpS_bdGLgr5%1;Z0}n?dLyy_?ipz2`7Ev zgLj2zua$4=!|D5b`{)2SzvyOe_zkBV?pMcqy5Q+qe&tSG_?*WRe|eG<-<>xna>-x( z=>e` zYoC7hd#}$;=iMuFHHY-TLtlRAs~+6*JYIOyUtRO`HC(ffee{+ib?ErJ^XAYqKh)={_4EC-qS%o=%f!n;c#9*tNosx(-+Q}|GjYW zm+o|t3-#rSe&z#j{^|Fp`trf=)qCgoM-M#V(?@^&oY#kbKdb-P%2)i|e_P+pt9o)w zKYg#-uRb5;%zJ&F+V8vb>cLH4=j4=*&cRFnnRD|-XS&mm9`KxpPaXGxxt1q*^@SIn zIS=Z~5nu39*F6Rw-0pFGS2&&HpM3HSK7PBegnq||LLV4{&3TO&ewbV_(uot z<<@-3h5O*8^K@~4!l$0^^z~jHeBqQ={oPCELtk?vM}C*!z!x9-(b;#t$eX@$ZmxXy zjE_0P!yLIc;KCPw_4!0MdeOmr`h74zkLfSxa$vu{csfT9&-gr7PhBfq>eG?V=E;7! zgv-5Pr6c~A_2sK`hrL%H4(H4dJ>hX4e|7Ma8~(_Hxi_zJZ?5TRF4d(U9(ck1NL4kT32bKFFd{4Cy5OTfyy}}z z{;5BCyPqD@(aHxnor43PozBrop5A&-C%Dan{qWLXj_4+jC)MMhJj%6m@Oe)M_ltdW zkw4FHp4QKIeCa?RD;?Ca5C0$4Q`fz1?&0E-e)i)bFMQKS-pnVx zQyr`C=G{Ec^ZLp&zgK$5Ex$c)edi;*<^ex?d3N4h_%3hmp@-_jch)l;_R-&dc~qb7 zc=O45KGInZe8=;>{+^xl9{%h0!6P^J(Mt~a=eu)oTW5VfIR`&|otyRWKMkk+U-s-h zeC`{1%C|hh#b58$#ZO=7^`o=-q$|Jp={|Aa>7%Z5{Evshmt*&WT$mgD;Ba1EJoB4=_R~v$IhF%`eK$|)S@Cj@z(+Ud;h{f%aM0cF z4E^B2*EzZH_klU$!$JNzkGGZ1_T%%pbH3xPFMjSxx!|Wdx7BgZe0a9f&0O4fPEPos zuKxJT_hskie!0ifcjxJ^t~pc>Py4s}s0%Ot^7muxTRr1VSAFv;NMh&p&y`7k+a?Z~Wbp-rFzlR`-*2 z*3(Z8_()Il3a`1Mqq%&GHyzBqIiLf)@WW#tJ>=Cs&-NYHPtNe;EB(EfH#);F_p^^& zIZt0Y;XyBT>0y-@I;-P79{S<0E?s?>SI=~&`<5=|15UY?KYaOO&h3Ls|9L;t0UoQ| zm?yYA+h^X@_xAvw_zEX|-4Aj|$E$d|C+Opx=hZ$sdxi&Ie9bo<-EVZ0NB62c$=^%; z>{DMqe((`*b3SvVueqd~_xhUy{pl#rbaO8qh7)c$>8U=P=Et+Tp4}I6v{hd|oR@RC zpoeqvAU|+8r=H&}``j0N=O?|a^f8z6#c$`lx6irh7v15onlHM#_g1>7Pe1w8pMUoI zZZ+=@)q@XSd6Q@R%*{4%=*xd|BscOWKkD#@esaJE{(h?;9q23_`##E-0Opfy72H@ANPlPd~i-~y}QQ<)8mn`j|s~e5Vio^z)t{<`6z}Va5MGT+Z>I4)ig{ zcuib%F;DQg@A!j<_jEN6c)H=VxM2R}Maoa(91M>w3LBVYJMFZT-mc*)_9@VJNIlUM6q`{W%C zyy!xIebj?TpZn^;@4K9w^xb%~X-+bb$esbm9)JI?Z;o{3he5}47_g-K5qo2IMX}>w44`1B-e5MoJ zbWn${baLLjxd#uz$#1#vo<4kn@2PX{GdZM#9P>q9EW49c+p!P>BCQb)W?s1 z^n#mC>fFZ1`Kgod&eKz0`q0k`zqz27`_f$C{d?fR*ZHmQ=77&~%LniAoI1hBPdUX? z9eD2Q%NMzFjvnSje&im0xb1h|cm4S-fBMtgy-!c)-530pLv>a>=%b(9@}FLC%89z} zQ}cOKUHj=rXV1RV6>hrH4?j5RMh86L;v?Ph_#Q5}FMGz<{WJ5Z4&3~}mk-Xv>$~}r zlOOek%Xj*i1Lxs$Pw>@!4xjs0eLkz}oM-dky?i)NSND}1&>t@S@wcCkay9P}{^OxP zJo@-fCwlW4F5l^7p7>!t=zEh7@+Zg6*(VS1tLIs+w(8M?KF-6bKKyi&59i&N<^VoA z$q!z1l56uZ=L#P4L{GY_j~`z0=zhoBT<8lAe$Kz7k2$rfqrUz4$km_De`|#s54xIf z{Jl4~aPh}^xuGk3a`IGPKA98uI(+KGFX!}K)u9`|>Epb9>i+7S-$Apq}2edy+#6)tmw2b|_Z&gqPwy6ULwJ3Wum zhY$3GSAXC2bI-}K=bzQ%51l`c_w=#SnSU4Ur>}d1?&gY~be{F}msfn~s6Jlm@y9v) z_1z60J>gf69`d68UgzYMPwKeG=mkIi=8;e8x^MZUzwhoz-_?_k@8Obj_4rA5_2A<( zedGxrI?@e)`I2k<=ntFfT--`wN74L$Itt2%U32Tu8=1E1;O zzM!9ZlwbbP!+ZS>!>2F(y~l&zaxXu0;j8|5@dy6f`gvB@YCnD8(2p+q;>Sn(+-v-V zM^5AmAGqmYE`5IuxBBYwM^1jUkIr&t4y?}Os}Em(RmVQ}f%8^*qU+WnkNby?_&Se|oXWXe(2>vjF@FD@VI~FTU~r6PV?Y*$agsCt}njyfL}lL%mbh0 z%y+)Pr4GJwz-N5v=DhnGZuy1hBwgf$FZ!8p=k=i@{CtxyIi?ex;etaQ&j;a=3%;tS zk9)@YrE^xgn16N5hq+XbAMzr>Pak#YWxsj2tFC2KYtXAb34 zzVv}h9rwy!=RKP@dg3J?bk$FPzS(Dm!+nL%)Q|4+;C`T&^X623>82n2`1)>j?>n!a zJnQo_UF2i>A{Xun`_!isz2#)Ly3W(bIrkVG`1@`S@s%t3nIrw>K^;8ghrj&RUwz-z zpL~7)9525!c)EYg!(;ob?tS>K`i?JM&4bmvZtd5HulT4Z5BlLJFYwb#AGnX}BS-kT z@96-KxuTo2*?F z-}R-ReAwqZJ^ysxcf9=0slzXN>JK-({J=v$zVpXcVf(NpgH?l{L! zxmDl2y;TQqIOyg)y!zT_?w+fo9=`mdhyCWpIl9u(c{u1y7j@j1@W4kGzRRVYsPM$pTU!65{bRI8$c$QQ8!euVi=L=kTm0!U`>cU4yIrbedIi)+@_$C+fMF;+w6F%T`8gB2MH^=hlzSsY2=lE`w zU;Xj+_a6Q9bx!|>>guN+f8gG2pZdN#&)2D|9LbHG>!Y5PZgk-%-}r)`+{meWL?7q% zQ(rFWt&X{Nj;`(x-{nm%Jkv=&)a9>dy7GZfaO%e|xx@<(c{|G=I>GPvT7U25Sbg`0 zeePL)(t+>%!JCfGJ0}zw!Bs-rHQ;FPnempb&Mv$>$lN%iH*d(Z9z`p{oLIWgb*t?JSdZ+e+4 zKEa3g)_FNGuk@5__|?Jhd*|iHGko^LO;`Nj_G}L6N`LvDImCxQ`oL>$=t~dy)yIFu z$2mU9r~dpX5P%H`t&u&bft&9x!>?L$8y6* z{%zsfZ-v+Ifba5QAAR8Uo$epilP~$E6JGq219kW@>*2>oeCS{fcIt0V;gt`4<=1!5 zbT*Ib$`tnbG`>b%ydz4@5(T5-M$Tzyk zjeYpZKiu@iPyWB>8@%eT-s7b%z4WE4y8E4@=TXn_%a8imWW*F35z%avTpfmI&lT7UfLAXnztJ%taS=?kyi@`oOL(TA?SJC8qoKjP(H(vObz z<6)oop7Es%J?Uk|&wf6sBj@_b1D)uskLR~|s3+$$7xY&bPW8-%6%PK$5nbWN>pdKN zlAno>?sBFMJnF!;Rabwxb??dxUaS3bW*#qkPZz#yy@>XSvr`Kj-M=-cpA?p84k) zKXXk#xz=AE`G%)+^utpwYAj?;q{)eD;#umKhx`D_@&Sq(2*{lt#W9N^|R8Oetd%4+`$XikMQba&gejQ@15f#z4{ltaw13Y@BzPH)uBHgc+t^0xzS&a)puXO zslWS7F7UmpKc9d0{M-uX^jl8dk8-NM?|9(@pZ9R%LpS$?ynGJNYUQ*2@@H=7$bULJ zr=R!s(}`|-LkB+713vknm%4JN9{f{xxzSG_yqt#{?^#Da_`wHt^^sdRt?~x9dd`^- z_2my<@A>8L06ct`6Z54$UG;_IB_HICj{45~K)&#ympbyrH~i(tyvZ%S+#l{WddLr4 za;=a3@&bqbc)-ao{(27&9nG<4^9v6>)x!^Oa}EbTk3RkT2bYyj{tj@SUwqaN4!HU5 zy?oM@Ui@@F%Zd3q2_Jvq@*Q6Mou|8dh+gVg@uv&_t?m{3r>^+G#eZ`Fhx_Io zS5M!WOMcKD4)+nh?(HAdl}EmtBfQ{V?Z=a!?$deiyHC|sPd?!1tGaUJyu88fJ>2x6 zGhXWPRZi(H_tRJJ)$^Tic8ihbTJHI1KON+P@A}h0fA@`f zzz+^O!{;8--@M2J99I4L;Jp6_nOFSO@jFIm=iuNY{CuRpy71%U9>iC_sUtt})Q_&} z(3`$+;O{-(wom{5$t`~7;?8f-`z(?;j&-uKVJOXub+FtJwZ?R0DSHV&-%fEpZ@%@+K)G#ws6QV9CT1$p5TL<5B53F zSGee>->R>3barp)!xwqMgC6pz4u9cQPwvbm{&H&m_`*MR_>7lxawji%nQy;qe1n${ z_S21jaLXIs@XL|;fSWG#wBJ6s57J*>eek{NJO9+X?!A1%g%|yO*9YI}<5oR&>4XQL z@S{IG{%%{f%x=-QblYQzt z@7dhq3zuj0^{1~~;E(rV{LLXg?h8K989#XGVIJsC5B!{Sub4+ToX7uXxOQ6Ql^*uV z2mEpgxAXARL(cRy=kBq2AHYd}_3?m@uX4DB-yB)Zp*nEV(>(e6gRbh~BNx_h^_%|T zWB%a$-F~{riTd=$M_qj7&&mh$u8;30_2Zj-sB51*^F`k5SD!BM@JG(nIjgT{`@Dz8 zIp67}9~^km>$Lh?t6Z4_^XNOi^2&d?RL`^3d2`Gk{PmL`eEElmzJ9-a$Di){xgX)6 zi+RD$9MeccpNVNm}@xQ3-mI-@aStlzu+|A_Q`|$$3FGkFZlfppZ)H~!`|~%KJ}xU zl^;JlXHH&5ef;GLE^`aNxlrF6(}6Ggz)N?1%?%&)!$)5}(osI~mwWexbNcX?u2%Wp zh7R!f{ez1StNrx8>6yM;&-T;9eMDb+%dP$R=#Q`S57jp(=912E(NTZ-^&U@pIcHwf zcc1C6A6?$Vqn>4z`r^rF z`_!W&-Q*QMbc+lVct7D&4 zU-it7@A%*?U;64N&vfB~@A$h1{GG!O`O?Pc?;V;gdJ>x?g|3!~e7Q=GMIE z$7eY+UwGejp6_s|xB6~A;O2vT!An2-cKu;1?h0iof~0$cJsL>hfDYtiH>sy7)M!zWab~^e{j0 z;mHR&@d0o7#oIpp>PJWQ3qA6)eI`?aNu^M86?W0g<2 zroVdhhnqg~<2$|hW8T~+{G_LT@O#EfeY(jhTu<>Ze|TN>erttS?(x7=KIPtd&%W!U zKb)S;Cmei~E56AO{Cu$wJ}W=z44-rQngc6*@~A$%`kPz#o!sdwKk`ghzQM^~_nbV? zjV|UCE_sm)@8v;XKEMmd^{0RT;Kd(4@9|U5d-(Vx7kC_3pMJi}H9ytmlY82;dxmfB zJwCu^&gn#dyx_vyGrd=M&CgEH`l%~N_~WV1^wU1~7QghR%a{7m-~3wTPk(sn&FMW!*yC;`+RqAy!D-4^5j`x_+Hyj4|>DPZ~N&@H$Li57xSXO9Lfv7^}`Quy2z_K z^60%e;fwo#PH?G5fBDcKe|6mJ<`Xad>0_?x3nw3Z_kK%n_ci?Ls^fmZLq71Mqr5o> zxBhVY?%tydU+Ir0AK-AFetb9g@Zk9nPdPRJ&ig&qUmbir+s7yT=m3|T!eu`{-AB&3 zCq9Q$U%GkkJbmED@2>N7R>z$AF8|KsO&9vNLa_;_>Tkp-U9MZ>p!OhRB`kuDR(PPhe;VnP- zscVIk4tT5Qy?Nmyo%C0SFZS~XZ{O)52hQ717rL(a>96lLc)#|nzd4jg`pJQnukuEB z=RDJu{`SkKxiUv`f}c8kmUnrDS3S6_&cn?|deV#Ea%(^S_R-TEy6^VVQSSJSufFu4 zlYaKwr>}hBO&@jT*Ie;ee&|XE&-Bqp&eWx+I&w!RzBxyiiBsRHllxaLGocPkoKK%W@<1^<( zzSWc8+i>zlK74l$PVe!6laKn!r8(8te5hxB@Y7HJ`693G89J=+U$??xpWK-vI>F<9 z=BGY**#`&T9_r_J2oJdUtqxu3EuV6`Rgb>v$m>Vno%`7{z0I2yUn_oekvDwist=#& z;ywTWghL-ZJ>%ndbEp0E!5`&DkPr9O$Jcjw`6=)8FyFqb$4Bqw zgkJLOcSUaf-t30Q?}B>nMRO%Ta>jQ&^fwQ5zyq#t^`obifAXL{z4>7-_$GJs;m1}V zI(XKPKXRbI``1c0I?zX6exsB_s-*IAD!W&E8hP%XLPgAJpjLcaHva1IiiO;`Z>44t*$wv zkMr`%4>_ct{HteP)csl?IIZf?$GwHGbLLuo{I=@S3r_jL8xH*4Yv#&4>wi^UI@piD zJe;+U?{Z|G%*S*4@PhZW_p4Q3KH#k{-tI5^>3v=u{mjSKdwk)Qb9Lw^zwq;yUvTNm zCw1)eOn1LK?jtzxktey+A8z_tkKzT7{qn^3-S*J~F7sl)+`zFq$7i_sOh5A|C-A}J zp70)D`O*(QKFbN7@Vb}q+6$*V(UmXq;J%k9b<~$@ILrmyaLEV0^p`*W<4;#Q@SmRi zl@ogM1s?hF9zHt2r9WNemk#=Wq#Is%^2dJ9bi>y@1{XebmmBBcR+ld7)5|meo!8IY z@$)(!`0!O7b3h+_>A-j2x9WXw<9X7jVmsK7LpEYYx?i z7yid^n-BM#ee%OE{OC?E-}!7G{O)aYpr1N&sV}|tmka#yGY@oi{v=+$(+dvITl?sK z)H7Y^Nf&(SslI&i0Y78y`?ly3ULXHMh_UiTk9_`&VG?~mc&Cx7`Z*Xqh8pXo?v z{ouh<-o57+z4&64OZt8Zr+W!ry3vDvQ)lnDQ3rqbH^1nkKU}`^P5#_#lfU~wj^WhL z{L=Mn_}p*qF+R{iJvoEJInVgYll}I24-bD8d{+`3XNC;o+10>dCixf@As*hq-ir(GM=?@%7&P@s)1wTX^|oA3fXy{N;yS zz%PgP!{UR`;kKmYJ|U-0Fley^?kxa-**I**@c z_??FrPIE(VzI*1Yefs%*prifz@)1Azky~~6vf{%JJa>9eKXv88ed9gd;5A2d^q#+4 z_4!3FI+$aB_nL40;P5-^93FHsm(J5eeJj1qncTUT;MDhT_~(6umwj~5A6`Dt8!!2g zU+a7Q^i@Y)e+T%EmwBPD{qkc!yyn1u`O=RrR&`#(2d{achxh8p16}c#59g1oi@)>s z!|7Qc`8D_WnTylvu2%Zt?>nCI1h+o&0jKlwD8F(kU*4NrIdwnr&HQ-}hyFjpPd9kH zcfa~h2RXwJUwzEOR(*Qnr=EL7&Yf3}F23U1kymaz=V!wOFcYU0rkA3i%H@e|3 zH*$pcOS~^y;lTT@_xi(QzU0?FK080>Mqb z9GM4mNN>Lf`q0t5;YTMqJxMqF@l}t`e50ekljtyWq^^GW$qycMpqD!O(~nN}zl56~ z{L%NW@ARf8-SDwbF6{r@dHlUsUp@Hb9S-~X*(*i@A}HU-#>cEm2>6*PWaTr`=h?*fS=}=Uh2CK?9+!I?nC)(_u4tS(98ZgSNxD~yy1i! ze=9%v0Ka;CbRWR!nXd5SX>Q$%{F4`XxXuT>=mM|Y$rpW`SC8KEYQ+mKx@`4T2QPWU zPY&qi?`iwo=kTg?Qhnd$Q$Npq^-Kr)yT9Bw_UT72eDR{c_w?}{PI+|C@e_XYK|kLw z;%9E)lNayx)sK$e>jNjge3l>kuj?xht7m%9&w2CdS>DYFJmy6H?ZX>Cd9u&_V;f5&$PCCO$C%ozEyPVO%Jisfba)mEl`McGh4{(?VJiV7&c+9tXz?&{~0?gKyL$_6-{r*0 z2fD}!-_^lGPRzf3a%+ColP7%m1m|mfCU5rwJb2@wuQ}xho#-YXaM`D??{v`5DxY+~ zli%__dEuiD{^rej`}iUE@-Xu*kMR30w{Y5L?&vx3(-l5?`W=v4_4#?3Z#QG5zq;~= zH#~Hgf4rS{-@yaFeekUMPds$BA0K$=>mK`39V?u2MxTTBS>?n1VV`+{f9o87@V1YR zckP2)J-MX=ec^+f4sxgePIdX|yPUYk;N-J>(}RBS`W@Pvktvi{M{q^`nv%hIpiCj-qS};?4uL>zRx*= z(|7go!W%ET($hS6hRc0VUpdszy<(ktlsi7r*FL^ZJ6BX4-A zPk-3% zj~vpOzuwamujBZ+pYf0n_bvbFpbmWS$Uj}=AAf(hsdrg_KGMfCJ={~?%a{3>xmMTQ z;74cqaGq~;`VlVr$cdFsR=CuG*M9Hep$oqJ@SV>1d!`$GeOE^xd7uLv_~~bE6_;*?xJFTRP|uubkLtp5zNpeyT$cc;WY5J--ihkas$nOL+Cc-~H;| z(|79WJw9^vUcTVLA20jeOFQkyi=L0Yms9WYkaPHt+AlBg$g8=w;zK9-;O}eoYU&tLrUkVEt4y=QX-Ki=@HaNy5hIN*nu zUvuR%-^?E#euv~l9{hfoXZYN^`rx&N_o4Npl^^EMIp6sqpK?wg`{>~OLG|f?2Yzt# zogb@nelPT;qwjJ_m#>|3f7owceOJ$Y>hCxC-~*m~fbXR~bmKc8@xmWo`#qaKc=<_J z`0V#POD`+jR(foo{{7QeKIpG6ymD(^oRcU1sS6)mba}2Xz32~@`QZ<~awKp3k}G}S zI;)Sm_`?r}9MQ}Cc&{%X@uSmyefTr;q8`7Uqnmr%>fTbveMw*ILw)V%6CdGmUjFDO zU*?ZKbXNxs{q%?5{jtJhKKzdHW$Qcr;g&1=;D$pz{P?7fbLJgC{qb{u(OF$QI0Ab(^X%2(wEM1Y#!i|XL!9gpXTK)-0=FY9(?kO4?On!E+24O<$(|8 zjJ|V)4-Wn0(tG?SU%am4XMW71{ru;TTzUS}dHvMkv)p)3k6)cr$9->}<tp{yfXs^g|!}%@v*-8&NQjf3Zb?S@{yyn0;_pO}p z%l)tuK6>D%4j=KAKRUw&x4Co=c$N!z@K(>grXRiK!d#grIo4M{ef*t7Z@$Qr^L&y6 zzhCr#pUzfw_3<9Dn&v2l}WFkNKc0{e8!uANqNZx4!x~@4LC-v)tlIU+?K-F6iJp zALK(F`P|9@T=alneRKS?{pL~b-Ai<#|8@J-b#KVI`uNkA|MZ00K69%c-RR?)zMkn0 zC!gI1bhOgtA|7z7qrdlap5fO|KH=Z3?ixCoLw;WNT`t^f>eKDHefoH>Ki}~=Z9g68 z%xCLI`{dcY$k*0)Iirhb`lye$9LdK{b?}laI#}gE{`9A-yz&ojbF2>j_#D<>UHq-i z$+aBFnfh|T2l~+&KYFM~C;s!BKIZx;oU2tnoTnq5%o%<7k1xFZ@?CD=^z58`(Sgq9 zjlcNWM|XLpk9&j8^qe{44}IwhkGgc0BXzu2A3nI$fn)0GJfG+T7k^&zM?TzZ{DNOj z`AuiJwEn4{m2d6???1PXpYYLl>$_Z-7y01tTl?gQKIQ>G`0(IAo~t@?IdSSkKhN}X z-tUsUz)3fK>7tHv?j^YREI)kXm%jEnM<@NNow_uk{ZdX_iO{IPEB!^1vv3O^lv_j`q}Jm4+A{8q>N+xp_` zJskXyTX^VfF3dR{)!nN;UDdnpy?$~)Upl_FkG}ZI$LhNr$fdc1mrrnbuZ~>7Xa3xW za5+csi~7?+zTl;YRSw|8Q@-_aAA7c%Km9$+8yqvQ=3GDiz~j7}(8)PE^FtrJ_%DCX z%gtUo@tu!b@8!=v@9}UyulCbJ&h>Mzz{z($?sr~J=q%4KeW&Yr&+>(zxuvK5@^RBS z^C}nk=;wZsLwezXr@7?^T;8kCSMTWnmlc2YS9lLv>5V5H<$ZovNA7)>FY~1izwx0j z{q=>PZ+wPVUf|xsuaA7_W50RhpY^Qsp4D|;etkEG_#Snh|5o|K&;4Q!_@}?Rba6k@ zlYe-u`tnB(=;l6$Lp{0UpJ)B;=L7!J2Yuj&(>eX&)kj|J`!@7*AIUqM^rPF>Ik>$y zXZG{yVCoC6h$)$7f z>IjfoRu4Y+4t?PBdj*G_(3xLwta!?~b@re0?RQ#! z@!<>o@P-=>e*2Dxd)hM`N8vOd{9e6>M_qF>`(C!+IlSDT{BYjAL$|H-p7E3~xV)D) z_4zEP^28^7`R+Yj@}#bM^fB*pYd+-Dc{-u_piB;2ldRo zxwKzjy5Mu2A9$E|edSp`;JE3WKJ?VbGhXJ&{Ue`zraL_Lz0^nU=}u2Mz@N{a z-3Rc=6CLTJ-U^2tnG^csO~3p0`(2^0`^CJ|6R-WwnGgBpH=X2Fef!jrU-JhK{BY2P zp77H}J^S=`-m_IdD_r!EEBUbU4^I8*FK2Y8lbp!C_wr?x2YvW$&hUm;-r*9R~7%^`jChe!Ul_~KzTH|}FN^_}}B zK6B}JRqo_ie!Q0lIkb9jzUby&fx~{d^@U4r@G&2Be@zGb)t4uHKj+|> z`IZND^uwDz=Hu_+%LhERzN@Pa+;@FfPu}H~ZqB(6)TcL}?1x`}eBpN=;%|=NltX&K zslPt*On>$4!%Gf+##e6S8cuVeo*bEP`1EzZz>gna=%WsO%tzHrz_ zKkxN{NAB>ZgZ}1)-=6tMPj%&ouYAK(Ki~0yPanMWp`*F{J^XQwKi7SC?y6@i9Q@Vq zTl?gL?r`AY9-zD2b>(Fnc<8`4_1%|zvCmw>EswtQbJfT1qxre*y*h_IJNG=! z(Gx!B=!8E#_=&%Mc-d#J^fUK-kvI1r9G>~Ye>~;G@0GmY#EU=lg~LAgi+PlDJn007 zdU*2#A9|@P5BmGPfERvv)uSIh`LDk7ate<+<`jN<;>llgg!oO=gpbA^x>EM z$(4Ej8E<(~*YAh@zSD)?aPrl6IN(#q>VD9lF8a{H{L|HYbAcCs%-76|d2mjhU-9=W z$Mkbgm^(P+3vYb%SI2!MFI)ZahG+F&j=uGbKmX-eANQ5_e086je>&0G9LO)d@NkYk z`Z;GmJ>)=N_?=VF3b&lmpRS(iqrUmpmp=IGZ`Fssa=E21zUsQ?_y@1QU*rHUIdT4L zb>$5X@6E4gJj@-v`C?w=LY~YSey8=NAKd&hhwcOK&5izizsVre_nk$nn&m5 z318pgbdC<@1RwXO{^o|RzRMN-{MDas`pBg`(~(Z_`wl1GJA*er1!W;{G$KV?X^B~A>Z=I2e|chPCfPISAX-P4xh~5+$YC>!^L-c zm}fpaFK7Is6Fk

    Y4}lg?o(-aH|KmJjxwCeE+CEzI23-pZ4>co^zEub*%K`*HeAz zW}kaXKF!5yzdCrkkDXUnew{Z@@<&JY)VH6H`18a4LPxs8&1ZV4>m0qzp&atxJm7CX zzvUWEyglo8oL&=`eSCtKp7gWAbzVL9jyZydp3c$79MD;R`oPaGI_V?7e2~A1n_u`k zFK_ZsU--?JIo5BBFT8wG2VN^YaPrrEt&Tayd({U{`oVwPclU<6c+%Az>(3W+El=?9 z%X$3tbC1ABAKxFt<$hD&oauklKIiDIu4mt^Tj$h$?wQ^PJ(~~vyyug8&e4sI^s&!< zGWDmEy71UfcRHPi4}bTEe8EFUd4O-H^X@CT)yEvD&rdmUf5UCw%(;Dh#@D=i@0{Gs zzV4;je>eQz%eT41pPuGkZtylQ?h)Tt^|x03%OgGMhzFj0$5%h!@mG(p=A4dj>jN*p z?T3$F^5;B1=wqMr`r9W5c*&cUUUb0Me8>}@?1S4}!8iSvE55$ugFf{9JN)sT|MKry zZu#Oq@g0A-3s9nHBq_;^nrIp>!-HZSVB$JN8%9C(kvJjmhn zMPJ|fA#ZYNPT`@S9O2J5dgDP~_2H8<{pkE7y(cet?AI3_{;$sS*FCGgIg`Vu_QPww z)HBy|Y{koWzXN=b6Y~Kl-2C>QUvSYE4)yed(_G+-Kb;@q#}_%0Q}>lT(uWW9mVde9 zhjZ%k)x60sUUY(AF4dAbm+YtQD}c{;n7 z-AnSQt{j?6b=1epoT+E!Hy-?xBlze}FL->HA2{&!3=jY5$3JdD#65C8dtFI;e&7w_SB&)kL2dHVUT zKi%l=UU=)gK6ueveg4V~Jo0J(UiHkob$-8YADo`;=Zn60$v>QQhD(3Cwtj`AxX<`xe8{XVb3%e}!LI(m;6o^-d$yIiUd z2V8Ws^6fZ0_IYnk_yeDNgfCX}tG>CLIQY+RIyuiT_Xz&{p}#u%sAoRlFvoPEBR=Zt z=R5t)BYgV9EgyLL&KEh9U%uf*f4<{Ecjxgn_v-2IS-mY^<%LUqzBT&V@4WfGY#-m9cI~$T>LVx=FuFgFRyg}9DX{io_(jA z@A%=RFQ57484tMq-pM(Bp84WEJp48H_~>IE>0&<~aI3GM{dm|XhvrKD+z)i4xA$_) zZ@D)|`tS`-c~?&k=;<7u@5ulCVXeZM;^T>Q0PF8$pN=hl9@ zmeQx6o_eIa@(^(yQ z>PrW?h0i(lOK`OZIeR{iZW-_Glcw|uEb*R49v>+{@u^MEfu z`K}H=_nk8j_)Z`EzW80_uk(CZ)#KOJGrV$WUOdxNF8P9oXMWP>PxaNY&m71J9d_Ff zFI@Pj%O~^b{`}~?`%`Y^8!vMMpB&JUK75x0{otOyIj0`q<=uXG>0mD4%tsecX=2l-h!clBL;E4|cLM}6}u5B9kqray9~KYyHuL(bpBWuN;^4(Q1z^NT0H z=xq-1lXu_wC6{oh2akO71t0y)vuEGw#y>joU+(n5k8bi|A04)Ia-W$8{`A&hK&nFJ0voPddO$UwGUr{I<{U!$Umvqa%IHjr{&< zzj@#z-SnOFB?s`*(LTPLTl?^~A0PerV{Z4t2Pd7(CH>W-gE_U&9Pm?L`t!?N=*L&} z;jy~6=&Yaj{J;w?Ia7yD^f`>T^WNL%{eAoROAqhmU~31mGLBXG*ARX*L{d~=Rp@Zrs8yqt%Rj#j$t$KR^1 zd67H0mlL?`^PPV5P!AsWvwO>XJmlSd#c%wreAI`(bjFVla9inbp76g&5BClK%#FFA z%j6H2`w36}$cOtt-tmT4zV!Eg@{>pU!%08ios$Rq;g!3y_}d4!+--fQFFpCrA9HRW z9_}~&@p8^SIbQYiyJ_V+UUEiPeIGk7XMCdzKkav(ug;kp{XO$Ze&C@CK5|S~@8!@l z{lA7=KK*@2KYppJAKl>Ko0U%P*O^oO=(2^w{YMY;4;MYn51rtG2Y&Z}y71wJKfUae z8~x1_y!7+zUWF4b`|wrQJtWWcw4ZLitG|;@@`Hzda=zN9j@5l5M|@RJKHod94t#Ww zNAKmGzH;_j9X`+-uZahL{+d5^o%7y#{NSZC-QlqhZ@IBgUGwZ-wGSVB<(%&4@uiPv zb)9o>%DMA$p)THV%NIQIAP3vf`%BMslV|nS^PT_d_}#Gosd{i(_j}L3$-_MQZjR~l zt@CnXzg*JGvpJ=&@AAc8`#r-iH_pN1{-6v0-P3aAd4-!F`tZZEzUElI@RbYr>G8Mv ze0JZ+7k{?)@xgtIA7ABHUAeN#hx&AwtNQx$!<_M-t}A@{;A`&SlvnTJu*we|?8DDK ztK8~KU;W*4a^gONpO10@r{7aL^7lNRbmYH!7k!6c4xM+udXL}iLwEJ@FgFvg`G(^l z9L`(ylY8?`2l~*Jzw|$;u3WF4)sZ7O=wN>6>h}yTe9a%6c%IkCK6NH;b?If!@R94| z>cPA9EJtw25k2*_pO5B(Uia05n?Lrc?-^hF%rRZ%SH8`W{`&C`58vgF9&&2Mlh5?C z;w`^$(9!(`ulMG}cY5Flmwd<-9`ZqN`oe8Lo^pqe^YE*K7oFgBzdDZ(ymUUwUv=eF z{`g66x%C~cS>JragD+p?m#%orw_ND|5l;Bz-AX^_+Ak=o)2{Pp5FY&i*C;8M{m#k$6sIj;L`6p{qBd3&dIMFImcJe^y8a)bn=W3-ZMXP zz*qHG__o$r&wQCH`1nYl-Oj7)y}Irz&-_(i9?z;H_wEh;(OG@C)H9#-H7~2W(?59l z#ZS+8!QojR;eM?CNh`mcGgtP_Ri5bq*U#$Vf#>b$C%?|ghkVo3-0@kzo9f{wCvdCl zna^@XH+A^JH*=?-b8zvEp7fO){mhSiFGN@ z@Ov+>=0`qPy2C*qJlqd*B)|ONlf3FPbAuOLc*&7Ec+pE=Jk_Buf9-=$e|_l7H@x^~ zpB&&%C;ffL-*@%&b#L+;AML=1H#2&v|+A zU7yR|<8O}L7gv3kFFEm@-uUxL-t~vieFPuh)mL}bS3SJx;hvYj`K*q)(U%VD(%rgO zU%8QUIpwE$`jw-#o~vet7W%o-G{mXut1#@ofKd z=kSDEU+3h-xnG@|=k3P}UVY(y>pWlNN1n{HywTTtb?J)tes#^2^KhF#`GbQm>cS%@ zatl8k`s+t0`}x36Iij2T_|ab;%sE{4(+w}r@<)H)t(~?;k$!z;D0%n$D|p z^u%-WfPdaIbcP!a`BR?`az`IJ`u-<8^1u&1^TjBmPn>5cDJKRDE(pM3i}>SpkOi|_F8ceNi6eJ*=1S8_rZI>0&g;g3G@fv-M% zFlYRD82vpvudh0Epd+36Zogd6K|S*=U%qeQpgWxOrz_v|H%~u1ua3N`M<@N@p|8At zRA=&`t3Kw%-n*a{Kk*?e6D_Yyyq8r_<$eri+BA= zZ+w~`c)|-G;TfM+Jg5sEd8eP?)=%;tRv(_|BmeXPe;oCW-{`JR`j`Xwh5x4ac%uVf z!}r=fJmU$j)pzyco4)dhj|VvUS6%qG@|QU9sT&UdP@i@B2`+WPZ_ju1fX@mSoy{?N zc!v*o>CS)h;uGI|MK^fF!Jqne{NvYq_pJWj<^z4D4}KNLULVPWH}e7ybo5^Q`5k|B zf>$1K^qanb2XB1H4_D#lAAI3cKKgoRUeb+T>cx-v?$c%7Gbi!jJ>Gp+x43ZX!&N=_ zmd87B%^lz2a?g8t?dgCIfB)d$edqX^c@D!VFJJ7=k6Kr&xj;vC@C)AblluIg;K`hG z4wrLy#J9%_Klr=Jd-E1A>fsB%;sf{PrJuQ^9ysv`hk3y7?!!ede3@hBi+uDnkKDI^ z6aRBAh;RPzDL&v7N1glur@qt2>fPmaZVxwoCNF&F-S6U<^L(Ly@Qok87w5gBlY04$ z&sO*N%RO@kzq@-*xuPcQHIP<;2)VGjq~>cBTW=_Vc?+*{$X z@;@AWgco|N4=()R!MylTd_2Kv{`igu{?nIMKF~Mn!Gm||fS-Qyc<&znsKYxx#IO3y z6MWzYKEGEpAH2@R_YPlpwTF+t^^1AJ?|6XA{1Q(-`r=!Dy15T0+~&kiPdw5LbvcW`)z7kI>R-?_Nzp8Pw<2VMF3 zF}~@mf8@g(f9NZ`;+>E9z&mx)UtD$4S>K3{fA>Cw(;TBe9?YAE?&&l0$UC_3?Y(^T z!v}ul(|^8;gCBhGiF0w)1BY{SR2}g1H~-TU&#QXzroa3hV7~D;|9t74{C+p=`GbDy z_nklS4gcTb%7YL7;}iVQN4@UTTYY|)#C2bOI*CUYb>fxY^3xq(?u$<+^-lijqCWFN zes%D_`1~lYzT+>txsMm`=Y@YiZ{6N?z_11(SiT;3%~i!=lV^2 zy6_=?m2YigDUA{TD=*I7>d-@9h^iYTT z-8=4`b9ngNxjgFdZvH;l^Pf7sH%HXNck;lC2e{2S@AaiT>h~W1bo^DFbfg;{`AmF$ zKyUZ)&Yyf^rK5iJ-h5EUeR#|VJm4LVd<++!_`^9p^go@Yd_;DKK1RVSU~aZh}>XMH~hZgKhBeSV~`ewLSB z`b9nB(On$;@f#k^Eqs3tA0EW@4qy6M9DLzNo$%U!FFu{kd3eRQR}a1A!U)j{{Yc-3&fyf#cl>z|&&M&R6LB}uU!!!NiRX=_C8ywz2Tit^T9^dIPzvG=h_*&icg9Bdq`A41f z;z#G=xUZkhX?Vp|C*0zg5Bdgf`*-mGulTcW@#reAd-$|ErxP9Zm)}c%xC@7sAAMIZ zz3~Gtf2())pFZJ>T|V{W1zvfdx`$tS!RPmn&U~nTKGrYd!bx}d-Vj((mw)Ae4sj$pe@E^&Kzp!gDcj zyT|u*!9RR($j8rg#TOpn^`0K|gO{K9L|&`-c=K-d6+HB^$D?^>-r_+&9>j~^EB)ji ze0X zJoJ>`{GPvpbt3JSocy!|{d;Q`ao#5poym@C%c#lW;=;IxH?u(-i@98bS`qTkG zAHd<>Lq5SPzte>t@bQ`a_Vl2WeDsr#|M3KmzB4cFZ^9=(Ug)LY&0GA;K2eAG__XI2 zeDbUQkRLDB+wkpHe-GmUEWWdcc7n zxb-jo)c4wZ_tXogck0H|#LpM-xCb{K@c@VK{LcS)@b?=Y<+bP6)9S#Rd-TWG>YjY^ zs29%v>kGWnm;b!yLwvyj7ryo1@9^Ny+|@_&S@E}fM<03lY4sgX>cuBMoQtnd`9U0e zzu$bX-{4TU^)MW8(|vbt{+Y+}^N;W9!n?Rn#evT~{eWLQ(ADn_ztIm5?$Luj{HAVo z(ibo45J$hQ@XoySQ=huz!2|!8%l7KQi{Cl;cX`#pU+&-a9S`oq<@cHX@Z;Az{X`FW z_)Z)=+pqHDQ6F02<`aD4h5zK^AMx>I8@V;`Fo&Vb=-#krqz9VS@A`G_~^!e>i<$a^UQtt+&2&PJ73`kuj+xD&)lakzUU=B z{_Ocsef$WQe)L@(@Zb?Hd#n4$@jz#Oz$g6pTHW_fK0X)6cRs|Q`otHH@6B=jg*Q5S zr;eNO%=w^hyqX(yw#p+O-rcu%pa0bhAKZV!qh5Z3kN=$W3m$*;UcK=9dw>t%;di>Z zZ@n)b9rTkvQYZe!<1_tiJ{%X1j^fBCzPRf1Zu%C#czq~7{rFUTedC-jCvWP;xBB3l zd->>R#k0QM;e*Fq#v6UaS2umk1@*!y58uFJFOJoB`TUOQKRog$zj?23;NTB+iR+$t z2i1=s_~FF2d+K$5(R=-4e)*k((|3J|XFTc$eMcAH%`I{GO#N^_hKH|wrziYy!;2q0 zz~_AOi68zG2QS{46Y`r+_%RpYQm?-94li)1Qyy{X#5a74Kk>{1@A+iKpS`}+k96^# zAJqew?{qa+)PWay#5pQIeZ`@RJbeDzeLmCI__KE(9z4=ReRx!-_xc4M`F@t4ZhWC0 zb*LX+_1yQ~e8t~c=jx@SID7}MIO=weZ+)+RxbZFSDlZ)HPJFw2eD%4#d-A{Q94~nD zUEi30tNVDPkNVXEpE^GFZq`9Jt9<9(S3jQhue{>x6ZiOuAN23ck8eDfE9zATzu<|V z;N{O9Zu#{OoOtCQ>v8Yk@D88e$%D_6-r>*uprg8dU){&A_k5%tJc(mfzqok%P+W5Z zK04u#PsF!}gN|15{VvgKmv7?cmrs4?2fV2RzSX^pRyxoRpZXUrdcvm;eQ$nzE-rrX zM$enR^EF)hR(?L=5B1pdi+gxb58d!=Zt^jos}mo1P=~%(A6>py2Yv9oJI9wi_TqSt z7rv3-o{#v9kL6LHK32EyeCKxpT4N8GZ2# z7v12%pE`W!AGr04{QL_)p5((nJbbbK`R^ZI)a4xZOY~cy?|*EwA5K_r-yqet5+XJbYt*;miG19{2I#JKoJ1{LDTv zFVxR3_;z1CPv!L;PI>gr%>UdweMWb_hVP+!bQ4FvyN^$E!#jS~-}t7_Dn8!$!5p+V zH`FbU`0((HJwD*Z2Y%EIzrK@CA9!aDh^G$q=~wsetB)Vxrz79%fA_6)kY7FWc*i&T z01xuu*SY%ir8(rjc>GHT=j!%eefE5TKYq6AAAIOjIQbba{!_2|;i4zJ@bS5R<{NV# z|2v)d)4d;^(}Az)plz2fOF@9BqkKEyj*tGMdr7kR|B%4_b@$GJRo_njW{$PXXg=)ia0^DP{7pszW> zANal;yzwu7y{DHwf5~U=i;Fk&jvw#_Kb_s@7b|@D<4Zo0SN-(EKmC0dPdRuv(Mf&k;xl^j1s=_B_~_-Fzs13``%@=#O&z|Q2jcUQdHjF< z2M2z|=O6t{FM7bs*YJviU-i*r$2;7UUwQctpY*fBp-%O|Ll1j>s;~70|9OvBKCtH# zb;$2re0ceVPw+z@_xV`=Imhqh=Q;kItKXcWw>b3k`(Qrc1%AGxn^paO2lWYE`CQ)F z$MWHuuJnhSe|PoKMSS|`zmMHh7riDw__nH-PTv129vpAliwiHE{Jmfm4=?J*AD!^Z zhvMrya|bTxe2))0sCW9(9zOZ#eq4Rd@hKj@)FBRE>Qi$;T>Rm~d;V}wesTB$AMUH4 zPxLkayC)y~tNQeTKBI@dc=V=|@4GmB2fw~@&uad;M{oM^+56(c>%04K<42wF(_b8X zyc8E-?(vm+^_Tbjtv~o2KJV$oAMmKl+{1%B_)>>_&he~%`QhgS_vSgC_~1)Cs1Ls% zIzMW~2jAikpWev}zdUr;m*zdc=oh}SS2rAA!{hgOuI}kW{2upiwZaV#A9_bOc;w+1 zaq(s@;K_<_{NPnQKDiHgcdPrSz~eDKmsTz+@YIlt*Q`S9(YRX>|2;@Z=l4tz^5{=tjiH|Os8t`2hp zF7GDabmt3k=w|Po{=qB%;q^y4$;(gbrI$LV?r_lGJ-&0!=T`pm{!KXeKwi4h(S32~ zW*(_uo$}zpJAKdB;?PMQe2Pyx`TLH3e1%uOR~J9yTR!pa`On`o{EQcVbS{s1=l6qt z=G|-j;?bOuXZ0O_{D3FFQ}U}5pWeBzEl{D$5Jx`s&`ZDJS$*>1O?>>CEAqifC-X*p@8}MHGU|$g2*0pg-`UZ|M&wJ?MZ3eZwca zeEdZx`SD~u?mnITPRS>p`uL7cbig-1dS~Sa^{E?veDN*b=;ofjf|p)&;zxL`>i13@ zJn1ieD8JQxc*LbY{p42fp0v^D;__olU~2lRUEwG zK|FnN)P48(f#2Xg8Gg}E>Q;yNc%(l(@Zm{5{Loju{@$Q3pVRXoTz*I3Ru`SbSBE(d zw|n|fem;iNo_=_whq&gG`*86K{@#TjU+RE|ZdQJ@_ugKA!{_^BdGs6H<|N+jy@S`D zANbIB=X`{3@6_WyetpNAKJ(s+FM89>Jff>U;xDUw;{RV>{^eJEzz2`MgNJY6z%Rec zi+}O>1b=*FRo~grPhU7!4_kL2Z3xarCdd?`Mj@Q7D@(AjtI#dY6zym+TR`r}J}^UXbZ#c}Q) z9^uf(_VRp;A3DPM+&SO>X^&4jo4>w0mw(pF7v?bCz2i&w%t`$NAD{Ba3Lky>Lw@J# z<_9?GdsiIu);XT#fdk+8<8S!n!K1!W58miN_qmscpZpzwKe~EHKl#-IAK&AdpUfw# ze0UR=UUZ}bpQ#t`>K2EO;LvyQs0&Ycq3dxv`MXe`;Klq9UtW0V=N-N1sJ@vG9(<|a zJmHuBdxuYT(p7!@Di7YwJ^H~9r#N)`8b9{((#5<`w|l>O2akO6t8c!$>7Dt@clwDx z%{%dS@90BU`uR>rxbTE`_vz`J4)WniKf_H=yx6Osuf%y9ZhX*_|J{>MUE=Zk#Ov=# zxL(SG2l4n$KDzln>sZC1hkNk&&Tsq!AAa>Y9X}NJwv~?N1f1UUt-9#IFXF;4KRxBg zw?4rGJ*GbV$LH#!t5yGt^ z{)PWnJm7_o;m3<}`SdYe`a#|KZ>tJ`nFbKhs&i;tMWyymp_D@Bk10suw@@e9GV7iU+4U+!s$i z_3B4{g2Q+G@yRNW_~P*?Kd2XO@$ssDzgOlKU*Ori;vfD{54`+|U;6$IFP+r$(z!i< z(A7Kj$R`h+^c9Eh-s1<)>c$tm-t+AapM2i)hx$Hrj~;kjovX`xI$ZW$ef0j^xq8)s zKX}AdAOF$GoH;8V-1NeOym)|zZ{*ci-rM7ikNC?y@$`lI;E|Ue{3ZXV@VloTyzq;8 z2?zh`1ALqp4}W|_ Ahyu#0C2gReObNtHh9{uE154?CXzpZ%P<@1i;_)q;5YqCZ#dmz=N~%q51jl%SN`0+=O_5!P!Hbt z!997!(Wi8z4;|F;sl4LKFOK(ofmHrxrY?2T0S@`p!58MU zxo5t6r!VQFKgH1}aPm1F)lC=p+%t#dx5}?xe&#cIox|lj{qT4g-}s`V?|g=Te&t`h z&`%wB;bV2-M_lju+I{i)#CP%O1HU=Ow|IubT%oVH{4(+Q?moTwnhy5-ieGxcK2b5#j%l!Z52tf+#ODKZ$vg4XW0g-|n49+ac8+(xHb?k?kMteh)w!$lcdNRsXPwjC z9$x*RK6v26!*g-W4}8IA4>#W6&`0{sefiIe@BF^KcjCdl`i@urf)8%>$}28k(Tk7y zPJinIe3(<>^5x8Hj~~7@m-t72<7wh_A1~&ad7|%phnG+I0)O=NUf$dI{MM>Y{HRBK z{fbY%g^xb+%Y$e6_{F&ue!k#$eCs1R!e_6(r|QA~X?r}VR~~$-(>rnH7Zux4kMHIx-u0_G^p-8o+2f!n&e#}E1m z9({mE-@T`c@8a>1dvJX(AH3#>xcq{5e88{o@IB{&c?>uH+~+6f_?da-qnr6dH+Arh zxj|n(k;lB*)sG+X@dyWg@JDC$PG8XrPVw<4zIb?`8=T&mFZSY#XHO4(Xin-Mdwe)| z-)att&+qr~MGyGJbqM}BbrR6k^SmBU(r*Z)4t=wJG}Tif=+nAFMM#ASK`nUPwEiYxww4AZ}7XP zZaj-;uE=k`d+$3QCN6RLh+pwdH~na(FCXGnoKNu!zjtux1O8J#ew^z&dFZH5=%o(t zvo#k^+UU~Q&z8~RGw>s2~2Ym9oxbX3h?{x9I1t;G94#7M5 z;8!^HmwWVr3qSlv2fVJwL8@Y8`0 z;XbJjdBx=~z7aYPv2gJ-@rhxip==79Y2sYhSa`**nc#CN>o)q8Q}!v|f=AG-4!|L^kYFZlG2 zIpI5;R`KwqU&P0cc+S0tkI(fHAJ9u2bz$P^@#0*ci=!@i_*`Z_y^y7O?UU{Y44tV-mA}Cpg+D>_|(mp>cEqG zC*7wnp75v7?BSx9IOe@N;Kr{w`W|2OHpj*B9xl4!jZXG($)_LGBfhbv&`?ezy;W}m<Z(F?zLf(t)Z-}z8|_*S>P=Bapi_3meN;N9vR&))Ij zyWY{4|5oSt!Vmt+g&u_c9?$JX%^2qBRz4VDV z>K5NUI;`^HdG-T*aQI!2hyUdh4^MRBQ+4B?ztzE4-oe8^-t)V;E-!!3^Q8Lt6A$>) zC+_jBxb%aU55%JfUg+dLf6@UD{O~1we5YT}Uk`lp z(gok%+2alWaH|Io`j9SGb;*wpc=?8p#G#u!>gGfJ#;5Rlk2mu|9ys{lJ9W4RCmrPB zFTDGX=aYDTX%$aB@~*z?dpxVp?}GUHhQGwYn?CqiTs*)-XZ|xU)JZ2e;Nx$7sBWve z;Dv)vI|M&H)Nc;y7r6L? zzWDK8Ub=aYugmc1?}PTf)0K|=j}Q68SNHTOKk?n$^6(oR_WDyD^56*{?$JTLyZC;0 z-Gd*m>XnxtoU4m2zQaLZ=i)q-U%u6T*5UV7Kf8|~_3IP5^NqgH$CGEeic7bf@bHcA zc!XC!s?&Y*jm~_p&-iAKJoe&S`9{5dNA$VBJNR9HT!{6$b z53k)IiH_=B-PbQa+N%p*`QU^b&(?3fhXbGD$qTP~@#A;NeRE+K*D9a)`qUia z6LDrfdg6%>y%Wzp=lJ0}K7dExc<&wl#iK8t%pLuTH+_#+dwIR%Z+)mg@JcWF=`El7 z`I7(D=^k9ZU#E-ta@+p2)qOhLbPfmne1>1|@X9yp`&FE`t#HbVFa3&d`S}EH@$o3G zbGqUmet7Y)!lN(gV09lZdGM>x<Qxt>=s+)V^a~%-NgaIZ{32ZVgA+e+@)?}ItDn#CC_kO>ZjR8IKlnlY>Nd~x ztGINaE8KA4T|D3U)1J=savxs2;Q?R#;5!_?+tZO=_`v^;e}47*04E&!8^7Yxo32mA z;}_rIx9TU~;ZVQ+;|n^$NB@WNd8aPEpda7RO&mDrjZbmpbq`Lsyb~WTI`}TG)px$K z=Nt2rU-j2>_2Or>7nd*SZ>0--&grC1e9?XKi)TK>fYVQ4(}C`MiU;v0K0cGjT*g12*wfQ}I`b|5_<+ypApfoobzQXg`;KS2(!qB; zxp&ihb>iQBe3`SW`!B7|?dff=PW_Evy5d8f=BK_;2R`+i^B>{B8~>>fUhn8_-kDSM z;WK;p>CJ!Y<~M%y9k2L?4=?)pDg5&J-NF}Loa=x2yysW==?)+N@SBwmcoNrlec`?P zc;j#N*yCYWA6@AHm-zJ5m-N>M@ZiB--{8+V9Mg|`10b( zJM&IFyxRLN9{)L4KVIpsZujovT_5W^{kHl}Z*}7RqVIInXWq$YKIn5RUfvc*efmQG z(Lr9g@%66v{0xuzhhKWDU;ppkyDuN!=?@>>o_fa*{Gncah${|#)VYd72X%TczB=7k zuf2YO&sf6L>ZJ`x{pI`WBk_`tL8_^0bC zkNo&Gm-(0f@a7(TaO2y1{%{X3zSGehaPFPH;wwC;4-ZG94!%?W>?gdzO=tXiXN42L zbcIJ8^V5C!@x{;T_1)fg@$ikeH`S@`J@$C9;@y2Z!s(pOaO%g0;-9x3w(_$${Ny{n z{Z7%(Ii2mr(|`C?zc}Usz05c9@To5SN+Vijq`MuC5aMGJ^@QpWmigOq~ zb-^nR-1Ju$f2(80*N1rGH~UpyzyI{$Bj@m{6VLF%<-R=X;v?_m#WS4zfk!@|*IfBd zJ@DfTkNjcX)h!<1iDS;Gn}5ZB*L%KD-_*gpp%-4opY`z}9Qfut`Ft1OJviKV&KLNA z^SL_kMGy5J_g&re^KPEw@wIpSFFqXV;O{@(SJ!T@kM$+J@uWU^-t^Auo%ndcgZ_b+ zU*(5eo%$8;eC{57e}{ul%tOCx-pS`ZekRZGuj1O{+g@CG;O6^@Tc4R@?(-$S#phdj z^}F|cp)NY`zk7J1qx2D9W`|5&=j_QZQ{D4DTK0Ye{ zmsa=8ODnynAMN47CqD41kNDf3PW-K2@8MJ@e0*rn7kF2f?|kLEJbb7QeC_yvPaosY zIe*N)GZ*MiFZt&?`r?Q0os0iFTzFB3`prjvpoe?vGLOVDPhW~Juez;#iU)Ow$1nVV zCvo|oFXY9)Js+!!p6ZuhUFzlw^W?aCPFl@5@Az!$yxktZaMBA-dEil}exnc$svnpbqgv)>o-oO=g1{^@)zIm9lxr>cRHz?F7WX^pLqwD z{?^y{fLA_!2#+}U@Sd)C#0#8X(;L65z51Q|-M}MUR=nG**L(e=ukdhKKKJlu4)7#Uh^H3aqrjz&ZuI}lpd7n=D4?g`wpZOh6d@3JY-nj?2 zb^1x4(bGM+^&@`m`Hf!mmY=Wqea8o0>EQRr9M=c*w(_}qaPyVDc<^47*PKwNzM!|d zSNHh~|K8yh4tqGAs{@Z#b+}LO_vICjPVVVXK5|bTcz_enUyHk2`Nem5@Fw1Q_tg&% zzxz&a{F;yaz$fmjS6$`@zrZiv8o1R%U%2>xcb~5Osg5^&m!Hn!@GHIW;@q5vPrdk5 zhdmtL`CZ`;`M-sWU)6^XIP@RC(u*(j0lxXcE5g@Bc+Smh`oRT<`0BwI-1w4DJbaoz`1Z~{b^0Bo?_;>#<0pQ=gSsXT z^Fe<8=M%c%3xE1ZKjRty{DVI}^N#*jc=^M8!WZ0pi#Pe<{T?6oeCgbZXFBsK9`MD_ z>cOu$;5{7T(2Gypb51|L@!tKZGkxh}UDXRGKFtq&@+Exg=QDiCq@TxD4;s;N3eBZehU+UL4{3;F}dGR{UZ+l@Gbmsxc6FI@$jU-+=JJB_uzq7 z|4rO~$|H_@&fQ<#lZQ^~;BVi}6Fi6mKi{9sRKy7DJH z=8U@F!ZZB(+W#N;|4aDHMdvS_>qEX-ottO$RWJN-@h2YiAH3fCep-BfF-PFWBmU^+ z{j8JE@M3k2Cp^G!UdgKtc=*75^YKIY@$Nfbz2h7A;noNIZBGw%i|d{^R(RdVtNY^a z@XF6$_nmux+@3GRpL>468-DRdSNYugUi{UnkKlxZ-txkwuIt{zVU?e6^*7z|sMq+a@Xr!Mv2 zAD`lQuMTnWCLSH}>OFqc~vM9_-{HFPk+Iq9((okxqN)3PI%qNhyL?^uJnUfAE^V+_VTOCT+oky zs?R*47ai>3;!A$J9lX))SLfyeJn-ua`7Z_zdDKT&c=#J{^b}t|(u<$pm1p)lAMv;R zc%nbu@F=c)@bUv5`43+^9P|;-JHC=v-Ehha-<#s$AFtx-bNwK`{(_rseDrDXg=ca3 z*EwCi=X*M+cNJGYd7Q(4-#z&Fm=2R)dCgJz_`-Yl?B$_59Ft#li$_O^5LJ) z#PRpxRrTTxF8z1ccR0kK{lMS&;ZHu&Z}N!i9Ukzm9`lRd?(^wu_~aGGs($%*_vPVZ zc;Hp1c_{Bu@8Po2AHVX_%RBermls~V^@XmgO`!IZT<#%!ARi8Qcr+4t`D|N%E zK6=Q@5B!Ta`P6UTh(l-b)rVL8WQE5nF2Cz*@$l_FKH=0C{4EbZsmmPHH}c?#pZJ?T z_+crv@XQDFK8z3b z)1AN6Mc3VZc+^90I;lq;e8LCv=|}kdPRWBma|2)e;ypjBpFaHJK3~A$9=`a3KKx}~ z;6;7nz^z{<4tcy253lN?qd6)L9q@=B{RO8y-h0O{c%U;s@wI#S#IJcJpMG$z4m#om z4tl$<@6>HCKYZ$>KRoK-Fa3poI^r81eli!W>athAxOjpO&u{+u@1OnK_V~a*-NfZf z`pSzBzmNFxjxX`A-}IsS_-ltpyjiFFU%Ti2hxX=+ynJ@vckke!%k;tOzE%D7!V^YP=7jpq3w4_p{I>a%H#J_jy{v9sot34mNr~lx=1K#9Qm-@Yj3s36Avp(`3zkG5waPg78 zqW5F>@UDJ5i6;*n>TutCd9CWCgTBI-IP$1l-{D)oh@&2J%zWSvKIdD$a}N*najs9) zqu>1AOq~2rH#&E5r-SF8M1zLtm1aNt9Jddfo&@#$rytMB;0 zJKp%;p3i=UTOD-LZ_eR@S6z5Czsx=TZk~vzPX6Vm!*KAY_wwLh|GnuxU+(sNK{xLw zFMMHc;8A^ic3)g`7e4yINniKv;e-p1_=j8HSbe7>Ue!xC_tXI=T>OJyze7_Oy7Qg- zZ>xX$mY?9o^Xyyo>Ib~jQ$GDj7O@ivvI2y@#9c;B;=!FZf&G@{XU?FAu-K1qWWuVLI@ecluF0I^j*-e1Sjw zTg@eL5i_X%D{fEFXM$u!n=6)djD( zR`>YI-!FKD+kNrOm5E#Z?wh}GdZ!-#Qa4@rfY0Et=No&x@U8w=H@@w^{PW*GIN^hr z-h8CL)CVV@s{?L(_{4_~kNN{I>ayp5K312wbTc36rjPOF+Kp!sSA6pc zf94F|@{79F1&6qPKj`ZmPWRyxhaS%Lr~LX8KeJx-;7MM4y3x^G6j#5(1Ha!FdeI3! zJbj6G=Xk)E{!tGc^70{n(@TE+#8>c%k3ar!&X0V?*YLiE8?W>c$9s9rC;Z}7e)Z4? zKlJzB+%Tu^!vPn(&c(-z)tqpT-zUHF^9dgC#NY0zSAWoxe)%{ ztCi23)1NN*rVAeU0dDWap^JL>kzes>{;AJBeMC<<<@4UT`Gp63^EsXE@gX07z$dRd z#igIVG>_GN8L#5X_u9Gs=O3&5aLR8^de5hPWq$19dw0?vZtviS1MlbEr?+=AFW%HI z4u7bZK68%HPu=lJ^Qm+5fo}5Q`ygNN6aRP*hx>Tq6MU@V!0R5~@v5KT z;uCy{#|P?Ew|>R9x~#tIb9Ko35YCB*PvMxqo9csukJQH>eD0q5%yGJ#r|NSKzkKk! zk5_X;ABpe2`qj->;^+%`hXqe|vp}FFc6PC%*HCd9%Ywe|=6z{KFw0+Z!|=jmUa3dD_~nPyyHBm+sMp?oe8Y)n^H?2trx!oN z@16X+{P^R0x~hv_@bEJp%n$MSTpaUQf6&J|=N;VUIlTIg-@L<%`uPpN<|}>Z>N~yk zofTf+>F*t$FXIuv<|sb!1;2OJ=ic)t-*^wdI_ZQz{L>3QKB5DD%q{2ciI0DC$9KBo zhacpHA7AR@U;MzqKjOhdckl3q$H|X-@c9mxI@B%RX}rq|pE!J`&&0!rdie<->Y*Dx z`R8|e#TOTE<~Co^#W}x-uMhMw{q>#v@WLq`pSw>VtGOsH+~Uwh-|-`Ty{ChFc;s{M z%(J_A!ms+weK_ExBR+iR2k+qG1HX50!Y7V%bz0ry5BcF#hy3&0?=L;AaPzBv=O3#& z;IkKpKJGsZ-|>~Xs9#t2@MEuEyYx?Vgv=>cR)Sbk^_c)er9PaN-Ld^~}{fb${ZM@T$v=6QSH1jgPWVoD=lF&X zZ&&4YA71#>1&@2Dz2jH>@{4@t5}x@$9K5Js9CJ+H_|6x{<)^2-zN-Vj{NtQI)FlsG zeB<0Z`l$<_bmLcX_zB!(K0m9IAH=8UQ*q&OF5j#Vf8OymUFeU8^WwWNu6|O7dY$9XIUdag^UJC~ z-j|O)>K2C&#fOjX>gT6bJUY0KZ$9;1J$!F|n-}^}ztBfMeA5wc2jPGRPy93gevpSR z#Whd#&-97-=9zlGarHS}%pbhd zM?Bx*7e`!ugHLl<{Z_i+nXcxY{O+q4uXyJ-b;{?vzQeD3`qn*o=}Q;=CO_Tz+8h#( ze(F&lp6P@)KBprd^*8?MhhO;cV=nO*e(5Sde(|#M5ubYp2R+>c0Ba&u8WvzVQNw`{uuV?$Kk12Os9&L+9|* z3m);{=OegZdQS&=`A?nh=`Z;GE~t0LzbrnV(N#bC9ppc{s!ty8W_)$=865B*58m+g zrE~owFPwZ$Z~VZ8S9;8N?(sF8_`(aFtaOnd@BI8N-15l}kNf;hFLik*j=awG5qxmC zPX~V0e{@kFU-KiJ=D)n+%=t~fRlRRp;S+clroa2*zc*K{w=zs_JU*ii;yFEXu&&r4H+w&dW zB~>@=qvBVg@+#R!^anR!lQSqd*+9^D-Ivgm2Pm+S>5i_QGW6H!8tt6@eCgw zZ^QYil`i7omA~*sNB7j_chNok@PoO7Z@$16|N9QFe3#+GkN%T)_KP@h%EJ%pR;M`l z^3IAk^{Pj`R&~Lnf9PkWpS*aoS1)|x!Gi}noBQhC@%5wCoWwI<^1VI1;lP{u#iv$r z<>hBQ^RasPUZ0vf^5TK+c=eu7-QzR;iC4VQ30^vy5ALg%{&1^9ztDlM-uaGqap*!f zJmEq8aOz+Bs^5Efe8;zVcoolgI^n_G_q)I+c*CnY8@`0)kRNn@qb!=b($;qQU_foKE6|zIB%|Tlvh7 z^Y$|?pYiRyC$4wu!xw$b55AL^Pw2}h;?PZet9#<(Paok6K5^8IC%nPKzs}7GJX*~o zzbjVn%@z3QgirVNr@l}ZU)ZZpe&_ryK7Gv}I($lBar8HT{pmY?@Q+70>0}Oxqp$QK z9<1ty6MlL5L%*wEz23`5SNBfCPZ#I%!H)-V)lctT9R1Jt^2x(z?&~+_cz{>msKb3e zpc6jK0q6MTWBjR8U#JJ~aKmX{iHEPLD|~$5z52wZ7oS_zsXqMEncw*f9`C)whrIj_ zw|DT<)%+B1?$sq8o$&6yIsTk4%n9${vho}M&_^BO^Od}G#V4Kc#XtP3|Ma=O^$uSA zh&zAh#PfHp@8YX###1ML<@KJv;yb4spXw)i!-)?(@}IdneIq_T=*D;WR}UO~fM-6k zmq)$V!w33Io%m3Pc=E`vf1UG#I=nk6pZMm1_xeyh;=3;%-{IXm{KE|g--xrqfsfzq z-?r{nKC+jezIgPziYNEfCBM}?^4)x~s)x?v^NV}tvUzEbXMFfOPd)lUJU+vNy6`B! z{Y(7Fhc`as1NiBPNA<~v7kTW>6S~n;AKisRUbx&>H@@{Dy!x7-;O0O6w8s}*^6MjY z!oi=u<4=8XddD~Ls@FPI&x&s2{JstCJt-fxm}zk{@q= z-|)-V@`$^7FCLv{TsZ0cy?6YsPxunA`0(9(c+6eA;0+FXi_70v<)_29_IQ47FRr@f z*AMzuz4XF2z3IW9tN6PW-*E9CJ^yy^pw-@d5Jx_BtAjq?n?LU3M;+dYD;~b}Cme9& zk*+Je`14L&zQCuv-pS`2k94G$z5IOa`^RwjP9Hq*0ezbv^9!~aEi zrY?BG51;da`})Io`sibM;K7?Z#K8mp@PK!`!TUbk^uBHH{hRjm=WFwV&X?VT6At*q zlh=E3;c)+V@#yUxobK)JnQM5l($PKn{4Vj2d*%%t@PW9a0$>aWy&go#U z@A!qD&c%ZhZujNqPrgyFIPT-qst)zh-F^A_Rz2>E<97gl-{EmCAHL09eBhss=9;?Y zS@G$e-@~t+tKZ6Z;^`-TGH2Z9XREyG)i3zP6CcoDUVs14|8n40uT>uL-9PRfT>Ot$ z@AS*+K3rDw@odC%pZ;{Di+p@XU;aET9zM)7_tjxfKfHYEy?pqitGf7yU+LrCb8*ze zzwbMjA8x)755KLfdGvw4P^bIu@tL_HE_`&c$DeoRhCN=z^WMG3>Y|hHc+ofN)o*aY z&$m{-pqIXem;UaV2Xv%AJ>bwk`bD4M7p}>VKBp&N!|@{?toXy5y5!>{ezu1bFK5Fy z^w6(x)8V}Pc*YOk!TqLt`pjx>!6~1(@b2EzTRwdw554#w|MvJ1-(Flg@PYUIMPKLg zdiNom`UxNI;f22@-}1oYo_O%`zj>)1_wCiO!bNvF(qBD%1TP%o(MNuLNl)k2`|{F- zZv5n)6&`-%@6+PIDX#g1S9S6gKJf;>{<nCx{ zS9SjiCqB#t`lttge26E$u$m+4)kn_VgAZ;zxbGYvaC;9A-F9_|3%~xPmv{7$&s>Ak zJ#oxoI@seIuETJM3lBZTQxAX0#~*wPH=pB`59E`FUi@fI;8Py;<3~T^+kWEl`=>AY z;Iz8U4e$9+UiJ9h!V~?~$*I?koPxU<&$9#Z8 zUV5ufe0lMQU%Kf-_3#0l`VYV2!RZ}8yT>2u<2!m<#e)Oi{HovhSpEEE&tLe$13l!U zt9x+CqaJ$DPabvS2X6fczqoX<@)>;M=&R>+rVk&xC%(Mq1D*JtKh!bf!>3>9ryuaN z!lQ2ZroY6;v$+N*Kf?)^`{Lr?o^PlB>B3*)xOWn6JgAeuox?*v`tTS3c&84leDKOc zKltFq`wAaD~?w8_O%{%>wA3A!^5Bd(T&c!i*R(a?Kmv?u4*KhK`p+EE=edOmC@!aP-d#il* z>XQ$Ce2UL+-kEdW%cpL9(4UXo7mtqopbqDJ!^iNOBlMG({`50{_*s5?xKGnz)`f@3 zJ3R7#?>+tw+N(nxyr`G2;hebPwJoM)eea;7XQJ+1W z^7@W%deK*3;sd|#<5gbYpTaG#bG*^@clYSTXZV|X-FM$Ra|gftizo97K6v54H=NGt zhA;6h%a1oa!eOr;)M5U*2Zua($MZ>f4qN5j?eV8Bd-dR-Z}AVexdjIwe=a_K@eL23 zx{qIR%u#sMMK5#T{LzQ*;f=rfnh)SsA3pqk`A!FW{xa|3nfl0wcR1+}7oN>KJoB%2 z`pA6YC-~^$J-p^1J@ABAJgOf*cu=Rj;^CPe%n$v8f4)+${!ka)-Q!RF1CM+75=TG4 z%U|-tC!dw>e5o#bzN8C2>8=0Zb&oE1Ru>$6uRrOfF8&vfkJQfx@WJ6+9sGmGRX@rj zKmE-Qe)XN6aKfV=@6^RFaQIFqIQ0v@t$ZlnbGY$A2RP|T7j@FX?~eHV#Q)xj&lmc| zeRc7dKE{Xpui=#szj*Xro${(j9(vQuULL+OkMM~%{eU05yRT0A$nPF}=C}Leng{%< zAH}DW`t99^7f<}9UUjHf{qCK`GhA=l>jya8^LwH%XPx$Z3kRI$+bRzn;;MsR=<~Jv z&ecyBt9bk%AOG_+z3>gshw`XjT<`fxeyi_(N9d&f*W%J0-{+mni*LTL!gJYudg6`m z@C7%$-P5P~_OW>Qpg-K+`&~2-=`Rj_;o^f;e0lHM|83=yi}tJ4JfI_9;Zi5P-NzFj zsS9rU=|{S_rw(39)bWkVW%m?~f&x^~C@QR}jeB+lN@dc-RGd`b+!-w?OUvNyHiKkBe z#9!k29frrAztuxueU3-G`HpA5gZf~_8~we*=j2I#^ITl~iNjakyN?%f+=mN(`0VwE zx_!qVUzjt0s>?n7X0K212A??U@tvRHSC=~V7e6?M+c`hdS%1LGFXHnRp84du`sCqv z_0e5Ea|I9b!tM8pF7VOkuzdQ3kMW2X`RPQT-FtlM6LshZ_2SE%fCqj!@Z!FeUide! z^{;z$cOM_}@Btn^Rfl-`#0rm^-v`Ql^u`P6rPqJQ~;&gPkV@C+wD zoYPZYI^aQ{soQ(H^BteS%`bFOuX-jg<^n$CS08`D36Hr64}SQJpPj?8UhnPkq|eL`=NI8MfBep<*WYL6iTvu@y%$e^ z!!0g9=pS+D)jd9w2jAYqiAVL?i=#fg!eP~C@R%R!=U@H6 zZ+MY+g`2)`zweyBaLWs?`0|P;j`zOnYyIcG6;Ao}J^kp$Uzg#egFJLpuQ}u#kK#B# zFP^+`sn~L zJ-p#j9&^%M+|`3Gd;a>+cfR&c9{ke5J^WeuTR-7hU;BeEN?$?qNg-9IkgZuK25EBwBz+kE3ky7P%Tz7${G>cTt!;Ez7$ z8eREG{p!3czP|R|dw#()p6G;+AI0GVap8tTT=PWTzT4voE_^x1(=M<4c*Z||z4P~n z_kKUrO;`8K2lv&_KXAE^XZ+&NJ$36}y1^l?{t?f2eCR82^atP2<@4aj+@lXa&Aj5t zi&uMj=rwtR4=?s~@}58N%-8bc&)l@)<)-@h3LbTfBkx7`&s$fke&6l!;hx_sd-uL| zpMU9#-_>_`_&|KV^d2Ah@eY2!Kls+~c&4v-^5MmI@AL=1zyqJU`Pn(&@{f4{uekWe zulZnA&!2e0FTdfJFW|>3Jo-}I{N#6R7aza!cF4(yZh#n zICO=_clYI?FQ4%T{NmvaKl0Phef7vEzxw5;FMjxluTHDW+~RNj^1JWw`HnCB?7MvS z<{UoFEA@XbK40?$8x)`iMWQ;>!m&->4s6IMj<@yuhOm#k-1Mx;uwc zpUFpeeCcESxNqeb@#qW}-sld8_k4;E=X`))^||jmJAOGOp?*#nf;z9l1 zt4DlugU`jsA3f~pFAjhBE}lB!#19?L|M~BqIDBDFz>Por>oaxZ@3?p;t@y^L`fvKK zZzd1B@9I!L-SwUP-ixnJJjp{}`1qJ#)TIu5z)xR&iZ^`miIop#eDU1FpVeGbzdH0G z9q40D;K%AdUf{Htr{RE`U+CuVMJqg$U;CB*^q{l4=tIYY?yCn* z@AQ?G|HRin^3sKW)umqkGiUJ%pSt-=KK!Z^ZhGL=J^oRbJ^kUsr@gxI?ftiSqK`d1 ze2pi+8}g|OPyEFn_<%!Syf3eF^Nnx#4^H>gp>F)ZN0+Gw9M1JAzrg)7To0}8!L9$) z3zu^~F@LP;1ST3?_ku2CqBhDzti12dFam%@QHU= z9{TUG$1nZx$q!fEmyeHqheuwz>qorc6aVn|{h=3rCQdr>ow#&?OMJdEf8-MvKJ|NN zg%>`)wiibpexRRoe3~D4)>rhSx4O&?{95@44)Lt~uOIMcp1`4gdRcwvA9c}N-@(I| ze5Nk=^#LEji6{8*V5KLV;?W0BR`q#@Pxzdh|K`bzZ?A4X5Z`T(}n z_u<#4yS=$F@$rj$bkjfhkw;!};Kn;%;WQWUPC-<5_>h&6oVA zKIiVyS3Z1-PrsM&@Dbj;!>>7^f1Ja~&+gG#9(?16epdYJUv)XR{~lg(p4-dgz52~j zxaFHVx+mYfPams(bq{~^#EaE^I`9V_-;X-L*`1FFyif_8vF&O|=!a~ZT?kl_#m%8DXA8voIi;D-i=DgsGqw?)mc9RGNP7cTn4!OwV*m;d?4cXQTzzgv8uPvr3(4tVjus{ePZ{NBm;w(sT` z{`i1C_TpQei;qX&t@@E3co1KosS|Gff@i*g6Ca`|1|&rg(VuJ5Dcg-PbSXI{(70&Q)AXSN-_pH$1{`bst{w z;lT$ybmL!ftlp`YKh&vy{!<5h=Av_P?DZ)=%olm^MK}1>r;q999X!s>TXPGa_%>J6 z1CQ@?=i{?~{`>c~m7n#syfYts@aso&!FT;iA3Wg)f8OE8J@wOHTzSposgHN&f%xL6 zPoJ2d;_($-@Pt3U#uuOAUBB7Gt-tv3Fy6(*3*PwIJ-;jFoqKTN0e|rQC=VUQ#gF{n za$^NrsVt33Pb-mF6h~Y>a{sb- z@WI1RcoIk4+uo^LKfs4S`tT7x=z%Z4NABT?&#in+XS~rz{dB>fRsFBw=SP0}+qrn^ z<`4ComvrV+ytpSmU#;T9jeq>@zFWPgk2>&5e|^O7-m61=eFwj|-of)W9Q4H-+|J>_ z6CLHlD?D_w;*Zaq^8r73k7xemGj&*f$BX$5w>SkzdF_7cO0))e$;pP z({JMFSG=mrIbXtuPrR!iKKa!Fr+j$O2i}{H=GJBW(b?Y(@W|u4eDuWgMRE8P4{&_y zJHOCZ-|?aM>X8?}_Vkh$PJH1(J>ug-d~xu@hxEn+o_tpi{rHO?@B)|o&c*jTsGsnv z-W6~5`i77ATix>McXL61$d5Pg#fQ_}@m`(w>ZG%C^Gh6Y`OPY?db|@yea`8GfB5+e zPu|hzEdK1(b=|qS=e>O97(CwX-r3{X9GmyeCwTct-Td!8o$Tq#_x9@KW4Q5dj?hQ` zf9bH3tgMnC48yes6+{qBL0o{+NT;cQ`(IKG>U}10PC3bQ@6C+(y2zg@b3qULeSe6b zIl+ft=E**}h38A>>4(qv@&0Z+^8pX~@(F*s@f{ESUYop$@okNR>z2Yo!N@BZbhbNbj%H+IB~N^&5B&IA;p30G zd@)b@aXyad%X0+$Na+$r*j9@p&LEmwNG8X@_lz6Ui;ytqrBp)zI#*d_$0sT z!%uHI;Hkb`-G|Hl3fG(79o3Her-}TdCFfCigW7VP4AiaT|K_4 zD;IFRX`lCWp+9``<2(Lx$rpY2&Ijl5^qt@OKZgfC^T3DIcl_buKmGOPJ05&72liXx zr$3(h&`XZtH<#`UzQGSK-uA=AN4!0MjxT+igIoc-vlAD!LbQ)hML0Uqb&$$dyS z`7)32&z$KeUk~w{{p|C*Z9e#^u6qm~I+{1<`S`Vd_|O#&t6b>kcLOiH-6#B)Q~TA& zmv4M=-@zxx@*|Hs-0I`6zkS}DJM+VL&+x;?XFkx6zVKV^hg&`P^>Gi;ed?>e^);UO zn^SeH_}LGKdmJ9R;5BuWGvDEtb3W1!fAb?JaKS6D{w~+oe9RRe{p9R0J>XLx4)3kb z=}XsD9lpwu_vS}_=w`0v#QE#$;q6}MhyL)$Dg1PEpYq#WnmhNK_k4l(O*rTVzx>JD z%mv>3htnL(H(d79nGX8>2*>0{XL(Q`Z#nXN#xM5+UY_YfZ+O&qUY_vq9iH3p&ij#` z{L$Y$?arA8`pAL2$_;(xNqyhpf&0Ar`pb>J@+A-YdruE_tbUi_z#l(8%B_1@ZuHTY z|MtPpANrURefhBB$scv)U43=q;~sJk!0kRz&wSbcKE34)9(d)Kp7z^^@7#Y@UGL>zf9u`w+kJyC zKh%Mf?s&<8eQ?PI-}xv%`teil)sqwR=3c@_Zs4PU9;GqLw zoP$d~?3YVA>hGNTbm9|T@t3QefBMNcT=u({>5LcL{E}OGS?OY>pZn0NKD_wq=XcM% zxp(l87w6RD+qd|_0Y5$DfbM>uyr+w2_32~2;gG+n1HIt)Y@hRT;~s@m{^fu!eDrse z-v|5Q{*(@Kg(qF{@OyUM{?$q!a{@1Y;dIX5$$X$A{N@ZEebqgxuV;Fn_TC)GukUi> z9-_}>=j`XB-1#m?=89jwK|K)|hc*%izuwRboMPL5Y*?vBl3qHZAK7Hg)AJ6iGubj!P+`vVD{h!K# zKJGbs$d_k0@!=Cc@zF=lf7J&*IygU9_1zM@X9OQ z@TZIW$I2h;oEv@kfuH=zy_|Tz!|y$v)H4_OTJ@JN&-n3Cp5;M5dcwtL{?UU@>e5Gk ze}$ia`Z@>iWBbgHbM&;&T)uBVd~%N`oz&A`ANuppT){VUwd*GjesAQRE^wI}^*rN) zpL%f7an|RD{HRCoc^+SV%qv~wi|=%kGv{vNjpxUn?NirzzyI>V7k%l9C%y16m+~R! zeCL%({XfZIIdd*6Qg;RUyT zaKSl!;0NFAhX;N>sw+ou%7O3v;tL;q$NMfGtCip9J)1vz9q@k_4*2a?*FL$xi;s9%`EOqE(^np* zZ}#)iKIiBR4`hL$|)6KK_rK5B5ZI0xZF7jl~ z`A%ng;&ESJ{pcij^wD3gZ$I4X!$B`R;i4y<)T6h2$N~KL!b5-gd{CEv@=SNS z(8K)yt}b78&+>EMvwd<*FZri~Tc7? z>(tl1LoYm6=kU;9F4ToXUgcANyzzq9eQ0$b(w)xmnG<=UJN@7{_kK6!gzx47K65(f zMGn-*)4b5x{Q)2S=;VH|Uq61x1D)k)*7MzaI`YBX-{l+JatbG1@P`u~{+Tx1T zcYXMz{=@@^oWcpe@9r5o`F-)8{`$#_eQ^2C59j#kK9+0x%=2(MXTLo8E_eL%j0c>2 z#E1XtnFn>?^qvoLML+kW9D7d(efSNxzUJLNI`9Q}@@w9$aL^e~y!n8qKF;Z5?mgq>J)CsWpYGQGI|q-s zRmU9a<9lun`EPyw4yfatXZeDY zKX}kpJ$|agck=)zK6um1yqG`l)#H!%FGD}|_@o|uaQjYAKGQ>8&*p)jzVr1%I4)cH z2k-7ZJ=~|}P=0ROM^||5r{7ikd^flH%eiNMzUiDC=x46whrZ^3@9q!#=>ng7k)Cv> z8(--%^?;Ke`qN0y-dnwgPd)g}KOO9&A3f0@sAE4TW)zxH3 z45vAEPG0CvA3XS@j`M!kpWfLQhw>LzIyuLZ&gPQ>5Hd4Ods)* z1AfB?zkNsP>vu$s;DwJb@Og%7{?78>d;6SoAHjtWe&$Cm=^+PrTm3HF#78d74XlS_jIPaKIRH9I+<%c)Zv4^{DMm#=jDr^6SrKtXZ+m&mp<+% zb43^T3tal^EC0^HMNj$g9iP|qhslpe(8tbap&nqC-bQf9_qqRk9XBst)BT~<-7Crms5Wa&>b&&z;C6yIe-^_ zbEb~^aJpCI6;J-sQ!eERANRfAVfFEn4}WLKxqQ=`UU1{fAJ2H(uRb5lh5dNJFGo{f z`oLoj;E^MI<-j?4*VnyE4?6Papq$7ZKj`ZIp)0)V1Tz@4NT(x@$ik@R}1o$ea7xsvf?0tm^Vl4tDR&A6?}e zUb(i%EfW#y~o>kIpBwRlRM|&@f~k-ji>i~r<+xt_((^%+*|abr*m*R?>?e~yzrmC zaN=!_@r2L)@GjkUtNeKHy!!m07aZ!!lRD;v@AUKCy+ud)!e74lJ9)@8edV4Ge0NW) zLsxz1OBep|%XfakMF;l^{Pd$2ot&pD-Q-DMxYcvdIPd)j(ZXgbEdw$;45GH@{dpIxThY| ziLUmkBbVOOSAEZX$A>O_o8O)1w>;qCUVsY^zVL&t^m0yJc;u7LH}U2>d~oG>rr*!b%Nbtk(8W1@y@!)u_?i1p)mPVi!6gqr+K0dQ z_^B(mbk_Hx^PbHw9{k1^A9c(fUFgYwKHGLnrlopStpmPH^q;$c4J}@OKUWl{& z`g%`ixXr_yBmT>kIdIS7PY?Kg$NxjT_@uvFxG$ZjH=Xq1hk4bP9`tdKsUsKq%Dulo z%&&aXYlWN6a%z6$gnsfWPjvA8P4%q1XE^bo8-8?BkKc6D*Li-qXW^!gdSB~*+-g5P z@S}^q^x&5q!R!86)s;hdckktkA9UA`|8nPE_TK$L7x#gDc($J|_T#C)d9<1bedq&^ zdBX2gyv!}VoZ~Bf?6=ZKUiqZHRew2xPhEUH!(%S!Y_9kqC*~D?`{Wod{^RvC{_+eb zo%v@UeEi}I9q95xWN#ov9hs{^+>awn(y zIL}w->~}BeYp(fVo;=$xhj7Z3I{3pwN4ZlMF7N5fw}bdP?^$2Dr3+tH=iq=(eSOW@ zY5T4E(3k&ooA-cv`l^eE+`%i)=H|8j=HGku=eoy2E5BTVzj@-%zJb1_}p6Xli zxQZ7%@T$jGxXitKk&pVxjr(lk<-gT;_0^em`C=d3_TlNgedd10Q_lSE&{rLPnj1R# z&R_YUKmFux`e#o02p_*r!e`#p`_ zffGKzYxa51U;e=1_uwXdu3DY*-8s6?+}g)StM|{N{%g;C!N-32g~MF%*WWSbKz(y# zKb-c_bJbsd^_2_vh8*$5?+1V9e)DZV-Q>{s|GU5Gi@*JNm@D7m;G6p!PWjc}3b$u< z>1S@O_S2s)`pX+!_{+C^nFoHEC;8@+T+qWlb@}IBg6A$@?N>)0=_7COcn^m<_?jQj z>eHQ1=Gsaht31Kuyk|bc#~<_R_YDqn1fM+9gCF!Z7t?R|vfS%qAKdD}>An4M>M#HD zsJ>^o@Pr?K_4y-D?o)GQe))zE9Qwj97xv4UK5*QZCvzd6yZ65H!TGm+hu1lM;iJ#T z_RF7raJaYJd!DWI@@!uDO$WJkFW`@#`O?Sl3H|s5ubj)thj_??@8+Lh_R+_CxXdM8 z>41m*a_GHhb#{30c^W#)o!pv3xcRs`=UIMt@6Eq_$)opp(8+o4;ot|Hp7G(Q{NoL; zJi#kR@<0dr^TjS31yV;>Jsk^))B-hZldmy{D)5c*%$Ro!;I%M<;oaJ9z#6xQFD(?+D)f z;DkpFM_38(M$z=JR9^Fd#Ea$auKr4K*&$v^p256_R`Q;$Dz$*DZaoB6k2KH!7L z+~7+Wy5q|q`K5=v>M0?=O-Q1kt@9MQx`7zFt6@a_~}CjIkt~~D}Cj_K6B#P zywQn2`qPOnC!_A}ncnL0fq&+gUv#h!ZaAEiZ}st{uYKkXPIGQf_~QPeBfNZ;SALjV zdc#jAxl_k`e#1>~`kN2=R|hWp<$*5dA3y$@54pO}7xjE!y{8jB>Ad@{KHv1W4?cD5 zqno*aUtPZYP7gfb=IaWNzUn;o-dyNUM?T9d{QNPm^5Hwb?K21P!DXedef0Efe%yan zd6#2)&=o$s{2sV3)YZ=%@ne2JNH6u}L_YPI&-CFFzVZtfUgpC*z~Q`n+=hqWbeHdU zeaDMl`tXZR-t$F2_qA1hIe`amb@>M$yjJz;LpT1=*DCjP;{)9CCD-Op{dvEscbZOo z!BZW4;W96)b9|z+`wy<&K7H_1hfeZqbxu9|)b-x|Ko`Eaujy}2=%Ai`^rM&D@s%F( zinn=@e{)ZNbK|^v__=4S^p-0=!+DXOhpl{6mk)H1Z@R*>I?spQv;6w~p{u^;gI?xJ zea~>K!#6zb_uV}UKONxoUSH?rNk8)?&-}rgu6_^r==WPaeC_vMUwX-jzI@_09Dmc- zd;H;(7rB-*@A+#rPxkX054hokj}Q7<>ERrFp5c&lJU+z>Z+Og`e7aXW)7P^VPP)P8 zKKETdyoX;t`E5?*91ecMZG{^z_2^1ZIoD^UgY$CYzB%i=oSQ59y2qT;Pk(siLf)r7 z?mIsD&KLgETmA3hlT-HqeSP}uex8-$M>tA@uq`3?Y_$qo#}|Lyz$jJ`GwOn z9&phC4|DQZe=8l-nRw}}zxwdQhd=+_&v3$Fe$|mbb?Cq^_m^ClC;3oE-#795*-Bsf zn;ZN21*iPWtK8Acyz^au`Z{Nyyvw&-xTnpf{&?~eANtG3ZT!~YslNVvpfeoKyHD`6 z&pp96c=$w5t2yy3ANrUtxs*5g(@%Z*x6(;|@YWY@`}yy_z>~l9=Z|{!$%UNJ!ThU_ zr#f`P+dRn~zVhQeUHEMd^fw1`3lH2@dcbEjpLCZKd8Hrxd_4Q-zkl?SA320?o|8Me zOkdQaCtmWeFa7wT4Mbz-EZ>1 z2YT>_PH@PDIpLdr_|wr`>q7_o)Ys1(%BA{KU%c?Jx(D&4i|^{vjX&lEj+LJJ@*Pk8 z-JAN+#XjHpinmME4zK=r>rZ$4)Zr)H;kk*we8WX2`{ACs<}3f4 zhZlePyPx%w8@ZQjJiK==(e)(U`oje;f8me=_2>!*AK>F7UU12~d|B!3J018bSL))e zpJ%@d>cS`2`175<{G2+tZ}7D`M-TaNuj4Bp{BW;0=l;d}EMMGT`ty$->hTdjxuchr zPUc=cy75om<$(YAsDr;b@?9Og(S2)}1MSNrHnFZ=NEEMNGVFMOSsC-vdl_2Zk|{O&!S)T6Ka zk1keuq=Q`IE05+j`wi!2Y+?kSMb0&?^kuF4s5HG$ zT{!nf~rSzCLuGPW;1H?&QK8 z^T&I6)Q8S|Gk0|5qxr;R>fjvS`oqsRe&BC4-*TspbNc&kzToF0z3D_Z_3*The)OO# zovd`g$311f=qqQQos%Ccf87V_$({FfbcIVje(7s2 z@jj{_ob)#*&wZzx9GM^YfX{??`BXo7QJ?ST?MM6QKri_Dt}cA^aX+Zzo`h5W z)sqLh(V6b*$$`1nk56#% zfu6tfNnV_zGymXl-W)ssP#t`oH@EQOtv`S0Ob`3aFMaT&55MHavmCiU=!z%Y@?zf1 zgYV9JmLIy)1y8?M@ZjfJuJCgXZ+Vs<@871cywQQbeA350&u5+2&$`BYdehH&`{Aae zJnH|sdUTQl&-SYWC%*K;S04EQ7oVKB&m7NZ`Qn>82jP9+>fA-oa;@&}y?X;6^C178 z@y16!e0R^vtySHZ`q9UH^B*to<U!^9pcme90x$kn zIaG(fa?1z!DljqJnPFB=iMjf6%Oa=!yj|_y}t0!mEX=;`Qn*> z{L~kJ`IkHQsQuo%e?7~~H->dXJxc^4WQFYhLj8osK8*QjcGB;SV3^X}@{(JB9zQEM<4!qug~<)K6RYe-*>z|#Tyt2U&g)Ni`{fcpc{>^S__upcSAF=cKK%$+p#~&{J%$55>E}f&Je)#aoJn+X{!mS^i_^PYF_wo$~ zK765@T=N4TeercK%ZKm!^Fv>`G?#KffA=~(p5@0p(SvUM@Sb1l& zefYpfIrdCH_YxoES03z>bNlH+XS~&+vwm{p883aT&cSQWtZ;mbzj>z@{&RlZF&_BL{s(>cJEIO@Oe)*sy+^f2Lyz1F|_4T6{-15$M^X9&!llua1d4p^A=P&%~(*-}e z$v0m5%acCtO>_M|zIfnu*n7V7#eGK)d2o*J^F93TpzuL!F`tiYg_vl6Y zeTSFtc$f$CzcP}|F7xL~|p5)H_tIJ1z>1&_w`tsK^Kk?+V zxinAo&{rS4+_(0554Zh%^}9y@AL*hFobtqH_4L8pyz>Qr&*lYhy2^_=#~V-cg^%xi z^9(m0{F8fiJj=N`r8~Xx_T7pPzdX~I9`LwF?Slh8b>;49_y8B(@tgI`jqm)CKlrYz z52rk=-cLOG(Ak_hXD-dVT;XH><$?b6g%?h^~x&(`RJUvGyizlXD;N7fAql1?}Oa%SADwigMS~xY0mWh+Iu?Cg--nD zn>qBXk9p_A=g|)jdcwcjhrj2k51-|V-gJQze|*((pU}yEIOs$lxudswaLNhZ^y9C6 z@-K(xNFV3mQ;+}jaNnw{j`yF^Q6A`{4xaRZ-#wxZedx+Z^QsTreBrzN@ELyd1c&+I zkG~h_MQ_h|@y&bt_5YGS<_lkW@*Yn*Tb+jkKREb?zxl9_u3y6;U(VUDzk5+X zc-`~v75zT+`@(j7nff}0Nd(a*ffk6gRA z`0^ZoIi0xR)(3yN;GbNXD}9`&x4hsDpL{#-KA=B+_~Z9bJ$>9S_^m^yP!P_*(gAF3lUhbT$uk z=0Dxwqc7dyl{e3D(p&!YlgsH7y!y%GN>6>@wBKsK@6OSaUa!@Imk;*qV_u!ZLqB=Y z&wKjG$z%QaLVv!=vwix~PwwT2U!LVu-prYtd9S~|=72A7^9N2o(M2xQqr3gH@2B|h zR{Fz5KlQz*gL{uY^x&U)Fo){E#V0=F2`^vOqdOh&^}8?MR`|>-U*y=|jrP(1B|Xfy z@BH=q;GThtzsH^T-D=LAmqYyN<2}9MmUp^Z=>;#n_|0dy?1#sDdhveBn(`{P`ePeE1tr_|=71U-!svKVQ@_kIw0% zzBzTyoXCw_(#IUifn3U+{Zk))(nBBo@$~&&eB{-6{nWS8)pva1#YbJa;|o4=r05`3sji`oZl!u)?pN)j2-N1)T0j z^KuyuKF_?$1)T05INT$A;V1p&4KKcbt}lJ%mHy^Pef#JHFCO}-gFhePr<*y%mtX4h z&Fc5ZD$gI{q0ir*>0|Ekkpt)7w;ylw=w3YUyT0SW=xZsdi{?dc4_^oj0@7&{f?>nF5&Roi~9I8(T z^W{67^x_9S)b%?cC+1fjzQRi%c=*a^a|zdBJn7`UzHrGEU!FTB?{v|B;&or(jfZ*W zi#q(J8~l8PSDx^nc~f71x|kPv`x76}r#)NM$4}nWgPR|8hsU$LuIlqyzTm)Hj^J=V zxIgex2OjU*(gI^2T5Jv5%f|EU&-fOIQBM zr*m+@A+P3De}4MTkMH%719QV4y6_n;ewbI!>fqtLd4Zokas{t_bjQm|5B}=M7ku8w z>#9`_)x`r(_2E`u9_8A3If7q3{eRcjGu--^54`EZXE`yi>frlSeYx>$l}B~uL_hrK z^HM$cocGSt#r+09AI*_Ip6PDI|G9qVmS3y)^tK;f_tb75y!M+5b*%d1&qsCmMfa2H z^Z9Mh=7=uv(a$+~;E%r_^pz`q(_4S{lYVl*SNr+$BYdls9(d80esW@;KIV^(>Yi2C zdHCRQub3yiw z$1ghbTdv;K*FN*)y*bm5p7`k}SL*PAK32Km7rngan;gzQ>hs+^%7yoE(p^1x<(1Cn zM9%1n2fg6dhwkdgk-X4b{pllI&e0JLbEF?!p4EekZ#!S*lK%8|pU9(mgo7WeI_g^C zcAgJ-(pS#u4v%|6u4X?t@zam4baB7aSwHh@4m{Hje>lvUXLY=%kG^o*rw={gkqi9k zFz$@uN>0js(o#`7a!=(cX{B8dxy^Os$;(OqZ7XN;boqj zqaWS%H{WuKA6@i;Q+@S(*Iz$5#ozq@PEYehNBrTy(>%Br=wfco_2cii4Od{ z>pTDOSiPsibI)+<>%2U{Wxmao^YELKv+B|VKKCI1_~zcDr+#uPA69d+>*GD1{!ZW{ zy!!jjcYS^L9)9|JFOTjeI(v4X(m`(ErK39X?)!?De7K+Z?L2(W!9gE*;im&!a-bhy z=m4L(bjHU%yyZx~<$>Pnoy5=cOV56%=*JiH1Gjt7edYaOb=1cPPk892uKD#$FSwkO zWBl+kC%gXo(nr75cm8-bKlmTD&olpb@A0P}-OY>las{v4m=?hx2gD z)l>SxYlXvl-#*Xym=F5!TOYp%-qY86cdlYVcJiC{?hg;oG;Wdx?@J~N^kTdn{ zr;~c-3{E)Ap>uq49xl)7(L-N4!iSf-?gjeG$(P}ee9`fs@4MA^{I7a%zk2Y(LqGHB zo-?<;tA{6EbhgSTz2L-?-yg$Acl+rE=W3sMg3En`mpSF1)qB3UC*Y-zd+|s8;86z- z-}yw3-8p^erXOA1({%FP?}T&oabL)(djNjVa>ak==qqpd!s%K6+jyw++%uiwgNL8; zyV_4r_~c7{eXVp+|GqlzCwb+&zH&9s%L%{Wb)Fyk^BZnB7jk}_|r4|>fxo2 zI&a#)TlsF~kMDGp-@l!c3p(IMZ~0j5hu0kGLm&9*O9y@Fs~?_lz$GvIGnaU%s}7y% z_!M3_;lF&g8>B@9810bf>T14Y^ZS zANrdw_~~{YUi;j$a_Kw1^nyn{y2GzN{pEhd4ni}3JE9XWFj9)005|9rHnYmU`} z*GgCUQE%eoGo9dYe>uk=d4pe`R($_2XL8~9!oBR?)W;mVKk&7}L4UeBC%@)P&fs;9 ze)1v*aCxRLoOHqCIo|N$38#8T?UN&T_+_8I_8oUlpR=B4UhRihuFNl;_@kbFa&2Du zDj(*b&T@^%4wroSZolvP&|iOi!$v2diMRI@BA|td{U3!zT=?|-15XfxcK2azu=b}e!**XKk;N`r0z>Syt)j9Vjf6YBz@H?%K^Z2Nb zr`3D+0zT$Mf44&hbmBih z%n_WcJzg zbaaohaW%ibWhWN)nDIys zN`glJoS?kyyZ+i{^HFSbsxiruep(b&+w|F zkKX~hz;#|-ILxbO{?Lhz?jbzoLO%HhxB0_|PWZUzN{S}nFl=Jw$Hlq=ehO1l@9#lCmj#kr~jNQxp5ADx#5d^ zn=kmi$5SroZ2sx1zg*E%E}YZXzWJRmc$z0X=|mqnkT-aD`Z({sx^m#Xm2T#FRmXjR z2RwA3D;?lbkFRp@rn=6{w?5AEL!RK)2TuFtg)em0A5QbF4j=Tv8{ZvXb82qPKOAy$ z)_!{HqrV*7w$Hs~Uhw80eekj09GP$U=>Qkp=Egkm-9Gc;UXeF{kI>&axbWcXk9gtB zXSty_9o$>?;RlDgu*#A1aOp>Xdcf(N{`h(3D;#p;99;5t5l{Nz?Z2PgEA+8{>IA>J z))#Jl=>)Gnc)~B2a%ZmKlxy`o%ZIw=mmccKm-Fr+IrD6lD}3mI_lIGITfIir&~ za~@B*F&}i1OZu$pnlIq{>@^;4JraN*5IdO2^U7hL+$-|s2?;PBl!bD_V!>icf4)sqK&+=J#95A!Kc&e0ct zI=Xkvv3ZmqxafD2-tG(f%O`xk^N;`VT~FRg%ZSVQFdZw#>>ceS2U8jEP?CQzY*PiJ@Z}pt>9Zr7JOD^@L2Yum! zSAVNq$t#`tN^f|~30%&>?>pV$GbeHZryTq4yp`T~$Ui;wm*d-Xh1Y$jFFbxn=#8g* z$ctRam%irTGyUO&pU(Vn@40X3uir`d>BndHg!_nY_Tg)8^rIhLcJ=3c(8GRw;WaPn z(~%D9IVTVFciwmS_$CkT89DTwo^mIj=8{h4LoVn~Up)1J-<;El?{L%2K0eS3e)Z(k zdHv`~2lutyc`r|Nq?i4EFZ8EBTyV$-eDWqw^n=r!;7@nIqxSPf9rGi<@X9$J^oLg; zxtjg){akL ztG^qpaN|h_zRr8yd-d>_L-&|@glqEG4_@c&=jYVpTm0!OKiV!K^O1sf9(8SE1hR9J^THHTONE@-+R2|g+8l( zattRv@ZgX4ug<~2KlS8L&eg^9zVlPh-Fvv@fFJJ1_w7>$E_r_KyS{QKN9vm|_2i0P zba7v->f%ptIXNHS@q@!W&=WuR7=E9tLsve-rw*Mx%Q@ZUOI`TY!JCfe-3pi0oXN4A zI!{-t{J3A7!_Pg!Uw+^#U+Uq(Z$6kqb>tjBeUH;sUpnwjU8}x$(p4S0@KHTF;fWWY zoafi~aLF6J0Ui}`>AAWq`FjxBV z*R#1*PcGCoe{yXO`Jo?u%!BXF;{!h*ta#H6AK%?;aLFND=2Rc`%>&)|N(cFq-_!c?S-#+~4-c#Sz{OWSzzK&u(#`j)`g>1j-{tJNeR2U8+~$F= z{B%wqdehf?Jn+Y3`U;==_`xsNaKlS4c;$gV{Pb+D+@t2gJo8N*_mB5-2+!~I^ScC> z+{hW-|FmC!c&v1$r+RQ6be=wN(4BvO+lLpu{SNVkZv4W7@BD&W9k|Rbe)NEoUij+c z+zzL@t7rSw)sL=t>SGSnrJt3q>heXM+xo(5KOMcdpRV}gf28j@12u#e(=xl z8(#9PFI;l-IB=LF`tghY?j!j#hx9bJ&bu%82$ys4(9yjFAOGm@J>2p|CwkJuvpF!g zeAU;y$S;2Q;(?ddemR7PfBL~q&*=x=_}X`pKlHWAoB5%mJXqxfUijn$e|YHy&xiWU z_3C-I;-wGW%&BL*_+oWVzU7bJ=JKe1a-+ZV@(B-p`7U>SrsJ>b>Q6^?)q$5@_R-(( zvYf;3yt#O;pE~AKKR)>`U-(~jUM}RseFP^w`0|_2@X?LW^rf4*;)C4L4`2Gxli$vn z1NR|*@-}(HNoV_h#-E<@%y)h`Z>5u5(#w12t#qfyV}0?z?^zx91boipsm|&gUCfo7 z(2+mpkl*}}8$RH{=hOPA2e&?QsK1=Z4PDjs9Up!0hKnBV!@uF62mbObC+-P&@l{8D z_+uX*_=-1N{D;qe_2p6i)Sp><$9s7;&-65p@@Ag+ZB-91bMG8} z{8h&}IQZo}-QckD2_NsB<1>BngO9%U;o<(^zk87W`0(9#zY}=Q{WGt=%Z>cui-&x} zr5}II2R-q%-@U0G+~$uTQ~%@U1Rgn}Gu-gV%T?#(mL78JJ~V&ue&`&3;KEZb^r4si z{4$r$!7VR*xU3(2=;uA%<ddG@6AN9=U;^Zu;{@Ug__CcMrnj_l|FL@H=7NeAi!H{^8@kcmKd8uW-l{yxz;N?{wz3 z-&;Od-5+@A2M<5=krz7I#~*$0uus19QwI+BfcNxNmwxKNLnrx{KR(N?{qWi^pZYrw zxBYO)9X#sGhkNF@d609w_+-6mpWMnZJo2Od;i&6gq?i5XQy)0bJMY}?8DIXX2)UhKz5e|XG09pu5B(t~d5$-lnz zl?TsO{mqeQ`l|0d{`8Pv_q_g|eWxRT=r2F;;H|!S!5@wf=?pL5@TQMGbcDybd0*S7 zo_+3lc;KTCzwxu`Z@)RtDpI@&p9~ZkO%iPTyV&#d&)g1-*TibJ>}hbb4IelY*^)_2x{mmXF=(pg`6$j_W3^GY8)+#7hp@vVHQLtpc&o_+GbAN$mYo38E! zed%WZ#AzQKc>BGu$`w82ihuHmr@4EGue`%)zx#9g0EhYB)mg3P8Boj z@#eR=xau7IatyC$`{;%z9Q2k4`nfmH>myh8(E(0%@TDWXasrn*^gGB8_4y}H@}r*f zzFXm@BmLmS8xFd{ffwDJSC`N7YmVXim0tXnJM&D3)jsv*pMG%A-F`W;>M#G^dv*?A z-*^4t!HW*^=>9T~-t(JJ2i3#Z{Fp!f(Z_dn;gn~6>8g+Z{HGUx<(J<2^Amr%@^$(k zC-mXBy71wn&cx5xZvn%Id@n+zVglQ3?JwxkM!f0XFS!V8(hAh)t8RD zXMVyfe{?@@AD!t%XXo)SmvG`qPyF~`-`jx?Zug>R=jh2__wk$R!0o(yg>LREd4dx! zzRQjMau1LBpby>gksIgn|G#^d59S(PIIiP|ue|wv-~*lDvp#ixx2h|@`teymxq_eX zaLOP3XAbV_#|QU59(<(V#795*m1lEz@<2y*yyw$p{pCP^Jk28?z<+vQR2P5y z=m3v8e1%J{@Kc{oaG68+oRe>JE&uf3`}E1Yy@cQDcY!YSqKAI)I>#q-2oJwJyU)xy zecap5^NX%{&|N;fr@MSQFaP?hM_>D`S3?heS>dHK9pL}ic|Ll^SATx+5uZ6X?g>17 zmjnFh&o})iZaDp&=N`~sALr<*KEL%X{p0~IeCaQT^wURO{a@oJ&$m6>?>znFeDa<5 znELL?RoySGbT^N5vd{Xa{q)pFeR$xM3+JvoFOT}t)&0mfy3&JQc+giq_2H|0$RWOR zM_<0-L2v!+mqY#K#C~(3t~oT9<_#~aywD$Bt2v+#{nR%<=2{-$pc7y5QV$>X=&~HSqrY}Cu@skgD>&F-OjQ4a^-`uFrA2{SkeLC6C zN4emSbM9H^@mB{AbFIHTuXI!oUwq)eXX<0V^`Fmtq6?oc>&t)7aR2H1O{@8!n|s22 z1D83WiyT_#JUEZHym+qC0(eE@o@~n^hZ1;WojIa5EQ;zt#I!_Ndun#V| z@?LKEh9?}?)y2mg(*b_^s;{2?^yZ`U^x^wW{p`m>fBf~sTYmZPe!$P)t-Jbk(+?i_ z`J<10eDGaPoTEQp_R(7|@xV)doHH-#>0>`!=GwFRbAIGhJ-$wT?DO6|VNUU(qkgk4 zy?n<{UOwal-yeHc$L|t;p54#t^6|X$a>sxB;iVJ57zg2@jD3zebu3( zKKyj=(bs$Z)H65m+2?*ZtM6ee|LEZve|Uel-`v0_2kPpNKmXL1XME*d9scV3zP|36 z)1K|yJ?rZp;ivnI|MW9A?gRYv)d%h`^-7VY>Aic3K6t9jC;q}MKlJdPk93e*`0T^aT$o>d;G;iX=6g9cr*O%c`uM?f zn=iieK|lGn-+ZahM>&Mwet7UyPj1}L>V6N8XFfjlo-T0mP5s$-?)N;sO8c@0l)qgwJ<4_`+ZJm7JObb>Mctz$L#sJ?P*&zhC>l zT7BoU9KvNTJ=4W1U-0~`uKjfPEGPKzY2Fj?<4x@1`LbW0;q;w9aL6-%`G|+_m-Ur1I?Z|HFTD2S=lOT_+-v;sU4J>? zlYPFc12>)N!|%KL(HkE;_$oin%Psxj;4l2<-aPWrJt0T%(Zk%$IfC1MIijn)(aU`% zH+ax%4gd5tr|?uB@!9j#htB36PyN*8JN@v~AAY>-hm+sVy-RQTP*?8FjeAKx z>4%T}z>AOic*zf+>B1-dgq=q`M?ui zdaTaleblpi7fhnomJPwC$azbBoh97Ba^#%-bd*1HM;CMBp23@M>cgcE{psL7aSm>JJj93Z`dHO-?pOQiMNca{ z>hh28aGQVi%(?e;q`&&|;r=pb^rJ5y^`j4-bmg=8gqsik4s+gjdYq&O9P-S+kA0WZ zsi(f~7rx1dx_-a(w}0OE{5G%r@Vvr92l(CJyYGCUpE~r%&oe#c!o7e${q*;2l@rhN zcYz*qtB?KWTrTv*gI;j)l^^)Xp?-2j2fjOJe&tAizR5SOSz#3o#;p( z`Nx<3>cb;P=JZ=Qyyu^O`0?+s{c<5+yZ893CvWaS=iu?)@0@v6S3N8J=;U7IH(lhN zuD;`8zWLxBz1=f>r5AnqKxg&obDtjknLfZpZ+P4r@~Xdn>Y6M2@pTX2xx%3z{rKws zqbHsDA@`oG>ft9Z=0jh&)#1Bbm_xqP-#Pi9kMsER&3X5V^K@{IkMQVEKj+}kS04C_ zznsJ2nQ!iS_XXVYqON`Fm}maLNw=M^bmkwu)H5IS;g`8r2OfGk2QPo|hMSJ&T77dO z-}I;RQ~2o%5B;3SOMUOvr57IbQO`O3e9?*@eVwPLXZrAk51!${ zLoVe5ANb*+i~XJt!?#=Up{siE!2>6L_{!y{>fN{EZEoo;hy3FUo$co%f6SflRylT` z!!IxHVe_Ca9`X*KKK6f!58U+f9#8Y=-lP}Z;e*@CFL|NkS$+ABhkAHBM@KoKr<}?M z-SP1rKKHBp4iEQ>TsVifzH&rA=kf5K4|wtcF3)f|PhYuq9xnI29Kflbd%-&E@Rbj8 z?%q1d7r6A58~fCiL;6|G4ZQS#ch$#vy6VH<@9l%zIl1DC+~Q?FpY`>uzP#~`ZhVp_ z=jDg*p3Rs0#PebJ^^qre=R2R(Z=Yx1y{EHzHea6UV$Pg1f9@$dtH%er z(VhQRxacTH&cP!mJKg9gkMx35JwC|?KJe%duX88$p@Y8iF`wn05BHr{-+L?m{MN_& zubr1ax|j#L!zmx`3G+!Gxq(w|+!y-)sxLjv8DG_N9!~cRAAHx39`^CYcm3VlzMC6- zR`}rf(6gM-hmW4==e(TAkvg8~MF)9N*E1aO;U~ZL^N|kx;vc=}XHMbwY!38=n?Le> zoi6xzPfvQwA6&lUFCX;s%pdjT_OZUdM}K&o*T*xR<(Cffab7(>de#pQ`|*L#ef6U{ z_R(EEJmB?rEC2L|lkeu*vmAI&FY^K~pY)fPdCooJ`=5Bo4}Vtg@uaKV=<}|9a^o3a z^W+?#_(}&WJnj!X<&)lg@OLPla?ZCe;j`j}zq;m#j&!Aq@87D&$H`A0d7#H}=j4K} za-|;K%o!cvQdh2gw_k4b^PXOGhueNS(%)Redl-H??4IdkRo6LqeV0G@<)3aZ)pbw7 zPoIartMk6+)ru#)Uwh9tx_d7tbad{hbM)Fh(+5v_&`-|!&QE{us6!Wg=mQ7+&r@KYaXx8$UkLPd?~t zUhq@j$`|^i57i-`o%C%c(x{1|Poijjy?pQ#|FJZgQueT=7?K;N=^f@aQiGp5a%|cY4FA z4xQ+yzkc$rKA-WUxBJ3*_3YQ5uI@ei=)re7+J}ez_UZdlZsbBg{(R~?zWB|Y>t{7D z@X(hYzT3~QRX=#;+dK+K z$_2d6yAM3W<@W-At9#|JKJfBWKJ2%T9)9oS#%iAU=NT?JRYx9tmlyZ*3ZHs>!OMGi z<&MvEC6vxRs;QAEa-DGvDgcW9sML z(MO$!@bZ^Fa-%+ebb?zyy1=U*obGGBxxZHZ`C-oJxBHHty70)8T;O9)o!1XP_)n`3 zpZ<@%=es`i;E(U$+pn+stM~Y+D?fOeYdZ2v9`S>hj{2*QAAET8Nk2IJp3qG_IrNOT zxtAl)@cMm}KXZu(-~67yiO>7=vX36{@X0e?__+V4AMp4+a&OYpy=X4gkq2|mU-j{a z(|P*f?_QK6^Gx?0Z}pvn*R${P1vh>9={wx!R?g^Xg&WSh@X(1ba%c|mbYJjwbzW}N zr>nd;haX+x^}MTxAAI=Bk9wZz3qM_)H!twXgS^0jw|aE+?40`i@N8ArGkxK4U*bV$ z`0dl*>UT#ydRfgqoy`q?`oU$NIs1_QR`aH=Id-0&{DMm!)iLM#$%lIcfAhj`_nLW7 zS3f$zc^iIp;KWaV`L%y_&fL=3Tpst`svjKs`EGUp<0CKf?mc|&7w>m{=_QAJkQe>r zS5Enk*M0Ti;*UQ5Zl3u(=^VcL^4rQ!y5WJBzI?<(zRV53)ph^i$#?TFhj8(iZtB6~ zoP6<54xMwa*^kHH^q{Y2y!>9!UHyyBnL~Nt1N`*AZNKk)ojSs)&+l=Lj^@xa-Q?MK zIMto|>1f5netOB1e8VM&@+3EM;QfvVUUI0f??2n;zO&CcI`RWQdg{v;IOWa0RUdi8 z&s^fqFMa7jU#q3U-07P9NnB#mtSzwWxj{cy&?B>l6QHVKH5hIc2I#Q=cjt^3;5_LAM+fZ`twVE;d4L3Wgq=~_Z}{MeYYPzIm6F>c{lf0<;*>T zk9zdg*S*D0zNq8=b8pJEbDo{E`aAJ4JnnUQman6}%Ojrh!Y{d{4?paeZ~M&^oDF(7^4@)? zA6#;ypL_MPdj7uPmwj-+M<@4?b8xE%pMB1+`gzYk&veF1J-*;0U(eN(3;6ivzLgL4 z;nUxH_YwYb#|Qm9^IKlz4t}_&@AAhl`nWIjfkWQlh08qQ%Rl?|(H~xUFvsSEPJH!U zJ-Xp#p5&7b`q5+7!`Hp?Yxu|y{p5f@@Vd|BR1WA*NBHRH*($&Csg69sOE=%$H_q|P zGk);OueyArr@S7e2mEyQcZvM@E;r80fjabcAISlI-S>3kx8HO6;0G^%>B46^Tj?dQ z^fAYBMlXHvpcnk=?sRhBc@G!g%nP0uowE;bc=)BhI-cc_-t>2`;z{4>6W`}Kec_eQ z6<+!AOfUMF8-DSfj&$YU#L0@%G>q~F9^W<*$O8g;Z^6Zed^1jzH&El!mqDBa^QCc z4s${m-}&P`Ui6eNyk;MH(8ql7)iWRTku&_|gYWv`z0(OE_oMvs-AW&Itls;*q90u9 z!L6S;r?351bH_jX^^tqJpT`Gp&+aR}dxn!gH{(29{Nby7%m;l|_2)T!)u*>Ppo2MrOC9|EF1cs$ z=7;n2x5B3$-Rw69_PGbmm7F>chkfRhj=tmlGhN(EbhN(fJKk{FkEcHBnMe7O7b|>l zId2Zt#os=@z>mN0>e9oU^4E9wxBSVSxzq;_@8!xfJ@xbKzOj#g`h87Tc;p%nyyS_F zx1C$9Z(I3+7d-mReR%E8zqHzqC%@h6@(jhhHyas`*1pA7!+>%%|3TAkC+{f4hP=Hk3QzT;^hz2S1sde`~M7ar&FrnmQU z1}EL!^K$RKd^!*33I|+x(8(N|JHD7_d2_$e+20f9Ku)jgho_vtAs^~`FURJB|8&s@ z4*cv>2M#%+pWj!!@)W_;p7uN+;{xZUmZT;MRz%Y-#PO}H}{}>0#7>ZaLExI z`pXl&_)QPIt@=7gKmF-)Twmwt1TTNRH&^tMAH3-yw{juBe1hLTc;x>oT>9a$drv?0 zk zUoP!epFaFB2dg^r?q0&f{O}JSc=4f&yy1rreD*o-86Wle0|%V^#Ls-lt$ohBAJunG zKJb-ixmU+(F84qG{li-y{=-3Mc-;@``EH)Ad{Ez9>*KwAs6$V41Ft-*&lmgQqq}{0 z&_mAkcb?zy;b&EcPx#Cn^Ml`3_~hJqzV3hi`$vEGl)S4W@A~>(qPKeR;wATTYQMSU ztG;x%PhUFHfzEir`xu|qYCqlSWR+)lcIVtba-xrObj4f$o6fIRb>&9B%(Yd0_bYwr z?>+tL%QtPuI3?4z6aC+*kAxv#yK7d|>Kuk^v=xO4KY51s8-*M9rx1CPH~@RJAg zBrj7JI>1eTIMvf{hZ|1!8hrH72M>9m8+`J^{~y(dOJ2O^zrONLC*SS&J0;(Iga=;y z;h4{G^OGKU${k(kM|bo78b9^ng3~C@{ ze1El%AL`NBJ!1~(XrGmj*VQvW^rRmg-mB~0q$}L?)JHz_b6y^u^GpwV@e^e>gbD)KK9GkhxBkyz~`Rw-Td>B&hqJ;@9N1Fzs<4VnV+M-e(;|39d5kfH!pON z*XPdBbFS*mx&GEU{P3U$U*UttN`HBA&a=7U7rb;)_jfqtL=JqX)Bovk*Ll9+s}KFn z8Q#{*&O0ZM^BiCQrNd6LvPyz54A&Y21eGQcbOAOe3y6n;lo#YTJhqu`8C(_!5{PL*?lL^e4;-+)bXqjo%!b3 z{Xh@r-9O&bT|e*XWDex!b@(eE`t!kizUi+ny`3|^m(_<~9eUE4Z}i)p^Pd0aLr&sw5#~1J6=f9lGmmGZ$ztwsASm}1!eth6_FYwbG(%1beM{;F;^rbgG{KMNlpdMY| zqZ?iHpLum($j?o@_)0h5@m=kEYNe0&a>#!?`C-LV?(lVWBA^4?W@Li@Eb&A9d-gu4ntbr>naB`BQ(q<>IdQ=0sim@%%r(>4KLPANt^Lzq)cp zC;7AD=RSp>FYuc?y1DQ4QBOa5$%#3Dn~(Bvnoe{%?ioM4>2HOPk8rKd<7b|C@6E$& z&+zieed6Bbk8}F?ju$=T1ActyXujmedGqVM969ehzHqDO{^lRv&hdk8bcDlue(;-L z@6t=o=&F9|$+eS`=UFax=gcKu{FG<> z_P(}kY= zr3c=#kGZGk_i);$9vpDv%~#*?=O3Nv00$lEPG5O459;G@F8D%M_35DgQ+()ZKcDqg zPk;Ppp6$o~OZDw@FYeyM#W&~i^Ng3dS)IpUeYp9rzP{#&{_Yd~`K{hTedy)Bhs(LA z_Q?mI?bjb}`pFd>es}4Ik9)^|NAZcia;Go-_$62Bz^%UT@u+O=}_Q9nO|LLxdxl)gRc+v?EbK+i+d;R3XyQPwJa{ zc=;$7{H25Z!fS5So!`}iUtjw1jnC$pKK?#Z9}j;o=ucO=@O|f-Inf6%@73`vXXf6s zdq-V);v*dNgu@(I;gkz_%!Piwn_KndjoxrtYQ;`2PGt`(2N zaLAEdxL3TVm-F%f2VTyZBlE{k_dQ+YMy}x2_cna^@kc*+)#tzZa&cK5bHZ=F$cg(& zKYGqNuwNa%(}OSWBl&f&(FcBd(gSYKbmzbN^pZ!o)z?=aK2BbAfbU`G<$jb`^Pvts zeCHou&7FJL{k7|ZCmrbO*?vC2XD;M{fAZkG{`4}p_Q5YF_~~a}uEOg(f7O9o9jo6H z_qp}9diul5XL*t@b<~v;deFgpIORb;%z=58AO7%-PIQ*L9d32u;v@g%gD-H?Ro?s^ z!Do4wJNY!%_Unfiz34H0@t&Ua!v9me@PV5i_~Pe&gPY#;HxHimr@Q>nS0DbHTlmbg z-xvMxpsT#o$$Nb0NIyQ)-G02}LLdIS&*{PkbJ_D#~1s|1^ln+xm)E>e|X))&f{nP zR_Etjs%t*g@g6_<(pP@q#7n=K5Bi!@`LxoH9`wU^zBdPaGUw{)Bk%HJb?!P{=!TaZ zt-i~Rdm0|N)sb&_=Ckwa>4T5F;m;4g!GkA#_ym{wa>tJypTpLxR^Rz3kIt)yk6gOP z{#FMbyzs$Ke&mLJ>N|&@=T&`kOh-DO_1*o!M|tEA-|@r$r1NxvXZ~(@Rv+K<&fmA1 z7d-W+n|ZLBSNie;KRVG*J7yQ9W)A2ghj^(+Kj-m)+Z;M4-_E;# z`0l>-{W#qC^4Xl5Uwq7gyr}OSd^2C(!>2BN)%AOBAD_&t+^=xs1Mk#-w@iufE*CX-@3NL!QhVz4Y-+Z*|>I&Y2H>)0MyU)=ypdoVUsqUDd_g ze7c8xze#t`^6ea6a!eP#+vk}Nd~qMRH|U|C9MOv}^q`kje)z19dT{X7emuPAr)T}l zz4vg#d757C3ptldecU%6+iyPLqYK~6DV})I1rOihkq`VY>Sxs#A9Le8yylKB_Q?l4 zyZZ3cLw(Qc@>~Ap8(+Ed{jU1|rysrH#hV}Wbl$z;oc-nqPv_vl2Ojy*$GyyVe9W!6 z4U%e<^g{5Y3}L5SI;Z_a^POTPcGz2 zA9=M;PT`WT$Lhan#pkGJ=lP4L|L!nXp6R+f?|v~ybkxtiU@rCHoA3J2<*fRi&5`|d zq9?xaz(-g3`GP+`=ef)J^N$a3x}SWPUpV!H-|q_i{F4`XhnG(LwDMC9;Iir~=la^O z5B;2zcl+rfcksMV7rFOLNBrbLp3J-b?i=?Hzv-%;`Gng!_lElfA3U9t3;y6MfBLBp zH#~phi@&_l#eR6@0UkQ41CM%eTGi(RedN~s%D4XJi{5z3`Me+a?VSB@;%koSLwEYp zQ_kcQZu|H{Z#v8W*ZRq|zUEII{hgzeJgFmR<^V7H+2=iep6|m$NBY9YcXP^DIMstw zUAoxMZ~J`5i!X96U+~b0ulRi)`0eA*b>HFKJ-eseZ}Mx!!#O&sC)ad%Q(gC)xxiN+ z{QT~!M_)c#_3>=KdBtB}{8xDBr7yhZ3@`QQZtnDl|4((*asSD$I=g-Hr!G9^iO%%E zQ(gPik$?5{^X%NJKOgXbOWhCc!{@PQzR^`)>1JNk^Gs)T`6d7O;{%_2OC8^z!h@G* za|56K&eH=g_Yz*_4Nmvf!RRMnc+tUJ=<~O8@X?W8<`{pt`2XB_eayG|o_)vLIeE3u z96RscrVm`sztL2`t#ZEh~Ed#{Dwnaecc1* zXy*Pr{JRxD^Clm7@smz+={O5cF6Z%-`kC(dcM?B#Cw}tbzO%Z=;L?XLp82dUpXp$} z^ub?!b3XH{-ch>a=bZf0RSx9k>+scgy20W8@m~H;IRRR8e*5IWy#qHtyqDv%>e2^3_0^?^xisJSnIr!46COFoOFjF| zpFH{wH(zJo>F(a*kNtF|H(vZPSMnpTzU%M&O?tV{-QRRl$2{D(-+9k+BJXlXU%8^I z{rK~X&i3;Iesl0M9Q2{PT+)GFa-$C3@}uwT;71RB{O-Ft{M83lye@9@(Z9_M`D;nWWgIdTus-(2CPuk$lE=G{sMyyZd8@N_TJ z7k+&Y!!57g(;r^>GoSK72dlp3U%!L;@C%-)lYGb#pZ;`SUw)Vm`{{htem=tG*<8r8 z+}LM+=xHAHH7E2}S3S9qEB)y0yx*^>tMB}9uknLF`rpMDUisR+SBFkNdp~nz-ua2I zb98y>ynNZOKmMNehB&g9da%Z>UgKkc*1GavMI{-$&82hViUA5Z-G zZ{Fc|P8~XatdE@2K_1P8d(?S;$f^DGR#%?j)dya=kO%dAr-wY52R_QV_jJ6C7a#a( zzkbe{CwpZ>azWUBzI^pZPK6qL6 zu^&(PclFifCmrc-l?yq=hacwZU3K-9JLk=flLFI;%$~xafyBKh350`p7FE=td`a<>??_ z>0y51be=DG$TOXsqc^?&zUw0w@aXIOeRbsFd(ZlLrn7s~esfAcId_g<_RT!#@BX3Z z%n7`5xx#6FcF%CyhdfZzV3`pJViv`-!Uebfw7?-MQaf`0jqw zXLXLAbTn7=fQK$}3AcQ>Z~s=;{Fw)J=tEEZ?EgQ1%%5D+TYWq})?eP_94~myKizz{ z%Gdwl#g`rr_0^A0eD^GG&eIiMKFbN-^trCjZpGhfj_G5*F=Dr^pq3$;gd@`@(cOD|oTI0CQQ!SwA6&lk>r4GT^UuBGo}>pn__}}L zqL=sdrMEeuA6|6#-n03j$8C7&`>kjE^qY9_q?dE{(+_Sq)#0<}tNN;Izi0d0cdPyK z3BULL?vn#Kkm2d5ml4?N%1&;5ZfoOGp|IoF53{Dcdhr|P>W_~qI6d5+HVBxiCd zU(VB+{`}&j)x6(_%X#(ah41I~$rW7c@4nMbANLMi^E^I$(w{%{^9-;0bT=1sF3-Y6 zZ+=<%r4GO8yE?D0yuv$maIeZMo#(x*zw`FXvAo&myJtA)i#Ol#QO`Xg-}ucs_~T(e z{&3OFeP^ZD%q!pJ#k}wIHHY+o&pG#i`__s#eCCJW&Y#yu-tgw5dhUUv_Tx`ib@{;G zsk1rY8(!w!{pCCS^p$UY)TfJj{5N0bnEvqM$zSuLK3&W`-JGW%zUGu}p7FBcqwoA( z(}%wE9NzTc%iH|%%=b6FmluD3*$<~2!ZYX7_gy`!d*8h>amx!FQy+TL@v{2n0dBs^ z3!UtfdpP)QHJ|4AbA9-Wuk-YAP9D^wBc1WQt*$)E72KZbuAVw{fYW}y(;I&|*PovD z!$J3>@Od^L&Rg|g?Ki)4g3~>UkG$H4AH4M8muGWtAAjV@yn63m;*WFg19^py4*YfB z!EHZ%?c7l-R(fx*xJmP=ZIl01L?$rO=K6z3fZ*}-}(tbJD-#PvCd2Ii4E1Ysff9L4s z89usOSM}hN2lFg%@a^`S3%KZNKi+WRL7(gD$cg)aPk7NuE)P2=uYBUa^ZL;9u5<2D zIi0za2le5$pa1&kYreh5pRTL^a%m3a$Gw5CT=Pk;zuywTaP+?|I@9ewy~F6Tb?hq`=$ zPainkJ8}w_{P5d6;6qQjS4YmxxA~=`eeMbM`i$e1!8|=jG3R z_qX@*!B@EW!$cJ&aM1&Kgf;uaw|V{v6=_-=RDqU z(^WlsxvzFQ;zbAV>1ST?h0{L%=tpPx_eo^a8LuXz6oHym`=$M@YnzR|<}gHZ<_`#r+}-|Cz>kUxF- zz&HEUvCll>g{Qo@7w9V|AL~zV{~K;&%Dc* zT={+Y1PF&_N$QzSM`$>iRw5 z3!d=vfls?S_`(a1`gCwV{_Y&z)jRFIImgF2{@`Ulym-lp{C%me9Lmdc@13WUXZX}r z2Ojn4WFF+k{KDxweDubP&hAHj=(WNNzh^qZ&wu;8mp^^rq!S1p-5aFn2JisYWe0G1jr}W2L zAM-A6^r5pH;V(aMtBWVS@!^Z_@Ztlnyy545;jg*F6D~f>6&~^g2Oa!Q>w_mVEqptkOJv=*peDn7J-F=s5y!dt5d41sGGyeSGD_`VnRYyHO&>K(R z`K~^GeB_%t_`+vy;GnC0e8gKlJn(nV(c2t(rlY$0-^CX%zIfh!=PMoLZS~z8$qgQS zlv6n9V~+h^$)(>J_Yb`Caa><@y>~Ct3m*8b^y7>D<_#Wt!1<-V^ijum=dE(W5B=!E zH~!Pdce#QCZ+hqtzkbf+YmWKmS^mDq3qHA1j~{fQgF5)h<6-siflnQL@z3&+Dm)70NN9X9s zC;0UF)Vb?cxTe1NyWi!CZ_d-*emcPAJszIn_ssXRaD8s|-u;BX`;~8axNrDq9{FxR z9(;m>FMN_)xx$yu_Q8D>ZaC(gnk#z1gD0Kk&3=0Dk*~hf2M+rBzQSdGeCMxR&;x$^ z@us`}-kZnU`p5@8)WO554}a+DyMFxgUJktfSzq||*Vnw8EBVmZed9io2Yt++9N14c zb4~{<|M8ml10PoS`KLdf;hgyJP)B_@;ZondKzBKlLwS*V`|-g8e|pNF_j1Y){ndfX zInVA5I+zo4Y(DVT-+BD$C4bN93y*VFec|J)-v{r_yS%w~^p)2)_1mrVgbwhi55M_2?i}9s;|(wUcKhW4K6-fe-8~~$bhRIU^G45AAO0Nl zte$+xgY)*AA1fYogwuEW@R^S0j=%Jyzy5gbaLO_Nd6IO{DhO=?je2Lb9A-e zd-;Jw9rL0O{P5w82VLoBZp|b8ta5_SLwxD#y?oI_{@~+>{c<9=6VF9`4CRr=k=kZ zdBV#+{P|AL6%YM=mrs83OC7lVE_rW$)S;6+z#|v){@^Ek^2|4Q9>c93z2uV*`q0I^ z*~cF`m=}MKSk=P=PPw52pXCQG^Mj9-PVxoMW&HGW|It%U%%5C1r>_0-gP-}Lzxwhd z55L2KKi%#3%m@DSiLUZv)yLe^2akvP(x3n8;Q^mIaLO+|4`6# za1&#k}fg-sA`$dg%W)+<#l?rZ1hGr;|E-)fYZj!(Tu1 z;eNdfx4QhH7asbp_VXKm^9lcX`}Dz|j(%sI*9UKNPjCFyai7bpRX=m#cZ|;T)b}i$ ze_GXtPY&$EkFIdz&tJOk>e8RS@X-B3`{Zr)Ob2??L4AJ1OBeT+9Qgf!mk)g1^^;fg zi06IZez{afU;5!qN9X9N zAKk2U(pL`Y@Hw1()CWHIA^qgVd3m9WXL*rt^GtX7cJ4eJ`aJZk4*lWdkNL!tj`~_( zswbcD+s{vR<=Hv9(}hp;agV5rk9^3Nef*MB_3(!ae&@VDijN$e^{lV_c&|Pk)sd4w zoreo=`s>d(-{~Z$p4GR1_SKKi=3ZU*3%}vu^9nEh@G!shIccB$`0d`)#~i6Ar}7D> zdt2`CFkf<{{$+h`TH#UGDqr#=XLzs9!=(;ici)|(=cnGAKRJY(Z**1Hckfqq?58vR zMx(BTA;=wol>A@fPtvkMW9`+2^ z>KQ*coi|_b(%BsB&YO4n=8v4XzxaY5z2I_B$e(`d$UFY-6MTHPACJdy(uqIrHRt7m z&v2@vFCX}3?(Di(*(eAv$~dcvb0eRt=5$IGgZI`mfG z{Xhr4)k37-EeIPfJ zr}@B7z2D)MFX!-v>;2#d7d_;LKX~wk4qvK6H@M7=x|5&&>NzLBaJ!dQec+;-zI5ON zKlx+7ettLLR2L5XWgPI;jJn^K{2o4*0@%dG?GKUp>>^oa}V?)apKc=ox=?;epS4 z_c>kE;~)LavpVu9H+X)lKVA8SKb`32z5Z~UALrqL*F5WEzP#s~_vT1FeO7q!^Il!= z@se-#<;4BLANeq+&f$%p`;DIV^IdM;=lG~Mb(8lUFZ%i&vg#uT^u-r{^_?>Z>VK(^ zXZ+|uZ+xEH@7$lB<=cAMd%41ckMvca5Bl=aT;M6MzT>N&{l2Sj?%^<>e22?|4}Iu~k3Q}f_3ZcE z{pCCTtoW%ms@<`p|kxLotHOr z;l6wAyL*J5@^1c|x9X!lo$*=KRgWI(%9(pfuC6+#u5<8urh}FL_R&+Fm+J0Txi=s5 zlw2n;bre(^d3&{?SoIn$}c*7YagA|v)_H=nQn0D2N(S2fRE-% zA3m!~cX^>3-tHlD&v$yusdMzFxA|9xUiO(2zZ-DiWYUq^pBd+*sj%6EP7Gq3i;MN9-bXu`KGu2az#fz&{@vZ z!AEZKq?4SiGT~9{$J;9`b{S`^Wsx z{_6j(?&Db1p|5vuZ_i}5V@xj}B zK6}qUbGOn5FY_-CazJ;wz(4*^?c3F%i`>(jf6n2FpL1}*%_r+qedGh4)q6fU z&v*RjufKh8(UC8FuwQ@Q;dMX4V|AV%^ta#l9sc81c=T~^z-xZ_Z63|DdBn$edg}uR zd~nlCPWkK}HdpY_0p2h1aNaz~>to;HRR>S=Kp%MI1YW$HKd-Lb!fU^M?lY@7)(>uV zyq81s^r3$A&<}sS&A)x>s)Mh5;YClp=^#gNt#CNccR7&s0FOTZ*QGIpkgcrTlr6-;FpbsDLfpdjNA364(zVc|U ze3x_QcJ=UgU&<|g;s4uy{GG#>?&gv&Z#pN3>X}D4-3y-ecTQiqbkCX_`M}RUxcEnZ zxuTo7;)ndei>JDDQqR2M!C$!GfSXT#$MvHt-uUUqCpqDZ{_4vgKJvtulYEh1{QT~y zBbRit4<2(Mm;AT7pWGX8&|faC?kTx(f4U#&goploqQAc0!)-r5Ryx2>7w6=HPVz~2 z`l=5%eax>M@Qq*g;Vq}$^TU4py_XX_%!&8v!Y_9_-tHy%)S(9*^|fCv%`so)84tS9 z+r01-PIDzUaN;d5@&GR%^s~}kj^WT3PC6f_2OQq}y)l>g(-r=S7Z3Llo#2u~eSMc7 z^GjDcm_u`Er7K?WUBpX0d3HbPYrj7D$eC6C&8u9%#V2~vPd&N9n|~9hIpzah@WYp$ z`p^5(eDVQ5zR3gJ>X;*apGQ9AiI3{YAD!@{6CIqBW9Rh6!*{&tW={Dkm*$K=be(?4 zjeA)R+^h8P%r|=T)ja?QocQ5Q2e>@zk2hcFE_dbtZu-*Qd$~~G9MWgkJl!k$?fTo#Uwoa@hp(Pj=iyTaZgu2>pZvkse3@rF%$M_YIjS!o)U(Qye0X*a zFZt&WU%ZzqbF04`&=U?h;H&vnA744%@$jC%&Z);o_|5xi=jjHAeOCIKL;bzS*M84< zn@8vQPY=16xpGbp^u>$5?%fq1IpjOP^pP)lv&xJ5&g0`*{V(;So8K*UCQp6%e%yI= z@O0kFKYpp}yZQAVPQ2-ahkE?rqi1t=7CwEyj%T^#yT02C2^;d^q^oCboIBw!?-}j!~Q*`H-XZ`4L+d2B%Cs)p^zuV7e`1lW} z`v9J)qi22P)A@_~;A;-)BNz750Y38whkHu?@a7l&%_aZoozV|D9aJe7oe_$R z_xYXi;pYz1 zg8uq=k2jsvlVg13jISTVML*}xs*rm)#uxNb>Ow~$Fq9$ zSe;YP9MY5S{G!|R-(3Hw9v#dD{`%0(JkkR{df4YZJ>iCrZ|*BOmV18DgPyP9#mj#C zJi|>lc+3Z${C%u0f7GEPJb0UD_2{>&1E>1{4*JQ>pZ3E+cYNq#j`^nVN$2S<2lnZ2 zzxzb~)zwE%`03eqI=-o|^Xlq{KR)N}|1|ijhrfODudjN1|5_dXr~~(}zS|EkefTMl zaLKE=kOTdE|6YCky{EIeEKx|J@ZXI_@mBwxXhJ$^wfW~&x)t-^rNfX zTjB7#!DsvB@1{QVH<#YSW#xzUUFY#|9&UZ*0}uL|JN4v+FV0!jhj-WCeeK?o7yJ0* zJe~MwPU*upxqw%mJUf3laKO(8Jn@H1AAZtNe(K4jt&hLg>Fqr| z{O-_&Ue3v-^ZqW9C;Q?1nGf{D&v*TOr;GaqE^|fqU0wR%YYyetJkW_g`o2~NPIdU? zymS6ekSlpHAAILGUi{Gye|njZU*WORSv~sEgD>`}i-$R|pAPEaF%6*aQeH%T*(bQboHH{a_K$))c2iVa^qP}j?-7pc4 zEnn(-?;e&je|PDNzxzU-)RP1G;XmEsft&8`ZTj;WFYo!R9{=>?Kiu@gUk>nA&wTLJ zJ;N`0@R82?+Ygt%aLIxD<31nh>iJ#oPg~6a{`S+=IXKLzKJ-=Bd*|q&9v}FmFCEM) zU(~0s-v_);;-SBNbmj+r=(;+mk7xL;-pdpH)pM`G!N++|t7AVNa^x9*&+@SU`R||k zk*7Hi`cHqIGf&R*0j{_8kvDzKFF(|C4*&O^=Qkbc;XB;w`p!Q(@YUQ+|McObdUW+2 zUj5}xp3lO~SGstXfBWPLK6vf--FxSKhZEnKSNqlBtNVn%bom{Ab2oK2U#ori>#rXi z?pybPIfk1K{Ga{lim(23g`aQoNKg6G*YAOI=7PWa!G)(>zKOTFGROF+M+Z3Ng^x$o zac=hv|9Q{m%sqt%Kk0%mUix}(h1YjH&5gRg>ua9*^b$V)`feWaq!S-j=X^I$cfHqN z9sB8IZtgO2hbZ}d|SKl#OT zuIf9_e?HO?F8kr-hjZSW*RSc~JN@WHM{_AJ?q&BX-cQw2Uk>=}UX+LD_S2I--qVMU z=0L9Tp##6^0H6HBfu|LIzbDS~(LB;~>Y$GAa>P${zQy-@t6b6pAAIG|e9(i=>fvcF z)PY04xw>EIIqxlVLRWd<*L6JXqc8pB3l4mJ#|N&X>RI`+d+(fi!xJ9(>F4hP_l{i2 zr}O5Cp6Z(``H=%SoRe#Lmq$400*7;Q<2`-lkk9(^!FQ7I7 z@j7pxdd`3Dy?yYQtH~1&{@I7G`^LP;GadP(j$H7I?(oWw6+imnuP%MvlYFy(#}|Hm z>E-v%ce=Wte21GKaPUp8;89pJac_A~cYN`YS9tLAo0^**x=0p7|wD`p##0HNSY!3m$#sTpf74mp}E~TYvKfj@>i8ox_{XbmX^v z>dV8b-rNV5zWgwEe5I$kpv!r6`S9BFx6uzzdhmOf%aO20un_ido z!F&E5?!Mb+E^m6TukZB2m%i|<&iUO`&wF~(&3E?)o%kpJbdV=H(pP`{=sJDU4{o}f zJ2}*kPtKVO{opo_&hejqa%CSq)Z-hx&*_LizWU1NtSblln_v6zP~Sd%)aO5a_@)kB z@aKzlho7$UY_8?Uvwrezl{Y%M*RQL8--?$!=#QWC_|OF}dZv=hdYPAL#5}asSTz!>67(gohsX=_3zvEvNd~_dR@cRG-gQ zKGKoSbdraQ>aEtPhx&NRx4fFO&z+~YxpMz_?_QCkznxQ;uI?T9@q)v9eCV~S$FGx~ z&4oVjdG9>_p5auNKXfy9vmXEXU>@W^-tEKpDZEzsqc0!Tr5Ana0@q>n=!b_n^PQjk zP+u<9Ge_`S;WOuO$tzrV@y&NW@QY7$nfl@bKON=O>b`V;SiQ$rJ^AuGqA#5K(LrB% zan61@Jjw^p@}nO8SNr(PC#(AK^GQGYxo14fwK~pu@4R`Y$8~u4&kz2ZZ}$lv&dY^< zbb!l#ec+ZCIiWLMeAm}Ly6Q(?KGMxSbQ?eWJj(?(bAKrea z<;?HtW#{FX?q|K{3qEr1o>h-;>cQon#alf&=RZF1%dgzIH}Rq~Kh25#-oxj;In)oX8n{;FU8z>1#h+bi@Ncxxf<+-}U1s9(clO9{D66(+73w zAU9U?4zHZkn_e@oc=6vn$Q@ok)7f0XtG@ou(Vt&;ouB&CSq{ygys7UVQipDI;-?i) z{rO72nHRk2!9R0DS9tm1nZLL3^qmg;un#|a==;+7)k<&Y`NU7Soik_rkT-fbPiK12 ziQe*UKfLBe?&*UUfA|HT{dAWf_pmzjkR$%O_u%zi{@qKye@#Dl`L93U@S_JEtn|d6 zPyA5FdA#{g5B2y;FZYi9zT+WxzI)Gab7>wP<87Ycx0(-n%9py|JI@EY?%vZAp4EHb z=>eBI^2#qh=yzTndEu`*@&hki@W?lx_$|ls28VO-=%WsQy@y8~dgBi_9r5FbI&i5c z7xF3>^rQ>_F4D=o=m!_vc*-NZaF{FS=}Rv@!fSOe!mYl!P{(Xcxtuup1`oa5BXp)8obrM1b$sdPy!_#Bg+or%d#sN4`08twbN=%OetOXdfA<65 z%?K(9Pe;^q{YMMjhw%frCGCW4}3olYi>! zhbLd&rMsNMFDLwqoDn zp5c?H=ia*?=t+0y`DFiL=kTM4`Q{(oyZv)M@iX6Ypda7yf=}M)=sW%R#BcWqUDTHw zK3s(pPx$1?IsV!wH}Jw`pA~-f_^1wi^n{;p{Kp4=_2t1nK6_6$^N5e%sq^^bJ#!@w zt9|^{AAkMy-|aV7_^T&Jbfbs<&g*BtJiV{JIX2&PbKd%){c>-P>87qZfXlOU-n+-) zc3vMi=)qU#<-!F5)*VQ?A>4_&i`pOl&bT;4ao5>Fk z`qP15`kEher5>O7_AA`_(w$E3FaGdR9rqMH^rs)5_`!t-ed({Rdq&>%w~wCkOGkWm zy!iIEXSm=tM|?7m_Q6X(I$8Pe96o%Z^Hcrdr5C==tNWw<=1DH$#7ABC!|t3F9=VfW z{LM8y^rMSBd*-9MeDZ7`p5{*<`EoDlr_KsLoOsZG>LDL|pa;JC%B@_>k$g`6e8Gc1 z&hbM(IpMp!($9D6n|R7GU(E$RaN&>L`ts3!b@=aDANPWJq^I|MaKD+0Z{gy%9LO7-c-t>O=7MfhFTb|x+l`%0BbPFZ##}zxe~_@AQJhobZhgp6M@t{4v+^C3o&ky!4lM`|-42JwE9# zKk!f8yvGM#y1d3$J@x4@^)<)%=*Mrm)0@xE>Fc{(!r>Wzb>D?k9_0ofI>-Uup7rA& zJ?YM8_|>J$pZeoX7vI&P^T(m9xv)?E=whDz&fq=udaf>?^m7m4;hg-y>FFFAt)Uj6+J zIwxn&^F^NA$L_7|Z)#6JA^BX4xjcU8xJdeEOw=EOO=*eB=ofX{n+z{^kg?3WMo zB#-oWjt=e-=j5D@RyfQDp5|G9eSPPH^*X(7TF+YXFbDdmhllTc;+wgKV^x=)bl<(l zn-9One!SGTkB)qkcYNq2kLG~B@WW}|IYeE9D@ ze01eA-94LEyy1tJ?r?q%*KU<(@971XI&{O64)UwNxuF}K)aNhV&9hbR;B`NmXL|Ar zPJZJfUwnWI5Buq3KImsZo$++u_leVc`tZx@yt#xAZmainJIt@CkNH)fKfC?(@g82e zqLc5Qt@285=jg=`_m(*|2YmHjU3$XlepH{|{Kr#n&f-UJKGDs2d3I0hV?W;N`8}6Y zdc$F#diK-FdLKUX$san<$DGRrzw|Ljlb8JP#hlXBGd4TTQ z2k>#uz5kFdaL~sb;w`71t@2~O;Pb3M{&>NwzxQ~`m2-Yq)YHc*cXDA)`EEY!Q;#n6 z`ko%It>zy-xuGAPkL~xn;X9w*$N0fxPUX&idA8Dv-xG(r@WMlf9X@)>nfgzC=exfH ze5b3N%D?*=4>;%`H~2dbpZS3MFdWl2a|frse3A=ud{G^^>EM~3>fvjC>0lp!Z><%gulGtLl1n+Cm!Zp{`6B{p3S?Q^Nmk*lP9{%q4|PS{_yu59(tUokA3nk zfBNYUH=e$`kK_e@&%WEwFZYsM;_n>Y@Zr-#xcNYjzrCjmfADf1Uv>49SNyE%;x+SU zpZp(&11`SH_4~f7>pOk$g9i`!q{~@#;IfaNaxP!|)-XNv3xDL*e*U;W-LG_mSDkm& zg%59ay@%6zbAzvX`Z)io`n#2n?kjbi_iUdzf`k6@;&+2i?ngZ2Uq5=_gTIxI=7XN} zb`L$r2X6Cr(R;Yzab7*Tm=}2H>G#94T*|NS?prH-_NfamUCamF;Pu`)``wrN@Ru*n zoyA|i@rP&i9e(=3Z4U4~Xuosz(NABw@ob;@lN0xjRi5TOfS0~_$pXdz#Rle{| z9e>Zk?Yvyem;La{mz7@n+}95eb?EV<@2k~$_W|De(U;Ha$%kCXpL>$dyFT#QZyw}S ze|6mB_{b^$>Fk*v?i={rNBod)xcK5;u>WVc`6S134i~-D_3S);_S?s2Jj}O!^yfcZ z^i@Y5_48d_`}n86+|!kQ_{z2W=_NhP5j^HnJ^ReNXY*yhyicBdGZ%En3qCoP7teBU z^*hF2xrE<)I+zDO^V54e!lC}h^x?Pta;@LYC%*9034e1Vr{)-5xu)w)IOwjwmCtbN z%P;=oXa4nh5saKl8)4IS=sRL1+0eAM)qE z(vRNW!zqt&(v_a{HwWgCKUTToFC6^R2M&JImoIdYTlGED-(1ndK03*T?{rXyzUG!+ z@X~>>mNZv^mm`TC(Hx=%njW9 zRi7^K+Yi?&FZSUFkG`JW7x?gwb9qHmd{nWt^ zUUk%`lX`IS4KKJ)>nm?^q>g;coj&@@uk~~F7BpX^_Kmp606mxI3Z&D`+?U-N~hzWC!M|LW^YPw(}CbG|nRbT>!*b5H53 z4qx1he23HDH{Q!Bf7Io>bM|>QXY~A*j_+FKK%U%h&e4(X>f_;@9N2Gu=?|~-p6QLJ zT+kI>^KH)PMrS#u|9$+_Rfk@9`z~M3slTgZKIpT0|Gm|DdFQXZ$fv&M9v}HokI!<+ zPq_HwJl)~6PcGGc9k}r@5Ag8^FTQz}2fp(S4t<=%HBJxYyIVuAMzvD^uybEdcyA<-|SOYKdW>2$>qmz$_<_A=J~LFaLPYDyr&0W`C-32 z(VPDG`Y!)+@U{NR3zy0*5i#&UlQ@q?We8tBzzEdyt=mrnH&7GCM_`_|^ z+zRcVlzMpM`SYLu{_%(2@}#eO;J*DdRjJmkqfdech|=_N06Aiwx}hQof(U&;et@W$_^@AG#DZaHwC&vFO1@A9E9 zJ?ZYfJn>OIx$^9uF(+`r;k!QS%cbx1#}jUPz|S{&)6qQfOCHqoov-o+hiB*Cr@J}C zTYmWi2OfSe=rR507ryRmIX6H4uEF1Xc-7%2Jif~rUh-%@=)*_;I7ff;b)6o3a87@9 z<%aI`F~81xrUPH-%rEur!_V)4+`_}R58Rd?m!9&6zjfl%_g8)CLx1|vLC$=?>YTj7 zD_@@F_on^k0T1}_pqsp?N7r2)d6x&@^?}pe%Pqh0bzVKZFU-qld7kE6=lYe-+7xm)<-T7&~4JV%N z0q@P9dqUovH&6J!sU98VUVh;)S9~$Y=0XnS)x56i^O zt^DB^esIetpPYjOFX!pSPq>}m@m3#iKFHB!`}C1(zNx?3$3J-0HJ5be8$59D>d2k> zF|W?)D^K!CXZJh2c&bYuy1%V2p6&@e`2Re3%E{;6(~TeA)8F^qe){m+@1NfXxb?MP zee+=-{_tDXrHfq45kKXX9_EV9bk~<3(;vF&i#I%c(t+$hXxB2mW+}hfn;2cj|~2{(RJjU+xt-kQ+SBfn4&39{l|het66Q z-t_lfPQ0gwzH~4rbaakBr}f284&)bK=jf-e@9qnI^)uJ>^2~pA@sv;e@tt|#pZiOF zIhy#L{}x|7=%z3I;G&QH>dNh`dsKb<%o+dbF1NnZ&%D4v2mAGESPwK%TkY$cfZMnXSt-K@A}9c zU#xV%li&1rU&s+0=8_)rW&Y$>U-!CP!nM*zE5+ zqN_gY!|@Vd`q2p=zVXTYs6!9;2R!Q1Lx1~xKdC>xJgfV&?{w4`9(ei0UwYzYKR(_& z50CuIjhv|`|Ma6fexCKiUmbt{$e+5-!$k*uf7fb@4l4F67L6eC6>aUDT5U_{<-C@T=BR@{)rFr9R{ZI#KK!@!SC_7GW53@M_3)M>^AGo|Lx)vA`qNjQ=|Vp^ z%maU|?s5C%jF0qjAIOiq!iztD`9dGQxnJai4)nweU%dE7CpzFkXYcVjN-z1~t9!^f z{<|mXN=K`GPu1ls9CX9OJ?Fmi9xr&j|5IJ~;f9xPe4-QH&co%qoZ-b!{?cDQ-S2SV ztu9>fn{PSryyGJ`p6M(O^^PP`yszXQp=R{S%$L7A;NY9pJjv(GvpUu}Kk7RtCv?S=uD;8O^YUn)m0omzj5oek zKH*{iW&2mFdT_w4pPYPX|8C_c{`y|^onL&BYtMXfUQYauz~TOdpFZ}{?XJG~xi{ga zC%x2z=Vb8u)wBNczIx9`_W_;Z(+@wnrL+BX{c=oK{pDiUhc9rNSI>Cj zC0}%hS6}y#I{N4{GQmSK78`)_lHjU<0B8|SN`a2-sqy9 z{?7Bsd;8&Y-^=Nzd@&!ZXZZOdN9I(H)P>V~_mca@c{x;{u5j>yj_MwSOFr>BCQW zedp_s>cOF({Oe0UxYVPceQ?l8KREb>Kfm?k*Fm`Ghp#^J<-DBeFQpvpAU3$j(+gU8Gq>nzjJuQrLKDL)5|@g zu6^{93;MwCSuWMHpAYgckMz-ppK$V-F6v$7i@ea)K6Ug_pP%~D3lH}tot^(sKlRO# z-+y)C@g8r_eCIbl{DG6dr}Z_@&dV{Le1_NaQRn&M_Y596vBFOm_52>m3monzeBgnX zZt~>2dqW+4@4^coAMj8Y4*Th(j~wIeyj=M%*XD=6d{a*@8Q zC+BiSe|niGdh$i?{BBy|qzjz*S@nTO?&u+(bhgrie$IJ@gWh;w4_#*8!@iqmIlv#@ zr}n`~2leO#ulqt?<-w}%Lv{7z2mExWFPw78FX!lBUg3sMj=h&3ILwFq&<8JbXa5er zIft9y>Z@awcYNTHPkiNk)klB*@Z__)@Z;+o9pnsO{pqc*b)LiDT*@Kde3#Sr;kQo? z%!~WU{JJ0UhSxKn=_~hgWS>0a2e&rzq)kxUOl?I zhvdMs{+{8N13c}cAN=}yZ?5z;m-4BeeR7P4K6vw8KR)wi4V|vWvw1XEaxG`((K8(K zgNJkc)E{2FoYU`Zc;HrtKk}fCm7Z|nC9iUKSbeLxp*LUQJ#If-_REDj^6tA_!DBw~ zznrBtFLGGmuLLkBUZla3zyu%E9ZFdM<3@r(~(Z{!FT+e!;4?$ zLC)y;5N~<(ccGlv?|$$*j;HtP@c*E?{DRBMXSnducjkod`h2TCpY(Cwe!9@vGoEs3 zj^L+{duj4khp+BUb@}Ez-{FVzcRb{YZ}9uBA6)VU*Po%ceBJe)?tC+MaM9a-I?%;@ z=qK-<-Iwa)BcJl1uYG)RzkCQU-m7Q2!sENS;ls!Fdrwb#=%Wr@cjr8-@7a7frw^X? z;i<2j+K1n1{p@q@s`v8jz14ZTnIEfpR|n3?kI!_1Q+>Z1azGEy^rol!?hEJT1|QGx z!zrKkS@pp~PTd#g01v$IpvUKQm3Q^j;Sc=gSHAU?gJ0E?E4k(;UUY*CfB8SIj&t<& z-95>Fead}`U`pWG}M>(UH-!*mkXmzjCe^&=?&-lof9MaeRpPlCiJo4ZkRR<6C=)qsQ zdxm57rI#G@A8&rcg)dz1!|nc&13uZO??e0HkxTvOJugrA^BF!q!6C2qeXXDKp5+d{ z-9G-x!Roz!?g#e^-Q}Gh?g{wp)5i+8@BE^ZdlYWDqZhsL<&S&OeB!U4e8EW%zf1b@ z$^7YSp5#Mac<<89dHlS$-?Q&^!kqG5U-Ft%@A%A( z{qXvGfL`X!J>ov&r@HvVA&=%7UV2}IOFeT;Cv&0BYCjzM!-%}`qSC`*l&dge(&+x@sb<(y2>RSGbi+OuhY%E(ph~x;H3xN?o0jEGjDQ32X)|d zzZ|5u_s-+%yj-mI&+~k?58tT+|Ma6HADmZDzWolV2bXi6<%n;W;gu8m;-`;uyZzIT z>)!KAe$1^t&cSI8{T})K;G^$&z)2_m!e#FGs}4Wpc7@mP+{A~s`$`}6<-mFG&9(1z zgo7Sd^B@m$d=kF%R(ipK-_P+~J$ay~xsn%oI2}58&p*2H-?N-J4<8-nS1#yCSMT{t zr-=`KzS)PT`OwdP`mgwz8+hdqUUM$L`0{1??4CA9>iWIJ3y#BZ_#KiLI_rZ!eei}K zKm8u7tDn5!qo4a*Zs4Mi_vTDL`nW&&ufDuKg~NVzAU%o zORN3-c7MpBI{5kSdB=-?d{GyFeBo4I9eI7I9=x9U@0`5RiywSa*Id(CJ@p*NrKKd25L@s|fUCT@82 zrQ`4F!D%k(;5$Fyz=ytYSmoUOPTX{pGxhkUFMVFa2?u@f=8rtlXLrtfb0@cOs;{r_ zazZ!$$$@*3PwLZ2j?|$qyyn+_`|zSKznnMUeB&=3beBi>pPcCn2c6uH>Ra_OkNk8$ z_`Aw}_0^LL`tp%a{K4O9|HphZA8^wbe>uV*ZusQQ{PK;?^ip46_329oJ{^URF8ISI zPv%qZ_(>nRqMP%6N8i?Gx0+M^%!T>VXSE+c_nus-D<^PzuO40Lr!QT9)Q6vRG&l5y z(|#*lR=UcG{`z{BJ3ir|uDp5v98P(`*F4J&+}^{ZpB0W>UH#=jKe=A*%2^{1bFK8M$Rf%n_q^TAvl_FjK;;rBqk z)N!x5FX&{y+|gNIzTl;gdmJC{%{xBwq~8uVeej_lALd-BYaf5{hr?XpBk%aYEqBh# zmHg7letI8=pKtKo_Z}ZS=<9xSU(!RK?9(59I_j^V`s%?YSM5tzB{+ai#p|n6COH>CqMl5_*mt^8(ehdXZAO7SkzJni6@~eCPuEGU}z5Y@^e0(FGJ)Y&a{?}Z_ zlREJ!kNVW@?;!E4zVm@T<|}*e`2)}Nu4{-1yU;hit+`RTEH_WDmAyt=0j zywL+M^tIxL|LCEfoARsI?;yPLS>b=}-EQ?eLnnOV8$Wmx4-UA*!=HITZ|8i0FTCRe z9{ov2_5KX^r&fJtj^G3D_|<3nR$REnp(mci^Lwg(?^ZbUEqv;9|8w`$r%&O;x485W zmwx))cRIl79zMlapZIX96Tfh~C*C}#r#|F+dBih6= z7yr>+f8h~Mzc=E@i+}!cjt{u-Wv;3N9_M^24xj5gaq;Ax{(}R5cs2j{LS1m_Q#!r< z=ih&D%I7;A`o|oSPdx9>iswGw^pkk>pdY;I6JK1s;2A#ps_$p{;V=*3!Q;I5sds!X zkG`;nmtOicp2i;Mm>w4i5R?gV#OvTAe=>k8ku99Q38joFn?& zJ$%!d@971X{^K`sc6i|O-gka7FW}Kn;^6_`c)}z9sT7c!;kpZzj&pC{QmC6w-p}W;g=7Oc$jnNw*2PIQG0&m3w-gRd;HB8^zfa} z;lvxBPKV#z6ORt7d-&Sz)$JVbaN&9K_1t?a-^puLzdiiZM|^;9dEvP)pL+R@PwB;{ zc%ut{(03J&zxV|o^rj;psY6|KGH>|7xq97)AD>qJ3?Dt@m)CywslNl^b{}te#V3C8 zMh`f><5zt0v3|wBcYNc%JopvQeALf$lUE)*s29(8n7^(8#!4jUVh)5!$()T(9QjMZxsFm?7lj@qqFaLVJN?DK;_H8Xu8+(o=lrG*h4_ z{PG|C&c)?dJky_!=94(y$&3HHe8)H5+tUwE@Zia6Ua13rtN700qJupCUN)cb#b~;!)p%lp?cj{r?`AT zS9Q`+z0TF?Jv{U`Kh&WvyvSo-dFQ)&^rgDt(2sb-r@6)->JmT(!l*ekm=}S1h7msfyzjQVy%u#&!E)L%0^<8}R;+emktJin>|E(@@^aq}t(~}O~ z!3)2>F<;gLswc@Muif#2yj`Q?FMeBbGWU--mT4}Z}EZtw7Ak5BjcRULS9 zkN&6eU{$Yt`h)Jf`|5{7U+}wp>cxY(!zZ&|b4J`bXZZ@B^67hZ=o|IC3%9+ze85lY z(iePzFFM)7YgM;A@Y5L%c#p$HNBH%vxT|~c;^DP(^GzJ9I`~&!y5NCt)N9Yr^794U z{DE)%C!hNH$2p#@@Z#0E`}zs5_VCe#FVwA%%rW(=gI@RXXwT2$@vVDS@%cv{JkrHE zU(-z-a|e(9PT&W6@rAs2#Rq@k39sVfQ$G5^sZaUtO}u<>r4L+q=WqALqXS;~VUKv; z(Z%0y`WwIA;|(uxSk;9`e8|JU>fj^3$D{lFs4n<_R)_l^+vE2```cE$!lRCfoA1Q$%j`o^kH@ugqz2CsPPr-xPjvyb%&{P-1z?kk?me|1~oGylbbPag9Y9y;x{dD%8uaCPgFW=zDcY5#vAO7k6 zZpE{_-qHKMd-motJp3R(ztaC_?{8YobGn-+;>pL)c;3CooA~;`J9W~Xj^4p9u6aWj zI>=8qaqx|Q@9@BPvwz^DD?adw2l~jPZu*#$>f;}LTK!JIsZM<9BlW3!#j`r_Hg(j0 z6W>Yi-Iw27;1hVn(P!{k@yb{HgC~2q@k19peh(KsaO-Q2;7feU%a`7}uRqjFcfP}icjCH-5BTAfkAJ+w zyL<5B7hWqq_{Z-Jy}eTh-uV$edw;LUuP$+{aN&gy`Ch%^>tE}yfByYvPT|9Q-^HP$ zel^e4$w%<=hj{eT=igobtNO&HmpbG%r{FUOz7+@G;=_YC zeI>4b6K54ie~TmUP2cVL%e;8*ySVCg&R_V!FCE~=m)~zV;JYf%S*yO_NBnuWyXX7Y z_T~?r^o96*jxYDc!Ml2#^O=63FCO?(9&zbRFL=arIrsOneuP6jez&Usx;Xe%H=OqBf!~-2JQZ9e?v3-@*rnIDBRP!EdiG`3hg^HmB69E_tlJi*pu!@%5kk z_P5>Rvybih5gy;=caQ$+;UoK9Jp9lXzw%GL@x)j3gI~Y7$JcQ38(sOF{`3@2eD%VG zPyK5CTOPWa_w?p_ zy5Sveb$f45U-!)w_3%GmdJjK8z^kA5$eees9z4;<9v*(9hdkyu{Pf0$eE8xk^I-C! z4t3HMAN10Hcz^@n;`5{Y<{A8Wzz_ZOfxdDN4t|GEo$7|me4&$f_=3wj`RRiH=lpEW zz{j8PS?QpE@g=`}{H1=l=x|nEJm|~axp;Wc=Tj$syzQMm-M)6NE_~tfwD0ip4cxo$ z_z)j%Jk#T$`}T0-kN@egy02b*@`JkE+uir~f>j>#jBmtKFZ^(dr!V+dKl!dsK2g6q z)I}e@5=VUZ@XQxh{-Kk3i645ccyQmm<}bM5_q(M&dg93(=Ns|yD!#haMIZi}a~=-g z@h+eI-r%e%kNIR(xBPsAXZiI3d{+Fc=O+I7iofmQw3;{g#Q#Nc@ThM2 z@Z+7|i?iP8Gb`WWTYi1PcXU=CAJN^p{t*vvc%lp4{0^8~d?WwwaH~UKiAyJas$cMp zAN-labcTaZ^{ae-2l$6B>f>uX*o$)&ez@r%4u0`B@8LmRaMKSyany+y{!{l34;|=& zFTT=8?z`tZpUFo*yznXCtn%U;FL3cMKZvVN_xY9H^yT*%kDtZC7aibMFP{0!cPl>3 z4SK^ZAHMA6qpy1LNGE&m-NQQ`?&8xuelnLH`|h54)bGCe2LI>Y={tQf^Q*`2*XkYL zxi7wa_`tJz;H5hpR{WbU_!m#V@z)LyKhTNqz4wlPeD~hDy!e2Z-=E4i_w?3Z`qy5) zc)*txpL8^bW~LN@>ul|9Oet2)WNq_b*UeZc%iR&>W5FAd{5_J z@drOXy@$)5&-h4P;?e~!{Ukoz_=ZDWeBgJ@IX_Jvs2I{BC$ z@~fY3^*g=f;{$osqc7m~ov-B8fABe{7d`2I5I^$hZ~1oLS1Vrihdq7Z!n1y$vpHdf zm;U&L%RM;w2M_9k1Mlu%hx?{g-R{#xKhVc__wi=l;Z=P1@cyQJ`h(8m(wPsu=Oen} z6)*akUwzj%@S896px4YRo;dE)V^xRv{7g4-@q$PCt55&n(K~bOtUP$qS62DyJ$(U} zIO@<>>cfjX<`6vQ%H;7+`1p%n@WVx4yxQw8exN5DyZEaW4y%5I_n>>?dWSD~yyt)K z_<)b`r?1qHXZ7G0ulfhye1T{8)$9B){CuM>Jc~PV;twA0^_}~8;6HVLDKDJ(nS6OC z4}Qh>PF}0NG)MU!PCoOyre5#V?faYXIyV>OlLxO4-T&Rnuio4Hu5NMZNDsQf0l$9Y zUpV+wUHJYL9{mE3dB7*~s>gf$S@BN~{iq(eS9#%v177_jF8;i8u3mBYP+#E_ZgJJ; zchFqqD}5j?zc|-_`cd8LrKfuB@%W+o{Z6R|Z~7QcI>4uo7Wkp@gomC`AnP@F8KAs ztm|F(#Fr0lc==KuxWzYzoU6}@H>>*ifuH2_oe#_b`RRdY{QwVsuBuO+bjFYG;ydS; z>Hkl~qyKJChs*YSt8dh)9{0S1clud;xYdhiexa9o_<-)>!*7po`kGJj(M5lYCqLet z!=o?wg6`%4pTX-Lp6H8z@$@S^<`JLi-@9~xOB{H`@m)SV;0Iss(H-A>#jnokgg^Zy z9^CF(`Gqg|gzx1S53e7qm!5pYKXBc4kIw%!xA0)z(h)B4@$B~<|M%sAS3Z3~FS^oQ zKJne7pL_7B%RHCorTlR47k=<+Pk;I6@7h)IRx2Fm?dd>2dcw84$4C4x4;|d&C;Ux) z;p9`iY<|FxS9s}zH~z$jdf<|uPw<0}r}&|_`2&YMbcahH*~3o{ zI>W*Ld_#Zl;geUNiQ~Kay;tw54t&vxj*oq}s+VqbH&@g{FFMiDJX0T@&1ZPjOFzEA z6My4@9`uCIJN24paH>}wvu^M3#@BF*j~6`CLx16qkMx0jd;+&R;S@*Rcy%AY>cRi} z^urVWk2;4(o#OD3c_bcO*S$Aq)vrJBX^zpwJ9YCNoz*8Uz4Vt=|Kbt9e5elmxlccJ z!O4&2uzKu3CmBM;o-(D|%5eCHkh@Ty+?;oW^aO`qTyfBYgI z|I-H^yz!H~bb(JC{?M;@c8?GA5u8)6i}=8!{NmCBukP`W`t+Ur@~KaMn@@P;cYL_# zoF4j0ez^E%-se;I;1W-raPkLVsCVYYyK_A81AOxF1HbY!9P*kU_@cA=XYkAA_U{P>^?o#?0zaov+w9DDKc&foOH4`1O^{1t9^<<~Fxl22UU z^&kDbHz(w$Gv4Wl5A~bB;`259>eSzG%P&4&y+5cbANo4Sv-fnf`rT8%cXY+Cdc=oQ++96*;z#;g)g!(+aoT(Q;Y)lx z>K8chFP=GwSNZTuZ|}r?DLyU#D?G~E2|91imce!Svao>gA_!z=!rPwsoKFXUA> zec=-KzI=H0yFyR=;tMZu@k2gBPXO$NYapf0}-<|V0UhKuiqj>_4ep46R zm*K{@bNA%&9l!9YLmvKj&L8SDKj}bEzQrrw@ZqO$(ox-f1rNOP+2c`OzPT>0ewuOk z0uH+Rz2HOo;X$2z=>F_G`1nNqaM`O{KJW14J3iHEZoyB#)9R*|?|9`O_39(I_z@mB z`Gl|F@m`(t_YgmH;zK(6j#qwgj}M%yOJC5J9{L#{@bCp3;;K(Qd~NmK>fC+r^(Wo% zB;WU;%SrpkvAQpx@9LwE`1+r|>i6CGukyfYj>A9srZ*np;uCd#Ev}W{^c&pbdQuH@9?nOt55y#9`)V& zxxIeT|5oqd^3LCJ`0!re(3c*3f)~8n>oa-vqxba0hxzIq9pJLMCmx@{?f1hy^8%0j zX8z!d4)**q=M{at$0xjW#hd!+>%P9k2mIdim-^_=UwB&SZKdaF=jP;1d+*>=pMJsL z+wQ|5FCVH`UGiG_1%7=fzkV=x@PIFP=|N9Eqd$GU^BvDtex}=(>eJ`ydhMJqXC316 z%j&+p@9@(T4t3BUFYc?C-_^&D@5}en>Ri0@&hf4u^}*vl-o&AgJo;H2{E5ded`4Gs z@vd&T)O8hJKD55=96$1TPaizMXHN&d;un5ZAHG-l%r$z_flsXRJ@k&g-s>BDT2H%A z2fT}iH~onxb;C=Y%|G_|QHNE0 z`P6|QI;;03p7k%?@ea?&?%|goy`!%^UwU`ld-D@tzdPp_IQ0j7^uxP)SMTuy7o76) zojrcx6yH1b1L+|nJ9{hX_r+0h{CmqCltR8+-AD{Ctea!*>@%xB(apb!xK0Mx= zhvLwKU(^R59o4H(%r|-Q<{aO6lOG;=^#|PQ+Tqt9(;!j?w9VF8+<6A`2*j#?&}|WdGNsB?(N>;7f0Mi^HFMZf@e? zqI>S+Pd@!158u&OpV0{)-kHaEper2W;C;>!_{4#e-}pj4dDLf5Prj26kM#2UZtnUn z4*d9$hmI>g>1LkstNQ5c9iM*ay>omzhl9>=`i>WR^S66eeDJGPKjB?H-pP+ge96a$ z;>hp2y}Hamlz=0P&)>poZOF#O$|Es)kIk%_N?jFAB?EV_x`2-&I z;)$>Dga^9%oq%7R>T+LRc=Xp*cy_D2^q{}FL|^alq)*&ekGb|zd^~(^@7(<0Z+&Pl zFQ1+FUjK-zUU=1M9^pm5xraY`m@9a|KV8+y7jV+gJvjM8UE;zE4}9{&hey8``Ux(3 zb*clu`a?deeDM1H!|Pc*>w9&|^P%tN2LI5P57dhXzTt0i@uLsDb6+0#SNZXTANcVo zFQ4F(uf)?&_>|WYyn|o;_`)w9^sl~DAN}|Y5BgGlbo^Dlc*3W+_!mbW@x}8yBJP*sKD4S! zy?CR8eCqVw?~gp!#gpHjKF)u3&$)Q=%j>(k@L{hG{>6uQbTTLST70})@uN>yIOP%F zclGcae#H6Hd${=wpLF9Fesa$_9`O9VxZd-(xaNTs-+njwP#@?|zfb&zSKsj@uXB6+ z(p`M>(|vgGrylt5Ku7$-Lw`ExJN!JwkNoO&A1`p3FV5-5k8qt7*FAN^H{+?xJ^ey2 z=koE3`1tubI{xtAHQ_kg9p6g z!(5fed;U`gU(pTkbigy;%st-dLRa|kgm=2Yr(U?>@=knx3Wqs|SAM^V7kt2Bg@d2$ z#Wzp9;_{WF$@L1KwkM8p+Uir^FpbNk9 z9bGQM=N+H$kGk=|7x=>`U*S#t?x_QAI=e?l_^f=V9{l0S{1Kl%aEePGbJID0h%b)3 zcvYA8_=6u``d*#z=vO+}>o2^+Esy)~ibvPy^n*v8{9@0C{3?(9?(r8s{I23fKl*)D zhx>5DMKAg3Wp4ZkKfcw+ck-<6iRYc~>csZSHD&L<`KWDA5MLTcYA&_ z7x{^Q^Z^`j!sk7H>7$SN#yzIDKXlhj}Gd?r?|eu<#*XRo#FRRe)shg+)v?w z8$WlQ+YiJv__1yN74}Vuge6^|v^D1}FUdrA|E2 z$?q6GKZk>F;GvII9^d(2-FP-%=%{`^mRCLYzQf7a^5R`w{K!WK`1s!Yqv}+zdw9}M z6A!-lQCxM2>l`oY5zlJA(%HTH@aYqNlZS8AsbBelPW0vn-|>WBb%}3vjwd+reicsn z-B-Ujt9u_?`Gjw8JBRP2z4-vYezxL)A9nBf3IF)OyWa)x;a$B~r#$)yKKJbLDX)0y zuZHr{!I( z`e3)`BlYnEz4-C6`@Z9a&gR(a9>1B#c+k)IR#lg3_>E`bu z@%059eC{2;;8Q(x=Nt9%BYyQGe&pvD`r#YD?%^FS-{Hk09n_5%b%-wxp74eTE8YL5 zEB@%9K6N|C55D*dPQ3d)zynV=zM+^4&D z^yE+Yo%0QS`4_+XUR`kF&pp1=zxeUHs($$1#)EmIp53{6AD-O1tuAr#rcQOMYvR!Fbfbs*UW?Cn?)xsj{Pb2oJnB%V z{_&m8zT?|m!TbC0zzd(g;xm1x9`WRXQyuyR9`(@kXLW8})g_*L>VePq z$(#D+vEr33`hi~R(T8xrk1sg+n19VReCY@No%2l{a9QESqjU4r>O21E1(!PL=3G5j z`9odih5LN*rF-g82mbYeI)8QlXDeUf#qTN}@n`<%FZbYfPhEUL&-3!(L!I#A?WKG0 z<3W7y@nO$r_V}TL`}V%$7jAs2&pUO#3ExxeZiOFSe7n!D?$Jda^}!`ReeiFN%yatF zS3W$_1HXU6EgoF%;bHR1$L^^E@8$|#@SvY&|BKHb58>iJ^~kG_#q%9s>TsW5@roCG z(g#oGCtl#Azd2;@ow)db$Na*By8M2c&v=m^zi`t{KECu0FL+d+`1BEH#j`meFa5kz zC%&!lt55y(yDq-JEA$y$c%>iQ^y6=F_!Y0-)7PBA7yaOOU!S;-7jqRa-ic?7{P|m6z|;@7|2-KEBnjKKRu4rTpfkKENwJ)oZT# z&KK$wS6%9K4mbZ;#kmU4YNe08-!uHU510G=$IpDM{%^(SN4)LM^}Ba;lTSbS4v+lw zS3ey3O5N^>FCLxG!sBqGbX0S@Qhsf%Cv51;x( zKK*7@4?XDPyLs!}+?5~C^3A$mssqpJz^C_c-*jJ}z{hXq^XeXc)vsQ0<@?%w=Wz0; zyzZ+PFLZ{3{_?wTF2e6UT=e2warkE9aGwv%NBQ`jf4tZK^W6N>SL&jZxcd1Z-snyb zem1Avrw={&h~9Wm4?g*WE^v!0kGkH33qR_x`W-g^;Fj09I>a*v_?d4W%11BX4?E{y zb<$~%?{wxna~wW=o%9axbbucobGI12}U_>AAh zJMNx%lOMeLe%XDie#Eyt7u|z*x91CfqBr01H=giHcf5+{J$=PDH}MCbKJ*@caEfE@ z@vptQ=|oq45syEd^SA!cm*$JPq<(d%8xAYp%_H^UUw!MJfB*3*-1u?K-_lRN;vYUZ@MKlDy68s_dGyWnlRfCdn7(%-yT#ewHnd-veMt9*RnzC8HhAO3*LdvWdgP9F1$Kj~t=%jdhjI^~r|Jbhs9 zy{lev;8dUc_|hkQ!zXm-6DvN%r=z)yCpewU0|!4ph8Ir$kcThfmY1IVrXGE#Kk&<6 z-swmA;pDT^aPhnO=NwP)!lB>g7uQ@iZ}@|*`U!vV@sGJkCvkm;Tm5jsiAVK%2d8s7 z!)dPZHJ_PV{01*vbXKSP{ES!c@kV!g;Tv8&h{HGP6Hk6VyiQL(R2Tn>3$OV4)V$Ys z_`q@UML4HQ%ZiPCWBF|IiCh{4jllH-5Jlht7CcHy_hme5?B16PN$IQz!h+ z`3hcjn!E7em5%bb&kt~~fByX^pT1Y`S>O2(e($aHpbuZ$^8x($(7*80ogdWw6b^Cu zi(h=F8(!_b!XVl)_|sQ-f)^fh32*qJ2V8Wb+t2We zgMT>j;~gFO1%7h^t{=q}&m6#;I@Ally6G;DK9^sebQRZJ@}6$a)uC?Rz4wlP)Zx83 zqAvO0RWDrLee7IZdFZ2`#Pd#H;DbK9c;+abW*qPJsl9%n)3@S@OKDhkyDWlwTbEN>9Et|MZjmd?Eg2@!(b` z-rc|Jo>e?~t>V(fxjN{JU-#fvpMJxO{-+!N@i)KCclcEgem{)5@qpLq1M@;3x(C0y z@FPAx-O~s1@g;opR4*z>FS{0^78Uc=$N{=u)`hr{lv z+dDd&Gw$&#zr)SX^rtJ_^5RQAalMC&zUqaG-}%$ZZ*;=TL-oN+XYcT+zvw}CJ`kUt z&b?QMy!?(2{KJC>deaTx_?O50!l%4&>0`X@>c;D8@9!}@+q;J+-^KNvj&Pn9m%rVo zlY4xRU-#8bH-1tF9_7cgxg(ByzT?##fCpddHaF-B2i$ze5A;JS_{6(;559-$q&xl08F<9O z>q+nM;y!%v=y&hn!y`V-Nj~%a)5wFziC26+|J6JFE517TQvX=p(}(@Q**b!6!aE;=qAFaps0Y~}e){4WPx@Rw_25Na{N`MIy6ZpwnYzL4_d`7TSoHxt;PqZ!e!>qN z@Zx*ND?Iea7d-O7PY?Wf&#!RcmH*^h<>gPjK6VbT`11bfyZq`g=dEZJo7`O&IR@#X!OaH^Xx@Xnv&(39`PbxsF(;Nu5*>7agkOg{P1_fO%)({7I^>-)~} z=DleVmshzq}S`Qa1CeR=UuXZZMr&*&|lzJZf&{75%_ zL=WfUSn-25c=2>J>M^hQf{yw}9P#x7e7@ts%763}AC5QSke^=s z!Ov5_!`^w1cl`<40f62~KtSyOHkj<5OIG>LdQ5H$L&Ce^&VTPkg?_gE;Q1 zm(SpYUq8b4xjb;nC;sog^PT$6JGb|p|KzckUtIX`p?~p&k6j+V(I0rAD?jmxd7&@7 zv(i=F_`n|@!HowxtZ?z6bM<*gPxHen9vpb0r+Upn-<`{&KK{j{ymZ1N-1y>iK6$Jz z@93)@{b{8iJ@6*3cluF%{J{tKfJ2}0r+j>7{+M%4QJG(FZ{RS0UgDL$_~TP})n{*xdhfe9^tvoQ z-sm7cp74nWys8tg^67uRQxCrR?V4knGbNdPZzx6 zAAWp%DlgvT#Vfw#H;3JWLtp57b?H0vUY+_3KXCG?ck;P!FF&2Ur{{BZ;az@uiUSWE z{?1Vk9CX1eUii~@{H~E7A9$pP`1(@)?u!TatZ#l-7k`^;_~I9F;HDcs`ANO%fm>ew z@tscQg*xyFk9lFmqrRY@{?+g2@royPsRM4lbRU1_g1Yc!&cV+Y=JqZx-QDv$*DJ}E57*#kK&q_c=irIe1&(bx>kAV#sA{r-MPB?$or$>IOik0$cG2< z)XxXv;Mp8fCqKwTM}BcnT=C2YzMzx2z(@MRdpycVH*xU9cj^)kuj&z>4tz%^`l`n& zAHM1098cotOMb&YJ@kcpaNVS%Joux#zEHQl`sC+Nd1l|))7?tnpW!f<-nQ2#^l(pp zb6|IW;&*?IczzGP({Ji@|Dkv8WAyLyyDQEFX5PY;nENCd5;IW&==q0@f+WYLm%~6 z;a=f}(>znJei5I4FMCHndFU)I{NmBgsxRU4j^D)NL%ib?-s4e+e0*i4k2?6(923`l zeihF<_r=qXc;XZO(x33t(TWfG_*9(J>Z3b+^r0u;Soy_T(TsYMyo_8}YzWIyuNhZ-Jj;WB zb?JA$q#OS6XD^R9=Jc0v;f+tsG4t@gd;II2zjIdK;l(dL;h{gC?D6EicjCbJUvcQl z-+ZZF{Rp=?<#!ey`SFDZbJu!;iH z>U3Xxdh#K^(q;EvKj=q$yx`w`ein}|>fsM7A9+V-`dabEe{{tgz4Q&8@nH_gLzh*Z z>cf}!>g69g;0^zLEDm1qi7)T@fu82%e5WoeJa|(Fe#}3(@JA2z@(17W86WEldGQA? z|L9kG@|nL2@a?|5>XaXU^i&_*^fnLp4R3T4N1fl(7jAx3mz8gBx{o*S%u(OrRxf_w z#Uua0r!M^B0bk|{KGo;D{#6%Vy@kAf@^dJ9N`Br}X;M03N@~Lxt;S+wp zkM66Ret46Q&-oQDzSo!H!TUR1)rSvpy~ht6@WJoCzLt-U@bEjF=863Dq^~&qLr;5g z=}SL(`AwaZci+XMyZNDR`ruuBf4}$+FMn9orC<1Y$NzOJUhs?`e!?@{`W_GBdk?2~ zaLDHz-+qtuo(+^hp+~*g*#uwe;)+g%3hyHpWKJn@8o_zRy>OMcx6+i0p?y&oQuk{;#y;H~P z{@d{m&+_x3x<7Yc{o*^v2Y%(dpx@L)II0!(}{1*m)-rt z)^Dxiz+-OF58rUA!#lsf^z=@ii3890H3#807sR8V`|!abKE8d|r@pHfKlUpg@GKv{ zs9zt53y*%|Bfrb~g3r8nZZ10)Z-)o2`}X3%=N%tf%`H64J`xXZ_hw%|mRG&{4{mYv zC!WOPr`O`(oBs5o$HaNlyNg!$@vG1Hgdg>;=8YY ze7P^Le!&+U^4jyGIPTL)oqPcYzV#tL@ZC#zz1P=QqYiw_t3Gw`g?MoAp?mP~8{Nb; zH`VPuz3}Y2clrR|?s-p7eQBh=O6w0HvISy7f*Pl%k&R^%qf1syS{~6UO47Cp7>ZC@8F{s|BHuDdef6Xy;Gn3 z_{X(|HPa6`2k;iDGoeGy~B%n$6xO2FTB%eF*^YpRz;{QK>=ycgT@uyFH$Ah~3KB<@Q_#U6|@}qb95l%YM)2bi5)3@I9i9Vy- zo9cqsJwD?*Jkrq~kMhyU?~(g_hkxJY!LxHXuES@=GavA~e#0}|>NIcEscwD1ANb*K zeL#0O&AUB(;ap$A11G-d4JZEeKOXeY6 z@hFe)_k%xu!?)%J9@K$H{ipBTKPxVs_??dQGH=zbUiHg|fAy9@;S$^z3+JP zonANPk>8%~aO*d|6^F0sji-a+`YtYi@jIO2TIqvF_sk*qt#}p}e{jwDq#nM)C!FTD zc_AL%-M7+Bes$29ujmagefWxx;gatnKJj9Y4}9ZEpIBG#^_{xDbxv=5;z8Z=ii02d z%~N%oSM;C!-~nzrnOku4zqojjAAkB)96G2I|N30L_I!>%{+1tJa}f{X)6L&c_I{aPX{VoqZ{XXFl&v2>puy=e02cO`Dj`GQ4FFxFO69=Dol%H;J z;s+1(G^gdUcb|^*kXJq4sh`ixRXF%x-Soz{elV9l#h<#>>356{^798B#dj_*zRfB8 zJeAK}!L$4qeaC~m;>ZiPb39C4oYTR)lOKNPyZrheAKv3lTsp#~PWQyImk&SmqO*B` z5B%c=U+Uz0ap3aaJ-$)5y}I~XK6T3{u6p^?cl}Kl{&#Nvt@z~=tMBl+cQo#+SAF_d z9Jt_hu3mn5Ev`KLE1!N*ulwe=IP}zibQPDLaC<*j{-J}vC(Sqds++F*!(P4C&(*0e zcqTr-M|hxvIDX&f-aJu1J^WsnYxs0uzrllNb&8{2e7Wzvyy~NedvxLpezf8jA9(Ox zKj7J1w8G7AU*cOotC#=O!|(F>J>oO@FN&w1=whzm3qSITuSXl zKFkNc#kYB)PCn)z_?(MlZkiu-#2^2_Pfxh)%_F*tqh372Cmvqak3Z+`iA(R}_`wT3 zo;s&HUg(4`{lUlj4-P({k9YizNAd9p7k=SU7vAv7x89p4?ul>33!LKenRxDtOJBbB zP8{{97w_tx{Lmdv{EKhTN9XAxzW&7*UCkeH_}n|ZnfK1|MrU(Eo#Nbu!*@Q>kLsi| zJbXr1JgdWZb03cD^5Kz>;T2#1=u>lV#;5BpF8W-tj_5{*f22 z@X3#Nyz$G-uOHzRkDvIN57qBG-1hj^|8z31^aG#s4}JJ^|MTxZe2Dk9b9uytfAw8F zJkZPc=kCG52j1x`_w}be9{k-hd88Nq^#vVv`S}Y^_`w5R&${oueEfqC`JD5MJ`qRV z@Tcp4(cyjK&zTLeShwkvw!QOj(t5Y6zsEhviF(=_S_q?Ms9mF@6^rP?M z;8Q$!=Y8?%&-c#x1Alyb8Bgl6;>|sHyoVb#TM;#VAb z@v9ELr<=O%Uq&7}(}%yrx#+%noWFMNJ)P8l(0BboSMSv!4*ujb7pCs~Ne}ahe)xk+ ze^~L!$L5Io=!-W#5zij~`q()fbXJGD@M5oSb;!HoPrdf~m>=X*2R`{$e~2%RJl?-6 zAH2THv-^&BesWL!<_;ghi(l{Hp#z;?%EKr0&?oNE8IN$$MP5F0k3abl&Q)Hz?e@p5 z{4LJxH#|FEy`zhK{30$Myn|2Oe7lRsKl48Q@G^D9t2&;G=N;Xg^E+P6BmS86;$5Bc z+?R(R>FB+g8)bq^EOy z`+cB0J@6*3{!s`2z>R-A%sTi8FXF=UKHT`%2Y6PO`r*Z+xQE5@ca%Ic4&LR*hrIg6 zT!GKZKPTmb3x9akFZhDj@3;7T!Kd)6(>=QA4|(*3`{KhZE+4>8*Q@Ff7mswri~RV! z?VY&t!6B~q>i^I?alGf(zkQbvzwXg*=Cl9a`{^g&@r!r+-8=a4tIzPvSLTDd@TV{6 zz)#-6FCKm5%JAQaO)R-z%M@N zrJv>DfB5h#j(2z#m(SpKuKv^XhL2zE)opJcPkicxNB!`de{`l3Kkx}2%p>^e4=;c4 zfqZyThyK-1^12U~zQP|pU*d-!%rpLyM_=(TKGd^{W97Rqo&RZ7FMRmtPx1MI|KxG* zojma3k6-Wz7yf+rdj=nU>BR?M!;gpE9`ATm7u}sdbRW<35RZs>ZE_zt?5r5zj9{%DhepQD)rW<~|;{$WX-YO2B4&zgu^uPmt z_)LDj(kE|=vs%4(Z|3J0{U@)wtaLN?`0ZDD=z>@E!QtFqKK%Hu@8HEdogT}_7yOGC zJkn7;beGo(|9NroLkGN?*KomM-MyC=AMWFWAI)ELL|%UWQapToYQI|P4<8@VUw(1i zSEu^Dcdj0MiKDOh-1!aIw>G~e8->ogP*VUA07D%KRf*5!LLufbFTjT-tiqi+~*U#;{)Eq zkrxl@bx%CL;2(X(zkDK(y4_Rvxw@ZIba_vAB2@XGJz z58uO~KKRAASD(1z==Yh|JNf0~NAp76&aIOteDe?A!L6_G#HakOPIb+^&fOD_FZkte zdeF%#FP!G8Ij4Slz28yZZU~Yxv-R4-fRPU)`4%zNzzF_r!;bj(ll; zsEd!?GavA)kLiJ5`1L*9aMFX$=ElS!FFbU?KcDe2K7Gftd87~M=^kEoJgL)nIMqW( zeiNV0c*F-i=%Y^kf=~DK2Oh0-gGYV%6%TKIXZ=3HBM#sBy*VBAi;sVO0^jPs6)*he zp1Rbzd&dWS&L8m02Pb{i&wp0>;+H;f(Oo_C!Vlbh<=lID@57Hra}9nz5sxnR{2?x1 zJGZB+y7*CD`sOS=_~A3}oXhVVZaj-Go_Y?7k1smPPha>?x<7gJ&hMG|3Xk`z_js5% z^{e=B@HgG?Adk3*#g`AC?yFy4z|Dv7i}$g3_{E!d_@6#K>K*^PXP)R^f49ibfBeDk z@P8P1)X9h9s}pW@sfXVBm_P6XVla^nt^B=X8bty14Khx94NN!7qK` z)c|_Maqw$T7y3I_k9arbqX!+$o9}(M(o?FW1iAQ9DiToQ(fkn`~1nr zyZq*x{_sxU&OC6?$*N9y_=XPh>IZWJU;IlCd-dU69`W%y8tzj=>tCJ19i*0yKir9(w#p13I`pYd#@h(_*Wn3N4VTqAD!_f zpZV?myf2=)br&9W@e_UR^@o)%e1Zo$%g<*Mr@rEIea;7T#V38~E+2jHhKHF?T>Yh9 z@%aEB^yF83nR9r>r~aRD>HRaF@!~z)^0|*^K9dJte3_@_6`WS}(2GC3a}Rziy!KYS zii@AC>N8JQd+*%4>|DKYeDB<eY96@eV(9GgtTsF8z!L`j}htx_1^&;?U83arEW4?ypvQ;>|nX)yuc==zDsbdvt(D z-SWagZ};ef7y9sre&;(l_(`2`il;t)5SOle?VRp>rcS>f>X3)t^cR=@_ITtkI;jJH zbXBMPbdeuE@A04x@A2uLdCTwOd8aP%_`p59?)<~gSMBMK4>4JACrH|Gs+g4#)4#-RC<#;s^N5KRUvx-&gU}B`?0kg*wxU@oq2vdH48F9`ivRt9!eZF5lWex5A|#=|ngD_>MpQt>5V&A76`yC+GI! z^R>L{@Scz7>h}vT{7G**;hCQ1A)oV$IOdWS-}G36M|G)Re07-%@Xd35=N#Wwyo-BK ze*D|hRXzFwF8TSH&+tq~`P3~hzUYK!{+oUhU;o1CJs-e@N4$$GFTK^r|NNp(tGMpr zNB+BbbWfkD+p2%m>6xoVGZdGKy^UmwZKXX?hQ zdfnq!_|;D*{J|?9KgmOHd-%oWWAXW0JpJmwALo42hx&HD=R5DqfF#r@rP{7pXigm3g79qX5H52BPxG8_e8&eL(VK77Lr1(k zR2P2mKK0O-bjBk+)FCgu#pP!>#nBIZzrur8dGxutA;c%b-_z2EfCw%(UDvvngZa_*jb;KP&e;-AF>KkH{Y@)v-UiPu==~pYW>A^WOVzRTq5n(UGq7 z=Wl*B57fcm-odRd=Wv@}-ib?Ja}8hW;uG)e>Ea&T`jI~JsMmLV(Zf04ypPA->UULK zy5VJYkM8hV@$ViT^|^cM6Gz@(#mAR-@WA1oK0E5&L90A?!Gm*svb+D#x?1T-FYoC_ z?}-z?;^R->;zJ&B_>E5D^0Bzi@pcnld;RX6c;*bA_+Fj-fCv2QGj-67&Q|#8WL}8p zcT}It@1FScz5M37RX^~9{uYlf@FKrC?Y?=YuXlXPtIz32Vc-d zzKK&F-{qkPozyGOkMR2)(m!}pH$3j+9S$p9@I!wqTzsIP`I3I}@(q5)U*VPqpYTuq z@uM#H;W1zM0&nIF-r$1YeSE@82fuf-U(}69{VonY#PMDq&_jOxLuYe=E_jg_kMQX? z`0=;1%B-BOjmQ8E$pz19JpF^!DAnnY_XYpM2`Dn%8{57v`gL`1r^V@q>K$;%lpS?x|ZG{eowCz5f-@_=DH)r8$Oo z@9-v%d4abXR~-7t0}uY-SFbro2mbVq-^6#1KKS(xue-Y4hxfH}KJ=Y#aN!5<^81|- zU*E&4Zgbmr{NwK>9P;|EPrakRyl}w3iX*SzJ$0&EU+@dw_{M6^(8YUvm|MQ{#fNb4 zkG_E)uliL!-^Jx0tNQSyEnPH^}RhdR{np1w7oc6CgBR;r>L+^3|4@AT z%CA50!T0LGGk=SZk3YqQk3aa5ujmMm_ulb|_qWCM&hM-K!>4-qR9x@Qi$i~P;uTJD z)q`jE#N{9S!AVE;!b2Z@#*YW#l9yh576hX-}@A3XX+KjQ-)I{QvHI;uw;b<@Xuqx1B&xiaIK zU+NLZeK^$NJO9bU?|4)fKH;Yu-th|uf8j?x<^likt9Q=t^8+5~gD-t5FaC~uch>56 zO#*4;fi@vVBTbXGq+bp25r z-^Fu}uKEEkKCt2wfB3-Db9vm;k8sM%x2yZU!zaFYQ*ZoP@rrMH%8y_5$|Jsh<_Eaw zsc+z(t9eNuapmKC^V2=L@aJ88%ss!+8DD%VjymWfo<0A&M-O=Es2={ICx1+TyRT2g zH>c?$9=+V7m;R=kcl1*SJ@5~O|jef!R9=N}>$3LF&ssH8Y zTXRW%aqtHpyma6*{^CQt@%L@G{YxW+)a5=OJr)ly=AOR64?h2PAFtxd=kH3s!`t`XUA5{f`0xmi`qYgd=lYZH@dgk6 z=;*z?>etU!_0bKl>KEU<a)UyPkG^^hk3{kyEs-p)VJ{IFFerUcklV(usuH1 zp^v=ted?}0-!F>C*Yt+h{GhAv^5T_W=wpx9iF@*gU-#7QTzzzf$9xhG?{LjJ?BP_8 zxehNL`5tfl%Fld^zsLB*D}T`epZsFwBe?LlilTr+#;=!#S#P^X4Vt zbf=GV`qIaq&&0teK78j(`1l@w`2QUraH}LTlJZ1 z>f>K{^_#r>FE9P(J@4VhFWgrC!UNs$3lH4$9XuY(4B?%_}U@_J8Ce$bD*_jI6_Rb2J*rF!%S9DGg}cwft74?mya5x;PX=e<1Y#23Bj zYo5{1+`*$dPQt}!U)%fLg^#}Ce(D|^{DEhCdEpRGAE}2<>Y<1DaN--D6%PJ^kFTtE z-Gk5kq%$1i)5mxH!k6x=Lx1u=o#}d2et6YMXSnfzCwSpE-{?#)c=(>a&gaUX>ctZJo;s>eIu@uhxw={fa-1Mlvs-+lG+y>s=* zv#JwL{r0wVzYp~0L-EWTdWg^e=8*cmS3i9&%IBPacjw~4#RvSzNBYNiKKC77d{5or zhub^#^9{ed#~1nu|Kh2ezpVVKUV6caS3KRt2cN-%U;T?Oyn6qp_x7`Xdh@Be@W3DP ziU+TH=z@QK;Zyj{O?dI=9Ul1;Pkzt57mu#^<|lrT#~vaZ;}iOP>pPs{ zzjm&l3ds(tGuNx6;|~7(Dd;&^@^6JX zaKi7qy2ZgaUGTwg^b?mZ_*&J?$M*UQZalz&XMV+>`3w&n{7!%O)&D*m?&EED&JW+( ztH<2Hhd6wUXa45XRUG*3;f9NU>1agPLYdndEe>&nx9R7dm6O)heIElPyF&2F7L(17hmA{uKRf86L{RGD_))B^;dD=ocZ9O)70^Q zbk|8%R?8BG;X4LEq*7B*2B1_&DH0XuKcw3@@6(C3j-6b4@63p=iu{qT`qNLHtLpQY zZ>#s`t@hyqmpba-wcmL@@(&O7@N|E;_ofbV;QrE=-gLm1uJR$5baIcmujSHr{qeF- zf4QcYeBtjrp3cMVJ>TghfBcXmJm~|!`-U&@=mz zJ6@jk<%j2a55a5w7H<8lbe1pr$se8M1AhCgzpD?Y^YE>{`<-!L(v$z@Q?Av6Uw`=R zf2%&cc+-jg?iF+5oV>s#_vTV=ztl%we0NVB^_?GbiwB)Pwog5L^??t5{6BO~ANewu zbde+b@v(Yup469vRUbI)!^2$Yix<@%z2aLBJZa9QzlKbwnL=WBI+hg06<9gkUGKJ+m+ySnt_ zulvxw#((+uY`;3b%eVUiK6%80FLdzTx%sTG{qhMv-Q?I@^36R3w>-(Gdt{}H_xky+ z9zEq%e?G{C{K|!T^pz7nIp_BjAG**J@5k`^?!KTiKKSxUF6nGu@q^2LyyQ)tRI zat613?%&Jm+OMws@P&SG!AbY$>hOdA=G{5I*{{A8AHQer8THIFo^qhqwDfKILBC@N(aoL%$O%ee|P0f9NiU=6~iFFLmV8oX{U%IQdCmyx@n|+^K7y zy7HqRf80}i$m)^M$VRDCF#$z{`30=co7T`3@KT^r46I`1*bkUvnf^@bF3g z;r5=sc=8=Dy6dYBoaRAY=lrhWx5Mc?9o)D4aj)V7j~u~47yAyX4+kId(wC0#$iMIM z;=YkL`FN<0d6?(%k}p2UnS1?Hb@-tEdGDQ*bGSY8pDuJT2l8cpOK8`$3q?O;gb*Z;yZl$$q&8h1s5Fnf3ELpmB-!lZ7Uq~=8r!7@%w4NoO!Rl zIglT^(~};2Hh1>X5ifY)<}=^*F%Q1$M+eVzRM&a^hOop=F)fg>47J_{Ny_y zcawC7{fZl$m?2~7{$%TBv?VLFV6+ilzKkwbc z{4%e6pz|sRR(1wX{&p*%Ri_h@*ZjRugJN@9*k6-enK7Qsx-uW@}%m+D}JblNP z59;zC9{c0~9{$3KukZA5-^!D`sn35ra1lYrkjn z377Bq)1SY0@pNzCMHllgFYrHf&hM3b%I_<`=>U)K`l%;}csd9FP5s_l<(MA!yHDj7 z5BlRv-(5XCJv*_={CJsnIOH*tazF8tUi8MxcX^_>_wJ!@^-;&Y%y)CgH|OPi z>OfC?U#m|~ef7iNoX|yGdf*{XaL^YXIn>{IemIAp{pN{&p6SYe`1md#=EA*w~xV@bDQQ&+wZ&KFh85_{+Qddgfez zc&zHc<97m2{rtTkhkShc7kr|l@1DO`kG}d^@iC|JukO4L>8CzF>81|< z=;1z+Z*}odPk!maPx<8w{Pd$2eEh&0uBY^%t9|_1eWy2Ga-bhRa_x7~z3Lo(>U%an z_w`d}&J7*?|A21vf=eC#&y^4K^&KAi;!l5m(OX~d;dal^*IdwD?tjJ?58veuA3D;N zF8Y`!edN#_+vo3wsUJP~Xzt)}55g@kp3M~>@$k%VeCaGdaQVG(PvGxWr>Bu+wz$b6?^qx-Y^Hp8-_^c0n_F3hX&-%$X z->08+ftLUw4eX)d!`57&DmAouV0F%S&(7-)pZ9R@&co&2#Sb6(q7xnH z2Dw1{T|5;KKPnD`T80!e+SUZe47h6@SwL`xmTQ*Lq5^Z_sPS4 z-{Ir?ML6YC?%<(=_xhRxKFG5i{jDxt=w)@D4tUa+e!g4z>{&g}{KE4k9CXFYe!0+B zzC7b`SRMIz?O8pm`vVTT=r8x?g)e+_kI+LsxbWwnzUJB7$hCfOxF0?LiHCZ8rknh# zC%^FWSC09w9-rZ$yWG%$Uw%(^xa89uPu=BHKY4%~UiS$8{G}WGzI)bxg-3tBz=^lM z_^8Jh`kG5V&;x$^?W2=^?gzN+lT-6Ue|6!47k|0ttNXw{{<&8tUU}hz-#K{sim%+5 z3p)7@x4!n94}8ooefWltdBKxze40AjFE4mGXAYgGJN*3R1HII<&pm3c;K0XR<1ha= z|NHkJ{oONsqBlM0Ajfpjmrs7*+y^K1ftxRI=mQ^r)X@(P^R}w%yL--gxwXnG-1^Cr zXL|4pe&^`TAHK;s9pP|Zp74g35AJXGf!y-Z>YUu*M}KZu-(seYwCx9@LYE$5BszI{h8r`Oate0v}G>&qs6V9DJV5 zh5huR4?J>tR(<>6P>=q6S_6-{@*Yp;=?o`dc6H>^Is2^qQO|og@uffi-Qy4SQQv(= z2m0!B*M8^Bg}STnyVW^!s4rgfWDZ_Bryf7$&wRM2`GPmS^|xOx;gwhY{qEb(Pw&k& z9`Yj}>cZ{2oLaqCkB)LJhjhlvdH14od{xgmzjJuw3m@F?)0@xgcrO=zH$1y9_$Y7m zmq+{7=;L|!9&Y!899ZFj8y@*^?xcEr<0m|Fqn;H`decumc-5g7e0>p zdvgo7di19gpY(Ok?->1^_srMH%YEcta}E!y_x77Z{>m9#^yZsf!yzyDs%uW{_Z@He zcY5BnI?pfP)%(&uIhphCcR?NVfj1w$cb=bok`uX-7kO}A4(YBAyzYB=@57Iu`u3^k ze!;_g{LPo|>Z_x^T+tgZI@wPL`lt_|XZIYwa-}|;>cU4a_2z!_BX{((Uq3l2H;9_a`6l)AvK?;Gs7h?n}9&vwd<1kGgWsAN76rEQcS%!7qKy&D4!P z_#Sj#PU&Ut?ejZANBjK_;bTAEd@%Q`esqv~yv>K4sq38YbmjxU%q9Nt@XtB*c6jWg zj~wHt9{uG4e)_A!SF3uy%lA$F@$x(5oP3*We$ho=xbftVob&Cie&&$hbaY?CAqVQI z}e|ez0d)57@F8%bS4?e5D?tAs@c<`swo$p1W2$ zte)xMocYnu-0?v_Ih1?-)Z5jkqg>$Y*?xHFU>^0cnxk*kr-yu*SM$!NsRRA>cTOLE z@sBR=>gzpS<0P@e3U``36m$5;0uALLw4e|64zx#g32z+W!$^bC)C32*1<;T%5vhEu=kgY$mh z)Tb*Q_<ocjPTe&B7Nx+|aL);)L7d*|ru zocVxX?%XFridx97K`r~0<rYR*!+l*{``jn|Q%AncjXB^u{qd52decjN`s1e#9DLAUeea#;uUwip_Z^=6xs5OV zno3PNN=nA4IcgRSJ%A_Ki$=V)4bSEKXdE69Pu45`of{V@A&XnUwHJzi{I+Z zee%e6ddjnV=VItiPkEIC_d0*z<0o9sSBQ`FVrz7^5VNyT|VmPo-==Rhl?)w>(4L!>1OU8(pOIOcaCoM zd2hbyC|7Xe>An2OGrj1*-xVG!ynOb|A3Wrg9?sLjeIrls*ynzOTW;jhT&Qy%PT%dv z=TqPL$1gtFPj|k;VZ{p%y3@;C(ZRjqKGBCR>haV4hle@vUSHqo?>>f~AMPzUoHG}6 zkQ4gQ6+ZsZK|MO*gP$DI#qYR2&dvJz>vxoI?t6Xds~;cv?7Y?eW1iqsmk#m=-(&sF z+2@|+%^ct_Z}@&_|K#l%-#LeP>F*wq6Mpj(9{$LM+~{M@;loRA%%k--{Laf0-ulx8 z&bc2ReBh-s-1_bM($ieI5BMbycsVC`f2#v8o#`(h?p1oxSw5|^k9~NUb2)U++oulP z@WKNp{a5(Ew5osKv;5+zu6^Iy$8WjO4`1ia5kH-STP~f4Lmj@$1)un4p7F8T=RTDK zI`D};as-cOb1paZ(0`?e_q%8Lbe<0G8TW?OywE{^eBgD@%AFkWO`e={FTrn~xz6J@k8ypZ)OTuMdCu?wos#KIR_}b8O|8{q(V#Gx>xUZ}s_4e|YufkKEy5HGlN_ zlMd?9)4jq!{Nc0GQ(rmfpZDs__i);WAKr66T;IYC2VQXU-+TJe!Fhc3vEO^=tUv4P zJfF;`?|hMWdQbfJIp-eQ^`V>jqsv?0;lkTJ0H1rv${%xYKIkt;`pYe!&7FG@E^`Y% z{Z=^T3;*xEr<*$R2#31*t7~52!|SfP&Y$&crGvS|d$*6CFFoVKNBYv+ec(NReAf?O z_la}v1N-!c&;6jjbLznbFJJMJ_lx+*tA6sOpFVKtH*=~EU*%0M;D*zEFX#L^2$wwb zmyi0;jgRorPfm9A=bzWL4%xwVhZ^rABz<;DEYI()_7JYM9F`t&ttp3Mz@c+*=R^yLpd z<=*cP9&$l1^MnU|%%^AfA3na*z)ToazH7-|r)PETmkYYA__`1DGrw@qL4W7ui0=2*Ge_#ujlOVrrVBp$$}RlzEw|3& zBM0V0f9LIUzu<|FJj#h@tGf8QPx($i`ojaKyuoj!mpWGb%{RTxAwRsQ4?XdgPx$3h z-smEy^vBbj!)1Qd^WB_U^>`z$-V-dFGe%bhX+?SMvt1T$nF-ednKffXjaU&4qhK-sQkP zxuUnc($_h-{XXJNAJ2X-yq5>~<;^`wZ>##e*U)%3J9xuIz$9wqQ$NZwlx6ZkD-7CBIQ$PLjb8pBu-0~t1R(+kb zk1p;b_4r_}>7<_fPd@Zt;XiLZ8qadA9~|`2PtN6uUe3X(pFFwW_@uu)=%*e%@KDEG z@Wp<5xwqiOi!Sa3y7Lbob?`A)bdYm%L3e%R7k_@KD}U;$BcF8A?=GL{1E+KJbWi9@ zA9dzF&%65cqK|Xx`Mq&p(3wwgS@|n(>hp_ExAlkDclyiI*Y?rD{b|2k!Vd>uZ>bXa(*&+s4GwWS?%KsymG(~{pdkAImd%vaJXO0Bj3y|o#nv2 zy2AyJ{?EO~!+Cw-b3e$vXFTze8+Gl2$9a14osV>f2VVNZgO~nvaKFiq^Yqjg9y+dc zkbil{<7eOT^Si+pzL{hAJpY%!ySmQHA3fBk2jA#u4&~YEJ$~+ooBGj%e(K^yZ@!vC zb>YR6F7in?_Z=M0^9xV&WTgw;@&6uvKJwdl`GDVC@D*RU=__~6(T8v9;3e1mvd`T3 zeimN(@Iin2@{=y^CEwwri+*^^nOxHaAHL$jrxiY{_wvsVK6$S`JnG7YxuegA`p^$Q zynX-EzN=RGv5&v}r-PjM4i6lks;7_l>eEM`i}uUg-=5`|f9@}Q;GmoO>hTFrdQCq3 zmRC74-`4YR;iE6U-qW2v?g4z|{kD4Qn0tQ9v1hA#^17?cq1CC7NVAAE=3sy%MJUu>zn~w0%$2`gl|M;tq{px!! zkNB8V_XzxOn0NY2ob;C~^R2HH@B8?v!!J1a<~?6m=jh5G_t<6M`9mM`NjH7X9o)V< zj|Uudd9KfGt9u15IGop?ALfex?mPX}-__@vdhqhaKF@G^ua7!b_2B0}-_3>J3(s;c zcQZ$Pp`&?&11@~+#~VI#qrQ9EeZiM6>9ksBKfg0{mp||EmgCdv;AalamzA&jd-ffE zxajD;`<&kJ(RqghK7D+bKdbuuac|Jc+^a)Jx#S1l{NS6M(n&w_DSz~GPF?fpz5eu& z13ph)@`|5aIA@;mQCB}Y^T~Vnj=9p`y@e;g)SdObhl3vK&;edL(fMA^7__y_1v#?GtYE~ zQ+>SgbWgh{`9we8<<)of_(5m*_zai*`r^+oI^b_V-{s$G?&(8U-_?Pi4*K#PZ#eCv z>s5NokN5D&h5XP#J@>ad?o&FzO*i%FjgR-AhyQSyH@W%MJ~_6JE^;!@(Zzi7o1gM6 zkMQfuFZra4y7tTG4yPQsr{!Vwou1B{dpzhWxBAmj9sJ?s3%>f&+jlZs2LIGp2$`~9Xm>d|NS{-l*3=0-id=^_Uo zI_H_r^tB(()qXnIPj^1hZMR<@&5QkXR9}wdn=bT|ANtY7{iDD4`tapzc+|DZDZK6x z`g^aBzboK^+kC1kzw*xyysZMF7^K73y!7V@Z@JuK3 z<-BupN+&$!6h6MH$6tE!2Tt|m1|Pbqr_PEezH-1fb@AZyY3Iz7`K7n}$GtB1e4+zf z`szamb>)Xne1?Ob-ph}i<8c-4-O4XG<%-X6sb^mKtsdTfr<~&xU-0J-{NB3TU~iFKa-#Pl%DsU`_&5fMbG;2kKg?Ae(tA>{`%TSZ~f$%UwG?> zuiVg$U-Z>S&UZZcg(qD4T(|G7RbSufOgHnv@6|c?5PdwuXQey5>gvl+xZQL5;>Txt z$dSC719JioeD?7f5B|A7%%NwxIOjc|=pyI%;)9?5aGNha`7S3<={)Q5(|P!v!ymr0 z>hQz7(?_o1fE!M@>~oLl1Lv*}d~~4~|KQ-OJnHM-f*%g|wtnjJhfeV7V-D??L-{hF z_|U=px!?WnyLWuI!s~ZIT`QmHpr2gHH6QV$JAL3&&wlfaulMd5xt2%!)#IP{^x`9) zH~H+GdBsb8IpgPR=lH1~|J(s>s?iqgQ=RCdn>KR`7RL?V`zdK@QD3Uha7-o#DF)2Oa6WdXJAh$cy~RJzRXFqukL`efsl-p8CQ|KXu_( zN51fZi_U(J=mZCSeW#!I{H8m<^jFV*IiMrl>hqW0baBpo&o}o0e)>Dl2fn}sxBKro zALR&7I>13Uc;Kl<}WUg?LI z{qoD_U46ddW8R!s|EB$N3AcH&4^I5`$HSc4PX~VDVWk8AS2*rk)$`pP@#D39a^&|F z?%j7d=pc^=eU~TozV;qpdhnm0&dbs2ocq9gzPms5fzw>lLw);vr<-SU_rAXB!(k5b z^<9qicb-1xK>q3OJwMH>`;cC8XFuKGksr@+!40oEaLFe<=>-qn-2={<5Bu;=uangeg9gWpF(0?zf4(_S7kWz_~qCA0|(#q;g>w9gO~I0TJP%zpL+VZSNW+PefTf; z?g_l%Fc0d%zv}P4l%H7#KK{}h{;TRZkDoltk38X_9$)B)4;|oD&ph$Z^K&@VmnZx9 zY~JyNm*4UwPju#w`Ib-n_1BMYbfJ?vc=Jgee4K}ij{Gn``tfTK0hju8l{4qyw!RCW zXE^Yd54ofpKj^2vXTI?JPkpXieV1psbYGcU`Qam;=8jJK$UR>4r=yil>fyP<=bU>| zT|TM#82?{vn4k96AA z<-2=^K5_#Oz0{?PyztvO_nP|l`@6-wnQ!@m*WAD(M|7gUzVx)ud41?Yr3z zKf0?22Yt*9-#p_XM|i?-KOFp~pWO4wKK|He4&B%A$qoPIj-POu7dhppdg`q51DC$$ zfUj0{@uka4b@byS|KOE#c;!jm`JG>Mq!-`KB_HUau6_9OoBnbjA99Beec;1e{@fGJ zd)`A={qZ&@@+sf^F<-u`XCI$#>Z7mvbn@PP?|zhXb?6}9?m7Rz;j6jD7rr(4ss{)E z%m<&;rz?JP%qMf958iSMxBPgfvsFF3{r;*)Kl|m@{Jf7R9{BCv)6Kki?>s;FE4Sv~ zKDycu7hPBVoaZlo@WFB1esgVZ;g@H1@utI^XFTZ$hd%Br@AcW?Fqizh=sn!bH(dJQ>DhVpoqtz9Jk5jm=7zp}v2SO$zHk3(wU3_o ztAEozzVpX@qK^8`;ki4nj$F$5Rp0poA79nC@rps`A9eW==9V%_A?vGJdKCN`dW9kJbpX2~fefZ-3!`FT|@TaG`@&S+c>hOm?^6I{u z`+esV-{}U|_w?}{emLd9J~?u);Lk5O@zqa0)U)48Kl!y^F64ku>d2XSl{db@X+PiH z3rF$y`zBBL<11hK{^5)L z?l<${oW68|%X#|3LtpvF|2Q1(ExOUm3LhQJi@fjwZaS*#JbZNU_wt-Kb<8JRa^%?@ z(uv;YRUdraV{|iLbWzVdnPYW5?{rgNKKX9`?04@wryd@j`NZEp^-T%(^i!Yz{KXqz_qbf`c+EO++b3`E$f3E0 z`>cBQ$&>#4qPv{XeRW=cb7B7IuP&YG1DAWmes$?2cjgffzQDr=y5s2_eeiOgKk|qV zobdZy_!w`vJnQSefJ;94=DYi!ZuqOqNBHr^E&p_rWBc`?3qSboJ$>MS zOMdj7xpq&`VTVsWzdLZw^XB8EbLPT%_{|Ue^p^{L@WS7Idg{k_Innnx9Q>3Q{rSU3 z{>leE;F1I1>8L;6=1+h9?AMQ9epm4J`?13B9RJ|rgS^{EFY}^4zwnrIgO@xy_dXo- zmSZ}*hv4V)Yv<&c9_r|)o_hpOyx>q5ZgrfWdYV(Ya2_6d!0$aA^fX8Kzy}8(?Eg7< z({s+X_j0Koobr!{oWThPedJf(=%SB&!Z-c0kB;sQdBu}nR`tw@`TUa(>Z;@1?z2x;y7Pef)ie2VK>t*PqVg#}7Q{=3d9g{Y5|Z=&P>Z0Xf8% zK63sT4)>fDA9M54KF@T*OWoBz{GWSvU%AKdKJPmpk;Q(@8#@(?`DGG7s?M zg@^mad-wNEIQc=J-Fv?2%O5!P%SzVyM*clhw3xBCxYxaCJ3{pHztIFI5Fm(_gWNk=+Z;nNQf^Mv<&Pp`N7 z%Y{00h2QVG{pOHP@Y2QH+lL3A-7oGZdf+c7{886_`SuK-If4@|b=+5Y;wNWt%ct-B zlLK|(;JBdhu)wTK#zue-lzx&4g(a$+KxD22Ac=69Y#~;4YU0vtR1%L3>$2_QKKfmFU zM|IVq8ys?_o?Oa}b9`1$UvnYn=7n$1>0_U~sz+z_%&k6rRRcgR) z`-g7yp|gGJeyopk^l%P7=kSnge+T%xjKA`zj`@are#aM{r*P3 z_Z=U);LQj7;g=WpgZ#-WJ-o*UU%cdn&+ypg z`FPhk_26~?(GSnne)+@0IX>Fw**$2Tyz#T2e(HF}$1|MtHHY+|tGV`GPUs|e?n8L= zgIoTr^0U*$etD5oI?9v%=A934*~kCK>YH!8^p^v<^eiv%>$|Gw-jNG)0Y5+Br=LFd zs|TlidBz7{=e~vm4|?&zYTvx4>7c%QNIv+aAD#J)pZw7ODqMKr|J-}IQBU8gJDv1{ zi?6c|9_reszkK24J^kUMqyBtz&;1%aJmYWPoujjUaJ*FKwH1H&f%`~({`v0rQoYma ztX8_YzvN$E{M2>f*&WxuCz?>Wi0o!jJCmO?r6N&wM<`-*>p_ zgcpDK;yfMI!Owlb7rNo`RA1liSKmDNz4M)4@XCR?ptD@UPe(ZUWFOtsKMLQ>Cw}yy zgWT%lzEc+uzTH+|&gknrUFiUiIh9j+po1LH*?u{&4=%cTZ!YDN&ibi`AH4jfkMDHx zUS2)BfAHteQ~H=6e*Njax#WXB@XG`L@injb!NCu6r=NV73p(y_s6%i3;N~~~;a89D ze6XM2^r5f$;Di3|4L-qP#ZO)Ljs5iDoA>;eD|+(lJ{|No&-lAn;p7h<2c7p`Upko& zzUj+f_3386e8>}A>eBsV{hh;4F7V)k@8;6#y}Zz4RUb|~;o$pm`{YLE&Y2In_nl6ULr1)3Zs$GWKA^iiyT82WC!OV;4(1Xr&-CE~ zpW&8MefYqy&+(FD@8OdJy7C=9Io;L4m(RY-zx#$C@Y=ts1DCn;9xu4$NDkn0-_QkK z-|68Q4t?a1ANIRv_^vKr&Ar_DE|2_>AHL6ea7_I2sV@9{GoSj%wRxelIpC`~pzFL} zl|GCkvseKfs3y6z+e9PBbRc3hkfem4<~-+lOJ&NS>GKmb@-}|Jm6~% zt$4u02X*92JwDLadGquf9`i&GxwoHB@-xK@nKe(?`pb>Vj3OupvC-0+K!^n=HKeEB73R=HG%FZTOA`JAu(G~e{s z&pzkXr`xU$z344J-k-Nm4%Mg6ec%1gc*fr|yl|KYefVWQrYJ|DctOMdCaA2{H}$Gppfx_qMF*LcVoztzQ;uKd-X z{&Fvuba9W+#WP*-#7mvo2VScjy$e5laM9m>y6aD;o6dWNbK+BH;*&FVt^9(|K0dfd z=RLQ><36Ondhqhmv$-}W^!QReKAA5*xu5s|pJzF6f81Bkcm3tres#^Ux_o=Aj{L2j z;i3=y{`ui+%1B z_q_blL4NgZK1K?dPNK?oW9$fABa57oX{1j%LpJpbx$Ig%^L+mlu82rTyyKxCzVOmTF6mEaJj|0E;Nd);=IXUP(A$1|>2}h-$wSWIlw0`diJ$tu z(?K76^uvd~zMDJs=whzTo4(H5$0zR}n^UpvQVdU!TZbcBPiczKTpochxTZ@E=pp5%ki{DcdBd2`QrHeYhH<1e?)uio>K zp7P8$`s0rWo_Oew2VLccp8DfMCwM)}uYKxS)rEs@eBdu0^z>csgcl18*J-+Z+<-)wdW553L$7g?k z=_CL8)17YiAHV!=>cc0z;W3|Z$-f-IBX8ygK6vDeA8_NRkMs7)J-_$} zzu!6g@Kaw7`A2{L!R7l(H~r+59{L}Tecsy-pSBP2~>bO7Pr$2vu z_d5Z%I`TjVJm|?^{M{#XfFB<9<< z^!c97eh1+G+-s;); z-Lrk}9lYdDU-jjM-tH+r;CWYld4@}lymuZCzQDmh`PJ8VzVd;t@Zv#Fy77xYba)&( z*=PRwr!Rl_M+fe7jxe4+g)aMGEcbi&*G(p6o0t7Crj@qNV`ZuPvEQ+4c94=y>gPkwgw z`2aV4-uK=8Vs7v>m+oJE-7oayo4=FzE01y`SMaIJCwlW0KK*DALEOU9LND-K>dTFN{MScczQAdnKGMfLxhLd?KIRS&^9avv`1oMI+{&wb;Wc%mr}OeNSAN1x zcfQgYkN4rD6CL2AkGZp&ce=PI<;*#AP6zt)NABDU>icdE;9B9OKb-W!?@RmCrJuU+ znOC^^gwI=bfkyrVl7e3C>6>fF;sy}_*XX?O1FRQucqrB;}(^)-u)TNK#LHpD(m)`qbrvqQ< ziWk0~`ScVX=jD@s^swKGFTC`pm;UO=0le;`)B3}qpIphYy7+t62fvHzIZqG$`D1=O z^TE9Um)z1@F8Bk_t}h+cmlN|Rk9?rt$8nzDc&JAwec`?8ym^6#p8Cq!LHp^2r}yyE zK_7VeCkN`AJ2=dv`f#7sUmdx!U!ES?r@r^@3;NL0eFe93@caGIUq1OOZ}j9R-tqzm zefftEzWC5xZsZrv!+2WVgZksEKb-WWlkafw$K2sB$M(so{q6zh^ur52`pFSJc6^+J zlh3Q~e6vqqIPvGR@BGwH-rTd-)#oey@pC_`<2%3TVfDLdKH#Fe?|h=Ge(oXo&9NN1 z$K-1A*UvusInR%oAN%#=ll#tj^?awNzVzg`y5>us@aHG~bb^yU>Q3Cg%NyPG`^fR&kuUohmSdQFVj(9_m8?q>0>_} za*EGxAAj_t7oNVGL-X>t^X@h0=>#`@J*%rfAK+A14$P}M`p^k~^X?v;JnzD*o<4Lj zpFi3M-|CqzbnyO9-_=#mdp@7EPhRE1{K$cQ>eF9+`J{ut7xAd=I(1V}OTPGj9@K%?Op52G=nJ?e* zQBQxqsn0+9(g*+PgWS?r{o8o+)AP)QTur=mHz)eq2bX)??}K`L=F`{k*#A79-B+)@ z$A9u9~0$Gu@b@TNaL>eJJGgr|JaiEr-Df5L;09PnTM8B3eA>fCf7q`syw3ehC;jLH=kB{Y{HKTS@UQmsn@)5wUwEk}XYkWs zj_K?7)qSd;y8L$kTImND+;HIw7k}`gAH3?h5A-*ma$*kT!F%&%{^+khJ=C|455B|2 zSAIHYKi=*Q_2h=m-s55Zd{+lw@9pEySvjDyoU7~JhoA564>;V<^5C4ge5{W=;DbLO z=?xbh=x84JDo610&3E~SUwu62t{)tHk~{a1^MB$axA@~}p6H3EbNqpeFZk(C$5lVy z>5Ly7*4=*n@r0i~a5=|Ub@itgzwzLwespjT=x?RV3LoC|H^+R(Q(gMc8Z z+0XOG_Q|ce=9}L+-}y{`IivGU_4weseyi`!KlDt$`<~&lAAdT@&u#nhw_o1P1Ha{O zch2tv+;_b*xN& zSFR=xKEkV>dq{5hMpu031Seebt&V%)Fkj@DUh3dSSALiiea$^SRyfszUry*mfAgT< z3g6#W`uMv`AM*#7ef*@q?{ds%{OvP`^pjVw8{gs4 z-#vp5e(=bVbM)ey=Q&UB!Yc>-cY=wedvAGIl1`KvwT_2v3=%39r>}+Q*PAZn>_ft z11|M_KMW6_{eJ1AK0Tc0!|FV}>GRxs&-&0yp5&8$aPWc7R`~Fh$MgEZ={#NKi2ii3 z+RtbD$jPq$y#M(mf737bKYZ%LjrUFU_3_?Z(1{NA=?6dD@X(nKa&8X3*4MLh>hTc{ zy3^S+{L>$Gz30Ea@*zJ@;eqqE=b4L#-kbkVJv;9`-Ou`NZoG$|-gxod3I`qF(@(DS zwVy8XZ=Ue|9WJ`-r|#-IALLkn&+746uGObA{vWDqj_IH;zwDR$gU-26_~Q3azCHWy zUZOMq@zoFRzxAP)XMdOQX|>OL`NG@WcrOS1H&1ZT1s;BzSM$ba_2m&R^8>fK`tuKt ziB}!^`5a_(M&(|OOcj{IBA z7hdY|N6zHdGu_>j{D2ED`r~UpO(j9oL5&JKJgDO_0^R>deB+k%%Sgp(}^DH>#rUheBh_= z@+Oyf@KGP<^>Odg)w6kn3m$ysgm30l&gsb)dhy{k-hMCSTAt`+4%{z?om0;_c=YqT zhrhb!NG|zLA3XllXWoBwl|TFR<2PU6q#ynDr#Id3gwy@@D?H{NPWBt#p60}N`|*WKe(;6QT+ng)4F~<*2cBnt`od=p=;XY7sV`4-m2bHCX^!}chaAEK zpPcKDuesnCAHL-yzpQer9vted&dCp6>dOsWa=$w#=l1bg9_WC#efWN=4jt(QxA*w* zMb72stU7R+Cpm&&e|YRu*Z0}qdH0)K(ux20t0T{NxUbEPIg?+0U&n`z`r+%G`RAv; z@VcMikUQ_~=c99Sr9U0z-+d`hc*8+ob@idc@A%QrzFE)xzz=gszgdSK_Bm%R@sTI< zXVu@cxsWS;AQIWbr2 z%P$?RaF}QN)bSn;`B2yWMqlsgL~lOOm!5p{Uf;L)&`p1NbdC>n;ip{FTV3;hTzxwD zom##3d%}M@;7ebAs}Cpt)K^Dc_&v+Nea_)$pWN!>e%axsD8qcd z&F}nzgP!sMkNSMX+x;LP`aOgLFZk7^KY#J!pWLbQt$L5G<_j-<*q?`8Egk$tT^+rF(&2c)^FSdiv25Kl}0IoBis~x#Nf2=nuDgJDutJ zxo7y)muEW38@zbfuO46MM z4!oVClibLMXZ4(u6ZOm+{rEu#c~;N&m2Y(Alia(X?Az^^SM@#fLw@M#9y1Sg!rwE! z-9x_fOCIr84_^3vmv{L54wzs0*H2#T!`FWJ;BoFpy7(?X-n-ZAmmj?O=DqWBgV&e( zIA@<6%Y%CSlN&fZ^T+(bD<6K(<;(q`u0DKmPR`sHp5c9shx&B3&+iSLf3_b_{>U4A zbb-S&U*I%v=AO>>(?M>$=bw94KIumnd9<$Z%O(DJ*#{?l{5C&uxDWNGle%>G-ahj{ zKkwaR@X3W|xuGlHt>yzxe!}BD{miXg{8rC-%UK|!8f^q z$2oZA);YZJw9*AXzQ8Xx&a02F{`jr%np^mtbMNpAA9&;&e(&`+AM&KGJp8P`I&|fO zd3RnO_^~@Lm-@;(-R-Bld(nL353jycCwcj&zU~kE^>-i96F$7;iZ66<@5-xH9envh z}lLqEB}Tb;vr@Q-eE*2nz>FCFlvlYVmOy?*cNrygGL*$)>S^1&y*x)-d@>(6(% zSN+Y;^ob90t}os2gU@{gKfTWCqyB5pyA?hiC`np^MX4lngQ z<1f#0?!0>VxKHS4e&9Cu_T$AD`|+0peasR6>3*5c@XEu)2^XK{GoRdR=9DgQTFr%f zz+B*^-eLIEbw4?eAKq}uzdGiK&+yR$PI}l+7xjJT3qR;dXMXdQZV&O1U-^Jre(a-{ z``0-*-c=7?dN>E4+{0zgXTI&nL(c7UuhGlBrM~|3axdbkEAk>_ak56;iGDR!EgJ#=NrHM4#Dd^U-5#UPgeNpvEl^}z39RR{qUoUIi-)>m^bg`1ip9m<)ixM z(eDFY)$<-c_xq}z9LSY=aF`eV$P=IB9X{Xbh6f+$uCHhJAs_YApHB2M4|0H~)qL~E zT-cAl_wwmk9=xZA`tm>r-{FRjuKbrz`{dCanh*Qw=^WhN(+6%i=*Vw);gS!!TmSy= z-+$`z&3EVc?RQguE8qFd4|>Xtd^@Kuzs(Qc^2tYizK0uL`r;426%P7)Z@=8ofiLEp zU;LMMb>$jwx?1InANb4nj*mI_e&UrAe%nVs`qIz(vHEf$U!I-ApO195(t$qk@K;^; zmeqGS?W6y<@LjgjlfUNBIp5`x?tIh-&ZkkAfA4!QSM-!iy1`)|AK{^+`&ho{D%bRq zYkJb*EX1{rp5Buc6?-Cs9+s{{i*#Egca;qMH;KxfHI>JdO_l5KD z$R9uWrLMW`&{1up#LQGWiZzk2$}rMi5fi+f03@2X?vFaE3Va)pPLU+~gd zUwqsHbh7e|{+`uwj^2EgAHNrLQO9|?qNDur*?0BnB!B#*tK7ilev%LU&5In!jrvo6 zy!fa;eDv0z@8-*SzTqba-owpr{^?5}cmzsk^IeX9x6i%ASLgUj2YuudUjD)- ze{j&7UiRVV{xBDEb~F9zH7^=7IjsnJf2*`+4fAK3(`~9_bCg9KoSJ zed%frYD?(k`ws#l}mV?vmY<>44?CKm3O@OE*E&>2H2^ z-`ziQVE>Q4%f(gCaCwHyvwOpRAZK_^U-h%fyYu|!4}IJpeDQ1!@zs|uGmrH2p8r<< z>q|F!)5rY5{UN>RDkpq_S6_YLcV6D$r;~lo!(+bqDra)YFZ|4@T+kCQ^DWo-;33|64si&|&vp z{`mqgJ@vI;A9bzr^o-x5B5doUiu7O)q`;>t2LkKRVM>Zs7GS5A?L+ zZIyq|^o7HG=|=~10FNB=6@K|}uUYw{4}am2KRozKSNFfUQ^%Z|FL>aE$Nh<~_vVAI z?k#xDmwZqDeA3U#7r5!;cR*j?=|OM2=)x~NeAkE0eD~hHfX}b;s1H2&!6Aq8Y~IYL zI`HuYANjD)y-0WG?58ta<_b@FSI<20YtHFqJmE0saPmVxeat7m=72u#H~EtX`l~A! z^rZ9T>mG1Vz+(>da~>Z4@S6^N_uYJ{PiH==Cs*poF&_F`^}*Zx(c3)X=UEQ%lLL74 zhjZtnefYvXeUlHr>-=$#Sluu1!y{L6px#k9Zd>u<*Pq@yFK_n20Y9F2s4Ji5M1S`d zpZEZ`@A9?6gP(ag?Y(pG;R~1f^E+n0xzGo1Im3hg^w!s$;-$WR^u*tO@9C#MAN9qP zj_=|t$G*c0r~Jt$-RL6ke6^o`=EXh74|Aw4yl|=OoZRyPUpngxmwSkQQ!n=>obD5N z>7<{W(n($W`DLFxn19dol^eM6whw-JHfQJgCI@tz-{lBizFB>D|G1yju@63exbN+! zAN=lhJm`l9ym0aNTfEE#9nCdASSXL-jD4tn8de&FDT{U59E9NzrUkABYGbdLY3dC)m|r<1z$P*)z+;|KrfCC~G`{d927oXM5@ zULX7U=UIK{;B%f|`0e=e?X_ol!27uO@=O-wAc$#)ocj z<6+L-^K{Wq?$ozm-B0m!jvw;oJ6!z0kKgdPujwt<&imbx5Bun0pZ<85C%(d^zWne< z?)hRrJ@`a7`pAL%#GKI`Uw+u<8J~CQiVwZyiNDUl4;P))mvjEC>eCTVeCX%BKJFX! ze^tp`(=d1qs+2@&l^re?N_L+0K;^)~p z^T}8HW_|VOk0;!4=}#9r=w~kJDaZQb%XjtV+q}p#f6SeAr}I&(eeikqT|e*T`=ax! zm0tMyjwhexQXO+=KJdm@F5!TS?z{eS?U|qI($zegPy3yxtNWUNaG%z1;&9$Qg|9rw zje7ph;vb#nemdz-4|?B(2QN6RaQtnbdyGE#(0B57{%hy;l^63Rzj8)*xXq6_;j{d! z2bVni{hfZ(k$(EY&qwF=+wqXo&po@3P~<0q6Z)4o$mI@`w9;}&ePp~ zb1p~p-~&AJ#CN%+w|(*_C-~9RcRs*jzxv**docLW&wlfQKR@yE9v*tr2S0W3=dXQo zEMN4~pFi-*0Uq?4c~B2d{ON@U9p#Pxcj==(KHmHL0DtxP?LEHmm^b&s%#ZWu^`t*@gd9Y7z z)YpINZXaImKl|vy2l>EHU%JC}94|S7TR!~W;U_2bghM@j)x}%>)WrinzYF}57xPFL z`92FbJnE<~N9NJ$UU0AD3#U51%OSr!>qAfa$p;>u<>f=T;geT<5Bl!!3g6`sPWg9^ z9`vyf@7wCy=R05APjKN0kN$j+SN!bLM}2kR!ix`dvrlgLqL03h@sJDpTX)~}_Z}`j zxChizU(V&*T){&h`&RwFwA#-X@A>7N{Lq0|HMTnb?`e1pL!>_+NmOuUUfs1~8=7W0r``u9=AAeWS-+c0kZ}gTIJoS}Bdg^Dt z+dFf~^o83TnRoB`roZoU3yS`N$jp@%Ny(@%eO^)o-_ zjz8+)!7usXD?R_KpB(XnZZm)M=aW9p;SWDN@_3n_yOmD!JU;g0|Ij(P^9%>vc*BW@ z-!tdsKu+aQPVkX;zU!yH_jGnn9l4ZKtMB@o56}3^1)n~o176;{zvP1Me6voT`0&Af ztiJy8tiL?bVTH?TAN{QM(+wVc%{P7QH}AVX{FftsKKC7ec;wOjU_TuA^3iv=_{OI% z^}$oWU%i({y8GR54j%gQ&79-w_nJ=b5%-chPxbYF;=+&5<^(VE!6&+%R#z_7;gc0! z`02_gzBqqfUC(r(qq(7npGHg=^}GCtT{Tc<@yofN^TjlcA^A5QlGUh|yq?n^v&eelp<9sA@TpO?N(eb>-MxxPN|x&v*BP-<_Mj!_61>u@#=FzkcRIUAfawZt;cB{o$N`bTuD- zr|HjEb4_Q@c+6+{rZauv)7QPLE_~|I-8@Zw@sc;IxulmlgNI-8p)Nl6`Gr4Re2}l> z_Q9{u^iO?w?UP^M>E^rq^LN(|uc-@ue0M*aEBNWk_xTK$dEk@0xewOBLk~IkyRP0% z`{9EZ4)=xg@bkqvb?9l;UqA2N>)zAV9PDuM!95{Q>dNKx|Ecrt3p%MIKk(C!f96#k z`JsnZ9v|ulKRj|{znn}wc)=_0^s>^KPx{i4UUG%6`J)@$a)kF`JoxdaXLCRgIfT>w z#8>wTe;%ttSMx4s-dpj46F>UmM-R{XS?Q0z+~T{!#Sgsct)HCegC`#JaZbMM`#&A_ zl9W{vgkiYXpn%+j0@MWvA}VN!$o`kqgMOb$MzoWPb52#}cgyO0RzI^$_>=pk=(<1ak34*%$dAHCs_1AW{he4{_#oikVJ zdiHk#9=^L5^x+%)?l-@?a!F736943hj`sa6-|F*`K73ODbNkhym-lia2lV5IdEpno zou`|enG37)a^$^p`0|@ybTvage9o&!pIsmNeCwG{_IozpzuR}wN*8(do__L$KmXiEbmu2t^t4|N z^p`U}I)4~0d8D&*_UkJbc+j6taQhB7Kkn*hKiu%p(f9Z5w|Y-s=itSIulVfh@a=og z>fp!!*S@b-zS~FN%f4TY{qXWfUcINgIfk2V_S4Ipz0}8fJn2Ah=k&u{-mK2MXWT=p zKK$^kuKdC+C%*H^Jkw46U43}n|M2q7eJ(%p<=$48pK$O84*t>aYyD?_^|w!bzsq!k zTYWjA2i^SL0xw+N%bR-6^WS&6(vyzP!SOd<&gnD#*T;Q9H+hgl=hZd;`0&kl`oKpw z_b#0BBiC@?sqcyp|L}KT^3VM1i;wwojxKzbCwk-U9Nci4XXp8BKV9{aOTIfNSM5_&${}3xO&90%^}9k3xpPiF=ngmk%%PmZ=Nup8flv19&nLQh4~O^a^T&6q-xdAL z1s(Ol$3Fe=$B*xLy9d>kL%KTmm_PDQUw!$r+UJ~mLk@P|&Gl{1R(h`9dxld!=w*)K zkQ@5x`%*nTe8=~y?|hVh@9~j)I_O6~xtACDHD~5PU-yf?r{SQ7Jn~t6_3(4fce;4b z2j}4S9zQ&GI6T8kfA^#J>Y5LD`C>nw_Q@+<;Fk~m-HZH_2RVRWU%Z_69)9z~M?QUv zx7B`mF^};2?mmJ?UEj@}eRO%PAD`rg@9s7A_~!n{kKgL^Lp`|Y{&w7n?)hZJi$8J&k9~e$++*~2@2P{AJXzJF2cPKdUhv&B zefUFv{pdg!c<2YeXZg{W-}Hi4{>{x!PdTNR`taEAzWLKR_mcN=FE@C?udW=)kNt8B zKYy(D)5SC1<{2*cg!>Oqe#ixU_wnM39GW|I^`nFQ>m%3hF@5PIPv+1wz4Vh8b@^j1 z_=zW-)bU+D;N+A2^w-C|qQ9KrV;|i7a*j^&1CR4~sN+0e%{ATZQqV{NWD|-Q+}n`j{8|eAo5@Qt3ked^IguK5L@dh!IH_vX!axuiQi@PG>s`8Q{e;loEh zJ*&ev`l&PT1#^fu{o%xi{`i;!zR`oPzMC80;iIeb@&c#4;AcNy&4ur9s*eX>)&G=! zKU-f~;gx^==x0Cv=80eY_Uyd;%bEGPt1my`z=NN1Lw|M5uR8MN-lD7D8Q=ARORo6i zSsnS{t8;WR59R}Ied*_%T+>0$@bf!KU(f2gXUqXV%sD;ug_~~r@!LLi;lSH|_bD7Z z|KOt=-rmc_>DUhsUCgUI@Q*L*$S-~5LmfDN)KC8B9MaEwKFS|_a=fZ%zRZI>!S9(5 zczgC84}J8P4}Iuq-s!+6xuXNW)Rj~7!e{kA#tVLWxi9ckU*60)UGU={9-ie)uJ-@v zIr-Qxf9|#E6P$RgXe<_)cBr%6oP3u$nL5`SvGX>fo)P?{e-vo)?|x z4PrXn$S*kIHaF+t zgU1}fK^OS>Wp31ghacvI4>Q+r;*BTW^mp!EIQd~c>b;!P0Z(=K=R2HoXU_QOy}tU; z3oq}TGZ*@rZ~MQ87Y_CKUc&mTE4=k$^nIN_lOzI->2&Z#dCe3w@^ z@uP!#PcGrd+c|yVl?QXHzkYH{H@x+yA0Oa>!+j!$e3TdG@zs}J@YB(J-{u>A_z$0z zuJG!EulM$!RM)e8^z>aWssGdBEF!jyIk8=KkZSKF-0V zo^$HSg=gpR!&e=?$_2h~$cOLlA-bvuFMa6G5AX4jBXi__qKACIeVY$>nR|8VZT|V< zSw8irAAIghddQ=Bc&NV>KKGyZ{D=E}=k(WyFY-YzxYhG4-}0#s{po3+`IirV;RnAt zGj|8!rMK_=ryt(>tj^(MzdXWAPv7Zee%w>)^A#@j`J?_-{pE-6&eNMteqWrYqyER$ zqZ^!Zr;qc_@y$KO4>{*E{pEsB>dp7?s!I>Noij&x@`qmVn}2o8ue?6TUq5~1Q4ZV> z`a9?Tz|+bXy1=>XCnx;!9uL0IAC9BWpR_vfy?aBh@S(d^J^6&ssy@FT>n9&_JkQVm ze4sDi@KeVe(o??pMOXQF2@fCmqmDlM;(=Svzx?To2OssPJOBCVyWFb}&vkg*x8~D|zq+2k zb`Bpr`K6wD;kO*%%{O_Xi*s~@htBe`!-22<^6FU~db$tfjy~>7bLYK#X6D7cVLv|f z^?mAr2OZ>Y#mC$p^z1vm>7~x^_F2u#)Cpg6$45D!o4GgF^o4^S&dV=c>cg)NKh)#1 ze1DDyzxaWd`%|vzD>rnbi|_b(=9gUI1=k7(9_rf%m-qBCAM*8D9nbQkKL7E3YQH&= z8{gIEtNR8&I>Un>9OhU)otF##tA{T=J@ZLFIL(*-c*D;>_2~x}UG$R|b9grN)W^Mu z$8Mios-vzsrMH~Yoeti^CqMMJKGx4XSn+fJ$vGVG|Lwe-n+tg0fP;SD>g&Dxi!S){$9H;rk2f5?tE-=!(0|Ss{O*st@Y$z6 z9pu@5zQE)6^j&r2kk01pL*Myf9<1t`uQm3=MQ3&7SRFZ&3(tIVf81AJA3m5b=lD-w zx?7K{Lnr&qiQK_U7yj^y3Q zIfdU`&|Us~cR%uhPoDLM+k5rwhl8GSf{%XY27bA+;vs+d;zd_|>5GRv!l5pF^6mcO zJAUQ}PJQW!hdi9-pL>>Xa`?ONbeK7jYx7`r4qtugW-jcPr^%0h>d}L)aQQCJ=8)gk z%lPmYUw-NDz5eFUy#>cb^_>6GGd%o($DH#U|M#8St^D;~UC;b_Z9o0wX7yel`>uMg z4nFjF>brgL^Kt&3(S^Qn@Y^%Ibd@{)@y+jqyvr{>_Vejuc-6UjFcsSA6)151-(o6I}ABzxxC} z{=@H{a1JiK^rMHo@lj58y138WZ_cR;4?WL1M>p@yhaAZvp5{e9;MB*w&|6*S`7JN< zfd^mgQV9Ka0^oxP{SYq;nxZ}fpfuJpC4`%oSEppV=i^c@fT?_QuIU7Yh>J-F#0pLn>pCSJEsp_@sua~W_{1* z6kl^Q{nm#Ma^POF-*@%#J`6wI@lsbl`34U@boJeSI>PNfRsUUm=Ul?ce|dGk(A&KN zkNx!34?gn>&&-p&x|f_&UtZ+QGo9#)w^d!w`18fRC4cTi_1#l&>o14&vri7yxkzU@ zlneXl4G%tacHVpY;FcqJ?Ypfn{p16G=kStS`}srHnV0kG-?XYvXL&g4yZv;-%kLx| ztn{%u7ojlW3F699p zb@k!5dl_DSz-i?NT-Wil^4a{$6_y8Bap7GRA9loDcmyh1Vs}J1v z@z+X!tDMN|X?^VHE57vCUtc)%$HzYJ`6KUqfP+r@@dqEc>1!UW?qhuPIUl_AQ4e4D z0^Gji_p>^9$bwk2js|(`VI}9`N~loZjltfq!`7 z&u{v8Z+_w67oPIRKldA)bcDk^@k1`vv!9Rp(b2s5-K7IR^pSr)3z^SzcX?KH$UK>bv|@nj-68v4t(k0{ol^R!9V)q>pY+Il}mN3 z>ch=Hb#{H}?mfNrl^cD{vHJA)dt)x>Y!095M_>1=Xa32%l@4^FKmO)de|7LNcW~2- zF7T`4zL6t(sHd+!@^unFd9lhF{B*Z}bp&!0-VV}Bi!ht8h zliQ{q&b}_35A<{^oe66JOMmW9Q)4_o{R9=RJHs`mVmY^?R(p`&8b{gWp;6 z!f(E)?_Q!a9o(~U(F1O{tbU*53m*RHCy#WU_%7p3XZ+yzot|>bH@Wi62lpR*a8JL~ z)kk0W=}RvwKlC$i^BFF>oW<81tK)Y^eRCxT?iJ5?!)M;`l`GHwu5ey`zRNA%_R$SK zb^gYKpY&4~FSz)o-nY)v$6UZ`J!&7H%%uWprgFl2QNPSe5HPym#JQ%CY+NcOR)Qk8)v-uG7sv{NMH-E;{M&cT2wYql3Eimk)W9XV37_ zdHUhJzI5j+eO9>5mHznPhX4UHL&O7Hlyz<8v_oQd_;K9#% zb0IIz^Nl~x@mQ_!s;eG-%{!gt#eP1?&%Dp*h_CN*0zS5F`3<yD zr=I%)4t@E_Z#kt4U+DO@zCT;};XVF%;-L;*eAl0zbaW10^W~X;c-n9E{c||+*PqXF zfuH^M@eh8_a_yeyA71V?b@a0z?j1h-;c#EV11G)pmrpt13p{x9hc5C$Z#b-Y+J_H3 zbcP3h{rzs~2j7Y>Kk-!0d-t*Taw1=Jq^o<+?}YuH-K&1T%rhV8PEWYpulmvDE*|_< z-|D_Ix6aX*F7)(w8@=&2hj8ob9G-MlSHG)p!o@GET$y_-9PSf2f)ftUc)3TsmoGlz zVNN{5D@VTLNq;=}>N_5I;mub*>0=(`QV!(eSGviYJ|BCJm%e^)?0eHbc+@qQ__&|t z%{le;Q`f4_VSU^Oc*z}~%++qc=j)#7?pc1#z4xpA@bbfZ^T>aBQg3&jFL1~WUiiy_ zb9BbfoX9I5`ENfQ=EYpok4~P|!CP+3fxha}$^6+TA6B@XgNJYOrp|ME!DEi_l@B?l zA3Rp~n!a)*=l+gT-+Va-Cm-PCD;&<@Lr>p5%ZdE|jHmlXK0KQr_l5K3g&v;m;~UHU}L z!9&04oBIY%=jlLCIOT|+a>7UJQT_4KA1?W%10LoDZ~fqspIv>v@ag|_{@Z?e;hVbV zOMP{`r-S_Afgkr?hk(J3y*n|zpwxN_YZIP-0W+=zHqDS{!@o<{E<7qGrseI z-#a{b@eO}`?B@?%;4yD>Jg=_RKK;#~Jj7m^bdn2t z%a1wb`*ro`;=Q?`hjZ}ar7!>0!C!s8z(Y^<^pywt^3Qp?dGFrj=Rhljixt;nw$D63!eLxAXkF>bv~XO|I=zAMVvTbK_pXWBSLp zlg`o8^Q=R6`1yqQt_~mIgG2t^FLDTn)qK-IZs}njSN-@;7yI$nS6x2v8BTeC3r~4b zm+$6+Uh+&QddRK(zzMfG`57PQ)x%c~_yo863JyN2ho}CY=^{Vo*L|fPo%OX}AAZU? zJoJ+X_ZOexR}XLB)q`WchlgKurmK1JU4HO~-+OsK%?Cc|Pd~YmBe`dNQu-aAjHyWaDi z{&Fq{@`1mc(|=V*pWUZo_Ns}ZoE9}D?faM!#=$5Ume)P<9;?j<c5d?wOu=z(XItd5@>}>eH3(p5+E_=gc|2bmzBybcfS> z`_(s(@=F)LCwK96j~w>wK6>9Xo!n#a>B~1OTyVonFLmYDywHa(`Z*^zXW_zwZgBH` zwGU4?)P>i5VE^yV&HeDnCEc9ISADti%n$tK(z6vmzNv#hpYS%v>eIn|z(p7HBM&Im=8nGb(eGzEKDU}b_4L)dPl&`(}=@A0O$+|mI*_dgu)@>@Uqyr;YGbc5qQ98axu#!r7a z)L(r%>dP;@%n?57cy9sBW+GxI@bzR?YTKI{aQ z{+T~H_|tp&roVfiFLDfrIii>Ibk$eB=|-jwr#oHEnYmZ*OT6%d4{rIBTX;Ov*)tsGMUL@UKFf*ug^Lez!Z+U!tLt9p4}AKW&#A9-_B+of_05O=e8AT|;y!ea zKI)pw+i=SjT=>(?e3~Eq%?F(D^XI(!^z%$-^P{iasLOYGmLojz)?ZHHbxwag=|VsC zc6im}n`io~=Nuisbl&}Bj{Uujj_BdLey?MnT=N|c{pHVmc~4(>^mPxw z%U5;n^LyfV$G#Ol`ocv=y!Z~E{qR}!m0!Qpc)L&Wp$~lWil-cTZ*Jf*7w{g&$3EZX z8xH=#<2ya&Lf-6iPso*g%B{RR=Xb$8!ihhrzaom#|uxnP~Y4- zPe**<=coHX?&!cT`j`j0tLGUndh^XaX1?8Xe6!;5Dc|v>4}I0MpAPC<`QyH_A5Znn zg*x!V!54k;Ru4|T&|41XoWW4exJ;xI`Szme1y}z=XU{5e&D6=k9;t% z>d{jjI^rpZv#$NV%ciKUg zJ^4g8_n~_7M`t+s={z3x^ABEl@bcXXpMCtJH(q?0dBqbyx~P8;Z~FR92j}E^&e_B* z_wc~UXRAJPKu5UbKs~>2Q%8E!(|qd#zk5LL)uWgByG)PMR($2&+)n)NWBpd==>rcw zaKJlx!Al3v@@Jm(bsu>zH=do7haEn;$(8xx8$Y~<7e9LOfnIp}9W)2nN#{EmlQ(ixuBcl_zgZ*}}0n>W7lNj-S@t>3%){BCugZ_ewlkG#2G z%o{%H$}=A7!y`YR>kpsRdw4F|ClB8151;$ie8TJ5eM7%L)rB7~I>Su|_01VQAF4xt z{N)Qi`{*v8R(0Wl6D})U_{%L_)#Jyn@SU~l<2{|shxdGde|6r9hkHX#-HV6q->vQm z`}Bj$yx>DWyy>k!z2%DTazZEm(FZ?%m|yQN% z_jt>#oOJuzsyC-0pk#zr5j(hu=5*;PM_GeDR|P|K-em_a;2*$seEKm49{V zL_a<`e_dVg@t;1(q4)6VLnnUFA0PVbr_RhZU(UjX&+6HI#W%k*_Tfc;yw!D%AL_XW zpB)bOyT&Zz^B^LWuqp7EgrpFGQ-`w2e31ANDK=I1nA&cn~&-S;_{ z?qz-O!j~WV^IKg$^AB!$FfXhAc$;TB(anB!>BfKgvAT!&g6CEJ;53hL(9gYtKc4n^ zrVCv7nrrs~zx6W@@T%vYf^+IE4{}9UxaHP4`0?d4J>hXr@{zyR$8_@@Upe*NoIJN5 zPrk!F@$p$b_l|kxryP3^$7}uMho1DI1Ap|Pw>tdgAHCcc^q`*{^2HqLhrb+pw%;>7 z%)x1V>@yGa)5kM?-0SiSAARjpPtN#b?)9ase8{W!e4zVfxbeY*uI7Qh&dH%1>ra1k zF5mKum%KUW{&h|s?8Art^x~_&bXJ#6@~)5X_{-C6deHfzXZfQK-T4JK9p#SSa_s!B zF8|G`+~VsTAJoHB{`exd{MH9Qy!l|i?{wss`@wwhoB!~w_{b^W)x*zsed#gxA5@PI z_|n~6@I?;baqr+S_i)P<9n|L||I82l^`jSE^jDWp>f7f#pW)F@UiIOZoX9V{a($g% z@&K>?_Q?f5)KOQS`A=v2eW$0~;iC`T@q^EPb-sif->06{qZi!#l`FqH<``Z%m4n;r z^2NE;dpXn3InVM6huq?|tD~Ozg#%yu$PfN}*B2jtIxlDXc>X^6pZDzC#IHZy`7Qta z_8t$q$)o#Df4t2pe$Mj&?&EOk%XfI?jNkG>AN#E43~v49f^O>Q&qsRGkI#Mw;P>9| zqFm8aPU*s5`>f^Ms}ckSD(ST{5Te>O+rRA9(mpSAFCf4*lq3 zg?Hv$efw5@?el!pdwHObe(=F{-hR*YKI^^wn=keBrJwWWM1J@%al--E%=_>9Pu}JS zPQQEh@ryt3z#*UT!zrKs4)VMP4s&FF)%ANJH@kDbn-@8k2jA(6w|fLHJe@P=&Y3^C zqqn~FqRUPA7|xiUxI^H*Iu&>4Qu@W?ry^02~7KmFi!U&GBG_4vK3 zOrata3y2%@Vr(e#~gRgktCx>|P(>Z+LqLY2{fWN%p35Pm(tLGe^ z^qBs7Ht(MOPQyhf-{t0OI^sS1(!qSn0lm$kT$xk4^3St#=20HhrGtBjFLZ@duGLYO z|M>F398Es(nnQZ?*<4xOcl?7FPV)(;{P}LbIdgCGT^^k0lN`da@{R9whFf2`QwM%J z(b;)E>q9U5_)Om&4)y#F;LBgne87|Ma-=W*R`31Z=}T|8@l#iSxrW1c`kMpu>0Y9{ z_v)z2PrB2Io^bOQKJ!3Nt6b36K7943Gab#fbAAWCcW&jEd4UIBI+_dh=)n*9r=R+8 z=}Q;;)NwEA1IMgO5AW&ZK7iMEc;%L_>bN(|4Zq|PK6Ut}pFWT2=-z-sUFXl*=l4kd z=w)u)Q^%vOd{2CIqpQDHyvKJ}&-}X&T^%bQ;l#s!xiD|?13%yRL3cWO zFE{*l5Anw;zw(JMT=EYGJ=Md59{BOwdAQ9zJ$;AY3cvm4!o3719Oh3B`0G3U@H7{4 zrXIccX|DJqf9ikDXL#W}>Aifp=e^gDZt&pmesT}ci!Z*@2R=CXz%TvjpfCO1KlFuz zp76=1zU~WpzN5JDhao3!UIz?Qn&mp4DfyzHN1%$%}LJ;OA@m=|y+-cPcldeeiy=E`?|!9zEA_^PgXk`vGN$(`Gk+oaL@xUI>@=4!l{q% z=k;}-uI^R!^_M65!s#6Re1*sTL>GPOLl^t$LQlNuL2o|VZ~m-&x5}&i`te8p;58q3 z(#bt62YAb=I!EbCH#pw(Uj5ZGpVXs|`E(w>zn#;^{X$faA!8!MtubBt>+|(a#{oRM=(0BFZ+x?&p-27F?etdlYP=9s#;y%*fobuOu z&-}Wq9-sKe4><65Z+U;-dCzOq+db1=fBo=r&hO6D1s;0ypMUcnkt6xJ3Wt4G_~=7N z`EX8t-J5iy2fX(4(LVM0D39hqPU!@?gKu1*8em-?*=Zq&`n?YqJ!Mf`6Vxud&0!p(pE z_yHGP`C|^9=Z`$d0UYjox#NfPc*`;U@Pv=w>f-D7hEDQfAN}E$BmTo7FMNi>J)yp5 zxcJ3yd8CK>@}j@~`x9<voa%e8(f(~%$XN6Pl)p5?>$@GI$ zJ$aQA`}FrL5BTfvSzo^5C5Ps~cXRKa_*g#GkyH5L=BvE$(f#qZI__ck;We+$siWV- zNnbqO2Yhnh$sN3M#b-F^Zl6`1hw#e@e0-v(x_{blT|MJZUw$}e4ldh|_gT;U))#-g zeU}sX`Q*F#f&04p@S0osvmbB1dCzC_NT)UG`o4RQm;KXkzThK=^n=Gay2&vfa!gNt z!mq#YaI41`xqAse{psvpQwMHyPfxzPe?9ZVKK;Bmr+n1Uc{m@#M{ha*-h1;x7x_@f zK04}4FZk%_ocy>C^ikileROnB@>QPXgHG;oy4&a8$6Fuw3O}sA<1asQ%}@RG;RAh~ z(+3ad^|?xS-{DYK{@f4v@Y6c;ug+2R-LvvBec_|Ia$b&Bb?`P{eBi(He6;f2es$r# z96HDaAM`ah@}-|TPt}nF{qS=is?RU?x;p%`>W{~+kKZLY=)hO}<%e$Ssc)a(A$9q# zp8Tx(%ZYiGLpsov|MGIvdHK|rE^z9HpYL>_m){Ax zLtpsx$5%c1Fdu#==|D%g<B2XC&852V(m`(c=h=Du<;c9ty?X9Xc+`_y z{qdAD{NSXsIn)n7&-U}lez}kz@BN)XKlj{GdHmFhKcDrXH(l_v&+itV@}?iXeU}$} z%&pbAH{pWA_xHX3I9C44pE;$=Za@9`!w3GEEA{+6g$Lf|03LZzpI&lAZ#?*|j^AcJdf_wgaX9hh3mklrAALRRFNfxbkLt@2Jn-QyNA%U-J-|1<>MvLP zldq|(`uFJxw>t6)w?5A4gOBg#n0|1(ANVE5^f7nxsV<-7P=CDMhyS8gp4=mJQism; zp}&1_tH&qjd?V_;!9ut@XtL$5Bkv!AGqE3 zp7mEp{^bEK^D75%xL5IopI`K&x9?W_;L-;UJk1SV%st-D%ej5#6Hk2fwenMrXf2|Jv@UZ{B@8%pIzVq2?e&u6zUM_sc z=V#w{D_!7mKgpx}#6CFGQ^y>_&o{Y}N4VsJzI1Z0d-k2)@&}*$g>U?z8(b^C=8_L^ znRhE+=%Ejv<-mUX=pl_>n`^#%uMge$12;d- zt6W><$`gVr#F4+bk%-y!)H4AJy*wj=U3;|x8j8lyz+?`AKXiL@L7L# z=qUHj^UXf|<;L8}p?uMgzVO5AJl*v5EEja}`*)fyzT@q_#^ZDQ@YRpc=9EwN;l~F# zlrQJhd8iLu=2BjrK4H6@9Jx%Lo7H%Rl0agwpXYn`x<34qORMwh{jHC=aqrFi(Oo|2 ztPj5Q-h+*0{hzK#YZ_XAKts~yyri?-B0F-?|kztr*chC`M^VN^{2mk%{e;J zNAB^(lMeQ&g$h}d*?dcTrgL&rzU)-Z~q1$nNormvt@A35=Pjf5pbKd`U zo}cEOukfg2A0PRH4?We{)u$K#^yQx%n+tvU#xFeS!*98z2Yu-0_tm|RhkI0A{=?xM zzH*=+-tv#HXT0UrdAX1ib?8nX`03!hJkf#PbfUBU>hlpU`LO; z+9$_+*Ux>YuRQRFo^*0=`3?`=_$P1h@q-Wab6#G}2RwK=FAs1#FL!X_tB!fMs$-7a zJ9NjBfAE@T_kjNV=94_=Lm&O%lmoowO<#J!?H;=2lC_{hX6q{MCg6Uw*hJ%%gkEKJW3QBmDBFKfU0j8(rbh z7eD(?;$15f?TpK~vrqq`jPUtRZ-T+-G2;(;Ije4~T+@Tl`P9QwFtUV9G*T=amK zulV7`FX#1xLtp2n56)eM15fqU+kJ-vZ@&9G^uB%k{noR&#@}4ale+St@7K=nQCELC zp_`nlM+bSp)BRwd_w=Thx~u;9*)Lakc&{)1aw8|dt49a#>8?Nj^pP9-^2;3HiI+Kt zd-icJ$bo)*;IDauOTPJoul@S+$!ea=8C+KPxB7VT#WNoIT&E}eo~>}v&ppB)`L*AB zt9w&^f7Or9-aEhh{@g16@=7=PGMDascZKQ{Tv^9d#^s- zzqC(&E^_`D+I!_<|)6?JE{Dnt-IQYz8e(}?H`qK>#-{neQ`O{A>_$zO8^?k1V zkr%qCk2js*Ru^x)@RmpSt99p#d*WjFq#xhiJNVOI-uSA%XZm@MkMsD*k8@T!`<>z+ zUVQT1e!1nF`-kpu;BSuLbU(m}CtcKqlmAEQ$QS+O_*38I9De8Mp`Tp4f6SeJ@WC%{ zt3Kx2eF49H_^XFEz4SY)9{h4ZM|kn^-ReGpcURAx$Sr@Z`qGPz-qV+E{Ks2v-Q(&$ z)L&hA=mW1@>MLgxFMZ{mu5w5hdch?>boLA`IQOQ$^tMkO&%X1O4t#L$!HX}Q{2j}$=lb#q ze)ZwzxAT0WE1%?&KKR4wcL5&155B7>pM2*p{`S$uKK?*ZTa-3lK*e4!V=^;6HiL?=4f zr$4;*d++|if5*>ved&JFclex_2YvY<7jnHiZ!X}%-+MahXAa@wk2%JF{%*lVS9PY3 zbXLzZ-f)_4_oupYVy@-OJUH*Zk!QN#ZJ$+rxxt&R@VUSEOAq|zoIdhu9@K?j-mUh* zBfoITgSo>W4!qT&zw`1!fBWUnijVL3=#SSfXY!^my&wCoEqBq*ZPri?<%QyD|eDaBpe)Og@ z9qHtm-hB6-PM-OuuYA$hdA#KrALsZ0m+vowr~A$KnM3%ja*j7#^r5pH`MZZ+Ps2Ys zz(XJP>8QSX_VL+w{pG~Gnd4P|_Xj-odrv1k?9-QCeA5>`=Pv5!Jbn4(cLh&5v|l}W z^!KZ|mn-k-p+8*ow_jhn$esI&{&e*Wk2%p#J-IW#c$h|gE2+djWX^rE}@p(~xty?XrQvlU)A;Kfh=>9WH| zKj%L69xi!sjy`zOSH9g#`obX>Z>o=gY#zb>PFB zzJ4G0A>VlI>bqz0z~8)khD#lK!3mGwH+a>hoBvL5U%?}%=0V=*F3dXutc!e){`v&drU!^PG8>$6bBr;eto5=;%G3c+t~7{OJoX-+k9t ze&~4~uGK21-pif2bWVQsJL)`L^!~klRK;WR=Lqfe(CU3Kkw=59Uf8OgaH~4xl z&vHS3{ON2C@RB>a(G?GQnz_VBKl#^}KKkRqNB#A)-yG}bK60P&Up;xDn>^E1Zs|!U zI>>?h%se^oS$+3Ez0`qE&g6(5{Kg+{`SqPHaH^~CV|jzuemUc(`f{>5M>qE(-PPs0 z^YSV`^zi0pW*#oUv>C&-+T8F9pw)$byoZFG{?L5c$z19r=xTF!^3a* z)sYTj7tG~SZ4!=HprkA>K$pfDD(UVV}`KJ#2d{)PIIMuaZ zJ$&VvZa49kH!HpI=dc?K7Y7x*yU~dUHPrA`Jt=2?h(4nF+a@@ zUY^x6|MaCB-_=q7Dt`RJ-*@%-Mkn_q{&M6!UUW3qzWe)zF7nBLdc*7Yh9Bm@KCAiT z2OREIImKuCBPV>2OV4!CA0PJu-FLe336GQB!$%kOy~mTTa&Nz!@k@T_>7H>OzF+m1 zUpnxE4-f5=KRn@wmtS%shjO8wIW-q>*sreq;>S;XcDS7Pp1yLxce=?T9`Kn9`|0Q& z(a#*gi?{vqsScm$ju+f;z^}f#c&n?A^KhxN(uL0akY_sJ1rHtcg~K`d^&JkmvL8;l zfJ@4hkoazG?9DFqA^e`Xq>*sgDvs~ciyZKX(pZdWM2OZ(Wm(FnG z2cNlNgRbz>l^^g~`O6pgK0j~bLHC&-zN!OK0XnIF2~MR&TuOV985VeaW8C-;5Fi%xve2mjml zrQN>ph(Etq%VB`2C^hWq!(yesboXG*@(U4nM1XR(SZR zk9z?hdeUEib8nwHv5)^&dD0i3>5H7mk^IPw{Z@S8#*e<{h7ZosWj>n^KI5YvJfHIi zKlhpQ{GqR0xKGuC*ZitOSNQ0w9-YjI961k{^Kzw+XFT{}{`J#`{$Jz$t<^lq#c}WH zO^-RZ=FWGx?em>p_Tei}&e@L#eJ2lm_$uG#euZBjxuVNu-|=1SwFhMY3}%^pE=^6Tv_Si-h)GZ_1rgb;H&QJXFkj|o?qgjpLyaVz2UO@j=!A1 zBOg!ISC`)Mq#pcqrU&2Lzw+t3d(Yg;1wQy&EgO4x#qw~-D&_Q2y>G*%Te(yX!@apHgXL`CP z;L)E>@`ksZ^Ub}(2R^HZzy0#$Ue!pXovb)G-w(X)Hmd41@okN5nxpB{9Am!AAl$2oa$56Hc9 z?k|4gi5I`+1U`8+cXFdIJo?dt-p=76r_brgU;FUB?YmsiNnQQ?eFVRH{5YtN`m1O4 z@in*fx0-wUdUj47b7dao)jqmAZ=dgQ$q9Yrn-1m`9)8f3U-VK}4&dUie*9679^Sj3 z%q?7UWiIqJ2hN|TJAdiGCwX>GAH3+{Ssm{`Rv%8h`2z1v`{0xtc%1WI&drH@(^J0S z!PC7WpK$B%SuW|v7kHglkMHw5yzWgn@staBl{>nrPxr%ga{sC8-ryHq@OK~RZ;s?l z?$uXMA9&@8fB4FWd7z&<^p`vL1>N!7@w3u{-f*hN5B*;{f7~h$aN8$We6@dd4iCSd z@=TxIKKrN7?!k-powTZ>?$nRZ^pOjEcXixb<^WIo;pYSXe8*QmdBabR_#;R9&`mC! z(+7U_SGe(37cY3>aR2B-H+AvWkB;(TZskf&oL3hf`1rNMtB)Mw>Ak%1f8wD(K6K=t z`M}TI!b4wk3ZM6I$s0U!ZlC)2<6(~7L;B+5y!ZUK`d#w-1<&{NGw^#4ndlL@%fRoPhaN9n-`N~JSI;WmKbj2SIy5mc4 z_kf(!L4V)%=cj&jr}Js}^~IAea_pXi$9-_nc|7&Om+pMvzkTrd4v)V0>CYG6%_}|3 z1%K&npZi0ecB5Aba4(ofA83@k8|#6{M;9Cnjdxf zt{nC4w`Ec)A%?DiaOJDl))pz-!^Nz24x-Y!{(RV)kefD=IJ@uh8-T7fPA94YY z{p!N;P=EKKe(oLj3BGiPTOIcooP5%s?)07e;ZR@x^p|6P(GxE|>7zcsRy^^OkGH+o zXZP%!e9Dn|<`+HfcVC!4d889v@$mNm{&;)lw_MndzrONpPF6hRSbwWJa^m@C=jbO- z^yepD{IXx2&((3B@8$%5xap4%e)`d$U*7NfxS!zRuYUHck0*VcTh-&M`uv2;y!p;| zIixdOe8ktYK2u-!2Oj##ADsNw4`2MeHz&X1XP(WmKJICGGf&R(nVx*ZQ!e;RSN-T? zztuVY-AA6`aj)P>H#*qw_k+&*crQot53hP~>iaw0bY{C;Iczy+j9jrMG(Tt7Fdah2MSP9`+r6-|1(* z=_~K*yVv2<2Y2U%Jtg-f+-Y&gkL1JnVdwbM^4o zUw-w4-?_8uOug}!qx<%$2bXhrBBd<@t$vA!ilH4a>6h7 z1YC0Iex|4Qc*Dhi{jck*o_+e5FFCXFOMd9WZ~e`cd8RjKs0Dgundo#p=BKjL+_I^GqN3N}htd)7y;ChnOp^Xa_#@Qfdy`GKFjzyl{;?Z-=f zI?zWB)Pak-k+tra%`q0mczk9(se9XgR_2_5iuemaJ^5r~! z?k&&em%sYsx9V#?vbA-tesO@x^}qJi|qQetS=!_tk?_zT6XMeRs}#e#)I3x<_U`JmicY=9GT) zaS!{x!y$(g2Yht2-&`MeUVZnmyuc?9@+Xh{#?w5}&v*URrKe|p;{mt2`qOuXn;!DW zPv`WN3%=>g55Jeb%ky!4b}OIE16=&(m-C)i=i$STPU@NKxgRb(;d0NKdpg2NFMW47 z=m9sq=wUy7`8D_J2e18dV?O0TAJ67fZuE7|y`hh~&huCQsjEEG2|j)BrI+*iy8qyV z!yNc7Kj!>8oz;cYIepbN_i{P;y{jI4`r>6CoySkU=*&NPaxc11evLlx!msYsK|Oin zpL+#<`um;1U;gc%edvV`Jan6N^|v2Cy2+7MJu98fBRq7rPhUFmf2X70D}Nuz1Kq9i z#vk?hNk6*(tUmqdsjuHLc+9W+e+S4VKlGP3zmxErD|LQW&-e45;eZcMzR{l!t8;iyd_VdQFJH~8{S!Ao>FB(? zIp6ptSH4dj)T1xl>d1*a@{bPAnV;|J<2-)u4LS6C;k$e| zH+7%;^iziq@bM2$Jn2dg-*>pJ@W`>;xG(4{_f~UZKGl;~x%QqO_R~oY`6m}}$+bM; z&tEH@7_RoL+;G&oJ zbTR+t)2a`i@+fEWr4AhQQ3oIM1c!a<(?K2j%bEYb;JjS$O+Pvw#@~K=^Iv~@(c5Z2 z{N|Z{bTbcf;GXh~5B~i0%vblj{Z=~QJM;J&Pw)ASCw>OM-;e=a$=|Wel?|e6h=2E`&qa!?c%7JHd#5cJ7UZ~F}c`=`I$7j0GOMc)t zNBo8t4*8-VANa-(I>ccT{>ErjoJh(^nl`pwacjuctO`YI$j-Pn&L;m<=KVEe4 zEMN4IBmLk|4^Fz%hc0+KC&#`!zv2tOXL{iw-*Vx*{PF=Wd6QfH2U- zf4uDH7ysd!edt7YI>4z8zx{W_Nj$%|>Z_kT@Rbhs>*Ic*Bb@li?OA=~(mkRMe7k+` zTjhd(uf4b5yz!mR^tVqQ%opF_b8phYN-uuNo4#^@hx&Y>gZuRV{8m>#=jqN*{Q2rT zAMl|cA6L4`pJ%JO&O0Y3=2gz*&^i6hm)z|7x_|Ms&s@<3Z#eCfFM7%o9o*l1;5&T$ z_5D-0;Koyq@Yi2``NzvStA6(B!$11c$Ni?>3KyR0c~2KU$d$R0bG*zm|J1R<2M7J- zaR2k)KRWPTU%ae*!qa>>$7lHIV9x3PQeSf{H*lIiyq$NB{&33!Jbq8?cmJDne$!hW z`s#xxA)Io=M}KG0&HUmC4<6200%jTKJ$f#3a44>;-K zp47)ZOIP*jYCm4~>q{pq-gM`id&@jH&u6-LmSaA_Z;t6^Zv9Tf=h-rHjlkymq~4qf1)4?TS6->UBP5x%c|_pGiQx<}Q8 z3vRrgszYDT^1vta<9T;Zp7DT3KYZw`u6)zSKIi0X>JA^ibihj=`g@PB`{4iX3H{)L z^KE?HE8feg{JK}{r|V4>L!)DKSjnm@SR5Afs5XMX7G`LOhwpNszWdC6cby`1GNN zx>G+snnp!>hwDrG=mfv{ zfzSO-NBYx8U-;xijy%g9{p^1q4t)7(PWf(L;BgKf_37(8eek1?dVGY}Go9hGx(D^) zzqylZ-}y>sdYD(|%{yK7mk+*q&ma8h;{LXu-pjs_~C6I-|3<+eJ39IhJ!9U9_9fq`}sjP`P28d^XA1I^NkPmhSPUA-0O0xFCFPY zPq^vtcZomhz~#PF&v*LcFL(A`4t?OJ1Kj$`ne%YzBTsUGr#Y|>J}Vsd<1a6Cp}!nE zXWrq`$38yEm-l`b_)JH7(ZhN9Qpb6^_%6S2xeq+^O+HpW$N~M$A)Vpi2R|P=kH2$r zEbnm0DV^+hPkOJe9L#=vRu>;W(Zi~)-x+$)**Wjwmn*pKr~CW(+s{Aw*?p&@dH>vd z`1Ezp&{Hlw^Z!rhy~H=(}9)&ONm9+dg&I*vB{c)W_R-_qSC&{M2<`U3uac z{_=Ac9(kjOe9{vRKH29yf9OtM&;ENu?%;sS{K}2~bjL?t{4P6hUgbtE<<{KWkC%J( zO*+sMKlgzZZob=x-_Pp6ug~ti^YHV5uK2144}au~PR_%FpB$*iC;G?*ot%?9{^@%X zemvlK?!Ecv6Q9k!{dm(sj_Gf{8~EW@xDnn_XMAumj`_1PrmrhCwjr-euN7@d8Lya(TCsoI>#Tm^d3&%_4B(1KRu7* zt-kZ}LvMBPkrTREvs@SPt!%^qphf5#xCrslK_Et5rRE&{K}-2#30G{^`7Vgi{^$^_5$BH$U*p zm;UYe7C~m-j>TB!zcRV z%O`r7Z})}$@~Drz!vCp0bjHJZ^J+fevZ`wzUUI-Mt2+ERs6RjP;XfSe(aBu#&v`k+ z2Ojr}T=GR;;Nt%d7hZH!4<0$v&pyAu^rkDk_*wNgFLW^P@xM?bvq)W<&k;Z#Si)prhl^I;C<<7wce zgWS?pKCSTJ<=&vD^X?;h@S7jU^@j&9`ItVrC-8EfZg9a(pQHNt-GJM7`{}5!ee{FR zeZe>QZ|b9t_vT-}m-f-~UC&na`RTo!nG<Ea z*Lgb0k?-`D%a4OM+<4QS-ugN39@Ym=dfM-qexAS9UwwG^&M!IFM_%Mi4lk?6AAZtt z^<7TfD{>&G-pjxFrVo64vJWo4n_D>fPhUQnS9&;al^=TW86STiz{dys)Q4}U13mfZ ze!>qPIZ#*L<&dv(!3TKhNnbeSQayV4&ObWI2fdx+KfdSjqtDx({XSUbj?Q?h3qOAF z^U=J!Po{3(^N;Uz)1R(}Z{9<6vY&pdbNapQ*__FV^YSd;@VFP8 zf2xji>bnoE^iXei&i&xLT=11H@~obD_MJcUpfeuywqGvYSNI=<%N+7UzCF_oF86~x z&`I9q`=t6GTKV|9XTKNDsf&m6_|Ov`I_q~`UHjm((wXl1>c>yt`D7pe;o^^e=E5Av zrDu4}^A0cGa;GmG{GvY}&9`&<(~G{o!y`A|%Yk#|PVV5OgZ^@7-_(&lzT@qlQI~#K z=>ebo>MM_{edhhTXY=JfzxgG9zME@!P{W)r?>ie=)+gKz{yANcYVyMobU^O zIi7XR16*<;H*|2`JbI7c^wT|K9~{=(a9_6a7au(6;+`=7@&T8;yN~1yKl}MYPrBhN zzxJsM4}APHZ~XUOKYX3HPu}E(uKb6Ke(=dP{OUXBJ^lF&C;jxL7rgRlUf`8C^X@*I z_kh25oTn!~@YqKOb>Q$U$MnN%l^ginzj*1#FZ=PZUw-N6yk~XjB2RMXKH&R(xXc6G zbdY;>AKNc)bg@re_aOb`;7{lIi=RBf;k#%0$`@U&<_-?J$d_~Kz^AV~dQS)XP2Jr; z@~O{R{LH_)^rV~I=r5=8<(@G|-ovr#^P?4S`1x-?KIQ=4>A!nOU%7*u|8$WnEB~$b z>E}HB`nboZPVz%1^Dj5}&>2s8qocW$S9ySoe)jo0hA(vV-W>5?fA#n)59-LN{c?hr z^H=$bhxc;L7k;jfeX1 z%Pqg?sju9~*USZ7?KfX|!a;9!e7{LQ`t#?o_wxC(XZ(D3UOngK0IsPgUVNgHJoAe# zNA;&W|D1=zy4uel`FQ9(Ug|q%KR$TNB|W{j&wS4M@~7^sgD2i_;fc373m??QS6{y?>bPg*$$R+S7w!>tR(R-5f4PB!&+yaNN>4fB z6aDe>d!Vm#_`yv_>uETruIB2c@ANch>hg(?yZwAo|7-8*r4D`hf!}IB9)9=aO#Yp> z(vuH($gy+uv=2W0<-jw&zT>UGoWU!9{N%T}$J2c10}q_$20riks2=@R_~6o4 z&h*8{dv)QVkG}GQKRxYN$Nlg<9P-Eqckl8F zpANa_%@6O`^hkkP58GiGOx79s-7Cv}A z`z}Z7$cOyG>Ak+@|MRHNce#`cdBRWb@%D_LoLSxHyMA=TOI`D zU-Y4e`tC(}bg%J2j_mgyA9?hhPWq@PPxPL3`Qtl&_|wIEI=UA;t0R9u)0;G-^m;KA3urY^tm zl@GXlmw!2;t9i$lE_{KLzv}aoo^&=Z`pY}~R{ijkOF6{P{b0V~(3f8N>93A{{P+Gf z-OU{x^qKtlZjSWz?04X#x}NFH2mSPs8#$AIKF}2pe!!0x9p!H7%WwGjNDucP-p=c9 zpIq`wJ-L^2`0(MQIifdQ>e=r-T=e&Q?*387GkxuIj!$^)e3Em#-Ix5}v$}l1myd9I zmU}tI&ptl!O&_|+w|S?lTsdbR_<#=`^-FaGN1-ndOKKH3ilU+F}5{a5Gd zp`QHX1t*{MGe7$AX}+gBzumX=@H;{$I^gX+{?7B&Gk^GMPUs?kaw1=Jq6Z%8(3>9S zn@;jh7kWESH+hf`{P;o-_W)h_t@O|zKKtbye?0WD?!#DFNU-+7bRsDCZa>qycqpuuW`Mf)CuFWMqoVOoO z^XfakaL|!o_W51Jm!5JgH+)^;;|E^e(@P)c_+zCfKjal3I^wM#y!Lyx4_~_S-(1jv zK34fQAN-Ynedr`VcweOpzvw3~az!t{hu)hPzSt+1{N^)#;rdyBc=6f2f741wIL(Xm z>dG}e-FsF#*yp|T`n&(=L2v%Afsb#_@j*Yh<;Zud`sPRe)N_8{U+}>JKVO_v$GvO+=kTgSKe@HfT%NVx zKKFz!-hx}JZT|Uc+9P$+&b*%c^cN-q>>E=9N^oLts;KQ4LaPe0^b<{PV z-kWzg=pqkR^ChPT|NZ+n&%uKazRq8C&UrlKh(C|*+pTbVKI%Qb@@g(;j%NPkgOAS3 zrSEj7pZ;rmKj?#p{Nl$y`Ox1v-#zQAKHX=o@s}I9<)2)9i?4ljpr?N3 zLLd9_f$yq%aM4HZe8=~u{qmr{Tv+WlFLaSx`}n3G9PjGmK60L~=9%Ar+RsmUqaS_c zOMO1e<*JUlc+hQ+@A_EP!H@6e1RnkE(}!=L>NC&FoA3JKf6+Pq%8mN&8_(zM|J&+W zj^N~*`&SOU=a2k2XTIU0tCgR4uW-m0-R0Z8;yyMHaN&Wcxt;p(!Qatx0GGb@(Oci? zGrjaNcX*it@4v(oALr=GKe*`0H~Z;il{5Ryy_HUI$e(_2;fFV$-3OQ9rx)M&fvksG|9+UGl6oKw#^edzeE^L*p4e0hJ|KKGuS zn@jKg&dVeJ=)p($=z}jjc+lsd{``9E+5GU$e)lb1%mLl_2cPeBf!BHOAL=VV&dV>} z>ZxO%;W9t`qc=V2t*+l+`oWhjGqAKb@$k^}R5ln$%ax!Fe@zWUCm z-FfSM&-Bn&-uRB6x^i&Y`PGV-oWbKeetf0}oaUY{^yBaM`pBz$j!*jYPafd6Z|VvM zd~&7#yoa2J*L_VN{?HL_`0zLX-t)tEbLJUNdcmm=T=4SG`FStt?>ip$nHzfYldk^0 z(bvj8C&c z_yLD|!#?vp`?;^^Y(HP|)t6s%#fzW%KE%^J;7xD)Pt`O{hrF%Q~UUerQ#8? ziobbNk3RfYpPq6(`5#u_e!9pBUE~4|zQe5#+~$Lx{FLjH`p%r_H}y6j&g*Y})R9B) z-9Pf+9KGlWw_L(upYwF216{mVpD+C93xChzFBkgqLEqo)!v|jXxID-S9rT?#n-i;k z_`&DdKKGcum*J8pa|f?`*PO@|zH%=Y`oT+A^J%|%qYqu_Vn09BlMDXHg?#S#@LeBs zAdh^4m+tZphkovDa|XA2L>=$dqbnS6;YUyRn>^xWUic;_aCnw0KENRd{Bur!e)vvr zxmSlC@&YG)X=U%g4zVTMysxN))mt#7Z z54oVTxxn9jB(MBYM_=>n{6qTCk1u@YgSnum`tW+sANf~Df4;$ix4ghXXZqk}AKl$w ze77GC_on&K4-V((3%B15ec-nbFL_qqdHFJ*aM6wK&YNrJ=m3ZP-s2_Da%*1rV($IE z!Y?;`Ro}C7e4^(nFY3dAm$|@~E_A@pe)`I_e&$H7;K3hXxW9&L=H2|zmv2_}@N<94 z1%Bq=vpnFVKYitu9`@m@KmRYo&nNnsNBZywUOL(jH(s9MH9tr7)0aN0_ju~ZZ@4|n zJ0AGTB|V*k15fjahkNWa9C)k8cRIs|mvid6N9e&P=j76Ud9}jryL;YwIOGryIO#%9 ze#n!2;wdNienmrwmX(+f`i(%0WNe0~idop#Ua$qD@S-L>ye zD?Xm(+1%6LefZQlbyv@D(x2b-hszxDPhC2~t*`p(@x?iQy0?CZM=s2leR4-n_00<% z;N%A$^s_o||HMfbxsW3~;FcHt)T6Ui{+)MDUi^K-2Rhgbl{I1^BX>X(t|I)>+e2r-_hS{KFlSYe89&&0ViJ1>EOPaeVwQOLHpIQ zszVRHt@h6xsK;k{Q~$nm@?gJu{Kf+gye~Tsm%oFpd@=V{IN^W`4*lS!|E}Llt6a(J z%mbb1E&u$J$H(faBQNrxAAEe4FX#Nu(q-x(w{$cwc*-H3aO(pXz3lg1eZHwHw|DWx zUmmUImah2YLnpqPPv_xqe$~%hs$&k-!ABl_mq)tt%Rcq^tPX$V)Hyi$qK;gghu7~L z{hg<$9P6Xr?mQjjM*S~+x4KvDf9kuO$p;3j#AJPwRxXqh9drv?2k-X4Befr7|oDcP*w_KP* z`uu61zUD#x?5DRnyL0Y8eer?Q^YiHAobT$JPyD>MUw^rFztNu`&d+-VKmPlDa~>YL zJ%w8i;lUps{^HFS{>veq>1xj86J9xU{#`iaM}2yEKXdClyylJXa!g;iUh4;!d3RrU zf8IX4=tMuh)7N~!Zy#UyDbMhkTl2twa{`|_`j{L1=)fm+>4zWR0{3H;ItL#-c+%N3o%kt_bof|3y2_#a!}qm)@NHKKl*_-T02js*Ze`Q@-G5m4EYRzZ|I}2XeuG zyy;Iz-|>|@dAH)Lj$FKthk1t2cR7MrKl;E!XZyXU6J68>t3Qztoc-ZQ<`bKWx^?k~R54-fA@ zg^yoSkNr#t`jqaWYw_nlsT&)k3d&wlvOm40$2cX9y_9O{`PxW2`Q zFMM{+{lyo0=|>Mfyr~|%-rKJp9-iGV^5ni#Pk%l+XT^igazk(Z=q5+>f>RFR_pHD3 z^u_;ey!qify!7O^{95H3-!ymf9El28`<6Rwmo_fX`5B=Q}@UHgD-NbEP)aSGF@?pOC%ttx2 znnyZ&hL6wg7yS8dzq!GWuKrGtd-~JW{pLNr^ry3W`s+(qIiI@0kH3ESI45^>pgTRy z4ZZ0qCwSW@k2^o{`Cs$k?__+`*H0bq`6qY&evl_P@WI#p;yWMU_pBb=baald@Tjkj zeBQ>Ne^!3G7v#yD@ky?{cTcGg7a!c){Il;m9C9O%=7f&;)6IMN!J7{Jk~==i6@2jH z#V0z@iJs;FUpc_f{pUOV)!~DjzzwhZc)dve3$yoXO;`LiC^hYsdl z?%?E~T+-J*dg?=Os~qr^|M<=O(>*JfaM7Lr@X$?tI=KhnRfj+D(qA6&abI{ZKk$A? zKi}!@J>B5l?T1@#=`8>F`>rp&%#nMOPW0ACZp=L&e5V7Q_#z)xImN?%=U2SUhkbZ? z_ICw;@RMKo-Aj0@Yd?MQu+krHef^HWNk_cQ!F4?7Wk0`tR~IgRxNq>2JNb}b{=47! z;=X`OuGPa&UA{Xf4}6p(bKySFS08-+{UwL;ul}4DIe^m~S?Nj_y2%0G;eZQ2`@N@w z@A54#`0+~)_-{WwJj)rs;pQ)W;BjBdH@&>qU!JXep^y22$M;&iAR0=`2?qDe&VH%zI>1qIL#5A?AMo`=FWR_1Q-3} zgl^^uK0NjPkRI|W=kj8o_vTz~mG9-!SmX8b74N!_dM_C*_ZC-kgxi{C3kqp4ZQLU zk38c6m%99s3;X1i&+y5G?|hRZJinw19?s*z+1u>YT+#e)OfA`^}uY5BRk@FTeDp zi{Dqc@b;Y^bdziQ>FE1;{rKZPlq2VSx5~M7SBH+~4KDiOYo(XEH`Or*^!nNR=T_(F zOK{_>1B9(=RUvz*agUpc4GijR3y z$9;(>pM0m^ap&pfcaIKM_2yide|Yd$m;P|l?Ww-ryI1&auI0x(n3JiuXMRk5%?~|& zmmmD-0vBHL!5`n@qd$M;1s^)W={&v7t8;Q}|I|aC%rSrE6%W5p_T!JQ`^vii`}Yqn zeB}>6yy=5Ko!uw=h6^6NW*^V?@ssax$Qd4g!%Yu-zxQ6=;P*R-w;bqaZunsC+`Grs zbi@3(^pit*h3leyc&O|5N*&MU$~nH%m*4oyBV9ei zYo9#Jlf1~ObNJySNBoj!y1~sqKC4GhIZ)SmKB#{e8RC z@cOQYGP6hXgfe8YGC9m)qh^;KV8^Q9i2J)0Xo%jI$S>1l50 zM}Iur3%<**l|JT(e*BquoilG!Kl{y-{qR1AA3r&fTYA#b+{mAL<^W%Q(%bI|z0}vA z{P zkw^Ec@A|@FAKd(-UOM6BJl))*@_>ijd4?Z9y2%B+{ISY``gDWGeBh0zXE@Ze z9}f8G0H=ABH}^9>a-p6&^!uJ)e1v27-ukv@Ip!lg^nsTi`oY0ZeGjWkSGe3G>f!5I z4%}Pn{H>mxTb-jfT<$mh-6MQ7U-rQ-Z~EddckT(g@PWXM-7e009;#oiY=;J=I zpYO-@^Iksil2`KrkNiJ$Ue5T3-~X5AtIp#mKdbk6@f9EXJLfweo#zXmt@5D1d7&S^ zzQds}pXuTLriYx$4?pO79zQtftiHK`2QT&QM} z6%YBALv!RjJ>-WO%rvCa|54`y4`pTU-psTv@I&U9d@^4<|vwHk9 zNAKbTpZn9C($jl*;N}Crt#pO&OMT#Tj-K|@<#YStRoAopc;=TJ$hr47)srvtDi8d9 z-#&TgA0BYf1t0#vV>J(aGtc_FSH0I?KRE33U0&!Xr~HAFkIu;fJ=FJIJ$UWs4;=2d ztMtOt+~LOud6YZ%9^LprS9#&5x$>T0a;Xj--LrCHpZkq|c=#RFM}2k7hkI^~oWS+D z_jJ_9eW{On@ZnEyIPH^L_liF1sjnV<{Ne*&@a6-*`DyigCRg~tLvOm+FL(OLkMDT# zglz@A%M#U+_AwK7Hsh=awFP zl@Iea>+_MXaL`|Uc;%Mgbo2dJdbsD{hl9TA`)+ROEie3&Bl>$!2e|0zUa${Ne$hdH zI_M)G>hW*Zb${`Pj&SKGm+;WXd#m^Kl{5K+2M+u7gA)%ceDJ{iF2DFecm3r^?&t!S zyvREr=na?i?o0dM*MEMehjrqWXZY#r{-qP2@wutrODkRRIO@H7()}kV@SL_!Ug@%W zPd9nB>ZcC8bmIfuaOtBy9#;J5sxDpmrM@}EgHLqR&$Ic~-#sVq{I+@z7yUfXe){kQ zF8t*kUp(&9TVMP2^LM9Q+i&GJUi{`iT=4q6a4(uKetr&*dyY=dspI@^|5>X%{~6Et zSot^S+Ie$E7yRkt-hj(@`IN_}aG1aMJ=+hreDFh2tkB>fZstYfip4HbEPv_L9i#&V(oL_Rv7x>`f zFJC@(&YXGXC!X-o^H=BGhj76mPw?;`Px$!eJY4jlpL+%_{nep|ecr=6{pHVbJe;SO z@A#j$?`tc5aNuQb_(1j25 zFpme}!=D~<;Tdmu@v+K>zWCEa9{fJY6}{bKp5;|vI>Uu8J@w<8^X3H(yy<`spWVxH z>{&hg=Xu_-}CzK-#_~Bfq(K% zcX~Sq4}bBN4?N|YZgBBmUB64_SpM;KkI13l1$x277rf-coH%cV7jHhoquxP!>7(xM z{Yk55de9Mn=ggg)_@l}H-4PdSB_qKmIFNbPe**r9bMs-N9W|(IsEXVzuzt2;k5EYeLTO0+o~Ua z6Nh=AH(i~>hrWF0AD`i&6CIt$!~O6S&g)js^rkOA)zeR1yzo%Z@1=Tj<^5rO&Aq(9 z!4G+%FP-S4F26miD;M-x^`!$|>f!6Wdh&?3eteJ@`EZZIhu(5yKmF)3_nD7R)%RUp zzR^u?|Fqxv^Pa78_pSGGD-Zgp`@Mbid40_dUEt*hK62yl2!6t)p5IZ=>byx0dc%Fwd-;PyU*GTAXAbRKz1Nps_RBAv z@}d9S_qTfTM>pra*9Sj%t$uf=Px|rqv3}0UHJ$XO5B$!feBF$dnm=Q}-aI}fKhcK&bQ?f=-bxuchy%EQ#f zJtpV;gNr_^`gDf>zV~?3OMmyNI`RWIKjaG@Jmm=^ii_awqS; z^Fhw_HGgo@-90Nm_Nn8UPU`Z9zIe+K|Gk$txar9^deX-{JI^oY=^*Ex2r`zaO%&WZ+)k;eRQJ(Kj><|I`W5yXZ!!uM_$#XH$M8nkMC*cr!M-?M}N=nI_ExG zJ@e&9&vco;W`}n!AobkRu?Zg`0Tv7a9_GF^m(nHXZo2(_YWNU)6cypmvH$m7wW>r7w72$ z2Og6byw1rH{oP;cm@oc$=HH6H?{MNP7jWqBJw45boYKj6xcI0Je|(?s^`#HLouj97 zJ3jcC1MkoJuC5%?laBM*{b0X2mn(Xk8|UGckDL0t51o7Hy?N&Y{rJNdIOr}1ayRvX zlW+LQ_jCQ7*Vpg7`Q@*B5RcV)=lFyV-{Cc1a>5rmpbMPl#qTLxQ{RclvvYLBlTY;2 z7hkx|4cyMVFXh2Lyye0DHtW&-DE;`Pt~$QcS=}$4^Nc57@%dkR@lk#I@z>9s$)CL1 zj~_gIp%!6x}V^YZ{O*FpJ#bhPap5)41T)8e-vMO;msfU_qzp;oX8)%_|k!1 z?qz)^KJWQ5{pE{X$&+XI54>>dPgnfq*|S`$hrfKuCmr3(`Z_0X^wi&Z-`}LW{^r%n zXS&D@UE%#*9rfUr5BSujgIqYLo;=`9NAu-7-1wPu-{r%7puU{yYlTxied#4%U*l`; zE_#+PxspTu)S)YUH=T!{PIUKs3#WX^fxOBSTy$8~x1a9b%aMHO?_TAj^XkJR7xG6x z{^3hsb7a2gW$x*zzP^8lPV}UoI`WC9+)RA@o%`T&-_wb|e5IT7e87K)*L(LDK6E^4 zAKm%xoc(;D6W!(esXB0aHlOOquRiorUtaOU*M9TMS9-yJ77lsdJ)0l8n_oKfQ$GA2 zP2Aqg3H%UY zrPY1RM|_U@PCxgGJi(_A-|>ZaSI2(3IVXSm$qQfjFHd|muXHs3=FK_%^?}Q3{#Q8N zEAYuFeDtORzv&5w@BG7`Pjsh;mEQ9^o_tgvKIib1bMtKO=%^oj=F|Mq+3yQo;iA91 z;w?w+1Agky4>>bmR(!1HLayM2-%4M;@{1my@)sZa!L85r|JX+td65q~=%+5fe5|4%$a;ShnMr_04{xB)7SjdOPQq= zT=D(K=#dUq_ckTS@}p`d7}fJ)un?Rxd-6n zBj4br2OQ=CZ~O6+bNJ*^KIrb=ntG`(*UrI*pE=~GedbW#$8@*ybM>A+@VFoJpZYlG z9x~r>Ik&6N7k&5wrxji~G8g8NPM+<94<35x3&*?g&_R7Gf8pSR{qi6`a;hI+<(7_c z@y8s?3Ek|cr#^D!9x^ZI@lns;OLX$AzV~u}+IjUn^GEK@4c+N#AOHBSK0WA;uex-h zBYg1CQ7-A?`8ND;(+eKw&7paL%ROWs;J}Nn&UuED9_n}xKi{n37hlZ>e$L66XMN0#dib8yhyHZK)BN$7&R;smC-(|n z=%$YT*89%$TTbj>eTUPk4_&S9A3n$h9B}iMj_}*3Kb`oi&sDf?TFnpLtm@O3FZj!e zKI*_vN4oF&t=8!~{P4+@xzkS_{p1Qhea*3Y-hZsW-(7m)X}hM*L^`Q@c?bla7_2D&-^m1;6!+cxmAdm7ZXYla#qB`{S z9ZtVPexLN`)3?s^@4ja^^yi!T!Pj^9%8$Wv=1k z2S3%LBOIRbRo~n>43SU3d8C$R|0cpZ)H$)j2rehwrZM-ovH7_juCZK6-hk zgZmdQIW=eY(_KIJt(;lml?yyQ(-lto$%XgwqOM%{-EoiMB?r#icad)VrZ+x#@YQ_d zG3Szx^l@LYdwQwk z9?=he^JM?8;RpWoFz55$G2igWE1vv>2Tr)AzVxIA-0JWNZs%9{`7&2|wvV3h(#8Gn zyXWWX)CwB0e)~fPe=D2f9M3C{(P1(|bDFPcJ$+ z=h>XdwYi6f-+rg?`4SE|ch7XAGkxHqvwYK+uJR)n_{pn2?jPs)0XJXq_ni-N@AnN) zxa45POJ3pgJ2w4MUtK=X_qcj^&`&?Pkq^4d4PL(E;hvy7{XBoGum1ST_3Aqueuwap zOZNl+y|==}uV2-bD>&s(KRMy2mF}M9RUP@U!X@YYq_gkl6i+_MDPMi37hUyJXUEe% zxm8E*J@b`bc+z)OPd~Yv@Abw2! zUp~p1bMk~A9CEB49`sS4-+aBQzrOP4ySbA?y4mNve89msJoqjbaM0^99NwD~dh?$j z`Z>=pc;NJ29k^yabL1YU-*LF;iVr`{4PW4NY(~PR`>cNBp+#bfBvo;-{WE@WJccQFYum>eJJF z!mqApbNQh<_RG0^$Rj=Q#>092?UO_G;N+8Y>b-=6{`i|GzQ1dqess3adHL{67dq=p zSHB0Izt@NUa*4Noc=7SLbN1;=fBCbI4swpSd))J3bh8O9`tnVEe$Y=&^ifYgb50k$=_c>Kn-6|_@7^|l@%?<$~V$eX1`X=|N|{%L)AM3H9kBm)_HxKKRI`-wSx?rN27n zo-X>Cb90A3zH-SYec{rFo^*ywKmN%ZzuXh%6ka*p>Fb$)^2cxYApO;!{cC;{S9Rd!yZZ`$x#6cg(AB)kfql-y>ASx8(hoo9<&z%#agW@E zUw-g|2X6KGhNnEhaa2A0^@saU-{r$OtNRQt`s>3N`nwZwC7dRW!<-S5uoyg9Jq!Dqk6>cDRf%ptyVqQCD}_4%X@zI>2- z-)9c#Y~|}gyyTOAp7n)89{FxwN~&W1zz`&JehO%{OUYj`gyOfK6t_l4?X3WKjsBbe$WX|`Qf`h^xNU|UC!u*x4d4o z-+T8p{&>Q{Z|C52PJhql3QqU8-z)X##t-)q-g2TIpT38mE;l{Xn=W+5Q$2a6kLOh# z`GePc_km~k^uz-Pe)2$nd4iMP=1^YE8=U&iRUf*#f9ZnHtV36L{T|At`QYR0fB*ie z>-^W=+b1XX!N(7CAaC?g2Y%n_uD<#7{=WY5p&uUnrMJ59@sHo|;49a1>3)-I^MDte z>d@bPArJE7oE*qCe)7QI5An4hFZ+C_gL-s@moBS%yA}S+p6Nh0ImSnSdc#d8Jn2A3 zD;)fnd;R2W_LV1f%#Z!>tLwY^a9Z);tNh=l1HJj>zS2jI_(V_V=zxd(;c5Q(#m|{< zx;}J!C&T`tcJ!I?&5^@BO~o zk2hcCa;4W*tNg0NN9W|rez?`c$Gt%(Jj~yD{pdnRbuaqvyxj4{y=D&eg`58N>2J>Y zMQ1$dMhCx-aJr}9z|%Q?;NhHAF3k_z`l;)?_wEV0!9{oc%&YfurXD@z-+Zq0Hs^cj zPbc{`kLs9z{_@lO!Ucys>MLJ#qyv4;DP8sR-hMip2loUW-^WWGIPp~v9y-er{PJ>F zJv`;h%3pbuV|Bcj3;6Wo7oXtdw{zye^9q;ygf3S5`3bLkbmrho_4w^O{&=}>;5QG> z$&r;0bfCLA<{w|of&K8Shrb-Tugtsog@+Dsz-w;kEhl)%xg6^czd5B3oOFZ3dpPkm zFZ|FCUimSH>dKqEU*?;6aj%*e@2yieeDTvCUirjl)lYvq9QWRLepuxaK6voL!#tV? zb*El%(obK!o%76h{N>M_s}HC8?iu+szxv6eKI-B}Kj+kuNALH4|NhCPIm6F>`l#<& zE}Ww)T=Go^zMa+AeB%QbAAE-o9(p<_-*N>9UEDLy%aM7VdbzjwV4rjN;{~UE`oc#~ z@9AZZ%{P4Jk`C@A_kx_cx9DbmChl1mPCChl{K+LB>1#hf{9gD@5BCqBta#avzdq)c zP9Mq%o_M$yZu?Fr=X_UR4tM+U^W8ll&-COozkK&hFZlK01ATtgS08f#w|(v@I?5Zp zS9Ro*j&RC}-0>AIzQ~dD@<3;Kc2Airc<_c7KhN^6FaPPSKR@M}f2Z-J3w`Z}hc5Kc z|3~N54KmB^0=$74qot^FZU7s@p1psg@5vdr~K&a zJpbX6KX{#&Z|Cr$KfSE_S?NnRI?0uK?qz<%=ezfK(!+{3U(J^};1j*!#RE@z$b&lc zfJZ(3=*B<3$dUI4`K}+H@K0TC+s~g5J=4Q{(eG>DmopZfaYM^`%gj)(lYr}X0+ob;r#d)}(fefZ$S2T%9N-}dnfKlA3ErmU-DmUCfJI;7>2P)t_E);~^*VL|;B$hEqMdnin|W zlP|u=kKEv;ukUcmzy9jG$JFt=;+cPRpT3$uIhs20oxaZNYrRVk^T9v9@zFlI&_n&n zUoNa)>SJEK*B1|~dVID|U%2eYM<03cUhedzAHF+$a&g+Te8DX*?nU!R2YJxPGd%Ld zS31id{PJ%ep2K6#?StQ3!-t1F!sl6EIh8v(QSWK=)lZ(S{J|Rz@8y2ZBR$OPuAh64 z{&SA>S?$*c54ib;mp+~+9`EVpzJN;~d6F;pr1_8!`_;wAKHt5kn|zuBc$||b_lBIA z7x{&cZ*qZ;I`ZImUOs)dUoQAYZ~0XRU-t%_R(Zx3Zh6<2kIv!cyqw?#Hy(Ja2Or(} z>$_)vH^8Nj@BEb?{+ruh<=0=^#h^kw1Oqflunl zKV9&0&V0iQk9u(HKl#!@zSZTI@9qiu@r%E3;rA*3`Si1A_2K59yz1jwANaht4?gz+ z-PNZDzv$^4-1MS5z2)8S;$b}Sx$YSrd9fdU&(7;_zdCqY>5CV9blvrLf55H&bKl*k zR)6onqrUy>*ysN7p3nS~bMN2R*Ll91Pxlr-)z{xD*Z9HD7xn1DPtWSZ?L9yArT1O9 z?T5pA^MsG{@O|&R`@o#LH~hZIr}OSZ_1{)Ue|fv!iU{?eB>4$`j~V2 z>d#m6t&Z<_$^{+ei+_BjI~)h$lV5n4g^@aLJQ>=9Ay% z={g>sSI_vu%`bT6h!1$Xzu@2}9&#aHzQZAxd{fu^=@))}H~8f~!<(LRq95J(A&>T% zf8X(kOaAx|H@}?6mu^G-zy=EOca zuDce<(PcT-NBqd(kohBuymkIji3&vSAHFPwf4 z`9eqi7-RTFP`gDU2e}2n}`$#`|h1(p_QI1a1m5=f-FMLwR?<78W@9NNlANuLfAHLyX zwcnh`sr$w~qQ1HF3=e+v@rk zXI|Ck<4N_Lcg)`_$*xadp(S@&OLI@K^rS!-pSoY}IeqPks9H4bC<8 z(b2udPkG=Mf91=Z`%Xu^=%}6?!ATG2SaZ^qJqy4Iiy|+kY2+`ocwL`p{v1U!8|jF8DwBnM?Z6#i|dy&dVL2>95aW zIOHBKdEyV<%&S~Hb>2Sr6F=;CFYsCJ%`<=WcMq$lzJ2`TgYWVP|55ndNBpBZ9qhvk zZu#;Z4>_R=9CX%SZs}`3ocO9cahfOj!5eNm-Nf@pD}Lsj-g1Et9CE`CIoZ{NL;mC( z9=!QWKm5&)yy%OU{JU?T>+4zm)mIk}bHFb+{jSLoz2rz=`a6fey5EK9Jj>-t=lCi|bkGkj{p1EN_bf29Gc{X2sdb2Z#vV-T*1pH@9{Pt@WVkz z&+-GWocT^?df-oYI9|i;Sv|bflXtxMp}x6yp3Zbr$3FLvyqIq}{uwU*9rbL^e=3G7Z82skMetgx1+Z^zVp61JUtNG%`)I~1MjTH_)nI|~iS90YX zob>a%O+S2`f1ghL!-p?;$OHZKmFKCqeR2m6oaV#5$45E$ESGW$7rcDJo1bv;-AeDD z@s>~in3su@{=0LZhHmocex{rK`1{URy6JDeR`ty{AL$1FhxYMJJu5!^a$bFNKrcD= zj0Yb*n=|j}sE>U+eDrb;Sj`bW{FZ-y$|+uO(g!bm=?xFQa<49&@&m7WaJmQa)JG2a z#t*ALaPwJx-_0eQ`qBq~b@4Knc&H=4`teg8{qa`!ZGKH&_VWooxtCA%?1RtT(#brT zbNMj;^yU{oJs*ZsPUwa|y!104=1=bFB+qcr4IX{Y>q|#?+$(UvZ$99_pB`|!-+ou0 zpY*fuq3?4aJ}-UO*L>g)r#g7^TTVRlQSSLmC;hJKtKQ57{rDq4bdf*0(3S6VPT-Iu ze#s$R>dQ4g^0ULOFTd$+Kiu-FuKdu=zUd!5_<)~#gwK4TFWh{i165*Ma)>t_oQKyO^Bums z>eHLA(=Yt^AxH4gQ;t33M@R4JmS;Jjx4fR^i}Q5lgFf;4m<^X>0)%W{=7yW*xkN0xG2Yul%2l7Kd`P5%7@z9Si=I*fm z<{S=s(iL(Zan;(4blPll(%||$$<0~He!@cTH ze|o4(clzpY-@H%wEqA;6c&R5pa_Ii2*N@J@q3-lo-sD7X{7&;3Zn;p0j^>Ac_R$MY zxUBZU=RBU~7(e;vr`(xKxa9?Y_n7zYQM~zSuJEA`A6B~3*)tsU;IH%YZlxdo@~j^I zd_JnLbLN*W`uk3AJm_XW9sE9+YxwylIPkK*B&+0$+-Tpae@@j>H-d4KNA0NKMXP>;#2@ihA1$=bE`+4x9%b(uUSzU8N zPv_-ZF6Cd|;PV|1_W)h#jxW6C(VWodKAfJ-xg5$19Q=_F@8>;gzUg;fpWTW-d~o2w zH+sQ=@7sYJFLmv6-_jS3siVGl`EI`CE}Hj_VbG_r}d?$+{rV4yf;_s;_ZH*qdAou&+72ed-tHa@Hr1RT=vsVUC;F3 zuUt8=kNc2rU(y3U^T#KA)uFTRA3ELzT=4({PK?n|7PC!#wR%NkRSNz36I?4=^mn+`ufWqeEOIV zc>Qk4gLCd7zR899c)&+5b>-GQhL8IIeye*HPx(${%7o%g#! zFFwkX-25&d^mV_{hab+VZ}t79I`r`@kMQ9$@z48&pLEg(4?5Z>Pk7T`Kj&6B-?h?5 z4xHyVeXabIt6d%a>1v&I>BvWV(H$S(;kVCwImc6fI?@YX`pdQVSK)`#dH&MbTswz1 z{Z@6(Tm9Vzul%YDkGYfwIfTnO{pHf{jX76`e&)w2kM0f6@_8NZ-70r@*pCn0%{xAx z^>xp}&;PgeagOfh5l?#2!80Cm4Ify>mx5#IOTwj`q2BX^SjkE zUE%j^AOGnC@2ZY-{$AGK{YGbe^i@wT=pm>0x^MWcuY5Ugp5@Vg_Xr)V`pBC)bd?i2 z$`8Kk;Aw>qPv_;_y``Rhe58x>r|E1S?sa0J#;qg0VpB$N#E8Y3#_YV&B zs|j-8=BAGx_ryKE51P9}hYl^qy|=ryu;&PkD1c*{?pF`oqItbHT?q z;ouwI>d28g`g=C_p7{rtXMWw+Z?`(nZ{OkIm)y`3Uhki(hmRc7)!#4lpZN5-s1E(i zCmqzI_n-FDOMmC+ET8i3nJ)P9$=u6{et5{C+?gMGs%t*v74MgD(+>|k>G7d`&e5Mw zaQa>Ktd6|M0iQh6nXc|7I?{um@X!H&zQUod`LSPr`{j1UlYZ_kKEfe)eD!+`hq>gl zdq%G4Bk%TGEYsc->DOyiz9&^FB9Y6KevC<7szVX#QbH^vT!mEyXSBDPt z$J@O||A%n;ju+hC%fG&I0w+K4kq7n6D_nG>E8XN@-sD!@6<+)3GjW=?-F|%4HK%y+ zPhG2g`MuJ|dA#WVQa^e7(zAVVsn6HH1LsB0bktv8xYeaUUHOU^o%LJQcklAWy&z}$ z=nDs2`dwE~-t^hM$6H>^js8#VlNbHrrw9Gr7j&0byxm*o>8|>Cz#-S_<6)ov_PdYa zKST|JuzxuvJ~`t0`8kDqi>7jNs#EuHx8yS$k< zeCg{MPJPWOTywvCs*9IKxqo(B0g~A6@9g zS3K3F2cO|^UXJ9({V?ydFX5vXAL$4$z4gaeA9d*?A9SZH9PShK>B0XUu7{zYI`_T* z+RA752b^%P_Q|sxOx$qrU#`5D6FAL3zxb?={`Pyu-+MlqA3pMdp7JWc^pPXH;Fbw2)gCAf0eYf(3KKynLZ+TLeF7l4A`_*}TW zu5@%C;-ilI@CAO~;c?%}3qSPbv+w#&JmzQev)|m9V?M|`zUsIa@w5Lf{&X;}zF+iR zK4x8h;`gEb@(8a!{5@?Se{OrGm%Ll`rSo(9k`t8YJ@=xbi+?jBJWfBfjBpB&0R9lxZL_v+}+4>;_ni(K-L&U7-5aMR2D(9!S5 zth>TTPkhXmxu%=_p7F+)&bzwu&Obc$;Sbz+c&`s0zSG6LSbx;lIeC)@_a|QJ!sVWm z2l)NngNHtN)4_cpCwRz{dh(zTUFFR^Chu_5?KPfsfJ?sMfy8UivssPkPv|zxlZh2VdyOUp(-pr~P=C13ciyTRnK3 zlPmA7`pJ{rO+WCqnk#(W@8*2Irw876z$Hiex*yavkLr6?7Y}~;dqG`3=x2p)sOzpJNL2g z=FEP2(+y6)cX08+c{rVehrhn->pZ;Xg--UtZ9jbQ^3Q56;O3`i_m+Ng4zKTUT&ELW zazj^nl0UfdhTpTC!{v8ao_v>A&pRCY&`o_g;*XrFBhT>SjTb)hMGyY2`om)`=wm-# z_R;;R^Yn2J&fk6KtG?#`bKmt*N$LS$Y_{pIhsdwLgJlrer z%M;#mq90x9;rXVzzgp$Qd3t!Z4?elZlWzEV*3Wsqst*?*=!&=B6aLF7z2N50-}vaS z-&ODB#@v1FJ)G{j$z$TTk00gNx@x>Ef`X6?lj`WiwefS5j z`@(%Ck9e5ZU46d!Zsj9C^oP^4d8Gp!RygN5{N>Sk`}xg(b4gG5<;!=te}abK|TBZUh$dleBp!hbTxW3x2rZF_-edH{bE2E1q;v7a#rT;C|+VdkA0q z;g%QAa%E2cq`SKC@Dnb2@Do1w1l{nY1HbTs18(^I{(JvDT)`A32L-*wOG*eAdE@fk1Abc64-dghy-?g_cnm!EzY-7EU@jZSjLH~zq(KR)gqefaOa zRZi)`NBi}aYr4=2fAe>n4(65)d~=`RIdgT_dH0=r#W{L8)L5^1S_y?c5?g_r( z4Hw+@d$#YY`sRlZ<`924)b(C}I)APnJap%mT<`Wdho9AVI;rD5-Q-U`t#Sn~o^m38 z=7BHzn|F2OQoi7jb9ML*H$T;pKl;d@eQ?P=+~#KPcTRq%FL=3s=#S4_;nL3>&{00< z4lh0U>34@7@WHRIdg|kYKOgAqel&mPSiaRWKXOh7{GR^%_s=}wxq9#3S64stx7&vg zU-2|QbW-=ObLzm02i^EYU%2g)3;OU2uIu`^AAOf^ygkb`U(6SL&eM@k`0Gn=_4q3P z>e8QX`uH8x4^R8_ryqUcc8~H?9ruF$@Y9=b&hvZX!N++%%ccDD%|7>zeeOy4=)-sW z+#~dK-{K<|^n}-bzR=OifB3wYo0)shbb_BR?j63EAAWhpYvzF7=A19)Mb7Ap*PC+g zy?aAny70++e$bEa@2kf@^Fc4V^2Pl|KYGXsUiQ(4e)NEQ)!&@s=RE)EO-H`-$3DK% zVScBJ`7<~8$eB9u^9c?);+yw$G@taLH{71_aj)U6pL|-?h1YvJnkPKr($9DLz>g3A zKAz~ zs*A@%xwg;h_sJaCryrlx@t!VtO&`5i*E;hiXLvhDH~sbH5B~7e&v*BObM(f~yt_{h z(}&*lgKy5?Yx~^~Gk<)+OFj3P{_a&c_y<27(H}^FtlKbM$ntx=-9Qd@>L4 z`2Ho{>hOVnyYKRK(=-0+%eOk}^WVMVUa(Ic_XPjxPcL&K5BxXB&*7p!{QA;Ge)vXL zzS0B!iSKuP?3W8Z!4DU_>Nrmay1_l~FFMef{wo~v4G%u@EMIiM8!r9%%Ll&Ef7g#L z=ER)pBbRu~qelo^$*%k95MzcmBhPKRtY>7yanD(iu+Y@HKxI?UO?~xgVbUt`ENQ0Iz-exdOUP@W78g?i+f_pB$;fPrRMC%85F7ImgEpKl9+eaDS=CH+AKT zZ|+%q=%Swaq$geE%e>MDPPvm4_2iR2eCDrx>f(bhoP4v-dp!B9uJ?3xulpUx&%EOU zpL^Rm_??$?@97H{Km0z*v2*Sh`uR?O`7vL7gioIIg+qV2{Z(%0LsvTEM+fKR$a%iP zAs2LpTOT;g8Q$_nNBlpAQ$D}`b5JtgnX;fD_&=ps*a;ivmYKmOy57k$*{2VUyn zs~*1k(G@R!=tU2?<}=*-tAn@vd2gi;9rUFSyyk{ZZ}I~#y3;|w+xE$~zH)>=-0lH$ zEUuAi=3JhgSI;^4;o!4*rjt2PhyQ%zgMIumm)_$g z7gK-dR=lhaJ?jTAzv;f)$2WZOq`Nti!^h6yC;#$b{^SH6zVlZO^;ZY(U-ePPJi+a~ zd)|t#eCW$Bb>#pK_~BE}Gd<))Zq<`>deL#tkzB*$yBu2SjR$|^1TOpNVIQC6A5S^u zlN_mIzntoix4wMkm%i}Jt$S2{;gCn)^?{q;bf&Ai?kRPBzbQ9#h7<4AcR4xjng8(E zr@lH?f2a6;!dpGKfmFZ}UJ8IN;J>efI?a`NJ1_t3y}%%>MLqUOt@1SMJ@9 z=8O;YfsZbDsAs=id;a|2zkhhiC;$1ySN-wRm#*fQA9%?%J?QHmcHhl&_Ty=u-7E0H zYd>82n?tzqFo){$gYN2hZyx;K;A@|}&>zpcbXEs`INW3M=$zb`S2?qvu6U?RPrlM= z`Yp%ynH&7giGBFNaTqVTv(m*mdRTp@r~JTiSzYJp?qch+1mp8oR8h^a;q_b6S-~S)ob&{3E5`mq*)2Oe^yKRx7w4pT?In>YONq{~*n)#{vQecey;DTnIQ%Y6fv zeelx%x_;izzVuR0U$~v48@=eq7w`F?4qxfE4gT_O)mQ$%wx7>@wa)v?{cB##Gylz> zxuqZe{Bz&QnY{9cU-r{mJwBNu=gos0n?pSHh2OdTba-x+SGn*We?GvAuew(C>102B z<;pzZiyyx5@Jar?cdyV>KH#FCzVOR|-v#wOyC?9FL(lFH`pLgs%O(HegiG%Ev(lf= z^l+Y^>ey!vrXJ28RQIgavpmSrRo^}1$3OMt9Z%=*!JCir!+&$V)ej%@7pM0J;N#I{FY1g;MP|@#whU@=afQS?Q$?KgOE9h~=`zWk6wy1?z;eXFkgx*zcL9v=6YdUT#EeVxPKe3}P3$d^3Ae;q#c z;pO+wzN-{I+{Ct`E0)QlPfyOxBBKaV_>xG(7CJKyNTSM$IhdeM*m{tn=;-zmP) zk8b>j7e4ck*A{>KoTr0aIfn;4^phvN)w`^|e)N}HeyOV;9ps8%e6$~by70xSJ{|dC zp3Eg3%m@5(;l29<|CwvJ_#qEdfA^@>KD_B9hwc^mu^-Nr&c2%$`tV1t;BlXMhF^ca zd*+Ay@q?ef!zb7Lfy1-B$%+2z(O0hE^xpaDult;@=jlT)_ZPf$gNttb_l&psq7PiY z!w0uIc=`?xoaTh@e01J-c;NMShI(@J5^p^5wok6<$2aps7dgR?z8}@MPfp;$A0BgO zF1ep_9Dvn-1!lKX~xtn>oghe&&U*`neDJf|q=G z&+pk!?q1`kk8|qF1Du}m$JYwCXMWO0p5@Vgxcy%6Reqnsi3c3?K z-&5!0kgn#A4*HuH=lS9Ops%^{9u7WO)!hjPKjGMVFK_Ne?>*~lpS;osA3n%E|Kwji z^{seY`6dUu;k43c=F(j9!76v^(gzRt%!NLD#ZNyx^s`_7^pP{apZ2LMkMd=H=|Dd@ zaL?dle&I1E@*rR4?=Bt9n>pqK99Deg2rqhA`HrW&!=ny7{4+=J$qhd8hPQrrz+=C@ zE1vR6cYNutj=7KnxuA>rf!F;aFXoZ2_w|R{KKZZ@emdc2zq;m+Z*Z;p&`&>e11DYh zAYXj2PoBP4SMK1oKJ{I`=?D)!)%TvR-tz-b`}CK8{ME(Je*Dy-|MuzMKYr7X-tf>( zj_5D1=hdN``Ey=9=j6mWa{&jR;qkk7Ss&-<4If?P)ZDGkZLOZ+gPY#;g9C26bf``?9INby0kl*sS)d#-Ao}HIRI>-^8aHyxgdb`!*J6@joMh`ib+w0EjyLyI` z?tJw-2bVrp`{|;d6)$|`h`zq_RgUp=U$|f3bPhiAZ{_QG{M3Qly{0Zd@qusayguIJ zLD!G=;c4|=KRMv5@Al*6{*V*j;ir!rtE-Q>b`SV2&vf+tE&OoNZ|bJsPW!i3_4!Db zd7tQmkA8CNJ6-UF$9}rVvp#YwuXMBzK04`R9{8`0dBueuukY?xId{+6@80m9pLnT9fAhy@`pMg4e)HE{z%6(5@Lqj+Q3o#PeCNliAN_86 z{?#f+bnrWT-1pV0zkcfbdjMa*7v}K3^ZZhG>%E-FAAKjkllIeheup1Ec<|+;{^mk{ z3=5fIo7sAOBzK52t$#FF5rxhtmgm>A*Mr<=Q;K`DNtTymnM{hi)&-$Aie)3-(IOsQZFzzbsuc$?cU|Hd2m1D z>m0o1%6WRi5080MUk=Qh`h4Zj_wdna@|RaQ)zcRbIa3F2IfIvPa;q*Jo^QfMPj%!C zPrUgmkWB*!!theNe8;fy^j_4eaQ zA9Dt;K6ukXuFdaRb=)U>;kSDjfBISBrkh;y(R}F3XFAdUC>;3G^`iGvclzT+A9JV= z{B+fqUgpeqdiah9pXAm4pW)M2J$>*|M}2vvH=gRy3r~5bi}{e-gK)qjUt90pGxWxT zuY5E2-ovk+Jjo&d;emtxtN!vPH&*rG#7`damJdGY1Ft!7p5Af;4?W?34WD{&!L5#a zRnFkyBYoAC1NpO$U*ExIOEq58m+D?;i5(UU2`wAusmv zTVCM&oZj|Z>G{xibAmrU&U;Ts`Ndxz+)H?vFZaLv;ti)cktclUH}~NUzg)`^9lpj- zp5*1E_n!52ZtJ^MzT8vh1ur=0!Z$qmXCED`_~>J`pYL?$13Y+mkFPq;@s-~At@!$G z?&*Hfce&Na?*SdmJ$>=!j~vlOKIjIo+#S?c4&cL^E>=F$jjrC)VdC(N-%)+}?4HDKlSNPZ}rvjY=uXC_k+6jd8QBk`l!SA`MU_8 z-vjxxs!w-@%bdysAMsGvInQ+9qdD`euJ>@N%lG~G(APOR@jGCZ3w7b)10T(S`^PhV z@Q2qk-{r`Dy7>EJh1;CcZ|Vf^ar^n;{;|SI7k%M&kI28eaO=-+_m_TF_3gu#KU+B6 zC-m`NUA*}wk8pcWNB0NZa;~p)tN!%R@3i;kdADbE%@5rAtLt9!{HybH!PDH(MXvOR z+x+`I;ER3c1CEpWnfJZ%EVuB_yg4Ta<_1o_stdRN>f%jby5Ye`JhyP_`_{AhlXv)> z=PNz!gUjk3ysoai^9wI}!>zvebmu2N^e`v#xawza=;NO89X{valRxvzU%1_K>bp1K z+3K&KdyMXKF8@}3TIq>OO~1NixE4y^X$Eyw(V8&2o+ zGr#K4nI8Dd2mj<=KRnGnU(KC*{Nx9p<;naV4&cz z&|mJ%qkQ1QA39sr(a$qp=2Shax)<@so9^-ipZ?zC{n+`lR=G0QzN=3+`EcLxQC{Hi z-8{ohN4T8#Y(D5I2XwK*qwYKhkNWV?ZR){q_4z_a-{D+CH#*9>eddZT&z*x$9?Ux* zyoXbLd4tP5;YA0l{NrVw%ObWR`N^?^@+KENk` z?g2W`dB48=ro+~Id6Wx!UY<9zQLmp+*bVDJNDC29{4OTt3JoA@VFo3aO=C= z$O%2&$M(;8zUaJt&hrs2zh83ezNWW4oK#Q#<-jvt)YC_<@l@A)`NbD5{rE=T>u})5 z2k-gFH+|(zuJrvj>dB3K_}##dj?T#o9rz=+@ZhJued^Ffe)00%IlA&yeK~g?PC1lQ zy7ABa@J(NT7tje$b1rv(($9H0lqcumr@ubxx*zCBf2%y`=bn)Z^JS$soc8O3w_M00 z9^TWNKlWMOANtat4(4a2lU(w_svmvq+v(igCl_$h0UrL}cV1rL!k^Fl($6_LHJ9qb ztDe4AzWaU{4taD>UiF^tp7p`gd;8?V{kW=QUOmI_9)VBJ)blLg=7Vnf(1l*JE}hi1 z(t}^l;|I6zTYTsxNBF4cUcyU%xrdkE_VG_{-Jk9Wbv)CX9&*D+c~zI5_VaT-<6+L^ zMc(OiJp84Pc{X=+b+7R4uJi5>yy<7fbL!@te3*at3LTuM^Gd6 zpsV+u<-&>=T=vTceXMkpD}L)MhkWOk`LfScdNC=iM{%>lsdZnHPF))y2a(b?~rX&g2jt``|gPt~#Fi z{-^KsR*znEQXf8g;02d+^y8Dd`s1gb+|!rt`uc9p>4*p4)cp}Jecj84y_YjO!mA%$ zE)i)*S_h4+{z2wN8zF4>KR|>sg+KlAO}Q+3U`{q(1|zMkD1zdNt4 zdxpMrp(Ee@?x{yteChYC`tqai>OJ4pb3fw+553$^{C%j7bMRgEo-c5zE01)Ahko(` zAKdnPFOT#$pWe?r$+O=b`{*SH-m7Q6@G>V>KKk90A2|5~C%v5KKOgj$W4Po94tns1 zPV(nIan5)1gdcqRs>e^dZTSkP`RAK`a)Q5e?g#bh=DnQr4Q_trbbXc>6Bb=F4~arjK>znQ!JCPkqgcIkQhcIOr%xXW_)(KDnaJ;nzo9`JVR`{?5sj zeRAOb#>00y!-tptp6!D7!*S=mH)s5T zQ$IO1*PiX0bG}!7`|yK%>pLIuG& z>Fm8c@ZTKU52tx@pYYLl^{&&!3jg$k5@=HGXO~);~{_ddjbW1xA71n| zH+Y&?I_k@B=jmXd@9NOse)_1l6F+*x;~tkMJgw$V?pJlTR(1JI54obN{p#tft~_~9 zNBm}e_lkMI(>Xctj4!{<1$=zx4<5eD51r%?e)Y{cpWuYY9If=j*S+Sx!}p|p{O0pb z@9C@_9n_Ue_l+FE;k;aYuC6-fi_dubJ+#j`_uH%|Pv(ODbfLRBr@y-N_4h2kU&E{K z)Z6^q5AWnH7jhtX@=9;G?4u8S^5Q%l=mnqt{63EdpXoz4IQU?ndUF0yoyk)k)sqXj z<(ohB&}Xae|E=bNpL8$}aPb!p{+MGql?VIakbiTBw|kv0a)PJ4)7yUe;iG$q4$je8 z9^r%6cl@09-o0$jB|@W@ujnz(#tvb2;H2A%Ur_+2jAdy9xk}~NDp=K zfXAHTp^tpS$sf7o3;peP&&e_TzRNuw;Pu^kIdL8jJmI0+b@KqP9Lhgmpc8^PhNYk z@AsbZkPkfNOfK}12hVWoFYlh|z(2m2Gkv^=e}#{)<_bP|<%KTx!A(Ct;jIrH-52Vb zBYCAGUH!hezvSEfg1`OdV(y0nUOA+je9M=5a9Q!=FJI-$cevlvSKjQ`hfco3XKvN8 z^4;H~&eKC~_@yqLtoYE2-@cmzc+55ZeV0o-^@Rgo`oN7Jo$beCr5nBQhl9WB@mD># z;euDb@VKv!x#gez=7KKnDZfv0gP%M*Z=d@Le$VnpH|OaiC-k5LU+KRS5ASEb^`Q^_ z%p*PA*X|APFW>x?NBrnaSF7{( zInO`%?b8<@efVMZ-g))qoDS|w{Nzwx;pB_DatN;+($hK5^!<|l^5l0%-qpnu4!Hhy zUOzhVOFr;YPaf%J&bI2o!EZWx#uIMu)y0dh>YH;s9_nZQ@KJ|f&d~)C_i)t1A3plREidMXAMp9zG8YqNanGx#zB+Tix^z@u|CJB;@|ix)(T|_bsZS4oKfwd1oblPciI2R) zWk0<7-h|h^s2{v?p`Lq$ANuies~-RK#}{7T?Uy_Eq+EG+|H+4WF{gBfM<4v~HTUuW zH{I#1E*d7?Al`2>f&;Nw}&_^rR(@DV@0Sm|Qk=;}Vh zZ~84){GPt@fxhx%&fvtKzVLYO**SITPiH#8p`Tp4C(JGUp5<5m=+8HEXFuKLTMqH% zhdS!ZpE`KJ$1i%*7hb;d2M+z@%Q?E*kB7ec(Uo52!)gxYRu1u2Z~OG`pS;mefA^TY z!F$v>{U3X_&v!VtzQaRjb779?de?sW)^m0+L?>bnQ=$6H?LM1OVp2M7P{!=LYbl5_J$ zFZkfWpMIX@iSB&hE1l>{cRHCry2zP6R{Z4$kGFK&ZRI;(=QBO=riZ|j)bM&^4FV5@dyYu+)!#zQNxalcJ zaOh(nKC?a@?cEj;E^ANb+>lOFKdFJJIG=e_*EbzGg*svo}2>7&2Zet9)N z?hpR@?tb8-xrfJG(P8dahktTO5B=5u7BBngB**4PKlzs*b+_usxw*k#eg5vXA0GSY zroZ1?xxtH1f2(7koTx`H_c7h=cQ5KIZ}9%CK3(*8e&WQ-iXR;E^1ZtBoq06R^1-je z&iPK4hu-s3Upd8Z>W?qI_^K|w_(>Q1PwFdo`r}Ezsk3`Qe(kqUUGoPQoz$f>Jn}#f z^}UzlyKwV`zVajIzVpeP`(31~`P7F`Ryy*{dH&4$^v2UFhw7+1&%00Q!nYM~&!;_G z;gV~<>O&{`(ATry8SnKsuk^r&Pv#R3KEtV=`vp#ObP*4EdGC2^l`H4e z>24n$a%)cM1{eKSIMkIJIOT^Aav`U1>BC>o^ubFV_}tUxpU!e-9-X(3UU;czg_9mu zxE|w;Kiu%j@z%ciUf$>?Uw#+qj31r!*{iM`IcLuGl^=YZgGV3x{0^+@>n~?k_2pZA z-^~>t)V2Rh_2p0>x#b&P@ap3|KjD9^E`QYL$E@#Oms9!WGoE}h?|8`%zWS_i&|9wP z&2OuD!4oe1e7{NR=nZ#Y%b-1PVNCZ!Ec>& zYac)KfzR(09(dCgFLlk69L@aDoo?=Ly6Vqge$h!@%%wTT-*>pxk$<_i^20M;a$v=S z-p=U@kKZvmm=8R?zy9>^AN}d4zx&j8{?HrGhw8vXFMZ|6KKXQC=wpQsAHLIBzW8g- z@SziY&ch9-d|8j;A=h+(bLyb3`+7d(X)gUfz|Ti~>9fKipZs)x!Ee95a$@DD{$33EuK{&^djt zMjbhpFXv_-KETO0e&A#E9uK<7uk-F5{P+lu?|9%TU;Lx5y!yTIT~6#fP6znZr#GG4 zm+;b^|9`5ZKArKA54l!XUg&|B`h3-&et4<7)!%)h<{rflj^UZ#^;o-mc^!QRex!@Pw@rIMWe)sqxKXUn_ zy0icL=qFEb^HqNIan5`5jhB1d_pLs7@(o}0%m+Q`=vjUH`D7p5d-XGabab!6G4Bnz zqc6SWg!|1V&p!T|OaADG2Y>OWr|)>v5kI>5t`EQI{V@2sAJo~#cl^y0o_sS;-oq*H zc*`Na@Zg8HIn|Fp>UmEeK3nmy4<7aTZ+`gXyByG0UAoCVeVv>9@PONVxyRin-pi+c z=8Asy(Os_iXFl}v9d7u{v3nIxxp7b6C8z4bZQn(C;iozDtdBbQ+jrD?xxj-j>cdS3 zy!gm>{&?@1uJn^Debo0Jf4Z1+_2{6F^&>v|S=Im2clG3y4(k4BpBy?*H~L!TK;E~` zn_oV-ADvU5FMQ&+e5h+);geH3(ZPJmoqoQ*h3~0VKe=-M;wuNv!K?48j_0$U@rKjN zCq7u|Wxn+@pO4k$s}){6`6Vyz72oya2mW}{8z0Z|s`upy84Q@Ei zi}_le=Zn11dF#7N&bLPQ*b*+5n3q15yA1?f_tFMk{ z_Y8g1!B_5YJI{A{bPf)_Ztcg@IrzPoXL{?;KlcYd-kWE0fRB3gE z$RB?4f)D=gHGTHdfqwF4AADEsgWEH{@Vd{OlTW$fw;c0NUFYSO-d26wXMCm;pYVc{ zPk7VYcY5g$mt0us?VSDYPxswhdg;fXt@r$(pYP7&tB+?n^Q_*l>Y5k%^=zN~dG8)n z7hXBS4_^1^bN$?N`10NTz*qOV`|zam-oxwO;I9>a`KPyf&dULQ_VW`?e#^Ua_`xqn z_^K-hc=!&ddD34_>0y5PXy5mAkqf-=g->4Sub+8$9xgoXgVT3&V=nMEH~i<1?{r$> z<|m!x$bLDaAOG->AO5&M=mw9R(qCVC(G&0E@bTGu`}KiKUhFp~?k(r=Ijp`q_S+}N zzI%^1efVLu&;9dWAG-5}Zu7o?YwH~U;N$zu4IR9{?Yw&&Ug!BJ=g!OPLFeTiFFwH! zuN7$Q%qaR)Iyh{iC?bDCGaLxIrhq;nNI3KF7ADz5+-aQ~k_Uk8a z=1QLQHCK4h6Mp&NgY$5F38x&Yr=Q%zFJE$Cm3#X0PfptLJ{fkKT0R zn|U%1zSEnY^iY=`>hpuYbTAM0nM=9GSMJ>lc*5l#qc{E4an35|aG8Jeu=1Ji{HLFD z{L^0@=gp0N>N`(2b>!Q;%7gmw)7Sk=clGt9FTLP!j!y7c=`BCa+bd-NO@W*?3*I#{opUQ(ieuwnq8{GQZ?>t@UV1CVm z-#>cd=l)O^KlSjCckk6VUpMi92TysDGko|aH&(vbC&%sw{NR)a^?lc0Jv`x+3%vP5 zFZYF<>My7Kb6$Vv%^iI5e4S48Ts`9pKYiVw=FNR!UgceVIW)JvtA`JM{Gpdz>Fc}m z_)h%h2Y-6QJMqxVJtRNy$tgT?NC&vSrk}p*(ZM|72amk*hn{%piwED~mP`3k-+8|u z{KOx=6>jI`kB|DxtMBUFciwl;aQ*4K_vTHGJ$< z`nX4Ymq-2KgdcBp=wd&7ata5%<=%d}!+9G%b>V}TUUEuzd3Ha*OK-T;anG0+dBls3 z`s=5Udh);@e0<02e)y>mJifc8(EIiJ$5@Zyw~xdHGX^F8&_bs&Dn4 z-f{@999Ye<+`{46s-F48)7;aQfAn?^4)5j4JkopS&@)~5Ay;@<<&j>_(c8Splf2-m zKK3UXQd7~G7;NdI3uO3`-Emv~k z+;M&E+vyoj`{V*oy2^u<&iJ`U?Z*!e_k-_zg@^C_b?>-8X={keWwq+bT=39`5nPmKe+LM%XjjeCbCQIkb;Y_Uj|xAN8e^^IPxXrL+Anedi0^GHxshwS$%Q$h2V8Q_Px$b+;w%5J z@pLcvyUMeD>hVY4^UmYzS#IE^i+XgCD>?Se2ha49H}md(rk_0M&mVrPD<}HWhmOwE z*?D>8C%xgr*XsAkyqZ6F`RhKATRO=BKkWBjp7As{aLSW@bTbcrAMJzFJi@OJUHD?Z ze9*;t{brq~a)T#c^2Y~r<-Gafi~G@iU?2YcrXT!t=9}m1a5*QZ`pCV!%QgJ^^G7{; zY}HrCIsWm5ZgPRQobppWxq^$1?iX{3r#ke&Pag1xn@{FXAGr8Qcl^znyqF_?c(%`Z z{N-ye-Q?Rnq%Yi_)rZ5J^NU{Q7eCMD!Rp*=IOs+nxaki6PW$y!kAC>511H?}zgLG2 za)Phi@tL1n=jd;RPak^nU2gTEFMQ^L9(d}9ubja{XFTBWT^{62J@c-=zI3A_oP1dE z_q$*o>f9BRXc`#V7X%(4CS;;+8Gn@|4v&R=s(SNg%Jj-2q5?)2cJK5)~~e!RAH zGcR;oy@#7_bapSy_xzC;`SEriTfBopH4_(YZzUsoEFTd1<3qSkKkzDAfzTXkNw|ID#Upd2< ze&!7?=hcTpA9(pK2j*8@_ZMDxc&{EE?DH(gaO>-ykymx-hHaEhA&@S(Gu;-#K@LcTw$EC0UZXEn#_nqU0QBi`_s8~wKWspGx5kW0R< z_QOv{JpCR|oPJ;EYcAB2OFH65XStvcUHF7Q{q?s`e|gi_+&XWcJmc?oa?YiD7Y_UI zgBKs~)q%tBJAYO?@HVfLk8|=n_w$`@=3SoDGsm9! zMGv{9(^>fBM&9&O$6V6K9LOmgzRMYX=y+5=_2Dre@bh)fseI`txALXG?|d?!bmO=D z!HKVWc+<)AZ9L2sUhtVKzdwF==_Y@k&51s8!WVt$N+0Lc!N)V4@`%6rl@I-#r>lN+ zHGll1(@GEhKA0nQ_+u{Y$47nrq+bDw#}M_qFUzdG&%e!I`qrvtz6{24Fj<&3Vr zn>*j>0EZlU=C8cKLpOfG$AA8+&jbu;iM?XIDh5vLnC;X5@_m^kq;dI_Jo#>&z6+ZWfx$^fD-um)U zF7TrNG={)^WwZdelP9E2Y=uBVg6Qit@_HDd7~e`p5@82IpK%?{PkVVt?kB7;`L8}5)rD6* z-{JFji9Yl&7dQ3woi6rywjUljFu&?}=GS%g=>iYD{CAF@a^ya9PHwz^uD*Ntpl9dh z(>=l$bMC#q@T%i?1zvjK4+nj$?ghBib$_VmzH*+6|5>cAlfe0C4H7vP4|d3w12%@v=#r?WnAo;Ek~;y&UB-f+qRy--{MO@ zdEqBLty}x;GZ*&LSq}Jv2OU>+^rt6&aC+}NKk0)fzaFbg=a-)SF6gfh-{7Gu9qDQ= zf!AWOz%qJiDCm;M!7a#dB zpH{imUthZNlfHDqhc0mNTmIylkN9ly^&T%g=+1BRh?jY_4?lSHg&Quv|NN6f`E@Vg z1D}58iLUru$LF*ae|Yt$CtmWyPr0BoTzrN1tUi3C1H9_VKi>N50~a3n$uB(4L0 zqx#8{b1R(A$(4JZ-tHql zzN-U2ALt?X<_|7--B)n)-FrEwr+sn>4%p{F|b^MQ{1cu#-0;D`IT z@AS|Q9``Dr>plMb#g9(#IR86b=1qV2)suhcy*E#*I`;Wpbq~qwdHdj# zbH37vUnlLCEBo=$&s^yPr}^U7UG>yiJ?p#mOrOi1^;cIeSKmF;lfQ7%7Y=^IJ#*#$ zkZXC61Nzg=vz+P+zd3-iXy?5U8YwyjGd&WNR`GAMH;fMZk z(`Qv5Ub%AKy&~7}_^uBB)Zv>sx8FS>_wF@(`HCN(=&X)apSO6>2M+qn2c6`>cXR1H zznzl{daCc9aqoIBKcB-zXZ-kPUgg{Q`_9P;oLlebiobpOz-K=Bg&&-F@{!N(4|5|Q zat1$~^wr;7m}~jtxBJ$8g}?Xu!owf;2ww64hjaQ_;gB!B$*I2bKtJcK<^f;(SN`yi z4)D{L-twfbbMWxlckkhsf9L3JZp;~-;B@{uy!4bGI`f$h`pBF2>X;MHe0C4hL*C5? zf9L`~-u%?xemLQ_4?cR+MLoLe&v$cSr60ZIosOR2!PhxCflE%W)7`zMKHT(i|N324 zA0PV5q4~65UHsst7aa8VT^;wc`|>W_`Z=$kd6IX2N}iPIfR?v=FJ@N4Iby{rLVd-pZ@)WmyYx@ zk909d^q?Euf2yZ1|KO$v-Sm+kdc$iqFZ!ytTR-*WZl2>Cz2x3`ddewXF{~zwqO~zdPhY9jl!339ifP%e(Ifz2}!_`O_CJzeDQjYo*)Q z!AGw3rJsK0&OMK(XFBj--uyni)ejEyram9!+T5IXPF+0d&v!nnV;{feZL6NS&`&*j z!l(b2&e3P}%ul+jOFuf(fxqUOPU?D=A3W$x2fXO%zJW`Q)sR{IR+} z@Rdt>G%s6q<~>1QIPrj&fApghJaXnffI}bWox_VSzT;#5=#3v;oReQV^MgP3<0UWZ zIcIL@#ZP_Y6fgH1oOn9VNBHQdAHMv@Th5%5V}5=c{;BI8z|$&MaPrB$>b-oa1D84D z1OMn?h2Jy%)uX2z(ueNuMR|fBF86`&{7{#lzPo?q*y`^b_Xxb6Pt%wFc-yBR9ry*0 zx#tU?;Zj!}>#zF4t*<mQvH)wyx?+DIynb7UHM|4XZ7vFTfX#_bG+yUhuqPh&Q?CaKl2O+{Ju|JxA?jT&7=MN zp^JIM&;2Oh?l=702lnFyw|vmgT+xBQ_PZzc!tI%kp4G$8`PDh~J>$tXt-{nMKxjw2c{`kQOxB2#7ec$OyCpp2#T*-(0UDh9e_Y3{D zzQaXtedW-6*-r=cta2eI_?s*G+DB*l_>R9^!J+R{xUKx7Bi{UwZ#c}2KJ?-vecT)R z%MJbYJq(XkKP!It$_>5YGVgM|s;fVLy*KynC%VfYo%ss~Ty((4d41%@oZxS6?SltS zx%3?#dgIUEnG@&Xqbr}}#514Z!&_gv-=rr!)Hip0m*?~LPkrS}9{Hxe9MRSM@EKnD zq#vGE`q3LsD}K(?)9UYC&v3zM&go^Pzy5McFZyihqpsDyzkOGa4sxq5e)c&>A9>Z! zd3y4VuXN#$zW$D}@|Ou0K5HPCvZxfKNZqbe3zl>87s!`kGt) zoujKTd~z?GRL30Bcl91V zt8?nnjo$Qv%X{|^UwwC9`0n?}3cve=e)N70=S{0~e87t??qhm-FHgSX=RUyytv>v7 zU%|2ZP6s)FUvA)Z-fGU}VEW}8z4TL8Ug%11e0|rC5A?(r{?GA|H+|%jUiy!a*VcP^giAmB;K$2+%OxG*fX{omkyCk*GyPY1%$Z!`W8Ti&M<3_qOn*AM zf920P`_zM1AAaF`RA0Q|lVk7cr!HOPMSXnVtBWUGa!NPv-6!y=51;*VOc!~BS8m}| zM^4~3S8)5ipu1=K@|DhT=?jl~aG4)^{7x78JBK&D@Wn@6`pTO==7hfLnG^f)lY94) z-y{0KX&*hzA0OnyedF&NefeO{@!>Z;&6!-!TufZ<33c)1hdGyLeemVqPJVcAuH}U; zbjL>@_qjgs(`BnZzW6(5e&E2T*)@A1IXJXqz! zyt#L*>cgd;{L3$0o#Qiqz&Uf|UG-vo*;j(^>x4!u4qmKOEwO>DatAih% z&9z+7cdL$k*e|!9?Uxfc^ubr21y816W(-y1J0=%D#S;E!iK=%9|ic+n9r@2}&fpE~x*nVd}D=tmbk ze^l3Zb^U($djdcC)ra1E)tAm^)u*@B?+~BucVFX8A3Ud?csnoObmXIasQ)uu_L)cD z-~0a3`rHbKXZ!i{yM1&qf96UbI?;j7>buY2_MM*QmY?>kufIO-Yv<`}Kfd(fx4g-T zKKiN;r#|1(LGI-pKl|J>d_L%$l|KA}Uyk@b`^d9w$4j1%>Q5Kv+)L&jZs+0g z-TeHYj{Jd7e)zD3!*~1Tj!))JPR%Dh`3xU^e3L7B%QKzycTSG=Gmp;M=l)mM-zVzw zQ=ahiUGDeVhaXPg;ZRq8)x$#`=6UDfmQ(BR@X0HG;C4^JA@|Uq}R{fd`d&~xg{e{%-E9Kb_&`pz8C10FoxD|GPQ zGd<-|p6Cu29pu+{tNTQL@TQ}@st3P$QU`ByhZq0p?!J)|_2GxtT>0*PaL#vmxhV(s z$u0fmgpYnN`A%=Smm9vi&)~!ZPxr8AzQ8N*@bHm-^p+ES-3Rg{pK?2Sde29Gm=}HM zK{xk`bMhr0bh7$;g8p#Jsq?KPN=H29 z9u7HxkAC{|jb41Ri)TaYHc^fXUa_Y1!6*Eu)%=x-k6hTc}+&6)nr(}REb&`(bN4!C!`rw1Ol@zfs=_4p$v z=3(BaaMM%n=t(Cz;*UPge&w;{rFEu{AND!HFxe!I-chw~9r>hpn4a*Ch%r<;5^kC!>agMRqwPhazh-+TW5Z8Z-Qk9!*) zb@}7ofXkf837zPmj{S6S?lL^?6ZPG{a*wY*zSG70(OVAW>$pDZIB(8w`tJPJv+vI7 zBX@F0XMATr-|?ga{`$#-`yGD1(%0&|yy!0{^qINlkDSOg9O}!16)yV0=RE)D^D`as zk|Xyl-R+eJ1$d7-mhz^A|afWG>=FYr^xJ)n=i z>Z(Uy`CIYhzkYHDpYQNH&o}zG2js->f;w_y4(#KnT$uBj1H9DX1Hb4(FZTof=7vtE z@u$0f>Z$L(^Zx((-&XHit9tJ}Tk$my@VN&b+i%|Wl}9?k;kz8j#a5l?R(|O3e&eg( zDf*cgb@YW3KYF?^)YVU3;N=5-=^zhsFc|Cbi|v!o>zLviF$GcFP-4VPd(?%g>(AI6CL^E9<+~->droI;e`i3 zzTgeN@9OBcRY&f8U%j`|U)|TfPk#KsQx4_Gst+D=Cm-_tQXl>BH9z?A+j}@>efr|% zyFTifC-a84@Ag}-!|6VlzccWg1HTXU$({Q8x@VdX~sE)j;cM)FmWZ%|% z^}V<1$KQ`phfeVNo%L)kx#l;@;ykefTQ}vybz>>xZv?R({*ZS30fud5?$s<_#|M;~ZW2{8&ABJk!auJUh>4 zeD$%cU4iJn^D4ztyA9ZaCey>UxhKo#oK|WuHF$;e)x`>O)8OgSnMk zy6J-tJ?z)doX}HWD?jX`BOR>f_-i=vlMDU)e#)hN&YyJNeW3nz@2zmqm5%0`ulTA% zU*Fwl@Yqi;xzqPB9L~uTJnGQFce#+WdH$-@S*2zw&1edC!l=e?&JJmv{*dh!c@{H*e%9(*&m-m9;lKJ z!q;kEoyXT49>>rAtDfP92Yxw`Lwd-G9LgE|>e1D_!%b&?!>x~e(8+!}=p#4g+dlZ{ zil;ts*)L!A(V4%mBNz0MGw0!l=g-iapYmhBTU1_`$K&m%s7=ul@8lzek;eM?ZY{4U-`C= zF3!sd9;-U$i$8pI-g|iPku$#I3!i;-go9rC$UofrIY%eHny20H!{y$f2YmMFPY3q{ z{(cYOu@5hG@9R73!ezgE0Ux~S?|xIyJ>=Pa!v}bN)L#zubKm$b?{b0v+@}t`_{IT`X)hfl8YziOX4@*wBA(+o=qPXA<3UF`m4AN934D0F*ACNTwaStG&dbkb`{<7s-Sm|&=RbFDYrSaY zH(lnutoFf62fp(cK03l7Z~TXgPW;v1ce;u_4RBn>53134y%I?zpVV?kMri! zclz;xj_~0vH}a{j_wF}(>SGS*O+PqifBWTw&hlWM`2(N6@aU%xe(&kV7yaFn_^Hd6 zsRupPbxwUc@>?JL>2JS2bkpx5ynLTIg%eM!T+mOBFRN#c=(Ktdr(F9zntAhGJ?HRn z55TPsz4**8@9o>dLl3<8WS-2md4rQb>ih2ZMtts87u+{|q_;li;WQoH_ z(3x+(JMTUJ;E-3i;l&3(I;$i1axmwauXxLy`vPu$O#R{d5nufDF`s;pCw}wKyy16T zJ^Y<_&w9pFp3ET~_~e<+_R|F}{;BKPy+UvO@xY%x`q4)n^TI#6<86MNmoIZcFZYBx zJL!cV9X@)muXFm+7e9U7CwRey|EezB{E{d7PG8k^&&&B)_3)sVXLaejwV!`@uin46 z(hE=Z_-Fp;2)F&dtIKb`dT&1TgNxqY(~BQ`rHi`smP`B|;$_aRd!|3#;NmO4&85C@ z=;QaDKl(X;Ucbr9dp@d<7ro`_qB`)&9sTj3Bb@5vO;7sx-NBQd_^B^P>f(!s{NN$? z_}J$=f9Z}7p7>wJo33<(OCNaMUvQd($Lh%KRnJ?iy5?Vh=X}STzqg(L)=ED-_+pOa zMSb&p+IjP0p3DipaKJ@Jb-kB^&((#S56-#w%mW|kW1iKQM>$jnPCnpar8|H8&cerE zy6}yT@~8h{yyO>NIKV11Nii(9~}H~USE3f1^-!R3kTlrDSpEPulMT94`0j= zAK{VzTbM+bA~ocy`}?`pX}@-kV4BKv(+V z;l13@aq^;{xlxBc^6B1E4?p8btts^>nMefeT;=t&=Wq7xkS(GPF@ z?AITEzQIRVedH7lx;SSZ>87syspo!mUOue+fnOcCi-A!<3l&!;gm0a z!R0&O^`#$Ne8pcMxpyDY-+iN>T+63>M83{G{re{u_`-*`KJstBl^^iI?K{8e0l$58 zfa@+?=0+aO51#PT3r=~Kuf6KYnfLsI0}nXN7aj2DBV2H*ub%q&%Hu(J;HMM)=d(Gp zA0IlIb9LQAe1wB8@*sC~l@~gE4X3r zCVxKbCudgY>BVRF#bJG%$HRN`YPAnOefX{)Kj^~`_oRAqWk0>}h1-6(J<-vaUo_xUXo}2sOrQ7fNm^bx2 z`|dqHe4Y7{WAh|0bf=>n%MrZ#(#OgV`1Q44KhN^UC+F#?KVItckDt!p4PWHOyvvik zsk1ugJ>S&DUp?QQcVEyIPWaq|as{V*jQ{+$-#&i8=YCVqJiQGb^w!6`^IKi#@bO(9 ztooW0KEi>&dBp2HTz;?c#793q!AU>&jXZ7DFvGWOZw0ie|Y#TUvTLwH|o>FKD_B^zW4;6oa^r#zWVs?{&7F><2l{r z7+-(i^3Qy`XJ;-vt3wBV$sOM27SF42%>JI?!wTP4KltQHp5cWLKhJQ$Nf&kSgj-*AF6-}{dgjht=x5(!=iE!zJ;vm{(Pq&ym;bo&L$2%;{^}>oZAa0-R0Xpb>&0e&7~ak z$$R(tR(*J!=Ldbfr;mESI!`C(=&zss{4@{zbI!eE{^`p%y6C4KKI%M&i>|)YTVFn& zx8Hp@eS||l^QE7@udeg_q$|Ja?fx=n@Hvk+ z{p5i@e85-k<&A#o@%6C0z^gvICw=D!eOB+~TmA37H^212TYl)PFC6@%D;~b%OD8<= z_x@qvkVE;`S3h&`wR85tVV^qs%7c3TzR=%X@J}5)_@l46q!<0^YfhY_5B|QJe}2LR zH=Xq1i~EHC{B+)T_c?#nlMj92Qr|spp7<)y@abc&=*%Z`!w>b;U-{_wm`?V4PbWI? z%l$@A-{Ijmzxb*?Jm!WD=9=I7^H*K(>1)o+xB7I#Pe0H4;^DhI$~pXS@d2O5^fb5h zprhYO`pbuX?t?i`>Z!9=AAZZZbNI?9UUK2RxtadxCqJI~LTCBGiw^vum;QLu9e(xk z;~QW3%vbN}KzH*6pMG-cnXm32-_4^r^X%_We(Uc$-g3eZ_kq6q`Q|)*>11xaSC@Y7 zL;0hNzMlE--k`TS`rt(ebM2YG@VcMqB~NtV8y~IaiCSqpo_bgxPyGP`OzxcXO=phgE!k>R9@iO0@;lPJp z&+Ru?c<9ep{&}z8PUq!~F7&oKr!W8Hj2`-UrpsA<)aM7EFFw+d5A@{IQ~Jsuee|^tZu2$!*(V=z<#!%lxO~@_ukKg(m0ZG2Uwq*3UL88n z_dcHRIB(wh?w;TSU(F#Lp84XO_js5a^GiR^atx1^j`$pe|F9Kbygcit4t?SNJsfx_gByST=<9y8&oln+g<0Qz`8ujUKlvkf-kUc%{p{SFXT0fj z(mpwIKRC}zfH-CuMu2kP^kK6Lh8A9JR@e&$3D_^Pit znCHv^K34B<(?ef5;FI~56Zbb<>d}>Nc=CaN@XI;g^2JB`$%nr7tEY}RcaPECeDR;p z?o;yuw|kYI_QRtd-PM5)KmN*xI&|b8-S|NVeB>Q(eyPJR@8umHeetBHy6!d4=90hi zL>K$`q%M4(?WY4i?g7torXK%}%cXl14}R0tKDZA%=YDsem>)TiTfV|22hMw@FMRr$ z4|$`zdic?W9&r18mM6O7i9a6p>%$*7^_8cU9`>t?k9zJQ_rCo5&QCn>rIWdkKm6z{ zuY8ji{H%0<(|L2^*?mR->96;2;N=`&%ppJNOiwzx&-AAQz2%P1_^D49^J5PAt-sYh zqCS1iiSzi#72W9UeuCF`&-TIXKEcy>d7v9z`Jyg9^p-#Vc(1?T2Y%5}uFRV`l}Gm^ zymathp6KqJeV5IJ`v4w#*{A>9w{@P+p7}sey!FS6zi_~5buZIh|EYtyq?^31@LA~r zCp>aAeUvkL(ue>0spA=L`{h|*dGBCp^t`42-=NDfl?v+07S>N%5 zSKiG5z3k^N-ttX1{M5x0Kf3u&H~i>q-xhBE^V73jdA7=*dVHpz9OKI;`p6@F)qzKS ze~)=y;gwH5>f>IXIif54beC&7(~+)nzFXhNR&ymkbmQww`|z~N0Y3WR@4Nfle9~1N z=isM<@BEirbMO%^=iN{4CAjG*C;X(}Q+4FadHB7TJGkg92UdLb$D7Xl-0J(Kb>iTI zIgwv^fe$Xv=8rGtf9m$VzUs*Z-1eIXbIf0LeWwc^_TfnvxZtG=9C(@o^X9v{@W_q) z!ecJvO;(Vrjq$s=FnS}xVc zA1*n^LoU?goBedLpO5P6r>^_MJw+!v+lMFLKBpHQ=qLYp$e(lkmkaypDnD{6U-X6d zs{ZDZ9{9-%z15Kyyzr18b*7$p^3(li4(vBS@O%Fyy!gTI{%{|_{jL2oC(hG>ulVWf zyL`||T`RnDn!UU%ltcUi-`kKj=mWt9|&vi@$St$s_%ohu6KtFa6;%U-rv~eCtb(gZRiJ{q*4j z+@9$JHyqx}GyUWoK6UtLKAiWS4qG_STg@YV?8g@#Jk62)__!b3Q*`AQf83|;SGvg= zTzoe#-aF41{pkcJA3VcL2l-H+Pw>)7KmDE4-+sApAHd^x!+yG$?~{Chi=XhCM|j}n z+w2FQ_xQt!Cw=(xJsi8Oey3(G;f3G%|LCxjtgMnC48yesIzd5F5f%Vis30UZ?0-o$ zsP~z~IXb!L=FN=wy2zg@KIliU=ju84tM@lO=_}XHukoFZ?lHRHbKQP;%%48;S z{S6mA;iHdw_~Wat^KymPhv#MA-P3ZYE+6>(+J3t5QGGs`2YHl3y33jR`0~xXYtC*ABfZ{}hT9q^J%bH+zJ`9?o}+Rq1k_(%u)79 zzdXpPI`s0?&s@X92YuY9`q0UFIOGR^c;ytnqj1to4)n(#Z@G3}AGqO?OFG-f=b!b3 zS1#e>mp=H*lbpL(=%9~$I!|}=^;Ca-)$#tP@8(}U`PYByYF_ZBo1D>GA3D&@J%k4x zzlH~YI;!to&hUoQyZZ*;i|RTL5C5&pA^-V-FJAAeM?Z6Koqp;awBNfr*5Q-~c~l3l ziA%1`1>IKt=q)$&bwA*(KHc0eboDL=?mtiS#8-OZ1&=(!Ew6Nt2fD)xzr4{I9zM|3 zIk}$qllhQ$`Ewp0e#oD?@Y2uyHgiT#Pxl8M_&^W(@zJ~c!aSYk?{iP<->IiQa%3LhrmueH-8p&0!*_h)uwPxe z;>Dl&9j~2E_WkbNQ-1M;+kW}CU+(15y1DYs7k=K=*FJNgkMHn&Y(E~><(FUdmkakZ z9?rQ(S9SR%C-gTbbe4lpopZl9XMW}1JkdvA`Qg)T_2hE*?mRrs$+ujn3kRI`(f_Kt z`k7C2sSlmuao)Qe$Q>T^pbuU7%zr+w@W9D0edHZaIgl6o@Wsphj?+`>R5+Ee)y=5cXK&;>qjqnGavLY2l&HnouB-mr+xHuUzrc* zhm4!@k?WuJGt9HfgJc+y8- zxiRPTcQ42V|M8`Zed_X&e;-Fa>2}#V-0pSf`K~_w)RQYZ!$U7R@R3gH>4&fT%acFy zN_RNarHg#i6E5|9S4VyO=?b?z=|dMefZv>Y>T5r~`l>Gv_R)tgzFSwvy|jj}@H?ju zo^+Et^Tsdv$Im?j_pTp)cfFg-AHCDdyL$ApZl8Mi$(K3yv>$GHQ_s8ocwL7JKksz- z-FNq!d&~U71E2nQ`L6GruT_0HJn7wjbBZ5)aM=eB|M_cv;r5;1>Xn3+AmM;4f@kXUw!Cc{~CSG2|f9<+ov9VU&eWQ(M4Y9>>WP)^wY;a z_mF+o?Z?M=x_Nis$`@bg!3VtH;xAwMC?Dp-I^WfG4oG0S)+;HMa2X&nHT@LN@yRSb# z>FgYT_zs^s{B&Mk_{~3a1BblBX}^B_Fh_i&@85E)t~zvg&V0}lUVYrFawu2k$nUva zeHy;F59ljj`qP!p7oFD^F8QH@I^N|9U;6U{F7@%lS3UXVE1&V*;nUZApS3P;eDzLe zzWe*YQ;zwhA03>Bo1W^=et6>NyE&Qo^_9>2;e&Vn%aOdwAAR8Vv=0vRV!!X|f2hAc z{HK@wckQFU963ifeeB2cOXu;I6S?8Pdg|LRzvh(=_}M@G)K`9d=L=u)g@zC zc)-DTc+{c4dmB&te8*Sb%!7G^=c>MNm^(V^tDgMht3Kbo(@kAE(?=fpyTXBo{KNa& zcl^9NC#SyCQ~!g``<=#94yPY@@Szjm`Rd+;PcHR`Qy$C@oI5=7M;~)zuJ|br`r;*@bj1^X z`Qw{;(NBKdw{k#_sk3`j9p~xfov!qjW4z#3pTBVMfu7#=l^b~J3O77-qd)xoa^LdF zI{nNyU#y!Wb;7pbkJX3>5d27 z@R@y$u(3Q^afz$BoXP-WJ(UEoV|5B259x_r}x4(5fP>hXm>>dL$IiJxEi z$$|S}$6MavgBLFM4_y3_C%V&zzx;Ne;$fcQqBmZT;W9^bfWtcc{N;y!^mWdhPruxM ze5RB9nosvVz2J~{xZ$7=U+kwVob;xvb-t=E?{urC!|goZ;N%-0;8Pc0 z^RGTWe59X!@WVkTyz#)-zNs7E-CKN?Gx+g`m!A5_G5nr>XZQ*K#D%B+p6bh;yjWL{ z4>PxT;H{5&b1!+9GjrgHAAjASc=&!${@|zEht{1lAD-};7xRrT{qWJ3E_lnGyxB)D zzMY0g9_4@@`kN0=-}U9Q`%bRUs?UFYfi@=hnT`!#e!F>*G6~zT2X>gj(@!4pgO^Wozz22gmm50j z2dDeSJi$e0PdQQ#E($kzfM^`xI3qJjQU*W^see%+} z{&EeMeR#>Aef*kz&As~O5Kj4&3;pbn>4!b5KOt)DrB*E@cEkpuqV2|xbwgNJ?mS5FT4U|#5DKRo>N z#FOuI@Knd|8y(=~Gu-&n*F4SK(-mI#o&COhsxL>=w>|upXMWR9{_)`lebk{lpUev$ z<^o^yOV^2;U%ualSAO8a-#-4)(|tfUedq_Dd8Y%O>f`J04Se{j4n64QyS~1|MK8GJ zi+^-<|J|g+>dCK{-t~jmK6u>&?tOL54}N^w)uo?)`0>Tle)j?#C)J^=T;ijzd&2LQ z-x+g7FaDcnc==!+@iMP)!K*HO>bRHSanA3bKA!yJn>^|Rw_JPjmoDxHzL*m@`G}uB z&K;z)b9m8L&iN>Z@X(zO@@QQ@I6Tdby7s{>Kl-_k=whz%lIK71kt@994?lgKgG+zs z@pq11^p;ok>BdKSRNuODvkrdpBUeA-1<$-6;DsM=d84EJ;BWqaj{4r|43B)%&0O&t z4*7z^JgG-dy7&%1UF?HfUHi=eJw0#YBOmb74}X5~2`@PKCD(`5#gkv=+Ibhr*71Sg{7k>}!3z$$_}!xy9WK+sK03c`onNQD!$nv1)K^dL z?4Q2DhljrOaj%+3eyFFPI@bS$(>eFs%nRS}qZ=LNResGEeA5T-_L(C&caDzq(+>~* z%#(Ne9K?@*aLb>3(!;%BzSM(<4)9-A-;<8c;X~)ue)aVAU0pfxUEit0x9XWYeLc;I zzHi&lXZ74y&e7T2+9wzG(et#r=8r$t>Ec}-^UEhX$OXLcxd-HpF23(@xDWk)z-2Dr z*UvoD<=^VSXFh+m?z?sS_#j{IA#-!xdGB&&-8+1Ap@)8S#LqtW1K;hl?mV2%>$}1y zS8^)fcsi%9e(IYe_0*ROb>skFbE}_oAH&6WxwN0oe5b#B@QdGk+|`w1b>X6e`$IoG z=xEOM!{5{2Gw_*nx~UI0eDLBApE;n9{PK%Gp3cd?yt#Mr(gzPb>GV0h@WGp3_~CQk z{?*eyIOvNnAFSge-+t%th6g|W&jwEYp9T(k>x*jv7f$%; z?w*t@_XK`;O&)N_6JOKEdx@9^toc-qfL^dhSbeBA4zNdg1FSH~8@ne|+BO4?glJPo8`- zr`FYj$DH0&S0DEa9&!xlYCnFbz03EkM?ZSXlbpfHcRHz0S9;6w{O)&RhesahDR=Z! zmw)Q6&dZ}Ylxsfm&%1kzPjX5ZIyi^F-)r^p@}wsm=HI-*DGxuwPe=UpJ?c9j?8l$a z-r>UoKe*&YJ-GO_>*v0sgL{My{PUD6`M?if>z;ge9&hu_Z@S9+3Ln03;fs%bas>yS z>F8HdU+KKfh7$9&Ct z=74|Be~$;h@SrPwlyb-`~dHTWSyxieIN4`yc z&a1n6%CmmEb?4>7Iex%_&->2VZyx2(yZZ_s_rb)?fAi-)@RTcl@K=uMVh+u#ysD!Q z-(TXPE}VSD(?0#=Pd??3KAzU;D<}Mv1310=PIu?v{u%D6H=aj*f7g>A@~u8U=pyHM zs)sLK`Rd6Jc=)yIPd|F8YaZ~U7u@Q@tB>3{kB4`;rIWgN(&2mf=q!Kc2yXW@ebl3q zed^hV=WTu9=QDo3t1B=eh`H!Fa?h|uu-;TFj z;ENBvKebOiefj9VbDl2uo#Ur|@J>GV%OO4OhZ_(2s?Qht(M_)GmxDjylVAAZkWc#9 z$3J-ZME6x)b4D+H@zV!x-{IAVAM}UAIXLOyKCqAO>UbW8lU_3??rS=_2jMe^?q@j6 zqkG>xnG1TEKf2QeUb&Jpc;rESe4N(@pNWf3@~zLC^sxSK?-xD!AxG{xeLd;UfBfA; zd^E>=FlX)yKH`hd3J*W%DS!4k54XJVhfZ>*FFfW<{`n;@>cB@=`OuG^=EeOWH|o-x zzIgFn4t%GtIiibtc)_W!KF-OX`^b6k{Gx|>rmw#Av+jQ3D?Fa^Yrl2%wckFz<4GU$1fQJ9sr`7VZ=K%i?0EAXUiIOi4;|o< zAHMS!F8ay$yZX@$Z|mO88@zmxd;RQ(A09fI7rgMMznrL#C;WVc_d5LMh`w?m*WTfr zxYc*h!r`7U*UtG}cwc{W0S_JQ=QrKqHHY-|gcmM2yqjnK^ObMv=m+0Tc-5CHy28mn zIi}<6Yac)P3=hBgx$CcFy{I4D{Pzx@9Lf(L)${wwZ~Cq3 z^T&M$r#kf6?UxHV#t$w&sArDl(mvnmL07(brxRRqhp*ptzaR4LUH;9pr+mRj4?L~w zH}#_r9{4#g2lE~-@O-=l_512f4Ux zT@L7=zy0>n&68ig^UXbAj(2_NLI>~e6MoSHFS+;RryR?dxigpE4%T~e59vb>jNMC@irg!DO^5Q9%bY9_^e%VJS_4N0YUvo-d zdc(tiIOS1Yx~W4?xZt6q^OKiz{5Ln|051B|7Z3NB^X@Bi0WTbU@STrzbKbg~`JFar zexK!@j?U3fe>tM3dD8bOU+HPio?EBW?w!7Tz<=V=AAe7M=_%K6)8Bne2k&snKVR+h zoo>#p@SpeOgL869U--<|?i}9kUHsv|M?LzvkNh2RUp@8Vf?FNB=yT9H_aI-V-teo7 zm;L6AZ}JScd4L~I>*|?1Px-)C{_r(d?jt%*KjGI`KH+rET$nF&1gCTM(NRw5IQ^9i z^FcR#`2wF@;B7xW@uib_^|W8Tshix;hVgU@{D13la?^8LHM_|fIHb$Osa{P5COo#W2Y$vJtk zPB;6_kvzzwT)TJRao^x?ed=m{jlH#)nY^f{~_-{p;t^idaY^NWZ2a69MzfRA5r;Z1*hAU^%Dd*~2hnGI`O&@sOC+gE(-tE(8es@1vr!ySTWjT+vs3zVeSw&dZ;5ebkXZy1F;bn_S`dZ~IqI^CXXOsjnYi`rxMyz4URO@4J5VR>yqF zuex~H@4ll0pXD7+ed%YO^}!cT`skyM-0@F-_+@V7OkekleCTIx_yWJVxk(?nH~;)_ zkIE5zGcSCQC%VIpuk&=LqyGBhMSpepDi?BXuIcGXKi|!*+~Hv#pZO#Y^u|Md?|Acp z-gM!wcjxeMjt=m8PW|aeFX!RpKOOOfOD_2V&r^9g?@4!c<(e*d$)$6%pIo}n=8BI&`Baz2t1g&wf6@g%|(ew2p`Razt0>@HRKE^|j6yzdP;)xz=a;DW7uW z35WXdP9N#(UZJmZc)?@dyxV8}F<$t)pXe!vo}b(Qy(c_;lykn|M<;stt`9zPte?5S zQy+TqMIZMBp7JAq>e@GX;OE|R|H8|6Jmr`U`q0zd;{7Y#Je{`>F1)StRUNp#R1ZEn z@)du0=q0C~`p_3Hb@c*vQ z&+#-*>heRLJmEU)JbZjH-_}?A;Kx^<&4IrBQO7yCkTbmHO8?21FZ5N1k94sP2mk0v zA9#F!h@U*t#X7zCp^v}!=h9L*3>W{8b3;5*Ky$zRnrHlEHA9JD~-JP>vKAiLSjCVZ0q%(iyfu4Nev-?k- z-<_wII{2%P@4QFo=&27q?y8Tk`f%dyoOe&_eDs|8g^y0=l5cd7Q#|BMj@&zRGS7VG zt31iEedg7EJn2biIl4$6Jo)at-xqUYzwhd}fA}Rw<`hnK;8n*He&^{8zjMFCtu9@5 z>vS|v>Ufu5>-Os}FZS{KsQU2P$4B|13!mh|x?Ha6sm~wh=qg|M;&Ih^xuW-J>vAOr z&g1Rx0lujVr#UvS=hcO8_x`S@`-ETm>I3I$zkPCHj?Ihy_S4ro-_?N=KlSKu9Zz`p zY7Xe(DR=h4D=&0+pR0QkPw#ZXkH7kOmjm^8b@<5#y0}lwk^S=?v(N9!L3O=*;^{u1 zi@xSUPUP2pVV=yXI{bk{9r>UOJ>|!|+3)WbKI%(nKFcZH;V}p5;f)91=*bs)(Vai^ zl1uji{MO||fByLHcZ*(f&3EVdOJ}&`#$3ofJ>k{Y{b9d8^rYWiIk8S(df`uJc;M9+ zAM0@7tG;^fSN^N-JHO?SZ+P%QuK4*mK2tA!rXPIq)Q^7hfe+pBlvBRB$K30ax4QV@ zO;`GVh=+NyAAh>by?y+q{1h&I@phixGq?1#pDyMCUgzaNuAG;9xw8*H zy2H!Y&*65@ngi$HqPIG7u0P%Mw_o1ypu73Q*F5o0&hezTesZlI-R07EKGF{^^__zg zFLMv4T|hT+YkQVL0Kj&)nFr zzj<{|-sqs8clV6*boZnSf9R&q4j-QKOCL|)>0%vD_oR1u!%rUJbw9yr{W?6}>8!r{ zLjKf|WB#kFp7U_SC7*c7gZZSBedpoBQ$0HB?_FJb@Et$<@z4hjPko$|L%#SPA9Xyxr^kKIgP!V}cX>76=0LxRgD(2Qp&q=}&57T$t8kb@{p_b7 zoX*4Zr}OHV3;5}cFMs8dPw+d(PkiBU-u}<^=Of;9@p}OG^Z{@6clFGP{Hq5a9Q-o3 z&dZOw7uBV&y6~tEuX%!l&h}ZyYgHeAIfD}p`{96J{_W?#{7jwY0WaVAs*n2?PdxmN z!+95ee)#)iewPPz^oO56c)6brs&Air&OW-mZ=bn_)4cc{b#FSS&qL=w_M{&kc&X#> z0&~D$`CrwM2X&pZ4ptvJ>^Ax`In37i~aD!Nk?_% zhad3BsdM(r5B%m5FS^SE9h{d3dg04&c~Hmw1_!>rJLkUi4%heecOI_Yx_N>hubHQ# z_RA4o=1?y2f?M9~H(zoJCtdX66Q2AukNl#S^Y%?2eaF*N&du41r}J{}Y2NUFQ!cI3 zl^^zbm!m)RGgthD&)k?dxugp}`0P7f^flM~Ri7_#m?JsC2S0WAYi{j_Qyo65gD0Jx zmjk}ifllheY5wu#i+P^=@s?A$lqWjCfiGTos82t5tjn2x_~NO*`SPTf+?ZE9uFDCW zaG4kH_VdSg>-fsmyqEYQr*!svjtAWE(g8p7LP!1HjJ(f&a5`@e-7|ES6MFL>KJ$zR z-sZ&I$TNKI1AO7&2mI#B9Lm$D`0*1T`{Y4g_}$;0>dQa>y_*mE$|pbQps#oQ_~e`% z$d`U}##?{y_wmJ>zVLg>A$(JB=Xdq!uRlHE^&LNWBdiWSN+{9_U+c?*}TFl&*s{bf96sS@Y46H`tmJz=2ZUF`!H}`_D*Md$kAEfS5G-t z&pIFIVqMPVNnJYOFPHjHzH~F+@bZW6>UrWf`_fB3_^l3}bhb|p%niNqXvH$Ipvb>Yw-Ub^gjQ(qp;uXo>_lOK7pUmyPBPdELXgOi^4xhMFfuDPM3 zC!TllkrQ(yFZ%Jmrh7kuEt2VVCNUh0__`gqb2Zuc?#_^Rui z?_bl!y8Y%}p5@3nPq^qq7rgjr9<94y^@khIU*VEBc;KK5-RTPte8<(1Uw+bGe|Y3f zUiGt&fBydhT=YAupWO2wPIKb^krRF4!(YDWV=kSWxq(}Kxbc^Jd0FA5AHVR%$2-2e zbM7Vn>tmmOaPWWXB6s@#tUe$8y&^|+peKEw$2mUpOC9wmzSGX*O-KE9-#zi+6W(%S z-}Dt<_b2>vO;`EF8((t?r+xbCXPu6G(oY?ETk(U>(|5nW>iAA4zQRRMxINWT_j`T$ zuMXb&$t~UW_j>~eU-_UfefZ*jnK-V(1HZYt9{ODL?*4$^yFU2(jt|~)YfktAxAX29 zb@7#F-{p#a`qEDx=5aF03obe0A71>`hrXWX{WM;Fm!{sI z`>vjI>gZ2Lxx^n2^Ga9i@<)Go&g<)({odUZ{PJBc=(MY29zF5Ii+|4XS?=J`$GV*J zl^*Uh`}hYh{qQzF{L|08!l#b=K!3dHM<+b!u8;ld9j24}!#RBPGr#cAQ~sP=)uX5V z{MHYD^I=Zm!e5T{!$%(J<(zwr&#&PzH||$B@x+6l>dBHyE^dFhfn;0gWl@eFZXf)|J<+NdHwCfTVCkw9yAy9HBa`h>K*n} z-#Pm~_Z=>}yN}hU2Yl-K-Qa`obpKg>zSwWR&E>E5J@v%*zIXbh2j2>p{LszwN8g>3A3Du<_l>&d0UmyRtS&vxk8_WGr?c;T<|BOOQ6Kf? zh%fYj3lG1)>cJ_e^pG!eufF|sv`!EB;O66wCmr!u|E%xo;03>Xjy`f=e&tesdDqW* zy2z7xcaH9SvChBiaHtFVhy8fd#k+jr!MB|*?koG;d-PFfwV!|Rxf*WU%QraHlTW$8)4f1%xcQ(DJbZ(jzWS&yr}R~iUU2J2A9+#dBwpr3 zUd)MgeD#Hk&+n=OH{SN0_npq}2j}>pzPa?fML*v?@#MSv6K=ZV35S0A%e#Ge$eljs zOdq)TqaL1c?)b|IUiw<+pL zz58ws;h(yCU!9|${Kzl7e5Nmd@aFGL_2AOS9Pov{yZx&teeIVQbv@}OAMmIHHyzvy zaPIo?$-DWG1LxfPbkSE1;XbG?AH3TK7ro6JTzJa^T>3p#U!LSb9sck|9_jeD^ZcQw z^YE(UzVh8YW?tcj%XfVB#}_|(;$gph@Y6Z-@7|>&UEq@|-{}VjpWr@95Boj!!;>!f z&AzKT=GH!V_(UiC_1Dk6;5@$c@sy7r_2nnO^np`--(NasUB7RwtLy%`Y~8(g(>p&` z@9@KCPUXqFx^Fw@o^a35g|AZw-}RaPsB50-&mZ~1pH8>okr#7A7xyE5@o>-3l|JgK zM^}C1(LF>bKFcG0;hFb3|MkO@-#cE9J)JjS_VHOh)stg*`C=a(;CBvReeC1sNqFQ> zzU-qD|KRxAIs5dpA1;0!wV&Syz0bPx=l)*pqmS==p#$FhdFY&+m=ovJkt?|HmmfKG zFWQHfdyLL>b)L^~$tV8$(M^u^QCEJQr>{QV@u43)a;Ls}aw~T~(~Y0{(NRwHxoW?< z_L(34_%1(i(}$k)_AY1qq=$QluKK=)2QNJ2$2*?#N540nmutG=A!qbm?e~ORpWS!5 zxfkgMhx&N&4R1K<0iU^+Pv5QM?cIG$cR2O6-*?ZWc=!&#=ghD9k^}hPR|h}-xqs!t zT&?!gTW;x0AH26=>BxWexZ@%0@aKGD;6 zeDE-DE57bcc+{g8f4#%04m{r9R#*Sq-qod-C*1Izx1XNweSN(9eREEZ%@-WbdBUYW zK6Id;xq}Bz^R2&i`E*Y1;FSY<>c^jN@rDOpa|iFtf%@(ZdAS?9d%ta+UwH7x{NpwC zoVizzF6PL6MsM};WVd7BlsDAu{Q(pK^U;XUU=X-VJ)x98Z&eO*e zKl4Qgb$4~uvCc2&;q?2;SNh8Jtj7<2(qq+EJ$UITe{`b@ALNuC?gcoUmpAhYAHCG4 zx4L+phLfLo+s}XNc>0d7^KYt$FMZ&^hu(OZ5Btpz9y6El%L$#m^Y&;qShpmv?yK zn7Y!FF8rtGm-@Pw=YH$zyYK9CZ}I^@Jmkz=;j128<{uyTBER*)+jHI{_|U<;@Y8pA z{Lbj({)3C}c=JgeIQac5J$;u8`GkY7@(Hi~{6DT9UEnlF@W`{=%Q?T@3+mYCJRQ~L zr*-w=l0)a|$R|4BOFz1+KXJ&V{rJy%>fpEj`TyUio^r-Vb@g+e509PmzI(^tdHd)q z=jPep%XEMrU;fSd@}i#e>hjIKr;c37;R-jN?lt?I=b!K9oL};SuepGSe!jzN-qqtH zT=L_b`O=sEbazkahnG2Vzv3e&czMbLedU#ocj=~%ywep<=k&Sh9NzZZ=fBI%x8D;u z^o0)|@6OY~yLxnW|Ip7|%y;|Dh5J!I{jJNr{K)-tyyb-d?(x&U!|NSixagse@80D_ zfA9L5FM2qKpWNza&g6#A_{ybq_X(f*MhE=doBXHaRXX5#+dCiBlXr8jpB&K_e{*a< zec{(%o;~rTvwiaIxx&d${LCNT_*u8#Jn(@obmiB4H|KQWn|V{0FFTxg(TBc#c3-GR zC;jN_-90B~e3L`@cfY`APTha>g_Ayf!*j(0PJZgcFFMLK-g3`p{jKARhkW5JXMCm; zpFQDGmrn4x$L;rBU-j{Wi_Vh|pXue@+{+go)iH0@?Ssn`&)?}!4|#@Dj?4%Cc=5%% z`&Yhwr{7ck_{0zX;mc>a*qy^qJx}ZIIrZoTk9AKur3*c*(}_NOkbmdQwf*11>$@jB z?hkc5%`v|Cz^^}@_-j5_ec_N#f1lyUU-j^{A5QmzT$p$I@tu!yXI&oP^wh_k@R@G- zx;N-2H}XLT@ACGT4)DkcAMrD{c*1uu&a0>X$G)pe7r$rbMjd_h=NG@_*FN>E(}T|R zSBJlRe+r*_2VVWvkuUng^QZIH^>`5HI@D(?0X!cOEYI;idy!@S+PI zaPyh(be3OuojVPu`I0yN;WAgg%Y#1rkz4%SkM?`YgL?4O$Gd!ZrzhXwqLaG()bm{JqZeNM!Vf-rsxQxfB;|} z)w56T;glD7)1R*Dsbe1Kz|U15^C_?P@k>4H?gw)xXK?v$KHxCt^5;nx?|h>p{Bp#9 z_YGa_muG%CPe(XB;m6Os&wRKScDjA*DR2Dt-BVxr#m|$^aKJ^!RUh*OhyHx>uHJ3u z21Gybas!>Pk;W| zCr{=dANo0umz>iZPI;vRKJdc>w>jn`9e(5^KlInvlRtb=7a#h=`B+{1=kEx7zPs<# zf%l<0e6>&Cv%c%A?oI3FQx53k>AZ6jkGksp{!3kcIgc+s&hd{A?mzdqT<}G1=rQ@o z=L(m3+`XUnbf3}>9=W+}pB%s?$MoTc{rJF32m92~U%u!9A3vSLgYNv3Lv!PvaZXO? z=^ZZo;elI!I(xeR;C3E==jkagD?Ry#r+Wqdf7_=%Kke5KKYhLH&jQZw^Z3z?{`BU9dsu#)o4M0Zo_xPguY;cSlLz;h z`^0&3tBr~Ye))XvT^)Mh%P-&gq&_@+Q_pFix@`79si z7!H2WL9W!t-~GTBewYK_^?_S|KEg#$b4YLbrzaftU#1%#=ED>hW1>Z&iia^pPw zaKl4qIpwqO>c}s@=))iRl*^O&@xxr>X&oMQ;m1=h%$xV8>hsS!UE!5a^Whnh)%%6RH#CwOAp3cKB2Yi?~@!=1=bf=pf@WJ=9`m3vtT;Kth`s$e{_Xs}L z<%qxLOaA1S59Ssg`niwvg-C&2j6Ed<;ywmyYuE%KD@h+?Z0imoS0+0 z@Q44T{d7~$e)`D0{p!oF^YF=&@9q`%i6@`rLN4+4ZjK(pE9dah6aS<3$p`%E@Yg=) z_=z9C=;l7~FwQld4WgH%!R)5oOz_Hobpe9 z{M4oQb3XWPp7d4UclF`*cbPu39v|FO$Mv%=2lSP%>-K%@$v5{9U*t-WEJoGnD zc+-!M=96A>Y3|kIgSzGdUp~scclxhztK%IWI(f>0+_*PBREIy-;p8hl_(?~;sVn#9 z#XB5wp*}t3*WZzzd~)8qe0~W(-SM#xUgv$MGvC#d%j@dOlN|Z3u6^d5PWYK)dN@xv zx#hEUKKc$fAN89$$*(-g#YKGZ4Xn{aCx_nKXieM{x9`6kM_xh^S--p z^rzphj+}h!-E;cEce#e2p3@KWryif=ZPuY1pPZ))yzWi7)v>M)ynM0WeDYm=KG28W z?lbp+`g~DW?q_|tJn6s>KGB80p8R#*e)kUkc*+4B_{af$)zQ~^xai|uU48K|2jkjy{GaN{F+Jg@3t!E(oYBd>13$ggg-2fC(g(h$ z@X%8~dYM~w@a79X`dP?1Nhl;iQY4x!>?|o(}55LpM3(k9^UQzxdM~Zga^m=X{6T zz2iJR;FTA8%A2{n&o{o@^sXMCtebaw>4QIA;FUwTR`vBa5BlScAD`raFXjY4`{1+B zJ>VXMhd<^EU+3`VKOgkvr~3h3`H>5{^I3k~BXsc{9yxO!ZuzDo{qTp!x_#F9Wc_1) z@RLsV>B}GU^r>@nl5@B}^xZtmtv+&VuIWJsIe=RoxcFe7+^Ne)IO(jP`IBpTI0!d? z`6$o&^P4XE%Ml*(CrA8LhyHlTFWz*VzQga{)fazt_+x(Hu`?7a!%AzvfFGzow=rid7v-d z;Bmis${l|A!0C6$@0EFhQyul?OFrlXm;Cc#@`2ZUsH49;(An>lIf09A_&HBUbBDKm z`r$(defcSG?tlCArIV+A>f-Obb^4n_xcNy>^Y-bV|Nog6`mWaHoSyV?Ue26{11`Ty ze4!Vg`L7-w;8oZCaWwFnV>>+16#Ke^?vclgxf8y(<~59@gILmm3#-52cPV+ha zcTT^H`twH))??-CJ*>C6vLI?~H| zJmf%5)up??XZVV*xqu5!=j4%Ya>jrB?Bj!Zhns)iJ>`UM_|SpR&co^V1#dj?x6T(i z;x`@T2Y&ave)2}IqjCfXo^ZnjkNI=&s)wI`bW=y}@VTt7e8bCEe)tYQJo4gqn*MZg zo^JN3j}Lr&!DsfB|EbT4hr06U$rtw*9CC*bANZ#~9(;C=UVOX_hdR4=bHiVC+#@&b z^Bw$7`bJ>}GQ{?AV z`0<)9_P^_$5BB5Z{kVN{<37<(F0HH2CwZl#y7CH_Cq3+w3x3m29`*PAKD?fH1OMvX zemM2VmyYUKpZ(0ix9XY$b$9DGJ>`m??gRVG9UbW*pYAnt1vfwBPj1YQdiKkOoXNfU zaG&#m-s+ym$GzenQrCI@;b&c5%!zvN;A7LGI;=zxu8CS%=Fx zb<8(h>hVYa`Lv(za$x@O)mIMW%~L-*$}8XbMo)bBWgQQ^;PHfG-gD;5yudFv>YAI! zbans0sn3tTnY)z)?uUsN&N&zQ!l|CQlv90YAH2+uKIWMI`q~E{yz0o8oXR2pt>2~xe9p_4 z{6Du(9sYUB8J+2%EU+AEywisd<_3Q{>n9)Tzy&8B>f-%5zVMqrbw2hTe!oxZ$rYY*r!RcY(?#x_ zlWX@Z9ry?r9n6J(*71`AzZ?3=GaWDDXTMzGEtgmAql>z5deT$wy~~|GyLz7R(38$| zgF}Ak;eL{DKGI!I;9m7r&$?Xm17G{xXYL0+%BS=Cs%!q_#XdawEx-1A$^}2(ho3(B z(VL$0oo?m=54!P%Uf$KyhfnecCx89^$fG*&_|7MKpU2DZ1Kn5a^6R|$Qr~&!UOUGJ z_q4pw(R{&6A3Er#k9rr?mqYo`*Brr*Cm-nXQk~t?T)_p0oOxH*-0?x4=@tyv3alcvL;q^3!>e7QR<_!;c<=0%PqtDbsuGFWK zcf9E@XMC9T^nZwt{^r_!0Jr_-Mt*#^U%u$0|EiCEp4R!`J}__YAM>vtK74~muGCY9 ze*ARax_Op={+Zi}(;V{sZ}+u%QIB7I*Nfbe4BH(gzN8+z)i6A3pq4 z-+uVy+CKT9FC6rJ%ztwQ2b}o3-|3=0U+3=_-@a5|J@=t=a==e~hW72^RUtb zPv`GjS62?<;mb+;@Pu1`c=4BWKFgDO^l^{CM|VD7*B4&A_(2!v@aLm*->Sn8IfcV~ z?e@vNesrUQIg$r@yze~S<;ywibfCL>?ql`z=>YE>R^`pc4_R|Xvy2#ybpLOT>q8^>#=QBObHD3C`r>^hv zrLWwnC%0YNVp6c<(ckl2zZyx@wu6^>SzwdN0|K@~F z>e)B*GUr2mdGSs+IhJ2J=kpFXeGYne9!_&X4}Qb}7Y{~ zIdfp2{Lo8ZIi?HU=nj{;_1*nsAHVH0zkcWK=L6hw#aB4xUM}3F1pO zEB)lwe8Wu__W@n;g

    gmrw(1^$bNd!kDuzx&qchp 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 z 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

    `%wYYzv#t@6DuzCHc%uTJw+e*QC0{7%U4 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οXgl?Jk6>1U&E`awb+5wZ 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

    ^No)D!iPWV;URzYrI-8MJpvEBa)^%{ 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.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 @mZ^BZ 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%0Ag@Gq_~ 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

    U_QvBwd0Uja;=? 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

    #d$QO$@a? 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

    pj<y&}Av~ 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⁡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 We|0mjs~ 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 RY0frdhlo=-Mldu* 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 literal 0 HcmV?d00001 diff --git a/modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file1.parquet b/modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1bbd388e1bc66b66bb42b56c72029f6c595d74f7 GIT binary patch literal 1329 zcmaJ>&2G~`5MDc56Qmpx#I9^)p}~VkAsX=F*brhYDqT@S7py`cilYI0A=c3Zms$~kw=zb*hf`IWt7sn9f&UX)Vpq;M z^qoyFyoJ&fOY1Ch^LXjXBOqqV6lQIohNXcXTs_>#1` ziTtlH2t-GtvL=l#@<9A3gu>K_M3o|Sxx80wVNfgb)}t1!M|)XMLQh-@^aF?_t0Y`4 v^$xbBd_hd>#0x%r^iQ7zqx_j4jQYbtzO*!7oL{i;XEJ@r+Y}*n__O>6sE^|+ literal 0 HcmV?d00001 diff --git a/modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file2.parquet b/modules/parquet-data-format/src/test/resources/parquetTestFiles/small_file2.parquet new file mode 100644 index 0000000000000000000000000000000000000000..b4d831b241ae58dde5c83c9c8f8a5e1a840f0d70 GIT binary patch literal 1349 zcmaJ>%Wl&^6unLy*Ojtp5i{787unRRs!;k+QQHO5Bq_9M8j?cjgG!NUO&pOvNJ<0y zegUg2Sai`P;tTi`78Ogxf(1(!+&lKfMifT&%=JBI&YZb3Nlk3cF`Z4b=?V^T3%~?` zCxO@Q_`M)Qar?LxFkl8V@<*E#9>Hz;N#%NiYW5_$=5ktNXn<4s`}l|?qCWsj%q zc=xsy)`O*N4iI8$H%L=kOu(@_oGT3{z~O2*S6PT)hgaD%T7yr3?eJ@j?c*1P7iqR5 z0f)W@dI;dO{k5#u?Vj|Ty@S9%@|X!MI|-Iv^^W{Ws5m&C>6l21mLEaI_Sw56G}>%7 zNuhlRT(=#&;)27n_97T#b|}OU;2$)6+^TE-EheLVQN^=I7{cke;JJPj~VtrDi8h9Zlv_3#xFJZBJF-oNryLFlnTds z@b@Fk;omZBFgkkIMRyx<{?wF9;#(_)^;tqA!XqQKl4*LJ&%=j^9G8Q-~=w5`b^9PkE2Jk_=ZV zJgA}mTZ+W4?5PVR{}nB*78OF$MUfH@mtXEIl+O?6mQVMHzws2AOAQK3)XCP^RFNo4 zTng0ZJF~tNEp3wiBO;;cs1?^_&>|h=_d+OKnviIxBwZ-%%{PeDh_bb)MC;MF+)u(! zycMhm3Q1KdxVjj;*p~JMSoW#cef`EiyW8#M&i!t$eR7;zT$q`knYHP+GJN298lZ-M GpuYj4FziwQ literal 0 HcmV?d00001 From 9ede8b8fd773b1dc6e6d3a612870d28bb10eeb0d Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Thu, 30 Oct 2025 11:31:02 +0530 Subject: [PATCH 039/112] Integrating merge code with composite engine (#19812) --- .../index/engine/exec/FileMetadata.java | 4 ++ .../CompositeIndexingExecutionEngine.java | 22 ++++--- .../engine/exec/coord/CompositeEngine.java | 60 ++++++++++++++++++- .../engine/exec/merge/MergeScheduler.java | 3 +- .../exec/merge/ParquetMergeHandler.java | 4 +- .../exec/merge/ParquetTieredMergePolicy.java | 4 +- 6 files changed, 82 insertions(+), 15 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java index 41efd124fa437..3878eb156654b 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileMetadata.java @@ -9,4 +9,8 @@ package org.opensearch.index.engine.exec; public record FileMetadata(String directory, String file) { + + public String toString() { + return "FileMetadata {" + "directory='" + directory + '\'' + ", file='" + file + '\'' + '}'; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 4f9e65df41866..1a52c1a54b516 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -106,13 +106,7 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { } // make indexing engines aware of everything - for (IndexingExecutionEngine delegate : delegates) { - RefreshInput refreshInput = refreshInputs.get(delegate.getDataFormat()); - if (refreshInput != null) { - RefreshResult result = delegate.refresh(refreshInput); - finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles(delegate.getDataFormat())); - } - } + finalResult = refresh(refreshInputs); // provide a view to the upper layer return finalResult; @@ -126,6 +120,20 @@ public Merger getMerger() { throw new UnsupportedOperationException("Merger for Composite Engine is not used"); } + public RefreshResult refresh(Map refreshInputs) throws IOException { + RefreshResult finalResult = new RefreshResult(); + + // make indexing engines aware of everything + for (IndexingExecutionEngine delegate : delegates) { + RefreshInput refreshInput = refreshInputs.get(delegate.getDataFormat()); + if (refreshInput != null) { + RefreshResult result = delegate.refresh(refreshInput); + finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles(delegate.getDataFormat())); + } + } + return finalResult; + } + public List> getDelegates() { return Collections.unmodifiableList(delegates); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 1329d7879d1d0..dc3d586b2c534 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -16,14 +16,21 @@ import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.Segment; +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.bridge.Indexer; import org.opensearch.index.engine.exec.commit.Committer; import org.opensearch.index.engine.exec.commit.LuceneCommitEngine; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.MergeScheduler; +import org.opensearch.index.engine.exec.merge.MergeHandler; +import org.opensearch.index.engine.exec.merge.ParquetMergeHandler; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.shard.ShardPath; @@ -37,6 +44,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -52,6 +60,8 @@ public class CompositeEngine implements Indexer { private final List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); private final Map>> readEngines = new HashMap<>(); + private MergeScheduler mergeScheduler; + private MergeHandler mergeHandler; public CompositeEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used @@ -59,6 +69,9 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic Path committerPath = Files.createTempDirectory("lucene-committer-index"); this.compositeEngineCommitter = new LuceneCommitEngine(committerPath); + this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat()); + mergeScheduler = new MergeScheduler(this.mergeHandler, this); + // Refresh here so that catalog snapshot gets initialized // TODO : any better way to do this ? refresh("start"); @@ -111,6 +124,10 @@ public Engine.IndexResult index(Engine.Index index) throws IOException { } public synchronized void refresh(String source) throws EngineException { + refresh(source, Collections.EMPTY_MAP); + } + + public synchronized void refresh(String source, Map refreshInputs) throws EngineException { refreshListeners.forEach(ref -> { try { ref.beforeRefresh(); @@ -125,9 +142,14 @@ public synchronized void refresh(String source) throws EngineException { } CatalogSnapshot newCatSnap; try { - RefreshResult refreshResult = engine.refresh(new RefreshInput()); - if (refreshResult == null) { - return; + RefreshResult refreshResult; + if(source.equals("merge")) { + refreshResult = engine.refresh(refreshInputs); + } else { + refreshResult = engine.refresh(new RefreshInput()); + if (refreshResult == null) { + return; + } } newCatSnap = new CatalogSnapshot(refreshResult, id + 1L); System.out.println("CATALOG SNAPSHOT: " + newCatSnap); @@ -156,6 +178,38 @@ public synchronized void refresh(String source) throws EngineException { throw new RuntimeException(e); } }); + +// TODO: Enable merge +// // trigger merges +// triggerPossibleMerges(); + } + + public void applyMergeChanges(MergeResult mergeResult) { + Map refreshInputs = new HashMap<>(); + + Map> mergedFileMetadata = mergeResult.getMergedFileMetadata(); + for(DataFormat dataFormat : mergedFileMetadata.keySet()) { + Collection mergedFiles = mergedFileMetadata.get(dataFormat); + RefreshInput refreshInput = new RefreshInput(); + + mergedFiles.forEach(mergedFile -> { + WriterFileSet writerFileSet = new WriterFileSet(Path.of(mergedFile.directory()), 0); + writerFileSet.add(mergedFile.directory()+mergedFile.file()); + refreshInput.add(writerFileSet); + }); + + refreshInputs.put(dataFormat, refreshInput); + } + refresh("merge", refreshInputs); + } + + public void triggerPossibleMerges() { + try { + mergeScheduler.triggerMerges(); + } catch (IOException e) { + System.out.println("ERROR in MERGE : " + e.getMessage()); + e.printStackTrace(); + } } public CatalogSnapshot catalogSnapshot() { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index dd4d176fb55ef..c3b5658594e63 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -31,8 +31,7 @@ public void triggerMerges() throws IOException { for(OneMerge oneMerge : oneMerges) { MergeResult mergeResult = mergeHandler.doMerge(oneMerge); - // TODO: Apply merge changes in engine to reflect in catalog snapshot by triggering refresh -// this.compositeEngine.applyMergeChanges(mergeResult); + this.compositeEngine.applyMergeChanges(mergeResult); } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 6d23420e5d194..8217534bc6c4f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -15,6 +15,7 @@ import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.index.engine.exec.coord.CompositeEngine; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -66,7 +67,8 @@ public Collection findMerges() { Set files = new HashSet<>(); for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { - files.add(new FileMetadata(file.getSegmentName(), file.getSegmentName())); + Path path = Path.of(file.getSegmentName()); + files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); } oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index 42da8525a70d8..2c9639c2c491e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -151,8 +151,8 @@ public ParquetFileInfo(String path) throws IOException { // For now doc count we are deriving from size of file. // Once we have that info as part of Refresh Result, we can change this. this.docCount = Files.size(this.path)/1000; - // SegmentName = FileName - this.segmentName = path.split("/")[path.split("/").length - 1]; + // SegmentName is same as fileName + this.segmentName = path; } public Path getPath() { return path; } From 76421790a7cf2c956f3bf869b486a8313d27b3d7 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:46:28 +0530 Subject: [PATCH 040/112] Adding RowId in the Composite Document Input (#19823) Signed-off-by: Sagar Darji --- .../fields/ArrowSchemaBuilder.java | 4 ++++ .../writer/ParquetDocumentInput.java | 9 +++++++++ .../index/engine/exec/DocumentInput.java | 2 ++ .../composite/CompositeDataFormatWriter.java | 18 +++++++++++++++++- .../engine/exec/lucene/LuceneIEEngine.java | 6 ++++++ .../index/engine/exec/text/TextEngine.java | 5 +++++ 6 files changed, 43 insertions(+), 1 deletion(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java index 3244bddc2f832..21ceea50cea08 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java @@ -8,8 +8,10 @@ package com.parquet.parquetdataformat.fields; +import com.parquet.parquetdataformat.fields.core.data.number.LongParquetField; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.Mapper; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.mapper.MetadataFieldMapper; @@ -69,6 +71,8 @@ private static List extractFieldsFromMappers(final MapperService mapperSe fields.add(arrowField); } + fields.add(new Field(CompositeDataFormatWriter.ROW_ID, new LongParquetField().getFieldType(), null)); + return fields; } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java index 922baa115b8d6..1f3b6a702f4ff 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java @@ -2,8 +2,10 @@ import com.parquet.parquetdataformat.fields.ArrowFieldRegistry; import com.parquet.parquetdataformat.fields.ParquetField; +import org.apache.arrow.vector.BigIntVector; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.WriteResult; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.mapper.MappedFieldType; import com.parquet.parquetdataformat.vsr.ManagedVSR; @@ -36,6 +38,13 @@ public ParquetDocumentInput(ManagedVSR managedVSR) { this.managedVSR = managedVSR; } + @Override + public void addRowIdField(String fieldName, long rowId) { + BigIntVector bigIntVector = (BigIntVector) managedVSR.getVector(CompositeDataFormatWriter.ROW_ID); + int rowCount = managedVSR.getRowCount(); + bigIntVector.setSafe(rowCount, rowId); + } + @Override public void addField(MappedFieldType fieldType, Object value) { final String fieldTypeName = fieldType.typeName(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java index 0f24ca036741d..3ff510c3572f2 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java @@ -15,6 +15,8 @@ @ExperimentalApi public interface DocumentInput extends AutoCloseable { + void addRowIdField(String fieldName, long rowId); + void addField(MappedFieldType fieldType, Object value); T getFinalInput(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 58a224d0fe9ae..7f0dba530a694 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -13,6 +13,7 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.FileInfos; +import org.opensearch.index.engine.exec.RowIdGenerator; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; @@ -38,6 +39,8 @@ public class CompositeDataFormatWriter implements Writer hasFlushed = new SetOnce<>(); private final long writerGeneration; private boolean aborted; + private final RowIdGenerator rowIdGenerator; + public static final String ROW_ID = "_row_id"; public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, long writerGeneration) { @@ -55,6 +58,7 @@ public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, this.postWrite = () -> { engine.getDataFormatWriterPool().releaseAndUnlock(this); }; + this.rowIdGenerator = new RowIdGenerator(CompositeDataFormatWriter.class.getName()); } @Override @@ -87,9 +91,14 @@ public void close() { @Override public CompositeDocumentInput newDocumentInput() { - return new CompositeDocumentInput( + + CompositeDocumentInput compositeDocumentInput = new CompositeDocumentInput( writers.stream().map(ImmutablePair::getRight).map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); + + compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); + + return compositeDocumentInput; } void abort() throws IOException { @@ -159,6 +168,13 @@ public CompositeDocumentInput(List> inputs, Composite this.onClose = onClose; } + @Override + public void addRowIdField(String fieldName, long rowId) { + for (DocumentInput input : inputs) { + input.addRowIdField(fieldName, rowId); + } + } + @Override public void addField(MappedFieldType fieldType, Object value) { for (DocumentInput input : inputs) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index ee7737d1717ac..652e2bc286d2e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.lucene; +import org.apache.lucene.document.NumericDocValuesField; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.util.BytesRef; import org.opensearch.index.engine.InternalEngine; @@ -74,6 +75,11 @@ public LuceneDocumentInput(ParseContext.Document doc, IndexWriter w) { this.writer = w; } + @Override + public void addRowIdField(String fieldName, long rowId) { + doc.add(new NumericDocValuesField(fieldName, rowId)); + } + @Override public void addField(MappedFieldType fieldType, Object value) { doc.add(new KeywordFieldMapper.KeywordField("f1", new BytesRef("good_field"), null)); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index f50f7446ab7f8..42324d026b756 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -79,6 +79,11 @@ public TextInput(TextWriter writer) { this.writer = writer; } + @Override + public void addRowIdField(String fieldName, long rowId) { + sb.append(fieldName).append("=").append(rowId).append(";"); + } + @Override public void addField(MappedFieldType fieldType, Object value) { sb.append(fieldType.name()).append("=").append(value).append(";"); From 86b2b76997a709bf41ceb31f49e1ec155162d0fe Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Thu, 30 Oct 2025 19:59:21 +0530 Subject: [PATCH 041/112] Removing files which got merged from catalog snapshot (#19822) Signed-off-by: Dhwanil Patel --- .../engine/ParquetExecutionEngine.java | 3 +++ .../index/engine/exec/RefreshInput.java | 10 +++++++++ .../index/engine/exec/WriterFileSet.java | 21 +++++++++++++++++++ .../engine/exec/coord/CompositeEngine.java | 11 ++++++++-- .../engine/exec/merge/MergeScheduler.java | 2 +- 5 files changed, 44 insertions(+), 3 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 8ad42c6de6bd9..402a9dbe9735b 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -85,6 +85,9 @@ public Merger getMerger() { public RefreshResult refresh(RefreshInput refreshInput) throws IOException { RefreshResult refreshResult = new RefreshResult(); filesWrittenAlready.addAll(refreshInput.getWriterFiles()); + if(!refreshInput.getFilesToRemove().isEmpty()) { + filesWrittenAlready.removeAll(refreshInput.getFilesToRemove()); + } refreshResult.add(PARQUET_DATA_FORMAT, filesWrittenAlready); return refreshResult; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java index 135df6f0855fa..f930eded7f481 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java @@ -14,16 +14,26 @@ public class RefreshInput { private final List writerFiles; + private final List filesToRemove; public RefreshInput() { this.writerFiles = new ArrayList<>(); + this.filesToRemove = new ArrayList<>(); } public void add(WriterFileSet writerFileSetGroup) { this.writerFiles.add(writerFileSetGroup); } + public void addFilesToRemove(WriterFileSet writerFileSetGroup) { + this.filesToRemove.add(writerFileSetGroup); + } + public List getWriterFiles() { return writerFiles; } + + public List getFilesToRemove() { + return filesToRemove; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index 9ab00b4753d74..a68cb84465d4a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -49,4 +49,25 @@ public String toString() { ", files=" + files + '}'; } + + /** + * TODO: + * + * + * equals method was introduced as part of merge. + * From merge we dont have generation information hence for equals ignoring check for generation for now. + * We can revisit this later, as today ParquetExecutionEngine stores the WriterFileSet itself, it should hold the + * FileMetadata as merge might be acting at fileMetadata no writerSet. + */ + @Override + public boolean equals(Object o) { + WriterFileSet other = (WriterFileSet) o; + return this.directory.equals(other.directory) && this.files.equals(other.files); + } + + @Override + public int hashCode() { + return this.directory.hashCode() + this.files.hashCode(); + + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index dc3d586b2c534..e878dc65db936 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -30,6 +30,7 @@ import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.MergeScheduler; import org.opensearch.index.engine.exec.merge.MergeHandler; +import org.opensearch.index.engine.exec.merge.OneMerge; import org.opensearch.index.engine.exec.merge.ParquetMergeHandler; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; @@ -184,7 +185,7 @@ public synchronized void refresh(String source, Map re // triggerPossibleMerges(); } - public void applyMergeChanges(MergeResult mergeResult) { + public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { Map refreshInputs = new HashMap<>(); Map> mergedFileMetadata = mergeResult.getMergedFileMetadata(); @@ -194,10 +195,16 @@ public void applyMergeChanges(MergeResult mergeResult) { mergedFiles.forEach(mergedFile -> { WriterFileSet writerFileSet = new WriterFileSet(Path.of(mergedFile.directory()), 0); - writerFileSet.add(mergedFile.directory()+mergedFile.file()); + writerFileSet.add(mergedFile.directory()+"/"+mergedFile.file()); refreshInput.add(writerFileSet); }); + oneMerge.getFilesToMerge().forEach(fileToMerge -> { + WriterFileSet writerFileSet = new WriterFileSet(Path.of(fileToMerge.directory()), 0); + writerFileSet.add(fileToMerge.directory()+"/"+fileToMerge.file()); + refreshInput.addFilesToRemove(writerFileSet); + }); + refreshInputs.put(dataFormat, refreshInput); } refresh("merge", refreshInputs); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index c3b5658594e63..a38f357f1ab5e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -31,7 +31,7 @@ public void triggerMerges() throws IOException { for(OneMerge oneMerge : oneMerges) { MergeResult mergeResult = mergeHandler.doMerge(oneMerge); - this.compositeEngine.applyMergeChanges(mergeResult); + this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); } } } From e02c8ebfb659bbb12972f7587b2972013e7438c3 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:58:13 -0700 Subject: [PATCH 042/112] Commenting out compile error and fixed a bug in Average Aggregation (#19828) --- .../engine/exec/composite/CompositeDataFormatWriter.java | 8 ++++---- .../search/aggregations/metrics/AvgAggregator.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 7f0dba530a694..544c1cc7f1787 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -13,7 +13,7 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.FileInfos; -import org.opensearch.index.engine.exec.RowIdGenerator; +//import org.opensearch.index.engine.exec.RowIdGenerator; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; @@ -39,7 +39,7 @@ public class CompositeDataFormatWriter implements Writer hasFlushed = new SetOnce<>(); private final long writerGeneration; private boolean aborted; - private final RowIdGenerator rowIdGenerator; + //private final RowIdGenerator rowIdGenerator; public static final String ROW_ID = "_row_id"; public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, @@ -58,7 +58,7 @@ public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, this.postWrite = () -> { engine.getDataFormatWriterPool().releaseAndUnlock(this); }; - this.rowIdGenerator = new RowIdGenerator(CompositeDataFormatWriter.class.getName()); + //this.rowIdGenerator = new RowIdGenerator(CompositeDataFormatWriter.class.getName()); } @Override @@ -96,7 +96,7 @@ public CompositeDocumentInput newDocumentInput() { writers.stream().map(ImmutablePair::getRight).map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); - compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); + //compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); return compositeDocumentInput; } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 0e6bdaf4a32ae..30a146a1a8636 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -296,6 +296,6 @@ public List convert(Map shardResult) { public InternalAggregation convertRow(Map shardResult, int row) { Object[] counts = shardResult.get(name + "_count"); Object[] sums = shardResult.get(name + "_sum"); - return new InternalAvg(name, (Long) counts[row], (Long) sums[row], format, metadata()); + return new InternalAvg(name, (Long) sums[row], (Long) counts[row], format, metadata()); } } From 9e0582273ad2d62ec2416c74ed9d46cd946a2c40 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Thu, 30 Oct 2025 20:47:18 -0700 Subject: [PATCH 043/112] Handling all numeric types for simple metric aggregations (#19834) Signed-off-by: expani --- .../search/aggregations/metrics/AvgAggregator.java | 13 +------------ .../search/aggregations/metrics/MaxAggregator.java | 2 +- .../search/aggregations/metrics/MinAggregator.java | 2 +- .../search/aggregations/metrics/SumAggregator.java | 2 +- .../aggregations/metrics/ValueCountAggregator.java | 2 +- 5 files changed, 5 insertions(+), 16 deletions(-) diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 30a146a1a8636..7c77057429dd0 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -281,21 +281,10 @@ public void collectStarTreeEntry(int starTreeEntryBit, long bucket) throws IOExc }; } - @Override - public List convert(Map shardResult) { - Object[] counts = shardResult.get(name + "_count"); - Object[] sums = shardResult.get(name + "_sum"); - List results = new ArrayList<>(counts.length); - for (int i = 0; i < counts.length; i++) { - results.add(new InternalAvg(name, (Long) sums[i], (Long) counts[i], format, metadata())); - } - return results; - } - @Override public InternalAggregation convertRow(Map shardResult, int row) { Object[] counts = shardResult.get(name + "_count"); Object[] sums = shardResult.get(name + "_sum"); - return new InternalAvg(name, (Long) sums[row], (Long) counts[row], format, metadata()); + return new InternalAvg(name, ((Number) sums[row]).doubleValue(), ((Number) sums[row]).longValue(), format, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java index 5186dcbd26051..8595f162f1fb9 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java @@ -294,6 +294,6 @@ public StreamingCostMetrics getStreamingCostMetrics() { @Override public InternalAggregation convertRow(Map shardResult, int row) { Object[] values = shardResult.get(name); - return new InternalMax(name, (Long) values[row], formatter, metadata()); + return new InternalMax(name, ((Number) values[row]).doubleValue(), formatter, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java index d8eee716351aa..d7658a1744835 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java @@ -280,7 +280,7 @@ public StarTreeBucketCollector getStarTreeBucketCollector( @Override public InternalAggregation convertRow(Map shardResult, int row) { Object[] values = shardResult.get(name); - return new InternalMin(name, (Long) values[row], format, metadata()); + return new InternalMin(name, ((Number) values[row]).doubleValue(), format, metadata()); } @Override diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java index ca71213755698..e6d42419d5755 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java @@ -222,6 +222,6 @@ public void doClose() { @Override public InternalAggregation convertRow(Map shardResult, int row) { Object[] values = shardResult.get(name); - return new InternalSum(name, (Long) values[row], format, metadata()); + return new InternalSum(name, ((Number) values[row]).doubleValue(), format, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java index f0bf15669bf23..b8a2bae1e2912 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java @@ -216,6 +216,6 @@ public StarTreeBucketCollector getStarTreeBucketCollector( @Override public InternalAggregation convertRow(Map shardResult, int row) { Object[] values = shardResult.get(name); - return new InternalValueCount(name, (Long) values[row], metadata()); + return new InternalValueCount(name, ((Number) values[row]).longValue(), metadata()); } } From ce5e47505f7a8297bf15701a4cd698af53b6d1ab Mon Sep 17 00:00:00 2001 From: Shashank Gowri Date: Fri, 31 Oct 2025 10:26:49 +0530 Subject: [PATCH 044/112] Fix for concurrent queue not removing writers while polling (#19836) Co-authored-by: Shashank Gowri --- .../CompositeIndexingExecutionEngine.java | 42 +++++++++++++++---- .../engine/exec/queue/ConcurrentQueue.java | 13 ++++-- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 1a52c1a54b516..17274645f5820 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -9,6 +9,7 @@ package org.opensearch.index.engine.exec.composite; import java.util.Collections; +import java.util.LinkedList; import java.util.concurrent.atomic.AtomicLong; import org.opensearch.index.engine.exec.DataFormat; @@ -40,33 +41,59 @@ public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine private final AtomicLong writerGeneration; private final List> delegates = new ArrayList<>(); - public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, Any dataformat, ShardPath shardPath, long initialWriterGeneration) { + public CompositeIndexingExecutionEngine( + MapperService mapperService, + PluginsService pluginsService, + Any dataformat, + ShardPath shardPath, + long initialWriterGeneration + ) { this.dataFormat = dataformat; this.writerGeneration = new AtomicLong(initialWriterGeneration); try { for (DataFormat dataFormat : dataformat.getDataFormats()) { - DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream().filter(curr -> curr.getDataFormat().equals(dataFormat)).findFirst().orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class) + .stream() + .filter(curr -> curr.getDataFormat().equals(dataFormat)) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); delegates.add(plugin.indexingEngine(mapperService, shardPath)); } } catch (NullPointerException e) { // my own testing delegates.add(new TextEngine()); } - this.dataFormatWriterPool = new CompositeDataFormatWriterPool(() -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), ConcurrentLinkedQueue::new, Runtime.getRuntime().availableProcessors()); + this.dataFormatWriterPool = new CompositeDataFormatWriterPool( + () -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), + LinkedList::new, + Runtime.getRuntime().availableProcessors() + ); } - public CompositeIndexingExecutionEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath, long initialWriterGeneration) { + public CompositeIndexingExecutionEngine( + MapperService mapperService, + PluginsService pluginsService, + ShardPath shardPath, + long initialWriterGeneration + ) { this.writerGeneration = new AtomicLong(initialWriterGeneration); List dataFormats = new ArrayList<>(); try { - DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class).stream().findAny().orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); + DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class) + .stream() + .findAny() + .orElseThrow(() -> new IllegalArgumentException("dataformat [" + DataFormat.TEXT + "] is not registered.")); dataFormats.add(plugin.getDataFormat()); delegates.add(plugin.indexingEngine(mapperService, shardPath)); } catch (NullPointerException e) { delegates.add(new TextEngine()); } this.dataFormat = new Any(dataFormats, dataFormats.get(0)); - this.dataFormatWriterPool = new CompositeDataFormatWriterPool(() -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), ConcurrentLinkedQueue::new, Runtime.getRuntime().availableProcessors()); + this.dataFormatWriterPool = new CompositeDataFormatWriterPool( + () -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), + LinkedList::new, + Runtime.getRuntime().availableProcessors() + ); } @Override @@ -98,7 +125,8 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { // flush to disk for (CompositeDataFormatWriter dataFormatWriter : dataFormatWriters) { FileInfos fileInfos = dataFormatWriter.flush(null); - fileInfos.getWriterFilesMap().forEach((key, value) -> refreshInputs.computeIfAbsent(key, dataFormat -> new RefreshInput()).add(value)); + fileInfos.getWriterFilesMap() + .forEach((key, value) -> refreshInputs.computeIfAbsent(key, dataFormat -> new RefreshInput()).add(value)); } if (refreshInputs.isEmpty()) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java b/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java index 9b8b774063a87..2b77b0f729642 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/queue/ConcurrentQueue.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.queue; +import java.util.Iterator; import java.util.Queue; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -32,7 +33,7 @@ public final class ConcurrentQueue { this.concurrency = concurrency; this.queueSupplier = queueSupplier; locks = new Lock[concurrency]; - @SuppressWarnings({"rawtypes", "unchecked"}) Queue[] queues = new Queue[concurrency]; + @SuppressWarnings({ "rawtypes", "unchecked" }) Queue[] queues = new Queue[concurrency]; this.queues = queues; for (int i = 0; i < concurrency; ++i) { locks[i] = new ReentrantLock(); @@ -77,8 +78,11 @@ T poll(Predicate predicate) { final Queue queue = queues[index]; if (lock.tryLock()) { try { - for (T entry : queue) { + Iterator it = queue.iterator(); + while (it.hasNext()) { + T entry = it.next(); if (predicate.test(entry)) { + it.remove(); return entry; } } @@ -93,8 +97,11 @@ T poll(Predicate predicate) { final Queue queue = queues[index]; lock.lock(); try { - for (T entry : queue) { + Iterator it = queue.iterator(); + while (it.hasNext()) { + T entry = it.next(); if (predicate.test(entry)) { + it.remove(); return entry; } } From c87fa23ed198daba4b5692e873171e7e20bf1e9d Mon Sep 17 00:00:00 2001 From: Shailesh Singh Date: Fri, 31 Oct 2025 11:37:56 +0530 Subject: [PATCH 045/112] return MergeResult [RowIdMapping + Merged parquet file metadata] after merging files (#19824) Signed-off-by: Shailesh Singh Co-authored-by: Shailesh Singh --- .../parquetdataformat/bridge/RustBridge.java | 3 +- .../merge/ParquetMergeExecutor.java | 5 -- .../merge/ParquetMergeStrategy.java | 2 - .../merge/RecordBatchMergeStrategy.java | 71 +++++++++++++++---- .../src/main/rust/Cargo.toml | 2 +- .../src/main/rust/src/lib.rs | 34 ++++----- .../src/main/rust/src/parquet_merge.rs | 4 +- .../index/engine/exec/merge/RowIdMapping.java | 12 ++-- 8 files changed, 89 insertions(+), 44 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 97b306e9d0ee9..5468a89a9c5bd 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -8,6 +8,7 @@ import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.util.Collection; +import java.util.List; import java.util.Locale; import java.util.Set; @@ -119,5 +120,5 @@ public static boolean isValidMemoryAddress(long address) { public static native void nativeCloseSessionContext(long sessionContextPtr); - public static native void mergeParquetFilesInRust(Set inputFiles, String outputFile); + public static native void mergeParquetFilesInRust(List inputFiles, String outputFile); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java index 98838116543da..76e380350a87a 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java @@ -8,14 +8,9 @@ package com.parquet.parquetdataformat.merge; -import org.opensearch.common.collect.Tuple; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.merge.MergeResult; - import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * Executes Parquet merge operations using a chosen compaction strategy. diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java index a6f0dd2855ba6..3f9ef27a7bac1 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java @@ -13,8 +13,6 @@ import org.opensearch.index.engine.exec.merge.MergeResult; import java.util.Collection; -import java.util.List; - /** * Interface defining a Parquet merge strategy. */ diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index 49d3512c9b2f3..4e1a3467abf28 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -8,43 +8,88 @@ package com.parquet.parquetdataformat.merge; +import com.parquet.parquetdataformat.engine.ParquetDataFormat; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowId; import org.opensearch.index.engine.exec.merge.RowIdMapping; -import java.io.File; import java.nio.file.Path; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; +import static com.parquet.parquetdataformat.bridge.RustBridge.getTotalRows; import static com.parquet.parquetdataformat.bridge.RustBridge.mergeParquetFilesInRust; /** * Implements record-batch-based merging of Parquet files. */ public class RecordBatchMergeStrategy implements ParquetMergeStrategy { + private static final AtomicLong generationCounter = new AtomicLong(); @Override public MergeResult mergeParquetFiles(Collection files) { - Set filePaths = files.stream() - .map(fm -> new File(fm.directory(), fm.file()).toPath()) - .collect(Collectors.toSet()); - //todo: fetch correct outputPath - String outputPath = "~/"; + if (files.isEmpty()) { + throw new IllegalArgumentException("No files to merge"); + } - mergeParquetFilesInRust(filePaths, outputPath); - Map mapping = new HashMap<>(); - RowIdMapping rowIdMapping = new RowIdMapping(mapping); - Map> merged = new HashMap<>(); + List filePaths = files.stream() + .map(fm -> Path.of(fm.directory(), fm.file())) + .collect(Collectors.toList()); - //todo: populate MergeResult with actual rowIdMapping and mergedFileMetadata - return new MergeResult(rowIdMapping, merged); + String outputDirectory = files.iterator().next().directory(); + long generation = generationCounter.incrementAndGet(); + String mergedFilePath = getMergedFilePath(generation, outputDirectory); + String mergedFileName = getMergedFileName(generation); + + // Merge files in Rust + mergeParquetFilesInRust(filePaths, mergedFilePath); + + // Build row ID mapping + Map rowIdMapping = new HashMap<>(); + + FileMetadata mergedFileMetadata = new FileMetadata( + outputDirectory, + mergedFileName + ); + Map> mergedFiles = Collections.singletonMap( + new ParquetDataFormat(), + Collections.singletonList(mergedFileMetadata) + ); + + return new MergeResult(new RowIdMapping(rowIdMapping, mergedFileName), mergedFiles); + } + + private String getMergedFileName(long generation) { + return "generation-m-" + generation + ".parquet"; + } + + private String getMergedFilePath(long generation, String outputDirectory) { + return Path.of(outputDirectory, getMergedFileName(generation)).toString(); + } + + private Map buildRowIdMapping(List filePaths) { + Map rowIdMapping = new HashMap<>(); + long newRowId = 0; + + for (Path filePath : filePaths) { + String fileIdentifier = filePath.getFileName().toString(); + String filePathStr = filePath.toString(); + long fileRowCount = getTotalRows(filePathStr); + + for (long currentRowId = 0; currentRowId < fileRowCount; currentRowId++) { + RowId originalRowId = new RowId(currentRowId, fileIdentifier); + rowIdMapping.put(originalRowId, newRowId++); + } + } + + return rowIdMapping; } } diff --git a/modules/parquet-data-format/src/main/rust/Cargo.toml b/modules/parquet-data-format/src/main/rust/Cargo.toml index 21ba3950aa9ac..9591d62fd3d26 100644 --- a/modules/parquet-data-format/src/main/rust/Cargo.toml +++ b/modules/parquet-data-format/src/main/rust/Cargo.toml @@ -5,7 +5,7 @@ edition = "2024" [lib] name = "parquet_dataformat_jni" -crate-type = ["cdylib"] +crate-type = ["cdylib", "lib"] [dependencies] diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index 6ef32c8f5050a..561cd185c529a 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -11,6 +11,8 @@ use arrow::ffi::{FFI_ArrowSchema, FFI_ArrowArray}; use std::fs::OpenOptions; use std::io::Write; use chrono::Utc; +pub mod parquet_merge; +pub use parquet_merge::*; lazy_static! { static ref WRITER_MANAGER: DashMap>>> = DashMap::new(); @@ -25,20 +27,20 @@ impl NativeParquetWriter { let log_msg = format!("[RUST] create_writer called for file: {}, schema_address: {}\n", filename, schema_address); println!("{}", log_msg.trim()); Self::log_to_file(&log_msg); - + let arrow_schema = unsafe { FFI_ArrowSchema::from_raw(schema_address as *mut _) }; let schema = Arc::new(arrow::datatypes::Schema::try_from(&arrow_schema)?); - + let schema_msg = format!("[RUST] Schema created with {} fields\n", schema.fields().len()); println!("{}", schema_msg.trim()); Self::log_to_file(&schema_msg); - + for (i, field) in schema.fields().iter().enumerate() { let field_msg = format!("[RUST] Field {}: {} ({})\n", i, field.name(), field.data_type()); println!("{}", field_msg.trim()); Self::log_to_file(&field_msg); } - + let file = File::create(&filename)?; let file_clone = file.try_clone()?; FILE_MANAGER.insert(filename.clone(), file_clone); @@ -51,40 +53,40 @@ impl NativeParquetWriter { let log_msg = format!("[RUST] write_data called for file: {}, array_address: {}, schema_address: {}\n", filename, array_address, schema_address); println!("{}", log_msg.trim()); Self::log_to_file(&log_msg); - + unsafe { let arrow_schema = FFI_ArrowSchema::from_raw(schema_address as *mut _); let arrow_array = FFI_ArrowArray::from_raw(array_address as *mut _); - + match arrow::ffi::from_ffi(arrow_array, &arrow_schema) { Ok(array_data) => { let data_msg = format!("[RUST] Successfully imported array_data, length: {}\n", array_data.len()); println!("{}", data_msg.trim()); Self::log_to_file(&data_msg); - + let array: Arc = arrow::array::make_array(array_data); let array_msg = format!("[RUST] Array type: {:?}, length: {}\n", array.data_type(), array.len()); println!("{}", array_msg.trim()); Self::log_to_file(&array_msg); - + if let Some(struct_array) = array.as_any().downcast_ref::() { let struct_msg = format!("[RUST] Successfully cast to StructArray with {} columns\n", struct_array.num_columns()); println!("{}", struct_msg.trim()); Self::log_to_file(&struct_msg); - + let schema = Arc::new(arrow::datatypes::Schema::new( struct_array.fields().clone() )); - + let record_batch = RecordBatch::try_new( schema.clone(), struct_array.columns().to_vec(), )?; - + let batch_msg = format!("[RUST] Created RecordBatch with {} rows and {} columns\n", record_batch.num_rows(), record_batch.num_columns()); println!("{}", batch_msg.trim()); Self::log_to_file(&batch_msg); - + if let Some(writer_arc) = WRITER_MANAGER.get(&filename) { let write_msg = "[RUST] Writing RecordBatch to file\n"; println!("{}", write_msg.trim()); @@ -121,7 +123,7 @@ impl NativeParquetWriter { let log_msg = format!("[RUST] close_writer called for file: {}\n", filename); println!("{}", log_msg.trim()); Self::log_to_file(&log_msg); - + if let Some((_, writer_arc)) = WRITER_MANAGER.remove(&filename) { match Arc::try_unwrap(writer_arc) { Ok(mutex) => { @@ -152,12 +154,12 @@ impl NativeParquetWriter { Ok(()) } } - + fn flush_to_disk(filename: String) -> Result<(), Box> { let log_msg = format!("[RUST] fsync_file called for file: {}\n", filename); println!("{}", log_msg.trim()); Self::log_to_file(&log_msg); - + if let Some(mut file) = FILE_MANAGER.get_mut(&filename) { match file.sync_all() { Ok(_) => { @@ -180,7 +182,7 @@ impl NativeParquetWriter { Err("File not found".into()) } } - + fn log_to_file(message: &str) { if let Ok(mut file) = OpenOptions::new() .create(true) diff --git a/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs index 63f6621b2b5b1..03f3498fbef59 100644 --- a/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs +++ b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs @@ -243,8 +243,8 @@ pub fn update_row_ids( } // JNI helper functions -fn convert_java_list_to_vec(env: &mut JNIEnv, set: JObject) -> Result, Box> { - let iterator = env.call_method(&set, "iterator", "()Ljava/util/Iterator;", &[])? +fn convert_java_list_to_vec(env: &mut JNIEnv, list: JObject) -> Result, Box> { + let iterator = env.call_method(&list, "iterator", "()Ljava/util/Iterator;", &[])? .l()?; let mut result = Vec::new(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java index 3ce812d8e6150..27ef6ec347b98 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/RowIdMapping.java @@ -8,18 +8,22 @@ package org.opensearch.index.engine.exec.merge; -import java.util.HashMap; import java.util.Map; public class RowIdMapping { - Map mapping = new HashMap<>(); + Map mapping; + private final String fileId; - public RowIdMapping(Map mapping) { + public RowIdMapping(Map mapping, String fileId) { this.mapping = mapping; + this.fileId = fileId; } - public RowId getNewRowId(RowId oldRowId) { + public long getNewRowId(RowId oldRowId) { return mapping.get(oldRowId); } + public String getFileId() { + return fileId; + } } From c49cfa70b390c1a66bbaa851074a2f16a9d9404e Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:13:14 +0530 Subject: [PATCH 046/112] Fix: Adding the missing rowId generator file (#19838) Signed-off-by: Sagar Darji --- .../index/engine/exec/RowIdGenerator.java | 32 +++++++++++++++++++ .../composite/CompositeDataFormatWriter.java | 8 ++--- 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/RowIdGenerator.java diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RowIdGenerator.java b/server/src/main/java/org/opensearch/index/engine/exec/RowIdGenerator.java new file mode 100644 index 0000000000000..d9de9016dadea --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/RowIdGenerator.java @@ -0,0 +1,32 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec; + +import java.util.concurrent.atomic.AtomicLong; + +public class RowIdGenerator { + + private final AtomicLong globalCounter; + private final String generatorId; + + public RowIdGenerator(String generatorId) { + this.generatorId = generatorId; + this.globalCounter = new AtomicLong(0); + } + + /** + * Generates the next monotonic row ID. + * Thread-safe and atomic operation. + * + * @return Next sequential row ID + */ + public long getAndIncrementRowId() { + return globalCounter.getAndIncrement(); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 544c1cc7f1787..7f0dba530a694 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -13,7 +13,7 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.FileInfos; -//import org.opensearch.index.engine.exec.RowIdGenerator; +import org.opensearch.index.engine.exec.RowIdGenerator; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; @@ -39,7 +39,7 @@ public class CompositeDataFormatWriter implements Writer hasFlushed = new SetOnce<>(); private final long writerGeneration; private boolean aborted; - //private final RowIdGenerator rowIdGenerator; + private final RowIdGenerator rowIdGenerator; public static final String ROW_ID = "_row_id"; public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, @@ -58,7 +58,7 @@ public CompositeDataFormatWriter(CompositeIndexingExecutionEngine engine, this.postWrite = () -> { engine.getDataFormatWriterPool().releaseAndUnlock(this); }; - //this.rowIdGenerator = new RowIdGenerator(CompositeDataFormatWriter.class.getName()); + this.rowIdGenerator = new RowIdGenerator(CompositeDataFormatWriter.class.getName()); } @Override @@ -96,7 +96,7 @@ public CompositeDocumentInput newDocumentInput() { writers.stream().map(ImmutablePair::getRight).map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); - //compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); + compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); return compositeDocumentInput; } From e6b66e06e467173bf9bf3b111ea924759a6c129c Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Fri, 31 Oct 2025 13:00:25 +0530 Subject: [PATCH 047/112] Enabling merges (#19839) Signed-off-by: Dhwanil Patel --- .../index/engine/exec/coord/CompositeEngine.java | 6 +++--- .../index/engine/exec/merge/ParquetMergeHandler.java | 8 ++++---- .../index/engine/exec/merge/ParquetTieredMergePolicy.java | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index e878dc65db936..5ba4d998f7682 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -180,9 +180,8 @@ public synchronized void refresh(String source, Map re } }); -// TODO: Enable merge -// // trigger merges -// triggerPossibleMerges(); + // trigger merges + triggerPossibleMerges(); } public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { @@ -208,6 +207,7 @@ public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { refreshInputs.put(dataFormat, refreshInput); } refresh("merge", refreshInputs); + System.out.println("Merge Completed :: files: " + oneMerge.getFilesToMerge() + " Output : " + mergeResult.getMergedFileMetadata()); } public void triggerPossibleMerges() { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 8217534bc6c4f..6237bc258d517 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -36,10 +36,10 @@ public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExe mergePolicy = new ParquetTieredMergePolicy(); // Merge Policy configurations - this.mergePolicy.setMaxMergedSegmentMB(100); - this.mergePolicy.setSegmentsPerTier(2.0); - this.mergePolicy.setMaxMergeAtOnce(5); - this.mergePolicy.setFloorSegmentMB(1.0); + this.mergePolicy.setMaxMergedSegmentMB(2000); + this.mergePolicy.setSegmentsPerTier(10.0); +// this.mergePolicy.setMaxMergeAtOnce(5); +// this.mergePolicy.setFloorSegmentMB(1.0); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index 2c9639c2c491e..fc620bb898ebd 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -32,7 +32,8 @@ public ParquetTieredMergePolicy() { this.infoStream = new InfoStream() { @Override public void message(String s, String s1) { - System.out.println("Parquet merge: " + s + " : " + s1); + // TODO: Add logger + // System.out.println("Parquet merge: " + s + " : " + s1); } @Override From 45d6b75eb3afe7f14e81be09141d25e67bf8173f Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Fri, 31 Oct 2025 13:44:54 +0530 Subject: [PATCH 048/112] updating the row id name form _row_id to ___row_id (#19840) Signed-off-by: Sagar Darji --- .../index/engine/exec/composite/CompositeDataFormatWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 7f0dba530a694..7de97a09b2bbb 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -40,7 +40,7 @@ public class CompositeDataFormatWriter implements Writer Date: Fri, 31 Oct 2025 15:24:06 +0530 Subject: [PATCH 049/112] Native memory leak fix + indexing perf regression fix + ZSTD change (#19801) Signed-off-by: rayshrey --- .gitattributes | 1 + distribution/src/config/jvm.options | 13 ++++ modules/parquet-data-format/build.gradle | 3 + .../parquetdataformat/bridge/ArrowExport.java | 2 + .../memory/ArrowBufferPool.java | 76 +++++++++---------- .../parquetdataformat/vsr/VSRManager.java | 4 +- .../parquetdataformat/vsr/VSRPool.java | 3 + .../src/main/rust/src/lib.rs | 8 +- .../composite/CompositeDataFormatWriter.java | 4 +- .../CompositeIndexingExecutionEngine.java | 1 + 10 files changed, 73 insertions(+), 42 deletions(-) diff --git a/.gitattributes b/.gitattributes index c19ea2202f725..383ae2002ab50 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,5 +11,6 @@ *.crt binary *.p12 binary *.ttf binary +*.parquet binary *.txt text=auto CHANGELOG.md merge=union diff --git a/distribution/src/config/jvm.options b/distribution/src/config/jvm.options index 90346e2377a8b..731c934aee8be 100644 --- a/distribution/src/config/jvm.options +++ b/distribution/src/config/jvm.options @@ -87,6 +87,19 @@ ${error.file} 21-:-javaagent:agent/opensearch-agent.jar 21-:--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED +# Heap size settings +# -Xms32g +# -Xmx32g + +# Enable native memory tracking +-XX:NativeMemoryTracking=summary + +# Allow jcmd to attach to the process (required for 'jcmd VM.native_memory' commands) +-XX:+UnlockDiagnosticVMOptions + +# Enabling debug logs for Allocators in Arrow +-Darrow.memory.debug.allocator=true + # For cases with high memory-mapped file counts, a lower value can improve stability and # prevent issues like "leaked" maps or performance degradation. A value of 1 effectively # disables the shared Arena pooling and uses a confined Arena for each MMapDirectory diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index cf0b223a85cac..aef8ce70a43e0 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -107,6 +107,9 @@ dependencies { // SLF4J logging implementation (required by Apache Arrow) implementation 'org.slf4j:slf4j-api:2.0.17' + + // Bridge for slf4j<-->log4j compatibility + implementation "org.apache.logging.log4j:log4j-slf4j2-impl:2.23.1" } test { diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java index 694df0c4a9f47..1adf01e5989d1 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/ArrowExport.java @@ -28,9 +28,11 @@ public long getSchemaAddress() { @Override public void close() { if (arrowArray != null) { + arrowArray.release(); arrowArray.close(); } if (arrowSchema != null) { + arrowSchema.release(); arrowSchema.close(); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java index 83e60d863aeb5..89616410b2efc 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java @@ -15,44 +15,44 @@ * based on OpenSearch settings and memory pressure conditions. */ public class ArrowBufferPool { - + private final Settings settings; private final long maxAllocation; private final long initReservation; private final AllocationListener allocationListener; private final MemoryPressureMonitor memoryMonitor; - + // Track active allocators for monitoring and cleanup private final ConcurrentHashMap activeAllocators; private final AtomicLong totalAllocated; - + public ArrowBufferPool(Settings settings, MemoryPressureMonitor memoryMonitor) { this.settings = settings; this.memoryMonitor = memoryMonitor; this.activeAllocators = new ConcurrentHashMap<>(); this.totalAllocated = new AtomicLong(0); - + // Configure memory limits - parse size strings manually this.maxAllocation = parseByteSize(settings.get("parquet.memory.max_allocation", "1gb")); this.initReservation = parseByteSize(settings.get("parquet.memory.init_reservation", "100mb")); - + // Set up allocation listener for monitoring this.allocationListener = new PoolAllocationListener(); } - + /** * Creates a new child allocator with the configured strategy and limits. - * + * * @param name Unique name for the allocator * @return BufferAllocator configured with pool settings */ public BufferAllocator createAllocator(String name) { return createAllocator(name, initReservation, maxAllocation); } - + /** * Creates a new child allocator with custom limits. - * + * * @param name Unique name for the allocator * @param reservation Initial reservation amount * @param maxBytes Maximum allocation limit @@ -64,20 +64,20 @@ public BufferAllocator createAllocator(String name, long reservation, long maxBy throw new OutOfMemoryError( "Cannot create allocator '" + name + "': memory pressure too high"); } - + BufferAllocator rootAllocator = createRootAllocator(); - BufferAllocator childAllocator = rootAllocator.newChildAllocator( - name, allocationListener, reservation, maxBytes); - - activeAllocators.put(name, childAllocator); + //BufferAllocator childAllocator = rootAllocator.newChildAllocator( + // name, allocationListener, reservation, maxBytes); + + activeAllocators.put(name, rootAllocator); totalAllocated.addAndGet(reservation); - - return childAllocator; + + return rootAllocator; } - + /** * Releases an allocator and cleans up resources. - * + * * @param name Name of the allocator to release */ public void releaseAllocator(String name) { @@ -88,10 +88,10 @@ public void releaseAllocator(String name) { allocator.close(); } } - + /** * Gets current memory allocation statistics. - * + * * @return AllocationStats with current usage information */ public AllocationStats getStats() { @@ -102,7 +102,7 @@ public AllocationStats getStats() { memoryMonitor.getCurrentPressure() ); } - + /** * Closes all active allocators and cleans up the pool. */ @@ -111,12 +111,12 @@ public void close() { activeAllocators.clear(); totalAllocated.set(0); } - + private BufferAllocator createRootAllocator() { // Create a simple RootAllocator with basic settings return new RootAllocator(maxAllocation); } - + /** * Simple byte size parser for configuration strings. */ @@ -124,10 +124,10 @@ private long parseByteSize(String sizeStr) { if (sizeStr == null || sizeStr.trim().isEmpty()) { return 0; } - + String trimmed = sizeStr.trim().toLowerCase(); long multiplier = 1; - + if (trimmed.endsWith("kb")) { multiplier = 1024; trimmed = trimmed.substring(0, trimmed.length() - 2); @@ -140,53 +140,53 @@ private long parseByteSize(String sizeStr) { } else if (trimmed.endsWith("b")) { trimmed = trimmed.substring(0, trimmed.length() - 1); } - + try { return Long.parseLong(trimmed.trim()) * multiplier; } catch (NumberFormatException e) { throw new IllegalArgumentException("Invalid byte size format: " + sizeStr, e); } } - + /** * Allocation listener that integrates with memory monitoring. */ private class PoolAllocationListener implements AllocationListener { - + @Override public void onPreAllocation(long size) { if (memoryMonitor.shouldRejectAllocation(size)) { throw new OutOfMemoryError("Memory pressure too high for allocation of " + size + " bytes"); } } - + @Override public void onAllocation(long size) { memoryMonitor.recordAllocation(size); } - + @Override public void onRelease(long size) { memoryMonitor.recordDeallocation(size); } - + @Override public boolean onFailedAllocation(long size, AllocationOutcome outcome) { memoryMonitor.recordFailedAllocation(size, "FAILED"); return false; // Don't retry } - + @Override public void onChildAdded(BufferAllocator parentAllocator, BufferAllocator childAllocator) { // Track child allocator creation } - + @Override public void onChildRemoved(BufferAllocator parentAllocator, BufferAllocator childAllocator) { // Track child allocator removal } } - + /** * Allocation statistics for monitoring. */ @@ -195,20 +195,20 @@ public static class AllocationStats { private final long maxAllocation; private final int activeAllocators; private final double memoryPressure; - - public AllocationStats(long totalAllocated, long maxAllocation, + + public AllocationStats(long totalAllocated, long maxAllocation, int activeAllocators, double memoryPressure) { this.totalAllocated = totalAllocated; this.maxAllocation = maxAllocation; this.activeAllocators = activeAllocators; this.memoryPressure = memoryPressure; } - + public long getTotalAllocated() { return totalAllocated; } public long getMaxAllocation() { return maxAllocation; } public int getActiveAllocators() { return activeAllocators; } public double getMemoryPressure() { return memoryPressure; } - public double getUtilizationRatio() { + public double getUtilizationRatio() { return maxAllocation > 0 ? (double) totalAllocated / maxAllocation : 0.0; } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java index d7dfbde2948ba..c3ea07b9cf776 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -148,8 +148,8 @@ public void close() { System.err.println("Warning: Failed to close/flush writer: " + e.getMessage()); } - // Complete VSR processing and cleanup - vsrPool.completeVSR(managedVSR); + // Close VSR Pool + vsrPool.close(); managedVSR = null; } catch (Exception e) { diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java index 088a990353157..7db0bc6066b84 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java @@ -227,6 +227,9 @@ public void close() { frozen.close(); } + bufferPool.close(); + memoryMonitor.close(); + // Close any remaining VSRs allVSRs.values().forEach(ManagedVSR::close); allVSRs.clear(); diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index 561cd185c529a..506f5659dd26a 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -11,6 +11,9 @@ use arrow::ffi::{FFI_ArrowSchema, FFI_ArrowArray}; use std::fs::OpenOptions; use std::io::Write; use chrono::Utc; +use parquet::basic::{Compression, ZstdLevel}; +use parquet::file::properties::WriterProperties; + pub mod parquet_merge; pub use parquet_merge::*; @@ -44,7 +47,10 @@ impl NativeParquetWriter { let file = File::create(&filename)?; let file_clone = file.try_clone()?; FILE_MANAGER.insert(filename.clone(), file_clone); - let writer = ArrowWriter::try_new(file, schema, None)?; + let props = WriterProperties::builder() + .set_compression(Compression::ZSTD(ZstdLevel::try_new(3).unwrap())) + .build(); + let writer = ArrowWriter::try_new(file, schema, Some(props))?; WRITER_MANAGER.insert(filename, Arc::new(Mutex::new(writer))); Ok(()) } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 7de97a09b2bbb..319103ec70f0b 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -86,7 +86,9 @@ public void sync() throws IOException { @Override public void close() { - + for (ImmutablePair>> writerPair : writers) { + writerPair.getRight().close(); + } } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 17274645f5820..78394de19aa71 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -127,6 +127,7 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { FileInfos fileInfos = dataFormatWriter.flush(null); fileInfos.getWriterFilesMap() .forEach((key, value) -> refreshInputs.computeIfAbsent(key, dataFormat -> new RefreshInput()).add(value)); + dataFormatWriter.close(); } if (refreshInputs.isEmpty()) { From 9989ff20be0d3d0148fe56c55cb50e388e771a78 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Fri, 31 Oct 2025 12:51:41 -0400 Subject: [PATCH 050/112] Update datafusion build script in jenkins (#19852) Signed-off-by: Peter Zhu --- scripts/build.sh | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index a0917776507be..1b9fac8a669fd 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -70,15 +70,19 @@ fi [ -z "$OUTPUT" ] && OUTPUT=artifacts +echo "Creating output directory $OUTPUT/maven/org/opensearch if it doesn't already exist" mkdir -p $OUTPUT/maven/org/opensearch # Build project and publish to maven local. -./gradlew publishToMavenLocal -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +echo "Building and publishing OpenSearch project to Maven Local" +./gradlew publishToMavenLocal -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease # Publish to existing test repo, using this to stage release versions of the artifacts that can be released from the same build. -./gradlew publishNebulaPublicationToTestRepository -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +echo "Publishing OpenSearch to Test Repository" +./gradlew publishNebulaPublicationToTestRepository -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease # Copy maven publications to be promoted +echo "Copying Maven publications to $OUTPUT/maven/org" cp -r ./build/local-test-repo/org/opensearch "${OUTPUT}"/maven/org # Assemble distribution artifact @@ -103,6 +107,27 @@ case $PLATFORM-$DISTRIBUTION-$ARCHITECTURE in TARGET="$PLATFORM-arm64-$PACKAGE" SUFFIX="$PLATFORM-arm64" ;; + linux-tar-ppc64le) + PACKAGE="tar" + EXT="tar.gz" + TYPE="archives" + TARGET="$PLATFORM-ppc64le-$PACKAGE" + SUFFIX="$PLATFORM-ppc64le" + ;; + linux-deb-x64) + PACKAGE="deb" + EXT="deb" + TYPE="packages" + TARGET="deb" + SUFFIX="amd64" + ;; + linux-deb-arm64) + PACKAGE="deb" + EXT="deb" + TYPE="packages" + TARGET="arm64-deb" + SUFFIX="arm64" + ;; linux-rpm-x64) PACKAGE="rpm" EXT="rpm" @@ -139,9 +164,10 @@ esac echo "Building OpenSearch for $PLATFORM-$DISTRIBUTION-$ARCHITECTURE" -./gradlew :distribution:$TYPE:$TARGET:assemble -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER +./gradlew :distribution:$TYPE:$TARGET:assemble -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease # Copy artifact to dist folder in bundle build output +echo "Copying artifact to ${OUTPUT}/dist" [[ "$SNAPSHOT" == "true" ]] && IDENTIFIER="-SNAPSHOT" ARTIFACT_BUILD_NAME=`ls distribution/$TYPE/$TARGET/build/distributions/ | grep "opensearch-min.*$SUFFIX.$EXT"` mkdir -p "${OUTPUT}/dist" @@ -150,7 +176,7 @@ cp distribution/$TYPE/$TARGET/build/distributions/$ARTIFACT_BUILD_NAME "${OUTPUT echo "Building core plugins..." mkdir -p "${OUTPUT}/core-plugins" cd plugins -../gradlew assemble -Dbuild.snapshot="$SNAPSHOT" -Dbuild.version_qualifier=$QUALIFIER +../gradlew assemble -Dbuild.snapshot="$SNAPSHOT" -Dbuild.version_qualifier=$QUALIFIER -PrustRelease cd .. for plugin in plugins/*; do PLUGIN_NAME=$(basename "$plugin") From 656ec5b713a8781ae0a61e04a8376711aae2400a Mon Sep 17 00:00:00 2001 From: Bharathwaj G Date: Fri, 31 Oct 2025 23:25:32 +0530 Subject: [PATCH 051/112] local recovery via catalogsnapshot (#19841) Signed-off-by: bharath-techie --- .../index/engine/exec/WriterFileSet.java | 31 ++++++- .../exec/commit/LuceneCommitEngine.java | 21 ++++- .../engine/exec/coord/CatalogSnapshot.java | 88 ++++++++++++++++++- .../engine/exec/coord/CompositeEngine.java | 16 +++- 4 files changed, 147 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index a68cb84465d4a..285f555023f8e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -8,12 +8,17 @@ package org.opensearch.index.engine.exec; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.common.io.stream.Writeable; + +import java.io.IOException; import java.io.Serializable; import java.nio.file.Path; import java.util.HashSet; import java.util.Set; -public class WriterFileSet implements Serializable { +public class WriterFileSet implements Serializable, Writeable { private final String directory; private final long writerGeneration; @@ -25,6 +30,30 @@ public WriterFileSet(Path directory, long writerGeneration) { this.directory = directory.toString(); } + public WriterFileSet(StreamInput in) throws IOException { + this.directory = in.readString(); + this.writerGeneration = in.readLong(); + + int fileCount = in.readVInt(); + this.files = new HashSet<>(fileCount); + for (int i = 0; i < fileCount; i++) { + this.files.add(in.readString()); + } + } + + /** + * Serialize this WriterFileSet to StreamOutput + */ + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeString(directory); + out.writeLong(writerGeneration); + out.writeVInt(files.size()); + for (String file : files) { + out.writeString(file); + } + } + public void add(String file) { this.files.add(file); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java index 6a09850fdbfbb..0f5d1cb293484 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -47,12 +47,27 @@ public void addLuceneIndexes(CatalogSnapshot catalogSnapshot) { throw new RuntimeException(e); } }); - Map userData = new HashMap<>(); - catalogSnapshot.getSegments().forEach(segment -> userData.put(String.valueOf(segment.getGeneration()), - new String(SerializationUtils.serialize(segment)))); + + Map userData = null; + try { + userData = catalogSnapshot.toCommitUserData(); + } catch (IOException e) { + throw new RuntimeException(e); + } indexWriter.setLiveCommitData(userData.entrySet()); } + public CatalogSnapshot readCatalogSnapshot() throws IOException { + if(indexWriter.getLiveCommitData().iterator().hasNext()) { + Map.Entry entry = indexWriter.getLiveCommitData().iterator().next(); + return CatalogSnapshot.fromCommitUserData(entry.getValue()); + } + return null; + } + public IndexWriter getIndexWriter() { + return indexWriter; + } + @Override public CommitPoint commit(CatalogSnapshot catalogSnapshot) { addLuceneIndexes(catalogSnapshot); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index f7f8ba1bed30c..576f86ee1c231 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -9,13 +9,20 @@ package org.opensearch.index.engine.exec.coord; import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.common.io.stream.BytesStreamOutput; import org.opensearch.common.util.concurrent.AbstractRefCounted; +import org.opensearch.core.common.io.stream.BytesStreamInput; +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.common.io.stream.Writeable; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriterFileSet; +import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; +import java.util.Base64; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -23,10 +30,11 @@ import java.util.Map; @ExperimentalApi -public class CatalogSnapshot extends AbstractRefCounted { +public class CatalogSnapshot extends AbstractRefCounted implements Writeable { private final long id; private final Map> dfGroupedSearchableFiles; + private static final String CATALOG_SNAPSHOT_KEY = "_catalog_snapshot_"; public CatalogSnapshot(RefreshResult refreshResult, long id) { super("catalog_snapshot"); @@ -35,6 +43,60 @@ public CatalogSnapshot(RefreshResult refreshResult, long id) { refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles)); } + public CatalogSnapshot(StreamInput in) throws IOException { + super("catalog_snapshot"); + this.id = in.readLong(); + this.dfGroupedSearchableFiles = new HashMap<>(); + + int mapSize = in.readVInt(); + for (int i = 0; i < mapSize; i++) { + String dataFormat = in.readString(); + int fileSetCount = in.readVInt(); + List fileSets = new ArrayList<>(fileSetCount); + for (int j = 0; j < fileSetCount; j++) { + fileSets.add(new WriterFileSet(in)); + } + dfGroupedSearchableFiles.put(dataFormat, fileSets); + } + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeLong(id); + out.writeVInt(dfGroupedSearchableFiles.size()); + for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { + out.writeString(entry.getKey()); + out.writeVInt(entry.getValue().size()); + for (WriterFileSet fileSet : entry.getValue()) { + fileSet.writeTo(out); + } + } + } + + public String serializeToString() throws IOException { + try (BytesStreamOutput out = new BytesStreamOutput()) { + this.writeTo(out); + return Base64.getEncoder().encodeToString(out.bytes().toBytesRef().bytes); + } + } + + public static CatalogSnapshot deserializeFromString(String serializedData) throws IOException { + byte[] bytes = Base64.getDecoder().decode(serializedData); + try (BytesStreamInput in = new BytesStreamInput(bytes)) { + return new CatalogSnapshot(in); + } + } + + public Map toCommitUserData() throws IOException { + Map userData = new HashMap<>(); + userData.put(CATALOG_SNAPSHOT_KEY, serializeToString()); + return userData; + } + + public static CatalogSnapshot fromCommitUserData(String userData) throws IOException { + return deserializeFromString(userData); + } + public Collection getSearchableFiles(String dataFormat) { if (dfGroupedSearchableFiles.containsKey(dataFormat)) { return dfGroupedSearchableFiles.get(dataFormat); @@ -68,7 +130,7 @@ public String toString() { '}'; } - public static class Segment implements Serializable { + public static class Segment implements Serializable, Writeable { private final long generation; private final Map dfGroupedSearchableFiles; @@ -78,6 +140,28 @@ public Segment(long generation) { this.generation = generation; } + public Segment(StreamInput in) throws IOException { + this.generation = in.readLong(); + this.dfGroupedSearchableFiles = new HashMap<>(); + + int mapSize = in.readVInt(); + for (int i = 0; i < mapSize; i++) { + String dataFormat = in.readString(); + WriterFileSet fileSet = new WriterFileSet(in); + dfGroupedSearchableFiles.put(dataFormat, fileSet); + } + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeLong(generation); + out.writeVInt(dfGroupedSearchableFiles.size()); + for (Map.Entry entry : dfGroupedSearchableFiles.entrySet()) { + out.writeString(entry.getKey()); + entry.getValue().writeTo(out); + } + } + public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGroup) { dfGroupedSearchableFiles.put(dataFormat, writerFileSetGroup); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 5ba4d998f7682..4ef83cc5726c8 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.coord; +import org.apache.commons.lang3.SerializationUtils; import org.apache.lucene.search.ReferenceManager; import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; @@ -48,6 +49,7 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -67,17 +69,18 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath, 0); - Path committerPath = Files.createTempDirectory("lucene-committer-index"); - this.compositeEngineCommitter = new LuceneCommitEngine(committerPath); - + this.compositeEngineCommitter = new LuceneCommitEngine(shardPath.getDataPath()); + this.catalogSnapshot = ((LuceneCommitEngine)this.compositeEngineCommitter).readCatalogSnapshot(); this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat()); mergeScheduler = new MergeScheduler(this.mergeHandler, this); // Refresh here so that catalog snapshot gets initialized // TODO : any better way to do this ? refresh("start"); + // TODO : how to extend this for Lucene ? where engine is a r/w engine // Create read specific engines for each format which is associated with shard + for (SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { for (org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); @@ -99,6 +102,13 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic } } } + catalogSnapshotAwareRefreshListeners.forEach(ref -> { + try { + ref.afterRefresh(true, catalogSnapshot); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); } public SearchExecEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { From a1d38683bd219e3a40864c69ead815ea2f7502d0 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Sat, 1 Nov 2025 00:17:34 +0530 Subject: [PATCH 052/112] Dynamic index name (#19853) * Dynamic index name Signed-off-by: Arpit Bandejiya * Remap paths Signed-off-by: Arpit Bandejiya --------- Signed-off-by: Arpit Bandejiya --- plugins/engine-datafusion/jni/src/lib.rs | 35 +++++++++++-------- .../datafusion/DataFusionQueryJNI.java | 2 +- .../datafusion/DatafusionEngine.java | 10 +++--- .../datafusion/search/DatafusionQuery.java | 8 ++++- .../datafusion/search/DatafusionSearcher.java | 4 +-- .../datafusion/DataFusionServiceTests.java | 2 +- .../action/search/TransportSearchAction.java | 2 +- .../index/engine/exec/WriterFileSet.java | 14 ++++++++ .../engine/exec/coord/CatalogSnapshot.java | 26 ++++++++++++++ .../engine/exec/coord/CompositeEngine.java | 4 +++ .../SearchEngineResultConversionUtils.java | 2 +- 11 files changed, 83 insertions(+), 26 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 7155154d14e75..0e8585f1a8750 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -5,33 +5,34 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ -use std::ptr::addr_of_mut; +use arrow_array::ffi::FFI_ArrowArray; +use arrow_array::{Array, StructArray}; +use arrow_schema::ffi::FFI_ArrowSchema; use jni::objects::{JByteArray, JClass, JObject}; use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; +use std::ptr::addr_of_mut; use std::sync::Arc; -use arrow_array::{Array, StructArray}; -use arrow_array::ffi::FFI_ArrowArray; -use arrow_schema::DataType; -use arrow_schema::ffi::FFI_ArrowSchema; mod util; mod row_id_optimizer; mod listing_table; +mod memory; use datafusion::execution::context::SessionContext; +use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; use crate::util::{create_object_meta_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok}; use datafusion::datasource::file_format::csv::CsvFormat; -use datafusion::datasource::listing::{ListingTableUrl}; +use datafusion::datasource::file_format::parquet::ParquetFormat; +use datafusion::datasource::listing::ListingTableUrl; use datafusion::execution::cache::cache_manager::CacheManagerConfig; use datafusion::execution::cache::cache_unit::DefaultListFilesCache; use datafusion::execution::cache::CacheAccessor; use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; +use datafusion::physical_plan::SendableRecordBatchStream; use datafusion::prelude::SessionConfig; use datafusion::DATAFUSION_VERSION; -use datafusion::datasource::file_format::parquet::ParquetFormat; -use datafusion::physical_plan::SendableRecordBatchStream; use datafusion_substrait::logical_plan::consumer::from_substrait_plan; use datafusion_substrait::substrait::proto::Plan; use futures::TryStreamExt; @@ -39,8 +40,12 @@ use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; use tokio::runtime::Runtime; -use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; -use crate::row_id_optimizer::FilterRowIdOptimizer; +use std::thread; +use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use std::fs::OpenOptions; +use std::io::Write; +use std::sync::atomic::{AtomicBool, Ordering}; + /// Create a new DataFusion session context #[no_mangle] @@ -199,12 +204,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, + table_name: JString, substrait_bytes: jbyteArray, tokio_runtime_env_ptr: jlong, // callback: JObject, ) -> jlong { let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; + let table_name: String = env.get_string(&table_name).expect("Couldn't get java string!").into(); let table_path = shard_view.table_path(); let files_meta = shard_view.files_meta(); @@ -254,7 +261,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table("index-7", provider) + ctx.register_table(table_name, provider) .expect("Failed to attach the Table"); }); @@ -273,7 +280,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let substrait_plan = match Plan::decode(plan_bytes_vec.as_slice()) { Ok(plan) => { - println!("SUBSTRAIT rust: Decoding is successful, Plan has {} relations", plan.relations.len()); + // println!("SUBSTRAIT rust: Decoding is successful, Plan has {} relations", plan.relations.len()); plan }, Err(e) => { @@ -286,7 +293,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { - println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); + // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); plan }, Err(e) => { @@ -298,7 +305,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let dataframe = ctx.execute_logical_plan(logical_plan).await.unwrap(); let stream = dataframe.execute_stream().await.unwrap(); let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; - + // println!("The memory used currently right now: {:?}", jemalloc_stats::refresh_allocated()); stream_ptr }) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index 6cdc09bd040f7..06a8cc0882132 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -113,7 +113,7 @@ private static synchronized void loadNativeLibrary() { * @param substraitPlan the serialized Substrait query plan * @return stream pointer for result iteration */ - public static native long executeSubstraitQuery(long cachePtr, byte[] substraitPlan, long runtimePtr); + public static native long executeSubstraitQuery(long cachePtr, String tableName, byte[] substraitPlan, long runtimePtr); public static native long createDatafusionReader(String path, String[] files); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 479d6cf03abc0..e7a49daf970f9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -80,7 +80,7 @@ public QueryPhaseExecutor getQueryPhaseExecutor() { public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, BigArrays bigArrays, SearchContext originalContext) throws IOException { DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this, bigArrays, originalContext); // Parse source - datafusionContext.datafusionQuery(new DatafusionQuery(request.source().queryPlanIR(), new ArrayList<>())); + datafusionContext.datafusionQuery(new DatafusionQuery(request.shardId().getIndexName(), request.source().queryPlanIR(), new ArrayList<>())); return datafusionContext; } @@ -191,10 +191,10 @@ public void collect(RecordBatchStream value) { collector.collect(stream); } - logger.info("Final Results:"); - for (Map.Entry entry : finalRes.entrySet()) { - logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); - } +// logger.info("Final Results:"); +// for (Map.Entry entry : finalRes.entrySet()) { +// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); +// } } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java index 7c266b21a8e06..9a9cdd6aae182 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java @@ -12,12 +12,14 @@ import java.util.List; public class DatafusionQuery { + private String indexName; private final byte[] substraitBytes; // List of Search executors which returns a result iterator which contains row id which can be joined in datafusion private final List searchExecutors; - public DatafusionQuery(byte[] substraitBytes, List searchExecutors) { + public DatafusionQuery(String indexName, byte[] substraitBytes, List searchExecutors) { + this.indexName = indexName; this.substraitBytes = substraitBytes; this.searchExecutors = searchExecutors; } @@ -29,4 +31,8 @@ public byte[] getSubstraitBytes() { public List getSearchExecutors() { return searchExecutors; } + + public String getIndexName() { + return indexName; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 53b1db13bdd12..c3a37fbe26063 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -40,7 +40,7 @@ public String source() { public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native // TODO : change RunTimePtr - long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.getSubstraitBytes(), 0); + long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); while(stream.hasNext()) { for(SearchResultsCollector collector : collectors) { @@ -51,7 +51,7 @@ public void search(DatafusionQuery datafusionQuery, List()), service.getTokioRuntimePointer()); + long streamPointer = datafusionSearcher.search(new DatafusionQuery("test-index",protoContent, new ArrayList<>()), service.getTokioRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); diff --git a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java index b47ae243788f7..a4bee4314edcb 100644 --- a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java +++ b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java @@ -324,7 +324,7 @@ protected void doExecute(Task task, SearchRequest searchRequest, ActionListener< ); } executeRequest(task, searchRequest, this::searchAsyncAction, listener); - logger.info("Search request received is {}", searchRequest.source()); +// logger.info("Search request received is {}", searchRequest.source()); } /** diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index 285f555023f8e..4fa0b88bff562 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -41,6 +41,20 @@ public WriterFileSet(StreamInput in) throws IOException { } } + public WriterFileSet withDirectory(String newDirectory) { + WriterFileSet newFileSet = new WriterFileSet(Path.of(newDirectory), this.writerGeneration); + + // Extract just the filename and reconstruct with new directory + for (String oldFilePath : this.files) { + Path oldPath = Path.of(oldFilePath); + String fileName = oldPath.getFileName().toString(); + String newFilePath = Path.of(newDirectory, fileName).toString(); + newFileSet.files.add(newFilePath); + } + + return newFileSet; + } + /** * Serialize this WriterFileSet to StreamOutput */ diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 576f86ee1c231..1474b9f57edad 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -18,6 +18,7 @@ import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriterFileSet; +import java.nio.file.Path; import java.io.IOException; import java.io.Serializable; @@ -43,6 +44,31 @@ public CatalogSnapshot(RefreshResult refreshResult, long id) { refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles)); } + private CatalogSnapshot(long id, Map> dfGroupedSearchableFiles) { + super("catalog_snapshot"); + this.id = id; + this.dfGroupedSearchableFiles = dfGroupedSearchableFiles; + } + + public CatalogSnapshot remapPaths(Path newShardDataPath) { + Map> remappedFiles = new HashMap<>(); + + for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { + String dataFormat = entry.getKey(); + List remappedFileSets = new ArrayList<>(); + + for (WriterFileSet fileSet : entry.getValue()) { + // Create new WriterFileSet with updated directory and file paths + WriterFileSet remappedFileSet = fileSet.withDirectory(newShardDataPath.toString()); + remappedFileSets.add(remappedFileSet); + } + + remappedFiles.put(dataFormat, remappedFileSets); + } + + return new CatalogSnapshot(this.id, remappedFiles); + } + public CatalogSnapshot(StreamInput in) throws IOException { super("catalog_snapshot"); this.id = in.readLong(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 4ef83cc5726c8..3726bdc2cd4bd 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -71,6 +71,10 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath, 0); this.compositeEngineCommitter = new LuceneCommitEngine(shardPath.getDataPath()); this.catalogSnapshot = ((LuceneCommitEngine)this.compositeEngineCommitter).readCatalogSnapshot(); + + // remap the paths + this.catalogSnapshot = this.catalogSnapshot.remapPaths(shardPath.getDataPath()); + this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat()); mergeScheduler = new MergeScheduler(this.mergeHandler, this); diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java index 586dce7c1e9c9..b3ca110a5a7f6 100644 --- a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -53,7 +53,7 @@ public static void convertDFResultGeneric(SearchContext searchContext) { InternalAggregations internalAggregations = InternalAggregations.from( shardResultConvertors.stream().flatMap(x -> x.convert(dfResult).stream()).collect(Collectors.toList()) ); - LOGGER.info("Internal Aggregations converted {}", internalAggregations.asMap()); +// LOGGER.info("Internal Aggregations converted {}", internalAggregations.asMap()); searchContext.queryResult().aggregations(internalAggregations); } catch (IOException e) { throw new RuntimeException(e); From 347d0ca30eb3263b34dd592145bc62e16badddb7 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Sat, 1 Nov 2025 00:32:48 +0530 Subject: [PATCH 053/112] Fix mod (#19855) --- plugins/engine-datafusion/jni/src/lib.rs | 1 - .../opensearch/index/engine/exec/coord/CompositeEngine.java | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 0e8585f1a8750..bd006710183f7 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -17,7 +17,6 @@ use std::sync::Arc; mod util; mod row_id_optimizer; mod listing_table; -mod memory; use datafusion::execution::context::SessionContext; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 3726bdc2cd4bd..5ee77b8fcf44c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -73,7 +73,9 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic this.catalogSnapshot = ((LuceneCommitEngine)this.compositeEngineCommitter).readCatalogSnapshot(); // remap the paths - this.catalogSnapshot = this.catalogSnapshot.remapPaths(shardPath.getDataPath()); + if(this.catalogSnapshot != null) { + this.catalogSnapshot = this.catalogSnapshot.remapPaths(shardPath.getDataPath()); + } this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat()); mergeScheduler = new MergeScheduler(this.mergeHandler, this); From 02fc4f63965c94df0eeabad74eb3ae9ffe157066 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Mon, 3 Nov 2025 08:11:30 -0800 Subject: [PATCH 054/112] Making terms agg work with string (#19874) Signed-off-by: expani --- .../datafusion/search/DatafusionContext.java | 11 +++++++++++ .../search/aggregations/ShardResultConvertor.java | 8 +++++--- .../bucket/composite/CompositeAggregator.java | 6 +++--- .../search/aggregations/metrics/AvgAggregator.java | 2 +- .../search/aggregations/metrics/MaxAggregator.java | 2 +- .../search/aggregations/metrics/MinAggregator.java | 2 +- .../search/aggregations/metrics/SumAggregator.java | 2 +- .../aggregations/metrics/ValueCountAggregator.java | 2 +- .../org/opensearch/search/internal/SearchContext.java | 5 +++++ .../query/SearchEngineResultConversionUtils.java | 5 +---- 10 files changed, 30 insertions(+), 15 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 11ffcf8d53a63..55cbbc53aed25 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -8,6 +8,7 @@ package org.opensearch.datafusion.search; +import org.apache.arrow.vector.util.Text; import org.apache.lucene.search.Collector; import org.apache.lucene.search.CollectorManager; import org.apache.lucene.search.FieldDoc; @@ -807,4 +808,14 @@ public Map getDFResults() { return dfResults; } + @Override + public Comparable convertToComparable(Object rawValue) { + if (rawValue instanceof Number) { + return (Comparable) rawValue; + } else if (rawValue instanceof Text) { + return rawValue.toString(); + } else { + throw new IllegalArgumentException("Conversion to Comparable not supported for type " + rawValue.getClass()); + } + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java b/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java index 4bf8d14174d57..bf9b1427e9567 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java +++ b/server/src/main/java/org/opensearch/search/aggregations/ShardResultConvertor.java @@ -8,22 +8,24 @@ package org.opensearch.search.aggregations; +import org.opensearch.search.internal.SearchContext; + import java.util.ArrayList; import java.util.List; import java.util.Map; public interface ShardResultConvertor { - default List convert(Map shardResult) { + default List convert(Map shardResult, SearchContext searchContext) { int rows = shardResult.entrySet().stream().findFirst().get().getValue().length; List internalAggregations = new ArrayList<>(); for (int i = 0; i < rows; i++) { - internalAggregations.add(convertRow(shardResult, i)); + internalAggregations.add(convertRow(shardResult, i, searchContext)); } return internalAggregations; } - default InternalAggregation convertRow(Map shardResult, int row) { + default InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { throw new UnsupportedOperationException("Row conversion not supported"); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index 73de1b76b3d35..a73543b4944b2 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -729,7 +729,7 @@ public void collect(int doc, long zeroBucket) throws IOException { } @Override - public List convert(Map shardResult) { + public List convert(Map shardResult, SearchContext searchContext) { // Generate the composite keys List currentCompositeKey = new ArrayList<>(sourceConfigs.length); List compositeKeys = new ArrayList<>(shardResult.size()); @@ -740,7 +740,7 @@ public List convert(Map shardResult) { } Object[] values = shardResult.get(sourceConfig.fieldType().name()); // TODO : Would require conversion for certain types, - currentCompositeKey.add((Comparable) values[i]); + currentCompositeKey.add(searchContext.convertToComparable(values[i])); } compositeKeys.add(new CompositeKey(currentCompositeKey.toArray(new Comparable[0]))); currentCompositeKey.clear(); @@ -754,7 +754,7 @@ public List convert(Map shardResult) { throw new UnsupportedOperationException(String.format("Aggregation [%s] doesn't support shard result conversion Impl [%s]", subAgg.name(), subAgg.getClass().getName())); } ShardResultConvertor convertor = (ShardResultConvertor) subAgg; - subAggs.add(convertor.convertRow(shardResult, row)); + subAggs.add(convertor.convertRow(shardResult, row, searchContext)); } buckets.add(new InternalComposite.InternalBucket( sourceNames, diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 7c77057429dd0..45d8b3f1ccf73 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -282,7 +282,7 @@ public void collectStarTreeEntry(int starTreeEntryBit, long bucket) throws IOExc } @Override - public InternalAggregation convertRow(Map shardResult, int row) { + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] counts = shardResult.get(name + "_count"); Object[] sums = shardResult.get(name + "_sum"); return new InternalAvg(name, ((Number) sums[row]).doubleValue(), ((Number) sums[row]).longValue(), format, metadata()); diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java index 8595f162f1fb9..45235c58f42d4 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java @@ -292,7 +292,7 @@ public StreamingCostMetrics getStreamingCostMetrics() { } @Override - public InternalAggregation convertRow(Map shardResult, int row) { + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); return new InternalMax(name, ((Number) values[row]).doubleValue(), formatter, metadata()); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java index d7658a1744835..0abc141419335 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java @@ -278,7 +278,7 @@ public StarTreeBucketCollector getStarTreeBucketCollector( } @Override - public InternalAggregation convertRow(Map shardResult, int row) { + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); return new InternalMin(name, ((Number) values[row]).doubleValue(), format, metadata()); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java index e6d42419d5755..8aec3116ced27 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregator.java @@ -220,7 +220,7 @@ public void doClose() { } @Override - public InternalAggregation convertRow(Map shardResult, int row) { + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); return new InternalSum(name, ((Number) values[row]).doubleValue(), format, metadata()); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java index b8a2bae1e2912..278847b30b121 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java @@ -214,7 +214,7 @@ public StarTreeBucketCollector getStarTreeBucketCollector( } @Override - public InternalAggregation convertRow(Map shardResult, int row) { + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); return new InternalValueCount(name, ((Number) values[row]).longValue(), metadata()); } diff --git a/server/src/main/java/org/opensearch/search/internal/SearchContext.java b/server/src/main/java/org/opensearch/search/internal/SearchContext.java index 5cc9905c574ec..a0740d12aa70b 100644 --- a/server/src/main/java/org/opensearch/search/internal/SearchContext.java +++ b/server/src/main/java/org/opensearch/search/internal/SearchContext.java @@ -607,4 +607,9 @@ public void setDFResults(Map dfResults) { public Map getDFResults() { return Collections.emptyMap(); } + + // TODO : This should be a part of mapper given by DataFormat or SearchEngine as related to Field type. + public Comparable convertToComparable(Object rawValue) { + throw new UnsupportedOperationException("Engine doesn't implement response value conversion"); + } } diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java index b3ca110a5a7f6..6ca83f35f5320 100644 --- a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -23,8 +23,6 @@ public class SearchEngineResultConversionUtils { - private static final Logger LOGGER = LogManager.getLogger(SearchEngineResultConversionUtils.class); - public static void convertDFResultGeneric(SearchContext searchContext) { if (searchContext.aggregations() != null) { Map dfResult = searchContext.getDFResults(); @@ -51,9 +49,8 @@ public static void convertDFResultGeneric(SearchContext searchContext) { }).toList(); InternalAggregations internalAggregations = InternalAggregations.from( - shardResultConvertors.stream().flatMap(x -> x.convert(dfResult).stream()).collect(Collectors.toList()) + shardResultConvertors.stream().flatMap(x -> x.convert(dfResult, searchContext).stream()).collect(Collectors.toList()) ); -// LOGGER.info("Internal Aggregations converted {}", internalAggregations.asMap()); searchContext.queryResult().aggregations(internalAggregations); } catch (IOException e) { throw new RuntimeException(e); From e2cf8b7482bf9edc3333b3a0d4337dfc8c181d6c Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Mon, 3 Nov 2025 16:51:25 -0500 Subject: [PATCH 055/112] Add custom install.sh (#19876) Signed-off-by: Peter Zhu --- scripts/install.sh | 118 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100755 scripts/install.sh diff --git a/scripts/install.sh b/scripts/install.sh new file mode 100755 index 0000000000000..5e081c13211ae --- /dev/null +++ b/scripts/install.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +# Copyright OpenSearch Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# The OpenSearch Contributors require contributions made to +# this file be licensed under the Apache-2.0 license or a +# compatible open source license. + +set -ex + +function usage() { + echo "Usage: $0 [args]" + echo "" + echo "Arguments:" + echo -e "-v VERSION\t[Required] OpenSearch version." + echo -e "-s SNAPSHOT\t[Optional] Build a snapshot, default is 'false'." + echo -e "-p PLATFORM\t[Optional] Platform, default is 'uname -s'." + echo -e "-a ARCHITECTURE\t[Optional] Build architecture, default is 'uname -m'." + echo -e "-d DISTRIBUTION\t[Optional] Distribution, default is 'tar'." + echo -e "-f ARTIFACTS\t[Optional] Location of build artifacts." + echo -e "-o OUTPUT\t[Optional] Output path." + echo -e "-h help" +} + +while getopts ":h:v:s:o:p:a:d:f:" arg; do + case $arg in + h) + usage + exit 1 + ;; + v) + VERSION=$OPTARG + ;; + s) + SNAPSHOT=$OPTARG + ;; + o) + OUTPUT=$OPTARG + ;; + p) + PLATFORM=$OPTARG + ;; + a) + ARCHITECTURE=$OPTARG + ;; + d) + DISTRIBUTION=$OPTARG + ;; + f) + ARTIFACTS=$OPTARG + ;; + :) + echo "Error: -${OPTARG} requires an argument" + usage + exit 1 + ;; + ?) + echo "Invalid option: -${arg}" + exit 1 + ;; + esac +done + +if [ -z "$VERSION" ]; then + echo "Error: missing version." + usage + exit 1 +fi + +if ! command -v yq > /dev/null; then + echo "Error: yq not found, please install v4 version of yq" + exit 1 +fi + +[ -z "$SNAPSHOT" ] && SNAPSHOT="false" +[ -z "$PLATFORM" ] && PLATFORM=$(uname -s | awk '{print tolower($0)}') +[ -z "$ARCHITECTURE" ] && ARCHITECTURE=`uname -m` +[ -z "$DISTRIBUTION" ] && DISTRIBUTION="tar" + +# Make sure the cwd is where the script is located +DIR="$(dirname "$0")" +echo $DIR +cd $DIR + +## Copy the tar installation script into the bundle +MAJOR_VERSION=`echo $VERSION | cut -d. -f1` +if [ "$DISTRIBUTION" = "tar" ]; then + cp -v ../../../scripts/startup/tar/linux/opensearch-tar-install.sh "$OUTPUT/" +elif [ "$DISTRIBUTION" = "deb" ] || [ "$DISTRIBUTION" = "rpm" ]; then + cp -va ../../../scripts/pkg/service_templates/opensearch/* "$OUTPUT/../" + if [ "$MAJOR_VERSION" = "1" ]; then + cp -va ../../../scripts/pkg/build_templates/1.x/opensearch/$DISTRIBUTION/* "$OUTPUT/../" + elif [ "$MAJOR_VERSION" = "2" ]; then + cp -va ../../../scripts/pkg/build_templates/2.x/opensearch/$DISTRIBUTION/* "$OUTPUT/../" + else + cp -va ../../../scripts/pkg/build_templates/current/opensearch/$DISTRIBUTION/* "$OUTPUT/../" + OS_REF=`yq -e '.components[] | select(.name == "OpenSearch-DataFusion") | .ref' ../../../manifests/$VERSION/opensearch-$VERSION.yml` + + # DEB and RPM has different default env file location + ENV_FILE_PATH="$OUTPUT/../etc/sysconfig/opensearch" + if [ "$DISTRIBUTION" = "deb" ]; then + ENV_FILE_PATH="$OUTPUT/../etc/default/opensearch" + fi + + curl -SfL "https://raw.githubusercontent.com/opensearch-project/OpenSearch/$OS_REF/distribution/packages/src/common/env/opensearch" -o $ENV_FILE_PATH || { echo "Failed to download env file"; exit 1; } + curl -SfL "https://raw.githubusercontent.com/opensearch-project/OpenSearch/$OS_REF/distribution/packages/src/common/systemd/opensearch.service" -o "$OUTPUT/../usr/lib/systemd/system/opensearch.service" || { echo "Failed to download env file"; exit 1; } + + # k-NN lib setups + echo -e "\n\n################################" >> $ENV_FILE_PATH + echo -e "# Plugin properties" >> $ENV_FILE_PATH + echo -e "################################" >> $ENV_FILE_PATH + echo -e "\n# k-NN Lib Path" >> $ENV_FILE_PATH + echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/share/opensearch/plugins/opensearch-knn/lib" >> $ENV_FILE_PATH + fi +elif [ "$DISTRIBUTION" = "zip" ] && [ "$PLATFORM" = "windows" ]; then + cp -v ../../../scripts/startup/zip/windows/opensearch-windows-install.bat "$OUTPUT/" +fi From 4b61351466cccaf13b45de92191cb953e7386778 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Tue, 4 Nov 2025 15:24:22 +0530 Subject: [PATCH 056/112] cargo changes and logging Signed-off-by: bharath-techie --- plugins/engine-datafusion/Cargo.toml | 74 ++++++++++++++++++++++++ plugins/engine-datafusion/jni/Cargo.toml | 60 +++++++++---------- plugins/engine-datafusion/jni/src/lib.rs | 12 +++- 3 files changed, 115 insertions(+), 31 deletions(-) create mode 100644 plugins/engine-datafusion/Cargo.toml diff --git a/plugins/engine-datafusion/Cargo.toml b/plugins/engine-datafusion/Cargo.toml new file mode 100644 index 0000000000000..888170a176e53 --- /dev/null +++ b/plugins/engine-datafusion/Cargo.toml @@ -0,0 +1,74 @@ +[workspace] +resolver = "2" +members = [ + "jni" +] + +[workspace.dependencies] +# DataFusion dependencies +datafusion = "49.0.0" +datafusion-expr = "49.0.0" +datafusion-datasource = "49.0.0" +arrow-json = "55.2" +arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } +#arrow = "55.2.0" +arrow-array = "55.2.0" +arrow-schema = "55.2.0" +arrow-buffer = "55.2.0" + +# JNI dependencies +jni = "0.21" + +# Substrait support +datafusion-substrait = "49.0.0" +prost = "0.13" + + +# Async runtime +tokio = { version = "1.0", features = ["full"] } +futures = "0.3" +#tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } + +# Serialization +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" + +# Error handling +anyhow = "1.0" +thiserror = "1.0" + +# Logging +log = "0.4" +# Parquet support +parquet = "53.0.0" + +# Object store for file access +object_store = "=0.12.3" +url = "2.0" + +# Substrait support +substrait = "0.47" + +# Temporary directory support +tempfile = "3.0" +chrono = "0.4.41" + +async-trait = "0.1.89" +itertools = "0.14.0" +rstest = "0.26.1" +regex = "1.11.2" +# +#[build-dependencies] +#cbindgen = "0.27" + + +[profile.release] +lto = true +codegen-units = 1 +panic = "abort" + +[profile.dev] +opt-level = 1 # Some optimization for reasonable performance +lto = false # Disable LTO for faster builds +codegen-units = 16 # More parallel compilation +incremental = true # Enable incremental compilation diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 4dbb5374f7443..d04db8fd13fbd 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -11,66 +11,68 @@ crate-type = ["cdylib"] [dependencies] # DataFusion dependencies -datafusion = "49.0.0" -datafusion-expr = "49.0.0" -datafusion-datasource = "49.0.0" -arrow-json = "55.2" -arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } +datafusion = { workspace = true } +datafusion-expr = { workspace = true } +datafusion-datasource = { workspace = true } +arrow-json = { workspace = true } +arrow = { workspace = true } #arrow = "55.2.0" -arrow-array = "55.2.0" -arrow-schema = "55.2.0" -arrow-buffer = "55.2.0" +arrow-array = { workspace = true } +arrow-schema = { workspace = true } +arrow-buffer = { workspace = true } # JNI dependencies -jni = "0.21" +jni = { workspace = true } # Substrait support -datafusion-substrait = "49.0.0" -prost = "0.13" +datafusion-substrait = { workspace = true } +prost = { workspace = true } # Async runtime -tokio = { version = "1.0", features = ["full"] } -futures = "0.3" +tokio = { workspace = true } +futures = { workspace = true } #tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } # Serialization -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" +serde = { workspace = true } +serde_json = { workspace = true } # Error handling -anyhow = "1.0" -thiserror = "1.0" +anyhow = { workspace = true } +thiserror = { workspace = true } # Logging -log = "0.4" +log ={ workspace = true } # Parquet support -parquet = "53.0.0" +parquet = { workspace = true } # Object store for file access -object_store = "=0.12.3" -url = "2.0" +object_store = { workspace = true } +url = { workspace = true } # Substrait support -substrait = "0.47" +substrait = { workspace = true } # Temporary directory support -tempfile = "3.0" -chrono = "0.4.41" +tempfile ={ workspace = true } +chrono = { workspace = true } -async-trait = "0.1.89" -itertools = "0.14.0" -rstest = "0.26.1" -regex = "1.11.2" +async-trait = { workspace = true } +itertools = { workspace = true } +rstest = { workspace = true } +regex = { workspace = true } [build-dependencies] cbindgen = "0.27" - +[build] +rustflags = ["-C", "force-frame-pointers=yes","symbol-mangling-version=v0"] [profile.release] lto = true codegen-units = 1 panic = "abort" +incremental = true [profile.dev] opt-level = 1 # Some optimization for reasonable performance diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index bd006710183f7..f3e40560ee0ae 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -13,6 +13,7 @@ use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; use std::ptr::addr_of_mut; use std::sync::Arc; +use std::time::Instant; mod util; mod row_id_optimizer; @@ -208,6 +209,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute tokio_runtime_env_ptr: jlong, // callback: JObject, ) -> jlong { + let overall = Instant::now(); let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; let table_name: String = env.get_string(&table_name).expect("Couldn't get java string!").into(); @@ -228,7 +230,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // TODO: get config from CSV DataFormat let mut config = SessionConfig::new(); - // config.options_mut().execution.parquet.pushdown_filters = true; + config.options_mut().execution.parquet.pushdown_filters = false; + config.options_mut().execution.target_partitions = 1; let state = datafusion::execution::SessionStateBuilder::new() .with_config(config) @@ -265,6 +268,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute }); + let start = Instant::now(); // TODO : how to close ctx ? // Convert Java byte array to Rust Vec let plan_bytes_obj = unsafe { JByteArray::from_raw(substrait_bytes) }; @@ -293,6 +297,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); + let duration = start.elapsed(); + println!("Rust: Substrait decoding time in milliseconds: {}", duration.as_millis()); plan }, Err(e) => { @@ -300,11 +306,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute return 0; } }; - let dataframe = ctx.execute_logical_plan(logical_plan).await.unwrap(); let stream = dataframe.execute_stream().await.unwrap(); let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; // println!("The memory used currently right now: {:?}", jemalloc_stats::refresh_allocated()); + let duration1 = overall.elapsed(); + println!("Rust: Overall query setup time in milliseconds: {}", duration1.as_millis()); + stream_ptr }) From 75ccc0590d6a5ff2d02388210d2c6aa69d59f51e Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Tue, 4 Nov 2025 17:22:54 +0530 Subject: [PATCH 057/112] Add basic implementation of force merge API (#19881) Signed-off-by: Dhwanil Patel --- .../engine/exec/coord/CompositeEngine.java | 2 +- .../index/engine/exec/merge/MergeHandler.java | 2 + .../engine/exec/merge/MergeScheduler.java | 10 +++++ .../exec/merge/ParquetMergeHandler.java | 34 +++++++++++++++ .../exec/merge/ParquetTieredMergePolicy.java | 41 +++++++++++++++++++ .../opensearch/index/shard/IndexShard.java | 2 +- 6 files changed, 89 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 5ee77b8fcf44c..1e4958f491560 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -341,7 +341,7 @@ public int fillSeqNoGaps(long primaryTerm) throws IOException { @Override public void forceMerge(boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade, boolean upgradeOnlyAncientSegments, String forceMergeUUID) throws EngineException, IOException { - + mergeScheduler.forceMerge(maxNumSegments); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index 1bdbf6e3ccd4a..e818dc610d568 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -47,6 +47,8 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public abstract Collection findMerges(); + public abstract Collection findForceMerges(int maxSegmentCount); + public MergeResult doMerge(OneMerge oneMerge) { Map> mergedFiles = new HashMap<>(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index a38f357f1ab5e..9ba3250cee852 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -34,4 +34,14 @@ public void triggerMerges() throws IOException { this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); } } + + public void forceMerge(int maxNumSegment) throws IOException { + // TODO: Add validation for background merge before executing force merge + Collection oneMerges = mergeHandler.findForceMerges(maxNumSegment); + + for(OneMerge oneMerge : oneMerges) { + MergeResult mergeResult = mergeHandler.doMerge(oneMerge); + this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); + } + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 6237bc258d517..2bfb4a0573707 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -40,7 +40,41 @@ public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExe this.mergePolicy.setSegmentsPerTier(10.0); // this.mergePolicy.setMaxMergeAtOnce(5); // this.mergePolicy.setFloorSegmentMB(1.0); + } + + @Override + public Collection findForceMerges(int maxSegmentCount) { + List oneMerges = new ArrayList<>(); + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { + CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); + Collection parquetWriterSet = catalogSnapshot.getSearchableFiles(PARQUET_DATAFORMAT); + + List parquetSegmentInfos = new ArrayList<>(); + + for(WriterFileSet writerFileSet : parquetWriterSet) { + for(String file: writerFileSet.getFiles()) { + parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(file)); + } + } + + List> mergeCandidates = + mergePolicy.findForceMergeCandidates(parquetSegmentInfos, maxSegmentCount); + + // Process merge candidates + for (int i = 0; i < mergeCandidates.size(); i++) { + List mergeGroup = mergeCandidates.get(i); + Set files = new HashSet<>(); + for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { + Path path = Path.of(file.getSegmentName()); + files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); + } + oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return oneMerges; } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index fc620bb898ebd..c833fc2ec00be 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -47,6 +47,47 @@ public void close() throws IOException { }; } + public List> findForceMergeCandidates(List segments, int maxSegmentCount) throws IOException { + // Convert Parquet segments to Lucene-style segments + List luceneSegments = new ArrayList<>(); + Map segmentMap = new HashMap<>(); + Map segmentsToMerge = new HashMap<>(); + + for (ParquetFileInfo parquetSegment : segments) { + ParquetSegmentWrapper wrapper = new ParquetSegmentWrapper(parquetSegment); + luceneSegments.add(wrapper); + segmentMap.put(wrapper, parquetSegment); + segmentsToMerge.put(wrapper, true); + } + + // Create SegmentInfos (required by Lucene 10) + SegmentInfos segmentInfos = new SegmentInfos(Version.LATEST.major); + luceneSegments.forEach(segmentInfos::add); + + // Find merge candidates using Lucene's policy + List> merges = new ArrayList<>(); + try { + MergePolicy.MergeSpecification mergeSpecification = luceneMergePolicy.findForcedMerges(segmentInfos, maxSegmentCount, segmentsToMerge, this); + + if(mergeSpecification != null) { + List luceneMerges = mergeSpecification.merges; + + // Convert back to Parquet segments + for (MergePolicy.OneMerge merge : luceneMerges) { + List parquetMerge = new ArrayList<>(); + + for(SegmentCommitInfo segment : merge.segments) { + parquetMerge.add(segmentMap.get(segment)); + } + merges.add(parquetMerge); + } + } + } catch (Exception e) { + throw new RuntimeException("Error finding merge candidates", e); + } + return merges; + } + public List> findMergeCandidates(List segments) throws IOException { // Convert Parquet segments to Lucene-style segments diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 1212ed617c93a..0a9e73d5724e2 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -1673,7 +1673,7 @@ public void forceMerge(ForceMergeRequest forceMerge) throws IOException { if (logger.isTraceEnabled()) { logger.trace("force merge with {}", forceMerge); } - Indexer engine = getIndexer(); + Indexer engine = compositeEngine; engine.forceMerge( forceMerge.flush(), forceMerge.maxNumSegments(), From 1b6d5d9c25ee17aa2f8ac1d9061feef6120ca75f Mon Sep 17 00:00:00 2001 From: Raghuvansh Raj Date: Tue, 4 Nov 2025 17:54:27 +0530 Subject: [PATCH 058/112] Adding clean target for parquet-data-format module (#19883) --- modules/parquet-data-format/build.gradle | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index aef8ce70a43e0..d68460309c12c 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -242,6 +242,17 @@ tasks.register('copyNativeLib', Copy) { } +// Enhanced clean task to remove native build artifacts +clean { + doFirst { + delete fileTree('src/main/resources/native') { + exclude '.gitkeep' // Keep any gitkeep files if they exist + } + delete 'src/main/rust/target' + println "Cleaned native build artifacts: src/main/resources/native and src/main/rust/target" + } +} + // Wire Rust build tasks into the Gradle build lifecycle compileJava.dependsOn copyNativeLib processResources.dependsOn copyNativeLib From c0095158c430835ce4e9a110919264544f19f03e Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Tue, 4 Nov 2025 21:56:12 +0530 Subject: [PATCH 059/112] Adding Metadata fields in the Parquet (#19886) * Adding Id, Ignored and Routing ParquetFields for Metadata Signed-off-by: Sagar Darji * Adding Seq id, Primary term and version id fields Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji --- .../fields/ArrowFieldRegistry.java | 4 ++ .../fields/ArrowSchemaBuilder.java | 20 ++++-- .../fields/core/data/IpParquetField.java | 19 +++--- .../core/metadata/DocCountParquetField.java | 61 ------------------- .../fields/core/metadata/IdParquetField.java | 61 +++++++++++++++++++ .../core/metadata/IgnoredParquetField.java | 61 +++++++++++++++++++ .../core/metadata/RoutingParquetField.java | 61 +++++++++++++++++++ .../plugins/fields/MetadataFieldPlugin.java | 17 +++++- .../writer/ParquetDocumentInput.java | 7 +++ .../index/engine/exec/DocumentInput.java | 12 ++++ .../exec/commit/LuceneCommitEngine.java | 2 - .../composite/CompositeDataFormatWriter.java | 25 ++++++++ .../engine/exec/coord/CompositeEngine.java | 4 ++ .../exec/merge/ParquetMergeHandler.java | 4 +- .../index/mapper/IdFieldMapper.java | 6 +- .../index/mapper/IgnoredFieldMapper.java | 6 +- .../index/mapper/RoutingFieldMapper.java | 8 ++- .../index/mapper/SeqNoFieldMapper.java | 4 +- .../index/mapper/VersionFieldMapper.java | 2 +- 19 files changed, 296 insertions(+), 88 deletions(-) delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IdParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IgnoredParquetField.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/RoutingParquetField.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java index 48f1426a476a2..1a65f7a116623 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowFieldRegistry.java @@ -8,9 +8,11 @@ package com.parquet.parquetdataformat.fields; +import com.parquet.parquetdataformat.fields.core.data.number.LongParquetField; import com.parquet.parquetdataformat.plugins.fields.CoreDataFieldPlugin; import com.parquet.parquetdataformat.plugins.fields.MetadataFieldPlugin; import com.parquet.parquetdataformat.plugins.fields.ParquetFieldPlugin; +import org.opensearch.index.mapper.SeqNoFieldMapper; import java.util.Collections; import java.util.Map; @@ -87,6 +89,8 @@ private static void registerPlugin(ParquetFieldPlugin plugin, String pluginName) FIELD_REGISTRY.put(fieldType, parquetField); } + + FIELD_REGISTRY.put(SeqNoFieldMapper.PRIMARY_TERM_NAME, new LongParquetField()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java index 21ceea50cea08..01fd89d8ae49c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java @@ -12,9 +12,14 @@ import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; +import org.opensearch.index.mapper.FieldNamesFieldMapper; +import org.opensearch.index.mapper.IndexFieldMapper; import org.opensearch.index.mapper.Mapper; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.mapper.MetadataFieldMapper; +import org.opensearch.index.mapper.NestedPathFieldMapper; +import org.opensearch.index.mapper.SeqNoFieldMapper; +import org.opensearch.index.mapper.SourceFieldMapper; import java.util.ArrayList; import java.util.List; @@ -63,7 +68,7 @@ private static List extractFieldsFromMappers(final MapperService mapperSe final List fields = new ArrayList<>(); for (final Mapper mapper : mapperService.documentMapper().mappers()) { - if (isMetadataField(mapper)) { + if (notSupportedMetadataField(mapper)) { continue; } @@ -72,18 +77,23 @@ private static List extractFieldsFromMappers(final MapperService mapperSe } fields.add(new Field(CompositeDataFormatWriter.ROW_ID, new LongParquetField().getFieldType(), null)); + fields.add(new Field(SeqNoFieldMapper.PRIMARY_TERM_NAME, new LongParquetField().getFieldType(), null)); return fields; } /** - * Checks if the given mapper represents a metadata field. + * Checks if the given mapper represents a not supported metadata field. * * @param mapper the mapper to check - * @return true if the mapper is a metadata field, false otherwise + * @return true if the mapper is a not supported metadata field, false otherwise */ - private static boolean isMetadataField(final Mapper mapper) { - return mapper instanceof MetadataFieldMapper; + private static boolean notSupportedMetadataField(final Mapper mapper) { + return mapper instanceof SourceFieldMapper + || mapper instanceof FieldNamesFieldMapper + || mapper instanceof IndexFieldMapper + || mapper instanceof NestedPathFieldMapper + || Objects.equals(mapper.typeName(), "_feature"); } /** diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java index 6553bf79636ef..be16d3154b66a 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/data/IpParquetField.java @@ -10,6 +10,7 @@ import com.parquet.parquetdataformat.fields.ParquetField; import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarBinaryVector; import org.apache.arrow.vector.VarCharVector; import org.apache.arrow.vector.types.pojo.ArrowType; import org.apache.arrow.vector.types.pojo.FieldType; @@ -23,9 +24,9 @@ * Parquet field implementation for handling IP address data types in OpenSearch documents. * *

    This class provides the conversion logic between OpenSearch IP fields and Apache Arrow - * UTF-8 string vectors for columnar storage in Parquet format. IP address values are encoded - * using Lucene's {@link InetAddressPoint} encoding and stored using Apache Arrow's - * {@link VarCharVector}, which provides efficient variable-length binary storage.

    + * Binary string vectors for columnar storage in Parquet format. IP address values are encoded + * using Lucene's {@link InetAddressPoint} encoding and stored using Apache Arrow's + * {@link VarBinaryVector}, which provides efficient variable-length binary storage.

    * *

    This field type corresponds to OpenSearch's {@code ip} field mapping, which is used * for storing IPv4 and IPv6 addresses. The IP addresses are internally encoded as binary @@ -34,12 +35,12 @@ *

    Usage Example:

    *
    {@code
      * IpParquetField ipField = new IpParquetField();
    - * ArrowType arrowType = ipField.getArrowType(); // Returns ArrowType.Utf8
    - * FieldType fieldType = ipField.getFieldType(); // Returns nullable UTF-8 field type
    + * ArrowType arrowType = ipField.getArrowType(); // Returns ArrowType.Binary
    + * FieldType fieldType = ipField.getFieldType(); // Returns nullable Binary field type
      * }
    * * @see ParquetField - * @see VarCharVector + * @see VarBinaryVector * @see InetAddressPoint * @see ArrowType.Utf8 * @since 1.0 @@ -48,15 +49,15 @@ public class IpParquetField extends ParquetField { @Override public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - VarCharVector varCharVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + VarBinaryVector varBinaryVector = (VarBinaryVector) managedVSR.getVector(mappedFieldType.name()); int rowIndex = managedVSR.getRowCount(); final BytesRef bytesRef = new BytesRef(InetAddressPoint.encode((InetAddress) parseValue)); - varCharVector.setSafe(rowIndex, bytesRef.bytes, bytesRef.offset, bytesRef.length); + varBinaryVector.setSafe(rowIndex, bytesRef.bytes, bytesRef.offset, bytesRef.length); } @Override public ArrowType getArrowType() { - return new ArrowType.Utf8(); + return new ArrowType.Binary(); } @Override diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java deleted file mode 100644 index e7e61abaa4f35..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/DocCountParquetField.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.fields.core.metadata; - -import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.vsr.ManagedVSR; -import org.apache.arrow.vector.UInt8Vector; -import org.apache.arrow.vector.types.pojo.ArrowType; -import org.apache.arrow.vector.types.pojo.FieldType; -import org.opensearch.index.mapper.MappedFieldType; - -/** - * Parquet field implementation for handling document count metadata in OpenSearch documents. - * - *

    This class provides the conversion logic between OpenSearch document count fields and Apache Arrow - * unsigned 64-bit integer vectors for columnar storage in Parquet format. Document count values are stored - * using Apache Arrow's {@link UInt8Vector}, which provides efficient storage for unsigned integer values - * representing the number of documents or occurrences.

    - * - *

    This field type corresponds to OpenSearch's {@code _doc_count} metadata field, which is used - * for storing aggregated document counts in pre-aggregated indices or rollup operations. The field - * stores non-negative integer values representing document frequencies or counts.

    - * - *

    Usage Example:

    - *
    {@code
    - * DocCountParquetField docCountField = new DocCountParquetField();
    - * ArrowType arrowType = docCountField.getArrowType(); // Returns ArrowType.Int(64, false)
    - * FieldType fieldType = docCountField.getFieldType(); // Returns non-nullable 64-bit integer field type
    - * }
    - * - * @see ParquetField - * @see UInt8Vector - * @see ArrowType.Int - * @since 1.0 - */ -public class DocCountParquetField extends ParquetField { - - @Override - public void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { - UInt8Vector uInt8Vector = (UInt8Vector) managedVSR.getVector(mappedFieldType.name()); - int rowCount = managedVSR.getRowCount(); - long longValue = ((Number) parseValue).longValue(); - uInt8Vector.setSafe(rowCount, longValue); - } - - @Override - public ArrowType getArrowType() { - return new ArrowType.Int(64, false); - } - - @Override - public FieldType getFieldType() { - return FieldType.notNullable(getArrowType()); - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IdParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IdParquetField.java new file mode 100644 index 0000000000000..413a3938836fc --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IdParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.metadata; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarBinaryVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.apache.lucene.util.BytesRef; +import org.opensearch.index.mapper.MappedFieldType; + +/** + * Parquet field implementation for handling document ID metadata in OpenSearch documents. + * + *

    This class provides the conversion logic between OpenSearch document ID fields and Apache Arrow + * binary vectors for columnar storage in Parquet format. Document ID values are stored + * using Apache Arrow's {@link VarBinaryVector}, which stores raw bytes without UTF-8 validation.

    + * + *

    This field type corresponds to OpenSearch's {@code _id} metadata field and + * supports unique document identifiers. The ID values are processed from {@link BytesRef} objects + * and stored directly in the Arrow vector with proper offset and length handling.

    + * + *

    Usage Example:

    + *
    {@code
    + * IdParquetField idField = new IdParquetField();
    + * ArrowType arrowType = idField.getArrowType(); // Returns Binary type
    + * FieldType fieldType = idField.getFieldType(); // Returns nullable Binary field type
    + * }
    + * + * @see ParquetField + * @see VarBinaryVector + * @see ArrowType.Binary + * @since 1.0 + */ +public class IdParquetField extends ParquetField { + + @Override + protected void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarBinaryVector idVector = (VarBinaryVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + BytesRef bytesRef = (BytesRef) parseValue; + idVector.setSafe(rowIndex, bytesRef.bytes, bytesRef.offset, bytesRef.length); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Binary(); + } + + @Override + public FieldType getFieldType() { + return FieldType.nullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IgnoredParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IgnoredParquetField.java new file mode 100644 index 0000000000000..c31e3932c2295 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/IgnoredParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.metadata; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +import java.nio.charset.StandardCharsets; + +/** + * Parquet field implementation for handling ignored field data types in OpenSearch documents. + * + *

    This class provides the conversion logic between OpenSearch ignored fields and Apache Arrow + * UTF-8 string vectors for columnar storage in Parquet format. Ignored field values are stored + * using Apache Arrow's {@link VarCharVector}, which provides efficient variable-length string storage.

    + * + *

    This field type corresponds to OpenSearch's {@code ignored} field mapping and + * supports fields that are indexed but not stored in the document source. The field values + * are converted to UTF-8 string representation before storage in the Arrow vector.

    + * + *

    Usage Example:

    + *
    {@code
    + * IgnoredParquetField ignoredField = new IgnoredParquetField();
    + * ArrowType arrowType = ignoredField.getArrowType(); // Returns UTF-8 string type
    + * FieldType fieldType = ignoredField.getFieldType(); // Returns nullable UTF-8 field type
    + * }
    + * + * @see ParquetField + * @see VarCharVector + * @see ArrowType.Utf8 + * @since 1.0 + */ +public class IgnoredParquetField extends ParquetField { + + @Override + protected void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector varCharVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + varCharVector.setSafe(rowIndex, parseValue.toString().getBytes(StandardCharsets.UTF_8)); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Utf8(); + } + + @Override + public FieldType getFieldType() { + return FieldType.nullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/RoutingParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/RoutingParquetField.java new file mode 100644 index 0000000000000..ffacfa1995ed4 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/core/metadata/RoutingParquetField.java @@ -0,0 +1,61 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.fields.core.metadata; + +import com.parquet.parquetdataformat.fields.ParquetField; +import com.parquet.parquetdataformat.vsr.ManagedVSR; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.opensearch.index.mapper.MappedFieldType; + +import java.nio.charset.StandardCharsets; + +/** + * Parquet field implementation for handling routing metadata in OpenSearch documents. + * + *

    This class provides the conversion logic between OpenSearch routing fields and Apache Arrow + * UTF-8 string vectors for columnar storage in Parquet format. Routing values are stored + * using Apache Arrow's {@link VarCharVector}, which provides efficient variable-length string storage.

    + * + *

    This field type corresponds to OpenSearch's {@code _routing} metadata field and + * supports custom routing values that determine which shard a document is stored on. The routing + * value is converted to UTF-8 bytes before storage in the Arrow vector.

    + * + *

    Usage Example:

    + *
    {@code
    + * RoutingParquetField routingField = new RoutingParquetField();
    + * ArrowType arrowType = routingField.getArrowType(); // Returns UTF-8 string type
    + * FieldType fieldType = routingField.getFieldType(); // Returns nullable UTF-8 field type
    + * }
    + * + * @see ParquetField + * @see VarCharVector + * @see ArrowType.Utf8 + * @since 1.0 + */ +public class RoutingParquetField extends ParquetField { + + @Override + protected void addToGroup(MappedFieldType mappedFieldType, ManagedVSR managedVSR, Object parseValue) { + VarCharVector routingVector = (VarCharVector) managedVSR.getVector(mappedFieldType.name()); + int rowIndex = managedVSR.getRowCount(); + routingVector.setSafe(rowIndex, parseValue.toString().getBytes(StandardCharsets.UTF_8)); + } + + @Override + public ArrowType getArrowType() { + return new ArrowType.Utf8(); + } + + @Override + public FieldType getFieldType() { + return FieldType.nullable(getArrowType()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java index 7652818f92f14..69cc7e4548fd6 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/plugins/fields/MetadataFieldPlugin.java @@ -9,9 +9,17 @@ package com.parquet.parquetdataformat.plugins.fields; import com.parquet.parquetdataformat.fields.ParquetField; -import com.parquet.parquetdataformat.fields.core.metadata.DocCountParquetField; +import com.parquet.parquetdataformat.fields.core.data.number.LongParquetField; +import com.parquet.parquetdataformat.fields.core.metadata.IdParquetField; +import com.parquet.parquetdataformat.fields.core.metadata.IgnoredParquetField; +import com.parquet.parquetdataformat.fields.core.metadata.RoutingParquetField; import com.parquet.parquetdataformat.fields.core.metadata.SizeParquetField; import org.opensearch.index.mapper.DocCountFieldMapper; +import org.opensearch.index.mapper.IdFieldMapper; +import org.opensearch.index.mapper.IgnoredFieldMapper; +import org.opensearch.index.mapper.RoutingFieldMapper; +import org.opensearch.index.mapper.SeqNoFieldMapper; +import org.opensearch.index.mapper.VersionFieldMapper; import java.util.HashMap; import java.util.Map; @@ -34,7 +42,12 @@ public Map getParquetFields() { * @param fieldMap the map to populate with metadata field mappings */ private static void registerMetadataFields(final Map fieldMap) { - fieldMap.put(DocCountFieldMapper.CONTENT_TYPE, new DocCountParquetField()); + fieldMap.put(DocCountFieldMapper.CONTENT_TYPE, new LongParquetField()); fieldMap.put("_size", new SizeParquetField()); + fieldMap.put(RoutingFieldMapper.CONTENT_TYPE, new RoutingParquetField()); + fieldMap.put(IgnoredFieldMapper.CONTENT_TYPE, new IgnoredParquetField()); + fieldMap.put(IdFieldMapper.CONTENT_TYPE, new IdParquetField()); + fieldMap.put(SeqNoFieldMapper.CONTENT_TYPE, new LongParquetField()); + fieldMap.put(VersionFieldMapper.CONTENT_TYPE, new LongParquetField()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java index 1f3b6a702f4ff..41bb192f55ea3 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetDocumentInput.java @@ -59,6 +59,13 @@ public void addField(MappedFieldType fieldType, Object value) { parquetField.createField(fieldType, managedVSR, value); } + @Override + public void setPrimaryTerm(String fieldName, long primaryTerm) { + BigIntVector bigIntVector = (BigIntVector) managedVSR.getVector(fieldName); + int rowCount = managedVSR.getRowCount(); + bigIntVector.setSafe(rowCount, primaryTerm); + } + @Override public ManagedVSR getFinalInput() { return managedVSR; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java index 3ff510c3572f2..4a3c0fc73f111 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/DocumentInput.java @@ -22,4 +22,16 @@ public interface DocumentInput extends AutoCloseable { T getFinalInput(); WriteResult addToWriter() throws IOException; + + default void setVersion(long version) { + // Default no-op implementations, override as needed + } + + default void setSeqNo(long seqNo) { + // Default no-op implementations, override as needed + } + + default void setPrimaryTerm(String fieldName, long seqNo) { + // Default no-op implementations, override as needed + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java index 0f5d1cb293484..3559ab53f22fb 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -11,10 +11,8 @@ import java.io.IOException; import java.nio.file.Path; import java.util.Collection; -import java.util.HashMap; import java.util.Map; -import org.apache.commons.lang3.SerializationUtils; import org.apache.lucene.index.IndexCommit; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 319103ec70f0b..5bca14385f97b 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -19,6 +19,8 @@ import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.mapper.SeqNoFieldMapper; +import org.opensearch.index.mapper.VersionFieldMapper; import java.io.IOException; import java.util.ArrayList; @@ -162,6 +164,9 @@ public static class CompositeDocumentInput implements DocumentInput> inputs; CompositeDataFormatWriter writer; Runnable onClose; + private long version = -1; + private long seqNo = -2L; + private long primaryTerm = 0; public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable onClose) { @@ -184,6 +189,26 @@ public void addField(MappedFieldType fieldType, Object value) { } } + @Override + public void setVersion(long version) { + this.version = version; + addField(VersionFieldMapper.VersionFieldType.INSTANCE, version); + } + + @Override + public void setSeqNo(long seqNo) { + this.seqNo = seqNo; + addField(SeqNoFieldMapper.SeqNoFieldType.INSTANCE, seqNo); + } + + @Override + public void setPrimaryTerm(String fieldName, long primaryTerm) { + this.primaryTerm = primaryTerm; + for (DocumentInput input : inputs) { + input.setPrimaryTerm(fieldName, primaryTerm); + } + } + @Override public List> getFinalInput() { return null; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 1e4958f491560..2002c9cb26e60 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -35,6 +35,7 @@ import org.opensearch.index.engine.exec.merge.ParquetMergeHandler; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MapperService; +import org.opensearch.index.mapper.SeqNoFieldMapper; import org.opensearch.index.shard.ShardPath; import org.opensearch.index.translog.Translog; import org.opensearch.index.translog.TranslogManager; @@ -135,6 +136,9 @@ public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws I } public Engine.IndexResult index(Engine.Index index) throws IOException { + index.documentInput.setSeqNo(index.seqNo()); + index.documentInput.setPrimaryTerm(SeqNoFieldMapper.PRIMARY_TERM_NAME, index.primaryTerm()); + index.documentInput.setVersion(1); // we are not supporting update in parquet WriteResult writeResult = index.documentInput.addToWriter(); // translog, checkpoint, other checks return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 2bfb4a0573707..034dc3ac7759c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -36,8 +36,8 @@ public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExe mergePolicy = new ParquetTieredMergePolicy(); // Merge Policy configurations - this.mergePolicy.setMaxMergedSegmentMB(2000); - this.mergePolicy.setSegmentsPerTier(10.0); + this.mergePolicy.setMaxMergedSegmentMB(10); + this.mergePolicy.setSegmentsPerTier(2); // this.mergePolicy.setMaxMergeAtOnce(5); // this.mergePolicy.setFloorSegmentMB(1.0); } diff --git a/server/src/main/java/org/opensearch/index/mapper/IdFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/IdFieldMapper.java index 786774fb95e07..9e36ea6e6b9b2 100644 --- a/server/src/main/java/org/opensearch/index/mapper/IdFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/IdFieldMapper.java @@ -298,7 +298,11 @@ private IdFieldMapper(Supplier fieldDataEnabled) { @Override public void preParse(ParseContext context) { BytesRef id = Uid.encodeId(context.sourceToParse().id()); - context.doc().add(new Field(NAME, id, Defaults.FIELD_TYPE)); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), id); + } else { + context.doc().add(new Field(NAME, id, Defaults.FIELD_TYPE)); + } } @Override diff --git a/server/src/main/java/org/opensearch/index/mapper/IgnoredFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/IgnoredFieldMapper.java index 0db795d99c7e0..8c95702b281a0 100644 --- a/server/src/main/java/org/opensearch/index/mapper/IgnoredFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/IgnoredFieldMapper.java @@ -114,7 +114,11 @@ private IgnoredFieldMapper() { @Override public void postParse(ParseContext context) { for (String field : context.getIgnoredFields()) { - context.doc().add(new Field(NAME, field, Defaults.FIELD_TYPE)); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), field); + } else { + context.doc().add(new Field(NAME, field, Defaults.FIELD_TYPE)); + } } } diff --git a/server/src/main/java/org/opensearch/index/mapper/RoutingFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/RoutingFieldMapper.java index 60decc56e0db2..46a1b6a76f1ec 100644 --- a/server/src/main/java/org/opensearch/index/mapper/RoutingFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/RoutingFieldMapper.java @@ -148,8 +148,12 @@ public boolean required() { public void preParse(ParseContext context) { String routing = context.sourceToParse().routing(); if (routing != null) { - context.doc().add(new Field(fieldType().name(), routing, Defaults.FIELD_TYPE)); - createFieldNamesField(context); + if (isPluggableDataFormatFeatureEnabled()) { + context.compositeDocumentInput().addField(fieldType(), routing); + } else { + context.doc().add(new Field(fieldType().name(), routing, Defaults.FIELD_TYPE)); + createFieldNamesField(context); + } } } diff --git a/server/src/main/java/org/opensearch/index/mapper/SeqNoFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/SeqNoFieldMapper.java index c7e9bed7577c5..cbd32ec158730 100644 --- a/server/src/main/java/org/opensearch/index/mapper/SeqNoFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/SeqNoFieldMapper.java @@ -117,9 +117,9 @@ public static SequenceIDFields emptySeqID() { * * @opensearch.internal */ - static final class SeqNoFieldType extends SimpleMappedFieldType { + public static final class SeqNoFieldType extends SimpleMappedFieldType { - private static final SeqNoFieldType INSTANCE = new SeqNoFieldType(); + public static final SeqNoFieldType INSTANCE = new SeqNoFieldType(); private SeqNoFieldType() { super(NAME, true, false, true, TextSearchInfo.SIMPLE_MATCH_ONLY, Collections.emptyMap()); diff --git a/server/src/main/java/org/opensearch/index/mapper/VersionFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/VersionFieldMapper.java index 6cef46be86a6a..8baff6fb427fa 100644 --- a/server/src/main/java/org/opensearch/index/mapper/VersionFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/VersionFieldMapper.java @@ -59,7 +59,7 @@ public class VersionFieldMapper extends MetadataFieldMapper { * * @opensearch.internal */ - static final class VersionFieldType extends MappedFieldType { + public static final class VersionFieldType extends MappedFieldType { public static final VersionFieldType INSTANCE = new VersionFieldType(); From f43a7d6b2ce9348a980334db82c9cd79259a668d Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Tue, 4 Nov 2025 23:00:30 +0530 Subject: [PATCH 060/112] removing commons lang dependency Signed-off-by: bharath-techie --- server/build.gradle | 2 +- .../composite/CompositeDataFormatWriter.java | 25 ++++++++++--------- .../engine/exec/coord/CompositeEngine.java | 1 - 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/server/build.gradle b/server/build.gradle index 917d44aec4664..73540b016d0a0 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -78,7 +78,7 @@ dependencies { compileOnly project(':libs:opensearch-plugin-classloader') testRuntimeOnly project(':libs:opensearch-plugin-classloader') - implementation 'org.apache.commons:commons-lang3:3.17.0' + //implementation 'org.apache.commons:commons-lang3:3.17.0' api libs.bundles.lucene diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index 5bca14385f97b..f1dbb9b53c72e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -8,7 +8,6 @@ package org.opensearch.index.engine.exec.composite; -import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.lucene.util.SetOnce; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; @@ -23,8 +22,10 @@ import org.opensearch.index.mapper.VersionFieldMapper; import java.io.IOException; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; @@ -34,7 +35,7 @@ public class CompositeDataFormatWriter implements Writer, Lock { - private final List>>> writers; + private final List>>> writers; private final Runnable postWrite; private final ReentrantLock lock; private final SetOnce flushPending = new SetOnce<>(); @@ -45,14 +46,14 @@ public class CompositeDataFormatWriter implements Writer(); this.lock = new ReentrantLock(); this.aborted = false; this.writerGeneration = writerGeneration; engine.getDelegates().forEach(delegate -> { try { - writers.add(ImmutablePair.of(delegate.getDataFormat(), delegate.createWriter(writerGeneration))); + writers.add(new AbstractMap.SimpleImmutableEntry<>(delegate.getDataFormat(), delegate.createWriter(writerGeneration))); } catch (IOException e) { throw new RuntimeException(e); } @@ -71,11 +72,11 @@ public WriteResult addDoc(CompositeDocumentInput d) throws IOException { @Override public FileInfos flush(FlushIn flushIn) throws IOException { FileInfos fileInfos = new FileInfos(); - for (ImmutablePair>> writerPair : writers) { - Optional fileMetadataOptional = writerPair.getRight().flush(flushIn) - .getWriterFileSet(writerPair.getLeft()); + for (Map.Entry>> writerPair : writers) { + Optional fileMetadataOptional = writerPair.getValue().flush(flushIn) + .getWriterFileSet(writerPair.getKey()); fileMetadataOptional.ifPresent( - fileMetadata -> fileInfos.putWriterFileSet(writerPair.getLeft(), fileMetadata)); + fileMetadata -> fileInfos.putWriterFileSet(writerPair.getKey(), fileMetadata)); } hasFlushed.set(true); return fileInfos; @@ -88,8 +89,8 @@ public void sync() throws IOException { @Override public void close() { - for (ImmutablePair>> writerPair : writers) { - writerPair.getRight().close(); + for (Map.Entry>> writerPair : writers) { + writerPair.getValue().close(); } } @@ -97,7 +98,7 @@ public void close() { public CompositeDocumentInput newDocumentInput() { CompositeDocumentInput compositeDocumentInput = new CompositeDocumentInput( - writers.stream().map(ImmutablePair::getRight).map(Writer::newDocumentInput).collect(Collectors.toList()), + writers.stream().map(Map.Entry::getValue).map(Writer::newDocumentInput).collect(Collectors.toList()), this, postWrite); compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); @@ -169,7 +170,7 @@ public static class CompositeDocumentInput implements DocumentInput> inputs, CompositeDataFormatWriter writer, - Runnable onClose) { + Runnable onClose) { this.inputs = inputs; this.writer = writer; this.onClose = onClose; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 2002c9cb26e60..088f3d90af63e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -8,7 +8,6 @@ package org.opensearch.index.engine.exec.coord; -import org.apache.commons.lang3.SerializationUtils; import org.apache.lucene.search.ReferenceManager; import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; From f691ca5ec4be3ea88ae0910f78e0c60717231674 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Tue, 4 Nov 2025 13:27:40 -0500 Subject: [PATCH 061/112] Remove scripts dir in feature/datafusion branch (#19877) * Remove scripts dir Signed-off-by: Peter Zhu * Sync commons-lang3 in server/build.gradle to be the same as libs Signed-off-by: Peter Zhu * Remove commons-lang3 dep Signed-off-by: Peter Zhu --------- Signed-off-by: Peter Zhu --- scripts/build.sh | 187 -------------------------------------------- scripts/install.sh | 118 ---------------------------- server/build.gradle | 2 +- 3 files changed, 1 insertion(+), 306 deletions(-) delete mode 100755 scripts/build.sh delete mode 100755 scripts/install.sh diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index 1b9fac8a669fd..0000000000000 --- a/scripts/build.sh +++ /dev/null @@ -1,187 +0,0 @@ -#!/bin/bash - -# Copyright OpenSearch Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -set -ex - -function usage() { - echo "Usage: $0 [args]" - echo "" - echo "Arguments:" - echo -e "-v VERSION\t[Required] OpenSearch version." - echo -e "-q QUALIFIER\t[Optional] Version qualifier." - echo -e "-s SNAPSHOT\t[Optional] Build a snapshot, default is 'false'." - echo -e "-p PLATFORM\t[Optional] Platform, default is 'uname -s'." - echo -e "-a ARCHITECTURE\t[Optional] Build architecture, default is 'uname -m'." - echo -e "-d DISTRIBUTION\t[Optional] Distribution, default is 'tar'." - echo -e "-o OUTPUT\t[Optional] Output path, default is 'artifacts'." - echo -e "-h help" -} - -while getopts ":h:v:q:s:o:p:a:d:" arg; do - case $arg in - h) - usage - exit 1 - ;; - v) - VERSION=$OPTARG - ;; - q) - QUALIFIER=$OPTARG - ;; - s) - SNAPSHOT=$OPTARG - ;; - o) - OUTPUT=$OPTARG - ;; - p) - PLATFORM=$OPTARG - ;; - a) - ARCHITECTURE=$OPTARG - ;; - d) - DISTRIBUTION=$OPTARG - ;; - :) - echo "Error: -${OPTARG} requires an argument" - usage - exit 1 - ;; - ?) - echo "Invalid option: -${arg}" - exit 1 - ;; - esac -done - -if [ -z "$VERSION" ]; then - echo "Error: You must specify the OpenSearch version" - usage - exit 1 -fi - -[ -z "$OUTPUT" ] && OUTPUT=artifacts - -echo "Creating output directory $OUTPUT/maven/org/opensearch if it doesn't already exist" -mkdir -p $OUTPUT/maven/org/opensearch - -# Build project and publish to maven local. -echo "Building and publishing OpenSearch project to Maven Local" -./gradlew publishToMavenLocal -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease - -# Publish to existing test repo, using this to stage release versions of the artifacts that can be released from the same build. -echo "Publishing OpenSearch to Test Repository" -./gradlew publishNebulaPublicationToTestRepository -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease - -# Copy maven publications to be promoted -echo "Copying Maven publications to $OUTPUT/maven/org" -cp -r ./build/local-test-repo/org/opensearch "${OUTPUT}"/maven/org - -# Assemble distribution artifact -# see https://github.com/opensearch-project/OpenSearch/blob/main/settings.gradle#L34 for other distribution targets - -[ -z "$PLATFORM" ] && PLATFORM=$(uname -s | awk '{print tolower($0)}') -[ -z "$ARCHITECTURE" ] && ARCHITECTURE=`uname -m` -[ -z "$DISTRIBUTION" ] && DISTRIBUTION="tar" - -case $PLATFORM-$DISTRIBUTION-$ARCHITECTURE in - linux-tar-x64|darwin-tar-x64) - PACKAGE="tar" - EXT="tar.gz" - TYPE="archives" - TARGET="$PLATFORM-$PACKAGE" - SUFFIX="$PLATFORM-x64" - ;; - linux-tar-arm64|darwin-tar-arm64) - PACKAGE="tar" - EXT="tar.gz" - TYPE="archives" - TARGET="$PLATFORM-arm64-$PACKAGE" - SUFFIX="$PLATFORM-arm64" - ;; - linux-tar-ppc64le) - PACKAGE="tar" - EXT="tar.gz" - TYPE="archives" - TARGET="$PLATFORM-ppc64le-$PACKAGE" - SUFFIX="$PLATFORM-ppc64le" - ;; - linux-deb-x64) - PACKAGE="deb" - EXT="deb" - TYPE="packages" - TARGET="deb" - SUFFIX="amd64" - ;; - linux-deb-arm64) - PACKAGE="deb" - EXT="deb" - TYPE="packages" - TARGET="arm64-deb" - SUFFIX="arm64" - ;; - linux-rpm-x64) - PACKAGE="rpm" - EXT="rpm" - TYPE="packages" - TARGET="rpm" - SUFFIX="x86_64" - ;; - linux-rpm-arm64) - PACKAGE="rpm" - EXT="rpm" - TYPE="packages" - TARGET="arm64-rpm" - SUFFIX="aarch64" - ;; - windows-zip-x64) - PACKAGE="zip" - EXT="zip" - TYPE="archives" - TARGET="$PLATFORM-$PACKAGE" - SUFFIX="$PLATFORM-x64" - ;; - windows-zip-arm64) - PACKAGE="zip" - EXT="zip" - TYPE="archives" - TARGET="$PLATFORM-arm64-$PACKAGE" - SUFFIX="$PLATFORM-arm64" - ;; - *) - echo "Unsupported platform-distribution-architecture combination: $PLATFORM-$DISTRIBUTION-$ARCHITECTURE" - exit 1 - ;; -esac - -echo "Building OpenSearch for $PLATFORM-$DISTRIBUTION-$ARCHITECTURE" - -./gradlew :distribution:$TYPE:$TARGET:assemble -Dbuild.snapshot=$SNAPSHOT -Dbuild.version_qualifier=$QUALIFIER -PrustRelease - -# Copy artifact to dist folder in bundle build output -echo "Copying artifact to ${OUTPUT}/dist" -[[ "$SNAPSHOT" == "true" ]] && IDENTIFIER="-SNAPSHOT" -ARTIFACT_BUILD_NAME=`ls distribution/$TYPE/$TARGET/build/distributions/ | grep "opensearch-min.*$SUFFIX.$EXT"` -mkdir -p "${OUTPUT}/dist" -cp distribution/$TYPE/$TARGET/build/distributions/$ARTIFACT_BUILD_NAME "${OUTPUT}"/dist/$ARTIFACT_BUILD_NAME - -echo "Building core plugins..." -mkdir -p "${OUTPUT}/core-plugins" -cd plugins -../gradlew assemble -Dbuild.snapshot="$SNAPSHOT" -Dbuild.version_qualifier=$QUALIFIER -PrustRelease -cd .. -for plugin in plugins/*; do - PLUGIN_NAME=$(basename "$plugin") - if [ -d "$plugin" ] && [ "examples" != "$PLUGIN_NAME" ]; then - PLUGIN_ARTIFACT_BUILD_NAME=`ls "$plugin"/build/distributions/ | grep "$PLUGIN_NAME.*$IDENTIFIER.zip"` - cp "$plugin"/build/distributions/"$PLUGIN_ARTIFACT_BUILD_NAME" "${OUTPUT}"/core-plugins/"$PLUGIN_ARTIFACT_BUILD_NAME" - fi -done diff --git a/scripts/install.sh b/scripts/install.sh deleted file mode 100755 index 5e081c13211ae..0000000000000 --- a/scripts/install.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/bash - -# Copyright OpenSearch Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# The OpenSearch Contributors require contributions made to -# this file be licensed under the Apache-2.0 license or a -# compatible open source license. - -set -ex - -function usage() { - echo "Usage: $0 [args]" - echo "" - echo "Arguments:" - echo -e "-v VERSION\t[Required] OpenSearch version." - echo -e "-s SNAPSHOT\t[Optional] Build a snapshot, default is 'false'." - echo -e "-p PLATFORM\t[Optional] Platform, default is 'uname -s'." - echo -e "-a ARCHITECTURE\t[Optional] Build architecture, default is 'uname -m'." - echo -e "-d DISTRIBUTION\t[Optional] Distribution, default is 'tar'." - echo -e "-f ARTIFACTS\t[Optional] Location of build artifacts." - echo -e "-o OUTPUT\t[Optional] Output path." - echo -e "-h help" -} - -while getopts ":h:v:s:o:p:a:d:f:" arg; do - case $arg in - h) - usage - exit 1 - ;; - v) - VERSION=$OPTARG - ;; - s) - SNAPSHOT=$OPTARG - ;; - o) - OUTPUT=$OPTARG - ;; - p) - PLATFORM=$OPTARG - ;; - a) - ARCHITECTURE=$OPTARG - ;; - d) - DISTRIBUTION=$OPTARG - ;; - f) - ARTIFACTS=$OPTARG - ;; - :) - echo "Error: -${OPTARG} requires an argument" - usage - exit 1 - ;; - ?) - echo "Invalid option: -${arg}" - exit 1 - ;; - esac -done - -if [ -z "$VERSION" ]; then - echo "Error: missing version." - usage - exit 1 -fi - -if ! command -v yq > /dev/null; then - echo "Error: yq not found, please install v4 version of yq" - exit 1 -fi - -[ -z "$SNAPSHOT" ] && SNAPSHOT="false" -[ -z "$PLATFORM" ] && PLATFORM=$(uname -s | awk '{print tolower($0)}') -[ -z "$ARCHITECTURE" ] && ARCHITECTURE=`uname -m` -[ -z "$DISTRIBUTION" ] && DISTRIBUTION="tar" - -# Make sure the cwd is where the script is located -DIR="$(dirname "$0")" -echo $DIR -cd $DIR - -## Copy the tar installation script into the bundle -MAJOR_VERSION=`echo $VERSION | cut -d. -f1` -if [ "$DISTRIBUTION" = "tar" ]; then - cp -v ../../../scripts/startup/tar/linux/opensearch-tar-install.sh "$OUTPUT/" -elif [ "$DISTRIBUTION" = "deb" ] || [ "$DISTRIBUTION" = "rpm" ]; then - cp -va ../../../scripts/pkg/service_templates/opensearch/* "$OUTPUT/../" - if [ "$MAJOR_VERSION" = "1" ]; then - cp -va ../../../scripts/pkg/build_templates/1.x/opensearch/$DISTRIBUTION/* "$OUTPUT/../" - elif [ "$MAJOR_VERSION" = "2" ]; then - cp -va ../../../scripts/pkg/build_templates/2.x/opensearch/$DISTRIBUTION/* "$OUTPUT/../" - else - cp -va ../../../scripts/pkg/build_templates/current/opensearch/$DISTRIBUTION/* "$OUTPUT/../" - OS_REF=`yq -e '.components[] | select(.name == "OpenSearch-DataFusion") | .ref' ../../../manifests/$VERSION/opensearch-$VERSION.yml` - - # DEB and RPM has different default env file location - ENV_FILE_PATH="$OUTPUT/../etc/sysconfig/opensearch" - if [ "$DISTRIBUTION" = "deb" ]; then - ENV_FILE_PATH="$OUTPUT/../etc/default/opensearch" - fi - - curl -SfL "https://raw.githubusercontent.com/opensearch-project/OpenSearch/$OS_REF/distribution/packages/src/common/env/opensearch" -o $ENV_FILE_PATH || { echo "Failed to download env file"; exit 1; } - curl -SfL "https://raw.githubusercontent.com/opensearch-project/OpenSearch/$OS_REF/distribution/packages/src/common/systemd/opensearch.service" -o "$OUTPUT/../usr/lib/systemd/system/opensearch.service" || { echo "Failed to download env file"; exit 1; } - - # k-NN lib setups - echo -e "\n\n################################" >> $ENV_FILE_PATH - echo -e "# Plugin properties" >> $ENV_FILE_PATH - echo -e "################################" >> $ENV_FILE_PATH - echo -e "\n# k-NN Lib Path" >> $ENV_FILE_PATH - echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/share/opensearch/plugins/opensearch-knn/lib" >> $ENV_FILE_PATH - fi -elif [ "$DISTRIBUTION" = "zip" ] && [ "$PLATFORM" = "windows" ]; then - cp -v ../../../scripts/startup/zip/windows/opensearch-windows-install.bat "$OUTPUT/" -fi diff --git a/server/build.gradle b/server/build.gradle index 73540b016d0a0..00ddc31083037 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -78,7 +78,7 @@ dependencies { compileOnly project(':libs:opensearch-plugin-classloader') testRuntimeOnly project(':libs:opensearch-plugin-classloader') - //implementation 'org.apache.commons:commons-lang3:3.17.0' + //implementation "org.apache.commons:commons-lang3:${versions.commonslang}" api libs.bundles.lucene From 53f76ef53acfa0f4d6821a3cc2475c5c29a2f8c9 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Tue, 4 Nov 2025 18:13:17 -0800 Subject: [PATCH 062/112] TermsAgg and CompositeAgg Response Handling (#19893) * Handling result conversion from TermsAgg and added support for correctly populating doc_count in response Signed-off-by: expani * Skipping data stream timestamp field as there is no mapping Signed-off-by: expani --------- Signed-off-by: expani --- .../fields/ArrowSchemaBuilder.java | 3 +- .../search/aggregations/AggregatorBase.java | 10 +++ .../bucket/composite/CompositeAggregator.java | 38 +++++++- .../terms/AbstractStringTermsAggregator.java | 87 ++++++++++++++++++- .../metrics/ValueCountAggregator.java | 6 +- 5 files changed, 137 insertions(+), 7 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java index 01fd89d8ae49c..5430b7fa03101 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ArrowSchemaBuilder.java @@ -93,7 +93,8 @@ private static boolean notSupportedMetadataField(final Mapper mapper) { || mapper instanceof FieldNamesFieldMapper || mapper instanceof IndexFieldMapper || mapper instanceof NestedPathFieldMapper - || Objects.equals(mapper.typeName(), "_feature"); + || Objects.equals(mapper.typeName(), "_feature") + || Objects.equals(mapper.typeName(), "_data_stream_timestamp"); } /** diff --git a/server/src/main/java/org/opensearch/search/aggregations/AggregatorBase.java b/server/src/main/java/org/opensearch/search/aggregations/AggregatorBase.java index 42ba00e9182bf..fe576a17d7a4b 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/AggregatorBase.java +++ b/server/src/main/java/org/opensearch/search/aggregations/AggregatorBase.java @@ -50,6 +50,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.function.Function; /** @@ -343,4 +344,13 @@ protected void checkCancelled() { throw new TaskCancelledException("The query has been cancelled"); } } + + protected Optional subAggregatorByName(String name) { + for (Aggregator aggregator : subAggregators) { + if (aggregator.name().equals(name)) { + return Optional.of(aggregator); + } + } + return Optional.empty(); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index a73543b4944b2..c5863ca9a650e 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -78,6 +78,8 @@ import org.opensearch.search.aggregations.bucket.filterrewrite.FilterRewriteOptimizationContext; import org.opensearch.search.aggregations.bucket.missing.MissingOrder; import org.opensearch.search.aggregations.bucket.terms.LongKeyedBucketOrds; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.searchafter.SearchAfterBuilder; import org.opensearch.search.sort.SortAndFormats; @@ -89,6 +91,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.LongUnaryOperator; @@ -747,6 +750,7 @@ public List convert(Map shardResult, Sear } List buckets = new ArrayList<>(); int row = 0; + Optional countColumnName = getCountColumnName(shardResult); for (CompositeKey compositeKey : compositeKeys) { List subAggs = new ArrayList<>(); for (Aggregator subAgg : subAggregators) { @@ -756,13 +760,25 @@ public List convert(Map shardResult, Sear ShardResultConvertor convertor = (ShardResultConvertor) subAgg; subAggs.add(convertor.convertRow(shardResult, row, searchContext)); } + long docCount = 1; + if (countColumnName.isPresent()) { + Optional countAggregator = subAggregatorByName(countColumnName.get()); + // SQL plugin pushed down a count sub agg + if (countAggregator.isPresent()) { + ShardResultConvertor convertor = (ShardResultConvertor) countAggregator.get(); + InternalValueCount valueCount = (InternalValueCount) convertor.convertRow(shardResult, row, searchContext); + docCount = valueCount.getValue(); + } else { + docCount = (long) searchContext.convertToComparable(shardResult.get(countColumnName.get())[row]); + } + } buckets.add(new InternalComposite.InternalBucket( sourceNames, formats, compositeKey, reverseMuls, missingOrders, - 1, + docCount, InternalAggregations.from(subAggs) )); row++; @@ -783,6 +799,26 @@ public List convert(Map shardResult, Sear )); } + private Optional getCountColumnName(Map datafusionResult) { + String countColumnName = null; + for (String outputColumn : datafusionResult.keySet()) { + // Ensure it's not a GroupBy column + if (sourceNames.contains(outputColumn) == false) { + Optional aggregator = subAggregatorByName(outputColumn); + if (aggregator.isPresent()) { + if (aggregator.get() instanceof ValueCountAggregator) { + countColumnName = outputColumn; + break; + } + } else { + countColumnName = outputColumn; + break; + } + } + } + return countColumnName == null ? Optional.empty() : Optional.of(countColumnName); + } + /** * An entry in the composite aggregator * diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java index d06a0ed9976fc..317c02c149a72 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java @@ -33,25 +33,36 @@ package org.opensearch.search.aggregations.bucket.terms; import org.apache.lucene.index.IndexReader; +import org.apache.lucene.util.BytesRef; import org.opensearch.search.DocValueFormat; import org.opensearch.search.aggregations.Aggregator; import org.opensearch.search.aggregations.AggregatorFactories; import org.opensearch.search.aggregations.BucketOrder; +import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.InternalAggregations; +import org.opensearch.search.aggregations.InternalOrder; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.bucket.terms.heuristic.SignificanceHeuristic; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.SearchContext; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import java.util.Optional; import static java.util.Collections.emptyList; +import static org.opensearch.search.aggregations.InternalOrder.isKeyOrder; /** * Base Aggregator to collect all docs that contain significant terms * * @opensearch.internal */ -abstract class AbstractStringTermsAggregator extends TermsAggregator { +abstract class AbstractStringTermsAggregator extends TermsAggregator implements ShardResultConvertor { protected final boolean showTermDocCountError; @@ -103,4 +114,78 @@ protected SignificantStringTerms buildEmptySignificantTermsAggregation(long subs bucketCountThresholds ); } + + @Override + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { + String termKey = (String) searchContext.convertToComparable(shardResult.get(name)[row]); + + List subAggs = new ArrayList<>(); + for (Aggregator aggregator : subAggregators) { + if (aggregator instanceof ShardResultConvertor convertor) { + InternalAggregation subAgg = convertor.convertRow(shardResult, row, searchContext); + subAggs.add(subAgg); + } + } + + Optional countColumnName = getCountColumnName(shardResult); + long docCount = 1; + if (countColumnName.isPresent()) { + Optional countAggregator = subAggregatorByName(countColumnName.get()); + // SQL plugin pushed down a count sub agg + if (countAggregator.isPresent()) { + ShardResultConvertor convertor = (ShardResultConvertor) countAggregator.get(); + InternalValueCount valueCount = (InternalValueCount) convertor.convertRow(shardResult, row, searchContext); + docCount = valueCount.getValue(); + } else { + // SQL plugin didn't push down sub agg and will get count from doc_count field + docCount = (long) searchContext.convertToComparable(shardResult.get(countColumnName.get())[row]); + } + } + + BucketOrder reduceOrder = order; + if (isKeyOrder(order) == false) { + reduceOrder = InternalOrder.key(true); + } + StringTerms.Bucket bucket = new StringTerms.Bucket( + new BytesRef(termKey), + docCount, + InternalAggregations.from(subAggs), + showTermDocCountError, + 0, + format + ); + return new StringTerms( + name, + reduceOrder, + order, + null, + format, + bucketCountThresholds.getShardSize(), + showTermDocCountError, + 0, + List.of(bucket), + 0, + bucketCountThresholds + ); + } + + private Optional getCountColumnName(Map datafusionResult) { + String countColumnName = null; + for (String outputColumn : datafusionResult.keySet()) { + // Ensure it's not a GroupBy column + if (name.contains(outputColumn) == false) { + Optional aggregator = subAggregatorByName(outputColumn); + if (aggregator.isPresent()) { + if (aggregator.get() instanceof ValueCountAggregator) { + countColumnName = outputColumn; + break; + } + } else { + countColumnName = outputColumn; + break; + } + } + } + return countColumnName == null ? Optional.empty() : Optional.of(countColumnName); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java index 278847b30b121..b94fa02a94cdf 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/ValueCountAggregator.java @@ -54,8 +54,6 @@ import org.opensearch.search.startree.StarTreeQueryHelper; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import static org.opensearch.search.startree.StarTreeQueryHelper.getSupportedStarTree; @@ -215,7 +213,7 @@ public StarTreeBucketCollector getStarTreeBucketCollector( @Override public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { - Object[] values = shardResult.get(name); - return new InternalValueCount(name, ((Number) values[row]).longValue(), metadata()); + Object[] values = shardResult.get(name); + return new InternalValueCount(name, ((Number) values[row]).longValue(), metadata()); } } From 869892bea224f1f89e817fc1fbcaa7abb10fd0c8 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Wed, 5 Nov 2025 15:23:53 +0530 Subject: [PATCH 063/112] Remove concurrency issue for background merge (#19895) --- .../index/engine/exec/merge/MergeHandler.java | 52 +++++++++++++++++++ .../engine/exec/merge/MergeScheduler.java | 21 +++++--- .../exec/merge/ParquetMergeHandler.java | 19 ++++++- .../exec/merge/ParquetTieredMergePolicy.java | 49 +++++++++++------ 4 files changed, 116 insertions(+), 25 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index e818dc610d568..56e5985dab48f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -16,9 +16,13 @@ import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.index.engine.exec.coord.CompositeEngine; +import java.util.ArrayDeque; import java.util.Collection; +import java.util.Deque; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; public abstract class MergeHandler { @@ -29,6 +33,8 @@ public abstract class MergeHandler { private CompositeEngine compositeEngine; private Map dataFormatMergerMap; + private final Deque mergingSegments = new ArrayDeque<>(); + private final Set mergingFileNames = new HashSet<>(); public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats) { this.compositeDataFormat = dataFormats; @@ -49,6 +55,52 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public abstract Collection findForceMerges(int maxSegmentCount); + public void updatePendingMerges() { + Collection oneMerges = findMerges(); + for (OneMerge oneMerge : oneMerges) { + boolean isValidMerge = true; + for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { + if(mergingFileNames.contains(fileMetadata.directory()+"/"+fileMetadata.file())) { + isValidMerge = false; + } + } + if(isValidMerge) { + registerMerge(oneMerge); + } + } + } + + public synchronized void registerMerge(OneMerge merge) { + mergingSegments.add(merge); + for(FileMetadata fileMetadata : merge.getFilesToMerge()) { + mergingFileNames.add(fileMetadata.directory()+"/"+fileMetadata.file()); + } + } + + public boolean hasPendingMerges() { + return mergingSegments.size() > 0; + } + + public synchronized OneMerge getNextMerge() { + if(mergingSegments.isEmpty()) { + return null; + } + OneMerge oneMerge = mergingSegments.removeFirst(); + return oneMerge; + } + + public synchronized void onMergeFinished(OneMerge oneMerge) { + mergingSegments.remove(oneMerge); + for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { + mergingFileNames.remove(fileMetadata.directory()+"/"+fileMetadata.file()); + } + } + + public synchronized void onMergeFailure(OneMerge oneMerge) { + onMergeFinished(oneMerge); // Removing failed merge from merging segment so next merge can pick this files + System.out.println("Merge FAILED for oneMerge: " + oneMerge); + } + public MergeResult doMerge(OneMerge oneMerge) { Map> mergedFiles = new HashMap<>(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index 9ba3250cee852..e67d410d4e1f2 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.merge; +import org.apache.lucene.index.MergePolicy; import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.io.IOException; @@ -24,14 +25,18 @@ public MergeScheduler(MergeHandler mergeHandler, CompositeEngine compositeEngine } public void triggerMerges() throws IOException { - // TODO: Move the merge to seperate thread - Collection oneMerges = mergeHandler.findMerges(); - - // TODO: For now it is serial. we can make it concurrent if needed, similar to concurrent/serial merge scheduler - - for(OneMerge oneMerge : oneMerges) { - MergeResult mergeResult = mergeHandler.doMerge(oneMerge); - this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); + mergeHandler.updatePendingMerges(); + + while(mergeHandler.hasPendingMerges()) { + OneMerge oneMerge = mergeHandler.getNextMerge(); + try { + // TODO: Move the merge to seperate thread + MergeResult mergeResult = mergeHandler.doMerge(oneMerge); + this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); + mergeHandler.onMergeFinished(oneMerge); + } catch (Exception e) { + mergeHandler.onMergeFailure(oneMerge); + } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 034dc3ac7759c..9ce75a8c0a9fc 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -36,8 +36,8 @@ public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExe mergePolicy = new ParquetTieredMergePolicy(); // Merge Policy configurations - this.mergePolicy.setMaxMergedSegmentMB(10); - this.mergePolicy.setSegmentsPerTier(2); + this.mergePolicy.setMaxMergedSegmentMB(2000); + this.mergePolicy.setSegmentsPerTier(10.0); // this.mergePolicy.setMaxMergeAtOnce(5); // this.mergePolicy.setFloorSegmentMB(1.0); } @@ -111,4 +111,19 @@ public Collection findMerges() { } return oneMerges; } + + public synchronized void registerMerge(OneMerge oneMerge) { + super.registerMerge(oneMerge); + mergePolicy.addMergingSegment(oneMerge.getFilesToMerge()); + } + + public synchronized void onMergeFinished(OneMerge oneMerge) { + super.onMergeFinished(oneMerge); + mergePolicy.removeMergingSegment(oneMerge.getFilesToMerge()); + } + + public synchronized void onMergeFailure(OneMerge oneMerge) { + super.onMergeFailure(oneMerge); + mergePolicy.removeMergingSegment(oneMerge.getFilesToMerge()); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index c833fc2ec00be..6e3c22a6bb189 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -13,6 +13,7 @@ import org.apache.lucene.store.NIOFSDirectory; import org.apache.lucene.util.InfoStream; import org.apache.lucene.util.Version; +import org.opensearch.index.engine.exec.FileMetadata; import java.io.IOException; import java.nio.file.Files; @@ -24,7 +25,7 @@ public class ParquetTieredMergePolicy implements MergePolicy.MergeContext { private final TieredMergePolicy luceneMergePolicy; private final InfoStream infoStream; - private static final Set mergingSegments = new HashSet<>(); + private static final HashSet mergingSegments = new HashSet<>(); private static final Set mergingFileNames = new HashSet<>(); public ParquetTieredMergePolicy() { @@ -116,23 +117,12 @@ public List> findMergeCandidates(List seg // Convert back to Parquet segments for (MergePolicy.OneMerge merge : luceneMerges) { - boolean validMerge = true; List parquetMerge = new ArrayList<>(); - for (SegmentCommitInfo segment : merge.segments) { - if(mergingFileNames.contains(segment.info.name)) { - validMerge = false; - } + + for(SegmentCommitInfo segment : merge.segments) { parquetMerge.add(segmentMap.get(segment)); } - if(validMerge) { - for(SegmentCommitInfo segment : merge.segments) { - mergingSegments.add(segment); - mergingFileNames.add(segment.info.name); - } - merges.add(parquetMerge); - } else { - System.out.println("Not valid merge already in file!! Rejecting !!!"); - } + merges.add(parquetMerge); } } } catch (Exception e) { @@ -171,6 +161,34 @@ public void setSegmentsPerTier(double segments) { luceneMergePolicy.setSegmentsPerTier(segments); } + public synchronized void addMergingSegment(Collection files) { + try { + for (FileMetadata fileMetadata : files) { + mergingSegments.add(new ParquetSegmentWrapper(new ParquetFileInfo(fileMetadata.directory() + "/" + fileMetadata.file()))); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + public synchronized void removeMergingSegment(Collection files) { + List segmentToRemove = new ArrayList<>(); + try { + for(FileMetadata fileMetadata : files) { + for(SegmentCommitInfo segment : mergingSegments) { + if(segment.info.name.equals(fileMetadata.directory()+"/"+fileMetadata.file())) { + segmentToRemove.add(segment); + } + } + } + segmentToRemove.forEach(segment -> mergingSegments.remove(segment)); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + public void setMaxMergeAtOnce(int count) { luceneMergePolicy.setMaxMergeAtOnce(count); } @@ -193,6 +211,7 @@ public ParquetFileInfo(String path) throws IOException { // For now doc count we are deriving from size of file. // Once we have that info as part of Refresh Result, we can change this. this.docCount = Files.size(this.path)/1000; + // SegmentName is same as fileName this.segmentName = path; } From c1fd20d8bd865f647b5945e80c88cf777266c185 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Wed, 5 Nov 2025 19:21:28 +0530 Subject: [PATCH 064/112] Decoupling the merge from the refresh thread (#19879) * Decoupling the merge from the refresh thread Signed-off-by: Sagar Darji # Conflicts: # server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java * Fixing the merge conflict Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji --- .../org/opensearch/index/IndexSettings.java | 2 +- .../engine/exec/merge/MergeScheduler.java | 179 +++++++++++++++++- 2 files changed, 173 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/IndexSettings.java b/server/src/main/java/org/opensearch/index/IndexSettings.java index a10f9d8152a79..ea25e2cc3647c 100644 --- a/server/src/main/java/org/opensearch/index/IndexSettings.java +++ b/server/src/main/java/org/opensearch/index/IndexSettings.java @@ -798,7 +798,7 @@ public static IndexMergePolicy fromString(String text) { public static final Setting INDEX_DERIVED_SOURCE_SETTING = Setting.boolSetting( "index.derived_source.enabled", - false, + true, Property.IndexScope, Property.Final ); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index e67d410d4e1f2..05f446303cbdf 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -10,30 +10,86 @@ import org.apache.lucene.index.MergePolicy; import org.opensearch.index.engine.exec.coord.CompositeEngine; +import org.opensearch.index.MergeSchedulerConfig; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.util.Collection; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicBoolean; public class MergeScheduler { - private MergeHandler mergeHandler; - private CompositeEngine compositeEngine; + private static final Logger logger = LogManager.getLogger(MergeScheduler.class); + + private final MergeHandler mergeHandler; + private final CompositeEngine compositeEngine; + private final List mergeThreads = new CopyOnWriteArrayList<>(); + private final AtomicInteger activeMerges = new AtomicInteger(0); + private final AtomicBoolean isShutdown = new AtomicBoolean(false); + private volatile int maxConcurrentMerges; + private volatile int maxMergeCount; public MergeScheduler(MergeHandler mergeHandler, CompositeEngine compositeEngine) { + this(mergeHandler, compositeEngine, Math.max(1, Runtime.getRuntime().availableProcessors() / 4)); + + } + + public MergeScheduler(MergeHandler mergeHandler, CompositeEngine compositeEngine, int maxConcurrentMerges) { this.mergeHandler = mergeHandler; this.compositeEngine = compositeEngine; + this.maxConcurrentMerges = maxConcurrentMerges; + this.maxMergeCount = maxConcurrentMerges + 5; } + //TODO use this function to refresh the config from IndexSettings.MergeSchedulerConfig + /** + * Refreshes merge scheduler configuration from MergeSchedulerConfig. + * Updates max thread count and max merge count dynamically. + */ + public synchronized void refreshConfig(MergeSchedulerConfig config) { + int newMaxThreadCount = config.getMaxThreadCount(); + int newMaxMergeCount = config.getMaxMergeCount(); + + if (newMaxThreadCount == this.maxConcurrentMerges && newMaxMergeCount == this.maxMergeCount) { + return; + } + + logger.info("Updating merge scheduler config: maxThreadCount {} -> {}, maxMergeCount {} -> {}", + this.maxConcurrentMerges, newMaxThreadCount, this.maxMergeCount, newMaxMergeCount); + + this.maxConcurrentMerges = newMaxThreadCount; + this.maxMergeCount = newMaxMergeCount; + } + + /** + * Triggers merges asynchronously in background threads. + * This method returns immediately, allowing the calling thread to continue. + */ public void triggerMerges() throws IOException { + if (isShutdown.get()) { + logger.warn("MergeScheduler is shutdown, ignoring merge trigger"); + return; + } + mergeHandler.updatePendingMerges(); - while(mergeHandler.hasPendingMerges()) { + + // Submit merges up to available capacity + int scheduled = 0; + int availableToSchedule = getAvailableMergeSlots(); + + while(availableToSchedule >= scheduled && mergeHandler.hasPendingMerges()) { OneMerge oneMerge = mergeHandler.getNextMerge(); + if (oneMerge == null) { + return; + } try { - // TODO: Move the merge to seperate thread - MergeResult mergeResult = mergeHandler.doMerge(oneMerge); - this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); - mergeHandler.onMergeFinished(oneMerge); + submitMergeTask(oneMerge); + scheduled++; } catch (Exception e) { mergeHandler.onMergeFailure(oneMerge); } @@ -49,4 +105,113 @@ public void forceMerge(int maxNumSegment) throws IOException { this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); } } + + /** + * Calculates available merge slots based on current system resources. + */ + private int getAvailableMergeSlots() { + int currentActive = activeMerges.get(); + return Math.max(0, maxConcurrentMerges - currentActive); + } + + /** + * Starts a single merge thread. + */ + private void submitMergeTask(OneMerge oneMerge) { + activeMerges.incrementAndGet(); + MergeThread thread = new MergeThread(oneMerge); + mergeThreads.add(thread); + thread.start(); + } + + /** + * Thread that executes a single merge operation. + */ + private class MergeThread extends Thread { + private final OneMerge oneMerge; + + MergeThread(OneMerge oneMerge) { + super("merge-scheduler-" + oneMerge.toString()); + this.oneMerge = oneMerge; + setDaemon(true); + } + + @Override + public void run() { + try { + if (isShutdown.get()) { + logger.debug("[{}] MergeScheduler is shutdown, skipping merge", getName()); + return; + } + + logger.info("[{}] Starting merge for: {}", getName(), oneMerge); + long startTime = System.nanoTime(); + + MergeResult mergeResult = mergeHandler.doMerge(oneMerge); + compositeEngine.applyMergeChanges(mergeResult, oneMerge); + mergeHandler.onMergeFinished(oneMerge); + + long durationMs = (System.nanoTime() - startTime) / 1_000_000; + logger.info("[{}] Merge completed in {}ms for: {}", getName(), durationMs, oneMerge); + + } catch (Exception e) { + logger.error("[{}] Unexpected error during merge for: {}", getName(), oneMerge, e); + } finally { + activeMerges.decrementAndGet(); + mergeThreads.remove(this); + } + } + } + + /** + * Returns the number of currently active merge operations. + */ + public int getActiveMergeCount() { + return activeMerges.get(); + } + + /** + * Returns the maximum number of concurrent merges allowed. + */ + public int getMaxConcurrentMerges() { + return maxConcurrentMerges; + } + + /** + * Returns the maximum number of merges allowed. + */ + public int getMaxMergeCount() { + return maxMergeCount; + } + + /** + * Shuts down the merge scheduler and waits for active merges to complete. + */ + //TODO see where we want to call this function for the Merge shutdown + public void shutdown() { + if (isShutdown.compareAndSet(false, true)) { + logger.info("Shutting down MergeScheduler with {} active merges", activeMerges.get()); + + for (MergeThread thread : mergeThreads) { + try { + thread.join(30000); + if (thread.isAlive()) { + logger.warn("MergeThread {} did not terminate within 30 seconds", thread.getName()); + thread.interrupt(); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } + } + mergeThreads.clear(); + } + } + + /** + * Checks if the merge scheduler is shutdown. + */ + public boolean isShutdown() { + return isShutdown.get(); + } } From f76c5da0514b180b7362ef49d949463f573be986 Mon Sep 17 00:00:00 2001 From: bharath-techie Date: Wed, 5 Nov 2025 21:06:08 +0530 Subject: [PATCH 065/112] fix server unit tests build Signed-off-by: bharath-techie --- plugins/engine-datafusion/jni/Cargo.toml | 4 ++++ .../test/java/org/opensearch/search/SearchServiceTests.java | 3 ++- .../org/opensearch/snapshots/SnapshotResiliencyTests.java | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index d04db8fd13fbd..828c389b9bff3 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -73,9 +73,13 @@ lto = true codegen-units = 1 panic = "abort" incremental = true +debug = true +strip = false [profile.dev] opt-level = 1 # Some optimization for reasonable performance lto = false # Disable LTO for faster builds codegen-units = 16 # More parallel compilation incremental = true # Enable incremental compilation +debug = true +strip = false diff --git a/server/src/test/java/org/opensearch/search/SearchServiceTests.java b/server/src/test/java/org/opensearch/search/SearchServiceTests.java index 82b6bc3346524..6cb03e97f6f57 100644 --- a/server/src/test/java/org/opensearch/search/SearchServiceTests.java +++ b/server/src/test/java/org/opensearch/search/SearchServiceTests.java @@ -74,6 +74,7 @@ import org.opensearch.index.IndexService; import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.mapper.DerivedFieldType; import org.opensearch.index.query.AbstractQueryBuilder; import org.opensearch.index.query.MatchAllQueryBuilder; @@ -837,7 +838,7 @@ public void testOpenScrollContextsConcurrently() throws Exception { try { latch.await(); for (;;) { - final Engine.SearcherSupplier reader = indexShard.acquireSearcherSupplier(); + final EngineSearcherSupplier reader = indexShard.acquireSearcherSupplier(); try { searchService.createAndPutReaderContext( new ShardScrollRequestTest(indexShard.shardId()), diff --git a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java index a936d4ce79ec2..cdaf3293cfb64 100644 --- a/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java +++ b/server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java @@ -2367,6 +2367,7 @@ public void onFailure(final Exception e) { null, new TaskResourceTrackingService(settings, clusterSettings, threadPool), Collections.emptyList(), + Collections.emptyList(), Collections.emptyList() ); SearchPhaseController searchPhaseController = new SearchPhaseController( From c6a42c2ad3035c3454c1cfdd9627c9596044cae4 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Wed, 5 Nov 2025 13:44:30 -0800 Subject: [PATCH 066/112] [feature/datafusion] Removed special handling for populating doc_count (#19903) * Removed special handling for populating doc_count Signed-off-by: expani * Add more queries and improved testing dataset Signed-off-by: expani --------- Signed-off-by: expani --- plugins/engine-datafusion/README.md | 67 ++++++++++++++++--- .../bucket/composite/CompositeAggregator.java | 36 +--------- .../terms/AbstractStringTermsAggregator.java | 37 +--------- .../aggregations/metrics/AvgAggregator.java | 2 +- 4 files changed, 62 insertions(+), 80 deletions(-) diff --git a/plugins/engine-datafusion/README.md b/plugins/engine-datafusion/README.md index bc4ad580df874..8aa0a1f48c34e 100644 --- a/plugins/engine-datafusion/README.md +++ b/plugins/engine-datafusion/README.md @@ -36,14 +36,26 @@ curl --location --request PUT 'http://localhost:9200/index-7' \ }, "mappings": { "properties": { - "message": { - "type": "long" + "id": { + "type": "keyword" }, - "message2": { - "type": "long" + "name": { + "type": "keyword" }, - "message3": { + "age": { + "type": "integer" + }, + "salary": { "type": "long" + }, + "score": { + "type": "double" + }, + "active": { + "type": "boolean" + }, + "created_date": { + "type": "date" } } } @@ -54,9 +66,18 @@ curl --location --request PUT 'http://localhost:9200/index-7' \ curl --location --request POST 'http://localhost:9200/_bulk' \ --header 'Content-Type: application/json' \ --data-raw '{"index":{"_index":"index-7"}} -{"message": 2,"message2": 3,"message3": 4} +{"id":"1","name":"Alice","age":30,"salary":75000,"score":95.5,"active":true,"created_date":"2024-01-15"} +{"index":{"_index":"index-7"}} +{"id":"2","name":"Bob","age":25,"salary":60000,"score":88.3,"active":true,"created_date":"2024-02-20"} +{"index":{"_index":"index-7"}} +{"id":"3","name":"Charlie","age":35,"salary":90000,"score":92.7,"active":false,"created_date":"2024-03-10"} {"index":{"_index":"index-7"}} -{"message": 3,"message2": 4,"message3": 5} +{"id":"4","name":"Diana","age":28,"salary":70000,"score":89.1,"active":true,"created_date":"2024-04-05"} +{"index":{"_index":"index-7"}} +{"id":"5","name":"Bob","age":30,"salary":55000,"score":81.1,"active":true,"created_date":"2024-04-05"} +{"index":{"_index":"index-7"}} +{"id":"5","name":"Diana","age":35,"salary":65000,"score":71.1,"active":true,"created_date":"2024-02-05"} +' ' ``` 4. Refresh the index @@ -68,6 +89,36 @@ curl localhost:9200/index-7/_refresh curl --location --request POST 'http://localhost:9200/_plugins/_ppl' \ --header 'Content-Type: application/json' \ --data-raw '{ - "query": "source=index-7 | stats count(), min(message) as min, max(message2) as max" + "query": "source=index-7 | stats count(), min(age) as min, max(age) as max, avg(age) as avg" +}' + + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "query": "source=index-7 | stats count() as c by name | sort c" +}' + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' --header 'Content-Type: application/json' --data-raw '{ + "query": "source=index-7 | stats count(), sum(age) as c by name | sort c" +}' + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' --header 'Content-Type: application/json' --data-raw '{ + "query": "source=index-7 | where name = \"Bob\" | stats sum(age)" +}' + + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' --header 'Content-Type: application/json' --data-raw '{ + "query": "source=index-7 | stats sum(age) as s by name | sort s" +}' + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' --header 'Content-Type: application/json' --data-raw '{ + "query": "source=index-7 | stats sum(age) as s by name | sort name" +}' + +curl --location --request POST 'http://localhost:9200/_plugins/_ppl' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "query": "source=index-7 | stats count() as c by name" }' ``` diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index c5863ca9a650e..14bd913369165 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -78,8 +78,6 @@ import org.opensearch.search.aggregations.bucket.filterrewrite.FilterRewriteOptimizationContext; import org.opensearch.search.aggregations.bucket.missing.MissingOrder; import org.opensearch.search.aggregations.bucket.terms.LongKeyedBucketOrds; -import org.opensearch.search.aggregations.metrics.InternalValueCount; -import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.searchafter.SearchAfterBuilder; import org.opensearch.search.sort.SortAndFormats; @@ -91,7 +89,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.LongUnaryOperator; @@ -750,7 +747,6 @@ public List convert(Map shardResult, Sear } List buckets = new ArrayList<>(); int row = 0; - Optional countColumnName = getCountColumnName(shardResult); for (CompositeKey compositeKey : compositeKeys) { List subAggs = new ArrayList<>(); for (Aggregator subAgg : subAggregators) { @@ -760,18 +756,8 @@ public List convert(Map shardResult, Sear ShardResultConvertor convertor = (ShardResultConvertor) subAgg; subAggs.add(convertor.convertRow(shardResult, row, searchContext)); } + // This is mocked as we are forcing SQLPlugin to always send a count sub aggregation instead of relying on doc_count in the response. long docCount = 1; - if (countColumnName.isPresent()) { - Optional countAggregator = subAggregatorByName(countColumnName.get()); - // SQL plugin pushed down a count sub agg - if (countAggregator.isPresent()) { - ShardResultConvertor convertor = (ShardResultConvertor) countAggregator.get(); - InternalValueCount valueCount = (InternalValueCount) convertor.convertRow(shardResult, row, searchContext); - docCount = valueCount.getValue(); - } else { - docCount = (long) searchContext.convertToComparable(shardResult.get(countColumnName.get())[row]); - } - } buckets.add(new InternalComposite.InternalBucket( sourceNames, formats, @@ -799,26 +785,6 @@ public List convert(Map shardResult, Sear )); } - private Optional getCountColumnName(Map datafusionResult) { - String countColumnName = null; - for (String outputColumn : datafusionResult.keySet()) { - // Ensure it's not a GroupBy column - if (sourceNames.contains(outputColumn) == false) { - Optional aggregator = subAggregatorByName(outputColumn); - if (aggregator.isPresent()) { - if (aggregator.get() instanceof ValueCountAggregator) { - countColumnName = outputColumn; - break; - } - } else { - countColumnName = outputColumn; - break; - } - } - } - return countColumnName == null ? Optional.empty() : Optional.of(countColumnName); - } - /** * An entry in the composite aggregator * diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java index 317c02c149a72..975c65338b5a1 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java @@ -43,8 +43,6 @@ import org.opensearch.search.aggregations.InternalOrder; import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.bucket.terms.heuristic.SignificanceHeuristic; -import org.opensearch.search.aggregations.metrics.InternalValueCount; -import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.SearchContext; @@ -52,7 +50,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import static java.util.Collections.emptyList; import static org.opensearch.search.aggregations.InternalOrder.isKeyOrder; @@ -126,21 +123,8 @@ public InternalAggregation convertRow(Map shardResult, int row subAggs.add(subAgg); } } - - Optional countColumnName = getCountColumnName(shardResult); + // This is mocked as we are forcing SQLPlugin to always send a count sub aggregation instead of relying on doc_count in the response. long docCount = 1; - if (countColumnName.isPresent()) { - Optional countAggregator = subAggregatorByName(countColumnName.get()); - // SQL plugin pushed down a count sub agg - if (countAggregator.isPresent()) { - ShardResultConvertor convertor = (ShardResultConvertor) countAggregator.get(); - InternalValueCount valueCount = (InternalValueCount) convertor.convertRow(shardResult, row, searchContext); - docCount = valueCount.getValue(); - } else { - // SQL plugin didn't push down sub agg and will get count from doc_count field - docCount = (long) searchContext.convertToComparable(shardResult.get(countColumnName.get())[row]); - } - } BucketOrder reduceOrder = order; if (isKeyOrder(order) == false) { @@ -169,23 +153,4 @@ public InternalAggregation convertRow(Map shardResult, int row ); } - private Optional getCountColumnName(Map datafusionResult) { - String countColumnName = null; - for (String outputColumn : datafusionResult.keySet()) { - // Ensure it's not a GroupBy column - if (name.contains(outputColumn) == false) { - Optional aggregator = subAggregatorByName(outputColumn); - if (aggregator.isPresent()) { - if (aggregator.get() instanceof ValueCountAggregator) { - countColumnName = outputColumn; - break; - } - } else { - countColumnName = outputColumn; - break; - } - } - } - return countColumnName == null ? Optional.empty() : Optional.of(countColumnName); - } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index 45d8b3f1ccf73..ef404476fbcdc 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -285,6 +285,6 @@ public void collectStarTreeEntry(int starTreeEntryBit, long bucket) throws IOExc public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] counts = shardResult.get(name + "_count"); Object[] sums = shardResult.get(name + "_sum"); - return new InternalAvg(name, ((Number) sums[row]).doubleValue(), ((Number) sums[row]).longValue(), format, metadata()); + return new InternalAvg(name, ((Number) sums[row]).doubleValue(), ((Number) counts[row]).longValue(), format, metadata()); } } From 6cf2c40bd1669da8fbb0f04b27603af494029c38 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Thu, 6 Nov 2025 16:24:04 +0530 Subject: [PATCH 067/112] Fixing merge policy issue (#19908) Signed-off-by: Dhwanil Patel --- .../parquetdataformat/engine/ParquetExecutionEngine.java | 2 +- .../parquetdataformat/merge/RecordBatchMergeStrategy.java | 2 +- .../org/opensearch/index/engine/exec/merge/MergeHandler.java | 2 ++ .../opensearch/index/engine/exec/merge/MergeScheduler.java | 1 + .../index/engine/exec/merge/ParquetTieredMergePolicy.java | 5 +++-- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 402a9dbe9735b..0299a74431cfc 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -54,7 +54,7 @@ */ public class ParquetExecutionEngine implements IndexingExecutionEngine { - public static final String FILE_NAME_PREFIX = "parquet_file_generation"; + public static final String FILE_NAME_PREFIX = "_parquet_file_generation"; private final Supplier schema; private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index 4e1a3467abf28..36f9930ded673 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -68,7 +68,7 @@ public MergeResult mergeParquetFiles(Collection files) { } private String getMergedFileName(long generation) { - return "generation-m-" + generation + ".parquet"; + return "_parquet_file_merged_" + generation + ".parquet"; } private String getMergedFilePath(long generation, String outputDirectory) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index 56e5985dab48f..25b916ed03bad 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -57,6 +57,7 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public void updatePendingMerges() { Collection oneMerges = findMerges(); + System.out.println("Found merges : " + oneMerges); for (OneMerge oneMerge : oneMerges) { boolean isValidMerge = true; for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { @@ -71,6 +72,7 @@ public void updatePendingMerges() { } public synchronized void registerMerge(OneMerge merge) { + System.out.println("Registering Merge : " + merge); mergingSegments.add(merge); for(FileMetadata fileMetadata : merge.getFilesToMerge()) { mergingFileNames.add(fileMetadata.directory()+"/"+fileMetadata.file()); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index 05f446303cbdf..80265bf774928 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -156,6 +156,7 @@ public void run() { } catch (Exception e) { logger.error("[{}] Unexpected error during merge for: {}", getName(), oneMerge, e); + mergeHandler.onMergeFailure(oneMerge); } finally { activeMerges.decrementAndGet(); mergeThreads.remove(this); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index 6e3c22a6bb189..610cdd4908788 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -34,7 +34,7 @@ public ParquetTieredMergePolicy() { @Override public void message(String s, String s1) { // TODO: Add logger - // System.out.println("Parquet merge: " + s + " : " + s1); + System.out.println("Parquet merge: " + s + " : " + s1); } @Override @@ -97,6 +97,7 @@ public List> findMergeCandidates(List seg for (ParquetFileInfo parquetSegment : segments) { ParquetSegmentWrapper wrapper = new ParquetSegmentWrapper(parquetSegment); + wrapper.info.setFiles(Arrays.asList(parquetSegment.path.getFileName().toString())); luceneSegments.add(wrapper); segmentMap.put(wrapper, parquetSegment); } @@ -230,7 +231,7 @@ public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { // SegmentInfo new SegmentInfo( // directory - not used for our purpose - new NIOFSDirectory(Paths.get("/tmp")), + new NIOFSDirectory(parquetInfo.path.getParent()), // version Version.LATEST, // min version From 5b626f58d6ad256eefed207fcc1a57b7d1092107 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Thu, 6 Nov 2025 18:52:08 +0530 Subject: [PATCH 068/112] Adding the support for the Merge Settings For ParquetTieredMergePolicy (#19899) * Adding the support for the Merge Settings For ParquetTieredMergePolicy Signed-off-by: Sagar Darji # Conflicts: # server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java * Using the current TieredMergePolicyProvider settings for the merge Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji --- .../org/opensearch/index/IndexSettings.java | 19 +++-- .../index/TieredMergePolicyProvider.java | 2 + .../engine/exec/coord/CompositeEngine.java | 11 ++- .../exec/merge/ParquetMergeHandler.java | 14 ++-- .../ParquetTieredMergePolicyProvider.java | 73 +++++++++++++++++++ .../opensearch/index/shard/IndexShard.java | 2 +- 6 files changed, 105 insertions(+), 16 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java diff --git a/server/src/main/java/org/opensearch/index/IndexSettings.java b/server/src/main/java/org/opensearch/index/IndexSettings.java index ea25e2cc3647c..6f57104fde0d5 100644 --- a/server/src/main/java/org/opensearch/index/IndexSettings.java +++ b/server/src/main/java/org/opensearch/index/IndexSettings.java @@ -48,6 +48,8 @@ import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.core.index.Index; import org.opensearch.index.compositeindex.datacube.startree.StarTreeIndexSettings; +import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicy; +import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicyProvider; import org.opensearch.index.remote.RemoteStoreEnums.PathType; import org.opensearch.index.remote.RemoteStorePathStrategy; import org.opensearch.index.remote.RemoteStoreUtils; @@ -846,6 +848,7 @@ public static IndexMergePolicy fromString(String text) { private volatile ByteSizeValue flushAfterMergeThresholdSize; private final MergeSchedulerConfig mergeSchedulerConfig; private final TieredMergePolicyProvider tieredMergePolicyProvider; + private final ParquetTieredMergePolicyProvider parquetTieredMergePolicyProvider; private final LogByteSizeMergePolicyProvider logByteSizeMergePolicyProvider; private final IndexSortConfig indexSortConfig; private final IndexScopedSettings scopedSettings; @@ -1084,6 +1087,7 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti maxNestedQueryDepth = scopedSettings.get(MAX_NESTED_QUERY_DEPTH_SETTING); maxRegexLength = scopedSettings.get(MAX_REGEX_LENGTH_SETTING); this.tieredMergePolicyProvider = new TieredMergePolicyProvider(logger, this); + this.parquetTieredMergePolicyProvider = new ParquetTieredMergePolicyProvider(logger, this); this.logByteSizeMergePolicyProvider = new LogByteSizeMergePolicyProvider(logger, this); this.indexSortConfig = new IndexSortConfig(this); searchIdleAfter = scopedSettings.get(INDEX_SEARCH_IDLE_AFTER); @@ -1133,7 +1137,7 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING, - tieredMergePolicyProvider::setFloorSegmentSetting + parquetTieredMergePolicyProvider::setFloorSegmentSetting ); scopedSettings.addSettingsUpdateConsumer( this::updateMaxMergesAtOnce, @@ -1141,11 +1145,11 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING, - tieredMergePolicyProvider::setMaxMergedSegment + parquetTieredMergePolicyProvider::setMaxMergedSegment ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING, - tieredMergePolicyProvider::setSegmentsPerTier + parquetTieredMergePolicyProvider::setSegmentsPerTier ); scopedSettings.addSettingsUpdateConsumer( @@ -1172,6 +1176,7 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti LogByteSizeMergePolicyProvider.INDEX_LBS_NO_CFS_RATIO_SETTING, logByteSizeMergePolicyProvider::setLBSNoCFSRatio ); + scopedSettings.addSettingsUpdateConsumer( MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING, MergeSchedulerConfig.MAX_MERGE_COUNT_SETTING, @@ -1317,9 +1322,9 @@ void setDefaultMaxMergesAtOnce(int newDefaultMaxMergesAtOnce) { void updateMaxMergesAtOnce(Settings updatedSettings) { if (TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.exists(updatedSettings) == false) { logger.debug("Resetting maxMergesAtOnce to cluster default"); - tieredMergePolicyProvider.setMaxMergesAtOnceToDefault(); + parquetTieredMergePolicyProvider.setMaxMergesAtOnceToDefault(); } else { - tieredMergePolicyProvider.setMaxMergesAtOnce( + parquetTieredMergePolicyProvider.setMaxMergesAtOnce( TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.get(updatedSettings) ); } @@ -1879,6 +1884,10 @@ public MergePolicy getMergePolicy(boolean isTimeSeriesIndex) { return mergePolicyProvider.getMergePolicy(); } + public ParquetTieredMergePolicy getParquetMergePolicy() { + return parquetTieredMergePolicyProvider.getMergePolicy(); + } + public T getValue(Setting setting) { return scopedSettings.get(setting); } diff --git a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java index bd23acfc49d57..b5777e3f6e8a7 100644 --- a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java +++ b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java @@ -39,8 +39,10 @@ import org.apache.lucene.index.TieredMergePolicy; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Setting.Property; +import org.opensearch.common.util.FeatureFlags; import org.opensearch.core.common.unit.ByteSizeUnit; import org.opensearch.core.common.unit.ByteSizeValue; +import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicy; /** * A shard in opensearch is a Lucene index, and a Lucene index is broken diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 088f3d90af63e..5c750defc5237 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -10,6 +10,7 @@ import org.apache.lucene.search.ReferenceManager; import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; import org.opensearch.index.engine.EngineException; @@ -65,7 +66,10 @@ public class CompositeEngine implements Indexer { private MergeScheduler mergeScheduler; private MergeHandler mergeHandler; - public CompositeEngine(MapperService mapperService, PluginsService pluginsService, ShardPath shardPath) throws IOException { + public CompositeEngine(MapperService mapperService, + PluginsService pluginsService, + ShardPath shardPath, + IndexSettings indexSettings) throws IOException { List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath, 0); @@ -77,7 +81,8 @@ public CompositeEngine(MapperService mapperService, PluginsService pluginsServic this.catalogSnapshot = this.catalogSnapshot.remapPaths(shardPath.getDataPath()); } - this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat()); + this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), + indexSettings.getParquetMergePolicy()); mergeScheduler = new MergeScheduler(this.mergeHandler, this); // Refresh here so that catalog snapshot gets initialized @@ -270,7 +275,7 @@ public T getRef() { } public static void main(String[] args) throws Exception { - CompositeEngine coordinator = new CompositeEngine(null, null, null); + CompositeEngine coordinator = new CompositeEngine(null, null, null, null); for (int i = 0; i < 5; i++) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index 9ce75a8c0a9fc..c5d42d3e50f9c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -29,17 +29,17 @@ public class ParquetMergeHandler extends MergeHandler { private final CompositeIndexingExecutionEngine compositeIndexingExecutionEngine; private final String PARQUET_DATAFORMAT = "parquet"; - public ParquetMergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats) { + public ParquetMergeHandler( + CompositeEngine compositeEngine, + CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, + Any dataFormats, + ParquetTieredMergePolicy parquetTieredMergePolicy + ) { super(compositeEngine, compositeIndexingExecutionEngine, dataFormats); this.compositeEngine = compositeEngine; this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; - mergePolicy = new ParquetTieredMergePolicy(); - // Merge Policy configurations - this.mergePolicy.setMaxMergedSegmentMB(2000); - this.mergePolicy.setSegmentsPerTier(10.0); -// this.mergePolicy.setMaxMergeAtOnce(5); -// this.mergePolicy.setFloorSegmentMB(1.0); + mergePolicy = parquetTieredMergePolicy; } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java new file mode 100644 index 0000000000000..f97777f693208 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java @@ -0,0 +1,73 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.apache.logging.log4j.Logger; +import org.opensearch.core.common.unit.ByteSizeUnit; +import org.opensearch.core.common.unit.ByteSizeValue; +import org.opensearch.index.IndexSettings; + +import static org.opensearch.index.MergePolicyProvider.INDEX_MERGE_ENABLED; +import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING; +import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING; +import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING; +import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING; + +public class ParquetTieredMergePolicyProvider { + private final ParquetTieredMergePolicy mergePolicy = new ParquetTieredMergePolicy(); + + private final Logger logger; + private final boolean mergesEnabled; + private int defaultMaxMergeAtOnce = 30; + + public ParquetTieredMergePolicyProvider(Logger logger, IndexSettings indexSettings) { + this.logger = logger; + ByteSizeValue floorSegment = indexSettings.getValue(INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING); + int maxMergeAtOnce = indexSettings.getValue(INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING); + ByteSizeValue maxMergedSegment = indexSettings.getValue(INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING); + double segmentsPerTier = indexSettings.getValue(INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING); + + this.mergesEnabled = indexSettings.getSettings().getAsBoolean(INDEX_MERGE_ENABLED, true); + if (mergesEnabled == false) { + this.logger.warn( + "[{}] is set to false, this should only be used in tests and can cause serious problems in production" + " environments", + INDEX_MERGE_ENABLED + ); + } + + mergePolicy.setFloorSegmentMB(floorSegment.getMbFrac()); + mergePolicy.setMaxMergeAtOnce(maxMergeAtOnce); + mergePolicy.setMaxMergedSegmentMB(maxMergedSegment.getMbFrac()); + mergePolicy.setSegmentsPerTier(segmentsPerTier); + } + + public ParquetTieredMergePolicy getMergePolicy() { + return mergePolicy; + } + + public void setSegmentsPerTier(Double segmentsPerTier) { + mergePolicy.setSegmentsPerTier(segmentsPerTier); + } + + public void setMaxMergedSegment(ByteSizeValue maxMergedSegment) { + mergePolicy.setMaxMergedSegmentMB(maxMergedSegment.getMbFrac()); + } + + public void setFloorSegmentSetting(ByteSizeValue floorSegementSetting) { + mergePolicy.setFloorSegmentMB(floorSegementSetting.getMbFrac()); + } + + public void setMaxMergesAtOnce(Integer maxMergeAtOnce) { + mergePolicy.setMaxMergeAtOnce(maxMergeAtOnce); + } + + public void setMaxMergesAtOnceToDefault() { + mergePolicy.setMaxMergeAtOnce(defaultMaxMergeAtOnce); + } +} diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 0a9e73d5724e2..62518dc063465 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -564,7 +564,7 @@ public boolean shouldCache(Query query) { startRefreshTask(); } } - this.compositeEngine = new CompositeEngine(mapperService, pluginsService, path); + this.compositeEngine = new CompositeEngine(mapperService, pluginsService, path, indexSettings); } public CompositeEngine getIndexingExecutionCoordinator() { From 4987cb895a5af3078d7cb4988603c2061ee60c96 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Thu, 6 Nov 2025 12:01:29 -0800 Subject: [PATCH 069/112] Handling NumericTermsAgg and MultiTermsAgg (#19911) Signed-off-by: expani --- .../datafusion/search/DatafusionContext.java | 14 +-- .../bucket/terms/MultiTermsAggregator.java | 41 ++++++++- .../bucket/terms/NumericTermsAggregator.java | 91 ++++++++++++++++++- 3 files changed, 135 insertions(+), 11 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 55cbbc53aed25..712871ed1470c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -810,12 +810,12 @@ public Map getDFResults() { @Override public Comparable convertToComparable(Object rawValue) { - if (rawValue instanceof Number) { - return (Comparable) rawValue; - } else if (rawValue instanceof Text) { - return rawValue.toString(); - } else { - throw new IllegalArgumentException("Conversion to Comparable not supported for type " + rawValue.getClass()); - } + return switch (rawValue) { + case Number number -> (Comparable) rawValue; + case Text text -> rawValue.toString(); + case Boolean b -> (Comparable) rawValue; + case null, default -> + throw new IllegalArgumentException("Conversion to Comparable not supported for type " + rawValue.getClass()); + }; } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java index 905701261b089..385da95dc9545 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java @@ -36,8 +36,10 @@ import org.opensearch.search.aggregations.BucketOrder; import org.opensearch.search.aggregations.CardinalityUpperBound; import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.InternalAggregations; import org.opensearch.search.aggregations.InternalOrder; import org.opensearch.search.aggregations.LeafBucketCollector; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.bucket.BucketsAggregator; @@ -71,7 +73,7 @@ * * @opensearch.internal */ -public class MultiTermsAggregator extends DeferableBucketAggregator implements StarTreePreComputeCollector { +public class MultiTermsAggregator extends DeferableBucketAggregator implements StarTreePreComputeCollector, ShardResultConvertor { private final BytesKeyedBucketOrds bucketOrds; private final MultiTermsValuesSource multiTermsValue; @@ -701,4 +703,41 @@ static InternalValuesSource doubleValueSource(ValuesSource.Numeric valuesSource, }; } } + + @Override + public List convert(Map shardResult, SearchContext searchContext) { + int rowCount = shardResult.isEmpty() ? 0 : shardResult.get(fields.getFirst()).length ; + List buckets = new ArrayList<>(); + for (int i = 0; i < rowCount; i++) { + final int j = i; + List key = fields.stream().map(fieldName -> (Object) searchContext.convertToComparable(shardResult.get(fieldName)[j])).toList(); + List subAggs = new ArrayList<>(subAggregators.length); + for (Aggregator aggregator : subAggregators) { + ShardResultConvertor convertor = (ShardResultConvertor) aggregator; + subAggs.add(convertor.convertRow(shardResult, i, searchContext)); + } + buckets.add(new InternalMultiTerms.Bucket(key, 1, InternalAggregations.from(subAggs), showTermDocCountError, 0, formats)); + } + // TODO : Not reducing using Priority Queue into top buckets as depending on Substrait plan. + BucketOrder reduceOrder; + if (isKeyOrder(order) == false) { + reduceOrder = InternalOrder.key(true); + //buckets.sort(reduceOrder.comparator()); + } else { + reduceOrder = order; + } + return Collections.singletonList(new InternalMultiTerms( + name, + reduceOrder, + order, + metadata(), + bucketCountThresholds.getShardSize(), + showTermDocCountError, + 0, + 0, + formats, + buckets, + bucketCountThresholds + )); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java index 0cc2c1940200b..9db18ef0be3cb 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java @@ -46,6 +46,7 @@ import org.opensearch.index.compositeindex.datacube.startree.index.StarTreeValues; import org.opensearch.index.compositeindex.datacube.startree.utils.iterator.SortedNumericStarTreeValuesIterator; import org.opensearch.index.fielddata.FieldData; +import org.opensearch.index.fielddata.plain.SortedNumericIndexFieldData; import org.opensearch.index.mapper.NumberFieldMapper; import org.opensearch.search.DocValueFormat; import org.opensearch.search.aggregations.Aggregator; @@ -53,10 +54,12 @@ import org.opensearch.search.aggregations.BucketOrder; import org.opensearch.search.aggregations.CardinalityUpperBound; import org.opensearch.search.aggregations.InternalAggregation; +import org.opensearch.search.aggregations.InternalAggregations; import org.opensearch.search.aggregations.InternalMultiBucketAggregation; import org.opensearch.search.aggregations.InternalOrder; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.StarTreeBucketCollector; import org.opensearch.search.aggregations.StarTreePreComputeCollector; import org.opensearch.search.aggregations.bucket.LocalBucketCountThresholds; @@ -73,7 +76,9 @@ import java.io.IOException; import java.math.BigInteger; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.BiConsumer; @@ -88,7 +93,7 @@ * * @opensearch.internal */ -public class NumericTermsAggregator extends TermsAggregator implements StarTreePreComputeCollector { +public class NumericTermsAggregator extends TermsAggregator implements StarTreePreComputeCollector, ShardResultConvertor { private final ResultStrategy resultStrategy; private final ValuesSource.Numeric valuesSource; private final LongKeyedBucketOrds bucketOrds; @@ -439,7 +444,7 @@ final void collectZeroDocEntriesIfNeeded(long owningBucketOrd) throws IOExceptio public final void close() {} } - class LongTermsResults extends StandardTermsResultStrategy { + class LongTermsResults extends StandardTermsResultStrategy implements ShardResultConvertor { LongTermsResults(boolean showTermDocCountError) { super(showTermDocCountError); } @@ -516,9 +521,45 @@ LongTerms buildEmptyResult() { bucketCountThresholds ); } + + @Override + public List convert(Map shardResult, SearchContext searchContext) { + int rowCount = shardResult.isEmpty() ? 0 : shardResult.get(name).length ; + List buckets = new ArrayList<>(rowCount); + for (int i = 0; i < rowCount; i++) { + final int j = i; + buckets.add(new LongTerms.Bucket( + ((Number) searchContext.convertToComparable(shardResult.get(name)[i])).longValue(), + 1, + InternalAggregations.from(Arrays.stream(subAggregators).map(subAgg -> ((ShardResultConvertor)subAgg).convertRow(shardResult, j, searchContext)).toList()), + true, + 0, + format + )); + } + final BucketOrder reduceOrder; + if (isKeyOrder(order) == false) { + reduceOrder = InternalOrder.key(true); + } else { + reduceOrder = order; + } + return Collections.singletonList(new LongTerms( + name, + reduceOrder, + order, + metadata(), + format, + bucketCountThresholds.getShardSize(), + true, + 0, + buckets, + 0, + bucketCountThresholds + )); + } } - class DoubleTermsResults extends StandardTermsResultStrategy { + class DoubleTermsResults extends StandardTermsResultStrategy implements ShardResultConvertor { DoubleTermsResults(boolean showTermDocCountError) { super(showTermDocCountError); @@ -596,6 +637,42 @@ DoubleTerms buildEmptyResult() { bucketCountThresholds ); } + + @Override + public List convert(Map shardResult, SearchContext searchContext) { + int rowCount = shardResult.isEmpty() ? 0 : shardResult.get(name).length ; + List buckets = new ArrayList<>(rowCount); + for (int i = 0; i < rowCount; i++) { + final int j = i; + buckets.add(new DoubleTerms.Bucket( + ((Number) searchContext.convertToComparable(shardResult.get(name)[i])).doubleValue(), + 1, + InternalAggregations.from(Arrays.stream(subAggregators).map(subAgg -> ((ShardResultConvertor)subAgg).convertRow(shardResult, j, searchContext)).toList()), + true, + 0, + format + )); + } + final BucketOrder reduceOrder; + if (isKeyOrder(order) == false) { + reduceOrder = InternalOrder.key(true); + } else { + reduceOrder = order; + } + return Collections.singletonList(new DoubleTerms( + name, + reduceOrder, + order, + metadata(), + format, + bucketCountThresholds.getShardSize(), + true, + 0, + buckets, + 0, + bucketCountThresholds + )); + } } class UnsignedLongTermsResults extends StandardTermsResultStrategy { @@ -795,4 +872,12 @@ public void close() { } } + @Override + public List convert(Map shardResult, SearchContext searchContext) { + if (resultStrategy instanceof ShardResultConvertor) { + return ((ShardResultConvertor) resultStrategy).convert(shardResult, searchContext); + } else { + throw new UnsupportedOperationException("Result strategy not supported for conversion " + resultStrategy.getClass().getName()); + } + } } From 4ed75f427b28cd12bbfa678bfcb79259e11ef6be Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Fri, 7 Nov 2025 17:15:54 +0530 Subject: [PATCH 070/112] Memory leak fix (#19925) --- plugins/engine-datafusion/.gitignore | 3 +++ plugins/engine-datafusion/jni/src/lib.rs | 18 ++++++++++++++++++ .../datafusion/DatafusionEngine.java | 13 +++++++++++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/plugins/engine-datafusion/.gitignore b/plugins/engine-datafusion/.gitignore index 8e535981ee076..cb03c41334f19 100644 --- a/plugins/engine-datafusion/.gitignore +++ b/plugins/engine-datafusion/.gitignore @@ -24,6 +24,9 @@ hs_err_pid* Thumbs.db # Rust +target/ +Cargo.lock + jni/target/ jni/Cargo.lock diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index f3e40560ee0ae..9a2b66d60d17b 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -446,3 +446,21 @@ pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchem } } } + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( + mut env: JNIEnv, + _class: JClass, + stream: jlong +) { + let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeGlobalRuntime( + _env: JNIEnv, + _class: JClass, + runtime: jlong +) { + let _ = unsafe { Box::from_raw(runtime as *mut RuntimeEnv) }; +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index e7a49daf970f9..1edcd48cd8418 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -159,14 +159,16 @@ public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scop return false; } + RootAllocator allocator = null; + RecordBatchStream stream = null; @Override public Map execute(DatafusionContext context) { Map finalRes = new HashMap<>(); try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); - RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); + allocator = new RootAllocator(Long.MAX_VALUE); + stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check @@ -198,6 +200,13 @@ public void collect(RecordBatchStream value) { } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); + } finally { + try { + stream.close(); + allocator.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } } return finalRes; } From 31308abbad4716964b7c0e1be0c4af837e364fb2 Mon Sep 17 00:00:00 2001 From: Aniket Modak <52703847+animodak7@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:17:24 +0530 Subject: [PATCH 071/112] absolute rowId and derived source integration for query_then_fetch (#19676) Co-authored-by: Aniket Modak --- .../index/mapper/ScaledFloatFieldMapper.java | 2 +- modules/parquet-data-format/build.gradle | 2 +- plugins/engine-datafusion/build.gradle | 4 +- plugins/engine-datafusion/jni/src/lib.rs | 467 ++++++++++++++++-- .../jni/src/listing_table.rs | 88 +++- .../jni/src/row_id_optimizer.rs | 395 ++++++--------- plugins/engine-datafusion/jni/src/util.rs | 39 +- .../datafusion/DataFusionQueryJNI.java | 16 +- .../datafusion/DatafusionEngine.java | 174 +++++-- .../datafusion/search/DatafusionContext.java | 35 +- .../datafusion/search/DatafusionQuery.java | 25 + .../search/DatafusionReaderManager.java | 11 +- .../datafusion/search/DatafusionSearcher.java | 16 +- .../datafusion/DataFusionServiceTests.java | 277 ++++++++++- .../data/index-7/0/generation-1.parquet | Bin 0 -> 3634 bytes .../data/index-7/0/generation-2.parquet | Bin 0 -> 3657 bytes .../src/test/resources/substrait_plan.pb | Bin 1409 -> 0 bytes .../opensearch/index/shard/IndexShardIT.java | 1 - .../replication/SegmentReplicationIT.java | 2 +- .../index/engine/SearchExecEngine.java | 10 +- .../index/mapper/BooleanFieldMapper.java | 2 +- .../index/mapper/DateFieldMapper.java | 2 +- .../index/mapper/DerivedFieldGenerator.java | 10 + .../opensearch/index/mapper/FieldMapper.java | 2 +- .../index/mapper/GeoPointFieldMapper.java | 2 +- .../index/mapper/IpFieldMapper.java | 2 +- .../index/mapper/KeywordFieldMapper.java | 2 +- .../org/opensearch/index/mapper/Mapper.java | 4 + .../index/mapper/NumberFieldMapper.java | 13 +- .../index/mapper/TextFieldMapper.java | 2 +- .../index/mapper/WildcardFieldMapper.java | 2 +- .../org/opensearch/search/SearchService.java | 21 +- .../aggregations/SearchResultsCollector.java | 4 +- .../opensearch/search/fetch/FetchPhase.java | 22 + .../search/lookup/SourceLookup.java | 3 + .../opensearch/search/query/QueryPhase.java | 12 +- 36 files changed, 1217 insertions(+), 452 deletions(-) create mode 100644 plugins/engine-datafusion/src/test/resources/data/index-7/0/generation-1.parquet create mode 100644 plugins/engine-datafusion/src/test/resources/data/index-7/0/generation-2.parquet delete mode 100644 plugins/engine-datafusion/src/test/resources/substrait_plan.pb diff --git a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java index 78e8bbec3d2a5..be20f1a3aec84 100644 --- a/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/opensearch/index/mapper/ScaledFloatFieldMapper.java @@ -557,7 +557,7 @@ protected void canDeriveSourceInternal() { * both doc values and stored field */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator( mappedFieldType, new SortedNumericDocValuesFetcher(mappedFieldType, simpleName()), diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index d68460309c12c..54322fca9488a 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -99,7 +99,7 @@ dependencies { implementation 'com.fasterxml.jackson.core:jackson-annotations:2.18.2' // FlatBuffers dependency required by Arrow - implementation 'com.google.flatbuffers:flatbuffers-java:2.0.0' + implementation "com.google.flatbuffers:flatbuffers-java:${versions.flatbuffers}" // Netty dependencies required by Arrow memory management implementation 'io.netty:netty-buffer:4.1.118.Final' diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index 1d839a168bd37..82b5cd41fc757 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -47,12 +47,12 @@ dependencies { // CheckerFramework annotations required by Arrow 17.0.0 implementation "org.checkerframework:checker-qual:3.42.0" // FlatBuffers dependency required by Arrow 17.0.0 - implementation "com.google.flatbuffers:flatbuffers-java:23.5.26" + implementation "com.google.flatbuffers:flatbuffers-java:${versions.flatbuffers}" testImplementation "junit:junit:${versions.junit}" testImplementation "org.hamcrest:hamcrest:${versions.hamcrest}" testImplementation "org.mockito:mockito-core:${versions.mockito}" - + testImplementation project(":modules:parquet-data-format") // Add CSV plugin for testing // testImplementation project(':plugins:dataformat-csv') } diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 9a2b66d60d17b..cf5ac2179db87 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -9,43 +9,59 @@ use arrow_array::ffi::FFI_ArrowArray; use arrow_array::{Array, StructArray}; use arrow_schema::ffi::FFI_ArrowSchema; use jni::objects::{JByteArray, JClass, JObject}; +use std::collections::{BTreeSet, HashMap}; +use std::future::Future; +use std::ptr::addr_of_mut; +use jni::objects::{JLongArray, JValue}; use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; -use std::ptr::addr_of_mut; use std::sync::Arc; +use datafusion::{ + common::DataFusionError, + prelude::*, + logical_expr::LogicalPlan, + execution::context::SessionContext, + datasource::file_format::csv::CsvFormat, + datasource::listing::{ListingTableUrl}, + execution::cache::cache_manager::CacheManagerConfig, + execution::cache::cache_unit::DefaultListFilesCache, + execution::cache::CacheAccessor, + execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, + prelude::SessionConfig, + DATAFUSION_VERSION, + datasource::file_format::parquet::ParquetFormat, + datasource::object_store::ObjectStoreUrl, + datasource::physical_plan::parquet::{ParquetAccessPlan, RowGroupAccess}, + datasource::physical_plan::ParquetSource, + execution::TaskContext, + parquet::arrow::arrow_reader::RowSelector, + physical_plan::{ExecutionPlan, SendableRecordBatchStream} +}; use std::time::Instant; mod util; mod row_id_optimizer; mod listing_table; -use datafusion::execution::context::SessionContext; - use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; -use crate::util::{create_object_meta_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok}; -use datafusion::datasource::file_format::csv::CsvFormat; -use datafusion::datasource::file_format::parquet::ParquetFormat; -use datafusion::datasource::listing::ListingTableUrl; -use datafusion::execution::cache::cache_manager::CacheManagerConfig; -use datafusion::execution::cache::cache_unit::DefaultListFilesCache; -use datafusion::execution::cache::CacheAccessor; -use datafusion::execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}; -use datafusion::physical_plan::SendableRecordBatchStream; -use datafusion::prelude::SessionConfig; -use datafusion::DATAFUSION_VERSION; -use datafusion_substrait::logical_plan::consumer::from_substrait_plan; -use datafusion_substrait::substrait::proto::Plan; +use crate::util::{create_file_metadata_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok}; +use datafusion_datasource::file_groups::FileGroup; +use datafusion_datasource::file_scan_config::FileScanConfigBuilder; +use datafusion_datasource::PartitionedFile; +use datafusion_substrait::logical_plan::consumer::{from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, SubstraitConsumer}; +use datafusion_substrait::substrait::proto::{Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel}; use futures::TryStreamExt; use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; use tokio::runtime::Runtime; -use std::thread; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; -use std::fs::OpenOptions; use std::io::Write; -use std::sync::atomic::{AtomicBool, Ordering}; - +use arrow_schema::DataType; +use datafusion::catalog::TableProvider; +use datafusion_datasource::source::DataSourceExec; +use datafusion_expr::registry::FunctionRegistry; +use datafusion_substrait::extensions::Extensions; +use crate::row_id_optimizer::ProjectRowIdOptimizer; /// Create a new DataFusion session context #[no_mangle] @@ -156,13 +172,40 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD table_path: JString, files: JObjectArray ) -> jlong { + let table_path: String = match env.get_string(&table_path) { + Ok(path) => path.into(), + Err(e) => { + let _ = env.throw_new("java/lang/IllegalArgumentException", format!("Invalid table path: {:?}", e)); + return 0; + } + }; - let table_path: String = env.get_string(&table_path).expect("Couldn't get java string!").into(); - let files: Vec = parse_string_arr(&mut env, files).expect("Expected list of files"); - let files_meta = create_object_meta_from_filenames(&table_path, files); + let files: Vec = match parse_string_arr(&mut env, files) { + Ok(files) => files, + Err(e) => { + let _ = env.throw_new("java/lang/IllegalArgumentException", format!("Invalid file list: {}", e)); + return 0; + } + }; + + let files_metadata = match create_file_metadata_from_filenames(&table_path, files.clone()) { + Ok(metadata) => metadata, + Err(err) => { + let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to create metadata: {}", err)); + return 0; + } + }; + + let table_url = match ListingTableUrl::parse(&table_path) { + Ok(url) => url, + Err(err) => { + let _ = env.throw_new("java/lang/RuntimeException", format!("Invalid table path: {}", err)); + return 0; + } + }; + + let shard_view = ShardView::new(table_url, files_metadata); - let table_path = ListingTableUrl::parse(table_path).unwrap(); - let shard_view = ShardView::new(table_path, files_meta); Box::into_raw(Box::new(shard_view)) as jlong } @@ -177,15 +220,15 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_destroy pub struct ShardView { table_path: ListingTableUrl, - files_meta: Arc> + files_metadata: Arc> } impl ShardView { - pub fn new(table_path: ListingTableUrl, files_meta: Vec) -> Self { - let files_meta = Arc::new(files_meta); + pub fn new(table_path: ListingTableUrl, files_metadata: Vec) -> Self { + let files_metadata = Arc::new(files_metadata); ShardView { table_path, - files_meta + files_metadata } } @@ -193,14 +236,45 @@ impl ShardView { self.table_path.clone() } - pub fn files_meta(&self) -> Arc> { - self.files_meta.clone() + pub fn files_metadata(&self) -> Arc> { + self.files_metadata.clone() } } +#[derive(Debug, Clone)] +struct FileMetadata { + row_group_row_counts: Arc>, + row_base: Arc, + object_meta: Arc, +} + +impl FileMetadata { + pub fn new(row_group_row_counts: Vec, row_base: i64, object_meta: ObjectMeta) -> Self { + let row_group_row_counts = Arc::new(row_group_row_counts); + let row_base = Arc::new(row_base); + let object_meta = Arc::new(object_meta); + FileMetadata { + row_group_row_counts, + row_base, + object_meta + } + } + + pub fn row_group_row_counts(&self) -> Arc> { + self.row_group_row_counts.clone() + } + + pub fn row_base(&self) -> Arc { + self.row_base.clone() + } + + pub fn object_meta(&self) -> Arc { + self.object_meta.clone() + } +} #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeSubstraitQuery( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeQueryPhase( mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, @@ -215,17 +289,21 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let table_name: String = env.get_string(&table_name).expect("Couldn't get java string!").into(); let table_path = shard_view.table_path(); - let files_meta = shard_view.files_meta(); + let files_metadata = shard_view.files_metadata(); + let object_meta: Arc> = Arc::new(files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect()); println!("Table path: {}", table_path); - println!("Files: {:?}", files_meta); + println!("Files: {:?}", object_meta); let list_file_cache = Arc::new(DefaultListFilesCache::default()); - list_file_cache.put(table_path.prefix(), files_meta); + list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager(CacheManagerConfig::default() - .with_list_files_cache(Some(list_file_cache.clone())) + .with_list_files_cache(Some(list_file_cache.clone())) ).build().unwrap(); // TODO: get config from CSV DataFormat @@ -237,8 +315,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute .with_config(config) .with_runtime_env(Arc::from(runtime_env)) .with_default_features() - // .with_optimizer_rule(Arc::new(OptimizeRowId)) - // .with_physical_optimizer_rule(Arc::new(FilterRowIdOptimizer)) // TODO: enable only for query phase + .with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) .build(); let ctx = SessionContext::new_with_state(state); @@ -246,8 +323,9 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create default parquet options let file_format = ParquetFormat::new(); let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".parquet"); // TODO: take this as parameter - // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase + .with_file_extension(".parquet") // TODO: take this as parameter + .with_files_metadata(files_metadata) + .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int64)]); // Ideally the executor will give this runtime_ptr.block_on(async { @@ -255,7 +333,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute .infer_schema(&ctx.state(), &table_path.clone()) .await.unwrap(); - let config = ListingTableConfig::new(table_path.clone()) .with_listing_options(listing_options) .with_schema(resolved_schema); @@ -263,7 +340,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table(table_name, provider) + ctx.register_table(table_name.clone(), provider) .expect("Failed to attach the Table"); }); @@ -297,8 +374,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); - let duration = start.elapsed(); - println!("Rust: Substrait decoding time in milliseconds: {}", duration.as_millis()); + let duration = start.elapsed(); + println!("Rust: Substrait decoding time in milliseconds: {}", duration.as_millis()); plan }, Err(e) => { @@ -306,15 +383,25 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute return 0; } }; - let dataframe = ctx.execute_logical_plan(logical_plan).await.unwrap(); - let stream = dataframe.execute_stream().await.unwrap(); + + let dataframe = ctx.execute_logical_plan(logical_plan).await.expect("Failed to execute logical plan"); + + let stream = match dataframe.execute_stream().await { + Ok(stream) => { stream } + Err(e) => { + let error_msg = format!("Failed to execute stream: {}", e); + println!("{}", error_msg); + env.throw_new("java/lang/Exception", error_msg); + return 0; + } + }; let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; // println!("The memory used currently right now: {:?}", jemalloc_stats::refresh_allocated()); let duration1 = overall.elapsed(); println!("Rust: Overall query setup time in milliseconds: {}", duration1.as_millis()); + // set_projections(env, projections, callback); stream_ptr - }) } @@ -329,8 +416,11 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC ) -> jlong { let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; let table_path = shard_view.table_path(); - let files_meta = shard_view.files_meta(); - + let files_metadata = shard_view.files_metadata(); + let object_meta: Arc> = Arc::new(files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect()); // Will use it once the global RunTime is defined // let runtime_arc = unsafe { // let boxed = &*(runtime_env_ptr as *const Pin>); @@ -338,15 +428,17 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC // }; let list_file_cache = Arc::new(DefaultListFilesCache::default()); - list_file_cache.put(table_path.prefix(), files_meta); + list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager(CacheManagerConfig::default() .with_list_files_cache(Some(list_file_cache))).build().unwrap(); + let mut config = SessionConfig::new(); + config.options_mut().execution.parquet.pushdown_filters = false; + config.options_mut().execution.target_partitions = 9; - - let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + let ctx = SessionContext::new_with_config_rt(config, Arc::new(runtime_env)); // Create default parquet options @@ -447,6 +539,275 @@ pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchem } } +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeFetchPhase( + mut env: JNIEnv, + _class: JClass, + shard_view_ptr: jlong, + values: JLongArray, + projections: JObjectArray, + tokio_runtime_env_ptr: jlong, + callback: JObject, +) -> jlong{ + let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; + let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; + + let table_path = shard_view.table_path(); + let files_metadata = shard_view.files_metadata(); + + let projections: Vec = parse_string_arr(&mut env, projections).expect("Expected list of files"); + + // Safety checks first + if values.is_null() { + let _ = env.throw_new("java/lang/NullPointerException", "values array is null"); + return 0; + } + + // 2. Get array length + let array_length = match env.get_array_length(&values) { + Ok(len) => len, + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", + format!("Failed to get array length: {:?}", e)); + return 0; + } + }; + + // 3. Allocate Rust buffer + let mut row_ids: Vec = vec![0; array_length as usize]; + + // 4. Copy Java array into Rust buffer + match env.get_long_array_region(values, 0, &mut row_ids[..]) { + Ok(_) => { + println!("Received array: {:?}", row_ids); + } + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", + format!("Failed to get array data: {:?}", e)); + return 0; + } + } + + + // Safety checks + if tokio_runtime_env_ptr == 0 { + let error = DataFusionError::Execution("Null runtime pointer".to_string()); + set_object_result_error(&mut env, callback, &error); + return 0; + } + + let access_plans = create_access_plans(row_ids, files_metadata.clone()); + + let object_meta: Arc> = Arc::new(files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect()); + + let list_file_cache = Arc::new(DefaultListFilesCache::default()); + list_file_cache.put(table_path.prefix(), object_meta); + + let runtime_env = RuntimeEnvBuilder::new() + .with_cache_manager(CacheManagerConfig::default() + .with_list_files_cache(Some(list_file_cache)) + ).build().unwrap(); + let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + + // Create default parquet options + let file_format = ParquetFormat::new(); + let listing_options = ListingOptions::new(Arc::new(file_format)) + .with_file_extension(".parquet"); // TODO: take this as parameter + // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase + + // Ideally the executor will give this + + + + runtime_ptr.block_on(async { + + let parquet_schema = listing_options + .infer_schema(&ctx.state(), &table_path.clone()) + .await.unwrap(); + + // let total_groups = files_metadata[0].row_group_row_counts.len(); + // let mut access_plan = ParquetAccessPlan::new_all(total_groups); + // for i in 0..total_groups { + // access_plan.skip(i); + // } + + // let partitioned_files: Vec = files_metadata + // .iter() + // .zip(access_plans.await.iter()) + // .map(|(meta, access_plan)| { + // PartitionedFile::new( + // format!("{}/{}", + // table_path.prefix().to_string().trim_end_matches('/'), + // meta.object_meta().location.to_string().trim_start_matches('/') + // ), + // meta.object_meta.size + // ).with_extensions(Arc::new(access_plan.clone())) + // }) + // .collect(); + + + let access_plans = access_plans.await.unwrap(); + + let partitioned_files: Vec = files_metadata + .iter() + .zip(access_plans.iter()) + .map(|(meta, access_plan)| { + PartitionedFile::new(meta.object_meta().location.to_string(), + meta.object_meta.size + ).with_extensions(Arc::new(access_plan.clone())) + }) + .collect(); + + let file_group = FileGroup::new(partitioned_files); + + let file_source = Arc::new( + ParquetSource::default() + // provide the factory to create parquet reader without re-reading metadata + //.with_parquet_file_reader_factory(Arc::new(reader_factory)), + ); + + let mut projection_index = vec![]; + + for field_name in projections.iter() { + projection_index.push(parquet_schema.index_of(field_name).expect(format!("Projected field {} not found in Schema", field_name).as_str())); + } + + let file_scan_config = + FileScanConfigBuilder::new(ObjectStoreUrl::local_filesystem(), parquet_schema.clone(), file_source) + //.with_limit(limit) + .with_projection(Option::from(projection_index.clone())) + .with_file_group(file_group) + .build(); + + let parquet_exec = DataSourceExec::from_data_source(file_scan_config); + + // IMPORTANT: Only get one reference to each pointer + // let liquid_ctx = unsafe { &mut *(context_ptr as *mut SessionContext) }; + // let session_ctx = unsafe { Box::from_raw(context_ptr as *mut SessionContext) }; + let optimized_plan: Arc = parquet_exec.clone(); + + let task_ctx = Arc::new(TaskContext::default()); + + let stream = optimized_plan.execute(0, task_ctx).unwrap(); + + let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; + + stream_ptr + }) +} + +async fn create_access_plans( + row_ids: Vec, + files_metadata: Arc>, +) -> Result, DataFusionError> { + let mut access_plans = Vec::new(); + + // Sort row_ids for better processing + let mut sorted_row_ids: Vec = row_ids.iter().map(|&id| id as i64).collect(); + sorted_row_ids.sort_unstable(); + + // Process each file + for file_meta in files_metadata.iter() { + let row_base = *file_meta.row_base; + let total_row_groups = file_meta.row_group_row_counts.len(); + let mut access_plan = ParquetAccessPlan::new_all(total_row_groups); + + // Calculate file's row range + let file_total_rows: i64 = file_meta.row_group_row_counts.iter().map(|&x| x).sum(); + let file_end_row: i64 = row_base + file_total_rows; + // Filter row IDs that belong to this file + let file_row_ids: Vec = sorted_row_ids + .iter() + .copied() // or .cloned() if it's not Copy + .filter(|&id| id >= row_base && id < file_end_row) + .map(|id| { + id - row_base }) + .collect(); + + if file_row_ids.is_empty() { + // If no rows belong to this file, skip all row groups + for group_id in 0..total_row_groups { + access_plan.skip(group_id); + } + } else { + // Create cumulative row counts for row groups + let mut cumulative_group_rows: Vec = Vec::with_capacity(total_row_groups + 1); + cumulative_group_rows.push(0); + let mut current_sum = 0; + for &count in file_meta.row_group_row_counts.iter() { + current_sum += count; + cumulative_group_rows.push(current_sum); + } + // Group local row IDs by row group + let mut group_map: HashMap> = HashMap::new(); + for &row_id in &file_row_ids { + // Find the appropriate row group using binary search + let group_id = cumulative_group_rows.windows(2) + .position(|window| row_id >= window[0] as i64 && row_id < window[1] as i64) + .unwrap(); + + // Calculate relative position within the row group + let relative_pos = row_id - cumulative_group_rows[group_id]; + group_map.entry(group_id) + .or_default() + .insert(relative_pos as i32); + } + + // Process each row group + for group_id in 0..total_row_groups { + let row_group_size = file_meta.row_group_row_counts[group_id] as usize; + + if let Some(group_row_ids) = group_map.get(&group_id) { + let mut relative_row_ids: Vec = group_row_ids.iter() + .map(|&x| x as usize) + .collect(); + relative_row_ids.sort_unstable(); + + if relative_row_ids.is_empty() { + access_plan.skip(group_id); + } else if relative_row_ids.len() == row_group_size { + access_plan.scan(group_id); + } else { + // Create selectors + let mut selectors = Vec::new(); + let mut current_pos = 0; + let mut i = 0; + while i < relative_row_ids.len() { + let mut target_pos = relative_row_ids[i]; + if target_pos > current_pos { + selectors.push(RowSelector::skip(target_pos - current_pos)); + } + let mut select_count = 1; + while i + 1 < relative_row_ids.len() && + relative_row_ids[i + 1] == relative_row_ids[i] + 1 { + select_count += 1; + i += 1; + target_pos = relative_row_ids[i]; + } + selectors.push(RowSelector::select(select_count)); + current_pos = relative_row_ids[i] + 1; + i += 1; + } + if current_pos < row_group_size { + selectors.push(RowSelector::skip(row_group_size - current_pos)); + } + access_plan.set(group_id, RowGroupAccess::Selection(selectors.into())); + } + } else { + access_plan.skip(group_id); + } + } + } + + access_plans.push(access_plan); + } + + Ok(access_plans) +} + #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( mut env: JNIEnv, diff --git a/plugins/engine-datafusion/jni/src/listing_table.rs b/plugins/engine-datafusion/jni/src/listing_table.rs index a28a6292ec3c1..8a520fc570917 100644 --- a/plugins/engine-datafusion/jni/src/listing_table.rs +++ b/plugins/engine-datafusion/jni/src/listing_table.rs @@ -60,7 +60,11 @@ use futures::{future, stream, Stream, StreamExt, TryStreamExt}; use itertools::Itertools; use object_store::ObjectStore; use std::{any::Any, collections::HashMap, str::FromStr, sync::Arc}; +use std::fs::File; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use futures::future::err; use regex::Regex; +use crate::FileMetadata; /// Indicates the source of the schema for a [`ListingTable`] // PartialEq required for assert_eq! in tests @@ -485,6 +489,8 @@ pub struct ListingOptions { /// multiple equivalent orderings, the outer `Vec` will have a /// single element. pub file_sort_order: Vec>, + + pub files_metadata: Arc> } impl ListingOptions { @@ -502,6 +508,7 @@ impl ListingOptions { collect_stat: false, target_partitions: 1, file_sort_order: vec![], + files_metadata: Arc::new(vec![]) } } @@ -536,6 +543,11 @@ impl ListingOptions { self } + pub fn with_files_metadata(mut self, files_metadata: Arc>) -> Self { + self.files_metadata = files_metadata.clone(); + self + } + /// Optionally set file extension on [`ListingOptions`] and returns self. /// /// If `file_extension` is `None`, the file extension will not be changed @@ -1111,35 +1123,66 @@ impl ListingTable { create_ordering(&self.table_schema, &self.options.file_sort_order) } - fn add_path_preserving_metadata(&self, file_groups: Vec) -> Vec { - let re = Regex::new(r"generation-(\d+)").unwrap(); - file_groups + fn add_path_preserving_metadata(&self, file_groups: Vec) -> Result, DataFusionError> { + // First pass: calculate cumulative row bases + let mut cumulative_row_base = 0; + let mut file_row_bases: HashMap = HashMap::new(); + + // Process files in order to calculate cumulative row bases + for group in &file_groups { + for file in group.files() { + let location = file.object_meta.location.to_string(); + let row_count = self.options.files_metadata.iter() + .find(|meta| { location.contains(meta.object_meta.location.as_ref()) }) + .map(|meta| meta.row_group_row_counts().iter().sum::() as i32) + // .unwrap_or_default(); + .expect(format!("Fail to get row count for file {}", location).as_str()); + + // Store current cumulative value as this file's row_base + file_row_bases.insert(location.to_string(), cumulative_row_base); + // Update cumulative count for next file + cumulative_row_base += row_count; + } + } + let row_id_field_datatype = self.file_schema.field_with_name("___row_id").expect("Field ___row_id not found").data_type(); + if !(row_id_field_datatype.equals_datatype(&DataType::Int32) || row_id_field_datatype.equals_datatype(&DataType::Int64)) { + return Err(DataFusionError::Internal(format!("___row_id field must be Int32 or Int64, but found {:?}", row_id_field_datatype))) + } + + // Second pass: create new file groups with calculated row_bases + Ok(file_groups .into_iter() .map(|mut group| { let new_files: Vec = group .files() .iter() - .map(|file| PartitionedFile { - object_meta: file.object_meta.clone(), - partition_values: { - let mut values = file.partition_values.clone(); - values.push(ScalarValue::Int32(Some( - re.captures(file.object_meta.location.as_ref()) - .and_then(|cap| cap.get(1)) - .and_then(|m| if(!m.as_str().is_empty()) { Some(m.as_str().parse::().ok().unwrap() - 1) } else { Some(0) }).unwrap_or_default() - ))); - values - }, - range: file.range.clone(), - statistics: file.statistics.clone(), - extensions: file.extensions.clone(), - metadata_size_hint: file.metadata_size_hint, + .map(|file| { + let location = file.object_meta.location.as_ref(); + let row_base = *file_row_bases.get(location).unwrap_or(&0); + + PartitionedFile { + object_meta: file.object_meta.clone(), + partition_values: { + let mut values = file.partition_values.clone(); + if row_id_field_datatype.equals_datatype(&DataType::Int32) { + values.push(ScalarValue::Int32(Some(row_base))); + } else if row_id_field_datatype.equals_datatype(&DataType::Int64) { + values.push(ScalarValue::Int64(Some(row_base as i64))); + } + values + }, + range: file.range.clone(), + statistics: file.statistics.clone(), + extensions: file.extensions.clone(), + metadata_size_hint: file.metadata_size_hint, + } }) .collect(); - FileGroup::new(new_files).with_statistics(Arc::new(group.statistics_mut().cloned().unwrap_or_default())) + FileGroup::new(new_files) + .with_statistics(Arc::new(group.statistics_mut().cloned().unwrap_or_default())) }) - .collect() + .collect()) } } @@ -1217,7 +1260,7 @@ impl TableProvider for ListingTable { return Ok(Arc::new(EmptyExec::new(projected_schema))); } - partitioned_file_lists = self.add_path_preserving_metadata(partitioned_file_lists); + partitioned_file_lists = self.add_path_preserving_metadata(partitioned_file_lists).expect("Unable to update Metadata for partitioned files"); let output_ordering = self.try_create_output_ordering()?; match state @@ -1385,6 +1428,7 @@ impl ListingTable { return Ok((vec![], Statistics::new_unknown(&self.file_schema))); }; // list files (with partitions) + let table_partition_cols: Vec<(String, DataType)> = vec![]; // Passing empty partition cols as current partition cols are not mapped to directory path let file_list = future::try_join_all(self.table_paths.iter().map(|table_path| { pruned_partition_list( ctx, @@ -1392,7 +1436,7 @@ impl ListingTable { table_path, filters, &self.options.file_extension, - &self.options.table_partition_cols, + &table_partition_cols, ) })) .await?; diff --git a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs index 91d99de5e9123..f5f3595bbda49 100644 --- a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs +++ b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs @@ -5,284 +5,167 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ + use std::fs; use std::sync::Arc; -use datafusion::common::tree_node::{Transformed, TreeNode, TreeNodeRecursion}; -use datafusion::config::ConfigOptions; -use datafusion::datasource::physical_plan::{FileScanConfig, FileScanConfigBuilder}; -use datafusion::datasource::source::DataSourceExec; -use datafusion::error::DataFusionError; -use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; -use datafusion::physical_optimizer::PhysicalOptimizerRule; -use datafusion::physical_plan::ExecutionPlan; -use datafusion::physical_plan::filter::FilterExec; + use arrow::datatypes::{DataType, Field, Fields, Schema}; -use datafusion::logical_expr::Operator; -use datafusion::physical_expr::PhysicalExpr; -use datafusion::physical_expr::expressions::{BinaryExpr, Column}; -use datafusion::physical_plan::projection::ProjectionExec; +use arrow_schema::SchemaRef; +use datafusion::{ + common::tree_node::{Transformed, TreeNode, TreeNodeRecursion}, + config::ConfigOptions, + datasource::{ + physical_plan::{FileScanConfig, FileScanConfigBuilder}, + source::DataSourceExec, + }, + error::DataFusionError, + logical_expr::Operator, + parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder, + physical_expr::{expressions::{BinaryExpr, Column}, PhysicalExpr}, + physical_optimizer::PhysicalOptimizerRule, + physical_plan::{filter::FilterExec, projection::ProjectionExec, ExecutionPlan}, +}; +use datafusion::physical_plan::projection::new_projections_for_columns; #[derive(Debug)] -pub struct FilterRowIdOptimizer; +pub struct ProjectRowIdOptimizer; + +impl ProjectRowIdOptimizer { + + /// Helper to build new schema and projection info with added `row_base` column. + fn build_updated_file_source_schema( + &self, + datasource: &FileScanConfig, + datasource_exec_schema: SchemaRef + ) -> (SchemaRef, Vec) { + // Clone projection and add new field index + let mut projections = datasource.projection.clone().unwrap_or_default(); + let file_source_schema = datasource.file_schema.clone(); + + let mut new_projections = vec![]; + + // let mut fields = vec![]; + for field_name in datasource_exec_schema.fields().to_vec() { + new_projections.push(file_source_schema.index_of(field_name.name()).unwrap()); + } + + // for field in file_source_schema.fields().to_vec() { + // if datasource_exec_schema.field_with_name(&field.name().clone()).is_ok() { + // fields.push(Arc::new(Field::new(field.name(), field.data_type().clone(), field.is_nullable()))); + // } + // } + + if !projections.contains(&file_source_schema.index_of("___row_id").unwrap()) { + new_projections.push(file_source_schema.index_of("___row_id").unwrap()); + + // let field = file_source_schema.field_with_name(&*"___row_id").expect("Field ___row_id not found in file_source_schema"); + // fields.push(Arc::new(Field::new("___row_id", field.data_type().clone(), field.is_nullable()))); + } + new_projections.push(file_source_schema.fields.len()); + // fields.push(Arc::new(Field::new("row_base", file_source_schema.field_with_name("___row_id").unwrap().data_type().clone(), true))); + + // Add row_base field to schema + + let mut new_fields = file_source_schema.fields().clone().to_vec(); + new_fields.push(Arc::new(Field::new("row_base", file_source_schema.field_with_name("___row_id").unwrap().data_type().clone(), true))); + + let new_schema = Arc::new(Schema { + metadata: file_source_schema.metadata().clone(), + fields: Fields::from(new_fields), + }); + + (new_schema, new_projections) + } + + /// Creates a projection expression that adds `row_base` to `___row_id`. + fn build_projection_exprs(&self, new_schema: &SchemaRef) -> Result, String)>, DataFusionError> { + let row_id_idx = new_schema.index_of("___row_id").expect("Field ___row_id missing"); + let row_base_idx = new_schema.index_of("row_base").expect("Field row_base missing"); + + let sum_expr: Arc = Arc::new(BinaryExpr::new( + Arc::new(Column::new("___row_id", row_id_idx)), + Operator::Plus, + Arc::new(Column::new("row_base", row_base_idx)), + )); + + let mut projection_exprs: Vec<(Arc, String)> = Vec::new(); + + let mut has_row_id = false; + for field_name in new_schema.fields().to_vec() { + + if field_name.name() == "___row_id" { + projection_exprs.push((sum_expr.clone(), field_name.name().clone())); + has_row_id = true; + } else if(field_name.name() != "row_base") { + // Match the column by name from new_schema + let idx = new_schema.index_of(&*field_name.name().clone()) + .unwrap_or_else(|_| panic!("Field {field_name} missing in schema")); + projection_exprs.push((Arc::new(Column::new(&*field_name.name(), idx)), field_name.name().clone())); + } + } + if !has_row_id { + projection_exprs.push((sum_expr.clone(), "___row_id".parse().unwrap())); + } + Ok(projection_exprs) + } + + fn create_datasource_projection(&self, datasource: &FileScanConfig, data_source_exec_schema: SchemaRef) -> Result { + let (new_schema, new_projections) = self.build_updated_file_source_schema(datasource, data_source_exec_schema.clone()); + let file_scan_config = FileScanConfigBuilder::from(datasource.clone()) + .with_source(datasource.file_source.with_schema(new_schema.clone())) + .with_projection(Some(new_projections)) + .build(); -impl PhysicalOptimizerRule for FilterRowIdOptimizer { + let new_datasource = DataSourceExec::from_data_source(file_scan_config); + let projection_exprs = self.build_projection_exprs(&new_datasource.schema()).expect("Failed to build projection expressions"); + + Ok(ProjectionExec::try_new(projection_exprs, new_datasource) + .expect("Failed to create ProjectionExec")) + } +} + +impl PhysicalOptimizerRule for ProjectRowIdOptimizer { fn optimize( &self, plan: Arc, _config: &ConfigOptions, ) -> Result, DataFusionError> { - let mut is_optimized = false; + let rewritten = plan.transform_up(|node| { - if let Some(filter) = node.as_any().downcast_ref::() { - // Check if input is DataSourceExec - if let Some(datasource_exec) = filter.input().as_any().downcast_ref::() { - // Check if ___row_id is present - let schema = datasource_exec.schema(); - let has_row_id = schema.field_with_name("___row_id").is_ok(); - - if has_row_id { - let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); - // let _ = datasource.projection.insert(vec![0]); - let mut new_projections = datasource.clone().projection.clone().unwrap(); - let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned()+&datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); - - new_projections.push(file_schema.schema().fields().len()); - - let mut fields = schema.fields().clone().to_vec(); - fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); - let new_schema = Arc::new(Schema{metadata: schema.metadata().clone(), fields: Fields::from(fields)}); - - let file_scan_config = - FileScanConfigBuilder::from(datasource.clone()) - .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) - .with_projection(Some(new_projections.clone())) - .build(); - - let new_datasource = DataSourceExec::from_data_source(file_scan_config); - - // 2. Create new FilterExec with updated input schema - let new_filter = FilterExec::try_new( - filter.predicate().clone(), - new_datasource.clone(), - )?; - // 3. Create ProjectionExec for sum operation - let mut projection_exprs: Vec<(Arc, String)> = vec![]; - - // Get indices from filter's schema - let row_id_idx = new_schema.index_of("___row_id")?; - let row_base_idx = new_schema.index_of("row_base")?; - - // Create sum expression - let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); - let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); - let sum_expr = Arc::new(BinaryExpr::new( - row_id_col, - Operator::Plus, - row_base_col, - )); - - - // Add sum expression as ___row_id - - // Add other columns (except row_base) - for field in schema.fields() { - if field.name() != "___row_id" && field.name() != "row_base" { - let idx = new_schema.index_of(field.name())?; - projection_exprs.push(( - Arc::new(Column::new(field.name(), idx)), - field.name().to_string(), - )); - } - } - - projection_exprs.push((sum_expr, "___row_id".to_string())); - - // println!("projection_exprs :{:?}", projection_exprs); - - // Create final ProjectionExec - let projection = ProjectionExec::try_new( - projection_exprs, - Arc::new(new_filter), - )?; - - // println!("projection :{:?}", projection); - is_optimized = true; - return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); - } - } - } else if let Some(datasource_exec) = node.as_any().downcast_ref::() { - if(!is_optimized) { - let schema = datasource_exec.schema(); - let has_row_id = schema.field_with_name("___row_id").is_ok(); - - if has_row_id { - let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); - // let _ = datasource.projection.insert(vec![0]); - let mut new_projections = datasource.clone().projection.clone().unwrap(); - println!("path {}", datasource.file_groups[0].files()[0].path()); - let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned() + &datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); - - new_projections.push(file_schema.schema().fields().len()); - - let mut fields = schema.fields().clone().to_vec(); - fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); - let new_schema = Arc::new(Schema { metadata: schema.metadata().clone(), fields: Fields::from(fields) }); - - let file_scan_config = - FileScanConfigBuilder::from(datasource.clone()) - .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) - .with_projection(Some(new_projections.clone())) - .build(); - - let new_datasource = DataSourceExec::from_data_source(file_scan_config); - - // 3. Create ProjectionExec for sum operation - let mut projection_exprs: Vec<(Arc, String)> = vec![]; - - // Get indices from filter's schema - let row_id_idx = new_schema.index_of("___row_id")?; - let row_base_idx = new_schema.index_of("row_base")?; - - // Create sum expression - let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); - let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); - let sum_expr = Arc::new(BinaryExpr::new( - row_id_col, - Operator::Plus, - row_base_col, - )); - - - // Add sum expression as ___row_id - - // Add other columns (except row_base) - for field in schema.fields() { - if field.name() != "___row_id" && field.name() != "row_base" { - let idx = new_schema.index_of(field.name())?; - projection_exprs.push(( - Arc::new(Column::new(field.name(), idx)), - field.name().to_string(), - )); - } - } - - projection_exprs.push((sum_expr, "___row_id".to_string())); - - // println!("projection_exprs :{:?}", projection_exprs); - - // Create final ProjectionExec - let projection = ProjectionExec::try_new( - projection_exprs, - new_datasource, - )?; - - // println!("projection :{:?}", projection); - is_optimized = true; - return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); + if let Some(datasource_exec) = node.as_any().downcast_ref::() { + + let datasource = datasource_exec + .data_source() + .as_ref() + .as_any() + .downcast_ref::() + .expect("DataSource not found"); + let schema = datasource.file_schema.clone(); + schema.field_with_name("___row_id").expect("Field ___row_id missing"); + let projection = self.create_datasource_projection(datasource, datasource_exec.schema()).expect("Failed to create ProjectionExec from datasource"); + return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); + + } else if let Some(projection_exec) = node.as_any().downcast_ref::() { + if !projection_exec.schema().field_with_name("___row_id").is_ok() { + + let mut projection_exprs = projection_exec.expr().to_vec(); + if(projection_exec.input().schema().index_of("___row_id").is_ok()) { + projection_exprs.push((Arc::new(Column::new("___row_id", projection_exec.input().schema().index_of("___row_id").unwrap())), "___row_id".to_string())); } + + let projection = ProjectionExec::try_new(projection_exprs, projection_exec.input().clone()).expect("Failed to create projection exec"); + return Ok(Transformed::new(Arc::new(projection.clone()), true, TreeNodeRecursion::Continue)); } } + Ok(Transformed::no(node)) })?; Ok(rewritten.data) } - // - // fn optimize( - // &self, - // plan: Arc, - // _config: &ConfigOptions, - // ) -> datafusion_common::Result> { - // let rewritten = plan.transform_up(|node| { - // if let Some(filter) = node.as_any().downcast_ref::() { - // // Check if input is DataSourceExec - // if let Some(datasource_exec) = filter.input().as_any().downcast_ref::() { - // // Check if ___row_id is present - // let schema = datasource_exec.schema(); - // let has_row_id = schema.field_with_name("___row_id").is_ok(); - // - // if has_row_id { - // let mut datasource = datasource_exec.data_source().as_ref().as_any().downcast_ref::().unwrap(); - // // let _ = datasource.projection.insert(vec![0]); - // let mut new_projections = datasource.clone().projection.clone().unwrap(); - // println!("path {}", datasource.file_groups[0].files()[0].path()); - // // let file_schema = ParquetRecordBatchReaderBuilder::try_new(fs::File::open("/".to_owned()+&datasource.file_groups[0].files()[0].path().to_string()).unwrap()).unwrap(); - // let file_schema = datasource.file_schema.clone(); - // - // new_projections.push(file_schema.index_of("row_base").unwrap() ); - // - // let mut fields = schema.fields().clone().to_vec(); - // fields.insert(fields.len(), Arc::new(Field::new("row_base", DataType::Int32, true))); - // let new_schema = Arc::new(Schema{metadata: schema.metadata().clone(), fields: Fields::from(fields)}); - // - // let file_scan_config = - // FileScanConfigBuilder::from(datasource.clone()) - // .with_source(datasource.clone().file_source.with_schema(new_schema.clone())) - // .with_projection(Some(new_projections.clone())) - // .build(); - // - // let new_datasource = DataSourceExec::from_data_source(file_scan_config); - // - // // 2. Create new FilterExec with updated input schema - // let new_filter = FilterExec::try_new( - // filter.predicate().clone(), - // new_datasource.clone(), - // )?; - // println!("new schema :{}", new_schema); - // // 3. Create ProjectionExec for sum operation - // let mut projection_exprs: Vec<(Arc, String)> = vec![]; - // - // // Get indices from filter's schema - // let row_id_idx = new_schema.index_of("___row_id")?; - // let row_base_idx = new_schema.index_of("row_base")?; - // - // // Create sum expression - // let row_id_col = Arc::new(Column::new("___row_id", row_id_idx)); - // let row_base_col = Arc::new(Column::new("row_base", row_base_idx)); - // let sum_expr = Arc::new(BinaryExpr::new( - // row_id_col, - // Operator::Plus, - // row_base_col, - // )); - // - // - // // Add sum expression as ___row_id - // - // // Add other columns (except row_base) - // for field in schema.fields() { - // if field.name() != "___row_id" && field.name() != "row_base" { - // let idx = new_schema.index_of(field.name())?; - // projection_exprs.push(( - // Arc::new(Column::new(field.name(), idx)), - // field.name().to_string(), - // )); - // } - // } - // - // projection_exprs.push((sum_expr, "___row_id".to_string())); - // - // println!("projection_exprs :{:?}", projection_exprs); - // - // // Create final ProjectionExec - // let projection = ProjectionExec::try_new( - // projection_exprs, - // Arc::new(new_filter), - // )?; - // - // println!("projection :{:?}", projection); - // - // return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); - // } - // } - // } - // Ok(Transformed::no(node)) - // })?; - // - // Ok(rewritten.data) - // } fn name(&self) -> &str { - "filter_row_id_optimizer" + "project_row_id_optimizer" } fn schema_check(&self) -> bool { diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index 1b6da12c49ede..575e654680e8a 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -12,6 +12,9 @@ use object_store::{path::Path as ObjectPath, ObjectMeta}; use std::collections::HashMap; use std::error::Error; use std::fs; +use datafusion::error::DataFusionError; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use crate::FileMetadata; /// Set error message from a result using a Consumer Java callback pub fn set_error_message_batch(env: &mut JNIEnv, callback: JObject, result: Result, Err>) { @@ -157,7 +160,8 @@ pub fn throw_exception(env: &mut JNIEnv, message: &str) { let _ = env.throw_new("java/lang/RuntimeException", message); } -pub fn create_object_meta_from_filenames(base_path: &str, filenames: Vec) -> Vec { +pub fn create_file_metadata_from_filenames(base_path: &str, filenames: Vec) -> Result, DataFusionError> { + let mut row_base: i64 =0; filenames.into_iter().map(|filename| { let filename = filename.as_str(); @@ -171,17 +175,36 @@ pub fn create_object_meta_from_filenames(base_path: &str, filenames: Vec }; let file_size = fs::metadata(&full_path).map(|m| m.len()).unwrap_or(0); + let file_result = fs::File::open(&full_path.clone()); + if(file_result.is_err()) { + return Err(DataFusionError::Execution(format!("{} {}", file_result.unwrap_err().to_string(), full_path))) + } + let file = file_result.unwrap(); + let parquet_metadata = ParquetRecordBatchReaderBuilder::try_new(file).unwrap(); + let row_group_row_counts: Vec = parquet_metadata.metadata().row_groups() + .iter() + .map(|row_group| row_group.num_rows()) + .collect(); + + let modified = fs::metadata(&full_path) .and_then(|m| m.modified()) .map(|t| DateTime::::from(t)) .unwrap_or_else(|_| Utc::now()); - ObjectMeta { - location: ObjectPath::from(full_path), - last_modified: modified, - size: file_size, - e_tag: None, - version: None, - } + let file_meta = FileMetadata::new( + row_group_row_counts.clone(), + row_base, + ObjectMeta { + location: ObjectPath::from(full_path), + last_modified: modified, + size: file_size, + e_tag: None, + version: None, + } + ); + //TODO: ensure ordering of files + row_base += row_group_row_counts.iter().sum::(); + Ok(file_meta) }).collect() } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index 06a8cc0882132..d8bbbed9f0317 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -8,9 +8,7 @@ package org.opensearch.datafusion; -import org.opensearch.index.engine.exec.FileMetadata; - -import java.util.Collection; +import org.opensearch.datafusion.search.QueryCallback; /** * JNI wrapper for DataFusion operations @@ -113,7 +111,17 @@ private static synchronized void loadNativeLibrary() { * @param substraitPlan the serialized Substrait query plan * @return stream pointer for result iteration */ - public static native long executeSubstraitQuery(long cachePtr, String tableName, byte[] substraitPlan, long runtimePtr); + public static native long executeQueryPhase(long cachePtr, String tableName, byte[] substraitPlan, long runtimePtr); + + /** + * Execute a Substrait query plan + * @param cachePtr the session context ID + * @param rowIds row ids for which record needs to fetch + * @param runtimePtr runtime pointer + * @return stream pointer for result iteration + */ + + public static native long executeFetchPhase(long cachePtr, long[] rowIds, String[] projections, long runtimePtr); public static native long createDatafusionReader(String path, String[] files); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 1edcd48cd8418..dfbdcb0667efa 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -11,45 +11,50 @@ import org.apache.arrow.memory.RootAllocator; import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.ViewVarCharVector; import org.apache.arrow.vector.types.pojo.Field; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.TopDocs; +import org.apache.lucene.search.TotalHits; +import org.apache.lucene.util.BytesRef; +import org.opensearch.OpenSearchException; import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.lease.Releasables; +import org.opensearch.common.lucene.search.TopDocsAndMaxScore; import org.opensearch.common.util.BigArrays; -import org.opensearch.datafusion.core.DefaultRecordBatchStream; -import org.opensearch.datafusion.search.DatafusionContext; -import org.opensearch.datafusion.search.DatafusionQuery; -import org.opensearch.datafusion.search.DatafusionQueryPhaseExecutor; -import org.opensearch.datafusion.search.DatafusionReader; -import org.opensearch.datafusion.search.DatafusionReaderManager; -import org.opensearch.datafusion.search.DatafusionSearcher; -import org.opensearch.datafusion.search.DatafusionSearcherSupplier; -import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; -import org.opensearch.index.engine.Engine; -import org.opensearch.index.engine.EngineException; -import org.opensearch.index.engine.EngineSearcherSupplier; -import org.opensearch.index.engine.SearchExecEngine; +import org.opensearch.common.xcontent.XContentFactory; +import org.opensearch.core.common.bytes.BytesArray; +import org.opensearch.core.common.bytes.BytesReference; +import org.opensearch.core.xcontent.XContentBuilder; +import org.opensearch.datafusion.search.*; +import org.opensearch.index.engine.*; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; +import org.opensearch.index.mapper.*; import org.opensearch.index.shard.ShardPath; +import org.opensearch.search.DocValueFormat; +import org.opensearch.search.SearchHit; +import org.opensearch.search.SearchHits; import org.opensearch.search.SearchShardTarget; import org.opensearch.search.aggregations.SearchResultsCollector; +import org.opensearch.search.fetch.FetchSubPhase; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; +import org.opensearch.search.lookup.SourceLookup; +import org.opensearch.search.query.GenericQueryPhaseSearcher; import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; -import org.opensearch.search.query.GenericQueryPhaseSearcher; import java.io.IOException; import java.io.UncheckedIOException; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import java.util.function.Function; +import static java.util.Collections.emptyMap; + public class DatafusionEngine extends SearchExecEngine { @@ -162,8 +167,10 @@ public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scop RootAllocator allocator = null; RecordBatchStream stream = null; @Override - public Map execute(DatafusionContext context) { + public Map executeQueryPhase(DatafusionContext context) { Map finalRes = new HashMap<>(); + List rowIdResult = new ArrayList<>(); + try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); @@ -178,13 +185,22 @@ public Map execute(DatafusionContext context) { public void collect(RecordBatchStream value) { VectorSchemaRoot root = value.getVectorSchemaRoot(); for (Field field : root.getSchema().getFields()) { - String filedName = field.getName(); - FieldVector fieldVector = root.getVector(filedName); + String fieldName = field.getName(); + FieldVector fieldVector = root.getVector(fieldName); Object[] fieldValues = new Object[fieldVector.getValueCount()]; - for (int i = 0; i < fieldVector.getValueCount(); i++) { - fieldValues[i] = fieldVector.getObject(i); + if (fieldName.equals(CompositeDataFormatWriter.ROW_ID)) { + FieldVector rowIdVector = root.getVector(fieldName); + for(int i=0; i entry : finalRes.entrySet()) { -// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); -// } + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + } } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); @@ -208,6 +223,107 @@ public void collect(RecordBatchStream value) { throw new RuntimeException(e); } } + + context.queryResult().topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(rowIdResult.size(), TotalHits.Relation.EQUAL_TO), rowIdResult.stream().map(d-> new ScoreDoc(d.intValue(), Float.NaN, context.indexShard().shardId().getId())).toList().toArray(ScoreDoc[]::new)) , Float.NaN), new DocValueFormat[0]); return finalRes; } + + + /** + * Executes fetch phase, DataFusion query should contain projections for fields + * @param context DataFusion context + * @throws IOException + */ + @Override + public void executeFetchPhase(DatafusionContext context) throws IOException { + + List rowIds = Arrays.stream(context.docIdsToLoad()).mapToObj(Long::valueOf).toList(); + if (rowIds.isEmpty()) { + // no individual hits to process, so we shortcut + context.fetchResult() + .hits(new SearchHits(new SearchHit[0], context.queryResult().getTotalHits(), context.queryResult().getMaxScore())); + return; + } + + // preprocess + context.getDatafusionQuery().setFetchPhaseContext(rowIds); + List projections = new ArrayList<>(List.of(context.request().source().fetchSource().includes())); + projections.add(CompositeDataFormatWriter.ROW_ID); + context.getDatafusionQuery().setProjections(projections); + DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); + long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); // update to handle fetchPhase query + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); + + Map rowIdToIndex = new HashMap<>(); + for (int idx = 0; idx < rowIds.size(); idx++) { + rowIdToIndex.put(rowIds.get(idx), idx); + } + + MapperService mapperService = context.mapperService(); + MappingLookup mappingLookup = mapperService.documentMapper().mappers(); + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream recordBatchStream) throws IOException { + List byteRefs = new ArrayList<>(); + SearchHit[] hits = new SearchHit[rowIds.size()]; + int totalHits = 0; + while (recordBatchStream.loadNextBatch().join()) { + VectorSchemaRoot vectorSchemaRoot = recordBatchStream.getVectorSchemaRoot(); + List fieldVectorList = vectorSchemaRoot.getFieldVectors(); + for (int i = 0; i < vectorSchemaRoot.getRowCount(); i++) { + XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); + String _id = "_id"; + Long row_id = null; + + try { + for (FieldVector valueVectors : fieldVectorList) { + if (valueVectors.getName().equals(CompositeDataFormatWriter.ROW_ID)) { + row_id = (long) valueVectors.getObject(i); + continue; + } + Mapper mapper = mappingLookup.getMapper(valueVectors.getName()); + DerivedFieldGenerator derivedFieldGenerator = mapper.derivedFieldGenerator(); + + Object value = valueVectors.getObject(i); + if(valueVectors instanceof ViewVarCharVector) { + BytesRef bytesRef = new BytesRef(((ViewVarCharVector) valueVectors).get(i)); + derivedFieldGenerator.generate(builder, List.of(bytesRef)); // TODO: // Currently keyword field mapper do not have derived field converter from byte[] to BytesRef + } else { + derivedFieldGenerator.generate(builder, List.of(value)); + } + if (valueVectors.getName().equals(IdFieldMapper.NAME)) { + BytesRef idRef = new BytesArray((byte[]) value).toBytesRef(); + _id = Uid.decodeId(idRef.bytes, idRef.offset, idRef.length); + } + } + } catch (Exception e) { + logger.error("Failed to derive source for doc id [{i}]: {}", i, e); + throw new OpenSearchException("Failed to derive source for doc id [" + i + "]", e); + } finally { + builder.endObject(); + } + assert row_id != null || rowIds.get(i) != null; + assert _id != null; + BytesReference document = BytesReference.bytes(builder); + byteRefs.add(document); + SearchHit hit = new SearchHit(Math.toIntExact(rowIds.get(i)), _id, emptyMap(), emptyMap()); + hit.sourceRef(document); + FetchSubPhase.HitContext hitContext = new FetchSubPhase.HitContext(hit, null, Math.toIntExact(rowIds.get(i)), new SourceLookup()); //TODO: make source lookup one per thread + hitContext.sourceLookup().setSource(document); + int index = rowIdToIndex.get(row_id); + hits[index] = hit; + totalHits++; + } + } + context.fetchResult().hits(new SearchHits(hits, new TotalHits(totalHits, TotalHits.Relation.EQUAL_TO), context.queryResult().getMaxScore())); + } + }; + + try { + collector.collect(stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index 712871ed1470c..d475bd6ce07d7 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -17,9 +17,9 @@ import org.opensearch.action.search.SearchType; import org.opensearch.common.unit.TimeValue; import org.opensearch.common.util.BigArrays; +import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.index.IndexService; import org.opensearch.index.cache.bitset.BitsetFilterCache; -import org.opensearch.index.engine.EngineSearcher; import org.opensearch.index.mapper.MappedFieldType; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.mapper.ObjectMapper; @@ -61,6 +61,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; /** * Search context for Datafusion engine @@ -81,6 +82,11 @@ public class DatafusionContext extends SearchContext { private SearchContextAggregations aggregations; private final BigArrays bigArrays; private final Map, CollectorManager> queryCollectorManagers = new HashMap<>(); + private int[] docIdsToLoad; + private int docsIdsToLoadFrom; + private int docsIdsToLoadSize; + private int from; + private int size; private final SearchContext originalContext; /** @@ -117,6 +123,8 @@ public DatafusionContext( ); this.bigArrays = bigArrays; this.originalContext = originalContext; + this.size(Optional.ofNullable(request.source()).isPresent() ? request.source().size() : 0); + this.from(Optional.ofNullable(request.source()).isPresent() ? request.source().from() : 0); } /** @@ -387,7 +395,7 @@ public IndexShard indexShard() { @Override public MapperService mapperService() { - return null; + return indexService.mapperService(); } @Override @@ -563,7 +571,7 @@ public Query query() { @Override public int from() { - return 0; + return from; } /** @@ -572,12 +580,13 @@ public int from() { */ @Override public SearchContext from(int from) { - return null; + this.from = from; + return this; } @Override public int size() { - return 0; + return size; } /** @@ -586,7 +595,8 @@ public int size() { */ @Override public SearchContext size(int size) { - return null; + this.size = size; + return this; } @Override @@ -676,17 +686,17 @@ public void seqNoAndPrimaryTerm(boolean seqNoAndPrimaryTerm) { @Override public int[] docIdsToLoad() { - return new int[0]; + return docIdsToLoad; } @Override public int docIdsToLoadFrom() { - return 0; + return docsIdsToLoadFrom; } @Override public int docIdsToLoadSize() { - return 0; + return docsIdsToLoadSize; } /** @@ -697,7 +707,10 @@ public int docIdsToLoadSize() { */ @Override public SearchContext docIdsToLoad(int[] docIdsToLoad, int docsIdsToLoadFrom, int docsIdsToLoadSize) { - return null; + this.docIdsToLoad = docIdsToLoad; + this.docsIdsToLoadFrom = docsIdsToLoadFrom; + this.docsIdsToLoadSize = docsIdsToLoadSize; + return this; } @Override @@ -760,7 +773,7 @@ public QueryShardContext getQueryShardContext() { @Override public ReaderContext readerContext() { - return null; + return readerContext; } @Override diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java index 9a9cdd6aae182..3ba9682059a64 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQuery.java @@ -17,11 +17,36 @@ public class DatafusionQuery { // List of Search executors which returns a result iterator which contains row id which can be joined in datafusion private final List searchExecutors; + private Boolean isFetchPhase; + private List queryPhaseRowIds; + private List projections; public DatafusionQuery(String indexName, byte[] substraitBytes, List searchExecutors) { this.indexName = indexName; this.substraitBytes = substraitBytes; this.searchExecutors = searchExecutors; + this.isFetchPhase = false; + } + + public void setProjections(List projections) { + this.projections = projections; + } + + public void setFetchPhaseContext(List queryPhaseRowIds) { + this.queryPhaseRowIds = queryPhaseRowIds; + this.isFetchPhase = true; + } + + public boolean isFetchPhase() { + return this.isFetchPhase; + } + + public List getQueryPhaseRowIds() { + return this.queryPhaseRowIds; + } + + public List getProjections() { + return this.projections; } public byte[] getSubstraitBytes() { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index 192be34625bd2..ba14055170dad 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -8,20 +8,17 @@ package org.opensearch.datafusion.search; -import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.EngineReaderManager; -import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import java.io.IOException; +import java.net.URI; import java.nio.file.Path; import java.util.Collection; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; public class DatafusionReaderManager implements EngineReaderManager, CatalogSnapshotAwareRefreshListener { private DatafusionReader current; @@ -31,7 +28,9 @@ public class DatafusionReaderManager implements EngineReaderManager refreshListeners = new CopyOnWriteArrayList(); public DatafusionReaderManager(String path, Collection files, String dataFormat) throws IOException { - this.current = null; + WriterFileSet writerFileSet = new WriterFileSet(Path.of(URI.create("file:///" + path)), 1); + files.forEach(fileMetadata -> writerFileSet.add(fileMetadata.file())); + this.current = new DatafusionReader(path, List.of(writerFileSet));; this.path = path; this.dataFormat = dataFormat; } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index c3a37fbe26063..c08bf0ca10f67 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -10,7 +10,6 @@ import org.apache.lucene.store.AlreadyClosedException; import org.opensearch.datafusion.DataFusionQueryJNI; -import org.opensearch.datafusion.DataFusionService; import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.aggregations.SearchResultsCollector; @@ -20,7 +19,7 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.util.List; -import java.util.concurrent.CompletableFuture; +import java.util.Objects; public class DatafusionSearcher implements EngineSearcher { private final String source; @@ -40,7 +39,7 @@ public String source() { public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native // TODO : change RunTimePtr - long nativeStreamPtr = DataFusionQueryJNI.executeSubstraitQuery(reader.getCachePtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); + long nativeStreamPtr = DataFusionQueryJNI.executeQueryPhase(reader.getCachePtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); while(stream.hasNext()) { for(SearchResultsCollector collector : collectors) { @@ -51,7 +50,16 @@ public void search(DatafusionQuery datafusionQuery, List finalRes = new HashMap<>(); DatafusionSearcher datafusionSearcher = null; try { - DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(new TextDF(), "hits_data.parquet")), service); - datafusionSearcher = engine.acquireSearcher("Search"); - + URL resourceUrl = getClass().getClassLoader().getResource("data/"); + Index index = new Index("index-7", "index-7"); + final Path path = Path.of(resourceUrl.toURI()).resolve("index-7").resolve("0"); + ShardPath shardPath = new ShardPath(false, path, path, new ShardId(index, 0)); + DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(DataFormat.CSV.toString(), "generation-1.parquet")), service, shardPath); + datafusionSearcher = engine.acquireSearcher("search"); byte[] protoContent; - try (InputStream is = getClass().getResourceAsStream("/substrait_plan.pb")) { protoContent = is.readAllBytes(); } catch (IOException e) { throw new RuntimeException(e); } - long streamPointer = datafusionSearcher.search(new DatafusionQuery("test-index",protoContent, new ArrayList<>()), service.getTokioRuntimePointer()); + long streamPointer = datafusionSearcher.search(new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()), service.getTokioRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); @@ -154,4 +176,209 @@ public void collect(RecordBatchStream value) { } } } + + public void testQueryThenFetchExecutor() throws IOException, URISyntaxException { + DatafusionSearcher datafusionSearcher = null; + try { + URL resourceUrl = getClass().getClassLoader().getResource("data/"); + Index index = new Index("index-7", "index-7"); + final Path path = Path.of(resourceUrl.toURI()).resolve("index-7").resolve("0"); + ShardPath shardPath = new ShardPath(false, path, path, new ShardId(index, 0)); + DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(DataFormat.CSV.toString(), "generation-1.parquet"), new FileMetadata(DataFormat.CSV.toString(), "generation-2.parquet")), service, shardPath); + datafusionSearcher = engine.acquireSearcher("Search"); + + byte[] protoContent; + try (InputStream is = getClass().getResourceAsStream("/substrait_plan.pb")) { + protoContent = is.readAllBytes(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + DatafusionQuery query = new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()); + long streamPointer = datafusionSearcher.search(query, service.getTokioRuntimePointer()); + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); + + ArrayList row_ids_res = new ArrayList<>(); + + while (stream.loadNextBatch().join()) { + VectorSchemaRoot root = stream.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String fieldName = field.getName(); + if (fieldName.equals("___row_id")) { + BigIntVector fieldVector = (BigIntVector) root.getVector(fieldName); + for(int i=0; i projections = List.of("message"); + query.setProjections(projections); + query.setFetchPhaseContext(row_ids_res); + long fetchPhaseStreamPointer = datafusionSearcher.search(query, service.getTokioRuntimePointer()); + + RecordBatchStream fetchPhaseStream = new RecordBatchStream(fetchPhaseStreamPointer, service.getTokioRuntimePointer() , allocator); + int total_fetch_results = 0; + ArrayList fetch_row_ids_res = new ArrayList<>(); + + while(fetchPhaseStream.loadNextBatch().join()) { + VectorSchemaRoot root = fetchPhaseStream.getVectorSchemaRoot(); + assertEquals(projections.size(), root.getSchema().getFields().size()); + for (Field field : root.getSchema().getFields()) { + assertTrue("Field was not passed in projections list", projections.contains(field.getName())); + if(field.getName().equals("___row_id")) { + IntVector fieldVector = (IntVector) root.getVector(field.getName()); + for(int i=0; i> getPlugins() { + return pluginList(ParquetDataFormatPlugin.class); + } + + public void testQueryThenFetchE2ETest() throws IOException, URISyntaxException, InterruptedException, ExecutionException { + URL resourceUrl = getClass().getClassLoader().getResource("data/"); + Index index = new Index("index-7", "index-7"); + final Path path = Path.of(resourceUrl.toURI()).resolve("index-7").resolve("0"); + ShardPath shardPath = new ShardPath(false, path, path, new ShardId(index, 0)); + DatafusionEngine engine = new DatafusionEngine(DataFormat.CSV, List.of(new FileMetadata(DataFormat.CSV.toString(), "generation-1.parquet"), new FileMetadata(DataFormat.CSV.toString(), "generation-2.parquet")), service, shardPath); + + SearchRequest searchRequest = new SearchRequest().allowPartialSearchResults(true).source(new SearchSourceBuilder().size(9).fetchSource(List.of("message").toArray(String[]::new), null)); + ShardSearchRequest shardSearchRequest = new ShardSearchRequest( + OriginalIndices.NONE, + searchRequest, + new ShardId(index, 0), + 1, + new AliasFilter(null, Strings.EMPTY_ARRAY), + 1.0f, + -1, + null, + null + ); + + IndexService indexService = createIndex("index-7", Settings.EMPTY, jsonBuilder().startObject() + .startObject("properties") + .startObject("___row_id") + .field("type", "long") + .endObject() + .startObject("message") + .field("type", "long") + .endObject() + .endObject() + .endObject() + ); + ThreadPool threadPool = new TestThreadPool(this.getClass().getName()); + IndexShard indexShard = createIndexShard(shardPath.getShardId(), true); + when(indexShard.getThreadPool()).thenReturn(threadPool); + SearchOperationListener searchOperationListener = new SearchOperationListener() { + }; + when(indexShard.getSearchOperationListener()).thenReturn(searchOperationListener); + + EngineSearcherSupplier reader = indexShard.acquireSearcherSupplier(); + ReaderContext readerContext = createAndPutReaderContext(shardSearchRequest, indexService, indexShard, reader); + SearchShardTarget searchShardTarget = new SearchShardTarget("node_1", new ShardId("index-7", "index-7", 0), null, OriginalIndices.NONE); + SearchShardTask searchShardTask = new SearchShardTask(0, "n/a", "n/a", "test", null, Collections.singletonMap(Task.X_OPAQUE_ID, "my_id")); + DatafusionContext datafusionContext = new DatafusionContext(readerContext, shardSearchRequest, searchShardTarget, searchShardTask, engine, null, null); + + byte[] protoContent; + try (InputStream is = getClass().getResourceAsStream("/substrait_plan.pb")) { + protoContent = is.readAllBytes(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + DatafusionQuery query = new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()); + List projections = List.of("message"); + query.setProjections(projections); + + datafusionContext.datafusionQuery(query); + + engine.executeQueryPhase(datafusionContext); + int totalHits = Math.toIntExact(datafusionContext.queryResult().getTotalHits().value()); + int[] docIdsToLoad = new int[totalHits]; + for (int i=0; i 0); + assertEquals(datafusionContext.docIdsToLoad().length, datafusionContext.fetchResult().hits().getTotalHits().value()); + } + + final AtomicLong idGenerator = new AtomicLong(); + + + final ReaderContext createAndPutReaderContext( + ShardSearchRequest request, + IndexService indexService, + IndexShard shard, + EngineSearcherSupplier reader + ) { + assert request.readerId() == null; + assert request.keepAlive() == null; + ReaderContext readerContext = null; + Releasable decreaseScrollContexts = null; + try { + + final long keepAlive = request.keepAlive() != null ? request.keepAlive().getMillis() : request.readerId() == null ? timeValueMinutes(5).getMillis() : -1; + + final ShardSearchContextId id = new ShardSearchContextId(UUIDs.randomBase64UUID(), idGenerator.incrementAndGet()); + + readerContext = new ReaderContext(id, indexService, shard, reader, keepAlive, request.keepAlive() == null); + reader = null; + final ReaderContext finalReaderContext = readerContext; + final SearchOperationListener searchOperationListener = shard.getSearchOperationListener(); + searchOperationListener.onNewReaderContext(finalReaderContext); + readerContext.addOnClose(() -> { + try { + if (finalReaderContext.scrollContext() != null) { + searchOperationListener.onFreeScrollContext(finalReaderContext); + } + } finally { + searchOperationListener.onFreeReaderContext(finalReaderContext); + } + }); + readerContext = null; + return finalReaderContext; + } finally { + Releasables.close(reader, readerContext, decreaseScrollContexts); + } + } + + static IndexShard createIndexShard(ShardId shardId, boolean remoteStoreEnabled) { + Settings settings = Settings.builder() + .put(IndexMetadata.SETTING_REPLICATION_TYPE, ReplicationType.SEGMENT) + .put(IndexMetadata.SETTING_REMOTE_STORE_ENABLED, String.valueOf(remoteStoreEnabled)) + .build(); + IndexSettings indexSettings = IndexSettingsModule.newIndexSettings("test_index", settings); + Store store = mock(Store.class); + IndexShard indexShard = mock(IndexShard.class); + when(indexShard.indexSettings()).thenReturn(indexSettings); + when(indexShard.shardId()).thenReturn(shardId); + when(indexShard.store()).thenReturn(store); + return indexShard; + } } diff --git a/plugins/engine-datafusion/src/test/resources/data/index-7/0/generation-1.parquet b/plugins/engine-datafusion/src/test/resources/data/index-7/0/generation-1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ce5c34e978a4f296fd9e8c3ba7a41d6c724646cf GIT binary patch literal 3634 zcmcInO-vg{6rME>EQ!NknbEqkDpWPAL~UcRfyNa%%t8oIhX4^^kSf>M=1*V~+h9OF zG*VS@<`6|FiduxC9&*T~9I700YJ13`s;a80B2HCQr9D-u)JuQfo84Kj*XvYj)e)>` z-rx7$H}9=sf=~5OKP9vy4iC~n$obF0e{>Orz=^idt~Ws2MjL6PsUe9NAwEKg9}NDz zUl)zU(cQu$iCbn=2uvFA0Sl9&ui5yaesW%wI!(nKaJ9F?19K*cQ7bb=Y4H7r+}h}? zaq4sA#tHfJFLOaopsvnI>NHjE965onU`ru>NXe`0Q=$w(sMvXxEp0RvXcx-?;VL^$ z$E&IRjgZH!;G})>;N1h|(_25>{dpw%-X4mA3b`}zr3Yebu-aH_b$Qpv_o5HFNh~k= zq)t=i&Jp{c>63)W&hRM4CQY;Z#{uD@&+Ce;>~Sb$88w|Lb($)z>tp<16b0Lrphn<_ z`hv`VK?iO;MZREVeqd`;2VUfY4x?SyOLjPT$t_|@FAOX%1h%qmT_)~c3Tp0lb2-?Z z0Wl@dZWCFABLlaIyqFh6k-ocQUsr8sJ| zZT3`pTM>Z<(B)~fZFG3XHhLbgw}&mJ0aWy4B#^@H$qGLugy)A`L@$rLoLXN$$uQdat`EamcrY{u!+lq_a%CUbeyLA4yB zrbk0^C1WX)TiHT!C7-Ldi+}7K(LQA zwgKBReHvhX7H1oJzpjS*{YD3gV|QUwvF|(S%j}?)>I7Z=maC&k+xfntZ(H6m)A!d- z%GhJKujE5G9x3cAML+iGKPjQgP*f&`)%*U5$8cr{+oOQ-td$On{3@kcEZfJzKe6KH>I2#aeCBmLj z`U*Q~rwdgbpvqo!u=KQ9zt;=}$bqixuz*^rqks$g7DRrPcM3g6PlsR=7URo z3`OwCxgq3mgfr)(cmk39gi{ekWe&Ez{0c-UgW9-+5pUqxK=YwI8VSphN>DTO?(5<3 zC4qkxjc`qlPUFXoiMPVxZrq7wnsXEwi|LWEjfL6ao$O4kdpZhT`Q(kpbmq8?#z&9XKOpjxhO)R$3ZET(2B zxiJCv=~=(Q@v3X;$3Rzm*3!}O<@w0;u82Fd3YOmYk-_*i_mLL(>B!7>BGR|TuL^&0 ze?uZ5JSL}Q{=m1;oApN4atrIRoq5O|*IM2DhbF!9H;{@-{(M{b3%(`kaQ}iYz$;@T z#yK`B?&LC|q3=0QM5eapdSa^!(V5K*oZt@M zg8tfpc-^Vlz8oGozkHc!!Hrbm=4Q6^W}(<+eS3HH^(vl)&#Ovr3&f~|P@D%L`9})9RITu7g?!fzATND(@BNRJ?Q73I`FSLC z={lN@+<4jVB4^kS%_pwEa=5*Y=I#Efs2kpPTN(=!`w7%j6530QdP>SYuPSGj`8n9u6{jCY2x2Z(X2gANORmC{U=%k1`?+K$s++!IRu>{*Ac zIC&Z(_NKxfDB7M&yXOLe^8Qt3NU+ul4?IcmITHM!(_ZP- zsOkV!_M%0l{T6Mv1qzTCx-!E8YOR(6zGT=co(3ufEh;@cr2TdfK%@$l=L&+taRZ8c!c})57VRm>kH52ZckB$}4V+#FC!go%5BKi`h9^`?IKtLAB zkr!IgFdV)d4UKIid&AjzG>)t^J6@@7uLd?^S~X)YD4}*llA!PC`E-oFNt`ew-g=DU+4vRMQp?f$414O90oM> zJ?GKj)W%$Icx53pvz~-CoZqzQ-bFrv_W{PJ87lhAQeQ<{@Pq8)=<#Afe{Dj(p7?Bk w8kd}(K25y7Y&>^mJym!!m+v;;-rfCuCqpNDeLL_s!$1F!tMH1OfPW(Y24`Wl+W-In literal 0 HcmV?d00001 diff --git a/plugins/engine-datafusion/src/test/resources/substrait_plan.pb b/plugins/engine-datafusion/src/test/resources/substrait_plan.pb deleted file mode 100644 index 8cba9595418ca141020b555d23dd8f579a7c3d0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1409 zcmai!-Hy^g6vx?8pd46=XJvt|>uUYRZ?6oG;H57xDecHsp{+B+ntdPN!o+xQ;scoY z1}5HkuhW*op_a(SgPVofBW9Q`B z>GiW4H{Dye@7%q2|H0(pqsLF4K6{S8O#Er$Hxs^^_{9X6dHy>d1uRUUTW}H!1;fow z#6FiYjOI**OAbfHfmEJaN#@4^hqk{6d8E>q&Kk26+mEA&`znm1yt@~0slv$1D*E4j zy3bqqV#ao|&y`A8cGk`Cf(xkwVX*X+f6fCYRtwG&5ym1^m(Ua3=i!B}&n^|0FcA7J z>06mEcz$m-$FL|Tr2$8R%Os9u8o4_<$aKa$wXHlc=lR5I%pUQ$*pzy4UEi53eGpw( zCeUV#iTDEx1E}i-KOR8yt!Wv31I$UbzTR@xNvW3iWNYQglw|%Vd3}H0K@&&Dv!u ze`G|vBqO#rGUASmSS=%#WW;J2ai5I1S4Jc<;#NlN6#nUt819h~D`eCeg^akB5mOmo R^!l$R5O~Uavr0cae*wP;XKMfe diff --git a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java index 70e0002608fe2..d7d6ddffae385 100644 --- a/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java +++ b/server/src/internalClusterTest/java/org/opensearch/index/shard/IndexShardIT.java @@ -733,7 +733,6 @@ public static final IndexShard newIndexShard( clusterService.getClusterApplierService(), MergedSegmentPublisher.EMPTY, ReferencedSegmentsPublisher.EMPTY, - null, null ); } diff --git a/server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java b/server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java index dbff328d029ee..7edbfc7834a71 100644 --- a/server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java +++ b/server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java @@ -1515,7 +1515,7 @@ public void testPitCreatedOnReplica() throws Exception { final PitReaderContext pitReaderContext = searchService.getPitReaderContext( decode(registry, pitResponse.getId()).shards().get(replicaShard.routingEntry().shardId()).getSearchContextId() ); - try (final Engine.Searcher searcher = pitReaderContext.acquireSearcher("test")) { + try (final Engine.Searcher searcher = (Engine.Searcher) pitReaderContext.acquireSearcher("test")) { final StandardDirectoryReader standardDirectoryReader = NRTReplicationReaderManager.unwrapStandardReader( (OpenSearchDirectoryReader) searcher.getDirectoryReader() ); diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index 7a08dd16983bc..884dbce95e8fd 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -48,8 +48,12 @@ public abstract class SearchExecEngine execute(C context) throws IOException; + public abstract Map executeQueryPhase(C context) throws IOException; + + /** + * execute Fetch Phase + */ + public abstract void executeFetchPhase(C context) throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java index 452922a98ec5e..ad702460f50af 100644 --- a/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/BooleanFieldMapper.java @@ -435,7 +435,7 @@ protected void canDeriveSourceInternal() { * 2. When using stored field, for multi value field order would be preserved */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, new SortedNumericDocValuesFetcher(mappedFieldType, simpleName()) { @Override public Object convert(Object value) { diff --git a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java index e77849404a585..b45f17130552d 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/DateFieldMapper.java @@ -248,7 +248,7 @@ protected void canDeriveSourceInternal() { * "format" */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, new SortedNumericDocValuesFetcher(mappedFieldType, simpleName()) { @Override public Object convert(Object value) { diff --git a/server/src/main/java/org/opensearch/index/mapper/DerivedFieldGenerator.java b/server/src/main/java/org/opensearch/index/mapper/DerivedFieldGenerator.java index 383bd25dc7d0c..9f6de67843932 100644 --- a/server/src/main/java/org/opensearch/index/mapper/DerivedFieldGenerator.java +++ b/server/src/main/java/org/opensearch/index/mapper/DerivedFieldGenerator.java @@ -12,6 +12,7 @@ import org.opensearch.core.xcontent.XContentBuilder; import java.io.IOException; +import java.util.List; import java.util.Objects; /** @@ -58,4 +59,13 @@ public FieldValueType getDerivedFieldPreference() { public void generate(XContentBuilder builder, LeafReader reader, int docId) throws IOException { fieldValueFetcher.write(builder, fieldValueFetcher.fetch(reader, docId)); } + + /** + * Generate the derived field value based on the preference of derived field and field value type + * @param builder - builder to store the derived source filed + * @param values - values for which we want to generate the source + */ + public void generate(XContentBuilder builder, List values) throws IOException { + fieldValueFetcher.write(builder, values); + } } diff --git a/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java index 6089a7a5ca9b8..3dd2d614b3795 100644 --- a/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/FieldMapper.java @@ -609,7 +609,7 @@ protected Explicit ignoreMalformed() { * Method to create derived source generator for this field mapper, it is illegal to enable the * derived source feature and not implement this method for a field mapper */ - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return null; } diff --git a/server/src/main/java/org/opensearch/index/mapper/GeoPointFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/GeoPointFieldMapper.java index 2910bd2856d2f..89844e14a351d 100644 --- a/server/src/main/java/org/opensearch/index/mapper/GeoPointFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/GeoPointFieldMapper.java @@ -219,7 +219,7 @@ protected void canDeriveSourceInternal() { * 4. When using stored field, order and duplicate values would be preserved */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, new SortedNumericDocValuesFetcher(mappedFieldType, simpleName()) { @Override public Object convert(Object value) { diff --git a/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java index ad573d9ea6741..b58f20b3642a7 100644 --- a/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/IpFieldMapper.java @@ -199,7 +199,7 @@ protected void canDeriveSourceInternal() { * 2. When using stored field, order and duplicate values would be preserved */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator( mappedFieldType, new SortedSetDocValuesFetcher(mappedFieldType, simpleName()), diff --git a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java index bfe9151150aba..7514345e3ecf4 100644 --- a/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/KeywordFieldMapper.java @@ -294,7 +294,7 @@ protected void canDeriveSourceInternal() { * 2. When using stored field, order and duplicate values would be preserved */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator( mappedFieldType, new SortedSetDocValuesFetcher(mappedFieldType, simpleName()), diff --git a/server/src/main/java/org/opensearch/index/mapper/Mapper.java b/server/src/main/java/org/opensearch/index/mapper/Mapper.java index 3b9024162656f..d6f5bdcbd9af2 100644 --- a/server/src/main/java/org/opensearch/index/mapper/Mapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/Mapper.java @@ -319,4 +319,8 @@ public void canDeriveSource() { public void deriveSource(XContentBuilder builder, LeafReader leafReader, int docId) throws IOException { throw new UnsupportedOperationException("Derived source field is not supported for [" + name() + "] field"); } + + public DerivedFieldGenerator derivedFieldGenerator() throws IOException { + throw new UnsupportedOperationException("Converting [" + name() + "] is not supported for [" + name() + "] field"); + } } diff --git a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java index 0cb637fae9993..a03e69a05acce 100644 --- a/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/NumberFieldMapper.java @@ -210,10 +210,21 @@ public boolean isDataCubeMetricSupported() { * compared to stored field(stored as float) */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, new SortedNumericDocValuesFetcher(mappedFieldType, simpleName()) { @Override public Object convert(Object value) { + if(value instanceof Integer) { + Integer val = (Integer) value; + + return switch (type) { + case HALF_FLOAT -> HalfFloatPoint.sortableShortToHalfFloat(val.shortValue()); + case FLOAT -> NumericUtils.sortableIntToFloat(val); + case DOUBLE -> NumericUtils.sortableLongToDouble(val); + case BYTE, SHORT, INTEGER, LONG -> val; + case UNSIGNED_LONG -> Numbers.toUnsignedBigInteger(val); + }; + } Long val = (Long) value; if (val == null) { return null; diff --git a/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java index bc4fe901935d4..edab9b64488d2 100644 --- a/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/TextFieldMapper.java @@ -1242,7 +1242,7 @@ protected void canDeriveSourceInternal() {} * Derive source using stored field, which would always be present for derived source enabled index field */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, null, new StoredFieldFetcher(mappedFieldType, simpleName())) { @Override public FieldValueType getDerivedFieldPreference() { diff --git a/server/src/main/java/org/opensearch/index/mapper/WildcardFieldMapper.java b/server/src/main/java/org/opensearch/index/mapper/WildcardFieldMapper.java index b10371f301a59..2c1e532542c63 100644 --- a/server/src/main/java/org/opensearch/index/mapper/WildcardFieldMapper.java +++ b/server/src/main/java/org/opensearch/index/mapper/WildcardFieldMapper.java @@ -928,7 +928,7 @@ protected void canDeriveSourceInternal() { * 1. When using doc values, for multi value field, result would be deduplicated and in sorted order */ @Override - protected DerivedFieldGenerator derivedFieldGenerator() { + public DerivedFieldGenerator derivedFieldGenerator() { return new DerivedFieldGenerator(mappedFieldType, new SortedSetDocValuesFetcher(mappedFieldType, simpleName()) { @Override public Object convert(Object value) { diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index d8f19ed6577de..feffce9aeab25 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -83,7 +83,6 @@ import org.opensearch.index.IndexService; import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.Engine; -import org.opensearch.index.engine.SearchExecutionEngine; import org.opensearch.index.engine.EngineSearcherSupplier; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.mapper.DerivedFieldResolver; @@ -141,12 +140,7 @@ import org.opensearch.search.profile.ProfileShardResult; import org.opensearch.search.profile.Profilers; import org.opensearch.search.profile.SearchProfileShardResults; -import org.opensearch.search.query.QueryPhase; -import org.opensearch.search.query.QueryRewriterRegistry; -import org.opensearch.search.query.QueryPhaseExecutor; -import org.opensearch.search.query.QuerySearchRequest; -import org.opensearch.search.query.QuerySearchResult; -import org.opensearch.search.query.ScrollQuerySearchResult; +import org.opensearch.search.query.*; import org.opensearch.search.rescore.RescorerBuilder; import org.opensearch.search.searchafter.SearchAfterBuilder; import org.opensearch.search.sort.FieldSortBuilder; @@ -166,6 +160,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -851,8 +846,11 @@ private SearchPhaseResult executeQueryPhase( // TODO Execute plan here // TODO : figure out how to tie this byte[] substraitQuery = request.source().queryPlanIR(); + context.queryResult().from(context.from()); + context.queryResult().size(context.size()); if (substraitQuery != null) { - Map result = searchExecEngine.execute(context); + // setDFResults in context + Map result = searchExecEngine.executeQueryPhase(context); context.setDFResults(result); } @@ -1057,7 +1055,7 @@ public void executeFetchPhase( searchContext.scrollContext().lastEmittedDoc = request.lastEmittedDoc(); } searchContext.assignRescoreDocIds(readerContext.getRescoreDocIds(request.getRescoreDocIds())); - searchContext.searcher().setAggregatedDfs(readerContext.getAggregatedDfs(request.getAggregatedDfs())); +// searchContext.searcher().setAggregatedDfs(readerContext.getAggregatedDfs(request.getAggregatedDfs())); searchContext.docIdsToLoad(request.docIds(), 0, request.docIdsSize()); try ( SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(searchContext, true, System.nanoTime()) @@ -1284,7 +1282,10 @@ final SearchContext createContext( SearchShardTask task, boolean includeAggregations ) throws IOException { - return createContext(readerContext, request, task, includeAggregations, false, null); + SearchExecEngine searchExecEngine = readerContext.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + return createContext(readerContext, request, task, includeAggregations, false, searchExecEngine); } private SearchContext createContext( diff --git a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java index 836fa4509531f..a929a8003deb3 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java +++ b/server/src/main/java/org/opensearch/search/aggregations/SearchResultsCollector.java @@ -9,6 +9,8 @@ package org.opensearch.search.aggregations; import org.opensearch.common.annotation.ExperimentalApi; +import java.io.IOException; + /** * Experimental * @opensearch.internal @@ -20,5 +22,5 @@ public interface SearchResultsCollector { /** * collect */ - void collect(T value); + void collect(T value) throws IOException; } diff --git a/server/src/main/java/org/opensearch/search/fetch/FetchPhase.java b/server/src/main/java/org/opensearch/search/fetch/FetchPhase.java index 88b8113721a91..63cdd51086aef 100644 --- a/server/src/main/java/org/opensearch/search/fetch/FetchPhase.java +++ b/server/src/main/java/org/opensearch/search/fetch/FetchPhase.java @@ -52,6 +52,7 @@ import org.opensearch.common.xcontent.support.XContentMapValues; import org.opensearch.core.tasks.TaskCancelledException; import org.opensearch.core.xcontent.MediaType; +import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.fieldvisitor.CustomFieldsVisitor; import org.opensearch.index.fieldvisitor.FieldsVisitor; import org.opensearch.index.mapper.DocumentMapper; @@ -106,10 +107,26 @@ public FetchPhase(List fetchSubPhases) { this.fetchSubPhases[fetchSubPhases.size()] = new InnerHitsPhase(this); } + private static final Logger logger = LogManager.getLogger(FetchPhase.class); + public void execute(SearchContext context) { execute(context, "fetch"); } + public void executeFetchPhase(SearchContext context) { + try { + SearchExecEngine searchExecEngine = context.readerContext().indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + + + searchExecEngine.executeFetchPhase(context); + } catch (RuntimeException | IOException e) { + logger.error(e); + throw new RuntimeException(e); + } + }; + public void execute(SearchContext context, String profileDescription) { FetchProfileBreakdown breakdown = null; FetchProfiler fetchProfiler = null; @@ -128,6 +145,11 @@ public void execute(SearchContext context, String profileDescription) { throw new TaskCancelledException("cancelled task with reason: " + context.getTask().getReasonCancelled()); } + if (context.request().source().queryPlanIR() != null) { + executeFetchPhase(context); + return; + } + if (context.docIdsToLoadSize() == 0) { // no individual hits to process, so we shortcut context.fetchResult() diff --git a/server/src/main/java/org/opensearch/search/lookup/SourceLookup.java b/server/src/main/java/org/opensearch/search/lookup/SourceLookup.java index 4644bcb3d9b92..caed44cd05971 100644 --- a/server/src/main/java/org/opensearch/search/lookup/SourceLookup.java +++ b/server/src/main/java/org/opensearch/search/lookup/SourceLookup.java @@ -126,6 +126,9 @@ public static Map sourceAsMap(BytesReference source) throws Open } public void setSegmentAndDocument(LeafReaderContext context, int docId) { + if (context == null) { + return; + } if (this.reader == context.reader() && this.docId == docId) { // if we are called with the same document, don't invalidate source return; diff --git a/server/src/main/java/org/opensearch/search/query/QueryPhase.java b/server/src/main/java/org/opensearch/search/query/QueryPhase.java index f68c751f19965..c86f540dc759d 100644 --- a/server/src/main/java/org/opensearch/search/query/QueryPhase.java +++ b/server/src/main/java/org/opensearch/search/query/QueryPhase.java @@ -157,11 +157,13 @@ public void execute(SearchContext searchContext) throws QueryPhaseExecutionExcep // here to make sure it happens during the QUERY phase aggregationProcessor.preProcess(searchContext.getOriginalContext()); - searchContext.queryResult() - .topDocs( - new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), Lucene.EMPTY_SCORE_DOCS), Float.NaN), - new DocValueFormat[0] - ); + if(Optional.ofNullable(searchContext.queryResult().topDocs().topDocs.totalHits).isEmpty() || searchContext.queryResult().topDocs().topDocs.totalHits.value() == 0) { + searchContext.queryResult() + .topDocs( + new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), Lucene.EMPTY_SCORE_DOCS), Float.NaN), + new DocValueFormat[0] + ); + } // boolean rescore = executeInternal(searchContext, queryPhaseSearcher); From ac4466db476d1c6f3bfb74d8df3ea3e1f673828a Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Mon, 10 Nov 2025 21:00:55 -0800 Subject: [PATCH 072/112] [Feature/datafusion] Add SingleNodeTestCase with clickbench queries (#19953) * Handle empty flush and ignore mapped types not defined in vsr. Signed-off-by: Marc Handalian * add setup to run clickbench tests as SingleNodeTestCases Signed-off-by: Marc Handalian * fix test name to match convention Signed-off-by: Marc Handalian * fix resource loading when executing DataFusionSingleNodeTests outside of intellij Signed-off-by: Marc Handalian * bump parquet version to match data format plugin Signed-off-by: Marc Handalian * Add 41 clickbench queries as DSL - fix 25 to not blow up the cluster Signed-off-by: Marc Handalian * fix build Signed-off-by: Marc Handalian --------- Signed-off-by: Marc Handalian --- .../fields/ParquetField.java | 6 +- .../writer/ParquetWriter.java | 4 + plugins/engine-datafusion/Cargo.toml | 2 +- plugins/engine-datafusion/jni/src/lib.rs | 2 + .../datafusion/DataFusionQueryJNI.java | 2 - .../datafusion/DataFusionSingleNodeTests.java | 113 ++++++ .../src/test/resources/clickbench.json | 1 + .../resources/clickbench_index_mapping.json | 323 ++++++++++++++++++ .../src/test/resources/q1.json | 1 + .../src/test/resources/q10.json | 1 + .../src/test/resources/q11.json | 1 + .../src/test/resources/q12.json | 1 + .../src/test/resources/q13.json | 1 + .../src/test/resources/q14.json | 1 + .../src/test/resources/q15.json | 1 + .../src/test/resources/q16.json | 1 + .../src/test/resources/q17.json | 1 + .../src/test/resources/q18.json | 1 + .../src/test/resources/q19.json | 1 + .../src/test/resources/q2.json | 1 + .../src/test/resources/q20.json | 1 + .../src/test/resources/q21.json | 1 + .../src/test/resources/q22.json | 1 + .../src/test/resources/q23.json | 1 + .../src/test/resources/q24.json | 1 + .../src/test/resources/q25.json | 1 + .../src/test/resources/q26.json | 1 + .../src/test/resources/q27.json | 1 + .../src/test/resources/q28.json | 1 + .../src/test/resources/q29.json | 1 + .../src/test/resources/q3.json | 1 + .../src/test/resources/q30.json | 1 + .../src/test/resources/q31.json | 1 + .../src/test/resources/q32.json | 1 + .../src/test/resources/q33.json | 1 + .../src/test/resources/q34.json | 1 + .../src/test/resources/q35.json | 1 + .../src/test/resources/q36.json | 1 + .../src/test/resources/q37.json | 1 + .../src/test/resources/q38.json | 1 + .../src/test/resources/q39.json | 1 + .../src/test/resources/q4.json | 1 + .../src/test/resources/q40.json | 1 + .../src/test/resources/q41.json | 1 + .../src/test/resources/q5.json | 1 + .../src/test/resources/q6.json | 1 + .../src/test/resources/q7.json | 1 + .../src/test/resources/q8.json | 1 + .../src/test/resources/q9.json | 1 + .../replication/TransportWriteAction.java | 4 +- 50 files changed, 492 insertions(+), 6 deletions(-) create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java create mode 100644 plugins/engine-datafusion/src/test/resources/clickbench.json create mode 100644 plugins/engine-datafusion/src/test/resources/clickbench_index_mapping.json create mode 100644 plugins/engine-datafusion/src/test/resources/q1.json create mode 100644 plugins/engine-datafusion/src/test/resources/q10.json create mode 100644 plugins/engine-datafusion/src/test/resources/q11.json create mode 100644 plugins/engine-datafusion/src/test/resources/q12.json create mode 100644 plugins/engine-datafusion/src/test/resources/q13.json create mode 100644 plugins/engine-datafusion/src/test/resources/q14.json create mode 100644 plugins/engine-datafusion/src/test/resources/q15.json create mode 100644 plugins/engine-datafusion/src/test/resources/q16.json create mode 100644 plugins/engine-datafusion/src/test/resources/q17.json create mode 100644 plugins/engine-datafusion/src/test/resources/q18.json create mode 100644 plugins/engine-datafusion/src/test/resources/q19.json create mode 100644 plugins/engine-datafusion/src/test/resources/q2.json create mode 100644 plugins/engine-datafusion/src/test/resources/q20.json create mode 100644 plugins/engine-datafusion/src/test/resources/q21.json create mode 100644 plugins/engine-datafusion/src/test/resources/q22.json create mode 100644 plugins/engine-datafusion/src/test/resources/q23.json create mode 100644 plugins/engine-datafusion/src/test/resources/q24.json create mode 100644 plugins/engine-datafusion/src/test/resources/q25.json create mode 100644 plugins/engine-datafusion/src/test/resources/q26.json create mode 100644 plugins/engine-datafusion/src/test/resources/q27.json create mode 100644 plugins/engine-datafusion/src/test/resources/q28.json create mode 100644 plugins/engine-datafusion/src/test/resources/q29.json create mode 100644 plugins/engine-datafusion/src/test/resources/q3.json create mode 100644 plugins/engine-datafusion/src/test/resources/q30.json create mode 100644 plugins/engine-datafusion/src/test/resources/q31.json create mode 100644 plugins/engine-datafusion/src/test/resources/q32.json create mode 100644 plugins/engine-datafusion/src/test/resources/q33.json create mode 100644 plugins/engine-datafusion/src/test/resources/q34.json create mode 100644 plugins/engine-datafusion/src/test/resources/q35.json create mode 100644 plugins/engine-datafusion/src/test/resources/q36.json create mode 100644 plugins/engine-datafusion/src/test/resources/q37.json create mode 100644 plugins/engine-datafusion/src/test/resources/q38.json create mode 100644 plugins/engine-datafusion/src/test/resources/q39.json create mode 100644 plugins/engine-datafusion/src/test/resources/q4.json create mode 100644 plugins/engine-datafusion/src/test/resources/q40.json create mode 100644 plugins/engine-datafusion/src/test/resources/q41.json create mode 100644 plugins/engine-datafusion/src/test/resources/q5.json create mode 100644 plugins/engine-datafusion/src/test/resources/q6.json create mode 100644 plugins/engine-datafusion/src/test/resources/q7.json create mode 100644 plugins/engine-datafusion/src/test/resources/q8.json create mode 100644 plugins/engine-datafusion/src/test/resources/q9.json diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java index 714b0e6a45aa8..dc1a7e369d430 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/fields/ParquetField.java @@ -75,7 +75,11 @@ public final void createField(final MappedFieldType mappedFieldType, Objects.requireNonNull(managedVSR, "ManagedVSR cannot be null"); if (mappedFieldType.isColumnar()) { - addToGroup(mappedFieldType, managedVSR, parseValue); + // TODO: support dynamic mapping update + // for now ignore the field + if (managedVSR.getVector(mappedFieldType.name()) != null) { + addToGroup(mappedFieldType, managedVSR, parseValue); + } } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java index eec04ef35650a..10a29c00f037a 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java @@ -54,6 +54,10 @@ public WriteResult addDoc(ParquetDocumentInput d) throws IOException { public FileInfos flush(FlushIn flushIn) throws IOException { String fileName = vsrManager.flush(flushIn); FileInfos fileInfos = new FileInfos(); + // no data flushed + if (fileName == null) { + return fileInfos; + } WriterFileSet writerFileSet = new WriterFileSet(Path.of(fileName).getParent(), writerGeneration); writerFileSet.add(fileName); fileInfos.putWriterFileSet(PARQUET_DATA_FORMAT, writerFileSet); diff --git a/plugins/engine-datafusion/Cargo.toml b/plugins/engine-datafusion/Cargo.toml index 888170a176e53..5813bc5cc27d4 100644 --- a/plugins/engine-datafusion/Cargo.toml +++ b/plugins/engine-datafusion/Cargo.toml @@ -40,7 +40,7 @@ thiserror = "1.0" # Logging log = "0.4" # Parquet support -parquet = "53.0.0" +parquet = "54.0.0" # Object store for file access object_store = "=0.12.3" diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index cf5ac2179db87..dcd4fd9a1c796 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -385,6 +385,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute }; let dataframe = ctx.execute_logical_plan(logical_plan).await.expect("Failed to execute logical plan"); + let physical_plan = dataframe.clone().create_physical_plan().await.unwrap(); + println!("Physical Plan:\n{}", datafusion::physical_plan::displayable(physical_plan.as_ref()).indent(true)); let stream = match dataframe.execute_stream().await { Ok(stream) => { stream } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index d8bbbed9f0317..8294bbeb9cf33 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -8,8 +8,6 @@ package org.opensearch.datafusion; -import org.opensearch.datafusion.search.QueryCallback; - /** * JNI wrapper for DataFusion operations */ diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java new file mode 100644 index 0000000000000..1ddce6e5b4342 --- /dev/null +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java @@ -0,0 +1,113 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import com.parquet.parquetdataformat.ParquetDataFormatPlugin; +import org.opensearch.action.search.SearchResponse; +import org.opensearch.cluster.metadata.IndexMetadata; +import org.opensearch.common.settings.Settings; +import org.opensearch.common.xcontent.json.JsonXContent; +import org.opensearch.core.xcontent.MediaTypeRegistry; +import org.opensearch.core.xcontent.XContentParser; +import org.opensearch.plugins.Plugin; +import org.opensearch.search.builder.SearchSourceBuilder; +import org.opensearch.test.OpenSearchIntegTestCase; +import org.opensearch.test.OpenSearchSingleNodeTestCase; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.Collection; +import java.util.List; +import java.util.Locale; + +@OpenSearchIntegTestCase.ClusterScope(scope = OpenSearchIntegTestCase.Scope.TEST) +public class DataFusionSingleNodeTests extends OpenSearchSingleNodeTestCase { + + private static final String INDEX_MAPPING_JSON = "clickbench_index_mapping.json"; + private static final String DATA = "clickbench.json"; + private final String indexName = "hits"; + + @Override + protected Collection> getPlugins() { + return List.of(DataFusionPlugin.class, ParquetDataFormatPlugin.class); + } + + public void testClickBenchQueries() throws IOException { + String mappings = fileToString( + INDEX_MAPPING_JSON, + false + ); + createIndexWithMappingSource( + indexName, + Settings.builder() + .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1) + .put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0) + .put("index.refresh_interval", -1) + .build(), + mappings + ); + String req = fileToString( + DATA, + false + ); + System.out.println(req.trim()); + client().prepareIndex("hits").setSource(req, MediaTypeRegistry.JSON).get(); + client().admin().indices().prepareRefresh().get(); + client().admin().indices().prepareFlush().get(); + client().admin().indices().prepareFlush().get(); + + // TODO: run in a loop + String sourceFile = fileToString( + "q25.json", + false + ); + SearchSourceBuilder source = new SearchSourceBuilder(); + XContentParser parser = createParser(JsonXContent.jsonXContent, + sourceFile); + source.parseXContent(parser); + SearchResponse response = client().prepareSearch(indexName).setSource(source).get(); + // TODO: Match expected results... + System.out.println(response); + } + + static String getResourceFilePath(String relPath) { + return DataFusionSingleNodeTests.class.getClassLoader().getResource(relPath).getPath(); + } + + static String fileToString( + final String filePathFromProjectRoot, final boolean removeNewLines) throws IOException { + + final String absolutePath = getResourceFilePath(filePathFromProjectRoot); + + try (final InputStream stream = new FileInputStream(absolutePath); + final Reader streamReader = new InputStreamReader(stream, StandardCharsets.UTF_8); + final BufferedReader br = new BufferedReader(streamReader)) { + + final StringBuilder stringBuilder = new StringBuilder(); + String line = br.readLine(); + + while (line != null) { + + stringBuilder.append(line); + if (!removeNewLines) { + stringBuilder.append(String.format(Locale.ROOT, "%n")); + } + line = br.readLine(); + } + + return stringBuilder.toString(); + } + } + +} diff --git a/plugins/engine-datafusion/src/test/resources/clickbench.json b/plugins/engine-datafusion/src/test/resources/clickbench.json new file mode 100644 index 0000000000000..ff25538d027da --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/clickbench.json @@ -0,0 +1 @@ +{"WatchID":"9110818468285196899","JavaEnable":0,"Title":"","GoodEvent":1,"EventTime":"2013-07-14 20:38:47","EventDate":"2013-07-15","CounterID":17,"ClientIP":-1216690514,"RegionID":839,"UserID":"-2461439046089301801","CounterClass":0,"OS":0,"UserAgent":0,"URL":"","Referer":"https://example.org/about","IsRefresh":0,"RefererCategoryID":0,"RefererRegionID":0,"URLCategoryID":0,"URLRegionID":0,"ResolutionWidth":0,"ResolutionHeight":0,"ResolutionDepth":0,"FlashMajor":0,"FlashMinor":0,"FlashMinor2":"","NetMajor":0,"NetMinor":0,"UserAgentMajor":0,"UserAgentMinor":"�O","CookieEnable":0,"JavascriptEnable":0,"IsMobile":0,"MobilePhone":0,"MobilePhoneModel":"","Params":"","IPNetworkID":3793327,"TraficSourceID":4,"SearchEngineID":0,"SearchPhrase":"ha","AdvEngineID":0,"IsArtifical":0,"WindowClientWidth":0,"WindowClientHeight":0,"ClientTimeZone":-1,"ClientEventTime":"1971-01-01 14:16:06","SilverlightVersion1":0,"SilverlightVersion2":0,"SilverlightVersion3":0,"SilverlightVersion4":0,"PageCharset":"","CodeVersion":0,"IsLink":0,"IsDownload":0,"IsNotBounce":0,"FUniqID":"0","OriginalURL":"","HID":0,"IsOldCounter":0,"IsEvent":0,"IsParameter":0,"DontCountHits":0,"WithHash":0,"HitColor":"5","LocalEventTime":"2013-07-15 10:47:34","Age":0,"Sex":0,"Income":0,"Interests":0,"Robotness":0,"RemoteIP":-1001831330,"WindowName":-1,"OpenerName":-1,"HistoryLength":-1,"BrowserLanguage":"�","BrowserCountry":"�\f","SocialNetwork":"","SocialAction":"","HTTPError":0,"SendTiming":0,"DNSTiming":0,"ConnectTiming":0,"ResponseStartTiming":0,"ResponseEndTiming":0,"FetchTiming":0,"SocialSourceNetworkID":0,"SocialSourcePage":"","ParamPrice":"0","ParamOrderID":"","ParamCurrency":"NH\u001C","ParamCurrencyID":0,"OpenstatServiceName":"","OpenstatCampaignID":"","OpenstatAdID":"","OpenstatSourceID":"","UTMSource":"","UTMMedium":"","UTMCampaign":"","UTMContent":"","UTMTerm":"","FromTag":"","HasGCLID":0,"RefererHash":"-296158784638538920","URLHash":"-8417682003818480435","CLID":0} diff --git a/plugins/engine-datafusion/src/test/resources/clickbench_index_mapping.json b/plugins/engine-datafusion/src/test/resources/clickbench_index_mapping.json new file mode 100644 index 0000000000000..c12293b20b146 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/clickbench_index_mapping.json @@ -0,0 +1,323 @@ +{ + "properties": { + "AdvEngineID": { + "type": "short" + }, + "Age": { + "type": "short" + }, + "BrowserCountry": { + "type": "keyword" + }, + "SocialNetwork": { + "type": "keyword" + }, + "SocialAction": { + "type": "keyword" + }, + "BrowserLanguage": { + "type": "keyword" + }, + "CLID": { + "type": "integer" + }, + "ClientEventTime": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time ||epoch_millis" + }, + "ClientIP": { + "type": "integer" + }, + "ClientTimeZone": { + "type": "short" + }, + "CodeVersion": { + "type": "integer" + }, + "ConnectTiming": { + "type": "integer" + }, + "CookieEnable": { + "type": "short" + }, + "CounterClass": { + "type": "short" + }, + "CounterID": { + "type": "integer" + }, + "DNSTiming": { + "type": "integer" + }, + "DontCountHits": { + "type": "short" + }, + "EventDate": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time ||epoch_millis" + }, + "EventTime": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time ||epoch_millis" + }, + "FUniqID": { + "type": "long" + }, + "FetchTiming": { + "type": "integer" + }, + "FlashMajor": { + "type": "short" + }, + "FlashMinor": { + "type": "short" + }, + "FlashMinor2": { + "type": "short" + }, + "FromTag": { + "type": "keyword" + }, + "GoodEvent": { + "type": "short" + }, + "HID": { + "type": "integer" + }, + "HTTPError": { + "type": "short" + }, + "HasGCLID": { + "type": "short" + }, + "HistoryLength": { + "type": "short" + }, + "HitColor": { + "type": "keyword" + }, + "IPNetworkID": { + "type": "integer" + }, + "Income": { + "type": "short" + }, + "Interests": { + "type": "short" + }, + "IsArtifical": { + "type": "short" + }, + "IsDownload": { + "type": "short" + }, + "IsEvent": { + "type": "short" + }, + "IsLink": { + "type": "short" + }, + "IsMobile": { + "type": "short" + }, + "IsNotBounce": { + "type": "short" + }, + "IsOldCounter": { + "type": "short" + }, + "IsParameter": { + "type": "short" + }, + "IsRefresh": { + "type": "short" + }, + "JavaEnable": { + "type": "short" + }, + "JavascriptEnable": { + "type": "short" + }, + "LocalEventTime": { + "type": "date", + "format": "yyyy-MM-dd HH:mm:ss||strict_date_optional_time ||epoch_millis" + }, + "MobilePhone": { + "type": "short" + }, + "MobilePhoneModel": { + "type": "keyword" + }, + "NetMajor": { + "type": "short" + }, + "NetMinor": { + "type": "short" + }, + "OS": { + "type": "short" + }, + "OpenerName": { + "type": "integer" + }, + "OpenstatAdID": { + "type": "keyword" + }, + "OpenstatCampaignID": { + "type": "keyword" + }, + "OpenstatServiceName": { + "type": "keyword" + }, + "OpenstatSourceID": { + "type": "keyword" + }, + "OriginalURL": { + "type": "keyword" + }, + "PageCharset": { + "type": "keyword" + }, + "ParamCurrency": { + "type": "keyword" + }, + "ParamCurrencyID": { + "type": "short" + }, + "ParamOrderID": { + "type": "keyword" + }, + "ParamPrice": { + "type": "long" + }, + "Params": { + "type": "keyword" + }, + "Referer": { + "type": "keyword" + }, + "RefererCategoryID": { + "type": "short" + }, + "RefererHash": { + "type": "long" + }, + "RefererRegionID": { + "type": "integer" + }, + "RegionID": { + "type": "integer" + }, + "RemoteIP": { + "type": "integer" + }, + "ResolutionDepth": { + "type": "short" + }, + "ResolutionHeight": { + "type": "short" + }, + "ResolutionWidth": { + "type": "short" + }, + "ResponseEndTiming": { + "type": "integer" + }, + "ResponseStartTiming": { + "type": "integer" + }, + "Robotness": { + "type": "short" + }, + "SearchEngineID": { + "type": "short" + }, + "SearchPhrase": { + "type": "keyword" + }, + "SendTiming": { + "type": "integer" + }, + "Sex": { + "type": "short" + }, + "SilverlightVersion1": { + "type": "short" + }, + "SilverlightVersion2": { + "type": "short" + }, + "SilverlightVersion3": { + "type": "integer" + }, + "SilverlightVersion4": { + "type": "short" + }, + "SocialSourceNetworkID": { + "type": "short" + }, + "SocialSourcePage": { + "type": "keyword" + }, + "Title": { + "type": "keyword" + }, + "TraficSourceID": { + "type": "short" + }, + "URL": { + "type": "keyword" + }, + "URLCategoryID": { + "type": "short" + }, + "URLHash": { + "type": "long" + }, + "URLRegionID": { + "type": "integer" + }, + "UTMCampaign": { + "type": "keyword" + }, + "UTMContent": { + "type": "keyword" + }, + "UTMMedium": { + "type": "keyword" + }, + "UTMSource": { + "type": "keyword" + }, + "UTMTerm": { + "type": "keyword" + }, + "UserAgent": { + "type": "short" + }, + "UserAgentMajor": { + "type": "short" + }, + "UserAgentMinor": { + "type": "keyword" + }, + "UserID": { + "type": "long" + }, + "WatchID": { + "type": "long" + }, + "WindowClientHeight": { + "type": "short" + }, + "WindowClientWidth": { + "type": "short" + }, + "WindowName": { + "type": "integer" + }, + "WithHash": { + "type": "short" + } + } +} diff --git a/plugins/engine-datafusion/src/test/resources/q1.json b/plugins/engine-datafusion/src/test/resources/q1.json new file mode 100644 index 0000000000000..f014bb0906380 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q1.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"count()":{"value_count":{"field":"_index"}}},"query_plan_ir":"CiUIARIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sEhAaDggBEAEaBmNvdW50OiABGrkQErYQCqoQGqcQCgIKABKbECKYEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGgAiDgoMCAEgAyoEOgIQAjABGAAgkE4SB2NvdW50KCkyEhBNKg5zdWJzdHJhaXQtamF2YUI2CAESMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q10.json b/plugins/engine-datafusion/src/test/resources/q10.json new file mode 100644 index 0000000000000..ebaf115172970 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q10.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"RegionID":{"terms":{"field":"RegionID","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"sum(AdvEngineID)":"desc"},{"_key":"asc"}]},"aggregations":{"sum(AdvEngineID)":{"sum":{"field":"AdvEngineID"}},"c":{"value_count":{"field":"_index"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}},"dc(UserID)":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IAhIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKHggBEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIZGhcIARABGg9pc19ub3RfbnVsbDphbnkgARIRGg8IAhACGgdzdW06aTE2IAISEBoOCAMQAxoGY291bnQ6IAMSExoRCAMQBBoJY291bnQ6YW55IAMajxQSjBQKqBMapRMKAgoAEpkTKpYTCgIKABL/Ehr8EgoCCgAS8RIq7hIKAgoAEtcSOtQSCgoSCAoGBgcICQoLEv8RIvwRCgIKABLhEDreEAoIEgYKBGlqa2wSoxASoBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoYGhYIARoECgIQAiIMGgoSCAoEEgIIQSIAGgoSCAoEEgIIQSIAGggSBgoCEgAiABoKEggKBBICCEUiABoKEggKBBICCGMiABoKCggSBgoCEgAiACIcChoIAiADKgQ6AhABMAE6DBoKEggKBBICCAEiACIOCgwIAyADKgQ6AhACMAEiHAoaCAIgAyoEOgIQATABOgwaChIICgQSAggCIgAiHAoaCAQgAyoEOgIQAjABOgwaChIICgQSAggCIgAiHAoaCAQgAyoEOgIQAjACOgwaChIICgQSAggDIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaChIICgQSAggEIgAaCBIGCgISACIAGg4KChIICgQSAggBIgAQBBgAIAoaDgoKEggKBBICCAEiABAEGAAgkE4SEHN1bShBZHZFbmdpbmVJRCkSAWMSGGF2ZyhSZXNvbHV0aW9uV2lkdGgpX3N1bRIaYXZnKFJlc29sdXRpb25XaWR0aClfY291bnQSCmRjKFVzZXJJRCkSCFJlZ2lvbklEMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQjYIAxIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q11.json b/plugins/engine-datafusion/src/test/resources/q11.json new file mode 100644 index 0000000000000..a88fddf2500de --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q11.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"must_not":[{"term":{"MobilePhoneModel":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"MobilePhoneModel":{"terms":{"field":"MobilePhoneModel","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"u":"desc"},{"_key":"asc"}]},"aggregations":{"u":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARITGhEIAhADGgljb3VudDphbnkgAhq1EhKyEgqaEhqXEgoCCgASixIqiBIKAgoAEvMRGvARCgIKABLlESriEQoCCgASzRE6yhEKBhIECgICAxKpESKmEQoCCgAS9RA68hAKBhIECgJpahLPEBLMEAoCCgASqxASqBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxogGh4IARoECgIQASIMGgoSCAoEEgIILSIAIgYaBAoCYgAaGBoWCAIaBAoCEAIiDBoKEggKBBICCC0iABoKEggKBBICCC0iABoKEggKBBICCGMiABoKCggSBgoCEgAiACIcChoIAyADKgQ6AhACMAI6DBoKEggKBBICCAEiABoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgF1EhBNb2JpbGVQaG9uZU1vZGVsMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q12.json b/plugins/engine-datafusion/src/test/resources/q12.json new file mode 100644 index 0000000000000..b06be8c8f560b --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q12.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"filter":[{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"MobilePhone","boost":1.0}},{"exists":{"field":"MobilePhoneModel","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"must_not":[{"term":{"MobilePhoneModel":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"MobilePhone|MobilePhoneModel":{"multi_terms":{"terms":[{"field":"MobilePhone"},{"field":"MobilePhoneModel"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"u":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggBEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIbGhkIARABGhFub3RfZXF1YWw6YW55X2FueSABEhIaEAgCEAIaCGFuZDpib29sIAISGRoXCAEQAxoPaXNfbm90X251bGw6YW55IAESExoRCAMQBBoJY291bnQ6YW55IAMakhMSjxMK6hIa5xIKAgoAEtsSKtgSCgIKABLDEhrAEgoCCgAStRIqshIKAgoAEp0SOpoSCgcSBQoDAwQFEuwRIukRCgIKABKsETqpEQoHEgUKA2lqaxL5EBL2EAoCCgASqxASqBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxogGh4IARoECgIQASIMGgoSCAoEEgIILSIAIgYaBAoCYgAaQhpACAIaBAoCEAIiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIILCIAIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCC0iABoKEggKBBICCCwiABoKEggKBBICCC0iABoKEggKBBICCGMiABoWCggSBgoCEgAiAAoKEggKBBICCAEiACIcChoIBCADKgQ6AhACMAI6DBoKEggKBBICCAIiABoKEggKBBICCAIiABoIEgYKAhIAIgAaChIICgQSAggBIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgF1EgtNb2JpbGVQaG9uZRIQTW9iaWxlUGhvbmVNb2RlbDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkIsCAISKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggDEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q13.json b/plugins/engine-datafusion/src/test/resources/q13.json new file mode 100644 index 0000000000000..c105fdb1f6620 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q13.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"SearchPhrase":{"terms":{"field":"SearchPhrase","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAhADGgZjb3VudDogAhqWEhKTEgr/ERr8EQoCCgAS8BEq7REKAgoAEtgRGtURCgIKABLKESrHEQoCCgASshE6rxEKBhIECgICAxKOESKLEQoCCgAS6BA65RAKBRIDCgFpEs8QEswQCgIKABKrEBKoEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGiAaHggBGgQKAhABIgwaChIICgQSAghKIgAiBhoECgJiABoYGhYIAhoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIISiIAGgoKCBIGCgISACIAIg4KDAgDIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgFjEgxTZWFyY2hQaHJhc2UyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q14.json b/plugins/engine-datafusion/src/test/resources/q14.json new file mode 100644 index 0000000000000..28b0852e9724a --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q14.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"SearchPhrase":{"terms":{"field":"SearchPhrase","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"u":"desc"},{"_key":"asc"}]},"aggregations":{"u":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARITGhEIAhADGgljb3VudDphbnkgAhqxEhKuEgqaEhqXEgoCCgASixIqiBIKAgoAEvMRGvARCgIKABLlESriEQoCCgASzRE6yhEKBhIECgICAxKpESKmEQoCCgAS9RA68hAKBhIECgJpahLPEBLMEAoCCgASqxASqBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxogGh4IARoECgIQASIMGgoSCAoEEgIISiIAIgYaBAoCYgAaGBoWCAIaBAoCEAIiDBoKEggKBBICCEoiABoKEggKBBICCEoiABoKEggKBBICCGMiABoKCggSBgoCEgAiACIcChoIAyADKgQ6AhACMAI6DBoKEggKBBICCAEiABoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgF1EgxTZWFyY2hQaHJhc2UyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q15.json b/plugins/engine-datafusion/src/test/resources/q15.json new file mode 100644 index 0000000000000..1820e7823be44 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q15.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"filter":[{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must":[{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"SearchEngineID|SearchPhrase":{"multi_terms":{"terms":[{"field":"SearchEngineID"},{"field":"SearchPhrase"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggBEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIbGhkIARABGhFub3RfZXF1YWw6YW55X2FueSABEhIaEAgCEAIaCGFuZDpib29sIAISGRoXCAEQAxoPaXNfbm90X251bGw6YW55IAESEBoOCAMQBBoGY291bnQ6IAMa9hIS8xIKzxIazBIKAgoAEsASKr0SCgIKABKoEhqlEgoCCgASmhIqlxIKAgoAEoISOv8RCgcSBQoDAwQFEtERIs4RCgIKABKfETqcEQoGEgQKAmlqEvkQEvYQCgIKABKrEBKoEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGiAaHggBGgQKAhABIgwaChIICgQSAghKIgAiBhoECgJiABpCGkAIAhoECgIQAiIaGhgaFggDGgQKAhACIgwaChIICgQSAghJIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGhYKCBIGCgISACIACgoSCAoEEgIIASIAIg4KDAgEIAMqBDoCEAIwARoKEggKBBICCAIiABoIEgYKAhIAIgAaChIICgQSAggBIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgFjEg5TZWFyY2hFbmdpbmVJRBIMU2VhcmNoUGhyYXNlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIAhIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q16.json b/plugins/engine-datafusion/src/test/resources/q16.json new file mode 100644 index 0000000000000..e11a312b999ea --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q16.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"UserID":{"terms":{"field":"UserID","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"count()":"desc"},{"_key":"asc"}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIa6hES5xEK0xEa0BEKAgoAEsQRKsERCgIKABKsERqpEQoCCgASnhEqmxEKAgoAEoYROoMRCgYSBAoCAgMS4hAi3xAKAgoAErwQOrkQCgUSAwoBaRKjEBKgEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGhgaFggBGgQKAhACIgwaChIICgQSAghjIgAaChIICgQSAghjIgAaCgoIEgYKAhIAIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SB2NvdW50KCkSBlVzZXJJRDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkI2CAISMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q17.json b/plugins/engine-datafusion/src/test/resources/q17.json new file mode 100644 index 0000000000000..ddd90b46c1c23 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q17.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"UserID","boost":1.0}},{"exists":{"field":"SearchPhrase","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase","UserID"],"excludes":[]},"aggregations":{"UserID|SearchPhrase":{"multi_terms":{"terms":[{"field":"UserID"},{"field":"SearchPhrase"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhkaFwgCEAIaD2lzX25vdF9udWxsOmFueSACEhAaDggDEAMaBmNvdW50OiADGsgSEsUSCqMSGqASCgIKABKUEiqREgoCCgAS/BEa+REKAgoAEu4RKusRCgIKABLWETrTEQoHEgUKAwMEBRKlESKiEQoCCgAS8xA68BAKBhIECgJpahLNEBLKEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGkIaQAgBGgQKAhACIhoaGBoWCAIaBAoCEAIiDBoKEggKBBICCGMiACIaGhgaFggCGgQKAhACIgwaChIICgQSAghKIgAaChIICgQSAghjIgAaChIICgQSAghKIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAMgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SB2NvdW50KCkSBlVzZXJJRBIMU2VhcmNoUGhyYXNlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q18.json b/plugins/engine-datafusion/src/test/resources/q18.json new file mode 100644 index 0000000000000..bceb03a8dc53f --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q18.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"composite_buckets":{"composite":{"size":10,"sources":[{"SearchPhrase":{"terms":{"field":"SearchPhrase","missing_bucket":false,"order":"asc"}}},{"UserID":{"terms":{"field":"UserID","missing_bucket":false,"order":"asc"}}}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhkaFwgCEAIaD2lzX25vdF9udWxsOmFueSACEhAaDggDEAMaBmNvdW50OiADGpgSEpUSCvMRGvARCgIKABLkERrhEQoCCgAS1hE60xEKBxIFCgMDBAUSpREiohEKAgoAEvMQOvAQCgYSBAoCaWoSzRASyhAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxpCGkAIARoECgIQAiIaGhgaFggCGgQKAhACIgwaChIICgQSAghjIgAiGhoYGhYIAhoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIISiIAGhYKCBIGCgISACIACgoSCAoEEgIIASIAIg4KDAgDIAMqBDoCEAIwARoKEggKBBICCAIiABoIEgYKAhIAIgAaChIICgQSAggBIgAYACAKGAAgkE4SB2NvdW50KCkSBlVzZXJJRBIMU2VhcmNoUGhyYXNlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q19.json b/plugins/engine-datafusion/src/test/resources/q19.json new file mode 100644 index 0000000000000..b2985f01b6b73 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q19.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"SearchPhrase":{"terms":{"field":"SearchPhrase","missing_bucket":false,"order":"asc"}}},{"UserID":{"terms":{"field":"UserID","missing_bucket":false,"order":"asc"}}},{"m":{"terms":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAmXsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJUSU1FU1RBTVAiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogMywKICAgICAgIm5hbWUiOiAiRXZlbnRUaW1lIgogICAgfQogIF0sCiAgIm51bGxhYmxlIjogZmFsc2UKfXQABGV4cHJ0Ae57CiAgIm9wIjogewogICAgIm5hbWUiOiAiRVhUUkFDVCIsCiAgICAia2luZCI6ICJPVEhFUl9GVU5DVElPTiIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAibGl0ZXJhbCI6ICJtaW51dGUiLAogICAgICAidHlwZSI6IHsKICAgICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgICAibnVsbGFibGUiOiBmYWxzZSwKICAgICAgICAicHJlY2lzaW9uIjogLTEKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgImlucHV0IjogMCwKICAgICAgIm5hbWUiOiAiJDAiCiAgICB9CiAgXSwKICAiY2xhc3MiOiAib3JnLm9wZW5zZWFyY2guc3FsLmV4cHJlc3Npb24uZnVuY3Rpb24uVXNlckRlZmluZWRGdW5jdGlvbkJ1aWxkZXIkMSIsCiAgInR5cGUiOiB7CiAgICAidHlwZSI6ICJCSUdJTlQiLAogICAgIm51bGxhYmxlIjogdHJ1ZQogIH0sCiAgImRldGVybWluaXN0aWMiOiB0cnVlLAogICJkeW5hbWljIjogZmFsc2UKfXQACmZpZWxkVHlwZXNzcgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAAAMdwgAAAAQAAAAAXQACUV2ZW50VGltZXNyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGVUeXBlni1SrhB9yq8CAAFMAAdmb3JtYXRzdAAQTGphdmEvdXRpbC9MaXN0O3hyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGFUeXBlwmO8ygL6BTUCAANMAAxleHByQ29yZVR5cGV0ACtMb3JnL29wZW5zZWFyY2gvc3FsL2RhdGEvdHlwZS9FeHByQ29yZVR5cGU7TAALbWFwcGluZ1R5cGV0AEhMb3JnL29wZW5zZWFyY2gvc3FsL29wZW5zZWFyY2gvZGF0YS90eXBlL09wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZTtMAApwcm9wZXJ0aWVzdAAPTGphdmEvdXRpbC9NYXA7eHB+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAlUSU1FU1RBTVB+cgBGb3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZQAAAAAAAAAAEgAAeHEAfgASdAAERGF0ZXNyADxzaGFkZWQuY29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4AGXhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAAHVxAH4AGwAAAABzcgATamF2YS51dGlsLkFycmF5TGlzdHiB0h2Zx2GdAwABSQAEc2l6ZXhwAAAAA3cEAAAAA3QAE3l5eXktTU0tZGQgSEg6bW06c3N0ABlzdHJpY3RfZGF0ZV9vcHRpb25hbF90aW1ldAAMZXBvY2hfbWlsbGlzeHh4\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824209044725000}},"missing_bucket":false,"value_type":"long","order":"asc"}}}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgBEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggDEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIZGhcIARABGg9leHRyYWN0OnJlcV9wdHMgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGuceEuQeCr8eGrweCgIKABKwHiqtHgoCCgASmB4alR4KAgoAEooeKoceCgIKABLyHTrvHQoIEgYKBAQFBgcStB0isR0KAgoAEvYcOvMcCgcSBQoDamtsEsMcEsAcCgIKABLZGzrWGwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiIaIAgBGgQ6AhABIggKBk1JTlVURSIMGgoSCAoEEgIIECIAGl4aXAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGMiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIaSIAGgoSCAoEEgIISiIAGiIKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIAIg4KDAgEIAMqBDoCEAIwARoKEggKBBICCAMiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgdjb3VudCgpEgZVc2VySUQSAW0SDFNlYXJjaFBocmFzZTISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAxIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAESKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIAhIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q2.json b/plugins/engine-datafusion/src/test/resources/q2.json new file mode 100644 index 0000000000000..3c13782274f7f --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q2.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"AdvEngineID","boost":1.0}}],"must_not":[{"term":{"AdvEngineID":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["AdvEngineID"],"excludes":[]},"aggregations":{"count()":{"value_count":{"field":"_index"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIQGg4IAhACGgZjb3VudDogAhrvEBLsEArgEBrdEAoCCgAS0RAizhAKAgoAErUQErIQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaKhooCAEaBAoCEAEiFhoUWhIKBCoCEAESCBIGCgISACIAGAIiBhoECgIoABoAIg4KDAgCIAMqBDoCEAIwARgAIJBOEgdjb3VudCgpMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q20.json b/plugins/engine-datafusion/src/test/resources/q20.json new file mode 100644 index 0000000000000..f0894471060d2 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q20.json @@ -0,0 +1 @@ +{"from":0,"size":10000,"timeout":"1m","query":{"term":{"UserID":{"value":435090932899640449,"boost":1.0}}},"_source":{"includes":["UserID"],"excludes":[]},"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSFxoVCAEQARoNZXF1YWw6YW55X2FueSABGukQEuYQCtsQGtgQCgIKABLMEDrJEAoFEgMKAWkSsxASsBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxooGiYIARoECgIQASIMGgoSCAoEEgIIYyIAIg4aDAoKOIHp56PfnPCEBhoKEggKBBICCGMiABgAIJBOEgZVc2VySUQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb24="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q21.json b/plugins/engine-datafusion/src/test/resources/q21.json new file mode 100644 index 0000000000000..a830c4207aeae --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q21.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"wildcard":{"URL":{"wildcard":"*google*","case_insensitive":true,"boost":1.0}}},"_source":{"includes":["URL"],"excludes":[]},"aggregations":{"count()":{"value_count":{"field":"_index"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChoIARIWL2Z1bmN0aW9uc19zdHJpbmcueWFtbBIWGhQIARABGgxsaWtlOnN0cl9zdHIgARITGhEIARACGgl1cHBlcjpzdHIgARIVGhMIARADGgt1cHBlcjpmY2hhciABEhAaDggCEAQaBmNvdW50OiACGpkREpYRCooRGocRCgIKABL7ECL4EAoCCgAS3xAS3BAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxpUGlIIARoECgIQASIaGhgaFggCGgRiAhABIgwaChIICgQSAghXIgAiLBoqWigKBGICEAESHhocCAMaB6oBBAgIGAIiDxoNCguqAQglZ29vZ2xlJRgCGgAiDgoMCAQgAyoEOgIQAjABGAAgkE4SB2NvdW50KCkyEhBNKg5zdWJzdHJhaXQtamF2YUI2CAISMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmljQisIARInZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfc3RyaW5n"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q22.json b/plugins/engine-datafusion/src/test/resources/q22.json new file mode 100644 index 0000000000000..5f762f1c34517 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q22.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"wildcard":{"URL":{"wildcard":"*google*","case_insensitive":true,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase","URL"],"excludes":[]},"aggregations":{"SearchPhrase":{"terms":{"field":"SearchPhrase","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKGggCEhYvZnVuY3Rpb25zX3N0cmluZy55YW1sCh4IAxIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSEhoQCAEQARoIYW5kOmJvb2wgARIWGhQIAhACGgxsaWtlOnN0cl9zdHIgAhITGhEIAhADGgl1cHBlcjpzdHIgAhIVGhMIAhAEGgt1cHBlcjpmY2hhciACEhsaGQgDEAUaEW5vdF9lcXVhbDphbnlfYW55IAMSGRoXCAMQBhoPaXNfbm90X251bGw6YW55IAMSEBoOCAQQBxoGY291bnQ6IAQa/hIS+xIK5xIa5BIKAgoAEtgSKtUSCgIKABLAEhq9EgoCCgASshIqrxIKAgoAEpoSOpcSCgYSBAoCAgMS9hEi8xEKAgoAEtAROs0RCgUSAwoBaRK3ERK0EQoCCgASkxESkBEKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxqHARqEAQgBGgQKAhABIlYaVBpSCAIaBAoCEAEiGhoYGhYIAxoEYgIQASIMGgoSCAoEEgIIVyIAIiwaKlooCgRiAhABEh4aHAgEGgeqAQQICBgCIg8aDQoLqgEIJWdvb2dsZSUYAiIiGiAaHggFGgQKAhABIgwaChIICgQSAghKIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIISiIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgFjEgxTZWFyY2hQaHJhc2UyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCKwgCEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q23.json b/plugins/engine-datafusion/src/test/resources/q23.json new file mode 100644 index 0000000000000..c625b3229bc00 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q23.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"wildcard":{"Title":{"wildcard":"*Google*","case_insensitive":true,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"bool":{"must_not":[{"wildcard":{"URL":{"wildcard":"*.google.*","case_insensitive":true,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase","Title","URL","UserID"],"excludes":[]},"aggregations":{"SearchPhrase":{"terms":{"field":"SearchPhrase","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"dc(UserID)":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKGggCEhYvZnVuY3Rpb25zX3N0cmluZy55YW1sCh4IAxIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSEhoQCAEQARoIYW5kOmJvb2wgARIWGhQIAhACGgxsaWtlOnN0cl9zdHIgAhITGhEIAhADGgl1cHBlcjpzdHIgAhIVGhMIAhAEGgt1cHBlcjpmY2hhciACEhsaGQgDEAUaEW5vdF9lcXVhbDphbnlfYW55IAMSEhoQCAEQBhoIbm90OmJvb2wgARIZGhcIAxAHGg9pc19ub3RfbnVsbDphbnkgAxIQGg4IBBAIGgZjb3VudDogBBITGhEIBBAJGgljb3VudDphbnkgBBqqFBKnFAqHFBqEFAoCCgAS+BMq9RMKAgoAEuATGt0TCgIKABLSEyrPEwoCCgASuhM6txMKBxIFCgMDBAUSiRMihhMKAgoAEsUSOsISCgYSBAoCaWoSnxISnBIKAgoAEvsREvgRCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMa7wEa7AEIARoECgIQASJWGlQaUggCGgQKAhABIhoaGBoWCAMaBGICEAEiDBoKEggKBBICCFUiACIsGipaKAoEYgIQARIeGhwIBBoHqgEECAgYAiIPGg0KC6oBCCVHb29nbGUlGAIiIhogGh4IBRoECgIQASIMGgoSCAoEEgIISiIAIgYaBAoCYgAiZhpkGmIIBhoECgIQASJYGlYaVAgCGgQKAhABIhoaGBoWCAMaBGICEAEiDBoKEggKBBICCFciACIuGixaKgoEYgIQARIgGh4IBBoHqgEECAoYAiIRGg8KDaoBCiUuZ29vZ2xlLiUYAhoYGhYIBxoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIISiIAGgoSCAoEEgIIYyIAGgoKCBIGCgISACIAIg4KDAgIIAMqBDoCEAIwASIcChoICSADKgQ6AhACMAI6DBoKEggKBBICCAEiABoKEggKBBICCAEiABoKEggKBBICCAIiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgFjEgpkYyhVc2VySUQpEgxTZWFyY2hQaHJhc2UyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCKwgCEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q24.json b/plugins/engine-datafusion/src/test/resources/q24.json new file mode 100644 index 0000000000000..80329c0adc7c8 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q24.json @@ -0,0 +1 @@ +{"from":0,"size":10,"timeout":"1m","query":{"wildcard":{"URL":{"wildcard":"*google*","case_insensitive":true,"boost":1.0}}},"sort":[{"EventTime":{"order":"asc","missing":"_first"}}],"query_plan_ir":"ChoIARIWL2Z1bmN0aW9uc19zdHJpbmcueWFtbBIWGhQIARABGgxsaWtlOnN0cl9zdHIgARITGhEIARACGgl1cHBlcjpzdHIgARIVGhMIARADGgt1cHBlcjpmY2hhciABGpwcEpkcCrARGq0RCgIKABKhESqeEQoCCgAShxEahBEKAgoAEvkQKvYQCgIKABLfEBLcEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGlQaUggBGgQKAhABIhoaGBoWCAIaBGICEAEiDBoKEggKBBICCFciACIsGipaKAoEYgIQARIeGhwIAxoHqgEECAgYAiIPGg0KC6oBCCVnb29nbGUlGAIaDgoKEggKBBICCBAiABABGAAgChoOCgoSCAoEEgIIECIAEAEYACCQThILQWR2RW5naW5lSUQSA0FnZRIOQnJvd3NlckNvdW50cnkSD0Jyb3dzZXJMYW5ndWFnZRIEQ0xJRBIPQ2xpZW50RXZlbnRUaW1lEghDbGllbnRJUBIOQ2xpZW50VGltZVpvbmUSC0NvZGVWZXJzaW9uEg1Db25uZWN0VGltaW5nEgxDb29raWVFbmFibGUSDENvdW50ZXJDbGFzcxIJQ291bnRlcklEEglETlNUaW1pbmcSDURvbnRDb3VudEhpdHMSCUV2ZW50RGF0ZRIJRXZlbnRUaW1lEgdGVW5pcUlEEgtGZXRjaFRpbWluZxIKRmxhc2hNYWpvchIKRmxhc2hNaW5vchILRmxhc2hNaW5vcjISB0Zyb21UYWcSCUdvb2RFdmVudBIDSElEEglIVFRQRXJyb3ISCEhhc0dDTElEEg1IaXN0b3J5TGVuZ3RoEghIaXRDb2xvchILSVBOZXR3b3JrSUQSBkluY29tZRIJSW50ZXJlc3RzEgtJc0FydGlmaWNhbBIKSXNEb3dubG9hZBIHSXNFdmVudBIGSXNMaW5rEghJc01vYmlsZRILSXNOb3RCb3VuY2USDElzT2xkQ291bnRlchILSXNQYXJhbWV0ZXISCUlzUmVmcmVzaBIKSmF2YUVuYWJsZRIQSmF2YXNjcmlwdEVuYWJsZRIOTG9jYWxFdmVudFRpbWUSC01vYmlsZVBob25lEhBNb2JpbGVQaG9uZU1vZGVsEghOZXRNYWpvchIITmV0TWlub3ISAk9TEgpPcGVuZXJOYW1lEgxPcGVuc3RhdEFkSUQSEk9wZW5zdGF0Q2FtcGFpZ25JRBITT3BlbnN0YXRTZXJ2aWNlTmFtZRIQT3BlbnN0YXRTb3VyY2VJRBILT3JpZ2luYWxVUkwSC1BhZ2VDaGFyc2V0Eg1QYXJhbUN1cnJlbmN5Eg9QYXJhbUN1cnJlbmN5SUQSDFBhcmFtT3JkZXJJRBIKUGFyYW1QcmljZRIGUGFyYW1zEgdSZWZlcmVyEhFSZWZlcmVyQ2F0ZWdvcnlJRBILUmVmZXJlckhhc2gSD1JlZmVyZXJSZWdpb25JRBIIUmVnaW9uSUQSCFJlbW90ZUlQEg9SZXNvbHV0aW9uRGVwdGgSEFJlc29sdXRpb25IZWlnaHQSD1Jlc29sdXRpb25XaWR0aBIRUmVzcG9uc2VFbmRUaW1pbmcSE1Jlc3BvbnNlU3RhcnRUaW1pbmcSCVJvYm90bmVzcxIOU2VhcmNoRW5naW5lSUQSDFNlYXJjaFBocmFzZRIKU2VuZFRpbWluZxIDU2V4EhNTaWx2ZXJsaWdodFZlcnNpb24xEhNTaWx2ZXJsaWdodFZlcnNpb24yEhNTaWx2ZXJsaWdodFZlcnNpb24zEhNTaWx2ZXJsaWdodFZlcnNpb240EgxTb2NpYWxBY3Rpb24SDVNvY2lhbE5ldHdvcmsSFVNvY2lhbFNvdXJjZU5ldHdvcmtJRBIQU29jaWFsU291cmNlUGFnZRIFVGl0bGUSDlRyYWZpY1NvdXJjZUlEEgNVUkwSDVVSTENhdGVnb3J5SUQSB1VSTEhhc2gSC1VSTFJlZ2lvbklEEgtVVE1DYW1wYWlnbhIKVVRNQ29udGVudBIJVVRNTWVkaXVtEglVVE1Tb3VyY2USB1VUTVRlcm0SCVVzZXJBZ2VudBIOVXNlckFnZW50TWFqb3ISDlVzZXJBZ2VudE1pbm9yEgZVc2VySUQSB1dhdGNoSUQSEldpbmRvd0NsaWVudEhlaWdodBIRV2luZG93Q2xpZW50V2lkdGgSCldpbmRvd05hbWUSCFdpdGhIYXNoMhIQTSoOc3Vic3RyYWl0LWphdmFCKwgBEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q25.json b/plugins/engine-datafusion/src/test/resources/q25.json new file mode 100644 index 0000000000000..083f19b7812a9 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q25.json @@ -0,0 +1 @@ +{"from":0,"size":10,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase"],"excludes":[]},"sort":[{"EventTime":{"order":"asc","missing":"_first"}}],"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARqPERKMEQr7EBr4EAoCCgAS7BA66RAKBRIDCgFpEtMQGtAQCgIKABLFECrCEAoCCgASqxASqBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxogGh4IARoECgIQASIMGgoSCAoEEgIISiIAIgYaBAoCYgAaDgoKEggKBBICCBAiABABGAAgChoKEggKBBICCEoiABgAIJBOEgxTZWFyY2hQaHJhc2UyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb24="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q26.json b/plugins/engine-datafusion/src/test/resources/q26.json new file mode 100644 index 0000000000000..cb9e70818d97f --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q26.json @@ -0,0 +1 @@ +{"from":0,"size":10,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase"],"excludes":[]},"sort":[{"SearchPhrase":{"order":"asc","missing":"_first"}}],"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARqlERKiEQqRERqOEQoCCgASghEq/xAKAgoAEuoQGucQCgIKABLcECrZEAoCCgASxBA6wRAKBRIDCgFpEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGgoSCAoEEgIISiIAGgwKCBIGCgISACIAEAEYACAKGgwKCBIGCgISACIAEAEYACCQThIMU2VhcmNoUGhyYXNlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29u"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q27.json b/plugins/engine-datafusion/src/test/resources/q27.json new file mode 100644 index 0000000000000..efa0a7cbcb554 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q27.json @@ -0,0 +1 @@ +{"from":0,"size":10,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["SearchPhrase"],"excludes":[]},"sort":[{"EventTime":{"order":"asc","missing":"_first"}},{"SearchPhrase":{"order":"asc","missing":"_first"}}],"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARqfERKcEQqLERqIEQoCCgAS/BA6+RAKBRIDCgFpEuMQGuAQCgIKABLVECrSEAoCCgASqxASqBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxogGh4IARoECgIQASIMGgoSCAoEEgIISiIAIgYaBAoCYgAaDgoKEggKBBICCBAiABABGg4KChIICgQSAghKIgAQARgAIAoaChIICgQSAghKIgAYACCQThIMU2VhcmNoUGhyYXNlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29u"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q28.json b/plugins/engine-datafusion/src/test/resources/q28.json new file mode 100644 index 0000000000000..f758a7d5f7889 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q28.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"CounterID","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","URL"],"excludes":[]},"aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"CounterID":{"terms":{"field":"CounterID","missing_bucket":false,"order":"asc"}}}]},"aggregations":{"l":{"avg":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAknsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgIm51bGxhYmxlIjogdHJ1ZSwKICAgICAgInByZWNpc2lvbiI6IC0xLAogICAgICAibmFtZSI6ICJVUkwiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQApnsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDSEFSX0xFTkdUSCIsCiAgICAia2luZCI6ICJDSEFSX0xFTkdUSCIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAiaW5wdXQiOiAwLAogICAgICAibmFtZSI6ICIkMCIKICAgIH0KICBdCn10AApmaWVsZFR5cGVzc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA/QAAAAAAADHcIAAAAEAAAAAF0AANVUkx+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAZTVFJJTkd4eA==\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824209533948000}}}},"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IAxIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGggCEhYvZnVuY3Rpb25zX3N0cmluZy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARIZGhcIAhADGg9jaGFyX2xlbmd0aDpzdHIgAhIRGg8IAxAEGgdzdW06aTMyIAMSExoRCAQQBRoJY291bnQ6YW55IAQSEBoOCAQQBhoGY291bnQ6IAQSFBoSCAEQBxoKZ3Q6YW55X2FueSABGs4TEssTCqoTGqcTCgIKABKbEyqYEwoCCgASgxMagBMKAgoAEvUSKvISCgIKABLdEhLaEgoCCgASoxI6oBIKCBIGCgQEBQYHEuURIuIRCgIKABKDETqAEQoGEgQKAmlqEs8QEswQCgIKABKrEBKoEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGiAaHggBGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIAhoECgIQAiIMGgoSCAoEEgIIDCIAGgoSCAoEEgIIDCIAGhgaFggDGgQqAhABIgwaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggBIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAiIAGggSBgoCEgAiABouGiwIBxoECgIQAiIMGgoSCAoEEgIIASIAIhQaEloQCgQ6AhACEgYKBCigjQYYAhoMCggSBgoCEgAiABAEGAAgGRoMCggSBgoCEgAiABAEGAAgkE4SBWxfc3VtEgdsX2NvdW50EgFjEglDb3VudGVySUQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpY0IvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCKwgCEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q29.json b/plugins/engine-datafusion/src/test/resources/q29.json new file mode 100644 index 0000000000000..cff1053b1205c --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q29.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"sum(ResolutionWidth)":{"sum":{"field":"ResolutionWidth"}},"sum(ResolutionWidth+1)_COUNT":{"value_count":{"field":"ResolutionWidth"}}},"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSFRoTCAEQARoLYWRkOmkzMl9pMzIgARIRGg8IARACGgdzdW06aTE2IAESERoPCAEQAxoHc3VtOmkzMiABGp5YEptYCtpGGtdGCgIKABLLRiLIRgoCCgAStTE6sjEKowESoAEKnQFpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCEUiABosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigCGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoAxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigFGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoBhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigIGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoCRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigLGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKA0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigOGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigRGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoEhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigUGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoFRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigXGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigaGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigdGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoHhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKB8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAiggGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoIRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigjGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigmGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigpGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoKhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCsaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigsGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoLRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKC4aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigvGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigyGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig1GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoNhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig4GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoORosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig7GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKD0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig+GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihBGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoQhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihEGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoRRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihHGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihKGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihNGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoThosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKE8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihQGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoURosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihTGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihWGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihZGgAiGgoYCAIgAyoEOgIQATABOgoaCBIGCgISACIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIASIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIByIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIECIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIESIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIICIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIISIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIViIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWSIAGAAgkE4SFHN1bShSZXNvbHV0aW9uV2lkdGgpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzEpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzIpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzMpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzQpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzUpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzYpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzcpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzgpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzEwKRIXc3VtKFJlc29sdXRpb25XaWR0aCsxMSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzEzKRIXc3VtKFJlc29sdXRpb25XaWR0aCsxNCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE2KRIXc3VtKFJlc29sdXRpb25XaWR0aCsxNykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE5KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyMCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzIyKRIXc3VtKFJlc29sdXRpb25XaWR0aCsyMykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI1KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyNikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI4KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyOSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzMxKRIXc3VtKFJlc29sdXRpb25XaWR0aCszMikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM0KRIXc3VtKFJlc29sdXRpb25XaWR0aCszNSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM3KRIXc3VtKFJlc29sdXRpb25XaWR0aCszOCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQwKRIXc3VtKFJlc29sdXRpb25XaWR0aCs0MSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQzKRIXc3VtKFJlc29sdXRpb25XaWR0aCs0NCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ2KRIXc3VtKFJlc29sdXRpb25XaWR0aCs0NykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzUyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs1MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1OSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzYxKRIXc3VtKFJlc29sdXRpb25XaWR0aCs2MikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY0KRIXc3VtKFJlc29sdXRpb25XaWR0aCs2NSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY3KRIXc3VtKFJlc29sdXRpb25XaWR0aCs2OCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzcwKRIXc3VtKFJlc29sdXRpb25XaWR0aCs3MSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzczKRIXc3VtKFJlc29sdXRpb25XaWR0aCs3NCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc2KRIXc3VtKFJlc29sdXRpb25XaWR0aCs3NykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrODEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzgyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs4MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrODQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrODcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4OSkyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q3.json b/plugins/engine-datafusion/src/test/resources/q3.json new file mode 100644 index 0000000000000..59a3d0049a187 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q3.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"sum(AdvEngineID)":{"sum":{"field":"AdvEngineID"}},"count()":{"value_count":{"field":"_index"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSERoPCAEQARoHc3VtOmkxNiABEhAaDggCEAIaBmNvdW50OiACEhMaEQgCEAMaCWNvdW50OmFueSACGv0REvoRCqYRGqMRCgIKABKXESKUEQoCCgASoxA6oBAKBhIECgJpahL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIRSIAGgAiGgoYCAEgAyoEOgIQATABOgoaCBIGCgISACIAIg4KDAgCIAMqBDoCEAIwASIcChoIASADKgQ6AhABMAE6DBoKEggKBBICCAEiACIcChoIAyADKgQ6AhACMAE6DBoKEggKBBICCAEiABgAIJBOEhBzdW0oQWR2RW5naW5lSUQpEgdjb3VudCgpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50MhIQTSoOc3Vic3RyYWl0LWphdmFCNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpY0IvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q30.json b/plugins/engine-datafusion/src/test/resources/q30.json new file mode 100644 index 0000000000000..17be64e1915e8 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q30.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchEngineID","SearchPhrase"],"excludes":[]},"aggregations":{"SearchEngineID|ClientIP":{"multi_terms":{"terms":[{"field":"SearchEngineID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMa0xQS0BQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCEkiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghJIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50Eg5TZWFyY2hFbmdpbmVJRBIIQ2xpZW50SVAyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQi8IBBIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYXJpdGhtZXRpY0I2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q31.json b/plugins/engine-datafusion/src/test/resources/q31.json new file mode 100644 index 0000000000000..ea4c6fbd6cf23 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q31.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchPhrase","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMazBQSyRQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGQiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghkIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50EgdXYXRjaElEEghDbGllbnRJUDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkIsCAISKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CLwgEEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGljQjYIAxIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q32.json b/plugins/engine-datafusion/src/test/resources/q32.json new file mode 100644 index 0000000000000..f59ba5011268e --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q32.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgBEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAISGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhIaEAgBEAEaCGFuZDpib29sIAESGRoXCAIQAhoPaXNfbm90X251bGw6YW55IAISEBoOCAMQAxoGY291bnQ6IAMSERoPCAQQBBoHc3VtOmkxNiAEEhMaEQgDEAUaCWNvdW50OmFueSADGqAUEp0UCr4TGrsTCgIKABKvEyqsEwoCCgASlxMalBMKAgoAEokTKoYTCgIKABLxEjruEgoKEggKBgYHCAkKCxKZEiKWEgoCCgASjRE6ihEKCBIGCgRpamtsEs0QEsoQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaQhpACAEaBAoCEAIiGhoYGhYIAhoECgIQAiIMGgoSCAoEEgIIZCIAIhoaGBoWCAIaBAoCEAIiDBoKEggKBBICCAYiABoKEggKBBICCGQiABoKEggKBBICCAYiABoKEggKBBICCCgiABoKEggKBBICCEUiABoWCggSBgoCEgAiAAoKEggKBBICCAEiACIOCgwIAyADKgQ6AhACMAEiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggCIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggDIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggDIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaChIICgQSAggFIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIOc3VtKElzUmVmcmVzaCkSGGF2ZyhSZXNvbHV0aW9uV2lkdGgpX3N1bRIaYXZnKFJlc29sdXRpb25XaWR0aClfY291bnQSB1dhdGNoSUQSCENsaWVudElQMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkIvCAQSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCNggDEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q33.json b/plugins/engine-datafusion/src/test/resources/q33.json new file mode 100644 index 0000000000000..eb7bd01270150 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q33.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIa4RES3hEK0xEa0BEKAgoAEsQRKsERCgIKABKsERqpEQoCCgASnhEqmxEKAgoAEoYROoMRCgYSBAoCAgMS4hAi3xAKAgoAErwQOrkQCgUSAwoBaRKjEBKgEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkI2CAISMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q34.json b/plugins/engine-datafusion/src/test/resources/q34.json new file mode 100644 index 0000000000000..a79f298de0f87 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q34.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIayh0Sxx0KtR0ash0KAgoAEqYdKqMdCgIKABKOHRqLHQoCCgASgB0q/RwKAgoAEugcOuUcCgcSBQoDAwQFErccIrQcCgIKABKFHDqCHAoGEgQKAmprEt8bEtwbCgIKABK7Gzq4GwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGgQKAigBGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghpIgAaChIICgQSAghXIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSBWNvbnN0EgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q35.json b/plugins/engine-datafusion/src/test/resources/q35.json new file mode 100644 index 0000000000000..3049b43a8f84c --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q35.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"exists":{"field":"ClientIP","boost":1.0}},"aggregations":{"ClientIP":{"terms":{"field":"ClientIP","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggBEhovZnVuY3Rpb25zX2FyaXRobWV0aWMueWFtbAoeCAMSGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhoaGAgBEAEaEHN1YnRyYWN0OmkzMl9pMzIgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGoQgEoEgCscfGsQfCgIKABK4Hyq1HwoCCgASoB8anR8KAgoAEpIfKo8fCgIKABL6Hjr3HgoJEgcKBQUGBwgJEq8eIqweCgIKABLlHTriHQoIEgYKBGxtbm8SpR0Soh0KAgoAEp8cOpwcCscBEsQBCsEBaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiAaHggBGgQqAhABIgwaChIICgQSAggGIgAiBhoECgIoARogGh4IARoEKgIQASIMGgoSCAoEEgIIBiIAIgYaBAoCKAIaIBoeCAEaBCoCEAEiDBoKEggKBBICCAYiACIGGgQKAigDGnoaeAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCAYiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIIaiIAIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGsiABoKEggKBBICCAYiABoKEggKBBICCGkiABoKEggKBBICCGoiABoKEggKBBICCGsiABouCggSBgoCEgAiAAoKEggKBBICCAEiAAoKEggKBBICCAIiAAoKEggKBBICCAMiACIOCgwIBCADKgQ6AhACMAEaChIICgQSAggEIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIIQ2xpZW50SVASDENsaWVudElQIC0gMRIMQ2xpZW50SVAgLSAyEgxDbGllbnRJUCAtIDMyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q36.json b/plugins/engine-datafusion/src/test/resources/q36.json new file mode 100644 index 0000000000000..b447311c15cdf --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q36.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBqsFBKpFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q37.json b/plugins/engine-datafusion/src/test/resources/q37.json new file mode 100644 index 0000000000000..2d19d86268be0 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q37.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"Title","boost":1.0}}],"must_not":[{"term":{"Title":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","Title"],"excludes":[]},"aggregations":{"Title":{"terms":{"field":"Title","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBquFBKrFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghVIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVSIAGgoSCAoEEgIIVSIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSBVRpdGxlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q38.json b/plugins/engine-datafusion/src/test/resources/q38.json new file mode 100644 index 0000000000000..f4758d2b8c912 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q38.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"IsLink","boost":1.0}}],"must_not":[{"term":{"IsLink":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsDownload":{"value":0,"boost":1.0}}}],"filter":[{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsDownload","IsLink","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":1010,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBq5FBK2FAqjFBqgFAoCCgASlBQqkRQKAgoAEvwTGvkTCgIKABLtEyrqEwoCCgAS1RM60hMKBhIECgICAxKxEyKuEwoCCgASixM6iBMKBRIDCgFpEvISEu8SCgIKABLOEhLLEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGsICGr8CCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggFGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIIyIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIISIAGAIiBhoECgIoABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q39.json b/plugins/engine-datafusion/src/test/resources/q39.json new file mode 100644 index 0000000000000..fcf3c481c3c13 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q39.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["AdvEngineID","CounterID","EventDate","IsRefresh","Referer","SearchEngineID","TraficSourceID","URL"],"excludes":[]},"aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"TraficSourceID":{"terms":{"field":"TraficSourceID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"SearchEngineID":{"terms":{"field":"SearchEngineID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"AdvEngineID":{"terms":{"field":"AdvEngineID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"Src":{"terms":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQBT3sKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJTTUFMTElOVCIsCiAgICAgICJudWxsYWJsZSI6IHRydWUsCiAgICAgICJuYW1lIjogIlNlYXJjaEVuZ2luZUlEIgogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiU01BTExJTlQiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAibmFtZSI6ICJBZHZFbmdpbmVJRCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogLTEsCiAgICAgICJuYW1lIjogIlJlZmVyZXIiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQE8XsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDQVNFIiwKICAgICJraW5kIjogIkNBU0UiLAogICAgInN5bnRheCI6ICJTUEVDSUFMIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAib3AiOiB7CiAgICAgICAgIm5hbWUiOiAiQU5EIiwKICAgICAgICAia2luZCI6ICJBTkQiLAogICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICB9LAogICAgICAib3BlcmFuZHMiOiBbCiAgICAgICAgewogICAgICAgICAgIm9wIjogewogICAgICAgICAgICAibmFtZSI6ICI9IiwKICAgICAgICAgICAgImtpbmQiOiAiRVFVQUxTIiwKICAgICAgICAgICAgInN5bnRheCI6ICJCSU5BUlkiCiAgICAgICAgICB9LAogICAgICAgICAgIm9wZXJhbmRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImlucHV0IjogMCwKICAgICAgICAgICAgICAibmFtZSI6ICIkMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJsaXRlcmFsIjogMCwKICAgICAgICAgICAgICAidHlwZSI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIklOVEVHRVIiLAogICAgICAgICAgICAgICAgIm51bGxhYmxlIjogZmFsc2UKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJvcCI6IHsKICAgICAgICAgICAgIm5hbWUiOiAiPSIsCiAgICAgICAgICAgICJraW5kIjogIkVRVUFMUyIsCiAgICAgICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICAgICAgfSwKICAgICAgICAgICJvcGVyYW5kcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpbnB1dCI6IDEsCiAgICAgICAgICAgICAgIm5hbWUiOiAiJDEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibGl0ZXJhbCI6IDAsCiAgICAgICAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJJTlRFR0VSIiwKICAgICAgICAgICAgICAgICJudWxsYWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiaW5wdXQiOiAyLAogICAgICAibmFtZSI6ICIkMiIKICAgIH0sCiAgICB7CiAgICAgICJsaXRlcmFsIjogIiIsCiAgICAgICJ0eXBlIjogewogICAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAgICJudWxsYWJsZSI6IGZhbHNlLAogICAgICAgICJwcmVjaXNpb24iOiAtMQogICAgICB9CiAgICB9CiAgXQp9dAAKZmllbGRUeXBlc3NyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAADdAAOU2VhcmNoRW5naW5lSUR+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAVTSE9SVHQAB1JlZmVyZXJ+cQB+AAp0AAZTVFJJTkd0AAtBZHZFbmdpbmVJRHEAfgAMeHg=\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824212362603000}},"missing_bucket":true,"missing_order":"first","order":"asc"}}},{"Dst":{"terms":{"field":"URL","missing_bucket":true,"missing_order":"first","order":"asc"}}}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSEBoOCAQQBRoGY291bnQ6IAQa9BUS8RUKrBUaqRUKAgoAEp0VKpoVCgIKABKFFRqCFQoCCgAS9hQq8xQKAgoAEt4UOtsUCgoSCAoGBgcICQoLEoYUIoMUCgIKABKwEzqtEwoJEgcKBWlqa2xtEu4REusRCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMa4gEa3wEIARoECgIQASIiGiAaHggCGgQKAhABIgwaChIICgQSAggMIgAiBhoECgIoPiKAARp+GnwIARoECgIQASI4GjYaNAgDGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA+sb+jLgCGAIiOBo2GjQIBBoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwO/Atti4AhgCIi4aLBoqCAIaBAoCEAEiGBoWWhQKBCoCEAESChIICgQSAggoIgAYAiIGGgQKAigAGgoSCAoEEgIIViIAGgoSCAoEEgIISSIAGggSBgoCEgAiABqAATJ+CnYKaBpmCAEaBAoCEAEiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCEkiABgCIgYaBAoCKAAiLBoqGigIAhoECgIQASIWGhRaEgoEKgIQARIIEgYKAhIAIgAYAiIGGgQKAigAEgoSCAoEEgIIPSIAEgQKAmIAGgoSCAoEEgIIVyIAGjoKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIACgoSCAoEEgIIAyIACgoSCAoEEgIIBCIAIg4KDAgFIAMqBDoCEAIwARoKEggKBBICCAUiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEg5UcmFmaWNTb3VyY2VJRBIOU2VhcmNoRW5naW5lSUQSC0FkdkVuZ2luZUlEEgNTcmMSA0RzdDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q4.json b/plugins/engine-datafusion/src/test/resources/q4.json new file mode 100644 index 0000000000000..d5241a65f691d --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q4.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"avg(UserID)":{"avg":{"field":"UserID"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSERoPCAEQARoHc3VtOmk2NCABEhMaEQgCEAIaCWNvdW50OmFueSACGpUREpIRCusQGugQCgIKABLcECLZEAoCCgASmBA6lRAKBRIDCgFpEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCGMiABoAIhoKGAgBIAMqBDoCEAEwAToKGggSBgoCEgAiACIaChgIAiADKgQ6AhACMAE6ChoIEgYKAhIAIgAYACCQThIPYXZnKFVzZXJJRClfc3VtEhFhdmcoVXNlcklEKV9jb3VudDISEE0qDnN1YnN0cmFpdC1qYXZhQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q40.json b/plugins/engine-datafusion/src/test/resources/q40.json new file mode 100644 index 0000000000000..9e7cfd8c9d6f2 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q40.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"bool":{"must":[{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"exists":{"field":"EventDate","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"terms":{"TraficSourceID":[-1.0,6.0],"boost":1.0}},{"term":{"RefererHash":{"value":3594120000172545465,"boost":1.0}}},{"exists":{"field":"URLHash","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsRefresh","RefererHash","TraficSourceID","URLHash"],"excludes":[]},"aggregations":{"URLHash|EventDate":{"multi_terms":{"terms":[{"field":"URLHash"},{"field":"EventDate","value_type":"long"}],"size":110,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSERoPCAEQBRoHb3I6Ym9vbCABEhkaFwgCEAYaD2lzX25vdF9udWxsOmFueSACEhAaDggEEAcaBmNvdW50OiAEGtoVEtcVCrUVGrIVCgIKABKmFSqjFQoCCgASjhUaixUKAgoAEoAVKv0UCgIKABLoFDrlFAoHEgUKAwMEBRK3FCK0FAoCCgAShRQ6ghQKBhIECgJpahLfExLcEwoCCgASkRMSjhMKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxqFAxqCAwgBGgQKAhABIiIaIBoeCAIaBAoCEAEiDBoKEggKBBICCAwiACIGGgQKAig+IoABGn4afAgBGgQKAhABIjgaNho0CAMaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMD6xv6MuAIYAiI4GjYaNAgEGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA78C22LgCGAIiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCCgiABgCIgYaBAoCKAAidRpzGnEIBRoECgIQASI3GjUaMwgCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiDxoNCgso////////////ASIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiBhoECgIoBiIqGigaJggCGgQKAhABIgwaChIICgQSAgg/IgAiDhoMCgo4uaulk5CjuPAxGkIaQAgBGgQKAhACIhoaGBoWCAYaBAoCEAIiDBoKEggKBBICCFkiACIaGhgaFggGGgQKAhACIgwaChIICgQSAggPIgAaChIICgQSAghZIgAaChIICgQSAggPIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAcgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGGQgChoMCggSBgoCEgAiABAEGAAgkE4SCVBhZ2VWaWV3cxIHVVJMSGFzaBIJRXZlbnREYXRlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q41.json b/plugins/engine-datafusion/src/test/resources/q41.json new file mode 100644 index 0000000000000..8224f7ec35141 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q41.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"URLHash":{"value":2868770270353813622,"boost":1.0}}},{"exists":{"field":"WindowClientWidth","boost":1.0}},{"exists":{"field":"WindowClientHeight","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URLHash","WindowClientHeight","WindowClientWidth"],"excludes":[]},"aggregations":{"WindowClientWidth|WindowClientHeight":{"multi_terms":{"terms":[{"field":"WindowClientWidth"},{"field":"WindowClientHeight"}],"size":10000,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGRoXCAIQBRoPaXNfbm90X251bGw6YW55IAISEBoOCAQQBhoGY291bnQ6IAQapxUSpBUK7xQa7BQKAgoAEuAUKt0UCgIKABLIFBrFFAoCCgASuRQqthQKAgoAEqEUOp4UCgcSBQoDAwQFEvATIu0TCgIKABK+Ezq7EwoGEgQKAmlqEpgTEpUTCgIKABLKEhLHEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGr4CGrsCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIqGigaJggCGgQKAhABIgwaChIICgQSAghZIgAiDhoMCgo49uCP1cjr+ucnGkIaQAgBGgQKAhACIhoaGBoWCAUaBAoCEAIiDBoKEggKBBICCGYiACIaGhgaFggFGgQKAhACIgwaChIICgQSAghlIgAaChIICgQSAghmIgAaChIICgQSAghlIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGJBOIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSEVdpbmRvd0NsaWVudFdpZHRoEhJXaW5kb3dDbGllbnRIZWlnaHQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q5.json b/plugins/engine-datafusion/src/test/resources/q5.json new file mode 100644 index 0000000000000..9e229924469c4 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q5.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"exists":{"field":"UserID","boost":1.0}},"aggregations":{"dc(UserID)":{"cardinality":{"field":"UserID"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESExoRCAIQAhoJY291bnQ6YW55IAIahRESghEK8xAa8BAKAgoAEuQQIuEQCgIKABK8EDq5EAoFEgMKAWkSoxASoBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoYGhYIARoECgIQAiIMGgoSCAoEEgIIYyIAGgoSCAoEEgIIYyIAGgAiGgoYCAIgAyoEOgIQAjACOgoaCBIGCgISACIAGAAgkE4SCmRjKFVzZXJJRCkyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q6.json b/plugins/engine-datafusion/src/test/resources/q6.json new file mode 100644 index 0000000000000..406df16a4f10d --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q6.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"exists":{"field":"SearchPhrase","boost":1.0}},"aggregations":{"dc(SearchPhrase)":{"cardinality":{"field":"SearchPhrase"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESExoRCAIQAhoJY291bnQ6YW55IAIaixESiBEK8xAa8BAKAgoAEuQQIuEQCgIKABK8EDq5EAoFEgMKAWkSoxASoBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoYGhYIARoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIISiIAGgAiGgoYCAIgAyoEOgIQAjACOgoaCBIGCgISACIAGAAgkE4SEGRjKFNlYXJjaFBocmFzZSkyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q7.json b/plugins/engine-datafusion/src/test/resources/q7.json new file mode 100644 index 0000000000000..ad0bd0ae53783 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q7.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"min(EventDate)":{"min":{"field":"EventDate"}},"max(EventDate)":{"max":{"field":"EventDate"}}},"query_plan_ir":"ChwIARIYL2Z1bmN0aW9uc19kYXRldGltZS55YW1sEhEaDwgBEAEaB21pbjpwdHMgARIRGg8IARACGgdtYXg6cHRzIAEalxESlBEK8RAa7hAKAgoAEuIQIt8QCgIKABKYEDqVEAoFEgMKAWkS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGgoSCAoEEgIIDyIAGgAiHQobCAEgAyoHigIECAMYATABOgoaCBIGCgISACIAIh0KGwgCIAMqB4oCBAgDGAEwAToKGggSBgoCEgAiABgAIJBOEg5taW4oRXZlbnREYXRlKRIObWF4KEV2ZW50RGF0ZSkyEhBNKg5zdWJzdHJhaXQtamF2YUItCAESKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1l"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q8.json b/plugins/engine-datafusion/src/test/resources/q8.json new file mode 100644 index 0000000000000..f6f9c83eee769 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q8.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"AdvEngineID","boost":1.0}}],"must_not":[{"term":{"AdvEngineID":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"aggregations":{"AdvEngineID":{"terms":{"field":"AdvEngineID","size":10000,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"count()":"desc"},{"_key":"asc"}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAhADGgZjb3VudDogAhqTEhKQEgr3ERr0EQoCCgAS6BEq5REKAgoAEtARKs0RCgIKABK4ETq1EQoGEgQKAgIDEpQRIpERCgIKABLuEDrrEAoFEgMKAWkS1xAS1BAKAgoAErUQErIQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaKhooCAEaBAoCEAEiFhoUWhIKBCoCEAESCBIGCgISACIAGAIiBhoECgIoABoWGhQIAhoECgIQAiIKGggSBgoCEgAiABoIEgYKAhIAIgAaCgoIEgYKAhIAIgAiDgoMCAMgAyoEOgIQAjABGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGgwKCBIGCgISACIAEAQYACCQThIHY291bnQoKRILQWR2RW5naW5lSUQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q9.json b/plugins/engine-datafusion/src/test/resources/q9.json new file mode 100644 index 0000000000000..1d130a1638572 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q9.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","aggregations":{"RegionID":{"terms":{"field":"RegionID","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"u":"desc"},{"_key":"asc"}]},"aggregations":{"u":{"cardinality":{"field":"UserID"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESExoRCAIQAhoJY291bnQ6YW55IAIagRIS/hEK7hEa6xEKAgoAEt8RKtwRCgIKABLHERrEEQoCCgASuREqthEKAgoAEqEROp4RCgYSBAoCAgMS/RAi+hAKAgoAEskQOsYQCgYSBAoCaWoSoxASoBAKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoYGhYIARoECgIQAiIMGgoSCAoEEgIIQSIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIYyIAGgoKCBIGCgISACIAIhwKGggCIAMqBDoCEAIwAjoMGgoSCAoEEgIIASIAGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAXUSCFJlZ2lvbklEMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/action/support/replication/TransportWriteAction.java b/server/src/main/java/org/opensearch/action/support/replication/TransportWriteAction.java index 27f9e6dee83de..c8de9edb798ef 100644 --- a/server/src/main/java/org/opensearch/action/support/replication/TransportWriteAction.java +++ b/server/src/main/java/org/opensearch/action/support/replication/TransportWriteAction.java @@ -242,8 +242,8 @@ public static Location locationToSync(Location current, Location next) { * tape where only the highest location needs to be fsynced in order to sync all previous * locations even though they are not in the same file. When the translog rolls over files * the previous file is fsynced on after closing if needed.*/ - assert next != null : "next operation can't be null"; - assert current == null || current.compareTo(next) < 0 : "translog locations are not increasing"; +// assert next != null : "next operation can't be null"; +// assert current == null || current.compareTo(next) < 0 : "translog locations are not increasing"; return next; } From d0bade519161b51cc189aac9d17b377f0ab3bf61 Mon Sep 17 00:00:00 2001 From: Shashank Gowri Date: Tue, 11 Nov 2025 19:44:42 +0530 Subject: [PATCH 073/112] Translog manager & checkpoint tracker integration in CompositeEngine (#19956) * Adding interfaces for indexing and deletion strategy planner * Translog manager and local checkpoint tracker integration with CompositeEngine * Interim workaround until integration of CompositeEngine with IndexShard is complete * Fixing merges * CompositeDataFormatWriterPool optimizations * Update merge thread count to 1 * Fix thread issue for merge * Changing max merge to 5 * Removed logs * Compile fix * Adding static FileInfos.empty() to be used when no data flushed * Fixing forceMerge in CompositeEngine --------- Co-authored-by: Shashank Gowri Co-authored-by: Dhwanil Patel --- .../engine/ParquetExecutionEngine.java | 33 +- .../writer/ParquetWriter.java | 14 +- .../index/engine/DeletionStrategy.java | 71 ++ .../index/engine/DeletionStrategyPlanner.java | 132 +++ .../org/opensearch/index/engine/Engine.java | 112 +-- .../index/engine/IndexThrottle.java | 114 +++ .../index/engine/IndexVersionValue.java | 4 +- .../index/engine/IndexingStrategy.java | 82 ++ .../index/engine/IndexingStrategyPlanner.java | 243 +++++ .../index/engine/InternalEngine.java | 591 ++----------- .../index/engine/LiveVersionMap.java | 8 +- .../index/engine/OperationStrategy.java | 35 + .../engine/OperationStrategyPlanner.java | 18 + .../opensearch/index/engine/VersionValue.java | 2 +- .../index/engine/exec/FileInfos.java | 32 +- .../engine/exec/IndexingExecutionEngine.java | 6 +- .../index/engine/exec/WriterFileSet.java | 38 + .../index/engine/exec/bridge/Indexer.java | 110 ++- .../index/engine/exec/commit/Committer.java | 16 +- .../exec/commit/LuceneCommitEngine.java | 78 +- .../composite/CompositeDataFormatWriter.java | 37 +- .../CompositeIndexingExecutionEngine.java | 59 +- .../engine/exec/coord/CatalogSnapshot.java | 83 +- .../coord/CompositeDataFormatWriterPool.java | 23 +- .../engine/exec/coord/CompositeEngine.java | 834 +++++++++++++++--- .../engine/exec/coord/IndexingManager.java | 137 --- .../engine/exec/lucene/LuceneIEEngine.java | 10 +- .../index/engine/exec/merge/MergeHandler.java | 2 +- .../engine/exec/merge/MergeScheduler.java | 12 +- .../exec/merge/ParquetMergeHandler.java | 10 +- .../exec/merge/ParquetTieredMergePolicy.java | 2 +- .../index/engine/exec/text/TextEngine.java | 26 +- .../opensearch/index/shard/IndexShard.java | 27 +- .../index/engine/InternalEngineTests.java | 2 +- .../index/engine/EngineTestCase.java | 4 +- 35 files changed, 1879 insertions(+), 1128 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/DeletionStrategy.java create mode 100644 server/src/main/java/org/opensearch/index/engine/DeletionStrategyPlanner.java create mode 100644 server/src/main/java/org/opensearch/index/engine/IndexThrottle.java create mode 100644 server/src/main/java/org/opensearch/index/engine/IndexingStrategy.java create mode 100644 server/src/main/java/org/opensearch/index/engine/IndexingStrategyPlanner.java create mode 100644 server/src/main/java/org/opensearch/index/engine/OperationStrategy.java create mode 100644 server/src/main/java/org/opensearch/index/engine/OperationStrategyPlanner.java delete mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 0299a74431cfc..3d3596f9feef9 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -8,18 +8,23 @@ import org.apache.arrow.vector.types.pojo.Schema; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.engine.exec.WriterFileSet; -import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.shard.ShardPath; import java.io.IOException; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.StreamSupport; import static com.parquet.parquetdataformat.engine.ParquetDataFormat.PARQUET_DATA_FORMAT; @@ -54,7 +59,10 @@ */ public class ParquetExecutionEngine implements IndexingExecutionEngine { - public static final String FILE_NAME_PREFIX = "_parquet_file_generation"; + private static final Pattern FILE_PATTERN = Pattern.compile(".*_(\\d+)\\.parquet$", Pattern.CASE_INSENSITIVE); + private static final String FILE_NAME_PREFIX = "_parquet_file_generation"; + private static final String FILE_NAME_EXT = ".parquet"; + private final Supplier schema; private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; @@ -65,6 +73,23 @@ public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { this.shardPath = shardPath; } + @Override + public void loadWriterFiles(ShardPath shardPath) throws IOException { + try (DirectoryStream stream = Files.newDirectoryStream(shardPath.getDataPath(), "*" + FILE_NAME_EXT)) { + StreamSupport.stream(stream.spliterator(), false) + .map(Path::getFileName) + .map(Path::toString) + .map(FILE_PATTERN::matcher) + .filter(Matcher::matches) + .map(m -> WriterFileSet.builder() + .directory(shardPath.getDataPath()) + .writerGeneration(Long.parseLong(m.group(1))) + .addFile(m.group(0)) + .build()) + .forEach(filesWrittenAlready::add); + } + } + @Override public List supportedFieldTypes() { return List.of(); @@ -72,7 +97,7 @@ public List supportedFieldTypes() { @Override public Writer createWriter(long writerGeneration) throws IOException { - String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + writerGeneration + ".parquet").toString(); + String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + writerGeneration + FILE_NAME_EXT).toString(); return new ParquetWriter(fileName, schema.get(), writerGeneration); } @@ -85,7 +110,7 @@ public Merger getMerger() { public RefreshResult refresh(RefreshInput refreshInput) throws IOException { RefreshResult refreshResult = new RefreshResult(); filesWrittenAlready.addAll(refreshInput.getWriterFiles()); - if(!refreshInput.getFilesToRemove().isEmpty()) { + if (!refreshInput.getFilesToRemove().isEmpty()) { filesWrittenAlready.removeAll(refreshInput.getFilesToRemove()); } refreshResult.add(PARQUET_DATA_FORMAT, filesWrittenAlready); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java index 10a29c00f037a..6e66a26d870ae 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java @@ -53,15 +53,17 @@ public WriteResult addDoc(ParquetDocumentInput d) throws IOException { @Override public FileInfos flush(FlushIn flushIn) throws IOException { String fileName = vsrManager.flush(flushIn); - FileInfos fileInfos = new FileInfos(); // no data flushed if (fileName == null) { - return fileInfos; + return FileInfos.empty(); } - WriterFileSet writerFileSet = new WriterFileSet(Path.of(fileName).getParent(), writerGeneration); - writerFileSet.add(fileName); - fileInfos.putWriterFileSet(PARQUET_DATA_FORMAT, writerFileSet); - return fileInfos; + Path file = Path.of(fileName); + WriterFileSet writerFileSet = WriterFileSet.builder() + .directory(file.getParent()) + .writerGeneration(writerGeneration) + .addFile(file.getFileName().toString()) + .build(); + return FileInfos.builder().putWriterFileSet(PARQUET_DATA_FORMAT, writerFileSet).build(); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/DeletionStrategy.java b/server/src/main/java/org/opensearch/index/engine/DeletionStrategy.java new file mode 100644 index 0000000000000..dd6ec1aa29463 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/DeletionStrategy.java @@ -0,0 +1,71 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.common.lucene.uid.Versions; +import org.opensearch.index.seqno.SequenceNumbers; + +public class DeletionStrategy extends OperationStrategy { + + public final boolean currentlyDeleted; + + public DeletionStrategy( + boolean deleteFromLucene, + boolean addStaleOpToEngine, + boolean currentlyDeleted, + long version, + int reservedDocs, + Engine.DeleteResult earlyResultOnPreflightError + ) { + super(deleteFromLucene, addStaleOpToEngine, version, earlyResultOnPreflightError, reservedDocs); + assert (deleteFromLucene && earlyResultOnPreflightError != null) == false : + "can only delete from lucene or have a preflight result but not both." + "deleteFromLucene: " + deleteFromLucene + + " earlyResultOnPreFlightError:" + earlyResultOnPreflightError; + this.currentlyDeleted = currentlyDeleted; + } + + public static DeletionStrategy skipDueToVersionConflict( + VersionConflictEngineException e, + long currentVersion, + boolean currentlyDeleted + ) { + final Engine.DeleteResult deleteResult = new Engine.DeleteResult( + e, + currentVersion, + SequenceNumbers.UNASSIGNED_PRIMARY_TERM, + SequenceNumbers.UNASSIGNED_SEQ_NO, + currentlyDeleted == false + ); + return new DeletionStrategy(false, false, currentlyDeleted, Versions.NOT_FOUND, 0, deleteResult); + } + + static DeletionStrategy processNormally(boolean currentlyDeleted, long versionOfDeletion, int reservedDocs) { + return new DeletionStrategy(true, false, currentlyDeleted, versionOfDeletion, reservedDocs, null); + + } + + public static DeletionStrategy processButSkipLucene(boolean currentlyDeleted, long versionOfDeletion) { + return new DeletionStrategy(false, false, currentlyDeleted, versionOfDeletion, 0, null); + } + + static DeletionStrategy processAsStaleOp(long versionOfDeletion) { + return new DeletionStrategy(false, true, false, versionOfDeletion, 0, null); + } + + static DeletionStrategy failAsTooManyDocs(Exception e) { + final Engine.DeleteResult deleteResult = new Engine.DeleteResult( + e, + Versions.NOT_FOUND, + SequenceNumbers.UNASSIGNED_PRIMARY_TERM, + SequenceNumbers.UNASSIGNED_SEQ_NO, + false + ); + return new DeletionStrategy(false, false, false, Versions.NOT_FOUND, 0, deleteResult); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/DeletionStrategyPlanner.java b/server/src/main/java/org/opensearch/index/engine/DeletionStrategyPlanner.java new file mode 100644 index 0000000000000..b08a3dde5220e --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/DeletionStrategyPlanner.java @@ -0,0 +1,132 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.common.CheckedBiFunction; +import org.opensearch.common.CheckedFunction; +import org.opensearch.common.lucene.uid.Versions; +import org.opensearch.core.index.shard.ShardId; +import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.seqno.SequenceNumbers; + +import java.io.IOException; +import java.util.function.BiFunction; +import java.util.function.Predicate; + +public class DeletionStrategyPlanner implements OperationStrategyPlanner { + + private final EngineConfig engineConfig; + private final ShardId shardId; + private final Predicate hasBeenProcessedBefore; + private final CheckedFunction opVsEngineDocStatusFunction; + private final CheckedBiFunction docVersionSupplier; + private final BiFunction tryAcquireInFlightDocs; + + public DeletionStrategyPlanner( + EngineConfig engineConfig, + ShardId shardId, + Predicate hasBeenProcessedBefore, + CheckedFunction opVsEngineDocStatusFunction, + CheckedBiFunction docVersionSupplier, + BiFunction tryAcquireInFlightDocs + ) { + this.engineConfig = engineConfig; + this.shardId = shardId; + this.hasBeenProcessedBefore = hasBeenProcessedBefore; + this.opVsEngineDocStatusFunction = opVsEngineDocStatusFunction; + this.docVersionSupplier = docVersionSupplier; + this.tryAcquireInFlightDocs = tryAcquireInFlightDocs; + } + + @Override + public DeletionStrategy planOperationAsPrimary(Engine.Operation operation) throws IOException { + final Engine.Delete delete = (Engine.Delete) operation; + assert delete.origin() == Engine.Operation.Origin.PRIMARY : "planing as primary but got " + delete.origin(); + // resolve operation from external to internal + final VersionValue versionValue = docVersionSupplier.apply(delete, delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO); + // TODO - assert incrementVersionLookup(); + final long currentVersion; + final boolean currentlyDeleted; + if (versionValue == null) { + currentVersion = Versions.NOT_FOUND; + currentlyDeleted = true; + } else { + currentVersion = versionValue.version; + currentlyDeleted = versionValue.isDelete(); + } + final DeletionStrategy plan; + if (delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && currentlyDeleted) { + final VersionConflictEngineException e = new VersionConflictEngineException( + shardId, + delete.id(), + delete.getIfSeqNo(), + delete.getIfPrimaryTerm(), + SequenceNumbers.UNASSIGNED_SEQ_NO, + SequenceNumbers.UNASSIGNED_PRIMARY_TERM + ); + plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, true); + } else if (delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && (versionValue.seqNo != delete.getIfSeqNo() + || versionValue.term != delete.getIfPrimaryTerm())) { + final VersionConflictEngineException e = new VersionConflictEngineException( + shardId, + delete.id(), + delete.getIfSeqNo(), + delete.getIfPrimaryTerm(), + versionValue.seqNo, + versionValue.term + ); + plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, currentlyDeleted); + } else if (delete.versionType().isVersionConflictForWrites(currentVersion, delete.version(), currentlyDeleted)) { + final VersionConflictEngineException e = new VersionConflictEngineException(shardId, delete, currentVersion, currentlyDeleted); + plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, currentlyDeleted); + } else { + final Exception reserveError = tryAcquireInFlightDocs.apply(delete, 1); + if (reserveError != null) { + plan = DeletionStrategy.failAsTooManyDocs(reserveError); + } else { + final long versionOfDeletion = delete.versionType().updateVersion(currentVersion, delete.version()); + plan = DeletionStrategy.processNormally(currentlyDeleted, versionOfDeletion, 1); + } + } + return plan; + } + + @Override + public DeletionStrategy planOperationAsNonPrimary(Engine.Operation operation) throws IOException { + final Engine.Delete delete = (Engine.Delete) operation; + assert operation.origin() != Engine.Operation.Origin.PRIMARY : "planing as primary but got " + operation.origin(); + final DeletionStrategy plan; + if (hasBeenProcessedBefore.test(delete)) { + // the operation seq# was processed thus this operation was already put into lucene + // this can happen during recovery where older operations are sent from the translog that are already + // part of the lucene commit (either from a peer recovery or a local translog) + // or due to concurrent indexing & recovery. For the former it is important to skip lucene as the operation in + // question may have been deleted in an out of order op that is not replayed. + // See testRecoverFromStoreWithOutOfOrderDelete for an example of local recovery + // See testRecoveryWithOutOfOrderDelete for an example of peer recovery + plan = DeletionStrategy.processButSkipLucene(false, delete.version()); + } else { + boolean segRepEnabled = engineConfig.getIndexSettings().isSegRepEnabledOrRemoteNode(); + final Indexer.OpVsEngineDocStatus opVsLucene = opVsEngineDocStatusFunction.apply(delete); + if (opVsLucene == Indexer.OpVsEngineDocStatus.OP_STALE_OR_EQUAL) { + if (segRepEnabled) { + // For segrep based indices, we can't completely rely on localCheckpointTracker + // as the preserved checkpoint may not have all the operations present in lucene + // we don't need to index it again as stale op as it would create multiple documents for same seq no + plan = DeletionStrategy.processButSkipLucene(false, delete.version()); + } else { + plan = DeletionStrategy.processAsStaleOp(delete.version()); + } + } else { + plan = DeletionStrategy.processNormally(opVsLucene == Indexer.OpVsEngineDocStatus.DOC_NOT_FOUND, delete.version(), 0); + } + } + return plan; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/Engine.java b/server/src/main/java/org/opensearch/index/engine/Engine.java index c17927990df7f..fc1e8bb3db02a 100644 --- a/server/src/main/java/org/opensearch/index/engine/Engine.java +++ b/server/src/main/java/org/opensearch/index/engine/Engine.java @@ -221,17 +221,6 @@ public MergeStats getMergeStats() { /** returns the history uuid for the engine */ public abstract String getHistoryUUID(); - /** - * Reads the current stored history ID from commit data. - */ - String loadHistoryUUID(Map commitData) { - final String uuid = commitData.get(HISTORY_UUID_KEY); - if (uuid == null) { - throw new IllegalStateException("commit doesn't contain history uuid"); - } - return uuid; - } - /** Returns how many bytes we are currently moving from heap to disk */ public abstract long getWritingBytes(); @@ -338,69 +327,6 @@ protected long getMaxSeqNoFromSearcher(IndexSearcher searcher) throws IOExceptio return docIdAndVersion.seqNo; } - /** - * A throttling class that can be activated, causing the - * {@code acquireThrottle} method to block on a lock when throttling - * is enabled - * - * @opensearch.internal - */ - protected static final class IndexThrottle { - private final CounterMetric throttleTimeMillisMetric = new CounterMetric(); - private volatile long startOfThrottleNS; - private static final ReleasableLock NOOP_LOCK = new ReleasableLock(new NoOpLock()); - private final ReleasableLock lockReference = new ReleasableLock(new ReentrantLock()); - private volatile ReleasableLock lock = NOOP_LOCK; - - public Releasable acquireThrottle() { - return lock.acquire(); - } - - /** Activate throttling, which switches the lock to be a real lock */ - public void activate() { - assert lock == NOOP_LOCK : "throttling activated while already active"; - startOfThrottleNS = System.nanoTime(); - lock = lockReference; - } - - /** Deactivate throttling, which switches the lock to be an always-acquirable NoOpLock */ - public void deactivate() { - assert lock != NOOP_LOCK : "throttling deactivated but not active"; - lock = NOOP_LOCK; - - assert startOfThrottleNS > 0 : "Bad state of startOfThrottleNS"; - long throttleTimeNS = System.nanoTime() - startOfThrottleNS; - if (throttleTimeNS >= 0) { - // Paranoia (System.nanoTime() is supposed to be monotonic): time slip may have occurred but never want - // to add a negative number - throttleTimeMillisMetric.inc(TimeValue.nsecToMSec(throttleTimeNS)); - } - } - - long getThrottleTimeInMillis() { - long currentThrottleNS = 0; - if (isThrottled() && startOfThrottleNS != 0) { - currentThrottleNS += System.nanoTime() - startOfThrottleNS; - if (currentThrottleNS < 0) { - // Paranoia (System.nanoTime() is supposed to be monotonic): time slip must have happened, have to ignore this value - currentThrottleNS = 0; - } - } - return throttleTimeMillisMetric.count() + TimeValue.nsecToMSec(currentThrottleNS); - } - - boolean isThrottled() { - return lock != NOOP_LOCK; - } - - boolean throttleLockIsHeldByCurrentThread() { // to be used in assertions and tests only - if (isThrottled()) { - return lock.isHeldByCurrentThread(); - } - return false; - } - } - /** * Returns the number of milliseconds this engine was under index throttling. */ @@ -412,38 +338,6 @@ boolean throttleLockIsHeldByCurrentThread() { // to be used in assertions and te */ public abstract boolean isThrottled(); - /** - * A Lock implementation that always allows the lock to be acquired - * - * @opensearch.internal - */ - protected static final class NoOpLock implements Lock { - - @Override - public void lock() {} - - @Override - public void lockInterruptibly() throws InterruptedException {} - - @Override - public boolean tryLock() { - return true; - } - - @Override - public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { - return true; - } - - @Override - public void unlock() {} - - @Override - public Condition newCondition() { - throw new UnsupportedOperationException("NoOpLock can't provide a condition"); - } - } - /** * Perform document index operation on the engine * @param index operation to perform @@ -683,11 +577,11 @@ public boolean isFound() { @PublicApi(since = "1.0.0") public static class NoOpResult extends Result { - NoOpResult(long term, long seqNo) { + public NoOpResult(long term, long seqNo) { super(Operation.TYPE.NO_OP, 0, term, seqNo); } - NoOpResult(long term, long seqNo, Exception failure) { + public NoOpResult(long term, long seqNo, Exception failure) { super(Operation.TYPE.NO_OP, failure, 0, term, seqNo); } @@ -1559,7 +1453,7 @@ public boolean isRecovery() { return this == PEER_RECOVERY || this == LOCAL_TRANSLOG_RECOVERY; } - boolean isFromTranslog() { + public boolean isFromTranslog() { return this == LOCAL_TRANSLOG_RECOVERY || this == LOCAL_RESET; } } diff --git a/server/src/main/java/org/opensearch/index/engine/IndexThrottle.java b/server/src/main/java/org/opensearch/index/engine/IndexThrottle.java new file mode 100644 index 0000000000000..bc87a98ad8c42 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/IndexThrottle.java @@ -0,0 +1,114 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.common.lease.Releasable; +import org.opensearch.common.metrics.CounterMetric; +import org.opensearch.common.unit.TimeValue; +import org.opensearch.common.util.concurrent.ReleasableLock; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * A throttling class that can be activated, causing the + * {@code acquireThrottle} method to block on a lock when throttling + * is enabled + * + * @opensearch.internal + */ +public final class IndexThrottle { + private final CounterMetric throttleTimeMillisMetric = new CounterMetric(); + private volatile long startOfThrottleNS; + private static final ReleasableLock NOOP_LOCK = new ReleasableLock(new NoOpLock()); + private final ReleasableLock lockReference = new ReleasableLock(new ReentrantLock()); + private volatile ReleasableLock lock = NOOP_LOCK; + + public Releasable acquireThrottle() { + return lock.acquire(); + } + + /** Activate throttling, which switches the lock to be a real lock */ + public void activate() { + assert lock == NOOP_LOCK : "throttling activated while already active"; + startOfThrottleNS = System.nanoTime(); + lock = lockReference; + } + + /** Deactivate throttling, which switches the lock to be an always-acquirable NoOpLock */ + public void deactivate() { + assert lock != NOOP_LOCK : "throttling deactivated but not active"; + lock = NOOP_LOCK; + + assert startOfThrottleNS > 0 : "Bad state of startOfThrottleNS"; + long throttleTimeNS = System.nanoTime() - startOfThrottleNS; + if (throttleTimeNS >= 0) { + // Paranoia (System.nanoTime() is supposed to be monotonic): time slip may have occurred but never want + // to add a negative number + throttleTimeMillisMetric.inc(TimeValue.nsecToMSec(throttleTimeNS)); + } + } + + public long getThrottleTimeInMillis() { + long currentThrottleNS = 0; + if (isThrottled() && startOfThrottleNS != 0) { + currentThrottleNS += System.nanoTime() - startOfThrottleNS; + if (currentThrottleNS < 0) { + // Paranoia (System.nanoTime() is supposed to be monotonic): time slip must have happened, have to ignore this value + currentThrottleNS = 0; + } + } + return throttleTimeMillisMetric.count() + TimeValue.nsecToMSec(currentThrottleNS); + } + + public boolean isThrottled() { + return lock != NOOP_LOCK; + } + + public boolean throttleLockIsHeldByCurrentThread() { // to be used in assertions and tests only + if (isThrottled()) { + return lock.isHeldByCurrentThread(); + } + return false; + } + + /** + * A Lock implementation that always allows the lock to be acquired + * + * @opensearch.internal + */ + static final class NoOpLock implements Lock { + + @Override + public void lock() {} + + @Override + public void lockInterruptibly() throws InterruptedException {} + + @Override + public boolean tryLock() { + return true; + } + + @Override + public boolean tryLock(long time, TimeUnit unit) throws InterruptedException { + return true; + } + + @Override + public void unlock() {} + + @Override + public Condition newCondition() { + throw new UnsupportedOperationException("NoOpLock can't provide a condition"); + } + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/IndexVersionValue.java b/server/src/main/java/org/opensearch/index/engine/IndexVersionValue.java index c297022f5766d..bf51ebf6ce41b 100644 --- a/server/src/main/java/org/opensearch/index/engine/IndexVersionValue.java +++ b/server/src/main/java/org/opensearch/index/engine/IndexVersionValue.java @@ -42,14 +42,14 @@ * * @opensearch.internal */ -final class IndexVersionValue extends VersionValue { +public final class IndexVersionValue extends VersionValue { private static final long RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(IndexVersionValue.class); private static final long TRANSLOG_LOC_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(Translog.Location.class); private final Translog.Location translogLocation; - IndexVersionValue(Translog.Location translogLocation, long version, long seqNo, long term) { + public IndexVersionValue(Translog.Location translogLocation, long version, long seqNo, long term) { super(version, seqNo, term); this.translogLocation = translogLocation; } diff --git a/server/src/main/java/org/opensearch/index/engine/IndexingStrategy.java b/server/src/main/java/org/opensearch/index/engine/IndexingStrategy.java new file mode 100644 index 0000000000000..a4b0a95b32af8 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/IndexingStrategy.java @@ -0,0 +1,82 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.common.lucene.uid.Versions; + +/** + * The indexing strategy + * + * @opensearch.internal + */ +public class IndexingStrategy extends OperationStrategy { + + public final boolean currentNotFoundOrDeleted; + public final boolean optimizeAppendOnly; + + private IndexingStrategy( + boolean currentNotFoundOrDeleted, + boolean optimizeAppendOnly, + boolean indexIntoEngine, + boolean addStaleOpToEngine, + long versionForIndexing, + int reservedDocs, + Engine.IndexResult earlyResultOnPreFlightError + ) { + super(indexIntoEngine, addStaleOpToEngine, versionForIndexing, earlyResultOnPreFlightError, reservedDocs); + assert (indexIntoEngine && earlyResultOnPreFlightError != null) == false : + "can only index into engine or have a preflight result but not both." + "indexIntoEngine: " + indexIntoEngine + + " earlyResultOnPreFlightError:" + earlyResultOnPreFlightError; + assert reservedDocs == 0 || indexIntoEngine || addStaleOpToEngine : reservedDocs; + this.currentNotFoundOrDeleted = currentNotFoundOrDeleted; + this.optimizeAppendOnly = optimizeAppendOnly; + } + + static IndexingStrategy optimizedAppendOnly(long versionForIndexing, int reservedDocs) { + return new IndexingStrategy(true, false, true, false, versionForIndexing, reservedDocs, null); + } + + public static IndexingStrategy skipDueToVersionConflict( + VersionConflictEngineException e, + boolean currentNotFoundOrDeleted, + long currentVersion + ) { + final Engine.IndexResult result = new Engine.IndexResult(e, currentVersion); + return new IndexingStrategy(currentNotFoundOrDeleted, false, false, false, Versions.NOT_FOUND, 0, result); + } + + static IndexingStrategy processNormally(boolean currentNotFoundOrDeleted, long versionForIndexing, int reservedDocs) { + return new IndexingStrategy( + currentNotFoundOrDeleted, + currentNotFoundOrDeleted == false, + true, + false, + versionForIndexing, + reservedDocs, + null + ); + } + + public static IndexingStrategy processButSkipEngine(boolean currentNotFoundOrDeleted, long versionForIndexing) { + return new IndexingStrategy(currentNotFoundOrDeleted, false, false, false, versionForIndexing, 0, null); + } + + static IndexingStrategy processAsStaleOp(long versionForIndexing) { + return new IndexingStrategy(false, false, false, true, versionForIndexing, 0, null); + } + + static IndexingStrategy failAsTooManyDocs(Exception e) { + final Engine.IndexResult result = new Engine.IndexResult(e, Versions.NOT_FOUND); + return new IndexingStrategy(false, false, false, false, Versions.NOT_FOUND, 0, result); + } + + static IndexingStrategy failAsIndexAppendOnly(Engine.IndexResult result, long versionForIndexing, int reservedDocs) { + return new IndexingStrategy(false, false, false, true, versionForIndexing, reservedDocs, result); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/IndexingStrategyPlanner.java b/server/src/main/java/org/opensearch/index/engine/IndexingStrategyPlanner.java new file mode 100644 index 0000000000000..4f848c5417ffc --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/IndexingStrategyPlanner.java @@ -0,0 +1,243 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import org.opensearch.action.index.IndexRequest; +import org.opensearch.common.CheckedBiFunction; +import org.opensearch.common.CheckedFunction; +import org.opensearch.common.lucene.uid.Versions; +import org.opensearch.core.index.AppendOnlyIndexOperationRetryException; +import org.opensearch.core.index.shard.ShardId; +import org.opensearch.index.VersionType; +import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.seqno.SequenceNumbers; + +import java.io.IOException; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Predicate; +import java.util.function.Supplier; + +public class IndexingStrategyPlanner implements OperationStrategyPlanner { + + private final EngineConfig engineConfig; + private final ShardId shardId; + private final LiveVersionMap versionMap; + private final Supplier maxUnsafeAutoIdTimestampSupplier; + private final Supplier maxSeqNoOfUpdatesOrDeletesSupplier; + private final Supplier processedCheckpointSupplier; + private final Predicate hasBeenProcessedBefore; + private final CheckedFunction opVsEngineDocStatusFunction; + private final CheckedBiFunction docVersionSupplier; + private final BiConsumer updateAutoIdTimestampConsumer; + private final BiFunction tryAcquireInFlightDocs; + + public IndexingStrategyPlanner( + EngineConfig engineConfig, + ShardId shardId, + LiveVersionMap versionMap, + Supplier maxUnsafeAutoIdTimestampSupplier, + Supplier maxSeqNoOfUpdatesOrDeletesSupplier, + Supplier processedCheckpointSupplier, + Predicate hasBeenProcessedBefore, + CheckedFunction opVsEngineDocStatusFunction, + CheckedBiFunction docVersionSupplier, + BiConsumer updateAutoIdTimestampConsumer, + BiFunction tryAcquireInFlightDocs + ) { + this.engineConfig = engineConfig; + this.shardId = shardId; + this.versionMap = versionMap; + this.maxUnsafeAutoIdTimestampSupplier = maxUnsafeAutoIdTimestampSupplier; + this.maxSeqNoOfUpdatesOrDeletesSupplier = maxSeqNoOfUpdatesOrDeletesSupplier; + this.processedCheckpointSupplier = processedCheckpointSupplier; + this.hasBeenProcessedBefore = hasBeenProcessedBefore; + this.opVsEngineDocStatusFunction = opVsEngineDocStatusFunction; + this.docVersionSupplier = docVersionSupplier; + this.updateAutoIdTimestampConsumer = updateAutoIdTimestampConsumer; + this.tryAcquireInFlightDocs = tryAcquireInFlightDocs; + } + + @Override + public IndexingStrategy planOperationAsPrimary(Engine.Operation operation) throws IOException { + final Engine.Index index = (Engine.Index) operation; + assert index.origin() == Engine.Operation.Origin.PRIMARY : "planing as primary but origin isn't. got " + index.origin(); + final int reservingDocs = index.parsedDoc().docs().size(); + final IndexingStrategy plan; + // resolve an external operation into an internal one which is safe to replay + final boolean canOptimizeAddDocument = canOptimizeAddDocument(index); + if (canOptimizeAddDocument && mayHaveBeenIndexedBefore(index) == false) { + final Exception reserveError = tryAcquireInFlightDocs.apply(index, reservingDocs); + if (reserveError != null) { + plan = IndexingStrategy.failAsTooManyDocs(reserveError); + } else { + plan = IndexingStrategy.optimizedAppendOnly(1L, reservingDocs); + } + } else { + versionMap.enforceSafeAccess(); + // resolves incoming version + final VersionValue versionValue = docVersionSupplier.apply(index, true); + final long currentVersion; + final boolean currentNotFoundOrDeleted; + if (versionValue == null) { + currentVersion = Versions.NOT_FOUND; + currentNotFoundOrDeleted = true; + } else { + currentVersion = versionValue.version; + currentNotFoundOrDeleted = versionValue.isDelete(); + } + if (index.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && currentNotFoundOrDeleted) { + final VersionConflictEngineException e = new VersionConflictEngineException( + shardId, + index.id(), + index.getIfSeqNo(), + index.getIfPrimaryTerm(), + SequenceNumbers.UNASSIGNED_SEQ_NO, + SequenceNumbers.UNASSIGNED_PRIMARY_TERM + ); + plan = IndexingStrategy.skipDueToVersionConflict(e, true, currentVersion); + } else if (index.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && (versionValue.seqNo != index.getIfSeqNo() + || versionValue.term != index.getIfPrimaryTerm())) { + final VersionConflictEngineException e = new VersionConflictEngineException( + shardId, + index.id(), + index.getIfSeqNo(), + index.getIfPrimaryTerm(), + versionValue.seqNo, + versionValue.term + ); + plan = IndexingStrategy.skipDueToVersionConflict(e, currentNotFoundOrDeleted, currentVersion); + } else if (index.versionType().isVersionConflictForWrites(currentVersion, index.version(), currentNotFoundOrDeleted)) { + final VersionConflictEngineException e = + new VersionConflictEngineException(shardId, index, currentVersion, currentNotFoundOrDeleted); + plan = IndexingStrategy.skipDueToVersionConflict(e, currentNotFoundOrDeleted, currentVersion); + } else { + final Exception reserveError = tryAcquireInFlightDocs.apply(index, reservingDocs); + if (reserveError != null) { + plan = IndexingStrategy.failAsTooManyDocs(reserveError); + } else if (currentVersion >= 1 && engineConfig.getIndexSettings().getIndexMetadata().isAppendOnlyIndex()) { + // Retry happens for indexing requests for append only indices, since we are rejecting update requests + // at Transport layer itself. So for any retry, we are reconstructing response from already indexed + // document version for append only index. + AppendOnlyIndexOperationRetryException retryException = + new AppendOnlyIndexOperationRetryException("Indexing operation retried for append only indices"); + final Engine.IndexResult result = + new Engine.IndexResult(retryException, currentVersion, versionValue.term, versionValue.seqNo); + plan = IndexingStrategy.failAsIndexAppendOnly(result, currentVersion, 0); + } else { + plan = IndexingStrategy.processNormally( + currentNotFoundOrDeleted, + canOptimizeAddDocument ? 1L : index.versionType().updateVersion(currentVersion, index.version()), + reservingDocs + ); + } + } + } + return plan; + } + + @Override + public IndexingStrategy planOperationAsNonPrimary(Engine.Operation operation) throws IOException { + final Engine.Index index = (Engine.Index) operation; + assert index.origin() != Engine.Operation.Origin.PRIMARY : "planing as primary but got " + index.origin(); + // needs to maintain the auto_id timestamp in case this replica becomes primary + if (canOptimizeAddDocument(index)) { + mayHaveBeenIndexedBefore(index); + } + final IndexingStrategy plan; + // unlike the primary, replicas don't really care to about creation status of documents + // this allows to ignore the case where a document was found in the live version maps in + // a delete state and return false for the created flag in favor of code simplicity + final long maxSeqNoOfUpdatesOrDeletes = maxSeqNoOfUpdatesOrDeletesSupplier.get(); + if (hasBeenProcessedBefore.test(index)) { + // the operation seq# was processed and thus the same operation was already put into lucene + // this can happen during recovery where older operations are sent from the translog that are already + // part of the lucene commit (either from a peer recovery or a local translog) + // or due to concurrent indexing & recovery. For the former it is important to skip lucene as the operation in + // question may have been deleted in an out of order op that is not replayed. + // See testRecoverFromStoreWithOutOfOrderDelete for an example of local recovery + // See testRecoveryWithOutOfOrderDelete for an example of peer recovery + plan = IndexingStrategy.processButSkipEngine(false, index.version()); + } else if (maxSeqNoOfUpdatesOrDeletes <= processedCheckpointSupplier.get()) { + // see Engine#getMaxSeqNoOfUpdatesOrDeletes for the explanation of the optimization using sequence numbers + assert maxSeqNoOfUpdatesOrDeletes < index.seqNo() : index.seqNo() + ">=" + maxSeqNoOfUpdatesOrDeletes; + plan = IndexingStrategy.optimizedAppendOnly(index.version(), 0); + } else { + boolean segRepEnabled = engineConfig.getIndexSettings().isSegRepEnabledOrRemoteNode(); + versionMap.enforceSafeAccess(); + final Indexer.OpVsEngineDocStatus opVsLucene = opVsEngineDocStatusFunction.apply(index); + if (opVsLucene == Indexer.OpVsEngineDocStatus.OP_STALE_OR_EQUAL) { + if (segRepEnabled) { + // For segrep based indices, we can't completely rely on localCheckpointTracker + // as the preserved checkpoint may not have all the operations present in lucene + // we don't need to index it again as stale op as it would create multiple documents for same seq no + plan = IndexingStrategy.processButSkipEngine(false, index.version()); + } else { + plan = IndexingStrategy.processAsStaleOp(index.version()); + } + } else { + plan = IndexingStrategy.processNormally(opVsLucene == Indexer.OpVsEngineDocStatus.DOC_NOT_FOUND, index.version(), 0); + } + } + return plan; + } + + private boolean canOptimizeAddDocument(Engine.Index index) { + if (index.getAutoGeneratedIdTimestamp() != IndexRequest.UNSET_AUTO_GENERATED_TIMESTAMP) { + assert + index.getAutoGeneratedIdTimestamp() >= 0 : + "autoGeneratedIdTimestamp must be positive but was: " + index.getAutoGeneratedIdTimestamp(); + return switch (index.origin()) { + case PRIMARY -> { + assert assertPrimaryCanOptimizeAddDocument(index); + yield true; + } + case PEER_RECOVERY, REPLICA -> { + assert + index.version() == 1 && index.versionType() == null : + "version: " + index.version() + " type: " + index.versionType(); + yield true; + } + case LOCAL_TRANSLOG_RECOVERY, LOCAL_RESET -> { + assert index.isRetry(); + yield true; + } + default -> throw new IllegalArgumentException("unknown origin " + index.origin()); + }; + } + return false; + } + + protected boolean assertPrimaryCanOptimizeAddDocument(final Engine.Index index) { + assert (index.version() == Versions.MATCH_DELETED || index.version() == Versions.MATCH_ANY) + && index.versionType() == VersionType.INTERNAL : "version: " + index.version() + " type: " + index.versionType(); + return true; + } + + /** + * returns true if the indexing operation may have already be processed by this engine. + * Note that it is OK to rarely return true even if this is not the case. However a `false` + * return value must always be correct. + * + */ + private boolean mayHaveBeenIndexedBefore(Engine.Index index) { + assert canOptimizeAddDocument(index); + final boolean mayHaveBeenIndexBefore; + if (index.isRetry()) { + mayHaveBeenIndexBefore = true; + updateAutoIdTimestampConsumer.accept(index.getAutoGeneratedIdTimestamp(), true); + assert maxUnsafeAutoIdTimestampSupplier.get() >= index.getAutoGeneratedIdTimestamp(); + } else { + // in this case we force + mayHaveBeenIndexBefore = maxUnsafeAutoIdTimestampSupplier.get() >= index.getAutoGeneratedIdTimestamp(); + updateAutoIdTimestampConsumer.accept(index.getAutoGeneratedIdTimestamp(), false); + } + return mayHaveBeenIndexBefore; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java index b291c32b8c985..9db8956d6de37 100644 --- a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java @@ -44,6 +44,7 @@ import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.LiveIndexWriterConfig; import org.apache.lucene.index.MergePolicy; +import org.apache.lucene.index.NoMergePolicy; import org.apache.lucene.index.SegmentCommitInfo; import org.apache.lucene.index.SegmentInfos; import org.apache.lucene.index.SoftDeletesRetentionMergePolicy; @@ -63,6 +64,7 @@ import org.apache.lucene.store.AlreadyClosedException; import org.apache.lucene.store.Directory; import org.apache.lucene.store.LockObtainFailedException; +import org.apache.lucene.store.NIOFSDirectory; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.InfoStream; import org.opensearch.ExceptionsHelper; @@ -124,6 +126,7 @@ import java.io.Closeable; import java.io.IOException; +import java.nio.file.Files; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -224,6 +227,9 @@ public class InternalEngine extends Engine { private final int maxDocs; + private final IndexingStrategyPlanner indexingStrategyPlanner; + private final DeletionStrategyPlanner deletionStrategyPlanner; + public InternalEngine(EngineConfig engineConfig) { this(engineConfig, IndexWriter.MAX_DOCS, LocalCheckpointTracker::new, TranslogEventListener.NOOP_TRANSLOG_EVENT_LISTENER); } @@ -261,7 +267,8 @@ public TranslogManager translogManager() { mergeScheduler = scheduler = new EngineMergeScheduler(engineConfig.getShardId(), engineConfig.getIndexSettings()); throttle = new IndexThrottle(); try { - store.trimUnsafeCommits(engineConfig.getTranslogConfig().getTranslogPath()); + // Interim solution: Skipping trimming of unsafe commits until IndexShard integration of CompositeEngine is completed. + // store.trimUnsafeCommits(engineConfig.getTranslogConfig().getTranslogPath()); final Map userData = store.readLastCommittedSegmentsInfo().getUserData(); String translogUUID = Objects.requireNonNull(userData.get(Translog.TRANSLOG_UUID_KEY)); TranslogEventListener internalTranslogEventListener = new TranslogEventListener() { @@ -301,9 +308,10 @@ public void onFailure(String reason, Exception ex) { this.localCheckpointTracker = createLocalCheckpointTracker(localCheckpointTrackerSupplier); writer = createWriter(); bootstrapAppendOnlyInfoFromWriter(writer); + // Interim solution: Skipping loading historyUUID and forceMergeUUID until IndexShard integration of CompositeEngine is completed. final Map commitData = commitDataAsMap(writer); - historyUUID = loadHistoryUUID(commitData); - forceMergeUUID = commitData.get(FORCE_MERGE_UUID_KEY); + historyUUID = null; + forceMergeUUID = null; indexWriter = writer; } catch (IOException | TranslogCorruptedException e) { throw new EngineCreationFailureException(shardId, "failed to create engine", e); @@ -345,6 +353,27 @@ public void onFailure(String reason, Exception ex) { } completionStatsCache = new CompletionStatsCache(() -> acquireSearcher("completion_stats")); this.externalReaderManager.addListener(completionStatsCache); + this.indexingStrategyPlanner = new IndexingStrategyPlanner( + engineConfig, + engineConfig.getShardId(), + versionMap, + maxUnsafeAutoIdTimestamp::get, + maxSeqNoOfUpdatesOrDeletes::get, + localCheckpointTracker::getProcessedCheckpoint, + this::hasBeenProcessedBefore, + this::compareOpToLuceneDocBasedOnSeqNo, + this::resolveDocVersion, + this::updateAutoIdTimestamp, + this::tryAcquireInFlightDocs + ); + this.deletionStrategyPlanner = new DeletionStrategyPlanner( + engineConfig, + engineConfig.getShardId(), + this::hasBeenProcessedBefore, + this::compareOpToLuceneDocBasedOnSeqNo, + this::resolveDocVersion, + this::tryAcquireInFlightDocs + ); success = true; } finally { if (success == false) { @@ -699,41 +728,24 @@ public GetResult get(Get get, BiFunction } } - /** - * the status of the current doc version in lucene, compared to the version in an incoming - * operation - */ - enum OpVsLuceneDocStatus { - /** the op is more recent than the one that last modified the doc found in lucene*/ - OP_NEWER, - /** the op is older or the same as the one that last modified the doc found in lucene*/ - OP_STALE_OR_EQUAL, - /** no doc was found in lucene */ - LUCENE_DOC_NOT_FOUND - } - - private static OpVsLuceneDocStatus compareOpToVersionMapOnSeqNo(String id, long seqNo, long primaryTerm, VersionValue versionValue) { + private static OpVsEngineDocStatus compareOpToVersionMapOnSeqNo(String id, long seqNo, long primaryTerm, VersionValue versionValue) { Objects.requireNonNull(versionValue); if (seqNo > versionValue.seqNo) { - return OpVsLuceneDocStatus.OP_NEWER; + return OpVsEngineDocStatus.OP_NEWER; } else if (seqNo == versionValue.seqNo) { - assert versionValue.term == primaryTerm : "primary term not matched; id=" - + id - + " seq_no=" - + seqNo - + " op_term=" - + primaryTerm - + " existing_term=" - + versionValue.term; - return OpVsLuceneDocStatus.OP_STALE_OR_EQUAL; + assert + versionValue.term == primaryTerm : + "primary term not matched; id=" + id + " seq_no=" + seqNo + " op_term=" + primaryTerm + " existing_term=" + + versionValue.term; + return OpVsEngineDocStatus.OP_STALE_OR_EQUAL; } else { - return OpVsLuceneDocStatus.OP_STALE_OR_EQUAL; + return OpVsEngineDocStatus.OP_STALE_OR_EQUAL; } } - private OpVsLuceneDocStatus compareOpToLuceneDocBasedOnSeqNo(final Operation op) throws IOException { + private OpVsEngineDocStatus compareOpToLuceneDocBasedOnSeqNo(final Operation op) throws IOException { assert op.seqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO : "resolving ops based on seq# but no seqNo is found"; - final OpVsLuceneDocStatus status; + final OpVsEngineDocStatus status; VersionValue versionValue = getVersionFromMap(op.uid().bytes()); assert incrementVersionLookup(); boolean segRepEnabled = engineConfig.getIndexSettings().isSegRepEnabledOrRemoteNode(); @@ -745,15 +757,16 @@ private OpVsLuceneDocStatus compareOpToLuceneDocBasedOnSeqNo(final Operation op) try (Searcher searcher = acquireSearcher("load_seq_no", SearcherScope.INTERNAL)) { final DocIdAndSeqNo docAndSeqNo = VersionsAndSeqNoResolver.loadDocIdAndSeqNo(searcher.getIndexReader(), op.uid()); if (docAndSeqNo == null) { - status = OpVsLuceneDocStatus.LUCENE_DOC_NOT_FOUND; + status = OpVsEngineDocStatus.DOC_NOT_FOUND; } else if (op.seqNo() > docAndSeqNo.seqNo) { - status = OpVsLuceneDocStatus.OP_NEWER; + status = OpVsEngineDocStatus.OP_NEWER; } else if (op.seqNo() == docAndSeqNo.seqNo) { - assert localCheckpointTracker.hasProcessed(op.seqNo()) || segRepEnabled - : "local checkpoint tracker is not updated seq_no=" + op.seqNo() + " id=" + op.id(); - status = OpVsLuceneDocStatus.OP_STALE_OR_EQUAL; + assert + localCheckpointTracker.hasProcessed(op.seqNo()) || segRepEnabled : + "local checkpoint tracker is not updated seq_no=" + op.seqNo() + " id=" + op.id(); + status = OpVsEngineDocStatus.OP_STALE_OR_EQUAL; } else { - status = OpVsLuceneDocStatus.OP_STALE_OR_EQUAL; + status = OpVsEngineDocStatus.OP_STALE_OR_EQUAL; } } } @@ -828,24 +841,6 @@ protected boolean assertPrimaryCanOptimizeAddDocument(final Index index) { return true; } - private boolean assertIncomingSequenceNumber(final Engine.Operation.Origin origin, final long seqNo) { - if (origin == Operation.Origin.PRIMARY) { - assert assertPrimaryIncomingSequenceNumber(origin, seqNo); - } else { - // sequence number should be set when operation origin is not primary - assert seqNo >= 0 : "recovery or replica ops should have an assigned seq no.; origin: " + origin; - } - return true; - } - - protected boolean assertPrimaryIncomingSequenceNumber(final Engine.Operation.Origin origin, final long seqNo) { - // sequence number should not be set when operation origin is primary - assert seqNo == SequenceNumbers.UNASSIGNED_SEQ_NO : "primary operations must never have an assigned sequence number but was [" - + seqNo - + "]"; - return true; - } - protected long generateSeqNoForOperationOnPrimary(final Operation operation) { assert operation.origin() == Operation.Origin.PRIMARY; assert operation.seqNo() == SequenceNumbers.UNASSIGNED_SEQ_NO : "ops should not have an assigned seq no. but was: " @@ -863,7 +858,7 @@ protected void advanceMaxSeqNoOfUpdatesOrDeletesOnPrimary(long seqNo) { * @param operation the operation * @return the sequence number */ - long doGenerateSeqNoForOperation(final Operation operation) { + public long doGenerateSeqNoForOperation(final Operation operation) { return localCheckpointTracker.generateSeqNo(); } @@ -912,7 +907,7 @@ public IndexResult index(Index index) throws IOException { final IndexResult indexResult; if (plan.earlyResultOnPreFlightError.isPresent()) { assert index.origin() == Operation.Origin.PRIMARY : index.origin(); - indexResult = plan.earlyResultOnPreFlightError.get(); + indexResult = (Engine.IndexResult) plan.earlyResultOnPreFlightError.get(); assert indexResult.getResultType() == Result.Type.FAILURE : indexResult.getResultType(); } else { // generate or register sequence number @@ -932,7 +927,7 @@ public IndexResult index(Index index) throws IOException { index.getIfPrimaryTerm() ); - final boolean toAppend = plan.indexIntoLucene && plan.useLuceneUpdateDocument == false; + final boolean toAppend = plan.executeOpOnEngine && plan.optimizeAppendOnly == false; if (toAppend == false) { advanceMaxSeqNoOfUpdatesOrDeletesOnPrimary(index.seqNo()); } @@ -942,15 +937,10 @@ public IndexResult index(Index index) throws IOException { assert index.seqNo() >= 0 : "ops should have an assigned seq no.; origin: " + index.origin(); - if (plan.indexIntoLucene || plan.addStaleOpToLucene) { + if (plan.executeOpOnEngine || plan.optimizeAppendOnly) { indexResult = indexIntoLucene(index, plan); } else { - indexResult = new IndexResult( - plan.versionForIndexing, - index.primaryTerm(), - index.seqNo(), - plan.currentNotFoundOrDeleted - ); + indexResult = new IndexResult(plan.version, index.primaryTerm(), index.seqNo(), plan.currentNotFoundOrDeleted); } } @@ -975,11 +965,11 @@ public IndexResult index(Index index) throws IOException { } indexResult.setTranslogLocation(location); } - if (plan.indexIntoLucene && indexResult.getResultType() == Result.Type.SUCCESS) { + if (plan.executeOpOnEngine && indexResult.getResultType() == Result.Type.SUCCESS) { final Translog.Location translogLocation = trackTranslogLocation.get() ? indexResult.getTranslogLocation() : null; versionMap.maybePutIndexUnderLock( index.uid().bytes(), - new IndexVersionValue(translogLocation, plan.versionForIndexing, index.seqNo(), index.primaryTerm()) + new IndexVersionValue(translogLocation, plan.version, index.seqNo(), index.primaryTerm()) ); } localCheckpointTracker.markSeqNoAsProcessed(indexResult.getSeqNo()); @@ -1010,153 +1000,29 @@ public IndexResult index(Index index) throws IOException { } } - protected final IndexingStrategy planIndexingAsNonPrimary(Index index) throws IOException { - assert assertNonPrimaryOrigin(index); - // needs to maintain the auto_id timestamp in case this replica becomes primary - if (canOptimizeAddDocument(index)) { - mayHaveBeenIndexedBefore(index); - } - final IndexingStrategy plan; - // unlike the primary, replicas don't really care to about creation status of documents - // this allows to ignore the case where a document was found in the live version maps in - // a delete state and return false for the created flag in favor of code simplicity - final long maxSeqNoOfUpdatesOrDeletes = getMaxSeqNoOfUpdatesOrDeletes(); - if (hasBeenProcessedBefore(index)) { - // the operation seq# was processed and thus the same operation was already put into lucene - // this can happen during recovery where older operations are sent from the translog that are already - // part of the lucene commit (either from a peer recovery or a local translog) - // or due to concurrent indexing & recovery. For the former it is important to skip lucene as the operation in - // question may have been deleted in an out of order op that is not replayed. - // See testRecoverFromStoreWithOutOfOrderDelete for an example of local recovery - // See testRecoveryWithOutOfOrderDelete for an example of peer recovery - plan = IndexingStrategy.processButSkipLucene(false, index.version()); - } else if (maxSeqNoOfUpdatesOrDeletes <= localCheckpointTracker.getProcessedCheckpoint()) { - // see Engine#getMaxSeqNoOfUpdatesOrDeletes for the explanation of the optimization using sequence numbers - assert maxSeqNoOfUpdatesOrDeletes < index.seqNo() : index.seqNo() + ">=" + maxSeqNoOfUpdatesOrDeletes; - plan = IndexingStrategy.optimizedAppendOnly(index.version(), 0); - } else { - boolean segRepEnabled = engineConfig.getIndexSettings().isSegRepEnabledOrRemoteNode(); - versionMap.enforceSafeAccess(); - final OpVsLuceneDocStatus opVsLucene = compareOpToLuceneDocBasedOnSeqNo(index); - if (opVsLucene == OpVsLuceneDocStatus.OP_STALE_OR_EQUAL) { - if (segRepEnabled) { - // For segrep based indices, we can't completely rely on localCheckpointTracker - // as the preserved checkpoint may not have all the operations present in lucene - // we don't need to index it again as stale op as it would create multiple documents for same seq no - plan = IndexingStrategy.processButSkipLucene(false, index.version()); - } else { - plan = IndexingStrategy.processAsStaleOp(index.version()); - } - } else { - plan = IndexingStrategy.processNormally(opVsLucene == OpVsLuceneDocStatus.LUCENE_DOC_NOT_FOUND, index.version(), 0); - } - } - return plan; - } - protected IndexingStrategy indexingStrategyForOperation(final Index index) throws IOException { if (index.origin() == Operation.Origin.PRIMARY) { - return planIndexingAsPrimary(index); + return indexingStrategyPlanner.planOperationAsPrimary(index); } else { // non-primary mode (i.e., replica or recovery) - return planIndexingAsNonPrimary(index); + return indexingStrategyPlanner.planOperationAsNonPrimary(index); } } - private IndexingStrategy planIndexingAsPrimary(Index index) throws IOException { - assert index.origin() == Operation.Origin.PRIMARY : "planing as primary but origin isn't. got " + index.origin(); - final int reservingDocs = index.parsedDoc().docs().size(); - final IndexingStrategy plan; - // resolve an external operation into an internal one which is safe to replay - final boolean canOptimizeAddDocument = canOptimizeAddDocument(index); - if (canOptimizeAddDocument && mayHaveBeenIndexedBefore(index) == false) { - final Exception reserveError = tryAcquireInFlightDocs(index, reservingDocs); - if (reserveError != null) { - plan = IndexingStrategy.failAsTooManyDocs(reserveError); - } else { - plan = IndexingStrategy.optimizedAppendOnly(1L, reservingDocs); - } - } else { - versionMap.enforceSafeAccess(); - // resolves incoming version - final VersionValue versionValue = resolveDocVersion(index, true); - final long currentVersion; - final boolean currentNotFoundOrDeleted; - if (versionValue == null) { - currentVersion = Versions.NOT_FOUND; - currentNotFoundOrDeleted = true; - } else { - currentVersion = versionValue.version; - currentNotFoundOrDeleted = versionValue.isDelete(); - } - if (index.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && currentNotFoundOrDeleted) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - index.id(), - index.getIfSeqNo(), - index.getIfPrimaryTerm(), - SequenceNumbers.UNASSIGNED_SEQ_NO, - SequenceNumbers.UNASSIGNED_PRIMARY_TERM - ); - plan = IndexingStrategy.skipDueToVersionConflict(e, true, currentVersion); - } else if (index.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO - && (versionValue.seqNo != index.getIfSeqNo() || versionValue.term != index.getIfPrimaryTerm())) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - index.id(), - index.getIfSeqNo(), - index.getIfPrimaryTerm(), - versionValue.seqNo, - versionValue.term - ); - plan = IndexingStrategy.skipDueToVersionConflict(e, currentNotFoundOrDeleted, currentVersion); - } else if (index.versionType().isVersionConflictForWrites(currentVersion, index.version(), currentNotFoundOrDeleted)) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - index, - currentVersion, - currentNotFoundOrDeleted - ); - plan = IndexingStrategy.skipDueToVersionConflict(e, currentNotFoundOrDeleted, currentVersion); - } else { - final Exception reserveError = tryAcquireInFlightDocs(index, reservingDocs); - if (reserveError != null) { - plan = IndexingStrategy.failAsTooManyDocs(reserveError); - } else if (currentVersion >= 1 && engineConfig.getIndexSettings().getIndexMetadata().isAppendOnlyIndex()) { - // Retry happens for indexing requests for append only indices, since we are rejecting update requests - // at Transport layer itself. So for any retry, we are reconstructing response from already indexed - // document version for append only index. - AppendOnlyIndexOperationRetryException retryException = new AppendOnlyIndexOperationRetryException( - "Indexing operation retried for append only indices" - ); - final IndexResult result = new IndexResult(retryException, currentVersion, versionValue.term, versionValue.seqNo); - plan = IndexingStrategy.failAsIndexAppendOnly(result, currentVersion, 0); - } else { - plan = IndexingStrategy.processNormally( - currentNotFoundOrDeleted, - canOptimizeAddDocument ? 1L : index.versionType().updateVersion(currentVersion, index.version()), - reservingDocs - ); - } - } - } - return plan; - } - private IndexResult indexIntoLucene(Index index, IndexingStrategy plan) throws IOException { assert index.seqNo() >= 0 : "ops should have an assigned seq no.; origin: " + index.origin(); - assert plan.versionForIndexing >= 0 : "version must be set. got " + plan.versionForIndexing; - assert plan.indexIntoLucene || plan.addStaleOpToLucene; + assert plan.version >= 0 : "version must be set. got " + plan.version; + assert plan.executeOpOnEngine || plan.addStaleOpToEngine; /* Update the document's sequence number and primary term; the sequence number here is derived here from either the sequence * number service if this is on the primary, or the existing document's sequence number if this is on the replica. The * primary term here has already been set, see IndexShard#prepareIndex where the Engine$Index operation is created. */ index.parsedDoc().updateSeqID(index.seqNo(), index.primaryTerm()); - index.parsedDoc().version().setLongValue(plan.versionForIndexing); + index.parsedDoc().version().setLongValue(plan.version); try { - if (plan.addStaleOpToLucene) { + if (plan.addStaleOpToEngine) { addStaleDocs(index.docs(), indexWriter); - } else if (plan.useLuceneUpdateDocument) { + } else if (plan.optimizeAppendOnly) { assert assertMaxSeqNoOfUpdatesIsAdvanced(index.uid(), index.seqNo(), true, true); updateDocs(index.uid(), index.docs(), indexWriter); } else { @@ -1164,7 +1030,7 @@ private IndexResult indexIntoLucene(Index index, IndexingStrategy plan) throws I assert assertDocDoesNotExist(index, canOptimizeAddDocument(index) == false); addDocs(index.docs(), indexWriter); } - return new IndexResult(plan.versionForIndexing, index.primaryTerm(), index.seqNo(), plan.currentNotFoundOrDeleted); + return new IndexResult(plan.version, index.primaryTerm(), index.seqNo(), plan.currentNotFoundOrDeleted); } catch (Exception ex) { if (ex instanceof AlreadyClosedException == false && indexWriter.getTragicException() == null @@ -1189,39 +1055,6 @@ && treatDocumentFailureAsTragicError(index) == false) { } } - /** - * Whether we should treat any document failure as tragic error. - * If we hit any failure while processing an indexing on a replica, we should treat that error as tragic and fail the engine. - * However, we prefer to fail a request individually (instead of a shard) if we hit a document failure on the primary. - */ - private boolean treatDocumentFailureAsTragicError(Index index) { - // TODO: can we enable this check for all origins except primary on the leader? - return index.origin() == Operation.Origin.REPLICA - || index.origin() == Operation.Origin.PEER_RECOVERY - || index.origin() == Operation.Origin.LOCAL_RESET; - } - - /** - * returns true if the indexing operation may have already be processed by this engine. - * Note that it is OK to rarely return true even if this is not the case. However a `false` - * return value must always be correct. - * - */ - private boolean mayHaveBeenIndexedBefore(Index index) { - assert canOptimizeAddDocument(index); - final boolean mayHaveBeenIndexBefore; - if (index.isRetry()) { - mayHaveBeenIndexBefore = true; - updateAutoIdTimestamp(index.getAutoGeneratedIdTimestamp(), true); - assert maxUnsafeAutoIdTimestamp.get() >= index.getAutoGeneratedIdTimestamp(); - } else { - // in this case we force - mayHaveBeenIndexBefore = maxUnsafeAutoIdTimestamp.get() >= index.getAutoGeneratedIdTimestamp(); - updateAutoIdTimestamp(index.getAutoGeneratedIdTimestamp(), false); - } - return mayHaveBeenIndexBefore; - } - private void addDocs(final List docs, final IndexWriter indexWriter) throws IOException { if (docs.size() > 1) { indexWriter.addDocuments(docs); @@ -1242,92 +1075,6 @@ private void addStaleDocs(final List docs, final IndexWri } } - /** - * The indexing strategy - * - * @opensearch.internal - */ - protected static final class IndexingStrategy { - final boolean currentNotFoundOrDeleted; - final boolean useLuceneUpdateDocument; - final long versionForIndexing; - final boolean indexIntoLucene; - final boolean addStaleOpToLucene; - final int reservedDocs; - final Optional earlyResultOnPreFlightError; - - private IndexingStrategy( - boolean currentNotFoundOrDeleted, - boolean useLuceneUpdateDocument, - boolean indexIntoLucene, - boolean addStaleOpToLucene, - long versionForIndexing, - int reservedDocs, - IndexResult earlyResultOnPreFlightError - ) { - assert useLuceneUpdateDocument == false || indexIntoLucene - : "use lucene update is set to true, but we're not indexing into lucene"; - assert (indexIntoLucene && earlyResultOnPreFlightError != null) == false - : "can only index into lucene or have a preflight result but not both." - + "indexIntoLucene: " - + indexIntoLucene - + " earlyResultOnPreFlightError:" - + earlyResultOnPreFlightError; - assert reservedDocs == 0 || indexIntoLucene || addStaleOpToLucene : reservedDocs; - this.currentNotFoundOrDeleted = currentNotFoundOrDeleted; - this.useLuceneUpdateDocument = useLuceneUpdateDocument; - this.versionForIndexing = versionForIndexing; - this.indexIntoLucene = indexIntoLucene; - this.addStaleOpToLucene = addStaleOpToLucene; - this.reservedDocs = reservedDocs; - this.earlyResultOnPreFlightError = earlyResultOnPreFlightError == null - ? Optional.empty() - : Optional.of(earlyResultOnPreFlightError); - } - - static IndexingStrategy optimizedAppendOnly(long versionForIndexing, int reservedDocs) { - return new IndexingStrategy(true, false, true, false, versionForIndexing, reservedDocs, null); - } - - public static IndexingStrategy skipDueToVersionConflict( - VersionConflictEngineException e, - boolean currentNotFoundOrDeleted, - long currentVersion - ) { - final IndexResult result = new IndexResult(e, currentVersion); - return new IndexingStrategy(currentNotFoundOrDeleted, false, false, false, Versions.NOT_FOUND, 0, result); - } - - static IndexingStrategy processNormally(boolean currentNotFoundOrDeleted, long versionForIndexing, int reservedDocs) { - return new IndexingStrategy( - currentNotFoundOrDeleted, - currentNotFoundOrDeleted == false, - true, - false, - versionForIndexing, - reservedDocs, - null - ); - } - - public static IndexingStrategy processButSkipLucene(boolean currentNotFoundOrDeleted, long versionForIndexing) { - return new IndexingStrategy(currentNotFoundOrDeleted, false, false, false, versionForIndexing, 0, null); - } - - static IndexingStrategy processAsStaleOp(long versionForIndexing) { - return new IndexingStrategy(false, false, false, true, versionForIndexing, 0, null); - } - - static IndexingStrategy failAsTooManyDocs(Exception e) { - final IndexResult result = new IndexResult(e, Versions.NOT_FOUND); - return new IndexingStrategy(false, false, false, false, Versions.NOT_FOUND, 0, result); - } - - static IndexingStrategy failAsIndexAppendOnly(IndexResult result, long versionForIndexing, int reservedDocs) { - return new IndexingStrategy(false, false, false, true, versionForIndexing, reservedDocs, result); - } - } - /** * Asserts that the doc in the index operation really doesn't exist */ @@ -1380,9 +1127,9 @@ public DeleteResult delete(Delete delete) throws IOException { lastWriteNanos = delete.startTime(); final DeletionStrategy plan = deletionStrategyForOperation(delete); reservedDocs = plan.reservedDocs; - if (plan.earlyResultOnPreflightError.isPresent()) { + if (plan.earlyResultOnPreFlightError.isPresent()) { assert delete.origin() == Operation.Origin.PRIMARY : delete.origin(); - deleteResult = plan.earlyResultOnPreflightError.get(); + deleteResult = (DeleteResult) plan.earlyResultOnPreFlightError.get(); } else { // generate or register sequence number if (delete.origin() == Operation.Origin.PRIMARY) { @@ -1406,14 +1153,14 @@ public DeleteResult delete(Delete delete) throws IOException { assert delete.seqNo() >= 0 : "ops should have an assigned seq no.; origin: " + delete.origin(); - if (plan.deleteFromLucene || plan.addStaleOpToLucene) { + if (plan.executeOpOnEngine || plan.addStaleOpToEngine) { deleteResult = deleteInLucene(delete, plan); - if (plan.deleteFromLucene) { + if (plan.executeOpOnEngine) { numDocDeletes.inc(); versionMap.putDeleteUnderLock( delete.uid().bytes(), new DeleteVersionValue( - plan.versionOfDeletion, + plan.version, delete.seqNo(), delete.primaryTerm(), engineConfig.getThreadPool().relativeTimeInMillis() @@ -1421,12 +1168,7 @@ public DeleteResult delete(Delete delete) throws IOException { ); } } else { - deleteResult = new DeleteResult( - plan.versionOfDeletion, - delete.primaryTerm(), - delete.seqNo(), - plan.currentlyDeleted == false - ); + deleteResult = new DeleteResult(plan.version, delete.primaryTerm(), delete.seqNo(), plan.currentlyDeleted == false); } } if (delete.origin().isFromTranslog() == false && deleteResult.getResultType() == Result.Type.SUCCESS) { @@ -1482,42 +1224,11 @@ long getInFlightDocCount() { protected DeletionStrategy deletionStrategyForOperation(final Delete delete) throws IOException { if (delete.origin() == Operation.Origin.PRIMARY) { - return planDeletionAsPrimary(delete); + return deletionStrategyPlanner.planOperationAsPrimary(delete); } else { // non-primary mode (i.e., replica or recovery) - return planDeletionAsNonPrimary(delete); - } - } - - protected final DeletionStrategy planDeletionAsNonPrimary(Delete delete) throws IOException { - assert assertNonPrimaryOrigin(delete); - final DeletionStrategy plan; - if (hasBeenProcessedBefore(delete)) { - // the operation seq# was processed thus this operation was already put into lucene - // this can happen during recovery where older operations are sent from the translog that are already - // part of the lucene commit (either from a peer recovery or a local translog) - // or due to concurrent indexing & recovery. For the former it is important to skip lucene as the operation in - // question may have been deleted in an out of order op that is not replayed. - // See testRecoverFromStoreWithOutOfOrderDelete for an example of local recovery - // See testRecoveryWithOutOfOrderDelete for an example of peer recovery - plan = DeletionStrategy.processButSkipLucene(false, delete.version()); - } else { - boolean segRepEnabled = engineConfig.getIndexSettings().isSegRepEnabledOrRemoteNode(); - final OpVsLuceneDocStatus opVsLucene = compareOpToLuceneDocBasedOnSeqNo(delete); - if (opVsLucene == OpVsLuceneDocStatus.OP_STALE_OR_EQUAL) { - if (segRepEnabled) { - // For segrep based indices, we can't completely rely on localCheckpointTracker - // as the preserved checkpoint may not have all the operations present in lucene - // we don't need to index it again as stale op as it would create multiple documents for same seq no - plan = DeletionStrategy.processButSkipLucene(false, delete.version()); - } else { - plan = DeletionStrategy.processAsStaleOp(delete.version()); - } - } else { - plan = DeletionStrategy.processNormally(opVsLucene == OpVsLuceneDocStatus.LUCENE_DOC_NOT_FOUND, delete.version(), 0); - } + return deletionStrategyPlanner.planOperationAsNonPrimary(delete); } - return plan; } protected boolean assertNonPrimaryOrigin(final Operation operation) { @@ -1525,80 +1236,24 @@ protected boolean assertNonPrimaryOrigin(final Operation operation) { return true; } - private DeletionStrategy planDeletionAsPrimary(Delete delete) throws IOException { - assert delete.origin() == Operation.Origin.PRIMARY : "planing as primary but got " + delete.origin(); - // resolve operation from external to internal - final VersionValue versionValue = resolveDocVersion(delete, delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO); - assert incrementVersionLookup(); - final long currentVersion; - final boolean currentlyDeleted; - if (versionValue == null) { - currentVersion = Versions.NOT_FOUND; - currentlyDeleted = true; - } else { - currentVersion = versionValue.version; - currentlyDeleted = versionValue.isDelete(); - } - final DeletionStrategy plan; - if (delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && currentlyDeleted) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - delete.id(), - delete.getIfSeqNo(), - delete.getIfPrimaryTerm(), - SequenceNumbers.UNASSIGNED_SEQ_NO, - SequenceNumbers.UNASSIGNED_PRIMARY_TERM - ); - plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, true); - } else if (delete.getIfSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO - && (versionValue.seqNo != delete.getIfSeqNo() || versionValue.term != delete.getIfPrimaryTerm())) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - delete.id(), - delete.getIfSeqNo(), - delete.getIfPrimaryTerm(), - versionValue.seqNo, - versionValue.term - ); - plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, currentlyDeleted); - } else if (delete.versionType().isVersionConflictForWrites(currentVersion, delete.version(), currentlyDeleted)) { - final VersionConflictEngineException e = new VersionConflictEngineException( - shardId, - delete, - currentVersion, - currentlyDeleted - ); - plan = DeletionStrategy.skipDueToVersionConflict(e, currentVersion, currentlyDeleted); - } else { - final Exception reserveError = tryAcquireInFlightDocs(delete, 1); - if (reserveError != null) { - plan = DeletionStrategy.failAsTooManyDocs(reserveError); - } else { - final long versionOfDeletion = delete.versionType().updateVersion(currentVersion, delete.version()); - plan = DeletionStrategy.processNormally(currentlyDeleted, versionOfDeletion, 1); - } - } - return plan; - } - private DeleteResult deleteInLucene(Delete delete, DeletionStrategy plan) throws IOException { assert assertMaxSeqNoOfUpdatesIsAdvanced(delete.uid(), delete.seqNo(), false, false); try { final ParsedDocument tombstone = engineConfig.getTombstoneDocSupplier().newDeleteTombstoneDoc(delete.id()); assert tombstone.docs().size() == 1 : "Tombstone doc should have single doc [" + tombstone + "]"; tombstone.updateSeqID(delete.seqNo(), delete.primaryTerm()); - tombstone.version().setLongValue(plan.versionOfDeletion); + tombstone.version().setLongValue(plan.version); final ParseContext.Document doc = tombstone.docs().get(0); assert doc.getField(SeqNoFieldMapper.TOMBSTONE_NAME) != null : "Delete tombstone document but _tombstone field is not set [" + doc + " ]"; doc.add(softDeletesField); - if (plan.addStaleOpToLucene || plan.currentlyDeleted) { + if (plan.addStaleOpToEngine || plan.currentlyDeleted) { indexWriter.addDocument(doc); } else { indexWriter.softUpdateDocument(delete.uid(), doc, softDeletesField); } - return new DeleteResult(plan.versionOfDeletion, delete.primaryTerm(), delete.seqNo(), plan.currentlyDeleted == false); + return new DeleteResult(plan.version, delete.primaryTerm(), delete.seqNo(), plan.currentlyDeleted == false); } catch (final Exception ex) { /* * Document level failures when deleting are unexpected, we likely hit something fatal such as the Lucene index being corrupt, @@ -1618,85 +1273,6 @@ private DeleteResult deleteInLucene(Delete delete, DeletionStrategy plan) throws } } - /** - * The deletion strategy - * - * @opensearch.internal - */ - protected static final class DeletionStrategy { - // of a rare double delete - final boolean deleteFromLucene; - final boolean addStaleOpToLucene; - final boolean currentlyDeleted; - final long versionOfDeletion; - final Optional earlyResultOnPreflightError; - final int reservedDocs; - - private DeletionStrategy( - boolean deleteFromLucene, - boolean addStaleOpToLucene, - boolean currentlyDeleted, - long versionOfDeletion, - int reservedDocs, - DeleteResult earlyResultOnPreflightError - ) { - assert (deleteFromLucene && earlyResultOnPreflightError != null) == false - : "can only delete from lucene or have a preflight result but not both." - + "deleteFromLucene: " - + deleteFromLucene - + " earlyResultOnPreFlightError:" - + earlyResultOnPreflightError; - this.deleteFromLucene = deleteFromLucene; - this.addStaleOpToLucene = addStaleOpToLucene; - this.currentlyDeleted = currentlyDeleted; - this.versionOfDeletion = versionOfDeletion; - this.reservedDocs = reservedDocs; - assert reservedDocs == 0 || deleteFromLucene || addStaleOpToLucene : reservedDocs; - this.earlyResultOnPreflightError = earlyResultOnPreflightError == null - ? Optional.empty() - : Optional.of(earlyResultOnPreflightError); - } - - public static DeletionStrategy skipDueToVersionConflict( - VersionConflictEngineException e, - long currentVersion, - boolean currentlyDeleted - ) { - final DeleteResult deleteResult = new DeleteResult( - e, - currentVersion, - SequenceNumbers.UNASSIGNED_PRIMARY_TERM, - SequenceNumbers.UNASSIGNED_SEQ_NO, - currentlyDeleted == false - ); - return new DeletionStrategy(false, false, currentlyDeleted, Versions.NOT_FOUND, 0, deleteResult); - } - - static DeletionStrategy processNormally(boolean currentlyDeleted, long versionOfDeletion, int reservedDocs) { - return new DeletionStrategy(true, false, currentlyDeleted, versionOfDeletion, reservedDocs, null); - - } - - public static DeletionStrategy processButSkipLucene(boolean currentlyDeleted, long versionOfDeletion) { - return new DeletionStrategy(false, false, currentlyDeleted, versionOfDeletion, 0, null); - } - - static DeletionStrategy processAsStaleOp(long versionOfDeletion) { - return new DeletionStrategy(false, true, false, versionOfDeletion, 0, null); - } - - static DeletionStrategy failAsTooManyDocs(Exception e) { - final DeleteResult deleteResult = new DeleteResult( - e, - Versions.NOT_FOUND, - SequenceNumbers.UNASSIGNED_PRIMARY_TERM, - SequenceNumbers.UNASSIGNED_SEQ_NO, - false - ); - return new DeletionStrategy(false, false, false, Versions.NOT_FOUND, 0, deleteResult); - } - } - @Override public void maybePruneDeletes() { // It's expensive to prune because we walk the deletes map acquiring dirtyLock for each uid so we only do it @@ -2220,7 +1796,8 @@ public GatedCloseable getSegmentInfosSnapshot() { } catch (AlreadyClosedException e) { logger.warn("Engine is already closed.", e); } - }); + } + ); } catch (IOException e) { throw new EngineException(shardId, e.getMessage(), e); } @@ -2319,10 +1896,15 @@ public final ReferenceManager getReferenceManager(Sea } } + // Interim solution: Configure InternalEngine to use a temporary directory to prevent IndexWriter conflicts with LuceneCommitEngine. private IndexWriter createWriter() throws IOException { try { - final IndexWriterConfig iwc = getIndexWriterConfig(); - return createWriter(store.directory(), iwc); + IndexWriterConfig iwc = new IndexWriterConfig(null).setSoftDeletesField(Lucene.SOFT_DELETES_FIELD) + .setCommitOnClose(false) + .setMergePolicy(NoMergePolicy.INSTANCE) + .setOpenMode(IndexWriterConfig.OpenMode.CREATE); + Directory directory = new NIOFSDirectory(Files.createTempDirectory("tmp-internal-engine-")); + return createWriter(directory, iwc); } catch (LockObtainFailedException ex) { logger.warn("could not lock IndexWriter", ex); throw ex; @@ -2590,7 +2172,8 @@ protected void commitIndexWriter(final IndexWriter writer, final String translog return commitData.entrySet().iterator(); }); shouldPeriodicallyFlushAfterBigMerge.set(false); - writer.commit(); + // Interim solution: Skipping commit until IndexShard integration of CompositeEngine is completed. + // writer.commit(); } catch (final Exception ex) { try { failEngine("lucene commit failed", ex); @@ -3019,7 +2602,7 @@ private void restoreVersionMapAndCheckpointTracker(DirectoryReader directoryRead try (Releasable ignored = versionMap.acquireLock(uid)) { final VersionValue curr = versionMap.getUnderLock(uid); if (curr == null - || compareOpToVersionMapOnSeqNo(idFieldVisitor.getId(), seqNo, primaryTerm, curr) == OpVsLuceneDocStatus.OP_NEWER) { + || compareOpToVersionMapOnSeqNo(idFieldVisitor.getId(), seqNo, primaryTerm, curr) == OpVsEngineDocStatus.OP_NEWER) { if (dv.isTombstone(docId)) { // use 0L for the start time so we can prune this delete tombstone quickly // when the local checkpoint advances (i.e., after a recovery completed). diff --git a/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java b/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java index 87ff449ee74e0..0b0ecd9e2ea1c 100644 --- a/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java +++ b/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java @@ -51,7 +51,7 @@ * * @opensearch.internal */ -final class LiveVersionMap implements ReferenceManager.RefreshListener, Accountable { +public final class LiveVersionMap implements ReferenceManager.RefreshListener, Accountable { private final KeyedLock keyedLock = new KeyedLock<>(); @@ -336,7 +336,7 @@ boolean isSafeAccessRequired() { /** * Adds this uid/version to the pending adds map iff the map needs safe access. */ - void maybePutIndexUnderLock(BytesRef uid, IndexVersionValue version) { + public void maybePutIndexUnderLock(BytesRef uid, IndexVersionValue version) { assert assertKeyedLockHeldByCurrentThread(uid); Maps maps = this.maps; if (maps.isSafeAccessMode()) { @@ -497,11 +497,11 @@ Map getAllTombstones() { * map are broken. We assert on this lock to be hold when calling these methods. * @see KeyedLock */ - Releasable acquireLock(BytesRef uid) { + public Releasable acquireLock(BytesRef uid) { return keyedLock.acquire(uid); } - boolean assertKeyedLockHeldByCurrentThread(BytesRef uid) { + public boolean assertKeyedLockHeldByCurrentThread(BytesRef uid) { assert keyedLock.isHeldByCurrentThread(uid) : "Thread [" + Thread.currentThread().getName() + "], uid [" + uid.utf8ToString() + "]"; return true; } diff --git a/server/src/main/java/org/opensearch/index/engine/OperationStrategy.java b/server/src/main/java/org/opensearch/index/engine/OperationStrategy.java new file mode 100644 index 0000000000000..f2e3367f0aacd --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/OperationStrategy.java @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import java.util.Optional; + +public class OperationStrategy { + + public final boolean executeOpOnEngine; + public final boolean addStaleOpToEngine; + public final long version; + public final Optional earlyResultOnPreFlightError; + public final int reservedDocs; + + public OperationStrategy( + boolean executeOpOnEngine, + boolean addStaleOpToEngine, + long version, + Engine.Result earlyResultOnPreFlightError, + int reservedDocs + ) { + this.executeOpOnEngine = executeOpOnEngine; + this.addStaleOpToEngine = addStaleOpToEngine; + this.version = version; + this.reservedDocs = reservedDocs; + this.earlyResultOnPreFlightError = + earlyResultOnPreFlightError == null ? Optional.empty() : Optional.of(earlyResultOnPreFlightError); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/OperationStrategyPlanner.java b/server/src/main/java/org/opensearch/index/engine/OperationStrategyPlanner.java new file mode 100644 index 0000000000000..70d29078e371b --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/OperationStrategyPlanner.java @@ -0,0 +1,18 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import java.io.IOException; + +public interface OperationStrategyPlanner { + + OperationStrategy planOperationAsPrimary(Engine.Operation operation) throws IOException; + + OperationStrategy planOperationAsNonPrimary(Engine.Operation operation) throws IOException; +} diff --git a/server/src/main/java/org/opensearch/index/engine/VersionValue.java b/server/src/main/java/org/opensearch/index/engine/VersionValue.java index a463137d13912..10127199a96d2 100644 --- a/server/src/main/java/org/opensearch/index/engine/VersionValue.java +++ b/server/src/main/java/org/opensearch/index/engine/VersionValue.java @@ -45,7 +45,7 @@ * * @opensearch.internal */ -abstract class VersionValue implements Accountable { +public abstract class VersionValue implements Accountable { private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(VersionValue.class); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java b/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java index 436df520fd67b..c3524fa6be6b3 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/FileInfos.java @@ -17,7 +17,7 @@ public final class FileInfos { private final Map writerFilesMap; - public FileInfos() { + private FileInfos() { this.writerFilesMap = new HashMap<>(); } @@ -25,11 +25,39 @@ public Map getWriterFilesMap() { return Collections.unmodifiableMap(writerFilesMap); } - public void putWriterFileSet(DataFormat format, WriterFileSet writerFileSet) { + private void putWriterFileSet(DataFormat format, WriterFileSet writerFileSet) { writerFilesMap.put(format, writerFileSet); } public Optional getWriterFileSet(DataFormat format) { return Optional.ofNullable(writerFilesMap.get(format)); } + + public static FileInfos empty() { + return new FileInfos(); + } + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private final Map writerFilesMap = new HashMap<>(); + + public Builder putWriterFileSet(DataFormat format, WriterFileSet writerFileSet) { + writerFilesMap.put(format, writerFileSet); + return this; + } + + public Builder putAll(Map map) { + writerFilesMap.putAll(map); + return this; + } + + public FileInfos build() { + FileInfos fileInfos = new FileInfos(); + writerFilesMap.forEach(fileInfos::putWriterFileSet); + return fileInfos; + } + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 17c1610cce40d..751702625c52c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -8,12 +8,10 @@ package org.opensearch.index.engine.exec; -import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.shard.ShardPath; import java.io.IOException; -import java.util.Collection; import java.util.List; -import java.util.Map; public interface IndexingExecutionEngine { @@ -27,4 +25,6 @@ Writer> createWriter(long writerGeneration) RefreshResult refresh(RefreshInput refreshInput) throws IOException; DataFormat getDataFormat(); + + void loadWriterFiles(ShardPath shardPath) throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index 4fa0b88bff562..520c66df6ba8f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -111,6 +111,44 @@ public boolean equals(Object o) { @Override public int hashCode() { return this.directory.hashCode() + this.files.hashCode(); + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private Path directory; + private Long writerGeneration; + private final Set files = new HashSet<>(); + public Builder directory(Path directory) { + this.directory = directory; + return this; + } + + public Builder writerGeneration(long writerGeneration) { + this.writerGeneration = writerGeneration; + return this; + } + + public Builder addFile(String file) { + this.files.add(file); + return this; + } + + public WriterFileSet build() { + if (directory == null) { + throw new IllegalStateException("directory must be set"); + } + + if (writerGeneration == null) { + throw new IllegalStateException("writerGeneration must be set"); + } + + WriterFileSet fileSet = new WriterFileSet(directory, writerGeneration); + fileSet.files.addAll(this.files); + return fileSet; + } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java index 39f8929fe703c..9c6f43473b85a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java @@ -13,12 +13,16 @@ import org.opensearch.index.engine.EngineException; import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.Segment; +import org.opensearch.index.seqno.SequenceNumbers; import org.opensearch.index.translog.Translog; import org.opensearch.index.translog.TranslogManager; import java.io.Closeable; import java.io.IOException; import java.util.List; +import java.util.Map; + +import static org.opensearch.index.engine.Engine.HISTORY_UUID_KEY; @PublicApi(since = "1.0.0") public interface Indexer { @@ -34,7 +38,7 @@ public interface Indexer { * @param source source of the request * @param fromSeqNo from sequence number; included * @param toSeqNumber to sequence number; included - * @return number of history operations + * @return number of history operations */ int countNumberOfHistoryOperations(String source, long fromSeqNo, long toSeqNumber) throws IOException; @@ -57,6 +61,48 @@ public interface Indexer { */ void updateMaxUnsafeAutoIdTimestamp(long newTimestamp); + /** + * Returns the maximum sequence number of either update or delete operations have been processed in this engine + * or the sequence number from {@link #advanceMaxSeqNoOfUpdatesOrDeletes(long)}. An index request is considered + * as an update operation if it overwrites the existing documents in the index with the same document id. + *

    + * A note on the optimization using max_seq_no_of_updates_or_deletes: + * For each operation O, the key invariants are: + *

      + *
    1. I1: There is no operation on docID(O) with seqno that is {@literal > MSU(O) and < seqno(O)}
    2. + *
    3. I2: If {@literal MSU(O) < seqno(O)} then docID(O) did not exist when O was applied; more precisely, if there is any O' + * with {@literal seqno(O') < seqno(O) and docID(O') = docID(O)} then the one with the greatest seqno is a delete.
    4. + *
    + *

    + * When a receiving shard (either a replica or a follower) receives an operation O, it must first ensure its own MSU at least MSU(O), + * and then compares its MSU to its local checkpoint (LCP). If {@literal LCP < MSU} then there's a gap: there may be some operations + * that act on docID(O) about which we do not yet know, so we cannot perform an add. Note this also covers the case where a future + * operation O' with {@literal seqNo(O') > seqNo(O) and docId(O') = docID(O)} is processed before O. In that case MSU(O') is at least + * seqno(O') and this means {@literal MSU >= seqNo(O') > seqNo(O) > LCP} (because O wasn't processed yet). + *

    + * However, if {@literal MSU <= LCP} then there is no gap: we have processed every {@literal operation <= LCP}, and no operation O' + * with {@literal seqno(O') > LCP and seqno(O') < seqno(O) also has docID(O') = docID(O)}, because such an operation would have + * {@literal seqno(O') > LCP >= MSU >= MSU(O)} which contradicts the first invariant. Furthermore in this case we immediately know + * that docID(O) has been deleted (or never existed) without needing to check index for the following reason. If there's no earlier + * operation on docID(O) then this is clear, so suppose instead that the preceding operation on docID(O) is O': + * 1. The first invariant above tells us that {@literal seqno(O') <= MSU(O) <= LCP} so we have already applied O' to the index. + * 2. Also {@literal MSU(O) <= MSU <= LCP < seqno(O)} (we discard O if {@literal seqno(O) <= LCP}) so the second invariant applies, + * meaning that the O' was a delete. + *

    + * Therefore, if {@literal MSU <= LCP < seqno(O)} we know that O can safely be optimized with and added to the index with addDocument. + * Moreover, operations that are optimized using the MSU optimization must not be processed twice as this will create duplicates + * in the index. To avoid this we check the local checkpoint tracker to see if an operation was already processed. + * + * @see #advanceMaxSeqNoOfUpdatesOrDeletes(long) + */ + long getMaxSeqNoOfUpdatesOrDeletes(); + + /** + * A replica shard receives a new max_seq_no_of_updates from its primary shard, then calls this method + * to advance this marker to at least the given sequence number. + */ + void advanceMaxSeqNoOfUpdatesOrDeletes(long maxSeqNoOfUpdatesOnPrimary); + int fillSeqNoGaps(long primaryTerm) throws IOException; // File format methods follow below @@ -82,13 +128,61 @@ void forceMerge( Closeable acquireHistoryRetentionLock(); - Translog.Snapshot newChangesSnapshot( - String source, - long fromSeqNo, - long toSeqNo, - boolean requiredFullRange, - boolean accurateCount - ) throws IOException; + Translog.Snapshot newChangesSnapshot(String source, long fromSeqNo, long toSeqNo, boolean requiredFullRange, boolean accurateCount) + throws IOException; String getHistoryUUID(); + + /** + * Reads the current stored history ID from commit data. + */ + default String loadHistoryUUID(Map commitData) { + final String uuid = commitData.get(HISTORY_UUID_KEY); + if (uuid == null) { + throw new IllegalStateException("commit doesn't contain history uuid"); + } + return uuid; + } + + /** + * Whether we should treat any document failure as tragic error. + * If we hit any failure while processing an indexing on a replica, we should treat that error as tragic and fail the engine. + * However, we prefer to fail a request individually (instead of a shard) if we hit a document failure on the primary. + */ + default boolean treatDocumentFailureAsTragicError(Engine.Index index) { + // TODO: can we enable this check for all origins except primary on the leader? + return index.origin() == Engine.Operation.Origin.REPLICA || index.origin() == Engine.Operation.Origin.PEER_RECOVERY + || index.origin() == Engine.Operation.Origin.LOCAL_RESET; + } + + default boolean assertIncomingSequenceNumber(final Engine.Operation.Origin origin, final long seqNo) { + if (origin == Engine.Operation.Origin.PRIMARY) { + assert assertPrimaryIncomingSequenceNumber(origin, seqNo); + } else { + // sequence number should be set when operation origin is not primary + assert seqNo >= 0 : "recovery or replica ops should have an assigned seq no.; origin: " + origin; + } + return true; + } + + default boolean assertPrimaryIncomingSequenceNumber(final Engine.Operation.Origin origin, final long seqNo) { + // sequence number should not be set when operation origin is primary + assert + seqNo == SequenceNumbers.UNASSIGNED_SEQ_NO : + "primary operations must never have an assigned sequence number but was [" + seqNo + "]"; + return true; + } + + /** + * the status of the current doc version in engine, compared to the version in an incoming + * operation + */ + enum OpVsEngineDocStatus { + /** the op is more recent than the one that last modified the doc found in engine*/ + OP_NEWER, + /** the op is older or the same as the one that last modified the doc found in engine*/ + OP_STALE_OR_EQUAL, + /** no doc was found in engine */ + DOC_NOT_FOUND + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java index 8c56bd6c8c983..5785d109e6e4d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java @@ -9,10 +9,22 @@ package org.opensearch.index.engine.exec.commit; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.seqno.SequenceNumbers; -public interface Committer { +import java.io.Closeable; +import java.io.IOException; +import java.util.Map; +import java.util.Optional; + +public interface Committer extends Closeable { void addLuceneIndexes(CatalogSnapshot catalogSnapshot); - CommitPoint commit(CatalogSnapshot catalogSnapshot); + CommitPoint commit(Iterable> commitData, CatalogSnapshot catalogSnapshot); + + Map getLastCommittedData() throws IOException; + + Optional readLastCommittedCatalogSnapshot() throws IOException; + + SequenceNumbers.CommitInfo loadSeqNoInfoFromLastCommit() throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java index 3559ab53f22fb..7d05314d03b3c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -8,31 +8,36 @@ package org.opensearch.index.engine.exec.commit; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Collection; -import java.util.Map; - import org.apache.lucene.index.IndexCommit; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; -import org.apache.lucene.store.Directory; import org.apache.lucene.store.NIOFSDirectory; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.seqno.SequenceNumbers; +import org.opensearch.index.store.Store; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collection; +import java.util.Map; +import java.util.Optional; + +import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.CATALOG_SNAPSHOT_KEY; public class LuceneCommitEngine implements Committer { private final IndexWriter indexWriter; private final LuceneIndexDeletionPolicy indexDeletionPolicy; + private final Store store; - public LuceneCommitEngine(Path commitPath) throws IOException { - Directory directory = new NIOFSDirectory(commitPath); + public LuceneCommitEngine(Store store) throws IOException { indexDeletionPolicy = new LuceneIndexDeletionPolicy(); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(); indexWriterConfig.setIndexDeletionPolicy(indexDeletionPolicy); - this.indexWriter = new IndexWriter(directory, indexWriterConfig); + this.store = store; + this.indexWriter = new IndexWriter(store.directory(), indexWriterConfig); } @Override @@ -45,39 +50,48 @@ public void addLuceneIndexes(CatalogSnapshot catalogSnapshot) { throw new RuntimeException(e); } }); - - Map userData = null; - try { - userData = catalogSnapshot.toCommitUserData(); - } catch (IOException e) { - throw new RuntimeException(e); - } - indexWriter.setLiveCommitData(userData.entrySet()); - } - - public CatalogSnapshot readCatalogSnapshot() throws IOException { - if(indexWriter.getLiveCommitData().iterator().hasNext()) { - Map.Entry entry = indexWriter.getLiveCommitData().iterator().next(); - return CatalogSnapshot.fromCommitUserData(entry.getValue()); - } - return null; - } - public IndexWriter getIndexWriter() { - return indexWriter; } @Override - public CommitPoint commit(CatalogSnapshot catalogSnapshot) { + public CommitPoint commit(Iterable> commitData, CatalogSnapshot catalogSnapshot) { addLuceneIndexes(catalogSnapshot); + indexWriter.setLiveCommitData(commitData); try { indexWriter.commit(); IndexCommit indexCommit = indexDeletionPolicy.getLatestIndexCommit(); - return CommitPoint.builder().commitFileName(indexCommit.getSegmentsFileName()) - .fileNames(indexCommit.getFileNames()).commitData(indexCommit.getUserData()) + return CommitPoint.builder() + .commitFileName(indexCommit.getSegmentsFileName()) + .fileNames(indexCommit.getFileNames()) + .commitData(indexCommit.getUserData()) .generation(indexCommit.getGeneration()) - .directory(Path.of(indexCommit.getSegmentsFileName()).getParent()).build(); + .directory(Path.of(indexCommit.getSegmentsFileName()).getParent()) + .build(); } catch (IOException e) { throw new RuntimeException("lucene commit engine failed", e); } } + + @Override + public Map getLastCommittedData() throws IOException { + return store.readLastCommittedSegmentsInfo().getUserData(); + } + + @Override + public Optional readLastCommittedCatalogSnapshot() throws IOException { + Map lastCommittedData = getLastCommittedData(); + if (lastCommittedData.containsKey(CATALOG_SNAPSHOT_KEY)) { + return Optional.of(CatalogSnapshot.deserializeFromString(lastCommittedData.get(CATALOG_SNAPSHOT_KEY))); + } + return Optional.empty(); + } + + @Override + public SequenceNumbers.CommitInfo loadSeqNoInfoFromLastCommit() throws IOException { + return SequenceNumbers.loadSeqNoInfoFromLuceneCommit(getLastCommittedData().entrySet()); + } + + @Override + public void close() throws IOException { + this.indexWriter.close(); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java index f1dbb9b53c72e..0c5d198bf6be6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeDataFormatWriter.java @@ -12,11 +12,11 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.FileInfos; -import org.opensearch.index.engine.exec.RowIdGenerator; -import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.FlushIn; +import org.opensearch.index.engine.exec.RowIdGenerator; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.mapper.MappedFieldType; import org.opensearch.index.mapper.SeqNoFieldMapper; import org.opensearch.index.mapper.VersionFieldMapper; @@ -45,8 +45,7 @@ public class CompositeDataFormatWriter implements Writer(); this.lock = new ReentrantLock(); this.aborted = false; @@ -71,15 +70,13 @@ public WriteResult addDoc(CompositeDocumentInput d) throws IOException { @Override public FileInfos flush(FlushIn flushIn) throws IOException { - FileInfos fileInfos = new FileInfos(); + FileInfos.Builder builder = FileInfos.builder(); for (Map.Entry>> writerPair : writers) { - Optional fileMetadataOptional = writerPair.getValue().flush(flushIn) - .getWriterFileSet(writerPair.getKey()); - fileMetadataOptional.ifPresent( - fileMetadata -> fileInfos.putWriterFileSet(writerPair.getKey(), fileMetadata)); + Optional writerFileSetOptional = writerPair.getValue().flush(flushIn).getWriterFileSet(writerPair.getKey()); + writerFileSetOptional.ifPresent(fileMetadata -> builder.putWriterFileSet(writerPair.getKey(), fileMetadata)); } hasFlushed.set(true); - return fileInfos; + return builder.build(); } @Override @@ -97,9 +94,12 @@ public void close() { @Override public CompositeDocumentInput newDocumentInput() { - CompositeDocumentInput compositeDocumentInput = new CompositeDocumentInput( - writers.stream().map(Map.Entry::getValue).map(Writer::newDocumentInput).collect(Collectors.toList()), - this, postWrite); + CompositeDocumentInput compositeDocumentInput = + new CompositeDocumentInput( + writers.stream().map(Map.Entry::getValue).map(Writer::newDocumentInput).collect(Collectors.toList()), + this, + postWrite + ); compositeDocumentInput.addRowIdField(ROW_ID, rowIdGenerator.getAndIncrementRowId()); @@ -114,10 +114,6 @@ public void setFlushPending() { flushPending.set(Boolean.TRUE); } - public boolean hasFlushed() { - return hasFlushed.get() == Boolean.TRUE; - } - public boolean isFlushPending() { return flushPending.get() == Boolean.TRUE; } @@ -151,10 +147,6 @@ public void unlock() { lock.unlock(); } - boolean isHeldByCurrentThread() { - return lock.isHeldByCurrentThread(); - } - @Override public Condition newCondition() { throw new UnsupportedOperationException(); @@ -169,8 +161,7 @@ public static class CompositeDocumentInput implements DocumentInput> inputs, CompositeDataFormatWriter writer, - Runnable onClose) { + public CompositeDocumentInput(List> inputs, CompositeDataFormatWriter writer, Runnable onClose) { this.inputs = inputs; this.writer = writer; this.onClose = onClose; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 78394de19aa71..cdb35c63340af 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -8,10 +8,6 @@ package org.opensearch.index.engine.exec.composite; -import java.util.Collections; -import java.util.LinkedList; -import java.util.concurrent.atomic.AtomicLong; - import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.IndexingExecutionEngine; @@ -29,47 +25,20 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.atomic.AtomicLong; public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { private final CompositeDataFormatWriterPool dataFormatWriterPool; - private Any dataFormat; + private final Any dataFormat; private final AtomicLong writerGeneration; private final List> delegates = new ArrayList<>(); - public CompositeIndexingExecutionEngine( - MapperService mapperService, - PluginsService pluginsService, - Any dataformat, - ShardPath shardPath, - long initialWriterGeneration - ) { - this.dataFormat = dataformat; - this.writerGeneration = new AtomicLong(initialWriterGeneration); - try { - for (DataFormat dataFormat : dataformat.getDataFormats()) { - DataSourcePlugin plugin = pluginsService.filterPlugins(DataSourcePlugin.class) - .stream() - .filter(curr -> curr.getDataFormat().equals(dataFormat)) - .findFirst() - .orElseThrow(() -> new IllegalArgumentException("dataformat [" + dataFormat + "] is not registered.")); - delegates.add(plugin.indexingEngine(mapperService, shardPath)); - } - } catch (NullPointerException e) { - // my own testing - delegates.add(new TextEngine()); - } - this.dataFormatWriterPool = new CompositeDataFormatWriterPool( - () -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), - LinkedList::new, - Runtime.getRuntime().availableProcessors() - ); - } - public CompositeIndexingExecutionEngine( MapperService mapperService, PluginsService pluginsService, @@ -89,11 +58,12 @@ public CompositeIndexingExecutionEngine( delegates.add(new TextEngine()); } this.dataFormat = new Any(dataFormats, dataFormats.get(0)); - this.dataFormatWriterPool = new CompositeDataFormatWriterPool( - () -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), - LinkedList::new, - Runtime.getRuntime().availableProcessors() - ); + this.dataFormatWriterPool = + new CompositeDataFormatWriterPool( + () -> new CompositeDataFormatWriter(this, writerGeneration.getAndIncrement()), + LinkedList::new, + Runtime.getRuntime().availableProcessors() + ); } @Override @@ -106,6 +76,13 @@ public List supportedFieldTypes() { throw new UnsupportedOperationException(); } + @Override + public void loadWriterFiles(ShardPath shardPath) throws IOException { + for (IndexingExecutionEngine delegate : delegates) { + delegate.loadWriterFiles(shardPath); + } + } + @Override public Writer createWriter(long generation) throws IOException { throw new UnsupportedOperationException(); @@ -117,7 +94,7 @@ public Writer createCompositeW @Override public RefreshResult refresh(RefreshInput ignore) throws IOException { - RefreshResult finalResult = new RefreshResult(); + RefreshResult finalResult; Map refreshInputs = new HashMap<>(); try { List dataFormatWriters = dataFormatWriterPool.checkoutAll(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 1474b9f57edad..d06311e19964d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -18,7 +18,6 @@ import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriterFileSet; -import java.nio.file.Path; import java.io.IOException; import java.io.Serializable; @@ -33,45 +32,27 @@ @ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted implements Writeable { + public static final String CATALOG_SNAPSHOT_KEY = "_catalog_snapshot_"; + public static final String LAST_COMPOSITE_WRITER_GEN_KEY = "_last_composite_writer_gen_"; private final long id; + private long lastWriterGeneration; private final Map> dfGroupedSearchableFiles; - private static final String CATALOG_SNAPSHOT_KEY = "_catalog_snapshot_"; public CatalogSnapshot(RefreshResult refreshResult, long id) { super("catalog_snapshot"); this.id = id; this.dfGroupedSearchableFiles = new HashMap<>(); - refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles)); - } - - private CatalogSnapshot(long id, Map> dfGroupedSearchableFiles) { - super("catalog_snapshot"); - this.id = id; - this.dfGroupedSearchableFiles = dfGroupedSearchableFiles; - } - - public CatalogSnapshot remapPaths(Path newShardDataPath) { - Map> remappedFiles = new HashMap<>(); - - for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { - String dataFormat = entry.getKey(); - List remappedFileSets = new ArrayList<>(); - - for (WriterFileSet fileSet : entry.getValue()) { - // Create new WriterFileSet with updated directory and file paths - WriterFileSet remappedFileSet = fileSet.withDirectory(newShardDataPath.toString()); - remappedFileSets.add(remappedFileSet); - } - - remappedFiles.put(dataFormat, remappedFileSets); - } - - return new CatalogSnapshot(this.id, remappedFiles); + this.lastWriterGeneration = -1; + refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> { + dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles); + writerFiles.stream().mapToLong(WriterFileSet::getWriterGeneration).max().ifPresent(value -> this.lastWriterGeneration = value); + }); } public CatalogSnapshot(StreamInput in) throws IOException { super("catalog_snapshot"); this.id = in.readLong(); + this.lastWriterGeneration = in.readLong(); this.dfGroupedSearchableFiles = new HashMap<>(); int mapSize = in.readVInt(); @@ -89,6 +70,7 @@ public CatalogSnapshot(StreamInput in) throws IOException { @Override public void writeTo(StreamOutput out) throws IOException { out.writeLong(id); + out.writeLong(lastWriterGeneration); out.writeVInt(dfGroupedSearchableFiles.size()); for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { out.writeString(entry.getKey()); @@ -113,16 +95,6 @@ public static CatalogSnapshot deserializeFromString(String serializedData) throw } } - public Map toCommitUserData() throws IOException { - Map userData = new HashMap<>(); - userData.put(CATALOG_SNAPSHOT_KEY, serializeToString()); - return userData; - } - - public static CatalogSnapshot fromCommitUserData(String userData) throws IOException { - return deserializeFromString(userData); - } - public Collection getSearchableFiles(String dataFormat) { if (dfGroupedSearchableFiles.containsKey(dataFormat)) { return dfGroupedSearchableFiles.get(dataFormat); @@ -148,15 +120,16 @@ public long getId() { return id; } + public long getLastWriterGeneration() { + return lastWriterGeneration; + } + @Override public String toString() { - return "CatalogSnapshot{" + - "id=" + id + - ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + - '}'; + return "CatalogSnapshot{" + "id=" + id + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; } - public static class Segment implements Serializable, Writeable { + public static class Segment implements Serializable { private final long generation; private final Map dfGroupedSearchableFiles; @@ -166,28 +139,6 @@ public Segment(long generation) { this.generation = generation; } - public Segment(StreamInput in) throws IOException { - this.generation = in.readLong(); - this.dfGroupedSearchableFiles = new HashMap<>(); - - int mapSize = in.readVInt(); - for (int i = 0; i < mapSize; i++) { - String dataFormat = in.readString(); - WriterFileSet fileSet = new WriterFileSet(in); - dfGroupedSearchableFiles.put(dataFormat, fileSet); - } - } - - @Override - public void writeTo(StreamOutput out) throws IOException { - out.writeLong(generation); - out.writeVInt(dfGroupedSearchableFiles.size()); - for (Map.Entry entry : dfGroupedSearchableFiles.entrySet()) { - out.writeString(entry.getKey()); - entry.getValue().writeTo(out); - } - } - public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGroup) { dfGroupedSearchableFiles.put(dataFormat, writerFileSetGroup); } @@ -195,7 +146,7 @@ public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGro public Collection getSearchableFiles(String df) { List searchableFiles = new ArrayList<>(); String directory = dfGroupedSearchableFiles.get(df).getDirectory(); - for(String file : dfGroupedSearchableFiles.get(df).getFiles()) { + for (String file : dfGroupedSearchableFiles.get(df).getFiles()) { searchableFiles.add(new FileMetadata(directory, file)); } return searchableFiles; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java index 2934b4b4b50fc..255433133cdb6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeDataFormatWriterPool.java @@ -85,15 +85,26 @@ public void releaseAndUnlock(CompositeDataFormatWriter state) { * * @return Unmodifiable list of all CompositeDataFormatWriters locked by current thread. */ - public synchronized List checkoutAll() { + public List checkoutAll() { + ensureOpen(); + List lockedWriters = new ArrayList<>(); List checkedOutWriters = new ArrayList<>(); for (CompositeDataFormatWriter compositeDataFormatWriter : this) { compositeDataFormatWriter.lock(); - if (isRegistered(compositeDataFormatWriter) && writers.remove(compositeDataFormatWriter)) { - availableWriters.remove(compositeDataFormatWriter); - checkedOutWriters.add(compositeDataFormatWriter); - } else { - compositeDataFormatWriter.unlock(); + lockedWriters.add(compositeDataFormatWriter); + } + synchronized (this) { + for (CompositeDataFormatWriter compositeDataFormatWriter : lockedWriters) { + try { + // Release this writer if it’s no longer managed by this pool; otherwise, check it out. + if (isRegistered(compositeDataFormatWriter) && writers.remove(compositeDataFormatWriter)) { + availableWriters.remove(compositeDataFormatWriter); + compositeDataFormatWriter.setFlushPending(); + checkedOutWriters.add(compositeDataFormatWriter); + } + } finally { + compositeDataFormatWriter.unlock(); + } } } return Collections.unmodifiableList(checkedOutWriters); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 5c750defc5237..9708acc486864 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -8,118 +8,377 @@ package org.opensearch.index.engine.exec.coord; +import org.apache.logging.log4j.Logger; import org.apache.lucene.search.ReferenceManager; +import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.OpenSearchException; +import org.opensearch.common.Nullable; import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.common.lease.Releasable; +import org.opensearch.common.logging.Loggers; +import org.opensearch.common.util.concurrent.KeyedLock; +import org.opensearch.common.util.concurrent.ReleasableLock; +import org.opensearch.common.util.io.IOUtils; +import org.opensearch.core.Assertions; +import org.opensearch.core.index.AppendOnlyIndexOperationRetryException; +import org.opensearch.core.index.shard.ShardId; import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.Engine; +import org.opensearch.index.engine.EngineConfig; import org.opensearch.index.engine.EngineException; +import org.opensearch.index.engine.FlushFailedEngineException; +import org.opensearch.index.engine.IndexThrottle; +import org.opensearch.index.engine.IndexVersionValue; +import org.opensearch.index.engine.IndexingStrategy; +import org.opensearch.index.engine.IndexingStrategyPlanner; +import org.opensearch.index.engine.LifecycleAware; +import org.opensearch.index.engine.LiveVersionMap; import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.SearchExecEngine; import org.opensearch.index.engine.Segment; +import org.opensearch.index.engine.VersionValue; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.bridge.CheckpointState; import org.opensearch.index.engine.exec.bridge.Indexer; +import org.opensearch.index.engine.exec.bridge.IndexingThrottler; import org.opensearch.index.engine.exec.commit.Committer; import org.opensearch.index.engine.exec.commit.LuceneCommitEngine; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.engine.exec.merge.MergeHandler; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.MergeScheduler; -import org.opensearch.index.engine.exec.merge.MergeHandler; import org.opensearch.index.engine.exec.merge.OneMerge; import org.opensearch.index.engine.exec.merge.ParquetMergeHandler; -import org.opensearch.index.mapper.KeywordFieldMapper; +import org.opensearch.index.mapper.IdFieldMapper; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.mapper.SeqNoFieldMapper; +import org.opensearch.index.seqno.LocalCheckpointTracker; +import org.opensearch.index.seqno.SeqNoStats; +import org.opensearch.index.seqno.SequenceNumbers; import org.opensearch.index.shard.ShardPath; +import org.opensearch.index.store.Store; +import org.opensearch.index.translog.DefaultTranslogDeletionPolicy; +import org.opensearch.index.translog.InternalTranslogManager; import org.opensearch.index.translog.Translog; +import org.opensearch.index.translog.TranslogDeletionPolicy; +import org.opensearch.index.translog.TranslogException; import org.opensearch.index.translog.TranslogManager; +import org.opensearch.index.translog.TranslogOperationHelper; +import org.opensearch.index.translog.listener.CompositeTranslogEventListener; +import org.opensearch.index.translog.listener.TranslogEventListener; import org.opensearch.plugins.PluginsService; import org.opensearch.plugins.SearchEnginePlugin; import java.io.Closeable; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Consumer; + +import static org.opensearch.index.engine.Engine.HISTORY_UUID_KEY; +import static org.opensearch.index.engine.Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID; +import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.CATALOG_SNAPSHOT_KEY; +import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.LAST_COMPOSITE_WRITER_GEN_KEY; @ExperimentalApi -public class CompositeEngine implements Indexer { +public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState, IndexingThrottler { + private static final Consumer PRE_REFRESH_LISTENER_CONSUMER = refreshListener -> { + try { + refreshListener.beforeRefresh(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }; + private static final Consumer POST_REFRESH_LISTENER_CONSUMER = refreshListener -> { + try { + refreshListener.afterRefresh(true); + } catch (IOException e) { + throw new RuntimeException(e); + } + }; + private static final BiConsumer + POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER = (catalogSnapshot, catalogSnapshotAwareRefreshListener) -> { + try { + catalogSnapshotAwareRefreshListener.afterRefresh(true, catalogSnapshot); + } catch (IOException e) { + throw new RuntimeException(e); + } + }; + + private final ShardId shardId; private final CompositeIndexingExecutionEngine engine; + private final EngineConfig engineConfig; + private final Store store; + private final Logger logger; private final Committer compositeEngineCommitter; + private final TranslogManager translogManager; + private final AtomicBoolean isClosed = new AtomicBoolean(false); private final List refreshListeners = new ArrayList<>(); private CatalogSnapshot catalogSnapshot; private final List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); - private final Map>> readEngines = new HashMap<>(); - - private MergeScheduler mergeScheduler; - private MergeHandler mergeHandler; - public CompositeEngine(MapperService mapperService, - PluginsService pluginsService, - ShardPath shardPath, - IndexSettings indexSettings) throws IOException { - List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); - // How to bring the Dataformat here? Currently this means only Text and LuceneFormat can be used - this.engine = new CompositeIndexingExecutionEngine(mapperService, pluginsService, shardPath, 0); - this.compositeEngineCommitter = new LuceneCommitEngine(shardPath.getDataPath()); - this.catalogSnapshot = ((LuceneCommitEngine)this.compositeEngineCommitter).readCatalogSnapshot(); - - // remap the paths - if(this.catalogSnapshot != null) { - this.catalogSnapshot = this.catalogSnapshot.remapPaths(shardPath.getDataPath()); - } + private final Map>> readEngines = + new HashMap<>(); + private final MergeScheduler mergeScheduler; + private final MergeHandler mergeHandler; + + @Nullable + protected final String historyUUID; + + private final LocalCheckpointTracker localCheckpointTracker; + private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); + private final ReleasableLock readLock = new ReleasableLock(rwl.readLock()); + private final ReleasableLock writeLock = new ReleasableLock(rwl.writeLock()); + private final Lock flushLock = new ReentrantLock(); + + // A uid (in the form of BytesRef) to the version map + // we use the hashed variant since we iterate over it and check removal and additions on existing keys + private final LiveVersionMap versionMap = new LiveVersionMap(); + private final IndexThrottle throttle; + // How many callers are currently requesting index throttling. Currently, there are only two situations where we do this: when merges + // are falling behind and when writing indexing buffer to disk is too slow. When this is 0, there is no throttling, else we throttling + // incoming indexing ops to a single thread: + private final AtomicInteger throttleRequestCount = new AtomicInteger(); + /* + * on {@code lastWriteNanos} we use System.nanoTime() to initialize this since: + * - we use the value for figuring out if the shard / engine is active so if we startup and no write has happened yet we still + * consider it active for the duration of the configured active to inactive period. If we initialize to 0 or Long.MAX_VALUE we + * either immediately or never mark it inactive if no writes at all happen to the shard. + * - we also use this to flush big-ass merges on an inactive engine / shard but if we we initialize 0 or Long.MAX_VALUE we either + * immediately or never commit merges even though we shouldn't from a user perspective (this can also have funky side effects in + * tests when we open indices with lots of segments and suddenly merges kick in. + * NOTE: don't use this value for anything accurate it's a best effort for freeing up diskspace after merges and on a shard level to + * reduce index buffer sizes on inactive shards. + */ + private volatile long lastWriteNanos = System.nanoTime(); + private final AtomicLong maxUnsafeAutoIdTimestamp = new AtomicLong(-1); + private final AtomicLong maxSeenAutoIdTimestamp = new AtomicLong(-1); + // max_seq_no_of_updates_or_deletes tracks the max seq_no of update or delete operations that have been processed in this engine. + // An index request is considered as an update if it overwrites existing documents with the same docId in the Lucene index. + // The value of this marker never goes backwards, and is tracked/updated differently on primary and replica. + private final AtomicLong maxSeqNoOfUpdatesOrDeletes; + private final AtomicBoolean trackTranslogLocation = new AtomicBoolean(false); + private final KeyedLock noOpKeyedLock = new KeyedLock<>(); + + private final AtomicLong inFlightDocCount = new AtomicLong(); + private final IndexingStrategyPlanner indexingStrategyPlanner; + + public CompositeEngine( + EngineConfig engineConfig, + MapperService mapperService, + PluginsService pluginsService, + IndexSettings indexSettings, + ShardPath shardPath, + BiFunction localCheckpointTrackerSupplier, + TranslogEventListener translogEventListener + ) throws IOException { + this.logger = Loggers.getLogger(CompositeEngine.class, engineConfig.getShardId()); + boolean success = false; + this.store = engineConfig.getStore(); + Committer committerRef = null; + TranslogManager translogManagerRef = null; + try { + this.engineConfig = engineConfig; + this.store.incRef(); + this.shardId = engineConfig.getShardId(); + if (engineConfig.isAutoGeneratedIDsOptimizationEnabled() == false) { + updateAutoIdTimestamp(Long.MAX_VALUE, true); + } + + // initialize committer and composite indexing execution engine + committerRef = new LuceneCommitEngine(store); + this.compositeEngineCommitter = committerRef; + final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); + this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { + this.catalogSnapshot = lastCommittedCatalogSnapshot; + lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); + }); + // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used + this.engine = new CompositeIndexingExecutionEngine( + mapperService, + pluginsService, + shardPath, + lastCommittedWriterGeneration.incrementAndGet() + ); + this.engine.loadWriterFiles(shardPath); + + // initialize local checkpoint tracker and translog manager + this.localCheckpointTracker = createLocalCheckpointTracker(localCheckpointTrackerSupplier); + final Map userData = this.compositeEngineCommitter.getLastCommittedData(); + String translogUUID = Objects.requireNonNull(userData.get(Translog.TRANSLOG_UUID_KEY)); + final TranslogDeletionPolicy translogDeletionPolicy = getTranslogDeletionPolicy(engineConfig); + TranslogEventListener internalTranslogEventListener = new TranslogEventListener() { + @Override + public void onAfterTranslogSync() { + try { + translogManager.trimUnreferencedReaders(); + } catch (IOException ex) { + throw new TranslogException(shardId, "Failed to trim unreferenced translog generations on translog synced", ex); + } + } - this.mergeHandler = new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), - indexSettings.getParquetMergePolicy()); - mergeScheduler = new MergeScheduler(this.mergeHandler, this); - - // Refresh here so that catalog snapshot gets initialized - // TODO : any better way to do this ? - refresh("start"); - - // TODO : how to extend this for Lucene ? where engine is a r/w engine - // Create read specific engines for each format which is associated with shard - - for (SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { - for (org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { - List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); - SearchExecEngine newSearchEngine = searchEnginePlugin.createEngine(dataFormat, - Collections.emptyList(), - shardPath); - - currentSearchEngines.add(newSearchEngine); - readEngines.put(dataFormat, currentSearchEngines); - - // TODO : figure out how to do internal and external refresh listeners - // Maybe external refresh should be managed in opensearch core and plugins should always give - // internal refresh managers - // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds - // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger - // - if (newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { - catalogSnapshotAwareRefreshListeners.add(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + @Override + public void onAfterTranslogRecovery() { + flush(false, true); + translogManager.trimUnreferencedTranslogFiles(); + } + + @Override + public void onFailure(String reason, Exception ex) { + if (ex instanceof AlreadyClosedException) { + // failOnTragicEvent((AlreadyClosedException) ex); + } else { + // failEngine(reason, ex); + } + } + }; + CompositeTranslogEventListener compositeTranslogEventListener = + new CompositeTranslogEventListener(Arrays.asList(internalTranslogEventListener, translogEventListener), shardId); + translogManagerRef = createTranslogManager(translogUUID, translogDeletionPolicy, compositeTranslogEventListener); + this.translogManager = translogManagerRef; + + this.maxSeqNoOfUpdatesOrDeletes = + new AtomicLong(SequenceNumbers.max(localCheckpointTracker.getMaxSeqNo(), translogManager.getMaxSeqNo())); + + this.indexingStrategyPlanner = new IndexingStrategyPlanner( + engineConfig, + engineConfig.getShardId(), + versionMap, + maxUnsafeAutoIdTimestamp::get, + maxSeqNoOfUpdatesOrDeletes::get, + localCheckpointTracker::getProcessedCheckpoint, + this::hasBeenProcessedBefore, + this::compareOpToDocBasedOnSeqNo, + this::resolveDocVersion, + this::updateAutoIdTimestamp, + this::tryAcquireInFlightDocs + ); + this.throttle = new IndexThrottle(); + this.historyUUID = loadHistoryUUID(userData); + this.mergeHandler = + new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), indexSettings.getParquetMergePolicy()); + this.mergeScheduler = new MergeScheduler(this.mergeHandler, this); + + // Refresh here so that catalog snapshot gets initialized + // TODO : any better way to do this ? + refresh("start"); + // TODO : how to extend this for Lucene ? where engine is a r/w engine + // Create read specific engines for each format which is associated with shard + List searchEnginePlugins = pluginsService.filterPlugins(SearchEnginePlugin.class); + for (SearchEnginePlugin searchEnginePlugin : searchEnginePlugins) { + for (org.opensearch.vectorized.execution.search.DataFormat dataFormat : searchEnginePlugin.getSupportedFormats()) { + List> currentSearchEngines = readEngines.getOrDefault(dataFormat, new ArrayList<>()); + SearchExecEngine newSearchEngine = + searchEnginePlugin.createEngine(dataFormat, Collections.emptyList(), shardPath); + + currentSearchEngines.add(newSearchEngine); + readEngines.put(dataFormat, currentSearchEngines); + + // TODO : figure out how to do internal and external refresh listeners + // Maybe external refresh should be managed in opensearch core and plugins should always give + // internal refresh managers + // 60s as refresh interval -> ExternalReaderManager acquires a view every 60 seconds + // InternalReaderManager -> IndexingMemoryController , it keeps on refreshing internal maanger + // + if (newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { + catalogSnapshotAwareRefreshListeners.add(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); + } } } - } - catalogSnapshotAwareRefreshListeners.forEach(ref -> { - try { - ref.afterRefresh(true, catalogSnapshot); - } catch (IOException e) { - throw new RuntimeException(e); + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(catalogSnapshot, + refreshListener + )); + success = true; + } finally { + if (success == false) { + IOUtils.closeWhileHandlingException(committerRef, translogManagerRef); + if (isClosed.get() == false) { + // failure we need to dec the store reference + store.decRef(); + } } - }); + } + logger.trace("created new CompositeEngine"); + } + + private LocalCheckpointTracker createLocalCheckpointTracker( + BiFunction localCheckpointTrackerSupplier + ) throws IOException { + final long maxSeqNo; + final long localCheckpoint; + final SequenceNumbers.CommitInfo seqNoStats = this.compositeEngineCommitter.loadSeqNoInfoFromLastCommit(); + maxSeqNo = seqNoStats.maxSeqNo; + localCheckpoint = seqNoStats.localCheckpoint; + logger.trace("recovered maximum sequence number [{}] and local checkpoint [{}]", maxSeqNo, localCheckpoint); + return localCheckpointTrackerSupplier.apply(maxSeqNo, localCheckpoint); + } + + protected TranslogDeletionPolicy getTranslogDeletionPolicy(EngineConfig engineConfig) { + TranslogDeletionPolicy customTranslogDeletionPolicy = null; + if (engineConfig.getCustomTranslogDeletionPolicyFactory() != null) { + customTranslogDeletionPolicy = engineConfig.getCustomTranslogDeletionPolicyFactory() + .create(engineConfig.getIndexSettings(), engineConfig.retentionLeasesSupplier()); + } + return Objects.requireNonNullElseGet( + customTranslogDeletionPolicy, () -> new DefaultTranslogDeletionPolicy( + engineConfig.getIndexSettings().getTranslogRetentionSize().getBytes(), + engineConfig.getIndexSettings().getTranslogRetentionAge().getMillis(), + engineConfig.getIndexSettings().getTranslogRetentionTotalFiles() + ) + ); + } + + protected TranslogManager createTranslogManager( + String translogUUID, + TranslogDeletionPolicy translogDeletionPolicy, + CompositeTranslogEventListener translogEventListener + ) throws IOException { + return new InternalTranslogManager( + engineConfig.getTranslogConfig(), + engineConfig.getPrimaryTermSupplier(), + engineConfig.getGlobalCheckpointSupplier(), + translogDeletionPolicy, + shardId, + readLock, + this::getLocalCheckpointTracker, + translogUUID, + translogEventListener, + this::ensureOpen, + engineConfig.getTranslogFactory(), + engineConfig.getStartedPrimarySupplier(), + TranslogOperationHelper.create(engineConfig) + ); + } + + @Override + public void ensureOpen() { + + } + + LocalCheckpointTracker getLocalCheckpointTracker() { + return localCheckpointTracker; } public SearchExecEngine getReadEngine(org.opensearch.vectorized.execution.search.DataFormat dataFormat) { @@ -128,11 +387,7 @@ public CompositeEngine(MapperService mapperService, public SearchExecEngine getPrimaryReadEngine() { // Return the first available ReadEngine as primary - return readEngines.values().stream() - .filter(list -> !list.isEmpty()) - .findFirst() - .map(List::getFirst) - .orElse(null); + return readEngines.values().stream().filter(list -> !list.isEmpty()).findFirst().map(List::getFirst).orElse(null); } public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { @@ -140,12 +395,271 @@ public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws I } public Engine.IndexResult index(Engine.Index index) throws IOException { - index.documentInput.setSeqNo(index.seqNo()); - index.documentInput.setPrimaryTerm(SeqNoFieldMapper.PRIMARY_TERM_NAME, index.primaryTerm()); - index.documentInput.setVersion(1); // we are not supporting update in parquet - WriteResult writeResult = index.documentInput.addToWriter(); - // translog, checkpoint, other checks - return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), writeResult.success()); + assert Objects.equals(index.uid().field(), IdFieldMapper.NAME) : index.uid().field(); + final boolean doThrottle = index.origin().isRecovery() == false; + try (ReleasableLock releasableLock = readLock.acquire()) { + ensureOpen(); + assert assertIncomingSequenceNumber(index.origin(), index.seqNo()); + int reservedDocs = 0; + try ( + Releasable ignored = versionMap.acquireLock(index.uid().bytes()); + Releasable indexThrottle = doThrottle ? throttle.acquireThrottle() : () -> {} + ) { + lastWriteNanos = index.startTime(); + final IndexingStrategy plan = indexingStrategyForOperation(index); + reservedDocs = plan.reservedDocs; + + final Engine.IndexResult indexResult; + if (plan.earlyResultOnPreFlightError.isPresent()) { + assert index.origin() == Engine.Operation.Origin.PRIMARY : index.origin(); + indexResult = (Engine.IndexResult) plan.earlyResultOnPreFlightError.get(); + assert indexResult.getResultType() == Engine.Result.Type.FAILURE : indexResult.getResultType(); + } else { + if (index.origin() == Engine.Operation.Origin.PRIMARY) { + index = new Engine.Index( + index.uid(), + index.parsedDoc(), + generateSeqNoForOperationOnPrimary(index), + index.primaryTerm(), + index.version(), + index.versionType(), + index.origin(), + index.startTime(), + index.getAutoGeneratedIdTimestamp(), + index.isRetry(), + index.getIfSeqNo(), + index.getIfPrimaryTerm() + ); + + final boolean toAppend = plan.executeOpOnEngine && plan.optimizeAppendOnly == false; + if (toAppend == false) { + advanceMaxSeqNoOfUpdatesOrDeletesOnPrimary(index.seqNo()); + } + } else { + markSeqNoAsSeen(index.seqNo()); + } + + assert index.seqNo() >= 0 : "ops should have an assigned seq no.; origin: " + index.origin(); + + if (plan.executeOpOnEngine || plan.optimizeAppendOnly) { + index.documentInput.setSeqNo(index.seqNo()); + index.documentInput.setPrimaryTerm(SeqNoFieldMapper.PRIMARY_TERM_NAME, index.primaryTerm()); + index.documentInput.setVersion(1); // we are not supporting update in parquet + WriteResult writeResult = index.documentInput.addToWriter(); + indexResult = + new Engine.IndexResult(writeResult.version(), index.primaryTerm(), index.seqNo(), writeResult.success()); + } else { + indexResult = + new Engine.IndexResult(plan.version, index.primaryTerm(), index.seqNo(), plan.currentNotFoundOrDeleted); + } + } + + if (index.origin().isFromTranslog() == false) { + final Translog.Location location; + if (indexResult.getResultType() == Engine.Result.Type.SUCCESS) { + location = translogManager.add(new Translog.Index(index, indexResult)); + } else if (indexResult.getSeqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO && indexResult.getFailure() != null + && !(indexResult.getFailure() instanceof AppendOnlyIndexOperationRetryException)) { + // TODO - validate exception + throw new OpenSearchException(""); + } else { + location = null; + } + indexResult.setTranslogLocation(location); + } + if (plan.executeOpOnEngine && indexResult.getResultType() == Engine.Result.Type.SUCCESS) { + final Translog.Location translogLocation = trackTranslogLocation.get() ? indexResult.getTranslogLocation() : null; + versionMap.maybePutIndexUnderLock( + index.uid().bytes(), + new IndexVersionValue(translogLocation, plan.version, index.seqNo(), index.primaryTerm()) + ); + } + localCheckpointTracker.markSeqNoAsProcessed(indexResult.getSeqNo()); + if (indexResult.getTranslogLocation() == null && !(indexResult.getFailure() != null + && (indexResult.getFailure() instanceof AppendOnlyIndexOperationRetryException))) { + // the op is coming from the translog (and is hence persisted already) or it does not have a sequence number + assert index.origin().isFromTranslog() || indexResult.getSeqNo() == SequenceNumbers.UNASSIGNED_SEQ_NO; + localCheckpointTracker.markSeqNoAsPersisted(indexResult.getSeqNo()); + } + indexResult.setTook(System.nanoTime() - index.startTime()); + indexResult.freeze(); + return indexResult; + } finally { + releaseInFlightDocs(reservedDocs); + } + } catch (RuntimeException | IOException e) { + try { + if (e instanceof AlreadyClosedException == false && treatDocumentFailureAsTragicError(index)) { + // TODO: failEngine("index id[" + index.id() + "] origin[" + index.origin() + "] seq#[" + index.seqNo() + "]", e); + } else { + // TODO: maybeFailEngine("index id[" + index.id() + "] origin[" + index.origin() + "] seq#[" + index.seqNo() + "]", e); + } + } catch (Exception inner) { + e.addSuppressed(inner); + } + throw e; + } + } + + private IndexingStrategy indexingStrategyForOperation(final Engine.Index index) throws IOException { + if (index.origin() == Engine.Operation.Origin.PRIMARY) { + return indexingStrategyPlanner.planOperationAsPrimary(index); + } else { + // non-primary mode (i.e., replica or recovery) + return indexingStrategyPlanner.planOperationAsNonPrimary(index); + } + } + + private OpVsEngineDocStatus compareOpToDocBasedOnSeqNo(final Engine.Operation op) { + return OpVsEngineDocStatus.OP_NEWER; + } + + /** resolves the current version of the document, returning null if not found */ + private VersionValue resolveDocVersion(final Engine.Operation op, boolean loadSeqNo) { + return null; + } + + /** + * Checks if the given operation has been processed in this engine or not. + * @return true if the given operation was processed; otherwise false. + */ + private boolean hasBeenProcessedBefore(Engine.Operation op) { + if (Assertions.ENABLED) { + assert op.seqNo() != SequenceNumbers.UNASSIGNED_SEQ_NO : "operation is not assigned seq_no"; + if (op.operationType() == Engine.Operation.TYPE.NO_OP) { + assert noOpKeyedLock.isHeldByCurrentThread(op.seqNo()); + } else { + assert versionMap.assertKeyedLockHeldByCurrentThread(op.uid().bytes()); + } + } + return localCheckpointTracker.hasProcessed(op.seqNo()); + } + + private long generateSeqNoForOperationOnPrimary(final Engine.Operation operation) { + assert operation.origin() == Engine.Operation.Origin.PRIMARY; + assert + operation.seqNo() == SequenceNumbers.UNASSIGNED_SEQ_NO : + "ops should not have an assigned seq no. but was: " + operation.seqNo(); + return doGenerateSeqNoForOperation(operation); + } + + /** + * Generate the sequence number for the specified operation. + * + * @param operation the operation + * @return the sequence number + */ + public long doGenerateSeqNoForOperation(final Engine.Operation operation) { + return localCheckpointTracker.generateSeqNo(); + } + + private Exception tryAcquireInFlightDocs(Engine.Operation operation, Integer integer) { + // TODO - in flight document handling + return null; + } + + private void releaseInFlightDocs(int numDocs) { + assert numDocs >= 0 : numDocs; + final long newValue = inFlightDocCount.addAndGet(-numDocs); + assert newValue >= 0 : "inFlightDocCount must not be negative [" + newValue + "]"; + } + + /** + * Marks the given seq_no as seen and advances the max_seq_no of this engine to at least that value. + */ + protected final void markSeqNoAsSeen(long seqNo) { + localCheckpointTracker.advanceMaxSeqNo(seqNo); + } + + @Override + public long getPersistedLocalCheckpoint() { + return localCheckpointTracker.getPersistedCheckpoint(); + } + + @Override + public long getProcessedLocalCheckpoint() { + return localCheckpointTracker.getProcessedCheckpoint(); + } + + @Override + public SeqNoStats getSeqNoStats(long globalCheckpoint) { + return localCheckpointTracker.getStats(globalCheckpoint); + } + + @Override + public long getLastSyncedGlobalCheckpoint() { + return translogManager.getLastSyncedGlobalCheckpoint(); + } + + @Override + public long getMinRetainedSeqNo() { + // TODO - To be implemented + return -1; + } + + @Override + public final long getMaxSeenAutoIdTimestamp() { + return maxSeenAutoIdTimestamp.get(); + } + + @Override + public void updateMaxUnsafeAutoIdTimestamp(long newTimestamp) { + updateAutoIdTimestamp(newTimestamp, true); + } + + private void updateAutoIdTimestamp(long newTimestamp, boolean unsafe) { + assert newTimestamp >= -1 : "invalid timestamp [" + newTimestamp + "]"; + maxSeenAutoIdTimestamp.updateAndGet(curr -> Math.max(curr, newTimestamp)); + if (unsafe) { + maxUnsafeAutoIdTimestamp.updateAndGet(curr -> Math.max(curr, newTimestamp)); + } + assert maxUnsafeAutoIdTimestamp.get() <= maxSeenAutoIdTimestamp.get(); + } + + private void advanceMaxSeqNoOfUpdatesOrDeletesOnPrimary(long seqNo) { + advanceMaxSeqNoOfUpdatesOrDeletes(seqNo); + } + + @Override + public long getMaxSeqNoOfUpdatesOrDeletes() { + return maxSeqNoOfUpdatesOrDeletes.get(); + } + + @Override + public void advanceMaxSeqNoOfUpdatesOrDeletes(long maxSeqNoOfUpdatesOnPrimary) { + if (maxSeqNoOfUpdatesOnPrimary == SequenceNumbers.UNASSIGNED_SEQ_NO) { + assert false : "max_seq_no_of_updates on primary is unassigned"; + throw new IllegalArgumentException("max_seq_no_of_updates on primary is unassigned"); + } + this.maxSeqNoOfUpdatesOrDeletes.updateAndGet(curr -> Math.max(curr, maxSeqNoOfUpdatesOnPrimary)); + } + + @Override + public long getIndexThrottleTimeInMillis() { + return throttle.getThrottleTimeInMillis(); + } + + @Override + public boolean isThrottled() { + return throttle.isThrottled(); + } + + @Override + public void activateThrottling() { + int count = throttleRequestCount.incrementAndGet(); + assert count >= 1 : "invalid post-increment throttleRequestCount=" + count; + if (count == 1) { + throttle.activate(); + } + } + + @Override + public void deactivateThrottling() { + int count = throttleRequestCount.decrementAndGet(); + assert count >= 0 : "invalid post-decrement throttleRequestCount=" + count; + if (count == 0) { + throttle.deactivate(); + } } public synchronized void refresh(String source) throws EngineException { @@ -153,13 +667,7 @@ public synchronized void refresh(String source) throws EngineException { } public synchronized void refresh(String source, Map refreshInputs) throws EngineException { - refreshListeners.forEach(ref -> { - try { - ref.beforeRefresh(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); + refreshListeners.forEach(PRE_REFRESH_LISTENER_CONSUMER); long id = 0L; if (catalogSnapshot != null) { @@ -168,7 +676,7 @@ public synchronized void refresh(String source, Map re CatalogSnapshot newCatSnap; try { RefreshResult refreshResult; - if(source.equals("merge")) { + if (source.equals("merge")) { refreshResult = engine.refresh(refreshInputs); } else { refreshResult = engine.refresh(new RefreshInput()); @@ -188,21 +696,10 @@ public synchronized void refresh(String source, Map re } catalogSnapshot = newCatSnap; compositeEngineCommitter.addLuceneIndexes(catalogSnapshot); - - catalogSnapshotAwareRefreshListeners.forEach(ref -> { - try { - ref.afterRefresh(true, catalogSnapshot); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - refreshListeners.forEach(ref -> { - try { - ref.afterRefresh(true); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(catalogSnapshot, + refreshListener + )); + refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); // trigger merges triggerPossibleMerges(); @@ -212,41 +709,42 @@ public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { Map refreshInputs = new HashMap<>(); Map> mergedFileMetadata = mergeResult.getMergedFileMetadata(); - for(DataFormat dataFormat : mergedFileMetadata.keySet()) { + for (DataFormat dataFormat : mergedFileMetadata.keySet()) { Collection mergedFiles = mergedFileMetadata.get(dataFormat); RefreshInput refreshInput = new RefreshInput(); mergedFiles.forEach(mergedFile -> { - WriterFileSet writerFileSet = new WriterFileSet(Path.of(mergedFile.directory()), 0); - writerFileSet.add(mergedFile.directory()+"/"+mergedFile.file()); + WriterFileSet writerFileSet = WriterFileSet.builder() + .directory(Path.of(mergedFile.directory())) + .writerGeneration(0) + .addFile(mergedFile.file()) + .build(); refreshInput.add(writerFileSet); }); oneMerge.getFilesToMerge().forEach(fileToMerge -> { - WriterFileSet writerFileSet = new WriterFileSet(Path.of(fileToMerge.directory()), 0); - writerFileSet.add(fileToMerge.directory()+"/"+fileToMerge.file()); + WriterFileSet writerFileSet = WriterFileSet.builder() + .directory(Path.of(fileToMerge.directory())) + .writerGeneration(0) + .addFile(fileToMerge.file()) + .build(); refreshInput.addFilesToRemove(writerFileSet); }); refreshInputs.put(dataFormat, refreshInput); } refresh("merge", refreshInputs); - System.out.println("Merge Completed :: files: " + oneMerge.getFilesToMerge() + " Output : " + mergeResult.getMergedFileMetadata()); } public void triggerPossibleMerges() { try { mergeScheduler.triggerMerges(); - } catch (IOException e) { + } catch (Exception e) { System.out.println("ERROR in MERGE : " + e.getMessage()); e.printStackTrace(); } } - public CatalogSnapshot catalogSnapshot() { - return catalogSnapshot; - } - // This should get wired into searcher acquireSnapshot for initializing reader context later // this now becomes equivalent of the reader // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers @@ -274,34 +772,6 @@ public T getRef() { } } - public static void main(String[] args) throws Exception { - CompositeEngine coordinator = new CompositeEngine(null, null, null, null); - - for (int i = 0; i < 5; i++) { - - // Ingestion into one generation - for (int k = 0; k < 10; k++) { - try (CompositeDataFormatWriter.CompositeDocumentInput doc = coordinator.documentInput()) { - - // Mapper part - doc.addField(new KeywordFieldMapper.KeywordFieldType("f1"), k + "_v1"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f2"), k + "_v2"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f3"), k + "_v3"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f4"), k + "_v4"); - Engine.Index index = new Engine.Index(null, 1L, null); - index.documentInput = doc; - - // applyIndexOperation part - coordinator.index(index); - } - } - - // Refresh until generation - coordinator.refresh("_manual_test"); - System.out.println(coordinator.catalogSnapshot); - } - } - @Override public Engine.DeleteResult delete(Engine.Delete delete) throws IOException { return null; @@ -332,23 +802,20 @@ public List segments(boolean verbose) { return List.of(); } - @Override - public long getMaxSeenAutoIdTimestamp() { - return 0; - } - - @Override - public void updateMaxUnsafeAutoIdTimestamp(long newTimestamp) { - - } - @Override public int fillSeqNoGaps(long primaryTerm) throws IOException { return 0; } @Override - public void forceMerge(boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, boolean upgrade, boolean upgradeOnlyAncientSegments, String forceMergeUUID) throws EngineException, IOException { + public void forceMerge( + boolean flush, + int maxNumSegments, + boolean onlyExpungeDeletes, + boolean upgrade, + boolean upgradeOnlyAncientSegments, + String forceMergeUUID + ) throws EngineException, IOException { mergeScheduler.forceMerge(maxNumSegments); } @@ -359,7 +826,74 @@ public void writeIndexingBuffer() throws EngineException { @Override public void flush(boolean force, boolean waitIfOngoing) throws EngineException { - compositeEngineCommitter.commit(catalogSnapshot); + ensureOpen(); + if (force && waitIfOngoing == false) { + assert false : "wait_if_ongoing must be true for a force flush: force=" + force + " wait_if_ongoing=" + waitIfOngoing; + throw new IllegalArgumentException( + "wait_if_ongoing must be true for a force flush: force=" + force + " wait_if_ongoing=" + waitIfOngoing); + } + try (ReleasableLock lock = readLock.acquire()) { + ensureOpen(); + if (flushLock.tryLock() == false) { + // if we can't get the lock right away we block if needed otherwise barf + if (waitIfOngoing == false) { + return; + } + logger.trace("waiting for in-flight flush to finish"); + flushLock.lock(); + logger.trace("acquired flush lock after blocking"); + } else { + logger.trace("acquired flush lock immediately"); + } + try { + // TODO - implement flush conditions + boolean shouldFlush = true; + if (shouldFlush) { + // TODO - translogManager.ensureCanFlush(); + try { + translogManager.rollTranslogGeneration(); + logger.trace("starting commit for flush; commitTranslog=true"); + final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshot; + final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); + final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); + final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); + compositeEngineCommitter.commit( + () -> { + final Map commitData = new HashMap<>(7); + commitData.put(Translog.TRANSLOG_UUID_KEY, translogManager.getTranslogUUID()); + commitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(localCheckpoint)); + commitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(localCheckpointTracker.getMaxSeqNo())); + commitData.put(MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp.get())); + commitData.put(HISTORY_UUID_KEY, historyUUID); + commitData.put(CATALOG_SNAPSHOT_KEY, serializedCatalogSnapshot); + commitData.put(LAST_COMPOSITE_WRITER_GEN_KEY, Long.toString(lastWriterGeneration)); + return commitData.entrySet().iterator(); + }, catalogSnapshotToFlush + ); + logger.trace("finished commit for flush"); + + translogManager.trimUnreferencedReaders(); + } catch (AlreadyClosedException e) { + // TODO - failOnTragicEvent(e); + throw e; + } catch (Exception e) { + throw new FlushFailedEngineException(shardId, e); + } + } + + } catch (FlushFailedEngineException ex) { + // TODO - maybeFailEngine("flush", ex); + throw ex; + } finally { + flushLock.unlock(); + } + } + // We don't have to do this here; we do it defensively to make sure that even if wall clock time is misbehaving + // (e.g., moves backwards) we will at least still sometimes prune deleted tombstones: + if (engineConfig.isEnableGcDeletes()) { + // TODO - pruneDeletedTombstones(); + } + } @Override @@ -369,7 +903,7 @@ public SafeCommitInfo getSafeCommitInfo() { @Override public TranslogManager translogManager() { - return null; + return translogManager; } @Override @@ -378,12 +912,18 @@ public Closeable acquireHistoryRetentionLock() { } @Override - public Translog.Snapshot newChangesSnapshot(String source, long fromSeqNo, long toSeqNo, boolean requiredFullRange, boolean accurateCount) throws IOException { + public Translog.Snapshot newChangesSnapshot( + String source, + long fromSeqNo, + long toSeqNo, + boolean requiredFullRange, + boolean accurateCount + ) throws IOException { return null; } @Override public String getHistoryUUID() { - return ""; + return historyUUID; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java deleted file mode 100644 index fc771995beb57..0000000000000 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexingManager.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.coord; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; -import org.apache.lucene.search.ReferenceManager; -import org.opensearch.index.engine.Engine; -import org.opensearch.index.engine.EngineException; -import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.RefreshInput; -import org.opensearch.index.engine.exec.WriteResult; -import org.opensearch.index.engine.exec.commit.Committer; -import org.opensearch.index.engine.exec.commit.LuceneCommitEngine; -import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; -import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; -import org.opensearch.index.mapper.KeywordFieldMapper; -import org.opensearch.index.mapper.MapperService; - -public class IndexingManager { - - private final CompositeIndexingExecutionEngine engine; - private final List refreshListeners = new ArrayList<>(); - private final Committer committer; - private CatalogSnapshot catalogSnapshot; - - public IndexingManager(Path indexPath, MapperService mapperService/*, EngineConfig engineConfig*/) - throws IOException { - this.engine = new CompositeIndexingExecutionEngine(mapperService, null, - new Any(List.of(DataFormat.TEXT), DataFormat.TEXT), null, 0); - this.committer = new LuceneCommitEngine(indexPath); - } - - public CompositeDataFormatWriter.CompositeDocumentInput documentInput() throws IOException { - return engine.createCompositeWriter().newDocumentInput(); - } - - public Engine.IndexResult index(Engine.Index index) throws Exception { - WriteResult writeResult = index.documentInput.addToWriter(); - // translog, checkpoint, other checks - return new Engine.IndexResult(writeResult.version(), writeResult.seqNo(), writeResult.term(), - writeResult.success()); - } - - public synchronized void refresh(String source) throws EngineException, IOException { - refreshListeners.forEach(ref -> { - try { - ref.beforeRefresh(); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - - long id = 0L; - if (catalogSnapshot != null) { - id = catalogSnapshot.getId(); - } - CatalogSnapshot newCatSnap = new CatalogSnapshot(engine.refresh(new RefreshInput()), id + 1L); - newCatSnap.incRef(); - if (catalogSnapshot != null) { - catalogSnapshot.decRef(); - } - catalogSnapshot = newCatSnap; - - refreshListeners.forEach(ref -> { - try { - ref.afterRefresh(true); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - } - - // This should get wired into searcher acquireSnapshot for initializing reader context later - // this now becomes equivalent of the reader - // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers - public ReleasableRef acquireSnapshot() { - catalogSnapshot.incRef(); // this should be package-private - return new ReleasableRef<>(catalogSnapshot) { - @Override - public void close() throws Exception { - catalogSnapshot.decRef(); // this should be package-private - } - }; - } - - public static abstract class ReleasableRef implements AutoCloseable { - - private final T t; - - public ReleasableRef(T t) { - this.t = t; - } - - public T getRef() { - return t; - } - } - - public static void main(String[] args) throws Exception { - IndexingManager coordinator = new IndexingManager( - Path.of("/Users/shnkgo/Downloads/mustang/lucene-committer-index/"), null); - - for (int i = 0; i < 5; i++) { - - // Ingestion into one generation - for (int k = 0; k < 10; k++) { - try (CompositeDataFormatWriter.CompositeDocumentInput doc = coordinator.documentInput()) { - - // Mapper part - doc.addField(new KeywordFieldMapper.KeywordFieldType("f1"), k + "_v1"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f2"), k + "_v2"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f3"), k + "_v3"); - doc.addField(new KeywordFieldMapper.KeywordFieldType("f4"), k + "_v4"); - Engine.Index index = new Engine.Index(null, 1L, null); - index.documentInput = doc; - - // applyIndexOperation part - coordinator.index(index); - } - } - - // Refresh until generation - coordinator.refresh("_manual_test"); - System.out.println(coordinator.catalogSnapshot); - } - } - -} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index 652e2bc286d2e..5e2f5a8d7766f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -17,14 +17,15 @@ import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; -import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.mapper.KeywordFieldMapper; import org.opensearch.index.mapper.MappedFieldType; import org.opensearch.index.mapper.ParseContext; +import org.opensearch.index.shard.ShardPath; import java.io.IOException; import java.util.List; @@ -42,12 +43,16 @@ public List supportedFieldTypes() { return List.of(); } - @Override public Writer> createWriter(long writerGeneration) throws IOException { return new LuceneWriter(internalEngine.indexWriter, writerGeneration); } + @Override + public void loadWriterFiles(ShardPath shardPath) throws IOException { + + } + @Override public Merger getMerger() { throw new UnsupportedOperationException(); @@ -64,7 +69,6 @@ public DataFormat getDataFormat() { return DataFormat.LUCENE; } - public static class LuceneDocumentInput implements DocumentInput { private final ParseContext.Document doc; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index 25b916ed03bad..53a395cd5551d 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -57,7 +57,7 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public void updatePendingMerges() { Collection oneMerges = findMerges(); - System.out.println("Found merges : " + oneMerges); +// System.out.println("Found merges : " + oneMerges); for (OneMerge oneMerge : oneMerges) { boolean isValidMerge = true; for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index 80265bf774928..c6e7c330ef9f3 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -34,7 +34,8 @@ public class MergeScheduler { private volatile int maxMergeCount; public MergeScheduler(MergeHandler mergeHandler, CompositeEngine compositeEngine) { - this(mergeHandler, compositeEngine, Math.max(1, Runtime.getRuntime().availableProcessors() / 4)); +// this(mergeHandler, compositeEngine, Math.max(1, Runtime.getRuntime().availableProcessors() / 4)); + this(mergeHandler, compositeEngine, 2); } @@ -69,7 +70,7 @@ public synchronized void refreshConfig(MergeSchedulerConfig config) { * Triggers merges asynchronously in background threads. * This method returns immediately, allowing the calling thread to continue. */ - public void triggerMerges() throws IOException { + public void triggerMerges() { if (isShutdown.get()) { logger.warn("MergeScheduler is shutdown, ignoring merge trigger"); return; @@ -82,7 +83,7 @@ public void triggerMerges() throws IOException { int scheduled = 0; int availableToSchedule = getAvailableMergeSlots(); - while(availableToSchedule >= scheduled && mergeHandler.hasPendingMerges()) { + while(mergeThreads.size() < maxConcurrentMerges && mergeHandler.hasPendingMerges()) { OneMerge oneMerge = mergeHandler.getNextMerge(); if (oneMerge == null) { return; @@ -122,6 +123,7 @@ private void submitMergeTask(OneMerge oneMerge) { MergeThread thread = new MergeThread(oneMerge); mergeThreads.add(thread); thread.start(); + System.out.println("Total merge threads : " + mergeThreads.size() + " Active merges : " + activeMerges.get()); } /** @@ -131,7 +133,7 @@ private class MergeThread extends Thread { private final OneMerge oneMerge; MergeThread(OneMerge oneMerge) { - super("merge-scheduler-" + oneMerge.toString()); + super("merge-scheduler-" + (mergeThreads.size()+1)); this.oneMerge = oneMerge; setDaemon(true); } @@ -160,6 +162,8 @@ public void run() { } finally { activeMerges.decrementAndGet(); mergeThreads.remove(this); + // triggering merge at the end + triggerMerges(); } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index c5d42d3e50f9c..f2e1dce8da021 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -40,6 +40,11 @@ public ParquetMergeHandler( this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; mergePolicy = parquetTieredMergePolicy; + // Merge Policy configurations + this.mergePolicy.setMaxMergedSegmentMB(2000); + this.mergePolicy.setSegmentsPerTier(10.0); +// this.mergePolicy.setMaxMergeAtOnce(5); +// this.mergePolicy.setFloorSegmentMB(1.0); } @Override @@ -53,7 +58,7 @@ public Collection findForceMerges(int maxSegmentCount) { for(WriterFileSet writerFileSet : parquetWriterSet) { for(String file: writerFileSet.getFiles()) { - parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(file)); + parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); } } @@ -88,7 +93,7 @@ public Collection findMerges() { for(WriterFileSet writerFileSet : parquetWriterSet) { for(String file: writerFileSet.getFiles()) { - parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(file)); + parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); } } @@ -107,6 +112,7 @@ public Collection findMerges() { oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); } } catch (Exception e) { + e.printStackTrace(); throw new RuntimeException(e); } return oneMerges; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index 610cdd4908788..eff54fff34065 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -34,7 +34,7 @@ public ParquetTieredMergePolicy() { @Override public void message(String s, String s1) { // TODO: Add logger - System.out.println("Parquet merge: " + s + " : " + s1); +// System.out.println("Parquet merge: " + s + " : " + s1); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 42324d026b756..96b2e2e86b10a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -8,31 +8,31 @@ package org.opensearch.index.engine.exec.text; -import java.nio.file.Path; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.DocumentInput; import org.opensearch.index.engine.exec.FileInfos; -import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.IndexingExecutionEngine; +import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; -import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowIdMapping; -import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.mapper.MappedFieldType; +import org.opensearch.index.shard.ShardPath; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.Collection; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -62,6 +62,11 @@ public DataFormat getDataFormat() { return DataFormat.TEXT; } + @Override + public void loadWriterFiles(ShardPath shardPath) throws IOException { + + } + @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { openFiles.addAll(refreshInput.getWriterFiles()); @@ -158,11 +163,12 @@ public FileInfos flush(FlushIn flushIn) throws IOException { fw.write(sb.toString()); } flushed.set(true); - FileInfos fileInfos = new FileInfos(); - WriterFileSet writerFileSet = new WriterFileSet(currentFile.toPath().getParent(), writerGeneration); - writerFileSet.add(currentFile.getName()); - fileInfos.putWriterFileSet(DataFormat.TEXT, writerFileSet); - return fileInfos; + WriterFileSet writerFileSet = WriterFileSet.builder() + .directory(currentFile.toPath().getParent()) + .writerGeneration(writerGeneration) + .addFile(currentFile.getName()) + .build(); + return FileInfos.builder().putWriterFileSet(DataFormat.TEXT, writerFileSet).build(); } @Override diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 62518dc063465..19f845991a8d8 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -172,6 +172,7 @@ import org.opensearch.index.remote.RemoteStoreStatsTrackerFactory; import org.opensearch.index.search.stats.SearchStats; import org.opensearch.index.search.stats.ShardSearchStats; +import org.opensearch.index.seqno.LocalCheckpointTracker; import org.opensearch.index.seqno.ReplicationTracker; import org.opensearch.index.seqno.RetentionLease; import org.opensearch.index.seqno.RetentionLeaseStats; @@ -196,6 +197,7 @@ import org.opensearch.index.translog.TranslogFactory; import org.opensearch.index.translog.TranslogRecoveryRunner; import org.opensearch.index.translog.TranslogStats; +import org.opensearch.index.translog.listener.TranslogEventListener; import org.opensearch.index.warmer.ShardIndexWarmerService; import org.opensearch.index.warmer.WarmerStats; import org.opensearch.indices.IndexingMemoryController; @@ -316,6 +318,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl private volatile long pendingPrimaryTerm; // see JavaDocs for getPendingPrimaryTerm private final Object engineMutex = new Object(); // lock ordering: engineMutex -> mutex private final AtomicReference currentEngineReference = new AtomicReference<>(); + private final AtomicReference currentCompositeEngineReference = new AtomicReference<>(); final EngineFactory engineFactory; final EngineConfigFactory engineConfigFactory; @@ -398,7 +401,7 @@ Runnable getGlobalCheckpointSyncer() { private final MergedSegmentPublisher mergedSegmentPublisher; private final ReferencedSegmentsPublisher referencedSegmentsPublisher; private final Set pendingMergedSegmentCheckpoints = Sets.newConcurrentHashSet(); - private final CompositeEngine compositeEngine; + private final PluginsService pluginsService; @InternalApi public IndexShard( final ShardRouting shardRouting, @@ -559,16 +562,16 @@ public boolean shouldCache(Query query) { this.clusterApplierService = clusterApplierService; this.mergedSegmentPublisher = mergedSegmentPublisher; this.referencedSegmentsPublisher = referencedSegmentsPublisher; + this.pluginsService = pluginsService; synchronized (this.refreshMutex) { if (shardLevelRefreshEnabled) { startRefreshTask(); } } - this.compositeEngine = new CompositeEngine(mapperService, pluginsService, path, indexSettings); } public CompositeEngine getIndexingExecutionCoordinator() { - return compositeEngine; + return currentCompositeEngineReference.get(); } /** * By default, UNASSIGNED_SEQ_NO is used as the initial global checkpoint for new shard initialization. Ingestion @@ -1144,7 +1147,7 @@ public Engine.IndexResult applyIndexOperationOnPrimary( Engine.Operation.Origin.PRIMARY, sourceToParse, null, - compositeEngine::documentInput + currentCompositeEngineReference.get()::documentInput ); } @@ -1657,7 +1660,7 @@ public void trimTranslog() { return; } verifyNotClosed(); - getIndexer().translogManager().trimUnreferencedTranslogFiles(); + currentCompositeEngineReference.get().translogManager().trimUnreferencedTranslogFiles(); } /** @@ -1673,7 +1676,7 @@ public void forceMerge(ForceMergeRequest forceMerge) throws IOException { if (logger.isTraceEnabled()) { logger.trace("force merge with {}", forceMerge); } - Indexer engine = compositeEngine; + Indexer engine = currentCompositeEngineReference.get(); engine.forceMerge( forceMerge.flush(), forceMerge.maxNumSegments(), @@ -2188,7 +2191,7 @@ public Engine.SearcherSupplier acquireSearcherSupplier(Engine.SearcherScope scop readAllowed(); markSearcherAccessed(); final Engine engine = getEngine(); - compositeEngine.getPrimaryReadEngine().acquireSearcherSupplier(null, scope); + currentCompositeEngineReference.get().getPrimaryReadEngine().acquireSearcherSupplier(null, scope); return engine.acquireSearcherSupplier(this::wrapSearcher, scope); } @@ -2890,8 +2893,18 @@ private void innerOpenEngineAndTranslog(LongSupplier globalCheckpointSupplier, b } // we must create a new engine under mutex (see IndexShard#snapshotStoreMetadata). final Engine newEngine = engineFactory.newReadWriteEngine(config); + CompositeEngine compositeEngine = new CompositeEngine( + config, + mapperService, + pluginsService, + indexSettings, + path, + LocalCheckpointTracker::new, + TranslogEventListener.NOOP_TRANSLOG_EVENT_LISTENER + ); onNewEngine(newEngine); currentEngineReference.set(newEngine); + currentCompositeEngineReference.set(compositeEngine); if (indexSettings.isSegRepEnabledOrRemoteNode()) { // set initial replication checkpoints into tracker. diff --git a/server/src/test/java/org/opensearch/index/engine/InternalEngineTests.java b/server/src/test/java/org/opensearch/index/engine/InternalEngineTests.java index bb5a1eb568108..4bfa06a4ba12a 100644 --- a/server/src/test/java/org/opensearch/index/engine/InternalEngineTests.java +++ b/server/src/test/java/org/opensearch/index/engine/InternalEngineTests.java @@ -5725,7 +5725,7 @@ public void testNoOps() throws IOException { TranslogEventListener.NOOP_TRANSLOG_EVENT_LISTENER ) { @Override - protected long doGenerateSeqNoForOperation(Operation operation) { + public long doGenerateSeqNoForOperation(Operation operation) { throw new UnsupportedOperationException(); } }; diff --git a/test/framework/src/main/java/org/opensearch/index/engine/EngineTestCase.java b/test/framework/src/main/java/org/opensearch/index/engine/EngineTestCase.java index fe6e38e1b3e48..41d9507cbada6 100644 --- a/test/framework/src/main/java/org/opensearch/index/engine/EngineTestCase.java +++ b/test/framework/src/main/java/org/opensearch/index/engine/EngineTestCase.java @@ -736,7 +736,7 @@ IndexWriter createWriter(Directory directory, IndexWriterConfig iwc) throws IOEx } @Override - protected long doGenerateSeqNoForOperation(final Operation operation) { + public long doGenerateSeqNoForOperation(final Operation operation) { return seqNoForOperation != null ? seqNoForOperation.applyAsLong(this, operation) : super.doGenerateSeqNoForOperation(operation); @@ -752,7 +752,7 @@ IndexWriter createWriter(Directory directory, IndexWriterConfig iwc) throws IOEx } @Override - protected long doGenerateSeqNoForOperation(final Operation operation) { + public long doGenerateSeqNoForOperation(final Operation operation) { return seqNoForOperation != null ? seqNoForOperation.applyAsLong(this, operation) : super.doGenerateSeqNoForOperation(operation); From 2250240fb1e90cc6ea2cdf93543292522e0efcb2 Mon Sep 17 00:00:00 2001 From: Abhita Lakkabathini <59249463+abhita@users.noreply.github.com> Date: Tue, 11 Nov 2025 20:20:53 +0530 Subject: [PATCH 074/112] DataFusionReaderManager UTs (#19910) Signed-off-by: Abhita Lakkabathini --- plugins/engine-datafusion/README.md | 15 +- plugins/engine-datafusion/jni/src/lib.rs | 2 +- .../datafusion/DataFusionQueryJNI.java | 4 + .../datafusion/DatafusionEngine.java | 2 +- .../datafusion/search/DatafusionReader.java | 6 +- .../search/DatafusionReaderManager.java | 1 - .../datafusion/search/DatafusionSearcher.java | 5 + .../DataFusionReaderManagerTests.java | 457 ++++++++++++++++++ .../parquet_file_generation_0.parquet | Bin 0 -> 3635 bytes .../parquet_file_generation_1.parquet | Bin 0 -> 3635 bytes .../parquet_file_generation_2.parquet | Bin 0 -> 3635 bytes .../src/test/resources/substrait_plan_test.pb | Bin 0 -> 373 bytes 12 files changed, 482 insertions(+), 10 deletions(-) create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java create mode 100644 plugins/engine-datafusion/src/test/resources/parquet_file_generation_0.parquet create mode 100644 plugins/engine-datafusion/src/test/resources/parquet_file_generation_1.parquet create mode 100644 plugins/engine-datafusion/src/test/resources/parquet_file_generation_2.parquet create mode 100644 plugins/engine-datafusion/src/test/resources/substrait_plan_test.pb diff --git a/plugins/engine-datafusion/README.md b/plugins/engine-datafusion/README.md index 8aa0a1f48c34e..5176d819558bf 100644 --- a/plugins/engine-datafusion/README.md +++ b/plugins/engine-datafusion/README.md @@ -1,15 +1,17 @@ ## Prerequisites -1. Publish OpenSearch to maven local +1. Checkout branch `substrait-plan` for OpenSearch SQL Plugin - https://github.com/vinaykpud/sql/tree/substrait-plan OR https://github.com/bharath-techie/sql/tree/substrait-plan + +2. Publish OpenSearch to maven local ``` ./gradlew publishToMavenLocal ``` -2. Publish SQL plugin to maven local +3. Publish SQL plugin to maven local ``` ./gradlew publishToMavenLocal ``` -3. Run opensearch with following parameters +4. Run opensearch with following parameters ``` ./gradlew run --preserve-data -PremotePlugins="['org.opensearch.plugin:opensearch-job-scheduler:3.3.0.0-SNAPSHOT', 'org.opensearch.plugin:opensearch-sql-plugin:3.3.0.0-SNAPSHOT']" -PinstalledPlugins="['engine-datafusion']" --debug-jvm ``` @@ -122,3 +124,10 @@ curl --location --request POST 'http://localhost:9200/_plugins/_ppl' \ "query": "source=index-7 | stats count() as c by name" }' ``` + +## Steps to Run Unit Tests for Search Flow + +Run the following command in **OpenSearch** to execute tests +``` +./gradlew :plugins:engine-datafusion:test --tests "org.opensearch.datafusion.DataFusionReaderManagerTests" +``` diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index dcd4fd9a1c796..788a5e8651cca 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -210,7 +210,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_destroyReader( +pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeDatafusionReader( mut env: JNIEnv, _class: JClass, ptr: jlong diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java index 8294bbeb9cf33..3431760695bf5 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java @@ -8,6 +8,10 @@ package org.opensearch.datafusion; +import org.opensearch.index.engine.exec.FileMetadata; + +import java.util.Collection; + /** * JNI wrapper for DataFusion operations */ diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index dfbdcb0667efa..1f32127486455 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -110,7 +110,7 @@ protected DatafusionSearcher acquireSearcherInternal(String source) { @Override protected void doClose() { try { - reader.decRef(); + datafusionReaderManager.release(reader); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index ec01a01b57720..352df8f21540b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -35,7 +35,7 @@ public class DatafusionReader implements Closeable { * The cache pointer. */ public long cachePtr; - private AtomicInteger refCount = new AtomicInteger(0); + private AtomicInteger refCount = new AtomicInteger(1); /** * Constructor @@ -56,7 +56,6 @@ public DatafusionReader(String directoryPath, Collection files) { System.out.println("Directory path: " + directoryPath); this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, fileNames); - incRef(); } /** @@ -95,8 +94,7 @@ public void close() throws IOException { if(cachePtr == -1L) { throw new IllegalStateException("Listing table has been already closed"); } - -// closeDatafusionReader(this.cachePtr); + closeDatafusionReader(cachePtr); this.cachePtr = -1; } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index ba14055170dad..5040d58073616 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -64,7 +64,6 @@ public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) th release(old); } this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); - this.current.incRef(); } } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index c08bf0ca10f67..0437deb8fbf24 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -8,8 +8,11 @@ package org.opensearch.datafusion.search; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; import org.opensearch.datafusion.DataFusionQueryJNI; +import org.opensearch.datafusion.DataFusionService; import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.aggregations.SearchResultsCollector; @@ -25,9 +28,11 @@ public class DatafusionSearcher implements EngineSearcher 1 for latest catalogSnapshot holder, 1 for search + assertEquals(2,getRefCount(reader)); + + assertEquals(2, reader.files.stream().toList().get(0).getFiles().size()); + assertNotEquals(-1, reader.cachePtr); + + searcher.close(); + // Assert RefCount 1 -> 1 for latest catalogSnapshot holder + assertEquals(1, getRefCount(reader)); + reader.close(); + assertEquals(-1, reader.getCachePtr()); + } + + /** Test that multiple searchers share the same reader instance for efficiency */ + public void testMultipleSearchersShareSameReader() throws IOException { + ShardPath shardPath = createShardPathWithResourceFiles("test-index", 0, "parquet_file_generation_0.parquet"); + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + RefreshResult refreshResult = new RefreshResult(); + WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); + writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + + refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + + DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); + DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); + + DatafusionReader reader = searcher1.getReader(); + // Both searchers should share the same reader instance + assertSame(searcher1.getReader(), searcher2.getReader()); + + searcher1.close(); + assertEquals(2, getRefCount(reader)); + searcher2.close(); + assertEquals(1, getRefCount(reader)); + reader.decRef(); + assertEquals(0,getRefCount(reader)); + assertEquals(-1, reader.getCachePtr()); + } + + /** Test that reader stays alive when only some searchers are closed (reference counting) */ + public void testReaderSurvivesPartialSearcherClose() throws IOException { + ShardPath shardPath = createShardPathWithResourceFiles("test-index", 0, "parquet_file_generation_0.parquet"); + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + RefreshResult refreshResult = new RefreshResult(); + WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); + writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + + refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + + DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); + DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); + DatafusionReader reader = searcher1.getReader(); + + // Close first searcher - reader should stay alive + searcher1.close(); + assertEquals(2,getRefCount(reader)); + assertNotEquals(-1, reader.cachePtr); + + // Close second searcher - reader should not be closed + searcher2.close(); + assertEquals(1,getRefCount(reader)); + assertNotEquals(-1, reader.cachePtr); + } + + /** Test that refresh creates a new reader with updated file list */ + public void testRefreshCreatesNewReader() throws IOException { + ShardPath shardPath = createShardPathWithResourceFiles("test-index", 0, "parquet_file_generation_2.parquet"); + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + // Initial refresh + RefreshResult refreshResult1 = new RefreshResult(); + WriterFileSet writerFileSet1 = new WriterFileSet(shardPath.getDataPath(), 1); + addFilesToShardPath(shardPath, "parquet_file_generation_0.parquet"); + writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1)); + + DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); + DatafusionReader reader1 = searcher1.getReader(); + assertEquals(2, getRefCount(reader1)); + + // Add new file and refresh + addFilesToShardPath(shardPath, "parquet_file_generation_1.parquet"); + RefreshResult refreshResult2 = new RefreshResult(); + WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); + writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); + refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2)); + + DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); + DatafusionReader reader2 = searcher2.getReader(); + + // Check refCount of initial Reader + assertEquals(1, getRefCount(reader1)); + assertEquals(2, getRefCount(reader2)); + + // Should have different readers + assertNotSame(reader1, reader2); + assertEquals(1, reader1.files.stream().toList().getFirst().getFiles().size()); + assertEquals(2, reader2.files.stream().toList().getFirst().getFiles().size()); + + searcher1.close(); + assertEquals(0, getRefCount(reader1)); + searcher2.close(); + assertEquals(1, getRefCount(reader2)); + } + + /** Test that calling decRef on an already closed reader throws IllegalStateException */ + public void testDecRefAfterCloseThrowsException() throws IOException { + ShardPath shardPath = createShardPathWithResourceFiles("test-index", 0, "parquet_file_generation_2.parquet"); + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + RefreshResult refreshResult = new RefreshResult(); + WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); + writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); + refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + + DatafusionSearcher searcher = engine.acquireSearcher("test"); + DatafusionReader reader = searcher.getReader(); + + searcher.close(); + reader.decRef(); + assertEquals(-1, reader.cachePtr); + + // Calling decRef on closed reader should throw + assertThrows(IllegalStateException.class, reader::decRef); + } + +// R1 -> f1,f2,f3 + // S1 -> f1, f2, f3 + // S2 -> f1, f2, f3 + //R2 -> f2,f3 + //S3 -> f2,f3 + + public void testReaderClosesAfterSearchRelease() throws IOException { + Map finalRes = new HashMap<>(); + DatafusionSearcher datafusionSearcher = null; + + ShardPath shardPath = createShardPathWithResourceFiles("test-index", 0, "parquet_file_generation_2.parquet", "parquet_file_generation_1.parquet"); + + try { + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + RefreshResult refreshResult = new RefreshResult(); + WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); + writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); + writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); + List writerFiles = List.of(writerFileSet); + + refreshResult.add(getMockDataFormat(), writerFiles); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + + // DatafusionReader readerR1 = readerManager.acquire(); + DatafusionSearcher datafusionSearcherS1 = engine.acquireSearcher("Search"); + DatafusionReader readerR1 = datafusionSearcherS1.getReader(); + assertEquals(readerR1.files.size(), datafusionSearcherS1.getReader().files.size()); + + DatafusionSearcher datafusionSearcher1v2 = engine.acquireSearcher("Search"); + DatafusionReader readerR1v2 = datafusionSearcher1v2.getReader(); + assertEquals(readerR1v2.files.size(), datafusionSearcher1v2.getReader().files.size()); + + // Check if same reader is referenced by both Searches + assertEquals(readerR1v2, readerR1); + + addFilesToShardPath(shardPath, "parquet_file_generation_0.parquet"); + // now trigger refresh to have new Reader with F2, F3 + RefreshResult refreshResultR2 = new RefreshResult(); + WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); + writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); + writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + List writerFiles2 = List.of(writerFileSet2); + + refreshResultR2.add(getMockDataFormat(), writerFiles2); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResultR2, 2)); + + // now check if new Reader is created with F2, F3 + // DatafusionReader readerR2 = readerManager.acquire(); + DatafusionSearcher datafusionSearcherS2 = engine.acquireSearcher("Search"); + DatafusionReader readerR2 = datafusionSearcherS2.getReader(); + assertEquals(readerR2.files.size(), datafusionSearcherS2.getReader().files.size()); + + //now we close S1 and automatically R1 will be closed + datafusionSearcherS1.close(); + // 1 for SearcherS1v2 + assertEquals(1, getRefCount(readerR1)); + // 1 for SearcherS2 and 1 for CatalogSnapshot + assertEquals(2, getRefCount(readerR2)); + assertNotEquals(-1, readerR1.cachePtr); + datafusionSearcher1v2.close(); + assertEquals(-1, readerR1v2.cachePtr); + + assertThrows(IllegalStateException.class, () -> readerR1.decRef()); + datafusionSearcherS2.close(); + assertEquals(1, getRefCount(readerR2)); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + if (datafusionSearcher != null) { + datafusionSearcher.close(); + } + } + } + + /** Test end-to-end search functionality with substrait plan execution and result verification */ + public void testSearch() throws IOException { + + ShardPath shardPath = createShardPathWithResourceFiles("index-7", 0, "parquet_file_generation_0.parquet"); + DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); + DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); + + // Initial refresh + RefreshResult refreshResult1 = new RefreshResult(); + WriterFileSet writerFileSet1 = new WriterFileSet(shardPath.getDataPath(), 1); + writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1)); + + DatafusionSearcher searcher1 = engine.acquireSearcher("search"); + DatafusionReader reader1 = searcher1.getReader(); + + byte[] protoContent; + + try (InputStream is = getClass().getResourceAsStream("/substrait_plan_test.pb")) { + protoContent = is.readAllBytes(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + DatafusionQuery datafusionQuery = new DatafusionQuery("index-7", protoContent, new java.util.ArrayList<>()); + Map expectedResults = new HashMap<>(); + expectedResults.put("min", 2L); + expectedResults.put("max", 4L); + expectedResults.put("count()", 2L); + + verifySearchResults(searcher1,datafusionQuery,expectedResults); + + logger.info("AFTER REFRESH"); + + addFilesToShardPath(shardPath, "parquet_file_generation_1.parquet"); + RefreshResult refreshResult2 = new RefreshResult(); + WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); + writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); + refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2)); + + expectedResults = new HashMap<>(); + expectedResults.put("min", 4L); + expectedResults.put("max", 8L); + expectedResults.put("count()", 2L); + + DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); + verifySearchResults(searcher2,datafusionQuery,expectedResults); + + DatafusionReader reader2 = searcher2.getReader(); + + // Should have different readers + assertNotSame(reader1, reader2); + assertEquals(1, reader1.files.stream().toList().getFirst().getFiles().size()); + assertEquals(1, reader2.files.stream().toList().getFirst().getFiles().size()); + + searcher1.close(); + assertEquals(-1,reader1.cachePtr); + searcher2.close(); + } + + // ========== Helper Methods ========== + + private int getRefCount(DatafusionReader reader) { + try { + java.lang.reflect.Field refCountField = DatafusionReader.class.getDeclaredField("refCount"); + refCountField.setAccessible(true); + return ((AtomicInteger) refCountField.get(reader)).get(); + } catch (Exception e) { + throw new RuntimeException("Failed to get ref count", e); + } + } + + private org.opensearch.index.engine.exec.DataFormat getMockDataFormat() { + return new org.opensearch.index.engine.exec.DataFormat() { + @Override + public Setting dataFormatSettings() { return null; } + + @Override + public Setting clusterLeveldataFormatSettings() { return null; } + + @Override + public String name() { return "parquet"; } + + @Override + public void configureStore() {} + }; + } + + private ShardPath createCustomShardPath(String indexName, int shardId) { + Index index = new Index(indexName, UUID.randomUUID().toString()); + ShardId shId = new ShardId(index, shardId); + Path dataPath = createTempDir().resolve("indices").resolve(index.getUUID()).resolve(String.valueOf(shardId)); + return new ShardPath(false, dataPath, dataPath, shId); + } + + private void addFilesToShardPath(ShardPath shardPath, String... fileNames) throws IOException { + for (String resourceFileName : fileNames) { + try (InputStream is = getClass().getResourceAsStream("/" + resourceFileName)) { + Path targetPath = shardPath.getDataPath().resolve(resourceFileName); + java.nio.file.Files.createDirectories(targetPath.getParent()); + if (is != null) { + java.nio.file.Files.copy(is, targetPath); + } else { + java.nio.file.Files.createFile(targetPath); + } + } + } + } + + private ShardPath createShardPathWithResourceFiles(String indexName, int shardId, String... resourceFileNames) throws IOException { + ShardPath shardPath = createCustomShardPath(indexName, shardId); + + for (String resourceFileName : resourceFileNames) { + try (InputStream is = getClass().getResourceAsStream("/" + resourceFileName)) { + Path targetPath = shardPath.getDataPath().resolve(resourceFileName); + java.nio.file.Files.createDirectories(targetPath.getParent()); + if (is != null) { + java.nio.file.Files.copy(is, targetPath); + } else { + java.nio.file.Files.createFile(targetPath); + } + } + } + + return shardPath; + } + + private void verifySearchResults(DatafusionSearcher searcher, DatafusionQuery datafusionQuery, Map expectedResults) throws IOException { + Map finalRes = new HashMap<>(); + Long streamPointer = searcher.search(datafusionQuery, service.getTokioRuntimePointer()); + + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer(), allocator); + + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String filedName = field.getName(); + FieldVector fieldVector = root.getVector(filedName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + for (int i = 0; i < fieldVector.getValueCount(); i++) { + fieldValues[i] = fieldVector.getObject(i); + } + finalRes.put(filedName, fieldValues); + } + } + }; + + while (stream.loadNextBatch().join()) { + collector.collect(stream); + } + + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + assertEquals(Long.valueOf(entry.getValue()[0].toString()), expectedResults.get(entry.getKey())); + } + } + + private byte[] readSubstraitPlanFromResources(String fileName) throws IOException { + try (InputStream is = getClass().getResourceAsStream("/" + fileName)) { + if (is == null) { + throw new IOException("Substrait plan file not found: " + fileName); + } + return is.readAllBytes(); + } + } +} + + + + + + diff --git a/plugins/engine-datafusion/src/test/resources/parquet_file_generation_0.parquet b/plugins/engine-datafusion/src/test/resources/parquet_file_generation_0.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ba936ae7b7de4021cbf8bd930b81e1065fbf6d31 GIT binary patch literal 3635 zcmcInO>7%Q6rQ!+WYfBJ5;CJTvQUKRsufTt&JQ)ThuNh0!%dS^NgQ7+$98_I#7=D| zP9iRFK+sB5LRAq}ReFeeLI@#|Q^bJ_IUo)QRft2x3H6X82QCHPo89rQ*XtsI7$xhO z_xrtX-diVAe5RKMD50GRc#uv)&V3zy)=d-wCwhiTemS4Rgt5Hm@RTgVi}@B0tf+Ud&) z>T_V@g#7uJxd0QW>oG~4rplcI6Zi_Y6cPYPUS$K3Vx6!)y~>t4O_kP;6t1!pbgG`( zXM`MvAoxe0e3rbgd>-^a`Scs(tq)Oj=e9zA?)}aqW#~?w^=&QWa&Hd6i$7>5vAp<` zI!%>3N9=#*Pqu_)#-o@TYg(;=94TDWAqd5-^!qHu>2)(HGi zUzi2X>%fVp$QQN;2)2?!^djeVnC+%svc`O?)&I22yuJlciJ2U=(eTUYpL1X zQt3TK1iB<#+H9j!HKXHTZM%2IG=Pe}9}8wmrD8Q*&aULwGn5e;JnPfcbg8&mSuHG| zC5Z?Cp#cz{Oy`Q(bhfxzsF;G*^?bRUSUt|wLR43>fuv{HQ)|?+J`nKgAH+_HaqKtj( z_LY1H$32A|D*C=pf2u_6p|B@~HTwce#BpW_yG0?#(-0jI`0UawmTTya{Q8%EcX5v> zjj%7;UB$`U5WXKPY+uoj0{Wu>0F?7*?+{?46kbCT-~j^ssoer739Q|*gN3~o{mBVP zA}81$YfRE8btL%_licrcv4EW;;vXyQJ)eF{)gQLvSGs%hy}oD??2>pZ5%!eQm)Nfz zbg`}jRN0G8mfG}3ZBT$5XnThRG)f%>yw9*zI-9T*bFy?we{vF%$XA}-HJGGP>PYec zlYH=kD~UZfjx5JP{b8`K6!{{nFGWfnS-!$7Ke)5hPosmhy)*i6r|U9FqUtkAsUy=N zX1d!2^{{&|!n(@thPv>5s0I1V%(eM9&DWLoM@tmf03YIhu!p=CaSBKYLo z5OO%ene%Zxfk=MBsf?m32ityr1tL^IZCu2N*YRwi`EU`9gyonW)C|4*YBYLL3ttLjNfn{S&=^*o7+yt2DbR9@E7+tECRw~ zdRF2GzJ=bbH?~$-T#xUh06VU=ruc`az3>}Ig^izY3xC14BpvQw@CEs**oX;^jfy+D z%+%2LoF`*5TMNDM8;gB&n>jec{mqK*UFK6b53t59SJ7XN`fO^!4x)>z$H9XB+JSgI znfZYN9yz~!nP}mSOzGxkzVdph+--e(cMtSm=)2GxK7hX&p8rGMfj?}g;NQi+0j|EN Ac>n+a literal 0 HcmV?d00001 diff --git a/plugins/engine-datafusion/src/test/resources/parquet_file_generation_1.parquet b/plugins/engine-datafusion/src/test/resources/parquet_file_generation_1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..2b4a7ac2e8befb87306fdcabdee96ff2843c20a5 GIT binary patch literal 3635 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 Ac>n+a literal 0 HcmV?d00001 diff --git a/plugins/engine-datafusion/src/test/resources/substrait_plan_test.pb b/plugins/engine-datafusion/src/test/resources/substrait_plan_test.pb new file mode 100644 index 0000000000000000000000000000000000000000..61e5597b10b04c45d5c0312328e56f44ec44cc99 GIT binary patch literal 373 zcmYjMT}s115YB8uvJN$d!H2Mj)CEBc)zXSWp2Y_ryh2&yHeE3(BpXR@;dulPAb1MF zdzjWx^D=xt^9}RiDF-^aT+~Hs&8n#8D$7cpDXZt1E_7+qi?zyM@R&0a{k78AWv*@K zQz!-;A`pJMstcRYf!OCPVj{>*k(leNPHhv+3Ng8qyl*~7pTPr4c32u?mSa-<`WIC{i5Yq29k zZ2um*qfMMmKnjdG>o`mx!T+Q@YKhzP2D@7zo!A+^Jy5W%e|Ao8+q)gAnNoB=3ak3D MvZXS1{H$KpF9&l;V*mgE literal 0 HcmV?d00001 From 73975abfd739362029f9b19bcfdcf24757658f66 Mon Sep 17 00:00:00 2001 From: Shashank Gowri Date: Tue, 11 Nov 2025 21:33:25 +0530 Subject: [PATCH 075/112] Remapping WriterFileSet path while recovering CatalogSnapshot from last commit (#19960) Co-authored-by: Shashank Gowri --- .../index/engine/exec/WriterFileSet.java | 22 +++++++++---------- .../engine/exec/coord/CatalogSnapshot.java | 22 +++++++++++++++++++ .../engine/exec/coord/CompositeEngine.java | 1 + 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index 520c66df6ba8f..c9dac6765f62c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -16,6 +16,7 @@ import java.io.Serializable; import java.nio.file.Path; import java.util.HashSet; +import java.util.List; import java.util.Set; public class WriterFileSet implements Serializable, Writeable { @@ -42,17 +43,11 @@ public WriterFileSet(StreamInput in) throws IOException { } public WriterFileSet withDirectory(String newDirectory) { - WriterFileSet newFileSet = new WriterFileSet(Path.of(newDirectory), this.writerGeneration); - - // Extract just the filename and reconstruct with new directory - for (String oldFilePath : this.files) { - Path oldPath = Path.of(oldFilePath); - String fileName = oldPath.getFileName().toString(); - String newFilePath = Path.of(newDirectory, fileName).toString(); - newFileSet.files.add(newFilePath); - } - - return newFileSet; + return WriterFileSet.builder() + .directory(Path.of(newDirectory)) + .writerGeneration(this.writerGeneration) + .addFiles(this.files) + .build(); } /** @@ -137,6 +132,11 @@ public Builder addFile(String file) { return this; } + public Builder addFiles(Set files) { + this.files.addAll(files); + return this; + } + public WriterFileSet build() { if (directory == null) { throw new IllegalStateException("directory must be set"); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index d06311e19964d..baf3f540b53ab 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.Serializable; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Base64; import java.util.Collection; @@ -49,6 +50,12 @@ public CatalogSnapshot(RefreshResult refreshResult, long id) { }); } + private CatalogSnapshot(long id, Map> dfGroupedSearchableFiles) { + super("catalog_snapshot"); + this.id = id; + this.dfGroupedSearchableFiles = dfGroupedSearchableFiles; + } + public CatalogSnapshot(StreamInput in) throws IOException { super("catalog_snapshot"); this.id = in.readLong(); @@ -67,6 +74,21 @@ public CatalogSnapshot(StreamInput in) throws IOException { } } + public CatalogSnapshot remapPaths(Path newShardDataPath) { + Map> remappedFiles = new HashMap<>(); + for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { + String dataFormat = entry.getKey(); + List remappedFileSets = new ArrayList<>(); + for (WriterFileSet fileSet : entry.getValue()) { + // Create new WriterFileSet with updated directory and file paths + WriterFileSet remappedFileSet = fileSet.withDirectory(newShardDataPath.toString()); + remappedFileSets.add(remappedFileSet); + } + remappedFiles.put(dataFormat, remappedFileSets); + } + return new CatalogSnapshot(this.id, remappedFiles); + } + @Override public void writeTo(StreamOutput out) throws IOException { out.writeLong(id); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 9708acc486864..c351a51bc4198 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -213,6 +213,7 @@ public CompositeEngine( final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { this.catalogSnapshot = lastCommittedCatalogSnapshot; + this.catalogSnapshot.remapPaths(shardPath.getDataPath()); lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); }); // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used From f3bc3bde3b88d640efef50c0882822936fd2a70b Mon Sep 17 00:00:00 2001 From: Shashank Gowri Date: Wed, 12 Nov 2025 19:56:55 +0530 Subject: [PATCH 076/112] Feature/datafusion (#19972) * Interim workaround to use NoOpTranslogManager in InternalEngine * Fix for translog deletion --------- Co-authored-by: Shashank Gowri --- .../index/engine/CombinedDeletionPolicy.java | 12 ++- .../index/engine/InternalEngine.java | 22 ++--- .../index/engine/exec/commit/Committer.java | 4 +- .../exec/commit/LuceneCommitEngine.java | 24 ++++-- .../engine/exec/coord/CompositeEngine.java | 83 ++++++++++--------- .../opensearch/index/shard/IndexShard.java | 16 ++-- 6 files changed, 86 insertions(+), 75 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/CombinedDeletionPolicy.java b/server/src/main/java/org/opensearch/index/engine/CombinedDeletionPolicy.java index 4d7faf6c9e375..4d85da3744c08 100644 --- a/server/src/main/java/org/opensearch/index/engine/CombinedDeletionPolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/CombinedDeletionPolicy.java @@ -70,7 +70,7 @@ public class CombinedDeletionPolicy extends IndexDeletionPolicy { private volatile IndexCommit lastCommit; // the most recent commit point private volatile SafeCommitInfo safeCommitInfo = SafeCommitInfo.EMPTY; - CombinedDeletionPolicy( + public CombinedDeletionPolicy( Logger logger, TranslogDeletionPolicy translogDeletionPolicy, SoftDeletesPolicy softDeletesPolicy, @@ -139,6 +139,10 @@ public void onCommit(List commits) throws IOException { + newSafeCommit.getGeneration(); } + public IndexCommit getLastCommit() { + return lastCommit; + } + private void deleteCommit(IndexCommit commit) throws IOException { assert commit.isDeleted() == false : "Index commit [" + commitDescription(commit) + "] is deleted twice"; logger.debug("Delete index commit [{}]", commitDescription(commit)); @@ -152,7 +156,9 @@ private void updateRetentionPolicy() throws IOException { assert safeCommit.isDeleted() == false : "The safe commit must not be deleted"; assert lastCommit.isDeleted() == false : "The last commit must not be deleted"; final long localCheckpointOfSafeCommit = Long.parseLong(safeCommit.getUserData().get(SequenceNumbers.LOCAL_CHECKPOINT_KEY)); - softDeletesPolicy.setLocalCheckpointOfSafeCommit(localCheckpointOfSafeCommit); + if (softDeletesPolicy != null) { + softDeletesPolicy.setLocalCheckpointOfSafeCommit(localCheckpointOfSafeCommit); + } translogDeletionPolicy.setLocalCheckpointOfSafeCommit(localCheckpointOfSafeCommit); } @@ -160,7 +166,7 @@ protected int getDocCountOfCommit(IndexCommit indexCommit) throws IOException { return SegmentInfos.readCommit(indexCommit.getDirectory(), indexCommit.getSegmentsFileName()).totalMaxDoc(); } - SafeCommitInfo getSafeCommitInfo() { + public SafeCommitInfo getSafeCommitInfo() { return safeCommitInfo; } diff --git a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java index 9db8956d6de37..6f8b08af5d3be 100644 --- a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java @@ -112,13 +112,13 @@ import org.opensearch.index.seqno.SequenceNumbers; import org.opensearch.index.shard.IndexShard; import org.opensearch.index.shard.OpenSearchMergePolicy; -import org.opensearch.index.translog.InternalTranslogManager; +import org.opensearch.index.translog.NoOpTranslogManager; import org.opensearch.index.translog.Translog; import org.opensearch.index.translog.TranslogCorruptedException; import org.opensearch.index.translog.TranslogDeletionPolicy; import org.opensearch.index.translog.TranslogException; import org.opensearch.index.translog.TranslogManager; -import org.opensearch.index.translog.TranslogOperationHelper; +import org.opensearch.index.translog.TranslogStats; import org.opensearch.index.translog.listener.CompositeTranslogEventListener; import org.opensearch.index.translog.listener.TranslogEventListener; import org.opensearch.search.suggest.completion.CompletionStats; @@ -147,6 +147,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static org.opensearch.index.translog.Translog.EMPTY_TRANSLOG_SNAPSHOT; + /** * The default internal engine (can be overridden by plugins) * @@ -392,20 +394,14 @@ protected TranslogManager createTranslogManager( TranslogDeletionPolicy translogDeletionPolicy, CompositeTranslogEventListener translogEventListener ) throws IOException { - return new InternalTranslogManager( - engineConfig.getTranslogConfig(), - engineConfig.getPrimaryTermSupplier(), - engineConfig.getGlobalCheckpointSupplier(), - translogDeletionPolicy, + return new NoOpTranslogManager( shardId, readLock, - this::getLocalCheckpointTracker, - translogUUID, - translogEventListener, this::ensureOpen, - engineConfig.getTranslogFactory(), - engineConfig.getStartedPrimarySupplier(), - TranslogOperationHelper.create(engineConfig) + new TranslogStats(), + EMPTY_TRANSLOG_SNAPSHOT, + translogUUID, + true ); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java index 5785d109e6e4d..d29cc0e605a45 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java @@ -8,8 +8,8 @@ package org.opensearch.index.engine.exec.commit; +import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; -import org.opensearch.index.seqno.SequenceNumbers; import java.io.Closeable; import java.io.IOException; @@ -26,5 +26,5 @@ public interface Committer extends Closeable { Optional readLastCommittedCatalogSnapshot() throws IOException; - SequenceNumbers.CommitInfo loadSeqNoInfoFromLastCommit() throws IOException; + SafeCommitInfo getSafeCommitInfo(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java index 7d05314d03b3c..71ff9cd9bf541 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -8,34 +8,42 @@ package org.opensearch.index.engine.exec.commit; +import org.apache.logging.log4j.Logger; import org.apache.lucene.index.IndexCommit; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.NIOFSDirectory; +import org.opensearch.common.logging.Loggers; +import org.opensearch.index.engine.CombinedDeletionPolicy; +import org.opensearch.index.engine.SafeCommitInfo; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; -import org.opensearch.index.seqno.SequenceNumbers; import org.opensearch.index.store.Store; +import org.opensearch.index.translog.TranslogDeletionPolicy; import java.io.IOException; import java.nio.file.Path; import java.util.Collection; import java.util.Map; import java.util.Optional; +import java.util.function.LongSupplier; import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.CATALOG_SNAPSHOT_KEY; public class LuceneCommitEngine implements Committer { + private final Logger logger; private final IndexWriter indexWriter; - private final LuceneIndexDeletionPolicy indexDeletionPolicy; + private final CombinedDeletionPolicy combinedDeletionPolicy; private final Store store; - public LuceneCommitEngine(Store store) throws IOException { - indexDeletionPolicy = new LuceneIndexDeletionPolicy(); + public LuceneCommitEngine(Store store, TranslogDeletionPolicy translogDeletionPolicy, LongSupplier globalCheckpointSupplier) + throws IOException { + this.logger = Loggers.getLogger(LuceneCommitEngine.class, store.shardId()); + this.combinedDeletionPolicy = new CombinedDeletionPolicy(logger, translogDeletionPolicy, null, globalCheckpointSupplier); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(); - indexWriterConfig.setIndexDeletionPolicy(indexDeletionPolicy); + indexWriterConfig.setIndexDeletionPolicy(combinedDeletionPolicy); this.store = store; this.indexWriter = new IndexWriter(store.directory(), indexWriterConfig); } @@ -58,7 +66,7 @@ public CommitPoint commit(Iterable> commitData, Catalo indexWriter.setLiveCommitData(commitData); try { indexWriter.commit(); - IndexCommit indexCommit = indexDeletionPolicy.getLatestIndexCommit(); + IndexCommit indexCommit = combinedDeletionPolicy.getLastCommit(); return CommitPoint.builder() .commitFileName(indexCommit.getSegmentsFileName()) .fileNames(indexCommit.getFileNames()) @@ -86,8 +94,8 @@ public Optional readLastCommittedCatalogSnapshot() throws IOExc } @Override - public SequenceNumbers.CommitInfo loadSeqNoInfoFromLastCommit() throws IOException { - return SequenceNumbers.loadSeqNoInfoFromLuceneCommit(getLastCommittedData().entrySet()); + public SafeCommitInfo getSafeCommitInfo() { + return this.combinedDeletionPolicy.getSafeCommitInfo(); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index c351a51bc4198..b026630861325 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -207,27 +207,9 @@ public CompositeEngine( updateAutoIdTimestamp(Long.MAX_VALUE, true); } - // initialize committer and composite indexing execution engine - committerRef = new LuceneCommitEngine(store); - this.compositeEngineCommitter = committerRef; - final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); - this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { - this.catalogSnapshot = lastCommittedCatalogSnapshot; - this.catalogSnapshot.remapPaths(shardPath.getDataPath()); - lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); - }); - // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used - this.engine = new CompositeIndexingExecutionEngine( - mapperService, - pluginsService, - shardPath, - lastCommittedWriterGeneration.incrementAndGet() - ); - this.engine.loadWriterFiles(shardPath); - // initialize local checkpoint tracker and translog manager this.localCheckpointTracker = createLocalCheckpointTracker(localCheckpointTrackerSupplier); - final Map userData = this.compositeEngineCommitter.getLastCommittedData(); + final Map userData = store.readLastCommittedSegmentsInfo().getUserData(); String translogUUID = Objects.requireNonNull(userData.get(Translog.TRANSLOG_UUID_KEY)); final TranslogDeletionPolicy translogDeletionPolicy = getTranslogDeletionPolicy(engineConfig); TranslogEventListener internalTranslogEventListener = new TranslogEventListener() { @@ -260,6 +242,24 @@ public void onFailure(String reason, Exception ex) { translogManagerRef = createTranslogManager(translogUUID, translogDeletionPolicy, compositeTranslogEventListener); this.translogManager = translogManagerRef; + // initialize committer and composite indexing execution engine + committerRef = new LuceneCommitEngine(store, translogDeletionPolicy, translogManager::getLastSyncedGlobalCheckpoint); + this.compositeEngineCommitter = committerRef; + final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); + this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { + this.catalogSnapshot = lastCommittedCatalogSnapshot; + this.catalogSnapshot.remapPaths(shardPath.getDataPath()); + lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); + }); + // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used + this.engine = new CompositeIndexingExecutionEngine( + mapperService, + pluginsService, + shardPath, + lastCommittedWriterGeneration.incrementAndGet() + ); + this.engine.loadWriterFiles(shardPath); + this.maxSeqNoOfUpdatesOrDeletes = new AtomicLong(SequenceNumbers.max(localCheckpointTracker.getMaxSeqNo(), translogManager.getMaxSeqNo())); @@ -329,7 +329,8 @@ private LocalCheckpointTracker createLocalCheckpointTracker( ) throws IOException { final long maxSeqNo; final long localCheckpoint; - final SequenceNumbers.CommitInfo seqNoStats = this.compositeEngineCommitter.loadSeqNoInfoFromLastCommit(); + final SequenceNumbers.CommitInfo seqNoStats = + SequenceNumbers.loadSeqNoInfoFromLuceneCommit(store.readLastCommittedSegmentsInfo().getUserData().entrySet()); maxSeqNo = seqNoStats.maxSeqNo; localCheckpoint = seqNoStats.localCheckpoint; logger.trace("recovered maximum sequence number [{}] and local checkpoint [{}]", maxSeqNo, localCheckpoint); @@ -594,7 +595,6 @@ public long getLastSyncedGlobalCheckpoint() { @Override public long getMinRetainedSeqNo() { - // TODO - To be implemented return -1; } @@ -855,25 +855,26 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { translogManager.rollTranslogGeneration(); logger.trace("starting commit for flush; commitTranslog=true"); final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshot; - final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); - final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); - final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); - compositeEngineCommitter.commit( - () -> { - final Map commitData = new HashMap<>(7); - commitData.put(Translog.TRANSLOG_UUID_KEY, translogManager.getTranslogUUID()); - commitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(localCheckpoint)); - commitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(localCheckpointTracker.getMaxSeqNo())); - commitData.put(MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp.get())); - commitData.put(HISTORY_UUID_KEY, historyUUID); - commitData.put(CATALOG_SNAPSHOT_KEY, serializedCatalogSnapshot); - commitData.put(LAST_COMPOSITE_WRITER_GEN_KEY, Long.toString(lastWriterGeneration)); - return commitData.entrySet().iterator(); - }, catalogSnapshotToFlush - ); - logger.trace("finished commit for flush"); - - translogManager.trimUnreferencedReaders(); + if (catalogSnapshotToFlush != null) { + final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); + final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); + final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); + compositeEngineCommitter.commit( + () -> { + final Map commitData = new HashMap<>(7); + commitData.put(Translog.TRANSLOG_UUID_KEY, translogManager.getTranslogUUID()); + commitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(localCheckpoint)); + commitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(localCheckpointTracker.getMaxSeqNo())); + commitData.put(MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp.get())); + commitData.put(HISTORY_UUID_KEY, historyUUID); + commitData.put(CATALOG_SNAPSHOT_KEY, serializedCatalogSnapshot); + commitData.put(LAST_COMPOSITE_WRITER_GEN_KEY, Long.toString(lastWriterGeneration)); + return commitData.entrySet().iterator(); + }, catalogSnapshotToFlush + ); + logger.trace("finished commit for flush"); + translogManager.trimUnreferencedReaders(); + } } catch (AlreadyClosedException e) { // TODO - failOnTragicEvent(e); throw e; @@ -899,7 +900,7 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { @Override public SafeCommitInfo getSafeCommitInfo() { - return null; + return compositeEngineCommitter.getSafeCommitInfo(); } @Override diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 19f845991a8d8..04739e55abd9e 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -2685,7 +2685,7 @@ private Engine.Result applyTranslogOperation(Indexer engine, Translog.Operation index.routing() ), index.id(), - null + currentCompositeEngineReference.get()::documentInput ); break; case DELETE: @@ -4016,11 +4016,11 @@ private void doCheckIndex() throws IOException { public Indexer getIndexer() { - return getEngine(); + return getIndexingExecutionCoordinator(); } public CheckpointState getCheckpointState() { - return getEngine(); + return getIndexingExecutionCoordinator(); } public StatsHolder getStatsHolder() { @@ -4041,7 +4041,7 @@ public Engine getEngine() { protected Indexer getIndexerOrNull() { - return getEngineOrNull(); + return getIndexingExecutionCoordinator(); } public CheckpointState getCheckpointStateOrNull() { @@ -4245,8 +4245,8 @@ public boolean useRetentionLeasesInPeerRecovery() { } private SafeCommitInfo getSafeCommitInfo() { - final Engine engine = getEngineOrNull(); - return engine == null ? SafeCommitInfo.EMPTY : getIndexer().getSafeCommitInfo(); + final Indexer indexer = getIndexerOrNull(); + return indexer == null ? SafeCommitInfo.EMPTY : getIndexer().getSafeCommitInfo(); } class ShardEventListener implements Engine.EventListener { @@ -4839,14 +4839,14 @@ public final void sync(Translog.Location location, Consumer syncListe public void sync() throws IOException { verifyNotClosed(); - getEngine().translogManager().syncTranslog(); + getIndexer().translogManager().syncTranslog(); } /** * Checks if the underlying storage sync is required. */ public boolean isSyncNeeded() { - return getEngine().translogManager().isTranslogSyncNeeded(); + return getIndexer().translogManager().isTranslogSyncNeeded(); } /** From 459ead630060de69e921b0c7d00bf838d952c563 Mon Sep 17 00:00:00 2001 From: Raghuvansh Raj Date: Wed, 12 Nov 2025 20:55:16 +0530 Subject: [PATCH 077/112] IndexingMemoryController Integration for VSRs and ArrowWriters for parquet-data-format module (#19941) * IndexingMemoryController Integration for VSRs and ArrowWriters for parquet-data-format module - Integrated native memory tracking for VSRs and ArrowWriters in IndexingMemoryController - Fixed ArrowBufferPool allocator creation logic to have a single RootAllocator per shard and ChildAllocators for each ParquetWriter - Fixed VSR rotation bugs in ParquetDocumentInput.addToWriter code path Signed-off-by: Raghuvansh Raj * Hardcoding max root allocation bytes and max child allocator bytes in ArrowBufferPool * Fixing merge conflicts --------- Signed-off-by: Raghuvansh Raj --- .../ParquetDataFormatPlugin.java | 54 ++++- .../parquetdataformat/bridge/RustBridge.java | 1 + .../engine/ParquetExecutionEngine.java | 32 ++- .../memory/ArrowBufferPool.java | 202 +++--------------- .../parquetdataformat/vsr/VSRManager.java | 11 +- .../parquetdataformat/vsr/VSRPool.java | 18 +- .../writer/ParquetWriter.java | 16 +- .../src/main/rust/src/lib.rs | 46 ++++ .../common/settings/ClusterSettings.java | 3 + .../engine/exec/IndexingExecutionEngine.java | 7 +- .../CompositeIndexingExecutionEngine.java | 17 +- .../engine/exec/coord/CompositeEngine.java | 15 +- .../engine/exec/lucene/LuceneIEEngine.java | 6 + .../index/engine/exec/text/TextEngine.java | 5 + .../opensearch/index/shard/IndexShard.java | 7 +- .../indices/IndexingMemoryController.java | 153 ++++++++++--- 16 files changed, 361 insertions(+), 232 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java index 3c686bc37f209..4f9561270354c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java @@ -11,6 +11,14 @@ import com.parquet.parquetdataformat.fields.ArrowSchemaBuilder; import com.parquet.parquetdataformat.engine.read.ParquetDataSourceCodec; import com.parquet.parquetdataformat.writer.ParquetWriter; +import org.opensearch.cluster.metadata.IndexNameExpressionResolver; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.core.common.io.stream.NamedWriteableRegistry; +import org.opensearch.core.xcontent.NamedXContentRegistry; +import org.opensearch.env.Environment; +import org.opensearch.env.NodeEnvironment; import org.opensearch.index.engine.DataFormatPlugin; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; @@ -20,12 +28,16 @@ import org.opensearch.plugins.DataSourcePlugin; import org.opensearch.index.mapper.MapperService; import org.opensearch.plugins.Plugin; +import org.opensearch.repositories.RepositoriesService; +import org.opensearch.script.ScriptService; +import org.opensearch.threadpool.ThreadPool; +import org.opensearch.transport.client.Client; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; +import org.opensearch.watcher.ResourceWatcherService; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; +import java.util.*; +import java.util.function.Supplier; /** * OpenSearch plugin that provides Parquet data format support for indexing operations. @@ -58,10 +70,39 @@ */ public class ParquetDataFormatPlugin extends Plugin implements DataFormatPlugin, DataSourcePlugin { + private Settings settings; + + public static String DEFAULT_MAX_NATIVE_ALLOCATION = "10%"; + + public static final Setting INDEX_MAX_NATIVE_ALLOCATION = Setting.simpleString( + "index.parquet.max_native_allocation", + DEFAULT_MAX_NATIVE_ALLOCATION, + Setting.Property.NodeScope, + Setting.Property.Dynamic + ); + @Override @SuppressWarnings("unchecked") public IndexingExecutionEngine indexingEngine(MapperService mapperService, ShardPath shardPath) { - return (IndexingExecutionEngine) new ParquetExecutionEngine(() -> ArrowSchemaBuilder.getSchema(mapperService), shardPath); + return (IndexingExecutionEngine) new ParquetExecutionEngine(settings, () -> ArrowSchemaBuilder.getSchema(mapperService), shardPath); + } + + @Override + public Collection createComponents( + Client client, + ClusterService clusterService, + ThreadPool threadPool, + ResourceWatcherService resourceWatcherService, + ScriptService scriptService, + NamedXContentRegistry xContentRegistry, + Environment environment, + NodeEnvironment nodeEnvironment, + NamedWriteableRegistry namedWriteableRegistry, + IndexNameExpressionResolver indexNameExpressionResolver, + Supplier repositoriesServiceSupplier + ) { + this.settings = clusterService.getSettings(); + return super.createComponents(client, clusterService, threadPool, resourceWatcherService, scriptService, xContentRegistry, environment, nodeEnvironment, namedWriteableRegistry, indexNameExpressionResolver, repositoriesServiceSupplier); } private Class getDataFormatType() { @@ -83,6 +124,11 @@ public Optional> getSettings() { + return List.of(INDEX_MAX_NATIVE_ALLOCATION); + } + // for testing locally only public void indexDataToParquetEngine() throws IOException { //Create Engine (take Schema as Input) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 5468a89a9c5bd..b656676eb3af1 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -86,6 +86,7 @@ private static void loadNativeLibrary() { public static native void write(String file, long arrayAddress, long schemaAddress) throws IOException; public static native void closeWriter(String file) throws IOException; public static native void flushToDisk(String file) throws IOException; + public static native long getFilteredNativeBytesUsed(String pathPrefix); // State and metrics methods handled on Rust side public static native boolean writerExists(String file); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 3d3596f9feef9..e51f060156c97 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -1,11 +1,17 @@ package com.parquet.parquetdataformat.engine; +import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.memory.ArrowBufferPool; import com.parquet.parquetdataformat.merge.CompactionStrategy; import com.parquet.parquetdataformat.merge.ParquetMergeExecutor; import com.parquet.parquetdataformat.merge.ParquetMerger; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import com.parquet.parquetdataformat.writer.ParquetWriter; import org.apache.arrow.vector.types.pojo.Schema; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.IndexingExecutionEngine; import org.opensearch.index.engine.exec.Merger; @@ -15,6 +21,7 @@ import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.shard.ShardPath; +import java.io.Closeable; import java.io.IOException; import java.nio.file.DirectoryStream; import java.nio.file.Files; @@ -59,18 +66,22 @@ */ public class ParquetExecutionEngine implements IndexingExecutionEngine { + private static final Logger logger = LogManager.getLogger(ParquetExecutionEngine.class); + + public static final String FILE_NAME_PREFIX = "_parquet_file_generation"; private static final Pattern FILE_PATTERN = Pattern.compile(".*_(\\d+)\\.parquet$", Pattern.CASE_INSENSITIVE); - private static final String FILE_NAME_PREFIX = "_parquet_file_generation"; private static final String FILE_NAME_EXT = ".parquet"; private final Supplier schema; private final List filesWrittenAlready = new ArrayList<>(); private final ShardPath shardPath; private final ParquetMerger parquetMerger = new ParquetMergeExecutor(CompactionStrategy.RECORD_BATCH); + private final ArrowBufferPool arrowBufferPool; - public ParquetExecutionEngine(Supplier schema, ShardPath shardPath) { + public ParquetExecutionEngine(Settings settings, Supplier schema, ShardPath shardPath) { this.schema = schema; this.shardPath = shardPath; + this.arrowBufferPool = new ArrowBufferPool(settings); } @Override @@ -98,7 +109,7 @@ public List supportedFieldTypes() { @Override public Writer createWriter(long writerGeneration) throws IOException { String fileName = Path.of(shardPath.getDataPath().toString(), FILE_NAME_PREFIX + "_" + writerGeneration + FILE_NAME_EXT).toString(); - return new ParquetWriter(fileName, schema.get(), writerGeneration); + return new ParquetWriter(fileName, schema.get(), writerGeneration, arrowBufferPool); } @Override @@ -121,4 +132,19 @@ public RefreshResult refresh(RefreshInput refreshInput) throws IOException { public DataFormat getDataFormat() { return new ParquetDataFormat(); } + + @Override + public long getNativeBytesUsed() { + long vsrMemory = arrowBufferPool.getTotalAllocatedBytes(); + String shardDataPath = shardPath.getDataPath().toString(); + long filteredArrowWriterMemory = RustBridge.getFilteredNativeBytesUsed(shardDataPath); + logger.info("Native memory used by VSR Buffer Pool: {}", vsrMemory); + logger.info("Native memory used by ArrowWriters in shard path {}: {}", shardDataPath, filteredArrowWriterMemory); + return vsrMemory + filteredArrowWriterMemory; + } + + @Override + public void close() throws IOException { + arrowBufferPool.close(); + } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java index 89616410b2efc..4a71187f188ab 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/ArrowBufferPool.java @@ -1,43 +1,35 @@ package com.parquet.parquetdataformat.memory; -import org.apache.arrow.memory.AllocationListener; -import org.apache.arrow.memory.AllocationOutcome; +import com.parquet.parquetdataformat.ParquetDataFormatPlugin; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.RootAllocator; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.common.settings.Settings; +import org.opensearch.common.unit.RatioValue; +import org.opensearch.monitor.jvm.JvmInfo; +import org.opensearch.monitor.os.OsProbe; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicLong; +import java.io.Closeable; /** * Manages BufferAllocator lifecycle with configurable allocation strategies. * Provides factory methods for creating allocators with different policies * based on OpenSearch settings and memory pressure conditions. */ -public class ArrowBufferPool { +public class ArrowBufferPool implements Closeable { - private final Settings settings; - private final long maxAllocation; - private final long initReservation; - private final AllocationListener allocationListener; - private final MemoryPressureMonitor memoryMonitor; + private static final Logger logger = LogManager.getLogger(ArrowBufferPool.class); - // Track active allocators for monitoring and cleanup - private final ConcurrentHashMap activeAllocators; - private final AtomicLong totalAllocated; + private final RootAllocator rootAllocator; + private final long maxChildAllocation; - public ArrowBufferPool(Settings settings, MemoryPressureMonitor memoryMonitor) { - this.settings = settings; - this.memoryMonitor = memoryMonitor; - this.activeAllocators = new ConcurrentHashMap<>(); - this.totalAllocated = new AtomicLong(0); + public ArrowBufferPool(Settings settings) { + long maxAllocationInBytes = 10L * 1024 * 1024 * 1024; - // Configure memory limits - parse size strings manually - this.maxAllocation = parseByteSize(settings.get("parquet.memory.max_allocation", "1gb")); - this.initReservation = parseByteSize(settings.get("parquet.memory.init_reservation", "100mb")); - - // Set up allocation listener for monitoring - this.allocationListener = new PoolAllocationListener(); + logger.info("Max native memory allocation for ArrowBufferPool: {} bytes", maxAllocationInBytes); + this.rootAllocator = new RootAllocator(maxAllocationInBytes); + this.maxChildAllocation = 1024 * 1024 * 1024; } /** @@ -46,170 +38,36 @@ public ArrowBufferPool(Settings settings, MemoryPressureMonitor memoryMonitor) { * @param name Unique name for the allocator * @return BufferAllocator configured with pool settings */ - public BufferAllocator createAllocator(String name) { - return createAllocator(name, initReservation, maxAllocation); + public BufferAllocator createChildAllocator(String name) { + return createChildAllocator(name, maxChildAllocation); } /** * Creates a new child allocator with custom limits. * - * @param name Unique name for the allocator - * @param reservation Initial reservation amount - * @param maxBytes Maximum allocation limit + * @param name Unique name for the allocator + * @param maxAllocation Maximum allocation limit * @return BufferAllocator configured with specified limits */ - public BufferAllocator createAllocator(String name, long reservation, long maxBytes) { - // Check memory pressure before creating new allocator - if (memoryMonitor.shouldRejectAllocation(reservation)) { - throw new OutOfMemoryError( - "Cannot create allocator '" + name + "': memory pressure too high"); - } - - BufferAllocator rootAllocator = createRootAllocator(); - //BufferAllocator childAllocator = rootAllocator.newChildAllocator( - // name, allocationListener, reservation, maxBytes); - - activeAllocators.put(name, rootAllocator); - totalAllocated.addAndGet(reservation); - - return rootAllocator; - } - - /** - * Releases an allocator and cleans up resources. - * - * @param name Name of the allocator to release - */ - public void releaseAllocator(String name) { - BufferAllocator allocator = activeAllocators.remove(name); - if (allocator != null) { - long allocated = allocator.getAllocatedMemory(); - totalAllocated.addAndGet(-allocated); - allocator.close(); - } + private BufferAllocator createChildAllocator(String name, long maxAllocation) { + return rootAllocator.newChildAllocator(name, 0, maxAllocation); } - /** - * Gets current memory allocation statistics. - * - * @return AllocationStats with current usage information - */ - public AllocationStats getStats() { - return new AllocationStats( - totalAllocated.get(), - maxAllocation, - activeAllocators.size(), - memoryMonitor.getCurrentPressure() - ); + public long getTotalAllocatedBytes() { + return rootAllocator.getAllocatedMemory(); } /** * Closes all active allocators and cleans up the pool. */ + @Override public void close() { - activeAllocators.values().forEach(BufferAllocator::close); - activeAllocators.clear(); - totalAllocated.set(0); - } - - private BufferAllocator createRootAllocator() { - // Create a simple RootAllocator with basic settings - return new RootAllocator(maxAllocation); - } - - /** - * Simple byte size parser for configuration strings. - */ - private long parseByteSize(String sizeStr) { - if (sizeStr == null || sizeStr.trim().isEmpty()) { - return 0; - } - - String trimmed = sizeStr.trim().toLowerCase(); - long multiplier = 1; - - if (trimmed.endsWith("kb")) { - multiplier = 1024; - trimmed = trimmed.substring(0, trimmed.length() - 2); - } else if (trimmed.endsWith("mb")) { - multiplier = 1024 * 1024; - trimmed = trimmed.substring(0, trimmed.length() - 2); - } else if (trimmed.endsWith("gb")) { - multiplier = 1024 * 1024 * 1024; - trimmed = trimmed.substring(0, trimmed.length() - 2); - } else if (trimmed.endsWith("b")) { - trimmed = trimmed.substring(0, trimmed.length() - 1); - } - - try { - return Long.parseLong(trimmed.trim()) * multiplier; - } catch (NumberFormatException e) { - throw new IllegalArgumentException("Invalid byte size format: " + sizeStr, e); - } - } - - /** - * Allocation listener that integrates with memory monitoring. - */ - private class PoolAllocationListener implements AllocationListener { - - @Override - public void onPreAllocation(long size) { - if (memoryMonitor.shouldRejectAllocation(size)) { - throw new OutOfMemoryError("Memory pressure too high for allocation of " + size + " bytes"); - } - } - - @Override - public void onAllocation(long size) { - memoryMonitor.recordAllocation(size); - } - - @Override - public void onRelease(long size) { - memoryMonitor.recordDeallocation(size); - } - - @Override - public boolean onFailedAllocation(long size, AllocationOutcome outcome) { - memoryMonitor.recordFailedAllocation(size, "FAILED"); - return false; // Don't retry - } - - @Override - public void onChildAdded(BufferAllocator parentAllocator, BufferAllocator childAllocator) { - // Track child allocator creation - } - - @Override - public void onChildRemoved(BufferAllocator parentAllocator, BufferAllocator childAllocator) { - // Track child allocator removal - } + rootAllocator.close(); } - /** - * Allocation statistics for monitoring. - */ - public static class AllocationStats { - private final long totalAllocated; - private final long maxAllocation; - private final int activeAllocators; - private final double memoryPressure; - - public AllocationStats(long totalAllocated, long maxAllocation, - int activeAllocators, double memoryPressure) { - this.totalAllocated = totalAllocated; - this.maxAllocation = maxAllocation; - this.activeAllocators = activeAllocators; - this.memoryPressure = memoryPressure; - } - - public long getTotalAllocated() { return totalAllocated; } - public long getMaxAllocation() { return maxAllocation; } - public int getActiveAllocators() { return activeAllocators; } - public double getMemoryPressure() { return memoryPressure; } - public double getUtilizationRatio() { - return maxAllocation > 0 ? (double) totalAllocated / maxAllocation : 0.0; - } + private static long getMaxAllocationInBytes(Settings settings) { + long totalAvailableSystemMemory = OsProbe.getInstance().getTotalPhysicalMemorySize() - JvmInfo.jvmInfo().getConfiguredMaxHeapSize(); + RatioValue maxAllocationPercentage = RatioValue.parseRatioValue(settings.get(ParquetDataFormatPlugin.INDEX_MAX_NATIVE_ALLOCATION.getKey(), ParquetDataFormatPlugin.DEFAULT_MAX_NATIVE_ALLOCATION)); + return (long) (totalAvailableSystemMemory * maxAllocationPercentage.getAsRatio()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java index c3ea07b9cf776..2c1b32fd0807c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -10,6 +10,7 @@ import com.parquet.parquetdataformat.bridge.ArrowExport; import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.memory.ArrowBufferPool; import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import org.apache.arrow.vector.FieldVector; @@ -40,7 +41,7 @@ public class VSRManager { private final String fileName; private final VSRPool vsrPool; - public VSRManager(String fileName, Schema schema) { + public VSRManager(String fileName, Schema schema, ArrowBufferPool arrowBufferPool) { this.fileName = fileName; this.schema = schema; @@ -48,8 +49,7 @@ public VSRManager(String fileName, Schema schema) { MemoryPressureMonitor memoryMonitor = new MemoryPressureMonitor(org.opensearch.common.settings.Settings.EMPTY); // Create VSR pool - this.vsrPool = new VSRPool("pool-" + fileName, schema, memoryMonitor); - + this.vsrPool = new VSRPool("pool-" + fileName, schema, memoryMonitor, arrowBufferPool); // Get active VSR from pool this.managedVSR = vsrPool.getActiveVSR(); @@ -99,7 +99,7 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep System.out.println("[JAVA] After adding document, row count: " + managedVSR.getRowCount()); // Check for VSR rotation AFTER successful document processing - handleVSRRotationAfterAddToManagedVSR(); + maybeRotateActiveVSR(); return result; } catch (Exception e) { @@ -166,7 +166,7 @@ private boolean checkFlushConditions() { * Handles VSR rotation after successful document addition. * Checks if rotation is needed and immediately processes any frozen VSR. */ - private void handleVSRRotationAfterAddToManagedVSR() throws IOException { + public void maybeRotateActiveVSR() throws IOException { try { // Check if rotation is needed and perform it if safe boolean rotated = vsrPool.maybeRotateActiveVSR(); @@ -190,6 +190,7 @@ private void handleVSRRotationAfterAddToManagedVSR() throws IOException { // Complete the VSR processing vsrPool.completeVSR(frozenVSR); + vsrPool.unsetFrozenVSR(); } else { System.err.println("[JAVA] WARNING: Rotation occurred but no frozen VSR found"); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java index 7db0bc6066b84..3759d7663a79c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java @@ -32,10 +32,10 @@ public class VSRPool { // Configuration private final int maxRowsPerVSR; - public VSRPool(String poolId, Schema schema, MemoryPressureMonitor memoryMonitor) { + public VSRPool(String poolId, Schema schema, MemoryPressureMonitor memoryMonitor, ArrowBufferPool arrowBufferPool) { this.poolId = poolId; this.schema = schema; - this.bufferPool = new ArrowBufferPool(org.opensearch.common.settings.Settings.EMPTY, memoryMonitor); + this.bufferPool = arrowBufferPool; this.memoryMonitor = memoryMonitor; this.activeVSR = new AtomicReference<>(); @@ -142,6 +142,16 @@ public ManagedVSR getFrozenVSR() { return frozenVSR.get(); } + public void unsetFrozenVSR() throws IOException { + if (frozenVSR.get() == null) { + throw new IOException("unsetFrozenVSR called when frozen VSR is not set"); + } + if (!VSRState.CLOSED.equals(frozenVSR.get().getState())) { + throw new IOException("frozenVSR cannot be unset, state is " + frozenVSR.get().getState()); + } + frozenVSR.set(null); + } + /** * Takes the frozen VSR for processing and clears the frozen slot. * @@ -227,7 +237,6 @@ public void close() { frozen.close(); } - bufferPool.close(); memoryMonitor.close(); // Close any remaining VSRs @@ -241,12 +250,13 @@ private void initializeActiveVSR() { } private ManagedVSR createNewVSR() { + String vsrId = poolId + "-vsr-" + vsrCounter.incrementAndGet(); BufferAllocator allocator = null; VectorSchemaRoot vsr = null; try { - allocator = bufferPool.createAllocator(vsrId); + allocator = bufferPool.createChildAllocator(vsrId); vsr = VectorSchemaRoot.create(schema, allocator); ManagedVSR managedVSR = new ManagedVSR(vsrId, vsr, allocator); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java index 6e66a26d870ae..84df70879e550 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/writer/ParquetWriter.java @@ -1,7 +1,10 @@ package com.parquet.parquetdataformat.writer; +import com.parquet.parquetdataformat.memory.ArrowBufferPool; import com.parquet.parquetdataformat.vsr.VSRManager; import org.apache.arrow.vector.types.pojo.Schema; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; @@ -33,15 +36,18 @@ * to the {@link VSRManager}. */ public class ParquetWriter implements Writer { + + private static final Logger logger = LogManager.getLogger(ParquetWriter.class); + private final String file; private final Schema schema; private final VSRManager vsrManager; private final long writerGeneration; - public ParquetWriter(String file, Schema schema, long writerGeneration) { + public ParquetWriter(String file, Schema schema, long writerGeneration, ArrowBufferPool arrowBufferPool) { this.file = file; this.schema = schema; - this.vsrManager = new VSRManager(file, schema); + this.vsrManager = new VSRManager(file, schema, arrowBufferPool); this.writerGeneration = writerGeneration; } @@ -78,6 +84,12 @@ public void close() { @Override public ParquetDocumentInput newDocumentInput() { + try { + vsrManager.maybeRotateActiveVSR(); + } catch (IOException e) { + logger.error("Failed to handle VSR rotation: {}", e.getMessage(), e); + } + // Get a new ManagedVSR from VSRManager for this document input return new ParquetDocumentInput(vsrManager.getActiveManagedVSR()); } diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index 506f5659dd26a..bd2c7c259a8ac 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -189,6 +189,39 @@ impl NativeParquetWriter { } } + fn get_filtered_writer_memory_usage(path_prefix: String) -> Result> { + let log_msg = format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}\n", path_prefix); + println!("{}", log_msg.trim()); + Self::log_to_file(&log_msg); + + let mut total_memory = 0; + let mut writer_count = 0; + + for entry in WRITER_MANAGER.iter() { + let filename = entry.key(); + let writer_arc = entry.value(); + + // Filter writers by path prefix + if filename.starts_with(&path_prefix) { + if let Ok(writer) = writer_arc.lock() { + let memory_usage = writer.memory_size(); + total_memory += memory_usage; + writer_count += 1; + + let usage_msg = format!("[RUST] Filtered Writer {}: {} bytes\n", filename, memory_usage); + println!("{}", usage_msg.trim()); + Self::log_to_file(&usage_msg); + } + } + } + + let total_msg = format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes\n", writer_count, path_prefix, total_memory); + println!("{}", total_msg.trim()); + Self::log_to_file(&total_msg); + + Ok(total_memory) + } + fn log_to_file(message: &str) { if let Ok(mut file) = OpenOptions::new() .create(true) @@ -255,3 +288,16 @@ pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_flus Err(_) => -1, } } + +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_getFilteredNativeBytesUsed( + mut env: JNIEnv, + _class: JClass, + path_prefix: JString +) -> jlong { + let prefix: String = env.get_string(&path_prefix).expect("Couldn't get java string!").into(); + match NativeParquetWriter::get_filtered_writer_memory_usage(prefix) { + Ok(memory_usage) => memory_usage as jlong, + Err(_) => 0, + } +} diff --git a/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java b/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java index 7fe3cde1e23f2..c9f4d43d5a323 100644 --- a/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java +++ b/server/src/main/java/org/opensearch/common/settings/ClusterSettings.java @@ -618,6 +618,9 @@ public void apply(Settings value, Settings current, Settings previous) { IndexingMemoryController.INDEX_BUFFER_SIZE_SETTING, IndexingMemoryController.MIN_INDEX_BUFFER_SIZE_SETTING, IndexingMemoryController.MAX_INDEX_BUFFER_SIZE_SETTING, + IndexingMemoryController.INDEX_NATIVE_BUFFER_SIZE_SETTING, + IndexingMemoryController.MIN_INDEX_NATIVE_BUFFER_SIZE_SETTING, + IndexingMemoryController.MAX_INDEX_NATIVE_BUFFER_SIZE_SETTING, IndexingMemoryController.SHARD_INACTIVE_TIME_SETTING, IndexingMemoryController.SHARD_MEMORY_INTERVAL_TIME_SETTING, ResourceWatcherService.ENABLED, diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 751702625c52c..2eb3a23cd8f88 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -10,10 +10,11 @@ import org.opensearch.index.shard.ShardPath; +import java.io.Closeable; import java.io.IOException; import java.util.List; -public interface IndexingExecutionEngine { +public interface IndexingExecutionEngine extends Closeable { List supportedFieldTypes(); @@ -27,4 +28,8 @@ Writer> createWriter(long writerGeneration) DataFormat getDataFormat(); void loadWriterFiles(ShardPath shardPath) throws IOException; + + default long getNativeBytesUsed() { + return 0; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index cdb35c63340af..07084e48b90b6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -8,6 +8,11 @@ package org.opensearch.index.engine.exec.composite; +import java.util.Collections; +import java.util.LinkedList; +import java.util.concurrent.atomic.AtomicLong; + +import org.opensearch.common.util.io.IOUtils; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileInfos; import org.opensearch.index.engine.exec.IndexingExecutionEngine; @@ -25,12 +30,9 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; public class CompositeIndexingExecutionEngine implements IndexingExecutionEngine { @@ -147,4 +149,13 @@ public List> getDelegates() { public CompositeDataFormatWriterPool getDataFormatWriterPool() { return dataFormatWriterPool; } + + public long getNativeBytesUsed() { + return delegates.stream().mapToLong(IndexingExecutionEngine::getNativeBytesUsed).sum(); + } + + @Override + public void close() throws IOException { + IOUtils.close(delegates); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index b026630861325..b28ed9adb4d5f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -103,7 +103,7 @@ import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.LAST_COMPOSITE_WRITER_GEN_KEY; @ExperimentalApi -public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState, IndexingThrottler { +public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState, IndexingThrottler, Closeable { private static final Consumer PRE_REFRESH_LISTENER_CONSUMER = refreshListener -> { try { @@ -664,7 +664,7 @@ public void deactivateThrottling() { } public synchronized void refresh(String source) throws EngineException { - refresh(source, Collections.EMPTY_MAP); + refresh(source, Collections.emptyMap()); } public synchronized void refresh(String source, Map refreshInputs) throws EngineException { @@ -773,6 +773,10 @@ public T getRef() { } } + public long getNativeBytesUsed() { + return engine.getNativeBytesUsed(); + } + @Override public Engine.DeleteResult delete(Engine.Delete delete) throws IOException { return null; @@ -822,7 +826,7 @@ public void forceMerge( @Override public void writeIndexingBuffer() throws EngineException { - + refresh("write indexing buffer"); } @Override @@ -928,4 +932,9 @@ public Translog.Snapshot newChangesSnapshot( public String getHistoryUUID() { return historyUUID; } + + @Override + public void close() throws IOException { + engine.close(); + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index 5e2f5a8d7766f..f0641e4b64688 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -69,6 +69,12 @@ public DataFormat getDataFormat() { return DataFormat.LUCENE; } + @Override + public void close() throws IOException { + + } + + public static class LuceneDocumentInput implements DocumentInput { private final ParseContext.Document doc; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 96b2e2e86b10a..8282d8003bdda 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -75,6 +75,11 @@ public RefreshResult refresh(RefreshInput refreshInput) throws IOException { return refreshResult; } + @Override + public void close() throws IOException { + + } + public static class TextInput implements DocumentInput { private final StringBuilder sb = new StringBuilder(); diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index 04739e55abd9e..e5fdb49cc0d2a 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -2334,6 +2334,7 @@ public void close(String reason, boolean flushEngine, boolean deleted) throws IO } } finally { final Engine engine = this.currentEngineReference.getAndSet(null); + getIndexingExecutionCoordinator().close(); try { if (engine != null && flushEngine) { engine.flushAndClose(); @@ -3117,6 +3118,10 @@ public long getIndexBufferRAMBytesUsed() { } } + public long getNativeBytesUsed() { + return getIndexingExecutionCoordinator().getNativeBytesUsed(); + } + public void addShardFailureCallback(Consumer onShardFailure) { this.shardEventListener.delegates.add(onShardFailure); } @@ -3452,7 +3457,7 @@ private void handleRefreshException(Exception e) { */ public void writeIndexingBuffer() { try { - getIndexer().writeIndexingBuffer(); + getIndexingExecutionCoordinator().writeIndexingBuffer(); } catch (Exception e) { handleRefreshException(e); } diff --git a/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java b/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java index 93b75218fd1c6..20738dde54ac1 100644 --- a/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java +++ b/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java @@ -39,6 +39,7 @@ import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Setting.Property; import org.opensearch.common.settings.Settings; +import org.opensearch.common.unit.RatioValue; import org.opensearch.common.unit.TimeValue; import org.opensearch.common.util.concurrent.AbstractRunnable; import org.opensearch.core.common.unit.ByteSizeUnit; @@ -48,6 +49,8 @@ import org.opensearch.index.shard.IndexShard; import org.opensearch.index.shard.IndexShardState; import org.opensearch.index.shard.IndexingOperationListener; +import org.opensearch.monitor.jvm.JvmInfo; +import org.opensearch.monitor.os.OsProbe; import org.opensearch.threadpool.Scheduler.Cancellable; import org.opensearch.threadpool.ThreadPool; import org.opensearch.threadpool.ThreadPool.Names; @@ -113,11 +116,39 @@ public class IndexingMemoryController implements IndexingOperationListener, Clos Property.NodeScope ); + /** How much total system memory (% or bytes) we will share across all actively indexing shards on this node for native indexing buffer (default: 10%). */ + public static final Setting INDEX_NATIVE_BUFFER_SIZE_SETTING = Setting.simpleString( + "indices.memory.native_index_buffer_size", + "10%", + Property.NodeScope + ); + + /** Only applies when indices.memory.native_index_buffer_size is a %, + * to set a floor on the actual size in bytes (default: 48 MB). */ + public static final Setting MIN_INDEX_NATIVE_BUFFER_SIZE_SETTING = Setting.byteSizeSetting( + "indices.memory.min_native_index_buffer_size", + new ByteSizeValue(48, ByteSizeUnit.MB), + new ByteSizeValue(0, ByteSizeUnit.BYTES), + new ByteSizeValue(Long.MAX_VALUE, ByteSizeUnit.BYTES), + Property.NodeScope + ); + + /** Only applies when indices.memory.native_index_buffer_size is a %, + * to set a ceiling on the actual size in bytes (default: not set). */ + public static final Setting MAX_INDEX_NATIVE_BUFFER_SIZE_SETTING = Setting.byteSizeSetting( + "indices.memory.max_native_index_buffer_size", + new ByteSizeValue(-1), + new ByteSizeValue(-1), + new ByteSizeValue(Long.MAX_VALUE, ByteSizeUnit.BYTES), + Property.NodeScope + ); + private final ThreadPool threadPool; private final Iterable indexShards; private final ByteSizeValue indexingBuffer; + private final ByteSizeValue nativeIndexingBuffer; private final TimeValue inactiveTime; private final TimeValue interval; @@ -155,15 +186,41 @@ public class IndexingMemoryController implements IndexingOperationListener, Clos } this.indexingBuffer = indexingBuffer; + // Initialize native indexing buffer based on total system memory + String nativeIndexingBufferSetting = settings.get(INDEX_NATIVE_BUFFER_SIZE_SETTING.getKey()); + ByteSizeValue nativeIndexingBuffer = MIN_INDEX_NATIVE_BUFFER_SIZE_SETTING.get(settings); + // null means we used the default (10%) + if (nativeIndexingBufferSetting == null || nativeIndexingBufferSetting.endsWith("%")) { + // Calculate based on total system memory rather than JVM heap + long totalAvailableSystemMemory = OsProbe.getInstance().getTotalPhysicalMemorySize() - JvmInfo.jvmInfo().getConfiguredMaxHeapSize(); + RatioValue nativeIndexingBufferPercentage = RatioValue.parseRatioValue(INDEX_NATIVE_BUFFER_SIZE_SETTING.get(settings)); + if (totalAvailableSystemMemory > 0) { + // Apply percentage to total system memory + nativeIndexingBuffer = new ByteSizeValue((long) (totalAvailableSystemMemory * nativeIndexingBufferPercentage.getAsRatio())); + + // Apply min/max bounds when % value was used + ByteSizeValue minNativeIndexingBuffer = MIN_INDEX_NATIVE_BUFFER_SIZE_SETTING.get(settings); + ByteSizeValue maxNativeIndexingBuffer = MAX_INDEX_NATIVE_BUFFER_SIZE_SETTING.get(settings); + if (nativeIndexingBuffer.getBytes() < minNativeIndexingBuffer.getBytes()) { + nativeIndexingBuffer = minNativeIndexingBuffer; + } + if (maxNativeIndexingBuffer.getBytes() != -1 && nativeIndexingBuffer.getBytes() > maxNativeIndexingBuffer.getBytes()) { + nativeIndexingBuffer = maxNativeIndexingBuffer; + } + } + } + this.nativeIndexingBuffer = nativeIndexingBuffer; + this.inactiveTime = SHARD_INACTIVE_TIME_SETTING.get(settings); // we need to have this relatively small to free up heap quickly enough this.interval = SHARD_MEMORY_INTERVAL_TIME_SETTING.get(settings); this.statusChecker = new ShardsIndicesStatusChecker(); - logger.debug( - "using indexing buffer size [{}] with {} [{}], {} [{}]", + logger.info( + "using indexing buffer size [{}], native indexing buffer size [{}] with {} [{}], {} [{}]", this.indexingBuffer, + this.nativeIndexingBuffer, SHARD_INACTIVE_TIME_SETTING.getKey(), this.inactiveTime, SHARD_MEMORY_INTERVAL_TIME_SETTING.getKey(), @@ -208,6 +265,10 @@ protected long getIndexBufferRAMBytesUsed(IndexShard shard) { return shard.getIndexBufferRAMBytesUsed(); } + private long getNativeBytesUsed(IndexShard shard) { + return shard.getNativeBytesUsed(); + } + /** returns how many bytes this shard is currently writing to disk */ protected long getShardWritingBytes(IndexShard shard) { return shard.getWritingBytes(); @@ -267,17 +328,23 @@ private void recordOperationBytes(Engine.Operation operation, Engine.Result resu */ private static final class ShardAndBytesUsed implements Comparable { final long bytesUsed; + final long nativeBytesUsed; final IndexShard shard; - ShardAndBytesUsed(long bytesUsed, IndexShard shard) { + ShardAndBytesUsed(long bytesUsed, long nativeBytesUsed, IndexShard shard) { this.bytesUsed = bytesUsed; + this.nativeBytesUsed = nativeBytesUsed; this.shard = shard; } @Override public int compareTo(ShardAndBytesUsed other) { // Sort larger shards first: - return Long.compare(other.bytesUsed, bytesUsed); + return Long.compare(other.bytesUsed + other.nativeBytesUsed, bytesUsed + nativeBytesUsed); + } + + long getTotalBytesUsed() { + return bytesUsed + nativeBytesUsed; } } @@ -337,6 +404,7 @@ private void runUnlocked() { // to disk: long totalBytesUsed = 0; long totalBytesWriting = 0; + long totalNativeBytesUsed = 0; for (IndexShard shard : availableShards()) { // Give shard a chance to transition to inactive so we can flush: @@ -350,6 +418,7 @@ private void runUnlocked() { shardBytesUsed -= shardWritingBytes; totalBytesWriting += shardWritingBytes; + totalNativeBytesUsed += getNativeBytesUsed(shard); // If the refresh completed just after we pulled shardWritingBytes and before we pulled shardBytesUsed, then we could // have a negative value here. So we just skip this shard since that means it's now using very little heap: @@ -360,21 +429,21 @@ private void runUnlocked() { totalBytesUsed += shardBytesUsed; } - if (logger.isTraceEnabled()) { - logger.trace( - "total indexing heap bytes used [{}] vs {} [{}], currently writing bytes [{}]", - new ByteSizeValue(totalBytesUsed), - INDEX_BUFFER_SIZE_SETTING.getKey(), - indexingBuffer, - new ByteSizeValue(totalBytesWriting) - ); - } + logger.info( + "total indexing heap bytes used [{}] vs {} [{}], total native bytes used [{}] vs native buffer [{}], currently writing bytes [{}]", + new ByteSizeValue(totalBytesUsed), + INDEX_BUFFER_SIZE_SETTING.getKey(), + indexingBuffer, + new ByteSizeValue(totalNativeBytesUsed), + nativeIndexingBuffer, + new ByteSizeValue(totalBytesWriting) + ); // If we are using more than 50% of our budget across both indexing buffer and bytes we are still moving to disk, then we now // throttle the top shards to send back-pressure to ongoing indexing: - boolean doThrottle = (totalBytesWriting + totalBytesUsed) > 1.5 * indexingBuffer.getBytes(); + boolean doThrottle = doThrottleOnHeap(totalBytesWriting, totalBytesUsed) || doThrottleOnNativeMemory(totalNativeBytesUsed); - if (totalBytesUsed > indexingBuffer.getBytes()) { + if (totalBytesUsed > indexingBuffer.getBytes() || totalNativeBytesUsed > nativeIndexingBuffer.getBytes()) { // OK we are now over-budget; fill the priority queue and ask largest shard(s) to refresh: PriorityQueue queue = new PriorityQueue<>(); @@ -388,48 +457,56 @@ private void runUnlocked() { // Only count up bytes not already being refreshed: shardBytesUsed -= shardWritingBytes; + long shardNativeBytesUsed = getNativeBytesUsed(shard); + // If the refresh completed just after we pulled shardWritingBytes and before we pulled shardBytesUsed, then we could // have a negative value here. So we just skip this shard since that means it's now using very little heap: if (shardBytesUsed < 0) { continue; } - if (shardBytesUsed > 0) { - if (logger.isTraceEnabled()) { - if (shardWritingBytes != 0) { - logger.trace( - "shard [{}] is using [{}] heap, writing [{}] heap", - shard.shardId(), - shardBytesUsed, - shardWritingBytes - ); - } else { - logger.trace("shard [{}] is using [{}] heap, not writing any bytes", shard.shardId(), shardBytesUsed); - } + if (shardBytesUsed > 0 || shardNativeBytesUsed > 0) { + if (shardWritingBytes != 0) { + logger.info( + "shard [{}] is using [{}] heap, [{}] native, writing [{}] heap", + shard.shardId(), + new ByteSizeValue(shardBytesUsed), + new ByteSizeValue(shardNativeBytesUsed), + new ByteSizeValue(shardWritingBytes) + ); + } else { + logger.info( + "shard [{}] is using [{}] heap, [{}] native, not writing any bytes", + shard.shardId(), + new ByteSizeValue(shardBytesUsed), + new ByteSizeValue(shardNativeBytesUsed) + ); } - queue.add(new ShardAndBytesUsed(shardBytesUsed, shard)); + queue.add(new ShardAndBytesUsed(shardBytesUsed, shardNativeBytesUsed, shard)); } } - logger.debug( + logger.info( "now write some indexing buffers: total indexing heap bytes used [{}] vs {} [{}], " - + "currently writing bytes [{}], [{}] shards with non-zero indexing buffer", + + "total native bytes used [{}] vs native buffer [{}], currently writing bytes [{}], [{}] shards with non-zero indexing buffer", new ByteSizeValue(totalBytesUsed), INDEX_BUFFER_SIZE_SETTING.getKey(), indexingBuffer, + new ByteSizeValue(totalNativeBytesUsed), + nativeIndexingBuffer, new ByteSizeValue(totalBytesWriting), queue.size() ); - while (totalBytesUsed > indexingBuffer.getBytes() && queue.isEmpty() == false) { + while ((totalBytesUsed > indexingBuffer.getBytes() || totalNativeBytesUsed > nativeIndexingBuffer.getBytes()) && queue.isEmpty() == false) { ShardAndBytesUsed largest = queue.poll(); - logger.debug( + logger.info( "write indexing buffer to disk for shard [{}] to free up its [{}] indexing buffer", largest.shard.shardId(), - new ByteSizeValue(largest.bytesUsed) + new ByteSizeValue(largest.getTotalBytesUsed()) ); writeIndexingBufferAsync(largest.shard); - totalBytesUsed -= largest.bytesUsed; + totalBytesUsed -= largest.getTotalBytesUsed(); if (doThrottle && throttled.contains(largest.shard) == false) { logger.info("now throttling indexing for shard [{}]: segment writing can't keep up", largest.shard.shardId()); throttled.add(largest.shard); @@ -448,6 +525,14 @@ private void runUnlocked() { } } + private boolean doThrottleOnHeap(long totalBytesWriting, long totalBytesUsed) { + return (totalBytesWriting + totalBytesUsed) > 1.5 * indexingBuffer.getBytes(); + } + + private boolean doThrottleOnNativeMemory(long totalNativeBytesUsed) { + return totalNativeBytesUsed > nativeIndexingBuffer.getBytes(); + } + /** * ask this shard to check now whether it is inactive, and reduces its indexing buffer if so. */ From 2ee604f9b881ba780bb49fb07b689ba64f22bca1 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Wed, 12 Nov 2025 15:32:07 -0800 Subject: [PATCH 078/112] Ensuring Datafusion errors don't crash the JVM (#19977) Signed-off-by: expani --- plugins/engine-datafusion/jni/src/lib.rs | 31 ++++++++++++++----- .../datafusion/DatafusionEngine.java | 10 ++++-- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 788a5e8651cca..ba0d76b5dbc34 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -379,7 +379,9 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute plan }, Err(e) => { - println!("SUBSTRAIT Rust: Failed to convert Substrait plan: {}", e); + let error_msg = format!("Failed to convert Substrait plan: {}", e); + println!("SUBSTRAIT Rust: {}", error_msg); + let _ = env.throw_new("java/lang/RuntimeException", error_msg); return 0; } }; @@ -623,12 +625,15 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Ideally the executor will give this - runtime_ptr.block_on(async { - let parquet_schema = listing_options - .infer_schema(&ctx.state(), &table_path.clone()) - .await.unwrap(); + let parquet_schema = match listing_options.infer_schema(&ctx.state(), &table_path.clone()).await { + Ok(schema) => schema, + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to infer schema during fetch: {}", e)); + return 0; + } + }; // let total_groups = files_metadata[0].row_group_row_counts.len(); // let mut access_plan = ParquetAccessPlan::new_all(total_groups); @@ -651,7 +656,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // .collect(); - let access_plans = access_plans.await.unwrap(); + let access_plans = match access_plans.await { + Ok(plans) => plans, + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to create access plans during fetch: {}", e)); + return 0; + } + }; let partitioned_files: Vec = files_metadata .iter() @@ -693,7 +704,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let task_ctx = Arc::new(TaskContext::default()); - let stream = optimized_plan.execute(0, task_ctx).unwrap(); + let stream = match optimized_plan.execute(0, task_ctx) { + Ok(s) => s, + Err(e) => { + let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to execute plan during fetch: {}", e)); + return 0; + } + }; let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 1f32127486455..2f182d9baa28b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -209,16 +209,22 @@ public void collect(RecordBatchStream value) { collector.collect(stream); } + logger.info("Final Results:"); for (Map.Entry entry : finalRes.entrySet()) { logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); } } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); + throw new RuntimeException(exception); } finally { try { - stream.close(); - allocator.close(); + if (stream != null) { + stream.close(); + } + if (allocator != null) { + allocator.close(); + } } catch (Exception e) { throw new RuntimeException(e); } From c1a285f418defac65cf922c282b0152f66ae3b7d Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Wed, 12 Nov 2025 23:11:13 -0800 Subject: [PATCH 079/112] Add loggers to capture lifecycle and made cyclic loggers debug (#19980) Signed-off-by: expani --- .../parquetdataformat/engine/ParquetExecutionEngine.java | 4 ++-- modules/parquet-data-format/src/main/rust/src/lib.rs | 8 ++++---- .../opensearch/action/search/SearchPhaseController.java | 6 ++++++ .../opensearch/action/search/TransportSearchAction.java | 2 +- .../org/opensearch/indices/IndexingMemoryController.java | 4 ++-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index e51f060156c97..d1fdab921c0a0 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -138,8 +138,8 @@ public long getNativeBytesUsed() { long vsrMemory = arrowBufferPool.getTotalAllocatedBytes(); String shardDataPath = shardPath.getDataPath().toString(); long filteredArrowWriterMemory = RustBridge.getFilteredNativeBytesUsed(shardDataPath); - logger.info("Native memory used by VSR Buffer Pool: {}", vsrMemory); - logger.info("Native memory used by ArrowWriters in shard path {}: {}", shardDataPath, filteredArrowWriterMemory); + logger.debug("Native memory used by VSR Buffer Pool: {}", vsrMemory); + logger.debug("Native memory used by ArrowWriters in shard path {}: {}", shardDataPath, filteredArrowWriterMemory); return vsrMemory + filteredArrowWriterMemory; } diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index bd2c7c259a8ac..9e005bd27cf8d 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -191,8 +191,8 @@ impl NativeParquetWriter { fn get_filtered_writer_memory_usage(path_prefix: String) -> Result> { let log_msg = format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}\n", path_prefix); - println!("{}", log_msg.trim()); - Self::log_to_file(&log_msg); +// println!("{}", log_msg.trim()); +// Self::log_to_file(&log_msg); let mut total_memory = 0; let mut writer_count = 0; @@ -216,8 +216,8 @@ impl NativeParquetWriter { } let total_msg = format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes\n", writer_count, path_prefix, total_memory); - println!("{}", total_msg.trim()); - Self::log_to_file(&total_msg); + //println!("{}", total_msg.trim()); + //Self::log_to_file(&total_msg); Ok(total_memory) } diff --git a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java index 40a2805563369..69d7732c71491 100644 --- a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java +++ b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java @@ -32,6 +32,8 @@ package org.opensearch.action.search; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.lucene.index.Term; import org.apache.lucene.search.CollectionStatistics; import org.apache.lucene.search.FieldDoc; @@ -90,6 +92,7 @@ * @opensearch.internal */ public final class SearchPhaseController { + private static final Logger LOGGER = LogManager.getLogger(SearchPhaseController.class); private static final ScoreDoc[] EMPTY_DOCS = new ScoreDoc[0]; private final NamedWriteableRegistry namedWriteableRegistry; @@ -530,6 +533,9 @@ ReducedQueryPhase reducedQueryPhase( reducedCompletionSuggestions = reducedSuggest.filter(CompletionSuggestion.class); } final InternalAggregations aggregations = reduceAggs(aggReduceContextBuilder, performFinalReduce, bufferedAggs); + if (aggregations != null) { + LOGGER.info("Final reduced aggregations: {}", aggregations.asMap()); + } final SearchProfileShardResults shardResults = profileResults.isEmpty() ? null : new SearchProfileShardResults(profileResults); final SortedTopDocs sortedTopDocs = sortDocs(isScrollRequest, bufferedTopDocs, from, size, reducedCompletionSuggestions); final TotalHits totalHits = topDocsStats.getTotalHits(); diff --git a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java index a4bee4314edcb..b47ae243788f7 100644 --- a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java +++ b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java @@ -324,7 +324,7 @@ protected void doExecute(Task task, SearchRequest searchRequest, ActionListener< ); } executeRequest(task, searchRequest, this::searchAsyncAction, listener); -// logger.info("Search request received is {}", searchRequest.source()); + logger.info("Search request received is {}", searchRequest.source()); } /** diff --git a/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java b/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java index 20738dde54ac1..f42e0a54f12b5 100644 --- a/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java +++ b/server/src/main/java/org/opensearch/indices/IndexingMemoryController.java @@ -429,7 +429,7 @@ private void runUnlocked() { totalBytesUsed += shardBytesUsed; } - logger.info( + logger.debug( "total indexing heap bytes used [{}] vs {} [{}], total native bytes used [{}] vs native buffer [{}], currently writing bytes [{}]", new ByteSizeValue(totalBytesUsed), INDEX_BUFFER_SIZE_SETTING.getKey(), @@ -486,7 +486,7 @@ private void runUnlocked() { } } - logger.info( + logger.debug( "now write some indexing buffers: total indexing heap bytes used [{}] vs {} [{}], " + "total native bytes used [{}] vs native buffer [{}], currently writing bytes [{}], [{}] shards with non-zero indexing buffer", new ByteSizeValue(totalBytesUsed), From 17d274f78923a5385df5935493a5a7c0a9963e5d Mon Sep 17 00:00:00 2001 From: Shashank Gowri Date: Thu, 13 Nov 2025 13:52:21 +0530 Subject: [PATCH 080/112] Gracefully closing CompositeEngine and updating signature of loadWriterFiles (#19981) Co-authored-by: Shashank Gowri --- .../engine/ParquetExecutionEngine.java | 2 +- .../index/engine/LiveVersionMap.java | 2 +- .../engine/exec/IndexingExecutionEngine.java | 2 +- .../index/engine/exec/bridge/Indexer.java | 2 + .../CompositeIndexingExecutionEngine.java | 4 +- .../engine/exec/coord/CompositeEngine.java | 86 +++++++++++++++++-- .../engine/exec/lucene/LuceneIEEngine.java | 2 +- .../index/engine/exec/text/TextEngine.java | 2 +- .../opensearch/index/shard/IndexShard.java | 6 +- 9 files changed, 92 insertions(+), 16 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index d1fdab921c0a0..229337add7293 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -85,7 +85,7 @@ public ParquetExecutionEngine(Settings settings, Supplier schema, ShardP } @Override - public void loadWriterFiles(ShardPath shardPath) throws IOException { + public void loadWriterFiles() throws IOException { try (DirectoryStream stream = Files.newDirectoryStream(shardPath.getDataPath(), "*" + FILE_NAME_EXT)) { StreamSupport.stream(stream.spliterator(), false) .map(Path::getFileName) diff --git a/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java b/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java index 0b0ecd9e2ea1c..ac06b7d1d95ea 100644 --- a/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java +++ b/server/src/main/java/org/opensearch/index/engine/LiveVersionMap.java @@ -442,7 +442,7 @@ void pruneTombstones(long maxTimestampToPrune, long maxSeqNoToPrune) { /** * Called when this index is closed. */ - synchronized void clear() { + public synchronized void clear() { maps = new Maps(); tombstones.clear(); // NOTE: we can't zero this here, because a refresh thread could be calling InternalEngine.pruneDeletedTombstones at the same time, diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index 2eb3a23cd8f88..f4bab56f1cd68 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -27,7 +27,7 @@ Writer> createWriter(long writerGeneration) DataFormat getDataFormat(); - void loadWriterFiles(ShardPath shardPath) throws IOException; + void loadWriterFiles() throws IOException; default long getNativeBytesUsed() { return 0; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java index 9c6f43473b85a..292c3a359d105 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/bridge/Indexer.java @@ -133,6 +133,8 @@ Translog.Snapshot newChangesSnapshot(String source, long fromSeqNo, long toSeqNo String getHistoryUUID(); + void flushAndClose() throws IOException; + /** * Reads the current stored history ID from commit data. */ diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 07084e48b90b6..4c25318c6f1f0 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -79,9 +79,9 @@ public List supportedFieldTypes() { } @Override - public void loadWriterFiles(ShardPath shardPath) throws IOException { + public void loadWriterFiles() throws IOException { for (IndexingExecutionEngine delegate : delegates) { - delegate.loadWriterFiles(shardPath); + delegate.loadWriterFiles(); } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index b28ed9adb4d5f..632001a08fa08 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -87,6 +87,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -103,7 +104,7 @@ import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.LAST_COMPOSITE_WRITER_GEN_KEY; @ExperimentalApi -public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState, IndexingThrottler, Closeable { +public class CompositeEngine implements LifecycleAware, Closeable, Indexer, CheckpointState, IndexingThrottler { private static final Consumer PRE_REFRESH_LISTENER_CONSUMER = refreshListener -> { try { @@ -148,10 +149,12 @@ public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState protected final String historyUUID; private final LocalCheckpointTracker localCheckpointTracker; + private final ReentrantLock failEngineLock = new ReentrantLock(); private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private final ReleasableLock readLock = new ReleasableLock(rwl.readLock()); private final ReleasableLock writeLock = new ReleasableLock(rwl.writeLock()); private final Lock flushLock = new ReentrantLock(); + private final CountDownLatch closedLatch = new CountDownLatch(1); // A uid (in the form of BytesRef) to the version map // we use the hashed variant since we iterate over it and check removal and additions on existing keys @@ -181,8 +184,6 @@ public class CompositeEngine implements LifecycleAware, Indexer, CheckpointState private final AtomicLong maxSeqNoOfUpdatesOrDeletes; private final AtomicBoolean trackTranslogLocation = new AtomicBoolean(false); private final KeyedLock noOpKeyedLock = new KeyedLock<>(); - - private final AtomicLong inFlightDocCount = new AtomicLong(); private final IndexingStrategyPlanner indexingStrategyPlanner; public CompositeEngine( @@ -258,7 +259,7 @@ public void onFailure(String reason, Exception ex) { shardPath, lastCommittedWriterGeneration.incrementAndGet() ); - this.engine.loadWriterFiles(shardPath); + this.engine.loadWriterFiles(); this.maxSeqNoOfUpdatesOrDeletes = new AtomicLong(SequenceNumbers.max(localCheckpointTracker.getMaxSeqNo(), translogManager.getMaxSeqNo())); @@ -561,9 +562,7 @@ private Exception tryAcquireInFlightDocs(Engine.Operation operation, Integer int } private void releaseInFlightDocs(int numDocs) { - assert numDocs >= 0 : numDocs; - final long newValue = inFlightDocCount.addAndGet(-numDocs); - assert newValue >= 0 : "inFlightDocCount must not be negative [" + newValue + "]"; + } /** @@ -933,8 +932,79 @@ public String getHistoryUUID() { return historyUUID; } + /** + * Flush the engine (committing segments to disk and truncating the + * translog) and close it. + */ + @Override + public void flushAndClose() throws IOException { + if (isClosed.get() == false) { + logger.trace("flushAndClose now acquire writeLock"); + try (ReleasableLock lock = writeLock.acquire()) { + logger.trace("flushAndClose now acquired writeLock"); + try { + logger.debug("flushing shard on close - this might take some time to sync files to disk"); + try { + // TODO we might force a flush in the future since we have the write lock already even though recoveries + // are running. + flush(false, true); + } catch (AlreadyClosedException ex) { + logger.debug("engine already closed - skipping flushAndClose"); + } + } finally { + close(); // double close is not a problem + } + } + } + awaitPendingClose(); + } + @Override public void close() throws IOException { - engine.close(); + if (isClosed.get() == false) { // don't acquire the write lock if we are already closed + logger.debug("close now acquiring writeLock"); + try (ReleasableLock lock = writeLock.acquire()) { + logger.debug("close acquired writeLock"); + closeNoLock("api", closedLatch); + } + } + awaitPendingClose(); + } + + private void awaitPendingClose() { + try { + closedLatch.await(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + + /** + * Closes the engine without acquiring the write lock. This should only be + * called while the write lock is hold or in a disaster condition ie. if the engine + * is failed. + */ + private void closeNoLock(String reason, CountDownLatch closedLatch) { + if (isClosed.compareAndSet(false, true)) { + assert rwl.isWriteLockedByCurrentThread() + || failEngineLock.isHeldByCurrentThread() : "Either the write lock must be held or the engine must be currently be failing itself"; + try { + this.versionMap.clear(); + try { + IOUtils.close(engine, translogManager); + } catch (Exception e) { + logger.warn("Failed to close translog", e); + } + } catch (Exception e) { + logger.warn("failed to close translog manager", e); + } finally { + try { + store.decRef(); + logger.debug("engine closed [{}]", reason); + } finally { + closedLatch.countDown(); + } + } + } } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index f0641e4b64688..85423385cbeb7 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -49,7 +49,7 @@ public Writer> createWriter(long writerGeneration) th } @Override - public void loadWriterFiles(ShardPath shardPath) throws IOException { + public void loadWriterFiles() { } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 8282d8003bdda..e1f1d8ed39671 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -63,7 +63,7 @@ public DataFormat getDataFormat() { } @Override - public void loadWriterFiles(ShardPath shardPath) throws IOException { + public void loadWriterFiles() { } diff --git a/server/src/main/java/org/opensearch/index/shard/IndexShard.java b/server/src/main/java/org/opensearch/index/shard/IndexShard.java index e5fdb49cc0d2a..29953f38c7c42 100644 --- a/server/src/main/java/org/opensearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/opensearch/index/shard/IndexShard.java @@ -2333,16 +2333,20 @@ public void close(String reason, boolean flushEngine, boolean deleted) throws IO changeState(IndexShardState.CLOSED, reason); } } finally { + final CompositeEngine compositeEngine = this.currentCompositeEngineReference.getAndSet(null); final Engine engine = this.currentEngineReference.getAndSet(null); getIndexingExecutionCoordinator().close(); try { if (engine != null && flushEngine) { engine.flushAndClose(); } + if (compositeEngine != null && flushEngine) { + compositeEngine.flushAndClose(); + } } finally { // playing safe here and close the engine even if the above succeeds - close can be called multiple times // Also closing refreshListeners to prevent us from accumulating any more listeners - IOUtils.close(engine, globalCheckpointListeners, refreshListeners, pendingReplicationActions, refreshTask); + IOUtils.close(engine, compositeEngine, globalCheckpointListeners, refreshListeners, pendingReplicationActions, refreshTask); if (deleted && engine != null && isPrimaryMode()) { // Translog Clean up From 9b49abb4c5c9ebc4c44b75bd2d1c8c7bfe0a14e1 Mon Sep 17 00:00:00 2001 From: Sagar Darji <42430138+darjisagar7@users.noreply.github.com> Date: Thu, 13 Nov 2025 19:54:10 +0530 Subject: [PATCH 081/112] Fixing the infinite loop issue and avoiding the merge if the file is already merged (#19982) * Fixing the infinite loop issue and avoiding the merge if the file is already merged Signed-off-by: Sagar Darji * Addressing comment Signed-off-by: Sagar Darji --------- Signed-off-by: Sagar Darji --- .../engine/exec/coord/CompositeEngine.java | 4 ++- .../index/engine/exec/merge/MergeHandler.java | 34 +++++++++++++++---- .../engine/exec/merge/MergeScheduler.java | 30 ++++++++-------- 3 files changed, 45 insertions(+), 23 deletions(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 632001a08fa08..c283c094734b0 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -702,7 +702,9 @@ public synchronized void refresh(String source, Map re refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); // trigger merges - triggerPossibleMerges(); + if(!source.equals("merge")) { + triggerPossibleMerges(); + } } public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index 53a395cd5551d..be6eafc748755 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -55,7 +55,7 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public abstract Collection findForceMerges(int maxSegmentCount); - public void updatePendingMerges() { + public synchronized void updatePendingMerges() { Collection oneMerges = findMerges(); // System.out.println("Found merges : " + oneMerges); for (OneMerge oneMerge : oneMerges) { @@ -72,6 +72,23 @@ public void updatePendingMerges() { } public synchronized void registerMerge(OneMerge merge) { + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { + Set catalogFiles = new HashSet<>(); + catalogSnapshotReleasableRef.getRef().getSearchableFiles(merge.getDataFormat().name()) + .forEach(writerFileSet -> { + for (String file : writerFileSet.getFiles()) { + catalogFiles.add(new FileMetadata(writerFileSet.getDirectory(), file)); + } + }); + + for (FileMetadata mergeFile : merge.getFilesToMerge()) { + if (!catalogFiles.contains(mergeFile)) { + return; + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } System.out.println("Registering Merge : " + merge); mergingSegments.add(merge); for(FileMetadata fileMetadata : merge.getFilesToMerge()) { @@ -92,17 +109,22 @@ public synchronized OneMerge getNextMerge() { } public synchronized void onMergeFinished(OneMerge oneMerge) { - mergingSegments.remove(oneMerge); - for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { - mergingFileNames.remove(fileMetadata.directory()+"/"+fileMetadata.file()); - } + removeMergingSegments(oneMerge); + updatePendingMerges(); } public synchronized void onMergeFailure(OneMerge oneMerge) { - onMergeFinished(oneMerge); // Removing failed merge from merging segment so next merge can pick this files + removeMergingSegments(oneMerge); System.out.println("Merge FAILED for oneMerge: " + oneMerge); } + private synchronized void removeMergingSegments(OneMerge oneMerge) { + mergingSegments.remove(oneMerge); + for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { + mergingFileNames.remove(fileMetadata.directory()+"/"+fileMetadata.file()); + } + } + public MergeResult doMerge(OneMerge oneMerge) { Map> mergedFiles = new HashMap<>(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index c6e7c330ef9f3..28e7588aabff9 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -8,7 +8,6 @@ package org.opensearch.index.engine.exec.merge; -import org.apache.lucene.index.MergePolicy; import org.opensearch.index.engine.exec.coord.CompositeEngine; import org.opensearch.index.MergeSchedulerConfig; import org.apache.logging.log4j.LogManager; @@ -78,11 +77,21 @@ public void triggerMerges() { mergeHandler.updatePendingMerges(); + executeMerge(); + } - // Submit merges up to available capacity - int scheduled = 0; - int availableToSchedule = getAvailableMergeSlots(); + public void forceMerge(int maxNumSegment) throws IOException { + // TODO: Add validation for background merge before executing force merge + Collection oneMerges = mergeHandler.findForceMerges(maxNumSegment); + + for(OneMerge oneMerge : oneMerges) { + MergeResult mergeResult = mergeHandler.doMerge(oneMerge); + this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); + } + } + private void executeMerge() { + // Submit merges up to available capacity while(mergeThreads.size() < maxConcurrentMerges && mergeHandler.hasPendingMerges()) { OneMerge oneMerge = mergeHandler.getNextMerge(); if (oneMerge == null) { @@ -90,23 +99,12 @@ public void triggerMerges() { } try { submitMergeTask(oneMerge); - scheduled++; } catch (Exception e) { mergeHandler.onMergeFailure(oneMerge); } } } - public void forceMerge(int maxNumSegment) throws IOException { - // TODO: Add validation for background merge before executing force merge - Collection oneMerges = mergeHandler.findForceMerges(maxNumSegment); - - for(OneMerge oneMerge : oneMerges) { - MergeResult mergeResult = mergeHandler.doMerge(oneMerge); - this.compositeEngine.applyMergeChanges(mergeResult, oneMerge); - } - } - /** * Calculates available merge slots based on current system resources. */ @@ -163,7 +161,7 @@ public void run() { activeMerges.decrementAndGet(); mergeThreads.remove(this); // triggering merge at the end - triggerMerges(); + executeMerge(); } } } From 3816113aff6b22c2320a4e146ad8d123308d391c Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Fri, 14 Nov 2025 18:17:55 +0530 Subject: [PATCH 082/112] Formatting fix (#19994) Signed-off-by: Arpit Bandejiya --- plugins/engine-datafusion/jni/src/lib.rs | 369 +++++++++++------- .../jni/src/listing_table.rs | 172 ++++---- .../jni/src/row_id_optimizer.rs | 110 ++++-- plugins/engine-datafusion/jni/src/util.rs | 149 +++---- 4 files changed, 471 insertions(+), 329 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index ba0d76b5dbc34..0790072f8fa48 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -8,60 +8,68 @@ use arrow_array::ffi::FFI_ArrowArray; use arrow_array::{Array, StructArray}; use arrow_schema::ffi::FFI_ArrowSchema; -use jni::objects::{JByteArray, JClass, JObject}; -use std::collections::{BTreeSet, HashMap}; -use std::future::Future; -use std::ptr::addr_of_mut; -use jni::objects::{JLongArray, JValue}; -use jni::sys::{jbyteArray, jlong, jstring}; -use jni::JNIEnv; -use std::sync::Arc; use datafusion::{ common::DataFusionError, - prelude::*, - logical_expr::LogicalPlan, - execution::context::SessionContext, datasource::file_format::csv::CsvFormat, - datasource::listing::{ListingTableUrl}, - execution::cache::cache_manager::CacheManagerConfig, - execution::cache::cache_unit::DefaultListFilesCache, - execution::cache::CacheAccessor, - execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, - prelude::SessionConfig, - DATAFUSION_VERSION, datasource::file_format::parquet::ParquetFormat, + datasource::listing::ListingTableUrl, datasource::object_store::ObjectStoreUrl, datasource::physical_plan::parquet::{ParquetAccessPlan, RowGroupAccess}, datasource::physical_plan::ParquetSource, + execution::cache::cache_manager::CacheManagerConfig, + execution::cache::cache_unit::DefaultListFilesCache, + execution::cache::CacheAccessor, + execution::context::SessionContext, + execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, execution::TaskContext, + logical_expr::LogicalPlan, parquet::arrow::arrow_reader::RowSelector, - physical_plan::{ExecutionPlan, SendableRecordBatchStream} + physical_plan::{ExecutionPlan, SendableRecordBatchStream}, + prelude::SessionConfig, + prelude::*, + DATAFUSION_VERSION, }; +use jni::objects::{JByteArray, JClass, JObject}; +use jni::objects::{JLongArray, JValue}; +use jni::sys::{jbyteArray, jlong, jstring}; +use jni::JNIEnv; +use std::collections::{BTreeSet, HashMap}; +use std::future::Future; +use std::ptr::addr_of_mut; +use std::sync::Arc; use std::time::Instant; -mod util; -mod row_id_optimizer; mod listing_table; +mod row_id_optimizer; +mod util; use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; -use crate::util::{create_file_metadata_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok}; +use crate::row_id_optimizer::ProjectRowIdOptimizer; +use crate::util::{ + create_file_metadata_from_filenames, parse_string_arr, set_object_result_error, + set_object_result_ok, +}; +use arrow_schema::DataType; +use datafusion::catalog::TableProvider; use datafusion_datasource::file_groups::FileGroup; use datafusion_datasource::file_scan_config::FileScanConfigBuilder; +use datafusion_datasource::source::DataSourceExec; use datafusion_datasource::PartitionedFile; -use datafusion_substrait::logical_plan::consumer::{from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, SubstraitConsumer}; -use datafusion_substrait::substrait::proto::{Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel}; +use datafusion_expr::registry::FunctionRegistry; +use datafusion_substrait::extensions::Extensions; +use datafusion_substrait::logical_plan::consumer::{ + from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, + SubstraitConsumer, +}; +use datafusion_substrait::substrait::proto::{ + Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel, +}; use futures::TryStreamExt; use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; -use tokio::runtime::Runtime; use std::io::Write; -use arrow_schema::DataType; -use datafusion::catalog::TableProvider; -use datafusion_datasource::source::DataSourceExec; -use datafusion_expr::registry::FunctionRegistry; -use datafusion_substrait::extensions::Extensions; -use crate::row_id_optimizer::ProjectRowIdOptimizer; +use tokio::runtime::Runtime; /// Create a new DataFusion session context #[no_mangle] @@ -91,8 +99,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVers env: JNIEnv, _class: JClass, ) -> jstring { - let version_info = format!(r#"{{"version": "{}", "codecs": ["CsvDataSourceCodec"]}}"#, DATAFUSION_VERSION); - env.new_string(version_info).expect("Couldn't create Java string").as_raw() + let version_info = format!( + r#"{{"version": "{}", "codecs": ["CsvDataSourceCodec"]}}"#, + DATAFUSION_VERSION + ); + env.new_string(version_info) + .expect("Couldn't create Java string") + .as_raw() } /// Get version information (legacy method name) @@ -101,7 +114,9 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVers env: JNIEnv, _class: JClass, ) -> jstring { - env.new_string(DATAFUSION_VERSION).expect("Couldn't create Java string").as_raw() + env.new_string(DATAFUSION_VERSION) + .expect("Couldn't create Java string") + .as_raw() } #[no_mangle] @@ -137,7 +152,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createG let config = SessionConfig::new().with_repartition_aggregations(true); let context = SessionContext::new_with_config(config); **/ - let ctx = Box::into_raw(Box::new(runtime_env)) as jlong; ctx } @@ -164,18 +178,20 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeSe let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; } - #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createDatafusionReader( mut env: JNIEnv, _class: JClass, table_path: JString, - files: JObjectArray + files: JObjectArray, ) -> jlong { let table_path: String = match env.get_string(&table_path) { Ok(path) => path.into(), Err(e) => { - let _ = env.throw_new("java/lang/IllegalArgumentException", format!("Invalid table path: {:?}", e)); + let _ = env.throw_new( + "java/lang/IllegalArgumentException", + format!("Invalid table path: {:?}", e), + ); return 0; } }; @@ -183,7 +199,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD let files: Vec = match parse_string_arr(&mut env, files) { Ok(files) => files, Err(e) => { - let _ = env.throw_new("java/lang/IllegalArgumentException", format!("Invalid file list: {}", e)); + let _ = env.throw_new( + "java/lang/IllegalArgumentException", + format!("Invalid file list: {}", e), + ); return 0; } }; @@ -191,7 +210,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD let files_metadata = match create_file_metadata_from_filenames(&table_path, files.clone()) { Ok(metadata) => metadata, Err(err) => { - let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to create metadata: {}", err)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to create metadata: {}", err), + ); return 0; } }; @@ -199,7 +221,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD let table_url = match ListingTableUrl::parse(&table_path) { Ok(url) => url, Err(err) => { - let _ = env.throw_new("java/lang/RuntimeException", format!("Invalid table path: {}", err)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Invalid table path: {}", err), + ); return 0; } }; @@ -213,14 +238,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeDatafusionReader( mut env: JNIEnv, _class: JClass, - ptr: jlong -) { + ptr: jlong, +) { let _ = unsafe { Box::from_raw(ptr as *mut ShardView) }; } pub struct ShardView { table_path: ListingTableUrl, - files_metadata: Arc> + files_metadata: Arc>, } impl ShardView { @@ -228,7 +253,7 @@ impl ShardView { let files_metadata = Arc::new(files_metadata); ShardView { table_path, - files_metadata + files_metadata, } } @@ -256,7 +281,7 @@ impl FileMetadata { FileMetadata { row_group_row_counts, row_base, - object_meta + object_meta, } } @@ -285,15 +310,20 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute ) -> jlong { let overall = Instant::now(); let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; - let table_name: String = env.get_string(&table_name).expect("Couldn't get java string!").into(); + let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime) }; + let table_name: String = env + .get_string(&table_name) + .expect("Couldn't get java string!") + .into(); let table_path = shard_view.table_path(); let files_metadata = shard_view.files_metadata(); - let object_meta: Arc> = Arc::new(files_metadata - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect()); + let object_meta: Arc> = Arc::new( + files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect(), + ); println!("Table path: {}", table_path); println!("Files: {:?}", object_meta); @@ -302,9 +332,11 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::new() - .with_cache_manager(CacheManagerConfig::default() - .with_list_files_cache(Some(list_file_cache.clone())) - ).build().unwrap(); + .with_cache_manager( + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache.clone())), + ) + .build() + .unwrap(); // TODO: get config from CSV DataFormat let mut config = SessionConfig::new(); @@ -331,7 +363,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute runtime_ptr.block_on(async { let resolved_schema = listing_options .infer_schema(&ctx.state(), &table_path.clone()) - .await.unwrap(); + .await + .unwrap(); let config = ListingTableConfig::new(table_path.clone()) .with_listing_options(listing_options) @@ -339,10 +372,12 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); - let shard_id = table_path.prefix().filename().expect("error in fetching Path"); + let shard_id = table_path + .prefix() + .filename() + .expect("error in fetching Path"); ctx.register_table(table_name.clone(), provider) .expect("Failed to attach the Table"); - }); let start = Instant::now(); @@ -362,7 +397,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute Ok(plan) => { // println!("SUBSTRAIT rust: Decoding is successful, Plan has {} relations", plan.relations.len()); plan - }, + } Err(e) => { return 0; } @@ -370,14 +405,16 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute //let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; runtime_ptr.block_on(async { - let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); let duration = start.elapsed(); - println!("Rust: Substrait decoding time in milliseconds: {}", duration.as_millis()); + println!( + "Rust: Substrait decoding time in milliseconds: {}", + duration.as_millis() + ); plan - }, + } Err(e) => { let error_msg = format!("Failed to convert Substrait plan: {}", e); println!("SUBSTRAIT Rust: {}", error_msg); @@ -386,12 +423,18 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute } }; - let dataframe = ctx.execute_logical_plan(logical_plan).await.expect("Failed to execute logical plan"); + let dataframe = ctx + .execute_logical_plan(logical_plan) + .await + .expect("Failed to execute logical plan"); let physical_plan = dataframe.clone().create_physical_plan().await.unwrap(); - println!("Physical Plan:\n{}", datafusion::physical_plan::displayable(physical_plan.as_ref()).indent(true)); + println!( + "Physical Plan:\n{}", + datafusion::physical_plan::displayable(physical_plan.as_ref()).indent(true) + ); let stream = match dataframe.execute_stream().await { - Ok(stream) => { stream } + Ok(stream) => stream, Err(e) => { let error_msg = format!("Failed to execute stream: {}", e); println!("{}", error_msg); @@ -402,7 +445,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; // println!("The memory used currently right now: {:?}", jemalloc_stats::refresh_allocated()); let duration1 = overall.elapsed(); - println!("Rust: Overall query setup time in milliseconds: {}", duration1.as_millis()); + println!( + "Rust: Overall query setup time in milliseconds: {}", + duration1.as_millis() + ); // set_projections(env, projections, callback); stream_ptr @@ -421,10 +467,12 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; let table_path = shard_view.table_path(); let files_metadata = shard_view.files_metadata(); - let object_meta: Arc> = Arc::new(files_metadata - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect()); + let object_meta: Arc> = Arc::new( + files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect(), + ); // Will use it once the global RunTime is defined // let runtime_arc = unsafe { // let boxed = &*(runtime_env_ptr as *const Pin>); @@ -435,8 +483,11 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::new() - .with_cache_manager(CacheManagerConfig::default() - .with_list_files_cache(Some(list_file_cache))).build().unwrap(); + .with_cache_manager( + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)), + ) + .build() + .unwrap(); let mut config = SessionConfig::new(); config.options_mut().execution.parquet.pushdown_filters = false; @@ -444,42 +495,42 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC let ctx = SessionContext::new_with_config_rt(config, Arc::new(runtime_env)); - // Create default parquet options let file_format = CsvFormat::default(); - let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".csv"); - + let listing_options = ListingOptions::new(Arc::new(file_format)).with_file_extension(".csv"); // let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; let mut session_context_ptr = 0; // Ideally the executor will give this - Runtime::new().expect("Failed to create Tokio Runtime").block_on(async { - let resolved_schema = listing_options - .infer_schema(&ctx.state(), &table_path.clone()) - .await.unwrap(); - - - let config = ListingTableConfig::new(table_path.clone()) - .with_listing_options(listing_options) - .with_schema(resolved_schema); - - // Create a new TableProvider - let provider = Arc::new(ListingTable::try_new(config).unwrap()); - let shard_id = table_path.prefix().filename().expect("error in fetching Path"); - ctx.register_table(shard_id, provider) - .expect("Failed to attach the Table"); - - // Return back after wrapping in Box - session_context_ptr = Box::into_raw(Box::new(ctx)) as jlong - }); + Runtime::new() + .expect("Failed to create Tokio Runtime") + .block_on(async { + let resolved_schema = listing_options + .infer_schema(&ctx.state(), &table_path.clone()) + .await + .unwrap(); + + let config = ListingTableConfig::new(table_path.clone()) + .with_listing_options(listing_options) + .with_schema(resolved_schema); + + // Create a new TableProvider + let provider = Arc::new(ListingTable::try_new(config).unwrap()); + let shard_id = table_path + .prefix() + .filename() + .expect("error in fetching Path"); + ctx.register_table(shard_id, provider) + .expect("Failed to attach the Table"); + + // Return back after wrapping in Box + session_context_ptr = Box::into_raw(Box::new(ctx)) as jlong + }); session_context_ptr } - - #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( mut env: JNIEnv, @@ -552,14 +603,15 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute projections: JObjectArray, tokio_runtime_env_ptr: jlong, callback: JObject, -) -> jlong{ +) -> jlong { let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime)}; + let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime) }; let table_path = shard_view.table_path(); let files_metadata = shard_view.files_metadata(); - let projections: Vec = parse_string_arr(&mut env, projections).expect("Expected list of files"); + let projections: Vec = + parse_string_arr(&mut env, projections).expect("Expected list of files"); // Safety checks first if values.is_null() { @@ -571,8 +623,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let array_length = match env.get_array_length(&values) { Ok(len) => len, Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", - format!("Failed to get array length: {:?}", e)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to get array length: {:?}", e), + ); return 0; } }; @@ -586,13 +640,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute println!("Received array: {:?}", row_ids); } Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", - format!("Failed to get array data: {:?}", e)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to get array data: {:?}", e), + ); return 0; } } - // Safety checks if tokio_runtime_env_ptr == 0 { let error = DataFusionError::Execution("Null runtime pointer".to_string()); @@ -602,35 +657,43 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let access_plans = create_access_plans(row_ids, files_metadata.clone()); - let object_meta: Arc> = Arc::new(files_metadata - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect()); + let object_meta: Arc> = Arc::new( + files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect(), + ); let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::new() - .with_cache_manager(CacheManagerConfig::default() - .with_list_files_cache(Some(list_file_cache)) - ).build().unwrap(); + .with_cache_manager( + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)), + ) + .build() + .unwrap(); let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); // Create default parquet options let file_format = ParquetFormat::new(); - let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".parquet"); // TODO: take this as parameter - // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase + let listing_options = + ListingOptions::new(Arc::new(file_format)).with_file_extension(".parquet"); // TODO: take this as parameter + // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase // Ideally the executor will give this - runtime_ptr.block_on(async { - - let parquet_schema = match listing_options.infer_schema(&ctx.state(), &table_path.clone()).await { + let parquet_schema = match listing_options + .infer_schema(&ctx.state(), &table_path.clone()) + .await + { Ok(schema) => schema, Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to infer schema during fetch: {}", e)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to infer schema during fetch: {}", e), + ); return 0; } }; @@ -655,11 +718,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // }) // .collect(); - let access_plans = match access_plans.await { Ok(plans) => plans, Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to create access plans during fetch: {}", e)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to create access plans during fetch: {}", e), + ); return 0; } }; @@ -668,32 +733,40 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute .iter() .zip(access_plans.iter()) .map(|(meta, access_plan)| { - PartitionedFile::new(meta.object_meta().location.to_string(), - meta.object_meta.size - ).with_extensions(Arc::new(access_plan.clone())) + PartitionedFile::new( + meta.object_meta().location.to_string(), + meta.object_meta.size, + ) + .with_extensions(Arc::new(access_plan.clone())) }) .collect(); let file_group = FileGroup::new(partitioned_files); let file_source = Arc::new( - ParquetSource::default() - // provide the factory to create parquet reader without re-reading metadata - //.with_parquet_file_reader_factory(Arc::new(reader_factory)), + ParquetSource::default(), // provide the factory to create parquet reader without re-reading metadata + //.with_parquet_file_reader_factory(Arc::new(reader_factory)), ); let mut projection_index = vec![]; for field_name in projections.iter() { - projection_index.push(parquet_schema.index_of(field_name).expect(format!("Projected field {} not found in Schema", field_name).as_str())); + projection_index.push( + parquet_schema + .index_of(field_name) + .expect(format!("Projected field {} not found in Schema", field_name).as_str()), + ); } - let file_scan_config = - FileScanConfigBuilder::new(ObjectStoreUrl::local_filesystem(), parquet_schema.clone(), file_source) - //.with_limit(limit) - .with_projection(Option::from(projection_index.clone())) - .with_file_group(file_group) - .build(); + let file_scan_config = FileScanConfigBuilder::new( + ObjectStoreUrl::local_filesystem(), + parquet_schema.clone(), + file_source, + ) + //.with_limit(limit) + .with_projection(Option::from(projection_index.clone())) + .with_file_group(file_group) + .build(); let parquet_exec = DataSourceExec::from_data_source(file_scan_config); @@ -707,7 +780,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute let stream = match optimized_plan.execute(0, task_ctx) { Ok(s) => s, Err(e) => { - let _ = env.throw_new("java/lang/RuntimeException", format!("Failed to execute plan during fetch: {}", e)); + let _ = env.throw_new( + "java/lang/RuntimeException", + format!("Failed to execute plan during fetch: {}", e), + ); return 0; } }; @@ -742,8 +818,7 @@ async fn create_access_plans( .iter() .copied() // or .cloned() if it's not Copy .filter(|&id| id >= row_base && id < file_end_row) - .map(|id| { - id - row_base }) + .map(|id| id - row_base) .collect(); if file_row_ids.is_empty() { @@ -764,13 +839,15 @@ async fn create_access_plans( let mut group_map: HashMap> = HashMap::new(); for &row_id in &file_row_ids { // Find the appropriate row group using binary search - let group_id = cumulative_group_rows.windows(2) + let group_id = cumulative_group_rows + .windows(2) .position(|window| row_id >= window[0] as i64 && row_id < window[1] as i64) .unwrap(); // Calculate relative position within the row group let relative_pos = row_id - cumulative_group_rows[group_id]; - group_map.entry(group_id) + group_map + .entry(group_id) .or_default() .insert(relative_pos as i32); } @@ -780,9 +857,8 @@ async fn create_access_plans( let row_group_size = file_meta.row_group_row_counts[group_id] as usize; if let Some(group_row_ids) = group_map.get(&group_id) { - let mut relative_row_ids: Vec = group_row_ids.iter() - .map(|&x| x as usize) - .collect(); + let mut relative_row_ids: Vec = + group_row_ids.iter().map(|&x| x as usize).collect(); relative_row_ids.sort_unstable(); if relative_row_ids.is_empty() { @@ -800,8 +876,9 @@ async fn create_access_plans( selectors.push(RowSelector::skip(target_pos - current_pos)); } let mut select_count = 1; - while i + 1 < relative_row_ids.len() && - relative_row_ids[i + 1] == relative_row_ids[i] + 1 { + while i + 1 < relative_row_ids.len() + && relative_row_ids[i + 1] == relative_row_ids[i] + 1 + { select_count += 1; i += 1; target_pos = relative_row_ids[i]; @@ -831,7 +908,7 @@ async fn create_access_plans( pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( mut env: JNIEnv, _class: JClass, - stream: jlong + stream: jlong, ) { let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; } @@ -840,7 +917,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStr pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeGlobalRuntime( _env: JNIEnv, _class: JClass, - runtime: jlong + runtime: jlong, ) { let _ = unsafe { Box::from_raw(runtime as *mut RuntimeEnv) }; } diff --git a/plugins/engine-datafusion/jni/src/listing_table.rs b/plugins/engine-datafusion/jni/src/listing_table.rs index 8a520fc570917..b1ec8e7fdc445 100644 --- a/plugins/engine-datafusion/jni/src/listing_table.rs +++ b/plugins/engine-datafusion/jni/src/listing_table.rs @@ -25,20 +25,32 @@ //! The table implementation. +use crate::FileMetadata; +use arrow::datatypes::{DataType, Field, SchemaBuilder, SchemaRef}; +use arrow_schema::Schema; +use async_trait::async_trait; +use datafusion::catalog::{Session, TableProvider}; +use datafusion::common::{ + config_datafusion_err, config_err, internal_err, plan_err, project_schema, stats::Precision, + Constraints, DataFusionError, Result, ScalarValue, SchemaExt, +}; use datafusion::datasource::listing::{ helpers::{expr_applicable_for_cols, pruned_partition_list}, ListingTableUrl, PartitionedFile, }; +use datafusion::execution::{ + cache::{cache_manager::FileStatisticsCache, cache_unit::DefaultFileStatisticsCache}, + config::SessionConfig, +}; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use datafusion::physical_expr::schema_rewriter::PhysicalExprAdapterFactory; +use datafusion::physical_expr_common::sort_expr::LexOrdering; +use datafusion::physical_plan::{empty::EmptyExec, ExecutionPlan, Statistics}; use datafusion::{ datasource::file_format::{file_compression_type::FileCompressionType, FileFormat}, datasource::{create_ordering, physical_plan::FileSinkConfig}, execution::context::SessionState, }; -use arrow::datatypes::{DataType, Field, SchemaBuilder, SchemaRef}; -use arrow_schema::Schema; -use async_trait::async_trait; -use datafusion::catalog::{Session, TableProvider}; -use datafusion::common::{config_datafusion_err, config_err, internal_err, plan_err, project_schema, stats::Precision, Constraints, DataFusionError, Result, ScalarValue, SchemaExt}; use datafusion_datasource::{ compute_all_files_statistics, file::FileSource, @@ -46,25 +58,14 @@ use datafusion_datasource::{ file_scan_config::{FileScanConfig, FileScanConfigBuilder}, schema_adapter::{DefaultSchemaAdapterFactory, SchemaAdapter, SchemaAdapterFactory}, }; -use datafusion::execution::{ - cache::{cache_manager::FileStatisticsCache, cache_unit::DefaultFileStatisticsCache}, - config::SessionConfig, -}; -use datafusion_expr::{ - dml::InsertOp, Expr, SortExpr, TableProviderFilterPushDown, TableType, -}; -use datafusion::physical_expr::schema_rewriter::PhysicalExprAdapterFactory; -use datafusion::physical_expr_common::sort_expr::LexOrdering; -use datafusion::physical_plan::{empty::EmptyExec, ExecutionPlan, Statistics}; +use datafusion_expr::{dml::InsertOp, Expr, SortExpr, TableProviderFilterPushDown, TableType}; +use futures::future::err; use futures::{future, stream, Stream, StreamExt, TryStreamExt}; use itertools::Itertools; use object_store::ObjectStore; -use std::{any::Any, collections::HashMap, str::FromStr, sync::Arc}; -use std::fs::File; -use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; -use futures::future::err; use regex::Regex; -use crate::FileMetadata; +use std::fs::File; +use std::{any::Any, collections::HashMap, str::FromStr, sync::Arc}; /// Indicates the source of the schema for a [`ListingTable`] // PartialEq required for assert_eq! in tests @@ -221,15 +222,13 @@ impl ListingTableConfig { /// /// For example a path ending with blah.test.csv.gz returns `("csv", Some("gz"))` /// For example a path ending with blah.test.csv returns `("csv", None)` - fn infer_file_extension_and_compression_type( - path: &str, - ) -> Result<(String, Option)> { + fn infer_file_extension_and_compression_type(path: &str) -> Result<(String, Option)> { let mut exts = path.rsplit('.'); let splitted = exts.next().unwrap_or(""); - let file_compression_type = FileCompressionType::from_str(splitted) - .unwrap_or(FileCompressionType::UNCOMPRESSED); + let file_compression_type = + FileCompressionType::from_str(splitted).unwrap_or(FileCompressionType::UNCOMPRESSED); if file_compression_type.is_compressed() { let splitted2 = exts.next().unwrap_or(""); @@ -260,14 +259,11 @@ impl ListingTableConfig { .ok_or_else(|| DataFusionError::Internal("No files for table".into()))??; let (file_extension, maybe_compression_type) = - ListingTableConfig::infer_file_extension_and_compression_type( - file.location.as_ref(), - )?; + ListingTableConfig::infer_file_extension_and_compression_type(file.location.as_ref())?; let mut format_options = HashMap::new(); if let Some(ref compression_type) = maybe_compression_type { - format_options - .insert("format.compression".to_string(), compression_type.clone()); + format_options.insert("format.compression".to_string(), compression_type.clone()); } let state = state.as_any().downcast_ref::().unwrap(); let file_format = state @@ -277,12 +273,11 @@ impl ListingTableConfig { ))? .create(state, &format_options)?; - let listing_file_extension = - if let Some(compression_type) = maybe_compression_type { - format!("{}.{}", &file_extension, &compression_type) - } else { - file_extension - }; + let listing_file_extension = if let Some(compression_type) = maybe_compression_type { + format!("{}.{}", &file_extension, &compression_type) + } else { + file_extension + }; let listing_options = ListingOptions::new(file_format) .with_file_extension(listing_file_extension) @@ -490,7 +485,7 @@ pub struct ListingOptions { /// single element. pub file_sort_order: Vec>, - pub files_metadata: Arc> + pub files_metadata: Arc>, } impl ListingOptions { @@ -508,7 +503,7 @@ impl ListingOptions { collect_stat: false, target_partitions: 1, file_sort_order: vec![], - files_metadata: Arc::new(vec![]) + files_metadata: Arc::new(vec![]), } } @@ -973,9 +968,9 @@ impl ListingTable { .file_schema .ok_or_else(|| DataFusionError::Internal("No schema provided.".into()))?; - let options = config.options.ok_or_else(|| { - DataFusionError::Internal("No ListingOptions provided".into()) - })?; + let options = config + .options + .ok_or_else(|| DataFusionError::Internal("No ListingOptions provided".into()))?; // Add the partition columns to the file schema let mut builder = SchemaBuilder::from(file_schema.as_ref().to_owned()); @@ -1013,10 +1008,7 @@ impl ListingTable { } /// Assign column defaults - pub fn with_column_defaults( - mut self, - column_defaults: HashMap, - ) -> Self { + pub fn with_column_defaults(mut self, column_defaults: HashMap) -> Self { self.column_defaults = column_defaults; self } @@ -1098,9 +1090,7 @@ impl ListingTable { fn create_schema_adapter(&self) -> Box { let table_schema = self.schema(); match &self.schema_adapter_factory { - Some(factory) => { - factory.create_with_projected_schema(Arc::clone(&table_schema)) - } + Some(factory) => factory.create_with_projected_schema(Arc::clone(&table_schema)), None => DefaultSchemaAdapterFactory::from_schema(Arc::clone(&table_schema)), } } @@ -1123,7 +1113,10 @@ impl ListingTable { create_ordering(&self.table_schema, &self.options.file_sort_order) } - fn add_path_preserving_metadata(&self, file_groups: Vec) -> Result, DataFusionError> { + fn add_path_preserving_metadata( + &self, + file_groups: Vec, + ) -> Result, DataFusionError> { // First pass: calculate cumulative row bases let mut cumulative_row_base = 0; let mut file_row_bases: HashMap = HashMap::new(); @@ -1132,8 +1125,11 @@ impl ListingTable { for group in &file_groups { for file in group.files() { let location = file.object_meta.location.to_string(); - let row_count = self.options.files_metadata.iter() - .find(|meta| { location.contains(meta.object_meta.location.as_ref()) }) + let row_count = self + .options + .files_metadata + .iter() + .find(|meta| location.contains(meta.object_meta.location.as_ref())) .map(|meta| meta.row_group_row_counts().iter().sum::() as i32) // .unwrap_or_default(); .expect(format!("Fail to get row count for file {}", location).as_str()); @@ -1144,9 +1140,18 @@ impl ListingTable { cumulative_row_base += row_count; } } - let row_id_field_datatype = self.file_schema.field_with_name("___row_id").expect("Field ___row_id not found").data_type(); - if !(row_id_field_datatype.equals_datatype(&DataType::Int32) || row_id_field_datatype.equals_datatype(&DataType::Int64)) { - return Err(DataFusionError::Internal(format!("___row_id field must be Int32 or Int64, but found {:?}", row_id_field_datatype))) + let row_id_field_datatype = self + .file_schema + .field_with_name("___row_id") + .expect("Field ___row_id not found") + .data_type(); + if !(row_id_field_datatype.equals_datatype(&DataType::Int32) + || row_id_field_datatype.equals_datatype(&DataType::Int64)) + { + return Err(DataFusionError::Internal(format!( + "___row_id field must be Int32 or Int64, but found {:?}", + row_id_field_datatype + ))); } // Second pass: create new file groups with calculated row_bases @@ -1179,8 +1184,9 @@ impl ListingTable { }) .collect(); - FileGroup::new(new_files) - .with_statistics(Arc::new(group.statistics_mut().cloned().unwrap_or_default())) + FileGroup::new(new_files).with_statistics(Arc::new( + group.statistics_mut().cloned().unwrap_or_default(), + )) }) .collect()) } @@ -1188,12 +1194,8 @@ impl ListingTable { // Expressions can be used for parttion pruning if they can be evaluated using // only the partiton columns and there are partition columns. -fn can_be_evaluted_for_partition_pruning( - partition_column_names: &[&str], - expr: &Expr, -) -> bool { - !partition_column_names.is_empty() - && expr_applicable_for_cols(partition_column_names, expr) +fn can_be_evaluted_for_partition_pruning(partition_column_names: &[&str], expr: &Expr) -> bool { + !partition_column_names.is_empty() && expr_applicable_for_cols(partition_column_names, expr) } #[async_trait] @@ -1214,8 +1216,6 @@ impl TableProvider for ListingTable { TableType::Base } - - async fn scan( &self, state: &dyn Session, @@ -1260,7 +1260,9 @@ impl TableProvider for ListingTable { return Ok(Arc::new(EmptyExec::new(projected_schema))); } - partitioned_file_lists = self.add_path_preserving_metadata(partitioned_file_lists).expect("Unable to update Metadata for partitioned files"); + partitioned_file_lists = self + .add_path_preserving_metadata(partitioned_file_lists) + .expect("Unable to update Metadata for partitioned files"); let output_ordering = self.try_create_output_ordering()?; match state @@ -1290,8 +1292,7 @@ impl TableProvider for ListingTable { None => {} // no ordering required }; - let Some(object_store_url) = - self.table_paths.first().map(ListingTableUrl::object_store) + let Some(object_store_url) = self.table_paths.first().map(ListingTableUrl::object_store) else { return Ok(Arc::new(EmptyExec::new(Arc::new(Schema::empty())))); }; @@ -1308,15 +1309,15 @@ impl TableProvider for ListingTable { Arc::clone(&self.file_schema), file_source, ) - .with_file_groups(partitioned_file_lists) - .with_constraints(self.constraints.clone()) - .with_statistics(statistics) - .with_projection(projection.cloned()) - .with_limit(limit) - .with_output_ordering(output_ordering) - .with_table_partition_cols(table_partition_cols) - .with_expr_adapter(self.expr_adapter_factory.clone()) - .build(), + .with_file_groups(partitioned_file_lists) + .with_constraints(self.constraints.clone()) + .with_statistics(statistics) + .with_projection(projection.cloned()) + .with_limit(limit) + .with_output_ordering(output_ordering) + .with_table_partition_cols(table_partition_cols) + .with_expr_adapter(self.expr_adapter_factory.clone()) + .build(), ) .await } @@ -1334,8 +1335,7 @@ impl TableProvider for ListingTable { filters .iter() .map(|filter| { - if can_be_evaluted_for_partition_pruning(&partition_column_names, filter) - { + if can_be_evaluted_for_partition_pruning(&partition_column_names, filter) { // if filter can be handled by partition pruning, it is exact return Ok(TableProviderFilterPushDown::Exact); } @@ -1378,11 +1378,10 @@ impl TableProvider for ListingTable { &self.options.file_extension, &self.options.table_partition_cols, ) - .await?; + .await?; let file_group = file_list_stream.try_collect::>().await?.into(); - let keep_partition_by_columns = - state.config_options().execution.keep_partition_by_columns; + let keep_partition_by_columns = state.config_options().execution.keep_partition_by_columns; // Sink related option, apart from format let config = FileSinkConfig { @@ -1428,7 +1427,7 @@ impl ListingTable { return Ok((vec![], Statistics::new_unknown(&self.file_schema))); }; // list files (with partitions) - let table_partition_cols: Vec<(String, DataType)> = vec![]; // Passing empty partition cols as current partition cols are not mapped to directory path + let table_partition_cols: Vec<(String, DataType)> = vec![]; // Passing empty partition cols as current partition cols are not mapped to directory path let file_list = future::try_join_all(self.table_paths.iter().map(|table_path| { pruned_partition_list( ctx, @@ -1439,9 +1438,8 @@ impl ListingTable { &table_partition_cols, ) })) - .await?; - let meta_fetch_concurrency = - ctx.config_options().execution.meta_fetch_concurrency; + .await?; + let meta_fetch_concurrency = ctx.config_options().execution.meta_fetch_concurrency; let file_list = stream::iter(file_list).flatten_unordered(meta_fetch_concurrency); // collect the statistics if required by the config let files = file_list @@ -1471,8 +1469,7 @@ impl ListingTable { let schema_adapter = self.create_schema_adapter(); let (schema_mapper, _) = schema_adapter.map_schema(self.file_schema.as_ref())?; - stats.column_statistics = - schema_mapper.map_column_statistics(&stats.column_statistics)?; + stats.column_statistics = schema_mapper.map_column_statistics(&stats.column_statistics)?; file_groups.iter_mut().try_for_each(|file_group| { if let Some(stat) = file_group.statistics_mut() { stat.column_statistics = @@ -1597,4 +1594,3 @@ async fn get_files_with_limit( let inexact_stats = all_files.next().await.is_some(); Ok((file_group, inexact_stats)) } - diff --git a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs index f5f3595bbda49..2be3e19a14d79 100644 --- a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs +++ b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs @@ -11,6 +11,7 @@ use std::sync::Arc; use arrow::datatypes::{DataType, Field, Fields, Schema}; use arrow_schema::SchemaRef; +use datafusion::physical_plan::projection::new_projections_for_columns; use datafusion::{ common::tree_node::{Transformed, TreeNode, TreeNodeRecursion}, config::ConfigOptions, @@ -21,22 +22,23 @@ use datafusion::{ error::DataFusionError, logical_expr::Operator, parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder, - physical_expr::{expressions::{BinaryExpr, Column}, PhysicalExpr}, + physical_expr::{ + expressions::{BinaryExpr, Column}, + PhysicalExpr, + }, physical_optimizer::PhysicalOptimizerRule, physical_plan::{filter::FilterExec, projection::ProjectionExec, ExecutionPlan}, }; -use datafusion::physical_plan::projection::new_projections_for_columns; #[derive(Debug)] pub struct ProjectRowIdOptimizer; impl ProjectRowIdOptimizer { - /// Helper to build new schema and projection info with added `row_base` column. fn build_updated_file_source_schema( &self, datasource: &FileScanConfig, - datasource_exec_schema: SchemaRef + datasource_exec_schema: SchemaRef, ) -> (SchemaRef, Vec) { // Clone projection and add new field index let mut projections = datasource.projection.clone().unwrap_or_default(); @@ -67,7 +69,15 @@ impl ProjectRowIdOptimizer { // Add row_base field to schema let mut new_fields = file_source_schema.fields().clone().to_vec(); - new_fields.push(Arc::new(Field::new("row_base", file_source_schema.field_with_name("___row_id").unwrap().data_type().clone(), true))); + new_fields.push(Arc::new(Field::new( + "row_base", + file_source_schema + .field_with_name("___row_id") + .unwrap() + .data_type() + .clone(), + true, + ))); let new_schema = Arc::new(Schema { metadata: file_source_schema.metadata().clone(), @@ -78,9 +88,16 @@ impl ProjectRowIdOptimizer { } /// Creates a projection expression that adds `row_base` to `___row_id`. - fn build_projection_exprs(&self, new_schema: &SchemaRef) -> Result, String)>, DataFusionError> { - let row_id_idx = new_schema.index_of("___row_id").expect("Field ___row_id missing"); - let row_base_idx = new_schema.index_of("row_base").expect("Field row_base missing"); + fn build_projection_exprs( + &self, + new_schema: &SchemaRef, + ) -> Result, String)>, DataFusionError> { + let row_id_idx = new_schema + .index_of("___row_id") + .expect("Field ___row_id missing"); + let row_base_idx = new_schema + .index_of("row_base") + .expect("Field row_base missing"); let sum_expr: Arc = Arc::new(BinaryExpr::new( Arc::new(Column::new("___row_id", row_id_idx)), @@ -92,15 +109,18 @@ impl ProjectRowIdOptimizer { let mut has_row_id = false; for field_name in new_schema.fields().to_vec() { - if field_name.name() == "___row_id" { projection_exprs.push((sum_expr.clone(), field_name.name().clone())); has_row_id = true; - } else if(field_name.name() != "row_base") { + } else if (field_name.name() != "row_base") { // Match the column by name from new_schema - let idx = new_schema.index_of(&*field_name.name().clone()) + let idx = new_schema + .index_of(&*field_name.name().clone()) .unwrap_or_else(|_| panic!("Field {field_name} missing in schema")); - projection_exprs.push((Arc::new(Column::new(&*field_name.name(), idx)), field_name.name().clone())); + projection_exprs.push(( + Arc::new(Column::new(&*field_name.name(), idx)), + field_name.name().clone(), + )); } } if !has_row_id { @@ -109,15 +129,22 @@ impl ProjectRowIdOptimizer { Ok(projection_exprs) } - fn create_datasource_projection(&self, datasource: &FileScanConfig, data_source_exec_schema: SchemaRef) -> Result { - let (new_schema, new_projections) = self.build_updated_file_source_schema(datasource, data_source_exec_schema.clone()); + fn create_datasource_projection( + &self, + datasource: &FileScanConfig, + data_source_exec_schema: SchemaRef, + ) -> Result { + let (new_schema, new_projections) = + self.build_updated_file_source_schema(datasource, data_source_exec_schema.clone()); let file_scan_config = FileScanConfigBuilder::from(datasource.clone()) .with_source(datasource.file_source.with_schema(new_schema.clone())) .with_projection(Some(new_projections)) .build(); let new_datasource = DataSourceExec::from_data_source(file_scan_config); - let projection_exprs = self.build_projection_exprs(&new_datasource.schema()).expect("Failed to build projection expressions"); + let projection_exprs = self + .build_projection_exprs(&new_datasource.schema()) + .expect("Failed to build projection expressions"); Ok(ProjectionExec::try_new(projection_exprs, new_datasource) .expect("Failed to create ProjectionExec")) @@ -130,10 +157,8 @@ impl PhysicalOptimizerRule for ProjectRowIdOptimizer { plan: Arc, _config: &ConfigOptions, ) -> Result, DataFusionError> { - let rewritten = plan.transform_up(|node| { if let Some(datasource_exec) = node.as_any().downcast_ref::() { - let datasource = datasource_exec .data_source() .as_ref() @@ -141,20 +166,51 @@ impl PhysicalOptimizerRule for ProjectRowIdOptimizer { .downcast_ref::() .expect("DataSource not found"); let schema = datasource.file_schema.clone(); - schema.field_with_name("___row_id").expect("Field ___row_id missing"); - let projection = self.create_datasource_projection(datasource, datasource_exec.schema()).expect("Failed to create ProjectionExec from datasource"); - return Ok(Transformed::new(Arc::new(projection), true, TreeNodeRecursion::Continue)); - + schema + .field_with_name("___row_id") + .expect("Field ___row_id missing"); + let projection = self + .create_datasource_projection(datasource, datasource_exec.schema()) + .expect("Failed to create ProjectionExec from datasource"); + return Ok(Transformed::new( + Arc::new(projection), + true, + TreeNodeRecursion::Continue, + )); } else if let Some(projection_exec) = node.as_any().downcast_ref::() { - if !projection_exec.schema().field_with_name("___row_id").is_ok() { - + if !projection_exec + .schema() + .field_with_name("___row_id") + .is_ok() + { let mut projection_exprs = projection_exec.expr().to_vec(); - if(projection_exec.input().schema().index_of("___row_id").is_ok()) { - projection_exprs.push((Arc::new(Column::new("___row_id", projection_exec.input().schema().index_of("___row_id").unwrap())), "___row_id".to_string())); + if (projection_exec + .input() + .schema() + .index_of("___row_id") + .is_ok()) + { + projection_exprs.push(( + Arc::new(Column::new( + "___row_id", + projection_exec + .input() + .schema() + .index_of("___row_id") + .unwrap(), + )), + "___row_id".to_string(), + )); } - let projection = ProjectionExec::try_new(projection_exprs, projection_exec.input().clone()).expect("Failed to create projection exec"); - return Ok(Transformed::new(Arc::new(projection.clone()), true, TreeNodeRecursion::Continue)); + let projection = + ProjectionExec::try_new(projection_exprs, projection_exec.input().clone()) + .expect("Failed to create projection exec"); + return Ok(Transformed::new( + Arc::new(projection.clone()), + true, + TreeNodeRecursion::Continue, + )); } } diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index 575e654680e8a..253f628a29d99 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -2,9 +2,12 @@ * SPDX-License-Identifier: Apache-2.0 */ +use crate::FileMetadata; use anyhow::Result; use chrono::{DateTime, Utc}; use datafusion::arrow::array::RecordBatch; +use datafusion::error::DataFusionError; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; use jni::objects::{JObject, JObjectArray, JString}; use jni::sys::jlong; use jni::JNIEnv; @@ -12,19 +15,19 @@ use object_store::{path::Path as ObjectPath, ObjectMeta}; use std::collections::HashMap; use std::error::Error; use std::fs; -use datafusion::error::DataFusionError; -use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; -use crate::FileMetadata; /// Set error message from a result using a Consumer Java callback -pub fn set_error_message_batch(env: &mut JNIEnv, callback: JObject, result: Result, Err>) { +pub fn set_error_message_batch( + env: &mut JNIEnv, + callback: JObject, + result: Result, Err>, +) { if result.is_err() { set_error_message(env, callback, Result::Err(result.unwrap_err())); } else { - let res : Result<(), Err> = Result::Ok(()); + let res: Result<(), Err> = Result::Ok(()); set_error_message(env, callback, res); } - } pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result: Result<(), Err>) { @@ -37,7 +40,7 @@ pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result "(Ljava/lang/Object;)V", &[(&err_message).into()], ) - .expect("Failed to call error handler with null message"); + .expect("Failed to call error handler with null message"); } Err(err) => { let err_message = env @@ -49,7 +52,7 @@ pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result "(Ljava/lang/Object;)V", &[(&err_message).into()], ) - .expect("Failed to call error handler with error message"); + .expect("Failed to call error handler with error message"); } }; } @@ -75,7 +78,7 @@ pub fn set_object_result_ok(env: &mut JNIEnv, callback: JObject, address: *mu "(Ljava/lang/String;J)V", &[(&err_message).into(), (address as jlong).into()], ) - .expect("Failed to call object result callback with address"); + .expect("Failed to call object result callback with address"); } /// Set error result by calling an ObjectResultCallback @@ -90,10 +93,9 @@ pub fn set_object_result_error(env: &mut JNIEnv, callback: JObject, er "(Ljava/lang/String;J)V", &[(&err_message).into(), address.into()], ) - .expect("Failed to call object result callback with error"); + .expect("Failed to call object result callback with error"); } - /// Parse a string map from JNI arrays pub fn parse_string_map( env: &mut JNIEnv, @@ -106,7 +108,9 @@ pub fn parse_string_map( let values_len = env.get_array_length(&values)?; if keys_len != values_len { - return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); + return Err(anyhow::anyhow!( + "Keys and values arrays must have the same length" + )); } for i in 0..keys_len { @@ -119,17 +123,17 @@ pub fn parse_string_map( let key_str = env.get_string(&key_jstring)?; let value_str = env.get_string(&value_jstring)?; - map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); + map.insert( + key_str.to_string_lossy().to_string(), + value_str.to_string_lossy().to_string(), + ); } Ok(map) } // Parse a string map from JNI arrays -pub fn parse_string_arr( - env: &mut JNIEnv, - files: JObjectArray, -) -> Result> { +pub fn parse_string_arr(env: &mut JNIEnv, files: JObjectArray) -> Result> { let length = env.get_array_length(&files).unwrap(); let mut rust_strings: Vec = Vec::with_capacity(length as usize); for i in 0..length { @@ -144,11 +148,9 @@ pub fn parse_string_arr( Ok(rust_strings) } -pub fn parse_string( - env: &mut JNIEnv, - file: JString -) -> Result { - let rust_str: String = env.get_string(&file) +pub fn parse_string(env: &mut JNIEnv, file: JString) -> Result { + let rust_str: String = env + .get_string(&file) .expect("Couldn't get java string") .into(); @@ -160,51 +162,62 @@ pub fn throw_exception(env: &mut JNIEnv, message: &str) { let _ = env.throw_new("java/lang/RuntimeException", message); } -pub fn create_file_metadata_from_filenames(base_path: &str, filenames: Vec) -> Result, DataFusionError> { - let mut row_base: i64 =0; - filenames.into_iter().map(|filename| { - let filename = filename.as_str(); - - // Handle both full paths and relative filenames - let full_path = if filename.starts_with('/') || filename.contains(base_path) { - // Already a full path - filename.to_string() - } else { - // Just a filename, needs base_path - format!("{}/{}", base_path.trim_end_matches('/'), filename) - }; - - let file_size = fs::metadata(&full_path).map(|m| m.len()).unwrap_or(0); - let file_result = fs::File::open(&full_path.clone()); - if(file_result.is_err()) { - return Err(DataFusionError::Execution(format!("{} {}", file_result.unwrap_err().to_string(), full_path))) - } - let file = file_result.unwrap(); - let parquet_metadata = ParquetRecordBatchReaderBuilder::try_new(file).unwrap(); - let row_group_row_counts: Vec = parquet_metadata.metadata().row_groups() - .iter() - .map(|row_group| row_group.num_rows()) - .collect(); - - - let modified = fs::metadata(&full_path) - .and_then(|m| m.modified()) - .map(|t| DateTime::::from(t)) - .unwrap_or_else(|_| Utc::now()); - - let file_meta = FileMetadata::new( - row_group_row_counts.clone(), - row_base, - ObjectMeta { - location: ObjectPath::from(full_path), - last_modified: modified, - size: file_size, - e_tag: None, - version: None, +pub fn create_file_metadata_from_filenames( + base_path: &str, + filenames: Vec, +) -> Result, DataFusionError> { + let mut row_base: i64 = 0; + filenames + .into_iter() + .map(|filename| { + let filename = filename.as_str(); + + // Handle both full paths and relative filenames + let full_path = if filename.starts_with('/') || filename.contains(base_path) { + // Already a full path + filename.to_string() + } else { + // Just a filename, needs base_path + format!("{}/{}", base_path.trim_end_matches('/'), filename) + }; + + let file_size = fs::metadata(&full_path).map(|m| m.len()).unwrap_or(0); + let file_result = fs::File::open(&full_path.clone()); + if (file_result.is_err()) { + return Err(DataFusionError::Execution(format!( + "{} {}", + file_result.unwrap_err().to_string(), + full_path + ))); } - ); - //TODO: ensure ordering of files - row_base += row_group_row_counts.iter().sum::(); - Ok(file_meta) - }).collect() + let file = file_result.unwrap(); + let parquet_metadata = ParquetRecordBatchReaderBuilder::try_new(file).unwrap(); + let row_group_row_counts: Vec = parquet_metadata + .metadata() + .row_groups() + .iter() + .map(|row_group| row_group.num_rows()) + .collect(); + + let modified = fs::metadata(&full_path) + .and_then(|m| m.modified()) + .map(|t| DateTime::::from(t)) + .unwrap_or_else(|_| Utc::now()); + + let file_meta = FileMetadata::new( + row_group_row_counts.clone(), + row_base, + ObjectMeta { + location: ObjectPath::from(full_path), + last_modified: modified, + size: file_size, + e_tag: None, + version: None, + }, + ); + //TODO: ensure ordering of files + row_base += row_group_row_counts.iter().sum::(); + Ok(file_meta) + }) + .collect() } From 7b3234d37e523ed1686168917915fad6049cee78 Mon Sep 17 00:00:00 2001 From: rayshrey <121871912+rayshrey@users.noreply.github.com> Date: Fri, 14 Nov 2025 22:14:16 +0530 Subject: [PATCH 083/112] Add support for deletion of stale files (#19998) * Add support for deletion of stale parquet files via IndexFileDeleter * Fix faulty deletions(due to race conditions) and add tests * Additional review changes * Fix DataFusionReaderManagerTests failures due to changes in CatalogSnapshot --- .../engine/ParquetExecutionEngine.java | 20 ++ .../DataFusionReaderManagerTests.java | 42 +++- .../engine/exec/IndexingExecutionEngine.java | 4 + .../CompositeIndexingExecutionEngine.java | 10 + .../engine/exec/coord/CatalogSnapshot.java | 30 ++- .../engine/exec/coord/CompositeEngine.java | 40 +++- .../engine/exec/coord/IndexFileDeleter.java | 134 +++++++++++ .../engine/exec/lucene/LuceneIEEngine.java | 7 + .../index/engine/exec/text/TextEngine.java | 6 + .../exec/coord/IndexFileDeleterTests.java | 211 ++++++++++++++++++ 10 files changed, 484 insertions(+), 20 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java create mode 100644 server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 229337add7293..77416a7774a96 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -26,8 +26,11 @@ import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.function.Supplier; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -101,6 +104,23 @@ public void loadWriterFiles() throws IOException { } } + @Override + public void deleteFiles(Map> filesToDelete) throws IOException { + if (filesToDelete.get(PARQUET_DATA_FORMAT.name()) != null) { + Collection parquetFilesToDelete = filesToDelete.get(PARQUET_DATA_FORMAT.name()); + for (String fileName : parquetFilesToDelete) { + Path filePath = Paths.get(fileName); + logger.info("Deleting file [ParquetExecutionEngine]: {}", filePath); + try { + Files.delete(filePath); + } catch (Exception e) { + logger.error("Failed to delete file [ParquetExecutionEngine]: {}", filePath, e); + throw new RuntimeException(e); + } + } + } + } + @Override public List supportedFieldTypes() { return List.of(); diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index 713aa2f8019c5..d3b2d01e6bc34 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -9,6 +9,7 @@ import java.nio.file.Path; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Supplier; import org.apache.arrow.memory.RootAllocator; import org.apache.arrow.vector.FieldVector; @@ -26,6 +27,7 @@ import org.opensearch.env.Environment; import org.opensearch.index.engine.exec.*; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.IndexFileDeleter; import org.opensearch.index.shard.ShardPath; import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.test.OpenSearchTestCase; @@ -35,6 +37,7 @@ public class DataFusionReaderManagerTests extends OpenSearchTestCase { private DataFusionService service; + Supplier noOpFileDeleterSupplier; @Mock private Environment mockEnvironment; @@ -44,6 +47,13 @@ public void setup() { MockitoAnnotations.openMocks(this); service = new DataFusionService(Collections.emptyMap()); service.doStart(); + noOpFileDeleterSupplier = () -> { + try { + return new NoOpIndexFileDeleter(); + } catch (IOException e) { + throw new RuntimeException(e); + } + }; } // ========== Test Cases ========== @@ -60,7 +70,7 @@ public void testInitialReaderCreation() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -88,7 +98,7 @@ public void testMultipleSearchersShareSameReader() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -117,7 +127,7 @@ public void testReaderSurvivesPartialSearcherClose() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -146,7 +156,7 @@ public void testRefreshCreatesNewReader() throws IOException { addFilesToShardPath(shardPath, "parquet_file_generation_0.parquet"); writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionReader reader1 = searcher1.getReader(); @@ -159,7 +169,7 @@ public void testRefreshCreatesNewReader() throws IOException { writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); DatafusionReader reader2 = searcher2.getReader(); @@ -189,7 +199,7 @@ public void testDecRefAfterCloseThrowsException() throws IOException { WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -225,7 +235,7 @@ public void testReaderClosesAfterSearchRelease() throws IOException { List writerFiles = List.of(writerFileSet); refreshResult.add(getMockDataFormat(), writerFiles); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); // DatafusionReader readerR1 = readerManager.acquire(); DatafusionSearcher datafusionSearcherS1 = engine.acquireSearcher("Search"); @@ -248,7 +258,7 @@ public void testReaderClosesAfterSearchRelease() throws IOException { List writerFiles2 = List.of(writerFileSet2); refreshResultR2.add(getMockDataFormat(), writerFiles2); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResultR2, 2)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResultR2, 2, null, noOpFileDeleterSupplier)); // now check if new Reader is created with F2, F3 // DatafusionReader readerR2 = readerManager.acquire(); @@ -290,7 +300,7 @@ public void testSearch() throws IOException { WriterFileSet writerFileSet1 = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1, null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("search"); DatafusionReader reader1 = searcher1.getReader(); @@ -318,7 +328,7 @@ public void testSearch() throws IOException { WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2)); + readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2, null, noOpFileDeleterSupplier)); expectedResults = new HashMap<>(); expectedResults.put("min", 4L); @@ -448,6 +458,18 @@ private byte[] readSubstraitPlanFromResources(String fileName) throws IOExceptio return is.readAllBytes(); } } + + private static class NoOpIndexFileDeleter extends IndexFileDeleter { + public NoOpIndexFileDeleter() throws IOException { + super(null, null, null); + } + + @Override + public synchronized void addFileReferences(CatalogSnapshot snapshot) {} + + @Override + public synchronized void removeFileReferences(CatalogSnapshot snapshot) {} + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java index f4bab56f1cd68..6d6b6fe27d720 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/IndexingExecutionEngine.java @@ -12,7 +12,9 @@ import java.io.Closeable; import java.io.IOException; +import java.util.Collection; import java.util.List; +import java.util.Map; public interface IndexingExecutionEngine extends Closeable { @@ -32,4 +34,6 @@ Writer> createWriter(long writerGeneration) default long getNativeBytesUsed() { return 0; } + + void deleteFiles(Map> filesToDelete) throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 4c25318c6f1f0..e8c2d6c74621a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -30,6 +30,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -85,6 +86,15 @@ public void loadWriterFiles() throws IOException { } } + @Override + public void deleteFiles(Map> filesToDelete) throws IOException { + for (IndexingExecutionEngine delegate : delegates) { + Map> formatSpecificFilesToDelete = new HashMap<>(); + formatSpecificFilesToDelete.put(delegate.getDataFormat().name(),filesToDelete.get(delegate.getDataFormat().name())); + delegate.deleteFiles(formatSpecificFilesToDelete); + } + } + @Override public Writer createWriter(long generation) throws IOException { throw new UnsupportedOperationException(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index baf3f540b53ab..2a0afa4ed3a34 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.function.Supplier; @ExperimentalApi public class CatalogSnapshot extends AbstractRefCounted implements Writeable { @@ -38,9 +40,11 @@ public class CatalogSnapshot extends AbstractRefCounted implements Writeable { private final long id; private long lastWriterGeneration; private final Map> dfGroupedSearchableFiles; + private Supplier indexFileDeleterSupplier; + private Map catalogSnapshotMap; - public CatalogSnapshot(RefreshResult refreshResult, long id) { - super("catalog_snapshot"); + public CatalogSnapshot(RefreshResult refreshResult, long id, Map catalogSnapshotMap, Supplier indexFileDeleterSupplier) { + super("catalog_snapshot_" + id); this.id = id; this.dfGroupedSearchableFiles = new HashMap<>(); this.lastWriterGeneration = -1; @@ -48,6 +52,10 @@ public CatalogSnapshot(RefreshResult refreshResult, long id) { dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles); writerFiles.stream().mapToLong(WriterFileSet::getWriterGeneration).max().ifPresent(value -> this.lastWriterGeneration = value); }); + this.catalogSnapshotMap = catalogSnapshotMap; + this.indexFileDeleterSupplier = indexFileDeleterSupplier; + // Whenever a new CatalogSnapshot is created add its files to the IndexFileDeleter + indexFileDeleterSupplier.get().addFileReferences(this); } private CatalogSnapshot(long id, Map> dfGroupedSearchableFiles) { @@ -135,7 +143,10 @@ public Collection getSegments() { @Override protected void closeInternal() { - // notify to file deleter, search, etc + // Notify to FileDeleter to remove references of files referenced in this CatalogSnapshot + indexFileDeleterSupplier.get().removeFileReferences(this); + // Remove entry from catalogSnapshotMap + catalogSnapshotMap.remove(this.id); } public long getId() { @@ -146,6 +157,19 @@ public long getLastWriterGeneration() { return lastWriterGeneration; } + public Set getDataFormats() { + return dfGroupedSearchableFiles.keySet(); + } + + // used only when catalog snapshot is created from last commited segment and hence the object is not initialized with the deleter and map + public void setIndexFileDeleterSupplier(Supplier supplier) { + this.indexFileDeleterSupplier = supplier; + } + + public void setCatalogSnapshotMap(Map catalogSnapshotMap) { + this.catalogSnapshotMap = catalogSnapshotMap; + } + @Override public String toString() { return "CatalogSnapshot{" + "id=" + id + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index c283c094734b0..6927cef28e8a7 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -87,10 +87,12 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -185,6 +187,8 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec private final AtomicBoolean trackTranslogLocation = new AtomicBoolean(false); private final KeyedLock noOpKeyedLock = new KeyedLock<>(); private final IndexingStrategyPlanner indexingStrategyPlanner; + private final AtomicReference indexFileDeleter; + private final Map catalogSnapshotMap; public CompositeEngine( EngineConfig engineConfig, @@ -200,6 +204,8 @@ public CompositeEngine( this.store = engineConfig.getStore(); Committer committerRef = null; TranslogManager translogManagerRef = null; + indexFileDeleter = new AtomicReference<>(null); + catalogSnapshotMap = new HashMap<>(); try { this.engineConfig = engineConfig; this.store.incRef(); @@ -249,8 +255,12 @@ public void onFailure(String reason, Exception ex) { final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { this.catalogSnapshot = lastCommittedCatalogSnapshot; + // Since the catalog snapshot is created from last commit, deleter and map are not available, so we explicitly set them + catalogSnapshot.setIndexFileDeleterSupplier(indexFileDeleter::get); + catalogSnapshot.setCatalogSnapshotMap(catalogSnapshotMap); this.catalogSnapshot.remapPaths(shardPath.getDataPath()); lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); + catalogSnapshotMap.put(catalogSnapshot.getId(), catalogSnapshot); }); // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used this.engine = new CompositeIndexingExecutionEngine( @@ -259,6 +269,9 @@ public void onFailure(String reason, Exception ex) { shardPath, lastCommittedWriterGeneration.incrementAndGet() ); + //Initialize IndexFileDeleter before loadWriterFiles to ensure stale files are cleaned up before loading + indexFileDeleter.set(new IndexFileDeleter(this.engine, catalogSnapshot, shardPath)); + System.out.println("IndexFile Deleter after initialising : " + indexFileDeleter); this.engine.loadWriterFiles(); this.maxSeqNoOfUpdatesOrDeletes = @@ -684,13 +697,12 @@ public synchronized void refresh(String source, Map re return; } } - newCatSnap = new CatalogSnapshot(refreshResult, id + 1L); + newCatSnap = new CatalogSnapshot(refreshResult, id + 1L, catalogSnapshotMap, indexFileDeleter::get); + catalogSnapshotMap.put(newCatSnap.getId(), newCatSnap); System.out.println("CATALOG SNAPSHOT: " + newCatSnap); } catch (IOException ex) { throw new RuntimeException(ex); } - - newCatSnap.incRef(); if (catalogSnapshot != null) { catalogSnapshot.decRef(); } @@ -701,6 +713,8 @@ public synchronized void refresh(String source, Map re )); refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); + System.out.println("IndexFile Deleter after REFRESH : " + indexFileDeleter); + // trigger merges if(!source.equals("merge")) { triggerPossibleMerges(); @@ -751,11 +765,12 @@ public void triggerPossibleMerges() { // this now becomes equivalent of the reader // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers public ReleasableRef acquireSnapshot() { - catalogSnapshot.incRef(); // this should be package-private - return new ReleasableRef(catalogSnapshot) { + final CatalogSnapshot snapshot = catalogSnapshot; + snapshot.incRef(); + return new ReleasableRef<>(snapshot) { @Override - public void close() throws Exception { - catalogSnapshot.decRef(); // this should be package-private + public void close() { + snapshot.decRef(); } }; } @@ -860,7 +875,12 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { translogManager.rollTranslogGeneration(); logger.trace("starting commit for flush; commitTranslog=true"); final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshot; + final Optional previousCatalogSnapshot = compositeEngineCommitter.readLastCommittedCatalogSnapshot(); + long previousCatalogSnapshotId = previousCatalogSnapshot.map(CatalogSnapshot::getId).orElse(-1L); if (catalogSnapshotToFlush != null) { + System.out.println("FLUSH called, current snapshot to commit : " + catalogSnapshotToFlush.getId() + ", previous commited snapshot : " + previousCatalogSnapshotId); + // Increment refCount of catalogSnapshotToFlush to prevent deletion of files that will be in the latest commit + catalogSnapshotToFlush.incRef(); final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); @@ -877,6 +897,12 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { return commitData.entrySet().iterator(); }, catalogSnapshotToFlush ); + // Once commit is successful, decRef the CatalogSnapshot of the older commit + if (previousCatalogSnapshotId != -1) { + CatalogSnapshot prevCatSnap = catalogSnapshotMap.get(previousCatalogSnapshotId); + if (prevCatSnap != null) + prevCatSnap.decRef(); + } logger.trace("finished commit for flush"); translogManager.trimUnreferencedReaders(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java new file mode 100644 index 0000000000000..34422d56f3e44 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java @@ -0,0 +1,134 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.common.annotation.ExperimentalApi; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.shard.ShardPath; + +import java.io.IOException; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +@ExperimentalApi +public class IndexFileDeleter { + + private final Map> fileRefCounts = new ConcurrentHashMap<>(); + private final CompositeIndexingExecutionEngine engine; + + public IndexFileDeleter(CompositeIndexingExecutionEngine engine, CatalogSnapshot initialCatalogSnapshot, ShardPath shardPath) throws IOException { + this.engine = engine; + if (initialCatalogSnapshot != null) { + addFileReferences(initialCatalogSnapshot); + deleteUnreferencedFiles(shardPath); + } + } + + public synchronized void addFileReferences(CatalogSnapshot snapshot) { + Map> dfSegregatedFiles = segregateFilesByFormat(snapshot); + for (Map.Entry> entry : dfSegregatedFiles.entrySet()) { + String dataFormat = entry.getKey(); + Map dfFileRefCounts = fileRefCounts.computeIfAbsent(dataFormat, k -> new HashMap<>()); + Collection files = entry.getValue(); + for (String file : files) { + dfFileRefCounts.computeIfAbsent(file, k -> new AtomicInteger(0)).incrementAndGet(); + } + } + } + + public synchronized void removeFileReferences(CatalogSnapshot snapshot) { + Map> dfSegregatedFiles = segregateFilesByFormat(snapshot); + Map> dfFilesToDelete = new HashMap<>(); + + for (Map.Entry> entry : dfSegregatedFiles.entrySet()) { + String dataFormat = entry.getKey(); + Collection filesToDelete = new HashSet<>(); + Map dfFileRefCounts = fileRefCounts.get(dataFormat); + if (dfFileRefCounts != null) { + Collection files = entry.getValue(); + for (String file : files) { + AtomicInteger refCount = dfFileRefCounts.get(file); + if (refCount != null && refCount.decrementAndGet() == 0) { + dfFileRefCounts.remove(file); + filesToDelete.add(file); + } + } + } + dfFilesToDelete.put(dataFormat, filesToDelete); + } + + if (!dfFilesToDelete.isEmpty()) { + System.out.println("Files to delete : " + dfFilesToDelete); + deleteUnreferencedFiles(dfFilesToDelete); + } + System.out.println("IndexFileDeleter after removeFileReferences: " + this.toString()); + } + + private Map> segregateFilesByFormat(CatalogSnapshot snapshot) { + Map> dfSegregatedFiles = new HashMap<>(); + Set dataFormats = snapshot.getDataFormats(); + for (String dataFormat : dataFormats) { + Collection dfFiles = new HashSet<>(); + Collection fileSets = snapshot.getSearchableFiles(dataFormat); + for (WriterFileSet fileSet : fileSets) { + for (String file : fileSet.getFiles()) { + dfFiles.add(fileSet.getDirectory() + "/" + file); + } + } + dfSegregatedFiles.put(dataFormat, dfFiles); + } + return dfSegregatedFiles; + } + + private void deleteUnreferencedFiles(ShardPath shardPath) throws IOException { + if (fileRefCounts.isEmpty()) + return; + Map> dfFilesToDelete = new HashMap<>(); + for (Map.Entry> entry : fileRefCounts.entrySet()) { + String dataFormat = entry.getKey(); + Collection referencedFiles = entry.getValue().keySet(); + Collection filesToDelete = new HashSet<>(); + // TODO - Currently hardcoding to get all parquet files in data path. Fix this + try (DirectoryStream stream = Files.newDirectoryStream(shardPath.getDataPath(), "*.parquet")) { + StreamSupport.stream(stream.spliterator(), false) + .map(Path::toString) + .filter((file) -> (!referencedFiles.contains(file))) + .forEach(filesToDelete::add); + } + filesToDelete = filesToDelete.stream().map(file -> shardPath.getDataPath().resolve(file).toString()).collect(Collectors.toSet()); + dfFilesToDelete.put(dataFormat, filesToDelete); + } + deleteUnreferencedFiles(dfFilesToDelete); + } + + private void deleteUnreferencedFiles(Map> dfFilesToDelete) { + try { + engine.deleteFiles(dfFilesToDelete); + } catch (Exception e) { + System.err.println("Failed to delete unreferenced files: " + dfFilesToDelete + ", error: " + e.getMessage()); + } + } + + @Override + public String toString() { + return "IndexFileDeleter{fileRefCounts=" + fileRefCounts + "}"; + } + + // Used only for testing + public Map> getFileRefCounts() { + return Map.copyOf(fileRefCounts); + } +} \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java index 85423385cbeb7..d5ad0c972457c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/lucene/LuceneIEEngine.java @@ -28,7 +28,9 @@ import org.opensearch.index.shard.ShardPath; import java.io.IOException; +import java.util.Collection; import java.util.List; +import java.util.Map; public class LuceneIEEngine implements IndexingExecutionEngine { @@ -53,6 +55,11 @@ public void loadWriterFiles() { } + @Override + public void deleteFiles(Map> filesToDelete) throws IOException { + + } + @Override public Merger getMerger() { throw new UnsupportedOperationException(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index e1f1d8ed39671..3a432a5510b97 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -32,6 +32,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; @@ -67,6 +68,11 @@ public void loadWriterFiles() { } + @Override + public void deleteFiles(Map> filesToDelete) throws IOException { + + } + @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { openFiles.addAll(refreshInput.getWriterFiles()); diff --git a/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java new file mode 100644 index 0000000000000..19acbb95f310d --- /dev/null +++ b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java @@ -0,0 +1,211 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.core.index.Index; +import org.opensearch.core.index.shard.ShardId; +import org.opensearch.index.shard.ShardPath; +import org.opensearch.test.OpenSearchTestCase; +import org.junit.Before; + +import java.io.Closeable; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.atomic.AtomicLong; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.when; + +public class IndexFileDeleterTests extends OpenSearchTestCase { + + private IndexFileDeleter indexFileDeleter; + private CompositeIndexingExecutionEngine mockEngine; + private ShardPath shardPath; + private CatalogSnapshot catalogSnapshot; + private Map catalogSnapshotMap; + private AtomicLong catalogSnapshotId; + private AtomicLong lastCommittedSnapshotId; + private Set deletedFiles; + + @Before + public void setUp() throws Exception { + super.setUp(); + Path tempDir = createTempDir(); + ShardId shardId = new ShardId(new Index("test", "test-uuid"), 0); + Path shardDir = tempDir.resolve("test-uuid").resolve("0"); + shardPath = new ShardPath(false, shardDir, shardDir, shardId); + + mockEngine = mock(CompositeIndexingExecutionEngine.class); + catalogSnapshotId = new AtomicLong(0); + lastCommittedSnapshotId = new AtomicLong(0); + catalogSnapshotMap = new HashMap<>(); + deletedFiles = new HashSet<>(); + + + // Mock engine deleteFiles to track deleted files + doAnswer(invocation -> { + Map> filesToDelete = invocation.getArgument(0); + filesToDelete.values().forEach(deletedFiles::addAll); + return null; + }).when(mockEngine).deleteFiles(any()); + + catalogSnapshot = null; + indexFileDeleter = new IndexFileDeleter(mockEngine, null, shardPath); + } + + public void testMultipleDataFormats() { + Map> files = Map.of( + "parquet", createWriterFileSet("dir1", "file1.parquet"), + "lucene", createWriterFileSet("dir2", "file1.lucene") + ); + + simulateRefresh(files); + + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").size()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("lucene").size()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet").get()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("lucene").get("dir2/file1.lucene").get()); + } + + public void testRefreshCreatesNewSnapshotAndAddsReferences() { + // Simulate refresh creating new snapshot + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet"))); + + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").size()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet").get()); + } + + public void testMultipleSnapshotsWithOverlappingFiles() { + // First refresh + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet", "file2.parquet"))); + + // Second refresh with overlapping files + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file2.parquet", "file3.parquet"))); + + // After first refresh refCounts: file1(1), file2 (1) + // After second refresh refcounts: file1(0, delete should be called), file2(1), file3(1) + assertNull(indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet")); + assertTrue(deletedFiles.contains("dir1/file1.parquet")); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file2.parquet").get()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file3.parquet").get()); + } + + public void testFileDeletionDuringSearch() throws IOException { + // First refresh + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet", "file2.parquet"))); + + Closeable searchContext = startSearch(); + + // Second refresh with overlapping files + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file2.parquet", "file3.parquet"))); + + // since we have a active search request, files from previous snapshot won't be deleted + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet").get()); + assertEquals(2, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file2.parquet").get()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file3.parquet").get()); + + searchContext.close(); + + // After search is closed, files from previous snapshot should be deleted + assertNull(indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet")); + assertTrue(deletedFiles.contains("dir1/file1.parquet")); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file2.parquet").get()); + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file3.parquet").get()); + } + + public void testDeletionsWthFlush() { + // Refresh and then flush + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet", "file2.parquet"))); + simulateFlush(); + + // Refresh again + simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file2.parquet", "file3.parquet"))); + + // Since file1 is part of last commited data(flushed) it will not be deleted even if it is not part of current snapshot + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet").get()); + assertFalse(deletedFiles.contains("dir1/file1.parquet")); + + simulateFlush(); + // After flush, file1 should be deleted since it is now no more part of last commited data and neither current snapshot as well + assertNull(indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet")); + assertTrue(deletedFiles.contains("dir1/file1.parquet")); + } + + + private void simulateRefresh(Map> files) { + // Create RefreshResult + RefreshResult refreshResult = mock(RefreshResult.class); + Map> refreshedFiles = new HashMap<>(); + + files.forEach((formatName, fileSets) -> { + DataFormat dataFormat = mock(DataFormat.class); + when(dataFormat.name()).thenReturn(formatName); + refreshedFiles.put(dataFormat, fileSets); + }); + + when(refreshResult.getRefreshedFiles()).thenReturn(refreshedFiles); + + CatalogSnapshot prevSnap = catalogSnapshot; + + // Create new snapshot + long id = catalogSnapshotId.incrementAndGet(); + catalogSnapshot = new CatalogSnapshot(refreshResult, id, catalogSnapshotMap, () -> indexFileDeleter); + catalogSnapshotMap.put(id, catalogSnapshot); + + // Release previous snapshot if exists + if (prevSnap != null) { + prevSnap.decRef(); + } + } + + private void simulateFlush() { + CatalogSnapshot prevCommitedSnapshot = null; + if (lastCommittedSnapshotId.get() != 0L) { + prevCommitedSnapshot = catalogSnapshotMap.get(lastCommittedSnapshotId.get()); + } + //flushing increases the refCount of current snapshot and decreases the refCount of previously flushed snapshot + catalogSnapshot.incRef(); + lastCommittedSnapshotId.set(catalogSnapshotId.get()); + if (prevCommitedSnapshot != null) { + prevCommitedSnapshot.decRef(); + } + } + + private Closeable startSearch() { + // simulating search behaviour - acquiring snapshot and returning a closeable to release it + CatalogSnapshot currentSearchSnapshot = catalogSnapshot; + currentSearchSnapshot.incRef(); + return currentSearchSnapshot::decRef; + } + + private List createWriterFileSet(String directory, String... files) { + WriterFileSet.Builder builder = WriterFileSet.builder() + .directory(Path.of(directory)) + .writerGeneration(1L); + + for (String file : files) { + builder.addFile(file); + } + + return Collections.singletonList(builder.build()); + } +} \ No newline at end of file From f439f7ac2bc2fcf2558a4655fc2e9f6ed06c3484 Mon Sep 17 00:00:00 2001 From: Bukhtawar Khan Date: Mon, 17 Nov 2025 12:18:17 +0530 Subject: [PATCH 084/112] Restructure native handling and integrate with the Cleaner interface (#20013) * Restructure native handling and integrate with the Cleaner interface * Remove async package in favor of tokio enhancements * Refactor Native Handle to support cleaner and move to commmons * Fixup Native Handle * Fixup Native Handle * Introduce RefCounted Native Handle --- .../execution/jni/NativeHandle.java | 94 ++++++++++ .../execution/jni/NativeLoaderException.java | 34 ++++ .../execution/jni/PlatformHelper.java | 112 ++++++++++++ .../execution/jni/RefCountedNativeHandle.java | 57 ++++++ .../execution/jni/NativeHandleTests.java | 84 +++++++++ .../execution/jni/PlatformHelperTests.java | 60 +++++++ .../jni/RefCountedNativeHandleTests.java | 91 ++++++++++ .../bridge/NativeLibraryLoader.java | 97 +++++++++++ .../parquetdataformat/bridge/RustBridge.java | 60 +------ plugins/engine-datafusion/jni/src/lib.rs | 162 ++++++++---------- .../datafusion/DataFusionQueryJNI.java | 161 ----------------- .../datafusion/DataFusionService.java | 3 +- .../datafusion/ObjectResultCallback.java | 2 +- .../datafusion/RecordBatchStream.java | 14 +- .../datafusion/core/GlobalRuntimeEnv.java | 30 ++-- .../datafusion/core/SessionContext.java | 42 ----- .../datafusion/jni/NativeBridge.java | 50 ++++++ .../datafusion/jni/NativeLibraryLoader.java | 97 +++++++++++ .../datafusion/jni/handle/ReaderHandle.java | 27 +++ .../datafusion/jni/handle/RuntimeHandle.java | 30 ++++ .../datafusion/jni/handle/SessionHandle.java | 35 ++++ .../datafusion/jni/handle/StreamHandle.java | 27 +++ .../datafusion/jni/package-info.java | 20 +++ .../datafusion/search/DatafusionReader.java | 23 +-- .../datafusion/search/DatafusionSearcher.java | 11 +- .../DataFusionReaderManagerTests.java | 18 +- 26 files changed, 1037 insertions(+), 404 deletions(-) create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeLoaderException.java create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java create mode 100644 libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java create mode 100644 libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/NativeHandleTests.java create mode 100644 libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/PlatformHelperTests.java create mode 100644 libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandleTests.java create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeLibraryLoader.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/package-info.java diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java new file mode 100644 index 0000000000000..b641cc4a526d1 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java @@ -0,0 +1,94 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import java.lang.ref.Cleaner; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * Base class for type-safe native pointer wrappers. + * Provides automatic resource management and prevents use-after-close errors. + * Subclasses must implement {@link #doClose()} to release native resources. + * Cleaner is used to ensure resources are cleaned up even if the object is not explicitly closed. + */ +public abstract class NativeHandle implements AutoCloseable { + + protected final long ptr; + private final AtomicBoolean closed = new AtomicBoolean(false); + protected static final long NULL_POINTER = 0L; + private final Cleaner.Cleanable cleanable; + + private static final Cleaner CLEANER = Cleaner.create(); + + /** + * Creates a new native handle. + * @param ptr the native pointer (must not be 0) + * @throws IllegalArgumentException if ptr is 0 + */ + protected NativeHandle(long ptr) { + if (ptr == NULL_POINTER) { + throw new IllegalArgumentException("Null native pointer"); + } + this.ptr = ptr; + this.cleanable = CLEANER.register(this, new CleanupAction(ptr, this::doClose)); + } + + /** + * Ensures the handle is still open. + * @throws IllegalStateException if the handle has been closed + */ + protected void ensureOpen() { + if (closed.get()) { + throw new IllegalStateException("Handle already closed"); + } + } + + /** + * Gets the native pointer value. + * @return the native pointer + * @throws IllegalStateException if the handle has been closed + */ + public long getPointer() { + ensureOpen(); + return ptr; + } + + @Override + public void close() { + if (closed.compareAndSet(false, true)) { + cleanable.clean(); + } + } + + /** + * Releases the native resource. + * Called once when the handle is closed. + * Subclasses must implement this to free native memory. + */ + protected abstract void doClose(); + + /** + * Cleans up the native resource. + * Called by the cleaner when the handle is garbage collected. + */ + private static final class CleanupAction implements Runnable { + private final long ptr; + private final Runnable doClose; + + CleanupAction(long ptr, Runnable doClose) { + this.ptr = ptr; + this.doClose = doClose; + } + + @Override + public void run() { + doClose.run(); + } + } +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeLoaderException.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeLoaderException.java new file mode 100644 index 0000000000000..bf06be8eefcf2 --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeLoaderException.java @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +/** + * Exception thrown when native library operations fail. + * This includes errors during library loading, native method invocation, + * or resource management failures. + */ +public class NativeLoaderException extends RuntimeException { + + /** + * Constructs a new native exception with the specified detail message. + * @param message the detail message + */ + public NativeLoaderException(String message) { + super(message); + } + + /** + * Constructs a new native exception with the specified detail message and cause. + * @param message the detail message + * @param cause the cause of this exception + */ + public NativeLoaderException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java new file mode 100644 index 0000000000000..6a8aab8b11e1f --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java @@ -0,0 +1,112 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import java.util.Locale; + +/** + * Utility class for platform-specific operations and native library handling. + * Provides methods to detect operating system, architecture, and generate + * platform-specific library names and paths. + */ +public class PlatformHelper { + + private static final String OS_NAME = System.getProperty("os.name").toLowerCase(Locale.ROOT); + private static final String OS_ARCH = System.getProperty("os.arch").toLowerCase(Locale.ROOT); + + + /** + * Gets the platform-specific library name with proper prefix and extension. + * @param baseName the base library name without prefix/extension + * @return platform-specific library name (e.g., "libfoo.so" on Linux) + */ + public static String getPlatformLibraryName(String baseName) { + if (isWindows()) { + return baseName + ".dll"; + } else if (isMac()) { + return "lib" + baseName + ".dylib"; + } else { + return "lib" + baseName + ".so"; + } + } + + /** + * Gets the platform directory name in format "os-arch". + * @return platform directory name (e.g., "linux-x64") + */ + public static String getPlatformDirectory() { + String os = getOSName(); + String arch = getArchName(); + return os + "-" + arch; + } + + /** + * Gets the normalized operating system name. + * @return OS name ("windows", "macos", "linux", or "unknown") + */ + public static String getOSName() { + if (isWindows()) return "windows"; + if (isMac()) return "macos"; + if (isLinux()) return "linux"; + return "unknown"; + } + + /** + * Checks if the current platform is Windows. + * @return true if Windows, false otherwise + */ + public static boolean isWindows() { + return OS_NAME.contains("win"); + } + + /** + * Checks if the current platform is macOS. + * @return true if macOS, false otherwise + */ + public static boolean isMac() { + return OS_NAME.contains("mac") || OS_NAME.contains("darwin"); + } + + /** + * Checks if the current platform is Linux. + * @return true if Linux, false otherwise + */ + public static boolean isLinux() { + return OS_NAME.contains("linux"); + } + + /** + * Gets the normalized architecture name. + * @return architecture name ("x64", "x86", "arm64", or raw arch string) + */ + public static String getArchName() { + if (OS_ARCH.contains("amd64") || OS_ARCH.contains("x86_64")) { + return "x64"; + } else if (OS_ARCH.contains("x86")) { + return "x86"; + } else if (OS_ARCH.contains("aarch64") || OS_ARCH.contains("arm64")) { + return "arm64"; + } + return OS_ARCH; + } + + /** + * Gets the native library file extension for the current platform. + * @return file extension (".dll", ".dylib", or ".so") + */ + public static String getNativeExtension() { + if (isWindows()) { + return ".dll"; + } else if (isMac()) { + return ".dylib"; + } else { + return ".so"; + } + } +} diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java new file mode 100644 index 0000000000000..1a3e2bbefad4e --- /dev/null +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java @@ -0,0 +1,57 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Reference-counted native handle for shared native resources. + * Allows multiple owners to safely share a native pointer. + * The native resource is released only when the reference count reaches zero. + */ +public abstract class RefCountedNativeHandle extends NativeHandle { + + private final AtomicInteger refCount = new AtomicInteger(1); + + /** + * Creates a new reference-counted handle with initial reference count of 1. + * @param ptr the native pointer (must not be 0) + * @throws IllegalArgumentException if ptr is 0 + */ + protected RefCountedNativeHandle(long ptr) { + super(ptr); + } + + /** + * Increments the reference count. + * @throws IllegalStateException if the handle has been closed + */ + public void retain() { + ensureOpen(); + refCount.incrementAndGet(); + } + + /** + * Decrements the reference count and closes the handle if it reaches zero. + */ + @Override + public final void close() { + if (refCount.decrementAndGet() == 0) { + super.close(); + } + } + + /** + * Gets the current reference count. + * @return the current reference count + */ + public int getRefCount() { + return refCount.get(); + } +} diff --git a/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/NativeHandleTests.java b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/NativeHandleTests.java new file mode 100644 index 0000000000000..1ecd808b5500a --- /dev/null +++ b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/NativeHandleTests.java @@ -0,0 +1,84 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import org.opensearch.test.OpenSearchTestCase; + +import java.util.concurrent.atomic.AtomicBoolean; + +public class NativeHandleTests extends OpenSearchTestCase { + + private static class TestHandle extends NativeHandle { + private final AtomicBoolean closed; + + TestHandle(long ptr, AtomicBoolean closed) { + super(ptr); + this.closed = closed; + } + + @Override + protected void doClose() { + closed.set(true); + } + } + + public void testConstructorRejectsNullPointer() { + AtomicBoolean closed = new AtomicBoolean(false); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> new TestHandle(0L, closed)); + assertEquals("Null native pointer", e.getMessage()); + } + + public void testGetPointerReturnsValue() { + AtomicBoolean closed = new AtomicBoolean(false); + TestHandle handle = new TestHandle(12345L, closed); + assertEquals(12345L, handle.getPointer()); + } + + public void testCloseCallsDoClose() { + AtomicBoolean closed = new AtomicBoolean(false); + TestHandle handle = new TestHandle(12345L, closed); + assertFalse(closed.get()); + handle.close(); + assertTrue(closed.get()); + } + + public void testMultipleCloseCallsOnlyCloseOnce() { + AtomicBoolean closed = new AtomicBoolean(false); + TestHandle handle = new TestHandle(12345L, closed) { + private int closeCount = 0; + + @Override + protected void doClose() { + closeCount++; + assertEquals(1, closeCount); + super.doClose(); + } + }; + handle.close(); + handle.close(); + handle.close(); + assertTrue(closed.get()); + } + + public void testGetPointerAfterCloseThrows() { + AtomicBoolean closed = new AtomicBoolean(false); + TestHandle handle = new TestHandle(12345L, closed); + handle.close(); + IllegalStateException e = expectThrows(IllegalStateException.class, handle::getPointer); + assertEquals("Handle already closed", e.getMessage()); + } + + public void testEnsureOpenAfterCloseThrows() { + AtomicBoolean closed = new AtomicBoolean(false); + TestHandle handle = new TestHandle(12345L, closed); + handle.close(); + IllegalStateException e = expectThrows(IllegalStateException.class, handle::ensureOpen); + assertEquals("Handle already closed", e.getMessage()); + } +} diff --git a/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/PlatformHelperTests.java b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/PlatformHelperTests.java new file mode 100644 index 0000000000000..7e978999ad61e --- /dev/null +++ b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/PlatformHelperTests.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import org.opensearch.test.OpenSearchTestCase; + +public class PlatformHelperTests extends OpenSearchTestCase { + + public void testGetPlatformLibraryName() { + String libName = PlatformHelper.getPlatformLibraryName("test"); + assertNotNull(libName); + assertTrue(libName.contains("test")); + assertTrue(libName.endsWith(".dll") || libName.endsWith(".dylib") || libName.endsWith(".so")); + } + + public void testGetPlatformDirectory() { + String dir = PlatformHelper.getPlatformDirectory(); + assertNotNull(dir); + assertTrue(dir.contains("-")); + } + + public void testGetOSName() { + String osName = PlatformHelper.getOSName(); + assertNotNull(osName); + assertTrue(osName.equals("windows") || osName.equals("macos") || osName.equals("linux") || osName.equals("unknown")); + } + + public void testPlatformDetection() { + boolean isWindows = PlatformHelper.isWindows(); + boolean isMac = PlatformHelper.isMac(); + boolean isLinux = PlatformHelper.isLinux(); + + int count = (isWindows ? 1 : 0) + (isMac ? 1 : 0) + (isLinux ? 1 : 0); + assertTrue("Exactly one platform should be detected", count <= 1); + } + + public void testGetArchName() { + String arch = PlatformHelper.getArchName(); + assertNotNull(arch); + assertFalse(arch.isEmpty()); + } + + public void testGetNativeExtension() { + String ext = PlatformHelper.getNativeExtension(); + assertNotNull(ext); + assertTrue(ext.equals(".dll") || ext.equals(".dylib") || ext.equals(".so")); + } + + public void testLibraryNameConsistency() { + String libName = PlatformHelper.getPlatformLibraryName("mylib"); + String extension = PlatformHelper.getNativeExtension(); + assertTrue(libName.endsWith(extension)); + } +} diff --git a/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandleTests.java b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandleTests.java new file mode 100644 index 0000000000000..be685430d50ac --- /dev/null +++ b/libs/vectorized-exec-spi/src/test/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandleTests.java @@ -0,0 +1,91 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.vectorized.execution.jni; + +import org.opensearch.test.OpenSearchTestCase; + +import java.util.concurrent.atomic.AtomicBoolean; + +public class RefCountedNativeHandleTests extends OpenSearchTestCase { + + private static class TestRefCountedHandle extends RefCountedNativeHandle { + private final AtomicBoolean closed; + + TestRefCountedHandle(long ptr, AtomicBoolean closed) { + super(ptr); + this.closed = closed; + } + + @Override + protected void doClose() { + closed.set(true); + } + } + + public void testInitialRefCountIsOne() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + assertEquals(1, handle.getRefCount()); + } + + public void testRetainIncrementsRefCount() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + handle.retain(); + assertEquals(2, handle.getRefCount()); + handle.retain(); + assertEquals(3, handle.getRefCount()); + } + + public void testCloseDecrementsRefCount() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + handle.retain(); + handle.retain(); + assertEquals(3, handle.getRefCount()); + handle.close(); + assertEquals(2, handle.getRefCount()); + assertFalse(closed.get()); + } + + public void testCloseReleasesWhenRefCountReachesZero() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + handle.retain(); + assertEquals(2, handle.getRefCount()); + handle.close(); + assertFalse(closed.get()); + handle.close(); + assertTrue(closed.get()); + } + + public void testRetainAfterCloseThrows() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + handle.close(); + IllegalStateException e = expectThrows(IllegalStateException.class, handle::retain); + assertEquals("Handle already closed", e.getMessage()); + } + + public void testMultipleRetainAndClose() { + AtomicBoolean closed = new AtomicBoolean(false); + TestRefCountedHandle handle = new TestRefCountedHandle(12345L, closed); + handle.retain(); + handle.retain(); + handle.retain(); + assertEquals(4, handle.getRefCount()); + handle.close(); + handle.close(); + handle.close(); + assertFalse(closed.get()); + assertEquals(1, handle.getRefCount()); + handle.close(); + assertTrue(closed.get()); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java new file mode 100644 index 0000000000000..d0a76ce0eb6ee --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java @@ -0,0 +1,97 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.bridge; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.jni.NativeLoaderException; +import org.opensearch.vectorized.execution.jni.PlatformHelper; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.Optional; + +/** + * Handles loading of the native JNI library. + * TODO move to common lib once we switch to passing absolute lib paths + */ +public final class NativeLibraryLoader { + + private static volatile boolean loaded = false; + + private static final String DEFAULT_PATH = "native"; + + private static final Logger logger = LogManager.getLogger(NativeLibraryLoader.class); + + NativeLibraryLoader() {} + + /** + * Load the native library by name. + * Supports loading from resources and platform-specific directories. + * + * @throws UnsatisfiedLinkError if the library cannot be loaded + */ + public static synchronized void load(String libraryName) { + if (loaded) return; + try { + System.loadLibrary(libraryName); + loaded = true; + return; + } catch (UnsatisfiedLinkError ignored) { + logger.warn("Failed to load library '" + libraryName + "' from system path"); + } + + //Look-up with default path + try { + loadFromResources(DEFAULT_PATH, libraryName); + return; + } catch (UnsatisfiedLinkError | IOException ignored) { + logger.warn("Failed to load library '" + libraryName + "' from default path"); + } + + // Try platform-specific directory + try { + String platformDir = PlatformHelper.getPlatformDirectory(); + String currentDir = Optional.of(System.getProperty("user.dir")).orElse("/"); + String path = Paths.get(currentDir, "native", platformDir, + PlatformHelper.getPlatformLibraryName(libraryName)).toString(); + loadFromResources(path, libraryName); + } catch (UnsatisfiedLinkError | IOException e) { + throw new NativeLoaderException( + "Failed to load library '" + libraryName + "' from all attempted locations", e); + } + } + + private static void loadFromResources(String providedPath, String libraryName) throws IOException { + String libName = System.mapLibraryName(libraryName); + String resourcePath = Paths.get("/", providedPath, libName).toString(); + try (InputStream is = NativeLibraryLoader.class.getResourceAsStream(resourcePath)) { + if (is == null) { + throw new IOException("Native library not found: " + resourcePath); + } + Path tempFile = Files.createTempFile(libraryName, PlatformHelper.getNativeExtension()); + tempFile.toFile().deleteOnExit(); + Files.copy(is, tempFile, StandardCopyOption.REPLACE_EXISTING); + // Register deletion hook on JVM shutdown + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + Files.deleteIfExists(tempFile); + } catch (IOException ignored) {} + })); + System.load(tempFile.toAbsolutePath().toString()); + loaded = true; + } catch (IOException e) { + throw e; + } + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index b656676eb3af1..52dd390930a10 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -1,16 +1,8 @@ package com.parquet.parquetdataformat.bridge; -import org.opensearch.common.SuppressForbidden; - import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.StandardCopyOption; -import java.util.Collection; import java.util.List; -import java.util.Locale; -import java.util.Set; /** * JNI bridge to the native Rust Parquet writer implementation. @@ -19,13 +11,6 @@ * that handles low-level Parquet file operations. It automatically loads the * appropriate native library for the current platform and architecture. * - *

    Supported platforms: - *

      - *
    • Windows (x86, x86_64, aarch64)
    • - *
    • macOS (x86_64, aarch64/arm64)
    • - *
    • Linux (x86, x86_64, aarch64)
    • - *
    - * *

    The native library is extracted from resources and loaded as a temporary file, * which is automatically cleaned up on JVM shutdown. * @@ -35,50 +20,7 @@ public class RustBridge { static { - try { - loadNativeLibrary(); - } catch (Exception e) { - throw new RuntimeException("Failed to load native Rust library", e); - } - } - - @SuppressForbidden(reason = "Need to create temp files") - private static void loadNativeLibrary() { - - String LIB_NAME = "parquet_dataformat_jni"; - String os = System.getProperty("os.name").toLowerCase(Locale.ROOT); - String arch = System.getProperty("os.arch").toLowerCase(Locale.ROOT); - - String osDir = os.contains("win") ? "windows" : - os.contains("mac") ? "macos" : "linux"; - String archDir = arch.contains("aarch64") || arch.contains("arm64") ? "aarch64" : - arch.contains("64") ? "x86_64" : "x86"; - - String extension = os.contains("win") ? ".dll" : - os.contains("mac") ? ".dylib" : ".so"; - - String resourcePath = String.format(Locale.ROOT, "/native/%s/%s/lib%s%s", osDir, archDir, LIB_NAME, extension); - - try (InputStream is = RustBridge.class.getResourceAsStream(resourcePath)) { - if (is == null) { - throw new UnsatisfiedLinkError("Native library not found in resources: " + resourcePath); - } - - Path tempFile = Files.createTempFile("lib" + LIB_NAME, extension); - - // Register deletion hook on JVM shutdown - Runtime.getRuntime().addShutdownHook(new Thread(() -> { - try { - Files.deleteIfExists(tempFile); - } catch (IOException ignored) {} - })); - - Files.copy(is, tempFile, StandardCopyOption.REPLACE_EXISTING); - - System.load(tempFile.toAbsolutePath().toString()); - } catch (IOException e) { - throw new RuntimeException("Failed to load native library from resources", e); - } + NativeLibraryLoader.load("parquet_dataformat_jni"); } // Enhanced native methods that handle validation and provide better error reporting diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 0790072f8fa48..d0daa7e8faed5 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -71,115 +71,96 @@ use prost::Message; use std::io::Write; use tokio::runtime::Runtime; -/// Create a new DataFusion session context +// NativeBridge JNI implementations + #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createContext( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlobalRuntime( _env: JNIEnv, _class: JClass, ) -> jlong { - let config = SessionConfig::new().with_repartition_aggregations(true); - let context = SessionContext::new_with_config(config); - let ctx = Box::into_raw(Box::new(context)) as jlong; - ctx + match RuntimeEnvBuilder::default().build() { + Ok(runtime_env) => Box::into_raw(Box::new(runtime_env)) as jlong, + Err(_) => 0, + } } -/// Close and cleanup a DataFusion context #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeContext( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createTokioRuntime( _env: JNIEnv, _class: JClass, - context_id: jlong, -) { - let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; -} - -/// Get version information -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVersionInfo( - env: JNIEnv, - _class: JClass, -) -> jstring { - let version_info = format!( - r#"{{"version": "{}", "codecs": ["CsvDataSourceCodec"]}}"#, - DATAFUSION_VERSION - ); - env.new_string(version_info) - .expect("Couldn't create Java string") - .as_raw() +) -> jlong { + match Runtime::new() { + Ok(rt) => Box::into_raw(Box::new(rt)) as jlong, + Err(_) => 0, + } } -/// Get version information (legacy method name) #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_getVersion( - env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeGlobalRuntime( + _env: JNIEnv, _class: JClass, -) -> jstring { - env.new_string(DATAFUSION_VERSION) - .expect("Couldn't create Java string") - .as_raw() + ptr: jlong, +) { + if ptr != 0 { + let _ = unsafe { Box::from_raw(ptr as *mut RuntimeEnv) }; + } } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createTokioRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createSessionContext( _env: JNIEnv, _class: JClass, + runtime_id: jlong, ) -> jlong { - let rt = Runtime::new().unwrap(); - let ctx = Box::into_raw(Box::new(rt)) as jlong; - ctx + if runtime_id == 0 { + return 0; + } + let runtime_env = unsafe { &*(runtime_id as *const RuntimeEnv) }; + let config = SessionConfig::new().with_repartition_aggregations(true); + let context = SessionContext::new_with_config_rt(config, Arc::new(runtime_env.clone())); + Box::into_raw(Box::new(context)) as jlong } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createGlobalRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeSessionContext( _env: JNIEnv, _class: JClass, -) -> jlong { - let runtime_env = RuntimeEnvBuilder::default().build().unwrap(); - /** - // We can copy global runtime to local runtime - file statistics cache, and most of the things - // will be shared across session contexts. But list files cache will be specific to session - // context - - let fsCache = runtimeEnv.clone().cache_manager.get_file_statistic_cache().unwrap(); - let localCacheManagerConfig = CacheManagerConfig::default().with_files_statistics_cache(Option::from(fsCache)); - let localCacheManager = CacheManager::try_new(&localCacheManagerConfig); - let localRuntimeEnv = RuntimeEnvBuilder::new() - .with_cache_manager(localCacheManagerConfig) - .with_disk_manager(DiskManagerConfig::new_existing(runtimeEnv.disk_manager)) - .with_memory_pool(runtimeEnv.memory_pool) - .with_object_store_registry(runtimeEnv.object_store_registry) - .build(); - let config = SessionConfig::new().with_repartition_aggregations(true); - let context = SessionContext::new_with_config(config); - **/ - let ctx = Box::into_raw(Box::new(runtime_env)) as jlong; - ctx + context_id: jlong, +) { + if context_id != 0 { + let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; + } } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createSessionContext( - _env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersionInfo( + env: JNIEnv, _class: JClass, - runtime_id: jlong, -) -> jlong { - let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; - let config = SessionConfig::new().with_repartition_aggregations(true); - let context = SessionContext::new_with_config_rt(config, Arc::new(runtimeEnv.clone())); - let ctx = Box::into_raw(Box::new(context)) as jlong; - ctx +) -> jstring { + let version_info = format!( + r#"{{"version": "{}", "codecs": ["CsvDataSourceCodec"]}}"#, + DATAFUSION_VERSION + ); + env.new_string(version_info) + .expect("Couldn't create Java string") + .as_raw() } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeSessionContext( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_registerCsvDirectory( _env: JNIEnv, _class: JClass, - context_id: jlong, -) { - let _ = unsafe { Box::from_raw(context_id as *mut SessionContext) }; + _context_id: jlong, + _table_name: JString, + _directory_path: JString, + _file_names: JObjectArray, +) -> jni::sys::jint { + // Legacy method - not implemented + 0 } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createDatafusionReader( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createDatafusionReader( mut env: JNIEnv, _class: JClass, table_path: JString, @@ -235,12 +216,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_createD } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeDatafusionReader( - mut env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeDatafusionReader( + _env: JNIEnv, _class: JClass, ptr: jlong, ) { - let _ = unsafe { Box::from_raw(ptr as *mut ShardView) }; + if ptr != 0 { + let _ = unsafe { Box::from_raw(ptr as *mut ShardView) }; + } } pub struct ShardView { @@ -299,7 +282,7 @@ impl FileMetadata { } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeQueryPhase( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQueryPhase( mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, @@ -457,7 +440,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_execute // If we need to create session context separately #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeCreateSessionContext( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_nativeCreateSessionContext( mut env: JNIEnv, _class: JClass, runtime_ptr: jlong, @@ -532,7 +515,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_nativeC } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNext( mut env: JNIEnv, _class: JClass, runtime_ptr: jlong, @@ -574,7 +557,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_next( } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchema( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamGetSchema( mut env: JNIEnv, _class: JClass, stream: jlong, @@ -595,7 +578,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_getSchem } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_executeFetchPhase( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFetchPhase( mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, @@ -905,19 +888,12 @@ async fn create_access_plans( } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_RecordBatchStream_closeStream( - mut env: JNIEnv, - _class: JClass, - stream: jlong, -) { - let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_DataFusionQueryJNI_closeGlobalRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamClose( _env: JNIEnv, _class: JClass, - runtime: jlong, + stream: jlong, ) { - let _ = unsafe { Box::from_raw(runtime as *mut RuntimeEnv) }; + if stream != 0 { + let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java deleted file mode 100644 index 3431760695bf5..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion; - -import org.opensearch.index.engine.exec.FileMetadata; - -import java.util.Collection; - -/** - * JNI wrapper for DataFusion operations - */ -public class DataFusionQueryJNI { - - private static boolean libraryLoaded = false; - - static { - loadNativeLibrary(); - } - - /** - * Private constructor to prevent instantiation of utility class. - */ - private DataFusionQueryJNI() { - // Utility class - } - - /** - * Load the native library from resources - */ - private static synchronized void loadNativeLibrary() { - if (libraryLoaded) { - return; - } - - try { - // Try to load the library directly - System.loadLibrary("opensearch_datafusion_jni"); - libraryLoaded = true; - } catch (UnsatisfiedLinkError e) { - // Try loading from resources - try { - String osName = System.getProperty("os.name").toLowerCase(); - String libExtension = osName.contains("windows") ? ".dll" : (osName.contains("mac") ? ".dylib" : ".so"); - String libName = "libopensearch_datafusion_jni" + libExtension; - - java.io.InputStream is = DataFusionQueryJNI.class.getResourceAsStream("/native/" + libName); - if (is != null) { - java.io.File tempFile = java.io.File.createTempFile("libopensearch_datafusion_jni", libExtension); - tempFile.deleteOnExit(); - - try (java.io.FileOutputStream fos = new java.io.FileOutputStream(tempFile)) { - byte[] buffer = new byte[8192]; - int bytesRead; - while ((bytesRead = is.read(buffer)) != -1) { - fos.write(buffer, 0, bytesRead); - } - } - - System.load(tempFile.getAbsolutePath()); - libraryLoaded = true; - } else { - throw new RuntimeException("Native library not found: " + libName, e); - } - } catch (Exception ex) { - throw new RuntimeException("Failed to load native library", ex); - } - } - } - - /** - * Create a new global runtime environment - * @return runtime env pointer for subsequent operations - */ - public static native long createGlobalRuntime(); - - public static native long createTokioRuntime(); - - /** - * Closes global runtime environment - * @param pointer the runtime environment pointer to close - * @return status code - */ - public static native long closeGlobalRuntime(long pointer); - - /** - * Get version information - * @return JSON string with version information - */ - public static native String getVersionInfo(); - - /** - * Create a new DataFusion session context - * @param runtimeId the global runtime environment ID - * @return context ID for subsequent operations - */ - public static native long createSessionContext(long runtimeId); - - /** - * Close and cleanup a DataFusion context - * @param contextId the context ID to close - */ - public static native void closeSessionContext(long contextId); - - /** - * Execute a Substrait query plan - * @param cachePtr the session context ID - * @param substraitPlan the serialized Substrait query plan - * @return stream pointer for result iteration - */ - public static native long executeQueryPhase(long cachePtr, String tableName, byte[] substraitPlan, long runtimePtr); - - /** - * Execute a Substrait query plan - * @param cachePtr the session context ID - * @param rowIds row ids for which record needs to fetch - * @param runtimePtr runtime pointer - * @return stream pointer for result iteration - */ - - public static native long executeFetchPhase(long cachePtr, long[] rowIds, String[] projections, long runtimePtr); - - public static native long createDatafusionReader(String path, String[] files); - - public static native void closeDatafusionReader(long ptr); - - /** - * Register a directory with CSV files - * @param contextId the session context ID - * @param tableName the table name to register - * @param directoryPath the directory path containing CSV files - * @param fileNames array of file names to register - * @return status code - */ - public static native int registerCsvDirectory(long contextId, String tableName, String directoryPath, String[] fileNames); - - /** - * Check if stream has more data - * @param streamPtr the stream pointer - * @return true if more data available - */ - public static native boolean streamHasNext(long streamPtr); - - /** - * Get next batch from stream - * @param streamPtr the stream pointer - * @return byte array containing the next batch, or null if no more data - */ - public static native byte[] streamNext(long streamPtr); - - /** - * Close and cleanup a result stream - * @param streamPtr the stream pointer to close - */ - public static native void closeStream(long streamPtr); -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 9548ced599723..9eada5a01cff4 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -14,6 +14,7 @@ import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.GlobalRuntimeEnv; +import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -40,7 +41,7 @@ public DataFusionService(Map dataSourceCodecs) { this.dataSourceRegistry = new DataSourceRegistry(dataSourceCodecs); // to verify jni - String version = DataFusionQueryJNI.getVersionInfo(); + String version = NativeBridge.getVersionInfo(); this.globalRuntimeEnv = new GlobalRuntimeEnv(); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java index d6de1fdace339..d53d47b7c2b4d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ObjectResultCallback.java @@ -8,6 +8,6 @@ package org.opensearch.datafusion; -interface ObjectResultCallback { +public interface ObjectResultCallback { void callback(String errMessage, long value); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index ea90468215012..7b64227c00eda 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -17,7 +17,7 @@ import org.apache.arrow.vector.types.pojo.ArrowType; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; -import org.opensearch.datafusion.core.SessionContext; +import org.opensearch.datafusion.jni.NativeBridge; import java.util.concurrent.CompletableFuture; @@ -131,9 +131,15 @@ public void close() throws Exception { } } - private static native void next(long runtime, long pointer, ObjectResultCallback callback); + private static void next(long runtime, long pointer, ObjectResultCallback callback) { + NativeBridge.streamNext(runtime, pointer, callback); + } - private static native void getSchema(long pointer, ObjectResultCallback callback); + private static void getSchema(long pointer, ObjectResultCallback callback) { + NativeBridge.streamGetSchema(pointer, callback); + } - private static native void closeStream(long pointer); + private static void closeStream(long pointer) { + NativeBridge.streamClose(pointer); + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java index 547539d5ff4d1..858fce3d3eee9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java @@ -8,25 +8,25 @@ package org.opensearch.datafusion.core; -import static org.opensearch.datafusion.DataFusionQueryJNI.closeGlobalRuntime; -import static org.opensearch.datafusion.DataFusionQueryJNI.createGlobalRuntime; -import static org.opensearch.datafusion.DataFusionQueryJNI.createTokioRuntime; +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.datafusion.jni.handle.RuntimeHandle; /** * Global runtime environment for DataFusion operations. - * Manages the lifecycle of the native DataFusion runtime. + * Manages the lifecycle of the native DataFusion runtime with automatic cleanup. + * TODO Revisit Tokio runtime */ -public class GlobalRuntimeEnv implements AutoCloseable { - // ptr to runtime environment in df - private final long ptr; - private final long tokio_runtime_ptr; +public final class GlobalRuntimeEnv implements AutoCloseable { + + private final RuntimeHandle runTimeHandle; + private final long tokioRuntimePtr; /** * Creates a new global runtime environment. */ public GlobalRuntimeEnv() { - this.ptr = createGlobalRuntime(); - this.tokio_runtime_ptr = createTokioRuntime(); + this.runTimeHandle = new RuntimeHandle(); + this.tokioRuntimePtr = NativeBridge.createTokioRuntime(); } /** @@ -34,15 +34,19 @@ public GlobalRuntimeEnv() { * @return the native pointer */ public long getPointer() { - return ptr; + return runTimeHandle.getPointer(); } + /** + * Gets the Tokio runtime pointer. + * @return the Tokio runtime pointer + */ public long getTokioRuntimePtr() { - return tokio_runtime_ptr; + return tokioRuntimePtr; } @Override public void close() { - closeGlobalRuntime(this.ptr); + runTimeHandle.close(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java deleted file mode 100644 index 956aa78fdaa30..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/SessionContext.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.core; - -/** - * Session context for datafusion - */ -public class SessionContext implements AutoCloseable { - - // ptr to context in df - private final long ptr; - - /** - * Create a new DataFusion session context - * @return context ID for subsequent operations - */ - static native long createContext(); - - /** - * Close and cleanup a DataFusion context - * @param contextId the context ID to close - */ - public static native void closeContext(long contextId); - - /** - * Creates a new session context. - */ - public SessionContext() { - this.ptr = createContext(); - } - - @Override - public void close() throws Exception { - closeContext(this.ptr); - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java new file mode 100644 index 0000000000000..bae6fbbba74ca --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java @@ -0,0 +1,50 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni; + +import org.opensearch.datafusion.ObjectResultCallback; + +/** + * Core JNI bridge to native DataFusion library. + * All native method declarations are centralized here. + */ +public final class NativeBridge { + + static { + NativeLibraryLoader.load("opensearch_datafusion_jni"); + } + + private NativeBridge() {} + + // Runtime management + public static native long createGlobalRuntime(); + public static native long createTokioRuntime(); + public static native void closeGlobalRuntime(long ptr); + + // Session management + public static native long createSessionContext(long runtimeId); + public static native void closeSessionContext(long contextId); + + // Query execution + public static native long executeQueryPhase(long cachePtr, String tableName, byte[] plan, long runtimePtr); + public static native long executeFetchPhase(long cachePtr, long[] rowIds, String[] projections, long runtimePtr); + + // Stream operations + public static native void streamNext(long runtime, long stream, ObjectResultCallback callback); + public static native void streamGetSchema(long stream, ObjectResultCallback callback); + public static native void streamClose(long stream); + + // Reader management + public static native long createDatafusionReader(String path, String[] files); + public static native void closeDatafusionReader(long ptr); + + // Other methods + public static native String getVersionInfo(); + public static native int registerCsvDirectory(long contextId, String tableName, String directoryPath, String[] fileNames); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeLibraryLoader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeLibraryLoader.java new file mode 100644 index 0000000000000..a0d19c73bbee3 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeLibraryLoader.java @@ -0,0 +1,97 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.vectorized.execution.jni.NativeLoaderException; +import org.opensearch.vectorized.execution.jni.PlatformHelper; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; + +/** + * Handles loading of the native JNI library. + * TODO move to common lib once we switch to passing absolute lib paths + */ +public final class NativeLibraryLoader { + + private static volatile boolean loaded = false; + + private static final String DEFAULT_PATH = "native"; + + private static final Logger logger = LogManager.getLogger(NativeLibraryLoader.class); + + NativeLibraryLoader() {} + + /** + * Load the native library by name. + * Supports loading from resources and platform-specific directories. + * + * @throws UnsatisfiedLinkError if the library cannot be loaded + */ + public static synchronized void load(String libraryName) { + if (loaded) return; + try { + System.loadLibrary(libraryName); + loaded = true; + return; + } catch (UnsatisfiedLinkError ignored) { + logger.warn("Failed to load library '" + libraryName + "' from system path"); + } + + //Look-up with default path + try { + loadFromResources(DEFAULT_PATH, libraryName); + return; + } catch (UnsatisfiedLinkError ignored) { + logger.warn("Failed to load library '" + libraryName + "' from default path"); + } + + // Try platform-specific directory + try { + String platformDir = PlatformHelper.getPlatformDirectory(); + String currentDir = System.getProperty("user.dir"); + String path = Paths.get(currentDir, "native", platformDir, + PlatformHelper.getPlatformLibraryName(libraryName)).toString(); + loadFromResources(path, libraryName); + } catch (UnsatisfiedLinkError e) { + throw new UnsatisfiedLinkError( + "Failed to load library '" + libraryName + "' from all attempted locations"); + } + } + + private static void loadFromResources(String providedPath, String libraryName) { + String libName = System.mapLibraryName(libraryName); + String resourcePath = Paths.get("/", providedPath, libName).toString(); + try (InputStream is = NativeLibraryLoader.class.getResourceAsStream(resourcePath)) { + if (is == null) { + throw new FileNotFoundException("Native library not found: " + resourcePath); + } + Path tempFile = Files.createTempFile(libraryName, PlatformHelper.getNativeExtension()); + tempFile.toFile().deleteOnExit(); + Files.copy(is, tempFile, StandardCopyOption.REPLACE_EXISTING); + // Register deletion hook on JVM shutdown + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + Files.deleteIfExists(tempFile); + } catch (IOException ignored) {} + })); + System.load(tempFile.toAbsolutePath().toString()); + loaded = true; + } catch (IOException e) { + throw new NativeLoaderException("Failed to load native library from resources", e); + } + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java new file mode 100644 index 0000000000000..505b2d6a4c95e --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni.handle; + +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.vectorized.execution.jni.NativeHandle; + +/** + * Type-safe handle for native reader. + */ +public final class ReaderHandle extends NativeHandle { + + public ReaderHandle(String path, String[] files) { + super(NativeBridge.createDatafusionReader(path, files)); + } + + @Override + protected void doClose() { + NativeBridge.closeDatafusionReader(ptr); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java new file mode 100644 index 0000000000000..b5d96a10d4288 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java @@ -0,0 +1,30 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni.handle; + +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.vectorized.execution.jni.NativeHandle; + +/** + * Type-safe handle for native runtime environment. + */ +public final class RuntimeHandle extends NativeHandle { + + public RuntimeHandle() { + super(NativeBridge.createGlobalRuntime()); + } + + /** + * Closes the runtime environment and releases any associated resources. + */ + @Override + protected void doClose() { + NativeBridge.closeGlobalRuntime(ptr); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java new file mode 100644 index 0000000000000..84f03d9a64362 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni.handle; + +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.vectorized.execution.jni.NativeHandle; + +/** + * Session context for DataFusion operations. + */ +public final class SessionHandle extends NativeHandle { + + /** + * Creates a new session context with the given runtime. + * @param runtimeId the runtime environment ID + */ + public SessionHandle(long runtimeId) { + super(NativeBridge.createSessionContext(runtimeId)); + } + + + /** + * Closes the session context and releases any associated resources. + */ + @Override + protected void doClose() { + NativeBridge.closeSessionContext(ptr); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java new file mode 100644 index 0000000000000..fdc607a09eb43 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java @@ -0,0 +1,27 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.jni.handle; + +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.vectorized.execution.jni.NativeHandle; + +/** + * Type-safe handle for native stream. + */ +public final class StreamHandle extends NativeHandle { + + public StreamHandle(long ptr) { + super(ptr); + } + + @Override + protected void doClose() { + NativeBridge.streamClose(ptr); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/package-info.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/package-info.java new file mode 100644 index 0000000000000..788ed22dbc1da --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/package-info.java @@ -0,0 +1,20 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +/** + * JNI bridge layer for DataFusion native library integration. + * + *

    This package provides: + *

      + *
    • Type-safe native handle wrappers ({@link org.opensearch.vectorized.execution.jni.NativeHandle})
    • + *
    • Centralized native method declarations ({@link org.opensearch.datafusion.jni.NativeBridge})
    • + *
    + * + */ +package org.opensearch.datafusion.jni; + diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 352df8f21540b..2302abc093d6b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -8,7 +8,7 @@ package org.opensearch.datafusion.search; -import org.opensearch.datafusion.DataFusionQueryJNI; +import org.opensearch.datafusion.jni.handle.ReaderHandle; import org.opensearch.index.engine.exec.WriterFileSet; import java.io.Closeable; @@ -16,9 +16,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.concurrent.atomic.AtomicInteger; - -import static org.opensearch.datafusion.DataFusionQueryJNI.closeDatafusionReader; - /** * DataFusion reader for JNI operations. */ @@ -34,7 +31,10 @@ public class DatafusionReader implements Closeable { /** * The cache pointer. */ - public long cachePtr; + public ReaderHandle readerHandle; + /** + * The reference count. + */ private AtomicInteger refCount = new AtomicInteger(1); /** @@ -54,16 +54,15 @@ public DatafusionReader(String directoryPath, Collection files) { } System.out.println("File names: " + Arrays.toString(fileNames)); System.out.println("Directory path: " + directoryPath); - - this.cachePtr = DataFusionQueryJNI.createDatafusionReader(directoryPath, fileNames); + this.readerHandle = new ReaderHandle(directoryPath, fileNames); } /** * Gets the cache pointer. * @return the cache pointer */ - public long getCachePtr() { - return cachePtr; + public long getReaderPtr() { + return readerHandle.getPointer(); } /** @@ -91,10 +90,6 @@ public void decRef() throws IOException { @Override public void close() throws IOException { - if(cachePtr == -1L) { - throw new IllegalStateException("Listing table has been already closed"); - } - closeDatafusionReader(cachePtr); - this.cachePtr = -1; + readerHandle.close(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 0437deb8fbf24..76c442236ef47 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -8,12 +8,9 @@ package org.opensearch.datafusion.search; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; -import org.opensearch.datafusion.DataFusionQueryJNI; -import org.opensearch.datafusion.DataFusionService; import org.opensearch.datafusion.core.DefaultRecordBatchStream; +import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -44,7 +41,7 @@ public String source() { public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { // TODO : call search here to native // TODO : change RunTimePtr - long nativeStreamPtr = DataFusionQueryJNI.executeQueryPhase(reader.getCachePtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); + long nativeStreamPtr = NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); while(stream.hasNext()) { for(SearchResultsCollector collector : collectors) { @@ -62,9 +59,9 @@ public long search(DatafusionQuery datafusionQuery, Long contextPtr) { .toArray(); String[] projections = Objects.isNull(datafusionQuery.getProjections()) ? new String[]{} : datafusionQuery.getProjections().toArray(String[]::new); - return DataFusionQueryJNI.executeFetchPhase(reader.getCachePtr(), row_ids, projections, contextPtr); + return NativeBridge.executeFetchPhase(reader.getReaderPtr(), row_ids, projections, contextPtr); } - return DataFusionQueryJNI.executeQueryPhase(reader.getCachePtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), contextPtr); + return NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), contextPtr); } public DatafusionReader getReader() { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index d3b2d01e6bc34..9146795b3b472 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -78,13 +78,13 @@ public void testInitialReaderCreation() throws IOException { assertEquals(2,getRefCount(reader)); assertEquals(2, reader.files.stream().toList().get(0).getFiles().size()); - assertNotEquals(-1, reader.cachePtr); + assertNotEquals(-1, reader.readerHandle); searcher.close(); // Assert RefCount 1 -> 1 for latest catalogSnapshot holder assertEquals(1, getRefCount(reader)); reader.close(); - assertEquals(-1, reader.getCachePtr()); + assertEquals(-1, reader.getReaderPtr()); } /** Test that multiple searchers share the same reader instance for efficiency */ @@ -113,7 +113,7 @@ public void testMultipleSearchersShareSameReader() throws IOException { assertEquals(1, getRefCount(reader)); reader.decRef(); assertEquals(0,getRefCount(reader)); - assertEquals(-1, reader.getCachePtr()); + assertEquals(-1, reader.getReaderPtr()); } /** Test that reader stays alive when only some searchers are closed (reference counting) */ @@ -136,12 +136,12 @@ public void testReaderSurvivesPartialSearcherClose() throws IOException { // Close first searcher - reader should stay alive searcher1.close(); assertEquals(2,getRefCount(reader)); - assertNotEquals(-1, reader.cachePtr); + assertNotEquals(-1, reader.readerHandle); // Close second searcher - reader should not be closed searcher2.close(); assertEquals(1,getRefCount(reader)); - assertNotEquals(-1, reader.cachePtr); + assertNotEquals(-1, reader.readerHandle); } /** Test that refresh creates a new reader with updated file list */ @@ -206,7 +206,7 @@ public void testDecRefAfterCloseThrowsException() throws IOException { searcher.close(); reader.decRef(); - assertEquals(-1, reader.cachePtr); + assertEquals(-1, reader.readerHandle); // Calling decRef on closed reader should throw assertThrows(IllegalStateException.class, reader::decRef); @@ -272,9 +272,9 @@ public void testReaderClosesAfterSearchRelease() throws IOException { assertEquals(1, getRefCount(readerR1)); // 1 for SearcherS2 and 1 for CatalogSnapshot assertEquals(2, getRefCount(readerR2)); - assertNotEquals(-1, readerR1.cachePtr); + assertNotEquals(-1, readerR1.readerHandle); datafusionSearcher1v2.close(); - assertEquals(-1, readerR1v2.cachePtr); + assertEquals(-1, readerR1v2.readerHandle); assertThrows(IllegalStateException.class, () -> readerR1.decRef()); datafusionSearcherS2.close(); @@ -346,7 +346,7 @@ public void testSearch() throws IOException { assertEquals(1, reader2.files.stream().toList().getFirst().getFiles().size()); searcher1.close(); - assertEquals(-1,reader1.cachePtr); + assertEquals(-1,reader1.readerHandle); searcher2.close(); } From a311a1b085ce5340e472d06ca16fbc4acf7408dc Mon Sep 17 00:00:00 2001 From: Raghuvansh Raj Date: Mon, 17 Nov 2025 13:23:36 +0530 Subject: [PATCH 085/112] Setting up JNI microbenchmarking for parquet-data-format module (#20018) Signed-off-by: Raghuvansh Raj --- .../benchmarks/build.gradle | 93 +++++++ .../benchmark/BenchmarkData.java | 43 +++ .../benchmark/BenchmarkDataGenerator.java | 261 ++++++++++++++++++ .../ParquetWriterCloseBenchmark.java | 89 ++++++ .../ParquetWriterCreateBenchmark.java | 91 ++++++ .../ParquetWriterWriteBenchmark.java | 60 ++++ modules/parquet-data-format/settings.gradle | 13 +- 7 files changed, 644 insertions(+), 6 deletions(-) create mode 100644 modules/parquet-data-format/benchmarks/build.gradle create mode 100644 modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkData.java create mode 100644 modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkDataGenerator.java create mode 100644 modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCloseBenchmark.java create mode 100644 modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCreateBenchmark.java create mode 100644 modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterWriteBenchmark.java diff --git a/modules/parquet-data-format/benchmarks/build.gradle b/modules/parquet-data-format/benchmarks/build.gradle new file mode 100644 index 0000000000000..121666afe3fed --- /dev/null +++ b/modules/parquet-data-format/benchmarks/build.gradle @@ -0,0 +1,93 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +apply plugin: 'opensearch.build' +apply plugin: 'application' + +assemble.enabled = false + +application { + mainClass = 'org.openjdk.jmh.Main' +} + +base { + archivesName = 'parquet-data-format-benchmarks' +} + +test.enabled = false + +dependencies { + // Dependency on parent parquet-data-format module + api( project(':modules:parquet-data-format')) { + // JMH ships with the conflicting version 4.6. This prevents us from using jopt-simple in benchmarks (which should be ok) but allows + // us to invoke the JMH uberjar as usual. + exclude group: 'net.sf.jopt-simple', module: 'jopt-simple' + } + + // JMH dependencies + api "org.openjdk.jmh:jmh-core:$versions.jmh" + annotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:$versions.jmh" + + // Dependencies of JMH + runtimeOnly 'net.sf.jopt-simple:jopt-simple:5.0.4' + runtimeOnly 'org.apache.commons:commons-math3:3.6.1' + + // Arrow dependencies for test data generation (matching parent module versions) + api "org.apache.arrow:arrow-vector:17.0.0" + api "org.apache.arrow:arrow-memory-core:17.0.0" + api "org.apache.arrow:arrow-memory-unsafe:17.0.0" + api "org.apache.arrow:arrow-c-data:17.0.0" + api "org.apache.arrow:arrow-format:17.0.0" + + // FlatBuffers dependency required by Arrow + api "com.google.flatbuffers:flatbuffers-java:2.0.0" + + // Logging dependencies required by Arrow + runtimeOnly "org.apache.logging.log4j:log4j-api:2.21.0" + runtimeOnly "org.apache.logging.log4j:log4j-core:2.21.0" + runtimeOnly "org.apache.logging.log4j:log4j-slf4j-impl:2.21.0" +} + +// enable the JMH's BenchmarkProcessor to generate the final benchmark classes +// needs to be added separately otherwise Gradle will quote it and javac will fail +compileJava.options.compilerArgs.addAll(["-processor", "org.openjdk.jmh.generators.BenchmarkProcessor"]) + +// Disable -Werror for benchmark compilation to allow warnings +compileJava.options.compilerArgs.removeAll(['-Werror']) + +// classes generated by JMH can use all sorts of forbidden APIs but we have no influence at all and cannot exclude these classes +disableTasks('forbiddenApisMain') + +// No licenses for our benchmark deps (we don't ship benchmarks) +tasks.named("dependencyLicenses").configure { it.enabled = false } +dependenciesInfo.enabled = false + +thirdPartyAudit.ignoreViolations( + // these classes intentionally use JDK internal API (and this is ok since the project is maintained by Oracle employees) + 'org.openjdk.jmh.util.Utils' +) + +spotless { + java { + // IDEs can sometimes run annotation processors that leave files in + // here, causing Spotless to complain. Even though this path ought not + // to exist, exclude it anyway in order to avoid spurious failures. + targetExclude 'src/main/generated/**/*.java' + } +} + +// Add support for incubator modules and Arrow memory access on supported Java versions. +run.jvmArgs += [ + '--add-modules=jdk.incubator.vector', + '--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED' +] + +// Enable Rust backtrace for debugging native panics +run.environment += [ + 'RUST_BACKTRACE': 'full' +] diff --git a/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkData.java b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkData.java new file mode 100644 index 0000000000000..edb0d6e37eda7 --- /dev/null +++ b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkData.java @@ -0,0 +1,43 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.benchmark; + +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.vector.VectorSchemaRoot; + +import java.io.Closeable; +import java.io.IOException; + +public class BenchmarkData implements Closeable { + private final VectorSchemaRoot root; + private final ArrowSchema arrowSchema; + private final ArrowArray arrowArray; + + public BenchmarkData(VectorSchemaRoot root, ArrowSchema arrowSchema, ArrowArray arrowArray) { + this.root = root; + this.arrowSchema = arrowSchema; + this.arrowArray = arrowArray; + } + + public ArrowSchema getArrowSchema() { + return arrowSchema; + } + + public ArrowArray getArrowArray() { + return arrowArray; + } + + @Override + public void close() throws IOException { + root.close(); + arrowArray.close(); + arrowSchema.close(); + } +} diff --git a/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkDataGenerator.java b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkDataGenerator.java new file mode 100644 index 0000000000000..8e922b4497a01 --- /dev/null +++ b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/BenchmarkDataGenerator.java @@ -0,0 +1,261 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.benchmark; + +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.Data; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.BigIntVector; +import org.apache.arrow.vector.BitVector; +import org.apache.arrow.vector.Float8Vector; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.complex.StructVector; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.apache.arrow.vector.types.pojo.Schema; + +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.UUID; + +/** + * Utility class for generating test data for JNI benchmarks. + * Creates Arrow schemas and record batches with varying complexity levels. + */ +public class BenchmarkDataGenerator { + + private final BufferAllocator allocator; + private final Random random; + + public BenchmarkDataGenerator() { + this.allocator = new RootAllocator(Long.MAX_VALUE); + this.random = new Random(42); // Fixed seed for reproducible benchmarks + } + + public BenchmarkData generate(String schemaType, int fieldCount, int recordCount) { + VectorSchemaRoot root = createRecordBatch(schemaType, fieldCount, recordCount); + ArrowArray arrowArray = ArrowArray.allocateNew(allocator); + ArrowSchema arrowSchema = ArrowSchema.allocateNew(allocator); + + Data.exportVectorSchemaRoot(allocator, root, null, arrowArray, arrowSchema); + + return new BenchmarkData(root, arrowSchema, arrowArray); + } + + /** + * Creates a simple schema with primitive types only. + */ + public Schema createSimpleSchema(int fieldCount) { + List fields = new ArrayList<>(); + + for (int i = 0; i < fieldCount; i++) { + ArrowType type; + String name = switch (i % 5) { + case 0 -> { + type = new ArrowType.Int(32, true); + yield "int_field_" + i; + } + case 1 -> { + type = new ArrowType.Int(64, true); + yield "long_field_" + i; + } + case 2 -> { + type = new ArrowType.FloatingPoint(org.apache.arrow.vector.types.FloatingPointPrecision.DOUBLE); + yield "double_field_" + i; + } + case 3 -> { + type = new ArrowType.Bool(); + yield "bool_field_" + i; + } + default -> { + type = new ArrowType.Utf8(); + yield "string_field_" + i; + } + }; + + fields.add(new Field(name, FieldType.nullable(type), null)); + } + + return new Schema(fields); + } + + /** + * Creates a complex schema with nullable fields and mixed types. + */ + public Schema createComplexSchema(int fieldCount) { + List fields = new ArrayList<>(); + + for (int i = 0; i < fieldCount; i++) { + ArrowType type; + String name; + boolean nullable = i % 3 == 0; // Every third field is nullable + + name = switch (i % 7) { + case 0 -> { + type = new ArrowType.Int(32, true); + yield "int_field_" + i; + } + case 1 -> { + type = new ArrowType.Int(64, true); + yield "long_field_" + i; + } + case 2 -> { + type = new ArrowType.FloatingPoint(org.apache.arrow.vector.types.FloatingPointPrecision.DOUBLE); + yield "double_field_" + i; + } + case 3 -> { + type = new ArrowType.Bool(); + yield "bool_field_" + i; + } + case 4 -> { + type = new ArrowType.Utf8(); + yield "string_field_" + i; + } + case 5 -> { + type = new ArrowType.Binary(); + yield "binary_field_" + i; + } + default -> { + type = new ArrowType.Timestamp(org.apache.arrow.vector.types.TimeUnit.MICROSECOND, "UTC"); + yield "timestamp_field_" + i; + } + }; + + FieldType fieldType = nullable ? FieldType.nullable(type) : FieldType.notNullable(type); + fields.add(new Field(name, fieldType, null)); + } + + return new Schema(fields); + } + + /** + * Creates a nested schema with struct arrays and lists. + */ + public Schema createNestedSchema(int fieldCount) { + List fields = new ArrayList<>(); + + // Add some basic fields + int basicFields = fieldCount / 2; + for (int i = 0; i < basicFields; i++) { + ArrowType type = i % 2 == 0 ? new ArrowType.Int(32, true) : new ArrowType.Utf8(); + String name = "basic_field_" + i; + fields.add(new Field(name, FieldType.nullable(type), null)); + } + + // Add nested struct fields + int structFields = fieldCount - basicFields; + for (int i = 0; i < structFields; i++) { + List structChildren = new ArrayList<>(); + structChildren.add(new Field("nested_int", FieldType.nullable(new ArrowType.Int(32, true)), null)); + structChildren.add(new Field("nested_string", FieldType.nullable(new ArrowType.Utf8()), null)); + structChildren.add(new Field("nested_double", FieldType.nullable(new ArrowType.FloatingPoint(org.apache.arrow.vector.types.FloatingPointPrecision.DOUBLE)), null)); + + Field structField = new Field("struct_field_" + i, FieldType.nullable(ArrowType.Struct.INSTANCE), structChildren); + fields.add(structField); + } + + return new Schema(fields); + } + + /** + * Creates a VectorSchemaRoot with test data based on the schema type. + */ + public VectorSchemaRoot createRecordBatch(String schemaType, int fieldCount, int recordCount) { + Schema schema = switch (schemaType) { + case "complex" -> createComplexSchema(fieldCount); + case "nested" -> createNestedSchema(fieldCount); + default -> createSimpleSchema(fieldCount); + }; + + VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator); + root.allocateNew(); + + populateRecordBatch(root, recordCount); + root.setRowCount(recordCount); + + return root; + } + + private void populateRecordBatch(VectorSchemaRoot root, int recordCount) { + for (int fieldIndex = 0; fieldIndex < root.getFieldVectors().size(); fieldIndex++) { + var vector = root.getVector(fieldIndex); + + if (vector instanceof IntVector intVector) { + intVector.allocateNew(recordCount); + for (int i = 0; i < recordCount; i++) { + intVector.set(i, random.nextInt(10000)); + } + intVector.setValueCount(recordCount); + + } else if (vector instanceof BigIntVector longVector) { + longVector.allocateNew(recordCount); + for (int i = 0; i < recordCount; i++) { + longVector.set(i, random.nextLong()); + } + longVector.setValueCount(recordCount); + + } else if (vector instanceof Float8Vector doubleVector) { + doubleVector.allocateNew(recordCount); + for (int i = 0; i < recordCount; i++) { + doubleVector.set(i, random.nextDouble() * 1000.0); + } + doubleVector.setValueCount(recordCount); + + } else if (vector instanceof BitVector boolVector) { + boolVector.allocateNew(recordCount); + for (int i = 0; i < recordCount; i++) { + boolVector.set(i, random.nextBoolean() ? 1 : 0); + } + boolVector.setValueCount(recordCount); + + } else if (vector instanceof VarCharVector stringVector) { + stringVector.allocateNew(recordCount * 64, recordCount); // Estimate 64 chars per string + for (int i = 0; i < recordCount; i++) { + String value = "benchmark_string_" + i + "_" + UUID.randomUUID().toString().substring(0, 8); + stringVector.set(i, value.getBytes(StandardCharsets.UTF_8)); + } + stringVector.setValueCount(recordCount); + + } else if (vector instanceof StructVector structVector) { + structVector.allocateNew(); + // Populate nested struct fields + for (int i = 0; i < recordCount; i++) { + // This is a simplified population for nested structures + // In a real scenario, you'd need to handle each child vector properly + } + structVector.setValueCount(recordCount); + } + } + } + + /** + * Generates a temporary file path for benchmark operations. + */ + public String generateTempFilePath() { + return System.getProperty("java.io.tmpdir") + "/benchmark_" + UUID.randomUUID().toString() + ".parquet"; + } + + /** + * Clean up resources. + */ + public void close() { + allocator.close(); + } + + public BufferAllocator getAllocator() { + return allocator; + } +} diff --git a/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCloseBenchmark.java b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCloseBenchmark.java new file mode 100644 index 0000000000000..96ece80d5d08a --- /dev/null +++ b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCloseBenchmark.java @@ -0,0 +1,89 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.benchmark; + +import com.parquet.parquetdataformat.bridge.RustBridge; +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.Data; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.TearDown; +import org.openjdk.jmh.annotations.Warmup; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.concurrent.TimeUnit; + +/** + * Simple JMH benchmark for testing Parquet writer creation performance. + * This benchmark focuses specifically on measuring the overhead of creating writers. + */ +@Fork(1) +@Warmup(iterations = 1, time = 10, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 10, timeUnit = TimeUnit.SECONDS) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.MICROSECONDS) +@State(Scope.Benchmark) +public class ParquetWriterCloseBenchmark { + + private BenchmarkData writerCreationBenchmarkData; + private BenchmarkData writerWriteBenchmarkData; + private String filePath; + + @Param({"10"}) + private int fieldCount; + + @Param({"50000"}) + private int recordCount; + + @Setup(Level.Invocation) + public void setup() throws IOException { + BenchmarkDataGenerator generator = new BenchmarkDataGenerator(); + writerCreationBenchmarkData = generator.generate("simple", fieldCount, 0); + writerWriteBenchmarkData = generator.generate("simple", fieldCount, recordCount); + filePath = generateTempFilePath(); + RustBridge.createWriter(filePath, writerCreationBenchmarkData.getArrowSchema().memoryAddress()); + RustBridge.write(filePath, writerWriteBenchmarkData.getArrowArray().memoryAddress(), writerWriteBenchmarkData.getArrowSchema().memoryAddress()); + } + + @TearDown(Level.Invocation) + public void tearDown() throws IOException { + try { + Files.deleteIfExists(Path.of(filePath)); + } catch (Exception ignored) { + // Best effort cleanup + } + + writerCreationBenchmarkData.close(); + writerWriteBenchmarkData.close(); + } + + + @Benchmark + public void benchmarkClose() throws IOException { + RustBridge.closeWriter(filePath); + } + + private String generateTempFilePath() { + return System.getProperty("java.io.tmpdir") + "/benchmark_writer_" + + System.nanoTime() + ".parquet"; + } +} diff --git a/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCreateBenchmark.java b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCreateBenchmark.java new file mode 100644 index 0000000000000..e5a183e82c507 --- /dev/null +++ b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterCreateBenchmark.java @@ -0,0 +1,91 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.benchmark; + +import com.parquet.parquetdataformat.bridge.RustBridge; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.Data; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Level; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.TearDown; +import org.openjdk.jmh.annotations.Warmup; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.concurrent.TimeUnit; + +/** + * Simple JMH benchmark for testing Parquet writer creation performance. + * This benchmark focuses specifically on measuring the overhead of creating writers. + */ +@Fork(1) +@Warmup(iterations = 1, time = 10, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 10, timeUnit = TimeUnit.SECONDS) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.MICROSECONDS) +@State(Scope.Benchmark) +public class ParquetWriterCreateBenchmark { + + private BenchmarkData writerCreationBenchmarkData; + private String filePath; + + @Param({"10"}) + private int fieldCount; + + @Setup(Level.Invocation) + public void setup() throws IOException { + BenchmarkDataGenerator generator = new BenchmarkDataGenerator(); + writerCreationBenchmarkData = generator.generate("simple", fieldCount, 0); + filePath = generateTempFilePath(); + } + + @TearDown(Level.Invocation) + public void tearDown() throws IOException { + // Clean up the writer and file + try { + RustBridge.closeWriter(filePath); + } catch (Exception ignored) { + // Best effort cleanup + } + + try { + Files.deleteIfExists(Path.of(filePath)); + } catch (Exception ignored) { + // Best effort cleanup + } + + writerCreationBenchmarkData.close(); + } + + /** + * Benchmark just the writer creation step. + * This measures the overhead of creating a new Parquet writer. + */ + @Benchmark + public void benchmarkCreate() throws IOException { + // This is what we're benchmarking - just writer creation + RustBridge.createWriter(filePath, writerCreationBenchmarkData.getArrowSchema().memoryAddress()); + } + + private String generateTempFilePath() { + return System.getProperty("java.io.tmpdir") + "/benchmark_writer_" + + System.nanoTime() + ".parquet"; + } +} diff --git a/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterWriteBenchmark.java b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterWriteBenchmark.java new file mode 100644 index 0000000000000..1af1d4ea16c30 --- /dev/null +++ b/modules/parquet-data-format/benchmarks/src/main/java/com/parquet/parquetdataformat/benchmark/ParquetWriterWriteBenchmark.java @@ -0,0 +1,60 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.benchmark; + +import com.parquet.parquetdataformat.bridge.RustBridge; +import org.openjdk.jmh.annotations.*; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.concurrent.TimeUnit; + +@Fork(1) +@Warmup(iterations = 1, time = 10, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 10, timeUnit = TimeUnit.SECONDS) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.MICROSECONDS) +@State(Scope.Benchmark) +public class ParquetWriterWriteBenchmark { + + private BenchmarkData writerCreationBenchmarkData; + private BenchmarkData writerWriteBenchmarkData; + private String filePath; + + @Param({"10"}) + private int fieldCount; + + @Param({"50000"}) + private int recordCount; + + @Setup(Level.Invocation) + public void setup() throws IOException { + BenchmarkDataGenerator generator = new BenchmarkDataGenerator(); + writerCreationBenchmarkData = generator.generate("simple", fieldCount, 0); + writerWriteBenchmarkData = generator.generate("simple", fieldCount, recordCount); + filePath = generateTempFilePath(); + RustBridge.createWriter(filePath, writerCreationBenchmarkData.getArrowSchema().memoryAddress()); + } + + @Benchmark + public void benchmarkWrite() throws IOException { + RustBridge.write(filePath, writerWriteBenchmarkData.getArrowArray().memoryAddress(), writerWriteBenchmarkData.getArrowSchema().memoryAddress()); + } + + @TearDown(Level.Invocation) + public void tearDown() throws IOException { + RustBridge.closeWriter(filePath); + writerCreationBenchmarkData.close(); + writerWriteBenchmarkData.close(); + } + + private String generateTempFilePath() { + return Path.of(System.getProperty("java.io.tmpdir"), "benchmark_writer_" + System.nanoTime() + ".parquet").toString(); + } +} diff --git a/modules/parquet-data-format/settings.gradle b/modules/parquet-data-format/settings.gradle index 6f5da74a14d2d..978f89ee87e78 100644 --- a/modules/parquet-data-format/settings.gradle +++ b/modules/parquet-data-format/settings.gradle @@ -1,10 +1,11 @@ /* - * This file was generated by the Gradle 'init' task. + * SPDX-License-Identifier: Apache-2.0 * - * The settings file is used to specify which projects to include in your build. - * - * Detailed information about configuring a multi-project build in Gradle can be found - * in the user manual at https://docs.gradle.org/6.5.1/userguide/multi_project_builds.html + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. */ -rootProject.name = 'plugin-template' +rootProject.name = 'parquet-data-format' + +include 'benchmarks' From 564dcde803f1b10f1fcc38f2ed7057d14515e2c5 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Mon, 17 Nov 2025 15:46:31 +0530 Subject: [PATCH 086/112] Native library loader fix (#20020) Signed-off-by: Arpit Bandejiya --- modules/parquet-data-format/build.gradle | 6 +++--- .../parquetdataformat/bridge/NativeLibraryLoader.java | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index 54322fca9488a..e86067c92fa54 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -212,8 +212,8 @@ tasks.register('copyNativeLib', Copy) { dependsOn buildRust from "src/main/rust/target/release" into "src/main/resources/native" - include "**/libparquet_dataformat_jni.*" - include "**/parquet_dataformat_jni.dll" + include "libparquet_dataformat_jni.*" + include "parquet_dataformat_jni.dll" // Set strategy to avoid errors on duplicate files duplicatesStrategy = DuplicatesStrategy.EXCLUDE @@ -226,7 +226,7 @@ tasks.register('copyNativeLib', Copy) { def archDir = arch.contains('aarch64') || arch.contains('arm64') ? 'aarch64' : arch.contains('64') ? 'x86_64' : 'x86' - file.path = "${osDir}/${archDir}/${file.name}" + file.path = "${osDir}-${archDir}/${file.name}" } doLast { diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java index d0a76ce0eb6ee..d994f9721ee84 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeLibraryLoader.java @@ -73,8 +73,9 @@ public static synchronized void load(String libraryName) { } private static void loadFromResources(String providedPath, String libraryName) throws IOException { - String libName = System.mapLibraryName(libraryName); - String resourcePath = Paths.get("/", providedPath, libName).toString(); + String platformDir = PlatformHelper.getPlatformDirectory(); + String libName = PlatformHelper.getPlatformLibraryName(libraryName); + String resourcePath = Paths.get("/", providedPath, platformDir, libName).toString(); try (InputStream is = NativeLibraryLoader.class.getResourceAsStream(resourcePath)) { if (is == null) { throw new IOException("Native library not found: " + resourcePath); From ede94a0aa88dae4074ae3fd463e1ba4ca0977598 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Mon, 17 Nov 2025 22:12:08 +0530 Subject: [PATCH 087/112] Add memory pool for datafusion (#19992) * Add memory pool changes for datafusion Signed-off-by: Arpit Bandejiya * Add comments over the new monitor structs Signed-off-by: Arpit Bandejiya * Add changes for wrapper of global runTimeEnv Signed-off-by: Arpit Bandejiya * Add documentation related setting and make the memory pool static * comment the print for memory * Fix tests Signed-off-by: Arpit Bandejiya --------- Signed-off-by: Arpit Bandejiya --- distribution/src/config/opensearch.yml | 4 + plugins/engine-datafusion/jni/Cargo.toml | 5 +- plugins/engine-datafusion/jni/src/lib.rs | 115 +++++++++++------- plugins/engine-datafusion/jni/src/memory.rs | 108 ++++++++++++++++ .../datafusion/DataFusionPlugin.java | 17 ++- .../datafusion/DataFusionService.java | 22 ++-- .../datafusion/DatafusionEngine.java | 23 +++- .../datafusion/core/DataFusionRuntimeEnv.java | 56 +++++++++ .../datafusion/core/GlobalRuntimeEnv.java | 52 -------- .../datafusion/jni/NativeBridge.java | 11 +- ...meHandle.java => GlobalRuntimeHandle.java} | 6 +- .../datafusion/search/DatafusionSearcher.java | 16 +-- .../DataFusionReaderManagerTests.java | 28 +++-- .../datafusion/DataFusionServiceTests.java | 18 +-- .../TestDataFusionServiceTests.java | 7 +- 15 files changed, 338 insertions(+), 150 deletions(-) create mode 100644 plugins/engine-datafusion/jni/src/memory.rs create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java rename plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/{RuntimeHandle.java => GlobalRuntimeHandle.java} (78%) diff --git a/distribution/src/config/opensearch.yml b/distribution/src/config/opensearch.yml index 29070a59cb5df..ae0c62004b737 100644 --- a/distribution/src/config/opensearch.yml +++ b/distribution/src/config/opensearch.yml @@ -121,3 +121,7 @@ ${path.logs} # Once there is no observed impact on performance, this feature flag can be removed. # #opensearch.experimental.optimization.datetime_formatter_caching.enabled: false +# +# +# Limits the memory pool for datafusion which it uses for query execution. +#datafusion.search.memory_pool: 1GB diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 828c389b9bff3..9116d1317ce19 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -62,6 +62,7 @@ async-trait = { workspace = true } itertools = { workspace = true } rstest = { workspace = true } regex = { workspace = true } +parking_lot = "0.12.5" [build-dependencies] cbindgen = "0.27" @@ -73,7 +74,7 @@ lto = true codegen-units = 1 panic = "abort" incremental = true -debug = true +debug = "full" strip = false [profile.dev] @@ -81,5 +82,5 @@ opt-level = 1 # Some optimization for reasonable performance lto = false # Disable LTO for faster builds codegen-units = 16 # More parallel compilation incremental = true # Enable incremental compilation -debug = true +debug = "full" strip = false diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index d0daa7e8faed5..6dc218bb1e431 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -21,8 +21,8 @@ use datafusion::{ execution::cache::CacheAccessor, execution::context::SessionContext, execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, - execution::TaskContext, - logical_expr::LogicalPlan, + execution::TaskContext + , parquet::arrow::arrow_reader::RowSelector, physical_plan::{ExecutionPlan, SendableRecordBatchStream}, prelude::SessionConfig, @@ -30,20 +30,23 @@ use datafusion::{ DATAFUSION_VERSION, }; use jni::objects::{JByteArray, JClass, JObject}; -use jni::objects::{JLongArray, JValue}; +use jni::objects::JLongArray; use jni::sys::{jbyteArray, jlong, jstring}; use jni::JNIEnv; use std::collections::{BTreeSet, HashMap}; +use std::default::Default; use std::future::Future; use std::ptr::addr_of_mut; use std::sync::Arc; use std::time::Instant; mod listing_table; +mod memory; mod row_id_optimizer; mod util; use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; +use crate::memory::{CustomMemoryPool, Monitor, MonitoredMemoryPool}; use crate::row_id_optimizer::ProjectRowIdOptimizer; use crate::util::{ create_file_metadata_from_filenames, parse_string_arr, set_object_result_error, @@ -51,48 +54,64 @@ use crate::util::{ }; use arrow_schema::DataType; use datafusion::catalog::TableProvider; +use datafusion::execution::memory_pool::{GreedyMemoryPool, TrackConsumersPool}; use datafusion_datasource::file_groups::FileGroup; use datafusion_datasource::file_scan_config::FileScanConfigBuilder; use datafusion_datasource::source::DataSourceExec; use datafusion_datasource::PartitionedFile; use datafusion_expr::registry::FunctionRegistry; -use datafusion_substrait::extensions::Extensions; use datafusion_substrait::logical_plan::consumer::{ - from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, + from_substrait_plan, SubstraitConsumer, }; -use datafusion_substrait::substrait::proto::{ - Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel, -}; +use datafusion_substrait::substrait::proto::Plan; use futures::TryStreamExt; use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; use std::io::Write; +use std::num::NonZeroUsize; +use std::result; use tokio::runtime::Runtime; +pub type Result = result::Result; + // NativeBridge JNI implementations -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlobalRuntime( - _env: JNIEnv, - _class: JClass, -) -> jlong { - match RuntimeEnvBuilder::default().build() { - Ok(runtime_env) => Box::into_raw(Box::new(runtime_env)) as jlong, - Err(_) => 0, - } +struct DataFusionRuntime { + runtime_env: RuntimeEnv, + tokio_runtime: Runtime, + monitor: Arc, } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createTokioRuntime( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlobalRuntime( _env: JNIEnv, _class: JClass, + memory_pool_limit: jlong ) -> jlong { - match Runtime::new() { - Ok(rt) => Box::into_raw(Box::new(rt)) as jlong, - Err(_) => 0, - } + let monitor = Arc::new(Monitor::default()); + let memory_pool = Arc::new(MonitoredMemoryPool::new( + Arc::new(TrackConsumersPool::new( + GreedyMemoryPool::new(memory_pool_limit as usize), + NonZeroUsize::new(5).unwrap(), + )), + monitor.clone(), + )); + + let runtime_env = RuntimeEnvBuilder::default() + .with_memory_pool(memory_pool) + .build().unwrap(); + + let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); + + let runtime = DataFusionRuntime { + runtime_env, + tokio_runtime, + monitor, + }; + + Box::into_raw(Box::new(runtime)) as jlong } #[no_mangle] @@ -102,7 +121,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeGlob ptr: jlong, ) { if ptr != 0 { - let _ = unsafe { Box::from_raw(ptr as *mut RuntimeEnv) }; + let _ = unsafe { Box::from_raw(ptr as *mut DataFusionRuntime) }; } } @@ -159,6 +178,20 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_registerC 0 } + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_printMemoryPoolAllocation( + _env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, +) { + let runtime = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + println!( + "[RUST]: Memory pool stats - Current: {:?}", + runtime.monitor.clone() + ); +} + #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createDatafusionReader( mut env: JNIEnv, @@ -288,17 +321,18 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu shard_view_ptr: jlong, table_name: JString, substrait_bytes: jbyteArray, - tokio_runtime_env_ptr: jlong, - // callback: JObject, + runtime_ptr: jlong ) -> jlong { let overall = Instant::now(); let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime) }; + let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; let table_name: String = env .get_string(&table_name) .expect("Couldn't get java string!") .into(); + let runtimeEnv = &runtime.runtime_env; + let table_path = shard_view.table_path(); let files_metadata = shard_view.files_metadata(); let object_meta: Arc> = Arc::new( @@ -308,13 +342,12 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu .collect(), ); - println!("Table path: {}", table_path); - println!("Files: {:?}", object_meta); + let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), object_meta); - let runtime_env = RuntimeEnvBuilder::new() + let runtime_env = RuntimeEnvBuilder::from_runtime_env(runtimeEnv) .with_cache_manager( CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache.clone())), ) @@ -343,7 +376,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int64)]); // Ideally the executor will give this - runtime_ptr.block_on(async { + runtime.tokio_runtime.block_on(async { let resolved_schema = listing_options .infer_schema(&ctx.state(), &table_path.clone()) .await @@ -355,10 +388,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu // Create a new TableProvider let provider = Arc::new(ListingTable::try_new(config).unwrap()); - let shard_id = table_path - .prefix() - .filename() - .expect("error in fetching Path"); ctx.register_table(table_name.clone(), provider) .expect("Failed to attach the Table"); }); @@ -386,8 +415,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu } }; - //let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; - runtime_ptr.block_on(async { + runtime.tokio_runtime.block_on(async { let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { Ok(plan) => { // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); @@ -426,14 +454,13 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu } }; let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; - // println!("The memory used currently right now: {:?}", jemalloc_stats::refresh_allocated()); + let duration1 = overall.elapsed(); println!( "Rust: Overall query setup time in milliseconds: {}", duration1.as_millis() ); - // set_projections(env, projections, callback); stream_ptr }) } @@ -522,10 +549,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNex stream: jlong, callback: JObject, ) { - let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; + let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; - runtime.block_on(async { + runtime.tokio_runtime.block_on(async { //let fetch_start = std::time::Instant::now(); let next = stream.try_next().await; //let fetch_time = fetch_start.elapsed(); @@ -584,11 +611,11 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe shard_view_ptr: jlong, values: JLongArray, projections: JObjectArray, - tokio_runtime_env_ptr: jlong, + runtime_ptr: jlong, callback: JObject, ) -> jlong { let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let runtime_ptr = unsafe { &*(tokio_runtime_env_ptr as *const Runtime) }; + let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; let table_path = shard_view.table_path(); let files_metadata = shard_view.files_metadata(); @@ -632,7 +659,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe } // Safety checks - if tokio_runtime_env_ptr == 0 { + if runtime_ptr == 0 { let error = DataFusionError::Execution("Null runtime pointer".to_string()); set_object_result_error(&mut env, callback, &error); return 0; @@ -666,7 +693,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe // Ideally the executor will give this - runtime_ptr.block_on(async { + runtime.tokio_runtime.block_on(async { let parquet_schema = match listing_options .infer_schema(&ctx.state(), &table_path.clone()) .await diff --git a/plugins/engine-datafusion/jni/src/memory.rs b/plugins/engine-datafusion/jni/src/memory.rs new file mode 100644 index 0000000000000..d4f945a2881d8 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/memory.rs @@ -0,0 +1,108 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +use std::result; +use datafusion::execution::memory_pool::{MemoryConsumer, MemoryPool, MemoryReservation}; +use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::Arc; +use datafusion::common::DataFusionError; + +pub type Result = result::Result; + + +/// Wrapper around MonitoredMemoryPool providing access to memory monitoring capabilities. +#[derive(Debug)] +pub struct CustomMemoryPool { + memory_pool: Arc +} + +impl CustomMemoryPool { + pub fn new(memory_pool: Arc) -> Self { + Self { memory_pool } + } + + pub fn get_monitor(&self) -> Arc { + self.memory_pool.get_monitor() + } + + pub fn get_memory_pool(&self) -> Arc { + self.memory_pool.clone() + } +} + +/// Tracks current and peak memory usage atomically. +#[derive(Debug, Default)] +pub(crate) struct Monitor { + pub(crate) value: AtomicUsize, + pub(crate) max: AtomicUsize, +} + +impl Monitor { + pub(crate) fn max(&self) -> usize { + self.max.load(Ordering::Relaxed) + } + + fn grow(&self, amount: usize) { + let old = self.value.fetch_add(amount, Ordering::Relaxed); + self.max.fetch_max(old + amount, Ordering::Relaxed); + } + + fn shrink(&self, amount: usize) { + self.value.fetch_sub(amount, Ordering::Relaxed); + } + + fn get_current_val(&self) -> usize { + self.value.load(Ordering::Relaxed) + } +} + +/// MemoryPool implementation that wraps another pool and tracks memory usage via Monitor. +#[derive(Debug)] +pub struct MonitoredMemoryPool { + inner: Arc, + monitor: Arc, +} + +impl MonitoredMemoryPool { + pub fn new(inner: Arc, monitor: Arc) -> Self { + Self { inner, monitor } + } + + pub fn get_monitor(&self) -> Arc { + self.monitor.clone() + } +} + +impl MemoryPool for MonitoredMemoryPool { + fn register(&self, _consumer: &MemoryConsumer) { + self.inner.register(_consumer) + } + + fn unregister(&self, _consumer: &MemoryConsumer) { + self.inner.unregister(_consumer) + } + + fn grow(&self, reservation: &MemoryReservation, additional: usize) { + self.inner.grow(reservation, additional); + self.monitor.grow(additional) + } + + fn shrink(&self, reservation: &MemoryReservation, shrink: usize) { + self.monitor.shrink(shrink); + self.inner.shrink(reservation, shrink); + } + + fn try_grow(&self, reservation: &MemoryReservation, additional: usize) -> Result<()> { + self.inner.try_grow(reservation, additional)?; + self.monitor.grow(additional); + Ok(()) + } + + fn reserved(&self) -> usize { + self.inner.reserved() + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 45a2da3e6afa3..2a56a54ff95a3 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -11,8 +11,10 @@ import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.node.DiscoveryNodes; import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.cache.CacheType; import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.IndexScopedSettings; +import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.common.settings.SettingsFilter; import org.opensearch.core.common.io.stream.NamedWriteableRegistry; @@ -45,12 +47,16 @@ import org.opensearch.watcher.ResourceWatcherService; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Supplier; +import static org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION; + + /** * Main plugin class for OpenSearch DataFusion integration. * @@ -103,7 +109,7 @@ public Collection createComponents( if (!isDataFusionEnabled) { return Collections.emptyList(); } - dataFusionService = new DataFusionService(dataSourceCodecs); + dataFusionService = new DataFusionService(dataSourceCodecs, clusterService); for(DataFormat format : this.getSupportedFormats()) { dataSourceCodecs.get(format); @@ -156,6 +162,15 @@ public List getRestHandlers( return List.of(new DataFusionAction()); } + @Override + public List> getSettings() { + List> settingList = new ArrayList<>(); + + settingList.add(MEMORY_POOL_CONFIGURATION_DATAFUSION); + + return settingList; + } + /** * Gets the list of action handlers for the DataFusion plugin. * @return A list of action handlers. diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 9eada5a01cff4..3d7f2ad29bfb0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -10,10 +10,11 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.opensearch.cluster.service.ClusterService; import org.opensearch.common.lifecycle.AbstractLifecycleComponent; import org.opensearch.common.util.concurrent.ConcurrentCollections; import org.opensearch.common.util.concurrent.ConcurrentMapLong; -import org.opensearch.datafusion.core.GlobalRuntimeEnv; +import org.opensearch.datafusion.core.DataFusionRuntimeEnv; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; @@ -32,17 +33,18 @@ public class DataFusionService extends AbstractLifecycleComponent { private final ConcurrentMapLong sessionEngines = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); private final DataSourceRegistry dataSourceRegistry; - private final GlobalRuntimeEnv globalRuntimeEnv; + private final DataFusionRuntimeEnv runtimeEnv; + /** * Creates a new DataFusion service instance. */ - public DataFusionService(Map dataSourceCodecs) { + public DataFusionService(Map dataSourceCodecs, ClusterService clusterService) { this.dataSourceRegistry = new DataSourceRegistry(dataSourceCodecs); // to verify jni String version = NativeBridge.getVersionInfo(); - this.globalRuntimeEnv = new GlobalRuntimeEnv(); + this.runtimeEnv = new DataFusionRuntimeEnv(clusterService); } @Override @@ -80,7 +82,7 @@ protected void doStop() { } } sessionEngines.clear(); - globalRuntimeEnv.close(); + runtimeEnv.close(); logger.info("DataFusion service stopped"); } @@ -110,7 +112,7 @@ public CompletableFuture registerDirectory(String directoryPath, List registerDirectory(String directoryPath, List createSessionContext() { - long runtimeEnvironmentId = globalRuntimeEnv.getPointer(); + long runtimeEnvironmentId = runtimeEnv.getPointer(); DataSourceCodec codec = dataSourceRegistry.getDefaultEngine(); if (codec == null) { return CompletableFuture.failedFuture(new IllegalArgumentException("Runtime environment not found: " + runtimeEnvironmentId)); @@ -163,11 +165,7 @@ public CompletableFuture executeSubstraitQuery(long sessionCo } public long getRuntimePointer() { - return globalRuntimeEnv.getPointer(); - } - - public long getTokioRuntimePointer() { - return globalRuntimeEnv.getTokioRuntimePtr(); + return runtimeEnv.getPointer(); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 2f182d9baa28b..2f88e8d569f01 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -51,9 +51,14 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import java.util.function.Function; import static java.util.Collections.emptyMap; +import static org.opensearch.datafusion.jni.NativeBridge.printMemoryPoolAllocation; public class DatafusionEngine extends SearchExecEngine { @@ -173,9 +178,9 @@ public Map executeQueryPhase(DatafusionContext context) { try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); - long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); + long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getRuntimePointer()); allocator = new RootAllocator(Long.MAX_VALUE); - stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); + stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check @@ -214,6 +219,16 @@ public void collect(RecordBatchStream value) { logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); } + +// logger.info("Memory Pool Allocation Post Query ShardID:{}", context.getQueryShardContext().getShardId()); +// printMemoryPoolAllocation(datafusionService.getRuntimePointer()); + + +// logger.info("Final Results:"); +// for (Map.Entry entry : finalRes.entrySet()) { +// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); +// } + } catch (Exception exception) { logger.error("Failed to execute Substrait query plan", exception); throw new RuntimeException(exception); @@ -257,9 +272,9 @@ public void executeFetchPhase(DatafusionContext context) throws IOException { projections.add(CompositeDataFormatWriter.ROW_ID); context.getDatafusionQuery().setProjections(projections); DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); - long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getTokioRuntimePointer()); // update to handle fetchPhase query + long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getTokioRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); Map rowIdToIndex = new HashMap<>(); for (int idx = 0; idx < rowIds.size(); idx++) { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java new file mode 100644 index 0000000000000..099e9053239df --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java @@ -0,0 +1,56 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.core; + +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.settings.Setting; + +import org.opensearch.core.common.unit.ByteSizeUnit; +import org.opensearch.core.common.unit.ByteSizeValue; +import org.opensearch.datafusion.jni.handle.GlobalRuntimeHandle; + +/** + * DataFusion runtime environment manager. + * Manages the lifecycle of native DataFusion runtime (includes memory pool and Tokio runtime). + */ +public final class DataFusionRuntimeEnv implements AutoCloseable { + + private final GlobalRuntimeHandle runtimeHandle; + + /** + * Controls the memory used for the datafusion query execution + */ + public static final Setting MEMORY_POOL_CONFIGURATION_DATAFUSION = Setting.byteSizeSetting( + "datafusion.search.memory_pool", + new ByteSizeValue(2, ByteSizeUnit.GB), + Setting.Property.Final, + Setting.Property.NodeScope + ); + + /** + * Creates a new DataFusion runtime environment. + */ + public DataFusionRuntimeEnv(ClusterService clusterService) { + long memoryLimit = clusterService.getClusterSettings().get(MEMORY_POOL_CONFIGURATION_DATAFUSION).getBytes(); + this.runtimeHandle = new GlobalRuntimeHandle(memoryLimit); + } + + /** + * Gets the native pointer to the runtime environment. + * @return the native pointer + */ + public long getPointer() { + return runtimeHandle.getPointer(); + } + + @Override + public void close() { + runtimeHandle.close(); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java deleted file mode 100644 index 858fce3d3eee9..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.core; - -import org.opensearch.datafusion.jni.NativeBridge; -import org.opensearch.datafusion.jni.handle.RuntimeHandle; - -/** - * Global runtime environment for DataFusion operations. - * Manages the lifecycle of the native DataFusion runtime with automatic cleanup. - * TODO Revisit Tokio runtime - */ -public final class GlobalRuntimeEnv implements AutoCloseable { - - private final RuntimeHandle runTimeHandle; - private final long tokioRuntimePtr; - - /** - * Creates a new global runtime environment. - */ - public GlobalRuntimeEnv() { - this.runTimeHandle = new RuntimeHandle(); - this.tokioRuntimePtr = NativeBridge.createTokioRuntime(); - } - - /** - * Gets the native pointer to the runtime environment. - * @return the native pointer - */ - public long getPointer() { - return runTimeHandle.getPointer(); - } - - /** - * Gets the Tokio runtime pointer. - * @return the Tokio runtime pointer - */ - public long getTokioRuntimePtr() { - return tokioRuntimePtr; - } - - @Override - public void close() { - runTimeHandle.close(); - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java index bae6fbbba74ca..e4d9dc23790c7 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java @@ -23,8 +23,7 @@ public final class NativeBridge { private NativeBridge() {} // Runtime management - public static native long createGlobalRuntime(); - public static native long createTokioRuntime(); + public static native long createGlobalRuntime(long limit); public static native void closeGlobalRuntime(long ptr); // Session management @@ -32,8 +31,8 @@ private NativeBridge() {} public static native void closeSessionContext(long contextId); // Query execution - public static native long executeQueryPhase(long cachePtr, String tableName, byte[] plan, long runtimePtr); - public static native long executeFetchPhase(long cachePtr, long[] rowIds, String[] projections, long runtimePtr); + public static native long executeQueryPhase(long readerPtr, String tableName, byte[] plan, long runtimePtr); + public static native long executeFetchPhase(long readerPtr, long[] rowIds, String[] projections, long runtimePtr); // Stream operations public static native void streamNext(long runtime, long stream, ObjectResultCallback callback); @@ -44,6 +43,10 @@ private NativeBridge() {} public static native long createDatafusionReader(String path, String[] files); public static native void closeDatafusionReader(long ptr); + // Memory monitoring + public static native void printMemoryPoolAllocation(long runtimePtr); + + // Other methods public static native String getVersionInfo(); public static native int registerCsvDirectory(long contextId, String tableName, String directoryPath, String[] fileNames); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java similarity index 78% rename from plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java rename to plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java index b5d96a10d4288..887056a3f75dd 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/RuntimeHandle.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java @@ -14,10 +14,10 @@ /** * Type-safe handle for native runtime environment. */ -public final class RuntimeHandle extends NativeHandle { +public final class GlobalRuntimeHandle extends NativeHandle { - public RuntimeHandle() { - super(NativeBridge.createGlobalRuntime()); + public GlobalRuntimeHandle(long memoryLimit) { + super(NativeBridge.createGlobalRuntime(memoryLimit)); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index 76c442236ef47..a9121eae273e0 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -39,19 +39,11 @@ public String source() { @Override public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { - // TODO : call search here to native - // TODO : change RunTimePtr - long nativeStreamPtr = NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.toString(), datafusionQuery.getSubstraitBytes(), 0); - RecordBatchStream stream = new DefaultRecordBatchStream(nativeStreamPtr); - while(stream.hasNext()) { - for(SearchResultsCollector collector : collectors) { - collector.collect(stream); - } - } + throw new UnsupportedOperationException("Use search(DatafusionQuery, Long, Long) instead"); } @Override - public long search(DatafusionQuery datafusionQuery, Long contextPtr) { + public long search(DatafusionQuery datafusionQuery, Long runtimePtr) { if (datafusionQuery.isFetchPhase()) { long[] row_ids = datafusionQuery.getQueryPhaseRowIds() .stream() @@ -59,9 +51,9 @@ public long search(DatafusionQuery datafusionQuery, Long contextPtr) { .toArray(); String[] projections = Objects.isNull(datafusionQuery.getProjections()) ? new String[]{} : datafusionQuery.getProjections().toArray(String[]::new); - return NativeBridge.executeFetchPhase(reader.getReaderPtr(), row_ids, projections, contextPtr); + return NativeBridge.executeFetchPhase(reader.getReaderPtr(), row_ids, projections, runtimePtr); } - return NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), contextPtr); + return NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), runtimePtr); } public DatafusionReader getReader() { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index 9146795b3b472..a71b587539329 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -19,6 +19,8 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.core.index.Index; @@ -33,6 +35,8 @@ import org.opensearch.test.OpenSearchTestCase; import org.opensearch.vectorized.execution.search.DataFormat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.opensearch.index.engine.Engine.SearcherScope.INTERNAL; public class DataFusionReaderManagerTests extends OpenSearchTestCase { @@ -42,10 +46,18 @@ public class DataFusionReaderManagerTests extends OpenSearchTestCase { @Mock private Environment mockEnvironment; + @Mock + private ClusterService clusterService; + @Before public void setup() { MockitoAnnotations.openMocks(this); - service = new DataFusionService(Collections.emptyMap()); + + clusterService = mock(ClusterService.class); + ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, Set.of(org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION)); + when(clusterService.getSettings()).thenReturn(Settings.EMPTY); + when(clusterService.getClusterSettings()).thenReturn(clusterSettings); + service = new DataFusionService(Collections.emptyMap(), clusterService); service.doStart(); noOpFileDeleterSupplier = () -> { try { @@ -84,7 +96,7 @@ public void testInitialReaderCreation() throws IOException { // Assert RefCount 1 -> 1 for latest catalogSnapshot holder assertEquals(1, getRefCount(reader)); reader.close(); - assertEquals(-1, reader.getReaderPtr()); + assertThrows(IllegalStateException.class, reader::getReaderPtr); } /** Test that multiple searchers share the same reader instance for efficiency */ @@ -113,7 +125,7 @@ public void testMultipleSearchersShareSameReader() throws IOException { assertEquals(1, getRefCount(reader)); reader.decRef(); assertEquals(0,getRefCount(reader)); - assertEquals(-1, reader.getReaderPtr()); + assertThrows(IllegalStateException.class, reader::getReaderPtr); } /** Test that reader stays alive when only some searchers are closed (reference counting) */ @@ -206,7 +218,7 @@ public void testDecRefAfterCloseThrowsException() throws IOException { searcher.close(); reader.decRef(); - assertEquals(-1, reader.readerHandle); + assertThrows(IllegalStateException.class, reader::getReaderPtr); // Calling decRef on closed reader should throw assertThrows(IllegalStateException.class, reader::decRef); @@ -274,7 +286,7 @@ public void testReaderClosesAfterSearchRelease() throws IOException { assertEquals(2, getRefCount(readerR2)); assertNotEquals(-1, readerR1.readerHandle); datafusionSearcher1v2.close(); - assertEquals(-1, readerR1v2.readerHandle); + assertThrows(IllegalStateException.class, readerR1v2::getReaderPtr); assertThrows(IllegalStateException.class, () -> readerR1.decRef()); datafusionSearcherS2.close(); @@ -346,7 +358,7 @@ public void testSearch() throws IOException { assertEquals(1, reader2.files.stream().toList().getFirst().getFiles().size()); searcher1.close(); - assertEquals(-1,reader1.readerHandle); + assertThrows(IllegalStateException.class, reader1::getReaderPtr); searcher2.close(); } @@ -419,10 +431,10 @@ private ShardPath createShardPathWithResourceFiles(String indexName, int shardId private void verifySearchResults(DatafusionSearcher searcher, DatafusionQuery datafusionQuery, Map expectedResults) throws IOException { Map finalRes = new HashMap<>(); - Long streamPointer = searcher.search(datafusionQuery, service.getTokioRuntimePointer()); + Long streamPointer = searcher.search(datafusionQuery, service.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer(), allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer(), allocator); SearchResultsCollector collector = new SearchResultsCollector() { @Override diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index efe110dbb2787..b50ad97254bb6 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -15,6 +15,7 @@ import org.opensearch.action.search.SearchRequest; import org.opensearch.action.search.SearchShardTask; import org.opensearch.cluster.metadata.IndexMetadata; +import org.opensearch.cluster.service.ClusterService; import org.opensearch.common.UUIDs; import org.opensearch.common.lease.Releasable; import org.opensearch.common.lease.Releasables; @@ -81,13 +82,16 @@ public class DataFusionServiceTests extends OpenSearchSingleNodeTestCase { @Mock private Environment mockEnvironment; + @Mock + private ClusterService clusterService; + @Before public void setup() { MockitoAnnotations.openMocks(this); Settings mockSettings = Settings.builder().put("path.data", "/tmp/test-data").build(); when(mockEnvironment.settings()).thenReturn(mockSettings); - service = new DataFusionService(Map.of()); + service = new DataFusionService(Map.of(), clusterService); service.doStart(); } @@ -135,9 +139,9 @@ public void testQueryPhaseExecutor() throws IOException { throw new RuntimeException(e); } - long streamPointer = datafusionSearcher.search(new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()), service.getTokioRuntimePointer()); + long streamPointer = datafusionSearcher.search(new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()), service.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer() , allocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check @@ -195,9 +199,9 @@ public void testQueryThenFetchExecutor() throws IOException, URISyntaxException } DatafusionQuery query = new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()); - long streamPointer = datafusionSearcher.search(query, service.getTokioRuntimePointer()); + long streamPointer = datafusionSearcher.search(query, service.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getTokioRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer() , allocator); ArrayList row_ids_res = new ArrayList<>(); @@ -219,9 +223,9 @@ public void testQueryThenFetchExecutor() throws IOException, URISyntaxException List projections = List.of("message"); query.setProjections(projections); query.setFetchPhaseContext(row_ids_res); - long fetchPhaseStreamPointer = datafusionSearcher.search(query, service.getTokioRuntimePointer()); + long fetchPhaseStreamPointer = datafusionSearcher.search(query, service.getRuntimePointer()); - RecordBatchStream fetchPhaseStream = new RecordBatchStream(fetchPhaseStreamPointer, service.getTokioRuntimePointer() , allocator); + RecordBatchStream fetchPhaseStream = new RecordBatchStream(fetchPhaseStreamPointer, service.getRuntimePointer() , allocator); int total_fetch_results = 0; ArrayList fetch_row_ids_res = new ArrayList<>(); diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java index 395e2fae52e2f..b50eff915d73e 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java @@ -8,6 +8,8 @@ package org.opensearch.datafusion; +import org.mockito.Mock; +import org.opensearch.cluster.service.ClusterService; import org.opensearch.test.OpenSearchTestCase; import java.util.Collections; @@ -24,10 +26,13 @@ public class TestDataFusionServiceTests extends OpenSearchTestCase { private DataFusionService service; + @Mock + private ClusterService clusterService; + @Override public void setUp() throws Exception { super.setUp(); - service = new DataFusionService(Collections.emptyMap()); + service = new DataFusionService(Collections.emptyMap(), clusterService); service.doStart(); } From 2ca0f80adb4a90832fcc29956eca1e433778aa8a Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:25:45 -0800 Subject: [PATCH 088/112] Aligned platform directory with build script (#20028) Signed-off-by: expani --- .../org/opensearch/vectorized/execution/jni/PlatformHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java index 6a8aab8b11e1f..0584c7cae0099 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java @@ -91,7 +91,7 @@ public static String getArchName() { } else if (OS_ARCH.contains("x86")) { return "x86"; } else if (OS_ARCH.contains("aarch64") || OS_ARCH.contains("arm64")) { - return "arm64"; + return "aarch64"; } return OS_ARCH; } From 46b7228612f2c89d3c8c0c81366aa9c59862cb45 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Mon, 17 Nov 2025 13:07:57 -0800 Subject: [PATCH 089/112] Changing path to match gradle native output dir (#20029) --- .../org/opensearch/vectorized/execution/jni/PlatformHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java index 0584c7cae0099..02dd20a2b94eb 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/PlatformHelper.java @@ -87,7 +87,7 @@ public static boolean isLinux() { */ public static String getArchName() { if (OS_ARCH.contains("amd64") || OS_ARCH.contains("x86_64")) { - return "x64"; + return "x86_64"; } else if (OS_ARCH.contains("x86")) { return "x86"; } else if (OS_ARCH.contains("aarch64") || OS_ARCH.contains("arm64")) { From a844c24f5953af3191e576b58ce5747842d1062c Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Tue, 18 Nov 2025 14:41:46 +0530 Subject: [PATCH 090/112] Add parquet benchmarks in missing javadoc (#20043) * Add parquet benchmarks in missing javadoc Signed-off-by: Arpit Bandejiya * add flag to disable java doc check --------- Signed-off-by: Arpit Bandejiya --- gradle/missing-javadoc.gradle | 1 + modules/parquet-data-format/benchmarks/build.gradle | 1 + 2 files changed, 2 insertions(+) diff --git a/gradle/missing-javadoc.gradle b/gradle/missing-javadoc.gradle index da60d3afa0a78..6cc6d9c092a73 100644 --- a/gradle/missing-javadoc.gradle +++ b/gradle/missing-javadoc.gradle @@ -165,6 +165,7 @@ configure([ project(":plugins:engine-datafusion"), //TODO project(":server"), project(":modules:parquet-data-format"), + project(":modules:parquet-data-format:benchmarks") ]) { project.tasks.withType(MissingJavadocTask) { isExcluded = true diff --git a/modules/parquet-data-format/benchmarks/build.gradle b/modules/parquet-data-format/benchmarks/build.gradle index 121666afe3fed..f3ed706b4405c 100644 --- a/modules/parquet-data-format/benchmarks/build.gradle +++ b/modules/parquet-data-format/benchmarks/build.gradle @@ -20,6 +20,7 @@ base { } test.enabled = false +javadoc.enabled = false dependencies { // Dependency on parent parquet-data-format module From 42b1fe498bdca2b80f6fb7ac8ea6efd11837a2bb Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Tue, 18 Nov 2025 17:48:55 +0530 Subject: [PATCH 091/112] github action for datafusion e2e (#19760) * Single commit with all changes * Update the e2e test workflow * Ignore lint * Add missing doc flag * fix newline * remove extra missingdoc flag in action * Add changes to have all queries * Run only DatafusionReaderManager test Signed-off-by: Arpit Bandejiya * Fix 200 status code Signed-off-by: Arpit Bandejiya --------- Signed-off-by: Arpit Bandejiya --- .github/workflows/datafusion-e2e-test.yml | 201 ++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 .github/workflows/datafusion-e2e-test.yml diff --git a/.github/workflows/datafusion-e2e-test.yml b/.github/workflows/datafusion-e2e-test.yml new file mode 100644 index 0000000000000..a95eeadf93bec --- /dev/null +++ b/.github/workflows/datafusion-e2e-test.yml @@ -0,0 +1,201 @@ +name: DataFusion E2E Integration Test + +on: + pull_request: + branches: + - feature/datafusion + push: + branches: + - feature/datafusion + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + env: + RUSTFLAGS: "-A unused_variables -A unused_mut" + + steps: + - name: Checkout OpenSearch + uses: actions/checkout@v4 + with: + path: OpenSearch + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + + - name: Setup Rust + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt + + - name: Install Protocol Buffers + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler + + - name: Install Protocol Buffers + if: runner.os == 'macOS' + run: brew install protobuf + + - name: Install Protocol Buffers + if: runner.os == 'Windows' + run: choco install protoc + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + + - name: Publish OpenSearch to Maven Local + working-directory: OpenSearch + run: ./gradlew publishToMavenLocal -x test -PrustDebug=true + + - name: Checkout SQL Plugin + uses: actions/checkout@v4 + with: + repository: vinaykpud/sql + ref: feature/substrait-plan + path: opensearch-sql + + - name: Publish SQL Plugin to Maven Local + working-directory: opensearch-sql + run: ./gradlew publishToMavenLocal -x test + + - name: Run DataFusionReaderManager Tests + working-directory: OpenSearch + run: ./gradlew :plugins:engine-datafusion:test --tests "org.opensearch.datafusion.DataFusionReaderManagerTests" + + - name: Run OpenSearch with DataFusion Plugin + working-directory: OpenSearch + run: | + ./gradlew run \ + --preserve-data \ + -PremotePlugins="['org.opensearch.plugin:opensearch-job-scheduler:3.3.0.0-SNAPSHOT', 'org.opensearch.plugin:opensearch-sql-plugin:3.3.0.0-SNAPSHOT']" \ + -PinstalledPlugins="['engine-datafusion']" & + + # Wait for OpenSearch to start + timeout 300 bash -c 'until curl -s http://localhost:9200; do sleep 5; done' + + - name: Run E2E Tests + run: | + # Create index + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X PUT 'http://localhost:9200/index-7' \ + -H 'Content-Type: application/json' \ + -d '{ + "settings": { + "number_of_shards": 1, + "number_of_replicas": 0, + "refresh_interval": -1 + }, + "mappings": { + "properties": { + "id": {"type": "keyword"}, + "name": {"type": "keyword"}, + "age": {"type": "integer"}, + "salary": {"type": "long"}, + "score": {"type": "double"}, + "active": {"type": "boolean"}, + "created_date": {"type": "date"} + } + } + }') + if [ "$HTTP_CODE" != "200" ]; then + echo "Failed to create index. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Index documents + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_bulk' \ + -H 'Content-Type: application/json' \ + -d '{"index":{"_index":"index-7"}} + {"id":"1","name":"Alice","age":30,"salary":75000,"score":95.5,"active":true,"created_date":"2024-01-15"} + {"index":{"_index":"index-7"}} + {"id":"2","name":"Bob","age":25,"salary":60000,"score":88.3,"active":true,"created_date":"2024-02-20"} + {"index":{"_index":"index-7"}} + {"id":"3","name":"Charlie","age":35,"salary":90000,"score":92.7,"active":false,"created_date":"2024-03-10"} + {"index":{"_index":"index-7"}} + {"id":"4","name":"Diana","age":28,"salary":70000,"score":89.1,"active":true,"created_date":"2024-04-05"} + {"index":{"_index":"index-7"}} + {"id":"5","name":"Bob","age":30,"salary":55000,"score":81.1,"active":true,"created_date":"2024-04-05"} + {"index":{"_index":"index-7"}} + {"id":"6","name":"Diana","age":35,"salary":65000,"score":71.1,"active":true,"created_date":"2024-02-05"} + ') + if [ "$HTTP_CODE" != "200" ]; then + echo "Failed to index documents. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Refresh index + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'localhost:9200/index-7/_refresh') + if [ "$HTTP_CODE" != "200" ]; then + echo "Failed to refresh index. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 1: stats with min, max, avg + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats count(), min(age) as min, max(age) as max, avg(age) as avg"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 1 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 2: count by name with sort + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats count() as c by name | sort c"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 2 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 3: count and sum by name with sort + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats count(), sum(age) as c by name | sort c"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 3 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 4: where clause with stats + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | where name = \"Bob\" | stats sum(age)"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 4 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 5: sum by name sorted by sum + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats sum(age) as s by name | sort s"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 5 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 6: sum by name sorted by name + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats sum(age) as s by name | sort name"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 6 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + # Query 7: count by name + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ + -H 'Content-Type: application/json' \ + -d '{"query": "source=index-7 | stats count() as c by name"}') + if [ "$HTTP_CODE" != "200" ]; then + echo "Query 7 failed. HTTP status: $HTTP_CODE" + exit 1 + fi + + echo "All E2E tests passed successfully!" From 9fdfb3506e947e6479dc452c9512b2ec25b64b09 Mon Sep 17 00:00:00 2001 From: Abhita Lakkabathini <59249463+abhita@users.noreply.github.com> Date: Tue, 18 Nov 2025 22:05:48 +0530 Subject: [PATCH 092/112] Add CacheManager for DataFusion (#19645) * Add CacheManager # Conflicts: # plugins/engine-datafusion/jni/src/lib.rs # plugins/engine-datafusion/jni/src/listing_table.rs # plugins/engine-datafusion/jni/src/row_id_optimizer.rs # plugins/engine-datafusion/jni/src/util.rs # Conflicts: # plugins/engine-datafusion/jni/src/lib.rs # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionQueryJNI.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java # plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java # Conflicts: # plugins/engine-datafusion/jni/src/lib.rs # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/GlobalRuntimeEnv.java # plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java # plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java # plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java # plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java * create CacheManager struct * rebase * add file2 * fix references * cleanup commented code * remove unused references * rebase1 * Add Native Handles * moving cacheOperations to use runtimeEnv * fix references * runtimeHandle reference * rename configPtr reference --- plugins/engine-datafusion/Cargo.toml | 20 +- plugins/engine-datafusion/jni/Cargo.toml | 2 + plugins/engine-datafusion/jni/src/cache.rs | 186 ++++++ .../jni/src/custom_cache_manager.rs | 294 ++++++++ plugins/engine-datafusion/jni/src/lib.rs | 631 +++++++++++++++--- .../jni/src/listing_table.rs | 12 +- .../jni/src/row_id_optimizer.rs | 23 +- plugins/engine-datafusion/jni/src/util.rs | 61 +- .../datafusion/DataFusionException.java | 19 + .../datafusion/DataFusionPlugin.java | 26 +- .../datafusion/DataFusionService.java | 5 + .../datafusion/DatafusionEngine.java | 19 +- .../datafusion/core/DataFusionRuntimeEnv.java | 12 +- .../datafusion/jni/NativeBridge.java | 17 +- .../jni/handle/GlobalRuntimeHandle.java | 4 +- .../search/DatafusionReaderManager.java | 42 ++ .../datafusion/search/DatafusionSearcher.java | 4 + .../datafusion/search/cache/CacheManager.java | 110 +++ .../search/cache/CacheSettings.java | 47 ++ .../datafusion/search/cache/CacheUtils.java | 116 ++++ .../DataFusionReaderManagerTests.java | 25 +- .../datafusion/DataFusionServiceTests.java | 20 + .../DatafusionCacheManagerTests.java | 259 +++++++ .../TestDataFusionServiceTests.java | 22 + .../src/test/resources/hits1.parquet | Bin 0 -> 1598981 bytes .../src/test/resources/hits2.parquet | Bin 0 -> 76975 bytes .../src/test/resources/hits3.parquet | Bin 0 -> 7806 bytes .../parquet_file_generation_0.parquet | Bin 3635 -> 3644 bytes .../parquet_file_generation_1.parquet | Bin 3635 -> 3643 bytes .../parquet_file_generation_2.parquet | Bin 3635 -> 3683 bytes 30 files changed, 1850 insertions(+), 126 deletions(-) create mode 100644 plugins/engine-datafusion/jni/src/cache.rs create mode 100644 plugins/engine-datafusion/jni/src/custom_cache_manager.rs create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionException.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DatafusionCacheManagerTests.java create mode 100644 plugins/engine-datafusion/src/test/resources/hits1.parquet create mode 100644 plugins/engine-datafusion/src/test/resources/hits2.parquet create mode 100755 plugins/engine-datafusion/src/test/resources/hits3.parquet diff --git a/plugins/engine-datafusion/Cargo.toml b/plugins/engine-datafusion/Cargo.toml index 5813bc5cc27d4..23bdc7e5f8ad6 100644 --- a/plugins/engine-datafusion/Cargo.toml +++ b/plugins/engine-datafusion/Cargo.toml @@ -6,21 +6,23 @@ members = [ [workspace.dependencies] # DataFusion dependencies -datafusion = "49.0.0" -datafusion-expr = "49.0.0" -datafusion-datasource = "49.0.0" -arrow-json = "55.2" -arrow = { version = "55.2", features = ["ffi", "ipc_compression"] } +datafusion = "50.0.0" +datafusion-expr = "50.0.0" +datafusion-datasource = "50.0.0" +arrow-json = "56.2" +arrow = { version = "56.2", features = ["ffi", "ipc_compression"] } #arrow = "55.2.0" -arrow-array = "55.2.0" -arrow-schema = "55.2.0" -arrow-buffer = "55.2.0" +arrow-array = "56.2.0" +arrow-schema = "56.2.0" +arrow-buffer = "56.2.0" +downcast-rs = "1.2" + # JNI dependencies jni = "0.21" # Substrait support -datafusion-substrait = "49.0.0" +datafusion-substrait = "50.0.0" prost = "0.13" diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index 9116d1317ce19..c52f8c4e61b5d 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -21,6 +21,7 @@ arrow-array = { workspace = true } arrow-schema = { workspace = true } arrow-buffer = { workspace = true } + # JNI dependencies jni = { workspace = true } @@ -47,6 +48,7 @@ log ={ workspace = true } # Parquet support parquet = { workspace = true } + # Object store for file access object_store = { workspace = true } url = { workspace = true } diff --git a/plugins/engine-datafusion/jni/src/cache.rs b/plugins/engine-datafusion/jni/src/cache.rs new file mode 100644 index 0000000000000..e1ca93ba6b34a --- /dev/null +++ b/plugins/engine-datafusion/jni/src/cache.rs @@ -0,0 +1,186 @@ +use std::sync::{Arc, Mutex}; +use jni::JNIEnv; + +use datafusion::execution::cache::cache_manager::{FileMetadataCache}; +use datafusion::execution::cache::cache_unit::{DefaultFilesMetadataCache}; +use datafusion::execution::cache::CacheAccessor; +use object_store::ObjectMeta; + +pub const ALL_CACHE_TYPES: &[&str] = &[CACHE_TYPE_METADATA, CACHE_TYPE_STATS]; + +// Cache type constants +pub const CACHE_TYPE_METADATA: &str = "METADATA"; +pub const CACHE_TYPE_STATS: &str = "STATISTICS"; + +// Helper function to handle cache errors +fn handle_cache_error(env: &mut JNIEnv, operation: &str, error: &str) { + let msg = format!("Cache {} failed: {}", operation, error); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); +} + +// Helper function to log cache operations +fn log_cache_error(operation: &str, error: &str) { + eprintln!("[CACHE ERROR] {} operation failed: {}", operation, error); +} + +// Note: MutexFileMetadataCache wrapper has been removed as DefaultFilesMetadataCache +// is already thread-safe with its own internal Mutex. +// The double-locking was causing race conditions and crashes. + +// Note: create_cache function has been removed. Cache creation is now handled through CacheManagerConfig only. +// metadata_cache_put, metadata_cache_remove, and metadata_cache_get functions have been moved to CustomCacheManager as internal methods + +// Wrapper to make Mutex implement FileMetadataCache +pub struct MutexFileMetadataCache { + pub inner: Mutex, +} + +impl MutexFileMetadataCache { + pub fn new(cache: DefaultFilesMetadataCache) -> Self { + Self { + inner: Mutex::new(cache), + } + } + + pub fn clear(&self) { + if let Ok(mut cache) = self.inner.lock() { + cache.clear(); + } + } + + pub fn update_cache_limit(&self, new_limit: usize) { + if let Ok(mut cache) = self.inner.lock() { + cache.update_cache_limit(new_limit); + } + } + + pub fn cache_limit(&self) -> usize { + if let Ok(cache) = self.inner.lock() { + cache.cache_limit() + } else { + 0 + } + } +} + +// Implement CacheAccessor which is required by FileMetadataCache +impl CacheAccessor> for MutexFileMetadataCache { + type Extra = ObjectMeta; + + fn get(&self, k: &ObjectMeta) -> Option> { + match self.inner.lock() { + Ok(cache) => cache.get(k), + Err(e) => { + log_cache_error("get", &e.to_string()); + None + } + } + } + + fn get_with_extra(&self, k: &ObjectMeta, extra: &Self::Extra) -> Option> { + match self.inner.lock() { + Ok(cache) => cache.get_with_extra(k, extra), + Err(e) => { + log_cache_error("get_with_extra", &e.to_string()); + None + } + } + } + + fn put(&self, k: &ObjectMeta, v: Arc) -> Option> { + match self.inner.lock() { + Ok(mut cache) => cache.put(k, v), + Err(e) => { + log_cache_error("put", &e.to_string()); + None + } + } + } + + fn put_with_extra(&self, k: &ObjectMeta, v: Arc, e: &Self::Extra) -> Option> { + match self.inner.lock() { + Ok(mut cache) => cache.put_with_extra(k, v, e), + Err(err) => { + log_cache_error("put_with_extra", &err.to_string()); + None + } + } + } + + fn remove(&mut self, k: &ObjectMeta) -> Option> { + match self.inner.lock() { + Ok(mut cache) => cache.remove(k), + Err(e) => { + log_cache_error("remove", &e.to_string()); + None + } + } + } + + fn contains_key(&self, k: &ObjectMeta) -> bool { + match self.inner.lock() { + Ok(cache) => cache.contains_key(k), + Err(e) => { + log_cache_error("contains_key", &e.to_string()); + false + } + } + } + + fn len(&self) -> usize { + match self.inner.lock() { + Ok(cache) => cache.len(), + Err(e) => { + log_cache_error("len", &e.to_string()); + 0 + } + } + } + + fn clear(&self) { + match self.inner.lock() { + Ok(mut cache) => cache.clear(), + Err(e) => log_cache_error("clear", &e.to_string()), + } + } + + fn name(&self) -> String { + match self.inner.lock() { + Ok(cache) => cache.name(), + Err(e) => { + log_cache_error("name", &e.to_string()); + "cache_error".to_string() + } + } + } +} + +impl FileMetadataCache for MutexFileMetadataCache { + fn cache_limit(&self) -> usize { + match self.inner.lock() { + Ok(cache) => cache.cache_limit(), + Err(e) => { + log_cache_error("cache_limit", &e.to_string()); + 0 + } + } + } + + fn update_cache_limit(&self, limit: usize) { + match self.inner.lock() { + Ok(mut cache) => cache.update_cache_limit(limit), + Err(e) => log_cache_error("update_cache_limit", &e.to_string()), + } + } + + fn list_entries(&self) -> std::collections::HashMap { + match self.inner.lock() { + Ok(cache) => cache.list_entries(), + Err(e) => { + log_cache_error("list_entries", &e.to_string()); + std::collections::HashMap::new() + } + } + } +} diff --git a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs new file mode 100644 index 0000000000000..366dc53481cdc --- /dev/null +++ b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs @@ -0,0 +1,294 @@ +use std::sync::{Arc, Mutex}; +use datafusion::execution::cache::cache_manager::{FileMetadataCache, CacheManagerConfig}; +use datafusion::execution::cache::cache_unit::DefaultFilesMetadataCache; +use datafusion::execution::cache::CacheAccessor; +use tokio::runtime::Runtime; +use crate::cache::MutexFileMetadataCache; +use crate::util::{create_object_meta_from_file, construct_file_metadata}; + +/// Custom CacheManager that holds cache references directly +pub struct CustomCacheManager { + /// Direct reference to the file metadata cache + file_metadata_cache: Option>, + // Future: Statistics cache when implemented + // stats_cache: Option>, +} + +impl CustomCacheManager { + /// Create a new CustomCacheManager + pub fn new() -> Self { + Self { + file_metadata_cache: None, + } + } + + /// Set the file metadata cache + pub fn set_file_metadata_cache(&mut self, cache: Arc) { + self.file_metadata_cache = Some(cache); + println!("[CACHE INFO] File metadata cache set in CustomCacheManager"); + } + + /// Get the file metadata cache as Arc for DataFusion + pub fn get_file_metadata_cache_for_datafusion(&self) -> Option> { + self.file_metadata_cache.as_ref().map(|cache| cache.clone() as Arc) + } + + /// Build a CacheManagerConfig from the caches stored in this CustomCacheManager + pub fn build_cache_manager_config(&self) -> CacheManagerConfig { + let mut config = CacheManagerConfig::default(); + + // Add file metadata cache if available + if let Some(cache) = self.get_file_metadata_cache_for_datafusion() { + config = config.with_file_metadata_cache(Some(cache)); + } + + // Future: Add stats cache when implemented + + config + } + + /// Add multiple files to all applicable caches + pub fn add_files(&self, file_paths: &[String]) -> Result, String> { + let mut results = Vec::new(); + + for file_path in file_paths { + let mut any_success = false; + let mut errors = Vec::new(); + + // Add to metadata cache + match self.metadata_cache_put(file_path) { + Ok(true) => { + any_success = true; + println!("[CACHE INFO] Added file to metadata cache: {}", file_path); + } + Ok(false) => { + println!("[CACHE INFO] File not applicable for metadata cache: {}", file_path); + } + Err(e) => { + errors.push(format!("Metadata cache: {}", e)); + } + } + + // Future: Add to stats cache when implemented + + let success = if !errors.is_empty() && !any_success { + false + } else { + any_success + }; + + results.push((file_path.clone(), success)); + } + + Ok(results) + } + + /// Remove multiple files from all caches + pub fn remove_files(&self, file_paths: &[String]) -> Result, String> { + let mut results = Vec::new(); + + for file_path in file_paths { + let mut any_removed = false; + let mut errors = Vec::new(); + + // Remove from metadata cache + match create_object_meta_from_file(file_path) { + Ok(object_metas) => { + // Get the cache directly from our stored reference + if let Some(cache) = &self.file_metadata_cache { + match cache.inner.lock() { + Ok(mut cache_guard) => { + // Remove the first ObjectMeta from the vector + if let Some(object_meta) = object_metas.first() { + if cache_guard.remove(object_meta).is_some() { + println!("Cache removed for: {}", file_path); + any_removed = true; + println!("[CACHE INFO] Removed file from metadata cache: {}", file_path); + } else { + println!("Item not found in cache: {}", file_path); + println!("[CACHE INFO] File not found in metadata cache: {}", file_path); + } + } + } + Err(e) => { + errors.push(format!("Metadata cache: Cache remove failed: {}", e)); + } + } + } else { + errors.push("No metadata cache configured".to_string()); + } + } + Err(e) => { + errors.push(format!("Failed to get object metadata: {}", e)); + } + } + + // Future: Remove from stats cache when implemented + + let removed = if !errors.is_empty() && !any_removed { + false + } else { + any_removed + }; + + results.push((file_path.clone(), removed)); + } + + Ok(results) + } + + /// Check if a file exists in any cache + pub fn contains_file(&self, file_path: &str) -> bool { + // Check metadata cache + match create_object_meta_from_file(file_path) { + Ok(object_metas) => { + if let Some(cache) = &self.file_metadata_cache { + if let Some(object_meta) = object_metas.first() { + match cache.get(object_meta) { + Some(metadata) => { + println!("Retrieved metadata for: {} - size: {:?}", file_path, metadata.memory_size()); + true + }, + None => { + println!("No metadata found for: {}", file_path); + false + }, + } + } else { + println!("No object metadata returned for: {}", file_path); + false + } + } else { + println!("No metadata cache configured"); + false + } + } + Err(e) => { + println!("Failed to get object metadata for {}: {}", file_path, e); + false + } + } + } + + /// Update the file metadata cache size limit + pub fn update_metadata_cache_limit(&self, new_limit: usize) { + if let Some(cache) = &self.file_metadata_cache { + cache.update_cache_limit(new_limit); + } + } + + /// Get total memory consumed by all caches + pub fn get_total_memory_consumed(&self) -> usize { + let mut total = 0; + + // Add metadata cache memory + if let Some(cache) = &self.file_metadata_cache { + if let Ok(cache_guard) = cache.inner.lock() { + total += cache_guard.memory_used(); + } + } + + // Future: Add stats cache memory when implemented + + total + } + + /// Clear all caches + pub fn clear_all(&self) { + if let Some(cache) = &self.file_metadata_cache { + cache.clear(); + } + // Future: Clear stats cache when implemented + } + + /// Clear specific cache type + pub fn clear_cache_type(&self, cache_type: &str) -> Result<(), String> { + match cache_type { + crate::cache::CACHE_TYPE_METADATA => { + if let Some(cache) = &self.file_metadata_cache { + cache.clear(); + Ok(()) + } else { + Err("No metadata cache configured".to_string()) + } + } + crate::cache::CACHE_TYPE_STATS => { + // Future: Clear stats cache when implemented + Err("Stats cache not yet implemented".to_string()) + } + _ => Err(format!("Unknown cache type: {}", cache_type)) + } + } + + /// Get memory consumed by specific cache type + pub fn get_memory_consumed_by_type(&self, cache_type: &str) -> Result { + match cache_type { + crate::cache::CACHE_TYPE_METADATA => { + if let Some(cache) = &self.file_metadata_cache { + if let Ok(cache_guard) = cache.inner.lock() { + Ok(cache_guard.memory_used()) + } else { + Err("Failed to lock metadata cache".to_string()) + } + } else { + Err("No metadata cache configured".to_string()) + } + } + crate::cache::CACHE_TYPE_STATS => { + // Future: Get stats cache memory when implemented + Err("Stats cache not yet implemented".to_string()) + } + _ => Err(format!("Unknown cache type: {}", cache_type)) + } + } + + /// Internal method to put metadata into cache + fn metadata_cache_put(&self, file_path: &str) -> Result { + let data_format = if file_path.to_lowercase().ends_with(".parquet") { + "parquet" + } else { + return Ok(false); // Skip unsupported formats + }; + + let object_metas = create_object_meta_from_file(file_path) + .map_err(|e| format!("Failed to get object metadata: {}", e))?; + + let object_meta = object_metas.first() + .ok_or_else(|| "No object metadata returned".to_string())?; + + let store = Arc::new(object_store::local::LocalFileSystem::new()); + + //TODO: Use TokioRuntimePtr to block on the async operation + let metadata = Runtime::new() + .map_err(|e| format!("Failed to create Tokio Runtime: {}", e))? + .block_on(async { + construct_file_metadata(store.as_ref(), object_meta, data_format) + .await + .map_err(|e| format!("Failed to construct file metadata: {}", e)) + })?; + + // Get the cache directly from our stored reference + let cache = self.file_metadata_cache.as_ref() + .ok_or_else(|| "No file metadata cache configured".to_string())?; + + match cache.inner.lock() { + Ok(mut cache_guard) => { + let len_before = cache_guard.len(); + let old_metadata = cache_guard.put(object_meta, metadata); + let len_after = cache_guard.len(); + + if len_after > len_before { + println!("Successfully cached new metadata for: {} (cache: {} -> {})", file_path, len_before, len_after); + Ok(true) + } else if old_metadata.is_some() { + println!("Successfully updated existing metadata for: {} (cache: {})", file_path, len_after); + Ok(true) + } else { + println!("Failed to cache metadata for: {} (cache: {})", file_path, len_after); + Ok(false) + } + } + Err(e) => Err(format!("Cache put failed: {}", e)) + } + } +} diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 6dc218bb1e431..dddf25a482445 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -1,3 +1,4 @@ +use std::num::NonZeroUsize; /* * SPDX-License-Identifier: Apache-2.0 * @@ -5,8 +6,20 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ -use arrow_array::ffi::FFI_ArrowArray; +use std::ptr::addr_of_mut; +use datafusion_datasource::PartitionedFile; +use datafusion_datasource::file_groups::FileGroup; +use datafusion_datasource::file_scan_config::FileScanConfigBuilder; +use datafusion_datasource::source::DataSourceExec; +use jni::objects::{JByteArray, JClass, JObject}; +use std::collections::{BTreeSet, HashMap}; +use jni::objects::JLongArray; +use jni::sys::{jbyteArray, jlong, jstring}; +use jni::JNIEnv; +use std::sync::Arc; use arrow_array::{Array, StructArray}; +use arrow_array::ffi::FFI_ArrowArray; +use arrow_schema::DataType; use arrow_schema::ffi::FFI_ArrowSchema; use datafusion::{ common::DataFusionError, @@ -17,69 +30,50 @@ use datafusion::{ datasource::physical_plan::parquet::{ParquetAccessPlan, RowGroupAccess}, datasource::physical_plan::ParquetSource, execution::cache::cache_manager::CacheManagerConfig, - execution::cache::cache_unit::DefaultListFilesCache, + execution::cache::cache_unit::{DefaultListFilesCache,DefaultFilesMetadataCache}, execution::cache::CacheAccessor, execution::context::SessionContext, execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, - execution::TaskContext - , + execution::TaskContext, parquet::arrow::arrow_reader::RowSelector, physical_plan::{ExecutionPlan, SendableRecordBatchStream}, - prelude::SessionConfig, prelude::*, DATAFUSION_VERSION, }; -use jni::objects::{JByteArray, JClass, JObject}; -use jni::objects::JLongArray; -use jni::sys::{jbyteArray, jlong, jstring}; -use jni::JNIEnv; -use std::collections::{BTreeSet, HashMap}; use std::default::Default; -use std::future::Future; -use std::ptr::addr_of_mut; -use std::sync::Arc; use std::time::Instant; +mod util; +mod row_id_optimizer; mod listing_table; +mod cache; +mod custom_cache_manager; mod memory; -mod row_id_optimizer; -mod util; -use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; -use crate::memory::{CustomMemoryPool, Monitor, MonitoredMemoryPool}; +use crate::custom_cache_manager::CustomCacheManager; use crate::row_id_optimizer::ProjectRowIdOptimizer; use crate::util::{ - create_file_metadata_from_filenames, parse_string_arr, set_object_result_error, + create_file_meta_from_filenames, parse_string_arr, set_object_result_error, set_object_result_ok, }; -use arrow_schema::DataType; -use datafusion::catalog::TableProvider; use datafusion::execution::memory_pool::{GreedyMemoryPool, TrackConsumersPool}; -use datafusion_datasource::file_groups::FileGroup; -use datafusion_datasource::file_scan_config::FileScanConfigBuilder; -use datafusion_datasource::source::DataSourceExec; -use datafusion_datasource::PartitionedFile; -use datafusion_expr::registry::FunctionRegistry; -use datafusion_substrait::logical_plan::consumer::{ - from_substrait_plan, - SubstraitConsumer, -}; +use datafusion_substrait::logical_plan::consumer::from_substrait_plan; use datafusion_substrait::substrait::proto::Plan; -use futures::TryStreamExt; -use jni::objects::{JObjectArray, JString}; use object_store::ObjectMeta; use prost::Message; -use std::io::Write; -use std::num::NonZeroUsize; -use std::result; use tokio::runtime::Runtime; +use std::result; pub type Result = result::Result; // NativeBridge JNI implementations +use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; +use jni::objects::{JObjectArray, JString}; +use crate::memory::{CustomMemoryPool, Monitor, MonitoredMemoryPool}; struct DataFusionRuntime { runtime_env: RuntimeEnv, + custom_cache_manager: Option, tokio_runtime: Runtime, monitor: Arc, } @@ -88,7 +82,8 @@ struct DataFusionRuntime { pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlobalRuntime( _env: JNIEnv, _class: JClass, - memory_pool_limit: jlong + memory_pool_limit: jlong, + cache_manager_ptr: jlong ) -> jlong { let monitor = Arc::new(Monitor::default()); let memory_pool = Arc::new(MonitoredMemoryPool::new( @@ -99,19 +94,41 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlo monitor.clone(), )); - let runtime_env = RuntimeEnvBuilder::default() - .with_memory_pool(memory_pool) - .build().unwrap(); + if cache_manager_ptr != 0 { + // Take ownership of the CustomCacheManager + let custom_cache_manager = unsafe { *Box::from_raw(cache_manager_ptr as *mut CustomCacheManager) }; + let cache_manager_config = custom_cache_manager.build_cache_manager_config(); + + let runtime_env = RuntimeEnvBuilder::new().with_cache_manager(cache_manager_config) + .with_memory_pool(memory_pool.clone()) + .build().unwrap(); + + let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); + + let runtime = DataFusionRuntime { + runtime_env, + custom_cache_manager: Some(custom_cache_manager), + tokio_runtime, + monitor, + }; + + Box::into_raw(Box::new(runtime)) as jlong + } else { + let runtime_env = RuntimeEnvBuilder::new() + .with_memory_pool(memory_pool) + .build().unwrap(); - let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); + let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); - let runtime = DataFusionRuntime { - runtime_env, - tokio_runtime, - monitor, - }; + let runtime = DataFusionRuntime { + runtime_env, + custom_cache_manager: None, + tokio_runtime, + monitor, + }; - Box::into_raw(Box::new(runtime)) as jlong + Box::into_raw(Box::new(runtime)) as jlong + } } #[no_mangle] @@ -125,6 +142,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeGlob } } + +/// Create a new DataFusion session context #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createSessionContext( _env: JNIEnv, @@ -140,6 +159,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createSes Box::into_raw(Box::new(context)) as jlong } +/// Close and cleanup a DataFusion context #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeSessionContext( _env: JNIEnv, @@ -151,6 +171,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeSess } } +/// Get version information #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersionInfo( env: JNIEnv, @@ -165,6 +186,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersio .as_raw() } +/// Get version information (legacy method name) #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_registerCsvDirectory( _env: JNIEnv, @@ -178,18 +200,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_registerC 0 } - #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_printMemoryPoolAllocation( - _env: JNIEnv, +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCustomCacheManager( + mut env: JNIEnv, _class: JClass, - runtime_env_ptr: jlong, -) { - let runtime = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - println!( - "[RUST]: Memory pool stats - Current: {:?}", - runtime.monitor.clone() - ); +) -> jlong { + // Create CustomCacheManager without any config + let manager = custom_cache_manager::CustomCacheManager::new(); + Box::into_raw(Box::new(manager)) as jlong } #[no_mangle] @@ -221,7 +239,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createDat } }; - let files_metadata = match create_file_metadata_from_filenames(&table_path, files.clone()) { + let files_metadata = match create_file_meta_from_filenames(&table_path, files.clone()) { Ok(metadata) => metadata, Err(err) => { let _ = env.throw_new( @@ -259,13 +277,22 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeData } } +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_destroyTokioRuntime( + mut env: JNIEnv, + _class: JClass, + tokio_runtime_ptr: jlong +) { + let _ = unsafe { Box::from_raw(tokio_runtime_ptr as *mut Runtime) }; +} + pub struct ShardView { table_path: ListingTableUrl, - files_metadata: Arc>, + files_metadata: Arc>, } impl ShardView { - pub fn new(table_path: ListingTableUrl, files_metadata: Vec) -> Self { + pub fn new(table_path: ListingTableUrl, files_metadata: Vec) -> Self { let files_metadata = Arc::new(files_metadata); ShardView { table_path, @@ -277,24 +304,24 @@ impl ShardView { self.table_path.clone() } - pub fn files_metadata(&self) -> Arc> { + pub fn files_metadata(&self) -> Arc> { self.files_metadata.clone() } } #[derive(Debug, Clone)] -struct FileMetadata { +struct CustomFileMeta { row_group_row_counts: Arc>, row_base: Arc, object_meta: Arc, } -impl FileMetadata { +impl CustomFileMeta { pub fn new(row_group_row_counts: Vec, row_base: i64, object_meta: ObjectMeta) -> Self { let row_group_row_counts = Arc::new(row_group_row_counts); let row_base = Arc::new(row_base); let object_meta = Arc::new(object_meta); - FileMetadata { + CustomFileMeta { row_group_row_counts, row_base, object_meta, @@ -334,26 +361,26 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu let runtimeEnv = &runtime.runtime_env; let table_path = shard_view.table_path(); - let files_metadata = shard_view.files_metadata(); + let files_meta = shard_view.files_metadata(); let object_meta: Arc> = Arc::new( - files_metadata + files_meta .iter() .map(|metadata| (*metadata.object_meta).clone()) .collect(), ); - - let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), object_meta); let runtime_env = RuntimeEnvBuilder::from_runtime_env(runtimeEnv) .with_cache_manager( - CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache.clone())), + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache.clone())) + .with_file_metadata_cache(Some(runtimeEnv.cache_manager.get_file_metadata_cache())), ) .build() .unwrap(); + // TODO: get config from CSV DataFormat let mut config = SessionConfig::new(); config.options_mut().execution.parquet.pushdown_filters = false; @@ -372,15 +399,14 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu let file_format = ParquetFormat::new(); let listing_options = ListingOptions::new(Arc::new(file_format)) .with_file_extension(".parquet") // TODO: take this as parameter - .with_files_metadata(files_metadata) + .with_files_metadata(files_meta) .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int64)]); // Ideally the executor will give this runtime.tokio_runtime.block_on(async { let resolved_schema = listing_options .infer_schema(&ctx.state(), &table_path.clone()) - .await - .unwrap(); + .await.unwrap(); let config = ListingTableConfig::new(table_path.clone()) .with_listing_options(listing_options) @@ -461,6 +487,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu duration1.as_millis() ); + // set_projections(env, projections, callback); stream_ptr }) } @@ -554,10 +581,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNex let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; runtime.tokio_runtime.block_on(async { //let fetch_start = std::time::Instant::now(); - let next = stream.try_next().await; + let next = futures::StreamExt::next(stream).await; //let fetch_time = fetch_start.elapsed(); match next { - Ok(Some(batch)) => { + Some(Ok(batch)) => { //let convert_start = std::time::Instant::now(); // Convert to struct array for compatibility with FFI //println!("Num rows : {}", batch.num_rows()); @@ -572,10 +599,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNex // println!("Fetch: {:?}, Convert: {:?}, Callback: {:?}", // fetch_time, convert_time, callback_time); } - Ok(None) => { + None => { set_object_result_ok(&mut env, callback, 0 as *mut FFI_ArrowSchema); } - Err(err) => { + Some(Err(err)) => { set_object_result_error(&mut env, callback, &err); } } @@ -679,7 +706,8 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager( - CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)), + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)) + .with_file_metadata_cache(Some(runtime.runtime_env.cache_manager.get_file_metadata_cache())), ) .build() .unwrap(); @@ -806,7 +834,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe async fn create_access_plans( row_ids: Vec, - files_metadata: Arc>, + files_metadata: Arc>, ) -> Result, DataFusionError> { let mut access_plans = Vec::new(); @@ -920,7 +948,454 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamClo _class: JClass, stream: jlong, ) { - if stream != 0 { - let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; + let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; +} + +/// Destroy a CustomCacheManager instance +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_destroyCustomCacheManager( + mut env: JNIEnv, + _class: JClass, + cache_manager_ptr: jlong, +) { + if cache_manager_ptr != 0 { + // Simply destroy the CustomCacheManager by converting back to Box and letting it drop + let _ = unsafe { Box::from_raw(cache_manager_ptr as *mut custom_cache_manager::CustomCacheManager) }; + println!("[CACHE INFO] CustomCacheManager destroyed"); + } +} + +/// Generic cache creation method that handles all cache types +/// This creates a cache and stores it in CustomCacheManager +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCache( + mut env: JNIEnv, + _class: JClass, + cache_manager_ptr: jlong, + cache_type: JString, + size_limit: jlong, + eviction_type: JString, +) -> jlong { + if cache_manager_ptr == 0 { + let _ = env.throw_new("java/lang/DataFusionException", "CustomCacheManager pointer is null"); + return 0; + } + + // Convert Java strings to Rust strings + let cache_type_str: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache_type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + }; + + let eviction_type_str: String = match env.get_string(&eviction_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert eviction_type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + }; + + println!("[CACHE INFO] Creating cache: type={}, size_limit={}, eviction_type={}", + cache_type_str, size_limit, eviction_type_str); + + let manager = unsafe { &mut *(cache_manager_ptr as *mut custom_cache_manager::CustomCacheManager) }; + + match cache_type_str.as_str() { + cache::CACHE_TYPE_METADATA => { + // Create a new metadata cache with MutexFileMetadataCache wrapper + let inner_cache = DefaultFilesMetadataCache::new(size_limit as usize); + let metadata_cache = Arc::new(cache::MutexFileMetadataCache::new(inner_cache)); + + // Set it in CustomCacheManager + manager.set_file_metadata_cache(metadata_cache); + println!("[CACHE INFO] Successfully created {} cache in CustomCacheManager", cache_type_str); + } + cache::CACHE_TYPE_STATS => { + let msg = "Stats cache not yet implemented"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", msg); + return 0; + } + _ => { + let msg = format!("Invalid cache type: {}", cache_type_str); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + } + + // Return success indicator + 0 +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerAddFiles( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + files: JObjectArray, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + // Check if custom_cache_manager exists + match &runtime_env.custom_cache_manager { + Some(manager) => { + // Parse the array of file paths + let file_paths: Vec = match parse_string_arr(&mut env, files) { + Ok(paths) => paths, + Err(e) => { + let msg = format!("Failed to parse file paths array: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + // Use the add_files method directly + match manager.add_files(&file_paths) { + Ok(results) => { + let mut failed_files = Vec::new(); + for (file_path, success) in results { + if !success { + failed_files.push(file_path); + } + } + + if !failed_files.is_empty() { + let msg = format!("Failed to add {} files to cache: {:?}", failed_files.len(), failed_files); + eprintln!("[CACHE ERROR] {}", msg); + } + } + Err(e) => { + let msg = format!("Failed to add files to cache: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerRemoveFiles( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + files: JObjectArray, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + // Parse the array of file paths + let file_paths: Vec = match parse_string_arr(&mut env, files) { + Ok(paths) => paths, + Err(e) => { + let msg = format!("Failed to parse file paths array: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + // Check if custom_cache_manager exists + match &runtime_env.custom_cache_manager { + Some(manager) => { + // Use the remove_files method directly + match manager.remove_files(&file_paths) { + Ok(results) => { + let mut failed_files = Vec::new(); + for (file_path, removed) in results { + if !removed { + failed_files.push(file_path); + } + } + + if !failed_files.is_empty() { + let msg = format!("Failed to remove {} files from cache: {:?}", failed_files.len(), failed_files); + eprintln!("[CACHE ERROR] {}", msg); + } + } + Err(e) => { + let msg = format!("Failed to remove files from cache: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClear( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + manager.clear_all(); + println!("[CACHE INFO] Successfully cleared all caches"); + } None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerUpdateSizeLimitForCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, + new_size_limit: jlong, +) -> bool { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return false; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.update_metadata_cache_limit(new_size_limit as usize); + true + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + false + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + return false; + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetMemoryConsumedForCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, +) -> jlong { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return 0; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return 0; + } + }; + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.get_total_memory_consumed() as jlong + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + 0 + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + return 0; + } + } +} + +/// Get total memory consumed by all caches +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetTotalMemoryConsumed( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, +) -> jlong { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return 0; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + let total = manager.get_total_memory_consumed(); + total as jlong + } + None => { + 0 + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClearByCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match manager.clear_cache_type(&cache_type) { + Ok(_) => { + println!("[CACHE INFO] Cache Type: {} cleared", cache_type); + } + Err(e) => { + eprintln!("[CACHE ERROR] {}", e); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &e); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + + +// Method added for Testing purposes only +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetItemByCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, + file_path: JString, +) -> bool { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return false; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + let file_path: String = match env.get_string(&file_path) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert file path string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.contains_file(&file_path) + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + false + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + false + } } } diff --git a/plugins/engine-datafusion/jni/src/listing_table.rs b/plugins/engine-datafusion/jni/src/listing_table.rs index b1ec8e7fdc445..68f1547d46c71 100644 --- a/plugins/engine-datafusion/jni/src/listing_table.rs +++ b/plugins/engine-datafusion/jni/src/listing_table.rs @@ -25,7 +25,7 @@ //! The table implementation. -use crate::FileMetadata; +use crate::CustomFileMeta; use arrow::datatypes::{DataType, Field, SchemaBuilder, SchemaRef}; use arrow_schema::Schema; use async_trait::async_trait; @@ -43,7 +43,7 @@ use datafusion::execution::{ config::SessionConfig, }; use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; -use datafusion::physical_expr::schema_rewriter::PhysicalExprAdapterFactory; +use datafusion::physical_expr_adapter::schema_rewriter::PhysicalExprAdapterFactory; use datafusion::physical_expr_common::sort_expr::LexOrdering; use datafusion::physical_plan::{empty::EmptyExec, ExecutionPlan, Statistics}; use datafusion::{ @@ -302,7 +302,7 @@ impl ListingTableConfig { /// # Errors /// * if `self.options` is not set. See [`Self::with_listing_options`] pub async fn infer_schema(self, state: &dyn Session) -> Result { - match self.options { + match self.options { Some(options) => { let ListingTableConfig { table_paths, @@ -485,7 +485,7 @@ pub struct ListingOptions { /// single element. pub file_sort_order: Vec>, - pub files_metadata: Arc>, + pub files_metadata: Arc> } impl ListingOptions { @@ -538,7 +538,7 @@ impl ListingOptions { self } - pub fn with_files_metadata(mut self, files_metadata: Arc>) -> Self { + pub fn with_files_metadata(mut self, files_metadata: Arc>) -> Self { self.files_metadata = files_metadata.clone(); self } @@ -1121,6 +1121,8 @@ impl ListingTable { let mut cumulative_row_base = 0; let mut file_row_bases: HashMap = HashMap::new(); + println!("Options: {:?}",self.options.files_metadata); + // Process files in order to calculate cumulative row bases for group in &file_groups { for file in group.files() { diff --git a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs index 2be3e19a14d79..b2bdd0216868e 100644 --- a/plugins/engine-datafusion/jni/src/row_id_optimizer.rs +++ b/plugins/engine-datafusion/jni/src/row_id_optimizer.rs @@ -21,13 +21,9 @@ use datafusion::{ }, error::DataFusionError, logical_expr::Operator, - parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder, - physical_expr::{ - expressions::{BinaryExpr, Column}, - PhysicalExpr, - }, + physical_expr::{PhysicalExpr, expressions::{BinaryExpr, Column}}, physical_optimizer::PhysicalOptimizerRule, - physical_plan::{filter::FilterExec, projection::ProjectionExec, ExecutionPlan}, + physical_plan::{ExecutionPlan, filter::FilterExec, projection::{ProjectionExec, ProjectionExpr}}, }; #[derive(Debug)] @@ -190,17 +186,10 @@ impl PhysicalOptimizerRule for ProjectRowIdOptimizer { .index_of("___row_id") .is_ok()) { - projection_exprs.push(( - Arc::new(Column::new( - "___row_id", - projection_exec - .input() - .schema() - .index_of("___row_id") - .unwrap(), - )), - "___row_id".to_string(), - )); + if projection_exec.input().schema().index_of("___row_id").is_ok() { + let row_id_col: Arc = Arc::new(Column::new("___row_id", projection_exec.input().schema().index_of("___row_id").unwrap())); + projection_exprs.push(ProjectionExpr::new(row_id_col, "___row_id".to_string())); + } } let projection = diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index 253f628a29d99..c79d9deb76de2 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -2,19 +2,23 @@ * SPDX-License-Identifier: Apache-2.0 */ -use crate::FileMetadata; use anyhow::Result; use chrono::{DateTime, Utc}; use datafusion::arrow::array::RecordBatch; -use datafusion::error::DataFusionError; -use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use datafusion::execution::cache::cache_manager::FileMetadata; use jni::objects::{JObject, JObjectArray, JString}; use jni::sys::jlong; use jni::JNIEnv; -use object_store::{path::Path as ObjectPath, ObjectMeta}; +use object_store::{path::Path as ObjectPath, ObjectMeta, ObjectStore}; use std::collections::HashMap; use std::error::Error; use std::fs; +use datafusion::error::DataFusionError; +use datafusion::parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; +use crate::CustomFileMeta; +use std::sync::Arc; +use datafusion::datasource::physical_plan::parquet::CachedParquetMetaData; +use datafusion::datasource::physical_plan::parquet::metadata::DFParquetMetadata; /// Set error message from a result using a Consumer Java callback pub fn set_error_message_batch( @@ -28,6 +32,7 @@ pub fn set_error_message_batch( let res: Result<(), Err> = Result::Ok(()); set_error_message(env, callback, res); } + } pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result: Result<(), Err>) { @@ -162,10 +167,10 @@ pub fn throw_exception(env: &mut JNIEnv, message: &str) { let _ = env.throw_new("java/lang/RuntimeException", message); } -pub fn create_file_metadata_from_filenames( +pub fn create_file_meta_from_filenames( base_path: &str, filenames: Vec, -) -> Result, DataFusionError> { +) -> Result, DataFusionError> { let mut row_base: i64 = 0; filenames .into_iter() @@ -204,7 +209,7 @@ pub fn create_file_metadata_from_filenames( .map(|t| DateTime::::from(t)) .unwrap_or_else(|_| Utc::now()); - let file_meta = FileMetadata::new( + let file_meta = CustomFileMeta::new( row_group_row_counts.clone(), row_base, ObjectMeta { @@ -221,3 +226,45 @@ pub fn create_file_metadata_from_filenames( }) .collect() } + +pub fn create_object_meta_from_file(file_path: &str) -> Result, DataFusionError> { + let file_size = fs::metadata(&file_path) + .map(|m| m.len()) + .map_err(|e| DataFusionError::Execution(format!("Failed to get file metadata for {}: {}", file_path, e)))?; + + let modified = fs::metadata(&file_path) + .and_then(|m| m.modified()) + .map(|t| DateTime::::from(t)) + .unwrap_or_else(|_| Utc::now()); + + let object_meta = ObjectMeta { + location: ObjectPath::from(file_path), + last_modified: modified, + size: file_size, + e_tag: None, + version: None, + }; + + Ok(vec![object_meta]) +} + +pub async fn construct_file_metadata( + store: &dyn ObjectStore, + object_meta: &ObjectMeta, + data_format: &str, +) -> Result, Box> { + match data_format.to_lowercase().as_str() { + "parquet" => { + let df_metadata = DFParquetMetadata::new( + store, + object_meta + ); + + let parquet_metadata = df_metadata.fetch_metadata().await?; + let par = CachedParquetMetaData::new(parquet_metadata); + Ok(Arc::new(par)) + }, + _ => Err(format!("Unsupported data format: {}", data_format).into()) + } +} + diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionException.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionException.java new file mode 100644 index 0000000000000..1a34b0e34d62a --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionException.java @@ -0,0 +1,19 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import java.util.logging.Logger; + +public class DataFusionException extends Throwable { + + private static Logger logger = Logger.getLogger(DataFusionException.class.getName()); + public DataFusionException(String errMsg) { + logger.info("DataFusionException: " + errMsg); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java index 2a56a54ff95a3..b26e3f4f33a3f 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionPlugin.java @@ -8,6 +8,12 @@ package org.opensearch.datafusion; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.cluster.metadata.IndexNameExpressionResolver; import org.opensearch.cluster.node.DiscoveryNodes; import org.opensearch.cluster.service.ClusterService; @@ -26,6 +32,7 @@ import org.opensearch.datafusion.search.DatafusionQuery; import org.opensearch.datafusion.search.DatafusionReaderManager; import org.opensearch.datafusion.search.DatafusionSearcher; +import org.opensearch.datafusion.search.cache.CacheSettings; import org.opensearch.env.Environment; import org.opensearch.env.NodeEnvironment; import org.opensearch.index.shard.ShardPath; @@ -47,13 +54,16 @@ import org.opensearch.watcher.ResourceWatcherService; import java.io.IOException; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Supplier; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; + import static org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION; @@ -167,6 +177,10 @@ public List> getSettings() { List> settingList = new ArrayList<>(); settingList.add(MEMORY_POOL_CONFIGURATION_DATAFUSION); + settingList.addAll(Stream.of( + CacheSettings.CACHE_SETTINGS, + CacheSettings.CACHE_ENABLED) + .flatMap(x -> x.stream()).collect(Collectors.toList())); return settingList; } @@ -182,4 +196,14 @@ public List> getSettings() { } return List.of(new ActionHandler<>(NodesDataFusionInfoAction.INSTANCE, TransportNodesDataFusionInfoAction.class)); } +// +// @Override +// public List> getSettings() { +// return Stream.of( +// CacheSettings.CACHE_SETTINGS, +// CacheSettings.CACHE_ENABLED) +// .flatMap(x -> x.stream()) +// .collect(Collectors.toList()).add(MEMORY_POOL_CONFIGURATION_DATAFUSION); +// +// } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 3d7f2ad29bfb0..247570bd21335 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -16,6 +16,7 @@ import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.DataFusionRuntimeEnv; import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.datafusion.search.cache.CacheManager; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -206,4 +207,8 @@ public String getVersion() { version.append("]}"); return version.toString(); } + + public CacheManager getCacheManager() { + return runtimeEnv.getCacheManager(); + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 2f88e8d569f01..6932e6714b827 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -29,6 +29,8 @@ import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.datafusion.search.*; +import org.opensearch.datafusion.search.cache.CacheManager; +import org.opensearch.datafusion.search.cache.CacheUtils; import org.opensearch.index.engine.*; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; @@ -47,6 +49,7 @@ import org.opensearch.search.query.GenericQueryPhaseSearcher; import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; +import org.opensearch.search.query.GenericQueryPhaseSearcher; import java.io.IOException; import java.io.UncheckedIOException; @@ -68,12 +71,20 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService, ShardPath shardPath) throws IOException { this.dataFormat = dataFormat; this.datafusionReaderManager = new DatafusionReaderManager(shardPath.getDataPath().toString(), formatCatalogSnapshot, dataFormat.getName()); this.datafusionService = dataFusionService; + this.cacheManager = datafusionService.getCacheManager(); + if(this.cacheManager!=null) { + datafusionReaderManager.setOnFilesAdded(files -> { + // Handle new files added during refresh + cacheManager.addFilesToCacheManager(files); + }); + } } @Override @@ -109,7 +120,9 @@ public EngineSearcherSupplier acquireSearcherSupplier(Functi searcher = new DatafusionSearcherSupplier(null) { @Override protected DatafusionSearcher acquireSearcherInternal(String source) { - return new DatafusionSearcher(source, reader, () -> {}); + return new DatafusionSearcher(source, reader, + () -> {}); + } @Override @@ -122,6 +135,7 @@ protected void doClose() { } }; } catch (Exception ex) { + logger.error("Failed to acquire searcher {}", ex.toString(), ex); // TODO } return searcher; @@ -144,6 +158,9 @@ public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope sc DatafusionSearcherSupplier searcherSupplier = releasable = (DatafusionSearcherSupplier) acquireSearcherSupplier(wrapper, scope); DatafusionSearcher searcher = searcherSupplier.acquireSearcher(source); releasable = null; + logger.info("Memory consumed by Mcache {} and Acache {}",cacheManager.getMemoryConsumed(CacheUtils.CacheType.METADATA), + cacheManager.getTotalMemoryConsumed()); + return new DatafusionSearcher( source, searcher.getReader(), diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java index 099e9053239df..636c4853e2c4f 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java @@ -14,6 +14,8 @@ import org.opensearch.core.common.unit.ByteSizeUnit; import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.datafusion.jni.handle.GlobalRuntimeHandle; +import org.opensearch.datafusion.search.cache.CacheManager; +import org.opensearch.datafusion.search.cache.CacheUtils; /** * DataFusion runtime environment manager. @@ -23,6 +25,8 @@ public final class DataFusionRuntimeEnv implements AutoCloseable { private final GlobalRuntimeHandle runtimeHandle; + private CacheManager cacheManager; + /** * Controls the memory used for the datafusion query execution */ @@ -38,7 +42,9 @@ public final class DataFusionRuntimeEnv implements AutoCloseable { */ public DataFusionRuntimeEnv(ClusterService clusterService) { long memoryLimit = clusterService.getClusterSettings().get(MEMORY_POOL_CONFIGURATION_DATAFUSION).getBytes(); - this.runtimeHandle = new GlobalRuntimeHandle(memoryLimit); + long cacheManagerConfigPtr = CacheUtils.createCacheConfig(clusterService.getClusterSettings()); + this.runtimeHandle = new GlobalRuntimeHandle(memoryLimit, cacheManagerConfigPtr); + this.cacheManager = new CacheManager(this.runtimeHandle); } /** @@ -49,6 +55,10 @@ public long getPointer() { return runtimeHandle.getPointer(); } + public CacheManager getCacheManager() { + return cacheManager; + } + @Override public void close() { runtimeHandle.close(); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java index e4d9dc23790c7..d8e7f4d569f44 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java @@ -23,7 +23,7 @@ public final class NativeBridge { private NativeBridge() {} // Runtime management - public static native long createGlobalRuntime(long limit); + public static native long createGlobalRuntime(long limit, long cacheManagerPtr); public static native void closeGlobalRuntime(long ptr); // Session management @@ -39,6 +39,21 @@ private NativeBridge() {} public static native void streamGetSchema(long stream, ObjectResultCallback callback); public static native void streamClose(long stream); + // Cache management + public static native long createCustomCacheManager(); + public static native long createCache(long cacheManagerPointer, String cacheType, long sizeLimit, String evictionType); + public static native void cacheManagerAddFiles(long cacheManagerPointer, String[] filePaths); + public static native void cacheManagerRemoveFiles(long cacheManagerPointer, String[] filePaths); + public static native boolean cacheManagerUpdateSizeLimitForCacheType(long cacheManagerPointer, String cacheType, long sizeLimit); + public static native long cacheManagerGetMemoryConsumedForCacheType(long cacheManagerPointer, String cacheType); + public static native long cacheManagerGetTotalMemoryConsumed(long cacheManagerPointer); + public static native void cacheManagerClearByCacheType(long cacheManagerPointer, String cacheType); + public static native void cacheManagerClear(long cacheManagerPointer); + public static native void destroyCustomCacheManager(long cacheManagerPointer); + // For testing-purposes only + public static native boolean cacheManagerGetItemByCacheType(long cacheManagerPointer, String cacheType, String filePath); + + // Reader management public static native long createDatafusionReader(String path, String[] files); public static native void closeDatafusionReader(long ptr); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java index 887056a3f75dd..a170d511a541d 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/GlobalRuntimeHandle.java @@ -16,8 +16,8 @@ */ public final class GlobalRuntimeHandle extends NativeHandle { - public GlobalRuntimeHandle(long memoryLimit) { - super(NativeBridge.createGlobalRuntime(memoryLimit)); + public GlobalRuntimeHandle(long memoryLimit, long cacheManagerConfigPtr) { + super(NativeBridge.createGlobalRuntime(memoryLimit,cacheManagerConfigPtr)); } /** diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index 5040d58073616..7e0ad16d08f8c 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -8,6 +8,11 @@ package org.opensearch.datafusion.search; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; +import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.EngineReaderManager; import org.opensearch.index.engine.exec.FileMetadata; @@ -24,6 +29,7 @@ public class DatafusionReaderManager implements EngineReaderManager> onFilesAdded; // private final Lock refreshLock = new ReentrantLock(); // private final List refreshListeners = new CopyOnWriteArrayList(); @@ -35,6 +41,13 @@ public DatafusionReaderManager(String path, Collection files, Stri this.dataFormat = dataFormat; } + /** + * Set callback for when files are added during refresh + */ + public void setOnFilesAdded(Consumer> onFilesAdded) { + this.onFilesAdded = onFilesAdded; + } + @Override public DatafusionReader acquire() throws IOException { if (current == null) { @@ -60,10 +73,39 @@ public void beforeRefresh() throws IOException { public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { if (didRefresh && catalogSnapshot != null) { DatafusionReader old = this.current; + Collection newFiles = catalogSnapshot.getSearchableFiles(dataFormat); if(old !=null) { release(old); + processFileChanges(old.files, newFiles); + } else { + processFileChanges(List.of(), newFiles); } this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); } } + + private void processFileChanges(Collection oldFiles, Collection newFiles) { + Set oldFilePaths = extractFilePaths(oldFiles); + Set newFilePaths = extractFilePaths(newFiles); + + Set filesToAdd = new HashSet<>(newFilePaths); + filesToAdd.removeAll(oldFilePaths); + + // TODO: Either remove files periodically or let eviction handle stale files + Set filesToRemove = new HashSet<>(oldFilePaths); + filesToRemove.removeAll(newFilePaths); + + if (!filesToAdd.isEmpty() && onFilesAdded != null) { + onFilesAdded.accept(List.copyOf(filesToAdd)); + } + } + + private Set extractFilePaths(Collection files) { + String[] fileNames = files.stream() + .flatMap(writerFileSet -> writerFileSet.getFiles().stream()) + .toArray(String[]::new); + Set paths = new HashSet<>(); + paths.addAll(Arrays.asList(fileNames)); + return paths; + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index a9121eae273e0..e79a162b26897 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -8,7 +8,11 @@ package org.opensearch.datafusion.search; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.datafusion.DataFusionService; +import org.opensearch.datafusion.core.DataFusionRuntimeEnv; import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.index.engine.EngineSearcher; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java new file mode 100644 index 0000000000000..3ef3185e20d11 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java @@ -0,0 +1,110 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search.cache; + + +import java.util.List; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import org.opensearch.datafusion.core.DataFusionRuntimeEnv; +import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.datafusion.jni.handle.GlobalRuntimeHandle; + + +/** + * Manages cache lifecycle for DataFusion caches. + * Holds the cache manager pointer for runtime cache operations. + */ +public class CacheManager { + private static final Logger logger = LogManager.getLogger(CacheManager.class); + + GlobalRuntimeHandle globalRuntimeHandle; + + public CacheManager(GlobalRuntimeHandle runtimeHandle) { + this.globalRuntimeHandle = runtimeHandle; + + } + + public void addFilesToCacheManager(List files){ + try { + if (files == null || files.isEmpty()) { + return; + } + String[] filesArray = files.toArray(new String[0]); + NativeBridge.cacheManagerAddFiles(globalRuntimeHandle.getPointer(), filesArray); + } catch (Exception e) { + logger.error("Error adding files to cache manager: {}", e.getMessage(), e); + } + } + + public void removeFilesFromCacheManager(List files){ + try { + if (files == null || files.isEmpty()) { + return; + } + String[] filesArray = files.toArray(new String[0]); + NativeBridge.cacheManagerRemoveFiles(globalRuntimeHandle.getPointer(), filesArray); + } catch (Exception e) { + logger.error("Error removing files from cache manager: {}", e.getMessage(), e); + } + } + + public void clearAllCache(){ + try { + NativeBridge.cacheManagerClear(globalRuntimeHandle.getPointer()); + } catch (Exception e) { + logger.error("Error clearing cache manager: {}", e.getMessage(), e); + } + } + + public void clearCacheForCacheType(CacheUtils.CacheType cacheType){ + try { + NativeBridge.cacheManagerClearByCacheType(globalRuntimeHandle.getPointer(), cacheType.getCacheTypeName()); + } catch (Exception e) { + logger.error("Error clearing cache manager for cache type {}: {}", cacheType.getCacheTypeName(), e.getMessage(), e); + } + } + + public long getMemoryConsumed(CacheUtils.CacheType cacheType){ + try { + return NativeBridge.cacheManagerGetMemoryConsumedForCacheType(globalRuntimeHandle.getPointer(), cacheType.getCacheTypeName()); + } catch (Exception e) { + logger.error("Error getting memory consumed for cache type {}: {}", cacheType.getCacheTypeName(), e.getMessage(), e); + return 0; + } + } + + public long getTotalMemoryConsumed(){ + try { + return NativeBridge.cacheManagerGetTotalMemoryConsumed(globalRuntimeHandle.getPointer()); + } catch (Exception e) { + logger.error("Error getting total memory consumed: {}", e.getMessage(), e); + return 0; + } + } + + public void updateSizeLimit(CacheUtils.CacheType cacheType, long sizeLimit){ + try { + NativeBridge.cacheManagerUpdateSizeLimitForCacheType(globalRuntimeHandle.getPointer(), cacheType.getCacheTypeName(), sizeLimit); + } catch (Exception e) { + logger.error("Error updating size limit for cache type {} to {}: {}", cacheType.getCacheTypeName(), sizeLimit, e.getMessage(), e); + } + } + + public boolean getEntryFromCacheType(CacheUtils.CacheType cacheType, String filePath){ + try { + return NativeBridge.cacheManagerGetItemByCacheType(globalRuntimeHandle.getPointer(), cacheType.getCacheTypeName(), filePath); + } catch (Exception e) { + logger.error("Error getting entry from cache type {} for file {}: {}", cacheType.getCacheTypeName(), filePath, e.getMessage(), e); + return false; + } + } + +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java new file mode 100644 index 0000000000000..d325cbfeb2b2a --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java @@ -0,0 +1,47 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search.cache; + +import java.util.Arrays; +import java.util.List; +import java.util.function.Function; +import org.opensearch.common.settings.Setting; +import org.opensearch.core.common.unit.ByteSizeUnit; +import org.opensearch.core.common.unit.ByteSizeValue; + +public class CacheSettings { + + public static final String METADATA_CACHE_SIZE_LIMIT_KEY = "datafusion.metadata.cache.size.limit"; + public static final Setting METADATA_CACHE_SIZE_LIMIT = + new Setting<>(METADATA_CACHE_SIZE_LIMIT_KEY, "50mb", + (s) -> ByteSizeValue.parseBytesSizeValue(s, new ByteSizeValue(1000, ByteSizeUnit.KB),METADATA_CACHE_SIZE_LIMIT_KEY), Setting.Property.NodeScope, Setting.Property.Dynamic); + + public static final Setting METADATA_CACHE_EVICTION_TYPE = new Setting( + "datafusion.metadata.cache.eviction.type", + "LRU", + Function.identity(), + Setting.Property.NodeScope, + Setting.Property.Dynamic + ); + + + public static final String METADATA_CACHE_ENABLED_KEY = "datafusion.metadata.cache.enabled"; + public static final Setting METADATA_CACHE_ENABLED = + Setting.boolSetting(METADATA_CACHE_ENABLED_KEY, true, Setting.Property.NodeScope, Setting.Property.Dynamic); + + + public static final List> CACHE_SETTINGS = Arrays.asList( + METADATA_CACHE_SIZE_LIMIT, + METADATA_CACHE_EVICTION_TYPE + ); + + public static final List> CACHE_ENABLED = Arrays.asList( + METADATA_CACHE_ENABLED + ); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java new file mode 100644 index 0000000000000..50d0a15643954 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java @@ -0,0 +1,116 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search.cache; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.common.settings.ClusterSettings; +import org.opensearch.common.settings.Setting; +import org.opensearch.core.common.unit.ByteSizeValue; +import org.opensearch.datafusion.jni.NativeBridge; + +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; + +/** + * Utility class for cache initialization and configuration. + * Contains the CacheType enum and methods for creating cache configurations. + */ +public final class CacheUtils { + private static final Logger logger = LogManager.getLogger(CacheUtils.class); + + // Private constructor to prevent instantiation + private CacheUtils() {} + + /** + * Cache type enumeration with associated settings. + */ + public enum CacheType { + METADATA( + "METADATA", + METADATA_CACHE_ENABLED, + METADATA_CACHE_SIZE_LIMIT, + METADATA_CACHE_EVICTION_TYPE + ); + // STATS("STATS", STATS_CACHE_ENABLED, STATS_CACHE_SIZE_LIMIT, STATS_CACHE_EVICTION_TYPE); + + private final String cacheTypeName; + private final Setting enabledSetting; + private final Setting sizeLimitSetting; + private final Setting evictionTypeSetting; + + CacheType( + String cacheTypeName, + Setting enabledSetting, + Setting sizeLimitSetting, + Setting evictionTypeSetting + ) { + this.cacheTypeName = cacheTypeName; + this.enabledSetting = enabledSetting; + this.sizeLimitSetting = sizeLimitSetting; + this.evictionTypeSetting = evictionTypeSetting; + } + + public boolean isEnabled(ClusterSettings clusterSettings) { + return clusterSettings.get(enabledSetting); + } + + public Setting getEnabledSetting() { + return enabledSetting; + } + + public Setting getSizeLimitSetting() { + return sizeLimitSetting; + } + + public Setting getEvictionTypeSetting() { + return evictionTypeSetting; + } + + public ByteSizeValue getSizeLimit(ClusterSettings clusterSettings) { + return clusterSettings.get(sizeLimitSetting); + } + + public String getEvictionType(ClusterSettings clusterSettings) { + return clusterSettings.get(evictionTypeSetting); + } + + public String getCacheTypeName() { + return cacheTypeName; + } + } + + /** + * Creates and configures a CacheManagerConfig pointer with all enabled caches. + * + * @param clusterSettings OpenSearch cluster settings containing cache configuration + */ + public static long createCacheConfig(ClusterSettings clusterSettings) { + logger.info("Initializing cache configuration"); + + long cacheManagerPtr = NativeBridge.createCustomCacheManager(); + // Configure each enabled cache type + for (CacheType type : CacheType.values()) { + if (type.isEnabled(clusterSettings)) { + logger.info("Configuring {} cache: size={} bytes, eviction={}", + type.getCacheTypeName(), + type.getSizeLimit(clusterSettings).getBytes(), + type.getEvictionType(clusterSettings)); + + NativeBridge.createCache(cacheManagerPtr, type.cacheTypeName, type.getSizeLimit(clusterSettings).getBytes(), type.getEvictionType(clusterSettings)); + clusterSettings.addSettingsUpdateConsumer(type.sizeLimitSetting,(v) -> NativeBridge.cacheManagerUpdateSizeLimitForCacheType(cacheManagerPtr, CacheType.METADATA.getCacheTypeName(),v.getBytes())); + } else { + logger.debug("Cache type {} is disabled", type.getCacheTypeName()); + } + } + logger.info("Cache configuration completed"); + return cacheManagerPtr; + } +} diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index a71b587539329..634bda4c56b10 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -15,10 +15,12 @@ import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.VectorSchemaRoot; import org.apache.arrow.vector.types.pojo.Field; +import org.junit.After; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.opensearch.common.settings.ClusterSettings; import org.opensearch.cluster.service.ClusterService; import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; @@ -37,6 +39,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.opensearch.common.settings.ClusterSettings.BUILT_IN_CLUSTER_SETTINGS; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; import static org.opensearch.index.engine.Engine.SearcherScope.INTERNAL; public class DataFusionReaderManagerTests extends OpenSearchTestCase { @@ -54,10 +60,17 @@ public void setup() { MockitoAnnotations.openMocks(this); clusterService = mock(ClusterService.class); - ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, Set.of(org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION)); + + Set> clusterSettingsToAdd = new HashSet<>(BUILT_IN_CLUSTER_SETTINGS); + clusterSettingsToAdd.add(METADATA_CACHE_ENABLED); + clusterSettingsToAdd.add(METADATA_CACHE_SIZE_LIMIT); + clusterSettingsToAdd.add(METADATA_CACHE_EVICTION_TYPE); + clusterSettingsToAdd.add(org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION); + ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, clusterSettingsToAdd); + when(clusterService.getSettings()).thenReturn(Settings.EMPTY); when(clusterService.getClusterSettings()).thenReturn(clusterSettings); - service = new DataFusionService(Collections.emptyMap(), clusterService); + service = new DataFusionService(Collections.emptyMap(),clusterService); service.doStart(); noOpFileDeleterSupplier = () -> { try { @@ -68,6 +81,10 @@ public void setup() { }; } + @After + public void cleanUp(){ + service.doStop(); + } // ========== Test Cases ========== /** Test that a reader is created with correct file count and cache pointer after initial refresh */ @@ -96,7 +113,7 @@ public void testInitialReaderCreation() throws IOException { // Assert RefCount 1 -> 1 for latest catalogSnapshot holder assertEquals(1, getRefCount(reader)); reader.close(); - assertThrows(IllegalStateException.class, reader::getReaderPtr); + // assertEquals(-1, reader.getReaderPtr()); } /** Test that multiple searchers share the same reader instance for efficiency */ @@ -343,7 +360,7 @@ public void testSearch() throws IOException { readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2, null, noOpFileDeleterSupplier)); expectedResults = new HashMap<>(); - expectedResults.put("min", 4L); + expectedResults.put("min", 3L); expectedResults.put("max", 8L); expectedResults.put("count()", 2L); diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index b50ad97254bb6..47875c4fda7c7 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -19,6 +19,8 @@ import org.opensearch.common.UUIDs; import org.opensearch.common.lease.Releasable; import org.opensearch.common.lease.Releasables; +import org.opensearch.common.settings.ClusterSettings; +import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.common.xcontent.XContentFactory; import org.opensearch.core.common.Strings; @@ -63,8 +65,12 @@ import java.util.concurrent.atomic.AtomicLong; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.opensearch.common.settings.ClusterSettings.BUILT_IN_CLUSTER_SETTINGS; import static org.opensearch.common.unit.TimeValue.timeValueMinutes; import static org.opensearch.common.xcontent.XContentFactory.jsonBuilder; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; import org.apache.arrow.vector.VectorSchemaRoot; import org.apache.arrow.vector.types.pojo.Field; @@ -92,6 +98,20 @@ public void setup() { when(mockEnvironment.settings()).thenReturn(mockSettings); service = new DataFusionService(Map.of(), clusterService); + Set> clusterSettingsToAdd = new HashSet<>(BUILT_IN_CLUSTER_SETTINGS); + clusterSettingsToAdd.add(METADATA_CACHE_ENABLED); + clusterSettingsToAdd.add(METADATA_CACHE_SIZE_LIMIT); + clusterSettingsToAdd.add(METADATA_CACHE_EVICTION_TYPE); + clusterSettingsToAdd.add(org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION); + + + ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, clusterSettingsToAdd); + clusterService = mock(ClusterService.class); + when(clusterService.getSettings()).thenReturn(Settings.EMPTY); + when(clusterService.getClusterSettings()).thenReturn(clusterSettings); + + service = new DataFusionService(Collections.emptyMap(), clusterService); + //service = new DataFusionService(Map.of()); service.doStart(); } diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DatafusionCacheManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DatafusionCacheManagerTests.java new file mode 100644 index 0000000000000..d26918242f949 --- /dev/null +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DatafusionCacheManagerTests.java @@ -0,0 +1,259 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.MockitoAnnotations; +import org.opensearch.cluster.service.ClusterService; +import org.opensearch.common.settings.ClusterSettings; +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; +import org.opensearch.datafusion.search.cache.CacheManager; +import org.opensearch.datafusion.search.cache.CacheUtils; +import org.opensearch.env.Environment; +import org.opensearch.test.OpenSearchSingleNodeTestCase; +import static org.mockito.Mockito.*; +import static org.opensearch.common.settings.ClusterSettings.BUILT_IN_CLUSTER_SETTINGS; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; + +public class DatafusionCacheManagerTests extends OpenSearchSingleNodeTestCase { + private DataFusionService service; + + @Mock + private Environment mockEnvironment; + + @Mock + private ClusterService clusterService; + + @Before + public void setup() { + MockitoAnnotations.openMocks(this); + Settings mockSettings = Settings.builder().put("path.data", "/tmp/test-data").build(); + + when(mockEnvironment.settings()).thenReturn(mockSettings); + Set> clusterSettingsToAdd = new HashSet<>(BUILT_IN_CLUSTER_SETTINGS); + clusterSettingsToAdd.add(METADATA_CACHE_ENABLED); + clusterSettingsToAdd.add(METADATA_CACHE_SIZE_LIMIT); + clusterSettingsToAdd.add(METADATA_CACHE_EVICTION_TYPE); + clusterSettingsToAdd.add(org.opensearch.datafusion.core.DataFusionRuntimeEnv.MEMORY_POOL_CONFIGURATION_DATAFUSION); + + + ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, clusterSettingsToAdd); + clusterService = mock(ClusterService.class); + when(clusterService.getSettings()).thenReturn(Settings.EMPTY); + when(clusterService.getClusterSettings()).thenReturn(clusterSettings); + service = new DataFusionService(Collections.emptyMap(), clusterService); + service.doStart(); + } + + @After + public void cleanUp(){ + service.doStop(); + } + + public void testAddFileToCache() { + CacheManager cacheManager = service.getCacheManager(); + String fileName = getResourceFile("hits1.parquet").getPath(); + + cacheManager.addFilesToCacheManager(List.of(fileName)); + + assertTrue((Boolean) cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + assertTrue(cacheManager.getMemoryConsumed(CacheUtils.CacheType.METADATA) > 0); + service.doStop(); + } + + public void testRemoveFileFromCache() { + CacheManager cacheManager = service.getCacheManager(); + String fileName = getResourceFile("hits1.parquet").getPath(); + + cacheManager.addFilesToCacheManager(List.of(fileName)); + assertTrue( cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + + cacheManager.removeFilesFromCacheManager(List.of(fileName)); + assertFalse(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + service.doStop(); + } + + public void testCacheSizeLimitEviction() { + CacheManager cacheManager = service.getCacheManager(); + String fileName = getResourceFile("hits1.parquet").getPath(); + + cacheManager.addFilesToCacheManager(List.of(fileName)); + assertTrue( cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + + cacheManager.updateSizeLimit(CacheUtils.CacheType.METADATA,50); + + assertFalse(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + service.doStop(); + } + + public void testCacheClear() { + + CacheManager cacheManager = service.getCacheManager(); + String fileName = getResourceFile("hits1.parquet").getPath(); + + cacheManager.addFilesToCacheManager(List.of(fileName)); + assertTrue(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + + cacheManager.clearCacheForCacheType(CacheUtils.CacheType.METADATA); + + assertFalse(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileName)); + assertEquals(0, cacheManager.getMemoryConsumed(CacheUtils.CacheType.METADATA)); + service.doStop(); + } + + public void testAddMultipleFilesToCache() { + CacheManager cacheManager = service.getCacheManager(); + List fileNames = List.of( + getResourceFile("hits1.parquet").getPath(), + getResourceFile("hits2.parquet").getPath() + ); + + cacheManager.addFilesToCacheManager(fileNames); + // 3 elements per cache entry displayed + assertTrue(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileNames.getFirst())); + assertTrue(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,fileNames.getLast())); + } + + public void testGetNonExistentFile() { + CacheManager cacheManager = service.getCacheManager(); + String nonExistentFile = "/path/nonexistent.parquet"; + + Object result = cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,nonExistentFile); + + assertFalse(cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA,nonExistentFile)); + service.doStop(); + } + + public void testCacheManagerTotalMemoryTracking() { + CacheManager cacheManager = service.getCacheManager(); + String fileName = getResourceFile("hits1.parquet").getPath(); + + long initialMemory = cacheManager.getTotalMemoryConsumed(); + cacheManager.addFilesToCacheManager(List.of(fileName)); + long afterAddMemory = cacheManager.getTotalMemoryConsumed(); + + assertTrue(afterAddMemory > initialMemory); + + cacheManager.removeFilesFromCacheManager(List.of(fileName)); + long afterRemoveMemory = cacheManager.getTotalMemoryConsumed(); + + assertEquals(initialMemory, afterRemoveMemory); + } + + private File getResourceFile(String fileName) { + URL resourceUrl = getClass().getClassLoader().getResource(fileName); + if (resourceUrl == null) { + throw new IllegalArgumentException("Resource not found: " + fileName); + } + return new File(resourceUrl.getPath()); + } + + public void testAddFilesWithNullList() { + CacheManager cacheManager = service.getCacheManager(); + + // Should handle null gracefully without throwing exception + try { + cacheManager.addFilesToCacheManager(null); + // If we reach here, the method handled null gracefully + assertTrue(true); + } catch (Exception e) { + fail("Should not throw exception for null list: " + e.getMessage()); + } + } + + + public void testAddFilesWithEmptyList() { + CacheManager cacheManager = service.getCacheManager(); + // Should handle empty list gracefully without throwing exception + try { + cacheManager.addFilesToCacheManager(Collections.emptyList()); + // If we reach here, the method handled empty list gracefully + assertTrue(true); + } catch (Exception e) { + fail("Should not throw exception for empty list: " + e.getMessage()); + } + } + + + public void testRemoveFilesWithNullList() { + CacheManager cacheManager = service.getCacheManager(); + + // Should handle null gracefully without throwing exception + try { + cacheManager.removeFilesFromCacheManager(null); + // If we reach here, the method handled null gracefully + assertTrue(true); + } catch (Exception e) { + fail("Should not throw exception for null list: " + e.getMessage()); + } + } + + + public void testRemoveFilesWithEmptyList() { + CacheManager cacheManager = service.getCacheManager(); + + // Should handle empty list gracefully without throwing exception + try { + cacheManager.removeFilesFromCacheManager(Collections.emptyList()); + // If we reach here, the method handled empty list gracefully + assertTrue(true); + } catch (Exception e) { + fail("Should not throw exception for empty list: " + e.getMessage()); + } + } + + + public void testExceptionHandlingWithInvalidFile() { + CacheManager cacheManager = service.getCacheManager(); + + // Try to add a non-existent file - should be handled gracefully + try { + cacheManager.addFilesToCacheManager(List.of("/invalid/path/to/file.parquet")); + // The method should handle the error internally and log it + assertTrue(true); + } catch (Exception e) { + fail("Should not throw exception for invalid file: " + e.getMessage()); + } + } + + public void testGetTotalMemoryConsumedReturnsZeroOnError() { + CacheManager cacheManager = service.getCacheManager(); + + // Clear the cache first + cacheManager.clearAllCache(); + + // Total memory consumed should be 0 or a valid value, never negative + long totalMemory = cacheManager.getTotalMemoryConsumed(); + assertTrue("Total memory consumed should be non-negative", totalMemory >= 0); + } + + public void testGetEntryFromCacheTypeReturnsFalseOnError() { + CacheManager cacheManager = service.getCacheManager(); + + // Try to get a non-existent entry + boolean exists = cacheManager.getEntryFromCacheType(CacheUtils.CacheType.METADATA, "/invalid/file.parquet"); + assertFalse("Should return false for non-existent entry", exists); + } +} diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java index b50eff915d73e..77022890e2d41 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java @@ -10,11 +10,23 @@ import org.mockito.Mock; import org.opensearch.cluster.service.ClusterService; +import java.util.HashSet; +import java.util.Set; +import org.opensearch.common.settings.ClusterSettings; +import org.opensearch.common.settings.Setting; +import org.opensearch.common.settings.Settings; import org.opensearch.test.OpenSearchTestCase; import java.util.Collections; import java.util.List; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.opensearch.common.settings.ClusterSettings.BUILT_IN_CLUSTER_SETTINGS; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; +import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; + /** * Unit tests for DataFusionService * @@ -33,6 +45,16 @@ public class TestDataFusionServiceTests extends OpenSearchTestCase { public void setUp() throws Exception { super.setUp(); service = new DataFusionService(Collections.emptyMap(), clusterService); + Set> clusterSettingsToAdd = new HashSet<>(BUILT_IN_CLUSTER_SETTINGS); + clusterSettingsToAdd.add(METADATA_CACHE_ENABLED); + clusterSettingsToAdd.add(METADATA_CACHE_SIZE_LIMIT); + clusterSettingsToAdd.add(METADATA_CACHE_EVICTION_TYPE); + + ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, clusterSettingsToAdd); + clusterService = mock(ClusterService.class); + when(clusterService.getSettings()).thenReturn(Settings.EMPTY); + when(clusterService.getClusterSettings()).thenReturn(clusterSettings); + service = new DataFusionService(Collections.emptyMap(),clusterService); service.doStart(); } diff --git a/plugins/engine-datafusion/src/test/resources/hits1.parquet b/plugins/engine-datafusion/src/test/resources/hits1.parquet new file mode 100644 index 0000000000000000000000000000000000000000..647d8fb5235c2a3c1526f3aad45f52ab603e7582 GIT binary patch literal 1598981 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

    b=Bn{kIT2|5x!MMN~RJdtVhT0W~*%0jA; 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%0D+AWPtG(`L_5ryFJhV zk-4)KSavI$e?FZD2GqKtSW|kcl)TKV;~MiZr5wj{^cSGj4qIQ6&#+pbEJnIP(^e@^ z>hsxreh7$X@3qCSOD7kr-O!9jX1rEs*p*R2e&?UVH}Kr_eL(fZTZ5SVKbX7!0e%=G zEGi(Eoeo%R4o`XjGx6i4jXxUd&(1XItXgXf{=r!&jTM%-C-BmxR;a*(4>CgnVM$Vp zihHu(8BA-$CLEN#sw49iHslCu3>?jkwTiF^=ol%_OCu%py{NsSH z(=!yWs}}wlyvi_%$&Lsu=)m8C&aoQ(8b8cx&-v3sfZMjeK+;w<_}lIKhE2Y!5S^lZ zH185^M}bKW^kb*Zd-L(*2)0)H1H<)xz!Y2m$NT41FiL~=9Ae@VTG9u=!t85>GcGIh!$+9VzIj-N~jh%fM{=-uiw7mpC{o99kGahkvCsqP8 zuU?!^z&A|v{96#Jx$3}Lhf8PK70AcC8ipqQRIiiqLs-?R1eEE!mJoTU2(kSk-oM|6 zRdkHv82${3l}WRif4nldZZu}xoQEuI&LO6bAA`2@by4Ag8BI2vi4p8 z#y*Da>}t(sOOM4?qaLU`_K{64`?2dsS6KE>zc`~LTlKm5`#m6f+lwFGc(LLwczeZ^xvKLmZo-`@UYCUaO_!2EH7MOaKmq})^Y zb#?RMz;&K5{5oHLIQ%7Zc%KK~79V5YmY>-7A2(qO!IOaAT%7jOLkYop75H^#4Y*dT zY=FFkef~7V$dwcWcmz&l;KBEe2q_)Qvo96z?R}DON7u0wXEZ1Ha0hG59R-4p3uE-J z=*BBQU4^hlnE4esXq9G7IKmq^-;yc7q{S5^$n(;8vfsfahkwVD?=P@&KP)JzrEJ3~ z>UPH7ja9zr#Mpa+SjdZ#AiAq6K(G|&xeWvPp+q-U-lP%_Pb6Onaa$#@F@i zA{lgwY2p-bUZ@&J_EM1>nIljjD`#s`iGrvy(qbe?`7inL;z_1ib_gUm@jV-Vbdgv0 zIl#xPp}?^7dmdT(7*yDC+_0j17J0}yZyvec)ak4F1jUP62#@uh%45$rvrS4hM98>E zcKEx}h&&cJbH!v~CBbAJNgw(_;_d?yB;<#Sr^4dUYy7Rs621kc^Q~up_Vk46wdkpy ztMgP%GsswmL74L_z&*6H!ij}7h-qgni`Fn8z*ly>}Zg=}@%RFbR-26%yA8#ImC$-C~pMyR~|2h21^@k7NXyxT08g&lv%eztrE0*(sG6n&8q zBBu(`?;SB|+5$_KynMLkX?uwHCBURB&ELxDPVz2hNuf?46#RtDE089Y3* zyOE=X#gN{Uo<<9J&g$~_MyeDG;J3IVtiDlwHaIpQnvy;jSVkyXxfnMLyBw!Yuw@cNB z9_V72WI#<`U8YJF#i(AHN47B4rwCBkRsbkE{R4&`9AV_hP&-E8)v!<*{*+fUt{U+& z=`h3nS;V*SeE>D40f)M8C2&fnPObd!3{Ec!M!CzlNub}d(>#26fI(OrBBu$6;3K)|M) zy3DJQsx*oJZiA5RAcuq>WFfN#@Wi7mCjI*W8(!zeS^QVQeSa`hms3u=c6wYXIhfDG ze{TTtS=B+$$uzoap((t9&}cx1B#R+>kt$SpN&& z`r-nEz#tOjlG5+~Q^h`A;)foud2V(ggyJCHNrk3KD?O30vZiqQw29Qe=b*C1uR3bV8+U4zh;9D9$giJ{01QzBoX2DqwG<&?$ zDu-0q(sNbSY5a_d zoa$_w{0;Usf5ha2-GNeAGbd?!Z~5EJ2!0Lj%b;swneyvP{Btv$K^u}}mo(LFplOU< zPFa~I?F3NmqIk>nYzHa)h>sm%sS-?eLvd9GoNJ50(dxLfw#NB<+c}T%&voM4Ta*H< z>;$uRG0ao$u4TVtRCZn&rFRWo%d0K-0PE|DE-zkWTbD9z!aBqK> zZgTSRZ%I&@3S-!Fr&#O9-He>jh#wLhtS4KK=K}YWB2p8t9V^LmpVddaZ!QmvF6lW$ zn-XU!n?PV$DNuli#%Xy_Xi-kA09#{zF`^{36C+=!!iQ}pz#G_(Wn6y3SrqjJTEE~zlY0lE6%;~1O%?G0ho{DfKQ7Mc2IZ*2n6^7?^xBADDyNQ zB`Psqxd{dlm_(V%w0ErPpDFy{lgAJH?la2QTNowyBH#WYu|?Ya3);S8tJ_o_dubq_H@ zB{`STos*mya_|j5d_I!bd=nU@>^Z(o8_T=@I|&?`6$hcoNv=pFH9z>^bkHtl7s(tq zXt&od%=2f2Ikw=cNwZp5Qg&J9`(E|^9{fy!(hsy+wBJD2{)KO@Z#a;j+rbyqO@%nj zhDnC~$r}StG2gk#{6JNYa`LC@ebqV7$vtLYzWu&}NySp6<(P+DdOdPl<#<1H zzIHe$LB{{V6A3K=VWLtBKQCb*{(mr#3S$g{oH{dC^mq=SD|v+Sz{OU5NAcXR+&qX& zwZY#07L2cmH&FC}5EbR`0;FP>FN0xD#4PR-4MEXKyW{-T!yIXew znA=VUjTpfI{%)*s?l@R`sye1=wOHD>0c`$l1s+-Q5G-l06fs)RW>Qj#MYia~N9+z> z^TEuLy!kA*(sxF!{gK5othMJw4E;F%uoFVDUN3%G13Ew|1aQ8MKt7DIhYxP0f}?~&=g6fTMoZzX-` zbQ>V;l&XFI3Pk9)*a+90Mop78ttaQ!NtM}tpfrmrUvUhpwi_<7j^SHlQgx(9IddCa z`^h@DPq{wY+OT~2vk@=6BVATjPUc&}J0nfYOSen+=@^1{h;Ej^_RduK;s=i6x)~g% zVNfOQadxt_N;BeR#5rD?9mRYzbD3ar7Z#sd3&P2FGosXOj+d+mf{=Y_J0$@Ex7;%Y zmLjs-+{kPIM2JM%L7tF z#VcHX1~OLNfOLHw#Kl=H_}4IfIN82*o zvnRWYBsyXXZ(j*G#(j0fKBcE3sJE?mmQNH6d+eLHnqKiVV9>ao@=fGT;GQ| z6Np>@amVgtKh{LB*9a5Slu1o|L@pHkV%(6T;PI2kEW{&ezHlE47tlC3muJ~;M zyZ+kGcD98WapI-{g~i^ywXrXMJ5ZZ3uMvMDZ|3moZ+d7Y^j6YWBl%ZDJ+`{+7;eNO zePT;V+G`_AUL-Tzz$AaRe6QGAHU*j{pj^|&FYChd!}Jrs0`%h=a)8HxaQHP|cPSmBD$1cMUQj_&Eo`+hf%e+N zFilnk!?b85lPV9J0i_5%wz4cz=I7r(JFVP4kQ>KsMg=(~TpE+?Rt9v6swN|Ik;o_Y ztkN>IJY41b4rm8!DI=$SX+CDsa$^}U@gwVRypNBZp+=!xZNU*8n*gjIxdWUKtQDF3 zilgk6$j6}ChD|)?f;-o|%+a!O8B1Py%W0FVfL%_U0d}tJT&;6Zf_Nxuu6MzRmAWR@ zUZC#ox9B-FWW)y!{Iv29eur?;9%Sc8SPsIehMMK(_w4%R4J?^&EaBW0`IeQI8ms(q zDMTLpnytShMN2O22Vdt>OP}Z)P&M#5FLYEi)$0@dG&Y@{uzfgbYqw}r_qk3@>Ja-Y zRq|OR#&?5l&`@J)#pIwD+~QxIzMz>2CU3_o}a84!_i&Wvvj%f zD}I4a76&nec_!sMjhD7{Io#Hi)Rt>HiagK?3(NZAdd_%pAn8&3|M}&tLdw z*G~Kzc^Cp3P{a>S8-Yn%!hFRIY>+txu%7x5qIMuDRnArgE`z4LLY|0?j?@FV*lyTO3+o`E$T zT4O(TA}UA9T!1f8xWGr78K!cPtkt;Bj5Es}ipR>--R#hL6yWq3hA4ZogOyj-_`y$k zrW<&oJdM&*b@5U*QQtd2a`a~A8PwREB5VJF^kbrpaCsWfI{)!SO-)j@W#jZexh)T} zN=_UA|Ix-yMy0XO$$p^zw3rZi70Rr}36>dFhi{w0*?+z&#%cHE%842_{<2*)mafUO z_f7-!NvaB@_X#*f8p>b2WfdL~&U8N@K3_sv*U3J++qfy#>R6soIC{ zZpU=}PUZRCImdD$n>y`sXE^X&eu0x1pKXP$JG=pXWEq)ppS_-oWOe%|8J_Z! za?f`n=~W6pB@6kGHG0`-U{ma{GhJxY)Alep2qqU$hV0WhxsP^3Pf|yq;Q~`_&vD>9L(biT76i<*rae7qco3- z%JJ|%3N}tNoAOd>378fW6w1wgL^ZWUUs+cUlv%6Ws!4w(%Dt6OZEy<+cv2D?wNmE4 zMr}iCdd%O)ZEjB{DV}rPJC%Ef`9$p=uX!4h94-HSk zJTp{uZL*(C4}*2CQZ3eF10k;+>YlH~Km6?%OO71;hLb(_06VXu@`n8y#mAXe!1T9{ zKy6J;_}uA5pwb7V!Q}NI)}1B%I7IpJ|5OT5drzlBK9mA1nRWo?zd!zWt5fR z)&q{)B%Ov*_h3_Xt^%&Wo(4Fv1r$ltBfP~q1uD9^i0!{oUZ4N9=G80}SV)!zWsB8y zR=*SjH2ef%|D?N6AXMqc%NsehUexT6?t@s}UP>`Z$r+rQlsA-yqIpTLJaq!Y7)K<^XDnm@d!l8EKS_HW|rk~9PzhqzI%>v7{tYzI*D+(cI4*Vh?O5Rh*@$#EnWlk-E^Mp1c=@&b807>S;>X`~Dd z)w^kgs#cP*)RKrQrz(v4N`-;or==0g>oJK_d3q4Od>{-eAzQRI_v2JR8l&giWvdTB zi&I{;FDCO`%2^hgm%<#h?F|ww6iXzU!UH8a2qtu!xJ)@+#4-KPo8^AFn>V%w zaHR8RF`M%S$8jv)X_YEU)RYeg>X+^@a!+;r_U#7v0X1f-%KeWqwlpYBy9M&B3T42KiY;th&hpb$ z3c|ux9K}%OD7k$TvEZ%JaQ%`2@0-;SeU&!6FU3(jep6Xqo7Do>scV`MDk7R_*&5=V z2p*SJ7lQTQgU5wIM6Z4g)QT+JhW*a01Lq;HPL>4f1aQS^t;3S#`%d7v_fG!hNeu+~ z)feO)yATrhR1Hu+Jcr+{+R3iINQzdu6`mG(wv3bfzO}PR=C1+Ae05U;De=@uflFI! zi0@zEd|W}UOjJ0LypGLX`iU2&J%^8X)Ezh~CUM|z#>2P>jjbXXR@mpHAiL;Ofzp6a zNZ%8bj*_ZP+3!obw9CIQoC)X`nXpBLZ0)H>B_;pn%q-<#wFSDPI?}}DCsor~`*>fr zcsd>_ap^t>d~TqDkNOToa!ZvIaw)}Q>sHv^wm&(5FFpaQO_6xcwh(NEQ##*6h8FTS z!Yx#&cu0VBeF}&TZdgd#h-fHddpk3w_)Jb~`a{_4k&&!9`A;4x^Ak|5p~_;d9?5vE zlR}87OEXKgTOeUcRUtc2m9e_3?r+X2M6#-X_IU?M6ANy^0P^*~rpd8MnHfd`?ik89 z-i=2SxT<=3o;wOKM!K`LiNCRKZVpW%6M$$)SfSL8M$UL=+X)^DttEqWkk)N2`|Or& zNzu9hgpfpl_1$U13id|nc==L;rH68Cdqr_ZNdabu^smd<32{bL&~%gb4_A*wbz!Mg zTFpzzLB4XAq2xo`3-03 z+mlU(?E=H;14tT2H%{NJih+8qV&&6xQw?khRPnVtp)LAGR**yed2Plb4*B|LhNq1F z$fibBLC$qmZs{f@h)TIw)U{{Su95M}`I~o822sQ*m8AFxpm5R5tK-Z-Ecd(-F9oYu z-Uy-|HMbaPcv%f4yi9b0xLP}H zvLy?Yxud6*(aL6LNHVv&6iEmzC#9ztd8+C|1(~-H=+s`#Ccb#WCT`zF?yc$w)g5b# zF4^e5L0|#g6JAX!b*`%RnG_TukFK$#$HXv7l@$uq;UW0yOOeXb>Ke{MM=dhq#Pcga=BF;`Dpvw-=X6&i>HW1~m1i1DYq64t z>($_VdnwyDM~8klcjZ@GXJ(tM&^oIkEa;VRw30#YD{JU>E+E8FSp8)f-%?t!vcBC|Me}I@W9S4#mX|7tyc)Nlx+V=3-^QTik#f#7 z`KmmBOWh3-)>mC{0$TFMs5eF^ad7rJxUn$J?!5(?ci;hLa?@BtKD0*V%JYG+h>@HfMp8f2eomL0uWX!%8O-HxiNOMB{_ zNN07Gby5QaDSBufDL#%}ZLP^cq{bRiAeH7PJ|7HJGu2<}$TQ&mFaU^9AjV9{T4sH@ zo$4g#p}CPKPifpHk5qI}bT(THScy_V#qfqwYc!C19)prv6(G4^WIsi!TXR|l4z|;( zf>dfy1TJHC99|!jWLI{ibf0Fpe)bE9p&^Y7 z<#WQW<<<-%gn|jo`$r@Q-hj|pt*<3truJb&-3^dn$#0er%>&TfAI_*hj|R^kDCfpk z|5`kCQ!}DCL(NjUEX?@59@0n~kxit4YIgcTcezX3QoumF!OF|%Db1y=GC>O&g6pTO zYI1lF<5V5!%p^3B7MUI1z&2)7Ps~8g@ohn-N|w94T>`!i{?o{j+2;ZFdp)I`%a@DNvrHqBJ;J;RZS_}0Y1J-JFc% zlV?KFosi`c80x?EI6SH^Ww4VX1Fo817G4Ou{#O;4&S?$N-hLaM zB01d+UzzxXy^{;oR7`G(+(qe8-rCEUWU2Wl+o}Hr(D|`GGrrVQDoYQ4@MEn?$s4zg zZzD+S(bfgo<=sfAdP{+w7*=`uj%kDlJUR{>v)AUi1%I>m{dIYGvZ~qR?!$8SQ2$#7 z9(H2w_JkU~dx0>dq;r6LzK6Y+FhPKqRd=CL79(Fa%>a4cY=Ho3Y~ut5?sYmOc|539 z;RYka&LZW{E}(G8Zt$HN;T5H*DL^@-=d_W9hrs-$f1@$@%;Z4mi%L*<4(~pG!=B@y z+^toS9GpM}ZB072geo#@vGRhv$cE!?uD~hmrl6~Q-V#H-qMlKQaY59ZDw3s{C(EuA zW0(8w&_Pm*MH4ouZbqE{fHLjQD)w^Ca1mDX zC-n?}BBn9yzEI5S?GR{o<5xzAtm(!vzDQ(0nZeW$tP35HhDHaQA#n)%q z$$oI?WLzM>VNINd8}-7MA~l)-h2*nrXIT?gv1JP<#t*1%^NesMm1TshKjK zxavL^ZAG<3r#XTqBr8n_k*@REPkl18WKBc(^aMpht9oGk+8$AAs%1Fh@w%Kx7!A~x>R$C&-#TT;27bZfecxl0HSfS;;7}E1R(T%r>;;Ra`gASr zQ&70JyC6!N8sm_tbw;5C-{Ek>4nW@Bn*qE2^hc63yaU=6ONNA8<@hImMDnZ6%9f5G zD{#(&@5jmXEH>e*+bw7l8@}P5&H&&vN$aj>)sryq-C0t<1c+oU z34%nc7BgS?1Dk(TX7h3Kgdk;CHTmf%Y_Yv1PVU44`*V7J3t3VQN`A7;$dE$?h>KJe zpT1Y!h&@rY(;DfSHq_)Ci;Phoj>u*`3I*tt&GH zH|45;MzSH5lrMWG*NTLykm?tz`+Cd#0<@k(x}y#blp=Rz5WSSrvjFesO8v}BMSs!i zfbkCo8$^&^gt98=wocr&P`W>af_^frKWp*d%yMrihc7WXky2$4&pA~ms@o@`;otSp zTy`Y6oPa#U&7=E_?HipY={uW^erCzRmtw6Cgp!+T3(^a5!}8 zX*V&iVzxVpJ+pA&&!%!}6P7Vr(eDV3$9ig@>`ej^O;!PzE<@SGtMbvASdV#iq+Stn z;Fw<6NFGk$TW#IZUMl=xq-n006a-Wz?ca|WCSadtA(JN7jP4L=MZu*Z`$j#Vdk!W3 zo(whOv3`sEWMqv*PgU5Ul{^>+wwB)(T_kmS8hKK3I?VOkB>3XY;y^4g#*WJE>m^T? zJAJvVh^t3wm(T_(E+sKyK<%M^ zrL@RJn5C%9;VDYj`TJLA0`q1C%danu1Td~B5X0AHmcPcLp&V3@&A1B(KCf>5itTc$ zPJGm~G{UTGEH_*loj{`YQ5AItz<_1%G%#*l6KA+`i`JJ@O*yR7D(8Q$>KeM7+Ya2x zCRrt{bA2s9M~hFo7(HO{_cj2&n97`d*aFapG1b3BrpW81Ff!`=Rh3eI8NSNBS&G}u zkb2^|pV7e^RTMm@n^wo-kOnV#wxJ$Xo#f7BFC|btr0i8tyy9eMG8fAcW$+=S_5y)? zE!bDK4wBRel9}l;inK%)b|@bZ&AkG|9_g;eGA9+EiU_(V1*0+Bq`^QuPoz@@ugvZ}2aO|$Us#I z3WAhR6mfQ|RR{0}OCXAUH_-)Vjs*WI_JI%YOIOt}wc5Bh;lhN>6MX8~o!C)&xEA5s zkguxow|AD2@AA=j4?kAcoek(9 zYbY}_ysS(t6>Vc&>TNVH$dU7noZ+%~KL>KPAXZ}gMrVlI?~v=~0nTI@F&+JDn;zOl zESr&iL(2ic{VFkVg$|-jRSc^6P_&t+w3C*RF}&7e8elk`i)5oLStYrzoCN<%aw!jB z8CkFcg1D;}^%nQnhNt}1k;PrqZ3eQ>)fvv8;~_I1A`G^wBipZfgZ-wu>K!Y{Q~F;m zIB#4V^mbc0sXGR;2(8Fz&ry2fLlfk-Hy@fO;jM*K-UKeSQVD69VUc1e&%}P^8V{dp zsKDMFPkFnFQ=O!$%Qc~Hhm;~_2KE(hkG$@*kqp9k1Ie%dudmuLKo?N{1YTg~pd; z*)1C*MCRyPLz(#mJP0df$N#b^B1{RsFnPiuYpHvSK;6|>O#6^rlzgrzr6vNriUkfV zRDvEJ=|z1c;Txu1(ir{Xh#pF*v`P@8hwf-CBWgfp{ZF&ot%!H&s)GIo>hZlP`kD`y zC8FMokVSZSraNBns7_LpYuF*itUv&W^)ZK%uCn_Z!xN_d%#p!vQ z&QNk-gkh4WjrmAw4HSx}LkJ7T8Y!qNIn`vB3O21i02K}gwn-{hbed%DUU&eVWkcl9 zP_U2git$p5>^2-hxt(MLX$x9>5EqlbqBbm2w|wVYa8k!qh{Yg1%7>(45?Awemmy;( zz?{ZYy+>XZN0r#$DjHZ6cxt`U!`WtLPxxhgBR(*=DbZI`xiNdm%sWu|TY4aJ2WIMn zL6BdDn#Hy^4_-Jt=W`JBaI3q;@l z2Tt&{pA&s(F+Y@V1(w!*2}uoC=QdEc`>2YrwJ0D%J;2xsMzSnJhnE+7(7A>UkL6MJ29!}tl4()+RTj?oH zWz;v$6m3kl9o<#)$CYEU!Qr#QWNHJp+kXl+KxsY81bLd+Tu%ApluRCtZkWwIId^572V=dy|99CxwX2#nofF@Z5d%5eOA*cq) z4LETM4CCWyDi1$KYm)F{ccfhG0SjniAyCF0ZOdyY47%z&Smob+`PN9aX5Rh)D*EYV zVz|f{rlk^ROO=k>Oit|O4YOf*N>UzR3@^!Z)lZ|*)nCpL+;Fg;dAhBR^xgyR1gnVl zq7%H)n{))c$G-JZYhx?Pt@R+wAG;XYP_5^36Hvhj`i_-^yNI;3&l&lD$IMY^ja0eb z*VvgRmlsD9)+S)bAw8q2T&&F*ocW!9n)Q&fz`^BB@t3Sfqy;hUR0=Ip?wdFg*HN7> z1K?i|7&et{-bkVjfSv(FLz7aFEK6%g$0K{_6q+b9NzFlPMd6(v{m-8<~_Umv(^6@w;IV-Drp-Cwn6+uIYvT6b^TR1tERq zltPc{HmEqHKZ~8G+ze%cY)EMIp`)t*LxgI$Rx8g*Ky-Vy`N^Bp$oQRwtg6ozQytL$ zTRoyJ7#tcPzt`aCp6Vgp<#sL{HKZhq%YVf&-Bh0A<3F&H^{8-CZIO`%OUvpG9r)Ik zKeEt9Ct6V+Zs=)cNnbT0WM7UEE(6j)Bgb?QuM^2ZFoldRD2;K{RaFOzlfSBjsypWG zGvP0He{}kS(KxqWsT+aB2O#77H($ zKd>Y0(_A^7=8Tt9rJ{52zr_=j5@N+VOw*ABc+W373=?jPgmSV<85?aW!zh2<1$yn{ zSmUd*hDnBh&W!)+dBG(0sm?*JJ`$b|RGRB~0XTZo0$~hs{@Um1n!G#77!*P8!J%-| z@F^4TOJYox3>^`z7>{R=7{{Uf#F0iM79&Nr!fD$Mm8aB}J(VD+0d$C$v$>pcdKt3= zk8^Aj>7-ct)MF6J^k}5xKvnuAHXO|ONp+JwcAj0IO=Mb=ZtAAUsIx-14)Q7i=zOW? z2g#v23{^$XtV?aXypfnEwrZNq0vS^2QQql>Rc_zo+fxm){^uJ=DM&R4_(x^7w3^Qb zs6^I4e(mW@kb}LPSyC?rJ@UQkAZ*dKNNszN14Ex)Djk&tTxl|dx>f}i|KSH&&C;Xl zg6a8mXsZTo3~G%)q->xru}|UeCFb%^LbC$JOQlr3BKSu>%?9y1Ut!CK13}-B>8Ush z9D@~ZH$`uV8v;J0wFhs~sJCi?d8ib_ai5rVx}G*tY=3~g76K|{**-W@V+!cY?Hoq? zY7IY7@wW~X;VMlMflEdO?zT#qdtl*PJ*Nzztn>=pP#p$GHE64J90p9Ua+R%m&*#Zf zm6Vdy0yFG9C8?kxgve4N2&GQl#6q!p8&UG0I&hBCO`h6hOD^1x5^e3Cf+sj#oLWmu zKF~;Oi1RC@E`*}tNQ%R3?^6c}U2Q6`qN|q~ow3jZcW_!$ad~jCi$^+D^`Oiy+JzV- zQ4S{AuN4204UY}-cD{~wX-{H8Q0ghe#+7m{Igx{216~Y~}@J3cd9;-y$_t#oMb zmJjqueX*|ecu$k&@6eVv!UZKgjA!4KgJ_n=fni7W&{1$#O@Sn$y4J;*VA9IXgbPYksDQ(0t zeM5;1S^cZo7g3iPDo5TympLlMr`<4^Cyg+h$dm;94n6-gs(_RB=2A`7ss5JwF!DmR zhncBs&81N@BTJrbc3WrCdV@URgS{^2nO}pOPJ0y!E#@^q55oZ*S=-2wZ#r?P8| z!8>4mb5?Vp$EZiEs_~D3b6I^c*n>>k3d2Rv3U<=r(ZJ`@44BWOt}sWs%=K0jP(hli zP)C?!F#jafw2xj?Rc_g%J()J&{NF7y247Jb`F0?RdE2B2cwSl!*?tG*jnb!9c}{tH zseH|xkBX&@))pJPOxj;#qsbUL$U*Mb3nS&^VIb07kF6%hoJNAY#s4JL9BklQJ+_Mi znn@-N=8@$w5!@=oqOKkfkOMma&yD5iLR*wVyrZd+CzDmedA7=~|6weQXUkLe)aZga zOBK5+D<#iD8l{z;_1y$y+7Dd-%+X~$Qn?PO_E41tUyojfr#~(deVz25$iwU+L0xCP ztqvl_{}!ErMp{%2tBxzOs=8++tj{$DJv%F0+yc!mcu1NzR$)qaN?InMAh||slLJgO zl8R*e0?2XS24LGYJw!Syf8gcjiDWzLg~R212pZD3$%YjbIk&6af59@^>Go3GA!JpM z;cX0G=r_+@Y7A%7jT@BDGlRwvzR*l41tr#ksAbAR%6n^qa}|_TZ{Olf&<+)Z;2y@N z?N4MM49MXLluc&*HCe4Wb#(ql`b1Rt*G3eMFy96ebcJKmRNUW|?_sTvR789BFsBWr zHP6uABspY?Cxg%K4;eeF!o28%T?qxpF`R=WCZgOe(3s)^cKQ0hpooT`#Cbi<1TV;{ zjgDpwl}eYu`3rj55HL1$3=WDA)gCLYvrMzY(Ib4!3EJ+YWI470s;r*kOhs@MndR$b zl)r7B40k!k7X}vPFN@C`$!JeR5Wbkh-zh5ZCDYXjqrsNtSR(4-U@Ph<-wi}GEY>|M z<4|$c!mVhnCS9vS4tNh+z;kUQWkwesS*eG@(7%NdozkP)$^MV9l(C98pCnd+`&YtR z+*S9N8s9^FcIO1aVP&fXcA6^4->Np2H&v3PQ&(pe#O-L$l|f2RSyIF4DUMI@ug$cw zpuv@)?npIdp60fJf?}&7*rVEUO=a)EPLtc9iO1HH(rwM_abJY@kZLMU|CK7f@u`my z3r{wcm7OZ`qcx$QxWDs*W&Wz&LnU-aqC*OjF_8{FcShiqj+eE8hK;KEo{0I>3flKc zDbhKG;~6l*2%+v@LRG1z^0Hrl$KTw>GC^r|7i5_MA`Vxn_+WBdw6)M6>SN_rmT#*V zq~^N8m;Q2~3iMsaM__+=8fDMQ$j{TAsS=Z86iQwqB$K4)cGm8vn_zvmwsPo8^w|R{ z!*Q@GAxTG*0C+8Ir22D&;Hrnb@RA!onHT}HT&1VhmH0=T{@ylDrS@cbLi5Qe0uc?A zG8iizZo`mnWk<Wo}Q9j1pTD zrRsH@L^LfMA=kqAm3}^cpj&bUsedWjs!2hSv~OX~g$-Jpa2x7sA>}?8If#e29+L72 z9H&GVDc$si(Ne=Ac$2!sGj#d{e5EG@a^vnW0dQpHXYuR| zO8gEeFj`5I1?t&Vs(gGp@jYuKt8$BvS z631{1YqDeIPo@8j({t4gQ_3XpG|P}zqhP~_U1o>8*aC{(f91?Ya3u%R#s^J|qB^lC zah^4RkuP3*RrPLmkS14Z!51_4azv>rfUU3|Tcj|5J#|w#mT31#8JPiRxvCe|fm39X z8&9KAyx(u2dV8Vh=WpV~r)=hQ(qGj$ZPH2(1PfzAS;d42XjXy4kw|s*j1lsB z5$xlk3Ss^GI;{7*rc6G*g3|`;w1-NUA?A2wl4oZg&a;ZYss=Yo-QL(#0NY1689w;% z7BaUo(5|3o*Z|boZ}dlXsQ!?wuV9-rH1JE$YmBXF?-el-^?9 z0>nE^V(}yQ8d-R|HS|QBG!2!fl@N+D>^5#9<|~}rrKdKQYF8OI8P_8?Lq_*!mDuti zf<5ug#+H+VXOJIXnw>>*wiv*F;)A=uLD(9!>{*&%wS-Wqy&n{c)^jF`uPUn2`h@{S zSfXTyY6laxfRWtvv@mv!-p9?S8LvQQ5T=5uBIuSIpvA=GVnasFQ1=_UoT&mnebkdX z$$o0o= zp9G|h@5W3f2ZjA|tI5BCU`tPUg(g8M@X&lu$*qk=P`oKpu>ZGwEX_gql~S=(C8$C# z{mkX{Ty#d8@FMDtcTkNo;H6%lSWHvtyOxdfWFLQe{1SjC`Pq6)sm-Eh)Xv zAX%t4Xa4*%!-R#B6OLA!Ge$1-L_hjH(5Xr9J0OFudWIb3I#=ngmF1_;ITqx&2ij>) zRjE9b@yyxzNUhk?keGEG;w*lGEC|NF{-A4h;Bj%Sl?T;~6%o|{Cvha9+#$T>r6;RU z(%7!r4>3el$K-1pEfEsvZ}_qpn$zD13Xu)paP+3Ic)4wW>-7t4lA{{lEYq#gTIr-L zFe;-mmXvQPFqQIs{;IXp20dXWJBg?vL(+{*>^Hh59sbuz$hj(#@MMq?0>1jTllw1$ z%xe!o=A%dTLY`%{lIi`~_HVC&Te^)6&>SNo=#5GH{S>qB)f1dh1*K#Y5jSEw$m17$IG75<;jk#*B1ua_)jbv+r)O2f37207g@m?v?R9H+ zR1W+*@h_lFI^PVGtn%hU$@!Y`{_6>ophpgpo)yp{DEzE$`>2!snA9MxT0t(#TwDVc zG}>I48C^%$|z*%j_PvxmqcH=r*iL8ZleW6)iS8MQ_UPHp0kWNFj4cAHKc1{ z52jQE6KxTgZ{cM)l>8{^R1vV_X(}r(9-4^>t%yR^BLf63s~5J$mlHQi7FGo{ztXj# z+L!`Q`MI$(M-o!Zs$Z5X7?zY;Pn8IAiD^@GmW-w_v>YZ{BxNl~oX!)y#-2-fZ z*HgC*K{RHmTLP;eSXI~o8qe>I>F60CLDXu(x$QeeyytK<8aKz%i5h!w!SFil)H($r zAK6qM9R$^KvJ+tO@iRcu@KN&WXi${qV~{R&-<%}@gJ76uGVH-DyhlA$O>u66>dB}Q z$j?Kn=x$Rg>dOx=on(%s!V!=E0jAPQp}$I9jz)E->2jXBdA~aiQ1sNZhRa3G$dta{ zLO9$!G{@->qN4fmzYfq%li~iUBj5;mwPkZDr>C|rOp~`tWto2}ItoQFtriR?-h%7W zHC*c+kXKEs2{XO)8;kA!GaRrvMxR(t1=*Cx+fz@OCabHV#U-dPmD3)ISEzz>-+9BS ze;i=M!jIzX$sDrcwEYm}wSr`cY>W!AP%msRe>ZWOaN;L)7QbHD^|gM4zm?QeX2B+l zoa!FYU;bzev%acF*1@kGGDwwlc4&u^Lbc=qb-|rqRTfh40x3eK*J?c7(Dgh|vVWYE zPW%K*?`%LDwO1Ne?QXgQRU)gI1YSmSeXU1Lk|$O8yR9G+iKW$(cMEXKZC0J2j#FGy z9(eHj!S6x*5lN|X*X)eKbhDeKk@C{))8l$c9aSaciArDXqsNbg-$XQ*hWm_UIeP@g z)%5{jYh5wX4ud0L;?KT_!u_gIOO_te1AYP>)vrv<&-AUtF+vsSg;gy z0f3Wr+XQJ&{x{dfQSLG$pTqM~IIinCq4Gm6x^7ohQ(^rvHh&W1m$+SA-hxI6R7|Dy z%AHMG)8@Rt%i`d`;)hAys^~pw zg>c;73f{O?)zLkp7miWhWs_`Btxag4K3%l3|3}i92ex?s5B$N~B=m@@(gzhs>4Q>t z++mIcCGNP3p+TuTmy|k5Ra;+}rp3eQId!C7AQ7>Z&{h`CVt@w<1NN!R=B$%YQyGn% zq|Xapt^J~btJ=q@VuJU$o>AB-EoN0#jiEf%D zS?!_Q)6HDi_tn8tyKcuvx6+#c@N9LY;a}*XJ9eXeH78DABAa2pxws(41k+j}j6*46 zJ!HheoajRmrkBl^U_Rt@LeHe(Rt|-+K5=DW{JO*B=`84iEN}cL={9XzN>GwtLTda$ z^JyGSDC56%bosQA1xe@y+A47vPGL+$)FE77g_GuS#@=cfaM@*}LE>+YG0S7b6)|0{%GtgDb z0g}<@V-}>UOZFdB!=3;)ep2H_n7$`nMNy~Dl-LJsviU{)Sgt215l03YgriXJ6Azt# z90M2Dl;5was>@w*c;eO%G$x_SGeh2+%TIn*QS+5v2qU_eQNK!6{ktEJY z^aRIb+1?)SYU^hW3wUVhrBz7xaC}95Fks7S!-DL!aa#x62pp7%DHRZ`&+EPsvi^G* z`Gh&V{PhPyq~BVW=MDhnA6Em%Og*!YESL;w#?sFoL<_>)Hl@W$?b0fxt}3r} zNi)d{tNuqxC8Hp90y-CtLoUtK0}&`fKa~89 zVkC8^!)bHAhL>;la5z2?2!|XYpPlu%A@Wi+Z%77o2f)M>O$EwCz->PTKe(-1>PlZq zrm7I3X&fKrnJl_>j?`WQueqWZHI>SbK>P_~InCE5Ku9Tipuc=N3B)aYk&U0z3rBG~ zP~=ofetmhP0=m!9p}4Q+>Pd58h{YRV^S0{ZdkxIL{2W+$M#XEK>jOl-SFOm)!&RYm zx;7O4fXk%*$DA(s(@@HNJOLp!*S4qU%A-`qeV#-Jbsud({^JLw9zVq~zU43|&z~q= zO96LFl`1f;CD4yZFai=*${=o4l&QdOc3>){J}cRq@jUJs$``$I%48kcy=vRFF}ppT zIDXn7E>SmEBpCIEMr=d$xrrw2ufawF6j)dXZ78z^k|t!AJC(BwWkWaA(?yYRlb>iB zA!VzX|IqtJ5I~zYLB|QBWslWs7e5YUIW+)04G~Mmij(G3Av6es;mC=GYp%kr?YOve zdr8$08p4gyE)U$znJASB^2VZZ_+)NXBSCt1hF|a16Nbn~n^}8L-RIKQqZnPyh6lZ& zTm7<`vU%v#C6REmqEV>WglX2D?JbgbuDaqRf04_A(Ppb9xLc z)$HjY9s7cYmm5Ql^^URYA60Rsrsr5wWN9Y2=j#Z8<%ByLA z$9vG+Xg#!Pt&t2O1gpxL;izwW>o92--M>YnaY~eQ8VFMwe%>HGu`~cjw^Ebqa~^x{ zS6JqqFG1aa>K)lE8dA8aoDVO@A|aOQfpocE2kT%_5El2hGKlFpRS!Kq0a>=#jEdSG z6iZU-$1UA40%VJ;r5Odv#Id*H?t@16^C+JS{&^$h#&;;eTa|C{a)FmZ&8JWo7OQ>` z!}KyYP|vi`axtiNEeL8a#FK@nI@I?56g)bc9^l#$lXUmjfb2azZXozjK32x6u=L(J zph3U*d|BQFQmCkIheqgGLtvmJW!=`Z<}qbvgtVv%7aOY=4HQ?BE0gD}wPfa80O|=3 zvH>_N3AfR*-(}{as-;*9IN)`_=W34n(C zy3=tyd7@>L1rTzv)DiK9|MW}Bf1>~3sNSO|O;We2O^LD2)wz$rE1jqp&yq{OfJ^~B zKNj1FY`W{ZVI(B8J%CDgiPV|EKDf{3FeurA-xA92lLk7z@FQ zIax}{x#@VSN_HUP2wq>OnR0UF@ip#OW~;mJwx1gROQIYiOMZiS(@k*%hP7v+timNI zrw^rhnANE=@5?7iQ&n`bIf1J36XgQ9N2Uq->gQ0hx7-0sv+u*3uBf;~?N6^$EvFlu z-Vng+;1oA$>LmN$gC|4zy-5wT5+AK64?)p%FV~jG;|Sf)xYPY$=?7?Y7>@3Nm}0@k zs35k^N@S9)whw&$r+|0FCf1VCpLi*p@)mQY>iOG%y>FcSN*0!U ze$!QmRX_;Xy7@*i?q7EU+A9UA=zgI#dg~g3KJKgsdk!K- zOG#?j=2CaTxm+qN1V~(NPnQE>M!xKvX*Q7}8`m1Vx73r)*TLBJMkM%ClT*h3(oU-! z?v`H4l6a!~>!}p%W~?`BIiAGSPS^#H$?iu)94MaJ~TBmjAJ{T6oEocomUaEYA5_?o#L(NyQM-8gD9QZ^)g%PTA zVrJF4dnRQFF?lw!0~I?qR^%GZ695s`)M zIG?N;`a9Kx{7c_z>G(IB>N5r5(3n6zDJ%t-xPXtq#3q{IzV41@jSxhUo-h@&0d@FY zRVSgo)9YbO7Ef?ioV5B9*UstBy{7+f=vG^|G|@)nBp`b8M{;RaCbxb-rHcL}jWFBG zE{FW|*eH}nr;SwEx(H$&n(lyL3C=9k%ctNgD;s+DQt$3?1Bt*;j*N%0CuIMfkiA~#yvbpm^DlMjU`E}o0e z9}91eQgFzTnIKb|;{B&ee z;N<{iT2S27AR;@V8lo^bSQ2i+|DJS0)2Y;j{VgCA7oC$Y+Z|TIXlHjRj%4S@}mYHD2y?zARh5s?R8HV*?Jynby&A_2Cb9o zX*a@)INi_^2648gx|3bbtp{7_;Fb=PrU-EBO9nS$?eOam8E=9E+M>|Y;9Hb|X(4kW z;VMHXFkzJL+^zL3C{q^(Rf!|8_mUlFUFF)h@${D5U^wO06b$0^dfYY%+=2LZe~A!n zrRR3#2Bf4e24QM{95zJw9#T1<-Bt470zLC3*l=D8RG-|9{8n?Jx^TzSNl&V;u1lg& zaoi>jDBsL;G%Bn<5oJf4<1K>doi(Lw9tub`6>~tJq8@C@-xcm#v{Nz~a&&$5P$#9^ zc0sp&I16ouRLTCj))$^a3VE$hT$)IcVWBIGljX&^w9m|=N!!x%x~Ndk&R_@zV6ieD zgLTzl>aUKh+7>TXF+DOO`rpIiaRp z{{$BL6P68C!%@nP=YSKfbiYSl?F732zRLVQi`7=k+<&|jnJRUn6ky~YC_^^VrrV5w z$gc*aP?g*|1*O*Zwio;q2K0IK81dT6tJ zTn%)2YZac*T20_`WOMgd`>r7^RE>cSdVY1()~qzFrt(-x*#(*&-DHkat>yjCJX3Kz?ezhh}KAFc`ml|xIdZ=*1RtT=tiSlN7c(iI za!@{l4)LWfC+xYbDQqH3N9!^jk$ox`Wm8OUUu}V5S7zB5xn2yjo~4(~#R~G&mD2v; zUV1`WP<7I=Gj3Tmt!IHrtUs}1Q%q_T!1Hf84U(evf>ktfj)K0NvEpt6prZBM zSQ$TpV|-CJg)zT70h+dr(OM-EN>KnA)u4$9@F0XQ(+f}f(B*PKI6gDnJF6q2Dr2O4 z{Rd}eQOXP{p>@HV{P~!eX>Jwt(nZc+gZi!?hegqitS$pY4WIJ)^pvMn zTqb$i9=QC{(BRg9qcS=9(LwFsh9*8$n6-;QN6^C=Yi0ZJAyi;E}v0+@ZTCoChppzK*l5?hfZ z*$DaU7{>qA4`9ZX^guj3$yrbSILL8UFD>J)!V^K@C|bzA_(HH0-{Jdu?sL-Q1yE>M zK1*MI#q5Mtlty9))Is-(vzMO^IO0ueGzI% zf$m&`iEHtz+w$64L#)BKy7QQa>U`Sc^dfolBJXT^W>w5WcNU@wL*gIhE!n3UEuPVn zosx7Pzg%3jw@B91ge7ooJ)2%OLCL-hK5im(8eZw%E(;S74a@YRHL||}$Gbbn%n!~n zI)3XB()S1m%?(&vX``xQP8#kCsx)`{7{nk0tLx?cabdaJqJYq=_l6meeTCU}+|5W` z$y`D^CV#)z0iaX9)d+BBkhd3xpEQapWa=I_?l3+ccQr^L6e&GkF+6CCMHa~i5FD7T zy%I=sIGNBfb-_y>mhK!aO*7Jxwc-??oI7mzQQ(6ec+6HC6{~0yYt8SWf-c+3#g{q7 z(Aaz4MFi|6P-?u?#%>o92p59{4wYa-1{25{VC;dVpVd9$bwQf_$+7?W< z9EO{hEALV99LT@0s_Z_&?h^E}ZLmWh-F0=}W~uuu{G@$vu$^)@M-e%AZ1I66;;gmI zl9PAL87M);;VAl+o*;Ts3o?FTxmQkrMZeI%QmRBDBO^zet@6y*E{i-*vo0WLA0rVx zLAlpjaE!&eV>YN^86_9nu>v|u*OvF1rm0K=uEVdWN*ArEMTUZ!KSs8FZDSM(f1NrLjZF;*-MBm-0{dwJFT4(s^JUuRq zSh-vmni`(HX?n&qq_M5HG&ttU7wbYs*`xAq9;yPwQRm=!1?TW)Sdb*j;)u~2r3XRo z;$E;ft)3Q0&yrui247#)t*fMXF4A*GX{Ka^M{zenh;vtMQ#j2L{)7bn4YvYv`WrJ$ zg6ygUx91|ds&=o`FHKdX(cEoJG;LmXGLaFcp2!|zihpkdU+t_X)WHt$kJk1Tcoelq z%gqj`G7WTh9n>9?+)W)=0=G+()g7I(0G%yhwME$&PIN?QTO*dR@wZx;b0wmd%O`0i zKrNPNZ|)9~lHfcgE#wt9jHD#R4+-ZUl){H#8m_sxdn8_d?sw#wM^|)QQrIH6o<(@FTeVd{%bk68SEs)*0X5yFp zNfKYmB%M`*YzLlV;Az7VKM=I|L{E*zY&5NxcC>erOOsgXT+UnzCB~WR&W@-YjXDt* zjYbN5Pw8%#OdD!0#_v)x0Q7cL11Iy_YNg>ms4!y@!X(g3&D~GlORYS~q&2&an8_m2 zN}e5uO@8_bD0Pf8(e}oabjMeOI-{v(!O1ldGPu>33_#FQ^L&wf(!d*(ZAu2(5G`=4 zqJg*;Gq=cK3(G#EVs<|IH;sOJgqWx*G*M!C&PXDt1*g^@kublgp)PfkK(6lOKM_0^ zXdn)gED2-&!s>+C`e#c6<&?Ydo;er%EjxfwQ5FxrW`yBhanvWt#4kU6gre3nffv`$ zX&z*j(+#w2qj4mZF9y{MT`2aBx8=kkfI>vqUceA+2jHE9@q}mAVm+7#Zp5tfWWXDg4A314B?KPA%{sae=h z%v*q9vhx0*^|pflTROQ&zP=TUvx-z*aaIZp5^EbeRN*IiU&5CABM4XXR0yX9L zkvHyOEf8csPg<*HISp=kL-KH;*NsCvsVbo@cEuMRt)$Bw(9WWQz(3U8v*p%FFm5az zMzyu!McVH9w8r}HBtRjspJ!HZ&E+6QYwU8Kn^psh; zwo=ZH#KERDLWTW7&+u@)R@MeVTDSv2M6T#}A9)i%Rfu;CO0Vqvi_NuHmL7!x#(@V~ zN2&1$UH#QvtnNp>c&qF^2$Ne~0Sl^5Gb5yo&_*&=$@-DHb-5Ha1YZjDU=R5rnZMpr zmnmKKvgt_n%&9EWn#gm$rtw`wqHQa%X(LJlm<8?xse91nmZ25B zZY7*bRNTl|X)+QuVVe_`;P)PBN%(66>y-nd0bVFdnvR_g#5d~iH$V~QSajMipXSF_YGTF8xM;cO+5M#yL?`bw|w42NC^ zSM5)FQB66`B`vC`Z&0YRZf5V`GDI2oS!a6Na6{Iv%h%~HYe?Y6LqU5QSSC26S$ z9eX`giLyvJ5D8cg%|U!;sJyRk4x>P?kfce7K$+VVwc93dBaL0KpNwkreORSQR zlo5!m!e^1`xlynv>tH#mJhg=#Fp2H;3@3EuuFtJrUPo9%Qb$y@yf6+I{#Z>VdcY8y zL4-Iv|JE&o&~QrX%EznVBZDcqEwaUI(eh)+r)=cSg*wm)N}h3{Mc)C zwK8ci#xlD$C{fh{D~U#w7DwQsB%uB6%?72WH^P9bD&EW8=Zn~O#P7U95l5vESme|( zR}#psRgTsC9yPiDc{s8WhZ&D*QC2)b*nsh5Od#b|IGy4&wkY$H4Ta_8;Xo*Xu zxF*^faX}|YO~Wzi=`9_G8s%sZ_VrweX~P&dZmi7t$d##jIoZV;1{a;%%%y6cgu=lB zg0G%j@rIOb*_$KEuPaqL8mjD7#>>beI-_?bl|r69gpiu5hq92D_+a1E6NafPirP|l zFZ}IGm8brxayXsT-85->g0gkDvFmkcC)822s)o7%D{8_4*@nxre5pd6S$z`oR?$mLNaet5a6w{Zs*xTF{o{rIQnwz4%z`7OK^G%a z$(?BIzK|~F?P-1)`k^ZmpcXafGpB`}*8Nq% zKF>%_w#0zGoTCAG#&R-klBDkvGqpJ$0hd=*`Kp|8=;}j*xcqCKL_w_h3Fuu-Pi-W} zzu{zlspQH4sXS5a)mc?p3!U-ax(zm)Y{LNX)q+Uvb>-_g7oiJY6z3;Tjevw!qy-Sr zCS9)gLiPOb15hqOcQivFC687Ymu<9l@g5|4$vAMCAhiQ@%1{z@qqeEkj@^_|lXkwC zu~q80iU=c4j+3F;Mo`EDErTfY!h%i@IsZh6uH@iFWyxR=U!c4 zI6&?YwMKMp9ZEo1Yq3qiE{&UtA-zU-)I;)>H`0ELw`g7Nt`u&b{pu!R2#>}!)RI#& z2-m%Jfjz-s9fbjiN~y#ZZ+WO z>pMefKa4}c_*>8G53dcKQ5izriR>iiVA@RVuCq^A-wS$b3t~AYw+0W(!!Spa+kmCc z1}JdOjq+cK|P;wMyZxCC?o|?WpnvGK^B^HfazG(U2E1SvfzW zxXz@2;a51-n|p-`dNBjGc19k-rSE^oFIax9P`wl@7WdUU!x#TW^OX4sy2AJ zoRK98LeOfm_~;}AlRZ^s*x2O6Ew4j*P4p(Cypd}|sn-$crv!484{}+!V$K{7Pstm> z{g%B3mjZZ;sj68|>?z2cIeKwzmF}#vH%i>BQAVfcmUb($bYzD4_W&wiQdU-84Q(jLF!4m>hS~GZ~$$+nBs_^;DPN-j&Y6vY`Ge{|< z5|_E4Xu<_8A|aEiZRt)53!CJX2AteBPz<{)uP^q4={cb9iL z<&c)|fHbeDivo)N4%a>^NR6C}VgKj> z3np!OO;sY(E-z6D2qxjP%lR%aj(FtQr0`sP*7n14^?;EC-s2WWLy3~>+YJgd=zawz z>rng)n*6!2BwC%+-)R&fU2y##)Pt8$O+zu#d#8(-mzTg%5{BE# z=}f~eF^|1j=<{&qpY*^)nSIAFmG(4g_4eUmKCzeWUA)2eGE}A{YLAX^rxrv|mAv^@ zF>bpmDY%~MbJ|ad9yBJ>fJi|fs8o#B=v@ga+#`9Prl%7UpW|{v+n`;v?%Jn)n_diW zDEb1YLn_@)rWvWoZ_6_I>MZE^1=&$xC!xCIpTI+k!!bE?C_#4HtDLxSkUP2-l)vbm zAXXCw*N`7zW~gtm2;*eCy#EDbWUDgBI|hJ0tNsA&R6Oy>hBAB*g$Q6-ad^neF9nt!(TOM0%{YVI}3sgKd9j;OrQTkk>RYfAILkNo~9RQ?e%LKQ7N zJsv9gD=`jhEp@5ZK7~T14ZR*tKR-)0pLUtB+X$~6pa+|Pr@0-N$@083DEC?bUB)ET zXmo-Ey?8BD;aCfw%xo`VD#hW0VUShptu8+@)I*D+sz!oT{uJY^x9+4u^AFHWw$dzC zIJ`c&G}TOE!e1Z~v3Kb#MGJ%1Wms@lIII#X1{#Ny+hX}C{#vJ(RFkha8_6=WCF5NT zFOdyZy{XI-_aTl5&t`2MeE*A4D6|*!+?NQe$&HXJ4{=0&dmF#m0&Ec(5y5d)(#s~u zUxqnJ+Kx9D;f?i71{E|icv4ExCkx}{UCIf;c|8rJL5`t;yQV|vu^CIy9TVm%=R|$X zu(*XP`a4w(Tt}YvRL0yuS2;W^IRbZSYOsMyfZUP z+T;P+Q>jR}m-MWWxYFHiKws+$Y3oGYk(3Zj9z!Mt87S@I&G~TUa+)jEXKP=o783;y zl!w=JhXvW@@2hK^*%;vG{d=HK`g0bMCGuP#$@`S9!`jQ>EDl;3wNtWfI5&u;oy(S$8&6SAuoq zg^hUhrs*Y9U>~O5^3_J@nT+j;Tq@)bz@uHbT(UYd_Y3OkkUDbBWW+;|_X9nvFZ|fr zRsK5)f)P?nS44G#^o{PX3y-Fa)$J5;K40}rxvu6;_bBN)2)!e)O>*P8Mqgh89zP+) zf@bWliO?eWlmdE_<)x+G42aEc*OJpSwUnHoZ10Z})AK9<4r_`wcuTU~P=e`l&z}p^#s*VION)Gv z`*dP1jLIL4rz|uE-t3$zS{K6yHWp8le(g{k6EDMTs_gcvf^EL8>QZr@q$PnXrp~ae zXGX%04u!dtt0TE3dZ2ryT&xbCK6Q?LM_o1?sH7wf4o~M;uFx}$qbh@!PBjNm>#eZ} zhkz>lgf4x*CR|~X9`~kX{{UB5K+KmG6`zE-3(Ur`mK%dm6F2^ z4{v&14=u$#P~2A5r(Vp(E;0?m(a88$ysjdEi;8Qco6F(L?&Ek9lNL~FJUdRCAD%7$ z&V`t#=)M`yW?4TNMAk}pL!KGUoK(2u699jn8(4g-=gpPYWv)0WQ*|0XB_Rfiveo2^ z%+*>OY}5-X*_(KuL)wGH66y1He6sc|r;w$)l%5n=iz_m7w3zX`%GOKhIdhfE;g-rC z`%n3?R}x5%P2e9W*HFa8Hyu7aLG^`*$D1xIJHrt7Mx(3z5$Q6?E|s%Ta>nJ9o|9b( z%K6`p>lG8Nkq3AS<#rW@>Y}^j*o5y>Wv+~u{=b`TQf~nE=-28TR#V@Aj164$O@Uux zPA-Z&@m1|rrG%&oXp8Ll?UzaA^8(|EL$(?3Cq`dYIRG?$l`VDh%kR5if-yG zpo4L8V=NR&Rl%_`PdOo$=p|h^95lLj^tjh$|7`X(RW&EPd@ju?n;)Z4ezb&r9Y26M zu|+Q#1`@d6L66R#h0g5@mp|NwUvhduDl1bti={r7ifu_Xi~D}Il}B*W92o&Mb+>UU z<)eC*^gMpOS;_)2cx>>Bw8vU4&#PN=Sb9IYbw0)mTsCTqegP%PjvfAGfnOC8Mzh8yQ2pDT2=dKwz*OOf;cF)&IX-&=44RJqMb-*D%#<2LVx_i8A zI%cMgjt_$*XC=G;R4;Eu#gyF7;2mWR;P8Y_H@E{-ztoG4$S^Tm+-@7 zM)@nH45cDVm3+2FBXDsr5jmSGPF29`sb07l`GGU!Ilb&4x;hi%ThyCogs`QQAN*T zu-3-<4h=-WCeH!3j`lLNU3MPIMbS99@+Ly%{nk*x2t8rAtk`A*keo%+Fmr4h@WAB{ zMsoQ_$&Yuu`IsW*`;}W{vJwSKLC*~5#r75|Xo;QRU4Z?)Y9}#G_YBkiDJWrD(;+!L z%d6D8&~TZzo+JHT&oj^%3YErDl!PQC5y+vkO}p=fD?Q>QrQHUQWfYBtB)SnIa>Q*T zM6ABMp;SJRmXFsVK%}r6;1Ac!>LMu0hDrQ7ya6xiCF8l1#FNuJK3NXcfi+MS$cIq1 zG!SbGvsDUfBL^R-GEuL7WX@0usxpN9)m8MVoFHPBN{Mi!+wUQ9-hG^g&iX2kVY``G zBHlcN_)Bu+r?h~?>_-61S34$l@n^PTY6k@bI!L>U$mZ8Gpt*WMNOebjDBxyg_EV~7 z9tH(HL*&Q;*bJqcY#1u}JCswT9*jKL5b=T|;-X&knjEd~&A`m^^@K5%(5yYjs$B~Y zY4>7Es%wvoTp2wOVM|JtNqKkL$Qy$gte2iQ3Kx5sYHU#Up)7ykwJ7(HP3f7VX^_O# zNl6<}o+zPR_}<;sxW?3)pV61)7$3E5V)#X-a7dgKXtiOsxalYg9;OlbkSp;uy zJ+zvz0e4sFraIxwP!R|Nl&^%EOwqDe(0vwA1r#3w_0TqBQc0&0mz6zQzJM=SQt=TI zFHabH97GtJ%U||L%zXbSh&!$WnC;s~LjY7q=j}wh=0;i|Us^*+#V&s8^J+H>isYx! z<~XoEeeqcT3_y80P8uXy6pU{eknedU(k-$)t50{%zG`?cQoMwr>+NWYK4w zM0Y(dl|#+gq`b53Fm=k0sc?vETE%dR8ApO_=PBa|F+n8^S$T5S8$yoc?uY#c=5dak&OxQ#^-*f*}QL>eg-| zOe&yCF?kw6U4_G7IgS|Zubhz9AV)FQ;w^~Q!2fELR+YvNu*AbQvV(ZtvQ^exhfgh4 z^}gF*F!D4PKbWKL{0mk><(8SQ1fuSfeQQaw-j3fi*H5v$)M0*~EDlZXjILiy#m(@WymA@<_?;wsI zL}p_-<)|v;Wj-Jn2*cwU9D$-!)IeNY;a)^jJu6?eH++)14PM{nJT!S$w>A;iT9%$m zi4iCui=6M}Y?CTJO_5C6RAsl@AbB!;11f#PK0;hC*U8)9W zio)-T{%2`2i9-`+Skhb&DimqLQuRXsQ^jNRwso(|AdgQ3*XAn1a zBp@v6C=bIpt!Rs70JJYq3jkpWy*o+gQm-R$gLP)*;>z>2A3?F zfgUQy#z^H>x73_)jBo(ZE zS{aHzr*KE_@e(nt=O-Xt>_cUx9X=7K;>NsqU%-gsXSJySf5*#EUxJS>e@HB6f{f16 z>{O})s?Q*mCHbZ&RVWU86VDLP9$uUwRkb^BOx+%??NygJhL=0b#6ut1Xmy#Vua z6$pIcbAvqSHc>$nfx$j2*N(-b8L#kw%$w=5GhX@gIN=G(z19Lc>ZbeOk@T7lscn8 zj3av7b;JYV5u^5*i$FW_+K50&0;K*hKu=ifeU0<)s_Mn}*OOH7r1CzPuz4}OSZhn! zbZ-*4Lv--(szCfd>dJYox*Q7xjeHapElT=cHIyzIHyYEOh_or;xngc?_7IO))&mZZ zgk^oj$VB|+)*-DU0Z8}BckQq<6ANF6oOZ%ii)$XS6#vs3;l2bA}BEFM%gF61} z+RDTv$s&)FH6)B-g_c&>eDvS^iAy`Fv&0qAd0;zMr1-fIxtrxLw@zTu}HF9@OEN!uBy6!*xggaF%^ksElh7vP>{) zi>fS25ofEsH_vR7m)?NZE2&l^f9fT(q58bJTpVYii0h`y44>436V0y!h1h0-=EU#E zsGEx--913khanmd>;7(Xz5?s~EnQRL7~#@_Mt|7$<)fqz9lKbR$t*9_H#D3q#UZKx zH5$Ww75lTVhLIslqd0|c%!q?qPhI8c0>RhdwNzhlsA6bIdSNTXn0=A9yR=Y}K47t9 zp&|H6a2jH`C_>tN=Ss%qpX$emu&5dU_G^6Ms|)`x93lU$0HyIisGH2>77#~?3CRq$eXmnNVH(o??zl*OK+R;zq*_~WrQ2v zNeu2k^3A7^J^m{?(y@cGAy3<@i=@ZR{YN#UA zM7(z8FcS#PP0Z({%a+4@v%GRL4_Hu-(u^V!v|M+h6&`aS z6<%mol;fvp1tQ!rP%gciMw9DjAZ#+lRDC7#=C9Ib8Rwv1g<6+bal;i`5FvR@LDSGj z^8F}K1yO$v5_h;&P~u6BM5}|%Q9Khcl%=XL;cAlnY_^l1;TKxN)ryS%(B*^_K_?_< z6OOa!6WO}TrJ?eAC_ERAE_z6HM;@yOM!+yL1`q&-P+qmw2+A`LAuYsveJ+eG?2ncg zZ~kpKS#9BbAgYbhzAa6V@Aeuc0Kc%MY)N51$HG%7(^ghjT9m*X&_u&!z#+2*hR7jT z)7?{0mXq!xDhf}i=-|!W9xRQ})W31hRr=rmVNIJpqgALN{XVbo43*P{Y^Ye-Y}!<% zYGspYU$sbHpWLic*(52dwnXg*l_SHn-+%Gpvy+26-31uz`0L=>cONq1glJy6zi-YX zmWL5?pX1@XIsEnSfBZH39*FtX&-}K7DhmHm47%Ct4e*b8_pk@u(T$R_K(VXG;jxntA*2~EI zW_HFi$MM+<@$B;@)xvG{Qh>eD#!w$-^Ai09zokQoN{}>C}Lq zIc{<^s~k+@QJobRf5p_zUgB*vRb1m}7q3a0{J>vdY-W^dKGwO>!6^Ou0NZJ|7~Z*p zFRon#X0d-@;CzwGw-ySC${X~pmXQk>^fta{nf^5^eg6d`Nt*U!rNc4}Cc4XWDI?Ip zqSS7Wyb91)n_)Q1mxWXL4t$C0$3pv$0Y*nM`EuwzR`zR8K6_l1pN>Dz%Xc{}&H$kRIT_QVMuiQUEy3RGO^oi?2RoqyQNy$%M!4JudU`-QCZWDisuI!o9k z+`#~8synG|FmIPE<(PAoo4)?|sUnjvmw}WA$WoBEdofSJF2g40PZ}0kpnB0BP>pV0JH|Yo z-i-d?bA~3Fy}3XE4*4?p8%9Zkh0Ao+q~~!Mzj(9}yCXR#OG>_B#(|6B@5|!RyW)$a z`$-FGd|V;^ed%V89V}`O%Mj*3M>F<u&(<)_4}(mXb-@w9;gW8EVF< zcNMy;+0JlE!YbYlva+-k56E=sU4VJ}W#F~&6J|^5!XRV6WJjMZVx;Gr@B+7U%Zx#M zM(aYK%savgeqYKcFWzSEXJgsw4=sV!#8>&E>sa=iUu2l1TWgM_xrup4f6um7WO2Z~ zSMu=dIlMGh^7vLa9^R11Uu#yeg7;N!#T~z4mkwhYD(oa{*?5;ji3~G4wOG#Xi)9?l z0OAWJpQ@#@tGD5kDItctQ-R0o%wu^A>Vu)NW5B!#{rT%|FIINQ#7MP1XBCS^1MuHg z^Vw)HT5`6WlMSQS67_uO6S?I)xdbAsuxPown@r18H7z3hFh)(3qJ4+ z)b#TJPB3jTtM2*&Q{>fQI~7!$y;Y+a;L$#wv$jLWo{&N_j1P?j86JVDSC|rzwe$&> zB|q?^x+>kg?|sJABKYOiYHZ6pjh%<9%!crRi;%YuG zrUK@wUC0L3^aM}_X3FdF*|@iv&)b9nnk-`J@7_T* z{hztmMb)Mm_BFp)F$XQFS*b%i8lEZd`5^_@D~3%DSLOM$5iDj%9LE@O!yqWNDQm7g z4AOdFW(()y`D^w==AS!}w=)&yU0u#EMlA#`;}0?QoHq@NJW#lLB^%ZhQ^IFsOJPHe zO6~G@2Y#yeW|;?7)TMPjM~do6r>*_G9dO!}B}){2el>6IQkIJh@&IU{`v=@s+$;xsFN88p7QE?*Mt#jf}ot<+Mj4yK@PXRUaMzp+X}`%JIOH2nXG1?!()Yrtu~q7kr2qJJ(j2yN57Sn* zPGII;yCJfTSc>v_EYH8U(Xh+P`+R$OF*E;K3|f;+Z<9Op6_sat^2O46Ab9mEMyfV4 zrCffT!$&=mn7zqR9&2kD9;tbO9e(EI?b)U-vQT3A={_IJZ@z=kXDJP2HI$`B0Y|m|1QhvCO0oQ?7~yBCcJEg8`%0?71uhe6D0+b8oVN{=6g&r> z{yP-VwVux^s!-8K7AdW7*EY8ILS4`#A)56p+04mrp`<0|12t+oG<7A3gX}J8d6}g| zfIph4AYZZ-;~M%I!&Opu?%B%9Jvo5ipMHy7{NV$5D>Fc@53NkQuD>f;+O&dUy|1~f za-qKw693zr$<{TT*t#+vE?vrR{}{p)@0i)aS|x}M&WH4GrQjfJ!n+Sov#^q}<~$WU zM?bzuFk@7615}#9E^gj6vc%t#zncGISmlgTY7Q;sRJtjhv_l;@$>|HMrw3QT+!SHy zWw&7T%JK9QiemodOIh8~n()6f#1%-mQXM0^0I06#_-vm-x#@FRtoI)b&!1IgkzqMZ z)~%35T`p#MNpS#V!WP4?g{vYf2XsdS!7Q|uJ~hW2tyPD2SDM4#4_9K_gA#bQ{mXE{ z+jZE5`BfuH`##4ZFRW(B(;BDMbtX_ONoUoSmb0+54$N>@^`n~g2Q>Mby7T&(KE&8% zgnhieflumi+!uQ>qx(xncBq0Iy>(kPnRU$Y z$@8-~)%f^A+1mqC@@~3SHS{Q#E=_7L`; zl>d@?s&G@-2dsZ3UF_v<9y3q>5#&430Qhac?y}3`8+^87J%A0H&LjPw7&ghJtBH7( ziS^ZX*59WcXTrr4xhKuh8CK|7wItyXbF83+Fwt|QVOO1J6ydN4)s{PV*v>i%V#$`9 zu&nC+AgPZs8SkN=W&HjwgU(N5+j)%*yIdIy1l#-x3z%kSqV=ky;-&LE+@}^>>!_Y< z{x0K*RbNj$gD1}CmG4|N;KSLP)Y*c z0MPO)E7;fNDGNB$gX7xtBNX~~xD}@k4Nh_<0E-6i82QrsZ;(8HEsXF^Qy9zK(q!4G zYNw>CR)V`9F;%}@j?Jv}hWCa5?llU@7d>Q)UwjTO=9dDzHtpEcic0*<`Y*FC+{z({Z4ueSr$=P~N#xz9PDnt&Yt2O2w`oxEu2*a_MpJ<1}N2lB-c!Vct2ccA$TJr5-{ zi6zD*1F)5Pu#SAYnzyT~17^C>)|J;3@7Zvb!&wmSl&^z^L;7a%(sj6+q6Vv&ULUch zRF1~S+08B$1!J$y+duCxe~RLSD}HC`Gi&k#qp{%^e+Lls+HA(Xs9K~9FNWh3;!Kk- z&Vh|Tn)$6sDH)H48FY*OikCfSSksQ{xDII?UQM1hgRcJm80q_l3np<{X+E#SaAbG8 zfYaFn*_2iFz^-@$&{XWgc)oKy^1(AO&p%QKihq-LcORI8Tz4iA?>nB8ZIZ#E(vl+@ zCwfUOd6!D2a#3-biT40r(eJEhRWY)`smf{56(thwnUZTi;Ml?64Yvq?0*vaCj4Ds3 zF!y>ZOra_ElGZ#tNt%?vsq`2ia3T(bbm~^K@+}lX=Arr$*PAc4o7mJl)I^po@D6;3 zf%;tMlDtn}@+it@7$)(rHgcuR!6TirU8%BiKEH^VhkKG3P%~FJp_<~`3GwDxkhsGV zKnXCsp7bZBP`);21BR6VBwxiiJ%g?-od>eNja4|cs0*%u_ES8{mO{|;$?W#lHDEbL zfXZuXqZgYnSrs9$#iUG#|9z#x5z0((r z;Phq&Skv#{D%@J>qRy7;+TG|eBW<0@{PoL?fY=SAL~0B$60}Rp6!+^4^pgQN=8a)Bb*jU?BlS>Kv3?Je9+r%N+MS*!SwEsbCeGvM_f!+k zE5C8%6JLQ;Yjg+L`#)g&9lNmn2T%EI_cG3@zY4@1S=9jDloI>>MPT*5lfMQ{0bnZ! zupE!_0VECJi@3`yeUBou@yodNvn%vn5YFzdPiD%dDIRT0d^s0fwBGtlctimeFtGf?@O3jSm?a~gkTUo!IKmDh|oIlGIg z9~?Gpv<*v;TS=_HUps(s$pibU+0mRY4L9(EiK`jpzMTUzI9F8=I#;%Q!U_GHQiN`j zZzk!UPNBFUaPEDEb&kEul>()CYe`!r8pclo?Dxm>96s0> zId+ksJ)keSwA+caqM?0NS+8cC1rx&&PY&e1dXRaVGA;hx$asJL&O%!?XMk7rU~TDl zp7Z(SW0pKkxx>aZWZqRRc;sm|P?_=e_#zdGNVg*L%uCNtjS3EN4)mZ=<-g?BlHN2>i$#S|oVh$otV zV_4;+NUO_onB=AP0H*8f$p5qF%mLi4cJ0%YEP10o z(+%GTQBO_@sykDwY{z~iN-3ao z$Ct;#g}x399hd5mLQ-;#O)R=r z2pB%jDVJq40E0yZgdfZ)mU}grXYjY+@N#1LRf0~Eud-?V13*AoMzb8SATy{VWfSWv14B_Src!W%Q7(o8Rf~ZTi>9RGROK%H zK9iTZ=Z#$HaEYZn)O|4oAeS|vmmoxN>SvdeTjM}2F&=>qt@WfRc~<$|cF$#~^Di4& za$40)cr87H&_v>dX*^&vy-`}N@))UTkI&R*Lk_4snX>d7GsSHRNX#|Z#fH}Aav9rO z-4uMkou!-_V=f_b&0bB0-UXs9;(=|Dpi}9o+*%771I(u?1#)qFuytT1Z=AfD1QMMb z$+uIl1K-fUJTkKdpY`lv(A#|g@VfOGD;uoz)~ipL!?p^{`gSN(^_pH1C6%fhq+iwr z(Kh-xjCe)gBYs63?M_LM?H&1i-c!(f(IM=u%c=vZ@gMu{W8;h8#<7L7f53?=5>5TvYT~Uy!^~@=f9U7z`q1s+g(o^e8aW$5nD;(Z*-z&1uQs&8S0{Idy|3|9AvG=4M5lsE=I{>Vs`E8PthNnC{g z-~s~_^#YMURK)=ap^lK#e;BGIQm7$mR+%P=8I2xzTu){v)6w$6(`~f1Ft{e6y){>8 zScF{)Ijy3(K(fV1knY>xq1e!CAXA~Lf$>;nq`vqzbJy)@IOJm`?7X}1auelHQ!0PW z@(6_umv_RM=XN;aKb#Z$r4EZIQ&G8GL zFK1t77Zp^$&R#0~Ct9Jje+~N0x9T$L6=etA7|DsHsIq|sU1Ung2W;Q%;w{tWCi-N2 zHiz(SX&zA?2~FhjcOdGb)eK40RYQqYVzyxe131Min>8fg>;;CaRU8%fr&fvihDj!D zgLjOd%2r3W02;qX8h&Ml+GJ-RmtT$-LTN|zGK(y|$!90}83__<#a>g_v$lgINz3Su zU77N4kXct1WJ%vQcr18ZzOLc8EcykAusM(jC!KWoCAQtj&PC-cZr*uXupwf5QP^QizxP=U8^f zD!i<`0faBco8x3ExK89xd91wE3-;_*@zG!3<2e3Kw8;atySi&w(^bQjs>PP(s-SI) z)*&S*-=~A2O_gfa{ti;>uyGX=i6%#ch9y~9xg}m*6E|0}a*gEr1CV%Kb+9|65`HHU zbS}fHxI9v(jOpk;fFw`%sfb!rl+09to3ATK4(#yQ&zo`NUF=yyqflUIC&3)%nxP2cu?}g3SPI0^a{!^Zvkg=#8gim zPfPi6G3t5u@DlB2xRa%4{vSza9v}1d{r`74m=TE)TU^A%I&Xy72SM!fMi{llKGr5B zj6L?TPmqeG3|gW^qixzKtO`}zHo2g%I)eebzv zd7X35(olZOG*jfYxU_63Y{RKPMhU4r{5K4;X((hVRj#HIKZ0lcFaqLiBX?KYhpZy; zyX;}uG8YXx2GCPSxgw--zCA(80L;i=Wk;Dc8iKzxkmWS~m`8c_9INCG0GHM!bepUMQ%IjOLa+%!% zo|&QNHxAMDK^t^-QV;GSh*MB--+dV`I@E=iuPug--%jEk?uXdhALN|Nr?ohs>?3UE z6dAAb>P+?(4WzGLLD@f|Ckt)sf|`j* z=SnG(y)0c|>b^rA6NPgH&526=PWj6VIEnBSPFdb5&WB5m#A|_w=K!@H%a^7mq zSIbfLGTUfddbbQag6S)bbQv|$Q*;4wu1r3`8t(nc)6V|GMwV=b=NcuNR7vZM$$`lP z{q;16175cJoz{UJV%bB(&Ah6^2eAJUJ@K<=x)m}!6%?~3!W=zk@U)j6<>aGu%abR7 zqeeJA2#N}~mAA(6P43PKWDyFaw%?H4deCiDCl=G|Fux!8k{OiGZm^D~)7c*thY{p% z(Rs7ROZ;wDIUnisp=pz-08Db}Rrsh+I-BgIJ5|!3%0*1WCkw72pCg|^Y+CEKH*-~z zlAmgrC9*M%C3P)lg^ua$_W>=nHOdIU;r?c_!{P}1Z9suD?FVee@^W_l(2MAo<|@0j z9Qp=}xF@TKBt}%zuv%#4zvuwL$R)(?@G8zMyOh=KXoA4JtIDF~wLl{|c%S!N z`x^B}nOKxgo{EzG&G_(p0oJ%9FGpvcH3*(xA2a{gDk#OWyct6iXC!o5d{3JA16>pr+BoP$oKK+Jfx>4HI}%4Q7!E|K%@RD z7$F~8ENa>Vi0}KzY*etbGh|Oi~t} z`#R`Dl}LMO!jySwcigJfsRd3c{n&KL?v_L$uEZySp^EH=B3d?+>^F`ng5VES>7Bhek58bt*I3puN| zpJOM-w4;~bp5+|YZR@wimr4Gc?5n6b-`tEgmLs|cSo8BJit|5mPBW8(viW@&^IsT~ z19NtS8}i-S!Ea@R(hKC@zfC}U72e)ZUyJ@xhcDGs&JOyzHbx%S(q8i=PSLjmx;AZv z#mUlxO_TiC-)SnQhiyRZsA^XwStk0yN2 zr58$K3*JrDU{}eX$!qaovSnUx4s<0MAG!>;7v88_XD++@NPeuDFZZ;66PyE6o@)bs zAEDemsfcP{r0krjN9O;t#Oh zA4hZURdwr@c82M|$q9Dm8`S)7FSbgIu~}tCaeAqYUV$k5^#jjX6NgEdkOR<6RW`SL zv5!B*rm~zR^WgE1o`P>(6Hqr?77^-QkA1%xUq~{ipJcK6Z1K!}(;>Tbmze_=vi zQDmT8tz}dTGe;^fU_EDb<;TeaG}vPk`Eg5Q{HpUH`?-JYK1tTT#CnsBtXAc1 zV*R7QGgTSzB==_X*Y6JTo<%)5qZc($d?hPGet8ys64p(;$JDnIF-=5|4bcq+8#ZBu z+jZ}^UG`lzBdNWaN;#0Pm(+^o8<#Z_ydO6G8f2AYzkF?EDjk00%o=c0PX>F->NUY z%j--kre-K;7yo=L&$k1h@n)Se*XlfkqH3&(*uOV3WcFuJV1a@^-a2V|<-K#fd)SBU zr7)gh0aaMj!pKzPi!3^0#@nP(dseV@GhgWl=gCMWn#nZnXFaX&I|k1+^>7dQCq;qd%p}ddkliFk=NxU?j(SSag)0)cHCs_z6~f?J_HY7teph%I1DK6id}g zP9Ni5ae>T!01s?h%pd>u!<_HaAw|c2W2E01l+Q0uz$-KAfy{=Jy(|;n;=oqw`!Vw? zlgOWrPaOK*tdxSUQJE*)I4@n4v#FGL(YA|p!Ak8y9?;=Gez?fnF;s;^W+q?-^7Z5m zx{P;_yFDP<%lBEumI%&&K7*_zy)B;&sBom7N>{{|OWVl3uhD~X6?}|7ATsEAGbFK1 z5u%gNAwOG(Sw*C`vrl=0Q=1uPO@p6>jBPZ+sZ+!WWlw-RC_atAj=B?c%DY`Q&u7_I zGx)?((AhheXF&avhs+GT z2sB0Jc67#zdUCQ%<)Op%t^ZY>h}l?A@ZMJ8r^1#tT}+6nD^pS+ckoG`9;r%P(xw|v zU!!t50OT|5RKF7Xu$?w(KATr5XShY8cE`sB>NuWO|1Q{qx%GA-(}h;$kx9DrrvWwB zRK@(Rt!I74J4vHkaKJ@X9?M??9mMK_rkh=6(Q7@DV-^CP_-GQwo zMPpjZ>&W`0oI!R9LicS|7{O7IA;Sp1qQ5GRLUfNO~^nHq8p6!#zecdyEA z0=cQ9-7ybzP+@;f*l#PRRa4Ox>_4zdT{H{sbYCASP$cA`ClI%qg zoN9?t44D!CEhtx26(ty%#rg8mUf#{rsRjfqOL|J|e^4ZT6pT&3>iYblBwAjdWd>Cb zCw;qKPP5TXC@_Tk1iE!GFRz8{9cktgX${L`?W_{%H4cUM$;W&>sLJqykF)-pS%q@i z4jgF*K9(UREPsC)KN@Pawo5O+{vfMJR*|&@lyNnIt!<4pQm!Y9*TXy$85JpEou=@A zs&I%n2P6BdD$FEK-=nJu3OmDTuBL zGS6=&$SmR>a{O(GviS%sfV+REM4F^ivlJ+rFpw)R=TO=CKFhl8fx2`n7^<7tHIfleqieSJLaySN-z{;B zu9bUPfXY{tzdgZax^#OwAUsWR*5s+KfP#(BVwr#X0eT!*!{;g~zN3_v4u4ISAu_{N zes6AjN`^~aU1{?W09oGmu#;U;NWf}6JD0MHhBBc6mdR8>w~Y7|;$3Tt3Xf2ZM)HsY zcBgf7Us*iV(j&XVGyqS>!B!p{k*Biea&Q{wTmMTlSCTqG(w}CcLEq6Gbv`OCH9X0M zx{+p-{HC?k2|9mJdg6)T`lFx`$D2A3R?KcMTNaqiJaYkWcIV;x-O}T%|LFsH?xmXC z`;)Q?W)A96_c3tR3 zqZ2oJu#=s-5@YI@n9aKtInr|=Z@e^^k3FWxA1yo!i&UphSst>dIi!Dm6v8KTz?AS; zK*D~-Aje_?)ma5{?k%%aHg)As&otr3KU~krKaWGW zD4(Ipk|-nRnqi~V-o|FEoW%}X+(k0|%4jTa>53AiFOgo+(J!0s3`eJILOxy4E~Q*d>hjivgdNMC!MCz5o^EQeVsdo*&x*K8Br~r(6#4{LLqx)mIl)8}iqAwb5H} zJ>5zEfPAzpswM62vf{gu1;C*Mr=$+Y;MsdLNQt2Ei z9YOsJ;H0PcHYy0!f64{%>8lO20@?D{PgCR&bg3EgUaN=;dit!E2+p?-5e|?S6 zH$hbc7**CxwrKaO^FrSH@0WHTbzQ0P(sHaBBQ<_PG@gFPq+>`B(IjosCg*-erBH&@ z8Elc=RFW1W0YmgShw*ezmm4~df1wEpsx@V&8G4v|TjgvfUoJBPMh%q{ty5G;LSM@6 zzhju3v|P@C|9gzHDZheycKy%LevUdR@^iGyXqJM^>|HtrTd3PZ^d%P`5 z@OBNeOfm;>BHMzj?DR#1;~e9@fTI~&9h5eZZdr)0mvKKR)tC;l-UfZ<)kW>zrhrH0 zbu|;@^eC+Ax(w4r=~jV~i6oj(1x96UTjlO9CAauSi=e3kqAsueUp+I1@=%Y5c?A#2 ziWCIom6re*&-JoW<=U&P{S)PMYSmSaGz3~1S@F3@sIQUSq1BH(_A_f=_&9I)NhS1< z*|~NqbMNr#9eUW!*lBFw79%g^{hip2`X)a*#KSeWe!vWE%?rtcUjPzksq4o82Rh59 zdsaEx-q{q_j*hCdhwhF&jY*=cK9^#pjL|64jAY0biX+mU(?Y_-IDCq^M(EtRavc?^ zt@V1T9M6Fghikx0RdoNr!P>??6he@nip-%erK6Sn;kZ>GvAX^=D>+~8 zYR~+ue1319WvNG7vYXlj(d6f1E5|sVRgOa&t|_gUEH5<&LC5rDLjpV4c+%s%uB*!F zEpy{6hrB!l_Vz13*}5$<3vf~Woe@Ji;5=3p9-tz%oyKQfj5YCo`TR}Z!k{-jRhQNV z|7n%`*Ad8d{3cd&!eQ+1blsf$b-GPR{Z*Kv9a-6Oc_W(D-xGeBa>I&|jSs_l0~K$@ z^hXnO%c#RSFgwk9h6A$e@obsN1x87Hf?O*HB|Mf)8PQh06XgJAZqu6dJr(FFAL&FX zrZ2aV<-1|hBtUhal1!3~VoZ-bF~}@}rbXlAa5fYeud|Uy{sY?S0K+K;ig~q z_CQ=hDyF#{e_$D655V7Vzr%at`5pQ<)J%?aVyV0HkcG7f*{Avrr+qwhyxb9S>-#IV zYpYIjocDs2K&+#vlYIC(`^ZsA4cJ@iAZfLkop1jQfiU!qZjaf>;q`aS9J$XFBN=@j z2`{??F9e43_$MBQmuu-R`OJ%s;7-KXLJ!D@2GNCjqcY1H%6EfU4)U~({{*#lsQ z!rC%OJASKbb42T3HiL4%1HK(acuwp!vwt>O@YOpiqn8ZLfdpB%c+W5$zpb_!Vtmuw z9wQMy^RMz&D6hrj24FB9t+;w9??%kOvWZOj3w7t;gj${YgP9;}yFl*|&#~m4L~%9b z^~kwH@E47t5~Rr&_$kk$DbY#&B$;6?GLAb&>D(0ildYUBxgYW>$+Il7;2QAP=M@_& zuW+e_i9#19Z)1HMh{{juV3cNg_=j`2vA=?p0_|IV-w5ipJ_uX>qkBxBP@zP5q=+3X z_gf*rXp9@9ki%U8RVuoBg2|<22^B70bnvC*R9WyoQp~`nCL{=iqglIms7!7TvKgZM z4*7N|jPa_|C!&8{f3_ zgg_>@+}Uf-mk+jagxz$UimInFX_5({7N_gF-9m?Kd7yXl6VRo&Bg87y^Dl-}Ny{Zj zQ!)wZkC})kR@z%yHOFG+`aos#^yp#I8$H^$CS5^6_ZhHVuY9;xP9o8b=v_z z{o?aw)=p$3tx=j&I)tFvvePDg{MSObuRB9HI;`la*yXil^S_+)+LL_$&8vu3i+!x} z=C3~5hhx);ffk?6^vXj-d*M<#K18Vy$rL}Kt-sMXvI|s6Yq@1ZsDsrJr^hF-h3mQj z-J=dG8wv55#)EVZ4tjn~qjs@FKFmd{U7`Jk_})My=>-=1Ka?w*v?nuG1;a ziYhQcz>@A?v!MvxMB?WKoC%#p#t>+6)dl9qBoeW5^^j?wA(A`yvqZv>?d9SnxaECS zNaFrcm}0eJP1AG|WmaAi8xPfz!zYo*J`D4e=y#E!7xj2&k4jCH?%nxUaaJV{BG%Dd z>vVnPuHId(7YuUIH`Y@KvOLMf6WZ1Z1 z9P#_Y5i;vpGbAUTHS@{N^bXQ#FRkRO`RMSxiV#N;G=Z&*pZPlr6=OhEdC|=qk35G? zxqc2#82*u#cwMhJ`zKyISkIni6mVYzFQbM0xj)l~yG6Kf#8#`!_!HRwA}t6wK-vy{ zq-U6Q{D$*!>(=0h^G!;1m8&Ix$Zy2a1V%_9Ie^&Zj7WVyVguheyU5jE=Aqu$Hi|p`e?I$^uuZu*~g-HNzeNi_wvv2!zX0H6)nGYBLh6)+S z5MfzQc`}Xy{>^_Qabe%SiXyD>9b5bT8e&KD3p?(5I2IP7pM@w}T>{=ACyOj-De;e) zxwxyTwdGg>-?(#x!=IM!qhD2FeUzhbpgi7zr!%Xrg;>o2VPojSFAH?7!HzHW)<$xI zH;P@7*akOhHmP3ldCy=tNK6)U(10+eAr5n5q z2O|-N7@!hj(UEL|F)!n}FvuMw8+KT3xmc4(&c9BS(cCh#Oo|^jZL;Yc2T)hpfZE#N z#HrNI^2GmfGIQ&IpjQ7wfZ+K*u)}BcWR#^Ur6p2PFkZS?e2qr^V`O1N1ZNESpZHQl zFx(I5MET2MkCT1C=giJ61=rViGj7@KxXECN#S0UcK!mVOi?lJf3s1~~Bd<%-we zQv7ug3#ZDh&7})b&x7Y7Q|Ovm$a|eGf|yQAo}OVQ5!MS0Wd^DNS1{Rwh6W?#b{Bit zxSmxg<_WlOQostx=g%M)_v-02X-6%I97>{i1$N2OWw3p|gpQWIpUs&38;aoRTV?^` zOIH!v2h(7Z>k+8z=&6ORuZ(VqnYeHgarmlTnp<9L3{@QZ^7%ELLOWKEQzjZ0MfABS z(s($lQjAP^@rg@jkv!hheoT%&^*bue84JtHGE7BiJIL58-lyb>M?0NMEh zD()f?0K5cmGm`6aJFsp~7x5=sEnqZXT~fv&lb-=_dPAp^^Uy4y|EJCAE;U%Nw>=dh#rkdq-W%5ucHM7#nmRTii2=Ae_3R3?{oN(HFKSo;_7Urz`rbB~Rmbzi);d zBUE6Z2BdK^R#&keD#dVB)8-|Dv{>ZPIg0>){v`QWrvSX(ndL<^PfImsSETSRccgUP zfX`GjPqzZ`PC)JYhsoc$W-3}AM{*Hq#YBmXC@c=)v5B-SlpT6D^Tx#}+LR4up_Gp> z19IWD%nZcOu*-gO3FMp~zo#&=gr2u=3hF2vkD|9l%kDS$YPQaOp`wda9920)9yxCB zNp&1Imfxwui4;Frr$`%g#mQ$cSf#S!HIuj(ebAwzqnFG&g!eY%12bFxjDtLvl_SY` zFV7`wbmsSk4RHH7<(@?e25Yak0kM8o&py8VDWW#yDEwFjPB3ofl}d-5aPbcl5UtUw zWFB%$#^`TT5W$YOQGQ>(&XXAS(^~q!z(=m?{=)T`w#esh|=k`a@f0KN~{ z(CfLKCHiX?@q0_uz!Er_sLdGNJMR%0q;q(y{vVXDqg#_!Xpr;6QZ(kT%G)1CB%eQ9 z%v|~9Cd-^t0q=bJ3z{&hCdZk5l4I|tIODW%GF9MhY1b^m!8T?+@jr3-W z-zPMcqddXldgC$en$ijZD;Cohf3jeZ*csy~&qtVU8Fj<-;yw5V!F_ z+B4IQBa<|ZEDsM@H4woCK%gULj82ZDUgWFIhoUQ^wpjEcP|iW59y0*wM19zGxb7_U z;7tVTw!X)C>RS}yFx~cXp9c%Nww>jaDxJ&(n2b>hH!A${bQ7#sp&MbJpn`F7;2)Ng zppqhFQJF;tkiSqjeJe3OJ;QLtsx4sBQ~0yE#xa9syUAhxrBJEQ;Z(@!NLKdTw`Msv zLX``!A}Hp1D%=eeOYhoQD#nz0lS~&~nnHDC#{kexN9FD!AA7OCt=HnqMt5Z``8PP~ zS%-l)f2-6-jMCX0zqLhORk&Hj9e7X{&xACA z25e}lZj(MkPaTUx)`;yorpodd4wyDsv*epXB&U~7d00~&N?B>Fy9hUpC|Th^dF6Zd zGWcQ8&AKh9n0gOq+GN?Y5V%QlrA*vnmP)^sEcW{$cDL-W!5d?UTXPeXQ=j)_G)LFs z4c^n8RQsvQsTlk6?()fHz;CB3#7wdu221RUhQ&Yp)pQWrE{(%Bx<_F%gZ(5+x3mbq zixe&C21{^R+ezZ|)%9iNtfS4oi&k)zwE?b-L3>6ecxBuQ)b`9f81@4yshQN#QR4+~ z*>lxLi)_YsFX62{4Yd!coYr#x0ah`&AJ4s|{Vo!ky32M{86kM8z2#3}$HeBDCDLj) z+pA6>AHfJG$mFxE>B=!qNRit$;T(!}=F5{s=#G;* zMYCWyvQqyszU9;@B>Qlc|qy>uzTVFGeO$6$#kNBOEl>V^#~oh zWL>$*>F%1y4o?-^u=pOk^j4_EH7Ywwp6!p9eAYrG{-L$@7oVHN7?fi^VqKtXpWF`6 zC4tnl`bxQY1ZJ{W70pIt=O@dxkye7lR6{Y>)!pdMWa;W=8<~IOE&2<5yvb!}Wd8MX=zKA=X)W=z;KT260OI(O^Vp<9Q)OUl==kz%grT&eoWL6m40o#0 zlv;IwA3A%Xz^(Y8QJj39S2I)ZM7rH2Z+750FXM~Jq2$O^L)VmaQ-N4YmlD$Px5E?U zFye%?qT;{ORU}7V%gmKZy;mm9j+W2kiZdAlnkR4b7WXZIpiSnD>ERdHNqa{hru_;?reosIUzHRUCI9)2U z`pKTreB_OhVAd?%nR`fY7%1GHZ~WZQEEkKIj1CWWk^2X*_H@Z^FE8~lgIvkknu=p9 zTy&l?Uk;{Zs&TR+N0K+f`5S2NEA1bK*GKf?6R#IwCs*kXX}N%KIoApL?^7WqO;15! zN*E%z69|pdBL{89OB~{4T``kR4HPgc*qm@oVK0f^$Q~VOJn5`Tnk&cXKqFbYd&1#I zSaHoi`0FyAjc_8XP;Py}bLpL(0L4)bTlI9|-6hzC92L}KeRGn4{-Nb4jF^Wd|2+)W zCpw~b`(eAAR+8i!^vuhb-P*9G>Aby84N&?Qx?3?4wb&w!O(i@kn|eb}24(b;jMwGh zYIEkvyZiYn*H0`NZm3OT0l}wc_fCb%xg@{^2?PH&T45f zOq9~ko&zKxM!i!<@pq|U2l=Kk2H;m!sT;c*4k?&vh2&%mC~$hY>68VDSk9aDBR6u; z#@BTVVIBVdsC#3c zk(eGJev+Dq`vcdi&tJ+K(|GHMwen3Z$5;){kef3W%nTFiz-A9 zgIQ*YEI$b!MYLqUwaJ~7qyGXD>gq}s20v&n$!;J`@0$5qYHK0`C2{iewKSjHXafCS z*v9HQs$d)GV?(-jDIb^C3$ehuzTk-Rw&ZYJjinELJmstDun%$9h0wpU77CdDi%ULc zwRLm?;PVgc1@iN!Xu{3PmW*+sn1XKVT28(ZtsE{rm|-@iG-n|& zwq(4tm<`KR{er`rt#Vt*lRvVc*M3J+AB}-EtoVF=YwMEh-@;Vwbsg2Y#k}H^hDG^qValgVRu1@@(qi==I2UgIi zyQ%EDpbstHFL94^j>kS>J2#G_Ioo-mU}X{~|LJPLcrvwDh+$ECsrPMKKt@M5D0N^2 z3rVQ{gRTAdyqN;$me}QHI#lkVGmz%g;7CI%HyKy9s1dE%%X$)m3^XTO*9^${JS&LV z^mt`L6)?rOZNU`ZXeXJu2hD-#?l?@bryU)%J+hQ&DA`Y>pg#9L3b$In$7*{hx|yB5_qXq_(PXx~%)#49Tps7>3o1WS8oz z?765oB1OwS0c#JYkDpP9e9zVyKl6%nfqyA}A`tnF(Y&@qx$|aP4*oQfL_5*>GV%t; zz4Z#b9nd*_$2crG^B0QkodlkHl#)hi+k(|q%;R%)2UrFktZkDl$xNdt!G{^GM+Gy0 zICVU5vMgGX?pZ#0t~=0}_NXKILw+BUUlZCI?IIIwk6fuz%|af@=>0_%43 zYRv?{g8=YqRXGy+mXDBkb>iyzXA$cWidLE=C(e-;Yf!L%WSV9A>Yxj}AFhk43*)8H zL$Z@LSA@6w$h@`ou&k~?8+Cm>GgbDz3^D&wp}Mj^DGeL21RkiK8ku1%<9L2hIjJyN zWxUpF@tm(?x_rD2GVZe@N!L|sU)kCj+wexZ8!(XDO!9SmgD*eht5GUx15)R&Ck3@& z#^;9sO)$A zYQLx>?ConMGuQLcyrn}pG`nsp)qW%J)B1UiVs|p!eq^)dLFJ(-&*)jD zAH0tk^toZt%WyN69rU8)Y%T(Ik{e<9Xpofzz1+RHigK>yMJaVTp4?$XXdNa$G9o3f zIlES|W-0MU22e%;TG0-bu`+SCRfvI0eN?_IO!LS)^U-VznsP8ZRJez@bU%a)<%z*t z%bq0HnSmkaE`h24py7+{qZcEpy+tTCzZUQG_CcIVS|jlp-Na!->2+&kdeCF8T4?s{ zg(we@{A}{pP|?nMvgaGTC2q>6Nr#WIG))WP_*4~YA}4;sjCMZ3DL2c5OWtkB)<<7L zJQil*Lw?M`*ZV82$f%R<Kx+DyOlOXG{lxwJZ&HH>bV)G!4{RuIFI=&H#A1 zMDJsnpA9{a>Twf0B1<^^?3I{FM*6&^$~Oa;9eN%BJ>{cy@e&Et76!q#m6p_{k<>Vp z5)<*(mBBBWITG~<_chfPB477wBc;#AS`M&gZgbm@o2w7b#?LD6gi-eDQKMvye5Mj= z$zQv$);m>rtIX-dR+z*vS(2YNbpxJ+TI?*?g7}Ot5}@dBAz8FfBT^D-B=P6cXw9+- zd8wjj!ldbHG-kE06oq}pH7QMyv%04>)7-Wrxs`h8Re3Zgn-ncuCRY2FK%yQvexqNe zO`{W!j9hDy*S;6fV^u}sY4YorORG_}FSX{7Tj(svrg50D&r}Mz{LN6mja7a->D?gG zt%};{HY65d1A-s(nK~=p5AZF<=z7H7bF5T4RC2)2=~*w+b1)~~ z{{T;`0#t=9gLP%exwIs_%$(ZB$@C&lG!%gj4YZaebgk1t-G-9YABRFJFaQKM75Tc+;7iXVEMML?c7Vu+ALr|cV{qS|k z`us%Sig&Ah$!WZkoB@NSM#=5E2v1kt9eeRdh)n;rJp6>p*db4jg}7BuqOK`)Y9~EC z(Dk^=UxUAx(m)41C+pkmc2YIb3<81+hhu8U(Hf@0i>R&gca(KYEko8Wg{Zf)awPKu zi>6{frKOPNXQRe<2Jd0m=nV8>!9po$&9*;IE|dj-nl{2+1RgfDHjBul$ek2@FTlZgX)v(tM;!6bt~m z7EG2tlp_%1$9?!jhi&O4)0}W9R~XipXpW1@;UgE)UtfCW!qu}>!gATs7>)eiV#mO~7#&frpf9 zAifJ{8K-BW%u?Z0qLSIQWK~DBImmVmH@1bt#5V!P%~WQHAa5{@0ikJrfLH6V%_6ye8Drv9wiwCjmFbcH)}|F0 zcPhMWGiet}D0`di*NuEg{Y;RV?{OeKRAD=!vf%GZouasXA%|agjp;!ST?6FeVCeKU zX7)Aisl}<=Gu60kl0f$e7ANr{{5?UX4&{m-Q^%~(xk##Sr7Wg{8i!n_q$6WzWgo3G z&>@A*B=KX@i<0$Z0p$|5Nj1vE;n(s^l(c6s(bj;EXl-ssHdmNp^vNTm>phrcnGRig zBFiNv7DD1D57r5aL$Djp?y_wY3_VvlI?JX27RHAA*T&2g)!S;35^8?jj>Fj`8iJcp%4xdw(wy&uzJum#?l^6DGl#&Q*2 zEAIq>Z0%H86cOMYeOGO(FYyaF;`}2VV$co*CV}Tspi{wQu9*rSF@|TA$v<;BlUs^B z_6^)5gKH=lT&^2}b30Za+~Vj)STcVo+<`LQ-@%H3i^3fd%Y^Y<#1_<&F)K`+_8F=z z_RegDIqtfJxMwqGRK7|F8CSs*jLvz!7nWwcE;8VX>rts;!KueSvT|XxN;eGc8*g;7 zw%Lrlx9xV>Fak{Rthbnha)J6LiZH9>Ag~2#cdcwx~*h?XOGqeLrdncocxJDZUevn$@ zAlI&^U?e>5QfU>$S|mM<-n>vz3d${vH9AyOq8xJjNb4?{0qHyjaqILojQgc>v;|y~ zns7k*qA{@LraU>@&gJ!M2y`J)j;psCOhx!wTibyBBj&e!=!2d?u%riec(>l+iT-anfC zTq-Wq6+88eQ5E?{AU<2R)Yv$e~0aVqx%pHe-u9HsxKqI&|_Rb&8w6dv|lk!6enQo47Zdv z2Hn0;Z02w=7-~%}0PgJg;u2j~(NNz}>_(%P*wLH$t>od)Q799&>A4f1BXipE&BZIB z)NI}HKgg_mjFZ2+G|+co+(KkX|E>IMtIBC4XAW}IgH`z&Y1ES6ZBm79IJ_`Xy3p7O zb5!V-6YE%)A4e3fFHMtmufo4KRj4mJbSN~1qc0qnQ%A~LXF4&oB^wdff+$(s=akK8 z9GQVY#|&Yeu0~wUdV(mUlKLo#z$o^VKSFl8(F*gF!QAOeoWP)-cKGf;s5Ka_Cd^v8 zP#X5NLQ+a1C(==}QjX?A-KomxKzQ5V%D5kyFOF!-$H9=Xami(J**Ka{e5}Izp|EER zJQ!1xn^Jc@RAq@<4^(wP^_WJ;BUtKkS7@A>rSDU+_oCZ;4#@;8OS21bxHJc`f2Buf zeuWh#8sn&m`SRD5AC4iN@dwkw(yJCWpbJCw=0bmLb za02E1Aw_OKd6o)i={Y(rRY$XJn0JpZicjhQc*(ZQ`VIW`^#x{Yg1V&NzemWPPs-*%=;j@f-U>WA_knS6S>+8*iPF$Jz&)NfW z;ZfAxetL#uQn-0KR0%&`{1Tq8!RT9QT@yzAUSn^r+PvTfTOI9R=*jKgbZH)siXTXM z2O6a)maI;$dfU|Gq06eHABN|75Qtz?$?6T=TQQf6`f_;ZP2A2|LIuWeiB4v z-+a@B1t}XWtFM}52I!&GyQ|^5#1$aAvp&dlN;-MZcv7eWrAi`0%6ck%g{Uee1AwJs^6skGh%M|9H(YL`?|giN0dwO&>s zk9^9s15~eP1R>?%R9WJ z(TS$MJ@qHc+QSy|k_&GvNk$1!RQ{-Zty>hAzk`X=cW>!Ca^nY^gEdzotxKK4^)dlKL%&WkZHV-p?e*~_zummZU9fa zt}2tIet)=y5|^16li)~WX`WB|-sicZTO)SpVbWZ_z;sKeW1z-!_;FaQ>{$8lRrKB` zWP9o}n!{HyC}Sf_KnCH#a`h&#HsJ$I#5k2QjJS%e8P310J}U`vXPZ?bwckZPaE|Lq z`e8E$Tu!RblO9g@ysjl#aF4ZKVi>wuWC_ZE&G@{oMf`PvDqIVX`J$z75lehx3!8o4 zZ>7qsJ~J#!8=5+cvuvzvTnY=_|ASRrzk@EOePkWu{j5TK?IK;(?CU5$&ga2@q`}`e zRp~m}6MrfJtd_A&PU}l~r}D4HeJyV-tJ@))3r+(YC#(Dj`D8j^w@rE(8iv3C-du5tuwB zr7!WZYbwTzL9lI*4qHJezGkN~q&jUT5z?XrsY%BMt^q1r$k^TZ62GbZ+T=9a8tJQx zdPK(vdcCDRIs|8;%)Mn6>C}_qh>NSQu_V1nTHj2wK}uY<11i`>_6@|elquM_?vse> zb2r$^N|i8*FT~JVeiD+)DDvTCjvJh|KN*<~cbCcI2}zMA83`|zwlh8lkj?tc3`(`v zfN`I{4?hf#usj@~uRY2+9Am`hl}U8Sa-mGPOnqWEP=nb{4`ZowddZ7HvrsOl!^SNr zp(e^yHWrB`<9$;mK;$u%vlpdZ;+8ksf_}G5Cfd06bu|2^s&o~6ap(lAC9xFu<}<)*+X)K98L@}yZyAvP*#Ji?c>QbwmitDB6G zl&YT*6ZoJzLi%&EP6EqWE59AG0+@DpTl|dh1h7p;GzS~%$}Ooww_&b~$Td zvCQDup8OI2>R>7B{Ej3p854rAtGQv221}9Bauw9Gs2T4}u45Wsqqy?X14!TJ3Q2pg ziLd>nJS%b2v**f$ZFZeH5z~=7s?-+HEWBDWbT7BZYn%G|hHJZX&%=zp?!vTmkxF53 za~K^OvqWQ8ZMsmEN+s2mL^o)+$@^fHcjln9&Zv~0MpQ*10FWV&3`<;smh&m7?QcmE zLm0dgh}XU#{S%a{75^fJkg6Nnt<;iQNmvxylQA7rNS@ZaQRs|&s*`hQ!*s)Wa z@lH~MA}C^_xZwoEo{*J!M3yQhqjVR>tY1Hh(Z3_Jdhf+m0_ zu)PNvH9*FcWFpMWI_5tsBtY-1??q#2aQoxPnMmn9GkF=g-L_%XDW)VWH4`|Zq|tisQ8Iy^ zIkILEoJL2iV^VP;jVc3G)?a=di6ZNwQY`s=4;Jq&okB+wtFDAc!G2L6^Uw#!pwS=m zSZsAYfp8+Zk*wI$g-CHJAmuvnaF}kkc+QJXx`0mJADN53ifNI@Qqs08x%;oSBvubV0K^5pNx%1Hok;=B1E!tuM1xzUoChNc< z;BbCtD-})S!>7t3S7(M*PI*zxTA+Li<*WapVV}`$G!GmF?~yrGlcmN)g6(p5N|)=I z0hyf$B^VVuKnFMK6WS}706fodhDSC2bVraW+EZ>qZ+i89guuArUAT;a zt;DQLWKE+u=XkIOYI_z%u6FcG{5PL>5i#D z^-eRqt=WWJf zodD5FM(Lqaf6s*A8xguN6?}5NS==No`ly8dm3fmdstPJ#?e>VFJwPzP2z&=`Z&HVr^|M{zC0XD-q*VvPs zBh_0VoPG2Kd;^ue6uI&~CGY+L=N}RP)1sqretnfaPIg{09q6JEx2^y3;buD3X63(T zD%zoFgj8E(6%n>$@M}NCl-?b{JUMZKh~pbHjFata(rAA<+H%4O#$IXDmuP{ikF9B@ zTncqp)`*A`7aV(O(TI$AS4q1|mR~0dW&%=^>a*IwO0+;~f)wcCB){p4nC>d~Ibx=^ z2KtrtK$fUlkIL>Yo&Pkmp;C5Z8GZ%me@x}~$IxX*bCB5s;Q^*&--_cY>y#%Ezry9> z{9Rq8;36C3#w8BfC`?6s9nCR=?oIqRV-T>!oeTy=UZyF>XqwUxv~zAjke*Qa+vW22 z|6498OK<8C>lOXYFjk4#eiTDw$>1w!iPV#6UfI*u3QHs%OeCSYT_+plTT*8h>hQv0 zq@-tYIUCAoX8f3L7-M4nRDjfxPB$@C4#4uPGV-0v|f1mm0$(b#Ybx5*$5GEgd$qKo!|- zH9j~X^*m{19B<$_9+<6z+?a)rG_3{X`|LKr%|_xT{!5`^U(}3zu@?FJR~H1gCtFv1 zHk9BGH8U$^_B!P0fR6f}(`5?`h3&%e=G0?}A#J3CHu*4Mk}j3y0;ZBd^!g0b1^G!F z+n5Z6zE$CAKsaZdQ7^Cy1GzhsjY8ZDQSe*r>qERl9Ev&p3@VUFCQdmUGa zfo{?w6UhhgjAGAa&6&N&`CL`m_2pC|C)!kHG=Y6fc1pFU*edM@`suERF0Ob3n~?Gh zzmZl^04PqHD7$_)gB)RKhj@Zkf?V7H`zN0S2xK3I>9{F~lo(iRoH|$P-&JPWKu-*hc5U!rzZDFnA!X& zO?TCE_LSLGp>3T8{yM0s;6@GDi7jpiVO^jy(p z*d(ULOO$TtmsrLbI(2$|U*#VxnFA5^k1C4b9C{X7G;E`nNi?oYX%sNX7bB19eq9N_BNvIvk%q%YM66K8S!sc#^#S zjp^nO81A~t?b3Q+nWWdm)ZjXhCYlJB*VI?Zvz2YIEL_8Z7b;Jh%pn&RhAE6=p`MMT zhUMt6BEy1F>(SiVS=q)T74)n60-t-?hgJ|#E2v3)F?F71E|V~A&<+N07of*WT1vZS zndOK|Xby2<-X0==;>+@`A48-KZylU-^O0 z5}3XKca;6FW^#kv+K$Ptt^#X~9r0yS(Z}){+tWR$mDHJfH!X2lONYo2-HD^hHBNHS zHXwI##i<(Kpj# z&}0rJJLwlK+X*4GFyU9n6%c@62Dp^Bz|Z*=Z8bYOCl8-_>=K zqbUDN3dGCPROSIYiXt$DWg7bvCicbW%DQ?$(I<2rl1=$(_HYdu9k0rU zNh8__vVK=v&dzI>WvB3>j83IR&w#94IdW|ezD zmoGVil)hJF&VP6WXLPixxhm5aQQnvEJ~D=A*J=}L!r_Fdz>P6_p3JUSEZu=EC0=g! z!Ec?bau(pm*~Sr<{kW%9%Ak3i`gN;b?!AzfqEOz4anh zcv42{a?C|k9~ytBdt}?*OhUlgh3>8#W7%d|Umap@!W|mHj*dFw)JG*m%5HBax%H8z zPbyOZE;sjDex0W=NPgUbH6}T4fh>O=l(GI1gla(R6KIJTPm9ves8-mcVk_`Ec={vA`g3ov+-hf#2n4h%_SXOIxnv=r~?2t3L zEc1ReUtOv5gH{F2BDwjW-G+t%-#*a6@pM({gSUdw^5to^^Iv*UIz7#)H&cPS97V`& zXlTFMtVVk$mkJOx|t9oe)B7;$S+$D!b-bzmMC+T zlCe5vvC{J`D~u0O=ra7V?vpAA#ME zXuc|V7_wG&#u{>kbW$(By;l4b`0ge`=Y5QzLPB>PKkOlSk3$YOxA?N~GN5m#@^#`H zJ^M+WoKut!T!JO{se~uw=m#ji*!67VKZVX{q1-9#IKP%m*+H=GzypNm2}08{s|{-L zZIyExQ7D`vz1~B)&sHVbXmKA6-E}55e%my5Pg+7lUH!TH2G2XIVg^dzP+Ea3d5r~K zSA`wrMxV@7B%mZhHuL}C4%APT`H#3lkQxVR#v;f8X%wG`O+R?Y;DkVbzgO>n*6P=TrBujQl}`4t{H=}7a- zGkPkS|E`(BjZJ8jOzes!_*s>9loi`>B2J*vUp$R&`$kNsv`;tv`jOpa$djg%8o^LK zY&50f{mNK~sDh?a@hJZ~tJCD@Q8@@Ep&?wXwvoRm?>m@hXFURqoqY0a1JfGaYaQq>3MY&2FiI z*L;ouz%<|fz5v0$Xx;g`$mL40Uxhu0!vG1FR7&H6Vgm+qyc&e0^0@{>(l9yUmFZLX|k!)NXm}W zQL021wY6V0n&jn!S-exE<#wKvt9+L*!>;j~E5^u^lks?n6*oboT>UUx-Y6peT={&b zYy;)|0o-F^S!-ohn%yUV_h5^6;Q+8nephZ#939B{arXWH;i(vXw@lAJns}Wy^X2$J z7RyA)T;tjFa`bP>IO)F2 z%rO2cra_+{ZmUh{v4mU=a-!tz!)Yntd{T|_65+`0AYl}{ts!8UV-J6KVrs8_V!7nq z25{4Sz&6sKyOLF8r^uE___Tw{SOXa-9&@DdT`p_7%W{vs5_6NgO*$k%^y9kc%$I!; zZA*CoxUuCFtR9gbPU!hpUMjHF9VOe6VE-1nJ7$uKIWMvMff`rx=tbTgLtn?W&2n&s4oE9OXvaQn?*t?>+=sKm>KS^3$t3FG{U;P!SM`A*wr4+ z2se~B)}@uo&$q2yS=s<~RMh}c)lfz)@Vsrg^mdr~S}&)*1V`J80MN7)oLBdhQg zq~ytQK{$ju+4j1YJlFmN{T~m6~_7(-PMcI0z zbi8fpvVn;jr<`8qm{=hRUr6)GV>Ge?OnBN#d~@8DL2Y2UmAY?og>L8DTDMs1(H1pY zL%A-AZ5rzTf~w4u!&FpKdgV{Z^||sVN}HBorM^D`7xqqN8@e)AM>ghi zc5WL=p!{XxFX5&9A*msXAsj-Hhid7Yj~MAbH_edLG1%N6_j8>UdmcRXbp)sVW^zcf zb>b7pJ_cDU*(D!L<+X2~WVOqSfk{nN>I&KYkv#_JLp=(EAqL8xpDYgvaHZo=$OZL9 z9>l|d!{l-!zS(IQ28xW=0os^sFlxnzh&vcF2_X0<%H!t|m+dNHtL%9N3Hm&}j6gV0 zvCGc1Ah%MENSU$$gB+rDCNHK-LLZeflek8>0Xl}RpwFw47_l!#iXxS(yY$-6K7P4@ zXWCE&OE9;=UX*8LAR>g>JCO}${8sTRfYLu1N&$>EWMrli`}6LTTXaE{N2{Z>A5-)e zYeBqUhg4^ym$Q@Qsoti8<+$p~vre-TvR;}?tuiw8sR~E29A?N=?{~?^9|{wpH)wtz3eVCHv)3U7a^M830sMOT{hSdQ>v`Mjn)qXq`}WTZdRyd}75=Qvyyb z585S!>b%Bk8;YW4!+d{%GH+J95b-NY0ZWMz{yztU5b(4&m(B zu@f3%Rg4llp&>>Iiclj)h#j?JRg@6rOIk&0rX>}s6A8EJ&v<{{>+_y{ z6iMAeL28wpn=hRaAOFlL871RzQLsK2_aVpS8Q=yAT3d*vbpaqz?^BTZ8GOTEq zq<+*;PRhooU8;UpZY%Vw?8yjry-ZtIbwu*=~}n5#;X4P~wwi9n|^*Aj$Z_5gWs2mhm8~i^GDnfzj>s>7E#1uhuW2|j68p^*8NU`d!EW4 z9HfFXn(76O#qtB9{l3aLEJ{~#u$dzX63y>}Dw^M1LU-`}BRwKoyBU%%d%D1zYpNX7 z@4f*ym#I*x?o=X{Ui-nVLRwj2jEr1GY(hei>XP9lWj7)(F10p0Om8yG?WX}h%FR^O zGx{B;i2z@wvpcd=uXLeK!dqTK|Fx#c0?(6aKd zDi}m5+HOEG;cJW(LF1)MfsrQen!tUh>PB>)m@|~y{Cc!Pv%$#lAqDH&VCh(rV~f`_ zI^)X7_Tf|1S-3!EMbvNWE@fFCNNd^XAelf7MR;OZU1sb*q7UIM#Ruekdm|6MAWByyr)bYkzZTT#f+{MT%nO8$s=@M7FX4^|orfDF zwwlbO3ll>*1EuMOOKv&!jO*a=5R{6s@!W`73$XZ;H9D7tI3|H5RR31JKYu?)orbmv^Fs>+}cCBGyvTReO z%y%#2d%~Scp}kn+P`M*VD)T^1U>}<;mjAgTVHcsgjM)HceLKSCW)b#Na&Vff0N$9k zocoZi4A(ZzS49=ILJ&tLN|wn;mLT1Tz`>lAh}5Qe=Jl~ItFoh1!LCRGc{e@cOR4dX zk%|mT8z;4jxT5?}%}_z}6a^qea*jNXH;7eTif%JlPl=E^XV7Oiq6VYN<|RtYw-_xt z_2&ZXiCrGNjIYTNWY3fom6?57d98Qq@z=Ox$Mu0vyQcuN%t>Vz&5 zrhKJWC!rqT1W|1vAh#3CKmmB)9MufPDfMfyna|rB@v>7jFr&>|6@Zg6SOSkk=gOQf z%#mmi$yO=33e}w`wI)(r0s~5)C^%?0uWoVKDl@RK2)4@gl^jPx>14+3?olNLP1nB3WPPrp40h33yLH zBE3}iLO^l4y&Sh<2NmkRhc}?MpTTfMnI~IP0XMG{GGr|TDgSIfCZqmlop1Hnd$L^R zBZSq(IC1_eW6(UUv_#C~yu0d-CNiU`Im>jly9d2cmVM1pJ=U`WWlbs@ueJkT7v6zC z6+3c3(OuA_clT3m7t4~IsC{KgkUbP9#Y9LP%5;@F5JX)$?1Uy&tAwfy_f#k06WyS` zYr1p3jDL@gI4A*Du~-qp=X&xNsG;PSzRqHl-*sn@RQnRN*{Z5?lveRK^i>=vwdTTl z+H&;3DbgE5aF&zc0rxhTwzD*vzI{5~*_d~XDoO9V#W2ZCtDlp?!neSs8`}|tpQw=I zafNYMNP+@Es<>|Au^mWk(%o_B1R6 z%7GUUbaoAp^5kk)9Cv5CN{h>{D=Fs^BVdv?h%qM@tud{Flvb6MP(SALSeBa~owa0b z2O~&=cAM?W%-#g8N2@9SG>#5JsE3XgUn>BQ(A|%uhS{)TymI;w=8{*2RED(0+Nq>` zu*&+StbXJo4(uV)4~|qDqe)l~`F19XJRCCwSpYwGD`(A>eQ@t=e}oiU948f5xiaPT zCRZ|dIV3#E9NzrNj+er@aFyYO33xv09DH2wM{No8)ldft%Kebw`%3#U#=)3i9ENNf2RLU)k2hoT3~W0V0*4 zwM^YHTwO2;e)4n$akNFAsKA;DC66GltIA;3PtUrJ-c7RaTs`ifHUaZrmL4%t+-qIA zu%--UJ;>UR#*^l)1zWOE`6DW6b7M4Vat{I|89AA*ELq@yEmr=?g%`e8W!^Jx@Z((* zGNiVWQ+0K1k2KT3#kgcM9*e=?8P4=p*eFb`xl=kl!83T@2VL7N?fqDJnmT(wRqJwa zzi2y5JK4h4iTK$27AC)-Z*&B#%+Vh0IAOBHUuSb;^@N!)m(*b73wtU);03X9c|URCB-2pDKCQ!$1IyZLq!if zieeaj20WjjhYnQqutN4#0Anucx%0Ky7`tqZ#7Wk#zpH@w6+!@AdT6TnEQShNr6BH` z&*BCjyBo{Z(jjb{f=_jThpCUU{Dg3&4Qqn&H*yL{>Bz=qnBgyU~v4i=%tmmzpxE=)(An^J^)|MwuWce)-?58exJj9UxGylh#Of*eaxWbj^GbIPfmauKOPg4Ztl|`w*pfa@;v5G)4}8Kt zv8P1I;DelH7u}s8wdNqnW@kp5P?{)(KSiZfqG6TglAE6=cW*{p#a)}_j90y{ZWive zVm{)gLd)mwY?SVG_Hz*Z6qO7;%zRC-$wjEpI9p>WUjqg$J&$*0$l4Kz7Pk<21PrGrzhWl0~1Z6RA4 zrliTtpQy&8_AB3@9;9Pwj&9nsl~qsw5X`dSf)eg4)P~ zgvxL{`22M}ew0#pHb_<{AUR1jbLq7c7%bPr;`COYqWzVWE0a39++d_;mt>VtKC3lH zI91hSNt^;4F;02Qy*fyte!HNUwtC!Bq(+#be6h79>$N#diBAhl46`D}BFjQ`MV*i- zrYT^Z+bZoZxFVIQ^Lywnwi7pzg0El}?(HN9B+tU`Ol8#&J)tF!aQ7Ue$1RYJInk=} z2<3$7A>$3ZEviP?UDP00V|FFfI}#`Yl$U&r9#n?QFx6`sKjP;6UXS}8WvA#d#?e@n zpB^z3e&ARqm&+hs7S03Dt`TblN2E|$aVmQHF%|B&MP-P;qm6;K(PDxZ;@hId{c?$} z<(J^8h2%KdM%rFjFaZe|zNu!?+$aD^qsk-pg9=z))L{5%_7xUIxO$?Swq)~8L&NkJt~IH83UTD7hgfKeUhLOJJjRv#9H4pY<|oXBghwNFn#nWU~-d3AoI zs1ZJxiYWX}**Gif32V3k=i8yg&{Bwb0w{0BgLSGXVyutcCy!rEvqTUW}B<9L!)CDt@6sz(Dov_B>Sdv)kC?Z38JwScIj3uXt~ zaio6nIaoc8+Rl2`2sDAP+LVqx_wK;{v zK~*+F`>9>Ahj2R=Kqd@=ps~@x!%>~ zl%-2xD3K}zv{qR@O(2R`HcoWIge|j*@Vh99{99#c~WiYdY7+$fN2S z;e-K2#VdmiEwa!<+s2?R8J0+_nwf!|d*%iG4O(vh#@xZENYIYy!u*it6nzc)(a4A0 z*qUIJ%iRDMcT;;!cb}!RSF{GR&MS>xOo!3bcP#b0P#z{1s2q9+9>OzvXd4b7w39rT z0}y}sB{81iBdVfQm;t9lW8{^6CJvZ%Jay5b_Vyp8E;;3~Dm^L63WixQ zmV-YxgxBON%u>dVBrHhp5Z4|>~GH0k!0^}v_ z#91pvH|{jtnV{ISA2e?*CDy*2(MEWdiV{15Y8qAxLu6DP4Cj%<0bW`)o+H4o>k}gl zDW9Jp5#dH87w5Pml%$I`Nrz$Z8vH@SpBBgIFi z#~3Nn;d8S|_RyA+BZ;hz#-#^>rp*-{>0IV0(ZrY4iQ=(wxE zYf`GB{RH)u(cT>KY)T}^^lH53MN3PrHgONoc8fX?De6$60C~yE9M&8r5HVVgW+eWi zvWqNos~@NwuG@|%*IO#E&m1IY%7b#x^wbR!c8Z&u{TN#~UKjzU1l5(NYarNhJ~ z>+W1$MaOAE^#h1HWi5tAE{Jzj8;cpO!PbMiX{rofgoN6E+sKmjRnQ}c{sg%d>S@XF zhxlP&kGlf;NZ1}}l>p9M)AN?$9FOpZTWbEYaDH@ziazcppQ)CQ-+qg#JVV9IO!8v* ziqFgENlbKn=n#iIP+1BHTTPh@X&)&kd^#9tGE>XMq8; zpw-6no|lq&B&w%4R=Hx8f>2khUr1{6RCBVd-)uNAE8*l=rAL*)=ve#&RLGvkEkw)b zyNK#quZqPf+D^<7lmHkkZO@ofafKz1l)LSs@l9ebkh_PB4C&LtMd!=gMhdu{RYtZ= zf|7pF^M1qv5;g_tl>bV(z=#o6cB7R_dB?>ZEF~&%S*TM8%c-i0J8tFtxtb6byYL-4 z#J|(Q-Wz)4IOHSO&`vK=A_TfB3yK4WYXJ8Pgdf@Z@tb*j4 zev-Erc#&4NiaSMAUo5HY{3t_o|lK!w59N4zKB)TE~Z1Wrp$4k z9yS^8Lb6lJ)nOW1=;2{Ajk#Kqr^atX5;noYDxU=NQ|IcXJc4B3OAqF#anelm+B?LX znQ$c2S8XjGl}(+`3U9R}i%Hetj8(PJC@J)f>M<{VMQM&IJ_N zqC;%r8ijUcb4_!q#3`>v_rDov#$o=sWgRf4l3T1KWq>^oAMQYDN zs$bc9lZq_L<42y*h8Yz6Ok?!1OZauecMS4(4FJm>Qot@7iTd|4gAzfyXk z|8HP=nf$NfW#;h&#jY}h`856ZDDq<>>BlIV8)(|>^xBxyU9x$G3M=;O(2b(4_9SCXuhv|ME8J<=B{Yaf#=LStBs$w;iEjDfGIP(J00g{dve>VQhLOWo_PDSA|AQAZ z?J9dI5l; zs`qqSOSGHrF}d>93BFHz%XZ8GMyL!J!l#q;X%N4@80kLR#DvoavJ-sYPPw?sl`2E# zvAPqtSbwc_M#`$h-jAzCQZBO2wPir#E&hyhMJ1gFsN~d69YC!=^)Qnx8OlE=rh%L9 zRsyY>PYs*g8OH#;8!Le-p!aYO!zAz4Fq_sG+}IJsr#@lKmhuy@r1&!;Wgzb!o5S#T zvExbmBK9}t1ZsX9i=o8^9mV(IsDu0#fszLQYgQ zDJ?0arAR1OHhDgbQ|k1Z0dlBdBKFZhAZ9c(9(ZcRN%jz+l2HX%{JV@t>iod3^AGat znilM!eKX*g+nw2tZv-^c_XIC9X`S{PR;f@5JX`WJKQFbi-$f@ltnsgiv8ek6XYyq& zby$sIn7@r?&YnY9f}<%1Q~n;~+mG|>=&5|#@j0mV&ja4|+sfun6tEkwHavGn^@Kvc z7ORd?5#s2BQ6gKVn9ZC8=voirhkCwjxXVsnvs43JvK1FE-=B@#N4J)_W!Ts9Uzq&n zbu_AqIbm{JiP*{>fW)BuowT#C{ZkWpw$d1OKI^m*D}_t>RbP!z%2!(d+_q5E4_`7x zaV-|5jbIzk!x(d_%CBy65We}7iC>S{`0n)#9{DxMK&kwab89;nrnE#=IBKPeJq}hS zB*IjIrYkx5+U9ij{+HoY%@RW;J<*7l4Viq}OFdFaSHSy99T=F&gaku-GfZ%zxz1QCx5mEx%j+FYC?>6MK(cNw~(0?T> z89&>AvCQY!+mybOA9}$scI3F_AcfFneSL83t3UYhcmtMhYsIH`HWqdLQ~qgs3w|!r z?NsN&f-Z+*IE!*4IF%1gpf{&F{+R=T!lOMvX4p06zEG9#N{s|p`s_E-L?Of?kS(GW6&NX&q&|Fe6l%# zQjIAbb<2B3sCFtRTTbzUcDm3c2}9uGRq(~idSQ$^?|Jmg?yNIv6z6t-6JYFfkcC}W zQOlQ4L4Ezy!~bq|(IGd-uu0>cAVb1Ft{PLqv;V8wCDY#X)hboZvegu-}whJ$#|8ZrMJ3%f4=hPxY< zu2SONnst6>xG0>1Lyh!eU$x+(waYW6w@jXE@HaWEloPTKN zBrZPVg$DkK@iLs04T+l%;?bg>mN5AqneZabcxQX$-?jb?uT z@r>4g7vF!k0>b(6Cj0!BA{>(SCp%gHC*N&t&mi91?WO%weqE(R?O_8Xo7sauB~(jv z?;0SUmx>~qc>{Fup2EZTH@YaSI*a|ZUCOV=zUSdy6e<=y06g?p!3P(zK%s3%f#9xk zz_KjufaEGITxCNjQ`%L3rnkfh$(y!jH-;4aGAH*j-qzL}pI1Y}BtA|o(PkQZOPdw! zum1wR>wAr%-nTL0rNs$O?%WG*=|o2R%Af@xC+0Jg_A)14;#CAo$8cusw1CH|OyyOt z+dyRed%$Iy#$I+`Fz5|^3iw|Bfqz<}SXAQ${L>?W1zf=aFTN|8?7MC}x9k;rIo=Tf z1)6#8;lB*;2*>PjrjSO9{aM`*C47p8@_zha*bAi>%E&ZTn0=0?;g%59o9Z7G$~ihb zLbk>7{fq(3ux=FR*j=%w8o9{pkHe$Hdm~f*<22h$t#TyztyDS;xO;B}*D8X^^6U+V z*0ptXs_eSS!u;1kY#+tsN}ESK_RA(COj@soZH!j68V9d8m?D59jEaO3-8oiqakH1% z{!B4)i^m$17O@O?EIz{NO<%5n{~BI6urZ$&kAj}I>;e(@>zTgNWeOt)9mLFF!RB*M zWla3!33A_?1-@0?!3HkRH0<(RMGDU5_A6&*G3{K{nP-=mL3;EGsF0*dZ&`l@25L6MSyAkgFhTzvR#BLrudr&6X-UEGErhBye`DI>MB81KvvtbSz`ez@~1*i@#U5hVScFdpwhlZ@&N zA_jM3Jva9jQWz2Rk>QX%JNdQwZDisrPhMN- z0%@8YXDJ`Y1EowqzM~nDP5Uy0JKt2sY~;rW5n;ffEz>y&RGus;s)n@ur{ z@g2abFPoWDaNOI>_@O(Rv@&hYW^F-XmMql3HX?^SF^?se7x!eI9oC718s*D;C+wiB zaTb`)UtyS}{vE?6RoZ|(&g1<0w~bG)7jSsRiYp#-vDS+zJm*l??2(E$2j7RJ%6`eO z-vj{SVGBX2GQXkm=Onphj|l>s{v}WR@yN*5($mSlRB_qd`I8Aja_e$nI*-PvL~rVi z1It%Jh8sJ2q9ypvTEiykA@sof9i}1w5p9 zLU+$MLdCO@D?>ci8IkhCE1oU?fEnX9u)8bDI`aBFENep*v&T@G@dRu4W70dN-XwnZ zyTjhj<1Ur)RT=udDot@q<)>PGSV2@>AYWz~AgnOh18dZkM1IDN;wcqRf&<^FAdBZp z9JDPkvbfQ3TlZ$VX6lNTFc%52-@HjM3zEuA>nEG^egR%_ZL2H?pYT?flHhu}gY|}P z1I4SfWd+eA`QzUQHrZc!4PgekQmqZByRHPlZq?dw%jSHBzj%W;emU<7!g`7m__Qio zzoj#avW6-I2cM2C(MnmtvV+dW)lB#tl*wEQ%-E4CU3-1 zlwQxmX#-ML%4M?sT&rO+<-hds@KNcIelW_Y3bOPPBotMiCG^1hhzgVEi=m&ow-4s1 zwY{`NX;E<7II5z{_TzBDHJuu;8|50xUd&3@S2cp<@;kP*yPGRlcFtxgUmRn(bygV( za&4I6BpcYwj00@?`YG@tITztHbQ?=BtDbHf_Vek!x@Zq%Jnc$If*eQzb+dc$efti` zmX!(-n<~YyZ7kRJ#g-_^Uu-y}rw8NS#wa1EA!ZQQwzh@yAL7zkl@?kNT&5O+@**2NYyvSo)4U%Bi&Hm&uN?Thbdom|8 zHwFq=O(_$3tI)zRk<>* z{Bw--eh7nfQHjv;JJ|I!lq!7kWX6>v_grRu1)H7H#>gaw$`l~Aa=?PK`#8^8T>;k2 z?*EZZN)`FEDY)>rrHEiyf-?UGO?)b*mDQetw<9MS8S>Wz$Wc$S$>g~Jbjxanx!0Ia zsULA5WO@aOO(LvHmcC@;njfP zp#=n*0sEDPF8&;-3}yzd=2P#-tg^!e_7?eU{z9Yea6)PsDbcW2Id;&L9G_O)S>*-II!HwZxJ0x^D1RG|f*E)XhyfP4bH zxJWGFPJ%No)K5m0XVWpeJ!Y$bFM735nyVDy5?PgH_XprSZ>15W9Zn~lp)90XZ7b`T zut6Qdr)>IL%H~Lc17YaXl<#T`085kJ8`&~uJ-@zx%y&0pl?Yaiy#I_;bf!VavAPy0 zH!C21x9ZMHT0mjGSeF{P@?azA;Zxa&leG;%(wVB6&7f;WmVEJnt+h#D?vsD=$dHm8 z%$}3zQy)ls5U=(SOq?%(Y&QYq`w`(Nj%XteKTvFS{5?^D(nQ@C(^J^b?Of=-c9ZBJ zbnxP;M0phX$<6kBw`(TvhUq4=l>fm1qb~!#wS@4>z+|9V>mgV%{VYqqtcM!Xi<+8p zYNjh*IeRP0h;o2nK`86@WTnSVFS~1yGER(u2-o?tG(87u^ z7*CatG~i!;J!avxyMOb~e?K!!#Hdi(V#RyVYKr=`Ye}d}RC!XNVt{z6*ok5@5ART2 zS&m`i(WYCR(%=e6w#}b2J(a*=Z_CM&6CpfMdKA8|nW_=5p>6^73}{%Rr367IbdzWm zV^%3=$rg#vHtg~s5Kd#L3X{Yy#)A77McZ`8G(9MnPaf@ z3>Vw!TZXk>Fkq1VZt?3cDzYLi0ggzHLV&E!0tf2;&xn%hYmo&t^9(y7uDO0HiNG!+ ze`Zfc17^ID1R8Hz$KF>S;^6MblvFw#f zbT(D9(JJMYE#vrhuo>?x^;xgF@}%v0SCPz{4Cmk1mPf9>W+Ul07>+V4)o{2c_{e}| z!0rjPL&Y@@rPa{GD&m;UFk_W~;wC+0PkV2&3i4@e@EUOV^hN;CY^)KFGm|D;f8``A z*5D_%S}MSFF;cV{h57Q~Phc?NtPzV5HO*J9QNB*}TkN`aO*Xb>Ht;LA$w(k1Kdv^h zRm{Jba4C6_%_D~{@kl@y&bZVTJ{>Fzd+)g%y?|mOmBg%U6f>z>CQpJnr#-3`7ln+w;~SJuQ%+`*^cddB}OJa71UxDcHFj zI>R!fqd^wC5*L3xL0LMf2YJ#8B~<2l8bNY4-KELrKCq)sDj=t}J<%rXec0jC5@^J2 zj~QvQzba#H*9@CBH-vU)vp|Y*&zS$FA~c(d467Xg1+}q3&+Zp2hgQJVix~2UaI5Qp`cG!FnM>o}CQ#A~+4{TtZjJ-@1BYg7d&%TC+gh_*! z2C?+D+B~+dSR+;uYfE_RlWE=R^7-)gk%!Yk`^GH+8Ci&Z6X}_f@jw(T|Zn6H<8i7HK5tCK&ws0sD|Ud^PPK z{&b+vv8?Z_xMUq82wN0N*_-bf^Y$ZyKjT5IfxiQlHEnr~O6ZvcC4>dZaEwpH1UQ1_ z_b_yW^4EaI(tV6_F2-z?&Qlnm-Dk+K;(WkO&nYjN+Z9ZC9Fig*3e^cdWXy=;Al|Lg zEP(#FHl&T!U!pp|Fb)^miM}F?b~Pd4qquLWoa7LhJ`)<-?+v2NTx4kSvL`sw(u+?^ zsvD`29%wk_?ov26-I?pjvd=m8C$s>P3P}*jolzcTss+mQ{wvxkdT8uF7#x&4ajtLYaLskQ*X9}p_~UmYrAU5oIA9#wbNb08J{Vm*8-6 z>Oirt(m+g86{fzI#=`pMgc4hX!Q3oH2I_oJJ!z4{^lkLex)O7oPlN-P(aPtf$OJnx zJjpd2Dq_taeJIUS&L@F_HB|eQUV4NtOf9uBYf7#!wR*U0RBbJg4x>OCVwi2j8`?-p zqm3f&hqQXq;W+4j_6IiY(}q=3I5j}tR_CAF*SR#Uk)=R$T2jUHXCQSY$Q7!cw-m_x zBOv6fJq)p0&#om4CK{OGb7G0|qSw`(^U%o;P1sbDp6w@p_(Cy-W!dfPqeiCw;!~5> zYB4AH=2a=!}TpSvqy^xRS3*Wo|Ej+FwY6hqdX_@)_P>)0; z8ZH{~@=H2G@n%SY#BXFh-d}@)L-edFB8%WY%l-ib#fhNmqii;CzXp?e&_6{2_i*T= zpR$TJ>N2}C9geb6w|TPKpi=T=I6~}oPKL~n;IT9nJre$k_d8wW&<^(iVw3dT5P3Yv zOm6de2EiaoFikz6n^GGXSr-^4DS#spw(qWp=1E@H(+`YdTgWlBR<7s({ATich!H0Z zZm_+ZsuRjN<#_cy%_yan%j|DuDD+m>lP-^#eDgEDdzJ}xP)ehm4E&aLuTZA&<*Eqe zzl|95=w-lFvL<^zbQvPATaJGYP2;(@ZdaOIY{YZnv^gd=EK?_95u~1>Zm(ko^W5Zo zes#VxxX|EnCVn%|CTmrkg{3->U&QHZd(#~fR2Ke_lg^l?lYCD%EI+Aq3R#Bg%CCLwqcDIW?c1oK)_dH}65wiz-*|m#^4Pu*FJ(b*vZi6yjQZ z#K@4ZLtK>NRdv9qA8Ia{u)TnN=7*NF6TRP z%PsQZGs7mO`+#lT3uC#R7FESMoarZLdU1h`0moJTWDQAr!K?R8>|@P)SW;LGXf7r^ zg3DS#Gnw`gi+8zUi!oy4N#_Fi2Ss^Wz+n*lW6N+Feg1*DQem`?jQX1Al0WvtSvYPp z;Evo44PRAu`8G-LF4W4#VzmK%S~Gh~@orf5;@ix-wlt*Xsfz2=)C=s=`36EgQ_mm4yTjsoFLxDDWh{@i4iqbVHO5J}mc3g|~7EVEmy>r4(Zgks+Tk<>5*kRHrI@ zIvr_5$R`bW?yD)lW>KL{u_!Y!^je6d4^JxhC|%Xj67JU-GYVRZkKP~1Na8GLg)Yyi5tks2KTfE%0G+h z)r}pFSFQUhCK`~zCmihz9k4y^3r;;=#Wpuj;8VlSM!eiC+u+c=~Fp%sXu%s!H8h9=VBy0=XaMke|Ic>(YOi6O>L|Mb55;PbU74gUbq0q2#$R z>IOUuqi!yJUV-xc8o+-3yvnpa+Za)LU4P-OLLuyAOTKuHgK4h118Ufkg2b5wj#b!< ze%o7*r3+Mgl+;?pX3m!csT!XHKDYnJpKDP7?u#mbcBjg<`-cWLxYEIp$hs_}6~*Xe zbr+W=ew{h5+AWMIab19XmldK(5$Nj!P1-8TUw0Te@iUJ43VAa`DI-veCIETzHt9C^ z7I6CPGn?dt@?!ai82@FE$kZJmLX8f5f3rV~fO61w$^XQajCCs1TLy12u%#CP@RXm~ zd8-BRX1a$5l0iUK*uV7L2J-F_WdC$3cW*LCn#)aUQ_8^F@T{;91NTb^&fc4V&qq&b zE2d#Ur~76=y;)TlNYvAsNwqORa|u;$rINb3#$>a)rwY%B-y*+kH8M@BfJ(JOWtJq~ zX8|;3DkWnNo6}H4QUYXbIy2@Xk0q--dvp#1qNQK6?$4{i2=TR76Zak${`yvIvSBOO zNmwQN*=0n{kGQ!2k6&!_>j3Wi@>Pb zPwj%3zDQV?y$!}?dIw$8xLa&iRXARjfWBJHfziHDC8(V$;Dwr>fzoRsOr_Ks4yl6f zZYFo{vVvCz_`LW!ipgKQUCA;rj$Itov)ZbJoQl#}S!I9x7?vBY%A3;$!%22{0)5

    %=`Id{#>5UfycEn+^P^a(GaI$&FnHvuKx&<$Bjd|Ab%)C z1}@;A-wlC%q)=p0zU*v7A&^W#GJ@*fI8ijk9iqq?%Qo^AtF}wm=e+UBASmo{QmB0X ziq&4oAzvcfz$B-9SSNqv(5KBt_Br(YR&pT|*7yn+1!{(~48&|IB|YXtOZj?GD`kak zr`53pae*oD=FV#hk*;lccAdIU-+hf7l2iad3}`F{E|XpCU!j2A+zf(bDN&W(31RXn zr;l!$?JxKL=GVI8qiuxJSer?o|FOF5G!q3uGV4h4Sq_M{3+2UY7%bs;-A3QroCrDB z-pH57V}bEbdYglT*}DAws}ZUF7?La(!r*9clHA&lg+cH=nq>MarDy+D5Mb;IXlt7? zv^@_&VEZZcI8iU6593^eR9ii&wiKs{w$@;)y*4z@^( zs0cl+yo^(!s@9W`&;IY2zOrgRN#})NIj<6y-FjA2h$b}{Z(CSJc{0|($f0hcDUodR zxt>rC5Eq%q^su*;!sp1Qk;zSf+-C1ra!bL%nCebGq z#cK_C`&h;9jhOAR$fWJ>XZ%-(r5e+v)|b=-hFZ6t^@TkKK_XSEazRYCB-a2lNx(A8 z!vXAeyuXXiymYWU zOx|dN0!%JYmN)lj_(p)9?=O9?gLvfql$Q4s(M2}v_IjcRa%jzy^05l!l~<=%N=n*M z^L9Nnl+K&h0HK5{a-8mL$*=h>h>(H8N=)Ot-soWsWk+RKq^$V{X7*c7o}AqZw6(DS zW_{siGH+})$y2H5>r`D;v&z1p7-nnv7C$d3c$sFPQ_um6pFLPAy)ZCz+c^DcA6%Mz z)(1Ghy3L-xXboqLS9;TPvTvmIbMSYmDwBLsnVUQ<$(Zj+Fx|Wlw$k@G>zb^`H4se+ zD6zy!nuR5$sYv98U%RqpMQwm{xjTQdLtuwaUZ)UWGnx7VcJZ4sz?);3{^#F#q7PnI zl}qeUC1;AsVIc*#n(B1gO?Ow9U8-Yp^GYte3^~97UQw}S9_5(lq>2#e(~lK4Bcupy zBZ=&Uo7I(4wS#BGgmEMpK9bv%Q@i`loG<0hL>I}`2xRa_L)m|?2RwVIBR_0w1%ufO zcFisinIEWbIC1|w%S%jgG+yrlBTNbtdFvT~klCMFB6PbUOaEq)uk?b3xXE&H-xYV2 zNL3zT-&Q17ub5bTKFPt_!kA+D=|1Sy?j*djZw>g+YZaC==NlLZrEn|2x#B8GKNWrM zcmcC$63bTF=oyVs)eB6JDf5QB1u9cjRq*k9E%~ZdZVQ!i`laq{Bab$^a%ILW0JDPB zcG>)nfoi*e@#DVGj$^K?Kx!>U=9Sz4q9@*E+p7j7YI15f0DPIjbDbuEm^4u!D=oZ0 zc4O$LAaX)`8K)cZU;-sBg1>O7Na$j z0?F=%engIH1Khd=6=iTMP=fkd4pjQQE>d;9In5;H%pPa(Y!v%S>wO;HqF8)4DL;q( z=i)b0Rt<;z(HBl$K`*W)LccQEmBQF7XTie$)N|X(OMF@~zWgPsu)SdKi5GmG0X+eksa;PLCLr+$hQ%^G}!T~xgh9_zaWc0 zR4b9cR1W{KW*ky)`WL836{~#z7t~aC8fVeh0-tt+=GqrIc{1OC4lb%IRr^#hFhP%} zKgBF=jASOaRYe49$oAzdY5|&+cqH>kPt`zuU5XJQUawhR-0u^;<6-FE zV*NrKQM-=5Zob+NF;S>j_@}*6j5L{unNOvHFguD{w6}lI8Gl(8)7BOT`7n ztK|4_d?%4@*6bt*8WRk6sT#hhkl$}PO5fdxnC=@;BGylCKgOn4_+-GS=U+G3N!hy;w)YfRl0i@Pc^-GJzA9o+lyT}e0$Wy2UGy)o;_;nx| zxCNzP>JC-BA+|hZPg3ov@Ho;ei^|A4e^gm?2JKw=Lvlwunwwr$+ycpIpqbS7+V4BWgLh+RL?$dj2X;r)A6|MhEn zic6e9A$HY-sEaDuU12^8r+-5^ZEFrWg}*^b-2+^q;_<*RL3^H-BI1zeUgn(RPz)$lLpAblykGfBam)Ms5wl|k1(vDH1z z-4!9RrxOe0jLV>ce;qKnBy9)9@jXbFp}QN1hpHjfNlyrqZ&j_Z!Iz9!F{>Pr5&uIc zLf5S!;{gOREVG&_TvHdun`?z{WRw%X(p)R*Q1%^@UrK4DS$t2eR19f`-QZDqtzdx! z*AsED8x<>JC@7U%m@T(d=eibGU@XHaLM?knGgpxpFPwbB# z!PZ_}LFV1!yRs{QSnyiTTJ(Z8GN+Jp{Z=oiDqB7RfHPDP(kh>UApPFJ!7S53=SJzo z;8%8qK^Q?MxgrK(IDY8X-G2uZ1hzF(QTsOTWVuac!f>NN1&aAgy}F!#tDxvmZE~SQ z)r0hx&MF%Dk7=-!jX}tvxw_3yDe~U9e5s^SM^CLItICB?%^c>f%>&qhQ^BpPIhs@m zL=>HmXVO~}*)^ry`%6q8G@+3pc~asMc+*xz!8a)dFz4tIp7LWwK!RJwgqBF={2e_) zRb)%{Ld{8a$o8Qe@jKNqD0>GQ-pXj+-O&gv&GqH_Vb^V~klYEqWaV&CY8L((*xt!W9xB7paBS};$v%88Ujycbv{^8C4m*oMdqYU|3>UWQY$mH#)WDeztv z;*jt5LzFa8s3Lc+Fkh`5(ebF+c|)XGK93#W3I45Zi+=Dz&uTB*mFC)@-+u>0;_&t} zMjWPzqDVMGmM`jaqDb-sJ zwJcGdiDOFc%~K8Js5z%fuegI{(-zP{Q;OUhJ%O?S?&w(R*XGydHf`-H0!hnX^IY`I zQg!zV^^}3K@+tVRp%kOX(>73kHyIAfITSUJ1JN9Qi=&J;T+b+@9kvt`k59E9^b3`| zAMY(ozXG(a55QeaK1RIuu8_WLF&f=ij5Hh;3E`5he5TMCF z{K}O=be}6ll?^Sc@{?1M@)SMW5ME3%=z?IRmllMLA=NE?3Rsa-w}oqaExB@S9K7Y7 zn>D`*;0Tt%7Nu7XNc%87L7J#^wxk5qK59~0KriQ%YXqk@hFq z#{#M$(wYsdU8fqax%Hqya&S3H40fjO5?I5J+fjy|ZC8jeSkAo%f6l0Q=Ml=j*>je&qt0Tf4hqSG5}Lpd&4#d_Ls zZhBg8NeN?)T;0?QRVBqAvr9rfxEj^Pw-dr8ee#*DsVe75r$Zk}Ze!Si6>;2O_`_RI zMFW;SYmIC6}!o4%Opz%o<$a?hw<3PpMzRl$_cS<|f}RX^hZZ8^9#fP&Vt`69Z| z3t#A#FpLV6$0jPjA}Uj)x|A&TMUvXP8maPfBj~-^!6}^6?JjIW@pXyOaEw6PNUZ=L zp&>;8^$`$Z5si`Yaa~cPvRmlhbp=(RNGYX}M7pg+$aS}v(5?!c63~Kim(&D>o;Eci zK2qHFrp?((DE*Z&Rv_Rd?9|*l)z04$6)G&7g{&EiqKZI@A*16)+Gly?_dk zA))eqsga4=a;zNf0l>X2ec`foI>5a9WWrW)y0lcPa0AJ_!^w4N50f0&86nLrs+Ih; zG9(OBBpRp5gw>hq5HDMR@!+&sHmrgSkLwvq%}MDByuw1D3q+x%t!7ywn}IK5$$E~@aj3P>CHEEw+ph)>WL{NwzjzML4Y(+@4@va)Fr7i z5t1{;Mmw+yP^y*=P^Ce<VzED%sddEgALR-3ajpmIkuA6?VQ!?RY-{P+01STW6RjE?#`>dsLa z)pX^%m{j%A_13J1D#zUr$H;k*tF^4D1O6}5t)FT^NvX0@iza-fBt(xx)1y;n(KH56vS}|v$UZ!Www0-eHbqfP2t{%@ zoTyh3m1NCZ2Jf!|Ybx)DUr_tMqpTASf8Kr;LM2Fl+(E_74|!Z7aSft4U|}$lcq40L)jJzHn@UVggadP6O}4dnc+KGApttUpo{n*#M{zpMxL1s z6Qb z)Hija6J=JXK3iN{**hEfOri=M;L0`2`nG_B?p97!Oi=ftq1V=;0SyseC5WyhZz?}8h&3V%9n7Noa=y)-1B4>3< zHGB@^5)M_zJ0!U^TsMY%J6IU4%+E|iw{riFGw7t-$HOnEzy1@A$7IZq=pyOY8i@R? zBKB6jg}Z+rXry6}vvrnpr{UHWbZ2WIpWH~c#j(hbdvR)W!;4VTwa+ACIf#M4qW|kA zi(N}Khy+u0nCq-!O&_bKlI@lC|LY0NUlj*0N>OAP$x)S9PEb3A4Y;kijWRnbj{2Fz zUSb1#Rf|1QhdwbzRp=$%wx>So}&aE-S}Bz_0T_Z2wOUG}*6!Q*C9Mo2p0j zhb`uQ21=3))$nLYo<@?sRxUjka~ldtDU}aj1;?%&KaBFzS@F`BkBtOGeQICw>NvI^ zh>zfiq9R}f@ij3(Qw^2kou2ZryAde`#eiT_CQM*fOqM*q>~f$`5&P_k2xQXY!E(yi zg*m#AlQezKV}Ix=6RDMyZAWgPr4;Jf?WKo5zpg0@l&e_&i`cKM-0~4}xhXi&doj{` z`~#@*ID}0D{x*DXtj|<7ZXl>jp)g(SRv2x4$r7PJhd* zqPsiD|Got>)ye0RV=Z~Mv+ihyc`80y4qk#gUen{l6up{pCpl3}iNu7O)BGq=jN)&n zimPn62n{E;08!~s)fwFA z!v$w7rFgLKr8r^DVJ5237FviWQL6)ZA<@>9t*?hmAIzh>BES znHvgxe)WO;CMh$?DLtq+bH@#p20`3a>NJ4~6yOt*SBK3Ja$QCBFB!U;R1XG=DIkT4S1 zdQe#yE@?tLtFnwc^`Wvg!BE-lM@BM&3Dfek9q0|!^~mO;F|RmgK^GL!9Eajfb?r@b zpF=b!1G#GG0cJfu7=77oLCxnr>PHH=D%=_iB@rsPq$IGepjye7QvI@L{tf#wYFHAe ztuAHqnE&x^FqRH@E#%kdXay}V88kZz1T>^QRmHrNJ4QMq=a4W&#=YGIseht}x#ZF; z&i`GGon=P!lxnS9*_;{YFhwsaC3{Irke_1!*+^9!3?EZn*cR~%?w0VC|Bk>^*=6Ob zmTZNnzZ2bE~3lM3Rm_1XHY+ z$Z$Up6{wxh!GNN=f~8whWXDb9;C9kU!Oe);D6Iu5yohGj^&Dby)N-SwdH&aTZs*RFL7vH8EQ7wa} zO|>-r=<<8r{`!X|nR)JWm$SUjxo4^5Nd|S4_m=1UY*p5G(8<ihsG-ri&u)3TPu^X``Fy2gZq~shIO@x08?R-@{a$jbT+_1nV2M^t7_pgLv7>qXh>EM@D+y=g%+*s`oDr|)j8)h%^pDfa}w z2gho?*A`iYC)rWLrmYxm`tY@e=F4^mySYw9#-RGa+IZq@IuKx@)Y9HUf)W})NMwqB z+0dGc3U;;vb0#N)>WZACqh__2S1Oog;PlMl5;_RKrB8zwj;New;#RQB!(Tv8Lsh|4 zTrR%0@>?=sZnX-J)OxV4Tzlw0DP#}Gfc>To5s#z)pS|q)6DrgOnLv~K>zAO6SF{be zys+5pZj(uV{JGlVrr ztODiw8q4stPzF)94v~EJWN|9D;deRq?{t1jVXD?h#fjQY9xv%DVe{6N%!mxG%C=y= zHjr;WVE^y#G&4DDPQ12m%JZXcf`tLl3^|{oo2M1IA-OV=JrBS-Z*AmVTM0XcyJC~& z3oU_a9SoG|a+~eY-`*rV!)Xa}tpHB=I_7c8@%xB~PgQbz-5|q_@5qv_qt7PEn+uV5 zEzaWT0-$7YfRxU?{Vp5$M7+lWYd8i;FUJI#jGa){N0es=UE? z*Hq48nT-{0+{`PIwO*c92?zZr^kT$eG_GFEq1G+D&dk^ zM;D${MMGu7BBnfeCBlQ?-Xy3r5-0U?5sULw${6qWX6Sf2qiFIqWtIuujSbfWiEaBAtQ_2*IRJ+Oj;dd3Cr-e`Mo(y7%Fw zS^U;hdAk}T^W3`p0M&)?yIue$kG%5$%GJO+`S{qz5E`;8~YGn(dSwy ze1oG?wosH$9j|UN{<^}e)9q~I;cg(H%GG%V{Z|{yv+?lE1ry9urW=0^cO&Tcyc-B( z2?Xaso#hU>IKpa2(b;OyeAzA6-siV|$PX>3OsxPL3illuXsb{=X+^UDxYU;@1AYt? z$>!cby`6cv7!2-50h`=5)okp^5;s?lSVbvKW#!R;Me@0VWB=$d-i9JKDA24&oeG&yR+euu)Z}d*Fo{Q zdhusy!Y0)(n&kj7%6?XfV+PKvX0FVD3#8h2D7*0*aPP{FAcF0+<;bI+knvbHH*z=7 zkUKA%4$dvVw!ATvRnYK#h%PrsFVA6CztJr_ELY!zrJmMVbZNI)PJt?$EHlsW=Dox# z$@@AUwsn2HZ%GzUi99iwwSTLN3Osa#(U%N^GD#(DFL_Jhy4^aw^10=K92Ulv({$|_ zWTS=ymhIIfXEio3R(G0)2?fwW5#CR#vK9z=kmnD&b>g4eI(O*YrF@mq z7#kzA5%kBUbW~-ImOC@q(RXzIR-P(e&P`E44TQXXjttj+!x>y&!iu;!pHjJVjYw*~ zO!)>1e|-zmD^+gB`ocf{GxWnz~v{urYi2dwfuqBM@0w=1ik@HdVA7Y}?11 z0IDnBWQ*7A=X^)%veQX)ke7yc7`B1VDx|PWgr9OI!h>m6ZbeF-fjOKtbX?@qY+HE} z8)Kh>CdZ!J(9;u<{H8cc|9s4J^RnFTn3v&(n7?$co_!8x@2>r!*(zl$^Yk{7aqk1E zh7+D4r+2Xx6)Q8x$CbA?G*nv|xY*VE@v{+S8I*4OQ@E2;b^rTkyi7|yenQm6ARzr0EzKLj(d1mE~b9O=>e*m>SI z#w$rhEYjD{xR`1uM4V>8-$wBgRaKFh8bjLfpvE-th;)^wx&=yPjxIM9EJ3`btFq2o z_0*7;X9P$NcwxO8X@@nC^(>?s(H=9JQLKO}LL+E~7vmIJ_BRi}7Efu)?QLa-9~0h; zztyfFOHwSK*7<$Esg%W_1^{T~eCV)?iaG#7Mtk}ADqGfRjVA}t6YDG4Q%xJB73)Zd zfcIh9IuS)VK-n6B^O6_JjQXZc4!sTiH&BkAyaUPoluDbWE6F;wC!PEFxlmL^YD=Q$ z+|%&``q~>?vR#t(XneBaKZFlF6}j?V0s|R!A(ek>@#LMtG~=P96d<2{BcA<~uDSpr zJmyS69Z=7GvWg9pFMbI)aStS~#xWDDh4%GM&{t@^u(G`!0a<0OrLJy2NnFGTluCG* zw7X{wA#kvA&#Pj$%p(IB9U2*;Z!&F?H6=t~^tG0z z*8ijqY56@rF`dS!>=3S3I)=Zf!Yjb^wk+AvFiZ{9?e9M@Iu|Iqh!UmXLse?P<% z;%>lhM;vDL0aBv(CaQwk_!?=v=B>5fCNCu+A3jq#qm2cHcG7C7wDTK`Hc6F?(o~v^ zZ{D3Cp3hkI589vgsB$%sOp21pM+<=zG!f3w4RL6MnG|K%5))p@sS1S__r*dfsH>f$ z4dmq8?9hu{Aey!+cY$P-AyNCdk?H>4>&s;THAKKRxkCu)3R!VmIh6SOVuRLE{r5e}_4_%tfRcSp#8Vzfli9`i$W|YK7}T@W1J?jS|)e-R{HOX}Qk7CMbYuNv{EJ*IoW=GE1oBD@34g@Ri0C#w1#j5|q1@>LbU-2_$K+xR_?%Iyz4Ir6eD|1pQG7|5Bar(pT%@L%Q7h-1uTdiOUOT;E}$m zEIs5zB7TjfiN3mp$%s)haUa7CCq|CPj^qg@Yv+rpi}6G;v&;c&D6$Eq2FvWunZ zEM&$R+6xzu`56d>-YWM=dD_OIaiotEwn=S)!c?NjMP%J)ID)f8SQ~p&%jCz}tZrwv zw&A=DkfL@aU&k}^6S_jlGL=;y?M)-l{5a02Gx=7s@dq<1m4Ai~W*+f)<&-X3{jZic zA5y^u6C5w_rO!==YR?T|$F|rqd4I6Y9SE*PAwm^>^d(<_cv)Fl4dr?59jGyw4-LmO z@Y(+me17?&S;iA&MK3C1T^ER+$0nm8_npsK&R5E|5Fu@^3Tqd4MBhacWqbwv89N)X zl-;`Q$)wjg_eH1=l#8=9yc(X$^jwcfat0GBSc4+2sob5wZ=vP#*%=hX_s_8A_jMxo zzpA92+`bgZ!VTqJf&@q&AZM1r$yV-I(RB_qN3e-}LqSFzbzV<8-T|g9uLpPj`T*Ux zKf{xS#s-T2%`K{^zI^W`VmM@OFON?eN1)P=D4>DAhUQHF($q`tf3>cP#ULEASWflC zsw$-HE0UqS4L~}@lpouAiU~c)(Z*U5o;_NF&|s#oaUeA+r>a_uHB8mH@%9AWt|dh} zUNS>+<0@l}R>|$;ir?dqM_p64 zA`S~VUOtmKl2rQn`*6*fI)P*)y>qTC_=;V&r29~Fj;8uTjPf%irr}o4Y6e-+!lL#* zk6S+c%FKoJygg9kMm(4@tCjSdqrFa_nhu0SMT0OQtkrSIJ@v$bl~y zGa2`!w7tOoEK){eIe3uy(2dzfy1lcW419|xt|6dh+Z$-Ye!V?DeeIZp*estcPrqR% zW1?lmN$oG8$6wY#o(DCZ;lQ8--M00Vz53I1>Z?*E3&>rCY*Lq8?+ zAE2&AsPgH?^2D+P;u~^gx5bkIU2!$Kwx!3$Q{ETYi?jq|Uuq^_1>ALA!d||rqh|Vi zjwZiC!4wP*?5^d?*NF#68va%V1JbBA@28905GchMDV>TjI6kU`pn0XxtuG0x^Hg+; z#MR(6Q>ieAQ!eI~j=#Y`HC3^PPsm(!$C`n)6q+D~HPI@GQ!u-@Q}4{#ge|}V?+U5e(USr-l(=B< zi4MI%I)}eiw!5 zz}}@Dcz-w2re#qh#8>zF&~UQK^=p#qMg5av*2EtDtfFMiZL+2?S4(S2h=V1kS3m)N zp&Wj##hT0KOE{28@yXCb)_*2@vUFSlI+%!nHob)|9Dfc; zE92!ul*22lr!cG2$~IKHUrgk7a&?(81QHJ^cbYV4&G-HX*@N&yjrEXqWuFdO%jv@b zoxNiE43!jSku<@1oD3VIPhJG$EZ+{FrKQN^5lBhfDOB@(?*3%&C3fq5ZZ9O#+ve3{Ckbs}A}B3hAwDWj-C|*&3>Ny7uljlnQOYmfyr@$POKA zm#P~j(s!vLz$Ce0D%`;TQf20oXwaS>aQ~3tw4nd9czh#yn7ez)ya?IKBtP~~Uz;E;wNc}(1%G~h`)Sz0y2(dcyH7Sj%+Xf2(o($CCHfy!2%=QR;Ea=Uu zq#3ON@^#rnrySO4&mXGdMNFTV$}ZPEA?Y#Iv`8Blc&`0WX8ALyT0ZXYapN}5ZzP@P zSsn871GM+Re_;FFHW+b?2XWb{G{m7oF-uOEE-1g)q3YQMG?%{;V*&q|i`ZSUAEO_b3azO)U!)6;9g531erHOnojpPj8oY@$R$68 z(=XN+npqpMN$hc&b-YLg?pI#D&O#0pG1^rX9%wAcwsSG!%#^|NK<|W;v_TdXw3nwV zvebbpB`6(lAM%Rl0oK)$gBW_X_1&{gr+(05PM2#XUih2}4?*CUH<$5=sGWy$5jCeF zKVwHyu^2berMGwR_p)cP7e3O}F1{Y($WYU&}Xu`nXN ze(~sB_1uLzTBAQWGoy+2N4CMR%BqX%$nS!3D);L=8b1(`0D%SD>MBbHZYW8_9?ARxJ5p#0MXTCb(AD0k>^>X$z^-O_z5 zGUt?mQ21#p+`Wp37Zg>_U@pc(CU+v?K~j5w$0>h|WPhGbM?LM-x8D8IU2IRdCMO$d zhF`mErYv0oUta!@=ew({1IEv#5gkK2jH{_=9T{=@P%)#~+snvq)_hc)zn@Icf~D`o z+l-3oDV%BXO6go2D3gL!$n1wJp?7{%z9}eC8nd=i#p|@gZ;kP1VFvzg+kVP-MWkXj zuiU#ARjYKn&ku$nOStRWz{0&f0YK4(Y;{p*M6!hlgS{N?rNS_r8e1Xe$Dq%_D9S5gep%x~vXi5YaWRnifr|Y@vNLv=;6r7tWzFr>LMsynP|l%^MlTKMfVQ z^%W4xq+$Tn52x2>P~F4~VtHncKn~_MlYv_po?PH=(&HMh9Fs>nymHm&-Q1jgMn5Yi zORmV1l}rm}Z+UI>hra{+ND}=AQS{Y+m5TX&N4?jIyT|4q75>u96U3+3`I<>$KkS|nx_nC=C323!|eZY9pl|c#ky%* zC=>h0T~CT?n{KF!z$P-Uz4Fl*({K2al2teEd}~-?J4$9%$8Lx;lY~Xk?-Kkl^7cfq zLCx%PSx4P3JQ?{ph--U47E!WT@-}*Mk(_Dcr0QIgv@&gIkxSPOaZ(%)+vBGFB@2++ zH)h&o<{!*8rh_nZbjC~HEZ(?T1?OVjrqsti!8`TEa{jgg^IW4!UA!+i1;Q>_E#G|z zXnjv*?3Z0f5Mu*XStDddxUNhaVrD^5pwx+t&_Y3#>%{i8)Ig{cH3y1nAnU3_K8sa; zN7+c57Z7PdYok$m27GTkj$H-`wK>8Xe^;TwVyS2*%fYj(bX#5)+fF`Oo(c~Yg~l+f zh14=GERy%8!K%Y9nO<&$Y}0s2N)sSv{ziPh5uNqxY%RTiH*>%VX(JiKvBKCC?}F8h zvGOS)z_PrvwG0AGdt7dIHgn-JfWiwZnvPB=Pr%hyRE+?S+(e!z*2ziKIiWSR6%!(S z5M@Eti@IL`x*86K6sN1mV7b246O;2VSaoG}A~8hS2zCpN&uc3qOW6;KNufeeQ6mA?4kHyVQ6L zeO@viKJYeyrNh0sWrXIQRT-U73uG&;)JYb1H(bKFS)7h@Ior(sHiHSpxf{sXAs zaKSBFj7>q@B%m*)WBo(P#_OpCQt&+lK-hF2gafy!4&D2>GT0YX8ypI%$w>klr07bi z&YdE^nL661MBkMpZ%5oYMu6ch9gPXuE}V^NUKu@sBP>(iI?#wWof{GVWT?`y0HsaD zcb^hSrmt>|{ItrdCRa_ZJfgP_BsSZ4}4`Bt)#&UZXAmHa$5DZ1l!AspM!`#hPNVmdu z_0j&UTKM0bTV&S;GffUPU+^G}3oo(grB+;LFoY&@OPoI1*QFN_>bbiGm1 z!Qs-b7hGHQFvri8kxLq1fj>J?cZ|D6Z-VSu>d|z8E%_t~p~nBxlVx%u8(mN5$sN=6 zK^u{9C|C0k*B(`p&a6`sF9YEaiIzZnHI#A@B3D ze^+~Qm=p;%Q>J*Luw1Mi!H2PG()k9q!5S4C2VO_3AJLu5x2oWB;Bq9v_^{M2>+i9i z3o2;Cb>vAHzzN} z|K-q5_;E;PX9ED5-^0DLrIEC9pv+o!MP3%G$Rs&=7s&pZ@+az8!>BPGsk&KvOr|t6 z=^`*O7XVpN3V&3He#9xe`eO;C`LX*&XQtlaGBK zd#3r5m8kMRT$Rj}H9B9jum$?<9hLu%9&!>GC-WWl*#Ckw=?dMgT?#s>G?}Hjl>KoX zmYgJauYez(n1^^IP{S(C8<=73_^LzbgEK>xl_RdXRi<3$3?w?8L#xAKHoNw-xY_RF z<`B3s8%ECQEmL>E60?&Gaec;K)JxU(+0hhKKMzrQ@O5eU2o^%C8KB2=c;3hv;daWY z@^|2SDQHO_;G8%xMR<<3I3{zTDSc$7tR$kbnc@EK_lgDNW>dPhjfOJOJy( zopAHuZ5}^w%d}&K1sfs1GS|ttC)lOClteWq#uv#wQt7qT^BAJtd0f-yYm#s|kcRZm znS#hA@BVH2dIBsgSbWO83<>OZF=nwtD(akQgYw#dcdpByPA>q8I@SR=a)}>$VD*Aq z-EE|&6Gh!!IZWA7*NkZbi{n?oZl$ULm-bFr@foMJK%?XmEtMLCq6oEIqMe9EI`yI1 z1prrqvcC(fITzri#V~#)!7P)|CDR2xSbE?s;u5)CgFu0FpA<;JqvoWydM|9pAMS%V zD7M)f-#|2#C@R+?{PZP|etJk!cbmBqUybd!xdUigYnYjaE-7gt`|rT@m;0MeV1&P! zJU`6ifN7mhTt8(lsoE8JicEK?n;k61wP`R-A*o05=?gIZ-+6@bsmwUSU(4r1&jl|+ z329cNv{0LkvQ7dMO;vkREUDu z#2?!+xq7N#FxwRAFN;^1A@ndAw4JiU#^l0?)Ow1Q4phmc6c1s)$z?h!J6}c3?ZquC zgWd@ggRaN{-t=`KM`uY@MULh7Vw$mC^1pg;Poti|p|uf6G+vc2kr&P(RhlWsqf)&$ z93A-$t?^|Wc!Z?NK9V_?ll+%bF!GIsRo7FlzPcq)8r~wpMV{swie1N)#*@1Nm_nVd zxysQUxoqnK&UD0S=W18^xiYfqh7-~KKu74gbS0qf7eTu3HSlPsxlOV7=olPHfX#nY z%xe6enAJ&@jFH35JekZSY>|&oqOof=x5f}Z&KLE8)duurtc4Z5)RX-K&2dX*cIW(a zXUL{9nBr(HPYSFReMw)}TjlWDc$&Z@aIeZe03~?!O=s>hV0SPT|5EGs?06iX%@TL8U#aOJ_!aU#@u2kL?Y)Pb{Z=f7n`p5H}Lx+t3_XCcizbjj3NR zsZ1_BvOa{9ILpH(IIBs~uVymw4#955%Y`l|(|s5j=iOioj}O9}Av^jaJPt65$a*N% zt|6!s=;UlAp}{DmkA61&GG!6g#AxMz4a3?vEL)ypy06kfUW#95Y~ng{jbWcU9Uv=*ZO-A!P4?uncxJ-Y<+`6F5E6;9Hmm z<=Gz*5bi3QmzgCvT2flDHEGQl+-M7~%RLUhi0*|F4kb!coq+ztF1*;jJth|nx^?@@ zFPb?ZimXH|F1Jn#Fgj`9*E(QrmRquPErPd|_DZP8QQliTmQoasb{I^-g|bp-%6(89 zU2XL(;bBYDgoKY2XFIY`%dk;nBrLZ-H z_a?hJklc|{7fb-+FG$s^ecaRXgGXaT@|=xr}vQVA>wGE zE&g5FB&sHMOcVS8MiX|csfqkq!i-h zGTX`VmPo4qVQfnEMP@{2w#PKxv@p6BCbJQdHqv{LNl~91tb|mRF;vFrO1tGrxyA>j zQR%&suTMMwg2iY)#2PYo#m86)kc$X+D%C#6D)!SYT}lV@+7I<*MVu-aDgAY&nlDw# zUKlN9k{k{Oe8%p?oE1hgvT~@7NolX#DaP(F|91@v5mNi1#UDV+rxJ!A$U&@zvv_Z_lu zHAgW{g>@aeq6BH=#w9kNsCz`ZyAIZ#{aNWi6H{a}UhC8Ed)zoO%G@{tyxnAy726~j zK%|#qM@V%0`Z9Qm;JtA>@Y}4O36b5?fFrW+?q&w#iOtE@M$C!CM6 zUUwTEkX%(q9yO*12td7$DjtXQc04Hye?s`D6;hV1G)?;#db4q^{aAashjkEHhP=4O zlOo;UV{gwnAeV{S%pIU|x_KD+ar?!(OT#pMF<7pzNAp#v8GrNFL$u}gB=8R`Ln?O%Bn<}q z8D%`m(Hm0%Il=zoYKwxXq#~`L()`B}P`NE2IG0tH9S>we*Y5f9_e1NylG(T6pq_<6 zS+m6Il#!(S%lSBu9~-UMBXzUSXGx`=9s}}sR+p0}q40y08-g8kbBxCP$#%n7w1FjYiV79JR>=Y%DH7y`WYlSQ4<(uTT2<8+OYJ38Z6y4 zO~xMp57fU3sK4I#P=;}{ut*+V1v%V*+iJ({ffd<`n|uI7ic{=?K(6tTIaVNl$CJjM zykdE-FUS9l%CT^>QqTr2qr$6Y2HFNFk_h~FbQPzL&0nBGbs5RBKuWymr}MgUYVT5n z@*gVpv|Rlc8FN&nJcB^b93!j7pve1X1FNqu;i_@yF*NXJDys)7(@zWv(gE@8v?DdV z??|s_tUBY9TaxCttbfYCfAaFAc#5Ud*Kqqio#B#=A4d9iv^qF4e-dO6?jmhw^S!0t^0v;(IRylfxlCjd zlN|W4X%}hc(Q&lS-LPPwi3BdQ=tou1FRv4fAoe7)T%PJ@>QtJX<}%{|o4Xv+mBPo6 zC@u=`!OW3K#6}j#tlhl!kcLU^$D(SI6=kIMsPdC&dwT+};HLOVvPb3oyN7;0gqijI(vcSA2fr|Y<6`$*$ZUaq99gg<{%`T9C7+(RBT;2^51qCq$oUDb(_ zGANTf+9dK|uBl_x?ezgmmRgv>vD$o(3(4ho*|q$`tbf@wb}duI8sPFF7xZ*>j}y&f zIDrI3@hsLoPeN~abmfasf&8`uk@Bq8{P$Gs8JRU7C|p~??3I<}9a(#ap+46YFM>KQ z58yS-sE|!QtQ*?Na?A2l&hxf z(xsA?cR>ks$c{*8G>(>Wc_A=)@gUhgmyJwqhE{f{qUQ4YZ@iiQXsO(?8Pz27w5fy1 zB5h^PH9i=wT(uA>WjYGTuLWyGZFn@Xfl2umradf-87w9xM>4& ziffO0GUQ93Sh~vTL^xTwM^<{RJ~?n6tN(v_XujiqAeT+$4kafgh06u^L_^ZUNbR&e za0l&o-c}_&(M|uAT1M5D(_-4HMnI^TBbkHmh)=nc3_0p4Lx}j2cr}p% zeUJ&~bm<8oAR=`RvoQ}hWU6M9zw=(8w) zqYoC8vkON_Io;HFuqL%q>oc{Yd@v%_*o;Jb7ZnD{C8iM5zSroPs^j;)XGwc>Pat^D zT~%9BagbqTj9mX7i|P1YE;Yx+vsI+iX^m!UAm_%SEiS2=9c3(bw#=M_Afw<)E!I)e zMq2j^_@tx@$M4nNnu98&uW(6`9;EXJrzDlg#3Hi{ZIcp^b9XVeu(g#CAeJd-7Y4%8 za25*!S}>XM5f@a*~jQXeacb#)9nJ-EYxJuWj?g&Al*~e@AV`zN9Qoac4!Eq zh^zJ=^PF6x+FQt?FL`6U4gh;!$LvJo-F!9c92z_2e^47q^(Dh%mdRB+MDk=uB-QJiVZ)s& zyhCo5SDGaldcG0Hn8FmPa~n-c+N%e}@2|mF`J1rmvYwKSQ%sA@x&#`XrfiQPqA`n} zS7rHVT;oX@bsa`JqAcw-F493FmU-~DH!Oz=5r41THnrMwH3Hl_lmSm8lu(98seqNXu&BsCbI#Qqu+ncqa!$SyNd4%$a$^GI?VwP#@6Z^Y}oF~ zJ4~L6$HsqCmzW<_y531~t0G8&D&2{H@ps(Qjbzq9WW;`|(aMJU5LDzcw2)heN!7q& zMC_+f@<2KCHB!oMY5AVDTt*hN@5JcpYNNq899g~^+1)J0OA{cViIb6+Pc>jKU!*8E zH_sFf7&Z%$;8dYWGN2R0UbAY3CYn>>D2(9+Eo&q91(Cz53Tchd<-#RIx+oW)@+2Z0BlgM>@^ z;o-8)#L49C1gU14l6fRPhsL?^EHN*2wAeqdqZX><`DK9*VBj0UqybM0Z){%jp#;wdTsT2js_+!aJ&qCgn#wpSe@{RSMYjT!&r@d* zxK>_6I-KDwDyXzxFpeW0S_pb%*H7zRI8pJ2{?!6eTcS<=VVi(ICy4HWhW%rtQcaIr zj+dhqKkH*sQ}>EB4F;lJj(>5$t087Cavir#o$I(ls=OI+@D6)jtSrlNNl4(!bScoO z*qPtROPTP=Syk{k&eHsLc-f7G{A$mXYd5S>>ADL8b(`{y(8r0MX$DLw z)>1rkuFgqIVVR*-#)CqAC6(M!&iC?AnN>Ne@+)~)O?A9;;zNNLqfv)xI^n2tNmqHO zxW)9zv~!*mIrkS--a3K;AcAZo=(eP{_LFdUS3P#5P?i;&lG`1-Di6uE1a`NwZsyjf z6X5^r3h-K3B_q|IFx}F0vKd7H5tc=5kXmw|rm?c12R0$HjEbmLc}GuO27_DJQ&Kt; z<@OrRBBX7kyPP1y62Gf|kyO@^ySa(sI&@uUCL{uM%mZet*cBW$1ua0QDEz;a(atzr zn8ONV-K41x(jhjaI%iWdUtTQ;L?Jt0SDqp-w}o<#!lRP00YONeEIJ}|mK~#b9d6hL zm`miW<=!;&VP;od8MRfD=U+^foSS}ZTZ)BkcfTh2UE#G2$~^$RL%iw~`U`s>g*2caumVjq1R(j5P z%3&kC=dV$hj~gChryf$7g|bu!(3WxCNQ(ceND9`KK2JCtB(k3*<6IKsJ9`e&I@IXE#VXRunIR!jTMxjZh5zw$1C-7KC*gYFl5%_L;GO1mAXBy zOn6|I&h#9oQrbav1xKW-u7T1d$D@;19G}2lT>pLe5yJlmimA)CuS}YEC|jI-yA&aW zC&dbd5Wji*9s*`fVG#X9%@(r#--85#i;XYSW4L6(3*|vGo{TB~cwWs-!%K?78TSiy z;af*v<3xNuG>bXCrNk4&d*kbih~`3Uae5iM9_mJDCLy{n=}-f*?3Ui-}q_$;`Yb3th(o%LkO&;h0$g;`|kW_0ys!#OiW zA{Eg{&u3Hf+{vOk7P^gliNUifc0`_yA%mLeU|Js`ksL)W-H#cQ)4e#)X#Y^~R=_9oiqInC+M8Lj;t$S*R1FgrA`x-B zDmx0-x``%#-jfg7^Tw;Iq}z^D#qFf@VUT1WRh|io%IHp5nW-H&#(o_h)D`R#YN_uv zAC{NLTg%iRtt>|N&j9paiNTeTZA~BSpR-g;gBsW;X*#Kh;E5C3TOO}MZ)u0dBICJI z0~$pHR7@>^KZBPgzSM&^ROLL6trx3~1i)fhsQe>j{xnaf@mOIA($i~|2K!7e)6K09 zxN`@PS84OH?wyT!lnO47+(%S}Rr#|-8T*>c+0iB)w0GgH7^2)$P?H%>DXL=zkquPq zbSwLExC$hZM!9e8;lrO&S|X#bafsF8OK=8eHbX{P+HeFhg_%#r(KsCiLoniCu1S(L zLbQ)CKFITfZZp&iBzmD7h?(YC>ulpSREi=Q(-jHe84y1rOX+Xc5o8;dvB z^h5A?r0ddv0d`4S2HK2K?4w6rOAYXG$y~j_p&WccQ>oAu5%JASZ1Z)UoJp`*TN!-< zet1>6cgVBV0(ckpKv5@@BaMXxJK|Gt3^%HSlb%S;K^UYxrLCd1P(bVq)%5r(8N8!d zy0KIbHzDj-u%ZRMob(GkaiO->8M{}hh zsn^XMY5hNbC1j%~0v9jYOch%#hyM?Kye|<4{fgD-jb=sG5Dta#Ov%=zLf+QR7Czwm z4q02)!YD{8*Y-#&z1|sIvgE(S6;S>S5N7!(@f?H$kEw7TqbED%@5`(MW3Uf0J=Ddh zl3KhU7scDHiq2BHCmH2;-4q}HcPODa_UO?#z2mI zZF*evvFD$wV*Tvxx8X?w(K5n(>?#nS~ zE&p@bvK0YJ6m@@GZ=p82WhzBJTu}HZWw>;HcL&2rDu&;khcKkWi?q0jW8lmkMrvUe zn}gJC_BZHY0D-Nr3X#IsOC5l}*eK&#A=R4V9casF7o=u%o6NVE1+-?+Erv4c^VPJuNt%w_C{&r<#9^2Oji$SSMaD4LD5suA zv3>ARxYk4M#Uo_@*O11sF_6JUALiEoIe6fN3dO^R1gibE8)Umc*D7sK>ma1DuZ3h? zgwa}WV0J;}numQ=a0L1Q{LWXg9;l_P$*j3x5n?0~lDQQD&Kb%#8r|tmlrO6v@*^jm z`=s(Zd`;idCjncClUq+2N?8_IZv%t7HJLgcGV)1)#L%~(tC^bVZm3YIEa)4cj9fcr z(6uGX@gL>ji7;m|QpWFQ10bGHamRdjsQYt+IR#g(aWIZ;?M8V*o$)4VBykeU^KP zYn|{X+GuEuA(=Zt%uCjMOmLqrAzS{Yy!xU^E=rn7b7qzAl>Ya?I%6in*{PR@BD9+bljPY*P@5C2;G{-xk3g=>`5UEXs)9#=?ODV5)P4co8ybpM z3{gL7Gz@xNm+l#HiJv}Ip*zN&q+CudgPMu|Sc?G`#jm2N`~$S7-YPe5Loe&zgwT7c z%vqRvxprfByc<#M9)rwr9Fmh&%oqj~5ORfz?t}qc3jr(9>bQseUL&j2Aw#bQav;mh z+Qytzmt3sK-Z%XoQtzX3K0&^v^%3WN4(h$5_?{m1LtBlMu?*dpv07U10{f9glP)I( zZIQ1Nhdoqq#N8NdZmi04!9zZ>iKZfpRw`$2ZD354k%>sfqKmgO$jvkVYy0{#lwzl# z%$rE1$;y8YwIA^#8Nzht9Afpc9D6bxOKF6sS9nVJiQLqyFIaWK+F)Id4_ECY+R?M6 zCc6g2s*3~(e^GW-@v!h&zq11H;i4bctJcj{tq&(^7; z4ZcLC&R++tAjZG0)EWtvYP zr&3!=zx9+zulLQMygrk+ZqeB8AC;y!QWsuJ!p#r?M!fX1!WGevIic2=1iENJOQSp3 z6c>@ULjhvXk2IYGS^9~GN{p^CQUR&I4l$Z97KiQpfHRK9&1gJPx9cprsRaknR=Dl(`~GZHDBIt0)My}+M+w&p0#guE2-{2$5=DaE-+uTd2%*%$Iw2qVI z&G~5D7wqcDYN+duBPs#eA3MsA(5}PURqaZ0FO=D01r2 zBTVZ3fu>KUKEZsISdJ`eEkr;Dqt`UX*`*rZ!F8!RJnmoqqKH`2>QtR^T*+te2%gK&4DrHIb9+R}zdQ2p#h_OP1YD*-; zw8&>~n|?`pmDdjnpf(?WjWxY%WrmrTc-^K2l_t}$Z!;ek?qWk8uD~Cc_G5Abb<*h7 zL=215Ng+x8hj&(Zm#;0DipU>ZgSG!upD7$IWJaBs$ zqg<)O2YYuiK&!20Se|^7SDe^~>E!%~@ho-ub<(#cr9awObEN5dek~fn0Jrb(*w9M+ zwBaCEBH@jEP`w&2`k)y{Kq^jD+RvduV&qPhO8w;E06s4D@$GlF^V60I44pVuANigE z?B13a80^wu^!qyl_{2Yf+0+i0E@_j?3~#Sy5psdAyfvK78~;hX&v=eywr|acAMN3v z!4XYI>HM>wQt>kD8Pg(lwFC5x#_Uzei*WH+ou6EyOXQYx;~0MRaRQw*s@zq|nEj$= znw0vjG5NVQkCj|y7R`3>&w~zVf{~q=c$au^qx~r!o3f23zG>*8<@i)&@bBqqGVN); zVby_{zbRH>sm;Ltmw02Qk7-x@hM!i?=2L4${&}M+ha8G$JL~o_?UFHuqm1jolDFwr z(w+A(RGaS1d%k9oV|AO+6P5YL&>e7^>1V6{$-EOzuv3fA zp+#0D<%{=s(<|>T<{K~h8FP-w=p}?2OJY0{@Orvewq9pC-CjnW)r&8aJ3C;HiMf2= zT+83@;DnUb=XvSby)5GA5oVeU_yI(4F|S+(H-g8ey~=mXuc4|pWc!Tg({0l7E2g(` zIrhh?8`d17D32S}f7!-=DzIhGP1R$S!#snYG2O<4JezDj#aZ0g$J7gGh9QMh81ROJ zpI(Z=UY(z18m>K!JEsurPj%R?9i+p-~ z1@Cxo9)HVR#NTG*^4Rxp!W+|;@uFBiCYf7>E&VkeyH6(#oTg2IWDVn|?a#7XSBs$Y z4?f{i^&n?*gF z4Q89Jd={Cfa}y`%wD+GnazuNOnHUI_DYeM>|bN zSB}Jojr#0!@m(`tHo19#7*CrNTm!2;siU`_>%%LSy<$3LqvqP3S6M{)71o*e1mF8G z$gj`6#aEiN_oT_ZOQub1`(dtTJ~n0gD30Qt?0mV?oOO25ElF3|%mR63IWxYvhnF4h z2g-U``|LKjAdM38OhvuS^M4eZeleSwbnK)ot?_25O$PqPhckO{b{U;`A#vS)S=5{T znBLJOe{&GCo2=J9Tc;JcZt&CHJf0}`ve+kdY0y?e10mSh&#J3kVUR<*9MYtgY|bywGstLqossk(NRi>! zSWY}?yi#Kb?>`-Y3})$qf37#7tjFJF>R+8_fROOLPb#y|o%B3g4&#Z9^EroiI#Hf7Lyc1~CvqiZmlSSVlUellFyPb|P=8@B!<%{XL()}N6rty7xrdX!)=RFB<(eF`) zZC{PoPyfI)@DC9w;_i;^JY4s~{qi1UJh&B4{Zv>W6TV{mH!Xu~J9h?^eo8x5X*vR( z&|S;CSC4WWao?N8Mz=gdiAr;2c01m3?ptOR{}W&6yO>w)?#-qz8_Lv1T;ru@wHW&Q zBer1BB7XY(3zi#6;C=to%-YFBTqS?Z6B~39f*0e-ddBB3za;Xf$F?#DOHzh>_zcss z>00V_-+(~Z$1#sND;a2;W{xpi0){w#;&1CaaIV9?hEyL1=u6ArkO@jh>;GHZES8?j znBtK>oN)94+g*bHjN1A zx6gO*l>bY#&;JqrCY3J*AmAt1EtMWLHgNp;seIw$Eap0mC?a`fKQH}vlgBSTZgIHp zJi@OZ&tsq}FF**%sVTDJIDhImi5Y#9Vfy6rbi5yPh)ILq@ua)ofl9tv!R~&c%hkut z1RD1!B{OpszkM>?lPQm_X0-Aj`SpOtw{=yZgqGh$(p+DH9PQ0)cDUJ_=x`JMZo)b$ zzvgktc@Ot<{Hf!D?%y^KMHhPn--~F!4r`-%OHgoS6ITZc&z?7W;Opl zwDZAm9<2~>I%MBZ?9$hI&1w#78>lNBuU(DSs9fmA=Vh-Yw%6GeXE6`#eTskPJj83l zg{-vYAP(^(8^g^Q&x($9Vx$vS7-a5lmU~wD=si@%-;N|Ry8*wj-+kIM@Ne;6$$y%e z{Hn}kJTwJ$|o|rs(4826wV7x?sXZQU%?8*I7M*1?-w8@Pas~Gtr!_|1# z>dTvDF`j%8f*4+%H#bgU?CTr&>XjaWa_M%9vn*fF(}+zR>)HE!@3k)&An+?2z9R{6?SkBnZPL3wiVydUX6x#1;DJ?h`6n^V=)F=| z+(oO$i5X5n*bFPeVV>?v_WE`{m_CS;yzb^qsue-u2_{ExQMol`#$6WiYE?eXe34nS z`j}nlTb1!bRDzZ2zj892wT*b-5P#cP$QdmhZ2Gx!irE2(zIyWEO@{hXWmT1VyYbUe zxQYs<=}tM|MEG2x+Mwm|Xltc;#>rIpQ8=Ek))eRNd6LCJX(2f=3@LGUCqLEcz&|4& zViu@|5;<0npR#pj&vB(LIj@bx89!T7ELR(A+wf0|9ZSqj}8bj=SfD6Ujc!ob~k-e{3|5zZ=qZEWiWw1 zZn9)7nviUo#TEi9YT-K~>wfrIWHzxkanhbLqOyOEnTwx>DuNv*fj3&kr^#p655>gu zBpdb7%lvb>6-V9jAiA<(52v(zGKaZ1JAzk?ydY8r>&eBRnZxr@(=J~=!66kUG4A8a z1l$@N(xGWQ^_C6~EYhH@ehPv-^&JLTqq%A0W?tdh4_(B%m}Ta*SyIMB z+)<4zeN$Ohe~3XETw(LJ=5sbTo8ezd>}6D{z`b6qnlUF2UqTa3bC<@)gDPS|5*J-d zezmd5?Q~;@H@m|kyJ%`6`@U!Qujg@S5ykGmnamTn{hlZ(uFqsb_7}{s%pb|iJ2hj_`ycROlLHJ8qcpV0cWgjgE)!&%u1I=aSJe7jIU0yD zjHBB;7HQaAksjJoC1VbqN0NL@(I|O1%$%=$%22gVScAldP+>V#la;@wf)=^7h8IoI z#o1n4u|6uFW|lXBe9eXK$AsbJ_WrF_+ogkNXbBaUa5Q--&VLHkWEtY-u?NbIV++DP!ca zM6E>omN6;Kr7V#nEvNe^`aR$M{@KIqoX_X|e%({0l09;&cUa;~f+S|eeHcu$WSKy=X4CN}@?$bdX2Kei`u z-Qk2j<#=;g&o(_c-FTiy+I6Jh-5liHVqG9wlf^i)Y%hF3mstZ^FUo0$t;^$lzd<$Y zw4olI0nn|x_`klBpswjGZb5NmG?b?_iH^aE1RF^fawk}C{ZDbuw=2rzjg<(otI6e3 zZ7V=MT8}F=)pH(qsLW8=UIU!{d<{@G>diCGQ|2d~wwjsJv?jDtpfRxZ7%=(jYfk)l ztkVmJ84R=s!yazNk+8Fd%7oE;!P}i*Ut>Uw?5*UpEA@PiF-1WkQtvXy z+u-D1?`81gqk8*_s3J(MiR?tn1U#Uj;c>ut=|kA_(Nd(#feda?*q8siUydlDQZhoS zv20YXJi#A+`-(T)A~7jxa*S6#Sn^*Ik5N0PYw+FrUJkz!U{H#Ys(X74 zn@q39=k6{w-SR|Jp5lKCRx|6v{(X)+6Xm&)plZoPuA8TGbr<__po$ip`I3oNz4$Kz zqn6(D{Y!Es5qYS4gFd5Kk8kZc4)<+p#e@Ic3We-ufR>DViNDS}#6zY8@saJ3sIxcX zc-({^0slF@4CVG^ZdJVz=dPtY7g{E#O2#46B0FdCW3=8^8KQgW4v&OXs84+Qb#dhVXw?F(b$(7z% z446;;jK_ud=U=tog59sY$LD_T4acc!03~r2Pk!_l|5~WMf$4Sm^;!vN{$`+Ags0(B z(&hs*PJUVe0k$mSyUp*I4vF5w<6Gz;5Nm}C#ik8**AM*l$9Fl)$kQC{^Nkp2M^$R5 zOv3Y&zqA1V_cUkOtBtEZ{rT}iRginfNhIbg6<33F6oSbXn<4EQnHIS$h#&UH)R&=p z`s91c!ET-jWOe9=3zoC5@!Ef~P#f(TA}5xMyuv>N#5K~U)3LYt?nPY~cxwwPyLm;P zRA~(cQakdoTZeh|RYD4qp2Jn1{EK^An{(xQKZ4t@=}?z@A8^jyVO*v4b&gWu(Xc&g z=1EW_8hEa56*$FAdN~;b=FYPOT+*>pBrXIZWD`&e8Ge}0b#tLGzSOqk-bN5Yd|D0( z-^^N|+Fnl@nn5Mmd`$D8B63&(t2{XX@_U)mCV4oJC)Ms;t*6Ck z*boN$NW0o!u7MZ6{1_--odopmD_awpcb?Hto1O^jejf}~pJ}GZgHg!c z6RM!4+|byKaq*PiNggZZ&cJJBUrvAFF(4f|%S@H3CKNp351!ZI&mdwgSNQPiuQ=OW zy+m>Qr~Ep-B{*SYV@+dQT9G7n=KJHn53RKSg`K{PeWbkRt}~e^>9p`zneD4`)mnbvUWb zCFVR#y7f)|FZoq|bnV2I8y$i0t15>byQ9de_sGUk?vNKPD^1SRco2vk$|Ob7-< z%4|fsjoH6@NP8f5>`LY@FmsGnXd>v#qI>d`Xz zIL~}}u+t(}ip*j;qM7qVOK$tqC;YhnBC z$cqb+d}5yNM_#C-Ytb`#?F(93HqS4VS>N->pwUEKc9z7+JT^1QsvVG@c^xcvOs1If z8U(&uFF*0OHN6tFn|E&0Q?(X0hB5E`$_sq2ahT|B{HW*x2~9ueEY^je(Nr*I)RXCF zxI@PUXxe+ZVBz9>rcV~@u+o7?$gz3vJ1xlWq6qnU6{vi36m%`B7|UmnGgD^N;%&{p zMsbZ${!nqAj*k7JD`-j1hR7rvIyFOOgvq6Wri%=%D_Feu;q<>R z@!=+20l}pcNRL%I*7VwwAZg~^eY!VHmu&w9^sLjCz>v>5%6#poZ))qb$>B2i zwoPxYG9;PDU3`a&_Phe~_NN9$Dk>n=n@u_BIuBoq-w9MsE*FmRtF zE)(M4euNV-PGvHW`$H~XU(bCCr8brtiCjH1J*OV6nQps$)0;E)+QfTfFJWlVd*22t z+S*WFWWk>deuTFX%Hl@pavI`XTc49&(_yRZ$L4=lk&Rq#QiPn@1>N*rjTth8@+-Mm z%|jzpMV@qZnUuoYd2m@UWO<%5MFgkFMrQZR)UOeIHFTz?#yZnNwTQ)Tqy^{b&PA#y z98uD}o>?GY>SXl(Zh*9GG4h%CR&ALd%P|h0gbugN3Jw^X06}_3{%dKY`d0oqn)AJK z7FAsTNyzBpK@dGDJ460?5@IfM^APr3Y3v5-$kA7vY{QCo7Rs`3c#5?l2mFB=Mky`> zPtV*31b)5G?T6qvpi&tli(bKqdqKIZ5^)UyH&mDSUM(q?w`w7RK1@KQp5DrhuHOc8 zs}F+1&=0{)&pMp0)%#qc$s2ru*3lMnrxjZv4cHGyI-G=>zne+@wYnafH4@bJ*2EzUe~=_p!@*AWK;n2#^>b|7Xl^bR^) zyw-C6lruzze+)oBX9=@3{hNb-nyp)6LK>oL%NxlUJvRG2JLu00uB7J0+C(}q?${Vx zQUI`BA+qrx=SmJUsix(!#x*RK;{L{Xfbw99D|6_#Rdtuz+;WX1mp;AtBInW`iQo^6-h0MUHD}8Su z#m<;>EyjySI7!FDCUwXsf+8et4PU!@$(bUjFqMsiu>suKoc8h(=}Y5}STABXuBp5? z4}Q(isq(B8Q0KgZID2vo1onBpO*&k2lCam|>3Og5iCt0rE2AqUeOl*&2PdO^>Z`&= zGV4R``*N%s?}hfg)JkWO)ZGM2u2=SUvhpOiIWQ2yIU1}7R$1y{Fc&nGU%K&(Mg2^Y z8;8*`aeY8smmZwv*aXfntqH$Q@bcCQo!`10Y?J?O18&UUq-Q3LOVO((Zyo}9)l^|~ zic2wsHtMFl(SFlMX>fX&u_`}To`?qRt=~26Mp$f-RH1l7s(uOWBy>hbw4J~+ZbdqM za<~B~uQ>{`*>VMmTkuPzG12tNZJoz@Ohf}UoY_&Y{3E$wfng{7#)}*4R@_om*;HOy zvM*1%)io(Mx`9~K{-~_!1iu|hbKyGrgJn}buln>m&eu{GPOKi{WL#J^t~dH0Y>o)M z#oN*awbNT~GhnD(BN=rL>w2+DkCSgVpgYz!h5&w4aqXz7EQ{8y8FgfsHm6^?#*=?_ zn+~}$)MQ4)M<6?m7A4tr-Ymev@kPqdpYx)Ek$kSrN)GRR9stBJrV4ATpp{Jd5~CpZ zNmzCDAMl}N3!l4p6L^g8%5e`p58XbUtaW_`Bi6FZCbV~2WNQh?&sV7p zbwQm)Vs{}6+3nUu7Lmhe`XLivz6|4zM|FUt=3!*gxoLry61nYy7(JScWMVK;d&&=qY+4_?iV91B7CgoZwwXk)W zy`U>$v39~tZlzDm9oE#APIW}L^_jOq9cJGq4^^`hMaIBj#wbvRE~Q+ zUgD?JME70_7QFf8a*UmG(lMEb{IDPXXwM*5DNW-Qdpbg16LlXiO%k1f|3y>siXrRV zA}-PODgN4HmFbq@si2+arYITkGp5788naa%BT0$#w3ehnkW%g#Sf9xh?c|BR9B)n; zKgd#ejmITL5~f#Dj%5gsB>!Y)iup5Vf2eXJi9|U%%115X^+LVpoIpqj@ncN2A4YTb z!)dAV0+9u(vzg@7Fg760oo1?}Y=8mItbr-we?_7N`;nqwmzfS+8-FuNsggwv#8l27 z^%vN0nO{ozU7)#q`X`KD`k5BH6VZsj`~l%KilvIl!hd~gGhH(N8`CZeUPk46^fZYn z9Z>{Zv~gC6Sx2ma7-%YCU}H$KAz_&&`l2~3@#1D@qHMjxXCqX4Q(!|8?yKhz;`h1% zpit#%Dx2D1*#DvOf~i!n$IC4p`L67QppMnv`@-*_z$VI`D95^D&N+@D@s)DbU`Vmv z6zHfUJ&6jSOxfdIeweT3*K%e`U<<7KfF&=|Os`_Km-E#Px&`>(_dxdF?<2?8>sEz> zy+BS4%HjT>$QPpG={<62ag*8{P2uh$RqDbUy<$_1Gx>4SWg1i$8MN7ASUv>8>oUz^ zdGrvC`e!0Q7^S>1vig#VQ2HAA+C_OS2<@br#_zG^lJmYM=}@PQ)~G^B*$!HM)>Rm7 z8uI@y#`CZ3FF+*q*)s=SC-sCg16^h6OEC0j+MhhQ&P*5A3_!=iYX^RQMktl(j{0&{ z``48{cuL=TAo07}{OI;6vb1^>--tuR7zVJHEsLFo1Z!oRm+hBn-QdA_8Sv~|${lX$ zJFs@OEk>KPfHe1;76Nn(VQs4XZN*(5ayqV4{+BO9my8Ox%1b2wCAX22#RGb_$K_$b zk9pLc<)$EQ@9M3#i}cEkrcDZZ8W(`|36DDwK%ynB@qqOTL`X*lgvp#|TaZxwdyO+r&Ta&$_kQ7KGn-gqF?Wg9 zq;!(V3ZzMi@`gc}#RRykdJOs>ibBQvBOk4zD%;AgB4(8Lh4j_STiS%RqB427)ZCi}?6tHs2q*4wUTGW3*?h z#MT(o?pCtxd7e4$5-RGK!JPHZZ=n5D9=BucahRMw!+Yi@nuStVhaCeMfcQ{;nY1Hg zD;o!J#7$&Wq}v>5?E5yb{=do^0wtz)715L0chofV(C>DNv*Hm%MUy!I74}W#Wj)cY zM}@PJgcpNyMkrq}vbWMM?{(na^hkDs_Z-pkg)Yk6ttaDzMe@pVnwC~SfcXOB(&!oB zH^%W=Wm$6$Hdqz5kc1%|W#j88fiX;CkV$7y>(TG<+Uk0dVYUi{OGg7#glf}e+9Mut zIN!9$KU(md?*sCv8jm819EcQ5xNhytFu4x(l%H#+y2ZPrP9p zSrmD^2@ZcjN3mPihORuy*GR5uf9L3W47JI+wdKQ^P;6bMZeotuY`Tf4qcmSk;4Gg3 z3G$d#coLbx$=XZ;aMyRCdXLQJeoV;=1N_C^h#VBQl}!zKn`1Y)j?zm)9-f694*cn? zlt>DfFeKPi^2%jX`?F=ehYiCyQe+X%dgrDMCovU$Go6aBY=z_6&XA}2WrpvzALmn()%Rt~# zrd-Qn>T{6%nGH}Fdd5r_1P<*_L9*h2GY-3ep>g>YJ_N3%C$T2*SG^oIy_O3SAII@H zMzypcVrw5DmYV$E^*bCixh^;vn_n)cZX#P=Yj9W3i?KHbwhX(Rp_|_p{Kfls$0kan zTD-3*3~p@Cc2Te9lcc6*9>HlgEd2F31QB?`%#}}TICG`WVo>(oPo`h0Jz=IApOvHn zO@Ps{7qno!0Ec`q6SyA#9;yfoH^Z0dIMaABm7D1X4I6w1Mu@(qX2s71t^k^@HiO~&PPVKUNeC_O$oQytBi=2BK zB(lt|JyI&SzN~fe>-S7sq~9VlS|`X_OXpS`@~YmXFbaXxO<9^romuF*Nva^87A?0) z8k5U+yoQiD6U{YJ^z;#gOkKI#39=rYz#oRM<9J34JW#w4fe;zWDOzWld9rXU-)N`e znu}{W90xF?Wpfr9zp={b!x;)Ow(pX``L~Oh?ZK442W1hem30H0AyRESuU=vRk7suW6UDmS~y$L{=WQwYz~H%xi%q z(iOcs{`&Gw7Izs!e4d(z@^GC`@e;=@Z%JcPpsu{%-_!%VnY)0k-v%MZDv0%enr=Ok zm@@iqSp8qzgk;`$z}FV5@(>BVi(zQ!%83mhI~hl+8>$(2(q3k>MM**#T_ipmm-|4E z`+lHG8{+9RmnYfPVy4CD`-T~ZI}*}NPCN!OXOnT0*MZqpTt*VtJCh`gv@a;PH#aIP zQiw(-QLB3prdxX6nJBJgcCkK*W(Y*l=5r8V)&iC%8lg25@>3s@-~K}GX_f6c#gr8Y8IMNuEU_$N}_-E{&Ft_ z2wne?i+#d$JNe}a45JO^uZ2p)- zZMnduYN*12vTH5>YN(^Zxk<>H$6d@q z9_6khdAT6xJ$mQy)sxywzbJHixhftc>yCITCB6cd>0c2-)Tz7`QS_vEN=CWgx>nrz zGDX?gn}zIucm*r%QURB2k&c{me9a9i+9JJ^Mgx}aKZ4RI-3{eel|7BS!Rhj^52@$4 z%Kw)~n>K0o6Bw~?fhBeYClM{=glBW`LF%(IOV;U{+#)sw zg|f5-_{Hr{mKWazXZ`kokex~VI1vrQp3yb4<~e?J@i@yQvmFZX!;9Fej_Rf!mp}}( z-czWhubD+455GlBjr_r+{FCAu3A)a&S15py#f|W0oyt`Y#e)LAq9YR3?{i6-zTYmHUFb(4J^jy2b`fa9uA(td}d-HaS0e<-hsNua1foaNpnA{%k9%^uihYpN za%~h1e9_DV*&(fD_e1_LLVE*^^g5Hbl)W46gG7oa>-80bzvHlf41k$_c$I&hUxC6p zc@3T+Bt1;Vf5|&uQLaeodjhnT{R0^1$C;^A`IL^3l%3eocD+Zb(?HjwIiXPwBfu+6DB ztj9x$jlI(R{bcY$DZNrcJjq*3`3KdqTggvV2~7$0K2L5{<{sCk1bvvY+`u za|OE-Bl>@D1%-0&6cbs;89VFD!l!>Ds$#X9b6*wJ24>|05v;Z_ovffp!-B?|@uJf$ z+jLdq($6@-o66N%UU(T%{z#XVbv+iePvYCaP%_?R?BWA6Ad7XpeDuqRpSCebxV+b# zl@g{aPu|(a=f>^eNA%Dv2Xtj`U<^iIz1#(wF;bz>!E_lC)}a*s`8`OELunZdbWUMV z!5s*1fDT3Bc+`>}^#EKH1&Pu?ryZ*j$25Y{$|UL}UuO?!Yd!C+qaKbjR_=X=w%Xr; zKbVRoq``XJ;`iM=Mf4@p&)+4q3Ezx@Fh`+Ygg z<)_C7=rhdvT!j@KXP*E?mEsYRpOAxkV9=FIT=URVm=H`=9x5-!Ab5Uh3^lq~+X{Y| zk=L39R`U2Xpsb;6*hi^mk-X#DXP1~0PTJBBaL{9n)}~L}+K2kWg4*)*4Iba|DnE*9 z2UQw3@{6Rl7T9auyoXVK{pD}H&a9T6Mf&w#SR<+!8}byV5X;j%u7t=V0+(L%nI|Cl zUD_-wc$yzagM$jt7&$zBG+*015GFXOjChICr(;K+VPuDFrnw4!E)NE@ME<8y zxed2tEdOsM;_l>C#9hg4r1U>3E>Y_1+K4xgacr8tyAxV5t&BF$>1_OzoQv7QnAAOb zLh25-v|$++caT@BI`iayBaaWKvEaX5A_EBCv!T-EF!j8VT!r?_sVP=pRt6De4FA@u zAY39}hfNB9Me+`5i_JA>B64g6bDZSmI|%3A3}m6XCNW47c7iYKXOR7#G(*mZnCWP5 z-(X1yB2f5D$ynpp*fOG6NSu9j0UPVHn&VysYD!&QAUX9fGYP=3+u?#X9G+AzJx;Z- z3m9XZ1(RS?P{RcYa`_i$hSc5y*ed8%Ku#2fGgc!*j?_mSw;JcM8VB>sp!xrvQJ%z9 zfIx`c`5T;`qo9bE_f%~ebe7L>uW-@`y42a_Ay2mfywIi5lwyv!XgNyDAi+LHvwW!1 znc|fX6^_#rI?n5+|FwVfYn*=EXwAbcbFT{s{Eg)CU^wNP-f#PGJ~n@h${mf!_SKOW zdcnT`EsieeoesIZA;=;tbZP57ZL(KarI9c)Q`hRJ1!M#% zZYkeO$laZn($0M`~$W84|KfQgZ{4yT|jCt%d(3xI~OvMn8e#5hDvTf0S$W3oABYUH- zKi5j@zV_u9buj>@Ef^!SGWkRJyr2vjc@n3Ejq+pVuug9sVL-i#WasNyP$`dbE#+kc z4yZvdE|ymTbhf}_$5XS`MC6w@#1;3~6wlje!`06q@>yxqov4_jm;CxWjF^?I6ZmDJ zWEIl~BLYhG>dKs2GHMC5dtNVGKJ)<;u(BsY@McfsT=Rk4_WCDgrSwff5nffL$w151 zMB7C5<*St(fGz}%LSTuX;gCHy(ab5i%WXR57_`^_0ve1*fS9J@poV^R!Gso z)01zFwIK=JI^fyfX%_2%e+#0Cfu304DZOOSG-TQt7Jx`-BPexuGN|3J<-%26W&EZd zT7RP-$7@UuT-q--?YQ06;S%!&;GV4t`bmQ)As?46lFC^Tl&(Hh7Nf-+(8v<#p48hT zT-J_6nrW>q`{tvLZ|CbFt;GrAXoov#)uiQCwu!Qm4N~$z`{j)AkC47U;e<864UF1` z-*qDvuFR01zCdM^5v`LUR9BK=aSZ07DI;aKuIZhBgp<@#De;u0r3{d_wqZbx_!}yl zuQC&5Nx^?EW>FJiwO14hspa=DSx&A~<#a@l4 zr0c;?`&G(VBE1Y?IH1bM7?YCSba;43#XKX|H!iB|gSWc*}JG@i*gWo?aZWA`w>G|>oZ zQpsk9WSMx7b0%0kh9q_1*eNFg-t`I>eF|kA=pM-(Da*g(=*#J?=B%zTNpQn|eM%hK zRfyrCN#VG{mZ5|%%7?;hx$PzVNhm+#Uk|mX2|)qrVRx3x%}&l-u^lv7vHZSAuU1Qq z;cINu`u934zKgmWjBZLA7HJ*cE)!}TqgqC?2f!+PZS7`>vnqC{6sr;HN| zSr2(t&sh9LPhbpH-g?sdsA-o#PyX<}UUV75Obm^X}uG9 zD@0Jpbn&#q7oGA2e;C`#3;>9v#xe<1$itsGNOzT}M?t$ikS=4oUtI_hHdMUgy=uv+ zh7O(d)x$DQH`nOFg`&a&${Y#%U@bE2U;Nt z$0?%@IgFx)(yoRxg@0KRWt;BCNK>V4$oOY=BWY@j(dx!W8AxeOQt9dO@?1B_m2uqN z7$-lA;D$f`06c(C^{`j*(_%co&O z210i=?lmcBXMB!a+^9+;WK00?6dr+?rml@+U^X`c5qu+&|L>?*u@6W? z2f0yBQZ&~Lk-24vyDdjB67Mn!Qsx$WtQ1@t|II<9i*uZ*C&HCm0entZTEYL9i#$VfXz{e;aafQ8USeg zRWP^yPK4+->N;H48T4yJA{G)m--Ge-Y(ub?4J#WYkzBj$^QfrrA;elAL$yCL;ZolH zgI|Agpqt0k1bHr1)LX}6>q&22Li)Lmo`g(;0#LtWBzdiqA>)mmdeS8OwwSilMKe%@ z+_=a`zEVlS06WEsUmmc__C(HH^*R*A0K1_`7k{K|$l>~L=ry%#l+jnBbfxAxmd!zp zz6P@4F&e*`-Wc4GvLk6z5nP}g6J_)q9(1+?#|eDRIbV3jnMd7EN-yL2G;Q?;5~b%< z6!#`Qt#`BvOoDp^<6GwB?25b465nHJYmAChq4t?YKa@E3<^C}W$ z>`habHM79>36MFVvtouYeP%G=t_scp+vhEW4QMV@i*^RIWL(iOKx{O5W zb_>W{Y`_6X#y7#RvZcFXbEeBI?f?Gv52B`4GiRoxHS}2JXB|$;J&Twg zrc$R%BOGJmvi?~7zqodiK<917#)kfS#EBXSciNfVW(R zXCvSZ_)Kn&#KPQNjEi-CJr?^hR{2P7Hz%{~e?YkWsMi|McOQ-#N^B>6KLDw}GjNzd zgQJyfoe#36UB(1^Rwp3dIOfbS=Er8rl&)NDKmeo9rDs4+h%E!km}l{XaExWynH;Hn zki2yWo(Lb#r^cog!(0LMqRO2JUl@(?P?&;!S0^O)<>zVr9xs2>U_?cl{l7I!u~PM} zX_JYJQ9vAp41~Y^9e}PQ#Q3M8OndBF(%O>=ar&LoIL7Ic=o0{FiXBF1^SN2T3-g@v z-FPg-Y3w(~aPrQkdps|mbb94*tUh*&KG_M2B0Fav1FB0f^;l9QYa(!vY`UAlMq#jg zp?y<2HkkXc8cJ=~+Ub?0x;x`oKNun5HlX=MRd&~rDVoOzL9XAv56r@H!1H8nL|oD- zz0~JHY;P3^MVyrPA;_CMUtG8Lxqt^b{^K8E@9)6%k(FP7zZI&O#uhzWqVID4ulfkn zCC1N)>&Oqlr29U)uK5lKw0DAu6&Qw4`$KtqU^jT{keIcFW20K*WK+B+4s$us1#||+ z%k5`*$ESJ*)*@zf@VUGW;`|lq5tE!EPvmg;!Dle%8Y)YqG>8Se3w}bwjLS}v=Z88i z5Tzr6P(^tokmp~7>ax_q$Il2Q9>Aost$J_6+uA4|*A*Z|RiJ>4Z%~R%25$oux;n_* z)?8&GUBe&^<;%v_W;`#X3s5Ns2 z$or;+){aaQ(UOw_trXd*zfFvW-u#_3E%t_tef6P!>tZq~eiBR6s2S-cesQk>UvnOs zMQ}j7W&c0qVZ}w*?~72U6}enGRTeBlOMEiJEW@)(iep?~(Fo)LqwPk#;4wIDUK507 zN^R+t408X~`zS}M93`EuVit!EHT~k$S;y{6m9aXw zNJ1X)|4f^Ymh0D?F7kVflC=@SmC7VDNtYY7U~>YbeE(C7J~oi`B%7Ps8ogs}Eg>J7 zNh+bcpxw#q@FSc+i$7H7$ATdH+{V6?B~6l%T086}z^0p86J#1=;qddz zlI1hT2+P?B7=MrUJQo$iuF1(oh-GgLX;KMl2CEz@(izTz>s*YpNid_Hxs*`z1gUwR;K#z0zBM+LqS_9XQ3uHOvgznjK_evSC3z zC_8D8Z2Ok;Jf(6R*i;tM8{3?5np2lSO~pOY@;TGEUubiX?r$jjx9@X+ucW20oIhNG zY6Gs5y4?AZGMqAWZB_xKXPGQBYvE)tCYUjDbhK%?9wdK1i|AOFjvVf$*CY+nOB=^2 zTT7YUmy>SOo&RAvVzraihY~*+X1ezrAHJ*t@%U}7VY2c|Q1V4GpS#P-75QPY$y6(q z(pGlr=>NCM+Dg)fnO-UU9;uOD6@igCiA%fYWI5!aAJI|grdbIo5m#k}R%?{Cy{T+} zia&fdlh4HkJaO{L$DD;;bSu}#^sJ*dXTS2TGfq||0rttEFygOOAfC+%Bm7;JHwMg< zHI|j(n8x&3hogZ~n!-6n6A`PGa<2qq_m8w3`Rxm$E+f-YWzKK}PkU9k5Rk>uI;i6a z$JU|+_m;%p)MZdABsrCXiV9Ia!DLE=`5>{EkEZKL5&;F!`mEKdvAjw<=-smi>2?sJ7 zH&?mm@VQbt6ZL46GhI+gTXM*W+;|I!C#blgvOdn4iM`+(q+8nv2e-r)Vr5>qcz!Sw zar+#LWbhCSoiBCkPr+*t!@i}^!KV5!$rLS|CTP1SL1heIe8o@XBDSubwr_Ck5dV>B7MY(0-`_2$#SVpMq zNkXmdRe_1dlfjzM5=SC6ePPM&!MMw^*EPlh||)T{ja(e~q~p z#=jMY%skE!NJ7=p1D8W&998JXsB8z3tfFPwMs>=Fm+(}ct;Hi=pzI5{7BqmNXz4hp z2b?!dE0(N}kgPTIa=o+k7RVnPK=`f~`6D~M$01pLEAl^NA)_lRMgE=5)m$iU++Z7e^I@ldq#o0%$& zC|kuXDDJ`+i`q#+sTl%M7T1wfaau7D%OgoH1Xf6u6>tg0b9-4+6}|MHvV==SA!Z?q zkz2+L>s!j-`+V5C3*CM&q_ z%+*ny5Q&YgpHW}>nNZUFt7zu-$Dtap#(a21fcg(Yz@v0^>qV9@ORdS65pPx$V8*zD zFwU5gj>1tgax8*t>kQB_Re5#mmoI|rSQf!bxlu+;b{;Xs)C7bQG1>{~kV^VT=>L|w z^ZprFQAYY;N~R7E6JsKW&3er&h1Ss^Jv;GgHsk@Av8Ejc@`aNAVyNtBmD5T7{Ln0r zyGMChBq`$J@2 zrWuEg6&Ge)tjNU@E^UY8FYP4zKY?oK<)|ZlE~3omu~kK4nf`!i^C=t#varG5I(@h& zWJ&fa<0(lUg)k3jNBJAXah8KRk^dI>?LHw?B<|qik7dHYY~*k(&3yRZvgu7uVZa)UW3?g+8gtUq1w@~ zHlpxry^=6nS(HrH+0R>4Aj$o!rjB71rpr6@&*2fWENy}+iq)ycq2fsey0NM}4#bou zq8M|Zk~NE*lrAy>p5fcD(fbvpa`{;^S4!_AEgj2E=K8sLdOwx11~_HfL_#=O-VzK_ zi;5c|MS7B1Tfb>TY87Wu`(^7T{>zBMbUk6`%kCgHPuZW7Q~!f;|5e^L5^^7#>gOhf zF_?LT%2JxhodV8E=F5s!pbVhFNl=`qw;_{-PC?&hzJwIO*Cu~FfanbyimyF}@27r- zB+b>+hb9MkbXTimJW3*Gf^2KJ&&qrZOB!`pmT@v_6cqP*6jYI2k|euEo3v!>@nhfG zO+TcN9wV9LGL0`Q%B4#bPdmB>j*HATbC8uqz2uE#Ohu9egg}z5@}eD$_~dvnw)9PC zJyhkj(OqY2P(_IoWZ(wG=UC-^7NG{mv3HXZ*!h(8WM%1?TzNDBhSc_G+K{FQD=N*X zCZ4Uw-z4gBk`6SsZKgEQ7FZ`$ut>h_=Zur9uRw5Qc{+&y7^j=N6|VnaB3C-okAI!m ziAuQe351@nibF9b7!$Gc4`d8WC1=Zu`euQ4nR`mcubx69mkSKvgO01A{5D!4a@hf| z`yKzA3Vwb%U?(mdMi`Keiycc*!AjrpHx?_%s7?DU5*q0&mu-xD;CK$JT&V}4bexmr zk~ip7!MYAuNB~%-O6(Ps6-5t~#3_m!64+xc!PP@NK3ch7h6)19sKdzXili(GmO;Tt zu+scO9U5ca&j{>4F`I$s_ipLT9$nC*Nk~+z`YjDN8Rd5zt{N%LDsXO?= z)3qwA)(KEws*-x=P#p}1D1x{v!-yUvO+{AVJ&-(DN?}mm)5zIEJ8{~O4zlI~ zjO4t9JwlZL1ErXs1g|2PS-{wgZ@@VZnC~ccdP5Eb21gRPV=YR<3M$7OfIIO;kDD}e zQYccZxcmQ0d~zG3 zQd)9(TG<-p(Yv9D%G5*>?)uZJ?TPCkW!R{w?&Fb&5PG1y?ZIeK@X~(4TFVWpPW98TtKKijrttUl? zpz{(vg#Ia2HWD(Tzq0y0Fm^{3>o8G)UWWx$E!5eL)N0U28@+tBRjgG9F!f^kf-w2( z6%QQW%S@C@TTQ#Xq)TfLs1zkb+c}99{^HbIp5po%Gn3Q7UttTFt+*M~YLAc%JtlmG z##pk-Tq+l51EF#YB74S8IO|vCsG+^1VBQ~6Lw@?&%+v~A7cJXH5dW&Q87jD3X7zx( zXD^1@tLQ-dh#ycJEQ`~D-tsVv0mAeTbj+!xDtk^l(O7W-s;(<+Mx&AxOroTz(qs`v zL4OtKOb#j2itS=)YMe{M5)JbBjra140AAj3`S!b@9GxkOGA5)|!c|zKlUdm(C+j)A z5E)U%cGb*8PC@RvuS%T))wre-&SYZAoe2;NoBkp&81tg!)NDM2_1#b_qm@lBd?>09 z*QGp#OKNF{eV*Hp2o4Zv80r)x`_D2)GFo$xAybh%7S{a92cKfxR;bJ{h$^v#(LP%n zqmFPOT=JHQWhfUZZOVuJjYvV4Hz#OG0KD(Z zW{Pw#L@mDkq0@>Sq+Djq_fXhm;?H{aq#ZmF{VBYOEPd{KMCBdqjryN}rfvFVbga~p zEq@{p7OJv^#=_uYS)_YnU-&f0PZ~CFA_54EbnFA!J);WiW0tuS7`+8o)Azekdnx3i ze+JC2lmzr9w=#J@2etHWEPXn~NV6in%7q%C5DY)Z)6)Jr{~E4Rz2LmCo#g(F1P`hQ zXI_s$`HkDd0a-IPm)H1~%ll7b8(vZ&L~P=niHONW3S--XiZE5W5IXg?kR2;MLVdpulD|ZwksNgwNT5eAx!>mKcgC15;tn5=|Fe45LwU+jhyP3f3v9iWU zokJ+i4Lh;6BbDDFP0jiat!|138yT^sWIlbA?59WKBUSb{x(26004}{tCaJk)wY7S` zC5Y*=uCj6t2wG8*2x%6Mli6uFfB))R|DtjhQ|)1UPP(iHE8nTy7(5-{7OXRd9v$#v zRSa*>1g{v}+Y`RB+Wnp zVQfS+NZqCfvSupVGNk{i z8o5r}2Hl1kjh$(WupBvEvzkd}I)~nZnyCKa%9SJ|X!w=rDoB{cdfd$4dOc^ca&?!D zr;)d>DocVKe+rSn>Z`_b`q^r9UKH*Na$(W3XEeAW5m4)o(B#wWA=rHzos_|MGRutS z**2a+qtA&!@YzLGIaV4j#jkJl4)nGoE#yCQ*I1HolLG;spzLRly|Pq7p8v^sM_)$5F*ET|`tpuiWjl zsX0nI?|}@u>YDhcKQaB#0a`0o6%04luSY;0NQV&@chjP^Z2GCW_%Nj)!BK}K$|(z ztF=>GI6gf@$IqmQ!%mBivec6yw3Hgl^OImoqrLHYb`H)3{On4L(}n-taGT2eF%T@3 z$FqP5eq}n_bqva`^q3M?D4u{lo>2=;liGy3YtG$T#r2V#RS58$w$R2BH_WkeII!=d z*kiL^$8&mzfv10hz)qR+w#JStt$~Q5t9!~$jNpgQdc3&tWdn#$xrXSSJ`p1Ov1{fx z=ct2OHz%)0I}0Vhu33&Rhe>zRfW^n?4tVQiXAuE=e-ka^y1;0*1kCKhaTpS*78&e! z>h3<)BvU9jM4DYds=bbdD%HIxJQ)CpDAt`UqwjL?;IE((3zMx82#Jxn6gd$(oNmL+ z&9xc#D>99paNBo!ge>ua$x^o^7M5MP2FRetkVJQtx*V~dp3aCbRLwN%?Bx1ukY-s~ zkk<$=Da6_G&5`Sk`C}txYlm^_Y9&YOpgv|tV@o8R=5h4cHBiTUW1M9G@@Mqmf+NqH zR--ezy>9i-|j{r18k4ydE&EyFLD2 zYHj)P9j^I~Dq1QNf>8sk`)ewt-ysFlRcRNAe7C;Kg19X0CMWd_gY%s{2IL%Q0MQht zi02J-$O66BAr2lUK!Vnvd&cyMt<2O0Es^q2o$HDx7lMFHwNt+8?k<ypKw%`S;oo%1qPcaZ#Qht z;skKX?8}i9^izvtjh5fjon_cT-e7q#4L_${>nw-N`v-F;RHZE7N8VPWKO8k>9U%Ez z#ieUI)&X#6BKrF;Pk~H%p0G#VgIws@<7f?~J0Pm+9nTB1`M;q}OjgNY{?F9OzprOv zJpJbyfqoZkSr&$bw|BRoqheJ*lQn%BM9Yg8?&99b7=u;Z^0Y9kzHFuq!XMcRoXf$}!By0aZ-_)&-DhO!G;_SOP5WK%=+8VH}R zeru1!EME*8;##p=T)QpQ-JYw24UedR3+px=flWf7hl+b$ZeBt5&$-Qc9*jd~9a>}h zNC>cLd7Y~4$i>MD)=~D+@>IF0qa^OuFd`$qGAQVfgY>5&uJU>kn!!`=c!Q(N%J)hP z`2r%Tu4gIhu0-Rcw!TM&SMxOR{y1JBN0Q=&cuQD;?AUz*p`339P){76YaUYKj9O0&)$3t?s>SZXgt z#?IT%;l^)3vVVIq=p(swnTuUjMy^~s?SwvA+b&nSKwpkLsBfFf?T4f;tfezVweT){ zv2rRM+Whu9PY&q5{`YlpQ&n2l(B*M;#JAPV;lrg~GIRxVv|W>keoooKla0o*dq4i^ zsVENncA8E5vIFIP-O6w*IjB-XgMs!%<(hyQdP)$yYaU z_u`dxF48uqgY5Z?SI>G3`v&rGiYKa~8X%vom(eOQO57WrcA20Hycg=F4}}4o^n)t3 zugpr|+8bi?Wb;F(RXnuMBk*jEwTl^n+iOdcW93MQUp|FVHdCx36Xs%-^i!!@P!p~i z@|hjc{&PFDCt2HU8KP@UULlYn?c)fOS75UAd6IMlnRGP@ zwhW6#sC}3Uwk9d}i(I6m`G{@1F($1SvZ_dDE^?y8OZras%tcmp(A3;zcu=km z@APIQz3xo##mJp5v8>DEAUjpkT)9|`?tc2stV}8U5wTFAY^YdM^5D&bP zS;yzHa%A^RNRHfTAN+}sjS{;Ct&i2wK^$o~*jKkBziFpRk_{V!SiAEjK9V^Asr}$@ zbas&T?SEs4VUW=LW!$RIJ^n3nA& zE@x|jFbXu3);9d=)}e5(uLn0SiY?TtJVK5v@RaM2UTdRqiB*1hv@ZwUpXxTE^DAX| z2?vay&gEWP1`}LV#cd$dGObMwy*@i{AU~4Y;RzMet*3H&O51O-qLg+45~^T3{J=C; ziP?dMs~gE}(kg7)&+09@$);5gr^dlN?B{r{jJKIVVup*&~aHCG?GpSXcq9H2)m!G zn+a{NXuxwH1tYA}3S`Z+pg8RZ58#lQqoq#}M0rhlhsxPEJzm+o!Azu@%sR@LQ<1}7 zKAf$$RAN7ZAcZ^RU5}Y48|#7v9FrDMVOhK^dmAX-)14XP32jPPe~(o<>LUGTYQu*~ zs|t@q#82)qNQ1(K`veuggqb%)d)zSamvN zJiab1RqZRvutP$|$%D_31H>P?%ZyGY<1KGMR#Q~EPA(CORm!<`7!Kx=FlyF;gjp4SUc?6QjipSa+;b$Jw$d)f*pWs%C+3|t947LPG)SbFZM zaE7-(hM%J?F*RnE+z$=%Nwar=!3U~1i5Q(xTi)7>n*B#vLgm-qJUN^q4+J^uZ-(ji zjan+FA68n%C}=3X9iEPTkbF3bZ@j78YvtW#=#Fk$;NMb#;qq7)xmb0*QY?efsaq-T z1N(%G2d3oRZz@}^bWqRp#1L#JWq$3&QmUwi>09IoQRk{YNsI)eIM@ld! z;3Eu^(>t5X_4HFLW9APBtC_d}Yie@Sx6-u3L7pI7hbU(hm^6si&vFxgA%Emo*2dKN z+MH7Tq3I@0lNSu*Gl0;A$**lqwzj5YI|`E+(v}-x+>Gv z`}iCTgRO<}lA9;%8hJ9L_@I=sLa|%aI9_&sdVCS z#-$*M+)X%yr58}lnZh|O>__a68n!V7QhFr>xs8l$pTsQkB*`N^$#{AWj5}F{j4;a5 zD&eg17^5gSlfZ6B6Qf6oSJt*de5}{iF->*;|D0}}dsBIvgT5q)L`a6XEP3)M)3nJ)W!!BcMVflF0NOj(s^vl-$SSX&6gNbojFCx9>|#x4DHKyM1H&0m zGx|rD2hw!gd55!97Cz;4;5a%)$Q5Q!670!z8;SWgq*G=(d5t37K0@X8IhFpBjI(DM z*w*PWI5*S`3|YcOYU-AhmY1Bm@F+J~F0h;xDO=eP`Ir+#=0C#%-&E>Z!R`ZqkF5Dw zb{-+DT(c3_MXA#HYf%4#s-(Vg2a>3_vSg!31A5SkYaynF(G;8%){wF_5W!46w{pJD zLs4ix)re|h?P2JN_|7lPLRtJYbzTj8K^f9_C(P_pw*KU{a+=7wIMXY)JD6qq8f%H! zR5s?yg~V2ZJ%xOv>>!XzoT^jLL(#uRKWwASa0y=vgS~eN>nTqajU}s4)|Su3b%S$> z7F5qd1k;P!7%7BUM)@f0**K@{pf$uu&(D)%y5BajIfu$WVCu?Ex=^p_I2;{!4T!c= z8Sy1^1mx2RNXG*zX)hKp7S=bKM|(FZ>Y#gbyWGRp_NCQ|(MQD?eNvbn|jH(pF@ z6-Ypn6tqVvy86jmE1ZTr^5eTWXt;xYD&Im&mnRV;Djo$(l_tmpio=aTY0P+j=rjm@ zTc0IFWNEKmk2j=X6yUm88YSA2kh!8y3XMQssab}W?Q87Or|-)tG>wBqObyCe1- zxw50XnJ)XIFtoA;nm&1^oO>ivmI|HkTaGP;iB1(xJz2R7{*G0d@v?I`X!x_~f7W3L z6TI1EX=&WPX0X>HQ^E+(in81^EeE=CQ?6oH@WFGaLfU8$e*XFjB64QSG3`2;T&u zt}e-xYEH9=6cTk^@hYSzQIFJjaG)|fsZVZY`S7NhiO7y?AUnSJKa$QnFy{Mx;2%8UE;24g5+6Z~kPpJyXP7u?sZlYTQW`X*rIi*HYJ@fwRK;q4ulM)YKdy53`Mk&TJnv_{pTWvs z=$0)qA}lc&e^y3ydC(EWWVV8XY|-tVWZzjJ)FT~DZvJS#>qs?FIBZ;id^!Q7E>}^4 zTXow!Y^S(Uuxd!KuaZ*p^;FfKgY>q8dj4V=YXKq8RKeV)DvP8=VLk$)*qf13tlF4# zRoo)hkVBti!!;P_Bu3r?VT`(CB;!Li4aUoqQd<5tPL^4F))V~-irJf-I%9F+;uU-OI#A5^5ucCa9>!E$5 z%T(y>;61Yq>Q462c1CFM%FHPQ^O{Dhqn%xzE4reO2(;yn&+Y)%?Vh1FYp zf}ByHi_%zS8pC{6=*6kZ_uT+#Z>cN?*GGrS&n>`hkgko8_Ge)BFa9*#5RA>x@**f~ zT$3F>)HBE6e~ojpo8nzEvjt4;s%}~amBdz4o`Y4=aVb)$j-D|RUDLK+^NEZCCD}pB zQeU77V}BxB3L(Gg9>fF*FJ-YmwAzTR&>oUr-N;6bB8O)3afgI?SR$6@d0wg>T>>XeX}MW(OutaDd!YMRqou zoyB;eg4I1q8rN6LxxRisnJETvaf3gF$~6u4@uykO$H!9!!8`Iaf+efH(;{2P67w@w zNzhOyWR6V}q>`l~5I{xr=xfe%ot;p|7kWZJ*qXy52mg(Z*R-mkW;)TQp_B(#kbrfJ z4igF10&)uE#yV&Z+j*U|qMzx&i53Q}hB4iil?sU@!$}ff4E|DCHXjdRAMlWuZySNw-L|X`Dm~l=Q&^ z86S-WlR1pYJ}$n-MY?enQ38PKRg;t{+YKIKOA>#x;Xud9s>n9A7$}z@v+UZS_>i8w z9*W8T9}LH6CDU!Zny`#hA5PqEbA!aTW~e;p=!qdg4d^Yw>By^$Kc%=nXCk|qy7`!) z)lMqr{KWd=d?N|)NnO0E*Lpw-DPs(pHihx839F4X&J_AgEj_=i92)~GJfYj7L2>a2 zPJsO)ez%k=czWEi^bOBYm(q<@`mqP1)|yKV)#|{i980su6W?{zVm4{7eJSl04R@G~ zXF{@`IJ0Dy!2wB#0`_IG-o^_vLIFLx1%lE?R1Y+Z?z{5y*ptRw2@g`J}HKO zP12L=qb^WMVoFbp?d%@`%ohBfDhxkfGRvB|1~f4bYFu^16xmCqCLwHx>v7%T{rR)x zuNjGM8N3MO<|{9)Us4?59vKo=o2R}|sUNQUP+ns_brBXGS*Ul@lU3Oem5r0z3Liyi zPfi2DL^;X;E~&0RZ;(4EUH1FsBC z$_)dsi`C_gQ_q+Sx6J)k_C;})r_kt=TczMIs5^5G1Ei^&4T~Y6$v-U=k&e-^;%$m~Ou&FjIe}&xS_3;Ra}*H;nKRJ&!W+xLL58Y> z3)8%>JJxfai*1lvayto{jYTg}5aUEWtr`a>;i~+0(6GzyEijlZx^+0`lEAS9-SdG8 zr0b6Sa(87m$5aLgK7qdB2v?kV1mu_8RkoaWmXN1bm}sDGA0QKzr|U~Sxh;&@9tTG9 z+sXk0`@Jt+(y*&YJUHzWt=vYIB+P!zM@AgnW0Sd<04NNYgb7?1p!6rS#j-EXgm0ip zkk1t^S<1@oUH-nEY#zAs3^oGQhGNE&=;$b zWz+P8a!BUT>8M?nNR^r)ogXI_$&>&vGF&h2Cm+U|v&5xpqTU?uB(sGpF-RAWN69K! zZclmx?yr=)ve{g70;6Y#ppb=jRN*%|EQ5>tV|r1%_^boX3zl)bsc%yO2^1fsL`gLi z;W%|Ikl8@0cLxeDBV2Olh1tT9%b3GC2SiKt;PPM;y=`GG%WiUvL%!0NZVeUCfOg)8 zvyg4q1P*U0hmJ&W$MY+k0ul}!I5FJo0V299Y0Bf^f+^*IeeOpx(!yLVRmpQR`fH>6 ziE*-^uHj-`38~t&h-|L%6Pof7RhDs0({LWgFOa-HqC=rlya(I#qDW@7G?$i3ov})T zD96FFwNvtAq_}KsbA;}w%4-=xGPI#VQN>Wy^$U9JIHiCGNK$LgjMpK<#!VX9CYP6f zxDD9F5j}jWn!G1`hyk7}wP0ukZYo;L10iPLG!B`k9s(uR%8y9U$0txNU;hn_h3N&g zv29}e$mDi`j5k|PZHf+=;F1b|K^cSph{)GI;~>l?S{kP($WPIu5^;xE2Fm3R4G)S) zaSL!B`nB9`l$a|AlbkNK`|ik6qVf=5RuJV%=Vs0`l9O$7$t7QKzMIQxsejhYv5O4H zkg}Q}h^$(WL0$w-8Jxn!istd-n`v4N(q=;T2(A#q)9;;)SPy@!ymh( zsE0D(2D8uws~dtntLN^2C6CW~G|TW9smqc~oOUGUfKTQMhGJ+x-&MbhCcZkUY0 zkafBT6i!M{mdj0eezfAs$Mihq#mw!`8nV;mWhWzC^G}bGc~y*p|0$es`q+i=mAvXG z(%}^e;C)HqYc;+^}U>X`}UK^Zynm1Hrw?l>4 zEG_FBRtz6k0Q!E$2eNuTsya~%e&V;7-4E^axLA6hHs@g#XKa)iGmTVWZF0->Q${{! zBKbgF=_V+XUIQh!FEzvT@JURO5F;dsx^Srmx7RxQ+8`oFUpd~AmEd_@sYF`~t!&lY zikb!lCaW8l@;DVBmF#ZNM(hb(AgMKFwYuN2>IK2F@CE>?K)n{3gOfteC_iIEJ)@d7 zHz!5X_Q5i9^yJ#w=MffEt*B1YV=;>Mq%G)_)6;3W*BGI!N#Ff;+mwG>H7*cvots{ zUq(KGpuA&TXxl|0fG}$oN^HR}*?0`N6|FSj=C7fu}6%*(u-^29kX_n!)I80OFeuA zF1GA5sAb7ZphU}AEh#Bq;#?ea%5OViAQpez4Au~lG;^HvDKcD0?c&Dr_ln0U96x)2 zoNfbVGu1se*XylisdBd6B*a8kcY=%1G>On!6}Hkzw_aDAzCMg0tEJpo52x#`QvbZT z!oWZd9U`l%vJHPdqbd|^ZD1NWv~-teP+nGlhITBIhg}jABryO}VC`LCovVb~oFtbN z{0b3l(&OV`Qn`eJSkbfQ?l+XLGI*hM+K5QJ8OX@ldT>wKP{-_n9}wkuV+*{fs~-Ce z&KttTo_~O`GHwN8vZkKa6y%ftl;kSjU4 z()C9`FfKApmVX*eI7t$aS``Kk2kPN%wMM=fXw7yXZ3oAwhQi>rX`Hwz&7E0VN~EfL ziu8a54K}@h;un@6gKop5$0>8{o^DccKbD<;+x_Z>2=Jc zRVod_k15Ah*hZ*}J5Ya^sl^8tV;V-VM*d87D^(jub!a;Yc*N1@kzRxbm|qRM!LuH| zX6u3Shf9?U|9awm1pZoAFY2XLPs&!oA}&Nlgh{vi$>-2gt=21-q*y%bWvxf%uZ%s+Hl!nVv+5LK;UXLc_gt7?#hxHW7uSww#SB+ zKzh<0-O~kNIZlEl+gZM|-NH}BH7C&{Un6PgCa_P}wyTTC^U^JkdH&E{ehAmt>Qb#? zv<=yo))-Fa2!^8bdTakCsme(C7M4hL%@Y~0+6RRhnx38~VX9l(m}{ukq`{4o%G;xh zWnV5V$uX8Ach1`gmIY6YWaL?qIv$oF>GB@L66F)2?$RoY*GEndk}c)1d_Nw_t2Y%B zp*4v%;DuPXon+f^{DT`n4@Rac_A&{cofr#PNgbygR48{|33cU*>TvYex>iws(VSGj zYM+=QICVl%4)VgJWv)3E8JFBm3yR4^X|`46wAni=PtQOOY4SvAK9U*VbB!flSHb)& z#qsJmct2jxo-SvqnX{4Y1>+S{?S=Qi-WBD#ptCe@X|^#1^%~r>7yxymE$MVwlE2Te zDYYj;HivLHC=Q|WH{*TvI}0r$xWQon{E$7rY2aw-cct0#1je@;06=SV&;TgSkn z(Nk5)Wh!$1kO{M2znDFdabUxlAGM6*kz5ZGkmMcejU=O$+YZYEh2F|ap^MPte^54S zb%ck*A+x_n?>jawIsv|s@x6+*t0C9IoOU@q8t@EPcYt?vd$gQyf6ZE`!7@ScJh|@^WdPJm3c2}oI7Tco> zKpT9sogUYZOAFI<2ruqa*ea3VomJ7HNZnhY~4j2@;gTMm4b|x+v%O>wgd}y{I#@f;aw~j^(3{WzUinJTZ;2DA_%jLr7{g-T zA$%kR8+U^XkZbd&Zi|q|_spqMextDst2`@~Umf^8Z#iw46YfLusU08>(vz2AtY$V8 z>c>XO;6p4pNO#PIoa6mC%AP4whjy>xEJpe~Q)+(=J!QI5ww+R|CH&w+)x6}BAyCYd z8=Sju^|T+rdYnJ@R2C($cL4PEs>4i+~Y+{hBCzuAwR%M%PXxr4rMo#VgOx zD1KBOPGjQbRWJZ3p*waTmm8`7GqE=4jgVn~sQL;9oVdq|wWL1&-A4+`?ontY{ytUAMO!+ z;kH=isV~Q!k3B;|Y8wTnSBFZE-6qR$HX<96hs*N@Y>G7G+Gr|Tf6iO52X~CAuFAa9 z#S;vqo<`>5!FK^@PX`GZj6s#s2)*fo3Lb2%C(M^}7r<(Q%4~`=8E!}*e}7k! zLG!P2diH$TSqloUp9n?lwQ+2|(o@1wusr24wvh|1i&543sS9B;w@lce*0Wljs=-^e z_k16tTe?cmdC_UwxEMDtx!jPfqoQ1#gZub~?wKJODt}_8p4vi;&zugaOZ+P)Xi6{i zz?6aVK`ACYt#YO)t=&~x{>9i33LOe4aZfsd7+4VVU=M;mbl#vAv&!r#gdK;yV zhRc6OqDlU_fS`G$nr6I6F;evZUGIh;1nB!E~WR z)ywviqF=%EXx;WL?u9r9AMSD}&ndN#mfC%8{N4T_BXc>j7~cUsgU+GZx@yRo)$A{k zUM(`?5k}9aGt9->7tyfegwH=PX2>mDxGq zK2a~)jYd`c5%a}Sta~@7m#(eT<@9nRK?3W;1qbEi0h;&@97WvO3kh5*I=DO*$TwQ8JaSN4}z^TfwgvWu4`3`#AHra64aLc|X=!5h$ zt1bIl81b-wOAmDCuT+I^g)xhayJqq8%RtK^Kl9N2!}`4kc+DOrsqDpEBaL~{cBk8 z$=j!M)UExQ2k+q${N7@Hh|6jBMHs|Xl)9K$W)po1#R}bN&D*i~55fKwStsxijhbrl!LoE zYFb&}g2B1EWeyp9Z25+s;ed?8L*xi`aKKD)AUc#~4AL|<5_`_wR_l?ZAu;|J|6gQC z2pz)k^aY^y#Fy7bqr-kZmC&fOFqPz8taUl8d%{+#5C<_sVueUtp zS1<}Fq*axJ+mP!iL*YwTmA()*FFF;s6orV_svyan9C|=pF{m8>wX;~7T*3xR7z$vx zPOb=3ww;#vo<_Lzua{_tr)IU0^8uiyiVAJKsN!vipy;Gd^Z+DsLKhgQyS03+qUKLb zgS8J(X-@>qgh`*f9HNGL+88vq_z$$Lk<>9$`M+Zf!yy&N0r6xj?20;xvGUbiB!Ao_ zNN+(-E}plPM6jRM294%_9(&UjnOBI`Q75JtrbH=%4NF*XCzU6+S=}pD())xlczy*L zQJQ0Qw4)IvzIz@!z?N$-RGu{t>d9J-mK^m9k|leQG^hk)CMb{?yb5~?K33cT7ZAx0>z+kB#Pa~6#|D`!dCl;bkmR3+E7=i*C0uk( zcGZi{lg;ZARRJcd3X_N52&AOcmeq5ik8XO@W{wVWr>bHRcVj3o91|;lt7gChxE4Uf zJED{heMo-m!?=4?)gB63P6Ga^29!l?M#eOF=GIM4lYB7RTwvN=%_pppx*2Gu&C79P zNryI)D!E?OOj>SIgr0#YYubL zRzql(uh5I)c1ra>A&P+$oGzKu1CV)9K2RTYLD*yL1X--Q;4V<{c@tGtw!ieergG8G znSfPkZ;A0~tt)TZI14Zo2~2&I6pYfJHB4RYw!`?=YADG(2Ii0*2*ZKm##OagB5d;A zMT}|xK!oBhJ#-cFAx&kq71YpMR4{417b0B>B9-?LO79z^f}t~xX{RHyIclB(DF3cy za6?;t9M&0ClHFXg@(q-+Wf*IwD_!Y z7%AL14c-%-A*=p#=85lCr&YB{O6CM)M$5@sn83CMiD|$le-9d>r$5>Smo@b9_y8($ zhrs;p<*>7Gp3T?YW0n2nhx$c;e9%fGPM%jmAl{p0P)c$inC;-t&EL}ZK>h75SZ}=U zcB2*KZVLI@#Oo=ikjk0tW$z5hPnJ)A* zc?Fw}PWSRMNqba1Q@|Rtm&Nq%T}dyKY0h%tQ$F?Pb81O{KAW0-d9ZOi&c#7<9h25# zso7>KIjyW$sH{9-cA3iVDdA<2ZGUkOzeuHi6}K?Alx|CysP4YfUg4&<0i}4q)jj0V zyf&zCtAoro*^$Rt8!?4{1vbVCvk)t4syW=pi@dvCUaWS~QBLbd70BHA2=7!5M6G=6 zz*bFJ!s91G`C;!f9+}|gBWVh}wN*MI)9(q=;CUmS>s{HP^Ylz6hzjS|)hGEOrx^r! zkYH4~mu8OFel-_d3eh+=IGFgAEr=6RsPv$&X(BX_AI9C_G-Q9x90PhWTiL~cp!)$d$bdA~N)6s4NXu5X7d-xA@F z;Qp+0VjH$s@*Acd9Lh?PRCSEtV#YMK0z;STV-qBNm(vJ$*^%cgYEB8mB$l^MP4>^k zVn3}yXC@|@#Je7t^c@L6Kkmku%P59#dOoIv*KCcUi7%KI`tG7wp-W3JT78xZj2d_0f&-y5lZxVl1Hu9{&TKbLyBJW7j zl5%H2@lxfE{jnK{-S-J_IB}ZA{M;7O_4$+&RM3%;Z#8FG?Y8sAnH4qi(lJBU$E_2k`>UxCE67oD_cp2EB$Ot~nT zr8MvbUr%}B;2d+bTzkTg&K7*s_hRieGWh62hKcmbnJnx^b%XenOmIEl1_Ym` z@W>vFXVSUN*HKdDa~ijd>F?;gOmEQF8WmoVh+ijc;Qbe0r(lgAvTS;O@NHu3E-#*7)s`j>TQV~aL1+#hCO zG^h(xV=dbQ+oi);oShj(=Qor zUJG8>5{V=|6q7BNCi8vaBLETmj%Pa_M?GtnL%d8CgN}_gnY5FMm$v@H6OE_w?5eL> zSH-VU_c9~MPuK%QyCa9CMk|JWe;cm;oo|us`N^Pzp*mI1jzXPHzGDe}*0Q&z35H!9 zw4stNSJ?jA2K?)jT*D@FyczfW6ZNk#0O#ylHhu6i^UHm3{Q#Pj9~K%G`SUn~-X=Lv zZYMEl+9RL_jk=^;IU`l-UIGcLxEq3?nfJ!L?tRdt^Gtr_F}62fbfUNY!o4Tv{rz(lhv z^5J6wG%;kSNx&>1SX`K(%`K!sVo4)d3NrY5NB}P_R&5DxcV&rRd00;13%KRERYt6o z`vx#v#6u)^R~d2AcsSF<4d%J&iwvt)6q75payb1>=s+TlVpg+c5R-;<1PUQNc&jcx zH3?q{t7;x$m-kVO_Qzph(oGC9x8Qvu)w`5A=LGc z*xP`~JfED!o1ZAH)$xrpPS#X5vT16@Bg6(|%a=PKmrv^fp_!40(4#rUlG}j=u2S8o ze5^cnJs8-WR?8o)>adPhhi5?}BSV@!;km1s{934zw<%N}2Q=)emzhgiM#JpO{b~?( z`vohkuE&*=CCzxj_ZX;)Q|WpOHZXdx`n+#D0Z6B~`N14R#r)3D?GSYg(yl{@L1)w= z`WQCJjWtYC`yM1bG>!A$FFi#(1p3H~9H#eCn!=e{9HR&60O3snZ!NtGAcqcSImjNM zqh#ldR3QIdcV=z6k~hqo4AQ0-f~Gr4A*-~KhqI3H+<}A9u`&~dN}k^_VrAQ2SX8M? zyz$XC-rb`3-<{t4dHB77TD%90Z&ZmTG+V|S7?~deq{-g@I6PY)8*y^(Igf152bK#|>g$U!?2ND(ZwZZs z6#CBRW7U1WJH@i)S7j2;`h#CDV+G)HaRtfQ?^vj& zh+&HlgC=YI>yun2diysIH;d)9f7&o|rD435ejgHDX5l;kKl$!d2_D(7l|NtQvB-sW z0HM!dr(L$>1Gu>>c(_$f(6ap(wmLBo$3sp|vSbhoCBDl5-eKKcQHIeA$C;}o|RE~nb@{deV8Bt<>4FmX1rLZ2~%3`~$ zgT$k5@ko^$P|bg;sYq;2xJ3Ix2S1huH|LKSw9rZc3KOrg&+#JwK#3;Ivs>|QzrZ~< zsaPAluAa_!UzS$P=N?dHDexC1h|B4zX6f9RUmdf7(I+>-!}6W%`?AVq8QKrkkZT9p zueAfJp2`egFc&KNCETeh1i8w|uQv>p?t-ZDQIUXAzG>pF$+AmU;05OxptV#5WS4Bh z+~fAKl#eDDZkhI$8T}?8BgW?t7N)u@w|nSJlQA>c_Sy$PEAkgM@SUpRKMGAnjxJ}+ zC94>uMjNLltq%Z!Lu-KGFl8|Wl;Y#WIUcFikzKSn0xYU^WQyF9V6VeHK8AX+p3pOp z=+QseS? zjgc#Nlt>zUg^3z}!SFv^=k$G}3cZ&*&mw~s1KUF}RvL4%iW2L1E9Nl&s{R>oy;DuI zr>8LOoFfoNix^h6KZ!#+N98p&d~8si=?o`hTaHKjGCfoVA4PJLS4JP`xg6fI)A`e+ z+SDdiW5^1_pqcqxjmYUf4D@UeYpt~!$UetyFP3Hod_x6#CaHLz&Dl&%G4f!^r;CgX z8~`Xvxw#6Sr@Or+BZM7)F@$~23^$Tx#m}6T-&Fn6YyUt8Wz`+S;v7~SJ%!iWR7S9V zsCvGv>KkjZkhSOl4(c4Bu`4kcI!y03i3k z!zF$x&P;h6W;o zfgh?G$i6XFI3kO6sB%2Fy;MoL=WxwK-lLz^E}}?6vBBh&(xk?Q^29z>G;9#Q zK@}F{tF7ev=eerRQQjZuOj!&{esCJW@~vtM=hFjl`0C*nai;);x2mf8rk{alz8)H= zqERf8F$>ZO4FoYu2C}Bn)mX{hJ$%IWg<=+Pkt^l5uwzR^8aGUtK{DbwwEbKen_GW| zU|O4a;{1A$GUs0?-&sqIP z|H2>-^b?^WQ0pC)xYtG4j=MKD%P@n9U^r>?*bYb$m*8R6YWr{ z%PnQgj+q2{rk;k6+m^DB$ukTh;bS3)E-LQgnd-!uag74u)0czv7L#w}9YtDilfU0!IGkfMJrEH~8+oYJgG3!4D0` z8fo(SDN}AzPOVa^T5g!0g3+{t@fHl{wJ{_l$njv-m$H`cvZ!B4EOS9sNw{UUisKNY z6#NPo-&4sB%G-a2U4x>0Bwy*e#oWims>!x_iP-Ri|YHt)vztJpt zmLCHT*v$f7v|}$Nhj5ZkPcecC8lV8lPhtGIw>i+hr#os$+odpRb6{n7$><+NAxoI1$Cs6mbw-r5{TpfwUkWUy6oJTpszY0M@x>8VkXng5 zR%>N>pqyMMlzr8wCE)%_-7jd7JeSvnoe~}vCPAw>3NPvzu`y^MBvOOH%Y#8FiXQiqkxOEtV;6Gacb8Dz@ z=THeb?jH(S2A2p4%Vk*&}Fj|0+1Dcxmyu+8B00PBbfFxX$4KkM9NBiIyf?Qo7& zzL{pEX(M8y=*|p&&gAgnRD}mRHy0PwOM5xcwR|?4IMq3~jF_^8<_DsvGMQ*#I>C z3P7&mbjC~N#>nQ8IiZkaoQ2EH_&VHrrqOWOn>9_0VY1V9UTATJ1(4)zmOtAX9&yA2 ziZm7YRSWf8%ZSjV#~{w?hM7=TbK)kkAXv@?e4Xgd_G$zK6qMD|ieUKu4EE9BFdwJ?;F#7W{YYF7 zdH7g6Y$DPIYs#q6MuD{O=8@8SoK|kw)2hf=%8*LaW6(*>Xc&?2Fwl`)5)v7-%7~Zq z^*9()RbtED=Md$zq$0VY`hZwJ0l+CodA9l_*xN32ELCx$f@x6WQeKs0@dH%9b13WvFi#VY?+a0JvDGPK@fE>8U-Y!jro8DW)vG`H>s4E+M)ODNb zQ6Io`KQ3jw)&kAme$QIIHny6y@5UQef)P)&@%kw{CxB4dI+8jN zX>I6MLsIdG$j~DkC_2g2mIq4zx>K9u-#i4g4BKK9v&;e$dD+&gvdyDk z{8%)IoT?Q5rQM8d?QsM;Y)1&;iK=VY|13U>?;G*NkVqAWO&ZyTaQ<3i?q<@Qo%wOk zZAEIKtn*rXE^V8(aXJuj@qyav!YD02DN7FZges?eYoOn3WWA*J_=_bN&hXty$mkDj z7`b3I=V|Mc5(pRok?UK7!j>8EA%$@^d%ds6hRW%8Jkhr;`}b+hz;FL!+eadS zV$Y#Yhn(9FP47_GxF649vOZ(@A>HE)m#SZ(Z=H(BWdEVnrC%#%81@@4l%k!7Odz3B zE;J&3B14_%`(r^_y#>75C5UO)QiFr|HL3`IQwKJ45}_&8zTjb08E&5#%)RQ`Ns#L2knV5Vew3@DiJC%{LyJn zT~Kv{8-gj!yg`R+6zHkV#ZwhxTet{l{H4Or5~_nh`J6?ZdkZ8deF6|3+%{sR=U+!Uy0h*8=?=o9v|Hv;nP!McP%|Q&~9| z01uF4wFdja;lSW}O>|>Zv zbv?cXj60#8bidBhzg7W{wRJo0rcR7Zu!u`GM8Gj7jOO9pzG<>qwIiZ{Xo&n82Q?k2 z1UKE(0Y%lOntNpE*2bhJX|=^mDT6*1n1nS2aBlybZTC=R;|a_TlpPO1(@v^x%Z?@h zAngR}-qfE*>gv>*Sm&!cC}q(va3@nFy(P5&z3vH-CL=(iu3|Scbw?8!_zA%@$38C; z7AM`$p{CSn=nN((E<8*&TagMDl>_yU3OzMlf?94Q1A?ie;J&~5Ab#qo8-=Cn*4lwY z;oyXql`mI1En45gTv>90Ba=ok5c%~DZ&m-5BYZ`P(wFL_Wu0Sd%akK4{Bw@MSGuD< zAONB_su&h&y#Npf>J~$`PJ~GIrvsbM)xGvSRgJ}#!@bEnNb8YDX}6@fNW@9xT~cMh z@aYyFOKSmDH;V>vuFhd2Oq$moz&~y$^KMbD+>`f!e~lPTZoAA5Q}WXiUM=P2d&b%y zQ7j8oxFv-aE6I?WKyLL}cKh*2!=zoWnpt1trbqt#kgcp$nnLLxLCft>XR;ja={3cq zeej);CC`VL!_mqU8W4a_&>MKRO6AK88lFR4s!PD_Ns5t5pjp0IW~+>>fhuJpS=9vz z31prJIoxZ!W&=)~;vyB`GV}&9%a*BzRmN4}{l@ARIQk=~sX(>bTv63pQyUF2RMJBO zWS+&DC#~r&C3gZ~HGOqUOW9GD&0SR8lqj=T4`sf9(xd9S(5S^)sWx9;es~G#lD3>e zNM?9>ne;tu|K2`0jF(DT{TxiPYyRL@VeR8$PPLg5|TVPPe=s#Q6(~DIh5%*+4Z*D=#nqF+vIB%%uCU zFN`EfWn8AZfV1_#XqQCWpa*kAEDD{YifW&bCaqLx(A#3jVJjm1!EjI?wwtw)U)Mwu zIy33E1IXX>!VI}(H|PmdgT4Gri9D_gqw32xF3qtcRgf`d58xee5_I9As8X@`LqM1-x$WN99ar(X{DN2^Fj82wA>e3{Bky+V* zRP`z5ng)4huK_^) z@!%kyf=%QU;Q`!*+Da5Y^{lo=aQUZhhG%w1M%0c;lXXkcHV)~ohAQrWk|DmSlx+&F zE1_=^ahG>us=q&B*s3wWi{vJMIA&Z+sTpf{B(^i^1wD--q(d%Piq=!>qd2)MV@yPa z%R1$3imJzU0+YfebtpiHubSCTQw5}VQ4t!HyF%pDR8GwH>hQo%{G3rT=@cY3Kxr`} z8ltVVBlkw?hOpijVQiJF+e~@na;p5TOfxVwHIvP&QRSMdEP?P_;D4}+3JHUOVhN_y zq#qVkxkz`kllMQtK*_|bBxeSo&n{)_JN__Y<%&v=&%1!=o)wd<&56m7&C8)qnoBj7 zo--J19KE_^pbB;g35PtZsH%py3G$V(up=4u0YCh$QpLVcLN|@!5H%ygMh-#jT_;8u~h2&q$Vs$(-SzHzScgR2O|ERjI2tzDBqV z9*HvYv2N=iom6zv_~y~6s$52#mQskXY!mNm&0!(4mqD&kJ&gqIZDcaeI*(PleFZZb z>CcdzxGIw;e*Bmlk*jpM3~Bq!nFbiF{@RipD;_e0T|WoZ=58nNSE1N!1gGWgpsaF0#uo8;Pgu6xyLghjdS=? zahXzh=Ms&lc_fx($$$CRh#ZUDC%R14W@xCA46C4hIw<9#;s);6VD;;YK^Jkf<-}V} z+kYOz9rxlR`4fDKey7=b`2%cyu|JHADt?`0<`KR-*L07n%Uuvg;!{C@G=ByZZkJ(y zCr2^cd6jbAs|wUmCy<9{j^G3qriaR+v%u-|eb9C%J*t9uZ#Pn3<#~F7kNmq3 zs!PoVH{pdCJ40A;mGZ!7x2|>K8Tw_j!3PGo4L3#G3&uy>Km!0z8Lv2* zIUg{*iiiWN;f*k2;(}-(!C^zQYbDMP!QS2a(aF%2B^;v&X){EnVYPw($V3$?!?cxQ zM{&N=u$D6vwT)725x#Eu*TELy3YGsUMy#5c!@-dJnalFW5WPvevbGguk+KQ+ULDVrk5$p) z@ck_4zG^~KRGyKKG&T1T%SJ<$H_dBBCM{ZEik=(<=~3DGUYL>s5pEovsS&c&0cRYb zhjt=G%+*G`<{89oH-*z*dIr7&vf$g;mNm6WaHI}8896@Xfk!mKZAf`nWo*8@RuWO4 zwa=~&nSVXPh(eQ0h!C@81QUr*nelahm_t=|Q){4_+LefOjq-aARIR4J1Md8%(GIzw z?tiZ8wl?aFw$n7^sbwv@mJAmrFjz|Hdy%GEYi1mty2E&`S4 ze!?+}u(v5XST{Xbk|P1c8s!T5B@Tf7GmC#c`WY}iD-8v_@-@=PR^u?OeQ(6#;VLqt z^JP^d2{ywidGz#A>8OTetB~!w?U~h4$ZJ0|a;mZ(!L`Zg$KIZDJu*$VqD@zI=1SvK zhMWpWq{2xfMJoQtDjQO6MTT7i_oHsY*aG#qs^awzz+D{055IqlEIZwhqY-}yBtSQ9 zln1kpSSBD<8`j|sn<`V$L$`*>LXY69kM%K5w3U;$HqiVl{4aJ$RS?ff~X1;38h zi`t2OYP5>$3a>1Kv(Q@G;^bD<)9b5p7$((I6M=As9}3Jcp~{b)39|eY-;JxtHQQv; zIQ~Dc@DYu;K}~8!<*@0FKIv*8e~#q2(-oe8w{7yoFNQ=vh5c znNzCCi@I!bDQ1_%mNW|FKvTmcm5&45nAZju${!n<$_*7SQ>%leC>3$Pwu=!fwdz2j zyT|a|yk+n<8Rp%vT0%{7ay!p`T7p&WI>!o@9AwHDDq!>P zscgEfN?yEP&WO{R`+8(sI!EH^ME3j{l2aC`SkICV;UzJ+*2MoPtf47?N-DRMz>CtF zv_Whme-J~(hTOHlm7OTA_@o9eCGt3yxr zNJSkKc0I`(&z0K$E)#w2fL_!=0{(U8ayOUNgWF`Si@bhicyNihE5cW)OVYF-`wKY( zfb$muxS#brZv>jD3YkBy2<=2+0xmXmt8dh`z<`n%OT)L$acao-lBwS^N$;e79eTD97FTbf9(&H)yIjlX@^a`edcNq&_N#Cb|>13-!R^XGmuq7>_L!FF9Jdk1e}$zF&dyMYDG3)Mr-;060GI1s&k?1 zcB?E3F|twiV_lk^oo#=!$0U<;jATa3s3522a8k@AV|ujht)@g>DG$ng!jk9x!w&fKj9&i(S`a^ z()JEVuUD1mP-u}oWss&NU5NHXdvKLSwTLw%)r+dgfiiq&i^!IHF)*YW>WZc1d4nop zSUp$%1f@AKR=KLeH$v**S*rIM>fWcvHIeSBc=9fFecKAR7c$e@MBPwV(i-Lzi+@lw zZYz|Fxp&Nj=0-q*Bh$m>bqttWt;aXQB62j9Q_1k;t5naGeFWdJp74RFV+CRIle#H7 zM$=5v0CQ^*z31vF51(KS^-|uT`RSYiW13TWZ|uFf%_@q7t7JEjl~kN1&Oh45!Q`ee zco3ZGfgcpJZo4xD4nTdR=gMKYO|^+_09UzOKap0^HJPV`Dpz$47dwxowUQQIaL&9e zfcaX_YQW7G)YMWBrg6^|G^y_pvNA1zHHO=ON$D!^90Ht7*t)U)GT|q<{fWm&l$W}t zv-YL0NeWfy*ToiWzSvil;aRH zRK>7h$T)X^OjoX63?UroN@P~8;S7Zg=~10gj3Ri{*RIlneI(&6I6a`}m&4U!amdz- zMk=}jMK?eE-5E|oc5#0>s0CVmq+Uf1;ToI`B*ONTzDJ>;IyieE83>Qs4~4TOez%p3+!_8D~k|E9^32zLBRrj?5sSC)SRdOX1aMrKAngGkS{cXK;EUCs)2p zO(fXh0=v)BGb+PAU7f_M8gsc%LBSs7#oDi~B`fI3<>l5wx@bhnG_WAm{&A*A@nOEJUI!kcO>h>-4@sZljdFpYyMVun7NXp z2H01M1y2t(6R|oOq}^1V{}R;A{>ddqmb?u_q68yX`fh;%r6EK&`*<^pM6UkO>2JIIUa*=2egxmyA4FR>eqD_4`_j?-Q6` zdp&cY#BTs5)Jg~gya=B|dQo+`{5hsxfUdQWf?Q}LT#t(6meF2Imiz)Pd+Vl#6jaEp zgJs|fl~F4INUsMPuURJTT?P#DGS>v^mRaFF%BflgBhzDo@xy1elDH3? zG+-JFC#z3dymV{8G|M(RJ#ydDbmF`YqC%A3dVUyY_NRex^8%&W$0@}u9a{kWVoMct1(u8dLvNh43!>Ry-eDNVAvrr(hz_PC#WX0>J9JT5y8w3GkGPs)Oddznv;9 z0KcjIK%|=WmS=sCyjj|+Jm2uV3?d(byw)|@rv+m1a-}I>I zAT?Bw?A3VaVAFh*z%43Zte2jwioRf0-tErnM2~Hao&odQeud>xdZmgiYHHY}ayj^O zMYLpjc8QHrPM{{5U~W0IOk#-?ac~1C>f- zSBK~K0+x$A1S=N4Xtsmw&a#jvKV7FscHTySumPbB>{Zrs4 zxRvyN}c_c*7bjZ5T zSk!_T8!BvQGpVei*{x%M)2TJ)44E(;Uby=tNMEUI1C>Y^F8xWiG+z>?95XAwlkqv!kt%gbs=SZ z_@Smh0HJYR3#lC$ovXbr^hoeKM!N2s006T4$oWNxs(KL_obH4gn9dM**TX<;1}O%R z97WIC-e-s^G(V6N%hl0+!w*c!lreByDyGVmJ#oZa-9{Va)0Bc za0=&a{hR1;Y5jAwTZ(^(%+uOI=~g|n99net2jZuqKtnLcq1pUMSV?vl?S*eXCP}J4 zAolp-v~|MjRRnFG9?0ET%Q+C!q+W2U&R5ac>2f$kPDH`X2DsrM6q;y=*M-h1$4MiA z1`_D2s&t82dU1C|PlgE>0--Bk6voSHWg;y96Rz~UFjQ3rsV&8qpoJ^j;Bn`iaXcPIXE3;DVI1Ft+U)Os1n!rbRNBN^K?1XwzP0*^S*fLeuLZoeF zj(;aAF|i*@Cp15gSsr*`6Jv({Pg)m+NQYfO7TdUr?DgWi@w&$*E!yzN&>MW*@4PFOd>Y^8oLx9tCrD9(+wHsTUE^!k>0adtLVKwLZ zNb7S(F&C40on==IBU#EkV%udctYEL&=_)<7v35Vw1HI=rS65qp^5$m_au?m@VrQ0# zk{OON6#O^ewNQt#Z%(YdBJf_FyCzcQ6>`MLKvwS19bF)x0(`qFYKby&^)ZfcXLVAg zxvoVN$s;$ri^d}XU&)v#b$&qOo1t7e50^lIl&o&YvBLcv#HE+I>m^B`5Qc+%X(#SS z3V2UA{c;oOd@Y&<>`}#zT)ugzVez9u8TD$a>Zz*Iq{D>9!#v-r&ZH@mL3W|H(~g2m zh16O)_Dj&G(Q$Hek>Np1$9j{FQ7{0AIlQGyHwJE?%I8puuAIy%f=&7ArVnJ689y*& zO9c$o$!4kYv%L*;rgFQO*;kVM5zL?KDPee@@x%ZxPW}bOw&YT%} zPiJ?0*@^Ky`UDb1CE>xwk7Zs8`q}Es-mjRMyPe^YVVju&I#b^Ix+w)&IaNpJN%!ZOhfZtTj-k-q8t zvQOnY<*Dmf_uF36BIl3cY25gq8D$=0Q=xsu-E~S&hCFzLi_7)a#rwZ#BR8o)j@JPzCa6da8T%2x)zuqD-@FW0 z^kdeH32{Z*&PgBvcH3je;@rl+s$+v&*wSiJ1Pob6asUA38HteoMddD7qOtrSMdFMby)JZHnQZ? zR7o8|8m{J4BfyL-&ntjQ0cqa)EX{!Id_sAShglD=ZlY`?bLQW4;#yPT-A9R9x&J9F z$%I=z3!-gvplKBHiA=$pct^#^#-9x8q*{5Ck2%L7uYZlPd|DL@2F;zOe3QqFCTk<@ zL^r?x3}aQN5D}e`9FXg}Yv*B?lIgMO=cnIu%np4K4bY%MVb`f}?A`|7I?P&RfpuHqDXFV1af~5I* z`NsEU1<)N=GQ~M_#c_&BC?|BMlTwWIq!_%$P%`~VRN`jkD;Z#br;&s&LOf=^%_DRF z=6aH1ObLH!x^NncXUM0wtwA|G-ADPA#;oWniulRX)xguY2BHri>140TwVC-Uno@tA z?7@tbwx#Npy|?^=+o3t?KsiMDJl2egLvQKa|0h(?C6*t!an4Jon^+|qL=KsxT^JKj~jNT;& zXdPe@r){HAp7s|jRj??5?jsst*m6t06{}j<&`Kpb%Pd8 zJeIPn_ECIwpDIX_BX6OnpC*$tc95rL>g0pT-#VJJ;P|9oFb!3!JgXJxt!Q>ec}SSeks3)s!USRCSW>^@2{yaB@ zxx>Cj%y^`^{FZBS4F5d_9UcKCp|wB)`kqn;Dr>LD4r(Bgz-sYCS+S1MeEv6c;CdFy zSg@AaO*mr~$&Mo~Km7^#Lnj;pTvNoL%o|H?#u{r*v8OAKfLh?DC6k#6WnsRs^P|&HNFO`tBC8)OoXmrV`SOO~Ez66EHetzl> zD%DpN4Ivm-)RJtB09EnRJ=*d6P>a2f`eqv!K8;< z$=9=h$YGjx4W;=!x}Q>43g1HtuIoCQH00?# zGV8N6uQd4Dmx&(|jFX}FqaUf3BZf34kBD7JZ)5rNIgsGbLN7cszq-_E41d!VLKsA} zjm&lMc5iSR4MJTo7TCfKS*MNkHRaJUnbe^81HJ-XJd+ku7g_Sj)v;BzNWG;rvLhX* zfhy1;RlY=86=EvgDqn+d&LgNtc$g-XwIzo%Sv=F!;W~AR0s!M!q?%9oa;5NnpM&S- zjMkxNPU*gf_-$0iP<&j+7&(<-rpnek%uiQk?;=(1u-@G^nK5=t0`=uSy?yq!!E2mR zIYV@X&927Ng~jsHzoz!SVc9P$N1QYpi*QdrfI{w9k?BUIY`c8;I!Ly)i|i4Q)szn=gQdG3WzKwkeHD0gCC%j$btF&)4wUVnB##Uq zgT!B_y0tW1&jbg)fl>Y2+8SYT+yT7QNI%}nGL>-@SCuz=p|WfCBg*NTZ#}KIynCbr zG|ybZ;ocip1oJR@<3t2)(t3@xLaOSTK9|cux7wwq%$M-{wNA@@?4eE3AdC(i+{sYj%fe=0~hiWSOoyga#|l@+>TbLXZa+U zw7>qcz92LZoMDsw9Qmy>>KqWEPg<{^lcV zZ<(oD>KZa0OB1%rycn&F(U4v?nP@@Wg**DYvx3o)($`~ZdByEy zUhlLpHF!-DG!|L4Ls}3}m#12cnR47UAYOkLr zN|UiKQL7wbLrKog1z&GaXB0;?5Ql(eER<=Dz&5rF?VyxDRkBv$KhGeO(fA~tqeA<* z`wH!79MyU?SGOHlr$Wu;tLeTXDb-bV-qy#Lb{=5`^K}~Zo{>0OCVMvA&K(c0EbmD) zoQ*l0l4heWc{9K@(S z0l7wMv)p?g`0|yx(LHwy(732B={Xr~*mkAp_%ZgpjHz)^(57I#?wyirlqcm&N&;B% z6sKd+ddo^)sbVzfTRL54RmX+}tN`ko517jFAMo4e2usn67ShZ;tem163uVALHG5%*@Zqw#Yb@T!h@(8&eEF%MQksa_&Wyd%-wMZ8pk+YvsId0y`j` zhs_@gPV7ED`$swQ-x!-V2}5wA;C}TW(g0g zSS@t1pq4Z&!Ff3K55}~g-oAW~vNcrT%`h>XC7qB0p1N5%JA)?fWcg_u!=ax>|doJj4XQwC8(qi zn?76}@wi7wT8^fgQF$d|wS$GO*#urQtMQ;*u&wvJ#J zTP`C%0l%u~^2|IYGA|C(lrtjHo7 z@G!-B&}i=*Vimyver-i7ng0j$&@$VaD$AAuS@HT@z+j!_GG{INzFJrJ+^D?ub=qm7 zwDbT3o32QN9kW1ilI8j3g+58%n3B-ESy6YBMj zgBTG^ICTfHiEo0L+OJA_f*@o_{1z7`3}JtqWzK0zqK2zJlW6III|P4PoW#b(P*&k< z%DL<6%iZMqGQ@f3MxK9PUb$|PWkbxPZ6&tdm!V^qtvTAF!}6ilP)gTgdH4XJPM5A8 zC|kgfQU(`^&E+d*lN5QsqM3CE<(Q9hKVwWwCUYFWdMif2?0GI)xEDr$a|S=s>dTjps_^p0S*XsFml-4lsXxo;!VmU^^2~0ejC*hkAi#JuyWa;~==>>-=8PcjF+#&KU z`fvqlk5us$Bt| z4!A?&^~0^wzrvE;+{e?FtMUN^k1`Y3#&D|(rdqlQHb(+dBV`#cfBKo^s-Kua zIocO-{*Jg3Y%Zg(Y%|Ovo%LH?dc9y~AW0PyC3y+VCjM8S4$Ij_Nk0!Z?+Z$b=^h!0 zGIOMvgCQa_@Q{<=)+_IPX&+~Gu;E`^o82l`Z{6E#vQDL_#sHnTysfPPETU1z$c(e# z?Zw8^5jIA&A3a;6oB{cJ6ufM&DmA4VO+V2|e>HpsHqZXn=)6KV^*A^Y)3~JuGBj16 z?8zEoEl@uyfo+wTOmsyT4xW)IR^~Fk$#zLbC(|K&A^^w0dc;B21z?3=D2I~vMMpT6 z{3go0P=&k8k9~+U^y-LnI`DZszl$ojH|}3#2*^_u$AC(b#NQdAth&dl%U%&}xMpE) zGM-3_%D9z2L)w?}GIm`Jp)H4yz^~Nha(^b4W1;r{uDF2dwNG+q`eqH5{lpe^86u0^ zYtG;Ls#uaZ_5R)6?=fAE>x`B8x@Xa6%CiRc!J#V-K}MyzK6QAwhp!kQjx~{Icl>A0 zifZEk7jR;C3e2VMaH|Kq8EGeHzB2u6hLjEgX>uGy42#<77-}_!AKi>Bq_iS4o6UG@ zEsP&siWX^t;-Ub9ABvv4Mh31y2Ue=`j5=08sPrhEDfgZ#O*Qi30>}_>epMCeMlS^<8gIlEUH%A@b&#m-D1AtU=8HcKL8Y5tGHeb) zQn}D2+qMC2z-~_hkC?>jgd2%HJLpcVyjvxF-j}QQ>m2gn1Ss(dRX!f0A0g}MK9dBE zy9iUsEk5{A#o}bo8QiO~xxm&r-F)SkDvr~6E_O7lVgweUVjiO{-zK*@VI{`jKyf*X zrL*G0JH+-e*Zl~QlFbwG0Y6{EtzJ(>;#=uH<|lQr_B}~KC^36?c`7zXnwFS3^8E{3 z+viCZ_4V(u0L6*}qU*FT_Ej>a7XP zh1zjywhJjJQTdO^h(=h*Z*;K=N{ST8w&WvGW~HbaaRp~rVi?79j78~e>PL7W>Cf$D z@m|2~+ljoy*`|o`236b_1hJ2n*L2~K)CXDQb8(qSEY6rypU?cm!xu*XiG3QUit0(i z`&bd%i#TqVR7pC%LNG%%cHpb(GuHU8M0YK$rQ|*Zl&l>Aq@PKq(t_@&xSf8ZGA9A{ zJ3wbVB`Qmn?jZD}j*-llKi&qo$MnDAK;puUpscyoj0cj+;U2CjvTrl9cdUfF{i?iU zWKxJ_m7bsDf_Xw{SzkLwFB!o?=yq&exF7`~dnWx@O8| zTUt;vRtuywGbA6^XE4)g*d}!z;1P64NPt%OTY(mivAQ@%0P>t$PX_kSvfyR9Ye~yW zaSo$dR=ym=MrzWjm# z(5<&CL?LF8XD$#OnV_3m|8tA!X;PaY!7b(Y$gnM}(Dky2(I77(tLLHL7bc(~A57$` zk|P?Yhx;-?=7QRCzJpIkKpjJ6jBejZ7L40in^cVBMDqJ#5>_#s6@4XBpPbsQybCa^ zIb-1-ju}j%MH9V}rbfdun|OY+5~oP;Ib`lYGm~pwwK0Q^YEtwiP~U4qS`G#*zb^v` zjn%<;@*Ml)>#_|xMkYPQBn;DGn#L1A%rzXH04F`2jCb=a^20O&AS>VG{g> z&6-K?amk}UVvxJ)bdUKe!vQ*!)RV=N8UG`CU+kLhc--$%s~;rb$YZ6MXvrfL05H@v z8S!=3l`jgd#d;^*l#08)0*0J1NUG}GnHN3-Eb6FICpRsa0NR(2rCn^XFd%4mt# zXZLTa(p6wpN`jo+0t>jg8HptkbCA4x23z*S%jnL$LLHULnT}UOwiGRNACejukgGD? zpyBrZG&eDX)Fo(Aw3|M7kS|*lb27OF;P$2pO+t%GpOS{3;6Z)=h0l#5m$!y}$8>%Z zw6V25v$?Ah;DW?HCEt9`90&A~;HwEhPxvd===1%oTivDHbWnRUCJQ;PBrRL=L8U4n zAxSuk31!&VN#H#O#Exh$`BS?E52bLcmxo%TyeY>nH!0?`r7|*!L(%uIkII?KKTC$< zC_8${x|T@9&pN}llX5>M>vu9s|El76IkhJ)r0h*~lFb8RyA>MqIi{V_*ZMnm}?Q#mb+ zA?c~|#w9ZsuP@Zt^2W^jW{s2|x1<%z-No0C%H#~+Y2`a#T){ZE@-*?$~R%H&uKw#k)$l(o@+W_p2b|SQu>L&1E zER;STZg}Tu)b$@#p|@CYU+&cgq#mW^j(noi=IkWch|>H=i?z84cLryZG|h?*GO`q zFM@0Y66DX5+`y$m(-E!k0J-M$)lqUDEik zZ{XjgAoZ5m|9ITmpBeSDDtEeU9cR^h$R#!9HVVYaM?+d{E?-fNTl(o<5^j7u?;J@V%opCM4Y~Vm z4>S1>8m+fc78rdKT~$@a2;xEkUGvY@gxDW}|95}J$o)cBFd0`5JF@j>B#@*BC#aCI z3}4K(R318;W{B%W9!T%{7DSly8%yFkpW9fSZbJf#;}9oDGih)WP`L3Mf>2vUI02x8 z#CozbCk%5+kByo3Mb)#6*MKd>1+f|s;DKku9)TMsSWO25R`Vix!cYoN9_0#kQH|HA7OAg z2au40u0~;5rp&1ZHqB-MI~A5d?Q#jx-;XBM>kmeDRl%BKqsoZf(MgW<_npqxUWoqM z(^01)3-;g&>-^ZX-<45M^*9!W8}WaWqIY%L8ephBCOTyx`R%A zXbo=K8p}wsu3?!eR-%W&MzXH~Hyx;QUHFp~wT!;$#hR-$l8*-gFyHHbRSOB=$*qpQ zm{irhsuT3)HQg-rHf3m_5soXD=Zkswdb+p$10cApqcWRJyytU~EE|Apc$1{nZph3| zox${8GamnUS-J6DdZyGQq9?QKaqBH-eIfjy0Of0_Ac%dUt!^vb8NRhj8P07T?Jf7$ zt6X`yGzk#XLiUqou1>ZTmFbnGYjE;k=3p8xN2cArT6{1_MO(^qL$VxtN5=_?$gzS< zG?`qOt@mTViXXYX%nI;2Y_iwWM69EXDXhF#V2idoGP4iL^Ub$l%&$j%nb=t8Vok?5 zI9Dw#1u^mTC03AHTi*K`(eZZ0MnCcz(-YGDK%Xegluv)hR_2dDYSybrdsd-j9&{qJ zqt0%fDu4XJwKtS=yxul=OxFCvn%DUe21CME3!N7c&(KQh;rwMBmgD#HDwk5Y)%VJw z%Yaa-VX1C%7F4m}*pig$diSEUoc_?Pkj!UHyPVC(0x_blkX~5Y=9{SFE>-fN)Ej_} z&U-h_Fg`CUK!iBzep#QwesLW^jOx^-ubhBi;BpyH_yefY* zv@q142`LKUi_p)#bO8&Pp2_Qt&<(B5*5p>tyoXWgq`cE)%%HRYno{~0!b!^cFYogz zxu`s;PGcnL6w`1_1=`F19`dDt;UN!*5wmGW7^x8dOBD7@BCbKE~dZ0jkjCI570 zv|$xX)hsk#$ND?UkmWpL+ApBSMV-{eVdZ?8egRHN5A-SW;dba`bro$cA6b~zD|Dnp z&Kyeb_$xWk1yIC`sPy?yt+=Z#;Pyf*qc7-dlE>eIwt5VwRn*#GdH&sE776vxr^|IY`$ZN*?D>t5FM zbKHT^ag7D9-09H1@IL%Z8oRRf-U_*o5aD{9zzi(`Tgij3`f?=S&8X_DFo_i-Fg8;U zn7R^dAPvq_+yoITPeSfJ^}%hw-V-cHf=t_L0Dl$G@*?Y>2SADu0W}pr~ z!mV+fql=V{ zqOS0cb#qa&PK6ec3ZD)eryPWSq6HfV;J+<>hIeY;%nZUL*-jkrz11zN`{0sn-3Ozt z@tGOsEizjhFDIAC&s&Hb{6u*qpr0*NS)ey3lTp#YM_!YL&T!lvQis3;<<@6%?c>}r@R8bxEi6+Q)-FWFxEA*y$1N@k)5A(9;Zi@2_*l~lZ@P}r~)ens~CL7z5Jy=m&Z&9tG zSMf$&ihrf-NBIGn?t}{{*Ky}EIC;#EruNnR3}N z!jnNRvSI%n$oQ7%?eBiya@UKmv$QwEKH4B@4Hk;l!T#C*DADC!?x`Z(-ZN*U(XOxv zAtM0VQ{_G^e`JHz=l;Pr{Eg~;MCJV*u=38Dyf^%7yRukird~ z-e|6o}(Klkgc54#2Fmdwl>anj}_gWOS=D*LDS za=|-7%Ea|nqw<#H#_;SEPmpnx` zbmhOpWU&yz$ZRLRi>4FAW@kMk1`_^&Pbs5y39#+Gvgp$EjE_P{*~K_BDK&J~QUdrA zacH|-O`d!s&27{v(n4kj;J~{I|)7V%=M`>d=NRD2|Yxv_qmbfju z!}5AB3@+_tQ`p4yOq5H{R$d@RpLDm_6EP-Cd_Lh5POG2TWJXyt`%p5j!@W5@O*7=p zD$&wc%RKA?XU0&J&Ax?P#JR@3H7kIYpl-6y04zY)jsr!|G3y_yG z1vZn?RtI&)vi`zh>cZe!*{oI@L>#Z!QOd(PeAx}~&~&r^|`y2>AcgOnZu z4=Untg-U0GIptGCO#tfJCz57T#&h0x@SNo;f3;5iAt+l`L55mzrat`<)NadS$=6rJ z$E9Fqa~orhjTF6Ks*8L%lAuK;R;e`#WoC!kA$z}P;iHdCbyM0z3L6I5}U-qt=u zWH4hAGT?21e21Gd=zLvgtDuiu{Ty{_@jppfpW-Wm5ay)EoZl}pHkcf z(_Vanr6Sn=Q#&gq7qdwoS0$NxXTFat_d}$I)nyJJQej>0DbhtAT+hhK5$S`4aAsiH z?BisNK4nll0ufqSWM;64uKBntv`r1FiW>6xYZ!i-`JUu!9M!t02`<6#4#vH_Fv1jU zCFedxTQ+cR=1#IXy9`DPFmH25OuY#9Gn`&L-1z_4}u!YtMsEPa4BBaU~cQ1IEN)>JerXaUeYoni9+=F)ByCd!uXfcWG$ zl|DMYJzV<_C+nh*8&%E@SVHa`JfMP_@{TShKRhw36vNFKuDtYod96Q^(QcO(n`G*k z*9WKXUh_pI<#QCVmrAWBZ8xR)<==4-mp)rye+BW}m-gO!WcCO+!-+ab;`amjey)ls z8GaZOO{(J|2u?{KS<;J_yP%5JNTYmc)hFGty`LU5DeI}q-TK7pG`s;Sw^b@c+V@nB zi%~nvV{}Z<)ed?K;&Y|_jlYvKWdEB?%e8?R?McD9oX^;${3GOVUG;Zfa)1F=G}Y-V zwJ;||r!+QnBU}}oATrBZYD_J3%9QrL6l#H$qNXf)1?X`I#d zOG9JiF3ywG&LIYJlF~RFxK4?OL6^>!mLKtsmQBFI%PP>9n|M#jp2r#P3{}zrQd#_@ zF)-aFMT?KPAW^oi#;Lqw1kG56_Zny}P3RTFRjzbA&GO*@LW)()gJvet>6}6G-5AjB zv~tiLT*bB$I3?m=p|fJkRcRCX`Lr)nx_;uL^qUGl0X+;?S(kOH3vzpD`0Ox1(#{KM&+Dj@nlr?ir zl_^v!VO1hKWU}%V>%`I-vZf14_~>U0wpW?X0m&Z^j+IO#FPf57ocwM8kl=Wjy?I5- z0JoQoSAlEJ>`#(d3G`)_@*f5#qICgM%d65RndfgU1w}YNF;}*AxgEqB*c!t60yR)w zcUuNv=)S<^^?7YudnsEDGToyLl+Hp}hJ+V4k>dM(x?-?xxK6xifvqhcC0VV|xX)DS zQh6>Pvh?Vdy*Q#uYXdZnK}O?ji>wUr0={_I0_dAID=jgcZx#K)2VHP!{^LB7#bx#MKcyTO){Cju(hX z?JIBe^F_(_i}aIdS5xO3`FF7@UQ;{!!=&4GtiUHDSU7?YOZA@LQ^qX(s$v}urXRyY zxZfC{WXh9ccXO)3r6NtCsJIFv3yY-c8(9?)nsPfEC3a|hU<8usd{C!Kr^vuR5#ANL zZueWiV6gV9@<-r)RDB>yGnZ(9e+jd}loYC9eMt-O4yP&5i5S>x0#>2c`ke0LtXpOV z)Hi1~p%5~*x9DElYgKd&3q>uLA$ci0qWCy`#hu5_RWu#d_ckJ6Q8HZODjm_`v*H?3 zV-El_rYm@|PuU-osICIA=e%i=l)*?K6)O^T+@-m^*VlBg_@%8WGIzv5oFnqMZ2J>b zw|?exOSu}e`VqGfCWxl=LB*rOH(5+|{*E(Ax zQfw4&QTdA;l!#DcPOrgt?;a1TELr~$`)d(aQX;sDWOV1K2*G9@PUJjBF6!mo11SqHFxuqNJzx@+=(D@L*u5W2lwY~V z%l|f8qdLubH;zNeDS7WooYQEXRxHmSF}*V6e$X>K4TRsVJk%oA!JI0}aY?R@20g!< z%4+_x$?7(`Cwt}lOs0IiavcX5iW;HB89n4~k(nvp9i~qBE3XFd1}3qr8CE!swuMU*PU;=Kl7TL`CK#2Z4MA%1mjNNqs5+k<(e z0KA%uQeRM>M^P{T6x1mHWl1)%QWI7FDA{q#49X8Zh)%rp4)fN&0J_ktlozd@=kv&q zlS~SNv*#fxJ-O*mDrA>0_L)A}I}(e0t1k$Dx`xk1HdQzQTqtS@5*NAjmc&x|buVTp zUPbmvgUP-O&6@rz@2_+)vAq;G@!3JR{H{b%VKZHH^m|g0li@l$$nqPIvrJX70jS_4 zG6A$RviCWkSBC$DiU&TessSiTBtIO!KEF?9Ks>z}!F{oQsSR7=w&E^Yaw9{yH%>a=5t`*OFKvd&ZKMJ zww8Yuzl3D?7vqQKuaGD7#`G&aP`oe89C|CL4s0!2oA^mEOsRyZOgdl|U`)v#Csn5Ps}T7po;n1rI*%(Hz$HES4e}D z2$fPmw@8TKv3(g!;20-Ib&^L7-Ad)z4j7BCRk(%BeHK$P??K+{6IGlo2Y=u#Hqv51 z;xkMK(n0Wns8c&QUgk8TPhN#_H`#-VlV9{vVT@m#3F2PJqc*DWaC!GPmOMTe0jr^c zQ?z%X6X!|nBph8+YQ2NiK&7_;PoXsNX}aaB--*Bs(bjvAvOEZZ zW&8ex1t87@Rr)AkPj#iZE}-P3#1QF1>v@8Gj-cub&?|o265e_3(xN~-k#%~xua=IO&8t^iX}ut7e`GIQmfQiNGlq@g@+ z^EtIwx`U!;W;v3P5!1X|>x;|EOBFR^bv$wMl8(iHuly9oZOfZIr93s^!JbjbSfoGy zOs&DxrnUsz*!r_U)Dv;Pw+ zPKNw=4VlPMDT}3V*qXyEEEXN9jvc zAVnrTWR1$f{b{Mv`8Y7Kn5B_|6TX;nHZNaJR!8vYOwdTCa|}x7VJ?tm=d4~J*U=kO zT+xtEBX#u2x4k+RY)U}^E|q5(3*S-Mmg~KVLpZpWTH<)b8k31tv4&?hGx@J8Z=6w( zokJ8grc;kgOj$MzMp8+6YU>0%oxW_N1N&Yx6~5-8s_}bF6#0S4_(3Us@qb^iPYh&hkG)MmrJqQOGs#*&f}h(ZRk2_BV}KVd7D&*G{0JwtG%jva1q;P z`Kv=(n6KLvQf{k@4wSSLYhx=%L(3=*{R^{31ki8T;|h!y5~)Hwi#ro%>`3yLTgKNh zUD`Si=7ur44RHVGOJ}zu@ zF7!wfsF4ngwv{Svx!_ynInA>ws>{ek=-e4Sy`xktUOxUcErX?La!|(Hhe%E^>(U}+ zfr<i}4u#GXi(2$z98OAyC*5s)NnVzjWo_=bfH3Jq|vXtl;*&)~27R8y)ZH8b+ zS}}v9&(u%SseYb#y$cp%79-U#>J`<&9#=Kuhox=sSAtUkRLVrn+rjN%gYz}<*Jpx4 z4Nygkl5OiTlQbD=DIb287M2Ya$VOik=p~O{xRL>*%88eoXOWO}>Ub0Narxm;5sU1a zPh6~3IUMYT(I60wg`CVxbf7%&u9?9sxW;goj3idMpoetHWV7;-fj&2nEM7;dthcYs z90*+fsR~vx=jBZqm8S(%68E}|itLp?>!;Catt?ZVt>9JPJn74&wGYeiyegTC-jbi? zUCMws@lu25l#Z8qz0$mx_ksiRT@lLjiEcFZ)n!0pye@KmDhXWvQDtU}XAV51=od7V zQDCnHzUdXPWo~^&`})UVB`52`j3;M;UcQDXR7L`JBG;|mqJ`L5+f%$i zNfYV5$n+ALjl8O%H~~E@IwNz+;aP?6B9j^DG$);{5{R;=^6&`LjXtHu$@JebiWw?5 znIKPbH%YFQ#i8GhM^cR?aY0sqax#hz2$(lEq2AGFHD98A6{H~0hS*e*4h`G;NMBAg z>seS1o630+35#~;R1Pyun7JvY%=Mrw`otH|9@#{6E>uf~S1=15Im{=;4&)-56p%L$ zLI<;s zsT0^3s2Ip&Q%&HMt((0Rna3(|@~Bv4Y?HB0CVGobJ6Xz(f$>6FDVRz|O;utS5IxM; z7rNcTD>Ka!pfbZF7b(ld`nvX!K8{P26z8LXaxBfldsqY8m4@@3caV@l6uH{Fdp4?c9rLKF5aD^X*Q|(R#pHVX9e#oM)yi} z@-a;jr{MPmSIUe(kfTN_b0kwJ8C1GWl_MT$nut-e*WiPiD%3^p9>OPb=UN?%%an#t%)em;pqrR2UWZq zR1YNpY@sfM)yT|sf8tAJN^>m;D@gb=j1G2CK3aO|w4^u{?Lhc|M3*!bnk@s8O}~0R zfvzAgm{Iw00jz=8;IkYY3p~QQre?v8I0-_3rK@t_Ep+5p6{=&rlSG}`ISj9|?%#Sx zZ~J}`NGp|X9F{>$^T&XsSV?PK5$FKLBQw4Uh?qZ7&OQiY)K)GZo;To}u21Gr=tRlk z2cQ(+e94HZVzS2YW*0!Eb$rRPmHmXwnvBxjPxd;wpt*{kmtJpSV^?xy7=~9q1H@tv zB!3}J$_~nU$oT6(-YFflYE&47Ea$YAizA>v8OqU(Ad%&JK+C#suc9M?Gnr&$-$uK;u-y?_KM9TB9W)>IX+5iPUN zmHeq(YNr*NOnf1WZr1CvbcL3PGET+?WoA4(SmqMuAVEckV`)9Bq%UMfTuV$35lxPN zk6MF`Ijm9}GkjyX?A)CeMR5bE7_*EP1kd5syB<6ek$Yc&zeVXhjH3@^CkyEcDf0Ki!NlxYB_*W*N<4vY~Fkq<0u2Ebx<2YI$1JzAUFKz2MW^ zkI~~|YmI&#eSz@U-hWW=a$QmUp(H~l?ZTI%+XRQYL?Ds!OR`w(dkaYzMN zDy=QkQpku+5YxaY6)k}h1mbk&{W-8H&{95Y0#9D1qVLPSQYPf%QC5reK8$W}80IU$ z!1}AnE?tc7y!?~ksO5?EzO8ozqf3zhS*WxlHZZ*`Z zjjE`LQxd7CRc{nTAT8;rQ+?gQ<;3e#9|9xw^t09ZZL`S>4idxe@{m~>Zv)GZtb ztEb!dx4I13q@Y<2R#5{kpPEiUWa$(t-g5C69ifll0|Xdz6L zJ;SLgznRf8E*}e0{3r{Q+7O#Vs>91FOi>AMmPP9H@cAWg8ruJBUJlCOSj4py)w;RZ z7m`|^`a;l=jCS(-VO(MAPqmj3dvak^rttCQ3<&0?t>;uh8PSp=`H0`r}6K5sY*UB>^iE%>s< z&B?wAa861Y^N?K+6-iZTL#cEU6y{9bS^1Q*$5_*hUJ$Ct*RtVpU}KSrEo9Y6sK2=q zF7&jD#32}j4v*;0ns=44gF9z9r7&cc0&ju(dDBStxXmJ6R-w@vbg5*r&~%DAn&lEt zzFDljsmGaWz!#YN1_Ty*<|>di+K zij}Jt6d>FNpem^&DM=tkM4#0;tGx9jsGGgDIfD4UsY-KMmuNQd5V!*0!d;tXiK|z*jR4685!^!=@EX zWjn+DiA28#hAKfC7Iosq1}SGViK~L}5X-j8g*!evNjU08s>{ctS=19M)=NAWfT0&0 zOx}XLVxxAF1FBOzPDj)oyi!3e`TYyHl3zLPFdy4HXb-!YBb8&G?0?T^LC8s^Iiu69 z&#TgXvS23CaafnIqJjBvl&O4*PH*i2c2G|&uqQ23&hIl_cwo`-@>4BFc12|@;N3lL zf>YinF?8;}SVl(_M&PI~U0?78i8f?bgG&ZlvwM}BAQK928*(d#ec^0e1JEMu0A7lp z!@tUON~4*G%ez@tx-TVyc~{=B77)cD^g^q&08*K`R37*aVfy1YGZiT--3`ABErJSp zYKrm6l@un;JD$}n(0RG!yfeY=0rp%U07bsU2^ysFX$sksWt=-+$5OM`HA}wy3cMxD zWB>tzqBevTAUjhABZ#C-_{Bp{6Zme)Y+2WyF!B!rQQXJliWz*EUJ^+aa%iS6D7|y} z^Fa>06NH95{-#@%jCu^zS+0v^#B`;Fx-TP~6F9;u<9_hjWSjP{CMo|jKxlBfR9VbF zzf$?l5x=4?GUJ^zkGy2FRzR$RX=qsV9a+&cs{s1UN&P0Oc$(DS!nVWy*ARwQDmE8Y z^$y4H$!Ww5z@lYQCb?1}+uFaGY;YG=;3|ZZq-)i*5>PMJ3a=-sj4s(lm__>{*4^0% zx)Y1uO#Vk3Ir@bS= zj6TY)+gz3E1nuxaeZHf&oS@=1Iuv!l0t%jBVKOfmbF+2lSLXmZbJ#2Zu}gN6tLuH3 z15+H2P3j2nN#`qGng62cMYr->$c0Y)HaT54Yx38YE&o{akwv1e8$Jc`i8v(4leJ)u z<~F>p1S*`v38h9GH+Rc><}aAz;M^Bwjg9>nOZjA2mqqC^>W5>oN$ zaio9HPT&C7Bn%Nme5;M=48vmI`X{AjfI> z)YeNUO}0d@+zm*-rHEqRU9901Rq#H4qxb+7eNRj6=Y6D{bhSnir{H$OEXzO|Y)z$n z8*|aCPgc3~_}I*qCg*{4lB|-AoH&<+maxE7Oxh!ds)K@E7Xlr_Ia1oK;5*gw(D}1ZVVs-@264{FZf(gD#4r zqfZ}E%AGGaPNWgxnvKbPR(EQvkxUiXAlzW@II9I9gLq?nf?+lKKW#v$+GIByE~M3FyqX1iT@1*xlrZma&Ue(uaVhZex7X&Qh3G1-lt^< z1C1mi7PREZ)J88}*>=cTml>9|labHIRk1@83Ac>=mFHAa&SBuEr4g1iwVl|?u`dO% zUIv6m)i%w{kXq-`yc&sWVl^}M@yei1({jHJ0Z$o#gwbd9z70M%mfYV_YMe7GwBJ}4 z7_ZQ=ri$ClQt>>A4M47c*>}Vc-yeAGlcAHcc`yY7RL+eA|GX)v zVsIK>QT{^7XwTMVT0UQEr;F7bR^I-`>bx*tMf!FtOMy{T_TLE;i)GE{_qE8vCk&rQ z>^XwxyUXIzKW7b8+P(qv>}Y`GX6%H7<=o{?_L}l;UlOJ;QAM+i7xHvoWUAfxG|vWS zB&bfwm(c)ixG|YqrSijHrYKN1VuQo!h2Gp6F&qq+btgN%r+Lhur^Ki&hrnt${wnxRDqfrZVH< z=B~#OzL-fc&OSgI)`1*w!la&FiLU^i$QW5tBP)R3<(S}{vz^#KX0clT<;wt#B1N*v z1^7=?Mgj8Wd>I|ju!ujG=+fFZtRZn{fNAGA?ID4Q7_J*CqdPhaoUy_9UqhE;a;rV! zA5jinPQSd1OnBCG$$2lkeTAJE)NEzb`?a3t$fmuQk(FL74UDY+HtePtza~eBIoQ{* z0pKJpSp_`O_Bbk^qKdl7UxVOs3u+*m+Z8#h9od2hLP`~&7SU+}sa6>nWl}zT8!!G! zACjmjUhahx=f{)j?b2IAo6wKoAml9dthBhnr2g|hH#wlofw$4l($9-9=*RUb<}c&_ zTNw+rhSLMkoRWQ#LRVKTQ$|z5YlK=V?LoM$0U zS3bQdL4^F1q1Fg{lBrW=$aDC@(_E$(6(T}&KsgQpp>QXAcP_c0g3GymQ9PV8IL@e* zPQM4QsjHYfdO@OWPMrLT7Bc$NG&kB8&Jm*>(^H{}0><#&n)JY?bxY zMbeg5f|a{f*o~c_{2Og5GFbeKhhbBmjp7NKnb5#+Jd{7+U`yJU4+p3iKnNhUv+TQz zd(lDfbvIXmn)0K9Qd`;g08=Y;=oLx5(cR~jR`2l)P8iwc>QV^)gAb%R<$^aY1XuBo zhKRWI*)xO2tZkUWbt-o>VoC^&^S3>D4Yt1COkuh?;hYS#T53blQf3q8NqLx9H~O+) zMQ6wtR+RpSM9Uitj{$@?==`8_@>yduMNaPnKwng@UU<`4vp9))UKdY}S6K?!?1ESc0iDbnaO#<3@Us?EKZFUcp4uE04AHIe2|< zV+1{PM@~$Db>2#{<^u}RHtZF^iYek=Q|8y;Ip5vI8F^P1qC1U)#W1mC^*@Y@shpkC zt&`6MLX>QPH@Ld8&tv;oYl3bhLZo*z4yzhRBu zu>_!wO( zX|KM9{QUunLLr%VwC~*xO~oB11~Ndl`hB|0i(|8VxzD@Rp>3LxWo!mgruH? ziWRYba?47~}WKHHqm3GpZ=h zAQ|!$KMIQ9N&yeO{07*Tx$n{bATQmS#L34s|1OukPx;(g(DzE~1_xOOg z%&JnocUFqL@*LW@OQrsZmCau(Wl2!x4AvBi?vgfdj$i* zw%!Nr`INdm?Il>B_j2k3x!sh18EeT7JSjYlQIyc@uz(_+GE@4q%o+>7p?vB}LZ{{W zut~`%csm^}t9FMO7YKvCSpXjgM%D*gBW>g`(AFe+8DH0>T= zsY-R@_?^m?E%MbWtIcxuTWe*TY|Z7@djGqxvdxlppQW2nq zi_e>E5dJ+{hYo(N#~-`xtX$7x^nQz9A5VqPuC(s57+ZE(tDh*-?wP|A7ErBLy!wF3mG60e!F)bA)`6!U$>6C6 zmhobjTt2Vd)Oh^OCycq%Vj{=ebs@hdx-H%OSxo7bJ;WtoKQ^iU5I>HVFqe0#n?dH%v@k(`ZZzVZQB(bxHXUy)ybD!J6@Me5%#w1=aT2I^s{XTt_M>cBA zB`+W4w;8b{xA8FF?>Kt;F8e$Typg(ldQSx+_UN% zyk@J-T=LKF+~wdK{1|hNXRrQ?i!Iw3@c0pCh)TphkMX0my~Wr*(X`3>2`tUdOV;`_ z{-T*GO{Z~#y<@mv;5Dn=*lyixG1ff8BkPclAO~OJU4CuC95>nqPjF-hWtGXMMq7@v z$T&>|`dwubExJe2*vd@9s#gK9UX0PWkE!ph`xjlA%-yD4;o7`W*4^^=cot#9Gp3(R zLI%+0EUS3uO@4cc1Tnd$%Zz?Bjj!Fmj=zPz@iA{-GTmQMt4?aspG7?LxU*fi$E%e? z%HW!QW|8#$gqM0bky}kX#tiH}&N{sK3)3*F6Bm!rt+6}L;)9nLLV3KGtT~e2kq@4q zg3SD6aAzAm^CbE{zg?@t*CsY$GBXD7+bh{z{MNv@0^=#1$CA7Xd1Em*YVZzUKOAFF zPhH~D$(2~HJyVeUMbB`fubwr7(xWpUT%N!LmW7ys5B4D7uMcAh$DiXdm9kAL=IYdp z?fdm(7I43n&$Bd^QeKu42o6~|i5s*$&OnDA<2`?SlCPcAZIHj}1%X+g7m((snf%Z& z1Zl}_uD!LDJ6#^kq`d6lpQFhFmr%T!FYPFRC0AP_(bII<_b$VDZ2Q@KEolMw-2W?o z>t3lwjpUvMAIJG3FbNJe^P5gMY zFDrlRFrPXq^UvW6xM_o_(CKOwOjXC;7=^XgZWiP6B5w7TaLJ!j^qu*Q%|SLcgDPr~ zwYzws*CwJot48_!P%_$tHm-LiEJJis@9G@=rWz_s>a!Xj_CcTrui-AUZ!xd7H<_G; z%}tw(jV z)rrWZQHe@sJ@&zTs8=Y|5wBt|oKGnPS71 z?2v(*;X$*B)XH}a`0%-8X18`tZeDEg{F_Tnzif?1vjW*g(r+j7+ijM~nXU__S9VP0 z=Fjvrb7jN^zHpXgG3hsmdA6@X0;Xz0oA5O+aYDcP*Eg8dnfloEcZD9AHJmTB$}@wq z`AM#*urrC5>+=2ax<%-qLZ|#akSF{*hvB#7NVJsnV@U6P$C_*z1d}|Nlp)=9L$~s` zt>uRNoiE8JY{=g{YQS}pb`^Fi^l%J)bXU{^!dj3s)vgJ6-IY0gU?ZHJJ~E_BO% z@A77E9$`Z6K4j8{u_|M!eS^82R*lQzyYb_jmS$Mq*JZw2w6m5Hm@?wUJi#+spJaaj z`4EYI|1u9h*q+~dUSJq~wxdX0Q^BAfcv*7jUnV&H4PN)VP6$|^z9!bV$`zW){lecC z6mzR>pYYwIL0)v-L|**XF~0WhOuWE(>3&gkd=XWX891qzWX&4pY?7Xk-4C;TMU*m^ zXaC@pTf(1of|^b0|ITy%v@)3sHlQn;Msm--f1yABR_9e#4PllxHsfK{72jB-i)7Eg z$^DLv;YVw2A7&9?la1Qm<_zG?DmHV2)9X;+C!EaJq>gDA;`5CD$uGICPBUI;*_XU+ zoumRe-jTn%CgKNI(P=XSDlwD|*SP0bC0yHU7C)xahz^&Yyq&w(dGE0+xO?{FzOZr0 z`Vr-H&hebpEx2w$7C%m}W-_U&lqoGFqkSRKdWsjVVCO5nAXl&va`O=>NPy~`wTs$hDS zu-hPeSz98dfm+gEmyLVYW_oaSowcOf0VeN>jYwjTxUeL?%nD}EF;|XHWt?5+^3@M- z5fMFRt@3{)oq1eT)!V>t^_VjtI)Vrs5eD4mswnQ`KJHu<#T|FdjZx8YM@=Jh0S!gX zA~nUdLXD(MBdwoUR#;->ifKhzNhykEiDvnJPwzkTftkCU^X%tYX{UJ1jFr9v%MtTS%|&W%1Q)F$_5u#zS3n>O)$&8}Z<$203& zJpEVztDC%p$7L4s+KY_%kiGcsWWqJx6PjZ><&OY%c1j_wnlf@$2BzS4qv5whKAXVB zLvKI=E1n0Tdpom=Ul(y5)yNK=NL^DdtmKX`t%L7$07(6yMj(*nkmt3AwU>bSRBQr{ zKiU2g)syS`Y~s5e3*h$_w^;MH0pRDM7RkTTjYF=L^Ra0yeB9?7UYW4f)C~y9Qn}ssum{}srf8&Ku?_r7G zKY~IY)7?u>Yen9&D{IQ7sz#cA#^d@91Hhe-iBfR@pzj^Xd&a-a^JdVGLVgV4$Vs9{ z4ciOHY>j@TiIq=Yzrdq{IwI5~^0LJ!s)i@A^jAnH?;3{s=XpiaA&@t|Uz3dux?s9w z{-3-j=1bm9*=MK>-v+MR-{F$pX@IQBE4(pwItx&D%~;v6$#TolO5pLrX5Lfr4AyZ` zUYrcq)bP)XY8ydSrQcEKXm$Qq+Tv`US~;NssqkFIx-uR5-aP5g6u(!_9aSSdoxrTjN*z7 z6}-7eDKxUW8Nj`(WkTKy>}&nc{9wM15UMehSMT@o;I?@@`3$c_ok?F$?}HK`|Rq z@o_SJI3#yOB?RiK34dwVhlf2`1>UZQuuQ*I{5w+5hKc)t8_qM)MBeiv3Jza1U6PZ+ zGKc7jz?}b?$#QiHWLfKb#K?hSPRJi16E^E)m@oG8)-4h2rs&U)#!jSIrI^@uyh)BMtz9l)BqsVd?&bU9G|Wy zkvW(nZKDA-zqR?Cb$r-~zn;_axVPgIj5V2s61~C;bI_eYp48*4Z(}3kj!LMBVj*CE zb`hXCJBMGr?M;t7x(?h9F-Xnu#t^Nn1H`}j2QajH#^Sj1JJLK?<=Es1&IbaOsd!&@ z^S&OOrEwFp$g5$vq84Z}JJZ%IkmkvdL*gf_*>@QbKA_lJ7JAS-=icK1TXk=aHjR1w ztw+F7DG2k)-mK!pVPO0Ahun5lclP%?1Qn;(V+8}-K?l3X@yeI(q0oNK%a&<}`TmZ! z7j_4-_J4HAbEj%1-L@KX*@|p++RHe|ik8TIU zoV>pOk9-rqOjGgDW`LV5_b zIA(%8tw(=8YJyDpNgp~-&c!8KE5L(`F(E=eWE!6FSxkatPKT6jT}_u*{~e(};Zj3K z9^3(Ctc8ekFa&IDsYsNa1KGwm#f)ywVNor+Sj>5u4Qi(hH%VV#1<}rpsg$G~zS>SP zt*nh@ceC{=;WMmn`RX`7^lM{=5~HXJlV1K%9TV)8tUk?iTjV85or9P$ll6~kGGO~g zckjOR5m>9c3;bnGLMRTh@$Z8!h+99E>?gAWxui}nUY5NDw2ey!S@tDJm7D8%Z8Zk7 zL7z4{ZOjID=aaa2up2-(M*R_eqdAQmvqU`e`EHhz?|#$c0u#PAbKz50O%ff5TYhlc z%#oNMxo(wq6nq)LMjND5N%2tr>-|2W{@;Vp!`f+l{6uQ1G1*S*dJ`LWw?Ztck7upe#3$}j!wUg>rSKy9limFd$h zr*S$ZOCm=>wb5<4{-;oo`Zxvnozzo^-xrAG7wuuKyA&GPpwdI-+4BJV?{|@0g(*35 z>k6+QnE`6Aegme}bYNAjE&JW5wO8G<5bBsm1YhZ=SuD2xS0&RKT@6`odXgnBichaomE5=2QrKfWv->n$~h@ZCr>{Dc)$=Q{r8yKZ2x%Dmg&iaH) z-aEpJy5{qg6WWQmy%_X#S&F`!a2;m)Ru2^)TAVM_&j4+@a^@mm;v!^!Yttcvds;Se z*m&^Qx|xQP>AA8^&lLPYxkKg5UPQxTmZDSr>O;qIAtYZG21=_s@Im#@ttuJt5f43j zgbhvAi+bv=HX>9(U1CI`b>+_oW~tOy>?(6E7%9I6l^;;PK)l!mbqJj?zphm$R&eE} z87i;MKvtv^9h8Z#0NOKy;Dx#<>IH_*$Zi+3F;e$QF03#yY(D`$j`L;_Ne90A6lD~J z%3sY*xBM>$Ep?z4ds(25@EJFFdZ0dNcutvV^7lgsCT$ywcj`fLM>~Rz2cMY)^-#)^ zRRi+Rc>xrE8-rJNnn}{qLP%thX;w;&@A&Iordi4fYPW28<_3| zzV$u_g2%6z339Y4Z+yQY+vvNO`}4KI-E*KxBk6c{@Z67}YRyFsEgLC868RVSoZQ8` z_xliXe@`v10#3G&JQV}zGV;?`W-RiA$0 z3f)d4HCo=Hz*fdwGSdjdJA^rh zzB;ErP3))s|$^=}J zV6)`KKe?eRb|BtCW};1N4#C$QYw5oI<R-Zz3BWu%6YOkptUxN`BN> z{@wXIWU*Gux*=20uPszTgvjgMTf#6onN?yL;_A<@xnX8D=`3j>(mkA2Y{`Rf9j0OY zR-CTe6XZzmX>j4vNdC&{2#8*{N7{_KkcV-tf`o>e5bmum{J3#CFWnf3DrlyM49|W~ zzvV?fdf*h2HoBd_iid10n>c_@AJO2=sV$$h28whB4VE#xV2;*WQ9RWbT{}Vfq9y4W zP?n~9H6Q5#JZtqd%fzOS%xMsbjMCjnT@Mgumpf=ZGzwe}i-aH!9OL7;-5{i;N@ykx z-!-F1daA4=+gq@ptS^AO^Nd-pbE^@A_aSx9uL$+t*?{M5BI2_5EiQRl@xxf{(C)t# z$Pl*;kjsPl_wq6JQNACk@QTiPzquB5Gg;-jBwkO<+!e#BK0c3Z*l`2{qvLE4`9%da za?Q*v*`}K{(J89FF)k)n`X{i&*E2D7|K(L@bJ^#FOHgY2&w0Vc=Xh2ARD{5FeS90W zpOgKws-Ur+uH=$6O?Z84-Fj%9c3kbt0s!VC;KmrP7}@hP6#3H$9<^^dIZAEfokm_B z)>4>RB4;NesV`9QA@UXtH%S!TPo<6|oJZ8q*rcH`JEl^0`?1WFi%66o zDk_bISj6*U(&YHI41?qs(r}*DL{|`BqFw7AGD+~&~1KL(FI+rWeUbbzf4=Q8;StixLf^arp0TB)oXJp^EKqy6b zU%uQGlK4`UHkPg}d8Pja9(AWJq`HwjK8euq->3r@4c-JyyXtUnW;Z_W{)|NK)B@m~ z$}1zG*VagG+1LRI)295=$|@v@t(<6F5FqVkhY}x8;UPsES@PDCCeCI(#jS!Co5s|X z0x38P_~$SqfMak$E%~7|6Z6XFYac?lT{^M7`w2f zw^m|BK3k04u3L>{t%iQ_^d-odjUZuACJ6KohalFDz!bPp!Is9gR+hh7d&d9`VVQ-<$ija5RRbP3rzU=umEqi{6*l8?!O)>+r|AiD@tXhj~(~7 zfzkE4eSh*A4nK6M2^U)wIoKWG;Fv8R(`7nD11wxsEaDDt+6j6p%vZrWIO>G zqiqEy=tZFPOB+O1q6%#;7Y|xaV|EIm{M{yT&N^m+@vy=t-5OXqr1Ip($oo@SSj8bE z%_7~eIx&J7o5Z%DlA9rnJmKa0Oq1vTw_63O7xX$aRwbAPu~erVkzgDJ*$`EC`# zQL4;J0yW6n%PkAcKRMWRN%v;_>WqQT#{ZYWNO)F`ZL|`QxHLF;_6;_>IUeHA zGk-Nuc~lpZ=25_ZrL3Xy>eFz?*w4YzD&;0Q#oyTtmo!yUcRy*?q>qye`EbgnK z&ZJ7if-_Rg5&+?9DDV7=;kdcD0L@%#Gsacqa|lhuLvX@t6Ymk=Gi?We^F+e3%t9j;C6MenfN-hoK}Xn!CO(h}H>PGCWWqs&%3l{XC77sQF1g9#WtY;Bmb=K z(_k@ohHOk%9r6hi+<12@+d{Hg(%~v_!G%je;N%B6ccB-fGnw$Rs~%H3I3>hsk>Rn}MnKS7uz>k8JA02ha%)ULX`siyQf z$}`F-n1?>n8%Q>h6S4?%O&RtS$U0NgqSKk4(DLYpNtk6Rq>-!44k(Z+n>_v(DAsR* z4E;-mwlGc>yQK0-=%h!$F#Hj|ju@ZISnmQ(tF3}6B%0+p=ypp2q#%mP{QtXU-8 z2)2?>$>`F5bn)@s<=ji>)UNW^1IY4{^3{+vTJ5~XC||kuy{QwcOJikD8uUNJ1r&C^ z$U@)v5kQ}@p<`&K5Ftv3LOyVSm6R-`<~Pkuw03P?MAp7PY@6O#{QI((PxK&=G2vjj za4!@!NuP-$Kj6098GN*T2r-tcoEC<=B9VePrk*|O!ETi*YACr`FhUQ1Xgec@2VcYl zG|E%5W%vrnVA~H6e#khe>hr!xhYwf(XCkDA>l|%AX_=joYTOSFI(qYpj$XPA4(Q!gZhN_3z3Syf~3Y@Ah|0U%JSJcB*EUiSb1u>h2OfR>64F=SY}9^Ws?D| z%}{x#r@b7FRTV-FPH4FN`iVErXpZn%X~9Y%K8I@p1nY1 zA;TkO(j>rP-8NHkNZNYCE;J(=p%Qg+E|2@V6=YZLMl^NM2liDp>;(`O18_dv!Eq}? zcLTexaymf9?f|idppNMu-xdvJI7BsJKMQJG*)pff9tYWQYTtdH6;!=#Iwhek&^n~g zdz11~36RD$qXHnkErF)}9BzQOaci z+L4%vTsaOJKT<|N8KB1})AyI(^l2;yrOk%ipiz*BDCY6M0#; zx1{&0A4%i{@#;jQaVHZqlhM_9_DBbKyR;S@eR0^-V;X#2j9M|I>3(D-$aAl-=%cJs z&TGXMtIG!F(4j?I42NUqx!GaFB>3wK54U2&h8y9KNSEr`LNv<|jztd*$vNz01d3U`x$Ji8~Wkdy}%H2FPQ~L|xZ8<&Isbz@kMQuT0 zD|vX3z0qM;C$BK4wmgrw_tnRQtu&kBu7pgNh`J! zPA&&|f77N^@;*R9Aqje6u;kYujXb-nM2E7Ze(5mWfe7fZ{0JhOxMG$|sq%-s{-ja zE~E-L?G*8Q(w=5@=W(Rya_^zZt(EmE6be8l^VMVE-DRm@bv9vJZxh^kMDaT>$P%A8#_juu8i$>j8x|Y6Msdl&vrR-ne=) zwi!zc`IrM`s`5k|+ajtO8g-!y#up5fn>s9Uv<~lin8sy0mq4l~v_o~-7W;15mdNt( zjM?OZ4k+Cf=(>M%-WW9-*;Y!(hq~f~hM1K;a!YlnF+i1Bl+Dmz>+pO;LY#6($`5|v z`n5^~)Wi|+-IF>Tnx%3vSB9}DWmMkVQDYfpW7u_bIcL=VE)n!>P~S1e6p z4jaUQ&|CX5wAX^L2?f`wb!F*&NaD6`{C|wD+CY!W>6v;YV`CLtU%tMEblFNNv_uR- zy2Pu}Ae2{H6N*2r0vSEmn{6zPcSy_-m?H3~RmOWt1Eu8;DAlVffh55s3>R}? z;<)6;L+I~r$;n#~het6i>2=maS6qX0G>UG89*I2eu2m@C+jwTHA5ev%%GO!3$Zkgd z=R1tQic1M}d7{Y5@-)TVORgznzT;eVdIYM6pHb4vqR7pJ|12&R24qBxW zLzX$1Mt8k@%`$+yBf^*ykgB_>g~)h}arwB!OxN`yePm1(rql%8wxZW=GgO}YgCClx z+{U`|Tnz~&rx{6?Ra>@?$6 zna0c(38~_e=Ty=VWNlVgSzE$(8DZNI-CQ_CZY)JYUERdeo-eU{lF|k|p3`lrTcuRZZLBw=R(Urh(jhX_cwj8uq#AXM?$~Xhrzhd+(Z3V#XF^Q zEbsp)9Ra-Ts@)|)c`y*fSuSl`v(eelvgOv=@zHGyf^7eOBw>(B3IwdgPoDnD9xJ~e zU^(<5qFufY$$eOhdoN>9%Lls5Zk;krO7B8zXoB@%j%4*WvI7#R-^*<)^V=h3+UfMm zWx6NI=s>$Rz$$yo=r2tMG5icAoQlD`dbSMw2Qf*N;BdMnt%^+IEWdN{9p$!3hR*)$ zvfRodZj}=uMW6&BcX=1S-F$#`AF0TZ;O2nxgdRa?sH*;$;-QqnWMc9T zvb52WUE8=7Zdj2Wupbj6|(A#Z<&o?tXc5ZbmhRAx>vsU{l_CR(Z3 z4l?B%09&>al>f8}upMd7OP^BZb@8*&9U$@_pi}b;q#9W$5z^rlcpI*&nn+BV=|F{h zVhH@v=z1MacS$~s@p`2cxR3hHOqQB1@H4&+P$BBEY5uG+eR>Dr zX{Zuw7)#=-Y4&kxfXz)pw zsb6)&o)zoR1aFc5jA@+fl+q^uouP^v8I6n6Wyi}f;m+snMB`0>yMC6HgTIdXZOwXk z%W(RqMak2#kp+hRs@?&(DMF zTEQz9n}Ol&x|6_pJ&`r!E2~@{-?!4`hw4yh<}7x;a1xlKg^8am(;Z<}s`Mr@=@C?4 z^HUW0Ad*s1{Kdl1YTeQ8zwl`g<9g5MXDO-0rb%ZziLs)2s9EYrX z2(W@xi3hSvtt~(50Lzfh92A!7QSmhy6Ui|o&0ngbA);SZL4de25h#ZW zOkQB-$iQB_dh;pMP1zuvI4H}s>Eb?8Isr!yX!_7PGj;5O?7 zKd_$wtzUvAP_HhcHxGD9W2$WofgqI@Df3>0088`PT_c^My<{)9K3fe1a7>p|tPJ+`Fad6=lW)2zbTn==f>Pg9S2Kl83D6tzpq z6Q)hxIgO6JF^PwaEN0*jff3CAEe=zi%)}_ zb+|R@M_nMb$#l@UD`C>{8X%*~vp)}_joq4lvlJ}JW#tC zUs`G}qo-h56S^H5gTR6-07)C$UA`lC8~m2^lyouyWRF(Rr8TjOYA9oj+!(@2Zm6PQ zoIFKsX@1A3up9Rv@G2c3uGtHr{qZa${K`jOmvJZ)?LCh5&%VfRwy2yaxlJlKXV9Yd z(!D3ZU#hds)i6|Z{-}Mr*FEOXrdYNTOZN~tHV~F#q*<7B8jk_@83QBaTml03ng>Dn zneG(2aw34-qsJ1}%8tobxw@pfa)5N11`D3eidFjKLIIJaHE0?t8dGI|e zOVm9u7^^dk|H?OgGJY3uNq%f4>qE>KnR3WXgOt86h4Nb;xoK@mj{@AJlLJK@<`+Ku=g#{wxl34`zDC@1?)n^_Xw%FLCrsX%vU zZ}3qy3G_sEg)AEB#^popSa{u)BLOQtp)pDbZCIz3H;!%k91_&ro6kwMu&GA$P+8cS z7o{=Wm+(ndKWKq$mU|TdkUohu#7?p*$1NsS-*$tUgJamypSrfcc?Yoa^g=MODWFsq z|IH4Ls`B=nodUK_=&2D7|PGr8eAPL)P=?IZ!TahOz<^<@bq^E#oVvAiE(x+J=U zkB$4_y8OLtI`UN@D1t7q@IQ5dc$sqcGCJmI z=MqyMU()k4>Zz&$dU#zrb=pKlbh4Iw+1T_L7b~>&o-K8t7YCQfu|@+Eh? zSc&;d6lR<>y$Yu@qSaqt1 z<%#lE4n%YJQ`mX(wtaCBLUMf>dx7sZeav^^9>~Mc=`CvZo>B^|W$~Hi{~;WKKbUwec5hNVZ!y@YhICK*(O9pFUX)<3xuGHqi_w-B>a9Ur2zp}D8 zWH^FlzHT^uP35=btmF)rbX~b|;2p%sHl5}3-G);o#>j}&7KR^3<{x!9_f))3J~)C5 z_*zepdN)2zT-VJkgb_e5`Uv8gc4Na7DAc_aC z>tJ13GwTI2&KMhzEQ=pwL4_THA1~G6t0?V^_EY)s2t{WwZmmjx=`kJH-<-m)_#8$f zequ+#aV%nwDj9}2E37Hc7yyi#qf)u^5!Y4dX_gB=Hq)g07p6NVM2wc;prtm2f>jyS zpre8Lx>lT~mIp94vpL&izH=M-EgtX$>FFO&>pY&oKhXeQa%gOyTn=EG9G!v!;A`5O zuBN#WfJlrs+7&0l*S;v3H3H&YtIzgRh^tCU2sYoK1TP_)wb&@;pVg)dm}4-RS)3@p zcR(l&7=j%auBTKC(M`h-Lh90Rh{nS=m`6|MLoqWun!}Ap~G9*)HvZnvn#DzH(V_5f!6a?^D?Sv1$ zf$=tnY0%^ig$8T?cLTYnc+dJi0EG}xZ4zG?lY3FQqOr=79lGC8j@(&l&tX>yk+L}q z5nv-Ai3vuOZZt)k&`xT5+uWwrs&$lZTk#ll(X%9nDWd^+Nc2E+IdneKL*H8Kp)s#T zf~DQ$ta5>ma zDA`xmu-rv?1>$eB2qZ1!`gbc5Cx@wLHgJ+l%3f|N%6m+W$t_szxne<{RD5OD@Lk!{4H5380#Z1tg)x6x1z*& zJ~J6XU)o(J-|^~W3x@cdcGv=Eb;f!{E^PVnCsv8ndje|Sd=A}mQKhz&wm$GUQ#m@z z@QeH~raw^K*BeQ7^LxuC^;`4r@A&v7=N4P}L_5B7e}u4T1{g-3mb0H0&C?`)J7Uel z%m`}r!N>-c>@O?dWT&_PMA^QVm&^&g($c7j(4|y^<)cQp_^f&eE`~JdJa8iIXVzeQ zPtXNa|J#5G_LdFw2llo+2qu2Lvc^gle-nuts1v8o>!VK3=RrC%hq|Nnvb0P|c1eup z$8oiI_k*+8=MQvmmd5xb2wpNU`u1yjthuByUGEfQWa)mAhfL5Cx0x&Ng_i4($&S6MwJ>oh!YPq`;aYv77SSXhIlGjyP0J4j_n zcmqP9PUDTt5*b!urpwX#7(sE#7zGnldIwB7QkH)w!&hgDxsZ{}d-c`l;mwtMAl@>H zwyICyj{9?f&3nuXl7Nu_=YRT4{-tuXkm#Rz)E|0U%IXMLkYV$N>Xg(pIjHltFRQF6 zVqG)weS`tOLte`#vxg%HekQ&sex(q?*lm`Bmu1(0_&gypX8_+#<;-EcpGm%4N~Og7 zZaQtNE?4iv^xuF2eE{nqcgJ$NI;cB6(aqUztWC+1)<1ilx~LK1xEmnHB*5dFbY?j9 zmLBwT>RfbDXbYLX)?NjBFiR-;ZMK<)u?d(f+snck?68Llog>#$svQ)hdto?r9%WM` zKh{c=cVA>pO;p@e9Jt9{I(g#bO@$BQn6P&@m z^uXqCZ$fN*uUs~AND~r~C-gT?)1yKTyUbkUc5#us^@>%9xlCrmGdgK!=Y7ogpUNPB zpHj%lz)?lyEzVCKm9WP>slUg|9~iJ%MtLTqw4P>NRLt5i zLVP`q`6;Eq#y3W8&V#zrdm{pur?Kc%<*?+rTb4t7r=WkT+iS_)Lslw^wX`3u{iG4b z7bzajo`vJ3)*HO^P&}4K{Z`nKNp5Ilq{@#m)>OoCdUhp)7GDT=7R-|4U&7pXHAGAF z@Y>f@k_Qt83QakNAoJ6~u0ON)WlP^gWL+11H0h!W1{+&r;y8q6Hzfd)HPJYj>BM6j zI)N9Y@_Tt#OqBd!qbep;`fX1Qzmdp;7Nbn3 zc>VaRdPB=C*(1#y&Z11MKBrQX*;ELe`glMhhJ49D38%mjW=*VvnVCFHE}yj$VT_#doVyDGjsImBp;iX&iT$`m$|E;_qV6;)h{ZoxyV^F(fB)t z_5&(C7!O(KD84UiBZXsN+wCcCj)K`8nHLJ07SNquI^Q?bICwC_U@E~T{i>$2<6|>X zo*01XR;A+l%jARDsAN6p7_*pZD>j{_PNZd|RV2$=ndF@8M%YfQZ~Ek@ zE(>3vN7Du9f-mM>%rVO1eQ;G#Q{*o>Oeda%8awG3A_PqRrEDiiniWtg8(uMOTGKX> z?=vCr&vbU;%9qSi8Q!LDSuL6WE<8-z%T_!+Ziq~3bt+YMABFoi5vr7f;g%1<>}f5T zf3VpTrJRV!AGQ(vO=No5VF>tf6k6xk#)z)F%Hc**I$Fz-o(Sp_A0l6?bf@P}b(Z7Q z)8Os|Oa4;12jI^o8Xgc(AkSo(4hSK)HtK*y^wbrZF+0s1S+N<^AJV+jQjglsQVu<_ z)MsKk#CjOEgc6w58sc(F#CNo2Pm z1D+pakrrN!U0&B6V~LKpMm|>6WkGaoUXoXBEqEh03IQ3b{YOgzrAi0lm@AbG)7e_c z-#=%#@P$#Xc;_(KsdXGAJg;ZJ=cp4QEFr0`k&>Cuf7!L9-ml=<2S{YS&W#8><8=cZ z#OZ08U|~*H1xZ~4^Zd>^GZtM|x{$MHT6<`z(k)vXK#)yzu1|uV0q|2i_Gks2@}>50 zvxpOLVRNX`S<|>`Ql-;Zw~Gl!)@WbL0ONjUssttRiuu~O%=Te_?x}F-kWDk=4Fn36 zBSaViURbuxUdZ$i>>zYnGRHeFjP>2O0A;Dl8A`ghJ4|Yh zG=0F+7SBU%?ZvZ=&0asmw#T2x6u76SG4)lseWb4g2E+o6lordNfCN(9WWZb47z|;Z zt^+KsF+&icH?H%5ienZD^Aq6Pv1{0$ng~*NeF=CDr{uzwgoi)qgc9kDn@IM05Eo1( zcVSl*CK+D^A{gW;1BydO~&rF>0w zuGS>k(+5FTbdWo6;x(3!D`DuR7unCr`F#BLH2_(p$ASEzg=jrh7$rrype6@L7p%jW zj&fB(wy{ph?ENl!FMl>TU_N0gjucvH()75ggcq^-{tXdO6*2VGJBEbavCKo z9ItUYFHw%I;@~s3%m2HHsHTeLE|2ng#TU%W@;YP?fv$k1BSu&@CZ3cTkuhoHsv%HE z$AK(Df;Ef}Ds&NJTz$y9uqWp<#$hatF&*+XmZ!XXA9{HBJ;G&xa>mJbeN2y3j6$Sb zR=Lkg54vd~sF;1aPq|kU-L?#={te7KHm_7Z_>*N3TEZV*ok9Q>?+)GvAyJm zb{ICUsFWqUfWSw(ONGN{#X(@PPFb~%YfDvJBLIaVvzdGo*n{F_Z=_cr18hCyv(0FQ z)iLE9Vtp+MLAn>n`Loy{4NbdGy6d#Q-8v55TP4KGmOfm|dAJdXGa5pOY15?oLCbB7 z$}2>*rnSUbQW7JDpJC2!p%<$7t%i;sz0Kh(;5v*@Py+QdR?bG)9tkb5EXryb>r;G; z6ZB1$cNdvSR7@xJlbq>hDuGW-kv-cmfIF$gFjBN~S4nQ5SF2`^PTTQ}=VgviJdSa* zQ2bYeuCiOmcj5a| zC1t(kma}hgY3~>}8_aJfLtiy@MqO335nb%WJWE_9n=0681MNSWqzVQ}4ipbqT3`EEz&*nH+X@cq05ST5lwgiQmHW}O3%9i+Gp!#>s^`mJ53=VF1VAf=N;>kr(uN z&rXX0-IW~wP($EMMteV%?x0>L73zs8l4F(dk8cG349Y7&y%cqqUVrmWnlrZsVR4N) z1*K(3y?y|%p?1>Ql&7a`TV$5Y{LQ8zPo*Np8R~3F*<&+NPU{-ylh^pzS{KndcN0Ri zb{MjXVY=%H5R^N4a@I183Z~1yymP7 zf#olYzCtENsYHd+OYVkRcGs4H765t~Bq+B~^dm%m67%u{<2D&g2nMg z5*H3mgDBsY!tUM@M6SD;RBq#$RVqDJQd%Nt%25Brm2J2KJ-xtxX0c77`mJB6gU0IjULEZwjp@_k`OWk9xc zuZD;krm}j$_XXi>ozj!2qh^`(z0Tq;tGM2Lm-ZaXth93sGj@ROIW zgUZ){2bUxvGsuGI83>^NiLer6Vk^*?JrV)ay|x+3u{J3MAkfSIQf8J6*$U4x+jcY` z1tY|92VCAr$${g_8vxDJ!LstIsSg;*^^GH$`gn{%)a#LcqMmxuaS*2S{**LCVrm^d zsbYa_7D%|~hh{$JpeqbNS#nQ)D65NCvZ{^zyn!WDSL9&P3OgN>K5i(ED`qzJtKvz= zl`}xLHG=i(sI+=AE)(J7_bKx67hOVnT#rFW)nj9SP*sC){P+^lr>Xs*;`}h=peC4fWu;2qXE3^{oc`o%C5^@RRlorSlw+%T`7%P{CS)r2p7?UDM*`;{*w zp$qQ>lwo2prKeoa77RO!j%6yezs#R!rt6@|FsZUxIg)Q@In2m$OZzvllz!B4*>NiA z1y)z)FAsIf&qIJwOBYFP)^Mz$O6thK`Ib(FO%IZF<5>Tb+Ungm6G^jCM@4thxLxjQ zTXQFE|7G!ID^>R@Zy-Cgd+#+>vVz6>yjtt6)5JVWf`YNKf>dE`SkoQE+w!Ly6Zah# zc&WUnysrmW-l}kF&tNUtr7PbuGqXXaGZ52&0}hRzG7!q;9wP`Hv`G~WBjeV!2+q>5>87I?x0in96XuM9@>5ShH?NQo{L_&v>U)Lj> zA6NHgNw;7e6aC&n+(v~!RVP(qPdWTOc1967zEbiV64Vn@uEqZr=@RKp#(9(8L2f?* z8`8)j6Rs>DfNO!{#3-nE-8_toP7@%JXga3DCJB9Tr4|KoI4W%q$vOhqe0DvVobOFV z@fEh=afzd4QYb>|wkoQpE#z957=?o+S$6{_U!g==XFw>ENGK5NDUN3Yi%pk2Q;qMA zsq)2A=NmItUh>CFaIg>jcvDNAC*xy*bm>rRl9J9mvuu?to@K^Dnx#S7Nz&Z7S5bz( z^km423HBuEvdk)#^dAsLuVmOgz$wW~NH=wyQ8V5KDsjs0)AJzusHDcyX#hu$WL$?b z?>j(OohEQN5laVXU#^MBq3rz-qnKqVU6aJ}nW@r{5;pA0^f1{~1kU&BT$E!DZ@N^4 z@WyFR0rthJU?$O@uY}B{1?8eIcI zZ$S&{dceRo7`a_J2=lkJuKbjWE-Y7t@kY-S8z&QIten%8tN+l{iPbWkjy4pp$c<;L zN?bV{az=-7!?PsbV+*CVl#g^8R(n14Ib2n~gggj+79&9DFK2Om4V4^jOpb7dsocqku*xv4Xmwu(VoYsm{9?3-FDKQm zRLQHhQwE*E%ydLGiDqqdL)dYpX0rU)9dU9)7bu@rF3edP&*89hHAK}>?m6ZKGePPu zWNbYmtuXwU-5Q=Q*J#sptFN*bOR=As zB{G7N*9}XdfeyNJz{ew?=8kuf!5=8+LewVtD(jj<+%-Oj<_1jU=(+iQq=a{wS&k2b z?5{(AaBqx_hcen?5!97F0)n%xK-lFhlL`CLEx-Sc!1-J`n#jg4?An;jZz(IT0%Qy) z#fi${kV-ul;GbvhIlv5|kxBL?PNAwT_}WFRP0E9?BVs4Z_-7EW$BJF@ zI|J0E=1Yj5_p;Ch$=YYyryD|Sk?z?L)Py&-SFwq5e2=$EX1tm~JDvh4&kFEJxWi1) z5vFW;ud$hpWo7f=R!ABl-+T^p?bI{K8SWT{7oeyGmb7m?aLj2apT7*pra+)Le|!-V z_C9MrGT8D+tJAR2&pHt`K#yI0U%5xi)`k#V%dZiybMq0yHGeb<3|C&IY?%m$jBaO= zFYD&S;#K)+91id&ytIL>?7V^+%KHgkeyGY@8_xJtY4QfE{*I}&k`rvYrEVhn6?3tx zym=YsTB^$XNzg-{S$N+{F!rWsD=>e6ygdqp?xuQGz0y;V!wDN@!7u<;{Ry)ale3_K z{NUwS!bFg0EbfG*#`X9FB0I4!%VzSIjsL|Y!8-|lXqenCPi7j11Q@I>^P4~; zZLaCU_$s#$o#g?1P@P+8w`j!6gbixU3i~3-(_iECogb-BQ+}9+vD4(xJjBHVorPDq z)r_ObNj z`3U*nYslseouLlg#UpS7k+OJ|4&IzRJz>PXsQ;Qtx*X9lSCoveXA-;p40+w1#36YF z=bl_&2|yG7@g~V}-Hp5nL!D*Ww;1CnkvmH*k3O|3_TzNOPkmU)9^FZ5EqT{4 zx~GNIE=6vf%1f74J4*)n1+cSsPDpY-{=PeO|_3xO#H* zq?soBnwdpVUU{rBIg{RO8GvYN0JVPu?H)pC<(XI{w)VU#p{uwP&0M2xfcAouZjzx2 zBXke1K!z`sQ%>6q$vRb~&XAKkOdlr9r z{4ECrloWwaC%c*C>pJZ150L02L8Z#jKu)ccSEa$sY0Xh7$#&UZ&s(Z3RjP+GeJF9K zo%n*UCOf3T;E)~mLKaZIS?otaY}*(Z0@v46K#am$o*4@wN@{UKt|nGzw7mKp%86KL zM_E0`a!PRQ%99y%Pl#akzs1&F74eqULlWs6Z#)-Mh9XGpYfOpBCOqe?DSzF7Zkwxw`7$*bR{cyzTzo2a zxm2U+y_D9#KtGiOLC;d2Ih^R@)=Atwh;)c{AI0jisf)DJ2xE1a9DEl9&@v>ei1R3+8=^9F z2nX%hK1ePPa+#5doFfX>+vcqCtM(fRp!>soCP&~sEz8lVWhwH_b=~Sau^6g-)GxzF zGOCL?MW->r*Z+!6OiMs`<~L<6;mS767>(su#-d_V%CG>9zVeI*`UY38U?16r%1i%p zw1{qMIpj!xv`vx9ewDC9>0)Uc@mmtzxL_#`{;32g3jI03yXIk_Rt+=m*}o9uL|&Qh ztkYPog<`~PJ&JSw)>gooBi=Ifp{j+dS~?ZD*csw7MPUdZ!0 zR3ymOo0ykWxwQs}%%XgBm(6cfWtr&f*nV0fv_#;iDb7BmfhMbjPTI%P4jL-!pbI0~ z$efq3DoL-JK+w~uDQ&&>6837VC+Gh`wmnkLzS!nD{dCxB7_Kg#l7brSGpG}?YLQBB ziIq!c!{S)JYdMjZ+vr_{grQ_(T3!Ij-WfT_?6lfifz}1@Hm}5nU=rD%w`lJWXC=$= zm#tJ|dWuJmb--xbrW|Wzq0h{h=YP+jYF(8_!0{!zs|f9>S|2sFIpSG}gS2!9vNF!b zA;^&=1s+@mH^)H(9TE^p!OR(!rKu>K;&0)T+ZD*anNVy4m1Y`$#87UWj?p-+qEe>x0s6XbpV+vCgtx5^+4mWs|tG)cFJKLRJXoiB5rBT`zF`O5Id8A9_bca}N za_$aAInBiT+*NOUg!W)}2i4;LtG!#H=Yl!bqI4O`-CEU%8^l2;p=i4yn@21(L+c=r4ROh+7Blcn=Gvs5l!x3VO!I;h&( z0;!5w^@c=ibE#?{n^~oDJAkT$&IlX=jg#yM$x7|;bm5+rsu=Xvpw~I3WKhS53D2at zYn;om=F+3&?hVt1ZBtr9)@~B>$%>FzVGP1;~2_Q(%%99#P?fJMs@;Asr7aaeaO0I$RkiAf6 zOVySKUQYOtDt{V5#Mo9W$`K~>53sey%GMkk*HKRzAk?K!C-mi_%tWg1Tuntnq4&Y( zp*s3P^@ar8ov|NnBVZUjV>t5H89!&HA?B)rNu7>u0v(|y9Ln7mtwmNly(+>`jD+oe zW$q`oQB^aU8VXsF7QGrNQW&fKy-o~?vxeU1GV|9!Uh~B^ZRpZAf|iAfdoiY&XLmhG~C|&uvsX-#&h8RNo7aM(*da4TT@WC zFKcn}cROVBsLK$+EoHO8UzMBTYuiweYYRgd*4@{BlBN{3uI%Z5VgET@@~q2YbwH_K`H300$4H zanW>Lz@Sic`KcIZ^xoJA{eww*dOQ;oYg-j2joy{L>r5A}z^niaNoG;iQ?UoMiQR@X zEk~;(DrvR68eOfsKnw0Z#4<|sxZ~{ch{2*Ra_0|wG9D#nU=CN#C}ex;3^!4 z-g`VqJsMutl9$3j`spQB0gAxcL#yr1(s(A;>v+2Jg5jz-2sU&y$jtACPb)S`E>XD& z{>$~mXLkqqF0rG${T9cwcGE3==rAnKkHA>pF{UWOPeQtmKLuWGY-R0b~-LuNN$rlr4 z;W5L9#L-f<^I=H{O21284J)Xs!b#jj63SzDOe8bId^Jx`bgL+Un)2rsmeU^` zmwkao0*(Y`VY%)- zto@y1W2D#$@_I9jmJRgf&g$zZXRa~hVLj~&78}(B;`LzIfN#Wxr6IBqy}#AFmcM{2y#wN>QWz>+67x|oLkZ%e}> zPjlf7szU3s90&E_h)}s>&X&WI+$u6DB1qP}1`{^v`IF_}dEoyHJ*o_MqufQPlRg7` zThs_RW?EzH^S(`-6W=`S_O_%x}aAJ0jUq($gJ9ys{2@WLI zQx01PU?n!opk21iDCH(rPnj8gy3Gm0Nr+H7_CyJI#Vt0n_(eZ>8$L^U?M5@Ye;2A% zLPcmVo5C~o(YBp>LPOxG^~R=0OY9wb_;~GFaCljAr2%fj0O|Aw3_ZMnWm>4$1_i~G zlcG%YspLqfdglhkS@|Kh3u;T^c&;*0vpFUIah0>tToPLtHfdyM{U7KNo4^aLkvKcM zorp&N9(j12AEH%iYfs%(L&i9PBw?=(?#jR)FThEbO^^r`q+$u&)7B$POou=l(@f;I zXAUjSGLb@=C*^NtF`#U9Pl>e$c}?1ZjBHewqUzZHy@R0@wDL^FC`mXms}pYl=gJGi zw&duib;wCoSNZ{RvKa(7NHLW?&sj+=3LK*$#O%`!XXG(jx}C=yK>$0uCqHW48OYHH ztanc3=z-sWpVW+9wZanggNxQlM>R@;?NVPYcnm0va-J0f!s>lC4mpkR>}?e zfJy#pXoa){_t>~B%zg>&F{%*2a94M=m41Ujfb*x5vshSCRU%zdCrg9hgIp%L*TN{2 ze(TXS0#z^<)l@s7$9nroqYpVeL$@B0D|?J+Y8V#QQ#OL(a%Kg#kfPNHm&Uq%4mucF z>527GGruBQkn2ErO%%FxvZMC#Tt)%)oaJikHI#6~{9ZpgPBWn)m=^-+HPqK1nBj}fOK2Gk^239+0NnqVLQUeYc3DW0(?kE)~ z5iHSF3}tN0pN95bG*mnvBx|s7XNZjbgn_E+d$uV+R^f6CGbN~XvK*euT`OBneNImp zj{1w=nhcv=*yZfiP^J@OFy~n#Ye^eecQde_#}OCkM!C_s*R32J-_`tQv|eExM6P81QAAkF;ADuIAp)&9y3)>j2mUk)z99@Iff zZo#iKN)azv&-0}H=*LmWm+&5(NnsQQDfr;edXh=Lzm2tR$ZmHk8k=U)3Q{s5O8*{I zvb^dN@Bu$Iua1IzU0uuT#^)=GObu?YnKtc}MMZkipWw-ER@N~H*>_LX3?P(zKYZSo z#C6Rv(G-zbyvsIj>Av~kL}D{_S8k-ZuM3Dook5t`XJH&o43c^!IoH=JdWza6^VJox zvV33uaTaz8%?{+!R4$2+5?_N*y^nP_(q+efcP7~3&*Z>k8cN~E$yV+Y-p}Ru4D39; zZx|k!u&W7Flifzfl|WWZQgL%6aM_iYXgcq@R8xY?KrXiPl4a^gFxOE^FySq6!ZmWU((QKf*zpd<;2YZOG1;ww^JrfC6iv_(CPa&q5y1vTW z%~7#4Fanf;4X>S4~}dg!gfIpS*z{4y>|Hu>Yo8koy2F6h}oXn?-K9766y zke9L&&4z%>iz4mPp*LHhx(j{h$HD?*bnj7#{IJVzleWfgxTKAlKcdFjBv=K%5m{GD z=`zcu-xgT5Nx$~4il0aZaGue!pn{vmqennm^zzPFS4fU)qI=ap`Gb*Y&gN(tsS#3X zvZ2A!(r2mLy%iDWG4qvbR0~wp<$6mIFA#g<)}v^ugp$H-s;~_>nOTK4HQdebR$wU$ zbl)}=5MM@qN#Qi7=vsei_W;P{>5kE+8iz~QsR9C|w}$5@G?Ds!pmPF0-qZHyC@*kk zL&!{1m9$)8a^qF9moj+hNvV2v8F0e03yRHef=*+L171l(Wpvf#|1MyMSXE(p++(&* zAOQBE=~ED~V~8c@-k59GCKM#X08G=g?_h|Dszm(;l?lFA_u3T)4AIWV7s6O0X2`;x z-0=MqFt|)45K4X;7{`UGB<8UCdUQOJDYh5u^_<6e6%i{BuYrpx^tBZ z=&{M``fRJbp5L92m)Jzk*Pbe)Gvd-Y(I{%?sd56d8yf#9^3@Pb&Z_X!m_68#aT=%S z>7mO0F;W`MG*V?~5x4xfM<5q8(NuCqaKSsSdWn1-)rB;RMT~_38Vq`Q@C1C+(Q|_s+b(>3>KW4%EsQl8n892z5cdS%-%PxwC6~ZjJR|E_+ z!Wjos=E)SV3LLJ5h=G5?H7kJt(POZu+08OXdAvM&Ry}2K4Uqa@7*S{gT*u*H5i0eJ zhI*sTh4OFBI4e;?XtzPSeSw6kT-5Wb%uQ=Odx%_fyVb`0<(MeTB&T1SJ*XII4(2Et zi>i?Dh3p*UPLyIUhWa(o@M=K?nR2+x9-kCzi?T}=P(Acg&xdH;BvPj3xLt5&>~>+> zF@MB-%BeKg9jjSWEEf62qPU@t!)VEdMsAY&*KUi*b&EZ<QV6hCz8_{kOi)Xh6%eH0VB^WBYt9T zk%MWm;@!w%x2(q|l%Z#hM8&|DL_NVS@Q>U<(1mXy5{oL57)SSV-lW`xV;Dj^AnYG~ zu7UJ5b2m-WeW7yip*t4olQ~*8hZ?c)OIxCR-P;J4=WVzuo@ir^mM#6vD%IHAP5TY~ zse3`Lcsm2OXL|Yuy7Z;WthRBQ_RLIjY`+Y<%p77a&k=i7PYth6K7IzfsYl9@_H9@a zV$F^+X#&N6QHAmnRn#8#j>;%A+0*3L*B4!g@zh2z3+y&cpCY)HeF<=8s~YYPGYy|C z@)=f)EiPT!)^+2LRu$PVT}ZYn5%Lji!8K0Owt{yJD3%Dlo9sAY9o6KyijY4( zz(6qaJS>3P$s<(sX&E$ne@7I6EHg@HW;+GpA(BIhWQ2mV66PZGG_blR0wAvyGiJ}0 zXi|aMeN+#b_?4SlU6J7o64MraD|V9<{bA6i;I=tm%M44Ge$;uy>5_I$4yL&2+D`39 zAWP2RHOz1F_;ZlDm!4W%mZ_Fxhx$NE(*!QPj608f^^4(`_X)C4Px4<@3$u>0YE>sQ&leAJ5J_$|fAoY_$@1rV_;x#RswC!Qp zGNUIa>m`FhdVIxWluDe2I7?_I1%GmxK?*h}88J;tEll`upu6;F9?HmOVC+JzrrN$D&D`RFtL?Pq>P&+D%OPZ^rbh!*} z{e$r0@=9i29hDM+F}*pSj$U&?lV%4ic+Ac zP0oS?^FdS?tDpq?HdPa>w60Bp>|+d2fs(Wb({W{)cB4tG>xQZ2!66uRyHiF!gq~JL zYmk$wok($_8x$#Jz!52}?I7Il$Xt|lDvhRpchQA%pB)G>dA|V%eD7j~Nhl2?cC>;K z7gi8AfimLz+MR}3#T0>VlWsxZ%4$b&N?tGdteKnP6tBKP+`YC1Lh5`62%GirbIPf` zQ^oIfmEEOLH?&~(c0sq+!pxueshr!5;R}CLbuKuzYhbaXg_zFsa5ffVdXD*7N<+Or|7~UVM`1-X%*Fl^R!GVo*W^iXBpX;h11)~ z_U^#7Ae!-h)ScCkhnOX+>$&>?Ma*1@4Mk+vjL(%C2H3TDA%dtUrMBflD-PnfjbK-E zJ*lb8=)1=$Q`!X)TRcp~nM_Rafp+=z3F1;cH%at8qfk4Sl8WZ(>j6$$YiOSrxTMN8 z)SCz@kieWsh1{*GQeOJRTqFYqbHV*pHNN<%-s5PAUk5z*tMIyD-P#CjOp6BWsm(x(F=1TghKu7?UzxIhEq37 z-u%LAL-fp9Qu9=tPyYDEh>#ts+|dKlDA@&N!YLxqRhiP-Xgwkm_!d20>TY6Xr<2`Q zvEO$msScee!KOsnGS^U2kgXV(%tcrc{1d@FS2gZSzN&I;xEY=LIrr+sc8KLJigsQW zsH}Fs2h*-;xfYmGBo)>G%{LY&4wablfG{^eUW9>IlXTNMjBwd4K{xqb-nLWWNDA&C>|HVx=6~}cM!@dM);WM2Y`@MPb??bln3Ptx*lR$(LR-?LyR;z^Of1h zRU?L-=n)QVR1qrOle~AQxNW=^RbGj9oAe(6*)L78Y4;1PFznPp=%3R@D#P`runu>R+&Vbk(q@3iNs&@C3J&gShnbDxvw9 z1`+N@cu~JA_(Km3;~M^xo=pOBNkDR-AW584(QrDeit-P#uu=qFW%vEAxbu`*=shf9 zg*UWsQj)adIay+^1d~~&+b3~jjXsVkUsYyKRh|@U7iD7YA#<*Qbf=E zKDe}Lv|Qh3PUi&jtIFb~aheRD2Qh11k>f5sd^=i=qptMMOb*AE`tnV(J{K60B3EC!-{sS%x-}XS%yVjuEH+u? zhW6{}&N=d9JFW$oH(qyq+T3f8tn zs%sUkEnc0DbIFt%i1DRuU=ckdHSP(fd*Y7bLUJa>O|Q@x_})_P7?5n@G1w6|)Cs!J z4Eki!EFeBw7E?B!eJ7REZserN{+Gb_6WmCkbZ&F$xY)4C_xHi;O?n6hWv zW%c||3 z4(3x>&g}v=sk5|=DLy&h3OF{n4halNp{GYT*05uO*)AVd=E(O!LNaJ*Tq5cmp=H#X zG=pVnE#c$@RNHlLH8kPe_R>Gf$mA}V7!9`Pc0=~Lc0eiFlh{dgGEUT@k5mtvG|*4; zfe;u3$;wl9k!-ts=`vtDx~;v8oRS;`ImgCBgHhekgI!0Y-%_k&i?|R-aX%Kt36DYD z-&C>uD~*hFZC03SDO1!)zWg7MtxLs2E~BY|(1o7@$h%;udkGiCJWx1TvNFt0Oi+-> zP8GICmVXmiR$-dFp>DNekAt}fd6ZA1XcSD22xda|gTY+lJ45lOa4pKC&3%DizU&C= zASAXbV6fMb>Jf42QY!$;ovoWTfGzn-54A76d6HOJ{S1(wa zcw*x`>>o9#kE-Rj@(d3T(bEC|Sn4wQ(+Q6KmgD^Yao<)2kYpqcRAy&YywXua+P`Gc zL^_#yE2)c|7|yM_m~I^?gUX=?MW!T2`tt4WF z%OnT1{KW%Qmgmot6H!GH)%-OwiMUM(ZBlXRY8fB4qM6~Up!K5bduS1+X4R?E` z9|6GHuPI)5nT^5&s-N=kEkKUO1+|n`*hO7$daH1b`bw9a4|x~4<FmlawWPo(#W^@XY=T*40|6m3>ud zyyIM}Wo#)o)xyVdis^I;=Q7|o(42`fqdtFqM45dl%*$UzMz#i(Zt0HqwVa$7WKgz~ zK?$d}l_3*#k{gA;5g4D@3M-b&4Q+czNuTdI**&_p z5hXzzp#oe6B0;Y^VrW-^hxmb4US-DgKPL`?XE4vd78?GOV(;&g> z^hj;OVRL)ij4c!cYOaCZIPr7vFk*ll_<>_zXntYR)|TdAW~w4Anx0)73laue>SNE9 z%d=T|QkP_##J7y|!B#wtB;=tHB|8(5+a6Uqwq`Zn-HS<7+6+r3zv_T_o_yFGVs4hA zNuyA=%DbYr_iRs~)jLJWY|q)ANO=dV(jF>7CXaZ$E4a<{ZhrqpJ8@Ye9-H8Vy zWIqDtux>LnJE-{QV7DD07F80P+DR1WK8;U zesGS31fxnTAMbd1|2oS(7v=z!vp)ky{z#yx5#+oPME71Z=W4SHTtFha0eDUXF-aHo zq(w6rJQWc?gZT2x!&cJV+|(m>XitN4(QkG`u&6eOmgQR43>7Y7DlJn>8Y*WQJKwi@ zVQ=7_mcmRp8tP-GgRv4(5~({I@rW~28e9dWlZkMVd1Jxuv+9jpJ+q5)U6zxzs_es8 z_Yv$7+mbV-=f7^d#H`}EcT~X&a*?J24cl(XzZaK)9CFeA@dEhU2E!YCBRdWS+&coU z8nuzjLHYs~ntKtRAAzNiL~d}@I|wZxt+)L70HxqhJ#!#Pl{lFriy9z}o5Q@LR5{Bt zx@)`In}G?;(N6mI<;F9axH@?-C(eonRJ0as^#p<6=?6ea+;i7+sE@G;6_Y6K%`n5f zv0zGJOTd+O0(B4xSx!7F?wPgVxJ0=KlK9l zUtn98Und(XrP`Lqn$mi)3nC^{6vHRkv6Wo!2}K^&^Dir`vLe~@%U}|+c3^Ig3cb%h z1LuhCuL{Pvu^PJO%iUsz39EslE#nnh0Bc^j^xGLnZ;hqqL{#V)Lu%hL`xw-P!LOA; zXPVvSaGChn&=iuDr3>I5MoO(J2U{Y4o9LOz*C>*c*!*+EK}?Q}YYF*3MESio z!zfY_5q+h8AtcaN4-Y`+OROg28={~cd;}BR^VUd$H>IwZVILW}vMm&PX?ZTr1r4Pi zg;lZJKxIn%O(&uEjGj~nbC&&kiW+#(O$*Je+TUGz_j0Ez?Y$precB3X{1*0KU$*2N-886^^{(?jVp2V=V%6YRYi$_4r<%hl$QUx)9?*ATX9dP_cxifx!6Gx zo6CvLZcVv+O;~ifvQN>A#(=D*S(r8wI?CH>TptT^5k@Gl^Hh1`2-F7KERIC$z-;+* zu*7=hm&%3;qc=^)>JaXM<&nofPc_(WrYdz%J*Au0CL>yI_JTUX;}d|Tsg@Xf-O3;n zRRwhMhfx02tzyZkq&iU7sw%>&3W8;t^*;hkTJ3}8G}D2FGS=Xf?c=nk^37I1ikW_&js@u9tv88UOyt4sfIcS0V zx-l-6co~#n<~hO6&=ffRjd^lEIbajSm(&StYH(M{Vd8c?bz>cUh-eknGo^ zQ(+C!KPopvO+_}fVLAy5#oLO5Y^D1r$yZf)j)=Aj=yi_fs7S5=rB9Z_&7+;*hT*TG zT}sIk(;tQdEhAwZra}i)96nV}m3LdEK4wY2##B}kdAydF6HAJl|GK0!jq_rka+ze( zKUh}&C^YQy`Aqa|YLbtX`RCAHdiFt5aY=Ve@vmVKJ$0zDobu$H{t6KivjFX*yPh8$YT)kMt*->sWeFJ*czXRQAvN#NH#W6j1nn)14qkzb#AXHIR z6k9@fHYsy*SyeSJ>neImAhqFCb0M$l3aII)TMJyfuuv}FMDk9GOcM{4+_hhFyvkrs z(?#8Hlc9keN8x92Met7Uu5Wh0(Z|zI1$D#g{r^an_O&>=MLPM&ubaYI|IiagYO~_Q zwf8L~umwQS8#>lSM&VK#jb zSgwRg%9FlhYW~tv!fI;oE6pEDU*Hb|g9A!fWh&PSQ{fUbABTKxjxjw?E5pZp7Yg5q z)8;6XGpTF|n}lZay-7AaYV7YNDhFtN3yU-QujAffuuT*;HzjNrMz3+FB!4LChpgSv zi92G&;jp2fwxHi}wnJHq^O3q< z60Rg8E|i#S(za|jTvFi%x8IqqxDq9(YxK3l{L@?cd7E$I)4B>EOsZ;kwR(ryF8VWm zXzRClHQElp+uqN9p?N7Y-Z$J#~5?>cf7jRVvdl-zk{L^Yx4EYRUXb9Znl|L zeo?AKGVU?{_`-}Pc;PAwEPGgm28?D~{cajg8D7Mwwf-`vi|rGh8yvy%lZPS?9Jhr5w*)PAZv7^y5xnMXCuslyW#w^o_K^iNR zU09VLhOS|u3qEIMbBQ^ZWvc1)uARI#cd22M;|XkS=3;i>`+={cJWP2!m**ls=Jc^{ zM`=ID$H)gym~8(w=3Y11p!^oW(2CA8ZOZeg-A?iOkp9 zTB7Cp6<)tS!5nLH959vWC>P1x5|4#hXBTJLgQhWDd|#Hh;We*LTFY?l7qj*{6^&Gx zm(HgJ-TC$L9#%K~J688)2m{nmVUH!6v*n|u0BFPKJaX}s*{W5Fr}xM%o?RElye0E_ z%-WTCTBU)s$8}y^`4j7`u@FGrTVLXlXbCA1+OZ6)?AyqXL(=(i%W8vy;@kN2`~uqN z^OQsxIe^0&KbqCpzh%6|esLH=NP%lbmtD3B#dm$@Ggd0iFChEEvZ; z=UxPey;arJ;Q(vKb6$HA&evNHIFC9L-O+?z#A;#jS#obHYn!{4-y*I7oKbt2=3lH* zikL|>QoSP^3}wIjRpRi5+8p+wFLM!3hSi16Bj7>3#g%a)3p*S0E@)Q5;r1vV# zTI~`#lE44*39xT5uQ##a{QK;4_XM^$WeKY|*^vQ) z=khhR0dpi4u)DIVWvb^7Mw$IRf15l7^y)H|Rhj27?;V9yYnK9)Mx!~;5g8bU5wucV zNBF!aYG__X8; z!!J2~*u$@>oRGgR|MY0Y*GWIJhh~@f6du9D8Ore3;}-LESPWC>rMe!TKFGcj|1=V0 z-&g!_=n5whG>eC?JmTw2_`UR^RE>Cp44Z6G?D5N5{CcCj*`+0i(7J7>)>=My4DMLQM9K%#u@CYJO!{2-@e)k^$Y}k>_p$=oW4Z zS`>dTqjKkxROrdSAA>)Oeq`sBmxF&N^>q4_Cv)Bbs&Cb@MZlSD=gJQo*jUbD2FdNi z0F(Q$?CuYZba~L0zrEc9bU%Cp%7(53_o9DfU6;~~SQ#@7o}I9a0fwl=Ag5~JF=GY~ zFB#7d5luPsAsqnEySMqZ0Xm9|9nRn43mBl5;tJz%vq}9EEJMn%pmR%@?fwVsugZ7^ z#mj7$e@W$06$hLWwi9sQ%it?H{h6{6+QK`PR$AK4V&3Ds__fgzUYl5s0g7Tcpzk+< zpBKY?vS1cJzEQ6>Qso(EJD`u#yI9%TV@y%}7EAesiV(7GDStanBXKl#qG^IBW4(G{ zNsyR)-Vd0=8GVZ$AR!a@I%*1Eceg_YYn+iS;irrUX{fGItF8j5W8;ANmN1_E^$ttF z{5w4S-0`v{9!uO}rYQP=0lH)xR++q+2TQc!nSG(|D4Fj;iK2d|N$wsj(aog!VtDXo zX+YYb4|v+GAY7^*1GbqH82Y5DZ*WNw{GM-t?c`K;Rp)DlCrd_?;Gg*6^cen@77Y3R zREjeld;uI^rB-m|I8$~S%|CBVd=3AHe7D|-0>^;Mn=KSQ`I-f!jYQa;Od(&VEO39J^7f8giKBVKJyw0VC2uCKWwAN;0dmw5 z#`u@UBQmHAU%Qm#kv~pxW{Z3C&*5?W`mvwC`ARc?xkI2t)H1hCrkHtSq&natD_bdm z6eQh_x;iVKLR&43JZb+F$eUmD#PcaUp;t5@kKcG~-cYc_Q{a*vkxV%445y!P58lyf zE!zz4#+m>0jJIw!M*iK*iB+Xd=(4Glxodf>=933#LK_kQ-CM;!!qxqxaxYf%*E1mA zZytx9GJvV4R5WP)7YG1u)^&U2$6o;KJ08&T1`T4RQn(wR$Rqw%x)-DLJIfnikpwJr z@CJ!>C{u33F(a-;98ZeI53}ZjM2Da7>w@B7SXf55yz@2eeV;Paa*yMh70KE|zXAw* z3bLf$6vHEjsp}?xm1T+kxxDUnGw$V;@PclUsWS5q!>;{M0FqV(K)b8G`WOH{x`335`atQl z(ndAlav+k?A@XI`RcglHG+R>uq==;SZjBdJUewJ`8p- z2#N7*E-<^TnDw|Ju*3fW^B#(B8`XscWksuhe&Tw(kAf@OtDH0}0$HVHdpXW0NSUhc zD2`n3DN??-#VOsW%Zu?WFF@;Uo@~+vJ!iE2s-;5z5zOK|!LkDZ> zw!dbXC;w!)M>LkG{w zWoUaQ+xaO|Bvxm}P6PR8Y#-MBvIJ`!?Prj8e`k#`L1*x@>p}#tm)|moL6Z@G&nIp7c?HM_%|0 zn}l&8(!vWg8L*7G4*d%wrRJqcdJ2@V-OS3*C$gNAW7WxSG@|65!Tjb=fq3dvqfqwY z^_M_(Te{zYX_B6?u&v7VTDZX-BQwycwBU>)nH$NE@5e%K;TcX@p|Io8L+Ii+N_WV( zO>CsXc4+p09eI;0IniAnHXN~nsh@WQZElTX)^>&Lt6?DThN{IERN*FNp|P>7*dW{#H&AE1)p}GHNvH0TcG>jfw|{0 zt?NDH+YMc-Ab|)UZFxbVL}l~$yZ^Y;WY%6VNv<*G%WUjJU#O71vLoD1salptMoxtS zQo6C?wIhva>0{!o--farS)mZRF9Vm+i^|D2+n~w0s)EUPpYUm#o?w!xEAYY)25J+1 zH#)Le6};@#58NrFp_sNO4AxZ~KutQs-k{NNn;;Lol-J{~%mip;nbL?|=e_`|-%{0|3gSjUYqw z8%*>XYp{fof++ivAcXkYKw+EG#!DXopewwLhts42%&D-nyr{=Y-&qe`4pddQ?iP>% zQ3jCf=ODj-?l4l3qMysERJ|*eF~jo!{_8b{U7o!F&?`Igt7|r&F5Tvln{^D6Y-r5a z3TBMhtqF9NFPpLC9w~^Qc&5(MqbxFSF^8NtlxL+no9ck)RvVNNO^jE9MSh&a*{$Bo zg6H*g7s=_Jth&`KZZg#0twsPAsb1w%!sSvGh-qdwfN=CEpH?<@(-NJ$Ct1*x_mg@6 zj{Ez-?+;Xm&gJESXNRpuF0oWBbKqrGU0>akCf+e%0?~1HsWpWoyrvp7g$!cGv^j=} zqK`B@`+`4pQVr?Mx!0$W9*%(z=gRvH8Tgft_r$)*nz<#3< z5PRTb#Lu}Q-atcA{Qu1GZc(a0YPoWPd(H=zBJCA~cAJk{H&&Z0Et<;p10W&zf?z*=U zZH8QO;U1_u`XWGHu3+>=6;*n@6KWdUjIZy018U?JvWh!;cs1=Ec1gu*?K@#c9;7z2=FJSH9Y7d8Tm_i-PET?Kpx@@Tqa?Q%gl`=Vupob(UiTNeq$vV%(K2@afy~reaP|s~r zW>B1{zCdY+DOc97XRilyqE)+$XsI3o<(Itz_&gijCRz28b&kHw5Y6=Tnld(o%{Epx zhi$5IK{pkf8mW?berw5VeH-#=^Bz70eF~zy)suqcVQY7u1l0z39hJ{#4Ash19C~^A z?i6r7UIhqrFxbn1oJ{QFE-O9vSo9}KM|j_5*yQQ2jOpwI@)Vl{Ux^|GQyNV(GKnlD zNHk&^KZJjZ@QTxI0kTsSSGuekkng}63y#3q3r`q`us5LK7F9UqFg{;d_z;*^z}^NE z^4m?DYm_Zv$ai0X5#8q)4lLQ807-ZXbqzYgGbGqmk(<)v-po;3O9 zJm4!IjoR9+IIBGR8VWwq0akm*;=too7%a637ZiI0j}^cl@&87Zmx)RRKWj-NtcVUB zf6fE(=(v?7QzHPwEIq1%46nkOQkSx(9Er4ev_FssV?Shi_iawTdn!tRm(uXkV;hXI z7=_biVLU8?p4`=C@Mr9-i_(9CuGAT5(%M?t_~1AW(Yl-kbk%Ki3BxiiqpAV^+7U(? zjwFJKqf}q5Idhog&x`zUq7jGSQkLYKD%gqUu_g&NC5KC;K>!Jj)-Q9E%IzjNUxrkN zQ*J!Qpsxy9%zNq%>VnnC7Xdu{+bPz2YZmAHU4O$48c{Tf>xolkZaZ--A>T6}GE}mP z--%GQD148h&!}FI@tcy6%3EdJb6;bJG+(VGXKL|7!)-iL`)?zP1SFOlq2heJyV!cn zY6A-R0_X%#7)xjqmmp6w0Y}ywhN|a`%h#S1IOSF$`#bPH;Pk!baO#wT-okZPS=n9A zu*nQX5i}#KBu!%>;t!QMWUIRWE~gf-xIT@uOM!sV1Btko+R93OtAW9F@DMB8GmO0~ zBU(m!(|%a`Z3Z^?!az_;23h25C6|kx=CnK2X3$RS4XaivEL_}?Zkn^-$2B`t&#s0) zG_Q&bJHQibzXMrF1*)fF$0P8}y%p@IovNK* zWip`Xulwpq)LQ_m(~(Jvy<}4rmLk?ddLT0D5{4o5n;Ks2We)WuRqM9kcR7&hXE?3K zfsFJ+b?7P9qVDttbs=jR4w=}S3FDPtB+GfGp*jgF6}H;U1FXlRWTIKBxqecTRvN zhZ!_snG#kcq1dK4jPyE^_lzaHrdX&2iYm&s$CAPB8bD9_m_uKE$xf zgHeW0`#e5DygLzhDY~nob|x&GV8`r=GJPy3lc+~nq~MVpB3Tx(+_h>ybWb ztM0Gyt5|36F!p*!{vOW}w0z#$I>t>qO_#PW;Z@JYXLkn>z}T$21zA7rn-kByd^ z!rH2K=e(j+D#Jrdw0!Xc&(3MjvM4qhEUPYBlH!Y?Vbr46UW3bNShhS-{)I8c|C5Y~ zG*BqW!}*$8O;YF+E#mU->^pmPZhnTP+Iq+9KSVAlbxGrHdD5mXB+M3i46}x zvB8x=?ANvVG)`GudNpL(&B>k+w;w`VlW4f4Ra3a_-~;@+avksfScZr5EU>R8dU|PD zu1uhhlMK5Y(Rl8jx;-yi%|>^rzDF^{`738iro6JaF=IYvfIaiTq@i5Uq<0kXrUg=Y zaaVU|${uuDZBkCE>l`8!;JbKD9?yon z1`Gjgcjtf%r3XMC392CHHZRgKl$ukjJg=2F71H5)k7Yk&6Ai2Eb~FFPB-E&#O0z$S zgGZ`0XQ(>D+}VHg=}<8?&~l%FBku@bt&5CAS$bD(>WC38?bV%U%0$$mB`T}sl6i@s zXOe&Mj>TMF>SGiq6o_gp?%`otj>`FnsV3Y013OnxV!Rx+#M_fqXFlVflI0n!%5ozK z2eq%Vyj;VsSA57(j;P7s$Q2Eio6A_?DrHE2Ylk(q%dyFkzI?mBmsi)-M-nyHBZ6TK zWR%pL$e7w@0KTLugDlz2X-60G+@sO_a5a&Urru}k#8}w0KP+D956Tk2K#lT{n#la_ zYv3yHWY{FS#aV0XQQ*{1 zJ6K6qrIxRZW9eHj8fkLS=T4W;G($B(DymOpL8e7Ulm}Sr4)bu|&MZ4g(F5NA_?8lsMDn*ieJIt8<`L!i=j( zWN&wpJYC5|0e4u&_bIs&U4w%Q;CdqS&VaM`hq~>A6{Oab_bYP_U+C5#`LYaf@NZ`+ zLw@05&lo;!dJMczx8f7oUa3T)p!=LtHK=Q=wsM_A;O|we@Hk5^s4@CiBT9b%5!k#t zfH_tlhw&$<%ko@1J1q!+v25-DJMONs3MQpEq=#~JW@o|c!Yp<<+9t>sAkWf}WOs9L zcH!iO^%Mn3hu;82?@Q)1y=57b_C$HTYN)0IDc`gI2fDqUqO=M!{WEs*SY6Gg-!Ysd zmuRJ>QzanQvNK%o`Az6h+k?(?#bG39qX@}fP>?8PBM`~o>DiSfrZnTup;m~r=nV&{ zx11yLRYQb4Dq&EZYXqAv8I~Yt|KxDqs0hHelJ%0wNqyZnLPlhE+x{jEhyOPffA5=fYzUASCyc z-*pc~lH`-yP;fon8X%7sp>WCAZNI69y*%)=gp z7+R{MC3Z7zOnZtDkIkF#&%VAOR>~w$B0#4q#HePRz#+Y;F)=6BYLfpGiprq#(8tV2 z$X6~2QN-&emY1l02EoK_IS_(W>WIH3+qh-$$mzb2ej!DzWn~L?aJjsjV41bx^4T?z z!7betB=1+?Sl=~48Y>s@TDt4L3=Q z<+4CX@g;I+)eX{2sI8}x7MbH#p8Ql<^Ae(4jZ>aN2~_CJ*a^C9?87O(Owr`aU99`} z3!wkCGs)N-@{B~y0x@5hzXEgacVtnw*|H94R-qvlSz0!trxYC>vh@If}!Rj**TXpx>f@* zx$}TQ=#Ppds;rD#wO6oT3iE`>dL?yd{%EK=5q$moJ0`qdi31Is54T;Xto%I-K&~~q ztB$ak zqXvY^(27PBA)48^6TfHL-nSu^;lM%;b}+0mY$S{SUb$b#{s#0{K4rVbLa?R5$wOpL zfsqaGBIM5%A0?gC&GIeU3GPzlqL}sRe+|5;_(ZNMf@YG#ky`PM5DNZmJHJPIE zJSNC$Wqn?T`%inXAWIJP2D--|^3I8hMwWc|9n;Y@K-poUf(WflY7HW0g~%rl0ZCs~ z#ephVs=}WwRC={{dk77Ut|6tLfqL(qHyqm99Fz2M#i<-KpIu6m11M9JRm`VnR+WDz z#o49l6WB>M?FyyVF?WHSC~0T zl@Ok#d&`Nn4P^QEFTk@xNTBVW8r;#|_SCECn8s`+}Y$U>Z3Ai)U@ zDYv>fNH=5v%e(PCubyj)gs!Y7cEIN1Z7;$9@avoI{2I0g2shGgA<~}?T`07~X#Yk3 zRqX*Ru+IC!!qj z_XL^GDZ_G-J_S{)e*{Z^RvWs~RdV2$da6p@$ZjILJh)Vr>i$Y{B9YA+%B?^~L3_z+ zYuIInvi|>h6e6ml{Be2}5Ve!;Y>zdturB}5kb^$omF4mfMs7eodD&7jj_$0bfWU~K zAr?CxZ#YG4h%|LF%Cu#WXZ&V#Dl985v8biZyA8>|m~P;x!$z#Nh_}o6xp1{W-L6V$ zQ=g!8OE}j%l>gCISt2CkOJFy8KCIlYr*)LRZ}^(o6DW!*m3u}-9dB0l*n*!J{Aojm z9Itz8iGCK0bUS%2R=1YJkZ3g|TQ!jVO10xo_yFKLsp>6XZw8>2fB3pIGL?Eq`Avzp z&L$VEBY2<5pZ=yN26eeorQY{EnTo2b6-1^>jdjrKZHk7=l>cMFj;&Y{dIWU;J0wIv>=8zD6#sY`J?oP69AcGfg44q9?=+m|;^1lit z&g8FckkLPPp_V7{-zKPGGo0-3%rg1 z`-HNbV&9aUC&~4o)^8(0LCRxPS7otusn7ycS#*GrD(XeGxgJGVlbWdvS5;M9Zl-6p zh3(P7YuR&mk{nb1!~R`CspjJlpf1{Bh~*2ACZsaxNbk>z^34d&yCg~j?o`}*g8|dj z66T-f`(&dK8<11#{tXB!s}>YBTk`3B-Qkb{ZDCr2m3V6z%HjNN82CD7K^(h3Hn6=G zxM`8L%pI$2Dh^qH3;?Wumw_K%WqVH5@!go>Msn*#n0D(B;f zzAA`oPL!^_%!rb)v)p;GJg|W}V>J{JH;})TPx!GDf_s)?=s*jYp2c!uis6DWX$@J4y9VIQzM8nQ+q|EUdb! zNq^^&J5#m~V#uG--&CQc#u&141GvN#{udGKZRQ2&Sm8QRw%qgES?!vv9o;V_NW{SeKc^#V4s6#o=YNZca6D8R+{{PLe7L*AzEvYIoT@*PX?Z z@+i$-4++?jtPA=6L)J99fFs{T@f10IpVKCxw=SsydF8a89$QBKF5*ypdVU8ng5g#P zmyIZ7Ao&VZ{RxrZ@57_Kszv6~lvtU+kBuEuCV|ekjWoGrH?nX%K4H#Re!|jP_jr$Vs)qW0I3-%% zeGAAbRvse9YjLQ{3UW<lnVWk+R+uK5P zG^v_u=9$0fxh(hR!*wXTQ%6}yLy1)g?=DmG&<9?vgHJ3^gc>;Na4AjCZ68I55b^;-5vDWX)ml`1MV03y)RA(k?|@!*o+S8MYWL zA~MJ@$?4@rIzKo|%eXhZ^`7#wXKpuah#q?d#CTd;cxiTPxx0YPJPjlCO+`lSf8kD- zJ*N?q^Hpb;U-VR6t`fK}AE@xYoETXCedX!S(6d=i2-LY_dt5e3ajq`;s}O=ubdO6; zWwZHdbvd4=x+heAdY?sYdJhIvvW(jMpH%Byw8Tl zlN2Q1@+$1ndf>6 zn3`}D4)i%ShvjaV;Z+^>E>*7mX1L(R=@n%6 zHghIwQBeh{knZ-%`vQhu)osD@qsPdW6I<9VZ87cmmFPfOApuQi&+m*!+EK7_$yApn z6#Ecw4$zx^l*8@T3F+9Q6)SE3n3LN=#RIAQ(j6`bZ^G72_vCB(yKw{$G&Q1RmN4F- zN=6h)ZebT`rn<+!D9?Cf`;=*NxP2CSnfjI z-&?MbA%YkrzG(8#C`KV+G^MiS%V*~S^-9DKN+=!6)>Z;$cXAZTQS*kvBpp~BPgq(q z-(M8;m44MBm;-;ZiCzB#G8I%I)3tiGTgGcfksNct;I>`k*RB28-9LAXXz8TvdUsR& zDyh__rDr5b#S~Dk|He40T-eQ{>-L2uK<>x%Gz`hdIlhyXVVV#0^t$ru6rb8e=E<+S z!Rx!K3(FHSOQ}{uD8oe~L0)x3HuP4pLe!je%e9@5Nu)lp3AgQL3&?D;Qx~9jQ8l$!}i*D&ML?Wf|lV z%g}bnjR7jt?zp=ChMA#?_dW-v1m9a_Z8Yc@tS5zNT`V?9djgHu*l2jz8p8KgC8LmB z3%6hHJCFgR&bp%{w<*}Tx+GJ~R|fG7M1pD8<1rPPU~nJ(4jG2i??#U7HB{@E*h*?s z?Zjwp;I1hSM(($9SxrMvL}{ny>smj=ci>+Xvu(dJT-o>t(yujDh&;W#ENjeKi||7t z_tJaIM6?2#oB^jgjYm=@eUF6Mr@PAFt<&nt($F}v4YI-L0S-8H%}Ws5p#+00uCL+g z6g3L~v|0aI9O}z^Hvm9L99%ap(a4q2Ib2+ysGb>bRa2wPlx#wLlf&iJOhgp9r;$=W z7^U{kBM|UFJ(%H+H0}_i1Asys4Cov%Q7dNb1o-Y^-<3z?5s{^ts4@a$JE$Bf{O{lJ z55Xr^ZEskDxavYDB})N&1ZWG8y=Z{E+`~QZ6&28Bxw_a);2JObia3nzX^6FI6u9H` z^BaJeejL?{VY;LlmlfAm(6NzjCvX+u?NEKzcj$#RNQ}n3HHj+qk{SgV>u&=xol6-> za!DDkCWfNAlqRYcg)6BYUQs8hmFW$U&d##ZdjJp{sOMJ{{}LlYJ}enW@N8c;+gXLg zKWGhjD{nJWBWzst$I;Je>X_ z>Rrgdk`UTH7>g|sNjG$%B!+iRL{dWe~(3E z5uPd=t{O48o=N2&8fKV~HF#oEe|Bd{LsEccK7M-?a%*Mz>oDBXqB1n8j?xX;=V&AC z4lw2R3(PU*f)OPpb?9Y64mG8oB}d8a0-hz^aIjR?jeI$-qQzr%pIOzmhydpk${-h9 zHtALY44PB|Zu7aGR1Z02CC2V1%bSWtp1u3ZqM}hWykR3l)f2Rq22~5qGIpss8-bBq zTB@}J(o|_EEoHlNKEV-4!Fml?_d(s?Rca6AwOV>%AWP2c1m_Aj%ctYOjqaavqOubl zI{z_C+o8t~kF#74S5=ohwd6rhH>{v6qP>%3Tgb#9uycb7{J3=)idmy7!N;hU5f!PWASa@YSgG=ff$H!U z`7$F9qrik|0ORzRh80>0uP6r(16MOuY@{518=R};BIwcmU_3=l!C2VRJXM+}lw>YS zfY6BWJG&)OqtvYo>H>}5`~kf9Xe)DdC<#$c(2H71Pl%hpwLZBqn3j3ucbIVOsT?A;t`U(+t61 z_dGGNVHpY8-_%Uub1^!nRYgcT{mT*S&xf)d7a>zKbXAwY}9CAR96J3bi(-ku47JLy$_~(M1^hAilSk>n8+w@ zCYgzPa5X|JC9UF&pfgAQ9dsJsmPKXW1k++{$+yeM&rOG1{~9KL)*Q~ayW#@n~fm&I~gBe@e!mi>@0uH;Jsd*&ux}AhnE&m2Lwc6 z3dMPC5^uyJ$WKu;gBjt#i&V9eM<$>Y(|SPgcJhY0B5$-YJ3k~NtFR@*_0FcIdI!g~ zC%hpX0apw8Hz!EpbPXWF4|>ps`&HiNcquGa_7hk9Wzlep5gAG9_MOWh#u>`)rh_6b zhc|dj2n$v@q~dP`wCmp(gh47jUOq7p)%qvBmAsCtuUy@X?qeliGih07b z4!m=V*G)7Y)wi=0y6)E_n$~LX>7CpZ#v(jYw(jS;zt(B#GR+`t@oXzIWAI<`VZLj4 zMN)F!;gxDWg-Sa#RvXG)NKzkVnJeEez&RyC17&hwDH z*UUV5GSf?wZWBZ?fCDU+5#AI%>8y+S>Vnl{oVcQC<(w#o&RRV(^{5$=^>m-Y(!TC8 zegfQFSH&jF;6HerXFmq@>vvI0ObxCt2S@YQf0{zcP%74x^M2dDQzm-6~YZ70cGh2SA9RMs} z-diSa^|}a&S**Zr_O5)COV7+CIQf{Kl)ft;7H6n<2kH7DMt|X*5Olxpe{+##rYsyb zjH${I(zph9v{E^{$#?sJpGP)>Bu;A3eC;`2eCSp*h(E(?(|UFx`8cMvc306wSY8Hd zxGSo)0v`_8V*l>&E}Zy@-yj3!s|_%f77O79zqX+khYV;BVmYjQSu*`O(3g9(I}O(pyRUl&4@gwt0+jyXBg{pbrqq%wLEkqQuUqkkC)Y-L%gTkb7y;0Y8HbE zAn3wtd?VZ0W*F}kms8Om>LGi-g3}W!K1-Io2H$<7l72Z|Wp$8EcMp;mG^PR~jg!{5 zg6x`EO{cLrH%US~>_SLW-Q=ncW)^54w)p|hRckXqs9M=a5TU|F*|!4u*mr(VX$BXN%857Ne%Oel(ZT^*!$u1J{StwA$pwDwy|8jnJyr!~N@2DqH7l zT0lTzf4?jSFqOP!y0G+~9C=oc@Qvyi&}iMJ-s>PIyI#3-;Q8w1((z@pQvQ6@>eNFy z8W}A!SRQ*4f*n-ljhS0Q8SA=@UYev@0ntwCENt}v(=RvFLRnnx&h>a7;#Oy?(n+$r zw8%kh*gc9TmA8@I?*w&Kon${C<}s1nze zYmM5#5uYpHa>;od>vmsui@bWeP-#9KLLPqIUOv)*P`lwS3&{Z1++g#Q6UDj;MSDq= zG$a0P8ztv(EhX@Pi53{cy`)smG}(3z@|_K)sd0Vd#-j77avF2YiHMiQK@VnX3*-r#e#c;H`^Hf3sGiV$&Xfy|0} zBeH!X_qBwSy`I3`2YivFn^v!9ZKOjb|EfSokvkx86XsM(*Trz%>Dz$?cO67;u^FVF zaWX%If9z;L5~nnS7+QQPa1TQ~^gl{eO$kHCj(nuBz%E#Xzeal{k4ff}APp`tNw5C)pBSb%Bx2AjcnY}X{z`9HE-Zzu7_3Yb{S{PXMdzShM(h1Gtb~~< z{xuAL5 zbsA#UmwNAkRDwTw15&32myIR~>RN`W6e7lbvUMO3Zme>*lwAj*)^WY{y8|Pi3D2?c zV3sbxJ#{1S9WSb*G3iPOlwUrNORel8cPzo^E>-12h$Xt}Qwd@jFIzB1a_rnGI=wUT z?pb@*0R+u5_-!iCQimtT%93@^$NxI8>~}pld2R^hJ@t9s#eDtw=e%<0CALh1Ygf5=eLjwp~EuXuFd=cc~igdEXD&zD;w&Nq+YPb-%q za7=w(A}5a^8-rOj18MVmi2W#vF9J3PM5g*l-!*8Eg(}%g{vfT5%5a-{Zcu$#Jv329 z+{fL7XF-9}Yy*=`7eVt3F3yncC-F??D&G)D5T3(^V|uf6RsK00iaVoysb5=p)3T%< zHn8SLTw%N8C@%G-$ygFS>N23WjxyB053*KD>0ei{{`JZXp%EP|Fo(uOtawQ)>9-4{ z^SRbfUG**XU(Bm*tM4tBRu0tK2)(a~n6(ux!0ueubq{BMTT)V zdA)S`*L35RvNYaadKvX%2=9lgu&r)Cogz<$KpDTEfZ1OL!=0Un&MVXVOz4SgLf}0- zR~F8PG&`>($tOpx61v@V>y*ec0+UGm*B}td&BxCet}HDm$7B;9+r4!$=VO_YD&C{A`{B;BBx>D_w^c=M^uU_gAXAG|5E{roT>JfNVB_(LUL7S z4qJ5%rm&%fU8z0{kb^%1tN)|7IbME0SRgC)OpA9mnt9U8K*4QLl}izEOKWIMf!ifA zEVA+?9`L7%&jfE#uGVCn*Cw48n_-#KiLYcZVgQTjStbwYdEMWs%HC4>3`&myJDLn^ zH)6u}7-{q@7~=htn9@&aD3eQC8*ZG(Cw|lcjq>Gvu-V6Y`0hLRBB*({ z!?#0@bLMIlGC@Jn(STHUmT|J8Qra~)9YiL`u)A8p2T0p6%&5B$NubM?-q*i|afe`~EI| z?}cZutN*JGCgnA9z`D4!8;HHi)X{=gvdxbP`CUbvvfxK6B~DF{4O%BwO1ohks8Lx6 zb5*cVX6qXIPR!WXDcG4*zuFs!f0ngeu7%-tmRU9ioU(7IjLCBt(&RYm!;R*$yAl+% z9}6N!C*aCFb~_|op1QIURMz|;wwi(FcbhMzwAuT$C>f&2)vYvVeW^Vi; zNae&BklIca8;m-#4>zKSRk5xt`s-H6P($yDu27c7n0;2#D2;x8%=p%Bypo}pI)ppO zg=1jYF)DSP%z50K0;3UZ-2l)7`*Fi3Q!Ik~;CK_t;UTYc?kX{R~y2r{defYPQ9@Nwv<>@DT**Bpb zmk#on)-?}(%Ne5`AU-o-+hT{}dY3jM_q+b?b@SI)Jx<^rCG~vVS;u?%MDd#t`MBPq z^Y~zt_=t_zY8@ezZj&KvL_>*hDl}HG55!)j`xBa=7~8#x&kxs;sIPQZ@YhuwzV?w* zF?s82R4G+s-SMuO$#_^fdP;dsD7u&{lv-4~B0!b%br)|2E}5$<%kkt*y31u932r-UnD9bY54<1216^GXR4Te%Ui z?+4+k^1h_h+%EK|Ynjx%h@F1pW{!C^hpTy0l`odLAEWNsL)zS^bwy7P4GfSEd{~9f zD}p);67FWaiKWZddpW5JorQ~1s-w1c)+gzO$CDm5bvs2h({+5_u+%MuR+Ck1i40i- zCV%8C=YL-1Y$ct=0{6~8a8}0Yj>I1c_d<){KoPQ_+IP7(E_cp@>3XPuRcc&Af1g)| z)3`A^3~>@PXST+8-KEk)j2m;)GGiguWlJ|Ny>|;trhwiF^Rb9<00VbZ8a)>neRD(7 z<9%yd+W)|NJPD3NM;9`tp@<{gqoMvL6>B7)9mjC^7^Q&&Su%{u?@$BzpLk2<1HFlc z0kbaruk;#RDtAXLN-USZGC};_iV_*4ryxG5;x~|AvwP9baT4*DF)bH$r&VA5zVFuO z4!Kr&-R#%PjuAd zT|K6*ht8;bwU0YQg+_zR82dR^r!eNKP(wM+OfhVncAA)ZJ=Uav42=(k#_gP zX?DnQK?hKKD5gR8QI6hlbomNdItZSr!U9T*?p8{wFT;6fw!s@@2Bx4;@+Qil6(FgV z09o0!AHS-Ta;*jF_*zJtO!*uOMNdz1G;kV6-txo zrFVALV_-Y!A+s&8_qKr;mUwUQILSvdk1Gc~4TR9)i3A+eRt!OGxgI2G$G3sxbM<6=?*p7|&){ z^aOc7HZW8mhj&55O6Bt4dW1Sl)&;W?pi2G82P%{$EBm9lv&)=Pu++;SqxVs&ZTE3I z-SxD3OIZ>xHFSg4DpvU(?Ze(Y#|qgsn)uAp4KVhx;)J9h2hO%y=#BHGsRhOZ6@_FS zJS}-XaCVd`zd`6o#d(aVVt8nTljR+>H=UpGBJArD-}nU zQ8H)=FLc*Y82QAAQ%*Dxxb*1@h~?&W-aP1=sxK{9n?BeAYkPM9ktm=mhF2|c$jwih z3Hh`+|8`byl0MAVXhJ#ErCzHjK$;vwWobEA`%gpg3o9uE*kaDv6wI9f7^^3fJu*?bHv(&paqk<(d0X^Tn zKd;~O0&kheT|BQUdq`#;d_SC?O#*PS9smY11kb3L)A+JXGdp9E=h@A)e722SIaLWe zchHMQzELIp#Ct2}Slq(v!^)O+mxVW)d61t@kSVxVh9}o&Y$`V7{hAPknjpPPAkjR>h2ehc(W0oEcqGp?)rLcj8@Zz#uL>_=r^BR3-lH0RU%U#t0pyS>!>(i)d36)2pSHbVkJ zC=4#qL$5a6Wi7Gvkw&$jLeKhh37auU;gCweq-QXF`-UJtt@S?Qp*khkMkP@ZS+yy6 zJFjz?gLZpUqWYu#o2$|rjBRBp**^y)wbcb2yICiE-XY|SO*VSS!aMNBGGK1qEj?P^ z9K(HleG+c?^ABqj2eWX4wuKFhkC2O!0&7UBTbPEVDVH|3mPMq?N!V~IB^}0dxe58o z>MhmE@<#cEMk@6HBWi7`bgSI`3BoOUr%YfxAN)v{ACIkx`F^z`&5gwR)9Dl2Cd)qN z$d$^SAvblkmde$q;HrNYV!N_?1Rc_Hn^~oO;U=IXUw^5un-mA>D4M6PNfWWof%`3H z4)k~Sl&Tr9%2j3CX!O6LOV51$Ez{3S?H}>8N;4@{_YIewyR0s$`qqr{Z{_Q7eEp5& z)i9#IMI{zX$AhL#ws(gHM^xA@9dAP04AI`&uCXYTh3xc{q20{_pi9WE=l!lR-p(i` zrRMR=;=P=wG^0v0{mmHF!tNlEyq#K5dm{W8hE;T7qN99+W%F6c&wT7XD9}h}dGi8~ zq^Yc@EPM7s8nt9^Eginh>Y@w8L+$YoY(ePD*2Wqc;z`2we0{qZg4he=M&gl&C>4+Bt)LRqADbV{j;%#K}O(x3Gf(U)O3McqU zE4Ha^O&IZXM{G%d{mUImc;YqLdg7&)XB+SLavLvs(P(-;Sl=QuCfmM;DSyz+-%3}x z+^KWuPpfzUB^?K#QuayK2?R#meiT?Prw^j(uZN{zr&>%4=}2oZ0U1ii$w@sJdy4L@ z8#W03+N&y?BkIN|d>*QBepZg4wCrnE{(rpqvz%apVTQ?&lx+5oAUf$z{fMH^OO= zm4t&sVN|q#iPUT#^yp$2w>Vd#D%PrWj*RKZQwWX{q!|QHvpa1#pU9hrJhL#ER;CHa zmfMCf#tWqN1XSo%RnQsEN%@I`D9T_Bw3cp0I4y)wT-M2>}m`t=+;WXC56=*!DYT^#J_B=bN(k>Lyuz9am#fg}2J=RFPe34mF+RB~v}2 zWqE(#1lh<7hj`vTs@kQ#?m{J#>Xv?ey@hhqCY~HrzUH6`jK$52W;b5UEhGR^GEA!P zz^f@7*n(=WvW}cNvmqD!#RJIvA-$(wxvUyP zb$3(fbw#&$*J=%^=3a+3s;&G*dIp#a)SIVtfU^i>z@C}*xY|VW4<)2SqEE|t90%A~OA+uiObZ7L4G75y! z#*X3=V~q6y!Bjcd%lgJvR@tb+*&rL%AmnTTI<>o#SI2zLFl<-;8{2Y|*z~B=p?{)z z8E@Z9J5!S}Q0|6+wzw0wFy7L*Tv3Q(p&4M79vsG==>-J;Bl&EgGeX27;Jgva*$eeh zy%^?>xaGI!O&^z#GfYl3FDj7je_>x<*NBH%femH<9>lDcjtn8<{dr2HzcD8x1y*-A z25D5+(-i4z%q(_Dm(FG>0i%L3ma2NS$F!FZ!=@dl$#RSIo58EU)DsL%cj0twb-_A5 zR^Ay^ug8hpN33li%_;I~GFS@!j#1?I1-#__2X6Ul77Y5j3ZX9ZlPGPL1KBCOM4Hlz z$yyaCd|=;F78uliQh2{eM``ksmyMD`_)2w+&)%-w-Q{75_avXeuOMlUDLr0CFHcgb zLB`~agmHf{Gl{yu7{BT2*`Zk|^HcicJ!$zT-Vt%*yF0D&R25ow#a6WJ7F9Wv;pA0F zqoWWsADbwi+CZ9jAHxLnSCy2je`gIK;?e#x>6F(gjhC5moZEus^2_ZA&a-ZWWB?oF zW&Hwpg}T43GIb(uYnpyT0(tHkSkdYp(keHoW7l~TWXYq!5Jf<7FFqrY4`!OJ#ce3* zE}73jsIMCFl*1W*lxN<^|9Zo^YM4KvCic7wMVzwjlGm*(N;(@Wt~jKf0;c_}2Rr@L z=u}(^-i96jVe^_~okx>)SDqoVJ%ylo_P{|?v^sL?B{aMB@Ug!t{7{+F%rV_jhktc~ z8gG^{sp3T_eL%%l%MPk`Wz(majc@4aMwyZ!PoiZ3ooQV`l(+?g`S<7^oF+2jB(&}p zg2hg$gj?)oCi80lK>ijt^Ty>1ESl`m&A)AeJa3Qktp#j4>cP;_puF)dzxUc;==^iO zjxcx{$>r<4QRrVa7us0%$fq>sp_t=3r{L~~VvW&EdKw-$RpH@jRjWu-R8E%rHV0jD za-X*x$2xoyiBWe~S?l7}pHS}pNS14`j^Sl*YBjm*e)gW@}U%MiXqz6H&mSO6l*v7tY!$03N3NrXTm7Nc8k zsqAkU^aJohMW~MC1lhXMnnKFx5g{}*R10#Ls|wf&wGhi>pLP!FgqDxlx?HV@-9YkZ zJ8bYSmEMg{RNhw-OM@1%>fv`}oiq7?r6(XIX65x0?PdJ|Ug8lIoh{)Z(AAnmIBsZR zMy1;tGXcZ-7c!JQZ0X+D!tnNLJ#FKWV;}>zvM70eHW>BxPip@M&JqLRs?<=~(Aul( z77CBSBk|ki;eKe9Sfw{lKHiJ)&Z;ExK>I|0bQ^)H{ti_3=GCwklIoM4_26MjSo&~E zcT*YlIVR=f*S&7J&Ps6NnyOp_N0jGCo1crKa%Me;xxWNEu%{wH3?toH-l2X6cNV&` z{cky!kvEuTT6FmD6=69z197Q+92LlTpg~6OGA1lvk21fvwYQQ36VLP4LfgDT`!If5 zjuVlKOvKN3nsV1-xUGqY@0%Fm^Dt>oY5owb{dIOJK03(eSg~8oXNz)BF_F2_>lGfv zG>%L-&fQ#Y`WedB83j?}RD$AN`4`CDq!T2d8-6atNn3O&=4l<2D=a(uo{AW=^8H*M zm&`(pjtEM?E6ZrPl$AYAGG-P|^T08$UPV#0PgdOH4NG!5|1qxuCw{nwp$w|@%_I&Z z&E(cqTs*0sdQw;yHa3*24|>n;m(D-(%ZXF?7SRB#aucSWa4VLNocDLS(^dgZrqBAX&+|P%C!^3<>XBB86XXbGo>@eOT@~0UlEFZO_ z*8u4(S-lNKn6pN^F3n|?o_@XNMjYh3HX@BFjk-?g4THmfY^-O{b{+vuKKPm+8Ooj| zXV=3-O<(5xH10Hlaid!?%a!$IjV^qkDtR|YB65J0%qC3|(NU&ABXR+O#q#Ms6UX&o zENl~2|H%J-0cAX*leW`z_42X|nE50k`IO3;3M@%5FXk^ZPm8cs);$A$+OF4Q{-{#B zjft7*Ta2~X=J%bv^o2H@KAV}v#3GF`Xynp0@Qz(ctMT3{3~VWFQ$*%*?g9bvuj1@g zdb{9xRXT*X2(QE{vgFC7%T2ov!b<#{>)>xm&31*yMcoR*O4@=USzh6-HujelO7D)Q zM~?r^g$@505}oLGs+u^xeYf1DyL5k`0zo$F30!1#eNwmrMj18%i~54{9YS#?`f7zU zn4mXq2g#vMa>wVUj$S7%GVEs_@POW-+)br7${S92agTBxl4&l8^`mlh1AjZ~$-l3l zitf{$RAkci__kC#IoZP+#k%0R{q`DMKp_LWg)f>;Wj_5RVu&kYwZzGO#M7PN|GQGMT znOlf!kL6Z9_i78Hkfr1#cQI!gRBWOOhw8#382=6od1IZJe`3G45bIQ!p~uVW5OsMI zN&EmYfBg($enAU52 z`aROPy_NV+OQ_sXCAyN?D($LEb9x(rE0yy56Hw*@RX$(7FGG5c>9H{#RKNk}Iy=g& z&(Lk}z03FH_xF}dC$E=DAT_)?nM)^mU*&JejW|Y8i$av_>Rt|ND%%kGeGMAp$=%rO z^glodVlFedaFVHh<(>+9O7)VvYQhB5RVqTLI=z=*9ezjmvKU25wh6|AWx9vYxtbC; zZz(nTR1?qD8xTkofLE2Z5)a!k6QtlQ;N3%+2tsrj#yf8x9Ip2ysW8%8iyM7Or6%Hj zCJxFYD+r7=)N>kcIgMr-F_;X~dKJGYhdh&>S!Ad5YmETOd?xaFqZrUsqru0uzF30 zsqj!V7lGnw0E)t4vi2`NR!b$f$nB4q1=8y%ftuHK&-~rD7A4V%ls|M(mYMSL8mN9~ zc2F1WroXg&5Szywb#{}i2Cxm%9EYwDttNH_WZ46yp$4^iUN^!~@MN1)G6 z{D^n>>6bA1%H@2=+gFehVpt7Dbd$s_SCWKl5<|ql9QjzXFsM6{oK1B;+bdrj25UY- zAWIfSy>=PjBw7zBV970V{)a)lD6mogq+;P7}n}%5HX# z5cfz9#(jFjv3qWE;_zI~$f*Sl=`PaxZ03_bPG8Hfu8zsZ^Fvo8mG|BV*XV5010U1Nk z0fgfkAc3cf%BAl)U}SPNw{b~D+i<(K1_1x`O#t8O=EnZ~l-zoYSuVFxQz}Cu*p)G3 ztTqIb{^Ol0y-(h0%@sVZ%A3pfOn$IOrAdVq~GK@rc-(q6Mk9+KA~bXe#Nw9MMK`375_|mpv?a#`CaG z)Hk|HcCJSgtjf2@3v<1065s{9<>o~w-@e<;gxoXNT52S+o$`1c&ibLw?BhT!krvc? zOKn}&^-FF<{tlt^O6NfO50!n3oE(YA;lLmexT1t%rK)@YZ>fc|p|R#l0*&i%NXHlW zm8X?^i*(u}WaulJ{g&UMU%AY6)*=t4r-Jp3f#jr@AA3M7as!F{e zGNg!eI$Fr@v*7LKx(w__l^P+tPI}A5Le-m$+-a6zxGWFI`-WMGTaf3M8z1xrWZw6X zsIzi*MHk?CU8gK=S($DAS18*_7fjBSClwCfBE8hku9syDKL-`b;aSmZX;8XMv4^v~4p}%J8Ld+r>-ysyn7eC3 zRP);!6=Y>ZwDxgOU1qD#%`ne}Fltj?vS1|+Q?-Jb=w84!Ws+tq*{E}rx)a-Dl|D0o z`H%c-CdC+OEtK=manQQdB7r&V2c+#QgbY7bdHp1-u{TNur}F^1({~&9!mzY1wF$?3 z-p|ajJh!vfd9O6v!-tvb+JV%Y47zH@<@*LL0`)kRvj=*zs;!aAbu%-NZpLn$|LU*a z|4%o`=jUoKw;0QZf}e+~NU_X&)vSgIs(W&4<@IIbVr={{s`Vg}Z zB@<*EGXy0ylB3i=?@h{=r%YI6AxtP**gj-8tjv1=PTZ{GD~%BuNwO8>o?mRh2Nu|o z{S7MNC#vb2F6U1mqHC&AaC6`U;k0xf*^NSv9FW$`wlywh7b1j?X@s^4qCg6EUfxf)F3_jMW}GahBv9+6IjRsr zp2nq(8UWB6c*Pq>U?V!lT-8i!jS4aWDH}?j&f?W)U8k=@4=6rc%mF>BWT#AIinC0b z&lO$20;FJJ_C1Qtk|{;`5aB+Ci4xRFW$8g}9%KVsZruT+F_LQ&iasZgW7GK9HMbN8 zyVPq;Ez=HTIkVlfkjfuaVk;l=?3HnwNZ0q)vo^P(aHLG{d|=_A!+5=n84%lxXxdTf zfrM5oN2B2*dB)fIA$jm|;3FlXUC4qnYpmn{;31N_Bc#mEtAC|@hcUP5+vT1`Nc$<} zIwlMBu<=9POdlmHr6+-U?g6r6AU@oK_Z5`@$&yy%Oj(YuBpQadmAFpM4Yw8|VL5l8 zDA=+|l6Wv%gZSE^G_D{&mNwF}pBI9Cf`*%~eDnF0@M6LW_PfP#p8Na#dCUQwXko^Q zCbDH@5jS~{O0JbCOMAd6vD+bHXs^8YjMpJ`J`6g=sT;4)QN2@C zA8Yxv11-{773QN@1D$340|Y#nEnbhBt7v!W#%vv~mlpT8U-1^m?`Ba{Zv40?1eI;` zwg@!L9CAZ}uCx56=M_e)2a5y+@Lj^h(%QFnN)B-e-C`2NLMsyE{mB`w) ze-pG8Rf!I=`CH`aY**ZrUV47vzt*b^+qutb)%6%_05MeTljvzFkDVqu_yH3aA*kg# zqji}NA2EEBRP46;MXEHR%Oa?!v_&>2A)rGQG2)YO$mCllnb?Z%EJte(Nr;;}R>&=l`M|da+pnCFiYqMN; zXHJx=z5H7wSMOdgwe#I^i|km;Gsn&ZKwfZq?Zy*V3U&5wsPV>?7!_!x3#3NcnrEbn z3*^eLX0<%jkVkK9hhna?7+-b&GQN0QA8ZN5jXq={oGJCcEGm&7*P`g^s6;n_1*y(l zHxHpXViq2c(MbM2gJ!9IC0K$&t=bBAIYJnfn+x zk_N(3Ir|avb&v875q4=N<*Z)QK1O>TL+LhwsU39b)H7M`%p7FN?;R{a0-~Gb?-)$* zx~f_%tr(AvX<%=$($zs{RLUlk-$rlzo>5|and<~&MF;Ysq=)xUjFE@*@Rk+I-W%s6 zxeR-o&Lo^wa-B{9)~ClU(24twHj*ETVf!Wf;GYh2Rr1q#T-D}`O+q)&PevJW3j*ezY4Xo7D1BM4tl2-$ zERkRT3fhce6+R<7H%Eh&aYRf)w@@7wx=F^69U_Y6VtdGkgjMfV@s9AN(M3)_>aCOt zR!l*JRDZ6R2`%?BQ$a#@yw{zoayvH@VR-y3t^GcS#$*=9B2)!qFwp)1k{gBNe^%vA z$z8!=|C|VW7V6<&uUuj1v<@$Y^R;u}97~4C>6ZKH>XYBHAVL=%&3#JQ`(qz$)A=s4 zswc^b%ZV*PH!$CE8YL5IA%hm6pBUZJ6wMjvFNb~!dU#%CR6ZTWqnlc#&* z_0h*TOc#r6$10{Q{MDlyOQIv?q{Zrnu+_(8_8dH;tYxMR#8erQqff)Buap!Oa*b63 zf7VEosJI!hSNAo$n=yTug(&h#T+O(_+H$6529ZHY% zy~PHhrPN$>Od-S5R`Z~sa)i;c?6~Jbp9h;edZJc+d$FWw-l-}%0<9l*h^-E6l(8SJ z-$BJ@i03AZ$c0x;3w68ES#k%Hh~)D((5-cJcJh+xbz(rGlf>TFj6v?oJG3A+kpoS6 zpT(3%5p`o8N0E(}dR8ThWn3`|>KU);2b4wX!H2kOA1Zer#33Cb)Z>^!03+5(9{v|- ze?o6q?^jWZ(sboX#Z5&XYA+&oey!Rr*CrJ?q*ZHVE1?QU@nz|3nej58x}@B*jN`fG zy6k$IaV;Z_qO!-e(Qc}PxFdmH0h&c0=ADkK!kMTAOA~4EFKWI2S=f~(5377}n;Dj8 zr4(vEPIK^588x@#F1Y91(-_LH9q{ZSjaJD8wZJI4Oh{|% z0i|Oe;tW+yVZ?%L{HyYAx>zYg&aH*%rl>pzbc?`E9eOX55{J2#2#OS=oBpEEO zzcrFd(x#QFsxOfzy#@FRsr^*WSxRJFb2yTgpG>1>nNGI{8mc3EMHkAM^5R)D$qLAr z_}9XxtMtN(W6aM%WssBJoLj}Hk%;Ey)u>UFGd%_U3Iozk#y#k!{n9TtL%EcjTp@ znI!JPHDznb0zBLx&-c1?X*fAQP24*R#26I2!x7j#lGamAzK zmuqB?t{H6vXG-?<*h}j6ud}@HTHP^cp>xcl3wAe>`SIv-BIh8CqkR_lh7(kyA;52C z4jQidB>)mtuXe)Ni3ccTikfoaO|t+oan?t(#iz-^-Cj3r!JxYZnnl zZvoNyduYVa7-2~FKyNd);4|jyh}UNZNFlJ~nygGSc)q$RaS9amohQ&;)zrqx-M``j zUUryyvg^*Qc8vMel^{iW>d>Xh$jUd$asv)%Ne6C|uKzDi7uht5pCR2k7gfUWQJbE_ zc3e*sY_`Ey4$cCk19uF>2lii zOWUdZUZ3x+mBzlzf`hbCNU#K9C-CBeK?6_Ayq92UCrxQEyy24$`w7#1tz!Kona4Q^ z03JovRyM_w1(qOLz93->TQ-;L>1@o%ckxb!E&=w8!B6(=;3W!L%QMH(A`9N&OPMc{ zX{@L)aJ>z?bpOGO10E7SJev|dt~s75Co%vTSqp&egKtItPNVooW%%)XJ=A!sf)U8K zt&=e^KP@#$`0*LbG>lC_6Ry+OfY^ph54(#`mj$nxmE<#xj?&iTPY`kjCZx@7Z=8DxG|_CGDa(hWX8+80gMtF>WqHjOfL6+r+rrU_ z0W#uQu*&D}cw=(?IDozNpQ3UkE7TM|OtO1GPp}d_3~Br)JU;7B9<@MK-XeGJ$NQd^ zg#~D<$9c|B#u6Q;bBgMXX1!7doxZ+@Eb+x}y?V|;VK?zLL>z}G+aX*4Mpgcyk^?!o z(VEm6CC%G(oA!P^1|mb{+#^3dYNq9}^*A(}RctQF1KTlJGSrM*Ii@dI9FZ7nt}y{Q zi-;iEGU(7YscBGVT(ZCC-ou-atkEhk9nrDZ1B90D({I&9)*99-*?$lIaq|iA6U|Id z8C!Gxm}C3%lEZ8!@ls|ee|{Qdg2)J%5>ms}WiD96KT0lyxzvd%q~wCGu>bD=$A%R4 z2JA$#fIT@Ub;X23W-dhIJfaMR&kw}y? zq+}MVFy2VsUhj3Xnw|*Egng*ue^udhc(mF{e91PR=uJG6NppTcTy(Ou*ll|7JA45E zBrS`B(Vg!zu8b?H+CXWed$P=3>h%*XqMCs^fK_}=VXhS30t5eruKG+xTVQQNG@a{8 z)F~FsnW-WT(2JCkooMb2qp|YFk>N^BC47=@k9Yyvo7G2b-KuJ-j(E?)iiA3F6M0hz z!i4)tcitzI_4EiY;MpfrI!ST*Er0;T8%JeC4$(aXvhd;7QB{j|Ju?#4+j5#XLwc+2e z-*H{Tvqetd$>Vn@|6&>RFuc}Dw|HQ?PH_hbz`m;5B4<3NX2P&Sa;tP_s3RB6Vq{^m zZ4+eELO%A<6|H!4?lxX6PNU#`nYutS!9NA|NvjsM&(V|o0}OX~2!dNZp9`N^meM(Z zQt0JwC|#z*NCi5`{+gaK7*KgxvbPBz$XjdmYe(uP@%>@C@CluVP#QTcqHyc>A76Zs)-wA zeGVXT+HdHhL}uQd#yp7IS|{va{Dt!86=Z9Os$41mOb2xg{5reDxQ6sM&@O&cLd<+q zY=Lnp+aILFqx#gC1=&vf3UWy*6%$75MB8LwtV}$(s2TWU#pOBB~;pL4I4@!Eo zHLOzw!%4Novr$2oaX9=A9U63XmXca#HI_DSwcIup#rVm$+}w8M=^g%kL<02U|#8-X>X zvv{6{`4$!3fCdlm7c(EC|E@D<3m2MTud&Iu7SkrP<>3@TodO!80c^D|^8%vivD@N+GR3m;y>{lA47+%MZ(6E_D5dnV6k& zRnSUS-wI>byy8Z`P)YLUB3^p53g^h!Eqw1L<-S2zGRF|HbW7vnl?ZVWYF8Jjcm*GD zjz(2Q$4UM@++>nPa&)13Cd;9#ylJV*X$LCz=OWaOJWlWHCAYsCB)G7ISDU>uSS>B% zrW2h2iw#q zui+`v-3XNo>bhiF#NW@G;FFFn;y=uTMl0J?6qzdr-RW5a3|%U1>4WV5=u>x0oSm_6z}lFIBiu`VDOn$&l$&;ft#(9YL1{=3z!iOzk0G zBlBh#`D8>4;=iPFhGH42-_(|EtjsTh``fIxrupKSj(NG8^3!NN4o>w@wMwt!>q585 z;eSqPc1RA8;n%phKXms{=25)jt5QbGb?O z42@-g?6x5SO^H0nQ-4%KjEr zx3Q^MkrLgH<*Fy|yc{G!rXzcgs=#KXBz+(9lIn+frGlZ;2s0pmedJ9`r}?NlTIsu> zjEq*WVPXiJ%>t+iJNRs{A^^UI#X$1?WTTd-W+dpa0zM~^nuKY%a&>GstQ+z2dTU=~ zppI!YlQmy^{jz*)&?0lXqEjTqm8kutK9U;C#01&47aH^6mx zilvy%90*0~Af}y>E){wN{pEV-s#Y3%4AO1jH>(^Iz)cwQgo-{2bNSaiaziCfsoU6sF(bvDgW7}BZ)#V2COc>1yz+PS-9mx1 z3p4HSFTGzz;WO+$gO*|v&MXLYBMmo!_)48m+=(q^uk!f19;B#!FU8%iQ|g zlFHtX_oXANE9+cP@zwpsv4i7BsO!*)?w7?;g6zMh%WK)Q=EY^Injo(*4?voACXD#; z6V{F7LAdq1&J-o&)h~mL_$>3u$Qc}zj*Bt;&~C@jRc)0~-+2wor(f5t{XRjIs8MzqO^N!V(0iD|<$G2yG5 zDv21sR+LIn6TYyqs%k{!JT??DFML?W&&q0PF}{9@r*s`!^xsgeV;J_r)`X3i*zwGx zJh_54VAt z^DyI*K*IFFel_1)0=qES!>MBPjn{JBGOnH1ZPd<<&~gr&99FJ~T%C(hl&eI2pjv1V zwG_zRU)p8cuS!}FA?4wUJo9Xa`+Y(g@t zl;;wJp|a)+Z~;Kc?v?>P&2njz{dbD(4LA#D|#>Ny2=E~9cfA5SbryO*wmVDV`vPEsd-s8Z(I zSA;RQF&$c=19ZD?rRlD0F8+51XI3-AE~QtpQhrd6 z)RE84pXiisI@s$#Zu0g?=YG}%6&RI+kvXPyj6LqPNd|kpND1cEmuGH<2L`Zb2yN*Y zO00@HzC%wU(w`~MTO_rTc7k&SAIU#|Lqk%{N`AKi-5QS`1m(9q;u6V-X zTZsnYyihI0j>2O>JwYSTR_+^WCP68j;4f8`j}RJodnabf@=>Nu7N01}Bkma)ECZ=* z6aS0eDET1nC81Koq-`rO!81BvdqHncD^X4*E#5A2>4qypt=A*^UY*9N{R!!cE6Oup z-q`^+WvaXruyt%61x}8IY)myR;w$vpF@?sbGWc^dM@BE>$xT$?plm8Yr@K{Pi%dE~ z=yP2f%eY(lP8&Cu6_Qb_zCj)xf(rh6C8}q(ayOF7Rh;o)epEhBflGg&gHL|{6E*jy zo~-tUDyWBD7|~wKMLl`zEu>-D6~sl0(8DUcS-VFE5$oh^ls6N2GA9QaR8kEg=skjfd3h&W~-(rzzd0hTP#2EIpMzFS!gsF@NDr48h0uAMG~+Chul?RCxxUEjfh!m-ouv`UX1#}D zSqSLeQdNC|wjfUYwK7&o#tXZfzGF38H7ftOnJQ-DT&m*u=E+fYw95C_$ z6<7|bBTvZ1Ux___x{gcQQUnkGqT+YJGN=$99Mr&kEu5BY3&bz%LzL4jfh}TVWLk!q z2l8sQT5hiNhA_hM-q<_)Lr6%vwZ=gGji<8h*bdk2aD>ZFh^ABrtSYa=@L7goi9^@R z)mJg>Rm!HTRRgC0$LUV8+zT`MGAU!-AJl6UiM=mS@g8su0DiMZ+;l88)zIyF9qVl< z&P8Sp*vff>Hjqvjv~n(Y>u4kI9e{3+DCZG9<-?E7DCsL7+&^Zr#dxX0>y%FS!y>qR zRs=A$O!8j=hoH5!GNQr~F6xN15>=k5o#R`N5MHdi+9U*)9n$+z{Lnl-5|tB;@@?@^ zvgvLDDdT>CAKxqv$zK;vMR{6z6F^{IUyY{PV2mSEj8LX8+tAZiX7=U#>Z+=@xr@|b zL?>pIrx#dDAyo31d~uAQURL&UPQz5T#~wilKcO>LOgnGOXoiMH+ba?2_Y2~C=}NFv zuKh!dEOiuidF&ypO{TNB7`i8{((D^+T3!#p8qcf50i8Ds!X&=_Mp0S0)a}R@vh{i% z<}x-y)vHH*~L(bJXI>7F}4tDF0ocNPh-gUe(*!m#d4H655{zoD5Qt zt|SU0vt(%$DE8SQlmk_#t7UOpzJJmz^fsm1IdY#~5Vw4WXKsbdD!L(nyGkI}U(AuqiY3>d5P19EsBtoNWwUeumb7_mxaXuqm~ zq}#wcbTPJ-d!~R*Kza1|2M84{plghO^Hb0# zJyP!2i{czW$XF_;A?fXPgX@J1Zw{{?z%&64viAHBw`7Rw!nyS-x zn=xm}ak8NX`syJSSVT~R$)43+OdX3OKlU9NdydZBuw$w)ONQLZ?~%ctEwAmw8247j z2WW-7mIz9+wUm5{k{}c?TjsCBZ5onqwIe8mr6WN;Hdv3ED!Ss91MPX{eX1}9)6-(j zdYk*D?)$+~_%GU2etN=dAvjJI7!vIG~@(RSZ-rF&r zAc3JrP}v+n!pLLzZk6qgb`=RgmPOBlPU$_r<&Og8jT6Lp-AnW{6#6zcUT!7!!YGn4 zy9C9Y&}s34Y`ufrF4gCF6+^{Z(y3W)l{p=(aU_dZS@|2>K4ApxmGxg6hLz&68E)Qo zZ>5XqCe`~EaNFk5v{8Z73y?KQ}FUS}==r>o&0BGuhh zd8L%JHp3cFG$fZ~>tug-bi{Yc zZ9yVvX9bb>U9u4oy~nJF{x1%WzLG{Kfp^mLjz zZ?eZ{z90`C<;(VMFjM%d_FghfSHdpT_+yxgy=zErO6uzEcKZhvrRA^%L~;C0{GC-^ zKESHn9!9vL5QFU>u2mJ0xvdEJ;Cuk_TcfRU+3}X?!Up?yY0c3>Y84{@RQeRliUs`M zkON%JRD$&q)J>91i);WEba`dcK`ZT?x1oPds8p_mhVs*;%6^`fUt>NNI@}#-80(IU zYGm*+M@K!av8lM`dQ;FmHW}`$9&cR9VD89x{%M?IV@!`>2xT`tX#f2_Sn0{n!yDyO zK^B9L@I6aaq@8@At5n$rKSmbP7lWmvcIvWea6oyL4bOmNyt)& znQmHwi?5{RpN_;uJIsXe@9AwpuBFhN%xfD|eoh8 zgSsO!`+XSk+(c^>4mAeIU^guJx}IvbnHCiu;J+70%Pz?Fdi&YANv2co`Ub(jTMv`k zLgrMS@OW9IlwSa){MP~T(Q6#BJ0eTfMvjV3kbl$GYU$b*!auehba8tpjy+UW_2M## zH$8W=83FR-Xs)Twf>Nn@a{7%HtkJoy86&tw0PH=}M z>)}G8F6~r&4BkxWUfnxr%BnJwcBe^S7$4?4DD3b%tn8Z+HFN}xhZ~=1{m@j`#1M&gn`#}!dY!X05170l6uG@~L?xVo)GDv2E ze0l}eKd9@`b|~8qgzusbaTbtDxX{)t;P+gkDFOF&k=_hE6TeRAm*rOCiBxx!*RB*X z+FQlD$X&O29g@xp=Aev>O!;mE9GPA0!otLE!Dr)Z6EQjqr)5i$fbuF^sH%heZ5MBRl|`Rqo!D=vAeqiK_gW4#4ZyCFb&;WylUq1_uo zLLIHp&9sYU+PLRwZ}D~ys_MRy^{(lFmz;f|LbV>~={X^ll^I$+#< zC2ZVX9Kj$YhZ>7A+^Bq}U;cBEZ+TERk{`}4rOJQ}68m4m$UUqFffbK6-E#F5X0f#j zd*r!3Tqv2NVjUiTP2R$vh0BsX2~ODWg#VqmtaZ(#bXt!3{IEAXh#Q*y zcZVU9@iON-skKmT70V=URH##Tl_Q9u<*YaC`3_my9#JRpv7S7Le*#ioxI?Zz%k5k) ztCY=4d74cXT8v-vqY~09E-Z~ri*YtLjd&Pc-~{N&`ti4<^i{0OZJ<^Oul8DGe{Iy& zH5Gdv+C^^T;%x1S)WDdpu+bXbLPZo|9$#;n zpdV_50_jSTs^Ug3OWcec)OrwjPT@&>#}qKgb1%rgh6s>yQgmtab6 z|BRQucQD7iM%|3%#ZC2UH`e~lRJrXpc>fF5G{~=SaP3hmn&qH!->7>H0y1T!o>lr` zCbeZ>QZn`dlVNd^7$G2*@olInkCHDk;Bacw+VjwG zYp86OtsfQz49U02=Y>JdNrB_U1QHe*`Ws57J(Hm1t8rXou8NZfyU6?GQs5|~LZ@7C zD}}=MtRgFMgBBGg&r_+dsz$;#F`rBw$vd{*5lrLNSZ49iyiA$*D^~F__OR&svUc)i zF_(k>YK_-MPuJKCHfE{RB3bdIS;-yPKh}e(vapOaFg?D}OUZsi6k+$inCk&;tu~`s zvD;{oO^2kn@n@I_RF zdyWPeXLNaOmaeegEN%2|iQdX-gLYlTf3^{Zp!_fcRIlRGt|KH%l#bVT`VQJUBZVh6@XFjf7w}EkY zUu$iv+7`>Ve>UX5?~bWgn_b&?SZ$WvB^kACa+F#;OTp?|wQZIo7i#jeTT85V zORWx#_}RdRu{p=Kqv{hRa4n;ruU*?=`DKZP->S6{8h?^Nq4ucD&u7|5o*mBNuWjq` zneX>o%PkxBHK@&IsY+zw1-;bf>?!Q{ouS(8&W48Mr&QN&G8j_8-^1$jc{<=Dw zXI;!U9WtH`F7k?=s?~fi4=ioMPh%ta4=5hoy%*(BA+(om|J`Ck%rGel9yiR zKdp{Xqq8iVKYiDa51+V&*E{|mtTcZM#(s+)UUla)7|Snm_~{UaFv|4qoPX;GNVV(( zzVm~7_`SkX9Nsg#`0JfHeBI#D{BjXfD5Tw=obrb_|Mt(TR)^dhfYYDOXA2*LhosdU z09icSAxkzwjSn?KFJU*3ys_WRk=BL$b*GyEXr`{`dHgkAsPSoD;L=EF^YZ{sJna(1 zcyb3XxucyKl?tR>imUmWI@AqI^b3yIB$KmW24cz5Bm8u9E6!dN`aibLG%%*~Yv4D@ z2{YLRF|I8_n2Qjx#Xj~7!q~@FL6IQDRii_gT*VoaZde_LI&6u4FMNtvAS1{l~D$kzW`zB!KUHImb#; z5VQTY3i$Ny&VPT_o$(TJoL^fk<+%~Rvd7tfpz=BdCrRJq0IKZ`Kyj-(!wtL+QkPy} z+gG?(mHSN?>62wnQ_fD}{a2^5l5#>-Ju^zO%umpYbD z%Lek@hSl(V`Yp9IqWk4vb-?Y4hDXov?x|fY$iJ6SF1g15#8)c8Y-toD|Feh{tn0|1 zz=bT*aURg8zsI1{FMya?7y0z2>K$-vCbPAi42nwP4DNu(L%4It^V-Iqj5qTT*lx0r z)wlkQiF!|C`0PSf(Dq$EHQ#91y?2K|ix$*{-eb)E}S5;UkWkGMzktMMzpCQWBUOXwx4 z6=hO#MyaLsy};I^M7H;MFspcUkng^|&t6(TV~u%*hC>FH^A_&VFgd461JwwJ@!n~| zqPEY4UM|f6M+vieZDk#v+ccUP53j?>Y!~d68WVV;j_NY;`drp@aS0-6P8t6T;H7GB zIe`&@jxsco9lv^kaYv~NFvfpIq}aF|k-o}PQ`(e4=C5JgFv@33$%iSX+@@!ZeD@&( zkM!dX`^ZUteHO=ek8*kBP)nypLL7WI_&q3G>&n91GYoV_b9QlSBNNS93K);L7@(ew z;m-?{5*`h~@2vqbvd3KgIFB5^0XkMF1FOp%Yd4wy z1aP(pF)Z>U^%Z4)A0FAF0c`n=B|Rn=Ps-HDH&$~XKU7BcQXgzuZvBF!`8a+I{F7b( z(*S$#+r%9C?-MpN>mQa`@kD`h1RFfo7$Wr_2SN7S#LYkeoN! zW{o2p0(%G3#NrFSuRPN5ibwHs)Kw!=-nq+TU4G;T--QfvTHWH1ju|ACIqS&Pd4^rq zj_1#@&-g>61I@6%W6a{U{OPcnKTB1c&NxM$TUE9oW#w&hqdKeYSB@r#UV=RPE}!p8 zF7f9V2l#xyKX0sX@!ySNBuLb4BS{v$#WG%{$Er-KhOh2YaE9zP8FS!GgG3-D=DQtZ zXLpN$c4;l9%_?9iZwMi7nd#W&Tzx_P%&m=(6-p-H_U9bS2(vMF*rUs9c z*_gF=82Fg-7AqOBhfQ5s#&G|3hGtt<1%rQ2#0K>wg0@^%({>3bzPV`Jw>z+9AO<*vu;65zkrbV+pTOE`suDk)MlxoPq5L^kz<1&QFs9Fb?63V_ zvBQ?NA;mVoFx;C9osp6dU_{D=SSH(pFHPcJX5c@cAsMz8CQFUy?9x8hh!@K^-n#m# zk%5PX3z7WyS;^CR>?bOL_xCD0q5GQPFs;Epig_ox7)aS#d{{ zglL0ePz^QN`h=OR_8Rx(lH*~=wJj`QXFgl}Baa_i2eRZDU654gBKS0B8&LEFGh7QL z{I)(rJRHijaZbw#mC^^58vOnV0#HmPu_Z9C{RxNC_7?(CIu~fE2 zqK2yL@m1vmi{X&pf8&6alIoJJl!TXFN0_9T>tt;)+g{9DAM(rD_qfl5n3z}2P`>A?DRayHl@5Vgl-KgL+`Q!;dM*H#S z+)!W^^9_IYDRXV%4bal?IX~3QXQaG){P$T1%lV>+PcgcJjjCp}xq?4;&%%+zQqyH@ zW5{GLxjoY9C>(iq7fUw`z%}3tP<`SakSbfsAp3vfyWGGCHR>Ja zue^a-4^?sk-v@k}ql~D>%IzG@BDg?8OkHZlAd$D>mDEwZHUPI21ZP;pVu9Aa8O$4t zu0wx`1cge3mARAOR;d2eSs-`zJ6+OB9j0E)H(Yo~DATc~5)dze{rmM`xFfGX8$(yI zlwtL(Y4YzO#vFXbNxjZ*kWxoEb5-;C9`g*+<5j(|{!7`}%(5a`wwU2YH|G7x%C5V& zoIz$N%K5%GVy>_1I-%*=Rb@N*Qrg1Aa%td#tox@SI^$x2_ zRwi#vqx_+CJ&Gh7mPs_N;)tk+?2AxZhfJKvgp2;-)wlbw^`^N7`Nx0aeA=MfLu8k~ zlQu!KdD!jT)%>t&d_{*b^2 zCqW2>P8{+(Fs)B+mLxtfvSjTEsG^qY7uV(|BUYAB+f%kK z;yYV#hRja}ysed$es%;Dcvacvx5D|e_d060&ElfRg5i?wBZm4u2Dk*;$ z00mV0i$^jx06ZFc2g=U{Jd$vbwdY-9P5-GRrWKP}?86HzcE^79?8so`i6Mqp_SI#v ztKMSQ$%^ZG*x=wwjcNR7yk^#CkgF{v&LMGiQ0wznog5WwUrTOa)z)-ju0Z`~mRecUzf1Z4^&N^F2@aGaq<|CXh|y(wY*%z&XR3M zakPD%Yf5^Qkt}=mFy3oEyqehxH}$PVuhg%{z)yZ*+SzyDu$Ps4c*;OlyzLPi$UkV% z*g%ne-(kW~GkE5M&!e|nwDvEUY(Xq*A9tHI-BmR5-F>k7*B&EM{%Q>gj@Q$wh`+&D)c}@O zm`FfOE&%&71W4GH8DZL^LR!*?p#W42vFzQ+6wUfT-)DLs-- z|MA$GXoJwFW~za4$QDT5lW1Uwe~tM3 zxE-s!JB+P%T>~;(Z{WXQUV%e8cU0T|+i*#|jio;QQ2j80#oSZ3&%M52=-%y}u@dnX zYW-@aSNSN!(jZ2Mz~#eX09I%Wty_?!Sa`8w}nXCrCmIxSQjOR6H5kAaD_8wixb z+l<#N!G9nr-O9SiU120h-Bqm3cR9bLY6$L{R%DegW8;o@g@{iDFCYF2ax0VUO-Kh!y@TC|ZcZ9Uhy{mlmzs9(=G{|F}QeO3`NhjY7F-oP=577Riu@Ku{ zdIZS5@yr@T5~z$X1Q@gF79c)9Bju=3QcLc2fT121hRLxYDC;E)MAd#1&irEZvlbSd zEvJ=n)#h^+jZy2C-<7js#3|6y)Ea8htec!k@^BUmnC9y=<%_=jIx?Njb^RCHeM4rs z)R@BduhxUk3i1H&4=w<)buZJ;Ri*adKh0Ww^T5il=rS%W(&~u4Cl9YG1+u$dvF?xs zpE5ws3LbfSfY)AC@eL1y4SH7}U{RsU48Q-7ZQo#8)B%wI-G&=kvPQK|8B8G~sie%0 z)A5M4AE&_#FU1sa(_pb;M{!?1<12{&)N4#u%L+5s(=%#F(-A-c(*ieZ6rb+B2dNy1 z1D>N#G19+ZJ2km@g8vRmcRHlO4B&Z2W$E4@0C?|20?+>_m?X>XfNR`pp4)tj4SjAm z=y5a{eEuC%EX!-~?3C%eI<`HZdwLil3k0E30 z?9zEnj8+(rd?<+)CpoDS=wswd)9-jPY9|xNsL+thWo|7pv0Tr!FWRi~c_<1b)#S~`b&LY-eqsf8C#6=|+=0g?HD@WM0hm!A?Hw}`G z`ZCC|>ulSqT*A-JgO<>~D2m;BPKc}uM3B5V2sUR2^6QAx?AuVKDF=P)%#s=RAcu(4 zDRznf1SUT`lsOiEfr3Avq9Lcv02TA}>_*CyoFR*DvD1-PnaFm6$!jeGN?TNxTlCvl z4G&{VWcf^3_OoCH+4C&~NV67BRD*bRHcY8{udCWe6+u$t2Bgr)!#0+WKw7NOlXY1c z&q5!L;@zoZSU_t%+b(Oeq4Dw@Rzb0!2yJa@l8U;hCe|3}bo4V`*t5{EsIb{E+1(j^ z(FT)EM*Ici&-|0s+0{wllL0Jy>I>F$Ugcih)QiHoS98}FV=!A;r&^rkC&JseG842v ztye8tpDV0x&kja9N!XuU8qAsGLMCx91~mQJUMouLB=CI84X5{xVy>}!tRv;!LblUr z7_=DqBY$Q~qU@0~S&vJ9KtzV4(uM+O8_e;@ksSTI)eGA`%d&UHvhRoL&xOq0k3Do=l1 z3jkjE3m7#|1V%Sd?38NHk@Z)sM`dppFfr<1BS&m?S*Y(AR#vwJ_&3*MgS1|`Ia0R< zFDe27K9R2p`=}yyxjn%8v608y0|ol&M79}0 zT|4cQOsFx$h?kBnd4i(!hPEZu&0QbH>-f9S!gAfCG6>>>B&s=>8cjobx!8;uKKKB# z?)?v>(fvcCNItp@TyI`8aNw#FTtmfSzD)5pr3(=f&3M|+@l$D|*USqUQLM^e)<&jqk^CigT%#nT_Sjx;2XRKt< zDUm}#8TAD-qXJpsXgR=RxELMi?2g zZ9iz(s#$rX#6u?2;z`|zQ;3ve2)SSZ z`^SNm?21HMzItq(4RSm=t%z(5wn5Xftm2}KdV@Kj$R%nUj(3Q zYHSB1L(ps7_ zNZN+WfQArlm@lT+-M(5^Jg3O7OQb)GR~y;h9YcN#D3t8FdCe2b5idoLU0U=;Fe>PdFH9>jrQ zvx&6f;#)qO!0Jv+W@=L6(})--uO?+Tj7To8D{84Kv~FZfIstwv;WF?l8;D*8;(j^{ zonE8VhHU#^Cxsi#ySu+pE*sQ6Nbt{w8^o2@luFGJXe-75?_H`R@|47U6}=cF^M|v8 z6y0nn<}^ga_jQpdk&(RG;1N>5M-`7~Qfhe63V@=ao4GBjH15^|fIDCjbU!-oCj3YIq04b}fHAxgY+nexL?K;+2~ zh~}kLm2h{BOa2s$bCIB6r+~NyU?qUWA3L|Oq*I+ zvr%X1ar|LQ=ME$TW%RA`;1ZnjuF`JX)OB;7I-wkRA1L)(4TCMvlNu3ST2fas>%u}; z^#rTjO$;V@8-7^&6MIS3i=yR=3^soFHKdYV&qmH4anh(~D%*Xo1EmwHI%mK;?4|d5 zMsFI*Dg1n@CQGL|V?lFlh}`G^z8XD6?tRAhu|1Go`w~ITU8IMsJBM^UtXDKr;fHkD ziYY*hK=96|0DAsOC$8P27+^lRW0OcVywKbl3kWj zT3R+jOq#8*RNj0GK{G{XjBj>GaN@h8ws zQI& z(b=loBWJ66mHy$luir4ir>|7GEcjNY*uc4eeN-e1{}Cruxg&@qso; z|E)vD7Ux(>?x+G;VRq@`&&WMhS^e!FBkrzEPw_~>kIrNXQ@)+M${W0PEtIi&2tuZ# z3P)%+0M1<40m(qltyMa!dT6Jm;)4@XwzrO;+QSF-+Q!QBY>G@E&UAKiHFAH>~4+5l#y4K%CeRG*j z0XgY$gn5T=VADV4BNniJnn^7eP`ep#WO49w1<9Q@*ib8o{gaDF!0_c@-aVPar`f7v zcB^;!m8x{ry|@Ln<@dDRo!XQ}xZs*3%oyY)6U(sKpX0f;*M) zrQ{Yenj13USJ6m*y$IDlXbjU2`-AnZGnnnrBepdp1}EFMjQL1IBu(7TSHz~;Jgcb+Lt^bT9S@8DSEP0ve0xc!DTzujH{~IbyygI4< z()>J-dZ5R)mze5kzK>e)!#I_&+BgX)(>bHASm%L~L9~RF%Rj@4cjmIXT0cS_{o)LQ z8dT4>msGBI<4Q2w3hIo=AD1Btif;$26OC2uT>B7Vl-yKCv^QMjG33;cX9ax9QX#41 z^^#iheOn_;a{hs%cBm7MWgB#}u_Yuu=w&49+y4Qsxq3#3j2#43<(@*>Mym!_EYxB z^_xNh-NF(cwr-cjI7Cjd!IB2sb0ZbWA&VRaIH_xvm>e;8qPa;b3YJ|N&RF?jIy=eugsHCS`8IAuS;rLqcU;d4 zq-;%I1l3V5nsXfx*;Z!gE#bf2#Wy6k!N@^{g4g;!> zCpjVBH-XJd4S@QsG0fLK5eU~`1A`4#;VpB22Y*vilTq?!1L8SRwm#~PZdYTNXPOcv zzA6&Jt`2u&BaLFo=?6okyV&!dKa6yl{jov+x+(y!p3)C{KV^kgaN%;AOR{LcBzolO zCFXj^z-(Nv$H!^+Ga;XUfX_qa+*yU|oCwAYUG>k(A@mGe`LLeThRli#F%LLBDyyQs zB>V_?N0YcNnGadgnJz48fU33|MXa*Cm(G9P;|)`s_xSXFR~|X2N-6A2hhA?JohL_Y zGy1B1OdFG9*kp!_X^7w z#dh7u^3J9vOVAJCFj22)1J9E&I#M?yFyu;`$;)?9E~#auTEAR3eUm-%`)v%pf{Q7U zoHLR0f4#&;;@)4t-}dx9Lp`6GjxIBn#oCk5cA^@d3Q^QheJRFsfmeSlmrCWjoZ4qBgPLiR^h zedV8ZmkJ=wt|n>9yEXGy3?a&u2a4qa06M+ENzzbask-sUFZKpc;HFHL2U$=VJ+G^B z0MRV;l|^toFw$gGTO(GfGlJ;07$xXpvQj5DbB0Oz71ZM})eWeP53h#nMeXE3G4kf6 zenyhY@T-9+b%)B%|A6;&Raxnm4b1b#31IngS1{a7T~b&100^Y$HWdQxjgc3Z;471` zXnFVoQrcCUDXB*pBnP)5>FdV=M}nrqrG7OQ-?bYm$@@O!{Ae-)epfjlq#tE<3Fr)b zw% z_MG^TJr8RN2Nn!rdDC>Q1C&7G19?x4xXI8A$+^TM1?52G-d?2BvlzFGx*U@QOk{8c z0;-dq*A*X(Er=s(K{Z_46!Q3A8Q5P9hJCq)(_`_A_lb5&Y8M1`FID8`PFaqsv==P} zI`~~s#p#lwoAARub)Ns}SHmkC9Vop6y4Df-7ulRd{7BBzG=-GMjljzCVj%m<5F>$d z<1B9I48A+VT12YBZC7+p6=@R#A;#}VzP!F07?1pyPgVE$bJTiOT@-A10CRsk+DMY2 z4^Y{U_2MvDrJAz*t`HPNXb{I3ygzH+VS)Wu@u${&khXLgk1W&U?b^MWw)}{u`L!4t`kvYoTIWKyblq-*$wD>#b>;tW6$6>( z>akX-lZr$kc{+%wX)0b1NiCOMhdGW-p3Hj32|Lbz7piJ<)LDYMBuDZQRnn#OBcnp1 zx*|Q}Cb0K3<)z>A3+Ako1#NMh01K_F7`84=8BhRK#A(8_3wzh64lD zZOD9O6C@E-En9Ik;q|L%2oOplwBkg&Oin~1+jY|-6WX&e;sm^6lw+z*+X;8~kLw%M+U24>o|G00;!K9!Xc?mkvj#dMC&aTC^2Lt&$ZK&>QnZ$K%13XAkUXz z_RLZR7)n&Hp7&K<*Zs)wDmwD(-)L4zUnwf#RB-g9%uW;8cLmlzu1dAguegCMT5k}K zgbHCdWNHrAZ6R`f1As|U0ek6v(c2k`*dpJ8%q7#1sdrvuOHF8ahmoHVDxKZDT20Tc zCuOZ6r4vUD{J>E_cjd<^`O-FxLGs@R;Z2>eQ2@7sBy2bu$Stb6^NG~U7pf22Q>7Bm z{pRG#=xsgyoW=RwRN zW0<_sTK;V5h)n6LXISO=D8nJQoX}V!Jw0A~JD47uQ3e+zJ_Zi+No?rJ6DVk>YEero z>rOIa6x+bMikA=T^TR88X^=|VXd$iEK}>C6718n_!6D!CZX>TXOP=>NlHvTcM)Iy5 zycO&>!c_8HU2SJ#zPz7|5bLE5{^wQ3Q{QwpI%+sjjjfyCL*w2_rbe7|%a+jpA-1G} ze7zgGo28Q5F2od&n3U5?Er|n3v073Kruv_J`7PXuI2~u?$>>)A$B9=M_YW5|_Q!De zrkY+_U)!8pjQr(vv86CsHtv82m#RdVvA|!Om6?XghVY~_O@O?XjfB6lfpJDR0{qFD z8Q8l?@vi5^p&L0J`fQ zJ0yPHh8${}f>O4Mmt7vv@d$S1>{c@zgq>Mq}$b7E1ZLKyVm43slj zoMHX~RWiC3tk?uIUapM+Ogoj%ed|3?vR4&lJFVxmMp2c5>e|wZ9LeFW>Oj`UmdWT97#%?qz7>>yeSEiQ37y#aEm|*oIu$#(piLYkX9EnrnDw5hO|hP_*GNRbJrfPE}_E+JM73Khwc9}qAbjw0}e zS2Z%^dJc5|kscOBeudUve)+&zDqTCJRLDO%OuR$))I=>4`_tqR-1Geyj4aYYqNJt6 z$l)AGi?FyRPPb$%WaNO3SR(!Pf{rpu#V@r^0=B!k&}Z|JDz`c#NPeB{EFd?+)=u`{ zLPZdEZDaGawpj~r;DxkD0xq1NKD`Z1R;vKfx%Z6(`RsioQrfCeg-LTjcGsCuvLD6& zWbZ-1)k`n$BW?B>Hn}hlv0h6R{cnOm3U2_NV7WJt+--(k-sD+9r|W7T5rOmCA6cH&6N?eR6}Wm1Sx8Y53C?m5>!0I zCS2c~{41(qs*%KbM7Px@4K=cfTu{fOWuu|CiC{uD#6s5V0WRL=f@sJChwo=96sBYd zf70(7Ve;)AR@(R)ro{Q&Y!bcG`jE`#*5yO|%ye&Z$oB zzbB%ymCq6h5vF=Elj+@zpk1wUY6fB184T&EFV)m`UQsr2+rfOIG(lBpJgb&6Pjrb< zp*I2V1C!ljQ!LVc5Su+rD>(AM^6SVIUs!XPvI0)41~d0m&kkQbte(VPVI}QOKy^WL zp?fL_1#s3V3YSqgL3*Wkj0)-6CdE`0lwze-B;sU$oDoU!drju10iLGKA+ENRmX>Nt z|B{f~Onx22ccXQ8f6gBj4P@f`&}FeQ0mrN2P(_6_2>i;hA>xuPT4`Y|y;B zr3?mJ3Bj1>Vcd?^XLs3WoT|Ejw=?x8Vh6~ayTE8YSFh5shLI*UqrmFA<2-UO(IKtt zfxz2(Rt##qC_!Z^S3%-N#D1j;ybJT04-Op zffD{fcej+j<3K3Pjdc;e~GV zAdzszEmar6NqN!oZEnt@AP#ttpYRJ%m@Wr%O5MJM^zKdo(4nr$qs9u;3k_MO2uJH6+266%>VX^`|Hjsp4P3EHc`Kt- z_SG~ZWnK$3omF?#mp30m2a)e1h32XjZ>v=1Q^Gg^Kk)^Yz)dH@^G&Qax!sdL6VgCm z0EI!6*${&5ZRsEtnSkiG4V?FW)U`TtY&RRY9GoG`-azEmI0L4h>2_6^H>W?e;;n&E z#NG|13qNrJo{|*9D+e~P$L2fu@1)l-)JNcKkVz^J>F!u?H^{^+dZK64lvq685^~5W zmbT5Nax9S#n=>sf<%8tAzmPWX=&`X-SjKSqYY;Dted073IFif7GLM|O&XJZh zNUIz=z=XTixqF?u<}SL2ko2l%F}pdq;Pp<9(QX&2UMO_S>p_0C%v#S{uRh?}@eSGW zt~XGJg(Epwj@4u9AXKtzz!>%rxx52-Qp0VK?AQf6zMe{G+(aWs&eTU@R8e9_K14(; zMA`*V08+kO0UyY8tl_gN%6!BlXNl}kTl!WRGD)w1_dBPcn}E!GiN1y)3Deyzq_mY$ zAU~dA4HN5vH5w!il{6ySWd8t^?i-acK5mibft3{>A>*H*J@*dfhuBOQ;DPFvF)*`4 z`!X|67M#O`%PK2Hv0^AuNPd`nxDL2=TVkZcLJmK~D58RU$WyF(dnxSr5J zQd+@(K8ZOpbUCYOsi!5#=4lvVAF3iPll1hV)H3qK;C0NZiV~rB%~QQ7SnS;0$;9ax z!Z%beo|c6%KdPaRVSR4g;xJSzNGNySiHCbyP6DwD) z8l{jEeHdS%DJ~|rt*dsuus}}E!^ZnsMXQW&h6O)6*OaBv(7=D4_}|=IJ5tu(RjT^1 zv2u0mes3;vx$rHJ)@ljz-u4gVzMa%1P64HMia>DldaMruYx`@4M`oT!9t`~&=6dAg z3`4>fjFeY##zEy_;V7Zfq4I|>H1WMER~xSlwY= zDy`c=jx(uLD#ay`GcEE)P?>~^7AS>K*{wRNf1u~sw;aSP3$;H0rlnXZi;S5(w z0`q!o@VF~N7FA#e9N7a#=;w#Fo4{tmFJe{Jr1rLSCjX5j=p;hIs-oQOn~XfURu6E_ z*4>Rrd!T+nbWg1PFZD2DD(7JAy`yWR2qSm8mHpgarV~exp;k0pW*xD5;5kkO$Mxhf z+&PCSL$7?4)K=N8*H*Fuu9rfP1EuYFgSyGT$HMQFCu$-wOM&j|8_@|H)pdexG}dBu zJlR~&X1CVPmF3HmEf_)08P05s4Mza7(iSdtXILYHcGtCPK0fkwP1dn5QQbzz4&~Z3 zYdB7WoZ-xt7KFwxts!&UAS_-lV3E2W84i-OBIUITXFiTh8s<$Xbm4Ec_l4(j$b{94 zd#n4$p30lwTj8lOTN~dB!b*>#yi0OF*`0$P3es(LC8?Oj$5gXg%d*N~2)phGiC&VXXM$HsEK}y9js!vq1DdG1?J*b&_$cejig%sr5-Y5kv^!uV16y$UO=agb<*4jH+>5t22+FG~3%D=jK#?_0 zevCk$y|xnDwTK)jyaNS|MTvs?zB$^3d7@m@T=Q#63j#&Ha~M^-@cIqI*WmTFr=*6Txhw ziLzVAbwH?5mw6O4;Tg_6_KsRmVK%gBX~nXOgV2n&V0;QijWB4E#z?i}7%Fkf>C;oS z?ln|+STp62dP%hx#k6k&<=J~n@eP!VMK9=%HlyBN`!ZEKq}+w(N}}`F9+cJ{-PMm4 zH(}AJA9ruA6pDy$dEY3P_V)~;M*hKi?fELmq>yi-%p$yj0|o*n&@_mjeLE#dKD1jC zFlGySs)|lU3{?>UvlX=BswXl~uF=OsVgi6~Y{^;&+t6$>@eLq&=`wVm{;xGsf{E5d z4rxwoz4&3;BIi4T7|3YL?&AkZR8xMfuOA&F$v+}98YdjlcQUxW!FO*+EPkMv}#9vW)VK79n{TF~SQ z%;yEly{&LiMNJ4ZXBotnl_h?&`H(F{UaJ-9oN4LQe$g$-`yGL-y|9 z7)IN3mQO?WLTa5=bBQy0ek^*7`#5?Sw3IC?3>M;H!C$Hlyc8O1tiqS9G$f)U08z2p zu2ioqd%iXvG3;ujEhu!!J5x|Pbz&+c#)?{xN`aBTtd3CsZ$APsr7zzd(U|VA?wKNU zt{d^P@&j}yf_^gXui&NeF-fxKvEh&lH$g^Ke`hINU~47;Dh~PqCts;D2`*^&DzLoy z62hT{UeZ_FQ0SKLt}{cko@geoUNlYX7gLJf<6?&jq9O9;L8An*=4#4`yfhSWW(DIQ z$f^s(u|+)%(5oIKML#>?29;M0BD z$VN*OfmwOIktHLoMmjPFI*i$9m|9$nOBU8*fti33Lpvt|+q<}f%>34fWhLoNGFq!#~z;vP4k#jBfAl!q?AnX>1DJMD-tO=*%vT$43C2v31$v^*(F;8%RR+F^ zzjlV1&gEsu7A^%<489@*e2mAVNh7YSN^-7rM81R&A zkuU?U=t5gjsZ4EJ291R4V-nB;4gbZ(IYGx5;YPsPwyr3K7pm=7clfqTfnzXcQlm~)1l4-db%4a=}KeG z6}lYFhB?dh*#4M&dF1kUHte`Y(zHP^HKV&cP9pYwB4}D zcmE;F{=Dy05vN*`7FXtyJ;6o>TZm3n$hS$hG>wr8`Rqk8FJ zu9MSMZC^?zy`5PuJ#AKpy#1%O6l29++j8xQ`0v9N0BBt8Z<1}*?iL9LggZ{PD*Xmkd%`kX5d#q zZTn~JpiMd2=Kb10ZlbQWl&Pzs3d-OH;b`*KgJ#l4%Xa0g`n(@habC~v1NhvXq|s`? zGFguwjqH!@FJt{tvo-t?-9@U<^ML+JM2~?(e^O3{9}hCylK_@xsKTFZY zJ$j}fE%I7QkCC9qq3+{4Qvv|@L+lv2`7@+4TQ5qbpj6l>>H9Y#r@g8R8gT%TgA=5g zHquxoTyr>D$@l(PIL-B9RUVDfOf*2O$+^?s2p^9(T>e@D=?xlaW=j08)h%#KAMj4I5NFGAS_TC$onz6EBNc@SPScAtlg3Y(!^uYEZlG<1w-M!?(ND^m^ND6JM`j=8`)59gDYfSdM)|;4iY)%6(*#@Z(I4tbuN#CQZk~x zqv6%usF4jHIU^-YhcD`=8pY9iu|w9)2JoYcQ#5HfgH;US_E_E-044mV3d1f}q(t4g z0LG*UYVci9AFHR00nNoDWbH;Y`Kf`13(F_Nu02RhkS$MOQpuih}MtiM#DlrwRp{%`u5vlEqq1JFidB$TgB@j@6*}b*~JNZsUxgONx+i0nY+1jC)a!9^B zP|m4Tn(!nR{VNG$(n>Xo=%f-QyX*okmsRBV7Y)%sr*->82n<1g?H4$TiriKI7bA&i zO0vuSFy0s*Z&;*HJQ{JCo|6K>65?3@kkzJdZ!fGcDM%KTAPFw%p1Cqv1$Y0a4tXh) zocW-%w7;BF=NtdPwQkJfykV$}*q$i){Dv&l5hp*rhczEeZ#>b}oo;_+!p_$d!e#5n zSTCnV$lI`gFAD=;LH zpUU%Od0C9+4CPN|jXD@ww5z$r7$TN%`7Rlz|H;jgX9Xuo*F#nZfrs#}Biibfi1kpi zQ_mYB#qT1|-qw@nF@rrEJI&Pqi5xqPPqvz}aR9uOptRq|b%Bm{X0xbgNZg)V^ zNp;k!G?wv*sE(IU3fG!4^AhCs@nnt>gH(0;-g-h1k}rS_Pb__N< ztUG$pIwXIt=9d{M$3II^1w37YrOt75{W)4P$a}fShLq0`aWCp7kI}uUa^qk2Tdwjd zj!>UgetR9H_5*`l*ykiKU0&3orYS7WJH?V)Sl>J^!rB$NB4ow96%S{}U5RP{i%CR7vPwq5S zepYJ^N7?BBH)AjyP6}}6+wkPZ|4@G(l_XU?9ERzsVwtB-2irM&VEEzK!ZJvuD?B=5 z#N#)0H^-v0>k^lYF+4?&?I!&fu+x>QRPFbw)Amm)XW-%oAm-Q1EVCo9*TOC5Y}%^b(iM`DiZa2 z50?Fro>QHLQCB8gl>zwvP2|GtpW)S}steQ~dUBlny_3oMe*q72Lmw(L9y#Mt=&lJW zi@iwN%x23?_4MjEW$Ab3*@S_5cRANR9};sf{mS@+-To40A3e*i63eeu6eekXVjR*u z9i4tTpVtvnHD&XsJX%>V4_BJWicyqj#ixhspiIvm3V3mllSE!${8UZ@y&!5x&gbZ- z_jG#$Ie9OoR2!36j%`-joZEq%szmD0jIvE`g-qxICZ6c=^1%hrHT& zpIhuF*()YnYf1PDe4f(16Qp%Gd~-vU%-^WInz?lg@EatOms1cf*At+Xtfg?**Rh5v z_Mf4ed%>j~`|xEY55v5Ct*iiNdu$*AIY)7vW+RBIq_^}P?X)3W=yT9roy|Y{3>u!R zM5A}5Q7$uD8zlRxBe)rkAZb_#HLug-dq}$~DQT*zOFUHT9ws5Gukz%xDGu4w2aNnq zvaNP7lS}zU9J$gb7)6`}@@h!n0m!_8?jA@E6X6!0>7`wjiPl(Fc${2$*#Y`DG|kce zit$L~7vOx-9mrz2N`=|~y|n<*LxAGST82vow1dz0=O$=}bJOJK>yTU}no@wWyyYBy zv1rz`Mq6YNtR;&UU;_2aW#vP3?_?Q!o`-YwycuF&#C)r%_b=TqB7bprPt`6a=IdR1 z2u7`=kM;;WUDptWSCor<8|^ctx|9Eg=L6n_deH>gx_fPolubn1zOoZpa72Y+(v5Gp zT(~{jFk>^pg5)EVdVFg__#OCn3COGd)weKKjaGUuOayrLcJ_Rf3CxvkX2c zH6MX(=`AfEGxIIo;9W_xal$F- zt^`$mZg$Oaa;F3&zt9uHWc_zYi)DKLFuAzGsfu7HDB90yg5)fZWoyZk<%=Z1^X!I` zthr7`0+%QW$c+q#T#s-nFB9!g4}QZc+Y_ax_7^Tce}dxj)ARe0>YS6R6$I}Yfxpe9zRb0?9Z|NUv<;A_aDStOFeQl(#F{k>;G1W6g06qtPlM?=N}4dOtCq4}0>ymFv2RIDh&8hZAg5u# zXwuokLX}s9a99;e)cQmUcKNHQ{(QY8UE7XcSVyT7rBUiZOoTa9Dr8Yhb#szb9n51_ zRE5^zstqjtq;l(s z`|Y|rU2-{YW6NQ~&Z0spq~Pd;kcH{3vM(8B6xLRTcW3`C1{*opn_1ydV97WJFA8QF zcbsfjz?z+Q2Zt~s+Aa2oZ3jvd5w2X*E!l0$1Q9)@cpOeG#W4(Ns z?DSf_^2c5zr|yR+wy5Y-uPT;XS$7Q5et>u8 z=xa+6`QE-DJ8dy=%}S8xsv6CW03b9#sb5-R+htz^$gsBV3C0kr7(!iM*BFSp!ogvv zyswneR8>B1=ya*(pB9N;iD0yqneu!w(4mp}VCvgdfGS%r&Qh*G?AG+TV*MD)V`dYc zKcEWJuNj3cy$Rojtg6C^r2bHTIM)EIiyk&yHtu#7$mm;!O@gi1Dm$9-#_v^~8e8;+ z0k-rxN@vANW0Gh%6UR>C)Suj5X7_MfDF&NO9xAq{yh>UADjqukn5 zSh7o*AHTLzSC+$6CQ|HC4ETTbato%nCsFdxVNZOfjtxuyz!aFmWdWYRqEQmN4a~ox z$~3h-(M4F}FNyK8*J0$zZdHNpleIDNN_Zm?3%y%ZpwKa(T4ypOFI2nog@dlLAI(2_Of{t3U{FXBd z=JNKC&eUl_>k%$Nh-m}W45*FN?1OE$=LJ;L=`~QjqRazK+;(h$oQ85nuxxOeIONz_ za71DG8CqIm1%umkY|diJw}u#5vWWy^(kzJfn2$95iQsMmo_U_ArYP;zU<dQy0oo{ zIUE{kUDZa<;2uUVAEK`N1Le;UBaM6RlGc(l16WR0S+R#z#=?-XP*X0c8j1tD$zQWL z3y0|y?Ig4WBZn*Qm$0*FCP3O_l;rM4hxJSX=yTMKcbJNjvy_F&zEkX`%{D0FGC3CN z!nBp@2UA6w_dpmN8jisS9GzV0l+2UY8bP6S746I!IYspeC!4Z)MdX7~$(n*ynn4rB==9b`^hFA7_5G&?nNX?+)6nn>< ze%NrWOKv|#=sfroY4phi$TzJmBmJzhwI|XgNdm{Bjm8yv5FR-#z-jR;BvP6M-BOSs z>-J-XSg5+k@jSnStXPMrzBb62B{giTt#+_c-JZwqtjQ0)?b^1g7>b}CI@rh@w-7J z$V_P7U(aqTR?0VHCAgYO&3=%oN7vLHVo5xoY%U2b0Fj@$oDLau!AOuPs{#6pI8<9( z)zEdZUerfs+mXdvK7@1cQI=c#E*Ec+9`-6n;EWX#PNOWTRt~7PD!P1CPg^K;Q&HEC zR8yC2RA86mDkUnpHIEF_3mQuL38#uzv&>PKpiQw2Xs1&BCeC=eeW^ST9H0NH{>lq1 zxU06taQJz?43Iw3T`$SpNT_|_b0eATl04LMQ4k{99xExO2GR4m#IoplO|VCEYN@-a zI?^-+XyeDIDJRBa;508VxRTIeqQ_MpXj%p1ncG(KsmVjp@)T2H4}WqA|c8i4b_!2k~VLHs41#_STXJafja+1UhVFM*~v%yx3s zp~AF(R?Px0=?SS4HwX3%?~fF3qY|61zs)&ty>i%9YJ+?|-^~b~Y8J;yHakjFMf=}+le zgcCX|8r4;jCimw6tWL^Bd2=w#zuRHBK+fYeW)Y%qF$e+=ULY1Ob4H zdU~YneZE$ua28e3BsUf6&2eo9MVqdSnhdIm^+=-piGJI@)j!K>& zv!>aKRbJ9^eB6HCN**RP+i7XqZLPp3+s{$i6JpjeJ0f8pYo$KLe%{I+R$+G4OwHHF z;!BvX#S>=MH+!(La38y`Tf7zz%QE|DSz44&f^W7ste$W)+Uy5t;(U^Qi^Xg8uugLz zknHZ0;cN4E1bC{MhB*XS4ED+Kb^Ch*JS^NCq2*~4dtU8eM)_c z{k?%6c4CeL{L6hTezr=EAdk&#X-))u8+`13?n>Su4_h;*Xhqsip9H_`N{(O;QrMgZ zMh^NU`xRI627B16Ia4dqPWfc`*(y6iJhjdC<{Th?$tTCpUD+GrVe{sEtz5h9Q{b0f z*%9igYj!plX%*UIpHjc#%HB{9&@dqnA75XK*es4PPo&w+Tmh28eeL45c*8t^$6TX@ z`9%39NVdgM#S>-rGGB)f;(U{(*y63?0bb^tTBJ{R-wd%?9pRparqkRAUI+W;h}-H7 z_W(fi9WB;pf^UIjTOCzBjm$)Is}}Dw+qYDTt=_60AZl)h`j-1z{A~e_Y96~e$lL`f zZ1A=Fy92z{Jb>8TtGRr3`X=~i2RN#GnwZ1P523$#G2#H(-2&^pS_Yh$ZPX}Ci5#T%O}b&p;C5`qoya$oMe6j*~j@M zS1Jzj*7Sfk^CFDZ-7lk(E!d%ZTAL~6chKlyznn_$V6W~0k>*t`&u4;PL8a_qM=eiV zGu6DV<@?O`E3H%+Y@ijGJl4wH~85ryFCm9pb3t>0r(?AHZz~{gNvehj{CFz`glMEActymr>ak>Zt4KWG*nDzzLW9aw@w+ zy>&ehgZWG=_qpv?P&qr)QP0!GTw*@gmR0yX_A9Mi9O|v-fjrC?$PZs?^V-53ksgQn zs_6&!gp1wc4)aEOpck{UPnd6%Bv`V;9Q8fj%~fU~TplOMmf|pPeGdd=hWbSMc9#r` zt%@Vc)6-mQR)ygPOOC}|#T(^;qRbjTvAz?ez>;0X(ZJK&%rtBH#QV;cQcH0aZvzh` zX4XUaEEkK_7Vc>1Nif%&4dBrYVz;`(y$wCkoY~mN<-1c7tl8m?Xir~rli3vEa!~NH zhkK(v5TV(^C&~AeWLRxg9gRHw&CO;j*!q&>Slv~ z%#J?kzK^BUT3prJ*aMlGU42YnUw=!0t(wE`ahW^J9!P?4e|vztn%C}uZp}VES-w&J z2?5#F9ENAG`M%i?nHJ}t98g^C|0p{1$CmFujwku#_~h&->6PA}q(#t@R#94fk`!?V zMI0lkqVA}oDE)krG>tos?_^_qQZ_Y49GlMh=`lKtI7a4dUF$G{jt=Ad>M#2Pte@BG zc|2b4Fdb?5LncSSpw;u-B4s4eiOwVUlA~dGjN(;^%#lnd8ve4$acn;)pVuJrMiQOr zvE&crM0Pc&h}SF%Mlzjg_){mR!0fg2P_Z(KNTto>A#y6rn@v28*c`>A((t!W&R_>P zl{}-^8%3ni6UZOQ*)U2E^9semC?<`DkAa-eZsgSR++t-k(S@Ew{!A`}5p|VUB{oMh zU1<0^$R+F$=K-%l?2RV6(v!(kJPq^NkX(l1QiX$zRAdFu^nUg_59>NvGk1A~&#cM9+6ilrcmG zT|oXyZiYcPieDu$$1oW*d|~8Pwie0fH%PoOL^pam`5U>7orM(fn*rW*~P9Jv!# zkDZT7m9a!7T}WObcfsu3#Mem8u}mfn-ype%Z9*#fMyWTJ=uXcfe<%0B;yBDNlm_AF zJ8AeR$%AYQQp=NWPzgZfLV|vo?*^*~qr*Z_SOc_sP(KfP)tb+-y5NKrPcqWU6@0dKt_8@A3QRa;& zdeKGXWAXy*s|-P*EEv!9qT$0PFT>u|3*0hg0@0f;CjTO@!B8J1sFIlznBFve>Eune zAITRq$h-+eHochqo4n1gMv4T@vS0#}O~a>8-iOU=7ocIvL?VYSAzzUXVGnE)Xu`~i zOb!jRfc%pkKq>{sFmEE!hh9ehLq3Bwd00>w7EEON&@ddxm+VHQR^Sd(CJ}wB&Ht??kT%s)=0MP0FccSZbS4johqea%q@JR0ocUTZtOwUNzC5UQI?)ok0~GMhoRZ zHPfGlAw_lNSh%&QTdqtd2GDEC7^)lW!K-MM+?>n|pkZoJJvlb+1GGWzO(q7?>&XNv zn^VGljW)}J$;?0+#u(L)LvrElN1;q1jI@VTQ3hC@(4Z*HDU6YZxke4-c(`yRrSPT@ zgXm3UJ8B4s5%^sVMKFaKM8lw?Mt}~}3*8E3J7O@sh3rU;hHVSK>8UWcV+PYO`KWOm zKQ~|4pzyXMhR|PM?IqKxsj#3o2{qy7 z_RLTkW+OF&6W~?~jp5$*#4!46vO6^!G|*vTVR*1TGmM5|NzLapav}8yS9TzV)7!~j z)I!+lSA|vK<_^qo8m1?;gcIUE5H^H+I}ju29b_MBIj5ETTG$*O?7)nmVVqKB92Sow zLL-zK!bH=gj>uP>3`UW({MaVZKro9E_(H86&(JVkBKj_NUf>^vVzwMg%p?NE!w% zwSj~4^dfhJvLi8y-c1goHiL2)C8~-rcVtG09wjHO|UQ^zI`Ubju?$nrV?h_Pg2{dd1>L$m}%NI99dDDoA^iSkm>NcmES0rwZ3Z^j=X;=-^eURODF&eGx zLQJBo$pzFy5Kf!KnrL$uW)cm%g8Gva;8lu^(cUh^7xZy*5%mo8?O}0Ybg&Ea1r5uC zddX?z)r#HG%C5v@`XsrOdc!Ge=3Nz6MVq@alWABd)H_ay_dwhb?d?iTp-+=5s1KZ0 z-fMAlbg(Nkg@*k?ede(E90{saY6%O?kQ9Z0K2u0EO0$-+(6DeQ0fO<>5~I?qC9HHU zSx$*TS7%5Hl|e0IrC|e6VF=FGOWaCjI+0J;ldGt3kaVLYRZ4R@lTX7+qM{KkKVQ9gcIDh|ow7fG6x!E|OS4LgcT0^4DipfSn}qJVB7H&V%<0yjxCG3E@WfQF?- zbwEt~N{KPXn?X#Y&y)Y7I)j`)EGdi$W-!xe*kV*y#KNzYxMP&vi0Sl2@++zv2*<0E zsu*)OW;zXPjp~Wm_zxrvG2U*(4EhrJ4V8_Q@Lx-sV}jk78N^v)C%Yd~#)qeWpd{B8 zk^#cUHXs#zOqv4kqxoU+5xdv}kqvxYnhU&wb|!h1_?A5c*~-^S3t|JAe%OS>9`*=i zC)f&SEY@8+i@Z+kWsgSo@J-U)aH8vn)ky4Pk3$afEzT%<+9@;r%kT}Giik#znq$zQx9)4J!#1Zxk>(B%ct!v9}>T1vc5E_&_f|>}=vPdneLQ zK+3oYSZ{4H*-Ttv??MI&JhGGoQ*S>kapD?#4>AI5X>Nk2w{{Wvl=z*!4;d%$%L)<# zz5TG&iJR<$$Q1By&IBx5yO?}V{J}ng%n$@*yAw>=epvIwZT2x_zMxT7pWw;XE+JnK zciAV9C4!LbQ9>Zw4||`u&pv~c30Ps=L@Y;JLWYPYb{$e7z`{}zO*wuL0>nf1Ib?$X z56eyTW1Hmo2qkmCnsK>W$RjO+x<=uE`=XqS;K#9!=d$R2?yYFIViA%)hBxTXqS_3iND#mkz)c|*rUWiA3taZ;wAe&V&kn0VlO6?IV)Hnh9?<8Oj!P9y`i2UmjpY&dbs=ID=hC>|4>hn8-fF2mZSzy7nTpKchn1{ z?4IB>7Mz%Jt^qJ1$EM|HT}!etBX3T}IJI9O&QNEQo^Ew-;k($GoRN$}8^ zgW%UlII-OB=p5`0Xc&)!5Y)&xiQGPDDfSU(=`kmP)?nb8`lD;Hcn~!nCn2m+aN2W+ zq1&+>6{*L{2~kZ1rxSM!x*wYaD#ue!h-;!aUASMMC$Ul$%YeBENsSVW)-?1YwjE@T z$3;kMVmUpybJ084NwDr%1tF`6=k(?-LZ4%IKnHm$h_ISOPG9Z{^dt6B#mdFp1XhEC zH!DXa@^}zN9ycMcQF8{sE4K0S95tDXts)dPDV)LZ6X>b(NuZQGtBCNL_MG9|Z_pfh zshZUvTTMjNXu!^Wiw>1<2kGQlO+?mo;*90~fKHO1gv0<_Lqyf2awc$pMCZuwfR^&C zA);%#a3*t4p{4SVYSsX3EupN@f&=^oT`P|VaphS{#MESPrgMKox65;q$pP3pBDN-z zGmHB>x?esC)Rt!*5m(cLGmm>0Jt;3uW(~yF6Y(`!U>YBz7vQ-q!3a)lxgXjw+m zgR3aLy__o%#wxN>N{pYlxbec?ijtI8BWn|$LK*EF zxhcZIAmOqGk(=;#)L{GnxT(Skit3b-L9ESqdupitD{iK67HGO^Ft2zAYPkIyZjNx7 zqBW&;5Nivrp-grkH&?hCL|)clatq#(8fE{MJ5>0!BCB1=VAlWePE?+KFE>y4J*d8F z@Vj_tYOMVS?j+%HMM=BX!K^RwRLX2W#4Qk>2N{?(g!~duqbAsYuWrdDzsnW?iLOP zDVa5l{2K30&9eW_-7lOFUfsTA7;78egPLRigL_ms3$$f57;(HOHP3#Rds4V8ytRGn zFxGZFi?Z39xb?!-AU3mxliTrLRFVBL_oDFY@T?9c!&%?py{TgRU)-|m!tX(TR)cxR zv#G`QzqxmW$HPlHv<_$Oz;mb)`z!7v;d#)bStH0Dcpqw+{U7*!w_D-W9ZE*9cH(`h zQv1K$7U5G6sMX;2@qW}w`+wYz!uR2=9a=}QXq=!(JDbN9i9oStnMfMfQFc3zClSR) zWNAuFEFZ3?oOU5ELevQ)Y&Ap#xPfxnrM!4i?}!pjtBF;K=TdIFoR=aR44O7;Bw2~~ zr&ik|d8wia5!ITKk*r<#0BWs0hLdhKO?#2gEo9yj)Lq%UlWOXbV#rhT>Ol`4u6ze;DDCM=M^9n@gK^JF@CcndnQD57;^X7*52v=}1OeRk23t zc5?>tHiMMT>*UX~?PZPDea9Kb+a}72EbbJ_3+-j)>8dy*dAmScZ|S5RWBZ;pM)y5u z3~wIFg$I7b% z^&Qb!JJzfKoSD39Ajk7M`^VaTU`^Eh#F@*xEvk+z z?i?B$`hhh`SIt?#dkFe`OK0sk+X2=Wy5pQhyk`)*9PMly7dpV2tUJkB%6kKX{d#Br zINL$i6y0gg3f>1%Yh+93(6|s}kUEA#@eok(5vf|U&CjyxYB}XRF(fsasWx-S&&t=; zb5`-fLDJ`?`pvdOtf{)QoOQf7aaL4uYRDWq#46A=a5nOiLE~>p)sD9vW=+$b=lqY? z8N!{TskZTsALi=3}`-9YqTPxX(t9bwJTUE+Mh%NCbJwWNl|hamdY1voyQ0bD>t zns$QiC~KzfD(73?5Xgfv(`*w$M_IFU*ExH6qrn#BrTHh=eq_zo-QfJdn<%c1DozVc z2>r;KqYH8l@uq@L*pjB5X#0sZS9go^BX2fDNJrCb6GK0-=IQQme&#I%<8VFAKhbuK zHD7m+bBecI+#1!A7Md7>#8ubGso^=mNknwfPO??A7U&*ue&MZw)G4!zZBnS3Rit~w z`IWaBtVLcI|0LVbtcAKKoZooc#97hBT|$#WKeLK;&73Q|UEnpgbkTlcJI-39d&>Ep zw-17z;G|;2i<;alMQG3)>0S65R{VUET?CNpwq>&=(;HdUYXA6R!^3 zNJLldWZOyBQr&CLV_w+>2)8o3+9roivX<#uIDhf3fj!CV>Yr>o#aga=%lVskTU;Go z+%+^gbc$7~YvsJ+Jp{k9rK@&|?KEqJ?mg!p-ZRL5TRviZI%$jvg^2r zkRJ{fCr|6Q*lJh~9UqbM<0M(iVr|G0s$n^GC?e-4gXh_z)mm+}ta6N)a|I& zW)0P{TsjF7!|w(r=(^T#wbijIbTTA?pDig-wrE4v5ailA3{mk7;EE#BwfVMs)+(I> zX~!P|L0x9LEk9JxTCIyfI`T(@P0CC6=i7c^t)Ip3_}e5|F~u37g3zz5EjkS{lD`YQ*Om70vxsim>9&ikuXGv6H2wt$ z9W%SxriU)FzSd=HH?oNT406h&-E1>LmsmS=ImlA}8!&X&yZL9>F0*#(`XVd%A0(|YE!{#h zLYG;zjzB2*|Bc2*fWxx|SU#N|Dd&qJ+RV(f6@~(=N?k6piXSf3#O8tJvt42B(hWe? z@#CafvBjC8!q64gZk-X?$WN9UW4C|@v|VL=s~e2`kKY;6(4(2QnW3w!?{q_vulU`h zg|XMc6xyz__UMKq-|(}gC9y4;p_w7*EOaKs$2Umbu@T@BZP!_Qb)%4P`9mN;&FpTQ z6}pa>vho~Nd@CR|Lm^Q${my(}GX~kuA1^%`JEwc&tibQgzM64}pKk>pxwbn#+jN83 zUo###%AYB{9=pH0Wp>~O^Fz%-@daytw^6EOP_5m>+9qL$h`W%;`ml zdQG>PpK9hJclbX`i{qa6Xq+3k%^a(lk2LbjYQU~adgAj;cbMv$1;``*uhK1XsXZ<8 z0(Y37YZgL@a|QhCP>6?3cbVfgi;(C1Kcq+F=Jafw7r4uus9A!9_)TDF*Y?Eco9;0u zYnCD{{J*5Yp!77)XYSFbsO63}hx;I|p{I8~ai2a-t#Ewcw@P2fHTMk8XYSKys4_>J z<>kbqSxOtxNHY`#o)?uV;x$=j8`DVFP!30%2Uf=$v%EHQG#v6Ni zi-^bcdFp?T&d^~UjxX#LEMgwh7pSd{He+2I@9w2sNIao0QeQc`K^T5DzN(jbA@hX( zjoRjDbJ`E$8+v&c5`WT{sBawEf)d&5_~u^0h0LGyWooCR&3bbZ(B8^oqL~g*K8FGF zb47xtx4D>Urms-D9Bp1)onY+kEhhe=uTtMShCp?ekxSj_xIU!(Ro+RV8=!QETA zhIcU}LA9(Xp}BW(5%Y|` zNgZ^w*>`&anyp++Jg0-yA;(lm={F^4vdxQ`=ky=c5l5S!uS_szdlwUb)3>M}9kZda zJDgCM9bC-(P2Z-DIob?eT*ADh?^9O^CXw}f~_KcIebtbw91Be5_iSi-!bA5!NWZ6Sd^(Ve4QO1!2YQNKDiLwztR zu`0*BlzB}*rY<T6!Xyr=)6 zo;hv`{9*Z!UU*j!ALzH#-;UdYvg)v+q~^ZC70d_v9re<2ADVYN#2Lz!#7DZ7dgXWs z?a8JjO+WKW<|F+t^~Uk1AP`mw`G$8T@gM!3`p5AM+StQMh5dpnng8ey)H}yZL1S1g z1RlyV;uHOm`q%LW3YV)%RsGCm%qRLk>VxB*AQbih5)f}0@tOWa{pa`~XbpRv)Z8yv z#(btfQ=c851uTpMk%*EcSU#4W?L?rXQQ#WFOfoDVbk9x!ieYNVNW3J$_CeR^6hjG| zffo`%l41LxTyln?IHrftL`e}GACw8saHw@g;Z=m0VnBP^#m;C{i{(R#;-v`KC3YB{ zXckt4HxogML3{#xm@^5$13SbjN;|>zp?0}58JeI?xJGBTGhCn09`5Xbny^a9S-f_F z=M&i@ot>e3K8zRYf_8@I6WgPmT~P~Gi@SA72wr>=dyKOilt)+bDxKNEz|gnHIeVfu z>;c}O^Fk8igAdf1jh0}q@n&7n!3cctKg8J&B{7Z))hi*I@nLqA(*S*wLZ#80oeb)e z+moFGQ4gk88TDSsYJ3WNJLeFnyfajV`k<2$`oirUoFf1!(W~5gC4@J=2zy88XsD=0 zsjBqmaz^Bfw0CxnL;YC3szL9CG{+ZZPjgO0tFa~qP>rEIogW7Ry7-f z6-<~f$==UdhO*=wHJYo0h{%WAbxsF#X9~3@*X(96pUQ4eYIlDn1W~?J`*`OO zDD|$YtNNSQFj2lV`$Xq4)FywRZs_lYWXjjY{)O`dS|Wd~Ztfpk!$kYK+NU_r0JOwO zMh7S%s`6>=R%adbfQn?z0P|W#=}Wgyb)G{#a&@wCfEThWUxs~}^8(-u8OenMf@_%= zUpM;<=Vc&_^vUi4N(i%jnf95^Yfv4IO0F7UUdP1xy4zd46)k058N_z8?0u z&f93UyePSOKyV!s=j&;o@4OG#jXfD1sD!-Bmt|kzdprew`P^Li%U*UP@p`6n8X zS0)<=dLaPw^|mi^J_C&6aB|_m;Cd#(mu+9-e2F&7Ym?mrl^cjeA0%SVH_%XCO|BYf z-oPaK`q-B{-=QJ-gXD&R-VH>O42eeiGI=OjZa08R%>t`=>enwdeP6}#NdI;PH znVA!TQd5zlF`7LL?$g;FPJs|ps8ftauZK|iAVhPDf!@eSDKrK>jLK)QS2)9jxI&-e zHYzs~Y9FL(&T!~KN2OF5%^MlDufKhbGg_!sO7MJH3x<5LPI#b}55R zTl^Yoq<$B7pm2i%Zhj_l!LLjLBkvm&> zQ{it{FeLD$ABtlAG46cfePCvsL$Iw{NC@>ma~BH#R0P`X9%9<+??Qc{KLP0NOGRV5 z`XQdJT8Iqwr?|_7?-ZeSkA?)c`k`CapW&7XKPy=6xkE9p7BWPA4c8$Qgk$YfhMK&7 zEoIf$aVvyj;duMpp&qXmLPh;A+%>}JaBcg7p#iTS>S+Br?gn8JpgPW>*jHLe8TG$% zHw!z2o7(RlYWm8bK~2+N;BFOm4Y#zfAL{u^3$dgAH|{oJ&v0A&M?(W&`JutqU*_%< z_6sK=SjWEBLJq0F!rdht818AGGR*X~Ka-lNzsB7o9062X?l8~SS_mffzr!PptAy3 z3(tg;9k?T~9a_jk^{==Oh3CRO9a2V^cKCCsrTRDAKZTcp%F7+$*`bAiRR0h6neb+~ zzeB-@zz#n&`1*I;m%{r1L^(%bJGGFQ>i^}w5&jt-=&*Z)X{Wz0wL<@a`%d^Wys<<5 z2+vL}M5y}zxF3Y?!b2S%jR@@YL+P*o%>69<9L~~kO&G0(OjXb3AtFHprb#iGXg@(w zdW0tsg+<_+T$6{^LddG;@x-F&2(6~T6rlaU3Frm9Fi{e4SWXk>(?aU17xKbI9U@Gc z-6oUIucylOVqUbUYlKBpZ}RxG5X0)Fyf{(M2%F}SDd6)1TA&Z(C5ie)kQ(kttWpcP ztX|Gb77dK>Xi`R+D*d_CDt$PwgJ=XmiMb;^m0AdD^^v^JqHz&^O~J@Or5|VneKfDD zXbRw8&XL$IEhM-47+yEgjEI0{_ej$&{{U*8K91K@G(VzIQ$NzPOAAr1K7p4lS`rb` zJQ^9;@&EEpBo?FZ&T-+?zmv=gW^=P2x3Eu_Etj=a&LJrSmkyGNP6^$({0 zr|--gCps8m=~zF?^Q{)*V0{{IqUczJt>dFnfp7hQN$9)srijh})XE)=eW!(dSf9?D zDmoY8>6kLw^qqew^_9LGZ-(eHFqyfdJ>O{|FxGeH%@*B^@OLa29r(@!uzAc6B5NYbPJI}P&KZ^QRKZLhc z)HTx5sXouMS38>ePTv+w_l&f4dXyK~>j&gRKZ3VY)Gv~RA`bgrn@3gY+j8oGk)BQ| zV@%)s^QgW0(Y!sP5rCxTj`4i29YcMuA5&f`92p{+x^3$S~k)JxT#-jUivlX)L@>-EAQq~zCYurzpt%o>M%g>6|Mu92i665A+1_Cj+kH{sEt8g?zmHmguL*d7T@_HvB+Ov>xNkFTW=`9k~*o+(r-JldKS!mp>4l zja=UuA7?y3PqO~ZSy=u=bSZKN5H9Wm_!m}4(955SZbTmFY#G;Zfd0aIg0rOjh3H=7 zVovEe)PXc0zK~7)0mKQ7T9yKTRj+r^+nW{TiyPlUQ?h{p-`q9ifj6rZ;+Xm-g3qtU^`5PM7P%&L~luazfTovQTx!URmB>yf!K}Eo(vvv;nHC z_TA-!#9N{|rI{yG10DZUm}m6kWr|C4Pl`?mfk-dyqR zsOq$0s2D3N6gr2{JoY{PN#0WNo2cfr z>l6LQZ1dUo^{06=zs(^{Z}2+e0V>KOnFk!Z9_#3XIC&Bkuh*Ye86V&I!Hp_K^P z*bnseyj9}xXib-+9jmG>3z{Bq&X%tg$42*nnxeV7aY55VPD8mztd1Vg#WP9sv!$r% z5$AmQ7ICNOvCvx-{@hs9^q6z8+$+wAp57%esp@CT!loyjOXb_ey`vXHkIT-Njt=XrThd^mb~*TCeeQ}{3H;jV>Kf~T1kz7O_yJZJ6RcLzMYG+5anVD`j4HZJrW5!<6|x+dr3ohT9j87PTlDg7mQ* zY*$-LqtI$BW`-es02a9f5=^Pq8ZBOipnMz$&(&7jWM~U5L587xh(q8Cli*6d)@@PN z5K!Pdgs!$8XOy7^b2y-RD z^?_ZBT9vhg(}z0buC}IUlU8Fj*D_9@&=KzHATcQ`wMMJAmMHg$9FeZJ>gTYw&>E~| z%6(!7{Buey%37`4s;nbiK8Yj7)z$@F)mB-}b&Sg=b;P-PN^Hsp+6Jq)j;Qd-90{&$ zD2HBao2|h*rotEINOJX)kV;NEny;)U+&;{qa<#QZigZoBxt?+Rxor9g`=Ho2-HUz>4o{hdS;a`+|j``0`6P%>F#{xFT`qJgrlRYtxp=2UX^eDg<0*3 zbaZx&llYbS=?(ebUx+onC`X!WqNG|`l-`^l{DoQLi*|H%O_4AVg`iWFXNk2wr6b)n z6&j~a>6)qLv&>pwjH8=th9sb@OgB#To+Z}#VjbOGv!Q}IoL)FJc$Qh`i*xjJ&6hMP zYt!9RmFI}{zIaD3S6e4_HN9%8`5d#}m*B{DEs=zj57HZ^de0FXe2I=euH{fty-shQ z8a&5r@Fh9=xymH07)}OSpll#KKHQ;mwY64?3{8Q#f${iM4uh*gg2kvaj0N5XVxv#( z=sD|BP7!;$GHL%%=?2bo3(bwL*L5s+E+vVr1R$>Bft+*P4z@b)A*0k4XgD(R~sB$_jm& z>%8R4m@eHc(;F_*Us<~$GhCM>J7W5FBd4Rk;a^*!U~^rSd>1nuFn{B3^w-wz$ZXdQ z$$^;307$xj!?#(XadX|0{1h{Zf z>$~AIjF;%`)?Ua$*AvO5m>s}Wx-a41SfP`1J(b*uInd2Aqu~<$jWrut;(8&u7jwEB zIRm|n@32Bi=Xx!95_1Wz3yhcP9o9a`a@SkQi#x!z0O#=Pj(IHTb* zz0(R@rt6dBQ_QDstU@$^(^jbQTpTGsR+fnu8Ur+K)gcZSUn+}D%p?lk0o-SWUe6_x zM#Xl?v=lZ3XrI-9RJdf)#Mr)>WFdM5ue3tZ=Tb=9#}0?12ICdF(%K(c2Iw7jJmo&Cv`fLoQYn;zq3MF z=*o~zkG%x96vk`xch+IZHdhbnyx4o0%uM$+e2*2{LsxI<;@B6NjWZjr(R-{Tke#l+ z(v`8FGFh|G>v)wF>O?SLu2@-je3tP#U1c4K>~al|u8&RZPRw#&$M;&HUvv$Yei_@P zdr4>Jx@WI$blrFS;nHtnbGnz#V*QSNugj~e;*XMk3x(tMS;X(2?{#D9zUPmX{t!E< z`$+&-v3=!hKVSL_RFd(t zi5s5%y76^~`O~Gp#cuDO1FS3dgKk3IQT{CH@6b_Bn$6ts{Ggjy_Y;4f^lt3Q?xnL? zH?ae{Np;oyBI#o&Ew|4mZh8*rzNkCSUo8DQ_D=VcfX8A7b(8B(@|Q{fffn=5Z04rt zpl(XtY5q#-f3Y9Cf1J$aj)6#=2eoGW93trP>#TLPe3w)j7vCcXh+6EBF2Amx zzgijzJ?Er3Owe;kH?{68f4wvzE~iK79M&J$Vc$PwgR8Ch9Nfb@C+iRLuxgs)yz76` z)VK*fs^^sa!8)Rv?zre`YeHxB2+pa7lNQws$0gS{(ww+uJzD3q{=qt`Ds%*3A>_ub z?xCEUb&EWzn(4Ue`c^tL?&}^|b4zZqepJnJTz9o~rQi23&#k^i{-~PmxZ(OiIw|gW zkCM5qw^%=^<~V|`w(|6R5AWQp+vHEGxsF?|AEk5RZuO|1TXLIqOf}DO$JN%RMkub& z_20Gu`)jzzKP4?&9@pBVWp3zp=os5(Xyn(xWEu zan(JG=ZEfvPO(c3t^8Nghfv~fnXkQXJI!8Uc+dYw`YbNk^XPor{m^OlO2bF~ztT6* z>RzAkzi$JO+3<<~pY%gqYtNSXq5GjTY|_9Iuw@9;yb(5Sqm5z1t%v|DOT02G(`IW7 zF>JemD-g=Uq4&+R`5SG(J{$M~sVpu&E34QRY7Et|p~n!&Wyw$kZ?S2cY_;ri1K4O; z=Xi70QJbwPRLh2?E`XU0&G2=bzsUx;v_U3FkY&f0WVP5rO`$rr+kgpFG6Ph_5eu{r zZ1wC_28E!VY)HH}D|3PEL8zX++7Kb=C>sskaoz&|0~-+5hA2UrY+`(MR`G(+gU~PR zwFadiT{acUkP4i?y}kO!K|YTY!5?c+3OAQf?l$P@y%J+7x*9A0LnHb z3i`;F$G2v+EC@Xeonw0pxIia!K;0Zsquiu{jkz;PSe3x>(I#b@;@E($#g{mR~A&b*Jd?U+FDCyl&9QrGCja_9hL91qf>O5kR z_NnbUd#_=X;9J>{1aI%mMYgA*>+J6hd4j#N(a@#mE%HCL{jOTc9$T?rHX-4s-nK=} zPaA)4+J~4c+RF8_y*-OG&n!2Z_9GK2j>={w+yFMd@LA)HrXP?=71gq`qJ$^C1BSaufNalV&EJ+=O-GSg z71w3oCyWIIzwqzITTMSAb1K>@`{~(%#Z`Y>Za4je%&WK~JD#vOJG8j@@5b9r#}HdZ zTZiw;#+GPaSnf2zabCqE+4+Pof!Z&8(RionXQa5It5~JWYpfJ?f z*i?f+j|X5t`y5kARmjrRREvOy4U0|ekz*@q4mCD4)gkVRHd0_fj;BQP%JQJ89$8%x z5!NYjESwV*zG{5X^b4}Kq75CGo)ajkdS!XobQW1(5g*n&adA$lr1@3j!=`hHr=pD| zaOGf2HLop?ni>E;NeLU2xFsibspWOxQO&P)n*lBunYcS==u-N%>2b~Zy8j7M!^S5b z&6%^b@pa&F&4s$HKpR*S>vPsF#ow5o)Lg9lN{|^gGx2)P{-u^TfhRS;)wSUV3lbmY zTwF@OG5uL{sqPy=PT11KmYnBH8{Y)}thrp*#v@Pw;!Bp{EvDw0K%GyJ8@4JjqEG5F zOG}`+=1Scz02DSRrt}%QjBYXgRdcoOTfxwzP#}r>l6)KL`4~#XmI+XrOH+! z8T)wu%upnXd{H~b+u5>_@NDbRQK z3eyMwTkBEw?TVkm<|WNe(YJ9$1MnHvm&pB!(_t%B41YpDZ3VB#@Hf()TVn1S~`y>9Z^)>Ri;(XYbNnQF`RyF{^ zVSR)AS#c?BM^fK@8u*19c;$i%FCAbqJdq$sH%kT2JaFN%9gD)d5Eill zNRoVn3n&(ri1#H(5@oA6`EXs~R$%S%;c$Lq1hgcd#|26m>w-@v7}CvF!KF7Bs6(s= zK96W58-O**7jVPeiCABJCBdRljtWkFxpKD}8-TBeiyb4tC;38dxVt?z9N$3@l$)c1 zV^40RyAw7RKR{Th2B1;$#oTCj7i=;v>c4%27R5kHde;afvP-0G5rY zUS6+8;aUZc*X7tru3V^B)Tf|O=;EomNkFu06zaq4+b)N`!EZBkMb%W3eCbNxGA84lNh!qv})93D}SL9NisYUN%B}Sl=%5kE*>D5jS_uKeFi!m`wic&%W;r=xl|uppNY=Ge#iIgCIJ<*QL2xt z?}5(4?&2qPr4ANoM16dH7FvWo#xLr&117T(Sh)J$=wj?|{EqGm*s>Iu}2@l+ChJb*MC0f(vAqb^LUir42jNmLFz zNPRB48jDn=>L&qNvk`!Z`T^*AEJ2l{FLknnasUGAjp!zwqO8m__B(22Ugfy1d~`c`MFkR73hP7o5ST-9oTak4~I zgc?dQ_qW(k)z|v0@)8j{QVp$;doPx!`X1<|d>L~y`)o_Kb?&_TEJ_Yw# z@Aa+atztH0g-(mR26L)JK=fouCQPql=K zQFn7f(g7!3y$vOE z3Y+W|+==BDqkm!7029gsCAJ`elbyR5-nF}}sy3XQ)+}pEc#zF4akp_pXW^1e1FQH! z4tJTm1$(NxVenTJ!Y+Eyhg<4y1Bsp(0u_yUrli`w^=-Fi|EgLH&np_kt|Zm=t1knx zh^^-4O58X$60ardDfpO$>WJJ_w*|X`*XrsWfEvlwDY--4G&WLItFLc6Pm57!=FV|9 zVpmkPhWa-4NTtrrUF*i>Bh|IJ^{dbbc}I0#?tZsLennl|zrGDdN>>-;UUbv)k;%0K z>f0{bdZ~+ZpSv67SCVT7)^7khNvC$^N><^Dktwyt`i*Fce2{ueZt5zF;z~;Gp!zmk zX{360?$A}VVr0A8!S!uNaO2fSbLXsTR9tCSJEVRq@Jm+si(b154)Y<;ma1EFpRZ~RztW+0MEy=6oG3U2 zl&r=hMrvwJ^*%ILzDga@KXtVw;)> z0~ph>5*R4=2zZ=F-`~Aj8L8`3ndjW=9xbm@kLq8w+6>2dl>kM#$I1Qb{QeEAy^*@k zm1CVhxF^c1)kXcAR|g|&I#&WE<(>l1vDo{gYm`yC)Jn7SkbA1ULA|NJW{nx{_bLIK za?g+l)Rp~>YrIjqw8{z2AKkOzafHMD3)cjrYSJo!qjJxeH^M)^dyO($*QIij^Jn)$ zd9(Uz|Ee`+IQgptu*$te9#TK(->}9Tt?ODj*?G#nT;8gF-M@KFFuJB|C6HF`GC3=m zGXPzyRO+;q7H5syAxD!H12k*Ra3xp?=#{%djwP!H7}t80y7bC?=P&Lx@FqjXfWoyw zWlee|uvqR5ay(f-z`a%(qsyo)aQ^DvEY~ED8c?;?42Ol40B5(!6e24W5Yt(AKj-6`(}r-$5iSZsQxy)gF*x=TJV*)t$zohkMZ;9I%Z z&^_|95%6G5?mACwdUyM*+~3iC@^Q)j0R`&jH6yfcVP2kDig2 z!G$AtJr^_#WNcu{dQpk)5z3fG~kI@VAt;yPf z1?vOxhkyyo{S&<`-w8*NPMEamz3s)hf1%gpdy-89cds`k90Euz_ZfOqelXcGuztNK zAwAo^IQMV#w)|MKZQ!HzfrLXqjpe>X@5|35lLNUMnqyTt`6b*}?g#R-$?FH=8;pRF z(;L7rsbKkjN$nPbehSN(lN!2&M zl>4vywfsr)C3qXd2%uU13hoE@TltIRdjpvb?j%*e{FU7Q-0$UYlV1#M+|U5zS$-M! zv-^|$Q}QRc)jejfBUIt91ExE^n1c5tY)# zXz?@vo0jk3f-6=eru2maPgFIMuXEO;LWQDT%24BWfYmnY_2u;nEywM>y z=w0<~C!pO^<{0k)y|&Sy2VW^nRP;$HHGcH4)bd=tn|qy7DRNU*1J0JErgGJ*oQhTL z6hl+KHfC)sQM3E2S34tCbyVb~d=GqEwVLX$UgL~fm8O`Ka@<(5u~p3;pkC`#u1Z%F zq?`xfEeq~S)$5$GtGX-Zq}(!AZ!Ae>4^*#r#;@w7C{B3_1YC78HBi05nYgNtqBP~b zv2|l>GTW&3IB~e-ai)j>iOWj)KSk#n&|(|M;m+s7R;$*zZK;)1t7ILdc4`t<;!Q$p zA%vC?qFQUMTD2vFP%VVe2qDzk+7K!sgiZ*d5<+BLeV>J;e1XSYy`Ve0V-_UxthNLhNC#U%`5_9_KUjWA`<| z&JKHo>tC?Rtk3!S{EU55F6xW0m0V&0+ickR?)-{S&-k8%SGwwaAOKcC;UFT+)R zG4>cYxL~K*r1OXQz5AMAiHAMT4Jp`THtqat{?xuHS9J!qiW^#xW2QC3AOc-ZglQhO znoBCkGc%fD6G1G`z^g}LYq*qx0yESM_lVf?CfMp>#avoJv6J}QR4J3n{AxY z8_~Ewb>{dojq{Xv{cC1hXN*Mjz$B3UpT-5sD*c;gy8#KF+&?yR{6CEbkk_`tU7g+n z6l?_9u^JLeqQ2a$Xa;(L-+@$*@mP(ElqCH-X8UH~7sSA5kiA^v5@oIaeX}D#5vLy* z^B7;Q(MUeDi-)1O!XX( z*SJne*MD#JXhz+F7#JS1S8Cj#Y}fx}_5xVt^n+ub<100qDH;0XW|2cX zwm?LuSB!a&Gc{xszCO|%=R%JxhczQRQA18C)VDC7=@J{+SdmH?Pt<6q2=uMZeO;0x zdtlzkW@#uWCHnT}K>$%tR*VtGSsF@;P#Ka zNE!spx&Ut;?Q#+Zkaa%HHG_Ax4itEp$GKdIOg%K>Gq7gxo>oPHw|SyVJ1ipczRb0Q z9a@JA{LDAFJc(>LlBt5)A}*yr(I$e)*nuo-L*mbSaue? zYZ91Qb{wvn9ko&VM0QR;-u#+N`oht}{j<9^N}p0Rb5*-b&O*H-X#cR3nqID?fMu?9 zDO-p?66@cZQuB;^sbC!pF>4mmk0jfAZ{j?sT-M)c{?w&mVbYOKf5|4!3yNx)`5J^p z+#`rNgw32j$~FD1=I>lO7uFtO%#i?PPEk!Yzqs_nyP9wgVGHLK<);2_^B*o_3x|(% z&XH{4yr!tOoBv$Y7HL%?h=f#5KcyA!;B{RQi<~PNL*huMmCAtXt%)!IEjVT#;<^`bcfCMNdg6#yS3!+A z&9!8a(@}b0b$TK!LJLlsFLFJ$DD)^l5VI}ugVy7MGv>=&&o4?istl~&mIw>cg7fC9 zTyFs&uNQ>bo;a%Ytl*;gTGt04Y@!EMZ%>5DXu%cp&91K&wH)OKVRj^b)_PfR-F&<2 z=SBTTl|j`z5@ADHaLatJ>)%Cc$Mk|R8Hr1Y63}(I!{VIE_|G@mHYw+UCV`_7eyGWC=5&drS6Rweq zE02ZF6~XLO_Cf!N`8n74#myj&LhdGgm#IMg%dRPl`;N8D6~PWw_F4ax`Ayf%#nZ>s zLXerHDcP9*pt;;tu-NW+Xov`gsj>Dg6oaH?AFvE02fH6Tx&<_Dlb}`6t)D#m(TWLS~Wv z%2YalZ?2<@`;NEF6Ty~M_E-O}`5)Km#na%iL}ruJQC~dqE!>%ecR0QKzxrTub z${26Q2(HS8*L{+PTxAfjzHbf0Y{;0LzV!XEax3haq!GI&zhCU^YI5(O1G$#Vjhn2R@vLe~&sWQ#@SVGF4!0p2ExSd&3fFTk4R z!FvL#9Pb_#Thj!qTdaAWOW{IPB|b1Jqh^YtUWi5I;R~ZswfKmriW(x!aIqG7?uAQH z_4v4`rkV_@dJ)z#&!ccTsu8~-s<);IcDY!qJkP?FsAl}GsHvJMs=5G+&hsv0!f{Js z6k1G#p)S@s&!=z=ssn#GiYU&YsTX5y^85SlTiEv2g)>VB z9kfFVGf}_r-=oIFBjE$3gO1vvh1n<#Hys%J;^|D`An42B<lH7Q3 z{)CTUmJfn9t*{mq;dUU}`$TfYK=~jDBns$ybBtH3wG5Mqs6gs*rlinFca=TShJMIGGUHRUswF zS)gwd!3;U_WL0F;A*qjijX?+MkelC%0u){TedFu-w zq3YbCm(-n%UD$fKX14Zx-KVGvZV5|dCxr_MM>zh}O$IMeSKU&V44>>=C^^EJLsc!8 zZ@XnL(K>}#M5yEtsceHGl)_E8#Q79skpyHIRMnLEA&5LFr-X|LM>&DiZ3Z7vPu&`p zB%SJ9Bst0nqN=vdufZ$FJ%w0IIK~O4?lky{dgqpAS9OZMxcXQkjGYU=qdvR6TG9ev z+%d-!L$vo4{z83s`@E$8lyY(P@kCfZ7yd;NaMMes!LWg>B8AGc4Kys=tPEn%bwrp$ zW5e<|h1wQI?lv*Rx(tSTHI|geg*OhAyL(J*T@&o1vE)1+YzOSz17kAkrWooqSV|th z5NYA;9uZSfM})yNmYP>sXkp>u9v9P8ml35d#?tZxh1Q_$*bviO*8~e{YvR&x~VAjS}Z+JSctKpxEIEtPZMEMjh&xYRye~V(*1A@@pMMC`Uz}AUU{J#m_E+L z#GY<~jWu>b-hskd7V+-aV=_)pMXR60M&?x%5-gJ3@5WS|Cc@|%yD;x?;cN>srZ)!q z7fZ%ZYAm8w8U$Eubsvf8ffY9Ul*VG}F@w1lyWOW^CQpwo83z*|waOsOBG+ASDGFxU z>^hAoYK;NaqR1V+)bC7c%y^wfG_}@XzQsOw{L&cMX|qpjETNt>SZHy?owzjp%vj9$ zX^j|aok5g^*qy$#9ERI$Fpf~q7%a6o>mIwb@l5K{@iQ9BsPzWREiSnyFYP(gu#^o; zZh0Ly-r~CZc5sr6EFCyI_@8z|VTgIFJ9nuOOuM7%rLl5}L6XHC_wuD4XA_on)k~Ml zFM+kB%e{7KBy7E-&Pn6smkm-Zp1C(JO*z}Ytm~X~h5V{Ps>Oi2Y^eao-%;nK@$zd1 z=@#$ZdzRLpP57_tymY1f28d3^-G`TUz#2U2f^?Pqra`8~Pxr~Cqi6g7>$)IaEx!%U zZ1tI1%Zy+i9@QXCkhdCeE%aximU+}C#CA1EnesMpqabHGFN=h|c$7q%D3==uEV8U; z`YoGs?~QGh)Ufgtg{2lwGfA)@M}t14CMoYu;XVue%;;rx^|8xaFV?KdyH|M7!h2>S zOv)>khh3^!n|HtPhy`(G+Om=Q-sP>AYS!gFEIba@S`JLi(O_JuNzUsk6kE_|mMz1d zi;Zh-tXZG;sPL2pV`iNn<(x2%aGA4#`q<#C#ed*rNjldVC%MeoNPTK>!D2Ox(7ERj zD+pIODb!~Mmn_!J>|9oRj(?|{O5e05ie=tu&F}^3X4+Mty9hm;|bR| zY1B6c_bd*A`6cOmXT0PZXDjuc!9$DVFl6VRN30}V=cH5L8$7Z&HIwmQ?RmyZ$#u>) z>PLg878hXIE;}z=Nw~q;PW@!?!s05(VusImu9V#1?4W)zcx`ceX7+ztFm)$1b26yo z216E#nZo~^FECa~nmIeEUk%<_JOr&T1-9>mo19(LZw4PNo`PQ{=|bl!$xY5~>JNi2 z7O%k&$%QdI;T9*8`qSX6#k-lE|J7b#td`v3?4kZP_+jy7X8(UOSjQ7?bM{jI82q;Q z0ZN+T3!SSaw>eqVe+K_7{>@a2)q=S^p@ox8RX5bM)b&8bIyW#9BrTjAs-~f?rKyKg zETuu{j%iKgXai7TY3bn^o6w+4sBTTn)z&RCv2^eVfkC|<6C+LJYU>x7S-N;E0#hZO zSuITj&rOk~rKiU#SlIKKn6^ZowsDb-rN77K*!~73v$`!YU)!|E!7{{SFHG+B5;3ww zzBUp*x@jIIu}%_tVzn$0)Hp>hmWw=&!3Lk7h><74bFRqUa+$~Z*aV3(v09#3q-|B? zX}QYd7L4-sSeW)ifwpy#kL6mA2O!9#v#Q$@!KPE>Z@Jmy6|D66EQ})YWQ(0)pyf7? z(bzso3rnORmC79qLoD}rOvf?~O|jIKSYe(M=uNmD2FuYGiAgz1tSAp#q}uV@EGJ&f zNK(IpEz5H*nh!=E_vNt{o04+wVE5&@6sd;&fy*;4P9>?|#g^yci=r%RJtCG@TqLf^ zxr^PO=U${*`o}GAx|p#>{T}u}o=4Ggkoa7j(Q~n34f~$PL8_de%XSm+-kw@L~m`e?7+4nV$ zQ2h-zS-t=`ApO$V+VT4ul~kf3+j7W5xxD<6_c}J1fvACo+bll9=AsX??%+A3oZ4#VU zWf{z}jPq_xP9EqStk$L!@!^!rC63Wpm(1)MtkI?wsR#pq@C}V54|ENRwdqAdxHqB2 z2^;b2ncai6+7U%6@#a^TxVn5dgi0SliG`lR1Cs)P!x@< zA9yr)N}EwsWl5UFgBvjX24>G7s7#AgP{M&Y@5{*>26_fhYsVDTSw_z~8OOL>w}JV1 z@Qn7dA{C`@1*}FR8wMT^p4E;mYOqY4)gC9jjNiz7GFY!2SERxgp2Rg=PTn~1WbmAJ zd{L8S+N`&6otNu2GM^5frykX9w%iFE!|3Jyja^Tr7v!tKBcC%%YlYDjrSyt zjwveyS9({4J+EoZTVM1D(1++1bys3HwLY)8oVT&)sb#~g#1+ab6`R6d)LhBiRHR}d z(pD%pcW#or;9R9{F??-#dsg-et*eO5gg#CaRRu>VW(ij~UuA5T^l`3Hw;H~)dAz6RGT_bOrw;T5Nus=_DU&FWlHdzG<8 z@``hly4&!F<(FCgD`Z!NTL`Z?x2P(f;s;2bhOc&Rk-X;Ire+!bv-~$pEnce$kxJ<2 zv`|%mg{~(e-nog9D(UC6Qb9UmW$Nh^PiYdS5(YR@s*1R<0uNMDQ)jAVfYV0JH#D_! z1jQ`33Be`|a%5B$g5m1Ph_7v8uqA^WIkgCW!pk!uUe+XJ6NWhL)M7(ht2w}A3^#SM zB|{tqwbanjYMy6yyw){D8ey2Dq>2o2R^gsctevjW)2fFPK`vF~VztQgSbXTUk#&eS zq`PtzwXxK*K0f|hOPc5n>7M+6p{LbK&*u0{&`%-Xk~-unjAM;wM||bA(5<4kr2F#2 zhW=KYJp1CCuT3?1?^k<3tuzd<+UhwH-*c^DEBl?sL+UZZxmLS9r{X8CjcpwV(1TiK z7-p60skah!-8-EP3M*=jAr&57=#_rgQ`5&s5?5-~7SXNBJY7~YuGghA-w$?cpDc>B zI_&8WlB*FwK?Wab*A+3WYCLHxh1c=hm>&jvw9gd9Se@})wzA=RGO!_okG1RJZsnrq z+LfKx>$WjJ4nEO7Uleb3-E%v5u|@zE8GNeUP?TUL_2jKY+`w;Vjt+vQwVFTYhOz@&7IONZnNL!lMMi?T}4?6fm#LOLwJV_0tG<`uK59vGFb3F#ZT zO6f)LN?O&?T(vXmtMsk>zG0YMa~{IOxZ)pD=KRVjeAbbXV4ls`3Wuwr`2 zRtau8?T-2`9hE;bY_wYM)w8M|IG3*P(ogaiAP!@D4X^6BS+zUrhxD`jrD3zxPOr&T zqX52i{g8fO{^Zd-J8|=uLb~|qJLIu-WmydEojiBiPd=O0!_4@w^;(dB{sWNO$xy#cPn4+D$NeTQGG?>-IT0DJ$IU4UBolw^j zo71Wx24+WKh4%JNOi;E|ZX+)mP4D>z|*gz_u|Gr>rGF(J9Nm(vQaI-Zrl3!UIC zO~}51$R&W^jAm`*i(cp5nNZux$dv&1Lj#W#dW&~|f~-}TOVG_Vq1hXO^al)Y!>ygU z65U)=nxhd&UcA+qT2cg;pqGoFVT{1);f-KAOBq}VkU=y~HVs|k?Z6C`^0^p&mYL2B zK?M4Mwg8b!SSTGgK{WcL_aabb(}5jgfi_OC41L~v z6|+Uk&%+q9EOllH;?P&TH#7UCN`Q%20Er1!p>KKbWvaF5@i0a#v<^X#h;H{TVLG+Z zfi7Z!X-=>f{lNPeGqjD*!x*z{bY=@Spr3f3XC|~MVO`F$)tMvMjDF>Pi<#Y~mydxZ zuugy=4gJ>p0T{aJz#p+-wJF$+&id^AirE4;yckoKgAQ!$(BHj3GyB_=KqRpob><27 zqW^mTWva>a_!tDsNheIeLI1`YCECeC`62`v(@rwtp^XW4iNUgLJ`%~=kpq|WV7PM! zW~qsvgT&!@G(j=iju4obA)Df>o8g>!bb$!%Oo#x8i3m4ExEZ_%!G5#{Auh2=mQkP% zr~14|!6A_1Z2+pN3Ebg0SKcDQQFJh2SK^dxsz4ou!}AybCQ%55fH@Hhb5J-qQ4yR# zM-mPv66G0%>J~V6UX0*0c=XNy_taFFV}YB=TP8S%jwf7C%#cqNs$1ebc(DQrI*D)> zKqz8SjwKG>cm$WxDTL>VP4bK)bt{}FFJ5pB)O#O*jA{a9InIj*Pakw9;aB36e5yzt zjq~Ou2wKrxf&rjXL_rQ3N8lw2e6s`7U4VmA2vXd8?kqt6mzS&i+f#p5=b{AAy+q$2WU%LD=Qg7S^s}xR5^1Ns-DbVHBo~)ShQ#WNq!^ zmz1LH7j|LV$h3((Q)?$5QW9T@7KLHO6kdVA+#2r_om8ic6}4i;KzYGul($b}l2TbA z3d4zMykdc^HPI(6X++s8YQ>2G`w}=p-Gq~*cLxnRLouBv65y=qK4nQGt&B1WaA353 zMy}S2p?^ZTBP=7#$c>=wH=1ev9|#YV?sS$(01TrYH1e`u4YGOe9mGC@OKv3Xkdd$T zI-ky@+B=MW5+KEBM~voJZ}I6*lHC#RBe>=+q8&8~vfcrX#Nj)g`y_yl(T*F#QFFk4CvCJV2P08%Mirw9)!0$QzUHbsmt+%3VRbYP7{V>opK++C+F|_#kTuyo;X#5|?kd_%qutg&K=?R(uk)b9D|a>R zwo#V#KVaCjIuI2E@7x4hE5MSvzKFHX9gGTzcP^9GW|VJj3QQZNLs&r|=&X4&O)SYVM9sHnG9Yg;<_ zhcLdZwL13&hpqj6H?QsQP#&uGWv$bBC{ST=d)KPn*E@{yV{YgDNu27$JU14=O4z*W^K@UEI4Dm%=i4-g!{_F)w5X}b)E`Tpxmvs+4uF1VEkDr zI?n_bt=IZKfV63bs4y8@w(P1enM`a(erSQMdI8-^g{94?>TM0?FIjRrK9C-}rUS z53-LUgUH+4M~$9aU-nH|*Y}|1s3?fMqg{pL-So{|H~m2E7&4fg(LQE0Xf5{@tfS}< zkL3j8fX@@WvF`9aypH%VUDLx1C@bLh@}>npLB#oCUGKxD<2mzi zfbYPJ~^hdp^6RAA5F*D*v8h6n4I1@Ry7``$))KTBW-Yg^yKnR?`k$sfHVVR3!9mK zvB`~{snz2oO&-n2*xJU|FFCoVv!R*|SRl>B*xn|{FC%%fbF6xttjVXrsM3b)$4^Fe zdDpOk6Qr3L&#+nGSCQ=3m0B}S(JZ8)jNNRO_|+xHbT!nl0UV@R8qcy>;n$R$-ZfS; zPSq69;FHpZ<)=(8@A4M2fh45a7|*uZ=+~Rv*p(_Cr)ieZ?2H3!w)%}E_jEOg*?<<( z9E|7M?Dm^Vp6nVEkB4gtX->vrHo1Pu;fQWLu!ciI9c(ehrqIuFy?1wV?Erm9q~lyn zw<+^;S%MzSMUhMEE}a?*?Rn=*psc1;zK;&;&nDzoqjbyFjkxlTPQxvn_avS^1T<= zCqL>v*}71Cgg2*n3-p1dfHa~(h$^n+1r%?!8S(30U-u~XRO=$~QC?8-4x2H*L0}v! zPK7NNALGp}-fc7GH?e-?QSYhN#p2_9xQe2TZY z_&B7lI4~7O12`$J<3$yVZRoShHsBw}o@tE{pXMzoJ_W^(nho^F6+lvo&+wKOpM~P^ z#SO`id%@)@KFj;B_<~KsZ0QC*ya0qP6W8;W7hkeTp548n?s4qd)@9;zycNY)ZBl0s zZcsk10M=4`p0~32hE2xoi47xNwVAosGp$Y|hVK1-vHz9A*XUiq59u=QdYnZ{FDdM0u`y z1?#HLmf}}7w`T7JfK%^0CY}Y>+2TQ)_Sq#Hou1OqSI4ui>1-{2Yx7{X`~2Xi+2@ff z$=BP{jX&5to?X8&9=x=omE;@k+l@clyadEE^QqbesdTXdU@s`!VAX+dcl%Dbv8BB9qCT?NzW% z&-1@!j($#T%t^*|@oI{x;O(^mI5neDeLb$5S6e*aw%p%+Q|$Am#+>!IN4%583vDa? z1A$hZYE<8V>*3WEN7>f;M{KHiPQ0A60r!}9rg$l+e&YaN&43OK?g_8Hc)4w(|AtMy z&zmmiY{Wg~oiAQ#+w8v!c-E=Q>M6KhUPCd{HcJNAzvvglD_tAap3yEEud%%cgsb0+ z)GOmDn$KyC#_Me#`PXfVdC_o%y-D*0?TYax+ZTYmroR}wG7bV^S`)0Xhy0bB%3pY2 zWpCDeNxN>m&Gw^z@1{mzV8=IWzM?f7@3j5uKeDOkMZ;D07R}eRTgH2AfBR2ungk|x ze2Zp3tp##snsf9vqx!s?*r}QWG^uf(t>GN>Wi%`trqO>DO2 z5Ut&~*w%IqadSFQv*T>dVVcrdWQ&_a-(243eT|)_`G$7ac)#t;IkB4?0izvH(|k+o zFg|4KJ12Q_WI^3E=GLLNIuD8~Z3E|Q2d;MH+Q8N!2=f$I*^=h)02;twXQmI0=yVs? z+D6Pd0HAI1^?~%E_c}erb+*xSPJ;Tl?mBbZ&w3IOXzt3;%+DSwRzNWb zyM_L$qB(4*c!Kw)SViypY)O9A3&v&fSKhnghfvxiZQ;K{-wfL&p5(nRR^hzSTk2lL z-fZ0^{>J-Q{M5E#PU05jtBRXpyT#vmpNds{Z`ziTSG_k|cZ+}Uz7)TP>>p=~-fQ%& zuuSn3Z@hR2fZwt$_}8(wS~JBzd0&g)L8z!^3;lJ)t*|}fU%YR{DgyZ8mgLvHw_5jz zfAfA6f3fYKBi+J(jlLbWS3J%8S*${WySLQ6j=kNwSNw>DUOR{qR(f%3#v;8+mEmf-@(L%`1RSQ=KXjqqsNOkUKv`DgZAqZun zYiCMyN~QD*TL@5C3s+IZRuD`|>hElk)sfnZAJYsgL)&N3E z;O6RutH9%MqA=BYfFYG|b3wdk;%c`Tx`>nkp_Gu93nDEbk^h5EQ_?`ERFcOE(y=P> zv|B~I1>q*WHVk+^bgfH#?A8(=q*e{k+p2jiV_n-4f4j}ZS75Q`w_);Gz$%vn+HEI( zPVFC1wpHh|Om!VgLhSYu|E8)9>d7#C7Qo9TBs(6_gzYp)msP{6T^9#0HYG#{5MT3U zm;x5i%q0MpkKJ}e;Ux_2^o}mT> z8`4(cAtrn5eiNtIlR#0AmufnNhnnPomR~QeE)lO}3WuC@NhMr6g8)mws*{xi!Xb<< zrG#&17T}V`7_L(?MMGF!T8Y5UCcqy!>k;LEXb7iEhp{;}fR-j4#@}I<4LR#Zl$6`K z2P^~dI{D5(+0YE#$dU>>pMbS#ox^o^nEQrYbQhIW+64w|2NHYa&cMDQP=l9L*^vTx zKplCnW|X(#6;aUKnh$8U$D4$^UFB_ViX|p>c2NPfX^|igkJ{hnu2^bPZ?_y+?UXnD zcf0nt%~bqn(qP97kfjOUINggn(B`37ZqjJC9^mczHwpK;4z$futT1V^V+RbUb-cmr zg&h=o=C3SK(cBYhBX4@|wH_3E<*zQeZI>OOu~qLax`R18$2*(}cz1pPVyp98Mu(&# zmk`b}QP`CRIBli86?PB~<@$uHc<+M{150|_*&zXEdH6b$hjzyULbr0?BJL9o=lX@K z0Ps@*jIFhA8TTcJb7zNdGb;)(#_R_Aw&2a?L%fbgv)QThx-<<{VL*$-s8s210y?%VwT#*fSb?rc-bi0wz zPEi#(Ou;eHu{RF1OAj8&?nDB2uHc#&*jog8q{ol6bc(9UWChQ}#NIwII6ZSjtqTbt zx^%bG(wjyyfK12H@&zT<_I`mI(tAgmx^l$0@cfbz zd;8$PUFlOJQ(fa%)al_u6O27Mke`lv@7>L=)tnz*X5wiV5qJRD_2lk>+M)Tn)bdQw;+wThe4!HZsqk&UHV2TH~E+oJqX>wZQakqrl8}oo)M1als@3Dp#A+^gg1Wgw=~<^CcxLFw~a;L?8R4 zwO+hD|5C|12+Y-NqkpV;5_V1;mw&lrqkV7SMWE_?pR}G6uh5-mvc>*&U<-(X5l;!{ zbK}FWnQXOx7nqh(^^yLx`aEl;?v0Y|_MZb^f#sh66mx;KO7~`o3cLTjt^cF)Y4rs% zTYAf6ul=9E>21>=)q0T)-hO3J^Y+Y7 zYA=vi$SDdH?Y}0dV|yhO_(WI8n-tGYuGnu1>f7E7(<-ito(l^|LoO*H8S+Z(EVX8;_Q6&QcVaJ zn1QGuw!gJSoRbfgLWme*Gw5R#{b8+QPQG@jp#wVD2h0V%{jIH<_My6_rVft5p&8sU z!~j8>%MAyku!Ae83~I+10}^R&UjF(LO9#*3RS-Sk4`A9@JYC~b8*m$J&gdUg4pg_X z@^wv19UMY}_hzV#>kVRLEWR$XR3$qo$#5E{4_3=q1-j;?E)I)=k3lDaKZudD3Uw_? zRrZ7P842Uc!D>0HNY|>=(_vNcEvPH%4Pn|@0$n&j1s%eJjH+?^P**v*SYc!8@31Mj zFQa)pdkCo@mnc+zgl)m28GYj|Lm~yaRN-J6;;<)pI%9Oj)R4Lo2f_p><#2-ycA_VU z!#PTvC?8u&b;uF~+w3GxWDKj{!IkAZm#P#B?mJ^AnxM~s+n4WBy3nCAIB=)h(Ae3yXjJgvruqooJf5$epmBAxJt5cDL8p&&qTu;_C3vm z;hv@|9c~0??3|n!dozAdvm#t&U1$sD??ip|e#`FAJQVI@y2jxiL?8UVroJ8T&^#Qj z(l9&GcV?JQ%w*{D{ zJG>9>*;)TJ;awMq8WcgM84lyY!#g`591-=f?U-V&X{N)^;K`k%U;E#6fw@63&otXX zeXiCnqe-WcsLr-3MVKkqL4Pi4m&atnNEfIa6l9>pk#n7QMM7&Ls;jL=K{XXPSkLv_ zl`=VI)6yjt=ZBY;IylWG0k(>MAJ#3d&7WVo4{8+AyXq!mLG~a%k-wnypo2HCYs$%r z_hFC3C-WDU9&sSfP1`jx*$egu@u~d9rN<$e&Do{*4gDdkM_iX5RVs#nMcFR=w^-0Y zh)?G)DLnO&Hu0TfqgTPz48#OLx?lwNg6ojbTo`K{t(*i-TO{FS9Q95Uuk>>Byj3kC`C zh5Xf}w;i(QYV6kgjvfu`6*uHFOWPomVYVCp9p5hL&6R|+Ocf5LbDefmz6(bQ&vGw@ zuQ9#na1e@}N#K}}Ku9Beo#{h|<8woIbHB$v!#rm->aH*Cb~rhA5lAQKpQ@j;F6(YA zed2I_?kY%a@IPT*u&(HCDt+#7W$tFMP$)lDzhGU}-BS9>;nv)}yVZW^ea7^$nsnJP zd2XLu0$K|C=juMzHQlYHZyg@YJqC3S{%6cf)^*)&r5_xg%smgDiddTPCHaP8yXj|# zmvftUXZ}$8f_z18R;cYptcb8lUo%WQyoX+5WCFa zsVN(^0h~0S3x;u2h&#A0n#Pb1)Y`&%rpAu8A;iq|sj;!~0Zmyr-xTSH1NlYyl=nD$ zP*WaWXlmg&6S5(VQ>o+QgPQH(0#i8q2OCDuRKqxXNK+ABVruUg6q1oSIW;yuKBTD( z7n))m$)LwT{q&w-591Qm%1WIbBSH>jdjCwG7#JS9qg!68@@1UNWc;j~V7?i;t9zi- z!!a)8N@nWMk%@sfL-%wmN>u`l_DtbV{8#4Np$^@{rGAbZLY`zc{7n8j@OJ3FZe^*; zsPQ(l^Jm>x=DQ(CtCj{kX6*|3o;mh&!>eQ_%r8pMC z49@#k^5nqCP?v5kV3=hgE_)ci>L!`*hq`r7mPR@r4)NcU`fFrz;Qi1e-MUhSV@(JR zEFAc6%nw67x@Ssb9EDynd+L8BeCztq_E>Qi`tZk0689*7ReTHkD1MTEu5^WCQ%KsL zkzc*vT0e@P=3gjPc{(_I^nRnihmDGR^ChJ$$flI-!T*l^-a0CNmVc>KZSS9?b=@!S=AoAe;M*JXr&g~1oX1dk!T}bDi+TV;H zlFzv>!*7`GaQp&h57}?w55kw+SK&8JcRT(F8QU}byYq(xQY_)OO|u;Tf$BqR8Zku} z%k2+u1?#2mJj7n-X~vXfEO#Kh%{1T96x<(_Y2g%MJa;f$ZdwFmBk#RQ)16b2@!X+s zg=wjyBgjCwfVmSU#MT;jO3NHw<}KP=HBJ9nJ;8dTd#_Yw2U)e3*x@8r|B8E?-%)zV z(Qn>{y}i>-5PZRbE~NCRWAMCPd#9$SeyUI6M)EtsH%XaSxEKA0_$y};_ddV7^n_#N zyu*8me=>flf5Uyq?RcP>z(|bj+Oh zYwy&bso&~TxUu~H(pE^L7-XUU5~p*faO3%drE*8XJew@y-;8PXpSX$q;nF*f<@4OL zV*fTli3SH!lG6K*mGc6#GX73YtN+4H=8wQdZ0)>=tct%xi1XsWQd0WZv3_1$R@2{% zKkC16-}6UHpE)+p^JMn?ZTQ0mZAtiN)0d7n=4E6}{vG=>{#$b@e9UwJE_3-=sDIvn z+2An=pD=yncn|V6e*aScj!$d;3ZFE6@Azn5T~^G$hQDkOn}mNi{p9#!UQ<^3zp=mL ze;_k7RXXN42p7V_e|RvR3{C6)DxGxvFz-oL!@uNz1AmA9=uVeTIZn)bo7MTR4%8<@ ze|7(sPCNdZ_dRRu-^jm#e?!pB5vn<9gz97?)ZD;@GVCE!M?5gs3pLBet1VZPs@1CV zHHErPh)^uZQ4Xn*)N7&LE;MvPhx%kEt36Ybs@H1rp)=&<6iNbHinTgPqgIQrFEoel zPIPvi+H!TNMy)m<22M`i05&Vt4yltgYjya>LR%+dXj=A&+B0>jW-X+PgpN+3p&an3 zSZk29YW4U?Ar4YKW!ZT3@5BhL0l~^44U%?}7s&zvOXtvr>?HLrjf)WT zp<5xmoK}Nzg{zL#^wHshK@{QZl(jCjGrLwjO7o%)*O(4nZl^8aV3DbdG<|frCUgi> zJM9P^%N|zm(!8k41w#)4gft*!Nw(0_!s;a<^e{q_6Az9ToHXWZ)#xPwxDPi(C7}+G z2rAIR>L;1$%@9U79SHTzNzk~XRimF|uIDOLXMM;JufDb`Ar>E(WCWlpeWj*c0`(UpFP4Ni|k>vQ5YTXo7nf2dTcUtWeb z=VU_g*$i^wN>!@pO=w3>rDm9JnF$5HRw1@KeF7Iuvu2L283eSI!3c0bg^uR*X}0Q? znNr{xhS=-$2jno*n(BIH2nwW+pl+lcX2h}63InML1=>Fd9^9DOae}pS^vsYHh~FRz zoh-sUIPqGodSyro#9t64PWGUW$<$H@D4hcJ69^*B2#e%YYK7^SnNa}#ML^3Jd@{{i zIr?Vi6c=SA0;0NMDV#p7C~}UuvnwC^44;nqQnL z?VpAkXlL*u3tOGIVFtNqod6>atZw*;LY1|~CYPwQ(@4YG8O*rCJ5J?c?zyo#*P!L( z?8{#(RB3Dib2D^)LRH%tt~_D5Q5zPKTcHzR++D9Ro38TOoQ2v`BZLGeY_$C8DTrrI zm%@^Bd!Xo-W~&9~-XOZU5tflV2~x%hTP-3z6)^zg4}LBRtb}QHS^;#G`Q{!3qWnP1 zH({q0NKZ$+cX||7mm8xifySFw5M8Chc@fr>o31+!)-|nQdInqC&?6h3tCuO9a+(Nxo7<^-8p2@1Aj=U>JN*j#o;#-d9s*s%^YpTX zY8VZY4i};42EVbxV9yb1VGKx?TyMSgkgOUG)8m4oz>MU=W$2xTcGNKFbc9A28h9Ni_I_ZctMi2EUFFg>fe><2LB6hpf>sRZk#9V|++!xt)5aAulux z!X2RXGA#|fxF2rM^ zNhi4sK-3eVIHPw!=z+zq9IeFR9Sm=k|w#M`UB?O&M}$IhTPx4V0E3E#aEG!Q z{?`n z{inQuNWip`xOql~7|Uo6S*%iJ0=h#g&+~wJez%8gx$+VMtoo$dyhuoSMbDDODOGBq zXQalw6vF|_?pd-G%BzS}%mCRW>1gGK%M6!~~zWjHzrx z@G(fTGcVGp8pPVNM5RhEWKH(tr5Fu>;abL0DiA^phD_lJj4+^@mL(}wz9Bbq46ojZ zY2EE31EVvd0z)7t@j9R}7VRqovoZ*X0?6sSQKJFtZeJNFjuBOuFfx~C1ha!^KN+}& z!ALZpT+Z__X4-W7$>2g9QHO~l*YYAEOBOv_1~xy z8Bbu0v5oeZr6`{vz%~ocqIzSdZMVN{lkx?k3Bx82^E!-0GehUpZsxxfsw74eyb z8pw&@iacab3aZ`C|0Gn2kkUZf_{?4!RJ()!Mfe)iLgs)y(b|C&T${lkhhuXkxeUxm z%N?Y_wLAG=h3_z(^+N)q*Zg_!~1tp2#0DeFie6TJW|B z|6$Z98hky3wG%0{76fV{P3X3n@$rb|U{|Wm;e)sgi=bfnbi^SiQdljA4+b$Tn&QJx zhNq-7tTvYqDle=Pg~aD0tl=S0%jN5f%pvs_&96f&2mexS9^X)8h4rRvUM53`Fh1~G zKsQF(V&_m&`NJS&x(G2iI($#U&ZA`WwLsnEL*er2NF)v$P7(5*!J%}K!UbUf(iNMv zm{P^3fX&E<$}OY=j)wh@(!fswXVXOp$kAc?ja^M?;d9}KeQ3kEy4E5e>{`kLkT}i9 z)qqw<&sOA*-As7}iMay!>yt|K>_vgt?Uc`8b-IJA2~PsAj3@-Vm-3gdW~T3qr6^Vw&L9pjcR8e=28|(Ii&PKuEpM`RDyjW z$Hi?cZJLHffC*JyJM!0*8>^_4PG&|@xfOJ1fLeAC8pDmKtfZAh3Tkq z{6v&iEnOv~!cpk}924BqqP0%YBar*CGa<^?2%PUkwAM+w%24G?O)l&~N!-!^r=>4K z9>oSxGYThB<8Bj6wCd;#$Oe)@S%tD7xTnQvou)@4ffj|1pPvQWeIiEd3_S*U8oLA> zRxuV5_q3&2XX(q3=ddfNO@-+ILryH!s;9>yC0G_nt;#J3z#wX!qsJjHV>d$juhD`% zb7Gm+d3rqZ8g?sKu6isaGt&UVqpw2V#O|g}yNp@9pE(G4oL+(mZ;?aQDl)Rfctpp_ zfKvmBUjY?WtY=DGJPZRDfR+2p-5)A-o&J;DOm{$}MFk@)!0Sb+o7t2!OKHl-tU^$iLV>)ajyWD|J}jQ(Ba& z@}V}(NI;1u!Y1CimCq4ry_2B9a&G4fMAkSz+6GW~U4xvW zvw~kDvd3lZLuCjiVdFc&(o)ieA})eN;|UPfZZNhTR_c|BoN*Df`dkldrcXDlUX?1# zR}`&Q5D5v!XqcZW_ai-U%V~{*6zc(>ZkU1cdw5>B1e#R9x3=~rt*wPUrpOl}jopGe z>*c=EwYA^@6V1Vy&-|aFI}c>~{{uLVOpbjk!_Zgd*v8x&-8wMG4%ggg%(f^MOGT-W zsUfiqTd7f8OT-)sN$Z+~F>eBSTZ>-m@}=rb;M zBJR!^_J#>XizA-z3TBN*oSK1g^j3z!PI{`GRbQ>^OiajmfP2GE$04lDMxxa7J0Z02e$m;_^vY1S9h zEowb|&sMA^!$=krQewp+7B@U&z=q_lH-}Lu&FjSx7Pme3pPgDQTVJ)832m|B7>iEN z6K7R^)!Ja5#2nXz*&mC3&%(2&zmhjpB{3&7VF<@!*z*!-lDrM(`|% z=mK?s^n9R0_o&6cp0CeN{@M-04y3;aI(1K2{O9@o?Dt<)H=$t2U_eP!BD|1=CMK?% z_;A}l&;y3aFJ2~vE+$!qUbrW7o}mNSX}{>XusAc|{d=m}G56!A0!AknVYl^Ggop&SZHF6_&4Y-O7h7+Q2j2+ZOx0CJQ^( zWNk$qA-x%x)P=hkuh)f>Yr41cp_4Z7T({HWxYzf>?`u@yLWA^fU<$ZRt{3v0$y!$z zei{kx4IrF$*30Ca%i1g#R60p9FsnOgQQ~ELE^2MJ3qPIoen44LyXfU|E(6ZIQAbH1 z29!dl#EW*We61^-HIx1wP^Q(cdqth=SepfhzNC)>uXUeU-115~H@UWZ8~+&T(}1$I zcHb-G-1oJr+ff;$&jU)-Q|eW4&SahIc76uw%YZVz_M2BZoD^nlM;#}99r&R8%HoMv z!?~z+-Eba9`Zl1fvHj)MaV}$>>JAi~gAFJh&^fQ6bLHz?ckoY;{u@x{+5YD>d9Gt! z)(+@f{TTSJ3&%WOug^`c>)ydXN%}dU?6v*p_5EDMgU>tEGBGMV6}~D)-CMiJ$aFKD zVqhTP#z$a~-m8l?nWpbl%fi4}0bdKF?`>TaX4<|pI|~CvH~ude6YniWX{KLxs%2x; zdGNA~!FW@OM5dcvv$HXfc;g#jPTG1$6t$VAyQ-bSXz-AHV~n%+o}zKncGv7v7>K^{ z*I-<{kHTBo7gx0$j3y6gT?`3A8b)TD-Li8qT09hAS%EuWvhF%X>QE5mVLi$0ruaaTKoS;aGjrGOl7?P4SI&7^F2Wa2@0 z5mVs38cK5MBsCreo>cf`jL_SjS@C;KtG&I8 zh2{hgPM*2}*%}p$xdyGdR`V1OMV>mEY>NuVw0I{JkC``laPrj+$?z?Lxd-vN59UiA zihOk=vLgyUy}i#A>st^!IR)y*WFiVC@}WlOY?0!rC{SNbc19&)9(&gn2U#?Ea?Yy5 z2MuZ;=1<7erCKa`D$c5#kl_y;Gvhr_EVLkaaSGMfkl`;4^AGguS}jt%6ou+*$?z+W zdGEbYJZ914#W|`X4h%KQ5HsxtifM}!Fw}`W=*x+AX=wQ zM)MspiQdyivu0W({uvC4jN|)b>b)7ov*uc!sI*naWM_U7=7slYai4|E3k9#RWD>ss z{-yK#FfwKH4o?o^H(=t(qx?RsjEWLr2=D+n1W+tp(1(*LBY2z1sr=WN7vxbvpQX$X zRe^CO=kSqOGYVbUXC+fs@yKK$-xeE385Q>7Wr3(VOaQrtPXk+)UeaeRQ)cqQ$*ue( z>6=%PMHnX;_MBkK!nadEU!Q6E7Tj~c){ zGBFo;{bo+mlW5>TTU37IA+ z$GQ6O&y&{6_Mo0(u9Kq#9T4L~T_A0cC83^SZjqA&lelgl{sq!T*?!b>%zbi(;5*d$ zQ01gevSc_Mkdg}oCYG+g{BqJ}83#3w`HfsIaDiMO>LO{2EEV+%^Mu?Wh_dYVO9A~&q)*q(lC^|;h^NHia@P z9Ku%y(y#RCoxaH5icO;^gbVnIz@95Le!R>49oS5YT8XB$agbYG4YUXO?$|RFREd>! zcu-GWO#rW&?*(VE<|W?NVz7p5phd{1Vnq~UNrLr6P)~hLAnyv_4_iTTD>-9r9PD`#hHsk*Ih7_l)YmaI%5E(azVV;d0G+?W$b z?nRx(uB4ill5C5^h)p>Rva*S2NOde_+Kz-ZH|4~WAEM4-*HL$tl0r1Y&6}AJN#ygf zI4WPK+}1Um-%Mi322rKh`^zFq+icUJnuuZZhWKKvGj&htxNUoQb_-@VZq0$R z`q}miWE3$8yhosZk*F&+>e~?_IIZf50QouUKK2;(bLj_2F)Hq;CzGe(#q|_bvrONf5T)k*B3Wx1 zJ|gp|XlOGgMoqUdkMzu-2C&6cOc~9-GK${b$C1sUhOlCYH741=h#GD0J1BbzN^~W> z{1(`oMbq#0rOFmjW7vAAH#XSEMUUR?J0wdu`v%7E8nF*wpShk5_wD|3#VvIYBz z=$?BuM|f}fe`C9-*=3pz#xZUkHEFyhm?a#b^2@9o!ee?mYSMY{`7g1Ls8wa&4q~9E zYmV~%(Y%TC*acG*oDArLHTh+}3@>;M0x0beD zlG$PBgZZaf)E4^oV@a*+!-+9)Vb%JlWD zaly0(Q52z@!IzTqWoSK!4A44683fgM6r?C+MtVdXi#8-GC%DG*`$=bItMxYE_R%Iq z9YAlRpiL<=(SzwV+H27yp*x=ckaSMARu3+QY2QWP393vK#42T`dTux_4JkGux-$6# zq+*%5o+mEcbhUUBF`cO@fd~oHoE#frd7pB@E26C2y z0PwsiVi9pOD|--A!m}0x;~HoY;x=MBOHGb}zNH`>*GfYo#)wTU4v61md%bAfJzARh z196F^fZ!$BQ7;bHOFJXhcOtMkL+WBOQICa_(?nutrxdmV3YcVPy+qt&TAet^sfo=2 zB%HiKZy)YYTAMi4X^E|XBqn*2UJ7o8HXs%{5q5Ki)i08_=pDlSLmL;jI;HGZKqHgv zqL+?)Pg@X=IW_I(fGbYku6G>wjrLjm!D(r?0-~AZop6q`%t!OQzB3_#^GLmt>;@G( z9Ur6f&dwoPtIi!>9jz(R%z|#?#pbtq4IYZjaAXAkh=|PCuQ6 zRwp!jIX?5}AFZ$7%lKnVIrw#q6YGwg5Pl! zK5iGzY%t#E_N=Crmne9QtMj2>sM`>}ujg6KE#6*%viHe=!!j{Q?98J(_v!tKyW^95 zVRpmFzUDu3?vRxM&<8%57t}ZE?k7&>w2@QvW^fO|YR7CeQ&dhep$ICN#|`^jy0CL2 z4-VXzceM@)Ug4hl+_(@6k33a>F(DBuc!PWH(|I9tqt*fQ=gbbRbb$gl?=yU%Vk7xL z)pI5^Lj@mkZ+xC#=-S9TVE#9=Q|q|kEAHe+pEnn#Hp&iE{mq1msNe_ghtH1-Dx0*D z&8L`MT3G@$OAX%@<))j+$yHNK$chRyELZrhE#J9`mu&um*`vh;u^R1bUmgpOT2(KY z&>0o1uw3iAy*zW1R*LyFvyW`0jk3i0(#p#>xu) zdaEtb#(T=gH?^l^&tRZLD!7l>>YG;nVbfBIVn%&{T%>1a>F#@`Tz@lx!+|s@nXiYn zr22}=oj0d&6tn7sWT773GSIiKJZN(hhXbura;cu3Wu$LgdFtjRj$%%Ih%C}0SjPJf zlnXZ#4ssw~NECJ0;iZ`B+}?-E=W^%TlUhQGJYD2c7+DU+;^;ErdfH=%13W>IGX~^9{S$x+Ue1 z;+6VSa)VyDWs7gZMQ>gm1W{+7YTbZ`)4RThFTUHdcxd{c**~-z1+mcT&%L;6D;^4| zv*TLL0;c7lZ|OzHt%--HU(ZfxwF-zPBfd2kX^>2%|F7?v?3P}V<%DnR#iXq-4v+q? z?@!qsy=2Q5(EBfdhARC{-=wTvFV%9|1Z~Fd{-P236T=Jd0I0R8u`rE$e zvio`&mfwF>TwK^Xair&M&ELESf|HgierixzHBNJTS2LxRsCmkAx!ma3= zL86>fNx6hL&r_Hq~ROkEGYKalK|smfz5&@@=lidZsM?$9pDF#$BIX zYTK56Ozjiq4R2D=Zkg)Wg&Et{bd2*!{ViEpdp+j&`O=4NOUD$S)ZdY(^txfIUGuX3 zc0vZ{v-%QQnSagqGrH`&Jtaf&SzSS%)stBY{H!hqZEwopd{KW-R`y^o_-(qJx_v1_ z@kRXuc>x@TYCrGG!tI3PoUiKtl9hqjYkpyuTeqhiSA13fNPew1VcFuBaCvNd({au> z^-sLlIg^%m{SIG#w|(*W^tahhTJHo?U^(PoUbO>%g7Liu(Y>TM3vZ9Y%eFh>PK$;o+m09AC zobTi>dhab?`aQZ_vm@YS^N*bW$lvrnS-$m~y4(lZS>n%}ALRe^zFB_qdv|$u$H>X% zpE*CtKlOfE{`6C+P=^jJQH85QQPp2&wcLMI1!iYJX0r-cm9k8Kxz$R4Q+R1A&LpaG z)hGyk9VMZneUEH#AP+A_S zL5x1dstIRZ8RpiWldXk??zK=E%-vF%=Jq8=O&hD9XC>UfuG-(bQs_qDabnziIY@*tMcLSu`->`_-BUoGMXaVc>%-=9}8TiXQ!_X_{{%17??rx`2fAj=Cc zyI=i3R=#sz1W#&io%T*)rj=TNM%5}3{tN>~Ahg|}{jVK>u5u(Lo|#@XXQoXOp0Pp& z;Hvyd^=BBmbLQHfLS?vjLsc?q5dere3vF*04KNSztSTbmc?{GXMw=p3mV8618cB(~ zY1AB68>;A5!~k~HBT_w&p*M%q_7y7AzK5&ckrsK=P+Qja7gkug1>{z(^1$aY^yjR! z=|W}ex3tR9BQbAUe-5u5B&@Td2h>*id(`JK4Cbu0Lxjrs@9nB&kHx%c1FpxzQ2j=$ zxPZQ@0uQr%I$CNwsH_1e28>lTc*Nz8qNR3&k@{^`DFL%pLmrj+bVI5ApfV4f9`K>+ zwa1J6QA4T2;4b|x5CGJxk)CD+bR((bU>x*(&>ww`eXqefD~V7&f-RdE2On&ugx z?Pe^2fUr<*B?=%`CwNX2^g!kyZ@2JwtBL@(>NB3kXWdpypeQVSY*iOPudee9Kijif zvOaIG@DHoT07mtIr}(VfuM*fX75-_}7Qm@q@SHf?^Q&ZI-T~p?R$T$v)tX+$u)HRL zoiX8z)j$Bh+R7`uu*XEQIq#tGrPawt0aexBUgAQxHIglPhlI)sadUNo*F<5@8p+nY zBf_^o_>J!>V~@{S2VS-lIGt{(6bpL1I$*`9Y? z_|57woMbF`O`PjlC)tsAQuxzKg|1ek>1_<7U6P%7S;A#_O*#s~#oSz>25V=yp7>5Rzk|-!Q+G#onBMt z9bVjHF7e3AhlH0SoRrA(K*mMo+$3I@VH1ir@s!rgPvKVPS)iU zFBK$%6 zLd_VtNx-p0_)#wDZ^Iv>f3EpJUJ@vvpG>LHcZEudrbM4Y5OS;#0hB6z4}3n|Na9T4 zjZaz41yH6|dgF`f7zvG1DWv12^g)R}4KJoUOOhxrgrj(A;NTT~e|#mKBq^YnmC&uF zL4)=BL2x=0Bx!);@~E{mc<`FOhFK#V7Y$IvC2ls7ki6@{NPHWe0}bYhk{%mLXx>fX zE_@d~TcSw~-{EM>4Wl&a$KxNum=}f`P}*$E4X3o|@5cX5uaJ+s;soijuokWN4OvVoZczPq-vF!+q0sy+l3tbJbf6l&E&EwdsejeJ>g;e8~Sre z7nN6L?!b!CzArqA|44rW9cNitl>=*+_5*w}rj|&^|jKF@#N8>LrHq0eyKNGg%_XIwz zZS+aJFuh@JpY|m1ADqB>=tvsVVqJAaF z$f(?HlO#Fs1uQzA2}E77@(nNV*(6EHn-MCD)8=qzE-rW5EaBwM3FUZEAn{6q??ide zX34?4mqKNN+U?32U*n5zTO_G@i^9kFIyeff^9{e)vqf?!?;oMENzJ%2;48l9wpDUC z?|;HS@h95?Iad~ZCocAEl^n@?D^ymhv#)6S8DDa9k)-7<31{#Ff&430e&LsTTqNmv z?}ab%j{>V8TP?oiwoP(0?_c3R`0>EzD+zuRmwL8Ij^%w4zQs?$iQ^ea0=aFMWaNDj zzQ->Fj$Wzr3%}g6U2;6{oA49anm zs_TF_Hp<-tAbNw<*6V|k>L&fW;cV37^xz7Ewbt8$GU~oVEgMDhI5W5km^hE10@y%x zt>TkBc!MYdoV8C-d7Vo@Ru#&_BX3aOz}h-EsG%+@pu39i;gLUxHn6vj4(h1OfSxwW z)1zR}$be|g3L2^_4{)vKdwQH5Tx|g5f}qK|j)1Icl$S^0pozg2>q9|q$>Ra-)!AOy zb9rk^wpnKceTCw7*4rg71kB3<>UAnevtFN0sNr}cU|OYQTs-wOe zdT;Y^Ne@L*l4nyAYTX#bs2`w_Q5e%yWrg0Jdg$T@RIY^8-n*=oeGlGR|T@JX#161vfdti z;;Krp)>ZQ$7UaZBs;oVO3$L06ldo0bvo$+-_-aKk`5I@+{rX^p!ENh(!IM`z zg0rrnLOpH_DhuR?f?r>q4DN>WcaNKcF$SI1$AiCL{T{5^fC}?y9E>&SvF1XO+$6-c zfgk44G{`XMx4sv&`r4+D^aizXY;zv7MA;~}z7`hJ-jE%RZOLPo{AOJqyyaS2$d?AS z2yAO!Ldl5r$(rD=8-yW*>zoM0Ey^B)C)U@3!>+Z4q+C}-AZ}BV44T$72eYp|3aP)& zh@3n5aG$}Xb$f8?wbvmpu8%_3eDHw5lyx`gbI4G$8}uk?+hB^pEL@QZuce(0gV4F8 zJ?~)2OY29$RoA>j#W&odC3o`OEk@Fj zmtOMTdLel9T3zTD^yd7T+Z9;&xJw8+^0=6#VYmEVR*^cX1z3 zP8$5Q{u!*&pdO~%NQ~unQL+q{*(?uP)qsImdUGtdn{vuvxy{ND(*{ylaU(H~+e6_R z=-3#BI5se$p57eC?WLSHSZT8^WGCEV=r$1<+&&5qfFH{c|ArdKsW&sQK3e%DXdC;G zn1-$}9*iZi`nAuNthU(@vcF*}Oa^&%)#gq_?Ui zVn_38O2{_CkVor+BAQw`iHOIPS_2=O3n81Xr$#KbDiRT6lsba|o9Ynn>q4lybM_#f zP_7yT+gu9?yWSd+a!auX@s!eF5N^{Fl5l+tGVh$dh(9Pd45DrBg`{2o5V3Siu@^B; zX*7tl=>>>WAG+_HB*X-z*??su4-s8=j!e0&NJ2cLv>GJZJPxV59t0tH&OUCv#_f_M zn`a@nuO~+?-k#n!_osFnNLbS${nv{k@pl;e=O(r9mZaLe3VC|HF*5Pa^!~ZOv^z@D zU^;9bQt|b77zgH_Yj>7p*nAE7c>P`E;+^RObAM}hm1Nqeg=#=M9^b}Do}1F{DS5S8 zD^&l6ZB$&_XtMOhV6VX$xQ@cyphZ=-(Nm<;gHlL<8izXHNQ!#VHku-x8GL9^WMc+( z`2rX%rvFUG>-X*4T7bqhJ)iz$CMK>_f0e72Ixr-EKklrt};szdT`vJ*@hK5bfY}l^&TIR z^@Gn0Zrkh&oxITzodq{(9&ZLG4er_;3VnTJGP?U79~$<9&kZ_lj)#7~@jY6#1C{3S zZg9$=$A%kmYUx---fW4?Mi^>+Gc2YZGWXc` zdGjT|*_4Mq-;o-#)S*a6e4s2CjM!9%dfya6_nvbU@h|0-!4sQnp$V^Z!bjv_u% zUK>oj}v{}P;S6t_4hV;wedxHhI1+2MA+f~^~KQ8?`sCVign{l`nOxQKi*>ha-E$>r_ zvYp=p1g7x=w-b`@d0$H2+bo2R-mKdd{-EcCj2-D}&SH6}EH7PQyEbflV$TZ ztFl=L9i38TkUyreE0))7eu|}`^GoS!+YMp+8>eDr-BqVp%XLr|EcC^58M1Oqb6rY zN}u8k0!78Zh>9T0sws%k)W-n_fC}W8?S-&SO{t8fJ_QeazF~8+M}aw?}eo`ePAp}75NCGd<)%7 zOm|og1Sie<=}@K>A-zy)BHxTowOtGwYifv(dpKGsT_fL$P6JABwrME7 z@*y3x0r@s`hV7TI4^6M*UpyRzH9GkYbf&FpxOy{^X*NKIEf~2g@B>=m`pve?xPj3k zshQjzea2Qd9Meo=Ru0gMrRH*_M_?T8+?>RGF)&&zwUB$EVF@Fg)La0&33R>`BUb_i z`0$|S24c2gHKS;i=89nJ;9c0;#3k4_yJ**E!8d zmf0X(D7BI+2?KJtu-TRsH#jPk;^l$pI@^Honr0fSa*$pkwU#SQgYfXy<|NjO!BP0T zmxrPoZR21vwt!_OrCGO4{h8r@-g zG9B21*Q^)v(K4xnd>6XQHY;4c1<5uWqKl-C@;G##Ee{+7TXx*gs7OkX$HVGZG0ZU0 z*p)+cv6Luhp@(e603#%^Ukr_krB3qQ=ts7d;iQ%V_U5FW=OxbhiKR*@f!$&80$aDT=>m5n^#J;B+Xvy9E$X{O+UzpuJ@_X}T?hfin^iSKL;VP}_3A&Gn72KWFEc7zF<=`=35&|AIS8!dar_jso zRz{eD##sD_Sjlyxa?v_=hTtrD>?2}YyApUK=G81uowKD%!C`;vRDx`zs+#4cbFOr)-S&tRttyFH zqvka%Z=K>&CFxMuY6`;&RW&TKj-V80=NoaUb!Q@P)Lg=%=)j{h7!NmEV-sbgRT36e zr>xZ8E+(S0H8WA`v3V_vrXz+U2zJD9YegdYaaAqLN9RK62D|+c&s)0^c`!Q7^3}Om zs#GA}v`!_;9#>sq`RQCP-EMax;zz5>9<4F+I+njqWvQFpE(G$H$sX4+ew{~vybA4U zcQ(T0mdl??nR{C z`mkr|i2`T|Y9l(%t`}%<{k?>zbmEIJo#s-e-C#tr#1^cH(FSR_yakAEUri$RD6H?NlSxZzGe;#_5gH zSa~-($4)C!|F&&X-1sPX74ly689Uub%xzjyBl)+j_Ju#|X_bI^QF_JBKeFn! z_dfA6w_B1u`AV-B0}seb4Sl$!OcD@|vqblR>zvha>64B}LE zaC^HI=y|)}BFpc%9LR#n9FL>&59n8RPa+%cL>=gU&IgS{{t^Ag?yty>I~fO5|3-DP z=FfaapH!QHB{L!L9Gp(Xaq3s}zjpsbj^AlLkn*>p6LEt29sR}bedNNOG4MJ#4-hA* zKhXc#eT)2j=fi=ezZDM_`rnc1Nr71->B8RGJsB3Q#<=rL(;)BzJ;8L{>4eV{A z!rEGsQ(h=~5V=&OA;gcP657VV{NVH=PUmwnP3*Ts9d3J&y0A`4juOImM%?shpOh!pGqkb~02PFmQaMeRO7r9fhPL+MQLSxBDKDl+ zrP6%4p&?}Nfe9%{F`J?HOAF-2hR!g$G}hLT5;rs2FO~9sEmOK7(`^GO;u*JxlEVBo zWn1mjq7-clDHAh24<+aF*Oe(D5w&(rj`6J9fTSqjtjrzOT2bv*obcJ60ZDPb1r$<> zqRc@S5zo5GB>a4A8P#4CMQl&tOw9JkB!Ya)GC%u@D7W@iK#dRwxk4)5Fwp)=lz)2- zCt$95kXu5vF$}f885Ij7RK;^dIk%K*X9&M>QOWJIoRPU^Ik$}JV7SZvK~!eDI$$Kk zA+Cr@FpRf<2J-mL0Z#6ZO2k>mcu?`R^?7 zOUjPge~fz5J_Vy(Rll+CR`!T%Taz5V+^)dduQCi0zz+4hKN1-6U{RMxRKp$wLhrVJ@xjZowh5f9Ox84f1fqR{O;0vAYcb zsf<3AUYAE2wt+i5dw1wiTELlgh>{2{rSzpLzleUF#QJ@v!7 zuZiQ_Mrxd4FBIlh-NPIXc-=hCZKB2-KD0j)vj}} zY~DVJTz=2xNY)$FUmkbmO26evbi=){q4~y&oKOI|1SV9lSjH?aL?m`{Dk2T z`~RZ9-}`<<^&M);qf4G?sOEqG@x>dr`CaxDwmUz&4B>!`S>3TIE&ZL^3v5q*PMH=E zFxDMmY3=W_UtoLlbIX2lFp1gHk(T!5o!T_EFaJ!LE|@Ts4pG|XrR-^}G#?Z?2ius4 zj<&S)CAArBe||xk5{cQBZ4H>04#~xa&JKw&V;v3YaqmX~nvq{H+~iQPY`SA0UHsndrDQn& zV%b)Qv=~LlLiz;AGm_u)FPH6b$ONcb^QiF$w*|?g{K_(SSd>TIw>laQ6pdsgzq-uJ zp$L`-y^o4NxGhRX^Cj?sAc`U0PdGa9p=VL@IR8qSpF;)AKAt&h{IA<9$yk1US)fB* z4E=uH(Qv?OBv10Mm4!Mq#xP*tOZ>0fKa!{U*UKUu+G05O7miMVUL*M<|7O`Phpw3H z`jS~8K}QnuUSQB2i+?_=VRZvT@!%fD5&*I_)S z`F_H&3Gi(sf9BsQJK!)C({q3Fzg3@zZ@81xcEf`XFJm6vuL1C;`3?6k>OI3F4sT1nQD&FaX?_zt*TzJTVCzf>t$b2{>}QV088F`Zo*uKQNK_n4Ot8J>4o4~ouYM)w!~ zdykj$VZ%!fC%5g&==`3MlB@awyO95=OzG<6bs8Pt{5AUnb}@gnOyWS>b-r`c@$|21 z|6*U|kCiE*ovWQ;$J@VV|BL-6|7qEEhp1h5JJXJT`KtC2`#OIdlmX_h!A{Zf&EK*= zV*i)_tn8LU(ynKnZO7BUseQt}$)7A!QarCZ$B(yv%l?FYoBzD*zC*^YubrQdfBB~N z8T$@`Guuhy z=hLz);lbF6rvEtK5TB@T4F7Vtw=390@F(bG(+|#nh;P)7hW~T;b64Ag)RRj;6#pTO+o)2_y>#AP!Y^S{vcscZt2ezt2Ut8!W3^8OV= zYm8hR(_=q$z0P{E?D6vcl|xFaC@WUI8<}mU9;n&BYRJrp1QW^n-L~0r>W?-1b%!hf zFDi!3OuoygLK(jFlb-WoHmJxa4GM>gjr#50Q-W91Y@Zd!ll>H3hn!7DGx^X-%9Ej^fg9-&ty)wmH=4xAtk)DE$%7t zbIup7W%@X9xJ8wYq`17E&sc)?L6DeeFeczgjT7}ab5pe6>uXrkz}0mOjH~Mj;x=g? z1e%E!VszaxGOn#BmAeGyr-m&p%xJGJBd))vh>HiSY2FqYA!>Ep6Zf>Ik(&q(;Jh6& zO4R1aiJR|v#H|OsY2F?QUviE|<39Gh<1XsV7|uH&V`1DpJ5Hl_RW2Shr+G&t*hfHP zqkA256Ol7U^8_Rl_SN|?R_&i#4=~F-5y=(}Ii8Q((3_mQh@3H=cS0tJ9ywNlj#31d z`SGjgosoM)V~$tjLV6o>6MvamJ-;5ABpP>Yj$`*e%B=?gYJLN9zi86&ZrtJCce#td z%=|jP5t$5A?mcn2y{k^+L4=y$gxs=x7RKI%y|$<0pq|?g)mozkM}rkrKtzdGxUZ?* zQgBH0kK=e8-<^4SWJSxG+^w`DMsFSe1~Mw=wC+l$wYe^|bffo&zkH+FP{weS zGV@0CTkyGov@1q_gv*Sb(i~8zoxsDQ)f)v8t}y(iHF*JmEaw7{Y!phk$%vKq!E(40 z09mx_Mu7V=lBKhGBL*!txuLY1Mxfg=GNtPIx@ad5vuI65@q~xa5W)bw+G3j{3G8^} zLs21NZT$BB%mOWdx!6pk45nXj@xJ{P1!UuDBAbPji%JRh@iF~f1w4?t*lgr)qVt3e z@%#Iy3S`FBPVC*t-$j=Q+v894tDMyWQHBk4m#B*18DH3MdX~Jp+L@h*1nY$08-J;P z=ULuri}h@WI#6 z{`C~Bg%ms!-6AB#KkIKhn+_5IZhyg~sGX1+|EhodZ2PaLHsTHxKqQ}#5&yOS^Vu)I zF583y{!8>#|5Uu@L;XU6$-zw;DYR)Ap39Fndgu)O^7orGI5edPCWyCs7*yC~a&WW8 zLE5|#WU=EnJxncJGI_sQBbBxQKv;FW_d{VJVa-9PEz@2ZJt16+SKr%Mn7C$U%RGo- zqH#iVJp19J!umDwTjviW-@v}g-T1=~-xV&dnb|rIgqUcG&=a5gaMd~d+IW}wG^9c_ z3qyRR4;{}XLXvbIOfk^{VKlz>q5rx1wej2Lk0L*cUK5_h-+q{UZgK6*ws}CtMDGaG z@%;~r&f(X^Lt+v6RrG=ID*oxi#&e15X133RIwtxIiGuluk08qzzhnLc@&~NRe2xG3 z@ZGt^bu-YELqZRZsK(S7SXG2Kjo&$+iBuD-6JzlD1GYtRrjNlT8(LiDJ5O*@O2Q-U~&D}}0X9{%1 z7DR8@-?1tVH}56Yf^8FR}2E2>K(C4VlD=-k-5W|?w0|~_w=Di-ZfSrjQh_TF` zfisY7aQCb&C@>Z~5fhlB19ipW7QLRepr4615|f$J0|Uik3wN*D!h$v8t;95@Vql?o z!lKu!7C1EV4q_&332DNPw!3$2QGuD*9pYaonH4`AR*-AKM}yLA5z}1e%@zUJxuoHZVMvPUFRS4PU|T4;B{Zd=c9R(^ z>*E(=ov68`G&t-e-eD%oX89x77HV!8O-ZUfU}nnH1-dvVTCRvjFpeiaga{c1Hj`Rt zxni2qSo@t>AtMQjVeuySJZ-)4Ug96jMj2Buf_uN81?ZZ1Kk+%UQvvb6AJmm@bD z4{OXZhh*gfSJ+nYyg0PQ_%QK*%t={?Aj?wE&-2odi}6w7zs%RNNkKP^r+Z!=+HQP; z_#gAT?7KkKO3&Z3VrZvvHt{5ag&Z^yx>^YUY8!Gh&L#fBG8uFcW?AXMyzLOlIFD$+ zvK@>PcEcW(XZ4ULXbEdrE`u3DRlFYEvu4QK7)Bvkw83(rD_#JU+Ym)uWM<2X7;F=! zo(9&>coq>rvg7v{5 zjd~g#re3Km(V%lliuL;-jjOaE<9cEst8Op|^tXe-8rNtc#@C6FthT|aCkxgy!SmOU zVd6$2gVhfl9Ns2AWWE6zA#Nq^VLcseEJ?JPftz?_6l{EPSo7e+)!W2}&fh@Bh&zZ! zSsw@Al`PuKgwEeY#)`X$*+8kSD#hEzhs`%48R9--9?;m1rHQsPVe?HxMMxE`B9^(_ zyHsrJ9$pK#QDQk!#3ITQN+)c4!)sd#c8isyoSXbisj;1VL~Uz9qWCefjzyQ(m4?F+ zek~loiUG2SVVT{jdYZXzCpA1U%lv8_`C`}R<> zc#$~6nwKL*Vn?Uz@qI%Dz~u$9`-g_?g-%Wh?9rh*akx`2yY{z&3*wDV$?WN&0kPQ0 zeRu6}!A0>_r!=-=XhA&T)VsU(_kzpf9Zs2SH30RDo!t{^9~D%J-61E4`pxQmxN~np z?MOkj*vqMiZ4Sbo*x5a?cCV@1XRNE);KY+L!x`cFTCL z(;w`{-G(NvEG|m0@*|{hX3>r)b^A zr<|7WUNwv<57^X_ocn^-Ykb;iS6mDY?@$sd2uO;cmxaW_kNeMGAWc`A}Tw zw08G)u>Z6+TX5L3NST=Lgxl>qTv1NmT+Lz6A?4yyC;QzofC2J0TO4H1BYzX0ciOOf z|L|0~Y;*NN_DkgN;!953cb^z;-LJYuFV%Bl=#g=ilgI9YVQ0~%EvHg(iv^=%B^P*p zc+z#sjUmXs+*uLcyY-Scb6)XL~yTfT0zie4{827qhT-@Zu+&wrf zy104ksl&Mc6+9FFpQ3w@XL|nwIF2zRW1^1B#zdy;N#?Q{wvo{ZE9$7!Q5?6B`~5!G zei=ob%v^?CN*9+3>Ee=0vCTF2TsMT=L+JPM?|Gd6rtSOreBbZaa}N|8U{_@Y>q7$7 z7w!&aRBQP;&$9cns`Y7s>Oby|Wb6rpTkMUjO?^m^`r_Tuj5@7YXK{{PHjY3GQeV0| z4&Eu>bync$Wd{==!RpI*Co@{L(w&cTY_qEgG_VkQmzUA5#dO94gK(3e8YaAYZW>gA z@|{bQQnQa3IE3(4C1%0O=o9BloR`_I1`{E?HHo>5KF|?z;&8J|3>-pv>k6lqIiOEVFnDl-$k8E%`G81MDv8;P{yFRJg^YmbH|8X(M^zcQHK5z zvvzo?s-y0OuUH2J_T@#>SE7r%)Lj_qQyfk;0nU0bX+{S zqq(i5e43LeT#BKDHFSyK3b4e;sO8t(*vMaF6Hz|7|6vdoS14Em63YW0YTnjVRl2x! z^yO8bp#jQ1`6S~Sw$>%2Vk2R-e0qJoi8H%*fQ}D)4fUskFz9w*H zpePHxfLbsC?VzFYbvYp2ZZkTnYHmS55GcF4tTn}}c6=awh-zz+ne1`Eq zteopHPRO=`U6ALJoe7QG*R|UFaNr z+zL!er$6D~wip}Xy4xvGD0WU2+6t%da}#DuobA4PFisAJ&4VAHSCHi6threIAP(gj81H!t7TVip*c`2owVV% z7`@o%uGhOh7A9G!W;*G>Js1Pn*RGyjqlK-2wRF;j-)4+p-@8V12^5K0sxqDQ;ND>6 zp~;org)TA&&ZQF$?#tj|*{<1L#G)ii)hs7G+@CRv?R9D$N;TVw01sv?V|lLZuG}JXAYnQgz(X11TJx?$UA0BgRx&xJhV5YrTi7+%xvn8V zW2WVp8ns6#>|%FZx4X8B1gSE)ro{Fr1tDz_H;Ha!F$wIgo08gNfE^BZLv|C2qp311 zQ*wK(g1Ghpx8vP*0MATgnHsmpD@bai+z8!a#e(N$@=Q(I6BYJrA9g#}%>@ym=l{pl+6& z3QS!Sw>!Yw#9g2jsGBF>XB^f(=f>#PD+#^;d8~dmIh}Dt+s5q)0642J&>pM*mHd!# zLfg)*raP!)^8%z${ai9QoNGI}eFh>Y&YD)JZjsDjXluK>4RlwP1Y1Lj)Gd>l44k%~ zTLibeq|Dm42x?`Ktze)X>bB9nTC!xlQUs-1$+G0eMs?BmU0Y0$G zMe8R`Hti(}Hel1=rl<7Djf-7Rnl4&gzx%hg$3ONxjZf}f)Os3!$>N#9RqZ!!UZ4fg zaj^oppB66^{?Y#67S$vCRQi%uX}qmPnSz6Mq<}0Pq?XNr1nP7dUIG5}*lyW9#HUG@ zRG&Frfxlw7Y4^H4@3DW{3TRNLtME4rPwf%6_dQWh#r{@(?qmnAX836H+}J(2PtAc9 z>U0hMmJy)6;5O3p@oCcEsxO?b!{0GNwAbAhdPbkN0zA~|ANU7Gg!Zo6ZjV5zn62td zCwq7uBSsr~OR^VTY7R6}ryKAF0J%!uQtBm^CfTZ%Io*VR0(%DsZ=LM5FKxBWFLMIC zD1)x8bjz?es#NT2cMxM6mEqX8dnfaCcN+(x%7h_K( z&F&>WOS+=^%E=Ah!+4^7>DKdJ`)93J@?SaKf`4V~5vA{Yqn?RfRekN`4)14_gBuuj zZ|*bmtNE{;Jm7;04^DX88tScm7JXIbjj3n*kV1{N|E;;+p=Whh)83fgZr?*p!*6Z( zZa)*Wlc_TGY9Cdo*Ny|XILPND&}1<6Zr@W)lW!rv5}rrf$yA&Av`;F0274ICzuG;o zvrDTs^=;o{PP1+izJ@&)ye3m)>eoIE0=W9r{NtI(_c47jJY&!ex& zyfqDIpHmpnes#(KMMYiVyy1KSrAMzr4n2zC3p;B}c=)1dZ6g>mgqx9$StjC4J% z)-99c z-L|jtrT2}MdT6|bgd*^}-Cg>+UzXkQZGa|N?1`-U?m>O4FPCntG(ZzA5Q-|`aX+z7 zwoLP;ZzD9xVvlJ33tWn0%e-%{G(zuK$SNMuv34)+vneaP>H7)#KZ`xH^{RVSpI_P1 z&6Q8kyB2ba;JVMfr7yiq)4{h1nryL$xZZN_>#HpDc35eG(k+mRI2~X2>Avo=G6&yg zC;)(f>Kf|4(YIQ*Z z;(n?BWx4CW6Q6kx;9yQyr`+ACpIct?ufrD}kYO|JbRuiq1Ns-sXa1e|!utlIxz=&qSs=X|=~QEV`oHbb8&N z_uF2tb4qJB&1~0E^wb#!nrv8wptB6yiI}XH>8&&A{<;5A1%-r*4xB53KHk~0{_1t7)X0(p5hxmY8CC-J$ zRcBc+_s8k%^N<^`6LfW%;PO~-6A&OVKBG2pu9D?q-O-fSz9-Vkdte9LE5}^AI-2s^ zDT=8&Djp^ScR|tGy0fXEeUGR;;!#}U9&p~ZqBH)n#b1j5>HO(oKhRit&s7VUwH6kN znL4^2UIUYr9j+B!@kJI^ia9z)9#I3rucX}||NUDGKcAVWW9mU4K)*6~%kOq7fm>%5 z>R5VY4-j7^xvBOzJ%L}$e4=y70~`uM_7XF^GIka!>0sEo;B2*rb!}fgB{fj&_#;FmAh};%6Pw zfun=AudCf@{puCTPT;d*df*3xUT*>^SG_XX1sr7yJkAb2dX4j-4XD3LcFU|qJoT_0 ztORuK$^i7Wg}Y)uIPAI%cE2w3@EwG{vG7zJ)_Lm@G`I>Z-IYOTm4%n$m`;O7;-Kss zO;6t;Xtjlp;*`!8k4J-8fa|UdL2E4h6lZk0Jc2EY|)Bc>Sg@dbod0)E%^_QVM99Xu>^Luc88H^_Zca@*k> z?>#&sb6aQ2V;y+BGq)$c@jk$#G6i&nJfTB~D$Nt;N1HyjM=J{JiUFYac-0NBuFhf$!VDwU8-l^kXdzxkMUID=i~=q!GvW0 za>#3}#V3D?msIyq@ucoG&)T7|YC&Hao@rbAqs%knj-H>v6+h0G##3)kW@KvXx_b@` zRaFQ3Lip;y10mZ7UG92 zsuhb)@jTf8C^iqwUvL_Rzs(HLUGN+k{`fX2Q1yq?2>e}Ui0-=Q0uYN^1M`14eS?3< zjL_Zn+#MFE6$?^bY=XqpJlG?Q#Yg07aY3|2^|9o7FnTU=TVX`6HaG~fq&}Y9n7L;f zA04r+tq!6ssZS&~WhUz)Z{tUTYNIbNE#wVJ`c%g`x{&x#LpkKMK% zsjT%5whrP=!P~&Az0$QrSRvMHO|$Jiilw@jZ&!}EzZ(nb zT5I~=z6T}WxZOB%_nk_p^?K7>d%t3(Zlzr3Nbx(CX~mwLeDmIGUC-MiBOl)-g{uB^ zT7VB{*60S@UKkmD*9s_QryuZdneTN4blCR^4>4O=|nTI*hidzLLz#Y}aMp#(xWXzZnMEQeRD; z&Ww=E2l{gQd(Cj)E$EuXtYVMu)7!S+D&KpDuWUirE#?&a!QGh4x9<04;l971KP?s% zhjriH4*ItGekpwA7j(m7QE^PS0k{LQA2cI;x1pOB%ZgLFUv5A8hW+3jv9b-_vRGA| z(d`0Yv(1OH2;Uv(FN<}>dELR=Rp0zREJdvBK({S66qj@-Znu0(2ZFQjE_BCYOL0y2 z`|ZAOl^?t#S9YPh7Tb!Ox+}M*zjXuB+4nc}H(WG*TX*aB`nSaoGm#U&dB5QTOaVP1 zFDNjck3=~L@C77=n8JGEUI#}{eRPeQ5a0_+3Nv9KzpM_>=aMJ~LB5bAlqsR7;H5L_ z^>HR@LXZ!UgfS6%hrCRI0(~UfL5MFbDbAGDJL+|5RBq5dx=W~8guM?br>6;6=(dln zXlqC_lnqBB^>AK(qjMj}qPrl?qHHN7T8{*rXo)(N7;E8X7+V^t2J%(uqsQxR#B>Qa zi%Ck*_u%NfQM0;?7-Nwlaryz~F+E$a@==$%{+I@lqJ8u~n0u0R{b(Y%fHZ~{Nzmn) zT6!*CoukEdmuU^qA~;=Jw|Lu0vT*)aC~LD>A74l9kXkwi%)}76xn;E^{`j%SXhH#f{Y{u$<{;q z=uLUGjWHWYp!h{WvGNxs0zwmge`pm)sMcD%CDJ85OV zsJi7jWCpk@b{X$(EKBm05ye>U!P)xWLF229OGzs-q8gTBt=iS-ytk z1!jTXS?`DAr#`vfnULilkpwICdKbJ4$Elx6?l>IaA7$etO7$*#SB|@X8oL9LEILO2 zoB2Y|-n)K05nMtVzz{$4jh>hH_;|~w%a>09d)x9F z@~vK=_u}~Er;h(sfDuB=f0)9G5#GDw0!?B7<90qJc?0AY;=N;>kxit#X>t@z_Dy7y zUa~iGf&g@G8F|WSwj=Vh-UILB6Lw8?chlr4T9(kXc0Hyy9&p{8cOeQGaM#D|0O-is ziAPPiWSRm-o9@Q!(JS@70{rgaWQZb0hwjeo*Q@k)o9Jt*PNpehbm^YVVZB=K5CD2_ zCPM(SPWNJt={17vgIqI?PD5gFbRXuFUYj=q2;aeU2nvIz`!Q$qy1k!F*fv+wX()_7 z9ayw_L*6xj{NAKPfO$#}VlL@TdVijH)Qn4^DPaugALtv+xFg?*l6AaC^&{lk75eqgnh&(2xiP1ga$qX^cw% zRFv9hb0e09^Lfd9rYZQil%|NElhRd>IA4%_42lL1eNFQQGK$r9!TT%nI80L{%G4YfE>rz(!nAoAkXhi$$h~+q#egxrk6AS#kKh`ru4o9 zKZKmXfaNUao`L>k%Jxh3LmEi+(O)w?a6>*dQ$b%gA3{!I?C4cYZ-AnIo_h2J_aE&f z<{G_*>5rT98JMd268sN5+J^y>d;e`5Zjzh_pR_~o-Pwfbf0zm-2l z?JYlo7C*!n#*=N+eB^sd^oC_UG7h)TSB{5m^M15)O7x~>BQgmmQc-=r+_XRJkEZIo#lE*iQx7xOpv7#mFV#!6aaK^rgJXt`m`(j01EjvLX=`Y_$ zJZ!r+V+AYfX4#DdmvX+vJR4xK`)Z4VyC38;+*RKyo?rVCV?|rk-Lel^hI8<3;iZEq z6ki=t56c1ME8H#LK3-+Jcjk(Ys3$uwstT8RaFUnmmyv0#TjWU}X1>J*fw{cHsBI{_wzN_mzfQEMc(uY=AP$%h;PQuU>f6!eCSim zFStj(r}-}Ie(?Vm`O^7J4ldW1%ui&?1K?fM$7}}K1^zpgU%)<}Re?|NxBQO$ihJQ} z&u;|cyOw@JfaN@L5ckH{i$BTk$g0p!2(uELGp1N-(0>4FyXZf5<)E3kl%4%eP8k&IUU&*1__~-KaoFh-+VvvV>!|} zT80T>mYZNIhwsbf7jVw!R2U|NTmC}+#QpFc z*K(s-GRBm6wggH6ukGhPJ;beJr5RHa*petEyaAx-x4D9OGA5KnHUf1Bf5z|bG_r$~ zmu5mqV(&+Rh^ilRngDEinKP6-Y+2M%eB?#H(rLSnXdxQNP|^=(oxt1qb=LZIEak17 z5xr|EhtkA5__a)@gE1vv-HE%B3LsSJ=GQy@vcolh!jzvZ34RLkK7PDuZbwPJ1BFkQ zRLa`(?ANCkJ7)4HDEt&jbQTdG;|HBVbRH>iFyp669s<$yJAMZNaPL|$VaC5Fsg`91 z@Cx-AYG+A-gE{}cqv_9ATh^>io1o8Itnd4nI3cJoVXRx(UF8GYwc{65R8HL6cMc_&`>lVJxuYAU( ztG}?p0#i!VMS+KJzmGGqUEYysOJ}AeF3Shc^JCBCc9|FDTRLY+>SqPu7yL$MK6WJ) zsaiQ_(@)5S;Me@-W`?@NBxqKc9J*mvIDXr2Yi8Shsc6MYG?yLrC<-s+51mDHA1QXA z@^dB0S+RI=|AVuqx>?#>YBP&%j7r2y`>V~K>t+>OpKs1%pF!Ql%ll(z-Mhz%yUsV~ zvni-lyb9nx?slt`(4Mgh=;m2zcn$vxv&G$)OByZ|J*NMa^&kF}|4jgbWRw_N7ZuVi zvNG{{ARs#3-CxpRT~tK3%F4kL{bOcfJ@QYCZHkKN=d<$hX8!kQHF_>TX|O3Ov2>Rx z!dv<0&YJYxd!ltQ;fdu%)KmQ5{t_?jds?65Uvz#d`FGZH{B{5Lvr#=_PgO5Dmr7pF zD#ttdvuAUA%%A38qRf51f_jbj@E@A3?TLOW^Ec%=+YVKO_xGQh9qOrjn)Wy41^YVc zJwDujdv?1=uvEsD@{(;2$g((pp$BrkxKf%eri^|w>l2uhRrs#g8(a#xj45ZIRA|Mg z`D=W)=`Abuy)0T`>4a(r*JOI%{d$*5S1yZITDqV*@cI5`-_v_FpZQ)9eP!u}>cKzt zxBXt(>-}uyis)-gcT_*V!r$e4cW>D<->af;EIm=f__zK+-&cE=o~>LJt+Mn&jo}*r zohJKL^SQ5`XtkveY6|}a%fe z-S6wt^Ob9&wU$AsCH#bc3y4=~zVN*+`pz;0wT9P{=>7iktLux2>-=|;VObmaWq&tx z+gH{L>wlWxv%^u__)Y)S?{ib63`b65T29hQ+a7^-~5ps4fIB_0NJ_Y zeK%e@kc#T)v@B75M8Kgrv%ZX%#y5)U>2Y8ePA=f|oJ(K-%Z3|84fKR8DSdPRc`mU} zzRdV$Q6oJmOGaNK;KE#S-{rD~n?;}K|I7MA|5U(D;KO8;89Nj;(UY?j^&|BHeCDS6 z`pX&|ikj&__0=Z^#LU6^<;#s7i(2USvQz;hd4Eo$|8jYQV^J$TEeoSh4al1_>(3}R z{ckajUpo-}O6C@& zmtBgwqW>zueST=5?p4|?%2)Pt)OG!L0b%po1A?z*+$nwRm#CZip91cJA28DEG`IiIeosK@yxm~k>ogC_Ap14SQ-3(1c0O!S@QsWoWr$sc z^3k6PXq#salHR0wQijfT8)?!RR+Kw<#m+T2zSsTEN`=&|ux0wA++#?Dwb$ z{hfgA`Rzf$Dj6@zDElKSMqf>QL2d|FMFZVldOcX;mk3l?&>IS_f_P)b>5W-Q`m%vX z7i@>Bt7zVs33^jjvOY2pzYsLESq1UIOwwDj?&+%qo&^)AxN4dYW{Unf>w*69z$*(? zL&4P$Uks1l21b;yfo=4yR%C4Z33Sx*bZ0M(EKsq>AhLc^z8y`7J`O1Yajub zIeK4KnZ9G-=Y>bZxVN+b%shP{>y^HH;J`xFaPV75AZCF+1O{OI0%sTchO6Jw0x>`6 zBU$hC!veP!HikFfLV_@h^wF$3{n$Y9A95qO+I*V85?v&*5%eSv{x~(_T00TMUy_{6 zY5~}h`VZwAZogZE!Gqn@J{1wUREUvzbgb5h4QF&(_(!9!^L3Qhw z1ls&49l7zYE2Mdi{T2qiuxs&N{Stojs2l(ytEm`!P2%_O2_m`6v4aYE-{2 zF!qPUHpad+YG#E%q8}4&;+7 zf4F}ed*2n_{EPh)wWvQ9*!bh_H4KYO`Df_bjAe;)ixmb$6SEofwfLg(oBoFBXc`lBQ zw$|m-oJFOivXuyiK@p1rV`BBHvCc3l>Fh%U(;)gHdd$2&Kh{}HN+w&KU>TIXNE}N7 z=#;a#)Pd}ygiArs7wyMd>+|EB_euSceUflJ=>1~Um{@~qyt9OqeD-OAQxJPG7xbj_ zJgw=^_S*PNC@QRWybMG$s^wwJai z1Y2ZMDQFH+DTW{tEU}E7B(9$2biNNHrXWvo8TwQwo}!gX%8^RQZ8jbBiIGkEC)?(eug~698a;$ zE+aSwe_nnxh5JH#h&hpRCHob@J$PWbYAW~(G6tIX+@C%+@?whLqLi-Q%XUg^L zcZ9Iut>ulW68Gi*L{C}S1K5lf3|o=qX}0-364kW2sq~5PKd`HV<$1TQJQ6)^<(Pe4 z@;(@;qw-4H95VQ)rJTT+G$UAN#fvx7Hj%;Ck^=KxgnRNg-4l88V2r2;n*zpF2*tq{ zR*HF-+Zz}~+9|iPzY<;s-voSGM!Rt)CC0)-X^`+H*lT5y*U?^)nV@TRTj?9&LvYlJ zFkhOj#Z1t%@&;P~se$wrG~b+^&veE~`DXJ7?BMJbB0mWbY|eNo|Lj>pZ}9UKdk{j; z&vMq63d~+0j0C@5iQoU|N@5hp@vm#`DOy|T?0|liPO9($gJU7KtCiE<9V>aFrdD^A@>Q3a{!R!k>MyJRl>RjMC*Yq0czbLy004a7oa*N@NL=<9mf ze1p@VlxQFws)UgJ12UBq7Yzh%Dm1VNWrBYb(E~ECC~ll? zr6&d#Lrd4~=IcQ9pK^=StMuI9T4?Qh*u3DN%xj7}r%$Qe;NQ@;b>=*2Fzq$PgEOG? z+Q1`pe^u3d@F3(3#xrFoyV}4nbauUOzIu@M26H=QB>SB~Sm@UJ#{A|WqzdDeGMZgy z5F0A~Q*L1?$E!-z+iG0tlfnPMIv{qzduXLf)W>R4snsAYRO6@3LfKG*+_;YvFT2fv z5vudkYhh++qMGl^DU#$GJXRwAOk9v3Hm)i1OPR^;GAItc@UwW~@^C{HZBanVeDANDC%41)W1Oj13dtlv~D4(poV0QV!*u zF}xe5u&K8kJPBz{Fgv5BY;Kqqrm<v&Hr)!RJJ#)3ya;9SW)3ww>3ZFXev7b1}}Z{_{t4lS6g!iM@t#Z5Qi0P zo?Bt@tlOIz9BpNH!~U?!P4^X&X2pipOT)D^B;v{5S87PMu{tR2(oLuSPS8x(?tc;W+4S$D?UKCgr zn^xsI=Sq=sVhl4$5?jbs(sUY^!s3v@LM=QTxkXrw29O3Nk7J^I$M8V-@h!X6y6LnI zNSWvhF&Y{s`sw8+X*Im=K#+_r0Rb!KLwi(e!~&B-++hsSRr){e|Nbn}a) zF60y#o(+Gvb!yFZcA}eKB4v|PYcs_@%afey*Y~q0Gub zx!Eu!9R15={ob5be?qy{zsg?>{|i6$%W=J9uA)Do!pa#uKIViIf5om#&ua}NR9d+z zcNrFiQ-2k#pP#Q7NO)y+OZltei*Wm2jqCU3wFVPjTX`rC8omkl`Zc-UF<&v5@W$%4 z@;Ac|;ZXo5kzUXmN~p5(28)T!;iS*=a>8?enf$!Bpf#LOW96^> z-SBJp%U`xHTNm<&o!?3Y<}4USj)cGe74=i>hw6xPtyFN%GT3fp|H}Po{v&_H`JGf~ z&br}3_{gtx+vp!M-ze`nVai*EYvFUhhJM!lNc%?lz==@aHQWi`{mklTcf=tY?^N#pfq#n%1TBC5n8pT9FcMw}gRvo7KT&X+&THc8`xN~aDb#-Ez-yv0yV+Leh^&RR~$*RK) zzf-CZs4&TkJEWcaoNsf)tlZZ<@FSlIRCT2xb zIZu^sjmjb%ciOgCYu4YJdpXaP?To4;{C4KH#@4#NH-F{4P_{R!i?BUNM)@Z&jh}44zYScT9fWTi2RT7_fS!e9P!-#LJynZ0mXjfjr20 zt?X$u98tRy_Dk@m%mQVIQ>E-Yub9m~ScXbHa_bBer%ner^7QEMi7eKITLl2}g?W%5CE|Xp5M!lzI?D zl!#Q=)!PoESkG!&5wH>?(S;6p9+Q4=gHqvdkZ@YSv2AG``c21TNAu?ol zV|#NGvWl5b;pVW6Od{{>%I)B`WL}BPSakvqjeadBEwWeh^eMj?Gn%2ae)Id(9kz3^W%hH`2 zzq;0&=Q)GQRYu;Cle=v@tY6kYn-@64%C$zpk*m9NJ7d4Pem4K$d{h2t6dkD!h3(33 z8*daXri|q@7$rvT|E;lmdAnhwXenhPr`aeq^3ZQHu)t%yS+txomGi~uQKWdJ<8H@x z#b&~a6gu*)r@kNQBfrIcfs!Yortv% ze>?w{`kk|Dv>UnmTR=cuKuy3!03nzwM1)333aAL26(|sJ5kx?8p+w0jB>|Ga9RW2# z7a@d5t~l{v)JcIG0-ps61YIBqQFOi@DvBTwE+8Z*D`Y0jg`xKo4@aF7s7u2M#tLbO zq>ASrARdppB2X<5A}9>efTl|1$`i3sZUX%RHG;7KRZ5l2MG*;6Ap)BMTY|#E8n9GE zt_sm4>W+ZCAYLd|SVJszf9_%8xhRGJPB27BSOjKoC5t{nw2mqkxF}dIyxmcoGRIfmppc`ZoIt@o4bM=Tm zU>U1J@Cn3GbXpRjluICnM6C-f3C=<$MW>|@=v*RTwV{I2LPv!iVbci2A)r0oi8?5# zDdZ+R37eKisO6dgVp(1AywDS2N3rSs2=&}^L`Ia3ptsPh@TAzZ3_>H9O3aHg6}%^O zRK!snMyfl4wjq{8*$6%px+&5v-g1C@3~fs+i*gif7s?Z{+1GNAdjf4otd8;%oEI7w z>E74!2lr33J+Uq-RuB$31htW9k>hHj!M1i(y5I@OO=!17i#%5g?E=)P0znH%9@GZj zqQKQgyA%7PDg`|t$D2SR!79&$}x$3I?D6U}if99eEk}fEO zer^D9AqtUP3yA@8m6;NkfDR$9Ma>BgL+VA-rOcGMhUf_5PSm#G4nznhi!eiTiRc)j zNb~|mP8bi1MQ9kDBctPp`=aH9w1s_Os|eU3stGy?aE=;67lq4Ve$p^iswp~|s2Hs$ z?2kQn>dU(m-~o#I@(F7 zL->i9qs+8A!ZMdh#774REeX$xP0AFnw^)HsiWD6y1Q$6ZZUbB)?s;?p(L6d`=!D2k z@ow1`fN!9S0lHNnWFe9#ZgZdor1H@q4If=84LYpR-9pbqZtm+o*m8n<6a!U8;4fr5)R;#O`i zG4grzbx0lb4qQ#qMF-)LJ3xFL?Fku!euft)y67Tq=Z+BHM@K*eMH$azkY;*ZFZ4L^ zQ}kU3N|Y>_jx@t@eb78&do&YbAQ~eni!#G={m`?-p6F7@HPL#>bd;GsHvqjr9FDGq zgo_GE$tsxymEA zj0%4eyAO6X6D_G(Xnj&(%%bp=Sf@-SCeezTgEk^r<93Aw#l>aSG+d|%RxX(oA0sKE zBEAf}r(t%Un};?fCC4B|48&t(WsjI$;1;0I0;l7+$TjhL+4Li3*4#q0B`FKsl7@>5 z9gsb0X2UH;Um!h>IVX}OPCk%+)a)Yn3HlQ0S&W^?JMkEx!e?uf|m!-Jf*#^u!V+7FH~BabGz|?82@hjQ(>c4aB?_@!mIkaPq|TRYX;;7im1EN#x$XqklM_ zoVG*Md||>Dc$=563^JuOmQdjDgxiHfW;=dP&?51V5%Y& z=;#*|DzS;KRIma_vZCce&%p01V6_w7s9?j3^f&D#^j~qdN3dA zB)XLpnMTtPy(n3Z^uxh?sXVYxnn}|W^_N^muHs;R)M<1F*bp`Y`p;>UA0FmUokjPM zp3-bZUrG9)R`IX^>KwYCR6%nQ?U5`;`RT&~sSD^~(py@P=$hm*cn<^%qJmc^q&Pyn zsI(OR>jgqf5O)a;?%RQCc0%f=Qa7O`n7e|WCUwvXL@lK9lxz%ILbz+_IZ{8ZQq)6g zT&dfjC6xOUy+|6PHHs!n9a2^^8}%V=qE|?K8dvnO)CJ{A!$feHL;ocGppA-tlDe;q zHA;-2?x4XlGHp?GN~%-25EYO=9MVV4m#=veTVkqTwO$;endEEutc7A9-Nrovd# zWVP6{unYuVB^J9D%#{*v3;;t z(mtxIrZ74cse&W>#!ka}q{~(PD6kZ&l8OO2Gn5o2(8W|_&H~KZ zB?FjLN&tC2c1Y}blsJ+fNdS@8^6{E^rT8jn-YvL29+$6XPx zmJK-~Y~50Cd`=~UtQF@X-XmLn#LpU5M72}_!dP68_?qnUkyUG0F_o&qA{)mgiXQ;> zl^<}cs22bW_!lUqX&>-8x@rS^LbXvTAzQ~4i(foYe$?+G>?!pUD+_id?zOo0f!U*z z7pI>hY*{bKH{+Vb?;SXL%<1}74SAE#oG_$9kcnn zr@ZcAh`;_pECysPBdOE zev^8e^^N>7E@q$D9||W;?24;Wy;&3Fmbm--j{I@uWTRbib*e9mPv*wu?K20N0+VaS zHK`ytOzw*--{<{!sYSI6ap;NN< zW}t1UB4jKQFCl@FBcDpQH>=~us6dV3@zZcUxsX%BH#F)~V?i!KHvXu@Wx1MDvA`@% zjc37)gX8oh{N^mEn-<2=f;!aNnq#P#I3kHwS;ADTpWJ^UZQYC zyV0$;-Pw#H!tQJfArwVon{Bq)or+QsWlk!h6WwcKbGsXN%k6Azx;f?0DW^Im zmFecRS$9r#O6r(XopR_~s&jtV@8ACLsO+=%=Y3tT*Yjz=&^3e#4bjT8EnA}dk16Jm z7bb@EZP!1p{HbMI^u1%6In0IQCH|SkL%eRU@1q|cJ2Pi8+Xy|o^xqwRZrKt2?AYZw zM;0QN;di7zak$Wu9sT;)-8n4_Szu z&Qs{#sGv7<@3Pmy=x@iq&iS^`W;tdTMnmyOuEo!-H7vsgfUaw=(bBf&N zhC|r^14V&*eO|I?ry`%ZNp8K%RauOe_ilKVN4poToO{5{2D0Ofk$e4KifBR+dv1eU zRH!PO@#@}yS9P>+(T2H~+zLW5kOaPW+e;lCT(o`eQ@7qw)o#Y0_wIT%Mu!*epZm?t zCJd9q7`=DTO9RTj(z)*LQDLeahV`D=3qpxSyZ&14o*#zDC5=^DS`5*mqK>%<5TKJl z_^t9m%c_Op0u2g&MtaA*W}&-nVQje4$oRHM&}oOocqCjY{keAqklU<+#|Z6Xy!cBBFak4 znw#(Mz3}RbmKI^=`9cuEvbX=ky_a77(efhvJPvH)MS1<>_g;D3j;<>TnwPm~c%>z; z|DSt*dfBaNE{d8bUE~^0&DT#DEeH{j(IN@4TNj=rT@?2@0MrLmx~V0o9=;xZA|(nhYu~o(Km|9=XrUsBDDL{ zKRdvpAo^}m3PW>0}0ccF*YYmx)oUtxvgpmcryjklREHS< z-E%Jf7X7toYTjp$sa1%>q-pYLn(0(TG19@sGb~bam;?g_jV*O{v8zKUT+=!yNM9T81bf!G%eKqT-8L4t1Vkt0e^_TRBqWMD;07 zbhzM|zZ!9rG*doX<3bH8&Tx3_*|S;#uZ;4!8h7f-;(UkCo>Qw45|W+VLE}ZG7Rwx5 zyuzX+5|X_ftszj^#Ubnh9uEhx=YB2+tQc z;e&%+NzE&saCqxA9BnD;pJ(#GMpBOyBT#d&SgHtqmdOiCrAmu2C|_&})l%G#GU2cc zs=OGF;$St@)Q38>oS=!N))oh%#MmL~#NWq2aF30nHWf#r3bANfkgOQPCu4=w_F^7N zhZWGeWW^w2!>*py6t<<}aC|He?(eY(=+8aSwfJzjfL?z*R>8diu zLQ{w)(&tHW4=N8gMMpfG>Be7<&7!`9e?t{6Feazm&Yd5I&87ZT{0P;J%Z`~Sw_C(t ziOr+_Q#^{gkL!%dsj&0lM_><7zZ8E$P2$F5CMx=u*}&L|Y9pPAM&T)p)XGs$RFpKf^3bTVOprL9T_L7e6^b))n$`Un9Ti?2@iK_zH9saqj#-a=r-YOB-1#-ce#Ek!;- zUm_I5Vrm$ErVZF0YOeGR`YE9|R#n4TV%mtkOg$j|ioPTN6szt2&Y!;-dzE@rYUk)g z3}olj+6C}au-B<2(glve#BBCNtz95L6$`jRDakRO*vZbRvs=ms$Qkvxbh%?LahyF- zXBWgz$C`jg#Bi)426A%LcES7%?0xD9={m=5Vm4<&Z5P7dj(tr1Nt*6>pV-OCInJ17 z2Q^}9k93dY2jUoKDGNJ7HG9F7^%ev9!xE(|ed}fe4}L2kd+53u&KY8GNQijr}W4d2pq$N-d73 zyi?*Vjs4-Keb`Ub57H6GJKmZ&QB!|}=>YaC^|N%s@vZl8+{osZRq{ic|ESYsHW+)7 zE05Z&2PwT~2F*@}#*j&gyuN1rYWY#kcQgkX7Q-Z|dDIp?yz*&g(H6)8F<$FTysnnw zXnqlP9?e4*i75oxc@TWQ_)@GR&0FR+w;43#T1`3)RibgG`N=k7u99S+|4yf)$~3OD z5ZMmQ3(^2z3)XE^g=P^gLUs@{os1OVL4S>sYp^uBtQ@XKEP+;=&O|9SL>gDt2+HWh zb7&odWl~`&w0PM`OcJ?Qpwcm7P1RUGT9WJ{<^b77h-qW6O|{rSTAJ)OrU9;4sx}74 zq{fEOGG$LNm&gS|3^;;K^-yKVmA%0{CHD$d;OaFsVk2k=WM47g$TlL3p20IUW20z= zve{1Vlqk@sGx#PA@QBM~ZcgEp0ujc*5SX-B7AR7EoRTQLA{FRcO>I~%tpNgR2Pii2 zm=1=>q=&B-os8|&K#7W1bui*h9oRLrQ?dF(- zTII9{PG=WqtQ|Q$nuNNj*-IOjy#}{n$J*2%M>nD_YxdKoWFMVAEFN1s0>(bn70qFq zP037Wln-TH>Y35as9uePhAeS*4)DoXH*#h)8P%sLrlCuSpquMhmwI+I1$6_o@~$Nz z&RITVV09bag6h{)(y%3TXSojr^lGE2r~!?NMk!h2eAXueJZGb6sN0%a+M&Rbt=Rvo~D@=RWfXy?Tbwmb@iv4Od8P)Mv20i?3oer{H7986N;;jzzC)mk8m*hxboexFW65Rb(Am>L^~Bh2 zdW7wyrIp-V}54rFg?Nc&~i)OI6w96U9b9?vD5Sn zdzp5iLYxIoI5k7$fE zRS9K&f?v-D$pzAGIap_C^(A5R^ZceZAbLnS@==Y6rY&KC%OxyH(nHFXk7@4HPL?Fj zzu=djg!qL7J`~MkIE*spUynbVl=F+-5Bzsn@Q{@3oj>U}o;2}`-Cq8C>O3uyCS~9kA zg|`9 z>~R=6xl{y%_mpHyZ-1d_7H$DOpfq*C9U!ZVuJs=?&B3|RLrZfOy!Fp$xpGYp0P|K4 zdSq$A0{Z~h6l$NoSdMDN(HW%*pnxZ)^!4eba>rJ0IAA!UEyEtklgVeqwJb0;s-nd@GZ#Dy6twKi+bGi*ZzeBDS*WYQU&u1&*bT7)O<; z$ytE8Ev34Y1!B`g1N|x!8TTHiFBJe@HZe{6Oj5;Pj9W|pv2?S`^*{yi?TV}UzPR=D zpG$YSyb3g@b=@ki;R7s{{%h%B7u%)itwFboYxx1VE%ckEm4F}>Z0)*TT*qIE+eZJb zwAqEWRIxSa&ge$l;MNTKgVNJ3$x8>eYVV{2VY77y{aNV)oBc~|wqfovpy7+lroSq^ z?b5I`YMbgVqrnu0+e3d_`o!hZ(t>T6-x!VjEs{L?MCq8zV*oiyej_!>BU%s8zm`t9 zdm^gU(oTweqa ze6M|&{v&Er>t*`EvVUEthak7(AElo`CAap{kCn{@Y!Yj`_EGv-`Jc8o=w)SY05mGt zj(N=JG^OGO=v8Gt3zL8&qls_kw<{tazc*vcMfVz*gaB<6hBkmDMf`UY5NB;raRkDyManZZ2zE$Ojxr>eJC4 z)SlKi^r5nI3$vDu?HGAF`U`4r>p9emvc837%dk5|&-yQ#@?gqoEwd~?noWh_sONLjxnTiftz7@Vpbot=jA1>^JDzWQ{0Tp)$s1FzhN4my)b53 z`7XCt%gtF`FN<&TD{vk$tI7|%*@mLCgGP$``EndCCZ^nVk!L6?TRW0&L@5EO$Autq z!sa8{m{*JelL|+Pxq|C(O9<`Bmb@a}l7j#+WgN|zI(c4od7$Ba>ylicH>{g`958|1g) zI5Ee|m%HbNjps~Q?JRsfjvv!n&Ty{^3(U=dav#3~7awz?e4TrDSa$BjnB4>ZNnAqA zPvz-Qi0jPF`OEGh|1>Ts=9lul&`cYL-kIGa{ux|y%(e1jcc&GBdvc)e#qY$W#oPj! zL-301Jri&2pksv-#|)P1-Q!nu?#X#;_dEX_4ysJ$=iPHxjPIFvYxjhI9+w4-&4bd) z6_g)R-;F*&^|a>1jFmrdKf5C1hmm)qPf-_J_r{C^h10a613ELK&rp|J_s1NXD*x#I zVZ|7PN=!k;Ob=89Wq<0Y(f6p~ z*1i~7g|kOMM8^J+Pop1DBdz^0MjYOQ6QO~~X8*Y974CLST}6;bX2bxk_p=_NlC8hR zG*?7<=sX+_1WgrB@U6JPnDz>uhYs?FT~o!A{J(GyV}7jI>~TFpaUkeRF{Jo#PBZtr zZuc-`oIfD>LV^Td>(iKv70t8VsE6#YNtui0%`d0jf|3BQ{F@IEC z@hDt{J{0tC@mKz5+&@q;z6Y@-!J)2yi@))|;Qkl$cg1s$>#G!pg8nQ1m%m6e74xy; zoyUt+1BbN#rT>S53{K3y75{onj~t)lIE^{YJPmKdu&tc!=^hz%ST&6~-E4!O$(U2= z<{1tV6U=m`jTwPQGMp-XJd+}OA=<&5VV;Sf%W$t;>3Ja1<_N}yi7?yY(F{T*8>-Gx zkZoYvnvr;ChHvEt&r6X7M=&#(GZk)?E{vec49~}rJx3%n$lodEYTX$tEAu@+M@}6< zAjozK2dx)_S}F5%fql3HLAF<*wFCycQtcVKI==v6OGYX%S~5da+2NV6x~D*5OP-~0 z*7`CwRQ7o0!DbdQlRR6oKpOxPg#pjH)nP{^Gs&>;)CM!QR}OhzSe<_q@f~@t!c7~> z$f+EIong;W$#>*=ibeQ$q5CR7c|KN+9v%74Iu8w-I7UI`OfOUvMUrY~bwI;VfFY}N zhW%ECWW>&jLgTdzhN6<_#gFQcq}p52XxIrc)If*JiW-xQ*jpXZBrOjH6m&0n6s0f~ zX~m!^S`nk8a*fwn*l>&>txjkk?K(zh=Dp@+6|1J$~|5mqQ(kGW?AQ> z{k5AJy_Lsc_D(sLI@`Jc9jHxZJd07mR6OOFWwy~pkSp89xL2w1Vn(ZvNq#MK6$Im{ z!G|7Hp7u(P9yq3*BVLGxF)-s<Ghh*gmD90u7}}(wt#~v`t71^(Yp`dj8PXB7m4IezYZ-y^9{O#nMk;bN63rZZ zJtI_}gMCXKhUtOP+Z+cWr`2)^b`A|I6Jd-bGar64Ot}i{OG}YiFh;Ujh=;qdT#Mz< zG%}Hskz$U=pJXJ+yWq+>EVDQn7n|4O&oGkZeE=!OmWZ55zcOOKpN6xgqv19n^%o?A z-=awFfFsa{zcj;ZIeLrs2BTcQ2)CLpE5*Br1JP;P0Yqfaiwxx|E(OWeqzifrvG#%;M87aEgaj&LUf zbwF!nSmYgW0QQti+{r5xd$eyEPvkwgyqKwS1e_|0z1j~jaT6U^#ROKUn6Fo&p%%m# zlRv=P&n1VX!w6) zhA4L6UoZybS~#E471~A22*pACbS6@PhaW9?kH9i%ic-8gGfJVtGnr-up2*}V>Y)x* zpuiBAEcC+yGE=1Jz$Y+!6cPeCR#A;l4_vP}kI!X}D<%l`Y(XtPfLRfA121P%l&M53 z8?Dv`F*6ho@MoDB%D#Cc=%*1@B|LbIYne9rBbJjW!8fGL(Cdd z^^pxiMY}eR*{p~nyhuS+1yQ6TfdMaMwkvo99ZOKvMUln}PT;^LNF0LT>DM^@Oke2EloJ z7W1V-{h%_IQj_Xu-GJ`V<}k+;4+v*tGipZstV!sL+P(1K`5K0{9W|*-tQ*mnwfmV< zijRa3v12tOORSsFSG0$jHp-bq6q{0;>TlhQ?$t_|NTo9|fSpl0;%`kx_i2lnXyyKW zY_?hz8DL0JT-TN`7bpXXV)jsNUw~nY;-8Xq&#?MC81qDh|1)zXodMkNE9a{jl z5-C_h@L=aqZYEx5E9!!l+W%>DN2_LrD0dKFum|e2OU2vJzd-{nLV1ulor6^4gT(1* zlUBo|E6a&q92WfI#bWfJwvA~yQcn!$6sR%5%nY*y-@%Mmo+Ku5dey36=J)0Y_|wcJ z|LoT(yk3)BFs7nR!6@mH3U*QDU>4yi4(1dzC3sBE4O>VfB*bFOQI z&96sfS|d}Xq>u?ng3J1_kINrQ`ai#l6eq(W@4PadVh^mH?s`^a*HZAQaG;wVtUL1GlGC*IjMX|Nxa@>)oSKZ^Gw2Amb+>t=>X5B1rx=T znC%E?7D2@Z97|M-DvDWXMiRh3ui8Mm#4BjQL^F?>XA@jm!K&?~r@Y=4RW!56JeRPD z6|UM(`o^=-V5rPuvjc1!XsS|@J3k6m7EGxbO(3#3z`F|P7icgvrp$~XP+0M*lcXem zFH9VnC1z)WA1g_9k#vA>(~6-pVUR-zWTmNYlN$I@ttvVbuH}RfR;KC+=@P%76%)fO zH@gwSSh=bMuk(COfj>9@suL>jQ38u6N7Fner>G*JPv&eOV zFr9=&u0qdsiD#Wqts{2}vUL+I`)Yv?VH&AZwUulVVBZL0ji6R1Y+zkb<&fRqKGyZc z8o=YK+r+w}Dj?enUE8Q^L#@EZWee-3s*+r`lhLMSi|fpKkFBgbDxPGyFux7KA*&TZ zIx)+l>L4cwd)g!%@^M9oE|c{{)kDq`PPHMpL2 zHAKE3%x_1;ksB2&b$P4_)foA)u%}%TM{ZI?=nk;Hs;0=Fg;VVa9=TZ&sXM|#R3RxY zqA=?Yo1t6V9eqI^AqPu3`?Iw=cNMWG~!dh`-Lxm7{el>t95jFKnHPkzt0 z*9sT}ISW_Cpj3$h4LJgPoq$ECVlA#(N9h)28zuzyZ34D#^}N8UXFG3;GzO8-*k?j_{OJnSVTsHSqL#uew7v! z2bvC1ys^U^PdLd+fN%ZG_~8yqyzzv2E#V9+xvGy+7LPq4T4OwEP9Su##8no`srZx= zmNmvx=Jka0tgNaL%AI)43DH{PX>$_cA}guGDz@luLL3#ln7KxMlA6Fg$4?{N0{6H7Vk39pq&7kP z6MCEOE~~LBV)2nRojg<`v&)=LFtc>v@oHETbxM`U>^5f*9oYoku9HZU)k zvk9+RcdF_ahp+7jo0dfGQRL{XEK60#;)Jz5rzJ_`UleOdKTxcojQ%!NWQ4p ztNXwjsS0wb0-spUM*B;Ge8ME_uc}9jyVqv_II+?GGTO816KlNc^b|n3sy;6Muy*XnkxkZL(T8=@Vr{Bt`k>ZP&ZKU(UO^Y=5O9z>`vk1ZI5VL?%SI@hz*6hogvs&kAb z!E#c*9wqMIM_qH3Y7{65-m!7j%|5gQMQ2c&bU;u=SRA{y`ixIn zg1NIRO?pdE1Mcii)mMB9;m8l#D!nbJ1I5#}>U%!A1i?>TTMbIoaa~C4j_PMVR}*AE z;kSwJq8oH!v3siD`MgLN_({7>{2RJS7ZH2tVD-N~(-VjODh%+qT6-c*v9Gz-y@00ZhVH= zf;Q*`v2E2{NbRw@wHf03=o7j%v8Ssy`d&?xb>qJmKM?HoN{sEU-tPM}vA0|GJ@cXY zG+|@xrRx2@-x6)kVYV|Lna>bXVy{=1`ns==I;Yysd~EI{Y>mBBUGE#dKD%XFrubQO z7eO35SgrSsU*CByC)56S!8t-^?C;g*eRJ23pPR_Eez)kNrHd)A|Sc zitcc%P0dU{)CS7=)Lqu+=w6*97Fpx$7qB7Y{Kzir3v{2ZI2K()^y6>nIG>tj9Y){K zmBzZ(g!pA`7&||bWqpb6*Hy-1Yv_LR4U`M1+13&CrkSc(a*fFE)P|G`mTcoI^DROx zs5(>q?rhLp5bZX;Hs2xC$A;GA_`TgQe8IBY_^0_dLUZiu8VUGKusxz20$L_3o?&oWk{(}EO43c_XPwbwWcYZID z27b~0AO_>S?sBX$`YQ2G2alr_|7^|!yEs5XQc~RTs8+cN_FEAxpA0j$Itdv;Kn~B_u;$le(k~l6U!sr1>wxqu8_X=6MHX=%RhbkLI_8C$Sf5a+bW^IDE;n&-g#{ z-vscM*GRzkg1s!-Z~SEbKp2TN)~J^FZc4dq*>C)8{)aFcYpT&M;cU`e79B87nI{Qv zVjtIZEy>(8eA#lq_{ID`!u!}4HGNCUHeo^JZTxEfOqhtZ)>xLD+LQuTZsRxe7sBs| z_cg;yjGNTIQV$vaReaNZiTzYF4sXD$E1id={|Wvh{1^LQ%`|`8&FCws-_oZ!PH(ee z&#ay6@3k2@pg7E&K4?Rn$({oy>+sD5S1?DIHiHNvlI;Xq>ZHxRS5!xsGX`f8=d#^v zSNb2=Y;zS;zyyOd5zQvlvi%!2M_pAFFl`5sL}#{d?FRo#n+vXD!0kLZo9N08uHEkc zbaU@jM3&cg%DHXs?3LhU{=9kWDndfGQ#!PHv8lB(f0yL2UWtSZ3gtEesA<*yp~?BZ zh(a<_iD@IVMYSFN3CTUZ5^x(Uo!flb8)|#}^OC1}5yuQ^+y(G9e`pJciK~(WujL%G zpCfc72D85h%W!vc_O*#)_H%`9#8CD@#cO|4a>upQBI{hoMQtnD`L!SYKO~QV?$vs)-AAuJQL)is(2GcAOKUM;=1u9d6dO^4I3j~Bhie-rMFUn{BYKcPWV7qQ znVSiUT#MA`IOt8h;MH6k6(CJw9;suTYZ7J*DLVoZw)EVPl#v%IL)tRgPilJt@<6b8X46b0D33&V)H?7zT~+Px+F=0v&uBH>D69{V2_|29W&Vs=@&Gs5T{=R3`{Dq$Yxk z(?C$hw$*@vJSEVWs)nSBfvDuP9cM4E%MP@r4jKED29RPx>ou~jAkaR|b%3fefZ(#N zmCdMA1d>5t*{3p)mBO}m=&oo2nP5z!Rv9SD__h=5b#6;acL4>`kDJ zEKEy`!-6H!5u}jpt#x+;Thds!wAEr?$MtRJ*gHVzcr{H1w>z<)V^UiWdk@$dU!)D( z($+H+e{M_#G~Um?4`E^KMu)~VYFH91HL@Sl)Yf1}@C33u!Tx00+5r|oYl!2HwkPbKx;;xjY#qBZa@@MiaaY@O zc5mIWrKoKb(DPY`2eODGY-62jsqeOwyB2Wm4eln6vQ2O?VSf`f8dnbH5rOIg!n#x2Qhu{E8p8+o5kIj%fPL=H zHqCFMCS%0l0peHoXHdz#-8TH2rOCKz@DOntXF7P{=A>iqiJFaIeIp_`_G(O!Q&s{v z-HdgSM~P6KPzw)E#hd$qPDr5MIcu@l8!XtHDaox zv<=N6f+=mz50NI7h6$MvqBF-=y&>pQdVvW8o8-Y#qAMp@y*=n@dM_Bun6O?UF5-lP zkL+8zjTxh5f^Ce5D7pq~As>~dz8%ycjv7>fZ);FZ4B=#|p9EbJ7Yt(BncTs8 z0EgzP-vm7s_YSJSgf-YmjNlwle+AE#jRm7;@&=oUQJg~cY>-w(SyXx^e^5iDgB;2& zI6R}kf-x`!gIc)bRjGY~lQMcODg#qE*hb`Xmg2*L^D?F^hz_zysc++Rv}#sxT}Igb ziRhW&bt1-dPN>%fcV}eZpXjh(BRok=;QXXc55Aw#c|Qk)OTyDIQ}{)_H+V8*{QkrV z`*p%I#AMDjb#buM_kj;`K!qgiB&Kn0scVCSzt4U!anhJLtBd#}(WKS}Kh@Vhpq?@$ zD!bdh=R5*Qk@)+e2Ysgupdf17$$75s4VHe7P7XLN-5|U`+|Bt@eGl|Of`?tFrAfkH zh(B=tRzC+9km6y`kJ638OT>Mg|Eb@D*vI^^>qqG(A!vIz|EZ^i*ltHZ3OXa*ECdG+ z=ey$$A%yJ$FziT^h1ZBhfC%yop>0=yE=QUoyiP3P%s=iQk_O|DuCvlD!kfejj>qxH zkizZg$3dOaRG|^RL%cy#quVZc+|?;f6W$`$aF&2_=K6NUox(qezj6+NQp9!#`bp4vDF{P| z*EmJT9hMPx2%dDEmu3lH05p^%Y`e>8 zJRY&^2v|4pJ>nckD_j-Zj`OtjP&84&cxZ5p_<(Z?{1}&Z6gMO-BBRlaX~!Rb3LTjm1R3CTrro^rhH73cPG^|H{N z`Ogqwj8IOrSvi*D9pHoLc_z6;-lzQ7_LlPmwS9oJ;J~svV8co- zlMg7T+9o+~jt?!nurvP;#INLo%CBvoITOdnmOb9t^M~YDW=q_^Ft_@0{L`|@o#TH@ z{Azz#IL&)HcLvxE?%R-_r-IDD(WV{2Mb~~0Wg1Sq2p}t zE&hiB>Qk5B*`;|Qx@J5!ILF(K8(N&BA7`QHBAgJIV!05&>fDNY&rljn_JWMY ztJ4YXEN*qZUubgn0F3&?N=NT@F1N8hBJ@Z$5_slfl_R-bz-_DNhPGt0UTFu&gLf$2 zYq+QCgASet^f=-cxmxMdp1|#@&j@`C9C67la*fijJ&Aju%svSexw{wT; z&xK~~9(z4<$9mimxY^v{`WvD0-IPC5?^^2}!`gGWWAzV0&+g6u#I?1-aiw?Bst@%e zp?7v`{uKRY1R|3+;Hm2;Lf`Hl{?qcCv1xFX_hIhz1_Yp`v7@4U#^%A*-XCVzHK1XR znK;^a&j46x?+}l94Wz=z9N8$|BnIenyNv7H;1`yhGXRrLG2|rL%ejjhBEpX3Agy?y zF+0M%oJ(xrhPC9dtXe=TJI1zGbNw1N0ytS_#SeL-(#jwv?r^XNu$S0NS+Rt)R8wSGaa>M?TJRqM^CboBTw>J!h zUC7P<3-OSATDhV90yn2&EbMV^&tH;<j59Mv@kiEKJ>}}y18bknrO?hh>GIkGs@BN5-wjmXWu9~-^ z-;L)6Grga1FEr!;o^|-G<#*%HgFC&SbFad%xZ#$|JL(hhNj|Vuxi=dsR}g*>yz6=* zy&wcoD)+aB<`py;CkH*1_6T#^-yk0}oL-R(kW=kb@h^@)w7=s%Yq-4P2oOv0&y3Q( zz24*8SHL4}_#x_V)iWm0M!i3BQ^SS;E}H*0;t%p=<^J~1+=+%UAcgk)E%}4|tMJ_1 zZ`>~ppH@u%(6jaBAJ$(T54TT?vuT_OP*2MH)aTYKj)3fpLpD0E4A`6Te&o6Js-vXc zF76N-aGU(S9q&_LSbH6hwa<=o1$JiE-m&*1FRa%bi`yOIumHl8@1=Z59k%v4%Gxn7 z`ChZ~?B0wIBg59~j-~Aj;sQaYY1-TIA@!y8hGTiVTU=PD2z439(Mir1CQ^qYLM&qE;n-s@y)UM2AsmH0W3)Mybr8k;a8uAkV>3eOsqdeZeEN)lh@JeHz z`XB0_hP%p!_7!n^8^>WJKlD%Ep9Y{7wy%mi+-MVSpYJ+B9W?-fusu4ixDg#r&PTud zX;f+wwtC0JRWy2r)AAJ)K~||*sDm+5O{0H!TE2Or3qXIucJH{jrp8FX_@O6*#-tV@ zK>FYj;f3q+1%Tj_-WQ(mUK__t_q4m1UoeUJi}_&iWP1&{t1%<|aemLF1Za86)9p!d z7aQ}#Kj%+PA^?4-Jky>W*ViZuci9*AQSyfTSo#0hy4#KF@X&qv9}#cKz@TdvLzcWF zJYiqYN6A|<0Oi^<Sl$iV4>N*c9E7U6OrY)Udg z2I!Xer)9BCwGqJwvZp2{?8k%_Z$q3AfLZYeI;V0b?f()!@IDo{zKQs3*MYIAkxA=c zj=;8xOKG|hAwNI?a+URs<4}87Tt?G_h_eSW07GSc>-ePod|YkIsiI{w@KHEs%cHy;j-{WtQT^*_gH`e{5H zfY+c7Q>LX&8=Ho)(Ia@s=9zbW4yR1JKW$*TWd_NPhiV>(WB^u%Hoe0}WvidXThJUB zDLys&+~6i0ThdR zI&DVBOw}CyLf-P`>`3e3q3PFWbO1F)@4<^~E{L>0LeU2yWOk}Q>#;m~b9toK5tfY( zkztQ<)DwB!=0?Dm$ZQC<8Ayzip2Azxd>U9J12#I_j9HlZdOzOA=F5>sjv#>}k}(_O zq7US41xiTE5!MXd%#1mhh58WQ4j_J9JtCVy_$~u@9{Moep5}LvFOCe%(0!Kya1MP0 z?_l%4k<$UaL9okkzv)>C<~SZQB|O1gclSboa|Y^z#y@BRn0!D zlL~qfRrV}L3lR)N4b3Z8%Qc@7wnz#_Mbh(mTG*M?6@=LqA}N5H(8u#mHYcvW03Zq5 zSrliLk3NCd)ts^VaY2u5AwVEhe)=Td#pe9gp9`jJZD(g>#`%+ydDog}&qp1l%uJg- zwg3Zo2Hrq(_3D758311xbHN1Z(|P9Rw$=QjHhkfn0ar^fX*=(6bJyz3qr)@r&ly-~ zSw;fURCC|zvZGi)91OT&LS?&oqs`{khNFq!U7y?Gu3Dl0f%m?77-$6Q?`ZQn7O8+d z$@|nizB(by^j-HnnTKc<3BUo()1qu8XuDv*0*HVD!27PnA&MXo*mXO|yhKpx=gn*J zjG{>tP}rAYMKn?gZ+?s0<;{`-I~^(mhl$ab^A@#4L>-YJ?Fmq&$1wG_vk5J15G_R6 zSHVit!Xj1kd|Ng|U6K^oJ3-0a!iFAAaLe{6ROos8LPrWT*7Xg%l`Z27CnV$cla5G| z2!2}n9#Y)fraaA7ub5`(0OL?i=G2wj}`!cJta6LPU=4e1nb zearc%+`@6>q!SVv+oZF+EiL^~RfU1Ga-EUBqC`?R@B5ZVQQc6ko^(d~i8hcf@OHP1 zM%{;|bnblQ646H3weD;A6g62mK5KG*26fJ6{S{cg&WuJuhdFJ*m_H^(-^Y`+I7bH@ z%b5LY!B_w$Rj*khZ^1`%j%lD>JP>F}Bi-iJwFE_H9vglOFNTwxoiaTK#bK!j2FXC@6X7p>JzFHZJpDNDH5f2jidgf~c+ugOe9}kW+mDJ=$=1oA+^Kntnyg~rnsSfJD@xHeBxK0+0&ztl>Mv9=5$)BOIqdFA_ zI^=pHSBs!v$=BnZsR7WZeC0W|8Y9u$@zEM0m0#T9kmfZOg@GP6-&GSr%_<&qc;z(~ zje*uA9}6mOc`*f*h8?3~WO@vrxl=?vRh)vlj~$>{N=VQ!)TDx}TZ4*+7`LU2HYW{HJ7PJq)0~sj7u?f`au3x&0XLgupD*73=ZbF zK7_wR^Ne~`Dsv=wXK*nM`Y`?;%{wTe4LIt&GvY9C4Dt_Z{-qY~o`!LPFB3~MDT-gH znN4$-MPaH)EWSlUqVvl%ZnSV&0mcccT^23;X_dwYid(&yDl$uGX@g5(1Aw;=$ZVXP zC@c}g?60A;8Wyci7Uon)p+JL5AJ0FjNu*tnBM+!q(;VrvzbbBaK(1JSBRVIBap8;ETG87`N2X%;5PJ4PL?20S`M`oMn)q3EiL zK#$xAY5f#4SuyT0 zxe9q$G>tr6FhgqxG2uYZ+(_gRkqy~aFiX3D5nP$=IT?v85J93>;HV`r;ww8nbAgj2 zf_ScAp>{bVw{qNbay3#SvLmAeIEdC(RR((HMp5h#NCQSd(XL^ft<3Ox1+iGnZ1T}r z0g!^d1EJS=h`3tjklh5K+8oB)%8nUVqdSUJ^9&w>NNwjlTR9risIp=aii{J)K-QEX z7ht=oGDwn=y#;aFW(ExcFTpe!#6rnT`!(9rkOCcm1WZN=1~Q(4joQnMBXT4pI5SEy z&`uI;g?wfUL^*Wyj55qZLx^C9_8H?UWGe|V8RZyvLzrNX_8sGed;q6|TqMTB5Ft3I z{g*Lafy5IS8I>5wGzyMs=Q6z%EPUFh)etZx(*(?uCZEM!yaRDtAMi*IRb znZe3z;v^fX76p;TFs{}^WUZ5!%Rzz$oD73b?Rm(bjT0w1$a)c^%LFgA{md$5pm#18 z2`VabuHY~2BWAZU8-ifSM$t-02%S%S%`_=Hywf1ng#kP=M20>xKPbl_qBVA{cNO`t zAbO7t%UX}aU#1b!$R&dLI)4a0 znMvJzS*s`pTn8SyNLHZ=O%4{wHaaj33IS2aWwk&eNhiqAVPeTevwU?MSeGDP!xP6;;XdLS$_MX_B&IjMpuj38Avz^bbX zTU@w?0=X7Lw_v+&h;^YVf3fXa%4y6mUKa$rb)&5NRRw>ftQ|Xz*=V>Z$k%;jeW)5+ z{0j0Un9YVOf&$%4NQ+Q>($>jY!zBlRpdo(T&F5 zujyQpy9o&kbMiOA7u~1WNmz$ZZbDuW9VSl~&StM2@(7TPt*3}9Ex>ID=RiBHUg?_Ngy;>^^AZ*FFVfjjM6$ZC$XFsj&4XA>knx&k) zNEqI>pZ%@YCh+=cT)(Q);3cHC$zWp|7Fd`{F{)r6DrC2**`am$fwpOs0TnDag`&0& zc0yebtS%|HRMiGw;RaYt`euFzoJ>RB7S)migj?GB*;RFcOLMm(?}*goVBz<$GVHGF z?R*IvLQK73xiGu!HSGU7mZohRyNdzK2jt^E!ZL4c>8ovHzhRmUk-~zunH-dw5|oxc zb`PU5P=&HKXHI}RBj{E7mUv?xPY2r4cIBlSb^GN$sYQ(PQbIU zKp%YBk-%5QO?y(WSpd?6_0q1kEH-c$P$IXl;r=c zaCym&z2~nxZGZss{`{fK)j*dLJiyf%8#JJO^SRn3FVMZ@;NI@*cQ!!BI)|TkyIc?4 z01)r7>q8qf$2tL??Q$z{8;~hl6*9`aj|)Ct1!aPPy8ssLQb_hv9T$vTeO6WycxJ~f z04(Qtd9t~Byv9WsNGy@>!KJRlW4`c#Bw-97^ z@#1h}&(rvdz{rvTfX*gvGy_FfS6`OZ1|Bcb@9i(F+sHYA1VCz8V_@>BlIguuh0`0& z04#d-O<8N;*%FI=3qd^)2SA)xhssoey_X#JdESTx{Wul?uXK4Bc%@|ZJ_w+Z>;#Li z_+gjsz-uMz_pt%AXiTt}#D8=Fz#&L2;N9>5{T~*_=bqP}2MS6E`{V%h(^_yf1ggxqed9Oun{@zvv-?u^CQw6iv;*K$puR-APkxgHGOhK$>;O^}I8idZ@99m!Kg?wPZ@b@RKY@r6#!2b_~stuBNgLF)m z85|}+;9W~;`&(~uw>bm20d6I5#IGwo0>FgMZAE8TbKn3fz;7u%z2D@v1poqAbKy1u zC;U#Z<}bgE^Da8e0!zGL6@G8&js4qhbG@B8ED+TuVE90#qW#p{O0aL^U>XF{6;CZ~ z*q?OUbUQp92g19M9(ZPH*Zx8f?#4^UfyEcO4j)zea)0CPG?4g&o2OZf1WRk_=>Eam z%I!R`k!qGAx8RdXfA0Tv+Z3#qIBU%^5J15J%j1$e-aB|1IItQbcjC{NF7{72nYhC& z6KTr>YIqP)L0-Chn_vesQ*R4jCGf)+fTb<}-rF4-u%l`Ihun|9UAn{n_LPH<4_5#d zE``;=_CK!U~DhCzyfwqK^*>5=_~(MFoHW@ zWG#hn79`@om45Pnd$;r7qKmA*;Qt6t&H(w}D9) zw_M|mOvhW5Ee_axFKrk6G7f~aAi+>th7O?KQ|{t{kyEo1c>%wqY*RqeJ=5KAFh6Q` zA#?D~WqtvL_q=!Wa&XR?CuKZ5x{Mr93r0OCf9@&>Om_G+Wn9#gdjjAr(655;660^@Z_?pfS4jZP6y@`I7uMGCo{_MJF<(Md?7yWYHE<60v}%117;>N&{qn8 zHd0WHk1iVucvw{6>ys-0r>8zeE5IV!apq%Ir~me_3T#{!N)OFf+p%9GTorPy+HR z{zKW5z@n0XeTp0U>vK*DzTrQWy$WnC;qG$=hZ#IcFpd9K_9^gfN$0*Ia5BM@1z}dd zz(Mq@#B@LW77iRUAhE?vV2NJ>4iVlhf!oK5FA zAYms#BSuo7TETH>OfUrgwv(ulB1558!CA;k=tO`-og|GMc@T*4uR`LHAc9KNS@~}T zXaj#NxCQwLa|oVdE*VlFBcNVE{Mk_O1B=95*5fMV5ol1*03``ciEv5h#?vOdkqYf>&uFL=fCXERs&9r^DL?8IY}T6~SL5ATi~72E0R% z4LJ(e5n@Do68pc02Q>GQm!Rds9fb2Dry!`j^B`~Y*(=a$VE~~_L=IAw3z$5$AQ!?4 z8Nggn5ad%K2;+4Nu0iXCAFsX#ZUaRH7yQ?eH=*Qzgee3wu`SuNk{b>^McxHw{7VF9 zaR6CS$vq4`LzY1MgclsQfp^DQ!D7KR0s%x2N(gjuC%H($ih%bDBoIy5L`W4|1Upx; zBH{glawtsrh;Uns3ofc+MZsSPs-PpnSArsDt8!p9pWooxw%btfTPP zf+py+@HfFkVnK1PVMW8=3Y1VfsPA1a!BL88STXQ-f)40{a4B({giCR*WyQjE;4|P0 zU5Ru_C#9&CbqxMN@Cdpg+(Jy1SWunoSjXWbz;;nA+)HfTxfOg$IJQQQ)Iwq*h1e(w zsGV7ljN^?8`k_i8i`XxzqjKtzCwQL(gHVGokvJvEnKe;w5f6PqzJ=O^8AQ0$gT`*K zNPs4gI!GX~qVNL}(H@0zDI!5+P|hjooN*68Z)V8ZU%3;G>_Q85=E5LEn)g z+aX~G@v;;dQuM!;Q<^E{HoK3&0#YU=hp3taNxUC||DZ3zA>ipK2=QqaoaX%!{D8iL zZ_9`@jjU+akIeZa_znFQ{wA8pEJB@ISSfH5p($auXdY>~3>R9|!b*kD1mCB5qNSv5 zGH$4ID=Q6dCbS?RM6M*dtTVKzm30O_M>vnLRJ4VZDzl(FD_LjZ=0aP-l(!$LQ07hN zDRCSPbOug9i^!x}St8x64Vlif6fPvJ1>ebjSsk6zhCIicCtO0eWKw${M zq8bugKEW`m^m}X^gjfPY)Iqu|M;>5y=(FLD!nFjJNK2B-SqF3-o#QQwQ0u`r|2?T& ze&+ymzw?4-32GA|K{QDklMfv*BGY&6{R{OEAz3sd$gJGH7w|Y0i}nWHF2^y8I$1n8N=P6`M6{sRaxPQ%W-DKVMv)0)sjQ&>@;W9*jm+h_ z3aNw!QDV?k`83n43z^5m3h9J)5jSXIg;yA-3z^URvY1Iwi}HdtuL=*-b?NirYlY#2 z9#L_SKX^u&-TDIfI$mAB`4C%gXf~rx5vD|wL1Ps|hcu5nZ)*NQr4UTSv&dGJ zPT|lK3#)99+D(`Xo_m){a=7Y=;5Ki&@EpNf>;z0e1>rtV1$THp!YqP=*n@nyav)sw z6clRnXI~^F|0Ui^=2Y4q_Uz%_(@gVn2&=?nrx!5U^zc$mBRgncL+Ph7s$&MI9AbfRvA1{ zSPW!PH^|!*T$XMzPN2b~1O!MdB2yJg7Egl{Y6vI^fhukwCn-!L;98tWLjvh#OmP>v zP~jcH1AZk98C6Ay62BxjD$>9ag_CF~s5$~$JW3u^C?j~iIH`t)Y9b_wf0BPGOe5ia zIGH9Cr6h2~mcdJ^yd!yiIJt&_>LAcE9fLPiB}SU{Bg=UQg%1f=#mL~Gs=7!{KeB=s zChR6$7kdRKR82>k4InFd;lihcd*Iy52c_bi0i=S*0xwo1CI{D6B}SROKvwZ0h5dv| zF)O&gsxFH20$I&FA{-<%h!caSsvO^qzp$u*im$u@&Z_ian`-0{=1YAIJXZLg&?)8z zyMwb+_flUAKQ3Id`>FU|@Sf^B;CAY))38yagnn^la8&is5zSy{z2*e!3picdgU?qx z9fe+XHfR!1lY|lR^I&l`OaC~@ta^(bO_Zb>(-`;=u3eKM^xd)&9P0TsUNM{@q>9HC z!ii`JnNnMm7-RMh*}=;eE+np%uqd8uGMKOvJ!@KHi645-tPA zvUG|~Ei#t*UjG1|1Dw=O=dMyPwTxKJ`_6}&E2z~(f5|<{p4vOHkgl^+!$YBoUHo#2 z?$480g^sI+a#3!?5J?M#Q)_$7bC}x&<)hXR4@sVYyCmS4Vwl?vT|@m%JSurZQPt)g z^ZdYl1c9b-;t9zY%G8+$$BI6%9>Z^f+vc?7H^rpR;<)oi))V+`p*JyIGLO2v4tKoh zBkL&~q&N{TNS0E!)p3tIkFa{+MM4~rFL9;jla$AKBe-XpV$@#HQNM|rRAv7LD zrKkX6k;IQ$Sm({=>2Vs307W2*B@}97T^bv1z-cui6q%@yL{bOqlx&`XrMf5)Qi%ggeN;t#>!k!5ci{*R#U0(KYs9~$ z(KKB{PlDnr_XG48b(8pyG=*l?Xq)Ic$^8gDMcpO-E4@T>2EIbYBo|!as1o8n=`EU1 zV@{%{k*kL^C?Sz3mC=}uJ&6h<*8ugRq{I+u3ysrgd(!h8cNFSJRS*wJpU{dL15PTw zalx&RswN(lzM-iab545x$NdBiqUwn!q+e*d#-5Xk|G1x_*QjPS(EK4&+ptX z&|6d+@to8;#JMTpl;S&g9D0YkPrN8y7UI*CbINmyI|1oXYGSSw8^UbrIi;B5euX}u z9usd$w}x<KU;_x<90-DIkgWl4XP&gj%9RN(*Ui;wCx&V10v+2?vN( z(jy^nn>v$FgQ5kw1Cgh2tRXu`?vU z*(;gz8~KYjEi@8Gr2`?g&56loe~`aDZHGJL4Gg^{W;RhwyH zXa|xzaD;ZZ+)0IIs%LAh(2GeMWXD6tT82_JGu3mn^U=$|By~2_s?{kCnx&qrwLz~W z?Ur2)#k4ZgG_%y^+6AEd#9wwVbWiJ@G{{VCp@pN-q$Ps#(8H|*X(}@zjBhV;BZbP8 zp_#3YXMAQ0E%^&YYe?a;p3t&Z@)@R0suf`o`ft)v*_%*RYt9+ZIa%`vOVArhCuCnj zb*(*T6mzoX6aGT~LrRv-pqnYD^Hnvw3%7*VG@*!DgI?z3p zv1g5QVYY;o=-s3%vek4*S$>vn4qHH21>CLIWb5f{<-}Q|In0i*8Vx8}5VOKldT`hl zz9&tPB0R}H15Xz#861s;8m>j5NhG=KAiZ08hXcXX2rULp0aM{|`j~Qvqk*aIwQlH8 zQj2RE-Mq~)-N#bsz;_oN0D1p8beA@Ax(dvV{55Dd@5i!RAb-@NW~EhxBf=95l3JOB zPH*c>FS3eQg!o%@g!D?*L{DwAIOjYsVliTaD3+8wEPF)1-G)0?G%sQaV)ueL(wOWe zy|FFr9DKfdUd|>_0%;O#Nd0Yf=Q#6GfAP17l1M+nG&x=NJuySoF~^Cp1DJUi$X7F<_PR-ijll`AQXJzVa4bBKZQ69-d9>#duF34mqFswrC z6SK~?fOjJ0>l3hK;T63mZvjpR7ft<&afH*s6i4=&S$u*SX`Z*!3BW_Q*nU2 znBlJyaG7ue5_0o297)70Qx@ZqI}r_pN^bt&xKhY1SVQd%9UfmFy51`SeUhja0vaF zbW^_d0H?$Dyr*NnQeJl;;r{dmv!y7|ZZ8@K;jon?J@mcTzP`b8R__x*tJ z{=`M&U$Cu&6tqdu%<{Ph;SW46v6sQN5z^3RL7p*)gYFMlmvqYv+Yo0#a;|Ops)POy z1eci04c>@!ktMKluR9p?Kz~WM+^`*yA+io~D&KkV@&n{$rjua@0wfFvAG^kMgjCPag;_GglaPA})v)2YHpp9UOn4zpPtf_!n_Wv@FQGJpG`}Lu3wf zrC}E$N3=2sSI$4^4z?BDO2cl%Rna1>fBC(Gdmi4&ft=MiEf0+j3M#KW81--{N8_ya z)#jpsowL0C;Q5D6SD;mDKW#pmU>;uHbFl0o`HBiyY53Pfe+NaE4;_5?u;7Xh*m(Gb zqK!fEcmKt|vZWugFJ z1>DQL-HGEB0gweD6cK_Xf-S1!jDMdjCt*g>P^1I$`=Vy>ARipFmc zB?L{DZz_GRF3)AV!9oa4=%k<@<=>e`^+c}G4HimhL8k`Ite6`H@AAlFV_|fH64>%# z6%JvZU9ovaEQ~>DM`s2ts8}5ab(QC_-C+j^9q98xiz?QKvAZVnjP9_5ga_!$K`SbD zh4H#P^4T6RCZQ9}3qn|7@-TDAGD@I0(;UW$Y-uGgdrY@t_OKl#D$H6 ztx>nea0u~4bSucaB0bEe8(F|yYY5k-uD%zvyW(mXrkhcqS*t#*eFlV;{vaY~PxqYy z$WzVIYS5yfAdnXj)jd?8@l;1>d(pBWdPRHK`EI9c&^mRbwjW&yf+3!ViMtusH0#t+ z+85{=u!_D9>+ZgD4f)hnx~BPCeN_7z-4e9sw&@}BM~>Hhz_QAJ zD{2eM0O1lYkI2_m>xD7=ccS}2mnxhN?S52n-DiU^mah}3gT&!ju+H{ehxZ;hhWH?Q z6m+9v%c0aq7KP4U5yufD0HrFf*n8;qBOC}ah+rcOVBwWi&Z?o@6);G~u(94RtLkW+kZ4>0ppy8YtvG13V&G8iJ|F`H@(9eqL zLsO5ZZ<=jIrSNBnO~|tXkNZnM2%9D)S~PDWLd!WB$v6Lh_o*@NmtO^4sj~uycfYm?h+mmGR-mClj}g+hG|5YY_CXy)q*l{?y|R zdj|}}^J6Uk##Qpe-Ji1V=yn(~5q9F$% z%OHVbPtTou&~7ydr^5J=^DEaLj_Mf#AxP>g+W%qp1K455;qyICMG#JXRqF!es%4e< z!{Q#VlWjO5kB<@)$+Aku;fFm1MNl1wPrzV;$;s7~(T8PepvhoP-m;>bdmE^W%&v3;>ei8YIHR3Sxqe{EGo1Uc=`{b`G;I9=QCO@wf91eO` zSIpUiy2f88jv~LTtUH|WY`WNNFX}oU_{zxd0o;-Q%&Ua6SH0HX3&SQGD*FyAo{{a} z?G>);+=z)Mk5|4w+zrCUp?&Hb+Rd0#zayks?M(f}ObE74Lgb!4_;lr^YP3VB3dsg{Om0%*@q)-R2z2u|{qX+tqe zGDl$03g~F zk)$;h!^yst+Hgz{z_9%y3bo#19*8K>vM^e*SV4(s)TW8y!M;`6NRauiP<)x$uf@%d z4u(||j(`x8dPRJMQ9B_v2E%Fy(U`a7Hbn*inLH$H3apk8i_wwQio6KV-dKr|0;?k& z$BdAlDM|scP%dFpVfBPKjIGyzqADV$S1-{~4fTk4@fY%tq9fvRFH*{+85$6Y;z_bz zp^cFDrrml*Q#Wc)V!o5d74IXud+$i05OtF_3GKB2-EeyVt8@Z75MZ!7x(WQx$NR>B#~oZ$IY%Oc?%uFRPpp+s;1VvneDjimQ= z%8KX_ZHRN?dBLOjO_51`rgAvLw_Tfou?=3j0vDOz=OyPbP%1tbye;S|a%62^qTK8N zs)L^`UKqRI=z6rVU0PF$b5@vbu_NolP3wV^X55gW2 zaxl)|t<8({?2j!s9)xugu3}t*1FK3Sq5kr6HWQ{M@WF!`TvZdv?w=?(GGSeWJdAtr zfvN|Qync@gb{MRiP=N6aj;QL3RP@JI7{g$X2-h(if{#^wjMVg(SFjJk9usbW=$MmL z-y@Cv6BWiouqT9Dm~Fvls^&(OtwvTd!wpXmcf>n_xmAcL_W@R=F5K`GaZkJ}IHzh= zl>dOBl6lzBgD4jJ1t%9&t&55o&{ygX8=fIbfneVH){dz215OHvrGBn0!{CFR=6(xMZ zuNEH-ep984%6#Ei?Q=xlXH=UWF@Nb;;}b1>!*3Oz37%VRd&K1>xkeQ&e9LbW zp9{9Gb~>{AWkHQkjBtpr5@!WFRC^pb{Bod16(fAdzc0QRysX;$Najn&S|5N@B5YS( z2|gaS_sH#+xZ0xF2pvKVfJ@hE+L6|m+*;>j5yOaXaX~Pe8hK>!rLvZH%=d%#5#~nl zd1T^|sh88WX2($<`A;Cs57!*ql7+;JorHMgCo2_k9u|-Y>Y4f)N>KleMc07 zvGv9{*eAkEOl|P7>W=^~Ew9&6hCd-*i5r3wt4k+G2ZsQFs{X8fjcEx^t)6w%>XlOi z6tDiGeGAIvGOO*5VqP&CH1XH?0Iy&^a2Hf9+K225|Tv^w;t>Qzpo=gF*Z zgfYyE;Ogq=qq(%;n>|lw{Ul6b zz6O7&esZ*R>8@rDdD}1Ts_Vw!(dvn7m9Jx)ji+J1`DWL@2TxQFAAR~-(9BFW{6_p1 z{|uh4{&sZywZ2)GZ1|%MLd>9;)Xa*udgIgrrKo50nz+uQnAdDcTm6RIqDm2(HJ2=) ztOf{k*&A}JDotqCdl5Eky=x6Ex)ngq&SxTK+grI-`+3$xMi0JGw(`#S&gq@!x|FiH z=2Y~rH>OJXS>L(6)~-$fl+KR6owr`eIg2vSwUszivajX=lsZ;vJPWfR+PS(=0&7a6 zP3Dy;nH+Gy5CWx*mcM1S z>Cz2W_KRIF_{D%!sP4CS+MsjldA&SXT&C}2dbH;VdR`G9xXcSY|`*9(*-wVPs--kUyz=lHJd-6bhpx3U%& zoB!VHAtwjroQsq2DCk;pZ0-BRhh|q$t8)D$`INP_Tc19EU;dDN1@=E8aFtUw*2c%W zKl}Jlcg65O`~8wz6z|&fqn0|SPUxz7wY{8om$IuiC)Pzr?o?eBy5t5*N+|mQ!LVCb z(CNbyB6A^$5TIn`v4?d7ohqIXl?zZ zu%wz2T{{Fq!3xwqxkA@ms-&J0Upo;yq8m`Fa)oZWA(CcFO0DTJ^I^v>pFANpmo90e zWB}H}WtiNh$`iWh9+2FpT&i_CwtKjs%j|EC2a)NjrsURQk1>aPx)k|YfY)$+Ou1RR z^%!TEC0bDsvDSW@T@N5S{Eih4dw25+d_8+vu3Cz?mU66dIISCg&39dIr0W1hQ5$(| zaM)rr6;L6$Mo3ZW+V97VA0{3f zZ^E_`Q(R4`GwbFahkx{V!oCIDMoe=xqr&POj(dKLePX-?^Cq5k1vRjs9|!ta{)BxS zww;&`a@7{qmF|!JsDGlnZP;#~A+ZKQYdb-M4)Q7Uj$wyAS7Jv+g3(P5SRCCQgO7c- z#DVHj7k2#VN5NC(UBgcM3zEfDue!M7;~(`;b$1Q_+Fz0^qk7k+AGaAn_Au`mcG>4h zR#I_w{NwI`_|e@n?6$uuSxpV7D?aWIlnKlt1J0f=K~s~-byde>M)WHP`jjn7a4JyGQOkgG$tUdkbARQ4{JW zkB^NEJ<|a5ZtqRkt<==IS!^r4({rd)y}$Q1C^*doDsYUR0r(}gfA3w_UDV5U2VuMP z1eIh~NvBrSg#(#IxrQx-5s852qSn{NvyJ)*jZp|A5oNA) zYFk|fV6i;3Y>|*=T`oCD?X2Uo-3=_QPGktOuatySd+LgTK}w)yiVbA@D!_9M)K#%# z40^5R(F1U&xkgjp*0rw26z0s`;E21c(&qNe8JO8NGm>)xyx=z5a+U)>kB4n*Q9q*)=vX4houpSsHTGe#}?oMjQA_N|gM>g@V?amz<>eMPbe zx_z4@ojR|6Y23C^ZlAL}f{~k!;2*iN4@)bvt3ZY2c1iN7YwJ%h(~Oq)vnybSh>u(g zsf#Yf#f^{Z`*jtDL-tQVxw?0KdYsJ|a)4QBD1Q9Z^&VAHmJ{bPMjlXA3J>Q#lLWi$ zt7pvGI>sGvRz$GuH4*`pP%nw2k97_dDI%PoYh5MaZEuK68Z&*Nd9XS%w@)Ic9<1+- zQ@v%XEQd#xdIQbasg|5mFW&hH3o_$RH`?&70J1?MW^^x8|*9K}rz20(U zY~Y2eT6i?~wWOJvQg3>~{FCELpBiCw?psM4b%nY03Fl7%FBLUefGTvoPrX>b?1ay! zoR^-pS+PW&EBGwxu_u_HdR{7OvyKrzxIU)dtlxTq^T~G5vo7m6am4i*wWNOki6Y=d zP}F4scG0z$Dy6GpMM~IzjyG`kML~d-{aQXNy

    l;oaeKvg!Z}L6W`yEtY>FT>q6n^%8&1>>a>YaA|Mjfkvd7|-i+G}{T z@9Ey3uG4_j96d4kS^1jR?3>*C+x0i~SN+cuzdoD3fw%ak^v-ZIrI|HY#xMEe{f5`# zo7!vYHk)SEusDA6m$WzVR^PPVS#B1921UnHzbN1ET7A#tdP=NliyOS+6TVEpF;hk? z+B4V9hPI+%S3K{F$6K}%#vxj`!D*-lQoQ0z>|3J}mQJ*ETS!YDIujQE^o!svvn}iQ zLo2t%v<)DLaqP>`TTPq#TZ)3%N_A8)@+k6Y(SC1MgITvCaKU`VTFo z!8E~q!h6W$LDnVWa<}cYa}CxB&LAOD@gVCmafREzwB_5DCTyGFg2>2-9D8Re4uG$& z3G|81_eBpQuGs%ix|epNVM{{lgoVzzGvcbf3t)YV8}=sLp1|pfIwN@YC@Fy^X`m&v zPH=V3>Il9)MoOmX(jyZFCzOB}_RZ~eb)(T58%`zsnlK%PclqY^V%-=tRYP{dlCR#w zye{ATUJti0T6e?sgw0>mhT+}51-)xQ(U}H-z|^nGVP3cIwcd4ZM`(i$4GBqKO+UaN z`Cji`?-mQV<*tOnuihVck9-Szz1-qxV+}788o#D}fIs%V(Ywhl5y-Zhu?JR6^mEInt!WHT)J&F-u%E$7a!qru)4Uqv62~X?Bf4jX68rst z^!9E{PqZ;2^~~pnQu_dqIge}PC)z~N^_u7EGUETFCA9sGcM^9S3-m@PLqLSwgtXm% zNfPPCPJNLkLTFEvO2E6^l$dI?FgR-?MD{^I3>VgDy}i)rZBSiBiF3(P1ue31ATbFa zV=!uA5+cQ|mUax3$7zh^26it@N~F0p(oQzgOurcQ23@Z~Y99)?_O!;?CvCnVN11&F znLR_=PUAKrPP%_%jq3Uga{Gf)N4v|7D^KnL1$0oqy1bX^)3TW3*t*=Y_B;H%j_~ zR?`@Ja^%~7qho0W$sz2c}TKd z6Y^Bh_qs0}pf$)%ms*7^Zt^;n@EwVrcnfPMX1LjetZ3SGiuc`PoIM0n5xH*g5LDA8 zqWn8+TsLG;*=I`~LOhznPCflD7-zmSbl6{zE)MZ(iaRy_T|cgSXSi>F3FsBPo6=9& zOd%(j?+p*^bEGRna83ME?o+G@-Fw4B`>WE`ApuRrr~Ib`6GfQT&R(7yIwYv6@>JB+ z(1b>(R`=$*VMFLm?WfL9IemqO)m^>$pi%uWNOBcVF}`Ys)!n_<+}4N0G`&C7J#`0& zAk>d~3*9z_Bs5K)8k-vWs`;RP+Z!+Hd6gb;BPC8=>b4M;6~wY?%Ya)_cSGHGyHY2+DvdwV5r zw2;Q8Q%S$3O~1iMefxT4ZVVvw%uZVJ!}}W#gwXbuyM={xH(gKK{38vhGkgbnD?u@$ zrb(1U{h|EE8}oh9Tjh2nWU#3rDd~slfACMfFMDg;VncLIT}g$YVV?KNcd)n4EiPoN z>19&mk2E0Y@O{3N<=k!SLh2Wa`r`>dnIT?A~2if>tC#20SWAxE3voL2qH`QiCr7Er6W)rXvD{&HFef_)YL zWql^Tc54nvZk~~B_S^QS=l85H#J6s3A?KQ{lbwGD{8W6;8YjMUyB~6~d0Dd0@0_2W zQ&|&4otru&w;7wv{N3|YF_ra|_`&UQ$j#=hK=ESx%X2zwk~re_ETp7)e{#|9fM1H~ zEF;n2)*B*i4oy~p_+ZZ;S>K3bZZATro1>F;zk7Zueq{ZZ8_s_f($su9+2oJKZ|9#8 z-|fexLm?f_7m}C%!Tm1!88K!5Ra)cJ-F!WH^PjZe@L#^uy_0VG5KXfP46@4KykEXQ zdcV1S3K?u}NKX1=`Un2o_h;{Sw}}wQt1~(OkJlg0Z`7~cX{j+}w0R)8_D|v;vp=Zc zxj&^-A(PGei_of9%)0{t8L{(fmEx_-Epe@egbUX$ICLbY{!k6!?raGva1g znvhIE(lM;XA;o4x_>AEhqb3fsWOG6E@v0R68NwN1CZnbfvt^c{jxFm_Vt{;S*kp93 z!(5qls8h?%l*=}?LW+Dwgvqe!sF{PM%pugHB`oFXjI4do%&yse zR@lX%8(NO1jLmpwqMg|_r*A%XS?IQwvnf_4D@+Nqy5{!TU{{9jZn>I*F*#tWoz-RD zw*b2uXoBvg>@m4(N-!Jsy$YA1fJCJ{<*>;M(+)EcEYDu%78=^3OvyA^G;=3V4dpGA ztqBcp=}9Rw37*+8TV$2DNcMMVbjwi6Lz8PWcg_*b%UdGb7#iO)kuqZPVrIu2(fqu> zWdDSww3w!vn=YEQ69|p+mdmz>X0+I*x|jyf>X<9C$y&lRkzBBWp(QQ*Q;SUR2HdlVggc;Q zgiuKfEw$A&%WM@a65)W6kwdFmj-ZM{>q`iZij27C|ayr#y=Eh+=OFxG`ENDel zwPdF*nYn#7-_mbkp9eM!=$qz!T0isTY{LCHj-<8N!=cYwN`c^MV;{xjMuzsc zRHjDFd2uS=-I|AR4<5hvfq$7A385)){le0>4##e%OLg&(_Ga z!C7tQ`~`j>1P^;7baU&ev|qDkS|IHFKw1oFiS=pCPFrHO-GXoD=h7E|Ee7JP>uH7Jv6%p+i5Ry&7;cdL*rW~(nic)z&ie4 z5w>g=I0{;4oH3idz;c~KHkL%kwuPQ+wLarKJJ7PqA={mF0DC|5V(T)X8M|V+Zeg|u ziHTK*TA^Lf&}XYHix)<&aX2J<6ndj|%bC>KFsoIL=)Bf&Y!A@*`<*GAz1@oM7+IOk z0&->%keSuaK4~?35qe!-q^v)*61V{RXV+V$1KnBP5!qm9Lu=xhsoALF@kN&FNzvH1 zp>3@hz$dU~UfklY+F7xnBB8UDf5v@I#Ju6fqZ=HKgW~3%*5Wh%z)29cWYo(cPBt2v zJkVNoCT5Od-tdyqjSlfZyf)O@apv+I)cmleqnjKOWs{-$R_z)2oQV0uOGh_5oRWPH zooKybzCl+of9GG3r?)3ze}w+m`sIvn&a?Sde`N!`8}?7=pVk>?2e-|&)_(Nf+LwYg z1p+wBvxE6w*6GX8+w#(6W^_xX!Pg>7jj`q$wD>J9tDUoM`=GI%MFGp|BOP5*E z7Xyi0!rUL$vz^d8@-jf%=}IN;Z2sJhHmj~#_>j0*I31-VomI>|X7kO-5)}4=sPr|; z@Uxn^6*h4zEdM24z%HS0RK^2U-B+7$D=c@BE@45Dn=%6!C)U`;t+d=t%E3C*?{5zc zMw=h7)voN?-FF3~RQZD@q&?<$Z3)g@xIP{hO%GC5o{chpXRCGY^6h&hT4NHTY&pv@ zU$9^uNbx4+W7p6RDW9AzG7nr(wJIA(^{{`_k1F4sRheH|uXTy+(jNkwKL&OHp+$EE^;KZQ=}(pSID24s5d=&Zxle(Or1vW; zIZ?28KxNn!+*gf_roUCTbI!xA+}!FaqU6=ej?q6Vdq7mcGmYFen@R$p0{ye{4MzpL zV!zHUn?`EHf=OHXg`G_r$7p8llnR%Tu9vuzTjldc4K_AL{ zBrBwEYHQhJwEVj8+ZxMo(i7}$`u4Vrbhyt7nc?p4ky3_j?jLt*t3N)e5#~)w;+?hkjW( zJ*@3f`fV%UMaAnPqa0pfZ*Gffdzs#7bq0tm{f_j##MaT-ZKLUfR&9&;fBPNndxdSH zC$;@d|7A6EF=D-6bl)4S5*U0e&n=m^eKCK%UrgT+wu64YZSlFy^UeTWreAE|du%72 z*M>evo!7RQzrpWV-!S$Oy|8W5xukhBmms|Sj`w}U_J9H!zjKB2)CV|TXm*}nrU6<* z^10f1Czs6Lh>pv`Ie^XN&3@3JrSp|%dt-TiL8|CX*(eN)&;`bgXJbK?02{?cygO6vQ8{Z1cm z`|Wt!BImDl|74#g{lfmB|JU~AoNoTJzpDPpPA2`q{-OVAn~`B=yT4W!buI*=Zy*cNoLI9h%6ml5$1AR#;W$c8Mm!{mlu0SavWfC1jDtRmeFdRwS3j~$aDuQpi^Df zek9|qwR(B+_Q-P%^W{q!TiQ=&nAp@;rp;TGK~k2D`+K*iXV}=FoWgdDW;oc&S2A$z z{0w)S2&ds4qnQqNK-wD6UYy}?BXkP$8Ra@4$lw@$C~CBQ`Hq zbo?v2nD>|bA4W>MX{NdDqLn*=UN&#Jd^;nf-8R$3Hh5*nF45(@74ARgUu<8NxuiJ* zwD?8lI5^9341T+7=ELo+EBU+quJo;P-^(a$-;|kTI}`MF`CaW>?H<4=YWK@5wB7E^ z$NBO4knRMAxSf*OXnV#P;p@lmL%RoAR00uhziqv9x-U96&s9!kG_=>OGTMH1{^o0$ zN5Z<(8Ex$uneYW`R>k>Q<^!4T1JllSey00^h*h(7o%wxh+{1xx_g?0n1$S2w_H-5W zdAdh3`r9irqZYgak=y56_J{WxO;bWw;G9QdDhZ&zX8 zM)!Ci^?je&4cgxcAp5j$v->GVEpsAsWWkI7b?g(}%=<^4%$T7%(mcygtmu{zCUF;uu*Wq9J z1;&r!P242AnJ$O`zk7YV+;bStDnD+a-FBDsPpG0ioSer%tH|71yOS=n1JT8Ke)4?A zTA(oQx2tza4@8&bfjD5sCRHML%I=5DY&^O&59H>7o_a2KA$%jSx}!nCm%NDKrz+rX zfS*Lp2BzaYVD@F;fhai$UXM(N(84@|T+E=T>bME;AIRCjBA5rPd5nXqPHsMYBPyMM z7Uz-W3Pz-AfLjYciJA=zJ$V#)E#o-QG55pkQRzgqG>;~4WSmk>bEn`xP_s#BSzf5T zl|jv&n*~R#LB|1wHVG)B8CfcaEKkHS^f!`aISD9V8Oc{vtAX~p0v#7*3DlA9K$WOk zpT$OeMSlyj1nM{UrwsEMJF_kWS78`=w9uat=2_1 zDJ7e0WSf+0iHXfFLJ{V+xf{Ee9lrFmb&hIbi5k8;KIq&!D`Fx#8(io_%WjKj& zD5CO$bA9vmq@`Tk$;q}`gBWkYLdlTUmHOnz1ly<_RZ<8=7%6*oneDIPPbWk z7BIQ8=JKSVwH-F_Tl;HEy8!AY;@LzirS0se6+X?SfTNNIb$7`kHn_w=9U-${SgYHc?-)X-^r!YQkU?CT(OqYHA}j)pa}pHAt5tJ1t1J(Lcc! zf`^G6=w}UQw$BFXHu;110^Uq~fL^!6W9IN_Nz+iG?P|Qvsl)UVL!50f`DU{r?uG&0 zMtp+aV3=eJ$CJf|j7lT?#w%p{uwkQZ7T&96DA{&BewX+X{g0uRok6fy>rkrgMvxZY zas>)?vP%e_D)dPQE*?*DHa)Q|+-@>>stwe;Y{DNB7t%4%0+1({v=3$4TH&!`A7&_2 zX*X+k69mj{x8YBU>*+V4`Un(}F7anpe)A`aJL!2)Ped`1EHz|TqVQDl2)zMB(BUEE zPQ&|^JMc8|G<_V}fgr{@cMav*?#5ph|EB+eY9S3my}E}U+U^4(_0$GKBPV1+s8vsP ze&v2VU2Mc~G>S!PhgtPz7gl=U?~1oDutqh=1Q27-F0RDjbHqCs7mVhR+Tm9HhDwV= z_yX|(My3(Mo))e<;Qs_5@ugya2Hz;gel}cJ=3fRHVR+(D#()veo<`Cg^e?wPj;|4) zXM8i7v7aUB4*6Hu2I0exCNNgQwxWpSsUiRMHo^Ed@m+>B43CnLCGsJjZ79A+T*$z{ z3Q&F&iDHOvOUBE^RSXJDjgnC$$|0d`BuLLUF&MDM{jSt9Rd#h{4F0XSmr(-4p~cj) z;q02qbNEl<2}T=?jdqJD8_BM#jK%*De__0XDbWe9uZ{Y@u)T`^C!UwQ$XMS26-giS zZ?KKWFK$_pY+>x{Ac&-o`#0L&!Y^+zN#1Xq;ed*wgGjz@5`JyV_GE%_pMxNZuJ&)S zO~G$y*_(XRSlK4qw=tioRnZ;>TeYMpkH(IlE7rL71b)$%G?x~{;<@0?_MXxO$E&;wtS zHS5$)vU8G;L!*^9tgf{zNLjibw$tr=*{AIB%0~R{mQ^X6*SiQS&(lBqt8H8GDJ>=` z``2geL|veN@qcaGfxp+XJ%zBoZ>Qh_ea8QdZ5RGQ%U(br=N5S8|2NwY_`#Nn6vBqS z-Ga;XIsfmrAMv9t^?-BG--EhB|LyMH%O{~y~q{P&hmDX&2fk>D!*pZ`DGfB1hb^HLX?=Z4)h4md+VNJ}OkFNC7zua_xk-(4LcG;t zrXIIupHu7k)Ndv;&a?5lORy{KOoLroZ>O#?MeL*9&|QjMWoHrW*_xedZyK|2_J-~< z>}tEs!M?zADZjmB>!F*HW%4!P+>ULnN~M^p_lZ{&=rGrEw*{YSeVO`sY?TWtfv$^% z+985NTDwz=OnqGh33Lb+W`_=rXdO#!HqCHB-J;}6% z!B<=7r7ha1?~1xjUx78Xa|yoHx+2YDquS@;ZSqQ}82~|&Ti2&KZ%lH9Cz4k|EdYa_ z)oPO#w6VjrIFYOmwd8sS=eF)ni`y83)4$`jTE58+2eAR+86RxsBb4;JVgJX@53qxf#&C4CUMHz$dwt zp0>`+#Vw2O1(n;`5rd_zIcdAh;@u1wUPf}HU3l<7YgyWHvqrZph8IkZvZDqMx7Maz zHq&x9NcJ+8JJ>}BziySJ-8XY_&r0@MC*NU53)Zx%((26O-3?N_*2{O=T@3!#I+ZqT z*65y<;*eYwN+a{dbN41hjxY)oC&&`f{_4>k(<|eBxG2Dj$H2j;GJz3(|?-Jd1!;y zSf&p*FW9y1PCC@W>0rWLE6|C`EeiH(W2HM<#2(bnv;s;VZb|UfBW+L8u@*H46Edx~ zGX1!m;J~(L=@%^K4r*svSuy>&mBGPn?dePlCs34VWz7uW@`K53iu7uWSWoSHRyNE) zZgudPw)g3BiyF^_dsblK#&t4?ZTpe_&0@xL_MYx`>?ym3;P|#B8EfDOFIu*)E%vls zx#yiWgABsF(_XS{iLD%O*BYD#+K(~t0xv(Nl`N6K?Fi0pv&#sBE4{?bG6XY(+ZFt< zZC^$r9EO=)eI1Dn1Fct&+I%vK;Jz3Ei*Ao4*$oCiZ94@hA6~dAn~Z`|xQbvw8#QAb z?x~x~_Cm|4b|b-cZI?3sz_q-Ig{BV7NbY!WQ`?;ksHKy4LXMRqGn)H4SOUNxN6T1m z?fX_cm}j`}fGPG#2G+91JK?^S6O+c(1gqMfWn8eF^VZI_+Q~f6{T%$Ntv!Qj>GWSh zuGKE)MG)$p0xVIrW$b_253F`GFL8ece{Fl8A-AmgFX4gJ9_AJ9pWxqZzcPMW&i$wT z&}uL98h1WnVf(VX&`nOjHEsnw;oL<8U4S1sZi@BM&a>Lbyun>cSlvFIc61ZZhnA=7 zf=#f45Mb>Nch7E`@tMujb;aJcTS+i$KX4ZqieW+dQ?AfE+|@ws=XdwG-|0iLe93-! zlAR&JwmtZ+bW_10zXFMyoMC57aBM$wSF=fdNLC^;vor0t#`w*a=>}k{Ko?wJ`{T@`TX}voAXC5!>?j0f zyD0PQ))~K9j&2}UWEVwHx3^|y0^puju6rE&%)RU_|qzM!H5lL8+AGiv+S*6 z{AVk4Ph*=veYk$drYy?hC;r6Bsnbv~0LP3vP+3t{AN(gPr|{5LZYp78hg(*f)mAK# zI~5FV=iVi30pasXD-w2+J4Jv3c8g%wLCos0D#a3cQ$%PdK+Uf1=%8hNw)%jb!O54|f!29kMPBAOfNRD&v+B z0y+d)QPv*sWXXVq+HQCz3?U$L*RxYwYTK);2Tj zCcwNg)!Y_BYRATV9yaVix9YNJ=4);TA-ls4RPZSS#nojoOpvf6JnYzaFVO~e-0fM} z8Rk1~AK@`*o-MJ#9Tx*kj`;zs*eg0t-)pmBA9t%MqcJsHB|+2?eeWFz>WD$ehWU{@ zN~rI+esAeE*a^4Vvh&Q(Ts5J!BmLgyZMYL+5UOC#aNiKRJMuxVJNtxNUD-t@2mla< z0BRSuO?g6GR~F0s&izOj>v(xDaU1NU+w-zZ%%9vD!rPACdnMa&C&ge%%ADhVCw%Id zxYxFgebVhk*%js=?i}F0<-JDc+sHI3k?1cMt}hf_8!_^6O;gk zWlTNZI^w~c^VvUdy$zadqz^SLN0<t^@WNnq)eA92{MXTgWNU4ZPjNE0Vw2 z^X+uN$&8!|^_aI0_-S;R>%eIy3!Fsc8xd|qhQye;%Pv0Hpv?<>Xb}gAnE*;WZr2!` z)#jBUhakm>Z+@RmoP`~!`fvZA8s%pS(bJL_*;)ipRgdeD#K|5x}{h@K(XPZ zBGy^^nef>G-7>5{=)J^CTUnX*2og=E%fSX9_(YO)h{d;$AK$AKcz$DY;B@xM^5U+@B(z|SHG@dF`Nvh>Bh_}QZX(1>hETH-gOP zQX@Zy_(U9+HnACKvk1QtNv-?>;w$l;R6;62<08Z(Wp&J0-gn|B0KB%L*%5A|WzU(H zd2_@c(l6{o?!6I$QThw)Rm4ByKk2-jMGpFrf+|8iG>*3*M7vWj$JD_SRELrqpz%EI z5WUXzInEAAk??WyOXyABvJit#qXWks8UZxx)hJIu=!L|%@5s5}Fc+ykVb#RE&085_ z-gz*G=|Do#CUl#zcMxkrws!jG@Eu~J5+1y2hSGV4A$Fa_oF2g064g^;Xfn?@WJf10 z=d;6yC^4h0MV^8%332Yckppowi}rgZX_coT%mIme7cf)!Xxa8BZOjawWr$B_evXGD zJKF7aSvxb6w>88ceD1;=mC@P`i5=K`h;1P!JL_|9I_k%uCg~C^6M+Z`>Fmxaa`cT6 zOwy%THUb?I(K(jW?3fXQdPDET-bXlvoa_9Q^BVM`3f|DWun!P>LauhsyT53M{u$I; zdN(!?;SzGIa|Pgiea{Hq(tEH42=|bb&ZfRC^fJ2+=RNSw2ian?O(Q1TQ%exTr709~ePBrHeK3a`3pYxX5&vpK| z|IKOU-0Vl)F>E~|F663K*Af6PBhJ%4>5gMxB5neh%`n$~XTibOpRA(W8xgldR(6@^ zVs;js_xmiFkT)afATn%Tm;7r3EoZ|=>V`WH}N=&!JC;2me#<&#^q z)Axel3;i{=192~8Ti2=F=A9WAP&4%Z6VW5*y35T2CC!m!x(+N+Q`=$F0`yMe6QVIkY{M|8^Wy?Q&gHG{=zSphs%?5Q{SPVcw-@)wPgPlWs5BbjJQI%zVWHbgucHP8>7jSuTep*s(1q5jfSoSjyHG9=@GA-$1#d4%csB`y? zhY)A8>wXKROB5@S=AjMWZVElrUHA~=TyWiQk#w124blqW?^O>e z&g$#3MN%EbS|r#OgF<75vst{Kwp3T4a~BaB+THuG1dyC!0LZgoRp`*j?umzO&g^(N zGF~rW9nvZET=%Dkubuni1&bNW12!P{gkJ5QmzTI>>5bymdsiq-ko!V!cI)P?+vft9 zddy12MxwCq+?>^c7zS*wQnGdicEKmebfr)Q z0vQ_G1KOG~E(HmG5UG*E9!UUq0(1;y0Jr79s*uV;O}vuo0A_)5w~qy0b? zYS3eoALQC`yLctV%*eeeIdpx`?)*5{r2JK@Fy;aJiD{wcJqPodu1<*wtE??p2Z0;U zswW`7+BG&&Ti+Va@~UEnB7t>4?pl+Wpl@x-@~*lcy0hnE{!iDrL;-&BrT`ygUZ_jY z?ffk!AReJf6SfP)sQU#N023<3Q=+Xq5Y+Ih-)-kjQpy~LIZjP z`BA`JFu6vv)yTi90_^(4`Dy#NCJ_xZRz?9pWf0yY%g=K>l_WEeS}Sl!QD{`pt9gFyKZM zq)}K^FE}H57v#BlGK!5T_C_RtqnG!bC}?m?V!&Y(lo1737X>}kf(vKr8Cft4T0upQ zgx2+3D){53m26;)aZp4eCxDlcUa-#HB{|C&;~0QTeH|+4VHG&K$0lp9v);ivQ}r&i zADA1l?ls8?>#Utvv?@)gs^?k31^2mR?e*3>S?8-hhuWL87G%03QfTWTy8?JB;#kAY%>mrk>Qcm`x4t;2A=qQbKtGwHJy z5U+r2q-_|!x3w_S1Cc?4Lofj>BIKwNXM{(+mnSo9;F#XOO3Zt zZq?2(*MP5u8V@zlR7n3*JV5RZi|buj1UYDS*Kd>5N0Eng4NC-t=++1EcV(NThZF_K z17T^s=0%u;1$X^Go099Em7Zbude6I`0%nWi%@kjwM^)ZoxxKrK;tuL$!naV47?o5V z23H90qP&BinZ;Wuzz$sH7gpYTqNw3uQYL&W#m|US6%Z!qr524J?8q$MsyWe6jyw@| zwXWBp^2fosOl>P`e^y0RP*_v%og%2GQ&xhNHI@ZN4`CAE%W(9J%_2Tt7!UxI8)1FD zkBg3a^0H{w5L|!&2{80tQPEk?nXFlB2!LjhQDN%d)}l;L#621y>jIu3&xXA#mK9Zc zlI~5~XpS4zR-F&~(o35!^(+9&4e1F*9r9Ax&)%;^8c+2-**57(#S0|JY4$BFhIpA} z`)!w=QZyiMge?Vy@YY`VY}s}x2zVfGhpp^0FUEKk085ATw4xbF4}Ry zPPlz%iZxzprVN}D6kW)NVa|OwiXj*?mLF0Ys^~!$hI#beEw;wsSu&(FOwoq~m0x{@ z#TZNh%gjA9$9$%<_JKOb$}Y#5|+|u@@T(zMh?o65gqUv_%8fyw% zz^Z_xRqkDLKf%fR9BaC2IIOnsBIxd&yRW^|`aJ7X)p%G_-m2FxNgVah%csCS(K<*k%c20yAkg-!H{ zAEo`b^#O6W=91AbU_N=@Cwo-+9|_c%YAzf7uKE%7rEl_44^W{H_h{l<{vdyc{p=H8 zefOX8ff%?^SpTa2h0W_<@OY^Y?4jFU4(Qe7YlScAU-dY#*yo{OFC#8M%O3Pu_L~5E zO2$K36ydtjB7U#wntm%#EZGQjDwueMw!L2Xrj>W`Bl{;Fw;f^^xVdwZS?l;t;ph9mJbnkd#Kb`S!rH*!6Mn6KLCI23>g9HTlN#W@ z#3lSz|B4ce!@h-r1B|o)Gkf=N-;(tu&WDo<;U1K9BMTtl&FZi64LsZkTrpD0H8>v= zel@3mee&7EGoUQWTGs&7L5An|yOpFJ-daRFsJUyjg?|LJ(D;FZB~lSQsy$P&)!rXO zFoH{@hYNsTMw+Ftwhs)i?mttaIjk;{c}njow%MNwZ|J{K0`WB~_VbcvD{Sq9!`ncU zjWuZ4k$Fj(3WPoQM)wz%V0;@Nxnek=$OfQ}L;c*6FkfY{7{g(+(ENz-vHq7OiN3H$ zZlKzQ<;af-e+#5FCBC>vVsFlUmJ|P6_^1Afk~UC&;`Sd0loRt~!+-RDDS79s1f?UK z2dq8(tKsto7Cc#c1oqg?hx3r-%#ROW0z5aHkKi7QeK>h67yhmA6$2YVK?eJ=+aV4p z{^KWw8xGh#2|J>EEIz~my>9%JaFc<3PZE#7O56@}3RxcZ*+|O)pC?5}d_gk<1Jo|q z-wWS1aOz3(k&F_QFL32x?AhVyfygJXkMxxYd>M}d{Lthw#QG1M>S6rx8|3H zV+RTkhaFV{Q97h?-!cCEpmlMzPc9$T0$zCxkn!1b!wCbDC-;xK07Wx~qX@7EZuSAy zle(kvr3S|^<%&T2XW?fDrk>F;O zKnm_umf&w)$vVw%4yO+ol{)&xmT6VqURXyPa0|$Wj2f?8QK==XS{P=xO2K-7Z{Yae201e-W%pVHp4iJG!xfD#T zGy)?kFatdspp}01`@osRX@o|=J{ES5b$pax!*N{H==?8S0iktSjB&ZBoM)6ly z$bzJeid*(8NTxE^GKRky@JmXY6p8k$NtUvXb~~N!w*pOPl>OKp=(z zEJyY*Qp%o@th#{Izqg)_Yx_VJI3yf(W zc#|QTE~AJ1y`<|hZJ;jOT15=ibQ|UKT}gLj1{~V}Qq?37f*BR^50KJjaL%EC(kfz@ zrq`$#2$@(i6ekKOvnIndeMXP%S1rzyxpEi*W_-VJX}_Yx{s^f=c7($T!1D!b$_7}a z{9~jF*=bH&0GprnI1V_RfE`FEi{!ip;w1rzF&OaF{v_#z>>6hgPG5i`Gll{x?eU}* zSt`c@n1=*phCG00A42MqJ>=}iWe8Bf?-RhcCy@qa6&wPtPavQ$fLF&pf;1|t=iJ2U z3sF>tDxez7O5e!3ft7#6n(~Rr81qTioqdNXYFioB2jN>|l#SxTI zqZj-uq`$Ji9IRlz$RH8}Bq;XRNs9(`%hv_Eh_WIv`!tdnkX~ehnJq0E0{j&AnWU{C zmBbH>sh*97Oe#E*vcYbwoQS;4c3giU2gT$vjCrayxv6@+wv4G(9--wBcmZ3;0#aUn78!k!A;{pN^mGcu{;6QquI-{x9jz;P0n@ zPHNQ~T*J&$&O+Il5>qhLRoK4ets zcsjO8JJEU-+g#v5zB{y~5_`I)DIw8XpA8pa$T>iIcH#6~llC3!)$C1zL*znG3cx(= z)SPe!lKbBl)KPNjkUxmM#x&2~ff(SdP*^f=C=}EN@S15!oRDQ8I!b;vM63LKS_j{o zBwefACWu4T4_&WZ3KE)bbd8sbEm)Ma40%nPfb3*3odSg+1VnP@P;R9&K1mE`P>f*U z8x2+|<&{DB4skJv2Exz+DtTn+d1V}Mt-+Hi#xRh;BTo)>R=$3-uO%xPvrf4KMI&p5 zRF!r3_!ff{%zEWc)J0%po2nefH@0M@U^Xasqppzu4E?VBgV$;`NX3}o>KJk4&XOhE zHNj>!gj9_QY#)lJyHviKYaNVl^(%dB$_CLV@(TGzu17FWj7(!}#O+5Vk=M$%a|ywH zt%5X$8O|M*Lf#LAI3pa5*&|ZN=#n3z(-Mi)n-dff)er(&^Uu7C|e>kAzN{NC=MAX7XgvnO#5sm#0uw+sszEx zR&FK%0XFv#Yg_>6I3&r3xO_rP$7~kF1{a6|q8s^J?f`+;LAwV5n`%@YIadAyxaVd% zX7543$`}O}!ty1&HAIAj26nfw73odnJ8}b_Es-Rd%+}b#f(5PQbUB=Nh*%0%TpBwV zQ6M3+_f;t+zr%H zioRk~)lo1PrR70fa0w^~1*UMQIvYCEJ(~w{#ob1MQKI4i7!)FUX!(%+xI3sd6h(($ zRb?otXEI;29|opvl&f|MVpR|5*&r5Z++fK9V+!-q88FpS_s9w`jLa0l2FhN=^{S;| zuwFMH^kak35aoa(y=pTU>xc_E9_$Q(CB;XPU*!?jQL?>=aS)e@0^J9S3NZNS>lG9+ zJaP9>+bAa$^;I{+^!rd?oPcAZ5R?!_cU4iCZ=V3%>v3!pni8QHt7;C*=tDhXc;gN{ z-a(-$rorX7qp$c8aK-5I}FLpq?)Y^{?T4TW6Fq|(BuL0*{%r4Jz)Nx9U;ynLb_{_j; zDa0RFfeNBDDsJ=FkPtFj83c>tq6m}@MK(C@#DJ3uDDM>gd=3deC@Ys9SJt33mY;y| zu#Ln9-(5^iF<+4Tl`n?mp`AZGX$@ooPsq7u2a%Ibp`9l zE<*;<7T_BpxJj9AF#oxoOd6W3&;-E%!a`Z4go8J6DcA{XPQ%0kI>ktd5=4{6C~pWL;E&O-N*b!{K@|cM<6VI@1+S1*Nx>`w1xntPg#rwv zK;Z}OH_8DNuuLnf1Qd!|A>&I)%0W~GB}myMU{K7!KQ1LJ<)|t!HR~5}D0rnzAf+f% zZVM@q$_YUmg{^cGa;WTKK@H`+@{8adMX3}6y(4>6@Pcwp$ueFRf$uRv zsV6k0da8;=lqi^5Af_ZM*9)DgNh)|XB^vfx&`!xx+6aTF9jfALN(}6cpp%lT+%1fw z>I}o5QO>~L0Yzl7(p#8E^&BpKMmY=nAdpeYl_!J^)TCi}4TT2N2o&J8LlurwJBEvE zDCb}w1tXN_$}7V85jrFATFQCYXJC~SE0cw$5uPK(wUi668Nno_Q<*Dtjz}7T*HJFQ zz6sug)qJ@yD57JexQ-GF`z~nF8&=i|FGpyN8a&5bQvN`Fp}Ypm`}+|tqgl@}mzBRz zvlNX|C9I2xA2oP^xuP__^ON#b`CfQ-v~ra80&*4i7xjlSr~D!O7BMqA`vP(eHxE6Z zs-;>Y`mD2cj99O^23sIpNL{8f5ZOkO#wP1Eaj=ELCDf}gdGwJ3k?b+I2F`W%BB2h| zP-Q0yi&Tz@f$x&NSh$>OqS_})1V3N5mz*20V-S6+rOHQC6zL0o;EbC%9rRl2Hq|L$ z#LO5+H8K)#5TT70N<|foN9y;cHDYcl_0a37yHuA%evl`DjsHoK}OyH`gc zCJf3ZZo^gy&8Y`fSt8pg(!^wwCK0w;xQTig{1y*I;THKcOYbPxpslD_RTcQPswZU4 z(j?_t^mb~Hs!7C%GE@7BrF10}jRfA!ev#=GtXeGQFxW65ni{EEW!5abqlULol40wF zJE%0(v}io4LtWfLNr7z;?xtQ*{T0oR)_DbQrKG}4fvPh>rB`hlt;VFaV$zfw(Qe=- zBRJ_89s5eV%{rZJF05Raq1se^G@AE{)&|MI!O<8hTjfxFHaZ^is!fvt+a&a%=BwPQ z)1tS&Cbnzt!nO!cTbHPgRCA*7uVwAhOyyRzKebX7TrG_*cCTS8b zWo(ck(c#nqRay1%n8wL0DTb{?p{c+jT3dZNM(d41CniVffQ|5fjNnhv`@W1KO2=hrJORC=KAQa2ADdB!<|e<$me7AZXeer-D( z{7ibL;GJKev{;Ej=K#6snP-|a>UXj}=_BQT=!aD2;Tz8&XU*RG^-CWs51|XG9>aH^ zS)awfm-S0al)mW4)I-CC&oE~T-un$mpD2%lIt}bF*jAiXz84R0O4-MRPpPMdUp`9& zPq~|nQ^v*$dDPJ1+G|B;eZgbT0LE0bkQy;O_N@7A#s}0Oqa1e}T|+%L{OQ^2vwa@~ zgN&!Rljs-JtHbkZ7SZ&lP(zFgToAgEdTV$^jRnnjN-)IuzhpIRS@Q7u8fRM46kJZ> z!U)24YSyq#O%SbPs#s3p!9s+cRHwe3HJ52x8UqEUN*RgW1z%i&Qf8jmC?csTgmVdTjaTz=~)%z8SV`F9kp-RisW;ybecGF|>nvFX5 zVR~{{Qv*9M{6w7?7T2Vm+xn3>qN#;l6n>>%;Y=j|9h!uXPegZz&wsY){ zZlj#%?90MA>W|?sHSf+TKZ-{=FW6Uw|ETju7St|15Buac#;Iq=3AG}YjI65Nd>;2n zJjQ8Y#|sxntN;pGkMrzLZsVMn?3+TJ2*VM(+OYG=PvUV-Bm0(cd4$QxzS>0aa&?>F zG_ezf`VpH(4%ZfmeZbq6F}fy6Xb@pDa-z23yvyZPYK&M(M;k@hkC1DJ&o_R~Qe#?_ z$>{YFtSc95f1aQFto_Qmm7NM+(5@qQYM~dLz9hV|ZeynlEh4-|ShbE9V!vp=wr*$N z6>g3=0(lI~wY)F1*N_fe7TP)jHzKM%dtv6w>}!YwmyNcKz>l=nW?n$d&?X^L919JG zAR|My{0lKNvy+fcTn^eXB4*?*klpfTXm220xLoudZ`}2-wVDfRV84}iDIcKsM#POQ ztb<%M`|9^r+O5n(y8<2V>N@L-_^-0J(jH|2`ane5hAllCf$0He$tL4r?- z`m5}nv`_g6?GuqV;#$YJX!gzTy|iChf<6Kax<~3b7xCX@@1+CEQqZJR3F7V2iv>Wb zE0rlZ=)j2Tk?72K7nR?{A2@@sAGW{-GjgqNQLO$fYKk$0t3=}?<~JtSnZ|m~7Ee*+ zFrJVY(K(V^=L{^oa1BKP`C|e43(yRSTmd zCPzB!@?t%|7f(}$VKqWp#PrC%irU!t?*<<+Bg$Iz#fWbscU}+0)_hL@CSUe*@D=<$ z@~iG=?A&+lPu64XdSP6|!qH{Vp_iO~Bz&?ShmCBy8KE<32wcB0KW0BcCU8yY#0dS- zP0x>B;{Bj~hNy93G$R5ws=Yb#(uW_DpEYV&E3g4?9Cdr1c4_NR;up;;SiA6U#FkON z=bS62e~KGQUb8!Z$!h!P>E~^i*gxH7IFoFtkR9PL8vXp;CFM`C{1y-hqaQ@<8NK#= z(PjN#sIQE-xE^#tg!^df^Rqn%e-(eFyo2?DA(r=O?sI3L7>0kNyoU`4pG5eLmIIi) z<5%%F$_Ln>usq_#==0}smv!dgvy>^AT*!?ej&?rJyX-kv3_kHNrBDz-9UXbz0IbCD z@04lSu<%&~ZFKti_~nkd;_sA?uuN52s`tY5is$d* zAC%89wNM<9Ji7jcGY}cWe^S1{UJKhJvPNxQ1YJ?*W&Xs>C@0aK5%))TzPNlv>yN=N z%va@GbZ-P_-N6^kD^7nBep!EGzZbpr0ja>%`e!ja4JFpj&e~zpgj3UGY9)2bo3q{ZF<4DYWC0Xuk^R_ zC;Dr|yU~7N^NqDc+L3x=>+7AbCC#&(PhDWV zNVF`{V9cgI2xyugfpe4bVv%0t`mx>hao2R_TP~n3G+qj7{@`QY^?BDk=RaCNU1Y2S zCX_Z~C+ZunCC#_gqG}sML`IRQF>3wzwT}6Zw5W@Xmy6a%?jE~RKR-@qf#pK#662LX z_3Sp5TyGlZx!}=4>QZBU5j@g+EVte{E@^?~BI+{ZZS#I^Ju>#B9vfG);MO7=9TmsY zIubV~sy`byv*7z8J>5V<2f#g!wbp0GA+*kE>p=pI9PGh?F4wv;j->TQdm3VFEOLm9 z1}8ko?gCIq*r}&l=dd&K!q``E^Wq*9#UNTiUrwWdSq@%rS%L(Cf;DEx7ZXtb@iZub`FHdjzo6rGR!GB(-J6JNSGWcl=Zry4_m9(GuDj{7?A~hc&8ou=#b7L+^K#eC_+@L?B%|Vwh)N=lj6c7A z^yVCoux5ITv7e|cG60;_qkzWy&6?@0#{QxTfbWZ6rrq4C6JjuJWgH-?iVPo@y{x=R z(h)wCSgUXjA|U#H^-_AXKE`*elS zWJF+yLs#U3@x6^V6Z9cyqhw@Ym_uLW)kot#jYSDgIr&CZdt(ytiIJU_O7%k4P46%cGn)cLNL3@{mKsRP%Li_s z6Mc*v8-LlDcnh}NeSP^(kT<@!;mvq=W6>?&<-+yJy8>e!zDIr>A8TyBm9ZSXA$fP; zWspezKK`lk^{u|;!VSrL0R#hG(DA7~q1R-3+jGSu6RNXu zyhuArZ(@Cu^X;S+mZsEw#y3UFq86{QYC3+~Y%bo^#w8~~1c@@9*wJ+1_S}la8*N;3 zZabvzF`GEhlzAJm^4vzf{egEJ)bV(LR~be{GzK?GZx;Z0dZ(L; zA(~m{FcIDK?zVDei&?pQPKszl)ZU5fO-mDDtK7}Y59FkY%%Tnez53=v+^QDya*v!0 zk!6(6M1GS;;?@yci{yiWnGT@sa-sqtGkvRs7RjC}bi7T}iHYY;afv$mZ$du=+{^}d zx8RBPCT60O{w=r-CWj@mk0MVfnyM3H^%q;(c<1DZ9HY)myl;{x*67~?&i0&K(XOaV z6Tg~%CeGT{d)4h7~r?2k&CFa%cjnAP7m=^YL%bnuAE znAp^O^bT+Jxy|L9Ruqf8qF58C=BPU#R=?Ri?Q8rPc;E9U+?vzwY+VzwW%`IQC~uE? zGU3-;d8e^_U`yvwRjGr2)Y|9th~_&PYtUPh{Q@~)Oeh3@Gq3OTtr2cbJ{I^Ch!kH; zTx;G{zs$hWit2A%DLNe`o=9#sP4YB&1n!~6JP|Rfb0W9dIVs7&(wZ7z%m*FZvWfEM zprj51biNBtC2*huyL@f)Ep(=z(4sdR0~w&@eb&qbG_eof3ae@^Lm5s+w~#hrIUxTO zqxKFgRf`fjgB4jgi*jKZs1 z#YKwEun^QV*;pZ}iV9cD#FY#Z>G7#kQ^B}?$8)@OTD7SBH7ni=#U&0sCHQ7%>`%@x zMmr`)2flXbh`OiV4h;Q$#zM#Bn7}s#sxaNInzz&Y>^rk=m!FDA^Z` z5R%UZesCC!da6Fv(wv;J&RzR7%~&H+L zJ61L8Fda3lu5G!TqP1b|ZtqK~9}ZtYF@U7yeu~S6d%L|atA07mMrqXfFi}eEhQ)hq zuH^g{{fzpmeh-j_nhm!=bwJKv(VwW_>R&BCQ|2}--fMF$XI}OE=!LJAwL(*!Om6M9 ziOX3~y(n7ul~Jo>YOKj(XPfIe3#*q#uYR?qb^fXflXK2`@qyZokZ9PePt>T?4<>J% zy*IZlc3cr{`pUJHk!ogoY+vUM)l$dR(VJf#Y2~EiO$YaN-c;#08b;f`3T~CA7J!0+ z&IA?2(Ky=i)tOdJs@inWrSq0*xuZ$6^Q#-JkTkQ6$6Pyat5!OiM|-@w+iIPL-#F-+ zEQ;5!wv6_9mEY=-#@^@-It_BxRBw&;f5mML17n$%{pCqHYpb_Kt9I14-b~XsL%Su@ zbEX7#(ZpAst$CpJ;E|inzCk0$Q+vp-6s^^1v1W_iZIW}0s~w}yfJ$U}T8-H)cbk-) z_0_wgFTMKJ`ZI0LZ1Dk`)Etv)=ja=+no?J%Bh1eo&`S&4=(s;R>6Kwy(Rir&n*-Bn z#^%)rqDT77+c4<`=Epob(^VG0|HOQSY@?*B%?CX?GgOw2KGAuvT-zAwW){Z|cHUKO zc03aOKZ?#gkm>)AoLSmzkq>Lo7 zxl*||_gvfD8)F;8Y;*kHzrXvheSALe_v`h1J|5Xa7izz~@!G*U&4}+cwrDt=H*~$W z_D%8*dxzYF6d+si|25=aJNl+)N3}z4Vv1=o+P`AxQLSd&mYw!za^IyKDE9KN8G2K@ z8_b-lfuAA8tk~PXY3O6^skr2w_Gfe7ryMT6>wk)wS9>$Ab!XApnB;5V?&;4Rs;G^O zTWe(Q7?X0%!UE&Z8%l^yi*qo_a`YwZ!NEdYIK-)~jEgoha`L6y)CUu@b3z6mQo33YH9ODlgM%IPD)!J=z-Zw+<6!1js96r{X^44y5 z;(5o+-qRKdzzcP)ZifYachUA6Gb(3_-}xT|^Rv=rA9lOBFh2F3wMg-|7{-Eu+Td=M z3nQ!7$s*0)cKC7Ks(8aaZWkDzdz~#ZfNSDy-M)CQJ**3i>|Pg(&;HKC8Fgpl)AzW! zGQRY>T72~>(oBcC}9qryGnC-(|F~P0`88QDaU|g7=aCaZ?im*@* zIHo`y{Z{?(%d~xNR~bKh?_2cx7Y}3WClUttv92tQ>(qYFS?W&BRudBKH{DHJpXW zpF3Pp|13z;)ClEE*9!vjjgetS{f9&c(=3#4sU87DD1^hD`pU#;QzNu*nO;b-+<$gh zSl^#mZ<>YnE!QIzFZwSIFV-u+)7o$3;ai~>4tyQUN36bY2RMuv?Gadm z?YrpxMxMUEdo8!Ez^otH+u;7L3K%^c0j$kJ8?)ZavLWc5V!t|If~7nyUX9s4a=Ibu z9UNeyO#Y?-v=T<|)TM^PcbEgx>)QXWy|CDXVNz~2Gy@5Ux0mprUQ98=$zlZCF!62> z;6@nLy|ESs7~7G@4Xct254zo80E~mhcAyD)+psUm3(x`>wY_l`yD+yhKQ^37N(PPc z+`5$bVq?suk?#$+lX?zT-^{H~Nh~(Sc#QmRcm`&&_P25yQj&_zFh0O6lAUzbtol}N zV@h(dIp$1XU&G&|I8XtLVO#^XDGY8z+%TNfYF6YO1KcAP))>-=Qsc7sYY&knn!_HEV6 zDt5$BMv#r+@3jsa-SKVfZQF1jlR2`t=G}Yv;ix+%?I~Z1T`^xrt~9RKet1}VN4w)1 zNIPK)MtmCE-xq*jj`o*$$}SLy8NoJAydONwy31hoQY}0%l_QTES0x)BiE>TvOvx|y z!qkksY22NB^+@%-+^&>@VsA{-$j8Q0$;n6T@B4aOD73hXVU0{*^-Qiml6Bv=N3W>Z z7sDATYYb1;GB@(|?bRzT_Q#BjFd9E3JDB6zPqTYVECMkTBfX8K$r0vK{0>eEy*LOn zJu=qVl}s~_^7HjSUuF@4QH;zr&Lm6BrGDCd*D5T+!B|^^u|CD@DDHuF|Fz#1k(k$z zU$uKvypFOSF#3C|EWnAFw;c?=(~r7=!&>iOix-$pyhDupDTCni%^2*hws?iv$~(q* znPLd!EWUqIYK!AAyLjgr*(p~os{M0^Q|gNoF{J&x>x|lz@htDHtR#l(BF@#ZnjR$nR~k_=q_U>U~hM-S049cu8p~&cvMIy=PdE36|;s zCSxgW#o3q(yeatwa)Bi-KwEIF!ve_3c)x%HMq()q&>p|mX#q$^yc$M4s0iW$wI_Np zc|S0BfC((0d>76O6i(>%0!xfPZ-miI&H*Jtp-_)gjN2Z>n`TUq2jMInL)6Q)sKA8t z)R?O%hQK4k5cl?5{J}iqtz+(^cv-RVjLF_XiyF*p-gahq$vZ3ipxmjH;o^GCJ7Ah| z4Q{n63W||j<5@5z%R~!8Gzxn26K}q_^Byo-$oLifQA00fk5!GAhJGkuqC6fvGnB1q3$|q%=f({@R?y zBxaCT!;A-&NtWyIyq>&x8Z*Z0VCJXZwdREi7xd0w%!rK?3nmkk^+OV=n=F&+QLA|5ZokYLRtIOtBvP-%ZaxY_YR{lDm?;sl*KH!*6NI{&3Z< z`bq98@|Kd5%l!C#O@BYc*_lVhXuCr#;aD7B41_;+cAuhrAyEAiBsP@4*rfbX>zL6~ zUmfVylK-$z_}a}|KRO)Cdg{9xY6zlmF??9F>&@_Ey3ZWfu(y|7(tZmZL6<+$jzv8) zSxeqoau%Dyw`>mjXe^k0roGO6m!&f{oqw`9{-fD(+;i>qY=*vU=KPO$kMo`j z*F*P~T*7__edOkkImfG+)f?FREU#gU`Pk-(kAufq(F|R-sig;sm7FvEY_yf5ABguUne#WQA>-dHC8N{(%M^a-PvzMG*Sx{K}L=QbbbR-Q9~b` z#L^eb=F^))(pBwsV;uF^M=kxa!~BM3a=M*;VvHk{ZD|>Zo#6L2m!?P9>&805*jARo z*ctwKGdsP?J~7r&pN+H(#V+vYn-|hmPwKvMG+^6UKEjfgjjn8gX4sufeC4>6{h#F% z?5a_{7DPtGN!{0u+t|k}pJUgLR@7h0pq-3*ZDL410rp^eqbYg;8IqII*V^0NPg=eP zi?Nd}@fl{PaBsACxSzI+2a>-_Erl7FQ_?ruJKfKe@XZd6-fC&i$T{U5C)^2jEJ?vy zjs~_&0*ewaPH4nV+*0ppGy14SGjq#nd!SW<8ZJ-A+K;|!*^%jTy6A1pZg&^UEUeRL zTFddwxYOqGF?-xyEpxDLqj^BQ)OxxoKE~MH&60{mk5;rqX0CNGPl(y;4&2IE@6o1~ z%uE-DqJ)@zY?m)TvA(06mdea%2ctw^6R3Mh2{v$4*wUX_?;!1QFlD1G%dpm^LjRe} z>7^x!gETSbp`J%c1@_VC^48U#20hQeW9(;pTK>U48(r7B?~~UV);q=lwwGlM5Ik*f zJ^LyBj9U`pAp53e1E6gjYQ6ty@C+-7VaE2hY{GsRJ=Xg2li^vn_l!gA+m>zE?9mIY z-vA_y^`3Eaa%o#yL)G6H-^AY%q?$7`RS!$JQ0kNwzkMZo&8y>0HFtIj1#4DHBI zz-Ckyd9=+_xzefa1H+CTWvLUeb?jK%%g=_+ZXX%P*v~B21?(QX(Dv=Kmow`l<2XCo za$~@Ou^V8Sn(pkDu6-r(WyzL+qhtPUqhPyQot|q?jxEs-uo-*QrkTCvynROQN%HFw z!+?`xZ`yWeUp?=g9C?b&{;)H^ag5Stn;m`LDAV^eG`?g{z{RoLHqY$(^I4g`4$#CB zlK|9MSzCCvmW$CR-!sr8fVa6d#%TMH?ckF2$@eT&UF%4|{juJ*((DKq-7H5(c8aBC zK)~2|8#}woB{9pk7>&xfqZ;hH9_;676b~<9iYM4d}go zj`_Ctf2nuP%JFrBQcF+)Wn-c3$~jsWjlTL`awq6s5BNLwq8*xJcQNs+<7M`D%Uc1B zV=3*3oQR9M-yE;7e^}lLAhnNuZU6i1*TtxBCSZ;MVkf<0CG9~uii_&GCfCTnN*)Fb zjn%a$<-pydfHaI;0-T=XW8Lk=IRrO#stJlrF9`~m9vf@#%AvVMQBBa~vXYR1`7wFB zEJxv{o@e4gt|$o)@H?;3vHq*sC0w4ir~7ZqNZ}tzb0b2#fI$nM?yzKU!af4lJ`8Hs;-~w2k zdtGLIXWV4hTLPK8;6_K|*YwM71&mwlM$41{3jwxc;_KjLUil|)GBAJ#*a#kVXnxyr z#U9wq$e?Q(0A2g4W5+j_D@8wIZo2~~bbyl}t>ZXwF`F00086rE4p3j^0pD5cm7>C! zyY4JYY5-bL(GmG=?N#%iG56fNECEVD(A1In&E;y*&zSq}J(fiQeuBP^zu)4(3O~lz zooz`AzzM`1!$2-tR21Xq&b2HLAPJOM%YaPN{8tQcrdd`6LHr?WgyjjWYFXe+3+0tC0w@9`D?Ha>dUc5-_?%d_1Y`<) zVv=&0R7m7t^0ArFRupJ39SZAr}z}?0O zX3toT2XqO3u+U>?yB3V`<3E%^}TQ&$RRF~xfM@oq_ zKr9$wO{Bd735J+ZcX+NmU{z%cE z$)5JWGDluT+Y)$m+`n@)ug9~xDmRJ@q3H+Oj6dqs%r`!JP7mz(eP9 zT{rdSGk3E7&cL(dDV>P?i0it49iOw;!S@8Zj(_cR&#$_k_}4L-y#a0lOm+0mkbG4y z-G7dN_)I$xcw@Y-GbtbL74^^LC3!RLaNxc1?#^NW3{|f-i6QIJECR9PW1U_3G_R;? zlUOp0h6p5%%R6QH3NQ5<#;pqmaNEF$aSdR*GXp?G?bq(x;KxDcV`Eok{OudO8sTdw zp!o&90U;3Q?>RTTYlUy1JAn`H{rHithu;M^c(uYf=o1Y_42#nO}9G6TlQ}F zg~06b3tiv7d);K!G2+?A@JoTD{P7!Ijo;I6y45oh*!$qu0*lA7T@!#L#j0l{vQ6P0 zftBNryH*t#-f{!fBlZFKjlkORw_W=Ryl$}?7)fk1xKCj7ct+RRg7jN%jSSS&!?e4B zoj|*HyP)S*bz^Qa*_`GV*f;*W>luir*fVld$QCqAAb-52OJ?Zot?PW739!9Kbnc(Kt@eg$3_cz2?+yRZ;*SK6VS>kj;>;GWCxZZ9mji(_e1 z-BIw;z@6;b?#V*IT^{H#Ks{&`fsZDZ_pJVD3_|@e!xf(JKY`CC9$B|-cD`5C8I$ks z1+NZ_oiOM*{xj~Lc~=bJ&%r??dt!gj&7ZCJin?M7+`Zv|!!cpg6Zv!Pee>>^AMUr| zt$|q+=Xx@Ky4)}7jwy7%3ugsVCp>!o{**Ls>+$^wy-!QrQ8;n0hyAnaej*4zvVGy4 zz|sj~&%#etU)^5EU+f3)fxy2LFM6OwcD^{qu41x3Z5ZHV-}hJ)5q#CzCM9GnZ8WfL z;!DrvA{xj)nSksPZ6dIDqNFDX1cKB#CUi2MHW@fHQP-1Hlw)vi{|Fr#3|BihI?>ki zt;oxd1u`P;Up`9%#S;TPwIF$64^k845Sk)zZepruw5Z3g8aNioB-&D-l2D~r^VgOK z_I}@b1vN!yf)y}k{M8#!Eb*5PYlBf2`~c2N zSkpTbunXfoB5Z)Zr*Zvm3)_0XfuRcv3{2R`@T0hg!lB;VHSaO@yj+HRjv5??6N-C> zi(4^8ycni?D%=`J5-PEmm8`{@^R-!UiOVFLRAc=zzeeNX-?0BDkCVFvpwEgh&W8Qttcc>3v1 z;dl0JT2Em0L~akch~|gu6aHpDqnYhB6UOwq7lT0>PuRrHq`BaVgfVRLfbLLs}KR*%aP`EsGLk}!B|COi#iD|*bymTe5SpU&lzn`!B|lcG1A-KBB={g{p!b#H}d;haQi zoa3c&!R9kDz}pGW0nX1~mY${c!C5oD0w{}?i$jUZIN_yQ1fyB)nbuDDcic@;1BYB{ zM@XD?oM3muf8y?odO4+~5d>YSqmbPTFTn+f#yRZLDng>vQN-rJ%YgfHp0iM@O4OZm z6tnx_zj2YGm0W0<9Wimvagsd%|A%`i(&Hk^B8a*&$0_y@ybc!+h)wQgRm4P@_MylT zS|ct+WXTOGQxMhVCevg-tr?dgIt`dk@Q^6E$qac6DCED2u5gRX2qEeUlUedOfQ
    UY_!QAZpsSv3`dk!l8a#X8Q^q9M<+%VK_Ubx2Q<=R19wdfUh ztEoe1*1WF_Dxr;l(HDhlTOJ*1wBRd;&d|ni9im*WXL)^S)`G7BDg|dOj;M?qUamzl zTJ)WV%4k!#5z#?>O1T{=anW&sEr-wICPaI3ew7nQ>PsezXjpQ*}Vt>R;SFDneg-Bg%r98Ifr z_>D^E`?4#phG*5hSccNF(#4yKJ^KDu#D$xy#sYn+)fT+D_(9)rMJvcuGMB4B=rBA| z9NMQ`srAT6%})cin!XKxLLAd4yJhz%QO!w{v&L#C=nSUx**X&*sV{@*q?l#y!k-s^ z>T|BldE~uJv;wvPC|F5X#6SBURtg^RmWi}r8|nM;*FjSAb)|8H_j1un*k<}6{2g&e zUw-A?2;OqhDwyh#qxgs7p}ynh?<4HhsoE4M9gfF~r}{=Kdm^gUsSt`j-5MVzR_WLL zz2&jJ233c$)#^SxO03hb2|fKdOT%w9%#eNpA0vkK+y0JzY^3S82DXEK8lNCG>G%9y z|2RvN`r`LaD@Qz8Y}Fs~TQyR5h0{9DF01qSO!1k1@^8CHDRtj^${xBa0F+cHr~Qb>yPkNj z6m5hZq~E~Ti4*z{RNZ~TTPfNEJ4E-vw}?OWJ6GjA@m?j`3_C)A@_4aCS`G(f{qUXB11D3FW}8@c8Yz1O2ri%4!dx!YBwj z0Y4|cl|Nk73bL)S`Y3BF5`IanG_dT?+Nb6^vA|Jl6@gcu)EU_E$ICfO$8Rg==AU^mbc*tfp@oayQKlap@-cK^Nlym}pVH^qgXg+Dj> zap2V7)PmV4(JIaZD$? zD0-dDIJc}Ac=DvxV8}n0jVhZ>4^e#R&G?MT(}PL>;4h;#n;xdzp||6|0*P<&Kf+7( zEv82(_vl@K0CZ=t>mTi9)D~v`DPJo#ILP1!XZ}fEde8Kmqe6G|;VUN}53Z^iU>0s2?1L zqthJOlk~xmYSma>n3EL;Z#9JIsI4asoH;8091SYkW-;U%C%Z=jJEroguSM33pz0sGqknV;Z4?dzf-U{`Zk}lQz=7; z+6bUIb~?>@YqclHb?WPodu`R5#2ro!oCGVAAonTyP)Mz6obFDiGn{u;0D?T#Fhs7k zi%Z<;be8iTxCib}^$wNR+O1VKGIgY+fFL(^YHX;hmKGOfWa>nr&=Enzsf!P1Y9(<} zBWj>}8r>%75r}%Pt}}k?y-Rcs_K|)p==s!!;R8UX%-bb$hGo!C2ECcuIqY1Q^VWN} z=sfHb{R}|592tICCwR--EpmZ!h|WIo=)!nJM4sSA%{{`45lQMHJ;5$GV}Yz|&ejRb#ANua#i5*Y6T6 zpME{)-&D--)_RA8ti67hVE`=}#F(NC+tx=XusoFaM*g7R4r-hF0$7E#gs6R{S1CV1 z(WrN-WH_i^k)Up3dX4gn{xE20s%|)`9-bIwV(LyQu`)j>nCcuZtj8ouO&}-~-6{y= z*!jcl^#zGIQwW+87(on@gJAn)y&#ciDni35=wU%BlI0_-8;sw1?-zN%e$yWZt&nUO zIRGG0y#1o@ZBg|GLfK0DjTAcjLiIQ!5ZoB0e8`Nq`#p) zDa*{y8^)wlf{>EX5#>g$_eO{O07{MiG3Y7ediuum``_aL84J~7l^Nt9c{g&n5%XSp z2yzG2X5|gjxsow*wlV#^+hOJ%PP^6Dpv#gUBljBz-?I)g?{ZjHc|o3%KO-+24U^rD zFhS>&KJDxyX&K3Gyqc^IeRLny1GZp(lD?6@jd985=CMF>ZI$5>C=rhIH`XU-nfv*{ zxb(81P|4y5^te)r?op=)oIX0-@UdhCZxh2z+5ad6WaO;=21QFY@(wdFDbk}5f7Fmw zZBU$K7tfVZ01ki<3~I!xF(_Gblo!B|q)06wSQOu?IVfFn5}32i$T&*~7?)asVIZ(* z6f!VmsU;*3HEz`f>I6Q#c18gi2Z!KLLMwIln%%ONAM8U9G`gl;cAigSrmD0=Tc-%la)fqppsOW6sLAZ$v@PT@N&~SPlqF8` z%5{>VSo zocz)LIQ2PYeW`KqB_JEW-Q4rB`ZzV3qFZVj>@oeD|EzgSy8Q|23(BTavtXa;7Jhc~ z)%5BU)R&YkrRKp8rU&@7&1R5;_OUT2C;}dgn-=qjn_JTpIi9gF{ZeGGEqb26(2Pk^ zJ!$%iVo+)u{CIlB=%yBUMielZQ?`{J2hNnuqZTcM4E0l{Zz$VKPX)i7-ZMIR>3at5 z6eJF{6LB^;dHN`DoJ%sKryy@pyAaNxD{^u)zQrsPcN!9p+JkTn&H>()!WK-X^fV*^ zwHI+YxM136w7sPu6XyU)MA@cZ3oe-s9Gz?tWbzzDiLm{p9>Kq-pNy_qDT#lAh(}#H4T#2x4$! z*wpAKXth*3QBx__rKDh`8I>{3wk@A=?vZIITSP>#`i#!ljy9LiMdxBapzIJ)!H^k) zvEyxVpUs_PKcbEU=&J6_e&B0w{aoZ6n~t(a#0Kln*o;NCt<5$+ADe+Xg@_9_nmIR? z+2)d6bUro{<$y>GHl6Vp``Z?mZSE5L33V2c3@%v@#)jKkvx{6}vrtZm)ZnDb&@tt9 ztuICw{652+f%E+YxQ1NYT!(oeyTGn6sg_UJE0u6|!&uBBgsFV5tSdA8So zDY_lwm2wdja<0vkj0LqTzNlX`{Ytr1nh$g#bz@23Di?Lp^c&^qa)3mc=^QI;$K*&a zLUK{pKq3n>!yjvJF94T42o;4wlm-)K=Ei2)?PdqvL{yjuVue}wjGACohv8SZOUyiu zC*n`=vzc{*eH~t3S(ljk94`cA_p6z0f>RyIU+phbU!J*%s1Ht@*)O=+(fYOMa%=(0 z8^H`tov{%_cC7toekJw?OewnsU}_x&A37YqWnJ+D0G-l~;M^IMpt2+So6%LjpRoHt zSN{`SI{Q27zu_v*6oCTT7k&Cnut3(K_@;i%^cUs&*8bqCnWuvFEVEqPHApeaA2A$U zKl4s-n1#ueUW1gNu!zy%)|t-&R{+DsxkG5EK*R*-BmDx(dr7X;9YROp5tG3roc2G# zYnCz98zrK{f=j1^$7VVN`K-HC9!gXSBbLquPtA-7nprtiZ?vck7Fs$VET5SbOtJ)2 z9$Him3oBJ3sLU=OU)^b(=j|b?fB`WsVa4p{fqk7`c`OfRC1=}vb%M_9w((P)$$9pk z)ZdhS###j3+5O`;J6rRLJY%a+Q3wb@e|Drayi+UR=(^t@7;x?ZZm;9`hfat5tm}S% zVbP@<2qv?r@ygEVd?PQvf3TOOn+Zo|eaHJdB^B{rPSuhwH6e4$1+i=2x|gqR%v2c_gX-Vjcr1GK-dwYW_2cZ zbi4d00_;vyI>Me1J8Lj;ygTlP`R!PMQ3RA?D#2vJvs+M*aNDVs^9f{D$+K1y`4443 z)bE(KQ9hSC6EbE`Pb7820Vm9~odQr=gs-z#KtzO4sD9V9gYvcXGU3PUor$h)T4B^( zQx*k)ZwU0+;0al`qEP*wX(uHQbj$wCJ_jshI3R48c2T~U-Xt{4zMrt@A^cRoZ`w`y zQEIQ%I{SIT70{A#_aQx~pNRW}p4nd$0X>qR()*BJ6o{D<24`y~;(N@BaJ~>Wsss^0 z5X^Q?6!u_1eGvj`gNScRQ?nxz%{@6q-hLtu?7$8pK{h)*G0`(v#PVZuIpv5jg0fUi zxFc)xFMCjGp;UtTiH3BIaCh(3U)2w&{gkTGD1wf3oA6X`@-O>`R1gj?jV5fA9u&R~ zZ246LBF88Y^(E*_ZG@4%Ym3eOV~0?+h&Y0g^qerW*9G+Cfa+@ESpvaCiV{}#Mi(1l z{6OBT^gZE-)K}QwTVGt%eU`^zASeWclqg*2RV~rQI`KJ8h>rwyzvqAr4KInpnvPOh zN;3&(r0<2Y)tC|~7BYrvLu3h$-JI(w`t)EGXdxhy<|C(mcX- z=|ACXwpqAaAak7ZG^~K&BW)38v#-*s!K|3lQ(8oLARQ3avXg1{II57sE~OFh(kbC6 zyN6bdqk@@BX*nTGsv^?lY@yrZsbbE>qg8|`sg7s|r^@;h-Va>N04FF$3KQ9KqUlCK zep9gF(mFzd)I{XTsi$XwgBFYjmRFQ(R-zD&YN>9p(=>;VXdz@u&xptzyHcaY?cmjl zC=AE}F0ew7DUt?5z#ki;3xMZ+MD3h{QXByS{_hZM0*NNYi)J{IQYis4hY}iLro!iH`YlLfKcpi8ILHE!KO?3gcj*1kux`^%sWIRhs~Cb6At?S5Z&hv zma#%i15>1>B0`_^x5#;Pb-8(H>^$XL-V|X($`F0vI+SOH`Ypf|rLzQ~lq0I-MwjbC z>=rrm2svR!Ixb>!tI88ePD`9c#3ErqIxkw_s#fTRIVo|KkSfGwb1TKrKD&y+%3qXM9=C0aczHc6_4;-8x2LmiMTnjc(}i{swgTJg4Rb`6G?MQlgkFy z{xN?VtApMOAm&kXK0<>5hd)_Q{Z{K607zfo&z#n9w!IXM|WVD=aH9I_t02kA=8nM*_E58VCB zdoEh9zqjlX@%!AZ$>xEazuwWJ4f-Z!*N7#cM>;tm_{)nH>FVz<^C147dosCt(D)zj zPu)iD0pty0?cCeReS=>ASTC5HxMoNnV)Icm(leJ&CiN?e$mpIjJJtcOTeeJZ3dkp!UxL%ggc4>%K6ZP8EF!e;)OQN34aw=#@QKSCGbbIPa z(23nHJ3W;&1h1_=p}GTo8W|5tvX`a`hcLC$H;|p^GeA*gCi9tUA1bKD#X*eFjv&PX zm*J;oh9tEt`k)b7s+UHzl|7zXHEdYt_LjMe>x|4Go|3(ta!$WgSN)c{JJqEui`c&> zZR+@NT%CD*>>ji$GKc6U%bU76+*(%@A8U+uLsE%oS;bW3@Y;IwgxJ04%g6$vx2$O@ zbJ(T6C?R$q`YN)B=qKx&`a2v~Z=M)yf_6vJh&Y*e>h_!3`m97hQ+;$<88KA0IHf$I z)nN1v)Opu#`Av)jkbCHeT|?qKrvu#U$bZC_GCc`mB%(n#$&SnGoLLWRd;g`nWP7 zks~XUguhZ@s&CtAm5MK$Bo4{yBuTtz<3I`ofeuE_5CyVM09wN^r4$GfO+?zkreq_M zW?l}{J5_|#4=tM~%4M^XNuGeoOBGq`hm|RXsK_(^uH+jwxur2}xZy~(5KZ~I>3w{! zCRUp0&)bMH^$;ETw&_#+iX#`<>8#S$6%{VfnpjHovMl zG2O{tANmLyVkHlrmhlzM>KUddQ(u*B4LK%%KD}u)dSgHa*R(MSrRITF zIiuz2%zA-Y2ktB6GWt96W=OsK9iZxAI;3AASI|F@w?kUxpJ!YJ1s%9=kgI6GTmmGS zUo!y$Nr&_s`M`w1&xJzeI zUaTj&3Z!@;3WM3><8htl`LWlzpI~?IrU}T|@Num!qwjt< z^lQuBgzQu}&VCqo=*s%;cT>Nny_CDl@!t%e~@v5%G0w-@S z14#)%D2THQn z_^*nuv+fguGZT^?X%XZBx(`_y5~0wL zt{0m1;(kFMq6d(m7pSn>Si$w`W&L74NPKp^+yjQ>qEx$Or(XU zs(KTPoiN-HBm=~DtfV1ARkm)46PC+IwuEFV&VW6c9Xqjv+7~`n)*kW|Fcgc01hzWO zG%$6%tP7y%??}7ACM}9)ic1xiu|pCv@zNQgge|2(@MtlzKcq@A^kcQinBz?s;q|A= zhC=ET3BZ$jm&2org7l}$_#rI-JK!wJ;dqydg7s&SD|EUPKLCedki#lv61Y;NIAmkx zZ|O4tCa^D~5>vq&Dul0Sk!Fjoa;wXzA*qToX^2=cAgvW8bM4Eip{WaHijXul-l2Vt-mO_-~RpvCsTl(xPs9~wf<*K0?^K0gIi?8-oS5U(N)lEIrS!OVITpZVD zUK#rcz06uGRCj*=+)Z(7Us0vVPD8z1I}|pLoC_Cg^&9>6d#tZnz9w|%yyM&lu|t2> zZ@)-=t?~__CiAGdN^x|*QI+2l{Z-|gLyye+&h?8ySLK&Y6j$3C7K)fB&Mk;l2Xy~9 zJ>}|HZwoy>|6&e08QmH2$Mjk1n(`f?LiD>iwu{dI?~mx2{<`vAq2~d0!Fe)g!27T0 zx&DUoy`fj;9Z%h#92{W%Wkz##t@np|&i|P^zIx-J{Xgo9)J^4Pp+561bJ>$u2dn>4 zU#4yWXUYfj19P>L$%FRQ)R-2`Z-THKB{QO>-`&89XVy#mg zcc-;uD0$vW7BZzetXt>wmb=UPd}!wU85w!XZaA^dDW1E>`eNv}`D?P$sfc0SdZz^L zUh6BNh4c4h?5V2Z#CoShu8B1YT&{_-g(=k$R+;g;)cpV{@n`jqJwkOc$z@##3e zo4w~p{p01&LpLm#$UUd)`B}|=>H78{2nSn0%EPC%MvYqhGW1WCzX{#B;3)qv?J%0v z;+LuKP@WKKvVf9TPDhU#wfcS1KU@Aj^iIP)IeWTlG_lnwi|Ys$F^C1Cd||qNhkBdo z=hSoMA3{mT7M{yD&A`X(w`*jh&s%4PIxM`CAD+RCN!uV_&=;(;LtPd=%Ux#*#&GSB z9P~x&Z=qKge#rx7BxBNc$XE0w>-bUrtyDEoj6YS z>B1VtZh-cv?xg0Y0=;tRtA%ZfQ?tqA_FdHPsW-va{N2Jq#qHUi@#-#WL8^B-Gc;}C zKgF}zEfeZT2Pu_Hn&!6-WOYe4!2e%sW0lx@0fED7xhtBXhxJTCuuLj=56Pq#YX*pzx5-_ zSCBR=n#_C7#oc_{?^MNoVy#VrE?Uip%&AW54mkbcKDAy$x;uD!K4}g<88u+~H}$!7 zPly4**Ts)H7IF~-@Hpu+PeQB*nvRK5vcgkG$e|68CbF&gn}Kr_}JB;8zWm?z8ZB2}OtE&>d_1-jop0?$s$P7xutVW8t7~_? zOTVD}7D=TmWdWgxnAM#C!jZp;w@Gb_Ulu%_@0Wr2ODY96oA$=D{_E_O2pAGD<_iV zi?a)p3W1a-5^?n_%EL%1OUoBm&l}Hqi$#6;EZ#N?NnD zbJ2M|XU=<4G@$>l`~``$dFjaF!+F6RZ&EaK z=NGf*jkOAFiRFC-R7t- z-u9PU+ea=b$!xV;jW_AlLBY@IKX#Y)gT zYbH2C*epdZu3a#f$4;Y1ty@W1OXrp{7hM*Ln;l)+}4~mtdMb=zW`BK=@vZb|)QE@(V`jh1Yq<>2>OY!42i;442GVYZ12&oaY z#t=&pi@FO=a_+SC7^!{f>yrCY)nej;lY%>IEhMp*=u06>s!O_yPV?Nk@*g*bmg<(0 zmf%ZKi>3>y^70wd_|l2@g-e(v=^|tiJ#Q@|NtXCaL z;w_1m^pz@%;?ygkYu5?MMNvTiSMlDQJNy}@u(lw6(aQ@W$HJ@|+6D^(A58%UVGlC4q;ZH4kKl?Q4DniXq+4b4gEqtY4W z&ngd=8E64iwuus2>9^7gDX)wJFfIn38s8Z<(=9&&Av4@I{|K+tb|m4tg><0xfOluZ1#k?Dt%KzDgRNy z^G&qUHdO2jyQV}_3Ra$1(OABJW!lDy17SCm>XqIrTd6)>zJFEP=8D5%_mr3!h00jf zqeCOB4D>3FhWRV;lvhVH0MetEQ~2vR%z5 zF_k7iv#69M<%0w>cdaue47YrSeDZ zo#wf-u)toDZA%ep>mxiq*2GEB3GV*t*I!EJx|G@=q1) zvbhyH8$9;fTn;Nxx~<%y@?+U&75)YTlZtDgxPw!kQW;;y*AnX*?62?$8?<|@tgX6z z`K6Uj8~YB}+z6{xidQyKy|KJ=Wz(iUGaH|ld37pPp-<_oOZb4Zdj*Mf$|;I z-sLr`^0s)W?C}fZDpe{!QC+8gRQr{lhlLF$jHlGB{7Ll!093t#_Dw$y3v>x%9>4iW@+9P%&;_NJJsia z3)abuI+Ql~xFzh9vXkn^IU^g+IT%33lD#rVE`LTQaz%M z)t=MS0mVogP-#=nR=ucBr`?2#Ee!%I#>2Xmi&Xv9$F=!TG28%OAr2c*u2y}cz8B&H z6I&SsS4@YEDYI0+tKWn0VPb^Gm&0>mlgh)Y4D}4iCH*F3Ux>|om`r&_Rj57$>C}Jl z^1@9M@UB!=R$H#IPUon>D;tk+8`W@imDOrHH7@A9XXDma z@@J1LG{e`a7^_{;pzA!{y5BDCNyVygJr%fGu*SU3$?vMiJf7OD4mVUerIw&^Xf=MD z&T)_DHtWNURW7Uj)WEKu+op5E^)*^py6D6=2(eNT}Eweg&X${WZte@OOwE4Bl1j55KNbt@cK9?^>Uo`!$#gR_TPrUF2S30bktfhfDyKV|1zTkyhVTPPBgzC; ziFCTR**vQz1jlb6dE`h!V#&Vg5dZ==h8Xf2STJ%dfn6e>PB*Ku@^a+(52TD7Pe>^_ zK7FCtDXT0;yhY2x#uGOdm9$Ogne|yUII;rTQX5Z#uxQ8h4Q6kxh8=qY+7>mQ2G`gd z(~tO=StFcCfpwe=RRXVMN6&PrnU8gfQ%7Lk;*7HiD@*iC51CP{B~JLDyd|FJZse3a zoPOGD-tHStvLN=-k@E>_OP)=?YF2D*>WmC#r;T(ZtS?!m=rh|7GO40q!m`Fo3A+p4 zO@C~*=Q`gRg6my2ayg-}#5nz>*&S=I1GJE~^v0_kkOn*ZdHawp0*GSkc%AFnNI{OU*Aq zi(DXKgzU!t8~aMaO;(#ffnISDg%MVQe&zKAF(zBgzeB&eOoqYu83PIO5~@k1xsy#e zsxTb3D&ti%fo-|FW5Kg^&nGefaq(j?HGC}dSJuI z>x6+4xe48(#@5S?14^`wrY-kNnoSm1wAiM(_0DM9*!b?oqmnigo<*N+gBvTRZByfi z8&69*Og31&1suWNn6}N0pKiP;xnWXfVP%JQXT`P^HX3h?mh_tJvhcS{bMFPIs>Uxj zUY87*I1bY6>fK2*>$Z+8JMk81PfuHL?fTuDXXb75{Bh%B$#av(MMZX|9>_R$(a2=N z=aQE|jC#n9<{^t?Zy))U@V(@N$uo;! z$Y|RE{{1@uf+oM z>x?Pwc|8Gn1s}w9FzaeFJjn5-J4~lpn%g71NUXZL3=ElCT44&e^s!Iz>R{DLGjL>P zX{{;7l3`!(MVeK&GsBxa2PDObmf7}$ULCXQc4hd2MAnXnbu(_8{+RTF%qG+~;yaT{ zn@s0e?zfNi7R@H?Zu|pZSbD;AvE_OD0`JM$uss=pd+1%>#zeEk>oXiJb4jR48QtJ&V@B(kUH%V27sd6=@974pI5i8Gnx!~<)#k+ zn=;FHXx_lVkr;AesnPVMZKac@Uo77`4Eu_pg2Nf{4MD@p*lhU-g)A(!F>|wuLkRH5B(`FNMi!Skngv;`$ZYbS(jc>CR@V>$KjZ@T z(UC;*{?Z7uHCE3N8b8?r_OX$9wYKCKx|Kv%VmW&iK;B1y3wMuqu_2(~~Xz@(#Y%N`4cEM`B<9q+{g%c+{ zIh}2#TtMR7=@=NmPn~G>T+-QInq&6J>WpJ7wAE~>^(CjGAjncea$+v|ap_sJRn`xk>OHfTPMr5#+c{i% z$!xRrXQ%f;<4Y$lc;6zK=&hKi6SncyHVU(uqnWNG4wpLfH=v8 zX)`2bm$ESPRZyRQPx4ZE1KN>lfRl_i-w6GP93u|#26{$n$)06o^K!sY^$MM&ls`z7 z0!uX0TnhDZNeS)9s=Jx7i|kuA-&_u5xYPs6YF%H(ZgN1`B6Afq+hs7cV@2JqjJ@QL zvgP0-Qs{yRBW2h1XY3<~fewfcdekK)tRtK7&gwvCWZ7Et7f_#zWnsvb>^mb3BhZ(Z6`B8r{&JZLgYXFhjg6h;GJ*M@a0DtmypRvmWhlt>vMO^I zn@Cha_#__&9Jb_HWxLG%Y*JC};f1SU_cM+H9pwSQq1%K)9C*2E;=X5dC%a5x&a~Ny z3Is01i9yen&Xlqi^F=miP)%#^=L|d;IYH)>smxc{+(9)(a8?fh>lir=V5T@^kG(T;_b?pa^i@c|vzzYHLsn>1JFZo{-axHs!q=US^?4|i_n?tTN0I_ES zcsytYe=vV$bInx{gn9%7B04t=mOGY9?X!TAy<|;SoqndqTg>_kw0PZ)OJeB zq_e_p*P_QrL-_-vBR%B0GK>Y?wg&AL%>kIWk(=cDGCzxjwx`fp(L?J8UXI)%%gTrr zD{Sweo1!^@;WToa+)x&6vC;M;dMtWq!@%ni;>E+@8ee8><%XWYDrg&T)O9M$SQfi% z{oT?4qN5FXiNGaisnlr6GQ*=D;9&fxT~edqb8^HkZ9_A9o< zZl*EFP3-q0L!BoP2yw6N9-tyG+ywiO@dRikS6e)`J?~Z!Gr0-&F=Lo~v226I8{3C& z?JMeZz1i8Z&gcMpu^7fwug8ag#)Vhd-xQ1{%} z@xlq?$g$wwGO2~P9g4p%mIdPXjW0WImB}o^>~h?PV|%x>eQ5-t<+4T#s-4&!J(IPy z?Q7$k&iiG}77OfJ+|y?Eax1@Oydys*4RCF*UXe{ zWB>4UuYXo{#bTS?FZZdLkRrmQC)z__)@6}t1NR67iI9m&&(ED>WqlTV?Ls}iHVqUF z{2cj09xqcaRoKn;XozENZ~N8wt@B;kki}WM9FJkJ1Z?}=_@nbv*@#7#o!A2%&nj-4 zYW&&xrEJ{dzFmt)TD%Ni4W{elA7!5`^mba0`gqcgy1yBJ$iK^eSQzbIc?`yP?5G2i zF7m&!e-_hV=AMWI(tmaT%bZ3r5m-RrFdxs9gpU8}re&H?EChBC42S~rt*?J6O4u0R^Seahn0Fl!EGfE+!ECG0w2hHn8GuW+zieQjJ4WH5DfA| zYEKCnUzTT%u~DN0k&tyTgJ(avxh&5DW2bf(#6fnzremNKydV#Pfvd^+bVxPK9YdqY z1Z+#aJ;g_`V=m+%2q6h5$a1!o9zpRJEQFkdrDHS{SvlKU??ed}EQ4Hy6=O`PNFf`F zxv`rl$b#I0?Z?DYMM8p&9HovBafvqcjy3|37Oh#_UrU~Cp`NHhS~<0vOw>mWGz zY-|HF@~xKT=h|uJb@n44X?p@F*zAW(DG>Y2EjPwKD-5&#_X+WbCZKgr(gmy z3P1CoGS#~_&mA*Uy;blX@(I5Gu9_*UWqau3D8+(5kU#LhI8zp~j_s*Wpp**CEcMPv zuUM9-j)0L<)a3%GrSwj?R{?9X4u;L7Q7Q!vmVWlBUhS+xDGZm%pi~Q7Eu-!41;1g9 zODAv`mby-WwPf1w^a`BC-#OtWFM!qy{45vRpYqC@HMDcUTR#W?ZijQ`E-=DV8Vfmw-~CXg481o(fDhX_lAmw|Y;_hU_5($~kJ4 zAj|TW{eJJ*IifwV>IF+E=LD-QAKRbzE|@d92Ns-}M!6{1VEM-Wp?CY7!o9GN%yi0C z!8XgE_TRm~&Y9c`BV=Y!It68xwHUaMR~1_}K+tDWG=fUY=qx{}e+s@@zH@lui#WIbFf2Z^nDR&P+w!Nwci*q`ClA9CGQn)G+{DTf;e-!o z7dFDc8$kWS(+Y6SL-D!n@x}=m$D8e7h=szqS^5|f*o@@8RnseQ`l zSsg~WNB@_MJi?x>uc!EzFSI&|NcYnu%Z{+;==Z3@0@AE5BewcYB}0x966G>Av3&pX zUc?^1@CAiOVRJM0QzFV&TRldc_bXV?ab|Qbra?_AUvKpqanG-H0sq*?-z_8o0yMjR40^|T3I;S`v<1*n3_wmSYK&_63>sCghsucWZbrB>dK z^Zc7qIL8N)^+za)<>*_Xjye9rDZR(r7RZlLW?3D!B0CEG5erEzZ8z+XtCPVyVZNin zKXGAmOWs1v33V!f#w~YL`%4z$PvoUyPO6ubpSN1)Xz=e}*nA>y5$3cyz5JTh4#(*M z&{TYD9tWdRbIY|>wT{?;#MI{2yv3Na6nFG(0G^8r5TqhcvX|)FDLLg2tWG+n2WV1d zC)rE&=P7H;pIKdXEDkVTggnJg(|1tTm%p^S?RY4Fwn%o0y-a_JvZ?%o)icLy0fI%y z)9iHp70TA~Z&n{1p9g3b$xgGE>#tFY%l}yYar_%#%0afVGxRqorR8SUHcsw=G>)u| zovBw-gymjmP);)fi#QM!fh*UjE6Wkq0ZvN-uW&>v0#B|5k}9-yjMLV@ukar#SXO2) zMOu!tp5?SBP=e&1naINQsq4%Atrt0+3CvwQerBTO!7Xs`5Up1@-3e@3%sD%djS*Zr zP)@Sm;Pf_dcyaI9ww3a`>ciy;)@4psLFgr{_BOs;r&gA;tamy22c<3PZEss8zpp+9 z4lkwC?4X7vtaEKS@(1b@(R2l@;%le&PV5{(hR zu0-A=v}W?VCWIKxxSB$U_`UUwGC>wfv+G^z< zT}w-LK&QEwha$2_y>)e&7%Ej*0foExgr;P5^wvo;aeygV3&prFLhG|gH|ut0dQ;~J z_d=~xGeY~bns4Uq!uWR06CQ%byOf4PSK#~d>M?#@$-<-1`7Vmk#1+kbdAl(IU8zFz z3u!LbLIo?3x7d61fz&0!bI>&|&qFmUWVhIR^}*D1;ZCe!q6_9>{Oit*^6l$Oq zmmI^wvkUuS`!YkRD}=Y8`+x(tAbYYOwm&nRx(di8j=R{qHfQs1PwdA;cI6760Ncd+ zu=m;Hwo;fx5;_GPO)-VFO2TS#$WZ zoH=qmg(?)<*tntM!UcS!j;+wssA8d`O%N(QT*H^?*h)QvS|fC`nTaY6H(iCi$8OTI zs5^z;Hgi#j!fC5y_t;1Dv#EQ8K{m@!*TMy>koVa~^@-FO+2J;;QBT6JtPSD&bqwXE~JiN$CTcf7dLY@<@$bn)^IA(Lpb$?XsI?;2&RXJ$A3E$g1b-ff-v<~v3 zEp|Z>^{4QQ%^TN;QSIvrU%;+s7E}KSf7|?Y{SM?tlP_REJ4BsUVPb2Eb|Qu66^_6< z^{bmrE3AOgB$Sk!H$F1ai4k-OIdEHVpg3vD9D_KB7x%72ZYz5u68tooUTQ3`9-_-A<`c%xdJ&2Br z7OY3UWcTUoss0rUZBL@pqc!VgFWI;Bd#J$`%WSWri=$09AYZZj^)hN`#R}Wo=tI%8 z4YF74+xq>~$ci<#&(PPR1sgi9VeZHqx}qx%92`eKjBejh_!@RM^AIR?ZnOP~{vQ2x z!{loiK<-k>6=k+J=fh?M0+8**07lV8s}S2dyX9DC6%36J==4e|tHLP;>o$8vLjenr zOyx(q=2XaR!`yOa3>WmiX}d2!)-}JP(U$5ao`DA3$~M59>{?LKY`eg%Wk%Y@-nVTJ z`g9xV@b*ys`IP+aoyuD`ihsfx7`lK&^F6HvY+WMQ8!h5uzlusEk>{z`HB5pe}%fW z;+yRUz!K4HmVF{@KX9#Ud&QLPZ?{sx=gpI!U?Z6!?f+Fwx3h4!j}0v3PfUzp)LnuK zD?4ZR(AeC<@d>txwhO$4;db8cuf|886ODC-%x-E`g|i*eJv(-=u)|mffD}{!ldvPZ z3u6&mNT2J*G67wo!q+az{b+3Lg`=Md&7FNzz#FhTw)SFd(H02k`OEve_Em)2t#*GB zdu5C03*oi=PS?STSi5cRzhb>IzI=g=XAXc{JJqhz-Dzg{*21r_H<|aSM=IvnZCFJB zb>Z=^6K^nsUCkBAcE{XLg*R^Hd>eSHe?V=mSZsF=XhX-g4t*PVr+-9ktH`wL2Id_v z(0&|vuYXK!uUKXG!2Q(BtZhTz2R`VZ0wGhr-Ang7Gn=+?ehhrnKcil$*kbq1{o~BB zZ9_i>KIvajZ&YNAP4}>hLl?0o+a~lfQddQV9o)kwuIaUMGS7$^?b24%*m-zR;v_}* zpLw4#FT46G_Sl`BoffC*D*H+JB7fC&yQ0A^#$#*TR1xGC0W=)CbQL?A?B;mv2gL!= zuZiD_L8QOpgxz9~^Kk{+Cx5}dV{%J|D$dxg^tcz-x}E=f;ydOeb?4lRb{joD#*J;4 zy>0m+|J3!O;)Y$BhgCefm^IZlsegeTt?03ndicbr6n9M3{mlGAeO+fee#c7Htn#us5t{znA) zAk8$9Da_gvl@R-%=zqj%is>3N5ftX?IU}Lyzm68zbgn7QQse;h^Gr=>|F3Ww+=OdR z1K9;wwCARTum4R>gPU?8G`I){o8`F&Y|#s+!_Bx>G)GYYY_aG0gaWVXz$$#5{lUCW;m*S_6CLd5tV6Lt5zEWN1yar~vlP^9lJ%naF}@ zrvQULQ4#F7=P&Y983YW=411@MMP)Ecj1whXPzZs;xmeBTJTc4}6H3Vi6Bi>K>!o3d zb^^UqGNo0(w@gaC?@e<<$zWj^iq`;mw@bmBn>Jr`7)HhjDTs2Cl@!7Cqb(2}gC${( zQc{2sO6tf34<^xRSSChGX-f04&UeBFX_ko211gY#(qG~tQ6c+Jm*|G|ISo6`^?mj7x`ELl@3GKbq? zv9v@{Gb|s2rD}vCTet_7LQCwohbLhTG@4lC2oJ)h(=;L(JPBuD&}u|(@R`_RnrS7{ zKFQ0#qU{uU!{=fT(P))2`y_9}3e|2=AbctI60N8b;z0CKBx?4F!r`m2PiR*vMGiz? z#XQYHQ7n8L_7`oc5`rM&6>N=MbRbKFb)tuh3lVTXZZhqNXbyZIHj-W-og3ah#l4QI0L3EBX;B8e3oE9ht5{B|K*eGjXW>e? z4ttcIQq|!k4dO1PT>!;JJyuJvuOc~1gSpFSvs`v;f`7sq=>1jA&iNsV#guEJ?eIU? zzjRXx5}8CWWYE;2a<~o7oniX96iFm1xSDQ}1n!EP!6=eIT!^8HEX_?(Jv;!ngmFb8 zav_E(vVrca0f11qGNvRD6fs=E*XTq|@Hx2s3;}9A3Le4Dp*;|tfG@_KXB1RVqTrF- zT-syNS@6;jEbG8Wvgw6i=E_ zQ7?QK&Yzi9(~DLC(E)A4;=6D;j=`+2A-PFsa5vK4i5|gKxNPQNO^2H_hP#>eN%R8V zi4!srwIp|GEO!eHP)XoA+)-vqZHK#bCO78rchN`q3!IuMsl|Kb$6>c?eu=&VeAT5} z>ROpcQoNy<_E+=={s;G$X1j{(60^cZ;aDk+ zTS;@M^aX!hM_DP-4y=^UtpZ5<5c^E8(2y!A9tV##NNA|a2>Uf&*$Ev|5st`I)Btv5 zto=5xU#ux9#EZyM)M+r4H2W$q)U4Q@A}``B#ZHZP}~URMyygcvEIe>hXU0$=D;B*_C_jL%g}O z`|F$i@)ux_Y35ZPvXA#JoekZM_s>tk9@ivS9<`tEt(cv-yV*Z~A@+nOwepnxa&Pr) z$!>f=ek%5)W=Z9F`*q%i+5NklfiOx1@et#3EQs?}PIs{Iu}=(?@d?HZtQt&etsIl5G0#)$XiNpJP!&EC3cQuDA z6CBEXtmdNkv%*z;g${t&SPr{<{O6|a?+sV2Qry=ZtK7kMQ2NXUNS!+~EVgQL1$cAY85d&%wmkY96|QMN;J{^qMa4!Rg@Z zKQFDJ7ns=;qnaMD^T7Ge1|~mNv}(QLC2g9?UWe$@8S~QC?~G2`V0cBlQ+d!~rf=~) z(}PH$c`%IA?o}RfnCp9J9_^rPM$$&ZTiV0QlMc&#ugw!2M8+g-GQ6ifsnks5_&%9; z<)8@QPZb|E&njJB75aXk_x0dp417I&LNfveycNFo^8*j@V~vH_&ziByK8L-&q4RSO zjmH|dV83d{EAKfR^G%-LdWb(04!Qe{23Qyl>tgq%I^-Jd=2xbxVz$$ zKofxWxAKzpFW+DDrw&6Bi2o`6*F8;aim=9`*s+bG1Y(I|dbgPvig3lxU>7w)$i!0Y z;cAz)_6T2mGP|{rPd1if&AXvu6e0@0p8dXYoNO$^Lb_pMEP{#O$qtnBDMkUeF9;#_ zLoCFfVrR*RDEVQH*4@rx0)mI{V>ifIRF%;1#L-n8g~-RhVh_qYsL~3q9o<75k0`;L zCm|FhnpDJv({W-ZLW=iEN>Oysq?KF;y03UXLXKx7)dQiTRLpgx2LP6z3ZI=csOX?e ztGLee5b<(ECtjF@P?8u@3D<=lCSHlq;g2SzC_5O^YOX6iO1uuC$7_@7l_aLLhU-R; z5pPBq@vo8wl^slJE!Tq{FW!Ne=4YOaXzD1)t>Z=`DdKX3jh}lmtx3kp-&u|Ari&#A zSHBkL{H943d?(k7K1;j{F>`iOa%&TRmT@Q6r#n%+9}(rZKKXsq_$=ctEWVp9Rv?&u zJCg&C@Q?J>8~o@g;^T;gey5UCYP)8ub}It97m3>tJior=h9j&wsy&Jzz$NTJ=st`k z4<0G>$=Qny=}s44L+tRIz5sd@pO`Ph61%x#Euz*ByCCssb7KBJY*=@;_zvQ*A7z2$ zD1L7Ker!Z{j`$&98*&%)A8nqSe*hcRy;l4j@!PI=f$1^iyrc#LiN0R^5^)>Q4{66_ z^O6o4X3#f@KOmm@U0WbHhMb>t$Pi24D*lG};P-ri=9p}L(qTg!y;%GQ@yGA)0@G$B zJE_r-Kra=WIokNUr_h>Z>?FB?LI*PuM>qet6hSjGDM?|V(Zym%#~^=y%PY;IB%)H0 z9`@8epEcy@gQI)2wIQ}lUfWZ^cL|#$CLi)3pFjWg-It2sld>; z%rP^faN$%7B$e2z-~i)hmg6n|{R?AH;Kv2mpi8>7D_1!_@ISRM>%>s1?xbNUy+fSu z_!2ldn@(^R=}sAz(XWWNIDYg0xNz*m&?4Pw!*co!vEcIb0IO7VD~qFQQ)G5`fxDqY zz>@9-t^DA86_(en71ua=1W-~Xt@y?HXRs@}`^0-3Ljt&|{jJT5^Uq>ecHaTyuK0k` zROm_klKgh;s_uK@qmJ_f6sd_Po0sID!>*=Z&OPb4EZ`d0)gqTBoj2rmUl6uCt`2yT zdgY{ODe;10ZTBzfz}8LehvG3LuyjYaFWrP>W(uiPDG{73+aLwBPYSz>Gyj zry$FSmlOrvZ^VO+Cjyo%x^hai46aPtME@Xu3KWK$7JWT6xeR`VTSzyGM;&hl>{%3k zx-cDnmAjSxP5jRBalrXS1*b)ZH&?NLh?8QY{J6emkHS$w)1yUZ(`6zsG-P|cC3@VtC2wz?Zt73s7t(7<`Wyu2r%M^OVP z+ObaC0)KI)RFEuUuc8jfQ)y0BfvCl?XGB@Vn~I&?-c>{gSzzSiqViW+#+%ssZhTd; z(;Az3i<{1HR_OW+yXk>di=EB^-|E>uwtk&`DMKPA>!REN(i>S*g2YI7kOPLZ@$m9~Y0E9a^coYdA~?Az~-9 zAloHg?Hs;tz#ym7sw$lvgMyc2wGZ)iI)jqVs**Z+2hCg3)XrI@yJt8;PpsPK6ah4^ zW9>t$boUL%=$|_V!?lls@j}*L48Xa z&aqaj9%3V=FRi-ZlppkJ$>6z;)zU}Y)AZ$4*PTj&%$Fk0lX8io|EapURa&RoAnek_ z^Ub;WkFjUFv#ahn9S))_m7K?~QC+&%PS2@&;N%^^S=!WBum=8A;kGBY>WR~Zp!G}N zpC4aie2VR$PowFbx`S$#dR^eG)eRdib~Cq*9~%fdx-{iN$6Dz#?&a<*tB+1Eg3eTx zUO=u(dTzKv-&(cfo70CN^EVyfsX~0AxCXlEQ%=8wel4B4z)G|l;ohK^0Ew+-uv1z% z@MatTL4mKj$_iL*L(_6QCjEQ#ieEb`s$kBz;Mr*n9jttnLDAh^RfTj83(f)F+unTD zsG_I4w#w6)8Z1sj1AC?lSS!1CRpFf%1h=H6UF==2dWk)3wYN&692>imCb)>)ko3yX zPv2h^;k+jJd79>;Y(vs(!yP)1j5%)){+nic30aUdZWy2|s_4$u!S2gwmt+M=Zw&Y7 zN2}&K9}JFLCb)#$nDo{#NC&PK=aa$d%QTl{8f`8-=(=S$SaDEf~a9R81!p-ncT)^M1 z+UER8FtP0Y-6I2LH}|PybkX2AG2HrMF(?Z!>PcS!K^tZPF>x}SzGbU@^AJ`yr- z`Ct%hyXu$XTlc%FA?LFpIm?Hy^=?=FR{ZGxR5b$DO5)|{>#Sncl;UUim#T4RkBX+{ zDc3uSrGL1;=|2D^M<1eHUVojmL;9EdhyJ_jhqE!{)$&150F?gY{_F0D`|JEKWO@el z2L8YN|KX--r%TL{b_8rjA}I9eI9=1VPeY(cS3>fY{2P=1!Kd>~8I}?Uq#q$Qqy0u< z3EYHd&ajbmNE`O$W{lk!D$$vYS}GGo;u5JXYhYrQ3y&oaX2>pALifzfib-3Bj7LLMPdw9|fsgH=4wkr5zSgj5l- zGY8cj&Gb2Q@9N9?_W+J*sLMfEz!U&VBMCu4fGgG=cgi;%xD4yh+-GwZup zx!$iHpcz26gZx1F=y9n_R6(>;x@%`jijcnvzcQz~AR;16>8T}y)u1&I#f{a7L`1j} zj1(jiq$_a-w+K9TiS|k_?JP+>GJv>*dj-5*h~UYfohxZT#t^r1r!?aMaBz!cBuSLW zS;Rfu@a{q}9NY=ClZ+PRBH|ftZudAiYH)#Cj^qpwN8jVNcJr%@PPky8(Y%D*O#IA! z-#uPsbjA@t_H>6DSwXbt1#0;cBN7*?&64yX_Yy;Sx!Q4w(FGR{zJ3pRjF`-8)$*&2 zC|smASMmgTfw-RcUOQfGbj6Xhc@hJ%hq#j$*u$?eqQPV%jr|7sfOv|R)iYG1a~q8T z*(W3NIR7TEp@&tga#zmOZj($RzYyO7gLQAM%0n5i-68p(i%FPNJ8RrIkv&T;_!C&x*Y%+DY_Q&erah1iCB@y##Vx~EIk6LCDPR#M~Q5k|?D^yByChw}R9 zeUjZSL1F3Hnts{7q_ENLyKYMwTuvS?$o|?txep%B<1=&;rOT|aJ=x*63-`k#csYy* zk`pejKiaZ$Z;$UcM&NR_Ly|KtE5q((x8CL-Fh=6mYKJA4TsDV&&VGM;{D3hEm!}<( zs9h?;>{rrq7BuKcqxp<6$xWBtVZkf2?hG~PqDMC{#w9wJBS1CYbcb_LH)C`odi|Ykx~7UA~09T{(QW_pk~Sptb)b|3jICTk+8YtVUIWvP5fA4MDBo zd+}2SIvS;9UKzup+75*YXYlI>NOJhLeMQGLB?weN_!9nCkduH@c|wLwwJRz*d=vlc zz@!{bHyT@@bmlv-J}A};7J%R)nTa1=xHC7I*wAu z7_DZYtD{jH!$0!JbVEuVbF`M>SxrWjhug05y2oiUrtgw!an&r;u5kZVY4>`YRI`-3 zw7%7BlrnraFs-wWsAem7YXhn|sI%cYtA_9O9#PFv?$w4=XP~;meLg$fCmoe0^7b*p zs#l_P;YU}c-0wIloy$AGh^k(P(uZqT)!!!_lg{HEWW-c&Mj69jts1=FaZEa&cbE}h zy#qBZ!aN5tNNSd{ai;qz)k2hardtkeP}ZE3G^$`Qs;hxrF)l|ih&(Rs6*p;TRo9~e zB9`P_87!T(Wd9#*Xtw1p&cIE^=;I|l4a4p)D>K4?Z zh%-6455`-J3vsPl4zR?pjJTK6`hb7Jn2I~4O{=~HwDF&F8qyt_0)Nau%~)Q29aR!x zz8dk6)GFnS{x0KIYf-fkp;5Glveu-sP;jIDQhaSTbz#s`aSuh?>=2k2t4vX`>gxtn>})LBy%m z?Js*ysg@}(1MkHIYBZv6b;BbWrzV|um9ee*2g(@nYW3iwj?>cRqrB$g>c6Oe5z}*_ zL-@A*3|yzSwA$R&E)tuYIMm!GO?jeb2&-*e-6G?11w%+x5_eR?5LY|821TalYKCMg zc-20wwz?Ya8WWlQVq$1g1<%60yHHn+b!A5G%nf|ZKV!_o^=a#?{aqJDp2^L9JbuQw z0@tsVRfoE+jJ%iI`j~&#m_7Q#siC@Q+J?xtxxAxoJNpHJq70xQ)yZb!X!;zFVk|+3c`8l`;+Lr26*VB>QHT_ST&*iVi z{Ux5NUgml=vUrW@Q{?%i+|eP%nd%j;w<8a&p*@wIPg*njgmJ!l4UlVITO)XiypXhZ zbQtI@H@bd^e7>gLQFMX0PWfDWwYtdlcjT`%Q%@ls#60DQwiARzt)ozDV~0f@#C)Ye z+g&Yjb&Z;_wrCiyoW7nn#<*F%%hfL`b#41_A+SF4UNLT0A8?J1+O+oT@Z?2!0WU&5 zP_1xfM(tc1_>2z>jJUVj!Rq$tl&Di{vz`rI(rp}l2ZFIG*A-EB);2xkT-I$G{lFNm zzUaC!>f_q6XG1_vGWv-zQr!u1g45~9=d3HLLZwkVTFu7RMft2tdERkFx<$FT{#ErI z*TYef>i?c2uO@9B{mOV-{lN8PRQfv2a~Xi0j(%r+tbPWN&&BIZU*HAABITskSUu)? zE2`Kr{6*n4IDnBczE!_-eH?XuUAyzkYsT%kDeYwSXV=$J_tq87O1`cG6cff&^-tFq zg7J03FM6-5b}0X8|5g7FZ9=ljLyxd-sQy!e?rseP?LhL+OB?CEp(;_<*;&-sp)n*z zUi}EEQ(DS1V_MfZqlu*Kyup!g30*L9UV_9&4cPWFJ}oxAx!(4L-5(8{duu^ z5eP0St$G}50?|uJm-34AkS?N73GH#I2}iFcJ;}SG7j>!bCfG9FYGTk^NZ<3m>L>FYIPvYSb}Mtzv`faGmvbn$xA zm&m@P`cXVHx#kFZZuFt`!?N-|B2dWp+;l#HUL1WMcw#5};Cpz1%+5t;&?}?wt#5tF zzh&Hm3+_p)xrE*v{dxWSm*cmLdvS!Gj2bn%BHDgK;46NAe%E~>Gppt%dUtg2hOAdZ z{knalVN8CF4t*qg-iD@EoZC9!-Dc+2JVu|3Ub|uJ)zEF-fzc>tUX32z9bL1*>ow<& zu0a`GxuIqpeLuQoL)z*oZ0g`g0zqm`)q^ewd`)v z;n6r|am^p}pXk3EOvm{wzeZ(3&xF9l&2olQLHKy#KvD*b(j%y`a&w*$T97+FK46sN zXg#7DdpF-1$px+Be4SB&WAsRBMuNhDHg{}%NC%IqWcJk7c)C%6&lU}AwW=oNte#yp zc((;JS_;zM^xjh)QO@bvTSIW;&FCv=c*DA{0w&g;17J_IVaD5n;WxeaRmYU`dk%vN z_YYUojfl6TK`Bs?GLY@?7rLQX1|^qi~7b$dGF zd`RBA$%pV$yfo&;nhkDmW<1>3{;m+H7J2E+t2Nu)e$M#5@$0+ENANaY2D7uK%*`^! zX;b+7!Xdbd$7OccRJpmtL;?%oVjvMmt4_7gfwM6$7z}wPf1Eq`f?8&*QBOcWY<#7TRaz?2wzvoju;QiS7qtX8`*LTU2Jv#5evww8TVi7?v5U2Ce)U=n*n!$ z7cdj(21eyfT5YAfsd+XrW zjyF=k$Y;*4J?!p`E7=PDhJQ<()78vOu5~bE<92Ti|5o@G{(#rQT)MW!ebLM_TXO*< z-uM95+QX?m}?I-SszqSl;@ax%OAO`W@c|21Y~XL zQ{DyUy4n}+oil~o5I;yCrNg|7%nh}#-E}jMZcF*m0Z7t3z=^K?o`=%1|5sxjrwo?T$CydbWnDD7wOXVpvPEdbLcc<|!-iW+{h0K-*zyXQbH_HbU@ ztD?c59gldgad&$T)y8@3h?~A0`V0RxKls)FQ&CIzsE%_7L{iz;q&GZ4!ivy29{b`V zx0@au{c3!J8|-PWP4+kju%4~I_}`3gaSwZ1YnOOjh+Dt?{jc$F#&@_O5Uu5UbXQ2W zd;R8o*S#No%xte+XHmhS_!#M=KnOyaGI(NnBR)r3;t(^V_-aESLWPMhkTR2h|{Jw3H`9yq}MYnWpF zRDD*y?70QD=wb0W#lrxxr~0CN-E+6L(SsT%Ho{@?+ETJ3d@l6dnSh`*#M=_Jnx z9xXi{(s-X8DStbrq(6CIn6GQ^ddTA$JL>U2qKYBja zKKHl|8tTx0ctE?t{p|T%`^w{PykbYGI`_Yp|No6U@>OX_Zqd zJ6BuEl8|j#D%w&;&WT9cv9`95Z5avcKvYO*Yb{n{&LRj+b2S&ce_s$jbJt*AXf9Iu|po(5ge9a@nKYM?t0 zl#NGDVuMbH?ud#4z%?v)?L4^OhsfVy|Ds5t08X(i;K zp95>MeJ0eiJEr28``ne9uuTr8$;Me`FD$l#=MGy*1}T4oooXdKh+F#Y^|wD@zW!Ou|g(gJ3I` zQ(<#|xKec}X;SNS{z7^rwy@%h`)eQ#2`6D@@E6gSVs}^kbpN)}dT3x$>kR&4`f@DD zOS+GZo>=TM88egbPG5;VR58h87KkM#O>UjZ_n-q;X~hf=kLb8!;bhD#zNg~Mg<}}PC<@b2n41eToG3Ic%(#Y zinBq4%npNQtf;C8@?b<8iWQDDXCvH9!pbTz9y>tn%Is)zHX_XN*wYm&Jq||?`m`;h zFwfOKO91|oSdSCYiw?(3k+@KhW(rnSLGqACFFRa3#dS8t$DD*cU$MsHVs!f9t|^k) z6kl^PwxMFZhYh#$@SiD;b5MSYwcS@L=pH@M(!)_xwbCj6^i*tnd6viH=wM1MYPo@$zFydvI!tqR%aF?Ll!;1nn1JoXak zCTz3&VUKC67L~*}N#;?4%o*5w6(>9vu3A=7?Bwc7L7C}TU4_WQe^olL;YeH|lWLjW zy%jQ##GD-^-i#(6yhq9^O-c5&;raFuXm}6jKt>|{=MSC8Jft30|SWr6_%I}8q@Sc@1sM2i6Fw~BN3cI~|6wkUCN@+cW1+(L! z;%+})s^`@hcIijpsIe2ERozQ?8J_oJ_@#c%EV!Kr1wIvCmgnObO=R5ujZA)sfvqj@Es zGh#iD5na^Y>_q60Q)FHWgaeO$KPBI zG#lx|PBJ?!pzy>;@UhZkQL{^ZP-_(DyVvmQJ=eu9;<0Cs`aqKD^;jCO(UTQBc&uqQ z*B6pPZ@{kS-SFhb{&Vd6>``CHTKZ+|Cf*&-(%3o2gXeJlAT+uL%i#5RN@7Eg=g%4S zgQS{!m0Ng5&$?L3apBoSe`Bh-8Jo>Bc{a!99yiZ1`5V`nuVT0JUIVW~`Elr6T7WUl z+=|WTZJ%ibtEjZO+5pXZ#f|Pl-dE4JvAW~3xwt@0x}v>%HxD`IYpnJ7z}(hA{s#I@ zY&HF_=YO%|%ACLsgbg+v-3NISy=KIDmJ#Qvm#{ZML0p1&uh}hb8Q2QA22nE1UD#v1 z*1AE>BtUyN-@}&k7J4m>+gs+~>WZS!&D~f&59URRt0{|dm7pjLvknWCWUuvc z9c9I?u4oF=tj9`uAznFgFUq=HC1?r|Td_5~rCxjDte=0mItHV*C^VQeyj5PMan^S} z^I5_6El{9G^7eR$;sQ?4=bM6!EOS5h952yJ8Am>$m`?)|p7{~Bo=5XyByKq|G+!H{ z*{XQleF-$rB#IB8a9Mx>q88nRZRBNoJ&aSGNLoN^-JAn`*4@I(^?DiC34|bI7&{mG zy!$$@!0Sugn-ls4>M-^;=*#X7-d?Z&;>MLbxgo>Z+o7+!J9#BuGgf<+6W!F|>^vwC z4|wHXi&saNm$@M^Y&O)=t>cNk0#|30>)q5CHW;V74ZIq!<*N^tJ1s;;u=Al{YUQcC z;(@V`xKJIz-U0p4J;-bD+OWE_ybMfw>;fp@d-GZV)9_8XexW)Nke+{@sH|x7+P(T0 zn2sEyP&*Z0yI=G6b$K0MUEq@OWHZ1xLhapVp3bZ8kKai;7$7vG#UtG|-UF|*tMMmg zi*VrLuK3aYf%n9#adp{jS>5k_r>e=>U$@Ji!sajd+GmTfAf|meO~?Mq<*n_IeQ=UzwW=hKdygP|2^s8 zF7XK3uNb2p%XffI#m=vYaxVq<5XCs{1ilk=0d^cE&wX?Sb@&Ek7OaaeIhum?99a+p2^H=FMZrC}S!Z1EV5wjYK% zY3K1#P(kkV!&Tro*OVxxX|(}i&^)ZQV!)$y75@l*25vEbIrIS5Q#jdEGJ|l`JQL^1 zkA%Etxja0Rpj`U^B2OF;`a(2 zkggPp0vdCT$A`iQc&RW7SxP}E6?mOtsfR6SSxK(Xb=!jrIb6EvylrB^vS>M)NMvQ*f8~8(_EbB_bDJOftWoPQx|wGhq+$ zDp8VeYcl_$d3(>$)wlL6N3y<>$jb;Gc@xd`nYMmlWyRc774;H~yFC zkFVoe)Mdp+Tru?!%#koh9PGzk3%Nqiz}@8^hq)3$#rb}tYatps9jE2*6TsSw62$d> zESg^@A%s@u2aKjcuG8~z!~A}jnvh)C1lX&P8}tI)C;l^7 zE1{tBd%);=2mmDm&)!>@mLRSS4&~@QNll!<|A)5*l(KOT~A0D10PSEQsuS;w^4ITaR3lr4-MCUbgv>V zQE#*x9v{R_6ikCJBrdBeUgElm(rGTnO%cq7`xDcFRaycfj^+{^h+n~%68Ba)1i5BV zy39wxqXL7Ih&5F)L98~PyNYADKfb~|Yvgimq+lm}g!o=Egw|$i`V^G$DV!`w_0!#?m>!^3WG5$zLBoP5daf6h{Ti*1h=yI{q#Cqyx!FQ8>N&kd6W}}`cE^9Xly5Pr2^Q)smOM}Oo=o%bD&;t)C4yw)$ z9nQ9!piSB>0wcVRM5(S1W#!nPLR+-if=Ff)DYx1jYRWM_GhfAR7rcf`wwG3abO_7k z4?#0q*a9oOk5pSt3{&T_pF?kG3k09xFG-!%ewXKMqr5P;;dTjrz<;-zs@uX!x1nAt zI<$KPf8f7KyYjz<;nKdmgx=Eb7mPzpB12?;;jHcUSI|yvv0w^fE*T}u4j=Zp^V)m| zH-4$XqZOHs4IwYUgfT z`JM={!Z8>Ln_@BRaAJW!Vm-M-R*ccw-K`3}Rw4*S^ra5SnlM}r#6~x0H?N976q4<- zkC`3X)VU?6(Qo$oP`r3I)@ zil^FU!J@V&LH;Z^N16(aU(7FY z04k4|5I?;J8Z|oa{8t4)l?#p{oa21}k4?K%^G)#<=x7xPuXucoEDFcf*cBFSkDv;H zj?bzQ2Gxyh9f8`k20;yCdHlf|r=`eU?C;QF+_G^>1POqbi9yA?P(Kv!wT}e#h;{MT zYl@aS?neEi_^34rnh;y#p8_;<>2B0d1pv$m+7P?rf7Se1>R5#Op90{*1YL;Z@$*kb zEh{ZTjVkO~i$IU4j*mE1w9Ii2>X+iXc33cgI6fu$RMRqbzU>$EAMHoMQ^Yo0?kV#! z6M&bPf8xFhUL)?tm!E8Ttxr@qbS>eHy!;En7DRKUO&2+c9Cz>EIRI z{gAPYargTs zVbgVP!U*re1pDcaD{094lPojv?!uMchZClsfkxAcjgu|2@K7PnTa*xRh8}GyHac3I z@!rBjZ)F1cj3SzL*f_;98}BEqa?~WGetr<$dYC_z0U8&C8@z8Pl$>!{g(=~OPIuLz zgiPaaq-_v=ZdT15=4)CjS_KwL%Q9g>(^YmPAilfMOlPY|B*j!m31 z>qwZd4;asC{JKYpE%OUq4sQ>%|v zA7=v-9zG_j-Fr`>eeVBa9m`O_%B9;R?D9UIIR9)^Txl5!7;|(Ca9ycRj5zCn|5^r_ z&j3CPVZV2ObHZ6S;o1|%`IZoTw$S9=oS1vo9A`RVTwn>qZx_DyzMELHfBtG*xdv?X zbR6M3@BYN|XVbu)CHPMO5|b6bR`r|6B@lO ziFkz&hZIo)lytmFXhd45_;bQUq>@4g_cxlz=wn%fuNTsg&6HfF8E+C9eJv^Y%fd~_ zyI`pbCD6o1KMM`tBxE5UQ5uwVf=R5|BwVMvD%_5IOVKH11YD&iK)GIbL%0(;LV2$o zB4{f$fyxcKxtx8-vDAqw7b2$0-Z*xXt{Hh4IgPqV6+@I%QGzTPcwmh{E~G9~6%$=0 z6qJRoBL)bOzSLAeZZDOf&`PGRS13aUEi6!dCyq)W1&}Se2f|w9YARplM`B6s!LTgd zfbcvrg{o0ylZK`C5LmYEiBN;gq#9NABv!RO6qbuOp_@zC)c2|(lH>K0VT^6~m%^LK z1JsFiE@X_1AI`|bzZKf1m4g@+k*t=nF))tKDl`BNUUXd<87XH+z;@`~3qSp=r>29T zl|)X7v=rb!3!fv~se9`j;$3SfQOf7{zX{FA9;&o1D!#M^wN$xF_XFH`pHZ*Z6~#NA zLM>Ak=|+X$ksqi}>)PT=PoV%J10xToz=uCPv{ni z!hJYN@6Qb-YR_s`D^Kbci&prwUw7=EOhGExSQt;|DT?zs31VeLidtd6^OBE;i%355 zq-E-2iuP&{UMa*sEMR4;k|^qW3QGy$-WB2fL^Pk~q+GR`Vp19jmP*h*yUFKnQn?yR zrKyZWiv%AmV);BuYEaXuCY6z7sm6zk@_Z~w2KCUNRdpJ&QjUK*tI+3Ll2tuGZLQbCd18|K96J$qRu?BK_gTCq`g~auQq88o zlsddf>=U>qp&zsknE*MiRm+%`! zw?XIB^b62rTD@_th1$7U)a@f!<8vV`SzB*p;Tm-d7zUqHYoafdB_l7gQ(?`zEYYCP zr8OBB^vUXr>~*lKx?IrewQyPv4r_3&a$41A9H}hOR*L+2`e& z&I@HJ$V=>WSi5eQXx~3RU)H?2pifa>VsC)m)a@1h_4#kjxO%6x$jj`Fu-m$WqKUpU zl0EB*Yt@(8n_zczC8FuRi<6`4%hn>VurpvFgCUyZ8&s{obsW>8$4f;azB$P+>bq!? zMoOk-R3R5tX75aXy5a+ExY3>od!RcliuOH{47uo+%4)K2ff;oQ5#F~l8Feu`b-2mS zf(_`-i4F@D$>fVs@aSeumhzGAf@rO8V{+ETp|qA}{#M3g{3X!_-`mM07yqPRy}c^i z@&vCDF?@TIbBm(ZmA0UAluvcdqHN!1$=5Fyt#iDJ%2i&%{0n3I+LDbI>(@#CcPH2K z9N#A5`u<4%e9^qlbk(@c@)8eP$9*THOmBdu(XJV{TVCV4M5Vs7Qvw?3X{Kw&Jj+{r zw}|HpOCf_HlGbWuTPz?lDe(2KX4OAg){DkMC8@}9> ze;U58AH4zD$@q$YExH3n)j5}f)46RBF2jzuhQt%Hagx$9aK8>IEr2TeAlL4ZrfOT z8+AxIv1gjt%`b9oXX*EiqqiZ&jLC#qVlO}3+RhyBO{`8-#4Sex=wkCzFFtoUZIc#M zYcV>a=ZXXUHm$t}-b9W+SfFmFXTCVpZ`;~8m-U;}ci2Z@GkT1Nm-_8l`y%>(n;g4P zN0l>sJj5}6$Jfrk5|vTfg(_8o;HjACSG_jkN>PU6UDPq9OAk_<Xo*P(z~eR z$~is$;xxY-Yj<7wli_#|Ri>QR69iPAp0&~|QJYKep-w30_k@VE{hqD8ex+!$<9!sc z8TDX*9`Ir9(<^P8OYfsjDi`%E6&LyaUi<6HpUp_*%nF7(VWs$xpCfIKCYa9chVU4k zgjn%$KUbQee+zxM+s=bQfl-+6hoDh3^>mij&WFK!h+?VV;lO{&hrslr5hxJ=>2}(0 z744YDje*l?gi7#k5ufv;(#~tr7+Rf1r1b513Yo!8r*&$|7|0&B80O!TDsJ)HMth^t zGg|8tDlGwobaA`i9@<}x1JhMcsj@5q5$1h&{Z7ypHO4R{dWyt?A~40hesX|sEoQp* zQlyq(AZ0xAyGToK>|#oKDbo-w)d7M(C~1K1e@xIbomp zKfkf5^KUwCK|Wxgh9RaM6i@JXc@; zEZl(RoHDWJtQhMrNcCw>%hC>L)JkekojAe&Y%0E4kH9?QpJ%KgTo50qXh_Xy)@P|7 zu`j?@jv$spyTC6&-3{ygnz>h zSVm8m_?Z9Pb*Pr??BOT&D=>Obx0vsbSVw88&t{qI8W^)jFP8d;tz)-*%pNw`8(~{| z9)QT@>UI1UzZ}+6dlM|HXFz=3KV_Y!B|B&Msl6GN-Sb4O@y}dmY>BE)dS+~~1x}y(wC^4fXX*I_P77& zx__>I-!}RZa*MH_Ft&1hfMeR6Yr)&OuOPP>2MM5HJis+A^xDuL(I(?<%OS$#%2@%h zH1ajYcG_!Wr{yrgsnRtdBrW%vdAsSg@s8yP=)d;}h)pZM2F;_rF?Lx>2`-h$fHi3i z*XVhsH^#e`;{*_%2w<6$jJ<*jV0W;Q5!Nla_ctH=9wLP(w zWdRG;&nerUKl%=0WGKK*UJ!s>pM1S3pF0fcXQ&9I%6-)VnDqtMzvqt*Lk1Y<2#J+v z190ob*MoO(-$NcT&J)&DUI?JAZ@HeoWAweoVSIhhS}+b|t~Xw<-@*D|A7qq_ORH=R z*s=ceb@L9>2jgSQCBnwa+X2YJ$v4~za33{KlvjE-S9S*o*8AK@E6{#4&e_;V$gJ!O zII}+PhOhwhiT{+*OxRlaIN-{9=8b`Z)=&09hpRogm5-d-*YCaIQ0V%ZGGw_%V1om% zcYV!`m_o^C%5%o@yE`gB20UAT9bl&&zo1?y+j_V_3;nSE>5br+9bX_X86AW@mA`>F z`p=E;g`-~}uNb!o2P(%0I;PKQ3*O273VF@wBpj}s8t9rH+Lpg_^eg0zGUUk7%A1p+ z>Et%WPTDskNQM#0DqRCZ(g$~&c51(A-YS8Er_w!eRr;|uH!cnc#7dyNRQ~o!NLRHb zadBR`7FbV@xbp0uwDgX)Vy^25#cI(Lq?I9oIq5Ijy10@Nij5(;BCm`JOnLIZ1;gCo z5xWicfN-LGW#HlT>Fv;6wC~1umWKpIB`#2u9sp!q(|6;rrJr!FGBHq@PHtE1qWv(w zw>%=$SJDET({tO+yG%cfA1sdvmn%1ccy)O@bhl((?MJ1lr?GNNAT>wPp0vC5AO0uC zGs0EC<$j%huU)ts^OOIX@tkm@vM}&ly0v{^ck5677sgA%O#rVOyJ2F7OA+RO{I87H zggcc-0_%QzbP$Ww|6_lHz3sVIS?RHG!?KRzA~hLiSDJgYmBK*Z4XGV%MWv&t5v8@K zx6(%$zM-Jwd(r49^w=sN1fJcHF{@%P=3o9V#t*`W z%EKN-7;<%~_ zOQvn4w1)359fKaL8mFI7<+NnM#)w-*`yI!k0g{VITw|Y#*hm4etkJgKan=d?zNPb) zpf_gS8rrWN+c;h|Nk60N3VFrGl3OkZFyjOcOh=+~6=F%^M%AsP1Fho(6PQzpbE^VD z$??5g!ULG`f{Dy&M8K(8lDE-%Yv4dDpuaF@5CNBE$$^a%0Wk&RAehXYMf9p#y@a z8=u~8J5&lP-c^hAORI{O{NDKMb{WY&$r)6d6G7MglH>51oqolv$s;r2p8A-oV@u|4 zLUm>r4^JKejm>&&6@Li=tQYEwS&kzRI9yMx3MdKQlneF^CdYnfD}tB+8Yp8om3Pul zVy85^sE~SU)&8o4O{&hM!>wQ=!Sp4jRKZ))H+6QF9Y%t(Sh&AFwW?*wwoPw3^@r6{ zIdkEG`t+*nEk&FDb{1z&cH;adEFo^Hy0fHo)0{g=2QxqiCmi%=R_T^Znig<}USe|U zceSF4pf7TXaufNEqJ#!o7_A|op~SSLc~dUfdzhy6FR+FYw^zMha(7et9rN=?@FQ+a z43Sf1Tk>#|>Q2&;RH8E%gsIwv-RnO#jz(E^h)%2jn8PQ#3N0GBQp72=x zv8p*iff*THG0z3Fs9x4MVtLiVprsjmyBtbgAylXpOXOFOuuA7sT4C*q{>` zi|)o8lekckRtiy7MGBHj516&O&gMv1XOYAOFyK>O*OueD1CTRKQgZG?HAm?*} z;ViweN);5px%M9MgnB+F1fCo{SamUI{pOB)#V1@BP(!WR#HUrwK{=aW-0M0aSwIc5 z<`O~D1VHWo-g78-b)$w`w-et~-3>aidC~ota)}!iV`USqRlPwIQZV<6${iP?BUJhN z;i`e43!78#x0RPJL<3H9z^AHbL9Lq$?td>IUFaNT6`)vYuY>MxF24^wNn6w(W#tmT zR}BX}+T3uTe$uq4f2nmh@qbm{f-IYBBc&&CiyHw)UH`kP`~BC=*82k|TNev}t&{j) z)qg=_=@YwMDlqN>;9?|>mrO#FM2F6%r5XDr*UGx?~}0DZRn{e-)0N=or;e{VWL-727BR79*~wb1ZX&?;`O*rO-9q z*}P%Tky!YaSYUQRG3W+hL!o&!?%fXzB9eXKsO3^~_W-ZeOR$=GQh%yy8EPMWoYskt zgmSQOp59XuhdN0wxw48cfl_f+J`pYVqX&sK;~-SaA)*M@XRI-QbZ2 z^hbkMA)p~fj?~Kak&>OL5&C=WkU)zNfPRp$*_C@xcaHy0`$ypDjZRRV)~}Szai7eX zqYD^+jG>Rtw9UKET$)+vPQZY4#f)Dt9CC^RFwwO`nZ z6i}IU#CQPVUdbrYxri`6f+VJzNR`x~5*aEWLA3(;hzX=0$tBb##=XzSMMz&xGW?=G zRnmgm#(1NXVR^pP6l()9UDA%)!}zOn5WD(O*IF+VGbDFWCm4%*V#E?KFj_T4Fv+3h zjAcE=Vpo4^s^7Q2mVaJ!zHNfX4Nz8${-;FR0gydp*KROrRj0*-qRo`HA|*u!6UD zYoK5Q^Co}?|A!jOoTzuH!Ypxaoe5qWl8NXUOiyrHtCw&#!S8_5*y-rS%xHaC6*7pE z0l%w1CYgf{WM=5~Rq7zlX83)5xnvP~IrE_2NrFUi=&EJonX^~#$1=s>7v!Rx8B84! zNHJhv+oI2xjG~;GOg&K|L8DpBL4A{ii+0Xr8i;a9BpMg@RsT^kj2_8^KhU3+M5B)| zA-#T5R`AFcxKXc=;L&xde!X<5DY&0y?I)fCfm$V#+^dk%Li)3;kMut#u0>2FJl(Ni<$8=_>T;pjZo z8~t5L8G1oxgrP`=IW>{ZG!wzz60P-1Fx1Ofm=QMIs@F@T=&($-;iGIAGs1zt(?5{Z zqE~0~4SsS~#7I8;y?#J)9-We@F=We!BSv<>KkA=IH0aDsqoH2TiX16`f7TC4uA>Vx z?S_x?;mDCf_*eZ`$ZhoD%;|ky-qBHwJ5}HGZ$Sl?Ak(KWt%jR|*{Pevlw)8!|Kc^fl_GoZaxB`p=RV=$n}b`CujF6!znOpg98SBg zpzeoXi)pXiH$K>L%hL|zY1WF7{qQZT9HgbS5Ad)DNvB6^wjF?v@0}=}9=v!<^nL0v*OUHxaGp?(sB~~ZWd}&B<&XyMsy3R;eQIA-slNL!mSMS>L>%pHh zxW*FO!kN7V2UZ3j-ZK3m6!Z%AAGOXRL8Z80!c*^uX|>vz#!{7YFG89Se0B@|p{y1c z+Xz~1dVQs9gB!PGJshgl#x@>T&Fu{YD78CVjy-fci;HV4Q@Qq{rCWmgw=BC)Iold1 zIKf;%3X^UN{`UJe$aUjraphJwQiOCz@TV;=KoyyKDg2~rQSVY|QSk3AzaIWM>xe~H zsN8#3N{fT1vgRA36s1@+PvzMgD=iCFjs_d^6{A>ZJ`+m9Nd>`3RGQuEVl8ZVi-3ffP42QNNa;v1Gj>ol7(+XTalzBsXBNKs{z;-SnX<&%C|QK@Gsi) z?iz(k3_&1f`jgg4uLkF_GM@D))dWr@Jg_%i+7Y~uHLl-Dg#>pV>+VSz(!0SYSd02& zR1$FP!4KYMfOEN;713X$awMUps^H##m-Yv%S;_rPDlW;nni)#Ukv;<^iGu#`s!@`& zj2RC4pWX&*S>pcSIxg8+&Ws@KkbVd@v0D1`>qg1WHOwdyS2_|r%o^-ZqThLNtH!#N zR3se@{=u4WHPvb38&9d0_wJL92^pU?Wx(wmE}`+X>aW`&>7#~ol!mZ zDv?eLS(vqKp!l3?BDK~ULpmm%9payrKF|fu3F=vE9I0HoFl1@g-T?=-D}}1CVo7`{ zEQAEs?UCwI3RZRMI(VVu&(}{77-0 zwx<8Qbq%Q=oL9|RS=6WJwQCwLs8V__NjHXk__z3x%LPobpq@!1HA*u>9%iW?C0(GE zWnYA^>ur(dhP=$`1kC`*6ix$teeZQ?LCBY^H;;xS!W8NyCb_3wS`_j->(`?{7aZ53 zFRM28%F_>pIBuOYC=A-TcH}ZVqqj?XEM$YsZ;)PZTHAlcx*5<dm@``v;vaB2zg{a8|ETstSqUT02O*s7~cH!?*Sh zN*h8pZ0#H@yNF!JX@TeTK9#nFY}@)~P=8Uqj&l{ht@nkrBV^y!agUuEkZGK2*8a#h z(z_uiwk~=c(;!Kswp!UFt8`y)h#5hR`K0&KMz zA%{XXyZLP!ZWvxaas$2-G||5axxbbF*zXc6eWVS(tM|L~eaPdjn#b9fhSNvd;YGdw z1B*u6R^#LPORNne9q_%qf26-cer~lt{&;D4!^lne{@yXw<3cB8pWg|+OxxIh%X)z1 zQ0*8xJ3HVB{jzCe|84j$-lXcV2_D&TPlT5-n*^QA!@Vox=Y$4kXFSngR&V0mfgkCe zUcD%EdG^64PFIi_oGy52FQghC8lPSJgm^`r!MO|EJoo4Ohpx}=cv5`Dbu;yzwG7yM zLPB%0Up(o$BH2v6Z!IS+s$LqpC;RUc2aPM8+HI{Mc~-}Up2$8nD^gQRM{8C5URX6T zv^qP&RHSiapmi!?FS0r*^g?#3sZHZ5oYun>ll-gKg|=oFn7(U98P0kpxY1W{4%KFh zO~H*^CTH$gX>V|KR_NnwjVZfvm^so5m-U8MvqNp!MpJzwE3@&YR!)kl=7#>r-j)2M zQJdM=r#c0o_xnS~=S+F()`Z*A_&{~0cUAS#Q0E+4$9VUgxTnG< z3`<~SDoKRu%Fv)3=F@?uR+gZjSx1VmJ_SINB~M+NFA)2?R8R_bGG11Y__J#{8bs=Gpu=Xm0RTe#WICZ?vBvriXVnS*+k-7=g#VuCk;q6}kbT@K}0muFH=|5Ix- zDZ9G%j3y`R*-(o%r}3HUYVWq{SD|-ujy-d`ipy;rQnmJSs^5k7=bV3*c2%3(_*`|P zx3Kza=-V9KGuc(#Hs>R2+ey2tcTM|}^X8fUs(Raq!(az#Z}q>S|K|LC=5Wn*JN1?I z7U^L1gs^G3i-uyZNw!m8TRTZ5)ziWj<}Mp5zUG=oePiwF1)aoUzPYJGZP!Zk&~H`u zK=9rz?8L(zL*K8B<~f_0-6USMR~Rl=JQUo@WjkA#I+Cc`H;k6sGL+vs%67Ig^(09( zI*gS&IMme2$Lp-ch-j_MKvx= zlpFAze%+McKWyzMovTg^Q|6MNE3VUa^uM=0BGp&Z!kTk)pPR3ncJzO+J|^Y9cjNv%((bHaw@_FctKFvOXhStIi9vKXN}m zH{UQ7_J6UyB;Be$5H?}k^cT=J+Rpy3*4HG^*BLf@Tfhr?n`vkNH|tvfSmK4jwvk^b z+GyNH$zz7fXV_Rov& z?T+(5|Ac?-eO28Vc4QmmrC$fDXykuzJ8%x_fLx1u8FlA}=*p;SgmgQm51^moUJ5%f zdj!9jKS=+}9Spm)E#sxW19<@d+xidbbM^DE_HBD#I^1;KOZ{X0AIV;A3G;Ye^)l*a z>0b1|s$ac7sspi4wza&>zd5?s`7iSiX|#GIYES8M-N{|fuL&HnP^ z&Eb6`|G~!?#>mEnPudQ7<#&s%i((pao|GskQ zbSDzP9_LP<|V&r>f)9< zJ7>blptdy}lUMNOd)H{GvrDEoXrMd`jEmwo!FRdGoM&hHkk`mAgwyg`-sImMJ?1=AIO{d*5w|iOaMBc z$e?N|oRt=ux-Ia6~o}8d&(W`E?;iSwRvx~Psx^JFgwOtoODPb#~YDosFlTGPO?2MM4ej5K_aN+WnmLAD;#&faTr=y4TO{cLN=8W{uA%dWAsl^+(P!CGumvurEI z#BQQQT8#~aF1k27nn)BcT+a?;~36F ztBaoN!vdo5GDl<0?j4qngdnm( zHZp@>|=knB39kYl%g>>aM=?0dY83?5L-Va{|L)ZqB?ba-8!;jOG2 zLuEj1NrqOL0DPEill5WFaN=x218quf1Y(Eby=)M3iQ`$;X^_aNk+uTzXW4U1J7=$r zIJac4V^ro&@;BLAjFuy|1^01loR?1vf#eKzm8}HWb{9r0&ENaZ;h}3S zHO6+743Wbk_BB<#i+WgEOT9)pMxHJI5tN*-d6)fgxOOBKQD&GYM@3`;r*Hkk;im35 z+X=Fp924<-`nz{S54C5V|B_CU7t5DN9LS$I>|(?y1Xu*+gr__%;$*((Fwv-1aBv8L z0WK#;oXU?LE;AyP96Ul~@R27+T*}WF)*IDI4gpbV2#}{o+yv}vr+%c0Lqtfx2Avtv zmtQ+f>{qKeBt*3#RGu60GQV@UtRGp&AtU652zf!om;5)w`u@?E*mzqFd6|4q#J~A} zhaCo7&ruU>r^(Us!x154=D&{`C_RTxtgAJ|%F7}a?1*?@G~lR4Q|c53oc!un?;XkS zn+CY*k+XMWqkt+B5wauqy?MZ-?x))7$O-Z@5wSbUfsL7VzCX#PCMU_&5o>ldyr(}h zo$p^`yFgwmzY@U!e*(oL+J*jP+eLDke8wU6j`#0}9%(N$rqo?BY>?lIIJ9HR2e(07 zJ^B^t3h1f2AMpY0{((5CuIJDYjRq$8I;VC-e<&M7UgV@AnhjafC^5+rlJNABXcAGMRrlq_O?7t+N8~djy$bLjWlwNd8Z+uZ!y{%JIX%5Oy;DxC7g?FFu_acA8(!&`ZGq@d8}OWF%!@0<|tRO1>IvNQLq`IQL(jBS(RXV!Q`#qLy9&U=mPY%H#G>~pU1j-u{7|26Hk zwzKhY-PCyTvcRZKJMVoJzQ)`Ulw?keUr-YkmABLSb>MaD9cR76jJ`!R%cAz}9QV!X z4YG@K6fvvMvnDR;^`5G^RRYAfB-)Cn%bz-^&{CR~k*J@?wKx2StKm59K;^qP(+-kCpk2dgXC3)+^%XVlz{ zI>B8u5@VI|iyCFd?1DYm-yQl++FkeqlFb&*>OYqgg4qVLnem|62Is+C(X z^4&Vx>nzI*kI$=l8>QunM}lo!1J$yAX-t02aMUAi!wB7GGW5%Bk?}igzC~HMh7pC0 z*4JNSTN+X!HIs~NL&v-gDWF7Gf81gA4s#viKLH)-jtUGVQo z?^+)S&LCbKE2){j^k?=F@5vd#!%${QFNYRO=VphRus`Fs6Z@HP*F;P zSQ86M@1dlg06|c35C~#HumljLDN#^qDo9B}+6h60#Dar$uwVgFaLkDFs)LXyHi!iU zzxDl?Uo+P=3dz~)?DahN&1DTM2M%^KoTdeKo~Xrntc6a;`vF7u>I8KVFzb9E-?>kH_(w6sVPJ3DLZJ^V6xU*`{o=v$PMWcYPS zJs6oCC~feXzD$*vLU~qu!DDOYy|3ki>;EacoR~`ar}m1+p3E=l4+drb?7iZ=tMg^; z4Ue2mvv1Qr;9u;$>b$4(b?rTmlbH_R!am4e?9Fdaqr9zs;&Gq0?pq^v_=QbtVmif8 zE0`kAqb$S>eXZW(N@m)(_a6+sL)V=TbbhLR?QuV|^xM*p$uEcgbmn#r z*BU*ZWj24?@zL;dsLeU6^LySlN@&LV$5|0(2E3#d^$ zr`FB!T%E=Fo-e=hs_bs!QOfkX1)e@xh2L#IuYX-G1?pJi|M-giFPX%!Lp{%Bt@)Au<;Q$mDy)!JW8yj zxYfmYUd!6|WBALDKAXphXDKV|tY6>DD*dr^DEaNsW9O<)Vjah`n%MXwKjy*PmM4T*2CXMbHgc^E&ix67H| z>04LmIX&B9By9MhgygJM*}J{ZoG*07)jjwtD|>8Y;@7$F8GrX*q{P>? zdlqNg|MdTQ?mgpqe=}u!UCtAj4n2S7f1NwX(Dy4ToI0JSB0CPG8RrIV2F_omn9ls; zc`bY2&*85>25nv>UZv~-=G?>V%Adq<=Su&3;oRDpUT5@tmfiew$2Y@=p7>e|Va*KR{jU`A5ya{WmFx>&APTAF}$j#wXIQ-)T*l|1e| zS4Z?pIi&yf=Z~VH)%}vEoi%kEy)qAt{QC7{%J6D{sdw`0{JoAJ!i{bmDH>jFkfxcaN;$Lb-;TMCC#?X^B<-`Mc4A3tn{69*{W zbwaO@oUz^Y5I)un_ZukMI++)e(=;}1`Gb)bljL3Jv$~637dG4*D<56|Q?qr}V5h$B zvezy!q&yy-yV&cRB}Yz2rHVOP9tDj@tZ8{7M%m{nN&EeN%rH9i)A@Vnr@Gf( z_j5{rFa4c7HuTGRq;t5===Ch8`S*_BhOwbh=U<)Q>%MsP=cs>gjEVfM8S5VfQ%i5{ zmmK5o7r!6=Zuu?w-TAw2ocDyom~nRF$m5jbTy{*HP;cQq^RUx6WL)dG^6^QhD<;)j zc`rEZ$9lURjvLoLu4+7U!oZ|1b=rLI4TrhoM#o{yh!drgyJpts zjt@CpIgT`*Yi4UcFyWSMJ;6KjaPzp-@kX;@bC+pdtH>*%iSu-vXgqs@cG7?))pGti z@4bhO<9f$;Oi)@#r*|!=_x8>^j2UldMxLmgES=f4xIWl>g7cE`h*|5z@+nC+ROfn% zH~(SU|0aJnTK;2;r&qMEA+%GX`iUeCrFnryp@J3!jKiPM_(rxGS)} z#CyRJU$f$ggemFPE{aTfc z9Qk0@XHKq@%$6?i+FXCjJMRc)g54zYH02!W%C2qo54_8c5GKSz&r&&8y1FZ|z6+Sn zg zOthO!o}pYQ_36q3`;Sd7VPY)QJC%#1eqBdFb-y^5Jh5gnd8X1q8qjsTevZ%TT+YPa z$sIG5i={zbC+ipb_~r5@+D+-$d2~rq2(_%<*@u?<^;GZ_)H>bKCA6!uewoka+&dGC zrx0w?ousE0SJjhzQgdHUY@bqP!*m{qpu%|Jlbt&@(Hw)bWx5Pdse<|dpWxB8WfBIMRJ0!PQRK#%w_~cXOxFPxwW&VVr!Du8x%pJwEauXI zC@7*P_&mw2H4m6tHH+ysz@}cVPxa}|yO9V*-f10km8+$RU7hvy;8^BOva=-Plth<% zR+@T=4=qnT39)R&F=b9ET|M%OzwEOs@Aaf7mgv0nwJy85 zUe@36$;mUbu(Tq~PhaPx(&uJgu7%}vf_?f%mxEnj>ficw<_Rpqr=#}i9xj$rCwgURtX{@_zIV(v)jp1MM z-2-6`9k$iAJTmD5bu<5;WjO_AQ!Qr^mZnF!TFUS6 z)dlWTvu9!4h-|5{E19qLl^3w5w$0+X5o4s6yHfcte6JU9r;g6TEF*4`UhUe$|IhbP zLDf``*}P@MSZQll2LHY9KLxE*vuBSaTE`{*Nj=CP@--CnOjXUs%o&VxxzUxyAMyQG z@MY@YY~%9b%`UgP4)e|YEDEi`S>Mrkf6KsaYCeC8AGUDWw1heO6UaZ}n?0jMy=E9(j#&hZN-C{3Jh3A!->5J#}TO%k1e__`CdG z72dOKD||B&xO3nIwUzHkF&64AP1L<>ZFeQTq_*)h!O8vA(ll>mt?lll|50!A^Zce9 zon?jm+`4XfcTy_lFMg39_UJOJg!%e)+C2krs1E>r<#;p#%J1y;+O&Z_>SIXmkdE%O z>YJ}$uiZP)PwnFK{Q{1bSUK9U-L>fh25_{={E(wfRta``cWuVNJ1Xd+{SuBowG!E} zH)!__3{qe4ulZ#h#iagiH}WZOf6_}#<3l{kM94nlGUF7bYKBVuk zu@*S`haan*5wNJrmsv1?>2BaG^^ZB$IwN}##*bJioz^{X#cKcLV?8rei@1KaN0Y2* zc7mJ@{s)hJoncxu;%5s6U)myppMTM@Su;rvTz}gG4%QHuy8pBM*s_@k;C~&)odDCH zfa)(iMxI&YfX>PTnJW$4t^SveZJ()gXazHC(rnst!Dj!@;}3&&l@OSI!Ua?tg6;mD z#{@IO7o(s7aGBS=MzGWW-(z<`??4Dr4$l>Ktrw(&?o>as4SajVlTv`+3bOov9vcBw zDJGbBN(vxKLB9XgBAm6y|7%81OC7oc1SkCG6}ekyFTsQmOQlP?Lj>ASE=4SB)e>%q zE%-jWU#+O}Ut5%BZHd!|Xv+o~Ybb(xf4?H0wVfjw3iAV4M}|P+Pb(5zBaW@)@`@x^ zTBM*UB(CU=b+IEMG`-Trt(z^l?7yq%we=H6G*mnMU>Pk=(B_|AG-hq?gbQPW-;x$D zX!rkSIoHO+i5EsZCk0t0L`|!U+-ntwv!Z63RA*yEdUodq+5y35|GuK9 zHX>&>MO!=ILCX^S@Hc^IvCmomOj0NHqMgM5_8-riWQzrBVmU|>X;VEW1xyDgVz>)R zP3KFm2NeqDti$o#ZL?i4G+T)e{LKY60eBwER^`G4TcOLE>n8*_kQ1ia4!Rg=!$KDT zNebdD0(d31j(9d*3m!qx9^wNKUXyJCUQgGG2103P1uFv*K>6o5&SmE*aZ)&~S}l7AH&2z_Q z6EFx7l`^|!f^Vr(9t*1?a1mR15{sq~!~|U9?E|6R2x8lq6h*rv*cR{*>~y3FTUf)5 zF6?flfD`bH*NjbdHL`{kE}Ocq3ep1ld1|b}l>?eMm$>df1>Asdyf4^6S7YSx1(z+| zw*(&b{2kbijde##+G$#Fu%dYO1f*S#yl(AXn%W#{RR|j?jU!y&s__+P- zfMr#inAZl=ABMCly!7f8Gogro4$!v`WKn&u>|)W>TjN`Re3;X>5|i9?-(|=QoJE00PE4AMUF8l&q9mXs3WGql=`qUP2d;)h1_jH&bKe-@mB2m4Z$Yrqno|BO=>l!D@Mho4JuR(VZ(Pz!w)FY1rtBc*|g&!T-VXIG4(vpRmKp9v{RBOmDzUW;pckdAD1FsaP zfpWx{I{c5z)$ZNG*MawoOXs<*<$x~4rL{XHLC`Z z2WQvtOP3qnS;CRPZ(!vZTx;Al{IAQc?!!WZ@5BD}(5!q*)OOSrMe))DrkzjguFg>Y8T@{;)ZPe5dm{>J4#r~vGPyh?KCTdpUh zrT^#hu)9>~6htWz%+J^y_{h0W+RnDm zdpqz1QXlJsGD<$o?_00mtL-1?q}2<3f(lBk>>SDqyTZW>q^f+|Xu*(JDR0)z&s zrduMUf>MEOSL063P=YX_TP}Wav(s&8-CzDu>d<;acqr(1 ziJ86SM#2H5e&&$uwlF_vD$xEtHu4S-KTBWJPPiQpntO5$p!-J-*nW}bwLcJ+205Rk z+bcG54i0~DdE5P1SQWJPWSafp#*UQkp@Du{7tD$QCrj)dJ=nm*A25JvRu+VuY_d=A z&~vq>fp@gOh2<`JC)({RJlr$Oza|aRQerLxnEo|HmeI`gZvz)5y%f@z+>;~rqaK(n z;&ci7to*hL3Vo z`gr*_;m07G2e%d!dl7Qd$6Q9czqk*td3RF3pbad!%EZkS5{f6#Wq zsizA?K5W2f8!YMb8`cMBocge^&qohTY{PW=!UmtTzD9DUjO+R28Q^d$`;!4;>L z0j*k}ubpDBp}REDf<>ny7Kwb>1zL;&OJCX$9jrRld|L0@QJ|bEo2_2nuqF8JDIPGO z$%V>kvbpNj4N1Y8Q|O{tzm7tsr3`S*4ZDNioa$Iq12AT#mCR1Pq2WOA&?)1hUcZi` zO5iA~y&4V&PdJTnu=6J$Q_herQu{R=3${5;aESHi7M%jZF+Hf^WbmTXfesb^?nUL+ z$&PfWum-O@z1>0Q-&(}%9`CHiFl&N6P9JhG55V!5wgwjfPKtuVfg2nEm|!N>K%mcF z-WVKny44{&00Ycl*-~|MgEBbfwBDgDfOniYTeeIc+wf;_=IIfK(STOcggMD8=vy1^ z1{a;4wU`vhJz+aHc@;gO;Stnw)-28l964bNSX_E?gCKa2UneD zE;a3~ZO2`Q~yLIS3#El@b=6%DQ-yYenBNewZU4m;w* z)Mp!3g(Q}$mncFwWy4N*fQvS`hwLx?vcxi54QMt4g$|_9kb+VxM@KTdT@7An63sEy{REKq^wi|cLbg?Xx8YdG)GkLSB&_vp z`AQk;A0Jm7VprzrR1k(cXZy755A{PJU%8gCo!Y{9=ZLFi9?PFJM-kEg}b$m$*36*zlTRD5Ben@MNUC$t8iN7ia?v$LTOe zkrT?RE>_XVLM5E=>UpAd6jZJO|Un~kDyWU=i z4~NfAdI%nVx}pejUAa?pE}d+#ge)tE{1lTcFK6T1=sXcIR92~W6Kx`2FX!S%=@>B) zdZg-=z%zSPUWNBy@WjM$S(Q2@I)(gm*Cl)^gMFzx+)zzlC;DsSoAM5P4TCJvvZDap zB?_$k0Alhd3{;X%k$DDtin7V0YP z?vRgGSi8EhIE}+m_-1I@bdb+ftOCfAv2i#WuT&?A)MQBo-PQajO`&BQRP-I9=VVpI zPS-w`UZIUKT%qq4b%x%lAW&^0-J8lcC10cO74?(5p{;{Nwl9RC1S&Mq!$n zFOnY6Pm30ZUJEK+>K5Iqd+>+hA-!CL4@D}QmOe?l->giKJyM?$tq9##*#Tr4a*Gm@ z{pxDby3oCq#-+W{9WBbl@oF^NbU4L|U(w?@4|`zb`r&y68+G zKtbHEm8T{5(E<4py7J8SWx7qR*UI-M_tQH?b)i0h>%hjkx0a^^y{23w4yBwCEDMiC zfwWrfFDtBaXQ_iK7%fg1w4ZiXbkFaqEDf3 z&U7rV*-XBvJR}=c{}g=>9XewKPC~~`WsdB(`nPCY*o3o~6?R+5x0Huv<24h+lYwAB zSP{FWMJUwjD*}xSQTik&@kZjJFDxMv-^6d5%ZRQQP)AR5a8Y{7VnAh3d z6_#5Gchd9mQ#96Mr!dM{!HV#$xb;B=1`K1C*exvf?2Q!#TSv%*LK*b);jxi&R==Wc zEAKAxsLV=ZC*ByAd3I#Q=vK^ML}<=y7K#1Cj-SOrFP`@ou}EgEaTJGzRiAZ-k~^lI z$dlPZW|J8vKg(X(7SDr%x@?xlO}r`W`dRME(Rj=~;tAOt%}QWkKRR2r(qo&x%Az`~Ase&G?ho<<VX5a{t`hw(_Yv`oY?&q&IE=gHgwVgY(+8lbW%=3nInilu}!X813)gzJjln9wqO@{b=*gsH7%}&I05+U8C zISBa2cjxr0+Y)(@=a6}7vc0o6!xKtVDP9)7x#|wI7OP@rdJDre=iuN;snQeMl6g=; zltpN2#5o(oGpk03qsbU8Q7WTq_+rGVsA?98#NldfWyy2~e38S?Rau|h!7*xwWq77W zDyD}^s^}yIhoc)t@hr`&yy$QhwDS5mdYx8oh-6$8Zw+s+DuG5FyGPq-h-N6o^J~>r zC@D6jqelsCIL#ID?(jEN9Z+>6KP!Le4b3+3{_xLLZ%Mk8)@S8VQ)Ao|=Y)^1o&+Vd zj_Ms3@mn=_#D(G0s~y&a??C_7ZhRZhxF;?Sx2yJCQ?LW~oY`#ngV7^7ga|8gg_#}Q6 z-dZW6>y-*IgH=p-{IrWPg;lF?f$>=TggWl6C@T9GtWCgxux}g<+qdb7$Htp5ev@y zLQ{qC3i8>f{V)=2gxmSJb?v*WUNP?)3K>=sy9kf-ht`?z!M$ewCEM{}resM(==rL3 z9(#Du|B&%CSjp0enDedcviD%#5bw!OXy!_Y5h>^O>)Q74pok$W(b!2gMr58JSvR@| z^B?hn?38Aa#6RNrdE9yrs7MeW%7F6@oYLy^?(4JDFnvU*H$YCD86iKdN;UI)dT=9bzY6Tdv-d;KvWxcgoa4U0HDfpSEX|ewwh!yBV1A)u^!^= zSmu9*VGUlYp-MLF@UJOxulO$zvgtC2qD!O^j2hHE7MQC_olLHYlw6G1Hu;`=MTYyk z@}6Xc=4{60h+Q?WArp?iD^Jol0hP5aBD-eH-FzSJJ@aqFMMk{D$#Jc>A1vt~mEB(IfAW-2vF5_NTtyT}`1R$BMF` z)^}s^0mA2Wi05i}l3A4HwecID96&#(zro+vlt}C;UbVR!Eg?9Y{vZA!W7!l(N_cJU z#(;xWUzmM{4#xjyTw@{9T5u3I#C&Ub3=mopP{8;TQ4-%I4N&8WKBiNDfhc*P3}+Li{lO6aJOvj-(L6 zg$|zKS?Krl&&g{&?@5X&$Me>CW@ll3q|504F&;|FAP3mgCClPK><|A|^H@?vSzDLp zIhfU&c5BGc&*+lyDFJmQo{rh<5$&+Sz|cx$6r`@nv)ASJh!VndnrD)WV9f6DwDVc> zv;1rFAmbm&70S^5SDsI@(Vywx@EE5ia=nfVxi8EZ@t15f z;j`oo~~(tMYEq4d|Oy`H2qerq93#rP$W zP5A=hsotE9-^$;z-1VUhj9=|GEQV-q%Nlk^=$99!@Tj(bbmX?QaTUfMEkr=hq)z#69|*FGo%jGp!!m8 zw<8=g(?kMBYbzyCBO%t4dcB^>qCmkI-CnVg^KEv`*3pYF)iA1YHQ`85jaq zOOUdt7wY37wSt;wOyxL)ER)7k+vKrMiD?=E2WKjW z`mDa$CpFJF$z(~G53chxXuzm_6nPvAlNG^UyHU!eeyjfiIS!+RX*yw{)?1oOwcuO( z+6_ic*3B?3V){#qs8~o?B;@NS>t-4kGr@ucEa3=W5u_t@)<#Dr@IN5?u+z6MUq3}> zW5l&kr1exkKF`;#fD9=G6b~6_w+%GD*cT~i#Z+K9uFSEtCP*0E@hvVOOwE`@aMQA- zTj%ZIzw~W~bO17&<9RVw`X@CLcK@RVm}#UrC~Wqne^HO~aef}Kwt{F}0fS z?w1WqcoGgJYLlf}s+`aEYb)eglIEdnw5igZ7u4%~uHR@O#)>o_g=M$&Kk6g?8oQN8 zxmH*^jyn_eHd3Df3Oeuw>PiNbPA}f?R*gB7$|s5<-Z!RO&>d2;$xRimG7!X(Tf%rEauX z!43a{BAgB4WDH|gNlCD&eCgj_RAqxWqnmHlNH@|l1tb2WMHpKWEETnUsXwj#FgAe1 zaIg4TfSet7j)9Ouj?Sufd9cU^jbHY6|x^d2WqFI&#p%)BYhp^X<#3dF)@s$vCaEAy`O zC~cM4ciL@Y}Xa* zIeVFBte(>9gqPpvmEi0UcVjwmzjd_JC!>OjNeAq(8#w!zgHrmxmxXWT|0~hM*1))* z`APbU)();`$CGS(-A3a<=CIU2(+Qh`5>D#vP4v1l=LU4Zzj2$&YYMJ45C`uL(Z^gmO0A zBO8mDpqry34NV||(>v$_jK`UCWGmsy_i3=`G<&fQE_9i2e@oA3_z;{ic5ksN2tBD? zAoHf@HDE&QO36!9!RTr2Vp%Y~tbq^`TiO9qCKPT(WmLMbfgDm(N_JF{(F$!lK9YW^ zVS9+KwAHZ!?kkzgWt-`@8wx|PW$sQDKv!a}mLO^? zno+=nt2Mfv$dg=9j>98#V*`^ctDw7y;>hiA3x)vTp1Fj39`3lfaHWMIkdi~BOqwi5 zNDmQJl1Xqug+(|h6OqZ``sp$`qhf@h`ZT>!8zpO|CyJ_W@GID^I+pRcuXof?@QY6~g4B)CK^cs<8XhEgk z-WBd&w8=6pT`pq7?F!EgdnoQQGgbBv{hDZBsHt+q4ZDeRmAOauhMwRTXzqB14c8vV zYs_?+fvyuZg(jTQFVn>uuQLzGKGXX|PeVm#*voZr|G>vkov}#F%PTrdSeX$|XxH*&vlz?8 z@nKKSqAN4D5$c)Kpru&#baUSRX8F7FPuz)EPzogwhtf761_7| z=BSwf!C{;euK_&G2ocNSXqhnSmWbiSPf^7onK%S^t&_1CSHx-Ig8&;br4atsUX;Z% z?u$#|4U7Zm41%6{GBBB;6Ys2#s_s~$0+@vMiflLIjkp644P?M8pztarJHQwc8^e3y zMMt#@{a1Tab{Jk`FcEg=$?H^5h1cGd9Rt`5AtLsC$2!#>^o{nu>=a|Mgd9NOlI^7Pdp7xOIKSUQR!=Q&z|Dfk__=gFTjGX3(l-Vg^Mr>u>LxD(HtAjm$Kw zMn;UJ6=rbE231S!d**Xl3nN+50|T|5`DPyh=4V+-Xu9MBjLZ5B*wnKhwg1X)!7z-W z*wvCZs$kO9zL7lu%Mk(Q*p7{=gXj=6B)S+v7)onu$sQ^$3L~d1Wc4MR%CO2GQY__GG0mUQ7T|e!zNA~)sD!% zGAQp~P}=LNASZ7eV~)v28KaUh3WA;DO*)K@(~UhfYF%Wx0S`@I&(40I7QKw1JL1>0Ab zZ=8a_z`#VLA0|cfJA73I=v3WobOm#pv;!))WIq*T;dJxRb`;io!^!m*5c z!zqk`02OXt;W5rkWHB1VJPk)`#RI;7MiIeA=Y&Qu>!iN4VgUh;Ljs(BD2sVP8c%y7 zKm#(46K3m{p>c3f<uQAPN55RKIqE+$+B5=QUe#HrW^+ZT$#+d zvNiBj9SO#Q#}9#LCiB`o8eIW99#bg+6k2E%b1m2y1{;harZR$yj*1GHL9$YKcyY+4 zaspT&P?Q-75293&k!-3UEY(G!&CEoZnywIW;F&>yM+Dl++%Ge><^8@Bs)GAQ-DdO_ zGf#$L*on!2h(v*ah(2K2IXE#8aVy+Oap0?ob~5?0Kt_ewJ-h%qOy1Mu4O$0;w^&Bm2-nX0Pl9qdp9*CMADHd=qx4)22m`Z10y0j6`6~! zVP;52s8|8VA1Oj@5Ip?0R8lStE95}*0-cAfNB1$!F|TPRAt6|I3Uxq&&{C$Gj6*jy z5Xic6lz>FS&m>i5gl8ZjOm`Mt1%E*`Qz7FpOkx6jUr~2tKl%m!a7Knnf*v)iM}6Rb zZG||ZY?vgBG?1)@AQk8`Bmvbkb?{#yQj~^>&x3`cOThlN%!u zWyKccF3Lmfi(3YeTb;pXf;IXZc7Z_9ABs65^MOSjeqeZjGEM(?vo&l9^V7VCBnL$eVjn zr1?=FTJNDH$O5@9tGJO6ozYB4&~>1d$Z~l+>k0f3GFk|Ux~FI@;w8^zStrT3;JS}pt$rx+8PB@_ZguX`Z%S$8OE^y*Ze-gNGqh~~($(tinFBs!Y zZGD7^n3svTS-7sb&ztA6uN&W#WBKpm`o5mbuoP0dXywNJk@nXkQ*)4Rt z`2@L@)$~S(sPK#EmWCAGZ&dL`!q$vCgaRE#-tN4#F)ph8V%1jUuCY+} z(RMy-Lt{_(r;8(7v43%nAv5KRSs{&;QKU=Ucx*d|2S0IFaFtw+%D6NVkG;n^fy|Y! zW+gZFM5!)uw_)#dO5m5ifpxI)Yn18I$TsW)4(O`oeypO#S<$3s?jP8PoKnP5o@45$ zY+Mzc+HCy8^pH@lbCJ_o5?F94nmGxk4g$CY}1H@{&m1s6ZD0o|PZZi16VU`Rh|R zp+OfcFJ(C^=xl|OlWbBG#JVtf6>BY+SO%5GWRr#<)luQ&V{`oks9D$?oz^Hrm~t5l zQ8cj=RCxLgGvL1VLyA$rWJR=CF$XPZBH|D2%IC4o^!qM*kpE^|^% zdctKL{^)b~knW7>yR1*u{bRg>?3TY`wJS_gxk7Y zdHwmKauXGLCUijN)KdM*QbXY4_m1&)tQX%bYG@ljNEpiBd(^6oT>VX4(k4q7w~sqcniZd7F*QBO}IP#3ge(X$Yql}9gHZ*{xF$u~`QweDHcNRB#lan;t;JH~v|6j$3GmqvP&=D+WB6sV@kXZI{`+!A&7B5$kRU2>snntX20>PA*#7p!KGyRC&4 zmMQaCYa4e(y}EdBYsFpnqZL*ucJKh+ANBd-+pW60gg>`VcU{oq*?1`G_eHaK%fAT6 zGG@3g>hWzXjGBJQAwK*s^jOAB*Tp@7jU`bFF8Rh6|3xUuuy%FqA;U9!`K5SZETTmj zHm=S+5skG`UYBy?E!zpa3|m(`>tC!WD*RGyd_a2@Jk{S3Sgb}xRP3c2@dfR;FO9{U-@~0i=Db@0@~8Hw;!F110`66v&@lw7 zhTnMhB!CdA`jY!LlJ%DpSX>Gb4u?g7l1ub$ihG=5mA;R}dKdb4RLdpKwqD=n;);1G zYgxM*|BbqRsSu72_mYbFDeGB#8~dZWFNwDy_ghOU>{2$c_BVcvdUfgEwu<}iCspId zdGv7Mfcbdo^|shuWhapZ?>t$D8b_l>FO6+8e}FrMEPUq;9xC%_%VzsO0v=Ss5%kWN zRoG}5ZP)Dihh59K()Q84WlcOuRW#JS{gqTIF1+7fy^e&urzHvPa zA0Phcd#EqdIlrT@K8*l(Lb9<5=I|k&XQKh zxAfd@%#WVhg4^x^ly}lfd3;Yhc)8}axNpyXj5$YIC3nR=Y%Gh$x3IRW9&^uOSEp=; zL8>}>E^p8FK{$X(MfyZmS0nkRZwqg`-4h-ymza{w(!hN`twp>Y0UoI7<)W0Hp2nu= z%`JDf7e66XXRLYWgXkMo(Wxyjw^w-as!40*J9~N?|BTLT8QDJi1aqFWPQJV673jc@ zx8M>zp7PF<*2~jaae0rx4;HtY10*Tade`)xfkt(-q=lZS01lAJ-F08j`$mUv%9fpp zeNXi@x()C4vpzNEyozpbDFHYL8yFn#4ni8=0CQ+lVnV0BR_F09ll8svb97(J)5P8t z{&gx(d3Mjw#_!QXEyl#&&W<`2RF!*vH;!XZP-2qopzx~lmLKVvpqR|IQ4*30e4Fbl zeBK>FPVBN|+bKPh3c7H7#P?l33!}iY-IQ@j?Oj!T#P3}p%SvI#-a74I(r6b(K=PL# z>)B_ym>r_5gn5H2zy_p1n?T{pj#gey%IF>uU;|T5^h}+wik%2a9Yr@sXbN;K>6x!^ zXYW^*-gwom7wUpi#<~_LyxDn5OtPJt+@K1UFQG411hG#84i%XzZODM^8bB)}*mcUD z)I2p#gplQ@^6?5LTdrg$x2bs|61azY+!UMG*OlDlQ8h+Pf^-7w#H4NPhsw%il7=hB z!hV_sz*F{f<>llI&4?Ha+eVh?NE*9esfJ}5M`DU_t?k*U;IhAgg>6t{l$a>4^*!E- zT(*VEn&YPBNKI5%L65(J$DXZP#Yxo~r6!tdLr<`xls@I$+aL8vwx?bpsQ`}(ZsLWC<`FWZsuxBj9@Tz$9asA5J; zV!QtiQM2QvjCj}f9-d-W%<{|eJD&WFUdq_!dcUUx21BpQxjQVM6Ph#ra0M|q0C_2w z1v|o@qs26^_w>*6 znR%Xb&pr3td!OgtdzP(g16!p)*T`m7P%F@DMHKef>Ch?>pszjA5Ht+t6gS!rr^D}i}i%)z|W-F_NA0r zMihJ$_W-aTkzYoO?b8m9L+pBL;jP*#~9OPRD+KcFRV2Aj= z2}=Dhu|P+%guRL6EocpiSih|tYCas@|2JIwYs za8nBOBxtrXi33}SzM<9zZfZf%sf}!RQjH)fRBzb2G5soe8Gb7y_~{blg*pwFHKwPL z4PmokSky154NV(1Yl^srHj;=wu-LcSEtaj^ufsdC zvq(FHqw()y2Qzsa{nzZK%_Gu&VM>_Mh<&TmRyRPGWj`gI5az*wKv`>gIvI@z{6vzc zurVxs#JX+L0)dgZ=yOR_VSiY|NM@T;hSCD>#;zd63jc&@jvBN(-BoVFd$AixX+rGI z?V~B}miG#_NPOAtq%5IzxL)*ByIv-F8@PdXlb#E4;kpSy9g~^p*NZ7^8Hp>Tg^!HN zJM?`2vyud}2T66plyIYW_MMjdop(UK?sueuIXU5u@A5k%ve7mYI&7^5gtg&m@629A zJV4vR3r6{WY+cxm?K+eA-k{4VM|l8XE%jV6Wo~C0-e-0>JyssXUt=4&+LoO^qxr$$mD3aD zVf-z2+LeL2-lCTuer|)PD!4! zkGnoDvyaIBXy3!lFMwkewzDgzEGVMyV`~q$pa3r^WP7;Qm8C=&Dec8vW`T=@!wzum zh9fCgW$Ue5EHV+#X9v5!DQk>KS6WNb*<@F|h#eQ{`nha0qDNUKNiQV32Q5an{_E9#;K?g`)vU6MyiEhy`sv!AfDMSp``aXAc60zyND!IIe zt0d#4>|$46(Uw!$DtiSN_Nx*FTi_Zl`bh6nwJNy$f?&x2yV~`lNITMKT$_AVKn}$Z zvp3DUE;5dE9MA8K5Te5&p>?P0Ly>mEg>i#Er!wUk{6}_=D@)`S*)X2j=Oj|n@#E}1 z*9y`3$XJt<`P${=DEw#kuxpEm5o!4;x?it?9F3o3D_vzGUS!0lpZ$83&9I z@3Zw#dOi6Heo^7-;G^X^QI4?pj%YxqO7sgY+}z7+qtZT`4M!Xpy^1#|v~;7E_eV8+ z&K!1XQeMNaD71y$`JX7wF9vU&nw2;3#)X(98cXl2<(KHUdM)Hzc#}d0w|nK-vk_l@ zzSV0*?|-tP@TA+*@{?y-UxG#^ThR>2`c81;mxrBIefc;t*@nK0zn$#q)=+-!tjSjb z;D9LaNk(@CxOJE3pLPA(I?C-R$dXtUcJ&UHH=a%ZYW*&~lbnsWDU5XcTt0fX=WE%! z^cUoZ_}ztZZWL6zfXTj{tv&u@Uq*2ignSsWl!EmbfF(h4i;W>TUoI$I_;a; zhlp3`T)?{BUT9w77TxeI^Mg~jG7o>W@U*6NMRfG6Yo;U0bp2hGqh-Y*LCYk@ysnE0ZQnV_X4CmMbgZNcQfsIRBtxUrd_XOcfzVb74Uw zb}Ov#is^vUiUjXnw)>LGE$66k1Ty&sT`x&4q|7p@r2V@4-TpHd&O{`sg-hLS2|jSb zTJ|}8nB0WFUbxbIZ)MUsy&u+J(%+I>@V5)syPv4cI~N=E^h?ADx(&|`!no^x5uA(t zAy3vACAZ`66>fD8gw-DRNAy>{cjQhuSFv$FTd6)b`QztTz4v5DGf^0~-~CFZeyrus z=x=%-$gl9Zg%0lbDzUKzzHC@^DDz*RX;yY zPAbt-Nl~GfdsF4DSj=?(kJ>S%3||T^nmv{5Sl?+moYp86ctK&P`$%Oc0Q3^3dd8J~ z`0~QDaC|c!%U#tl#r;$;AgL;hcb{3MectGo{dev}!5c|kVY2(8Dzo#pGs?cFe7myK7bD`QI7Xyv1tr7+zM$aSyB#!y!@hwB8hX9N$+c zaz9(8K0o>U=d|8;@&x`(VV(PxD*ZUiKheMRevrSw!FHSby((;6#2@?hpMEF{G~X9? zx#w0Ljm!N*_}%kUIf)-Dl)A%U-aPsuY{Y_P4T>4+@zv+L-zwy(BQ|_OuM&o+^miNBpPSw(o&M2DYF|V5U{^Z0Z1XhDNL#kOc$HTDNIzASmqk)~lL`qRbi#^cQ zg!l?Xss?uEn2Ek_k)g+qYI^)6Vp>BVNzrm%P_)M5NHrtgQX^&t!(3as7>>8_)g|#% z4do2ACbMMq(jvE=UU1%(t>G|}H;bt&H7wfh5nlZLF+86Zt zHzOHZlm*UfiVk_)tX_A)X@&^NKv5PsuP-|0@n7}93+Xd#G#T0yJ!f7Zw3)@2GbVqqrN|FbALd+eoLMl7u4`^6{kD?o@o;~@K-kRb zS-gt|%ca`^4*Xs9s|&1|4BmYk0k);OhqcS)CzyIrhlhqr$@9QYqdL9US}RA@SES+K{-&qPaXBl&=)W7JZ$Kx9Ni`larba`+dC?yw3JvcQ%7yAHunrFzgk_HzI zdeqgVTr`^PFqgNSxkDOWlzh0WChwxtY|&hX5yi$ivWT^5pr-a>+HCYZ`U-PfX>^g= z<5SJh#g5qp^XMzhcT3L~{qfMb@%y5tmf?KdsC?}jB7aj7vS-URLNm~TK+LTjpxOvR; zzuJR|>Do4W3^NMYGK%n?#Q;3g0~;p>nu2#OEOPg(sZC1M)3MQKm{VMwIYs`SUA1|M zPC6oe28Kd(<`)HfzNu|YOxLkl!myyYI*W=TJwMluCiduv0Ii$i?p#$A=c!RQD@kvT z%~HlDiYJ_yUiMs2w=T(Pj%X=kGsWAvspz`r>biqT>2qwBF}6^Ao!bDHbaS0wQqLUG zGR9Vlzw?Wthn{=ul9KdvZ44OOD1px1;AwiIE-%SRS7gAjq>!EA{psmh*9fPsHiir= zh3c#*;(LbHjVAft&oiW3G3RLAdr~>~|^i5H{XKJ0nW!t%_%dtC{ zVbT$R5zm5yTDwv8a(!#c8Rrj0-GD2OyUd*%W2A3Gp*yRJ6rRF5`sK;Fq6ZT;=26m# zq9MX$+hn2it%vk5f zCsUrE>qam4%$qj6+EsJj`A^Yr&);=_E^E#=T!q^+7VkWxSkr5ucxkfj{M1$0z03ru zX7L;^!+PuF*!eoEvHO^pq^RP>Ug&y4a>e|t9~%29NzS^(hF&}B>B*Dxr&sGApd>pl zC|=`rq@Iy%xgf?^-;R>vtXGWoa;aajfV@CyjGb&rbzWL*-sx4}nw-7BVGZvfGfiq( zyd6MgYQMc+AX>vX#0-<{-C^q$TmL6nbD>U$`C;Y_>FVMGUa9p4S8NxiuEicP4>vI> zcJOjPy7>xqp>nPIi1{4|`akLQwEpB3)g`7<%-cFhjqOFG4DA?8~H;PjJzvOi$v=fjuf<>VYH9c4-6NMwx`$WAEn%P-ccM5 zL1f}9+(j|#^^Y;nChi1-4x_3C5H>UDdHFL-G-%uO*_Oxz$oKK7sUf#NG* z(zHnNU98w3J~8&#`Ec<~FO!C&fcH)`6`vf-1yIR*UX~5Cl##^>Q~I`hPo>9-A9?L> zNJ%l$b1>tbW{eXi72EJ9MN{9<9Opb%}BDL>xiaFMWSt9i%}X*_ckV7)mvt>MeRJdMS81vo%gZEoU4w@3bxRF z%>gOA*uvYrvG!`(vbLKi{l?mzGmGa}2Q|vCRxC^1iuGr9LT>M!-Z70oul`=9vke=- zd48q;A6oGG77q^Z&d%4q?+`6Nk2`1I=GcpMibhht1KnTmzz|IB2ZL znOW@O&26NmjTk5_#pE%Gb5U_4sje|4&9VoJ|d* zyayU<)6xvlR&<(qpOmB>;jL=yPwNOvvBCy3`=u4d=e(yIf2RF5)Y*;=VGc@biZ6NV zG#OlT&Kv%dHWSTQWF`7T#%7l)1wJ2w~K^fqZadM$T3afdi;Y{a=8FqSNv zXxB!TXQ8=Z=a9ZAe&oHsDdn1xk%KkwjQR3o-NjG6Pc-FS%QeWcW@x_r=qxT~dAl}M zUQ0AGw87EG#+>EFTyJVq|Fs6AEHI6XjZ4!*%Dt5+^|eW(X&e10$^_U->b$Qs_0Peq zXp8QM8vE@0wzvh1Cl=RzS15Lh&yIa{b})VE{kX~gdiDwjTV6DCQYyME@h)!iyWX=x zWXp)5Oo4f2-`uLEgzLI1(Yxs9%zpq{{HXVfrkv}O7K~lE*s-6^>SC35UsL7v#Fd7- zap%W=IsYu4^j0F4#|D|Pl@swvU&{)R8SInSH^dx$#E&YMcFx zB+A=%gA%MyaP!cO4)8_bRfy-htSGVdiEaLKL(|ys0R8^$`Lfj|2Ye=T7K3Fd<^Zo* zYoTmyiM>xo^Ol=bW90$$74yZi4PYvI3Q?#mW3rt(#av%zUPAEUH;3I+87uA7spd;% zn@YTVnwrg$)~+FfF==d>%eIn0pPpv+P2V+&gW|L?LznF(p*|zcoi|Mk91iiWF^ybG z*F^e!Zr(T8zNX+1{kr)|**?!$pWn@YZfdSIJdC?Bw#sE+NurN#%ZgieYqJjHZjKqt zVE*|SwpibaU8{2hdyBbNcBJGEoB|VWRjf@tg1yaLCvz;h?_<*vee3sHoekJn)CSq{ zk{q8yEw^rAOvv`?JLYB(s1=v*gKsIhm22N^FHRpryEvB=`}hJlL9PkWLChG#xR6SO zJ`pYBw?<494&scljV>M~H9ms)$sdVE+dZnqoOWjW%q#;`85l0Kh`mM{Ll*6AF@-e&@AOvziH zuAn!&(Cf)Z)%VSU4D_`GX5-}K*l;xX}qFEXdc`sE!?E2i@g*9*nyqv1m~0>(7e5-?>vE|?8oaR8?2hY(w&T42nEPdyOXmBo zX|=zTy}{uGFNdk4om#TQcXO*BIG%`3FdkD5xm+(<>5JKAz(SZBp2R&FJM02U27Db` zAKbAs%{qz89cyY&FERHewl1tXV>*3OKacW17l6a`4Qv&I4KL=D{!_|Pm+TT7-?Odi zJKVOnr_@i)kINpF?DM_cx-cDMMn28>F?zxUQUdssb3PQB zd&ms@FZk~6)nd5DSvoU{D7Iy_B}u-jLq-fc^DJjv@tBuOV@VoV8+S1h%?({}C1XA= zttIKcm^L>?gL#$RUfcDRkfu*Ad=^tqHEmmct^ zaA`BvreKr=HP@U1@7xk!|F%E(Zn_*K@_0HKc%7#iBeXq9}XE<6Ekmy45aM@@{r|-kIeHm#MXjgifd4#O@dXF!w%`KzB zBFhyg8l$_6m-P8owBdIDve0qkxf+IAHR-+qGw8JplZ`|-arxL;mv1E>e0$p18NM48 zZsLlu7?vN9 zoP&UeYz%0}1%PF2ep|MVbJXu)`@VZ=ThPArR`Yb38JKhn+r0qYx4@U)W}YFl;JEo! z0nD!MRdrS1sGY`4$c`cEXnUx zY)$pYzFcYLO}GC9=vABfS}!S&T=sG<`k^}X0RlB9K);LGRd@gl#Y;N2WKy>& z1Jqs2dEKoKZuqU~u+Pli<`Bqx#mtpCaPInT?Fh>3+tvnPoXn@PW1L5R`#VwqCetB^ z2hPs2Q=Dghr#kX8T`k*!cs)${Y&_@T4!4el$rmgQ$vChByAU{?>+a_nHf3dWj=`9UTv{ z?5whAxW2J67p>c4eu|E=tXM0ZU~E6LTy~c8%}?1O&#JIW4aN>ID`l~qUw+dam6{V) z)4}=xrsi^iGt(c{sSj50m=OIplvypQ7>c#liNJnj0vHhIG?*20Hgc_FBJ`CMu?ves z^cQy0!8|`5p+82Ex)gJ~{aZR20BsWkxHS|&rQwkMWu3h22mp}LAE)%X2sz>YAHX!p zwTX$;|3q1tU(SgJ6qYa9DzNCQKba58syPY%vtKNHfZ0ioQcsu<$?7>N{!3nLd7w*w z6(#;WHtYfbAz<=9`XF~F@vQjE*oaFz=bpdi3)+K`or<&KuVe3AAd{%S-HU4vOl*nK z;%{RgTwZgY`)e+J{=n6?4Im?!N|^+9u--3PA7tAqb5hh4m5YMI_YZwB3T^|U7{(N3 zV@^M((m(FSjEAas`sZ-p$0l4tz3cr`0jt1vS1JGxFu%w~IPLyfFRUNN?$U|H{xpAZ z=mV$QKXvT*L)I>Gtoo<9S~kX!`xj489**o%fa}57lnW%h_iuRN*Bzg0d7kl$@&kMk z-uZU{>ZQ|e(RtkA`O_}_(JF9GsDu>ohHFD;GR65#*x)g#tk!}r%OJ=B#OmTnIS zhiuDzd)qGZX0ztWSC;MxnCCU?KRX|jOLQ&F0=aSN!GP;8d7gHVe;9{SEhMZfbqwg< zwEe%>eL9I)ZPsGBY3XS&RTKWJ*q55fxagrTKf)pe@Lz`gr`o4XRPS2%bwBBbdqB<0 zr2q8x+axjOP?r%PMQuPAB%pQLFG^zQQVj`KrNIGjUN-)hzCY%B&|C~8Z7rn-e1Z(D z9gts@J`V%QQcKSV{CzniNB00anLZ!0TE4F|DPUfgagGTlGa0u)WlT6&nigQxwJRqP z5`E$ps@4+hOVa}|U2c$ZGwTWt(r3y!d+dU?chPeu4@_UtUrgOVI8pjI;7AuE$I>n) zMPHBlvhH+gegM9!B!_CJ46cUUj|At^F{4bohMaUen^cBA6+_m^YsF)`gIQN`%T!zBUFI*F?{;AyM;x5Kst>9C z2!Rl@{JabIn0t_1_YGiQ<&@IpOSxUN$4*tPX*@`WCl4+i45))tc1DLBuJIrZojkns zeL#0t{$tleZP$24EE{=b=|sSASL@^KL*%E)E2y@Fn9`|$&t0S7iXytsSV`SYh%5aY zpz&(f6HETO8}wBe$U{~-D{$T`eV@IDvu@y4tM(BfAs9HT?0S-T*zhLK7!!WwO6lT2 z^ee)Xio>apRf}~{o>sa%(B@V2li!DRZeiC_XD_~4x+d_*E5;McBUxT=*HRbi+$l8; zbb7^p;(J7KOAPs)bR)L|fMxXQ?N!>+Vk2xlPP`WEH z?$wN3U3>H$`Ua|_T~4W8VA`t{xpwwhcW|bvlZ3od$H44YyK)mDTMy1mbsD0OoB~;| z+;SW2v(j;B6^_6zbp@xH^SPQ1h76p!%9#MEW&n2hL9U%c76XS-5eU3eYGB{1kBS%v zoeZo6izF99CK=@`IV4g^&A@JCxydU^&jn7uGESIqn9k7OMD-xllwJ%(b?fJ4uk^aB z-h}az*O$h}E$+6+^ZlRVu6VP`n*a$r0!_M)=H>p6cu%}V>4~_t}B&kg*}n5uHWHVyN;8 zTW%n=yFahNF)IsarJ@la%Ryjl_n$n?qlWi!+f^Ziq0)xHwC)v8?I2YEZigz2Fk0FX znBBeWX(EK^y(z*WZWX~WU1Y@CgXP8cuU+EUgX{q*-yod?*RtSI^C(kmO9 zyBQEo9s{xBREPvGRR+qsc~2vbO+V1zMLkFOQTjFTL$~-T_gKtB{oT~_gx{rc(}6#_ z)!;=m{ZM}oHJ$)~1wp9S`p+zn$2`)9H24Hfu1?Uh*Vtzf$EP3ZLsoMFin}Pt^fm4o z7s6xp_fua!o5S5n-S+z0QYl2X;t1{#x5`}^wD)z=GrbcwIgA6;D}+Vd^+6|I=RI>e zAh{dG<*M zh?rxgZA5eNLB)VH+;dWt%YbY>wN`USmso%3APcq0!7 z!CV9g)e7o+UHLrml;Km{QA`(e2P7kUN8V?}I@NZk`KT(J0P#*ilds30k3bZ<7_c-5 zd$<>ZG<&vq8Ju=_#seoR`F^f;&U^^?=_t&3Mn8dpteM%fP&e;laHu59f zJ3;84vT*L{7zl8q=E+ybX9ijIghBL*^10f%<|*Mg_rIXT3s>@uoE-9b5H%uyFz;#5 zp_7mD9i0mD=}wped3FXX$hD_3zi$f9a4od_E4X)VacI~4NVSd-ghxKlx&dq%g13}F^H(}C|?0eHq$5K_U-jU|?|xFquWjS;L# z!ZcT(LX{HW6p7p-W`Jv03{Rg*l@qvJGFc}6bDB(4^3+sJFCpYmD0xKO$;t(1DKU6L z5z4t|!5?m%H9}PI#lflpLN)gSSyM8XZ9*an#38CTgnI53vYy0(?MqS!#G$HTLNoU! z*+g=bol7DL#bK=X+&1oo=1memb`MD;WQ0@S5ngZ~lJ`oIz+J?q3>RniLH>%H2T)l# zY)99EGI|6?DHn6uWOqp|JIxg>qJuMpT+WT-k%J{e><-rg5j|3svAds}ydXyMll|LO zryLu_nvlQY){|2u24LGy1-ugL`xLScnlY6Uii zrIxF>gPR2sI=Jo;gHU-IwZ z-1koM3e25kFlJ)@$bWIYbiYZ)3rE})RpL0+Ujl-sLD7`XEi&;SR*U0R8pP>^T9idn zvm#fI)B}kZs56PPc_Ocs(tSl~9_Si+0!C`C&C{b`q;5qG9$7Vvcb8`=ba~4uHegu# z?V(eP1)Gp!0dFnEL7G`)>zP`MO=M{+^myhJqO`0i)>Eern}m6GY#DDWB@kTlxM0xG zzf7G=G~(G%&PvrqM*m$QR$o@lBd+4@r6fw{7Mpkx>&3~c1;n+yBb0P$r5@3%t)6#< zwMem^cbxKAYG0h~<Yu&1O0k!BiJ~JjfFrxqW-Oe)Dejxg59-Ud zlu&(?&A5!WYlw$=$$N}t_9fXq4lTS}EI6{_-KA`m1;KGsTMO?t^@Y_j-b2b>SyG9f zuT3lC4%L)+iuaUqLY7zJ2# zHkR^ShU0MkVmkC;g9%=k3W`uh=S;%ZPyar3I}w1BDJ?PvxMjw4>St4}i4i;{MJD5M zBK)U2^&e1SBg6Yj`5+T>xc)JKk4D`^jO9&Je#q3Y_@92EpL(&#M(%ps6Cs~fsuy4b zFf!D=L|9@|7s%I@It7ScGXA6PCtl{wqpp@8gmtP7tU{@F#8loA>Snng1QLn57>}uk zh|YIbP`cFO_Cf?$iP#s|jWfz$B&l~jP)pVXYl_)PO?Km>BW-J#2D;3@r zsy}4AV+E4C)p?ksiu*ikYNY&2sVY#}jT7}ABLYARHBmm7YZ63!EqUD)N-;q|(OBZ6ofw+_UP_d7nMnm_}%P$P`&yB%aGKrPt}+N1(L5#ThhBlKn+n2 zs%tQp6k7a+wDr9w1*{PA8+9!vNim0SK(p!%6XeQYz7f}{E)(bTSJM`xT@e_CIt=mZ zSyvQ`_#0@az>(LMUOdETpr#U+@Hf&tdm9Dmp*F*eMrs<-kZ(l`?Hv{Lgo=h4P1Nhe zmHgeb3%#?1dSNzi8O_w2#5Mdww41%_gic|iw~Q9*ZQ}lQM`;gx_X*R&&?EF#OuE91 zkE0d#dI>wi3P$K{m<(ddT2~s^K1%pIOlK6^&bq7E%=e+S^=1lf!&67G9jr`+C7-4v z>*Wa}!ly^|JE`}HJNV(WV>7#itZ?!>vHV>&aVP&QZL)V++`6iTr~RY>&U*U%FC=88<{#4)jy zHO%nlH`8wSnTcHKZDTwci=*)8zob3xvlnI49aKD67%0emDUH(?BMlV=y4*1w{{E;{QQ?t|(TF^?Zd+n5P%+_BL* zlh}`}*NW%-qReM7nYht0lln@kn8*Sp3H#|4lhMfTlyIlmNC;Z)fh&u zDCPf{{korBG5M_)<{wL;;PXR*hx=PAvSS>kc;l=-g@_*&{1pN(`(kX?-1@|t*;C0s zAN;r9FIMB6;dk7GYLHk9Q&x9iMWx-jtnawbsv%+{KP}j3U{_`0Il~{gFRHi1R`8q0 z47gP`oXY}ta@8oYlb^8JdLX*;_c@)P*l(=&klg)Au){!RrEP5LPwXV?qoN0*g^1vA z9viDOja9S86f%A(_}j$qX8jgc5|))(@VnX2p{=re;{o>YXDn2(cOrt5(G;HKt}-X!Xtq zU-?6W*tk^}bYABmEh01)3D$?47|g47x*(d7p-IyrEfH)C@f>WdPQPF?Gh-G_mt-ig z3JDz?t?s!Xnwc@1HV@qEcZX!uBWiRL(8x$Fiv^_rt+NYB8(dLimym_TqsAAK)(IR# zvIlq7BqkVY;I^Nn_`(Ip41$VdLGN&5wtLl(SQSL<{MO$%ROv8MN+;9AJa zH~VVSE}>D83oT4~4eq9c-@jXJ!=)?~e$n_k(osQni0zy6wVH{B+W5ue8%QSwxgm~k z%&c}KrfOU1S=`d{jK~kczbUD;Eskn}fZjxI@UbNI{HTLESCWys?<_I24w zhNkHTG)oA=k%Sb#@vG}e66t0b(yU121N|XYZxZTsFBb$mEoZ;vhYH??v_brV?d1ZV zrV-7W6d_QC$lmbkA}&wQU9y6EoCFI?kS9Pq*?(hb4tP`jaP^(I${3nS4t)}UFr>q3tW<Kb~ zGHy>|z}Mb&sIorsis2&sy7B*!yw+|DB@fB#E3Sw<5bJ42N!bFM(6dA8`pGNPiGTDd!GqT0_gh52387LZ_3O9 z*UJJRl(B zVkl~O-7>SQVUj0z+J{wJqoGV2Ag<12neB!}d+t*Bp%a*6fI0rC`_L;$gq0 zo@*kb3>#V`>62g}v}QP|N$RW>rllrK& zOODWPL72Wn*uA&dmWW%^YnRy5?vPA{wuX6cPqwgbkxi!TEf`?_B82hZhP9|}DNUvv zEbjJh5_*L-y}i|ffk2t5|5;@AZiBoSlD8$WT2ro@am^6W zvq^31qQbsHC{5q(w)OmD?1#O(h4EoCN3>gw?l^4VA7=yHnJ_tQ(TG{A>z%d@{1fcQ zy@!N1!qz~rP4*oJQ$A$n?sX8}4cj^r)Y^Ba&6E$(H@(M%kHYqkq_i5PJDBlLv!C~# z5mmHGCUInLn+bzxE^!_&Ciw_kAf(5l&6lAtm$-~`NCCpGu-uWO zZMh60#%j-XZZBCV4daXiwe>ODFnl7L-y1Bn91N=)Noh06aIoN$*uvg$z*Fjm%ptBB zZ5Di2wx~B!I1x5H(#gD;VY4yAjh)pSEmVhn8X0Qq$SBwt>26WgdmaLX{*KIO*S(A0 z6zO46)0-fi6+Um&xZUw?!KO%0i@M$<;oR_*qx;&O`1+giUgPzo5BZD3(W8X+io2!ZdUj+q79A_FbDd-H@x!!_)8b|hvRTH=GoUz75MPT{Okw~mI)EX&A0 zPayhEND3E?MtA(q)WKR&*wWr&p-*_*=!%|gSuxlpRGJ)470KWZ!0U*}n#L}n(RxWj zVR-lli2mbd#aJx~ruCC5gfZbiM%5jYS<_ZaLTH1e8sWuo)I0sow5@^LBgYSSrqv0P z!xz0X>vX-}ww)i!9`0=tM(D17cd#@4zRiw|Fxm*IO_&kB`JG>9&;1w*Io#r1Z>LZX zsW*}As`s;O$N%)Mb?N9K79tRWdW$(ho;nB(4Xsb@x*D^!5NlWJY9X~XHRo%YCCt`@ z)8oZ6G_{a_PHWDdgXq3GOB03M6NFlYlw_mkYmM}2YcAEQ!lHm;lL^WLN!f^+k6grp z%NPT79JwAdK1R{V4?ArGMO#;sJ z24bVG2Xdn(>M+v08uZX@j*3DWe+P=g2TY$KS4W}tAfL>Hzc)^RZl3nSJ+l>X@ANg) zS!DHo)KaAIhUq5cE@u#?_k-znZjTZm z1IMAf`2|!wQf&oKvn=6W-6i0za}gTjg+MhUzmibzk=Oo*dWo!HgJfejpn*1zfyCL? z^gXiU7W^`0LXBhJp^@M1fD7q2Y7iOsuM@f5pj);fNcK1mRfIG;1SCcFs0rlRL1^DL z1nAba1|Fz6pn;}4@VB%HBpvC7I+9iZ@yk zh?895UL(WQ88Jd#g`9B+?%TZrCAF+Oau=EAfC@mIp$;NP{6L({{lJL%Pvv){P{WBr z(@n_dUs2Ua;Y-kf@p98BBz`Lh`|Upb4f+bI*|)%SKB9@b2YEIL+HN@qM7q8Q3XmtE zn&5As#yKQZGIERy+@EZKHeCyb2jcCZw{<>nFX%CpSa}ov2CW0SN3TKFzh9t=d>hjn zNcl?8+oTG5`I{~%8RZCNQ+rUy5rW&`d=PG)QLvB}MLji}FN@@Nlp2B`E4`j;R0{;DTC(V6!}s3(7!%iM^() zkcnlW3*>XCJ4^&c$t6$)eGQb#!2k(qF^DpJ+jKtim^tX!_YO2eo(ys?ItL|wyn;UC zpiM)Ng%TJrOJd<~V>&QM%K*ClF~I)Dd|>}E34|Yv0tWbQQ2L)WFs9n6z*%w+1pV*= z{+_Qu#UtiW?;`IxnJz`5oI#ZLBw%t|0~8`%4BWkrA8|&e9RYR`B_P0;OQ4nOr-0|q zepCozea8gy*dyqh!%a}iY5|m&i~{Y4Gcd{)g+u)$3Dh-8fTzQ+pk+~>FltvF1m(>W zz%VWO0&V;{A7o#96E510Kxeb~pOP%$Qa*wTK|b9BTtv;#Ri*-{`zQ|TnE41ExHv(H z4GPme2xr~9$aH_`;Jpmc;1m_4JEnuuLaf$pMi!lhl8$XKe+m;puA5i0Dl0%0<8h$2ctfE3{t3j%sf1!&GpG^M z2CS$;=;`poAkOT5sAKaLU=TSMwG=U|Dng!H5BGC5fGh$Hz0i6R>e;seie{DrlRLM8 z@%<5aTC6yNKn?}LSjG54JEw*~l#}{EVsivad}6?_f@Toe>K%;1Rtmg2#eSgLrwCA) zBmypl@u1osI`I2L0|rZkP;WyVbn?h1&=#u?RfH&_-arPm17pp9Q}J0Sl)BanjO$>y zAU>;(BQ3mu^y)d#miia8{ZJby`^DiShY|glWMtugrhAaW1*Rd$WmC}LRhytH-`BwC z@g|Tkcp9o|<)SVvg zAB(s{Gc_+D%LkzC^LB#hvmK$@lnGQIQuDUvdM(7$QjlfkFjUtV4boD#!GK#s0Yb(! zG>UEDp@q!61+7~4A7}-;9O$g8;n%Tg(6^;K)O^_;O7x;Z%O4G(ZFzVY97{Ulk+=Vt zA`q`T1jv{wcy>?;&8U0?CASoUq^~6~a*C~>!rC*yBi|BukjtP}Q5R^oa5-FVPocIW zI?`4lKkNdsTz$~RmpKpMdH-f^ogMrt`uDXw{st=B9s|Tb z5b*2Szj}`U1l{&;H;qSLHV0zfJLr+;Lnvp&56nws$ww%9wH0*(VPLRy4&oj4IPxjZ zGzxjP9Y*UCJ($b`1_*8Baa-Wldk|s%iqcga|Ab--Ty4u^_7IBM8&}7D^WUo6Cj2j!Ym2+(CWE zeW8Wsdw}`AdC=nq_n|KLdZ=2W4^J2U8{Pvmf#lQ!VDMuC?(vOHS0T?WhkNICLW8e% zz-#7zzoA52YM*7Z5$-6Np~1%+wjVq6K>APCFEs9SkF3)Nv5er*cM?K7__( z)`FCNJ4_MC9#2p~fe<*RHbdKnLqXxIZK36z2Ak#~52^oYIN5Y5a@Ja)OB)83^i(L; z%Y|Y8GYVCW_@(_cRiCZrTl{oKC{$aII=7 zGI9=3NE%>rAIOBMNBH-(7Hl&;j5HF1M%xS!y2yl$ppp3-fo{uncuM~Xo%_rX)H3Y? zEl)Rirj1+~2~%3T#ds|| zSm_PzIq(oV!TLVT47apR$id(vhmpYtfYT8l(^W`~e=@#Z4DGbK2<&ja(2A(DKzrZd zkv8(`0eG++rUF7?Ak{*iy$Bk7%>~^rI|5_bFBi23@m2K<8TT1_O&YHoh1dv+QEvmP zWB-;g20qXTQ-enfks1Gk3R?}22#_t&AkvFsO(COr>cQEKE(GA!qJ`%G@g8-tGv{af>DD zCE^ryDYA_SMYDY2g0ckRmc;?Zhd-wCk*?a%qyzpixcfDLT`?V6Q$>Zp8+XA7-R23e z&MFM7%(G25A@#0Ii8@OGr>)MJ-Gz|FnODfCkM; zDS$ERkpn!JZG&c)zXw&`83Ab-Zty-|WpEeu@Grm3RP79dox$BH!VUQ(E|qm zYXhay-@;TZHF%Fg9+N`Z!=}(i4YcWYWcU(LZ?{g6f zRy@-F5yLdCMqUIydL;=Yo2hdQ|Yq;Pjrq#%{SWx}K zGeEq!>_`;SZ0N{#WWh1hoP= zOqz9|0Qpo16J7r{Y64+lFrkCEYY@K#`F9s83K3>-cph?j6wqCPEe>LrstD=X1$8AI zgG;Y13U-QoD5~QFO>8uU^?=2Bc#Eu`55u;w8XgSh!-Ka5)$^faoEIaC4OZzR$7TQt zx(js#8R-t+V!uhyI;r#jB%OPl%;o$4-_?bgJgIYQylUmFPo{>F}a!kdK!t&1%U{;)_pKStCZ7%Bv?|G&G&!e}P{+rsc?o z2v%0=MD3wftoHXLB>rcA9{1!&7;4QXRIa@>)nZJ&YPHJT4|sY_CgioznbaF@G_dbn z9?*CY68D#(Z4YJ1reX3L-qUNgKsLT{pKV&zYrLwx-+ z-xg@U{J-Hm;IUl5?NTP16DEcjSZ0yQFY~m^DbV|J6+b0?z{gLoaeae2rbW6Afr!L2 z{2G0aryWZnhFh!xcB3WIm-EFuy!&kQwRbGs8F>mFervI5H=35^8PBO=yL5WMXGld8 zXkGJy>5`W}fLFU!xULlIRQ9f3-1YoiYl$%}y;2VS0;}qNY|SwyW`83RvW&@Lkt^SUqPiLIFljELKRF+! zjcA1A+AB+4xxJbE`FG`tmnOAg-)|O(dv^+QSg?!tyc6N${k@3FtiVWykAuSfOL_Nw z${!<}@8`NvnossyeDqK9MWt^eB=*!O%px<>FR%B8{^OY*Ii$n2M<0T7Pq)D{T`RLm zLU-^iLscgmmx@A$0j=4gnorvt0esv^c%r~HXB&W9SUPInqFsz8GLw;uezp=@?( zH`%nw-Ls&0h#T4ba0&1HlyWp=U7mQc^oO2%idaD7)hy-MRXD%zF0R|Q0lja$9uIh` zJyM&~gTFm<)(jgTs^X@y=gyXDBdS;XS%>(5VVXo%pP~3!2|VNp6L8)gf*%K~G7O)p ziIbKD2K*GV%VP)lGUps`?YIPm8rp`3x4QhROQ??Kp$v$*cD zrO5JkJHmS{h_byQSVoC*S&U)n<+AY(Zf}rs#7o6FG<@rID4U`Jb>*ccK61||eZ@w* zGM6mr2Pb}W!Kcf=5L!O2T+PT?O6p6e21Gx<7O>z1RS_>Ey7KF;ZU9%M-K>-@{doV; zaR~MLkK|TwYBc!c2^iS5I~Y{`Cp_*j7GfJe$>VQV!qi>bAwRj8J0343a#^6f4UCI; zW#g2J)|HPYn|A4X7!m$a1W@03g*865gqQzamM1y7>N90DA8kHD4c<{DHsebbtS_03 z;oEPgu(%c)Yz{ZZ(6(k4%FG7n^7iTy8RPNG!u(bB;rpu_MYU&z4sFE1TC^U1Va{xtu zx{aA-%v9w`@_Y-ZcvNHGlO*9#7ZTq=nDxc|KEoKQa+=BK@AIDOZ{ebUJo@NMbxFO(t({*-^2urW(%l8;#ukH{u6T>66~1z@-p4}f zR6xgb-|(>@m;Vgj`NmyCc~Sdl?~3hdi) zhA%GY+VQ}lQ1ayqT(Yl-pWa-|7wMPzsg;HIzn~&bkad1DC~?L~-R9`k1r@C?cTL1v zI_r4)zotB;Djg2>(E+MsF28;p$ICxGX$C~}w<}J-lmAA+ia<9rEXMz!p#NWdtRiwHAOlN*FjQ+Dvy(H$^81;6jn2J5|`ZlJZmWYkZ54F za#&?gB}_QK2!&bUMH7b9f#MebphS`1eQxRd3STUFlRMUoM_LU&w7Q7b{jKG%*U{7I z_X7pdD8@2L*_%t=S|oKL1zHN}H^7e&(MonkHt165Fx+L?GGI11yXZL2{CouT-2Wu2 z+E9*ajUR($tkU3r@^OCs@ePO?p9Vb%kMYd1jbK%yD!bHKkF~vc1Fh(*gWX4Wv-r6z zMRuL$nZ;9hb%WKw*=ALcEJHOqf2|4?@mxh)`MQ|vZgl6huQfEwWq0afr#yEZ2{wPr ztQPMOUiQDAa4;iPFo~qACRJwTz_{h_;tK|->gIC$VnzjtMc5%fHGuBZ<5~BEDw0~Y z*kXJx_?W*`NXeLN_`X1etn%Dk(=Hc&fYHa5r_u5K^%H5?am^g>cjA{?R}=-u;zx0 z<7rNW;%+Nx#n3fktLc((AqsMrDsQQ=KWNy}h~Mg>N2eO_(QhdT)~m=Pvu4B2xd*r8 z0N|DN<>p&fuVu@|m|9jmYB1S&MHSkNS<2p2Dt@g+CiBu&ZeH=YX*ZIzmM>_H!~Rnh zw#3W|Y&hneCQ|$Xi1hR}fMmD|HIYZ}WtpF&AkvOUTmuom4np z8m{!^8ROH59hJ>OVceI43hFyUNbBhPFyd|%u5Y}m{7z$z^2Eq5Ix+jJ6$@Pu;A7tw z);L)eJEVb?Xa1s$M0xfPUr5IFh5HslMrmZ2QF$qs{zihzZY{sghNg)WQjMm{USArQ zpc`E};zTT}Fj0Pg5BACfM4yQi4U9LG+bRVF~m9vQ)JBaJpH_x<4 z`a@{rO9NoawRjKSC_6Hf%|FiW}XeUy1+T{sb^>{f|wjFrr-sy5zM?iMm^ z47T;JiZqgNKEhs=8HBHSb!EVC-0Jwuuzb|SbQ>F0X-BE`IheKU9LT#}1zJjtLQm&b zL00`3jHlvNUr;XHL`-c|UVVVokwPdMXd;O)M`C8eu$~uDA`Z9+$he7kk1sGh<9_98 zBhNg629+E`08bNa$?XLM4&6p@n`b<>)o8rWDRpg_+Ch_?^d99+mdA9D&6$8-dN;&% z`{{ua)CJlZE2;vrr3!RUQw0qqt*_~j)(2RaTgUwS4uRM$Uxehn{UE;J1@8J?*_se- z``gR*dL|X}fEg0+ZoU|*BJJceioj?z5Syxk&5YM|1URJ)E7&(5%6{GqChXR$diV{~ zDe*HA#jl^5E_giZ2c&zNJD<;d8`Be&kkSrlOs5 zRgF_F>TL5=3)b=Z)4nhXK`>2P8)l_3qR7kBqpjpb$BcY&9Y%Cxe}dN|l_iy0fstxV zNw>-FKTYkhC~clzf~>aa=H$O40m&u=e0=25kJ6Xyt|~VkQm$6U&nhcMntsoNI;x6P z<74Hdd#z*O8HI@89Tll7HO+l4>HC-&!8>I&7vFa5r)OhwDHkm&q?BWqd3`Xwk8-_o zdMN_-UG#b6$=5)Eak&<yEl1mm`$<N9S_>%J!aQ?l zBF4BX;Hxm+RhEWwP}jru>v@M~bPuJFEDn0A6Vd%}b7?RPG2X8tE##3+X25tSzFNY6 zK+YFY-m~;5y5QICtoz2B=;PZETa%4t4bZLgTbIld<9+3BtY-%3=l#PSFC66J&5Oa5 z?^Iq(K&e7a6vOH>Y+5h;o1Cxr0@(gFG{sz~pI=L0;79>7Si^0qOb$ z+H>zV2!22nc961f%xvRJ9LxeeqL6OkGDmNG6cKqhSslW(7Aa?a+T6ppDjrhy z#9&9IH&|isf1&5j9yBE$L6IbdI!W(O(7v4SVO#5caALzcpI?UAkx{ox*vqFQVgBhX z?ww=syv1%aB$Lz3Qh8|;_EM7TF?yxDsbbdjG(JqTkvd1}8q;)s(AMM;lg?sZRy|d+ zdMzJMEJXtwUpyQaVNNX9x!uO2MTFNl9EuOsPWf~{bbc}&)A~ne-_2G-=spj|JU25chwkAu zSx-Q0^M62}j7>0L&>|~!S3Omde-)#cpgEKGJ09RGm0#buQWPWtvGkR#x^<|&MC_f8 z`|@$BIjzON5N%tO3fzuY_5}IvGt(}yM|uDBbc8bt!Q`pzUZPr)A9l?xm!bPu^s{H+ zVTYn}sr4;a2D72>ux|KOhxuuC1n_Q%yph!tbM!6x5+^}q?{zelAg^>uWWVVcpoYX z$@8bs`nN{HM551FV~Z+ok1CcY%k4Ip-P_7(O8bVaYPX7lNU+RO#o-WHV z997j4)e~aLJ58G`ie+(b z7MGfq3BP1OKY{o`ATdppRumUkT>bV zlN@EG%5Niy%?B%2L*s}F#>n~b%>!K8tre{7u5x(Bm(~cr zBhUqdDXz~fM6k6S{0gPoJOl}EQRN-vp<1}WohqvhIbooKtnG(X9QUGVKT*QL5fhQM z)gI(>5ByW@Z&>KSGPt!lgcbQzmQ$k4UGZdZLkae=lI$!%fmWs-E|k5ecvOc^A!y$b zE*_^sEil&r6HL0K_!cuDMy#?ok-t8{N@mvPqjwh`uo?vs`?s)b{Zkm+p*^tSe&*XHIVi@X#Tn&BrYg1?`&9^&pgnI`RSpB9MF@6Ue3snz zH0JZkV8WGtr>&JnHx+Ir58QPo}tgKL1{;y64{)%p~;;r?eKjtpeVLYr#8pvf% zo|A-`tgg0l4I*kU=quk=aPgmy5F*UgylkZV6z^Gq>AA|&R+@Dt{Q7$Wy!`b)QkZ9S z%F!w_TRz;+`hVHW$C*>y&~yMi88(46J+CT~jK9h%rT1~(wU(U3Xk%`+82z6z%jI?* zRA9qz88*2XZ*3;NohGk%60M_z zh<;J7dJPKdvx`((9aPgQ@FAhqUshUPI>p_^fKvlMt^@@9=%F_+o zp?aCH3ATTIzZsJ88Mx8!uj1%mQjQK%>n)V-)-xbY9~IOYes&{Rp5>8ATdftkscn%j z!hD>6jeEcR5%bLZ0n$b?A3&a2nJ80l!1!igLw$c;&8$#f3z2By0O@*?S3ZYZ1@w&; z#&qR!%l2a!?)VjEiTwC2;N*A(jS37$%C%HZb4hp!sChLlkC@)*E~hWU%!hMnr8hEj zxFFP6ZVkpbmK@_nwvpcI{>b{T!3|D=LU_xi6iChcer-s*J#B~ z9rX`T1*S1Wx$H)9RfQCPiO4FKv947=0%fyw@ye>dUcXg9j;^0Iaj)g66qdE!;xJYIRc@Q-<*yMx5LtOS$4 z=_GP z<;e*6j0$%GH;RYKw+vbt5oPNqJM}=$hkt`Uwq|Cf@tdmgNblSHl&bPlftz4`qghe5 zjEqC;2Bp_XWFAITcPJ`EM$$?Keb4PnTli}5c7etc5e#@-e2qkx!-tf=eTFQ399?>S zJ*bm((#(+*-EHZo>>VlNIPHLGu@flp4mBFa*N`@ZZN@fykTD?B1G(M=dB=dYN4CR; z&rh39BcQVTF`MD=%KZz7I=&902iNm_LFv5&_@9#-HvGAMS-KfJjQx3_Rv7k3fT+X+kL&dcyd44*?Pw;y)NOLv=vU{f$wg2Q;qGb1sI zM^rRfHl72ep1?z+su8zb{Syg(qjEaSm6?P&kB;Wzof!!2#(Ksv)de-`_Xi*CW?{=$-r*zWT?kEl30~)C;?_P_4*ZzTl!shqeQi`$ zqHLQB0fD*@-})BMOt^#fg@*WwjU%}XN4*D3?Y;pKAI&q}#nK|D(2cXW4{it6Cm z-_FQQ%Q0>$o7H$L(?SNAH4KF-A0g-MyrjW#9OTvIpm+nS>vEzIbdRUSEk!>=Rg0g@ zEUcK)WxKsdzfmnSN=9iq<@_qxzvVkLyV~q%F-~6dIgI|Q+y{Xc+;LjD%sK+~UurC# zdX6VCq*Q41R-qVUpQ;%s;|?LY%kQA*KdERt^wUU^?IAeTlUW6#r|iDcU>3Z+ndW25 z!cjw~Xy?}X!t%mYtA)!g!>Q%u3?sO7cafwRM0pp1E{a#;mL(=Yc5(`;Rxr`DNwkL)VO3w7gGDfUsA(Om(bkgZ=+b*WfsH?I^NgcnhK;G?}5u~EYu+hDLm@~!f3!c4_ zUM|UB;fe?8RHkgXnJvEBm%Wml$ZIp7;URtXEala7JZKwLz(U5c5X%xX3b0jLmvZ*X+0!)wKERxv)P#Y;0YNeWb?Kz zQr?#99J*OFwF4{dq3nGnE{2OgF?sJJs=OZ2ZG{PLhQ>%$5}H6nZ7~)U<;znfS@g=h z@p7aFu2h^vL7SxWve8Tq5$aX6KnkuD)ZZCTRW;I0*8fV>&{)}q$=!G32e0kK#{c&# zem(C8Ux+!!z*w0uoK-D9fJb<-D=L)U0a8w}8N#@#D$^xhZ}w=e>kylJuBRQ)%Ehj)bpUSt>*zorgXIreHr^*>^%+D>9jXK2|vw_R**^59N z6S-AXLAo@a0TqAi;%hHP*Ptw~v0!92tk}^TN9-LU=VqA!#&9vSKaLW84zt3j3D3dC zbQ9F3FVLU$UN@71-$mdrhLr3WO_(a0#3>7 zho{)qoI5)9WPR_X@@-?UFDf_ALMS&SqU;#TbsZWa$BC4Gj8VBxxv`%& zdRB5-OuEeoTN?`TRB=5bQ^P0UCvg3d87SCD=7r>72{)ZoMmGwc!N$fxWlJT1C~ygcr=Gl|$DcyB+{t(NMZSYZ}HpayZ@a9%D>Pvq@T6Mh!(&ig^)5672N_{O|ui4D>w;J;uh|YTSHfcdRO>p;YcS1I9;MJzvrRO8GA+ z&|+%NM(Z>0O9BGpJ4%Z#UT#YA5O({-#JIP~l$gj4_ zPa!<9vsvyLynM4IzHF&|3Xok{RH-`pMQ6&xC3iPVN>c6wBa|5+31sAB%rSiId6l0i zlWq{MKEK-x;a3W~7-LlRP~)_!p2(n6w4w2+Nu0Ps*&TYS%_6>6vHOQqK}$SXO-nhr zfM1hUNk55C#xN4j`aCjuFS6-{`x0Xr9FJwh2#(nua?ECyaBrv?GdlUPgyKm_a=H(g z!z<(9v8OeGbxt2D(cZQcDD8}eAJDg3=hHvq4n;N^L`ivDXy%&tj86yg zCJHJ|ll#W8x+Bwg{1oN&;R&M3@Tih06z8ht)e<;1tuMv42UV1biXY8VY@xC#(Bz3B z@OKO_-cM)pT=_>c1yf_?Pv!NEvuQ#3y$@t&U5F1FPh#RxruSfGsF^mvVu|U1aF!;J zfF-MnLC_YxR|;#vDrTMP%c3m=O9#fH+4-;F0?`MOVg8{Z5L+`;8Z*j@BMi8W@%Y9Z zU46T4BX$^~YLaEg6&^xQrM~R`%2z4}R{8>R?FH757{eEkr z3UQ^PWk(2kMSnpf+SZ4- z(iOf^u)v|@=_`EknVuGu)_|%-*WeqFrOU6&`S^AcE-(0OhMjU@c7hz=!M$%Rz@EFS z%F)UH1%{f{vi&1mO1830CrAj7k>ID0G^&-EPwZPcTpl~)W1N)O4PXHs z&*&{I3+TTZ=ZbQq$_0yR4>NV}>7OirW+Sv><&C92<8Lbdw=u9k+nRZD@=@$a-7w2} zy}zq$8f3Z&`&{jfHQ{pj1tgOgzmcMpFRwP!U^AUPWt% z#sVvwb#1YBH8wn6Py4>1tDg%qK#nP@qy@gr7%X?bKx(^`+d`w?p>%=0h4Da|i|{-+ zTdEqPadSTfZ<_T)6FTV4odel5fupTp?{W>yI-)|Y$hotU-)l-$< zD-S&C3(2AjR($_YEcAdKS=L~Ra&!?&{+BZRa)X_RL=Yk7I0g|YXK#g`zm;PKkv|hI zX(LelqdBbL_Bm=8sroueM0?&=#gpXWdfa<8ElXo+BDGC_U*lz!muytVJLI2!rkyB0 zqC=jLTQ+N-{YNg(C{W=MvgB*NeN5SANks>ri)hDVlYVyyp}ddq{&vbck@_#acHMs(kd}`nRvL7I+oj4fn94)6p4`_F zo(KQUaL7Hyu;%quT-RRZk3g8gdQwp8^GIn=+}-@$gy;XLN)s>Th?N;^%iua!JyJJf zruP40uupvp0DLfpMgQ8(WK-(N_-~bBF1-<2$DmoF927`F7)dhEG zLQIkYK8$katEedxw=Vowb_znIalJ0UQ)pe*mu=cR*N!7D>#TBy8@;TzEJoRfyfU?j zSDtQ^Q6jJ1X9lU57P|CO>&h$7S$i5ks{CXbse3hNXcc`LEZWiyUN86vBk#>hDbqONiu*H2W_q54!eN}ZD9 zg%=HO!!3&{o+Yj?Fs7rbCS8`C_p!ZK<@Ls*Jnf~)Su}s<1=FQVWNw+zmxo$aaT^G& z=)r(mR)*x!&H^Tw6+H7a&%3R%=gQtAu)nSH&X6UKf?B;+;>Ih=DhS$)B#M&R4KUhB zH}e0idIZ2YH9!3(^t+;)v>%F@H6tyhIG!_H;s#jlvb_|w^DKcEq`LEXg)Pn4ssfFq zSWmCD`-oU(>RSZ8_b6LkaeRjn2Cw4UPCQ_SrNg-`hLMn#B`rImVYhT-{hglRm_*oS zoGHqZMVTmPS5@d&$7#oO=!)EJGofaH3QU)$BfbI|+|mp~ji({!7T_Y^$+gp^VBl=V z1JL%W-qLvW{R|JGxGkV3u7*o55?G{A*;raVcd61zGW8~0U%~tuaf+?Ed=MeWc&|T;*}sbG(x#XJ$$T;+j~FL1 z59^FlWm*O)nR+ARvMJE>1SeTgBrfg&!ez%v^RHM`*#_hUbd8XS*8tbKWE+yx0#0mK zd9&ow*8sv1RoM}Os@>AghAWP!`~{MF0#Uw^8a#N!WC#nYtcV$&@%hvT~LU5%|SVC$~@y9rgwdJkulsKN^=^xFFa)c!d6=oonN z-azo=0afnCDdnV5Q1WykJ~eu3&(<71R^H1(-7Tni1mmUZd((}r`kS#uuOLmny#s4@ zsJs}y#f5KCHA7I#iUD%%6|+>1bH*D@eSZv{!GdlQnE*mYNGhdseLUS%RnS;=GI1wO zoyeeL3WoiHiguLUZ<5dM(Fw-%WnA}$%I*y!5mVh!_Abgu8h` z`KFK0jqzot%jV}1%w70oS)M}3e7CYFN!g16a~54gUEp*PXp~!Je-ioO$LvO;5@bt} zBd2iB*(&T3quOUPQgh2$N8Uuq(}P1B^*F%?pFm5LQCj1xbib}qj3V|74ws*P0vC_n z_R*oOKzIJFs^nGFJ>OLJmU64kVJ3)TO^^J^t`LH?K$?82aBidYpwE_b0FsGfQDDev zET5*LCzo`K?&Nrrq>N2zMo9O#Kh&n&ql=I7QC(K|n)3DpK1-A3zjp9!s|vRvFU@Wu zCHk0`S$bmcDdiuG;RL$M>_dm0C`z@H{XiANjrBz?z_9H3TV~Qz1Wr23#yu;S{;Wkp_TsVVt~n$Mg~x zGaPwif>|w|S9wa_yFSW|`7Az8&nK{NDMs#2G}--Hv!$APXJy;}KP?us&$RKBP&-1$ z@}6?@eeQT769#ws3sw(rYC4(MDVQuB+ggLLp}>Pa+7d|k+)L#&`<-c(6bz8X!o|KC z>?MV*<|uxCoGdf*cmZB=0cVq^b^Ng~0rBgxB9Bjd}d(0$izt!JYC_M`St)z=Ac!38`l%k?NWxx?$ zxJ%hP5rn&X$m?S>@;I6TBmZ2_99(*fi(8BW6Q5d=mTf$Y8T5Dy`6mAly_t@m)jNDT zpdeAFOtS$xTU2xre+%`M_8ftU>?wW?@f42+KuPX!b+ zSUH*URhq9t9-fRSmoDED=7#Ey#?`VyB51qrPZc!AJBQ}Tvu^{xi~qq~dzbm;*}DlA z`u)aDGwwjr5mi1^Kf8sD-N6;tGucBk4%xQ903&Mc1yH|Id82VU7G;boF63svE4%7_(g?tZ{z?z{V8b~pA$W11G_P#GwgL2gjo znChmdA3`W;EpZ3T0?E!pPa5|lJi4-nYfq@GUKlPx&11?@S0qeid-{8<=pI!#iXx21 z1LB6Q#_f0nP*qK2=S-kAM!)T=R;C5uuw@zc^dJ=tlH;#ZGrUBv{v;yH(y6KOH79%277 zp5A5woFlzt&y%J>HL=15vn$48nc=V=5$H&5IIjf?X|PdZ4(y6KLiDjvV}HASL=TTC z*KD~-QYAZPu=^Hi{#q(*%lW~IDMDHhNMSlVNYT^9k;sbYF3 zNywJrlCiC@*!Qk+Z$OnUC7Q}^PEp*p#F!P&872*UItO<5mjhoR2>)Xy$NjWp&9gyE zN&MBc^Ttq;?9zEb^Ut7mLf)1fgkl>47*}_b*-v5%b?)chO1)#{W)M_utn7niJjdJM z)*_vydObf4R<=Z`{U%EFg(~Slsh5FA#|G}5{1<;qS0z0qWq`F@&bHxEiA#CZbv=FG zNQLj09U3x@>Yc_tU%+jJR92eo)VpWa41%EcR5>J2%sM_wFPAsgfEyWjQ{zfizJwZO z=m3_HjGPCtka~)$cS>fSoPEg`l(*l_2v7x$E@O!Shvnzlch&kq21Tq+JRD;IhvSP; z_JVfu*yluc13x5AdO}%xOH(^`dRHnkOFRsjgY-0DKu4SBs;cFVo@(B3mo+Ty`db+b zRPJQxwak_IEz!Q0nSUdjcTND~+yi8Y2^8N@(S>sGNzDG5au3(a0k`xabNT{ z{j!+m9W77KP)17VlUJ$y4&M7LHY_!y^Ng#Z1c0_%*gKsBa5N+dV3 zKDe}3<=2(F8&RwLM9+dPR-UjVaFPurb4nQ3AIBUkP?Om7iqHk9W!9D?XRb2J}!|jfGjLQm?eVfl`e+?(<7oEWX*F?k1D8 zWJvA15RZ{bD{+}=lTB;E^$`s0NF80XJE8JdOUu_$+YFjxKowKkul!@`FuHt(tS`iy zcs9@dnDdf8!<_HY{ny(cVU3eiHO=nbW|rL1$I`UolsURXIc#FP8z)NNJejaQC)JSn z8dBNHo`)nSj`~Y~ zWt%RxvpC8fWtGN{X-?_(CiF4BHiI&bfBtO zQmZp8l5h`ZnDiWB!rI@^ijP$&85k@K@Syw^bOBvSP*oX{on$?vxY>QA)1M&8B~>$0 z0$P-9mIH`)y@ou#&{?A^$T|~Mbc)nl?$a|GgxHU%@F=4>7P{>Yt}ZwZg^H=-D2GRJ z_2EZQ&DWKmQOiSSP{v2G`xaYKzHa|wAUUdfgw$bg6(X~ZmHQtDJ!YuvM8f%=UG>Hc z7ufjB%lw?c0AC*of9E>O@#k5F)UPH%w9zu34y0{mhsR-2>j&18uI0DY~8 zrC%Bk?0m{lEiTGsAr&ZZXiTXpVWCF0r2XnEpf(?_Cog`?W%tw}C;Q*C80X|q%u0E6 zjL&bhDk>qms98m|pd^{-C5xnk{fTI9s1ah!%a*er!ju~22uu9mc;-zi+*eMmBw>5G z1WEV6KK;KmDf%3 zd%~KHXURFbQxcIY6Sp|gz4L+f{I|OrpRpi8@YVs=_O89Xo8-Q}P)&;^Ge4tp@ZQajLARJ4D9eSVKRC zK*VB&i}(G2l|0f7Z-dSy(BaGOEDz2@E1Rnt2gzyaTpX#hr6hfq5h5OTc9)VC8GhqZ zSr$*KZXs*0Vd;ld{v`Rf7xHLSMC==Xip;2^4#Zp3Bix*)Tn?Qs)J3Sh!*s~bqk0=#wE8)hXF8|5>I@TynI`cI)% zsyJ@;a}@3iFI7}Ok(tbP}9Z#0sehcI((X0J_KZK*QwU!ag zhseU`k&jIoA$qZeEo9vvK9@Al#9O-D(~phjX^o zwc=O`2qxR7lqXN-T+eXHf4$5QOJz6I{zg`taWlO}N;<;Bq_T)yc*&PTRnlmHPY8~Z zk@L7-I)QbBvD0}&w7=XKfk;==17zeQoP;ZJwh~zeP6xd3;(cOxx$QAMm@lJiU+cqN z8_=rfpeLZ?@o#|W-OAsKW;dziUCU9}=_)c@_Fd8*QROGd?aM6rJbPc|w|QXv0_9vO zKV11gi5G8|l?$PGrmAUW#Fx>czZZ2#`UBV`=9*-jPxngyr5TlycEuVb&9XRAr$|pm z6-rvjzSW?vMY;UCM88SK>uGpSMsN^7MV4!@Z%x=iN|33Xy^&OTp6rbR0>8E-uNd4M zD87CUy*HME%-e?oQBTh!cbVH1ZnswzL1{{oYvdO>h(#O|WXnB1J?!92!96irIqyE7 zh1FH|knAr}hJ58+Bik>qxRH6V2`<-#m>|z-_gYT`stGQRO^H4&rT3k*(lC`Cz^;DkF#B?ba#B z0%^P3x`byI*o=CQIF8zok%ltcdXtYa zVKaXx&UEA)bn7pb6@<0+x}--n&1C#rq=svpz8qQT14yiGh;l8z!kbpACM^5T;{rTq zk=YO;7C9Q5p|>n&uae-)n9gNo+b-S*5cSQ4JelB$W9Ul%&t&)2tYE*+k|1x#I0k;x3iQ^);XPji#5IVEu< z5BNjxyNzcA1TJ|RA&G+4@?T>!h{+l8ls_25=y+mFC0xqxOzNIBM64Y4z+kw4iSc1o zIa5jY!E!R$v|%>XE_Wz@i15Vz07_Mzh>GP+mx%7P{kp&`k&O%BnRf%2cpw{UM`hZe zoh*m>?wRuFAeh`$l?>JKvXz~n1s&y{pM750+zms&sUz8L@r5W%d4};orc=%>B#3(K zT@skD{@|lc9b$_1JCMvE&aY%$<=t3A$-|VS%NxqPbF7u=fQdS+O`}>^(LlbYzXvo? zXyHi7Ud-lsQsnqXTrRGynUv>ecr_()=pT+`jWXO^5?UrnOL679eL%x+cQWk6H^q-) zBf%8niIR=f9V$Giccng8A#1ekzrkXMm7~Q?ROME=c?rAwSB2*hs2B8;#oevNw9#$z zWXFgMy^|_nlf!>=3A4WGxE2!L*G41iZKp^I=lzbue|#H$?TV^Sm)2c?s-+CKV>teL zFg~Xju|*^X2H_9ll{Zy}|I5oATQaibaxR`L<8id1X0Fd8Gy9_BZ|{MB@7<3u4UG`H zRm~(RykLz=My$^%_bFcq+C>HZ%P49)xEXJoqX}BBwPvAmc4E-dF`MRDaRcLzc#Cv< z8HGDP6f-|_niafPWS4{bD7J<3c*DcW71rU%cz()XCPiD}{Nt+RF`0JvWj}0qM*2s(xGYl*>s_~0W2t)Ory7yGc3f(4~ zgZ^YWkZx%Md?T&mSKOG)^xPmKb;l5yGlS5o%4gTL#3$uvwu;K)u4v5F6F!&mewp?k z9;>|1{1~Vi&Xv0b!F`EurrO{bVr)vY8Jmj=rD7e398l$J<(`jCFHlb(=G1L4`<%+B z_)%1$W68yGs|3hmRMZK5;MaJ51z<|13d00NbLH+p2$)^p zSXP#=7d1hyiq9sQpFm!ZGzO<``y%9sH>z#*anX zN0m&M6~kHY{mSnr_Ob0CP@|{Os&;lH*ETl5PSGU~=6D_x9 z)PMo_+QE-eba>F#)!d8LNI91JJ!h~oHek`jW zd18%^90K&(UsTNx7JQ~YjK^GV_3PeVeQEv*&p!1VP(NGc?39&0EZ&-c8#|**DpqTT zg?eMz=7>V@Qz#&2cQ% zHre(FA;BIMxL^9#i|06BFyWbp$^M_Ygn#64plms~nbdx)s#vNPrwPVnvtu;IDn9J% zkrBGPRUdIMT_3Uaz;zsX{eBs4d2t(vzSxhB|IU6gQHdX;lMS$j^L9OI-lnOK{&|LqQd(~hqRi+%)o zq}7;=9QjuFlp@NLEOB}ywIqYL?o)pHqH75=3_S^vOO2iUCD>1B>B`+w#&IkKhMzY{7af~pn3Yqd(YK}(7a8d)wHI3psJ$Ye zPrgG7KYto9T*UrWx&M71v)&J5bxk>{gxofNq@Hvd#J^}TIlkx~kh?=U%(+h$&yh)5UN_H7><7Nv1Tz9N!_e zHFgx`)2I%ZfIwb78O%{T^5*wg{i?07Y@~A01%DH@csSR(MOwXuGCij8i1O$C1UQAU z>^w2E$UzDB=INQ?Cjp4Z{~RACkru1)a61 z6G-?<>>SF=9B5h!(-&Q#( zLYOv;bPhCW#Z$4Tkxu`$(P?dv8LDu5?XiPg-Dq4X+Tt! zHHS#evPkMLFqwRgg*Z+pq1~t(?;Gl&i$%)wki6N6dWGX6zxLMC7E|arAtTbHXnixw zGCmN~s;4a3gD#y+3(4se;=LN>A0Ur&|txGTij4x2`L~K9UgNNE1YA>D!6qR>H zAVBa{>M_VC(nW%8G76{>7)r;{gVB;~Q)2&xjZdm@cfA?YDlKAAm6Dx4m$3nz{Z%ZeYOQxRHU8KST~ws@tk5A>5L`3e>v+55VfQ2&W8xu zx@v1{umu2r|3SjnbY*+m@MLl>bP{0lvOe{1q>9uhzzo^M+R^HeDfba7)6sECD92Yp zy`W--jQbaB`7$%dxR^`PgA?Hh0&C!#p3xg~rZ$Q^L6BdaCt_0-OE7MCtln`_NR7E5Rcik9MNlxuGaz#LVyQC; z^{b}JBK0{56P9{A1LPL3EV*j6TMAbv)anEVhnmZe2UzGhRlQA@Tur&y$F#_SJ3uXn zKb0Ck6@-l(gC@(?XGGA?rAu@Paby$uOfu %gm!F7}|}u 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%0AX)JT|D+LeBs*0bE6X(pKKvHHdouzc{iQPz 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%0Dv#l2ZpS?ooi?rMy+9Jf1xgJjq{N4o)26k( z7fH#GC(?t~Nc&K9#uVS%M%uxBT-oZEx_tnYM5cAUKa+NIUsiVd6>i6YU&wk?ex+eA zcNi{VQ;mGE2gx=Fe?Mhq%4ucYZIocmJseuMg%%!x8TH z%I|(tcOV}T&Zlg~fRl$iy=u0<>kjrK{rQvx3Slz-(>g^_#ay_cn`(N9U z1IihSF7Iwb1=qJq;{SL@`{Ue;lx?c}4K>{0s!adKKYn;Tb`g;*d_elRB%Ie!C!Lp!sj4RpKXZ3i4fvZ*v!oNws zaf_>5meY4CpZbF9LpVhGom*DrwLEF3`DrVNJB0s`{@|Xf3R|8B^CI7NS-KFU8{EdK z*yVH_vfnJ%ZGNFL2V)1FZ`GE7xzZh zvE|ctp`ZI+m4TLm^f&jns*>fzU4rMWS7qRsApOJrqpEH>9Sjn_*JPQ(anfta!`FZZvio6GZHOyzrBc324J20+8MJJ;=E!`vz*3-h(%6SsW!)8#e( z2mZ1J>q2jq^B3+%kSz4=YWXYu2I8pjJ86>pwd(Wo@m>9oUf!@C#Y}0O!n3KK9)Q|S z1>1r37{;d2mWQl%2=Lx5c`m!&NgNwMcy_?y%-!kd0U#wR%-RVQAt@ONS}1_eZz+Jnw38z&*${T5Ri1 zsDRYZ3#d*Du=H@%loiOeVy* zx$$DE>jLNi!1ui^lMC(Lmhe_rpASfasa)%AS;3Tfjh?)X)z<^E_aOf!+({|GENJur ziL^sa^`3~o)iAf~O;P&sc2xHVTmg!_?QfJK)uP5gUV8ONz~epbf9C=LUgg{v!aH0& z0ets~ziqoHB`Tn|Lj)5U_|m~=Fue<*5aQhEy!`6g}u9^vabDyE~ZiGe%^m5)$)oTLV($a>;x)FdP zcU#N5Se+c$2cYrv-w|a(PZ%ivQhgwBJZ*Gn>~}=D(911>_iME@(0;Gat8^fK3w_*@ zc)wSd1J66{)!1D`r4VS{yx!`jz_`6FuhQ=!s)T^v<`v>D1?~aT_TW8h6(*o@H*cW& zPM~5h^&jzlYc(dQF&&`T4+AgkmHab!-&%tSZalynt$qbS>*jyNe^_fVp^b-m`Mmi+bWTa{AMWfi>QqsU#XOgqh#(oL5@}{5u$LQEJaUa7$e12)?KB$= zs_4cto>xs`kSV>=O6xT?sNg4#7f_QHWKHk4cJ{J<<;4ICXl2c@plKQC5nqc8c*P(H zkE$sNA_9%L)gm(rg>H?!n3_6>a4JW9`((|+I5z+X*O2yZ&gceCFk)-RDmTCa*IW(C z%CLEjeaK=+O-O+L)^r7FGJIaA1JYL*@7BiKUh@cmy=kw<9wN>P*SlQ-spBxvcUxYk z|A{y!1hy{kP|fF{8qVJKvk&)(N9B>wnYv*mzO3t?>_DT}=eAWgXwr`i-rs zl*V3O6O7x8`{Lhr_8Z$&+Z*Xq&ed!NU4 zyc;#gR!rNE2KK7#vT%>v-@M;yN?>Fs0FbKeig2&nKfFI`>Q>PAE8qD(leG&o++Oqk ztU13T2`133&t$&{_q+Ye`>W%ul!dZpL89Q)i}ZXRP%1dOTdEa|4O-mIokN0_r2!(im3;X?+GtbZep?zhg#3zgah3G&P@3gbFy)Ej5A;{ zvkxFY5C&2@F|tN<3<(&Q^#|A=^aClkG5L)SF-JXXHwNE2Apb!4JLL|h5NwYAwL61f z9_ap{2e>4rxY0Q#wDw5w)Pu-T8jlX7NH<&zy|y6O>0rdDdXQ!6Rl1R4xV6;)b<7#X z4zap>)o#?7xZ2af8xD4is)ty=_m;YO#%!p)8k}{|<|FnM>uzs3q^px^UzL_04EmV+ zigHg?+2|LuqqaZz%E2JnhgS&T9>R=%Z|!h!A5aa`|3UmAtZf{3%&h$s{NdmTAPTL2 zVCovfVsbzOiprz{Z_xSxqiv+c$N?tkohca`9Jcmg^srx5){-E@-8?3?TFsb-Movs+ zt$)a#%#pD{fcRmW8e?O$wG2S?QOCt2Rtp9Id@(q-D8!q;7I=HcKGjc+t7FasP0y5B z2{~{hu<{z$#RwvIhYV$!$6H^^{uG{b+Z1!7_WH^xhmfBLZ&Ds%F1UTe-v)}E6F}?K zZ;TEKVARFjt*s0RJd_CpI!eE)wJ{~e0(`l(ha%SQ1)QAll3QxbliJH68HYwcjlD%Y z73QDV9WwwZIK?6Af8ux6rMSR46o@L%g+n468qVr))L2Ur^Qv-rLB1*W4hHwJmi0mx^P&x7x+FEO2s z(irq95@gz&KZ`$D2QYUU3t}9BNw(+k$mhWi*1s`b(4NErU`%nC`b9iy9mI4us$;09 zR)tBk{Se5JpY}d$_!H?E|Fb^8*pyYZY z6qQ8<Rx#O>#pU4WRnou&Nh z`yZtg^Q^HwX5XoIp)a$#zv=-Gh54)Tdd!hi-$SP!L4G5API=#3OX!HnJ2i8q6M&r5 zpIIMz2i)$&6rNhNG6bkh*e|Tn-a)tS7|kj7l^c$9d{cj6ee8YZb{|0O!7H;_9Wzg9n=1c71h|*j#dTp}dB@OG{cPl)Y!FT8SW+D?to|5#ssYF>*dLo5 zVm<3N0(V6|mH2~XI(Al*W2}GOPJpO%Pc{4?nSljFN^EG|k+7-RNE@Q9#14yU!o^N= zDhP|47hscTOGT*BO~hDE-Gq~GcACw&EfOihk}0vmx~8zW>=v7hX-MFVkUe78)m;wD z$R4#BpN0fz2yEN7KpR5?NRW)_$XOysvR~}>Iyw4$w&aJQ=_9kSK=X)A11WG%cJmKO zGe%}(otuJVGwVKueaIg9VQ7Zr%H74}u-NRn5>G^qqb=R8d9K>EDKb_H&iak@eKKxov&NTZU*$x(W=#8}1?FfIC(*Xzw_B@Lxd1LG~ z06a|Q*i5&d$)0cVA}7XvJuVMla6Aa$4Acc`pQfbPyMSH@Jf1my+AON0MLi!B&d@!H zJKi!q1G!KHw#e8gb(h04j*m_sM=lb9W(fqyT|hYSnUOIY=_CR{LG0_gN8xS9(`Jm% zMmmdtMG*V3ZaBQ}c*~58IY=8+Xw%`?iMmg~5g3^lgYLvu%5v9u;B>@P_X{M=@{B-98F%V;V9dA5JVp4<_;+sitjSx+vB zb*-mG6hd!44&6<#u*lGguNOs}$xTG`p}UEeXfjmX>%|fGau*O|5?lP3oKJa}Sa<}^pDuR6J@Cstq2j;uHl1f5>0pIXw?7kj!sKJvP&+Lpv$UspVc_{Yx`f_Nw zra`F{86-+4TfuhS6d8B2Wp;)W5(=s0x3N#^FGpsa9GyMxgoJV_8GzOGU6GoTK65gh zkqZy&@yO}u0{tzH_&_YOH?18y|nVAMqbL_ zq`e8Oo{PxYu=w-+B6jFhA2_8Wf1stxYNLuWP2S%@>rXc_7z`E|F9DPoVpgkw5A% z?txq{x=h}~{~L-tntY#m8J@@uqIPly|24F7+Va!pje8=Yb3;DJ|EL|N_vN?D%UFtp z0u2NYzG^?y$MZ+$jW0!R7TqLg^MBCUG3*O`=4W^z6GR=o z3n~=jJy2fkA?x^2x)KHv3KDI;@)S`o8QKrJItIN^>FDPtmx%hvP-W1aXCy&pqRmgf zUGyjU9DkGUCL^y9z0l8JzC-kwe38EmIt2!(5VZNrQ$6lTP zA|I!WAY_JUg#36#GbGb56iJ+hf<`j1Z<-$QTXb8adWxEzl2(lD!@g^J%5T^0i~3MB z;xq(_aP0f07m)ur5rrzILb`k80Cu!#klzj2ZSP`<^HA`}LF`!5F#o6-lGyy>X6K}k zkxVQwp85T{OHq4@N1TU3Mh;;=H@)W%=CO;;cN`cg{ zelC+(B5-L7lV@YwOQ#EF>z$e5C2|)c1bng6j7Wil-jkV7((Ph^v@Ujrakju&AIi)w zLAnwF9D_v|(E^g5$E+`5yBZ=Sd02?e3LI9gXI_JptUZKcEi<8o>8Ibpd{)xos)2;7 zWj4iG5TZZKoGh`y+0y|2@@uZEfTou-7eE#@k4BZL(MF^=76~ z5s$ykXg#JCk4c(ss%laq*CNhKCC zZi0vUv#bPFHw1(vRaj8?3Z6qgEn9_jBl0AWJ~O5XUg__%>Q!tv1Ft*mb`WKs;H~~C zB*${x>|@xqmS9SzU|j!(^-R^_rh$u!C6sbRFsc8>npD}4?PJ+>mM}_=V47hj+esZk z*2J>wEfJIxf?0+|>=1Ph*&eb~78(?4?G5gbl}%>AioK8xX(LLdz|XLQJ-+ucrEhXdqljk|EDJL1 zV}DThuYDlwZnVTu>IC72T=pytjv6QGZnE$xdI8IzW_xH7sePhuqeTdZOKpsn&4Ppu zJ+8S~9cTPWu*T5BPSNyJZ^t$Nr2hXf&1S<$M4ko>Q5pGZ(OSwy!8QoO7&L+XsWBG_+u&mPj4m$X3uMYM@>LvYkE1>z-WcfU3A^P&XG zuY!|?xzR)jUA3)|Ul47fGzS+MoTI}_<&eUXv|y8r-GWksXLLeox4U7j>fOedf=+`RG6_MRdF!cH)Q~t3+%;522bN`e z+Owy$i_$4pL9d}HIu6nT85@wli1tw+3t+e$ol!RGIlcjTRdm4k(tf~jCt6WPU7ECU zuEt(x#E?*dxYof(gT?=nrKhONU@P zjy-047(Er1;j_wdUU8edVbx8s6(Sn29FOuuuRhpYTaHuggs27rY^AkcaS7cWmORQ# z;erNVPHOppS6_mhP;$~ZN9fWJ0qbH%?{UdV*bY-L!pF%xSO&Ab4T+N5*nFddFsE`o z=URD=xBV72EOIH=SiTJs&g1fSSkqE}Qx_SXguxA&oRsiU@9{0jF6^8N7hy!h2@VQ2 zs!8IJF09f>fDd0O#~aq8L*fw=Rt@!QK|=$FU(xK7lr++fEj79e;~Oq<_Ee1c48fif zTW<7%ble@-LQQ= zABoOW5`@1tNV)b^KK>c7?Gd$5l7zoElym*6()`DFAp0#j*~vn4Lj#vz)$E^?I?|7Y zwTrO7;SzUG)rkL4>c|r;>`)*ac!#S18+y{tk*8`A9u^{y7CcjxxV&$t1bgfk<9^}$ zh5@drs?y}OOa5GRjRL!ihWFf|D)aKTUGl#~Hz-Gi|7)1Sn^uhu@Y^kaA-Y95E}Q{N z1Y)%yplvssi}}@fLO8q8nHOFy51{+A1}vQv822~2^EOm>1ZY4SYq>)y5;`>o^RlXK z0`1e-gO)CeQb=s%@M@|fV9d@QvUF2Qg&vLTdDlR!X}_2K%5s-dDfDaH!FyKS5vbYA z{>O5kQY-vFiq1Wd>HYuXQB#>NWSew3rPS9pbLr@!%PFN(I3;$UT{UG>p(d1TO>Da9 zY^1A7vAfG$=02uE7iu#~7d0oFE)+%4@BRC)KPt6-KJWMI^?W^Fk7w8kC*N;ZM>dQe zwFPRnTLIt+W$u9it(tetb`aa;Ru~$1FK>^}wE%~A$IOF{&x?yfL%>LJ-!+LZn`bsV z8j5A1BeO(0Co5d@)yvhKA4eHXcr9cLbL1nO-l=bm9t$u$npX3ZZRUlvz| z#@-v)(|Jt-gjVw>$5+L*p^5j#_6%P$Z#03ZB*!O{dP*5U>vzk7_my6ZWceNG6*upixCgjU{*-fOzv zwOM^a@Er@{4?-J&_6E7(u*K)3;0Jct?Oo`7Af&n82mw%i!8rD-8-UpZRm}fJ&K92} z0nohMETP@^RD0RL`KeA4{KNvjdFbnV&-bL>u>H$5nFG|Q;*rpSdyfIiEa0!gWX`1H z&*HJrPxoE{;Yje8YYJz|ak6+KbnM=zy>D-{{Z*L4`Rxcap3td#Q+urdS=cqzcKG=; zB+zS$?1Gov^xG-|YK-0*36Qo$i-R}cOy3Gi3$WJDKmvqo5jvQ9QwwyGfa!W0W}k@H2%B-;Rw!gk-nTfRH^nMiw)i^LzBUF5uP1E9n}vXBmrrlkCK?BAp3Y?tCT z0juy=P=o8iW+U&s?H{-;$RzB~q96N4LHRs--gX&oD>4l`y?9m#?2h*?9w>cren>tR zTI>W0+t^*B7i?W{plro100a*lC`x%3ZNUx^@+@{y@%j+n9hZUri{=%uU6Kn}m*Sm( z@qygU&M~iq1xWtIB0(`&atC?uIjH^gfkFkGA^yPS>;wGD zI2;lI%~XVYvYqeHg%z@QQ~*`UKQ z{UPK_Y<2Om(2w8_(O+o;vuh-{A%KT_&OMhsxT|gJ^)blz*oVdcg43O~M}M_#gZ`)_ zVdK-{TcNw}jM1A&Pxp z+!lKIo-a5dk()({l2PnXac^k#y+m-_A-9OY5CHqF*c{pe#CJXjD-b11Cb7T3$uxd% zVlU(-5}Z2{E8Gl;Ep}m%Z!rHRa+@e!0>RlyoUt2<5`!THNI%hO$!we>c;8(MN`aha zyB(K-oP%2=S&!uvjRdQuAGX6XCG&AElAQnogWSgkFCOgw-!r5Hk1Z+UfVar(56hM~ z;k+dg*oB)4_Tg@~f$exC*anvz!+tF42hVrg-}>{&Ww>p?!ak?i1w5>6yYv?&RnT3) zzU~Iv5ZxUKSWl6x#sy1mVRskjgU3h`AQDMXI3jpRB8z)NbcGV|1V}t^42c$-1-@VZ zyOJQ$Wyu=cK}i?37<^f}yOMuIS0w9j(UN}f$>)dq-;?YSf$IwwFB!oOf=^9%PXeY3 z0MMT*vBu2?AAx_7Bv@1c!do*X4!}xJ#_GTuEdra!06gr1+bzk*`WH(=MBqo`$P`Z; z8~h}7u^<$856s(cNVekm;Exqv;b39lcj4|z_TUO60k}d52M3c%@HmBphHH`taFD_P zyk3SR<&uNAF3DZoKJd4*;p`mBR5}G7izCGBaT<;9uz=U4`E#lMvY@W)`efl8vhl z{1bmj)=$)zw1w;MBQM~VOLyQ0?VU;f+p_lK9wIM+xppwVP!>W`mkPjt44I4bkTUQ( zSq{mkOb~&4guH@VCyfUG(=L*_OmG1A1bGAZmoya*kvoum$^{2;oygm`zoi$zdP4|V zT`q{kJwx8ZrRher^+`0iIO!++TX`F$u#$5G_F7Vp zOO{UItrWIlu2r09*jw-&W=Q7}mMa3n3adCVuy^1iKL=vNwkg`qI8+D3>fa;Vz_*Mh zP!-xRQFXvk{Q&YY?wWKHAxU9P=GxM$KL0!~><h2LM!|XnJsal%9p`!M5e)x{Q<#4WllsN zRV-t)(Ka1712r4J03e}os!|58$@Ub^1~mu2NVc8`Nf>09n#`wQv!wI!F0!2f8ii!C zwdT_>Td5-+DZ>*>R2-&BYv#l3q)vEmSp>0DC1J9g%^9${(#3dRSsZZ~Jfx;(^BLHD z=`y^ZEQ4rYf@HB<%$YC;>HVF%W&aZ0OIR#@OIwzH0bq*nlieZyQ*w)i)3pioFccb3 zk_|v2OL|#4okS=?NImcjnU8%V60@{zf8j&UB^Ypp;IGTJkkU$R*{*Gz ze_?K5)8{UTlrAU@U>CM=L@<;Tk5|ZOq$cowxwdn}Fn1{#Um-h8dRyAYE^O!I!aSrj ze7!80WL0Jx;o8B;gLz3=_*U6Dz}5`_%Q>9Our<;M{A1a5(l+o)x<2CM!+fM1yg{ZQ zG0WN_3LkNuEI7*WAOvB$E1R?fCGh(IoDttrE&OAvR9-g z@D{s1;arDpmL}rIWS>ZH%i0bUKH=Pe{UuGtPsyf8R^_$_U7vDp!nR4%@iy|gSzH2Av7R+BNz{BMjGPAtxU|}ccHtcWdIs6~QP2{9<>quBv zz#aWAR1P>Ag2>m({USwO0fqVilo;DsKq4M!5KJqAX48A&&4^9u! z9_cmwCV3)xynG@O@*G(t3YHe&cgO|gg=$|8|2eW)6aw~1g5>$+4eCS=M30n+u+m~Y zRxTlv)EW*SoHru8RE`gmYsd-e2@b@7l!=Ja68wI78~L)@m&-RGTOCe-f)P*(Vwk!rHfFTnwiTC+T1Z%< zI2gt*D2idfGq=LdNf#4*6>(w1RpuDeJM(?m1?e(^pCTj7z8V?Jes6vN%aN`m1SrH| zUe%mf(|hwn*uMaU7Xr+=`>G|eY?HYSCI%M+Sy2%dQ*Dklnau65JgFyvrDzSiSdBc& z9x!*n@}++gI11u%Sv3n>9c_>FS5WH-F^czLkE(AS#r@azSbq&9`X(s8g?+5E9qN!G*e8lYh*AP|_s= zD?5Zdg*P=)(|b%eD0wEjC*4c9sqh0Ua?U(|v*fv`SQ<)rE^qNI&;;-b%^W>UD!sT) zt_Y*nY0`NxOMpQyLy-w;MHID9qveS#0o{59ibkkYoTN@_tm9xq0Y<$F#Ukhw*&x^6 z58P=1J^E5q1mTh5Ds^*BdK~OyK(D?W#UbbwGAgx38z=f0@IqgKI!x$O)KZgbtjSiN zkS|45(ip;fMH}^Ujqh>(CuE;UBjpi>6us2yn#ALf&&XGzT4@5|8>nx3YBb0BpOLRc z_0lB5FU16Pyk_D!#CO&kQI;r`V6C*F+1DcD*_pmn9gtwa# zOOw~K67(Z&CVe|9kKm=;PkU6`U%TzAWI*&tdWEna+{c5py$QOnw&?*+P&WvFDN|{X zI^WEd-#8y&ozhzXb9Rolye=TI@Ed0k_Dp)0um@y}ZmSa{x{h+pFg+;N@JauXb@ zXf(j0H=q;*sK~;EVnZN(;&WJNlA(zmuXL0mJ%! zR4d`Eaxr~#efmk*c)*DMJ*tf$Qljb9dhJQkc)(Zv0O~Q}nsO7J*D-z)GJ*Ui`XKEj z+yRxt<$B*F{siaT4l_zmkSd9Eb$x8o=!ESUZV1&wC{rG!>+4ICct35wiymKnNzf?c z=)?8qB-2mxci0!{8-iAuLAP%}CbNGbGjuo4ydykN=Fq9R!O7}hf^pne)PIC0%A0im zhMZ)dNdYKFP!>YBQblJsbS0}N1wV1$QJ)E~m5=LE8*Ectr#Qd#e=iyVn88-{%&GF9K$IL%;%o>gmFn_<86*h<~Y48IUH2be|c*S$KQ&3gX|Y z3k=t$kaYD7AtJ#H_Q`@P+ zncR8sKV(~o$*L)amDcvO>n!ek_;Q&aF+(+%xm+7?x^NcP9=-w;aOYG@ncK92)2_3* z4scgl08y;MFqzsmu>Hzi0ADTJL%goq!tC+3;_LUXa1{SfwvTv66~Mf#_2u(zQ7|!5 zh9k;UWM;KCkw02(1;?Yo!fcu9AXBd`<@2CW1RjH?5^GfP%u($Ke-sLJ!h52b#Aa0{ z6V~jV!Lx%d#CxOJ#CBC4)2BH$W7H1njQTD5b=eoipgsp z$rzmjU5sCkjv>BNJz$EOz0dIGwlA^sl^r9RRR(5BGv|zHu4M^)lPn(W=?*YEn0c_MZ)@5B=d<-1wjwgfJ6Su_3QtM)c zqj2e;kT6*lF}7rY)d>n|Ho}5|(`2>8#F8=Au+A(rAuJwnhOCj8USbn&--^s;J6Sy8 zELjVfU%|t@S~=M!CyN(+zw7}qr({+5K2UqJ7h1gG5wZ?qe#zSKm{#Ya&V}u33=AmLR1CzJ1&gz}peGFW*k(j=O75=a_|E&Ka>00q2*$ZM- zNi5ix?mepm^}G0p>@~5mBt3lgedlxji>2$uF|v2W2PHY-ZuiOObc>}M#7AZS5ucXa z3eS3Y@tn^Rp)css6`qC?ML6?*+quFesM^jr^e19p$T9} z%Te3K8L~N~#ihRc6CO-lfViM`h%;sOq?Mr4@Y&&Yk>>&hz+p51?3NPus~^N(9Cd;2 zG@L!_MDi|;*x&g;a*@5lvJ-wzwwUBw8n=J=f%&3oh2?Mf1=%u^UunjE`-jLJ_Dahx zcn$!_1eA*Rdx37nw9>L04xkmJkkY&R_dS&4uw5+yaIp+cB9~U|k9la$F}Yd-;b7g9 z#43IBDf^+zCETj^Aj4&lx$$aq*Z$&%}(4HQ7c| zd}*BN{ll(H>ea%%cwi1CrIb!%L)skv_4%JL7+-(}RR7ZXpeG9XSN%WXK0Gj1kj|Gb zWBa#RpK*2LhQJGD0VHuLhRtki`?t`I8wzK`_K>cXZel03S&LxEK&+t%ebe<0XrnH- z`HJ{R6izIW;YhMlGP}AhQ3OGuKqn?6k;+Rs?4CA_h>t=M#Gqaw)s`l*$J-`E5OBDP zRWc^21$15u+kM4+Gz$Dg8JpBmn$Ok4i;ggL^iJJg!#x0h z0@}zeWyuj%kNooH{~37D@DvRI(Ph~YOCI^5(R%?}Ors4Kg{2xUVXL_h=-4)CU@cH=;{O;bjjZM320$@YX^P;d{|)61U74 zp?(y5Wppj{F#aXFnsgM)T@t@6ZoO7t2;2_y-W1^>vb1u}RiW$}96e5c#k;~0Jr{fu<4EEsgaA=lKtLLT0N?j|YA7zcC!h2XPM z7>ECeenF}%i#}j_+;vU8QFt8x8U32nP?mZC^2Fh~&n96!ei;3ZbieEZXqrQ=t2bHv zXMB|nkRF#^Kd|kI;JWK(ZX$dX$bg12#R2A%w(EtPxhLTF(4RCBj;UGYW zj4a0=ECKDk$4S4Rowxe!kY?Z12<57S z?9Q%RYJVZ1PrG}N>E(?F`JE28eRc}7@eAG8kPm&W8VR|lIq z^PB7e*Ay?lv4MQ7+)7Re zhqnuQ5%1#ePd>dF9_iJ^xntU8xd>k=-vuBRt0If53hv-`x91pK-Gj)N0oCGASN|RT z?)FQD)$YOMg7O`aXS-YqaRKfB8rot;gC{U9vx}w>MB$R3Ul!u?sRfPd1@r&nZsS5AYmRJ?30u4mtTl#q7A;T8Nk_ao%j<(sNgpV{7X-NU^K z-yn}A50pQSEO-`huMq4N!8gj|$e+qzMK(PX000LUtb72;WUTyC6|B9S^W?cje4!mjD>JCEt)OMUD&;5X?5?EmHbI%~pQ7`6fex44@p@FvyJKO;~ zUXA8ZpKFUm`vPwpcDkPXHwO-}}cB5AQWRDKVby>D@L>+>c4IH^R8lS|1&btzzp^h$I% zsZ>mmE6EH%T0gCKkow?-GCaw>jC=s(J{9UifU+Z$<0O&AJ@KpC2 z@^SSSj!EAoRTG3tJl(y4oT8q_g%})UK187k&vb7lpHa`}x*9@cYNCZ~1F9ABIrUQR zHiJOsO5&En*+4=Pt1(=rp-ol@&N%o1`D5~R^%icL!B*}{=9a_3qe8w5HopoC0RVEs zRl~V*16iStOQ|)a%VCtj3PY58FVMlGxP1n#Tto@1G#qw+MXpny1G-dTwISAhfc!{(mAkn+T>+y8Y7EB!XkM?DajD%}g@_thBOWgJNPel- za1**G6c8G!Rva%M1}OSA?&WS@B_Bvx;zao?+#+@G-`!Mj22o z{h?HnB*Kq7W-e zqau5HOLc7MLcd&h4+_1aF^b>gQ05aM>=2*4>`jTNcpO#G6Hrzd!F>e30(82)J6=ZB z^`w`<4g@|nTy^)Q@G6F)`g*iwq62|X4AvWRxCcWxi`HW78%%OxZ@76PZj7x)Lw152=HnQcis0;Qm$2OI+WCF zt%h*|pBswYL%`G{=+HF~P$uF8>J1XP)t|Bo@}cV9L^XtqGKj&2ODP9)k)B?Sn$Jab zixqMzrM4pR(0K2J8WM#vidAwZrKLh}XyFUr3f=JqF;eLoBiK;jh^TJ$VI%IhPuL2rle?{w|i!YFs?8BCqaE<&J z#av-HRPusTX*z7_gV)OADI*mFhdN(KD%nRYui*9alaz^ymd>FU{gwJ7?XL|D?x_^3 z${B~}ymYC;MYq2(G`YWCFsstxu-i*=l`dNPR@^K8&Zjuo2l?e4i0k4na2 z-OHS6pQFM7{3G`(ly#NShfM(SqdqG95C6pd2Ia5H)WeWI2aV4$;Rk%D`)$hKl@1Nd z`T{hC$GC&=XY#w0J(brFZ|f6iTzOnGTrZbU@Rf?g%)T~FA&+Z;cLTkYR#|^ItXoeBc*&@Wm#|=}Oxp3t#!x^5ap%;(ob~l3nS1WW%e(T1WzF z1i*+k!!A|+?+ETyX)P}S`W3%U)bJG}g!Zq7|3Fr7LFJAkXJ6U2?nsn= z6A#LtQHp>+u^5~qx^{ywmKj6dieoAZQxg*Pg)LVFxJ1$n^6HVzugT}9C7~w7-{gao z=arHpq}Q5yeiG`ZcufA0@)C%_39l#WA<3v;;ve#15M9xBWL&98Ea-u))O(LYUUoeNPw!0Af`s(^=Ks%X(7a%vOo zRG>|_9mYA#rz$GC?~S%ebSiLW_gu`_l( zMFg5v6~xJY>jI?jcDwF{m_NfJ0Y*yxmes7!XrI%)2(vycrs{q4qqn!3acA1+b}zyB z&rXR4>iFQ>-e%ny>AYMJULPiOoE8J=cWCj+6wW6s$7~NfQ#C)vwLhdqohbzRIp*)M z^B^wQzdxtNCrju+aK!|Mgw=|(8?IMviAe(ryQ_ffh;UPc01nHZ zn1cQQU7>&rL!cD+FhvzDrm0_`a|Jb<9*rRb4L&NSuV1SZ2?G(`7z{0}uIgmWWWRMQ zEIZJt+Y`eI(^X~1EP3bGDgp?sZf{IP*rTeeF`M6|x5CZ_I(PpGl1ubevKZ<+ZL8>P z;G*uen8RUxRkblm@2u~`&IK;+UXO_lTePSx=JGr9n`7soO9;LgUYMoI7^8j{dw=vC zbSYsICL!!ANI%iPE4|M<5B-C%1(Ou^v+768=(~~oqvxT^2q4}&Y zSHpa(<6?)wfWdUhvKkSrxEbbGoe^tqLbkF0wfqkOtlnV()#6w$6Q|Aeuf+|4RTPDV zRNsx=XOgtBMHVCi%nAV#tRglB%p^=A3kpG0sKQv)t+5wP$ac2af<}-5KaT?{f)W#_ z-6XcSBfz&5R=e|k>?6~yc3f^drkjeX4NIv07W>iE->%PX_vof$8pDby)<fZUxZTugVEvYK&J2jFEsSA=T` zhcGX~DyyT9ng+Tasjmpv5sqM9hc#5E9)#kNEW&hXpSba^nk#HRIIqY?H<5B*9IbAN-xtkCP zijlB^>c>Y508g;+I(IYTgkmi0Q}wH(P5%j=xZdDyK_n?A!p5pU9eoQ%GKDv|e<4y7 zQ(;rpQ%9{n*gkc=$pr!O3duZ(#_rgX4}MQYHv_kIr(%h`gCF*7OJ4I?%wp;W&9P&h+j=^6U=oyjUhxNYt7elU zWYD3@=Z+9?urVvBe`_ura~%xn@~0Nap66gzQUB3gJ+^r;y$e8gWXGt3 zS};5c4D1$TFw_*PruJCUp!GA@-9Uh=!gy2JnvP@F2K}Ci?gswTosU^dJ*0VgtZp#< z8SGx*p6;s{Un);CbgXYs3kFVsd%Le=wosEazm81~T0e&s1qOHD#DJwhjU8`^+3&fi zC~#l*EzC~pSh)6#-?0YSw}oRbXiMT?_yuXg2YZ%+`9CBoNzO zgbAS*YJzyzK!~acxOciG7(7+33FFn7)4>!g5Z^7skf~}-6tB`5q1Rx<%+ckMSA4{xZR0bsz$^q`~nWl(`vy>Wm zawvsRfjLAa%&*|ZSj+~K+(JQADWa+UnpWOL3$mN7u!JEriepr>#=tAFaJo$j3l&kT zh^LNd26&woNjF<*p&{zQ@N7ae#v8VnyG=?99nq*rrCQh6#Muuajck>LfzT>W1K&J6 z&TEKcG^s31M2jMm>QJ*PZr_l^$S$$45UpU|=3KKjE@sGVG?iGw5f2m>s4g`-<1P*% zdwhOA*x&sSgvz=B@4bA81txOs?Cy3<9@VR6f83*?TRph4_K5CBn5)zcHOJyU4mqsT zl}QieK2hADZUr;D*&m&I{mZ2Xb2~v0#;%$i;NK_r>dK{&xz7~$sKGV2;&y+`@AX$p zIk|d;6e#nhalG-Ty=t|POX$WZsq~u0IQ~b67d{ojC_)dWjCufs+ZKWy0Ck1%5a9); zl6s`(O`Psy&I_MPAs7T=YN*F+zQmb6cD+zn3XdRGUa6-h*G$D(eX@P&TE&ee0=k#^p~*ez}W8hm^P}Y#u!Wdq?X6k^5confj*2DUAQw z;k8e_@FZaz^OgEv&C}zBpF>`&>xD^#pP28|&oyt3XI;sB?b^UiMofY!=UC0B<8ME= zy)JCvrgXplV~RRi^XvHJXX`hx#=z9>X&%-zNUdGGj_Uh{--t@fwN^rCcD2s&8@?pI zfi$7gb7v@L(;UHIl=MaOhTnubm20D%Lt9+y8=vrH;tfQLI-NU9X-`{O8xVi_i|<>$ z7RArCRl;cKT5^2#m&CV_W>iM5opK@VPcTdE`J#EtZ$_QTovU0z+f*1HVzF{P zEw*+5gojDqvF}^XA(kpP(GqLN;)lTq*L2@<9%lyDDMdh~z!{p(O{gN*P4UuU(rE1E#*Fhn7o-|0#oMw`z9+ zHTFXEwl?X%xo&{6QdAp~P&^VlSkfjG5l|iknzELWpc~0C`Lqkg1ke`JDr=(?Oe0+; zb-OT^;Nd~1HPogiK)yN*_;d)tjYx@W7O5$^~xC9``WgI%U^x}<3C1S z%k@?AXhUH7T>UliKgbi*_1sO$1lqS+b3)Ho&3}9_j?UepOrrg&ZLIqCb>zR%C(xUO ztsZH#>2^!XP1Ve~2V7GZ}+7HvV@|A57;^aHOGdYiCN zo=tPETbmg3&HTaCX}OKqrMy6MsoR-&5tz`}U6wnD0Oh|lWF0=S1kAWiU6w*bkTQ?v zT^Etq`Ass&erCCg*rU8k^R0_Z9R6k=G(EH2Lj)^t0!(K{qWvh+42izCfWJ?98$?~_ zB)W}~&AR8(^+BN?_h@_TZYKJV=9qo-LJ0x53V{PbmBCv;FAW%PmJlD!XWR0hXr#%ATu=;NM$@L|-3K661r?u9d zJFy&$_zPchs}V<)1GL9=*H3KwF8Jiy$JHQsz~pJDQ=DLaZ~Ii($E`seSAL?ss;fVd z_TBcg>nm<8B0)Jq8>oAHq5!x83SV*S5GRylv`=-fPBeWNe0F`!tw$s&Cun1JpH95} z-uAihHMaqgqMV{l)lHqS`oR&v-UK#wr+Qe^A@z1Am;CViB6<_p)Sd2OL!VQ>_~hmv z>0e-P1GU|!!8S3h9(|JfL;FSaR+uTwP|l$*uJ=8e@MGc&q#xCin+Za~R@Micy!^v= znBR}m!Txsd*6J?CW456v+D9qNAWIpq@iruxK_<3A>b zA@2h{u@^i*bas6v@GE$a@ZLio5^_9T>4EimCw<0aM@HX6+X(-9xY0xFi-6OybcAPu zwiCokybrm);$+OYdBkM0v?KC7s3~fl_qOtH`UMb8xqBiX%Xk6gkoRO*bfgmU~aR zmwvO}FDYxndDP!5eV$va45b&zd{{e>h~z@$|V34s~I;{g3h{Y?;& znKS0|QP@jRdvNL9^{OQH&#p01$^I9JO66httNQw+G+@_o{ltCQy#yIcH`R9}UHj?x zUFWf)FIS`F(TD1Lld69veusQUy~?dsCeXhDLr2d~&3FE1)a%@OWfJ{Y{Y29E&x!94 zg6$hZqemKjdc&+_*e}~>j4zfq2(9uo-L|1WAN`Bc(7!=K5Ae)a#*54XSTzVC5?zPw>a^4VW5NT_^WqZ_f`5|?i1w=`qqYYK;U(r@c$;Y z4ea!|P5-;$Lb5AB@~XcH2MNzS?g8S^&19af05E#FW`tfTq2n7A$;`>NiNaB?1<|ck zfP=g~Ic?JRr|TGZ2+^Y~rAIV8PA-@X_*po{{fKy>te_umc$M4)%qgzlxt|byN)0`( z;ZyS4$+n+`-?^U=ua))mCy&bih3$`a&!VZMi}zwp_err1Sa0nN#0NBcfu!+K6*_dmAcJVt$*aOp}(Mh#$%?^!^6xl(WBGe&eRve|3+0e4`IGt)n?9}4I(7E6Mbidm zW=Z=~nRR zLz~2Qs-=iEjR%3jr_3sDy4_6TT+bzpjg9fCqtm`xjZL?kMV#-soUy$zGZkjF#yW0> z-E5+Rrz<0{F)!7}>ZtYD3_Dw*qo*4q6y%8Ftjet8Aa+n9+|!*wX{<`+S$(x0gV@;- zodB~ryzxP*$ZE~>I2*e;L}yPQ2Di}&Tti2vkJ;GGB`)^dz&P6YAyscxHa%{p-8|w_ z&&`YzjXzRHt-ekln`t-Sxaq=HMtY-7n!Pn@M#QY4`A#5xnjvU}r+Ha(XAI05vUggk z+QrCeT$Q%ZS~??Q_K<_qDpe38zj19^jJ0LP!0e#~PX7Z|q+5+U)7XwK5WH=NqtVS1 z%P4NdrumnVA+5IAE4QLN2@GW;BW+Hg0I~{dxA8t2WTL7Yqtg1UFI`Co?xnnQ%czW+ z#`v^R>#vY8sGSqh)04?)Zp=)BOKSYq7h8P6DQe4q9RWV7Pubu2Y*_B_cLZ~T__ar(QNhIt)-82|E2Wmq-M zNS`xf#Vq{%j%CJeo~IeJn;g^KXN1o(%wQ-N_PhnWTG{DK zAZupv9no%iA*uvMU{fA2ZymKAbF@Pev4F?DIR9??K8Vyd0yczn!mDHe&|Q&Et?IWm zz&cPyf~ShX1jO#MkQGooyaR0{d6qLGo1TL~N;uR2?{GI#JgXQnP4CkmL2d&BSO>;P z^#tW<)3@}Gkati6qQk>T_XJ;T(~MJdY*yIeojN>?OwSfZR+Hl?cbjlKgHwl>G2HV3 z<6_gwQ~%i92A;7FZzJ2YgK-&f!Et>?yVixWHF*bAPZ&3w`~WEYl8cXX_MgN^&u5H# zO~I!M0Xe+FIopTG_3UOSn;55bHkanCT@-XT>lqoV2Xskb)mbM7vRTIX~`^@>s7 zlzhr+CUowq#Zl{xKF}Ba_t(!nG1q1Z+Bff*YLM}~ zNpgxbvu19_67)tVmhDHzi>7JVn3)^xo-OIvXgu!u1$ft5PMrnGy!fRZn~Vvb-xw)_ zU=>_GGkl(5X~$;c3C|yl;imVe9?iTx5C2EU7Gsjb-H7`vyojFVEaN2DaWq#{2*|xk>s+r9BS{HypzcPO(aKz>DRZymr z*86nitQYfJm&>;2ol(tWF4Ov*&YHEzekX{G&&yIRVE#`Va=LgH#lF===AS176{e?_ zb^76~EA~5qi7xM~Y7uk2Hum)3tQYpJD`bD?omc(A+^S7KJ$v>dhn*{ByYeooRxo#g zObNHy6o=N8vfX)?RI8c6+FO9WzQ(-9H9LSP^4vQQ55xoJ>~@E{u2F$bxj^EeY3om? z&4w;mwJIve>9We38KHfAx?pzTg1Z0(OiXrK%RHogdAe@)DPYwL+GD)x>C5D4hfep+ zZeAc>9kkbY-E#{wN&D;c_vL|jYG$_9nZLpI zgrkicIwbFoYB%#=Es{^Nt#Qn7Lx<+wRsF-f3haIfwm%(hkZ5dPk!m0F4u}`IY`YQG zx_TB^0s|}hQZ13Mwmk|PL)zhqz)8d`(;npOZOdSBC_4hsE+aiO+Bp8OtpzrK8X`CW zvm-#uXYlQzD0l>Vi0D+R3Zy**ta*26INX5lAQ{U%4>CKocliH6Z^QBK9b}{0Gm6=x zE$1JCzJsr2NGN%gsw2!dS}i{dx(KloBLgy}>L~Mrwu@g3r65`{GHPCp>NxX@wx9nH z+U~W+Bb!F7^8}T)_6y$xeTEo26+w4uP$e^`v{U?#lU7b}&me}e(KDS1X|~H)Vz=E% z>>0!~YCSWUWpU0KxUg8KF;6=dF{~()>Cn6?W1pS$bf{Mc%c%3rW-e_0GvkomJ12uz zN4W96=LP2S<{cSl?N$JDW5<5uL(hK!0|E<1qTve--W_aXyJsHLt9gIMBfHxRcM@+# zk>)oUx;d8?4cw17?9`{yFyop(WxSo!zUc0{s3T6V zRrSo|=BW&;xzNR{)<;D=`0o0s7~+L#t<1B{i_dJHdulO!Lr|>o zy=NQnWunhe=Qb}EZwNYS9PoV1yw<$wOwwEmWV$cpt}QuQ#)ft9moZq1U6jp*ZfpHzL!+UCSF<8yy5vDt)<&-DoLM+;x=!CoxFlJ8aXwE;gVcvjmz6`!KyXoSz z5-Zk>7Te5)^EWQb*oscevo3+K>{^^NH_Sh=%w`)pJ#R+IY?fmSGLtmFW?9BI^r<|X zk~u70)A~%_{IAQ#w%MH~&hoNnt!UYmDVo1#d7PgepJ?j^W1(7znd4UIcV%B7F8A8bI@2;g%he%tWyP*+5R~ZkH|u=M zvMhgxODosz&IUnvULb$2#WRcT@N8wp?rh+w_1eq2(Xus*@36piEy%(mx_JRaLQ8N~ zp+l%^ML@QQi1H$^l;AqlIb3pG8<;I7x_g0amzL-(69|o{2+Rg1TrWDSp(Qm7vS7ig zwLwEOVP0U*thFWXz~TklSBXKagwfk8g7v87YS!ijr&huL3CcJA>BRw?XtFHof@T0P z54vJp>vfpb*HW96v|##b_@1Dv#`RvYz{uN?b#1}+)#5!t0Q2h=$NJdvGOKREsnzhk zLD!9&yb@WXEkjv-3z}Dp_XgcCmcx%O`PuR#i?5OFe7?8ihVd`2RF;))hG354g2b)C zvYUC^N=~t60W+|hBLxughNOl$w=!6BbxQ@?9FKY~*cWumxB~>r!*pl?)v@`1;(bB4 zjXS;0v6kpI36dPAyTL<(?ihD@o*c7W0e0!d9?VwSruOi<@|3K)um?iz!< z@>xE*C_$fNGvHhV-81g-0%%v=Nx`J!bR--bRAdbHy2Wzv76=x?HX<{y=;FMPl0sIH zE?=+#b^>XGLre0oCB-bPP9h+|YLFQ?v@{Q2A_ucSjR2A}j2y$+$(+uMR3M0>RiHb! z9EHbs$c!Yfa#kcr=8(gL1I>7uJdaXR$%@wXgQ$)xsGS6vB9B^9!;0692nJyb4V znMW^aV5RD;g%3;Sqt_C%RYY)jvd-w{3ti!%Xd6>RiBotw@a^tma**1{@iMUF zx-elK{FFPK5>#P~^6CY4=_p|zyxCn$392+6_Ikyt)14Gf!lz^4VL?^KXs>>-h?p&0 zg4m7`gH#b?tk(eRk?yK+GvX8mP7Tr+k9nC{vDOkH2~mT|prUK?;z~ZUwuDp(d5Eu= zF>1$5tN4;HAc!Q)n2lKBfv0uU8b2t%vOeg#gvAJoM=MQMmv^G%JL|*wH$olalE+$l zc0Do4>nH2{s!zhVh<1;=^r!}>l#(gdlx|9BK0 z7}LFM!soOu&fe^F$`j5E(i%?#_#3PholSLW_7pRNnvEG=bHkUkZpuz_n(hT>1+^G6 zy&S?_TZ6K%Ic*2ePLR$h@PdcCw}xfcIh_K(3TicGdpU>uv_@t3IW>EU!-MV{&v`8k z-`sjKd(vsTH++B41LFlR7qFO_oxNn?c5g8VRWasxtqT9A^=kJ2F?8nfO#g8luapkf zrDPjQvMy8XlvI+Hm=2|EIy9Tj4p-?=NlM9)Bg+gWnZ%ThZIU9)IXTA;w{$SSO0Bzo zpZ_}^YWsfQpU?aCdOn?@F%G6w&*r{6_8TaN<;4ldptTNMs%J|d*WQkDO#VFK64U@? zO7pC|l~Fp|iz06X{rJR?4Nzg$@K?J?^b>BVv9h7MK>_iC68tp@GZSTvqw;|k=FHKwzBctW?;*N~G z(%qC~5K?!C@zDfEac4$;sRt!P?vTiUY0z>;aaTq`={|~j@s7mnFcSqEcEx6y6aYi8W-~sx!)fVxb#US$*M^*jTo$ zCPPyC?}$b&OFRRg#_HL|+M_c2P|B#hF)#j@H=6 zQ06u)PO>rg#!EsHhL6_T-=HjNSOpUJX?SdC!pPBj`*_NVhRsO_wlw1fp{!A}hSDU8 zWy7|lXmcY+L>Oz#tO;cF5e;5Rx#k{@f-u$_vzAgW#jfFaQjK{$@Z+$?%@m-PyJtBo zso%U7r1(AG_O;pPP@EesCjBut*kXFx^Ic!N{R2?kO-Qn^aFxcKwtb(`S(*<%YMDuY z^24_1PaA(Y+HGG*@ospObl5_?CE|?n#8IWakV0;dC7rRD-l9KaJbARwzLY{~Xawb7 zlv6~6amYe-X&EJ`L77x)!E_prnADkROJ$U>hVi5hP!Fb^ot!coD1A=3(4bHHWHI41 zes=Odv!T*zO4QW`!`n+hdw_Os@}t>EX&vQOgXwL1OXk+`bCaLU#!4H3+Xr#Gl>T6= z&-vERM}HN!P%;`EZZj-3Tjl4Ar!(G`zNXx7*a_@EaA(4W;x8HR0m}VR!@=8ymSkr+ zXdq-vl=f1dHk`WMWXX3XL>B8abfxFFNgG0Lzp?CcmP96eJNlpfAmwGltgaa=jkX~! zvc8*rDjlK78zp{2aH_G#0-(UN`ls^r>Z~s|ou*39<=M2>hhgku08jX`JR=I*| zgy&4vEC<5?NTYeO^QxE~rqQ0WRI?ox1T1f~O+L1&b_X}w(?DhDurR=)aclCWRR%7~ zjP)-=B;vaiM?t&hqpkqJixY*lw7eY(#0^w){ti`f(D=)gOXLNDqU#H z4CeYSbg&3;YCMk+7p801EA_nyFR%9YAUh~AT>&oL#-xuj$fZNf|`jo2b^k@C#QhU1}%2d z7zz`i1A-cr$)#3I*YVg%2-IAJ4+v`{l~)jo+MH0tEu=fYe4r%7N8IyJ&HfOQ8sn zXFz5nHpRYSc$YG+)kL+{VShkw3H+5d{S(8%t9Bty_RliUo(_M4W(u#uq8k z)<(M#Ni1`yqbMw3ys<4M*V<#ZAcry0n3|gQ;)5w-NQ}sv{n%u3|!2cR{Ne=GrdQjV!Xz8k3&j;b<>{I^ff48 zZZ-x|Qvj9O*mN|td`-B!KGhiE>j~6Xs3v-9&l<5i*Kq;?^%7+P7gj{-Cs2$TPn%o| z-7mTyu(K&Pb&1W!y)>X^g&qVl<-JYZRC^od-UxBSdX=}sBT$`rm`b$C+v}6wx~}N6^3N@{j;yoiDJ>1w=K?NSlK&@x%f{o3FnEaHlmb zPP0LHdyZcXu!mAa@_?i!%QP26yeERk0!A)?AmBFHrTK%(j)2EPK?6l?0Xa?E(xMSY zMB1rcXcgU|6F>?))3On+z-#1*Q3W|D1B6X}X;p|A;PLSU4ju<}KzS1@tshYfT0WjQ z6~|#9AjRfF+7HApqG6UTo);n-4ybFol?Gkw^dIKr1RfgZfZf>CbSDkDmg1$%YIRhF zJG=|%XnL4N1PTqG?A9%+GY*phs;06uHc&<=vs;~1XB|EU3^&!KC9bvJ=abXARdwD0 zhzOdxL1dS*Pnl!9D=AX+E#PC*NLtfc{yxIJ;%&T3qF({un?9$#U#rN-$RDqKfCAb(Ko#shd=>gMKC zcbe9T^H6!k8fYv4nYQaGfWg`7u1a%QM?KKYBJ5euKS%(rCtkW}BlT#r=nmDp z^PnUj#N-~Q*-?)-zqk{<-pCsvV0l7$A_pq1x$REw`r3{=0^?iBnIa68)vUf#0eEK+JUsFY_3kP*|p#ZqJ-rKtq_G#$D1Fx4_|RS z5?f+>jQ31*hN`vgOE2FTenekleBAfB!+Gj-^Skun{~jNqfr2&kh3F#nXR|*26DTE* zgG~suT6BdvtHqGJ1oXscPbW`8Ux}_!7qpmi?QNMy$DdC6L&1TVy0itsJz!gOlvX-< z3Mv;RP+=`tZm8|V(ectr3bav_OkLeV;HH3T8BH`90Bv?SxM6+EA+FGt;;R(3QdKPu z8C3h00ItF|&(}xXN>eEuvOxLlG}mIM%2zHf4pilu-J?crZ@B{MXeK0VSpwa+!y%8l zyCs=x16+BMvIK^2mjiHTwA|;qA=60M@`NDY9)}|8k(Q@iDzb}Yx{<|%_KHfV$6H=- zqmf2rgoMR{szlosQCnKM*C9^iSP(zwsYT^fR*RZjfs7;@N^Lnjt*C-}y5$4cab+nv zLTViBJK#`7jcobO{fewq4NE73p+ll->eUv*yG!gg`q5;QA0Ns}rr)@1 zG878Zlho7}#N7jSMSir3$uQ_R_?a_Xuy;d2Y;U|G;ZDz6hjwai%dWeLAjpPTEjZ14 zFY2N`YB_kf(2jge{;c>6Z$i{decE#BZj&AV7@@K_f~ON{s4~#3dvB*XCa)|$%ll6> zNUd(UdUyUN_;JGX;&Z%DqETvNOX}VAAi5z3u?ya`=qJ0QrknN5U_MZ`A)< zhVIsHN;`plnQ+c5s58FMz9oWxcqT=4~4A==#5 z#Tho6y-!N26QX?$P;+UET32PbZAPs_)Ud8X=K!XQX{%j^|K^sHf*Mu~bgppIj3lmhKqk7v|uj`v5@vSOhSF^q<7pXAz{=9ER+tqq218VPdO5SA@=X>Jj8rt4gZic-* z^VB%FgMcm*ucIAo6=WO$#X^Bu%`K=?@kZLwR#67SUUN!bZ)~`C1!@!RL~C`%b$b&E z798As!J&&5*xH_v4-PvLa8U6DhYVV9>k#N7rctn9F!u#RHSKKc$BZ}jT@*<}!foG` zsO_|<))~Ax4kiKE#)M>FD-;-!S{L(d!0;kzOh{1)ZWCxpt(H6&hxhUAuL8yFm~J!9@!g6# zPn&Li$Lm3f10!A=-}BvuxWI8?nGUu z87cN8ZALTc&`v0-K}pnviB%?maxVB+4OFye=3~4+JXErT zP_kG;<0u9)YcTOZw#h1iE?xBu)JP{YuQxtp#`fAi;axYXqD3mcgI?)0Q{QX+)b}K+ zh8Cl+JhvFTkwxp9dgh4bJDw5$qf zxOkk_rpV#D;Nm%me%3SS8Sw|2Qc=S9$F*<-{j5spS@9HYK=FbfjWY^H46vR<&x=3P z#uaV+T%1R+V1QKxjRck0Da8Q41{WWU7-YSGUK0PL=@nD_VO&eFV373^8YTWq`>XiN zpNTgLK@72~q0!=5frf3Lw^-m^L%2hpHL9y9!$3%zd6qLiCd72u^OfovYC+)gHruRY z_}UQeuxG6*7PTkX>4;~Y>LzL_z(#pyW#gGgVn%H1dAC3T%C-$FEW?L~ z>PL*_z6oH!M77aD6IUD>F>2i4n*^MvPHpG1zT&4t^`o|r43fpGfCM!*Yl*@t%xA2% zQI&#P6X*`Cs7Oajn0!Y;6E97?HgG>E@47qk!w7GRn|bNtje$qoL|F_+O_&_Cd3kq1 z?B!(JtE@OjcsOCaxRu8fqXOw|omqvBX7GcdMoVYby4kJEy8tPW_Nm=KuM zW|{4>CH^$xJ*yL%4+RC!oPNNY@U8~0TEH5~4sO?pDoD=*kVX9cms}P3=z60ImLMQTB`BZT~ zuTp$A@MGIZc9RqTEa5-Tm7Z0o$iS#?Z6CAWICY(s{Feag&8VorsgS?fGq)O@LwsZn zL2JZU0}Wp{+naB7J;(j%IjnkxiVcLkHqUY18gtI{ljn%44s|PV`D@#pV_R#_aX)#E zs^qAoK#SK~b1rQ)IB)vdb4=BUN(B{Z&z$V7uIITxXsc>QaRZUB{c@_d#+)~u_8j-E zOyC8g0eMWdweo!IwC!77n>agg>+1_SKeqllZ}`Rb9j{&NcFOhjO~58YU5NN%{NA?{ zl@Drn895l|@C*7c#vgpUQH6otuOHOHDEu<-R$ z(IZeHl!N{^Z$jJ)w(_U$HErWxBK#`W^K@cOpzL+nz4zNRm*l^Szw!PPZ`$(m^%c+% zH@O_~E$}<^lXxUh{yOQN)pn1|g5Rtk&}s2_VB71QdoJ7KFC+f2enP*34!IJ9!u_|m zTo(K>c4^V0rULt4KfiZryFrxcU(esF@2Jm#Z(g_F%iit^TIQaAR6kMr!0kTjdllOw zqYVGq{^k7^{|Nl@`olfd_R6T(f42X4f5m?Se}f+SkL|yr3}+x`WX>p?NuS-m;66jV z`AWnL$V}2K^c=cTyV-qRRnV338M>LU*=6(SOWP6m59}zqLYt|Z1v4z;Zx73MxX;+3 zxkCGN&44r)y@sw(q~6zr#CPGAnTo$q2oIzN!7>{rVkg z(X<<<3}KKm7#-Wrxj($4C0by>o(o%4W=Y@He);}P7o)3)+3b0+C1tDWg!ZKSRxTb_ z1+&@nVJ2k=x>tMk>#Z&^S54;-7pRw^H-LhC@%>{il_S^YAdNCj%aC-x_GkCcyZpLp zXoxhNLKBp6_^Gu!*_m%D_==nWwYN#;PS9Nzx!evgYdCSopR z5y=wmOpk2;e*de>bc}v3WHD(K+Jzp|J}-CqPSmxCd5|Tf)o3?*e7jjLW@q>{{XEE0 z(i*foJ*|CR?%|!{YZ3DyCL|y^rt{nJxo37xU(?TrEF-N$AE4*8@5xOEGeN`x$a2yK z^kG1cJDOX*GyJ-K0mPI9Kpk{(J3Y5&r}%n=5o86)4t(1%xdLxJ#X*1fN zUfX^Xp!-m<5ypx0<~fuF(3{)2x%RHi*l}YW6oy9U&g*D5zP87eA4`A;VWfN;COxXR z{VAybcg0E|iEt7Q9ZVl=ug-mMvfu_{A=@10SZ1>0O?zu@wyWz6?n0u4dJ8&&u4~uk zR=LL9FkM8nRBuIJpnnD93jL}8P5ROf#DfC>GC*6RTMZ+C!x5|l`yh1J z#Le*~I&0XTvSj+|4#ERx&FVOxrHVCbcOZsZ-*M=Ha2F*`xm01J_CROQ?K=V^}%{K@-6u? zAt1k(70~y0Jb2*l#=k{aF5HlL81yWTc8DG@+%&i3%Y_>=kCZ(DL8(^{ew_s=?3_KY6UG4){Bt#&kd1#y%5 zIQj+sQU`7Qceh{hhGxjknJ3F?=+`4m@| zAS6%{l`sWH%|!RnOFIJc6ofngUC>R&v&%GeSw~pjdx9oW4j1AwgUbf#)g4#!s^%1Efm@|<_aB$-+ex2R8}KhS$Rit~=`u1(@v z5S`Q!=qY-C$Md{PyA5ueS`xRa&!Iol-*l`&XY6*m9czhn&ZKTWGyg+}5-ekwx5q7Y z&ajJR-|3$_#`8LM7u}|<)NO-ZF8fXY*`d$-w0q+A_)6V&*p;#wj9HzA50?P=18tRV z2kdIuY{r64(}(tZn91X-bS|)KW%C$II}s1-LqwUbR>GZ`*UO9;W&jVt*rQ37TM1n= zZ>?CwSlPMb;q^TxDcIGCyGU_p6UN%ktMk4O?o8pXCc3F_p-macPQQm$dty>dt%(G6 z0vg7^bg~}y@2O4US`&AxlhBq7=gx}{|LieHHC;p8qfSPzX1H}GJhX71phvGkx@V@A z*)TjiGaov-N2VIuAoph8DO=At)cN?KuX|-`tPRp5lMC9}ex1)Ao_GJ1YKTC3W@ePx zGXgrBAO6rgq(vYgL{cWuJuo}_9+ta@r|A(8FH#oTkrCec4sa{PX%TB7`$#!xXGUb_ z_lIBIr_=OnA^S=9(JqXb&UyLE_oD7Ztb-gNJwUrL;ycaqF?+qgj;+%jfITeR!$|E! zpy z>0V~~_y*l!SaI1=MwFW;vkmYrl|bFSq> zJgm7swu+;$pZ6$?#?DmWt{`*ewnE=baakav9S}9#J@{M#Qb@`yFJm(LIz{;m4-Hq2 z6oUS9*{TJDoz?l*JxuOmL0J)~-%04iRv%CZQ?ROdi`4PbB}HnBnP zq3i-f-#L{(?9p;pu!(&F_Ok3U<8SBR{F$Cc8Hmm7ldu{9AvNq;D6sPM$PjF1`@?F> zVi^m&ECnu}@fiqv_9<9BKpLBN*$MnTnI}{1i4?UQoy4%{+A6r@X}~jeAO@%#(WwCJ z;VH=Wbmeg!h*Whmn#(|T`3b5#V|b=0B2C?j&SYS^Sb~1fS{@fg3{j44n07V5IMQBsdK8@(~ya zlcYooL7!hHI76Jy)MFqlQXd-Z3%eQx=|mJi0t;c2)aY^sv#SsAM8f%cECg7~(G`sF zu6KeSaQchDL4rxZ7S4$5`Y!kiOy7DOB!o1CUcSOiG`j%eWeptM3Sihq*D>ONQv~Tn z$x`AKq3Tg|BO|42O#u-|seK$3Vd^*NRtB#NUBLDl1u|$wxcV)+opJo?&Vo2Ecs5~+ z5J;HIx)_hT4gxO;Ia|I(cqVhAte5e$>r_FL7eAZelsNk+un;q(T_FW;yt=X_PKjqT z5swELFS=IU{NrViW4e`iPW=%LM7>=J1s3~UbGTcH=hdIl;|xVtRzc1Db2*02$P1ZY zfEoVl*+&J3_la{NoFS1UJzB@mbjb?N?3)HYSja`vcl0O5XjfxF`o4|E;*Q#j>L2JY zjQ3sL1;Txld&+H!OX^?f?~G4fV+D$RdG~y_D=w@5pno%dbbTq%?Hj$P+^ztMQ1pzT znccG=LH1kUA75T@C39xELD0PJrH|GF&8B>ZFgnwqd~VRB{y!*wY zXdsG15ZDPYXt_fWty{J{`+#d6mq1JezXcP->Q+ChI1rg4vOsl{^;w0={)^zNHS>^28hAB=K)p>>S4qlND65+#w{qm+pG|CF#Mr@ zkFIDbaAyTYEs0xGNIaPL(8pbos%td86eQS2i79FhwyIZ zrt%X()!kPM=X=8i1W#c`rhPdjsIfb>aQNgwpzTQnj2a9$7j)k*bn{LVV2O#DBn*Zb z#C9nu^ao}e0g=sz;mSEd1KlqQqXESR;l<8^0qJ_scz0W2F8C^@coAQw1G#t5WVgDo z!aEX(sF69DK%f%z1#oUu-jxNh`;hlCfypH3p749&SMTWp{XWQj(hdwTt@g}&y!;UA zQN(^oE@>y`dXQ1itVsJq%tzzfPlhcdY8!`8WR4%(}LFZ9DH1Oh+HTKeyB{3^1DHsdrkq%0>6;p zEfl~`EawN|dO{w*In-4s@lGrt?Zey)+TL>ocn3^?BP8(==>R4#Xm?NYW1GX?k0pl^ z0lXhm5VRPX^VsEZ{A0vn_G1`eSOXg^eCj11ky@D@gQV@@d+>1ABBiW0T{sE z2HwEKKH}mCUx=7Q!vF|&55DM(&vdcg7g9!|V*ri1XAj^&qW~reQceoO^aK_490g>c zaG{&Yo{0dye*XjH?_lz#|Pf_|<4k(Ls{F?J;k zG*yEJdR`PoA29+9TlRC<`SQ;}<2`Lfxko&n2#&L>V3FnepsAjLq8b1sim=@MLVXeQ zGw5s2WKsW-+9%u-#Fy&Jn7=`PdVUxEIbr}>5X5Tr70fJvEHW;(IO_V8dy-hAzKStq zLX_sk&PQXOn)(x8sjp!cFqbQBi;n@|CfA=>tB%DiWLhY<7GFAQP-=Qg_wClr@+HhQ z%Du(BqfVuXIyji^57X@~}kS0^y%zEa$XhHD--y#u> zs>3MKF}6%!<>RGvUyVpv9@j#;ivhhRWp(j&UlTEwme@)H+&X5UvK_#cyuoE*qJqT7 z;FwXt%Aw+V-!w5cFcDn3V4Rp|l^=`W_;!gUfr+n4_b}U;QOX&@IRJl#r6;zNaxt#V z8_LB1$mCrnp(l2b@-SeoRIU=bk*q6L0o)fXzkDwM+1UyGNiAgp2D=MZZ401U%B{jn zBm?mDC4#3O<{&d)=_$-6xt4Q-h=4nV@nL=nA_*%!R=_S^m7=LGkLbYTyvWd@b0 zQ^HEh{g}^`5dge2Q9jPp^}?Q(pJcvL#tN5^H%e##X9N?K2QZtJT%kRgDTzJZs#1%= z(XvDNP)H=_NqpD}wYnU`Vycv7LN<96kar+X*QMpb%ppLEiX*3`+H(@MBtX1jzE!ph z^U2;)2`90iREasu{7*R~gcQX|5y9*MSQS8;>y=Z&VRDO95X>Hgy)3`X{Hts|^qXuT zGYugEObX^IfSwzdSopchxFN)0^(#y)6Vhv5;_MeAGYut*yXmpq>>81$O^&+<8fFJ zKZEJeODpN{E2^M{>&9UK^1$5E8&UGfZ=!vs`+FahxF6#`Bb*U_$m}UE0ug6X3FDXsbohl6nZ4ytm?r@S zEAAK^l<9?&nW}Ozliu4|Qh1D9DUT59GC@V18PYpa(sYbpNjNK<%Iq(%WS;B&T=M>y zrc!=Z_+RE=`Ag=N-dUh<4S!BJC;XT>Twcq(*}D`JpUKbV0Hu{ViaERQcJHbuZpYI= z;h5b5eFNB9pElS&Id;7EIrltqT0M?wV`le~TF)K-_1y3R@=NBs@`;0ay?dUdA4h@u zECiHeF+Bk8j&*%{oLMz~LH89lS>DGK_0pbn94`Xb-a0*Os$9!_)*JEU)A5Na!Hvdm z>i;l9%$nY7pp|L;!snvmyZRGmjM>zC=Lzxz<%RO10yG;j@0cCE51$ZEkhQSS@~O+oc+h2H&w|g9EMS@T**zsjysGAc4w1$XyO3qk zxAp0zlLj@WpvGOP=ebN=6#fWn>3qUpw+2{AP>SRofDQL53jIl5lrjPZs z|72|qH%1qiuux*b+S+&F>H5c?YV%=MeY0R^9rq>?M5`sY2?>3$QpZz~b%t@s zrF@WaX5H!AQ0jZCvMx3bX~IWHh^(x>Ev4sA{i-v(g!)eDdF*u6=cBnU{&^=EB$(Ex?Ud-F(Yrr z`m<{LZk8^mpyUw=5GdIJ3pT-h8KoFXxLltA0YOMCgVojd2*B6G@`yyD)C3Dw$m%{x zX((j^ga>tSI7kArM*8HXDU^*3v?QH5d<(#{edtq`mQt7?J*TsPZNid7mH>@`4idq`auKn95` zp%vd%a)Y&4wOZsJz;7g^2v_q#j)`Taau6{BG>vk=eBY%7FfZQZc725DUu=9^>Qk?`;xU?p0S|Wl>#PV4{Y5Eg9WRDR+ruvRnW6TyxQJAAAR3_~hf zr6QJ(#PK?&_h8PnV-lorj zY$2ba|afVyosn z_6zI1s#`1s*Y(OA;g2hkl5eb!su6KhApbSto)FxMOMbDwt3He02Wno+?+Lf_qa^=W zGt{%n=F{Qrg!{rB{Ah^*d!Bk}*?Ky;U4CEa!jF;6WiM8*E^`N0sf1kNPX2X?5!+1d zP{yEZ+6~WMbtT`xE@H1#?CTJ`?2e7bjspp8 z>$bEGY+fP&`hmS6P90MAhThd7$Hj`llu9w(*;3<;TV6&K1c0OZA zC-))IU6YDMu!-udGG_)ncxFCwFaM5YJ^PUQahWfpvNJXx3GO)nf6q_7|HEmVRy4{ zt5=n~1*LUk!3m3;kM&^RRc|h*26c5K&Ykjx10^LpN4>2)8k|ZHz@G;%lpF+GQm^t{ zz$O$tW*>$Zfl;MIeH_f`@jZwlwhvqgV1*Jjr#$;dO%Jz-ctlfz1+%UCV)>sS1Epy( z5kTCrr`YxC1TaFnD!Ii(F#cg_VBE=Gk+-!OOSqinIx1wrfx3hF`as2!Gu6IU2=v!q3$a$XNLFcOCaD?jXlr)Q9WMX z0baATC%WTs01#mRRO`z>F(*I|TXzCpExE#;r7@H^zFOVq^Hc%4h}diF`I==CB#Y9g ze5&x*)M9V4muS|2Cvje%PpRURrXDn=pc=G<%^K}9t$RS>H%M-?S7~-i;#hDMK_m>| zgXao+o#vpVkVRI>MM5gSMRJ$DS#wI##Nw+6=daPo3T)a;tcC-=M=dIWm>mdzEy-bT z(_EI!WE-gwWo$YeeDv4^O_Icl?V%Qwu^I3#iGb~;$&t9QwMQp03Rg%qi)o>+5wnmMWu-O`|WcbTDjiD6D zfnP>du){U)Bt2}gCPE4cCJ$h%*pZq$q)z|$&2sB>OT#iS-;2HZ2d;-k2C7R>X8cuvaqLLi}*GbfDiH0K`=Ct$+ zD%oe@|49beFEp2>GlPu=5YO4?;GZNTY`G>$Y8C7;Ab8F`51$4g$~H}o)Fn8608z!h z0RJlaz*cHXK((!9KmdL$_&3QEdot#^G(GF*fZ+?|MgDimC-#`8S;`A`8jO8`yu|-0 z`O2QusHGLbk%NXWk(c?uB|q3-G#{j@;L5?+m&hpoU&$Z#Z_Q8XkKkW}hSkU`{25Zq z9Z?o7hO#9g8;5Asx-0NmfOok-Ybvu3VGfN~>!RVarSmvTwFudPkfI@4jqWPkP-@J9 zX|b}syH7aRHyiHz- z+s=v7-rqhW%xFySvpZR{3bzxmJB=$W!d%C=jl>kqYN_4a1ntM|n6U6MeIq2592vKV zlL|gO2f~WRXid6QI6~^l$<$&iLc=D;#+!6$@O1$9`9MpkND15chSsdR1K%J$#Cfds zsd#Tsd82Grq-!?fj&e%10Tqg{JOBh$a5YGrAE!clx8 z$mipv!JHxOtBN@AsV1}uv-pnEaLzkG87&Mazm>NMv-wWavz(9Gk&32p{#(LpVGiF} z8p-*t{ao=rT=Q1`T6mAYT^hxi(Ld|i{L}Dvgm&S5zKb-5GY^1C*PkZ8leY_V`L5C% zoW=dCpShprzaw-AAMo7(WXr7I;Thw!=AFDln8)8Oz0FzGzw=of_%abXg%A1e(lpNF zp8bGjO770@Waq;@q+E_&|M6!vr{muvy4V6Z5w~>_2INrsPuITZb`c9SUbq~NbN|I> ze@<)SW_KeW@%Mu-$0XRIfDl!{`FFRqNk=sWuQ;*&3oET6JSGKw>{2*ID(58iTUNS6#7`nrY!RFaJXTylA@h%DnG~qlVtAl* z`;6@Vt(BJ|40NVyBG_W#I)UlRvobrvRmW8m%QZo`cvsW=M=Q%C!gYEzL_!8*AxGR# zuk48s>moD|DVc-o=T!EetNa=F2N zr2yEgqCyjnd&lYMe^^O8n>XdtuXv_8gPY{2`pdv0Y;;Q5uc*|V#eL*N4foeomRIe4 zhaFJVE;}#%%o*=*tIP#}Siu0h3LYudbEf(SDr?Th|A!c4zkpwo{^aQUrz#yky!wwj zNPMZejQa}^vcD_;oHh7pIz+4{TgA)_o;}dIdHFfiN5ba!)$ps**})42OrP7IV}2YT z($&DPN#_MG1&_`H=ZZekhIOytu^{9L8^AsfJvZ@jd{|ctzbRcDyn2A}JOyBAX(PHi z_$}$O;0*&lpftq%G(MuMhbKtQf*l5E&pXbIMjsqi$Tf*L^I#kIu;=g3X+FtEg$?}M z(v`t5$rV7ZWlF8b5>NIe<5mZ|4VZ3%o_G2jJBDoHr%G*tJqI$MJD!jHZ1@J*%)cXD zAAD%w@pIqv;fq7xKw8LL06QlS$N=ni`m_EGq?Me3vk#^WG(Jy1kD87chbYLII7~2e zpznG4`S5A|IHZl7g>wuJAK)~$pD&uGz16kBb8v*9^8;U=>&}k?KCa@m<{oZGaP+|J zD#!)vFFx-S?V4QNuHd+VWmU)vlrPG6iVjU4j^UX+@M7hz3u#}l?-M)u7LvWe+yT2P z{|hZ&1n=2h@B*n0Mg`9pob_VH;{8R<5Baq4E&sLjUhs~= zt1sqXg8w9Z5x(PhNb`dC45q$Ve~J844w%FIE@?sV{=o+?+`;?W)cNWMau2R3_y}mI zQ!jOa7kJ_Xxfk~&_{88(PV^38Dy>qF9-;A?{mUP3QB z{f_;P{KOxT)(0nm%QVN!k-rUpAV2fRq)owhfC$g`a^>&XAINF`xKt6G1=z>uFaP>& z_!Ies|4!Nw{BUsZOWtLtKe0cNU-=&ZCcAi$^s?e|D2eBi#!F08_+R~R z$WQVY-233J!ACC-gLGiTAILAV9;XY|49WmvdHS#Z59BxbJML5P=wRc^^eEK7h`*3O zI2xQ2-+WAV%j1@Dz zW@%^R7lbSyvaLRLrFO>MnO+83L;S)Ji=nO6I>pZ!b7$Gj&YB12s5L`-t9e(PX5N@( zHz#X>YfGVQuWYV)gBdx=%Fh*lBV^I=s#k8;$m6S)a8{eU0R*?{u-z;FYc2B%mT;`icgvDO zEQhzfioRwvfA_78mb^V+tj>S7=T-VO)cmtc7uxvk#ixTg`{=9kYvJ?1Ew!tHdje{= z0~owJt`*G>G?_w}d&#mwFbhtDNqlsEuSwfl?LPed5SQU=uOQd00oQv9%{w5=3)wTA z`fB}k@`8qCZ6TiC_=1pq!}njgT~AwpTb{JR?=Ze7XuxX_0xR9AG(+NkTZo1FveX#~ZC(!2vj6*|U&{;i*@{ z*ISGVR&X|%18!W%<>9}tX2u#BuQlUrHusmk3W*(FSZfvQVO#)?2<8--JR~Y<*s|6o zHr{wGl;dCy3OFF=YgbDp*BIZ0dZDy5d|OEN@YdQ(u?CP8FfX*0j_(Y~2T9=USXanh zm={JHgjWItxnFHnYz$-t+zYE^;ngAK!>ro=*jmV4xED^#!4HH~4PUJN6Fa(crnwzH zD?~ONQa6077J9>J;SF;;$E?Mx-h{LapImK!gSqgn`IMviX;}faWB6e$@kZXlBNlC2 zv}f>>A*$iBTK0|6g}oMSPTI5hk0Haub+w5%tQQ@zY}=|mkN*NV=iT6VLs`^o+2*W` z#D5R@G(1+TxRJN$$jY{D+DrJ~AwPz{)aq`GF6v#`wp|;ApAkB9WOg0oruE_@tJ-#G zqw%vt=Z`F_L*Aq;?p@X9qK(1N3tcj@rjB?s53thPc51KVjYFX$=sNbz(Z#)1ZLZoI z_{E`CBfIJnZ(1)ovbt@THV(fmbp6PoI^j*qlHS#AZrXUfS*ZO;K%L@d9>A-&5wwZ2 ztG@V=u)6m*HA@<-OLk}7maPokF>iIM8M>v1L~I7E`C9}kZT z4IF8&%a8Lmks^|aetbN5^^XkI)yJiQ(_NC6UpC$;^z6vTx;JrMCepQSeJ1w+)&26w z-@2K%jFzok$JuY5E87_wJF>9e>Xyf{f_0n&=6NzgXwryfz00lmWoy@S4w~o7_J(pt z?CSk*wJa-G&+#@d03i6Bk@j~NZy79KvBB$*_7VPIX#R+2efBNa<##uD9o9a^`-BQd z{OYT2#Q;>imyh4)bl=djk)V3jt;*#$HrgG@Dv=!veLixbp5g!T@9@T{Bj!&5=jzo+ zY`u=N%JhhB+fi*PJ|HxsuK-fm@sYOrTmYmmu;UyvuarfEPK^xI*Tl!K zSPLku=2fx_Ai_RXKOEn(q5zzB&0oqchyES;TR$_w$ZYLq&Pnqc+0{_P(S>p=z_2ga z%<(s`mBofG9JQ3YB*dGo1>_I&dfBZ|(@{IQe?p5{fjx&}4oc>smZRI`(FsP-wGNyB z^CnqpC}Px0ex2h2z3bpb)iwiL9dgu9UX>67U4inVX92m)dF{7{e43^^t-9QF;pFvzbPUkJ|S zkL0B=a>%-sVz#QmEf3z9IDXDA#yLl55;DN3SsL7`{0)eblz$SW>O| zT}Q8Q?Kr+IG<$Sw!=)qxixpeEPHW%cJ45qFJsYxGDf~ca)#$~BKS>6bE4F%_(|*K{gw~HHG+5krwY%8_eemqn$n$_TZJI35iyQuwv{}TFsv>RAQC@XunwO!Kw!ha9_G&W{ zon=rlH*E3Pt}AZIX{&H9Nmu>mI2whm7~9-PP3~GHbxDfxo9nnJY~|RF#_P!@R=Ax> z*Zk%?nuM(#+uxX<>}@68nFNdljw`}8jh$?)PfoMKxhBQ>K`L?sv16RZ;p7&p0$0ur z^F+XXWS`c4KUDQ_2~SH3fS(DdyG{gs`MB%O;o9_%&KzT|p1)91}D(eSLs9LTt;_3e%YY zZY64Bq-hWh#1eiMt|B;WXzW!}TpE1sZXkWga;yjs`{B~wl%M9kR_c|M?dRn9-C}BN zps6M;e(l?+)^l&%2_IvqEd++)~OSv zQn69$t5TF<*cg>`TBSm4BZS0s%Elq6aB+>^Qs+$x9(I}O`%B|P77wneG2e*UB=>Ne zTY0ebVaT$M=$+Z&(x)M72KUt50cr`sDN&Z$k<#ZO>jn?kym)21IpDM? z+w55BtB@^&=W0H^q8l`yX61ArcS;G_F?gk>{#DjyFHhEcvm-ClLiP?GxiIjmd2@+p zVy=(7)9ebwU`$Q)u=*C0Gj4g^9!~E<2#@q0*Q|aG-I8#|E!quz2E3%dH7{P<+6J5x zeKfmR`ZeSR8039=9cU{!Cn_}a0VjFL;84vUVy3N^7ptfn%WJp2@!!fh&-&Eu?*!DDgX?QgzRB9^b%FKS zM}x9SW%% z0RvVh5Q(G{OD!?Tp}Tc@sir$!uN3`De^F|UIWqLJZgZ;lPUe-O>hz>i8;r-$ySk&P z8k&w*6Ki~4JAvZ%P;uSW)aIQfSKVG1C70S^&_j&6xKw=yoBx99%u<1jH%lwsg9#eq)%{F;;$RaH#4-b2EKK;2sIE7))*&|_h;2qGMPOovRCSQI`nznd z1vQvumhQ(q7&53|`}X**Trl}H%PKvLNgT4M-v@*yHrIoi%yLSPVcrbc)n9sByDRs4 zP_tQXsT+nogs6{utH0akMo^1ce(7n<`ysdb%(uruJT9o!tf2H9rf3LV{}VV+YyyMY z%s@a0^L;3&zV~hI?%cp2jv2KSjbRMM)I-wr_t@MFYBvMhd(dV}tX~VZ)wwr=I?TR+ zc+6&adObYt9@ss)b#{Msx&a*XAL~(RReO@b8pv!a`4;%5(&{7A6no?j{Z)&90I^CR zm{Gq-vvmvz5_Ox=N<%TDLv8h+(gGa?V4P@H=Jd~RVrZbgK20MP8C=9mFE7PmW`-u~ zN7A|+nZZT;^g|^sfvO=@JtSQpypO@0``h-rK+dw5Wez@@$+z8lyMH-7z$_7Hhd8C< z_UhcR>r4L)CgIBkTUZy;>3b7^z9s!{=`)O(z?l`9uGpLFtv=xM&*=q*U@bVpdY$gz zgbgtm^Z^G2##V41gnuyLkJ@0!=XOd8W~bmkR%3dBQvgOZWLCNz{74YW8c*+c;$T>U zZnjefW}o0bYYEBP*(;Pa+}-GujX5fK#o9*lcjkn$M!K7w@-U|a$OA`6Y0j=;MWgAh zr3IMtg3qk$q%LP>SdlQD`cVgeW^%`e zPm7$m7`h;WEh9_eoRAT@nWVG_qup|!y@X|2z61SguM=$1Q4fD`98`x(XBg|jYe=S890*;^VeWYCcb zadsLcZQ7Dhvtj3k$P5Ki=dPV5Ntd=Xbp7zLhSUt`zJ$AWTBJp^6`@;)FE*5BB=t_+ zHPA*ac3vIoFnq0{HRH=Z>^%b=l!3E(D0DcYL6#xiC%EV#|Co;44d&RRBaaRCFrRA2-4c9Zf_A}#) z^hqW(`%ph1{CSk=U*+&1aWQH&?Pt(`!>oo(U;xT}5VXYHl(r`{XqeaVGxNy-n}i?( zb90(==xY9012?nkKyrecA=kng5gI)_-=NIYIOru_Yecf5?F+p>yr^;YJLtg#APwR! zEIkASb*mb8zr!4qKQvf|TJL-`G--HKwG7)fB0YH>nsOXY@&fV%Go(AR5;w;_$>?LDo-?cr4FM-gia0*H8uj@Q2rqb5zc>q$px zNuis7MJYeq`)G3UlMSfj&dH(nBYsVPvXhQFCM5!`l5<+9?BIb8yFXlI`qBKHww|9T{!v$eCJLpdV+N>e-`!fFl$)GSei>ksc3d9kn<2qg969 z9no%H`rh_LK#FL)`DNPg(8s`PxZ{1`2|sUipSYqW;YcO!?JU%atmNQtej)XRkzwbZENn?RgHEr;4CD2Ie<(j&=rWfrc-J$h|{u_DO zJZ|jiR+66Rgu*xrLfIo3&4=nAx!I6{oXx{%qoHjhMa`FTySiSI+@RcWnu$yI2(39X zSK+2Zwu6x(XcM6WBQ?#bxls26vK^chMU#b&fh=fgF3w$tVuv8%X|thIBcsh7xpemg zik%B725dFwN9LMma~1A78FolgEDaK-Il8E2bsp3sA;WGT=`KwxZ1L!tmcg$f9`cN$ zLy-G4-LPe&8(U806?g<>CdReKJ1-7fJ-VyqR$jjcCzEx6o8W8|ws!Pj%d zxpG+>EW+TU_!ecJ#%Ysmwv>falUxOfAk;lY&m#h-y57n zy>;Fl7C748@+}|ZDSvO^hDvvK3d4*Jx3uPe@xM)8;v} zV_|QAgXz+T+B3OeF>LVxyy zu!7O^t=~RWjb`1hKg%s}J|FgJ^h#^}hpe++1*~)2LT8__($Ub?@eloHIRz{)F4fsD z?C0oxux++J=k<|wp8Lu9N?7&itJZA={y-7Ny1+H~6c9#e7;UpSRFDJ~(uqJC<{TKt z0W{&O1!;5p&+lx$lyBo6W8% zg> z&=SK?LT64GRp`g5e!ZH$g6ooZVCmT3%)lg_?3632PSSan4e|ps~Oqgqn69 z59<>C0RNN}EiX3!iX7*Ouzuk`&TFcJFP32tjhb_og$af2Ab*bWl`{-tQ1i~SVN&4{ zUIVqjHvniv%vH4cusPv0X96hW1QjBJxf)$9TzyQteQB|+UqEG%YYhad8Ll_BynS1- zzaOWP701

    V_{JvvWOKoaX2Hv*<2Ki>@EOYHVlw_2Mo+=Fg&gBpte8xYgMH_D3Km z;R?v{Bt5!u_@=Sb?fJ#tmzckb;z{~+lW-p`zxF@HNtYa}5+9(JKuyCP$IcWEp0S#| zUuBm-0(k9k*jQA1DO?Ju)&>tzM$on42gV+@uK=89>~DidsAbR%AbgS1zWWpAvi!FJ zAPz$}hkK6YwV(a;u>a;e^F#E<;VZ}OIxl^#y_VY;lx6NpPYkyhM|8%4KD13! z5NIj`W8lVdx6aJ3$FJvt+>ALeiig{cqdR|oeRAEVIS4dUp+2j2kKgR%eyzG5KwO(k zas$a4*mzXu>{rEgoff-1k_SCA{NVWG&eh+bHxgRx@=2%ZIpHV9-*!5E)6bb~G5CNw z1I-Wj9M9`K`|ZmOY^y;5>Ku^RdyoGB|9ho3)ChfTV9>4uiWd{cmwPS>L#U&~`v{zS33y zJq!2|S>L(0pxxo6zOLU}#VHPY~@}QequcGM4>=bcfy_{tp-wH-n@R zv%9F21fF!^4dd^+j+Uf>n?ezd6h;?@w*&s!^^&e2Cbx)A!qUazJ>$Q+9+j8|yYh<4 zNRf1D`0#jBSAL0iFq2nQPQuaU;ga#bu4<60aOD> zgfEP%b!+`FzU|nPSc!^*f_1gX2zVMjZOS-%2_&8pf1%=``dAYY z(*F77U$>Kc-M|(QYJfEtor6XGP~6t(v-?eYNMDLwFFMwp`U83=0j!QlkLhV}ThaOM zZ$B`1(U{O!^pVB0Zqacxm zB0-^8tVq&5SgLSa>v)XKCDVWV;em5dxT|T<(1c;TM$$X_ zA?#Dp8m zA#1T|8G#BeG&H!f5q$o#O;wY*WT7dNu7xS)`H%FDo5``!Zl#2BgSMuV^jd70C ziDRe^C}1dw8+bY8o*&!V#Y2~M!}!?D+oJPc8lVA=~dW=z#qDq;f-g`6itx&=}hc% z@jCudMjGCAwrG+x2y~?>;+_2Kj4xWBXA^;86w1a@#7KTT!#LV;E^!Jq0timIVh?@} z!xJO~6J;nNl!K*;{rGx5`mNy%EwlSj}<~H^kZ!1 zgJ#Sp=zZ9~;za)1isLc4^Fg!bQu+{wcOE*2 zm5Imr+=?nf@`Bp}R|Qo8_33(}nFXMh1Sw|d^yzJTFcM4=GiF#;bF!^(rWb_>RnRM4t zi?|5A0%jZGB`NN?`m_0Ni55{GZ3458Aoxlufu+^>o})H#F?u!3AtFH1(3A7i^InNI zaS7TK1_F7Ko}NEHlkPd{7*3d(1CMLCMAXy!v-V!DPOzbcWf>wOMxyG0{L;T~qZ@2w zv9@e~M8eL+z2?8FQsQ;(my*|&9g27=S<~zE3wK{f&wd$sec927SCTEg7k<(2C+OK5 zlQ))~j7SGA*vMas`#Ov4myvpFu#h@mE27fWCMoI(xYf(8q>?#Ats!N1tuNvxoUb{FL19g;nlfxU>Zo;cF? z`nSU)>@vd*=wqslc_O@T z;k8r~x3jQ<2(O9azN>$lAD65k+M>N+)Ck{+%D(tN#!nnq61Q6Tefk{n-vp~K z^Uv`oxhsRWS$LOy2lHlL-_Ji!p4gZK+gSiHHn=N_`g;F(-+5u;ZqGx*7!lDE^L@%c z8c$7Dxo_wB!G1-=Pb}^?|9jwR@+x;Av4H)Jcm`(H@W1z-nyhvQv}agN#OsNz{iwfH zPm@=>JMjL40c70-tUvm%#xs*O?z?!`U`-J@fcQrGd*E5}8u#728?ZLehxO?%|9kJ5 ziK+V@-c5k>`8IL0pZmA!S+c3SBQFTXizuJK_bdOVoqhjVe=qtrtT&=+;$i;^rb8mu z%+LvlfVXMZOuXse!3<0kn2DWuvAc(X892NDB(vH1pg9%1Z(&oeoQYzf3T{p;F(*PT zjI%@$ya`5s9MgE@CuThHg5Cbg52#c7q`G~oR>HZ0z8x~lKT`XeD)FRa4l>;@i6)s%ruhV zIC&dbjhkPTSQA~*M3`lywR+3|q+0)_&HCUY7B9-yMIN3^99Uazyy(Sx@!HgvWg8+- zOuij(s>Z$4*E5B9aQ(HF&G0{}pF5+mn|I^N7rxJUIBQ z#`?9_7WNrlKI{xIG@ltPtnq)%*}^`{D}bGkv}?IMSY4C$+SQhNj$Byg9rowDs>P4oO`9@Yw-W}AdHGSi{m3p2GybY26fYf<22$VCoQZJAJ)i3h-m5jkdwMigh zPP~Zz1`CYj0A1A8+U7SU+lWB>3=59rPgV}b*BU1~+7W%wr7#S*c{B{>)OseD*bz}^ zIt&{rp6nU?Q=63RXir3=%VD@k`J`lUu(mn5#NM5>vZ5>|QZ=a>gw*M$*lZ8>v-nwd zH&R<#^V+QLKuYp<_e;EAum_P#q-I0#x_c=mz-Pq!4SO89Lb`PbRacdgyu;m}_ZOBJ zX)c8gMb~Mhn(TB3z{Y2DQWi5$@;9fUc1=K$V<}SL(l51 z)4cYuZ}K`|Un8$eTZRhj{ek3~eT&xx`w@9ZIxtjUpOxn2$PVIhVP%n#(y5{G`u;SI zBRiPKhgC+#Ni_wBx>u*Wf_x2!7ip>&yGGl=msfft+HU&f4lE?p-$%1TRjb)trl z2Z5IT^~LRitE}eq5+@=CEr78jDN>{$o@GpObS8$PM_^!DEcFoNuslg6V4{W=!Z?vs zsh{8vD~aR?C5EHNLBq5}dRs8aY9^IHiCDB4#*eI!#sb;4G1(DDj6j1^4qPIi3pTJl z$t5siBw7j+M6#tBfivLl=rg_gmDKo4ImxXNxOm%xcQv>Yamg}REZf~g{v z(s_ZBt&w4ZbdTk!!PTR*rWOyIHyp@FM!LuGM)S0y7Ei@C?`ptg$dQJ3(VB3*D1!0S zrs1;LapoxlNSE)VtxMjcM;(4^bbJSCrdEod>e< z>y2ISn1`rO(7iVHQNB}^!|{#AS&oN^PtmIZ%QIlAVK}GJGppn<@fq3_?idw3)iZo2 z^GR0n=>v&8Gx$!2P~a!;XryN)xY`rR7Ul3L{M6j=Y@;Ge=ZO7tvQ_!MsQXikMpidL zvlEWkzaXzGKNR(JYR!mK6E0ilsQpXw`tqYuuYl70LK8hZ;i!EQd1LuW5C(G|iEL72 z>*PRQp*O)#MP*GL8F>wuqS#}GuhCoJXQK+H&X0U+!sN)08NNYpgetj;=#pmZ_g*L1DZCxox@X2Bl*qVxlA`Ii3}~rMoFgnMyi|Ba$Vi2WHP)Q7d10AIWp4RmCJOeQphgl zgeWzc`lw!uL(WbQVg`C2{9crf%xH8&i)UVm2Qd?U04$abWn(I2%ac5tQ^D^n4wXNS zS}C&|z0^{hmwPHW%fhuhG0H+Vd>h}Qk#BO^J)3s~{xWKV?8GRkQUw?cy`oL*{jiQt^OZ4XW02XPk3I`DOvVtM{>#s*R#|Q^Z1hO13|%NbEIGSz6Kj>bom^X|pukncaE?#mVlSGPew zCY-nbL#|N1Y4ypULrys-u!*n}lcEzI?=9aIb>=S6&zOR`z@Mt+xJ; zoD1wPya0GZRHp2paC7SFLf4DbuYlpUK{Hq8AEEM$J_+}AU-WF9PLkoYlJt?&D z4hALh^3JI5vLIn^TWw*kcW{YCFc8`^WHCYrM;|1K4*lTWhJ%Q#>;z^t2U?WiV_!-R zDIbiglf4x>ad1UCD0>fm2m@2W3b{hr`FCx@13uVH|0Z9A#LBj(|@@ z^~?SVUvnI&ShQg|Itng}A_!&e!fzZ;U&xWFa$ahpJW3+#6IOH5fZ&|UAV-%gqGn{1 z!Vym3uP?sD3N!(}5Vasv8`EkxE_U=|kDA7ntK+n%4aU~CA1}`JqrR!X3)jY(-Vv?e z-Hs`i`x*X1--qkrjHfq^oo)XDgqwy{=m&tiW;(rhEUaBxEWc#<8~qTz6lXnsWb8Gd z@?tL={y{%3*IKn@`rO#3_P|eq%i=#4z$u0sslGB+-=6i!%b)$1_Y7`^bD9nv8*lFi zMkF?qM}z|d(DePWB^}nEy{@opq88r-@MFsx^gVO!}yEif5bX;Dxd>LnX$$)JC1+J{V%xQ zBCUK6E@+xJ_Os&&pi~C~I&`@+;0KGwdOK>ryNjMw1hbX7pv$Q0HIEb!=C*$npexg6!Nu`b$B1mGv({PUR+oHkl=F$=jQGjN{ zDL5B-tVoM%Omhq+4x=04SvXhubI}H_C#@uuID&45gT=BuLv)CnL~{f?Pjo9_Lwm`K zMOV4aw30BQkf-&m2z>q-qByQT-6lME%%Y?GGoVMaM48;<^xW{^af`0<@3SjuzZ<8ZKNe67_Ox>A7HjWWg_I;9}$|5rh{gT@FSHydL;3T)cd-*qnEuEIGm* zJnrCsadmcUz=H@^rW0vDNggP##=Vl?y?>S`b-4;|q88u=hwjFM=g0xgG&aeR5DIG%4@;TS`lN6*5+EKJ@Y&f$Aj*jQas zS}4k=aUwZS{FDEr!iEs6A}?6X;bZ`~&E;2BBoo{hcq+IGr#oVyMJ&T_m=TSq^gw?m+_l%DEMly{Z=JaaB2?BTlDmf5zKap7@eVWB zB&|JPeq!$#>i8NU%<<5f2#Ksm`cr<-P}kQ8u@-+|=AmRoufs3weM3FpWrz*<<1;Ce z-MyG!^81F1e3v6O<2`5cBxifS{KCc?>ie!lYy(BgACjzN;A3ahC-nMEf4e@U8d6Ee7)@;G^ZZ@%khs*>8sQ3lfmRcT`jUP- zJ|Zsj-GDfbPoCL6akZ}?B;!%Av84^e4NsmyOvLqB?=yPrzMQ`aaT=d9b7F$jci>O* zWA_#OEr@gY!Wo~5^1ge2OrE%}#DAL^(C+A?|4DdaZ$hzSpzx3J5fie$0|tXn z#3q*88GiU*GY=+~_BVe%^_0DezXNdvUp@0`Vq3reU(QqZYQ6*F8oqHRd*Wn&VAkPh z)HRgdj6i(*%x3`Qd=m5d8PU|&5%JKKH^Z2S>(^)6BnF#VIx#{3Zk;ue*?*jwn;2|v z31x)iMKipKpZ!mmHpE~HOE@D6KRqLw=a;;Y_I?~`{1g*AfLVq44ejAHy{ z(5rnhXj>cbM!ePXBI7Im#%$Z~iV0A^$o~3L8iU5&!TnX4gxr z!_w+pQ>i;CR~fbVl-Zrq>qA|2%v7oaC4j-k6EbFLh4Dki^?(o^x9mEj3IBf9O`17$ zygv7B@NUaM04FN~$3}kWy?T>0_dUR6;eq=)dqdhWM6XXs6W=)*gy7=ovk_9+khET& zX1Le)HUiYkW*yS-}?;mShO^ z4M&WF8u1Tlm_W*slMG?L5r_#qMCY&cg}{~_Ko-M%&upB+kIc4!qOm`lLuSMIIK&Ko zVs=1UFUVqhQP>E6G-4haBp&chKo~|_&LOAb zhm9K@-x1Xe9x;|hZ=7?R${ar4nENjHkmVD`%4oYe^wiH`TdieT?uYqL5o@A%&)uBj z4p%iMXSuub6A>2C@HzaHa#*9uB-{N6|2bk^^r5+@Q|2QFnv%2KkMdt4Hb$SE+jQA! z1lOdKV}FeD3Y4bL%zc=;FhXx~?A18#`v$Qs`pu8;px`2G66A=FTc$9!N3ZkvJ@stF zy4mZ!`{hTe42S4zb4^qEBi_x-_tcY=G;qG(p6i>c2E}XFT&f#|#DGRe%uP-e;u}E| zTYS)*!q^Oro@?1RJECaT$+P#MWH4q;@6GATR*X8dVDk)5`MyIOiheS;O166x(<09^ zJnfr}I2xTaM;<&iS^z8v;?tJz87HFO&h3%i85On&^2MH(c?^%}cXNkjFGg)!13rk) zSbkufiB>B(b2|_8y_p~ES%(ThjFmd)C*y`aYPBf{K4)3TxETF?E=blpTHBfn8sU~y z20EHC_iw}es79N~NB8smV#MX>KXXrInJf0TC498MK>5t5RjZwQ8n9g$*e3W$>|lRE z0P6Z&w(O)ZtIeyBeUbkSaWlGO?yKyUu)mE{$oA%!AZ|zZ&iw{8b8C)Q5!;7f3Id%Y zb1kw$p+ARH#76Py2rzb?8<5otvp8N!{P07ZE{TvRJ?aQw~#709Dn$t_h ztlPbcgI6Z~WZa9^RVQ7-Zh|yMx{nL*?yWRD(;pMZy^%rfU@R-gS^8|Hw;#Epc!JBA11$z4D*pm*M zFQET^a`W5h-HMyj+_9>Tb2vH18H;xx{1(b+` zEP0Hw=qSbXbY^&e7pH_B%;zI2qvI5s@+BhcZm%Eg+msLYs-hn%mdQ7Zyt|n{sCOv+ z3}*Cm#X9*>QChcaDK&&L$f%7@0oJbTpv=!KrD7-o20PlW4k?cp8FL+J#8BT6M00em zLgkhzI?l}nb$?4Cqb<4!TvdLGo^WmG!QqzUj7~rq3zGMWYPq>!QEDk>@S+)t7&%0& z&$B5Dj zyW{xNj8kge3K|#$DR^?mV!SW-*hcp&{>fj99r##=VYKfYLKZDlytOX|U`7GMJ%OV@ z%tTKp2ITePEWTF-JBF`B%ty~ErsU(|emnlnozw$_I#sj(DDg+`3- z{IZ$N67L>nB{hzsQK1uKG{0`_iun(N7>jwt zOq@i&*UR?MeZH>CvX~9?*)LNi(B6b!_VJWO6)R%4&R?7UpW&$ zVchTdm-y6owTnYczyc? z^ye~ziI$cXh?tmp)eK}(f57Hn@N>(x75ifz%#%~hCJziG|8sxAU*~cd&@atq;gk0U zOsd^q^4Gf@i+Mf2brv;QHIQ6Qyc@r<;$%!ZNO46@Dh70F>|aqfRh){+oT>(zL|GY$}-oufWC3%umjaNV^0~HkCqgsUXCtDb?rnrc8%j8>ktSeHHg& zbd}5IHcxpEGaIOxlmitBF-FRDb4LNV!nKk5j&ca>gjXqd&Rw7C8fG?9vnZ|=#272( z{<%j}rX#LR)NIPpilmrL%F}cCQ{E%YCTb4lctvu|cID-{>Z!C5*JkQ_%E^kfn7zu7 zxsj=^5oR+rm*QSQi9ssw&gscaM_pUk$!@1yvSM77&*wJCJV#4fi21&rF1axTcV))h zAz9L>V=M84?^&0E7%ye<+*MgKAZQQ^e7#(#F}}*mxpm5N?pZ@X@@avyWuC_%PxOn03}h;VSIUv)6V|H_jmah^Fp~^adJ9q%&UV9 z#Dp$&F{#R3id)nDV;t}~;Rm=h#AGTDDxOVSk9&2pzw)oUw8Z2q&nOC~{l__->~H)) zm-d)X$}5Wc>8x?DE~+x^7U28*P=+W*rn|DpZtl)286IJ!zxB&+LT3#OY&M#E;pENi3RyXo|2)6 zlk1CZctq9D2$#v2L1mqSBtIZd=DC;iqg`=HG9ed=1$=RZWo(5SL0zRizjVe{63`>Aw7grPNm!&>Ilp5jP$K9N z|Fpbcp-Wh%+Bkn|ra%(VEB5qXx%p2sffIs0@gK{lz-zx#_1}EsOuo z!j^De^%?N|O=CU}5^H^vD?I(sD#m==taYC8kb50J#bqbqs;X|DG01C; zxvA=$FP+6nbp-Y-N_vG8AyhRw-!V&Yu2l#Ggfgc~1q zl`G~Prm(|?jgDESqhggn)0W&WJEj5$herEJ*XMWCwulz--u zWR5~&n{T0uH=#szTRAw_EGrQbIlfdEUqXc{R;i^ho^~8#qbxpETqgWgB`Vh{j!)-~ z1$XdoEdGyBuS!?K75Ao1#@##lUtMkxT2&vFC`HwD^0<2!|GUc*c(;nCj8rJ5bwu{v zlphs$2m`7bWvT)yPY~I2DKx;B8B=vCOBFb|j@X{ZzoQiifHT9&R>c=NR&2=kWw=BW z6sj4eOd*xa#fCk;l`e4vjRjrRig||_ti-U__m@jNL4RSDYWF;5MlLbz^Zo7eh+w?1 zNp*Jq%M5nHu;2Hu%QJ%M!d}&<$k7>Wa!o&<>GGVgcHyAv*}V0v*Ccy@U+waWK-j!+ zMpZcPKg*e95AthWQV2U1uBhtgvu3@d>>+-=OFCi8n-JB=eAg^fN)=Gp6%+z;;jT(g zX*%aRMIELzR%8*5EWA{025cPW6m`UMmvb(dNo1%FDK)y6i;j=-TU}Pm2!pQjIYF{mr%8Ed$rMmttwz%Jmc#F9UxRMyjs|{ z;IHD$vuF8ImtjKVLiWPRg)Ehql0Csr<28xPlf@p!a@N?nGg3Us(%2Me9TQ6G}Ti`BKEhI0v zFYr|^DuQxhenGjQp|(oRL#;;*sUEAPwnWWB?VwtUng^su9jP7rK531bvl?Da7qVSF zgS)eu0bT~R@#+|W7hzPQHa`@+Au_-VWnGX6uVB%RqdtPR>(DViKf+} z%H^?J)V$O_tKEbQt4p-379+QA-l29?jir_ixfbzWJ7YmVo8^E7YkSs4R%wwoG7Z9n9x`X;U0O!ji* zme{jug=%QXZ}k){5B;8%NV`~+S~1TKS9vh@F(5SURKKY?tSeb+wZ8I5>`OHr@k#Y;&GUK<%X&5-PsFCG z?S=%Y4`{aQH5m8UAU$F;)eb=t)z@pCU(~QX!|u6fY@V7Y7^=y<&^i z{2?{!=~_qhi&tiBtMrcjp@xBss&{Ms(=Rs3u&?xutyH@QS)^g6ePnU*s*D{-!A7Rq z3&=)|Gul5EKVR+VfDDLbt7SqCYrN9lyX5&Azuic{Wmo$I`A?%o`(NBGQ!B^Hpx9H7 z${;ZsnmVftJj{CbB12*a)#@Q+je|NV1|H@;&dBiCaWyW4p>bblm7#|PpiS8XO{obX zof>624-L0lW`MUwEMZfFZk2(ojEmKT=&RGNI_O3i8Ljo(kBpDihXi}> z(7dTTY$RE0b+Gbb>@tXr`f1INy4RLU)>$2{+!M7LvRge!b3pfqWs!BpiS5K#OUOR; z2b#=#^)e_VQhi!;N^i#4Xp^4@GBfr7NX)6_PDh=PEzOUWAmWhiHv08eSo>wK`u}9Gm9- zTRl;0z5e-?4O@FIAiu_5hje-7Yx(H^TUop9vcCX zs*h@Q>!+-LWbfyTtcWE*AR5}*%NOrm^?bYEC1h1>0%WPiM(s0;f2?}G!_Obdj3q+W zY8=*nwRn@=t({gt`yKlRVy|&oyKZqFKzR9GF=xe+AaIQsZOtXC)_CmdxrS_t&4HZM zAZs67lCs8Qch3!ETWlc&rNPj?zhsrE$DW>>$j;brkXsr&?cYmMOg$WXf{?t}B{oqS z7sDk>W=xIt`rStM##TWdX{^-QWiYd4c&}ARgB*@+gyd+r z>0}$6H*aw62}6#>b^vjYvu~%tKl5T}2DVZh+XJc6KsPNj+-vb1<`;>S#va|u(s-wH z!Z6R`HrPN_PREKMe2tAAcMVrrdLVl6$hlYQK!-V~NqsTBC!050Og&((I__8{J(?Bi0!m@_US25ofD@LG!zA=+c>W zMu+{LB3H*bs9)D?)BOsvkVdY4iAeJ}sCuO4wC>c>8Ec~>e$SC>;|{1l(p;&xYgxp4 zqoaN=ksIQUtEX!2(F{OF=VbYT3*N zqZ589$Q^P1>eZU)x0{TwZIqm_dRw_G?uI%?^RwPfN;A>7HwUAZIi^qZ^_1kagWqjXxS~gvb=p$ z!>OJuKnA&7G*C#zq#RbPY&`#T&ntRt)N8%%iA|Mc=qHXJ>oLe4{0SXTEF7_ zmWDGu`N%VI`RZr2iWXg2(Y~eOY)=95eB3AXt6Ho@*(=W5Hk|7zMEU?OLYS6l(ZGs! z+Xk;5D$+0Rr+U1Wf&TiH=eIVT@A-th5?8JMTFXxV%F6bw4HtU8Ag{&k;l0y3rk}p@ z$hP8(8Q+k*PZ2okpS1qdZ&~?c+jDQf5&)OvtJ~Ve=`S|fWOv)gsuZv(hSb^rW9Zxi zT7LU5j83c8+G^FRwRY-!+B&X-YHM2uNlRD>wWUI+gb-3rP_|4y{!~ zXoL`I3nAV{2;qJH?yt4&yXX0Q?)$p*WX7>pEuJ~6u-C$;n4cE79PBbq&;H>FU!B?= z4q`A1-s?Rv?zAfKg0D%v5e_CE3x4Vye)ZmJ(yP7i-p%m6#q)La^kGmUYGl#r)W)7$ zCB+aObA4B63Q9?8PiySGRaOkwA?U|I8&FZ?c1~m8t=k){bjbP{&|y>;S;9>n2(K=- z*P-f{LXp-KZ%KOUZ6MEd(qZYJgeC%_on&q5-SC6O8y>FKmqW$Y&OSLASYT`}_Sf00 zuZ9j73GE4iudQe((*cPk;++rOp-oZ6-4|vwraG)RFLxVy@0@{R1Yx zwgvw1jj7MWFBWgmd8U8KB;R({AHFGdH2g~O7M=I{PfR*(3j*MqQ(uK&2dKTD`rl1v zY-a=DIjLjeJ;fzDh6a`}UvvRLcBSq)tSA=gSQ&W31`UTOL%Cy`aAk3gPVPEV#eP8N zljNno0jki0I%I)P_iZUUHAhqDxn&b!jN{9AW44e`|wA_|LL#{PQnuHx`Nsz z<{!gD7oF8vWpD$=w?hTTZyTEme_nhM=tf_`6n6E&@gPkPf`T!HI}LupLY{pKh8Ltx zhmRNc>YOQpo4RANLZ%C_Uv4d7+}5cx@H9=wjD!sB82cJNS*+4IVGw89jA4Ty!PvL( zsp4lq7PiTB0yDC3XxG?}@af`loj!vqQ=&aPbf|FbXZTF_CMzNhiet>4A7I$sSwn2y>j!`h1)|K0jmJWp2#VwP-%rG!iNrp~A8 z@CI1MC!4kl6YyleUK^yk-%mSiGjEH zBRfm?5hUSVJfVvzsZ6z{2JklPE?#pBAtub;3a=VNQ-gS0bw5E~AryrA$oT3p3^kO; zy!;FD3o%E4M3E$o*d8j6uWM{*V-`XbMv-b7@jVQlSl8At$gGeEi6-r9B=$t}YIWTV zlg+w`!f4X|Mn~#x$PwK@!)<0W#Mx;0s3OHZo+s617*?4P9oR8LwPP;SL|)M;-DQSt zX6X(iF++7@Zd5j}LwBv=eY0i<_M)K!V;Y>|q*IhEvjH2}lgE3j`@m3U9_!Q+mva;w+_R1MS@*S}++6JB zyd>usb|Lk+>o?s`hOf*OPW4OTkB@~?_wfGc>Ii1d=bRw%q{c?@o#W~185`LkL!5>2 zBxxh9N5F&X*%}2Q6Hk7Rhs#pw)N-D=o{Q0PWT$fh3*MB!P>Js0}H0>q}@q(YUDRAdjTSHM)araEV&leiD1H z=~TGC-ew~;a?qt^Y0iJxB|XP@p?XC|3oM|n&R{KoW%bB-OpwRNTg1AyB<7sLF6}wV ziv#OjnuUUFzN~%tb%ymR-cr3&M$0XbRorFMr?Ja>T6xKOxo5I1CR|6B4V@WVL2c)y z>Gc^^SrFaW%O(1?Nx+4jrT56_v_*=Wa(VmN#+5ynd4bq5qkfB8H_8f0TPhF-gYJvg z=&i-DTh|K7xzsh(o4g{u`NsN|NOuZb(w>?|?d6r}A&ea@6WzPml8#g^b%0l`hcjkc z*1A)YBXD5zEQj5@k|Y;WGpP^2yq0QQYKioqBujuVllqAFpB~Hjq-7$Y zc}jpsiu#myPA|>4-?G+&vQly>btCl!XdiUo$1MjvT2|&<#%}I;#k-+bWPGe=o+m0L zzH2Ops^<0SRT^Wg=$`c{@mI$3sBd{!aEFb9tO`9Lt4LQH^Lq*{9_gJjUT)R;kF#p} zDt24X6z{p-Wq>N1@|;{XeGLne|2(zcfbl*ncdx9~)7{veJu|!ydQXkdTV;DquAaW$ zsMMR~Y4zS1-?wV^Vy_vxF}9mJ$NQ;wL_BFV>ZM%MezUQt=O1sLz7Eu~0ZyW%N^YeV zQ*}xV^bt@;R3fP>Rnn7MLNzEc)yF}Zs9F*wO(IVfP>oBh^vTc+lsLCBEvFY-)&ncS z=!ZdhC@9&PlcT_v_n4J9>Mw!HP_g6|PEH@T0vLll!7g8p5|b&7)c!Fs)uzNxe;)6qIA7c>G8@j2^C+$(65AItP}4F(n+@)_w_iG#Ofabbdf@D z$l9T-<+VM30uulsHNm>oJ8SLq9qfS~_mX6Q^Ut$xJ*Zkcba(6^6`a!bd!bjG&3z~t zlEKtNKpUN@uY#VmP6SX@$-UGg)PR!B`s2`k>slX5rsRI=QEG6>c6}}Mt@W@^SEl4a zD$sYA6cy>uH_^92`ckqaL#a|KFe&RJOdM?zeY>(Gs?;WGWJ$F?&V*@G>q}WDd6;^F z`q1rwzLyEdX3)1~UCtxye?4&}$Mk<(-fg4nhgu&$Jk~-@C^@0O*yNZE-LHOq{Nu6H z)a4~-^;enPu;KfmHpBy^TF+(sPW=rg&uzN>gd0dt8{4SSh1c|Vn0&XH@vC1w@f6z* z-W$1onTeULyMI>p^a%ERPkPB6{evdnw%PuZK-V%B>@S0 zOEkT2{6coy+scP zc5RWoOMO5+UJ_zu^}muO22vQ)t~Q9W zRq`SAG4)Id@?aZ`V>cMoWgY!->_Eo`DjH0l_o|(-0E1qy0A`E(A)Xw&q#`issN?Hu+)}O#6F6`QwGX)39 z#*#LJHKuZmcwv@)%=gCM(q|=|1{+MDW4b|(- z7+f*kWLhPk4+kDcd~Zl5{2{g#7~!Y& zaWFZW9|YMB|AL*OPL@m?NY~8A@~IF39EKy(*!&^LID$sxM?>o1p15?{2!F_M+??jj zXF*QD<8aNi*?Fgoq!w~Fei0jT0lpqLN>d8jjipv{FMcYd7cRn~Bce*%p;BwP4?hd? z2!0w6l$E9JCQ@5@06zz!f#1P3L`0Rf!=!fdV15DQEBpg)G(uU{ZYs5xhw=A9bPz`P z<_9F9IZr=!Z_&Blqe7=9hZ1F;&fpx2kj zn~yuv;`m1)3lV$px(t*k9y#tzOW>b?EC%H@I-_0`Z!zvlTh2cVS%tWPpP10EAX!S? zc{=|N z3GF!l;+;Ka3ml*^lTBa&#uI2K`HKyYf{+?N#`!JLRhlS2#ZNRmV`g*wd`v+d+%0W6?JR$# z;T5xO4l^;cb#V7IHtiUKV>n>8&%u3B)`4kvT(Z2Azuxev*?EWTMUw}nJ#Z=VE`FZj zJF|xlt&6e_PJ7~3%e(nI0Z?0i@A#sTgF{~9YiPIl#fD{D4IR<3QT6R4X_~y3FElha zcXdpORn`L|-{;T)ezhUa{F1dO*7;D5H*T%`4*vkCE^-_PV_Od8_~0_-_xZ;R!_0Y( z(8bP&b9`~@?eTG6(rUQU{HkN&V#pDazcgF^jNfUv!TdR> zKMIeK0;HSdFZtadoBYdhZZV{RM3Lsm$N37w3UeE$kT_ujDNvdxf5RU%JYpW?R2T<2 zN(z$Z%ir^d4bPY-J9WnikCK9=+W-rE6p%G`I?csFj*&v71#&Ha!tk#7VW*HK!egX` z(w*{e{3*j1=2x8xmq3n_LZyZBpZpoakLJ&vx|ax#lftBX|XG@1@;{qB~ zU~S}w+~hnFKO!B97%!v21vn!HvdWprV#|i;C1Zgy=CE-ca*m+isM=z|f7Ipmt?^0Y=V=*&dqzhsLf!bwQD@_m$2)23 z1vaUtE%fa!EH5|T z3ycjc&D`DDS?$xQIJulJFfz8X^mfl?Pqt5|;S_SAV9bVS8Ry>2W_Jv6#`|bufwi%p z*2dgb}{wbHxtg94H<*Yb{g zLsHa*_6+Gg`4Iudc#Gu+_t7Nfg&fI}2ejjYFyp$D^F5%+&Yd|~xO`Wc;9jiA(#9jC zI;Ru9F6|-hgkX{JAxnRc{N&kA`1-VA+9|bO{wmjhByRzUCd}G>k+C{+z<7bwaJn~o0UV?8*8wFV0EynLHpLlex zECBu*DOA!e*lGO3@{7mR%E`;qn{i|ETLPZ3ft8u3drDTj0p_1TW*lj?&(nQX*462J z+z0uv;6rAjRhwt}s*$ThTgN}rMg$$kYpw2kHm_n|8`?Jh31H=~7;m-u>^ZS&tNr1-FgstUSHaSC4cL?HK<`12rk*6IO9v&8ykhhm4MV zlYbP97+E0Gs^O%w=!N`K0~3MP#oS)KMuS)&BGE9q~L zEuJ>kSl#hzSQB-#9Yhc0zXh|#U#&iPjjmDNY%h}jlm8RUgX*A+Na)lkunCZYL3b$x zYL0RxrKBovwHHfudJRh9Py#B3H0bKnBLNrU2;XA(98T7(RG0-p+ zj|5F~mgn$shP`H`j?g8jgoWX0_40VZxKTv0hdXp7N@kstHYdDOMRg0P)|sm zX$8ITvNTwPU1>0M2kJX%CT+Gi-g_Rr7h6h$mZ8kZ?wl;ev=C?3ODv6n9z=PQvpJKB z_-7;L5#@q-Xp)jnuH{hrB%(Bn2)EJ|&<<1v*?nbmUrq(is@Jo0HS{KmM}~5p`*XxN z>t65DchW)7Qm1q4`{OIeZ6f?jH$q>cZjkw0)IfZdwCP4*X+HEL>N)7K3kOKmQcUl{ z(n9EO)GzWJ7osFdq*&lm;6shAZM;L$g-TM56yM7z6+>;UgS??XW|Z)2*2LbZ(tW_T zkl@{#o^^YAAI`Biw)8MGz&g)+Dt+?y^nRRkZ+xi?8fm@H+kI`;o#|SfYj0xdY3K^; z^WNEOC+|$x;p*`0(hlfa>-*kQBh3p)9V zjQV@=N5=glHkH1FUbo)kqnnAkAKx%eiO4H`1HET0D+tOI-X|TE2K8<&or1owzUot$ z33&kbN(_nEQTi47-uj78XXeP%r(?L#-onyf&>z-ce5NudA50&|f!$B(0uuupGhg?t ztfA>f9IcmMY6RR8-oDvclS9)|9KBaqYG&eOli=H$m8F`N;h4SRQX7*1n>^pCtVz{$ z6E3P(Qi?Z;wAttDzAo$GbTcldx3<*PB$IvCH+|j6!=b}vi+T^1l1#WZcYGVxMLlXi zDP7!qq?BT^#pZ+W=sM-2_Wz_ydXJZeo0QlX`JvZG4Y#*QS-nlAQ6~FsT>VnkD~H=p zNtZ@^Ub)0XYQyxaT~7gW`?Tiz)1}Kz&e?GM2G_Sd&N+iy(c4zK+T^AU&kwr6`AJSI zE~)o?X@<$l-$(uE8|t6LpB+z*xKz5)0|h3#|Slx*cldj}wj z4wOnv2(~f)4cSr8+JQK>_ikyuiI44iAm30vYri1P?0rz$XcA#7@<(rsdfwhCUDx}l zw8dnp?P>p%jmqck7o{6OZJ^zRYkSAPVPn*b_Dj-@y)R0;Ot#p5@E_f%e9?Yc3cNvJ zsZ?TX6fk($2dDwla(k}?_M24O;satgwTzOs59UR@Exl)Q)HXDLzX|m+r_ky<@qOtd zlT)_Kfyb@jB^(&mB0iPAFu4K1k3(XV9kEy~ztY z^`~J>XYJ+B)6w@S&ADvNQ2%&k1iCB`wiW%EGLbu?85$U`j=+{tVFENPkeJ5?)cf(8 z2x3_@tPUtn(g6p42r%3uoXc3S6X>|W<~;VBp*!Ps5$Rnpa0$XZ#8c-OO0H7#61DYr8FrRITpxUiUNzN18+1})`OR&v$Y5?kM z`Iz$*cdmDJ*{q__?r)GT0Mo^fjJHQ{%KBiHc9>u~0I|hC8$TZb_-C-AcA>%iZKzN2 z&&N9>)|WkoowZvXtk_onDgMRyC15Xj3A+xWr1VJr&!kZ)5KNR!!0y@|4i4Ea{7iZ& zz1q9AYzp?m?rL!1cF6xoucV+gUN!^!X!kt08-R33ucbG7cbCn-f-mqlX?G&(%G^woFqcB|cg%i)zfA*`{4yWY zb(klh3Lh0Z^%i%(x1lV^)FWvsWMan%=z@l-Y%IyCAcqY3UdklJQNA?QKFs3WcB&BvtqJm5EJl?Sn!K3n4#A zU!x-W%g~M>AOdM4SgH`7%@`TVY(K`dYX5$e-C{h{{#d(S4_9se-544J@R|#$N2vu z#>$F%Oa=C^FybCIi206dBPPmjo7UNThNbVBHE;eY{o4DkY{<09J|=9!&KqPy)4oM~ zEPHC&VNYvFzF7AMeiX@c{Z#hC^osqqu$euxf8cXzvk_Y01iEd1Ak4R@;4l17+OLRj zWgktS*gfQNkPV_ zY#w}ffNnSvWP57naX{)uXaGlGjXI-2+9h{BUPp0YiwWEg8ye2vJ9*X_ggX?5LL}S` zn;hP~S2&-nBLh(dAsQZx-5EZ&7qWn?E7K1~05_3?R1)q!vwVR{S8Yf~3SHpKuQ7E^R;^f@MUTVVh^7yCARxVS4}y#d}-ff0tni?9o*P@c1H zE(DKI;Dt}sllR}WSRYD>B& z06kvE?xE6~^}ujl1_tB8bogEDVQNT;P@ilfvr+g7v*ByHE`kZ|tUdz9LDK_;dt2UO zA5vROvJA8^JVp^B+zJ1I{X(58nKaOv;=yc8$b%c;Xr_2R8`6<3!YLwzLb#Ssq$TpZ zARW#N2nwdK3T}@(c4jY_g|N)jM0$*{4(@?lO;hme4O!;0jTaUR8vucFC$0I8))0Z@ zIMZ3c)fA08K=Tz87$Gb;uJmQXGw>wbC0f2<)(BzAai=ENBk5Ugd^|^xb+dErAm_yTlEX?&BE949$aYzvWx<&L30A>TZHf6D)3-U zEbD^R*l~jC;9&%RdbuY;T;^<=i@`5c>=b^7{|~2*7%Xcs&9%peDSG3A!+zm@Ma-2! z;AE^UTv064MeHYhsy?K<9InEusdO+TLA==OLQfGY;T@Z;OU{-G{~SQ$L%|_k`BHZxF^lqULK_szfT1R}GqCpsh*pB}~pDLd;*E)e(P@|BBD8rjE z+(lVPtusDB(JYKX9K?GwvPF|ftqVR;(IQMh{D)6qw2HDUw66H&idJDV;xbk8NptlRt5PkS62C;%|sd85*(L06f5RdU~4B`&};LujbE#X*inb@AgpF8#P!xJA9V)(zVIkwAz=?ww-RN;@>OTi9|}(( z76S$py|Uhh<)>axeP8F=)PM;QzBl-wck;G~?MirvoL7x%6M?3}&vBaTXOvggm zF2xVwG(tnT1EgY6_8p+2qxcQp<*$Sfk%_QN_BCOgBKkk!Kg4{ZeiTwd!PbOxis?G# z24)DNV^pGK)*u7ywG{g0Ff)51ElMnL#^uuR0)SOvq*8D-|~7{$`tr>Zrk* z7D8?$zFL7P4>cOgalrJ?qMO+@;xv#(hv50ek?oqzd>s&=-1P808ga)(-wL`L(mohy+eEJsNn~ zTpX6ibk-KQAeM4Y(ifK>F$;9q7Bf>j>w-w+w9r}QO=i&!2V#8d3S1G(IH&2$%Fmc3 zIb4d#ubXv6Ea&8%W|vR2r90e@X|7|tsg|qH(o@Q>m~D0V95Ycj;-*@mK1WXln@fR1 zP#x;PY4)tt%fkJL7QP zxAVXx<#RIrk|MkOIS|I>Et)zo>7iYT?^5KHtIY-+_ATnBF7;HUsISoT%io(lc4%9a zesIK7wMu=BUQoV=q;|NosJX|-t7bLlI(=995AaxEPH^)Mda>51Z_xLY|1taH@OP1J zJ&MFiRo|lX%Js}m95J!<`g#&8O)aN`8;rS~V`wbD9z|wx)C#(&+``<$k+=G4y^u`i z%KCwH9Bm%#xHERH9^y?-mnjuB;5nD;=-K79N85sMbXc z(hrp%)X#K$7~6U%%SW4mzprR04>I5G_$7Ag(4-I9tLFi|v7BlyaD*);9%lQhveYVi zb9uCRoulXCY@c4=j&-s}ivPgwp~>-cwB#_wuVy{xG5t(=k?MJyBWLm8;TFH#4fv;u zw(`~HHywG4p+}tkbF=Z!6z9t`%pW+)7RMfG@z33ef1$WkzRCQxqkOTr#yo(vN&Thx zN_oEdH}>Pjokt1+5Sux#=-114ng4YBzIf)yYycvMGe++zFEKZCvW)X>D4-y6Icj=e zd4;*PlYd-(!z={>ELwCRi86O_S{~QgPyoz2oVWCQBuKSY{gFOW-eJDh>3&@EQFgFuoB9*b6J9aj z>h$*5v!lx3j_tDlDPEV~GABFeFF_uo0G=I3OV^YSnAbQtE=fGr6;iW<^A%_#9+*p= zm`f7xV;AP`#D7zKD1Typ&WW>R@ED~#e3$w={d4(CfcM$61iDf$lw2sARcOm6%!0eV%ys(oMKGkjGc8`+ z=uFM!;XxKdWQnvLSp|NK>Zz;}wLSwTvO_L(-V?7YMbTJ%^&9_15CSsV`9Qp{w19>X zaEurhA~$4`^QHKF=`0OV%7HShMLx)N&QIbyr3Dd)G7h-#h=P$joWIA5UoUB zao)z7ki_(O*KtMYOC?szHku_Y2ad(;NF}SrIq0EeRPosY31Ubklj2P zrLDme`=UhqfTb}Zp|v?HTDuSL*cU50j0|weOPFe&jMnbQJNLzlWXMRDeF^R-vSPHg zc-Ou}(P`ugm-7kPCnjUGb$Itaw&*-E)8%18>xryI+5>pcz7)|_a;gYd*_+;1Onj@S5#%9rLWRFYfQsjS>xS9q|AY+T@9a80Ta%m#)N!A=yFWR?F z^cnfuMZQ%0pYxL3WB7%PxYTdRPcD|QEB^_XkdMnk`*w@wkiT7iEgj9@`*z|uKD=+Q zXn}=+t68FZOIEzL5l`#mi^6szT|E=iTSnqlQgsAFC_-2`07+$Y3!9~qsTmBh$l9X1 zF$-8Lm8^~?S!7?e2x}4HDoRA3ic08cmPPmN7q$I}cRiWd@ZGU4=7c(iaX?h$VX?~f zMk4jVh&aVbV4M&wvN+`GzbyasY$D<`Cy{YVwAA91>+)rtrwf)L&Ty79&WcuATyfpD zY|it|GVK{WyRTiuu^4dOx6J)amrB{HPGWS5)>%AuZCjRpW@NeQta>G|-R4@nalOB+ z`3!r7s!hF$(GB2n-&{X0n>aJFLUm5PhH*<&Y@z1{TTX0cvsLZtG=>5^mMz>om#4Rm zuvHyuE<-7*v2XyA&gRyviKg?iwS9L*^%g#E>z9wVDw8@c$PN-8i0%!By787n&pIdP zcH-CdJrtd^SmGvI9(%SWIrk!dL*El%m09B^UoJlDyfXI^eq-Nr(Itz`ZtCTOXIob0 zUgq$Kz-ex=+wJdi-8NJTt4p23P>cF3D%~(E(5kW&@)cQL-y6}O#Syol6@_h(RphI( z{J!_1VT&_v$t$|sgsaHcWZU{aiAF81x$Rt0OPpPW=*Ayuin1TK=yR)DK|IG^t?E|q zV9bc#TRe7aTakWlWVPzLdKY6>q_ueCc7H|lIrbRTZYiiUi+)&W-QKPkKG(IT2GpJy z|3v>R=DX{&k?oY!np+$YWvwuSnriW9)0Qm$p*%u}=wD<50eUyqk%XjV%lUgri zWoqx^kM)IA?6myh{v~PZ!eplQ0lu*>yn<(G;9-_r*q4x%ixo-xA}WNI<{qxeDV@r! z4wbB_FS0^nN$`kCZs?3!*YQwx0zgUgHjz9sl7~CH*3~@X{Kr^Qaom#XQJRdrNLgPq z%sIta3b3UtkCVxXK;lZaFgwFoKsXCDL^qQ87f~BnPt>i9j}D!d8$6yTcV854P_2t^ z13Hy!mODJYC(m4*-GCV3v@_BwdM(R6c4AyFWo2te@aOx|EAChx^zdGpeQ7eA75L}^ zqiyMsWs^tD%7#l(8#|uMF7|Dx7_ofjk-l>HQrE_s7o5wC%@s`rH#~SN`3KE5u}0Nh zjJ%3BmiIi4fqO{(Ce};!RmQf8PnIt|Zmi^AMr~%jQg<_UR(!Mk%ow-~&NB0Vb;PfQ9On50?b>aB+b6;LZ%&!CjTE(j0>%YdM_ z0%_&unVizyCCnvjWc_`W6=v^lVLti2>|x)Didd^7or|v ztHZo6oC(J5iv3nDUdvaf+~Mrdeo?o14^|wq@&kt6iSCgds;}yIjG+pt6~n7)HSszd zK=jn_8N(H)td@EG%}lzk+}ZI>_Ob72MY|Q(>(1(i>ruNpzRN!K8IUf68{^y6!`HiZ z)d0p31E7VhioNvLAa76#Yi2oG1|Y>))p$9sNxacjsJaFF+GoDxp4CyW&^7!UsNF2U zxnO*#cx-jnYc;ra*6(KhR(}T$)R$J*K_OlDCTb6BPCd)`Qc(iE>vecd$W7rM@*ml+ zzHb#%RxiA+t|~G(niaD#_Ucc7N-7K(x&Ew8v zu5wy{G9a0yy5Gv$tDQ$!(61{tLb>&Oq_!H%_jb&0(&;x4!%+lMOlrfeC{ST&((5-C zqfkDi^{Jz`l*Ju7TyvPI*d9eCm8K$lD7+e7t|8N09FQ4DlBLG>wD5BE2p}9P_C&2A z$y3EW&Lz3}1e1Onu|H}vNu4^_(^8TP(qH`;aVV;Yv>**Ccjl{3E8$GMn1QM!VbbXG zdOpigW5#q8FGd|Dg{JZ4C;`hz0|ss4U-x+L6Vp1ua$1`--?HCboQ%3m%1fJ)PYSfg z1XMo>9ES!-`_kNdvr4s4f=$1#cs=SV>3mvt?_{aggn;g+i1SeINDtFmd$Y=N?e5tz zL&Q5!-$Fg`0Kv;1-nXAOtP&>%qIWv8; z6$liU#7q+J*1Cv!+I|2YR zi=SSbAm8UU547l>z%&68n0OZTmHdG_I-soXux|?MFA~qQ*6}ts8)2()qVh`&o{fSmt4|pY=w7idNjN z-_LU5`qvy4hgkpjdM175_UwMdZo~NgMlsF0%-d|O`<<*>turB^zgZjuEZE*_v+qpS zYF!A4{Vn1I>kE#tYn$(|>r}3qWz1G_lJ!OJO=~CajMS;zG%J|x;xy|%@2a)LyX*rh zcTEzrQ@qalv3J|r^t&SmR34g3hcAnBtToP?;tmE`v=4lYl2Tq2K1@_p&D=Q zTIOAVz3%v(nlU)oawyk_klBA`DxZO z>8Rt@Nj{e{^6$+aM)-5Hna{)*tk?NG$>_XSaD;4$-_$=UzG}VQ=Sv3v(8v*0fMzpu zOx$BF@cH0{x*yfhL21hE*NB~tj7e~rvG-dVasvs#1}eU9ecXqZDZcM~H235EeC7x7 zW9xAjc4jviW08ZKw)KA!k6K>?EY-RD^(P=9+ybUntg*iBb0E|ALBX*OF@9(NjQE4~ zQ=jvh*$*a<0f3v4#jIFs{l@2hX7dB~aaCy3yBoj7v({gIK4gwQP#*6HYbxshC!S}c z<7G^=#5S?qf(i>|7du^1W=)3VaThHBrHrQ55O zA(&h-)4I~fW}WYotWH(S+X*J2svlh$WV7A(OV*TXvPm0Bko03KX*OlPX6w3%lkm2v zrkZ|2Wt7c+UsoVSS2mMfBla_$Dwo(ueVLWz51mis#t`cIT`M7Dt-h<*DIV6JU@g)d zV0u=rvbpZNXPxdN)JayXrk?3txz^^M@3D3CNA)LJi#3Ot{*@bTUi#ix$A5(Sj}@nB zUiWXREuVCkb6c57l|>h9*7-eI-}$)U3}OYh zjk&7wnoYHAdi~Vn$urs&g!cZ_O1Vv$pVBYJDNmJc9jltI^>447w$b?A+0gKGL{zex3ka8$KWwyqZ#N7-?K)SphI^A) zRQbx!+*CqOKd(~X*3@4=E_|fEot37MGfOK?Z0-C*v-u;a4i-nFV2Ua& zY(4x}XDdePJ6K#zKX8iM*)H_oldbz~c9Tnbld`|2l4!fg|8RE5v-&vwwcI<*I^eTU z^1qaw|7`X=B7-}~JXGmpyUzbfcIUH#3y4haedf{1{Bzs0{=Z$`!U9 z{uvvGpLboX*}#3uJO{`#Js>}Vd_lQXlg)j`ya0U3D*uxk6JK;)s@ceW!Mt3#*>>E& ze`D^Ba&FrtNw6zNe-NYY7U18;ECYX0B>ufy&R&P>_)?Z<5(Y$5euRIF4$$K{G zzI5L2l;1Sjuc~aeT@>&T>ix3dDq<`51M_j^8QY|QOPlgv&R#`q1HU{EGtS#)20Yx< z`ZDWU&DDWVOdx8u-5T(D)5Ob>YpU&<|1rlZdu#;(u+79*>~0lc=`$xPZ`;-dcy3OA zHPWrxq4~<3tW?>a2#DL<{EB^D1sJo;smf=z7XvnJo_IBKUA0T|gE?I}Zrc}7wVC*u zeM42K`N;%iG26!hZJX0ykK9o0*1V+{K>i2fxBZ)IUsG<@?BV`l{;vFCs||R&dH8kL z&6*Tj`%H47s3t4z>#l!We`V~`#) zuSs{nunLKGqa^2aj|qFoCEU6N2hwcN0hGL)sjk8jt1TtK2GCVO=tTc$Zb_;^=U;KgHww6Z1e@n z`rJ{q5}d1>tOmTQQqjE>Q7&2|gbT%7>qwufOtgw}GB;7v1wQ6n+eq-=LyuGXb89t} zfto6=U1TtjBxosbbB8ru12xrL`^d1WBJ}(~{k(KHXJxL0fE%Dyl>&_dJ}-8nMVVVe zAPg|8iY!CXfuVW)3Dj-YJ`HhTGqM)#7MPsZJs|{c`zBznuWCRC2ky+9n}FOQ*ETs1 zu&NASMFk$n^LO49#@L^u-o2Z%e^-B>byO1+30%$Smw`97@ZX^xu#Ra$B6n7OLw^cDr-BxpiTJ`Kv%13(nJp2-io!02omL^-=h|kH*=#S_g8)T8yEC^UBvtP zhpZEtn8*WF9zbz>10=~&k7{1tOb)vh;4v=#j^>IuS?kra8Ms_)+YpgWDUkM&Pj zXEn)@m#Q|}y$rgsmH!d-l+~t5i3Hw6yH7!{fCRDrDeIhOb>xkz-FAP1{%+NsLXD{8 z`+-`pif@-hu-N81RWO3+;Bq4Ssw(V`29vgBPfdr~b=?Ri4R zz+ly3yMW-lZBtW|&&VcYnUOC`cIAnKWln(q`l$SMExmzPYRz0=r2+r6({JHC;b^x|LGMMzz z?t1X&J-g)$=iWA+Q4CG5(y2kESFNQjNekgjfDL=+v)&JZphn$VQrVD zW`J8AXnD&qPgj3^f6(K(!EKzR-1N%8YWdL)FwY5Lqq3EPloStp3@d)Q5x<12NSH zFxw?P4cEX9l>DgaSoNMg@=LNMfidIxasu3vg%e$ z@%)QB^S{l0Ks@2LMkZBXz^q&NWM?PvzaXA++agz0U&HKJ_Yc5CTRF7l&7FO*d{$PJrjcTq$0&q0u@xr!U=|4t3t6plZMHWe;$ z-_`ts{Xf+!&2<3c{fYUu@bj*TA0z)$z1G}}+*>{0UJvkziL>l!)tIIy5|knAEkZpD z(`QGfRpXl8NPzIQcL5MwT}SETJ+DT zFC7z2w+HrDI|$-KPZlQrr1+=3A>17}Q0-~ICbaF+-k+$ithbuM$ivls_8UWA6)FHs zmGw?@Kk`_$bK1_(Uxjl&Av5I3rlA38HQl}f07yfA31`Ufn;s6FsE)Ni5*oC-5MVvY zADV^-PE{w`p9xLg-Th1WjSOI!181vK?5~CH+&%XT@|`@@1R#~w>GpR+5AP27E&NXY z)bxDdVs*Cti_ojP3x7j?)G%0p+E~5C{(b0^-JQP+ejxtGeH97d-u6F3zwe&;J^KSO z%>~#(P|-6CvjoV&f?0%?s|K_C3VZ7?|2_G0v$GwhHWT13ywBb#ECE3HvVLm65Z(?9 zRv)$x2+P|uH8=TF`;`DlcGa&C^suTu#6Rp`su|7uNPv{HUl!K3C;iXJFV#2A$H)QHALZ|kA5H%Qgt1%pC1FNIozEx$RL0dtYN`jo z;@z<*@o(2$%}?%EU@CtA8bQpW+P{=PHNUvuA^~>Gz9TH7X!vi}pPJv?ACdp7UcTW* z7_SHlU{<*RRWN@QcnWK+J*=1 zEu3cva6ZktN<&FansfN_y`A&Q-%Kwc>MNlV8*Bi8I>PU+m3ppwZ@F}pW>-EJUI_3J_Ce1cV zKS?(BMfla?LO^}+hBc#=fs%aeN5EsqH{NPs2H*-&3nja-Kf}Kl&*Wr$mF;b^#-DmcQ-QUTK(g`+gvHYh6v1X)%Fm}XXJgHl^ovb4YkX0{O0 zY-!_Io__EB{sEahK0MF&zP_L9x(rY=Jcd{$T;aDSf1laL1Tol}kuh?E& zZMMPAi~>|e8pzeuZ?+%Khdsn|bJ^ zGT-j(s=gKH)}-ujpTPzOTbX}%Ue&;g8*9q;PtJhMM?1&@!SrWdp_=2yUG(SR+{ye6ii3gWmZ%(H?%%e27YXbz7#T(!^<4xD_lS+s=)CvzlV zNbDW`!tyK3vrG#O&gSTtswzjv$gtxTFbEB5fSGYIyegDqVpvNB9by6oF*6~iw#vtm z5!O>7gV1aZ2s0^0QiXLa4*Li^R3=*k(i|Ies%nknfw1`pV6$m<(9UD=pkXV<5z_=e zkT6?i$3fAlF%2NE`*c{;0p4uvA_^#7wJS|ba6A{5a-ecRqGs8VI>E? z&YoBVb*Hb5xm1{PZk}xNDLn4burhfwmJ@l^&F7R zq5Wk5W{sHks#3>qVIL2e=a~L7c$qhJla}vsoEAR&pu=3;5~a5+z58y}VMp6=*Mq5Z z)k~B#dqjGYtO>KvSJ1@rH-NDyAImSvj+^k zc~gv`O72JsuR9nqPq>ugXU>UvQgz;OeR$`=ih1^bQ~b@jG5uAS9rMBm4|dHH{!Ixm z=f@0IjeIE!|9Nn79>f712y=~kU3J%y9lrRG@BE4T9|B>lZgZ8!Q4o$klskXeVGIi^ z>V8*caBK*t9BQ7Q{m)nstfYIis^9TyI18Y(!~cv0!$5Ce)f>kL;haP60AU>qft7WC ztr~HB8m>H)`{(d7w7X$P%)eD%9EZYt4$1zcEjIvUGiI`C!tq=9$3qD#yO%3h$p9%? z^@r26h}nR0#H~=SmhJ7HRz1tf7T|`d3)Cx=Yh?SoXIAfC;N%QAzjmpwBPWc0Af{&e zVkfVNjKjJGjgAJ1?qCd{=bS<#b^#R5-iZ=nJ{$wBhC7iW>JCRN6av7^d?aRZwTILC zh|a?m3+MP?k)*)^hAR9Hhd8T1^jirjZ(?jn>cD*@KnO{rEm z#YXZEM1U})X?Z*b4*J0Wv9Hz!6RLZgl?2%b4yHGb%#@M z!NiftMG$xNTG_=I+?=~kUcVO{oy?}X8`hdH#n7wOPBoF9V2fx1J3@17%%! z)Sk-qu>TfstN!Hl_VO*DKBK%?V4u@nR{h=SQ{J3e&--$U;J;&KT%D=K`$%HpFgWeUxuC{eXMN!zzK(8Om zpfAH#R@*!KMdhsNU!n#=x(tj4)hnFCqmEQM*yGSjx=aoF_Ff-|i&9i3*sIVSAU@ae zt391JMBS;Zv`1lBOqjk~RK2zPVb!zBc6&Akoh9q(mR5&2?}+NzHEutFfo`Hdj5%E$ z?#zzbx8EHomSdY>Kz^*oI}3o8n7ee?cPty$*L}8{;@l8L0UBQE;G-P#Da(hwV!gc>}mIf>W$8Kf$Zh*H_l&~D>HSsR&R1PMl~Hv{hR&vcpm+E%+=}w=hso> zf!cL;0hE06K+N^(V&@N0gU7o576woX=z&)|s>_{!Mg2TB`8OmGy+!t_`*wAObMN;> z$9)}2fkr`p69X2C&i2v%$BP^$0--FrIYwR0bw))e9dC0e#X<||mKc4t*!f4w*5jiN z!`QJx*t_nB)%DKN(VXM%|6~V^6~RWj`>LCqlcSZ#bN?9*8Y_m4c0a3DI%h>2jyM04 z9XwV7``A5DecgFm^cXll4TBn3*yrw7)pwi^MMFVnWp>EecGy_Ax%%$H8gRs*gY$!- z)I1*ZuKJO)Jemv!d0MEU%=|4T$m^MNYjnx@`ot&EU*~{S&jYs$vD|BnrI$ z)ew#y%q=FRs(l4}4SK(9hI$^y0TvunRyDZ-5{3pZK=ncn3`U3%RfRaR!_Wt0v(<|@ z?yz++*Q?4MA>rtQvbkz|jxTJttgougu{0cdh&~_p4<{H_8uPvCtK&pC6adyZN6y>b z2f_2r-6=a_>@Wx90?4EQ*vZ*H349p7+el#0H($%xiTb(%{~Qtd-MRu4vxihcyttw%4vYb z;}o0(xC+myp}XOdITv8NZ`|Tk!chdJ*E4rq3g4TlarEuF3Y!X^5 z^H=AAU+D&}j5~>dkkJxZpn5CE4AbI7+z=$2jF!rR)Ww`p*mK-Qc^E z*n3<*w;jojMW2+dRPW?W!hYd?awn0HIK!HZ)wsQ!X>bUBG0)efG!A;29)<%xQMf(c zpI78E5eKcO14NW#3rFFTcx^7F@yddEQR+(0Qh4e4T%H~McD(Y8ELwenvjQHDKf-fB z*>@h3(Q&ws1Oz-5U(X|=8YwI}jG*RoJmDMgcX*X36qTibk<=oNKfD0{hNnX{QdteK zSals|C44u2YRz0%R08WPxV)Oxk?>>qWi=75!URgAnF6ji2`~5kN zTFqIwhn&;!NWyVG%!8IOj=!G~d zrx%1NLxFHIX*X}jf%Z_i zo=_)<@Dip`I?QFb@0<_t7lckhg_r#XN~gIT+_T@{9|(hjE-xX-xu5l~x#)UPN6Mxs*pzY}tFeu`j zxRHos#FEUV6D4%0n$E$&xdeoe=r1fnPtc(nIuD29D!(d-6k!`Nkzvr7YjEyd8saiB zUuZ^~7zV9b0MgIW5suDmp#uiTRO)0xHHNzhVI(#QQ!#3$QZEy$1Grnj&R8RCv-8d3 z^w6caVD2`=7otVjhf!s5dg&)|tGK%nQ%F+_XZfNwu^z%stHZblK{>6Hi0Iq6iS-C} zMjgdHj#y3#6IJ@6vRMY0T#e`Q5niMWk5W(yz&;Z5(%gyLy?qk#i}X|6T==~J`ig!F zx0k!Qa|RhIaSzPiGWH5~2X`NMt-&AxXfhSey+GS~Z{RiQGWG zBdNrq3RxDIUM=GKBMZoHBsy$kAB6pLgO6LZlidgSpkJR;G3wwg>Bqatl z7O{q5Mzw-VMh-JWq!mH-#bZ^c`qYiw1mrn#inKk5U2OQ0^aOXFyAG)$mq@<`O%y{% z>CbSNxS7b)o`5M>`h{?MRAy4QayKE3g+;RR!Lem^lOd2Y^jFzC^&{}Q zBgBg8LPFVPXi!)10DzA zF3NxApSbVb56Bm>ohK_++3%+OHczTw@BNB=AKQPj9k?LS|C9Yz{|DZ20e;_4eqA-O z8wx_K@l$xyTp)3aPx-Dc-2fUN2G*$eD`(38)GX(%cG({{`?NzCu0lCW zzEHC|A{zKL5T_HuR23YEeCBBckL+?XF6?w=80r9PHhhuBm6zmlA@1OuyJ5lulsQ9- z@t(Z(E*){ZPTPRQ0m|H=C3rNC;i8YLI~@@&JV=>0v{chEKiB1X-1XDt;iXA)O6NFe z0(mSKYnR^MgN!mg9jF&t-c2{CXHLni&=hIRf7Z z+htL_XT6Sh|F9A`d^FL#Di`N?e7)rVr-B*+98cg0Tzul0^?ea4Hs{43jrL@o6x7b{ zs<#0^I>m0t1yAACm*e9_^&ye$Bj`nPS4|?X*=1e)_4@Ki$WioSxx0o2CX3DS{q^mU zsPMUeF+B0>d6v|Y__6xY$l;@7f5E*q8+mtt{TO=29biXeOXTk&={&VdO}ytBIsj1& zfcL;};yrSa$CJ;<07hU~I^>7X<(XVA$LF6hN12Wp{vHazZ{fXmxfg%@Or>WySn)CL z&MM?tT^_|N&Ll*uz>)`^dbEW1(dA|QoimluC?Na8Lp5c*?=GL>-<;7!H=bZEhp*D? z;vHZ3U;OVgHZk^9lodm(@%wnwQS&IvWDzmKDhiNT@CSMGP}Fg(tULx%jdqepXxKbE zlp7^Q)+OCm4RvNj;g9hoDu0R-<86$o+Tc7Cjj!T4q9Q5BWiT9#V}K3e@H`$0l}Kp; zbCii=fDaKszL5`#LFtjnz!Tko7;@|s^8!(Ylo8ngPR&&!<*}NRAkTO|WwzV_kK-x9 zh0vVg(N|Yd5b^}PipN38|GlT+kwO1jn7k5?s$sdp6E#h|B-8~;hFphltYNvqlQk{8 z-D#+slzsBK1Qeg;4yS39JSM7_QZFYG?BB(E45i?&@bXZxUf1R21c(6bDNog?ctxo9 zlzw?Tfh|CL$UbLiJY^ z5hrS)Xa*gx=5fJLn51YUmI|R51{1I6iBVW;iQ+49LJ0L`Y{Ea{aRQ>K9ECe6TQuei zFAeJBHKG!!EeblxBr^C7wcdKlyNJr9Y7`CueqxS4BM<+acNMjjYEkr&)I&J|@B+;s z=n30Ro!T&$jFPYd;afFtc=u81J3Jm%g>92Su?!Y|h^Ivfss0T`NDAQ=LMO%mmScHS=AUC*+VT;_OdT!iFmFvuhT)dL*Qs?TQng zri2e2#Lut!$2BzJW6IAs9AriW0~i= zK=a}4YcQ_a2~WYDH%cftxe_n0(YV#Db$wxGH1<(cat?tZz~Nh(_}=)HI?(`)W1PaTsoC!eNzD1fH6i=#Se$(Al!zL(>!L)@ zCVIj|Y-7Cq41Vw76RwVlQBAxAY$J!lkmCt80#~0zW>a5+s*yuwG~i=Ft&Bn>s=Q)(`|<|Pg`btMYV zQIdyRz`>)#b!X!5CYvPtX3E;3i};M1d#=Y4lblr_ikhJ`h7!-H(SoCi|2YTy*Ue+s zUbf;l0TNK2NIoY^!q&8;$S-R)*F1A=P2`x$e#y_X*1@l8@@ob`-_pKwbCXdmtW>y4 z!>X~k_9oV!BPKVtu)aONjxVYC;QAu5^IS!;{RK+eP&>Y?=9}w>#KCi2$-_-v8|0mu zoi&rLzY>3*n@omWL~oSe((DB%qB%)Rn?u&Bh4a!GcR-rd9B@SPZ!TIpaS@uq=)zwN zhq@ubnW=eg_9gV~JNNLFHTG@?hO?Uo)~YWlGvyC7Cu&x>g(n?pcA(*uO1fOF;nwVS zaibIyqQA2h+36k0>Q&5*#Iq=7trkW(T4@v9K zcclm~Q#KDh!MD_`ck4*nb>3!OV<%c}$X{#j)*N=TO?GWbO;ul0Zk4~)JgBiAUy&Tu!b`=fI4s5xURxt@^GRm5^rfo6 zA(COm_tuZFln23v<&@?X2zaFPb+s_uWn;J6#~AHMX-# z<>OFGP21n1fPQFGkw*ZN1zQ`oUAPf(op9N)#Ay0+;ey`t?7=Ky04;V=FS_q4S=|LjfAE7L;zJfO;p zztR2f+9Q`7GI95nm2!J6hQG<(xVGt1YNq9H}Mq>)cn-_9^EwP#P8wj?z;23inuAy^_di z1WyJyxbOKb?i*-#l$8vWmc@sAXjAz2SLf0Om0b*>mLeGPB&6{>+;`G`D{YweI!f)3 zH?SYyb3aB~)*8VS>d==Cp|uRY&Rt9kYHd&Wp@WJTzJzSP(Y=wD)Y`@@)kDP$e?lJr zx%-anEv=)>Vf~mG9;n^If8+ju#%XoW%I+DHz=O0!{1Nx3G-YdU)^N|56dt18&L4BP z0`;RgE4z2B4!%-b&foph{ReHVbu??ZckCp5wRR7Gs>jR}Xq)>cnn-(UXbo`xLOd3w zc(&0unI0NW4}}vB^A~!+Q^;+yO|(ab`k_cdCEwn|FD1Xtyvg*)aAqi)P{nujh)g*c zyd)cEP|D;uEtl`&K}~6DOU+grlyW&iE8u&3WTt4^B-uElQXwa4#r!~z!jzG=fo!!= z*&vVAo&@C&`%`9LcF4i?DbLE|wP*M-9^4ey%c(i)K4qhvs%_xMd7Mcp%ieh0=`pJb zo~Ui&CwW{*$+)b`X?)B&2T#_v@Y6hQrtG^scQfhw#Le~}2A&2*nf(-fL7t}V01dmpQVw4Hx_RO$^de&; z;WmH22V~viE55m<&!CqW8H9WMqaOC_{I3+{PCQe7Urg6_^En>Kb(Aa3xw!bd${_|p z#}|57=We<(kgGN+Tjg2WUj8YM@O4M7IOO5_m2L8Dt&xA$gSzerFD_5j&$-OlOnAzl z_APDQohy}jsOPLJ@H}ll|B6S!x;IyJd5zCmSK$TPL4K#l$&Zs)Z1U{~DA$Iz5Z(Y+ z*0FVp25dfi0IiZkmk#l@9>R70SBvr|2B6m&MTB9#(W7x)($%*7(ihMhj1s~J{&Nr2 zx{|A3^CwuMfLkS%ey98Q^llk?A#_9_!Pt zcNGbTDaIiMfh>@E&U}7s>R8dlFtm?xmJlyE2dXqLm(BzrCUU@yY zcz9&&F}zv3R-p7$P3^fZE2h0SJQ+GqNEN6&i=PZ%A1GG8S3Z?r09|yqJom4keZ!$- z!iN2fafy&Ac;H#R9&sa~B)fBy3Erw@3U>E+o?IVxqp}3`fz=PcteqbC*z^4Qv>RO| z!Vi?^Lstm-f)}10>v!Fd)Y*JQ56G`+w+hUj+V!FvA=}s=(J$oJwZ(!_&*$r}-zeV( z`Gg*nw`)rUUp?Qi@4wN$jr|F_KedyvQ}D}kV*U3UU$>#4!!P0eOZNz-cuh~6-wxYO z`)qhMbem8ifOsuR^K7SYH+?p|9=c07ELi9TPb0U>w$r{C-VEI%07HeBUs^uUQ%zqC zZ-*WbssxT+k!i=#ym#5BX%lv4GWa!9V#3IyI>nQ5AKNhxkzX_4y* zEfE1;ThlDhg})=E9V{K5#fv=8pIeNIugoMUpd1JBcVYM z>vcLUsv~!e(>K-#{IRx4kmPj%1Rdzg8o#mL!=Gwf1ZiG3)An`D-GTbf8ikv*N&(ZW zH?6*dxTEnq>jV6`_KG0i>t))Vj>;XVAFPk?7uxHB60c8bZ#r~48h@}p!Cz`S1-rcd zmo^oYx}yGNeTKgVIhhB&0=n^ZIAQ%Fc>%`w7a}keQ$nsMB3H zq;$4}mTmO7+@jSBBwoQA$~q^@AwSVy2xLO!mwf`r~P8}K(JyG-k=L6Iimz2K?Wr47uReY;dZ z#b*2HhM3I7Rx0VVwV&9A#B{s;ZTvQF_w?NslX8?VPX@1gx+ z{KGPZXj2REUbN8@Xyv9qj8iPrh_h-Jdc!x8Z{>Q#Olh5}n68@x0w^#Wb8gwJxCYd8 zCg@wHXbbA}870yKbsasaN(tG#Dski6uL)jG0LM+rd)kb-r*ywbdxUbQs5Q4DP zA!^CqCpU)OuH1*3UN{@ENatFcxx ze1NL2-6*;pvY$NzGf%Np=U1ES{e0u~+vWQqGcofO4mxaYk@x$J{kPlqvq99lVwoD0tU=X z9B*Vg+RUmb-wWqwb9S82%9l*}!f`ncowRU#{ z$m~#n;9J#f?joieF}e1FcY6B$JG=wfIo!oe58}GotKM7FEg;xbHD^3$Dby#eR(`H5 z{pX#@1CY6xB?@m{dTp2Y(e$NvLk_a%+D=BGb+*MCZ$UcxZtlV1x#RW-U)`o!gLgwZ zOA98iytw!*5rLTJ^wD)*v)JGTM?ius6G7Wt@ML;?Lf#L*MW)Et=ePp{%4`& zZp0zgzleVnAXKh))cbk*^}FSVAb(<(0d3^rym9a0^e1=Q4we3CyPUa_2wI-KC(^&) z{d#EPPumsDj=g(or~1syfOfeb&R#IS0uiRGsGaTeR|dK(_wew7aYsai?r<&C2bsY? zbLKE@;dsRfkSqiuOE4KZT?2>J3tOEP(Yh10D}2H;j&wP&anM$n0;l8Fy7*8tnz~Zi zYG^B5LC^_my?rt>G$4-zXWNQUkaXhOK%c^lk*)!@+O`#`h}E40y;#FBGw#_P!P?nQ zSrHHX*ik+wGMqp}L!(_G3PIH=YRNt)Gd!2>1Caz&S4#r1sW#E)_A%PMcHq&+xG8{p zzBbk8Mn>7a$s>@(7in;$y|DW@>d)=-cW} zPwVcg5;{^rXeM#K@E>$2eOI?lwY?KH!g81h6~fUZdR=!!wa|$gX*oh%Ec8IHr+0Q& z08oV*WvL`C75bs`=!4x|)k0@#wBw|E~VZRsHxFi#VlQE!>Bm$$)CydD$-Gafo`5+;ar|7Xz)y zfa+Z{twD0K|*iN%Z{aL9t3pO(UGBW4SY=tf48 zwvAuvVY`lbg_tLNj#e>Bv|srX9=55>Ys9U>w*WfeYkk4YXuFy~bha4Kdd6RLBs&GsJO zh`6Jx5YEQ@#YF3JYlpqZ(-B>|!$8wTGAX*|+H9Zk49h@prO+PZ$IRE6YfU~zaDM_2 z)e#fPJg$QYX=sdAtk!XbE*L7aNtY^AqgxpYtxh2H#$+-zI*Aa6X=N((IKcS`m@`0ImWXhE ztvQOvx^u#{;D_bt2SjSW*3F8ix(mXauWx~9VLLI_pPS1x5nF{>m`C8hOAxF4xp~az z#H+#r%xmU-pig51#w+Y!=&lP(FrS!jz%SGoP*{L?sp}N(!u*dpwP&tGbvSy9mDw)9A7BSxu9|_N3a9R8wU#Yt7a}i=h*C%YkBxfmma;3vT*WT1R zbx3QeVq9kxKE#~K!uLw*aG|Ybif_92!e`*(=JXEKsY6?LD1Ly}_E(s@Sx0&uPBt2= z%b63zaiJCS2weVzld6^6oy=dvAHq+V*ICesqbE_T3U?v?)BO~F$9&3~3b}JqxQe>l zg1_At{0lRY^}YA&$%$3AdzgQariiBbLN+aa=zFSkwe4Q!RMK?O9AEoQ{tt^zO{})v z$Fw0qM7CgUzKq&}_L zi9&sMZuY}&WI=jPlm;DIZQZ-AQJfcWHSwY zG8I^QGm)fN(MjJm*#`}Fax9(;wmKxLsKGZrTVY6$tMJ?!rW+|)bip?rIKO#vEP)H8 z3(`8#Ro|`IvybcK*zz!e#gmjK>hRr}{o7D+b1D&2tMJyRi@JP|W-m2{DA+`dP=VGn z0IeX-4lhN83IRooDBCP<<#~0p0A)_ zvT_W4&5haAaRq`59xXwB+j7SGMjMBz;|+*7 z{V7qH-=Q4nO=>Rv93olYB1-eSnX~Wl+;ga;!e#_buM{!;dUNU@6VEj!6`r@Ot7FIH z`aRFN{pSVy&%`Ne6ru*AKNh=}B92Db2Q($t3ATVn6KW zk|)0HX4-fwVw3)%s2&&_IZxcrXQzy}A#(J6q9(uO&B`aa=Z90qFEjh+JriB>V{Gnu zB0Eo8XS`y`Bi-6}&989t$diHd>UFJG6$Sd2qFa9ZH_v|R(1J^Cy=Dm{z7;+2tKN)w zn$V&GtO~P`WEJ)Lo!%Vvl-Gh?&%MqpCcPIu^}Dp0`4pDixW4cPVw?V>XwdH_C){kT@a>GJ1k|S@1hTWFE)2Rt+;@D#87`^F6CMC#q9L)JBWk&x#Fe%0lBPaqZfzM$L}Hz>lcW3JNZZFa-O+g z%FYsB!O?O z|2B_CQ);W4*{WBF^=+5}|JS+qO}tiY7Pp5fB?XJO`G3i^nEF~(fCyrqB&`zf_MehB zqu;I#yNUadd72b1KIFeJPf5hJHEt?=ggB#*5+CqOTrp|kG!=0 zt~Oyd)o4+W$l?^w;JmW_$u>w1rcZHJ9}g%;LY}CZwh{g>N)QUHqW?u|MzJ*;>Z5y^U^>ZqA-v8 zoEhGcCm!&>kyrM7@`~`()B)x-(pK?XfM4>T`(7>0FU*;9UB7C_u>a${7QjE5^0|w|K&{`n0pOZ5c|q< zi?mNXJz!pbOIYwV_7==*#U1?t@!WvF^MeM;uR*qA-YB|2ZlYa)TYkzw!mZ-1wr`mr zRYCkWpsY#;zFwQyYHMb8lLkai0nq@va#v-u#?1%~m`z**lJk`VxvF8-_z*&;uN9*M zvhocBUpwOpTkRBjy;vL=P?$e5FrZQwwptav`jg_-0sHf3zi_yYD{6hGctp|!M+a2r z^KEd~v5$zu76VBkCIv|ISH7sYZeL6tvGkFe#EAjt^V42*T^ANp-&>xLTEy!EI`VhD zu(@GhLLF5+s=6em2WazIxxP0_OKd+d`$?C@n*&VwS6;MtzbYC3fEdtU6SD%W`GyzG zH?p^le?$!G+r?!8Kk~<3jNTaDHvS3mN`FhdFJNW?bkMzBsMCJ7ye4&t*#V0RJO}CR zrtMU=;;sIHxGKQ806!>c$Cb8@DTee~acuymAZIYOT3N~+XIe?U;*+2vRDtT>wXlr( z)$)#H5X%Ed1$7|VQdma)W*H$p5uXoOU(h*N(P6)X`rR^0>K9)Q$SW8e?CKEip#HFY zBn^r?0(KVs9<=GSFQ@)%`3%UldjZD^mc5MV6qZvbEMp{#SRWuQSoyM|(|#xQr)Bw} zVR2u;xq_6J?VaqMm|u$T`VZoPfExv6FDE-8yD*cAfAwF)<^XMh=w--F_AbnSil6## z;@zVG&kL@mzt1wUU--h}MI{L%17 z&lHJG;G8W>LESrh4+a#X_e__}4g7mc(5v!W5YUm`VABJU*af<6NqJSIWbL(`meqe} zu4HLoz?QHQ^DWa}<236`@&butVC0tLuVA-n`;0bL2-!~Jw2QK(=~e1&^}g2W4WQ)` z^htgA*7Yh^>$1OaMwTmnsl+cZZ_D7TuG_->)S1@#lXa%gWaSbjShB>;}6Ylq4bW+?JHr?RVG*FmoCf_jpKB z18;08dp&sv0!maGmh|`l*iXAf^g84&`yggs!_poL4IVw~B-a89w~o9S z09az{UkzSl`&l;w_iml>*6u#G5^##~!VJm%z!O`Y-V*O)zme^&Xfjix50q|Q`L=z` z1|-Ea`1ZW~GoyXBFZr$PKJ8d*?!24+Adn>R(pKi%zWb_UT#$1?E|9zoyuJ0{TZi?q zYlw48|)m`QgcW*y9(pjaB|iG$sDZ5MzlG%d$?-c z5eYJ;0WX7OQOwQV+12At$f%x5iOS2Dm2Wn8o2re@)@X8-#1R|GI&OxkX&fWWiX-zR zC~P9D1wfc4juCDpkZUDAfVt^0%hWWk5n&~fB@!&QnDx}6K|kXd5_J8^3= z`JyBpdk;h_z_c{5(X`S)ByBeKF{@>Wt~K$g;(hCSu1dCG-?B7A5-m>9>e;Zq=Z1to z=L^d+)TdPmxIlm=-<0gePAQyW$(6!t3xOutb4PLz`)8q(g{T|e8|7ooAOkT7`%mFY zONGu}NJU%eJ@o}VtXpAirWH9byafN(~uf9}d z3#Lf&W63!zt?-Ja2n;8-{#m(XljNrzv(R8^)@O^y{gL@S1Cs05ZG~f&QT?!ZJOH_+ z=appl9qge(sMWnETQVMq1Xoj{!3qk|*4&<9$v75S)bmbaz%~?8tP!F_sWHe}Odge( zu$K$-t>zw+lsa3ot>=^E74|O3EOqF`)wPB+l=h5E-eHY}P1aPvzP5%o?C6Q+eZsyj zyl>_8Vo!2cX6+>ZlKcQEz7}g=uj(XsRl{-FZ^>`${|cwRoBI%Ts&F-OZ_iZejG#Y@ zoZb;1Hl8Y6gWTUULpnd`ujr6>6%XxCQ^TwkWY8fNpZDLP;k-5 zm!BU_oVJa~I!sN6@!$DAQV~B#SoMqTq^O|8qLz2`N2YpXr1dCyiPQ&BT0QS% zk7#F%QPyK*2Prlvd*;Zyfk)~yt$y#F?s(YNJF+toS*Wpxy znz;|4&19rB7WCjn4ZG(#%M0jA5OjQCFVHymLUDyU#SCHqVBf?gDL4p$iM8>nQfgd8L-4*F0uINW6vHc(@&b>x-O zok9N<{T{aIvp-9Xvz{V{Ne=|gD_%Ad(I-4hjnCq$Bc+u=)J47{MST-zZ7EqYGET}3 zLKP>CwDpxX+ETL=WRg@Ige@k!z3&@t9H%1B_QXl+gQAN$BMI}{RyQX!H1<%XXM?E4 zO(Us~)lIF54d;52r5A%Ti!~#X$GCH?Nm-vF)=94hZ7sHp^gULc<0fatpH7o@2JJ4M z`hM;cRCD24HVM+#ZK=XmU5e^G^>)#lM5(2e4<_maG^^R}s3*T`Eze2Kc4|K9g$X^ZXptn1`r>H8p4@s;;Q zPbXTqCziJNY?qFKo6+#T`Dylr@ib&-Pr3AG(2wG=_oGjTFN|+M-Xfojn-V;|Wd11Z z8SSERqxCju*n|WxD)9vLwCSQT-Fg=k7A_2imykzg&uEv78PINGCt_~8!s1bMn3Ink){RTEZO&A?sL?Y!d#@OM=50n z_mPU!~?-2gui@#las+JbhKq*;g?I4TC)$((>S6 zB|kq*K8IYxY-xDab6Z*wJZIa|k0Ar>YnZJKZ$M0DW$@qIf27f_c3a8EuLBb*+oG&@GVRE0eF*tEs z%SZYPRR5XchW9;Br5A%Uw`o2~Uf^!DmNb0mc`m&cT)1uI;{ZU?TemfQ>Uk->1)7~_ ze{vYawHp%>zL4Ka9|Tu#LwrgY9L~!sMUMAaq&>kWw}pMG97J^#mLb3Oj7XmZU)YxM zNjKQoQMd#7qvxY^F!<)SeV^vOM0FOHBPRerVhQdAA>YK8jh%%%k-vJj=6nc#v90q{ z#Y_8})Lqs|@=xiv;1AmdK@7O?CUv*wpXRMZTDx*=ykN)xXX8Y z{%7+m6KDap&Wv49=NJ;X{rG3tYuX)Sg%twA#!(@O+gku{Z@ObVV4V{SI@dxN+j~CC zUeiERm33aMLmf7xc>BlC=GUgX#zWRWV^`Fz2|2KR{ukIAT9@&#bzv+FNN_dVJ-^W3 zn7WK?t8J`HU3`dqJNb+34eg%sh;>n{dmSz0^7i~M<~OE$#-rB1V!i9qL+))q{-qBQ zeZRG`!M+z$C!G5b$ao2FRrk3do+~z>t{~*~_WNIWZ?O-!$Fu&44X)c3@@2c_%cN7| zgTfQY<-IHGc7^8S-~&&{(+{ zqQ(G+TW?M|Za$)vGS&jg6Xz)#F^GOK)6VeModEXRJ9QNn_+$ zQ6PN1F(k3HWsE*#(im&3Zn10YE`=~kd&Xo#G(etMJz`VqR3XKsAIHo?CaqCmecidC z?pDbD(%It<7M!lNw!x=2v#vXYTk1NVYEcW=K!c6Vs_P9oT^coR9)#%&MMxlj)IABg z03zOXmPUP{7#Yw@bbb-iQMzl~#%d3yGwaOCt#!C}-KG3-Uu$Vk;qMhey+w5+A=1s~ z$LUs6k5Ot3j@@4OC1eP^?_^e5ud&V=8e3jB5%R6{NTFUu8Q4LHzjm>+5E4t zceIDbQ`R-Hprkc)QJLpg`a9D@<7sO+=tNx@3NIrA=LGGMvECXP3xX6w{mSycn%|io z8P8awW2@>MLnF%+PnQnk46U*TTraoIC6rp$^fh%@ZJ^R(2(f}Xuh4W5WXK!F8o7!r zQmnWx0L0Z>zV;2PjNFE-*xuN@m7%-Krhc0{g6bz2H{D3%uzJXvW%b{P?;(BE^VSsL@yH8(QP%mb;=TP-YKt{B_Ilm!;!yFcCEG8(FMVozAuBDm zqizSVfqeh=_5H+C+lyHnV{g~(4~6Vl{M~o7^qK9Ytc=)ubw@+(clduV8l8A%tIVPU z44NB?+L83VZM4*6+nU9U)z^tbu{%n>e;uXeylX{n>U~&O9~!-b^WFVJcK>)AGN-q% zt|>Hmhw^*whvEM5%gEf`X8@(n+F|(K{2}}K_!VS6P^7PiZrd^Tee}cd^YN?5ExoVm z?t~r!b`((gZxLrC)FUgBWp+OkGfBx zuXo)40S2O%+|I0>vA^nmgtEWB2FmzET-;6TuGrso|Aqdy&hN5NJwqe5sRP?uP0cH~#l=fclhrZRX0-xu;@9RF# z3{+{(iV1 z6~9BjpL$Pw^g$3mUzqLRwd3mV-QOpC@X0-P26l`&{yjSkzps4X_ra%CUeW3&+~NOc zhwb;@?+!+vHhCqu<#+oJ&%@Z3SoRrx+U4TbFyR6JiFv-Z9To?ZPlvp!HA-0K?~%u{ zU9s#l`E<%O=Gngig=1p;vbcF+(xi&Gmq6}An^>L%0DTu-j-wi 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 literal 0 HcmV?d00001 diff --git a/plugins/engine-datafusion/src/test/resources/parquet_file_generation_0.parquet b/plugins/engine-datafusion/src/test/resources/parquet_file_generation_0.parquet index ba936ae7b7de4021cbf8bd930b81e1065fbf6d31..ad0c6190f7ba19a8a2658ff625433db7cf57ecbc 100644 GIT binary patch delta 485 zcmdlivqxrwFyq8>k;!Vz0h5K8MJ6{fW{RpD3=FDSlb9qG zR8b_dB>2%(PCO_zxr{kt^J=D6Mn;Cof~>NW{a7><(NsxF@S_+| zW^8SuqGDoKCckHkW19nF{+b-jZqBwzR8&Unz~l++vb;+e#ZEA)y<<^Zz#=0t`5>q8 zPZD5x%W6(hN4o0{L3NrYJ z*=VXUurM%){Spp)_&Cf9SS zvj5{z+rWe5up=O;2a}(2YO-$QQ~SX?`5uRv@GX$wG7(WX2C)@9Vk~MLV#_wia9w8x E07`F@K>z>% delta 648 zcmZuuziU%b6h1fa=DzpRhiQJC)4ci=l=RYqAR;D6yV$`F2ImZ-P;}^jAYBAOsR>y0 zluApf8Qv(RHPtB;>Y_L}h*WV1PSPPbIdp0DUTPB?z03Xh&N<)r-E&(}Gg{Ay$w53@ z!307UVD#1beW+dmIQVsV5YUv*p){956_sGrJE|4Bh_@Z$&BPGb#mx1`&z@J8#f!k% zS=yQ$f0PD*`MQ8F7v37NEEbQ6rRR@z*9+;s@h98Ee9x&iHxmy;?#Ma(%eo>jp6Qzj z3;nX(kngA367P~p6Gjv(oc#l99xe)lLz=Law%=M!n=cME_lCCIgkr8YBRX+Zd3fj-dMqUGwy+Yd@`jA^+^zy3xeg zq2DgzY5K-nUNPDBb;IWXrXy0_1XCi0;1nv diff --git a/plugins/engine-datafusion/src/test/resources/parquet_file_generation_1.parquet b/plugins/engine-datafusion/src/test/resources/parquet_file_generation_1.parquet index 2b4a7ac2e8befb87306fdcabdee96ff2843c20a5..31da328fd6a8d1d9e1c62bd88b55569416aa2782 100644 GIT binary patch delta 697 zcma)(F=$g!6o&83yYIexn^)5$?_6Kvs}hWtq^QB6sY(VXU5Y3!71YViy%iTl1qU4( z4}_A*AwrQNk)(AHiWQ22F1jd)8AL@KqJv7ImHMuIhM37ao%^5fobw+}D|i&l-lSIb z);?-5^@%e%Dl@J7c-W0cHQo&tds%H5$qpRWX^ago_c>j`yGqw->fs^R`X-7Z0*(0b9JxuLCIc3cvF4k`>uk zq#&Fq_QhW{nIw~kGzoW9byKs3r<@7i1PIhJ&N`#R4XU0|-DUa?3w&IWXy z@Vk@WwZ!#jJMcx{nffM5JSzkK-r)D}vSb9h6h3n^ckaE(r7>w{^6*+o8iy7PBE_Ui7siF%WTCr2bx{!f15%3aT=7 z&dp@-r;(cbIC^RyPZhYqAq+6|_(&6qd4S)4{v8fng%5M8K8!Oj3qy7*7HcDX;S*Rh zqJ-fL$*B9hFL|-R&lFT$N45#D9t42fpVx|u#DD3*)XJx`R~nj{-6Zh-=$h&l=ILGC zg0s7_H)Fw`a?BeyiHWa_3_c|(O!yiuRf_t=W449F?8hXHrdzHR*@E1N3mBF_As#Xm z&+r^gC42Pav0e*!pN`-J4G>$2M{$%6;tCzWtT{4Xr+ixI&Yq|+et8F$Y`#Dgj*BrJ zsXLvdKs#y6ZNo~fYMO+7i1371!c~@K-y>Xzm-vGn!=mF3THE6R#O&6np%4^~>q$VA zxXNwdgq34u&OPxE?^y@N?-KEZ$U2o}>UB2ILE^s;+a>!<%f7{5Ryto{a>GUqkif)c1S8gh=&lO zg2K-2y6E8~IF<28>J}k0UeYXFgLk;k{G`k%fMGAy8W;3*hI3lnBt`Azl%a5bygicSR^QLO_x++!6kQ2wkaYA}z#c z+P;K}7E>jpN@e#zf{N=3&27$UR3RHdaB=Y4*2_1P5C8h%mU1L^)sLcR*U;4;V?J`s zH{<>Jqt!~lr4qrI%?{Km-Q|JNh`6M%ZmdtZ;hYLob04ryE|o&gG`Y#=5^TeXP>!if~j%lRLX;-L!tbyP@=` zwK2UCG!!7C?}h@Ia=BPbSF-2wOBu=t4eaxT)O5MHTwN&4?<2_w0HHn*?n>v1*>twJ zT&Nm?=B0e4l9|s-n}zv8v7FD@ZJN`S{DpL(Xc(xbLAPPyO)uokjr2;sTv;d(z|Il=*F5ZoM|-Sl-#6py-+A)gUOGuu7f&U^9y0nm`=*1=Zt4J4_M!-IO<{Kx z?anUkNed((541JI1hz_T3H*u)+wH1IH=~2H7gL1$lu%Hk?7M zb0eY{1%K44Jq_%v;MZP-C|~S#q_X)m+DN++)E?~F8EJPg(ld<2p0+YoQ`xiNUVI*g z0(@fP)YM_)aTWT_AH~tj`#I<1@Wt^S=QZ9x&qq)Mcg}Sohb62zAI24kf1P8gx8#qGPQ(_o-6zjY z$0siezXRt%)4d)!^uMJZSrI=QKT}V|dsp}gVK3@8ARNMFd{W{EzQw+gZ+x*ZyOda+ z2JAQ%x5Ym&?uK7SDlGiGF6;&0l60uQ;0xl_uo06S8x?1A7@?u>IZwqWR?fx}=V!am zEazYi^_vvkJI}}PJir(>O+|m%^0TM~J@76{j|U6-YZd%;Wu|%yxa9okQ4$K5GUW@) j`RY66N~ihu?(FS3*nKb-UW4BZFaMBB@H`uXzn6al(+6{$ literal 3635 zcmcInO>7%Q6rQ!+WYfBJ5;CJTvQUKRsufTt&JQ)ThuNh0!%dS^NgQ7+$98_I#7=D| zP9iRFK+sB5LRAq}ReFeeLI@#|Q^bJ_IUo)QRft2x3H6X82QCHPo89rQ*XtsI7$xhO z_xrtX-diVAe5RKMD50GRc#uv)&V3zy)=d-wCwhiTemS4Rgt5Hm@RTgVi}@B0tf+Ud&) z>T_V@g#7uJxd0QW>oG~4rplcI6Zi_Y6cPYPUS$K3Vx6!)y~>t4O_kP;6t1!pbgG`( zXM`MvAoxe0e3rbgd>-^a`Scs(tq)Oj=e9zA?)}aqW#~?w^=&QWa&Hd6i$7>5vAp<` zI!%>3N9=#*Pqu_)#-o@TYg(;=94TDWAqd5-^!qHu>2)(HGi zUzi2X>%fVp$QQN;2)2?!^djeVnC+%svc`O?)&I22yuJlciJ2U=(eTUYpL1X zQt3TK1iB<#+H9j!HKXHTZM%2IG=Pe}9}8wmrD8Q*&aULwGn5e;JnPfcbg8&mSuHG| zC5Z?Cp#cz{Oy`Q(bhfxzsF;G*^?bRUSUt|wLR43>fuv{HQ)|?+J`nKgAH+_HaqKtj( z_LY1H$32A|D*C=pf2u_6p|B@~HTwce#BpW_yG0?#(-0jI`0UawmTTya{Q8%EcX5v> zjj%7;UB$`U5WXKPY+uoj0{Wu>0F?7*?+{?46kbCT-~j^ssoer739Q|*gN3~o{mBVP zA}81$YfRE8btL%_licrcv4EW;;vXyQJ)eF{)gQLvSGs%hy}oD??2>pZ5%!eQm)Nfz zbg`}jRN0G8mfG}3ZBT$5XnThRG)f%>yw9*zI-9T*bFy?we{vF%$XA}-HJGGP>PYec zlYH=kD~UZfjx5JP{b8`K6!{{nFGWfnS-!$7Ke)5hPosmhy)*i6r|U9FqUtkAsUy=N zX1d!2^{{&|!n(@thPv>5s0I1V%(eM9&DWLoM@tmf03YIhu!p=CaSBKYLo z5OO%ene%Zxfk=MBsf?m32ityr1tL^IZCu2N*YRwi`EU`9gyonW)C|4*YBYLL3ttLjNfn{S&=^*o7+yt2DbR9@E7+tECRw~ zdRF2GzJ=bbH?~$-T#xUh06VU=ruc`az3>}Ig^izY3xC14BpvQw@CEs**oX;^jfy+D z%+%2LoF`*5TMNDM8;gB&n>jec{mqK*UFK6b53t59SJ7XN`fO^!4x)>z$H9XB+JSgI znfZYN9yz~!nP}mSOzGxkzVdph+--e(cMtSm=)2GxK7hX&p8rGMfj?}g;NQi+0j|EN Ac>n+a From 1960e07c7cb8bb37e099cb14732f0e2b4499ecba Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Tue, 18 Nov 2025 17:40:20 -0800 Subject: [PATCH 093/112] add stream and allocator closure post fetch phase (#20048) * add stream and allocator closure post fetch phase Signed-off-by: Marc Handalian * Move stream and allocator for executeQueryPhase into correct scope Signed-off-by: Marc Handalian --------- Signed-off-by: Marc Handalian --- .../datafusion/DatafusionEngine.java | 117 ++++++++++-------- 1 file changed, 62 insertions(+), 55 deletions(-) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 6932e6714b827..87f6d4274eab7 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -186,12 +186,13 @@ public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scop return false; } - RootAllocator allocator = null; - RecordBatchStream stream = null; + @Override public Map executeQueryPhase(DatafusionContext context) { Map finalRes = new HashMap<>(); List rowIdResult = new ArrayList<>(); + RootAllocator allocator = null; + RecordBatchStream stream = null; try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); @@ -300,68 +301,74 @@ public void executeFetchPhase(DatafusionContext context) throws IOException { MapperService mapperService = context.mapperService(); MappingLookup mappingLookup = mapperService.documentMapper().mappers(); - SearchResultsCollector collector = new SearchResultsCollector() { - @Override - public void collect(RecordBatchStream recordBatchStream) throws IOException { - List byteRefs = new ArrayList<>(); - SearchHit[] hits = new SearchHit[rowIds.size()]; - int totalHits = 0; - while (recordBatchStream.loadNextBatch().join()) { - VectorSchemaRoot vectorSchemaRoot = recordBatchStream.getVectorSchemaRoot(); - List fieldVectorList = vectorSchemaRoot.getFieldVectors(); - for (int i = 0; i < vectorSchemaRoot.getRowCount(); i++) { - XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); - String _id = "_id"; - Long row_id = null; - - try { - for (FieldVector valueVectors : fieldVectorList) { - if (valueVectors.getName().equals(CompositeDataFormatWriter.ROW_ID)) { - row_id = (long) valueVectors.getObject(i); - continue; - } - Mapper mapper = mappingLookup.getMapper(valueVectors.getName()); - DerivedFieldGenerator derivedFieldGenerator = mapper.derivedFieldGenerator(); - - Object value = valueVectors.getObject(i); - if(valueVectors instanceof ViewVarCharVector) { - BytesRef bytesRef = new BytesRef(((ViewVarCharVector) valueVectors).get(i)); - derivedFieldGenerator.generate(builder, List.of(bytesRef)); // TODO: // Currently keyword field mapper do not have derived field converter from byte[] to BytesRef - } else { - derivedFieldGenerator.generate(builder, List.of(value)); - } - if (valueVectors.getName().equals(IdFieldMapper.NAME)) { - BytesRef idRef = new BytesArray((byte[]) value).toBytesRef(); - _id = Uid.decodeId(idRef.bytes, idRef.offset, idRef.length); - } + SearchResultsCollector collector = recordBatchStream -> { + List byteRefs = new ArrayList<>(); + SearchHit[] hits = new SearchHit[rowIds.size()]; + int totalHits = 0; + while (recordBatchStream.loadNextBatch().join()) { + VectorSchemaRoot vectorSchemaRoot = recordBatchStream.getVectorSchemaRoot(); + List fieldVectorList = vectorSchemaRoot.getFieldVectors(); + for (int i = 0; i < vectorSchemaRoot.getRowCount(); i++) { + XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); + String _id = "_id"; + Long row_id = null; + + try { + for (FieldVector valueVectors : fieldVectorList) { + if (valueVectors.getName().equals(CompositeDataFormatWriter.ROW_ID)) { + row_id = (long) valueVectors.getObject(i); + continue; + } + Mapper mapper = mappingLookup.getMapper(valueVectors.getName()); + DerivedFieldGenerator derivedFieldGenerator = mapper.derivedFieldGenerator(); + + Object value = valueVectors.getObject(i); + if(valueVectors instanceof ViewVarCharVector) { + BytesRef bytesRef = new BytesRef(((ViewVarCharVector) valueVectors).get(i)); + derivedFieldGenerator.generate(builder, List.of(bytesRef)); // TODO: // Currently keyword field mapper do not have derived field converter from byte[] to BytesRef + } else { + derivedFieldGenerator.generate(builder, List.of(value)); + } + if (valueVectors.getName().equals(IdFieldMapper.NAME)) { + BytesRef idRef = new BytesArray((byte[]) value).toBytesRef(); + _id = Uid.decodeId(idRef.bytes, idRef.offset, idRef.length); } - } catch (Exception e) { - logger.error("Failed to derive source for doc id [{i}]: {}", i, e); - throw new OpenSearchException("Failed to derive source for doc id [" + i + "]", e); - } finally { - builder.endObject(); } - assert row_id != null || rowIds.get(i) != null; - assert _id != null; - BytesReference document = BytesReference.bytes(builder); - byteRefs.add(document); - SearchHit hit = new SearchHit(Math.toIntExact(rowIds.get(i)), _id, emptyMap(), emptyMap()); - hit.sourceRef(document); - FetchSubPhase.HitContext hitContext = new FetchSubPhase.HitContext(hit, null, Math.toIntExact(rowIds.get(i)), new SourceLookup()); //TODO: make source lookup one per thread - hitContext.sourceLookup().setSource(document); - int index = rowIdToIndex.get(row_id); - hits[index] = hit; - totalHits++; + } catch (Exception e) { + logger.error("Failed to derive source for doc id [{i}]: {}", i, e); + throw new OpenSearchException("Failed to derive source for doc id [" + i + "]", e); + } finally { + builder.endObject(); } + assert row_id != null || rowIds.get(i) != null; + assert _id != null; + BytesReference document = BytesReference.bytes(builder); + byteRefs.add(document); + SearchHit hit = new SearchHit(Math.toIntExact(rowIds.get(i)), _id, emptyMap(), emptyMap()); + hit.sourceRef(document); + FetchSubPhase.HitContext hitContext = new FetchSubPhase.HitContext(hit, null, Math.toIntExact(rowIds.get(i)), new SourceLookup()); //TODO: make source lookup one per thread + hitContext.sourceLookup().setSource(document); + int index = rowIdToIndex.get(row_id); + hits[index] = hit; + totalHits++; } - context.fetchResult().hits(new SearchHits(hits, new TotalHits(totalHits, TotalHits.Relation.EQUAL_TO), context.queryResult().getMaxScore())); } + context.fetchResult().hits(new SearchHits(hits, new TotalHits(totalHits, TotalHits.Relation.EQUAL_TO), context.queryResult().getMaxScore())); }; try { collector.collect(stream); - } catch (IOException e) { - throw new RuntimeException(e); + } catch (IOException exception) { + logger.error("Failed to perform fetch phase", exception); + throw new RuntimeException(exception); + } finally { + try { + stream.close(); + allocator.close(); + } catch (Exception e) { + logger.error("Failed to close stream", e); + throw new RuntimeException(e); + } } } } From 9ce258a655417a36a51e2ae630579cd087934364 Mon Sep 17 00:00:00 2001 From: expani1729 <110471048+expani@users.noreply.github.com> Date: Tue, 18 Nov 2025 22:02:52 -0800 Subject: [PATCH 094/112] Injecting count sub agg if absent to ensure doc_count is correct (#20032) * Injecting count sub agg if absent to ensure doc_count is correct Signed-off-by: expani * Sorting keys for merge sort to work Signed-off-by: expani * Went into zen mode and made code simpler Signed-off-by: expani --------- Signed-off-by: expani --- .../org/opensearch/search/SearchService.java | 2 + .../bucket/composite/CompositeAggregator.java | 22 ++++----- .../terms/AbstractStringTermsAggregator.java | 48 ++++++++++--------- .../bucket/terms/MultiTermsAggregator.java | 21 ++++---- .../SearchEngineResultConversionUtils.java | 32 +++++++++++++ 5 files changed, 77 insertions(+), 48 deletions(-) diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index feffce9aeab25..4eb900608685b 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -112,6 +112,7 @@ import org.opensearch.search.aggregations.InternalAggregation.ReduceContext; import org.opensearch.search.aggregations.MultiBucketConsumerService; import org.opensearch.search.aggregations.SearchContextAggregations; +import org.opensearch.search.aggregations.metrics.ValueCountAggregationBuilder; import org.opensearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.opensearch.search.builder.SearchSourceBuilder; import org.opensearch.search.collapse.CollapseContext; @@ -1309,6 +1310,7 @@ private SearchContext createContext( if (request.scroll() != null) { context.scrollContext().scroll = request.scroll(); } + // FIXME : We don't need to do both, but commenting the one on Datafusion Context hangs up the JVM need to debug. parseSource(context, request.source(), includeAggregations); parseSource(context.getOriginalContext(), request.source(), includeAggregations); diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java index 14bd913369165..526e5cb99530d 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/composite/CompositeAggregator.java @@ -59,6 +59,7 @@ import org.apache.lucene.util.CollectionUtil; import org.apache.lucene.util.RoaringDocIdSet; import org.opensearch.common.Rounding; +import org.opensearch.common.collect.Tuple; import org.opensearch.common.lease.Releasables; import org.opensearch.index.IndexSortConfig; import org.opensearch.lucene.queries.SearchAfterSortedDocQuery; @@ -78,7 +79,10 @@ import org.opensearch.search.aggregations.bucket.filterrewrite.FilterRewriteOptimizationContext; import org.opensearch.search.aggregations.bucket.missing.MissingOrder; import org.opensearch.search.aggregations.bucket.terms.LongKeyedBucketOrds; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.query.SearchEngineResultConversionUtils; import org.opensearch.search.searchafter.SearchAfterBuilder; import org.opensearch.search.sort.SortAndFormats; @@ -731,7 +735,7 @@ public void collect(int doc, long zeroBucket) throws IOException { @Override public List convert(Map shardResult, SearchContext searchContext) { // Generate the composite keys - List currentCompositeKey = new ArrayList<>(sourceConfigs.length); + List> currentCompositeKey = new ArrayList<>(sourceConfigs.length); List compositeKeys = new ArrayList<>(shardResult.size()); for (int i = 0; i < shardResult.get(shardResult.keySet().stream().findFirst().get()).length; i++) { for (CompositeValuesSourceConfig sourceConfig : sourceConfigs) { @@ -748,27 +752,19 @@ public List convert(Map shardResult, Sear List buckets = new ArrayList<>(); int row = 0; for (CompositeKey compositeKey : compositeKeys) { - List subAggs = new ArrayList<>(); - for (Aggregator subAgg : subAggregators) { - if (subAgg instanceof ShardResultConvertor == false) { - throw new UnsupportedOperationException(String.format("Aggregation [%s] doesn't support shard result conversion Impl [%s]", subAgg.name(), subAgg.getClass().getName())); - } - ShardResultConvertor convertor = (ShardResultConvertor) subAgg; - subAggs.add(convertor.convertRow(shardResult, row, searchContext)); - } - // This is mocked as we are forcing SQLPlugin to always send a count sub aggregation instead of relying on doc_count in the response. - long docCount = 1; + Tuple, Long> subAggsAndDocCount = SearchEngineResultConversionUtils.extractSubAggsAndDocCount(subAggregators, searchContext, shardResult, row); buckets.add(new InternalComposite.InternalBucket( sourceNames, formats, compositeKey, reverseMuls, missingOrders, - docCount, - InternalAggregations.from(subAggs) + subAggsAndDocCount.v2(), + InternalAggregations.from(subAggsAndDocCount.v1()) )); row++; } + buckets.sort(InternalComposite.InternalBucket::compareKey); CompositeKey lastBucket = buckets.isEmpty() ? null : buckets.getLast().getRawKey(); return List.of( new InternalComposite( diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java index 975c65338b5a1..5ee75ec1ad49c 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java @@ -34,6 +34,7 @@ import org.apache.lucene.index.IndexReader; import org.apache.lucene.util.BytesRef; +import org.opensearch.common.collect.Tuple; import org.opensearch.search.DocValueFormat; import org.opensearch.search.aggregations.Aggregator; import org.opensearch.search.aggregations.AggregatorFactories; @@ -43,11 +44,17 @@ import org.opensearch.search.aggregations.InternalOrder; import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.bucket.terms.heuristic.SignificanceHeuristic; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregationBuilder; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.ContextIndexSearcher; import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.query.SearchEngineResultConversionUtils; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -113,32 +120,27 @@ protected SignificantStringTerms buildEmptySignificantTermsAggregation(long subs } @Override - public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { - String termKey = (String) searchContext.convertToComparable(shardResult.get(name)[row]); - - List subAggs = new ArrayList<>(); - for (Aggregator aggregator : subAggregators) { - if (aggregator instanceof ShardResultConvertor convertor) { - InternalAggregation subAgg = convertor.convertRow(shardResult, row, searchContext); - subAggs.add(subAgg); - } + public List convert(Map shardResult, SearchContext searchContext) { + int rowCount = shardResult.get(shardResult.keySet().stream().findFirst().get()).length; + List buckets = new ArrayList<>(rowCount); + for (int row = 0; row < rowCount; row++) { + String termKey = (String) searchContext.convertToComparable(shardResult.get(name)[row]); + Tuple, Long> subAggsAndDocCount = SearchEngineResultConversionUtils.extractSubAggsAndDocCount(subAggregators, searchContext, shardResult, row); + buckets.add(new StringTerms.Bucket( + new BytesRef(termKey), + subAggsAndDocCount.v2(), + InternalAggregations.from(subAggsAndDocCount.v1()), + showTermDocCountError, + 0, + format + )); } - // This is mocked as we are forcing SQLPlugin to always send a count sub aggregation instead of relying on doc_count in the response. - long docCount = 1; - BucketOrder reduceOrder = order; if (isKeyOrder(order) == false) { reduceOrder = InternalOrder.key(true); + buckets.sort(reduceOrder.comparator()); } - StringTerms.Bucket bucket = new StringTerms.Bucket( - new BytesRef(termKey), - docCount, - InternalAggregations.from(subAggs), - showTermDocCountError, - 0, - format - ); - return new StringTerms( + return List.of(new StringTerms( name, reduceOrder, order, @@ -147,10 +149,10 @@ public InternalAggregation convertRow(Map shardResult, int row bucketCountThresholds.getShardSize(), showTermDocCountError, 0, - List.of(bucket), + buckets, 0, bucketCountThresholds - ); + )); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java index 385da95dc9545..6970ff2680d1f 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/MultiTermsAggregator.java @@ -16,6 +16,7 @@ import org.opensearch.ExceptionsHelper; import org.opensearch.common.CheckedSupplier; import org.opensearch.common.Numbers; +import org.opensearch.common.collect.Tuple; import org.opensearch.common.io.stream.BytesStreamOutput; import org.opensearch.common.lease.Releasable; import org.opensearch.common.lease.Releasables; @@ -45,9 +46,12 @@ import org.opensearch.search.aggregations.bucket.BucketsAggregator; import org.opensearch.search.aggregations.bucket.DeferableBucketAggregator; import org.opensearch.search.aggregations.bucket.LocalBucketCountThresholds; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.aggregations.support.AggregationPath; import org.opensearch.search.aggregations.support.ValuesSource; import org.opensearch.search.internal.SearchContext; +import org.opensearch.search.query.SearchEngineResultConversionUtils; import org.opensearch.search.startree.StarTreeQueryHelper; import org.opensearch.search.startree.filter.DimensionFilter; import org.opensearch.search.startree.filter.MatchAllFilter; @@ -707,24 +711,17 @@ static InternalValuesSource doubleValueSource(ValuesSource.Numeric valuesSource, @Override public List convert(Map shardResult, SearchContext searchContext) { int rowCount = shardResult.isEmpty() ? 0 : shardResult.get(fields.getFirst()).length ; - List buckets = new ArrayList<>(); + List buckets = new ArrayList<>(rowCount); for (int i = 0; i < rowCount; i++) { final int j = i; List key = fields.stream().map(fieldName -> (Object) searchContext.convertToComparable(shardResult.get(fieldName)[j])).toList(); - List subAggs = new ArrayList<>(subAggregators.length); - for (Aggregator aggregator : subAggregators) { - ShardResultConvertor convertor = (ShardResultConvertor) aggregator; - subAggs.add(convertor.convertRow(shardResult, i, searchContext)); - } - buckets.add(new InternalMultiTerms.Bucket(key, 1, InternalAggregations.from(subAggs), showTermDocCountError, 0, formats)); + Tuple, Long> subAggsAndDocCount = SearchEngineResultConversionUtils.extractSubAggsAndDocCount(subAggregators, searchContext, shardResult, i); + buckets.add(new InternalMultiTerms.Bucket(key, subAggsAndDocCount.v2(), InternalAggregations.from(subAggsAndDocCount.v1()), showTermDocCountError, 0, formats)); } - // TODO : Not reducing using Priority Queue into top buckets as depending on Substrait plan. - BucketOrder reduceOrder; + BucketOrder reduceOrder = order; if (isKeyOrder(order) == false) { reduceOrder = InternalOrder.key(true); - //buckets.sort(reduceOrder.comparator()); - } else { - reduceOrder = order; + buckets.sort(reduceOrder.comparator()); } return Collections.singletonList(new InternalMultiTerms( name, diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java index 6ca83f35f5320..391176c83fb0a 100644 --- a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -10,9 +10,13 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.opensearch.common.collect.Tuple; import org.opensearch.search.aggregations.Aggregator; +import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.InternalAggregations; import org.opensearch.search.aggregations.ShardResultConvertor; +import org.opensearch.search.aggregations.metrics.InternalValueCount; +import org.opensearch.search.aggregations.metrics.ValueCountAggregator; import org.opensearch.search.internal.SearchContext; import java.io.IOException; @@ -23,6 +27,10 @@ public class SearchEngineResultConversionUtils { + private static final Logger LOGGER = LogManager.getLogger(SearchEngineResultConversionUtils.class); + + public static final String INJECTED_COUNT_AGG_NAME = "agg_for_doc_count"; + public static void convertDFResultGeneric(SearchContext searchContext) { if (searchContext.aggregations() != null) { Map dfResult = searchContext.getDFResults(); @@ -51,6 +59,7 @@ public static void convertDFResultGeneric(SearchContext searchContext) { InternalAggregations internalAggregations = InternalAggregations.from( shardResultConvertors.stream().flatMap(x -> x.convert(dfResult, searchContext).stream()).collect(Collectors.toList()) ); + LOGGER.info("Converted DF result to internal aggregations: {}", internalAggregations.asList()); searchContext.queryResult().aggregations(internalAggregations); } catch (IOException e) { throw new RuntimeException(e); @@ -58,4 +67,27 @@ public static void convertDFResultGeneric(SearchContext searchContext) { } } + public static Tuple, Long> extractSubAggsAndDocCount(Aggregator[] subAggregators, SearchContext searchContext, Map shardResult, int row) { + List subAggs = new ArrayList<>(); + long docCount = -1; + for (Aggregator aggregator : subAggregators) { + if (aggregator instanceof ShardResultConvertor convertor) { + InternalAggregation subAgg = convertor.convertRow(shardResult, row, searchContext); + if (aggregator instanceof ValueCountAggregator) { + docCount = ((InternalValueCount) subAgg).getValue(); + } + subAggs.add(subAgg); + } + } + if (docCount == -1) { + Object[] values = shardResult.get(INJECTED_COUNT_AGG_NAME); + if (values != null) { + docCount = ((Number) values[row]).longValue(); + } else { + throw new IllegalStateException(String.format("Unable to populate doc count from shard result [%s]", shardResult.keySet())); + } + } + return new Tuple<>(subAggs, docCount); + } + } From 9f94eef104e76b9cf08f412b46e2acb65c0fd433 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Wed, 19 Nov 2025 12:12:17 +0530 Subject: [PATCH 095/112] Preserving order of Segment in CatalogSnapshot (#20045) --- .../engine/ParquetExecutionEngine.java | 6 +- .../merge/RecordBatchMergeStrategy.java | 15 +- .../DataFusionReaderManagerTests.java | 67 ++++----- .../index/engine/exec/RefreshInput.java | 18 +-- .../index/engine/exec/RefreshResult.java | 21 ++- .../CompositeIndexingExecutionEngine.java | 32 ++--- .../engine/exec/coord/CatalogSnapshot.java | 110 ++++++++------- .../exec/coord/CatalogSnapshotManager.java | 133 ++++++++++++++++++ .../engine/exec/coord/CompositeEngine.java | 123 +++++----------- .../index/engine/exec/merge/MergeHandler.java | 10 +- .../index/engine/exec/merge/MergeResult.java | 17 ++- .../index/engine/exec/text/TextEngine.java | 5 +- .../exec/coord/IndexFileDeleterTests.java | 36 ++--- 13 files changed, 342 insertions(+), 251 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 77416a7774a96..79d380f4f6cd1 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -140,11 +140,7 @@ public Merger getMerger() { @Override public RefreshResult refresh(RefreshInput refreshInput) throws IOException { RefreshResult refreshResult = new RefreshResult(); - filesWrittenAlready.addAll(refreshInput.getWriterFiles()); - if (!refreshInput.getFilesToRemove().isEmpty()) { - filesWrittenAlready.removeAll(refreshInput.getFilesToRemove()); - } - refreshResult.add(PARQUET_DATA_FORMAT, filesWrittenAlready); + // NO-OP, as refresh is being handled at CompositeIndexingExecution Engin return refreshResult; } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index 36f9930ded673..cb91ea3175ec1 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -11,6 +11,7 @@ import com.parquet.parquetdataformat.engine.ParquetDataFormat; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowId; import org.opensearch.index.engine.exec.merge.RowIdMapping; @@ -55,16 +56,16 @@ public MergeResult mergeParquetFiles(Collection files) { // Build row ID mapping Map rowIdMapping = new HashMap<>(); - FileMetadata mergedFileMetadata = new FileMetadata( - outputDirectory, - mergedFileName - ); - Map> mergedFiles = Collections.singletonMap( + WriterFileSet mergedWriterFileSet = + WriterFileSet.builder().directory(Path.of(outputDirectory)).addFile(mergedFileName).writerGeneration(0).build(); + + + Map mergedWriterFileSetMap = Collections.singletonMap( new ParquetDataFormat(), - Collections.singletonList(mergedFileMetadata) + mergedWriterFileSet ); - return new MergeResult(new RowIdMapping(rowIdMapping, mergedFileName), mergedFiles); + return new MergeResult(new RowIdMapping(rowIdMapping, mergedFileName), mergedWriterFileSetMap); } private String getMergedFileName(long generation) { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index 634bda4c56b10..ec7a1e743fabd 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -93,13 +93,13 @@ public void testInitialReaderCreation() throws IOException { DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); - RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); + segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -122,12 +122,12 @@ public void testMultipleSearchersShareSameReader() throws IOException { DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); - RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -151,12 +151,12 @@ public void testReaderSurvivesPartialSearcherClose() throws IOException { DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); - RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); + segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -180,12 +180,13 @@ public void testRefreshCreatesNewReader() throws IOException { DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); // Initial refresh - RefreshResult refreshResult1 = new RefreshResult(); + CatalogSnapshot.Segment segment1 = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet1 = new WriterFileSet(shardPath.getDataPath(), 1); addFilesToShardPath(shardPath, "parquet_file_generation_0.parquet"); writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); - refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1, null, noOpFileDeleterSupplier)); + segment1.addSearchableFiles(getMockDataFormat().name(), writerFileSet1); + + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment1), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionReader reader1 = searcher1.getReader(); @@ -193,12 +194,13 @@ public void testRefreshCreatesNewReader() throws IOException { // Add new file and refresh addFilesToShardPath(shardPath, "parquet_file_generation_1.parquet"); - RefreshResult refreshResult2 = new RefreshResult(); + CatalogSnapshot.Segment segment2 = new CatalogSnapshot.Segment(2); WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); - refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2, null, noOpFileDeleterSupplier)); + segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); + + readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); DatafusionReader reader2 = searcher2.getReader(); @@ -224,11 +226,12 @@ public void testDecRefAfterCloseThrowsException() throws IOException { DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); - RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); - refreshResult.add(getMockDataFormat(), List.of(writerFileSet)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); + segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); + + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -257,14 +260,13 @@ public void testReaderClosesAfterSearchRelease() throws IOException { DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); - RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); - List writerFiles = List.of(writerFileSet); + segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - refreshResult.add(getMockDataFormat(), writerFiles); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult, 1, null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); // DatafusionReader readerR1 = readerManager.acquire(); DatafusionSearcher datafusionSearcherS1 = engine.acquireSearcher("Search"); @@ -280,14 +282,13 @@ public void testReaderClosesAfterSearchRelease() throws IOException { addFilesToShardPath(shardPath, "parquet_file_generation_0.parquet"); // now trigger refresh to have new Reader with F2, F3 - RefreshResult refreshResultR2 = new RefreshResult(); + CatalogSnapshot.Segment segment2 = new CatalogSnapshot.Segment(2); WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); - List writerFiles2 = List.of(writerFileSet2); + segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); - refreshResultR2.add(getMockDataFormat(), writerFiles2); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResultR2, 2, null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); // now check if new Reader is created with F2, F3 // DatafusionReader readerR2 = readerManager.acquire(); @@ -325,11 +326,12 @@ public void testSearch() throws IOException { DatafusionReaderManager readerManager = engine.getReferenceManager(INTERNAL); // Initial refresh - RefreshResult refreshResult1 = new RefreshResult(); + CatalogSnapshot.Segment segment1 = new CatalogSnapshot.Segment(1); WriterFileSet writerFileSet1 = new WriterFileSet(shardPath.getDataPath(), 1); writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); - refreshResult1.add(getMockDataFormat(), List.of(writerFileSet1)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult1, 1, null, noOpFileDeleterSupplier)); + segment1.addSearchableFiles(getMockDataFormat().name(), writerFileSet1); + + readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment1), null, noOpFileDeleterSupplier)); DatafusionSearcher searcher1 = engine.acquireSearcher("search"); DatafusionReader reader1 = searcher1.getReader(); @@ -353,11 +355,12 @@ public void testSearch() throws IOException { logger.info("AFTER REFRESH"); addFilesToShardPath(shardPath, "parquet_file_generation_1.parquet"); - RefreshResult refreshResult2 = new RefreshResult(); + CatalogSnapshot.Segment segment2 = new CatalogSnapshot.Segment(2); WriterFileSet writerFileSet2 = new WriterFileSet(shardPath.getDataPath(), 2); writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); - refreshResult2.add(getMockDataFormat(), List.of(writerFileSet2)); - readerManager.afterRefresh(true, new CatalogSnapshot(refreshResult2, 2, null, noOpFileDeleterSupplier)); + segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); + + readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); expectedResults = new HashMap<>(); expectedResults.put("min", 3L); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java index f930eded7f481..b772e3ef4ed7a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshInput.java @@ -8,32 +8,34 @@ package org.opensearch.index.engine.exec; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + import java.util.ArrayList; import java.util.List; public class RefreshInput { + private List existingSegments; private final List writerFiles; - private final List filesToRemove; public RefreshInput() { this.writerFiles = new ArrayList<>(); - this.filesToRemove = new ArrayList<>(); + this.existingSegments = new ArrayList<>(); } - public void add(WriterFileSet writerFileSetGroup) { - this.writerFiles.add(writerFileSetGroup); + public void setExistingSegments(List existingSegments) { + this.existingSegments = existingSegments; } - public void addFilesToRemove(WriterFileSet writerFileSetGroup) { - this.filesToRemove.add(writerFileSetGroup); + public void add(WriterFileSet writerFileSetGroup) { + this.writerFiles.add(writerFileSetGroup); } public List getWriterFiles() { return writerFiles; } - public List getFilesToRemove() { - return filesToRemove; + public List getExistingSegments() { + return existingSegments; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java index 8357529d7acc7..2df905c49d4bc 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/RefreshResult.java @@ -8,29 +8,24 @@ package org.opensearch.index.engine.exec; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; + import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class RefreshResult { - private final Map> refreshedFiles; + private List refreshedSegments; public RefreshResult() { - this.refreshedFiles = new HashMap<>(); - } - - public void add(DataFormat df, List writerFiles) { - writerFiles.forEach(writerFileSet -> refreshedFiles.computeIfAbsent(df, dataFormat -> new ArrayList<>()).add(writerFileSet)); + this.refreshedSegments = new ArrayList<>(); } - public List getRefreshedFiles(DataFormat dataFormat) { - return Collections.unmodifiableList(refreshedFiles.get(dataFormat)); + public List getRefreshedSegments() { + return refreshedSegments; } - public Map> getRefreshedFiles() { - return Map.copyOf(refreshedFiles); + public void setRefreshedSegments(List refreshedSegments) { + this.refreshedSegments = refreshedSegments; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index e8c2d6c74621a..8359484e08fbd 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -21,6 +21,7 @@ import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.engine.exec.coord.Any; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.index.engine.exec.coord.CompositeDataFormatWriterPool; import org.opensearch.index.engine.exec.text.TextEngine; import org.opensearch.index.mapper.MapperService; @@ -107,24 +108,29 @@ public Writer createCompositeW @Override public RefreshResult refresh(RefreshInput ignore) throws IOException { RefreshResult finalResult; - Map refreshInputs = new HashMap<>(); try { List dataFormatWriters = dataFormatWriterPool.checkoutAll(); - + List refreshedSegment = ignore.getExistingSegments(); // flush to disk for (CompositeDataFormatWriter dataFormatWriter : dataFormatWriters) { + CatalogSnapshot.Segment newSegment = new CatalogSnapshot.Segment(0); FileInfos fileInfos = dataFormatWriter.flush(null); fileInfos.getWriterFilesMap() - .forEach((key, value) -> refreshInputs.computeIfAbsent(key, dataFormat -> new RefreshInput()).add(value)); + .forEach((key, value) -> { + newSegment.addSearchableFiles(key.name(), value); + }); dataFormatWriter.close(); + refreshedSegment.add(newSegment); } - if (refreshInputs.isEmpty()) { - return null; + // call refresh for delegats + for (IndexingExecutionEngine delegate : delegates) { + delegate.refresh(new RefreshInput()); } // make indexing engines aware of everything - finalResult = refresh(refreshInputs); + finalResult = new RefreshResult(); + finalResult.setRefreshedSegments(refreshedSegment); // provide a view to the upper layer return finalResult; @@ -138,20 +144,6 @@ public Merger getMerger() { throw new UnsupportedOperationException("Merger for Composite Engine is not used"); } - public RefreshResult refresh(Map refreshInputs) throws IOException { - RefreshResult finalResult = new RefreshResult(); - - // make indexing engines aware of everything - for (IndexingExecutionEngine delegate : delegates) { - RefreshInput refreshInput = refreshInputs.get(delegate.getDataFormat()); - if (refreshInput != null) { - RefreshResult result = delegate.refresh(refreshInput); - finalResult.add(delegate.getDataFormat(), result.getRefreshedFiles(delegate.getDataFormat())); - } - } - return finalResult; - } - public List> getDelegates() { return Collections.unmodifiableList(delegates); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 2a0afa4ed3a34..1ca74d6e16d21 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -39,74 +39,70 @@ public class CatalogSnapshot extends AbstractRefCounted implements Writeable { public static final String LAST_COMPOSITE_WRITER_GEN_KEY = "_last_composite_writer_gen_"; private final long id; private long lastWriterGeneration; - private final Map> dfGroupedSearchableFiles; + private final Map> dfGroupedSearchableFiles; + private List segmentList; private Supplier indexFileDeleterSupplier; private Map catalogSnapshotMap; - public CatalogSnapshot(RefreshResult refreshResult, long id, Map catalogSnapshotMap, Supplier indexFileDeleterSupplier) { + public CatalogSnapshot(long id, List segmentList, Map catalogSnapshotMap, Supplier indexFileDeleterSupplier) { super("catalog_snapshot_" + id); this.id = id; + this.segmentList = segmentList; this.dfGroupedSearchableFiles = new HashMap<>(); this.lastWriterGeneration = -1; - refreshResult.getRefreshedFiles().forEach((dataFormat, writerFiles) -> { - dfGroupedSearchableFiles.put(dataFormat.name(), writerFiles); - writerFiles.stream().mapToLong(WriterFileSet::getWriterGeneration).max().ifPresent(value -> this.lastWriterGeneration = value); - }); + + segmentList.forEach(segment -> segment.getDFGroupedSearchableFiles().forEach((dataFormat, writerFiles) -> { + dfGroupedSearchableFiles.computeIfAbsent(dataFormat, k -> new ArrayList<>()).add(writerFiles); + this.lastWriterGeneration = Math.max(this.lastWriterGeneration, writerFiles.getWriterGeneration()); + })); this.catalogSnapshotMap = catalogSnapshotMap; this.indexFileDeleterSupplier = indexFileDeleterSupplier; // Whenever a new CatalogSnapshot is created add its files to the IndexFileDeleter indexFileDeleterSupplier.get().addFileReferences(this); } - private CatalogSnapshot(long id, Map> dfGroupedSearchableFiles) { - super("catalog_snapshot"); - this.id = id; - this.dfGroupedSearchableFiles = dfGroupedSearchableFiles; - } - public CatalogSnapshot(StreamInput in) throws IOException { super("catalog_snapshot"); this.id = in.readLong(); this.lastWriterGeneration = in.readLong(); - this.dfGroupedSearchableFiles = new HashMap<>(); - int mapSize = in.readVInt(); - for (int i = 0; i < mapSize; i++) { - String dataFormat = in.readString(); - int fileSetCount = in.readVInt(); - List fileSets = new ArrayList<>(fileSetCount); - for (int j = 0; j < fileSetCount; j++) { - fileSets.add(new WriterFileSet(in)); - } - dfGroupedSearchableFiles.put(dataFormat, fileSets); + int segmentCount = in.readVInt(); + this.segmentList = new ArrayList<>(segmentCount); + for (int i = 0; i < segmentCount; i++) { + segmentList.add(new Segment(in)); } + + // Rebuild dfGroupedSearchableFiles from segmentList + this.dfGroupedSearchableFiles = new HashMap<>(); + segmentList.forEach(segment -> segment.getDFGroupedSearchableFiles().forEach((dataFormat, writerFiles) -> { + dfGroupedSearchableFiles.computeIfAbsent(dataFormat, k -> new ArrayList<>()).add(writerFiles); + })); } public CatalogSnapshot remapPaths(Path newShardDataPath) { - Map> remappedFiles = new HashMap<>(); - for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { - String dataFormat = entry.getKey(); - List remappedFileSets = new ArrayList<>(); - for (WriterFileSet fileSet : entry.getValue()) { - // Create new WriterFileSet with updated directory and file paths - WriterFileSet remappedFileSet = fileSet.withDirectory(newShardDataPath.toString()); - remappedFileSets.add(remappedFileSet); + List remappedSegments = new ArrayList<>(); + for (Segment segment : segmentList) { + Segment remappedSegment = new Segment(segment.getGeneration()); + for (Map.Entry entry : segment.getDFGroupedSearchableFiles().entrySet()) { + String dataFormat = entry.getKey(); + WriterFileSet originalFileSet = entry.getValue(); + WriterFileSet remappedFileSet = originalFileSet.withDirectory(newShardDataPath.toString()); + remappedSegment.addSearchableFiles(dataFormat, remappedFileSet); } - remappedFiles.put(dataFormat, remappedFileSets); + remappedSegments.add(remappedSegment); } - return new CatalogSnapshot(this.id, remappedFiles); + return new CatalogSnapshot(this.id, remappedSegments, this.catalogSnapshotMap, this.indexFileDeleterSupplier); } @Override public void writeTo(StreamOutput out) throws IOException { out.writeLong(id); out.writeLong(lastWriterGeneration); - out.writeVInt(dfGroupedSearchableFiles.size()); - for (Map.Entry> entry : dfGroupedSearchableFiles.entrySet()) { - out.writeString(entry.getKey()); - out.writeVInt(entry.getValue().size()); - for (WriterFileSet fileSet : entry.getValue()) { - fileSet.writeTo(out); + + out.writeVInt(segmentList != null ? segmentList.size() : 0); + if (segmentList != null) { + for (Segment segment : segmentList) { + segment.writeTo(out); } } } @@ -132,13 +128,8 @@ public Collection getSearchableFiles(String dataFormat) { return Collections.emptyList(); } - public Collection getSegments() { - Map segmentMap = new HashMap<>(); - dfGroupedSearchableFiles.forEach((dataFormat, writerFileSets) -> writerFileSets.forEach(writerFileSet -> { - Segment segment = segmentMap.computeIfAbsent(writerFileSet.getWriterGeneration(), Segment::new); - segment.addSearchableFiles(dataFormat, writerFileSet); - })); - return Collections.unmodifiableCollection(segmentMap.values()); + public List getSegments() { + return segmentList; } @Override @@ -172,10 +163,10 @@ public void setCatalogSnapshotMap(Map catalogSnapshotMap) @Override public String toString() { - return "CatalogSnapshot{" + "id=" + id + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; + return "CatalogSnapshot{" + "id=" + id + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + ", List of Segment= " + segmentList + '}'; } - public static class Segment implements Serializable { + public static class Segment implements Serializable, Writeable { private final long generation; private final Map dfGroupedSearchableFiles; @@ -185,10 +176,25 @@ public Segment(long generation) { this.generation = generation; } + public Segment(StreamInput in) throws IOException { + this.generation = in.readLong(); + this.dfGroupedSearchableFiles = new HashMap<>(); + int mapSize = in.readVInt(); + for (int i = 0; i < mapSize; i++) { + String dataFormat = in.readString(); + WriterFileSet writerFileSet = new WriterFileSet(in); + dfGroupedSearchableFiles.put(dataFormat, writerFileSet); + } + } + public void addSearchableFiles(String dataFormat, WriterFileSet writerFileSetGroup) { dfGroupedSearchableFiles.put(dataFormat, writerFileSetGroup); } + public Map getDFGroupedSearchableFiles() { + return dfGroupedSearchableFiles; + } + public Collection getSearchableFiles(String df) { List searchableFiles = new ArrayList<>(); String directory = dfGroupedSearchableFiles.get(df).getDirectory(); @@ -202,6 +208,16 @@ public long getGeneration() { return generation; } + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeLong(generation); + out.writeVInt(dfGroupedSearchableFiles.size()); + for (Map.Entry entry : dfGroupedSearchableFiles.entrySet()) { + out.writeString(entry.getKey()); + entry.getValue().writeTo(out); + } + } + @Override public String toString() { return "Segment{" + "generation=" + generation + ", dfGroupedSearchableFiles=" + dfGroupedSearchableFiles + '}'; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java new file mode 100644 index 0000000000000..8cd572cc5c875 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java @@ -0,0 +1,133 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.coord; + +import org.opensearch.index.engine.exec.DataFormat; +import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.RefreshResult; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.commit.Committer; +import org.opensearch.index.engine.exec.merge.MergeResult; +import org.opensearch.index.engine.exec.merge.OneMerge; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.atomic.AtomicReference; + +public class CatalogSnapshotManager { + + private CatalogSnapshot catalogSnapshot; + private final Committer compositeEngineCommitter; + private final Map catalogSnapshotMap; + private final AtomicReference indexFileDeleter; + + public CatalogSnapshotManager(Committer compositeEngineCommitter, CatalogSnapshot lastCommitedSnapshot, AtomicReference indexFileDeleter) { + catalogSnapshotMap = new HashMap<>(); + this.compositeEngineCommitter = compositeEngineCommitter; + this.indexFileDeleter = indexFileDeleter; + if(lastCommitedSnapshot!=null) { + this.catalogSnapshot = lastCommitedSnapshot; + this.catalogSnapshot.setCatalogSnapshotMap(catalogSnapshotMap); + } else { + this.catalogSnapshot = new CatalogSnapshot(1, new ArrayList<>(), catalogSnapshotMap, indexFileDeleter::get); + } + catalogSnapshotMap.put(catalogSnapshot.getId(), catalogSnapshot); + + } + + public CatalogSnapshot getCatalogSnapshotFromId(long catalogSnapshotId) { + return catalogSnapshotMap.get(catalogSnapshotId); + } + + public CompositeEngine.ReleasableRef acquireSnapshot() { + final CatalogSnapshot snapshot = catalogSnapshot; + snapshot.incRef(); // this should be package-private + return new CompositeEngine.ReleasableRef(snapshot) { + @Override + public void close() throws Exception { + snapshot.decRef(); // this should be package-private + } + }; + } + + public synchronized CatalogSnapshot applyRefreshResult(RefreshResult refreshResult) { + CatalogSnapshot newCatSnap; + newCatSnap = new CatalogSnapshot(catalogSnapshot.getId()+1, refreshResult.getRefreshedSegments(), catalogSnapshotMap, indexFileDeleter::get); + commitCatalogSnapshot(newCatSnap); + + return newCatSnap; + } + + public synchronized CatalogSnapshot applyMergeResults(MergeResult mergeResult, OneMerge oneMerge) { + + List segmentList = catalogSnapshot.getSegments(); + + CatalogSnapshot.Segment segmentToAdd = getSegment(mergeResult.getMergedWriterFileSet()); + + Set filesToRemove = new HashSet<>(); + oneMerge.getFilesToMerge().forEach(file -> filesToRemove.add(file)); + + boolean inserted = false; + int newSegIdx = 0; + for (int segIdx = 0, cnt = segmentList.size(); segIdx < cnt; segIdx++) { + assert segIdx >= newSegIdx; + CatalogSnapshot.Segment currSegment = segmentList.get(segIdx); + if(filesToRemove.containsAll(currSegment.getSearchableFiles(oneMerge.getDataFormat().name()))) { + if (!inserted) { + segmentList.set(segIdx, segmentToAdd); + inserted = true; + newSegIdx++; + } + } else { + segmentList.set(newSegIdx, currSegment); + newSegIdx++; + } + } + + // the rest of the segments in list are duplicates, so don't remove from map, only list! + segmentList.subList(newSegIdx, segmentList.size()).clear(); + + // Either we found place to insert segment, or, we did + // not, but only because all segments we merged becamee + // deleted while we are merging, in which case it should + // be the case that the new segment is also all deleted, + // we insert it at the beginning if it should not be dropped: + if (!inserted) { + segmentList.add(0, segmentToAdd); + } + CatalogSnapshot newCatSnap = new CatalogSnapshot(catalogSnapshot.getId()+1, segmentList, catalogSnapshotMap, indexFileDeleter::get); + + // Commit new catalog snapshot + commitCatalogSnapshot(newCatSnap); + + return newCatSnap; + } + + private synchronized void commitCatalogSnapshot(CatalogSnapshot newCatSnap) { + catalogSnapshotMap.put(newCatSnap.getId(), newCatSnap); + if (catalogSnapshot != null) { + catalogSnapshot.decRef(); + } + catalogSnapshot = newCatSnap; + compositeEngineCommitter.addLuceneIndexes(catalogSnapshot); + } + + private CatalogSnapshot.Segment getSegment(Map writerFileSetMap) { + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(0); + + for(DataFormat dataFormat : writerFileSetMap.keySet()) { + segment.addSearchableFiles(dataFormat.name(), writerFileSetMap.get(dataFormat)); + } + return segment; + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 6927cef28e8a7..26d888d8dee26 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -140,7 +140,6 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec private final TranslogManager translogManager; private final AtomicBoolean isClosed = new AtomicBoolean(false); private final List refreshListeners = new ArrayList<>(); - private CatalogSnapshot catalogSnapshot; private final List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); private final Map>> readEngines = new HashMap<>(); @@ -188,7 +187,7 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec private final KeyedLock noOpKeyedLock = new KeyedLock<>(); private final IndexingStrategyPlanner indexingStrategyPlanner; private final AtomicReference indexFileDeleter; - private final Map catalogSnapshotMap; + private final CatalogSnapshotManager catalogSnapshotManager; public CompositeEngine( EngineConfig engineConfig, @@ -205,7 +204,6 @@ public CompositeEngine( Committer committerRef = null; TranslogManager translogManagerRef = null; indexFileDeleter = new AtomicReference<>(null); - catalogSnapshotMap = new HashMap<>(); try { this.engineConfig = engineConfig; this.store.incRef(); @@ -253,14 +251,14 @@ public void onFailure(String reason, Exception ex) { committerRef = new LuceneCommitEngine(store, translogDeletionPolicy, translogManager::getLastSyncedGlobalCheckpoint); this.compositeEngineCommitter = committerRef; final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); + AtomicReference lastCommitedSnapshot = new AtomicReference<>(); this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { - this.catalogSnapshot = lastCommittedCatalogSnapshot; + lastCommitedSnapshot.set(lastCommittedCatalogSnapshot); // Since the catalog snapshot is created from last commit, deleter and map are not available, so we explicitly set them - catalogSnapshot.setIndexFileDeleterSupplier(indexFileDeleter::get); - catalogSnapshot.setCatalogSnapshotMap(catalogSnapshotMap); - this.catalogSnapshot.remapPaths(shardPath.getDataPath()); + lastCommitedSnapshot.get().setIndexFileDeleterSupplier(indexFileDeleter::get); +// TODO: Enable again +// lastCommitedSnapshot.get().remapPaths(shardPath.getDataPath()); lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); - catalogSnapshotMap.put(catalogSnapshot.getId(), catalogSnapshot); }); // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used this.engine = new CompositeIndexingExecutionEngine( @@ -270,8 +268,10 @@ public void onFailure(String reason, Exception ex) { lastCommittedWriterGeneration.incrementAndGet() ); //Initialize IndexFileDeleter before loadWriterFiles to ensure stale files are cleaned up before loading - indexFileDeleter.set(new IndexFileDeleter(this.engine, catalogSnapshot, shardPath)); + indexFileDeleter.set(new IndexFileDeleter(this.engine, lastCommitedSnapshot.get(), shardPath)); System.out.println("IndexFile Deleter after initialising : " + indexFileDeleter); + + this.catalogSnapshotManager = new CatalogSnapshotManager(committerRef, lastCommitedSnapshot.get(), indexFileDeleter); this.engine.loadWriterFiles(); this.maxSeqNoOfUpdatesOrDeletes = @@ -322,7 +322,7 @@ public void onFailure(String reason, Exception ex) { } } } - catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(catalogSnapshot, + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(lastCommitedSnapshot.get(), refreshListener )); success = true; @@ -676,80 +676,34 @@ public void deactivateThrottling() { } public synchronized void refresh(String source) throws EngineException { - refresh(source, Collections.emptyMap()); - } - - public synchronized void refresh(String source, Map refreshInputs) throws EngineException { - refreshListeners.forEach(PRE_REFRESH_LISTENER_CONSUMER); - - long id = 0L; - if (catalogSnapshot != null) { - id = catalogSnapshot.getId(); - } - CatalogSnapshot newCatSnap; - try { - RefreshResult refreshResult; - if (source.equals("merge")) { - refreshResult = engine.refresh(refreshInputs); - } else { - refreshResult = engine.refresh(new RefreshInput()); - if (refreshResult == null) { - return; - } + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = catalogSnapshotManager.acquireSnapshot()){ + refreshListeners.forEach(PRE_REFRESH_LISTENER_CONSUMER); + RefreshInput refreshInput = new RefreshInput(); + refreshInput.setExistingSegments(catalogSnapshotReleasableRef.getRef().getSegments()); + RefreshResult refreshResult = engine.refresh(refreshInput); + if (refreshResult == null) { + return; } - newCatSnap = new CatalogSnapshot(refreshResult, id + 1L, catalogSnapshotMap, indexFileDeleter::get); - catalogSnapshotMap.put(newCatSnap.getId(), newCatSnap); - System.out.println("CATALOG SNAPSHOT: " + newCatSnap); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - if (catalogSnapshot != null) { - catalogSnapshot.decRef(); - } - catalogSnapshot = newCatSnap; - compositeEngineCommitter.addLuceneIndexes(catalogSnapshot); - catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(catalogSnapshot, - refreshListener - )); - refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); - System.out.println("IndexFile Deleter after REFRESH : " + indexFileDeleter); + CatalogSnapshot newCatalogSnapshot = catalogSnapshotManager.applyRefreshResult(refreshResult); + System.out.println("CATALOG SNAPSHOT: " + newCatalogSnapshot); - // trigger merges - if(!source.equals("merge")) { + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(newCatalogSnapshot, + refreshListener + )); + refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); + + // trigger merges triggerPossibleMerges(); + } catch (Exception ex) { + ex.printStackTrace(); + throw new RuntimeException(ex); } } - public void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { - Map refreshInputs = new HashMap<>(); - - Map> mergedFileMetadata = mergeResult.getMergedFileMetadata(); - for (DataFormat dataFormat : mergedFileMetadata.keySet()) { - Collection mergedFiles = mergedFileMetadata.get(dataFormat); - RefreshInput refreshInput = new RefreshInput(); - - mergedFiles.forEach(mergedFile -> { - WriterFileSet writerFileSet = WriterFileSet.builder() - .directory(Path.of(mergedFile.directory())) - .writerGeneration(0) - .addFile(mergedFile.file()) - .build(); - refreshInput.add(writerFileSet); - }); - - oneMerge.getFilesToMerge().forEach(fileToMerge -> { - WriterFileSet writerFileSet = WriterFileSet.builder() - .directory(Path.of(fileToMerge.directory())) - .writerGeneration(0) - .addFile(fileToMerge.file()) - .build(); - refreshInput.addFilesToRemove(writerFileSet); - }); - - refreshInputs.put(dataFormat, refreshInput); - } - refresh("merge", refreshInputs); + public synchronized void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { + CatalogSnapshot newCatalogSnapshot = this.catalogSnapshotManager.applyMergeResults(mergeResult, oneMerge); + System.out.println("CATALOG SNAPSHOT: " + newCatalogSnapshot); } public void triggerPossibleMerges() { @@ -765,14 +719,7 @@ public void triggerPossibleMerges() { // this now becomes equivalent of the reader // Each search side specific impl can decide on how to init specific reader instances using this pit snapshot provided by writers public ReleasableRef acquireSnapshot() { - final CatalogSnapshot snapshot = catalogSnapshot; - snapshot.incRef(); - return new ReleasableRef<>(snapshot) { - @Override - public void close() { - snapshot.decRef(); - } - }; + return this.catalogSnapshotManager.acquireSnapshot(); } @ExperimentalApi @@ -871,10 +818,10 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { boolean shouldFlush = true; if (shouldFlush) { // TODO - translogManager.ensureCanFlush(); - try { + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = catalogSnapshotManager.acquireSnapshot()) { translogManager.rollTranslogGeneration(); logger.trace("starting commit for flush; commitTranslog=true"); - final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshot; + final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshotReleasableRef.getRef(); final Optional previousCatalogSnapshot = compositeEngineCommitter.readLastCommittedCatalogSnapshot(); long previousCatalogSnapshotId = previousCatalogSnapshot.map(CatalogSnapshot::getId).orElse(-1L); if (catalogSnapshotToFlush != null) { @@ -899,7 +846,7 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { ); // Once commit is successful, decRef the CatalogSnapshot of the older commit if (previousCatalogSnapshotId != -1) { - CatalogSnapshot prevCatSnap = catalogSnapshotMap.get(previousCatalogSnapshotId); + CatalogSnapshot prevCatSnap = catalogSnapshotManager.getCatalogSnapshotFromId(previousCatalogSnapshotId); if (prevCatSnap != null) prevCatSnap.decRef(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index be6eafc748755..dcb1d9e159f7b 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -11,6 +11,7 @@ import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; import org.opensearch.index.engine.exec.coord.Any; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; @@ -127,15 +128,14 @@ private synchronized void removeMergingSegments(OneMerge oneMerge) { public MergeResult doMerge(OneMerge oneMerge) { - Map> mergedFiles = new HashMap<>(); + Map mergedWriterFileSet = new HashMap<>(); try(CompositeEngine.ReleasableRef catalogSnapshot = compositeEngine.acquireSnapshot()) { Collection filesToMerge = getFilesToMerge(oneMerge, compositeDataFormat.getPrimaryDataFormat(), catalogSnapshot.getRef()); // Merging primary data format MergeResult primaryMergeResult = dataFormatMergerMap.get(compositeDataFormat.getPrimaryDataFormat()).merge(filesToMerge); - mergedFiles.put(compositeDataFormat.getPrimaryDataFormat(), primaryMergeResult.getMergedFileMetadata().get(compositeDataFormat.getPrimaryDataFormat())); - + mergedWriterFileSet.put(compositeDataFormat.getPrimaryDataFormat(), primaryMergeResult.getMergedWriterFileSetForDataformat(compositeDataFormat.getPrimaryDataFormat())); // Merging other format as per the old segment + row id -> new row id mapping. compositeIndexingExecutionEngine.getDelegates().stream() .filter(engine -> !engine.getDataFormat().equals(compositeDataFormat.getPrimaryDataFormat())) @@ -143,9 +143,9 @@ public MergeResult doMerge(OneMerge oneMerge) { DataFormat dataFormat = indexingExecutionEngine.getDataFormat(); Collection files = getFilesToMerge(oneMerge, dataFormat, catalogSnapshot.getRef()); MergeResult secondaryMergeResult = dataFormatMergerMap.get(dataFormat).merge(files, primaryMergeResult.getRowIdMapping()); - mergedFiles.put(dataFormat, secondaryMergeResult.getMergedFileMetadata().get(dataFormat)); + mergedWriterFileSet.put(dataFormat, secondaryMergeResult.getMergedWriterFileSetForDataformat(dataFormat)); }); - return new MergeResult(primaryMergeResult.getRowIdMapping(), mergedFiles); + return new MergeResult(primaryMergeResult.getRowIdMapping(), mergedWriterFileSet); } catch (Exception e) { throw new RuntimeException(e); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java index a8217877dc56b..3a5830cc605e8 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeResult.java @@ -9,9 +9,8 @@ package org.opensearch.index.engine.exec.merge; import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; -import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -19,18 +18,22 @@ public class MergeResult { private RowIdMapping rowIdMapping; - private Map> mergedFileMetadata = new HashMap<>(); + private Map mergedWriterFileSet = new HashMap<>(); - public MergeResult(RowIdMapping rowIdMapping, Map> mergedFileMetadata) { + public MergeResult(RowIdMapping rowIdMapping, Map mergedWriterFileSet) { this.rowIdMapping = rowIdMapping; - this.mergedFileMetadata = mergedFileMetadata; + this.mergedWriterFileSet = mergedWriterFileSet; } public RowIdMapping getRowIdMapping() { return rowIdMapping; } - public Map> getMergedFileMetadata() { - return mergedFileMetadata; + public Map getMergedWriterFileSet () { + return mergedWriterFileSet; + } + + public WriterFileSet getMergedWriterFileSetForDataformat (DataFormat dataFormat) { + return mergedWriterFileSet.get(dataFormat); } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 3a432a5510b97..43a35dd53bc69 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -20,6 +20,7 @@ import org.opensearch.index.engine.exec.WriteResult; import org.opensearch.index.engine.exec.Writer; import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowIdMapping; import org.opensearch.index.mapper.MappedFieldType; @@ -77,7 +78,9 @@ public void deleteFiles(Map> filesToDelete) throws IO public RefreshResult refresh(RefreshInput refreshInput) throws IOException { openFiles.addAll(refreshInput.getWriterFiles()); RefreshResult refreshResult = new RefreshResult(); - refreshResult.add(DataFormat.TEXT, openFiles); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(0); + openFiles.forEach(file -> segment.addSearchableFiles(DataFormat.TEXT.name(), file)); + refreshResult.setRefreshedSegments(List.of(segment)); return refreshResult; } diff --git a/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java index 19acbb95f310d..a39a4f8ad6d54 100644 --- a/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java +++ b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java @@ -53,21 +53,21 @@ public void setUp() throws Exception { ShardId shardId = new ShardId(new Index("test", "test-uuid"), 0); Path shardDir = tempDir.resolve("test-uuid").resolve("0"); shardPath = new ShardPath(false, shardDir, shardDir, shardId); - + mockEngine = mock(CompositeIndexingExecutionEngine.class); catalogSnapshotId = new AtomicLong(0); lastCommittedSnapshotId = new AtomicLong(0); catalogSnapshotMap = new HashMap<>(); deletedFiles = new HashSet<>(); - + // Mock engine deleteFiles to track deleted files doAnswer(invocation -> { Map> filesToDelete = invocation.getArgument(0); filesToDelete.values().forEach(deletedFiles::addAll); return null; }).when(mockEngine).deleteFiles(any()); - + catalogSnapshot = null; indexFileDeleter = new IndexFileDeleter(mockEngine, null, shardPath); } @@ -89,7 +89,7 @@ public void testMultipleDataFormats() { public void testRefreshCreatesNewSnapshotAndAddsReferences() { // Simulate refresh creating new snapshot simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet"))); - + assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").size()); assertEquals(1, indexFileDeleter.getFileRefCounts().get("parquet").get("dir1/file1.parquet").get()); } @@ -97,7 +97,7 @@ public void testRefreshCreatesNewSnapshotAndAddsReferences() { public void testMultipleSnapshotsWithOverlappingFiles() { // First refresh simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file1.parquet", "file2.parquet"))); - + // Second refresh with overlapping files simulateRefresh(Map.of("parquet", createWriterFileSet("dir1", "file2.parquet", "file3.parquet"))); @@ -152,23 +152,23 @@ public void testDeletionsWthFlush() { private void simulateRefresh(Map> files) { - // Create RefreshResult - RefreshResult refreshResult = mock(RefreshResult.class); - Map> refreshedFiles = new HashMap<>(); - + // Create RefreshResult with segments + RefreshResult refreshResult = new RefreshResult(); + CatalogSnapshot.Segment segment = new CatalogSnapshot.Segment(catalogSnapshotId.get() + 1); + files.forEach((formatName, fileSets) -> { - DataFormat dataFormat = mock(DataFormat.class); - when(dataFormat.name()).thenReturn(formatName); - refreshedFiles.put(dataFormat, fileSets); + fileSets.forEach(fileSet -> { + segment.addSearchableFiles(formatName, fileSet); + }); }); - - when(refreshResult.getRefreshedFiles()).thenReturn(refreshedFiles); + + refreshResult.setRefreshedSegments(List.of(segment)); CatalogSnapshot prevSnap = catalogSnapshot; // Create new snapshot long id = catalogSnapshotId.incrementAndGet(); - catalogSnapshot = new CatalogSnapshot(refreshResult, id, catalogSnapshotMap, () -> indexFileDeleter); + catalogSnapshot = new CatalogSnapshot(id, List.of(segment), catalogSnapshotMap, () -> indexFileDeleter); catalogSnapshotMap.put(id, catalogSnapshot); // Release previous snapshot if exists @@ -201,11 +201,11 @@ private List createWriterFileSet(String directory, String... file WriterFileSet.Builder builder = WriterFileSet.builder() .directory(Path.of(directory)) .writerGeneration(1L); - + for (String file : files) { builder.addFile(file); } - + return Collections.singletonList(builder.build()); } -} \ No newline at end of file +} From fba04d6b8a8fe8d362fb9e367c858a335af37d3e Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Wed, 19 Nov 2025 16:23:21 +0530 Subject: [PATCH 096/112] Remove unused rust native calls and interface methods (#20041) * Single commit with all changes * Update the e2e test workflow * Clean unused functions Signed-off-by: Arpit Bandejiya * remove imports --------- Signed-off-by: Arpit Bandejiya --- .../execution/search/spi/DataSourceCodec.java | 39 ---- .../ParquetDataFormatPlugin.java | 4 - .../parquetdataformat/bridge/RustBridge.java | 31 --- .../engine/read/ParquetDataSourceCodec.java | 103 --------- .../engine/read/ParquetRecordBatchStream.java | 117 ----------- .../merge/RecordBatchMergeStrategy.java | 19 -- .../src/main/rust/src/lib.rs | 14 +- .../src/main/rust/src/read_lib.rs | 198 ------------------ plugins/engine-datafusion/jni/src/lib.rs | 102 +-------- .../datafusion/DataFusionService.java | 106 ---------- .../datafusion/DatafusionEngine.java | 13 -- .../DatafusionQueryPhaseSearcher.java | 44 ---- .../core/DefaultRecordBatchStream.java | 114 ---------- .../datafusion/jni/NativeBridge.java | 5 - .../datafusion/jni/handle/SessionHandle.java | 35 ---- .../search/DatafusionQueryPhaseExecutor.java | 49 ----- .../datafusion/search/DatafusionSearcher.java | 11 - .../TestDataFusionServiceTests.java | 82 -------- .../index/engine/SearchExecEngine.java | 12 -- .../search/query/GenericQueryPhase.java | 25 --- 20 files changed, 11 insertions(+), 1112 deletions(-) delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java delete mode 100644 modules/parquet-data-format/src/main/rust/src/read_lib.rs delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java delete mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java delete mode 100644 server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java index e58f0a7e5bba0..bc2af469326d2 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/search/spi/DataSourceCodec.java @@ -10,9 +10,6 @@ import org.opensearch.vectorized.execution.search.DataFormat; -import java.util.List; -import java.util.concurrent.CompletableFuture; - /** * Service Provider Interface for DataFusion data source codecs. * Implementations provide access to different data formats (CSV, Parquet, etc.) @@ -20,42 +17,6 @@ */ public interface DataSourceCodec { - /** - * Register a directory containing data files with the runtime environment to prewarm cache - * This ideally should be used as part of each refresh - equivalent of acquire searcher - * where we register the files associated with this particular refresh point - * @param directoryPath the path to the directory containing data files - * @param fileNames the list of file names to register - * @param runtimeId the runtime environment ID - * @return a CompletableFuture that completes when registration is done - */ - CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId); - - /** - * Create a new session context for query execution. - * - * @param globalRuntimeEnvId the global runtime environment ID - * @return a CompletableFuture containing the session context ID - */ - CompletableFuture createSessionContext(long globalRuntimeEnvId); - - /** - * Execute a Substrait query plan. - * - * @param sessionContextId the session context ID - * @param substraitPlanBytes the serialized Substrait query plan - * @return a CompletableFuture containing the result stream - */ - CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes); - - /** - * Close a session context and free associated resources. - * - * @param sessionContextId the session context ID to close - * @return a CompletableFuture that completes when the context is closed - */ - CompletableFuture closeSessionContext(long sessionContextId); - /** * Returns the data format name */ diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java index 4f9561270354c..f3dd169c7a373 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/ParquetDataFormatPlugin.java @@ -105,10 +105,6 @@ public Collection createComponents( return super.createComponents(client, clusterService, threadPool, resourceWatcherService, scriptService, xContentRegistry, environment, nodeEnvironment, namedWriteableRegistry, indexNameExpressionResolver, repositoriesServiceSupplier); } - private Class getDataFormatType() { - return ParquetDataFormat.class; - } - @Override public DataFormat getDataFormat() { return new ParquetDataFormat(); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 52dd390930a10..042ea48e403f5 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -30,38 +30,7 @@ public class RustBridge { public static native void flushToDisk(String file) throws IOException; public static native long getFilteredNativeBytesUsed(String pathPrefix); - // State and metrics methods handled on Rust side - public static native boolean writerExists(String file); - public static native long getWriteCount(String file); - public static native long getTotalRows(String file); - public static native String[] getActiveWriters(); - - // Validation helpers that could be implemented natively for better performance - public static boolean isValidFileName(String fileName) { - return fileName != null && !fileName.trim().isEmpty(); - } - - public static boolean isValidMemoryAddress(long address) { - return address != 0; - } - - - // DATAFUSION specific native methods starts here - - // Record batch and streaming related methods - public static native String nativeNextBatch(long streamPtr); - - public static native void nativeCloseStream(long streamPtr); - // Native method declarations - these will be implemented in the JNI library - public static native void nativeRegisterDirectory(String tableName, String directoryPath, String[] files, long runtimeId); - - public static native long nativeCreateSessionContext(String[] configKeys, String[] configValues); - - public static native long nativeExecuteSubstraitQuery(long sessionContextPtr, byte[] substraitPlan); - - public static native void nativeCloseSessionContext(long sessionContextPtr); - public static native void mergeParquetFilesInRust(List inputFiles, String outputFile); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java index f20a9bae06ea2..5e60e949cd527 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetDataSourceCodec.java @@ -12,28 +12,16 @@ import org.apache.logging.log4j.Logger; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCloseSessionContext; -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCreateSessionContext; -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeExecuteSubstraitQuery; -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeRegisterDirectory; - /** * Datasource codec implementation for parquet files */ public class ParquetDataSourceCodec implements DataSourceCodec { private static final Logger logger = LogManager.getLogger(ParquetDataSourceCodec.class); - private static final AtomicLong runtimeIdGenerator = new AtomicLong(0); - private static final AtomicLong sessionIdGenerator = new AtomicLong(0); - private final ConcurrentHashMap sessionContexts = new ConcurrentHashMap<>(); // JNI library loading static { @@ -46,97 +34,6 @@ public class ParquetDataSourceCodec implements DataSourceCodec { } } - @Override - public CompletableFuture registerDirectory(String directoryPath, List fileNames, long runtimeId) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Registering directory: {} with {} files", directoryPath, fileNames.size()); - - // Convert file names to arrays for JNI - String[] fileArray = fileNames.toArray(new String[0]); - - // Call native method to register directory - nativeRegisterDirectory("csv_table", directoryPath, fileArray, runtimeId); - return null; - } catch (Exception e) { - logger.error("Failed to register directory: " + directoryPath, e); - throw new CompletionException("Failed to register directory", e); - } - }); - } - - @Override - public CompletableFuture createSessionContext(long globalRuntimeEnvId) { - return CompletableFuture.supplyAsync(() -> { - try { - long sessionId = sessionIdGenerator.incrementAndGet(); - logger.debug("Creating session context with ID: {} for runtime: {}", sessionId, globalRuntimeEnvId); - - // Default configuration - String[] configKeys = { "batch_size", "target_partitions" }; - String[] configValues = { "1024", "4" }; - - // Create native session context - long nativeContextPtr = nativeCreateSessionContext(configKeys, configValues); - sessionContexts.put(sessionId, nativeContextPtr); - - logger.info("Created session context with ID: {}", sessionId); - return sessionId; - } catch (Exception e) { - logger.error("Failed to create session context for runtime: " + globalRuntimeEnvId, e); - throw new CompletionException("Failed to create session context", e); - } - }); - } - - @Override - public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Executing Substrait query for session: {}", sessionContextId); - - Long nativeContextPtr = sessionContexts.get(sessionContextId); - if (nativeContextPtr == null) { - throw new IllegalArgumentException("Invalid session context ID: " + sessionContextId); - } - - // Execute query and get native stream pointer - long nativeStreamPtr = nativeExecuteSubstraitQuery(nativeContextPtr, substraitPlanBytes); - - // Create Java wrapper for the native stream - RecordBatchStream stream = new ParquetRecordBatchStream(nativeStreamPtr); - - logger.info("Successfully executed Substrait query for session: {}", sessionContextId); - return stream; - } catch (Exception e) { - logger.error("Failed to execute Substrait query for session: " + sessionContextId, e); - throw new CompletionException("Failed to execute Substrait query", e); - } - }); - } - - @Override - public CompletableFuture closeSessionContext(long sessionContextId) { - return CompletableFuture.supplyAsync(() -> { - try { - logger.debug("Closing session context: {}", sessionContextId); - - Long nativeContextPtr = sessionContexts.remove(sessionContextId); - if (nativeContextPtr != null) { - nativeCloseSessionContext(nativeContextPtr); - logger.info("Successfully closed session context: {}", sessionContextId); - } else { - logger.warn("Session context not found: {}", sessionContextId); - } - - return null; - } catch (Exception e) { - logger.error("Failed to close session context: " + sessionContextId, e); - throw new CompletionException("Failed to close session context", e); - } - }); - } - public DataFormat getDataFormat() { return DataFormat.CSV; } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java deleted file mode 100644 index 3c23e4fd9d1b5..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/read/ParquetRecordBatchStream.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package com.parquet.parquetdataformat.engine.read; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -import java.util.concurrent.CompletableFuture; - -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeCloseStream; -import static com.parquet.parquetdataformat.bridge.RustBridge.nativeNextBatch; - -/** - * TODO : this need not be here - nothing specific to parquet - move to LIB ? - * Native implementation of RecordBatchStream that wraps a JNI stream pointer. - * This class provides a Java interface over native DataFusion record batches. - */ -public class ParquetRecordBatchStream implements RecordBatchStream { - - private static final Logger logger = LogManager.getLogger(ParquetRecordBatchStream.class); - - private final long nativeStreamPtr; - private volatile boolean closed = false; - private volatile boolean hasNextCached = false; - private volatile boolean hasNextValue = false; - - /** - * Creates a new ParquetRecordBatchStream wrapping the given native stream pointer. - * - * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream - */ - public ParquetRecordBatchStream(long nativeStreamPtr) { - if (nativeStreamPtr == 0) { - throw new IllegalArgumentException("Invalid native stream pointer"); - } - this.nativeStreamPtr = nativeStreamPtr; - logger.debug("Created ParquetRecordBatchStream with pointer: {}", nativeStreamPtr); - } - - @Override - public Object getSchema() { - return "ParquetSchema"; // Placeholder - } - - @Override - public CompletableFuture next() { - // PlaceholderImpl - return CompletableFuture.supplyAsync(() -> { - if (closed) { - return null; - } - - try { - // Get the next batch from native code - String batch = nativeNextBatch(nativeStreamPtr); - - // Reset cached hasNext value since we consumed a batch - hasNextCached = false; - - logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); - return batch; - } catch (Exception e) { - logger.error("Error getting next batch from stream", e); - return null; - } - }); - } - - @Override - public boolean hasNext() { - // Placeholder impl - if (closed) { - return false; - } - - if (hasNextCached) { - return hasNextValue; - } - - try { - // Check if there's a next batch available - // This is a simplified implementation - in practice, you might want to - // peek at the stream without consuming the batch - String nextBatch = nativeNextBatch(nativeStreamPtr); - hasNextValue = (nextBatch != null); - hasNextCached = true; - - logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); - return hasNextValue; - } catch (Exception e) { - logger.error("Error checking for next batch in stream", e); - return false; - } - } - - @Override - public void close() { - if (!closed) { - logger.debug("Closing ParquetRecordBatchStream with pointer: {}", nativeStreamPtr); - try { - nativeCloseStream(nativeStreamPtr); - closed = true; - logger.debug("Successfully closed ParquetRecordBatchStream"); - } catch (Exception e) { - logger.error("Error closing ParquetRecordBatchStream", e); - throw e; - } - } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index cb91ea3175ec1..a1d7c90964174 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -25,7 +25,6 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; -import static com.parquet.parquetdataformat.bridge.RustBridge.getTotalRows; import static com.parquet.parquetdataformat.bridge.RustBridge.mergeParquetFilesInRust; /** @@ -75,22 +74,4 @@ private String getMergedFileName(long generation) { private String getMergedFilePath(long generation, String outputDirectory) { return Path.of(outputDirectory, getMergedFileName(generation)).toString(); } - - private Map buildRowIdMapping(List filePaths) { - Map rowIdMapping = new HashMap<>(); - long newRowId = 0; - - for (Path filePath : filePaths) { - String fileIdentifier = filePath.getFileName().toString(); - String filePathStr = filePath.toString(); - long fileRowCount = getTotalRows(filePathStr); - - for (long currentRowId = 0; currentRowId < fileRowCount; currentRowId++) { - RowId originalRowId = new RowId(currentRowId, fileIdentifier); - rowIdMapping.put(originalRowId, newRowId++); - } - } - - return rowIdMapping; - } } diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index 9e005bd27cf8d..14c3c91cb2b84 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -166,7 +166,7 @@ impl NativeParquetWriter { println!("{}", log_msg.trim()); Self::log_to_file(&log_msg); - if let Some(mut file) = FILE_MANAGER.get_mut(&filename) { + if let Some(file) = FILE_MANAGER.get_mut(&filename) { match file.sync_all() { Ok(_) => { let success_msg = format!("[RUST] Successfully fsynced file: {}\n", filename); @@ -190,9 +190,9 @@ impl NativeParquetWriter { } fn get_filtered_writer_memory_usage(path_prefix: String) -> Result> { - let log_msg = format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}\n", path_prefix); -// println!("{}", log_msg.trim()); -// Self::log_to_file(&log_msg); + let _log_msg = format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}\n", path_prefix); +// println!("{}", _log_msg.trim()); +// Self::log_to_file(&_log_msg); let mut total_memory = 0; let mut writer_count = 0; @@ -215,9 +215,9 @@ impl NativeParquetWriter { } } - let total_msg = format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes\n", writer_count, path_prefix, total_memory); - //println!("{}", total_msg.trim()); - //Self::log_to_file(&total_msg); + let _total_msg = format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes\n", writer_count, path_prefix, total_memory); + //println!("{}", _total_msg.trim()); + //Self::log_to_file(&_total_msg); Ok(total_memory) } diff --git a/modules/parquet-data-format/src/main/rust/src/read_lib.rs b/modules/parquet-data-format/src/main/rust/src/read_lib.rs deleted file mode 100644 index 516e9acca9d06..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/read_lib.rs +++ /dev/null @@ -1,198 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -//! OpenSearch DataFusion parquet JNI Library -//! -//! This library provides JNI bindings for DataFusion query execution, - -use jni::JNIEnv; -use jni::objects::{JClass, JString, JObjectArray, JByteArray}; -use jni::sys::{jlong, jstring}; -use std::ptr; -use std::collections::HashMap; - -mod context; -mod runtime; -mod stream; -mod substrait; -mod util; -mod parquet_exec; - -use context::SessionContextManager; -use runtime::RuntimeManager; -use stream::RecordBatchStreamWrapper; -use substrait::SubstraitExecutor; -use datafusion::execution::context::SessionContext; -use datafusion::execution::runtime_env::RuntimeEnv; - -/** -TODO : Put more thought into this -**/ -static mut RUNTIME_MANAGER: Option = None; - -static mut SESSION_MANAGER: Option = None; - -/// Initialize the managers (call once) -fn init_managers() { - unsafe { - if RUNTIME_MANAGER.is_none() { - RUNTIME_MANAGER = Some(RuntimeManager::new()); - } - if SESSION_MANAGER.is_none() { - SESSION_MANAGER = Some(SessionContextManager::new()); - } - } -} -static mut RUNTIME_ENVIRONMENTS: Option> = None; - - -/// Register a directory as a table in the global context and return runtime environment ID -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeRegisterDirectory( - mut env: JNIEnv, - _class: JClass, - table_name: JString, - directory_path: JString, - files: JObjectArray, - runtime_id: jlong -) { - let runtimeEnv = unsafe { &mut *(runtime_id as *mut RuntimeEnv) }; - // placeholder -} - -/// Create a new session context -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCreateSessionContext( - mut env: JNIEnv, - _class: JClass, - config_keys: JObjectArray, - config_values: JObjectArray, -) -> jlong { - // Initialize managers if not already done - init_managers(); - - // PLACEHOLDER - // Parse configuration from JNI arrays - let config = match util::parse_string_map(&mut env, config_keys, config_values) { - Ok(cfg) => cfg, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to parse config: {}", e)); - return 0; - } - }; - - // Create session context - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - SESSION_MANAGER.as_mut().unwrap().create_session_context(config).await - }) - } { - Ok(context_ptr) => context_ptr as jlong, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to create session context: {}", e)); - 0 - } - } -} - -/// Execute a Substrait query plan -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeExecuteSubstraitQuery( - mut env: JNIEnv, - _class: JClass, - session_context_ptr: jlong, - substrait_plan: JByteArray, -) -> jlong { - - // Convert JByteArray to Vec - let substrait_plan_bytes = match env.convert_byte_array(substrait_plan) { - Ok(bytes) => bytes, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to convert substrait plan: {}", e)); - return 0; - } - }; - - // Execute the query - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - let executor = SubstraitExecutor::new(); - executor.execute_plan(session_context_ptr as *mut SessionContext, &substrait_plan_bytes).await - }) - } { - Ok(stream_ptr) => stream_ptr as jlong, - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to execute query: {}", e)); - 0 - } - } -} - -/// Close a session context -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCloseSessionContext( - mut env: JNIEnv, - _class: JClass, - session_context_ptr: jlong, -) { - - if let Err(e) = unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - SESSION_MANAGER.as_mut().unwrap() - .close_session_context(session_context_ptr as *mut SessionContext) - .await - }) - } { - util::throw_exception(&mut env, &format!("Failed to close session context: {}", e)); - } -} - -/// Get the next record batch from a stream -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeNextBatch( - mut env: JNIEnv, - _class: JClass, - stream_ptr: jlong, -) -> jstring { - - let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamWrapper) }; - - match unsafe { - RUNTIME_MANAGER.as_ref().unwrap().block_on(async { - stream.next_batch().await - }) - } { - Ok(Some(batch_json)) => { - match env.new_string(&batch_json) { - Ok(jstr) => jstr.into_raw(), - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to create Java string: {}", e)); - ptr::null_mut() - } - } - } - Ok(None) => ptr::null_mut(), // End of stream - Err(e) => { - util::throw_exception(&mut env, &format!("Failed to get next batch: {}", e)); - ptr::null_mut() - } - } -} - -/// Close a record batch stream -#[no_mangle] -pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_nativeCloseStream( - _env: JNIEnv, - _class: JClass, - stream_ptr: jlong, -) { - if stream_ptr != 0 { - let stream = unsafe { Box::from_raw(stream_ptr as *mut RecordBatchStreamWrapper) }; - drop(stream); - } -} diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index dddf25a482445..c3bd1555990de 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -22,8 +22,8 @@ use arrow_array::ffi::FFI_ArrowArray; use arrow_schema::DataType; use arrow_schema::ffi::FFI_ArrowSchema; use datafusion::{ - common::DataFusionError, - datasource::file_format::csv::CsvFormat, + common::DataFusionError + , datasource::file_format::parquet::ParquetFormat, datasource::listing::ListingTableUrl, datasource::object_store::ObjectStoreUrl, @@ -98,7 +98,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlo // Take ownership of the CustomCacheManager let custom_cache_manager = unsafe { *Box::from_raw(cache_manager_ptr as *mut CustomCacheManager) }; let cache_manager_config = custom_cache_manager.build_cache_manager_config(); - + let runtime_env = RuntimeEnvBuilder::new().with_cache_manager(cache_manager_config) .with_memory_pool(memory_pool.clone()) .build().unwrap(); @@ -142,8 +142,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeGlob } } - -/// Create a new DataFusion session context #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createSessionContext( _env: JNIEnv, @@ -159,7 +157,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createSes Box::into_raw(Box::new(context)) as jlong } -/// Close and cleanup a DataFusion context #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeSessionContext( _env: JNIEnv, @@ -171,7 +168,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_closeSess } } -/// Get version information #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersionInfo( env: JNIEnv, @@ -186,20 +182,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersio .as_raw() } -/// Get version information (legacy method name) -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_registerCsvDirectory( - _env: JNIEnv, - _class: JClass, - _context_id: jlong, - _table_name: JString, - _directory_path: JString, - _file_names: JObjectArray, -) -> jni::sys::jint { - // Legacy method - not implemented - 0 -} - #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCustomCacheManager( mut env: JNIEnv, @@ -380,7 +362,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu .build() .unwrap(); - + // TODO: get config from CSV DataFormat let mut config = SessionConfig::new(); config.options_mut().execution.parquet.pushdown_filters = false; @@ -492,82 +474,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu }) } -// If we need to create session context separately -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_nativeCreateSessionContext( - mut env: JNIEnv, - _class: JClass, - runtime_ptr: jlong, - shard_view_ptr: jlong, - global_runtime_env_ptr: jlong, -) -> jlong { - let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let table_path = shard_view.table_path(); - let files_metadata = shard_view.files_metadata(); - let object_meta: Arc> = Arc::new( - files_metadata - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect(), - ); - // Will use it once the global RunTime is defined - // let runtime_arc = unsafe { - // let boxed = &*(runtime_env_ptr as *const Pin>); - // (**boxed).clone() - // }; - - let list_file_cache = Arc::new(DefaultListFilesCache::default()); - list_file_cache.put(table_path.prefix(), object_meta); - - let runtime_env = RuntimeEnvBuilder::new() - .with_cache_manager( - CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)), - ) - .build() - .unwrap(); - - let mut config = SessionConfig::new(); - config.options_mut().execution.parquet.pushdown_filters = false; - config.options_mut().execution.target_partitions = 9; - - let ctx = SessionContext::new_with_config_rt(config, Arc::new(runtime_env)); - - // Create default parquet options - let file_format = CsvFormat::default(); - let listing_options = ListingOptions::new(Arc::new(file_format)).with_file_extension(".csv"); - - // let runtime = unsafe { &mut *(runtime_ptr as *mut Runtime) }; - let mut session_context_ptr = 0; - - // Ideally the executor will give this - Runtime::new() - .expect("Failed to create Tokio Runtime") - .block_on(async { - let resolved_schema = listing_options - .infer_schema(&ctx.state(), &table_path.clone()) - .await - .unwrap(); - - let config = ListingTableConfig::new(table_path.clone()) - .with_listing_options(listing_options) - .with_schema(resolved_schema); - - // Create a new TableProvider - let provider = Arc::new(ListingTable::try_new(config).unwrap()); - let shard_id = table_path - .prefix() - .filename() - .expect("error in fetching Path"); - ctx.register_table(shard_id, provider) - .expect("Failed to attach the Table"); - - // Return back after wrapping in Box - session_context_ptr = Box::into_raw(Box::new(ctx)) as jlong - }); - - session_context_ptr -} - #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNext( mut env: JNIEnv, diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java index 247570bd21335..935eced69ec77 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DataFusionService.java @@ -12,18 +12,13 @@ import org.apache.logging.log4j.Logger; import org.opensearch.cluster.service.ClusterService; import org.opensearch.common.lifecycle.AbstractLifecycleComponent; -import org.opensearch.common.util.concurrent.ConcurrentCollections; -import org.opensearch.common.util.concurrent.ConcurrentMapLong; import org.opensearch.datafusion.core.DataFusionRuntimeEnv; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.datafusion.search.cache.CacheManager; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.vectorized.execution.search.spi.DataSourceCodec; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; -import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; /** * Service for managing DataFusion contexts and operations - essentially like SearchService @@ -31,7 +26,6 @@ public class DataFusionService extends AbstractLifecycleComponent { private static final Logger logger = LogManager.getLogger(DataFusionService.class); - private final ConcurrentMapLong sessionEngines = ConcurrentCollections.newConcurrentMapLongWithAggressiveConcurrency(); private final DataSourceRegistry dataSourceRegistry; private final DataFusionRuntimeEnv runtimeEnv; @@ -73,16 +67,6 @@ protected void doStart() { @Override protected void doStop() { logger.info("Stopping DataFusion service"); - - // Close all session contexts - for (Long sessionId : sessionEngines.keySet()) { - try { - closeSessionContext(sessionId).get(); - } catch (Exception e) { - logger.warn("Error closing session context {}", sessionId, e); - } - } - sessionEngines.clear(); runtimeEnv.close(); logger.info("DataFusion service stopped"); } @@ -92,101 +76,11 @@ protected void doClose() { doStop(); } - /** - * Register a directory with list of files to create a runtime environment - * with listing files cache of DataFusion - * - * @param directoryPath path to the directory containing files - * @param fileNames list of file names in the directory - * @return runtime environment ID - */ - public CompletableFuture registerDirectory(String directoryPath, List fileNames) { - DataSourceCodec engine = dataSourceRegistry.getDefaultEngine(); - if (engine == null) { - return CompletableFuture.failedFuture(new IllegalStateException("No DataFusion engine available")); - } - - logger.debug( - "Registering directory {} with {} files using engine {}", - directoryPath, - fileNames.size(), - engine.getClass().getSimpleName() - ); - - return engine.registerDirectory(directoryPath, fileNames, runtimeEnv.getPointer()); - } - - /** - * Create a session context - * - * @return session context ID - */ - public CompletableFuture createSessionContext() { - long runtimeEnvironmentId = runtimeEnv.getPointer(); - DataSourceCodec codec = dataSourceRegistry.getDefaultEngine(); - if (codec == null) { - return CompletableFuture.failedFuture(new IllegalArgumentException("Runtime environment not found: " + runtimeEnvironmentId)); - } - - logger.debug( - "Creating session context for runtime environment {} using engine {}", - runtimeEnvironmentId, - codec.getClass().getSimpleName() - ); - - return codec.createSessionContext(runtimeEnvironmentId).thenApply(sessionId -> { - // Track which engine created this session context - sessionEngines.put(sessionId, codec); - logger.debug("Created session context {} with engine {}", sessionId, codec.getClass().getSimpleName()); - return sessionId; - }); - } - - /** - * Execute a query accepting substrait plan bytes and run via session context - * - * @param sessionContextId the session context ID - * @param substraitPlanBytes the substrait plan as byte array - * @return record batch stream containing query results - */ - public CompletableFuture executeSubstraitQuery(long sessionContextId, byte[] substraitPlanBytes) { - DataSourceCodec engine = sessionEngines.get(sessionContextId); - if (engine == null) { - return CompletableFuture.failedFuture(new IllegalArgumentException("Session context not found: " + sessionContextId)); - } - - logger.debug( - "Executing substrait query for session {} with plan size {} bytes using engine {}", - sessionContextId, - substraitPlanBytes.length, - engine.getClass().getSimpleName() - ); - - return engine.executeSubstraitQuery(sessionContextId, substraitPlanBytes); - } public long getRuntimePointer() { return runtimeEnv.getPointer(); } - /** - * Close the session context and clean up resources - * - * @param sessionContextId the session context ID to close - * @return future that completes when cleanup is done - */ - public CompletableFuture closeSessionContext(long sessionContextId) { - DataSourceCodec engine = sessionEngines.remove(sessionContextId); - if (engine == null) { - logger.debug("Session context {} not found or already closed", sessionContextId); - return CompletableFuture.completedFuture(null); - } - - logger.debug("Closing session context {} using engine {}", sessionContextId, engine.getClass().getSimpleName()); - - return engine.closeSessionContext(sessionContextId); - } - /** * Get version information from available codecs * @return JSON version string diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 87f6d4274eab7..eac1062e07485 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -46,8 +46,6 @@ import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.search.lookup.SourceLookup; -import org.opensearch.search.query.GenericQueryPhaseSearcher; -import org.opensearch.search.query.QueryPhaseExecutor; import org.opensearch.vectorized.execution.search.DataFormat; import org.opensearch.search.query.GenericQueryPhaseSearcher; @@ -61,7 +59,6 @@ import java.util.function.Function; import static java.util.Collections.emptyMap; -import static org.opensearch.datafusion.jni.NativeBridge.printMemoryPoolAllocation; public class DatafusionEngine extends SearchExecEngine { @@ -87,16 +84,6 @@ public DatafusionEngine(DataFormat dataFormat, Collection formatCa } } - @Override - public GenericQueryPhaseSearcher getQueryPhaseSearcher() { - return new DatafusionQueryPhaseSearcher(); - } - - @Override - public QueryPhaseExecutor getQueryPhaseExecutor() { - return new DatafusionQueryPhaseExecutor(); - } - @Override public DatafusionContext createContext(ReaderContext readerContext, ShardSearchRequest request, SearchShardTarget searchShardTarget, SearchShardTask task, BigArrays bigArrays, SearchContext originalContext) throws IOException { DatafusionContext datafusionContext = new DatafusionContext(readerContext, request, searchShardTarget, task, this, bigArrays, originalContext); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java deleted file mode 100644 index a9253f9e9d3b2..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionQueryPhaseSearcher.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.opensearch.datafusion; - -import org.opensearch.datafusion.search.DatafusionContext; -import org.opensearch.datafusion.search.DatafusionQuery; -import org.opensearch.datafusion.search.DatafusionSearcher; -import org.opensearch.index.engine.EngineSearcher; -import org.opensearch.search.query.GenericQueryPhaseSearcher; -import org.opensearch.search.query.QueryCollectorContext; -import org.opensearch.search.aggregations.SearchResultsCollector; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; -import java.util.ArrayList; - -/** - * DataFusion-specific query phase searcher using Substrait queries - * - */ -public class DatafusionQueryPhaseSearcher implements GenericQueryPhaseSearcher { - - // How to pass table providers that search other engines such as Lucene ? - @Override - public boolean searchWith( - DatafusionContext context, - DatafusionSearcher searcher, - DatafusionQuery datafusionQuery, - LinkedList collectors, - boolean hasFilterCollector, - boolean hasTimeout - ) throws IOException { - - List> searchCollectors = new ArrayList<>(); // TODO : derive from collectors ? - - // Execute DataFusion query with Substrait plan - searcher.search(datafusionQuery, searchCollectors); - - // Process results into QuerySearchResult - context.queryResult().searchTimedOut(false); - - return false; // No rescoring for DataFusion - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java deleted file mode 100644 index 5603660ed760a..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DefaultRecordBatchStream.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.core; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -import java.util.concurrent.CompletableFuture; - -public class DefaultRecordBatchStream implements RecordBatchStream { - - private static final Logger logger = LogManager.getLogger(DefaultRecordBatchStream.class); - - private final long nativeStreamPtr; - private volatile boolean closed = false; - private volatile boolean hasNextCached = false; - private volatile boolean hasNextValue = false; - - /** - * Creates a new wrapping the given native stream pointer. - * - * @param nativeStreamPtr Pointer to the native DataFusion RecordBatch stream - */ - public DefaultRecordBatchStream(long nativeStreamPtr) { - if (nativeStreamPtr == 0) { - throw new IllegalArgumentException("Invalid native stream pointer"); - } - this.nativeStreamPtr = nativeStreamPtr; - logger.debug("Created default record batch stream with pointer: {}", nativeStreamPtr); - } - - @Override - public Object getSchema() { - return "schema"; // Placeholder - } - - @Override - public CompletableFuture next() { - // PlaceholderImpl - return CompletableFuture.supplyAsync(() -> { - if (closed) { - return null; - } - - try { - // Get the next batch from native code - String batch = nativeNextBatch(nativeStreamPtr); - - // Reset cached hasNext value since we consumed a batch - hasNextCached = false; - - logger.trace("Retrieved next batch from stream pointer: {}", nativeStreamPtr); - return batch; - } catch (Exception e) { - logger.error("Error getting next batch from stream", e); - return null; - } - }); - } - - @Override - public boolean hasNext() { - // Placeholder impl - if (closed) { - return false; - } - - if (hasNextCached) { - return hasNextValue; - } - - try { - // Check if there's a next batch available - // This is a simplified implementation - in practice, you might want to - // peek at the stream without consuming the batch - String nextBatch = nativeNextBatch(nativeStreamPtr); - hasNextValue = (nextBatch != null); - hasNextCached = true; - - logger.trace("hasNext() = {} for stream pointer: {}", hasNextValue, nativeStreamPtr); - return hasNextValue; - } catch (Exception e) { - logger.error("Error checking for next batch in stream", e); - return false; - } - } - - @Override - public void close() { - if (!closed) { - logger.debug("Closing RecordBatchStream with pointer: {}", nativeStreamPtr); - try { - nativeCloseStream(nativeStreamPtr); - closed = true; - logger.debug("Successfully closed RecordBatchStream"); - } catch (Exception e) { - logger.error("Error closing RecordBatchStream", e); - throw e; - } - } - } - - // Native method declarations - private static native String nativeNextBatch(long streamPtr); - - private static native void nativeCloseStream(long streamPtr); -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java index d8e7f4d569f44..0dae239969df9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java @@ -26,10 +26,6 @@ private NativeBridge() {} public static native long createGlobalRuntime(long limit, long cacheManagerPtr); public static native void closeGlobalRuntime(long ptr); - // Session management - public static native long createSessionContext(long runtimeId); - public static native void closeSessionContext(long contextId); - // Query execution public static native long executeQueryPhase(long readerPtr, String tableName, byte[] plan, long runtimePtr); public static native long executeFetchPhase(long readerPtr, long[] rowIds, String[] projections, long runtimePtr); @@ -64,5 +60,4 @@ private NativeBridge() {} // Other methods public static native String getVersionInfo(); - public static native int registerCsvDirectory(long contextId, String tableName, String directoryPath, String[] fileNames); } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java deleted file mode 100644 index 84f03d9a64362..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/SessionHandle.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.jni.handle; - -import org.opensearch.datafusion.jni.NativeBridge; -import org.opensearch.vectorized.execution.jni.NativeHandle; - -/** - * Session context for DataFusion operations. - */ -public final class SessionHandle extends NativeHandle { - - /** - * Creates a new session context with the given runtime. - * @param runtimeId the runtime environment ID - */ - public SessionHandle(long runtimeId) { - super(NativeBridge.createSessionContext(runtimeId)); - } - - - /** - * Closes the session context and releases any associated resources. - */ - @Override - protected void doClose() { - NativeBridge.closeSessionContext(ptr); - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java deleted file mode 100644 index 8de7c7e397715..0000000000000 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionQueryPhaseExecutor.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion.search; - -import org.opensearch.index.engine.EngineSearcher; -import org.opensearch.search.query.QueryPhaseExecutor; -import org.opensearch.search.query.QueryPhaseExecutionException; -import org.opensearch.datafusion.search.DatafusionContext; -import org.opensearch.datafusion.search.DatafusionQuery; -import org.opensearch.search.ContextEngineSearcher; -import org.opensearch.search.query.GenericQueryPhase; -import org.opensearch.search.query.GenericQueryPhaseSearcher; -import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; - -/** - * Query phase executor for Datafusion engine - */ -public class DatafusionQueryPhaseExecutor implements QueryPhaseExecutor { - - @Override - public boolean execute(DatafusionContext context) throws QueryPhaseExecutionException { - if (!canHandle(context)) { - // TODO : throw new QueryPhaseExecutionException("Cannot handle datafusion context"); - } - - GenericQueryPhaseSearcher searcher = - context.readEngine().getQueryPhaseSearcher(); - - GenericQueryPhase queryPhase = - new GenericQueryPhase<>(searcher); - - DatafusionQuery query = context.getDatafusionQuery(); - // TODO : rework interfaces as context itself has many objects - return queryPhase.executeInternal(context, context.getEngineSearcher(), query); - } - - @Override - public boolean canHandle(DatafusionContext context) { - return context != null && - context.readEngine() != null && - context.query() != null; - } -} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index e79a162b26897..ce68b5d5f4f49 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -8,21 +8,14 @@ package org.opensearch.datafusion.search; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.lucene.store.AlreadyClosedException; -import org.opensearch.datafusion.DataFusionService; -import org.opensearch.datafusion.core.DataFusionRuntimeEnv; -import org.opensearch.datafusion.core.DefaultRecordBatchStream; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.index.engine.EngineSearcher; -import org.opensearch.search.aggregations.SearchResultsCollector; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; import java.io.Closeable; import java.io.IOException; import java.io.UncheckedIOException; -import java.util.List; import java.util.Objects; public class DatafusionSearcher implements EngineSearcher { @@ -41,10 +34,6 @@ public String source() { return source; } - @Override - public void search(DatafusionQuery datafusionQuery, List> collectors) throws IOException { - throw new UnsupportedOperationException("Use search(DatafusionQuery, Long, Long) instead"); - } @Override public long search(DatafusionQuery datafusionQuery, Long runtimePtr) { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java index 77022890e2d41..e69de29bb2d1d 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/TestDataFusionServiceTests.java @@ -1,82 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.datafusion; - -import org.mockito.Mock; -import org.opensearch.cluster.service.ClusterService; -import java.util.HashSet; -import java.util.Set; -import org.opensearch.common.settings.ClusterSettings; -import org.opensearch.common.settings.Setting; -import org.opensearch.common.settings.Settings; -import org.opensearch.test.OpenSearchTestCase; - -import java.util.Collections; -import java.util.List; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.opensearch.common.settings.ClusterSettings.BUILT_IN_CLUSTER_SETTINGS; -import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_ENABLED; -import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_EVICTION_TYPE; -import static org.opensearch.datafusion.search.cache.CacheSettings.METADATA_CACHE_SIZE_LIMIT; - -/** - * Unit tests for DataFusionService - * - * Note: These tests require the native library to be available. - * They are disabled by default and can be enabled by setting the system property: - * -Dtest.native.enabled=true - */ -public class TestDataFusionServiceTests extends OpenSearchTestCase { - - private DataFusionService service; - - @Mock - private ClusterService clusterService; - - @Override - public void setUp() throws Exception { - super.setUp(); - service = new DataFusionService(Collections.emptyMap(), clusterService); - Set> clusterSettingsToAdd = new HashSet<>(BUILT_IN_CLUSTER_SETTINGS); - clusterSettingsToAdd.add(METADATA_CACHE_ENABLED); - clusterSettingsToAdd.add(METADATA_CACHE_SIZE_LIMIT); - clusterSettingsToAdd.add(METADATA_CACHE_EVICTION_TYPE); - - ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, clusterSettingsToAdd); - clusterService = mock(ClusterService.class); - when(clusterService.getSettings()).thenReturn(Settings.EMPTY); - when(clusterService.getClusterSettings()).thenReturn(clusterSettings); - service = new DataFusionService(Collections.emptyMap(),clusterService); - service.doStart(); - } - - public void testGetVersion() { - String version = service.getVersion(); - assertNotNull(version); - // The service returns codec information in JSON format - assertTrue("Version should contain codecs", version.contains("codecs")); - assertTrue("Version should contain CsvDataSourceCodec", version.contains("CsvDataSourceCodec")); - } - - public void testCreateAndCloseContext() { - service.registerDirectory("/Users/gbh/Documents", List.of("parquet-nested.csv")); - long contextId = service.createSessionContext().join(); - // Create context - assertTrue(contextId > 0); - - service.getVersion(); - } - - public void testCodecDiscovery() { - // Test that the CSV codec can be discovered via SPI - // TODO : test with dummy plugin and dummy codec - } -} diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index 884dbce95e8fd..f901d2e45468e 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -15,8 +15,6 @@ import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; import org.opensearch.search.internal.ShardSearchRequest; -import org.opensearch.search.query.GenericQueryPhaseSearcher; -import org.opensearch.search.query.QueryPhaseExecutor; import java.io.IOException; import java.util.Map; @@ -32,16 +30,6 @@ // TODO too many templatized types public abstract class SearchExecEngine, R, Q> implements SearcherOperations { - /** - * Get the query phase searcher for this engine - */ - public abstract GenericQueryPhaseSearcher getQueryPhaseSearcher(); - - /** - * Get the query phase executor for this engine - */ - public abstract QueryPhaseExecutor getQueryPhaseExecutor(); - /** * Create a search context for this engine */ diff --git a/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java b/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java deleted file mode 100644 index 533ef9b328c99..0000000000000 --- a/server/src/main/java/org/opensearch/search/query/GenericQueryPhase.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.opensearch.search.query; - -import java.util.LinkedList; - -/** - * Generic query phase that can work with different context and searcher types - * @param Context type - * @param Searcher type - * @param Query type - */ -public class GenericQueryPhase { - private final GenericQueryPhaseSearcher queryPhaseSearcher; - - public GenericQueryPhase(GenericQueryPhaseSearcher queryPhaseSearcher) { - this.queryPhaseSearcher = queryPhaseSearcher; - } - - public boolean executeInternal(C context, S searcher, Q query) throws QueryPhaseExecutionException { - try { - return queryPhaseSearcher.searchWith(context, searcher, query, new LinkedList<>() /* Figure out how to pass collectors */, false, false); - } catch (Exception e) { - throw new QueryPhaseExecutionException(null, "Failed to execute query", e); - } - } -} From a85f6038a9b41170fdd8a7fc89c17dd19dbefcda Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Wed, 19 Nov 2025 18:52:25 +0530 Subject: [PATCH 097/112] Support log byte merge policy (#20053) Signed-off-by: Dhwanil Patel --- .../org/opensearch/index/IndexSettings.java | 18 ++--- .../index/TieredMergePolicyProvider.java | 2 +- .../engine/exec/coord/CompositeEngine.java | 2 +- .../engine/exec/merge/MergeScheduler.java | 4 +- .../index/engine/exec/merge/OneMerge.java | 7 +- .../exec/merge/ParquetMergeHandler.java | 24 +++--- .../exec/merge/ParquetTieredMergePolicy.java | 25 +------ .../ParquetTieredMergePolicyProvider.java | 73 ------------------- 8 files changed, 29 insertions(+), 126 deletions(-) delete mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java diff --git a/server/src/main/java/org/opensearch/index/IndexSettings.java b/server/src/main/java/org/opensearch/index/IndexSettings.java index 6f57104fde0d5..2abdf79584d82 100644 --- a/server/src/main/java/org/opensearch/index/IndexSettings.java +++ b/server/src/main/java/org/opensearch/index/IndexSettings.java @@ -48,8 +48,6 @@ import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.core.index.Index; import org.opensearch.index.compositeindex.datacube.startree.StarTreeIndexSettings; -import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicy; -import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicyProvider; import org.opensearch.index.remote.RemoteStoreEnums.PathType; import org.opensearch.index.remote.RemoteStorePathStrategy; import org.opensearch.index.remote.RemoteStoreUtils; @@ -848,7 +846,6 @@ public static IndexMergePolicy fromString(String text) { private volatile ByteSizeValue flushAfterMergeThresholdSize; private final MergeSchedulerConfig mergeSchedulerConfig; private final TieredMergePolicyProvider tieredMergePolicyProvider; - private final ParquetTieredMergePolicyProvider parquetTieredMergePolicyProvider; private final LogByteSizeMergePolicyProvider logByteSizeMergePolicyProvider; private final IndexSortConfig indexSortConfig; private final IndexScopedSettings scopedSettings; @@ -1087,7 +1084,6 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti maxNestedQueryDepth = scopedSettings.get(MAX_NESTED_QUERY_DEPTH_SETTING); maxRegexLength = scopedSettings.get(MAX_REGEX_LENGTH_SETTING); this.tieredMergePolicyProvider = new TieredMergePolicyProvider(logger, this); - this.parquetTieredMergePolicyProvider = new ParquetTieredMergePolicyProvider(logger, this); this.logByteSizeMergePolicyProvider = new LogByteSizeMergePolicyProvider(logger, this); this.indexSortConfig = new IndexSortConfig(this); searchIdleAfter = scopedSettings.get(INDEX_SEARCH_IDLE_AFTER); @@ -1137,7 +1133,7 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING, - parquetTieredMergePolicyProvider::setFloorSegmentSetting + tieredMergePolicyProvider::setFloorSegmentSetting ); scopedSettings.addSettingsUpdateConsumer( this::updateMaxMergesAtOnce, @@ -1145,11 +1141,11 @@ public IndexSettings(final IndexMetadata indexMetadata, final Settings nodeSetti ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING, - parquetTieredMergePolicyProvider::setMaxMergedSegment + tieredMergePolicyProvider::setMaxMergedSegment ); scopedSettings.addSettingsUpdateConsumer( TieredMergePolicyProvider.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING, - parquetTieredMergePolicyProvider::setSegmentsPerTier + tieredMergePolicyProvider::setSegmentsPerTier ); scopedSettings.addSettingsUpdateConsumer( @@ -1322,9 +1318,9 @@ void setDefaultMaxMergesAtOnce(int newDefaultMaxMergesAtOnce) { void updateMaxMergesAtOnce(Settings updatedSettings) { if (TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.exists(updatedSettings) == false) { logger.debug("Resetting maxMergesAtOnce to cluster default"); - parquetTieredMergePolicyProvider.setMaxMergesAtOnceToDefault(); + tieredMergePolicyProvider.setMaxMergesAtOnceToDefault(); } else { - parquetTieredMergePolicyProvider.setMaxMergesAtOnce( + tieredMergePolicyProvider.setMaxMergesAtOnce( TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.get(updatedSettings) ); } @@ -1884,10 +1880,6 @@ public MergePolicy getMergePolicy(boolean isTimeSeriesIndex) { return mergePolicyProvider.getMergePolicy(); } - public ParquetTieredMergePolicy getParquetMergePolicy() { - return parquetTieredMergePolicyProvider.getMergePolicy(); - } - public T getValue(Setting setting) { return scopedSettings.get(setting); } diff --git a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java index b5777e3f6e8a7..3ba8d88d851f1 100644 --- a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java +++ b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java @@ -149,7 +149,7 @@ public final class TieredMergePolicyProvider implements MergePolicyProvider { public static final int MIN_DEFAULT_MAX_MERGE_AT_ONCE = 2; public static final int DEFAULT_MAX_MERGE_AT_ONCE = 30; - public static final ByteSizeValue DEFAULT_MAX_MERGED_SEGMENT = new ByteSizeValue(5, ByteSizeUnit.GB); + public static final ByteSizeValue DEFAULT_MAX_MERGED_SEGMENT = new ByteSizeValue(2, ByteSizeUnit.GB); public static final double DEFAULT_SEGMENTS_PER_TIER = 10.0d; public static final double DEFAULT_RECLAIM_DELETES_WEIGHT = 2.0d; public static final double DEFAULT_DELETES_PCT_ALLOWED = 20.0d; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 26d888d8dee26..32cc30a1b079a 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -293,7 +293,7 @@ public void onFailure(String reason, Exception ex) { this.throttle = new IndexThrottle(); this.historyUUID = loadHistoryUUID(userData); this.mergeHandler = - new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), indexSettings.getParquetMergePolicy()); + new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), indexSettings); this.mergeScheduler = new MergeScheduler(this.mergeHandler, this); // Refresh here so that catalog snapshot gets initialized diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java index 28e7588aabff9..08b6a5fa61861 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeScheduler.java @@ -81,7 +81,9 @@ public void triggerMerges() { } public void forceMerge(int maxNumSegment) throws IOException { - // TODO: Add validation for background merge before executing force merge + if(mergeThreads.size() > 0) { + throw new IllegalStateException("Cannot force merge while background merges are active"); + } Collection oneMerges = mergeHandler.findForceMerges(maxNumSegment); for(OneMerge oneMerge : oneMerges) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java index c0a09c2b9de0b..2d3a46a33db64 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java @@ -12,12 +12,13 @@ import org.opensearch.index.engine.exec.FileMetadata; import java.util.Collection; +import java.util.List; public class OneMerge { private final DataFormat dataFormat; - private final Collection filesToMerge; // Files to merge as per given data format + private final List filesToMerge; // Files to merge as per given data format - public OneMerge(DataFormat dataFormat, Collection filesToMerge) { + public OneMerge(DataFormat dataFormat, List filesToMerge) { this.dataFormat = dataFormat; this.filesToMerge = filesToMerge; } @@ -26,7 +27,7 @@ public DataFormat getDataFormat() { return dataFormat; } - public Collection getFilesToMerge() { + public List getFilesToMerge() { return filesToMerge; } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java index f2e1dce8da021..4fddfeda277d4 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java @@ -8,6 +8,7 @@ package org.opensearch.index.engine.exec.merge; +import org.opensearch.index.IndexSettings; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; @@ -33,18 +34,13 @@ public ParquetMergeHandler( CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats, - ParquetTieredMergePolicy parquetTieredMergePolicy + IndexSettings indexSettings ) { super(compositeEngine, compositeIndexingExecutionEngine, dataFormats); this.compositeEngine = compositeEngine; this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; - mergePolicy = parquetTieredMergePolicy; - // Merge Policy configurations - this.mergePolicy.setMaxMergedSegmentMB(2000); - this.mergePolicy.setSegmentsPerTier(10.0); -// this.mergePolicy.setMaxMergeAtOnce(5); -// this.mergePolicy.setFloorSegmentMB(1.0); + mergePolicy = new ParquetTieredMergePolicy(indexSettings.getMergePolicy(true)); } @Override @@ -52,11 +48,12 @@ public Collection findForceMerges(int maxSegmentCount) { List oneMerges = new ArrayList<>(); try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); - Collection parquetWriterSet = catalogSnapshot.getSearchableFiles(PARQUET_DATAFORMAT); + List segmentList = catalogSnapshot.getSegments(); List parquetSegmentInfos = new ArrayList<>(); - for(WriterFileSet writerFileSet : parquetWriterSet) { + for(CatalogSnapshot.Segment segment : segmentList) { + WriterFileSet writerFileSet = segment.getDFGroupedSearchableFiles().get(PARQUET_DATAFORMAT); for(String file: writerFileSet.getFiles()) { parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); } @@ -69,7 +66,7 @@ public Collection findForceMerges(int maxSegmentCount) { for (int i = 0; i < mergeCandidates.size(); i++) { List mergeGroup = mergeCandidates.get(i); - Set files = new HashSet<>(); + List files = new ArrayList<>(); for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { Path path = Path.of(file.getSegmentName()); files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); @@ -87,11 +84,12 @@ public Collection findMerges() { List oneMerges = new ArrayList<>(); try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); - Collection parquetWriterSet = catalogSnapshot.getSearchableFiles(PARQUET_DATAFORMAT); + List segmentList = catalogSnapshot.getSegments(); List parquetSegmentInfos = new ArrayList<>(); - for(WriterFileSet writerFileSet : parquetWriterSet) { + for(CatalogSnapshot.Segment segment : segmentList) { + WriterFileSet writerFileSet = segment.getDFGroupedSearchableFiles().get(PARQUET_DATAFORMAT); for(String file: writerFileSet.getFiles()) { parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); } @@ -104,7 +102,7 @@ public Collection findMerges() { for (int i = 0; i < mergeCandidates.size(); i++) { List mergeGroup = mergeCandidates.get(i); - Set files = new HashSet<>(); + List files = new ArrayList<>(); for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { Path path = Path.of(file.getSegmentName()); files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java index eff54fff34065..456dfd67cd2f1 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java @@ -22,14 +22,15 @@ import java.util.*; public class ParquetTieredMergePolicy implements MergePolicy.MergeContext { - private final TieredMergePolicy luceneMergePolicy; + private final MergePolicy luceneMergePolicy; private final InfoStream infoStream; private static final HashSet mergingSegments = new HashSet<>(); private static final Set mergingFileNames = new HashSet<>(); - public ParquetTieredMergePolicy() { - this.luceneMergePolicy = new TieredMergePolicy(); + public ParquetTieredMergePolicy(MergePolicy mergePolicy) { + this.luceneMergePolicy = mergePolicy; + System.out.println("Merge Policy : " + mergePolicy); this.infoStream = new InfoStream() { @Override public void message(String s, String s1) { @@ -153,15 +154,6 @@ public Set getMergingSegments() { return Collections.unmodifiableSet(mergingSegments); } - // Configuration methods - public void setMaxMergedSegmentMB(double mb) { - luceneMergePolicy.setMaxMergedSegmentMB(mb); - } - - public void setSegmentsPerTier(double segments) { - luceneMergePolicy.setSegmentsPerTier(segments); - } - public synchronized void addMergingSegment(Collection files) { try { for (FileMetadata fileMetadata : files) { @@ -190,15 +182,6 @@ public synchronized void removeMergingSegment(Collection files) { } } - public void setMaxMergeAtOnce(int count) { - luceneMergePolicy.setMaxMergeAtOnce(count); - } - - public void setFloorSegmentMB(double mb) { - luceneMergePolicy.setFloorSegmentMB(mb); - } - - public static class ParquetFileInfo { private final Path path; private final long sizeBytes; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java deleted file mode 100644 index f97777f693208..0000000000000 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicyProvider.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.merge; - -import org.apache.logging.log4j.Logger; -import org.opensearch.core.common.unit.ByteSizeUnit; -import org.opensearch.core.common.unit.ByteSizeValue; -import org.opensearch.index.IndexSettings; - -import static org.opensearch.index.MergePolicyProvider.INDEX_MERGE_ENABLED; -import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING; -import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING; -import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING; -import static org.opensearch.index.TieredMergePolicyProvider.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING; - -public class ParquetTieredMergePolicyProvider { - private final ParquetTieredMergePolicy mergePolicy = new ParquetTieredMergePolicy(); - - private final Logger logger; - private final boolean mergesEnabled; - private int defaultMaxMergeAtOnce = 30; - - public ParquetTieredMergePolicyProvider(Logger logger, IndexSettings indexSettings) { - this.logger = logger; - ByteSizeValue floorSegment = indexSettings.getValue(INDEX_MERGE_POLICY_FLOOR_SEGMENT_SETTING); - int maxMergeAtOnce = indexSettings.getValue(INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING); - ByteSizeValue maxMergedSegment = indexSettings.getValue(INDEX_MERGE_POLICY_MAX_MERGED_SEGMENT_SETTING); - double segmentsPerTier = indexSettings.getValue(INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING); - - this.mergesEnabled = indexSettings.getSettings().getAsBoolean(INDEX_MERGE_ENABLED, true); - if (mergesEnabled == false) { - this.logger.warn( - "[{}] is set to false, this should only be used in tests and can cause serious problems in production" + " environments", - INDEX_MERGE_ENABLED - ); - } - - mergePolicy.setFloorSegmentMB(floorSegment.getMbFrac()); - mergePolicy.setMaxMergeAtOnce(maxMergeAtOnce); - mergePolicy.setMaxMergedSegmentMB(maxMergedSegment.getMbFrac()); - mergePolicy.setSegmentsPerTier(segmentsPerTier); - } - - public ParquetTieredMergePolicy getMergePolicy() { - return mergePolicy; - } - - public void setSegmentsPerTier(Double segmentsPerTier) { - mergePolicy.setSegmentsPerTier(segmentsPerTier); - } - - public void setMaxMergedSegment(ByteSizeValue maxMergedSegment) { - mergePolicy.setMaxMergedSegmentMB(maxMergedSegment.getMbFrac()); - } - - public void setFloorSegmentSetting(ByteSizeValue floorSegementSetting) { - mergePolicy.setFloorSegmentMB(floorSegementSetting.getMbFrac()); - } - - public void setMaxMergesAtOnce(Integer maxMergeAtOnce) { - mergePolicy.setMaxMergeAtOnce(maxMergeAtOnce); - } - - public void setMaxMergesAtOnceToDefault() { - mergePolicy.setMaxMergeAtOnce(defaultMaxMergeAtOnce); - } -} From b1a1d300e9b44543516fbfd1baae9d41fc4717c0 Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Wed, 19 Nov 2025 10:58:16 -0800 Subject: [PATCH 098/112] Close searcher on context close and fix unit tests. (#20051) --- .../datafusion/search/DatafusionContext.java | 3 +- .../datafusion/DataFusionSingleNodeTests.java | 2 +- .../src/test/resources/q19.json | 57 +++++++- .../src/test/resources/q28.json | 2 +- .../src/test/resources/q29.json | 2 +- .../src/test/resources/q30.json | 2 +- .../src/test/resources/q31.json | 2 +- .../src/test/resources/q32.json | 2 +- .../src/test/resources/q33.json | 2 +- .../src/test/resources/q34.json | 2 +- .../src/test/resources/q35.json | 2 +- .../src/test/resources/q36.json | 2 +- .../src/test/resources/q37.json | 2 +- .../src/test/resources/q38.json | 2 +- .../src/test/resources/q39.json | 2 +- .../src/test/resources/q4.json | 2 +- .../src/test/resources/q40.json | 128 +++++++++++++++++- .../src/test/resources/q41.json | 2 +- .../src/test/resources/q42.json | 1 + .../src/test/resources/q7.json | 19 ++- .../action/search/SearchPhaseController.java | 2 +- .../index/engine/InternalEngine.java | 2 +- 22 files changed, 221 insertions(+), 21 deletions(-) create mode 100644 plugins/engine-datafusion/src/test/resources/q42.json diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java index d475bd6ce07d7..2175f2a94e9cc 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionContext.java @@ -15,6 +15,7 @@ import org.apache.lucene.search.Query; import org.opensearch.action.search.SearchShardTask; import org.opensearch.action.search.SearchType; +import org.opensearch.common.lease.Releasables; import org.opensearch.common.unit.TimeValue; import org.opensearch.common.util.BigArrays; import org.opensearch.core.common.bytes.BytesReference; @@ -185,7 +186,7 @@ public boolean isCancelled() { @Override protected void doClose() { - + Releasables.close(engineSearcher); } /** diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java index 1ddce6e5b4342..505a55e1514ec 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionSingleNodeTests.java @@ -69,7 +69,7 @@ public void testClickBenchQueries() throws IOException { // TODO: run in a loop String sourceFile = fileToString( - "q25.json", + "q7.json", false ); SearchSourceBuilder source = new SearchSourceBuilder(); diff --git a/plugins/engine-datafusion/src/test/resources/q19.json b/plugins/engine-datafusion/src/test/resources/q19.json index b2985f01b6b73..249f9026e79e1 100644 --- a/plugins/engine-datafusion/src/test/resources/q19.json +++ b/plugins/engine-datafusion/src/test/resources/q19.json @@ -1 +1,56 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"SearchPhrase":{"terms":{"field":"SearchPhrase","missing_bucket":false,"order":"asc"}}},{"UserID":{"terms":{"field":"UserID","missing_bucket":false,"order":"asc"}}},{"m":{"terms":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAmXsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJUSU1FU1RBTVAiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogMywKICAgICAgIm5hbWUiOiAiRXZlbnRUaW1lIgogICAgfQogIF0sCiAgIm51bGxhYmxlIjogZmFsc2UKfXQABGV4cHJ0Ae57CiAgIm9wIjogewogICAgIm5hbWUiOiAiRVhUUkFDVCIsCiAgICAia2luZCI6ICJPVEhFUl9GVU5DVElPTiIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAibGl0ZXJhbCI6ICJtaW51dGUiLAogICAgICAidHlwZSI6IHsKICAgICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgICAibnVsbGFibGUiOiBmYWxzZSwKICAgICAgICAicHJlY2lzaW9uIjogLTEKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgImlucHV0IjogMCwKICAgICAgIm5hbWUiOiAiJDAiCiAgICB9CiAgXSwKICAiY2xhc3MiOiAib3JnLm9wZW5zZWFyY2guc3FsLmV4cHJlc3Npb24uZnVuY3Rpb24uVXNlckRlZmluZWRGdW5jdGlvbkJ1aWxkZXIkMSIsCiAgInR5cGUiOiB7CiAgICAidHlwZSI6ICJCSUdJTlQiLAogICAgIm51bGxhYmxlIjogdHJ1ZQogIH0sCiAgImRldGVybWluaXN0aWMiOiB0cnVlLAogICJkeW5hbWljIjogZmFsc2UKfXQACmZpZWxkVHlwZXNzcgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAAAMdwgAAAAQAAAAAXQACUV2ZW50VGltZXNyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGVUeXBlni1SrhB9yq8CAAFMAAdmb3JtYXRzdAAQTGphdmEvdXRpbC9MaXN0O3hyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGFUeXBlwmO8ygL6BTUCAANMAAxleHByQ29yZVR5cGV0ACtMb3JnL29wZW5zZWFyY2gvc3FsL2RhdGEvdHlwZS9FeHByQ29yZVR5cGU7TAALbWFwcGluZ1R5cGV0AEhMb3JnL29wZW5zZWFyY2gvc3FsL29wZW5zZWFyY2gvZGF0YS90eXBlL09wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZTtMAApwcm9wZXJ0aWVzdAAPTGphdmEvdXRpbC9NYXA7eHB+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAlUSU1FU1RBTVB+cgBGb3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZQAAAAAAAAAAEgAAeHEAfgASdAAERGF0ZXNyADxzaGFkZWQuY29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4AGXhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAAHVxAH4AGwAAAABzcgATamF2YS51dGlsLkFycmF5TGlzdHiB0h2Zx2GdAwABSQAEc2l6ZXhwAAAAA3cEAAAAA3QAE3l5eXktTU0tZGQgSEg6bW06c3N0ABlzdHJpY3RfZGF0ZV9vcHRpb25hbF90aW1ldAAMZXBvY2hfbWlsbGlzeHh4\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824209044725000}},"missing_bucket":false,"value_type":"long","order":"asc"}}}]},"aggregations":{"count()":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgBEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggDEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIZGhcIARABGg9leHRyYWN0OnJlcV9wdHMgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGuceEuQeCr8eGrweCgIKABKwHiqtHgoCCgASmB4alR4KAgoAEooeKoceCgIKABLyHTrvHQoIEgYKBAQFBgcStB0isR0KAgoAEvYcOvMcCgcSBQoDamtsEsMcEsAcCgIKABLZGzrWGwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiIaIAgBGgQ6AhABIggKBk1JTlVURSIMGgoSCAoEEgIIECIAGl4aXAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGMiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIaSIAGgoSCAoEEgIISiIAGiIKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIAIg4KDAgEIAMqBDoCEAIwARoKEggKBBICCAMiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgdjb3VudCgpEgZVc2VySUQSAW0SDFNlYXJjaFBocmFzZTISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAxIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAESKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIAhIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file +{ + "from": 0, + "size": 0, + "timeout": "1m", + "aggregations": { + "composite_buckets": { + "composite": { + "size": 10000, + "sources": [ + { + "SearchPhrase": { + "terms": { + "field": "SearchPhrase", + "missing_bucket": false, + "order": "asc" + } + } + }, + { + "UserID": { + "terms": { + "field": "UserID", + "missing_bucket": false, + "order": "asc" + } + } + }, + { + "m": { + "terms": { + "script": { + "source": "{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAmXsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJUSU1FU1RBTVAiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogMywKICAgICAgIm5hbWUiOiAiRXZlbnRUaW1lIgogICAgfQogIF0sCiAgIm51bGxhYmxlIjogZmFsc2UKfXQABGV4cHJ0Ae57CiAgIm9wIjogewogICAgIm5hbWUiOiAiRVhUUkFDVCIsCiAgICAia2luZCI6ICJPVEhFUl9GVU5DVElPTiIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAibGl0ZXJhbCI6ICJtaW51dGUiLAogICAgICAidHlwZSI6IHsKICAgICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgICAibnVsbGFibGUiOiBmYWxzZSwKICAgICAgICAicHJlY2lzaW9uIjogLTEKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgImlucHV0IjogMCwKICAgICAgIm5hbWUiOiAiJDAiCiAgICB9CiAgXSwKICAiY2xhc3MiOiAib3JnLm9wZW5zZWFyY2guc3FsLmV4cHJlc3Npb24uZnVuY3Rpb24uVXNlckRlZmluZWRGdW5jdGlvbkJ1aWxkZXIkMSIsCiAgInR5cGUiOiB7CiAgICAidHlwZSI6ICJCSUdJTlQiLAogICAgIm51bGxhYmxlIjogdHJ1ZQogIH0sCiAgImRldGVybWluaXN0aWMiOiB0cnVlLAogICJkeW5hbWljIjogZmFsc2UKfXQACmZpZWxkVHlwZXNzcgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAAAMdwgAAAAQAAAAAXQACUV2ZW50VGltZXNyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGVUeXBlni1SrhB9yq8CAAFMAAdmb3JtYXRzdAAQTGphdmEvdXRpbC9MaXN0O3hyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGFUeXBlwmO8ygL6BTUCAANMAAxleHByQ29yZVR5cGV0ACtMb3JnL29wZW5zZWFyY2gvc3FsL2RhdGEvdHlwZS9FeHByQ29yZVR5cGU7TAALbWFwcGluZ1R5cGV0AEhMb3JnL29wZW5zZWFyY2gvc3FsL29wZW5zZWFyY2gvZGF0YS90eXBlL09wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZTtMAApwcm9wZXJ0aWVzdAAPTGphdmEvdXRpbC9NYXA7eHB+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAlUSU1FU1RBTVB+cgBGb3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hEYXRhVHlwZSRNYXBwaW5nVHlwZQAAAAAAAAAAEgAAeHEAfgASdAAERGF0ZXNyADxzaGFkZWQuY29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4AGXhwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAAHVxAH4AGwAAAABzcgATamF2YS51dGlsLkFycmF5TGlzdHiB0h2Zx2GdAwABSQAEc2l6ZXhwAAAAA3cEAAAAA3QAE3l5eXktTU0tZGQgSEg6bW06c3N0ABlzdHJpY3RfZGF0ZV9vcHRpb25hbF90aW1ldAAMZXBvY2hfbWlsbGlzeHh4\"}", + "lang": "opensearch_compounded_script", + "params": { + "utcTimestamp": 1763530165856075000 + } + }, + "missing_bucket": false, + "value_type": "long", + "order": "asc" + } + } + } + ] + }, + "aggregations": { + "count()": { + "value_count": { + "field": "_index" + } + } + } + } + }, + "query_plan_ir": "CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgBEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggDEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBIZGhcIARABGg9leHRyYWN0OnJlcV9wdHMgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGuceEuQeCr8eGrweCgIKABKwHiqtHgoCCgASmB4alR4KAgoAEooeKoceCgIKABLyHTrvHQoIEgYKBAQFBgcStB0isR0KAgoAEvYcOvMcCgcSBQoDamtsEsMcEsAcCgIKABLZGzrWGwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiIaIAgBGgQ6AhABIggKBk1JTlVURSIMGgoSCAoEEgIIECIAGl4aXAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGMiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIISiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIaSIAGgoSCAoEEgIISiIAGiIKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIAIg4KDAgEIAMqBDoCEAIwARoKEggKBBICCAMiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEgdjb3VudCgpEgZVc2VySUQSAW0SDFNlYXJjaFBocmFzZTISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAxIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAESKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIAhIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj" +} diff --git a/plugins/engine-datafusion/src/test/resources/q28.json b/plugins/engine-datafusion/src/test/resources/q28.json index f758a7d5f7889..569d2d2d08b3e 100644 --- a/plugins/engine-datafusion/src/test/resources/q28.json +++ b/plugins/engine-datafusion/src/test/resources/q28.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"CounterID","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","URL"],"excludes":[]},"aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"CounterID":{"terms":{"field":"CounterID","missing_bucket":false,"order":"asc"}}}]},"aggregations":{"l":{"avg":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAknsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgIm51bGxhYmxlIjogdHJ1ZSwKICAgICAgInByZWNpc2lvbiI6IC0xLAogICAgICAibmFtZSI6ICJVUkwiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQApnsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDSEFSX0xFTkdUSCIsCiAgICAia2luZCI6ICJDSEFSX0xFTkdUSCIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAiaW5wdXQiOiAwLAogICAgICAibmFtZSI6ICIkMCIKICAgIH0KICBdCn10AApmaWVsZFR5cGVzc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA/QAAAAAAADHcIAAAAEAAAAAF0AANVUkx+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAZTVFJJTkd4eA==\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824209533948000}}}},"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IAxIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGggCEhYvZnVuY3Rpb25zX3N0cmluZy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARIZGhcIAhADGg9jaGFyX2xlbmd0aDpzdHIgAhIRGg8IAxAEGgdzdW06aTMyIAMSExoRCAQQBRoJY291bnQ6YW55IAQSEBoOCAQQBhoGY291bnQ6IAQSFBoSCAEQBxoKZ3Q6YW55X2FueSABGs4TEssTCqoTGqcTCgIKABKbEyqYEwoCCgASgxMagBMKAgoAEvUSKvISCgIKABLdEhLaEgoCCgASoxI6oBIKCBIGCgQEBQYHEuURIuIRCgIKABKDETqAEQoGEgQKAmlqEs8QEswQCgIKABKrEBKoEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGiAaHggBGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIAhoECgIQAiIMGgoSCAoEEgIIDCIAGgoSCAoEEgIIDCIAGhgaFggDGgQqAhABIgwaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggBIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAiIAGggSBgoCEgAiABouGiwIBxoECgIQAiIMGgoSCAoEEgIIASIAIhQaEloQCgQ6AhACEgYKBCigjQYYAhoMCggSBgoCEgAiABAEGAAgGRoMCggSBgoCEgAiABAEGAAgkE4SBWxfc3VtEgdsX2NvdW50EgFjEglDb3VudGVySUQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpY0IvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCKwgCEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"CounterID","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","URL"],"excludes":[]},"aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"CounterID":{"terms":{"field":"CounterID","missing_bucket":false,"order":"asc"}}}]},"aggregations":{"l":{"avg":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQAknsKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJWQVJDSEFSIiwKICAgICAgIm51bGxhYmxlIjogdHJ1ZSwKICAgICAgInByZWNpc2lvbiI6IC0xLAogICAgICAibmFtZSI6ICJVUkwiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQApnsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDSEFSX0xFTkdUSCIsCiAgICAia2luZCI6ICJDSEFSX0xFTkdUSCIsCiAgICAic3ludGF4IjogIkZVTkNUSU9OIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAiaW5wdXQiOiAwLAogICAgICAibmFtZSI6ICIkMCIKICAgIH0KICBdCn10AApmaWVsZFR5cGVzc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA/QAAAAAAADHcIAAAAEAAAAAF0AANVUkx+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAZTVFJJTkd4eA==\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1763528471115488000}}}},"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IAxIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGggCEhYvZnVuY3Rpb25zX3N0cmluZy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGxoZCAEQARoRbm90X2VxdWFsOmFueV9hbnkgARIZGhcIARACGg9pc19ub3RfbnVsbDphbnkgARIZGhcIAhADGg9jaGFyX2xlbmd0aDpzdHIgAhIRGg8IAxAEGgdzdW06aTMyIAMSExoRCAQQBRoJY291bnQ6YW55IAQSEBoOCAQQBhoGY291bnQ6IAQSFBoSCAEQBxoKZ3Q6YW55X2FueSABGs4TEssTCqoTGqcTCgIKABKbEyqYEwoCCgASgxMagBMKAgoAEvUSKvISCgIKABLdEhLaEgoCCgASoxI6oBIKCBIGCgQEBQYHEuURIuIRCgIKABKDETqAEQoGEgQKAmlqEs8QEswQCgIKABKrEBKoEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGiAaHggBGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIAhoECgIQAiIMGgoSCAoEEgIIDCIAGgoSCAoEEgIIDCIAGhgaFggDGgQqAhABIgwaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggBIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAiIAGggSBgoCEgAiABouGiwIBxoECgIQAiIMGgoSCAoEEgIIASIAIhQaEloQCgQ6AhACEgYKBCigjQYYAhoMCggSBgoCEgAiABAEGAAgGRoMCggSBgoCEgAiABAEGAAgkE4SBWxfc3VtEgdsX2NvdW50EgFjEglDb3VudGVySUQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpY0IvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCKwgCEidleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19zdHJpbmc="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q29.json b/plugins/engine-datafusion/src/test/resources/q29.json index cff1053b1205c..d461b7d601bd2 100644 --- a/plugins/engine-datafusion/src/test/resources/q29.json +++ b/plugins/engine-datafusion/src/test/resources/q29.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"sum(ResolutionWidth)":{"sum":{"field":"ResolutionWidth"}},"sum(ResolutionWidth+1)_COUNT":{"value_count":{"field":"ResolutionWidth"}}},"query_plan_ir":"Ch4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSFRoTCAEQARoLYWRkOmkzMl9pMzIgARIRGg8IARACGgdzdW06aTE2IAESERoPCAEQAxoHc3VtOmkzMiABGp5YEptYCtpGGtdGCgIKABLLRiLIRgoCCgAStTE6sjEKowESoAEKnQFpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCEUiABosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigCGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoAxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigFGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoBhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigIGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoCRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigLGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKA0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigOGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigRGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoEhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigUGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoFRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigXGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigaGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigdGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoHhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKB8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAiggGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoIRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigjGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigmGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigpGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoKhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCsaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigsGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoLRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKC4aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigvGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigyGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig1GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoNhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig4GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoORosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig7GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKD0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig+GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihBGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoQhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihEGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoRRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihHGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihKGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihNGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoThosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKE8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihQGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoURosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihTGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihWGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihZGgAiGgoYCAIgAyoEOgIQATABOgoaCBIGCgISACIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIASIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIByIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIECIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIESIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIICIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIISIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIViIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWSIAGAAgkE4SFHN1bShSZXNvbHV0aW9uV2lkdGgpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzEpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzIpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzMpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzQpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzUpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzYpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzcpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzgpEhZzdW0oUmVzb2x1dGlvbldpZHRoKzkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzEwKRIXc3VtKFJlc29sdXRpb25XaWR0aCsxMSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzEzKRIXc3VtKFJlc29sdXRpb25XaWR0aCsxNCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE2KRIXc3VtKFJlc29sdXRpb25XaWR0aCsxNykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE5KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyMCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzIyKRIXc3VtKFJlc29sdXRpb25XaWR0aCsyMykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI1KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyNikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI4KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyOSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzMxKRIXc3VtKFJlc29sdXRpb25XaWR0aCszMikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM0KRIXc3VtKFJlc29sdXRpb25XaWR0aCszNSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM3KRIXc3VtKFJlc29sdXRpb25XaWR0aCszOCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQwKRIXc3VtKFJlc29sdXRpb25XaWR0aCs0MSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQzKRIXc3VtKFJlc29sdXRpb25XaWR0aCs0NCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ2KRIXc3VtKFJlc29sdXRpb25XaWR0aCs0NykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzUyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs1MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1OSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzYxKRIXc3VtKFJlc29sdXRpb25XaWR0aCs2MikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY0KRIXc3VtKFJlc29sdXRpb25XaWR0aCs2NSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY3KRIXc3VtKFJlc29sdXRpb25XaWR0aCs2OCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzcwKRIXc3VtKFJlc29sdXRpb25XaWR0aCs3MSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzczKRIXc3VtKFJlc29sdXRpb25XaWR0aCs3NCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc2KRIXc3VtKFJlc29sdXRpb25XaWR0aCs3NykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrODEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzgyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs4MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrODQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrODcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4OSkyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWM="} \ No newline at end of file +FAILS \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q30.json b/plugins/engine-datafusion/src/test/resources/q30.json index 17be64e1915e8..f0b964677a62f 100644 --- a/plugins/engine-datafusion/src/test/resources/q30.json +++ b/plugins/engine-datafusion/src/test/resources/q30.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchEngineID","SearchPhrase"],"excludes":[]},"aggregations":{"SearchEngineID|ClientIP":{"multi_terms":{"terms":[{"field":"SearchEngineID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMa0xQS0BQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCEkiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghJIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50Eg5TZWFyY2hFbmdpbmVJRBIIQ2xpZW50SVAyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQi8IBBIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYXJpdGhtZXRpY0I2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","aggregations":{"sum(ResolutionWidth)":{"sum":{"field":"ResolutionWidth"}},"sum(ResolutionWidth+1)_COUNT":{"value_count":{"field":"ResolutionWidth"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSFRoTCAEQARoLYWRkOmkzMl9pMzIgARIRGg8IARACGgdzdW06aTE2IAESERoPCAEQAxoHc3VtOmkzMiABEhAaDggCEAQaBmNvdW50OiACGsFYEr5YCupGGudGCgIKABLbRiLYRgoCCgAStTE6sjEKowESoAEKnQFpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCEUiABosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigCGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoAxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigFGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoBhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigIGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoCRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKAoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigLGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKA0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigOGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoDxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigRGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoEhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigUGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoFRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigXGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigaGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoGxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKBwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigdGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoHhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKB8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAiggGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoIRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigjGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigmGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoJxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigpGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoKhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKCsaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigsGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoLRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKC4aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigvGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDEaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAigyGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoMxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDQaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig1GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoNhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDcaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig4GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoORosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKDoaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig7GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKD0aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAig+GiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoPxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEAaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihBGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoQhosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEMaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihEGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoRRosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEYaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihHGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEkaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihKGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoSxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKEwaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihNGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoThosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKE8aLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihQGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoURosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFIaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihTGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVBosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFUaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihWGiwaKggBGgQqAhABIhgaFloUCgQqAhABEgoSCAoEEgIIRSIAGAIiBhoECgIoVxosGioIARoEKgIQASIYGhZaFAoEKgIQARIKEggKBBICCEUiABgCIgYaBAoCKFgaLBoqCAEaBCoCEAEiGBoWWhQKBCoCEAESChIICgQSAghFIgAYAiIGGgQKAihZGgAiGgoYCAIgAyoEOgIQATABOgoaCBIGCgISACIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIASIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIBiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIByIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIICyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIDyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIECIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIESIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIEyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIFyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIGyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIHyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIICIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIISIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIIyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIJyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIKyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIILyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIMyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIINyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIOyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIPyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIQyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIRyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIISyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIITyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUiIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIUyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVSIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIViIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIVyIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWCIAIhwKGggDIAMqBDoCEAEwAToMGgoSCAoEEgIIWSIAIg4KDAgEIAMqBDoCEAIwARgAIJBOEhRzdW0oUmVzb2x1dGlvbldpZHRoKRIWc3VtKFJlc29sdXRpb25XaWR0aCsxKRIWc3VtKFJlc29sdXRpb25XaWR0aCsyKRIWc3VtKFJlc29sdXRpb25XaWR0aCszKRIWc3VtKFJlc29sdXRpb25XaWR0aCs0KRIWc3VtKFJlc29sdXRpb25XaWR0aCs1KRIWc3VtKFJlc29sdXRpb25XaWR0aCs2KRIWc3VtKFJlc29sdXRpb25XaWR0aCs3KRIWc3VtKFJlc29sdXRpb25XaWR0aCs4KRIWc3VtKFJlc29sdXRpb25XaWR0aCs5KRIXc3VtKFJlc29sdXRpb25XaWR0aCsxMCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzEyKRIXc3VtKFJlc29sdXRpb25XaWR0aCsxMykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE1KRIXc3VtKFJlc29sdXRpb25XaWR0aCsxNikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMTcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzE4KRIXc3VtKFJlc29sdXRpb25XaWR0aCsxOSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzIxKRIXc3VtKFJlc29sdXRpb25XaWR0aCsyMikSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI0KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyNSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzI3KRIXc3VtKFJlc29sdXRpb25XaWR0aCsyOCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMjkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzMwKRIXc3VtKFJlc29sdXRpb25XaWR0aCszMSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzMzKRIXc3VtKFJlc29sdXRpb25XaWR0aCszNCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM2KRIXc3VtKFJlc29sdXRpb25XaWR0aCszNykSF3N1bShSZXNvbHV0aW9uV2lkdGgrMzgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzM5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs0MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs0MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs0NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNDcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzQ4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs0OSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzUxKRIXc3VtKFJlc29sdXRpb25XaWR0aCs1MikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU0KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1NSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzU3KRIXc3VtKFJlc29sdXRpb25XaWR0aCs1OCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNTkpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzYwKRIXc3VtKFJlc29sdXRpb25XaWR0aCs2MSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjIpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzYzKRIXc3VtKFJlc29sdXRpb25XaWR0aCs2NCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjUpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY2KRIXc3VtKFJlc29sdXRpb25XaWR0aCs2NykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNjgpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzY5KRIXc3VtKFJlc29sdXRpb25XaWR0aCs3MCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzEpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzcyKRIXc3VtKFJlc29sdXRpb25XaWR0aCs3MykSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzQpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc1KRIXc3VtKFJlc29sdXRpb25XaWR0aCs3NikSF3N1bShSZXNvbHV0aW9uV2lkdGgrNzcpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzc4KRIXc3VtKFJlc29sdXRpb25XaWR0aCs3OSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrODApEhdzdW0oUmVzb2x1dGlvbldpZHRoKzgxKRIXc3VtKFJlc29sdXRpb25XaWR0aCs4MikSF3N1bShSZXNvbHV0aW9uV2lkdGgrODMpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg0KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4NSkSF3N1bShSZXNvbHV0aW9uV2lkdGgrODYpEhdzdW0oUmVzb2x1dGlvbldpZHRoKzg3KRIXc3VtKFJlc29sdXRpb25XaWR0aCs4OCkSF3N1bShSZXNvbHV0aW9uV2lkdGgrODkpEhFhZ2dfZm9yX2RvY19jb3VudDISEE0qDnN1YnN0cmFpdC1qYXZhQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q31.json b/plugins/engine-datafusion/src/test/resources/q31.json index ea4c6fbd6cf23..17be64e1915e8 100644 --- a/plugins/engine-datafusion/src/test/resources/q31.json +++ b/plugins/engine-datafusion/src/test/resources/q31.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchPhrase","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMazBQSyRQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGQiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghkIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50EgdXYXRjaElEEghDbGllbnRJUDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkIsCAISKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CLwgEEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGljQjYIAxIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"SearchEngineID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchEngineID","SearchPhrase"],"excludes":[]},"aggregations":{"SearchEngineID|ClientIP":{"multi_terms":{"terms":[{"field":"SearchEngineID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMa0xQS0BQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCEkiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghJIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50Eg5TZWFyY2hFbmdpbmVJRBIIQ2xpZW50SVAyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQi8IBBIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYXJpdGhtZXRpY0I2CAMSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q32.json b/plugins/engine-datafusion/src/test/resources/q32.json index f59ba5011268e..ea4c6fbd6cf23 100644 --- a/plugins/engine-datafusion/src/test/resources/q32.json +++ b/plugins/engine-datafusion/src/test/resources/q32.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgBEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAISGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhIaEAgBEAEaCGFuZDpib29sIAESGRoXCAIQAhoPaXNfbm90X251bGw6YW55IAISEBoOCAMQAxoGY291bnQ6IAMSERoPCAQQBBoHc3VtOmkxNiAEEhMaEQgDEAUaCWNvdW50OmFueSADGqAUEp0UCr4TGrsTCgIKABKvEyqsEwoCCgASlxMalBMKAgoAEokTKoYTCgIKABLxEjruEgoKEggKBgYHCAkKCxKZEiKWEgoCCgASjRE6ihEKCBIGCgRpamtsEs0QEsoQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaQhpACAEaBAoCEAIiGhoYGhYIAhoECgIQAiIMGgoSCAoEEgIIZCIAIhoaGBoWCAIaBAoCEAIiDBoKEggKBBICCAYiABoKEggKBBICCGQiABoKEggKBBICCAYiABoKEggKBBICCCgiABoKEggKBBICCEUiABoWCggSBgoCEgAiAAoKEggKBBICCAEiACIOCgwIAyADKgQ6AhACMAEiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggCIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggDIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggDIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaChIICgQSAggFIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIOc3VtKElzUmVmcmVzaCkSGGF2ZyhSZXNvbHV0aW9uV2lkdGgpX3N1bRIaYXZnKFJlc29sdXRpb25XaWR0aClfY291bnQSB1dhdGNoSUQSCENsaWVudElQMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkIvCAQSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCNggDEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"bool":{"must":[{"exists":{"field":"SearchPhrase","boost":1.0}}],"must_not":[{"term":{"SearchPhrase":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","SearchPhrase","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgCEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAESGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhsaGQgBEAEaEW5vdF9lcXVhbDphbnlfYW55IAESEhoQCAIQAhoIYW5kOmJvb2wgAhIZGhcIARADGg9pc19ub3RfbnVsbDphbnkgARIQGg4IAxAEGgZjb3VudDogAxIRGg8IBBAFGgdzdW06aTE2IAQSExoRCAMQBhoJY291bnQ6YW55IAMazBQSyRQK6hMa5xMKAgoAEtsTKtgTCgIKABLDExrAEwoCCgAStRMqshMKAgoAEp0TOpoTCgoSCAoGBgcICQoLEsUSIsISCgIKABK5ETq2EQoIEgYKBGlqa2wS+RAS9hAKAgoAEqsQEqgQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaIBoeCAEaBAoCEAEiDBoKEggKBBICCEoiACIGGgQKAmIAGkIaQAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGQiACIaGhgaFggDGgQKAhACIgwaChIICgQSAggGIgAaChIICgQSAghkIgAaChIICgQSAggGIgAaChIICgQSAggoIgAaChIICgQSAghFIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAQgAyoEOgIQAjABIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAiIAIhwKGggFIAMqBDoCEAEwAToMGgoSCAoEEgIIAyIAIhwKGggGIAMqBDoCEAIwAToMGgoSCAoEEgIIAyIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSDnN1bShJc1JlZnJlc2gpEhhhdmcoUmVzb2x1dGlvbldpZHRoKV9zdW0SGmF2ZyhSZXNvbHV0aW9uV2lkdGgpX2NvdW50EgdXYXRjaElEEghDbGllbnRJUDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkIsCAISKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CLwgEEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGljQjYIAxIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q33.json b/plugins/engine-datafusion/src/test/resources/q33.json index eb7bd01270150..f59ba5011268e 100644 --- a/plugins/engine-datafusion/src/test/resources/q33.json +++ b/plugins/engine-datafusion/src/test/resources/q33.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIa4RES3hEK0xEa0BEKAgoAEsQRKsERCgIKABKsERqpEQoCCgASnhEqmxEKAgoAEoYROoMRCgYSBAoCAgMS4hAi3xAKAgoAErwQOrkQCgUSAwoBaRKjEBKgEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkI2CAISMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"exists":{"field":"WatchID","boost":1.0}},{"exists":{"field":"ClientIP","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["ClientIP","IsRefresh","ResolutionWidth","WatchID"],"excludes":[]},"aggregations":{"WatchID|ClientIP":{"multi_terms":{"terms":[{"field":"WatchID"},{"field":"ClientIP"}],"size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}},"sum(IsRefresh)":{"sum":{"field":"IsRefresh"}},"avg(ResolutionWidth)":{"avg":{"field":"ResolutionWidth"}}}}},"query_plan_ir":"CiUIAxIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IBBIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwKGwgBEhcvZnVuY3Rpb25zX2Jvb2xlYW4ueWFtbAoeCAISGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhIaEAgBEAEaCGFuZDpib29sIAESGRoXCAIQAhoPaXNfbm90X251bGw6YW55IAISEBoOCAMQAxoGY291bnQ6IAMSERoPCAQQBBoHc3VtOmkxNiAEEhMaEQgDEAUaCWNvdW50OmFueSADGqAUEp0UCr4TGrsTCgIKABKvEyqsEwoCCgASlxMalBMKAgoAEokTKoYTCgIKABLxEjruEgoKEggKBgYHCAkKCxKZEiKWEgoCCgASjRE6ihEKCBIGCgRpamtsEs0QEsoQCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaQhpACAEaBAoCEAIiGhoYGhYIAhoECgIQAiIMGgoSCAoEEgIIZCIAIhoaGBoWCAIaBAoCEAIiDBoKEggKBBICCAYiABoKEggKBBICCGQiABoKEggKBBICCAYiABoKEggKBBICCCgiABoKEggKBBICCEUiABoWCggSBgoCEgAiAAoKEggKBBICCAEiACIOCgwIAyADKgQ6AhACMAEiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggCIgAiHAoaCAQgAyoEOgIQATABOgwaChIICgQSAggDIgAiHAoaCAUgAyoEOgIQAjABOgwaChIICgQSAggDIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaChIICgQSAggFIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIOc3VtKElzUmVmcmVzaCkSGGF2ZyhSZXNvbHV0aW9uV2lkdGgpX3N1bRIaYXZnKFJlc29sdXRpb25XaWR0aClfY291bnQSB1dhdGNoSUQSCENsaWVudElQMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkIvCAQSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWNCNggDEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q34.json b/plugins/engine-datafusion/src/test/resources/q34.json index a79f298de0f87..eb7bd01270150 100644 --- a/plugins/engine-datafusion/src/test/resources/q34.json +++ b/plugins/engine-datafusion/src/test/resources/q34.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIayh0Sxx0KtR0ash0KAgoAEqYdKqMdCgIKABKOHRqLHQoCCgASgB0q/RwKAgoAEugcOuUcCgcSBQoDAwQFErccIrQcCgIKABKFHDqCHAoGEgQKAmprEt8bEtwbCgIKABK7Gzq4GwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGgQKAigBGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghpIgAaChIICgQSAghXIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSBWNvbnN0EgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIa4RES3hEK0xEa0BEKAgoAEsQRKsERCgIKABKsERqpEQoCCgASnhEqmxEKAgoAEoYROoMRCgYSBAoCAgMS4hAi3xAKAgoAErwQOrkQCgUSAwoBaRKjEBKgEAoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghXIgAaCgoIEgYKAhIAIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIASIAGggSBgoCEgAiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IARIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkI2CAISMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q35.json b/plugins/engine-datafusion/src/test/resources/q35.json index 3049b43a8f84c..a79f298de0f87 100644 --- a/plugins/engine-datafusion/src/test/resources/q35.json +++ b/plugins/engine-datafusion/src/test/resources/q35.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"exists":{"field":"ClientIP","boost":1.0}},"aggregations":{"ClientIP":{"terms":{"field":"ClientIP","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggBEhovZnVuY3Rpb25zX2FyaXRobWV0aWMueWFtbAoeCAMSGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhoaGAgBEAEaEHN1YnRyYWN0OmkzMl9pMzIgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGoQgEoEgCscfGsQfCgIKABK4Hyq1HwoCCgASoB8anR8KAgoAEpIfKo8fCgIKABL6Hjr3HgoJEgcKBQUGBwgJEq8eIqweCgIKABLlHTriHQoIEgYKBGxtbm8SpR0Soh0KAgoAEp8cOpwcCscBEsQBCsEBaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiAaHggBGgQqAhABIgwaChIICgQSAggGIgAiBhoECgIoARogGh4IARoEKgIQASIMGgoSCAoEEgIIBiIAIgYaBAoCKAIaIBoeCAEaBCoCEAEiDBoKEggKBBICCAYiACIGGgQKAigDGnoaeAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCAYiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIIaiIAIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGsiABoKEggKBBICCAYiABoKEggKBBICCGkiABoKEggKBBICCGoiABoKEggKBBICCGsiABouCggSBgoCEgAiAAoKEggKBBICCAEiAAoKEggKBBICCAIiAAoKEggKBBICCAMiACIOCgwIBCADKgQ6AhACMAEaChIICgQSAggEIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIIQ2xpZW50SVASDENsaWVudElQIC0gMRIMQ2xpZW50SVAgLSAyEgxDbGllbnRJUCAtIDMyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19jb21wYXJpc29uLnlhbWwSGRoXCAEQARoPaXNfbm90X251bGw6YW55IAESEBoOCAIQAhoGY291bnQ6IAIayh0Sxx0KtR0ash0KAgoAEqYdKqMdCgIKABKOHRqLHQoCCgASgB0q/RwKAgoAEugcOuUcCgcSBQoDAwQFErccIrQcCgIKABKFHDqCHAoGEgQKAmprEt8bEtwbCgIKABK7Gzq4GwrDARLAAQq9AWlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGgQKAigBGhgaFggBGgQKAhACIgwaChIICgQSAghXIgAaChIICgQSAghpIgAaChIICgQSAghXIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAIgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGAAgChoMCggSBgoCEgAiABAEGAAgkE4SAWMSBWNvbnN0EgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q36.json b/plugins/engine-datafusion/src/test/resources/q36.json index b447311c15cdf..3049b43a8f84c 100644 --- a/plugins/engine-datafusion/src/test/resources/q36.json +++ b/plugins/engine-datafusion/src/test/resources/q36.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBqsFBKpFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"exists":{"field":"ClientIP","boost":1.0}},"aggregations":{"ClientIP":{"terms":{"field":"ClientIP","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"c":"desc"},{"_key":"asc"}]},"aggregations":{"c":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIAhIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHggBEhovZnVuY3Rpb25zX2FyaXRobWV0aWMueWFtbAoeCAMSGi9mdW5jdGlvbnNfY29tcGFyaXNvbi55YW1sEhoaGAgBEAEaEHN1YnRyYWN0OmkzMl9pMzIgARISGhAIAhACGghhbmQ6Ym9vbCACEhkaFwgDEAMaD2lzX25vdF9udWxsOmFueSADEhAaDggEEAQaBmNvdW50OiAEGoQgEoEgCscfGsQfCgIKABK4Hyq1HwoCCgASoB8anR8KAgoAEpIfKo8fCgIKABL6Hjr3HgoJEgcKBQUGBwgJEq8eIqweCgIKABLlHTriHQoIEgYKBGxtbm8SpR0Soh0KAgoAEp8cOpwcCscBEsQBCsEBaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUARL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgoSCAoEEgIIBCIAGgoSCAoEEgIIBSIAGgoSCAoEEgIIBiIAGgoSCAoEEgIIByIAGgoSCAoEEgIICCIAGgoSCAoEEgIICSIAGgoSCAoEEgIICiIAGgoSCAoEEgIICyIAGgoSCAoEEgIIDCIAGgoSCAoEEgIIDSIAGgoSCAoEEgIIDiIAGgoSCAoEEgIIDyIAGgoSCAoEEgIIECIAGgoSCAoEEgIIESIAGgoSCAoEEgIIEiIAGgoSCAoEEgIIEyIAGgoSCAoEEgIIFCIAGgoSCAoEEgIIFSIAGgoSCAoEEgIIFiIAGgoSCAoEEgIIFyIAGgoSCAoEEgIIGCIAGgoSCAoEEgIIGSIAGgoSCAoEEgIIGiIAGgoSCAoEEgIIGyIAGgoSCAoEEgIIHCIAGgoSCAoEEgIIHSIAGgoSCAoEEgIIHiIAGgoSCAoEEgIIHyIAGgoSCAoEEgIIICIAGgoSCAoEEgIIISIAGgoSCAoEEgIIIiIAGgoSCAoEEgIIIyIAGgoSCAoEEgIIJCIAGgoSCAoEEgIIJSIAGgoSCAoEEgIIJiIAGgoSCAoEEgIIJyIAGgoSCAoEEgIIKCIAGgoSCAoEEgIIKSIAGgoSCAoEEgIIKiIAGgoSCAoEEgIIKyIAGgoSCAoEEgIILCIAGgoSCAoEEgIILSIAGgoSCAoEEgIILiIAGgoSCAoEEgIILyIAGgoSCAoEEgIIMCIAGgoSCAoEEgIIMSIAGgoSCAoEEgIIMiIAGgoSCAoEEgIIMyIAGgoSCAoEEgIINCIAGgoSCAoEEgIINSIAGgoSCAoEEgIINiIAGgoSCAoEEgIINyIAGgoSCAoEEgIIOCIAGgoSCAoEEgIIOSIAGgoSCAoEEgIIOiIAGgoSCAoEEgIIOyIAGgoSCAoEEgIIPCIAGgoSCAoEEgIIPSIAGgoSCAoEEgIIPiIAGgoSCAoEEgIIPyIAGgoSCAoEEgIIQCIAGgoSCAoEEgIIQSIAGgoSCAoEEgIIQiIAGgoSCAoEEgIIQyIAGgoSCAoEEgIIRCIAGgoSCAoEEgIIRSIAGgoSCAoEEgIIRiIAGgoSCAoEEgIIRyIAGgoSCAoEEgIISCIAGgoSCAoEEgIISSIAGgoSCAoEEgIISiIAGgoSCAoEEgIISyIAGgoSCAoEEgIITCIAGgoSCAoEEgIITSIAGgoSCAoEEgIITiIAGgoSCAoEEgIITyIAGgoSCAoEEgIIUCIAGgoSCAoEEgIIUSIAGgoSCAoEEgIIUiIAGgoSCAoEEgIIUyIAGgoSCAoEEgIIVCIAGgoSCAoEEgIIVSIAGgoSCAoEEgIIViIAGgoSCAoEEgIIVyIAGgoSCAoEEgIIWCIAGgoSCAoEEgIIWSIAGgoSCAoEEgIIWiIAGgoSCAoEEgIIWyIAGgoSCAoEEgIIXCIAGgoSCAoEEgIIXSIAGgoSCAoEEgIIXiIAGgoSCAoEEgIIXyIAGgoSCAoEEgIIYCIAGgoSCAoEEgIIYSIAGgoSCAoEEgIIYiIAGgoSCAoEEgIIYyIAGgoSCAoEEgIIZCIAGgoSCAoEEgIIZSIAGgoSCAoEEgIIZiIAGgoSCAoEEgIIZyIAGgoSCAoEEgIIaCIAGiAaHggBGgQqAhABIgwaChIICgQSAggGIgAiBhoECgIoARogGh4IARoEKgIQASIMGgoSCAoEEgIIBiIAIgYaBAoCKAIaIBoeCAEaBCoCEAEiDBoKEggKBBICCAYiACIGGgQKAigDGnoaeAgCGgQKAhACIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCAYiACIaGhgaFggDGgQKAhACIgwaChIICgQSAghpIgAiGhoYGhYIAxoECgIQAiIMGgoSCAoEEgIIaiIAIhoaGBoWCAMaBAoCEAIiDBoKEggKBBICCGsiABoKEggKBBICCAYiABoKEggKBBICCGkiABoKEggKBBICCGoiABoKEggKBBICCGsiABouCggSBgoCEgAiAAoKEggKBBICCAEiAAoKEggKBBICCAIiAAoKEggKBBICCAMiACIOCgwIBCADKgQ6AhACMAEaChIICgQSAggEIgAaCBIGCgISACIAGgoSCAoEEgIIASIAGgoSCAoEEgIIAiIAGgoSCAoEEgIIAyIAGgwKCBIGCgISACIAEAQYACAKGgwKCBIGCgISACIAEAQYACCQThIBYxIIQ2xpZW50SVASDENsaWVudElQIC0gMRIMQ2xpZW50SVAgLSAyEgxDbGllbnRJUCAtIDMyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAMSK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLAgCEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q37.json b/plugins/engine-datafusion/src/test/resources/q37.json index 2d19d86268be0..b447311c15cdf 100644 --- a/plugins/engine-datafusion/src/test/resources/q37.json +++ b/plugins/engine-datafusion/src/test/resources/q37.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"Title","boost":1.0}}],"must_not":[{"term":{"Title":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","Title"],"excludes":[]},"aggregations":{"Title":{"terms":{"field":"Title","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBquFBKrFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghVIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVSIAGgoSCAoEEgIIVSIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSBVRpdGxlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"URL","boost":1.0}}],"must_not":[{"term":{"URL":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBqsFBKpFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghXIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSA1VSTDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q38.json b/plugins/engine-datafusion/src/test/resources/q38.json index f4758d2b8c912..2d19d86268be0 100644 --- a/plugins/engine-datafusion/src/test/resources/q38.json +++ b/plugins/engine-datafusion/src/test/resources/q38.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"IsLink","boost":1.0}}],"must_not":[{"term":{"IsLink":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsDownload":{"value":0,"boost":1.0}}}],"filter":[{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsDownload","IsLink","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":1010,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBq5FBK2FAqjFBqgFAoCCgASlBQqkRQKAgoAEvwTGvkTCgIKABLtEyrqEwoCCgAS1RM60hMKBhIECgICAxKxEyKuEwoCCgASixM6iBMKBRIDCgFpEvISEu8SCgIKABLOEhLLEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGsICGr8CCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggFGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIIyIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIISIAGAIiBhoECgIoABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"Title","boost":1.0}}],"must_not":[{"term":{"Title":{"value":"","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","Title"],"excludes":[]},"aggregations":{"Title":{"terms":{"field":"Title","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBquFBKrFAqWFBqTFAoCCgAShxQqhBQKAgoAEu8TGuwTCgIKABLhEyreEwoCCgASyRM6xhMKBhIECgICAxKlEyKiEwoCCgAS/xI6/BIKBRIDCgFpEuYSEuMSCgIKABLCEhK/EgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGrYCGrMCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIiGiAaHggFGgQKAhABIgwaChIICgQSAghVIgAiBhoECgJiABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVSIAGgoSCAoEEgIIVSIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBgAIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSBVRpdGxlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q39.json b/plugins/engine-datafusion/src/test/resources/q39.json index fcf3c481c3c13..f4758d2b8c912 100644 --- a/plugins/engine-datafusion/src/test/resources/q39.json +++ b/plugins/engine-datafusion/src/test/resources/q39.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["AdvEngineID","CounterID","EventDate","IsRefresh","Referer","SearchEngineID","TraficSourceID","URL"],"excludes":[]},"aggregations":{"composite_buckets":{"composite":{"size":10000,"sources":[{"TraficSourceID":{"terms":{"field":"TraficSourceID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"SearchEngineID":{"terms":{"field":"SearchEngineID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"AdvEngineID":{"terms":{"field":"AdvEngineID","missing_bucket":true,"missing_order":"first","order":"asc"}}},{"Src":{"terms":{"script":{"source":"{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQBT3sKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJTTUFMTElOVCIsCiAgICAgICJudWxsYWJsZSI6IHRydWUsCiAgICAgICJuYW1lIjogIlNlYXJjaEVuZ2luZUlEIgogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiU01BTExJTlQiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAibmFtZSI6ICJBZHZFbmdpbmVJRCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogLTEsCiAgICAgICJuYW1lIjogIlJlZmVyZXIiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQE8XsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDQVNFIiwKICAgICJraW5kIjogIkNBU0UiLAogICAgInN5bnRheCI6ICJTUEVDSUFMIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAib3AiOiB7CiAgICAgICAgIm5hbWUiOiAiQU5EIiwKICAgICAgICAia2luZCI6ICJBTkQiLAogICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICB9LAogICAgICAib3BlcmFuZHMiOiBbCiAgICAgICAgewogICAgICAgICAgIm9wIjogewogICAgICAgICAgICAibmFtZSI6ICI9IiwKICAgICAgICAgICAgImtpbmQiOiAiRVFVQUxTIiwKICAgICAgICAgICAgInN5bnRheCI6ICJCSU5BUlkiCiAgICAgICAgICB9LAogICAgICAgICAgIm9wZXJhbmRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImlucHV0IjogMCwKICAgICAgICAgICAgICAibmFtZSI6ICIkMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJsaXRlcmFsIjogMCwKICAgICAgICAgICAgICAidHlwZSI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIklOVEVHRVIiLAogICAgICAgICAgICAgICAgIm51bGxhYmxlIjogZmFsc2UKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJvcCI6IHsKICAgICAgICAgICAgIm5hbWUiOiAiPSIsCiAgICAgICAgICAgICJraW5kIjogIkVRVUFMUyIsCiAgICAgICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICAgICAgfSwKICAgICAgICAgICJvcGVyYW5kcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpbnB1dCI6IDEsCiAgICAgICAgICAgICAgIm5hbWUiOiAiJDEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibGl0ZXJhbCI6IDAsCiAgICAgICAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJJTlRFR0VSIiwKICAgICAgICAgICAgICAgICJudWxsYWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiaW5wdXQiOiAyLAogICAgICAibmFtZSI6ICIkMiIKICAgIH0sCiAgICB7CiAgICAgICJsaXRlcmFsIjogIiIsCiAgICAgICJ0eXBlIjogewogICAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAgICJudWxsYWJsZSI6IGZhbHNlLAogICAgICAgICJwcmVjaXNpb24iOiAtMQogICAgICB9CiAgICB9CiAgXQp9dAAKZmllbGRUeXBlc3NyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAADdAAOU2VhcmNoRW5naW5lSUR+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAVTSE9SVHQAB1JlZmVyZXJ+cQB+AAp0AAZTVFJJTkd0AAtBZHZFbmdpbmVJRHEAfgAMeHg=\"}","lang":"opensearch_compounded_script","params":{"utcTimestamp":1762824212362603000}},"missing_bucket":true,"missing_order":"first","order":"asc"}}},{"Dst":{"terms":{"field":"URL","missing_bucket":true,"missing_order":"first","order":"asc"}}}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSEBoOCAQQBRoGY291bnQ6IAQa9BUS8RUKrBUaqRUKAgoAEp0VKpoVCgIKABKFFRqCFQoCCgAS9hQq8xQKAgoAEt4UOtsUCgoSCAoGBgcICQoLEoYUIoMUCgIKABKwEzqtEwoJEgcKBWlqa2xtEu4REusRCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMa4gEa3wEIARoECgIQASIiGiAaHggCGgQKAhABIgwaChIICgQSAggMIgAiBhoECgIoPiKAARp+GnwIARoECgIQASI4GjYaNAgDGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA+sb+jLgCGAIiOBo2GjQIBBoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwO/Atti4AhgCIi4aLBoqCAIaBAoCEAEiGBoWWhQKBCoCEAESChIICgQSAggoIgAYAiIGGgQKAigAGgoSCAoEEgIIViIAGgoSCAoEEgIISSIAGggSBgoCEgAiABqAATJ+CnYKaBpmCAEaBAoCEAEiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCEkiABgCIgYaBAoCKAAiLBoqGigIAhoECgIQASIWGhRaEgoEKgIQARIIEgYKAhIAIgAYAiIGGgQKAigAEgoSCAoEEgIIPSIAEgQKAmIAGgoSCAoEEgIIVyIAGjoKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIACgoSCAoEEgIIAyIACgoSCAoEEgIIBCIAIg4KDAgFIAMqBDoCEAIwARoKEggKBBICCAUiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEg5UcmFmaWNTb3VyY2VJRBIOU2VhcmNoRW5naW5lSUQSC0FkdkVuZ2luZUlEEgNTcmMSA0RzdDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"bool":{"must":[{"exists":{"field":"IsLink","boost":1.0}}],"must_not":[{"term":{"IsLink":{"value":0,"boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsDownload":{"value":0,"boost":1.0}}}],"filter":[{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}},{"exists":{"field":"URL","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsDownload","IsLink","IsRefresh","URL"],"excludes":[]},"aggregations":{"URL":{"terms":{"field":"URL","size":1010,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"PageViews":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGxoZCAIQBRoRbm90X2VxdWFsOmFueV9hbnkgAhIZGhcIAhAGGg9pc19ub3RfbnVsbDphbnkgAhIQGg4IBBAHGgZjb3VudDogBBq5FBK2FAqjFBqgFAoCCgASlBQqkRQKAgoAEvwTGvkTCgIKABLtEyrqEwoCCgAS1RM60hMKBhIECgICAxKxEyKuEwoCCgASixM6iBMKBRIDCgFpEvISEu8SCgIKABLOEhLLEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGsICGr8CCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggFGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIIyIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIISIAGAIiBhoECgIoABoYGhYIBhoECgIQAiIMGgoSCAoEEgIIVyIAGgoSCAoEEgIIVyIAGgoKCBIGCgISACIAIg4KDAgHIAMqBDoCEAIwARoKEggKBBICCAEiABoIEgYKAhIAIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEgNVUkwyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q4.json b/plugins/engine-datafusion/src/test/resources/q4.json index d5241a65f691d..d859146ebc1fe 100644 --- a/plugins/engine-datafusion/src/test/resources/q4.json +++ b/plugins/engine-datafusion/src/test/resources/q4.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"avg(UserID)":{"avg":{"field":"UserID"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSERoPCAEQARoHc3VtOmk2NCABEhMaEQgCEAIaCWNvdW50OmFueSACGpUREpIRCusQGugQCgIKABLcECLZEAoCCgASmBA6lRAKBRIDCgFpEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCGMiABoAIhoKGAgBIAMqBDoCEAEwAToKGggSBgoCEgAiACIaChgIAiADKgQ6AhACMAE6ChoIEgYKAhIAIgAYACCQThIPYXZnKFVzZXJJRClfc3VtEhFhdmcoVXNlcklEKV9jb3VudDISEE0qDnN1YnN0cmFpdC1qYXZhQjYIAhIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWNCLwgBEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hcml0aG1ldGlj"} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","aggregations":{"avg(UserID)":{"avg":{"field":"UserID"}}},"query_plan_ir":"CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sCh4IARIaL2Z1bmN0aW9uc19hcml0aG1ldGljLnlhbWwSERoPCAEQARoHc3VtOmk2NCABEhMaEQgCEAIaCWNvdW50OmFueSACEhAaDggCEAMaBmNvdW50OiACGrgRErURCvsQGvgQCgIKABLsECLpEAoCCgASmBA6lRAKBRIDCgFpEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxoKEggKBBICCGMiABoAIhoKGAgBIAMqBDoCEAEwAToKGggSBgoCEgAiACIaChgIAiADKgQ6AhACMAE6ChoIEgYKAhIAIgAiDgoMCAMgAyoEOgIQAjABGAAgkE4SD2F2ZyhVc2VySUQpX3N1bRIRYXZnKFVzZXJJRClfY291bnQSEWFnZ19mb3JfZG9jX2NvdW50MhIQTSoOc3Vic3RyYWl0LWphdmFCNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpY0IvCAESK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FyaXRobWV0aWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q40.json b/plugins/engine-datafusion/src/test/resources/q40.json index 9e7cfd8c9d6f2..386fe67f22530 100644 --- a/plugins/engine-datafusion/src/test/resources/q40.json +++ b/plugins/engine-datafusion/src/test/resources/q40.json @@ -1 +1,127 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"bool":{"must":[{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"exists":{"field":"EventDate","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"terms":{"TraficSourceID":[-1.0,6.0],"boost":1.0}},{"term":{"RefererHash":{"value":3594120000172545465,"boost":1.0}}},{"exists":{"field":"URLHash","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsRefresh","RefererHash","TraficSourceID","URLHash"],"excludes":[]},"aggregations":{"URLHash|EventDate":{"multi_terms":{"terms":[{"field":"URLHash"},{"field":"EventDate","value_type":"long"}],"size":110,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSERoPCAEQBRoHb3I6Ym9vbCABEhkaFwgCEAYaD2lzX25vdF9udWxsOmFueSACEhAaDggEEAcaBmNvdW50OiAEGtoVEtcVCrUVGrIVCgIKABKmFSqjFQoCCgASjhUaixUKAgoAEoAVKv0UCgIKABLoFDrlFAoHEgUKAwMEBRK3FCK0FAoCCgAShRQ6ghQKBhIECgJpahLfExLcEwoCCgASkRMSjhMKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxqFAxqCAwgBGgQKAhABIiIaIBoeCAIaBAoCEAEiDBoKEggKBBICCAwiACIGGgQKAig+IoABGn4afAgBGgQKAhABIjgaNho0CAMaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMD6xv6MuAIYAiI4GjYaNAgEGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA78C22LgCGAIiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCCgiABgCIgYaBAoCKAAidRpzGnEIBRoECgIQASI3GjUaMwgCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiDxoNCgso////////////ASIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiBhoECgIoBiIqGigaJggCGgQKAhABIgwaChIICgQSAgg/IgAiDhoMCgo4uaulk5CjuPAxGkIaQAgBGgQKAhACIhoaGBoWCAYaBAoCEAIiDBoKEggKBBICCFkiACIaGhgaFggGGgQKAhACIgwaChIICgQSAggPIgAaChIICgQSAghZIgAaChIICgQSAggPIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAcgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGGQgChoMCggSBgoCEgAiABAEGAAgkE4SCVBhZ2VWaWV3cxIHVVJMSGFzaBIJRXZlbnREYXRlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file +{ + "from": 0, + "size": 0, + "timeout": "1m", + "query": { + "bool": { + "must": [ + { + "term": { + "CounterID": { + "value": 62, + "boost": 1.0 + } + } + }, + { + "range": { + "EventDate": { + "from": "2013-07-01T00:00:00.000Z", + "to": "2013-07-31T00:00:00.000Z", + "include_lower": true, + "include_upper": true, + "format": "date_time", + "boost": 1.0 + } + } + }, + { + "term": { + "IsRefresh": { + "value": 0, + "boost": 1.0 + } + } + } + ], + "adjust_pure_negative": true, + "boost": 1.0 + } + }, + "_source": { + "includes": [ + "AdvEngineID", + "CounterID", + "EventDate", + "IsRefresh", + "Referer", + "SearchEngineID", + "TraficSourceID", + "URL" + ], + "excludes": [] + }, + "aggregations": { + "composite_buckets": { + "composite": { + "size": 10000, + "sources": [ + { + "TraficSourceID": { + "terms": { + "field": "TraficSourceID", + "missing_bucket": true, + "missing_order": "first", + "order": "asc" + } + } + }, + { + "SearchEngineID": { + "terms": { + "field": "SearchEngineID", + "missing_bucket": true, + "missing_order": "first", + "order": "asc" + } + } + }, + { + "AdvEngineID": { + "terms": { + "field": "AdvEngineID", + "missing_bucket": true, + "missing_order": "first", + "order": "asc" + } + } + }, + { + "Src": { + "terms": { + "script": { + "source": "{\"langType\":\"calcite\",\"script\":\"rO0ABXNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAAGdAAHcm93VHlwZXQBT3sKICAiZmllbGRzIjogWwogICAgewogICAgICAidHlwZSI6ICJTTUFMTElOVCIsCiAgICAgICJudWxsYWJsZSI6IHRydWUsCiAgICAgICJuYW1lIjogIlNlYXJjaEVuZ2luZUlEIgogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiU01BTExJTlQiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAibmFtZSI6ICJBZHZFbmdpbmVJRCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAibnVsbGFibGUiOiB0cnVlLAogICAgICAicHJlY2lzaW9uIjogLTEsCiAgICAgICJuYW1lIjogIlJlZmVyZXIiCiAgICB9CiAgXSwKICAibnVsbGFibGUiOiBmYWxzZQp9dAAEZXhwcnQE8XsKICAib3AiOiB7CiAgICAibmFtZSI6ICJDQVNFIiwKICAgICJraW5kIjogIkNBU0UiLAogICAgInN5bnRheCI6ICJTUEVDSUFMIgogIH0sCiAgIm9wZXJhbmRzIjogWwogICAgewogICAgICAib3AiOiB7CiAgICAgICAgIm5hbWUiOiAiQU5EIiwKICAgICAgICAia2luZCI6ICJBTkQiLAogICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICB9LAogICAgICAib3BlcmFuZHMiOiBbCiAgICAgICAgewogICAgICAgICAgIm9wIjogewogICAgICAgICAgICAibmFtZSI6ICI9IiwKICAgICAgICAgICAgImtpbmQiOiAiRVFVQUxTIiwKICAgICAgICAgICAgInN5bnRheCI6ICJCSU5BUlkiCiAgICAgICAgICB9LAogICAgICAgICAgIm9wZXJhbmRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgImlucHV0IjogMCwKICAgICAgICAgICAgICAibmFtZSI6ICIkMCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJsaXRlcmFsIjogMCwKICAgICAgICAgICAgICAidHlwZSI6IHsKICAgICAgICAgICAgICAgICJ0eXBlIjogIklOVEVHRVIiLAogICAgICAgICAgICAgICAgIm51bGxhYmxlIjogZmFsc2UKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIF0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJvcCI6IHsKICAgICAgICAgICAgIm5hbWUiOiAiPSIsCiAgICAgICAgICAgICJraW5kIjogIkVRVUFMUyIsCiAgICAgICAgICAgICJzeW50YXgiOiAiQklOQVJZIgogICAgICAgICAgfSwKICAgICAgICAgICJvcGVyYW5kcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJpbnB1dCI6IDEsCiAgICAgICAgICAgICAgIm5hbWUiOiAiJDEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAibGl0ZXJhbCI6IDAsCiAgICAgICAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICAgICAidHlwZSI6ICJJTlRFR0VSIiwKICAgICAgICAgICAgICAgICJudWxsYWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiaW5wdXQiOiAyLAogICAgICAibmFtZSI6ICIkMiIKICAgIH0sCiAgICB7CiAgICAgICJsaXRlcmFsIjogIiIsCiAgICAgICJ0eXBlIjogewogICAgICAgICJ0eXBlIjogIlZBUkNIQVIiLAogICAgICAgICJudWxsYWJsZSI6IGZhbHNlLAogICAgICAgICJwcmVjaXNpb24iOiAtMQogICAgICB9CiAgICB9CiAgXQp9dAAKZmllbGRUeXBlc3NyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVzaG9sZHhwP0AAAAAAAAx3CAAAABAAAAADdAAOU2VhcmNoRW5naW5lSUR+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAVTSE9SVHQAB1JlZmVyZXJ+cQB+AAp0AAZTVFJJTkd0AAtBZHZFbmdpbmVJRHEAfgAMeHg=\"}", + "lang": "opensearch_compounded_script", + "params": { + "utcTimestamp": 1763528541203612000 + } + }, + "missing_bucket": true, + "missing_order": "first", + "order": "asc" + } + } + }, + { + "Dst": { + "terms": { + "field": "URL", + "missing_bucket": true, + "missing_order": "first", + "order": "asc" + } + } + } + ] + }, + "aggregations": { + "PageViews": { + "value_count": { + "field": "_index" + } + } + } + } + }, + "query_plan_ir": "CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSEBoOCAQQBRoGY291bnQ6IAQa9BUS8RUKrBUaqRUKAgoAEp0VKpoVCgIKABKFFRqCFQoCCgAS9hQq8xQKAgoAEt4UOtsUCgoSCAoGBgcICQoLEoYUIoMUCgIKABKwEzqtEwoJEgcKBWlqa2xtEu4REusRCgIKABL/Dwr8DwoCCgAS7Q8KC0FkdkVuZ2luZUlECgNBZ2UKDkJyb3dzZXJDb3VudHJ5Cg9Ccm93c2VyTGFuZ3VhZ2UKBENMSUQKD0NsaWVudEV2ZW50VGltZQoIQ2xpZW50SVAKDkNsaWVudFRpbWVab25lCgtDb2RlVmVyc2lvbgoNQ29ubmVjdFRpbWluZwoMQ29va2llRW5hYmxlCgxDb3VudGVyQ2xhc3MKCUNvdW50ZXJJRAoJRE5TVGltaW5nCg1Eb250Q291bnRIaXRzCglFdmVudERhdGUKCUV2ZW50VGltZQoHRlVuaXFJRAoLRmV0Y2hUaW1pbmcKCkZsYXNoTWFqb3IKCkZsYXNoTWlub3IKC0ZsYXNoTWlub3IyCgdGcm9tVGFnCglHb29kRXZlbnQKA0hJRAoJSFRUUEVycm9yCghIYXNHQ0xJRAoNSGlzdG9yeUxlbmd0aAoISGl0Q29sb3IKC0lQTmV0d29ya0lECgZJbmNvbWUKCUludGVyZXN0cwoLSXNBcnRpZmljYWwKCklzRG93bmxvYWQKB0lzRXZlbnQKBklzTGluawoISXNNb2JpbGUKC0lzTm90Qm91bmNlCgxJc09sZENvdW50ZXIKC0lzUGFyYW1ldGVyCglJc1JlZnJlc2gKCkphdmFFbmFibGUKEEphdmFzY3JpcHRFbmFibGUKDkxvY2FsRXZlbnRUaW1lCgtNb2JpbGVQaG9uZQoQTW9iaWxlUGhvbmVNb2RlbAoITmV0TWFqb3IKCE5ldE1pbm9yCgJPUwoKT3BlbmVyTmFtZQoMT3BlbnN0YXRBZElEChJPcGVuc3RhdENhbXBhaWduSUQKE09wZW5zdGF0U2VydmljZU5hbWUKEE9wZW5zdGF0U291cmNlSUQKC09yaWdpbmFsVVJMCgtQYWdlQ2hhcnNldAoNUGFyYW1DdXJyZW5jeQoPUGFyYW1DdXJyZW5jeUlECgxQYXJhbU9yZGVySUQKClBhcmFtUHJpY2UKBlBhcmFtcwoHUmVmZXJlcgoRUmVmZXJlckNhdGVnb3J5SUQKC1JlZmVyZXJIYXNoCg9SZWZlcmVyUmVnaW9uSUQKCFJlZ2lvbklECghSZW1vdGVJUAoPUmVzb2x1dGlvbkRlcHRoChBSZXNvbHV0aW9uSGVpZ2h0Cg9SZXNvbHV0aW9uV2lkdGgKEVJlc3BvbnNlRW5kVGltaW5nChNSZXNwb25zZVN0YXJ0VGltaW5nCglSb2JvdG5lc3MKDlNlYXJjaEVuZ2luZUlECgxTZWFyY2hQaHJhc2UKClNlbmRUaW1pbmcKA1NleAoTU2lsdmVybGlnaHRWZXJzaW9uMQoTU2lsdmVybGlnaHRWZXJzaW9uMgoTU2lsdmVybGlnaHRWZXJzaW9uMwoTU2lsdmVybGlnaHRWZXJzaW9uNAoMU29jaWFsQWN0aW9uCg1Tb2NpYWxOZXR3b3JrChVTb2NpYWxTb3VyY2VOZXR3b3JrSUQKEFNvY2lhbFNvdXJjZVBhZ2UKBVRpdGxlCg5UcmFmaWNTb3VyY2VJRAoDVVJMCg1VUkxDYXRlZ29yeUlECgdVUkxIYXNoCgtVUkxSZWdpb25JRAoLVVRNQ2FtcGFpZ24KClVUTUNvbnRlbnQKCVVUTU1lZGl1bQoJVVRNU291cmNlCgdVVE1UZXJtCglVc2VyQWdlbnQKDlVzZXJBZ2VudE1ham9yCg5Vc2VyQWdlbnRNaW5vcgoGVXNlcklECgdXYXRjaElEChJXaW5kb3dDbGllbnRIZWlnaHQKEVdpbmRvd0NsaWVudFdpZHRoCgpXaW5kb3dOYW1lCghXaXRoSGFzaBKEBQoEGgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEKgIQAQoHigIECAMYAQoEKgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoHigIECAMYAQoHigIECAMYAQoEOgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoHigIECAMYAQoEGgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEKgIQAQoEGgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEYgIQAQoEGgIQAQoEOgIQAQoEKgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEYgIQAQoEGgIQAQoEGgIQAQoEYgIQAQoEOgIQAQoEOgIQAQoEGgIQAQoEGgIQAQoEKgIQAQoEGgIQARgBOgYKBGhpdHMa4gEa3wEIARoECgIQASIiGiAaHggCGgQKAhABIgwaChIICgQSAggMIgAiBhoECgIoPiKAARp+GnwIARoECgIQASI4GjYaNAgDGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA+sb+jLgCGAIiOBo2GjQIBBoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwO/Atti4AhgCIi4aLBoqCAIaBAoCEAEiGBoWWhQKBCoCEAESChIICgQSAggoIgAYAiIGGgQKAigAGgoSCAoEEgIIViIAGgoSCAoEEgIISSIAGggSBgoCEgAiABqAATJ+CnYKaBpmCAEaBAoCEAEiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCEkiABgCIgYaBAoCKAAiLBoqGigIAhoECgIQASIWGhRaEgoEKgIQARIIEgYKAhIAIgAYAiIGGgQKAigAEgoSCAoEEgIIPSIAEgQKAmIAGgoSCAoEEgIIVyIAGjoKCBIGCgISACIACgoSCAoEEgIIASIACgoSCAoEEgIIAiIACgoSCAoEEgIIAyIACgoSCAoEEgIIBCIAIg4KDAgFIAMqBDoCEAIwARoKEggKBBICCAUiABoIEgYKAhIAIgAaChIICgQSAggBIgAaChIICgQSAggCIgAaChIICgQSAggDIgAaChIICgQSAggEIgAaDAoIEgYKAhIAIgAQBBjoByAKGgwKCBIGCgISACIAEAQYACCQThIJUGFnZVZpZXdzEg5UcmFmaWNTb3VyY2VJRBIOU2VhcmNoRW5naW5lSUQSC0FkdkVuZ2luZUlEEgNTcmMSA0RzdDISEE0qDnN1YnN0cmFpdC1qYXZhQi8IAhIrZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfY29tcGFyaXNvbkItCAMSKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1lQiwIARIoZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYm9vbGVhbkI2CAQSMmV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2FnZ3JlZ2F0ZV9nZW5lcmlj" +} diff --git a/plugins/engine-datafusion/src/test/resources/q41.json b/plugins/engine-datafusion/src/test/resources/q41.json index 8224f7ec35141..9e7cfd8c9d6f2 100644 --- a/plugins/engine-datafusion/src/test/resources/q41.json +++ b/plugins/engine-datafusion/src/test/resources/q41.json @@ -1 +1 @@ -{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"URLHash":{"value":2868770270353813622,"boost":1.0}}},{"exists":{"field":"WindowClientWidth","boost":1.0}},{"exists":{"field":"WindowClientHeight","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URLHash","WindowClientHeight","WindowClientWidth"],"excludes":[]},"aggregations":{"WindowClientWidth|WindowClientHeight":{"multi_terms":{"terms":[{"field":"WindowClientWidth"},{"field":"WindowClientHeight"}],"size":10000,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGRoXCAIQBRoPaXNfbm90X251bGw6YW55IAISEBoOCAQQBhoGY291bnQ6IAQapxUSpBUK7xQa7BQKAgoAEuAUKt0UCgIKABLIFBrFFAoCCgASuRQqthQKAgoAEqEUOp4UCgcSBQoDAwQFEvATIu0TCgIKABK+Ezq7EwoGEgQKAmlqEpgTEpUTCgIKABLKEhLHEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGr4CGrsCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIqGigaJggCGgQKAhABIgwaChIICgQSAghZIgAiDhoMCgo49uCP1cjr+ucnGkIaQAgBGgQKAhACIhoaGBoWCAUaBAoCEAIiDBoKEggKBBICCGYiACIaGhgaFggFGgQKAhACIgwaChIICgQSAghlIgAaChIICgQSAghmIgAaChIICgQSAghlIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGJBOIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSEVdpbmRvd0NsaWVudFdpZHRoEhJXaW5kb3dDbGllbnRIZWlnaHQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"bool":{"must":[{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"exists":{"field":"EventDate","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"terms":{"TraficSourceID":[-1.0,6.0],"boost":1.0}},{"term":{"RefererHash":{"value":3594120000172545465,"boost":1.0}}},{"exists":{"field":"URLHash","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","EventDate","IsRefresh","RefererHash","TraficSourceID","URLHash"],"excludes":[]},"aggregations":{"URLHash|EventDate":{"multi_terms":{"terms":[{"field":"URLHash"},{"field":"EventDate","value_type":"long"}],"size":110,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSERoPCAEQBRoHb3I6Ym9vbCABEhkaFwgCEAYaD2lzX25vdF9udWxsOmFueSACEhAaDggEEAcaBmNvdW50OiAEGtoVEtcVCrUVGrIVCgIKABKmFSqjFQoCCgASjhUaixUKAgoAEoAVKv0UCgIKABLoFDrlFAoHEgUKAwMEBRK3FCK0FAoCCgAShRQ6ghQKBhIECgJpahLfExLcEwoCCgASkRMSjhMKAgoAEv8PCvwPCgIKABLtDwoLQWR2RW5naW5lSUQKA0FnZQoOQnJvd3NlckNvdW50cnkKD0Jyb3dzZXJMYW5ndWFnZQoEQ0xJRAoPQ2xpZW50RXZlbnRUaW1lCghDbGllbnRJUAoOQ2xpZW50VGltZVpvbmUKC0NvZGVWZXJzaW9uCg1Db25uZWN0VGltaW5nCgxDb29raWVFbmFibGUKDENvdW50ZXJDbGFzcwoJQ291bnRlcklECglETlNUaW1pbmcKDURvbnRDb3VudEhpdHMKCUV2ZW50RGF0ZQoJRXZlbnRUaW1lCgdGVW5pcUlECgtGZXRjaFRpbWluZwoKRmxhc2hNYWpvcgoKRmxhc2hNaW5vcgoLRmxhc2hNaW5vcjIKB0Zyb21UYWcKCUdvb2RFdmVudAoDSElECglIVFRQRXJyb3IKCEhhc0dDTElECg1IaXN0b3J5TGVuZ3RoCghIaXRDb2xvcgoLSVBOZXR3b3JrSUQKBkluY29tZQoJSW50ZXJlc3RzCgtJc0FydGlmaWNhbAoKSXNEb3dubG9hZAoHSXNFdmVudAoGSXNMaW5rCghJc01vYmlsZQoLSXNOb3RCb3VuY2UKDElzT2xkQ291bnRlcgoLSXNQYXJhbWV0ZXIKCUlzUmVmcmVzaAoKSmF2YUVuYWJsZQoQSmF2YXNjcmlwdEVuYWJsZQoOTG9jYWxFdmVudFRpbWUKC01vYmlsZVBob25lChBNb2JpbGVQaG9uZU1vZGVsCghOZXRNYWpvcgoITmV0TWlub3IKAk9TCgpPcGVuZXJOYW1lCgxPcGVuc3RhdEFkSUQKEk9wZW5zdGF0Q2FtcGFpZ25JRAoTT3BlbnN0YXRTZXJ2aWNlTmFtZQoQT3BlbnN0YXRTb3VyY2VJRAoLT3JpZ2luYWxVUkwKC1BhZ2VDaGFyc2V0Cg1QYXJhbUN1cnJlbmN5Cg9QYXJhbUN1cnJlbmN5SUQKDFBhcmFtT3JkZXJJRAoKUGFyYW1QcmljZQoGUGFyYW1zCgdSZWZlcmVyChFSZWZlcmVyQ2F0ZWdvcnlJRAoLUmVmZXJlckhhc2gKD1JlZmVyZXJSZWdpb25JRAoIUmVnaW9uSUQKCFJlbW90ZUlQCg9SZXNvbHV0aW9uRGVwdGgKEFJlc29sdXRpb25IZWlnaHQKD1Jlc29sdXRpb25XaWR0aAoRUmVzcG9uc2VFbmRUaW1pbmcKE1Jlc3BvbnNlU3RhcnRUaW1pbmcKCVJvYm90bmVzcwoOU2VhcmNoRW5naW5lSUQKDFNlYXJjaFBocmFzZQoKU2VuZFRpbWluZwoDU2V4ChNTaWx2ZXJsaWdodFZlcnNpb24xChNTaWx2ZXJsaWdodFZlcnNpb24yChNTaWx2ZXJsaWdodFZlcnNpb24zChNTaWx2ZXJsaWdodFZlcnNpb240CgxTb2NpYWxBY3Rpb24KDVNvY2lhbE5ldHdvcmsKFVNvY2lhbFNvdXJjZU5ldHdvcmtJRAoQU29jaWFsU291cmNlUGFnZQoFVGl0bGUKDlRyYWZpY1NvdXJjZUlECgNVUkwKDVVSTENhdGVnb3J5SUQKB1VSTEhhc2gKC1VSTFJlZ2lvbklECgtVVE1DYW1wYWlnbgoKVVRNQ29udGVudAoJVVRNTWVkaXVtCglVVE1Tb3VyY2UKB1VUTVRlcm0KCVVzZXJBZ2VudAoOVXNlckFnZW50TWFqb3IKDlVzZXJBZ2VudE1pbm9yCgZVc2VySUQKB1dhdGNoSUQKEldpbmRvd0NsaWVudEhlaWdodAoRV2luZG93Q2xpZW50V2lkdGgKCldpbmRvd05hbWUKCFdpdGhIYXNoEoQFCgQaAhABCgQaAhABCgRiAhABCgRiAhABCgQqAhABCgeKAgQIAxgBCgQqAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgeKAgQIAxgBCgeKAgQIAxgBCgQ6AhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQaAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgQaAhABCgeKAgQIAxgBCgQaAhABCgRiAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQ6AhABCgRiAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQqAhABCgQaAhABCgQaAhABCgRiAhABCgQqAhABCgQaAhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgRiAhABCgQaAhABCgRiAhABCgQaAhABCgQ6AhABCgQqAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgRiAhABCgQaAhABCgQaAhABCgRiAhABCgQ6AhABCgQ6AhABCgQaAhABCgQaAhABCgQqAhABCgQaAhABGAE6BgoEaGl0cxqFAxqCAwgBGgQKAhABIiIaIBoeCAIaBAoCEAEiDBoKEggKBBICCAwiACIGGgQKAig+IoABGn4afAgBGgQKAhABIjgaNho0CAMaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMD6xv6MuAIYAiI4GjYaNAgEGgQKAhABIgwaChIICgQSAggPIgAiHBoaWhgKB4oCBAgDGAISCwoJcIDA78C22LgCGAIiLhosGioIAhoECgIQASIYGhZaFAoEKgIQARIKEggKBBICCCgiABgCIgYaBAoCKAAidRpzGnEIBRoECgIQASI3GjUaMwgCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiDxoNCgso////////////ASIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIViIAGAIiBhoECgIoBiIqGigaJggCGgQKAhABIgwaChIICgQSAgg/IgAiDhoMCgo4uaulk5CjuPAxGkIaQAgBGgQKAhACIhoaGBoWCAYaBAoCEAIiDBoKEggKBBICCFkiACIaGhgaFggGGgQKAhACIgwaChIICgQSAggPIgAaChIICgQSAghZIgAaChIICgQSAggPIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAcgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGGQgChoMCggSBgoCEgAiABAEGAAgkE4SCVBhZ2VWaWV3cxIHVVJMSGFzaBIJRXZlbnREYXRlMhIQTSoOc3Vic3RyYWl0LWphdmFCLwgCEitleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19jb21wYXJpc29uQi0IAxIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCLAgBEihleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19ib29sZWFuQjYIBBIyZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfYWdncmVnYXRlX2dlbmVyaWM="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q42.json b/plugins/engine-datafusion/src/test/resources/q42.json new file mode 100644 index 0000000000000..8224f7ec35141 --- /dev/null +++ b/plugins/engine-datafusion/src/test/resources/q42.json @@ -0,0 +1 @@ +{"from":0,"size":0,"timeout":"1m","query":{"bool":{"must":[{"term":{"CounterID":{"value":62,"boost":1.0}}},{"range":{"EventDate":{"from":"2013-07-01T00:00:00.000Z","to":"2013-07-31T00:00:00.000Z","include_lower":true,"include_upper":true,"format":"date_time","boost":1.0}}},{"term":{"IsRefresh":{"value":0,"boost":1.0}}},{"term":{"DontCountHits":{"value":0,"boost":1.0}}},{"term":{"URLHash":{"value":2868770270353813622,"boost":1.0}}},{"exists":{"field":"WindowClientWidth","boost":1.0}},{"exists":{"field":"WindowClientHeight","boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"_source":{"includes":["CounterID","DontCountHits","EventDate","IsRefresh","URLHash","WindowClientHeight","WindowClientWidth"],"excludes":[]},"aggregations":{"WindowClientWidth|WindowClientHeight":{"multi_terms":{"terms":[{"field":"WindowClientWidth"},{"field":"WindowClientHeight"}],"size":10000,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},{"_key":"asc"}]},"aggregations":{"PageViews":{"value_count":{"field":"_index"}}}}},"query_plan_ir":"CiUIBBIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChsIARIXL2Z1bmN0aW9uc19ib29sZWFuLnlhbWwKHAgDEhgvZnVuY3Rpb25zX2RhdGV0aW1lLnlhbWwKHggCEhovZnVuY3Rpb25zX2NvbXBhcmlzb24ueWFtbBISGhAIARABGghhbmQ6Ym9vbCABEhcaFQgCEAIaDWVxdWFsOmFueV9hbnkgAhIVGhMIAxADGgtndGU6cHRzX3B0cyADEhUaEwgDEAQaC2x0ZTpwdHNfcHRzIAMSGRoXCAIQBRoPaXNfbm90X251bGw6YW55IAISEBoOCAQQBhoGY291bnQ6IAQapxUSpBUK7xQa7BQKAgoAEuAUKt0UCgIKABLIFBrFFAoCCgASuRQqthQKAgoAEqEUOp4UCgcSBQoDAwQFEvATIu0TCgIKABK+Ezq7EwoGEgQKAmlqEpgTEpUTCgIKABLKEhLHEgoCCgAS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGr4CGrsCCAEaBAoCEAEiIhogGh4IAhoECgIQASIMGgoSCAoEEgIIDCIAIgYaBAoCKD4igAEafhp8CAEaBAoCEAEiOBo2GjQIAxoECgIQASIMGgoSCAoEEgIIDyIAIhwaGloYCgeKAgQIAxgCEgsKCXCAwPrG/oy4AhgCIjgaNho0CAQaBAoCEAEiDBoKEggKBBICCA8iACIcGhpaGAoHigIECAMYAhILCglwgMDvwLbYuAIYAiIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIKCIAGAIiBhoECgIoACIuGiwaKggCGgQKAhABIhgaFloUCgQqAhABEgoSCAoEEgIIDiIAGAIiBhoECgIoACIqGigaJggCGgQKAhABIgwaChIICgQSAghZIgAiDhoMCgo49uCP1cjr+ucnGkIaQAgBGgQKAhACIhoaGBoWCAUaBAoCEAIiDBoKEggKBBICCGYiACIaGhgaFggFGgQKAhACIgwaChIICgQSAghlIgAaChIICgQSAghmIgAaChIICgQSAghlIgAaFgoIEgYKAhIAIgAKChIICgQSAggBIgAiDgoMCAYgAyoEOgIQAjABGgoSCAoEEgIIAiIAGggSBgoCEgAiABoKEggKBBICCAEiABoMCggSBgoCEgAiABAEGJBOIAoaDAoIEgYKAhIAIgAQBBgAIJBOEglQYWdlVmlld3MSEVdpbmRvd0NsaWVudFdpZHRoEhJXaW5kb3dDbGllbnRIZWlnaHQyEhBNKg5zdWJzdHJhaXQtamF2YUIvCAISK2V4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2NvbXBhcmlzb25CLQgDEilleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19kYXRldGltZUIsCAESKGV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2Jvb2xlYW5CNggEEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw=="} \ No newline at end of file diff --git a/plugins/engine-datafusion/src/test/resources/q7.json b/plugins/engine-datafusion/src/test/resources/q7.json index ad0bd0ae53783..719b5c1c99338 100644 --- a/plugins/engine-datafusion/src/test/resources/q7.json +++ b/plugins/engine-datafusion/src/test/resources/q7.json @@ -1 +1,18 @@ -{"from":0,"size":0,"timeout":"1m","aggregations":{"min(EventDate)":{"min":{"field":"EventDate"}},"max(EventDate)":{"max":{"field":"EventDate"}}},"query_plan_ir":"ChwIARIYL2Z1bmN0aW9uc19kYXRldGltZS55YW1sEhEaDwgBEAEaB21pbjpwdHMgARIRGg8IARACGgdtYXg6cHRzIAEalxESlBEK8RAa7hAKAgoAEuIQIt8QCgIKABKYEDqVEAoFEgMKAWkS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGgoSCAoEEgIIDyIAGgAiHQobCAEgAyoHigIECAMYATABOgoaCBIGCgISACIAIh0KGwgCIAMqB4oCBAgDGAEwAToKGggSBgoCEgAiABgAIJBOEg5taW4oRXZlbnREYXRlKRIObWF4KEV2ZW50RGF0ZSkyEhBNKg5zdWJzdHJhaXQtamF2YUItCAESKWV4dGVuc2lvbjppby5zdWJzdHJhaXQ6ZnVuY3Rpb25zX2RhdGV0aW1l"} \ No newline at end of file +{ + "from": 0, + "size": 0, + "timeout": "1m", + "aggregations": { + "min(EventDate)": { + "min": { + "field": "EventDate" + } + }, + "max(EventDate)": { + "max": { + "field": "EventDate" + } + } + }, + "query_plan_ir": "CiUIAhIhL2Z1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYy55YW1sChwIARIYL2Z1bmN0aW9uc19kYXRldGltZS55YW1sEhEaDwgBEAEaB21pbjpwdHMgARIRGg8IARACGgdtYXg6cHRzIAESEBoOCAIQAxoGY291bnQ6IAIauhEStxEKgREa/hAKAgoAEvIQIu8QCgIKABKYEDqVEAoFEgMKAWkS/w8K/A8KAgoAEu0PCgtBZHZFbmdpbmVJRAoDQWdlCg5Ccm93c2VyQ291bnRyeQoPQnJvd3Nlckxhbmd1YWdlCgRDTElECg9DbGllbnRFdmVudFRpbWUKCENsaWVudElQCg5DbGllbnRUaW1lWm9uZQoLQ29kZVZlcnNpb24KDUNvbm5lY3RUaW1pbmcKDENvb2tpZUVuYWJsZQoMQ291bnRlckNsYXNzCglDb3VudGVySUQKCUROU1RpbWluZwoNRG9udENvdW50SGl0cwoJRXZlbnREYXRlCglFdmVudFRpbWUKB0ZVbmlxSUQKC0ZldGNoVGltaW5nCgpGbGFzaE1ham9yCgpGbGFzaE1pbm9yCgtGbGFzaE1pbm9yMgoHRnJvbVRhZwoJR29vZEV2ZW50CgNISUQKCUhUVFBFcnJvcgoISGFzR0NMSUQKDUhpc3RvcnlMZW5ndGgKCEhpdENvbG9yCgtJUE5ldHdvcmtJRAoGSW5jb21lCglJbnRlcmVzdHMKC0lzQXJ0aWZpY2FsCgpJc0Rvd25sb2FkCgdJc0V2ZW50CgZJc0xpbmsKCElzTW9iaWxlCgtJc05vdEJvdW5jZQoMSXNPbGRDb3VudGVyCgtJc1BhcmFtZXRlcgoJSXNSZWZyZXNoCgpKYXZhRW5hYmxlChBKYXZhc2NyaXB0RW5hYmxlCg5Mb2NhbEV2ZW50VGltZQoLTW9iaWxlUGhvbmUKEE1vYmlsZVBob25lTW9kZWwKCE5ldE1ham9yCghOZXRNaW5vcgoCT1MKCk9wZW5lck5hbWUKDE9wZW5zdGF0QWRJRAoST3BlbnN0YXRDYW1wYWlnbklEChNPcGVuc3RhdFNlcnZpY2VOYW1lChBPcGVuc3RhdFNvdXJjZUlECgtPcmlnaW5hbFVSTAoLUGFnZUNoYXJzZXQKDVBhcmFtQ3VycmVuY3kKD1BhcmFtQ3VycmVuY3lJRAoMUGFyYW1PcmRlcklECgpQYXJhbVByaWNlCgZQYXJhbXMKB1JlZmVyZXIKEVJlZmVyZXJDYXRlZ29yeUlECgtSZWZlcmVySGFzaAoPUmVmZXJlclJlZ2lvbklECghSZWdpb25JRAoIUmVtb3RlSVAKD1Jlc29sdXRpb25EZXB0aAoQUmVzb2x1dGlvbkhlaWdodAoPUmVzb2x1dGlvbldpZHRoChFSZXNwb25zZUVuZFRpbWluZwoTUmVzcG9uc2VTdGFydFRpbWluZwoJUm9ib3RuZXNzCg5TZWFyY2hFbmdpbmVJRAoMU2VhcmNoUGhyYXNlCgpTZW5kVGltaW5nCgNTZXgKE1NpbHZlcmxpZ2h0VmVyc2lvbjEKE1NpbHZlcmxpZ2h0VmVyc2lvbjIKE1NpbHZlcmxpZ2h0VmVyc2lvbjMKE1NpbHZlcmxpZ2h0VmVyc2lvbjQKDFNvY2lhbEFjdGlvbgoNU29jaWFsTmV0d29yawoVU29jaWFsU291cmNlTmV0d29ya0lEChBTb2NpYWxTb3VyY2VQYWdlCgVUaXRsZQoOVHJhZmljU291cmNlSUQKA1VSTAoNVVJMQ2F0ZWdvcnlJRAoHVVJMSGFzaAoLVVJMUmVnaW9uSUQKC1VUTUNhbXBhaWduCgpVVE1Db250ZW50CglVVE1NZWRpdW0KCVVUTVNvdXJjZQoHVVRNVGVybQoJVXNlckFnZW50Cg5Vc2VyQWdlbnRNYWpvcgoOVXNlckFnZW50TWlub3IKBlVzZXJJRAoHV2F0Y2hJRAoSV2luZG93Q2xpZW50SGVpZ2h0ChFXaW5kb3dDbGllbnRXaWR0aAoKV2luZG93TmFtZQoIV2l0aEhhc2gShAUKBBoCEAEKBBoCEAEKBGICEAEKBGICEAEKBCoCEAEKB4oCBAgDGAEKBCoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKB4oCBAgDGAEKB4oCBAgDGAEKBDoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBBoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKB4oCBAgDGAEKBBoCEAEKBGICEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBDoCEAEKBGICEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBCoCEAEKBBoCEAEKBBoCEAEKBGICEAEKBCoCEAEKBBoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBGICEAEKBBoCEAEKBGICEAEKBBoCEAEKBDoCEAEKBCoCEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBGICEAEKBBoCEAEKBBoCEAEKBGICEAEKBDoCEAEKBDoCEAEKBBoCEAEKBBoCEAEKBCoCEAEKBBoCEAEYAToGCgRoaXRzGgoSCAoEEgIIDyIAGgAiHQobCAEgAyoHigIECAMYATABOgoaCBIGCgISACIAIh0KGwgCIAMqB4oCBAgDGAEwAToKGggSBgoCEgAiACIOCgwIAyADKgQ6AhACMAEYACCQThIObWluKEV2ZW50RGF0ZSkSDm1heChFdmVudERhdGUpEhFhZ2dfZm9yX2RvY19jb3VudDISEE0qDnN1YnN0cmFpdC1qYXZhQi0IARIpZXh0ZW5zaW9uOmlvLnN1YnN0cmFpdDpmdW5jdGlvbnNfZGF0ZXRpbWVCNggCEjJleHRlbnNpb246aW8uc3Vic3RyYWl0OmZ1bmN0aW9uc19hZ2dyZWdhdGVfZ2VuZXJpYw==" +} diff --git a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java index 69d7732c71491..b59c3f3ddb70a 100644 --- a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java +++ b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java @@ -249,7 +249,7 @@ static TopDocs mergeTopDocs(Collection results, int topN, int from) { } static void setShardIndex(TopDocs topDocs, int shardIndex) { - assert topDocs.scoreDocs.length == 0 || topDocs.scoreDocs[0].shardIndex == -1 : "shardIndex is already set"; +// assert topDocs.scoreDocs.length == 0 || topDocs.scoreDocs[0].shardIndex == -1 : "shardIndex is already set"; for (ScoreDoc doc : topDocs.scoreDocs) { doc.shardIndex = shardIndex; } diff --git a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java index 6f8b08af5d3be..d63b644ae85a0 100644 --- a/server/src/main/java/org/opensearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/InternalEngine.java @@ -529,7 +529,7 @@ public final boolean assertSearcherIsWarmedUp(String source, SearcherScope scope case "segments_stats": break; default: - assert externalReaderManager.isWarmedUp : "searcher was not warmed up yet for source[" + source + "]"; +// assert externalReaderManager.isWarmedUp : "searcher was not warmed up yet for source[" + source + "]"; } } return true; From f5a7030503f6ed522ef5e0e16fd15baed2389041 Mon Sep 17 00:00:00 2001 From: Abhita Lakkabathini <59249463+abhita@users.noreply.github.com> Date: Thu, 20 Nov 2025 12:00:51 +0530 Subject: [PATCH 099/112] Fix path reference while adding to cache (#20052) * fixing path reference while adding to cache * remove unnecessary logs --- .../jni/src/custom_cache_manager.rs | 15 ++++----------- .../opensearch/datafusion/DatafusionEngine.java | 2 -- .../search/DatafusionReaderManager.java | 1 + 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs index 366dc53481cdc..5e1151a13bd31 100644 --- a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs +++ b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs @@ -59,10 +59,9 @@ impl CustomCacheManager { match self.metadata_cache_put(file_path) { Ok(true) => { any_success = true; - println!("[CACHE INFO] Added file to metadata cache: {}", file_path); } Ok(false) => { - println!("[CACHE INFO] File not applicable for metadata cache: {}", file_path); + println!("[CACHE INFO] File not added for metadata cache: {}", file_path); } Err(e) => { errors.push(format!("Metadata cache: {}", e)); @@ -273,18 +272,12 @@ impl CustomCacheManager { match cache.inner.lock() { Ok(mut cache_guard) => { - let len_before = cache_guard.len(); - let old_metadata = cache_guard.put(object_meta, metadata); - let len_after = cache_guard.len(); + cache_guard.put(object_meta, metadata); - if len_after > len_before { - println!("Successfully cached new metadata for: {} (cache: {} -> {})", file_path, len_before, len_after); - Ok(true) - } else if old_metadata.is_some() { - println!("Successfully updated existing metadata for: {} (cache: {})", file_path, len_after); + if cache_guard.contains_key(object_meta) { Ok(true) } else { - println!("Failed to cache metadata for: {} (cache: {})", file_path, len_after); + println!("Failed to cache metadata for: {}", file_path); Ok(false) } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index eac1062e07485..7c2601d237be3 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -145,8 +145,6 @@ public DatafusionSearcher acquireSearcher(String source, Engine.SearcherScope sc DatafusionSearcherSupplier searcherSupplier = releasable = (DatafusionSearcherSupplier) acquireSearcherSupplier(wrapper, scope); DatafusionSearcher searcher = searcherSupplier.acquireSearcher(source); releasable = null; - logger.info("Memory consumed by Mcache {} and Acache {}",cacheManager.getMemoryConsumed(CacheUtils.CacheType.METADATA), - cacheManager.getTotalMemoryConsumed()); return new DatafusionSearcher( source, diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index 7e0ad16d08f8c..eb1eb0b3f40d5 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -103,6 +103,7 @@ private void processFileChanges(Collection oldFiles, Collection extractFilePaths(Collection files) { String[] fileNames = files.stream() .flatMap(writerFileSet -> writerFileSet.getFiles().stream()) + .map(fileName -> String.format("%s/%s", this.path, fileName)) .toArray(String[]::new); Set paths = new HashSet<>(); paths.addAll(Arrays.asList(fileNames)); From e980a19929203b2dd7e5e5f4c10f8b55645fa166 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Fri, 21 Nov 2025 13:59:58 +0530 Subject: [PATCH 100/112] Don't create catalog snapshot in refresh if no changes in file (#20060) --- .../CompositeIndexingExecutionEngine.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java index 8359484e08fbd..9bb3741e8c542 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/composite/CompositeIndexingExecutionEngine.java @@ -75,6 +75,10 @@ public Any getDataFormat() { return dataFormat; } + public long getNextWriterGeneration() { + return writerGeneration.getAndIncrement(); + } + @Override public List supportedFieldTypes() { throw new UnsupportedOperationException(); @@ -111,6 +115,7 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { try { List dataFormatWriters = dataFormatWriterPool.checkoutAll(); List refreshedSegment = ignore.getExistingSegments(); + List newSegmentList = new ArrayList<>(); // flush to disk for (CompositeDataFormatWriter dataFormatWriter : dataFormatWriters) { CatalogSnapshot.Segment newSegment = new CatalogSnapshot.Segment(0); @@ -120,7 +125,15 @@ public RefreshResult refresh(RefreshInput ignore) throws IOException { newSegment.addSearchableFiles(key.name(), value); }); dataFormatWriter.close(); - refreshedSegment.add(newSegment); + if(!newSegment.getDFGroupedSearchableFiles().isEmpty()) { + newSegmentList.add(newSegment); + } + } + + if(newSegmentList.isEmpty()) { + return null; + } else { + refreshedSegment.addAll(newSegmentList); } // call refresh for delegats From bda4e93e56aa1c9f403dd44975d7793a5c235f67 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Fri, 21 Nov 2025 17:31:41 +0530 Subject: [PATCH 101/112] Consume same writer generation count in merge and write (#20070) Signed-off-by: Dhwanil Patel --- .../engine/ParquetExecutionEngine.java | 2 +- .../merge/ParquetMergeExecutor.java | 4 ++-- .../merge/ParquetMergeStrategy.java | 2 +- .../parquetdataformat/merge/ParquetMerger.java | 2 +- .../merge/RecordBatchMergeStrategy.java | 15 ++++++++------- .../org/opensearch/index/engine/exec/Merger.java | 4 ++-- .../index/engine/exec/WriterFileSet.java | 11 +---------- .../index/engine/exec/merge/MergeHandler.java | 5 +++-- .../index/engine/exec/text/TextEngine.java | 4 ++-- 9 files changed, 21 insertions(+), 28 deletions(-) diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java index 79d380f4f6cd1..705ddebaec64c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/engine/ParquetExecutionEngine.java @@ -73,7 +73,7 @@ public class ParquetExecutionEngine implements IndexingExecutionEngine schema; private final List filesWrittenAlready = new ArrayList<>(); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java index 76e380350a87a..29438ff6a2632 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java @@ -24,8 +24,8 @@ public ParquetMergeExecutor(CompactionStrategy compactionStrategy) { } @Override - public MergeResult merge(Collection fileMetadataList) { - MergeResult result = strategy.mergeParquetFiles(fileMetadataList); + public MergeResult merge(Collection fileMetadataList, long writerGeneration) { + MergeResult result = strategy.mergeParquetFiles(fileMetadataList, writerGeneration); strategy.postMerge(); return result; } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java index 3f9ef27a7bac1..a433c8badee15 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java @@ -21,7 +21,7 @@ public interface ParquetMergeStrategy { /** * Performs the actual Parquet merge. */ - MergeResult mergeParquetFiles(Collection files); + MergeResult mergeParquetFiles(Collection files, long writerGeneration); /** * Optional post-merge hook. diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java index cdb879866d9af..9d95938fe92aa 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java @@ -17,7 +17,7 @@ public abstract class ParquetMerger implements Merger { @Override - public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping) { + public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index a1d7c90964174..79ba5967c9060 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -9,6 +9,7 @@ package com.parquet.parquetdataformat.merge; import com.parquet.parquetdataformat.engine.ParquetDataFormat; +import com.parquet.parquetdataformat.engine.ParquetExecutionEngine; import org.opensearch.index.engine.exec.DataFormat; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.WriterFileSet; @@ -31,10 +32,9 @@ * Implements record-batch-based merging of Parquet files. */ public class RecordBatchMergeStrategy implements ParquetMergeStrategy { - private static final AtomicLong generationCounter = new AtomicLong(); @Override - public MergeResult mergeParquetFiles(Collection files) { + public MergeResult mergeParquetFiles(Collection files, long writerGeneration) { if (files.isEmpty()) { throw new IllegalArgumentException("No files to merge"); @@ -45,9 +45,8 @@ public MergeResult mergeParquetFiles(Collection files) { .collect(Collectors.toList()); String outputDirectory = files.iterator().next().directory(); - long generation = generationCounter.incrementAndGet(); - String mergedFilePath = getMergedFilePath(generation, outputDirectory); - String mergedFileName = getMergedFileName(generation); + String mergedFilePath = getMergedFilePath(writerGeneration, outputDirectory); + String mergedFileName = getMergedFileName(writerGeneration); // Merge files in Rust mergeParquetFilesInRust(filePaths, mergedFilePath); @@ -56,7 +55,7 @@ public MergeResult mergeParquetFiles(Collection files) { Map rowIdMapping = new HashMap<>(); WriterFileSet mergedWriterFileSet = - WriterFileSet.builder().directory(Path.of(outputDirectory)).addFile(mergedFileName).writerGeneration(0).build(); + WriterFileSet.builder().directory(Path.of(outputDirectory)).addFile(mergedFileName).writerGeneration(writerGeneration).build(); Map mergedWriterFileSetMap = Collections.singletonMap( @@ -68,7 +67,9 @@ public MergeResult mergeParquetFiles(Collection files) { } private String getMergedFileName(long generation) { - return "_parquet_file_merged_" + generation + ".parquet"; + // TODO + // For debuging we have added extra "merged" in file name, later we can remove and keep same as writer + return ParquetExecutionEngine.FILE_NAME_PREFIX + "_merged_" + generation + ParquetExecutionEngine.FILE_NAME_EXT; } private String getMergedFilePath(long generation, String outputDirectory) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Merger.java b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java index 14fe7730901b2..7e88d90b72a0e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/Merger.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java @@ -19,7 +19,7 @@ public interface Merger { * @param fileMetadataList List of FileMetadata to merge * @return MergeResult - having RowIdMapping and mergedFileMetadata */ - MergeResult merge(Collection fileMetadataList); + MergeResult merge(Collection fileMetadataList, long writerGeneration); /** * @@ -27,5 +27,5 @@ public interface Merger { * @param rowIdMapping Mapping of old segment + old rowId to new rowId * @return MergeResult - having mergedFileMetadata */ - MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping); + MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java index c9dac6765f62c..a638c26d5034b 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/WriterFileSet.java @@ -88,19 +88,10 @@ public String toString() { '}'; } - /** - * TODO: - * - * - * equals method was introduced as part of merge. - * From merge we dont have generation information hence for equals ignoring check for generation for now. - * We can revisit this later, as today ParquetExecutionEngine stores the WriterFileSet itself, it should hold the - * FileMetadata as merge might be acting at fileMetadata no writerSet. - */ @Override public boolean equals(Object o) { WriterFileSet other = (WriterFileSet) o; - return this.directory.equals(other.directory) && this.files.equals(other.files); + return this.directory.equals(other.directory) && this.files.equals(other.files) && this.getWriterGeneration() == other.getWriterGeneration(); } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index dcb1d9e159f7b..2149d5842b4a6 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -128,13 +128,14 @@ private synchronized void removeMergingSegments(OneMerge oneMerge) { public MergeResult doMerge(OneMerge oneMerge) { + long mergedWriterGeneration = compositeIndexingExecutionEngine.getNextWriterGeneration(); Map mergedWriterFileSet = new HashMap<>(); try(CompositeEngine.ReleasableRef catalogSnapshot = compositeEngine.acquireSnapshot()) { Collection filesToMerge = getFilesToMerge(oneMerge, compositeDataFormat.getPrimaryDataFormat(), catalogSnapshot.getRef()); // Merging primary data format - MergeResult primaryMergeResult = dataFormatMergerMap.get(compositeDataFormat.getPrimaryDataFormat()).merge(filesToMerge); + MergeResult primaryMergeResult = dataFormatMergerMap.get(compositeDataFormat.getPrimaryDataFormat()).merge(filesToMerge, mergedWriterGeneration); mergedWriterFileSet.put(compositeDataFormat.getPrimaryDataFormat(), primaryMergeResult.getMergedWriterFileSetForDataformat(compositeDataFormat.getPrimaryDataFormat())); // Merging other format as per the old segment + row id -> new row id mapping. compositeIndexingExecutionEngine.getDelegates().stream() @@ -142,7 +143,7 @@ public MergeResult doMerge(OneMerge oneMerge) { .forEach(indexingExecutionEngine -> { DataFormat dataFormat = indexingExecutionEngine.getDataFormat(); Collection files = getFilesToMerge(oneMerge, dataFormat, catalogSnapshot.getRef()); - MergeResult secondaryMergeResult = dataFormatMergerMap.get(dataFormat).merge(files, primaryMergeResult.getRowIdMapping()); + MergeResult secondaryMergeResult = dataFormatMergerMap.get(dataFormat).merge(files, primaryMergeResult.getRowIdMapping(), mergedWriterGeneration); mergedWriterFileSet.put(dataFormat, secondaryMergeResult.getMergedWriterFileSetForDataformat(dataFormat)); }); return new MergeResult(primaryMergeResult.getRowIdMapping(), mergedWriterFileSet); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 43a35dd53bc69..1770044512525 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -127,7 +127,7 @@ public void close() throws Exception { public static class TextMerger implements Merger { @Override - public MergeResult merge(Collection fileMetadataList) { + public MergeResult merge(Collection fileMetadataList, long writerGeneration) { // Here we will implementation of logic for merging files and reassign the row-ids // and creating the mapping of the old segment+id to new row id. // @@ -136,7 +136,7 @@ public MergeResult merge(Collection fileMetadataList) { } @Override - public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping) { + public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { // Here we will have implementation of the merge logic where we will have the mapping of the old row id to new id // and merging the files. // From 863ac1d608c123c567aa307e0103aa023f41bf84 Mon Sep 17 00:00:00 2001 From: rayshrey <121871912+rayshrey@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:41:49 +0530 Subject: [PATCH 102/112] CatalogSnapshotManager refactoring and integration of postDelete hooks with Searcher (#20063) * CatalogSnapshot Manager + postDelete hooks * Fix tests * Minor fixes to post delete hooks * Fix IndexFileDeleterTests * Add IndexFileDeleter tests in E2E * Empty commit to re-run E2E tests --- .github/workflows/datafusion-e2e-test.yml | 4 + .../datafusion/DatafusionEngine.java | 5 + .../datafusion/search/DatafusionReader.java | 15 +- .../search/DatafusionReaderManager.java | 18 +- .../DataFusionReaderManagerTests.java | 41 +++-- .../CatalogSnapshotAwareRefreshListener.java | 3 +- .../index/engine/FileDeletionListener.java | 16 ++ .../index/engine/SearcherOperations.java | 4 + .../index/engine/exec/commit/Committer.java | 2 - .../exec/commit/LuceneCommitEngine.java | 9 - .../engine/exec/coord/CatalogSnapshot.java | 12 +- .../exec/coord/CatalogSnapshotManager.java | 75 +++++---- .../engine/exec/coord/CompositeEngine.java | 159 +++++++++--------- .../engine/exec/coord/IndexFileDeleter.java | 11 +- .../exec/coord/IndexFileDeleterTests.java | 6 +- 15 files changed, 226 insertions(+), 154 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/FileDeletionListener.java diff --git a/.github/workflows/datafusion-e2e-test.yml b/.github/workflows/datafusion-e2e-test.yml index a95eeadf93bec..d2120097113d2 100644 --- a/.github/workflows/datafusion-e2e-test.yml +++ b/.github/workflows/datafusion-e2e-test.yml @@ -68,6 +68,10 @@ jobs: working-directory: OpenSearch run: ./gradlew :plugins:engine-datafusion:test --tests "org.opensearch.datafusion.DataFusionReaderManagerTests" + - name: Run IndexFileDeleter Tests + working-directory: OpenSearch + run: ./gradlew :server:test --tests "org.opensearch.index.engine.exec.coord.IndexFileDeleterTests" + - name: Run OpenSearch with DataFusion Plugin working-directory: OpenSearch run: | diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 7c2601d237be3..031d95f86d889 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -166,6 +166,11 @@ public CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherSco return datafusionReaderManager; } + @Override + public FileDeletionListener getFileDeletionListener(Engine.SearcherScope scope) { + return datafusionReaderManager; + } + @Override public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scope) { return false; diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index 2302abc093d6b..d51e9250e78aa 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -10,6 +10,8 @@ import org.opensearch.datafusion.jni.handle.ReaderHandle; import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.io.Closeable; import java.io.IOException; @@ -36,14 +38,19 @@ public class DatafusionReader implements Closeable { * The reference count. */ private AtomicInteger refCount = new AtomicInteger(1); + /** + * The catalog snapshot reference. + */ + private CompositeEngine.ReleasableRef catalogSnapshotRef; /** * Constructor * @param directoryPath The directory path * @param files The file metadata collection */ - public DatafusionReader(String directoryPath, Collection files) { + public DatafusionReader(String directoryPath, CompositeEngine.ReleasableRef catalogSnapshotRef, Collection files) { this.directoryPath = directoryPath; + this.catalogSnapshotRef = catalogSnapshotRef; this.files = files; String[] fileNames = new String[0]; if(files != null) { @@ -91,5 +98,11 @@ public void decRef() throws IOException { @Override public void close() throws IOException { readerHandle.close(); + try { + if (catalogSnapshotRef != null) + catalogSnapshotRef.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java index eb1eb0b3f40d5..114e228125841 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReaderManager.java @@ -15,9 +15,11 @@ import org.apache.lucene.search.ReferenceManager; import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; import org.opensearch.index.engine.EngineReaderManager; +import org.opensearch.index.engine.FileDeletionListener; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.io.IOException; import java.net.URI; @@ -25,7 +27,7 @@ import java.util.Collection; import java.util.List; -public class DatafusionReaderManager implements EngineReaderManager, CatalogSnapshotAwareRefreshListener { +public class DatafusionReaderManager implements EngineReaderManager, CatalogSnapshotAwareRefreshListener, FileDeletionListener { private DatafusionReader current; private String path; private String dataFormat; @@ -36,7 +38,7 @@ public class DatafusionReaderManager implements EngineReaderManager files, String dataFormat) throws IOException { WriterFileSet writerFileSet = new WriterFileSet(Path.of(URI.create("file:///" + path)), 1); files.forEach(fileMetadata -> writerFileSet.add(fileMetadata.file())); - this.current = new DatafusionReader(path, List.of(writerFileSet));; + this.current = new DatafusionReader(path, null, List.of(writerFileSet)); this.path = path; this.dataFormat = dataFormat; } @@ -70,17 +72,17 @@ public void beforeRefresh() throws IOException { } @Override - public void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException { + public void afterRefresh(boolean didRefresh, CompositeEngine.ReleasableRef catalogSnapshot) throws IOException { if (didRefresh && catalogSnapshot != null) { DatafusionReader old = this.current; - Collection newFiles = catalogSnapshot.getSearchableFiles(dataFormat); + Collection newFiles = catalogSnapshot.getRef().getSearchableFiles(dataFormat); if(old !=null) { release(old); processFileChanges(old.files, newFiles); } else { processFileChanges(List.of(), newFiles); } - this.current = new DatafusionReader(this.path, catalogSnapshot.getSearchableFiles(dataFormat)); + this.current = new DatafusionReader(this.path, catalogSnapshot, catalogSnapshot.getRef().getSearchableFiles(dataFormat)); } } @@ -109,4 +111,10 @@ private Set extractFilePaths(Collection files) { paths.addAll(Arrays.asList(fileNames)); return paths; } + + @Override + public void onFileDeleted(Collection files) throws IOException { + // TODO - Hook cache eviction with deletion here + System.out.println("onFileDeleted call from DatafusionReader Manager: " + files); + } } diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index ec7a1e743fabd..775933ad2eb44 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -22,7 +22,6 @@ import org.opensearch.common.settings.ClusterSettings; import org.opensearch.cluster.service.ClusterService; -import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.core.index.Index; @@ -31,6 +30,7 @@ import org.opensearch.env.Environment; import org.opensearch.index.engine.exec.*; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; import org.opensearch.index.engine.exec.coord.IndexFileDeleter; import org.opensearch.index.shard.ShardPath; import org.opensearch.search.aggregations.SearchResultsCollector; @@ -99,7 +99,8 @@ public void testInitialReaderCreation() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -127,7 +128,8 @@ public void testMultipleSearchersShareSameReader() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -156,7 +158,8 @@ public void testReaderSurvivesPartialSearcherClose() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); @@ -186,7 +189,8 @@ public void testRefreshCreatesNewReader() throws IOException { writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); segment1.addSearchableFiles(getMockDataFormat().name(), writerFileSet1); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment1), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment1), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher1 = engine.acquireSearcher("test1"); DatafusionReader reader1 = searcher1.getReader(); @@ -200,7 +204,8 @@ public void testRefreshCreatesNewReader() throws IOException { writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); - readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(2, List.of(segment2), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher2 = engine.acquireSearcher("test2"); DatafusionReader reader2 = searcher2.getReader(); @@ -231,7 +236,8 @@ public void testDecRefAfterCloseThrowsException() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_2.parquet"); segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher = engine.acquireSearcher("test"); DatafusionReader reader = searcher.getReader(); @@ -266,7 +272,8 @@ public void testReaderClosesAfterSearchRelease() throws IOException { writerFileSet.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); segment.addSearchableFiles(getMockDataFormat().name(), writerFileSet); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment), new HashMap<>(), noOpFileDeleterSupplier))); // DatafusionReader readerR1 = readerManager.acquire(); DatafusionSearcher datafusionSearcherS1 = engine.acquireSearcher("Search"); @@ -288,7 +295,8 @@ public void testReaderClosesAfterSearchRelease() throws IOException { writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); - readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(2, List.of(segment2), new HashMap<>(), noOpFileDeleterSupplier))); // now check if new Reader is created with F2, F3 // DatafusionReader readerR2 = readerManager.acquire(); @@ -331,7 +339,8 @@ public void testSearch() throws IOException { writerFileSet1.add(shardPath.getDataPath() + "/parquet_file_generation_0.parquet"); segment1.addSearchableFiles(getMockDataFormat().name(), writerFileSet1); - readerManager.afterRefresh(true, new CatalogSnapshot(1, List.of(segment1), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(1, List.of(segment1), new HashMap<>(), noOpFileDeleterSupplier))); DatafusionSearcher searcher1 = engine.acquireSearcher("search"); DatafusionReader reader1 = searcher1.getReader(); @@ -360,7 +369,8 @@ public void testSearch() throws IOException { writerFileSet2.add(shardPath.getDataPath() + "/parquet_file_generation_1.parquet"); segment2.addSearchableFiles(getMockDataFormat().name(), writerFileSet2); - readerManager.afterRefresh(true, new CatalogSnapshot(2, List.of(segment2), null, noOpFileDeleterSupplier)); + readerManager.afterRefresh(true, + getCatalogSnapshotRef(new CatalogSnapshot(2, List.of(segment2), new HashMap<>(), noOpFileDeleterSupplier))); expectedResults = new HashMap<>(); expectedResults.put("min", 3L); @@ -502,6 +512,15 @@ public synchronized void addFileReferences(CatalogSnapshot snapshot) {} @Override public synchronized void removeFileReferences(CatalogSnapshot snapshot) {} } + + private CompositeEngine.ReleasableRef getCatalogSnapshotRef(CatalogSnapshot catalogSnapshot) { + return new CompositeEngine.ReleasableRef<>(catalogSnapshot) { + @Override + public void close() { + if (catalogSnapshot != null) catalogSnapshot.decRef(); + } + }; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java index 11c0ce293eae9..b5bd4e445c3a9 100644 --- a/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java +++ b/server/src/main/java/org/opensearch/index/engine/CatalogSnapshotAwareRefreshListener.java @@ -9,6 +9,7 @@ package org.opensearch.index.engine; import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.io.IOException; @@ -23,5 +24,5 @@ public interface CatalogSnapshotAwareRefreshListener { * @param didRefresh whether refresh actually occurred * @param catalogSnapshot the current catalog snapshot with file information */ - void afterRefresh(boolean didRefresh, CatalogSnapshot catalogSnapshot) throws IOException; + void afterRefresh(boolean didRefresh, CompositeEngine.ReleasableRef catalogSnapshot) throws IOException; } diff --git a/server/src/main/java/org/opensearch/index/engine/FileDeletionListener.java b/server/src/main/java/org/opensearch/index/engine/FileDeletionListener.java new file mode 100644 index 0000000000000..f0db7cdd2d614 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/FileDeletionListener.java @@ -0,0 +1,16 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine; + +import java.io.IOException; +import java.util.Collection; + +public interface FileDeletionListener { + void onFileDeleted(Collection files) throws IOException; +} diff --git a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java index 32b2d882401fb..1dd6690f50081 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java +++ b/server/src/main/java/org/opensearch/index/engine/SearcherOperations.java @@ -37,4 +37,8 @@ default CatalogSnapshotAwareRefreshListener getRefreshListener(Engine.SearcherSc // default is no-op, TODO : revisit this return null; } + + default FileDeletionListener getFileDeletionListener(Engine.SearcherScope searcherScope) { + return null; + } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java index d29cc0e605a45..5af277964d54e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/Committer.java @@ -24,7 +24,5 @@ public interface Committer extends Closeable { Map getLastCommittedData() throws IOException; - Optional readLastCommittedCatalogSnapshot() throws IOException; - SafeCommitInfo getSafeCommitInfo(); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java index 71ff9cd9bf541..ec2422fd6195f 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/commit/LuceneCommitEngine.java @@ -84,15 +84,6 @@ public Map getLastCommittedData() throws IOException { return store.readLastCommittedSegmentsInfo().getUserData(); } - @Override - public Optional readLastCommittedCatalogSnapshot() throws IOException { - Map lastCommittedData = getLastCommittedData(); - if (lastCommittedData.containsKey(CATALOG_SNAPSHOT_KEY)) { - return Optional.of(CatalogSnapshot.deserializeFromString(lastCommittedData.get(CATALOG_SNAPSHOT_KEY))); - } - return Optional.empty(); - } - @Override public SafeCommitInfo getSafeCommitInfo() { return this.combinedDeletionPolicy.getSafeCommitInfo(); diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java index 1ca74d6e16d21..7e59bce0daa74 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshot.java @@ -79,7 +79,7 @@ public CatalogSnapshot(StreamInput in) throws IOException { })); } - public CatalogSnapshot remapPaths(Path newShardDataPath) { + public void remapPaths(Path newShardDataPath) { List remappedSegments = new ArrayList<>(); for (Segment segment : segmentList) { Segment remappedSegment = new Segment(segment.getGeneration()); @@ -91,7 +91,11 @@ public CatalogSnapshot remapPaths(Path newShardDataPath) { } remappedSegments.add(remappedSegment); } - return new CatalogSnapshot(this.id, remappedSegments, this.catalogSnapshotMap, this.indexFileDeleterSupplier); + dfGroupedSearchableFiles.clear(); + this.segmentList = remappedSegments; + segmentList.forEach(segment -> segment.getDFGroupedSearchableFiles().forEach((dataFormat, writerFiles) -> { + dfGroupedSearchableFiles.computeIfAbsent(dataFormat, k -> new ArrayList<>()).add(writerFiles); + })); } @Override @@ -154,7 +158,9 @@ public Set getDataFormats() { // used only when catalog snapshot is created from last commited segment and hence the object is not initialized with the deleter and map public void setIndexFileDeleterSupplier(Supplier supplier) { - this.indexFileDeleterSupplier = supplier; + if (this.indexFileDeleterSupplier == null) { + this.indexFileDeleterSupplier = supplier; + } } public void setCatalogSnapshotMap(Map catalogSnapshotMap) { diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java index 8cd572cc5c875..098e513a5862c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java @@ -15,62 +15,66 @@ import org.opensearch.index.engine.exec.commit.Committer; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.OneMerge; +import org.opensearch.index.shard.ShardPath; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.HashSet; +import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; +import static org.opensearch.index.engine.exec.coord.CatalogSnapshot.CATALOG_SNAPSHOT_KEY; + public class CatalogSnapshotManager { - private CatalogSnapshot catalogSnapshot; + private CatalogSnapshot latestCatalogSnapshot; private final Committer compositeEngineCommitter; private final Map catalogSnapshotMap; private final AtomicReference indexFileDeleter; - public CatalogSnapshotManager(Committer compositeEngineCommitter, CatalogSnapshot lastCommitedSnapshot, AtomicReference indexFileDeleter) { + public CatalogSnapshotManager(CompositeEngine compositeEngine, Committer compositeEngineCommitter, ShardPath shardPath) throws IOException { catalogSnapshotMap = new HashMap<>(); this.compositeEngineCommitter = compositeEngineCommitter; - this.indexFileDeleter = indexFileDeleter; - if(lastCommitedSnapshot!=null) { - this.catalogSnapshot = lastCommitedSnapshot; - this.catalogSnapshot.setCatalogSnapshotMap(catalogSnapshotMap); + indexFileDeleter = new AtomicReference<>(); + getLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { + latestCatalogSnapshot = lastCommittedCatalogSnapshot; + catalogSnapshotMap.put(latestCatalogSnapshot.getId(), latestCatalogSnapshot); + latestCatalogSnapshot.remapPaths(shardPath.getDataPath()); + }); + indexFileDeleter.set(new IndexFileDeleter(compositeEngine, latestCatalogSnapshot, shardPath)); + if(latestCatalogSnapshot != null) { + latestCatalogSnapshot.setIndexFileDeleterSupplier(indexFileDeleter::get); + latestCatalogSnapshot.setCatalogSnapshotMap(catalogSnapshotMap); } else { - this.catalogSnapshot = new CatalogSnapshot(1, new ArrayList<>(), catalogSnapshotMap, indexFileDeleter::get); + latestCatalogSnapshot = new CatalogSnapshot(1, new ArrayList<>(), catalogSnapshotMap, indexFileDeleter::get); + catalogSnapshotMap.put(latestCatalogSnapshot.getId(), latestCatalogSnapshot); } - catalogSnapshotMap.put(catalogSnapshot.getId(), catalogSnapshot); - - } - - public CatalogSnapshot getCatalogSnapshotFromId(long catalogSnapshotId) { - return catalogSnapshotMap.get(catalogSnapshotId); } public CompositeEngine.ReleasableRef acquireSnapshot() { - final CatalogSnapshot snapshot = catalogSnapshot; - snapshot.incRef(); // this should be package-private - return new CompositeEngine.ReleasableRef(snapshot) { + final CatalogSnapshot snapshot = latestCatalogSnapshot; + if (snapshot != null) snapshot.incRef(); + return new CompositeEngine.ReleasableRef<>(snapshot) { @Override - public void close() throws Exception { - snapshot.decRef(); // this should be package-private + public void close() { + if (snapshot != null) snapshot.decRef(); } }; } - public synchronized CatalogSnapshot applyRefreshResult(RefreshResult refreshResult) { + public synchronized void applyRefreshResult(RefreshResult refreshResult) { CatalogSnapshot newCatSnap; - newCatSnap = new CatalogSnapshot(catalogSnapshot.getId()+1, refreshResult.getRefreshedSegments(), catalogSnapshotMap, indexFileDeleter::get); + newCatSnap = new CatalogSnapshot(latestCatalogSnapshot.getId()+1, refreshResult.getRefreshedSegments(), catalogSnapshotMap, indexFileDeleter::get); commitCatalogSnapshot(newCatSnap); - - return newCatSnap; } - public synchronized CatalogSnapshot applyMergeResults(MergeResult mergeResult, OneMerge oneMerge) { + public synchronized void applyMergeResults(MergeResult mergeResult, OneMerge oneMerge) { - List segmentList = catalogSnapshot.getSegments(); + List segmentList = latestCatalogSnapshot.getSegments(); CatalogSnapshot.Segment segmentToAdd = getSegment(mergeResult.getMergedWriterFileSet()); @@ -105,21 +109,19 @@ public synchronized CatalogSnapshot applyMergeResults(MergeResult mergeResult, O if (!inserted) { segmentList.add(0, segmentToAdd); } - CatalogSnapshot newCatSnap = new CatalogSnapshot(catalogSnapshot.getId()+1, segmentList, catalogSnapshotMap, indexFileDeleter::get); + CatalogSnapshot newCatSnap = new CatalogSnapshot(latestCatalogSnapshot.getId()+1, segmentList, catalogSnapshotMap, indexFileDeleter::get); // Commit new catalog snapshot commitCatalogSnapshot(newCatSnap); - - return newCatSnap; } private synchronized void commitCatalogSnapshot(CatalogSnapshot newCatSnap) { catalogSnapshotMap.put(newCatSnap.getId(), newCatSnap); - if (catalogSnapshot != null) { - catalogSnapshot.decRef(); + if (latestCatalogSnapshot != null) { + latestCatalogSnapshot.decRef(); } - catalogSnapshot = newCatSnap; - compositeEngineCommitter.addLuceneIndexes(catalogSnapshot); + latestCatalogSnapshot = newCatSnap; + compositeEngineCommitter.addLuceneIndexes(latestCatalogSnapshot); } private CatalogSnapshot.Segment getSegment(Map writerFileSetMap) { @@ -130,4 +132,13 @@ private CatalogSnapshot.Segment getSegment(Map writer } return segment; } + + private Optional getLastCommittedCatalogSnapshot() throws IOException { + Map lastCommittedData = compositeEngineCommitter.getLastCommittedData(); + if (lastCommittedData.containsKey(CATALOG_SNAPSHOT_KEY)) { + return Optional.of(CatalogSnapshot.deserializeFromString(lastCommittedData.get(CATALOG_SNAPSHOT_KEY))); + } + return Optional.empty(); + } + } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 32cc30a1b079a..8bf55006a098e 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -23,27 +23,10 @@ import org.opensearch.core.index.AppendOnlyIndexOperationRetryException; import org.opensearch.core.index.shard.ShardId; import org.opensearch.index.IndexSettings; -import org.opensearch.index.engine.CatalogSnapshotAwareRefreshListener; -import org.opensearch.index.engine.Engine; -import org.opensearch.index.engine.EngineConfig; -import org.opensearch.index.engine.EngineException; -import org.opensearch.index.engine.FlushFailedEngineException; -import org.opensearch.index.engine.IndexThrottle; -import org.opensearch.index.engine.IndexVersionValue; -import org.opensearch.index.engine.IndexingStrategy; -import org.opensearch.index.engine.IndexingStrategyPlanner; -import org.opensearch.index.engine.LifecycleAware; -import org.opensearch.index.engine.LiveVersionMap; -import org.opensearch.index.engine.SafeCommitInfo; -import org.opensearch.index.engine.SearchExecEngine; -import org.opensearch.index.engine.Segment; -import org.opensearch.index.engine.VersionValue; -import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.*; import org.opensearch.index.engine.exec.RefreshInput; import org.opensearch.index.engine.exec.RefreshResult; import org.opensearch.index.engine.exec.WriteResult; -import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.bridge.CheckpointState; import org.opensearch.index.engine.exec.bridge.Indexer; import org.opensearch.index.engine.exec.bridge.IndexingThrottler; @@ -78,7 +61,6 @@ import java.io.Closeable; import java.io.IOException; -import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -87,12 +69,10 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -122,7 +102,7 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec throw new RuntimeException(e); } }; - private static final BiConsumer + private static final BiConsumer, CatalogSnapshotAwareRefreshListener> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER = (catalogSnapshot, catalogSnapshotAwareRefreshListener) -> { try { catalogSnapshotAwareRefreshListener.afterRefresh(true, catalogSnapshot); @@ -141,6 +121,7 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec private final AtomicBoolean isClosed = new AtomicBoolean(false); private final List refreshListeners = new ArrayList<>(); private final List catalogSnapshotAwareRefreshListeners = new ArrayList<>(); + private final Map> fileDeletionListeners = new HashMap<>(); private final Map>> readEngines = new HashMap<>(); private final MergeScheduler mergeScheduler; @@ -186,8 +167,8 @@ public class CompositeEngine implements LifecycleAware, Closeable, Indexer, Chec private final AtomicBoolean trackTranslogLocation = new AtomicBoolean(false); private final KeyedLock noOpKeyedLock = new KeyedLock<>(); private final IndexingStrategyPlanner indexingStrategyPlanner; - private final AtomicReference indexFileDeleter; private final CatalogSnapshotManager catalogSnapshotManager; + private ReleasableRef lastCommitedCatalogSnapshotRef; public CompositeEngine( EngineConfig engineConfig, @@ -203,7 +184,6 @@ public CompositeEngine( this.store = engineConfig.getStore(); Committer committerRef = null; TranslogManager translogManagerRef = null; - indexFileDeleter = new AtomicReference<>(null); try { this.engineConfig = engineConfig; this.store.incRef(); @@ -251,15 +231,13 @@ public void onFailure(String reason, Exception ex) { committerRef = new LuceneCommitEngine(store, translogDeletionPolicy, translogManager::getLastSyncedGlobalCheckpoint); this.compositeEngineCommitter = committerRef; final AtomicLong lastCommittedWriterGeneration = new AtomicLong(-1); - AtomicReference lastCommitedSnapshot = new AtomicReference<>(); - this.compositeEngineCommitter.readLastCommittedCatalogSnapshot().ifPresent(lastCommittedCatalogSnapshot -> { - lastCommitedSnapshot.set(lastCommittedCatalogSnapshot); - // Since the catalog snapshot is created from last commit, deleter and map are not available, so we explicitly set them - lastCommitedSnapshot.get().setIndexFileDeleterSupplier(indexFileDeleter::get); -// TODO: Enable again -// lastCommitedSnapshot.get().remapPaths(shardPath.getDataPath()); - lastCommittedWriterGeneration.set(lastCommittedCatalogSnapshot.getLastWriterGeneration()); - }); + Map lastCommittedData = this.compositeEngineCommitter.getLastCommittedData(); + if (lastCommittedData.containsKey(LAST_COMPOSITE_WRITER_GEN_KEY)) { + lastCommittedWriterGeneration.set(Long.parseLong(lastCommittedData.get(CatalogSnapshot.LAST_COMPOSITE_WRITER_GEN_KEY))); + } + + System.out.println("While initialising Composite Engine - lst commit generation : " + lastCommittedWriterGeneration.get()); + // How to bring the Dataformat here? Currently, this means only Text and LuceneFormat can be used this.engine = new CompositeIndexingExecutionEngine( mapperService, @@ -267,11 +245,8 @@ public void onFailure(String reason, Exception ex) { shardPath, lastCommittedWriterGeneration.incrementAndGet() ); - //Initialize IndexFileDeleter before loadWriterFiles to ensure stale files are cleaned up before loading - indexFileDeleter.set(new IndexFileDeleter(this.engine, lastCommitedSnapshot.get(), shardPath)); - System.out.println("IndexFile Deleter after initialising : " + indexFileDeleter); - - this.catalogSnapshotManager = new CatalogSnapshotManager(committerRef, lastCommitedSnapshot.get(), indexFileDeleter); + //Initialize CatalogSnapshotManager before loadWriterFiles to ensure stale files are cleaned up before loading + this.catalogSnapshotManager = new CatalogSnapshotManager(this, committerRef, shardPath); this.engine.loadWriterFiles(); this.maxSeqNoOfUpdatesOrDeletes = @@ -320,9 +295,14 @@ public void onFailure(String reason, Exception ex) { if (newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL) != null) { catalogSnapshotAwareRefreshListeners.add(newSearchEngine.getRefreshListener(Engine.SearcherScope.INTERNAL)); } + + if (newSearchEngine.getFileDeletionListener(Engine.SearcherScope.INTERNAL) != null) { + fileDeletionListeners.computeIfAbsent(dataFormat.getName(), k -> new ArrayList<>()) + .add(newSearchEngine.getFileDeletionListener(Engine.SearcherScope.INTERNAL)); + } } } - catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(lastCommitedSnapshot.get(), + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(acquireSnapshot(), refreshListener )); success = true; @@ -676,7 +656,7 @@ public void deactivateThrottling() { } public synchronized void refresh(String source) throws EngineException { - try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = catalogSnapshotManager.acquireSnapshot()){ + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = catalogSnapshotManager.acquireSnapshot()) { refreshListeners.forEach(PRE_REFRESH_LISTENER_CONSUMER); RefreshInput refreshInput = new RefreshInput(); refreshInput.setExistingSegments(catalogSnapshotReleasableRef.getRef().getSegments()); @@ -685,10 +665,9 @@ public synchronized void refresh(String source) throws EngineException { return; } - CatalogSnapshot newCatalogSnapshot = catalogSnapshotManager.applyRefreshResult(refreshResult); - System.out.println("CATALOG SNAPSHOT: " + newCatalogSnapshot); + catalogSnapshotManager.applyRefreshResult(refreshResult); - catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(newCatalogSnapshot, + catalogSnapshotAwareRefreshListeners.forEach(refreshListener -> POST_REFRESH_CATALOG_SNAPSHOT_AWARE_LISTENER_CONSUMER.accept(acquireSnapshot(), refreshListener )); refreshListeners.forEach(POST_REFRESH_LISTENER_CONSUMER); @@ -702,8 +681,7 @@ public synchronized void refresh(String source) throws EngineException { } public synchronized void applyMergeChanges(MergeResult mergeResult, OneMerge oneMerge) { - CatalogSnapshot newCatalogSnapshot = this.catalogSnapshotManager.applyMergeResults(mergeResult, oneMerge); - System.out.println("CATALOG SNAPSHOT: " + newCatalogSnapshot); + catalogSnapshotManager.applyMergeResults(mergeResult, oneMerge); } public void triggerPossibleMerges() { @@ -722,6 +700,20 @@ public ReleasableRef acquireSnapshot() { return this.catalogSnapshotManager.acquireSnapshot(); } + // Notifies composite execution engine to delete dataformat specific files + public void notifyDelete(Map> dfFilesToDelete) throws IOException { + // notify engine to delete all files + engine.deleteFiles(dfFilesToDelete); + // trigger postDelete hooks for fileDeletionListeners + for (String dataFormat : dfFilesToDelete.keySet()) { + if (fileDeletionListeners.get(dataFormat) == null) + continue; + for (FileDeletionListener fileDeletionListener : fileDeletionListeners.get(dataFormat)) { + fileDeletionListener.onFileDeleted(dfFilesToDelete.get(dataFormat)); + } + } + } + @ExperimentalApi public static abstract class ReleasableRef implements AutoCloseable { @@ -814,45 +806,36 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { logger.trace("acquired flush lock immediately"); } try { - // TODO - implement flush conditions - boolean shouldFlush = true; - if (shouldFlush) { + if (shouldFlush()) { // TODO - translogManager.ensureCanFlush(); - try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = catalogSnapshotManager.acquireSnapshot()) { + try { translogManager.rollTranslogGeneration(); logger.trace("starting commit for flush; commitTranslog=true"); - final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshotReleasableRef.getRef(); - final Optional previousCatalogSnapshot = compositeEngineCommitter.readLastCommittedCatalogSnapshot(); - long previousCatalogSnapshotId = previousCatalogSnapshot.map(CatalogSnapshot::getId).orElse(-1L); - if (catalogSnapshotToFlush != null) { - System.out.println("FLUSH called, current snapshot to commit : " + catalogSnapshotToFlush.getId() + ", previous commited snapshot : " + previousCatalogSnapshotId); - // Increment refCount of catalogSnapshotToFlush to prevent deletion of files that will be in the latest commit - catalogSnapshotToFlush.incRef(); - final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); - final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); - final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); - compositeEngineCommitter.commit( - () -> { - final Map commitData = new HashMap<>(7); - commitData.put(Translog.TRANSLOG_UUID_KEY, translogManager.getTranslogUUID()); - commitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(localCheckpoint)); - commitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(localCheckpointTracker.getMaxSeqNo())); - commitData.put(MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp.get())); - commitData.put(HISTORY_UUID_KEY, historyUUID); - commitData.put(CATALOG_SNAPSHOT_KEY, serializedCatalogSnapshot); - commitData.put(LAST_COMPOSITE_WRITER_GEN_KEY, Long.toString(lastWriterGeneration)); - return commitData.entrySet().iterator(); - }, catalogSnapshotToFlush - ); - // Once commit is successful, decRef the CatalogSnapshot of the older commit - if (previousCatalogSnapshotId != -1) { - CatalogSnapshot prevCatSnap = catalogSnapshotManager.getCatalogSnapshotFromId(previousCatalogSnapshotId); - if (prevCatSnap != null) - prevCatSnap.decRef(); - } - logger.trace("finished commit for flush"); - translogManager.trimUnreferencedReaders(); - } + CompositeEngine.ReleasableRef catalogSnapshotToFlushRef = catalogSnapshotManager.acquireSnapshot(); + final CatalogSnapshot catalogSnapshotToFlush = catalogSnapshotToFlushRef.getRef(); + System.out.println("FLUSH called, current snapshot to commit : " + catalogSnapshotToFlush.getId() + + ", previous commited snapshot : " + ((lastCommitedCatalogSnapshotRef != null) ? lastCommitedCatalogSnapshotRef.getRef().getId() : -1)); + final String serializedCatalogSnapshot = catalogSnapshotToFlush.serializeToString(); + final long lastWriterGeneration = catalogSnapshotToFlush.getLastWriterGeneration(); + final long localCheckpoint = localCheckpointTracker.getProcessedCheckpoint(); + compositeEngineCommitter.commit( + () -> { + final Map commitData = new HashMap<>(7); + commitData.put(Translog.TRANSLOG_UUID_KEY, translogManager.getTranslogUUID()); + commitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(localCheckpoint)); + commitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(localCheckpointTracker.getMaxSeqNo())); + commitData.put(MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp.get())); + commitData.put(HISTORY_UUID_KEY, historyUUID); + commitData.put(CATALOG_SNAPSHOT_KEY, serializedCatalogSnapshot); + commitData.put(LAST_COMPOSITE_WRITER_GEN_KEY, Long.toString(lastWriterGeneration)); + return commitData.entrySet().iterator(); + }, catalogSnapshotToFlush + ); + logger.trace("finished commit for flush"); + if (lastCommitedCatalogSnapshotRef != null && lastCommitedCatalogSnapshotRef.getRef() != null) + lastCommitedCatalogSnapshotRef.close(); + lastCommitedCatalogSnapshotRef = catalogSnapshotToFlushRef; + translogManager.trimUnreferencedReaders(); } catch (AlreadyClosedException e) { // TODO - failOnTragicEvent(e); throw e; @@ -860,7 +843,6 @@ public void flush(boolean force, boolean waitIfOngoing) throws EngineException { throw new FlushFailedEngineException(shardId, e); } } - } catch (FlushFailedEngineException ex) { // TODO - maybeFailEngine("flush", ex); throw ex; @@ -934,6 +916,19 @@ public void flushAndClose() throws IOException { awaitPendingClose(); } + private boolean shouldFlush() { + long currentSnapshotIdToFlush = -1, lastCommitedSnapshotId = -1; + try (ReleasableRef catalogSnapshotToFlushRef = catalogSnapshotManager.acquireSnapshot()) { + if (catalogSnapshotToFlushRef != null && catalogSnapshotToFlushRef.getRef() != null) + currentSnapshotIdToFlush = catalogSnapshotToFlushRef.getRef().getId(); + if (lastCommitedCatalogSnapshotRef != null && lastCommitedCatalogSnapshotRef.getRef() != null) + lastCommitedSnapshotId = lastCommitedCatalogSnapshotRef.getRef().getId(); + } catch (Exception e) { + throw new RuntimeException(e); + } + return (currentSnapshotIdToFlush != -1) && (currentSnapshotIdToFlush != lastCommitedSnapshotId); + } + @Override public void close() throws IOException { if (isClosed.get() == false) { // don't acquire the write lock if we are already closed diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java index 34422d56f3e44..c99c5093511b0 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/IndexFileDeleter.java @@ -27,10 +27,10 @@ public class IndexFileDeleter { private final Map> fileRefCounts = new ConcurrentHashMap<>(); - private final CompositeIndexingExecutionEngine engine; + private final CompositeEngine compositeEngine; - public IndexFileDeleter(CompositeIndexingExecutionEngine engine, CatalogSnapshot initialCatalogSnapshot, ShardPath shardPath) throws IOException { - this.engine = engine; + public IndexFileDeleter(CompositeEngine compositeEngine, CatalogSnapshot initialCatalogSnapshot, ShardPath shardPath) throws IOException { + this.compositeEngine = compositeEngine; if (initialCatalogSnapshot != null) { addFileReferences(initialCatalogSnapshot); deleteUnreferencedFiles(shardPath); @@ -74,7 +74,6 @@ public synchronized void removeFileReferences(CatalogSnapshot snapshot) { System.out.println("Files to delete : " + dfFilesToDelete); deleteUnreferencedFiles(dfFilesToDelete); } - System.out.println("IndexFileDeleter after removeFileReferences: " + this.toString()); } private Map> segregateFilesByFormat(CatalogSnapshot snapshot) { @@ -116,7 +115,9 @@ private void deleteUnreferencedFiles(ShardPath shardPath) throws IOException { private void deleteUnreferencedFiles(Map> dfFilesToDelete) { try { - engine.deleteFiles(dfFilesToDelete); + if (dfFilesToDelete.isEmpty()) + return; + compositeEngine.notifyDelete(dfFilesToDelete); } catch (Exception e) { System.err.println("Failed to delete unreferenced files: " + dfFilesToDelete + ", error: " + e.getMessage()); } diff --git a/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java index a39a4f8ad6d54..3d9ebbc600964 100644 --- a/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java +++ b/server/src/test/java/org/opensearch/index/engine/exec/coord/IndexFileDeleterTests.java @@ -38,7 +38,7 @@ public class IndexFileDeleterTests extends OpenSearchTestCase { private IndexFileDeleter indexFileDeleter; - private CompositeIndexingExecutionEngine mockEngine; + private CompositeEngine mockEngine; private ShardPath shardPath; private CatalogSnapshot catalogSnapshot; private Map catalogSnapshotMap; @@ -54,7 +54,7 @@ public void setUp() throws Exception { Path shardDir = tempDir.resolve("test-uuid").resolve("0"); shardPath = new ShardPath(false, shardDir, shardDir, shardId); - mockEngine = mock(CompositeIndexingExecutionEngine.class); + mockEngine = mock(CompositeEngine.class); catalogSnapshotId = new AtomicLong(0); lastCommittedSnapshotId = new AtomicLong(0); catalogSnapshotMap = new HashMap<>(); @@ -66,7 +66,7 @@ public void setUp() throws Exception { Map> filesToDelete = invocation.getArgument(0); filesToDelete.values().forEach(deletedFiles::addAll); return null; - }).when(mockEngine).deleteFiles(any()); + }).when(mockEngine).notifyDelete(any()); catalogSnapshot = null; indexFileDeleter = new IndexFileDeleter(mockEngine, null, shardPath); From 20fe98795fe23402c620ee9614ca09b78b2735fa Mon Sep 17 00:00:00 2001 From: Vinay Krishna Pudyodu Date: Fri, 21 Nov 2025 19:36:52 -0800 Subject: [PATCH 103/112] Handle LocalDateTime for min and max aggregator (#20074) --- .../aggregations/metrics/MaxAggregator.java | 7 +++++-- .../aggregations/metrics/MinAggregator.java | 7 +++++-- .../metrics/NumericMetricsAggregator.java | 16 ++++++++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java index 45235c58f42d4..8ad9aa834cafb 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MaxAggregator.java @@ -62,9 +62,8 @@ import org.opensearch.search.streaming.StreamingCostMetrics; import java.io.IOException; -import java.util.ArrayList; +import java.time.LocalDateTime; import java.util.Arrays; -import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; @@ -294,6 +293,10 @@ public StreamingCostMetrics getStreamingCostMetrics() { @Override public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); + if (values[row].getClass().equals(LocalDateTime.class)) { + LocalDateTime value = (LocalDateTime) values[row]; + return new InternalMax(name, convertLocalDateTimeToEpochMillis(value), formatter, metadata()); + } return new InternalMax(name, ((Number) values[row]).doubleValue(), formatter, metadata()); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java index 0abc141419335..5bbb821a5d034 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/MinAggregator.java @@ -62,8 +62,7 @@ import org.opensearch.search.streaming.StreamingCostMetrics; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +import java.time.LocalDateTime; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; @@ -280,6 +279,10 @@ public StarTreeBucketCollector getStarTreeBucketCollector( @Override public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { Object[] values = shardResult.get(name); + if (values[row].getClass().equals(LocalDateTime.class)) { + LocalDateTime value = (LocalDateTime) values[row]; + return new InternalMin(name, convertLocalDateTimeToEpochMillis(value), format, metadata()); + } return new InternalMin(name, ((Number) values[row]).doubleValue(), format, metadata()); } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/NumericMetricsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/NumericMetricsAggregator.java index f90e5a092385f..3adbd00c8bcd1 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/NumericMetricsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/NumericMetricsAggregator.java @@ -37,6 +37,9 @@ import org.opensearch.search.sort.SortOrder; import java.io.IOException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.Map; /** @@ -64,6 +67,19 @@ protected SingleValue(String name, SearchContext context, Aggregator parent, Map public abstract double metric(long owningBucketOrd); + /** + * Converts a LocalDateTime value to epoch milliseconds for use in aggregation results. + * The LocalDateTime is treated as UTC to preserve the exact date-time values + * without any timezone conversion. + * + * @param value the LocalDateTime value to convert + * @return the epoch milliseconds representation of the LocalDateTime treated as UTC + */ + protected static double convertLocalDateTimeToEpochMillis(LocalDateTime value) { + Instant instant = value.atZone(ZoneOffset.UTC).toInstant(); + return instant.toEpochMilli(); + } + @Override public BucketComparator bucketComparator(String key, SortOrder order) { if (key != null && false == "value".equals(key)) { From cf5fad4ad3dc9ef01b65b96d49a99e869d685360 Mon Sep 17 00:00:00 2001 From: Sandesh Kumar Date: Sun, 23 Nov 2025 20:25:11 -0800 Subject: [PATCH 104/112] partial aggs changes for distinct count (#20008) Signed-off-by: Sandesh Kumar --- plugins/engine-datafusion/jni/src/lib.rs | 32 +++++- .../jni/src/partial_agg_optimizer.rs | 97 +++++++++++++++++++ .../aggregations/metrics/AvgAggregator.java | 4 - .../metrics/CardinalityAggregator.java | 10 +- .../metrics/DataFusionHLLWrapper.java | 69 +++++++++++++ .../metrics/DataFusionRunLenIterator.java | 39 ++++++++ 6 files changed, 243 insertions(+), 8 deletions(-) create mode 100644 plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs create mode 100644 server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionHLLWrapper.java create mode 100644 server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionRunLenIterator.java diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index c3bd1555990de..d032895654665 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -49,6 +49,7 @@ mod listing_table; mod cache; mod custom_cache_manager; mod memory; +mod partial_agg_optimizer; use crate::custom_cache_manager::CustomCacheManager; use crate::row_id_optimizer::ProjectRowIdOptimizer; @@ -57,8 +58,21 @@ use crate::util::{ set_object_result_ok, }; use datafusion::execution::memory_pool::{GreedyMemoryPool, TrackConsumersPool}; -use datafusion_substrait::logical_plan::consumer::from_substrait_plan; -use datafusion_substrait::substrait::proto::Plan; +use crate::partial_agg_optimizer::PartialAggregationOptimizer; + +use datafusion::catalog::TableProvider; +use datafusion_expr::registry::FunctionRegistry; +use datafusion_substrait::extensions::Extensions; +use datafusion_substrait::logical_plan::consumer::{ + from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, + SubstraitConsumer, +}; +use datafusion_substrait::substrait::proto::{ + Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel, +}; +use futures::TryStreamExt; +use datafusion_substrait::substrait::proto::extensions::simple_extension_declaration::MappingType; + use object_store::ObjectMeta; use prost::Message; use tokio::runtime::Runtime; @@ -373,6 +387,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu .with_runtime_env(Arc::from(runtime_env)) .with_default_features() .with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) + .with_physical_optimizer_rule(Arc::new(PartialAggregationOptimizer)) .build(); let ctx = SessionContext::new_with_state(state); @@ -424,7 +439,18 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu }; runtime.tokio_runtime.block_on(async { - let logical_plan = match from_substrait_plan(&ctx.state(), &substrait_plan).await { + let mut modified_plan = substrait_plan.clone(); + for ext in modified_plan.extensions.iter_mut() { + if let Some(mapping_type) = &mut ext.mapping_type { + if let MappingType::ExtensionFunction(func) = mapping_type { + if func.name == "approx_count_distinct:any" { + func.name = "approx_distinct:any".to_string(); + } + } + } + } + + let logical_plan = match from_substrait_plan(&ctx.state(), &modified_plan).await { Ok(plan) => { // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); let duration = start.elapsed(); diff --git a/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs b/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs new file mode 100644 index 0000000000000..925485ba991d0 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs @@ -0,0 +1,97 @@ +use datafusion::physical_optimizer::PhysicalOptimizerRule; +use datafusion::physical_plan::{ExecutionPlan, displayable}; +use datafusion::config::ConfigOptions; +use datafusion::common::Result; +use datafusion::physical_plan::aggregates::{AggregateExec, AggregateMode}; +use datafusion::physical_plan::projection::ProjectionExec; +use datafusion::physical_expr::{PhysicalExpr, expressions::Column}; +use datafusion::physical_plan::aggregates::PhysicalGroupBy; +use datafusion::functions_aggregate::approx_distinct::approx_distinct_udaf; +use datafusion::physical_expr::aggregate::AggregateExprBuilder; +use std::sync::Arc; + +#[derive(Debug)] +pub struct PartialAggregationOptimizer; + +impl PhysicalOptimizerRule for PartialAggregationOptimizer { + fn optimize( + &self, + plan: Arc, + _config: &ConfigOptions, + ) -> Result> { + self.optimize_plan(plan) + } + + fn name(&self) -> &str { + "partial_aggregation_optimizer" + } + + fn schema_check(&self) -> bool { + // Partial mode can cause schema checks to fail + false + } +} + +impl PartialAggregationOptimizer { + pub fn optimize_plan(&self, plan: Arc) -> Result> { + println!("[DEBUG] Before: {}", displayable(plan.as_ref()).indent(true)); + let result = self.optimize_plan_with_alias(plan, None)?; + println!("[DEBUG] After: {}", displayable(result.as_ref()).indent(true)); + Ok(result) + } + + fn optimize_plan_with_alias(&self, plan: Arc, parent_alias: Option) -> Result> { + // Recursively optimize children first + let optimized_children: Result> = plan.children() + .into_iter() + .map(|child| self.optimize_plan_with_alias(Arc::clone(child), parent_alias.clone())) + .collect(); + let optimized_children = optimized_children?; + + // Handle AggregateExec: convert to Partial mode only for avg/approx_distinct + if let Some(agg) = plan.as_any().downcast_ref::() { + // println!("[DEBUG] Found AggregateExec, mode: {:?}", agg.mode()); + // println!("[DEBUG] Aggregate output schema: {:?}", agg.schema().fields().iter().map(|f| f.name()).collect::>()); + // println!("[DEBUG] Aggregate expressions: {:?}", agg.aggr_expr().iter().map(|e| e.name()).collect::>()); + + let needs_partial = agg.aggr_expr().iter().any(|e| { + let name = e.name().to_lowercase(); + name.starts_with("approx_distinct(") + }); + + if needs_partial && !matches!(agg.mode(), &AggregateMode::Partial) { + let new_agg = AggregateExec::try_new( + AggregateMode::Partial, + agg.group_expr().clone(), + agg.aggr_expr().to_vec(), + agg.filter_expr().to_vec(), + optimized_children[0].clone(), + optimized_children[0].schema(), + )?; + return Ok(Arc::new(new_agg)); + } + return plan.with_new_children(optimized_children); + } + + // Use original expression's aliases to make the final aliases + if let Some(proj) = plan.as_any().downcast_ref::() { + let new_input = optimized_children[0].clone(); + let input_schema = new_input.schema(); + + let new_exprs: Vec<_> = proj.expr().iter().map(|orig_expr| { + if let Some(orig_col) = orig_expr.expr.as_any().downcast_ref::() { + let idx = orig_col.index(); + (Arc::new(Column::new(input_schema.field(idx).name(), idx)) as Arc, orig_expr.alias.clone()) + } else { + (orig_expr.expr.clone(), orig_expr.alias.clone()) + } + }).collect(); + + return Ok(Arc::new(ProjectionExec::try_new(new_exprs, new_input)?)); + } + + // For all other nodes, just update with optimized children + // println!("[DEBUG] Returning plan with new children: {}", plan.name()); + plan.with_new_children(optimized_children) + } +} diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java index ef404476fbcdc..0c90485d8c0a9 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/AvgAggregator.java @@ -49,7 +49,6 @@ import org.opensearch.search.DocValueFormat; import org.opensearch.search.aggregations.Aggregator; import org.opensearch.search.aggregations.InternalAggregation; -import org.opensearch.search.aggregations.InternalAggregations; import org.opensearch.search.aggregations.LeafBucketCollector; import org.opensearch.search.aggregations.LeafBucketCollectorBase; import org.opensearch.search.aggregations.ShardResultConvertor; @@ -61,9 +60,6 @@ import org.opensearch.search.startree.StarTreeQueryHelper; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Map; import static org.opensearch.search.startree.StarTreeQueryHelper.getStarTreeFilteredValues; diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/CardinalityAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/CardinalityAggregator.java index 0cb319b853bce..a93da64b8a1bd 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/CardinalityAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/CardinalityAggregator.java @@ -68,6 +68,7 @@ import org.opensearch.search.aggregations.Aggregator; import org.opensearch.search.aggregations.InternalAggregation; import org.opensearch.search.aggregations.LeafBucketCollector; +import org.opensearch.search.aggregations.ShardResultConvertor; import org.opensearch.search.aggregations.support.ValuesSource; import org.opensearch.search.aggregations.support.ValuesSourceConfig; import org.opensearch.search.internal.SearchContext; @@ -84,7 +85,7 @@ * * @opensearch.internal */ -public class CardinalityAggregator extends NumericMetricsAggregator.SingleValue { +public class CardinalityAggregator extends NumericMetricsAggregator.SingleValue implements ShardResultConvertor { private static final Logger logger = LogManager.getLogger(CardinalityAggregator.class); @@ -761,4 +762,11 @@ public long nextValue() throws IOException { } } } + + @Override + public InternalAggregation convertRow(Map shardResult, int row, SearchContext searchContext) { + Object[] hlls = shardResult.get(name); + HyperLogLogPlusPlus sketch = DataFusionHLLWrapper.getHyperLogLogPlusPlus((byte[]) hlls[row]); + return new InternalCardinality(name, sketch, null); + } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionHLLWrapper.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionHLLWrapper.java new file mode 100644 index 0000000000000..4c18b3340b1a6 --- /dev/null +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionHLLWrapper.java @@ -0,0 +1,69 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search.aggregations.metrics; + +import org.opensearch.common.util.BigArrays; + +/** + * A simple wrapper class that implements the abstract methods from AbstractHyperLogLogPlusPlus which + * OpenSearch needs to perform a merge. It holds our partial cardinality aggregation hll sketch. + */ +public class DataFusionHLLWrapper extends AbstractHyperLogLogPlusPlus { + private final byte[] sketchBytes; + + public DataFusionHLLWrapper(int precision, byte[] sketchBytes) { + super(precision); + int m = 1 << precision; + if (sketchBytes.length != m) { + throw new IllegalArgumentException( + "Byte array length " + sketchBytes.length + + " does not match precision " + m + ); + } + this.sketchBytes = sketchBytes; + } + + /** + * Tell OpenSearch this sketch is in HLL mode (not LinearCounting). + */ + @Override + protected boolean getAlgorithm(long bucketOrd) { + return HYPERLOGLOG; + } + + /** + * Return our custom iterator that reads from the Rust byte array. + */ + @Override + protected AbstractHyperLogLog.RunLenIterator getHyperLogLog(long bucketOrd) { + return new DataFusionRunLenIterator(this.sketchBytes); + } + + public static HyperLogLogPlusPlus getHyperLogLogPlusPlus(byte[] hllSketchBytes) { + HyperLogLogPlusPlus sketch = new HyperLogLogPlusPlus( + HyperLogLogPlusPlus.DEFAULT_PRECISION, // setting up same precision in rust + BigArrays.NON_RECYCLING_INSTANCE, + 1 + ); + + // 2. Create our custom wrapper using the bytes from Rust + DataFusionHLLWrapper rustSketchWrapper = new DataFusionHLLWrapper(HyperLogLogPlusPlus.DEFAULT_PRECISION, hllSketchBytes); + + // 3. Use the HLL 'merge' method to merge bucket 0 from our wrapper into bucket 0 of the real sketch. + sketch.merge(0, rustSketchWrapper, 0); + return sketch; + } + + // --- Unused abstract methods --- + @Override public long maxOrd() { return 1; } + @Override public long cardinality(long bucketOrd) { throw new UnsupportedOperationException(); } + @Override protected AbstractLinearCounting.HashesIterator getLinearCounting(long bucketOrd) { throw new UnsupportedOperationException(); } + @Override public void collect(long bucket, long hash) { throw new UnsupportedOperationException(); } + @Override public void close() {} +} diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionRunLenIterator.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionRunLenIterator.java new file mode 100644 index 0000000000000..5ece0f429d87f --- /dev/null +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/DataFusionRunLenIterator.java @@ -0,0 +1,39 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.search.aggregations.metrics; + +/** + * A simple iterator that implements the AbstractHyperLogLog.RunLenIterator interface + * and simply iterates over the raw byte array from DataFusion. + */ +public class DataFusionRunLenIterator implements AbstractHyperLogLog.RunLenIterator { + private final byte[] sketchBytes; + private final int m; + private int pos = 0; + + DataFusionRunLenIterator(byte[] sketchBytes) { + this.sketchBytes = sketchBytes; + this.m = sketchBytes.length; + } + + @Override + public boolean next() { + if (pos < m) { + pos++; + return true; + } + return false; + } + + @Override + public byte value() { + // `next()` moves pos, so `value()` reads the byte at `pos-1` + return sketchBytes[pos - 1]; + } +} From 09569efe17a50e9b37f101bbc932a358aa094d90 Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Sun, 23 Nov 2025 22:00:23 -0800 Subject: [PATCH 105/112] update e2e workflow to use sql plugin's ppl integ tests. (#20079) These tests run 42 or 43 queries right now and match results for correctness. all queries flagged as supported are expected to succeed for this check to pass Signed-off-by: Marc Handalian --- .github/workflows/datafusion-e2e-test.yml | 123 +--------------------- 1 file changed, 3 insertions(+), 120 deletions(-) diff --git a/.github/workflows/datafusion-e2e-test.yml b/.github/workflows/datafusion-e2e-test.yml index d2120097113d2..9bd19f5ba0699 100644 --- a/.github/workflows/datafusion-e2e-test.yml +++ b/.github/workflows/datafusion-e2e-test.yml @@ -83,123 +83,6 @@ jobs: # Wait for OpenSearch to start timeout 300 bash -c 'until curl -s http://localhost:9200; do sleep 5; done' - - name: Run E2E Tests - run: | - # Create index - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X PUT 'http://localhost:9200/index-7' \ - -H 'Content-Type: application/json' \ - -d '{ - "settings": { - "number_of_shards": 1, - "number_of_replicas": 0, - "refresh_interval": -1 - }, - "mappings": { - "properties": { - "id": {"type": "keyword"}, - "name": {"type": "keyword"}, - "age": {"type": "integer"}, - "salary": {"type": "long"}, - "score": {"type": "double"}, - "active": {"type": "boolean"}, - "created_date": {"type": "date"} - } - } - }') - if [ "$HTTP_CODE" != "200" ]; then - echo "Failed to create index. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Index documents - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_bulk' \ - -H 'Content-Type: application/json' \ - -d '{"index":{"_index":"index-7"}} - {"id":"1","name":"Alice","age":30,"salary":75000,"score":95.5,"active":true,"created_date":"2024-01-15"} - {"index":{"_index":"index-7"}} - {"id":"2","name":"Bob","age":25,"salary":60000,"score":88.3,"active":true,"created_date":"2024-02-20"} - {"index":{"_index":"index-7"}} - {"id":"3","name":"Charlie","age":35,"salary":90000,"score":92.7,"active":false,"created_date":"2024-03-10"} - {"index":{"_index":"index-7"}} - {"id":"4","name":"Diana","age":28,"salary":70000,"score":89.1,"active":true,"created_date":"2024-04-05"} - {"index":{"_index":"index-7"}} - {"id":"5","name":"Bob","age":30,"salary":55000,"score":81.1,"active":true,"created_date":"2024-04-05"} - {"index":{"_index":"index-7"}} - {"id":"6","name":"Diana","age":35,"salary":65000,"score":71.1,"active":true,"created_date":"2024-02-05"} - ') - if [ "$HTTP_CODE" != "200" ]; then - echo "Failed to index documents. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Refresh index - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'localhost:9200/index-7/_refresh') - if [ "$HTTP_CODE" != "200" ]; then - echo "Failed to refresh index. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 1: stats with min, max, avg - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats count(), min(age) as min, max(age) as max, avg(age) as avg"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 1 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 2: count by name with sort - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats count() as c by name | sort c"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 2 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 3: count and sum by name with sort - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats count(), sum(age) as c by name | sort c"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 3 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 4: where clause with stats - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | where name = \"Bob\" | stats sum(age)"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 4 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 5: sum by name sorted by sum - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats sum(age) as s by name | sort s"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 5 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 6: sum by name sorted by name - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats sum(age) as s by name | sort name"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 6 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - # Query 7: count by name - HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST 'http://localhost:9200/_plugins/_ppl' \ - -H 'Content-Type: application/json' \ - -d '{"query": "source=index-7 | stats count() as c by name"}') - if [ "$HTTP_CODE" != "200" ]; then - echo "Query 7 failed. HTTP status: $HTTP_CODE" - exit 1 - fi - - echo "All E2E tests passed successfully!" + - name: Run SQL CalcitePPLClickBenchIT + working-directory: opensearch-sql + run: ./gradlew :integ-test:integTest --tests "org.opensearch.sql.calcite.clickbench.CalcitePPLClickBenchIT" -Dtests.method="testDataFusion" -Dtests.cluster=localhost:9200 -Dtests.rest.cluster=localhost:9200 -DignorePrometheus=true -Dtests.clustername=opensearch -Dtests.output=true From 6d744bf8d242ac5fe5db796c0c3689257667896f Mon Sep 17 00:00:00 2001 From: Marc Handalian Date: Mon, 24 Nov 2025 10:43:56 -0800 Subject: [PATCH 106/112] disabling row ID optimizer (#20086) Signed-off-by: Marc Handalian --- plugins/engine-datafusion/jni/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index d032895654665..840d8ca08d69c 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -386,7 +386,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQu .with_config(config) .with_runtime_env(Arc::from(runtime_env)) .with_default_features() - .with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) + // .with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) .with_physical_optimizer_rule(Arc::new(PartialAggregationOptimizer)) .build(); From c3a8415c1678f3117e1bd4148af2c225534ae8d0 Mon Sep 17 00:00:00 2001 From: Bharathwaj G Date: Wed, 26 Nov 2025 01:16:42 +0530 Subject: [PATCH 107/112] [Feature/Datafusion] Changes for tokio io/cpu runtime + search flow async changes (#20071) * Changes for tokio io/cpu runtime + search flow async changes Signed-off-by: bharath-techie * minor fixes and todos Signed-off-by: bharath-techie * Addressing comment to move to ActionListener Signed-off-by: bharath-techie * addressing comments Signed-off-by: bharath-techie * fix to sort numeric aggs Signed-off-by: bharath-techie --------- Signed-off-by: bharath-techie --- plugins/engine-datafusion/.cargo/config.toml | 2 + plugins/engine-datafusion/Cargo.toml | 12 +- .../engine-datafusion/jni/.cargo/config.toml | 2 + plugins/engine-datafusion/jni/Cargo.toml | 14 +- .../engine-datafusion/jni/src/cache_jni.rs | 453 ++++++ .../jni/src/cross_rt_stream.rs | 266 ++++ .../jni/src/custom_cache_manager.rs | 7 +- plugins/engine-datafusion/jni/src/executor.rs | 312 ++++ plugins/engine-datafusion/jni/src/io.rs | 65 + plugins/engine-datafusion/jni/src/lib.rs | 1262 +++++------------ .../jni/src/listing_table.rs | 2 +- .../jni/src/partial_agg_optimizer.rs | 4 +- .../jni/src/query_executor.rs | 366 +++++ .../jni/src/runtime_manager.rs | 161 +++ plugins/engine-datafusion/jni/src/util.rs | 105 +- .../datafusion/DatafusionEngine.java | 112 +- .../org/opensearch/datafusion/ErrorUtil.java | 2 +- .../datafusion/RecordBatchStream.java | 53 +- .../datafusion/core/DataFusionRuntimeEnv.java | 7 +- .../datafusion/jni/NativeBridge.java | 14 +- .../datafusion/search/DatafusionSearcher.java | 26 +- .../datafusion/search/cache/CacheManager.java | 1 - .../search/cache/CacheSettings.java | 2 +- .../DataFusionReaderManagerTests.java | 73 +- .../action/search/SearchPhaseController.java | 6 +- .../action/search/TransportSearchAction.java | 2 +- .../index/engine/EngineSearcher.java | 5 + .../index/engine/SearchExecEngine.java | 4 + .../org/opensearch/search/SearchService.java | 233 ++- .../bucket/terms/NumericTermsAggregator.java | 1 + .../SearchEngineResultConversionUtils.java | 2 +- 31 files changed, 2481 insertions(+), 1095 deletions(-) create mode 100644 plugins/engine-datafusion/.cargo/config.toml create mode 100644 plugins/engine-datafusion/jni/.cargo/config.toml create mode 100644 plugins/engine-datafusion/jni/src/cache_jni.rs create mode 100644 plugins/engine-datafusion/jni/src/cross_rt_stream.rs create mode 100644 plugins/engine-datafusion/jni/src/executor.rs create mode 100644 plugins/engine-datafusion/jni/src/io.rs create mode 100644 plugins/engine-datafusion/jni/src/query_executor.rs create mode 100644 plugins/engine-datafusion/jni/src/runtime_manager.rs diff --git a/plugins/engine-datafusion/.cargo/config.toml b/plugins/engine-datafusion/.cargo/config.toml new file mode 100644 index 0000000000000..00b0f674f4037 --- /dev/null +++ b/plugins/engine-datafusion/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +rustflags = ["--cfg", "tokio_unstable", "-C", "force-frame-pointers=yes", "-C", "symbol-mangling-version=v0"] \ No newline at end of file diff --git a/plugins/engine-datafusion/Cargo.toml b/plugins/engine-datafusion/Cargo.toml index 23bdc7e5f8ad6..c2015752579b7 100644 --- a/plugins/engine-datafusion/Cargo.toml +++ b/plugins/engine-datafusion/Cargo.toml @@ -30,6 +30,7 @@ prost = "0.13" tokio = { version = "1.0", features = ["full"] } futures = "0.3" #tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } +tokio-metrics = "0.4" # Serialization serde = { version = "1.0", features = ["derive"] } @@ -63,14 +64,23 @@ regex = "1.11.2" #[build-dependencies] #cbindgen = "0.27" +once_cell = "1.21.3" +tokio-stream = "0.1.17" +parking_lot = "0.12.5" +tracing = "0.1.41" [profile.release] lto = true codegen-units = 1 panic = "abort" +incremental = true # Enable incremental compilation +debug = "line-tables-only" +strip = false [profile.dev] opt-level = 1 # Some optimization for reasonable performance lto = false # Disable LTO for faster builds -codegen-units = 16 # More parallel compilation +codegen-units = 1 # More parallel compilation incremental = true # Enable incremental compilation +debug = "full" +strip = false diff --git a/plugins/engine-datafusion/jni/.cargo/config.toml b/plugins/engine-datafusion/jni/.cargo/config.toml new file mode 100644 index 0000000000000..00b0f674f4037 --- /dev/null +++ b/plugins/engine-datafusion/jni/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +rustflags = ["--cfg", "tokio_unstable", "-C", "force-frame-pointers=yes", "-C", "symbol-mangling-version=v0"] \ No newline at end of file diff --git a/plugins/engine-datafusion/jni/Cargo.toml b/plugins/engine-datafusion/jni/Cargo.toml index c52f8c4e61b5d..ce62c628a5013 100644 --- a/plugins/engine-datafusion/jni/Cargo.toml +++ b/plugins/engine-datafusion/jni/Cargo.toml @@ -34,6 +34,7 @@ prost = { workspace = true } tokio = { workspace = true } futures = { workspace = true } #tokio = { version = "1.0", features = ["rt", "rt-multi-thread", "macros"] } +tokio-metrics = { workspace = true } # Serialization serde = { workspace = true } @@ -48,6 +49,9 @@ log ={ workspace = true } # Parquet support parquet = { workspace = true } +# System info +num_cpus = "1.16" + # Object store for file access object_store = { workspace = true } @@ -64,19 +68,21 @@ async-trait = { workspace = true } itertools = { workspace = true } rstest = { workspace = true } regex = { workspace = true } -parking_lot = "0.12.5" + +once_cell = { workspace = true } +tokio-stream = { workspace = true } +parking_lot = { workspace = true } +tracing = { workspace = true } [build-dependencies] cbindgen = "0.27" -[build] -rustflags = ["-C", "force-frame-pointers=yes","symbol-mangling-version=v0"] [profile.release] lto = true codegen-units = 1 panic = "abort" incremental = true -debug = "full" +debug = "line-tables-only" #TODO : remove this strip = false [profile.dev] diff --git a/plugins/engine-datafusion/jni/src/cache_jni.rs b/plugins/engine-datafusion/jni/src/cache_jni.rs new file mode 100644 index 0000000000000..a3db9920fbdee --- /dev/null +++ b/plugins/engine-datafusion/jni/src/cache_jni.rs @@ -0,0 +1,453 @@ +use jni::objects::{JClass, JObject, JObjectArray, JString}; +use jni::sys::{jlong, jstring}; +use jni::{JNIEnv}; +use crate::custom_cache_manager::CustomCacheManager; +use crate::util::{parse_string_arr}; +use crate::cache; +use crate::DataFusionRuntime; +use datafusion::execution::cache::cache_unit::DefaultFilesMetadataCache; +use std::sync::Arc; + +/// Create a CustomCacheManager instance +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCustomCacheManager( + mut env: JNIEnv, + _class: JClass, +) -> jlong { + let manager = CustomCacheManager::new(); + Box::into_raw(Box::new(manager)) as jlong +} + +/// Destroy a CustomCacheManager instance +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_destroyCustomCacheManager( + mut env: JNIEnv, + _class: JClass, + cache_manager_ptr: jlong, +) { + if cache_manager_ptr != 0 { + let _ = unsafe { Box::from_raw(cache_manager_ptr as *mut CustomCacheManager) }; + println!("[CACHE INFO] CustomCacheManager destroyed"); + } +} + +/// Generic cache creation method that handles all cache types +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCache( + mut env: JNIEnv, + _class: JClass, + cache_manager_ptr: jlong, + cache_type: JString, + size_limit: jlong, + eviction_type: JString, +) -> jlong { + if cache_manager_ptr == 0 { + let _ = env.throw_new("java/lang/DataFusionException", "CustomCacheManager pointer is null"); + return 0; + } + + let cache_type_str: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache_type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + }; + + let eviction_type_str: String = match env.get_string(&eviction_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert eviction_type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + }; + + println!("[CACHE INFO] Creating cache: type={}, size_limit={}, eviction_type={}", + cache_type_str, size_limit, eviction_type_str); + + let manager = unsafe { &mut *(cache_manager_ptr as *mut CustomCacheManager) }; + + match cache_type_str.as_str() { + cache::CACHE_TYPE_METADATA => { + let inner_cache = DefaultFilesMetadataCache::new(size_limit as usize); + let metadata_cache = Arc::new(cache::MutexFileMetadataCache::new(inner_cache)); + manager.set_file_metadata_cache(metadata_cache); + println!("[CACHE INFO] Successfully created {} cache in CustomCacheManager", cache_type_str); + } + cache::CACHE_TYPE_STATS => { + let msg = "Stats cache not yet implemented"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", msg); + return 0; + } + _ => { + let msg = format!("Invalid cache type: {}", cache_type_str); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("java/lang/DataFusionException", &msg); + return 0; + } + } + + 0 +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerAddFiles( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + files: JObjectArray, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + let file_paths: Vec = match parse_string_arr(&mut env, files) { + Ok(paths) => paths, + Err(e) => { + let msg = format!("Failed to parse file paths array: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + match manager.add_files(&file_paths) { + Ok(results) => { + let mut failed_files = Vec::new(); + for (file_path, success) in results { + if !success { + failed_files.push(file_path); + } + } + + if !failed_files.is_empty() { + let msg = format!("Failed to add {} files to cache: {:?}", failed_files.len(), failed_files); + eprintln!("[CACHE ERROR] {}", msg); + } + } + Err(e) => { + let msg = format!("Failed to add files to cache: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerRemoveFiles( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + files: JObjectArray, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let file_paths: Vec = match parse_string_arr(&mut env, files) { + Ok(paths) => paths, + Err(e) => { + let msg = format!("Failed to parse file paths array: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match manager.remove_files(&file_paths) { + Ok(results) => { + let mut failed_files = Vec::new(); + for (file_path, removed) in results { + if !removed { + failed_files.push(file_path); + } + } + + if !failed_files.is_empty() { + let msg = format!("Failed to remove {} files from cache: {:?}", failed_files.len(), failed_files); + eprintln!("[CACHE ERROR] {}", msg); + } + } + Err(e) => { + let msg = format!("Failed to remove files from cache: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClear( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + manager.clear_all(); + println!("[CACHE INFO] Successfully cleared all caches"); + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerUpdateSizeLimitForCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, + new_size_limit: jlong, +) -> bool { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return false; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.update_metadata_cache_limit(new_size_limit as usize); + true + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + false + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + false + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetMemoryConsumedForCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, +) -> jlong { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return 0; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return 0; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.get_total_memory_consumed() as jlong + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + 0 + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + 0 + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetTotalMemoryConsumed( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, +) -> jlong { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return 0; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + manager.get_total_memory_consumed() as jlong + } + None => { + 0 + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClearByCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, +) { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match manager.clear_cache_type(&cache_type) { + Ok(_) => { + println!("[CACHE INFO] Cache Type: {} cleared", cache_type); + } + Err(e) => { + eprintln!("[CACHE ERROR] {}", e); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &e); + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + } + } +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetItemByCacheType( + mut env: JNIEnv, + _class: JClass, + runtime_env_ptr: jlong, + cache_type: JString, + file_path: JString, +) -> bool { + if runtime_env_ptr == 0 { + let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); + return false; + } + + let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; + + let cache_type: String = match env.get_string(&cache_type) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert cache type string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + let file_path: String = match env.get_string(&file_path) { + Ok(s) => s.into(), + Err(e) => { + let msg = format!("Failed to convert file path string: {}", e); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + return false; + } + }; + + match &runtime_env.custom_cache_manager { + Some(manager) => { + match cache_type.as_str() { + cache::CACHE_TYPE_METADATA => { + manager.contains_file(&file_path) + } + _ => { + let msg = format!("Unknown cache type: {}", cache_type); + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); + false + } + } + } + None => { + let msg = "No custom cache manager available"; + eprintln!("[CACHE ERROR] {}", msg); + let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); + false + } + } +} diff --git a/plugins/engine-datafusion/jni/src/cross_rt_stream.rs b/plugins/engine-datafusion/jni/src/cross_rt_stream.rs new file mode 100644 index 0000000000000..cd7c91cb3945b --- /dev/null +++ b/plugins/engine-datafusion/jni/src/cross_rt_stream.rs @@ -0,0 +1,266 @@ +use std::{ + future::Future, + pin::Pin, + sync::Arc, + task::{Context, Poll}, +}; +use crate::executor::{DedicatedExecutor, JobError}; +use datafusion::arrow::datatypes::SchemaRef; +use datafusion::arrow::record_batch::RecordBatch; +use datafusion::error::DataFusionError; +use datafusion::physical_plan::SendableRecordBatchStream; +use futures::{future::BoxFuture, FutureExt, Stream, StreamExt, ready}; +use tokio::sync::mpsc::{Sender, channel}; +use tokio_stream::wrappers::ReceiverStream; + +// Copy of - https://github.com/influxdata/influxdb3_core/blob/main/iox_query/src/exec/cross_rt_stream.rs +/// A stream adapter that bridges data from one Tokio runtime to another. +/// +/// This is useful when you need to execute a DataFusion stream on a dedicated +/// executor (e.g., for CPU-intensive work) but consume the results on a different +/// runtime (e.g., the main I/O runtime). +/// +/// +/// The stream uses a channel-based approach: +/// - A "driver" future runs on the source runtime, pulling data from the source stream +/// - Data is sent through an MPSC channel to the consumer runtime +/// - The `CrossRtStream` polls both the driver and the receiver to ensure proper cleanup +/// +/// +/// We need to poll both the driver and the inner receiver because: +/// 1. The inner stream tells us when data is available or the channel is closed +/// 2. The driver tells us when the background task has fully completed +/// 3. We only return `Poll::Ready(None)` when BOTH are done to ensure proper cleanup +pub struct CrossRtStream { + /// The background task that drives the source stream and sends data through the channel. + /// This future runs on the dedicated executor and handles: + /// - Polling the source stream + /// - Sending results through the channel + /// - Error handling and conversion + driver: BoxFuture<'static, ()>, + + /// Tracks whether the driver future has completed. + /// We need to poll the driver to completion even after the channel closes + /// to ensure proper cleanup and avoid leaked resources. + driver_ready: bool, + + /// The receiving end of the channel, wrapped in a stream adapter. + /// This receives `RecordBatch` results from the driver running on another runtime. + inner: ReceiverStream>, + + /// Tracks whether the inner stream has ended (channel closed or exhausted). + /// Once true, we only need to wait for the driver to complete before returning `Poll::Ready(None)`. + inner_done: bool, + + /// The Arrow schema for the record batches in this stream. + /// Cached here so it can be returned synchronously without runtime interaction. + schema: SchemaRef, +} + +impl CrossRtStream { + /// Creates a new `CrossRtStream` with a custom driver function. + /// + /// # Arguments + /// + /// * `f` - A function that receives a channel sender and returns a future. + /// This future will be the driver that sends data through the channel. + /// * `schema` - The Arrow schema for the record batches + /// + /// # Type Parameters + /// + /// * `F` - The function type that creates the driver future + /// * `Fut` - The future type returned by `F`, must be `Send + 'static` + fn new_with_tx(f: F, schema: SchemaRef) -> Self + where + F: FnOnce(Sender>) -> Fut, + Fut: Future + Send + 'static, + { + // Create a channel with buffer size 1 + let (tx, rx) = channel(1); + + // Create the driver future by calling the provided function + let driver = f(tx).boxed(); + + Self { + driver, + driver_ready: false, + inner: ReceiverStream::new(rx), + inner_done: false, + schema, + } + } + + /// Creates a new `CrossRtStream` from a DataFusion stream and dedicated executor. + /// + /// This is the primary constructor that sets up cross-runtime streaming. + /// + /// # How it works + /// + /// 1. Captures the source stream's schema + /// 2. Spawns a task on the dedicated executor that: + /// - Polls the source stream + /// - Sends each result through the channel + /// - Stops if the channel is closed (consumer dropped) + /// 3. Wraps the spawned task to handle executor errors (panics, shutdown) + /// + /// # Arguments + /// + /// * `stream` - The source DataFusion stream to read from + /// * `exec` - The dedicated executor where the stream should be polled + pub fn new_with_df_error_stream( + stream: SendableRecordBatchStream, + exec: DedicatedExecutor, + ) -> Self { + let schema = stream.schema(); + + Self::new_with_tx( + |tx| { + // Clone the sender for the inner task + let tx_captured = tx.clone(); + + // Create the inner task that pulls from the stream + let fut = async move { + // Pin the stream to poll it + tokio::pin!(stream); + + // Pull items from the stream and send them through the channel + while let Some(res) = stream.next().await { + // If send fails, the receiver was dropped, so stop + if tx_captured.send(res).await.is_err() { + return; + } + } + }; + + // Wrap the inner task in executor error handling + async move { + // Spawn the task on the dedicated executor + if let Err(e) = exec.spawn(fut).await { + // Convert executor errors to DataFusion errors + let err = match e { + JobError::Panic { msg } => { + DataFusionError::Execution(format!("Panic: {}", msg)) + } + JobError::WorkerGone => { + DataFusionError::Execution("Worker gone".to_string()) + } + }; + // Try to send the error; if it fails, the receiver is already gone + tx.send(Err(err)).await.ok(); + } + } + }, + schema, + ) + } + + /// Returns the Arrow schema for this stream. + pub fn schema(&self) -> SchemaRef { + Arc::clone(&self.schema) + } +} + +impl Stream for CrossRtStream { + type Item = Result; + + /// Polls the stream for the next item. + /// + /// # Polling Strategy + /// + /// This implementation carefully manages two futures: + /// 1. The driver (background task) + /// 2. The inner receiver stream + /// + /// The stream only completes (`Poll::Ready(None)`) when: + /// - The inner stream has ended (channel closed), AND + /// - The driver has completed + /// + /// This ensures proper cleanup and prevents resource leaks. + /// + /// # State Machine + /// + /// ```text + /// ┌─────────────────────────────────────────────────┐ + /// │ Initial State │ + /// │ driver_ready: false, inner_done: false │ + /// └─────────────────────────────────────────────────┘ + /// │ + /// ▼ + /// ┌──────────────────────────────┐ + /// │ Poll driver (non-blocking) │ + /// │ Update driver_ready if ready │ + /// └──────────────────────────────┘ + /// │ + /// ▼ + /// ┌─────────────────┐ + /// │ inner_done? │ + /// └─────────────────┘ + /// │ │ + /// No Yes + /// │ │ + /// ▼ ▼ + /// ┌─────────────┐ ┌──────────────┐ + /// │ Poll inner │ │ driver_ready?│ + /// │ stream │ └──────────────┘ + /// └─────────────┘ │ │ + /// │ Yes No + /// ┌────┴────┐ │ │ + /// Some None │ │ + /// │ │ │ │ + /// ▼ ▼ ▼ ▼ + /// Return item Set inner_done Ready(None) Pending + /// │ + /// ▼ + /// ┌──────────────┐ + /// │ driver_ready?│ + /// └──────────────┘ + /// │ │ + /// Yes No + /// │ │ + /// ▼ ▼ + /// Ready(None) Pending + /// ``` + fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + let this = &mut *self; + + // Always poll the driver to ensure it makes progress + // We do this non-blocking: if it's not ready, we continue anyway + if !this.driver_ready { + let res = this.driver.poll_unpin(cx); + if res.is_ready() { + this.driver_ready = true; + } + } + + // Check if the inner stream already ended + if this.inner_done { + // Inner stream is done; only complete if driver is also done + if this.driver_ready { + Poll::Ready(None) + } else { + // Driver still running; keep polling + Poll::Pending + } + } else { + // Poll the inner stream for the next item + match ready!(this.inner.poll_next_unpin(cx)) { + None => { + // Inner stream ended (channel closed) + this.inner_done = true; + + // Only complete if driver is also done + if this.driver_ready { + Poll::Ready(None) + } else { + // Driver still running; wait for it to complete + Poll::Pending + } + } + Some(x) => { + // Got an item from the stream; return it + Poll::Ready(Some(x)) + } + } + } + } +} \ No newline at end of file diff --git a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs index 5e1151a13bd31..8f293451da110 100644 --- a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs +++ b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs @@ -1,6 +1,6 @@ use std::sync::{Arc, Mutex}; use datafusion::execution::cache::cache_manager::{FileMetadataCache, CacheManagerConfig}; -use datafusion::execution::cache::cache_unit::DefaultFilesMetadataCache; +use datafusion::execution::cache::cache_unit::{DefaultFileStatisticsCache, DefaultFilesMetadataCache, DefaultListFilesCache}; use datafusion::execution::cache::CacheAccessor; use tokio::runtime::Runtime; use crate::cache::MutexFileMetadataCache; @@ -36,14 +36,13 @@ impl CustomCacheManager { /// Build a CacheManagerConfig from the caches stored in this CustomCacheManager pub fn build_cache_manager_config(&self) -> CacheManagerConfig { let mut config = CacheManagerConfig::default(); - + let file_static_cache = Arc::new(DefaultFileStatisticsCache::default()); // Add file metadata cache if available if let Some(cache) = self.get_file_metadata_cache_for_datafusion() { config = config.with_file_metadata_cache(Some(cache)); } - + config = config.with_files_statistics_cache(Some(file_static_cache.clone())); // Future: Add stats cache when implemented - config } diff --git a/plugins/engine-datafusion/jni/src/executor.rs b/plugins/engine-datafusion/jni/src/executor.rs new file mode 100644 index 0000000000000..1ce6691287747 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/executor.rs @@ -0,0 +1,312 @@ +#![warn(missing_docs)] + +// Have used the same code as influxdb + +use parking_lot::RwLock; +use std::{ + sync::{Arc, OnceLock}, + time::Duration, +}; +use tokio::{ + runtime::Handle, + sync::{Notify, oneshot::error::RecvError}, + task::JoinSet, +}; + +use futures::{ + Future, FutureExt, TryFutureExt, + future::{BoxFuture, Shared}, +}; + +use tracing::warn; +use crate::io::register_io_runtime; + +// copy of https://github.com/influxdata/influxdb3_core/blob/main/executor/src/lib.rs + +const SHUTDOWN_TIMEOUT: Duration = Duration::from_secs(60 * 5); + +/// Errors occurring when polling [`DedicatedExecutor::spawn`]. +#[derive(Debug)] +#[expect(missing_docs)] +pub enum JobError { + WorkerGone, + Panic { msg: String }, +} + +/// Manages a separate tokio runtime (thread pool) for executing tasks. +/// +/// A `DedicatedExecutor` runs futures (and any `tasks` that are +/// `tokio::task::spawned` by them) on a separate tokio Executor +/// +/// # Background +/// +/// Tokio has the notion of the "current" runtime, which runs the current future +/// and any tasks spawned by it. Typically, this is the runtime created by +/// `tokio::main` and is used for the main application logic and I/O handling +/// +/// For CPU bound work, such as DataFusion plan execution, it is important to +/// run on a separate thread pool to avoid blocking the I/O handling for extended +/// periods of time in order to avoid long poll latencies (which decreases the +/// throughput of small requests under concurrent load). +/// +/// # IO Scheduling +/// +/// I/O, such as network calls, should not be performed on the runtime managed +/// by [`DedicatedExecutor`]. As tokio is a cooperative scheduler, long-running +/// CPU tasks will not be preempted and can therefore starve servicing of other +/// tasks. This manifests in long poll-latencies, where a task is ready to run +/// but isn't being scheduled to run. For CPU-bound work this isn't a problem as +/// there is no external party waiting on a response, however, for I/O tasks, +/// long poll latencies can prevent timely servicing of IO, which can have a +/// significant detrimental effect. +/// +/// # Details +/// +/// The worker thread priority is set to low so that such tasks do +/// not starve other more important tasks (such as answering health checks) +/// +/// Follows the example from to stack overflow and spawns a new +/// thread to install a Tokio runtime "context" +/// +/// +/// # Trouble Shooting: +/// +/// ## "No IO runtime registered. Call `register_io_runtime`/`register_current_runtime_for_io` in current thread! +/// +/// This means that IO was attempted on a tokio runtime that was not registered +/// for IO. One solution is to run the task using [DedicatedExecutor::spawn]. +/// +/// ## "Cannot drop a runtime in a context where blocking is not allowed"` +/// +/// If you try to use this structure from an async context you see something like +/// thread 'plan::stringset::tests::test_builder_plan' panicked at 'Cannot +/// drop a runtime in a context where blocking is not allowed. This +/// happens when a runtime is dropped from within an asynchronous +/// context.', .../tokio-1.4.0/src/runtime/blocking/shutdown.rs:51:21 +/// +#[derive(Clone)] +pub struct DedicatedExecutor { + state: Arc>, +} + +/// Runs futures (and any `tasks` that are `tokio::task::spawned` by +/// them) on a separate tokio Executor. +/// +/// The state is only used by the "outer" API, not by the newly created runtime. The new runtime waits for +/// [`start_shutdown`](Self::start_shutdown) and signals the completion via +/// [`completed_shutdown`](Self::completed_shutdown) (for which is owns the sender side). +struct State { + /// Runtime handle. + /// + /// This is `None` when the executor is shutting down. + handle: Option, + + /// If notified, the executor tokio runtime will begin to shutdown. + /// + /// We could implement this by checking `handle.is_none()` in regular intervals but requires regular wake-ups and + /// locking of the state. Just using a proper async signal is nicer. + start_shutdown: Arc, + + /// Receiver side indicating that shutdown is complete. + completed_shutdown: Shared>>>, + + /// The inner thread that can be used to join during drop. + thread: Option>, +} + +// IMPORTANT: Implement `Drop` for `State`, NOT for `DedicatedExecutor`, because the executor can be cloned and clones +// share their inner state. +impl Drop for State { + fn drop(&mut self) { + if self.handle.is_some() { + warn!("DedicatedExecutor dropped without calling shutdown()"); + self.handle = None; + self.start_shutdown.notify_one(); + } + + // do NOT poll the shared future if we are panicking due to https://github.com/rust-lang/futures-rs/issues/2575 + if !std::thread::panicking() && self.completed_shutdown.clone().now_or_never().is_none() { + warn!("DedicatedExecutor dropped without waiting for worker termination",); + } + + // join thread but don't care about the results + self.thread.take().expect("not dropped yet").join().ok(); + } +} + +impl std::fmt::Debug for DedicatedExecutor { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // Avoid taking the mutex in debug formatting + write!(f, "DedicatedExecutor") + } +} + +/// [`DedicatedExecutor`] for testing purposes. +static TESTING_EXECUTOR: OnceLock = OnceLock::new(); + +impl DedicatedExecutor { + /// Creates a new `DedicatedExecutor` with a dedicated tokio + /// executor that is separate from the threadpool created via + /// `[tokio::main]` or similar. + /// + /// See the documentation on [`DedicatedExecutor`] for more details. + /// + /// If [`DedicatedExecutor::new`] is called from an existing tokio runtime, + /// it will assume that the existing runtime should be used for I/O, and is + /// thus set, via [`register_io_runtime`] by all threads spawned by the + /// executor. This will allow scheduling IO outside the context of + /// [`DedicatedExecutor`] using [`spawn_io`]. + pub fn new( + name: &str, + runtime_builder: tokio::runtime::Builder, + ) -> Self { + Self::new_inner(name, runtime_builder, false) + } + + fn new_inner( + name: &str, + runtime_builder: tokio::runtime::Builder, + testing: bool, + ) -> Self { + let name = name.to_owned(); + + let notify_shutdown = Arc::new(Notify::new()); + let notify_shutdown_captured = Arc::clone(¬ify_shutdown); + + let (tx_shutdown, rx_shutdown) = tokio::sync::oneshot::channel(); + let (tx_handle, rx_handle) = std::sync::mpsc::channel(); + + let io_handle = tokio::runtime::Handle::try_current().ok(); + let thread = std::thread::Builder::new() + .name(format!("{name} driver")) + .spawn(move || { + // also register the IO runtime for the current thread, since it might be used as well (esp. for the + // current thread RT) + register_io_runtime(io_handle.clone()); + + let mut runtime_builder = runtime_builder; + let runtime = runtime_builder + .on_thread_start(move || register_io_runtime(io_handle.clone())) + .build() + .expect("Creating tokio runtime"); + + + runtime.block_on(async move { + // Enable the "notified" receiver BEFORE sending the runtime handle back to the constructor thread + // (i.e .the one that runs `new`) to avoid the potential (but unlikely) race that the shutdown is + // started right after the constructor finishes and the new runtime calls + // `notify_shutdown_captured.notified().await`. + // + // Tokio provides an API for that by calling `enable` on the `notified` future (this requires + // pinning though). + let shutdown = notify_shutdown_captured.notified(); + let mut shutdown = std::pin::pin!(shutdown); + shutdown.as_mut().enable(); + + if tx_handle.send(Handle::current()).is_err() { + return; + } + shutdown.await; + }); + + runtime.shutdown_timeout(SHUTDOWN_TIMEOUT); + + // send shutdown "done" signal + tx_shutdown.send(()).ok(); + }) + .expect("executor setup"); + + let handle = rx_handle.recv().expect("driver started"); + + let state = State { + handle: Some(handle), + start_shutdown: notify_shutdown, + completed_shutdown: rx_shutdown.map_err(Arc::new).boxed().shared(), + thread: Some(thread), + }; + + Self { + state: Arc::new(RwLock::new(state)), + } + } + + /// Runs the specified [`Future`] (and any tasks it spawns) on the thread + /// pool managed by this `DedicatedExecutor`. + /// + /// # Notes + /// + /// UNLIKE [`tokio::task::spawn`], the returned future is **cancelled** when + /// it is dropped. Thus, you need ensure the returned future lives until it + /// completes (call `await`) or you wish to cancel it. + /// + /// Currently all tasks are added to the tokio executor immediately and + /// compete for the threadpool's resources. + pub fn spawn(&self, task: T) -> impl Future> + use + where + T: Future + Send + 'static, + T::Output: Send + 'static, + { + let handle = { + let state = self.state.read(); + state.handle.clone() + }; + + let Some(handle) = handle else { + return futures::future::err(JobError::WorkerGone).boxed(); + }; + + // use JoinSet implement "cancel on drop" + let mut join_set = JoinSet::new(); + join_set.spawn_on(task, &handle); + async move { + join_set + .join_next() + .await + .expect("just spawned task") + .map_err(|e| match e.try_into_panic() { + Ok(e) => { + let s = if let Some(s) = e.downcast_ref::() { + s.clone() + } else if let Some(s) = e.downcast_ref::<&str>() { + s.to_string() + } else { + "unknown internal error".to_string() + }; + + JobError::Panic { msg: s } + } + Err(_) => JobError::WorkerGone, + }) + } + .boxed() + } + + /// Stops all subsequent task executions, and waits for the worker + /// thread to complete. Note this will shutdown all clones of this + /// `DedicatedExecutor` as well. + /// + /// Only the first call to `join` will actually wait for the + /// executing thread to complete. All other calls to join will + /// complete immediately. + pub fn join_blocking(&self) { + self.shutdown(); + + let thread_handle = { + let mut state = self.state.write(); + state.thread.take() + }; + + if let Some(handle) = thread_handle { + let _ = handle.join(); + } + } + + /// signals shutdown of this executor and any Clones + pub fn shutdown(&self) { + // hang up the channel which will cause the dedicated thread + // to quit + let mut state = self.state.write(); + state.handle = None; + state.start_shutdown.notify_one(); + } +} diff --git a/plugins/engine-datafusion/jni/src/io.rs b/plugins/engine-datafusion/jni/src/io.rs new file mode 100644 index 0000000000000..2597d3ab5ce5a --- /dev/null +++ b/plugins/engine-datafusion/jni/src/io.rs @@ -0,0 +1,65 @@ +use futures::FutureExt; +use std::cell::RefCell; +use std::future::Future; +use std::pin::Pin; +use std::task::{Context, Poll}; +use tokio::runtime::Handle; +use tokio::task::JoinHandle; + +thread_local! { + /// Tokio runtime `Handle` for doing network (I/O) operations, see [`spawn_io`] + pub static IO_RUNTIME: RefCell> = const { RefCell::new(None) }; +} + +/// Registers `handle` as the IO runtime for this thread +/// +/// See [`spawn_io`] +pub fn register_io_runtime(handle: Option) { + IO_RUNTIME.set(handle) +} + +/// [Registers](register_io_runtime) current runtime as IO runtime. +/// +/// This is mostly a convenience function for testing. +pub fn register_current_runtime_for_io() { + register_io_runtime(Some(Handle::current())); +} + +/// Runs `fut` on the runtime registered by [`register_io_runtime`] if any, +/// otherwise awaits on the current thread +/// +/// # Panic +/// Needs a IO runtime [registered](register_io_runtime). +pub async fn spawn_io(fut: Fut) -> Fut::Output +where + Fut: Future + Send + 'static, + Fut::Output: Send, +{ + let h = IO_RUNTIME.with_borrow(|h| h.clone()).expect( + "No IO runtime registered. If you hit this panic, it likely \ + means a DataFusion plan or other CPU bound work is running on the \ + a tokio threadpool used for IO. Try spawning the work using \ + `DedicatedExecutor::spawn` or for tests `register_current_runtime_for_io`", + ); + DropGuard(h.spawn(fut)).await +} + +struct DropGuard(JoinHandle); + +impl Drop for DropGuard { + fn drop(&mut self) { + self.0.abort() + } +} + +impl Future for DropGuard { + type Output = T; + + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + Poll::Ready(match std::task::ready!(self.0.poll_unpin(cx)) { + Ok(v) => v, + Err(e) if e.is_cancelled() => panic!("IO runtime was shut down"), + Err(e) => std::panic::resume_unwind(e.into_panic()), + }) + } +} \ No newline at end of file diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 840d8ca08d69c..27b5e439d79f3 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -1,3 +1,4 @@ +use std::cell::RefCell; use std::num::NonZeroUsize; /* * SPDX-License-Identifier: Apache-2.0 @@ -7,41 +8,28 @@ use std::num::NonZeroUsize; * compatible open source license. */ use std::ptr::addr_of_mut; -use datafusion_datasource::PartitionedFile; -use datafusion_datasource::file_groups::FileGroup; -use datafusion_datasource::file_scan_config::FileScanConfigBuilder; -use datafusion_datasource::source::DataSourceExec; use jni::objects::{JByteArray, JClass, JObject}; -use std::collections::{BTreeSet, HashMap}; use jni::objects::JLongArray; -use jni::sys::{jbyteArray, jlong, jstring}; -use jni::JNIEnv; -use std::sync::Arc; +use jni::sys::{jbyteArray, jint, jlong, jstring}; +use jni::{JNIEnv, JavaVM}; +use std::sync::{Arc, OnceLock}; use arrow_array::{Array, StructArray}; use arrow_array::ffi::FFI_ArrowArray; -use arrow_schema::DataType; use arrow_schema::ffi::FFI_ArrowSchema; use datafusion::{ - common::DataFusionError - , - datasource::file_format::parquet::ParquetFormat, + common::DataFusionError, datasource::listing::ListingTableUrl, - datasource::object_store::ObjectStoreUrl, - datasource::physical_plan::parquet::{ParquetAccessPlan, RowGroupAccess}, - datasource::physical_plan::ParquetSource, execution::cache::cache_manager::CacheManagerConfig, execution::cache::cache_unit::{DefaultListFilesCache,DefaultFilesMetadataCache}, execution::cache::CacheAccessor, execution::context::SessionContext, execution::runtime_env::{RuntimeEnv, RuntimeEnvBuilder}, - execution::TaskContext, - parquet::arrow::arrow_reader::RowSelector, - physical_plan::{ExecutionPlan, SendableRecordBatchStream}, + execution::RecordBatchStream, prelude::*, DATAFUSION_VERSION, }; use std::default::Default; -use std::time::Instant; +use std::time::{Duration, Instant}; mod util; mod row_id_optimizer; @@ -49,49 +37,181 @@ mod listing_table; mod cache; mod custom_cache_manager; mod memory; +mod cross_rt_stream; +mod executor; +mod io; +mod runtime_manager; +mod cache_jni; mod partial_agg_optimizer; +mod query_executor; use crate::custom_cache_manager::CustomCacheManager; -use crate::row_id_optimizer::ProjectRowIdOptimizer; -use crate::util::{ - create_file_meta_from_filenames, parse_string_arr, set_object_result_error, - set_object_result_ok, -}; +use crate::util::{create_file_meta_from_filenames, parse_string_arr, set_action_listener_error, set_action_listener_error_global, set_action_listener_ok, set_action_listener_ok_global}; use datafusion::execution::memory_pool::{GreedyMemoryPool, TrackConsumersPool}; -use crate::partial_agg_optimizer::PartialAggregationOptimizer; - -use datafusion::catalog::TableProvider; -use datafusion_expr::registry::FunctionRegistry; -use datafusion_substrait::extensions::Extensions; -use datafusion_substrait::logical_plan::consumer::{ - from_substrait_plan, from_substrait_plan_with_consumer, DefaultSubstraitConsumer, - SubstraitConsumer, -}; -use datafusion_substrait::substrait::proto::{ - Expression, ExtensionLeafRel, ExtensionMultiRel, ExtensionSingleRel, Plan, PlanRel, ProjectRel, -}; -use futures::TryStreamExt; -use datafusion_substrait::substrait::proto::extensions::simple_extension_declaration::MappingType; use object_store::ObjectMeta; -use prost::Message; use tokio::runtime::Runtime; use std::result; +use datafusion::physical_plan::stream::RecordBatchStreamAdapter; +use futures::TryStreamExt; pub type Result = result::Result; // NativeBridge JNI implementations -use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; +use crate::listing_table::ListingOptions; use jni::objects::{JObjectArray, JString}; +use log::{error, info}; +use once_cell::sync::Lazy; +use tokio_metrics::{RuntimeMonitor, TaskMonitor}; +use crate::cross_rt_stream::CrossRtStream; +use crate::executor::DedicatedExecutor; use crate::memory::{CustomMemoryPool, Monitor, MonitoredMemoryPool}; +use crate::runtime_manager::RuntimeManager; struct DataFusionRuntime { runtime_env: RuntimeEnv, custom_cache_manager: Option, - tokio_runtime: Runtime, monitor: Arc, } +// TASK monitorint metrics +static QUERY_EXECUTION_MONITOR: Lazy = Lazy::new(|| { + TaskMonitor::with_slow_poll_threshold(Duration::from_micros(100)).clone() +}); + +static STREAM_NEXT_MONITOR: Lazy = Lazy::new(|| { + TaskMonitor::with_slow_poll_threshold(Duration::from_micros(50)).clone() +}); + +// Global runtime manager +static TOKIO_RUNTIME_MANAGER: OnceLock> = OnceLock::new(); + +// Global JavaVM reference +static JAVA_VM: OnceLock = OnceLock::new(); + +thread_local! { + static THREAD_JNIENV: RefCell>> = RefCell::new(None); +} + +// Helper function to get or attach JNI env +fn with_jni_env(f: F) -> R +where + F: FnOnce(&mut JNIEnv) -> R, +{ + THREAD_JNIENV.with(|cell| { + let mut opt = cell.borrow_mut(); + if opt.is_none() { + let jvm = JAVA_VM.get().expect("JavaVM not initialized"); + let env = jvm.attach_current_thread_permanently() + .expect("Failed to attach thread to JVM"); + *opt = Some(env); + } + + // Safe because we're the only one with access to this thread-local + let env_ref = opt.as_mut().unwrap(); + f(env_ref) + }) +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_initTokioRuntimeManager( + env: JNIEnv, + _class: JClass, + cpu_threads: jint, +) { + // Initialize JavaVM once + JAVA_VM.get_or_init(|| { + env.get_java_vm().expect("Failed to get JavaVM") + }); + + TOKIO_RUNTIME_MANAGER.get_or_init(|| { + println!("Runtime manager initialized with {} CPU threads", cpu_threads); + Arc::new(RuntimeManager::new(cpu_threads as usize)) + }); +} + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_shutdownTokioRuntimeManager( + env: JNIEnv, + _class: JClass, +) { + println!("Runtime manager shut down started"); + if let Some(mgr) = TOKIO_RUNTIME_MANAGER.get() { + mgr.shutdown(); + println!("Runtime manager shut down successfully"); + } +} + + +#[no_mangle] +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_startTokioRuntimeMonitoring( + _env: JNIEnv, + _class: JClass, +) { + let manager = match TOKIO_RUNTIME_MANAGER.get() { + Some(m) => m, + None => { + error!("Tokio runtime manager not initialized"); + return; + } + }; + + // Uncomment this to monitor tokio metrics + + // let io_runtime = manager.io_runtime.clone(); + // io_runtime.spawn(async move { + // let handle = tokio::runtime::Handle::current(); + // let runtime_monitor = RuntimeMonitor::new(&handle); + // + // // Monitor at 120-second intervals + // for metrics in runtime_monitor.intervals() { + // log_runtime_metrics(&metrics); + // tokio::time::sleep(Duration::from_secs(120)).await; + // } + // }); + // + // println!("Runtime monitoring started"); +} + +/// Log runtime metrics with performance analysis +fn log_runtime_metrics(metrics: &tokio_metrics::RuntimeMetrics) { + println!("=== Runtime Metrics ==="); + println!(" Workers: {}", metrics.workers_count); + println!(" Global queue depth: {}", metrics.global_queue_depth); + /** + //unstable tokio causes build failures, uncomment this when monitoring + + println!(" Worker overflow: {}", metrics.total_overflow_count); + println!(" Remote schedule: {}", metrics.max_local_schedule_count); + println!(" Worker steal ops: {}", metrics.total_steal_operations); + println!(" Blocking queue depth: {}", metrics.blocking_queue_depth); + println!(" Max local queue depth: {}", metrics.max_local_queue_depth); + println!(" Min local queue depth: {}", metrics.min_local_queue_depth); + println!(" Max local schedule count: {}", metrics.max_local_schedule_count); + println!(" Min local schedule count: {}", metrics.min_local_schedule_count); + println!(" Queue depth: {}", metrics.total_local_queue_depth); + println!(" Total schedule count: {}", metrics.total_local_schedule_count); + **/ + let query_metrics = QUERY_EXECUTION_MONITOR.cumulative(); + log_task_metrics("Query exec (via CrossRtStream)", &query_metrics); + let stream_metrics = STREAM_NEXT_MONITOR.cumulative(); + log_task_metrics("Stream Next (via CrossRtStream)", &stream_metrics); + println!("======================"); +} + +/// Log task metrics with performance analysis +fn log_task_metrics(operation: &str, metrics: &tokio_metrics::TaskMetrics) { + println!("=== Task Metrics: {} ===", operation); + println!(" Scheduled duration: {:?}", metrics.total_scheduled_duration); + println!(" Poll duration: {:?}", metrics.total_poll_duration); + println!(" Idle duration: {:?}", metrics.total_idle_duration); + println!(" Mean poll duration: {:?}", metrics.mean_poll_duration()); + println!(" Slow poll ratio: {:.2}%", metrics.slow_poll_ratio() * 100.0); + println!(" Mean first poll delay: {:?}", metrics.mean_first_poll_delay()); + println!(" Total slow polls: {}", metrics.total_slow_poll_count); + println!(" Total long delays: {}", metrics.total_long_delay_count); +} + #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlobalRuntime( _env: JNIEnv, @@ -115,14 +235,12 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlo let runtime_env = RuntimeEnvBuilder::new().with_cache_manager(cache_manager_config) .with_memory_pool(memory_pool.clone()) + .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB .build().unwrap(); - let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); - let runtime = DataFusionRuntime { runtime_env, custom_cache_manager: Some(custom_cache_manager), - tokio_runtime, monitor, }; @@ -132,12 +250,9 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlo .with_memory_pool(memory_pool) .build().unwrap(); - let tokio_runtime = Runtime::new().expect("Failed to create Tokio runtime"); - let runtime = DataFusionRuntime { runtime_env, custom_cache_manager: None, - tokio_runtime, monitor, }; @@ -196,15 +311,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_getVersio .as_raw() } -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCustomCacheManager( - mut env: JNIEnv, - _class: JClass, -) -> jlong { - // Create CustomCacheManager without any config - let manager = custom_cache_manager::CustomCacheManager::new(); - Box::into_raw(Box::new(manager)) as jlong -} + #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createDatafusionReader( @@ -338,167 +445,94 @@ impl CustomFileMeta { } #[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQueryPhase( +pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeQueryPhaseAsync( mut env: JNIEnv, _class: JClass, shard_view_ptr: jlong, table_name: JString, substrait_bytes: jbyteArray, - runtime_ptr: jlong -) -> jlong { - let overall = Instant::now(); - let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; - let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; - let table_name: String = env - .get_string(&table_name) - .expect("Couldn't get java string!") - .into(); - - let runtimeEnv = &runtime.runtime_env; - - let table_path = shard_view.table_path(); - let files_meta = shard_view.files_metadata(); - let object_meta: Arc> = Arc::new( - files_meta - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect(), - ); + runtime_ptr: jlong, + listener: JObject, +) { + let manager = match TOKIO_RUNTIME_MANAGER.get() { + Some(m) => m, + None => { + error!("Runtime manager not initialized"); + set_action_listener_error(&mut env, listener, + &DataFusionError::Execution("Runtime manager not initialized".to_string())); + return; + } + }; - let list_file_cache = Arc::new(DefaultListFilesCache::default()); - list_file_cache.put(table_path.prefix(), object_meta); - - let runtime_env = RuntimeEnvBuilder::from_runtime_env(runtimeEnv) - .with_cache_manager( - CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache.clone())) - .with_file_metadata_cache(Some(runtimeEnv.cache_manager.get_file_metadata_cache())), - ) - .build() - .unwrap(); - - - // TODO: get config from CSV DataFormat - let mut config = SessionConfig::new(); - config.options_mut().execution.parquet.pushdown_filters = false; - config.options_mut().execution.target_partitions = 1; - - let state = datafusion::execution::SessionStateBuilder::new() - .with_config(config) - .with_runtime_env(Arc::from(runtime_env)) - .with_default_features() - // .with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) - .with_physical_optimizer_rule(Arc::new(PartialAggregationOptimizer)) - .build(); - - let ctx = SessionContext::new_with_state(state); - - // Create default parquet options - let file_format = ParquetFormat::new(); - let listing_options = ListingOptions::new(Arc::new(file_format)) - .with_file_extension(".parquet") // TODO: take this as parameter - .with_files_metadata(files_meta) - .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int64)]); - - // Ideally the executor will give this - runtime.tokio_runtime.block_on(async { - let resolved_schema = listing_options - .infer_schema(&ctx.state(), &table_path.clone()) - .await.unwrap(); - - let config = ListingTableConfig::new(table_path.clone()) - .with_listing_options(listing_options) - .with_schema(resolved_schema); - - // Create a new TableProvider - let provider = Arc::new(ListingTable::try_new(config).unwrap()); - ctx.register_table(table_name.clone(), provider) - .expect("Failed to attach the Table"); - }); + // ===== EXTRACT ALL JAVA DATA BEFORE ASYNC BLOCK ===== + let table_name: String = match env.get_string(&table_name) { + Ok(s) => s.into(), + Err(e) => { + error!("Failed to get table name: {}", e); + set_action_listener_error(&mut env, listener, + &DataFusionError::Execution(format!("Failed to get table name: {}", e))); + return; + } + }; - let start = Instant::now(); - // TODO : how to close ctx ? - // Convert Java byte array to Rust Vec let plan_bytes_obj = unsafe { JByteArray::from_raw(substrait_bytes) }; let plan_bytes_vec = match env.convert_byte_array(plan_bytes_obj) { Ok(bytes) => bytes, Err(e) => { - let error_msg = format!("Failed to convert plan bytes: {}", e); - env.throw_new("java/lang/Exception", error_msg); - return 0; + error!("Failed to convert plan bytes: {}", e); + set_action_listener_error(&mut env, listener, + &DataFusionError::Execution(format!("Failed to convert plan bytes: {}", e))); + return; } }; - let substrait_plan = match Plan::decode(plan_bytes_vec.as_slice()) { - Ok(plan) => { - // println!("SUBSTRAIT rust: Decoding is successful, Plan has {} relations", plan.relations.len()); - plan - } + // Convert listener to GlobalRef (thread-safe) + let listener_ref = match env.new_global_ref(&listener) { + Ok(r) => r, Err(e) => { - return 0; + error!("Failed to create global ref: {}", e); + set_action_listener_error(&mut env, listener, + &DataFusionError::Execution(format!("Failed to create global ref: {}", e))); + return; } }; + let io_runtime = manager.io_runtime.clone(); + let cpu_executor = manager.cpu_executor(); - runtime.tokio_runtime.block_on(async { - let mut modified_plan = substrait_plan.clone(); - for ext in modified_plan.extensions.iter_mut() { - if let Some(mapping_type) = &mut ext.mapping_type { - if let MappingType::ExtensionFunction(func) = mapping_type { - if func.name == "approx_count_distinct:any" { - func.name = "approx_distinct:any".to_string(); - } - } - } - } + let shard_view = unsafe { &*(shard_view_ptr as *const ShardView) }; + let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; - let logical_plan = match from_substrait_plan(&ctx.state(), &modified_plan).await { - Ok(plan) => { - // println!("SUBSTRAIT Rust: LogicalPlan: {:?}", plan); - let duration = start.elapsed(); - println!( - "Rust: Substrait decoding time in milliseconds: {}", - duration.as_millis() - ); - plan - } - Err(e) => { - let error_msg = format!("Failed to convert Substrait plan: {}", e); - println!("SUBSTRAIT Rust: {}", error_msg); - let _ = env.throw_new("java/lang/RuntimeException", error_msg); - return 0; - } - }; + let table_path = shard_view.table_path(); + let files_meta = shard_view.files_metadata(); - let dataframe = ctx - .execute_logical_plan(logical_plan) - .await - .expect("Failed to execute logical plan"); - let physical_plan = dataframe.clone().create_physical_plan().await.unwrap(); - println!( - "Physical Plan:\n{}", - datafusion::physical_plan::displayable(physical_plan.as_ref()).indent(true) - ); + io_runtime.block_on(async move { - let stream = match dataframe.execute_stream().await { - Ok(stream) => stream, + let result = query_executor::execute_query_with_cross_rt_stream( + table_path, + files_meta, + table_name, + plan_bytes_vec, + runtime, + cpu_executor, + ).await; + + match result { + Ok(stream_ptr) => { + with_jni_env(|env| { + set_action_listener_ok_global(env, &listener_ref, stream_ptr); + }); + } Err(e) => { - let error_msg = format!("Failed to execute stream: {}", e); - println!("{}", error_msg); - env.throw_new("java/lang/Exception", error_msg); - return 0; + with_jni_env(|env| { + error!("Query execution failed: {}", e); + set_action_listener_error_global(env, &listener_ref, &e); + }); } - }; - let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; + } + }); +} - let duration1 = overall.elapsed(); - println!( - "Rust: Overall query setup time in milliseconds: {}", - duration1.as_millis() - ); - // set_projections(env, projections, callback); - stream_ptr - }) -} #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNext( @@ -506,59 +540,101 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamNex _class: JClass, runtime_ptr: jlong, stream: jlong, - callback: JObject, + listener: JObject, ) { - let runtime = unsafe { &*(runtime_ptr as *const DataFusionRuntime) }; + let manager = match TOKIO_RUNTIME_MANAGER.get() { + Some(m) => m, + None => { + set_action_listener_error( + &mut env, + listener, + &DataFusionError::Execution("Runtime manager not initialized".to_string()) + ); + return; + } + }; - let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; - runtime.tokio_runtime.block_on(async { - //let fetch_start = std::time::Instant::now(); - let next = futures::StreamExt::next(stream).await; - //let fetch_time = fetch_start.elapsed(); - match next { - Some(Ok(batch)) => { - //let convert_start = std::time::Instant::now(); - // Convert to struct array for compatibility with FFI - //println!("Num rows : {}", batch.num_rows()); - let struct_array: StructArray = batch.into(); - let array_data = struct_array.into_data(); - let mut ffi_array = FFI_ArrowArray::new(&array_data); - //let convert_time = convert_start.elapsed(); - // ffi_array must remain alive until after the callback is called - // let callback_start = std::time::Instant::now(); - set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_array)); - // let callback_time = callback_start.elapsed(); - // println!("Fetch: {:?}, Convert: {:?}, Callback: {:?}", - // fetch_time, convert_time, callback_time); - } - None => { - set_object_result_ok(&mut env, callback, 0 as *mut FFI_ArrowSchema); - } - Some(Err(err)) => { - set_object_result_error(&mut env, callback, &err); - } + // Convert listener to GlobalRef + let listener_ref = match env.new_global_ref(&listener) { + Ok(r) => r, + Err(e) => { + error!("Failed to create global ref: {}", e); + set_action_listener_error(&mut env, listener, + &DataFusionError::Execution(format!("Failed to create global ref: {}", e))); + return; } - //println!("Total time: {:?}", start.elapsed()); + }; + + let stream_ptr = stream; + let io_runtime = manager.io_runtime.clone(); + + // TODO : this can be 'io_runtime.block_on' if we see rust workers getting overloaded + // benchmarks so far are good with spawn + // TODO : Thread leaks in tests if its spawn + io_runtime.block_on(async move { + + let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamAdapter) }; + // Poll the stream with monitoring + let result = stream.try_next().await; + + // Uncomment for monitoring stream next + // let result = STREAM_NEXT_MONITOR.instrument(async { + // stream.try_next().await + // }).await; + + // Use thread-local JNI env - auto-attaches! + with_jni_env(|env| { + match result { + Ok(Some(batch)) => { + // Convert to FFI + let struct_array: StructArray = batch.into(); + let array_data = struct_array.into_data(); + let ffi_array = FFI_ArrowArray::new(&array_data); + let ffi_array_ptr = Box::into_raw(Box::new(ffi_array)); + set_action_listener_ok_global(env, &listener_ref, ffi_array_ptr as jlong); + } + Ok(None) => { + // End of stream + set_action_listener_ok_global(env, &listener_ref, 0); + } + Err(err) => { + error!("Stream next failed: {}", err); + set_action_listener_error_global(env, &listener_ref, &err); + } + } + }); }); + // Function returns immediately to java - async rust work continues in background } #[no_mangle] pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamGetSchema( mut env: JNIEnv, _class: JClass, - stream: jlong, - callback: JObject, + stream_ptr: jlong, + listener: JObject, ) { - let stream = unsafe { &mut *(stream as *mut SendableRecordBatchStream) }; + if stream_ptr == 0 { + set_action_listener_error( + &mut env, + listener, + &DataFusionError::Execution("Invalid stream pointer".to_string()) + ); + return; + } + // Schema access is synchronous and fast - no need for runtime + let stream = unsafe { &mut *(stream_ptr as *mut RecordBatchStreamAdapter) }; + //let stream = unsafe { &mut *(stream_ptr as *mut SendableRecordBatchStream) }; + let schema = stream.schema(); - let ffi_schema = FFI_ArrowSchema::try_from(&*schema); - match ffi_schema { + match FFI_ArrowSchema::try_from(schema.as_ref()) { Ok(mut ffi_schema) => { - // ffi_schema must remain alive until after the callback is called - set_object_result_ok(&mut env, callback, addr_of_mut!(ffi_schema)); + set_action_listener_ok(&mut env, listener, addr_of_mut!(ffi_schema) as jlong); } Err(err) => { - set_object_result_error(&mut env, callback, &err); + set_action_listener_error(&mut env, listener, &DataFusionError::Execution( + format!("Schema conversion failed: {}", err) + )); } } } @@ -588,7 +664,7 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe return 0; } - // 2. Get array length + // Get array length let array_length = match env.get_array_length(&values) { Ok(len) => len, Err(e) => { @@ -600,10 +676,10 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe } }; - // 3. Allocate Rust buffer + // Allocate Rust buffer let mut row_ids: Vec = vec![0; array_length as usize]; - // 4. Copy Java array into Rust buffer + // Copy Java array into Rust buffer match env.get_long_array_region(values, 0, &mut row_ids[..]) { Ok(_) => { println!("Received array: {:?}", row_ids); @@ -617,261 +693,38 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_executeFe } } - // Safety checks - if runtime_ptr == 0 { - let error = DataFusionError::Execution("Null runtime pointer".to_string()); - set_object_result_error(&mut env, callback, &error); - return 0; - } - - let access_plans = create_access_plans(row_ids, files_metadata.clone()); - - let object_meta: Arc> = Arc::new( - files_metadata - .iter() - .map(|metadata| (*metadata.object_meta).clone()) - .collect(), - ); - - let list_file_cache = Arc::new(DefaultListFilesCache::default()); - list_file_cache.put(table_path.prefix(), object_meta); - - let runtime_env = RuntimeEnvBuilder::new() - .with_cache_manager( - CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)) - .with_file_metadata_cache(Some(runtime.runtime_env.cache_manager.get_file_metadata_cache())), - ) - .build() - .unwrap(); - let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); - - // Create default parquet options - let file_format = ParquetFormat::new(); - let listing_options = - ListingOptions::new(Arc::new(file_format)).with_file_extension(".parquet"); // TODO: take this as parameter - // .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int32)]); // TODO: enable only for query phase - - // Ideally the executor will give this - - runtime.tokio_runtime.block_on(async { - let parquet_schema = match listing_options - .infer_schema(&ctx.state(), &table_path.clone()) - .await - { - Ok(schema) => schema, - Err(e) => { - let _ = env.throw_new( - "java/lang/RuntimeException", - format!("Failed to infer schema during fetch: {}", e), - ); - return 0; - } - }; - - // let total_groups = files_metadata[0].row_group_row_counts.len(); - // let mut access_plan = ParquetAccessPlan::new_all(total_groups); - // for i in 0..total_groups { - // access_plan.skip(i); - // } - - // let partitioned_files: Vec = files_metadata - // .iter() - // .zip(access_plans.await.iter()) - // .map(|(meta, access_plan)| { - // PartitionedFile::new( - // format!("{}/{}", - // table_path.prefix().to_string().trim_end_matches('/'), - // meta.object_meta().location.to_string().trim_start_matches('/') - // ), - // meta.object_meta.size - // ).with_extensions(Arc::new(access_plan.clone())) - // }) - // .collect(); - - let access_plans = match access_plans.await { - Ok(plans) => plans, - Err(e) => { - let _ = env.throw_new( - "java/lang/RuntimeException", - format!("Failed to create access plans during fetch: {}", e), - ); - return 0; - } - }; - - let partitioned_files: Vec = files_metadata - .iter() - .zip(access_plans.iter()) - .map(|(meta, access_plan)| { - PartitionedFile::new( - meta.object_meta().location.to_string(), - meta.object_meta.size, - ) - .with_extensions(Arc::new(access_plan.clone())) - }) - .collect(); - - let file_group = FileGroup::new(partitioned_files); - - let file_source = Arc::new( - ParquetSource::default(), // provide the factory to create parquet reader without re-reading metadata - //.with_parquet_file_reader_factory(Arc::new(reader_factory)), - ); - - let mut projection_index = vec![]; - - for field_name in projections.iter() { - projection_index.push( - parquet_schema - .index_of(field_name) - .expect(format!("Projected field {} not found in Schema", field_name).as_str()), - ); + let manager = match TOKIO_RUNTIME_MANAGER.get() { + Some(m) => m, + None => { + error!("Runtime manager not initialized"); + set_action_listener_error(&mut env, callback, + &DataFusionError::Execution("Runtime manager not initialized".to_string())); + return 0; } + }; - let file_scan_config = FileScanConfigBuilder::new( - ObjectStoreUrl::local_filesystem(), - parquet_schema.clone(), - file_source, - ) - //.with_limit(limit) - .with_projection(Option::from(projection_index.clone())) - .with_file_group(file_group) - .build(); - - let parquet_exec = DataSourceExec::from_data_source(file_scan_config); - - // IMPORTANT: Only get one reference to each pointer - // let liquid_ctx = unsafe { &mut *(context_ptr as *mut SessionContext) }; - // let session_ctx = unsafe { Box::from_raw(context_ptr as *mut SessionContext) }; - let optimized_plan: Arc = parquet_exec.clone(); - - let task_ctx = Arc::new(TaskContext::default()); + let io_runtime = manager.io_runtime.clone(); + let cpu_executor = manager.cpu_executor(); - let stream = match optimized_plan.execute(0, task_ctx) { - Ok(s) => s, + io_runtime.block_on(async { + match query_executor::execute_fetch_phase( + table_path, + files_metadata, + row_ids, + projections, + runtime, + cpu_executor, + ).await { + Ok(stream_ptr) => stream_ptr, Err(e) => { let _ = env.throw_new( "java/lang/RuntimeException", - format!("Failed to execute plan during fetch: {}", e), + format!("Failed to execute fetch phase: {}", e), ); - return 0; - } - }; - - let stream_ptr = Box::into_raw(Box::new(stream)) as jlong; - - stream_ptr - }) -} - -async fn create_access_plans( - row_ids: Vec, - files_metadata: Arc>, -) -> Result, DataFusionError> { - let mut access_plans = Vec::new(); - - // Sort row_ids for better processing - let mut sorted_row_ids: Vec = row_ids.iter().map(|&id| id as i64).collect(); - sorted_row_ids.sort_unstable(); - - // Process each file - for file_meta in files_metadata.iter() { - let row_base = *file_meta.row_base; - let total_row_groups = file_meta.row_group_row_counts.len(); - let mut access_plan = ParquetAccessPlan::new_all(total_row_groups); - - // Calculate file's row range - let file_total_rows: i64 = file_meta.row_group_row_counts.iter().map(|&x| x).sum(); - let file_end_row: i64 = row_base + file_total_rows; - // Filter row IDs that belong to this file - let file_row_ids: Vec = sorted_row_ids - .iter() - .copied() // or .cloned() if it's not Copy - .filter(|&id| id >= row_base && id < file_end_row) - .map(|id| id - row_base) - .collect(); - - if file_row_ids.is_empty() { - // If no rows belong to this file, skip all row groups - for group_id in 0..total_row_groups { - access_plan.skip(group_id); - } - } else { - // Create cumulative row counts for row groups - let mut cumulative_group_rows: Vec = Vec::with_capacity(total_row_groups + 1); - cumulative_group_rows.push(0); - let mut current_sum = 0; - for &count in file_meta.row_group_row_counts.iter() { - current_sum += count; - cumulative_group_rows.push(current_sum); - } - // Group local row IDs by row group - let mut group_map: HashMap> = HashMap::new(); - for &row_id in &file_row_ids { - // Find the appropriate row group using binary search - let group_id = cumulative_group_rows - .windows(2) - .position(|window| row_id >= window[0] as i64 && row_id < window[1] as i64) - .unwrap(); - - // Calculate relative position within the row group - let relative_pos = row_id - cumulative_group_rows[group_id]; - group_map - .entry(group_id) - .or_default() - .insert(relative_pos as i32); - } - - // Process each row group - for group_id in 0..total_row_groups { - let row_group_size = file_meta.row_group_row_counts[group_id] as usize; - - if let Some(group_row_ids) = group_map.get(&group_id) { - let mut relative_row_ids: Vec = - group_row_ids.iter().map(|&x| x as usize).collect(); - relative_row_ids.sort_unstable(); - - if relative_row_ids.is_empty() { - access_plan.skip(group_id); - } else if relative_row_ids.len() == row_group_size { - access_plan.scan(group_id); - } else { - // Create selectors - let mut selectors = Vec::new(); - let mut current_pos = 0; - let mut i = 0; - while i < relative_row_ids.len() { - let mut target_pos = relative_row_ids[i]; - if target_pos > current_pos { - selectors.push(RowSelector::skip(target_pos - current_pos)); - } - let mut select_count = 1; - while i + 1 < relative_row_ids.len() - && relative_row_ids[i + 1] == relative_row_ids[i] + 1 - { - select_count += 1; - i += 1; - target_pos = relative_row_ids[i]; - } - selectors.push(RowSelector::select(select_count)); - current_pos = relative_row_ids[i] + 1; - i += 1; - } - if current_pos < row_group_size { - selectors.push(RowSelector::skip(row_group_size - current_pos)); - } - access_plan.set(group_id, RowGroupAccess::Selection(selectors.into())); - } - } else { - access_plan.skip(group_id); - } + 0 // return 0 } } - - access_plans.push(access_plan); - } - - Ok(access_plans) + }) } #[no_mangle] @@ -880,454 +733,5 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_streamClo _class: JClass, stream: jlong, ) { - let _ = unsafe { Box::from_raw(stream as *mut SendableRecordBatchStream) }; -} - -/// Destroy a CustomCacheManager instance -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_destroyCustomCacheManager( - mut env: JNIEnv, - _class: JClass, - cache_manager_ptr: jlong, -) { - if cache_manager_ptr != 0 { - // Simply destroy the CustomCacheManager by converting back to Box and letting it drop - let _ = unsafe { Box::from_raw(cache_manager_ptr as *mut custom_cache_manager::CustomCacheManager) }; - println!("[CACHE INFO] CustomCacheManager destroyed"); - } -} - -/// Generic cache creation method that handles all cache types -/// This creates a cache and stores it in CustomCacheManager -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createCache( - mut env: JNIEnv, - _class: JClass, - cache_manager_ptr: jlong, - cache_type: JString, - size_limit: jlong, - eviction_type: JString, -) -> jlong { - if cache_manager_ptr == 0 { - let _ = env.throw_new("java/lang/DataFusionException", "CustomCacheManager pointer is null"); - return 0; - } - - // Convert Java strings to Rust strings - let cache_type_str: String = match env.get_string(&cache_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert cache_type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("java/lang/DataFusionException", &msg); - return 0; - } - }; - - let eviction_type_str: String = match env.get_string(&eviction_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert eviction_type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("java/lang/DataFusionException", &msg); - return 0; - } - }; - - println!("[CACHE INFO] Creating cache: type={}, size_limit={}, eviction_type={}", - cache_type_str, size_limit, eviction_type_str); - - let manager = unsafe { &mut *(cache_manager_ptr as *mut custom_cache_manager::CustomCacheManager) }; - - match cache_type_str.as_str() { - cache::CACHE_TYPE_METADATA => { - // Create a new metadata cache with MutexFileMetadataCache wrapper - let inner_cache = DefaultFilesMetadataCache::new(size_limit as usize); - let metadata_cache = Arc::new(cache::MutexFileMetadataCache::new(inner_cache)); - - // Set it in CustomCacheManager - manager.set_file_metadata_cache(metadata_cache); - println!("[CACHE INFO] Successfully created {} cache in CustomCacheManager", cache_type_str); - } - cache::CACHE_TYPE_STATS => { - let msg = "Stats cache not yet implemented"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("java/lang/DataFusionException", msg); - return 0; - } - _ => { - let msg = format!("Invalid cache type: {}", cache_type_str); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("java/lang/DataFusionException", &msg); - return 0; - } - } - - // Return success indicator - 0 -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerAddFiles( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - files: JObjectArray, -) { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - // Check if custom_cache_manager exists - match &runtime_env.custom_cache_manager { - Some(manager) => { - // Parse the array of file paths - let file_paths: Vec = match parse_string_arr(&mut env, files) { - Ok(paths) => paths, - Err(e) => { - let msg = format!("Failed to parse file paths array: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return; - } - }; - - // Use the add_files method directly - match manager.add_files(&file_paths) { - Ok(results) => { - let mut failed_files = Vec::new(); - for (file_path, success) in results { - if !success { - failed_files.push(file_path); - } - } - - if !failed_files.is_empty() { - let msg = format!("Failed to add {} files to cache: {:?}", failed_files.len(), failed_files); - eprintln!("[CACHE ERROR] {}", msg); - } - } - Err(e) => { - let msg = format!("Failed to add files to cache: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - } - } -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerRemoveFiles( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - files: JObjectArray, -) { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - // Parse the array of file paths - let file_paths: Vec = match parse_string_arr(&mut env, files) { - Ok(paths) => paths, - Err(e) => { - let msg = format!("Failed to parse file paths array: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return; - } - }; - - // Check if custom_cache_manager exists - match &runtime_env.custom_cache_manager { - Some(manager) => { - // Use the remove_files method directly - match manager.remove_files(&file_paths) { - Ok(results) => { - let mut failed_files = Vec::new(); - for (file_path, removed) in results { - if !removed { - failed_files.push(file_path); - } - } - - if !failed_files.is_empty() { - let msg = format!("Failed to remove {} files from cache: {:?}", failed_files.len(), failed_files); - eprintln!("[CACHE ERROR] {}", msg); - } - } - Err(e) => { - let msg = format!("Failed to remove files from cache: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - } - } -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClear( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, -) { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - match &runtime_env.custom_cache_manager { - Some(manager) => { - manager.clear_all(); - println!("[CACHE INFO] Successfully cleared all caches"); - } None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - } - } -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerUpdateSizeLimitForCacheType( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - cache_type: JString, - new_size_limit: jlong, -) -> bool { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return false; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - let cache_type: String = match env.get_string(&cache_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert cache type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return false; - } - }; - - match &runtime_env.custom_cache_manager { - Some(manager) => { - match cache_type.as_str() { - cache::CACHE_TYPE_METADATA => { - manager.update_metadata_cache_limit(new_size_limit as usize); - true - } - _ => { - let msg = format!("Unknown cache type: {}", cache_type); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - false - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - return false; - } - } -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetMemoryConsumedForCacheType( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - cache_type: JString, -) -> jlong { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return 0; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - let cache_type: String = match env.get_string(&cache_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert cache type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return 0; - } - }; - match &runtime_env.custom_cache_manager { - Some(manager) => { - match cache_type.as_str() { - cache::CACHE_TYPE_METADATA => { - manager.get_total_memory_consumed() as jlong - } - _ => { - let msg = format!("Unknown cache type: {}", cache_type); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - 0 - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - return 0; - } - } -} - -/// Get total memory consumed by all caches -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetTotalMemoryConsumed( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, -) -> jlong { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return 0; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - match &runtime_env.custom_cache_manager { - Some(manager) => { - let total = manager.get_total_memory_consumed(); - total as jlong - } - None => { - 0 - } - } -} - -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerClearByCacheType( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - cache_type: JString, -) { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - let cache_type: String = match env.get_string(&cache_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert cache type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return; - } - }; - - match &runtime_env.custom_cache_manager { - Some(manager) => { - match manager.clear_cache_type(&cache_type) { - Ok(_) => { - println!("[CACHE INFO] Cache Type: {} cleared", cache_type); - } - Err(e) => { - eprintln!("[CACHE ERROR] {}", e); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &e); - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - } - } -} - - -// Method added for Testing purposes only -#[no_mangle] -pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_cacheManagerGetItemByCacheType( - mut env: JNIEnv, - _class: JClass, - runtime_env_ptr: jlong, - cache_type: JString, - file_path: JString, -) -> bool { - if runtime_env_ptr == 0 { - let _ = env.throw_new("java/lang/NullPointerException", "Cache manager pointer is null"); - return false; - } - - let runtime_env = unsafe { &*(runtime_env_ptr as *const DataFusionRuntime) }; - - let cache_type: String = match env.get_string(&cache_type) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert cache type string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return false; - } - }; - - let file_path: String = match env.get_string(&file_path) { - Ok(s) => s.into(), - Err(e) => { - let msg = format!("Failed to convert file path string: {}", e); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - return false; - } - }; - - match &runtime_env.custom_cache_manager { - Some(manager) => { - match cache_type.as_str() { - cache::CACHE_TYPE_METADATA => { - manager.contains_file(&file_path) - } - _ => { - let msg = format!("Unknown cache type: {}", cache_type); - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", &msg); - false - } - } - } - None => { - let msg = "No custom cache manager available"; - eprintln!("[CACHE ERROR] {}", msg); - let _ = env.throw_new("org/opensearch/datafusion/DataFusionException", msg); - false - } - } + let _ = unsafe { Box::from_raw(stream as *mut RecordBatchStreamAdapter) }; } diff --git a/plugins/engine-datafusion/jni/src/listing_table.rs b/plugins/engine-datafusion/jni/src/listing_table.rs index 68f1547d46c71..83728c2261adb 100644 --- a/plugins/engine-datafusion/jni/src/listing_table.rs +++ b/plugins/engine-datafusion/jni/src/listing_table.rs @@ -1121,7 +1121,7 @@ impl ListingTable { let mut cumulative_row_base = 0; let mut file_row_bases: HashMap = HashMap::new(); - println!("Options: {:?}",self.options.files_metadata); + //println!("Options: {:?}",self.options.files_metadata); // Process files in order to calculate cumulative row bases for group in &file_groups { diff --git a/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs b/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs index 925485ba991d0..a2c01d0164dbd 100644 --- a/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs +++ b/plugins/engine-datafusion/jni/src/partial_agg_optimizer.rs @@ -34,9 +34,9 @@ impl PhysicalOptimizerRule for PartialAggregationOptimizer { impl PartialAggregationOptimizer { pub fn optimize_plan(&self, plan: Arc) -> Result> { - println!("[DEBUG] Before: {}", displayable(plan.as_ref()).indent(true)); +// println!("[DEBUG] Before: {}", displayable(plan.as_ref()).indent(true)); let result = self.optimize_plan_with_alias(plan, None)?; - println!("[DEBUG] After: {}", displayable(result.as_ref()).indent(true)); +// println!("[DEBUG] After: {}", displayable(result.as_ref()).indent(true)); Ok(result) } diff --git a/plugins/engine-datafusion/jni/src/query_executor.rs b/plugins/engine-datafusion/jni/src/query_executor.rs new file mode 100644 index 0000000000000..f124d53b8e68d --- /dev/null +++ b/plugins/engine-datafusion/jni/src/query_executor.rs @@ -0,0 +1,366 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +use std::sync::Arc; +use std::collections::{BTreeSet, HashMap}; +use jni::sys::jlong; +use datafusion::{ + common::DataFusionError, + datasource::file_format::parquet::ParquetFormat, + datasource::listing::ListingTableUrl, + datasource::object_store::ObjectStoreUrl, + datasource::physical_plan::parquet::{ParquetAccessPlan, RowGroupAccess}, + datasource::physical_plan::ParquetSource, + execution::cache::cache_manager::CacheManagerConfig, + execution::cache::cache_unit::DefaultListFilesCache, + execution::cache::CacheAccessor, + execution::context::SessionContext, + execution::runtime_env::RuntimeEnvBuilder, + execution::TaskContext, + parquet::arrow::arrow_reader::RowSelector, + physical_plan::{ExecutionPlan, SendableRecordBatchStream}, + prelude::*, +}; +use datafusion_datasource::PartitionedFile; +use datafusion_datasource::file_groups::FileGroup; +use datafusion_datasource::file_scan_config::FileScanConfigBuilder; +use datafusion_datasource::source::DataSourceExec; +use datafusion_substrait::logical_plan::consumer::from_substrait_plan; +use datafusion_substrait::substrait::proto::{Plan, extensions::simple_extension_declaration::MappingType}; +use object_store::ObjectMeta; +use prost::Message; +use arrow_schema::DataType; +use log::error; + +use crate::listing_table::{ListingOptions, ListingTable, ListingTableConfig}; +use crate::partial_agg_optimizer::PartialAggregationOptimizer; +use crate::executor::DedicatedExecutor; +use crate::cross_rt_stream::CrossRtStream; +use crate::CustomFileMeta; +use crate::DataFusionRuntime; +use crate::row_id_optimizer::ProjectRowIdOptimizer; + +pub async fn execute_query_with_cross_rt_stream( + table_path: ListingTableUrl, + files_meta: Arc>, + table_name: String, + plan_bytes_vec: Vec, + runtime: &DataFusionRuntime, + cpu_executor: DedicatedExecutor, +) -> Result { + let object_meta: Arc> = Arc::new( + files_meta + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect(), + ); + + let list_file_cache = Arc::new(DefaultListFilesCache::default()); + list_file_cache.put(table_path.prefix(), object_meta); + + let runtimeEnv = &runtime.runtime_env; + + let runtime_env = match RuntimeEnvBuilder::from_runtime_env(runtimeEnv) + .with_cache_manager( + CacheManagerConfig::default() + .with_list_files_cache(Some(list_file_cache.clone())) + .with_file_metadata_cache(Some(runtimeEnv.cache_manager.get_file_metadata_cache())) + .with_files_statistics_cache(runtimeEnv.cache_manager.get_file_statistic_cache()), + ) + .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB + .build() { + Ok(env) => env, + Err(e) => { + error!("Failed to build runtime env: {}", e); + return Err(e); + } + }; + + let mut config = SessionConfig::new(); + config.options_mut().execution.parquet.pushdown_filters = false; + config.options_mut().execution.target_partitions = 1; + config.options_mut().execution.batch_size = 1024; + + let state = datafusion::execution::SessionStateBuilder::new() + .with_config(config) + .with_runtime_env(Arc::from(runtime_env)) + .with_default_features() + //.with_physical_optimizer_rule(Arc::new(ProjectRowIdOptimizer)) // TODO : uncomment this after fix + .with_physical_optimizer_rule(Arc::new(PartialAggregationOptimizer)) + .build(); + + let ctx = SessionContext::new_with_state(state); + + // Register table + let file_format = ParquetFormat::new(); + let listing_options = ListingOptions::new(Arc::new(file_format)) + .with_file_extension(".parquet") + .with_files_metadata(files_meta) + .with_table_partition_cols(vec![("row_base".to_string(), DataType::Int64)]); + + let resolved_schema = match listing_options + .infer_schema(&ctx.state(), &table_path) + .await { + Ok(schema) => schema, + Err(e) => { + error!("Failed to infer schema: {}", e); + return Err(e); + } + }; + + let table_config = ListingTableConfig::new(table_path.clone()) + .with_listing_options(listing_options) + .with_schema(resolved_schema); + + let provider = match ListingTable::try_new(table_config) { + Ok(table) => Arc::new(table), + Err(e) => { + error!("Failed to create listing table: {}", e); + return Err(e); + } + }; + + if let Err(e) = ctx.register_table(&table_name, provider) { + error!("Failed to register table: {}", e); + return Err(e); + } + + // Decode substrait + let substrait_plan = match Plan::decode(plan_bytes_vec.as_slice()) { + Ok(plan) => plan, + Err(e) => { + error!("Failed to decode Substrait plan: {}", e); + return Err(DataFusionError::Execution(format!("Failed to decode Substrait: {}", e))); + } + }; + + let mut modified_plan = substrait_plan.clone(); + for ext in modified_plan.extensions.iter_mut() { + if let Some(mapping_type) = &mut ext.mapping_type { + if let MappingType::ExtensionFunction(func) = mapping_type { + if func.name == "approx_count_distinct:any" { + func.name = "approx_distinct:any".to_string(); + } + } + } + } + + let logical_plan = match from_substrait_plan(&ctx.state(), &modified_plan).await { + Ok(plan) => plan, + Err(e) => { + error!("Failed to convert Substrait plan: {}", e); + return Err(e); + } + }; + + let dataframe = match ctx.execute_logical_plan(logical_plan).await { + Ok(df) => df, + Err(e) => { + error!("Failed to execute logical plan: {}", e); + return Err(e); + } + }; + + let df_stream = match dataframe.execute_stream().await { + Ok(stream) => stream, + Err(e) => { + error!("Failed to create execution stream: {}", e); + return Err(e); + } + }; + + Ok(get_cross_rt_stream(cpu_executor, df_stream)) +} + +pub fn get_cross_rt_stream(cpu_executor: DedicatedExecutor, df_stream: SendableRecordBatchStream) -> jlong { + let cross_rt_stream = CrossRtStream::new_with_df_error_stream( + df_stream, + cpu_executor, + ); + + let wrapped_stream = datafusion::physical_plan::stream::RecordBatchStreamAdapter::new( + cross_rt_stream.schema(), + cross_rt_stream, + ); + + Box::into_raw(Box::new(wrapped_stream)) as jlong +} + +pub async fn execute_fetch_phase( + table_path: ListingTableUrl, + files_metadata: Arc>, + row_ids: Vec, + projections: Vec, + runtime: &DataFusionRuntime, + cpu_executor: DedicatedExecutor, +) -> Result { + let access_plans = create_access_plans(row_ids, files_metadata.clone()).await?; + + let object_meta: Arc> = Arc::new( + files_metadata + .iter() + .map(|metadata| (*metadata.object_meta).clone()) + .collect(), + ); + + let list_file_cache = Arc::new(DefaultListFilesCache::default()); + list_file_cache.put(table_path.prefix(), object_meta); + + let runtime_env = RuntimeEnvBuilder::new() + .with_cache_manager( + CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)) + .with_file_metadata_cache(Some(runtime.runtime_env.cache_manager.get_file_metadata_cache())) + .with_files_statistics_cache(runtime.runtime_env.cache_manager.get_file_statistic_cache()), + ) + .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB + .build()?; + let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); + + let file_format = ParquetFormat::new(); + let listing_options = ListingOptions::new(Arc::new(file_format)).with_file_extension(".parquet"); + + let parquet_schema = listing_options.infer_schema(&ctx.state(), &table_path).await?; + + let partitioned_files: Vec = files_metadata + .iter() + .zip(access_plans.iter()) + .map(|(meta, access_plan)| { + PartitionedFile::new( + meta.object_meta().location.to_string(), + meta.object_meta.size, + ) + .with_extensions(Arc::new(access_plan.clone())) + }) + .collect(); + + let file_group = FileGroup::new(partitioned_files); + let file_source = Arc::new(ParquetSource::default()); + + let mut projection_index = vec![]; + for field_name in projections.iter() { + projection_index.push( + parquet_schema + .index_of(field_name) + .map_err(|_| DataFusionError::Execution(format!("Projected field {} not found in Schema", field_name)))?, + ); + } + + let file_scan_config = FileScanConfigBuilder::new( + ObjectStoreUrl::local_filesystem(), + parquet_schema.clone(), + file_source, + ) + .with_projection(Option::from(projection_index.clone())) + .with_file_group(file_group) + .build(); + + let parquet_exec = DataSourceExec::from_data_source(file_scan_config); + let optimized_plan: Arc = parquet_exec.clone(); + let task_ctx = Arc::new(TaskContext::default()); + let stream = optimized_plan.execute(0, task_ctx)?; + + Ok(get_cross_rt_stream(cpu_executor, stream)) +} + +async fn create_access_plans( + row_ids: Vec, + files_metadata: Arc>, +) -> Result, DataFusionError> { + let mut access_plans = Vec::new(); + let mut sorted_row_ids: Vec = row_ids.iter().map(|&id| id as i64).collect(); + sorted_row_ids.sort_unstable(); + + for file_meta in files_metadata.iter() { + let row_base = *file_meta.row_base; + let total_row_groups = file_meta.row_group_row_counts.len(); + let mut access_plan = ParquetAccessPlan::new_all(total_row_groups); + + let file_total_rows: i64 = file_meta.row_group_row_counts.iter().map(|&x| x).sum(); + let file_end_row: i64 = row_base + file_total_rows; + let file_row_ids: Vec = sorted_row_ids + .iter() + .copied() + .filter(|&id| id >= row_base && id < file_end_row) + .map(|id| id - row_base) + .collect(); + + if file_row_ids.is_empty() { + for group_id in 0..total_row_groups { + access_plan.skip(group_id); + } + } else { + let mut cumulative_group_rows: Vec = Vec::with_capacity(total_row_groups + 1); + cumulative_group_rows.push(0); + let mut current_sum = 0; + for &count in file_meta.row_group_row_counts.iter() { + current_sum += count; + cumulative_group_rows.push(current_sum); + } + + let mut group_map: HashMap> = HashMap::new(); + for &row_id in &file_row_ids { + let group_id = cumulative_group_rows + .windows(2) + .position(|window| row_id >= window[0] as i64 && row_id < window[1] as i64) + .unwrap(); + + let relative_pos = row_id - cumulative_group_rows[group_id]; + group_map + .entry(group_id) + .or_default() + .insert(relative_pos as i32); + } + + for group_id in 0..total_row_groups { + let row_group_size = file_meta.row_group_row_counts[group_id] as usize; + + if let Some(group_row_ids) = group_map.get(&group_id) { + let mut relative_row_ids: Vec = + group_row_ids.iter().map(|&x| x as usize).collect(); + relative_row_ids.sort_unstable(); + + if relative_row_ids.is_empty() { + access_plan.skip(group_id); + } else if relative_row_ids.len() == row_group_size { + access_plan.scan(group_id); + } else { + let mut selectors = Vec::new(); + let mut current_pos = 0; + let mut i = 0; + while i < relative_row_ids.len() { + let target_pos = relative_row_ids[i]; + if target_pos > current_pos { + selectors.push(RowSelector::skip(target_pos - current_pos)); + } + let mut select_count = 1; + while i + 1 < relative_row_ids.len() + && relative_row_ids[i + 1] == relative_row_ids[i] + 1 + { + select_count += 1; + i += 1; + } + selectors.push(RowSelector::select(select_count)); + current_pos = relative_row_ids[i] + 1; + i += 1; + } + if current_pos < row_group_size { + selectors.push(RowSelector::skip(row_group_size - current_pos)); + } + access_plan.set(group_id, RowGroupAccess::Selection(selectors.into())); + } + } else { + access_plan.skip(group_id); + } + } + } + + access_plans.push(access_plan); + } + + Ok(access_plans) +} diff --git a/plugins/engine-datafusion/jni/src/runtime_manager.rs b/plugins/engine-datafusion/jni/src/runtime_manager.rs new file mode 100644 index 0000000000000..216b6da80c0c7 --- /dev/null +++ b/plugins/engine-datafusion/jni/src/runtime_manager.rs @@ -0,0 +1,161 @@ +use crate::executor::DedicatedExecutor; +use crate::io::register_io_runtime; +use log::info; +use std::sync::Arc; +use datafusion::error::DataFusionError; +use tokio::runtime::{Builder, Runtime}; + +#[derive(Debug, Clone)] +pub struct RuntimeConfig { + pub cpu_threads: usize, + pub io_threads: usize, + pub cpu_thread_multiplier: Option, + pub io_thread_multiplier: Option, +} + +impl Default for RuntimeConfig { + fn default() -> Self { + let cpu_count = num_cpus::get(); + Self { + cpu_threads: cpu_count, + io_threads: cpu_count, + cpu_thread_multiplier: None, + io_thread_multiplier: None, + } + } +} + +impl RuntimeConfig { + pub fn new() -> Self { + Self::default() + } + + pub fn with_cpu_threads(mut self, threads: usize) -> Self { + self.cpu_threads = threads; + self + } + + pub fn with_io_threads(mut self, threads: usize) -> Self { + self.io_threads = threads; + self + } + + /// Use multiplier for CPU threads (e.g., 1.5x for CPU-bound work) + pub fn with_cpu_multiplier(mut self, multiplier: f64) -> Self { + self.cpu_thread_multiplier = Some(multiplier); + self + } + + /// Use multiplier for IO threads (e.g., 0.5x for IO-bound work) + pub fn with_io_multiplier(mut self, multiplier: f64) -> Self { + self.io_thread_multiplier = Some(multiplier); + self + } + + fn effective_cpu_threads(&self) -> usize { + if let Some(multiplier) = self.cpu_thread_multiplier { + ((self.cpu_threads as f64 * multiplier) + 1.0) as usize + } else { + self.cpu_threads + } + } + + fn effective_io_threads(&self) -> usize { + if let Some(multiplier) = self.io_thread_multiplier { + ((self.io_threads as f64 * multiplier) + 1.0) as usize + } else { + self.io_threads + } + } +} + +pub struct RuntimeManager { + pub io_runtime: Arc, + pub(crate) cpu_executor: DedicatedExecutor, +} + +impl RuntimeManager { + pub fn new(cpu_threads: usize) -> Self { + Self::with_config(RuntimeConfig::new() + .with_cpu_threads(cpu_threads) + .with_io_threads(cpu_threads) + .with_cpu_multiplier(1.0) + .with_io_multiplier(2.0) + ) + } + + pub fn with_config(config: RuntimeConfig) -> Self { + println!("Creating RuntimeManager with config: {:?}", config); + + // IO Runtime + let io_runtime = Arc::new( + Builder::new_multi_thread() + .worker_threads(config.effective_io_threads()) + .thread_name("datafusion-io") + .enable_all() + .build() + .expect("Failed to create IO runtime"), + ); + + // Register IO runtime for current thread + register_io_runtime(Some(io_runtime.handle().clone())); + + // CPU Executor with its own runtime + let mut cpu_runtime_builder = Builder::new_multi_thread(); + let io_handle = io_runtime.handle().clone(); + + cpu_runtime_builder + .worker_threads(config.effective_cpu_threads()) + .thread_name("datafusion-cpu") + .enable_time() + .on_thread_start(move || { + // Register IO runtime for each CPU thread + register_io_runtime(Some(io_handle.clone())); + }); + + let cpu_executor = DedicatedExecutor::new("datafusion-cpu", cpu_runtime_builder); + + Self { + io_runtime, + cpu_executor, + } + } + + pub fn cpu_executor(&self) -> DedicatedExecutor { + self.cpu_executor.clone() + } + + pub async fn run(&self, fut: Fut) -> Result + where + Fut: std::future::Future> + Send + 'static, + T: Send + 'static, + { + Self::run_inner(self.cpu_executor.clone(), fut).await + } + + async fn run_inner(exec: DedicatedExecutor, fut: Fut) -> Result + where + Fut: std::future::Future> + Send + 'static, + T: Send + 'static, + { + exec.spawn(fut).await.unwrap_or_else(|e| { + Err(DataFusionError::Context( + format!("Join Error: {:?}", e), + Box::new(DataFusionError::Internal("Task execution failed".to_string())), + )) + }) + } + + pub fn shutdown(&self) { + info!("Shutting down RuntimeManager"); + self.cpu_executor.join_blocking(); + // TODO: io_runtime spawned threads seem to have issue and are leaking + + } +} + +impl Drop for RuntimeManager { + fn drop(&mut self) { + self.shutdown(); + } +} diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index c79d9deb76de2..25e073fde0d7c 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -6,7 +6,7 @@ use anyhow::Result; use chrono::{DateTime, Utc}; use datafusion::arrow::array::RecordBatch; use datafusion::execution::cache::cache_manager::FileMetadata; -use jni::objects::{JObject, JObjectArray, JString}; +use jni::objects::{GlobalRef, JObject, JObjectArray, JString}; use jni::sys::jlong; use jni::JNIEnv; use object_store::{path::Path as ObjectPath, ObjectMeta, ObjectStore}; @@ -62,45 +62,6 @@ pub fn set_error_message(env: &mut JNIEnv, callback: JObject, result }; } -/// Call an ObjectResultCallback to return either a pointer to a newly created object or an error message -pub fn set_object_result( - env: &mut JNIEnv, - callback: JObject, - address: Result<*mut T, Err>, -) { - match address { - Ok(address) => set_object_result_ok(env, callback, address), - Err(err) => set_object_result_error(env, callback, &err), - }; -} - -/// Set success result by calling an ObjectResultCallback -pub fn set_object_result_ok(env: &mut JNIEnv, callback: JObject, address: *mut T) { - let err_message = JObject::null(); - env.call_method( - callback, - "callback", - "(Ljava/lang/String;J)V", - &[(&err_message).into(), (address as jlong).into()], - ) - .expect("Failed to call object result callback with address"); -} - -/// Set error result by calling an ObjectResultCallback -pub fn set_object_result_error(env: &mut JNIEnv, callback: JObject, error: &T) { - let err_message = env - .new_string(error.to_string()) - .expect("Couldn't create java string for error message"); - let address = -1 as jlong; - env.call_method( - callback, - "callback", - "(Ljava/lang/String;J)V", - &[(&err_message).into(), address.into()], - ) - .expect("Failed to call object result callback with error"); -} - /// Parse a string map from JNI arrays pub fn parse_string_map( env: &mut JNIEnv, @@ -267,4 +228,68 @@ pub async fn construct_file_metadata( _ => Err(format!("Unsupported data format: {}", data_format).into()) } } +/// Set success result by calling an ActionListener +pub fn set_action_listener_ok(env: &mut JNIEnv, listener: JObject, value: jlong) { + let long_obj = env.new_object("java/lang/Long", "(J)V", &[value.into()]) + .expect("Failed to create Long object"); + + env.call_method( + listener, + "onResponse", + "(Ljava/lang/Object;)V", + &[(&long_obj).into()], + ) + .expect("Failed to call ActionListener onResponse"); +} + +/// Set error result by calling an ActionListener +pub fn set_action_listener_error(env: &mut JNIEnv, listener: JObject, error: &T) { + let error_msg = env.new_string(error.to_string()) + .expect("Failed to create error string"); + let exception = env.new_object( + "java/lang/RuntimeException", + "(Ljava/lang/String;)V", + &[(&error_msg).into()], + ).expect("Failed to create exception"); + + env.call_method( + listener, + "onFailure", + "(Ljava/lang/Exception;)V", + &[(&exception).into()], + ) + .expect("Failed to call ActionListener onFailure"); +} +/// Set success result by calling an ActionListener with GlobalRef +pub fn set_action_listener_ok_global(env: &mut JNIEnv, listener: &GlobalRef, value: jlong) { + let long_obj = env.new_object("java/lang/Long", "(J)V", &[value.into()]) + .expect("Failed to create Long object"); + + env.call_method( + listener.as_obj(), + "onResponse", + "(Ljava/lang/Object;)V", + &[(&long_obj).into()], + ) + .expect("Failed to call ActionListener onResponse"); +} + +/// Set error result by calling an ActionListener with GlobalRef +pub fn set_action_listener_error_global(env: &mut JNIEnv, listener: &GlobalRef, error: &T) { + let error_msg = env.new_string(error.to_string()) + .expect("Failed to create error string"); + let exception = env.new_object( + "java/lang/RuntimeException", + "(Ljava/lang/String;)V", + &[(&error_msg).into()], + ).expect("Failed to create exception"); + + env.call_method( + listener.as_obj(), + "onFailure", + "(Ljava/lang/Exception;)V", + &[(&exception).into()], + ) + .expect("Failed to call ActionListener onFailure"); +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 031d95f86d889..0d1b5691a065a 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -25,6 +25,7 @@ import org.opensearch.common.lucene.search.TopDocsAndMaxScore; import org.opensearch.common.util.BigArrays; import org.opensearch.common.xcontent.XContentFactory; +import org.opensearch.core.action.ActionListener; import org.opensearch.core.common.bytes.BytesArray; import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.xcontent.XContentBuilder; @@ -56,6 +57,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.Executor; import java.util.function.Function; import static java.util.Collections.emptyMap; @@ -222,10 +224,10 @@ public void collect(RecordBatchStream value) { collector.collect(stream); } - logger.info("Final Results:"); - for (Map.Entry entry : finalRes.entrySet()) { - logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); - } +// logger.info("Final Results:"); +// for (Map.Entry entry : finalRes.entrySet()) { +// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); +// } // logger.info("Memory Pool Allocation Post Query ShardID:{}", context.getQueryShardContext().getShardId()); @@ -257,6 +259,108 @@ public void collect(RecordBatchStream value) { return finalRes; } + @Override + public void executeQueryPhaseAsync(DatafusionContext context, Executor executor, ActionListener> listener) { + try { + DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); + datafusionSearcher.searchAsync(context.getDatafusionQuery(), datafusionService.getRuntimePointer()).whenCompleteAsync((streamPointer, error)-> { + Map finalRes = new HashMap<>(); + List rowIdResult = new ArrayList<>(); + if(streamPointer == null) { + throw new RuntimeException(error); + } + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String fieldName = field.getName(); + FieldVector fieldVector = root.getVector(fieldName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + if (fieldName.equals(CompositeDataFormatWriter.ROW_ID)) { + FieldVector rowIdVector = root.getVector(fieldName); + for(int i=0; i entry : finalRes.entrySet()) { +// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); +// } + + } catch (Exception exception) { + logger.error("Failed to execute Substrait query plan", exception); + throw new RuntimeException(exception); + } + //return finalRes; + } + + private void loadNextBatch( + RecordBatchStream stream, + Executor executor, + SearchResultsCollector collector, + Map finalRes, + RootAllocator allocator, + ActionListener> listener, + DatafusionContext context, + List rowIdResult + ) { + stream.loadNextBatch().whenCompleteAsync((hasMore, error) -> { + if (error != null) { + cleanup(stream, allocator); + listener.onFailure(new RuntimeException("Error loading batch", error)); + return; + } + if (hasMore) { + try { + collector.collect(stream); + // Recursively load next batch - TODO : anyway to Change this to iteration ? + loadNextBatch(stream, executor, collector, finalRes, allocator, listener, context, rowIdResult); + } catch (Exception e) { + cleanup(stream, allocator); + listener.onFailure(e); + } + } else { + cleanup(stream, allocator); +// logger.info("Final Results:"); +// for (Map.Entry entry : finalRes.entrySet()) { +// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); +// } + context.queryResult().topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(rowIdResult.size(), + TotalHits.Relation.EQUAL_TO), rowIdResult.stream().map(d-> new ScoreDoc(d.intValue(), + Float.NaN, context.indexShard().shardId().getId())).toList().toArray(ScoreDoc[]::new)) , Float.NaN), new DocValueFormat[0]); + listener.onResponse(finalRes); + } + }, executor); + } + private void cleanup(RecordBatchStream stream, RootAllocator allocator) { + try { + if (stream != null) stream.close(); + if (allocator != null) allocator.close(); + } catch (Exception e) { + logger.error("Cleanup error", e); + } + } + /** * Executes fetch phase, DataFusion query should contain projections for fields diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java index 6d0486d213a55..399c07d82c241 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/ErrorUtil.java @@ -14,7 +14,7 @@ public class ErrorUtil { private ErrorUtil() {} - static boolean containsError(String errString) { + public static boolean containsError(String errString) { return errString != null && !errString.isEmpty(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index 7b64227c00eda..41ae775ced526 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -17,6 +17,7 @@ import org.apache.arrow.vector.types.pojo.ArrowType; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.core.action.ActionListener; import org.opensearch.datafusion.jni.NativeBridge; import java.util.concurrent.CompletableFuture; @@ -60,10 +61,9 @@ public VectorSchemaRoot getVectorSchemaRoot() { private Schema getSchema() { // Native method is not async, but use a future to store the result for convenience CompletableFuture result = new CompletableFuture<>(); - getSchema(streamPointer, (errString, arrowSchemaAddress) -> { - if (ErrorUtil.containsError(errString)) { - result.completeExceptionally(new RuntimeException(errString)); - } else { + getSchema(streamPointer, new ActionListener() { + @Override + public void onResponse(Long arrowSchemaAddress) { try { ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); @@ -72,6 +72,11 @@ private Schema getSchema() { result.completeExceptionally(e); } } + + @Override + public void onFailure(Exception e) { + result.completeExceptionally(e); + } }); return result.join(); } @@ -100,21 +105,27 @@ public CompletableFuture loadNextBatch() { ensureInitialized(); long runtimePointer = this.runtimePtr; CompletableFuture result = new CompletableFuture<>(); - next(runtimePointer, streamPointer, (errString, arrowArrayAddress) -> { - if (ErrorUtil.containsError(errString)) { - result.completeExceptionally(new RuntimeException(errString)); - } else if (arrowArrayAddress == 0) { - // Reached end of stream - result.complete(false); - } else { - try { - ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); - Data.importIntoVectorSchemaRoot(allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); - result.complete(true); - } catch (Exception e) { - result.completeExceptionally(e); + next(runtimePointer, streamPointer, new ActionListener() { + @Override + public void onResponse(Long arrowArrayAddress) { + if (arrowArrayAddress == 0) { + // Reached end of stream + result.complete(false); + } else { + try { + ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); + Data.importIntoVectorSchemaRoot(allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); + result.complete(true); + } catch (Exception e) { + result.completeExceptionally(e); + } } } + + @Override + public void onFailure(Exception e) { + result.completeExceptionally(e); + } }); return result; } @@ -131,12 +142,12 @@ public void close() throws Exception { } } - private static void next(long runtime, long pointer, ObjectResultCallback callback) { - NativeBridge.streamNext(runtime, pointer, callback); + private static void next(long runtime, long pointer, ActionListener listener) { + NativeBridge.streamNext(runtime, pointer, listener); } - private static void getSchema(long pointer, ObjectResultCallback callback) { - NativeBridge.streamGetSchema(pointer, callback); + private static void getSchema(long pointer, ActionListener listener) { + NativeBridge.streamGetSchema(pointer, listener); } private static void closeStream(long pointer) { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java index 636c4853e2c4f..55dc6a329dc2b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/core/DataFusionRuntimeEnv.java @@ -13,6 +13,7 @@ import org.opensearch.core.common.unit.ByteSizeUnit; import org.opensearch.core.common.unit.ByteSizeValue; +import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.datafusion.jni.handle.GlobalRuntimeHandle; import org.opensearch.datafusion.search.cache.CacheManager; import org.opensearch.datafusion.search.cache.CacheUtils; @@ -32,7 +33,7 @@ public final class DataFusionRuntimeEnv implements AutoCloseable { */ public static final Setting MEMORY_POOL_CONFIGURATION_DATAFUSION = Setting.byteSizeSetting( "datafusion.search.memory_pool", - new ByteSizeValue(2, ByteSizeUnit.GB), + new ByteSizeValue(10, ByteSizeUnit.GB), Setting.Property.Final, Setting.Property.NodeScope ); @@ -43,7 +44,10 @@ public final class DataFusionRuntimeEnv implements AutoCloseable { public DataFusionRuntimeEnv(ClusterService clusterService) { long memoryLimit = clusterService.getClusterSettings().get(MEMORY_POOL_CONFIGURATION_DATAFUSION).getBytes(); long cacheManagerConfigPtr = CacheUtils.createCacheConfig(clusterService.getClusterSettings()); + NativeBridge.initTokioRuntimeManager(Runtime.getRuntime().availableProcessors()); + NativeBridge.startTokioRuntimeMonitoring(); // TODO : do we need this control in java ? this.runtimeHandle = new GlobalRuntimeHandle(memoryLimit, cacheManagerConfigPtr); + System.out.println("Runtime : " + this.runtimeHandle); this.cacheManager = new CacheManager(this.runtimeHandle); } @@ -62,5 +66,6 @@ public CacheManager getCacheManager() { @Override public void close() { runtimeHandle.close(); + NativeBridge.shutdownTokioRuntimeManager(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java index 0dae239969df9..0bc1054c92029 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/NativeBridge.java @@ -8,6 +8,7 @@ package org.opensearch.datafusion.jni; +import org.opensearch.core.action.ActionListener; import org.opensearch.datafusion.ObjectResultCallback; /** @@ -26,13 +27,20 @@ private NativeBridge() {} public static native long createGlobalRuntime(long limit, long cacheManagerPtr); public static native void closeGlobalRuntime(long ptr); + // Tokio runtime + public static native long startTokioRuntimeMonitoring(); + // Initialize tokio runtime manager once on startup + public static native void initTokioRuntimeManager(int cpuThreads); + // Shutdown tokio runtime manager on datafusion service + public static native void shutdownTokioRuntimeManager(); + // Query execution - public static native long executeQueryPhase(long readerPtr, String tableName, byte[] plan, long runtimePtr); + public static native void executeQueryPhaseAsync(long readerPtr, String tableName, byte[] plan, long runtimePtr, ActionListener listener); public static native long executeFetchPhase(long readerPtr, long[] rowIds, String[] projections, long runtimePtr); // Stream operations - public static native void streamNext(long runtime, long stream, ObjectResultCallback callback); - public static native void streamGetSchema(long stream, ObjectResultCallback callback); + public static native void streamNext(long runtime, long stream, ActionListener listener); + public static native void streamGetSchema(long stream, ActionListener listener); public static native void streamClose(long stream); // Cache management diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java index ce68b5d5f4f49..3691f663a649b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionSearcher.java @@ -9,6 +9,8 @@ package org.opensearch.datafusion.search; import org.apache.lucene.store.AlreadyClosedException; +import org.opensearch.core.action.ActionListener; +import org.opensearch.datafusion.ErrorUtil; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.index.engine.EngineSearcher; import org.opensearch.vectorized.execution.search.spi.RecordBatchStream; @@ -17,6 +19,7 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.util.Objects; +import java.util.concurrent.CompletableFuture; public class DatafusionSearcher implements EngineSearcher { private final String source; @@ -46,7 +49,28 @@ public long search(DatafusionQuery datafusionQuery, Long runtimePtr) { return NativeBridge.executeFetchPhase(reader.getReaderPtr(), row_ids, projections, runtimePtr); } - return NativeBridge.executeQueryPhase(reader.getReaderPtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), runtimePtr); + throw new RuntimeException("Can be only called for fetch phase"); + } + + @Override + public CompletableFuture searchAsync(DatafusionQuery datafusionQuery, Long runtimePtr) { + CompletableFuture result = new CompletableFuture<>(); + NativeBridge.executeQueryPhaseAsync(reader.getReaderPtr(), datafusionQuery.getIndexName(), datafusionQuery.getSubstraitBytes(), runtimePtr, new ActionListener() { + @Override + public void onResponse(Long streamPointer) { + if (streamPointer == 0) { + result.complete(0L); + } else { + result.complete(streamPointer); + } + } + + @Override + public void onFailure(Exception e) { + result.completeExceptionally(e); + } + }); + return result; } public DatafusionReader getReader() { diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java index 3ef3185e20d11..ab0a8f97cd5a3 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheManager.java @@ -29,7 +29,6 @@ public class CacheManager { public CacheManager(GlobalRuntimeHandle runtimeHandle) { this.globalRuntimeHandle = runtimeHandle; - } public void addFilesToCacheManager(List files){ diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java index d325cbfeb2b2a..94fc4ec0d16bf 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheSettings.java @@ -19,7 +19,7 @@ public class CacheSettings { public static final String METADATA_CACHE_SIZE_LIMIT_KEY = "datafusion.metadata.cache.size.limit"; public static final Setting METADATA_CACHE_SIZE_LIMIT = - new Setting<>(METADATA_CACHE_SIZE_LIMIT_KEY, "50mb", + new Setting<>(METADATA_CACHE_SIZE_LIMIT_KEY, "250mb", (s) -> ByteSizeValue.parseBytesSizeValue(s, new ByteSizeValue(1000, ByteSizeUnit.KB),METADATA_CACHE_SIZE_LIMIT_KEY), Setting.Property.NodeScope, Setting.Property.Dynamic); public static final Setting METADATA_CACHE_EVICTION_TYPE = new Setting( diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index 775933ad2eb44..80a2d38cb759c 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -15,7 +15,7 @@ import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.VectorSchemaRoot; import org.apache.arrow.vector.types.pojo.Field; -import org.junit.After; +import org.junit.AfterClass; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -46,7 +46,7 @@ import static org.opensearch.index.engine.Engine.SearcherScope.INTERNAL; public class DataFusionReaderManagerTests extends OpenSearchTestCase { - private DataFusionService service; + private static DataFusionService service; Supplier noOpFileDeleterSupplier; @Mock @@ -81,10 +81,11 @@ public void setup() { }; } - @After - public void cleanUp(){ + @AfterClass + public static void cleanUp(){ service.doStop(); } + // ========== Test Cases ========== /** Test that a reader is created with correct file count and cache pointer after initial refresh */ @@ -250,12 +251,6 @@ public void testDecRefAfterCloseThrowsException() throws IOException { assertThrows(IllegalStateException.class, reader::decRef); } -// R1 -> f1,f2,f3 - // S1 -> f1, f2, f3 - // S2 -> f1, f2, f3 - //R2 -> f2,f3 - //S3 -> f2,f3 - public void testReaderClosesAfterSearchRelease() throws IOException { Map finalRes = new HashMap<>(); DatafusionSearcher datafusionSearcher = null; @@ -327,7 +322,7 @@ public void testReaderClosesAfterSearchRelease() throws IOException { } /** Test end-to-end search functionality with substrait plan execution and result verification */ - public void testSearch() throws IOException { + public void testSearch() throws Exception { ShardPath shardPath = createShardPathWithResourceFiles("index-7", 0, "parquet_file_generation_0.parquet"); DatafusionEngine engine = new DatafusionEngine(DataFormat.PARQUET, Collections.emptyList(), service, shardPath); @@ -459,37 +454,41 @@ private ShardPath createShardPathWithResourceFiles(String indexName, int shardId return shardPath; } - private void verifySearchResults(DatafusionSearcher searcher, DatafusionQuery datafusionQuery, Map expectedResults) throws IOException { + private void verifySearchResults(DatafusionSearcher searcher, DatafusionQuery datafusionQuery, Map expectedResults) throws Exception { Map finalRes = new HashMap<>(); - Long streamPointer = searcher.search(datafusionQuery, service.getRuntimePointer()); - - RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer(), allocator); - - SearchResultsCollector collector = new SearchResultsCollector() { - @Override - public void collect(RecordBatchStream value) { - VectorSchemaRoot root = value.getVectorSchemaRoot(); - for (Field field : root.getSchema().getFields()) { - String filedName = field.getName(); - FieldVector fieldVector = root.getVector(filedName); - Object[] fieldValues = new Object[fieldVector.getValueCount()]; - for (int i = 0; i < fieldVector.getValueCount(); i++) { - fieldValues[i] = fieldVector.getObject(i); + searcher.searchAsync(datafusionQuery, service.getRuntimePointer()).whenComplete((streamPointer, error)-> { + RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer(), allocator); + + SearchResultsCollector collector = new SearchResultsCollector() { + @Override + public void collect(RecordBatchStream value) { + VectorSchemaRoot root = value.getVectorSchemaRoot(); + for (Field field : root.getSchema().getFields()) { + String filedName = field.getName(); + FieldVector fieldVector = root.getVector(filedName); + Object[] fieldValues = new Object[fieldVector.getValueCount()]; + for (int i = 0; i < fieldVector.getValueCount(); i++) { + fieldValues[i] = fieldVector.getObject(i); + } + finalRes.put(filedName, fieldValues); } - finalRes.put(filedName, fieldValues); } - } - }; + }; - while (stream.loadNextBatch().join()) { - collector.collect(stream); - } + while (stream.loadNextBatch().join()) { + try { + collector.collect(stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + } - for (Map.Entry entry : finalRes.entrySet()) { - logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); - assertEquals(Long.valueOf(entry.getValue()[0].toString()), expectedResults.get(entry.getKey())); - } + for (Map.Entry entry : finalRes.entrySet()) { + logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); + assertEquals(Long.valueOf(entry.getValue()[0].toString()), expectedResults.get(entry.getKey())); + } + }).join(); } private byte[] readSubstraitPlanFromResources(String fileName) throws IOException { diff --git a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java index b59c3f3ddb70a..f366ebe218c86 100644 --- a/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java +++ b/server/src/main/java/org/opensearch/action/search/SearchPhaseController.java @@ -533,9 +533,9 @@ ReducedQueryPhase reducedQueryPhase( reducedCompletionSuggestions = reducedSuggest.filter(CompletionSuggestion.class); } final InternalAggregations aggregations = reduceAggs(aggReduceContextBuilder, performFinalReduce, bufferedAggs); - if (aggregations != null) { - LOGGER.info("Final reduced aggregations: {}", aggregations.asMap()); - } +// if (aggregations != null) { +// LOGGER.info("Final reduced aggregations: {}", aggregations.asMap()); +// } final SearchProfileShardResults shardResults = profileResults.isEmpty() ? null : new SearchProfileShardResults(profileResults); final SortedTopDocs sortedTopDocs = sortDocs(isScrollRequest, bufferedTopDocs, from, size, reducedCompletionSuggestions); final TotalHits totalHits = topDocsStats.getTotalHits(); diff --git a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java index b47ae243788f7..e9e082b93859d 100644 --- a/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java +++ b/server/src/main/java/org/opensearch/action/search/TransportSearchAction.java @@ -324,7 +324,7 @@ protected void doExecute(Task task, SearchRequest searchRequest, ActionListener< ); } executeRequest(task, searchRequest, this::searchAsyncAction, listener); - logger.info("Search request received is {}", searchRequest.source()); + //logger.info("Search request received is {}", searchRequest.source()); } /** diff --git a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java index 7471fd3fbeb5f..b3ea2c00f4a43 100644 --- a/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java +++ b/server/src/main/java/org/opensearch/index/engine/EngineSearcher.java @@ -15,6 +15,7 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; +import java.util.concurrent.CompletableFuture; @ExperimentalApi // TODO make this generic type @@ -32,6 +33,10 @@ default void search(Q query, List> collectors) throws throw new UnsupportedOperationException(); } + default CompletableFuture searchAsync(Q query, Long runtimePtr) throws IOException { + throw new UnsupportedOperationException(); + } + default long search(Q query, Long runtimePtr) throws IOException { throw new UnsupportedOperationException(); } diff --git a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java index f901d2e45468e..c0f461cbe3ad8 100644 --- a/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/SearchExecEngine.java @@ -11,6 +11,7 @@ import org.opensearch.action.search.SearchShardTask; import org.opensearch.common.annotation.ExperimentalApi; import org.opensearch.common.util.BigArrays; +import org.opensearch.core.action.ActionListener; import org.opensearch.search.SearchShardTarget; import org.opensearch.search.internal.ReaderContext; import org.opensearch.search.internal.SearchContext; @@ -18,6 +19,7 @@ import java.io.IOException; import java.util.Map; +import java.util.concurrent.Executor; /** * Generic read engine interface that provides searcher operations and query phase execution @@ -40,6 +42,8 @@ public abstract class SearchExecEngine executeQueryPhase(C context) throws IOException; + public abstract void executeQueryPhaseAsync(C context, Executor executor, ActionListener> listener); + /** * execute Fetch Phase */ diff --git a/server/src/main/java/org/opensearch/search/SearchService.java b/server/src/main/java/org/opensearch/search/SearchService.java index 4eb900608685b..ee5061dd09e51 100644 --- a/server/src/main/java/org/opensearch/search/SearchService.java +++ b/server/src/main/java/org/opensearch/search/SearchService.java @@ -112,7 +112,6 @@ import org.opensearch.search.aggregations.InternalAggregation.ReduceContext; import org.opensearch.search.aggregations.MultiBucketConsumerService; import org.opensearch.search.aggregations.SearchContextAggregations; -import org.opensearch.search.aggregations.metrics.ValueCountAggregationBuilder; import org.opensearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.opensearch.search.builder.SearchSourceBuilder; import org.opensearch.search.collapse.CollapseContext; @@ -161,7 +160,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -786,12 +784,24 @@ public void onResponse(ShardSearchRequest orig) { return; } } - // fork the execution in the search thread pool - runAsync( - getExecutor(executorName, shard), - () -> executeQueryPhase(orig, task, keepStatesInContext, isStreamSearch, listener), - listener - ); + boolean isNativeQuery = orig.source() != null && orig.source().queryPlanIR() != null; + + // Execute + if (isNativeQuery) { + getExecutor(executorName, shard).execute(new ActionRunnable(listener) { + @Override + protected void doRun() throws Exception { + executeQueryPhaseAsync(orig, task, getExecutor(Names.STREAM_SEARCH /* TODO : Create a new threadpool for native execution*/, shard), keepStatesInContext, isStreamSearch, listener); + } + }); + } else { + // fork the execution in the search thread pool + runAsync( + getExecutor(executorName, shard), + () -> executeQueryPhase(orig, task, keepStatesInContext, isStreamSearch, listener), + listener + ); + } } @Override @@ -854,40 +864,187 @@ private SearchPhaseResult executeQueryPhase( Map result = searchExecEngine.executeQueryPhase(context); context.setDFResults(result); } + return executeQueryPhase( + context, + readerContext, + request, + isStreamSearch, + listener + ); + } catch (Exception e) { + // execution exception can happen while loading the cache, strip it + Exception exception = e; + if (exception instanceof ExecutionException) { + exception = (exception.getCause() == null || exception.getCause() instanceof Exception) + ? (Exception) exception.getCause() + : new OpenSearchException(exception.getCause()); + } + logger.trace("Query phase failed", exception); + processFailure(readerContext, exception); + throw exception; + } finally { + taskResourceTrackingService.writeTaskResourceUsage(task, clusterService.localNode().getId()); + } + } + + private SearchPhaseResult executeQueryPhase( + SearchContext context, + ReaderContext readerContext, + ShardSearchRequest request, + boolean isStreamSearch, + ActionListener listener) throws Exception { + if (isStreamSearch) { + assert listener instanceof StreamSearchChannelListener; + context.setStreamChannelListener((StreamSearchChannelListener) listener); + } + final long afterQueryTime; + try (SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(context)) { + loadOrExecuteQueryPhase(request, context); - if (isStreamSearch) { - assert listener instanceof StreamSearchChannelListener : "Stream search expects StreamSearchChannelListener"; - context.setStreamChannelListener((StreamSearchChannelListener) listener); + if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { + freeReaderContext(readerContext.id()); } - final long afterQueryTime; - try (SearchOperationListenerExecutor executor = new SearchOperationListenerExecutor(context)) { - // TODO check for this -// @SuppressWarnings("unchecked") -// QueryPhaseExecutor queryPhaseExecutor = -// (QueryPhaseExecutor) searchExecEngine.getQueryPhaseExecutor(); + afterQueryTime = executor.success(); + } + SearchPhaseResult result; + if (request.numberOfShards() == 1) { + result = executeFetchPhase(readerContext, context, afterQueryTime); + } else { + // Pass the rescoreDocIds to the queryResult to send them the coordinating node and receive them back in the fetch phase. + // We also pass the rescoreDocIds to the LegacyReaderContext in case the search state needs to stay in the data node. + final RescoreDocIds rescoreDocIds = context.rescoreDocIds(); + context.queryResult().setRescoreDocIds(rescoreDocIds); + readerContext.setRescoreDocIds(rescoreDocIds); + result = context.queryResult(); + } + return result; + } - //QueryPhaseExecutor queryPhaseExecutor = readEngine.getQueryPhaseExecutor(); -// boolean success = queryPhaseExecutor.execute(context); - loadOrExecuteQueryPhase(request, context); - //queryPhase.execute(context); - // loadOrExecuteQueryPhase(request, context); - if (context.queryResult().hasSearchContext() == false && readerContext.singleSession()) { - freeReaderContext(readerContext.id()); + private void executeQueryPhaseAsync( + ShardSearchRequest request, + SearchShardTask task, + Executor executor, + boolean keepStatesInContext, + boolean isStreamSearch, + ActionListener listener + ) { + + final ReaderContext readerContext; + try { + readerContext = createOrGetReaderContext(request, keepStatesInContext); + } catch (Exception e) { + listener.onFailure(e); + return; + } + + @SuppressWarnings("unchecked") + SearchExecEngine searchExecEngine = readerContext.indexShard() + .getIndexingExecutionCoordinator() + .getPrimaryReadEngine(); + SearchShardTarget shardTarget = new SearchShardTarget( + clusterService.localNode().getId(), + readerContext.indexShard().shardId(), + request.getClusterAlias(), + OriginalIndices.NONE + ); + + Releasable readerContextRelease = null; + SearchContext context = null; + + try { + readerContextRelease = readerContext.markAsUsed(getKeepAlive(request)); + context = createContext(readerContext, request, task, true, isStreamSearch, searchExecEngine); + + final Releasable finalRelease = readerContextRelease; + context.queryResult().from(context.from()); + context.queryResult().size(context.size()); + final SearchContext finalContext = context; + + // Prevent cleanup in this try-catch, will be handled in callback + readerContextRelease = null; + context = null; + + // Execute native query async + searchExecEngine.executeQueryPhaseAsync(finalContext, executor, new ActionListener>() { + @Override + public void onResponse(Map result) { + try { + finalContext.setDFResults(result); + // Continue with rest of query phase + listener.onResponse(executeQueryPhase( + finalContext, + readerContext, + request, + isStreamSearch, + listener) + ); + } catch (Exception e) { + Exception exception = e; + if (exception instanceof ExecutionException) { + exception = (exception.getCause() == null || exception.getCause() instanceof Exception) + ? (Exception) exception.getCause() + : new OpenSearchException(exception.getCause()); + } + logger.trace("Query phase failed", exception); + processFailure(readerContext, exception); + onFailure(e); + } finally { + taskResourceTrackingService.writeTaskResourceUsage(task, clusterService.localNode().getId()); + } + } + + @Override + public void onFailure(Exception e) { + + logger.error("Query execution failed", e); + Exception exception = e; + if (exception instanceof ExecutionException) { + exception = (exception.getCause() == null || exception.getCause() instanceof Exception) + ? (Exception) exception.getCause() + : new OpenSearchException(exception.getCause()); + } + logger.trace("Query phase failed", exception); + + // Cleanup + try { + finalContext.close(); + } catch (Exception ex) { + logger.error("Error closing context", ex); + } + try { + finalRelease.close(); + } catch (Exception ex) { + logger.error("Error closing release", ex); + } + + processFailure(readerContext, exception); + listener.onFailure(exception); + try { + taskResourceTrackingService.writeTaskResourceUsage(task, clusterService.localNode().getId()); + } catch (Exception ex) { + logger.error("Error writing task resource usage", ex); + } + + } + }); + + } catch (Exception e) { + // Cleanup on exception + if (context != null) { + try { + context.close(); + } catch (Exception ex) { + logger.error("Error closing context", ex); } - afterQueryTime = executor.success(); } - if (request.numberOfShards() == 1) { - return executeFetchPhase(readerContext, context, afterQueryTime); - } else { - // Pass the rescoreDocIds to the queryResult to send them the coordinating node and receive them back in the fetch phase. - // We also pass the rescoreDocIds to the LegacyReaderContext in case the search state needs to stay in the data node. - final RescoreDocIds rescoreDocIds = context.rescoreDocIds(); - context.queryResult().setRescoreDocIds(rescoreDocIds); - readerContext.setRescoreDocIds(rescoreDocIds); - return context.queryResult(); + if (readerContextRelease != null) { + try { + readerContextRelease.close(); + } catch (Exception ex) { + logger.error("Error closing release", ex); + } } - } catch (Exception e) { - // execution exception can happen while loading the cache, strip it + Exception exception = e; if (exception instanceof ExecutionException) { exception = (exception.getCause() == null || exception.getCause() instanceof Exception) @@ -896,9 +1053,7 @@ private SearchPhaseResult executeQueryPhase( } logger.trace("Query phase failed", exception); processFailure(readerContext, exception); - throw exception; - } finally { - taskResourceTrackingService.writeTaskResourceUsage(task, clusterService.localNode().getId()); + listener.onFailure(exception); } } diff --git a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java index 9db18ef0be3cb..30c6bcfdf63a3 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java +++ b/server/src/main/java/org/opensearch/search/aggregations/bucket/terms/NumericTermsAggregator.java @@ -540,6 +540,7 @@ public List convert(Map shardResult, Sear final BucketOrder reduceOrder; if (isKeyOrder(order) == false) { reduceOrder = InternalOrder.key(true); + buckets.sort(reduceOrder.comparator()); } else { reduceOrder = order; } diff --git a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java index 391176c83fb0a..014753e7da657 100644 --- a/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java +++ b/server/src/main/java/org/opensearch/search/query/SearchEngineResultConversionUtils.java @@ -59,7 +59,7 @@ public static void convertDFResultGeneric(SearchContext searchContext) { InternalAggregations internalAggregations = InternalAggregations.from( shardResultConvertors.stream().flatMap(x -> x.convert(dfResult, searchContext).stream()).collect(Collectors.toList()) ); - LOGGER.info("Converted DF result to internal aggregations: {}", internalAggregations.asList()); + //LOGGER.info("Converted DF result to internal aggregations: {}", internalAggregations.asList()); searchContext.queryResult().aggregations(internalAggregations); } catch (IOException e) { throw new RuntimeException(e); From 23e47177fb283e2dbaa51151867fea2596cd5860 Mon Sep 17 00:00:00 2001 From: Arpit Bandejiya Date: Thu, 27 Nov 2025 16:34:47 +0530 Subject: [PATCH 108/112] Support debug mode for parquet and datafusion plugin (#20110) Signed-off-by: Arpit Bandejiya --- modules/parquet-data-format/build.gradle | 16 ++++++++-------- plugins/engine-datafusion/build.gradle | 5 ++--- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/parquet-data-format/build.gradle b/modules/parquet-data-format/build.gradle index e86067c92fa54..16fedc9685a4c 100644 --- a/modules/parquet-data-format/build.gradle +++ b/modules/parquet-data-format/build.gradle @@ -13,6 +13,8 @@ def pluginDescription = 'Parquet data format plugin' def packagePath = 'com.parquet' def pathToPlugin = 'parquetdataformat' def pluginClassName = 'ParquetDataFormatPlugin' +def buildType = project.hasProperty('rustDebug') ? 'debug' : 'release' + group = "ParquetDataFormatGroup" java { @@ -168,7 +170,6 @@ tasks.register('buildRust', Exec) { def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') // Use debug build for development, release for production - def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' def targetDir = file("${workingDir}/target/") // Find cargo executable - try common locations @@ -187,9 +188,9 @@ tasks.register('buildRust', Exec) { } def cargoArgs = [cargoExecutable, 'build'] -// if (buildType == 'release') { - cargoArgs.add('--release') -// } + if (buildType == 'release') { + cargoArgs.add('--release') + } if (osName.contains('windows')) { commandLine cargoArgs @@ -202,15 +203,14 @@ tasks.register('buildRust', Exec) { inputs.files fileTree("${workingDir}/src") inputs.file "${workingDir}/Cargo.toml" -// outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_jni${libExtension}") -// System.out.println("Building Rust library in ${buildType} mode"); - + outputs.files file("jni/${targetDir}/${libPrefix}opensearch_datafusion_jni${libExtension}") + System.out.println("Building Parquet plugin rust library in ${buildType} mode"); } tasks.register('copyNativeLib', Copy) { dependsOn buildRust - from "src/main/rust/target/release" + from "src/main/rust/target/${buildType}" into "src/main/resources/native" include "libparquet_dataformat_jni.*" include "parquet_dataformat_jni.dll" diff --git a/plugins/engine-datafusion/build.gradle b/plugins/engine-datafusion/build.gradle index 82b5cd41fc757..bb26ebd449612 100644 --- a/plugins/engine-datafusion/build.gradle +++ b/plugins/engine-datafusion/build.gradle @@ -17,6 +17,7 @@ def pluginDescription = 'OpenSearch plugin providing access to DataFusion via JN def projectPath = 'org.opensearch' def pathToPlugin = 'datafusion.DataFusionPlugin' def pluginClassName = 'DataFusionPlugin' +def buildType = project.hasProperty('rustDebug') ? 'debug' : 'release' opensearchplugin { name = pluginName @@ -26,6 +27,7 @@ opensearchplugin { noticeFile = rootProject.file('NOTICE.txt') } + dependencies { api project(':libs:opensearch-vectorized-exec-spi') implementation "org.apache.logging.log4j:log4j-api:${versions.log4j}" @@ -69,8 +71,6 @@ task buildRustLibrary(type: Exec) { def libPrefix = osName.contains('windows') ? '' : 'lib' def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') - // Use debug build for development, release for production - def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' def targetDir = "target/${buildType}" // Find cargo executable - try common locations @@ -116,7 +116,6 @@ task copyNativeLibrary(type: Copy, dependsOn: buildRustLibrary) { def osName = System.getProperty('os.name').toLowerCase() def libPrefix = osName.contains('windows') ? '' : 'lib' def libExtension = osName.contains('windows') ? '.dll' : (osName.contains('mac') ? '.dylib' : '.so') - def buildType = project.hasProperty('rustRelease') ? 'release' : 'debug' from file("jni/target/${buildType}/${libPrefix}opensearch_datafusion_jni${libExtension}") into file('src/main/resources/native') From a7865428d8fe4f92e4c5c7117e3bec37efc48876 Mon Sep 17 00:00:00 2001 From: Dhwanil Patel Date: Fri, 28 Nov 2025 18:11:04 +0530 Subject: [PATCH 109/112] Refactoring merge code to act at composite level instead of Parquet (#20119) Signed-off-by: Dhwanil Patel --- .../merge/ParquetMergeExecutor.java | 4 +- .../merge/ParquetMergeStrategy.java | 5 +- .../merge/ParquetMerger.java | 4 +- .../merge/RecordBatchMergeStrategy.java | 11 +- .../index/TieredMergePolicyProvider.java | 2 - .../opensearch/index/engine/exec/Merger.java | 6 +- .../exec/coord/CatalogSnapshotManager.java | 6 +- .../engine/exec/coord/CompositeEngine.java | 4 +- .../exec/merge/CompositeMergeHandler.java | 95 ++++++++++++ ...ePolicy.java => CompositeMergePolicy.java} | 142 +++++++++--------- .../index/engine/exec/merge/MergeHandler.java | 56 +++---- .../index/engine/exec/merge/OneMerge.java | 22 +-- .../exec/merge/ParquetMergeHandler.java | 133 ---------------- .../index/engine/exec/text/TextEngine.java | 4 +- 14 files changed, 214 insertions(+), 280 deletions(-) create mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergeHandler.java rename server/src/main/java/org/opensearch/index/engine/exec/merge/{ParquetTieredMergePolicy.java => CompositeMergePolicy.java} (58%) delete mode 100644 server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java index 29438ff6a2632..f792f249b7356 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeExecutor.java @@ -9,8 +9,10 @@ package com.parquet.parquetdataformat.merge; import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.merge.MergeResult; import java.util.Collection; +import java.util.List; /** * Executes Parquet merge operations using a chosen compaction strategy. @@ -24,7 +26,7 @@ public ParquetMergeExecutor(CompactionStrategy compactionStrategy) { } @Override - public MergeResult merge(Collection fileMetadataList, long writerGeneration) { + public MergeResult merge(List fileMetadataList, long writerGeneration) { MergeResult result = strategy.mergeParquetFiles(fileMetadataList, writerGeneration); strategy.postMerge(); return result; diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java index a433c8badee15..f84ccb795fc94 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMergeStrategy.java @@ -10,9 +10,12 @@ import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.merge.MergeResult; import java.util.Collection; +import java.util.List; + /** * Interface defining a Parquet merge strategy. */ @@ -21,7 +24,7 @@ public interface ParquetMergeStrategy { /** * Performs the actual Parquet merge. */ - MergeResult mergeParquetFiles(Collection files, long writerGeneration); + MergeResult mergeParquetFiles(List files, long writerGeneration); /** * Optional post-merge hook. diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java index 9d95938fe92aa..555e8a10c88f5 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/ParquetMerger.java @@ -10,14 +10,16 @@ import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.Merger; +import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowIdMapping; import java.util.Collection; +import java.util.List; public abstract class ParquetMerger implements Merger { @Override - public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { + public MergeResult merge(List fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { throw new UnsupportedOperationException("Not supported parquet as secondary data format yet."); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java index 79ba5967c9060..6f2d8baf9f97c 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/merge/RecordBatchMergeStrategy.java @@ -18,6 +18,7 @@ import org.opensearch.index.engine.exec.merge.RowIdMapping; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -34,17 +35,17 @@ public class RecordBatchMergeStrategy implements ParquetMergeStrategy { @Override - public MergeResult mergeParquetFiles(Collection files, long writerGeneration) { + public MergeResult mergeParquetFiles(List files, long writerGeneration) { if (files.isEmpty()) { throw new IllegalArgumentException("No files to merge"); } - List filePaths = files.stream() - .map(fm -> Path.of(fm.directory(), fm.file())) - .collect(Collectors.toList()); + List filePaths = new ArrayList<>(); + files.forEach(writerFileSet -> writerFileSet.getFiles().forEach( + file -> filePaths.add(Path.of(writerFileSet.getDirectory(), file)))); - String outputDirectory = files.iterator().next().directory(); + String outputDirectory = files.iterator().next().getDirectory(); String mergedFilePath = getMergedFilePath(writerGeneration, outputDirectory); String mergedFileName = getMergedFileName(writerGeneration); diff --git a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java index 3ba8d88d851f1..e21603be7169b 100644 --- a/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java +++ b/server/src/main/java/org/opensearch/index/TieredMergePolicyProvider.java @@ -39,10 +39,8 @@ import org.apache.lucene.index.TieredMergePolicy; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Setting.Property; -import org.opensearch.common.util.FeatureFlags; import org.opensearch.core.common.unit.ByteSizeUnit; import org.opensearch.core.common.unit.ByteSizeValue; -import org.opensearch.index.engine.exec.merge.ParquetTieredMergePolicy; /** * A shard in opensearch is a Lucene index, and a Lucene index is broken diff --git a/server/src/main/java/org/opensearch/index/engine/exec/Merger.java b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java index 7e88d90b72a0e..169d9e4cc7b3c 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/Merger.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/Merger.java @@ -11,7 +11,7 @@ import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.RowIdMapping; -import java.util.Collection; +import java.util.List; public interface Merger { /** @@ -19,7 +19,7 @@ public interface Merger { * @param fileMetadataList List of FileMetadata to merge * @return MergeResult - having RowIdMapping and mergedFileMetadata */ - MergeResult merge(Collection fileMetadataList, long writerGeneration); + MergeResult merge(List fileMetadataList, long writerGeneration); /** * @@ -27,5 +27,5 @@ public interface Merger { * @param rowIdMapping Mapping of old segment + old rowId to new rowId * @return MergeResult - having mergedFileMetadata */ - MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration); + MergeResult merge(List fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration); } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java index 098e513a5862c..65a8a0dbfc393 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CatalogSnapshotManager.java @@ -77,16 +77,14 @@ public synchronized void applyMergeResults(MergeResult mergeResult, OneMerge one List segmentList = latestCatalogSnapshot.getSegments(); CatalogSnapshot.Segment segmentToAdd = getSegment(mergeResult.getMergedWriterFileSet()); - - Set filesToRemove = new HashSet<>(); - oneMerge.getFilesToMerge().forEach(file -> filesToRemove.add(file)); + Set segmentsToRemove = new HashSet<>(oneMerge.getSegmentsToMerge()); boolean inserted = false; int newSegIdx = 0; for (int segIdx = 0, cnt = segmentList.size(); segIdx < cnt; segIdx++) { assert segIdx >= newSegIdx; CatalogSnapshot.Segment currSegment = segmentList.get(segIdx); - if(filesToRemove.containsAll(currSegment.getSearchableFiles(oneMerge.getDataFormat().name()))) { + if(segmentsToRemove.contains(currSegment)) { if (!inserted) { segmentList.set(segIdx, segmentToAdd); inserted = true; diff --git a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java index 8bf55006a098e..d70a40d034694 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/coord/CompositeEngine.java @@ -38,7 +38,7 @@ import org.opensearch.index.engine.exec.merge.MergeResult; import org.opensearch.index.engine.exec.merge.MergeScheduler; import org.opensearch.index.engine.exec.merge.OneMerge; -import org.opensearch.index.engine.exec.merge.ParquetMergeHandler; +import org.opensearch.index.engine.exec.merge.CompositeMergeHandler; import org.opensearch.index.mapper.IdFieldMapper; import org.opensearch.index.mapper.MapperService; import org.opensearch.index.mapper.SeqNoFieldMapper; @@ -268,7 +268,7 @@ public void onFailure(String reason, Exception ex) { this.throttle = new IndexThrottle(); this.historyUUID = loadHistoryUUID(userData); this.mergeHandler = - new ParquetMergeHandler(this, this.engine, this.engine.getDataFormat(), indexSettings); + new CompositeMergeHandler(this, this.engine, this.engine.getDataFormat(), indexSettings); this.mergeScheduler = new MergeScheduler(this.mergeHandler, this); // Refresh here so that catalog snapshot gets initialized diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergeHandler.java new file mode 100644 index 0000000000000..3bc3d2eea8c66 --- /dev/null +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergeHandler.java @@ -0,0 +1,95 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.index.engine.exec.merge; + +import org.opensearch.index.IndexSettings; +import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; +import org.opensearch.index.engine.exec.coord.Any; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; +import org.opensearch.index.engine.exec.coord.CompositeEngine; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public class CompositeMergeHandler extends MergeHandler { + + private final CompositeMergePolicy mergePolicy; + private final CompositeEngine compositeEngine; + private final CompositeIndexingExecutionEngine compositeIndexingExecutionEngine; + + public CompositeMergeHandler( + CompositeEngine compositeEngine, + CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, + Any dataFormats, + IndexSettings indexSettings + ) { + super(compositeEngine, compositeIndexingExecutionEngine, dataFormats); + this.compositeEngine = compositeEngine; + this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; + + mergePolicy = new CompositeMergePolicy(indexSettings.getMergePolicy(true)); + } + + @Override + public Collection findForceMerges(int maxSegmentCount) { + List oneMerges = new ArrayList<>(); + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { + CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); + + List segmentList = catalogSnapshot.getSegments(); + List> mergeCandidates = + mergePolicy.findForceMergeCandidates(segmentList, maxSegmentCount); + + // Process merge candidates + for (List mergeGroup : mergeCandidates) { + oneMerges.add(new OneMerge(mergeGroup)); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return oneMerges; + } + + @Override + public Collection findMerges() { + List oneMerges = new ArrayList<>(); + try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { + CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); + + List segmentList = catalogSnapshot.getSegments(); + List> mergeCandidates = + mergePolicy.findMergeCandidates(segmentList); + + // Process merge candidates + for (List mergeGroup : mergeCandidates) { + oneMerges.add(new OneMerge(mergeGroup)); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + return oneMerges; + } + + public synchronized void registerMerge(OneMerge oneMerge) { + super.registerMerge(oneMerge); + mergePolicy.addMergingSegment(oneMerge.getSegmentsToMerge()); + } + + public synchronized void onMergeFinished(OneMerge oneMerge) { + super.onMergeFinished(oneMerge); + mergePolicy.removeMergingSegment(oneMerge.getSegmentsToMerge()); + } + + public synchronized void onMergeFailure(OneMerge oneMerge) { + super.onMergeFailure(oneMerge); + mergePolicy.removeMergingSegment(oneMerge.getSegmentsToMerge()); + } +} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergePolicy.java similarity index 58% rename from server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java rename to server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergePolicy.java index 456dfd67cd2f1..a93eaa44b5995 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetTieredMergePolicy.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/CompositeMergePolicy.java @@ -13,22 +13,21 @@ import org.apache.lucene.store.NIOFSDirectory; import org.apache.lucene.util.InfoStream; import org.apache.lucene.util.Version; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.WriterFileSet; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; -public class ParquetTieredMergePolicy implements MergePolicy.MergeContext { +public class CompositeMergePolicy implements MergePolicy.MergeContext { private final MergePolicy luceneMergePolicy; private final InfoStream infoStream; private static final HashSet mergingSegments = new HashSet<>(); - private static final Set mergingFileNames = new HashSet<>(); - public ParquetTieredMergePolicy(MergePolicy mergePolicy) { + public CompositeMergePolicy(MergePolicy mergePolicy) { this.luceneMergePolicy = mergePolicy; System.out.println("Merge Policy : " + mergePolicy); this.infoStream = new InfoStream() { @@ -49,16 +48,16 @@ public void close() throws IOException { }; } - public List> findForceMergeCandidates(List segments, int maxSegmentCount) throws IOException { - // Convert Parquet segments to Lucene-style segments + public List> findForceMergeCandidates(List segments, int maxSegmentCount) throws IOException { + // Convert segments to Lucene-style segments List luceneSegments = new ArrayList<>(); - Map segmentMap = new HashMap<>(); + Map segmentMap = new HashMap<>(); Map segmentsToMerge = new HashMap<>(); - for (ParquetFileInfo parquetSegment : segments) { - ParquetSegmentWrapper wrapper = new ParquetSegmentWrapper(parquetSegment); + for(CatalogSnapshot.Segment segment : segments) { + SegmentWrapper wrapper = new SegmentWrapper(segment, calculateSegmentSize(segment)); luceneSegments.add(wrapper); - segmentMap.put(wrapper, parquetSegment); + segmentMap.put(wrapper, segment); segmentsToMerge.put(wrapper, true); } @@ -67,21 +66,21 @@ public List> findForceMergeCandidates(List> merges = new ArrayList<>(); + List> merges = new ArrayList<>(); try { MergePolicy.MergeSpecification mergeSpecification = luceneMergePolicy.findForcedMerges(segmentInfos, maxSegmentCount, segmentsToMerge, this); if(mergeSpecification != null) { List luceneMerges = mergeSpecification.merges; - // Convert back to Parquet segments + // Convert back to segments for (MergePolicy.OneMerge merge : luceneMerges) { - List parquetMerge = new ArrayList<>(); + List segmentMerge = new ArrayList<>(); for(SegmentCommitInfo segment : merge.segments) { - parquetMerge.add(segmentMap.get(segment)); + segmentMerge.add(segmentMap.get(segment)); } - merges.add(parquetMerge); + merges.add(segmentMerge); } } } catch (Exception e) { @@ -90,17 +89,16 @@ public List> findForceMergeCandidates(List> findMergeCandidates(List segments) throws IOException { + public List> findMergeCandidates(List segments) throws IOException { - // Convert Parquet segments to Lucene-style segments + // Convert segments to Lucene-style segments List luceneSegments = new ArrayList<>(); - Map segmentMap = new HashMap<>(); + Map segmentMap = new HashMap<>(); - for (ParquetFileInfo parquetSegment : segments) { - ParquetSegmentWrapper wrapper = new ParquetSegmentWrapper(parquetSegment); - wrapper.info.setFiles(Arrays.asList(parquetSegment.path.getFileName().toString())); + for(CatalogSnapshot.Segment segment : segments) { + SegmentWrapper wrapper = new SegmentWrapper(segment, calculateSegmentSize(segment)); luceneSegments.add(wrapper); - segmentMap.put(wrapper, parquetSegment); + segmentMap.put(wrapper, segment); } // Create SegmentInfos (required by Lucene 10) @@ -108,7 +106,7 @@ public List> findMergeCandidates(List seg luceneSegments.forEach(segmentInfos::add); // Find merge candidates using Lucene's policy - List> merges = new ArrayList<>(); + List> merges = new ArrayList<>(); try { // Get merge candidates from Lucene's policy MergePolicy.MergeSpecification mergeSpecification = luceneMergePolicy.findMerges(MergeTrigger.COMMIT, segmentInfos @@ -117,14 +115,14 @@ public List> findMergeCandidates(List seg if(mergeSpecification != null) { List luceneMerges = mergeSpecification.merges; - // Convert back to Parquet segments + // Convert back to segments for (MergePolicy.OneMerge merge : luceneMerges) { - List parquetMerge = new ArrayList<>(); + List segmentMerge = new ArrayList<>(); for(SegmentCommitInfo segment : merge.segments) { - parquetMerge.add(segmentMap.get(segment)); + segmentMerge.add(segmentMap.get(segment)); } - merges.add(parquetMerge); + merges.add(segmentMerge); } } } catch (Exception e) { @@ -154,10 +152,29 @@ public Set getMergingSegments() { return Collections.unmodifiableSet(mergingSegments); } - public synchronized void addMergingSegment(Collection files) { + private long calculateSegmentSize(CatalogSnapshot.Segment segment) { + long totalSize = 0; try { - for (FileMetadata fileMetadata : files) { - mergingSegments.add(new ParquetSegmentWrapper(new ParquetFileInfo(fileMetadata.directory() + "/" + fileMetadata.file()))); + for (WriterFileSet writerFileSet : segment.getDFGroupedSearchableFiles().values()) { + for (String fileName : writerFileSet.getFiles()) { + Path filePath = Path.of(writerFileSet.getDirectory(), fileName); + if (java.nio.file.Files.exists(filePath)) { + totalSize += java.nio.file.Files.size(filePath); + } + } + } + } catch (Exception e) { + // Log error but continue with 0 size + System.err.println("Error calculating segment size: " + e.getMessage()); + } + return totalSize; + } + + public synchronized void addMergingSegment(Collection segments) { + try { + for (CatalogSnapshot.Segment segment : segments) { + SegmentWrapper wrapper = new SegmentWrapper(segment, calculateSegmentSize(segment)); + mergingSegments.add(wrapper); } } catch (Exception e) { e.printStackTrace(); @@ -165,15 +182,13 @@ public synchronized void addMergingSegment(Collection files) { } } - public synchronized void removeMergingSegment(Collection files) { + public synchronized void removeMergingSegment(Collection segments) { List segmentToRemove = new ArrayList<>(); try { - for(FileMetadata fileMetadata : files) { - for(SegmentCommitInfo segment : mergingSegments) { - if(segment.info.name.equals(fileMetadata.directory()+"/"+fileMetadata.file())) { - segmentToRemove.add(segment); - } - } + + for (CatalogSnapshot.Segment segment : segments) { + SegmentWrapper wrapper = new SegmentWrapper(segment, calculateSegmentSize(segment)); + segmentToRemove.add(wrapper); } segmentToRemove.forEach(segment -> mergingSegments.remove(segment)); } catch (Exception e) { @@ -182,47 +197,24 @@ public synchronized void removeMergingSegment(Collection files) { } } - public static class ParquetFileInfo { - private final Path path; - private final long sizeBytes; - private final long docCount; - private final String segmentName; // Added for Lucene compatibility - - public ParquetFileInfo(String path) throws IOException { - this.path = Paths.get(path); - this.sizeBytes = Files.size(this.path); - // TODO - // For now doc count we are deriving from size of file. - // Once we have that info as part of Refresh Result, we can change this. - this.docCount = Files.size(this.path)/1000; - - // SegmentName is same as fileName - this.segmentName = path; - } - - public Path getPath() { return path; } - public long getSizeBytes() { return sizeBytes; } - public int getDocCount() { return (int)docCount; } - public String getSegmentName() { return segmentName; } - } - - private static class ParquetSegmentWrapper extends SegmentCommitInfo { - private final ParquetFileInfo parquetInfo; + private static class SegmentWrapper extends SegmentCommitInfo { + private final long totalSizeBytes; - public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { + public SegmentWrapper(CatalogSnapshot.Segment segment, long totalSizeBytes) throws IOException { super( // SegmentInfo - new SegmentInfo( - // directory - not used for our purpose - new NIOFSDirectory(parquetInfo.path.getParent()), + new org.apache.lucene.index.SegmentInfo( + // directory - use temp directory + new NIOFSDirectory(Paths.get(System.getProperty("java.io.tmpdir"))), // version Version.LATEST, // min version Version.LATEST, // segment name - parquetInfo.getSegmentName(), - // maxDoc - number of rows in parquet file - parquetInfo.getDocCount(), + "segment_" + segment.getGeneration(), + // maxDoc - total document count across all files in segment + // TODO: Get correct total doc from catalogSnaoshot or Segment + (int)(totalSizeBytes / 1000), // isCompound - false as we don't need compound file format false, // has block @@ -233,7 +225,7 @@ public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { new HashMap(Map.of("dummy", "dummy")), // segmentID - generate unique ID UUID.randomUUID().toString().substring(0,16).getBytes(), - // map of attribute - map with dummy entru + // map of attribute - map with dummy entry new HashMap(Map.of("dummy", "dummy")), // index sort - no specific sort null @@ -242,7 +234,7 @@ public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { 0, // softDelCount 0, - // delGen - no deletions in parquet + // delGen - no deletions 0, // fieldInfosGen - no separate field infos -1, @@ -250,12 +242,12 @@ public ParquetSegmentWrapper(ParquetFileInfo parquetInfo) throws IOException { -1, // id UUID.randomUUID().toString().substring(0,16).getBytes()); - this.parquetInfo = parquetInfo; + this.totalSizeBytes = totalSizeBytes; } @Override public long sizeInBytes() { - return parquetInfo.getSizeBytes(); + return totalSizeBytes; } @Override diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java index 2149d5842b4a6..9ecba16178360 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/MergeHandler.java @@ -9,7 +9,6 @@ package org.opensearch.index.engine.exec.merge; import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.Merger; import org.opensearch.index.engine.exec.WriterFileSet; import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; @@ -18,10 +17,12 @@ import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.util.ArrayDeque; +import java.util.ArrayList; import java.util.Collection; import java.util.Deque; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; @@ -35,7 +36,7 @@ public abstract class MergeHandler { private CompositeEngine compositeEngine; private Map dataFormatMergerMap; private final Deque mergingSegments = new ArrayDeque<>(); - private final Set mergingFileNames = new HashSet<>(); + private final Set currentlyMergingSegments = new HashSet<>(); public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, Any dataFormats) { this.compositeDataFormat = dataFormats; @@ -58,15 +59,15 @@ public MergeHandler(CompositeEngine compositeEngine, CompositeIndexingExecutionE public synchronized void updatePendingMerges() { Collection oneMerges = findMerges(); -// System.out.println("Found merges : " + oneMerges); for (OneMerge oneMerge : oneMerges) { boolean isValidMerge = true; - for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { - if(mergingFileNames.contains(fileMetadata.directory()+"/"+fileMetadata.file())) { + for (CatalogSnapshot.Segment segment : oneMerge.getSegmentsToMerge()) { + if (currentlyMergingSegments.contains(segment)) { isValidMerge = false; + break; } } - if(isValidMerge) { + if (isValidMerge) { registerMerge(oneMerge); } } @@ -74,27 +75,18 @@ public synchronized void updatePendingMerges() { public synchronized void registerMerge(OneMerge merge) { try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { - Set catalogFiles = new HashSet<>(); - catalogSnapshotReleasableRef.getRef().getSearchableFiles(merge.getDataFormat().name()) - .forEach(writerFileSet -> { - for (String file : writerFileSet.getFiles()) { - catalogFiles.add(new FileMetadata(writerFileSet.getDirectory(), file)); - } - }); - - for (FileMetadata mergeFile : merge.getFilesToMerge()) { - if (!catalogFiles.contains(mergeFile)) { + // Validate segments exist in catalog + List catalogSegments = catalogSnapshotReleasableRef.getRef().getSegments(); + for (CatalogSnapshot.Segment mergeSegment : merge.getSegmentsToMerge()) { + if (!catalogSegments.contains(mergeSegment)) { return; } } } catch (Exception e) { throw new RuntimeException(e); } - System.out.println("Registering Merge : " + merge); mergingSegments.add(merge); - for(FileMetadata fileMetadata : merge.getFilesToMerge()) { - mergingFileNames.add(fileMetadata.directory()+"/"+fileMetadata.file()); - } + currentlyMergingSegments.addAll(merge.getSegmentsToMerge()); } public boolean hasPendingMerges() { @@ -121,9 +113,7 @@ public synchronized void onMergeFailure(OneMerge oneMerge) { private synchronized void removeMergingSegments(OneMerge oneMerge) { mergingSegments.remove(oneMerge); - for(FileMetadata fileMetadata : oneMerge.getFilesToMerge()) { - mergingFileNames.remove(fileMetadata.directory()+"/"+fileMetadata.file()); - } + currentlyMergingSegments.removeAll(oneMerge.getSegmentsToMerge()); } public MergeResult doMerge(OneMerge oneMerge) { @@ -132,7 +122,7 @@ public MergeResult doMerge(OneMerge oneMerge) { Map mergedWriterFileSet = new HashMap<>(); try(CompositeEngine.ReleasableRef catalogSnapshot = compositeEngine.acquireSnapshot()) { - Collection filesToMerge = getFilesToMerge(oneMerge, compositeDataFormat.getPrimaryDataFormat(), catalogSnapshot.getRef()); + List filesToMerge = getFilesToMerge(oneMerge, compositeDataFormat.getPrimaryDataFormat()); // Merging primary data format MergeResult primaryMergeResult = dataFormatMergerMap.get(compositeDataFormat.getPrimaryDataFormat()).merge(filesToMerge, mergedWriterGeneration); @@ -142,7 +132,7 @@ public MergeResult doMerge(OneMerge oneMerge) { .filter(engine -> !engine.getDataFormat().equals(compositeDataFormat.getPrimaryDataFormat())) .forEach(indexingExecutionEngine -> { DataFormat dataFormat = indexingExecutionEngine.getDataFormat(); - Collection files = getFilesToMerge(oneMerge, dataFormat, catalogSnapshot.getRef()); + List files = getFilesToMerge(oneMerge, dataFormat); MergeResult secondaryMergeResult = dataFormatMergerMap.get(dataFormat).merge(files, primaryMergeResult.getRowIdMapping(), mergedWriterGeneration); mergedWriterFileSet.put(dataFormat, secondaryMergeResult.getMergedWriterFileSetForDataformat(dataFormat)); }); @@ -153,17 +143,11 @@ public MergeResult doMerge(OneMerge oneMerge) { } } - public Collection getFilesToMerge(OneMerge oneMerge, DataFormat dataFormat, CatalogSnapshot catalogSnapshot) { - if(oneMerge.getDataFormat().name().equalsIgnoreCase(dataFormat.name())) { - return oneMerge.getFilesToMerge(); - } - - // TODO get file mapping for other data format from catalog snapshot - for(CatalogSnapshot.Segment segment : catalogSnapshot.getSegments()) { - if(segment.getSearchableFiles(oneMerge.getDataFormat().name()).equals(oneMerge.getFilesToMerge())) { - return segment.getSearchableFiles(dataFormat.name()); - } + public List getFilesToMerge(OneMerge oneMerge, DataFormat dataFormat) { + List writerFileSets = new ArrayList<>(); + for (CatalogSnapshot.Segment segment : oneMerge.getSegmentsToMerge()) { + writerFileSets.add(segment.getDFGroupedSearchableFiles().get(dataFormat.name())); } - throw new RuntimeException("Couldn't find the file to merge for data format [" + dataFormat + "]"); + return writerFileSets; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java index 2d3a46a33db64..788fe31489eef 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/merge/OneMerge.java @@ -8,30 +8,22 @@ package org.opensearch.index.engine.exec.merge; -import org.opensearch.index.engine.exec.DataFormat; -import org.opensearch.index.engine.exec.FileMetadata; +import org.opensearch.index.engine.exec.coord.CatalogSnapshot; -import java.util.Collection; import java.util.List; public class OneMerge { - private final DataFormat dataFormat; - private final List filesToMerge; // Files to merge as per given data format + private final List segmentsToMerge; - public OneMerge(DataFormat dataFormat, List filesToMerge) { - this.dataFormat = dataFormat; - this.filesToMerge = filesToMerge; + public OneMerge(List segmentsToMerge) { + this.segmentsToMerge = segmentsToMerge; } - public DataFormat getDataFormat() { - return dataFormat; - } - - public List getFilesToMerge() { - return filesToMerge; + public List getSegmentsToMerge() { + return segmentsToMerge; } public String toString() { - return "Merge [dataFormat=" + dataFormat + ", filesToMerge=" + filesToMerge + "] "; + return "Merge [SegmentsToMerge=" + segmentsToMerge + "] "; } } diff --git a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java b/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java deleted file mode 100644 index 4fddfeda277d4..0000000000000 --- a/server/src/main/java/org/opensearch/index/engine/exec/merge/ParquetMergeHandler.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.index.engine.exec.merge; - -import org.opensearch.index.IndexSettings; -import org.opensearch.index.engine.exec.FileMetadata; -import org.opensearch.index.engine.exec.WriterFileSet; -import org.opensearch.index.engine.exec.composite.CompositeIndexingExecutionEngine; -import org.opensearch.index.engine.exec.coord.Any; -import org.opensearch.index.engine.exec.coord.CatalogSnapshot; -import org.opensearch.index.engine.exec.coord.CompositeEngine; - -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -public class ParquetMergeHandler extends MergeHandler { - - private final ParquetTieredMergePolicy mergePolicy; - private final CompositeEngine compositeEngine; - private final CompositeIndexingExecutionEngine compositeIndexingExecutionEngine; - private final String PARQUET_DATAFORMAT = "parquet"; - - public ParquetMergeHandler( - CompositeEngine compositeEngine, - CompositeIndexingExecutionEngine compositeIndexingExecutionEngine, - Any dataFormats, - IndexSettings indexSettings - ) { - super(compositeEngine, compositeIndexingExecutionEngine, dataFormats); - this.compositeEngine = compositeEngine; - this.compositeIndexingExecutionEngine = compositeIndexingExecutionEngine; - - mergePolicy = new ParquetTieredMergePolicy(indexSettings.getMergePolicy(true)); - } - - @Override - public Collection findForceMerges(int maxSegmentCount) { - List oneMerges = new ArrayList<>(); - try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { - CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); - - List segmentList = catalogSnapshot.getSegments(); - List parquetSegmentInfos = new ArrayList<>(); - - for(CatalogSnapshot.Segment segment : segmentList) { - WriterFileSet writerFileSet = segment.getDFGroupedSearchableFiles().get(PARQUET_DATAFORMAT); - for(String file: writerFileSet.getFiles()) { - parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); - } - } - - List> mergeCandidates = - mergePolicy.findForceMergeCandidates(parquetSegmentInfos, maxSegmentCount); - - // Process merge candidates - for (int i = 0; i < mergeCandidates.size(); i++) { - List mergeGroup = mergeCandidates.get(i); - - List files = new ArrayList<>(); - for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { - Path path = Path.of(file.getSegmentName()); - files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); - } - oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - return oneMerges; - } - - @Override - public Collection findMerges() { - List oneMerges = new ArrayList<>(); - try (CompositeEngine.ReleasableRef catalogSnapshotReleasableRef = compositeEngine.acquireSnapshot()) { - CatalogSnapshot catalogSnapshot = catalogSnapshotReleasableRef.getRef(); - - List segmentList = catalogSnapshot.getSegments(); - List parquetSegmentInfos = new ArrayList<>(); - - for(CatalogSnapshot.Segment segment : segmentList) { - WriterFileSet writerFileSet = segment.getDFGroupedSearchableFiles().get(PARQUET_DATAFORMAT); - for(String file: writerFileSet.getFiles()) { - parquetSegmentInfos.add(new ParquetTieredMergePolicy.ParquetFileInfo(writerFileSet.getDirectory()+"/"+file)); - } - } - - List> mergeCandidates = - mergePolicy.findMergeCandidates(parquetSegmentInfos); - - // Process merge candidates - for (int i = 0; i < mergeCandidates.size(); i++) { - List mergeGroup = mergeCandidates.get(i); - - List files = new ArrayList<>(); - for (ParquetTieredMergePolicy.ParquetFileInfo file : mergeGroup) { - Path path = Path.of(file.getSegmentName()); - files.add(new FileMetadata(path.getParent().toString(), path.getFileName().toString())); - } - oneMerges.add(new OneMerge(compositeIndexingExecutionEngine.getDataFormat().getDataFormats().get(0), files)); - } - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(e); - } - return oneMerges; - } - - public synchronized void registerMerge(OneMerge oneMerge) { - super.registerMerge(oneMerge); - mergePolicy.addMergingSegment(oneMerge.getFilesToMerge()); - } - - public synchronized void onMergeFinished(OneMerge oneMerge) { - super.onMergeFinished(oneMerge); - mergePolicy.removeMergingSegment(oneMerge.getFilesToMerge()); - } - - public synchronized void onMergeFailure(OneMerge oneMerge) { - super.onMergeFailure(oneMerge); - mergePolicy.removeMergingSegment(oneMerge.getFilesToMerge()); - } -} diff --git a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java index 1770044512525..aaa23001419f7 100644 --- a/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java +++ b/server/src/main/java/org/opensearch/index/engine/exec/text/TextEngine.java @@ -127,7 +127,7 @@ public void close() throws Exception { public static class TextMerger implements Merger { @Override - public MergeResult merge(Collection fileMetadataList, long writerGeneration) { + public MergeResult merge(List fileMetadataList, long writerGeneration) { // Here we will implementation of logic for merging files and reassign the row-ids // and creating the mapping of the old segment+id to new row id. // @@ -136,7 +136,7 @@ public MergeResult merge(Collection fileMetadataList, long writerG } @Override - public MergeResult merge(Collection fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { + public MergeResult merge(List fileMetadataList, RowIdMapping rowIdMapping, long writerGeneration) { // Here we will have implementation of the merge logic where we will have the mapping of the old row id to new id // and merging the files. // From ad3dd8b39e36de9cedbe4e75dc7c894decfb5a93 Mon Sep 17 00:00:00 2001 From: Raghuvansh Raj Date: Fri, 28 Nov 2025 18:26:34 +0530 Subject: [PATCH 110/112] Adding JNI abstractions for logging in rust through RustLoggerBridge (#19978) * Adding JNI abstractions for logging in rust through RustLoggerBridge Signed-off-by: Raghuvansh Raj * Adding logging for java in parquet-data-format module and cleaning up stale files Signed-off-by: Raghuvansh Raj --------- Signed-off-by: Raghuvansh Raj --- .../parquetdataformat/bridge/RustBridge.java | 5 + .../bridge/RustLoggerBridge.java | 34 +++ .../memory/MemoryPressureMonitor.java | 274 ------------------ .../parquetdataformat/vsr/ManagedVSR.java | 38 +-- .../parquetdataformat/vsr/VSRManager.java | 51 ++-- .../parquetdataformat/vsr/VSRPool.java | 34 +-- .../src/main/rust/src/lib.rs | 119 +++----- .../src/main/rust/src/logger.rs | 103 +++++++ .../src/main/rust/src/parquet_exec.rs | 24 -- .../src/main/rust/src/parquet_merge.rs | 6 +- .../src/main/rust/src/runtime.rs | 27 -- .../src/main/rust/src/stream.rs | 43 --- .../src/main/rust/src/substrait.rs | 37 --- .../src/main/rust/src/util.rs | 63 ---- 14 files changed, 222 insertions(+), 636 deletions(-) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustLoggerBridge.java delete mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java create mode 100644 modules/parquet-data-format/src/main/rust/src/logger.rs delete mode 100644 modules/parquet-data-format/src/main/rust/src/parquet_exec.rs delete mode 100644 modules/parquet-data-format/src/main/rust/src/runtime.rs delete mode 100644 modules/parquet-data-format/src/main/rust/src/stream.rs delete mode 100644 modules/parquet-data-format/src/main/rust/src/substrait.rs delete mode 100644 modules/parquet-data-format/src/main/rust/src/util.rs diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 042ea48e403f5..5d28e80ba3207 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -21,8 +21,13 @@ public class RustBridge { static { NativeLibraryLoader.load("parquet_dataformat_jni"); + + initLogger(); } + // Logger initialization method + public static native void initLogger(); + // Enhanced native methods that handle validation and provide better error reporting public static native void createWriter(String file, long schemaAddress) throws IOException; public static native void write(String file, long arrayAddress, long schemaAddress) throws IOException; diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustLoggerBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustLoggerBridge.java new file mode 100644 index 0000000000000..02b2f0953e309 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustLoggerBridge.java @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.bridge; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RustLoggerBridge { + + private static final Logger logger = LoggerFactory.getLogger(RustLoggerBridge.class); + + // Instance methods for direct Java usage + public static void logInfo(String message) { + logger.info(message); + } + + public static void logWarn(String message) { + logger.warn(message); + } + + public static void logError(String message) { + logger.error(message); + } + + public static void logDebug(String message) { + logger.debug(message); + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java deleted file mode 100644 index 382c8c8b647fb..0000000000000 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/memory/MemoryPressureMonitor.java +++ /dev/null @@ -1,274 +0,0 @@ -package com.parquet.parquetdataformat.memory; - -import org.opensearch.common.settings.Settings; - -import java.lang.management.ManagementFactory; -import java.lang.management.MemoryMXBean; -import java.lang.management.MemoryUsage; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; - -/** - * Monitors off-heap memory usage and triggers backpressure mechanisms. - * Tracks Arrow buffer allocations and provides pressure metrics for - * controlling writer creation and flush intervals. - */ -public class MemoryPressureMonitor { - - public enum PressureLevel { - LOW(0.0, 0.7), // < 70% utilization - MODERATE(0.7, 0.85), // 70-85% utilization - HIGH(0.85, 0.95), // 85-95% utilization - CRITICAL(0.95, 1.0); // > 95% utilization - - private final double min; - private final double max; - - PressureLevel(double min, double max) { - this.min = min; - this.max = max; - } - - public static PressureLevel fromRatio(double ratio) { - for (PressureLevel level : values()) { - if (ratio >= level.min && ratio < level.max) { - return level; - } - } - return CRITICAL; - } - } - - private final MemoryMXBean memoryBean; - private final ScheduledExecutorService scheduler; - private final AtomicLong directMemoryUsed; - private final AtomicLong directMemoryMax; - private final AtomicReference currentPressure; - private final AtomicLong allocationCount; - private final AtomicLong deallocationCount; - private final AtomicLong failedAllocationCount; - - // Configuration - private final double criticalThreshold; - private final double highThreshold; - private final long maxDirectMemory; - - public MemoryPressureMonitor(Settings settings) { - this.memoryBean = ManagementFactory.getMemoryMXBean(); - this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> { - Thread t = new Thread(r, "parquet-memory-monitor"); - t.setDaemon(true); - return t; - }); - - this.directMemoryUsed = new AtomicLong(0); - this.currentPressure = new AtomicReference<>(PressureLevel.LOW); - this.allocationCount = new AtomicLong(0); - this.deallocationCount = new AtomicLong(0); - this.failedAllocationCount = new AtomicLong(0); - - // Parse configuration - this.criticalThreshold = settings.getAsDouble("parquet.memory.critical_threshold", 0.95); - this.highThreshold = settings.getAsDouble("parquet.memory.high_threshold", 0.85); - this.maxDirectMemory = getMaxDirectMemory(); - this.directMemoryMax = new AtomicLong(maxDirectMemory); - - // Start monitoring - startMonitoring(); - } - - /** - * Checks if an allocation should be rejected based on current memory pressure. - * - * @param requestedBytes Number of bytes requested for allocation - * @return true if allocation should be rejected - */ - public boolean shouldRejectAllocation(long requestedBytes) { - PressureLevel pressure = currentPressure.get(); - - // Always reject if critical - if (pressure == PressureLevel.CRITICAL) { - return true; - } - - // Check if allocation would push us over threshold - long currentUsage = directMemoryUsed.get(); - long afterAllocation = currentUsage + requestedBytes; - double futureRatio = (double) afterAllocation / maxDirectMemory; - - return switch (pressure) { - case HIGH -> futureRatio > criticalThreshold; - case MODERATE -> futureRatio > highThreshold; - case LOW -> false; - case CRITICAL -> true; // Already handled above - }; - } - - /** - * Records an allocation event. - * - * @param size Size of the allocation - */ - public void recordAllocation(long size) { - directMemoryUsed.addAndGet(size); - allocationCount.incrementAndGet(); - updatePressureLevel(); - } - - /** - * Records a deallocation event. - * - * @param size Size of the deallocation - */ - public void recordDeallocation(long size) { - directMemoryUsed.addAndGet(-size); - deallocationCount.incrementAndGet(); - updatePressureLevel(); - } - - /** - * Records a failed allocation event. - * - * @param size Size of the failed allocation - * @param reason Reason for failure - */ - public void recordFailedAllocation(long size, String reason) { - failedAllocationCount.incrementAndGet(); - // Could log detailed failure information here - } - - /** - * Gets the current memory pressure as a ratio (0.0 to 1.0). - * - * @return Current memory pressure ratio - */ - public double getCurrentPressure() { - return (double) directMemoryUsed.get() / maxDirectMemory; - } - - /** - * Gets the current pressure level enum. - * - * @return Current PressureLevel - */ - public PressureLevel getCurrentPressureLevel() { - return currentPressure.get(); - } - - /** - * Gets current memory statistics. - * - * @return MemoryStats with current usage information - */ - public MemoryStats getStats() { - return new MemoryStats( - directMemoryUsed.get(), - maxDirectMemory, - getCurrentPressure(), - currentPressure.get(), - allocationCount.get(), - deallocationCount.get(), - failedAllocationCount.get() - ); - } - - /** - * Triggers early refresh if memory pressure is high. - * - * @return true if early refresh should be triggered - */ - public boolean shouldTriggerEarlyRefresh() { - PressureLevel pressure = currentPressure.get(); - return pressure == PressureLevel.HIGH || pressure == PressureLevel.CRITICAL; - } - - /** - * Gets recommended writer limit based on current memory pressure. - * - * @param baseLimit Base number of writers without pressure - * @return Adjusted writer limit - */ - public int getRecommendedWriterLimit(int baseLimit) { - return switch (currentPressure.get()) { - case LOW -> baseLimit; - case MODERATE -> (int) (baseLimit * 0.8); - case HIGH -> (int) (baseLimit * 0.5); - case CRITICAL -> 1; // Minimal writers only - }; - } - - private void startMonitoring() { - scheduler.scheduleAtFixedRate(this::updatePressureLevel, 1, 1, TimeUnit.SECONDS); - } - - private void updatePressureLevel() { - double ratio = getCurrentPressure(); - PressureLevel newLevel = PressureLevel.fromRatio(ratio); - PressureLevel oldLevel = currentPressure.getAndSet(newLevel); - - // Log pressure level changes - if (newLevel != oldLevel) { - System.out.println(String.format( - "[MEMORY] Pressure level changed: %s -> %s (%.2f%%)", - oldLevel, newLevel, ratio * 100)); - } - } - - private long getMaxDirectMemory() { - // Use heap max / 4 as a reasonable default for direct memory - long heapMax = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax(); - return heapMax > 0 ? heapMax / 4 : 1024 * 1024 * 1024; // 1GB fallback - } - - /** - * Closes the monitor and stops background tasks. - */ - public void close() { - scheduler.shutdown(); - try { - if (!scheduler.awaitTermination(5, TimeUnit.SECONDS)) { - scheduler.shutdownNow(); - } - } catch (InterruptedException e) { - scheduler.shutdownNow(); - Thread.currentThread().interrupt(); - } - } - - /** - * Memory statistics for monitoring. - */ - public static class MemoryStats { - private final long usedBytes; - private final long maxBytes; - private final double pressureRatio; - private final PressureLevel pressureLevel; - private final long allocationCount; - private final long deallocationCount; - private final long failedAllocationCount; - - public MemoryStats(long usedBytes, long maxBytes, double pressureRatio, - PressureLevel pressureLevel, long allocationCount, - long deallocationCount, long failedAllocationCount) { - this.usedBytes = usedBytes; - this.maxBytes = maxBytes; - this.pressureRatio = pressureRatio; - this.pressureLevel = pressureLevel; - this.allocationCount = allocationCount; - this.deallocationCount = deallocationCount; - this.failedAllocationCount = failedAllocationCount; - } - - public long getUsedBytes() { return usedBytes; } - public long getMaxBytes() { return maxBytes; } - public double getPressureRatio() { return pressureRatio; } - public PressureLevel getPressureLevel() { return pressureLevel; } - public long getAllocationCount() { return allocationCount; } - public long getDeallocationCount() { return deallocationCount; } - public long getFailedAllocationCount() { return failedAllocationCount; } - public long getAvailableBytes() { return maxBytes - usedBytes; } - } -} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java index 7d196c2fdfea7..3b4113b0abc00 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/ManagedVSR.java @@ -10,6 +10,8 @@ import org.apache.arrow.c.ArrowArray; import org.apache.arrow.c.ArrowSchema; import org.apache.arrow.c.Data; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.ReadWriteLock; @@ -23,6 +25,8 @@ */ public class ManagedVSR implements AutoCloseable { + private static final Logger logger = LogManager.getLogger(ManagedVSR.class); + private final String id; private final VectorSchemaRoot vsr; private final BufferAllocator allocator; @@ -109,9 +113,7 @@ public FieldVector getVector(String fieldName) { public void setState(VSRState newState) { VSRState oldState = state.getAndSet(newState); - System.out.println(String.format( - "[VSR] State transition: %s -> %s for VSR %s", - oldState, newState, id)); + logger.debug("State transition: {} -> {} for VSR {}", oldState, newState, id); } /** @@ -226,34 +228,4 @@ public String toString() { return String.format("ManagedVSR{id='%s', state=%s, rows=%d, immutable=%s}", id, state.get(), getRowCount(), isImmutable()); } - - public static void main(String[] args) { - RootAllocator allocator = new RootAllocator(); - BigIntVector vector = new BigIntVector("vector", allocator); - vector.allocateNew(10); - vector.set(0, 100); // Set position 0 -// vector.setNull(1); - vector.set(2, 300); // Set position 2 -// Position 1 is not set! - vector.setValueCount(3); // Claims vector has 3 elements - -// Position 1 now contains undefined data -// long value = vector.get(1); // Could be any value! - System.out.println(readBit(vector.getValidityBuffer(), 0)); - System.out.println(readBit(vector.getValidityBuffer(), 1)); - System.out.println(readBit(vector.getValidityBuffer(), 2)); - System.out.println(readBit(vector.getValidityBuffer(), 3)); - } - - public static byte readBit(ArrowBuf validityBuffer, long index) { - // it can be observed that some logic is duplicate of the logic in setValidityBit. - // this is because JIT cannot always remove the if branch in setValidityBit, - // so we give a dedicated implementation for setting bits. - final long byteIndex = byteIndex(index); - - // the byte is promoted to an int, because according to Java specification, - // bytes will be promoted to ints automatically, upon expression evaluation. - // by promoting it manually, we avoid the unnecessary conversions. - return validityBuffer.getByte(byteIndex); - } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java index 2c1b32fd0807c..998e1c26794f3 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -11,11 +11,12 @@ import com.parquet.parquetdataformat.bridge.ArrowExport; import com.parquet.parquetdataformat.bridge.RustBridge; import com.parquet.parquetdataformat.memory.ArrowBufferPool; -import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.types.pojo.Field; import org.apache.arrow.vector.types.pojo.Schema; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; @@ -35,6 +36,9 @@ * */ public class VSRManager { + + private static final Logger logger = LogManager.getLogger(VSRManager.class); + private ManagedVSR managedVSR; private Map fieldVectorMap; private final Schema schema; @@ -45,11 +49,8 @@ public VSRManager(String fileName, Schema schema, ArrowBufferPool arrowBufferPoo this.fileName = fileName; this.schema = schema; - // Create memory monitor and buffer pool - MemoryPressureMonitor memoryMonitor = new MemoryPressureMonitor(org.opensearch.common.settings.Settings.EMPTY); - // Create VSR pool - this.vsrPool = new VSRPool("pool-" + fileName, schema, memoryMonitor, arrowBufferPool); + this.vsrPool = new VSRPool("pool-" + fileName, schema, arrowBufferPool); // Get active VSR from pool this.managedVSR = vsrPool.getActiveVSR(); @@ -87,7 +88,7 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep throw new IOException("Cannot add document - VSR is not active: " + managedVSR.getState()); } - System.out.println("[JAVA] addToManagedVSR called, current row count: " + managedVSR.getRowCount()); + logger.debug("addToManagedVSR called for {}, current row count: {}", fileName, managedVSR.getRowCount()); try { // Since ParquetDocumentInput now works directly with ManagedVSR, @@ -96,30 +97,30 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep // which will increment the row count. WriteResult result = document.addToWriter(); - System.out.println("[JAVA] After adding document, row count: " + managedVSR.getRowCount()); + logger.debug("After adding document to {}, row count: {}", fileName, managedVSR.getRowCount()); // Check for VSR rotation AFTER successful document processing maybeRotateActiveVSR(); return result; } catch (Exception e) { - System.out.println("[JAVA] ERROR in addToManagedVSR: " + e.getMessage()); + logger.error("Error in addToManagedVSR for {}: {}", fileName, e.getMessage(), e); throw new IOException("Failed to add document: " + e.getMessage(), e); } } public String flush(FlushIn flushIn) throws IOException { - System.out.println("[JAVA] flush called, row count: " + managedVSR.getRowCount()); + logger.info("Flush called for {}, row count: {}", fileName, managedVSR.getRowCount()); try { // Only flush if we have data if (managedVSR.getRowCount() == 0) { - System.out.println("[JAVA] No data to flush, returning null"); + logger.debug("No data to flush for {}, returning null", fileName); return null; } // Transition VSR to FROZEN state before flushing managedVSR.setState(VSRState.FROZEN); - System.out.println("[JAVA] Flushing " + managedVSR.getRowCount() + " rows"); + logger.info("Flushing {} rows for {}", managedVSR.getRowCount(), fileName); // Transition to FLUSHING state managedVSR.setState(VSRState.FLUSHING); @@ -129,11 +130,11 @@ public String flush(FlushIn flushIn) throws IOException { RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); RustBridge.closeWriter(fileName); } - System.out.println("[JAVA] Successfully flushed data"); + logger.info("Successfully flushed data for {}", fileName); return fileName; } catch (Exception e) { - System.out.println("[JAVA] ERROR in flush: " + e.getMessage()); + logger.error("Error in flush for {}: {}", fileName, e.getMessage(), e); throw new IOException("Failed to flush data: " + e.getMessage(), e); } } @@ -145,7 +146,7 @@ public void close() { RustBridge.closeWriter(fileName); RustBridge.flushToDisk(fileName); } catch (IOException e) { - System.err.println("Warning: Failed to close/flush writer: " + e.getMessage()); + logger.warn("Failed to close/flush writer for {}: {}", fileName, e.getMessage(), e); } // Close VSR Pool @@ -153,7 +154,7 @@ public void close() { managedVSR = null; } catch (Exception e) { - System.err.println("Error during close: " + e.getMessage()); + logger.error("Error during close for {}: {}", fileName, e.getMessage(), e); } } @@ -172,13 +173,13 @@ public void maybeRotateActiveVSR() throws IOException { boolean rotated = vsrPool.maybeRotateActiveVSR(); if (rotated) { - System.out.println("[JAVA] VSR rotation occurred after document addition"); + logger.debug("VSR rotation occurred after document addition for {}", fileName); // Get the frozen VSR that was just created by rotation ManagedVSR frozenVSR = vsrPool.getFrozenVSR(); if (frozenVSR != null) { - System.out.println("[JAVA] Processing frozen VSR: " + frozenVSR.getId() + - " with " + frozenVSR.getRowCount() + " rows"); + logger.debug("Processing frozen VSR: {} with {} rows for {}", + frozenVSR.getId(), frozenVSR.getRowCount(), fileName); // Write the frozen VSR data immediately frozenVSR.setState(VSRState.FLUSHING); @@ -186,13 +187,13 @@ public void maybeRotateActiveVSR() throws IOException { RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); } - System.out.println("[JAVA] Successfully wrote frozen VSR data"); + logger.debug("Successfully wrote frozen VSR data for {}", fileName); // Complete the VSR processing vsrPool.completeVSR(frozenVSR); vsrPool.unsetFrozenVSR(); } else { - System.err.println("[JAVA] WARNING: Rotation occurred but no frozen VSR found"); + logger.warn("Rotation occurred but no frozen VSR found for {}", fileName); } // Update to new active VSR @@ -204,11 +205,11 @@ public void maybeRotateActiveVSR() throws IOException { // Reinitialize field vector map with new VSR reinitializeFieldVectorMap(); - System.out.println("[JAVA] VSR rotation completed, new active VSR: " + managedVSR.getId() + - ", row count: " + managedVSR.getRowCount()); + logger.debug("VSR rotation completed for {}, new active VSR: {}, row count: {}", + fileName, managedVSR.getId(), managedVSR.getRowCount()); } } catch (IOException e) { - System.err.println("[JAVA] Error during VSR rotation: " + e.getMessage()); + logger.error("Error during VSR rotation for {}: {}", fileName, e.getMessage(), e); throw e; } } @@ -226,7 +227,7 @@ private void checkAndHandleVSRRotation() throws IOException { // Check if we got a different VSR (rotation occurred) if (currentActive != managedVSR) { - System.out.println("[JAVA] VSR rotation detected, updating references"); + logger.debug("VSR rotation detected for {}, updating references", fileName); // Update the managed VSR reference managedVSR = currentActive; @@ -235,7 +236,7 @@ private void checkAndHandleVSRRotation() throws IOException { reinitializeFieldVectorMap(); // Note: Writer initialization is not needed per VSR as it's per file - System.out.println("[JAVA] VSR rotation completed, new row count: " + managedVSR.getRowCount()); + logger.debug("VSR rotation completed for {}, new row count: {}", fileName, managedVSR.getRowCount()); } } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java index 3759d7663a79c..4c3317200b712 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRPool.java @@ -3,8 +3,9 @@ import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.VectorSchemaRoot; import org.apache.arrow.vector.types.pojo.Schema; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import com.parquet.parquetdataformat.memory.ArrowBufferPool; -import com.parquet.parquetdataformat.memory.MemoryPressureMonitor; import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; @@ -18,9 +19,10 @@ */ public class VSRPool { + private static final Logger logger = LogManager.getLogger(VSRPool.class); + private final Schema schema; private final ArrowBufferPool bufferPool; - private final MemoryPressureMonitor memoryMonitor; private final String poolId; // VSR lifecycle management @@ -32,12 +34,10 @@ public class VSRPool { // Configuration private final int maxRowsPerVSR; - public VSRPool(String poolId, Schema schema, MemoryPressureMonitor memoryMonitor, ArrowBufferPool arrowBufferPool) { + public VSRPool(String poolId, Schema schema, ArrowBufferPool arrowBufferPool) { this.poolId = poolId; this.schema = schema; this.bufferPool = arrowBufferPool; - this.memoryMonitor = memoryMonitor; - this.activeVSR = new AtomicReference<>(); this.frozenVSR = new AtomicReference<>(); this.allVSRs = new ConcurrentHashMap<>(); @@ -211,16 +211,6 @@ public PoolStats getStats() { ); } - /** - * Checks if backpressure should be applied. - * - * @return true if frozen VSR slot is occupied or memory pressure is critical - */ - public boolean shouldApplyBackpressure() { - return frozenVSR.get() != null || - memoryMonitor.getCurrentPressureLevel() == MemoryPressureMonitor.PressureLevel.CRITICAL; - } - /** * Closes the pool and cleans up all resources. */ @@ -237,8 +227,6 @@ public void close() { frozen.close(); } - memoryMonitor.close(); - // Close any remaining VSRs allVSRs.values().forEach(ManagedVSR::close); allVSRs.clear(); @@ -291,10 +279,11 @@ private void freezeVSR(ManagedVSR vsr) { ManagedVSR previousFrozen = frozenVSR.get(); if (previousFrozen != null) { // NEVER blindly overwrite a frozen VSR - this would cause data loss - System.err.println("[VSRPool] ERROR: Attempting to freeze VSR when frozen slot is occupied! " + - "Previous VSR: " + previousFrozen.getId() + " (" + previousFrozen.getRowCount() + " rows), " + - "New VSR: " + vsr.getId() + " (" + vsr.getRowCount() + " rows). " + - "This indicates a logic error - frozen VSR should be consumed before replacement."); + logger.error("Attempting to freeze VSR when frozen slot is occupied! " + + "Previous VSR: {} ({} rows), New VSR: {} ({} rows). " + + "This indicates a logic error - frozen VSR should be consumed before replacement.", + previousFrozen.getId(), previousFrozen.getRowCount(), + vsr.getId(), vsr.getRowCount()); // Return VSR to ACTIVE state to prevent state corruption vsr.setState(VSRState.ACTIVE); @@ -312,8 +301,7 @@ private void freezeVSR(ManagedVSR vsr) { } private boolean shouldRotateVSR(ManagedVSR vsr) { - return vsr.getRowCount() >= maxRowsPerVSR || - memoryMonitor.shouldTriggerEarlyRefresh(); + return vsr.getRowCount() >= maxRowsPerVSR; } /** diff --git a/modules/parquet-data-format/src/main/rust/src/lib.rs b/modules/parquet-data-format/src/main/rust/src/lib.rs index 14c3c91cb2b84..a6381876acfdf 100644 --- a/modules/parquet-data-format/src/main/rust/src/lib.rs +++ b/modules/parquet-data-format/src/main/rust/src/lib.rs @@ -1,6 +1,6 @@ use jni::objects::{JClass, JString}; use jni::sys::{jint, jlong}; -use jni::JNIEnv; +use jni::{JNIEnv, JavaVM}; use dashmap::DashMap; use arrow::record_batch::RecordBatch; use parquet::arrow::ArrowWriter; @@ -8,12 +8,10 @@ use std::fs::File; use std::sync::{Arc, Mutex}; use lazy_static::lazy_static; use arrow::ffi::{FFI_ArrowSchema, FFI_ArrowArray}; -use std::fs::OpenOptions; -use std::io::Write; -use chrono::Utc; use parquet::basic::{Compression, ZstdLevel}; use parquet::file::properties::WriterProperties; +pub mod logger; pub mod parquet_merge; pub use parquet_merge::*; @@ -27,21 +25,15 @@ struct NativeParquetWriter; impl NativeParquetWriter { fn create_writer(filename: String, schema_address: i64) -> Result<(), Box> { - let log_msg = format!("[RUST] create_writer called for file: {}, schema_address: {}\n", filename, schema_address); - println!("{}", log_msg.trim()); - Self::log_to_file(&log_msg); + logger::log_info(&format!("[RUST] create_writer called for file: {}, schema_address: {}", filename, schema_address)); let arrow_schema = unsafe { FFI_ArrowSchema::from_raw(schema_address as *mut _) }; let schema = Arc::new(arrow::datatypes::Schema::try_from(&arrow_schema)?); - let schema_msg = format!("[RUST] Schema created with {} fields\n", schema.fields().len()); - println!("{}", schema_msg.trim()); - Self::log_to_file(&schema_msg); + logger::log_info(&format!("[RUST] Schema created with {} fields", schema.fields().len())); for (i, field) in schema.fields().iter().enumerate() { - let field_msg = format!("[RUST] Field {}: {} ({})\n", i, field.name(), field.data_type()); - println!("{}", field_msg.trim()); - Self::log_to_file(&field_msg); + logger::log_debug(&format!("[RUST] Field {}: {} ({})", i, field.name(), field.data_type())); } let file = File::create(&filename)?; @@ -56,9 +48,7 @@ impl NativeParquetWriter { } fn write_data(filename: String, array_address: i64, schema_address: i64) -> Result<(), Box> { - let log_msg = format!("[RUST] write_data called for file: {}, array_address: {}, schema_address: {}\n", filename, array_address, schema_address); - println!("{}", log_msg.trim()); - Self::log_to_file(&log_msg); + logger::log_info(&format!("[RUST] write_data called for file: {}, array_address: {}, schema_address: {}", filename, array_address, schema_address)); unsafe { let arrow_schema = FFI_ArrowSchema::from_raw(schema_address as *mut _); @@ -66,19 +56,13 @@ impl NativeParquetWriter { match arrow::ffi::from_ffi(arrow_array, &arrow_schema) { Ok(array_data) => { - let data_msg = format!("[RUST] Successfully imported array_data, length: {}\n", array_data.len()); - println!("{}", data_msg.trim()); - Self::log_to_file(&data_msg); + logger::log_debug(&format!("[RUST] Successfully imported array_data, length: {}", array_data.len())); let array: Arc = arrow::array::make_array(array_data); - let array_msg = format!("[RUST] Array type: {:?}, length: {}\n", array.data_type(), array.len()); - println!("{}", array_msg.trim()); - Self::log_to_file(&array_msg); + logger::log_debug(&format!("[RUST] Array type: {:?}, length: {}", array.data_type(), array.len())); if let Some(struct_array) = array.as_any().downcast_ref::() { - let struct_msg = format!("[RUST] Successfully cast to StructArray with {} columns\n", struct_array.num_columns()); - println!("{}", struct_msg.trim()); - Self::log_to_file(&struct_msg); + logger::log_debug(&format!("[RUST] Successfully cast to StructArray with {} columns", struct_array.num_columns())); let schema = Arc::new(arrow::datatypes::Schema::new( struct_array.fields().clone() @@ -89,36 +73,24 @@ impl NativeParquetWriter { struct_array.columns().to_vec(), )?; - let batch_msg = format!("[RUST] Created RecordBatch with {} rows and {} columns\n", record_batch.num_rows(), record_batch.num_columns()); - println!("{}", batch_msg.trim()); - Self::log_to_file(&batch_msg); + logger::log_info(&format!("[RUST] Created RecordBatch with {} rows and {} columns", record_batch.num_rows(), record_batch.num_columns())); if let Some(writer_arc) = WRITER_MANAGER.get(&filename) { - let write_msg = "[RUST] Writing RecordBatch to file\n"; - println!("{}", write_msg.trim()); - Self::log_to_file(write_msg); + logger::log_debug("[RUST] Writing RecordBatch to file"); let mut writer = writer_arc.lock().unwrap(); writer.write(&record_batch)?; - let success_msg = "[RUST] Successfully wrote RecordBatch\n"; - println!("{}", success_msg.trim()); - Self::log_to_file(success_msg); + logger::log_info("[RUST] Successfully wrote RecordBatch"); } else { - let error_msg = format!("[RUST] ERROR: No writer found for file: {}\n", filename); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: No writer found for file: {}", filename)); } Ok(()) } else { - let error_msg = format!("[RUST] ERROR: Array is not a StructArray, type: {:?}\n", array.data_type()); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: Array is not a StructArray, type: {:?}", array.data_type())); Err("Expected struct array from VectorSchemaRoot".into()) } } Err(e) => { - let error_msg = format!("[RUST] ERROR: Failed to import from FFI: {:?}\n", e); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: Failed to import from FFI: {:?}", e)); Err(e.into()) } } @@ -126,9 +98,7 @@ impl NativeParquetWriter { } fn close_writer(filename: String) -> Result<(), Box> { - let log_msg = format!("[RUST] close_writer called for file: {}\n", filename); - println!("{}", log_msg.trim()); - Self::log_to_file(&log_msg); + logger::log_info(&format!("[RUST] close_writer called for file: {}", filename)); if let Some((_, writer_arc)) = WRITER_MANAGER.remove(&filename) { match Arc::try_unwrap(writer_arc) { @@ -136,23 +106,17 @@ impl NativeParquetWriter { let mut writer = mutex.into_inner().unwrap(); match writer.close() { Ok(_) => { - let success_msg = format!("[RUST] Successfully closed writer for file: {}\n", filename); - println!("{}", success_msg.trim()); - Self::log_to_file(&success_msg); + logger::log_info(&format!("[RUST] Successfully closed writer for file: {}", filename)); Ok(()) } Err(e) => { - let error_msg = format!("[RUST] ERROR: Failed to close writer for file: {}\n", filename); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: Failed to close writer for file: {}", filename)); Err(e.into()) } } } Err(_) => { - let error_msg = format!("[RUST] ERROR: Writer still in use for file: {}\n", filename); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: Writer still in use for file: {}", filename)); Err("Writer still in use".into()) } } @@ -162,37 +126,27 @@ impl NativeParquetWriter { } fn flush_to_disk(filename: String) -> Result<(), Box> { - let log_msg = format!("[RUST] fsync_file called for file: {}\n", filename); - println!("{}", log_msg.trim()); - Self::log_to_file(&log_msg); + logger::log_info(&format!("[RUST] fsync_file called for file: {}", filename)); if let Some(file) = FILE_MANAGER.get_mut(&filename) { match file.sync_all() { Ok(_) => { - let success_msg = format!("[RUST] Successfully fsynced file: {}\n", filename); - println!("{}", success_msg.trim()); - Self::log_to_file(&success_msg); + logger::log_info(&format!("[RUST] Successfully fsynced file: {}", filename)); Ok(()) } Err(e) => { - let error_msg = format!("[RUST] ERROR: Failed to fsync file: {}\n", filename); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: Failed to fsync file: {}", filename)); Err(e.into()) } } } else { - let error_msg = format!("[RUST] ERROR: File not found for fsync: {}\n", filename); - println!("{}", error_msg.trim()); - Self::log_to_file(&error_msg); + logger::log_error(&format!("[RUST] ERROR: File not found for fsync: {}", filename)); Err("File not found".into()) } } fn get_filtered_writer_memory_usage(path_prefix: String) -> Result> { - let _log_msg = format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}\n", path_prefix); -// println!("{}", _log_msg.trim()); -// Self::log_to_file(&_log_msg); + logger::log_debug(&format!("[RUST] get_filtered_writer_memory_usage called with prefix: {}", path_prefix)); let mut total_memory = 0; let mut writer_count = 0; @@ -208,29 +162,24 @@ impl NativeParquetWriter { total_memory += memory_usage; writer_count += 1; - let usage_msg = format!("[RUST] Filtered Writer {}: {} bytes\n", filename, memory_usage); - println!("{}", usage_msg.trim()); - Self::log_to_file(&usage_msg); + logger::log_debug(&format!("[RUST] Filtered Writer {}: {} bytes", filename, memory_usage)); } } } - let _total_msg = format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes\n", writer_count, path_prefix, total_memory); - //println!("{}", _total_msg.trim()); - //Self::log_to_file(&_total_msg); + logger::log_debug(&format!("[RUST] Total memory usage across {} filtered ArrowWriters (prefix: {}): {} bytes", writer_count, path_prefix, total_memory)); Ok(total_memory) } +} - fn log_to_file(message: &str) { - if let Ok(mut file) = OpenOptions::new() - .create(true) - .append(true) - .open("/tmp/rust_parquet_debug.log") { - let timestamp = Utc::now().format("%Y-%m-%d %H:%M:%S%.3f UTC"); - let timestamped_message = format!("[{}] {}", timestamp, message); - let _ = file.write_all(timestamped_message.as_bytes()); - } +#[unsafe(no_mangle)] +pub extern "system" fn Java_com_parquet_parquetdataformat_bridge_RustBridge_initLogger( + env: JNIEnv, + _class: JClass, +) { + if let Ok(jvm) = env.get_java_vm() { + logger::init_logger(jvm); } } diff --git a/modules/parquet-data-format/src/main/rust/src/logger.rs b/modules/parquet-data-format/src/main/rust/src/logger.rs new file mode 100644 index 0000000000000..313cae61806a1 --- /dev/null +++ b/modules/parquet-data-format/src/main/rust/src/logger.rs @@ -0,0 +1,103 @@ +use jni::{JNIEnv, JavaVM}; +use std::sync::OnceLock; + +static JAVA_VM: OnceLock = OnceLock::new(); + +/// Initialize the logger with the JVM instance +pub fn init_logger(jvm: JavaVM) { + JAVA_VM.set(jvm).ok(); +} + +/// Log an info message through JNI callback to Java +pub fn log_info(message: &str) { + if let Some(jvm) = JAVA_VM.get() { + if let Ok(mut env) = jvm.attach_current_thread() { + call_java_logger(&mut env, "logInfo", message); + } + } +} + +/// Log a warning message through JNI callback to Java +pub fn log_warn(message: &str) { + if let Some(jvm) = JAVA_VM.get() { + if let Ok(mut env) = jvm.attach_current_thread() { + call_java_logger(&mut env, "logWarn", message); + } + } +} + +/// Log an error message through JNI callback to Java +pub fn log_error(message: &str) { + if let Some(jvm) = JAVA_VM.get() { + if let Ok(mut env) = jvm.attach_current_thread() { + call_java_logger(&mut env, "logError", message); + } + } +} + +/// Log a debug message through JNI callback to Java +pub fn log_debug(message: &str) { + if let Some(jvm) = JAVA_VM.get() { + if let Ok(mut env) = jvm.attach_current_thread() { + call_java_logger(&mut env, "logDebug", message); + } + } +} + +/// Internal function to call the Java logger method +fn call_java_logger(env: &mut JNIEnv, method_name: &str, message: &str) { + let result = (|| -> Result<(), Box> { + // Find the RustLoggerBridge class + let class = env.find_class("com/parquet/parquetdataformat/bridge/RustLoggerBridge")?; + + // Convert Rust string to Java string + let java_message = env.new_string(message)?; + + // Call the static method + env.call_static_method( + class, + method_name, + "(Ljava/lang/String;)V", + &[(&java_message).into()], + )?; + + Ok(()) + })(); + + // If logging fails, fall back to println as last resort + if result.is_err() { + println!("[RUST_LOG_FALLBACK] {}: {}", method_name, message); + } +} + +/// Macro for easy info logging +#[macro_export] +macro_rules! rust_log_info { + ($($arg:tt)*) => { + $crate::logger::log_info(&format!($($arg)*)) + }; +} + +/// Macro for easy warning logging +#[macro_export] +macro_rules! rust_log_warn { + ($($arg:tt)*) => { + $crate::logger::log_warn(&format!($($arg)*)) + }; +} + +/// Macro for easy error logging +#[macro_export] +macro_rules! rust_log_error { + ($($arg:tt)*) => { + $crate::logger::log_error(&format!($($arg)*)) + }; +} + +/// Macro for easy debug logging +#[macro_export] +macro_rules! rust_log_debug { + ($($arg:tt)*) => { + $crate::logger::log_debug(&format!($($arg)*)) + }; +} diff --git a/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs b/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs deleted file mode 100644 index 9fee54317d09a..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/parquet_exec.rs +++ /dev/null @@ -1,24 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use anyhow::Result; - -/// Parquet-specific execution utilities - placeholder implementation -pub struct ParquetExecutor; - -impl ParquetExecutor { - pub fn new() -> Self { - Self - } - - /// Create a listing table for Parquet files - placeholder - pub async fn create_parquet_table( - &self, - table_path: &str, - ) -> Result { - // Placeholder implementation - log::info!("Creating parquet table for path: {}", table_path); - Ok(1) // Return dummy table ID - } -} diff --git a/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs index 03f3498fbef59..b4f368bd49375 100644 --- a/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs +++ b/modules/parquet-data-format/src/main/rust/src/parquet_merge.rs @@ -14,6 +14,8 @@ use arrow::record_batch::RecordBatch; use parquet::arrow::arrow_reader::ParquetRecordBatchReaderBuilder; use parquet::arrow::arrow_writer::ArrowWriter; +use crate::{rust_log_info, rust_log_error}; + // Constants const READER_BATCH_SIZE: usize = 8192; const WRITER_BATCH_SIZE: usize = 8192; @@ -269,11 +271,11 @@ fn catch_unwind Result<(), Box>>( // Logging functions fn log_info(message: &str) { - println!("[INFO] {}", message); + rust_log_info!("{}", message); } fn log_error(message: &str) { - eprintln!("[ERROR] {}", message); + rust_log_error!("{}", message); } // Close function diff --git a/modules/parquet-data-format/src/main/rust/src/runtime.rs b/modules/parquet-data-format/src/main/rust/src/runtime.rs deleted file mode 100644 index bcd48a7dee58b..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/runtime.rs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use tokio::runtime::Runtime; -use std::future::Future; - -/// Manages the Tokio runtime for async operations -pub struct RuntimeManager { - runtime: Runtime, -} - -impl RuntimeManager { - pub fn new() -> Self { - // Placeholder - - let runtime = Runtime::new().expect("Failed to create Tokio runtime"); - Self { runtime } - } - - pub fn block_on(&self, future: F) -> F::Output - where - F: Future, - { - self.runtime.block_on(future) - } -} diff --git a/modules/parquet-data-format/src/main/rust/src/stream.rs b/modules/parquet-data-format/src/main/rust/src/stream.rs deleted file mode 100644 index 2fe30f941223b..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/stream.rs +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use anyhow::Result; -use serde_json; - -/// Wrapper for DataFusion record batch streams - placeholder implementation -pub struct RecordBatchStreamWrapper { - batch_count: u32, - is_placeholder: bool, -} - -impl RecordBatchStreamWrapper { - pub fn new_placeholder() -> Self { - Self { - batch_count: 0, - is_placeholder: true, - } - } - - pub async fn next_batch(&mut self) -> Result> { - // Return placeholder data for first few calls, then None - if self.is_placeholder { - if self.batch_count < 2 { - self.batch_count += 1; - let placeholder_data = serde_json::json!({ - "rows": [ - {"id": self.batch_count, "name": format!("placeholder_row_{}", self.batch_count)} - ], - "num_rows": 1, - "num_columns": 2 - }); - Ok(Some(serde_json::to_string(&placeholder_data)?)) - } else { - Ok(None) // End of stream - } - } else { - // Real implementation would go here - Ok(None) - } - } -} diff --git a/modules/parquet-data-format/src/main/rust/src/substrait.rs b/modules/parquet-data-format/src/main/rust/src/substrait.rs deleted file mode 100644 index d8ca0f2846fd7..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/substrait.rs +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use datafusion::execution::context::SessionContext; -use crate::stream::RecordBatchStreamWrapper; -use anyhow::Result; - -/// Executes Substrait query plans -pub struct SubstraitExecutor; - -impl SubstraitExecutor { - pub fn new() -> Self { - Self - } - - pub async fn execute_plan( - &self, - session_context_ptr: *mut SessionContext, - substrait_plan_bytes: &[u8], - ) -> Result<*mut RecordBatchStreamWrapper> { - // Placeholder implementation - would normally: - // 1. Parse Substrait plan from substrait_plan_bytes - // 2. Convert to DataFusion logical plan using datafusion-substrait - // 3. Execute using the session context - // 4. Return actual record batch stream - - log::info!("Executing Substrait plan with {} bytes for session: {:?}", - substrait_plan_bytes.len(), session_context_ptr); - - // For now, return a placeholder stream - let wrapper = RecordBatchStreamWrapper::new_placeholder(); - let wrapper_ptr = Box::into_raw(Box::new(wrapper)); - - Ok(wrapper_ptr) - } -} diff --git a/modules/parquet-data-format/src/main/rust/src/util.rs b/modules/parquet-data-format/src/main/rust/src/util.rs deleted file mode 100644 index 5055c1312791a..0000000000000 --- a/modules/parquet-data-format/src/main/rust/src/util.rs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - */ - -use jni::JNIEnv; -use jni::objects::{JObjectArray, JString}; -use std::collections::HashMap; -use anyhow::Result; - -/// Parse a string map from JNI arrays -pub fn parse_string_map( - env: &mut JNIEnv, - keys: JObjectArray, - values: JObjectArray, -) -> Result> { - let mut map = HashMap::new(); - - let keys_len = env.get_array_length(&keys)?; - let values_len = env.get_array_length(&values)?; - - if keys_len != values_len { - return Err(anyhow::anyhow!("Keys and values arrays must have the same length")); - } - - for i in 0..keys_len { - let key_obj = env.get_object_array_element(&keys, i)?; - let value_obj = env.get_object_array_element(&values, i)?; - - let key_jstring = JString::from(key_obj); - let value_jstring = JString::from(value_obj); - - let key_str = env.get_string(&key_jstring)?; - let value_str = env.get_string(&value_jstring)?; - - map.insert(key_str.to_string_lossy().to_string(), value_str.to_string_lossy().to_string()); - } - - Ok(map) -} - -// Parse a string map from JNI arrays -pub fn parse_string_arr( - env: &mut JNIEnv, - files: JObjectArray, -) -> Result> { - let length = env.get_array_length(&files).unwrap(); - let mut rust_strings: Vec = Vec::with_capacity(length as usize); - for i in 0..length { - let file_obj = env.get_object_array_element(&files, i).unwrap(); - let jstring = JString::from(file_obj); - let rust_str: String = env - .get_string(&jstring) - .expect("Couldn't get java string!") - .into(); - rust_strings.push(rust_str); - } - Ok(rust_strings) -} - -/// Throw a Java exception -pub fn throw_exception(env: &mut JNIEnv, message: &str) { - let _ = env.throw_new("java/lang/RuntimeException", message); -} From 3e0daa3a82ad11b980d2c42f54b813ba982f4394 Mon Sep 17 00:00:00 2001 From: Bukhtawar Khan Date: Sun, 30 Nov 2025 13:05:48 +0530 Subject: [PATCH 111/112] Refactor stream handling for DF execution (#20076) * Refactor stream handling for DF execution * Change to Buffer Allocator for DF execution * Introduce RecordBatchIterator and integrate with collector * Minor fixup * Update VSRManager to update field vector atomically * Fixup * Fixup * Fixup * Test fixup * Integrate with AsyncRecordBatchIterator * Fix up --- .../execution/jni/NativeHandle.java | 2 +- .../execution/jni/RefCountedNativeHandle.java | 1 + .../bridge/NativeParquetWriter.java | 62 +++++++++ .../parquetdataformat/bridge/RustBridge.java | 1 + .../parquetdataformat/vsr/VSRManager.java | 126 +++++++++-------- .../datafusion/DatafusionEngine.java | 62 ++++----- .../datafusion/RecordBatchStream.java | 131 +++++------------- .../datafusion/jni/handle/ReaderHandle.java | 6 +- .../datafusion/jni/handle/StreamHandle.java | 92 +++++++++++- .../search/AsyncRecordBatchIterator.java | 44 ++++++ .../datafusion/search/DatafusionReader.java | 31 ++--- .../search/RecordBatchIterator.java | 45 ++++++ .../DataFusionReaderManagerTests.java | 9 +- .../datafusion/DataFusionServiceTests.java | 7 +- .../datafusion/RecordBatchIteratorTests.java | 100 +++++++++++++ 15 files changed, 489 insertions(+), 230 deletions(-) create mode 100644 modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeParquetWriter.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/AsyncRecordBatchIterator.java create mode 100644 plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/RecordBatchIterator.java create mode 100644 plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/RecordBatchIteratorTests.java diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java index b641cc4a526d1..0762c142f0856 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/NativeHandle.java @@ -43,7 +43,7 @@ protected NativeHandle(long ptr) { * Ensures the handle is still open. * @throws IllegalStateException if the handle has been closed */ - protected void ensureOpen() { + public void ensureOpen() { if (closed.get()) { throw new IllegalStateException("Handle already closed"); } diff --git a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java index 1a3e2bbefad4e..57f88a5ccb25d 100644 --- a/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java +++ b/libs/vectorized-exec-spi/src/main/java/org/opensearch/vectorized/execution/jni/RefCountedNativeHandle.java @@ -42,6 +42,7 @@ public void retain() { */ @Override public final void close() { + ensureOpen(); if (refCount.decrementAndGet() == 0) { super.close(); } diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeParquetWriter.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeParquetWriter.java new file mode 100644 index 0000000000000..1ffa170c0ad98 --- /dev/null +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/NativeParquetWriter.java @@ -0,0 +1,62 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package com.parquet.parquetdataformat.bridge; + +import java.io.Closeable; +import java.io.IOException; + +/** + * Type-safe handle for native Parquet writer with lifecycle management. + */ +public class NativeParquetWriter implements Closeable { + + private final String filePath; + + /** + * Creates a new native Parquet writer. + * @param filePath path to the Parquet file + * @param schemaAddress Arrow C Data Interface schema pointer + * @throws IOException if writer creation fails + */ + public NativeParquetWriter(String filePath, long schemaAddress) throws IOException { + this.filePath = filePath; + RustBridge.createWriter(filePath, schemaAddress); + } + + /** + * Writes a batch to the Parquet file. + * @param arrayAddress Arrow C Data Interface array pointer + * @param schemaAddress Arrow C Data Interface schema pointer + * @throws IOException if write fails + */ + public void write(long arrayAddress, long schemaAddress) throws IOException { + RustBridge.write(filePath, arrayAddress, schemaAddress); + } + + /** + * Flushes buffered data to disk. + * @throws IOException if flush fails + */ + public void flush() throws IOException { + RustBridge.flushToDisk(filePath); + } + + @Override + public void close() { + try { + RustBridge.closeWriter(filePath); + } catch (IOException e) { + throw new RuntimeException("Failed to close Parquet writer for " + filePath, e); + } + } + + public String getFilePath() { + return filePath; + } +} diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java index 5d28e80ba3207..408ef74ea44f7 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/bridge/RustBridge.java @@ -33,6 +33,7 @@ public class RustBridge { public static native void write(String file, long arrayAddress, long schemaAddress) throws IOException; public static native void closeWriter(String file) throws IOException; public static native void flushToDisk(String file) throws IOException; + public static native long getFilteredNativeBytesUsed(String pathPrefix); diff --git a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java index 998e1c26794f3..602402e31001d 100644 --- a/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java +++ b/modules/parquet-data-format/src/main/java/com/parquet/parquetdataformat/vsr/VSRManager.java @@ -9,7 +9,7 @@ package com.parquet.parquetdataformat.vsr; import com.parquet.parquetdataformat.bridge.ArrowExport; -import com.parquet.parquetdataformat.bridge.RustBridge; +import com.parquet.parquetdataformat.bridge.NativeParquetWriter; import com.parquet.parquetdataformat.memory.ArrowBufferPool; import com.parquet.parquetdataformat.writer.ParquetDocumentInput; import org.apache.arrow.vector.FieldVector; @@ -20,9 +20,11 @@ import org.opensearch.index.engine.exec.FlushIn; import org.opensearch.index.engine.exec.WriteResult; +import java.io.Closeable; import java.io.IOException; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; /** * Manages VectorSchemaRoot lifecycle with integrated memory management and native call wrappers. @@ -32,18 +34,19 @@ *
      *
    • {@link ManagedVSR} - Thread-safe VSR with state management
    • *
    • {@link VSRPool} - Resource pooling for VSRs
    • - *
    • {@link RustBridge} - Direct JNI calls to Rust backend
    • + *
    • {@link com.parquet.parquetdataformat.bridge.RustBridge} - Direct JNI calls to Rust backend
    • *
    */ -public class VSRManager { - - private static final Logger logger = LogManager.getLogger(VSRManager.class); - - private ManagedVSR managedVSR; +public class VSRManager implements Closeable { + private final AtomicReference managedVSR = new AtomicReference<>(); private Map fieldVectorMap; private final Schema schema; private final String fileName; private final VSRPool vsrPool; + private NativeParquetWriter writer; + + private static final Logger logger = LogManager.getLogger(VSRManager.class); + public VSRManager(String fileName, Schema schema, ArrowBufferPool arrowBufferPool) { this.fileName = fileName; @@ -53,7 +56,7 @@ public VSRManager(String fileName, Schema schema, ArrowBufferPool arrowBufferPoo this.vsrPool = new VSRPool("pool-" + fileName, schema, arrowBufferPool); // Get active VSR from pool - this.managedVSR = vsrPool.getActiveVSR(); + this.managedVSR.set(vsrPool.getActiveVSR()); initializeFieldVectorMap(); // Initialize writer lazily to avoid crashes initializeWriter(); @@ -61,12 +64,8 @@ public VSRManager(String fileName, Schema schema, ArrowBufferPool arrowBufferPoo private void initializeWriter() { try { - // Export schema through managed VSR - try (ArrowExport export = managedVSR.exportSchema()) { - long schemaAddress = export.getSchemaAddress(); - - // Direct native call - RustBridge handles all validation - RustBridge.createWriter(fileName, schemaAddress); + try (ArrowExport export = managedVSR.get().exportSchema()) { + writer = new NativeParquetWriter(fileName, export.getSchemaAddress()); } } catch (Exception e) { throw new RuntimeException("Failed to initialize Parquet writer: " + e.getMessage(), e); @@ -74,21 +73,25 @@ private void initializeWriter() { } public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOException { - // Ensure we have an active VSR (handle case where getActiveVSR() returns null) - if (managedVSR == null) { - managedVSR = vsrPool.getActiveVSR(); - if (managedVSR == null) { - throw new IOException("No active VSR available"); + ManagedVSR currentVSR = managedVSR.updateAndGet(vsr -> { + if (vsr == null) { + ManagedVSR newVSR = vsrPool.getActiveVSR(); + if (newVSR != null) { + reinitializeFieldVectorMap(); + } + return newVSR; } - reinitializeFieldVectorMap(); - } + return vsr; + }); - // Ensure VSR is in ACTIVE state for modifications - if (managedVSR.getState() != VSRState.ACTIVE) { - throw new IOException("Cannot add document - VSR is not active: " + managedVSR.getState()); + if (currentVSR == null) { + throw new IOException("No active VSR available"); + } + if (currentVSR.getState() != VSRState.ACTIVE) { + throw new IOException("Cannot add document - VSR is not active: " + currentVSR.getState()); } - logger.debug("addToManagedVSR called for {}, current row count: {}", fileName, managedVSR.getRowCount()); + logger.debug("addToManagedVSR called for {}, current row count: {}", fileName, currentVSR.getRowCount()); try { // Since ParquetDocumentInput now works directly with ManagedVSR, @@ -97,7 +100,7 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep // which will increment the row count. WriteResult result = document.addToWriter(); - logger.debug("After adding document to {}, row count: {}", fileName, managedVSR.getRowCount()); + logger.debug("After adding document to {}, row count: {}", fileName, currentVSR.getRowCount()); // Check for VSR rotation AFTER successful document processing maybeRotateActiveVSR(); @@ -110,25 +113,26 @@ public WriteResult addToManagedVSR(ParquetDocumentInput document) throws IOExcep } public String flush(FlushIn flushIn) throws IOException { - logger.info("Flush called for {}, row count: {}", fileName, managedVSR.getRowCount()); + ManagedVSR currentVSR = managedVSR.get(); + logger.info("Flush called for {}, row count: {}", fileName, currentVSR.getRowCount()); try { // Only flush if we have data - if (managedVSR.getRowCount() == 0) { + if (currentVSR.getRowCount() == 0) { logger.debug("No data to flush for {}, returning null", fileName); return null; } // Transition VSR to FROZEN state before flushing - managedVSR.setState(VSRState.FROZEN); - logger.info("Flushing {} rows for {}", managedVSR.getRowCount(), fileName); + currentVSR.setState(VSRState.FROZEN); + logger.info("Flushing {} rows for {}", currentVSR.getRowCount(), fileName); // Transition to FLUSHING state - managedVSR.setState(VSRState.FLUSHING); + currentVSR.setState(VSRState.FLUSHING); - // Direct native call - write the managed VSR data - try (ArrowExport export = managedVSR.exportToArrow()) { - RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); - RustBridge.closeWriter(fileName); + // Write through native writer handle + try (ArrowExport export = currentVSR.exportToArrow()) { + writer.write(export.getArrayAddress(), export.getSchemaAddress()); + writer.close(); } logger.info("Successfully flushed data for {}", fileName); @@ -139,20 +143,15 @@ public String flush(FlushIn flushIn) throws IOException { } } + @Override public void close() { try { - // Direct native calls - try { - RustBridge.closeWriter(fileName); - RustBridge.flushToDisk(fileName); - } catch (IOException e) { - logger.warn("Failed to close/flush writer for {}: {}", fileName, e.getMessage(), e); + if (writer != null) { + writer.flush(); + writer.close(); } - - // Close VSR Pool vsrPool.close(); - managedVSR = null; - + managedVSR.set(null); } catch (Exception e) { logger.error("Error during close for {}: {}", fileName, e.getMessage(), e); } @@ -184,7 +183,7 @@ public void maybeRotateActiveVSR() throws IOException { // Write the frozen VSR data immediately frozenVSR.setState(VSRState.FLUSHING); try (ArrowExport export = frozenVSR.exportToArrow()) { - RustBridge.write(fileName, export.getArrayAddress(), export.getSchemaAddress()); + writer.write(export.getArrayAddress(), export.getSchemaAddress()); } logger.debug("Successfully wrote frozen VSR data for {}", fileName); @@ -196,17 +195,19 @@ public void maybeRotateActiveVSR() throws IOException { logger.warn("Rotation occurred but no frozen VSR found for {}", fileName); } - // Update to new active VSR - managedVSR = vsrPool.getActiveVSR(); - if (managedVSR == null) { + // Update to new active VSR atomically with field vector map + ManagedVSR oldVSR = managedVSR.get(); + ManagedVSR newVSR = vsrPool.getActiveVSR(); + if (newVSR == null) { throw new IOException("No active VSR available after rotation"); } + updateVSRAndReinitialize(oldVSR, newVSR); // Reinitialize field vector map with new VSR reinitializeFieldVectorMap(); logger.debug("VSR rotation completed for {}, new active VSR: {}, row count: {}", - fileName, managedVSR.getId(), managedVSR.getRowCount()); + fileName, newVSR.getId(), newVSR.getRowCount()); } } catch (IOException e) { logger.error("Error during VSR rotation for {}: {}", fileName, e.getMessage(), e); @@ -226,17 +227,24 @@ private void checkAndHandleVSRRotation() throws IOException { ManagedVSR currentActive = vsrPool.getActiveVSR(); // Check if we got a different VSR (rotation occurred) - if (currentActive != managedVSR) { + ManagedVSR oldVSR = managedVSR.get(); + if (currentActive != oldVSR) { logger.debug("VSR rotation detected for {}, updating references", fileName); - // Update the managed VSR reference - managedVSR = currentActive; - - // Reinitialize field vector map with new VSR - reinitializeFieldVectorMap(); + // Update the managed VSR reference atomically with field vector map + updateVSRAndReinitialize(oldVSR, currentActive); // Note: Writer initialization is not needed per VSR as it's per file - logger.debug("VSR rotation completed for {}, new row count: {}", fileName, managedVSR.getRowCount()); + logger.debug("VSR rotation completed for {}, new row count: {}", fileName, currentActive.getRowCount()); + } + } + + /** + * Atomically updates managedVSR and reinitializes field vector map. + */ + private void updateVSRAndReinitialize(ManagedVSR oldVSR, ManagedVSR newVSR) { + if (managedVSR.compareAndSet(oldVSR, newVSR)) { + reinitializeFieldVectorMap(); } } @@ -253,7 +261,7 @@ private void initializeFieldVectorMap() { fieldVectorMap = new HashMap<>(); for (Field field : schema.getFields()) { String fieldName = field.getName(); - FieldVector fieldVector = managedVSR.getVector(fieldName); + FieldVector fieldVector = managedVSR.get().getVector(fieldName); // Vector is already properly typed from ManagedVSR.getVector() fieldVectorMap.put(fieldName, fieldVector); } @@ -265,6 +273,6 @@ private void initializeFieldVectorMap() { * @return The current managed VSR instance */ public ManagedVSR getActiveManagedVSR() { - return managedVSR; + return managedVSR.get(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java index 0d1b5691a065a..11ab030bdc9ab 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/DatafusionEngine.java @@ -30,8 +30,8 @@ import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.datafusion.search.*; +import org.opensearch.datafusion.search.AsyncRecordBatchIterator; import org.opensearch.datafusion.search.cache.CacheManager; -import org.opensearch.datafusion.search.cache.CacheUtils; import org.opensearch.index.engine.*; import org.opensearch.index.engine.exec.FileMetadata; import org.opensearch.index.engine.exec.composite.CompositeDataFormatWriter; @@ -48,8 +48,8 @@ import org.opensearch.search.internal.ShardSearchRequest; import org.opensearch.search.lookup.SourceLookup; import org.opensearch.vectorized.execution.search.DataFormat; -import org.opensearch.search.query.GenericQueryPhaseSearcher; +import java.io.Closeable; import java.io.IOException; import java.io.UncheckedIOException; import java.util.*; @@ -63,7 +63,7 @@ import static java.util.Collections.emptyMap; public class DatafusionEngine extends SearchExecEngine { + DatafusionReaderManager, DatafusionQuery> implements Closeable { private static final Logger logger = LogManager.getLogger(DatafusionEngine.class); @@ -71,6 +71,7 @@ public class DatafusionEngine extends SearchExecEngine formatCatalogSnapshot, DataFusionService dataFusionService, ShardPath shardPath) throws IOException { this.dataFormat = dataFormat; @@ -78,7 +79,8 @@ public DatafusionEngine(DataFormat dataFormat, Collection formatCa this.datafusionReaderManager = new DatafusionReaderManager(shardPath.getDataPath().toString(), formatCatalogSnapshot, dataFormat.getName()); this.datafusionService = dataFusionService; this.cacheManager = datafusionService.getCacheManager(); - if(this.cacheManager!=null) { + this.rootAllocator = new RootAllocator(Long.MAX_VALUE); + if (this.cacheManager != null) { datafusionReaderManager.setOnFilesAdded(files -> { // Handle new files added during refresh cacheManager.addFilesToCacheManager(files); @@ -178,27 +180,29 @@ public boolean assertSearcherIsWarmedUp(String source, Engine.SearcherScope scop return false; } + @Override + public void close() { + rootAllocator.close(); + } + @Override public Map executeQueryPhase(DatafusionContext context) { Map finalRes = new HashMap<>(); List rowIdResult = new ArrayList<>(); - RootAllocator allocator = null; RecordBatchStream stream = null; try { DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getRuntimePointer()); - allocator = new RootAllocator(Long.MAX_VALUE); - stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); + stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer(), rootAllocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check - SearchResultsCollector collector = new SearchResultsCollector() { - @Override - public void collect(RecordBatchStream value) { - VectorSchemaRoot root = value.getVectorSchemaRoot(); + SearchResultsCollector collector = iterator -> { + while (iterator.hasNext()) { + VectorSchemaRoot root = iterator.next(); for (Field field : root.getSchema().getFields()) { String fieldName = field.getName(); FieldVector fieldVector = root.getVector(fieldName); @@ -220,9 +224,7 @@ public void collect(RecordBatchStream value) { } }; - while (stream.loadNextBatch().join()) { - collector.collect(stream); - } + collector.collect(new RecordBatchIterator(stream)); // logger.info("Final Results:"); // for (Map.Entry entry : finalRes.entrySet()) { @@ -247,9 +249,6 @@ public void collect(RecordBatchStream value) { if (stream != null) { stream.close(); } - if (allocator != null) { - allocator.close(); - } } catch (Exception e) { throw new RuntimeException(e); } @@ -324,12 +323,8 @@ private void loadNextBatch( DatafusionContext context, List rowIdResult ) { - stream.loadNextBatch().whenCompleteAsync((hasMore, error) -> { - if (error != null) { - cleanup(stream, allocator); - listener.onFailure(new RuntimeException("Error loading batch", error)); - return; - } + AsyncRecordBatchIterator iterator = new AsyncRecordBatchIterator(stream); + iterator.nextAsync(ActionListener.wrap(hasMore -> { if (hasMore) { try { collector.collect(stream); @@ -341,16 +336,15 @@ private void loadNextBatch( } } else { cleanup(stream, allocator); -// logger.info("Final Results:"); -// for (Map.Entry entry : finalRes.entrySet()) { -// logger.info("{}: {}", entry.getKey(), java.util.Arrays.toString(entry.getValue())); -// } context.queryResult().topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(rowIdResult.size(), TotalHits.Relation.EQUAL_TO), rowIdResult.stream().map(d-> new ScoreDoc(d.intValue(), Float.NaN, context.indexShard().shardId().getId())).toList().toArray(ScoreDoc[]::new)) , Float.NaN), new DocValueFormat[0]); listener.onResponse(finalRes); } - }, executor); + }, error -> { + cleanup(stream, allocator); + listener.onFailure(new RuntimeException("Error loading batch", error)); + })); } private void cleanup(RecordBatchStream stream, RootAllocator allocator) { try { @@ -385,8 +379,7 @@ public void executeFetchPhase(DatafusionContext context) throws IOException { context.getDatafusionQuery().setProjections(projections); DatafusionSearcher datafusionSearcher = context.getEngineSearcher(); long streamPointer = datafusionSearcher.search(context.getDatafusionQuery(), datafusionService.getRuntimePointer()); - RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, datafusionService.getRuntimePointer(), rootAllocator); Map rowIdToIndex = new HashMap<>(); for (int idx = 0; idx < rowIds.size(); idx++) { @@ -395,12 +388,12 @@ public void executeFetchPhase(DatafusionContext context) throws IOException { MapperService mapperService = context.mapperService(); MappingLookup mappingLookup = mapperService.documentMapper().mappers(); - SearchResultsCollector collector = recordBatchStream -> { + SearchResultsCollector collector = iterator -> { List byteRefs = new ArrayList<>(); SearchHit[] hits = new SearchHit[rowIds.size()]; int totalHits = 0; - while (recordBatchStream.loadNextBatch().join()) { - VectorSchemaRoot vectorSchemaRoot = recordBatchStream.getVectorSchemaRoot(); + while (iterator.hasNext()) { + VectorSchemaRoot vectorSchemaRoot = iterator.next(); List fieldVectorList = vectorSchemaRoot.getFieldVectors(); for (int i = 0; i < vectorSchemaRoot.getRowCount(); i++) { XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); @@ -451,14 +444,13 @@ public void executeFetchPhase(DatafusionContext context) throws IOException { }; try { - collector.collect(stream); + collector.collect(new RecordBatchIterator(stream)); } catch (IOException exception) { logger.error("Failed to perform fetch phase", exception); throw new RuntimeException(exception); } finally { try { stream.close(); - allocator.close(); } catch (Exception e) { logger.error("Failed to close stream", e); throw new RuntimeException(e); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java index 41ae775ced526..709d141f6871b 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/RecordBatchStream.java @@ -8,45 +8,49 @@ package org.opensearch.datafusion; -import org.apache.arrow.c.ArrowArray; -import org.apache.arrow.c.ArrowSchema; import org.apache.arrow.c.CDataDictionaryProvider; -import org.apache.arrow.c.Data; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.vector.VectorSchemaRoot; -import org.apache.arrow.vector.types.pojo.ArrowType; -import org.apache.arrow.vector.types.pojo.Field; -import org.apache.arrow.vector.types.pojo.Schema; -import org.opensearch.core.action.ActionListener; -import org.opensearch.datafusion.jni.NativeBridge; +import org.opensearch.datafusion.jni.handle.StreamHandle; -import java.util.concurrent.CompletableFuture; -import static org.apache.arrow.c.Data.importField; +import java.io.Closeable; +import java.io.IOException; +import java.util.concurrent.CompletableFuture; /** * Represents a stream of Apache Arrow record batches from DataFusion query execution. * Provides a Java interface to iterate through query results in a memory-efficient way. */ -public class RecordBatchStream { +public class RecordBatchStream implements Closeable { - private final long streamPointer; + private final StreamHandle streamHandle; private final BufferAllocator allocator; private final CDataDictionaryProvider dictionaryProvider; - private boolean initialized = false; - private VectorSchemaRoot vectorSchemaRoot = null; - private long runtimePtr; + private final CompletableFuture schemaFuture; + private volatile VectorSchemaRoot vectorSchemaRoot; /** * Creates a new RecordBatchStream for the given stream pointer * @param streamId the stream pointer - * @param allocator memory allocator for Arrow vectors + * @param runtimePtr the runtime pointer + * @param parentAllocator parent allocator to create child from */ - public RecordBatchStream(long streamId, long runtimePtr, BufferAllocator allocator) { - this.streamPointer = streamId; - this.allocator = allocator; - this.runtimePtr = runtimePtr; + public RecordBatchStream(long streamId, long runtimePtr, BufferAllocator parentAllocator) { + this.streamHandle = new StreamHandle(streamId, runtimePtr); + this.allocator = parentAllocator.newChildAllocator("stream-" + streamId, 0, Long.MAX_VALUE); this.dictionaryProvider = new CDataDictionaryProvider(); + this.schemaFuture = streamHandle.getSchema(allocator, dictionaryProvider) + .thenApply(schema -> VectorSchemaRoot.create(schema, allocator)); + } + + /** + * Waits for schema initialization to complete + */ + public void ensureInitialized() { + if (vectorSchemaRoot == null) { + vectorSchemaRoot = schemaFuture.join(); + } } /** @@ -58,99 +62,26 @@ public VectorSchemaRoot getVectorSchemaRoot() { return vectorSchemaRoot; } - private Schema getSchema() { - // Native method is not async, but use a future to store the result for convenience - CompletableFuture result = new CompletableFuture<>(); - getSchema(streamPointer, new ActionListener() { - @Override - public void onResponse(Long arrowSchemaAddress) { - try { - ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); - Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); - result.complete(schema); - } catch (Exception e) { - result.completeExceptionally(e); - } - } - - @Override - public void onFailure(Exception e) { - result.completeExceptionally(e); - } - }); - return result.join(); - } - - private Schema importSchema(BufferAllocator allocator, ArrowSchema schema, CDataDictionaryProvider provider) { - Field structField = importField(allocator, schema, provider); - if (structField.getType().getTypeID() != ArrowType.ArrowTypeID.Struct) { - throw new IllegalArgumentException("Cannot import schema: ArrowSchema describes non-struct type"); - } - return new Schema(structField.getChildren(), structField.getMetadata()); - } - - private void ensureInitialized() { - if (!initialized) { - Schema schema = getSchema(); - this.vectorSchemaRoot = VectorSchemaRoot.create(schema, allocator); - } - initialized = true; - } - /** * Loads the next batch of data from the stream * @return a CompletableFuture that completes with true if more data is available, false if end of stream */ public CompletableFuture loadNextBatch() { ensureInitialized(); - long runtimePointer = this.runtimePtr; - CompletableFuture result = new CompletableFuture<>(); - next(runtimePointer, streamPointer, new ActionListener() { - @Override - public void onResponse(Long arrowArrayAddress) { - if (arrowArrayAddress == 0) { - // Reached end of stream - result.complete(false); - } else { - try { - ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); - Data.importIntoVectorSchemaRoot(allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); - result.complete(true); - } catch (Exception e) { - result.completeExceptionally(e); - } - } - } - - @Override - public void onFailure(Exception e) { - result.completeExceptionally(e); - } - }); - return result; + return streamHandle.loadNextBatch(allocator, vectorSchemaRoot, dictionaryProvider); } /** * Closes the stream and releases all associated resources - * @throws Exception if an error occurs during cleanup + * @throws IOException if an error occurs during cleanup */ - public void close() throws Exception { - closeStream(streamPointer); + @Override + public void close() throws IOException { + streamHandle.close(); dictionaryProvider.close(); - if (initialized) { + if (vectorSchemaRoot != null) { vectorSchemaRoot.close(); } - } - - private static void next(long runtime, long pointer, ActionListener listener) { - NativeBridge.streamNext(runtime, pointer, listener); - } - - private static void getSchema(long pointer, ActionListener listener) { - NativeBridge.streamGetSchema(pointer, listener); - } - - private static void closeStream(long pointer) { - NativeBridge.streamClose(pointer); + allocator.close(); } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java index 505b2d6a4c95e..2df7a4b11bf70 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/ReaderHandle.java @@ -9,12 +9,12 @@ package org.opensearch.datafusion.jni.handle; import org.opensearch.datafusion.jni.NativeBridge; -import org.opensearch.vectorized.execution.jni.NativeHandle; +import org.opensearch.vectorized.execution.jni.RefCountedNativeHandle; /** - * Type-safe handle for native reader. + * Reference-counted handle for native reader. */ -public final class ReaderHandle extends NativeHandle { +public final class ReaderHandle extends RefCountedNativeHandle { public ReaderHandle(String path, String[] files) { super(NativeBridge.createDatafusionReader(path, files)); diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java index fdc607a09eb43..8bd3c4a9e5817 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/jni/handle/StreamHandle.java @@ -8,20 +8,108 @@ package org.opensearch.datafusion.jni.handle; +import org.apache.arrow.c.ArrowArray; +import org.apache.arrow.c.ArrowSchema; +import org.apache.arrow.c.CDataDictionaryProvider; +import org.apache.arrow.c.Data; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.types.pojo.ArrowType; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.types.pojo.Schema; +import org.opensearch.core.action.ActionListener; +import org.opensearch.datafusion.ErrorUtil; import org.opensearch.datafusion.jni.NativeBridge; import org.opensearch.vectorized.execution.jni.NativeHandle; +import java.util.concurrent.CompletableFuture; + +import static org.apache.arrow.c.Data.importField; + /** - * Type-safe handle for native stream. + * Type-safe handle for native DataFusion stream with Arrow integration. */ public final class StreamHandle extends NativeHandle { - public StreamHandle(long ptr) { + private final long runtimePtr; + + public StreamHandle(long ptr, long runtimePtr) { super(ptr); + this.runtimePtr = runtimePtr; } @Override protected void doClose() { NativeBridge.streamClose(ptr); } + + /** + * Gets the Arrow schema for this stream. + * @param allocator memory allocator for Arrow + * @param dictionaryProvider dictionary provider + * @return CompletableFuture with the schema + */ + public CompletableFuture getSchema(BufferAllocator allocator, CDataDictionaryProvider dictionaryProvider) { + // Native method is not async, but use a future to store the result for convenience + CompletableFuture result = new CompletableFuture<>(); + NativeBridge.streamGetSchema(ptr, new ActionListener() { + @Override + public void onResponse(Long arrowSchemaAddress) { + try { + ArrowSchema arrowSchema = ArrowSchema.wrap(arrowSchemaAddress); + Schema schema = importSchema(allocator, arrowSchema, dictionaryProvider); + result.complete(schema); + } catch (Exception e) { + result.completeExceptionally(e); + } + } + + @Override + public void onFailure(Exception e) { + result.completeExceptionally(e); + } + }); + return result; + } + + /** + * Loads the next batch of data from the stream + * @return a CompletableFuture that completes with true if more data is available, false if end of stream + */ + public CompletableFuture loadNextBatch(BufferAllocator allocator, VectorSchemaRoot vectorSchemaRoot, + CDataDictionaryProvider dictionaryProvider) { + long runtimePointer = this.runtimePtr; + CompletableFuture result = new CompletableFuture<>(); + NativeBridge.streamNext(runtimePointer, ptr, new ActionListener() { + @Override + public void onResponse(Long arrowArrayAddress) { + if (arrowArrayAddress == 0) { + // Reached end of stream + result.complete(false); + } else { + try { + ArrowArray arrowArray = ArrowArray.wrap(arrowArrayAddress); + Data.importIntoVectorSchemaRoot(allocator, arrowArray, vectorSchemaRoot, dictionaryProvider); + result.complete(true); + } catch (Exception e) { + result.completeExceptionally(e); + } + } + } + + @Override + public void onFailure(Exception e) { + result.completeExceptionally(e); + } + }); + return result; + } + + private Schema importSchema(BufferAllocator allocator, ArrowSchema schema, CDataDictionaryProvider provider) { + Field structField = importField(allocator, schema, provider); + if (structField.getType().getTypeID() != ArrowType.ArrowTypeID.Struct) { + throw new IllegalArgumentException("Cannot import schema: ArrowSchema describes non-struct type"); + } + return new Schema(structField.getChildren(), structField.getMetadata()); + } } diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/AsyncRecordBatchIterator.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/AsyncRecordBatchIterator.java new file mode 100644 index 0000000000000..2c7ebbc134505 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/AsyncRecordBatchIterator.java @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.opensearch.core.action.ActionListener; +import org.opensearch.datafusion.RecordBatchStream; + +/** + * Async iterator over Arrow record batches from a RecordBatchStream using ActionListener. + */ +public class AsyncRecordBatchIterator { + + private final RecordBatchStream stream; + private Boolean hasNext; + + public AsyncRecordBatchIterator(RecordBatchStream stream) { + this.stream = stream; + } + + /** + * Asynchronously check if there's a next batch available. + */ + public void nextAsync(ActionListener listener) { + if (hasNext != null) { + listener.onResponse(hasNext); + return; + } + + stream.loadNextBatch().whenComplete((result, throwable) -> { + if (throwable != null) { + listener.onFailure(new RuntimeException("Failed to load next batch", throwable)); + } else { + hasNext = result; + listener.onResponse(hasNext); + } + }); + } +} diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java index d51e9250e78aa..7f74e337155e6 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/DatafusionReader.java @@ -14,10 +14,8 @@ import org.opensearch.index.engine.exec.coord.CompositeEngine; import java.io.Closeable; -import java.io.IOException; import java.util.Arrays; import java.util.Collection; -import java.util.concurrent.atomic.AtomicInteger; /** * DataFusion reader for JNI operations. */ @@ -31,13 +29,9 @@ public class DatafusionReader implements Closeable { */ public Collection files; /** - * The cache pointer. + * The reader handle. */ public ReaderHandle readerHandle; - /** - * The reference count. - */ - private AtomicInteger refCount = new AtomicInteger(1); /** * The catalog snapshot reference. */ @@ -76,27 +70,26 @@ public long getReaderPtr() { * Increments the reference count. */ public void incRef() { - refCount.getAndIncrement(); + readerHandle.retain(); } /** * Decrements the reference count. - * @throws IOException if an I/O error occurs */ - public void decRef() throws IOException { - if(refCount.get() == 0) { - throw new IllegalStateException("Listing table has been already closed"); - } - - int currRefCount = refCount.decrementAndGet(); - if(currRefCount == 0) { - this.close(); - } + public void decRef() { + readerHandle.close(); + } + /** + * Gets the reference count. + * @return the reference count + */ + public int getRefCount() { + return readerHandle.getRefCount(); } @Override - public void close() throws IOException { + public void close() { readerHandle.close(); try { if (catalogSnapshotRef != null) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/RecordBatchIterator.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/RecordBatchIterator.java new file mode 100644 index 0000000000000..b3bfb3d741406 --- /dev/null +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/RecordBatchIterator.java @@ -0,0 +1,45 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion.search; + +import org.apache.arrow.vector.VectorSchemaRoot; +import org.opensearch.datafusion.RecordBatchStream; + +import java.util.Iterator; +import java.util.NoSuchElementException; + +/** + * Iterator over Arrow record batches from a RecordBatchStream. + */ +public class RecordBatchIterator implements Iterator { + + private final RecordBatchStream stream; + private Boolean hasNext; + + public RecordBatchIterator(RecordBatchStream stream) { + this.stream = stream; + } + + @Override + public boolean hasNext() { + if (hasNext == null) { + hasNext = stream.loadNextBatch().join(); + } + return hasNext; + } + + @Override + public VectorSchemaRoot next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + hasNext = null; + return stream.getVectorSchemaRoot(); + } +} diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java index 80a2d38cb759c..483aa3c9d8990 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionReaderManagerTests.java @@ -11,6 +11,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Supplier; + import org.apache.arrow.memory.RootAllocator; import org.apache.arrow.vector.FieldVector; import org.apache.arrow.vector.VectorSchemaRoot; @@ -390,13 +391,7 @@ public void testSearch() throws Exception { // ========== Helper Methods ========== private int getRefCount(DatafusionReader reader) { - try { - java.lang.reflect.Field refCountField = DatafusionReader.class.getDeclaredField("refCount"); - refCountField.setAccessible(true); - return ((AtomicInteger) refCountField.get(reader)).get(); - } catch (Exception e) { - throw new RuntimeException("Failed to get ref count", e); - } + return reader.getRefCount(); } private org.opensearch.index.engine.exec.DataFormat getMockDataFormat() { diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java index 47875c4fda7c7..639b0d724ef35 100644 --- a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/DataFusionServiceTests.java @@ -22,7 +22,6 @@ import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; -import org.opensearch.common.xcontent.XContentFactory; import org.opensearch.core.common.Strings; import org.opensearch.core.index.Index; import org.opensearch.core.index.shard.ShardId; @@ -161,7 +160,7 @@ public void testQueryPhaseExecutor() throws IOException { long streamPointer = datafusionSearcher.search(new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()), service.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer(), allocator); // We can have some collectors passed like this which can collect the results and convert to InternalAggregation // Is the possible? need to check @@ -221,7 +220,7 @@ public void testQueryThenFetchExecutor() throws IOException, URISyntaxException DatafusionQuery query = new DatafusionQuery(index.getName(), protoContent, new ArrayList<>()); long streamPointer = datafusionSearcher.search(query, service.getRuntimePointer()); RootAllocator allocator = new RootAllocator(Long.MAX_VALUE); - RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer() , allocator); + RecordBatchStream stream = new RecordBatchStream(streamPointer, service.getRuntimePointer(), allocator); ArrayList row_ids_res = new ArrayList<>(); @@ -245,7 +244,7 @@ public void testQueryThenFetchExecutor() throws IOException, URISyntaxException query.setFetchPhaseContext(row_ids_res); long fetchPhaseStreamPointer = datafusionSearcher.search(query, service.getRuntimePointer()); - RecordBatchStream fetchPhaseStream = new RecordBatchStream(fetchPhaseStreamPointer, service.getRuntimePointer() , allocator); + RecordBatchStream fetchPhaseStream = new RecordBatchStream(fetchPhaseStreamPointer, service.getRuntimePointer(), allocator); int total_fetch_results = 0; ArrayList fetch_row_ids_res = new ArrayList<>(); diff --git a/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/RecordBatchIteratorTests.java b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/RecordBatchIteratorTests.java new file mode 100644 index 0000000000000..93ca11f523776 --- /dev/null +++ b/plugins/engine-datafusion/src/test/java/org/opensearch/datafusion/RecordBatchIteratorTests.java @@ -0,0 +1,100 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +package org.opensearch.datafusion; + +import org.apache.arrow.vector.VectorSchemaRoot; +import org.junit.Before; +import org.opensearch.datafusion.search.RecordBatchIterator; +import org.opensearch.test.OpenSearchTestCase; + +import java.util.NoSuchElementException; +import java.util.concurrent.CompletableFuture; + +import static org.mockito.Mockito.*; + +public class RecordBatchIteratorTests extends OpenSearchTestCase { + + private RecordBatchStream mockStream; + private VectorSchemaRoot mockRoot; + + @Before + public void setup() { + mockStream = mock(RecordBatchStream.class); + mockRoot = mock(VectorSchemaRoot.class); + } + + public void testHasNextReturnsTrueWhenBatchAvailable() { + when(mockStream.loadNextBatch()).thenReturn(CompletableFuture.completedFuture(true)); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + assertTrue(iterator.hasNext()); + verify(mockStream, times(1)).loadNextBatch(); + } + + public void testHasNextReturnsFalseWhenNoMoreBatches() { + when(mockStream.loadNextBatch()).thenReturn(CompletableFuture.completedFuture(false)); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + assertFalse(iterator.hasNext()); + verify(mockStream, times(1)).loadNextBatch(); + } + + public void testHasNextCachesResult() { + when(mockStream.loadNextBatch()).thenReturn(CompletableFuture.completedFuture(true)); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + iterator.hasNext(); + iterator.hasNext(); + + verify(mockStream, times(1)).loadNextBatch(); + } + + public void testNextReturnsVectorSchemaRoot() { + when(mockStream.loadNextBatch()).thenReturn(CompletableFuture.completedFuture(true)); + when(mockStream.getVectorSchemaRoot()).thenReturn(mockRoot); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + VectorSchemaRoot result = iterator.next(); + + assertSame(mockRoot, result); + verify(mockStream).getVectorSchemaRoot(); + } + + public void testNextThrowsWhenNoMoreElements() { + when(mockStream.loadNextBatch()).thenReturn(CompletableFuture.completedFuture(false)); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + assertThrows(NoSuchElementException.class, iterator::next); + } + + public void testIterateMultipleBatches() { + when(mockStream.loadNextBatch()) + .thenReturn(CompletableFuture.completedFuture(true)) + .thenReturn(CompletableFuture.completedFuture(true)) + .thenReturn(CompletableFuture.completedFuture(false)); + when(mockStream.getVectorSchemaRoot()).thenReturn(mockRoot); + + RecordBatchIterator iterator = new RecordBatchIterator(mockStream); + + int count = 0; + while (iterator.hasNext()) { + assertNotNull(iterator.next()); + count++; + } + + assertEquals(2, count); + verify(mockStream, times(3)).loadNextBatch(); + verify(mockStream, times(2)).getVectorSchemaRoot(); + } +} From 481409d8f447824f8763ceb48b49a230d411c197 Mon Sep 17 00:00:00 2001 From: Abhita Lakkabathini <59249463+abhita@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:39:22 +0530 Subject: [PATCH 112/112] Enable Metadata Cache Complete Warm-up (#20117) * Update MetadataCache Warm-up to include page-indexes * disable dynamic metadtaa cache limit updates --- .../jni/src/custom_cache_manager.rs | 45 ++++++++++++------- plugins/engine-datafusion/jni/src/lib.rs | 1 - .../jni/src/query_executor.rs | 17 ++++--- plugins/engine-datafusion/jni/src/util.rs | 19 -------- .../datafusion/search/cache/CacheUtils.java | 2 +- 5 files changed, 39 insertions(+), 45 deletions(-) diff --git a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs index 8f293451da110..5b0926b5536f5 100644 --- a/plugins/engine-datafusion/jni/src/custom_cache_manager.rs +++ b/plugins/engine-datafusion/jni/src/custom_cache_manager.rs @@ -2,9 +2,10 @@ use std::sync::{Arc, Mutex}; use datafusion::execution::cache::cache_manager::{FileMetadataCache, CacheManagerConfig}; use datafusion::execution::cache::cache_unit::{DefaultFileStatisticsCache, DefaultFilesMetadataCache, DefaultListFilesCache}; use datafusion::execution::cache::CacheAccessor; +use datafusion::datasource::physical_plan::parquet::metadata::DFParquetMetadata; use tokio::runtime::Runtime; use crate::cache::MutexFileMetadataCache; -use crate::util::{create_object_meta_from_file, construct_file_metadata}; +use crate::util::{create_object_meta_from_file}; /// Custom CacheManager that holds cache references directly pub struct CustomCacheManager { @@ -39,7 +40,8 @@ impl CustomCacheManager { let file_static_cache = Arc::new(DefaultFileStatisticsCache::default()); // Add file metadata cache if available if let Some(cache) = self.get_file_metadata_cache_for_datafusion() { - config = config.with_file_metadata_cache(Some(cache)); + config = config.with_file_metadata_cache(Some(cache.clone())) + .with_metadata_cache_limit(cache.cache_limit()); } config = config.with_files_statistics_cache(Some(file_static_cache.clone())); // Future: Add stats cache when implemented @@ -256,31 +258,40 @@ impl CustomCacheManager { let store = Arc::new(object_store::local::LocalFileSystem::new()); - //TODO: Use TokioRuntimePtr to block on the async operation - let metadata = Runtime::new() + // Get cache reference for DataFusion metadata loading + let cache_ref = self.file_metadata_cache.as_ref() + .ok_or_else(|| "No file metadata cache configured".to_string())?; + + let metadata_cache = cache_ref.clone() as Arc; + + // Use DataFusion's metadata loading by passing reference to file_metadata_cache to get complete metadata + // IMPORTANT: When a cache is provided to DFParquetMetadata, fetch_metadata() will: + // 1. Enable page index loading (with_page_indexes(true)) + // 2. Load the complete metadata including column and offset indexes + // 3. Automatically put the metadata into the cache (lines 155-160 in datafusion's metadata.rs) + // This ensures we cache exactly what DataFusion would cache during query execution + let _parquet_metadata = Runtime::new() .map_err(|e| format!("Failed to create Tokio Runtime: {}", e))? .block_on(async { - construct_file_metadata(store.as_ref(), object_meta, data_format) - .await - .map_err(|e| format!("Failed to construct file metadata: {}", e)) - })?; + let df_metadata = DFParquetMetadata::new(store.as_ref(), object_meta) + .with_file_metadata_cache(Some(metadata_cache)); - // Get the cache directly from our stored reference - let cache = self.file_metadata_cache.as_ref() - .ok_or_else(|| "No file metadata cache configured".to_string())?; - - match cache.inner.lock() { - Ok(mut cache_guard) => { - cache_guard.put(object_meta, metadata); + // fetch_metadata() performs the cache put operation internally + df_metadata.fetch_metadata().await + .map_err(|e| format!("Failed to fetch metadata: {}", e)) + })?; + // Verify the metadata was cached properly + match cache_ref.inner.lock() { + Ok(cache_guard) => { if cache_guard.contains_key(object_meta) { Ok(true) } else { - println!("Failed to cache metadata for: {}", file_path); + println!("[CACHE ERROR] Failed to cache metadata for: {}", file_path); Ok(false) } } - Err(e) => Err(format!("Cache put failed: {}", e)) + Err(e) => Err(format!("Failed to verify cache: {}", e)) } } } diff --git a/plugins/engine-datafusion/jni/src/lib.rs b/plugins/engine-datafusion/jni/src/lib.rs index 27b5e439d79f3..58c87e0ee66e2 100644 --- a/plugins/engine-datafusion/jni/src/lib.rs +++ b/plugins/engine-datafusion/jni/src/lib.rs @@ -235,7 +235,6 @@ pub extern "system" fn Java_org_opensearch_datafusion_jni_NativeBridge_createGlo let runtime_env = RuntimeEnvBuilder::new().with_cache_manager(cache_manager_config) .with_memory_pool(memory_pool.clone()) - .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB .build().unwrap(); let runtime = DataFusionRuntime { diff --git a/plugins/engine-datafusion/jni/src/query_executor.rs b/plugins/engine-datafusion/jni/src/query_executor.rs index f124d53b8e68d..004e00ddf2ee9 100644 --- a/plugins/engine-datafusion/jni/src/query_executor.rs +++ b/plugins/engine-datafusion/jni/src/query_executor.rs @@ -65,15 +65,16 @@ pub async fn execute_query_with_cross_rt_stream( let runtimeEnv = &runtime.runtime_env; + let file_metadata_cache = runtime.runtime_env.cache_manager.get_file_metadata_cache(); + let runtime_env = match RuntimeEnvBuilder::from_runtime_env(runtimeEnv) .with_cache_manager( CacheManagerConfig::default() .with_list_files_cache(Some(list_file_cache.clone())) - .with_file_metadata_cache(Some(runtimeEnv.cache_manager.get_file_metadata_cache())) + .with_file_metadata_cache(Some(file_metadata_cache.clone())) + .with_metadata_cache_limit(file_metadata_cache.cache_limit()) .with_files_statistics_cache(runtimeEnv.cache_manager.get_file_statistic_cache()), - ) - .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB - .build() { + ).build() { Ok(env) => env, Err(e) => { error!("Failed to build runtime env: {}", e); @@ -211,13 +212,15 @@ pub async fn execute_fetch_phase( let list_file_cache = Arc::new(DefaultListFilesCache::default()); list_file_cache.put(table_path.prefix(), object_meta); + let file_metadata_cache = runtime.runtime_env.cache_manager.get_file_metadata_cache(); + let runtime_env = RuntimeEnvBuilder::new() .with_cache_manager( CacheManagerConfig::default().with_list_files_cache(Some(list_file_cache)) - .with_file_metadata_cache(Some(runtime.runtime_env.cache_manager.get_file_metadata_cache())) - .with_files_statistics_cache(runtime.runtime_env.cache_manager.get_file_statistic_cache()), + .with_file_metadata_cache(Some(file_metadata_cache.clone())) + .with_files_statistics_cache(runtime.runtime_env.cache_manager.get_file_statistic_cache()) + .with_metadata_cache_limit(file_metadata_cache.cache_limit()), ) - .with_metadata_cache_limit(250 * 1024 * 1024) // 250 MB .build()?; let ctx = SessionContext::new_with_config_rt(SessionConfig::new(), Arc::new(runtime_env)); diff --git a/plugins/engine-datafusion/jni/src/util.rs b/plugins/engine-datafusion/jni/src/util.rs index 25e073fde0d7c..ecc8db55c8408 100644 --- a/plugins/engine-datafusion/jni/src/util.rs +++ b/plugins/engine-datafusion/jni/src/util.rs @@ -209,25 +209,6 @@ pub fn create_object_meta_from_file(file_path: &str) -> Result, Ok(vec![object_meta]) } -pub async fn construct_file_metadata( - store: &dyn ObjectStore, - object_meta: &ObjectMeta, - data_format: &str, -) -> Result, Box> { - match data_format.to_lowercase().as_str() { - "parquet" => { - let df_metadata = DFParquetMetadata::new( - store, - object_meta - ); - - let parquet_metadata = df_metadata.fetch_metadata().await?; - let par = CachedParquetMetaData::new(parquet_metadata); - Ok(Arc::new(par)) - }, - _ => Err(format!("Unsupported data format: {}", data_format).into()) - } -} /// Set success result by calling an ActionListener pub fn set_action_listener_ok(env: &mut JNIEnv, listener: JObject, value: jlong) { let long_obj = env.new_object("java/lang/Long", "(J)V", &[value.into()]) diff --git a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java index 50d0a15643954..c37a5634c4fa9 100644 --- a/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java +++ b/plugins/engine-datafusion/src/main/java/org/opensearch/datafusion/search/cache/CacheUtils.java @@ -105,7 +105,7 @@ public static long createCacheConfig(ClusterSettings clusterSettings) { type.getEvictionType(clusterSettings)); NativeBridge.createCache(cacheManagerPtr, type.cacheTypeName, type.getSizeLimit(clusterSettings).getBytes(), type.getEvictionType(clusterSettings)); - clusterSettings.addSettingsUpdateConsumer(type.sizeLimitSetting,(v) -> NativeBridge.cacheManagerUpdateSizeLimitForCacheType(cacheManagerPtr, CacheType.METADATA.getCacheTypeName(),v.getBytes())); + // clusterSettings.addSettingsUpdateConsumer(type.sizeLimitSetting,(v) -> NativeBridge.cacheManagerUpdateSizeLimitForCacheType(cacheManagerPtr, CacheType.METADATA.getCacheTypeName(),v.getBytes())); } else { logger.debug("Cache type {} is disabled", type.getCacheTypeName()); }

    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%0Acpw7WsJE%oNt!J!>x8m*Az`RIUZDxYf6YWobOB9 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 Ar`dZ`tP<^`VBj47$eez1@U%l7g6A$0%DF1xq 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 PT=$1e!9{_e(2A4 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 z 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

  • $kr$7a9h!ehuJVwIl+ZG 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

    im-M?r*`ZC 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∈M)XtZ7L>cE-~KG_1Nq#%N!ZS`=sh=$k~ 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