From 5ffbd9c2d98238a2ba653b1cbf5254ab0c70264b Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:04:32 -0500 Subject: [PATCH 01/14] import files --- Cargo.lock | 60 ++++ Cargo.toml | 1 + r/sedonadb/.Rbuildignore | 12 + r/sedonadb/.gitignore | 9 + r/sedonadb/DESCRIPTION | 23 ++ r/sedonadb/LICENSE.md | 194 +++++++++++++ r/sedonadb/NAMESPACE | 35 +++ r/sedonadb/R/000-wrappers.R | 268 ++++++++++++++++++ r/sedonadb/R/adbc.R | 21 ++ r/sedonadb/R/context.R | 79 ++++++ r/sedonadb/R/dataframe.R | 233 +++++++++++++++ r/sedonadb/R/sedonadb-package.R | 6 + r/sedonadb/R/zzz.R | 22 ++ r/sedonadb/README.Rmd | 55 ++++ r/sedonadb/cleanup | 1 + r/sedonadb/cleanup.win | 1 + r/sedonadb/configure | 54 ++++ r/sedonadb/configure.win | 43 +++ .../files/natural-earth_cities_geo.parquet | Bin 0 -> 17322 bytes ...ural-earth_countries-geography_geo.parquet | Bin 0 -> 181446 bytes .../files/natural-earth_countries_geo.parquet | Bin 0 -> 186590 bytes r/sedonadb/man/as_sedonadb_dataframe.Rd | 25 ++ r/sedonadb/man/int_times_int.Rd | 19 ++ r/sedonadb/man/sd_compute.Rd | 29 ++ r/sedonadb/man/sd_count.Rd | 21 ++ r/sedonadb/man/sd_drop_view.Rd | 27 ++ r/sedonadb/man/sd_preview.Rd | 32 +++ r/sedonadb/man/sd_read_parquet.Rd | 22 ++ r/sedonadb/man/sd_sql.Rd | 21 ++ r/sedonadb/man/sd_to_view.Rd | 27 ++ r/sedonadb/man/sedonadb-package.Rd | 15 + r/sedonadb/man/sedonadb_adbc.Rd | 26 ++ r/sedonadb/man/to_upper.Rd | 17 ++ r/sedonadb/sedonadb.Rproj | 22 ++ r/sedonadb/src/.gitignore | 7 + r/sedonadb/src/Makevars.in | 43 +++ r/sedonadb/src/Makevars.win.in | 41 +++ r/sedonadb/src/init.c | 191 +++++++++++++ r/sedonadb/src/rust/.cargo/config.toml | 10 + r/sedonadb/src/rust/Cargo.toml | 22 ++ r/sedonadb/src/rust/api.h | 30 ++ r/sedonadb/src/rust/src/context.rs | 108 +++++++ r/sedonadb/src/rust/src/dataframe.rs | 178 ++++++++++++ r/sedonadb/src/rust/src/error.rs | 42 +++ r/sedonadb/src/rust/src/lib.rs | 118 ++++++++ r/sedonadb/src/rust/src/runtime.rs | 137 +++++++++ r/sedonadb/src/sedonadb-win.def | 2 + r/sedonadb/tests/testthat.R | 12 + r/sedonadb/tests/testthat/test-adbc.R | 15 + r/sedonadb/tests/testthat/test-context.R | 25 ++ r/sedonadb/tests/testthat/test-dataframe.R | 121 ++++++++ 51 files changed, 2522 insertions(+) create mode 100644 r/sedonadb/.Rbuildignore create mode 100644 r/sedonadb/.gitignore create mode 100644 r/sedonadb/DESCRIPTION create mode 100644 r/sedonadb/LICENSE.md create mode 100644 r/sedonadb/NAMESPACE create mode 100644 r/sedonadb/R/000-wrappers.R create mode 100644 r/sedonadb/R/adbc.R create mode 100644 r/sedonadb/R/context.R create mode 100644 r/sedonadb/R/dataframe.R create mode 100644 r/sedonadb/R/sedonadb-package.R create mode 100644 r/sedonadb/R/zzz.R create mode 100644 r/sedonadb/README.Rmd create mode 100755 r/sedonadb/cleanup create mode 100755 r/sedonadb/cleanup.win create mode 100755 r/sedonadb/configure create mode 100755 r/sedonadb/configure.win create mode 100644 r/sedonadb/inst/files/natural-earth_cities_geo.parquet create mode 100644 r/sedonadb/inst/files/natural-earth_countries-geography_geo.parquet create mode 100644 r/sedonadb/inst/files/natural-earth_countries_geo.parquet create mode 100644 r/sedonadb/man/as_sedonadb_dataframe.Rd create mode 100644 r/sedonadb/man/int_times_int.Rd create mode 100644 r/sedonadb/man/sd_compute.Rd create mode 100644 r/sedonadb/man/sd_count.Rd create mode 100644 r/sedonadb/man/sd_drop_view.Rd create mode 100644 r/sedonadb/man/sd_preview.Rd create mode 100644 r/sedonadb/man/sd_read_parquet.Rd create mode 100644 r/sedonadb/man/sd_sql.Rd create mode 100644 r/sedonadb/man/sd_to_view.Rd create mode 100644 r/sedonadb/man/sedonadb-package.Rd create mode 100644 r/sedonadb/man/sedonadb_adbc.Rd create mode 100644 r/sedonadb/man/to_upper.Rd create mode 100644 r/sedonadb/sedonadb.Rproj create mode 100644 r/sedonadb/src/.gitignore create mode 100644 r/sedonadb/src/Makevars.in create mode 100644 r/sedonadb/src/Makevars.win.in create mode 100644 r/sedonadb/src/init.c create mode 100644 r/sedonadb/src/rust/.cargo/config.toml create mode 100644 r/sedonadb/src/rust/Cargo.toml create mode 100644 r/sedonadb/src/rust/api.h create mode 100644 r/sedonadb/src/rust/src/context.rs create mode 100644 r/sedonadb/src/rust/src/dataframe.rs create mode 100644 r/sedonadb/src/rust/src/error.rs create mode 100644 r/sedonadb/src/rust/src/lib.rs create mode 100644 r/sedonadb/src/rust/src/runtime.rs create mode 100644 r/sedonadb/src/sedonadb-win.def create mode 100644 r/sedonadb/tests/testthat.R create mode 100644 r/sedonadb/tests/testthat/test-adbc.R create mode 100644 r/sedonadb/tests/testthat/test-context.R create mode 100644 r/sedonadb/tests/testthat/test-dataframe.R diff --git a/Cargo.lock b/Cargo.lock index c630e5cac..3f1b3735f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4750,6 +4750,47 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "savvy" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b0b77a8477c7edc3166bdebc6f8fc449967942aa3d25f22b13a336df29da3e2" +dependencies = [ + "cc", + "rustversion", + "savvy-ffi", + "savvy-macro", +] + +[[package]] +name = "savvy-bindgen" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29c423a6e85d4d7c4172db33ace022acea97b2c6fded04d28da50a14591c87d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "savvy-ffi" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e06cec12411cc3a0cc7eaa13601c431f770cbc89825576fea8aebc369b3ed41c" + +[[package]] +name = "savvy-macro" +version = "0.8.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df4c38f496dd2a8f5aac0bdff321e88f59d241fc4cdf1b75f4859a69134c020f" +dependencies = [ + "proc-macro2", + "quote", + "savvy-bindgen", + "syn 2.0.106", +] + [[package]] name = "schannel" version = "0.1.27" @@ -5196,6 +5237,25 @@ dependencies = [ "tokio", ] +[[package]] +name = "sedonadbr" +version = "0.1.0" +dependencies = [ + "arrow-array", + "arrow-schema", + "datafusion", + "datafusion-common", + "savvy", + "savvy-ffi", + "sedona", + "sedona-adbc", + "sedona-expr", + "sedona-geoparquet", + "sedona-schema", + "thiserror 2.0.16", + "tokio", +] + [[package]] name = "semver" version = "1.0.26" diff --git a/Cargo.toml b/Cargo.toml index 479743026..0a8e803ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ members = [ "c/sedona-proj", "c/sedona-s2geography", "c/sedona-tg", + "r/sedonadb/src/rust", "rust/sedona-adbc", "rust/sedona-expr", "rust/sedona-functions", diff --git a/r/sedonadb/.Rbuildignore b/r/sedonadb/.Rbuildignore new file mode 100644 index 000000000..7e7df6319 --- /dev/null +++ b/r/sedonadb/.Rbuildignore @@ -0,0 +1,12 @@ +^sedonadb\.Rproj$ +^\.Rproj\.user$ +^LICENSE\.md$ + +^src/rust/\.cargo$ +^src/rust/target$ +^src/Makevars$ +^src/Makevars\.win$ +^\.cache$ +^compile_commands\.json$ +^\.vscode$ +^README\.Rmd$ diff --git a/r/sedonadb/.gitignore b/r/sedonadb/.gitignore new file mode 100644 index 000000000..a4ce0eb09 --- /dev/null +++ b/r/sedonadb/.gitignore @@ -0,0 +1,9 @@ +.Rproj.user +.Rhistory +.Rdata +.httr-oauth +.DS_Store +.quarto +.cache +compile_commands.json +.vscode diff --git a/r/sedonadb/DESCRIPTION b/r/sedonadb/DESCRIPTION new file mode 100644 index 000000000..1f7ab75f4 --- /dev/null +++ b/r/sedonadb/DESCRIPTION @@ -0,0 +1,23 @@ +Package: sedonadb +Title: Bindings for Apache SedonaDB +Version: 0.0.0.9000 +Authors@R: + person("Dewey", "Dunnington", , "dewey@dunnington.ca", role = c("aut", "cre")) +Description: Provides bindings for Apache SedonaDB, a lightweight + query engine optimized for spatial workflows. +License: Apache License (>= 2) +Encoding: UTF-8 +Roxygen: list(markdown = TRUE) +RoxygenNote: 7.3.2 +SystemRequirements: Cargo (Rust's package manager), rustc +Depends: R (>= 4.1.0) +Suggests: + adbcdrivermanager, + rlang, + testthat (>= 3.0.0), + withr, + wk +Config/testthat/edition: 3 +Imports: + geoarrow, + nanoarrow diff --git a/r/sedonadb/LICENSE.md b/r/sedonadb/LICENSE.md new file mode 100644 index 000000000..b62a9b5ff --- /dev/null +++ b/r/sedonadb/LICENSE.md @@ -0,0 +1,194 @@ +Apache License +============== + +_Version 2.0, January 2004_ +_<>_ + +### 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/r/sedonadb/NAMESPACE b/r/sedonadb/NAMESPACE new file mode 100644 index 000000000..488c39ce7 --- /dev/null +++ b/r/sedonadb/NAMESPACE @@ -0,0 +1,35 @@ +# Generated by roxygen2: do not edit by hand + +S3method("$<-",savvy_sedonadb__sealed) +S3method("[[<-",savvy_sedonadb__sealed) +S3method(as.data.frame,sedonadb_dataframe) +S3method(as_nanoarrow_array_stream,sedonadb_dataframe) +S3method(as_sedonadb_dataframe,data.frame) +S3method(as_sedonadb_dataframe,nanoarrow_array) +S3method(as_sedonadb_dataframe,nanoarrow_array_stream) +S3method(as_sedonadb_dataframe,sedonadb_dataframe) +S3method(dim,sedonadb_dataframe) +S3method(dimnames,sedonadb_dataframe) +S3method(head,sedonadb_dataframe) +S3method(infer_nanoarrow_schema,sedonadb_dataframe) +S3method(print,InternalContext__bundle) +S3method(print,InternalDataFrame__bundle) +S3method(print,Person__bundle) +S3method(print,sedonadb_dataframe) +export(as_sedonadb_dataframe) +export(int_times_int) +export(sd_collect) +export(sd_compute) +export(sd_count) +export(sd_drop_view) +export(sd_preview) +export(sd_read_parquet) +export(sd_sql) +export(sd_to_view) +export(sd_view) +export(sedonadb_adbc) +export(to_upper) +importFrom(nanoarrow,as_nanoarrow_array_stream) +importFrom(nanoarrow,infer_nanoarrow_schema) +importFrom(utils,head) +useDynLib(sedonadb, .registration = TRUE) diff --git a/r/sedonadb/R/000-wrappers.R b/r/sedonadb/R/000-wrappers.R new file mode 100644 index 000000000..190946b9d --- /dev/null +++ b/r/sedonadb/R/000-wrappers.R @@ -0,0 +1,268 @@ +# Generated by savvy: do not edit by hand +# +# Note: +# This wrapper file is named as `000-wrappers.R` so that this file is loaded +# first, which allows users to override the functions defined here (e.g., a +# print() method for an enum). + +#' @useDynLib sedonadb, .registration = TRUE +#' @keywords internal +NULL + +# Check class and extract the external pointer embedded in the environment +.savvy_extract_ptr <- function(e, class) { + if(is.null(e)) { + return(NULL) + } + + if(inherits(e, class)) { + e$.ptr + } else { + msg <- paste0("Expected ", class, ", got ", class(e)[1]) + stop(msg, call. = FALSE) + } +} + +# Prohibit modifying environments + +#' @export +`$<-.savvy_sedonadb__sealed` <- function(x, name, value) { + class <- gsub("__bundle$", "", class(x)[1]) + stop(class, " cannot be modified", call. = FALSE) +} + +#' @export +`[[<-.savvy_sedonadb__sealed` <- function(x, i, value) { + class <- gsub("__bundle$", "", class(x)[1]) + stop(class, " cannot be modified", call. = FALSE) +} + + +`init_r_runtime_interrupts` <- function(`interrupts_call`, `pkg_env`) { + invisible(.Call(savvy_init_r_runtime_interrupts__impl, `interrupts_call`, `pkg_env`)) +} + +#' Multiply Input By Another Input +#' +#' @param x An integer vector. +#' @param y An integer to multiply. +#' @returns An integer vector with values multiplied by `y`. +#' @export +`int_times_int` <- function(`x`, `y`) { + .Call(savvy_int_times_int__impl, `x`, `y`) +} + + +`sedonadb_adbc_init_func` <- function() { + .Call(savvy_sedonadb_adbc_init_func__impl) +} + +#' Convert Input To Upper-Case +#' +#' @param x A character vector. +#' @returns A character vector with upper case version of the input. +#' @export +`to_upper` <- function(`x`) { + .Call(savvy_to_upper__impl, `x`) +} + +### wrapper functions for InternalContext + +`InternalContext_data_frame_from_array_stream` <- function(self) { + function(`stream_xptr`, `collect_now`) { + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalContext_data_frame_from_array_stream__impl, `self`, `stream_xptr`, `collect_now`)) + } +} + +`InternalContext_deregister_table` <- function(self) { + function(`table_ref`) { + invisible(.Call(savvy_InternalContext_deregister_table__impl, `self`, `table_ref`)) + } +} + +`InternalContext_read_parquet` <- function(self) { + function(`paths`) { + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalContext_read_parquet__impl, `self`, `paths`)) + } +} + +`InternalContext_sql` <- function(self) { + function(`query`) { + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalContext_sql__impl, `self`, `query`)) + } +} + +`InternalContext_view` <- function(self) { + function(`table_ref`) { + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalContext_view__impl, `self`, `table_ref`)) + } +} + +`.savvy_wrap_InternalContext` <- function(ptr) { + e <- new.env(parent = emptyenv()) + e$.ptr <- ptr + e$`data_frame_from_array_stream` <- `InternalContext_data_frame_from_array_stream`(ptr) + e$`deregister_table` <- `InternalContext_deregister_table`(ptr) + e$`read_parquet` <- `InternalContext_read_parquet`(ptr) + e$`sql` <- `InternalContext_sql`(ptr) + e$`view` <- `InternalContext_view`(ptr) + + class(e) <- c("InternalContext", "savvy_sedonadb__sealed") + e +} + + + +`InternalContext` <- new.env(parent = emptyenv()) + +### associated functions for InternalContext + +`InternalContext`$`new` <- function() { + .savvy_wrap_InternalContext(.Call(savvy_InternalContext_new__impl)) +} + + +class(`InternalContext`) <- c("InternalContext__bundle", "savvy_sedonadb__sealed") + +#' @export +`print.InternalContext__bundle` <- function(x, ...) { + cat('InternalContext\n') +} + +### wrapper functions for InternalDataFrame + +`InternalDataFrame_collect` <- function(self) { + function(`out`) { + .Call(savvy_InternalDataFrame_collect__impl, `self`, `out`) + } +} + +`InternalDataFrame_compute` <- function(self) { + function(`ctx`) { + `ctx` <- .savvy_extract_ptr(`ctx`, "InternalContext") + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalDataFrame_compute__impl, `self`, `ctx`)) + } +} + +`InternalDataFrame_count` <- function(self) { + function() { + .Call(savvy_InternalDataFrame_count__impl, `self`) + } +} + +`InternalDataFrame_limit` <- function(self) { + function(`n`) { + .savvy_wrap_InternalDataFrame(.Call(savvy_InternalDataFrame_limit__impl, `self`, `n`)) + } +} + +`InternalDataFrame_primary_geometry_column_index` <- function(self) { + function() { + .Call(savvy_InternalDataFrame_primary_geometry_column_index__impl, `self`) + } +} + +`InternalDataFrame_show` <- function(self) { + function(`ctx`, `width_chars`, `ascii`, `limit` = NULL) { + `ctx` <- .savvy_extract_ptr(`ctx`, "InternalContext") + .Call(savvy_InternalDataFrame_show__impl, `self`, `ctx`, `width_chars`, `ascii`, `limit`) + } +} + +`InternalDataFrame_to_arrow_schema` <- function(self) { + function(`out`) { + invisible(.Call(savvy_InternalDataFrame_to_arrow_schema__impl, `self`, `out`)) + } +} + +`InternalDataFrame_to_arrow_stream` <- function(self) { + function(`out`) { + invisible(.Call(savvy_InternalDataFrame_to_arrow_stream__impl, `self`, `out`)) + } +} + +`InternalDataFrame_to_view` <- function(self) { + function(`ctx`, `table_ref`, `overwrite`) { + `ctx` <- .savvy_extract_ptr(`ctx`, "InternalContext") + invisible(.Call(savvy_InternalDataFrame_to_view__impl, `self`, `ctx`, `table_ref`, `overwrite`)) + } +} + +`.savvy_wrap_InternalDataFrame` <- function(ptr) { + e <- new.env(parent = emptyenv()) + e$.ptr <- ptr + e$`collect` <- `InternalDataFrame_collect`(ptr) + e$`compute` <- `InternalDataFrame_compute`(ptr) + e$`count` <- `InternalDataFrame_count`(ptr) + e$`limit` <- `InternalDataFrame_limit`(ptr) + e$`primary_geometry_column_index` <- `InternalDataFrame_primary_geometry_column_index`(ptr) + e$`show` <- `InternalDataFrame_show`(ptr) + e$`to_arrow_schema` <- `InternalDataFrame_to_arrow_schema`(ptr) + e$`to_arrow_stream` <- `InternalDataFrame_to_arrow_stream`(ptr) + e$`to_view` <- `InternalDataFrame_to_view`(ptr) + + class(e) <- c("InternalDataFrame", "savvy_sedonadb__sealed") + e +} + + + +`InternalDataFrame` <- new.env(parent = emptyenv()) + +### associated functions for InternalDataFrame + + + +class(`InternalDataFrame`) <- c("InternalDataFrame__bundle", "savvy_sedonadb__sealed") + +#' @export +`print.InternalDataFrame__bundle` <- function(x, ...) { + cat('InternalDataFrame\n') +} + +### wrapper functions for Person + +`Person_name` <- function(self) { + function() { + .Call(savvy_Person_name__impl, `self`) + } +} + +`Person_set_name` <- function(self) { + function(`name`) { + invisible(.Call(savvy_Person_set_name__impl, `self`, `name`)) + } +} + +`.savvy_wrap_Person` <- function(ptr) { + e <- new.env(parent = emptyenv()) + e$.ptr <- ptr + e$`name` <- `Person_name`(ptr) + e$`set_name` <- `Person_set_name`(ptr) + + class(e) <- c("Person", "savvy_sedonadb__sealed") + e +} + + + +`Person` <- new.env(parent = emptyenv()) + +### associated functions for Person + +`Person`$`associated_function` <- function() { + .Call(savvy_Person_associated_function__impl) +} + +`Person`$`new` <- function() { + .savvy_wrap_Person(.Call(savvy_Person_new__impl)) +} + + +class(`Person`) <- c("Person__bundle", "savvy_sedonadb__sealed") + +#' @export +`print.Person__bundle` <- function(x, ...) { + cat('Person\n') +} + diff --git a/r/sedonadb/R/adbc.R b/r/sedonadb/R/adbc.R new file mode 100644 index 000000000..7c75f5522 --- /dev/null +++ b/r/sedonadb/R/adbc.R @@ -0,0 +1,21 @@ + +#' SedonaDB ADBC Driver +#' +#' @returns An [adbcdrivermanager::adbc_driver()] of class +#' 'sedonadb_driver_sedonadb' +#' @export +#' +#' @examples +#' library(adbcdrivermanager) +#' +#' con <- sedonadb_adbc() |> +#' adbc_database_init() |> +#' adbc_connection_init() +#' con |> +#' read_adbc("SELECT ST_Point(0, 1) as geometry") |> +#' as.data.frame() +#' +sedonadb_adbc <- function() { + init_func <- structure(sedonadb_adbc_init_func(), class = "adbc_driver_init_func") + adbcdrivermanager::adbc_driver(init_func, subclass = "sedonadb_driver_sedonadb") +} diff --git a/r/sedonadb/R/context.R b/r/sedonadb/R/context.R new file mode 100644 index 000000000..33785e283 --- /dev/null +++ b/r/sedonadb/R/context.R @@ -0,0 +1,79 @@ + +#' Create a DataFrame from one or more Parquet files +#' +#' The query will only be executed when requested. +#' +#' @param path One or more paths or URIs to Parquet files +#' +#' @returns A sedonadb_dataframe +#' @export +#' +#' @examples +#' path <- system.file("files/natural-earth_cities_geo.parquet", package = "sedonadb") +#' sd_read_parquet(path) |> head(5) |> sd_preview() +#' +sd_read_parquet <- function(path) { + ctx <- ctx() + df <- ctx$read_parquet(path) + new_sedonadb_dataframe(ctx, df) +} + +#' Create a DataFrame from SQL +#' +#' The query will only be executed when requested. +#' +#' @param sql A SQL string to execute +#' +#' @returns A sedonadb_dataframe +#' @export +#' +#' @examples +#' sd_sql("SELECT ST_Point(0, 1) as geom") |> sd_preview() +#' +sd_sql <- function(sql) { + ctx <- ctx() + df <- ctx$sql(sql) + new_sedonadb_dataframe(ctx, df) +} + +#' Create or Drop a named view +#' +#' Remove a view created with [sd_to_view()] from the context. +#' +#' @param table_ref The name of the view reference +#' @returns The context, invisibly +#' @export +#' +#' @examples +#' sd_sql("SELECT 1 as one") |> sd_to_view("foofy") +#' sd_view("foofy") +#' sd_drop_view("foofy") +#' try(sd_view("foofy")) +#' +sd_drop_view <- function(table_ref) { + ctx <- ctx() + ctx$deregister_table(table_ref) + invisible(ctx) +} + +#' @rdname sd_drop_view +#' @export +sd_view <- function(table_ref) { + ctx <- ctx() + df <- ctx$view(table_ref) + new_sedonadb_dataframe(ctx, df) +} + +# We use just one context for now. In theory we could support multiple +# contexts with a shared runtime, which would scope the registration +# of various components more cleanly from the runtime. +ctx <- function() { + if (is.null(global_ctx$ctx)) { + global_ctx$ctx <- InternalContext$new() + } + + global_ctx$ctx +} + +global_ctx <- new.env(parent = emptyenv()) +global_ctx$ctx <- NULL diff --git a/r/sedonadb/R/dataframe.R b/r/sedonadb/R/dataframe.R new file mode 100644 index 000000000..2e0d46fb7 --- /dev/null +++ b/r/sedonadb/R/dataframe.R @@ -0,0 +1,233 @@ + +#' Convert an object to a DataFrame +#' +#' @param x An object to convert +#' @param ... Extra arguments passed to/from methods +#' @param schema The requested schema +#' +#' @returns A sedonadb_dataframe +#' @export +#' +#' @examples +#' as_sedonadb_dataframe(data.frame(x = 1:3)) +#' +as_sedonadb_dataframe <- function(x, ..., schema = NULL) { + UseMethod("as_sedonadb_dataframe") +} + +#' @export +as_sedonadb_dataframe.sedonadb_dataframe <- function(x, ..., schema = NULL) { + # In the future, schema can be handled with a cast + x +} + +#' @export +as_sedonadb_dataframe.data.frame <- function(x, ..., schema = NULL) { + array <- nanoarrow::as_nanoarrow_array(x, schema = schema) + stream <- nanoarrow::basic_array_stream(list(array)) + ctx <- ctx() + df <- ctx$data_frame_from_array_stream(stream, collect_now = TRUE) + new_sedonadb_dataframe(ctx, df) +} + +#' @export +as_sedonadb_dataframe.nanoarrow_array <- function(x, ..., schema = NULL) { + stream <- nanoarrow::as_nanoarrow_array_stream(x, schema = schema) + ctx <- ctx() + df <- ctx$data_frame_from_array_stream(stream, collect_now = TRUE) + + # Verify schema is handled + as_sedonadb_dataframe(new_sedonadb_dataframe(ctx, df), schema = schema) +} + +#' @export +as_sedonadb_dataframe.nanoarrow_array_stream <- function(x, ..., schema = NULL, + lazy = TRUE) { + stream <- nanoarrow::as_nanoarrow_array_stream(x, schema = schema) + ctx <- ctx() + df <- ctx$data_frame_from_array_stream(stream, collect_now = !lazy) + + # Verify schema is handled + as_sedonadb_dataframe(new_sedonadb_dataframe(ctx, df), schema = schema) +} + +#' Count rows in a DataFrame +#' +#' @param .data A sedonadb_dataframe +#' +#' @returns The number of rows after executing the query +#' @export +#' +#' @examples +#' sd_sql("SELECT 1 as one") |> sd_count() +#' +sd_count <- function(.data) { + .data$df$count() +} + +#' Register a DataFrame as a named view +#' +#' This is useful for creating a view that can be referenced in a SQL +#' statement. Use [sd_drop_view()] to remove it. +#' +#' @inheritParams sd_count +#' @inheritParams sd_drop_view +#' @param overwrite Use TRUE to overwrite a view with the same name (if it exists) +#' +#' @returns .data, invisibly +#' @export +#' +#' @examples +#' sd_sql("SELECT 1 as one") |> sd_to_view("foofy") +#' sd_sql("SELECT * FROM foofy") +#' +sd_to_view <- function(.data, table_ref, overwrite = FALSE) { + .data <- as_sedonadb_dataframe(.data) + .data$df$to_view(.data$ctx, table_ref, overwrite) + invisible(.data) +} + +#' Collect a DataFrame into memory +#' +#' Use `sd_compute()` to collect and return the result as a DataFrame; +#' use `sd_collect()` to collect and return the result as an R data.frame. +#' +#' @inheritParams sd_count +#' @param ptype The target R object. See [nanoarrow::convert_array_stream]. +#' +#' @returns `sd_compute()` returns a sedonadb_dataframe; `sd_collect()` returns +#' a data.frame (or subclass according to `ptype`). +#' @export +#' +#' @examples +#' sd_sql("SELECT 1 as one") |> sd_compute() +#' sd_sql("SELECT 1 as one") |> sd_collect() +#' +sd_compute <- function(.data) { + .data <- as_sedonadb_dataframe(.data) + df <- .data$df$compute(.data$ctx) + new_sedonadb_dataframe(.data$ctx, df) +} + +#' @export +#' @rdname sd_compute +sd_collect <- function(.data, ptype = NULL) { + .data <- as_sedonadb_dataframe(.data) + stream <- nanoarrow::nanoarrow_allocate_array_stream() + size <- .data$df$collect(stream) + nanoarrow::convert_array_stream(stream, size = size, to = ptype) +} + +#' Preview and print the results of running a query +#' +#' This is used to implement `print()` for the sedonadb_dataframe or can +#' be used to explicitly preview if `options(sedonadb.interactive = FALSE)`. +#' +#' @inheritParams sd_count +#' @param n The number of rows to preview. Use `Inf` to preview all rows. +#' Defaults to `getOption("pillar.print_max")`. +#' @param ascii Use `TRUE` to force ASCII table formatting or `FALSE` to force +#' unicode formatting. By default, use a heuristic to determine if the output +#' is unicode-friendly or the value of `getOption("cli.unicode")`. +#' @param width The character width of the output. Defaults to +#' `getOption("width")`. +#' +#' @returns .data, invisibly +#' @export +#' +#' @examples +#' sd_sql("SELECT 1 as one") |> sd_preview() +#' +sd_preview <- function(.data, n = NULL, ascii = NULL, width = NULL) { + .data <- as_sedonadb_dataframe(.data) + + if (is.null(width)) { + width <- getOption("width") + } + + if (is.null(n)) { + n <- getOption("pillar.print_max", 6) + } + + if (is.null(ascii)) { + ascii <- !is_utf8_output() + } + + content <- .data$df$show( + .data$ctx, + width_chars = as.integer(width), + limit = as.double(n), + ascii = ascii + ) + + cat(content) + cat(paste0("Preview of up to ", n, " row(s)\n")) + + invisible(.data) +} + + +new_sedonadb_dataframe <- function(ctx, internal_df) { + structure(list(ctx = ctx, df = internal_df), class = "sedonadb_dataframe") +} + +#' @importFrom utils head +#' @export +head.sedonadb_dataframe <- function(x, n = 6L, ...) { + new_sedonadb_dataframe(x$ctx, x$df$limit(as.double(n))) +} + +#' @export +dimnames.sedonadb_dataframe <- function(x, ...) { + list(NULL, names(infer_nanoarrow_schema(x)$children)) +} + +#' @export +dim.sedonadb_dataframe <- function(x, ...) { + c(NA_integer_, length(infer_nanoarrow_schema(x)$children)) +} + +#' @export +as.data.frame.sedonadb_dataframe <- function(x, ...) { + stream <- nanoarrow::nanoarrow_allocate_array_stream() + size <- x$df$collect(stream) + nanoarrow::convert_array_stream(stream, size = size) +} + +#' @importFrom nanoarrow infer_nanoarrow_schema +#' @export +infer_nanoarrow_schema.sedonadb_dataframe <- function(x, ...) { + schema <- nanoarrow::nanoarrow_allocate_schema() + x$df$to_arrow_schema(schema) + schema +} + +#' @importFrom nanoarrow as_nanoarrow_array_stream +#' @export +as_nanoarrow_array_stream.sedonadb_dataframe <- function(x, ...) { + stream <- nanoarrow::nanoarrow_allocate_array_stream() + x$df$to_arrow_stream(stream) + stream +} + +#' @export +print.sedonadb_dataframe <- function(x, ..., width = NULL, n = NULL) { + if (isTRUE(getOption("sedonadb.interactive", TRUE))) { + sd_preview(x, n = n, width = width) + } else { + sd_preview(x, n = 0) + cat("Use options(sedonadb.interactive = TRUE) or use sd_preview() to print\n") + } + + invisible(x) +} + +# Borrowed from cli but without detecting LaTeX output. +is_utf8_output <- function() { + opt <- getOption("cli.unicode", NULL) + if (!is.null(opt)) { + isTRUE(opt) + } else { + l10n_info()$`UTF-8` + } +} diff --git a/r/sedonadb/R/sedonadb-package.R b/r/sedonadb/R/sedonadb-package.R new file mode 100644 index 000000000..a65cf6430 --- /dev/null +++ b/r/sedonadb/R/sedonadb-package.R @@ -0,0 +1,6 @@ +#' @keywords internal +"_PACKAGE" + +## usethis namespace: start +## usethis namespace: end +NULL diff --git a/r/sedonadb/R/zzz.R b/r/sedonadb/R/zzz.R new file mode 100644 index 000000000..066e79dd4 --- /dev/null +++ b/r/sedonadb/R/zzz.R @@ -0,0 +1,22 @@ + +.onLoad <- function(...) { + # Load geoarrow to manage conversion of arrow results to/from spatial objects + requireNamespace("geoarrow", quietly = TRUE) + + # Call at least one function for R CMD check + geoarrow::as_geoarrow_array("POINT (0 1") + + # Inject what we need to reduce the Rust code to a simple Rf_eval() + ns <- asNamespace("sedonadb") + call <- call("check_interrupts") + init_r_runtime_interrupts(call, ns) +} + +# The function we call from Rust to check for interrupts. R checks for +# interrupts automatically when evaluating regular R code and signals +# an interrupt condition, +check_interrupts <- function() { + tryCatch({ + FALSE + }, interrupt = function(...) TRUE, error = function(...) TRUE) +} diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd new file mode 100644 index 000000000..cf98a0eaa --- /dev/null +++ b/r/sedonadb/README.Rmd @@ -0,0 +1,55 @@ +--- +output: github_document +--- + + + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + fig.path = "man/figures/README-", + out.width = "100%" +) +``` + +# sedonadb + + + + +The goal of sedonadb is to provide an R interface to [Apache SedonaDB](https://sedona.apache.org/sedonadb). SedonaDB provides a [DataFusion](https://datafusion.apache.org)-powered single-node engine with a wide range of spatial capabilities built in, including spatial SQL with high function coverage and GeoParquet IO. + +## Installation + +You can install the development version of sedonadb from [GitHub](https://github.com/) with: + +``` r +# install.packages("pak") +pak::pak("paleolimbot/sedonadb") +``` + +Installing a development version of sedonadb requires a [Rust compiler](https://rustup.rs) and PROJ/GEOS system dependencies. Install instructions for these dependencies on various platforms can be found on the [sf package homepage](https://r-spatial.github.io/sf). + +## Example + +This is a basic example which shows you how to solve a common problem: + +```{r example} +library(sedonadb) + +url <- "https://github.com/geoarrow/geoarrow-data/releases/download/v0.2.0/microsoft-buildings_point_geo.parquet" + +sd_read_parquet(url) |> sd_to_view("buildings", overwrite = TRUE) +sd_sql("SELECT * FROM buildings") |> sd_preview(5) +``` + +```{r} +library(sf) + +nc <- sf::read_sf(system.file("shape/nc.shp", package = "sf")) +nc |> sd_to_view("nc", overwrite = TRUE) + +sd_sql("SELECT * FROM nc") +``` + diff --git a/r/sedonadb/cleanup b/r/sedonadb/cleanup new file mode 100755 index 000000000..e346d71d3 --- /dev/null +++ b/r/sedonadb/cleanup @@ -0,0 +1 @@ +rm -f src/Makevars diff --git a/r/sedonadb/cleanup.win b/r/sedonadb/cleanup.win new file mode 100755 index 000000000..a18217462 --- /dev/null +++ b/r/sedonadb/cleanup.win @@ -0,0 +1 @@ +rm -f src/Makevars.win diff --git a/r/sedonadb/configure b/r/sedonadb/configure new file mode 100755 index 000000000..86b6ce962 --- /dev/null +++ b/r/sedonadb/configure @@ -0,0 +1,54 @@ +# Even when `cargo` is on `PATH`, `rustc` might not in some cases. This adds +# ~/.cargo/bin to PATH to address such cases. Note that is not always available +# (e.g. or on Ubuntu with Rust installed via APT). +if [ -d "${HOME}/.cargo/bin" ]; then + export PATH="${PATH}:${HOME}/.cargo/bin" +fi + +CARGO_VERSION="$(cargo --version)" + +if [ $? -ne 0 ]; then + echo "-------------- ERROR: CONFIGURATION FAILED --------------------" + echo "" + echo "The cargo command is not available. To install Rust, please refer" + echo "to the official instruction:" + echo "" + echo "https://www.rust-lang.org/tools/install" + echo "" + echo "---------------------------------------------------------------" + + exit 1 +fi + +# There's a little chance that rustc is not available on PATH while cargo is. +# So, just ignore the error case. +RUSTC_VERSION="$(rustc --version || true)" + +# Report the version of Rustc to comply with the CRAN policy +echo "using Rust package manager: '${CARGO_VERSION}'" +echo "using Rust compiler: '${RUSTC_VERSION}'" + +if [ "$(uname)" = "Emscripten" ]; then + TARGET="wasm32-unknown-emscripten" +fi + +# allow overriding profile externally (e.g. on CI) +if [ -n "${SAVVY_PROFILE}" ]; then + PROFILE="${SAVVY_PROFILE}" +# catch DEBUG envvar, which is passed from pkgbuild::compile_dll() +elif [ "${DEBUG}" = "true" ]; then + PROFILE=dev +else + PROFILE=release +fi + +# e.g. SAVVY_FEATURES="a b" --> "--features 'a b'" +if [ -n "${SAVVY_FEATURES}" ]; then + FEATURE_FLAGS="--features '${SAVVY_FEATURES}'" +fi + +sed \ + -e "s/@TARGET@/${TARGET}/" \ + -e "s/@PROFILE@/${PROFILE}/" \ + -e "s/@FEATURE_FLAGS@/${FEATURE_FLAGS}/" \ + src/Makevars.in > src/Makevars diff --git a/r/sedonadb/configure.win b/r/sedonadb/configure.win new file mode 100755 index 000000000..b1251ff27 --- /dev/null +++ b/r/sedonadb/configure.win @@ -0,0 +1,43 @@ +CARGO_VERSION="$(cargo --version)" + +if [ $? -ne 0 ]; then + echo "-------------- ERROR: CONFIGURATION FAILED --------------------" + echo "" + echo "The cargo command is not available. To install Rust, please refer" + echo "to the official instruction:" + echo "" + echo "https://www.rust-lang.org/tools/install" + echo "" + echo "---------------------------------------------------------------" + + exit 1 +fi + +# There's a little chance that rustc is not available on PATH while cargo is. +# So, just ignore the error case. +RUSTC_VERSION="$(rustc --version || true)" + +# Report the version of Rustc to comply with the CRAN policy +echo "using Rust package manager: '${CARGO_VERSION}'" +echo "using Rust compiler: '${RUSTC_VERSION}'" + +# allow overriding profile externally (e.g. on CI) +if [ -n "${SAVVY_PROFILE}" ]; then + PROFILE="${SAVVY_PROFILE}" +# catch DEBUG envvar, which is passed from pkgbuild::compile_dll() +elif [ "${DEBUG}" = "true" ]; then + PROFILE=dev +else + PROFILE=release +fi + +# e.g. SAVVY_FEATURES="a b" --> "--features 'a b'" +if [ -n "${SAVVY_FEATURES}" ]; then + FEATURE_FLAGS="--features '${SAVVY_FEATURES}'" +fi + +sed \ + -e "s/@TARGET@/x86_64-pc-windows-gnu/" \ + -e "s/@PROFILE@/${PROFILE}/" \ + -e "s/@FEATURE_FLAGS@/${FEATURE_FLAGS}/" \ + src/Makevars.win.in > src/Makevars.win diff --git a/r/sedonadb/inst/files/natural-earth_cities_geo.parquet b/r/sedonadb/inst/files/natural-earth_cities_geo.parquet new file mode 100644 index 0000000000000000000000000000000000000000..bc419b494a492244b5cade3a20b146be1a8b439b GIT binary patch literal 17322 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�YM<*A{~)uJc(DRQGlZqyf-s8qQBtx%~e z&^Z57Q2~uD`feP7yP93g;u9&@A&5<@!VHIQI*WlhE zu?D=LDyGUd6-Q|U{Ds;I`Bz#8{Xir1$&iQey4-3F-_uq@jKlN)p$Akm4%~}CuLwFK z+Hf9#9vSi$=wHT!{|lNb&RPO_i8TdW8YZC&<3lnbOvU|2LeAoNfeCZ-+nB;ELPiZ@nG@JNz4sh0N{n zhx38`w)mG7g8xBXg_seYYntK+*QrGOLZ@hSmleVs&TW5lwn4eXE1YeB=KpfGfjIPX ze{;5hoGCin@O*VpQ`G-;eu2J^??3stgP4SV-d~(mV^t>lZt2aO(R9X1=qtv<G{{3dCOS?`WfhptvJr{zCWEc5Ko0pE-@Qc+;mia14%y9LeCwGj!K)JbeUJ(Hf#}==bqwWB{!H-i<*-7J4;aCB zI`u-$!#OYqWXQ7HqHf50VJA9Qpk80A^y>;uMY@uk-@hbkCiK}gwql-d;`+31tfphHNoPiLg_zVPV{(1(&`JO)m!Tev(KzJU`KnSD1o`Dc;{tSfX|9PFec@Bd9 ziSK`kiY-+>Wp$a~nhob|^!-r1!y7=oq6gJ|JKxVh(-cML1^5^DKd2Gn&kwj?!u=2Q z{`z`XOd%&_xW~d@6srE7K8|NZLuK^Bmy~(9--4z|i+U`4SOI4EOGdP&q6$j^%^CWD zf1_Xc{G!EuH6G))2=hs)68JCECq}67FlQhzj6^TQB#CcM;bjl{zBO$qy!%D3fBW=? L|Na^NFCG5_mU+Mm literal 0 HcmV?d00001 diff --git a/r/sedonadb/inst/files/natural-earth_countries-geography_geo.parquet b/r/sedonadb/inst/files/natural-earth_countries-geography_geo.parquet new file mode 100644 index 0000000000000000000000000000000000000000..078dc12c280b5332a3377582ea72d64df2269a31 GIT binary patch literal 181446 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 literal 0 HcmV?d00001 diff --git a/r/sedonadb/inst/files/natural-earth_countries_geo.parquet b/r/sedonadb/inst/files/natural-earth_countries_geo.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a9f3bd4e99ca25de647d489eb9654b4f038004ce GIT binary patch literal 186590 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�Gy4t9Jznh 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 HM)3awZHe}C literal 0 HcmV?d00001 diff --git a/r/sedonadb/man/as_sedonadb_dataframe.Rd b/r/sedonadb/man/as_sedonadb_dataframe.Rd new file mode 100644 index 000000000..b5c306062 --- /dev/null +++ b/r/sedonadb/man/as_sedonadb_dataframe.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataframe.R +\name{as_sedonadb_dataframe} +\alias{as_sedonadb_dataframe} +\title{Convert an object to a DataFrame} +\usage{ +as_sedonadb_dataframe(x, ..., schema = NULL) +} +\arguments{ +\item{x}{An object to convert} + +\item{...}{Extra arguments passed to/from methods} + +\item{schema}{The requested schema} +} +\value{ +A sedonadb_dataframe +} +\description{ +Convert an object to a DataFrame +} +\examples{ +as_sedonadb_dataframe(data.frame(x = 1:3)) + +} diff --git a/r/sedonadb/man/int_times_int.Rd b/r/sedonadb/man/int_times_int.Rd new file mode 100644 index 000000000..565baee4d --- /dev/null +++ b/r/sedonadb/man/int_times_int.Rd @@ -0,0 +1,19 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/000-wrappers.R +\name{int_times_int} +\alias{int_times_int} +\title{Multiply Input By Another Input} +\usage{ +int_times_int(x, y) +} +\arguments{ +\item{x}{An integer vector.} + +\item{y}{An integer to multiply.} +} +\value{ +An integer vector with values multiplied by \code{y}. +} +\description{ +Multiply Input By Another Input +} diff --git a/r/sedonadb/man/sd_compute.Rd b/r/sedonadb/man/sd_compute.Rd new file mode 100644 index 000000000..97590fd67 --- /dev/null +++ b/r/sedonadb/man/sd_compute.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataframe.R +\name{sd_compute} +\alias{sd_compute} +\alias{sd_collect} +\title{Collect a DataFrame into memory} +\usage{ +sd_compute(.data) + +sd_collect(.data, ptype = NULL) +} +\arguments{ +\item{.data}{A sedonadb_dataframe} + +\item{ptype}{The target R object. See \link[nanoarrow:convert_array_stream]{nanoarrow::convert_array_stream}.} +} +\value{ +\code{sd_compute()} returns a sedonadb_dataframe; \code{sd_collect()} returns +a data.frame (or subclass according to \code{ptype}). +} +\description{ +Use \code{sd_compute()} to collect and return the result as a DataFrame; +use \code{sd_collect()} to collect and return the result as an R data.frame. +} +\examples{ +sd_sql("SELECT 1 as one") |> sd_compute() +sd_sql("SELECT 1 as one") |> sd_collect() + +} diff --git a/r/sedonadb/man/sd_count.Rd b/r/sedonadb/man/sd_count.Rd new file mode 100644 index 000000000..c93b9d53d --- /dev/null +++ b/r/sedonadb/man/sd_count.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataframe.R +\name{sd_count} +\alias{sd_count} +\title{Count rows in a DataFrame} +\usage{ +sd_count(.data) +} +\arguments{ +\item{.data}{A sedonadb_dataframe} +} +\value{ +The number of rows after executing the query +} +\description{ +Count rows in a DataFrame +} +\examples{ +sd_sql("SELECT 1 as one") |> sd_count() + +} diff --git a/r/sedonadb/man/sd_drop_view.Rd b/r/sedonadb/man/sd_drop_view.Rd new file mode 100644 index 000000000..046b2607e --- /dev/null +++ b/r/sedonadb/man/sd_drop_view.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/context.R +\name{sd_drop_view} +\alias{sd_drop_view} +\alias{sd_view} +\title{Create or Drop a named view} +\usage{ +sd_drop_view(table_ref) + +sd_view(table_ref) +} +\arguments{ +\item{table_ref}{The name of the view reference} +} +\value{ +The context, invisibly +} +\description{ +Remove a view created with \code{\link[=sd_to_view]{sd_to_view()}} from the context. +} +\examples{ +sd_sql("SELECT 1 as one") |> sd_to_view("foofy") +sd_view("foofy") +sd_drop_view("foofy") +try(sd_view("foofy")) + +} diff --git a/r/sedonadb/man/sd_preview.Rd b/r/sedonadb/man/sd_preview.Rd new file mode 100644 index 000000000..351dd5a76 --- /dev/null +++ b/r/sedonadb/man/sd_preview.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataframe.R +\name{sd_preview} +\alias{sd_preview} +\title{Preview and print the results of running a query} +\usage{ +sd_preview(.data, n = NULL, ascii = NULL, width = NULL) +} +\arguments{ +\item{.data}{A sedonadb_dataframe} + +\item{n}{The number of rows to preview. Use \code{Inf} to preview all rows. +Defaults to \code{getOption("pillar.print_max")}.} + +\item{ascii}{Use \code{TRUE} to force ASCII table formatting or \code{FALSE} to force +unicode formatting. By default, use a heuristic to determine if the output +is unicode-friendly or the value of \code{getOption("cli.unicode")}.} + +\item{width}{The character width of the output. Defaults to +\code{getOption("width")}.} +} +\value{ +.data, invisibly +} +\description{ +This is used to implement \code{print()} for the sedonadb_dataframe or can +be used to explicitly preview if \code{options(sedonadb.interactive = FALSE)}. +} +\examples{ +sd_sql("SELECT 1 as one") |> sd_preview() + +} diff --git a/r/sedonadb/man/sd_read_parquet.Rd b/r/sedonadb/man/sd_read_parquet.Rd new file mode 100644 index 000000000..c370c777c --- /dev/null +++ b/r/sedonadb/man/sd_read_parquet.Rd @@ -0,0 +1,22 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/context.R +\name{sd_read_parquet} +\alias{sd_read_parquet} +\title{Create a DataFrame from one or more Parquet files} +\usage{ +sd_read_parquet(path) +} +\arguments{ +\item{path}{One or more paths or URIs to Parquet files} +} +\value{ +A sedonadb_dataframe +} +\description{ +The query will only be executed when requested. +} +\examples{ +path <- system.file("files/natural-earth_cities_geo.parquet", package = "sedonadb") +sd_read_parquet(path) |> head(5) |> sd_preview() + +} diff --git a/r/sedonadb/man/sd_sql.Rd b/r/sedonadb/man/sd_sql.Rd new file mode 100644 index 000000000..348072075 --- /dev/null +++ b/r/sedonadb/man/sd_sql.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/context.R +\name{sd_sql} +\alias{sd_sql} +\title{Create a DataFrame from SQL} +\usage{ +sd_sql(sql) +} +\arguments{ +\item{sql}{A SQL string to execute} +} +\value{ +A sedonadb_dataframe +} +\description{ +The query will only be executed when requested. +} +\examples{ +sd_sql("SELECT ST_Point(0, 1) as geom") |> sd_preview() + +} diff --git a/r/sedonadb/man/sd_to_view.Rd b/r/sedonadb/man/sd_to_view.Rd new file mode 100644 index 000000000..5c3ab020c --- /dev/null +++ b/r/sedonadb/man/sd_to_view.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dataframe.R +\name{sd_to_view} +\alias{sd_to_view} +\title{Register a DataFrame as a named view} +\usage{ +sd_to_view(.data, table_ref, overwrite = FALSE) +} +\arguments{ +\item{.data}{A sedonadb_dataframe} + +\item{table_ref}{The name of the view reference} + +\item{overwrite}{Use TRUE to overwrite a view with the same name (if it exists)} +} +\value{ +.data, invisibly +} +\description{ +This is useful for creating a view that can be referenced in a SQL +statement. Use \code{\link[=sd_drop_view]{sd_drop_view()}} to remove it. +} +\examples{ +sd_sql("SELECT 1 as one") |> sd_to_view("foofy") +sd_sql("SELECT * FROM foofy") + +} diff --git a/r/sedonadb/man/sedonadb-package.Rd b/r/sedonadb/man/sedonadb-package.Rd new file mode 100644 index 000000000..6503612dd --- /dev/null +++ b/r/sedonadb/man/sedonadb-package.Rd @@ -0,0 +1,15 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sedonadb-package.R +\docType{package} +\name{sedonadb-package} +\alias{sedonadb} +\alias{sedonadb-package} +\title{sedonadb: Bindings for Apache SedonaDB} +\description{ +Provides bindings for Apache SedonaDB, a lightweight query engine optimized for spatial workflows. +} +\author{ +\strong{Maintainer}: Dewey Dunnington \email{dewey@dunnington.ca} + +} +\keyword{internal} diff --git a/r/sedonadb/man/sedonadb_adbc.Rd b/r/sedonadb/man/sedonadb_adbc.Rd new file mode 100644 index 000000000..e75e9566a --- /dev/null +++ b/r/sedonadb/man/sedonadb_adbc.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/adbc.R +\name{sedonadb_adbc} +\alias{sedonadb_adbc} +\title{SedonaDB ADBC Driver} +\usage{ +sedonadb_adbc() +} +\value{ +An \code{\link[adbcdrivermanager:adbc_driver_void]{adbcdrivermanager::adbc_driver()}} of class +'sedonadb_driver_sedonadb' +} +\description{ +SedonaDB ADBC Driver +} +\examples{ +library(adbcdrivermanager) + +con <- sedonadb_adbc() |> + adbc_database_init() |> + adbc_connection_init() +con |> + read_adbc("SELECT ST_Point(0, 1) as geometry") |> + as.data.frame() + +} diff --git a/r/sedonadb/man/to_upper.Rd b/r/sedonadb/man/to_upper.Rd new file mode 100644 index 000000000..e2d9321a1 --- /dev/null +++ b/r/sedonadb/man/to_upper.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/000-wrappers.R +\name{to_upper} +\alias{to_upper} +\title{Convert Input To Upper-Case} +\usage{ +to_upper(x) +} +\arguments{ +\item{x}{A character vector.} +} +\value{ +A character vector with upper case version of the input. +} +\description{ +Convert Input To Upper-Case +} diff --git a/r/sedonadb/sedonadb.Rproj b/r/sedonadb/sedonadb.Rproj new file mode 100644 index 000000000..69fafd4b6 --- /dev/null +++ b/r/sedonadb/sedonadb.Rproj @@ -0,0 +1,22 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes +LineEndingConversion: Posix + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace diff --git a/r/sedonadb/src/.gitignore b/r/sedonadb/src/.gitignore new file mode 100644 index 000000000..f1265a239 --- /dev/null +++ b/r/sedonadb/src/.gitignore @@ -0,0 +1,7 @@ +*.o +*.so +*.dll +target + +Makevars +Makevars.win diff --git a/r/sedonadb/src/Makevars.in b/r/sedonadb/src/Makevars.in new file mode 100644 index 000000000..eedb231af --- /dev/null +++ b/r/sedonadb/src/Makevars.in @@ -0,0 +1,43 @@ +TARGET = @TARGET@ + +PROFILE = @PROFILE@ +FEATURE_FLAGS = @FEATURE_FLAGS@ + +# Add flags if necessary +RUSTFLAGS = + +TARGET_DIR = $(CURDIR)/rust/target +LIBDIR = $(TARGET_DIR)/$(TARGET)/$(subst dev,debug,$(PROFILE)) +STATLIB = $(LIBDIR)/libsedonadb.a +PKG_LIBS = -L$(LIBDIR) -lsedonadb -L/opt/homebrew/Cellar/geos/3.13.1/lib -lgeos_c + +CARGO_BUILD_ARGS = --lib --profile $(PROFILE) $(FEATURE_FLAGS) --manifest-path=./rust/Cargo.toml --target-dir $(TARGET_DIR) + +all: $(SHLIB) clean_intermediate + +$(SHLIB): $(STATLIB) + +$(STATLIB): + # In some environments, ~/.cargo/bin might not be included in PATH, so we need + # to set it here to ensure cargo can be invoked. It is appended to PATH and + # therefore is only used if cargo is absent from the user's PATH. + export PATH="$(PATH):$(HOME)/.cargo/bin" && \ + export CC="$(CC)" && \ + export CFLAGS="$(CFLAGS)" && \ + export RUSTFLAGS="$(RUSTFLAGS)" && \ + if [ "$(TARGET)" != "wasm32-unknown-emscripten" ]; then \ + cargo build $(CARGO_BUILD_ARGS); \ + else \ + export CARGO_PROFILE_DEV_PANIC="abort" && \ + export CARGO_PROFILE_RELEASE_PANIC="abort" && \ + export RUSTFLAGS="$(RUSTFLAGS) -Zdefault-visibility=hidden" && \ + cargo +nightly build $(CARGO_BUILD_ARGS) --target $(TARGET) -Zbuild-std=panic_abort,std; \ + fi + +clean_intermediate: $(SHLIB) + rm -f $(STATLIB) + +clean: + rm -Rf $(SHLIB) $(OBJECTS) $(STATLIB) ./rust/target + +.PHONY: all clean_intermediate clean diff --git a/r/sedonadb/src/Makevars.win.in b/r/sedonadb/src/Makevars.win.in new file mode 100644 index 000000000..06c946cd8 --- /dev/null +++ b/r/sedonadb/src/Makevars.win.in @@ -0,0 +1,41 @@ +TARGET = @TARGET@ + +PROFILE = @PROFILE@ +FEATURE_FLAGS = @FEATURE_FLAGS@ + +# Add flags if necessary +RUSTFLAGS = + +TARGET_DIR = $(CURDIR)/rust/target +LIBDIR = $(TARGET_DIR)/$(TARGET)/$(subst dev,debug,$(PROFILE)) +STATLIB = $(LIBDIR)/libsedonadb.a +PKG_LIBS = -L$(LIBDIR) -lsedonadb -lws2_32 -ladvapi32 -luserenv -lbcrypt -lntdll + +# Rtools doesn't have the linker in the location that cargo expects, so we need +# to overwrite it via configuration. +CARGO_LINKER = x86_64-w64-mingw32.static.posix-gcc.exe + +all: $(SHLIB) clean_intermediate + +$(SHLIB): $(STATLIB) + +$(STATLIB): + # When the GNU toolchain is used (i.e. on CRAN), -lgcc_eh is specified for + # building proc-macro2, but Rtools doesn't contain libgcc_eh. This isn't used + # in actual, but we need this tweak to please the compiler. + mkdir -p $(LIBDIR)/libgcc_mock && touch $(LIBDIR)/libgcc_mock/libgcc_eh.a + + export CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER="$(CARGO_LINKER)" && \ + export LIBRARY_PATH="$${LIBRARY_PATH};$(LIBDIR)/libgcc_mock" && \ + export CC="$(CC)" && \ + export CFLAGS="$(CFLAGS)" && \ + export RUSTFLAGS="$(RUSTFLAGS)" && \ + cargo build --target $(TARGET) --lib --profile $(PROFILE) $(FEATURE_FLAGS) --manifest-path ./rust/Cargo.toml --target-dir $(TARGET_DIR) + +clean_intermediate: $(SHLIB) + rm -f $(STATLIB) + +clean: + rm -Rf $(SHLIB) $(OBJECTS) $(STATLIB) ./rust/target + +.PHONY: all clean_intermediate clean diff --git a/r/sedonadb/src/init.c b/r/sedonadb/src/init.c new file mode 100644 index 000000000..e286a9913 --- /dev/null +++ b/r/sedonadb/src/init.c @@ -0,0 +1,191 @@ + +#include +#include +#include + +#include "rust/api.h" + +static uintptr_t TAGGED_POINTER_MASK = (uintptr_t)1; + +SEXP handle_result(SEXP res_) { + uintptr_t res = (uintptr_t)res_; + + // An error is indicated by tag. + if ((res & TAGGED_POINTER_MASK) == 1) { + // Remove tag + SEXP res_aligned = (SEXP)(res & ~TAGGED_POINTER_MASK); + + // Currently, there are two types of error cases: + // + // 1. Error from Rust code + // 2. Error from R's C API, which is caught by R_UnwindProtect() + // + if (TYPEOF(res_aligned) == CHARSXP) { + // In case 1, the result is an error message that can be passed to + // Rf_errorcall() directly. + Rf_errorcall(R_NilValue, "%s", CHAR(res_aligned)); + } else { + // In case 2, the result is the token to restart the + // cleanup process on R's side. + R_ContinueUnwind(res_aligned); + } + } + + return (SEXP)res; +} + +SEXP savvy_init_r_runtime__impl(DllInfo* c_arg___dll_info) { + SEXP res = savvy_init_r_runtime__ffi(c_arg___dll_info); + return handle_result(res); +} + +SEXP savvy_init_r_runtime_interrupts__impl(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env) { + SEXP res = savvy_init_r_runtime_interrupts__ffi(c_arg__interrupts_call, c_arg__pkg_env); + return handle_result(res); +} + +SEXP savvy_int_times_int__impl(SEXP c_arg__x, SEXP c_arg__y) { + SEXP res = savvy_int_times_int__ffi(c_arg__x, c_arg__y); + return handle_result(res); +} + +SEXP savvy_sedonadb_adbc_init_func__impl(void) { + SEXP res = savvy_sedonadb_adbc_init_func__ffi(); + return handle_result(res); +} + +SEXP savvy_to_upper__impl(SEXP c_arg__x) { + SEXP res = savvy_to_upper__ffi(c_arg__x); + return handle_result(res); +} + +SEXP savvy_InternalContext_data_frame_from_array_stream__impl(SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now) { + SEXP res = savvy_InternalContext_data_frame_from_array_stream__ffi(self__, c_arg__stream_xptr, c_arg__collect_now); + return handle_result(res); +} + +SEXP savvy_InternalContext_deregister_table__impl(SEXP self__, SEXP c_arg__table_ref) { + SEXP res = savvy_InternalContext_deregister_table__ffi(self__, c_arg__table_ref); + return handle_result(res); +} + +SEXP savvy_InternalContext_new__impl(void) { + SEXP res = savvy_InternalContext_new__ffi(); + return handle_result(res); +} + +SEXP savvy_InternalContext_read_parquet__impl(SEXP self__, SEXP c_arg__paths) { + SEXP res = savvy_InternalContext_read_parquet__ffi(self__, c_arg__paths); + return handle_result(res); +} + +SEXP savvy_InternalContext_sql__impl(SEXP self__, SEXP c_arg__query) { + SEXP res = savvy_InternalContext_sql__ffi(self__, c_arg__query); + return handle_result(res); +} + +SEXP savvy_InternalContext_view__impl(SEXP self__, SEXP c_arg__table_ref) { + SEXP res = savvy_InternalContext_view__ffi(self__, c_arg__table_ref); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_collect__impl(SEXP self__, SEXP c_arg__out) { + SEXP res = savvy_InternalDataFrame_collect__ffi(self__, c_arg__out); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_compute__impl(SEXP self__, SEXP c_arg__ctx) { + SEXP res = savvy_InternalDataFrame_compute__ffi(self__, c_arg__ctx); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_count__impl(SEXP self__) { + SEXP res = savvy_InternalDataFrame_count__ffi(self__); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_limit__impl(SEXP self__, SEXP c_arg__n) { + SEXP res = savvy_InternalDataFrame_limit__ffi(self__, c_arg__n); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_primary_geometry_column_index__impl(SEXP self__) { + SEXP res = savvy_InternalDataFrame_primary_geometry_column_index__ffi(self__); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_show__impl(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__width_chars, SEXP c_arg__ascii, SEXP c_arg__limit) { + SEXP res = savvy_InternalDataFrame_show__ffi(self__, c_arg__ctx, c_arg__width_chars, c_arg__ascii, c_arg__limit); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_to_arrow_schema__impl(SEXP self__, SEXP c_arg__out) { + SEXP res = savvy_InternalDataFrame_to_arrow_schema__ffi(self__, c_arg__out); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_to_arrow_stream__impl(SEXP self__, SEXP c_arg__out) { + SEXP res = savvy_InternalDataFrame_to_arrow_stream__ffi(self__, c_arg__out); + return handle_result(res); +} + +SEXP savvy_InternalDataFrame_to_view__impl(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__table_ref, SEXP c_arg__overwrite) { + SEXP res = savvy_InternalDataFrame_to_view__ffi(self__, c_arg__ctx, c_arg__table_ref, c_arg__overwrite); + return handle_result(res); +} + +SEXP savvy_Person_associated_function__impl(void) { + SEXP res = savvy_Person_associated_function__ffi(); + return handle_result(res); +} + +SEXP savvy_Person_name__impl(SEXP self__) { + SEXP res = savvy_Person_name__ffi(self__); + return handle_result(res); +} + +SEXP savvy_Person_new__impl(void) { + SEXP res = savvy_Person_new__ffi(); + return handle_result(res); +} + +SEXP savvy_Person_set_name__impl(SEXP self__, SEXP c_arg__name) { + SEXP res = savvy_Person_set_name__ffi(self__, c_arg__name); + return handle_result(res); +} + + +static const R_CallMethodDef CallEntries[] = { + {"savvy_init_r_runtime_interrupts__impl", (DL_FUNC) &savvy_init_r_runtime_interrupts__impl, 2}, + {"savvy_int_times_int__impl", (DL_FUNC) &savvy_int_times_int__impl, 2}, + {"savvy_sedonadb_adbc_init_func__impl", (DL_FUNC) &savvy_sedonadb_adbc_init_func__impl, 0}, + {"savvy_to_upper__impl", (DL_FUNC) &savvy_to_upper__impl, 1}, + {"savvy_InternalContext_data_frame_from_array_stream__impl", (DL_FUNC) &savvy_InternalContext_data_frame_from_array_stream__impl, 3}, + {"savvy_InternalContext_deregister_table__impl", (DL_FUNC) &savvy_InternalContext_deregister_table__impl, 2}, + {"savvy_InternalContext_new__impl", (DL_FUNC) &savvy_InternalContext_new__impl, 0}, + {"savvy_InternalContext_read_parquet__impl", (DL_FUNC) &savvy_InternalContext_read_parquet__impl, 2}, + {"savvy_InternalContext_sql__impl", (DL_FUNC) &savvy_InternalContext_sql__impl, 2}, + {"savvy_InternalContext_view__impl", (DL_FUNC) &savvy_InternalContext_view__impl, 2}, + {"savvy_InternalDataFrame_collect__impl", (DL_FUNC) &savvy_InternalDataFrame_collect__impl, 2}, + {"savvy_InternalDataFrame_compute__impl", (DL_FUNC) &savvy_InternalDataFrame_compute__impl, 2}, + {"savvy_InternalDataFrame_count__impl", (DL_FUNC) &savvy_InternalDataFrame_count__impl, 1}, + {"savvy_InternalDataFrame_limit__impl", (DL_FUNC) &savvy_InternalDataFrame_limit__impl, 2}, + {"savvy_InternalDataFrame_primary_geometry_column_index__impl", (DL_FUNC) &savvy_InternalDataFrame_primary_geometry_column_index__impl, 1}, + {"savvy_InternalDataFrame_show__impl", (DL_FUNC) &savvy_InternalDataFrame_show__impl, 5}, + {"savvy_InternalDataFrame_to_arrow_schema__impl", (DL_FUNC) &savvy_InternalDataFrame_to_arrow_schema__impl, 2}, + {"savvy_InternalDataFrame_to_arrow_stream__impl", (DL_FUNC) &savvy_InternalDataFrame_to_arrow_stream__impl, 2}, + {"savvy_InternalDataFrame_to_view__impl", (DL_FUNC) &savvy_InternalDataFrame_to_view__impl, 4}, + {"savvy_Person_associated_function__impl", (DL_FUNC) &savvy_Person_associated_function__impl, 0}, + {"savvy_Person_name__impl", (DL_FUNC) &savvy_Person_name__impl, 1}, + {"savvy_Person_new__impl", (DL_FUNC) &savvy_Person_new__impl, 0}, + {"savvy_Person_set_name__impl", (DL_FUNC) &savvy_Person_set_name__impl, 2}, + {NULL, NULL, 0} +}; + +void R_init_sedonadb(DllInfo *dll) { + R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); + R_useDynamicSymbols(dll, FALSE); + + // Functions for initialzation, if any. + savvy_init_r_runtime__impl(dll); +} diff --git a/r/sedonadb/src/rust/.cargo/config.toml b/r/sedonadb/src/rust/.cargo/config.toml new file mode 100644 index 000000000..3d8bdda2c --- /dev/null +++ b/r/sedonadb/src/rust/.cargo/config.toml @@ -0,0 +1,10 @@ +# On Windows, link.exe fails when the artifact contains unresolved symbols +# (i.e., R's API, which cannot be used without a real R session). This option +# makes the linker ignore these problems. +# +# This setting is needed only when you run `cargo test`, not when `R CMD check` +# etc. The `.cargo` directory need to be excluded on building the package (i.e. +# add `^src/rust/\.cargo$` to `.Rbuildignore`) because otherwise you'll get the +# "hidden files and directories" NOTE. +[target.x86_64-pc-windows-msvc] +rustflags = ["-C", "link-arg=/FORCE:UNRESOLVED"] diff --git a/r/sedonadb/src/rust/Cargo.toml b/r/sedonadb/src/rust/Cargo.toml new file mode 100644 index 000000000..0f33aae1b --- /dev/null +++ b/r/sedonadb/src/rust/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "sedonadbr" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["staticlib", "lib"] + +[dependencies] +arrow-schema = { workspace = true } +arrow-array ={ workspace = true } +datafusion = { workspace = true } +datafusion-common = { workspace = true } +savvy = "*" +savvy-ffi = "*" +sedona = { path = "../../../../rust/sedona" } +sedona-adbc = { path = "../../../../rust/sedona-adbc" } +sedona-expr = { path = "../../../../rust/sedona-expr" } +sedona-geoparquet = { path = "../../../../rust/sedona-geoparquet" } +sedona-schema = { path = "../../../../rust/sedona-schema" } +thiserror = { workspace = true } +tokio = { workspace = true } diff --git a/r/sedonadb/src/rust/api.h b/r/sedonadb/src/rust/api.h new file mode 100644 index 000000000..71254f968 --- /dev/null +++ b/r/sedonadb/src/rust/api.h @@ -0,0 +1,30 @@ +SEXP savvy_init_r_runtime__ffi(DllInfo* c_arg___dll_info); +SEXP savvy_init_r_runtime_interrupts__ffi(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env); +SEXP savvy_int_times_int__ffi(SEXP c_arg__x, SEXP c_arg__y); +SEXP savvy_sedonadb_adbc_init_func__ffi(void); +SEXP savvy_to_upper__ffi(SEXP c_arg__x); + +// methods and associated functions for InternalContext +SEXP savvy_InternalContext_data_frame_from_array_stream__ffi(SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now); +SEXP savvy_InternalContext_deregister_table__ffi(SEXP self__, SEXP c_arg__table_ref); +SEXP savvy_InternalContext_new__ffi(void); +SEXP savvy_InternalContext_read_parquet__ffi(SEXP self__, SEXP c_arg__paths); +SEXP savvy_InternalContext_sql__ffi(SEXP self__, SEXP c_arg__query); +SEXP savvy_InternalContext_view__ffi(SEXP self__, SEXP c_arg__table_ref); + +// methods and associated functions for InternalDataFrame +SEXP savvy_InternalDataFrame_collect__ffi(SEXP self__, SEXP c_arg__out); +SEXP savvy_InternalDataFrame_compute__ffi(SEXP self__, SEXP c_arg__ctx); +SEXP savvy_InternalDataFrame_count__ffi(SEXP self__); +SEXP savvy_InternalDataFrame_limit__ffi(SEXP self__, SEXP c_arg__n); +SEXP savvy_InternalDataFrame_primary_geometry_column_index__ffi(SEXP self__); +SEXP savvy_InternalDataFrame_show__ffi(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__width_chars, SEXP c_arg__ascii, SEXP c_arg__limit); +SEXP savvy_InternalDataFrame_to_arrow_schema__ffi(SEXP self__, SEXP c_arg__out); +SEXP savvy_InternalDataFrame_to_arrow_stream__ffi(SEXP self__, SEXP c_arg__out); +SEXP savvy_InternalDataFrame_to_view__ffi(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__table_ref, SEXP c_arg__overwrite); + +// methods and associated functions for Person +SEXP savvy_Person_associated_function__ffi(void); +SEXP savvy_Person_name__ffi(SEXP self__); +SEXP savvy_Person_new__ffi(void); +SEXP savvy_Person_set_name__ffi(SEXP self__, SEXP c_arg__name); diff --git a/r/sedonadb/src/rust/src/context.rs b/r/sedonadb/src/rust/src/context.rs new file mode 100644 index 000000000..e24100044 --- /dev/null +++ b/r/sedonadb/src/rust/src/context.rs @@ -0,0 +1,108 @@ +use std::sync::Arc; + +use arrow_array::{ + ffi_stream::{ArrowArrayStreamReader, FFI_ArrowArrayStream}, + RecordBatchReader, +}; +use arrow_schema::ArrowError; +use datafusion::catalog::{MemTable, TableProvider}; +use savvy::{savvy, savvy_err, Result}; + +use sedona::{context::SedonaContext, record_batch_reader_provider::RecordBatchReaderProvider}; +use sedona_geoparquet::provider::GeoParquetReadOptions; +use tokio::runtime::Runtime; + +use crate::{ + dataframe::{new_data_frame, InternalDataFrame}, + runtime::wait_for_future_captured_r, +}; + +#[savvy] +pub struct InternalContext { + pub inner: Arc, + pub runtime: Arc, +} + +#[savvy] +impl InternalContext { + pub fn new() -> Result { + let runtime = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build()?; + + let inner = wait_for_future_captured_r(&runtime, SedonaContext::new_local_interactive())??; + + Ok(Self { + inner: Arc::new(inner), + runtime: Arc::new(runtime), + }) + } + + pub fn read_parquet(&self, paths: savvy::Sexp) -> Result { + let paths_strsxp = savvy::StringSexp::try_from(paths)?; + let table_paths = paths_strsxp + .iter() + .map(|s| s.to_string()) + .collect::>(); + + let inner_context = self.inner.clone(); + let inner = wait_for_future_captured_r(&self.runtime, async move { + inner_context + .read_parquet(table_paths, GeoParquetReadOptions::default()) + .await + })??; + + Ok(new_data_frame(inner, self.runtime.clone())) + } + + pub fn sql(&self, query: &str) -> Result { + let query_string = query.to_string(); + let inner_context = self.inner.clone(); + let inner = wait_for_future_captured_r(&self.runtime, async move { + inner_context.sql(&query_string).await + })??; + Ok(new_data_frame(inner, self.runtime.clone())) + } + + pub fn view(&self, table_ref: &str) -> Result { + let inner_context = self.inner.clone(); + let table_ref_string = table_ref.to_string(); + let inner = wait_for_future_captured_r(&self.runtime, async move { + inner_context.ctx.table(table_ref_string).await + })??; + Ok(new_data_frame(inner, self.runtime.clone())) + } + + pub fn data_frame_from_array_stream( + &self, + stream_xptr: savvy::Sexp, + collect_now: bool, + ) -> savvy::Result { + let ffi_stream = + unsafe { savvy_ffi::R_ExternalPtrAddr(stream_xptr.0) as *mut FFI_ArrowArrayStream }; + if ffi_stream.is_null() { + return Err(savvy_err!("external pointer to null in to_arrow_schema()")); + } + + let stream = unsafe { FFI_ArrowArrayStream::from_raw(ffi_stream as _) }; + let stream_reader = ArrowArrayStreamReader::try_new(stream)?; + + // Some readers are sensitive to being collected on the R thread or not, so + // provide the option to collect everything immediately. + let provider: Arc = if collect_now { + let schema = stream_reader.schema(); + let batches = stream_reader.collect::, ArrowError>>()?; + Arc::new(MemTable::try_new(schema, vec![batches])?) + } else { + Arc::new(RecordBatchReaderProvider::new(Box::new(stream_reader))) + }; + + let inner = self.inner.ctx.read_table(provider)?; + Ok(new_data_frame(inner, self.runtime.clone())) + } + + pub fn deregister_table(&self, table_ref: &str) -> savvy::Result<()> { + self.inner.ctx.deregister_table(table_ref)?; + Ok(()) + } +} diff --git a/r/sedonadb/src/rust/src/dataframe.rs b/r/sedonadb/src/rust/src/dataframe.rs new file mode 100644 index 000000000..920205962 --- /dev/null +++ b/r/sedonadb/src/rust/src/dataframe.rs @@ -0,0 +1,178 @@ +use std::ptr::swap_nonoverlapping; +use std::sync::Arc; + +use arrow_array::ffi::FFI_ArrowSchema; +use arrow_array::ffi_stream::FFI_ArrowArrayStream; +use arrow_array::{RecordBatchIterator, RecordBatchReader}; +use datafusion::catalog::MemTable; +use datafusion::prelude::DataFrame; +use savvy::{savvy, savvy_err, Result}; +use sedona::context::SedonaDataFrame; +use sedona::reader::SedonaStreamReader; +use sedona::show::{DisplayMode, DisplayTableOptions}; +use tokio::runtime::Runtime; + +use crate::context::InternalContext; +use crate::runtime::wait_for_future_captured_r; + +#[savvy] +pub struct InternalDataFrame { + pub inner: DataFrame, + pub runtime: Arc, +} + +pub fn new_data_frame(inner: DataFrame, runtime: Arc) -> InternalDataFrame { + InternalDataFrame { inner, runtime } +} + +#[savvy] +impl InternalDataFrame { + fn limit(&self, n: f64) -> Result { + let inner = self.inner.clone().limit(0, Some(n.floor() as usize))?; + Ok(InternalDataFrame { + inner, + runtime: self.runtime.clone(), + }) + } + + fn count(&self) -> Result { + let inner = self.inner.clone(); + let counted = + wait_for_future_captured_r(&self.runtime, async move { inner.count().await })??; + + let counted_double = counted as f64; + savvy::Sexp::try_from(counted_double) + } + + fn primary_geometry_column_index(&self) -> Result { + if let Some(col) = self.inner.primary_geometry_column_index()? { + Ok(unsafe { savvy::Sexp(savvy_ffi::Rf_ScalarInteger(col.try_into()?)) }) + } else { + Ok(savvy::NullSexp.into()) + } + } + + fn to_arrow_schema(&self, out: savvy::Sexp) -> Result<()> { + let out_void = unsafe { savvy_ffi::R_ExternalPtrAddr(out.0) }; + if out_void.is_null() { + return Err(savvy_err!("external pointer to null in to_arrow_schema()")); + } + + let schema_no_qualifiers = self.inner.schema().clone().strip_qualifiers(); + let schema = schema_no_qualifiers.as_arrow(); + let mut ffi_schema = FFI_ArrowSchema::try_from(schema)?; + let ffi_out = out_void as *mut FFI_ArrowSchema; + unsafe { swap_nonoverlapping(&mut ffi_schema, ffi_out, 1) }; + Ok(()) + } + + fn to_arrow_stream(&self, out: savvy::Sexp) -> Result<()> { + let out_void = unsafe { savvy_ffi::R_ExternalPtrAddr(out.0) }; + if out_void.is_null() { + return Err(savvy_err!("external pointer to null in to_arrow_stream()")); + } + + let inner = self.inner.clone(); + let stream = wait_for_future_captured_r(&self.runtime, async move { + inner.execute_stream_sedona().await + })??; + + let reader = SedonaStreamReader::new(self.runtime.clone(), stream); + let reader: Box = Box::new(reader); + + let mut ffi_stream = FFI_ArrowArrayStream::new(reader); + let ffi_out = out_void as *mut FFI_ArrowArrayStream; + unsafe { swap_nonoverlapping(&mut ffi_stream, ffi_out, 1) }; + + Ok(()) + } + + fn compute(&self, ctx: &InternalContext) -> Result { + let schema = self.inner.schema(); + let batches = + wait_for_future_captured_r(&self.runtime, self.inner.clone().collect_partitioned())??; + let provider = Arc::new(MemTable::try_new(schema.clone().into(), batches)?); + let inner = ctx.inner.ctx.read_table(provider)?; + Ok(new_data_frame(inner, self.runtime.clone())) + } + + fn collect(&self, out: savvy::Sexp) -> Result { + let out_void = unsafe { savvy_ffi::R_ExternalPtrAddr(out.0) }; + if out_void.is_null() { + return Err(savvy_err!("external pointer to null in collect()")); + } + + let inner = self.inner.clone(); + let batches = + wait_for_future_captured_r( + &self.runtime, + async move { inner.collect_sedona().await }, + )??; + + let size: usize = batches.iter().map(|batch| batch.num_rows()).sum(); + + let reader: Box = if batches.is_empty() { + let schema_no_qualifiers = self.inner.schema().clone().strip_qualifiers(); + let schema = schema_no_qualifiers.as_arrow(); + Box::new(RecordBatchIterator::new( + vec![].into_iter(), + Arc::new(schema.clone()), + )) + } else { + let schema = batches[0].schema(); + Box::new(RecordBatchIterator::new( + batches.into_iter().map(Ok), + schema, + )) + }; + + let mut ffi_stream = FFI_ArrowArrayStream::new(reader); + let ffi_out = out_void as *mut FFI_ArrowArrayStream; + unsafe { swap_nonoverlapping(&mut ffi_stream, ffi_out, 1) }; + + savvy::Sexp::try_from(size as f64) + } + + fn to_view(&self, ctx: &InternalContext, table_ref: &str, overwrite: bool) -> Result<()> { + let provider = self.inner.clone().into_view(); + if overwrite && ctx.inner.ctx.table_exist(table_ref)? { + ctx.deregister_table(table_ref)?; + } + + ctx.inner.ctx.register_table(table_ref, provider)?; + Ok(()) + } + + fn show( + &self, + ctx: &InternalContext, + width_chars: i32, + ascii: bool, + limit: Option, + ) -> Result { + let mut options = DisplayTableOptions::new(); + options.table_width = width_chars.try_into().unwrap_or(u16::MAX); + options.arrow_options = options.arrow_options.with_types_info(true); + if !ascii { + options.display_mode = DisplayMode::Utf8; + } + + let inner = self.inner.clone(); + let inner_context = ctx.inner.clone(); + let limit_usize = limit.map(|value| { + if value > i32::MAX as f64 { + i32::MAX as usize + } else { + value as usize + } + }); + + let out_string = wait_for_future_captured_r(&self.runtime, async move { + inner + .show_sedona(&inner_context, limit_usize, options) + .await + })??; + + savvy::Sexp::try_from(out_string) + } +} diff --git a/r/sedonadb/src/rust/src/error.rs b/r/sedonadb/src/rust/src/error.rs new file mode 100644 index 000000000..a29209d55 --- /dev/null +++ b/r/sedonadb/src/rust/src/error.rs @@ -0,0 +1,42 @@ +use arrow_schema::ArrowError; +use datafusion_common::DataFusionError; + +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum RSedonaError { + #[error("{0}")] + DF(Box), + #[error("{0}")] + TokioIO(tokio::io::Error), + #[error("{0}")] + TokioJoin(tokio::task::JoinError), + #[error("{0}")] + Internal(String), + #[error("Interrupted")] + Interrupted, +} + +impl From for RSedonaError { + fn from(other: DataFusionError) -> Self { + RSedonaError::DF(Box::new(other)) + } +} + +impl From for RSedonaError { + fn from(other: tokio::io::Error) -> Self { + RSedonaError::TokioIO(other) + } +} + +impl From for RSedonaError { + fn from(other: tokio::task::JoinError) -> Self { + RSedonaError::TokioJoin(other) + } +} + +impl From for RSedonaError { + fn from(other: ArrowError) -> Self { + RSedonaError::DF(Box::new(DataFusionError::ArrowError(Box::new(other), None))) + } +} diff --git a/r/sedonadb/src/rust/src/lib.rs b/r/sedonadb/src/rust/src/lib.rs new file mode 100644 index 000000000..edfdeff65 --- /dev/null +++ b/r/sedonadb/src/rust/src/lib.rs @@ -0,0 +1,118 @@ +// Example functions + +use std::ffi::c_void; + +use savvy::savvy; + +use savvy::{IntegerSexp, OwnedIntegerSexp, OwnedStringSexp, StringSexp}; + +use savvy::NotAvailableValue; +use savvy_ffi::R_NilValue; +use sedona_adbc::AdbcSedonadbDriverInit; + +mod context; +mod dataframe; +mod error; +mod runtime; + +#[savvy] +fn sedonadb_adbc_init_func() -> savvy::Result { + let driver_init_void = AdbcSedonadbDriverInit as *mut c_void; + + unsafe { + Ok(savvy::Sexp(savvy_ffi::R_MakeExternalPtr( + driver_init_void, + R_NilValue, + R_NilValue, + ))) + } +} + +/// Convert Input To Upper-Case +/// +/// @param x A character vector. +/// @returns A character vector with upper case version of the input. +/// @export +#[savvy] +fn to_upper(x: StringSexp) -> savvy::Result { + let mut out = OwnedStringSexp::new(x.len())?; + + for (i, e) in x.iter().enumerate() { + if e.is_na() { + out.set_na(i)?; + continue; + } + + let e_upper = e.to_uppercase(); + out.set_elt(i, &e_upper)?; + } + + Ok(out.into()) +} + +/// Multiply Input By Another Input +/// +/// @param x An integer vector. +/// @param y An integer to multiply. +/// @returns An integer vector with values multiplied by `y`. +/// @export +#[savvy] +fn int_times_int(x: IntegerSexp, y: i32) -> savvy::Result { + let mut out = OwnedIntegerSexp::new(x.len())?; + + for (i, e) in x.iter().enumerate() { + if e.is_na() { + out.set_na(i)?; + } else { + out[i] = e * y; + } + } + + Ok(out.into()) +} + +#[savvy] +struct Person { + pub name: String, +} + +/// A person with a name +/// +/// @export +#[savvy] +impl Person { + fn new() -> Self { + Self { + name: "".to_string(), + } + } + + fn set_name(&mut self, name: &str) -> savvy::Result<()> { + self.name = name.to_string(); + Ok(()) + } + + fn name(&self) -> savvy::Result { + let mut out = OwnedStringSexp::new(1)?; + out.set_elt(0, &self.name)?; + Ok(out.into()) + } + + fn associated_function() -> savvy::Result { + let mut out = OwnedStringSexp::new(1)?; + out.set_elt(0, "associated_function")?; + Ok(out.into()) + } +} + +// This test is run by `cargo test`. You can put tests that don't need a real +// R session here. +#[cfg(test)] +mod test1 { + #[test] + fn test_person() { + let mut p = super::Person::new(); + p.set_name("foo").expect("set_name() must succeed"); + assert_eq!(&p.name, "foo"); + } +} diff --git a/r/sedonadb/src/rust/src/runtime.rs b/r/sedonadb/src/rust/src/runtime.rs new file mode 100644 index 000000000..04bc81c2f --- /dev/null +++ b/r/sedonadb/src/rust/src/runtime.rs @@ -0,0 +1,137 @@ +use std::{ + future::Future, + sync::{OnceLock, RwLock}, + time::Duration, +}; + +use savvy::{savvy, savvy_err, savvy_init}; +use savvy_ffi::R_NilValue; +use tokio::{runtime::Runtime, time::sleep}; + +use crate::error::RSedonaError; + +pub fn wait_for_future_captured_r(runtime: &Runtime, fut: F) -> Result +where + F: Future + Send + 'static, + F::Output: Send, +{ + const INTERVAL_CHECK_SIGNALS: Duration = Duration::from_millis(1_000); + let handle = runtime.spawn(async move { + tokio::pin!(fut); + loop { + tokio::select! { + res = &mut fut => break Ok(res), + _ = sleep(INTERVAL_CHECK_SIGNALS) => { + let handle = R.get().unwrap().rt().spawn(async move { + R.get().unwrap().check_signals() + }); + handle.await??; + } + } + } + }); + + R.get().unwrap().rt().block_on(handle)? +} + +struct RRuntime { + rt: Runtime, + check_interrupts_call: RwLock>, + pkg_env: RwLock>, +} + +unsafe impl Send for RRuntime {} + +unsafe impl Sync for RRuntime {} + +impl RRuntime { + pub fn try_new() -> Result { + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build()?; + Ok(Self { + rt, + check_interrupts_call: RwLock::new(None), + pkg_env: RwLock::new(None), + }) + } + + pub fn rt(&self) -> &Runtime { + &self.rt + } + + pub fn check_signals(&self) -> Result<(), RSedonaError> { + let (maybe_call, maybe_env) = match ( + self.check_interrupts_call.try_read(), + self.pkg_env.try_read(), + ) { + (Ok(call), Ok(env)) => (call, env), + _ => { + return Err(RSedonaError::Internal( + "Check interrupts call could not be read".to_string(), + )); + } + }; + + let (call, env) = match (maybe_call.as_ref(), maybe_env.as_ref()) { + (Some(call), Some(env)) => (call, env), + _ => { + return Err(RSedonaError::Internal( + "Check interrupts not set".to_string(), + )); + } + }; + + unsafe { + // We could save this error for future things that can actually fail (like evaluating + // R UDFs) + let is_interrupted_sexp = savvy::unwind_protect(|| savvy_ffi::Rf_eval(call.0, env.0)) + .expect( + "Check interrupts function must not error (i.e., must be wrapped in tryCatch())", + ); + + let is_interrupted: bool = savvy::Sexp(is_interrupted_sexp) + .try_into() + .expect("Check interrupts function must return a bool"); + + if is_interrupted { + Err(RSedonaError::Interrupted) + } else { + Ok(()) + } + } + } +} + +static R: OnceLock = OnceLock::new(); + +#[savvy_init] +fn init_r_runtime(_dll_info: *mut savvy_ffi::DllInfo) -> savvy::Result<()> { + R.get_or_init(|| RRuntime::try_new().unwrap()); + Ok(()) +} + +#[savvy] +fn init_r_runtime_interrupts( + interrupts_call: savvy::Sexp, + pkg_env: savvy::Sexp, +) -> savvy::Result<()> { + if let Some(r) = R.get() { + unsafe { + savvy::unwind_protect(|| { + savvy_ffi::R_PreserveObject(interrupts_call.0); + savvy_ffi::R_PreserveObject(pkg_env.0); + R_NilValue + })?; + } + + r.check_interrupts_call + .try_write()? + .replace(interrupts_call); + r.pkg_env.try_write()?.replace(pkg_env); + + Ok(()) + } else { + Err(savvy_err!("R runtime not initialized")) + } +} diff --git a/r/sedonadb/src/sedonadb-win.def b/r/sedonadb/src/sedonadb-win.def new file mode 100644 index 000000000..0a809facd --- /dev/null +++ b/r/sedonadb/src/sedonadb-win.def @@ -0,0 +1,2 @@ +EXPORTS +R_init_sedonadb diff --git a/r/sedonadb/tests/testthat.R b/r/sedonadb/tests/testthat.R new file mode 100644 index 000000000..06442f4da --- /dev/null +++ b/r/sedonadb/tests/testthat.R @@ -0,0 +1,12 @@ +# This file is part of the standard setup for testthat. +# It is recommended that you do not modify it. +# +# Where should you do additional test configuration? +# Learn more about the roles of various files in: +# * https://r-pkgs.org/testing-design.html#sec-tests-files-overview +# * https://testthat.r-lib.org/articles/special-files.html + +library(testthat) +library(sedonadb) + +test_check("sedonadb") diff --git a/r/sedonadb/tests/testthat/test-adbc.R b/r/sedonadb/tests/testthat/test-adbc.R new file mode 100644 index 000000000..21cf1450e --- /dev/null +++ b/r/sedonadb/tests/testthat/test-adbc.R @@ -0,0 +1,15 @@ + +test_that("adbc driver works", { + con <- sedonadb_adbc() |> + adbcdrivermanager::adbc_database_init() |> + adbcdrivermanager::adbc_connection_init() + + df <- con |> + adbcdrivermanager::read_adbc("SELECT ST_Point(0, 1) as geometry") |> + as.data.frame() + + expect_identical( + wk::as_wkt(df$geometry), + wk::wkt("POINT (0 1)") + ) +}) diff --git a/r/sedonadb/tests/testthat/test-context.R b/r/sedonadb/tests/testthat/test-context.R new file mode 100644 index 000000000..676bc06d9 --- /dev/null +++ b/r/sedonadb/tests/testthat/test-context.R @@ -0,0 +1,25 @@ + +test_that("sd_read_parquet() works", { + path <- system.file("files/natural-earth_cities_geo.parquet", package = "sedonadb") + expect_identical(sd_count(sd_read_parquet(path)), 243) + + expect_identical(sd_count(sd_read_parquet(c(path, path))), 243 * 2) +}) + +test_that("views can be created and dropped", { + df <- sd_sql("SELECT 1 as one") + expect_true(rlang::is_reference(sd_to_view(df, "foofy"), df)) + expect_identical( + sd_sql("SELECT * FROM foofy") |> sd_collect(), + data.frame(one = 1) + ) + + expect_identical( + sd_view("foofy") |> sd_collect(), + data.frame(one = 1) + ) + + sd_drop_view("foofy") + expect_error(sd_sql("SELECT * FROM foofy"), "table '(.*?)' not found") + expect_error(sd_view("foofy"), "No table named 'foofy'") +}) diff --git a/r/sedonadb/tests/testthat/test-dataframe.R b/r/sedonadb/tests/testthat/test-dataframe.R new file mode 100644 index 000000000..b5d0484ad --- /dev/null +++ b/r/sedonadb/tests/testthat/test-dataframe.R @@ -0,0 +1,121 @@ + +test_that("dataframe can be created from data.frame", { + df <- as_sedonadb_dataframe(data.frame(one = 1, two = "two")) + expect_s3_class(df, "sedonadb_dataframe") + expect_identical(sd_collect(df), data.frame(one = 1, two = "two")) + + # Ensure that geo columns with crs are handled + df <- as_sedonadb_dataframe( + data.frame( + geom = wk::as_wkb(wk::wkt("POINT (0 1)", crs = "EPSG:32620")) + ) + ) + + re_df <- sd_collect(df) + expect_identical( + wk::as_wkt(re_df$geom), + wk::wkt("POINT (0 1)", crs = wk::wk_crs_projjson("EPSG:32620")) + ) +}) + +test_that("dataframe can be created from nanoarrow objects", { + r_df <- data.frame(geom = wk::as_wkb("POINT (0 1)")) + + array <- nanoarrow::as_nanoarrow_array(r_df) + df <- as_sedonadb_dataframe(array) + expect_s3_class(df, "sedonadb_dataframe") + expect_identical(sd_collect(df, ptype = r_df), r_df) + + stream <- nanoarrow::as_nanoarrow_array_stream(r_df) + df <- as_sedonadb_dataframe(stream, lazy = TRUE) + expect_s3_class(df, "sedonadb_dataframe") + expect_identical(sd_collect(df, ptype = r_df), r_df) + + stream <- nanoarrow::as_nanoarrow_array_stream(r_df) + df <- as_sedonadb_dataframe(stream, lazy = FALSE) + expect_s3_class(df, "sedonadb_dataframe") + expect_identical(sd_collect(df, ptype = r_df), r_df) +}) + +test_that("dataframe property accessors work", { + df <- sd_sql("SELECT ST_Point(0, 1) as pt") + expect_identical(ncol(df), 1L) + expect_identical(nrow(df), NA_integer_) + expect_identical(colnames(df), "pt") +}) + +test_that("dataframe head() works", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + expect_identical( + as.data.frame(head(df, 0)), + data.frame(one = double(), two = character()) + ) +}) + +test_that("dataframe rows can be counted", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + expect_identical(sd_count(df), 1) +}) + +test_that("dataframe can be computed", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + df_computed <- sd_compute(df) + expect_identical(sd_collect(df), sd_collect(df_computed)) +}) + +test_that("dataframe can be collected", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + expect_identical( + sd_collect(df), + data.frame(one = 1, two = "two") + ) + + expect_identical( + sd_collect(df, ptype = data.frame(one = integer(), two = character())), + data.frame(one = 1L, two = "two") + ) +}) + +test_that("dataframe can be converted to an R data.frame", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + expect_identical( + as.data.frame(df), + data.frame(one = 1, two = "two") + ) +}) + +test_that("dataframe can be converted to an array stream", { + df <- sd_sql("SELECT 1 as one, 'two' as two") + stream <- nanoarrow::as_nanoarrow_array_stream(df) + expect_s3_class(stream, "nanoarrow_array_stream") + expect_identical( + as.data.frame(stream), + data.frame(one = 1, two = "two") + ) +}) + +test_that("dataframe can be printed", { + df <- sd_sql("SELECT ST_Point(0, 1) as pt") + expect_output(expect_identical(print(df), df), "POINT") +}) + +test_that("dataframe print uses ASCII when requested", { + df <- sd_sql("SELECT ST_Point(0, 1) as pt") + withr::with_options(list(cli.unicode = FALSE), { + expect_output(print(df), "--+") + }) +}) + +test_that("dataframe print limits max output based on options", { + df <- sd_sql("SELECT ST_Point(0, 1) as pt") + withr::with_options(list(pillar.print_max = 0), { + expect_output(print(df), "Preview of up to 0 row\\(s\\)") + }) +}) + +test_that("dataframe print limits max output based on options", { + df <- sd_sql("SELECT 'a really really really really long string' as str") + withr::with_options(list(width = 10, cli.unicode = FALSE), { + expect_output(print(df), "| a r... |") + }) +}) From 699c1f2bf97cb6eb79c1eaf9ce3058803a10636f Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:10:50 -0500 Subject: [PATCH 02/14] update static lib name --- r/sedonadb/src/Makevars.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/r/sedonadb/src/Makevars.in b/r/sedonadb/src/Makevars.in index eedb231af..fe6e548a3 100644 --- a/r/sedonadb/src/Makevars.in +++ b/r/sedonadb/src/Makevars.in @@ -8,8 +8,8 @@ RUSTFLAGS = TARGET_DIR = $(CURDIR)/rust/target LIBDIR = $(TARGET_DIR)/$(TARGET)/$(subst dev,debug,$(PROFILE)) -STATLIB = $(LIBDIR)/libsedonadb.a -PKG_LIBS = -L$(LIBDIR) -lsedonadb -L/opt/homebrew/Cellar/geos/3.13.1/lib -lgeos_c +STATLIB = $(LIBDIR)/libsedonadbr.a +PKG_LIBS = -L$(LIBDIR) -lsedonadbr -L/opt/homebrew/Cellar/geos/3.13.1/lib -lgeos_c CARGO_BUILD_ARGS = --lib --profile $(PROFILE) $(FEATURE_FLAGS) --manifest-path=./rust/Cargo.toml --target-dir $(TARGET_DIR) From 7f6fe570be3dcba9967600ea9b56258057cdde10 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:14:45 -0500 Subject: [PATCH 03/14] pre-commit --- r/sedonadb/DESCRIPTION | 4 +- r/sedonadb/R/000-wrappers.R | 1 - r/sedonadb/README.Rmd | 1 - r/sedonadb/src/Makevars.win.in | 2 +- r/sedonadb/src/init.c | 249 ++++++++++++++++++--------------- r/sedonadb/src/rust/api.h | 19 ++- 6 files changed, 156 insertions(+), 120 deletions(-) diff --git a/r/sedonadb/DESCRIPTION b/r/sedonadb/DESCRIPTION index 1f7ab75f4..51673914b 100644 --- a/r/sedonadb/DESCRIPTION +++ b/r/sedonadb/DESCRIPTION @@ -11,13 +11,13 @@ Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.2 SystemRequirements: Cargo (Rust's package manager), rustc Depends: R (>= 4.1.0) -Suggests: +Suggests: adbcdrivermanager, rlang, testthat (>= 3.0.0), withr, wk Config/testthat/edition: 3 -Imports: +Imports: geoarrow, nanoarrow diff --git a/r/sedonadb/R/000-wrappers.R b/r/sedonadb/R/000-wrappers.R index 190946b9d..eb02c28e4 100644 --- a/r/sedonadb/R/000-wrappers.R +++ b/r/sedonadb/R/000-wrappers.R @@ -265,4 +265,3 @@ class(`Person`) <- c("Person__bundle", "savvy_sedonadb__sealed") `print.Person__bundle` <- function(x, ...) { cat('Person\n') } - diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd index cf98a0eaa..b3506aa63 100644 --- a/r/sedonadb/README.Rmd +++ b/r/sedonadb/README.Rmd @@ -52,4 +52,3 @@ nc |> sd_to_view("nc", overwrite = TRUE) sd_sql("SELECT * FROM nc") ``` - diff --git a/r/sedonadb/src/Makevars.win.in b/r/sedonadb/src/Makevars.win.in index 06c946cd8..a9f15a4c7 100644 --- a/r/sedonadb/src/Makevars.win.in +++ b/r/sedonadb/src/Makevars.win.in @@ -4,7 +4,7 @@ PROFILE = @PROFILE@ FEATURE_FLAGS = @FEATURE_FLAGS@ # Add flags if necessary -RUSTFLAGS = +RUSTFLAGS = TARGET_DIR = $(CURDIR)/rust/target LIBDIR = $(TARGET_DIR)/$(TARGET)/$(subst dev,debug,$(PROFILE)) diff --git a/r/sedonadb/src/init.c b/r/sedonadb/src/init.c index e286a9913..6667d4644 100644 --- a/r/sedonadb/src/init.c +++ b/r/sedonadb/src/init.c @@ -1,191 +1,222 @@ -#include #include + #include +#include #include "rust/api.h" static uintptr_t TAGGED_POINTER_MASK = (uintptr_t)1; SEXP handle_result(SEXP res_) { - uintptr_t res = (uintptr_t)res_; - - // An error is indicated by tag. - if ((res & TAGGED_POINTER_MASK) == 1) { - // Remove tag - SEXP res_aligned = (SEXP)(res & ~TAGGED_POINTER_MASK); - - // Currently, there are two types of error cases: - // - // 1. Error from Rust code - // 2. Error from R's C API, which is caught by R_UnwindProtect() - // - if (TYPEOF(res_aligned) == CHARSXP) { - // In case 1, the result is an error message that can be passed to - // Rf_errorcall() directly. - Rf_errorcall(R_NilValue, "%s", CHAR(res_aligned)); - } else { - // In case 2, the result is the token to restart the - // cleanup process on R's side. - R_ContinueUnwind(res_aligned); - } + uintptr_t res = (uintptr_t)res_; + + // An error is indicated by tag. + if ((res & TAGGED_POINTER_MASK) == 1) { + // Remove tag + SEXP res_aligned = (SEXP)(res & ~TAGGED_POINTER_MASK); + + // Currently, there are two types of error cases: + // + // 1. Error from Rust code + // 2. Error from R's C API, which is caught by R_UnwindProtect() + // + if (TYPEOF(res_aligned) == CHARSXP) { + // In case 1, the result is an error message that can be passed to + // Rf_errorcall() directly. + Rf_errorcall(R_NilValue, "%s", CHAR(res_aligned)); + } else { + // In case 2, the result is the token to restart the + // cleanup process on R's side. + R_ContinueUnwind(res_aligned); } + } - return (SEXP)res; + return (SEXP)res; } -SEXP savvy_init_r_runtime__impl(DllInfo* c_arg___dll_info) { - SEXP res = savvy_init_r_runtime__ffi(c_arg___dll_info); - return handle_result(res); +SEXP savvy_init_r_runtime__impl(DllInfo *c_arg___dll_info) { + SEXP res = savvy_init_r_runtime__ffi(c_arg___dll_info); + return handle_result(res); } -SEXP savvy_init_r_runtime_interrupts__impl(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env) { - SEXP res = savvy_init_r_runtime_interrupts__ffi(c_arg__interrupts_call, c_arg__pkg_env); - return handle_result(res); +SEXP savvy_init_r_runtime_interrupts__impl(SEXP c_arg__interrupts_call, + SEXP c_arg__pkg_env) { + SEXP res = savvy_init_r_runtime_interrupts__ffi(c_arg__interrupts_call, + c_arg__pkg_env); + return handle_result(res); } SEXP savvy_int_times_int__impl(SEXP c_arg__x, SEXP c_arg__y) { - SEXP res = savvy_int_times_int__ffi(c_arg__x, c_arg__y); - return handle_result(res); + SEXP res = savvy_int_times_int__ffi(c_arg__x, c_arg__y); + return handle_result(res); } SEXP savvy_sedonadb_adbc_init_func__impl(void) { - SEXP res = savvy_sedonadb_adbc_init_func__ffi(); - return handle_result(res); + SEXP res = savvy_sedonadb_adbc_init_func__ffi(); + return handle_result(res); } SEXP savvy_to_upper__impl(SEXP c_arg__x) { - SEXP res = savvy_to_upper__ffi(c_arg__x); - return handle_result(res); + SEXP res = savvy_to_upper__ffi(c_arg__x); + return handle_result(res); } -SEXP savvy_InternalContext_data_frame_from_array_stream__impl(SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now) { - SEXP res = savvy_InternalContext_data_frame_from_array_stream__ffi(self__, c_arg__stream_xptr, c_arg__collect_now); - return handle_result(res); +SEXP savvy_InternalContext_data_frame_from_array_stream__impl( + SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now) { + SEXP res = savvy_InternalContext_data_frame_from_array_stream__ffi( + self__, c_arg__stream_xptr, c_arg__collect_now); + return handle_result(res); } -SEXP savvy_InternalContext_deregister_table__impl(SEXP self__, SEXP c_arg__table_ref) { - SEXP res = savvy_InternalContext_deregister_table__ffi(self__, c_arg__table_ref); - return handle_result(res); +SEXP savvy_InternalContext_deregister_table__impl(SEXP self__, + SEXP c_arg__table_ref) { + SEXP res = + savvy_InternalContext_deregister_table__ffi(self__, c_arg__table_ref); + return handle_result(res); } SEXP savvy_InternalContext_new__impl(void) { - SEXP res = savvy_InternalContext_new__ffi(); - return handle_result(res); + SEXP res = savvy_InternalContext_new__ffi(); + return handle_result(res); } SEXP savvy_InternalContext_read_parquet__impl(SEXP self__, SEXP c_arg__paths) { - SEXP res = savvy_InternalContext_read_parquet__ffi(self__, c_arg__paths); - return handle_result(res); + SEXP res = savvy_InternalContext_read_parquet__ffi(self__, c_arg__paths); + return handle_result(res); } SEXP savvy_InternalContext_sql__impl(SEXP self__, SEXP c_arg__query) { - SEXP res = savvy_InternalContext_sql__ffi(self__, c_arg__query); - return handle_result(res); + SEXP res = savvy_InternalContext_sql__ffi(self__, c_arg__query); + return handle_result(res); } SEXP savvy_InternalContext_view__impl(SEXP self__, SEXP c_arg__table_ref) { - SEXP res = savvy_InternalContext_view__ffi(self__, c_arg__table_ref); - return handle_result(res); + SEXP res = savvy_InternalContext_view__ffi(self__, c_arg__table_ref); + return handle_result(res); } SEXP savvy_InternalDataFrame_collect__impl(SEXP self__, SEXP c_arg__out) { - SEXP res = savvy_InternalDataFrame_collect__ffi(self__, c_arg__out); - return handle_result(res); + SEXP res = savvy_InternalDataFrame_collect__ffi(self__, c_arg__out); + return handle_result(res); } SEXP savvy_InternalDataFrame_compute__impl(SEXP self__, SEXP c_arg__ctx) { - SEXP res = savvy_InternalDataFrame_compute__ffi(self__, c_arg__ctx); - return handle_result(res); + SEXP res = savvy_InternalDataFrame_compute__ffi(self__, c_arg__ctx); + return handle_result(res); } SEXP savvy_InternalDataFrame_count__impl(SEXP self__) { - SEXP res = savvy_InternalDataFrame_count__ffi(self__); - return handle_result(res); + SEXP res = savvy_InternalDataFrame_count__ffi(self__); + return handle_result(res); } SEXP savvy_InternalDataFrame_limit__impl(SEXP self__, SEXP c_arg__n) { - SEXP res = savvy_InternalDataFrame_limit__ffi(self__, c_arg__n); - return handle_result(res); + SEXP res = savvy_InternalDataFrame_limit__ffi(self__, c_arg__n); + return handle_result(res); } SEXP savvy_InternalDataFrame_primary_geometry_column_index__impl(SEXP self__) { - SEXP res = savvy_InternalDataFrame_primary_geometry_column_index__ffi(self__); - return handle_result(res); + SEXP res = savvy_InternalDataFrame_primary_geometry_column_index__ffi(self__); + return handle_result(res); } -SEXP savvy_InternalDataFrame_show__impl(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__width_chars, SEXP c_arg__ascii, SEXP c_arg__limit) { - SEXP res = savvy_InternalDataFrame_show__ffi(self__, c_arg__ctx, c_arg__width_chars, c_arg__ascii, c_arg__limit); - return handle_result(res); +SEXP savvy_InternalDataFrame_show__impl(SEXP self__, SEXP c_arg__ctx, + SEXP c_arg__width_chars, + SEXP c_arg__ascii, SEXP c_arg__limit) { + SEXP res = savvy_InternalDataFrame_show__ffi( + self__, c_arg__ctx, c_arg__width_chars, c_arg__ascii, c_arg__limit); + return handle_result(res); } -SEXP savvy_InternalDataFrame_to_arrow_schema__impl(SEXP self__, SEXP c_arg__out) { - SEXP res = savvy_InternalDataFrame_to_arrow_schema__ffi(self__, c_arg__out); - return handle_result(res); +SEXP savvy_InternalDataFrame_to_arrow_schema__impl(SEXP self__, + SEXP c_arg__out) { + SEXP res = savvy_InternalDataFrame_to_arrow_schema__ffi(self__, c_arg__out); + return handle_result(res); } -SEXP savvy_InternalDataFrame_to_arrow_stream__impl(SEXP self__, SEXP c_arg__out) { - SEXP res = savvy_InternalDataFrame_to_arrow_stream__ffi(self__, c_arg__out); - return handle_result(res); +SEXP savvy_InternalDataFrame_to_arrow_stream__impl(SEXP self__, + SEXP c_arg__out) { + SEXP res = savvy_InternalDataFrame_to_arrow_stream__ffi(self__, c_arg__out); + return handle_result(res); } -SEXP savvy_InternalDataFrame_to_view__impl(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__table_ref, SEXP c_arg__overwrite) { - SEXP res = savvy_InternalDataFrame_to_view__ffi(self__, c_arg__ctx, c_arg__table_ref, c_arg__overwrite); - return handle_result(res); +SEXP savvy_InternalDataFrame_to_view__impl(SEXP self__, SEXP c_arg__ctx, + SEXP c_arg__table_ref, + SEXP c_arg__overwrite) { + SEXP res = savvy_InternalDataFrame_to_view__ffi( + self__, c_arg__ctx, c_arg__table_ref, c_arg__overwrite); + return handle_result(res); } SEXP savvy_Person_associated_function__impl(void) { - SEXP res = savvy_Person_associated_function__ffi(); - return handle_result(res); + SEXP res = savvy_Person_associated_function__ffi(); + return handle_result(res); } SEXP savvy_Person_name__impl(SEXP self__) { - SEXP res = savvy_Person_name__ffi(self__); - return handle_result(res); + SEXP res = savvy_Person_name__ffi(self__); + return handle_result(res); } SEXP savvy_Person_new__impl(void) { - SEXP res = savvy_Person_new__ffi(); - return handle_result(res); + SEXP res = savvy_Person_new__ffi(); + return handle_result(res); } SEXP savvy_Person_set_name__impl(SEXP self__, SEXP c_arg__name) { - SEXP res = savvy_Person_set_name__ffi(self__, c_arg__name); - return handle_result(res); + SEXP res = savvy_Person_set_name__ffi(self__, c_arg__name); + return handle_result(res); } - static const R_CallMethodDef CallEntries[] = { - {"savvy_init_r_runtime_interrupts__impl", (DL_FUNC) &savvy_init_r_runtime_interrupts__impl, 2}, - {"savvy_int_times_int__impl", (DL_FUNC) &savvy_int_times_int__impl, 2}, - {"savvy_sedonadb_adbc_init_func__impl", (DL_FUNC) &savvy_sedonadb_adbc_init_func__impl, 0}, - {"savvy_to_upper__impl", (DL_FUNC) &savvy_to_upper__impl, 1}, - {"savvy_InternalContext_data_frame_from_array_stream__impl", (DL_FUNC) &savvy_InternalContext_data_frame_from_array_stream__impl, 3}, - {"savvy_InternalContext_deregister_table__impl", (DL_FUNC) &savvy_InternalContext_deregister_table__impl, 2}, - {"savvy_InternalContext_new__impl", (DL_FUNC) &savvy_InternalContext_new__impl, 0}, - {"savvy_InternalContext_read_parquet__impl", (DL_FUNC) &savvy_InternalContext_read_parquet__impl, 2}, - {"savvy_InternalContext_sql__impl", (DL_FUNC) &savvy_InternalContext_sql__impl, 2}, - {"savvy_InternalContext_view__impl", (DL_FUNC) &savvy_InternalContext_view__impl, 2}, - {"savvy_InternalDataFrame_collect__impl", (DL_FUNC) &savvy_InternalDataFrame_collect__impl, 2}, - {"savvy_InternalDataFrame_compute__impl", (DL_FUNC) &savvy_InternalDataFrame_compute__impl, 2}, - {"savvy_InternalDataFrame_count__impl", (DL_FUNC) &savvy_InternalDataFrame_count__impl, 1}, - {"savvy_InternalDataFrame_limit__impl", (DL_FUNC) &savvy_InternalDataFrame_limit__impl, 2}, - {"savvy_InternalDataFrame_primary_geometry_column_index__impl", (DL_FUNC) &savvy_InternalDataFrame_primary_geometry_column_index__impl, 1}, - {"savvy_InternalDataFrame_show__impl", (DL_FUNC) &savvy_InternalDataFrame_show__impl, 5}, - {"savvy_InternalDataFrame_to_arrow_schema__impl", (DL_FUNC) &savvy_InternalDataFrame_to_arrow_schema__impl, 2}, - {"savvy_InternalDataFrame_to_arrow_stream__impl", (DL_FUNC) &savvy_InternalDataFrame_to_arrow_stream__impl, 2}, - {"savvy_InternalDataFrame_to_view__impl", (DL_FUNC) &savvy_InternalDataFrame_to_view__impl, 4}, - {"savvy_Person_associated_function__impl", (DL_FUNC) &savvy_Person_associated_function__impl, 0}, - {"savvy_Person_name__impl", (DL_FUNC) &savvy_Person_name__impl, 1}, - {"savvy_Person_new__impl", (DL_FUNC) &savvy_Person_new__impl, 0}, - {"savvy_Person_set_name__impl", (DL_FUNC) &savvy_Person_set_name__impl, 2}, - {NULL, NULL, 0} -}; + {"savvy_init_r_runtime_interrupts__impl", + (DL_FUNC)&savvy_init_r_runtime_interrupts__impl, 2}, + {"savvy_int_times_int__impl", (DL_FUNC)&savvy_int_times_int__impl, 2}, + {"savvy_sedonadb_adbc_init_func__impl", + (DL_FUNC)&savvy_sedonadb_adbc_init_func__impl, 0}, + {"savvy_to_upper__impl", (DL_FUNC)&savvy_to_upper__impl, 1}, + {"savvy_InternalContext_data_frame_from_array_stream__impl", + (DL_FUNC)&savvy_InternalContext_data_frame_from_array_stream__impl, 3}, + {"savvy_InternalContext_deregister_table__impl", + (DL_FUNC)&savvy_InternalContext_deregister_table__impl, 2}, + {"savvy_InternalContext_new__impl", + (DL_FUNC)&savvy_InternalContext_new__impl, 0}, + {"savvy_InternalContext_read_parquet__impl", + (DL_FUNC)&savvy_InternalContext_read_parquet__impl, 2}, + {"savvy_InternalContext_sql__impl", + (DL_FUNC)&savvy_InternalContext_sql__impl, 2}, + {"savvy_InternalContext_view__impl", + (DL_FUNC)&savvy_InternalContext_view__impl, 2}, + {"savvy_InternalDataFrame_collect__impl", + (DL_FUNC)&savvy_InternalDataFrame_collect__impl, 2}, + {"savvy_InternalDataFrame_compute__impl", + (DL_FUNC)&savvy_InternalDataFrame_compute__impl, 2}, + {"savvy_InternalDataFrame_count__impl", + (DL_FUNC)&savvy_InternalDataFrame_count__impl, 1}, + {"savvy_InternalDataFrame_limit__impl", + (DL_FUNC)&savvy_InternalDataFrame_limit__impl, 2}, + {"savvy_InternalDataFrame_primary_geometry_column_index__impl", + (DL_FUNC)&savvy_InternalDataFrame_primary_geometry_column_index__impl, 1}, + {"savvy_InternalDataFrame_show__impl", + (DL_FUNC)&savvy_InternalDataFrame_show__impl, 5}, + {"savvy_InternalDataFrame_to_arrow_schema__impl", + (DL_FUNC)&savvy_InternalDataFrame_to_arrow_schema__impl, 2}, + {"savvy_InternalDataFrame_to_arrow_stream__impl", + (DL_FUNC)&savvy_InternalDataFrame_to_arrow_stream__impl, 2}, + {"savvy_InternalDataFrame_to_view__impl", + (DL_FUNC)&savvy_InternalDataFrame_to_view__impl, 4}, + {"savvy_Person_associated_function__impl", + (DL_FUNC)&savvy_Person_associated_function__impl, 0}, + {"savvy_Person_name__impl", (DL_FUNC)&savvy_Person_name__impl, 1}, + {"savvy_Person_new__impl", (DL_FUNC)&savvy_Person_new__impl, 0}, + {"savvy_Person_set_name__impl", (DL_FUNC)&savvy_Person_set_name__impl, 2}, + {NULL, NULL, 0}}; void R_init_sedonadb(DllInfo *dll) { - R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); - R_useDynamicSymbols(dll, FALSE); + R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); + R_useDynamicSymbols(dll, FALSE); - // Functions for initialzation, if any. - savvy_init_r_runtime__impl(dll); + // Functions for initialization, if any. + savvy_init_r_runtime__impl(dll); } diff --git a/r/sedonadb/src/rust/api.h b/r/sedonadb/src/rust/api.h index 71254f968..a8b1596c3 100644 --- a/r/sedonadb/src/rust/api.h +++ b/r/sedonadb/src/rust/api.h @@ -1,12 +1,15 @@ -SEXP savvy_init_r_runtime__ffi(DllInfo* c_arg___dll_info); -SEXP savvy_init_r_runtime_interrupts__ffi(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env); +SEXP savvy_init_r_runtime__ffi(DllInfo *c_arg___dll_info); +SEXP savvy_init_r_runtime_interrupts__ffi(SEXP c_arg__interrupts_call, + SEXP c_arg__pkg_env); SEXP savvy_int_times_int__ffi(SEXP c_arg__x, SEXP c_arg__y); SEXP savvy_sedonadb_adbc_init_func__ffi(void); SEXP savvy_to_upper__ffi(SEXP c_arg__x); // methods and associated functions for InternalContext -SEXP savvy_InternalContext_data_frame_from_array_stream__ffi(SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now); -SEXP savvy_InternalContext_deregister_table__ffi(SEXP self__, SEXP c_arg__table_ref); +SEXP savvy_InternalContext_data_frame_from_array_stream__ffi( + SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now); +SEXP savvy_InternalContext_deregister_table__ffi(SEXP self__, + SEXP c_arg__table_ref); SEXP savvy_InternalContext_new__ffi(void); SEXP savvy_InternalContext_read_parquet__ffi(SEXP self__, SEXP c_arg__paths); SEXP savvy_InternalContext_sql__ffi(SEXP self__, SEXP c_arg__query); @@ -18,10 +21,14 @@ SEXP savvy_InternalDataFrame_compute__ffi(SEXP self__, SEXP c_arg__ctx); SEXP savvy_InternalDataFrame_count__ffi(SEXP self__); SEXP savvy_InternalDataFrame_limit__ffi(SEXP self__, SEXP c_arg__n); SEXP savvy_InternalDataFrame_primary_geometry_column_index__ffi(SEXP self__); -SEXP savvy_InternalDataFrame_show__ffi(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__width_chars, SEXP c_arg__ascii, SEXP c_arg__limit); +SEXP savvy_InternalDataFrame_show__ffi(SEXP self__, SEXP c_arg__ctx, + SEXP c_arg__width_chars, + SEXP c_arg__ascii, SEXP c_arg__limit); SEXP savvy_InternalDataFrame_to_arrow_schema__ffi(SEXP self__, SEXP c_arg__out); SEXP savvy_InternalDataFrame_to_arrow_stream__ffi(SEXP self__, SEXP c_arg__out); -SEXP savvy_InternalDataFrame_to_view__ffi(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__table_ref, SEXP c_arg__overwrite); +SEXP savvy_InternalDataFrame_to_view__ffi(SEXP self__, SEXP c_arg__ctx, + SEXP c_arg__table_ref, + SEXP c_arg__overwrite); // methods and associated functions for Person SEXP savvy_Person_associated_function__ffi(void); From ec88b0e2f9f320aeb27d030167404592da8bc1ef Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:22:04 -0500 Subject: [PATCH 04/14] first pass at licensing --- ci/scripts/rat/license_ignore.txt | 6 ++++++ r/sedonadb/.gitignore | 17 +++++++++++++++++ r/sedonadb/README.Rmd | 19 ++++++++++++++++++- r/sedonadb/cleanup | 17 +++++++++++++++++ r/sedonadb/cleanup.win | 17 +++++++++++++++++ r/sedonadb/configure | 17 +++++++++++++++++ r/sedonadb/configure.win | 17 +++++++++++++++++ r/sedonadb/src/.gitignore | 17 +++++++++++++++++ r/sedonadb/src/Makevars.in | 17 +++++++++++++++++ 9 files changed, 143 insertions(+), 1 deletion(-) diff --git a/ci/scripts/rat/license_ignore.txt b/ci/scripts/rat/license_ignore.txt index a3b26d047..daf8efea1 100644 --- a/ci/scripts/rat/license_ignore.txt +++ b/ci/scripts/rat/license_ignore.txt @@ -1,5 +1,8 @@ +.Rbuildignore *.ipynb *.json +*.Rd +*.Rproj *.svg c/sedona-geoarrow-c/src/geoarrow/* c/sedona-geoarrow-c/src/geoarrow/ryu/* @@ -9,5 +12,8 @@ c/sedona-s2geography/s2geometry/* c/sedona-tg/src/tg/* Cargo.lock ci/scripts/rat/license_*.txt +DESCRIPTION LICENSE +NAMESPACE +sedonadb-win.def submodules/geoarrow-data/* diff --git a/r/sedonadb/.gitignore b/r/sedonadb/.gitignore index a4ce0eb09..a440e54a3 100644 --- a/r/sedonadb/.gitignore +++ b/r/sedonadb/.gitignore @@ -1,3 +1,20 @@ +# 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. + .Rproj.user .Rhistory .Rdata diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd index b3506aa63..6a7a96cc6 100644 --- a/r/sedonadb/README.Rmd +++ b/r/sedonadb/README.Rmd @@ -2,7 +2,24 @@ output: github_document --- - + ```{r, include = FALSE} knitr::opts_chunk$set( diff --git a/r/sedonadb/cleanup b/r/sedonadb/cleanup index e346d71d3..00c8865ed 100755 --- a/r/sedonadb/cleanup +++ b/r/sedonadb/cleanup @@ -1 +1,18 @@ +# 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. + rm -f src/Makevars diff --git a/r/sedonadb/cleanup.win b/r/sedonadb/cleanup.win index a18217462..e81e481cb 100755 --- a/r/sedonadb/cleanup.win +++ b/r/sedonadb/cleanup.win @@ -1 +1,18 @@ +# 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. + rm -f src/Makevars.win diff --git a/r/sedonadb/configure b/r/sedonadb/configure index 86b6ce962..8a1ff3455 100755 --- a/r/sedonadb/configure +++ b/r/sedonadb/configure @@ -1,3 +1,20 @@ +# 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. + # Even when `cargo` is on `PATH`, `rustc` might not in some cases. This adds # ~/.cargo/bin to PATH to address such cases. Note that is not always available # (e.g. or on Ubuntu with Rust installed via APT). diff --git a/r/sedonadb/configure.win b/r/sedonadb/configure.win index b1251ff27..6db580b26 100755 --- a/r/sedonadb/configure.win +++ b/r/sedonadb/configure.win @@ -1,3 +1,20 @@ +# 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. + CARGO_VERSION="$(cargo --version)" if [ $? -ne 0 ]; then diff --git a/r/sedonadb/src/.gitignore b/r/sedonadb/src/.gitignore index f1265a239..e103a0a92 100644 --- a/r/sedonadb/src/.gitignore +++ b/r/sedonadb/src/.gitignore @@ -1,3 +1,20 @@ +# 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. + *.o *.so *.dll diff --git a/r/sedonadb/src/Makevars.in b/r/sedonadb/src/Makevars.in index fe6e548a3..84552db4b 100644 --- a/r/sedonadb/src/Makevars.in +++ b/r/sedonadb/src/Makevars.in @@ -1,3 +1,20 @@ +# 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. + TARGET = @TARGET@ PROFILE = @PROFILE@ From 9b8c900b1d85f599a017f4ceae6c23a8d64f0d23 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:24:52 -0500 Subject: [PATCH 05/14] license R files --- r/sedonadb/R/000-wrappers.R | 16 ++++++++++++++++ r/sedonadb/R/adbc.R | 16 ++++++++++++++++ r/sedonadb/R/context.R | 16 ++++++++++++++++ r/sedonadb/R/dataframe.R | 16 ++++++++++++++++ r/sedonadb/R/sedonadb-package.R | 16 ++++++++++++++++ r/sedonadb/R/zzz.R | 16 ++++++++++++++++ r/sedonadb/tests/testthat.R | 16 ++++++++++++++++ r/sedonadb/tests/testthat/test-adbc.R | 16 ++++++++++++++++ r/sedonadb/tests/testthat/test-context.R | 16 ++++++++++++++++ r/sedonadb/tests/testthat/test-dataframe.R | 16 ++++++++++++++++ 10 files changed, 160 insertions(+) diff --git a/r/sedonadb/R/000-wrappers.R b/r/sedonadb/R/000-wrappers.R index eb02c28e4..fcb339d40 100644 --- a/r/sedonadb/R/000-wrappers.R +++ b/r/sedonadb/R/000-wrappers.R @@ -1,3 +1,19 @@ +# 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. # Generated by savvy: do not edit by hand # # Note: diff --git a/r/sedonadb/R/adbc.R b/r/sedonadb/R/adbc.R index 7c75f5522..6f2157b9c 100644 --- a/r/sedonadb/R/adbc.R +++ b/r/sedonadb/R/adbc.R @@ -1,3 +1,19 @@ +# 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. #' SedonaDB ADBC Driver #' diff --git a/r/sedonadb/R/context.R b/r/sedonadb/R/context.R index 33785e283..2b6342b80 100644 --- a/r/sedonadb/R/context.R +++ b/r/sedonadb/R/context.R @@ -1,3 +1,19 @@ +# 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. #' Create a DataFrame from one or more Parquet files #' diff --git a/r/sedonadb/R/dataframe.R b/r/sedonadb/R/dataframe.R index 2e0d46fb7..321961c74 100644 --- a/r/sedonadb/R/dataframe.R +++ b/r/sedonadb/R/dataframe.R @@ -1,3 +1,19 @@ +# 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. #' Convert an object to a DataFrame #' diff --git a/r/sedonadb/R/sedonadb-package.R b/r/sedonadb/R/sedonadb-package.R index a65cf6430..d8b6f3b6f 100644 --- a/r/sedonadb/R/sedonadb-package.R +++ b/r/sedonadb/R/sedonadb-package.R @@ -1,3 +1,19 @@ +# 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. #' @keywords internal "_PACKAGE" diff --git a/r/sedonadb/R/zzz.R b/r/sedonadb/R/zzz.R index 066e79dd4..abd38e99e 100644 --- a/r/sedonadb/R/zzz.R +++ b/r/sedonadb/R/zzz.R @@ -1,3 +1,19 @@ +# 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. .onLoad <- function(...) { # Load geoarrow to manage conversion of arrow results to/from spatial objects diff --git a/r/sedonadb/tests/testthat.R b/r/sedonadb/tests/testthat.R index 06442f4da..fb41f2bfc 100644 --- a/r/sedonadb/tests/testthat.R +++ b/r/sedonadb/tests/testthat.R @@ -1,3 +1,19 @@ +# 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. # This file is part of the standard setup for testthat. # It is recommended that you do not modify it. # diff --git a/r/sedonadb/tests/testthat/test-adbc.R b/r/sedonadb/tests/testthat/test-adbc.R index 21cf1450e..d4e6b839f 100644 --- a/r/sedonadb/tests/testthat/test-adbc.R +++ b/r/sedonadb/tests/testthat/test-adbc.R @@ -1,3 +1,19 @@ +# 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. test_that("adbc driver works", { con <- sedonadb_adbc() |> diff --git a/r/sedonadb/tests/testthat/test-context.R b/r/sedonadb/tests/testthat/test-context.R index 676bc06d9..b6ea4e6db 100644 --- a/r/sedonadb/tests/testthat/test-context.R +++ b/r/sedonadb/tests/testthat/test-context.R @@ -1,3 +1,19 @@ +# 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. test_that("sd_read_parquet() works", { path <- system.file("files/natural-earth_cities_geo.parquet", package = "sedonadb") diff --git a/r/sedonadb/tests/testthat/test-dataframe.R b/r/sedonadb/tests/testthat/test-dataframe.R index b5d0484ad..f530f6545 100644 --- a/r/sedonadb/tests/testthat/test-dataframe.R +++ b/r/sedonadb/tests/testthat/test-dataframe.R @@ -1,3 +1,19 @@ +# 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. test_that("dataframe can be created from data.frame", { df <- as_sedonadb_dataframe(data.frame(one = 1, two = "two")) From c0197c4b6c9bfb4211edd97241ecdf6999d67768 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Thu, 4 Sep 2025 23:25:32 -0500 Subject: [PATCH 06/14] license the rust folder --- r/sedonadb/src/init.c | 16 ++++++++++++++++ r/sedonadb/src/rust/Cargo.toml | 16 ++++++++++++++++ r/sedonadb/src/rust/api.h | 16 ++++++++++++++++ r/sedonadb/src/rust/src/context.rs | 16 ++++++++++++++++ r/sedonadb/src/rust/src/dataframe.rs | 16 ++++++++++++++++ r/sedonadb/src/rust/src/error.rs | 16 ++++++++++++++++ r/sedonadb/src/rust/src/lib.rs | 16 ++++++++++++++++ r/sedonadb/src/rust/src/runtime.rs | 16 ++++++++++++++++ 8 files changed, 128 insertions(+) diff --git a/r/sedonadb/src/init.c b/r/sedonadb/src/init.c index 6667d4644..3c875a297 100644 --- a/r/sedonadb/src/init.c +++ b/r/sedonadb/src/init.c @@ -1,3 +1,19 @@ +// 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. #include diff --git a/r/sedonadb/src/rust/Cargo.toml b/r/sedonadb/src/rust/Cargo.toml index 0f33aae1b..246aa9332 100644 --- a/r/sedonadb/src/rust/Cargo.toml +++ b/r/sedonadb/src/rust/Cargo.toml @@ -1,3 +1,19 @@ +# 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. [package] name = "sedonadbr" version = "0.1.0" diff --git a/r/sedonadb/src/rust/api.h b/r/sedonadb/src/rust/api.h index a8b1596c3..5956d6bd3 100644 --- a/r/sedonadb/src/rust/api.h +++ b/r/sedonadb/src/rust/api.h @@ -1,3 +1,19 @@ +// 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. SEXP savvy_init_r_runtime__ffi(DllInfo *c_arg___dll_info); SEXP savvy_init_r_runtime_interrupts__ffi(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env); diff --git a/r/sedonadb/src/rust/src/context.rs b/r/sedonadb/src/rust/src/context.rs index e24100044..67f52a3df 100644 --- a/r/sedonadb/src/rust/src/context.rs +++ b/r/sedonadb/src/rust/src/context.rs @@ -1,3 +1,19 @@ +// 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. use std::sync::Arc; use arrow_array::{ diff --git a/r/sedonadb/src/rust/src/dataframe.rs b/r/sedonadb/src/rust/src/dataframe.rs index 920205962..51e515729 100644 --- a/r/sedonadb/src/rust/src/dataframe.rs +++ b/r/sedonadb/src/rust/src/dataframe.rs @@ -1,3 +1,19 @@ +// 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. use std::ptr::swap_nonoverlapping; use std::sync::Arc; diff --git a/r/sedonadb/src/rust/src/error.rs b/r/sedonadb/src/rust/src/error.rs index a29209d55..645d33640 100644 --- a/r/sedonadb/src/rust/src/error.rs +++ b/r/sedonadb/src/rust/src/error.rs @@ -1,3 +1,19 @@ +// 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. use arrow_schema::ArrowError; use datafusion_common::DataFusionError; diff --git a/r/sedonadb/src/rust/src/lib.rs b/r/sedonadb/src/rust/src/lib.rs index edfdeff65..c9ef169a3 100644 --- a/r/sedonadb/src/rust/src/lib.rs +++ b/r/sedonadb/src/rust/src/lib.rs @@ -1,3 +1,19 @@ +// 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. // Example functions use std::ffi::c_void; diff --git a/r/sedonadb/src/rust/src/runtime.rs b/r/sedonadb/src/rust/src/runtime.rs index 04bc81c2f..fb1c535e7 100644 --- a/r/sedonadb/src/rust/src/runtime.rs +++ b/r/sedonadb/src/rust/src/runtime.rs @@ -1,3 +1,19 @@ +// 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. use std::{ future::Future, sync::{OnceLock, RwLock}, From 62666711ca3536e57bbce1c4879d6a4b17265ae6 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Tue, 9 Sep 2025 22:47:43 -0500 Subject: [PATCH 07/14] formatting --- r/sedonadb/src/rust/Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/r/sedonadb/src/rust/Cargo.toml b/r/sedonadb/src/rust/Cargo.toml index 246aa9332..645fa2378 100644 --- a/r/sedonadb/src/rust/Cargo.toml +++ b/r/sedonadb/src/rust/Cargo.toml @@ -14,6 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. + [package] name = "sedonadbr" version = "0.1.0" @@ -24,7 +25,7 @@ crate-type = ["staticlib", "lib"] [dependencies] arrow-schema = { workspace = true } -arrow-array ={ workspace = true } +arrow-array = { workspace = true } datafusion = { workspace = true } datafusion-common = { workspace = true } savvy = "*" From b636143af9628efe8a0d88c428b136f4f126367a Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Tue, 9 Sep 2025 23:27:23 -0500 Subject: [PATCH 08/14] maybe with ci job --- .github/workflows/r.yml | 89 ++++++++++++++++++++++++++++++++++++++ r/sedonadb/configure | 20 +++++++++ r/sedonadb/src/Makevars.in | 2 +- 3 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/r.yml diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml new file mode 100644 index 000000000..c245a79d4 --- /dev/null +++ b/.github/workflows/r.yml @@ -0,0 +1,89 @@ +# 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. + +name: r + +on: + push: + branches: + - main + pull_request: + branches: + - main + paths: + - 'Cargo.toml' + - 'Cargo.lock' + - '.github/workflows/r.yml' + - 'rust/**' + - 'c/**' + - 'r/**' +jobs: + + test: + runs-on: ${{ matrix.config.os }} + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + - {os: ubuntu-latest, r: 'release'} + + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + R_KEEP_PKG_SOURCE: yes + + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + use-public-rspm: true + + - name: Use stable Rust + id: rust + run: | + rustup toolchain install stable --no-self-update + rustup default stable + + - name: Install dependencies + shell: bash + run: sudo apt-get update && sudo apt-get install -y libgeos-dev + + - uses: Swatinem/rust-cache@v2 + with: + # Update this key to force a new cache + prefix-key: "r-v1" + + - name: Install build dependencies + run: | + R -e 'install.packages(c("nanoarrow", "geoarrow"))' + + - name: Install R Package + run: | + R CMD INSTALL r/sedonadb --preclean + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + needs: check + working-directory: r/sedonadb + + - name: Test R Package + run: | + R -e 'library(testthat); test_local("r/sedonadb", MultiReporter$new(list(CheckReporter$new(), LocationReporter$new())))' diff --git a/r/sedonadb/configure b/r/sedonadb/configure index 8a1ff3455..a4f74a619 100755 --- a/r/sedonadb/configure +++ b/r/sedonadb/configure @@ -15,6 +15,25 @@ # specific language governing permissions and limitations # under the License. +# We need to link GEOS libs. The cargo build will use pkg-config +# and then geos-config, in that order, and requires pkg-config to be +# available (even if it isn't used). Here we just try pkg-config (LIB_DIR +# can be used to specify the location of -lgeos_c) + +pkg-config geos 2>/dev/null +if [ $? -eq 0 ]; then + PKGCONFIG_LIBS=`pkg-config --libs geos` +fi + +if [ "$LIB_DIR" ]; then + echo "Found LIB_DIR!" + PKG_LIBS="-L$LIB_DIR -lgeos_c $PKG_LIBS" +elif [ "$PKGCONFIG_CFLAGS" ] || [ "$PKGCONFIG_LIBS" ]; then + echo "Found GEOS pkg-config libs!" + PKG_LIBS=${PKGCONFIG_LIBS} +fi + + # Even when `cargo` is on `PATH`, `rustc` might not in some cases. This adds # ~/.cargo/bin to PATH to address such cases. Note that is not always available # (e.g. or on Ubuntu with Rust installed via APT). @@ -68,4 +87,5 @@ sed \ -e "s/@TARGET@/${TARGET}/" \ -e "s/@PROFILE@/${PROFILE}/" \ -e "s/@FEATURE_FLAGS@/${FEATURE_FLAGS}/" \ + -e "s|@PKG_LIBS@|${PKG_LIBS}|" \ src/Makevars.in > src/Makevars diff --git a/r/sedonadb/src/Makevars.in b/r/sedonadb/src/Makevars.in index 84552db4b..7828f4caa 100644 --- a/r/sedonadb/src/Makevars.in +++ b/r/sedonadb/src/Makevars.in @@ -26,7 +26,7 @@ RUSTFLAGS = TARGET_DIR = $(CURDIR)/rust/target LIBDIR = $(TARGET_DIR)/$(TARGET)/$(subst dev,debug,$(PROFILE)) STATLIB = $(LIBDIR)/libsedonadbr.a -PKG_LIBS = -L$(LIBDIR) -lsedonadbr -L/opt/homebrew/Cellar/geos/3.13.1/lib -lgeos_c +PKG_LIBS = -L$(LIBDIR) -lsedonadbr @PKG_LIBS@ CARGO_BUILD_ARGS = --lib --profile $(PROFILE) $(FEATURE_FLAGS) --manifest-path=./rust/Cargo.toml --target-dir $(TARGET_DIR) From 04c9474a7450e4acf3e506b6368c8f42edf7ad0c Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 09:02:25 -0500 Subject: [PATCH 09/14] try macos --- .github/workflows/r.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index c245a79d4..3fdf16130 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -42,6 +42,7 @@ jobs: matrix: config: - {os: ubuntu-latest, r: 'release'} + - {os: macos-latest, r: 'release'} env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} @@ -62,10 +63,14 @@ jobs: rustup toolchain install stable --no-self-update rustup default stable - - name: Install dependencies - shell: bash + - name: Install dependencies (Linux) + if: matrix.config.os == 'ubuntu-latest' run: sudo apt-get update && sudo apt-get install -y libgeos-dev + - name: Install dependencies (MacOS) + if: matrix.config.os == 'macos-latest' + run: brew install geos + - uses: Swatinem/rust-cache@v2 with: # Update this key to force a new cache From 42944e0667511d925e96a02dde2406dc1a7752ab Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 09:14:23 -0500 Subject: [PATCH 10/14] fix compile --- r/sedonadb/src/rust/src/dataframe.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/r/sedonadb/src/rust/src/dataframe.rs b/r/sedonadb/src/rust/src/dataframe.rs index 51e515729..274aa493f 100644 --- a/r/sedonadb/src/rust/src/dataframe.rs +++ b/r/sedonadb/src/rust/src/dataframe.rs @@ -26,6 +26,7 @@ use savvy::{savvy, savvy_err, Result}; use sedona::context::SedonaDataFrame; use sedona::reader::SedonaStreamReader; use sedona::show::{DisplayMode, DisplayTableOptions}; +use sedona_schema::schema::SedonaSchema; use tokio::runtime::Runtime; use crate::context::InternalContext; @@ -61,7 +62,7 @@ impl InternalDataFrame { } fn primary_geometry_column_index(&self) -> Result { - if let Some(col) = self.inner.primary_geometry_column_index()? { + if let Some(col) = self.inner.schema().primary_geometry_column_index()? { Ok(unsafe { savvy::Sexp(savvy_ffi::Rf_ScalarInteger(col.try_into()?)) }) } else { Ok(savvy::NullSexp.into()) @@ -89,9 +90,11 @@ impl InternalDataFrame { } let inner = self.inner.clone(); - let stream = wait_for_future_captured_r(&self.runtime, async move { - inner.execute_stream_sedona().await - })??; + let stream = + wait_for_future_captured_r( + &self.runtime, + async move { inner.execute_stream().await }, + )??; let reader = SedonaStreamReader::new(self.runtime.clone(), stream); let reader: Box = Box::new(reader); @@ -120,10 +123,7 @@ impl InternalDataFrame { let inner = self.inner.clone(); let batches = - wait_for_future_captured_r( - &self.runtime, - async move { inner.collect_sedona().await }, - )??; + wait_for_future_captured_r(&self.runtime, async move { inner.collect().await })??; let size: usize = batches.iter().map(|batch| batch.num_rows()).sum(); From f45deccac02abf1dec3665af5691901235b924f4 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 15:01:18 -0500 Subject: [PATCH 11/14] fix readme --- .gitignore | 3 + r/sedonadb/NAMESPACE | 1 + r/sedonadb/R/pkg-sf.R | 37 ++++++ r/sedonadb/R/zzz.R | 81 +++++++++++- r/sedonadb/README.Rmd | 33 +++-- r/sedonadb/README.md | 120 ++++++++++++++++++ .../man/figures/README-unnamed-chunk-3-1.png | Bin 0 -> 344965 bytes 7 files changed, 265 insertions(+), 10 deletions(-) create mode 100644 r/sedonadb/R/pkg-sf.R create mode 100644 r/sedonadb/README.md create mode 100644 r/sedonadb/man/figures/README-unnamed-chunk-3-1.png diff --git a/.gitignore b/.gitignore index 7441737f0..3ef7d2111 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,6 @@ site/ # Python cache files __pycache__ + +# R-related files +.Rproj.user diff --git a/r/sedonadb/NAMESPACE b/r/sedonadb/NAMESPACE index 488c39ce7..5133f5d14 100644 --- a/r/sedonadb/NAMESPACE +++ b/r/sedonadb/NAMESPACE @@ -8,6 +8,7 @@ S3method(as_sedonadb_dataframe,data.frame) S3method(as_sedonadb_dataframe,nanoarrow_array) S3method(as_sedonadb_dataframe,nanoarrow_array_stream) S3method(as_sedonadb_dataframe,sedonadb_dataframe) +S3method(as_sedonadb_dataframe,sf) S3method(dim,sedonadb_dataframe) S3method(dimnames,sedonadb_dataframe) S3method(head,sedonadb_dataframe) diff --git a/r/sedonadb/R/pkg-sf.R b/r/sedonadb/R/pkg-sf.R new file mode 100644 index 000000000..d40245702 --- /dev/null +++ b/r/sedonadb/R/pkg-sf.R @@ -0,0 +1,37 @@ +# 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. + +#' @export +as_sedonadb_dataframe.sf <- function(x, ..., schema = NULL) { + stream <- nanoarrow::as_nanoarrow_array_stream( + x, + schema = schema, + geometry_schema = geoarrow::geoarrow_wkb() + ) + ctx <- ctx() + df <- ctx$data_frame_from_array_stream(stream, collect_now = TRUE) + + # Verify schema is handled + as_sedonadb_dataframe(new_sedonadb_dataframe(ctx, df), schema = schema) +} + +# dynamically registered in zzz.R +st_as_sf.sedonadb_dataframe <- function(x, ...) { + stream <- nanoarrow::nanoarrow_allocate_array_stream() + size <- x$df$collect(stream) + sf::st_as_sf(stream) +} diff --git a/r/sedonadb/R/zzz.R b/r/sedonadb/R/zzz.R index abd38e99e..f9e6d18ec 100644 --- a/r/sedonadb/R/zzz.R +++ b/r/sedonadb/R/zzz.R @@ -19,8 +19,7 @@ # Load geoarrow to manage conversion of arrow results to/from spatial objects requireNamespace("geoarrow", quietly = TRUE) - # Call at least one function for R CMD check - geoarrow::as_geoarrow_array("POINT (0 1") + s3_register("sf::st_as_sf", "sedonadb_dataframe") # Inject what we need to reduce the Rust code to a simple Rf_eval() ns <- asNamespace("sedonadb") @@ -36,3 +35,81 @@ check_interrupts <- function() { FALSE }, interrupt = function(...) TRUE, error = function(...) TRUE) } + +# Permissively licensed (unlicense) from +# https://github.com/r-lib/vctrs/blob/b63a233bd8b8d6511cf3f7d9182c359a3b8c3cab/R/register-s3.R +s3_register <- function(generic, class, method = NULL) { + stopifnot(is.character(generic), length(generic) == 1) + stopifnot(is.character(class), length(class) == 1) + + pieces <- strsplit(generic, "::")[[1]] + stopifnot(length(pieces) == 2) + package <- pieces[[1]] + generic <- pieces[[2]] + + caller <- parent.frame() + + get_method_env <- function() { + top <- topenv(caller) + if (isNamespace(top)) { + asNamespace(environmentName(top)) + } else { + caller + } + } + get_method <- function(method) { + if (is.null(method)) { + get(paste0(generic, ".", class), envir = get_method_env()) + } else { + method + } + } + + register <- function(...) { + envir <- asNamespace(package) + + # Refresh the method each time, it might have been updated by + # `devtools::load_all()` + method_fn <- get_method(method) + stopifnot(is.function(method_fn)) + + + # Only register if generic can be accessed + if (exists(generic, envir)) { + registerS3method(generic, class, method_fn, envir = envir) + } else if (identical(Sys.getenv("NOT_CRAN"), "true")) { + warn <- .rlang_s3_register_compat("warn") + + warn(c( + sprintf( + "Can't find generic `%s` in package %s to register S3 method.", + generic, + package + ), + "i" = "This message is only shown to developers using devtools.", + "i" = sprintf("Do you need to update %s to the latest version?", package) + )) + } + } + + # Always register hook in case package is later unloaded & reloaded + setHook(packageEvent(package, "onLoad"), function(...) { + register() + }) + + # For compatibility with R < 4.0 where base isn't locked + is_sealed <- function(pkg) { + identical(pkg, "base") || environmentIsLocked(asNamespace(pkg)) + } + + # Avoid registration failures during loading (pkgload or regular). + # Check that environment is locked because the registering package + # might be a dependency of the package that exports the generic. In + # that case, the exports (and the generic) might not be populated + # yet (#1225). + if (isNamespaceLoaded(package) && is_sealed(package)) { + register() + } + + invisible() +} diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd index 6a7a96cc6..06167c5c7 100644 --- a/r/sedonadb/README.Rmd +++ b/r/sedonadb/README.Rmd @@ -26,7 +26,8 @@ knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", - out.width = "100%" + out.width = "100%", + dpi = 300 ) ``` @@ -41,26 +42,36 @@ The goal of sedonadb is to provide an R interface to [Apache SedonaDB](https://s You can install the development version of sedonadb from [GitHub](https://github.com/) with: -``` r -# install.packages("pak") -pak::pak("paleolimbot/sedonadb") +``` shell +git clone https://github.com/apache/sedona-db.git +cd sedona-db/r/sedonadb +R CMD INSTALL . ``` -Installing a development version of sedonadb requires a [Rust compiler](https://rustup.rs) and PROJ/GEOS system dependencies. Install instructions for these dependencies on various platforms can be found on the [sf package homepage](https://r-spatial.github.io/sf). +Installing a development version of sedonadb requires a [Rust compiler](https://rustup.rs) and a GEOS system dependency (e.g., `brew install geos` or `apt-get install libgeos-dev`). Install instructions for these dependencies on other platforms can be found on the [sf package homepage](https://r-spatial.github.io/sf). ## Example -This is a basic example which shows you how to solve a common problem: +You can use SedonaDB to read (Geo)Parquet files from anywhere. Filters are used +to reduce the amount of data downloaded based on GeoParquet and/or Parquet +metadata: ```{r example} library(sedonadb) url <- "https://github.com/geoarrow/geoarrow-data/releases/download/v0.2.0/microsoft-buildings_point_geo.parquet" - sd_read_parquet(url) |> sd_to_view("buildings", overwrite = TRUE) -sd_sql("SELECT * FROM buildings") |> sd_preview(5) + +filter <- "POLYGON ((-73.4341 44.0087, -73.4341 43.7981, -73.2531 43.7981, -73.2531 43.8889, -73.1531 43.8889, -73.1531 44.0087, -73.4341 44.0087))" + +sd_sql(glue::glue(" + SELECT * FROM buildings + WHERE ST_Intersects(ST_SetSRID(ST_GeomFromText('{filter}'), 4326), geometry) +")) |> sd_preview() ``` +Conversion to and from sf are supported: + ```{r} library(sf) @@ -69,3 +80,9 @@ nc |> sd_to_view("nc", overwrite = TRUE) sd_sql("SELECT * FROM nc") ``` + +```{r} +sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> + st_as_sf() |> + plot() +``` diff --git a/r/sedonadb/README.md b/r/sedonadb/README.md new file mode 100644 index 000000000..474eca365 --- /dev/null +++ b/r/sedonadb/README.md @@ -0,0 +1,120 @@ + + + +# sedonadb + + + + + +The goal of sedonadb is to provide an R interface to [Apache +SedonaDB](https://sedona.apache.org/sedonadb). SedonaDB provides a +[DataFusion](https://datafusion.apache.org)-powered single-node engine +with a wide range of spatial capabilities built in, including spatial +SQL with high function coverage and GeoParquet IO. + +## Installation + +You can install the development version of sedonadb from +[GitHub](https://github.com/) with: + +``` shell +git clone https://github.com/apache/sedona-db.git +cd sedona-db/r/sedonadb +R CMD INSTALL . +``` + +Installing a development version of sedonadb requires a [Rust +compiler](https://rustup.rs) and a GEOS system dependency (e.g., +`brew install geos` or `apt-get install libgeos-dev`). Install +instructions for these dependencies on other platforms can be found on +the [sf package homepage](https://r-spatial.github.io/sf). + +## Example + +You can use SedonaDB to read (Geo)Parquet files from anywhere. Filters +are used to reduce the amount of data downloaded based on GeoParquet +and/or Parquet metadata: + +``` r +library(sedonadb) + +url <- "https://github.com/geoarrow/geoarrow-data/releases/download/v0.2.0/microsoft-buildings_point_geo.parquet" +sd_read_parquet(url) |> sd_to_view("buildings", overwrite = TRUE) + +filter <- "POLYGON ((-73.4341 44.0087, -73.4341 43.7981, -73.2531 43.7981, -73.2531 43.8889, -73.1531 43.8889, -73.1531 44.0087, -73.4341 44.0087))" + +sd_sql(glue::glue(" + SELECT * FROM buildings + WHERE ST_Intersects(ST_SetSRID(ST_GeomFromText('{filter}'), 4326), geometry) +")) |> sd_preview() +#> ┌─────────────────────────────────┐ +#> │ geometry │ +#> │ geometry │ +#> ╞═════════════════════════════════╡ +#> │ POINT(-73.29533522 44.00847556) │ +#> ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ POINT(-73.29092778 44.00421331) │ +#> ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ POINT(-73.277808 43.998823) │ +#> ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ POINT(-73.277524 44.004619) │ +#> ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ POINT(-73.2774573 44.0044719) │ +#> ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ POINT(-73.27775838 44.0046742) │ +#> └─────────────────────────────────┘ +#> Preview of up to 6 row(s) +``` + +Conversion to and from sf are supported: + +``` r +library(sf) +#> Linking to GEOS 3.13.0, GDAL 3.8.5, PROJ 9.5.1; sf_use_s2() is TRUE + +nc <- sf::read_sf(system.file("shape/nc.shp", package = "sf")) +nc |> sd_to_view("nc", overwrite = TRUE) + +sd_sql("SELECT * FROM nc") +#> ┌─────────┬───┬─────────┬──────────────────────────────────────────────────────┐ +#> │ AREA ┆ … ┆ NWBIR79 ┆ geometry │ +#> │ float64 ┆ ┆ float64 ┆ geometry │ +#> ╞═════════╪═══╪═════════╪══════════════════════════════════════════════════════╡ +#> │ 0.114 ┆ … ┆ 19.0 ┆ MULTIPOLYGON(((-81.4727554321289 36.23435592651367,… │ +#> ├╌╌╌╌╌╌╌╌╌┼╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ 0.061 ┆ … ┆ 12.0 ┆ MULTIPOLYGON(((-81.2398910522461 36.36536407470703,… │ +#> ├╌╌╌╌╌╌╌╌╌┼╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ 0.143 ┆ … ┆ 260.0 ┆ MULTIPOLYGON(((-80.45634460449219 36.24255752563476… │ +#> ├╌╌╌╌╌╌╌╌╌┼╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ 0.07 ┆ … ┆ 145.0 ┆ MULTIPOLYGON(((-76.00897216796875 36.31959533691406… │ +#> ├╌╌╌╌╌╌╌╌╌┼╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ 0.153 ┆ … ┆ 1197.0 ┆ MULTIPOLYGON(((-77.21766662597656 36.24098205566406… │ +#> ├╌╌╌╌╌╌╌╌╌┼╌╌╌┼╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +#> │ 0.097 ┆ … ┆ 1237.0 ┆ MULTIPOLYGON(((-76.74506378173828 36.23391723632812… │ +#> └─────────┴───┴─────────┴──────────────────────────────────────────────────────┘ +#> Preview of up to 6 row(s) +``` + +``` r +sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> + st_as_sf() |> + plot() +``` + + diff --git a/r/sedonadb/man/figures/README-unnamed-chunk-3-1.png b/r/sedonadb/man/figures/README-unnamed-chunk-3-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb52b6dad55d1402e5963fb392ad9a5619dbb38 GIT binary patch literal 344965 zcmeFZWk8hc+BQrHsHB2ONSCB^cZ0NaDcwl-0D{up4T5w?Hz?iR-3>#-FvNGW-)F78 z_gd?HpP%0!evI7UFf;cR$9cqg5vU+1f%**Z84L^zs+6Rt5)2G7D-6t&d1OT3CsQ%+ zH(_89(9A?c6f8s}L~JZ=?36!$GBA=bvNp0aGf4OP)GB~ZcQPp+$=B_H%1 z&&i2GyJL%~v{V}Lo87)Ms<4`;i?*y3is;#2NHwEmS-Z(Ld&`d{gz-CXIePhC>o*mN zdEr4Y{r5_R?+CusSHss5nWH#Q_v%D;n<-$>)}sC4;`4}FI<2@x3OG8v z68ep?)rzjo_I7TE-=4#$p2PICVX-u^l(6_~tu3<$VB*fjsf(J+dy~Bq1qs-Ig|E{^ zoV}#0Mlg5S9pyUS2tv^Ar&Ib@PuqDcQ;1hzv{k{Vy-q_vDj!OWWDd|1qoXbexoe*b zK-wa^&_qD8Kbi~UWy>pmOWG&a!(NyqM>f{v3-ziNTd-)K^OX;;c;|_=1Ydg*Ph%Ii z;*XK8vOez+P|9Fd(SdPqRA=_|m<&dzq4BHTvt#~t0~Pm1f^CQV0*;Yiw7KJnCKyY; zE{?x>dpi$BZ>pH|Ql2@2lu}SO(FtLeS83>fx?PeH{**PN3Fr$|GiC2O3An1=d}R#h zc}Q38bOS1=Ard5EB6`RwrS?}57W%6iRJyJ*0+#5n3@mfcins2BkzQB?#YgZ z3tGXZDrAi)AXn2u$Kj{OpUK9Vq!^{5e6I*dqu1Zzl4KD_QS~Srh8T`;OQW%M#gW<@ zp4N?wyTXzwrE>%~25&nHb>5j6CM;JDbx5akU`!894_WlaPFd@6ds?dnH;AjIH%!{^ zIFOs*nbSLT&yJ_s4c)iuZB6~u+v3nfxkCcMd+p7s*0Ald_NzYgthdo>mpJ8dur#ae*``^%;(WTW<}^Jowc%I3*0xqd8ToDOZ+=fdF}gW% z6uu0_(P=>J`e|cW=vm~AlW)IoT~sl-BJe>x4w1?uXAR5(FK4~xMbDyRMsm=q;!QVTe!4Srw%SPD-Qvu-{xGsnN94Sr;z`(#|!2R(P zWY!G$Kdzt5Kl~?&yhj2Ij3A7ZsL%%&*!>0P2y#aV(lR1EVgzvj>=UNod{H4xtd{{_ zNzHMYXerE7pGr&9lWig(_P>@Edoo63nxF7|D1cNS2D{xG8Bsw|C{@p^9>h1n!qHIE zP~&{LxHzU_AML&bY6cGuI(pT+2P^WhQNkf0V-O2^!@&MuF9b<^=$}t~$NIlM;m_X{ zq#_>9!2I7{55~t14i0tWo2bzL`qtipzJ&kp5BKoiy-$%@WAI-*!TevJ3Ww_U|GLxv zb0gHiT_{*fVu}8*Peo?k{=W~~AET0y;w>mrN1}-FzdjWhJfz3L`>zpr9K3&CHIFOr zZ;{9~njthRrnIFD52pE=qiRr!P7{Rz5{ROOMXzyiYNQDOXr znmtzA$7)ObSTG(7#-pq9H-7n8F#dsGJ{F9}g7H`|{uCB}UOXy{M}_fNFdhrWV|w;C zM;8c<9u>x;!gy2|j|$_lW8l9MbnnM@i+|V?4o8vLV_#3}`w4@#_ zsmFrxrxW$(#iJ$lXh}U%J8T#{)sX?7L3P&@mMe(3&vx?cq|x?hgkm7 zDT$2nc!=dsY589lkCxQm;NsDe`X_$r{dkDwZ;tNcA(nsOTaWVWpSI8cZ}RL{EarbA z+(#~iyUUh)wnDX1>t^TznBD7kPcK=9v8l3dJxV62P5=`QG`$B>wm8X_PAefb5llBJWhIKOBn07zf;89o)_wQ zlCBRU5nk^h5M9r;?eSySZqP!(15w9Kk$+3fyak1P=*15{{A8f`kK^YG+RJBS@;0i) zniDBbvt|@D3vPSGT|WLAEB+ec6t5$@N*#+W*tD#7LOduCl`#MPf&PeYyDj_l|M*(~ z2zPpd8A7!GF+4x1eNx0%yUD^WT?E%+PMeQS8ofW-bNA`eJi<_d7ENesKv5cv|Rrnit zz{1gL2xfeu2rn@r`;)Hx?1#hA{w!p_?1RK^lIFVEo`TMQwY>SW4b1|Ldpm>S^}FMB z%|mUc86%x#l285!1UZaj;pkwh*T+luch2+zpW66R$8^cZBgahEqvq#%k$$$bgBxYosf7TR)qU}KL+`fbIZpPI>Ie^iFiD&=dbnVnyd zA4MF?JEk|4lIm-E_t$F9kS&4x869xtnA|`~!{O|kkt}o{?E`bQy;kC}Dc6?3zb%H3 zr!O!}ryD!xMqm870@b5_&6uPw>^Fd$2gGo6SV8wA5=09G_Weu)IgQRgs3Of>;oK{#NE(ylDei&#E3+pN*|uX2 z@I&{<+E0N+WqNm-e$N`O2Xb|8@G5Fa-})AQUYfcG>1T|;gRC5^7{tmAF`eamxcAZ5 zq;Q-KBayxU)o!wt&R8~`PcArG57qa(-Qi8uibtm#kp9mSE5h<2cw#l_JPskm2l*f9 z#qS}6Gd3QzZmtG1THoDl2{`9k%mDz9d{8}CGUK|H+5k3(q@{tC>j)Rq&ZobD`0u@T zb8Gt@dn`8HtVzPvT)l+X679&Ffc1ANduWnkm((;rcrSImr%?knI*2!M;cHBtLItDS z$O}v@5j9ihGTw}(-;JNE+znL%dxLeV`J$>pnfih)dr;f1rG?Mai)4s?ovjVBdA^f; z7gZ0P^As4UPsg}AFL7=YldA%~cV;2E?KFZ7!>g#~OYz!OAC2zKyr?W?=$%SJpp4(8LBuhQmbbl=Fz;)H0tCnlwR$3n;yvJ-0UkhS@Z zqw$kTGW3>W@b*As>ba-xvT%HfgU^b15NJ&rBv5|bA^P#hvurSQOlZI{bxf4Pa3-C> zyku(Q_(rGKIrN9NKJOB=T!=?vLi$bJI#i@to?Ja)X^dZ#Gex4s_Vd;B(S^s*RvoC< z{o1Uo=Crw^+2rb4_TUzB(?1OW3Gl~EcAt}5mT#rG%RPWkJcFpis1y|&Rho-F&RP1M zWs*gYo#yYRi`l}Sd(Q{RI=m;fZ<<^Kc9VLZw_uy_kH)Y+cl9r0>Z2WbuX?VtVUaGG zyM7b?3LfsZD<5p9H2_R>?T3Ys9Nl-$f-jEz1sb1I88XIo$fZO2P3kd3Ra-B|)(9_a zH*djSUS7^(IxSm#V6(J~%3N7Lta70v-OGBl)1Ur)MXtlXgyRS2tlHcA3#Y(>tAun* z@Q->d!xL>^)Z_Der9;(l~^+l_eJ5g`T@~a`Hu@ z4)26(mzVJ%G7W&uyi(`vb!ZsZ>}EEddA#EFW8QrXyNXWhU&>oCx~j3bx)Qb-a`U?9 zD%bAQ=YN2?pUen$An256r7PapHCBp2`A(zJyU$5L_2Il;trlm;> zwt}G#za^!4Rcq;b(uJLCwvDNafTg+Rg>~bOtc`ivY0B1nx?Xs~Bk#=t8<2gCt<7p6 z*CF})h>vZG5^pBn+*NsLTp#V}-MiTX^Ht+z+N5LRYujR*w{*oa<)}L)5dTxG75A0` z|Ku9D|DhU8$0qs=+?T{ZzaxAj30yh2LDeFt)dufE?4F65W`vFFyC2Y}yFY+3_{ft(Ps1EPdJ7#yXvj zK{$cNEFG+X)j?{f>L5lt>A)M1tUTns%raHHrQtzK>A>}yU39PX&pJfk@pXqBc}{!n zE!;u%)w0K+&QI4-8wnuGW+-m1$Kn7^STEEhbZeMSLZhxn)_U|w0?Xj-(Ei?zUUHXz zxa?B;x%O@!=9OKqpN8@^17B=<@)V^9hehvD{lbCu)H)U_Bsm^hmj=E#s$1Ff4+q|> zG+fI|O7`|((SGvw#%tHP1*%ii$aO9X!pT`m9_&H zbH#;fcU|JNT#4Zrr?3U5OsBs|NN*^}iKyPQO)&!^UBc`aF4 z+b0h)ZdK{LRb~ebU^__?ui`IViJz{Zd$|l^|I~m@(j8!3iliw2&Q5z)FTh*1F+k6 zS%!dD?pzpgKG7kT@O>b~^)QC5l%6ooS7`_&_Un1cOE;VLljAn;Q%bnPFO}2wayu3W zp|7B6D|;MOmt9uedGFrP^@=PZS`Y%bBZuI9nzS%Wwz$4+%(bAy?jkS$lx_Wk z301m>T{KzW22@#~gDKbBeX=5LLZH%e3UU_%{`~ZG6WM4?xwRHx>$eTp6^dMZ?!TYl zICv)M-mc=b)QS&v?m&jTK&Rum{Em&0ynR0tWOmiN_j31idT%dlBvQ1h%qQ?#3f=e1 zBsh$Lb+FLYQUO6r+PI%61x=(lPHGH1RJF~yrMrvv@BtGkIr{|V8~Ul3dz%ep-!^d1 zQ-<}kFFW}mig4y_Z`YDCpb`StBi5D`$6lNp0rnafmcx2a$2xHI<~;x)ORq%{khj-t z@H;()y883Xe<}`6x$nB&mJrzO>>29 z!3GDVC#2%!o=N~BRrB3O!)q8ZO+$4xN8sA*a>3cA`RoUyBkgBsSDf2zuUd0?&j{W1 zTZ!STllT^1{t(amE9nL~n9Z_qPs`JXfAmLQNJ~nR(_(?0Y8u#h_J6irK^nLAD~1kL z#UIp?wH(hu<*|KTWNe8>ezJ1jdwI`V5_h%pnu_lr7lH6CfK5U#-?ub-HMS7)3s~^C zZ9y+lN=X81fcx=+WzxQpo)&9@el7arz)78RMK zQ=SPwmUv3_2Iq<7+MvNrsSv{=JMOen&jSmVOU?cj-!Z+q>}romBgQ7}t){lOeF>q+ zb=i0GU`CCcJEszk&fCSBdx*x6;r_WY$M&=l17w`r-gpSU>2nGM&JE?x{G-hN8RK*y%LaN`WW zvo{iifEJ+x1sv+^e72L)@*e}6vBzpEH-UhWUpR=z+P6dz4#rg5jbR0b{Sj(%g% zyK2R`K(Aw<{Co%5;+VPOn-56(Y{_m-1n}X7rMRy#DIaCnY?vj-Qp~j+-}yKLOiBx5Tg#KDLR&l^H&8ci zT-xxH$ijK;^fB#|YSmh<%p&bn)3pYh;D;+>4bbsa`_a*`CER)CpFy+Gr z~aOx844wKNn>ab<6%f<3k<-AfF6rDuy!=04<}iK$K-%jdl3La?~t z?33Q!NYXv~j>E?21?lUm=nGoCY`$z-gVG*|)1mX74G)&-Ra+u>ES{!K6=#Fd@#h3M zrq0npN4|g@a2>$Q4Ctq##pXDFi{DqVVxh{oUp1wxb3{g)T)|;;5!AT-JvfPFh_~Xo z$NCxLjJ+l2hCM^BPvDS}+AP{ujgoaP5z);u634?#QoefYu1Dz*-SV;lki_lwx2Y-4 zToSK)UK@q)t;8_(riJ6C?<%{|_a$P3+uq{)R4~!PW?5#oU%NAODT|bO_28S0mr8Hv6jK4gY1`&^bj|DO5zxq;xIS zX*PfEbHcC$yLXEFVV%W(aWX3DjK~Fcsf$<*EQmMjcPIk>w|L8|*Nf@RP1Re_siE_F zjqoiSO@4fRrm2{Ziu2#_WpeeBLtSTx>jv289QyD}Jq``C)GsKB?7%@=0ZC4jD6TNhp98iy}?9qf7GXUXQ!=x*G%9%Z)>s7B>?)Z zX>B-k@4>!xnwO3yaC5{kJ+lNTvXmEOEo(ExOY${M2UZP7mpX@b@pqX|^r#YCr$712 z-V{%_@X>jN@kWBZCvyBm?8pN_(!bbOd=N0>m^bdx!a-+QfNHyip3cN&bP2ayUV!&X zPcMyM>-XNvzL4&}Z;E3!>bDp5Uvc*FXz9Pqs`{!HcXFya>wa<{btCs60*M$koAoxq zTFqn$4?L0B=i+(Rf2s19aL|JqJ*VRXhJ)VZz%A9;)TYZt_r{_czyy#u==^qGA8>#e zdOQ?t+fZiObk}&!cIsp>oX4l%>Z0K^Z`-BVpybwcQ+uKCdoBHC#RWC$-o}>YequGg zw*(Y`+xGHm+DeIo-WH1Z$#2o(2ZW%Pryd6udJXFk6&HhsOq+3QT+QxV*Nx`9}y>jK;0sr{u92j3a&!KiCPc-!MauDb`gnB8c}-Skt{Oo|AadNd zb#sKrpHjCL5N{_FZ1|~8G+G#x@saVXa+wphr!Mj|7q$lK`=|1tEZqK>-G!?Zx z;2_O(Ej<~PS3{^eU-lp^Y|W_qTl$6M%RMX1^5dcfsM*cwET6i>!D8Fq!Io7BZZ1+e z?C09w6$`W;scI1>8iRb7^MSG8nRhdUQSJtGo80&P7oSHhEXVu4m4ez<^t}XCg=-|9 zCVXz`;yWx`^py=Rwijt>UU+F6iV8XSlq7Kw$q=V4%`ROjp`Q42a7z!420QmcdnwB) z91`dT2Dnw|?5P)H{=8+3HTn=A=Jy%EEq&Ff=q@GT@YJUFq)K8TLH&@k(mzf2Z2si- z6Sqfel-imo%7?&fl~Mc+#7)DGY$$$Ztu_Ut2|39 zOX<&6qE;DxKYe9t`=x=hR_2J91mQV@5Z()3&P-EeC02|tJU+zqN?$6!j!Zc@@ahhE zd8#gH+oYx15Au~C%=2u$zC84-F0N{xo76q!X&EbI{P1aqERmLD(Z%2;Te9oRZc<&> zjMXvWb^|xZ#2_`EMAtP2%_xTm;eDB4^-iv{x8tO`jRp=#{E==R?_dzajrg734&_n?T1Hi@eA$sY<{VA}EZIWhb|F4xU^EPo)n>5xHRGhhD9gmEGj zk5IIG*M7Ri>;9QJhEe&08_L3!J7!0d*~>C#Ss{j^psN^2$v64uFhxj}ld z@mjMO_QeRG1e9E&NhBvoS%r+vx`<~X<9I6B*q+6uwW~p~PT|FSYd;zaKajYj$tS!M zvKeJNjTj*YAT zvy86ftJ4w}XZePv(X&JntG0abn8t_LHD&p1o%elRYZ@g|TKoe_G(#1JV%zSSE}6EQ zGczc^QT9Eg3u_s7ZOx)_vzq~kx52Jk6S!Lwkd{!0sgJV?>J5}1crg?$PpjnCQBwZN z^qdLdng&kXbi2@Gan|bJ)AFxL8W;2yB1g!78He&ErC zJ9YT$bEwSE6;k>+Sp@o#f~MaA`jeP7{JEBt11FGtTKgeB=f*=4BnO(v6e+Pif)7h9 z^A%>%nisPcr2(j2L#>L6xn@5!Q^*NW-f**?U#9{pM@41dD%{`VRE*V!O%na>Rj*z z5F~u?SUi7Lev)k^WRyh(hbJwT-H+KQ$z`ZY0Ec0KqyEvyg`b$Z*8|r7N*lhs)GJZ@ARcsBn)#0We8m;AofXbLml9Va za=Z#e1i>4M4AR_un5|Ks!9`=-LJH%4bZJoD^nN#SZ<8juDN#3U7Li}T=5Z4SHV+?( z;T|gNzrIKLpD#ZAelYMX%<5l#W4AjN&D;FZ!>x>n*=)uXby2*lqRH67+{%RHUjSE_ zL!ZNP`saLs4@$EWTvUAXTqvvuea|3_z(IfS=WJ#S`b*c@lR=FMX#HMEuw%~Q1AW>R zTcIN^ZTbi=C(n2OVRs`2;>{^_&R4yYlWeTIkQL5f|7@=(n#x2~l@_V_{tjx;RQsx& z*g=8lJ5QBwr~`qR=BO*H+u8PbVf1_Y&wxqzLsz^4>3wff`h(woIJ@SQ*NlNnH}oQ> zkwYs|7F>qW^1HCKS(D`J*BIY=p`_8vf$_{}tA}c!?wnRr^?jJc=jg_NTLPi7l8tMl z?kg*wD95P(MC%H$oQh}ffoNhk`?}f&3HgDr9cxFlE*IAUtb^ z>=hJd?0--9cg3V2d1nfTkAT#iJK!cx40#Va>7jC8?5Tc-fa1d+>WztaeYR86iT?+< z{SVYlAOp%2&GsivA@%X@i(qKgs5EUyHFI8CjS$K(yba25{MINTV#(?2{xL{8Zp@H$7za@4ZXJT6>BibHitAdR(YD(Qi+)taOfXxC z-n9K3(0eYqPN1})fg5>*XOUeL+==IZ3b=f@OvJ+MG8C^W&^@Lp*Ph*!4-bgQJe9)MJnn1iuA zZ~nu#NJ*BQwyi?DWi4t7-K@^KcI8`=G-l&-wi$FgRYGxTj(n;h(@?DUY?|<{im>Y0r-Ld1ChE!TL-LYB_3sPNsThHAWdR@F7F<7te>6 zCB!>|nyeNfFxl9tq=pkJYF3TD#cU6g6aFwcHxwUX{;WLzGdcId-qf6LJnfe}FV8hi zKS!8v4FGnkj-*zP3?qCjz;5M998Ief4p1`gT<4xMHexWrH<*p(Z0LL)?=>K{fo#Nw zAIvyT=_vC!Wx-?K<{$-Bgj8C52sfTG`;HBNo$hfWRnbsgwJ@HqT=<<-A{1|8(zf1; zilFa=S6>=*T69pil~&lwJwOd{+6{wOc}Ki@lIpx@w)IXH44S*BG{= zcH5T-WC)0|cbr=(_HMHj=jRw-K-XjG;zh)04(7b}rOns71*{U+1ZS+_s{=p^h+p`d zM@C>uN-@4hNOGJr(}D9-t6yW`h~oyuQld@cvG`QgZyHOWBtb|%`hC0kSsnEU?)?FO zN@SmRe#CeFra|00aVl7UiiWAqtls&{MbT-1ZK~bv9jBfX6bK&l#1MYtYWSJG_!XzC+Ai(BqAc3Sf_RJQEa{G0t4(S#`Rcg z6yr9W*RnU}ElIuFY;f;z7m-(r`ACws;QCub)Kpc|SQS;NTRi_?8L4Rx#$th$H1y*c zV_!&Ho}K;Nwyzj_mT@PR6qt^RY0;PQB2uzx<{LT@;arm12M>DQ9xwU?GWjIq7}Met zZXKu1M3c_zsIF@2vAV^}dHbR71tYd~DBt@aLp&YNeb2bJ7=3>mRc4C#i-*Li>jx6r zYv)cNW(S>TIMj64*38}E=y@=$_OnUJZ8xHr6gdgXC9%FO{a)BhB2YIUE{eLQJ<#V6 z^hNJ>SIre0zn270V>UI{{&-jfJ#^#yXhfCJDyhEeY%f;gDeJ-QMf!v? zrjms|%pDR$o*!Hfs-|epTG*F7PM;yL&Pe2(y;0DZu_$d?Q8EedWzk1VO_YeW5%SNo)svw51s79aV)^uf(7}GR` z?R4QWVuy0-d7Vh&dKQ#aU|!Q#|*}y6kKa2MK@Mj>&Qi zG~J{<6aA*ycc}}4Z15dK?Yi+Dp{*2hBvXcA@Fmw+0U`IXCV7V>X7%!y=bhXS$$y+;Ga;L^G_e4E-QnFA({}jI@|rggkQ3x($`1DB=sT6uZx~Z*-lq$ng`ld}TQFf-}pZdT9T@}wJ7;RUT^fvxKgj#s{9^&7W_?PYT5&6s(!DH7q;1@tAQ^Mmy zTHMz{!mk4dPRhG%`N6mXlH0GeEX&mQ!Jx|qPQB{Ht#q$NR};0oIA>%|`Dbs7g0!>r z`AH`sk_?a;Hf3<5{o=^0-Mv%J27pjgUDktvwN}>ePXwBV`0QOZps)Z5W%6nEHwEm{ zxMf6i!W4@tG|pvj^)xDcE=Ds#ugmI0BtjQrcC+pX5?lV#M9+&Es#hCX^b3F&+jYeg zo>;T!*4J|yzcm*rL6|5}Ru;lGr9DPpHLkQ$L)2(LrR#2`9lz0!t)`8ME?_!LycO%b z3NA8nxpb4dR1c9S!rB^3f|Vhv+iUctB^=$-aF*vi_TvFsD^kK!Li>19GwI|>1N^zJ zx3k_%MNR)kBBHA}%=9O;(|y5rCuh(pfxweqLPFRp!PW&S9{}nUlWGr78Nm<%QPZ2a z5yq2zvJ|yITYd`l`H}@(u%ts;_J(*E!H&mz<%3t1;!HPru+@Bby*J1sy8uwfgUu9s zxvdH1`2mil{YHJ6yf12A$XzSi?kXr$vw7#GN5eVT z3P?^|ETh72!cUD7kAv6_fvyqfG**nl^{08Zi?mPMA-pEFXdRUA6NoDk<#!5un;<}c z$h@n*Sf3FHAWC8Ox8ut49iE;^d|N%IVOud&lwBL4#=K?ZDLC@q>@A9`R3~!M_Ax-G z{R^g9p#_uJ$89gOTHQNyKcjTq125$OV0?PtDxaDtbd(|5q?oFvqs0b(4;iZoz z9g>#uUliSII8P)WFQD5(Wi-K{E9~GrG#%&;qP>HEdxQPv$#?swWRcpcr|{>P73Y&$ zrAOww9xG{dA7V(;CA&w=11!2C{3$)m z%|OaBG_is@!R-M_R}s!Gw~L*~ zWXD%53GRZbfDc3uqP0Dhdb#q)ygc_#wu?tevEJQDJT|FN#XB%^xDjS(@_UWe(@CD~ zHTE=xNH?~|ws(Z-+!=Pt>|`}f&fJ}Dy?jICJohx~8AEN7g=9uqaqB%lj%(b_L426l9>t>RZ{-NI~1npPLa zy}kWtdH$Xsc-$RxK*=AsOKhA|{50Ztxjx?e&_)v%9y{*?l_H9FRm%U7xgSMWxUiH* z==wrOg^#iMYSjsSs_^o`eJ7Q>gHlc6GU*PpClRm&>JQG;%oz*g?vcoc7Dm#bZT1CVsg zBjQ^w-yJO76&I+d*OSs9suXXpAZ@`?w7^f9_~N`uu8 z#=dhd4CxqzvPmzz8|Qd%>kGJF{qSgY*PzACNQv;bl@Fj$!8CNudTTC`R~&#!#6N#* zxtThaABxA;YZglqb_san0}!lFhYz~)>?nUfd>7Mm26TJfvE~y<^{#V?{ge^GL4e3H zxiPkWpBIo7g3iPMQ9b08SC#oMnGP#L%!1%h|8zab3rNTfRaJ4(`ZFrSQG!&CF`aFj z0}`=S)k$6j_uI`fj~_3;=_f{~hnK17XO@XAazye!FjezhtdAVd7)#r>$RJagou1kH z8RoumAR6{$DuJXaFx(Ht;xo6IiF4=xi&i$$k!|(0XdQ{g<( zf8$ritL$xCx)Y<9jkQ|C`EloT8H*y-Pwl**phAt^_M!XD*RTB|H^nXppWQOyA<|nI z&J=-XdTpnk&e$wZHtV$=Ort@Q@rNg1vPA;ZJGs?|UK zQm=>iFg_0JNnl4=)Yr^CfKvhGE7@gYO{sCj*M2ZWWYTt-B=0A%Rb+XS{DnA;lyda1!veM-}!%QgEuWDR*s0#h8TRCG5=A~~;Y(Re-U z6`6EB_1KjDy=}MR7b2o=itHbMd8<2U`XMrk z5l&DA_(^;fjb7IGc{|v6+=+i|3Pi89E#2_pLM8pHuHUiIdL>N-iv{s-i2~roc-KhY z1ng`P_Yu<%FX3`nr$B*r-GyYEW?U>$K(7^Mq^&B4)B<9ShnhQtfNK6fbRMeS~BnK?P zs-f{6KzER$OPKg-rDO6aP1Y9z^lnyh$|TcI`374C0AfY6YFbO(Ow2wXJGpvb5KiewW+YkBtq8G?V)oSx19D+;n_i>q`L6x*(OtteGShO7D3b<+$@Z!->FW z?s=&O)eYg4b*53DPFx~F<1~yD6KF{5nip-bBo#cT?fU2!o>HYO6Z?Nh_Z{@aSV)90v`hUwGpqE=6*h<=XI-2DcVTR zMP2gVY!g@wf$i_mW_s-%&bCM7u5HhzY#I*O)xuqd%^U>)=&ko(24&g6Lh?+L0cX!w z2_C@wh)fsugxlw^sZPR$lDPc;V!z0M&x}ECY5o^Zawddu*m8e2y$kHxx0^4+p1ZGv zgkeBO!a?h=KQqh{KkXJIf}dU2Wblm~BM4Lv)D?gBL1G9?qYIbCxP7&vH<0kTq^mfh zE0-l-ms+pbBwtDxmaNuYqjjci5%DwCqU}>2KyAvX=|w6~#Hr+n<9%RrW}53j+6$A#N@9 znyUnZFxzew1J3e@v!PkyB|&oxV2mJ!PC5CM;f*J~v@FG72Or9hD`#{sSHj(sKH%$f zma;E6C_@sVG5i_oWWv6d(UUQEi^j=Tuhy>wfW8T0zS1{0)ZD{UG%tJJg;wvG)LYx& zbq(&mzILtLOtR?ImrNzjpI&VZG1-0|$uB`?AqCoj%D7&GB8{qYv}-VW+KCShXKFCM z2gbyw2=@zGeRX)}F@jw zFfG(rAliArY5q@jNR0+d0PWTbLd9d1GEez-L@Z}BX}BFUp;HeE70%}He?*pfC#@cx`CU;_}Kf21>+gP;9<#ru9cn$hHQ6B;gqN#-CS-0o6 zs#uxf78~s^@F_r#8Y{D!T=Dw&+=vy zp>%sH;A#5-HnpqjQFA^V9fwFBpk21`+Ti>GJkYn}yE|?Y&U+$hV_i};01Wi3ATd?8VJ(Qjqj^$TRa$G0;Hcp(Q9Nb+_np1iHlCO!*ne?8mHi^IzVYq3iCP%J}<><9n^yI;;%bJ@DlMu;Ph=yWX-| z&(~fxY~!YKB`55(wE&KS|>hFIEYAS$tmQzu}VB{_`ldxIj+t$tV@1jus7 zX>rME&h47m=_26E5)4PCnN{V-u5F)GG*0$9cx6&%%oSr>YW@y0nYlV%TVwD=LJvFD z7&3);c=Aoq;N<41t4>`pf{vfRZN+{QN{8(uTG%5(H&xr?)SG*ChxAxKouh86Wqj%dAVAE_ON3l~^|79r0yNyEVUN7rp+M>y*I{jCx*pXfe}&jX98R zvBAy0Z5&sUIp3|`?cDiYM~YPLkebkySY$7i4p`(ON{Y^ z)2KIwSS&T<#=!dndJa9%=k>{*FK#tyTLB{+PU*Vs@>ud0MNQDz$0M19Z<-*Pz=XuPjV!)HK1{z93S}Kx8rm(k6b5osy z#13_98BBP@N>TEV4pFJe*J^CuRLXU ztJW!Mibk0y|E%K2Wc2~Vm|QzEHS6%E<_oY`H1b*9=+;l2`LTI)B)UOWl=Dc>%Y`Z6 z;cWIQ5?Tg0L4yUA!bF~Diibex^J^nci{bF36W_)U0^}v5=inuQetYz>rNObu2aZJG zw?Sw1BUUxY-wPnDs~%0bqd5TwK-9;ayz^lS^Zd7t^8#Dk<%7!uMU29?QU{FDHMbby zi+OwbE+$IZB&_%?F5hRbjrLBTLB3p9%N+Gp+?mCT1-HdBZ!`p^Rt;fovnFO6I&V^>VN6H?4^iyGZDHJx5@Q^_oTZrNy6p3y5~ zHu>?&*Mm?)^CuczXTS;!5vW4&(oSd%p=6B_%JgYG2ZrwaJw0ubXvUJ4STt?aviE>h z&B80}yw7(pr4|P|8?1C(Di8fb(75pZNU{6 zS;g(gum|)shiptH{f407YN3!i66T~XVc-F7LY2$X=jI&Q33zy!MX{UXLisiaE8e790Og})wH{ov8+IJ=z;N0 zScIQb>+Qct?7!nf!5xg@NHfk>Xpq@gM8t}!wMvxN#B3qbU#1UgmJY+XHedUP>;k&> z%}I^uv9{|*?C&!9l3C!qhCJ%rZ$aF4gi)4voKg--@&(UDd%h1VuzLiIM_R-?W%7?$ z<)l)J@i_E~mJDwx>N$&>4tHns=urx{0b5UNf|HE(Chu7|tCuO9kJE0phImESm+V}X z=d<}kx#=Ly4avUbZSg^;)RJt>Kw@-9I{M$b!0vI2S^?I7HskLqO$QzG1;#uW6hdCk z5^lhDEjWy={T^%#NYx7UIViYAU@+cMoEA+%!j=IHIDT>gBAh3usJC!^{G%XKZwIt*2Elx0nULcvHd)JPGp%^df(7q8qKEQmaZ@kYUZ*z>)T zO9YMYMv@05)R=1{`8fr?XLtn7=VYsD+w0U+qc^>Fma?Ya?IloTqx`IiHejI#2?0$H z9n01~@cxpfejH&8>;<-z1T)tk_t$p9!HS^#05k?z);V) zdWp?^J0DIf&D_@H>z4Ss*YrfU^;2n27dLj2W%>kGENmU6OPq*#cdr6ZL^<(uR;7vI zb9K|quivGGRUM<(goh`|!;jaxcv5NB0l611TbMI`oRe(*Y)K5?@~4otL^}EeYI8#v z?@4#kF0<`gjEM`8$afO4jOhmg1Y{8_Zc6jf2kvbSKqM8m|=`Clj`acngD`f&GD?c!JJGBskt%k!cLJSHr09yXev;v zLDoUPO;vIB$5Pt{!v+j-t8}03jN!-mwYCAh^Q$i589}6-4LeaX47R~^?Ec{dL zNh7X}8|nI|Z~d<$TSWva40UW$PCV-$lw^*^Y#{R20U!t<^wF1ia?N{#_+R~a0LUp2 zz|CrmPh}IRX&A*Kd&qNrTKmQ|u*}=^;Kl-Yu?Cd)BQRf1 z3I257-)tUxTMb5lM0$+{dBMCpR;unf3uhTMqR@d#MY-o^5TIEX6s4Tchx4yJxI4;X zS8SCjg#bv)b&dE&NrZuv#Kv7EN@3rU=dY`zO*8I=X-Juht;zdN64;|RVf~5Tet(CI z#2v&rz`cr*3@DK`5`0X$RdL)wQ;A%xHdoqua6XU#6pA4;ROOuINBqWV8ws+*F(*I6 ziOwdTDG5=&F4O$+X*^Hyhl~}XwRVLjW=OO1NmF}`-&q5R39Az0|3}wbMn&0%QQLGm zz|f5|bV+v(Fr+XvNQwy3DIq9GGjyYLcS(m5DhPsfNk|Av2`GXf0)E##Z$8hvzJLC3 zEtlNf*L|LQAA4V#f2=OQIV#1+WQ2HIr5t}qfvbL|I08IX_W)_V&fB)^N?t&;2$9~ zSCL4npgBFDr}S+;Hes(9!Au6CV0Lq25M6%#pTS^tR9gS5M|k2J9_K z;60#_c?{B+`CeU|-q^x1W=@j+Or&AV^mARungOk$t0JdY{>ro>$SYe}F@q2D!m;sC zb*U7Nil!2c7}F&hF#fzK(D~Cf?Q#`Y6Yo!U2{J}5ZA;Z2g=W^R5tTbUf!1{WZf%NH zM5(4)zc@b`QdF?mo)Y0r$p6%-W26{Z;$<)^6Q8NGLu#MS?vehlE`UJ^d5Ga@n-0I~ zoJHYjGdM8Q4x;l!{q|YNS?^u_%r4+&+r3;&rRD%%&OUavyR2(TP;n2yuT&CqmJ!SE z6h#ENX?T7_6zY8+&*_|D5^j+MZyz==0_Z*+B=dQ7+R zg6=-nF&LvV3Zr!2XKS}|HJ8{yCMihqyAY6V(z0-IUGhs2FJ1yvh6a+-=cS#rEB$x& z@3|`w}c>tn;*hpc=JfL!bgsp*om}=&@xw+1=!ojEHp8>CswP*qNEGYNY zS2$%XahGODz@JtgO66NCaW%JXIKnO5QG%njg0dwqP1GXo^X0DUiAj;=?Lo=AzEouz zeA=h#R7AdI&F?g*7^_^fDu`)M_tG7H`?wj?@1;J7=MdKy(rpEjnM~P8d7g^~e+@wn zMD?aW*k4G-PfKRv#c@|LiQe|LkUyQgyz?h=N)0?t1caSjldO-{!~6A~6J}+p+973<6nN-Iy&AJ%^-!0lINJ3gm=_H5ZRDb;g+{zjs9=l#6HksLcuDZ@ zrveDFI0U;2Zo~voM|+k7)`D5c4zY0w@SH76GUy}aPiKu(#Xn;F@djkFGUZaZ2wI!N zG}ZsGYr7i^xAV^Ozpua}eF;RBcL!jmN;;vm13Zhji%e5&Qo8aT0?l-1W_q1XSzE7^ zs_vi~;OlpyQYgPNDtEzoHxgRN$_WTUfdpjZj50DR$*}Lweb@n%Mya;D3{umP1Ppcj zH3i**YBD&kZPw!w`zQUu_3kY;rWM^~pXN(6@!FOQjICRZ+JyMTsdb%pGOUV;No5xv z*SiXg0x?=&uUL5-d*S!%mMSx`)AuDSTOtM&lN0(qHhoV|j^)2%MBbg9EtXPZSYXDQ z2ZPe(26;rpDS&7KVpxNmObP)A!g^zB6YQ`LU&c(h_ien5848fQngrvNWJmL3J~Xup z;3tT3e>~yHS60BN#G5sGN>}3JjtZrJ)J_i@#rM5HK3(Rw$5!v)`$F-2F3)*$N8N_; zODSG<4DXUXvdhs%dJu|0lB9vuIzOeQG}oxv-QZI`yIGy6$`_#z$2w-fS<93h&B*F} z71W~aWd)=SJF3$^VuGy<7(#$xuz-d2>Bh-8I9e!S$ zJ%3;th7s1sOXYLS_cN6n9BZ90(o>*$mddEYFET(ALLhVTb3#dpM^d0^fb!lP34h%> z?7mK}IO?yql4UidYcWvI4vO#H>)_n2sKzJmRKk_Ix`cf>Z|Uhkto-(V=>>-*cuQo^ zIG^mLpJ^ns9`x(;yKWf2!+r`fO_|*?RpQ?OG}V+e#QM1I4;Yz0AF(;M8s?xn^lMQU zLF4I@hzr~%`B|vfx6%(V$&kxO0brgRoe-W|%M6^YuKE7=%6lV<&NTJOoxFFC^M587 z;_%7E3-vw{V9e|WBdO9uL)`JJWsjF*V}L*`c3TZj8It(gWZ2`RUg;~MqADcYG*7Ks zgo|&tF(v!W>LuAgT;Z*w(U1yUn-e4K{<_^WTs29M z{5{~^OHy`%OLGLg`8`@Bftvv7EdW!62@2O3;SYX7e1uPr=`W*s;HLu=vpg0J^Vbd* zS-w8mDyj!9|6_zPWUBx5j8>Vg%50f!uf#}Rzfqj|=IPSH2OsM~fqn3Zk6GO+Ld@M} zw5)fAh?EloIJ(B-o6C%>hHn@a5>s&v*Qw?!GaGr|8xeCbbV{kX0y(foL$hgn>P4=` zYA$i7x??`2dY>JsRq%@pR|`j}dV}>J-=w~EyKIG7}=0DF5m=a|I(EBjDN>S8(cjTU!{+o8`KQ}|p?*#yQq#HD_ z+$uw8lD(snQI1r?wJ|5(+X-ryOTNH9pq2aj{QjHJn#=K^k^TeFIKvWu4*@9cLP)j3 z=Qjfo88^;7%IWujO-lV(a#|Rq|Fk%Y)@2W?EZ-K|lj-D__rUfN=*swxNz?-fc?0!C zO>x<0A`zpqY^bD}TSm8N054S-nQFY6wZHTM7T z-k~X1DW_rF2}nJ@ty8FEp0$v1o%In+_Pj0Dav0hW#~={20>!(B>S(*fG%tbIZ+~2R zGvSUxMyF=3LD`fB`<@M?Ie>lU%%ms7E%BG9BTJ;+E_<=Sn*b|Tg5u{#%39p7|G0qC zBee5=YfBe+kkUmQ#eG!ghn+y_GK?TPW{!mS#tiCfZ&-94cJGS@&yz7rztAowS9=Aj zLsV*}_A638!*AGG{Y(ZQ)<)M-iD58#TBw3ey?(>N^1s}>buw1OH|f;D^IH^20&lw# zR`@7Rx4v=cZDWv%6rTssg4YK2La}6a-wnu7Vjn~8aK{gC2zD0jbsE}aSCqL!V?+%* zWKUI1PX}bQSML+#45IlQysR~X-peXDyf^`RPF%e2fTPvN<Fk{_GA|LN}k7iXrtx z&f9@wFvO;he^1y(F3Ev&T(Ci^$pa;&%p@Kb>e}e!*u!;)I{#W_T*N5&mN43;Y`2>_ zxOe)U^4(-g-dul%G1f*W6wdd;Baue#L`sX)x<=*HO!7WniL(Q)KpQLk&B5;M_Bmas#!UBqvJ_GDX zrwK9S_4xw^`A1&*+*5pzS$B}Jspd=bOaP8$my3C&(mAUlm|ZsSRp=ESVsbe}7SA1m z@G^c7K2!&)lnae5dri(`;P>%8=TFqfh{BB%*lgkN_w zWB}u8-dj%(V^3|JUET>~Rss;g%g5lz$H5NgArWCVLThmnxVD~X#^Zr^1+vS91r zY|ix84xaV^@-2I2C_M=&n6iU>qg6Ntu?sskI5J%cO_G85E`7vjZ_4V-%^I{*Joz_E z1xES=Nbtuk#zuKR?!QZjU1P2yw*pv7)SN*&K8)%1)0Z|;aWL`k^<1XN92VveW;TK4 z#;=tVP!(Tyki{E-OY{Z5-;d4(KL;uYDKan03+acYC{cga_llT((T{UOdRiI%Cg!li zz@YarT*7LbhI(4O*HV+Ps*!4z@jU74W3{LE%S{9wtbN{dHtA6FXsUj+93vv_IsIVq z5)$?cqi;U$T(tSGzG=qR-@p8^>Aqu)+yEYd?NXxQ{q<-~tzk;!I9f!w3y1(O0l+Y; zn=7eH`^-h#{)XWkJ+5t)!7w7AG>+0lJ0}TLka0_Yb>1A8JNiZ@{~ZzVhL}6jm?fQC zFNyLqq=J+|bRdyQN{}_{wG_dw_ycc;d^6fyIlH26l$bBfH|fUIsZg-lU-a~W&17|dOKNL4+AHBJd0^4s+_0rn5+w5 z4buct5askx9@ivuQBc=wPia|4ek160M&e05F4%LgG@(EiV{3V#3+;GRzc}RBf-Sh# zjaP$T9O2YIB?I79a~9*C&&hcYeEW#A&qb}|oF!TE40_Y9DU;TLohC5GW~eX^%D;9n zUe6<)UX8eBjL%8ib25E<=y#Bq?3fBGpP9T++em?_T&>xVK-N*qgyLaIykK06`kWrb zj?tOHq6rha2y=S@1e$Je5|1acD#$|VEM(q+&z-+$s(|DP}JWGxgXswS7{#EdJ9S#kEoWogt1OZrn*>}zOPfmgAGW@EE{ zgAt(lbgH>IaJ~10d4@vGZoU2e802iaz;Qc4f!{H2;fjC!2GE`dPVChbXz_?GVc(re zSYX_Jk0=^bqMv0uP*t+bVPw)w%`Wzb%7UPpxlgt2bc=Ur_h#8mm>f3bnV1oD8AA|)1L?csG)d3* z)kp9M`C77d4c1ZuI3sED&eRwpy$q>H?jiQzNXFlvoGyTGgx5^Ud$#jeFI%+S?Mh7nVR8H)Hn37NeRnT9qdVeZ#=z}p(3jk6`u zOFF0-_4*7m$8pCS=9UN#2T(_A6Kr*@I?0pMn%k#-6u&J;QT&2IwMdT*5QvI_OZ8L# zewl+QunD~B*QeTn=N7%wDW2~Oxl=kDY8R0eYyTq6sQ@$dB8Qx~iyMq6ewGDyf@IbG zDG;tjnBWmuoLU@V=8P$wxii*2Su@#9KO6;E;Ts%h=%iVZS5#0HRxBCieT_kGg$sw2E{av^)NbK$yLd_%Gw2sV0ipcU zzTMYI*QL18I%8MSPmF}rB3SKgtfl5}Br(nWVjnRL4}WF(@Gd6|PBs59@OT{gvdW zzAu*dflPX%);wURIL4G$XE-DuWoF^b86$g>gzDH`mkB0=*vbKMze=@%tH9nPAc6dl z;tK$8gp1~a@(9_r=3nWM%X7pdG?V`ZL_5U}L_w-PEX{&>>jH+cY$LcoOxz(I7tyPfeuQ)Lz$OM*v{QNy>y}!EGnp24~1w1luDZJJ0YnY;G3u6|*DIj2s%g zxH%A{h^yrlwl5#5`r3xwfn6csd#k)3E!+AD+z^FbNU=+e&SWFwWTRxM;gv087*h;3UU zHd^sFm~yiHMXH$_AxG>DKuDjZDh_iT2MI0ew`p#r|3q4T=!=VYd)!3p@m)2gd z@sp0Yds|>6%07I1){|OtexU~YK+b`UcHJ<-^&bCD2@mRQ0cGB1> zg>%kudoTw9S&3_l)YhcdlkFq@Q+Be1?EpA{Kn&aWHQe_`nevZJ-WzB-q{Zg588mEaBO zFs}8K?aoBT0EXsuJ_ydf*ERZ$8OaGHdNBqEYw~`c=b(wHdAT;Ru*c+Q$ZK4!Z~H7b z&C)LPJe(>%kAM!c?{3lk1&@5VqaPR`rXT%mWNqtIq7gTdV37*`US^s8@1XYuE6x_n zoPh@N-7e4HItsW-6gD$~9z8NunRrA^CVZuoT|L1|+BZ&IVYs|pyIKfW9a!bJ=|fdm zv*kaQ@aQ*=OIxD9Gm6@4qDkbzZ-uL@+}^>OQ&$o*23BTrU-J4SIx0Z55TKHPCfv0p z$OD2g!w^=!GCjQ&6f8Biul&b?gf*}oSYxn7O~F<9ef>s(gS^>^_@HISE-Sh0 z_=ej#2hmk3(I_%dImT`i~9K9o2S7!0Ze7` zhOV5%@vrU!e)20{bAemosWBM6m~Y{fTJUl^N%5-q))3F)!XzFzci&8i5NO=i$#Qr3 z`Z49u=E6_+`6wl7}rNyK)=h~gGLZ9F?v6Q^SL=MPD&uHyS!M`Ic=o%265&NXna2`ZU z5A_SeGA3>=;H-W0LGeU*@=fcfbl+d;^gf`?-4C%PgsXo8;ez`Ad79H>PV@WRD><(J zddnvRp#91NSdP%Hb2f2nbEsvQ3 zrUtyI@|8%c8l$#c_(%WC0W;wzIi1DV!)s3v_+DDre zmx>qpVv7uzmdqE3yHu2z#EEP2gM7Qm<8-P}oJaht6M@zf?s+Y-$n;m}!5qKYW#) zBOz5t?S(7+`~*`ciIR5*QYK{W(TdR0)E|s9a|mR0@--u#A&Rkr80YYgkY@}0OqYkR zexfi$k{l8K#cExL9{*_9>JdmDT-dt`5LjXM~J!W~dnJ6VoM8*^NJw}!Q$#N*vTk7kg*4uLivf@yu zBI5FcS$J}AD`gY~<1u1oL>O-*7MS28fi`uf|K|h!Pwff9l1R9S9Bwaq3*|aYiVCAkIRSG6Nf4zXJP1 ztpK1i>rWQ0^)$8EKT23)$Z+r3At^HN>Bq~zvsZgBfe z(YO7)zI{V4NzDJ-N2q&UvR12G>J?#LkSw3{(aLU~Ww7;r230r}N;37=5X0@8ULa%H zEIU_i8ee7d%=iZX)N9QM9Jq0vo6L?@Hf#cW7-CU!cQ0?qxUx?*t1lJv-#DCjdj0TY zWH0lYwHiGytqq`Mz8_S2tKN!!>^h}JM>^o9OaH#4Knp+m!6=rhp(3JJ7Ni4>I3*F< z82OehJ4RO7Cv;1BPm!AGL~0WJ^3xfTN?M+ocCe3)?M#(Mh$fzJ!n2EM(V-nP#!iWjnMr{Q(yBX+nuE`G}7-bde+4UYsHy`PRQQGZv}O<)e0N zl?DD#(aqt#x7EQ#v84v9GP`U23~>LP9VgsNi-^O)xOr6)V9^ge@od#PV zAB$7yjp)hk-AP&=F|N!X&Yetgdumu5<}U!01NemexMD)py^{8p6qSY3YLjRBVKx`! zmDP7%#@RGKT{5coeF0o+(_r#4Ytz!rVDR7dKDBx{MzifY2E`X5$S&3l=bKR8!{W_G zKbbZ}7f1GY;0)BHqhxtcd&PpiGge_H+@x<9_VDaxsW@){#bS46EjXq6b%r<*nA1zX zP5^tW z)dm10%BfB8B4qZ=xu?0=s$rk)ONO$p=GpJ#hGZ^i5v{?|rAi%A_HT^R<-O3PKa_q= zEdC#h1!c^HJsfKGXPyz0R#_{2@5fE*%?KfA4|lLwo*u%q;mGG5&b*6~83WZObWI#r z2h?=eM;}1;@6Hz;1<+KImP>uiRP z>Xcsi?}PW=`W73D*O;Knk^Y4rRIuM4d`QV&!80eoceKeV%}(mJga z24{B2!Hl`#{n!z_r$Ju(!07VZ`a5@^SxSllaW%!@Nk&@^40-I$#8!j)0+>bWi{oy^ zRs;>Zo=bh0n)zMNZg5BsnhZapb=S0ycfs?!w@#5saQrRKU?P=WV`QQs8@!@Lgst%j zf^~k!TfO$yV0#svE2lL*5EN61sP*~kP#-rr6F8kTShqh-99vZB-`d?v{5;(kkNc4O`N*62K0eXz-^qPZOH#NAd}^Ybvmg{na|vjADnCA1XByAm;QCMb~hx; zPMcaT`0GD&!r083v2;D$=V!gDwgR<5kmxGiOoi^llzvQG2SQsK!-+Cj^mVi{;_kAZ ztIDKYcb8=r*MWaU;>p5~5AuLAWtq?#rgcj$<_k-E3zi_}kjfu=wV{)h>?|qtd%~Ck z10u2%hgPa-?6oEHMUaucd8jI*$SVa4-Ezni(xj;pMXQiGDE;0_$BqYoo2Rix+82`^?3szh~2%>RpXDe8bBjORdPe&xlzw|1-MOYPum-3`*`x3(ah zjeHRgkxKUI#+{Z-31fGkV&TfV$ut40kaQ6I)h&;pi9a&EGo!pkl0FikkFERVTU z9om+6v!Co7fj5<^1|jQku>g2CWkHawF|%5Vl%^3|G~3|gqaJRhmv$Eag9Ut_Zie~8 zUfMu)`r7g3CVgNH+icB41HY;9=XF}Zcdvi;#r&Bl1*2?r{41vZri4fWwiLfVC%?yC zdjU8;1|=F!1tH`{v(vv`{cPEo{8x-IHBzsmR{RI(_U3)FO7)t}U@qwRh5sRDI}ui=Fz+IEQ^sJ)?FBZD1-E*&u@*$ zC&ARD6D)u@BG_&p>E3j5%^|4of-m!1DgL4D$FzoFrtc6v$~Rl6@|?L{qV3A4IL5;1 zgNpzXP^I0J^pNxioIevW!Yb!qm+nZhMp*VaG@<0ZncL{bH$%=wbO)dCX+O?raM6w2Swh{id8R!xcNM64A3 zYo~iy-p^&>cY!HWoUxNr3_=+2O`YJmeB2P8L-Oa132^r*xR*3OzWgy1<7D^gu2W>L zKV=+M)6}mXcb45x=!~JJ1U~cn$2Ze>Qa?i-;B=18ARA$x$%jnc<#MX@Kc6|$V;qHH zqf=Rr^>yVZq0C3Dj)IgR?1#zlhf51pvw3ubca(mh0Kg-Y{QPBv(m-zRsHe4)o z)HKAcd$&TY4MoN1YyUxqDa#8Rw;obaEDMho%N=e)CGc>t7+?awGRE*Ub#d}kF*_*i z7chfs&>ZGwCmHfHc2+m)YiOMuOHikllq7;b&zN7ewm{BX6({7DkhG^t(`mEqkL!LZP6fu#G)s~DRL{T*eR)H@D#lYPzX zsIqI|l`tCh1|UCv3V@jJ@CsmR<9vBciN)ofUJgI4)IuxZ$)0id-m4ei(Ql zfWfp)J>mx>!uZ z>jN1UI7!A(E(oWXk4Zm5J_6%|Wgs4PfVp31=IjbsVvL4PJDWZ>TJ^85VA0yJwYZBO z-u>z4(~7h3lK|N>PUlCkM_bNi>|GntOeKaS9M3U0*94!qK>R-RbNuu2{C`rSCoGs_ zKVZDA4I_H~9~`UbHpOHOWJ2lh6St@;Q80~4G!#%>0Lvk9c|RAE_GgLT-@C42BF_HbQ_q^OeDd9rd#_Hwh9CL(8=320U5Y1rw*}s zePFr{x0j`uK#py827@9VHe!>7sN+8+DyozL4T~7%963*wo%ECP)fa^rF$S57y5U!{ zpO8~~5Zlte^44ymeGdRELS-i8B>~@FMfD6cZKh(aym=4#6TZH{7Vq=V?jNJRN~9%R-*EkOvh4>slft%75<^-vOxl4 zxz%oIFu1YBJX}n8HDq_x_qX?hq(qcBdquuzv%nEAMP$yTFb4cI#vhM>y!qU^&dB>R ztR)Fb2{7b<&aGsB=&2b7*D%VSLKl@@rSC2-pSa4Es?0?$z zv@SH=XFI~$D>|A%?az*1cMB?A|4811$C)~XmZ9@H?-ZO)p*B#&c>4`68!$p!L^oEM z@x=pa$(UY1dMp&IV3-)IoB?&L7HFxyK^DY3i;R!R{Rp<=?PxLGdbZi5Pr$RZB^MF2eus|T4=3pfcfmSARj39_cdku&o)8b zxB^Do{TRdPM;!Su%XPCLG9^^mRMosOYokg79#&0X15Zf>HAUONva9ElXwUWNuHMTV zR;)(>Sa!3<8b*phX)#XFXwpEd07OeK?xauiTYtV>BIM<|~PWAuyD-5)42cq?J%qRa7hJkD4 z!yU8#j#j2+{)kE8qH`v-A&evn{Wb&|Z4H+EKf#9QI6TM~aV#CBrKT)y&aa+vGtg$x zSJ28lD^Ij4l5GI&A2-dw_H(cNVG;WRKNku0@ykkHibT8jPJHGC+s5Q8BElB@&FPO- zZ!aeSBYA?a-6YEtxsD~9>}^T-&5Ij&$b?0#-xeljzy1AM z8oPm$c*?ibRJ%XpV(r_fo|iagn?ESoEeP1FqI%f_WI-GSP+5#rA`~5^@9f4D^Itvw(7B*BiQ<<5`!XU(1d=D5*Hv%l8&bgY%FS+TJi z6$meLF4+V|>mSW#wNIg*INs9RCLQ9VVbDHsD!+^%lO1-Bk~Gxb3E9O=(?&&lb1}zn%SFbabdxHR zakZ?e?%1mknd<$0X9H?+^Ps>%r5Ch~P&Qy(|E~eE4j;CAU|wnmh6%o(w)) zAVb2DH@sWSCaoh}jY0T@EWnu=Fpv35i>JHP|8-LLLwPuHkafa$9s>Yt2wU9RKylR@ z$;R{n0W~nv{4NMe&M@j-V_fT0s@S)MF?FWY9_kpvKsN?sZS5#Y7j|4DyV|A;;V`P?qmJT{tr0NCzA{reD&r#mP0meC;52PoxG+3^=G?2#7`C($xqJP zM?PLXScr@^-7h)P2rm5kiC|>Lk3xfbbQC(*4Onl(OxwVDfI7QSP?e+dbzU=u^Y2;S ze0u4PzKDkEM0OnF?u%*~U_!GoN*9xu{RhppuzYeFNHl=_j%gO7ATh*;@)kxrZ$Dy~ z)}7=6xu-j$0rXpB2J@d4v@&{4k+*T7Wp@`6MJ2i!f6d0cb7^h6$x<+qvIdAIYhrJSf=cnGSoc}BN=miKl zjdHo`!UMEEZDBnbRZgjKfQnb$*dh^`UMo5&ihbTJSkF7Oo%`%q1Z@sZdFzG=UQJwJ zD-eD8c?75+Kb{>L_mo?$%`xTqJQoRfen%sE!GsRK`>J02zYvfh4x|d|J&vG?Xs%~; zCWt;ariLggUY*R`3s87&$+i8s);;}zkc@e!q4&b&_bw)(w}nV2%js0MQ@>5NkIo%< zAn{bRUqigeR@>M%o9z;0Y)xYDBhb@=j2Nk-n2R9rmRr_je^1H76;U1wbxbBO{Qf$y z+Y{y@o*VhL_Wi?lvElse6BG3spD6L>GqO&TZu=uA1N8)gkgC%p9!^6c_-r58JUsn1 zb94lrbs_16V!fGZ)~KJgW+rErqj7ykb{=i{WXgk)So_?)EA^gTP$K|I(nB{&vwJ^x zO^f|@`)1P0cjra2bjCE+Yzzg^8|z#wHr&xVuTBcP zJpBPpj3Rrs)Qb%H3ogro3~hErQWZW-@YbV}SVP+bJbhQ`;*`e&bKQ%Hz50u7OA-l! zaeO{fA z9>}0XSFy;s)g{C7fpX4qFg5ELqaZ_qE&c>2@yQVL0e~udFY&80a~)6L<{Uqf#;^nn6TF zJ|wpncpl35<(0vpY_s46%Lx6k+jcJEELls4-EVjI(doP^CmQ2vc=!Wme_oeUIat%W zl!pDB>>OM(^re+jSN@K+SQR$wlkcy8IQ`S|(}KPsS^z(Ihp9cd%^>IRW|EWE$+pel zMaQ1M1sb@wDs?d=?=yBV)7gZC*9ZQ4ru(9S6(b+vAg$I0FTQOrC7P!hDH^Js!6Mp) zq^Jk|Yxjz10w=)@bo~c_fCxH+_1(T85h+7Hj^7xVpHkW!N+z$C!j$!O>*6_z2+vZ) zH^0i>1%H)E3inU*a}+}n%iP#}@{?{mHT9P|&xPTXqG+-$Sx@^iGI&QFeG-road2h) zt8e^HXZWZ=5&)v;kW`y3><3V0ABu=lq!`-_Nm3$#EL=i(@iL;A{o_JM+~BWZR%0(?f!!Je zO+C=z7$kc08@>iQ!R{GZ@U(tvY>v!~@Fhtc*0TEhbii_vG>MD`j4lGiyU3VQ++{m5(6oIfn9%y>S>b)x z;(yCGu@tbq*f6LhT>pOZ%q^gT=}$o#e48cF;Cf=jg}Jm5+kiVF*5M$&`&vP1!Zy(;>49dayJADLS1QJYDYM(b@uH0TXj4qb3(M86Y2q18(&{Rb8D;kZ z<3+2vsCrFawQc=64Vg(!Ykh!xTKY?$c4maako)4&VgIJqr=T1a7mYd8p(@e+lZYYk zYEs2k&NqRwfeF4h!pjgw@v8X>iD$}ql$(z`GXLQEsqEdoO@lj^fznZ`g6KT+NCU}Fd&8YHf{n~kZ)wM%5W7LnsA0&TA+=`9rr@?!# zq8CNuL9`VIEKi@PWfHM}&49vq*W}m)nV>UtpD%`lVhw^rwK$zbp)4MFyydmBb*&lV z!hO#txZ~;pj9MjZ{2*QxeOUm}Ec6-Sg?EUI2eWyhtEgs>MCS9~sEO?uAnaF!yow{X z?;qCAB#Ij;={ng?iU?K4G%z(c%Z^a&Za+xCc6|SXge-3@43|)LmPzyXi+7B!ks0LD zLiDzrpN4B{8yI~aG`26fgl&BXKb$B@vG4J3lf|Jt#Zav(77xRl9JTP9bMZXttIy=$ zLYkHHLaidF#Zg54XleZ@m+Wo#cLpC!qfa@Opf(H4=LIDL4u3qJ zr@cG}Vg_;A6>?E)iLC5|;gMP<_8VN>3A-vW%-zbzEnl2LLw$G)Mr0uSla|Y{?Kf5N zMdN+^DjzUMmCH65Uw8U5YBfHXvhjHvC-R7Ju_#rUt2im|ZiA-?Gv%ek{S=aOs<-zN z?;FYeF((WRdwsis#cNt7W|5YgpbSos%wTV6pQ^T%;$1^S0YiR=tdpBiuuY}(5d<(l zyrjTaPqJa7ml2W|^15VW`SAN4L#$YNz7nr0UyOjr85Lflf0CK&O$8@`FXD2ysA7wB z{G4g~3flR@5tCKm9w03nUg3c$_ES-n2w3V-D^++@$h(Zh$ zP7pFtDa`ME(4zhcPWV&)i<~(mDh0^m(kJPb3Q|@t?d0hkvmIy&z10o_W-S0()0>i{ z-d-yawKX6Gd)L9!*>Q1Tvfp`{#RBe4yq6dH2c01UUDYH^jRAMdI+tfM^GXVj06Vwk zC+KHlkd+Q|4F+YB@Zh_jSlps8Q!NQbW8_DbO1$~E#<&da->5F%|IMQp@c||+Tohi% zgIWcR38Quaz_51Yi)Xko;vG%Is>SIAq#42}g4bEtH?IfipV&<{&tP*C+ykvvPS+*u zE1+P@UaS1m7>a?OYS*MeqogE9>-XfhA588;fzxUAno0{|K7UL4!>D>0-V#T?bp(M? zGTdj7C&kZU<1E3DyoH<({UIw-NM{x5Y6sg^aOFc}pT)jIwxCd8&pOPu=n?2>el5c` zrB_xk%ziZh?$o|Dr{hi{Q)V3=$@N$S9sjeQ*12R=^w-e6F)?V&F1Vs$8%_CD8e+r! zx5}|+I~-IsyyS3UMgP&&=$G82uMI4sr2`_)7VLo8^M`)5Tf=@jXO{{U(H`%Ivgsl& z@@cK$R=c=fy<7p=xv@0AU9IA{Wc@gA@LWR)>8ncE|_@lm3?44Nlrg^|19HMw+ufLT|I?{?##5g@Q8wh&mUDg?pw^x zZ2CG*SxAln_aw~XE=C;ugql;+GNw4?oy4lg2(GJj@WbR4O84_9pJX zpT-MH93En{Sf0Na0*=e$ycueggN+qG$I4@I z5>5L2;S+yV~k!=vv4Q;~%Azm$z( zztc{GzAg%N>HKYID>#m0gk=4}v$Eubh7um{tq4i;O7~e!BwqKI6zq1l8Wjc&9XJQt z;Ds0L!S{dGkdMQE>1rd1uMqD1Nb zz_kspa?dwyXb$<{ga<5r;U-c#-dhDg{N6~uD6z$Yi|u-$+SO`dhzIKz0udXRe?cxw z)dbd%mX$EeIQ#791tuIwLxZk&kQyEX0ttFs!;EEqSqq ze-hj&i2Q-sYaU`Q)*4;2JAuRKM*}~9;talB@HnsWR{KY`GVjemvx!GpE^V~+;;+x} zx9kt^UC5+xpcH>^1;vmo2yu`w@6w+IWknKlT=PL`!Ut{Bv?ftZKO1ViBxiDP+J+(;x(v%tg6@`mP|8H^cjb|B}qJ{!#tPwr02Z`p!c+>*-+);^{FbjUs4|C zF?U^9Y5%rrT!M3sW*=YL>idDa21pkqmO1}+o;lwf&E{?J8ILL-!e`;@+bNgO(**tTf5nh{y$~eAMbsn}uc`EX3nlrW57B#b1G! z{u)N;yK~ro&j^tkht}7vQ{->VbB%r1^Pdsy8r6zT3Wb;5X?5m)pvTL-RL!3{ zEv+B9XqL<}7_^rOqHM`6Bfn?j~SpYX1T zFAynTI`5wAQp*pO-<{W5vmQaAB&KjUBfwzKeyQAzG4|hlO?fT_yjg^m&f(pPHF?XO zw{|BtVDr9q7GIL~nS2NdSWlvIy4o=p#Osq^q)WfilEZN>GqLoYQrrBQw4Z#mjj0A^ zjoy!c?145DS^rZv-^O#sCHI5*IVkSiyp|^iZ0vW$r6U~aXG{!JUuXeYHhD@$U^~#w zZtkQzIFyAHDdy1~CTpd0nI!Vtn+Oi6QDFPzK&3sv)is7tMohovq+2g}ppCsmMH*+j zzZ*DComhd|3@(dwcm5YKYfI#tfE6LTWFGxW2^Y_tG2#}4=Qffx&^UG9llpaA}u3)ysYSz&mzOULid?^h!|-PAL`dm0o4J^iDVAC7Db-Eb|N#45&(LHi$y(8p`z4M6q=u8}>WPPh3OVngxe*dV{h zeDclOZR9@M5Rpm~W72~`xxYH|WY3UKCOOa#zMe{mfG|~2TIve9Apsdp#VKT)@J#76 z-L-DDT}>dyY4EPiJA_cg!G$cl-whOrZc0jEUMMt{BT?_=>DKQXu_{!&E-di}D1hx) z)Vc^pd@t4_tN#%1D@yn-Hoi2<5o_E&d;YeVQHv;x;J5fl0^J6zUW=ql^%pLVj0>pL ziv2e&UAPY(?@%x08$1nOY}aBci~}=BkS4ITRybs zLZIgWWoSC7HxL%h-b4d@P-a^-CKu6^qk&c`qpWffYlln|l|HZfwt12m_QBL%!D*gS zfuSO6t5KfN?*;3NsHf#NO3%*{UhR8vsH)JE7Gk;<@eR4FSvhV+)ji`q5*j8rNp!hN z4Nv+~4>jE}L(Ec9mEfO|)!;}EFA`+Z47Wqm&c{v%6tsMwn2(EWBWeeyo_cO2Jd<3= zJ^rAAjera`V^}|VGyR&+OhlBvdg?dRLj=~W>4VSwiAXJ`?t>}{Qs-^J#Am1QCGQh# zE~@vOdu&+!aGR@%RO!EGIZeYs`bO^0_;V5Vs_#GCV>WvWD9ZY!B(_8v?vHq6h&HZz zTbPqI0Sr{+9$l}aUlEdj$l1}7nj~sc7<5G;u6fcB!d~nBh>@=$TQYw^nL;zm6|DS7jq$m)SsXMg0;bKK`?1IT*!pGHYvHb6f_zg3`=x|PH zP+ofOop1bJOI5TvAYgLDW;cXx|)OLw<48>G9tQ#u4`X@pI8NOw1Er1819-|>#;+~+)FebKLQ zvDW&}HRo>@xySha;)gJ`hWMxoST!;tkf>091BoYVFoY7p!cEF$Xdq~}LRg6t< zdo1LJY6qdj+aMf+u~N!cwyC3Zo!89leGOZoZQ~HXPKm!Ont19?W~#^;VmN)guxwV4 zTEx1f`|x9)`D>Jz*D+h*KFO87D@jd9iNrabseX`h^N(t?MJX?HS zFvX?R zX^(9byvC;qb~E>NhIx=C^yq_3hkUE8m5vunr?|aW0Vf+l-l>f1<@%FsKl;V9ks7WOH10ja822-OtlTZAxOk6&nuDDflT7*#BvAfhm=E&lmR(%K2OiH{@;uH{Ex zpz)mLP*ROpeiYmF&cbWbGu=X*t329_Agw#A&mmi>rf#lWqQC6J7}n%f#O4uU)xC`E zuBh(7VM*PeldqU>duTgU{PFPA&%ksi6~?Ma-1LA+tYOF!y?-YE^=V4Ie%cD3(Y5fpW2 zff}T0=gJkHVWR!}+UWK-a8GzjD9EQ!#p*~}Y7JjWhqr=4^o;XU0;nGiyt}qYOz@Nx z%RLcg`}bRFJWJ*K1t=NT0*Yf14*)cw}5^ zjVGc}h-ImkQJE*iPOtVjGy4`kH8ReqMpysA#GCBAq2`yp0Yf{kZ`BNuZB>GGo#0II zvq1>?O#QHnQ;mo9PY>pCbtbZ1!<&;5GFks|obOwH^&)CDQn~jA5tZWqCMwz0JqHf# z?K)d6U8%CWlRGKFXb&`U+q&X^_jN+O8Z%J9?{v;0T8CDTUjCZxw5&7#I#Kob<;?(n zfhHslG}mY`mrcf{J`5#08a)hOWm$I!Q>}w?QB@n6CO$tHwf{`qlMB>Xs8{kxSfQR< z?|NK4H(BKk^YTAFaI{y-J#Vr1brl9owgp|s8U`PstzNMg4p%#+!{Jy|9}Vydd+)2w zp>ezIe^V?Sn27B%C?>TqztP+M-_{>OstqcHEeJQ+s&FO^{}Kl?Kk1rGpVk~KBq0tI zd;H67K)yiBckQsEhnkfXfJKb;V6aq^5&N;<^&|&;MCe&!BfBSX?qA%a`nSaQS>|y= zH1RL%WEn|4Zz?&gXnw%mWEI;a#O)*GX37$eg<<97jKe-m4Gyu2xONQ}5}C$X4Ul#D z3f6>O97;^*bT@Y0D`O`bRX)rFy$DyZ@p?4kMD+NOoz82fbohFPxE4E`!w|^0FwLOn z7KZaS9`&;$B)JJRNQ}z#YE<{N?okySlT<)<4fsm8G=wT*Tc@PoYpgODtnt*mqV;?P zEf%?req`-q!xIeZ8hoe3d<$<{i=Y~?5h#(`V@=i%S{~u%O(F-0avFUj^d%R3Wh>*c zC>UP4jB6~9IA>gaHgoD)6Xnzvvx^5iX+zB#!hEvCz)Nqedu8l3eS}?b} z*fm$;Is=rV)NFsYjc5Xnf)){Qs`mg7=54`Cs9Y|_U}DTDL!~;oEA4HNpyEFv>r7Uq z<%2Xcb7(1@#L-_sqO;IYAKQ*45#UZm3(#CY=JF`}Iaz5P?Dyu`(^|fW9;{M3%!bnx zPhlp~8K8SVU#-Ta`k=}TG3FZ0U0tspWDwZh9w7}PjPohi2$oqn07#nNps|mP zd;0ldo<}Gm>X7Skmoa5IoC={7r#&@NAf;=c{hjl;n-d$mT zVHcFGwPP`2BKtlnV3XA61j}5vXBlHyV^=@TJ}U$8;foZXZSbcaFA4aP9P+i)05x}u z6@3S7oKysQjjjVCEo%+;NDUV_a)vG}QTKyjnWY%%#G!io4*Hh6LGyjYB9iIFKmR7y zG7xOlG;TZ3t94U8^<&U;g>D2pqwoes6jBxjQjzBeTG5*-i%DUsh+W`GNx;CqjpnfV zO!1Mf9Tv|F(-}2fx(8O$a0}NoI;B`Og6yHj&~Tyi-&*OTm-pFzwnuG+Yg-=aUjv_; zvsItk&8~O?Q_gbDZ%LYd*=cQ8nwPwoOHZ(kXT|pQNMn==kiD_2sP@rf#&5E;Fw`9N zI;p8)zB8gi9Kz%>MiCSPk}j&(tH#;v@DW=rFI4BvYDu^2%WAg{eecS@2~PY>Q}DS% zxB|nt6Ip$ADU|RfdmSAMMH2W2QOEss>vn}GrBKgNt~Mu<_l)!0HB~hH%lV}%-d;@z zP)KalZQG8)BxkTuP@&0x#vjrvwqT?B3>$+M=bPqn!Id6mmYH%q0*HDuQN0Hz)2kPDr5`vD@RaXfNcLJUSDm(i+)+}g{na*pf?j*qj?KQ%UrT8sL#)OIkYp2wZztuI^p`nbr*B8&?o%ygGm-ZC_Wmdr^K52)Z(tN6KQy@;ub1|N2&^S! z;FvoLJg4EtzLvyCIcAl1a)h-NVmM)}E9{XM-w~SnjkPE5_khsrXm*FxC2jEbLK>1f zm6nkAWECPf1rMY^WJ|uy86%VDcT^!{hcu%Fg&-f#J>TWK?Z=U9W|c(I#BPL?Z)n63 ziSYk-NhiZ#eQC<3d%jUXo=nlt7gy-P^JFvEbwEk0=^yi62SDF{xyn!_B{HX6jX8g? zD=fwE-oUEJYQz_M8@4NuHrz&}}YDVbo==j{{*Zodt0MeYF zcrkYVeN3R2gL7fHVqP4nM5t93ThyPMb2aD_A@ z&t__O?hz-yn&xxvX!&F591DMTpf{28sdpTU#yz?T1_?_VPBp18BMDjp(<+gyJx5EJ z_ZSk-#VIl&nj8jc#d}F>0os%I)Mjtrw&3j7Y@=riyzf(G{kUN8vxd1 z7|;Iq@phJZXrYt+GRYbVN7;_W#dyYfIxI&+|1tTqti~)C61^W9xQ6LaK;9;`HC$GW zWW7V7jb@2QS}Hx$kYf+gD~Nn5^`Nxaf7-onLI5=(Gx9tm&k$E?wdt&8VMatwYg;e? zhV=veLjvEAXq~xFDQKV6iLKE-rp4O7p!&)Wrwf}Z8Nyoe)4N*fe#xc;Pa@1??18k} zFuuY}DvHWvC5{^NL7iPw?bW%gtqg7|v{F=MCz%O1_i6>wq?wz^f7-IQp^Zs^V};4R2)GHSDDb_O z64Ax&(2y=^y|Y!V?agWX8~{2m6#eZbhL)NfX8M~QF5wEfp=@|onFtCkdj$P#I5U5Y z^Me+>XSmG1{6h~ZOnFj2oi8+-2TgoyXdKMUuD+J*oTZS9q1T_`K^=-qZ3JG2L*0EI z7q|3SIdzitZ;dzhALUmUOMkIE~dzt81oG%TaBKNa8v-ywbEzHokdm36>r zrvJ{i+AFQn=zyuMd6tY0BS`-}+~=7lMvfCx&^(m$Li`I2xHM}XFK$0Mglb)Rz&-oq zTXu8!&}3zhRqW*tlk2~CHa45ej~#E?Z>YvPX}2!{Yt_e;q1n2+C4!9uUg=W-wzj%Zi zWr}DSUT4q8#er>n2&)x$hD_`t=N{&gVHWQNY_+2m_4mJ1q!pp{VB z-2ziMd&p_b2E*Pqd%d-sybX05BR?KhFN_11s|%M5sHcT z+^aM)vBh9*20aYY<$3#$)ds#XuUoU!I#f=Cew9&6Dqsn*4ERYKYZ?{aV08I}dM|Wh zjKS~*OE#h*{MEaUOWz+~IPUzXY$85nURSI@S*+B zWz^m~dj~4+ECQ3EF1(5o0vAcmzA&X-_-{2n zQ}|vhUR({SzZe>SF?aLH-3cF3v%4>Z5E5#&9}z=8(~jNRvJU%s(lpVv>kHdOWJA|M z;;e}=QmK(eW@SD=A)?;!t^LKlsfLhsYouABv@z-r1ylk1bei>6qFARB3Y!IF(|D2f z8t~Lcy{mjH=5T>v^ik9SU{`Z%c>xfB6&>#opav&!5A+GQA9mz> z@rlHNPfTxS=^j%RDP|YGE5-HB4u-IYS#4#^#{$CuzPtm6QM$Br<})bxOKW=2Z>Y*%NU&Zh9N|D2)RCGd$7 zeFMHVn`F!SMxp0*^(-}2WqLK!V3!{__d`PcGXBRksD?8W zH7vR0lVZNEeyrWHv@BOjfC1!sntu_Z93#$D!dp?r^bsZ&kzC6YESWc7pbcYuyiiAT z3NL-69f92TJ3g3QZ`6jY&kQFwyh1IbWh=>fFwVy&1eKPU1ezr?D`15VMv~$2e>Lct{@MQn5O5Yt54dhk zR%RZ`;Iys79_HP*CI6%v0A+xPFQvqg4Ut&MX1&7zf`{h69?|!eqD1{DEB=OC?<*5} z*J_WN29Y?E0lvX?%)TbrYqo9^Xt@HfZ>6p&71uT8m7T?W_GNM2nBrbIHD!#WdfrbQ z18fyUp29#>NB5^Qz#!Yh@W1PmAY8N9dpC+x@^!5hm~r9A>Lm1*LlgLA_w^dyS*}#f zlJmNi7cn1FXJXpo5_joa3_52}A^G0l6sOpHistbn)15Xx%nmZGdUR^4u`$&bA`cUS z7GN-?jNJ|{2lS=SzayfYu%@Hr?H%a?ax`H;K7#LPFb+osZ*yncx87XX^_AVnCpssj z5F0RwC7@g$)DK+vvv8AY?(USo*hZR`6?h!quPKR-8bU|?*PetaPAL%KU#C{IBUqj}H>Z2EyY zt^gt$p?TE+QGOpqZb-=+W75kpM?Y7>EcprBWML~b(6t`A9pqs93$0rVELJgDZB_%j z{o!jl&n=HvsQpN7TP_S1b}<2F&B+ zd3V2QGja9x`t&}LaL`!-jC{0fIxur~-_R*gfMl=tQuxj-+W09a2$wB^(_&B~;ygy! z)RWYu-4d-F-S&lek@*V-L!9;NF=q5EN6yDt)n%Cq$eptPwX_kjVZ1d6=6777>#qAT zZkL-48-nG%3vpO6=Tj?w6WO{hX8evIkR#B2I`u~dWR0u5W8@$%%33+|HnhA1vr1w3 z)>atk;7LoC9Q-c#^5v>!0CNh&wNyNx?+_!{@3ei<#ET14cQP@AR{UD+>YA+Y_e6Tz zA`@E``hk)HxNl1q)}jPB6|~nW75~ANd@+hfHV_$*a&ypWMX?NB2TpLhjYd(X^a^q8s-1fHEn}2cIRkLh=5;6pfi1I;Yo6EyH&)kIshFMK{8HuZyOt8-cAKi{_R3%x_c7zpR4gK@j* zhqwvv#|B<<+4}_rf1ikX=9l4-3Ts(jJ)0l)lAnpFL)Q(63^9rGIqk^G!vAhTuLg3p=5y;`eLs z%=IgRQ^C>DdsRbAUnBAD1hVXTNwBl-BkgUGm3ZAk@|LVEC6n`(3X;bpDEu>Apr-3p z;nPDeLFZ&ch30}W@r_@U3pfP{uJw8#HN2CaggM;z_JQq$PW`H)yWsJ5|TI$_; zr%8o*7vyJ^%@D2MQiNxpjK2&2=$pqi2cIx0ffZ_6d(7nMC9lHhGUL9v!O9uHd%1xq z!aMsME+a_U1*Giz91Gi)r-5t+{#hO+i2`wJbha;X+(c{iey&LQXBGe@K+Zyp5tnYJaFH6z{DFxkBxF}N@nt+vAZ*#jaPb*uD#B>{+GK+E<(~9zxo|w7{4kf zsVe>~*0UN3bR&vue8TVV&tY9zX9Sl*{sL#aWnYY$Uw77xG(eW zH}O3n;)xK${Kh-Jx<;33`433X(~7V(T4Kkcv`AB2H&fWDEP%3o1}9UOf*f zk{Wap8k#3vdt9{{*)o_mCc?shu*HmAO5Ur>7W=Q%G{wTBRg`x~P9be<8{D>OZR`&- z)K+z{2*XlF#qvq!HB-b?*afv0sGLPZcBaqd`EyOW`&D}LuR$F&kw$#X~scNaR`Zw72yY^8X6Z zOMF>OP4t6YKb?H;t=8Kisz?S zThQylK8i-BeAo6?K|(z5x3i^PA-aNX_-D;A9UnWw;;SV1CVXV-u+ZvVxl;EJ$khL} zK2yRbd)s8gE)l8*J$;nAvnlS}yQi^{#OtZCqjZT4=Lwt67BBmEf$>jS6;mODAvs*w zQDC^CBv@Rg$cP?paIq%T6xSTonoY27f_fy;U1f{Qx?5-@(Id-w%1*iT^P>l=@>K<> zSPyUn*71C>Hl!%@PeD>g@prIW{s<1UiV`nmU;)r7rJ1t&(?)3ZVYbfZaheQ+W)4~&|Z(r+Pxi>^5e4fONDVw z_11gS9}7Z~H5M@k7F7$EKaV|%6ys4QqE#f3x8s_RrC7WZa*6E7_GN3~)X~-*GYRww zr|M;=*ghCDx*9kaQxNIO%~;;KfzGueaIs7QcE`yW(V*hmyyu7@47BX^y3J>5jmI`| z2lNen0Sp(nJohn|SFiW7*aD#slnagi;60AK2o}PdX3C!lu|^#@Q+st(Rs53HkDw?v zq(_bw;6&~fKIGk_R?y!#1P|h+1k)@0KR^J z|J}iRyeO4<^Za!^%BN)_{?tZ^oNZa;;$j5H=)d_!s0uq-T4rdDJOdd`@V^_^;t$Tdq~d z+KwkVIG33{Bh~AWi04ukbZp_(9?TK%1%CPG(RrOi9EPeN6raobVLr}}OcCB5x%5j{ zo_)%8S7Fyidvp=(Ix1JL4Hlw=33jl z%I^Pjb$`Z&QB-wR?s}N3MbEZEd6O@t6{76dx>YbP8cUHtrx^3~+DG{z4tC+_N{p>& zm?&Sl^n;W&%vu|hF>9m>X8gJY*~8=$(2O)9mfZq;U?_c9pA0sfM67=NmE;Qu->m=3 zWL|*!K2iChr<4e(Ll{+w&HxA*zjQ~vtgb)n#~KG)b!gM?-`3Gwy{8T=$F=L8^LeJL z)&c-MhsE9RKb^FeeXPAnKX*!Vf3t8hk#IVD$d_#CrW%ySrdDFrVR{CqP<1tj)XR1} zS09mCMdauQNK*&qjgO$*4z%c`x}N;M(tHJ>)!gOGbZ`2C3TL2FXUh9LAqr<(WfTfk zEB)o;=8$ITh;tz;0zcBeWssydRc&9h{@OLbJY!ETx>!^28el^x`oPzj6KAfQ{ak^n z#CC?nMRaYe{{U)XiBjJpJ^u6rvo}?uAfLqRcezH+( zp=a3hSTaje9xkk*8YGd*ozWFde9(+ryAQCNwPIq)kTi%IP@s?{Gy9X)QEBMkljV#E(Aifd7xMl~L=tLaXB=t1b9B5!k~nYCXVte0lWubl)YNO<~OXY*S|bs@VDN{QA^vO>xY|M*mYuBJN3mR zj}RPsNFC$dTJ+_ZT5{?~IMCF^_`AdUf&9CULgA~pW|~f|@k;&#W`?kH-XCY6jpvsV zU9K8iA&oBpDxm)1qk+ty(LFna;TUUUh7KC8JwgnW{%ZLV*8a(NpkG8Vi3w*pr{s28_%z78l2ac zpbA-Jrgy*(FT15Dj(P>~5~~x;M`*-OzMR$5T#;Ey3WfeuB2$It0u2u#g&QNs#%SSi zUDH4v=cQ9_GM@ecfGQfr3kkTP4^GPAr{yDSqak^#sMvOP)*G}2$NzSm@CybylEPHF zBG4u1#4^sIvHoT!+%~8eg@;|9z0@M!>ToC3a1xU>74Ri(?({hYM!C6V~@KF`RjuUuJE> zi0H1ClCs9^(pPxkn0U>#S9I1)#K4L)Atw1)J_QGwsgcBW!jt?t^26a>@CR8$HLT~1 zPAnO@`O8uWB%ID+$w31^NoW)TWBQaaYWjO2@q!;-?!_cJG~z>*;EM5Yyl*GyWKsyG ze^hxa0g*k4ti7)_5mfCe;yg5CrTTA`R*Q+Hy6*>gI;VD0r@2syIss>J%6Q{5>_gmN zj=yYQqs20*I#5o-R!+y?h3=SJhqYbZyCT!T4 zf)rWfc%5+|D^6TQy378Ld=(Z6(Jj_H?|#(s(`msF3%x^d<^Q-W!(VaS?!GKJ*qBamTkPV<4>{90HEQ0r+Icd~*WZg*FuVXD;nO!TWpo-7;a=1TljegMV50BR z9>mOhnOYw9aP%mOBG1q_T%uk2%*Ozptk!m_9~{}+eYa7r+dfIqzVUXmwcbx$Qag`N`3z?mwr_e~($z z$k6z2^t2pNk80=Xn=~9Wnkv;&a2Bal zZ5;0qhO&i@btZ;U&-fmXw7N1grhn8k2K9}7Mo!Yfb+S;IO<9NrPom;wP>`767i4C@ z$y=ao2GT~gjC}6V6!eK&L9tsoHn<%|9ix28^@ia36?}5VMSiUOVTzE_9V+D$^33Nx z+EbxkEtQ|*H}Tv@DJajV4Rt)cofUz4Jx~05nwXu#Fvyca3u9;UW;#*oFb$207NO-} zzd!3`+Ac}rGc()M-WPfAI5wD?Va%*I!PCZM|Le3VL#ilrnX$|LkK-?#Tdy;ou+FA_ z&bBp5nLam*7L>Ca@Mu`E7A)$Y?WR|_t65rrxHIJ*RyvbUVHXK+4AfX^nO~zz>n2g8;fM_+lgwNn879R&~&1kkB`@C>yyZV=jpY9FG5d~Fs9#BG+g@vw{ zo4U#>ru8?lpY|C^k>PyG7M<HLo(j97Ig?ujD$2H{YTPOq(L zsBkc9AM(tL0}3`0wbAAG0x;e}0mUjy8y6TJ)ZE_M*R)zp$47QsG?OCVuzjPxpMoXX4X4O)=2GFV#_u zaT5Pa0{^MTmXKQ}SE~(+XewS>aqyA`uJZLnyr0cDr%2WLhwC){hvly4<*i>w`)C1_ zKW7C9*Ov=qy)N0&b_YEy*DEA~h{l#!LpP`5J9?RJTPMKmQEeDq5a3VcAmckCU35!w z+~#}Bg^J59uL&Omi^B^P(#$6QMsJ-pWE@aR&N$r{4S%S*%EHVSMmFV5u`kN zw{%;9zD#o{74aJ;?@kbe4lazaW}j%D5ST0^Ea(t33LbIiIFvd8NtZ+3e(R*_WS(;B zT}C&#Egfpbh%98kg0J5-_d5HeE)HyGfpwTcQIbqt0?J~2n1(oI8#AAblaCzff6aB7 zbH=eeyZM~jTNVEvJOUBQMmgGLZs07*9%2N} zx4tR;t2tUwyG%ZMeV7C(zTOCUbxIQd&rp#F6E*ufNlW3Tu^6P_;bI_wwTUTFWK+KI zau{JcBO*4@$+OmTQs7@mzUK>YSKcQtfZ$DapXaznZN zck&gjS-A#=t?w-_T(w>bSbR~_rSAygJzLPsN3*fqSxqo2dkO-Yu+c)c+R+MlWnlM$ zT|x$>qh+81sM;W;d7N?zhvD$@kA&3~5^%m=>a4!M-n0R|@Whp>#6{{Kj_mO0VxcCe zhIke1UusYs74DVI0$WM^XD{j*uNIaee~xE&9(NXwG$Bl}9&T1GfC@(%dE+I`J843@ z2gzT3N2M4=Nn}`Yu14}Pl!$V5v)K798q3!()$=%hX>LZ!nYuz|enMKUpi^|IFEy9F zcR@v4@x|?)t-QaCiZioV4_dIWg#iNNxgz6cdxgsYxzJl3{y-By$yG@v|9(-? z+C~5rxJo5w24|M_Xiw%L?_@WGaVyZ*<#+*9r?}XE2BD;;)iE=%R0VF%R^L1(--=pX zN8 z+nr!Uz2GIoye~$HD@iGorF{$YDIb`^%q2aH1tIB1_vs7;_KkKMk@^J3>faUzDq-RzBuKF-nQ4|Fuu6K*|dxLGNiGo4Zo zyD2W!n~!83Ia_JtxxkfP&p?z<%%O`F&UQ6W7Vur%xkf4KKfnHk&o{bgM;Zv5ABATN z3aZsI(n`_cXMc@$Z`}6lx@{fJD5a1c9YhLZU2EMe$5dojawyw;jISdm+IpB%Ht6@5 zV>{*0xHVmYi|Ot{^DVmDLq8pbaU71iu87U>vpZrsZ`u8ZF&BtGzuR$t=Fz3g8|W#P zpA!>8x#f0;U#b*S0lCwc(fD!p+DeT@59CoT36LE49m^Rk54IoH*t+^S+R+lW;1j78*zHMsmsCH`U0Ug^See6Mo-G9F~2$r2uFfuwj>Yfh^D>$dQ z$x0d~3?qqNKI`6DU|c>TYD2+`;);rOK7uJYgw3ilz0)*lpe2c#h-33LbsC^Rpb}QR zWUE8S;uwBmi}U&%;J0xoe76^WgpdOZZnhB)FD!}LLR@U=7GkYsFOM(GqqnT>L1YMeTbY=?*t@O+L=AZh{q+MH832 zs=wk2S}@2~qU!ZYh&Vsl)iL`1|5*Taj*G6Vwd?fu%fwFyK1<1I6vRYdSH5r(Xn(-r zdV(I7)=BiGE5_N3<}4S8sqj@0W2X)oKDwl^Md%&J%1Y>u!a+X86b}gR``{51vF>5_ zyrZZ!AAB?J({BD!#4Zc~OSk2vpR2D~_SS5aZz4C9NC2CyvP}CesKd##$H^10UReNT z^}fcOzgus?=RSrBL~qoYRJCWZ*4>F$SsP47?IS-(|GvS=y$IHE9b0IO*oNwpF{B3t zbVpPAcfg}Jmo+|ES4X`) zlRR4p2xsN#c?1ZvS}u_i_=qH5l@m%5pfSb&oC*yYu;o*PdupqfuW}Fw-`r;dXoN+8 z8J&>O8Q*~3&hT;yi-%x|KY!LPugEKYcYS3l;UE^|G=0PWG$vIyL;9S2?*AXH_=e?G zD}Ko{wh{YprC5^&mJ;pdY2u%tz)@Kd3a^x-Am&dxEjA*!gimIO!#w#Rt+{&5qT{)~ zS3_@u>F*ubGV2a3d&Zn8cPgWi3?G*k>S=`zFI|OUmah4IhR#IXjs|jEl zY7-}2FG{0r)OKC7r%yyiQQ>vqx=KjEi4cRYwA$jky zzr!S57J+x7Hezw`;QN`VZKY(lJfPuFC~|FP))SOgjny_N3aPtWlIr3DC&!9Jot5(w z+}^Wc5hYLXhatFeS{+%b&efPhW~VCUguCty}mV2lufcv^K#%q!Jy15c3{pOPiQV7H&YFgh+_NA?=rJo9zHz>9B9~obAbY zrLQ|Gh@Jk(lNq!e!AKhdnwkS@vkhLsJb2O)**=^K#BCX|ji#wF~VAA2yp202|~ zQpa1-ecrzzf|y?bzgk=qWA)BWHd{tcIu8-74WfV*JMyMFpFNV4xQ zJ-qTirs1o7=i$9waZOuGV}A7#X@g&7<~e`qh`#@ph^ockFgB_17kEnEe=5eELI;84 z00$tY2#puH%2HWidI$$*Jvj_!#6FggLh!&AS^vBE7{-?XH)?jI5b6Y|qy!!8EmAvk z!l>T6s~{YDmehnj5Dk%e3bI%G(=H1JW8ul}A}0;5W@aKR+(#9sqv9V`j2%tolx{j1 z;0c_7QY`-+BztjaC5GQc(B?GIp;L~3B%s%z=&s(w*X%r-G9T_R2ON&-Z+TJ1q`Dm; zv;7yCX>7CSpaL<-Qo)hcmslC@$D2CSNHRkuT`rSj59?TNt1jDz@wQ8Nzq$O?P=Bs9 zC&QKf%v3ITmf7zJuzqp7liw(`(NLEN$`<6X%(m)AY6(p$*D-c0trs7jwjU#o{_ab> zxaQ1oGIfo)f#OVxurAJBOF)#(zo^XE_WNNLQtxUwx-@&sJ#7kW+wb~W(B}+*-;eRS zhc*W9rdjm%TWR&ZACe8G)TLw_vnu8nS3ZmE`<5j6=WlFbva`K_`@%dmTMz9aFCd<$ znfvZXNJ6X&Vh@TyB65xSDz|P6N^Znqj4VA#e6o|B2|V* z0(Iw~#M(y76pI^?XxzqJ){Tt7gH;wn{d{AY))g^vL<0pkzQF~KZiaXe(b9Y+Y|zRX zWo|KuIKfjeng*rV+#Wh6-NS%LUg|H_ffiy}ABzv{v0%wssw+FFBN_DkZ59>76 z5M9!m_!EAr<;Xp?II8Gjri5aH%GSu9HW0r*0UZiJrAutc7JkTkMGDD|0zFZ-u<4OJ z7ISR5T}j0`4T`IC{>|W@(N;LmL)X9m>VH8+nCv2`=-EsCe^ZgFJgIP>D`s^Eb3Yvj#`+bTQrrIHlf4m-Bw|ZN-Lo>S z;E*$_1cFgk{~y7q4=LYvoky7>nVR2PIN)5)`{N(RzaKp=7R(9&@&f;e492W7b-zke z88iXtNvAHpPn>O*XHlPZQnCseFYNC_U88;sFkU`(kn>T)LH1L}IoQ!*9J5s_W54V9)RC4TfqwRl;f4LDgAl>=Yw1I8 zwQ=TlzmA-SvZG1iAgkOIuskxhXWi4UpI6vg4vNYFJP&AKZ=Lms5zy8xMEGxAcNj%% zFxZnl9Vc<%BG*C>9I#(*(IG0jBth}5;4p>ar=&SHClycmw9 z1m5v?82wqF&>r;9L2gCVo!?_~>7j=pGbDMtAR3q`8H864nh7by2`@~?@ng=8T@v^{ zCLgiOL=KyzU$@xZjmJshe}8{eXSFatm!818;y*|c7X0XiKi(z961J^&qD^gA_MVhc z+&j`n-YtFmlY`1l0LGp*0+nG~$qNi9dFyk`8!|*lduh6t8F5>>w6=Hc@`}D#VI)TW@=yfwspEg?H_B{UUwQr z4N!d{ynSjkl3B~bc5Y$6vHOMSm$cN;on7eu3b7HKUH1&iTF1d(Qg)3#`Rj-lv%Tz5fU*N{Khfz{HY8X2ca959C%DqI4p6_REA z-?njW9Of7->b?Ju6tB*N%E&o+t#Vb!F0?GeMLP6Wt$}d~L))!L#C7Vew%OnaNd|fq zV{4AgOHCRYB_4BKnV67l9)8_Ihw$GH;rr4QZo(v9`t*Wd7|IgLdXXqi0YM+~3|<*L z^wLB~VwbiL#^y@oG0PZMhTyLKUQZC&njESSNVS9JY(@dy*#|IDe|fu;Hk%+7gmiY8 z$^@Xf;+5`7EVDIX>HGG_0GnmdCC1XP!l2y5N@qVY;0j!>%nJ!4NCD1uxrSXXS_v^T zwRp;5SVciFUn|T#tta`^X;|KnUt7Mhqa{003^Jj`K-KN?=X&?xIw(9*Cq#Sw?bG7j z>EaEB8{i*;F$Kf5P+;oHCGrPoN(}1QS~-8D?_@+prkzA|I`tYjrhau~L^k`%$D+a) z>FH*9WFGdzkD}P8*Sz^K@hYVI+`tZ&k2~~nxGc-hT5VgR#gWNAAJ&honSb+H4psPs z9X*{GPPJFhE;utJOQbC@u}t*m-9+s-hsULxk;{2YBrk3Z_#+U6BXf+?sxG(CP`8eRVSv5p{EuI%&_?_r+7Q`97T8G2z3LX~L|dkv)p!nYu!vAS;sI zl>FMR>rc72#1BgYg8J`d{3yGS{?R__QK{Oe#vIyZPe#&5ANZ$c6Pj5H8)6?09U?VlW0mJy6EfajHeni;2F!HQhMjxV!>bur z_*FJ%e=U9A(S1FY>_trnGHhsjADm4axE+JBp7CnZf6SLJ_y-hz9$k^1ew6MbTCxz` zbImG!_jzzaOX9vCj^x#__)PTd=M`qgp07ozCGAHE*hCV`3%|Y9mnetFHPZdcQ+zqJZP0d7-!bF9@ zJ|j+T+|P%S#ZR>d zQ4ODpNL1~4fO+9|We;G7XpudA^N&d5F*(7@I4=X}zWK=c3wdS&W^t(2>!ZZPbe&hKfX6$+(Vmv_e;|7&ib7ieN1`li%tNe z48Oycxrw4pNdheTe7Els#%ZJ%Z=JI@_c(B%$ji|$3c&`P7DxzoGyK6E4LL;?kW+Q6 z-WofV#WNV#R`u%8OqS)Wkkx=0PEozh(Cp}Khw~c=GR6|Gc%SUZp(=wfAOC+2f2E8; z2dT>fMwZAg5cHp=r$rS^$hGWOZ$aBMotyO7LYrEZ_OkT64T7#XP)1P&cXvqn9kNg6 z(`v()N!nd2u|$^^>I)3MU&xTLeQIA0qW>Y66oh?L;Dbxfo`Y`e2E)ZO#V{J9 zGPS%-Yx@@W`+CKZmxeV;Df#CtUAjXI%>*6OM0Go5@>nl;!J^aDvs zTr8|`#FM-ieyfq#vEQ5GK_6GybpZWdXoq`D?|r|}K->ynW&MUt638LIq*Vupybwzt zg{86ouCW0-y?WXRZBE}sTM9mMee$ovQ@1XKBULlbbL+UN@}$yEU~Gl|9f!|@-b_K% zCuU1|4`;p3u-B?@7IIWdcYmE0<_=y2#tZyL)=6nLvFS-Y`lx=I>#z}A#tNhObUCQ> z@$C#ByyMnjrJ$U3QPzC$yt`U-;O%o!k827T~f}Y!WzuM#!VQV4I@R@z0tt z*r=}P%Dl?S@%4U8hD$F^Y_lkn`Pw$tr@zRMCBZMjNC?d3>AMYfUh|tTAHMhC;F`lbKpT16C$^@E=9^i7o{zryHtu{Ct=W*rJo77~sNGpr&?Sh2Uj zTKlRg@s5bsrKdb0o7^H^?2_zI4quoL2u>N3bX`g$qdtG=L&`@fQzEk?b`G$syQe8(u@2z0mW5k7olC=RnO)FQ4WJuVk_%oczSj-W$n^&Un9rud`&b3FpJv% zS}r2@GU{mLVwt82hJTScgNly)>)2nv*W61h0WK90l#qH_%yP+gl}ce(*`96Jq;B&0 z%u3sd0vVj@49hj;&vkaozfAR%{w{a-3ybb1Xw|OJxNCP9+1mCa|D8Q@#hff}Qt%nF z11miXK`Kw-I#fS+>gpVjbSJ2g46H26i>?@BtV{Z9l_9tFp;T1mYadKTlUnv51m(!VToUzajC|5105LJ{_yBIeQzG1YHGOTE=C^=8$%Ud7%exBL@Ek7-io z_uIP0TjW@U_Zaw3w)|~|hi^B2kQt39m$RU#LdxJQ2jwyMFOALD-a_EM!X%;7R%y=c zKh%*8{gznhuL8e%VEBA*d*?;aXruPrHLgP2SG5xSBy-9A0k~|t`(?>3dc=>In^wTS ziMeNFG`rrNUmq>nYFC{fo)x*bOH=pHgVSZb;>GKZkqXM&W9R%vP${UxiN}4lduG1P zH}<)^6%SC_P+oOXOzP#Qzt=5<7glZ#^FNClo?Pw}Q?mW!TQp(RRC2Wf@x6)fr%HRO z>8H6@B_HieR&#us-@vZlm%dQ4mp6OXCkXcy*lmGcXLh%LF?b$$6^U&1+emipTng+g zFX`xASvbhXhnhcF>sQAEy;Rci1cvWkzQq3lD*Cu?Fh3-`-*b4{J}V{BF|BhV{OR2X zm=?NMv2IVuw{5lxO}wiw0r+2!L+NVkdEhWR2z8RIV{Le&(Ph2&palF5W;fO}8hFLn zq-t*e*7#$pVlEFitK;DD$akI6Jpjy?3M4C&EdDV~8_xLMxZ%T`ACMbgwf)0-I>)dl z5d5DDX49MhxT5dYNml-Q6z60|jjsK|%_48abuU-=PS$20>xW5wfXUdn6_+wUkdyu- zXa#x3P@eT6yMgt(me!tAp%T|MlPQ*OA;ux(XgIP=$9pSmb^e9wisd}s{2V16axk*dfeYJtrm51ESd1$R$R zcVDT>)@+DCfLPCe=0W6BU_FlSu@pxht;thV8p}Ax5Sf7+daAnfU!_~u?c4gW%cMA3ABGjX$$%+-{yJb#2OTKBoFUfEFQQyoQ`A+d^ z3+)oPP+$DtZyu9cLmoIbLsi?aZl@91v>00AZUVjyq*| zK8w6#ZmicE?bW1efOg+9FP!@42r7T=ifWJ<7?jnjJT!0a-=jglt2!#=$KRP6fW2Aw zM2nYDB-%D^iC-k`I36Ml^El|{vD9HniDaJqR?fyLPTPm{?`!cBwzbr61CnJ=&P4oV zEssXXcFI?1B*5%Z2gtsH@3njI@;pS9*nR2`4rE(3ouc{Gp^lXh5uE>aS8>E{F{9W z7E7VCN-xp^vI5G97@u2mv>Yqq=uDITd)x4uif)9G*)K}gjm>V!v&u8liy=vTwR!fv zb7_Cl2+p|h97is(CYy{C$=%`JnCm9!6eHBh1?k#tJLB#tN6-W7pz-=q71i!znj%&D zTGiBl9P#BTW>Mv%l;labaGgfKp(9gu+ut}IpDG)Ny+;F{{FSkANjT4VLCr54sKHnZ zqk<2Afap8_spG%9Z~ih*lImfEI|SrSsPUHl8Yy`B7d9;awS&UBiBX`3FvDPKZT5Ff zk(;wVl*(|8@f}J%OjaL(ECM7mj9@8b;{tx7q4P5B3UVi^VINp5)S_RJSE;wan&+bjHv8d=n z7BRKG<}W@SVqaYw@-NgQQv9CdUg!5vtLxRF8vKd7F0bFvIqC?|Ai;r)LUVhM&iLO>5Mjw{Q z=p6<_HlXDMV1N*8R~(N$@~Ej;RIc$1PM7;%qAybTV}$5=DDZ1&Q3-UC=vc>w8`71g z@4fXDCA_Fs86aIxVR*F;9@#9fe)TFPV$~p(IPh-J|B=#b0_uTdD!vr=Z2)KHA!Z@zLn}{ zL@+#4=h*gsbbaaKJP~8vq4(^^#Jmp3EL&59*CM!yfAQ8(w1yu(d>0iKE6)$}E2J7- z8_e~W)oq>sw@Tt7$=mM2!LOmOYz)F6R1}AU;i@af)O$t0T)`VVv%AQNt%Z*EZ6i$h z2@fRSb7ZUb=cxt&(Ggufhb2)~9T4n`XA%P|E>OPmb$dIgdHUL8^2~44MQ7g{)P%2b zU}7^7tc4r*a*q3x>v?X^wH^jz@`~k>=D2CjpL~J^-A=KkEaukE|Aby$-$-^o84v!? zV}*iKrZ)mO#T%D0%_dU#lu3fB_ys_Wt5K+KTPA0^4V+^Y?OsU~cvJafF+fmH;R?C( zv;ZaDdZYN|PtNi`12?XGWi6GQq_rS0t?$V(_B-u!=OI*NjFl zE1=)mhCbyC*^KMwl(qvAV)))?cw$BpS>BdvNP9XUmWQY?g!*nK% zWM#atxqWgl32g8w5hg|r3+j?RA9todLrP)m^p*XZX7ZA=3`oaQwp63`!xc7umD?n+ zLW(>3@81Wc(j{9%75QCgN{5Ds@8p_ASn_KakQ#YXiZ+WUT9$tPR8YiTUTg_Arwmi9xX2KAndS1tC+iL54l0|$xUn33Me?H z*3HJbbu8Z_^j30;x&QB{bQdCI!&p2ksU2)Z$g2z*TJb-`0xt`l?=eG#lJ^{ z^z4#qR@WuWmHDZIU|7%^NK@$Jiq(sSd^c{GxyG@39F`ixpYg=uuzsG~4x;oI1kchJ)(gKO#3;!|m zA1gmyn*K;OjynCfgFsCsV)Bbo!9ntHFZVc}FL~X^)EzE`#E!eCO|qKiXATAu{j%1& zs@MaxP&0jz3BF#Z1{~LaPm9&wH7Xiq*?P4Z_`@eSCqy^J?Zkr^D;Pm1k8yzQ`U2IA z5ZIA-nI11$C3CbX21QyB?p`5Ba1U6^IX6}%!#p7$bAi|VwMS#tRX z4p)yn*ao)S||iV~e?2!!ok@wowW6g!hoG$OrwcO!hfcJ*6SJWfjgE(S`MpOQ=BEMNSdlLP8j9YytNENHM%;C?f zdRol`k&w*3^2M-wHB+TDJE= zdAy$+oi|_)4{8?uF0{>Cc7MdI{p+x^d-2%>PqG-SRVrfA{2q+f0x!ue1maXgjq zJLh2?Ayu5TRbVw3j5PcKR(DS^*18BHKu#~Og{-ZX0yB(%V(i@7F=&SxZq!iJ z>rt~$J+=P!Sfq3qdM*QjNWW5r2 zBmCd-?Iu$kqA_Dc{@^fCz*Jt}E{kHAH<^PBtg$@rfO3l7CIAVeVPDWa7?#?YaD?y& zsxM-Z**F7b%M+u#9T^w8aU)TTuNdaA%-lc#eByV#33R(JB!KBu70(rVl8+g>qT}Gz?Te;W8@`EiG$TK0>FlA2JEJ$I5Ir8Gul4xp>g9p2 z%s{5Bn?c3WNMxWz8wHh-rcLq)a>`sQWE=Z;oA$5n-S7P(cb;p`JWlqIh%h$^f+)ud z7(RXGXhsIrA0$CUU*&R0kem(GkS;u)kGY#Nx=&I|n6JX6mv%P{NzK1w83XOkMmJ*Jaz1}!?_KeX!Uc%4= zc}|2BY^05w_y^!T;IuIT(PGC(cocP|rSAs^;}Xt7hY~#jY$1DVH-~r~6w2?Oa16`u z4JX`A#v;}y*sAMwZ`~qvnk@Ka=0EbTVP$1_4 zw&WX{SvG1Rpm`Rz3nzgHjC7WEhdx~9LC|vUF4hvcmarhAy#gwoOZ{02l-`OVmFp>7 zP4RsSdBXQ8}AuG}D&==cxW^~*R>4%VJ}aYZc8M1()@rWkX6 z$6deV6T9 z%%p=>!-Lx8iyN9{4vxYl<$d|tPgR>>FX zjvT%lLo(5VU&*QtX@ok_=0$hY{VcZ9CYb}6#BoOaOc@spbj`FxlB{CC-rR>Iqej#* zWZzZgpwK=-1YwhrpR3^+4?qXr0jZ5`dbG^pA#6G*o$sRdT_X|-IeeJR)+<_wPIPv& zYo{Dpr{;v8P5=Dq7Rp6mppCWjK~b-D<-CgZRXv~0d^6JRQ^{xh5BaLG5osr|A%46| z_H*X^Xt(0xW=o$A9=6s@Y3{H_wj*<|{zEElT>T+m+&8T8%im{U7Hl!sjCy-frVta? z`)YKy?BvOHf~_h}1A@O_m}4dN6P~|I`>GeH*ZJFDdCbUw0+s~>!}SzQ^2AxSq)sOU z&@=`Ehd{lMMUR=#zV4*Cxm}6grc^})zmoU>B#(bAZm9-~0m9Iy`@|$;gCA2mCwo)u zR8iTz7%mE$?CIxFnBsT;xL@i2H=$-lNHpx7+nqtAP3#U~Xl(GUy^{~S_Mrx`VxQX& zB!g9&JEayxtDjLr@U6p1cZsEvj;S+mD&F17aCk^-fJwgWkI!E0gV1v-_(A`u8NMxM z4u!WgF`L$& zkSDSOjMv5`-Mh(jalWAQyFmQn6GNnY_Ux72kF5V7Rzg*t$WTaB3jT@n0RX z@i0PSHV~%}1AaZ5-*$rF{l7UeFa857AwMbK>4#b@O)@rJ%D|#Yrx}+3OPNX(+85E{ z#6j=Raqm!GH9aGrO#7QilID-EC|ECVaaBR_g1Ap1HcPtDkpohaO$d=VU;*i9Bkc0b z4P;s~{Yxh2>HghLU{YaBsaF^KZ-_~X0x|hc8qal0t53i(6Zzj2dSDM~bY=gXDFI=x zR*w$fga;i$Emmwx+dRsgynZdNl-cgRQlPw#55J8c>wdOK28BlS?te#rrC~xj=N^!E zKst$m4T7!^fHos+pwheP@?Q9BCs0`nQ^r1@M{FrtR&>TpRi>znbSY0{smET@?xvSa zq{fw?lGw=zUyM9noXkl%d@RZAWQ;-1dpvkx!IS*22wG3mw@fUVL^15sT8j~>Q*v0c z>%b78S6Euoj^7Prk{G6J<3O_a`bOApK3z#=m0TIdo2)d}dfbMVVMRPPw*Vp|GC#R# zcRiA6tt(MP1jP4A5yjis5bPrwt@d}0?^2jX1V;Mu4o#b}QAfku_kQe#g7Jc4#O)4! z&tlgLF3pgmPPM>OeGmt^gILX>a6oOtGX#FW?|bi@F8_HcFiQeKUy(x9zm@PmhWf&I zY5a)a;xbB&@*lT?k5-n-gSna873~jF>#q z3VSm9jr+phrFv`-2GEAM$YyN+7`cOdx%wOym^s} z5$(ddRAEVnW#gonIT7E_Z0ZJNY6Bx$r=fxy0`6AN`9;~2P`#~Lt~d%8(na{BX>E!r zYdMGJfwowAq{qGeF}e|Xh_(0gAx7ztLFsI)HWzyv@D~g*)V*ydg0n{11w6 zi=Bn`f9|Tg#Bo|ZK3z<4;u&poj3o1}HgwTet6lvi!npD?o85}1lTw(+o0ch08WxWe z8e7k1Jj*{Oi92kNuvp z(D&SyS1b?+U}@t#)t^k$hW?e6hun94JDJ+lrwp0(SNM8YVbZa^m3Xmv4UO>s`w?U+HZvFyj^{SPKCx%6Cy7mV; zY$oCShRa!jco2frmdSl&PP;);P{T>~6)0tyQZup8-@;?Ap0S_XQ=AYQp8knyHxNGY z()Q;g<3s+zT3CtWiK2p~PCVT}+If;EnFI42h7E!XxI%xQ3?Ioor(i{4g^-*@%V%34 z9zwE&YzlS;cUy3``Vf8FK79}mxAIQ_D5d}QT}xi4V>14sDQI?EW(0)UVDRHH!N>7F zwEV9)<2L+wpH|Vo{-eX>&e_p*`>&7W+A%E35Xww=mmPmtz{AxmM^nv^Pf9VtcZCM* z{TAVk=!x*@+(0Q9-gHG-f&BJcItgAUVbZ{RH1ukD^52qgl%O~o&VA;( z!wBaX>1%L;Yf+p0B`X-iiCXxhx|AynoSw)OBtx9YAQjo7&kAWy@9nsL?jA5gwIdv; znkePkC|RCHY;BNZkH$g*W0a8!ww&jlw=>Uab+wh8=wxe*yj}iX^QX-kSV;gQy9y_( ztJ2l3#f5D}$lC&xbbcScR^VQ+q&)7)^Uo&(KrjJSap{74SxQmT_*sjym&_ypmLsG9 z_m5=pRRZbY50dK!tY(IQ@2k^;e5%M-73DM9-B*f))DffP5uyW@kTn?&Ye^d(8F6%- z*a$Ne6C8HcgeXj$U8>|N*21(74TVY@{IQI4>3^5f6iS!nWGe`5hdPHDYy31~ysM4g z(2YnA?7FA9J5~?_*Aemq@arJng1{*z;uV%}ykF!ddU%KGz@0cx3UNl-NUYNEFr9Xm zz9SJ;tfid_`X~C5uhzf|AxTL?cWF%&Fe%K~f(|P+-(&saQvcWaG5@p3!R?i{>e8KO zSMS_I8$aM9cpw--&tdrYT!*JYC81MV69C+i0%G*8itf>yb82O%K7()H(EBoO{*|G` zhz<_G$B!V;2gq&n*$?X`vA?%Fc=>+N7P4P4{7%Nqt+0t>V8Ciu`{6Y%=bPX~{st$? zupe)bo}z{Bdt_wvMz`Hn7?bR{yF5WiWP>nd+W#*ygu6Y=0SMobng~c438i5C@&Yb{ zD0hDSZ~K)4&#Wkl&+(c`ay z`~yvWrf=sL>m3fd1X{c-@;UXzI5vr>B@8Y;DZW|EQF(rNy$!+R@7BSN5rLujhByYE zNs82KVit5VT#-N%1p_wWCFX4p`5Cv9_e7zGnxGZpA7 z9yW35Guf$Qr9*)Z_O~2=-xB8*u!h^?&dxB(3nr5xW8h}JaD2Ohp;7yq?8zAweev!C z?2!CzcEOSG4>OR10`}68(|W(R?@K8$JniF>wW_(T1e5um4Xm9Q>B-s8dylzJ&O`7D zxQExsza9n&&e_^8PH~YiuK!!e>lbRD{CpPtJ(Y4;AQ{5VBRHZpAD;U|a6fQ0M)FG! zgPy#!FgVXf`Xc4v+-V! zw1S(qkoZS_tO6ZgK_*vwzMlo`8%gKf+}6 zi7%moFq0xfkL(!FyXe})-xi?pJ$+R9MfCDR`uKhuUWK$Wfh1n`afV`xHh8Y=$;>+69?fmZrunNjZ#L!23^1F0vA_E)kxQl1<$kpO3*Q)j# z!xQl12pi1OtYk=!Jg%`p(OciztR*@8b+Q(~wXwN)8=z*g8(FcAGbW7{!4s1)Lxh%O zN+{w$n0$1sqmBq(Ojlt5{Lr3ypKqZAdT*uYIb1O2wfr#qy$eA2+(2yP*|wS&Su(i> zbSokfsvRfqN&`BgiXBOj4RatLGV>xjKjvoqptV{?G?wq6b;iO3u|$|c)X8abx1gI- zw9@gYUnf$qUqUM_FI`EF;(PGO9EWw(!oLqR}GKsEe z{$k4~)+W_e9bj}g+x&LKDwh8|Ui#5`>l=}!<;_|;fk1K>j;0ahd3ItXH8#%FsFi%r zajYY0>Kg#X>fBRePEHjWse=b^xstP60<3!eV+@S@9xIv>lIc$I%TKO;`e7}e4P8vY zV)4&X@q`%09`EQ4=|;oU+{2G=8}SIAQy~(oN9(X^Q@8_HH{00^efJ8)^~7qZJM|oM zIA7BkV$Ht=iX=q|eJ0-;&cttEr5=l4&Hz4nk!9I9kw>#5d3~lV@i?3AF93W-kIefW zA--+XJ00MS-94pq0drT9@IWBWbN=!Vap3@Nk5nsyXeMRJf1?4><;z5%;aBGb;O^=m zcCmD$q=w-LD$8kiAg0GvC)-KG*Rl3Z>OnI+rn$w@51w0o2qEMrKSsqY8=w;84O1{!(7TA&OJZzxe$hQMiy7pzIVMl&lJ2Idm3%CebZnk@T#Z&oxY8K`}C zrtMFQ5cO{Z;}4>|3we;b5hR@Vx=pF%g9`%50EnHxgSW%?`TSVJ?CUg2`G(s-ly^}~ zp+hRk;eZBDAF!GJuvpUjH1|Ed4kXSt-t&i6VUn+d{tx7baYSenRhbrwQF!FdmKQ-O zZ^_Y+kn(#*mP=9FlYo`pM>THQ;L+_et-s@meK5lh4QN@?o=+p}*$cJ#baF`mR5f-N zVd>9maxFgCnHl@fncUR;B-0*A6^$DIkG;YmRxV1iR0Six$Uqfe#b*FP;({#kbQr~O ztK4GJUJn-}&;l#@T31u7nk_s-C+V3yzPTpA^SDCvv5>th7v65f6^_)5*&5`f*arDb zx)~T_65h&dqnNvB*Rl=NFf&pZ-*T3Nfu#avD6)>HA$d|~TGgB^+B3?$x?R15n6s@V`t224Pt(EJ048REN~P!;XmVo7BdR|E zG8o*mZ*PA1^8$tWB+uWvBb(2L@6fREwIprOS*8TZrrFvvcrRF2e?_1ZJPXBn!xrAINJeU9yh=qeBb63*S>j2a?W${ zmtSe{BU8($>6|H_rW{rx5=9dB9H!Dok+|G~;i1+lxiog$+w=mk1E{@AmEdm{tB9ck zCvTO!Pw{sp=8xO-kY(oCdDN>SK6eFzC{I0F?P!}-IL^L6^W2Ts?l|lOntP+sO~(Z` zUbEWH03GI62V3m^?!!jS2rIBtSHQ%_l*sg%2U%o%bBwHRal9vq#Z~c7lQ(M*LOS_( zZL-_l+%{X+Nmx4++v!tK)s!9(IXfe*lIni8#(iAg$G6jF87gk2-Z~<2=C>%JsnW~- ztIByfVk?3BB_MGDY=d|-cv`pjtkco%sL_{?ah1_boqPj6^85)z5Idq@d%fZ@mA&Ey zTcA_&XCZ1Jug2(<5^6A=vK*QTz1E4xl%)dX3oFz^?slV`6{Q?&qVOfgHgPY(Gd*@6 zSY)bOSW^1ou85Nq_wV!G1^~nX3?-@)zgdwxjUHj3J-!`O@t$6ml-OP<9sMUvZOiiK( z<1fKVGu2{{&(bF=EzZqG$+Vxj1vt)}##eMsTm*^yve&oQ)DH`b7@0&XLp9;PVq>Pd z<9js`vl_C74?K<G4#Y%!6)i{3nLhQH&Pz`h7MGutQN69Ywss@4uj$6Hs zZ@V(z3Dd2kxEtT`Ec$B~C(gq@S-~k!6NkSQ&$?EarQ!yojKp45m1eyOp(#Lc^YC_3%eV9au7@^w#cK-c%NWJ`*ebThp3{j(kd zyJrqEvfvx|dSkaPSi|Es0uEJ!X_PK2>kb5TibXRK#YMVr=1Y(U3Z8W^EVM_AVsC#g zH_Ly6{)2b2$m|m#WL?YFE18RDoG3sPF|j^JG5m=mzQeMF^>+rg!2W|Xn~_Tiq78k2 zFw=C`GeGG|(0jqun;OoG$T&ARtq&gGx5_Odt`~5)E5r=~ZocYJK@8Ht3u_cC{N3~1 z0(k?wH9r0pa2MG5y})rBS0w1V`4zuc>=c10{-*H%umAv~>#s{|DKET^PURt_ zJf`wRN4kq;Hy1FFWv-6xTpK%nPeHl(;+AiLr{GK@{`+#D65k}T+~+Vn%(gBeheR#9 z9l>Kkmi@lC;Y{iUQ+`W_lnzI?Q&+V$`yDa3?|$@C zx?Lsv6TXtS4DE#YZlaXq8}P@qm91aLe7x-@%4XcqS<6b)Jh-3C{*g zc;qV%*2s@gY_i`e%aU%X2uaWXa!qgyoCV_wpk{zeDzkoj(kh@N{4O}>3r2#oEKJ9q zd>y;&EQaj!nXZXpghEa7#oeF6zh5hSMM+e%r464*FvKB^KYeT?Azk zekZ0$z)!EIyzI>R#S6Yay;@)8=ax{)&&cJektedNlo}eFIgJ1-MEZ5Cm#$tW>9IOcNs%|kxF77EPE3Qf?k8KksVz7JE$$CRo=IItbdJ1`PNGxN zj6*2GWZ{D79Ra`SUh!qH)5n3lG0cGn?18?@j^c~k6aMb=(@KjqAG%S3eX%lJnX_lk z1d_6obQ_x#XsA&t-f0Ha(otH!Gtxqsud=p>;eU3%6EP(BQJTiROtF0#RODVOwbFa< zNOAfSZp^yhRfg(h;U&G|J1r={n!N32+W;5byi6R%VvoLQO1*WvgoF^FnUM6%tPP*8 z4PG;932+uuERpSpyg$x45T(BXF_`X?HknSm6fAR~w~=v8CpR|q zrmMr&oL(4wO5msI=nmi+3O-HnlML=R*3iA@Q~vg4e{AM~VR^EN`i@pc_aI{~ z_UucP41>byQrs=i+=OwvjC+S(E;6CW@%!t*lcM<|JA$3~e|=z)NK-b{3fcs}j(V%Z zS@Nu&J=d8v1%cnzUoT`3R4I7U3XPuYiH;t7S&o#tj<<(7-wSPCu@0{XvgkCa>J^Aa zu;~osO~R0!d$NcTGHj$H7HJqWV=?Xck^OwjgweyW;0dxg*x0=Ufi=!tP;JbpSUN|u zYc89O1XmrPC~%SRw~T(Yjlf=LTK1Ap(XXD{ z^G^-%%a=nA(b$@{etSA*%IQ!Z=-p`bU(UHf&~ z3R^`POrqb8<|~?InLVTeYL_L5RT00+(`GajRwSeqwnWN#ZiLvor-hTqtgtQ&6!|oR z*S@rF9BnjHT+*D0?*zt)3CDUvo~w0yITehLVC-GRKdbyg{Kcs~h7n~UHLJSnSzpAq zO)5F&YAPl3uxHwWki3Rls;QW_8v@=9`H}0)(Y;7uaYb(`h!WpBW3~K2ef6L(@{A8F zGe^um4jHV7!s9WD{<$L=;U-6C4Fkg>70E=|oN`y|0#4{v?>gTmmWb{c?EL2GO&8Bk zbG$2KzGfK*@RIIgSHKJ-WnRwvMpT;tQn;so+j}X# z+Dx0D$gjD!!sc#SeUHHW$_X|N4E@<-D~(Nzq)a-8pThAkr8{}LbE$Yb;{DDw_-ZTW z*M=nyyli>a;$#|Z`ZsUd?S3fIC4Gicymmny|H)zVrPkZLA5TM7n`sM^na@1@uKR;i zpn3C7v3Fp8yJjAv*DpMzP{Tf}iCJ6pL>9uzL(!)G|3u7`kRwJt*TrJpZZbFi5t|Ew z-fFCvuuEnJtv*#}*sD1YhMM@Hp-N44HS%J`i$K)IUmrh>P2!V0Phtv81;w?!-fH|q3(vejtA2?U@lt_qc<|Rv`(CjOrW@R@HQRj&@|?-5}{X?WNN3WpB%$#fjK;y5aUhD`s7HMt`KR-h99)ol+l zDzo+`rB`1bXNUVxx$G(V9!b&csS`NdSQAwC9OS*e$K#K46BPU{(`1Y&D=561&&Ih2 zckd*`z_oz0PJSG4IEpONiRN`7u6=6PaDmvarUsOrLK(zz_9e~0Z0?=j%q=e8bFVWl zRC}7LxpYFlzk5BqGq~+K^f_4n*+}>0SU04D1x&(spT5TBxk75;dK)IJNV5t z^$ckAkwiI)LtycfR$RHKzIoe8T82H$PQLIx|G^XGs%}IJAot<`Pe_BtiD+43%V+<> zc3RZtElmo;=UDNNO?!v`s_u09k?`c3bn)?0ociuZs(p>7&<@=3(#3Zx_uC#Q!2o za|PE&KE=}pIeOAMF!CmMxPnRH#w}_5Hrf)$0YgJ7=t}v7%uln3k;Z@6E+IULjsJ6@ zblqi=tLUW^{8g{}=`8#yfxH*e~{vPU9x?@Qn*w z-Cb!b7JS1fd9+Myu=S|F|!XrAYMYdpmg_YqzljVg-t|z{104GU;X|zC>>WL;xofP z5fi+`2d{y2tu&xxVd1l+<3Ad2J|4wntfoaP=!p(o9LKL-gzCo2K^~75ao*fpT&C#B z1L5!h+T?ah*RNp+S1?{CA>8h@!+bsE(dIQW>s0MYnUoqSixs^xS4CX6I259jc!$YG z%r6i%Rr|TW8skVvbjWC`9aW5>dBSQbXG!w`6nbPv#+s_nklxw%1%&!W7NE$jsELe| ztZ<)>WXHW?9Pte?wD`tKLX({?u7g1}zMrB}B z{g4&QJHm$q?0_f^-n2!SsMVU*lTS#4S> z9B_Sr?Tvp(`wEOfFQ>zHwR=0kcExN#w|4t+ppGU8rt>Yv>lwMqQ{_)<;nV89@y?9I z@PDej$69Cr={HEkEfAn?uJ=AI5>Mqz@8pSCVKPPNOzmHb>d9)w3x-9?Nr%8)Z2?SXVDmnvh5-5lk8^u2cHR@X_srL18ET5YMoUQSr z!W;D;2EO@2b>EqT0P?epnEZQZZYeZ>bXgk#j8r4B;xmgs4E>>3cz?}2fha@6;q9H0 zRleP+US{)#b##iW`G<7PNVZ!Afve#7qdo&Zs1O%(((R4lsMy}el&|r_KZ7aRVmu`e z8dQ7=*xMA$7sXvaARD?akf0*=2}dIe-(P)qx$gWbFF+W=4E=;*ylYaYYFYO+AF$9{ zyK%si>s3xR%}6+m(oY{*Uq?NU_~b?QEhH_|u94*Ty7%lEm&&XV=9c5`Y^kF!OHL!x zZ>xa$8<)2L|GoH7-@yp?4S&P{#|5b#iz34M#4wgThM4HqM{BB2@`ugscqA@%S*_kz0 z%Xa+D114{PY{n6TeS%mdJlfNXiR3h@KN*xvppmppTB|esdC?A1`BU$Y&4Gw>ASfZY zC3R{$LoU%Bc^ZA}{)d{0gj`o+XeFWD zG$+eg>RBheT&-6tFfslXgT1A?HD2rhCvobxNJw}^eg+FJ;=WrclDkf0Ahaqjwlt*L z0!GiTrL~Xoy}qg)1}zNyUrfDaSd>w_{yhUocgP?xbcv)$4&5LPf=Z7F(ls(jOT*A0 zC>=^lDI(n|EhXJUcjy0Rzwh(xeXI|B=HOuHQz|{74}dx ztCZDdM8e(lLSHIWbH@rO6!#y;NwJ)_*?9ipsb0y`+HVYBa{FAFAiNls7cDgtvkXy+ z%T7xaDk6lxp;(eYWoK|&Gv{s1$vW}9?!}gTOV*)d<};tHh|oX~QxYa)D)rXjDRZK6 zR-)PSoR4?6CsrB-N_Bp3{@QC)V%DPKDOCZ9W{DjT7qWohSndZM)S>9WfRCJ)TzGBm z0Dzhjx!>4&dLPco#;tI)g+Sp&c8a*pEbkX7$u%%=L;wjE?i-MNTwKUv>c9=vW~$TA zMO;ID!F+0NyxW^W7@MopCx>QC9?_CNw!M>S@sV47{%W#>Yli(-pT z&DE{8rjTg2=Vy4{u?@F+QwI9`2A+#?#z*A)%Yi!k&0nGc3o4>i0VVofkqlj2C>!Ve z9|PjtGi}E1zy=!)X>&Qh4^4BOu`6p(vwZWUp)9XJVU0Fm2_fP`*j`~*TJv^)ZPvoZ zY%Y}M?y@h_6UrF)!P9=2=G@8sfkwIumCI(hmbax}=S8z15JK@y62seNkBhDzUVWZF#NDKo$#3t#8Mo`YW>k zTv%`QZo5Vro=x0K?Uj_CIOOgH76r%^6f65N6fW#9d6$R1kW(!od+3|)s1p=B0zzsh zwk!0V>7ZrT?8sNU-6Jh+%1g{;BF2M#9ZkIGn zh{-bmL3C;wh_~s@B1}BfmZfsUOd2_B(d?)<16q3W89C9Y@a7Q(;VePXyR2tIUnc_? zL++ejX-;oRT@J@!`yvKf=z6CE1lsATWzr6oMX`Yua(_{5%x2nZ3TE8vxr?{zQz$Dp zR}^F4gRNMMbq{Mm3;qSR+8reREb0OLEd|DfYScdnc_{mwC;eSY8A?{6`o&kD5%j*_ zKZ&C(hltJXyYxKW#90IE9urWIGw-gYa<~f<)w>4=~2uSEgeUOV~ryP3IlOIi5j- zC?9o4jI8x523Vh}#A=B9!2`~~8tO6+9Q*Id?zo7`Q$+mWGGc;Q?4Cko2oLNwW%B$f z53=40IM1+o?it=9#V%*YK!g0*p&wTXxsvJ{#<|`7q2$`k?e=lRu)xWmrqxLx?ryU? z*Bb=sQ}y<{`CJjhpq6ar>uEqe=u131q&@e?M-hWI5(_`e0`58THB%Aee~&7g4AN+j zuTXX(kp*5J4^e@9(ivF{Z+`o*Od^pK>9I)fkI~syyIE7HK;{KR@oG*X z458&No!v}wasFTdeeJOMZ{$|6IEMYaR}Y;r@xf?n#jk|yn|p$Z-Sc|B=KJ>eS|rGz z{a;$%OB9ADQNET7N&$f*bgSiO^bdTJE!e7_;9hORvPz!I<{4`@AT=UmqiEkD&s-_? z>XF%~XPjRb{zQqQ9AxPKC_!!KR)vmJylcdo#T3R!wYcP!o=Syv|F~F7H9RS%KO~*- zd;)(n{;Y3sE8x0LOFyXw&pGK09qrsi3*5hGjn!XzsYz?#eIs`*NgEg%q8B^(FDU#W z*^_5fAtugZSm z>5^JALwSx|IXf9icFFRzWrrstn4R6l7oqeYH5MoG1c?iTigvR93%51;dw z7XbiGkU}%-ZTb?;k7zAf|Gtht3^&6JUke0Z(nC-k)At(oHz&dd?UxBIS;CTPm|McA zPu?WqIg4cO?viZSC&qTjQ)d`U70$lqp17SmbNx2pk6;a6opI)MVJmzf@zo&*Derm)_2Ku7!+5NK)fdkp8vDcv9uZ;d% zx2DCuYmHKFjhG{nm)Lvekbencb>X+0Ww%9}%MV}M54*ptJZePSPgQpbb)L<)n1TxN zsqiTAo+RIYUo{!Zi{DhT{(Hw8xj%gGudP&zaRoLb*cRO5P5;byEUiVw_geO(SOm97+K1gKcGs_J~;G8ku>1j zN{zJSiq;wU?XA--nmyE#8qMG1n;xx02mnZ&OqrSra24adikx{Ccds~8^e1A;+0u_v zb$hP9^7$0TV=n$p$Hn2TSqMm+?!H?j@%wEX^FCj{+;aPc85du}u`YFoE?rwfKAns2 z6%_MrHx&X?JL|lM>LDG;lNdr7F9rU^tA!Q+r)y;=GRQ5}M$S?+``y67O(fGG2{wOH>Jcn0a!a(Jea2O*vD|^@2Rbf%&vgQ&@RUJ=7iI4at;KE-4_6v~c%AYl z$AOBf!e`;7)Mb$3ZVUedNK4bO10we7s;bOq=dphV5@g?7O}9J>&bJXf9OG}fSml6`C_jrx9paVQY*5oyD6 z1(5LY#X`hFajba{y$=DDm3`^k7yIYLEIeeA9RVWMGp_0<_IQW}C~n8k&SpX6<2vd$ z+cPWk-8BI&PF~Z~k3B7&W7q~s?sBLbI8T2KPaN>Lk%ptziTf5Ht>y(4as%5n8^Fa; zd`@QOzd40lX0RsQ=u;aS?<7f9t|BI1gjFv%joU1E6qhf*e|i182UL9d*>FatuQm#o zrV!8nlh>E`U>V(CgO?Wo*KjYQX+EB;Su4kSe|Nv3g&^ewY_4vCScjd?lRKTkidaNJ$fB#R=8R-;k~fG*bU=pFe0I~NACtn@3q(9@c@Otw{>)O z&s%zSm3HrF`fdRFEecROAK#{zo$S8shbrDk0xJDitD|SijTDW(Wmf}-b45Pm$}>+n z$Yw(Xu*yo@!Z;PC1ac0M$8EyU@YXD;VZV`+-vj>h5GR34@Tp9mX3gF06*b7t|20NP z{k9cf@suhU+l3SZ21FC`nIv7txUG{7VY(~g2ATEvR}!anid03$#_fGh)m1=@QC!sp zF2-I#FpO3&69E8>?{mcJ9CHA3Ks!07e@Ht9&)EIV_@7f^h6jv(iJ%r8I?eqJ0SwG8 zu%E^?k-Eb~H7m;PlRr%H+KPp@AYM$AQ$h3Np1oN}89@`N& zFcPV6o<-vMaYE#sDeFv}_$PyYKJyfC!k?+12f4OP=Vlfv+- z*i8;W6BU?KvM2pIQ$0t={5prtRx1IYao)v!)A2%h*8Q(ReV9{{!mCNZS5FNp0?5tQ zQT9O~t0@dpDy3sfC>caM3Cy_s8HB;!AtyQ*NuA?UGXr`CPJWY1rJqYja(O)@c5kq-W+LdP~qqIw@@p~&=`DshZ)lf|G@tgh633T7!;C&T^puUyv!~U@w0gs&^R{C@sPdH$Ykn=Rl^i5P)BvekrDGV9LA4(;;%{8L z%Y(vD_AYM!lN;W>_u}{xd7~Ls6Rna->f>`t&Y;7 zr)WE<&r3m#x(CdH$rS2FHm7DADX8BZAZI6=qz}Ti^u5C} zQ|Q*<)2qJqrK8`H1u4JTz*XpxhIQMEM7gYc7W9*N9l3-T@>A-F7-bDn0NJKzF#Ref zltxKYcMel@qL*Ux%^eY-{z;m_;KaxPz5{ol{ z4q~uuG)SE5v|Xoilh<18#Q-KCQN6)Qd0nrKQ5kjfP3Xkq^WYEb6Wqwcza?UfpK(nP zEAs+`7lpVDSY9mS6`-y2hh#174f{7Q&&1x&u}uxi6UDvq9`puo6yDl)U%t@hra(w8{lh}j)|*nZ(Ce#RLwf$_w&Q6lIx+WfeiHC!9RsdI(`^ z{bvR(K1V0xFW8D_m7edv@DCW4&-$v4z!U3B-zdy+x@{2-az34Tnq;SAlzaY;g>pJO zln#IH-Z)1PY&qS)$xin-lOPLJ_Et&xZgZhQHpp6V#y&9Lt)Rv zcUZtqFEC;st`yqx0#zT^%Myn_e~6m)&~y_t5si&WEOG;%^p`3t4YrGi+x@jNp)Q{u~She+($aGMcHihbJb_&?0*6 zGv)&0BRq2l8A_&w_$z_Z!@iJMOwut1=D-dGZQ7AJ!I>W?=ED$ZZ15MOWglAYi?=k)(Mbkxux&n1?t(k2u!4{55ITtpz zW(otuMjKAy=N3FYSDiD<^OGrFZGg>iomy~ddexk~^y|Ea4pJplg|$F?p7hu7u}6AZ ztM$vX>auLNZP^Bmy=ma%K}!=!y(c9Q-M|%}X92|N7g#YKTC4uHxN=3VH zKTly=7M12gj_d#0zmoilk*!%3_gznLLqr%|)4Ht5Mj*1DrB94kMnuA=st`?=@n>HL zJsgk>&Im#TW$O;gSs4<)8`GnXPZHO5&oS!wbAuy&9>6=O3k7(u#pip)*J}Ox>%)ph zswn!Ed3P zjtivK(FxI1^xm8GN;!r>dp$PMpNr=+0b^|O!PN1XUj`lDpP61W+;$@$Oc`PVMSX8+JFkQvH- zwmg5hU%Pu->Q?62Z&&25*t*>s=T?TvU$N!`1uD!wY~1v{zd&2`TTbCq?4%Y27aBl8*z6d$HO8D|cB2V% z?}#d?VswdoYZ=VBvtO2Uc@@BcCtk*NZsD@vzO$^%Kc;LZDAV)&p8}D3; zd@j0aLMu^ExqtbOG(4*GvIYCMW(BG%jFwKUcainw1PXPrhxB65V&dV4gl>+1aBPy5<0UQt%JQCLw3I00n|pAN6}^;khM1g`#JPfCx~*?(f|*0D91;HvWjjps zn9k|-wfXsjc2G7FJMHWI{_o{~=D5dUOdOfshm`grzhrH34!R}8*|MDtrxS@!WqKN* zoNMXnMVTncWRGo$$gY~*;-{6*JEV8awaNI9(5~2g3|EkBUjtVuc;RuzOWF^cjG$=d z!QB38FULbM;8Uz@I-G3G>8CC_}= z`kpi+pq&p@zK4h#+{xn5>;DPFe47DmR`{9^LK%F|dm{l;bTCWs;B>|E$E_5Suy)J^ zY<}r0#hka|=UJb!KPC9%3Fvx7uuXlqXH9?A13{ihfq&6^uEa&^M~RF4#KK*S`#hNm zJ|z_}JKzNu!KGEELEaZ{kK>poc7bOteUFk6B*UGjZ7FrxO5IoHHe6UYM_9-k=6_;p1BgJU5Sl>hnJ* zEFKhMAG>YOtP@gRLs3&1uAysasxw<{zuG}t8D z;g#H~R#N`lg{sRoHjGjZ5p<{|$dt$eXMM1!)9a=^YyYXIf4kT7W{ph^AI83wxZ!j7 z3S+!^>w78GiA0gV_pRaYy!9sTxBM9^Vb6y;Id+2Mcw>WM;XAHLOckRG1$ zH#_)*UF?+B?G|0i&Wa`0KsA5zuu9KK#&f-M(j}iOD4PCL2zv*j6cz39?51D4%2v+l zA^kEvy^?Z)U-nE!n|Tdl(j}piNE#QK)y2(i@cYHse7^fo2OTyiNz+cRbu$sL3&*#i zGcQR=&=!xR?w#})Z!!UVR(i*?dcW%d>Ud1iNE8a8lauq9#)Zu7Q=qYr@0{D9Wbv2q z=XvO-;|oRx;`<=^bYwPb(kHJs67!g;>j>H%iYi5z#s1>UN=)&H-{R7LIYYfEyxn8`o`;wQ88Yaj^;X<}iLGl0*pW&BDu1#=- zGa{00$3##1E=D&hO5C%29QUs>zvc!*9B=J;m&)MHgsImKb0wuK^CQgRB|3#M1Clrz zke$HU;_v1u+6Kx!iY<>*7k}-4KPJRjnnNYbkY2`vrXK5aF;~WWn7Dqp7tqz~qd^8; zMYQB@!AC+QpKe^f6Nb570Wg0w_r;@>X}ccGa{k}>kTxrS92P%iyd@a^NDNm8dETkj zg~ZAtJdR?C;J}f1-hR0LR(q}H0Pcsc8M-V*4l*~jK;Aj~97p(Y&`eYHnjH8wwJwK*v_vV4Z>|u6bPAt+sBGd1YYhY15AM+i6 z|H~3wfARiGDu+i7>k7yJfg|#x*}0YmB!Z2i`CW}H0)Bp`kAq|it;euAswng=#5#5! zQRVm^J09_qC!36*%-f{ch5irU;%fMdM3zdbEe0IfB}7Ib-9DysPysulea^_Wb=sFx zAX8$JP-c*_{c2T4h42qEYGsoav^q1aGrF6|*6Db1kOGgUnHBOPJq__U{dXq5uCjB? zQwWdb`DFyE=b!uG0YZtg8w{;SOX-4}%`%gxFC$EGo4M__h4zwjyU|3q; zq8bq!+z4(v^5^ez2&%4MaqFNm95s!|!6bp2D659`Fs05+VY7>?hP^+@)(8kC*PpPk zp;g~y`~D$Sjq+j8e8)n|kzH-{5p0VxyIKc7xBWpo>94a-)%9#s3!|(Yl$aI`oUyLK z*^~^Z*Sa3RhaXCTR+=e-KK5Qk33}r*QuHE|Rg1hQ?qi`1_@FXk-I7r~dNWE2?mE(X zAEL;44Ni&_4n#YC==se$GebGS5vz=@bD?4$B$CHN&yM()GwMeND4_9(45z#?m#^H| zA}Dda1lnS^K>`gQxT*7Jmp&1=Wb7aTGG$P;PFrCv(5n4if_*W?iIl%Es@zc|_vWv>Y%fhreXJ z2fw|T`(!P#I>qlXUzi!jwke$zAcfVP#_8@)7{=aqulyiM(8N5?32(W4cuh9GOCE}1t`rua2|EHeD${C%}pJP3;Fw>()WaC1<2+CISw0$S0bm8XYILF7qtFR$`0?2CU~-!W_pjAie3s++PKEmSfYiQoEDV@HNE;!la{~jncQnVe*ct$Uc7(lXmin_lM!+E zi}WMs@N9xDN~FMxw7?+=DHU5cE`Of8o#jJjjtP^>I6ztJ*Khf%B?=;mzA-k-0Ir$V zFY9ES5_SFp4m&_aV^)UrsKH?Ewz_5$C&+$p@`5fwWKt3%d^FpRKgB{QBjS2?*@sAS zJ9Iz5MdRij<_=-u>$Be?5?QIjhx<)I%$kaZCJ2KutrKb*P1U|++iCTjsXX?22@~)i zqwi0#4~UyK4a#11P^%3HXYkXBX@8_^n!g;c*7eA)k`ignd)_iKWwW14i+c>CY1#@< zVfZSw_)m<(Vx5#PQ6Ok|c+c~EF%<6j=RFZqb;lquIU^s7Rt~c)>6guT`}|t(@f)#u z>2&Mp&#B%e<-+kgBMs8|SnEjSjg&b@j;!Zn5}2)?;-O2qz`HTs?>KtWUgIJl#%GNn ztWMG_lQ$ZPlC!k01>YJ`gHX+Om%yOoHN@rfgg{7z(s8#p;^c6a%>kS-?426+>LZ6l zSJ1*eO6K8~n@nJu6Z78H5G9EQVyixo9drXk|6RxUzS4`Y)Vxu|w#bWoCgPs9AA5t^ zOEc#@C4y1`q;r)-qLY}B+(OdvI{*uB*0Qb^p_KDeV8BxMi+h+wWu|-<(ol$Ah7fY- zNnP7n|3{;1d)BD!Xs0bO^CUme5;-x|dH3dH;k&RCjCo@jwf#b=XGz;NUF26t54B0# z;_nalARr-`w))~S-;-kMX4;rbOs$fZ@ba^7A`S1zc-S8v_edz$hVNf2>62kL9!Z6A zJ-Yg4@rH!y0wWPB(Io05ej27%n1-P*!ZxfnisSF5u>a(~o#xNPT6&KZuRNwGJ=ucmOP9KDnVmtLGcD@9My8 z07$q?Zz=P3BXc`qO@2`1&syD|f{3ohH|pUy*CBF2rc`?v3<7kS)k%`r!77~ce>2cKsCV0d~bnhDwHBF_-o^oZd9iMamFOvj=@ zD^MN5(5rvM&81#%8l4FcRDM;&UyHzUwu478AthMm|q1>D2f@0Ei+ZDc)Ok(nxJ#43L%&p4b9+6+Fb>TFLLk-WMZ zZy1hAX6@&&vB*t%BP<^#HOzy$xZ zH_#>kB&Q3S1(sut&xRjO+Ia++rpY#I=bgpbBb}!Fhkg0FP!gBlul9i7dp};s@5oy+ zLLtH?iAjE2<5~>kkn{ilIDuug)W76UkysJ`J%TDAMRu|Es&_dGs+v;$Cn+L7G=n&~ z>+ejyMk-TImj2XlQ23~#%E>Z!G2l^p@V15aJHaveVM`sS6dpl1NAT^pdkEW1;Wpk@ z$rWv|lF8)xJyY`q*Ty>n?eaebdWIgQZl(O~({G;81B0R@`#Q=g`RP`f-N7>MUThgm z6KP61%0o3Hhp|GzXXPCBPp@g4LBrqH>+&%Qg(;CKfzKXtzHH+X5^XlS5q6(Vs5FDfwv&)`E9?_2$TfX6y(>sB zfAc*@*s1YiZ67_*)H7Rp#nts8>C%I=%oGLtqvA~=`O&y2ZL>sAAn$1BP~W9n_*nOS zO=uV7890ShgV2&E{Gd*Yz9=D#lqqXQPv)x;dQ1}T=dmc!dA|Nm826p@r@9|#FO@{v*#6^X^saqhaC1e6>2x8fUA>cg9-t$stLsX4G>UjrOj?ZWCVt!?$4B1kq zxdU_~FRG6p>j>uXzu!|nS5R^=O@w~&vxWZ_?-q6WM}A{Y2$s|F5hEJeT~*JR6m|^; z?v{GfPF;GV0&c5;N#U(szaDi{-5%PSqk*oF(C@{3FlF2~hMX9jwk&>zp`dXFD5cIKZ28oj@|#cDiThSusA7OSD_D+yYqmk*llG?^cLdV^vT2mvu{LUo_@YY?X` z)BaP0j$wmjd&P2!clOWt^=tl6IESpDD%>1xy>?OX1AH4-d{;WcX;TJ~U2gYt>wLJ5I&lKf)#(WE_f&O^mjuq%q?l>Y{?=QsvoN}rkwz4O5ga~ygb8utnbk-LNhZR>CPWYn{V$bU~Q`TO88T-=nHALZ5__0%Er1drhL}O)DyRx!MeD#HBH;WpxG&W3tkelp z>SqsohtqC{YbT90swm!j_k$*qYn7Q~b^7ab=H!w=DlXK@O4|!*1I^X1TY?P$;otC} z#ptEy4Ezr_xvkau=-fL~eYsXajGO9TB&X45n*4->~m7XK9TX>z4Kc zcMHQYmJNF!nggu%6Pbyg+e^EehJG{^>=YH@@H|JrSm3xM_6JRbahUwK;h8BHgyk8f zX4tnq!MwiwAINqe9om>FAU~&eKjW1G4~W-felHm*5ezqF~;hN_nB19gvs#7&QJsoQIiiahc2V5icSa{2_{ zl4ud#>+_6U?7xs%qmU$_zg4J8l>%?WVEMET(Hmay8XVef-}V(_&ad ziYxXk9AyPWf`{J%@GTF;vYobrc8`5-vy0wGzh1ii7|(W0Q}&K&0OB;i*Z8jEX+?D$ zVdy6$(51*enwGm4CLY~ud)DH--c|iqMwX?*Sb-&{a04WseEA)`T1G6NfcBza&fbQG z=Iw_GSbF|`Eu6H{ZSo$&grw|RzHnZNv&r4zwGd7jrqi-Eo|4fZubj?iuej?w;W#gy z2x&eYI%A)cG1UMf1zE=JqUyjd0*ep-7NmDwVqSMNnNdS?joVYhD%97txM&gdN*49~ zDt;e7Qu!0zXwdgiyiLvSq#a7qbD*t$+H6WkAZ9F#fh$8at=g0`dlVXBC&N{ zutqYzo99WRPGT1+{tAT_%*Cqs`> A2>aK?YC$iCAUG>a%y$`;XZBgpYb^&>3~E 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 z zA3N%9eCCST?~>S?w;ZGXLF&AN%wwp!&ZdCAt>FicW|p|rlia1urqSBUbVhQTj`S4v z9znp9k6y!x;>@Y#hz~vF^5*op73;so0o~$O)ys%p9?22hv=@x|zUN)^t=M@D-Bwm? zK^8K4T#T*O(1+e1yH|c>Bd2U`8lVBV+*31ee*g6&oHauiqV4o)(mib6a#()9lcopa zSnz^eF;9Ge?|qpl9r&bvANu@8x{W8W&yO@9lgE6d;S&HIXqf9_ctsi4Y!&~S1T6^YstGQ%FP`DBF;

B#ZNz>^s{vRr6YMG-JF@vV!xNL^jSol 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�i<(WaJdwWi-Bj;Dh+H=@Qx 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 literal 0 HcmV?d00001 From 772b0360b7d14324d20fff501b3fc8ab825db2a1 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 15:03:41 -0500 Subject: [PATCH 12/14] pre-commit --- r/sedonadb/README.Rmd | 4 ++-- r/sedonadb/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/r/sedonadb/README.Rmd b/r/sedonadb/README.Rmd index 06167c5c7..5b9a784d2 100644 --- a/r/sedonadb/README.Rmd +++ b/r/sedonadb/README.Rmd @@ -82,7 +82,7 @@ sd_sql("SELECT * FROM nc") ``` ```{r} -sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> - st_as_sf() |> +sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> + st_as_sf() |> plot() ``` diff --git a/r/sedonadb/README.md b/r/sedonadb/README.md index 474eca365..20bc812eb 100644 --- a/r/sedonadb/README.md +++ b/r/sedonadb/README.md @@ -112,8 +112,8 @@ sd_sql("SELECT * FROM nc") ``` ``` r -sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> - st_as_sf() |> +sd_sql("SELECT ST_Buffer(geometry, 0.1) as geometry FROM nc") |> + st_as_sf() |> plot() ``` From df81f1aedfc2ccc8b59df986aa18700d20a69496 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 15:17:08 -0500 Subject: [PATCH 13/14] Update r/sedonadb/src/rust/src/lib.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- r/sedonadb/src/rust/src/lib.rs | 88 ---------------------------------- 1 file changed, 88 deletions(-) diff --git a/r/sedonadb/src/rust/src/lib.rs b/r/sedonadb/src/rust/src/lib.rs index c9ef169a3..e7359d399 100644 --- a/r/sedonadb/src/rust/src/lib.rs +++ b/r/sedonadb/src/rust/src/lib.rs @@ -44,91 +44,3 @@ fn sedonadb_adbc_init_func() -> savvy::Result { } } -/// Convert Input To Upper-Case -/// -/// @param x A character vector. -/// @returns A character vector with upper case version of the input. -/// @export -#[savvy] -fn to_upper(x: StringSexp) -> savvy::Result { - let mut out = OwnedStringSexp::new(x.len())?; - - for (i, e) in x.iter().enumerate() { - if e.is_na() { - out.set_na(i)?; - continue; - } - - let e_upper = e.to_uppercase(); - out.set_elt(i, &e_upper)?; - } - - Ok(out.into()) -} - -/// Multiply Input By Another Input -/// -/// @param x An integer vector. -/// @param y An integer to multiply. -/// @returns An integer vector with values multiplied by `y`. -/// @export -#[savvy] -fn int_times_int(x: IntegerSexp, y: i32) -> savvy::Result { - let mut out = OwnedIntegerSexp::new(x.len())?; - - for (i, e) in x.iter().enumerate() { - if e.is_na() { - out.set_na(i)?; - } else { - out[i] = e * y; - } - } - - Ok(out.into()) -} - -#[savvy] -struct Person { - pub name: String, -} - -/// A person with a name -/// -/// @export -#[savvy] -impl Person { - fn new() -> Self { - Self { - name: "".to_string(), - } - } - - fn set_name(&mut self, name: &str) -> savvy::Result<()> { - self.name = name.to_string(); - Ok(()) - } - - fn name(&self) -> savvy::Result { - let mut out = OwnedStringSexp::new(1)?; - out.set_elt(0, &self.name)?; - Ok(out.into()) - } - - fn associated_function() -> savvy::Result { - let mut out = OwnedStringSexp::new(1)?; - out.set_elt(0, "associated_function")?; - Ok(out.into()) - } -} - -// This test is run by `cargo test`. You can put tests that don't need a real -// R session here. -#[cfg(test)] -mod test1 { - #[test] - fn test_person() { - let mut p = super::Person::new(); - p.set_name("foo").expect("set_name() must succeed"); - assert_eq!(&p.name, "foo"); - } -} From 78251b90ef629a34973f0bc375c4fc99032c76e5 Mon Sep 17 00:00:00 2001 From: Dewey Dunnington Date: Wed, 10 Sep 2025 15:22:15 -0500 Subject: [PATCH 14/14] remove wraper code --- r/sedonadb/NAMESPACE | 3 -- r/sedonadb/R/000-wrappers.R | 66 +-------------------------------- r/sedonadb/man/int_times_int.Rd | 19 ---------- r/sedonadb/man/to_upper.Rd | 17 --------- r/sedonadb/src/init.c | 37 ------------------ r/sedonadb/src/rust/api.h | 9 +---- r/sedonadb/src/rust/src/lib.rs | 4 -- 7 files changed, 2 insertions(+), 153 deletions(-) delete mode 100644 r/sedonadb/man/int_times_int.Rd delete mode 100644 r/sedonadb/man/to_upper.Rd diff --git a/r/sedonadb/NAMESPACE b/r/sedonadb/NAMESPACE index 5133f5d14..0be588eaf 100644 --- a/r/sedonadb/NAMESPACE +++ b/r/sedonadb/NAMESPACE @@ -15,10 +15,8 @@ S3method(head,sedonadb_dataframe) S3method(infer_nanoarrow_schema,sedonadb_dataframe) S3method(print,InternalContext__bundle) S3method(print,InternalDataFrame__bundle) -S3method(print,Person__bundle) S3method(print,sedonadb_dataframe) export(as_sedonadb_dataframe) -export(int_times_int) export(sd_collect) export(sd_compute) export(sd_count) @@ -29,7 +27,6 @@ export(sd_sql) export(sd_to_view) export(sd_view) export(sedonadb_adbc) -export(to_upper) importFrom(nanoarrow,as_nanoarrow_array_stream) importFrom(nanoarrow,infer_nanoarrow_schema) importFrom(utils,head) diff --git a/r/sedonadb/R/000-wrappers.R b/r/sedonadb/R/000-wrappers.R index fcb339d40..a375d295c 100644 --- a/r/sedonadb/R/000-wrappers.R +++ b/r/sedonadb/R/000-wrappers.R @@ -14,6 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. + # Generated by savvy: do not edit by hand # # Note: @@ -58,30 +59,11 @@ NULL invisible(.Call(savvy_init_r_runtime_interrupts__impl, `interrupts_call`, `pkg_env`)) } -#' Multiply Input By Another Input -#' -#' @param x An integer vector. -#' @param y An integer to multiply. -#' @returns An integer vector with values multiplied by `y`. -#' @export -`int_times_int` <- function(`x`, `y`) { - .Call(savvy_int_times_int__impl, `x`, `y`) -} - `sedonadb_adbc_init_func` <- function() { .Call(savvy_sedonadb_adbc_init_func__impl) } -#' Convert Input To Upper-Case -#' -#' @param x A character vector. -#' @returns A character vector with upper case version of the input. -#' @export -`to_upper` <- function(`x`) { - .Call(savvy_to_upper__impl, `x`) -} - ### wrapper functions for InternalContext `InternalContext_data_frame_from_array_stream` <- function(self) { @@ -235,49 +217,3 @@ class(`InternalDataFrame`) <- c("InternalDataFrame__bundle", "savvy_sedonadb__se `print.InternalDataFrame__bundle` <- function(x, ...) { cat('InternalDataFrame\n') } - -### wrapper functions for Person - -`Person_name` <- function(self) { - function() { - .Call(savvy_Person_name__impl, `self`) - } -} - -`Person_set_name` <- function(self) { - function(`name`) { - invisible(.Call(savvy_Person_set_name__impl, `self`, `name`)) - } -} - -`.savvy_wrap_Person` <- function(ptr) { - e <- new.env(parent = emptyenv()) - e$.ptr <- ptr - e$`name` <- `Person_name`(ptr) - e$`set_name` <- `Person_set_name`(ptr) - - class(e) <- c("Person", "savvy_sedonadb__sealed") - e -} - - - -`Person` <- new.env(parent = emptyenv()) - -### associated functions for Person - -`Person`$`associated_function` <- function() { - .Call(savvy_Person_associated_function__impl) -} - -`Person`$`new` <- function() { - .savvy_wrap_Person(.Call(savvy_Person_new__impl)) -} - - -class(`Person`) <- c("Person__bundle", "savvy_sedonadb__sealed") - -#' @export -`print.Person__bundle` <- function(x, ...) { - cat('Person\n') -} diff --git a/r/sedonadb/man/int_times_int.Rd b/r/sedonadb/man/int_times_int.Rd deleted file mode 100644 index 565baee4d..000000000 --- a/r/sedonadb/man/int_times_int.Rd +++ /dev/null @@ -1,19 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/000-wrappers.R -\name{int_times_int} -\alias{int_times_int} -\title{Multiply Input By Another Input} -\usage{ -int_times_int(x, y) -} -\arguments{ -\item{x}{An integer vector.} - -\item{y}{An integer to multiply.} -} -\value{ -An integer vector with values multiplied by \code{y}. -} -\description{ -Multiply Input By Another Input -} diff --git a/r/sedonadb/man/to_upper.Rd b/r/sedonadb/man/to_upper.Rd deleted file mode 100644 index e2d9321a1..000000000 --- a/r/sedonadb/man/to_upper.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/000-wrappers.R -\name{to_upper} -\alias{to_upper} -\title{Convert Input To Upper-Case} -\usage{ -to_upper(x) -} -\arguments{ -\item{x}{A character vector.} -} -\value{ -A character vector with upper case version of the input. -} -\description{ -Convert Input To Upper-Case -} diff --git a/r/sedonadb/src/init.c b/r/sedonadb/src/init.c index 3c875a297..2434cda09 100644 --- a/r/sedonadb/src/init.c +++ b/r/sedonadb/src/init.c @@ -63,21 +63,11 @@ SEXP savvy_init_r_runtime_interrupts__impl(SEXP c_arg__interrupts_call, return handle_result(res); } -SEXP savvy_int_times_int__impl(SEXP c_arg__x, SEXP c_arg__y) { - SEXP res = savvy_int_times_int__ffi(c_arg__x, c_arg__y); - return handle_result(res); -} - SEXP savvy_sedonadb_adbc_init_func__impl(void) { SEXP res = savvy_sedonadb_adbc_init_func__ffi(); return handle_result(res); } -SEXP savvy_to_upper__impl(SEXP c_arg__x) { - SEXP res = savvy_to_upper__ffi(c_arg__x); - return handle_result(res); -} - SEXP savvy_InternalContext_data_frame_from_array_stream__impl( SEXP self__, SEXP c_arg__stream_xptr, SEXP c_arg__collect_now) { SEXP res = savvy_InternalContext_data_frame_from_array_stream__ffi( @@ -165,33 +155,11 @@ SEXP savvy_InternalDataFrame_to_view__impl(SEXP self__, SEXP c_arg__ctx, return handle_result(res); } -SEXP savvy_Person_associated_function__impl(void) { - SEXP res = savvy_Person_associated_function__ffi(); - return handle_result(res); -} - -SEXP savvy_Person_name__impl(SEXP self__) { - SEXP res = savvy_Person_name__ffi(self__); - return handle_result(res); -} - -SEXP savvy_Person_new__impl(void) { - SEXP res = savvy_Person_new__ffi(); - return handle_result(res); -} - -SEXP savvy_Person_set_name__impl(SEXP self__, SEXP c_arg__name) { - SEXP res = savvy_Person_set_name__ffi(self__, c_arg__name); - return handle_result(res); -} - static const R_CallMethodDef CallEntries[] = { {"savvy_init_r_runtime_interrupts__impl", (DL_FUNC)&savvy_init_r_runtime_interrupts__impl, 2}, - {"savvy_int_times_int__impl", (DL_FUNC)&savvy_int_times_int__impl, 2}, {"savvy_sedonadb_adbc_init_func__impl", (DL_FUNC)&savvy_sedonadb_adbc_init_func__impl, 0}, - {"savvy_to_upper__impl", (DL_FUNC)&savvy_to_upper__impl, 1}, {"savvy_InternalContext_data_frame_from_array_stream__impl", (DL_FUNC)&savvy_InternalContext_data_frame_from_array_stream__impl, 3}, {"savvy_InternalContext_deregister_table__impl", @@ -222,11 +190,6 @@ static const R_CallMethodDef CallEntries[] = { (DL_FUNC)&savvy_InternalDataFrame_to_arrow_stream__impl, 2}, {"savvy_InternalDataFrame_to_view__impl", (DL_FUNC)&savvy_InternalDataFrame_to_view__impl, 4}, - {"savvy_Person_associated_function__impl", - (DL_FUNC)&savvy_Person_associated_function__impl, 0}, - {"savvy_Person_name__impl", (DL_FUNC)&savvy_Person_name__impl, 1}, - {"savvy_Person_new__impl", (DL_FUNC)&savvy_Person_new__impl, 0}, - {"savvy_Person_set_name__impl", (DL_FUNC)&savvy_Person_set_name__impl, 2}, {NULL, NULL, 0}}; void R_init_sedonadb(DllInfo *dll) { diff --git a/r/sedonadb/src/rust/api.h b/r/sedonadb/src/rust/api.h index 5956d6bd3..413898814 100644 --- a/r/sedonadb/src/rust/api.h +++ b/r/sedonadb/src/rust/api.h @@ -14,12 +14,11 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. + SEXP savvy_init_r_runtime__ffi(DllInfo *c_arg___dll_info); SEXP savvy_init_r_runtime_interrupts__ffi(SEXP c_arg__interrupts_call, SEXP c_arg__pkg_env); -SEXP savvy_int_times_int__ffi(SEXP c_arg__x, SEXP c_arg__y); SEXP savvy_sedonadb_adbc_init_func__ffi(void); -SEXP savvy_to_upper__ffi(SEXP c_arg__x); // methods and associated functions for InternalContext SEXP savvy_InternalContext_data_frame_from_array_stream__ffi( @@ -45,9 +44,3 @@ SEXP savvy_InternalDataFrame_to_arrow_stream__ffi(SEXP self__, SEXP c_arg__out); SEXP savvy_InternalDataFrame_to_view__ffi(SEXP self__, SEXP c_arg__ctx, SEXP c_arg__table_ref, SEXP c_arg__overwrite); - -// methods and associated functions for Person -SEXP savvy_Person_associated_function__ffi(void); -SEXP savvy_Person_name__ffi(SEXP self__); -SEXP savvy_Person_new__ffi(void); -SEXP savvy_Person_set_name__ffi(SEXP self__, SEXP c_arg__name); diff --git a/r/sedonadb/src/rust/src/lib.rs b/r/sedonadb/src/rust/src/lib.rs index e7359d399..edc2913a1 100644 --- a/r/sedonadb/src/rust/src/lib.rs +++ b/r/sedonadb/src/rust/src/lib.rs @@ -20,9 +20,6 @@ use std::ffi::c_void; use savvy::savvy; -use savvy::{IntegerSexp, OwnedIntegerSexp, OwnedStringSexp, StringSexp}; - -use savvy::NotAvailableValue; use savvy_ffi::R_NilValue; use sedona_adbc::AdbcSedonadbDriverInit; @@ -43,4 +40,3 @@ fn sedonadb_adbc_init_func() -> savvy::Result { ))) } } -

m8cfitrKML_f=VPDBsWGi_5=}e3>Ue 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