From ced64a5433550acd0cfb3b0ed52650bd413e1e69 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 28 Oct 2021 17:23:45 -0400 Subject: [PATCH 001/238] Code style of unit tests for SWRC/PDF functionality - improve code style, documentation, and organization of unit tests - no changes in tests --- tests/testthat/test_pedotransferfunctions.R | 223 ++++++++++++-------- 1 file changed, 133 insertions(+), 90 deletions(-) diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 30dd7b8c..1a9480cc 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -29,29 +29,42 @@ texture <- data.frame( sand = c(0.92, 0.82, 0.58, 0.43, 0.17, 0.58, 0.32, 0.10, 0.52, 0.06, 0.22), clay = c(0.03, 0.06, 0.10, 0.18, 0.13, 0.27, 0.34, 0.34, 0.42, 0.47, 0.58) ) -row.names(texture) <- c("Sand", "Loamy sand", "Sandy loam", "Loam", +row.names(texture) <- c( + "Sand", "Loamy sand", "Sandy loam", "Loam", "Silty loam", "Sandy clay loam", "Clay loam", "Silty clay loam", "Sandy clay", - "Silty clay", "Clay") + "Silty clay", "Clay" +) # Field capacity and agricultural permanent wilting point swp_fix <- c(fc = -0.0333, pwp = -1.5) # MPa vwc_fix <- data.frame( - fc = c(0.103519295200457, 0.138084712513314, 0.210684319180335, + fc = c( + 0.103519295200457, 0.138084712513314, 0.210684319180335, 0.276327910591054, 0.344767253784927, 0.259008902122202, 0.331526118930414, - 0.391036796958834, 0.292943352979446, 0.4058577839142, 0.368820489547312), - pwp = c(0.0325953572147933, 0.05064269086372, 0.0903291990594713, + 0.391036796958834, 0.292943352979446, 0.4058577839142, 0.368820489547312 + ), + pwp = c( + 0.0325953572147933, 0.05064269086372, 0.0903291990594713, 0.143273427070284, 0.163171562436244, 0.152236773973314, 0.210032386550814, - 0.248623511289573, 0.196521033130402, 0.282030801991246, 0.269525768616734) + 0.248623511289573, 0.196521033130402, 0.282030801991246, 0.269525768616734 + ) ) row.names(vwc_fix) <- row.names(texture) ftemp <- file.path("..", "test_data", "swp_values.rds") if (FALSE) { - swp_vals <- unlist(lapply(row.names(texture), function(itext) - VWCtoSWP(vwc_fix, texture[itext, "sand"], texture[itext, "clay"]))) + swp_vals <- unlist(lapply( + row.names(texture), + function(itext) { + VWCtoSWP(vwc_fix, texture[itext, "sand"], texture[itext, "clay"]) + } + )) dim(swp_vals) <- c(nrow(vwc_fix), ncol(vwc_fix), nrow(texture)) - dimnames(swp_vals) <- list(row.names(texture), names(swp_fix), - row.names(texture)) + dimnames(swp_vals) <- list( + row.names(texture), + names(swp_fix), + row.names(texture) + ) saveRDS(swp_vals, file = ftemp) } else { @@ -59,92 +72,122 @@ if (FALSE) { } #--- Tests -test_that("To SWP", { - # 1. VWC in fraction [single value] + sand and clay in fraction [single vals] - # --> SWP in MPa [single value] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent(swp_fix[ifix], - VWCtoSWP(vwc_fix[itext, ifix], texture[itext, "sand"], - texture[itext, "clay"])) - - # 2. VWC in fraction [single value] + sand and clay in fraction - # [vectors of length d] - # --> SWP in MPa [vector of length d] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent(swp_vals[itext, ifix, ], - VWCtoSWP(vwc_fix[itext, ifix], texture[, "sand"], texture[, "clay"])) - - # 3. VWC in fraction [vector of length l] + sand and clay in fraction - # [single values] - # --> SWP in MPa [vector of length l] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent(swp_vals[, ifix, itext], - VWCtoSWP(vwc_fix[, ifix], texture[itext, "sand"], texture[itext, "clay"])) - - # 4. VWC in fraction [vector of length l] + sand and clay in fraction - # [vectors of length d] - # --> SWP in MPa [matrix with nrow = l and ncol = d, VWC vector repeated - # for each column]: probably not used - for (ifix in names(swp_fix)) - expect_equivalent(swp_vals[, ifix, ], - VWCtoSWP(vwc_fix[, ifix], texture[, "sand"], texture[, "clay"])) - - # 5. VWC in fraction [matrix with nrow = l and ncol = d] + sand and clay in - # fraction [single values] - # --> SWP in MPa [matrix with nrow = l and ncol = d] - for (itext in row.names(texture)) - expect_equivalent(swp_vals[, , itext], - VWCtoSWP(vwc_fix, texture[itext, "sand"], texture[itext, "clay"])) - - # 6. VWC in fraction [matrix with nrow = l and ncol = d] + sand and clay in - # fraction [vectors of length d] - # --> SWP in MPa [matrix with nrow = l and ncol = d, sand/clay vector - # repeated for each row] +test_that("Use SWRC to convert between VWC/SWP", { + # 1. x [len = 1] + soils [len = 1] --> res [len = 1] for (ifix in names(swp_fix)) { - xin <- matrix(vwc_fix[, ifix], nrow = nrow(vwc_fix), ncol = nrow(texture), - byrow = TRUE) - xout <- matrix(swp_fix[ifix], nrow = nrow(vwc_fix), ncol = nrow(texture)) - expect_equivalent(xout, - VWCtoSWP(xin, texture[, "sand"], texture[, "clay"])) + for (itext in row.names(texture)) { + expect_equivalent( + VWCtoSWP( + vwc_fix[itext, ifix], + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ), + swp_fix[ifix] + ) + + expect_equivalent( + SWPtoVWC( + swp_fix[ifix], + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ), + vwc_fix[itext, ifix] + ) + } } -}) -test_that("To VWC", { - # 1. SWP in MPa [single value] + sand and clay in fraction [single values] - # --> VWC in fraction [single value] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent(vwc_fix[itext, ifix], - SWPtoVWC(swp_fix[ifix], texture[itext, "sand"], texture[itext, "clay"])) - - # 2. SWP in MPa [single value] + sand and clay in fraction - # [vectors of length d] - # --> VWC in fraction [vector of length d] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent(vwc_fix[, ifix], - SWPtoVWC(swp_fix[ifix], texture[, "sand"], texture[, "clay"])) - - # 3. SWP in MPa [vector of length l] + sand and clay in fraction - # [single values] - # --> VWC in fraction [vector of length l] - for (ifix in names(swp_fix)) for (itext in row.names(texture)) - expect_equivalent( - SWPtoVWC(rep(swp_fix[ifix], nrow(texture)), texture[itext, "sand"], - texture[itext, "clay"]), - rep(vwc_fix[itext, ifix], nrow(texture))) + # 2. x [len = 1] + soils [len = d] --> res [len = d] + for (ifix in names(swp_fix)) { + for (itext in row.names(texture)) { + expect_equivalent( + VWCtoSWP( + vwc_fix[itext, ifix], + sand = texture[, "sand"], + clay = texture[, "clay"] + ), + swp_vals[itext, ifix, ] + ) + + expect_equivalent( + SWPtoVWC( + swp_fix[ifix], + sand = texture[, "sand"], + clay = texture[, "clay"] + ), + vwc_fix[, ifix] + ) + } + } + - # 4. SWP in MPa [vector of length l] + sand and clay in fraction - # [vectors of length d] - # --> VWC in fraction [matrix with nrow = l and ncol = d, SWP vector - # repeated for each column]: probably not used + # 3. x [len = l] + soils [len = 1] --> res [len = l] + for (ifix in names(swp_fix)) { + for (itext in row.names(texture)) { + expect_equivalent( + VWCtoSWP( + vwc_fix[, ifix], + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ), + swp_vals[, ifix, itext] + ) + + expect_equivalent( + SWPtoVWC( + rep(swp_fix[ifix], nrow(texture)), + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ), + rep(vwc_fix[itext, ifix], nrow(texture)) + ) + } + } - # 5. SWP in MPa [matrix with nrow = l and ncol = d] + sand and clay in - # fraction [single values] - # --> VWC in fraction [matrix with nrow = l and ncol = d] + # 4. x [len = l] + soils [len = d] -> res [dim = l x d] + # (x vector repeated for each soil): probably not used + for (ifix in names(swp_fix)) { + expect_equivalent( + VWCtoSWP( + vwc_fix[, ifix], + sand = texture[, "sand"], + clay = texture[, "clay"] + ), + swp_vals[, ifix, ] + ) + } - # 6. SWP in MPa [matrix with nrow = l and ncol = d] + sand and clay in - # fraction [vectors of length d] - # --> VWC in fraction [matrix with nrow = l and ncol = d, sand/clay vector - # repeated for each row] + # 5. x [dim = l x d] + soils [len = 1] --> res [dim = l x d] + for (itext in row.names(texture)) { + expect_equivalent( + VWCtoSWP( + vwc_fix, + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ), + swp_vals[, , itext] + ) + } + # 6. x [dim = l x d] + soils [len = d] --> res [dim = l x d] + # (soils vectors repeated for each row of x) + for (ifix in names(swp_fix)) { + expect_equivalent( + VWCtoSWP( + matrix( + vwc_fix[, ifix], + nrow = nrow(vwc_fix), + ncol = nrow(texture), + byrow = TRUE + ), + sand = texture[, "sand"], + clay = texture[, "clay"] + ), + matrix( + swp_fix[ifix], + nrow = nrow(vwc_fix), + ncol = nrow(texture) + ) + ) + } }) From 4678c075bd6d2a3f7e3eaddaa33bed2d3c1a7381 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 28 Oct 2021 17:29:09 -0400 Subject: [PATCH 002/238] Clean up "SW_R_lib.c": remove unnecessary externed SOILWAT2 variables --- src/SW_R_lib.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 0eb1e24a..e512b360 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -47,9 +47,7 @@ Bool bWeatherList; extern char _firstfile[1024]; -extern SW_MODEL SW_Model; -extern SW_SOILWAT SW_Soilwat; -extern SW_VEGESTAB SW_VegEstab; +extern SW_SOILWAT SW_Soilwat; // used by `tempError()` /* =================================================== */ From 3b34247ad76b4c0ed32a6b0f4c688161629c8a03 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 1 Nov 2021 17:22:23 -0400 Subject: [PATCH 003/238] Set submodule SOILWAT2 to branch "feature_swrc" --- .gitmodules | 2 +- src/SOILWAT2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 39058bbd..1d6e7ee2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = master + branch = feature_swrc diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 606c70d0..ede207aa 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 606c70d0a2923abd0656dac99d6475b71c00be69 +Subproject commit ede207aa7a5b1107c5d9a616279e5e4efa5f5dd8 From 3495f519956e5213b8f6fdb44a252a2493643b3e Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 1 Nov 2021 17:45:44 -0400 Subject: [PATCH 004/238] Update conversion between soil water content and soil water potential - access SOILWAT2 c code to use SWRCs and PDFs (see https://github.com/DrylandEcology/SOILWAT2/commit/ede207aa7a5b1107c5d9a616279e5e4efa5f5dd8) -> replacing R code that duplicated functionality already implemented in SOILWAT2 - functions to convert water content to/from water potential: `swrc_conversion()`, `swrc_swp_to_vwc()`, and `swrc_vwc_to_swp()` * replacing deprecated functions `SWPtoVWC()` and `VWCtoSWP()` - separate functions to estimate SWRC parameters from soil texture (PDFs): `pdf_estimate()` * previously integrated into `SWPtoVWC()` and `VWCtoSWP()` - new functionality to check SWRC parameters: `check_swrcp()` - updated documentation and unit tests -> previous output is maintained --- NAMESPACE | 5 + R/sw_Pedotransfer_Functions.R | 516 +++++++++++++++++++- inst/WORDLIST | 3 + man/SWRCs.Rd | 71 +++ man/check_swrcp.Rd | 51 ++ man/pdf_estimate.Rd | 69 +++ man/pedotransfer.Rd | 4 +- man/swrc_conversion.Rd | 118 +++++ src/SW_R_init.c | 40 +- src/SW_R_lib.c | 319 ++++++++++++ src/SW_R_lib.h | 19 + tests/testthat/test_pedotransferfunctions.R | 42 +- 12 files changed, 1229 insertions(+), 28 deletions(-) create mode 100644 man/SWRCs.Rd create mode 100644 man/check_swrcp.Rd create mode 100644 man/pdf_estimate.Rd create mode 100644 man/swrc_conversion.Rd diff --git a/NAMESPACE b/NAMESPACE index ae0c7c24..701c3b2c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -16,6 +16,7 @@ export(calc_RRs_Maestas2016) export(calc_SMTRs) export(calc_SiteClimate) export(check_TranspirationRegions) +export(check_swrcp) export(check_updatedDB) export(check_version) export(compare_weather) @@ -76,6 +77,7 @@ export(get_years_from_weatherDF) export(get_years_from_weatherData) export(has_soilTemp_failed) export(lookup_annual_CO2a) +export(pdf_estimate) export(prepare_TranspirationRegions) export(print_mkv_files) export(set_Markov) @@ -103,6 +105,9 @@ export(sw_inputData) export(sw_inputDataFromFiles) export(sw_out_flags) export(sw_outputData) +export(swrc_conversion) +export(swrc_swp_to_vwc) +export(swrc_vwc_to_swp) export(update_biomass) export(update_requested_years) exportClasses(swCarbon) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index bfc99626..36c90012 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -123,7 +123,18 @@ pedotransfer <- function(x, sand, clay, pdf) { #' vectors are repeated for each row} #' } #' @export -SWPtoVWC <- function(swp, sand, clay) { +SWPtoVWC <- function(swp, sand, clay, ...) { + .Deprecated("swrc_swp_to_vwc") + + swrc_swp_to_vwc( + swp_MPa = swp, + sand = sand, + clay = clay, + ... + ) +} + +SWPtoVWC_old <- function(swp, sand, clay) { pedotransfer(swp, sand, clay, pdf = pdf_to_vwc) } @@ -164,6 +175,507 @@ SWPtoVWC <- function(swp, sand, clay) { #' vectors are repeated for each row} #' } #' @export -VWCtoSWP <- function(vwc, sand, clay) { +VWCtoSWP <- function(vwc, sand, clay, ...) { + .Deprecated("swrc_vwc_to_swp") + + swrc_vwc_to_swp( + vwcBulk = vwc, + sand = sand, + clay = clay, + ... + ) +} + +VWCtoSWP_old <- function(vwc, sand, clay) { pedotransfer(vwc, sand, clay, pdf = pdf_to_swp) } + + + + +#------ SWRC parameters & pedotransfer functions ------ + +#' Functionality for Soil Water Retention Curves (`SWRC`) +#' +#' @description +#' `SWRCs` convert between soil water content and soil water potential +#' using a set of parameters, see [swrc_swp_to_vwc()] and [swrc_vwc_to_swp()]. +#' +#' The `SWRC` parameters may be estimated from soil properties with suitable +#' pedotransfer functions `PDFs`, see [pdf_estimate()]. +#' +#' The `SWRC` parameters can be checked for consistency with [check_swrcp()]. +#' +#' +#' @param sand A numeric value or vector. +#' Sand content of the matric soil component +#' (< 2 mm fraction; units of `[g/g]`) of each soil layer. +#' @param clay A numeric value or vector. +#' Clay content of the matric soil component +#' (< 2 mm fraction; units of `[g/g]`) of each soil layer. +#' @param gravel A numeric value or vector. +#' Coarse fragments, e.g., gravel, (> 2 mm; units of `[m3/m3]`) +#' relative to the whole soil of each soil layer. +#' `gravel` is required, for instance, to translate between +#' values relative to the matric soil component (< 2 mm fraction) and +#' relative to the whole soil (matric soil plus coarse fragments). +#' @param layer_width A numeric value or vector. +#' Depth interval, width, of each soil layer (units of `cm`). +#' `layer_width` is required to translate between +#' soil water content of a soil layer and volumetric water content. +#' @param swrc_type An integer value or vector. +#' The identification number of selected `SWRC`. +#' @param pdf_type An integer value or vector. +#' The identification number of selected `PDF`. +#' @param swrcp A numeric vector or matrix. +#' The parameters of a selected `SWRC`; +#' each row represents one `SWRC`, e.g., one per soil layer. +#' @param swrc A named list. +#' Contains all necessary elements of a `SWRC`, +#' i.e., `swrc_type` and `swrcp`, +#' or all necessary elements to estimate parameters of a `SWRC` given +#' soil parameters, i.e., `swrc_type` and `pdf_type`. +#' +#' @section Details: +#' Implemented SWRCs (`swrc_type`): +#' 1. Campbell 1974 +#' +#' @references Campbell, G. S. 1974. +#' A simple method for determining unsaturated conductivity +#' from moisture retention data. +#' Soil Science, 117(6):311-314. \doi{10.1097/00010694-197406000-00001} +#' +#' @seealso +#' [pdf_estimate()], +#' [check_swrcp()], +#' [swrc_swp_to_vwc()], +#' [swrc_vwc_to_swp()] +#' +#' @name SWRCs +#' @md +NULL + + +#' Estimate `SWRC` parameters from soil texture with a pedotransfer function +#' +#' @inheritParams SWRCs +#' +#' @section Details: +#' Implemented PDFs (`pdf_type`): +#' 1. Cosby et al. 1984 PDF estimates parameters of Campbell 1974 SWRC +#' +#' @section Details: +#' See [SWRCs] for suitable values of `swrc_type`. +#' +#' @section Notes: +#' The soil parameters `sand`, `clay`, and `gravel` must be of +#' the same length, i.e., represent one soil (length 1) or +#' multiple soil (layers) (length > 1). +#' The arguments selecting `SWRC` (`swrc_type`) and `PDF` (`pdf_type`) +#' are recycled for multiple soil layers. +#' +#' @inherit SWRCs references +#' +#' @references Cosby, B. J., G. M. Hornberger, R. B. Clapp, and T. R. Ginn. +#' 1984. A statistical exploration of the relationships of soil moisture +#' characteristics to the physical properties of soils. +#' Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} +#' +#' @return `swrcp`, i.e,. +#' a numeric matrix where rows represent soil (layers) and +#' columns represent a fixed number of `SWRC` parameters. +#' The interpretation is dependent on the selected `SWRC`. +#' +#' @examples +#' pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) +#' +#' @md +#' @export +pdf_estimate <- function(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) { + + # lengths of arguments are checked by `C_rSW2_SWRC_PDF_estimate_parameters()` + nlyrs <- length(sand) + + .Call( + C_rSW2_SWRC_PDF_estimate_parameters, + swrc_type = rep_len(swrc_type, nlyrs), + pdf_type = rep_len(pdf_type, nlyrs), + sand = sand, + clay = clay, + gravel = gravel + ) +} + + +#' Check Soil Water Retention Curve parameters +#' +#' @inheritParams SWRCs +#' +#' @section Notes: +#' The argument selecting `SWRC` (`swrc_type`) is recycled +#' for multiple parameter sets, i.e., rows of `swrcp`. +#' +#' @section Details: +#' See [SWRCs] for suitable values of `swrc_type`. +#' +#' @seealso [pdf_estimate()] +#' +#' @examples +#' swrc_type <- 1 +#' swrcp <- pdf_estimate( +#' sand = c(0.5, 0.3), +#' clay = c(0.2, 0.1), +#' gravel = c(0, 0), +#' swrc_type = swrc_type +#' ) +#' +#' check_swrcp(swrc_type, swrcp) +#' check_swrcp(rep(swrc_type, 2), swrcp) +#' check_swrcp(swrc_type, swrcp[1, ]) +#' +#' swrcp2 <- swrcp +#' swrcp2[1, 1] <- -10 +#' check_swrcp(rep(swrc_type, 2), swrcp2) +#' +#' @export +#' @md +check_swrcp <- function(swrc_type = 1L, swrcp) { + # lengths of arguments are checked by `C_rSW2_SWRC_check_parameters()` + .Call( + C_rSW2_SWRC_check_parameters, + swrc_type = rep_len(swrc_type, if (is.matrix(swrcp)) nrow(swrcp) else 1), + swrcp = swrcp + ) +} + + + +#------ Soil Water Retention Curves ------ + +#' Conversion between soil water content and soil water potential +#' +#' @inheritParams SWRCs +#' @param direction A character string. Indicates the direction of +#' soil water conversion. +#' @param x A numeric value or vector. The soil water values to be converted, +#' either soil water potential (units `[MPa]`) or +#' volumetric water content (units `[cm/cm]`). +#' +#' @section Details: +#' See [SWRCs] for suitable values of `swrc_type`. +#' +#' @section Details: +#' For backward compatibility, `gravel` and `layer_width` may be missing. +#' If they are missing, then the soils are assumed to contain `0%` gravel and +#' be represented by `1 cm` wide soil layers. +#' +#' @section Details: +#' Arguments `sand` and `clay` are only required if `SWRC` parameter values +#' need to be estimated on the fly, i.e., if `swrc` does not contain +#' the element `swrcp` (with suitable `SWRC` parameter values). +#' This is handled by [pdf_estimate()] and additionally requires +#' the element `pdf_type` for argument `swrc`. +#' +#' @seealso +#' [pdf_estimate()], +#' [check_swrcp()] +#' +#' @examples +#' p <- pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) +#' swrc_swp_to_vwc(-1.5, swrc = list(swrc_type = 1, swrcp = p)) +#' swrc_swp_to_vwc(-1.5, sand = c(0.5, 0.3), clay = c(0.2, 0.1)) +#' swrc_vwc_to_swp(c(0.20, 0.25, 0.30), swrc = list(swrc_type = 1, swrcp = p)) +#' +#' @export +#' @md +swrc_conversion <- function( + direction = c("swp_to_vwc", "vwc_to_swp"), + x, + gravel, + layer_width, + swrc, + sand = NULL, + clay = NULL +) { + #--- Check inputs + direction <- match.arg(direction) + + stopifnot("swrc_type" %in% names(swrc)) + + # Do we need to estimate swrcp? + swrc[["swrcp"]] <- if ( + "swrcp" %in% names(swrc) && !is.null(swrc[["swrcp"]]) + ) { + if (is.null(dim(swrc[["swrcp"]]))) { + matrix(swrc[["swrcp"]], nrow = 1) + } else { + as.matrix(swrc[["swrcp"]]) + } + } + + # Do we have sufficient information to estimate swrcp? + if (is.null(swrc[["swrcp"]])) { + if ( + !all(c("swrc_type", "pdf_type") %in% names(swrc)) || + is.null(sand) || is.null(clay) + ) { + stop("Insufficient information to estimate SWRC parameters.") + } + } + + # Do we have sufficient soil parameters? + if (missing(gravel) && missing(layer_width)) { + ntmp <- if (!is.null(swrc[["swrcp"]])) { + nrow(swrc[["swrcp"]]) + } else { + if (!is.null(sand)) { + length(sand) + } else if (!is.null(clay)) { + length(clay) + } + } + + if (!is.null(ntmp)) { + gravel <- rep(0, ntmp) + layer_width <- rep(1, ntmp) + } else { + stop("Insufficient soil parameters to use SWRC.") + } + + } else if (missing(gravel)) { + gravel <- rep(0, length(layer_width)) + } else if (missing(layer_width)) { + layer_width <- rep(1, length(gravel)) + } + + # Put together available soil parameters and check for consistency + soils <- list( + gravel = gravel, + layer_width = layer_width + ) + + if (is.null(swrc[["swrcp"]])) { + soils <- c(soils, list(sand = sand, clay = clay)) + } + + nsoils <- unique(lengths(soils)) + + if (length(nsoils) > 1) { + stop("Soil variables have different lengths.") + } + + if (!is.null(swrc[["swrcp"]]) && nrow(swrc[["swrcp"]]) != nsoils) { + stop("Dimensions of `swrcp` and lenght of soil variables disagree.") + } + + + #--- Determine dimensions of data and result + nrx <- NROW(x) + ncx <- NCOL(x) + nx <- nrx * ncx + nx1d <- nrx == 1 || ncx == 1 + + res <- array(dim = c(nrx, ncx)) + + + if (nx1d && (nx == 1 || nsoils == 1)) { + # 1. x [len = 1] + soils [len = 1] --> res [len = 1, dim = 1 x 1] + # nothing to prepare + + if (nx == 1 && nsoils > 1) { + # 2. x [len = 1] + soils [len = d] --> res [len = d, dim = 1 x d] + x <- rep_len(x, nsoils) + + } else if (nx > 1 && nx1d && nsoils == 1) { + # 3. x [len = l] + soils [len = 1] --> res [len = l, dim = l x 1] + soils <- lapply(soils, rep_len, length.out = nx) + } + + if (is.null(swrc[["swrcp"]])) { + swrc[["swrcp"]] <- pdf_estimate( + sand = soils[["sand"]], + clay = soils[["clay"]], + gravel = soils[["gravel"]], + swrc_type = swrc[["swrc_type"]], + pdf_type = swrc[["pdf_type"]] + ) + } + + res <- swrc_conversion_1d(direction, x, soils, swrc = swrc) + + } else if (nx1d && nx > 1 && nsoils > 1) { + # 4. x [len = l] + soils [len = d] -> res [dim = l x d] + # (x repeated for each soil) + + if (is.null(swrc[["swrcp"]])) { + swrc[["swrcp"]] <- pdf_estimate( + sand = soils[["sand"]], + clay = soils[["clay"]], + gravel = soils[["gravel"]], + swrc_type = swrc[["swrc_type"]], + pdf_type = swrc[["pdf_type"]] + ) + } + + tmp <- lapply( + x, + function(v) { + swrc_conversion_1d(direction, x = rep_len(v, nsoils), soils, swrc) + } + ) + res <- matrix(unlist(tmp), nrow = nx, ncol = nsoils, byrow = TRUE) + + } else if (nx > 1 && !nx1d && nsoils == 1) { + # 5. x [dim = l x d] + soils [len = 1] --> res [dim = l x d] + soils <- lapply(soils, rep_len, length.out = nrx) + + if (is.null(swrc[["swrcp"]])) { + swrc[["swrcp"]] <- pdf_estimate( + sand = soils[["sand"]], + clay = soils[["clay"]], + gravel = soils[["gravel"]], + swrc_type = swrc[["swrc_type"]], + pdf_type = swrc[["pdf_type"]] + ) + } + + res <- vapply( + seq_len(ncx), + function(k) swrc_conversion_1d(direction, x = x[, k], soils, swrc), + FUN.VALUE = rep(1, nrx), + USE.NAMES = FALSE + ) + + + } else if (nx > 1 && !nx1d && nsoils == ncx) { + # 6. x [dim = l x d] + soils [len = d] --> SWP [dim = l x d] + # (soils repeated for each x value) + + if (is.null(swrc[["swrcp"]])) { + swrc[["swrcp"]] <- pdf_estimate( + sand = soils[["sand"]], + clay = soils[["clay"]], + gravel = soils[["gravel"]], + swrc_type = swrc[["swrc_type"]], + pdf_type = swrc[["pdf_type"]] + ) + } + + swrc[["swrc_type"]] <- rep_len(swrc[["swrc_type"]], nsoils) + + res <- vapply( + seq_len(ncx), + function(k) { + swrc_conversion_1d( + direction, + x = x[, k], + soils = lapply(soils, function(sp) rep_len(sp[k], length.out = nrx)), + swrc = list( + swrc_type = rep_len(swrc[["swrc_type"]][k], nrx), + swrcp = swrc[["swrcp"]][rep(k, nrx), ] + ) + ) + }, + FUN.VALUE = rep(1, nrx), + USE.NAMES = FALSE + ) + + } else { + stop("Unsuitable inputs.") + } + + res +} + + +#' Helper function of \code{swrc_conversion} to access underlying C code +#' @noRd +swrc_conversion_1d <- function(direction, x, soils, swrc) { + + # lengths of arguments are checked by `C_rSW2_SWRC()` + nx <- length(x) + + switch( + EXPR = direction, + # C_rSW2_SWRC(direction = 1) returns [cm] convert to [cm/cm] + swp_to_vwc = 1 / soils[["layer_width"]] * .Call( + C_rSW2_SWRC, + # x = SWP [MPa] convert to [-bar] + x = - 10 * x, + direction = 1L, + swrc_type = rep_len(swrc[["swrc_type"]], nx), + swrcp = swrc[["swrcp"]], + gravel = soils[["gravel"]], + width = soils[["layer_width"]] + ), + # C_rSW2_SWRC(direction = 2) returns [-bar] convert to [MPa] + vwc_to_swp = - 0.1 * .Call( + C_rSW2_SWRC, + # x = VWC (bulk) [cm/cm] convert to SWC [cm] + x = x * soils[["layer_width"]], + direction = 2L, + swrc_type = rep_len(swrc[["swrc_type"]], nx), + swrcp = swrc[["swrcp"]], + gravel = soils[["gravel"]], + width = soils[["layer_width"]] + ) + ) +} + + + +#' @describeIn swrc_conversion Convenience wrapper +#' to convert from `SWP` to `VWC` with selected `SWRC` +#' +#' @param swp_MPa A numeric object. The soil water potential values +#' (units `[MPa]`) to be converted to +#' volumetric water content (relative to the whole soil; units `[cm/cm]`). +#' +#' @export +swrc_swp_to_vwc <- function( + swp_MPa, + gravel, + layer_width, + swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + sand = NULL, + clay = NULL +) { + swrc_conversion( + direction = "swp_to_vwc", + x = swp_MPa, + sand = sand, + clay = clay, + gravel = gravel, + layer_width = layer_width, + swrc = swrc + ) +} + + + +#' @describeIn swrc_conversion Convenience wrapper +#' to convert from `VWC` to `SWP` with selected `SWRC` +#' +#' @param vwcBulk A numeric object. The volumetric water content values +#' (relative to the whole soil; units `[cm/cm]`) +#' to be converted to soil water potential values (units `[MPa]`). +#' +#' @export +swrc_vwc_to_swp <- function( + vwcBulk, + gravel, + layer_width, + swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + sand = NULL, + clay = NULL +) { + swrc_conversion( + direction = "vwc_to_swp", + x = vwcBulk, + sand = sand, + clay = clay, + gravel = gravel, + layer_width = layer_width, + swrc = swrc + ) +} diff --git a/inst/WORDLIST b/inst/WORDLIST index 1c7efbcc..c8d97498 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -70,8 +70,11 @@ RCP README RMRS SSP +SWP +SWRC th USGS +VWC #------------------------------------ diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd new file mode 100644 index 00000000..7db4a48b --- /dev/null +++ b/man/SWRCs.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{SWRCs} +\alias{SWRCs} +\title{Functionality for Soil Water Retention Curves (\code{SWRC})} +\arguments{ +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{gravel}{A numeric value or vector. +Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) +relative to the whole soil of each soil layer. +\code{gravel} is required, for instance, to translate between +values relative to the matric soil component (< 2 mm fraction) and +relative to the whole soil (matric soil plus coarse fragments).} + +\item{layer_width}{A numeric value or vector. +Depth interval, width, of each soil layer (units of \code{cm}). +\code{layer_width} is required to translate between +soil water content of a soil layer and volumetric water content.} + +\item{swrc_type}{An integer value or vector. +The identification number of selected \code{SWRC}.} + +\item{pdf_type}{An integer value or vector. +The identification number of selected \code{PDF}.} + +\item{swrcp}{A numeric vector or matrix. +The parameters of a selected \code{SWRC}; +each row represents one \code{SWRC}, e.g., one per soil layer.} + +\item{swrc}{A named list. +Contains all necessary elements of a \code{SWRC}, +i.e., \code{swrc_type} and \code{swrcp}, +or all necessary elements to estimate parameters of a \code{SWRC} given +soil parameters, i.e., \code{swrc_type} and \code{pdf_type}.} +} +\description{ +\code{SWRCs} convert between soil water content and soil water potential +using a set of parameters, see \code{\link[=swrc_swp_to_vwc]{swrc_swp_to_vwc()}} and \code{\link[=swrc_vwc_to_swp]{swrc_vwc_to_swp()}}. + +The \code{SWRC} parameters may be estimated from soil properties with suitable +pedotransfer functions \code{PDFs}, see \code{\link[=pdf_estimate]{pdf_estimate()}}. + +The \code{SWRC} parameters can be checked for consistency with \code{\link[=check_swrcp]{check_swrcp()}}. +} +\section{Details}{ + +Implemented SWRCs (\code{swrc_type}): +\enumerate{ +\item Campbell 1974 +} +} + +\references{ +Campbell, G. S. 1974. +A simple method for determining unsaturated conductivity +from moisture retention data. +Soil Science, 117(6):311-314. \doi{10.1097/00010694-197406000-00001} +} +\seealso{ +\code{\link[=pdf_estimate]{pdf_estimate()}}, +\code{\link[=check_swrcp]{check_swrcp()}}, +\code{\link[=swrc_swp_to_vwc]{swrc_swp_to_vwc()}}, +\code{\link[=swrc_vwc_to_swp]{swrc_vwc_to_swp()}} +} diff --git a/man/check_swrcp.Rd b/man/check_swrcp.Rd new file mode 100644 index 00000000..564ad854 --- /dev/null +++ b/man/check_swrcp.Rd @@ -0,0 +1,51 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{check_swrcp} +\alias{check_swrcp} +\title{Check Soil Water Retention Curve parameters} +\usage{ +check_swrcp(swrc_type = 1L, swrcp) +} +\arguments{ +\item{swrc_type}{An integer value or vector. +The identification number of selected \code{SWRC}.} + +\item{swrcp}{A numeric vector or matrix. +The parameters of a selected \code{SWRC}; +each row represents one \code{SWRC}, e.g., one per soil layer.} +} +\description{ +Check Soil Water Retention Curve parameters +} +\section{Notes}{ + +The argument selecting \code{SWRC} (\code{swrc_type}) is recycled +for multiple parameter sets, i.e., rows of \code{swrcp}. +} + +\section{Details}{ + +See \link{SWRCs} for suitable values of \code{swrc_type}. +} + +\examples{ +swrc_type <- 1 +swrcp <- pdf_estimate( + sand = c(0.5, 0.3), + clay = c(0.2, 0.1), + gravel = c(0, 0), + swrc_type = swrc_type +) + +check_swrcp(swrc_type, swrcp) +check_swrcp(rep(swrc_type, 2), swrcp) +check_swrcp(swrc_type, swrcp[1, ]) + +swrcp2 <- swrcp +swrcp2[1, 1] <- -10 +check_swrcp(rep(swrc_type, 2), swrcp2) + +} +\seealso{ +\code{\link[=pdf_estimate]{pdf_estimate()}} +} diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd new file mode 100644 index 00000000..e64c2313 --- /dev/null +++ b/man/pdf_estimate.Rd @@ -0,0 +1,69 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdf_estimate} +\alias{pdf_estimate} +\title{Estimate \code{SWRC} parameters from soil texture with a pedotransfer function} +\usage{ +pdf_estimate(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) +} +\arguments{ +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{gravel}{A numeric value or vector. +Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) +relative to the whole soil of each soil layer. +\code{gravel} is required, for instance, to translate between +values relative to the matric soil component (< 2 mm fraction) and +relative to the whole soil (matric soil plus coarse fragments).} + +\item{swrc_type}{An integer value or vector. +The identification number of selected \code{SWRC}.} + +\item{pdf_type}{An integer value or vector. +The identification number of selected \code{PDF}.} +} +\value{ +\code{swrcp}, i.e,. +a numeric matrix where rows represent soil (layers) and +columns represent a fixed number of \code{SWRC} parameters. +The interpretation is dependent on the selected \code{SWRC}. +} +\description{ +Estimate \code{SWRC} parameters from soil texture with a pedotransfer function +} +\section{Details}{ + +Implemented PDFs (\code{pdf_type}): +\enumerate{ +\item Cosby et al. 1984 PDF estimates parameters of Campbell 1974 SWRC +} + + +See \link{SWRCs} for suitable values of \code{swrc_type}. +} + +\section{Notes}{ + +The soil parameters \code{sand}, \code{clay}, and \code{gravel} must be of +the same length, i.e., represent one soil (length 1) or +multiple soil (layers) (length > 1). +The arguments selecting \code{SWRC} (\code{swrc_type}) and \code{PDF} (\code{pdf_type}) +are recycled for multiple soil layers. +} + +\examples{ +pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) + +} +\references{ +Cosby, B. J., G. M. Hornberger, R. B. Clapp, and T. R. Ginn. +1984. A statistical exploration of the relationships of soil moisture +characteristics to the physical properties of soils. +Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} +} diff --git a/man/pedotransfer.Rd b/man/pedotransfer.Rd index 0ccc1f28..c6739762 100644 --- a/man/pedotransfer.Rd +++ b/man/pedotransfer.Rd @@ -31,9 +31,9 @@ pdf_to_swp( bar_conversion = 1024 ) -SWPtoVWC(swp, sand, clay) +SWPtoVWC(swp, sand, clay, ...) -VWCtoSWP(vwc, sand, clay) +VWCtoSWP(vwc, sand, clay, ...) } \arguments{ \item{swp}{A numeric value, vector, or 2-dimensional object diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd new file mode 100644 index 00000000..ed051b6d --- /dev/null +++ b/man/swrc_conversion.Rd @@ -0,0 +1,118 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{swrc_conversion} +\alias{swrc_conversion} +\alias{swrc_swp_to_vwc} +\alias{swrc_vwc_to_swp} +\title{Conversion between soil water content and soil water potential} +\usage{ +swrc_conversion( + direction = c("swp_to_vwc", "vwc_to_swp"), + x, + gravel, + layer_width, + swrc, + sand = NULL, + clay = NULL +) + +swrc_swp_to_vwc( + swp_MPa, + gravel, + layer_width, + swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + sand = NULL, + clay = NULL +) + +swrc_vwc_to_swp( + vwcBulk, + gravel, + layer_width, + swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + sand = NULL, + clay = NULL +) +} +\arguments{ +\item{direction}{A character string. Indicates the direction of +soil water conversion.} + +\item{x}{A numeric value or vector. The soil water values to be converted, +either soil water potential (units \verb{[MPa]}) or +volumetric water content (units \verb{[cm/cm]}).} + +\item{gravel}{A numeric value or vector. +Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) +relative to the whole soil of each soil layer. +\code{gravel} is required, for instance, to translate between +values relative to the matric soil component (< 2 mm fraction) and +relative to the whole soil (matric soil plus coarse fragments).} + +\item{layer_width}{A numeric value or vector. +Depth interval, width, of each soil layer (units of \code{cm}). +\code{layer_width} is required to translate between +soil water content of a soil layer and volumetric water content.} + +\item{swrc}{A named list. +Contains all necessary elements of a \code{SWRC}, +i.e., \code{swrc_type} and \code{swrcp}, +or all necessary elements to estimate parameters of a \code{SWRC} given +soil parameters, i.e., \code{swrc_type} and \code{pdf_type}.} + +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{swp_MPa}{A numeric object. The soil water potential values +(units `[MPa]`) to be converted to +volumetric water content (relative to the whole soil; units `[cm/cm]`).} + +\item{vwcBulk}{A numeric object. The volumetric water content values +(relative to the whole soil; units `[cm/cm]`) +to be converted to soil water potential values (units `[MPa]`).} +} +\description{ +Conversion between soil water content and soil water potential +} +\section{Functions}{ +\itemize{ +\item \code{swrc_swp_to_vwc}: Convenience wrapper +to convert from `SWP` to `VWC` with selected `SWRC` + +\item \code{swrc_vwc_to_swp}: Convenience wrapper +to convert from `VWC` to `SWP` with selected `SWRC` +}} + +\section{Details}{ + +See \link{SWRCs} for suitable values of \code{swrc_type}. + + +For backward compatibility, \code{gravel} and \code{layer_width} may be missing. +If they are missing, then the soils are assumed to contain \verb{0\%} gravel and +be represented by \verb{1 cm} wide soil layers. + + +Arguments \code{sand} and \code{clay} are only required if \code{SWRC} parameter values +need to be estimated on the fly, i.e., if \code{swrc} does not contain +the element \code{swrcp} (with suitable \code{SWRC} parameter values). +This is handled by \code{\link[=pdf_estimate]{pdf_estimate()}} and additionally requires +the element \code{pdf_type} for argument \code{swrc}. +} + +\examples{ +p <- pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) +swrc_swp_to_vwc(-1.5, swrc = list(swrc_type = 1, swrcp = p)) +swrc_swp_to_vwc(-1.5, sand = c(0.5, 0.3), clay = c(0.2, 0.1)) +swrc_vwc_to_swp(c(0.20, 0.25, 0.30), swrc = list(swrc_type = 1, swrcp = p)) + +} +\seealso{ +\code{\link[=pdf_estimate]{pdf_estimate()}}, +\code{\link[=check_swrcp]{check_swrcp()}} +} diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 30608438..bf1660f8 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -3,7 +3,30 @@ #include // for NULL #include + /* .C calls */ +//extern void SWRC_PDF_estimate_parameters( +// int swrc_type, int pdf_type, +// double *swrcp, +// double sand, double clay, double gravel +//); +// +//static R_NativePrimitiveArgType SWRC_PDF_estimate_parameters_t[6] = { +// INTSXP, INTSXP, +// REALSXP, +// REALSXP, REALSXP, REALSXP +//}; +// +//static const R_CMethodDef CEntries[] = { +// { +// "SWRC_PDF_estimate_parameters", +// (DL_FUNC) &SWRC_PDF_estimate_parameters, +// 6, +// SWRC_PDF_estimate_parameters_t +// }, +// {NULL, NULL, 0, NULL} +//}; +// /* .Call calls */ extern SEXP start(SEXP, SEXP, SEXP, SEXP); @@ -11,16 +34,23 @@ extern SEXP tempError(); extern SEXP onGetInputDataFromFiles(SEXP); extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); +extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); +extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { - {"start", (DL_FUNC) &start, 4}, - {"tempError", (DL_FUNC) &tempError, 0}, - {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 1}, - {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, - {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"start", (DL_FUNC) &start, 4}, + {"tempError", (DL_FUNC) &tempError, 0}, + {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 1}, + {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, + {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 5}, + {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, + {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, {NULL, NULL, 0} }; + /* Register package calls with R */ void R_init_rSOILWAT2(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index e512b360..abe543c0 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -492,3 +492,322 @@ SEXP sw_consts(void) { return ret; } + + + +/** + @brief Estimate parameters of selected soil water retention curve (SWRC) + using selected pedotransfer function (PDF) + + See SOILWAT2 function `SWRC_PDF_estimate_parameters()`. + + Implemented SWRCs (`swrc_type`): + 1. Campbell 1974 \cite Campbell1974 + + Implemented PDFs (`pdf_type`): + 1. Cosby et al. 1984 \cite Cosby1984 PDF estimates parameters of + Campbell 1974 \cite Campbell1974 SWRC + see `SWRC_PDF_Cosby1984_for_Campbell1974()` + + @param[in] swrc_type Identification number of selected SWRC + @param[in] pdf_type Identification number of selected PDF + @param[in] sand Sand content of the matric soil (< 2 mm fraction) [g/g] + @param[in] clay Clay content of the matric soil (< 2 mm fraction) [g/g] + @param[in] gravel Coarse fragments (> 2 mm; e.g., gravel) + of the whole soil [m3/m3] + + @return Matrix of estimated SWRC parameters +*/ +SEXP rSW2_SWRC_PDF_estimate_parameters( + SEXP swrc_type, + SEXP pdf_type, + SEXP sand, + SEXP clay, + SEXP gravel +) { + int nlyrs = length(sand); + + /* Check inputs */ + if ( + nlyrs != length(clay) || + nlyrs != length(gravel) || + nlyrs != length(swrc_type) || + nlyrs != length(pdf_type) + ) { + error("inputs are not of the same length."); + } + + /* Convert inputs to correct type */ + swrc_type = PROTECT(coerceVector(swrc_type, INTSXP)); + pdf_type = PROTECT(coerceVector(pdf_type, INTSXP)); + sand = PROTECT(coerceVector(sand, REALSXP)); + clay = PROTECT(coerceVector(clay, REALSXP)); + gravel = PROTECT(coerceVector(gravel, REALSXP)); + + /* Allocate memory for SWRC parameters */ + SEXP + swrcpk = PROTECT(allocVector(REALSXP, SWRC_PARAM_NMAX)), + res_swrcp = PROTECT(allocMatrix(REALSXP, nlyrs, SWRC_PARAM_NMAX)); + + /* Create convenience pointers */ + unsigned int + *xswrc_type = (unsigned int *) INTEGER(swrc_type), + *xpdf_type = (unsigned int *) INTEGER(pdf_type); + + double + *xsand = REAL(sand), + *xclay = REAL(clay), + *xgravel = REAL(gravel), + *xres = REAL(res_swrcp); + + + /* Loop over soil layers */ + /* Ideally, SOILWAT2's `SWRC_PDF_estimate_parameters()` + would loop over soil layers internally, + but SOILWAT2 uses a list of soil layer structures instead of an array + */ + int k1, k2; + + for (k1 = 0; k1 < nlyrs; k1++) { + SWRC_PDF_estimate_parameters( + xswrc_type[k1], + xpdf_type[k1], + REAL(swrcpk), + xsand[k1], + xclay[k1], + xgravel[k1] + ); + + for (k2 = 0; k2 < SWRC_PARAM_NMAX; k2++) { + xres[k1 + nlyrs * k2] = REAL(swrcpk)[k2]; + } + } + + UNPROTECT(7); + + return res_swrcp; +} + + + +/** + @brief Check Soil Water Retention Curve (SWRC) parameters + + See SOILWAT2 function `SWRC_check_parameters()`. + + Implemented SWRCs: + 1. Campbell 1974 \cite Campbell1974 + + @param[in] swrc_type Identification number of selected SWRC + @param[in] *swrcp SWRC parameters; + matrix (one row per set of parameters) or vector (treated as one set) + + @return A logical vector indicating if parameters passed the checks. +*/ +SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp) { + /* Convert inputs to correct type */ + swrcp = PROTECT(coerceVector(swrcp, REALSXP)); + swrc_type = PROTECT(coerceVector(swrc_type, INTSXP)); + + + /* Check SWRC parameters */ + int + nrp, ncp, + nlyrs = length(swrc_type); + + if (isMatrix(swrcp)) { + nrp = nrows(swrcp); + ncp = ncols(swrcp); + } else if (isVector(swrcp)) { + nrp = 1; + ncp = length(swrcp); + } else { + nrp = 0; + ncp = 0; + } + + if (nlyrs != nrp) { + UNPROTECT(2); /* unprotect: swrcp, swrc_type */ + error("`nrows(swrcp)` disagrees with length of `swrc_type`."); + } + + if (ncp != SWRC_PARAM_NMAX) { + UNPROTECT(2); /* unprotect: swrcp, swrc_type */ + error("`ncols(swrcp)` disagrees with required number of SWRC parameters."); + } + + + /* Allocate memory for result */ + SEXP res = PROTECT(allocVector(LGLSXP, nlyrs)); + + + /* Create convenience pointers */ + unsigned int *xswrc_type = (unsigned int *) INTEGER(swrc_type); + int *xres = LOGICAL(res); /* LGLSXP are internally coded as int */ + double *xswrcp = REAL(swrcp); + + + /* Loop over soil layers */ + /* Ideally, SOILWAT2's `SWRC_check_parameters()` + would loop over soil layers internally, + but SOILWAT2 uses a list of soil layer structures instead of an array + */ + int k1, k2; + double swrcpk[SWRC_PARAM_NMAX]; + + for (k1 = 0; k1 < nlyrs; k1++) { + for (k2 = 0; k2 < SWRC_PARAM_NMAX; k2++) { + swrcpk[k2] = xswrcp[k1 + nlyrs * k2]; + } + + xres[k1] = SWRC_check_parameters(xswrc_type[k1], swrcpk); + } + + UNPROTECT(3); + + return res; +} + + + +/** + @brief Convert between soil water content and soil water potential using + specified soil water retention curve (SWRC) + + See SOILWAT2 function `SWRC_SWCtoSWP()` and `SWRC_SWPtoSWC()`. + + Implemented SWRCs (`swrc_type`): + 1. Campbell 1974 \cite Campbell1974, see `SWRC_SWCtoSWP_Campbell1974()` + + @param[in] x + Soil water content in the layer [cm] or soil water potential [-bar]\ + @param[in] direction Direction of conversion, 1: SWP->SWC; 2: SWC->SWP + @param[in] swrc_type Identification number of selected SWRC + @param[in] *swrcp Vector or matrix of SWRC parameters + @param[in] gravel Coarse fragments (> 2 mm; e.g., gravel) + of the whole soil [m3/m3] + @param[in] width Soil layer width [cm] + + @return Vector of soil water potential [-bar] or soil water content [cm] +**/ +SEXP rSW2_SWRC( + SEXP x, + SEXP direction, + SEXP swrc_type, + SEXP swrcp, + SEXP gravel, + SEXP width +) { + int xdirection = asInteger(direction); + + if (xdirection != 1 && xdirection != 2) { + error("`direction` must be either SWP->SWC(1) or SWC->SWP(2)."); + } + + /* Check dimensions */ + int nlyrs = length(width); + + if (nlyrs != length(gravel)) { + error("`width` and `gravel` are not of the same length."); + } + + if (nlyrs != length(x)) { + error("`length(x)` is not equal to the number of soil layers."); + } + + if (nlyrs != length(swrc_type)) { + error("`swrc_type` is not equal to the number of soil layers."); + } + + + /* Convert inputs to correct type */ + x = PROTECT(coerceVector(x, REALSXP)); + gravel = PROTECT(coerceVector(gravel, REALSXP)); + width = PROTECT(coerceVector(width, REALSXP)); + swrcp = PROTECT(coerceVector(swrcp, REALSXP)); + swrc_type = PROTECT(coerceVector(swrc_type, INTSXP)); + + + /* Check SWRC parameters */ + int nrp, ncp; + + if (isMatrix(swrcp)) { + nrp = nrows(swrcp); + ncp = ncols(swrcp); + } else if (isVector(swrcp)) { + nrp = 1; + ncp = length(swrcp); + } else { + nrp = 0; + ncp = 0; + } + + if (nlyrs != nrp) { + UNPROTECT(5); /* unprotect: swrcp, width, gravel, x, swrc_type */ + error("`nrows(swrcp)` disagrees with number of soil layers."); + } + + if (ncp != SWRC_PARAM_NMAX) { + UNPROTECT(5); /* unprotect: swrcp, width, gravel, x, swrc_type */ + error("`ncols(swrcp)` disagrees with required number of SWRC parameters."); + } + + + /* Allocate memory for result */ + SEXP res = PROTECT(allocVector(REALSXP, nlyrs)); + + + /* Create convenience pointers */ + unsigned int + *xswrc_type = (unsigned int *) INTEGER(swrc_type); + + double + *xres = REAL(res), + *xx = REAL(x), + *xswrcp = REAL(swrcp), + *xgravel = REAL(gravel), + *xwidth = REAL(width); + + + /* Loop over soil layers */ + /* Ideally, SOILWAT2's `SWRC_SWPtoSWC()` and `SWRC_SWCtoSWP()` + would loop over soil layers internally, + but SOILWAT2 uses a list of soil layer structures instead of an array + */ + int k1, k2; + double swrcpk[SWRC_PARAM_NMAX]; + + for (k1 = 0; k1 < nlyrs; k1++) { + for (k2 = 0; k2 < SWRC_PARAM_NMAX; k2++) { + swrcpk[k2] = xswrcp[k1 + nlyrs * k2]; + } + + switch (xdirection) { + case 1: + /* SWP->SWC: [-bar] to [cm] */ + xres[k1] = SWRC_SWPtoSWC( + xx[k1], + xswrc_type[k1], + swrcpk, + xgravel[k1], + xwidth[k1] + ); + break; + + case 2: + /* SWC->SWP: [cm] to [-bar] */ + xres[k1] = SWRC_SWCtoSWP( + xx[k1], + xswrc_type[k1], + swrcpk, + xgravel[k1], + xwidth[k1] + ); + break; + } + } + + UNPROTECT(6); + + return res; +} diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index d26d83ac..6d770fbd 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -32,4 +32,23 @@ SEXP onGetInputDataFromFiles(SEXP input); SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet); SEXP sw_consts(void); +SEXP rSW2_SWRC_PDF_estimate_parameters( + SEXP swrc_type, + SEXP pdf_type, + SEXP sand, + SEXP clay, + SEXP gravel +); + +SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp); + +SEXP rSW2_SWRC( + SEXP x, + SEXP direction, + SEXP swrc_type, + SEXP swrcp, + SEXP gravel, + SEXP width +); + #endif /* SW_R_LIB_H_ */ diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 1a9480cc..d26dd3b6 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -56,7 +56,11 @@ if (FALSE) { swp_vals <- unlist(lapply( row.names(texture), function(itext) { - VWCtoSWP(vwc_fix, texture[itext, "sand"], texture[itext, "clay"]) + swrc_vwc_to_swp( + vwcBulk = vwc_fix, + sand = texture[itext, "sand"], + clay = texture[itext, "clay"] + ) } )) dim(swp_vals) <- c(nrow(vwc_fix), ncol(vwc_fix), nrow(texture)) @@ -77,8 +81,8 @@ test_that("Use SWRC to convert between VWC/SWP", { for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { expect_equivalent( - VWCtoSWP( - vwc_fix[itext, ifix], + swrc_vwc_to_swp( + vwcBulk = vwc_fix[itext, ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), @@ -86,8 +90,8 @@ test_that("Use SWRC to convert between VWC/SWP", { ) expect_equivalent( - SWPtoVWC( - swp_fix[ifix], + swrc_swp_to_vwc( + swp_MPa = swp_fix[ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), @@ -101,8 +105,8 @@ test_that("Use SWRC to convert between VWC/SWP", { for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { expect_equivalent( - VWCtoSWP( - vwc_fix[itext, ifix], + swrc_vwc_to_swp( + vwcBulk = vwc_fix[itext, ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), @@ -110,8 +114,8 @@ test_that("Use SWRC to convert between VWC/SWP", { ) expect_equivalent( - SWPtoVWC( - swp_fix[ifix], + swrc_swp_to_vwc( + swp_MPa = swp_fix[ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), @@ -125,8 +129,8 @@ test_that("Use SWRC to convert between VWC/SWP", { for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { expect_equivalent( - VWCtoSWP( - vwc_fix[, ifix], + swrc_vwc_to_swp( + vwcBulk = vwc_fix[, ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), @@ -134,8 +138,8 @@ test_that("Use SWRC to convert between VWC/SWP", { ) expect_equivalent( - SWPtoVWC( - rep(swp_fix[ifix], nrow(texture)), + swrc_swp_to_vwc( + swp_MPa = rep(swp_fix[ifix], nrow(texture)), sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), @@ -148,8 +152,8 @@ test_that("Use SWRC to convert between VWC/SWP", { # (x vector repeated for each soil): probably not used for (ifix in names(swp_fix)) { expect_equivalent( - VWCtoSWP( - vwc_fix[, ifix], + swrc_vwc_to_swp( + vwcBulk = vwc_fix[, ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), @@ -160,8 +164,8 @@ test_that("Use SWRC to convert between VWC/SWP", { # 5. x [dim = l x d] + soils [len = 1] --> res [dim = l x d] for (itext in row.names(texture)) { expect_equivalent( - VWCtoSWP( - vwc_fix, + swrc_vwc_to_swp( + vwcBulk = vwc_fix, sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), @@ -173,8 +177,8 @@ test_that("Use SWRC to convert between VWC/SWP", { # (soils vectors repeated for each row of x) for (ifix in names(swp_fix)) { expect_equivalent( - VWCtoSWP( - matrix( + swrc_vwc_to_swp( + vwcBulk = matrix( vwc_fix[, ifix], nrow = nrow(vwc_fix), ncol = nrow(texture), From 9ebc75deef542b1907c423a1bf2c8c397c625392 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 29 Nov 2021 15:00:42 -0500 Subject: [PATCH 005/238] Update submodule SOILWAT2 - branch `feature_swrc` updated to incorporate v6.2.2 --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index ede207aa..92b809c1 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit ede207aa7a5b1107c5d9a616279e5e4efa5f5dd8 +Subproject commit 92b809c14e6b3e1c67343f9215624513de9d6bb5 From 1410a29546b7fcbbd5e7aa4894936afe2d9a0a2a Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 4 Feb 2022 10:59:25 -0500 Subject: [PATCH 006/238] Update to latest SOILWAT2 on feature_swrc --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 92b809c1..bacc4b7c 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 92b809c14e6b3e1c67343f9215624513de9d6bb5 +Subproject commit bacc4b7c1d266ad44dd4d339e886eb27dbc8d390 From db6f6076afb7399e6e2c7b95fa21efe1b94c88b9 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 17 Feb 2022 10:05:30 -0500 Subject: [PATCH 007/238] Rename "gravel" to "fcoarse" in new SWRC/PDF functions - This change is to better reflect that the code represents "coarse fragments" in general and not only the specific subtype "gravel" --- R/sw_Pedotransfer_Functions.R | 89 +++++++++++++++++++++++------------ man/SWRCs.Rd | 4 +- man/check_swrcp.Rd | 2 +- man/pdf_estimate.Rd | 17 +++++-- man/swrc_conversion.Rd | 43 ++++++++++++----- src/SW_R_lib.c | 32 ++++++------- 6 files changed, 120 insertions(+), 67 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 36c90012..e0896e47 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -213,10 +213,10 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' @param clay A numeric value or vector. #' Clay content of the matric soil component #' (< 2 mm fraction; units of `[g/g]`) of each soil layer. -#' @param gravel A numeric value or vector. +#' @param fcoarse A numeric value or vector. #' Coarse fragments, e.g., gravel, (> 2 mm; units of `[m3/m3]`) #' relative to the whole soil of each soil layer. -#' `gravel` is required, for instance, to translate between +#' `fcoarse` is required, for instance, to translate between #' values relative to the matric soil component (< 2 mm fraction) and #' relative to the whole soil (matric soil plus coarse fragments). #' @param layer_width A numeric value or vector. @@ -268,7 +268,7 @@ NULL #' See [SWRCs] for suitable values of `swrc_type`. #' #' @section Notes: -#' The soil parameters `sand`, `clay`, and `gravel` must be of +#' The soil parameters `sand`, `clay`, and `fcoarse` must be of #' the same length, i.e., represent one soil (length 1) or #' multiple soil (layers) (length > 1). #' The arguments selecting `SWRC` (`swrc_type`) and `PDF` (`pdf_type`) @@ -287,11 +287,18 @@ NULL #' The interpretation is dependent on the selected `SWRC`. #' #' @examples -#' pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) +#' pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), fcoarse = c(0, 0)) +#' +#' soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) +#' pdf_estimate( +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' fcoarse = soils[, "gravel_content"] +#' ) #' #' @md #' @export -pdf_estimate <- function(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) { +pdf_estimate <- function(sand, clay, fcoarse, swrc_type = 1L, pdf_type = 1L) { # lengths of arguments are checked by `C_rSW2_SWRC_PDF_estimate_parameters()` nlyrs <- length(sand) @@ -302,7 +309,7 @@ pdf_estimate <- function(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) { pdf_type = rep_len(pdf_type, nlyrs), sand = sand, clay = clay, - gravel = gravel + fcoarse = fcoarse ) } @@ -325,7 +332,7 @@ pdf_estimate <- function(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) { #' swrcp <- pdf_estimate( #' sand = c(0.5, 0.3), #' clay = c(0.2, 0.1), -#' gravel = c(0, 0), +#' fcoarse = c(0, 0), #' swrc_type = swrc_type #' ) #' @@ -365,9 +372,9 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' See [SWRCs] for suitable values of `swrc_type`. #' #' @section Details: -#' For backward compatibility, `gravel` and `layer_width` may be missing. -#' If they are missing, then the soils are assumed to contain `0%` gravel and -#' be represented by `1 cm` wide soil layers. +#' For backward compatibility, `fcoarse` and `layer_width` may be missing. +#' If they are missing, then the soils are assumed to contain +#' `0%` coarse fragments and be represented by `1 cm` wide soil layers. #' #' @section Details: #' Arguments `sand` and `clay` are only required if `SWRC` parameter values @@ -381,17 +388,37 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' [check_swrcp()] #' #' @examples -#' p <- pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) -#' swrc_swp_to_vwc(-1.5, swrc = list(swrc_type = 1, swrcp = p)) -#' swrc_swp_to_vwc(-1.5, sand = c(0.5, 0.3), clay = c(0.2, 0.1)) -#' swrc_vwc_to_swp(c(0.20, 0.25, 0.30), swrc = list(swrc_type = 1, swrcp = p)) +#' fsand <- c(0.5, 0.3) +#' fclay <- c(0.2, 0.1) +#' fcrs1 <- c(0, 0) +#' fcrs2 <- c(0.4, 0.1) +#' +#' p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(swrc_type = 1, swrcp = p1)) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) +#' swrc_vwc_to_swp( +#' c(0.10, 0.15, 0.20), +#' fcoarse = fcrs1, +#' swrc = list(swrc_type = 1, swrcp = p1) +#' ) +#' +#' p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(swrc_type = 1, swrcp = p2)) +#' (1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) +#' swrc_vwc_to_swp( +#' c(0.10, 0.15, 0.20), +#' fcoarse = fcrs2, +#' swrc = list(swrc_type = 1, swrcp = p2) +#' ) +#' #' #' @export #' @md swrc_conversion <- function( direction = c("swp_to_vwc", "vwc_to_swp"), x, - gravel, + fcoarse, layer_width, swrc, sand = NULL, @@ -424,7 +451,7 @@ swrc_conversion <- function( } # Do we have sufficient soil parameters? - if (missing(gravel) && missing(layer_width)) { + if (missing(fcoarse) && missing(layer_width)) { ntmp <- if (!is.null(swrc[["swrcp"]])) { nrow(swrc[["swrcp"]]) } else { @@ -436,21 +463,21 @@ swrc_conversion <- function( } if (!is.null(ntmp)) { - gravel <- rep(0, ntmp) + fcoarse <- rep(0, ntmp) layer_width <- rep(1, ntmp) } else { stop("Insufficient soil parameters to use SWRC.") } - } else if (missing(gravel)) { - gravel <- rep(0, length(layer_width)) + } else if (missing(fcoarse)) { + fcoarse <- rep(0, length(layer_width)) } else if (missing(layer_width)) { - layer_width <- rep(1, length(gravel)) + layer_width <- rep(1, length(fcoarse)) } # Put together available soil parameters and check for consistency soils <- list( - gravel = gravel, + fcoarse = fcoarse, layer_width = layer_width ) @@ -495,7 +522,7 @@ swrc_conversion <- function( swrc[["swrcp"]] <- pdf_estimate( sand = soils[["sand"]], clay = soils[["clay"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], swrc_type = swrc[["swrc_type"]], pdf_type = swrc[["pdf_type"]] ) @@ -511,7 +538,7 @@ swrc_conversion <- function( swrc[["swrcp"]] <- pdf_estimate( sand = soils[["sand"]], clay = soils[["clay"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], swrc_type = swrc[["swrc_type"]], pdf_type = swrc[["pdf_type"]] ) @@ -533,7 +560,7 @@ swrc_conversion <- function( swrc[["swrcp"]] <- pdf_estimate( sand = soils[["sand"]], clay = soils[["clay"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], swrc_type = swrc[["swrc_type"]], pdf_type = swrc[["pdf_type"]] ) @@ -555,7 +582,7 @@ swrc_conversion <- function( swrc[["swrcp"]] <- pdf_estimate( sand = soils[["sand"]], clay = soils[["clay"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], swrc_type = swrc[["swrc_type"]], pdf_type = swrc[["pdf_type"]] ) @@ -605,7 +632,7 @@ swrc_conversion_1d <- function(direction, x, soils, swrc) { direction = 1L, swrc_type = rep_len(swrc[["swrc_type"]], nx), swrcp = swrc[["swrcp"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], width = soils[["layer_width"]] ), # C_rSW2_SWRC(direction = 2) returns [-bar] convert to [MPa] @@ -616,7 +643,7 @@ swrc_conversion_1d <- function(direction, x, soils, swrc) { direction = 2L, swrc_type = rep_len(swrc[["swrc_type"]], nx), swrcp = swrc[["swrcp"]], - gravel = soils[["gravel"]], + fcoarse = soils[["fcoarse"]], width = soils[["layer_width"]] ) ) @@ -634,7 +661,7 @@ swrc_conversion_1d <- function(direction, x, soils, swrc) { #' @export swrc_swp_to_vwc <- function( swp_MPa, - gravel, + fcoarse, layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, @@ -645,7 +672,7 @@ swrc_swp_to_vwc <- function( x = swp_MPa, sand = sand, clay = clay, - gravel = gravel, + fcoarse = fcoarse, layer_width = layer_width, swrc = swrc ) @@ -663,7 +690,7 @@ swrc_swp_to_vwc <- function( #' @export swrc_vwc_to_swp <- function( vwcBulk, - gravel, + fcoarse, layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, @@ -674,7 +701,7 @@ swrc_vwc_to_swp <- function( x = vwcBulk, sand = sand, clay = clay, - gravel = gravel, + fcoarse = fcoarse, layer_width = layer_width, swrc = swrc ) diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index 7db4a48b..dac29cdd 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -12,10 +12,10 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} -\item{gravel}{A numeric value or vector. +\item{fcoarse}{A numeric value or vector. Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) relative to the whole soil of each soil layer. -\code{gravel} is required, for instance, to translate between +\code{fcoarse} is required, for instance, to translate between values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} diff --git a/man/check_swrcp.Rd b/man/check_swrcp.Rd index 564ad854..416cc068 100644 --- a/man/check_swrcp.Rd +++ b/man/check_swrcp.Rd @@ -33,7 +33,7 @@ swrc_type <- 1 swrcp <- pdf_estimate( sand = c(0.5, 0.3), clay = c(0.2, 0.1), - gravel = c(0, 0), + fcoarse = c(0, 0), swrc_type = swrc_type ) diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index e64c2313..6995020f 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -4,7 +4,7 @@ \alias{pdf_estimate} \title{Estimate \code{SWRC} parameters from soil texture with a pedotransfer function} \usage{ -pdf_estimate(sand, clay, gravel, swrc_type = 1L, pdf_type = 1L) +pdf_estimate(sand, clay, fcoarse, swrc_type = 1L, pdf_type = 1L) } \arguments{ \item{sand}{A numeric value or vector. @@ -15,10 +15,10 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} -\item{gravel}{A numeric value or vector. +\item{fcoarse}{A numeric value or vector. Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) relative to the whole soil of each soil layer. -\code{gravel} is required, for instance, to translate between +\code{fcoarse} is required, for instance, to translate between values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} @@ -50,7 +50,7 @@ See \link{SWRCs} for suitable values of \code{swrc_type}. \section{Notes}{ -The soil parameters \code{sand}, \code{clay}, and \code{gravel} must be of +The soil parameters \code{sand}, \code{clay}, and \code{fcoarse} must be of the same length, i.e., represent one soil (length 1) or multiple soil (layers) (length > 1). The arguments selecting \code{SWRC} (\code{swrc_type}) and \code{PDF} (\code{pdf_type}) @@ -58,7 +58,14 @@ are recycled for multiple soil layers. } \examples{ -pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) +pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), fcoarse = c(0, 0)) + +soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) +pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"] +) } \references{ diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index ed051b6d..24596366 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -9,7 +9,7 @@ swrc_conversion( direction = c("swp_to_vwc", "vwc_to_swp"), x, - gravel, + fcoarse, layer_width, swrc, sand = NULL, @@ -18,7 +18,7 @@ swrc_conversion( swrc_swp_to_vwc( swp_MPa, - gravel, + fcoarse, layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, @@ -27,7 +27,7 @@ swrc_swp_to_vwc( swrc_vwc_to_swp( vwcBulk, - gravel, + fcoarse, layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, @@ -42,10 +42,10 @@ soil water conversion.} either soil water potential (units \verb{[MPa]}) or volumetric water content (units \verb{[cm/cm]}).} -\item{gravel}{A numeric value or vector. +\item{fcoarse}{A numeric value or vector. Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) relative to the whole soil of each soil layer. -\code{gravel} is required, for instance, to translate between +\code{fcoarse} is required, for instance, to translate between values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} @@ -93,9 +93,9 @@ to convert from `VWC` to `SWP` with selected `SWRC` See \link{SWRCs} for suitable values of \code{swrc_type}. -For backward compatibility, \code{gravel} and \code{layer_width} may be missing. -If they are missing, then the soils are assumed to contain \verb{0\%} gravel and -be represented by \verb{1 cm} wide soil layers. +For backward compatibility, \code{fcoarse} and \code{layer_width} may be missing. +If they are missing, then the soils are assumed to contain +\verb{0\%} coarse fragments and be represented by \verb{1 cm} wide soil layers. Arguments \code{sand} and \code{clay} are only required if \code{SWRC} parameter values @@ -106,10 +106,29 @@ the element \code{pdf_type} for argument \code{swrc}. } \examples{ -p <- pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), gravel = c(0, 0)) -swrc_swp_to_vwc(-1.5, swrc = list(swrc_type = 1, swrcp = p)) -swrc_swp_to_vwc(-1.5, sand = c(0.5, 0.3), clay = c(0.2, 0.1)) -swrc_vwc_to_swp(c(0.20, 0.25, 0.30), swrc = list(swrc_type = 1, swrcp = p)) +fsand <- c(0.5, 0.3) +fclay <- c(0.2, 0.1) +fcrs1 <- c(0, 0) +fcrs2 <- c(0.4, 0.1) + +p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(swrc_type = 1, swrcp = p1)) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) +swrc_vwc_to_swp( + c(0.10, 0.15, 0.20), + fcoarse = fcrs1, + swrc = list(swrc_type = 1, swrcp = p1) +) + +p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(swrc_type = 1, swrcp = p2)) +(1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) +swrc_vwc_to_swp( + c(0.10, 0.15, 0.20), + fcoarse = fcrs2, + swrc = list(swrc_type = 1, swrcp = p2) +) } \seealso{ diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 959630e1..7aed9bfd 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -519,7 +519,7 @@ SEXP sw_consts(void) { @param[in] pdf_type Identification number of selected PDF @param[in] sand Sand content of the matric soil (< 2 mm fraction) [g/g] @param[in] clay Clay content of the matric soil (< 2 mm fraction) [g/g] - @param[in] gravel Coarse fragments (> 2 mm; e.g., gravel) + @param[in] fcoarse Coarse fragments (> 2 mm; e.g., gravel) of the whole soil [m3/m3] @return Matrix of estimated SWRC parameters @@ -529,14 +529,14 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( SEXP pdf_type, SEXP sand, SEXP clay, - SEXP gravel + SEXP fcoarse ) { int nlyrs = length(sand); /* Check inputs */ if ( nlyrs != length(clay) || - nlyrs != length(gravel) || + nlyrs != length(fcoarse) || nlyrs != length(swrc_type) || nlyrs != length(pdf_type) ) { @@ -548,7 +548,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( pdf_type = PROTECT(coerceVector(pdf_type, INTSXP)); sand = PROTECT(coerceVector(sand, REALSXP)); clay = PROTECT(coerceVector(clay, REALSXP)); - gravel = PROTECT(coerceVector(gravel, REALSXP)); + fcoarse = PROTECT(coerceVector(fcoarse, REALSXP)); /* Allocate memory for SWRC parameters */ SEXP @@ -563,7 +563,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( double *xsand = REAL(sand), *xclay = REAL(clay), - *xgravel = REAL(gravel), + *xcoarse = REAL(fcoarse), *xres = REAL(res_swrcp); @@ -581,7 +581,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( REAL(swrcpk), xsand[k1], xclay[k1], - xgravel[k1] + xcoarse[k1] ); for (k2 = 0; k2 < SWRC_PARAM_NMAX; k2++) { @@ -690,7 +690,7 @@ SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp) { @param[in] direction Direction of conversion, 1: SWP->SWC; 2: SWC->SWP @param[in] swrc_type Identification number of selected SWRC @param[in] *swrcp Vector or matrix of SWRC parameters - @param[in] gravel Coarse fragments (> 2 mm; e.g., gravel) + @param[in] fcoarse Coarse fragments (> 2 mm; e.g., gravel) of the whole soil [m3/m3] @param[in] width Soil layer width [cm] @@ -701,7 +701,7 @@ SEXP rSW2_SWRC( SEXP direction, SEXP swrc_type, SEXP swrcp, - SEXP gravel, + SEXP fcoarse, SEXP width ) { int xdirection = asInteger(direction); @@ -713,8 +713,8 @@ SEXP rSW2_SWRC( /* Check dimensions */ int nlyrs = length(width); - if (nlyrs != length(gravel)) { - error("`width` and `gravel` are not of the same length."); + if (nlyrs != length(fcoarse)) { + error("`width` and `fcoarse` are not of the same length."); } if (nlyrs != length(x)) { @@ -728,7 +728,7 @@ SEXP rSW2_SWRC( /* Convert inputs to correct type */ x = PROTECT(coerceVector(x, REALSXP)); - gravel = PROTECT(coerceVector(gravel, REALSXP)); + fcoarse = PROTECT(coerceVector(fcoarse, REALSXP)); width = PROTECT(coerceVector(width, REALSXP)); swrcp = PROTECT(coerceVector(swrcp, REALSXP)); swrc_type = PROTECT(coerceVector(swrc_type, INTSXP)); @@ -749,12 +749,12 @@ SEXP rSW2_SWRC( } if (nlyrs != nrp) { - UNPROTECT(5); /* unprotect: swrcp, width, gravel, x, swrc_type */ + UNPROTECT(5); /* unprotect: swrcp, width, fcoarse, x, swrc_type */ error("`nrows(swrcp)` disagrees with number of soil layers."); } if (ncp != SWRC_PARAM_NMAX) { - UNPROTECT(5); /* unprotect: swrcp, width, gravel, x, swrc_type */ + UNPROTECT(5); /* unprotect: swrcp, width, fcoarse, x, swrc_type */ error("`ncols(swrcp)` disagrees with required number of SWRC parameters."); } @@ -771,7 +771,7 @@ SEXP rSW2_SWRC( *xres = REAL(res), *xx = REAL(x), *xswrcp = REAL(swrcp), - *xgravel = REAL(gravel), + *xcoarse = REAL(fcoarse), *xwidth = REAL(width); @@ -795,7 +795,7 @@ SEXP rSW2_SWRC( xx[k1], xswrc_type[k1], swrcpk, - xgravel[k1], + xcoarse[k1], xwidth[k1] ); break; @@ -806,7 +806,7 @@ SEXP rSW2_SWRC( xx[k1], xswrc_type[k1], swrcpk, - xgravel[k1], + xcoarse[k1], xwidth[k1] ); break; From 28b6971c8bb1b8be11b05ba96dae5f9d7367fd82 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 17 Feb 2022 14:17:07 -0500 Subject: [PATCH 008/238] Allow short "type" for "swrc_type" in list `swrc` for `swrc_conversion()` - in addition to previous: `swrc_conversion(..., swrc = list(swrc_type = X, ...))` - now equivalent (and shorter): `swrc_conversion(..., swrc = list(type = X, ...))` --- R/sw_Pedotransfer_Functions.R | 15 ++++++++++----- man/SWRCs.Rd | 2 +- man/swrc_conversion.Rd | 14 +++++++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index e0896e47..7fbc4198 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -232,7 +232,7 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' each row represents one `SWRC`, e.g., one per soil layer. #' @param swrc A named list. #' Contains all necessary elements of a `SWRC`, -#' i.e., `swrc_type` and `swrcp`, +#' i.e., `type` (short for `swrc_type`) and `swrcp`, #' or all necessary elements to estimate parameters of a `SWRC` given #' soil parameters, i.e., `swrc_type` and `pdf_type`. #' @@ -394,22 +394,22 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' fcrs2 <- c(0.4, 0.1) #' #' p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) -#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(swrc_type = 1, swrcp = p1)) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(type = 1, swrcp = p1)) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) #' swrc_vwc_to_swp( #' c(0.10, 0.15, 0.20), #' fcoarse = fcrs1, -#' swrc = list(swrc_type = 1, swrcp = p1) +#' swrc = list(type = 1, swrcp = p1) #' ) #' #' p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) -#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(swrc_type = 1, swrcp = p2)) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(type = 1, swrcp = p2)) #' (1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) #' swrc_vwc_to_swp( #' c(0.10, 0.15, 0.20), #' fcoarse = fcrs2, -#' swrc = list(swrc_type = 1, swrcp = p2) +#' swrc = list(type = 1, swrcp = p2) #' ) #' #' @@ -427,6 +427,11 @@ swrc_conversion <- function( #--- Check inputs direction <- match.arg(direction) + # `type` can be used as short form of `swrc_type` + if (!("swrc_type" %in% names(swrc)) && "type" %in% names(swrc)) { + swrc[["swrc_type"]] <- swrc[["type"]] + } + stopifnot("swrc_type" %in% names(swrc)) # Do we need to estimate swrcp? diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index dac29cdd..4cf62a68 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -36,7 +36,7 @@ each row represents one \code{SWRC}, e.g., one per soil layer.} \item{swrc}{A named list. Contains all necessary elements of a \code{SWRC}, -i.e., \code{swrc_type} and \code{swrcp}, +i.e., \code{type} (short for \code{swrc_type}) and \code{swrcp}, or all necessary elements to estimate parameters of a \code{SWRC} given soil parameters, i.e., \code{swrc_type} and \code{pdf_type}.} } diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 24596366..deb9c314 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -56,7 +56,7 @@ soil water content of a soil layer and volumetric water content.} \item{swrc}{A named list. Contains all necessary elements of a \code{SWRC}, -i.e., \code{swrc_type} and \code{swrcp}, +i.e., \code{type} (short for \code{swrc_type}) and \code{swrcp}, or all necessary elements to estimate parameters of a \code{SWRC} given soil parameters, i.e., \code{swrc_type} and \code{pdf_type}.} @@ -112,24 +112,28 @@ fcrs1 <- c(0, 0) fcrs2 <- c(0.4, 0.1) p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) -swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(swrc_type = 1, swrcp = p1)) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(type = 1, swrcp = p1)) swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) swrc_vwc_to_swp( c(0.10, 0.15, 0.20), fcoarse = fcrs1, - swrc = list(swrc_type = 1, swrcp = p1) + swrc = list(type = 1, swrcp = p1) ) p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) -swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(swrc_type = 1, swrcp = p2)) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(type = 1, swrcp = p2)) (1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) swrc_vwc_to_swp( c(0.10, 0.15, 0.20), fcoarse = fcrs2, - swrc = list(swrc_type = 1, swrcp = p2) + swrc = list(type = 1, swrcp = p2) ) + +# Shape of SWRC + + } \seealso{ \code{\link[=pdf_estimate]{pdf_estimate()}}, From 043fa822e3075fe55e15937ee0db6b886d0b1353 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 17 Feb 2022 14:47:55 -0500 Subject: [PATCH 009/238] Clarify return object of `swrc_conversion()` --- R/sw_Pedotransfer_Functions.R | 33 ++++++++++++++++++++++++++++----- man/swrc_conversion.Rd | 20 +++++++++++++++++++- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 7fbc4198..c6ff1002 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -364,10 +364,28 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' @inheritParams SWRCs #' @param direction A character string. Indicates the direction of #' soil water conversion. -#' @param x A numeric value or vector. The soil water values to be converted, +#' @param x A numeric value, vector, or matrix. +#' The soil water values to be converted, #' either soil water potential (units `[MPa]`) or #' volumetric water content (units `[cm/cm]`). #' +#' @return The dimensions of the output are a function of `x` and the +#' number of soil values (e.g., rows or length of `swrc[["swrcp"]]`). +#' The returned object has: +#' \itemize{ +#' \item length `l` if both `x` and soils are of length `l`. +#' \item length `l` if `x` has length `l` and there is one soil. +#' \item length `d` if `x` is one value and soils are of length `d`. +#' \item size `l x d` if `x` has length `l` and soils are of length `d` +#' (if `l` and `d` are not equal); +#' the `d` sets of soil values are repeated for each value of `x`. +#' \item size `l x d` if `x` has size `l x d` and there is one soil. +#' the soil is repeated for each value of `x`. +#' \item size `l x d` if `x` has size `l x d` and soils are of length `d` +#' the `d` sets of soil values are repeated for each row of `x`. +#' } +#' +#' #' @section Details: #' See [SWRCs] for suitable values of `swrc_type`. #' @@ -510,8 +528,9 @@ swrc_conversion <- function( res <- array(dim = c(nrx, ncx)) - if (nx1d && (nx == 1 || nsoils == 1)) { - # 1. x [len = 1] + soils [len = 1] --> res [len = 1, dim = 1 x 1] + if (nx1d && (nx == 1 || nsoils == 1 || nx == nsoils)) { + + # 1a. x [len = 1] + soils [len = 1] --> res [len = 1, dim = 1 x 1] # nothing to prepare if (nx == 1 && nsoils > 1) { @@ -521,6 +540,10 @@ swrc_conversion <- function( } else if (nx > 1 && nx1d && nsoils == 1) { # 3. x [len = l] + soils [len = 1] --> res [len = l, dim = l x 1] soils <- lapply(soils, rep_len, length.out = nx) + + } else if (nx == nsoils) { + # 1b. x [len = l] + soils [len = l] --> res [len = l, dim = l x 1] + x <- as.vector(unlist(x)) } if (is.null(swrc[["swrcp"]])) { @@ -580,8 +603,8 @@ swrc_conversion <- function( } else if (nx > 1 && !nx1d && nsoils == ncx) { - # 6. x [dim = l x d] + soils [len = d] --> SWP [dim = l x d] - # (soils repeated for each x value) + # 6. x [dim = l x d] + soils [len = d] --> res [dim = l x d] + # (soils repeated for row of x value) if (is.null(swrc[["swrcp"]])) { swrc[["swrcp"]] <- pdf_estimate( diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index deb9c314..b26f09f9 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -38,7 +38,8 @@ swrc_vwc_to_swp( \item{direction}{A character string. Indicates the direction of soil water conversion.} -\item{x}{A numeric value or vector. The soil water values to be converted, +\item{x}{A numeric value, vector, or matrix. +The soil water values to be converted, either soil water potential (units \verb{[MPa]}) or volumetric water content (units \verb{[cm/cm]}).} @@ -76,6 +77,23 @@ volumetric water content (relative to the whole soil; units `[cm/cm]`).} (relative to the whole soil; units `[cm/cm]`) to be converted to soil water potential values (units `[MPa]`).} } +\value{ +The dimensions of the output are a function of \code{x} and the +number of soil values (e.g., rows or length of \code{swrc[["swrcp"]]}). +The returned object has: +\itemize{ +\item length \code{l} if both \code{x} and soils are of length \code{l}. +\item length \code{l} if \code{x} has length \code{l} and there is one soil. +\item length \code{d} if \code{x} is one value and soils are of length \code{d}. +\item size \verb{l x d} if \code{x} has length \code{l} and soils are of length \code{d} +(if \code{l} and \code{d} are not equal); +the \code{d} sets of soil values are repeated for each value of \code{x}. +\item size \verb{l x d} if \code{x} has size \verb{l x d} and there is one soil. +the soil is repeated for each value of \code{x}. +\item size \verb{l x d} if \code{x} has size \verb{l x d} and soils are of length \code{d} +the \code{d} sets of soil values are repeated for each row of \code{x}. +} +} \description{ Conversion between soil water content and soil water potential } From 0ba8458be208b07646cf2e3a66cd113ac0c87f67 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 21 Feb 2022 10:13:45 -0500 Subject: [PATCH 010/238] Fix S4 class initialize methods: set column names instead of dimnames - objects passed to initialize slots may vary in number of rows from "default" object while they have to have identical columns --> don't copy dimnames but instead column names where appropriate (and set rownames to NULL) --- R/D_swCarbon.R | 4 ++-- R/D_swCloud.R | 4 ++-- R/D_swWeather.R | 4 ++-- R/E_swProd.R | 10 ++++++---- R/F_swSite.R | 5 +++-- R/F_swSoils.R | 53 +++++++++++++++++++++++++++++++++++++------------ R/H_swSWC.R | 4 ++-- 7 files changed, 57 insertions(+), 27 deletions(-) diff --git a/R/D_swCarbon.R b/R/D_swCarbon.R index 041ba173..043bbba3 100644 --- a/R/D_swCarbon.R +++ b/R/D_swCarbon.R @@ -75,8 +75,8 @@ setMethod( dns <- names(dots) if ("CO2ppm" %in% dns) { - # Guarantee dimnames - dimnames(dots[["CO2ppm"]]) <- dimnames(def@CO2ppm) + # Guarantee names + dimnames(dots[["CO2ppm"]]) <- list(NULL, colnames(def@CO2ppm)) } for (sn in sns) { diff --git a/R/D_swCloud.R b/R/D_swCloud.R index 219866bf..c1b1e343 100644 --- a/R/D_swCloud.R +++ b/R/D_swCloud.R @@ -116,8 +116,8 @@ setMethod("initialize", signature = "swCloud", function(.Object, ...) { ids <- 4:5 def@Cloud[- ids, ] <- NA_real_ } else { - # Guarantee dimnames - dimnames(dots[["Cloud"]]) <- dimnames(def@Cloud) + # Guarantee names + dimnames(dots[["Cloud"]]) <- list(NULL, colnames(def@Cloud)) } for (sn in sns) { diff --git a/R/D_swWeather.R b/R/D_swWeather.R index 017995e1..b8339569 100644 --- a/R/D_swWeather.R +++ b/R/D_swWeather.R @@ -75,9 +75,9 @@ setMethod("initialize", signature = "swMonthlyScalingParams", dns <- names(dots) if ("MonthlyScalingParams" %in% dns) { - # Guarantee dimnames + # Guarantee names dimnames(dots[["MonthlyScalingParams"]]) <- - dimnames(def@MonthlyScalingParams) + list(NULL, colnames(def@MonthlyScalingParams)) } for (sn in sns) { diff --git a/R/E_swProd.R b/R/E_swProd.R index 103aa98b..bbab9443 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -161,13 +161,15 @@ setMethod("initialize", signature = "swProd", function(.Object, ...) { def@Composition[] <- NA_real_ } - # Guarantee dimnames of dots arguments - gdns <- c("CanopyHeight", "VegetationInterceptionParameters", + # Guarantee names + gdns <- c( + "CanopyHeight", "VegetationInterceptionParameters", "LitterInterceptionParameters", "HydraulicRedistribution", - "CO2Coefficients", "MonthlyVeg") + "CO2Coefficients", "MonthlyVeg" + ) for (g in gdns) if (g %in% dns) { - dimnames(dots[[g]]) <- dimnames(slot(def, g)) + dimnames(dots[[g]]) <- list(NULL, colnames(slot(def, g))) } # Initialize values diff --git a/R/F_swSite.R b/R/F_swSite.R index 54037568..491055a9 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -165,9 +165,10 @@ setMethod( if (!("TranspirationRegions" %in% dns)) { def@TranspirationRegions[, "layer"] <- NA_integer_ } else { - # Guarantee dimnames + # Guarantee names dimnames(dots[["TranspirationRegions"]]) <- - dimnames(def@TranspirationRegions) + list(NULL, colnames(def@TranspirationRegions)) + } } for (sn in sns) { diff --git a/R/F_swSoils.R b/R/F_swSoils.R index 7db5ba51..6008874e 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -50,14 +50,15 @@ setClass("swSoils", slots = c(Layers = "matrix")) swSoilLayers_validity <- function(object) { val <- TRUE - temp <- dim(object@Layers) - dtol1 <- 1 + temp[1] * rSW2_glovars[["tol"]] + tmpL <- dim(object@Layers) + dtol1 <- 1 + tmpL[1] * rSW2_glovars[["tol"]] - if (temp[1] == 0) { + #--- Check "Layers" + if (tmpL[1] == 0) { msg <- "@Layers must have at least one row/soil layer." val <- if (isTRUE(val)) msg else c(val, msg) } - if (temp[2] != 12) { + if (tmpL[2] != 12) { msg <- paste( "@Layers must have exactly 12 columns corresponding to", "depth_cm, bulkDensity_g/cm^3, gravel_content, EvapBareSoil_frac,", @@ -66,15 +67,37 @@ swSoilLayers_validity <- function(object) { ) val <- if (isTRUE(val)) msg else c(val, msg) } - if (!all(is.na(object@Layers[, 1])) && (any(object@Layers[, 1] <= 0) || - any(diff(object@Layers[, 1]) < rSW2_glovars[["tol"]]))) { - msg <- "@Layers['depth_cm', ] must be positive increasing depths." + + if ( + !all(is.na(object@Layers[, 1])) && ( + any(object@Layers[, 1] <= 0) || + any(diff(object@Layers[, 1]) < rSW2_glovars[["tol"]]) + ) + ) { + msg <- "@Layers[, 'depth_cm'] must be positive increasing depths." val <- if (isTRUE(val)) msg else c(val, msg) } - if (!all(is.na(object@Layers[, 3:11])) && (any(object@Layers[, 3:11] < 0) || - any(object@Layers[, 3:11] > dtol1))) { - msg <- paste("@Layers values of gravel, evco, trcos, sand, clay, and", - "impermeability must be between 0 and 1.") + + if ( + !all(is.na(object@Layers[, 3:11])) && + (any(object@Layers[, 3:11] < 0) || any(object@Layers[, 3:11] > dtol1)) + ) { + msg <- paste( + "@Layers values of gravel, evco, trcos, sand, clay, and", + "impermeability must be between 0 and 1." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + + tmp <- colSums(object@Layers[, 4:8, drop = FALSE]) + if (any(tmp > dtol1, na.rm = TRUE)) { + msg <- paste( + "@Layers values of profile sums of evco and trcos must be", + "between 0 and 1." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + val <- if (isTRUE(val)) msg else c(val, msg) } temp <- colSums(object@Layers[, 4:8, drop = FALSE]) @@ -101,9 +124,13 @@ setMethod("initialize", signature = "swSoils", function(.Object, ...) { if (!("Layers" %in% dns)) { def@Layers <- def@Layers[1, , drop = FALSE] def@Layers[] <- NA_real_ + ntmp <- 1 } else { - # Guarantee dimnames - dimnames(dots[["Layers"]]) <- dimnames(def@Layers) + # Guarantee names + dimnames(dots[["Layers"]]) <- list(NULL, colnames(def@Layers)) + ntmp <- nrow(dots[["Layers"]]) + } + } for (sn in sns) { diff --git a/R/H_swSWC.R b/R/H_swSWC.R index ee21825b..d38209d7 100644 --- a/R/H_swSWC.R +++ b/R/H_swSWC.R @@ -140,8 +140,8 @@ setMethod("initialize", signature = "swSWC", function(.Object, ...) { if (!("History" %in% dns)) { def@History <- list() } else { - # Guarantee dimnames - dimnames(dots[["History"]]) <- dimnames(def@History) + # Guarantee names + dimnames(dots[["History"]]) <- list(NULL, colnames(def@History)) } for (sn in sns) { From 5162d3a5204ea1ebd0d9c434bf3b9ac58cf37667 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 21 Feb 2022 10:28:01 -0500 Subject: [PATCH 011/238] `swrc_conversion()` gains new argument `outer_if_equalsize` The new argument `outer_if_equalsize` resolves the ambiguity if `x` (VWC or SWP) and the soil values are of equal length. Previously, it was not obvious whether the returned object should be of that length (map n-th arguments) or be a square matrix (of all combinations). * If `outer_if_equalsize` is TRUE, then the returned object is a square matrix where rows corresponds to the translated `x` values based on the columns to soils. * If `outer_if_equalsize` is FALSE, then the returned object is of length equal to `x` (or to the number of soils`) and nth-element correspond the translated nth-`x` value based on the nth-soil - updated and additional unit tests --- R/sw_Pedotransfer_Functions.R | 31 ++++++++++++++------ man/swrc_conversion.Rd | 20 ++++++++++--- tests/testthat/test_pedotransferfunctions.R | 32 +++++++++++++++++++-- 3 files changed, 68 insertions(+), 15 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index c6ff1002..ae7b8fed 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -368,6 +368,13 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' The soil water values to be converted, #' either soil water potential (units `[MPa]`) or #' volumetric water content (units `[cm/cm]`). +#' @param outer_if_equalsize A logical value. +#' Relevant only if `x` of length `l` and soils of length `d` are equal. +#' If `TRUE`, then the returned object has a size of `l x d` = `l x l` +#' where the `d` sets of soil values are repeated for each value of `x`. +#' If `FALSE` (default), then the returned object has a size of `l` = `d` +#' where the the `SWRC` conversion is applied to the +#' first element of `x` and soils, the second elements, and so on. #' #' @return The dimensions of the output are a function of `x` and the #' number of soil values (e.g., rows or length of `swrc[["swrcp"]]`). @@ -377,7 +384,8 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' \item length `l` if `x` has length `l` and there is one soil. #' \item length `d` if `x` is one value and soils are of length `d`. #' \item size `l x d` if `x` has length `l` and soils are of length `d` -#' (if `l` and `d` are not equal); +#' (if `l` and `d` are not equal or `outer_if_equalsize` is `TRUE`; +#' cf. the first case); #' the `d` sets of soil values are repeated for each value of `x`. #' \item size `l x d` if `x` has size `l x d` and there is one soil. #' the soil is repeated for each value of `x`. @@ -440,7 +448,8 @@ swrc_conversion <- function( layer_width, swrc, sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) { #--- Check inputs direction <- match.arg(direction) @@ -528,7 +537,9 @@ swrc_conversion <- function( res <- array(dim = c(nrx, ncx)) - if (nx1d && (nx == 1 || nsoils == 1 || nx == nsoils)) { + if ( + nx1d && (nx == 1 || nsoils == 1 || (nx == nsoils && !outer_if_equalsize)) + ) { # 1a. x [len = 1] + soils [len = 1] --> res [len = 1, dim = 1 x 1] # nothing to prepare @@ -541,7 +552,7 @@ swrc_conversion <- function( # 3. x [len = l] + soils [len = 1] --> res [len = l, dim = l x 1] soils <- lapply(soils, rep_len, length.out = nx) - } else if (nx == nsoils) { + } else if (nx == nsoils && !outer_if_equalsize) { # 1b. x [len = l] + soils [len = l] --> res [len = l, dim = l x 1] x <- as.vector(unlist(x)) } @@ -693,7 +704,8 @@ swrc_swp_to_vwc <- function( layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) { swrc_conversion( direction = "swp_to_vwc", @@ -702,7 +714,8 @@ swrc_swp_to_vwc <- function( clay = clay, fcoarse = fcoarse, layer_width = layer_width, - swrc = swrc + swrc = swrc, + outer_if_equalsize = outer_if_equalsize ) } @@ -722,7 +735,8 @@ swrc_vwc_to_swp <- function( layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) { swrc_conversion( direction = "vwc_to_swp", @@ -731,6 +745,7 @@ swrc_vwc_to_swp <- function( clay = clay, fcoarse = fcoarse, layer_width = layer_width, - swrc = swrc + swrc = swrc, + outer_if_equalsize = outer_if_equalsize ) } diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index b26f09f9..b4fd2dde 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -13,7 +13,8 @@ swrc_conversion( layer_width, swrc, sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) swrc_swp_to_vwc( @@ -22,7 +23,8 @@ swrc_swp_to_vwc( layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) swrc_vwc_to_swp( @@ -31,7 +33,8 @@ swrc_vwc_to_swp( layer_width, swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), sand = NULL, - clay = NULL + clay = NULL, + outer_if_equalsize = FALSE ) } \arguments{ @@ -69,6 +72,14 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} +\item{outer_if_equalsize}{A logical value. +Relevant only if \code{x} of length \code{l} and soils of length \code{d} are equal. +If \code{TRUE}, then the returned object has a size of \verb{l x d} = \verb{l x l} +where the \code{d} sets of soil values are repeated for each value of \code{x}. +If \code{FALSE} (default), then the returned object has a size of \code{l} = \code{d} +where the the \code{SWRC} conversion is applied to the +first element of \code{x} and soils, the second elements, and so on.} + \item{swp_MPa}{A numeric object. The soil water potential values (units `[MPa]`) to be converted to volumetric water content (relative to the whole soil; units `[cm/cm]`).} @@ -86,7 +97,8 @@ The returned object has: \item length \code{l} if \code{x} has length \code{l} and there is one soil. \item length \code{d} if \code{x} is one value and soils are of length \code{d}. \item size \verb{l x d} if \code{x} has length \code{l} and soils are of length \code{d} -(if \code{l} and \code{d} are not equal); +(if \code{l} and \code{d} are not equal or \code{outer_if_equalsize} is \code{TRUE}; +cf. the first case); the \code{d} sets of soil values are repeated for each value of \code{x}. \item size \verb{l x d} if \code{x} has size \verb{l x d} and there is one soil. the soil is repeated for each value of \code{x}. diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index d26dd3b6..1b01394a 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -77,7 +77,7 @@ if (FALSE) { #--- Tests test_that("Use SWRC to convert between VWC/SWP", { - # 1. x [len = 1] + soils [len = 1] --> res [len = 1] + # 1a. x [len = 1] + soils [len = 1] --> res [len = 1] for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { expect_equivalent( @@ -100,6 +100,18 @@ test_that("Use SWRC to convert between VWC/SWP", { } } + # 1b. x [len = l] + soils [len = d] -> res [dim = l = d] where l = d + for (ifix in names(swp_fix)) { + expect_equivalent( + swrc_vwc_to_swp( + vwcBulk = vwc_fix[, ifix], + sand = texture[, "sand"], + clay = texture[, "clay"] + ), + diag(swp_vals[, ifix, ]) + ) + } + # 2. x [len = 1] + soils [len = d] --> res [len = d] for (ifix in names(swp_fix)) { @@ -148,14 +160,28 @@ test_that("Use SWRC to convert between VWC/SWP", { } } - # 4. x [len = l] + soils [len = d] -> res [dim = l x d] + # 4a. x [len = l] + soils [len = d] -> res [dim = l x d] where l != d + # (x vector repeated for each soil): probably not used + for (ifix in names(swp_fix)) { + expect_equivalent( + swrc_vwc_to_swp( + vwcBulk = vwc_fix[, ifix], + sand = texture[-1, "sand"], + clay = texture[-1, "clay"] + ), + swp_vals[, ifix, -1] + ) + } + + # 4b. x [len = l] + soils [len = d] -> res [dim = l x d] where l = d # (x vector repeated for each soil): probably not used for (ifix in names(swp_fix)) { expect_equivalent( swrc_vwc_to_swp( vwcBulk = vwc_fix[, ifix], sand = texture[, "sand"], - clay = texture[, "clay"] + clay = texture[, "clay"], + outer_if_equalsize = TRUE ), swp_vals[, ifix, ] ) From 3449d6acd19f7c0dfad9a69b2ed32fe5fc9d1677 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 21 Feb 2022 11:39:39 -0500 Subject: [PATCH 012/238] Replacement methods now accept matrices or data.frames - previously, the signatures were set to "matrix", i.e., as user had to manually convert a data.frame to a matrix before passing the object to one of these replacement functions, e.g., `rSOILWAT2::swSoils_Layers(sw_in) <- data.matrix(soil_new)` - now, the signatures accept anything as replacement value (`data.matrix(value)` is now called internally) and the user can now pass a data.frames and matrices with the same code, e.g., `rSOILWAT2::swSoils_Layers(sw_in) <- soil_new` --- R/D_swCarbon.R | 2 +- R/F_swSite.R | 8 +++++--- R/F_swSoils.R | 21 +++++++++++++++------ R/K_swContainer.R | 11 ++++++++--- man/swInputData-class.Rd | 5 +++-- man/swSoils-class.Rd | 5 +++-- vignettes/rSOILWAT2_demo.Rmd | 8 ++++---- 7 files changed, 39 insertions(+), 21 deletions(-) diff --git a/R/D_swCarbon.R b/R/D_swCarbon.R index 043bbba3..fb2b8dcb 100644 --- a/R/D_swCarbon.R +++ b/R/D_swCarbon.R @@ -194,7 +194,7 @@ setReplaceMethod("swCarbon_DeltaYear", signature = "swCarbon", setReplaceMethod("swCarbon_CO2ppm", signature = "swCarbon", function(object, value) { colnames(value) <- colnames(object@CO2ppm) - object@CO2ppm <- value + object@CO2ppm <- data.matrix(value) validObject(object) object }) diff --git a/R/F_swSite.R b/R/F_swSite.R index 491055a9..3e4f769c 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -358,9 +358,11 @@ setReplaceMethod("swSite_TranspirationRegions", signature = "swSite", } # otherwise, we copy non-integer values which will trigger `validObject` } - colnames(value) <- colnames(object@TranspirationRegions) - object@TranspirationRegions <- array(as.integer(value), dim = dim(value), - dimnames = dimnames(value)) + object@TranspirationRegions <- array( + as.integer(value), + dim = dim(value), + dimnames = list(NULL, colnames(object@TranspirationRegions)) + ) validObject(object) object }) diff --git a/R/F_swSoils.R b/R/F_swSoils.R index 6008874e..df201682 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -157,25 +157,34 @@ setMethod("swSoils_Layers", "swSoils", function(object) object@Layers) #' @rdname swSoils-class #' @export -setReplaceMethod("set_swSoils", + +#' @rdname swSoils-class +#' @export +setReplaceMethod( + "set_swSoils", signature = c(object = "swSoils", value = "swSoils"), function(object, value) { colnames(value@Layers) <- colnames(object@Layers) object <- value validObject(object) object -}) + } +) + #' @rdname swSoils-class #' @export -setReplaceMethod("swSoils_Layers", - signature = c(object = "swSoils", value = "matrix"), +setReplaceMethod( + "swSoils_Layers", + signature = "swSoils", function(object, value) { colnames(value) <- colnames(object@Layers) - object@Layers <- value + object@Layers <- data.matrix(value) validObject(object) object -}) + } +) + #' @rdname swSoils-class diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 2edc03cb..a7d963a1 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1226,7 +1226,11 @@ setMethod("swSoils_Layers", "swInputData", #' @rdname swInputData-class #' @export -setReplaceMethod("set_swSoils", + +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "set_swSoils", signature = c(object = "swInputData", value = "swSoils"), function(object, value) { set_swSoils(object@soils) <- value @@ -1234,8 +1238,9 @@ setReplaceMethod("set_swSoils", }) #' @rdname swInputData-class #' @export -setReplaceMethod("swSoils_Layers", - signature = c(object = "swInputData", value = "matrix"), +setReplaceMethod( + "swSoils_Layers", + signature = "swInputData", function(object, value) { swSoils_Layers(object@soils) <- value object diff --git a/man/swInputData-class.Rd b/man/swInputData-class.Rd index 7bde7e2b..0eb1b82f 100644 --- a/man/swInputData-class.Rd +++ b/man/swInputData-class.Rd @@ -157,7 +157,7 @@ \alias{get_swSoils,swInputData-method} \alias{swSoils_Layers,swInputData-method} \alias{set_swSoils<-,swInputData,swSoils-method} -\alias{swSoils_Layers<-,swInputData,matrix-method} +\alias{swSoils_Layers<-,swInputData-method} \alias{get_swSWC,swInputData-method} \alias{swSWC_use,swInputData-method} \alias{swSWC_prefix,swInputData-method} @@ -509,7 +509,8 @@ \S4method{set_swSoils}{swInputData,swSoils}(object) <- value -\S4method{swSoils_Layers}{swInputData,matrix}(object) <- value + +\S4method{swSoils_Layers}{swInputData}(object) <- value \S4method{get_swSWC}{swInputData}(object) diff --git a/man/swSoils-class.Rd b/man/swSoils-class.Rd index 2992b795..545a1ff1 100644 --- a/man/swSoils-class.Rd +++ b/man/swSoils-class.Rd @@ -7,7 +7,7 @@ \alias{get_swSoils,swSoils-method} \alias{swSoils_Layers,swSoils-method} \alias{set_swSoils<-,swSoils,swSoils-method} -\alias{swSoils_Layers<-,swSoils,matrix-method} +\alias{swSoils_Layers<-,swSoils-method} \alias{swReadLines,swSoils,character-method} \title{Class \code{"swSoils"}} \usage{ @@ -19,7 +19,8 @@ \S4method{set_swSoils}{swSoils,swSoils}(object) <- value -\S4method{swSoils_Layers}{swSoils,matrix}(object) <- value + +\S4method{swSoils_Layers}{swSoils}(object) <- value \S4method{swReadLines}{swSoils,character}(object, file) } diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 6fd94b6c..21dca110 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -308,7 +308,7 @@ You may organize weather data in a variety of ways: # Assign CO2 values to rSOILWAT2 input object rSOILWAT2::swCarbon_Scenario(sw_in) <- co2_nametag - rSOILWAT2::swCarbon_CO2ppm(sw_in) <- data.matrix(co2_data) + rSOILWAT2::swCarbon_CO2ppm(sw_in) <- co2_data ``` @@ -454,7 +454,7 @@ You may organize weather data in a variety of ways: ## Assign new soil data to rSOILWAT2 input object ```{r, soils_final1} # This fails because rooting profile values are still missing - try(rSOILWAT2::swSoils_Layers(sw_in) <- data.matrix(soil_new)) + try(rSOILWAT2::swSoils_Layers(sw_in) <- soil_new) ``` @@ -566,7 +566,7 @@ You may organize weather data in a variety of ways: ## Assign new soil data to rSOILWAT2 input object ```{r, soils_final2, results = "hide"} - rSOILWAT2::swSoils_Layers(sw_in) <- data.matrix(soil_new) + rSOILWAT2::swSoils_Layers(sw_in) <- soil_new ``` @@ -581,7 +581,7 @@ You may organize weather data in a variety of ways: tr_lyrs_10cm <- c(1, 1, 1, 2, 2, 2, 2, 3, 3, 3) tr <- rSOILWAT2::prepare_TranspirationRegions(tr_lyrs = tr_lyrs_10cm) - rSOILWAT2::swSite_TranspirationRegions(sw_in) <- data.matrix(tr) + rSOILWAT2::swSite_TranspirationRegions(sw_in) <- tr # Make necessary adjustments based on soil depth and rooting profiles rSOILWAT2::swSite_TranspirationRegions(sw_in) <- From 1b344d3807b046b707eab8b7c11e02d25a3bedd1 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 22 Feb 2022 10:52:56 -0500 Subject: [PATCH 013/238] Link rSOILWAT2 more tightly to SOILWAT2 constants and values - `sw_consts()` is now utilizing SOILWAT2's `key2str[]`, `pd2longer[]`, `styp2str[]` -- instead of using copy/pasted code - `sw_out_flags()` is now utilizing `sw_consts()` -- instead of using copy/pasted code - for exported `styp2str[]`, see SOILWAT2 commit b3c6995af83296640d0e5dfdfc2e15c08c8eaaf2 --- R/L_swOutput.R | 56 +++++++------ R/Rsw.R | 2 +- R/zzz.R | 2 - src/SOILWAT2 | 2 +- src/SW_R_lib.c | 83 +++++++++++++------- tests/testthat/test_WaterBalance.R | 2 +- tests/testthat/test_exec_and_aggregate.R | 1 + tests/testthat/test_soil_temperature_fails.R | 12 ++- 8 files changed, 95 insertions(+), 65 deletions(-) diff --git a/R/L_swOutput.R b/R/L_swOutput.R index 5fc9e08d..96a19c9e 100644 --- a/R/L_swOutput.R +++ b/R/L_swOutput.R @@ -22,41 +22,39 @@ ############################################################################### -# TODO: link this to C code -# Note: the values must match those of rSW2_glovars[["kSOILWAT2"]][["OutKeys"]] #' Slot names of \linkS4class{swOutput} #' @return Standardized named vector for easier access to slots of class #' \linkS4class{swOutput}. #' @export sw_out_flags <- function() { + tmp <- rSW2_glovars[["kSOILWAT2"]][["OutKeys"]] c( - sw_aet = "AET", - sw_deepdrain = "DEEPSWC", - sw_estabs = "ESTABL", - sw_evsoil = "EVAPSOIL", - sw_evapsurface = "EVAPSURFACE", - sw_hd = "HYDRED", - sw_inf_soil = "SOILINFILT", - sw_interception = "INTERCEPTION", - sw_percolation = "LYRDRAIN", - sw_pet = "PET", - sw_precip = "PRECIP", - sw_runoff = "RUNOFF", - sw_snow = "SNOWPACK", - sw_soiltemp = "SOILTEMP", - sw_surfaceWater = "SURFACEWATER", - sw_swp = "SWPMATRIC", - sw_swabulk = "SWABULK", - sw_swcbulk = "SWCBULK", - sw_swa = "SWA", - sw_temp = "TEMP", - sw_transp = "TRANSP", - sw_vwcbulk = "VWCBULK", - sw_vwcmatric = "VWCMATRIC", - sw_co2effects = "CO2EFFECTS", - sw_veg = "BIOMASS", - sw_wetdays = "WETDAY", - sw_logfile = "LOG" + sw_aet = tmp["SW_AET"], + sw_deepdrain = tmp["SW_DEEPSWC"], + sw_estabs = tmp["SW_ESTAB"], + sw_evsoil = tmp["SW_EVAPSOIL"], + sw_evapsurface = tmp["SW_EVAPSURFACE"], + sw_hd = tmp["SW_HYDRED"], + sw_inf_soil = tmp["SW_SOILINF"], + sw_interception = tmp["SW_INTERCEPTION"], + sw_percolation = tmp["SW_LYRDRAIN"], + sw_pet = tmp["SW_PET"], + sw_precip = tmp["SW_PRECIP"], + sw_runoff = tmp["SW_RUNOFF"], + sw_snow = tmp["SW_SNOWPACK"], + sw_soiltemp = tmp["SW_SOILTEMP"], + sw_surfaceWater = tmp["SW_SURFACEW"], + sw_swp = tmp["SW_SWPMATRIC"], + sw_swabulk = tmp["SW_SWABULK"], + sw_swcbulk = tmp["SW_SWCBULK"], + sw_swa = tmp["SW_SWA"], + sw_temp = tmp["SW_TEMP"], + sw_transp = tmp["SW_TRANSP"], + sw_vwcbulk = tmp["SW_VWCBULK"], + sw_vwcmatric = tmp["SW_VWCMATRIC"], + sw_co2effects = tmp["SW_CO2EFFECTS"], + sw_veg = tmp["SW_BIOMASS"], + sw_wetdays = tmp["SW_WETDAY"] ) } diff --git a/R/Rsw.R b/R/Rsw.R index 52986199..83a350e3 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -232,7 +232,7 @@ sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", st_name <- rSW2_glovars[["kSOILWAT2"]][["OutKeys"]][["SW_SOILTEMP"]] tempd <- slot(res, st_name) - for (k in rSW2_glovars[["sw_TimeSteps"]]) { + for (k in rSW2_glovars[["kSOILWAT2"]][["OutPeriods"]]) { temp <- slot(tempd, k) np <- dim(temp) if (np[1] > 0) { diff --git a/R/zzz.R b/R/zzz.R index 6d17b649..3bb9762f 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -38,8 +38,6 @@ # Variables for interaction with SOILWAT2 assign("swof", sw_out_flags(), envir = rSW2_glovars) assign("kSOILWAT2", .Call(C_sw_consts), envir = rSW2_glovars) - assign("sw_TimeSteps", c("Day", "Week", "Month", "Year"), - envir = rSW2_glovars) # Variables for weather database functionality assign("con", NULL, envir = rSW2_glovars) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index bacc4b7c..b3c6995a 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit bacc4b7c1d266ad44dd4d339e886eb27dbc8d390 +Subproject commit b3c6995af83296640d0e5dfdfc2e15c08c8eaaf2 diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 7aed9bfd..851e1014 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -327,10 +327,13 @@ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { /** Expose SOILWAT2 constants and defines to internal R code of rSOILWAT2 - @return A list with six elements: one element `kINT` for integer constants; - other elements contain vegetation keys, `VegTypes`; output keys, `OutKeys`; - output periods, `OutPeriods`; output aggregation types, `OutAggs`; and names of - input files, `InFiles`. + @return A list with six elements: + one element `kINT` for integer constants; + other elements contain vegetation keys, `VegTypes`; + output keys, `OutKeys`; + output periods, `OutPeriods`; + output aggregation types, `OutAggs`; + and indices of input files, `InFiles`. */ SEXP sw_consts(void) { #ifdef RSWDEBUG @@ -345,45 +348,69 @@ SEXP sw_consts(void) { if (debug) swprintf("sw_consts: define variables ... "); #endif - SEXP ret, cnames, ret_num, ret_int, ret_int2, ret_str1, ret_str2, ret_str3, + SEXP + ret, cnames, ret_num, ret_int, ret_int2, ret_str1, ret_str2, ret_str3, ret_infiles; int i; int *pvINT; double *pvNUM; - char *cret[] = {"kNUM", "kINT", "VegTypes", "OutKeys", "OutPeriods", - "OutAggs", "InFiles"}; + char *cret[] = { + "kNUM", "kINT", "VegTypes", "OutKeys", "OutPeriods", "OutAggs", "InFiles" + }; + // Miscellaneous numerical constants double vNUM[] = {SW_MISSING}; char *cNUM[] = {"SW_MISSING"}; - int vINT[] = {SW_NFILES, MAX_LAYERS, MAX_TRANSP_REGIONS, MAX_NYEAR, eSW_NoTime, - SW_OUTNPERIODS, SW_OUTNKEYS, SW_NSUMTYPES, NVEGTYPES, OUT_DIGITS}; - char *cINT[] = {"SW_NFILES", "MAX_LAYERS", "MAX_TRANSP_REGIONS", "MAX_NYEAR", + // Miscellaneous integer constants + int vINT[] = { + SW_NFILES, MAX_LAYERS, MAX_TRANSP_REGIONS, MAX_NYEAR, + eSW_NoTime, SW_OUTNPERIODS, SW_OUTNKEYS, SW_NSUMTYPES, NVEGTYPES, + OUT_DIGITS + }; + char *cINT[] = { + "SW_NFILES", "MAX_LAYERS", "MAX_TRANSP_REGIONS", "MAX_NYEAR", "eSW_NoTime", "SW_OUTNPERIODS", "SW_OUTNKEYS", "SW_NSUMTYPES", "NVEGTYPES", - "OUT_DIGITS"}; + "OUT_DIGITS" + }; + + // Vegetation types + // NOTE: order must match their numeric values, i.e., how SOILWAT2 uses them int vINT2[] = {SW_TREES, SW_SHRUB, SW_FORBS, SW_GRASS}; char *cINT2[] = {"SW_TREES", "SW_SHRUB", "SW_FORBS", "SW_GRASS"}; - char *vSTR1[] = { SW_WETHR, SW_TEMP, SW_PRECIP, SW_SOILINF, SW_RUNOFF, SW_ALLH2O, SW_VWCBULK, - SW_VWCMATRIC, SW_SWCBULK, SW_SWABULK, SW_SWAMATRIC, SW_SWA, SW_SWPMATRIC, - SW_SURFACEW, SW_TRANSP, SW_EVAPSOIL, SW_EVAPSURFACE, SW_INTERCEPTION, - SW_LYRDRAIN, SW_HYDRED, SW_ET, SW_AET, SW_PET, SW_WETDAY, SW_SNOWPACK, - SW_DEEPSWC, SW_SOILTEMP, - SW_ALLVEG, SW_ESTAB, SW_CO2EFFECTS, SW_BIOMASS }; // TODO: this is identical to SW_Output.c/key2str - char *cSTR1[] = {"SW_WETHR", "SW_TEMP", "SW_PRECIP", "SW_SOILINF", "SW_RUNOFF", + // Output categories + // NOTE: `cSTR1` must agree with SW_Output.c/key2str[] + char *cSTR1[] = { + "SW_WETHR", "SW_TEMP", "SW_PRECIP", "SW_SOILINF", "SW_RUNOFF", "SW_ALLH2O", "SW_VWCBULK", "SW_VWCMATRIC", "SW_SWCBULK", "SW_SWABULK", "SW_SWAMATRIC", "SW_SWA", "SW_SWPMATRIC", "SW_SURFACEW", "SW_TRANSP", "SW_EVAPSOIL", "SW_EVAPSURFACE", "SW_INTERCEPTION", "SW_LYRDRAIN", "SW_HYDRED", "SW_ET", "SW_AET", "SW_PET", "SW_WETDAY", "SW_SNOWPACK", "SW_DEEPSWC", "SW_SOILTEMP", "SW_ALLVEG", - "SW_ESTAB", "SW_CO2EFFECTS", "SW_BIOMASS"}; - char *vSTR2[] = {SW_DAY, SW_WEEK, SW_MONTH, SW_YEAR}; // TODO: this is identical to SW_Output.c/pd2str + "SW_ESTAB", "SW_CO2EFFECTS", "SW_BIOMASS" + }; + + // Output time steps + // Note: `cSTR2` must agree with SW_Output.c/pd2longstr[] char *cSTR2[] = {"SW_DAY", "SW_WEEK", "SW_MONTH", "SW_YEAR"}; - char *vSTR3[] = {SW_SUM_OFF, SW_SUM_SUM, SW_SUM_AVG, SW_SUM_FNL}; // TODO: this is identical to SW_Output.c/styp2str + + // Output aggregation types + // Note: `cSTR3` must agree with SW_Output.c/styp2str char *cSTR3[] = {"SW_SUM_OFF", "SW_SUM_SUM", "SW_SUM_AVG", "SW_SUM_FNL"}; - char *cInF[] = {"eFirst", "eModel", "eLog", "eSite", "eLayers", "eWeather", - "eMarkovProb", "eMarkovCov", "eSky", "eVegProd", "eVegEstab", "eCarbon", "eSoilwat", - "eOutput", "eOutputDaily","eOutputWeekly","eOutputMonthly","eOutputYearly", - "eOutputDaily_soil","eOutputWeekly_soil","eOutputMonthly_soil","eOutputYearly_soil"}; // TODO: this must match SW_Files.h/SW_FileIndex + + // SOILWAT2 input files + // Note: `cInF` must agree with SW_Files.h/SW_FileIndex + char *cInF[] = { + "eFirst", + "eModel", "eLog", + "eSite", "eLayers", "eSWRCp", + "eWeather", "eMarkovProb", "eMarkovCov", "eSky", + "eVegProd", "eVegEstab", + "eCarbon", + "eSoilwat", + "eOutput", "eOutputDaily", "eOutputWeekly", "eOutputMonthly", "eOutputYearly", + "eOutputDaily_soil", "eOutputWeekly_soil", "eOutputMonthly_soil", "eOutputYearly_soil" + }; // create vector of numeric/real/double constants #ifdef RSWDEBUG @@ -431,7 +458,7 @@ SEXP sw_consts(void) { PROTECT(ret_str1 = allocVector(STRSXP, SW_OUTNKEYS)); PROTECT(cnames = allocVector(STRSXP, SW_OUTNKEYS)); for (i = 0; i < SW_OUTNKEYS; i++) { - SET_STRING_ELT(ret_str1, i, mkChar(vSTR1[i])); + SET_STRING_ELT(ret_str1, i, mkChar(key2str[i])); SET_STRING_ELT(cnames, i, mkChar(cSTR1[i])); } namesgets(ret_str1, cnames); @@ -443,7 +470,7 @@ SEXP sw_consts(void) { PROTECT(ret_str2 = allocVector(STRSXP, SW_OUTNPERIODS)); PROTECT(cnames = allocVector(STRSXP, SW_OUTNPERIODS)); for (i = 0; i < SW_OUTNPERIODS; i++) { - SET_STRING_ELT(ret_str2, i, mkChar(vSTR2[i])); + SET_STRING_ELT(ret_str2, i, mkChar(pd2longstr[i])); SET_STRING_ELT(cnames, i, mkChar(cSTR2[i])); } namesgets(ret_str2, cnames); @@ -455,7 +482,7 @@ SEXP sw_consts(void) { PROTECT(ret_str3 = allocVector(STRSXP, SW_NSUMTYPES)); PROTECT(cnames = allocVector(STRSXP, SW_NSUMTYPES)); for (i = 0; i < SW_NSUMTYPES; i++) { - SET_STRING_ELT(ret_str3, i, mkChar(vSTR3[i])); + SET_STRING_ELT(ret_str3, i, mkChar(styp2str[i])); SET_STRING_ELT(cnames, i, mkChar(cSTR3[i])); } namesgets(ret_str3, cnames); diff --git a/tests/testthat/test_WaterBalance.R b/tests/testthat/test_WaterBalance.R index 4673642b..d5721196 100644 --- a/tests/testthat/test_WaterBalance.R +++ b/tests/testthat/test_WaterBalance.R @@ -7,7 +7,7 @@ context("rSOILWAT2 water balance") #---CONSTANTS tol <- 10 ^ (-rSW2_glovars[["kSOILWAT2"]][["kINT"]][["OUT_DIGITS"]]) SW_OUTNPERIODS <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]] -OutPeriods <- rSW2_glovars[["sw_TimeSteps"]] +OutPeriods <- rSW2_glovars[["kSOILWAT2"]][["OutPeriods"]] veg_types <- c("tree", "shrub", "forbs", "grass") dir_test_data <- file.path("..", "test_data") temp <- list.files(dir_test_data, pattern = "Ex") diff --git a/tests/testthat/test_exec_and_aggregate.R b/tests/testthat/test_exec_and_aggregate.R index e143e543..c48abd2b 100644 --- a/tests/testthat/test_exec_and_aggregate.R +++ b/tests/testthat/test_exec_and_aggregate.R @@ -164,6 +164,7 @@ for (it in tests) { expect_true(check_version(rd, level = "minor")) expect_s4_class(rd, "swOutput") expect_false(has_soilTemp_failed()) + expect_true(all(sw_out_flags() %in% slotNames(rd))) # Run silently/verbosely expect_silent(sw_exec( diff --git a/tests/testthat/test_soil_temperature_fails.R b/tests/testthat/test_soil_temperature_fails.R index 76a06050..c10317d7 100644 --- a/tests/testthat/test_soil_temperature_fails.R +++ b/tests/testthat/test_soil_temperature_fails.R @@ -33,13 +33,19 @@ for (it in tests) { test_that("Check soil temperature", { # Run SOILWAT - rd <- sw_exec(inputData = sw_input, weatherList = sw_weather, - echo = FALSE, quiet = TRUE) + rd <- sw_exec( + inputData = sw_input, + weatherList = sw_weather, + echo = FALSE, + quiet = TRUE + ) expect_s4_class(rd, "swOutput") expect_false(has_soilTemp_failed()) Tsoil_data <- slot(rd, st_name) - time_steps <- rSW2_glovars[["sw_TimeSteps"]][1 + Tsoil_data@TimeStep] + time_steps <- rSW2_glovars[["kSOILWAT2"]][["OutPeriods"]][ + 1 + Tsoil_data@TimeStep + ] for (k in seq_along(time_steps)) { info <- paste("test-data", it, "- slot", time_steps[k]) From b0389111f993d3b826598cf141845326a32d38ee Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 23 Feb 2022 16:28:22 -0500 Subject: [PATCH 014/238] New `sw_verbosity()`: turn on/off messages from SOILWAT2 (sticky) - default is to print messages from SOILWAT2 to the R console - `sw_inputDataFromFiles()` gained argument "quiet" --- NAMESPACE | 1 + R/Rsw.R | 33 +++++++++++++++++++---- R/zzz.R | 2 ++ man/sw_inputDataFromFiles.Rd | 2 +- man/sw_verbosity.Rd | 17 ++++++++++++ src/SW_R_init.c | 6 +++-- src/SW_R_lib.c | 51 ++++++++++++++++++++++++++++-------- src/SW_R_lib.h | 3 ++- 8 files changed, 95 insertions(+), 20 deletions(-) create mode 100644 man/sw_verbosity.Rd diff --git a/NAMESPACE b/NAMESPACE index a8c9921c..b2243b66 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -107,6 +107,7 @@ export(sw_inputData) export(sw_inputDataFromFiles) export(sw_out_flags) export(sw_outputData) +export(sw_verbosity) export(swrc_conversion) export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) diff --git a/R/Rsw.R b/R/Rsw.R index 83a350e3..6ea9cb87 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -35,6 +35,17 @@ sw_args <- function(dir, files.in, echo, quiet) { +#' Turn on/off `SOILWAT2` notes and warnings +#' +#' @param quiet A logical value. +#' @return The previous logical value. +#' +#' @export +sw_verbosity <- function(verbose = TRUE) { + invisible(!.Call(C_sw_quiet, !as.logical(verbose))) +} + + #' Execute a \pkg{rSOILWAT2} simulation run #' #' Run the simulation and get the output data. Executes the \pkg{SOILWAT2} @@ -209,10 +220,16 @@ sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", dir_prev <- getwd() on.exit(setwd(dir_prev), add = TRUE) + quiet <- as.logical(quiet) + input <- sw_args(dir, files.in, echo, quiet) if (is.null(inputData)) { - inputData <- sw_inputDataFromFiles(dir = dir, files.in = files.in) + inputData <- sw_inputDataFromFiles( + dir = dir, + files.in = files.in, + quiet = quiet + ) } if (!check_version(inputData, level = "minor")) { @@ -222,7 +239,7 @@ sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", ) } - res <- .Call(C_start, input, inputData, weatherList, as.logical(quiet)) + res <- .Call(C_start, input, inputData, weatherList, quiet) slot(res, "version") <- rSW2_version() slot(res, "timestamp") <- rSW2_timestamp() @@ -284,14 +301,20 @@ sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", #' #' #' @export -sw_inputDataFromFiles <- function(dir = "", files.in = "files.in") { +sw_inputDataFromFiles <- function( + dir = "", + files.in = "files.in", + quiet = FALSE +) { dir_prev <- getwd() on.exit(setwd(dir_prev), add = TRUE) - input <- sw_args(dir, files.in, echo = FALSE, quiet = FALSE) + quiet <- as.logical(quiet) + + input <- sw_args(dir, files.in, echo = FALSE, quiet = quiet) - res <- .Call(C_onGetInputDataFromFiles, input) + res <- .Call(C_onGetInputDataFromFiles, input, quiet) slot(res, "version") <- rSW2_version() slot(res, "timestamp") <- rSW2_timestamp() diff --git a/R/zzz.R b/R/zzz.R index 3bb9762f..23e5d278 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -47,6 +47,8 @@ assign("tol", sqrt(.Machine$double.eps), envir = rSW2_glovars) assign("st_mo", seq_len(12L), envir = rSW2_glovars) + # Print SOILWAT2 messages to the console (by default); may turn off later + sw_verbosity(TRUE); invisible() } diff --git a/man/sw_inputDataFromFiles.Rd b/man/sw_inputDataFromFiles.Rd index 5f63b693..5d5fef46 100644 --- a/man/sw_inputDataFromFiles.Rd +++ b/man/sw_inputDataFromFiles.Rd @@ -4,7 +4,7 @@ \alias{sw_inputDataFromFiles} \title{Read simulation input data from files on disk} \usage{ -sw_inputDataFromFiles(dir = "", files.in = "files.in") +sw_inputDataFromFiles(dir = "", files.in = "files.in", quiet = FALSE) } \arguments{ \item{dir}{A character string. The path to the simulation project directory.} diff --git a/man/sw_verbosity.Rd b/man/sw_verbosity.Rd new file mode 100644 index 00000000..0669e4ed --- /dev/null +++ b/man/sw_verbosity.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Rsw.R +\name{sw_verbosity} +\alias{sw_verbosity} +\title{Turn on/off `SOILWAT2` notes and warnings} +\usage{ +sw_verbosity(verbose = TRUE) +} +\arguments{ +\item{quiet}{A logical value.} +} +\value{ +The previous logical value. +} +\description{ +Turn on/off `SOILWAT2` notes and warnings +} diff --git a/src/SW_R_init.c b/src/SW_R_init.c index bf1660f8..ee949af3 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -31,9 +31,10 @@ /* .Call calls */ extern SEXP start(SEXP, SEXP, SEXP, SEXP); extern SEXP tempError(); -extern SEXP onGetInputDataFromFiles(SEXP); +extern SEXP onGetInputDataFromFiles(SEXP, SEXP); extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); +extern SEXP sw_quiet(SEXP); extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); @@ -41,9 +42,10 @@ extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"start", (DL_FUNC) &start, 4}, {"tempError", (DL_FUNC) &tempError, 0}, - {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 1}, + {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 2}, {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 5}, {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 851e1014..b793ba09 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -54,6 +54,7 @@ Bool bWeatherList; /* Local Variables */ /* --------------------------------------------------- */ static SEXP Rlogfile; +static Bool current_sw_quiet = swFALSE; @@ -61,6 +62,34 @@ static SEXP Rlogfile; /* Global Function Definitions */ /* --------------------------------------------------- */ + +/** + * Turn on/off `SOILWAT2` messages including errors, notes, and warnings + * + * @param verbose A logical value. + * @return The previous logical value. + */ +SEXP sw_quiet(SEXP quiet) { + SEXP prev_quiet; + + PROTECT(prev_quiet = NEW_LOGICAL(1)); + LOGICAL_POINTER(prev_quiet)[0] = current_sw_quiet; + + if (LOGICAL(coerceVector(quiet, LGLSXP))[0]) { + // tell `LogError()` that R should NOT print messages to the console + logfp = NULL; + current_sw_quiet = swTRUE; + } else { + // tell `LogError()` that R should print messages to the console + logfp = (FILE *) swTRUE; // any non-NULL file pointer + current_sw_quiet = swFALSE; + } + + UNPROTECT(1); + return prev_quiet; +} + + /** * Determines if a constant in the Parton equation 2.21 is invalid and would * thus cause extreme soil temperature values (see SW_Flow_lib.c ~1770) @@ -117,14 +146,14 @@ void setupSOILWAT2(SEXP inputOptions) { } -SEXP onGetInputDataFromFiles(SEXP inputOptions) { +SEXP onGetInputDataFromFiles(SEXP inputOptions, SEXP quiet) { SEXP swInputData, SW_DataList, swLog, oRlogfile; #ifdef RSWDEBUG int debug = 0; #endif logged = FALSE; - logfp = NULL; + sw_quiet(quiet); #ifdef RSWDEBUG if (debug) swprintf("Set log\n"); @@ -149,8 +178,12 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { SW_CTL_init_run(); #ifdef RSWDEBUG - if (debug) swprintf("onGetInputDataFromFiles: copy data from SOILWAT2 " - "variables to rSOILWAT2 S4 classes: "); + if (debug) { + swprintf( + "onGetInputDataFromFiles: copy data from SOILWAT2 variables " + "to rSOILWAT2 S4 classes: " + ); + } #endif PROTECT(swInputData = MAKE_CLASS("swInputData")); @@ -240,6 +273,8 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { return SW_DataList; } + + SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { SEXP outputData, swLog, oRlogfile; #ifdef RSWDEBUG @@ -247,13 +282,7 @@ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { #endif logged = FALSE; - if (LOGICAL(coerceVector(quiet, LGLSXP))[0]) { - // tell 'LogError' that R should NOT print messages to the console - logfp = NULL; - } else { - // tell 'LogError' that R should print messages to the console - logfp = (FILE *) swTRUE; // any non-NULL file pointer - } + sw_quiet(quiet); if (isNull(inputData)) { useFiles = TRUE; diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index 1a24b297..b2b1eab0 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -38,8 +38,9 @@ extern Bool bWeatherList; /* =================================================== */ /* Global Function Declarations */ /* --------------------------------------------------- */ +SEXP sw_quiet(SEXP quiet); SEXP tempError(void); -SEXP onGetInputDataFromFiles(SEXP input); +SEXP onGetInputDataFromFiles(SEXP input, SEXP quiet); SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet); SEXP sw_consts(void); From ed9507153cba18441cd0b9c14a198f6e8685028c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 14:16:54 -0500 Subject: [PATCH 015/238] New inputs to select SWRC/PDF and (optionally) set SWRC parameter values -> reflecting updates to SOILWAT2 in commit 4eafd7eed064c45d47aacd3c329fec45976238f5 -> updated SOILWAT2 to latest commit - class "swSite" gains slot "swrc_flags" to hold `swrc_name` and `pdf_name` - class `swSoils" gains slot "SWRCp" to hold matrix of SWRC parameter values (they must have the same number of rows (i.e., soil layers) as slot "Layers" - new `swFiles_SWRCp()`, `swSite_SWRCflags`, `swSoils_SWRCp()`: methods that retrieve or replace new inputs: selected SWRC/PDF, SWRC parameters, and new SWRC parameter input file name - `swSoils_Layers()` method for class "swInputData" now automatically resizes slot "SWRCp" if estimated (later) via a selected PDF - `set_swSoils()` replacement method for class "swSoils" now can also handle a list containing "Layers" and "SWRC" (in addition to a object of class "swSoils") - new `pdf_names()`, `swrc_names()`: functions that list implemented SWRCs and PDFs - new (internal) `std_swrc()`, `std_pdf()`, `encode_name2swrc()`, `encode_name2pdf()` translate between names of SWRCs and PDFs and their SOILWAT2-internal integer code representations - `check_swrcp()`, `pdf_estimate()`, `check_swrcp()` now use `swrc_name`/`pdf_name` instead of `swrc_type`/`pdf_type` to identify a SWRC/PDF * changes in the R interface to C: - new `onSet_SW_SOILS()` because soil layers and SWRC parameters need to be handled together on the R side of SOILWAT2: is calling `onSet_SW_LYR()` and the new `onSet_SW_SWRCp()` - and correspondingly `onGet_SW_LYR()` and `onGet_SW_SWRCp()` - updated `sw_const()` now include "SWRC_types" and "PDF_types" (which provide the SOILWAT2 internal translation between codes and names), "SWRC_PARAM_NMAX", "N_SWRCs", "N_PDFs" - `rSW2_SWRC_PDF_estimate_parameters()` lost argument `swrc_type` because SOILWAT2's `SWRC_PDF_estimate_parameters()` eliminated that argument --- NAMESPACE | 8 + R/A_swGenericMethods.R | 48 ++++ R/B_swFiles.R | 13 + R/F_swSite.R | 32 ++- R/F_swSoils.R | 71 ++++- R/K_swContainer.R | 86 +++++- R/L_swOutput.R | 4 +- R/sw_Pedotransfer_Functions.R | 275 ++++++++++++++------ R/zzz.R | 2 +- data/sw_exampleData.rda | Bin 53969 -> 54323 bytes inst/extdata/example1/Input/siteparam.in | 26 ++ inst/extdata/example1/Input/swrc_params.in | 22 ++ inst/extdata/example1/files.in | 1 + man/SWRCs.Rd | 30 ++- man/check_swrcp.Rd | 24 +- man/pdf_estimate.Rd | 48 ++-- man/pdf_names.Rd | 21 ++ man/swFiles-class.Rd | 6 + man/swFiles_SWRCp-set.Rd | 20 ++ man/swFiles_SWRCp.Rd | 18 ++ man/swInputData-class.Rd | 20 ++ man/swSite-class.Rd | 6 + man/swSite_SWRCflags-set.Rd | 18 ++ man/swSite_SWRCflags.Rd | 18 ++ man/swSoils-class.Rd | 8 + man/swSoils_SWRCp-set.Rd | 20 ++ man/swSoils_SWRCp.Rd | 18 ++ man/swrc_conversion.Rd | 66 +++-- man/swrc_names.Rd | 21 ++ src/SOILWAT2 | 2 +- src/SW_R_init.c | 4 +- src/SW_R_lib.c | 90 ++++--- src/SW_R_lib.h | 1 - src/rSW_Control.c | 12 +- src/rSW_Site.c | 190 ++++++++++++-- src/rSW_Site.h | 4 +- tests/testthat/test_pedotransferfunctions.R | 4 +- 37 files changed, 1030 insertions(+), 227 deletions(-) create mode 100644 inst/extdata/example1/Input/swrc_params.in create mode 100644 man/pdf_names.Rd create mode 100644 man/swFiles_SWRCp-set.Rd create mode 100644 man/swFiles_SWRCp.Rd create mode 100644 man/swSite_SWRCflags-set.Rd create mode 100644 man/swSite_SWRCflags.Rd create mode 100644 man/swSoils_SWRCp-set.Rd create mode 100644 man/swSoils_SWRCp.Rd create mode 100644 man/swrc_names.Rd diff --git a/NAMESPACE b/NAMESPACE index b2243b66..1e8aa4d9 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -80,6 +80,7 @@ export(get_years_from_weatherData) export(has_soilTemp_failed) export(lookup_annual_CO2a) export(pdf_estimate) +export(pdf_names) export(prepare_TranspirationRegions) export(print_mkv_files) export(set_Markov) @@ -109,6 +110,7 @@ export(sw_out_flags) export(sw_outputData) export(sw_verbosity) export(swrc_conversion) +export(swrc_names) export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) export(update_biomass) @@ -172,6 +174,7 @@ exportMethods("swFiles_OutputPrefix<-") exportMethods("swFiles_Prod<-") exportMethods("swFiles_ProjDir<-") exportMethods("swFiles_SWCsetup<-") +exportMethods("swFiles_SWRCp<-") exportMethods("swFiles_SiteParams<-") exportMethods("swFiles_Soils<-") exportMethods("swFiles_WeatherPrefix<-") @@ -214,12 +217,14 @@ exportMethods("swSite_IntrinsicSiteParams<-") exportMethods("swSite_ModelCoefficients<-") exportMethods("swSite_ModelFlags<-") exportMethods("swSite_SWClimits<-") +exportMethods("swSite_SWRCflags<-") exportMethods("swSite_SnowSimulationParams<-") exportMethods("swSite_SoilTemperatureConsts<-") exportMethods("swSite_SoilTemperatureFlag<-") exportMethods("swSite_TranspCoefficients<-") exportMethods("swSite_TranspirationRegions<-") exportMethods("swSoils_Layers<-") +exportMethods("swSoils_SWRCp<-") exportMethods("swWeather_DaysRunningAverage<-") exportMethods("swWeather_FirstYearHistorical<-") exportMethods("swWeather_MonScalingParams<-") @@ -269,6 +274,7 @@ exportMethods(swFiles_OutputPrefix) exportMethods(swFiles_Prod) exportMethods(swFiles_ProjDir) exportMethods(swFiles_SWCsetup) +exportMethods(swFiles_SWRCp) exportMethods(swFiles_SiteParams) exportMethods(swFiles_Soils) exportMethods(swFiles_WeatherPrefix) @@ -310,12 +316,14 @@ exportMethods(swSite_IntrinsicSiteParams) exportMethods(swSite_ModelCoefficients) exportMethods(swSite_ModelFlags) exportMethods(swSite_SWClimits) +exportMethods(swSite_SWRCflags) exportMethods(swSite_SnowSimulationParams) exportMethods(swSite_SoilTemperatureConsts) exportMethods(swSite_SoilTemperatureFlag) exportMethods(swSite_TranspCoefficients) exportMethods(swSite_TranspirationRegions) exportMethods(swSoils_Layers) +exportMethods(swSoils_SWRCp) exportMethods(swWeather_DaysRunningAverage) exportMethods(swWeather_FirstYearHistorical) exportMethods(swWeather_MonScalingParams) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index f061ce7f..bc5e92e8 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -222,6 +222,12 @@ setGeneric("swFiles_SiteParams", #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} setGeneric("swFiles_Soils", function(object) standardGeneric("swFiles_Soils")) +#' \code{swFiles_SWRCp} +#' @param object An object of class \code{\linkS4class{swFiles}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} +setGeneric("swFiles_SWRCp", function(object) standardGeneric("swFiles_SWRCp")) + #' \code{swFiles_WeatherSetup} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. @@ -357,6 +363,14 @@ setGeneric("swFiles_SiteParams<-", setGeneric("swFiles_Soils<-", function(object, value) standardGeneric("swFiles_Soils<-")) +#' \code{swFiles_SWRCp<-} +#' @param object An object of class \code{\linkS4class{swFiles}} or +#' \code{\linkS4class{swInputData}}. +#' @param value A value to assign to a specific slot of the \code{object}. +#' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} +setGeneric("swFiles_SWRCp<-", + function(object, value) standardGeneric("swFiles_SWRCp<-")) + #' \code{swFiles_WeatherSetup<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. @@ -1166,6 +1180,15 @@ setGeneric("swProd_MonProd_forb<-", #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} setGeneric("get_swSite", function(object) standardGeneric("get_swSite")) +#' \code{swSite_SWRCflags} +#' @param object An object of class \code{\linkS4class{swSite}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +setGeneric( + "swSite_SWRCflags", + function(object) standardGeneric("swSite_SWRCflags") +) + #' \code{swSite_SWClimits} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. @@ -1257,6 +1280,15 @@ setGeneric("set_swSite", function(object, value) standardGeneric("set_swSite")) setGeneric("set_swSite<-", function(object, value) standardGeneric("set_swSite<-")) +#' \code{swSite_SWRCflags<-} +#' @param object An object of class \code{\linkS4class{swSite}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +setGeneric( + "swSite_SWRCflags<-", + function(object, value) standardGeneric("swSite_SWRCflags<-") +) + #' \code{swSite_SWClimits<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. @@ -1359,6 +1391,12 @@ setGeneric("get_swSoils", function(object) standardGeneric("get_swSoils")) #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} setGeneric("swSoils_Layers", function(object) standardGeneric("swSoils_Layers")) +#' \code{swSoils_SWRCp} +#' @param object An object of class \code{\linkS4class{swSoils}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +setGeneric("swSoils_SWRCp", function(object) standardGeneric("swSoils_SWRCp")) + #' \code{set_swSoils} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swSoils<-}} doesn't work. @@ -1381,6 +1419,16 @@ setGeneric("set_swSoils<-", #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} setGeneric("swSoils_Layers<-", function(object, value) standardGeneric("swSoils_Layers<-")) + +#' \code{swSoils_SWRCp<-} +#' @param object An object of class \code{\linkS4class{swSoils}} or +#' \code{\linkS4class{swInputData}}. +#' @param value A value to assign to a specific slot of the \code{object}. +#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +setGeneric( + "swSoils_SWRCp<-", + function(object, value) standardGeneric("swSoils_SWRCp<-") +) ######################## #########ESTAB########## diff --git a/R/B_swFiles.R b/R/B_swFiles.R index dc53a9ec..859a2f98 100644 --- a/R/B_swFiles.R +++ b/R/B_swFiles.R @@ -143,6 +143,11 @@ setMethod("swFiles_Soils", "swFiles", function(object) { }) #' @rdname swFiles-class #' @export +setMethod("swFiles_SWRCp", "swFiles", function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSWRCp"]]] +}) +#' @rdname swFiles-class +#' @export setMethod("swFiles_WeatherSetup", "swFiles", function(object) { object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eWeather"]]] }) @@ -249,6 +254,14 @@ setReplaceMethod("swFiles_SiteParams", signature = "swFiles", setReplaceMethod("swFiles_Soils", signature = "swFiles", function(object, value) set_InFiles(object, "eLayers", value)) +#' @rdname swFiles-class +#' @export +setReplaceMethod( + "swFiles_SWRCp", + signature = "swFiles", + function(object, value) set_InFiles(object, "eSWRCp", value) +) + #' @rdname swFiles-class #' @export setReplaceMethod("swFiles_WeatherSetup", signature = "swFiles", diff --git a/R/F_swSite.R b/R/F_swSite.R index 3e4f769c..b6e1c12e 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -60,7 +60,9 @@ setClass( IntrinsicSiteParams = "numeric", SoilTemperatureFlag = "logical", SoilTemperatureConstants = "numeric", - TranspirationRegions = "matrix" + TranspirationRegions = "matrix", + # swrc_flags: swrc_name, pdf_name + swrc_flags = "character" ) ) @@ -141,6 +143,11 @@ setValidity("swSite", function(object) { val <- if (isTRUE(val)) msg else c(val, msg) } + if (length(object@swrc_flags) != 2) { + msg <- "@swrc_flags length != 2." + val <- if (isTRUE(val)) msg else c(val, msg) + } + val }) @@ -169,6 +176,10 @@ setMethod( dimnames(dots[["TranspirationRegions"]]) <- list(NULL, colnames(def@TranspirationRegions)) } + + if ("swrc_flags" %in% dns) { + # Guarantee names + names(dots[["swrc_flags"]]) <- names(def@swrc_flags) } for (sn in sns) { @@ -190,6 +201,14 @@ setMethod( #' @export setMethod("get_swSite", "swSite", function(object) object) +#' @rdname swSite-class +#' @export +setMethod( + "swSite_SWRCflags", + signature = "swSite", + function(object) slot(object, "swrc_flags") +) + #' @rdname swSite-class #' @export setMethod("swSite_SWClimits", "swSite", @@ -254,6 +273,17 @@ setReplaceMethod("set_swSite", signature = "swSite", object }) +#' @rdname swSite-class +#' @export +setReplaceMethod( + "swSite_SWRCflags", + signature = "swSite", + definition = function(object, value) { + object@swrc_flags[] <- as.character(value) + validObject(object) + object +}) + #' @rdname swSite-class #' @export setReplaceMethod("swSite_SWClimits", signature = "swSite", diff --git a/R/F_swSoils.R b/R/F_swSoils.R index df201682..aed6244b 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -46,11 +46,18 @@ #' #' @name swSoils-class #' @export -setClass("swSoils", slots = c(Layers = "matrix")) +setClass( + "swSoils", + slots = c( + Layers = "matrix", + SWRCp = "matrix" + ) +) swSoilLayers_validity <- function(object) { val <- TRUE tmpL <- dim(object@Layers) + tmpp <- dim(object@SWRCp) dtol1 <- 1 + tmpL[1] * rSW2_glovars[["tol"]] #--- Check "Layers" @@ -98,12 +105,21 @@ swSoilLayers_validity <- function(object) { val <- if (isTRUE(val)) msg else c(val, msg) } + #--- Check "SWRCp" + # `SW_SIT_init_run()` will call function to check validity of SWRCp values + if (tmpp[1] != tmpL[1]) { + msg <- paste( + "@SWRCp must have exactly the same number of soil layers (rows)", + "as @Layers." + ) val <- if (isTRUE(val)) msg else c(val, msg) } - temp <- colSums(object@Layers[, 4:8, drop = FALSE]) - if (any(temp > dtol1, na.rm = TRUE)) { - msg <- paste("@Layers values of profile sums of evco and trcos must be", - "between 0 and 1.") + if (tmpp[2] != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]]) { + msg <- paste( + "@SWRCp must have exactly", + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]], + "columns." + ) val <- if (isTRUE(val)) msg else c(val, msg) } @@ -131,6 +147,14 @@ setMethod("initialize", signature = "swSoils", function(.Object, ...) { ntmp <- nrow(dots[["Layers"]]) } + # We don't set values for slot `SWRCp` if not passed via ...; this + # is to prevent simulation runs with accidentally incorrect values + if (!("SWRCp" %in% dns)) { + def@SWRCp <- def@SWRCp[rep.int(1, ntmp), , drop = FALSE] + def@SWRCp[] <- NA_real_ + } else { + # Guarantee names + dimnames(dots[["SWRCp"]]) <- list(NULL, colnames(def@SWRCp)) } for (sn in sns) { @@ -157,6 +181,7 @@ setMethod("swSoils_Layers", "swSoils", function(object) object@Layers) #' @rdname swSoils-class #' @export +setMethod("swSoils_SWRCp", "swSoils", function(object) object@SWRCp) #' @rdname swSoils-class #' @export @@ -165,12 +190,29 @@ setReplaceMethod( signature = c(object = "swSoils", value = "swSoils"), function(object, value) { colnames(value@Layers) <- colnames(object@Layers) + colnames(value@SWRCp) <- colnames(object@SWRCp) object <- value validObject(object) object } ) +#' @rdname swSoils-class +#' @export +setReplaceMethod( + "set_swSoils", + signature = c(object = "swSoils", value = "list"), + function(object, value) { + idl <- if (utils::hasName(value, "Layers")) "Layers" else 1 + idp <- if (utils::hasName(value, "SWRCp")) "SWRCp" else 2 + colnames(value[[idl]]) <- colnames(object@Layers) + colnames(value[[idp]]) <- colnames(object@SWRCp) + object@Layers <- data.matrix(value[[idl]]) + object@SWRCp <- data.matrix(value[[idp]]) + validObject(object) + object + } +) #' @rdname swSoils-class #' @export @@ -180,6 +222,23 @@ setReplaceMethod( function(object, value) { colnames(value) <- colnames(object@Layers) object@Layers <- data.matrix(value) + # Note: validity check fails if number of soil layers disagrees with + # number of of soil layers of SWRC parameters + # --> see method for "swInputData" that can automatically resizes SWRCp + validObject(object) + object + } +) + + +#' @rdname swSoils-class +#' @export +setReplaceMethod( + "swSoils_SWRCp", + signature = "swSoils", + function(object, value) { + colnames(value) <- colnames(object@SWRCp) + object@SWRCp <- data.matrix(value) validObject(object) object } @@ -187,11 +246,13 @@ setReplaceMethod( + #' @rdname swSoils-class #' @export setMethod("swReadLines", signature = c(object = "swSoils", file = "character"), function(object, file) { + stop("This function no longer works correctly; and SWRCp are not read.") infiletext <- readLines(con = file) infiletext <- infiletext[infiletext != ""] #get rid of extra spaces infiletext <- infiletext[17:length(infiletext)] #get rid of comments diff --git a/R/K_swContainer.R b/R/K_swContainer.R index a7d963a1..a9ec5451 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -184,6 +184,14 @@ setMethod("swFiles_SiteParams", "swInputData", setMethod("swFiles_Soils", "swInputData", function(object) swFiles_Soils(object@files)) +#' @rdname swInputData-class +#' @export +setMethod( + "swFiles_SWRCp", + signature = "swInputData", + function(object) swFiles_SWRCp(object@files) +) + #' @rdname swInputData-class #' @export setMethod("swFiles_WeatherSetup", "swInputData", @@ -297,6 +305,16 @@ setReplaceMethod("swFiles_Soils", signature = "swInputData", object }) +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "swFiles_SWRCp", + signature = "swInputData", + function(object, value) { + swFiles_SWRCp(object@files) <- value + object +}) + #' @rdname swInputData-class #' @export setReplaceMethod("swFiles_WeatherSetup", signature = "swInputData", @@ -1061,6 +1079,14 @@ setReplaceMethod("swProd_MonProd_forb", signature = "swInputData", #' @export setMethod("get_swSite", "swInputData", function(object) slot(object, "site")) +#' @rdname swInputData-class +#' @export +setMethod( + "swSite_SWRCflags", + "swInputData", + function(object) swSite_SWRCflags(object@site) +) + #' @rdname swInputData-class #' @export setMethod("swSite_SWClimits", "swInputData", @@ -1125,6 +1151,17 @@ setReplaceMethod("set_swSite", signature = "swInputData", object }) +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "swSite_SWRCflags", + signature = "swInputData", + function(object, value) { + swSite_SWRCflags(object@site) <- value + object + } +) + #' @rdname swInputData-class #' @export setReplaceMethod("swSite_SWClimits", signature = "swInputData", @@ -1221,11 +1258,19 @@ setMethod("get_swSoils", "swInputData", function(object) object@soils) #' @rdname swInputData-class #' @export -setMethod("swSoils_Layers", "swInputData", - function(object) swSoils_Layers(object@soils)) +setMethod( + "swSoils_Layers", + signature = "swInputData", + function(object) swSoils_Layers(object@soils) +) #' @rdname swInputData-class #' @export +setMethod( + "swSoils_SWRCp", + signature = "swInputData", + function(object) swSoils_SWRCp(object@soils) +) #' @rdname swInputData-class #' @export @@ -1236,16 +1281,53 @@ setReplaceMethod( set_swSoils(object@soils) <- value object }) + +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "set_swSoils", + signature = c(object = "swInputData", value = "list"), + function(object, value) { + set_swSoils(object@soils) <- value + object +}) + #' @rdname swInputData-class #' @export setReplaceMethod( "swSoils_Layers", signature = "swInputData", function(object, value) { + + if (as.vector(object@site@swrc_flags["pdf_name"]) != "NoPDF") { + # Note: If `pdf_type` == 0, then SWRC parameters are not estimated + # but they are either read in from disk or passed as object. + # --> however, assigning new soil layers fails `swSoils` validity checks + # if number of soil layers disagrees with the SWRC parameter object. + # If `pdf_type` != 0, then SWRC parameters will be estimated later; + # thus current values will be discarded and + # we can resize empty SWRC parameter object to avoid validity failure. + object@soils@SWRCp <- array( + data = NA_real_, + dim = c(nrow(value), ncol(object@soils@SWRCp)), + dimnames = list(NULL, colnames(object@soils@SWRCp)) + ) + } + swSoils_Layers(object@soils) <- value object }) +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "swSoils_SWRCp", + signature = "swInputData", + function(object, value) { + swSoils_SWRCp(object@soils) <- value + object +}) + # Methods for slot \code{swc} #' @rdname swInputData-class diff --git a/R/L_swOutput.R b/R/L_swOutput.R index 96a19c9e..422681ea 100644 --- a/R/L_swOutput.R +++ b/R/L_swOutput.R @@ -118,7 +118,7 @@ setMethod( "swOutput_KEY_Period", signature = "swOutput_KEY", function(object, index) { - slot(object, rSW2_glovars[["sw_TimeSteps"]][index]) + slot(object, rSW2_glovars[["kSOILWAT2"]][["OutPeriods"]][index]) } ) @@ -141,7 +141,7 @@ setReplaceMethod( "swOutput_KEY_Period", signature = "swOutput_KEY", function(object, index, value) { - slot(object, rSW2_glovars[["sw_TimeSteps"]][index]) <- value + slot(object, rSW2_glovars[["kSOILWAT2"]][["OutPeriods"]][index]) <- value validObject(object) object } diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index ae7b8fed..10b56584 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -223,29 +223,35 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' Depth interval, width, of each soil layer (units of `cm`). #' `layer_width` is required to translate between #' soil water content of a soil layer and volumetric water content. -#' @param swrc_type An integer value or vector. -#' The identification number of selected `SWRC`. -#' @param pdf_type An integer value or vector. -#' The identification number of selected `PDF`. +#' @param swrc_name An character string or vector. +#' The selected `SWRC` name +#' (one of [swrc_names()], with default `"Campbell1974"`). +#' @param pdf_name An character string or vector. +#' The selected `PDF` name +#' (one of [pdf_names()], with default `"Cosby1984AndOthers"`). #' @param swrcp A numeric vector or matrix. #' The parameters of a selected `SWRC`; #' each row represents one `SWRC`, e.g., one per soil layer. #' @param swrc A named list. #' Contains all necessary elements of a `SWRC`, -#' i.e., `type` (short for `swrc_type`) and `swrcp`, +#' i.e., `name` (short for `swrc_name`) and `swrcp`, #' or all necessary elements to estimate parameters of a `SWRC` given -#' soil parameters, i.e., `swrc_type` and `pdf_type`. +#' soil parameters, i.e., `swrc_name` and `pdf_name`. #' #' @section Details: -#' Implemented SWRCs (`swrc_type`): -#' 1. Campbell 1974 +#' [swrc_names()] lists implemented `SWRCs`; +#' [pdf_names()] lists implemented `PDFs`. #' -#' @references Campbell, G. S. 1974. -#' A simple method for determining unsaturated conductivity -#' from moisture retention data. -#' Soil Science, 117(6):311-314. \doi{10.1097/00010694-197406000-00001} +#' @inherit pdf_Rosetta3_for_vanGenuchten1980 references +#' @references +#' Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. +#' A statistical exploration of the relationships of soil moisture +#' characteristics to the physical properties of soils. +#' Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} #' #' @seealso +#' [swrc_names()], +#' [pdf_names()], #' [pdf_estimate()], #' [check_swrcp()], #' [swrc_swp_to_vwc()], @@ -256,35 +262,99 @@ VWCtoSWP_old <- function(vwc, sand, clay) { NULL +#' List Soil Water Retention Curves `SWRCs` +#' +#' @return An integer vector with names of implemented `SWRCs` +#' +#' @details Notes: +#' The integer values may change with new versions of `SOILWAT2.` +#' +#' @seealso [`SWRCs`], [pdf_names()] +#' +#' @md +#' @export +swrc_names <- function() { + rSW2_glovars[["kSOILWAT2"]][["SWRC_types"]] +} + +#' List Pedotransfer Functions `PDFs` +#' +#' @return An integer vector with names of implemented `PDFs` +#' +#' @details Notes: +#' The integer values may change with new versions of `SOILWAT2.` +#' +#' @seealso [`SWRCs`], [swrc_names()] +#' +#' @md +#' @export +pdf_names <- function() { + rSW2_glovars[["kSOILWAT2"]][["PDF_types"]] +} + + +#' Standardize a `SWRC` name +#' @noRd +std_swrc <- function(swrc_name) { + if (missing(swrc_name) || is.null(swrc_name) || all(is.na(swrc_name))) { + "Campbell1974" + } else { + as.character(swrc_name) + } +} + +#' Standardize a `PDF` name +#' @noRd +std_pdf <- function(pdf_name) { + if (missing(pdf_name) || is.null(pdf_name) || all(is.na(pdf_name))) { + "Cosby1984AndOthers" + } else { + as.character(pdf_name) + } +} + + +#' Translate a `SWRC` name to its internal integer code +#' @noRd +encode_name2swrc <- function(swrc_name) { + as.integer(unname(swrc_names()[std_swrc(swrc_name)])) +} + +#' Translate a `PDF` name to its internal integer code +#' @noRd +encode_name2pdf <- function(pdf_name) { + as.integer(unname(pdf_names()[std_pdf(pdf_name)])) +} + + + #' Estimate `SWRC` parameters from soil texture with a pedotransfer function #' #' @inheritParams SWRCs #' -#' @section Details: -#' Implemented PDFs (`pdf_type`): -#' 1. Cosby et al. 1984 PDF estimates parameters of Campbell 1974 SWRC -#' -#' @section Details: -#' See [SWRCs] for suitable values of `swrc_type`. +#' @section Notes: +#' [swrc_names()] lists implemented `SWRCs`; +#' [pdf_names()] lists implemented `PDFs`. #' #' @section Notes: #' The soil parameters `sand`, `clay`, and `fcoarse` must be of #' the same length, i.e., represent one soil (length 1) or #' multiple soil (layers) (length > 1). -#' The arguments selecting `SWRC` (`swrc_type`) and `PDF` (`pdf_type`) +#' The arguments selecting `SWRC` (`swrc_name`) and `PDF` (`pdf_name`) #' are recycled for multiple soil layers. #' #' @inherit SWRCs references #' -#' @references Cosby, B. J., G. M. Hornberger, R. B. Clapp, and T. R. Ginn. -#' 1984. A statistical exploration of the relationships of soil moisture -#' characteristics to the physical properties of soils. -#' Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} -#' #' @return `swrcp`, i.e,. #' a numeric matrix where rows represent soil (layers) and #' columns represent a fixed number of `SWRC` parameters. -#' The interpretation is dependent on the selected `SWRC`. +#' The interpretation is dependent on the selected `SWRC`, see +#' `SOILWAT2` input file `swrc_param.in` +#' ( +# nolint start +#' `system.file("extdata", "example1", "Input", "swrc_params.in", package = "rSOILWAT2")` +#' ). +# nolint end #' #' @examples #' pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), fcoarse = c(0, 0)) @@ -293,23 +363,29 @@ NULL #' pdf_estimate( #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], -#' fcoarse = soils[, "gravel_content"] +#' fcoarse = soils[, "gravel_content"], +#' swrc_name = "Campbell1974", +#' pdf_name = "Cosby1984" +#' ) #' ) #' #' @md #' @export -pdf_estimate <- function(sand, clay, fcoarse, swrc_type = 1L, pdf_type = 1L) { +pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { - # lengths of arguments are checked by `C_rSW2_SWRC_PDF_estimate_parameters()` - nlyrs <- length(sand) + #--- Check for consistency between SWRC and PDF + swrc_name <- std_swrc(swrc_name)[1] + pdf_name <- std_pdf(pdf_name)[1] - .Call( - C_rSW2_SWRC_PDF_estimate_parameters, - swrc_type = rep_len(swrc_type, nlyrs), - pdf_type = rep_len(pdf_type, nlyrs), - sand = sand, - clay = clay, - fcoarse = fcoarse + + + .Call( + C_rSW2_SWRC_PDF_estimate_parameters, + pdf_type = rep_len(encode_name2pdf(pdf_name), length(sand)), + sand = sand, + clay = clay, + fcoarse = fcoarse + ) ) } @@ -319,38 +395,42 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_type = 1L, pdf_type = 1L) { #' @inheritParams SWRCs #' #' @section Notes: -#' The argument selecting `SWRC` (`swrc_type`) is recycled +#' The argument selecting `SWRC` (`swrc_name`) is recycled #' for multiple parameter sets, i.e., rows of `swrcp`. #' #' @section Details: -#' See [SWRCs] for suitable values of `swrc_type`. +#' [swrc_names()] lists implemented `SWRCs`. #' #' @seealso [pdf_estimate()] #' #' @examples -#' swrc_type <- 1 +#' swrc_name <- "Campbell1974" +#' pdf_name <- "Cosby1984AndOthers" #' swrcp <- pdf_estimate( #' sand = c(0.5, 0.3), #' clay = c(0.2, 0.1), #' fcoarse = c(0, 0), -#' swrc_type = swrc_type +#' swrc_name = swrc_name, +#' pdf_name = pdf_name #' ) #' -#' check_swrcp(swrc_type, swrcp) -#' check_swrcp(rep(swrc_type, 2), swrcp) -#' check_swrcp(swrc_type, swrcp[1, ]) +#' check_swrcp(swrc_name, swrcp) +#' check_swrcp(swrc_name, swrcp[1, ]) #' #' swrcp2 <- swrcp #' swrcp2[1, 1] <- -10 -#' check_swrcp(rep(swrc_type, 2), swrcp2) +#' check_swrcp(swrc_name, swrcp2) #' #' @export #' @md -check_swrcp <- function(swrc_type = 1L, swrcp) { +check_swrcp <- function(swrc_name, swrcp) { # lengths of arguments are checked by `C_rSW2_SWRC_check_parameters()` .Call( C_rSW2_SWRC_check_parameters, - swrc_type = rep_len(swrc_type, if (is.matrix(swrcp)) nrow(swrcp) else 1), + swrc_type = rep_len( + encode_name2swrc(swrc_name)[1], + if (is.matrix(swrcp)) nrow(swrcp) else 1 + ), swrcp = swrcp ) } @@ -394,8 +474,11 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' } #' #' +#' @inherit SWRCs references +#' #' @section Details: -#' See [SWRCs] for suitable values of `swrc_type`. +#' [swrc_names()] lists implemented `SWRCs`; +#' [pdf_names()] lists implemented `PDFs`. #' #' @section Details: #' For backward compatibility, `fcoarse` and `layer_width` may be missing. @@ -407,7 +490,7 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' need to be estimated on the fly, i.e., if `swrc` does not contain #' the element `swrcp` (with suitable `SWRC` parameter values). #' This is handled by [pdf_estimate()] and additionally requires -#' the element `pdf_type` for argument `swrc`. +#' the element `pdf_name` for argument `swrc`. #' #' @seealso #' [pdf_estimate()], @@ -419,24 +502,50 @@ check_swrcp <- function(swrc_type = 1L, swrcp) { #' fcrs1 <- c(0, 0) #' fcrs2 <- c(0.4, 0.1) #' -#' p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) -#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(type = 1, swrcp = p1)) +#' swrc1 <- list( +#' name = "Campbell1974", +#' swrcp = pdf_estimate( +#' sand = fsand, +#' clay = fclay, +#' fcoarse = fcrs1, +#' swrc_name = "Campbell1974", +#' pdf_name = "Cosby1984" +#' ) +#' ) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = swrc1) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) -#' swrc_vwc_to_swp( -#' c(0.10, 0.15, 0.20), -#' fcoarse = fcrs1, -#' swrc = list(type = 1, swrcp = p1) +#' swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs1, swrc = swrc1) +#' +#' swrc2 <- list( +#' name = "Campbell1974", +#' swrcp = pdf_estimate( +#' sand = fsand, +#' clay = fclay, +#' fcoarse = fcrs2, +#' swrc_name = "Campbell1974", +#' pdf_name = "Cosby1984" +#' ) #' ) -#' -#' p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) -#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(type = 1, swrcp = p2)) -#' (1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) +#' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = swrc2) +#' (1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = swrc2) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) -#' swrc_vwc_to_swp( -#' c(0.10, 0.15, 0.20), -#' fcoarse = fcrs2, -#' swrc = list(type = 1, swrcp = p2) +#' swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs2, swrc = swrc2) +#' +#' +#' # Available water holding capacity "AWC" +#' soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) +#' p <- pdf_estimate( +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' fcoarse = soils[, "gravel_content"] #' ) +#' tmp <- swrc_swp_to_vwc( +#' c(-1.5, -0.033), +#' fcoarse = soils[, "gravel_content"], +#' swrc = list(name = "Campbell1974", swrcp = p) +#' ) +#' awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) +#' #' #' #' @export @@ -454,12 +563,15 @@ swrc_conversion <- function( #--- Check inputs direction <- match.arg(direction) - # `type` can be used as short form of `swrc_type` - if (!("swrc_type" %in% names(swrc)) && "type" %in% names(swrc)) { - swrc[["swrc_type"]] <- swrc[["type"]] + # `name` can be used as short form of `swrc_name` + if (!("swrc_name" %in% names(swrc)) && "name" %in% names(swrc)) { + swrc[["swrc_name"]] <- swrc[["name"]] } - stopifnot("swrc_type" %in% names(swrc)) + stopifnot("swrc_name" %in% names(swrc)) + swrc[["swrc_name"]] <- std_swrc(swrc[["swrc_name"]])[1] + swrc[["swrc_type"]] <- encode_name2swrc(swrc[["swrc_name"]]) + # Do we need to estimate swrcp? swrc[["swrcp"]] <- if ( @@ -475,10 +587,12 @@ swrc_conversion <- function( # Do we have sufficient information to estimate swrcp? if (is.null(swrc[["swrcp"]])) { if ( - !all(c("swrc_type", "pdf_type") %in% names(swrc)) || + !all(c("swrc_name", "pdf_name") %in% names(swrc)) || is.null(sand) || is.null(clay) ) { stop("Insufficient information to estimate SWRC parameters.") + } else { + swrc[["pdf_type"]] <- encode_name2swrc(swrc[["pdf_name"]])[1] } } @@ -562,8 +676,8 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], - swrc_type = swrc[["swrc_type"]], - pdf_type = swrc[["pdf_type"]] + swrc_name = swrc[["swrc_name"]], + pdf_name = swrc[["pdf_name"]] ) } @@ -578,8 +692,8 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], - swrc_type = swrc[["swrc_type"]], - pdf_type = swrc[["pdf_type"]] + swrc_name = swrc[["swrc_name"]], + pdf_name = swrc[["pdf_name"]] ) } @@ -600,8 +714,8 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], - swrc_type = swrc[["swrc_type"]], - pdf_type = swrc[["pdf_type"]] + swrc_name = swrc[["swrc_name"]], + pdf_name = swrc[["pdf_name"]] ) } @@ -622,8 +736,8 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], - swrc_type = swrc[["swrc_type"]], - pdf_type = swrc[["pdf_type"]] + swrc_name = swrc[["swrc_name"]], + pdf_name = swrc[["pdf_name"]] ) } @@ -632,13 +746,14 @@ swrc_conversion <- function( res <- vapply( seq_len(ncx), function(k) { + ids <- rep.int(k, nrx) swrc_conversion_1d( direction, x = x[, k], - soils = lapply(soils, function(sp) rep_len(sp[k], length.out = nrx)), + soils = lapply(soils, function(sp) sp[ids]), swrc = list( - swrc_type = rep_len(swrc[["swrc_type"]][k], nrx), - swrcp = swrc[["swrcp"]][rep(k, nrx), ] + swrc_type = swrc[["swrc_type"]][ids], + swrcp = swrc[["swrcp"]][ids, , drop = FALSE] ) ) }, @@ -702,7 +817,7 @@ swrc_swp_to_vwc <- function( swp_MPa, fcoarse, layer_width, - swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, outer_if_equalsize = FALSE @@ -733,7 +848,7 @@ swrc_vwc_to_swp <- function( vwcBulk, fcoarse, layer_width, - swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, outer_if_equalsize = FALSE diff --git a/R/zzz.R b/R/zzz.R index 23e5d278..08470657 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -48,7 +48,7 @@ assign("st_mo", seq_len(12L), envir = rSW2_glovars) # Print SOILWAT2 messages to the console (by default); may turn off later - sw_verbosity(TRUE); + sw_verbosity(TRUE) invisible() } diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 1217d8c5be607599615fd34f5db099c3da1539ec..ccd07f837f63e7a1d385d7268f2e56d07b3c8003 100644 GIT binary patch literal 54323 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 W#Y7Z29H9mO@pmLsg$WDCA>%NPN;tUy literal 53969 zcma&NbyQr<(=Lj;y9Z}*w?Tr#;O-D)aCc9T!F_NI?(UidcXt_rI}@Bh-sC;`o$s9Q ztaa91_ugLBwX2_}s(S7EuY1>)Gj$Z_mo;J4GijU98b(6I`}FVsHU7N3{OSJp$N#|( zWdGbEARy3fefg^qo;`Xf5F)?fq9UK`;8hY?{RjL1GZ0JuAHA$$Wo~)lVdy1vy@4@B zoA{}P2z0Oe(6{1eY-$-QTJ&86slA`Bn~ouys7Xkh<=+DlLe64$tVcYN>S}j%2@F)Q znA>H~k>v@TYa3+x5B3p`q9unugdki?q!a|74faG5HB0|Q5dVRjhae!qkJP}03?JD< z5Zoo2__A`{H9O4_9^f|Kh>41-t*uR}k8b6Wz!-*zkO}2bjUcJvLqI@^SVTZT{3{3S z{X^v65ztrTwZ4Qh{``p$ijnoQ5assr4f!xOl~6xg4pO3EfRufJP%2L&z4fq2#%KHQp+wT9G6;+mn~H!J;*l*P(NH}^`~v|$aOa&@VnG@E0YW|kVF`VN&^NwO z*6`eLVht)>M3LJ4x=$S_Ya&YeTUu-QB)HAp_K0^Qm#RX6B9m_w&H9pAY|i+E8qx5K&;A_VwItwM{xX4 zI07z8HMEjBnu;n|1_2jePhLxoESLTKR# zlzbX|`Bs?aNZ=uUAp}QUWDQ&dJ~@3^0u;hhNl1apwv(1~v2!taDP4*vM3oA?_ENM) zNVx{QA`~M}FNE+I6OJt7RF$gz_ob<|7ax-|S60@9aD^t_WHXjgK?D(07zi=>jtF@b zli!^9@@*BCAal65>a6s+Lqf=^A8T(&rf#&KG%}qoY98}0i>qt@)FS+?qm*n1JwkA7 zZHc3!V{jhM@7p+zKOFz~JH1;!G9Xo1Q562*c*E2aX3(#2esaleY-zYb&N4N$Y(x@3 zgQTP4OUN?D29h1xg({0NAen6cQ(VMXf&Rj zmK{~BOcS!75kEmwH0qmCp1w=c3!3)=Fs5Z5a*$jADxfET0C55yf{U5qd&&BlACe!1 zepSDPEqn?3qP5aqbXQ!@^!girSN;rV(6JVc#(gPVvgB2!EMLN~HZs^1n{>7HBg4{|WN^UrGLh{kMtK7Gd(Ar8gRY3+FFk z{9k0|f9==sKX;v^hY0$ubZ#TES|Q&JTCnrZkiSTJg&^2ToJ@J+%!+w z0%PH*|0ROR|HuAs@V^WZg>@|12CAX|DgT=za6xPN{}A-n4%`wqWJhY5ZL~#^i2uE4 z{EPkHdx=<=DL+VaI_Rf-Xz%^~_3+=9SbUp5FJ!ZW(jH2m{Og8g-Xh=Gp6&1b$vJ%s z42u&0A-)0IJWwL(8D%&g42Wo-4h9&sc!g@P1==~ar7YAd8fBlfI_RdKi*5yjh%)B< zUw-bnzU@c|8EJT2*ShTWg|f7?OYs?LBqwp$PIuOPeE#I8wfQ++DPMu``dE${zLAW{=ctv$|M-Du@wUW(w(;T6zOPmv(yP3=g z7_IlosdDB&n_*uz#SR`8%abXLw}wCYr8@*7e&&;^W{=`hLUCr-N~F^{suIa3A865j_HGIhRz!_GwHl0s@C_K6_nn1ed58 z0wx09u~A~RQF>=FTIjBuwvf!s)X@?0IX(QJwSG-=C|AU=WatY)l;dWXDF zX=z8YFJNj9K_PrmN$l4_SbdHQeW&g*uccoZrOZQp`!wq2GHw`r1cOqh4-e%;=3zgW zKw$Qc-lrstf-VW4486imTS|8()dX zKRw(tO$Mqz#XW2PZDmP*SN-s(>PrMoO9IZCYUg-RmfQw9Q_9yWryHu(-04>fw*yPH z5$s%H9jWKN8KaQ*A1*$fyZo!5_N4cy@pd~0el#7EVr}|&{d0@+tZqz&d!O_7=zkmT z=R)3tzqqmmblBrcX*HGc<4&7niNH)H_sJ=!`O*h&OyW$$%w+CUu(E(7&%SlWS~34 z*H7v~Z5Bv~CoZ-Nk(<-m+;*8fm&2

oH1G)JM+ka>h5M&x!$!GJ2y3F)1Ktf%9(& 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 V$Vw+8lpwzFUC9*TLPE 1). -The arguments selecting \code{SWRC} (\code{swrc_type}) and \code{PDF} (\code{pdf_type}) +The arguments selecting \code{SWRC} (\code{swrc_name}) and \code{PDF} (\code{pdf_name}) are recycled for multiple soil layers. } @@ -64,13 +63,22 @@ soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) pdf_estimate( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], - fcoarse = soils[, "gravel_content"] + fcoarse = soils[, "gravel_content"], + swrc_name = "Campbell1974", + pdf_name = "Cosby1984" +) +pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"], + swrc_name = "vanGenuchten1980", + pdf_name = "Rosetta3" ) } \references{ -Cosby, B. J., G. M. Hornberger, R. B. Clapp, and T. R. Ginn. -1984. A statistical exploration of the relationships of soil moisture +Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. +A statistical exploration of the relationships of soil moisture characteristics to the physical properties of soils. Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} } diff --git a/man/pdf_names.Rd b/man/pdf_names.Rd new file mode 100644 index 00000000..0464d149 --- /dev/null +++ b/man/pdf_names.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdf_names} +\alias{pdf_names} +\title{List Pedotransfer Functions \code{PDFs}} +\usage{ +pdf_names() +} +\value{ +An integer vector with names of implemented \code{PDFs} +} +\description{ +List Pedotransfer Functions \code{PDFs} +} +\details{ +Notes: +The integer values may change with new versions of \code{SOILWAT2.} +} +\seealso{ +\code{\link{SWRCs}}, \code{\link[=swrc_names]{swrc_names()}} +} diff --git a/man/swFiles-class.Rd b/man/swFiles-class.Rd index 3c17a23b..5541d4d3 100644 --- a/man/swFiles-class.Rd +++ b/man/swFiles-class.Rd @@ -12,6 +12,7 @@ \alias{swFiles_LogFile,swFiles-method} \alias{swFiles_SiteParams,swFiles-method} \alias{swFiles_Soils,swFiles-method} +\alias{swFiles_SWRCp,swFiles-method} \alias{swFiles_WeatherSetup,swFiles-method} \alias{swFiles_MarkovProbs,swFiles-method} \alias{swFiles_MarkovCov,swFiles-method} @@ -29,6 +30,7 @@ \alias{swFiles_LogFile<-,swFiles-method} \alias{swFiles_SiteParams<-,swFiles-method} \alias{swFiles_Soils<-,swFiles-method} +\alias{swFiles_SWRCp<-,swFiles-method} \alias{swFiles_WeatherSetup<-,swFiles-method} \alias{swFiles_MarkovProbs<-,swFiles-method} \alias{swFiles_MarkovCov<-,swFiles-method} @@ -59,6 +61,8 @@ \S4method{swFiles_Soils}{swFiles}(object) +\S4method{swFiles_SWRCp}{swFiles}(object) + \S4method{swFiles_WeatherSetup}{swFiles}(object) \S4method{swFiles_MarkovProbs}{swFiles}(object) @@ -93,6 +97,8 @@ \S4method{swFiles_Soils}{swFiles}(object) <- value +\S4method{swFiles_SWRCp}{swFiles}(object) <- value + \S4method{swFiles_WeatherSetup}{swFiles}(object) <- value \S4method{swFiles_MarkovProbs}{swFiles}(object) <- value diff --git a/man/swFiles_SWRCp-set.Rd b/man/swFiles_SWRCp-set.Rd new file mode 100644 index 00000000..d0b0ff45 --- /dev/null +++ b/man/swFiles_SWRCp-set.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swFiles_SWRCp<-} +\alias{swFiles_SWRCp<-} +\title{\code{swFiles_SWRCp<-}} +\usage{ +swFiles_SWRCp(object) <- value +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swFiles}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} +\description{ +\code{swFiles_SWRCp<-} +} +\seealso{ +\code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swFiles_SWRCp.Rd b/man/swFiles_SWRCp.Rd new file mode 100644 index 00000000..ccecd3f2 --- /dev/null +++ b/man/swFiles_SWRCp.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swFiles_SWRCp} +\alias{swFiles_SWRCp} +\title{\code{swFiles_SWRCp}} +\usage{ +swFiles_SWRCp(object) +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swFiles}} or +\code{\linkS4class{swInputData}}.} +} +\description{ +\code{swFiles_SWRCp} +} +\seealso{ +\code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swInputData-class.Rd b/man/swInputData-class.Rd index 0eb1b82f..a1c781d5 100644 --- a/man/swInputData-class.Rd +++ b/man/swInputData-class.Rd @@ -11,6 +11,7 @@ \alias{swFiles_LogFile,swInputData-method} \alias{swFiles_SiteParams,swInputData-method} \alias{swFiles_Soils,swInputData-method} +\alias{swFiles_SWRCp,swInputData-method} \alias{swFiles_WeatherSetup,swInputData-method} \alias{swFiles_MarkovProbs,swInputData-method} \alias{swFiles_MarkovCov,swInputData-method} @@ -29,6 +30,7 @@ \alias{swFiles_LogFile<-,swInputData-method} \alias{swFiles_SiteParams<-,swInputData-method} \alias{swFiles_Soils<-,swInputData-method} +\alias{swFiles_SWRCp<-,swInputData-method} \alias{swFiles_WeatherSetup<-,swInputData-method} \alias{swFiles_MarkovProbs<-,swInputData-method} \alias{swFiles_MarkovCov<-,swInputData-method} @@ -131,6 +133,7 @@ \alias{swProd_MonProd_tree<-,swInputData-method} \alias{swProd_MonProd_forb<-,swInputData-method} \alias{get_swSite,swInputData-method} +\alias{swSite_SWRCflags,swInputData-method} \alias{swSite_SWClimits,swInputData-method} \alias{swSite_ModelFlags,swInputData-method} \alias{swSite_ModelCoefficients,swInputData-method} @@ -143,6 +146,7 @@ \alias{swSite_SoilTemperatureConsts,swInputData-method} \alias{swSite_TranspirationRegions,swInputData-method} \alias{set_swSite<-,swInputData-method} +\alias{swSite_SWRCflags<-,swInputData-method} \alias{swSite_SWClimits<-,swInputData-method} \alias{swSite_ModelFlags<-,swInputData-method} \alias{swSite_ModelCoefficients<-,swInputData-method} @@ -156,8 +160,11 @@ \alias{swSite_TranspirationRegions<-,swInputData-method} \alias{get_swSoils,swInputData-method} \alias{swSoils_Layers,swInputData-method} +\alias{swSoils_SWRCp,swInputData-method} \alias{set_swSoils<-,swInputData,swSoils-method} +\alias{set_swSoils<-,swInputData,list-method} \alias{swSoils_Layers<-,swInputData-method} +\alias{swSoils_SWRCp<-,swInputData-method} \alias{get_swSWC,swInputData-method} \alias{swSWC_use,swInputData-method} \alias{swSWC_prefix,swInputData-method} @@ -213,6 +220,8 @@ \S4method{swFiles_Soils}{swInputData}(object) +\S4method{swFiles_SWRCp}{swInputData}(object) + \S4method{swFiles_WeatherSetup}{swInputData}(object) \S4method{swFiles_MarkovProbs}{swInputData}(object) @@ -249,6 +258,8 @@ \S4method{swFiles_Soils}{swInputData}(object) <- value +\S4method{swFiles_SWRCp}{swInputData}(object) <- value + \S4method{swFiles_WeatherSetup}{swInputData}(object) <- value \S4method{swFiles_MarkovProbs}{swInputData}(object) <- value @@ -457,6 +468,8 @@ \S4method{get_swSite}{swInputData}(object) +\S4method{swSite_SWRCflags}{swInputData}(object) + \S4method{swSite_SWClimits}{swInputData}(object) \S4method{swSite_ModelFlags}{swInputData}(object) @@ -481,6 +494,8 @@ \S4method{set_swSite}{swInputData}(object) <- value +\S4method{swSite_SWRCflags}{swInputData}(object) <- value + \S4method{swSite_SWClimits}{swInputData}(object) <- value \S4method{swSite_ModelFlags}{swInputData}(object) <- value @@ -507,11 +522,16 @@ \S4method{swSoils_Layers}{swInputData}(object) +\S4method{swSoils_SWRCp}{swInputData}(object) + \S4method{set_swSoils}{swInputData,swSoils}(object) <- value +\S4method{set_swSoils}{swInputData,list}(object) <- value \S4method{swSoils_Layers}{swInputData}(object) <- value +\S4method{swSoils_SWRCp}{swInputData}(object) <- value + \S4method{get_swSWC}{swInputData}(object) \S4method{swSWC_use}{swInputData}(object) diff --git a/man/swSite-class.Rd b/man/swSite-class.Rd index 58f2fb39..97b6d169 100644 --- a/man/swSite-class.Rd +++ b/man/swSite-class.Rd @@ -5,6 +5,7 @@ \alias{swSite-class} \alias{initialize,swSite-method} \alias{get_swSite,swSite-method} +\alias{swSite_SWRCflags,swSite-method} \alias{swSite_SWClimits,swSite-method} \alias{swSite_ModelFlags,swSite-method} \alias{swSite_ModelCoefficients,swSite-method} @@ -17,6 +18,7 @@ \alias{swSite_SoilTemperatureConsts,swSite-method} \alias{swSite_TranspirationRegions,swSite-method} \alias{set_swSite<-,swSite-method} +\alias{swSite_SWRCflags<-,swSite-method} \alias{swSite_SWClimits<-,swSite-method} \alias{swSite_ModelFlags<-,swSite-method} \alias{swSite_ModelCoefficients<-,swSite-method} @@ -35,6 +37,8 @@ \S4method{get_swSite}{swSite}(object) +\S4method{swSite_SWRCflags}{swSite}(object) + \S4method{swSite_SWClimits}{swSite}(object) \S4method{swSite_ModelFlags}{swSite}(object) @@ -59,6 +63,8 @@ \S4method{set_swSite}{swSite}(object) <- value +\S4method{swSite_SWRCflags}{swSite}(object) <- value + \S4method{swSite_SWClimits}{swSite}(object) <- value \S4method{swSite_ModelFlags}{swSite}(object) <- value diff --git a/man/swSite_SWRCflags-set.Rd b/man/swSite_SWRCflags-set.Rd new file mode 100644 index 00000000..455d8d94 --- /dev/null +++ b/man/swSite_SWRCflags-set.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swSite_SWRCflags<-} +\alias{swSite_SWRCflags<-} +\title{\code{swSite_SWRCflags<-}} +\usage{ +swSite_SWRCflags(object) <- value +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSite}} or +\code{\linkS4class{swInputData}}.} +} +\description{ +\code{swSite_SWRCflags<-} +} +\seealso{ +\code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swSite_SWRCflags.Rd b/man/swSite_SWRCflags.Rd new file mode 100644 index 00000000..54eddad3 --- /dev/null +++ b/man/swSite_SWRCflags.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swSite_SWRCflags} +\alias{swSite_SWRCflags} +\title{\code{swSite_SWRCflags}} +\usage{ +swSite_SWRCflags(object) +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSite}} or +\code{\linkS4class{swInputData}}.} +} +\description{ +\code{swSite_SWRCflags} +} +\seealso{ +\code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swSoils-class.Rd b/man/swSoils-class.Rd index 545a1ff1..902c9ff2 100644 --- a/man/swSoils-class.Rd +++ b/man/swSoils-class.Rd @@ -6,8 +6,11 @@ \alias{initialize,swSoils-method} \alias{get_swSoils,swSoils-method} \alias{swSoils_Layers,swSoils-method} +\alias{swSoils_SWRCp,swSoils-method} \alias{set_swSoils<-,swSoils,swSoils-method} +\alias{set_swSoils<-,swSoils,list-method} \alias{swSoils_Layers<-,swSoils-method} +\alias{swSoils_SWRCp<-,swSoils-method} \alias{swReadLines,swSoils,character-method} \title{Class \code{"swSoils"}} \usage{ @@ -17,11 +20,16 @@ \S4method{swSoils_Layers}{swSoils}(object) +\S4method{swSoils_SWRCp}{swSoils}(object) + \S4method{set_swSoils}{swSoils,swSoils}(object) <- value +\S4method{set_swSoils}{swSoils,list}(object) <- value \S4method{swSoils_Layers}{swSoils}(object) <- value +\S4method{swSoils_SWRCp}{swSoils}(object) <- value + \S4method{swReadLines}{swSoils,character}(object, file) } \arguments{ diff --git a/man/swSoils_SWRCp-set.Rd b/man/swSoils_SWRCp-set.Rd new file mode 100644 index 00000000..2616b032 --- /dev/null +++ b/man/swSoils_SWRCp-set.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swSoils_SWRCp<-} +\alias{swSoils_SWRCp<-} +\title{\code{swSoils_SWRCp<-}} +\usage{ +swSoils_SWRCp(object) <- value +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSoils}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} +\description{ +\code{swSoils_SWRCp<-} +} +\seealso{ +\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swSoils_SWRCp.Rd b/man/swSoils_SWRCp.Rd new file mode 100644 index 00000000..4f64468a --- /dev/null +++ b/man/swSoils_SWRCp.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{swSoils_SWRCp} +\alias{swSoils_SWRCp} +\title{\code{swSoils_SWRCp}} +\usage{ +swSoils_SWRCp(object) +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSoils}} or +\code{\linkS4class{swInputData}}.} +} +\description{ +\code{swSoils_SWRCp} +} +\seealso{ +\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +} diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index b4fd2dde..b17cf0d4 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -21,7 +21,7 @@ swrc_swp_to_vwc( swp_MPa, fcoarse, layer_width, - swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, outer_if_equalsize = FALSE @@ -31,7 +31,7 @@ swrc_vwc_to_swp( vwcBulk, fcoarse, layer_width, - swrc = list(swrc_type = 1L, pdf_type = 1L, swrcp = NULL), + swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, outer_if_equalsize = FALSE @@ -60,9 +60,9 @@ soil water content of a soil layer and volumetric water content.} \item{swrc}{A named list. Contains all necessary elements of a \code{SWRC}, -i.e., \code{type} (short for \code{swrc_type}) and \code{swrcp}, +i.e., \code{name} (short for \code{swrc_name}) and \code{swrcp}, or all necessary elements to estimate parameters of a \code{SWRC} given -soil parameters, i.e., \code{swrc_type} and \code{pdf_type}.} +soil parameters, i.e., \code{swrc_name} and \code{pdf_name}.} \item{sand}{A numeric value or vector. Sand content of the matric soil component @@ -120,7 +120,8 @@ to convert from `VWC` to `SWP` with selected `SWRC` \section{Details}{ -See \link{SWRCs} for suitable values of \code{swrc_type}. +\code{\link[=swrc_names]{swrc_names()}} lists implemented \code{SWRCs}; +\code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}. For backward compatibility, \code{fcoarse} and \code{layer_width} may be missing. @@ -132,7 +133,7 @@ Arguments \code{sand} and \code{clay} are only required if \code{SWRC} parameter need to be estimated on the fly, i.e., if \code{swrc} does not contain the element \code{swrcp} (with suitable \code{SWRC} parameter values). This is handled by \code{\link[=pdf_estimate]{pdf_estimate()}} and additionally requires -the element \code{pdf_type} for argument \code{swrc}. +the element \code{pdf_name} for argument \code{swrc}. } \examples{ @@ -141,24 +142,49 @@ fclay <- c(0.2, 0.1) fcrs1 <- c(0, 0) fcrs2 <- c(0.4, 0.1) -p1 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs1) -swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = list(type = 1, swrcp = p1)) +swrc1 <- list( + name = "Campbell1974", + swrcp = pdf_estimate( + sand = fsand, + clay = fclay, + fcoarse = fcrs1, + swrc_name = "Campbell1974", + pdf_name = "Cosby1984" + ) +) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = swrc1) swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) -swrc_vwc_to_swp( - c(0.10, 0.15, 0.20), - fcoarse = fcrs1, - swrc = list(type = 1, swrcp = p1) +swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs1, swrc = swrc1) + +swrc2 <- list( + name = "Campbell1974", + swrcp = pdf_estimate( + sand = fsand, + clay = fclay, + fcoarse = fcrs2, + swrc_name = "Campbell1974", + pdf_name = "Cosby1984" + ) ) - -p2 <- pdf_estimate(sand = fsand, clay = fclay, fcoarse = fcrs2) -swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = list(type = 1, swrcp = p2)) -(1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = list(type = 1, swrcp = p2)) +swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, swrc = swrc2) +(1 - fcrs2) * swrc_swp_to_vwc(-1.5, swrc = swrc2) swrc_swp_to_vwc(-1.5, fcoarse = fcrs2, sand = fsand, clay = fclay) -swrc_vwc_to_swp( - c(0.10, 0.15, 0.20), - fcoarse = fcrs2, - swrc = list(type = 1, swrcp = p2) +swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs2, swrc = swrc2) + + +# Available water holding capacity "AWC" +soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) +p <- pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"] +) +tmp <- swrc_swp_to_vwc( + c(-1.5, -0.033), + fcoarse = soils[, "gravel_content"], + swrc = list(name = "Campbell1974", swrcp = p) ) +awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) # Shape of SWRC diff --git a/man/swrc_names.Rd b/man/swrc_names.Rd new file mode 100644 index 00000000..9e945a09 --- /dev/null +++ b/man/swrc_names.Rd @@ -0,0 +1,21 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{swrc_names} +\alias{swrc_names} +\title{List Soil Water Retention Curves \code{SWRCs}} +\usage{ +swrc_names() +} +\value{ +An integer vector with names of implemented \code{SWRCs} +} +\description{ +List Soil Water Retention Curves \code{SWRCs} +} +\details{ +Notes: +The integer values may change with new versions of \code{SOILWAT2.} +} +\seealso{ +\code{\link{SWRCs}}, \code{\link[=pdf_names]{pdf_names()}} +} diff --git a/src/SOILWAT2 b/src/SOILWAT2 index b3c6995a..a539dfa8 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit b3c6995af83296640d0e5dfdfc2e15c08c8eaaf2 +Subproject commit a539dfa8d662961f7dd3752d01fee1b85fafa4b5 diff --git a/src/SW_R_init.c b/src/SW_R_init.c index ee949af3..4edec468 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -35,7 +35,7 @@ extern SEXP onGetInputDataFromFiles(SEXP, SEXP); extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); extern SEXP sw_quiet(SEXP); -extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP); extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); @@ -46,7 +46,7 @@ static const R_CallMethodDef CallEntries[] = { {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, - {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 5}, + {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 4}, {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, {NULL, NULL, 0} diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index b793ba09..8efa1cc0 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -232,9 +232,9 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions, SEXP quiet) { if (debug) swprintf(" > 'site'"); #endif - SET_SLOT(SW_DataList, install("soils"), onGet_SW_LYR()); + SET_SLOT(SW_DataList, install("soils"), onGet_SW_SOILS()); #ifdef RSWDEBUG - if (debug) swprintf(" > 'soils'"); + if (debug) swprintf(" > 'soils' + 'swrc parameters'"); #endif SET_SLOT(SW_DataList, install("estab"), onGet_SW_VES()); @@ -369,8 +369,8 @@ SEXP sw_consts(void) { int debug = 0; #endif - const int nret = 7; // length of cret - const int nINT = 10; // length of vINT and cINT + const int nret = 9; // length of cret + const int nINT = 13; // length of vINT and cINT const int nNUM = 1; // length of vNUM and cNUM #ifdef RSWDEBUG @@ -378,13 +378,26 @@ SEXP sw_consts(void) { #endif SEXP - ret, cnames, ret_num, ret_int, ret_int2, ret_str1, ret_str2, ret_str3, - ret_infiles; + ret, + cnames, + ret_num, + ret_int, + ret_int2, + ret_str1, ret_str2, ret_str3, + ret_infiles, + ret_swrc, + ret_pdf; int i; int *pvINT; double *pvNUM; char *cret[] = { - "kNUM", "kINT", "VegTypes", "OutKeys", "OutPeriods", "OutAggs", "InFiles" + "kNUM", + "kINT", + "VegTypes", + "OutKeys", "OutPeriods", "OutAggs", + "InFiles", + "SWRC_types", + "PDF_types" }; // Miscellaneous numerical constants @@ -394,13 +407,17 @@ SEXP sw_consts(void) { // Miscellaneous integer constants int vINT[] = { SW_NFILES, MAX_LAYERS, MAX_TRANSP_REGIONS, MAX_NYEAR, + SWRC_PARAM_NMAX, eSW_NoTime, SW_OUTNPERIODS, SW_OUTNKEYS, SW_NSUMTYPES, NVEGTYPES, - OUT_DIGITS + OUT_DIGITS, + N_SWRCs, N_PDFs }; char *cINT[] = { "SW_NFILES", "MAX_LAYERS", "MAX_TRANSP_REGIONS", "MAX_NYEAR", + "SWRC_PARAM_NMAX", "eSW_NoTime", "SW_OUTNPERIODS", "SW_OUTNKEYS", "SW_NSUMTYPES", "NVEGTYPES", - "OUT_DIGITS" + "OUT_DIGITS", + "N_SWRCs", "N_PDFs" }; // Vegetation types @@ -441,6 +458,7 @@ SEXP sw_consts(void) { "eOutputDaily_soil", "eOutputWeekly_soil", "eOutputMonthly_soil", "eOutputYearly_soil" }; + // create vector of numeric/real/double constants #ifdef RSWDEBUG if (debug) swprintf(" create ret_num ..."); @@ -529,6 +547,32 @@ SEXP sw_consts(void) { } namesgets(ret_infiles, cnames); + // create vector of SWRC types + #ifdef RSWDEBUG + if (debug) swprintf(" create ret_swrc ..."); + #endif + PROTECT(ret_swrc = allocVector(INTSXP, N_SWRCs)); + pvINT = INTEGER(ret_swrc); + PROTECT(cnames = allocVector(STRSXP, N_SWRCs)); + for (i = 0; i < N_SWRCs; i++) { + pvINT[i] = i; + SET_STRING_ELT(cnames, i, mkChar(swrc2str[i])); + } + namesgets(ret_swrc, cnames); + + // create vector of PDF types + #ifdef RSWDEBUG + if (debug) swprintf(" create ret_pdf ..."); + #endif + PROTECT(ret_pdf = allocVector(INTSXP, N_PDFs)); + pvINT = INTEGER(ret_pdf); + PROTECT(cnames = allocVector(STRSXP, N_PDFs)); + for (i = 0; i < N_PDFs; i++) { + pvINT[i] = i; + SET_STRING_ELT(cnames, i, mkChar(pdf2str[i])); + } + namesgets(ret_pdf, cnames); + // combine vectors into a list and return #ifdef RSWDEBUG @@ -546,7 +590,10 @@ SEXP sw_consts(void) { SET_VECTOR_ELT(ret, 4, ret_str2); SET_VECTOR_ELT(ret, 5, ret_str3); SET_VECTOR_ELT(ret, 6, ret_infiles); + SET_VECTOR_ELT(ret, 7, ret_swrc); + SET_VECTOR_ELT(ret, 8, ret_pdf); + // clean up UNPROTECT(nret * 2 + 2); #ifdef RSWDEBUG if (debug) swprintf(" ... done.\n"); @@ -561,17 +608,8 @@ SEXP sw_consts(void) { @brief Estimate parameters of selected soil water retention curve (SWRC) using selected pedotransfer function (PDF) - See SOILWAT2 function `SWRC_PDF_estimate_parameters()`. - - Implemented SWRCs (`swrc_type`): - 1. Campbell 1974 \cite Campbell1974 - - Implemented PDFs (`pdf_type`): - 1. Cosby et al. 1984 \cite Cosby1984 PDF estimates parameters of - Campbell 1974 \cite Campbell1974 SWRC - see `SWRC_PDF_Cosby1984_for_Campbell1974()` + See SOILWAT2's `SWRC_PDF_estimate_parameters()`, `swrc2str[]` and `pdf2str[]`. - @param[in] swrc_type Identification number of selected SWRC @param[in] pdf_type Identification number of selected PDF @param[in] sand Sand content of the matric soil (< 2 mm fraction) [g/g] @param[in] clay Clay content of the matric soil (< 2 mm fraction) [g/g] @@ -581,7 +619,6 @@ SEXP sw_consts(void) { @return Matrix of estimated SWRC parameters */ SEXP rSW2_SWRC_PDF_estimate_parameters( - SEXP swrc_type, SEXP pdf_type, SEXP sand, SEXP clay, @@ -593,14 +630,12 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( if ( nlyrs != length(clay) || nlyrs != length(fcoarse) || - nlyrs != length(swrc_type) || nlyrs != length(pdf_type) ) { error("inputs are not of the same length."); } /* Convert inputs to correct type */ - swrc_type = PROTECT(coerceVector(swrc_type, INTSXP)); pdf_type = PROTECT(coerceVector(pdf_type, INTSXP)); sand = PROTECT(coerceVector(sand, REALSXP)); clay = PROTECT(coerceVector(clay, REALSXP)); @@ -613,7 +648,6 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( /* Create convenience pointers */ unsigned int - *xswrc_type = (unsigned int *) INTEGER(swrc_type), *xpdf_type = (unsigned int *) INTEGER(pdf_type); double @@ -622,7 +656,6 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( *xcoarse = REAL(fcoarse), *xres = REAL(res_swrcp); - /* Loop over soil layers */ /* Ideally, SOILWAT2's `SWRC_PDF_estimate_parameters()` would loop over soil layers internally, @@ -632,7 +665,6 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( for (k1 = 0; k1 < nlyrs; k1++) { SWRC_PDF_estimate_parameters( - xswrc_type[k1], xpdf_type[k1], REAL(swrcpk), xsand[k1], @@ -645,7 +677,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( } } - UNPROTECT(7); + UNPROTECT(6); return res_swrcp; } @@ -657,9 +689,6 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( See SOILWAT2 function `SWRC_check_parameters()`. - Implemented SWRCs: - 1. Campbell 1974 \cite Campbell1974 - @param[in] swrc_type Identification number of selected SWRC @param[in] *swrcp SWRC parameters; matrix (one row per set of parameters) or vector (treated as one set) @@ -738,9 +767,6 @@ SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp) { See SOILWAT2 function `SWRC_SWCtoSWP()` and `SWRC_SWPtoSWC()`. - Implemented SWRCs (`swrc_type`): - 1. Campbell 1974 \cite Campbell1974, see `SWRC_SWCtoSWP_Campbell1974()` - @param[in] x Soil water content in the layer [cm] or soil water potential [-bar]\ @param[in] direction Direction of conversion, 1: SWP->SWC; 2: SWC->SWP diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index b2b1eab0..a08cb547 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -45,7 +45,6 @@ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet); SEXP sw_consts(void); SEXP rSW2_SWRC_PDF_estimate_parameters( - SEXP swrc_type, SEXP pdf_type, SEXP sand, SEXP clay, diff --git a/src/rSW_Control.c b/src/rSW_Control.c index e7cd57f4..91a964c7 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -63,8 +63,12 @@ void rSW_CTL_obtain_inputs(Bool from_files) { } else { //Use R data to set the data #ifdef RSWDEBUG - if (debug) swprintf("'rSW_CTL_obtain_inputs': Copy data from rSOILWAT2 S4 " - "'InputData' object to SOILWAT2 variables:"); + if (debug) { + swprintf( + "'rSW_CTL_obtain_inputs': Copy data from rSOILWAT2 S4 " + "'InputData' object to SOILWAT2 variables:" + ); + } #endif onSet_SW_F(GET_SLOT(InputData, install("files"))); @@ -106,9 +110,9 @@ void rSW_CTL_obtain_inputs(Bool from_files) { if (debug) swprintf(" > 'site'"); #endif - onSet_SW_LYR(GET_SLOT(InputData, install("soils"))); + onSet_SW_SOILS(GET_SLOT(InputData, install("soils"))); #ifdef RSWDEBUG - if (debug) swprintf(" > 'soils'"); + if (debug) swprintf(" > 'soils' + 'swrc parameters'"); #endif onSet_SW_VES(GET_SLOT(InputData, install("estab"))); diff --git a/src/rSW_Site.c b/src/rSW_Site.c index d77365d7..99faf262 100644 --- a/src/rSW_Site.c +++ b/src/rSW_Site.c @@ -49,7 +49,8 @@ static char *cSW_SIT[] = { "SWClimits", "ModelFlags", "ModelCoefficients", "SnowSimulationParameters", "DrainageCoefficient", "EvaporationCoefficients", "TranspirationCoefficients", "IntrinsicSiteParams", "SoilTemperatureFlag", - "SoilTemperatureConstants", "TranspirationRegions" + "SoilTemperatureConstants", "TranspirationRegions", + "swrc_flags" }; static char *cLayers[] = { @@ -58,21 +59,23 @@ static char *cLayers[] = { "transpForb_frac", "sand_frac", "clay_frac", "impermeability_frac", "soilTemp_c" }; +static char *cSWRCp[] = { + "Param1", "Param2", "Param3", "Param4", "Param5", "Param6" +}; + /* =================================================== */ -/* Global Function Definitions */ +/* Local Function Definitions */ /* --------------------------------------------------- */ -SEXP onGet_SW_LYR() { +/* Copy soil properties into "Layers" matrix */ +static SEXP onGet_SW_LYR() { int i, dmax = 0; SW_SITE *v = &SW_Site; - SEXP swSoils, SW_SOILS; - SEXP Layers,Layers_names,Layers_names_y; + SEXP Layers, Layers_names, Layers_names_y; RealD *p_Layers; - PROTECT(swSoils = MAKE_CLASS("swSoils")); - PROTECT(SW_SOILS = NEW_OBJECT(swSoils)); - PROTECT(Layers = allocMatrix(REALSXP,v->n_layers,12)); + PROTECT(Layers = allocMatrix(REALSXP, v->n_layers, 12)); p_Layers = REAL(Layers); for (i = 0; i < (v->n_layers); i++) { p_Layers[i + (v->n_layers) * 0] = dmax = v->lyr[i]->width + dmax; @@ -88,34 +91,33 @@ SEXP onGet_SW_LYR() { p_Layers[i + (v->n_layers) * 10] = v->lyr[i]->impermeability; p_Layers[i + (v->n_layers) * 11] = v->lyr[i]->sTemp; } - PROTECT(Layers_names = allocVector(VECSXP,2)); - PROTECT(Layers_names_y = allocVector(STRSXP,12)); - for(i=0;i<12;i++) - SET_STRING_ELT(Layers_names_y,i,mkChar(cLayers[i])); - SET_VECTOR_ELT(Layers_names,1,Layers_names_y); - setAttrib(Layers, R_DimNamesSymbol, Layers_names); - SET_SLOT(SW_SOILS,install("Layers"),Layers); + PROTECT(Layers_names = allocVector(VECSXP, 2)); + PROTECT(Layers_names_y = allocVector(STRSXP, 12)); + for (i = 0; i < 12; i++) { + SET_STRING_ELT(Layers_names_y, i, mkChar(cLayers[i])); + } + SET_VECTOR_ELT(Layers_names, 1, Layers_names_y); + setAttrib(Layers, R_DimNamesSymbol, Layers_names); - UNPROTECT(5); - return SW_SOILS; + UNPROTECT(3); + return Layers; } -/* Function `onSet_SW_LYR()` corresponds to SOILWAT2's `_read_layers()` */ -void onSet_SW_LYR(SEXP SW_SOILS) { +/* Function `onSet_SW_LYR()` corresponds to SOILWAT2's `SW_LYR_read()`, + previously named `_read_layers()` +*/ +static void onSet_SW_LYR(SEXP SW_LYR) { SW_SITE *v = &SW_Site; LyrIndex lyrno; int i, j, k, columns; RealF dmin = 0.0, dmax, evco, trco_veg[NVEGTYPES], psand, pclay, matricd, imperm, soiltemp, f_gravel; RealD *p_Layers; - SEXP SW_LYR; /* note that Files.read() must be called prior to this. */ - PROTECT(SW_LYR = GET_SLOT(SW_SOILS,install("Layers"))); MyFileName = SW_F_name(eLayers); - j = nrows(SW_LYR); p_Layers = REAL(SW_LYR); columns = ncols(SW_LYR); @@ -169,12 +171,111 @@ void onSet_SW_LYR(SEXP SW_SOILS) { MyFileName, lyrno + 1, MAX_LAYERS ); } + } +} + +/* Copy SWRC parameters into "SWRCp" matrix */ +static SEXP onGet_SW_SWRCp() { + int i, k; + SW_SITE *v = &SW_Site; + SEXP SWRCp, SWRCp_names, SWRCp_names_y; + RealD *p_SWRCp; + + PROTECT(SWRCp = allocMatrix(REALSXP, v->n_layers, SWRC_PARAM_NMAX)); + p_SWRCp = REAL(SWRCp); + for (i = 0; i < (v->n_layers); i++) { + for (k = 0; k < SWRC_PARAM_NMAX; k++) { + p_SWRCp[i + (v->n_layers) * k] = v->lyr[i]->swrcp[k]; + } } - UNPROTECT(1); + PROTECT(SWRCp_names = allocVector(VECSXP, 2)); + PROTECT(SWRCp_names_y = allocVector(STRSXP, SWRC_PARAM_NMAX)); + for (i = 0; i < SWRC_PARAM_NMAX; i++) { + SET_STRING_ELT(SWRCp_names_y, i, mkChar(cSWRCp[i])); + } + SET_VECTOR_ELT(SWRCp_names, 1, SWRCp_names_y); + setAttrib(SWRCp, R_DimNamesSymbol, SWRCp_names); + + UNPROTECT(3); + return SWRCp; } +/* Function `onSet_SW_SWRCp()` corresponds to SOILWAT2's `SW_SWRC_read()` */ +static void onSet_SW_SWRCp(SEXP SW_SWRCp) { + + SW_SITE *v = &SW_Site; + int i, k; + RealD *p_SWRCp; + + /* note that Files.read() must be called prior to this. */ + MyFileName = SW_F_name(eSWRCp); + + /* Check that we have n = `SWRC_PARAM_NMAX` values per layer */ + if (ncols(SW_SWRCp) != SWRC_PARAM_NMAX) { + LogError( + logfp, + LOGFATAL, + "%s : Bad number of SWRC parameters %d -- must be %d.\n", + MyFileName, ncols(SW_SWRCp), SWRC_PARAM_NMAX + ); + } + + /* Check that we have `SW_Site.n_layers` */ + if (nrows(SW_SWRCp) != SW_Site.n_layers) { + LogError( + logfp, + LOGFATAL, + "%s : Number of layers with SWRC parameters (%d) " + "must match number of soil layers (%d)\n", + MyFileName, nrows(SW_SWRCp), SW_Site.n_layers + ); + } + + /* Copy values */ + p_SWRCp = REAL(SW_SWRCp); + + for (i = 0; i < (v->n_layers); i++) { + for (k = 0; k < SWRC_PARAM_NMAX; k++) { + v->lyr[i]->swrcp[k] = p_SWRCp[i + (v->n_layers) * k]; + } + } +} + + +/* =================================================== */ +/* Global Function Definitions */ +/* --------------------------------------------------- */ + +/* Copy SOILWAT2 soil properties and SWRC parameters into S4 class "swSoils" */ +SEXP onGet_SW_SOILS() { + SEXP swSoils, SW_SOILS; + + PROTECT(swSoils = MAKE_CLASS("swSoils")); + PROTECT(SW_SOILS = NEW_OBJECT(swSoils)); + + SET_SLOT(SW_SOILS, install("Layers"), onGet_SW_LYR()); + SET_SLOT(SW_SOILS, install("SWRCp"), onGet_SW_SWRCp()); + + UNPROTECT(2); + return SW_SOILS; +} + +/* Copy S4 class "swSoils" into SOILWAT2 soil properties and SWRC parameters */ +void onSet_SW_SOILS(SEXP SW_SOILS) { + SEXP SW_LYR, SW_SWRCp; + + PROTECT(SW_LYR = GET_SLOT(SW_SOILS, install("Layers"))); + onSet_SW_LYR(SW_LYR); + + PROTECT(SW_SWRCp = GET_SLOT(SW_SOILS, install("SWRCp"))); + onSet_SW_SWRCp(SW_SWRCp); + + UNPROTECT(2); +} + + SEXP onGet_SW_SIT() { int i; SW_SITE *v = &SW_Site; @@ -204,8 +305,17 @@ SEXP onGet_SW_SIT() { char *cIntrinsicSiteParams[] = { "Longitude", "Latitude", "Altitude", "Slope", "Aspect" }; SEXP SoilTemperatureConstants_use, SoilTemperatureConstants, SoilTemperatureConstants_names; - char *cSoilTempValues[] = { "BiomassLimiter_g/m^2", "T1constant_a", "T1constant_b", "T1constant_c", "cs_constant_SoilThermCondct", "cs_constant", "sh_constant_SpecificHeatCapacity", - "ConstMeanAirTemp", "deltaX_Param", "MaxDepth" }; + char *cSoilTempValues[] = { + "BiomassLimiter_g/m^2", + "T1constant_a", "T1constant_b", "T1constant_c", + "cs_constant_SoilThermCondct", "cs_constant", + "sh_constant_SpecificHeatCapacity", + "ConstMeanAirTemp", + "deltaX_Param", "MaxDepth" + }; + + SEXP swrc_flags, swrc_names; + char *cSWRCflags[] = {"swrc_name", "pdf_name"}; SEXP TranspirationRegions, TranspirationRegions_names, TranspirationRegions_names_y; char *cTranspirationRegions[] = { "ndx", "layer" }; @@ -323,6 +433,19 @@ SEXP onGet_SW_SIT() { SET_VECTOR_ELT(TranspirationRegions_names, 1, TranspirationRegions_names_y); setAttrib(TranspirationRegions, R_DimNamesSymbol, TranspirationRegions_names); + + PROTECT(swrc_flags = NEW_CHARACTER(2)); + SET_STRING_ELT(swrc_flags, 0, mkChar(v->site_swrc_name)); + SET_STRING_ELT(swrc_flags, 1, mkChar(v->site_pdf_name)); + + PROTECT(swrc_names = NEW_CHARACTER(2)); + for (i = 0; i < 2; i++) { + SET_STRING_ELT(swrc_names, i, mkChar(cSWRCflags[i])); + } + setAttrib(swrc_flags, R_NamesSymbol, swrc_names); + + + // Fill all slots of `SW_SIT` SET_SLOT(SW_SIT, install(cSW_SIT[0]), SWClimits); SET_SLOT(SW_SIT, install(cSW_SIT[1]), ModelFlags); SET_SLOT(SW_SIT, install(cSW_SIT[2]), ModelCoefficients); @@ -334,8 +457,9 @@ SEXP onGet_SW_SIT() { SET_SLOT(SW_SIT, install(cSW_SIT[8]), SoilTemperatureConstants_use); SET_SLOT(SW_SIT, install(cSW_SIT[9]), SoilTemperatureConstants); SET_SLOT(SW_SIT, install(cSW_SIT[10]), TranspirationRegions); + SET_SLOT(SW_SIT, install(cSW_SIT[11]), swrc_flags); - UNPROTECT(24); + UNPROTECT(26); return SW_SIT; } @@ -353,6 +477,7 @@ void onSet_SW_SIT(SEXP SW_SIT) { SEXP IntrinsicSiteParams; SEXP SoilTemperatureConstants_use; SEXP SoilTemperatureConstants; + SEXP swrc_flags; SEXP TranspirationRegions; int *p_transp; // ideally `LyrIndex` so that same type as `_TranspRgnBounds`, but R API INTEGER() is signed @@ -459,6 +584,17 @@ void onSet_SW_SIT(SEXP SW_SIT) { if (debug) swprintf(" > 'soiltemp-constants'"); #endif + + PROTECT(swrc_flags = GET_SLOT(SW_SIT, install("swrc_flags"))); + strcpy(v->site_swrc_name, CHAR(STRING_ELT(swrc_flags, 0))); + v->site_swrc_type = encode_str2swrc(v->site_swrc_name); + strcpy(v->site_pdf_name, CHAR(STRING_ELT(swrc_flags, 1))); + v->site_pdf_type = encode_str2pdf(v->site_pdf_name); + #ifdef RSWDEBUG + if (debug) swprintf(" > 'swrc/pdf-type'"); + #endif + + PROTECT(TranspirationRegions = GET_SLOT(SW_SIT, install("TranspirationRegions"))); p_transp = INTEGER(TranspirationRegions); v->n_transp_rgn = nrows(TranspirationRegions); @@ -488,5 +624,5 @@ void onSet_SW_SIT(SEXP SW_SIT) { if (debug) swprintf(" ... done. \n"); #endif - UNPROTECT(11); + UNPROTECT(12); } diff --git a/src/rSW_Site.h b/src/rSW_Site.h index 51daa77b..da938223 100644 --- a/src/rSW_Site.h +++ b/src/rSW_Site.h @@ -5,5 +5,5 @@ /* --------------------------------------------------- */ SEXP onGet_SW_SIT(); void onSet_SW_SIT(SEXP SW_SIT); -SEXP onGet_SW_LYR(); -void onSet_SW_LYR(SEXP SW_SOILS); +SEXP onGet_SW_SOILS(); +void onSet_SW_SOILS(SEXP SW_SOILS); diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 1b01394a..a724b30a 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -206,7 +206,7 @@ test_that("Use SWRC to convert between VWC/SWP", { swrc_vwc_to_swp( vwcBulk = matrix( vwc_fix[, ifix], - nrow = nrow(vwc_fix), + nrow = nrow(vwc_fix) - 1, ncol = nrow(texture), byrow = TRUE ), @@ -215,7 +215,7 @@ test_that("Use SWRC to convert between VWC/SWP", { ), matrix( swp_fix[ifix], - nrow = nrow(vwc_fix), + nrow = nrow(vwc_fix) - 1, ncol = nrow(texture) ) ) From 16fffe97b599d45fc075706c6d4892a7a3cec30a Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 14:20:56 -0500 Subject: [PATCH 016/238] New `rSW2_check_SWRC_vs_PDF()`: check SWRC/PDF compatibility - SOILWAT2 implemented `rSW2_check_SWRC_vs_PDF()` with commit 5a2fcffa6377efa550ca014ca9b9a09a07fc39a2 - `pdf_estimate()` now calls `rSW2_check_SWRC_vs_PDF()` to make sure that the selected PDF is compatible with the selected SWRC --- R/sw_Pedotransfer_Functions.R | 9 +++++++++ src/SW_R_init.c | 2 ++ src/SW_R_lib.c | 36 +++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 10b56584..edc30199 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -377,6 +377,15 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { swrc_name <- std_swrc(swrc_name)[1] pdf_name <- std_pdf(pdf_name)[1] + if (!.Call(C_rSW2_check_SWRC_vs_PDF, swrc_name, pdf_name)) { + stop( + "Selected PDF ", + shQuote(pdf_name), + " is incompatible with selected SWRC ", + shQuote(swrc_name) + ) + } + .Call( diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 4edec468..20372854 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -36,6 +36,7 @@ extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); extern SEXP sw_quiet(SEXP); extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP); +extern SEXP rSW2_check_SWRC_vs_PDF(SEXP, SEXP); extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); @@ -47,6 +48,7 @@ static const R_CallMethodDef CallEntries[] = { {"sw_consts", (DL_FUNC) &sw_consts, 0}, {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 4}, + {"rSW2_check_SWRC_vs_PDF", (DL_FUNC) &rSW2_check_SWRC_vs_PDF, 2}, {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, {NULL, NULL, 0} diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 8efa1cc0..6092f9c2 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -683,6 +683,42 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( } +/** + @brief Check whether selected PDF and SWRC are compatible + + @param[in] swrc_name Name selected SWRC + @param[in] pdf_name Name selected PDF + + @return A logical value indicating if SWRC and PDF are compatible. +*/ +SEXP rSW2_check_SWRC_vs_PDF(SEXP swrc_name, SEXP pdf_name) { + SEXP res; + PROTECT(res = NEW_LOGICAL(1)); + LOGICAL(res)[0] = swFALSE; + + PROTECT(swrc_name = AS_CHARACTER(swrc_name)); + PROTECT(pdf_name = AS_CHARACTER(pdf_name)); + + if ( + !isNull(swrc_name) && + !isNull(pdf_name) && + strlen(CHAR(STRING_ELT(swrc_name, 0))) < 64 && + strlen(CHAR(STRING_ELT(pdf_name, 0))) < 64 + ) { + char + sw_swrc_name[64], + sw_pdf_name[64]; + + strcpy(sw_swrc_name, CHAR(STRING_ELT(swrc_name, 0))); + strcpy(sw_pdf_name, CHAR(STRING_ELT(pdf_name, 0))); + + LOGICAL(res)[0] = check_SWRC_vs_PDF(sw_swrc_name, sw_pdf_name); + } + + UNPROTECT(3); + return res; +} + /** @brief Check Soil Water Retention Curve (SWRC) parameters From 0b7e141702621a9a8714aaab7b53d6e7cc38481f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 14:22:05 -0500 Subject: [PATCH 017/238] `pdf_estimate()` now checks validity of estimated SWRC parameters --- R/sw_Pedotransfer_Functions.R | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index edc30199..404987f4 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -395,6 +395,15 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { clay = clay, fcoarse = fcoarse ) + + + #--- Check validity of estimated SWRCp + if (any(!check_swrcp(swrc_name, swrcp))) { + warning("Some estimated parameters failed checks.") + } + + swrcp +} ) } From 657d3fa6e68bee1a9213d21e2d35c2e161228b6f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 15:07:21 -0500 Subject: [PATCH 018/238] Functionality to estimate SWRC parameters with R-based PDFs - some PDFs will not be implemented in C in SOILWAT2 but may be provided in R in rSOILWAT2 -> automatically handle SWRC parameter estimation whether the function exists in R or C, i.e., the same interface for a user (or downstream code) - new `pdfs_implemented_in_rSW2()` returns a list of PDF names that are implemented in R (the names must also exist/be updated in SOILWAT2's `pdf2str[]` - new `rSW2_SWRC_PDF_estimate_parameters()` that corresponds to SOILWAT2's `SWRC_PDF_estimate_parameters()` which calls requested PDF based on argument `pdf_type` (respectively `pdf_name` here) -> `pdf_estimate()` now automatically handles both R- and C-implemented PDFs, i.e., the user does not need to know how the selected PDF is implemented --- R/sw_Pedotransfer_Functions.R | 63 ++++++++++++++++++++++++ man/pdfs_implemented_in_rSW2.Rd | 11 +++++ man/rSW2_SWRC_PDF_estimate_parameters.Rd | 63 ++++++++++++++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 man/pdfs_implemented_in_rSW2.Rd create mode 100644 man/rSW2_SWRC_PDF_estimate_parameters.Rd diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 404987f4..4e6aba4f 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -387,7 +387,16 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { } + #--- Determine whether we use a C- or R-implemented PDF + swrcp <- if (pdf_name %in% pdfs_implemented_in_rSW2()) { + rSW2_SWRC_PDF_estimate_parameters( + pdf_name = pdf_name, + sand = sand, + clay = clay, + fcoarse = fcoarse + ) + } else { .Call( C_rSW2_SWRC_PDF_estimate_parameters, pdf_type = rep_len(encode_name2pdf(pdf_name), length(sand)), @@ -395,6 +404,7 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { clay = clay, fcoarse = fcoarse ) + } #--- Check validity of estimated SWRCp @@ -404,6 +414,59 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { swrcp } + + +#' List PDFs implemented only in `rSOILWAT2` instead of `SOILWAT2` +#' @md +pdfs_implemented_in_rSW2 <- function() { +} + + +#' Estimate parameters of selected soil water retention curve (`SWRC`) +#' using selected pedotransfer function (`PDF`) that are implemented in `R` +#' +#' @inheritParams SWRCs +#' @param fail A logical value. If `TRUE` (default) and +#' requested `PDF` is not implemented in `R`, then throw an error; +#' otherwise, return silently. +#' +#' @return `swrcp`, i.e,. +#' a numeric matrix where rows represent soil (layers) and +#' columns represent a fixed number of `SWRC` parameters. +#' The interpretation is dependent on the selected `SWRC`. +#' However, return value is `NULL` +#' only if `fail` is `FALSE` and requested `PDF` is not implemented in `R`. +#' +#' @inherit SWRCs references +#' +#' @section Details: +#' [pdf_estimate()] is the function that should be directly called; this here +#' is an internal helper function. +#' +#' @section Notes: +#' See `SWRC_PDF_estimate_parameters()` in `SOILWAT2` for `PDFs` +#' implemented in C. +#' +#' @md +rSW2_SWRC_PDF_estimate_parameters <- function( + pdf_name, + sand, + clay, + fcoarse, + fail = TRUE +) { + pdf_name <- std_pdf(pdf_name)[1] + has_pdf <- pdf_name %in% pdfs_implemented_in_rSW2() + + if (has_pdf) { + + } else { + if (isTRUE(fail)) { + stop("PDF ", shQuote(pdf_name), " is not implemented in rSOILWAT2.") + } + } +} + ) } diff --git a/man/pdfs_implemented_in_rSW2.Rd b/man/pdfs_implemented_in_rSW2.Rd new file mode 100644 index 00000000..e5077581 --- /dev/null +++ b/man/pdfs_implemented_in_rSW2.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdfs_implemented_in_rSW2} +\alias{pdfs_implemented_in_rSW2} +\title{List PDFs implemented only in \code{rSOILWAT2} instead of \code{SOILWAT2}} +\usage{ +pdfs_implemented_in_rSW2() +} +\description{ +List PDFs implemented only in \code{rSOILWAT2} instead of \code{SOILWAT2} +} diff --git a/man/rSW2_SWRC_PDF_estimate_parameters.Rd b/man/rSW2_SWRC_PDF_estimate_parameters.Rd new file mode 100644 index 00000000..ffcf733f --- /dev/null +++ b/man/rSW2_SWRC_PDF_estimate_parameters.Rd @@ -0,0 +1,63 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{rSW2_SWRC_PDF_estimate_parameters} +\alias{rSW2_SWRC_PDF_estimate_parameters} +\title{Estimate parameters of selected soil water retention curve (\code{SWRC}) +using selected pedotransfer function (\code{PDF}) that are implemented in \code{R}} +\usage{ +rSW2_SWRC_PDF_estimate_parameters(pdf_name, sand, clay, fcoarse, fail = TRUE) +} +\arguments{ +\item{pdf_name}{An character string or vector. +The selected \code{PDF} name +(one of \code{\link[=pdf_names]{pdf_names()}}, with default \code{"Cosby1984AndOthers"}).} + +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{fcoarse}{A numeric value or vector. +Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) +relative to the whole soil of each soil layer. +\code{fcoarse} is required, for instance, to translate between +values relative to the matric soil component (< 2 mm fraction) and +relative to the whole soil (matric soil plus coarse fragments).} + +\item{fail}{A logical value. If \code{TRUE} (default) and +requested \code{PDF} is not implemented in \code{R}, then throw an error; +otherwise, return silently.} +} +\value{ +\code{swrcp}, i.e,. +a numeric matrix where rows represent soil (layers) and +columns represent a fixed number of \code{SWRC} parameters. +The interpretation is dependent on the selected \code{SWRC}. +However, return value is \code{NULL} +only if \code{fail} is \code{FALSE} and requested \code{PDF} is not implemented in \code{R}. +} +\description{ +Estimate parameters of selected soil water retention curve (\code{SWRC}) +using selected pedotransfer function (\code{PDF}) that are implemented in \code{R} +} +\section{Details}{ + +\code{\link[=pdf_estimate]{pdf_estimate()}} is the function that should be directly called; this here +is an internal helper function. +} + +\section{Notes}{ + +See \code{SWRC_PDF_estimate_parameters()} in \code{SOILWAT2} for \code{PDFs} +implemented in C. +} + +\references{ +Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. +A statistical exploration of the relationships of soil moisture +characteristics to the physical properties of soils. +Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} +} From 0b8b410f85e43ee750180d8377a38049bba9516f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 15:10:58 -0500 Subject: [PATCH 019/238] Clean up `SW_R_init`: remove commented out and defunct ".C calls" entries - clean up from Nov 1, 2021 commit 3495f519956e5213b8f6fdb44a252a2493643b3e - we now use the `.Call()` and not the `.C()` interface to access SOILWAT2 functionality for SWRCs/PDFs --- src/SW_R_init.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 20372854..870c35ce 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -4,30 +4,6 @@ #include -/* .C calls */ -//extern void SWRC_PDF_estimate_parameters( -// int swrc_type, int pdf_type, -// double *swrcp, -// double sand, double clay, double gravel -//); -// -//static R_NativePrimitiveArgType SWRC_PDF_estimate_parameters_t[6] = { -// INTSXP, INTSXP, -// REALSXP, -// REALSXP, REALSXP, REALSXP -//}; -// -//static const R_CMethodDef CEntries[] = { -// { -// "SWRC_PDF_estimate_parameters", -// (DL_FUNC) &SWRC_PDF_estimate_parameters, -// 6, -// SWRC_PDF_estimate_parameters_t -// }, -// {NULL, NULL, 0, NULL} -//}; -// - /* .Call calls */ extern SEXP start(SEXP, SEXP, SEXP, SEXP); extern SEXP tempError(); From f62bc59fb0efabb2113bb3fa3bc213bfb75a2874 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 15:11:56 -0500 Subject: [PATCH 020/238] Update vignette "demo": include usage of new SWRC/PDF functionality --- vignettes/rSOILWAT2_demo.Rmd | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 21dca110..10752574 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -187,7 +187,7 @@ editor_options: ## Create base rSOILWAT2 input object ```{r, input_object} # Preferred option: - # All relevant site-specific paramaters and variables are set to NA + # All relevant site-specific parameters and variables are set to NA sw_in <- new("swInputData") # Quick option: @@ -570,6 +570,34 @@ You may organize weather data in a variety of ways: ``` +## Estimate parameters of Soil Water Retention Curve before simulation +Note: This step is usually not necessarily; +instead, the default is to use the selected pedotransfer function to have the +parameters estimated automatically. +If we pass parameter values, then we need to set the `PDF` name to `"NoPDF"`, +see `pdf_names()`. +```{r, soils_swrc} + tmp <- rSOILWAT2::swSite_SWRCflags(sw_in) + swrcp <- rSOILWAT2::pdf_estimate( + sand = soil_new[, "sand_frac"], + clay = soil_new[, "clay_frac"], + fcoarse = soil_new[, "gravel_content"], + swrc_name = tmp["swrc_name"], + pdf_name = tmp["pdf_name"] + ) + + rSOILWAT2::swSoils_SWRCp(sw_in) <- swrcp + + if (FALSE) { + # Alternatively, set soil properties and SWRC parameters at once + rSOILWAT2::set_swSoils(sw_in) <- list(Layers = soil_new, SWRCp = swrcp) + } + + # Update `pdf_name` to indicate that parameter values are already estimated + rSOILWAT2::swSite_SWRCflags(sw_in)["pdf_name"] <- "NoPDF" +``` + + ## Transpiration regions ```{r, transp_regions} # Prepare transpiration regions based on soil layers From d778c16abfde710b76cd1e2649fd46ed9e254312 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 28 Feb 2022 15:15:21 -0500 Subject: [PATCH 021/238] `sw_exec()` now handles estimation of SWRC parameters if needed - `sw_exec()` now utilizes function `rSW2_SWRC_PDF_estimate_parameters()` that was introduced with commit 657d3fa6e68bee1a9213d21e2d35c2e161228b6f and updates selected PDF for SOILWAT2 purposes, i.e., if parameters are estimated by rSOILWAT2, then SOILWAT2 needs to treat them as if "NoPDF" --- R/Rsw.R | 45 +++++++++++++++++++++++++++++++++++++++++---- man/sw_exec.Rd | 9 ++++++--- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/R/Rsw.R b/R/Rsw.R index 6ea9cb87..0542bdef 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -154,8 +154,11 @@ sw_verbosity <- function(verbose = TRUE) { #' ## to set up a SQLite database for the weather data) #' sw_weath3 <- getWeatherData_folders( #' LookupWeatherFolder = file.path(path_demo, "Input"), -#' weatherDirName = "data_weather", filebasename = "weath", -#' startYear = 1979, endYear = 2010) +#' weatherDirName = "data_weather", +#' filebasename = "weath", +#' startYear = 1979, +#' endYear = 2010 +#' ) #' #' ## List of the slots of the input objects of class 'swWeatherData' #' utils::str(sw_weath3, max.level = 1) @@ -214,8 +217,14 @@ sw_verbosity <- function(verbose = TRUE) { #' ## See help(package = "rSOILWAT2") for a full list of functions #' #' @export -sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", - files.in = "files.in", echo = FALSE, quiet = FALSE) { +sw_exec <- function( + inputData = NULL, + weatherList = NULL, + dir = ".", + files.in = "files.in", + echo = FALSE, + quiet = FALSE +) { dir_prev <- getwd() on.exit(setwd(dir_prev), add = TRUE) @@ -239,6 +248,34 @@ sw_exec <- function(inputData = NULL, weatherList = NULL, dir = "", ) } + + # Estimate SWRC parameters if requested PDF only implemented in R + pdf_name <- std_pdf(swSite_SWRCflags(inputData)["pdf_name"]) + if (pdf_name %in% pdfs_implemented_in_rSW2()) { + soils <- swSoils_Layers(inputData) + + swrcp <- rSW2_SWRC_PDF_estimate_parameters( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"], + pdf_name = pdf_name, + fail = FALSE + ) + + if (!is.null(swrcp)) { + rSOILWAT2::swSoils_SWRCp(inputData) <- swrcp + swSite_SWRCflags(inputData)["pdf_name"] <- "NoPDF" + } else { + tmp <- rSOILWAT2::swSoils_SWRCp(inputData) + rSOILWAT2::swSoils_SWRCp(inputData) <- array( + data = NA_real_, + dim = dim(tmp) + ) + } + } + + + # Run SOILWAT2 res <- .Call(C_start, input, inputData, weatherList, quiet) slot(res, "version") <- rSW2_version() slot(res, "timestamp") <- rSW2_timestamp() diff --git a/man/sw_exec.Rd b/man/sw_exec.Rd index aeba80bb..7385ae0d 100644 --- a/man/sw_exec.Rd +++ b/man/sw_exec.Rd @@ -7,7 +7,7 @@ sw_exec( inputData = NULL, weatherList = NULL, - dir = "", + dir = ".", files.in = "files.in", echo = FALSE, quiet = FALSE @@ -105,8 +105,11 @@ sw_in3 <- sw_inputDataFromFiles(dir = path_demo, files.in = "files.in") ## to set up a SQLite database for the weather data) sw_weath3 <- getWeatherData_folders( LookupWeatherFolder = file.path(path_demo, "Input"), - weatherDirName = "data_weather", filebasename = "weath", - startYear = 1979, endYear = 2010) + weatherDirName = "data_weather", + filebasename = "weath", + startYear = 1979, + endYear = 2010 +) ## List of the slots of the input objects of class 'swWeatherData' utils::str(sw_weath3, max.level = 1) From faa1ef9a816072412db8393a1cabccf174be81c5 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 1 Mar 2022 12:54:15 -0500 Subject: [PATCH 022/238] Updated SOILWAT2: new SWRC/PDF implemented - make SWRC "vanGenuchten1980" available - `pdf_Rosetta3_for_vanGenuchten1980()` implements the PDF "Rosetta3" as R function --> updated `pdfs_implemented_in_rSW2()` and `rSW2_SWRC_PDF_estimate_parameters()` * updated examples for `sw_exec()`, `swrc`, `swrc_conversion()` Interaction with SOILWAT2: * update `rSW2_check_SWRC_vs_PDF()` to accommodate new argument "isSW2" of `check_SWRC_vs_PDF()` --- R/Rsw.R | 45 +++++++++ R/sw_Pedotransfer_Functions.R | 103 ++++++++++++++++++++- inst/WORDLIST | 5 + inst/extdata/example1/Input/swrc_params.in | 8 +- man/pdf_Rosetta3_for_vanGenuchten1980.Rd | 56 +++++++++++ man/sw_exec.Rd | 45 +++++++++ man/swrc_conversion.Rd | 46 ++++++++- src/SOILWAT2 | 2 +- src/SW_R_lib.c | 2 +- 9 files changed, 307 insertions(+), 5 deletions(-) create mode 100644 man/pdf_Rosetta3_for_vanGenuchten1980.Rd diff --git a/R/Rsw.R b/R/Rsw.R index 0542bdef..7d6dbb60 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -214,6 +214,51 @@ sw_verbosity <- function(verbose = TRUE) { #' print(round(as.numeric(object.size(sw_out6) / object.size(sw_out5)), 2)) #' #' +#' ## ------ Simulation with different SWRC ------------ +#' sw_in7 <- sw_in3 +#' swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") +#' +#' sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) +#' +#' if (requireNamespace("graphics")) { +#' par_prev <- graphics::par(mfrow = c(2, 1)) +#' +#' graphics::plot( +#' -0.1 * slot(slot(sw_out7, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], +#' type = "l", +#' ylim = c(-10, 0), +#' xlab = "Time [Day of year]", +#' ylab = "Soil water potential [MPa]" +#' ) +#' graphics::lines( +#' -0.1 * slot(slot(sw_out, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], +#' col = "orange" +#' ) +#' +#' graphics::plot( +#' 10 * slot(slot(sw_out7, "SWCBULK"), "Day")[1:365, "Lyr_2"], +#' type = "l", +#' ylim = c(0, 20), +#' xlab = "Time [Day of year]", +#' ylab = "Soil water content [mm]" +#' ) +#' graphics::lines( +#' 10 * slot(slot(sw_out, "SWCBULK"), "Day")[1:365, "Lyr_2"], +#' col = "orange" +#' ) +#' graphics::legend( +#' "bottomleft", +#' legend = c( +#' paste(swSite_SWRCflags(sw_in7), collapse = "/"), +#' paste(swSite_SWRCflags(sw_in), collapse = "/") +#' ), +#' col = c("black", "orange"), +#' lwd = 2 +#' ) +#' +#' graphics::par(par_prev) +#' } +#' #' ## See help(package = "rSOILWAT2") for a full list of functions #' #' @export diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 4e6aba4f..1fee4573 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -367,6 +367,12 @@ encode_name2pdf <- function(pdf_name) { #' swrc_name = "Campbell1974", #' pdf_name = "Cosby1984" #' ) +#' pdf_estimate( +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' fcoarse = soils[, "gravel_content"], +#' swrc_name = "vanGenuchten1980", +#' pdf_name = "Rosetta3" #' ) #' #' @md @@ -419,6 +425,7 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { #' List PDFs implemented only in `rSOILWAT2` instead of `SOILWAT2` #' @md pdfs_implemented_in_rSW2 <- function() { + "Rosetta3" } @@ -458,7 +465,8 @@ rSW2_SWRC_PDF_estimate_parameters <- function( pdf_name <- std_pdf(pdf_name)[1] has_pdf <- pdf_name %in% pdfs_implemented_in_rSW2() - if (has_pdf) { + if (has_pdf && pdf_name %in% "Rosetta3") { + pdf_Rosetta3_for_vanGenuchten1980(sand = sand, clay = clay) } else { if (isTRUE(fail)) { @@ -467,7 +475,60 @@ rSW2_SWRC_PDF_estimate_parameters <- function( } } + +#' Estimate van Genuchten 1980 `SWRC` parameters using `Rosetta` v3 `PDF` by +#' Zhang et al. 2017 +#' +#' @inheritParams SWRCs +#' +#' @return `swrcp`, i.e,. +#' a numeric matrix where rows represent soil (layers) and +#' columns represent a fixed number of `SWRC` parameters: \itemize{ +#' \item `swrcp[0]` (`theta_r`): residual volumetric water content +#' of the matric component (units of `[cm / cm]`) +#' \item `swrcp[1]` (`theta_s`): saturated volumetric water content +#' of the matric component (units of `[cm / cm]`) +#' \item `swrcp[2]` (`alpha`): related to the inverse of +#' air entry suction (units of `[cm-1]`) +#' \item `swrcp[3]` (`n`): measure of the pore-size distribution `[-]` +#' } +#' +#' @references +#' Mualem, Y. 1976. A new model for predicting the hydraulic conductivity of +#' unsaturated porous media. +#' Water Resources Research, 12:513-522, \doi{10.1029/WR012i003p00513} +#' @references +#' van Genuchten, M. T. 1980. A Closed-form Equation for Predicting the +#' Hydraulic Conductivity of Unsaturated Soils. +#' Soil Science Society of America Journal, 44:892-898, +#' \doi{10.2136/sssaj1980.03615995004400050002x} +#' @references +#' Zhang, Y., & Schaap, M. G. 2017. Weighted recalibration of the +#' Rosetta pedotransfer model with improved estimates of +#' hydraulic parameter distributions and summary statistics (Rosetta3). +#' Journal of Hydrology, 547:39-53, \doi{10.1016/j.jhydrol.2017.01.004} +#' +#' @section Details: +#' [pdf_estimate()] is the function that should be directly called; this here +#' is an internal helper function. +#' +#' @md +pdf_Rosetta3_for_vanGenuchten1980 <- function(sand, clay) { + stopifnot(requireNamespace("soilDB")) + + tmp <- soilDB::ROSETTA( + 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), + vars = c("sand", "silt", "clay"), + v = "3" ) + + unname(data.matrix(data.frame( + tmp[, c("theta_r", "theta_s")], + 10 ^ tmp[, "alpha"], + 10 ^ tmp[, "npar"], + 0, + 0 + ))) } @@ -628,6 +689,46 @@ check_swrcp <- function(swrc_name, swrcp) { #' awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) #' #' +#' # Shape of SWRCs +#' theta <- seq(0.05, 0.5, by = 0.001) +#' soils <- data.frame( +#' sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), +#' clay_frac = c(0.03, 0.13, 0.58) +#' ) +#' phi <- list( +#' Campbell1974 = swrc_vwc_to_swp( +#' theta, +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' swrc = list(swrc_name = "Campbell1974", pdf_name = "Cosby1984") +#' ), +#' vanGenuchten1980 = swrc_vwc_to_swp( +#' theta, +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") +#' ) +#' ) +#' if (requireNamespace("graphics")) { +#' par_prev <- graphics::par(mfcol = c(2, 1)) +#' +#' for (k in seq_along(phi)) { +#' graphics::matplot( +#' theta, -phi[[k]], +#' type = "l", log = "y", +#' xlim = c(0, max(theta)), +#' xlab = "theta [m/m]", +#' ylim = c(1e-4, 1e6), +#' ylab = "-phi [MPa]", +#' main = paste0("Soil Water Retention Curve (", names(phi)[k], ")") +#' ) +#' graphics::abline(h = -c(-1.5, -0.033), col = "gray", lty = 3) +#' graphics::legend("topright", rownames(soils), col = 1:3, lty = 1:3) +#' } +#' +#' graphics::par(par_prev) +#' } +#' #' #' @export #' @md diff --git a/inst/WORDLIST b/inst/WORDLIST index c8d97498..070790ff 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -39,6 +39,7 @@ pedotransfer phenological phenology rangeland +recalibration sensu shortgrass shrubland @@ -90,6 +91,7 @@ Clapp codecov Espinosa Freund +Genuchten Gessner Gidden Ginn @@ -109,6 +111,7 @@ Matsumoto Meinshausen Milchunas Montzka +Mualem Nauels Nicholls Oecologia @@ -129,6 +132,7 @@ rSFSTEP rSFSW rSW Sala +Schaap Schlaepfer SOILWAT Springer @@ -144,3 +148,4 @@ Vuuren Wickham Wuenschel Zach +Zhang diff --git a/inst/extdata/example1/Input/swrc_params.in b/inst/extdata/example1/Input/swrc_params.in index 0fcb66c7..86748782 100644 --- a/inst/extdata/example1/Input/swrc_params.in +++ b/inst/extdata/example1/Input/swrc_params.in @@ -6,11 +6,17 @@ # selected SWRC (see `siteparam.in`) # - unused columns are ignored (if selected SWRC uses fewer than 6 parameters) -# swrc = "Campbell1974" +# swrc = "Campbell1974" (default values below) # * param1 = "saturation" soil water matric potential [-bar] # * param2 = saturated volumetric water content for the matric component [cm/cm] # * param3 = b, slope of the linear log-log retention curve [-] +# swrc = "vanGenuchten1980" +# * param1 = residual volumetric water content for the matric component [cm/cm] +# * param2 = saturated volumetric water content for the matric component [cm/cm] +# * param3 = alpha, related to the inverse of air entry suction [cm-1] +# * param4 = n, measure of the pore-size distribution [-] + # param1 param2 param3 param4 param5 param6 18.6080 0.42703 5.3020 0.0000 0.0000 0.0000 20.4644 0.43290 7.0500 0.0000 0.0000 0.0000 diff --git a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd new file mode 100644 index 00000000..c0d3320c --- /dev/null +++ b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd @@ -0,0 +1,56 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdf_Rosetta3_for_vanGenuchten1980} +\alias{pdf_Rosetta3_for_vanGenuchten1980} +\title{Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} v3 \code{PDF} by +Zhang et al. 2017} +\usage{ +pdf_Rosetta3_for_vanGenuchten1980(sand, clay) +} +\arguments{ +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} +} +\value{ +\code{swrcp}, i.e,. +a numeric matrix where rows represent soil (layers) and +columns represent a fixed number of \code{SWRC} parameters: \itemize{ +\item \code{swrcp[0]} (\code{theta_r}): residual volumetric water content +of the matric component (units of \verb{[cm / cm]}) +\item \code{swrcp[1]} (\code{theta_s}): saturated volumetric water content +of the matric component (units of \verb{[cm / cm]}) +\item \code{swrcp[2]} (\code{alpha}): related to the inverse of +air entry suction (units of \verb{[cm-1]}) +\item \code{swrcp[3]} (\code{n}): measure of the pore-size distribution \verb{[-]} +} +} +\description{ +Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} v3 \code{PDF} by +Zhang et al. 2017 +} +\section{Details}{ + +\code{\link[=pdf_estimate]{pdf_estimate()}} is the function that should be directly called; this here +is an internal helper function. +} + +\references{ +Mualem, Y. 1976. A new model for predicting the hydraulic conductivity of +unsaturated porous media. +Water Resources Research, 12:513-522, \doi{10.1029/WR012i003p00513} + +van Genuchten, M. T. 1980. A Closed-form Equation for Predicting the +Hydraulic Conductivity of Unsaturated Soils. +Soil Science Society of America Journal, 44:892-898, +\doi{10.2136/sssaj1980.03615995004400050002x} + +Zhang, Y., & Schaap, M. G. 2017. Weighted recalibration of the +Rosetta pedotransfer model with improved estimates of +hydraulic parameter distributions and summary statistics (Rosetta3). +Journal of Hydrology, 547:39-53, \doi{10.1016/j.jhydrol.2017.01.004} +} diff --git a/man/sw_exec.Rd b/man/sw_exec.Rd index 7385ae0d..08d8219c 100644 --- a/man/sw_exec.Rd +++ b/man/sw_exec.Rd @@ -165,6 +165,51 @@ sw_out6 <- sw_exec(inputData = sw_in6, weatherList = sw_weath3, quiet = TRUE) print(round(as.numeric(object.size(sw_out6) / object.size(sw_out5)), 2)) +## ------ Simulation with different SWRC ------------ +sw_in7 <- sw_in3 +swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") + +sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) + +if (requireNamespace("graphics")) { + par_prev <- graphics::par(mfrow = c(2, 1)) + + graphics::plot( + -0.1 * slot(slot(sw_out7, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], + type = "l", + ylim = c(-10, 0), + xlab = "Time [Day of year]", + ylab = "Soil water potential [MPa]" + ) + graphics::lines( + -0.1 * slot(slot(sw_out, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], + col = "orange" + ) + + graphics::plot( + 10 * slot(slot(sw_out7, "SWCBULK"), "Day")[1:365, "Lyr_2"], + type = "l", + ylim = c(0, 20), + xlab = "Time [Day of year]", + ylab = "Soil water content [mm]" + ) + graphics::lines( + 10 * slot(slot(sw_out, "SWCBULK"), "Day")[1:365, "Lyr_2"], + col = "orange" + ) + graphics::legend( + "bottomleft", + legend = c( + paste(swSite_SWRCflags(sw_in7), collapse = "/"), + paste(swSite_SWRCflags(sw_in), collapse = "/") + ), + col = c("black", "orange"), + lwd = 2 + ) + + graphics::par(par_prev) +} + ## See help(package = "rSOILWAT2") for a full list of functions } diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index b17cf0d4..24be0b4c 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -187,9 +187,53 @@ tmp <- swrc_swp_to_vwc( awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) -# Shape of SWRC +# Shape of SWRCs +theta <- seq(0.05, 0.5, by = 0.001) +soils <- data.frame( + sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), + clay_frac = c(0.03, 0.13, 0.58) +) +phi <- list( + Campbell1974 = swrc_vwc_to_swp( + theta, + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + swrc = list(swrc_name = "Campbell1974", pdf_name = "Cosby1984") + ), + vanGenuchten1980 = swrc_vwc_to_swp( + theta, + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") + ) +) +if (requireNamespace("graphics")) { + par_prev <- graphics::par(mfcol = c(2, 1)) + + for (k in seq_along(phi)) { + graphics::matplot( + theta, -phi[[k]], + type = "l", log = "y", + xlim = c(0, max(theta)), + xlab = "theta [m/m]", + ylim = c(1e-4, 1e6), + ylab = "-phi [MPa]", + main = paste0("Soil Water Retention Curve (", names(phi)[k], ")") + ) + graphics::abline(h = -c(-1.5, -0.033), col = "gray", lty = 3) + graphics::legend("topright", rownames(soils), col = 1:3, lty = 1:3) + } + + graphics::par(par_prev) +} +} +\references{ +Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. +A statistical exploration of the relationships of soil moisture +characteristics to the physical properties of soils. +Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} } \seealso{ \code{\link[=pdf_estimate]{pdf_estimate()}}, diff --git a/src/SOILWAT2 b/src/SOILWAT2 index a539dfa8..7fad73b7 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit a539dfa8d662961f7dd3752d01fee1b85fafa4b5 +Subproject commit 7fad73b711144b4314a0ce7815b2639dbb2a3816 diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 6092f9c2..e74b30d4 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -712,7 +712,7 @@ SEXP rSW2_check_SWRC_vs_PDF(SEXP swrc_name, SEXP pdf_name) { strcpy(sw_swrc_name, CHAR(STRING_ELT(swrc_name, 0))); strcpy(sw_pdf_name, CHAR(STRING_ELT(pdf_name, 0))); - LOGICAL(res)[0] = check_SWRC_vs_PDF(sw_swrc_name, sw_pdf_name); + LOGICAL(res)[0] = check_SWRC_vs_PDF(sw_swrc_name, sw_pdf_name, swFALSE); } UNPROTECT(3); From 74a93b7d48ac5ab8512020d771f14f1c1e6c73ed Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 1 Mar 2022 12:55:55 -0500 Subject: [PATCH 023/238] Add explanation on how to update SWRC/PDF framework - see corresponding explanation for SOILWAT2, commit 7fad73b711144b4314a0ce7815b2639dbb2a3816 --- R/sw_Pedotransfer_Functions.R | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 1fee4573..57badb9a 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -195,6 +195,23 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #------ SWRC parameters & pedotransfer functions ------ +# MAINTENANCE: +# Notes for implementing a new SWRC "XXX" and corresponding PDF "YYY" +# 1) SOILWAT2: see notes in SOILWAT2/SW_Site.h, i.e., +# --> updated `N_SWRCs`, `N_PDFs`, `swrc2str[]`, `pdf2str[]` +# --> updated `check_SWRC_vs_PDF()`, `SWRC_PDF_estimate_parameters()`, +# `SWRC_check_parameters()`, `SWRC_SWCtoSWP()`, `SWRC_SWPtoSWC()` +# --> new `SWRC_check_parameters_for_XXX()`, `SWRC_PDF_YYY_for_XXX()`, +# `SWRC_SWCtoSWP_XXX()`, `SWRC_SWPtoSWC_XXX()` +# +# 2) rSOILWAT2: +# * if "YYY" is implemented in R, then: +# * new `pdf_YYY_for_XXX()` +# * update `pdfs_implemented_in_rSW2()` +# * update `rSW2_SWRC_PDF_estimate_parameters()` +# * update examples and unit tests to utilize new XXX/YYY functions + + #' Functionality for Soil Water Retention Curves (`SWRC`) #' #' @description From fb44a5bb40af849782189c02c1bc9414c2e67e82 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 1 Mar 2022 16:31:19 -0500 Subject: [PATCH 024/238] Utilize new non-fatal failures of SWC-SWP conversions by SOILWAT2 - update SOILWAT2 to commit "Option for non-fatal failure of SWC-SWP conversions" 0f6ac5d6757cfb3a284163fa486cf2e26851b4ec -> update `rSW2_SWRC()` to handle non-fatal failures and `SW_MISSING` return values (i.e., translate into R NAs) -> `swrc_conversion()` gains argument "verbose" (if TRUE will turn on SOILWAT2 warnings/notes, e.g., those emitted from failed SWC-SWP conversions; however, this can be pretty noisy and they are turned off by default) --- R/sw_Pedotransfer_Functions.R | 34 +++++++++++++++------ man/swrc_conversion.Rd | 14 +++++++-- src/SOILWAT2 | 2 +- src/SW_R_lib.c | 57 +++++++++++++++++++++-------------- 4 files changed, 71 insertions(+), 36 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 57badb9a..e83c201d 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -614,6 +614,8 @@ check_swrcp <- function(swrc_name, swrcp) { #' If `FALSE` (default), then the returned object has a size of `l` = `d` #' where the the `SWRC` conversion is applied to the #' first element of `x` and soils, the second elements, and so on. +#' @param verbose A logical value. If `TRUE`, then display +#' `SOILWAT2` internal warnings. #' #' @return The dimensions of the output are a function of `x` and the #' number of soil values (e.g., rows or length of `swrc[["swrcp"]]`). @@ -672,8 +674,10 @@ check_swrcp <- function(swrc_name, swrcp) { #' ) #' ) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = swrc1) +#' swrc_swp_to_vwc(c(-1.5, NA), fcoarse = fcrs1, swrc = swrc1) #' swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) #' swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs1, swrc = swrc1) +#' swrc_vwc_to_swp(c(0.10, NA, 0.20), fcoarse = fcrs1, swrc = swrc1) #' #' swrc2 <- list( #' name = "Campbell1974", @@ -757,7 +761,8 @@ swrc_conversion <- function( swrc, sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) { #--- Check inputs direction <- match.arg(direction) @@ -850,6 +855,7 @@ swrc_conversion <- function( res <- array(dim = c(nrx, ncx)) + #--- Prepare inputs and make SWRC conversion if ( nx1d && (nx == 1 || nsoils == 1 || (nx == nsoils && !outer_if_equalsize)) ) { @@ -880,7 +886,7 @@ swrc_conversion <- function( ) } - res <- swrc_conversion_1d(direction, x, soils, swrc = swrc) + res <- swrc_conversion_1d(direction, x, soils, swrc, verbose) } else if (nx1d && nx > 1 && nsoils > 1) { # 4. x [len = l] + soils [len = d] -> res [dim = l x d] @@ -899,7 +905,7 @@ swrc_conversion <- function( tmp <- lapply( x, function(v) { - swrc_conversion_1d(direction, x = rep_len(v, nsoils), soils, swrc) + swrc_conversion_1d(direction, rep_len(v, nsoils), soils, swrc, verbose) } ) res <- matrix(unlist(tmp), nrow = nx, ncol = nsoils, byrow = TRUE) @@ -920,7 +926,7 @@ swrc_conversion <- function( res <- vapply( seq_len(ncx), - function(k) swrc_conversion_1d(direction, x = x[, k], soils, swrc), + function(k) swrc_conversion_1d(direction, x[, k], soils, swrc, verbose), FUN.VALUE = rep(1, nrx), USE.NAMES = FALSE ) @@ -953,7 +959,8 @@ swrc_conversion <- function( swrc = list( swrc_type = swrc[["swrc_type"]][ids], swrcp = swrc[["swrcp"]][ids, , drop = FALSE] - ) + ), + verbose = verbose ) }, FUN.VALUE = rep(1, nrx), @@ -970,7 +977,10 @@ swrc_conversion <- function( #' Helper function of \code{swrc_conversion} to access underlying C code #' @noRd -swrc_conversion_1d <- function(direction, x, soils, swrc) { +swrc_conversion_1d <- function(direction, x, soils, swrc, verbose) { + + prev_verbosity <- sw_verbosity(verbose = as.logical(verbose)) + on.exit(sw_verbosity(prev_verbosity)) # lengths of arguments are checked by `C_rSW2_SWRC()` nx <- length(x) @@ -1019,7 +1029,8 @@ swrc_swp_to_vwc <- function( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) { swrc_conversion( direction = "swp_to_vwc", @@ -1029,7 +1040,8 @@ swrc_swp_to_vwc <- function( fcoarse = fcoarse, layer_width = layer_width, swrc = swrc, - outer_if_equalsize = outer_if_equalsize + outer_if_equalsize = outer_if_equalsize, + verbose = verbose ) } @@ -1050,7 +1062,8 @@ swrc_vwc_to_swp <- function( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) { swrc_conversion( direction = "vwc_to_swp", @@ -1060,6 +1073,7 @@ swrc_vwc_to_swp <- function( fcoarse = fcoarse, layer_width = layer_width, swrc = swrc, - outer_if_equalsize = outer_if_equalsize + outer_if_equalsize = outer_if_equalsize, + verbose = verbose ) } diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 24be0b4c..cedb9f4a 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -14,7 +14,8 @@ swrc_conversion( swrc, sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) swrc_swp_to_vwc( @@ -24,7 +25,8 @@ swrc_swp_to_vwc( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) swrc_vwc_to_swp( @@ -34,7 +36,8 @@ swrc_vwc_to_swp( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, - outer_if_equalsize = FALSE + outer_if_equalsize = FALSE, + verbose = FALSE ) } \arguments{ @@ -80,6 +83,9 @@ If \code{FALSE} (default), then the returned object has a size of \code{l} = \co where the the \code{SWRC} conversion is applied to the first element of \code{x} and soils, the second elements, and so on.} +\item{verbose}{A logical value. If \code{TRUE}, then display +\code{SOILWAT2} internal warnings.} + \item{swp_MPa}{A numeric object. The soil water potential values (units `[MPa]`) to be converted to volumetric water content (relative to the whole soil; units `[cm/cm]`).} @@ -153,8 +159,10 @@ swrc1 <- list( ) ) swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, swrc = swrc1) +swrc_swp_to_vwc(c(-1.5, NA), fcoarse = fcrs1, swrc = swrc1) swrc_swp_to_vwc(-1.5, fcoarse = fcrs1, sand = fsand, clay = fclay) swrc_vwc_to_swp(c(0.10, 0.15, 0.20), fcoarse = fcrs1, swrc = swrc1) +swrc_vwc_to_swp(c(0.10, NA, 0.20), fcoarse = fcrs1, swrc = swrc1) swrc2 <- list( name = "Campbell1974", diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 7fad73b7..0f6ac5d6 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 7fad73b711144b4314a0ce7815b2639dbb2a3816 +Subproject commit 0f6ac5d6757cfb3a284163fa486cf2e26851b4ec diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index e74b30d4..b9fdb1a9 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -906,28 +906,41 @@ SEXP rSW2_SWRC( swrcpk[k2] = xswrcp[k1 + nlyrs * k2]; } - switch (xdirection) { - case 1: - /* SWP->SWC: [-bar] to [cm] */ - xres[k1] = SWRC_SWPtoSWC( - xx[k1], - xswrc_type[k1], - swrcpk, - xcoarse[k1], - xwidth[k1] - ); - break; - - case 2: - /* SWC->SWP: [cm] to [-bar] */ - xres[k1] = SWRC_SWCtoSWP( - xx[k1], - xswrc_type[k1], - swrcpk, - xcoarse[k1], - xwidth[k1] - ); - break; + if (R_FINITE(xx[k1]) && R_FINITE(xcoarse[k1]) && R_FINITE(xwidth[k1])) { + switch (xdirection) { + case 1: + /* SWP->SWC: [-bar] to [cm] */ + xres[k1] = SWRC_SWPtoSWC( + xx[k1], + xswrc_type[k1], + swrcpk, + xcoarse[k1], + xwidth[k1], + LOGWARN + ); + break; + + case 2: + /* SWC->SWP: [cm] to [-bar] */ + xres[k1] = SWRC_SWCtoSWP( + xx[k1], + xswrc_type[k1], + swrcpk, + xcoarse[k1], + xwidth[k1], + LOGWARN + ); + break; + } + + // Translate SOILWAT2 missing to R missing value + if (EQ(xres[k1], SW_MISSING)) { + xres[k1] = NA_REAL; + } + + } else { + // Input values are not finite + xres[k1] = NA_REAL; } } From 4be01981b860faf931e0e6db9b203ff75d8db5f5 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 2 Mar 2022 17:15:01 -0500 Subject: [PATCH 025/238] Update SOILWAT2 to lastest commit - incorporate `SWRC_PDF_swcBulk_minimum()` and `SWRC_PDF_swcBulk_saturated()` --- inst/extdata/example1/Input/siteparam.in | 6 ++++-- src/SOILWAT2 | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/inst/extdata/example1/Input/siteparam.in b/inst/extdata/example1/Input/siteparam.in index c6031892..be6e2a06 100644 --- a/inst/extdata/example1/Input/siteparam.in +++ b/inst/extdata/example1/Input/siteparam.in @@ -91,9 +91,11 @@ RCP85 # input file ("swrc_params.in") instead of estimated from PDF # - swrc_name = "Campbell1974": (Campbell 1974) # * pdf_name = "Cosby1984AndOthers": PDFs by Cosby et al. 1984 -# (but Saxton et al. 2006 for `swc_sat` and Rawls et al. 1985 for `swc_min`) +# (but `swc_sat` by Saxton et al. 2006, +# `swc_min` by user input, realistic SWP limit, or Rawls et al. 1985) # * pdf_name = "Cosby1984": PDFs by Cosby et al. 1984 -# (including `swc_sat` and `swc_min` = 0) +# (including `swc_sat`; `swc_min` = 0 is not realistic, thus, +# `swc_min` by user input, realistic SWP limit, or Rawls et al. 1985) # - swrc_name = "vanGenuchten1980": van Genuchten-Mualem (van Genuchten 1980) # * pdf_name = "Rosetta3": not implemented in C (but see rSOILWAT2) # - swrc_name = "BrooksCorey1964": (Brooks and Corey 1964) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 0f6ac5d6..2db03e92 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 0f6ac5d6757cfb3a284163fa486cf2e26851b4ec +Subproject commit 2db03e92945f2628245db6e422aaa71378cd4910 From 2d28cdcc9d70c87574d3ab0365a2b41b468a4c1c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 3 Mar 2022 10:45:54 -0500 Subject: [PATCH 026/238] `list_matched_swrcs_pdfs()` to list matching pairs of implemented `SWRCs` and `PDFs` --- NAMESPACE | 1 + R/sw_Pedotransfer_Functions.R | 40 ++++++++++++++++++++++++++++++++++ man/list_matched_swrcs_pdfs.Rd | 27 +++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 man/list_matched_swrcs_pdfs.Rd diff --git a/NAMESPACE b/NAMESPACE index 1e8aa4d9..a795829d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -78,6 +78,7 @@ export(get_version) export(get_years_from_weatherDF) export(get_years_from_weatherData) export(has_soilTemp_failed) +export(list_matched_swrcs_pdfs) export(lookup_annual_CO2a) export(pdf_estimate) export(pdf_names) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index e83c201d..37f19856 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -344,6 +344,46 @@ encode_name2pdf <- function(pdf_name) { } +#' Matching pairs of implemented `SWRCs` and `PDFs` +#' +#' @inheritParams SWRCs +#' +#' @return A `data.frame` with two columns `SWRC` and `PDF` where each +#' row contains a matching pair of `SWRC` and `PDF` that are implemented. +#' +#' @section Details: +#' The argument `swrc_name` is optional. If missing, then all implemented +#' `SWRCs` are listed. +#' `"NoPDF` is not included in the list. +#' +#' @export +list_matched_swrcs_pdfs <- function(swrc_name) { + swrc_name <- if ( + missing(swrc_name) || is.null(swrc_name) || all(is.na(swrc_name)) + ) { + names(swrc_names()) + } else { + as.character(swrc_name) + } + + res <- expand.grid( + SWRC = swrc_name, + PDF = names(pdf_names()[-1]), + stringsAsFactors = FALSE, + KEEP.OUT.ATTRS = FALSE + ) + + ids <- mapply( + function(s, p) .Call(C_rSW2_check_SWRC_vs_PDF, s, p), + res[, "SWRC"], + res[, "PDF"] + ) + + res <- res[ids, , drop = FALSE] + rownames(res) <- NULL + res +} + #' Estimate `SWRC` parameters from soil texture with a pedotransfer function #' diff --git a/man/list_matched_swrcs_pdfs.Rd b/man/list_matched_swrcs_pdfs.Rd new file mode 100644 index 00000000..625a2886 --- /dev/null +++ b/man/list_matched_swrcs_pdfs.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{list_matched_swrcs_pdfs} +\alias{list_matched_swrcs_pdfs} +\title{Matching pairs of implemented `SWRCs` and `PDFs`} +\usage{ +list_matched_swrcs_pdfs(swrc_name) +} +\arguments{ +\item{swrc_name}{An character string or vector. +The selected \code{SWRC} name +(one of \code{\link[=swrc_names]{swrc_names()}}, with default \code{"Campbell1974"}).} +} +\value{ +A `data.frame` with two columns `SWRC` and `PDF` where each + row contains a matching pair of `SWRC` and `PDF` that are implemented. +} +\description{ +Matching pairs of implemented `SWRCs` and `PDFs` +} +\section{Details}{ + + The argument `swrc_name` is optional. If missing, then all implemented + `SWRCs` are listed. + `"NoPDF` is not included in the list. +} + From de4ef92ecc91bf2c6472ade1a120c35a12a815d2 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 3 Mar 2022 10:47:13 -0500 Subject: [PATCH 027/238] Water balance unit tests for each implemented SWRC/PDF pair --> these unit tests are currently failing for vanGenuchten1980/Rosetta3 --- tests/testthat/test_WaterBalance.R | 464 ++++++++++++++++------------- 1 file changed, 255 insertions(+), 209 deletions(-) diff --git a/tests/testthat/test_WaterBalance.R b/tests/testthat/test_WaterBalance.R index d5721196..4cf81186 100644 --- a/tests/testthat/test_WaterBalance.R +++ b/tests/testthat/test_WaterBalance.R @@ -15,6 +15,10 @@ temp <- sapply(strsplit(temp, "_"), function(x) x[[1]]) tests <- unique(temp) test_that("Test data availability", expect_gt(length(tests), 0)) +list_swrcs_pdfs <- unname(as.list(as.data.frame(t( + rSOILWAT2::list_matched_swrcs_pdfs() +)))) + aggregate_for_each_timestep <- function(x, dyt) { nid <- 1:2 list( @@ -40,221 +44,263 @@ aggregate_for_each_timestep <- function(x, dyt) { } -for (it in tests) { - #---INPUTS - sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) - sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) +#--- Loop over SWRC-PDF combinations ------ +for (isp in seq_along(list_swrcs_pdfs)) { - # Request summed values for every time step - swOUT_TimeStepsForEveryKey(sw_input) <- seq_len(SW_OUTNPERIODS) - 1 - slot(slot(sw_input, "output"), "sumtype")[] <- 1L + #--- Loop over test cases ------ + for (it in tests) { + #---INPUTS + sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) + sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) - #---TESTS - info1 <- paste("test-data:", it) + # Set SWRC/PDF + rSOILWAT2::swSite_SWRCflags(sw_input) <- list_swrcs_pdfs[[isp]] - test_that("Water balance & cycle", { - # Run SOILWAT - x <- sw_exec( - inputData = sw_input, - weatherList = sw_weather, - echo = FALSE, - quiet = TRUE - ) - expect_s4_class(x, "swOutput") - - - # Get state change values which are directly re-aggregated from daily data - N <- slot(x, "dy_nrow") - Ns <- seq_len(N) - idelta1 <- Ns[-N] - idelta2 <- Ns[-1] - - temp <- slot(slot(x, "SURFACEWATER"), "Day") - surfaceWater <- temp[, "surfaceWater_cm"] - - dates <- data.frame(temp[, c("Year", "Day")]) - dates[, "DOY"] <- dates[, "Day"] - temp <- as.POSIXlt(seq.Date( - from = as.Date(ISOdate(dates[1, "Year"], 1, 1)), - to = as.Date(ISOdate(dates[nrow(dates), "Year"], 12, 31)), - by = "day" - )) - dates[, "Month"] <- 1 + temp$mon - dates[, "Day"] <- temp$mday - # SOILWAT2 'weeks' are not calendar weeks as in - # \code{as.integer(format(temp, "%W"))} - # with \code{%U = US weeks}; \coe{%V = ISO 8601}; \code{%W = UK weeks} - # instead SOILWAT2 numbers consecutive sets of 7-day periods - dates[, "Week"] <- 1 + (dates[, "DOY"] - 1) %/% 7 - dyt <- list( - d = dates, - ids1 = idelta1, - ids2 = idelta2, - # not first year: - nfy = which(temp <- dates[, "Year"] != dates[1, "Year"]), - # not first month of first year: - nfm = which(temp | dates[, "Month"] != dates[1, "Month"]), - # not first week of first year: - nfw = which(temp | dates[, "Week"] != dates[1, "Week"]) - ) - # change in ponded (surface) water - list_delta_surfaceWater <- aggregate_for_each_timestep( - x = surfaceWater[dyt[["ids2"]]] - surfaceWater[dyt[["ids1"]]], - dyt = dyt - ) + # Request summed values for every time step + swOUT_TimeStepsForEveryKey(sw_input) <- seq_len(SW_OUTNPERIODS) - 1 + slot(slot(sw_input, "output"), "sumtype")[] <- 1L - # change in soil moisture - temp <- slot(slot(x, "SWCBULK"), "Day") - swcj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - n_soillayers <- ncol(swcj) - - # today - yesterday: - dy_delta_swcj <- swcj[dyt[["ids2"]], ] - swcj[dyt[["ids1"]], ] - list_delta_swcj <- aggregate_for_each_timestep(x = dy_delta_swcj, dyt) - list_delta_swc_total <- aggregate_for_each_timestep( - x = apply(dy_delta_swcj, 1, sum), - dyt = dyt + #---TESTS + info1 <- paste( + "test-data:", it, "/", + paste(list_swrcs_pdfs[[isp]], collapse = "-") ) - - # Loop through time steps - for (pd in seq_len(SW_OUTNPERIODS)) { - info2 <- paste(info1, "/ time step:", OutPeriods[pd]) - - # Get values - ets <- slot(slot(x, "AET"), OutPeriods[pd]) - aet <- ets[, "evapotr_cm"] - pet <- slot(slot(x, "PET"), OutPeriods[pd])[, "pet_cm"] - - temp <- seq_along(aet) - idelta1 <- temp[-length(temp)] - idelta2 <- temp[-1] - - # Get evaporation values - temp <- slot(slot(x, "EVAPSURFACE"), OutPeriods[pd]) - Etotalsurf <- temp[, "evap_total"] - Elitter <- temp[, "evap_litter"] - Eponded <- temp[, "evap_surfaceWater"] - Evegi <- temp[, paste0("evap_", veg_types), drop = FALSE] - Eveg <- apply(Evegi, 1, sum) - Etotalint <- Eveg + Elitter - - temp <- slot(slot(x, "EVAPSOIL"), OutPeriods[pd]) - Esoilj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - Esoil <- apply(Esoilj, 1, sum) - - temp <- matrix(0, nrow = nrow(Esoilj), ncol = n_soillayers) - temp[, seq_len(ncol(Esoilj))] <- Esoilj - Esoilj <- temp - - Esnow <- slot(slot(x, "PRECIP"), OutPeriods[pd])[, "snowloss"] - Etotal <- Etotalsurf + Esoil + Esnow - - # Get transpiration values - temp <- slot(slot(x, "TRANSP"), OutPeriods[pd]) - Ttotalj <- temp[, grep("transp_total_Lyr", colnames(temp)), drop = FALSE] - Ttotal <- apply(Ttotalj, 1, sum) - Tvegij <- lapply(veg_types, function(v) - temp[, grep(paste0("transp_", v, "_Lyr"), colnames(temp)), - drop = FALSE]) - names(Tvegij) <- veg_types - - - #--- Check that calculated transpiration and evaporation matches - # newly available ones from "AET" slot - expect_equal(Ttotal, ets[, "tran_cm"], tolerance = tol) - expect_equal(Esoil, ets[, "esoil_cm"], tolerance = tol) - expect_equal(Esnow, ets[, "esnow_cm"], tolerance = tol) - expect_equal(Eveg, ets[, "ecnw_cm"], tolerance = tol) - expect_equal(Eponded + Elitter, ets[, "esurf_cm"], tolerance = tol) - - tmp_evars2 <- c("esoil_cm", "ecnw_cm", "esurf_cm", "esnow_cm") - Etotal2 <- apply(ets[, tmp_evars2], 1, sum) - expect_equal(Etotal, Etotal2, tolerance = tol) - expect_equal(aet, ets[, "tran_cm"] + Etotal2, tolerance = tol) - - - #--- Get other water flux values - infiltration <- slot(slot(x, "SOILINFILT"), - OutPeriods[pd])[, "soil_inf"] - deepDrainage <- slot(slot(x, "DEEPSWC"), - OutPeriods[pd])[, "lowLayerDrain_cm"] - - temp <- slot(slot(x, "LYRDRAIN"), OutPeriods[pd]) - temp <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - percolationIn <- cbind(infiltration, temp) - percolationOut <- cbind(temp, deepDrainage) - - temp <- slot(slot(x, "HYDRED"), OutPeriods[pd]) - ctemp <- grep("total_Lyr", colnames(temp)) - hydraulicRedistribution <- temp[, ctemp, drop = FALSE] - - temp <- slot(slot(x, "INTERCEPTION"), OutPeriods[pd]) - intercepted <- temp[, "int_total"] - - temp <- slot(slot(x, "RUNOFF"), OutPeriods[pd]) - ctemp <- grep("runoff", colnames(temp)) - runoff <- apply(temp[, ctemp, drop = FALSE], 1, sum) - ctemp <- grep("runon", colnames(temp)) - runon <- apply(temp[, ctemp, drop = FALSE], 1, sum) - - temp <- slot(slot(x, "PRECIP"), OutPeriods[pd]) - snowmelt <- temp[, "snowmelt"] - rain <- temp[, "rain"] - - arriving_water <- rain + snowmelt + runon - - - # Get state change values - delta_surfaceWater <- list_delta_surfaceWater[[OutPeriods[pd]]] - delta_swcj <- list_delta_swcj[[OutPeriods[pd]]] - delta_swc_total <- list_delta_swc_total[[OutPeriods[pd]]] - - - #--- Water balance checks - # (1) \code{AET <= PET} - expect_true(all(aet < pet | abs(pet - aet) < tol), info = info2) - - # (2) \code{AET == E(total) + T(total)} - expect_equal(aet, Etotal + Ttotal, info = info2) - - # (3) \code{T(total) = sum of T(veg-type i from soil layer j)} - expect_equal(Ttotal, apply(sapply(Tvegij, function(x) apply(x, 1, sum)), - 1, sum), info = info2) - - # (4) \code{E(total) = E(total bare-soil) + E(ponded water) + - # + E(total litter-intercepted) + E(total veg-intercepted) + - # + E(snow sublimation)} - expect_equal(Etotal, Esoil + Eponded + Eveg + Elitter + Esnow, - info = info2) - - # (5) \code{E(total surface) = E(ponded water) + - # + E(total litter-intercepted) + E(total veg-intercepted)} - expect_equal(Etotalsurf, Eponded + Eveg + Elitter, info = info2) - - - #--- Water cycling checks - # (6) \code{infiltration = [rain + snowmelt + runon] - - # (runoff + intercepted + delta_surfaceWater + Eponded)} - expect_equal(infiltration[idelta2], arriving_water[idelta2] - - (runoff[idelta2] + intercepted[idelta2] + delta_surfaceWater + - Eponded[idelta2]), info = info2) - - # (7) \code{E(soil) + Ttotal = infiltration - (deepDrainage + delta(swc))} - expect_equal(Esoil[idelta2] + Ttotal[idelta2], - infiltration[idelta2] - (deepDrainage[idelta2] + delta_swc_total), - info = info2) - - # (8) for every soil layer j: \code{delta(swc) = - # = infiltration/percolationIn + hydraulicRedistribution - - # (percolationOut/deepDrainage + transpiration + evaporation)} - for (j in seq_len(n_soillayers)) { - expect_equal(delta_swcj[, j], - percolationIn[idelta2, j] + hydraulicRedistribution[idelta2, j] - - (percolationOut[idelta2, j] + Ttotalj[idelta2, j] + - Esoilj[idelta2, j]), info = paste(info2, "/ soil layer:", j)) + test_that("Water balance & cycle", { + # Run SOILWAT + x <- sw_exec( + inputData = sw_input, + weatherList = sw_weather, + echo = FALSE, + quiet = TRUE + ) + expect_s4_class(x, "swOutput") + + + # Get state change values which are directly re-aggregated from daily data + N <- slot(x, "dy_nrow") + Ns <- seq_len(N) + idelta1 <- Ns[-N] + idelta2 <- Ns[-1] + + temp <- slot(slot(x, "SURFACEWATER"), "Day") + surfaceWater <- temp[, "surfaceWater_cm"] + + dates <- data.frame(temp[, c("Year", "Day")]) + dates[, "DOY"] <- dates[, "Day"] + temp <- as.POSIXlt(seq.Date( + from = as.Date(ISOdate(dates[1, "Year"], 1, 1)), + to = as.Date(ISOdate(dates[nrow(dates), "Year"], 12, 31)), + by = "day" + )) + dates[, "Month"] <- 1 + temp$mon + dates[, "Day"] <- temp$mday + # SOILWAT2 'weeks' are not calendar weeks as in + # \code{as.integer(format(temp, "%W"))} + # with \code{%U = US weeks}; \coe{%V = ISO 8601}; \code{%W = UK weeks} + # instead SOILWAT2 numbers consecutive sets of 7-day periods + dates[, "Week"] <- 1 + (dates[, "DOY"] - 1) %/% 7 + dyt <- list( + d = dates, + ids1 = idelta1, + ids2 = idelta2, + # not first year: + nfy = which(temp <- dates[, "Year"] != dates[1, "Year"]), + # not first month of first year: + nfm = which(temp | dates[, "Month"] != dates[1, "Month"]), + # not first week of first year: + nfw = which(temp | dates[, "Week"] != dates[1, "Week"]) + ) + + # change in ponded (surface) water + list_delta_surfaceWater <- aggregate_for_each_timestep( + x = surfaceWater[dyt[["ids2"]]] - surfaceWater[dyt[["ids1"]]], + dyt = dyt + ) + + # change in soil moisture + temp <- slot(slot(x, "SWCBULK"), "Day") + swcj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + n_soillayers <- ncol(swcj) + + # today - yesterday: + dy_delta_swcj <- swcj[dyt[["ids2"]], ] - swcj[dyt[["ids1"]], ] + list_delta_swcj <- aggregate_for_each_timestep(x = dy_delta_swcj, dyt) + list_delta_swc_total <- aggregate_for_each_timestep( + x = apply(dy_delta_swcj, 1, sum), + dyt = dyt + ) + + + # Loop through time steps + for (pd in seq_len(SW_OUTNPERIODS)) { + info2 <- paste(info1, "/ time step:", OutPeriods[pd]) + + # Get values + ets <- slot(slot(x, "AET"), OutPeriods[pd]) + aet <- ets[, "evapotr_cm"] + pet <- slot(slot(x, "PET"), OutPeriods[pd])[, "pet_cm"] + + temp <- seq_along(aet) + idelta1 <- temp[-length(temp)] + idelta2 <- temp[-1] + + # Get evaporation values + temp <- slot(slot(x, "EVAPSURFACE"), OutPeriods[pd]) + Etotalsurf <- temp[, "evap_total"] + Elitter <- temp[, "evap_litter"] + Eponded <- temp[, "evap_surfaceWater"] + Evegi <- temp[, paste0("evap_", veg_types), drop = FALSE] + Eveg <- apply(Evegi, 1, sum) + Etotalint <- Eveg + Elitter + + temp <- slot(slot(x, "EVAPSOIL"), OutPeriods[pd]) + Esoilj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + Esoil <- apply(Esoilj, 1, sum) + + temp <- matrix(0, nrow = nrow(Esoilj), ncol = n_soillayers) + temp[, seq_len(ncol(Esoilj))] <- Esoilj + Esoilj <- temp + + Esnow <- slot(slot(x, "PRECIP"), OutPeriods[pd])[, "snowloss"] + Etotal <- Etotalsurf + Esoil + Esnow + + # Get transpiration values + temp <- slot(slot(x, "TRANSP"), OutPeriods[pd]) + ids <- grep("transp_total_Lyr", colnames(temp)) + Ttotalj <- temp[, ids, drop = FALSE] + Ttotal <- apply(Ttotalj, 1, sum) + Tvegij <- lapply( + veg_types, + function(v) { + ids <- grep(paste0("transp_", v, "_Lyr"), colnames(temp)) + temp[, ids, drop = FALSE] + } + ) + names(Tvegij) <- veg_types + + + #--- Check that calculated transpiration and evaporation matches + # newly available ones from "AET" slot + expect_equal(Ttotal, ets[, "tran_cm"], tolerance = tol) + expect_equal(Esoil, ets[, "esoil_cm"], tolerance = tol) + expect_equal(Esnow, ets[, "esnow_cm"], tolerance = tol) + expect_equal(Eveg, ets[, "ecnw_cm"], tolerance = tol) + expect_equal(Eponded + Elitter, ets[, "esurf_cm"], tolerance = tol) + + tmp_evars2 <- c("esoil_cm", "ecnw_cm", "esurf_cm", "esnow_cm") + Etotal2 <- apply(ets[, tmp_evars2], 1, sum) + expect_equal(Etotal, Etotal2, tolerance = tol) + expect_equal(aet, ets[, "tran_cm"] + Etotal2, tolerance = tol) + + + #--- Get other water flux values + infiltration <- slot( + slot(x, "SOILINFILT"), + OutPeriods[pd] + )[, "soil_inf"] + deepDrainage <- slot( + slot(x, "DEEPSWC"), + OutPeriods[pd] + )[, "lowLayerDrain_cm"] + + temp <- slot(slot(x, "LYRDRAIN"), OutPeriods[pd]) + temp <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + percolationIn <- cbind(infiltration, temp) + percolationOut <- cbind(temp, deepDrainage) + + temp <- slot(slot(x, "HYDRED"), OutPeriods[pd]) + ctemp <- grep("total_Lyr", colnames(temp)) + hydraulicRedistribution <- temp[, ctemp, drop = FALSE] + + temp <- slot(slot(x, "INTERCEPTION"), OutPeriods[pd]) + intercepted <- temp[, "int_total"] + + temp <- slot(slot(x, "RUNOFF"), OutPeriods[pd]) + ctemp <- grep("runoff", colnames(temp)) + runoff <- apply(temp[, ctemp, drop = FALSE], 1, sum) + ctemp <- grep("runon", colnames(temp)) + runon <- apply(temp[, ctemp, drop = FALSE], 1, sum) + + temp <- slot(slot(x, "PRECIP"), OutPeriods[pd]) + snowmelt <- temp[, "snowmelt"] + rain <- temp[, "rain"] + + arriving_water <- rain + snowmelt + runon + + + # Get state change values + delta_surfaceWater <- list_delta_surfaceWater[[OutPeriods[pd]]] + delta_swcj <- list_delta_swcj[[OutPeriods[pd]]] + delta_swc_total <- list_delta_swc_total[[OutPeriods[pd]]] + + + #--- Water balance checks + # (1) \code{AET <= PET} + expect_true(all(aet < pet | abs(pet - aet) < tol), info = info2) + + # (2) \code{AET == E(total) + T(total)} + expect_equal(aet, Etotal + Ttotal, info = info2) + + # (3) \code{T(total) = sum of T(veg-type i from soil layer j)} + expect_equal( + Ttotal, + apply( + sapply(Tvegij, function(x) apply(x, 1, sum)), + MARGIN = 1, + FUN = sum + ), + info = info2 + ) + + # (4) \code{E(total) = E(total bare-soil) + E(ponded water) + + # + E(total litter-intercepted) + E(total veg-intercepted) + + # + E(snow sublimation)} + expect_equal( + Etotal, Esoil + Eponded + Eveg + Elitter + Esnow, + info = info2 + ) + + # (5) \code{E(total surface) = E(ponded water) + + # + E(total litter-intercepted) + E(total veg-intercepted)} + expect_equal( + Etotalsurf, Eponded + Eveg + Elitter, + info = info2 + ) + + + #--- Water cycling checks + # (6) \code{infiltration = [rain + snowmelt + runon] - + # (runoff + intercepted + delta_surfaceWater + Eponded)} + expect_equal( + infiltration[idelta2], arriving_water[idelta2] - + (runoff[idelta2] + intercepted[idelta2] + delta_surfaceWater + + Eponded[idelta2]), + info = info2 + ) + + # (7) \code{E(soil) + Ttotal = + # infiltration - (deepDrainage + delta(swc))} + expect_equal( + Esoil[idelta2] + Ttotal[idelta2], + infiltration[idelta2] - (deepDrainage[idelta2] + delta_swc_total), + info = info2 + ) + + # (8) for every soil layer j: \code{delta(swc) = + # = infiltration/percolationIn + hydraulicRedistribution - + # (percolationOut/deepDrainage + transpiration + evaporation)} + for (j in seq_len(n_soillayers)) { + expect_equal( + delta_swcj[, j], + percolationIn[idelta2, j] + hydraulicRedistribution[idelta2, j] - + (percolationOut[idelta2, j] + Ttotalj[idelta2, j] + + Esoilj[idelta2, j]), + info = paste(info2, "/ soil layer:", j) + ) + } } - } - }) + }) + } } From 9d603ba24181cd06f5b156639bbe8f8c799dfbd0 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 3 Mar 2022 11:04:12 -0500 Subject: [PATCH 028/238] New script (in "tools"): `test_SWRCs_and_PDFs.R` This script runs SOILWAT2 simulations (using the package default dataset) * for each implemented pair of SWRC/PDF * for default and 50% reduced precipitation events and produced time-series plots by soil layer and by year of volumetric water content (VWC), soil water potential (SWP), and transpiration --- tools/test_SWRCs_and_PDFs.R | 155 ++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 tools/test_SWRCs_and_PDFs.R diff --git a/tools/test_SWRCs_and_PDFs.R b/tools/test_SWRCs_and_PDFs.R new file mode 100644 index 00000000..1fadf519 --- /dev/null +++ b/tools/test_SWRCs_and_PDFs.R @@ -0,0 +1,155 @@ +#--- Compare SOILWAT2 simulations under varying SWRCs and PDFs ------ + +# This script runs SOILWAT2 simulations (using the package default dataset) +# * for each implemented pair of SWRC/PDF +# * for default and 50% reduced precipitation events +# +# and produced time-series plots by soil layer and by year of +# volumetric water content (VWC), soil water potential (SWP), and transpiration + + +# Required packages not part of `rSOILWAT2` +stopifnot(requireNamespace("ggplot2")) + + +#--- List of SWRC-PDF combinations ------ +list_swrcs_pdfs <- unname(as.list(as.data.frame(t( + rSOILWAT2::list_matched_swrcs_pdfs() +)))) + + +#--- Settings ------ +list_plot_vars <- list( + list(slot = "SWPMATRIC", var = "SWP [MPa]", trans = function(x) -0.1 * x), + list(slot = "VWCBULK", var = "VWC [cm / cm]", trans = function(x) x), + list(slot = "TRANSP", var = "Transpiration [mm]", trans = function(x) 10 * x) +) + +nsoils_used <- Inf +nyears_used <- 10 +fadj_ppts <- c(0.5, 1) + + + +#--- Loop over precipitation adjustments ------ +for (k0 in seq_along(fadj_ppts)) { + + #--- Simulate ------ + soils <- rSOILWAT2::swSoils_Layers(rSOILWAT2::sw_exampleData) + nsoils <- nrow(soils) + nsoils_used2 <- min(nsoils_used, nsoils) + year_start <- rSOILWAT2::swYears_StartYear(rSOILWAT2::sw_exampleData) + + swout <- lapply( + list_swrcs_pdfs, + function(sp) { + sw_in <- rSOILWAT2::sw_exampleData + rSOILWAT2::swWeather_MonScalingParams(sw_in)[, "PPT"] <- fadj_ppts[k0] + rSOILWAT2::swSite_SWRCflags(sw_in) <- sp + rSOILWAT2::sw_exec(inputData = sw_in) + } + ) + + + #--- Create figures ------ + for (k1 in seq_along(list_plot_vars)) { + + fname_fig <- file.path( + ".", + paste0( + "Fig_SOILWAT2_SWRCs-PDFs_", + list_plot_vars[[k1]][["slot"]], + "_PPT", round(100 * fadj_ppts[k0]), "pct", + ".pdf" + ) + ) + + if (file.exists(fname_fig)) next + + #--- * Prepare data ------ + tmp_swout <- mapply( + function(x, sp) { + tmp <- slot(slot(x, list_plot_vars[[k1]][["slot"]]), "Day") + res <- data.frame( + SWRC = sp[1], + PDF = sp[2], + tmp[, c("Year", "Day")], + date = as.Date( + paste(tmp[, "Year"], tmp[, "Day"], sep = "-"), + format = "%Y-%j" + ), + list_plot_vars[[k1]][["trans"]](tmp[, 2 + seq_len(nsoils)]) + ) + colnames(res) <- gsub("transp_total_", "", colnames(res)) + res + }, + swout, + list_swrcs_pdfs, + SIMPLIFY = FALSE + ) + + var_swout <- reshape( + do.call(rbind, tmp_swout), + direction = "long", + varying = grep("Lyr_", colnames(tmp_swout[[1]]), value = TRUE), + sep = "_" + ) + + # rename "Lyr" to variable name + colnames(var_swout)[grep("Lyr", colnames(var_swout))] <- + list_plot_vars[[k1]][["var"]] + + # create combined SWRC-PDF name (for coloration) + var_swout[, "SWRC-PDF"] <- paste( + var_swout[, "SWRC"], + var_swout[, "PDF"], + sep = "-" + ) + + # add soil layer depths + var_swout[, "Layer"] <- factor( + var_swout[, "time"], + levels = seq_len(nsoils), + labels = paste0( + c(0, soils[-nsoils, "depth_cm"]), "-", + soils[, "depth_cm"], + " cm" + ) + ) + + #--- Subset data to requested years and soil layers + ids <- + var_swout$Year %in% (year_start + seq_len(nyears_used) - 1) & + var_swout$time %in% seq_len(nsoils_used2) + var_swout_used <- var_swout[ids, , drop = FALSE] + + + #--- * Create plot ------ + tmp <- ggplot2::ggplot(var_swout_used) + + ggplot2::geom_line( + ggplot2::aes( + x = Day, + y = .data[[list_plot_vars[[k1]][["var"]]]], + color = `SWRC-PDF`, + linetype = `SWRC-PDF` + ) + ) + + ggplot2::facet_wrap( + ggplot2::vars(Layer, Year), + nrow = nsoils_used2, + #scales = "free_y", + labeller = ggplot2::label_wrap_gen(multi_line = FALSE) + ) + + egg::theme_article() + + + #--- Write to file + pdf( + file = fname_fig, + height = 2.5 * nsoils_used2, + width = 3 * (nyears_used + 1) + ) + plot(tmp) + dev.off() + } +} From 21e7eead2a4fa27ea1802b10e4d500f1f906ebd9 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 3 Mar 2022 11:05:54 -0500 Subject: [PATCH 029/238] Simplify examples in documentation of `sw_exec()` - the new script "test_SWRCs_and_PDFs.R" (see previous commit 9d603ba24181cd06f5b156639bbe8f8c799dfbd0) makes the detailed SWRC/PDF example code in `sw_exec()` unnecessary --- R/Rsw.R | 39 --------------------------------------- man/sw_exec.Rd | 39 --------------------------------------- 2 files changed, 78 deletions(-) diff --git a/R/Rsw.R b/R/Rsw.R index 7d6dbb60..991902c8 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -220,45 +220,6 @@ sw_verbosity <- function(verbose = TRUE) { #' #' sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) #' -#' if (requireNamespace("graphics")) { -#' par_prev <- graphics::par(mfrow = c(2, 1)) -#' -#' graphics::plot( -#' -0.1 * slot(slot(sw_out7, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], -#' type = "l", -#' ylim = c(-10, 0), -#' xlab = "Time [Day of year]", -#' ylab = "Soil water potential [MPa]" -#' ) -#' graphics::lines( -#' -0.1 * slot(slot(sw_out, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], -#' col = "orange" -#' ) -#' -#' graphics::plot( -#' 10 * slot(slot(sw_out7, "SWCBULK"), "Day")[1:365, "Lyr_2"], -#' type = "l", -#' ylim = c(0, 20), -#' xlab = "Time [Day of year]", -#' ylab = "Soil water content [mm]" -#' ) -#' graphics::lines( -#' 10 * slot(slot(sw_out, "SWCBULK"), "Day")[1:365, "Lyr_2"], -#' col = "orange" -#' ) -#' graphics::legend( -#' "bottomleft", -#' legend = c( -#' paste(swSite_SWRCflags(sw_in7), collapse = "/"), -#' paste(swSite_SWRCflags(sw_in), collapse = "/") -#' ), -#' col = c("black", "orange"), -#' lwd = 2 -#' ) -#' -#' graphics::par(par_prev) -#' } -#' #' ## See help(package = "rSOILWAT2") for a full list of functions #' #' @export diff --git a/man/sw_exec.Rd b/man/sw_exec.Rd index 08d8219c..c204936a 100644 --- a/man/sw_exec.Rd +++ b/man/sw_exec.Rd @@ -171,45 +171,6 @@ swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) -if (requireNamespace("graphics")) { - par_prev <- graphics::par(mfrow = c(2, 1)) - - graphics::plot( - -0.1 * slot(slot(sw_out7, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], - type = "l", - ylim = c(-10, 0), - xlab = "Time [Day of year]", - ylab = "Soil water potential [MPa]" - ) - graphics::lines( - -0.1 * slot(slot(sw_out, "SWPMATRIC"), "Day")[1:365, "Lyr_2"], - col = "orange" - ) - - graphics::plot( - 10 * slot(slot(sw_out7, "SWCBULK"), "Day")[1:365, "Lyr_2"], - type = "l", - ylim = c(0, 20), - xlab = "Time [Day of year]", - ylab = "Soil water content [mm]" - ) - graphics::lines( - 10 * slot(slot(sw_out, "SWCBULK"), "Day")[1:365, "Lyr_2"], - col = "orange" - ) - graphics::legend( - "bottomleft", - legend = c( - paste(swSite_SWRCflags(sw_in7), collapse = "/"), - paste(swSite_SWRCflags(sw_in), collapse = "/") - ), - col = c("black", "orange"), - lwd = 2 - ) - - graphics::par(par_prev) -} - ## See help(package = "rSOILWAT2") for a full list of functions } From 2a0e1871b156d34692a344a1741c91125472b95d Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 4 Mar 2022 10:20:32 -0500 Subject: [PATCH 030/238] New script (in "tools"): `test_SWRCs_and_PDFs_TheoreticalCurves.R` Plot and compare theoretical shapes of Soil Water Retention Curves This script builds theoretical theta-phi and phi-theta relationships (SWRCs) * for each implemented pair of SWRC/PDF * for a variety of soil textures and produced plots: (i) to compare curves among soil textures within a SWRC (ii) to compare curves among SWRCs within each soil texture - renamed similar script (which plots simulation output) from "test_SWRCs_and_PDFs.R" to "test_SWRCs_and_PDFs_Simulations.R" to avoid confusing file names --- R/sw_Pedotransfer_Functions.R | 5 +- man/swrc_conversion.Rd | 5 +- ...Fs.R => test_SWRCs_and_PDFs_Simulations.R} | 0 tools/test_SWRCs_and_PDFs_TheoreticalCurves.R | 342 ++++++++++++++++++ 4 files changed, 348 insertions(+), 4 deletions(-) rename tools/{test_SWRCs_and_PDFs.R => test_SWRCs_and_PDFs_Simulations.R} (100%) create mode 100644 tools/test_SWRCs_and_PDFs_TheoreticalCurves.R diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 37f19856..41aa6a59 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -751,7 +751,7 @@ check_swrcp <- function(swrc_name, swrcp) { #' #' #' # Shape of SWRCs -#' theta <- seq(0.05, 0.5, by = 0.001) +#' theta <- seq(0.05, 0.55, by = 0.001) #' soils <- data.frame( #' sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), #' clay_frac = c(0.03, 0.13, 0.58) @@ -776,7 +776,8 @@ check_swrcp <- function(swrc_name, swrcp) { #' for (k in seq_along(phi)) { #' graphics::matplot( #' theta, -phi[[k]], -#' type = "l", log = "y", +#' type = "l", +#' log = "y", #' xlim = c(0, max(theta)), #' xlab = "theta [m/m]", #' ylim = c(1e-4, 1e6), diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index cedb9f4a..f1e42649 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -196,7 +196,7 @@ awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) # Shape of SWRCs -theta <- seq(0.05, 0.5, by = 0.001) +theta <- seq(0.05, 0.55, by = 0.001) soils <- data.frame( sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), clay_frac = c(0.03, 0.13, 0.58) @@ -221,7 +221,8 @@ if (requireNamespace("graphics")) { for (k in seq_along(phi)) { graphics::matplot( theta, -phi[[k]], - type = "l", log = "y", + type = "l", + log = "y", xlim = c(0, max(theta)), xlab = "theta [m/m]", ylim = c(1e-4, 1e6), diff --git a/tools/test_SWRCs_and_PDFs.R b/tools/test_SWRCs_and_PDFs_Simulations.R similarity index 100% rename from tools/test_SWRCs_and_PDFs.R rename to tools/test_SWRCs_and_PDFs_Simulations.R diff --git a/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R new file mode 100644 index 00000000..508d91ad --- /dev/null +++ b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R @@ -0,0 +1,342 @@ +#--- Plot and compare Shape of Soil Water Retention Curves ------ + +# This script builds theoretical theta-phi (and phi-theta) relationships (SWRCs) +# * for each implemented pair of SWRC/PDF +# * for a variety of soil textures +# +# and produced plots: +# (i) to compare curves among soil textures within a SWRC +# (ii) to compare curves among SWRCs within each soil texture + + +# Required packages not part of `rSOILWAT2` +stopifnot(requireNamespace("ggplot2")) + + +#--- List of SWRC-PDF combinations ------ +list_swrcs_pdfs <- unname(as.list(as.data.frame(t( + rSOILWAT2::list_matched_swrcs_pdfs() +)))) + + + +#--- Inputs ------ +thetas <- seq(0.00, 0.55, by = 0.001) +phis <- sort(c( + seq(-1000, -4, by = 1), + seq(-4, -1, by = 0.1), + seq(-1, -0.01, by = 0.01), + -0.033, + seq(-0.01, 0, by = 0.001), + seq(-0.001, 0, by = 0.0001) +)) + +soils <- data.frame( + sand_frac = c( + 0.92, 0.82, 0.58, 0.43, 0.17, 0.58, 0.32, 0.1, 0.52, 0.06, 0.22 + ), + clay_frac = c( + 0.03, 0.06, 0.1, 0.18, 0.13, 0.27, 0.34, 0.34, 0.42, 0.47, 0.58 + ), + fcoarse = 0 +) +rownames(soils) <- gsub( + " ", + ".", + c( + "Sand", "Loamy sand", "Sandy loam", "Loam", "Silty loam", "Sandy clay loam", + "Clay loam", "Silty clay loam", "Sandy clay", "Silty clay", "Clay" + ) +) + + +tag_soils <- paste0("soil__", rownames(soils)) + + +#--- Estimate SWRCp ------ +swrcps <- lapply( + list_swrcs_pdfs, + function(sp){ + rSOILWAT2::pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "fcoarse"], + swrc_name = sp[1], + pdf_name = sp[2] + ) + } +) + + +#--- Calculate phi ------ +phi_sim <- mapply( + function(sp, ps) { + rSOILWAT2::swrc_vwc_to_swp( + thetas, + swrc = list(name = sp[1], swrcp = ps) + ) + }, + list_swrcs_pdfs, + swrcps, + SIMPLIFY = FALSE +) + + + +#--- * Prepare calculated phi ------ +tmp <- mapply( + function(sp, theta, phi) { + data.frame( + SWRC = sp[1], + PDF = sp[2], + `SWRC-PDF` = paste(sp, collapse = "-"), + theta = theta, + { + colnames(phi) <- tag_soils + phi + } + ) + }, + list_swrcs_pdfs, + lapply(seq_along(list_swrcs_pdfs), function(k) thetas), + phi_sim, + SIMPLIFY = FALSE +) + +x_phi <- reshape( + do.call(rbind, tmp), + direction = "long", + varying = tag_soils, + sep = "__" +) + +# beautify +x_phi[, "time"] <- gsub(".", " ", x_phi[, "time"], fixed = TRUE) +colnames(x_phi)[colnames(x_phi) == "time"] <- "soil texture" +colnames(x_phi)[colnames(x_phi) == "soil"] <- "phi" +colnames(x_phi)[colnames(x_phi) == "SWRC.PDF"] <- "SWRC-PDF" + + + + +#--- * Figure of phi: compare curves among soil textures within a SWRC ------ +fname1 <- file.path("Fig_SOILWAT2_SWRCs-PDFs_Curves-phi_SoilTextures.pdf") + +if (!file.exists(fname1)) { + tmp <- ggplot2::ggplot(x_phi) + + ggplot2::geom_line( + ggplot2::aes( + x = theta, + y = -phi, + color = `soil texture`, + linetype = `soil texture` + ) + ) + + ggplot2::geom_hline( + yintercept = c(0.033, 1.5, 30), + color = "gray", + linetype = "dotted" + ) + + ggplot2::facet_wrap(ggplot2::vars(`SWRC-PDF`)) + + ggplot2::scale_y_log10(limits = c(1e-4, 1e3)) + + ggplot2::xlab(Volumetric~Water~Content~~(cm^3/cm^3)) + + ggplot2::ylab(Matric~~Potential~~(-MPa)) + + egg::theme_article() + + + #--- Write to file + npanels <- apply( + unique(ggplot2::ggplot_build(tmp)$layout$layout[, c("ROW", "COL")]), + 2, + max + ) + + pdf( + file = fname1, + height = 4 * npanels[1], + width = 5 * (npanels[2] + 0.5) + ) + plot(tmp) + dev.off() +} + + + +#--- * Figure of phi: compare curves among SWRCs within each soil texture ------ +fname2 <- file.path(".", "Fig_SOILWAT2_SWRCs-PDFs_Curves-phi_SWRCs.pdf") + +if (!file.exists(fname2)) { + tmp <- ggplot2::ggplot(x_phi) + + ggplot2::geom_line( + ggplot2::aes( + x = theta, + y = -phi, + color = `SWRC-PDF`, + linetype = `SWRC-PDF` + ) + ) + + ggplot2::geom_hline( + yintercept = c(0.033, 1.5, 30), + color = "gray", + linetype = "dotted" + ) + + ggplot2::facet_wrap(ggplot2::vars(`soil texture`)) + + ggplot2::scale_y_log10(limits = c(1e-4, 1e3)) + + ggplot2::xlab(Volumetric~Water~Content~~(cm^3/cm^3)) + + ggplot2::ylab(Matric~~Potential~~(-MPa)) + + egg::theme_article() + + + #--- Write to file + npanels <- apply( + unique(ggplot2::ggplot_build(tmp)$layout$layout[, c("ROW", "COL")]), + 2, + max + ) + + pdf( + file = fname2, + height = 3 * npanels[1], + width = 4 * (npanels[2] + 0.5) + ) + plot(tmp) + dev.off() +} + + + + +#--- Calculate theta ------ +theta_sim <- mapply( + function(sp, ps) { + rSOILWAT2::swrc_swp_to_vwc( + phis, + swrc = list(name = sp[1], swrcp = ps) + ) + }, + list_swrcs_pdfs, + swrcps, + SIMPLIFY = FALSE +) + + + +#--- * Prepare calculated theta ------ +tmp <- mapply( + function(sp, theta, phi) { + data.frame( + SWRC = sp[1], + PDF = sp[2], + `SWRC-PDF` = paste(sp, collapse = "-"), + phi = phi, + { + colnames(theta) <- tag_soils + theta + } + ) + }, + list_swrcs_pdfs, + theta_sim, + lapply(seq_along(list_swrcs_pdfs), function(k) phis), + SIMPLIFY = FALSE +) + +x_theta <- reshape( + do.call(rbind, tmp), + direction = "long", + varying = tag_soils, + sep = "__" +) + +# beautify +x_theta[, "time"] <- gsub(".", " ", x_theta[, "time"], fixed = TRUE) +colnames(x_theta)[colnames(x_theta) == "time"] <- "soil texture" +colnames(x_theta)[colnames(x_theta) == "soil"] <- "theta" +colnames(x_theta)[colnames(x_theta) == "SWRC.PDF"] <- "SWRC-PDF" + + + + +#--- * Figure of theta: compare curves among soil textures within a SWRC ------ +fname1 <- file.path("Fig_SOILWAT2_SWRCs-PDFs_Curves-theta_SoilTextures.pdf") + +if (!file.exists(fname1)) { + tmp <- ggplot2::ggplot(x_theta) + + ggplot2::geom_line( + ggplot2::aes( + x = -phi, + y = theta, + color = `soil texture`, + linetype = `soil texture` + ) + ) + + ggplot2::geom_vline( + xintercept = c(0.033, 1.5, 30), + color = "gray", + linetype = "dotted" + ) + + ggplot2::facet_wrap(ggplot2::vars(`SWRC-PDF`)) + + ggplot2::scale_x_log10(limits = c(1e-4, 1e3)) + + ggplot2::xlab(Matric~~Potential~~(-MPa)) + + ggplot2::ylab(Volumetric~Water~Content~~(cm^3/cm^3)) + + egg::theme_article() + + + #--- Write to file + npanels <- apply( + unique(ggplot2::ggplot_build(tmp)$layout$layout[, c("ROW", "COL")]), + 2, + max + ) + + pdf( + file = fname1, + height = 4 * npanels[1], + width = 5 * (npanels[2] + 0.5) + ) + plot(tmp) + dev.off() +} + + + +#--- * Figure of theta: compare curves among SWRCs within each soil texture ------ +fname2 <- file.path(".", "Fig_SOILWAT2_SWRCs-PDFs_Curves-theta_SWRCs.pdf") + +if (!file.exists(fname2)) { + tmp <- ggplot2::ggplot(x_theta) + + ggplot2::geom_line( + ggplot2::aes( + x = -phi, + y = theta, + color = `SWRC-PDF`, + linetype = `SWRC-PDF` + ) + ) + + ggplot2::geom_vline( + xintercept = c(0.033, 1.5, 30), + color = "gray", + linetype = "dotted" + ) + + ggplot2::facet_wrap(ggplot2::vars(`soil texture`)) + + ggplot2::scale_x_log10(limits = c(1e-4, 1e3)) + + ggplot2::xlab(Matric~~Potential~~(-MPa)) + + ggplot2::ylab(Volumetric~Water~Content~~(cm^3/cm^3)) + + egg::theme_article() + + + #--- Write to file + npanels <- apply( + unique(ggplot2::ggplot_build(tmp)$layout$layout[, c("ROW", "COL")]), + 2, + max + ) + + pdf( + file = fname2, + height = 3 * npanels[1], + width = 4 * (npanels[2] + 0.5) + ) + plot(tmp) + dev.off() +} From db421e4757e8907a86e50792e842c6b95624c89c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 7 Mar 2022 08:05:56 -0500 Subject: [PATCH 031/238] Update SOILWAT2 to latest commit on feature_swrc - updates include: * Fix `remove_from_soil()`: avoid division by zero if saturated (and SWRC returns swp = 0) * improve SWRC SWP<->SWC behavior in edge cases; note: this commit causes tiny deviations in the output of the "testing" example (related to days with very wet conditions) --- inst/extdata/example1/Input/swrc_params.in | 2 +- .../Input/swrc_params_vanGenuchten1980.in | 28 +++++++++++++++++++ src/SOILWAT2 | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 inst/extdata/example1/Input/swrc_params_vanGenuchten1980.in diff --git a/inst/extdata/example1/Input/swrc_params.in b/inst/extdata/example1/Input/swrc_params.in index 86748782..b5e845ff 100644 --- a/inst/extdata/example1/Input/swrc_params.in +++ b/inst/extdata/example1/Input/swrc_params.in @@ -7,7 +7,7 @@ # - unused columns are ignored (if selected SWRC uses fewer than 6 parameters) # swrc = "Campbell1974" (default values below) -# * param1 = "saturation" soil water matric potential [-bar] +# * param1 = air-entry suction [cm] # * param2 = saturated volumetric water content for the matric component [cm/cm] # * param3 = b, slope of the linear log-log retention curve [-] diff --git a/inst/extdata/example1/Input/swrc_params_vanGenuchten1980.in b/inst/extdata/example1/Input/swrc_params_vanGenuchten1980.in new file mode 100644 index 00000000..f766aca6 --- /dev/null +++ b/inst/extdata/example1/Input/swrc_params_vanGenuchten1980.in @@ -0,0 +1,28 @@ +#------ Input for Soil Water Retention Curves (by soil layer) ------ + +# A table with up to `MAX_LAYERS` rows (soil layers) and 6 columns: +# - the soil layers must match `soils.in` +# - the interpretation of columns (SWRC parameters) depends on the +# selected SWRC (see `siteparam.in`) +# - unused columns are ignored (if selected SWRC uses fewer than 6 parameters) + +# swrc = "Campbell1974" +# * param1 = air-entry suction [cm] +# * param2 = saturated volumetric water content for the matric component [cm/cm] +# * param3 = b, slope of the linear log-log retention curve [-] + +# swrc = "vanGenuchten1980" (values below, from "Rosetta3") +# * param1 = residual volumetric water content for the matric component [cm/cm] +# * param2 = saturated volumetric water content for the matric component [cm/cm] +# * param3 = alpha, related to the inverse of air entry suction [cm-1] +# * param4 = n, measure of the pore-size distribution [-] + +# param1 param2 param3 param4 param5 param6 +0.07564425 0.3925437 0.010035788 1.412233 0 0 +0.10061329 0.4011315 0.009425738 1.352274 0 0 +0.12060752 0.4278807 0.010424896 1.287923 0 0 +0.12336711 0.4393192 0.010807529 1.274654 0 0 +0.12461498 0.4444546 0.011155912 1.267327 0 0 +0.12480807 0.4426857 0.011408809 1.264873 0 0 +0.10129327 0.3878319 0.014241212 1.311722 0 0 +0.10129327 0.3878319 0.014241212 1.311722 0 0 diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 2db03e92..f2f4e00b 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 2db03e92945f2628245db6e422aaa71378cd4910 +Subproject commit f2f4e00b512d4befbb712423be9ddb5c4e95b73b From 6e95e0ed28755785d7edcd2afb0e485f230c654d Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 9 Mar 2022 16:58:46 -0500 Subject: [PATCH 032/238] Update to the latest SOILWAT2 commit - fixed `SWRC_PDF_swcBulk_minimum()` for "NoPDF" --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index f2f4e00b..0db12d3d 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit f2f4e00b512d4befbb712423be9ddb5c4e95b73b +Subproject commit 0db12d3da3de2849bf9a7e212fb4768d02bef583 From f4eb9a0b0e0a74415b0352cc5fd13b69c9fb7144 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 9 Mar 2022 17:47:58 -0500 Subject: [PATCH 033/238] Improve code style --- R/A_swGenericMethods.R | 1263 ++++++++++----- R/B_swFiles.R | 334 ++-- R/C_swYears.R | 52 +- R/D_swCarbon.R | 42 +- R/D_swCloud.R | 62 +- R/D_swMarkov.R | 45 +- R/D_swWeather.R | 129 +- R/D_swWeatherData.R | 21 +- R/E_swProd.R | 299 ++-- R/F_swSite.R | 171 ++- R/F_swSoils.R | 6 +- R/G_swOut.R | 162 +- R/H_swSWC.R | 76 +- R/I_swEstab.R | 114 +- R/K_swContainer.R | 1350 ++++++++++++----- R/rSOILWAT2_deprecated.R | 7 + R/swWeatherGenerator.R | 543 +++++-- R/sw_Pedotransfer_Functions.R | 2 +- R/sw_dbW_WeatherDatabase.R | 41 +- R/sw_dbW_upgrade.R | 24 +- man/check_updatedDB.Rd | 14 + man/dbW_addFromFolders.Rd | 25 + man/dbW_addSite.Rd | 20 + man/dbW_convert_to_GregorianYears.Rd | 23 +- man/list_matched_swrcs_pdfs.Rd | 2 +- tests/testthat/test_WeatherData.R | 2 - .../test_WeatherGenerator_functionality.R | 118 +- tests/testthat/test_class_swProd.R | 52 +- tests/testthat/test_class_swSite.R | 35 +- tests/testthat/test_pedotransferfunctions.R | 43 +- vignettes/rSOILWAT2_WeatherDatabase.Rmd | 10 +- 31 files changed, 3505 insertions(+), 1582 deletions(-) create mode 100644 man/check_updatedDB.Rd create mode 100644 man/dbW_addFromFolders.Rd create mode 100644 man/dbW_addSite.Rd diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index bc5e92e8..6543bb1a 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -186,278 +186,362 @@ setGeneric("get_swFiles", function(object) standardGeneric("get_swFiles")) #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_ProjDir", - function(object) standardGeneric("swFiles_ProjDir")) +setGeneric( + "swFiles_ProjDir", + function(object) standardGeneric("swFiles_ProjDir") +) #' \code{swFiles_filesIn} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_filesIn", - function(object) standardGeneric("swFiles_filesIn")) +setGeneric( + "swFiles_filesIn", + function(object) standardGeneric("swFiles_filesIn") +) #' \code{swFiles_Years} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Years", function(object) standardGeneric("swFiles_Years")) +setGeneric( + "swFiles_Years", + function(object) standardGeneric("swFiles_Years") +) #' \code{swFiles_LogFile} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_LogFile", - function(object) standardGeneric("swFiles_LogFile")) +setGeneric( + "swFiles_LogFile", + function(object) standardGeneric("swFiles_LogFile") +) #' \code{swFiles_SiteParams} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SiteParams", - function(object) standardGeneric("swFiles_SiteParams")) +setGeneric( + "swFiles_SiteParams", + function(object) standardGeneric("swFiles_SiteParams") +) #' \code{swFiles_Soils} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Soils", function(object) standardGeneric("swFiles_Soils")) +setGeneric( + "swFiles_Soils", + function(object) standardGeneric("swFiles_Soils") +) #' \code{swFiles_SWRCp} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SWRCp", function(object) standardGeneric("swFiles_SWRCp")) +setGeneric( + "swFiles_SWRCp", + function(object) standardGeneric("swFiles_SWRCp") +) #' \code{swFiles_WeatherSetup} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_WeatherSetup", function(object) - standardGeneric("swFiles_WeatherSetup")) +setGeneric( + "swFiles_WeatherSetup", + function(object) standardGeneric("swFiles_WeatherSetup") +) #' \code{swFiles_MarkovProbs} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_MarkovProbs", - function(object) standardGeneric("swFiles_MarkovProbs")) +setGeneric( + "swFiles_MarkovProbs", + function(object) standardGeneric("swFiles_MarkovProbs") +) #' \code{swFiles_MarkovCov} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_MarkovCov", - function(object) standardGeneric("swFiles_MarkovCov")) +setGeneric( + "swFiles_MarkovCov", + function(object) standardGeneric("swFiles_MarkovCov") +) #' \code{swFiles_Cloud} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Cloud", function(object) standardGeneric("swFiles_Cloud")) +setGeneric( + "swFiles_Cloud", + function(object) standardGeneric("swFiles_Cloud") +) #' \code{swFiles_Prod} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Prod", function(object) standardGeneric("swFiles_Prod")) +setGeneric( + "swFiles_Prod", + function(object) standardGeneric("swFiles_Prod") +) #' \code{swFiles_Estab} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Estab", function(object) standardGeneric("swFiles_Estab")) +setGeneric( + "swFiles_Estab", + function(object) standardGeneric("swFiles_Estab") +) #' \code{swFiles_Carbon} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Carbon", function(object) standardGeneric("swFiles_Carbon")) +setGeneric( + "swFiles_Carbon", + function(object) standardGeneric("swFiles_Carbon") +) #' \code{swFiles_SWCsetup} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SWCsetup", - function(object) standardGeneric("swFiles_SWCsetup")) +setGeneric( + "swFiles_SWCsetup", + function(object) standardGeneric("swFiles_SWCsetup") +) #' \code{swFiles_Output} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Output", function(object) standardGeneric("swFiles_Output")) +setGeneric( + "swFiles_Output", + function(object) standardGeneric("swFiles_Output") +) #' \code{swFiles_WeatherPrefix} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_WeatherPrefix", - function(object) standardGeneric("swFiles_WeatherPrefix")) +setGeneric( + "swFiles_WeatherPrefix", + function(object) standardGeneric("swFiles_WeatherPrefix") +) #' \code{swFiles_OutputPrefix} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_OutputPrefix", - function(object) standardGeneric("swFiles_OutputPrefix")) +setGeneric( + "swFiles_OutputPrefix", + function(object) standardGeneric("swFiles_OutputPrefix") +) #' \code{set_swFiles} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swFiles<-}} doesn't work. #' @export -setGeneric("set_swFiles", - function(object, value) standardGeneric("set_swFiles")) +setGeneric( + "set_swFiles", + function(object, value) standardGeneric("set_swFiles") +) #' \code{set_swFiles<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("set_swFiles<-", - function(object, value) standardGeneric("set_swFiles<-")) +setGeneric( + "set_swFiles<-", + function(object, value) standardGeneric("set_swFiles<-") +) #' \code{swFiles_ProjDir<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_ProjDir<-", - function(object, value) standardGeneric("swFiles_ProjDir<-")) +setGeneric( + "swFiles_ProjDir<-", + function(object, value) standardGeneric("swFiles_ProjDir<-") +) #' \code{swFiles_filesIn<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_filesIn<-", - function(object, value) standardGeneric("swFiles_filesIn<-")) +setGeneric( + "swFiles_filesIn<-", + function(object, value) standardGeneric("swFiles_filesIn<-") +) #' \code{swFiles_Years<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Years<-", - function(object, value) standardGeneric("swFiles_Years<-")) +setGeneric( + "swFiles_Years<-", + function(object, value) standardGeneric("swFiles_Years<-") +) #' \code{swFiles_LogFile<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_LogFile<-", - function(object, value) standardGeneric("swFiles_LogFile<-")) +setGeneric( + "swFiles_LogFile<-", + function(object, value) standardGeneric("swFiles_LogFile<-") +) #' \code{swFiles_SiteParams<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SiteParams<-", - function(object, value) standardGeneric("swFiles_SiteParams<-")) +setGeneric( + "swFiles_SiteParams<-", + function(object, value) standardGeneric("swFiles_SiteParams<-") +) #' \code{swFiles_Soils<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Soils<-", - function(object, value) standardGeneric("swFiles_Soils<-")) +setGeneric( + "swFiles_Soils<-", + function(object, value) standardGeneric("swFiles_Soils<-") +) #' \code{swFiles_SWRCp<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SWRCp<-", - function(object, value) standardGeneric("swFiles_SWRCp<-")) +setGeneric( + "swFiles_SWRCp<-", + function(object, value) standardGeneric("swFiles_SWRCp<-") +) #' \code{swFiles_WeatherSetup<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_WeatherSetup<-", - function(object, value) standardGeneric("swFiles_WeatherSetup<-")) +setGeneric( + "swFiles_WeatherSetup<-", + function(object, value) standardGeneric("swFiles_WeatherSetup<-") +) #' \code{swFiles_MarkovProbs<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_MarkovProbs<-", - function(object, value) standardGeneric("swFiles_MarkovProbs<-")) +setGeneric( + "swFiles_MarkovProbs<-", + function(object, value) standardGeneric("swFiles_MarkovProbs<-") +) #' \code{swFiles_MarkovCov<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_MarkovCov<-", - function(object, value) standardGeneric("swFiles_MarkovCov<-")) +setGeneric( + "swFiles_MarkovCov<-", + function(object, value) standardGeneric("swFiles_MarkovCov<-") +) #' \code{swFiles_Cloud<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Cloud<-", - function(object, value) standardGeneric("swFiles_Cloud<-")) +setGeneric( + "swFiles_Cloud<-", + function(object, value) standardGeneric("swFiles_Cloud<-") +) #' \code{swFiles_Prod<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Prod<-", - function(object, value) standardGeneric("swFiles_Prod<-")) +setGeneric( + "swFiles_Prod<-", + function(object, value) standardGeneric("swFiles_Prod<-") +) #' \code{swFiles_Estab<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Estab<-", - function(object, value) standardGeneric("swFiles_Estab<-")) +setGeneric( + "swFiles_Estab<-", + function(object, value) standardGeneric("swFiles_Estab<-") +) #' \code{swFiles_Carbon<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Carbon<-", - function(object, value) standardGeneric("swFiles_Carbon<-")) +setGeneric( + "swFiles_Carbon<-", + function(object, value) standardGeneric("swFiles_Carbon<-") +) #' \code{swFiles_SWCsetup<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_SWCsetup<-", - function(object, value) standardGeneric("swFiles_SWCsetup<-")) +setGeneric( + "swFiles_SWCsetup<-", + function(object, value) standardGeneric("swFiles_SWCsetup<-") +) #' \code{swFiles_Output<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_Output<-", - function(object, value) standardGeneric("swFiles_Output<-")) +setGeneric( + "swFiles_Output<-", + function(object, value) standardGeneric("swFiles_Output<-") +) #' \code{swFiles_WeatherPrefix<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_WeatherPrefix<-", - function(object, value) standardGeneric("swFiles_WeatherPrefix<-")) +setGeneric( + "swFiles_WeatherPrefix<-", + function(object, value) standardGeneric("swFiles_WeatherPrefix<-") +) #' \code{swFiles_OutputPrefix<-} #' @param object An object of class \code{\linkS4class{swFiles}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swFiles}} and \code{\linkS4class{swInputData}} -setGeneric("swFiles_OutputPrefix<-", - function(object, value) standardGeneric("swFiles_OutputPrefix<-")) +setGeneric( + "swFiles_OutputPrefix<-", + function(object, value) standardGeneric("swFiles_OutputPrefix<-") +) ######################## ########YEARS########### @@ -465,96 +549,124 @@ setGeneric("swFiles_OutputPrefix<-", #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("get_swYears", function(object) standardGeneric("get_swYears")) +setGeneric( + "get_swYears", + function(object) standardGeneric("get_swYears") +) #' \code{swYears_StartYear} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_StartYear", - function(object) standardGeneric("swYears_StartYear")) +setGeneric( + "swYears_StartYear", + function(object) standardGeneric("swYears_StartYear") +) #' \code{swYears_EndYear} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_EndYear", - function(object) standardGeneric("swYears_EndYear")) +setGeneric( + "swYears_EndYear", + function(object) standardGeneric("swYears_EndYear") +) #' \code{swYears_FDOFY} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_FDOFY", - function(object) standardGeneric("swYears_FDOFY")) +setGeneric( + "swYears_FDOFY", + function(object) standardGeneric("swYears_FDOFY") +) #' \code{swYears_EDOEY} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_EDOEY", function(object) standardGeneric("swYears_EDOEY")) +setGeneric( + "swYears_EDOEY", + function(object) standardGeneric("swYears_EDOEY") +) #' \code{swYears_isNorth} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_isNorth", - function(object) standardGeneric("swYears_isNorth")) +setGeneric( + "swYears_isNorth", + function(object) standardGeneric("swYears_isNorth") +) #' \code{set_swYears} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swYears<-}} doesn't work. #' @export -setGeneric("set_swYears", - function(object, value) standardGeneric("set_swYears")) +setGeneric( + "set_swYears", + function(object, value) standardGeneric("set_swYears") +) #' \code{set_swYears<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("set_swYears<-", - function(object, value) standardGeneric("set_swYears<-")) +setGeneric( + "set_swYears<-", + function(object, value) standardGeneric("set_swYears<-") +) #' \code{swYears_StartYear<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_StartYear<-", - function(object, value) standardGeneric("swYears_StartYear<-")) +setGeneric( + "swYears_StartYear<-", + function(object, value) standardGeneric("swYears_StartYear<-") +) #' \code{swYears_EndYear<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_EndYear<-", - function(object, value) standardGeneric("swYears_EndYear<-")) +setGeneric( + "swYears_EndYear<-", + function(object, value) standardGeneric("swYears_EndYear<-") +) #' \code{swYears_FDOFY<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_FDOFY<-", - function(object, value) standardGeneric("swYears_FDOFY<-")) +setGeneric( + "swYears_FDOFY<-", + function(object, value) standardGeneric("swYears_FDOFY<-") +) #' \code{swYears_EDOEY<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_EDOEY<-", - function(object, value) standardGeneric("swYears_EDOEY<-")) +setGeneric( + "swYears_EDOEY<-", + function(object, value) standardGeneric("swYears_EDOEY<-") +) #' \code{swYears_isNorth<-} #' @param object An object of class \code{\linkS4class{swYears}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swYears}} and \code{\linkS4class{swInputData}} -setGeneric("swYears_isNorth<-", - function(object, value) standardGeneric("swYears_isNorth<-")) +setGeneric( + "swYears_isNorth<-", + function(object, value) standardGeneric("swYears_isNorth<-") +) ######################## ########WEATHER######### @@ -562,142 +674,182 @@ setGeneric("swYears_isNorth<-", #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("get_swWeather", function(object) standardGeneric("get_swWeather")) +setGeneric( + "get_swWeather", + function(object) standardGeneric("get_swWeather") +) #' \code{swWeather_DaysRunningAverage} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_DaysRunningAverage", - function(object) standardGeneric("swWeather_DaysRunningAverage")) +setGeneric( + "swWeather_DaysRunningAverage", + function(object) standardGeneric("swWeather_DaysRunningAverage") +) #' \code{swWeather_FirstYearHistorical} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_FirstYearHistorical", - function(object) standardGeneric("swWeather_FirstYearHistorical")) +setGeneric( + "swWeather_FirstYearHistorical", + function(object) standardGeneric("swWeather_FirstYearHistorical") +) #' \code{swWeather_pct_SnowDrift} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_pct_SnowDrift", - function(object) standardGeneric("swWeather_pct_SnowDrift")) +setGeneric( + "swWeather_pct_SnowDrift", + function(object) standardGeneric("swWeather_pct_SnowDrift") +) #' \code{swWeather_pct_SnowRunoff} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_pct_SnowRunoff", - function(object) standardGeneric("swWeather_pct_SnowRunoff")) +setGeneric( + "swWeather_pct_SnowRunoff", + function(object) standardGeneric("swWeather_pct_SnowRunoff") +) #' \code{swWeather_UseMarkov} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseMarkov", - function(object) standardGeneric("swWeather_UseMarkov")) +setGeneric( + "swWeather_UseMarkov", + function(object) standardGeneric("swWeather_UseMarkov") +) #' \code{swWeather_UseMarkovOnly} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseMarkovOnly", - function(object) standardGeneric("swWeather_UseMarkovOnly")) +setGeneric( + "swWeather_UseMarkovOnly", + function(object) standardGeneric("swWeather_UseMarkovOnly") +) #' \code{swWeather_UseSnow} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseSnow", - function(object) standardGeneric("swWeather_UseSnow")) +setGeneric( + "swWeather_UseSnow", + function(object) standardGeneric("swWeather_UseSnow") +) #' \code{swWeather_MonScalingParams} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_MonScalingParams", - function(object) standardGeneric("swWeather_MonScalingParams")) +setGeneric( + "swWeather_MonScalingParams", + function(object) standardGeneric("swWeather_MonScalingParams") +) #' \code{set_swWeather} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swWeather<-}} doesn't work. #' @export -setGeneric("set_swWeather", - function(object, value) standardGeneric("set_swWeather")) +setGeneric( + "set_swWeather", + function(object, value) standardGeneric("set_swWeather") +) #' \code{set_swWeather<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("set_swWeather<-", signature = "object", function(object, value) - standardGeneric("set_swWeather<-")) +setGeneric( + "set_swWeather<-", + signature = "object", + function(object, value) standardGeneric("set_swWeather<-") +) #' \code{swWeather_DaysRunningAverage<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_DaysRunningAverage<-", - function(object, value) standardGeneric("swWeather_DaysRunningAverage<-")) +setGeneric( + "swWeather_DaysRunningAverage<-", + function(object, value) standardGeneric("swWeather_DaysRunningAverage<-") +) #' \code{swWeather_FirstYearHistorical<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_FirstYearHistorical<-", - function(object, value) standardGeneric("swWeather_FirstYearHistorical<-")) +setGeneric( + "swWeather_FirstYearHistorical<-", + function(object, value) standardGeneric("swWeather_FirstYearHistorical<-") +) #' \code{swWeather_pct_SnowDrift<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_pct_SnowDrift<-", - function(object, value) standardGeneric("swWeather_pct_SnowDrift<-")) +setGeneric( + "swWeather_pct_SnowDrift<-", + function(object, value) standardGeneric("swWeather_pct_SnowDrift<-") +) #' \code{swWeather_pct_SnowRunoff<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_pct_SnowRunoff<-", - function(object, value) standardGeneric("swWeather_pct_SnowRunoff<-")) +setGeneric( + "swWeather_pct_SnowRunoff<-", + function(object, value) standardGeneric("swWeather_pct_SnowRunoff<-") +) #' \code{swWeather_UseMarkov<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseMarkov<-", - function(object, value) standardGeneric("swWeather_UseMarkov<-")) +setGeneric( + "swWeather_UseMarkov<-", + function(object, value) standardGeneric("swWeather_UseMarkov<-") +) #' \code{swWeather_UseMarkovOnly<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseMarkovOnly<-", - function(object, value) standardGeneric("swWeather_UseMarkovOnly<-")) +setGeneric( + "swWeather_UseMarkovOnly<-", + function(object, value) standardGeneric("swWeather_UseMarkovOnly<-") +) #' \code{swWeather_UseSnow<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_UseSnow<-", - function(object, value) standardGeneric("swWeather_UseSnow<-")) +setGeneric( + "swWeather_UseSnow<-", + function(object, value) standardGeneric("swWeather_UseSnow<-") +) #' \code{swWeather_MonScalingParams<-} #' @param object An object of class \code{\linkS4class{swWeather}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeather}} and \code{\linkS4class{swInputData}} -setGeneric("swWeather_MonScalingParams<-", - function(object, value) standardGeneric("swWeather_MonScalingParams<-")) +setGeneric( + "swWeather_MonScalingParams<-", + function(object, value) standardGeneric("swWeather_MonScalingParams<-") +) ######################## ########MARKOV########## @@ -705,50 +857,69 @@ setGeneric("swWeather_MonScalingParams<-", #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("get_Markov", function(object) standardGeneric("get_Markov")) +setGeneric( + "get_Markov", + function(object) standardGeneric("get_Markov") +) + #' \code{swMarkov_Prob} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("swMarkov_Prob", function(object) standardGeneric("swMarkov_Prob")) +setGeneric( + "swMarkov_Prob", + function(object) standardGeneric("swMarkov_Prob") +) #' \code{swMarkov_Conv} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("swMarkov_Conv", function(object) standardGeneric("swMarkov_Conv")) +setGeneric( + "swMarkov_Conv", + function(object) standardGeneric("swMarkov_Conv") +) #' \code{set_Markov} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_Markov<-}} doesn't work. #' @export -setGeneric("set_Markov", function(object, value) standardGeneric("set_Markov")) +setGeneric( + "set_Markov", + function(object, value) standardGeneric("set_Markov") +) #' \code{set_Markov<-} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("set_Markov<-", - function(object, value) standardGeneric("set_Markov<-")) +setGeneric( + "set_Markov<-", + function(object, value) standardGeneric("set_Markov<-") +) #' \code{swMarkov_Prob<-} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("swMarkov_Prob<-", - function(object, value) standardGeneric("swMarkov_Prob<-")) +setGeneric( + "swMarkov_Prob<-", + function(object, value) standardGeneric("swMarkov_Prob<-") +) #' \code{swMarkov_Conv<-} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} -setGeneric("swMarkov_Conv<-", - function(object, value) standardGeneric("swMarkov_Conv<-")) +setGeneric( + "swMarkov_Conv<-", + function(object, value) standardGeneric("swMarkov_Conv<-") +) ######################## @@ -756,37 +927,47 @@ setGeneric("swMarkov_Conv<-", #' \code{get_WeatherHistory} #' @param object An object of class \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swInputData}} -setGeneric("get_WeatherHistory", - function(object) standardGeneric("get_WeatherHistory")) +setGeneric( + "get_WeatherHistory", + function(object) standardGeneric("get_WeatherHistory") +) #' \code{get_swWeatherData} #' @param object An object of class \code{\linkS4class{swWeatherData}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swWeatherData}} and #' \code{\linkS4class{swInputData}} -setGeneric("get_swWeatherData", - function(object, year) standardGeneric("get_swWeatherData")) +setGeneric( + "get_swWeatherData", + function(object, year) standardGeneric("get_swWeatherData") +) #' \code{set_WeatherHistory} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_WeatherHistory<-}} doesn't work. #' @export -setGeneric("set_WeatherHistory", - function(object, value) standardGeneric("set_WeatherHistory")) +setGeneric( + "set_WeatherHistory", + function(object, value) standardGeneric("set_WeatherHistory") +) #' \code{set_WeatherHistory<-} #' @param object An object of class \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swInputData}} -setGeneric("set_WeatherHistory<-", - function(object, value) standardGeneric("set_WeatherHistory<-")) +setGeneric( + "set_WeatherHistory<-", + function(object, value) standardGeneric("set_WeatherHistory<-") +) #' \code{set_swWeatherData} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swWeatherData<-}} doesn't work. #' @export -setGeneric("set_swWeatherData", - function(object, value) standardGeneric("set_swWeatherData")) +setGeneric( + "set_swWeatherData", + function(object, value) standardGeneric("set_swWeatherData") +) #' \code{set_swWeatherData<-} #' @param object An object of class \code{\linkS4class{swWeatherData}} or @@ -794,8 +975,10 @@ setGeneric("set_swWeatherData", #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swWeatherData}} and #' \code{\linkS4class{swInputData}} -setGeneric("set_swWeatherData<-", - function(object, value) standardGeneric("set_swWeatherData<-")) +setGeneric( + "set_swWeatherData<-", + function(object, value) standardGeneric("set_swWeatherData<-") +) ######################## #######CLOUD############ @@ -803,97 +986,124 @@ setGeneric("set_swWeatherData<-", #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("get_swCloud", function(object) standardGeneric("get_swCloud")) +setGeneric( + "get_swCloud", + function(object) standardGeneric("get_swCloud") +) #' \code{swCloud_SkyCover} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_SkyCover", - function(object) standardGeneric("swCloud_SkyCover")) +setGeneric( + "swCloud_SkyCover", + function(object) standardGeneric("swCloud_SkyCover") +) #' \code{swCloud_WindSpeed} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_WindSpeed", - function(object) standardGeneric("swCloud_WindSpeed")) +setGeneric( + "swCloud_WindSpeed", + function(object) standardGeneric("swCloud_WindSpeed") +) #' \code{swCloud_Humidity} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_Humidity", - function(object) standardGeneric("swCloud_Humidity")) +setGeneric( + "swCloud_Humidity", + function(object) standardGeneric("swCloud_Humidity") +) #' \code{swCloud_SnowDensity} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_SnowDensity", - function(object) standardGeneric("swCloud_SnowDensity")) +setGeneric( + "swCloud_SnowDensity", + function(object) standardGeneric("swCloud_SnowDensity") +) #' \code{swCloud_RainEvents} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_RainEvents", - function(object) standardGeneric("swCloud_RainEvents")) +setGeneric( + "swCloud_RainEvents", + function(object) standardGeneric("swCloud_RainEvents") +) #' \code{set_swCloud} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swCloud<-}} doesn't work. #' @export -setGeneric("set_swCloud", - function(object, value) standardGeneric("set_swCloud")) +setGeneric( + "set_swCloud", + function(object, value) standardGeneric("set_swCloud") +) #' \code{set_swCloud<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("set_swCloud<-", - function(object, value) standardGeneric("set_swCloud<-")) +setGeneric( + "set_swCloud<-", + function(object, value) standardGeneric("set_swCloud<-") +) #' \code{swCloud_SkyCover<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_SkyCover<-", - function(object, value) standardGeneric("swCloud_SkyCover<-")) +setGeneric( + "swCloud_SkyCover<-", + function(object, value) standardGeneric("swCloud_SkyCover<-") +) #' \code{swCloud_WindSpeed<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_WindSpeed<-", - function(object, value) standardGeneric("swCloud_WindSpeed<-")) +setGeneric( + "swCloud_WindSpeed<-", + function(object, value) standardGeneric("swCloud_WindSpeed<-") +) #' \code{swCloud_Humidity<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_Humidity<-", - function(object, value) standardGeneric("swCloud_Humidity<-")) +setGeneric( + "swCloud_Humidity<-", + function(object, value) standardGeneric("swCloud_Humidity<-") +) #' \code{swCloud_SnowDensity<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_SnowDensity<-", - function(object, value) standardGeneric("swCloud_SnowDensity<-")) +setGeneric( + "swCloud_SnowDensity<-", + function(object, value) standardGeneric("swCloud_SnowDensity<-") +) #' \code{swCloud_RainEvents<-} #' @param object An object of class \code{\linkS4class{swCloud}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCloud}} and \code{\linkS4class{swInputData}} -setGeneric("swCloud_RainEvents<-", - function(object, value) standardGeneric("swCloud_RainEvents<-")) +setGeneric( + "swCloud_RainEvents<-", + function(object, value) standardGeneric("swCloud_RainEvents<-") +) ######################## ########PROD############ @@ -901,235 +1111,303 @@ setGeneric("swCloud_RainEvents<-", #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("get_swProd", function(object) standardGeneric("get_swProd")) +setGeneric( + "get_swProd", + function(object) standardGeneric("get_swProd") +) #' \code{swProd_Composition} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Composition", - function(object) standardGeneric("swProd_Composition")) +setGeneric( + "swProd_Composition", + function(object) standardGeneric("swProd_Composition") +) #' \code{swProd_Albedo} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Albedo", function(object) standardGeneric("swProd_Albedo")) +setGeneric( + "swProd_Albedo", + function(object) standardGeneric("swProd_Albedo") +) #' \code{swProd_CanopyHeight} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CanopyHeight", - function(object) standardGeneric("swProd_CanopyHeight")) +setGeneric( + "swProd_CanopyHeight", + function(object) standardGeneric("swProd_CanopyHeight") +) #' \code{swProd_VegInterParam} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_VegInterParam", - function(object) standardGeneric("swProd_VegInterParam")) +setGeneric( + "swProd_VegInterParam", + function(object) standardGeneric("swProd_VegInterParam") +) #' \code{swProd_LitterInterParam} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_LitterInterParam", - function(object) standardGeneric("swProd_LitterInterParam")) +setGeneric( + "swProd_LitterInterParam", + function(object) standardGeneric("swProd_LitterInterParam") +) #' \code{swProd_EsTpartitioning_param} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_EsTpartitioning_param", - function(object) standardGeneric("swProd_EsTpartitioning_param")) +setGeneric( + "swProd_EsTpartitioning_param", + function(object) standardGeneric("swProd_EsTpartitioning_param") +) #' \code{swProd_Es_param_limit} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Es_param_limit", - function(object) standardGeneric("swProd_Es_param_limit")) +setGeneric( + "swProd_Es_param_limit", + function(object) standardGeneric("swProd_Es_param_limit") +) #' \code{swProd_Shade} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Shade", function(object) standardGeneric("swProd_Shade")) +setGeneric( + "swProd_Shade", + function(object) standardGeneric("swProd_Shade") +) #' \code{swProd_HydrRedstro_use} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_HydrRedstro_use", - function(object) standardGeneric("swProd_HydrRedstro_use")) +setGeneric( + "swProd_HydrRedstro_use", + function(object) standardGeneric("swProd_HydrRedstro_use") +) #' \code{swProd_HydrRedstro} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_HydrRedstro", - function(object) standardGeneric("swProd_HydrRedstro")) +setGeneric( + "swProd_HydrRedstro", + function(object) standardGeneric("swProd_HydrRedstro") +) #' \code{swProd_CritSoilWaterPotential} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CritSoilWaterPotential", - function(object) standardGeneric("swProd_CritSoilWaterPotential")) +setGeneric( + "swProd_CritSoilWaterPotential", + function(object) standardGeneric("swProd_CritSoilWaterPotential") +) #' \code{swProd_CO2Coefficients} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CO2Coefficients", - function(object) standardGeneric("swProd_CO2Coefficients")) +setGeneric( + "swProd_CO2Coefficients", + function(object) standardGeneric("swProd_CO2Coefficients") +) #' \code{swProd_MonProd_veg} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param vegtype The name or index of the vegetation type. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_veg", - function(object, vegtype) standardGeneric("swProd_MonProd_veg")) +setGeneric( + "swProd_MonProd_veg", + function(object, vegtype) standardGeneric("swProd_MonProd_veg") +) #' \code{swProd_MonProd_grass} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_grass", - function(object) standardGeneric("swProd_MonProd_grass")) +setGeneric( + "swProd_MonProd_grass", + function(object) standardGeneric("swProd_MonProd_grass") +) #' \code{swProd_MonProd_shrub} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_shrub", - function(object) standardGeneric("swProd_MonProd_shrub")) +setGeneric( + "swProd_MonProd_shrub", + function(object) standardGeneric("swProd_MonProd_shrub") +) #' \code{swProd_MonProd_tree} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_tree", - function(object) standardGeneric("swProd_MonProd_tree")) +setGeneric( + "swProd_MonProd_tree", + function(object) standardGeneric("swProd_MonProd_tree") +) #' \code{swProd_MonProd_forb} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_forb", - function(object) standardGeneric("swProd_MonProd_forb")) +setGeneric( + "swProd_MonProd_forb", + function(object) standardGeneric("swProd_MonProd_forb") +) #' \code{set_swProd} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swProd<-}} doesn't work. #' @export -setGeneric("set_swProd", function(object, value) standardGeneric("set_swProd")) +setGeneric( + "set_swProd", + function(object, value) standardGeneric("set_swProd") +) #' \code{set_swProd<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("set_swProd<-", - function(object, value) standardGeneric("set_swProd<-")) +setGeneric( + "set_swProd<-", + function(object, value) standardGeneric("set_swProd<-") +) #' \code{swProd_Composition<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Composition<-", - function(object, value) standardGeneric("swProd_Composition<-")) +setGeneric( + "swProd_Composition<-", + function(object, value) standardGeneric("swProd_Composition<-") +) #' \code{swProd_Albedo<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Albedo<-", - function(object, value) standardGeneric("swProd_Albedo<-")) +setGeneric( + "swProd_Albedo<-", + function(object, value) standardGeneric("swProd_Albedo<-") +) #' \code{swProd_CanopyHeight<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CanopyHeight<-", - function(object, value) standardGeneric("swProd_CanopyHeight<-")) +setGeneric( + "swProd_CanopyHeight<-", + function(object, value) standardGeneric("swProd_CanopyHeight<-") +) #' \code{swProd_VegInterParam<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_VegInterParam<-", - function(object, value) standardGeneric("swProd_VegInterParam<-")) +setGeneric( + "swProd_VegInterParam<-", + function(object, value) standardGeneric("swProd_VegInterParam<-") +) #' \code{swProd_LitterInterParam<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_LitterInterParam<-", - function(object, value) standardGeneric("swProd_LitterInterParam<-")) +setGeneric( + "swProd_LitterInterParam<-", + function(object, value) standardGeneric("swProd_LitterInterParam<-") +) #' \code{swProd_EsTpartitioning_param<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_EsTpartitioning_param<-", - function(object, value) standardGeneric("swProd_EsTpartitioning_param<-")) +setGeneric( + "swProd_EsTpartitioning_param<-", + function(object, value) standardGeneric("swProd_EsTpartitioning_param<-") +) #' \code{swProd_Es_param_limit<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Es_param_limit<-", - function(object, value) standardGeneric("swProd_Es_param_limit<-")) +setGeneric( + "swProd_Es_param_limit<-", + function(object, value) standardGeneric("swProd_Es_param_limit<-") +) #' \code{swProd_Shade<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_Shade<-", - function(object, value) standardGeneric("swProd_Shade<-")) +setGeneric( + "swProd_Shade<-", + function(object, value) standardGeneric("swProd_Shade<-") +) #' \code{swProd_HydrRedstro_use<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_HydrRedstro_use<-", - function(object, value) standardGeneric("swProd_HydrRedstro_use<-")) +setGeneric( + "swProd_HydrRedstro_use<-", + function(object, value) standardGeneric("swProd_HydrRedstro_use<-") +) #' \code{swProd_HydrRedstro<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_HydrRedstro<-", - function(object, value) standardGeneric("swProd_HydrRedstro<-")) +setGeneric( + "swProd_HydrRedstro<-", + function(object, value) standardGeneric("swProd_HydrRedstro<-") +) #' \code{swProd_CritSoilWaterPotential<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CritSoilWaterPotential<-", - function(object, value) standardGeneric("swProd_CritSoilWaterPotential<-")) +setGeneric( + "swProd_CritSoilWaterPotential<-", + function(object, value) standardGeneric("swProd_CritSoilWaterPotential<-") +) #' \code{swProd_CO2Coefficients<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_CO2Coefficients<-", - function(object, value) standardGeneric("swProd_CO2Coefficients<-")) +setGeneric( + "swProd_CO2Coefficients<-", + function(object, value) standardGeneric("swProd_CO2Coefficients<-") +) #' \code{swProd_MonProd_veg<-} #' @param object An object of class \code{\linkS4class{swProd}} or @@ -1137,40 +1415,50 @@ setGeneric("swProd_CO2Coefficients<-", #' @param vegtype The name or index of the vegetation type. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_veg<-", - function(object, vegtype, value) standardGeneric("swProd_MonProd_veg<-")) +setGeneric( + "swProd_MonProd_veg<-", + function(object, vegtype, value) standardGeneric("swProd_MonProd_veg<-") +) #' \code{swProd_MonProd_grass<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_grass<-", - function(object, value) standardGeneric("swProd_MonProd_grass<-")) +setGeneric( + "swProd_MonProd_grass<-", + function(object, value) standardGeneric("swProd_MonProd_grass<-") +) #' \code{swProd_MonProd_shrub<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_shrub<-", - function(object, value) standardGeneric("swProd_MonProd_shrub<-")) +setGeneric( + "swProd_MonProd_shrub<-", + function(object, value) standardGeneric("swProd_MonProd_shrub<-") +) #' \code{swProd_MonProd_tree<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_tree<-", - function(object, value) standardGeneric("swProd_MonProd_tree<-")) +setGeneric( + "swProd_MonProd_tree<-", + function(object, value) standardGeneric("swProd_MonProd_tree<-") +) #' \code{swProd_MonProd_forb<-} #' @param object An object of class \code{\linkS4class{swProd}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swProd}} and \code{\linkS4class{swInputData}} -setGeneric("swProd_MonProd_forb<-", - function(object, value) standardGeneric("swProd_MonProd_forb<-")) +setGeneric( + "swProd_MonProd_forb<-", + function(object, value) standardGeneric("swProd_MonProd_forb<-") +) ######################## #######SITE############# @@ -1178,7 +1466,10 @@ setGeneric("swProd_MonProd_forb<-", #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("get_swSite", function(object) standardGeneric("get_swSite")) +setGeneric( + "get_swSite", + function(object) standardGeneric("get_swSite") +) #' \code{swSite_SWRCflags} #' @param object An object of class \code{\linkS4class{swSite}} or @@ -1193,92 +1484,119 @@ setGeneric( #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SWClimits", - function(object) standardGeneric("swSite_SWClimits")) +setGeneric( + "swSite_SWClimits", + function(object) standardGeneric("swSite_SWClimits") +) #' \code{swSite_ModelFlags} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_ModelFlags", - function(object) standardGeneric("swSite_ModelFlags")) +setGeneric( + "swSite_ModelFlags", + function(object) standardGeneric("swSite_ModelFlags") +) #' \code{swSite_ModelCoefficients} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_ModelCoefficients", - function(object) standardGeneric("swSite_ModelCoefficients")) +setGeneric( + "swSite_ModelCoefficients", + function(object) standardGeneric("swSite_ModelCoefficients") +) #' \code{swSite_SnowSimulationParams} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SnowSimulationParams", - function(object) standardGeneric("swSite_SnowSimulationParams")) +setGeneric( + "swSite_SnowSimulationParams", + function(object) standardGeneric("swSite_SnowSimulationParams") +) #' \code{swSite_DrainageCoefficient} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_DrainageCoefficient", - function(object) swSite_DrainageCoefficient("swSite_DrainageCoefficient")) +setGeneric( + "swSite_DrainageCoefficient", + function(object) swSite_DrainageCoefficient("swSite_DrainageCoefficient") +) #' \code{swSite_EvapCoefficients} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_EvapCoefficients", - function(object) standardGeneric("swSite_EvapCoefficients")) +setGeneric( + "swSite_EvapCoefficients", + function(object) standardGeneric("swSite_EvapCoefficients") +) #' \code{swSite_TranspCoefficients} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_TranspCoefficients", - function(object) standardGeneric("swSite_TranspCoefficients")) +setGeneric( + "swSite_TranspCoefficients", + function(object) standardGeneric("swSite_TranspCoefficients") +) #' \code{swSite_IntrinsicSiteParams} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_IntrinsicSiteParams", - function(object) standardGeneric("swSite_IntrinsicSiteParams")) +setGeneric( + "swSite_IntrinsicSiteParams", + function(object) standardGeneric("swSite_IntrinsicSiteParams") +) #' \code{swSite_SoilTemperatureFlag} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SoilTemperatureFlag", - function(object) standardGeneric("swSite_SoilTemperatureFlag")) +setGeneric( + "swSite_SoilTemperatureFlag", + function(object) standardGeneric("swSite_SoilTemperatureFlag") +) #' \code{swSite_SoilTemperatureConsts} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SoilTemperatureConsts", - function(object) standardGeneric("swSite_SoilTemperatureConsts")) +setGeneric( + "swSite_SoilTemperatureConsts", + function(object) standardGeneric("swSite_SoilTemperatureConsts") +) #' \code{swSite_TranspirationRegions} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_TranspirationRegions", - function(object) standardGeneric("swSite_TranspirationRegions")) +setGeneric( + "swSite_TranspirationRegions", + function(object) standardGeneric("swSite_TranspirationRegions") +) #' \code{set_swSite} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swSite<-}} doesn't work. #' @export -setGeneric("set_swSite", function(object, value) standardGeneric("set_swSite")) +setGeneric( + "set_swSite", + function(object, value) standardGeneric("set_swSite") +) #' \code{set_swSite<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("set_swSite<-", - function(object, value) standardGeneric("set_swSite<-")) +setGeneric( + "set_swSite<-", + function(object, value) standardGeneric("set_swSite<-") +) #' \code{swSite_SWRCflags<-} #' @param object An object of class \code{\linkS4class{swSite}} or @@ -1294,88 +1612,110 @@ setGeneric( #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SWClimits<-", - function(object, value) standardGeneric("swSite_SWClimits<-")) +setGeneric( + "swSite_SWClimits<-", + function(object, value) standardGeneric("swSite_SWClimits<-") +) #' \code{swSite_ModelFlags<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_ModelFlags<-", - function(object, value) standardGeneric("swSite_ModelFlags<-")) +setGeneric( + "swSite_ModelFlags<-", + function(object, value) standardGeneric("swSite_ModelFlags<-") +) #' \code{swSite_ModelCoefficients<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_ModelCoefficients<-", - function(object, value) standardGeneric("swSite_ModelCoefficients<-")) +setGeneric( + "swSite_ModelCoefficients<-", + function(object, value) standardGeneric("swSite_ModelCoefficients<-") +) #' \code{swSite_SnowSimulationParams<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SnowSimulationParams<-", - function(object, value) standardGeneric("swSite_SnowSimulationParams<-")) +setGeneric( + "swSite_SnowSimulationParams<-", + function(object, value) standardGeneric("swSite_SnowSimulationParams<-") +) #' \code{swSite_DrainageCoefficient<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_DrainageCoefficient<-", - function(object, value) standardGeneric("swSite_DrainageCoefficient<-")) +setGeneric( + "swSite_DrainageCoefficient<-", + function(object, value) standardGeneric("swSite_DrainageCoefficient<-") +) #' \code{swSite_EvapCoefficients<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_EvapCoefficients<-", - function(object, value) standardGeneric("swSite_EvapCoefficients<-")) +setGeneric( + "swSite_EvapCoefficients<-", + function(object, value) standardGeneric("swSite_EvapCoefficients<-") +) #' \code{swSite_TranspCoefficients<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_TranspCoefficients<-", - function(object, value) standardGeneric("swSite_TranspCoefficients<-")) +setGeneric( + "swSite_TranspCoefficients<-", + function(object, value) standardGeneric("swSite_TranspCoefficients<-") +) #' \code{swSite_IntrinsicSiteParams<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_IntrinsicSiteParams<-", - function(object, value) standardGeneric("swSite_IntrinsicSiteParams<-")) +setGeneric( + "swSite_IntrinsicSiteParams<-", + function(object, value) standardGeneric("swSite_IntrinsicSiteParams<-") +) #' \code{swSite_SoilTemperatureFlag<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SoilTemperatureFlag<-", - function(object, value) standardGeneric("swSite_SoilTemperatureFlag<-")) +setGeneric( + "swSite_SoilTemperatureFlag<-", + function(object, value) standardGeneric("swSite_SoilTemperatureFlag<-") +) #' \code{swSite_SoilTemperatureConsts<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_SoilTemperatureConsts<-", - function(object, value) standardGeneric("swSite_SoilTemperatureConsts<-")) +setGeneric( + "swSite_SoilTemperatureConsts<-", + function(object, value) standardGeneric("swSite_SoilTemperatureConsts<-") +) #' \code{swSite_TranspirationRegions<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -setGeneric("swSite_TranspirationRegions<-", - function(object, value) standardGeneric("swSite_TranspirationRegions<-")) +setGeneric( + "swSite_TranspirationRegions<-", + function(object, value) standardGeneric("swSite_TranspirationRegions<-") +) ######################## #########SOILS########## @@ -1383,42 +1723,57 @@ setGeneric("swSite_TranspirationRegions<-", #' @param object An object of class \code{\linkS4class{swSoils}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -setGeneric("get_swSoils", function(object) standardGeneric("get_swSoils")) +setGeneric( + "get_swSoils", + function(object) standardGeneric("get_swSoils") +) #' \code{swSoils_Layers} #' @param object An object of class \code{\linkS4class{swSoils}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -setGeneric("swSoils_Layers", function(object) standardGeneric("swSoils_Layers")) +setGeneric( + "swSoils_Layers", + function(object) standardGeneric("swSoils_Layers") +) #' \code{swSoils_SWRCp} #' @param object An object of class \code{\linkS4class{swSoils}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -setGeneric("swSoils_SWRCp", function(object) standardGeneric("swSoils_SWRCp")) +setGeneric( + "swSoils_SWRCp", + function(object) standardGeneric("swSoils_SWRCp") +) #' \code{set_swSoils} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swSoils<-}} doesn't work. #' @export -setGeneric("set_swSoils", - function(object, value) standardGeneric("set_swSoils")) +setGeneric( + "set_swSoils", + function(object, value) standardGeneric("set_swSoils") +) #' \code{set_swSoils<-} #' @param object An object of class \code{\linkS4class{swSoils}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -setGeneric("set_swSoils<-", - function(object, value) standardGeneric("set_swSoils<-")) +setGeneric( + "set_swSoils<-", + function(object, value) standardGeneric("set_swSoils<-") +) #' \code{swSoils_Layers<-} #' @param object An object of class \code{\linkS4class{swSoils}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -setGeneric("swSoils_Layers<-", - function(object, value) standardGeneric("swSoils_Layers<-")) +setGeneric( + "swSoils_Layers<-", + function(object, value) standardGeneric("swSoils_Layers<-") +) #' \code{swSoils_SWRCp<-} #' @param object An object of class \code{\linkS4class{swSoils}} or @@ -1436,14 +1791,19 @@ setGeneric( #' @param object An object of class \code{\linkS4class{swEstab}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swEstab}} and \code{\linkS4class{swInputData}} -setGeneric("get_swEstab", function(object) standardGeneric("get_swEstab")) +setGeneric( + "get_swEstab", + function(object) standardGeneric("get_swEstab") +) #' \code{swEstab_useEstab} #' @param object An object of class \code{\linkS4class{swEstab}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swEstab}} and \code{\linkS4class{swInputData}} -setGeneric("swEstab_useEstab", - function(object) standardGeneric("swEstab_useEstab")) +setGeneric( + "swEstab_useEstab", + function(object) standardGeneric("swEstab_useEstab") +) #species here# #' \code{set_swEstab<-} @@ -1451,16 +1811,20 @@ setGeneric("swEstab_useEstab", #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swEstab}} and \code{\linkS4class{swInputData}} -setGeneric("set_swEstab<-", - function(object, value) standardGeneric("set_swEstab<-")) +setGeneric( + "set_swEstab<-", + function(object, value) standardGeneric("set_swEstab<-") +) #' \code{swEstab_useEstab<-} #' @param object An object of class \code{\linkS4class{swEstab}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swEstab}} and \code{\linkS4class{swInputData}} -setGeneric("swEstab_useEstab<-", - function(object, value) standardGeneric("swEstab_useEstab<-")) +setGeneric( + "swEstab_useEstab<-", + function(object, value) standardGeneric("swEstab_useEstab<-") +) #species here# ######################## @@ -1469,97 +1833,124 @@ setGeneric("swEstab_useEstab<-", #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("get_swCarbon", function(object) standardGeneric("get_swCarbon")) +setGeneric( + "get_swCarbon", + function(object) standardGeneric("get_swCarbon") +) #' \code{swCarbon_Use_Bio} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Use_Bio", - function(object) standardGeneric("swCarbon_Use_Bio")) +setGeneric( + "swCarbon_Use_Bio", + function(object) standardGeneric("swCarbon_Use_Bio") +) #' \code{swCarbon_Use_WUE} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Use_WUE", - function(object) standardGeneric("swCarbon_Use_WUE")) +setGeneric( + "swCarbon_Use_WUE", + function(object) standardGeneric("swCarbon_Use_WUE") +) #' \code{swCarbon_Scenario} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Scenario", - function(object) standardGeneric("swCarbon_Scenario")) +setGeneric( + "swCarbon_Scenario", + function(object) standardGeneric("swCarbon_Scenario") +) #' \code{swCarbon_DeltaYear} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_DeltaYear", - function(object) standardGeneric("swCarbon_DeltaYear")) +setGeneric( + "swCarbon_DeltaYear", + function(object) standardGeneric("swCarbon_DeltaYear") +) #' \code{swCarbon_CO2ppm} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_CO2ppm", - function(object) standardGeneric("swCarbon_CO2ppm")) +setGeneric( + "swCarbon_CO2ppm", + function(object) standardGeneric("swCarbon_CO2ppm") +) #' \code{set_swCarbon} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swCarbon<-}} doesn't work. #' @export -setGeneric("set_swCarbon", - function(object, value) standardGeneric("set_swCarbon")) +setGeneric( + "set_swCarbon", + function(object, value) standardGeneric("set_swCarbon") +) #' \code{set_swCarbon<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("set_swCarbon<-", - function(object, value) standardGeneric("set_swCarbon<-")) +setGeneric( + "set_swCarbon<-", + function(object, value) standardGeneric("set_swCarbon<-") +) #' \code{swCarbon_Use_Bio<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Use_Bio<-", - function(object, value) standardGeneric("swCarbon_Use_Bio<-")) +setGeneric( + "swCarbon_Use_Bio<-", + function(object, value) standardGeneric("swCarbon_Use_Bio<-") +) #' \code{swCarbon_Use_WUE<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Use_WUE<-", - function(object, value) standardGeneric("swCarbon_Use_WUE<-")) +setGeneric( + "swCarbon_Use_WUE<-", + function(object, value) standardGeneric("swCarbon_Use_WUE<-") +) #' \code{swCarbon_Scenario<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_Scenario<-", - function(object, value) standardGeneric("swCarbon_Scenario<-")) +setGeneric( + "swCarbon_Scenario<-", + function(object, value) standardGeneric("swCarbon_Scenario<-") +) #' \code{swCarbon_DeltaYear<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_DeltaYear<-", - function(object, value) standardGeneric("swCarbon_DeltaYear<-")) +setGeneric( + "swCarbon_DeltaYear<-", + function(object, value) standardGeneric("swCarbon_DeltaYear<-") +) #' \code{swCarbon_CO2ppm<-} #' @param object An object of class \code{\linkS4class{swCarbon}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swCarbon}} and \code{\linkS4class{swInputData}} -setGeneric("swCarbon_CO2ppm<-", - function(object, value) standardGeneric("swCarbon_CO2ppm<-")) +setGeneric( + "swCarbon_CO2ppm<-", + function(object, value) standardGeneric("swCarbon_CO2ppm<-") +) ######################## #########SWC############ @@ -1567,108 +1958,143 @@ setGeneric("swCarbon_CO2ppm<-", #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("get_swSWC", function(object) standardGeneric("get_swSWC")) +setGeneric( + "get_swSWC", + function(object) standardGeneric("get_swSWC") +) #' \code{swSWC_use} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_use", function(object) standardGeneric("swSWC_use")) +setGeneric( + "swSWC_use", + function(object) standardGeneric("swSWC_use") +) #' \code{swSWC_prefix} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_prefix", function(object) standardGeneric("swSWC_prefix")) +setGeneric( + "swSWC_prefix", + function(object) standardGeneric("swSWC_prefix") +) #' \code{swSWC_FirstYear} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_FirstYear", - function(object) standardGeneric("swSWC_FirstYear")) +setGeneric( + "swSWC_FirstYear", + function(object) standardGeneric("swSWC_FirstYear") +) #' \code{swSWC_Method} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_Method", function(object) standardGeneric("swSWC_Method")) +setGeneric( + "swSWC_Method", + function(object) standardGeneric("swSWC_Method") +) #' \code{swSWC_HistoricList} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_HistoricList", - function(object) standardGeneric("swSWC_HistoricList")) +setGeneric( + "swSWC_HistoricList", + function(object) standardGeneric("swSWC_HistoricList") +) #' \code{swSWC_HistoricData} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_HistoricData", - function(object, year) standardGeneric("swSWC_HistoricData")) +setGeneric( + "swSWC_HistoricData", + function(object, year) standardGeneric("swSWC_HistoricData") +) #' \code{set_swSWC} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swSWC<-}} doesn't work. #' @export -setGeneric("set_swSWC", function(object, value) standardGeneric("set_swSWC")) +setGeneric( + "set_swSWC", + function(object, value) standardGeneric("set_swSWC") +) #' \code{set_swSWC<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("set_swSWC<-", - function(object, value) standardGeneric("set_swSWC<-")) +setGeneric( + "set_swSWC<-", + function(object, value) standardGeneric("set_swSWC<-") +) #' \code{swSWC_use<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_use<-", - function(object, value) standardGeneric("swSWC_use<-")) +setGeneric( + "swSWC_use<-", + function(object, value) standardGeneric("swSWC_use<-") +) #' \code{swSWC_prefix<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_prefix<-", - function(object, value) standardGeneric("swSWC_prefix<-")) +setGeneric( + "swSWC_prefix<-", + function(object, value) standardGeneric("swSWC_prefix<-") +) #' \code{swSWC_FirstYear<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_FirstYear<-", - function(object, value) standardGeneric("swSWC_FirstYear<-")) +setGeneric( + "swSWC_FirstYear<-", + function(object, value) standardGeneric("swSWC_FirstYear<-") +) #' \code{swSWC_Method<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_Method<-", - function(object, value) standardGeneric("swSWC_Method<-")) +setGeneric( + "swSWC_Method<-", + function(object, value) standardGeneric("swSWC_Method<-") +) #' \code{swSWC_HistoricList<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_HistoricList<-", - function(object, value) standardGeneric("swSWC_HistoricList<-")) +setGeneric( + "swSWC_HistoricList<-", + function(object, value) standardGeneric("swSWC_HistoricList<-") +) #' \code{swSWC_HistoricData<-} #' @param object An object of class \code{\linkS4class{swSWC}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swSWC}} and \code{\linkS4class{swInputData}} -setGeneric("swSWC_HistoricData<-", - function(object, value) standardGeneric("swSWC_HistoricData<-")) +setGeneric( + "swSWC_HistoricData<-", + function(object, value) standardGeneric("swSWC_HistoricData<-") +) ######################## #######OUT########### @@ -1676,65 +2102,86 @@ setGeneric("swSWC_HistoricData<-", #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("get_swOUT", function(object) standardGeneric("get_swOUT")) +setGeneric( + "get_swOUT", + function(object) standardGeneric("get_swOUT") +) #' \code{swOUT_TimeStep} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("swOUT_TimeStep", function(object) standardGeneric("swOUT_TimeStep")) +setGeneric( + "swOUT_TimeStep", + function(object) standardGeneric("swOUT_TimeStep") +) #' \code{swOUT_OutputSeparator} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("swOUT_OutputSeparator", - function(object) standardGeneric("swOUT_OutputSeparator")) +setGeneric( + "swOUT_OutputSeparator", + function(object) standardGeneric("swOUT_OutputSeparator") +) #' \code{set_swOUT} #' Need to define and export this generic method -- otherwise, #' \code{\link{set_swOUT<-}} doesn't work. #' @export -setGeneric("set_swOUT", function(object, value) standardGeneric("set_swOUT")) +setGeneric( + "set_swOUT", + function(object, value) standardGeneric("set_swOUT") +) #' \code{set_swOUT<-} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("set_swOUT<-", - function(object, value) standardGeneric("set_swOUT<-")) +setGeneric( + "set_swOUT<-", + function(object, value) standardGeneric("set_swOUT<-") +) #' \code{swOUT_TimeStep<-} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("swOUT_TimeStep<-", - function(object, value) standardGeneric("swOUT_TimeStep<-")) +setGeneric( + "swOUT_TimeStep<-", + function(object, value) standardGeneric("swOUT_TimeStep<-") +) #' \code{swOUT_TimeStepsForEveryKey} #' Need to define and export this generic method -- otherwise, #' \code{\link{swOUT_TimeStepsForEveryKey<-}} doesn't work. #' @export -setGeneric("swOUT_TimeStepsForEveryKey", - function(object, value) standardGeneric("swOUT_TimeStepsForEveryKey")) +setGeneric( + "swOUT_TimeStepsForEveryKey", + function(object, value) standardGeneric("swOUT_TimeStepsForEveryKey") +) #' \code{swOUT_TimeStepsForEveryKey<-} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("swOUT_TimeStepsForEveryKey<-", - function(object, value) standardGeneric("swOUT_TimeStepsForEveryKey<-")) +setGeneric( + "swOUT_TimeStepsForEveryKey<-", + function(object, value) standardGeneric("swOUT_TimeStepsForEveryKey<-") +) #' \code{swOUT_OutputSeparator<-} #' @param object An object of class \code{\linkS4class{swOUT}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOUT}} and \code{\linkS4class{swInputData}} -setGeneric("swOUT_OutputSeparator<-", - function(object, value) standardGeneric("swOUT_OutputSeparator<-")) +setGeneric( + "swOUT_OutputSeparator<-", + function(object, value) standardGeneric("swOUT_OutputSeparator<-") +) #' Activate/deactivate an output slot (\var{swOUT_OutKey}) #' @param object An object of class \code{\linkS4class{swOUT}} or @@ -1745,12 +2192,16 @@ setGeneric("swOUT_OutputSeparator<-", #' \code{\link{sw_exec}} #' @aliases activate_swOUT_OutKey, deactivate_swOUT_OutKey #' @name activate_swOUT_OutKey -setGeneric("activate_swOUT_OutKey<-", - function(object, value) standardGeneric("activate_swOUT_OutKey<-")) +setGeneric( + "activate_swOUT_OutKey<-", + function(object, value) standardGeneric("activate_swOUT_OutKey<-") +) #' @rdname activate_swOUT_OutKey -setGeneric("deactivate_swOUT_OutKey<-", - function(object, value) standardGeneric("deactivate_swOUT_OutKey<-")) +setGeneric( + "deactivate_swOUT_OutKey<-", + function(object, value) standardGeneric("deactivate_swOUT_OutKey<-") +) ######################## @@ -1760,8 +2211,10 @@ setGeneric("deactivate_swOUT_OutKey<-", #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swLog}} and \code{\linkS4class{swInputData}} -setGeneric("swLog_setLine<-", - function(object, value) standardGeneric("swLog_setLine<-")) +setGeneric( + "swLog_setLine<-", + function(object, value) standardGeneric("swLog_setLine<-") +) ######################## ########swOutput######## @@ -1769,58 +2222,74 @@ setGeneric("swLog_setLine<-", #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_getKEY", - function(object, index) standardGeneric("swOutput_getKEY")) +setGeneric( + "swOutput_getKEY", + function(object, index) standardGeneric("swOutput_getKEY") +) #' \code{swOutput_KEY_Period} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_Period", - function(object, index) standardGeneric("swOutput_KEY_Period")) +setGeneric( + "swOutput_KEY_Period", + function(object, index) standardGeneric("swOutput_KEY_Period") +) #' \code{swOutput_KEY_TimeStep} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_TimeStep", - function(object) standardGeneric("swOutput_KEY_TimeStep")) +setGeneric( + "swOutput_KEY_TimeStep", + function(object) standardGeneric("swOutput_KEY_TimeStep") +) #' \code{swOutput_KEY_Columns} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_Columns", - function(object) standardGeneric("swOutput_KEY_Columns")) +setGeneric( + "swOutput_KEY_Columns", + function(object) standardGeneric("swOutput_KEY_Columns") +) #' \code{swOutput_setKEY<-} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_setKEY<-", - function(object, index, value) standardGeneric("swOutput_setKEY<-")) +setGeneric( + "swOutput_setKEY<-", + function(object, index, value) standardGeneric("swOutput_setKEY<-") +) #' \code{swOutput_KEY_Period<-} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_Period<-", - function(object, index, value) standardGeneric("swOutput_KEY_Period<-")) +setGeneric( + "swOutput_KEY_Period<-", + function(object, index, value) standardGeneric("swOutput_KEY_Period<-") +) #' \code{swOutput_KEY_TimeStep<-} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_TimeStep<-", - function(object, value) standardGeneric("swOutput_KEY_TimeStep<-")) +setGeneric( + "swOutput_KEY_TimeStep<-", + function(object, value) standardGeneric("swOutput_KEY_TimeStep<-") +) #' \code{swOutput_KEY_Columns<-} #' @param object An object of class \code{\linkS4class{swOutput}} or #' \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the \code{object}. #' @seealso \code{\linkS4class{swOutput}} and \code{\linkS4class{swInputData}} -setGeneric("swOutput_KEY_Columns<-", - function(object, value) standardGeneric("swOutput_KEY_Columns<-")) +setGeneric( + "swOutput_KEY_Columns<-", + function(object, value) standardGeneric("swOutput_KEY_Columns<-") +) diff --git a/R/B_swFiles.R b/R/B_swFiles.R index 859a2f98..da159055 100644 --- a/R/B_swFiles.R +++ b/R/B_swFiles.R @@ -102,126 +102,214 @@ setValidity("swFiles", swFiles_validity) #' @rdname swFiles-class #' @export -setMethod("swFiles_ProjDir", "swFiles", function(object) { - object@ProjDir -}) +setMethod( + "swFiles_ProjDir", + "swFiles", + function(object) object@ProjDir +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_WeatherPrefix", "swFiles", function(object) { - object@WeatherPrefix -}) +setMethod( + "swFiles_WeatherPrefix", + "swFiles", + function(object) object@WeatherPrefix +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_OutputPrefix", "swFiles", function(object) { - object@OutputPrefix -}) +setMethod( + "swFiles_OutputPrefix", + "swFiles", + function(object) object@OutputPrefix +) #' @rdname swFiles-class #' @export -setMethod("swFiles_filesIn", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eFirst"]]] -}) +setMethod( + "swFiles_filesIn", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eFirst"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Years", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eModel"]]] -}) +setMethod( + "swFiles_Years", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eModel"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_LogFile", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eLog"]]] -}) +setMethod( + "swFiles_LogFile", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eLog"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_SiteParams", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSite"]]] -}) +setMethod( + "swFiles_SiteParams", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSite"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Soils", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eLayers"]]] -}) +setMethod( + "swFiles_Soils", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eLayers"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_SWRCp", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSWRCp"]]] -}) +setMethod( + "swFiles_SWRCp", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSWRCp"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_WeatherSetup", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eWeather"]]] -}) +setMethod( + "swFiles_WeatherSetup", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eWeather"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_MarkovProbs", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovProb"]]] -}) +setMethod( + "swFiles_MarkovProbs", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovProb"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_MarkovCov", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovCov"]]] -}) +setMethod( + "swFiles_MarkovCov", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovCov"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Cloud", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSky"]]] -}) +setMethod( + "swFiles_Cloud", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSky"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Prod", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eVegProd"]]] -}) +setMethod( + "swFiles_Prod", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eVegProd"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Estab", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eVegEstab"]]] -}) +setMethod( + "swFiles_Estab", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eVegEstab"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_SWCsetup", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSoilwat"]]] -}) +setMethod( + "swFiles_SWCsetup", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eSoilwat"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Carbon", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eCarbon"]]] -}) +setMethod( + "swFiles_Carbon", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eCarbon"]]] + } +) + #' @rdname swFiles-class #' @export -setMethod("swFiles_Output", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eOutput"]]] -}) +setMethod( + "swFiles_Output", + "swFiles", + function(object) { + object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eOutput"]]] + } +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_ProjDir", signature = "swFiles", +setReplaceMethod( + "swFiles_ProjDir", + signature = "swFiles", function(object, value) { - - object@ProjDir <- value - validObject(object) - object -}) + object@ProjDir <- value + validObject(object) + object + } +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_WeatherPrefix", signature = "swFiles", +setReplaceMethod( + "swFiles_WeatherPrefix", + signature = "swFiles", function(object, value) { - - object@WeatherPrefix <- value - validObject(object) - object -}) + object@WeatherPrefix <- value + validObject(object) + object + } +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_OutputPrefix", signature = "swFiles", +setReplaceMethod( + "swFiles_OutputPrefix", + signature = "swFiles", function(object, value) { - - object@OutputPrefix <- value - validObject(object) - object -}) + object@OutputPrefix <- value + validObject(object) + object + } +) set_InFiles <- function(object, eID, value) { id <- 1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][[eID]] @@ -231,28 +319,43 @@ set_InFiles <- function(object, eID, value) { #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_filesIn", signature = "swFiles", - function(object, value) set_InFiles(object, "eFirst", value)) +setReplaceMethod( + "swFiles_filesIn", + signature = "swFiles", + function(object, value) set_InFiles(object, "eFirst", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Years", signature = "swFiles", - function(object, value) set_InFiles(object, "eModel", value)) +setReplaceMethod( + "swFiles_Years", + signature = "swFiles", + function(object, value) set_InFiles(object, "eModel", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_LogFile", signature = "swFiles", - function(object, value) set_InFiles(object, "eLog", value)) +setReplaceMethod( + "swFiles_LogFile", + signature = "swFiles", + function(object, value) set_InFiles(object, "eLog", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_SiteParams", signature = "swFiles", - function(object, value) set_InFiles(object, "eSite", value)) +setReplaceMethod( + "swFiles_SiteParams", + signature = "swFiles", + function(object, value) set_InFiles(object, "eSite", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Soils", signature = "swFiles", - function(object, value) set_InFiles(object, "eLayers", value)) +setReplaceMethod( + "swFiles_Soils", + signature = "swFiles", + function(object, value) set_InFiles(object, "eLayers", value) +) #' @rdname swFiles-class #' @export @@ -264,53 +367,82 @@ setReplaceMethod( #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_WeatherSetup", signature = "swFiles", - function(object, value) set_InFiles(object, "eWeather", value)) +setReplaceMethod( + "swFiles_WeatherSetup", + signature = "swFiles", + function(object, value) set_InFiles(object, "eWeather", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_MarkovProbs", signature = "swFiles", - function(object, value) set_InFiles(object, "eMarkovProb", value)) +setReplaceMethod( + "swFiles_MarkovProbs", + signature = "swFiles", + function(object, value) set_InFiles(object, "eMarkovProb", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_MarkovCov", signature = "swFiles", - function(object, value) set_InFiles(object, "eMarkovCov", value)) +setReplaceMethod( + "swFiles_MarkovCov", + signature = "swFiles", + function(object, value) set_InFiles(object, "eMarkovCov", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Cloud", signature = "swFiles", - function(object, value) set_InFiles(object, "eSky", value)) +setReplaceMethod( + "swFiles_Cloud", + signature = "swFiles", + function(object, value) set_InFiles(object, "eSky", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Prod", signature = "swFiles", - function(object, value) set_InFiles(object, "eVegProd", value)) +setReplaceMethod( + "swFiles_Prod", + signature = "swFiles", + function(object, value) set_InFiles(object, "eVegProd", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Estab", signature = "swFiles", - function(object, value) set_InFiles(object, "eVegEstab", value)) +setReplaceMethod( + "swFiles_Estab", + signature = "swFiles", + function(object, value) set_InFiles(object, "eVegEstab", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_SWCsetup", signature = "swFiles", - function(object, value) set_InFiles(object, "eSoilwat", value)) +setReplaceMethod( + "swFiles_SWCsetup", + signature = "swFiles", + function(object, value) set_InFiles(object, "eSoilwat", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Carbon", signature = "swFiles", - function(object, value) set_InFiles(object, "eCarbon", value)) +setReplaceMethod( + "swFiles_Carbon", + signature = "swFiles", + function(object, value) set_InFiles(object, "eCarbon", value) +) #' @rdname swFiles-class #' @export -setReplaceMethod("swFiles_Output", signature = "swFiles", - function(object, value) set_InFiles(object, "eOutput", value)) +setReplaceMethod( + "swFiles_Output", + signature = "swFiles", + function(object, value) set_InFiles(object, "eOutput", value) +) #' @rdname swFiles-class #' @export -setMethod("swReadLines", signature = c(object = "swFiles", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swFiles", file = "character"), function(object, file) { print(paste("TODO: method 'swReadLines' is not up-to-date;", "hard-coded indices are incorrect")) diff --git a/R/C_swYears.R b/R/C_swYears.R index be487392..141b9ff3 100644 --- a/R/C_swYears.R +++ b/R/C_swYears.R @@ -142,54 +142,72 @@ setMethod("swYears_isNorth", "swYears", function(object) object@isNorth) #' @rdname swYears-class #' @export -setReplaceMethod("swYears_StartYear", signature = "swYears", +setReplaceMethod( + "swYears_StartYear", + signature = "swYears", function(object, value) { object@StartYear <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swYears-class #' @export -setReplaceMethod("swYears_EndYear", signature = "swYears", +setReplaceMethod( + "swYears_EndYear", + signature = "swYears", function(object, value) { object@EndYear <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swYears-class #' @export -setReplaceMethod("swYears_FDOFY", signature = "swYears", +setReplaceMethod( + "swYears_FDOFY", + signature = "swYears", function(object, value) { object@FDOFY <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swYears-class #' @export -setReplaceMethod("swYears_EDOEY", signature = "swYears", +setReplaceMethod( + "swYears_EDOEY", + signature = "swYears", function(object, value) { - object@EDOEY <- as.integer(value) - validObject(object) - object -}) + object@EDOEY <- as.integer(value) + validObject(object) + object + } +) #' @rdname swYears-class #' @export -setReplaceMethod("swYears_isNorth", signature = "swYears", +setReplaceMethod( + "swYears_isNorth", + signature = "swYears", function(object, value) { - object@isNorth <- as.logical(value) - validObject(object) - object -}) + object@isNorth <- as.logical(value) + validObject(object) + object + } +) #' @rdname swYears-class #' @export -setMethod("swReadLines", signature = c(object = "swYears", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swYears", file = "character"), function(object, file) { + stop("swReadLines is defunct") infiletext <- readLines(con = file) object@StartYear <- readInteger(infiletext[4]) object@EndYear <- readInteger(infiletext[5]) diff --git a/R/D_swCarbon.R b/R/D_swCarbon.R index fb2b8dcb..a8fab59c 100644 --- a/R/D_swCarbon.R +++ b/R/D_swCarbon.R @@ -146,55 +146,73 @@ setMethod("swCarbon_CO2ppm", "swCarbon", function(object) object@CO2ppm) #' @rdname swCarbon-class #' @export -setReplaceMethod("set_swCarbon", signature = "swCarbon", +setReplaceMethod( + "set_swCarbon", + signature = "swCarbon", function(object, value) { object <- value validObject(object) object -}) + } +) #' @rdname swCarbon-class #' @export -setReplaceMethod("swCarbon_Use_Bio", signature = "swCarbon", +setReplaceMethod( + "swCarbon_Use_Bio", + signature = "swCarbon", function(object, value) { object@CarbonUseBio <- as.integer(as.logical(value)) validObject(object) object -}) + } +) #' @rdname swCarbon-class #' @export -setReplaceMethod("swCarbon_Use_WUE", signature = "swCarbon", +setReplaceMethod( + "swCarbon_Use_WUE", + signature = "swCarbon", function(object, value) { object@CarbonUseWUE <- as.integer(as.logical(value)) validObject(object) object -}) + } +) #' @rdname swCarbon-class #' @export -setReplaceMethod("swCarbon_Scenario", signature = "swCarbon", +setReplaceMethod( + "swCarbon_Scenario", + signature = "swCarbon", function(object, value) { object@Scenario <- value validObject(object) object -}) + } +) #' @rdname swCarbon-class #' @export -setReplaceMethod("swCarbon_DeltaYear", signature = "swCarbon", +setReplaceMethod( + "swCarbon_DeltaYear", + signature = "swCarbon", function(object, value) { object@DeltaYear <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swCarbon-class #' @export -setReplaceMethod("swCarbon_CO2ppm", signature = "swCarbon", +setReplaceMethod( + "swCarbon_CO2ppm", + signature = "swCarbon", function(object, value) { colnames(value) <- colnames(object@CO2ppm) object@CO2ppm <- data.matrix(value) validObject(object) object -}) + } +) diff --git a/R/D_swCloud.R b/R/D_swCloud.R index c1b1e343..57d033a5 100644 --- a/R/D_swCloud.R +++ b/R/D_swCloud.R @@ -156,58 +156,84 @@ setMethod("swCloud_RainEvents", "swCloud", function(object) object@Cloud[5, ]) #' @rdname swCloud-class #' @export -setReplaceMethod("set_swCloud", signature = "swCloud", function(object, value) { - dimnames(value@Cloud) <- dimnames(object@Cloud) - object <- value - validObject(object) - object -}) +setReplaceMethod( + "set_swCloud", + signature = "swCloud", + function(object, value) { + dimnames(value@Cloud) <- dimnames(object@Cloud) + object <- value + validObject(object) + object + } +) + #' @rdname swCloud-class #' @export -setReplaceMethod("swCloud_SkyCover", signature = "swCloud", +setReplaceMethod( + "swCloud_SkyCover", + signature = "swCloud", function(object, value) { object@Cloud[1, ] <- value validObject(object) object -}) + } +) + #' @rdname swCloud-class #' @export -setReplaceMethod("swCloud_WindSpeed", signature = "swCloud", +setReplaceMethod( + "swCloud_WindSpeed", + signature = "swCloud", function(object, value) { object@Cloud[2, ] <- value validObject(object) object -}) + } +) + #' @rdname swCloud-class #' @export -setReplaceMethod("swCloud_Humidity", signature = "swCloud", +setReplaceMethod( + "swCloud_Humidity", + signature = "swCloud", function(object, value) { object@Cloud[3, ] <- value validObject(object) object -}) + } +) + #' @rdname swCloud-class #' @export -setReplaceMethod("swCloud_SnowDensity", signature = "swCloud", +setReplaceMethod( + "swCloud_SnowDensity", + signature = "swCloud", function(object, value) { object@Cloud[4, ] <- value validObject(object) object -}) + } +) + #' @rdname swCloud-class #' @export -setReplaceMethod("swCloud_RainEvents", signature = "swCloud", +setReplaceMethod( + "swCloud_RainEvents", + signature = "swCloud", function(object, value) { object@Cloud[5, ] <- value validObject(object) object -}) - + } +) #' @rdname swCloud-class #' @export -setMethod("swReadLines", signature = c(object = "swCloud", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swCloud", file = "character"), function(object, file) { + stop("swReadLines is defunct") infiletext <- readLines(con = file) #should be no empty lines infiletext <- infiletext[infiletext != ""] diff --git a/R/D_swMarkov.R b/R/D_swMarkov.R index ce73bf28..27f07b66 100644 --- a/R/D_swMarkov.R +++ b/R/D_swMarkov.R @@ -134,21 +134,26 @@ setMethod("swMarkov_Conv", "swMarkov", function(object) object@Conv) #' @rdname swMarkov-class #' @export -setReplaceMethod("set_Markov", signature = "swMarkov", function(object, value) { - if (ncol(value@Prod) == ncol(object@Prob)) { - dimnames(value@Prob) <- dimnames(object@Prob) - } - if (ncol(value@Conv) == ncol(object@Conv)) { - dimnames(value@Conv) <- dimnames(object@Conv) +setReplaceMethod( + "set_Markov", + signature = "swMarkov", function(object, value) { + if (ncol(value@Prod) == ncol(object@Prob)) { + dimnames(value@Prob) <- dimnames(object@Prob) + } + if (ncol(value@Conv) == ncol(object@Conv)) { + dimnames(value@Conv) <- dimnames(object@Conv) + } + object <- value + validObject(object) + object } - object <- value - validObject(object) - object -}) +) #' @rdname swMarkov-class #' @export -setReplaceMethod("swMarkov_Prob", signature = "swMarkov", +setReplaceMethod( + "swMarkov_Prob", + signature = "swMarkov", function(object, value) { if (ncol(value) == ncol(object@Prob)) { colnames(value) <- dimnames(object@Prob)[[2]] @@ -156,11 +161,14 @@ setReplaceMethod("swMarkov_Prob", signature = "swMarkov", object@Prob <- as.matrix(value) validObject(object) object -}) + } +) #' @rdname swMarkov-class #' @export -setReplaceMethod("swMarkov_Conv", signature = "swMarkov", +setReplaceMethod( + "swMarkov_Conv", + signature = "swMarkov", function(object, value) { if (ncol(value) == ncol(object@Conv)) { colnames(value) <- dimnames(object@Conv)[[2]] @@ -168,13 +176,17 @@ setReplaceMethod("swMarkov_Conv", signature = "swMarkov", object@Conv <- as.matrix(value) validObject(object) object -}) + } +) #' @rdname swMarkov-class #' @export -setMethod("swReadLines", signature = c(object = "swMarkov", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swMarkov", file = "character"), function(object, file) { + stop("swReadLines is defunct") id_skip <- 1:2 infiletext <- readLines(con = file[1]) @@ -198,4 +210,5 @@ setMethod("swReadLines", signature = c(object = "swMarkov", file = "character"), } object -}) + } +) diff --git a/R/D_swWeather.R b/R/D_swWeather.R index b8339569..181d9d77 100644 --- a/R/D_swWeather.R +++ b/R/D_swWeather.R @@ -131,7 +131,9 @@ setClass( use_weathergenerator_only = "logical", FirstYear_Historical = "integer" ), - contains = "swMonthlyScalingParams" + # TODO: this class should not contain `swMonthlyScalingParams` but + # instead be a composition, i.e., have a slot of that class + contains = "swMonthlyScalingParams", ) setValidity("swWeather", function(object) { @@ -179,92 +181,138 @@ setMethod("initialize", signature = "swWeather", function(.Object, ...) { #' @rdname swWeather-class #' @export -setMethod("swWeather_DaysRunningAverage", "swWeather", - function(object) object@DaysRunningAverage) +setMethod( + "swWeather_DaysRunningAverage", + "swWeather", + function(object) object@DaysRunningAverage +) #' @rdname swWeather-class #' @export -setMethod("swWeather_FirstYearHistorical", "swWeather", - function(object) object@FirstYear_Historical) +setMethod( + "swWeather_FirstYearHistorical", + "swWeather", + function(object) object@FirstYear_Historical +) #' @rdname swWeather-class #' @export -setMethod("swWeather_pct_SnowDrift", "swWeather", - function(object) object@pct_SnowDrift) +setMethod( + "swWeather_pct_SnowDrift", + "swWeather", + function(object) object@pct_SnowDrift +) #' @rdname swWeather-class #' @export -setMethod("swWeather_pct_SnowRunoff", "swWeather", - function(object) object@pct_SnowRunoff) +setMethod( + "swWeather_pct_SnowRunoff", + "swWeather", + function(object) object@pct_SnowRunoff +) #' @rdname swWeather-class #' @export -setMethod("swWeather_UseMarkov", "swWeather", - function(object) object@use_weathergenerator) +setMethod( + "swWeather_UseMarkov", + "swWeather", + function(object) object@use_weathergenerator +) #' @rdname swWeather-class #' @export -setMethod("swWeather_UseMarkovOnly", "swWeather", - function(object) object@use_weathergenerator_only) +setMethod( + "swWeather_UseMarkovOnly", + "swWeather", + function(object) object@use_weathergenerator_only +) #' @rdname swWeather-class #' @export -setMethod("swWeather_UseSnow", "swWeather", - function(object) object@UseSnow) +setMethod( + "swWeather_UseSnow", + "swWeather", + function(object) object@UseSnow +) #' @rdname swWeather-class #' @export -setMethod("swWeather_MonScalingParams", "swWeather", - function(object) object@MonthlyScalingParams) +setMethod( + "swWeather_MonScalingParams", + "swWeather", + function(object) object@MonthlyScalingParams +) #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_DaysRunningAverage", signature = "swWeather", +setReplaceMethod( + "swWeather_DaysRunningAverage", + signature = "swWeather", function(object, value) { object@DaysRunningAverage <- as.integer(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_FirstYearHistorical", signature = "swWeather", +setReplaceMethod( + "swWeather_FirstYearHistorical", + signature = "swWeather", function(object, value) { object@FirstYear_Historical <- as.integer(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_pct_SnowDrift", signature = "swWeather", +setReplaceMethod( + "swWeather_pct_SnowDrift", + signature = "swWeather", function(object, value) { object@pct_SnowDrift <- as.numeric(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_pct_SnowRunoff", signature = "swWeather", +setReplaceMethod( + "swWeather_pct_SnowRunoff", + signature = "swWeather", function(object, value) { object@pct_SnowRunoff <- as.numeric(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_UseMarkov", signature = "swWeather", +setReplaceMethod( + "swWeather_UseMarkov", + signature = "swWeather", function(object, value) { object@use_weathergenerator <- as.logical(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_UseMarkovOnly", signature = "swWeather", +setReplaceMethod( + "swWeather_UseMarkovOnly", + signature = "swWeather", function(object, value) { object@use_weathergenerator_only <- as.logical(value) if (object@use_weathergenerator_only) { @@ -272,31 +320,41 @@ setReplaceMethod("swWeather_UseMarkovOnly", signature = "swWeather", } validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_UseSnow", signature = "swWeather", +setReplaceMethod( + "swWeather_UseSnow", + signature = "swWeather", function(object, value) { object@UseSnow <- as.logical(value) validObject(object) object -}) + } +) + #' @rdname swWeather-class #' @export -setReplaceMethod("swWeather_MonScalingParams", signature = "swWeather", +setReplaceMethod( + "swWeather_MonScalingParams", + signature = "swWeather", function(object, value) { object@MonthlyScalingParams[] <- value validObject(object) object -}) + } +) #' @rdname swWeather-class #' @export -setMethod("swReadLines", +setMethod( + "swReadLines", signature = c(object = "swWeather", file = "character"), function(object, file) { print(paste( @@ -322,4 +380,5 @@ setMethod("swReadLines", object@MonthlyScalingParams <- data object -}) + } +) diff --git a/R/D_swWeatherData.R b/R/D_swWeatherData.R index 76256ef1..aa942571 100644 --- a/R/D_swWeatherData.R +++ b/R/D_swWeatherData.R @@ -108,13 +108,24 @@ setMethod("initialize", signature = "swWeatherData", function(.Object, ..., #' @rdname swWeatherData-class #' @export -setMethod("swReadLines", +setMethod( + "swReadLines", signature = c(object = "swWeatherData", file = "character"), function(object, file) { - object@year <- as.integer(strsplit(x = basename(file), split = ".", - fixed = TRUE)[[1]][2]) - data <- utils::read.table(file, header = FALSE, comment.char = "#", - blank.lines.skip = TRUE, sep = "\t") + object@year <- as.integer( + strsplit( + x = basename(file), + split = ".", + fixed = TRUE + )[[1]][2] + ) + data <- utils::read.table( + file, + header = FALSE, + comment.char = "#", + blank.lines.skip = TRUE, + sep = "\t" + ) colnames(data) <- c("DOY", "Tmax_C", "Tmin_C", "PPT_cm") object@data <- as.matrix(data) diff --git a/R/E_swProd.R b/R/E_swProd.R index bbab9443..d5260a00 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -205,214 +205,314 @@ setMethod("swProd_CanopyHeight", "swProd", function(object) object@CanopyHeight) #' @rdname swProd-class #' @export -setMethod("swProd_VegInterParam", "swProd", - function(object) object@VegetationInterceptionParameters) +setMethod( + "swProd_VegInterParam", + "swProd", + function(object) object@VegetationInterceptionParameters +) #' @rdname swProd-class #' @export -setMethod("swProd_LitterInterParam", "swProd", - function(object) object@LitterInterceptionParameters) +setMethod( + "swProd_LitterInterParam", + "swProd", + function(object) object@LitterInterceptionParameters +) #' @rdname swProd-class #' @export -setMethod("swProd_EsTpartitioning_param", "swProd", - function(object) object@EsTpartitioning_param) +setMethod( + "swProd_EsTpartitioning_param", + "swProd", + function(object) object@EsTpartitioning_param +) #' @rdname swProd-class #' @export -setMethod("swProd_Es_param_limit", "swProd", - function(object) object@Es_param_limit) +setMethod( + "swProd_Es_param_limit", + "swProd", + function(object) object@Es_param_limit +) #' @rdname swProd-class #' @export -setMethod("swProd_Shade", "swProd", function(object) object@Shade) +setMethod( + "swProd_Shade", + "swProd", + function(object) object@Shade +) #' @rdname swProd-class #' @export -setMethod("swProd_HydrRedstro_use", "swProd", - function(object) object@HydraulicRedistribution_use) +setMethod( + "swProd_HydrRedstro_use", + "swProd", + function(object) object@HydraulicRedistribution_use +) #' @rdname swProd-class #' @export -setMethod("swProd_HydrRedstro", "swProd", - function(object) object@HydraulicRedistribution) +setMethod( + "swProd_HydrRedstro", + "swProd", + function(object) object@HydraulicRedistribution +) #' @rdname swProd-class #' @export -setMethod("swProd_CritSoilWaterPotential", "swProd", - function(object) object@CriticalSoilWaterPotential) +setMethod( + "swProd_CritSoilWaterPotential", + "swProd", + function(object) object@CriticalSoilWaterPotential +) #' @rdname swProd-class #' @export -setMethod("swProd_CO2Coefficients", "swProd", - function(object) object@CO2Coefficients) +setMethod( + "swProd_CO2Coefficients", + "swProd", + function(object) object@CO2Coefficients +) #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_veg", +setMethod( + "swProd_MonProd_veg", signature = c(object = "swProd", vegtype = "numeric"), - function(object, vegtype) object@MonthlyVeg[[as.integer(vegtype)]]) + function(object, vegtype) object@MonthlyVeg[[as.integer(vegtype)]] +) #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_veg", +setMethod( + "swProd_MonProd_veg", signature = c(object = "swProd", vegtype = "character"), function(object, vegtype) { - id_vegtype <- grep(vegtype, - names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]]), ignore.case = TRUE) + id_vegtype <- grep( + vegtype, + names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]]), + ignore.case = TRUE + ) object@MonthlyVeg[[id_vegtype]] -}) + } +) #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_grass", "swProd", function(object) { - object@MonthlyVeg[[1 + - rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_GRASS"]]]] -}) +setMethod( + "swProd_MonProd_grass", + "swProd", + function(object) { + object@MonthlyVeg[[ + 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_GRASS"]] + ]] + } +) + #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_shrub", "swProd", function(object) { - object@MonthlyVeg[[1 + - rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_SHRUB"]]]] -}) +setMethod( + "swProd_MonProd_shrub", + "swProd", + function(object) { + object@MonthlyVeg[[ + 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_SHRUB"]] + ]] + } +) + #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_tree", "swProd", function(object) { - object@MonthlyVeg[[1 + - rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_TREES"]]]] -}) +setMethod( + "swProd_MonProd_tree", + "swProd", + function(object) { + object@MonthlyVeg[[ + 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_TREES"]] + ]] + } +) + #' @rdname swProd-class #' @export -setMethod("swProd_MonProd_forb", "swProd", function(object) { - object@MonthlyVeg[[1 + - rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_FORBS"]]]] -}) +setMethod( + "swProd_MonProd_forb", + "swProd", + function(object) { + object@MonthlyVeg[[ + 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_FORBS"]] + ]] + } +) #' @rdname swProd-class #' @export -setReplaceMethod("set_swProd", signature = "swProd", function(object, value) { - object <- value - validObject(object) - object -}) +setReplaceMethod( + "set_swProd", + signature = "swProd", + function(object, value) { + object <- value + validObject(object) + object + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_Composition", signature = "swProd", +setReplaceMethod( + "swProd_Composition", + signature = "swProd", function(object, value) { object@Composition[] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_Albedo", signature = "swProd", +setReplaceMethod( + "swProd_Albedo", + signature = "swProd", function(object, value) { object@Albedo[] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_CanopyHeight", signature = "swProd", +setReplaceMethod( + "swProd_CanopyHeight", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@CanopyHeight) object@CanopyHeight <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_VegInterParam", signature = "swProd", +setReplaceMethod( + "swProd_VegInterParam", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@VegetationInterceptionParameters) object@VegetationInterceptionParameters <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_LitterInterParam", signature = "swProd", +setReplaceMethod( + "swProd_LitterInterParam", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@LitterInterceptionParameters) object@LitterInterceptionParameters <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_EsTpartitioning_param", signature = "swProd", +setReplaceMethod( + "swProd_EsTpartitioning_param", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@EsTpartitioning_param) object@EsTpartitioning_param <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_Es_param_limit", signature = "swProd", +setReplaceMethod( + "swProd_Es_param_limit", + signature = "swProd", function(object, value) { object@Es_param_limit[] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_Shade", signature = "swProd", function(object, value) { - dimnames(value) <- dimnames(object@Shade) - object@Shade <- value - validObject(object) - object -}) +setReplaceMethod( + "swProd_Shade", + signature = "swProd", + function(object, value) { + dimnames(value) <- dimnames(object@Shade) + object@Shade <- value + validObject(object) + object + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_HydrRedstro_use", signature = "swProd", +setReplaceMethod( + "swProd_HydrRedstro_use", + signature = "swProd", function(object, value) { object@HydraulicRedistribution_use[] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_HydrRedstro", signature = "swProd", +setReplaceMethod( + "swProd_HydrRedstro", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@HydraulicRedistribution) object@HydraulicRedistribution <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_CritSoilWaterPotential", signature = "swProd", +setReplaceMethod( + "swProd_CritSoilWaterPotential", + signature = "swProd", function(object, value) { object@CriticalSoilWaterPotential[] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_CO2Coefficients", signature = "swProd", +setReplaceMethod( + "swProd_CO2Coefficients", + signature = "swProd", function(object, value) { dimnames(value) <- dimnames(object@CO2Coefficients) object@CO2Coefficients <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_veg", +setReplaceMethod( + "swProd_MonProd_veg", signature = c(object = "swProd", vegtype = "numeric", value = "matrix"), function(object, vegtype, value) { id_vegtype <- as.integer(vegtype) @@ -420,59 +520,81 @@ setReplaceMethod("swProd_MonProd_veg", object@MonthlyVeg[[id_vegtype]] <- value validObject(object) object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_veg", +setReplaceMethod( + "swProd_MonProd_veg", signature = c(object = "swProd", vegtype = "character", value = "matrix"), function(object, vegtype, value) { - id_vegtype <- grep(vegtype, - names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]]), ignore.case = TRUE) + id_vegtype <- grep( + vegtype, + names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]]), + ignore.case = TRUE + ) swProd_MonProd_veg(object, id_vegtype) <- value object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_grass", signature = "swProd", +setReplaceMethod( + "swProd_MonProd_grass", + signature = "swProd", function(object, value) { id_vegtype <- 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_GRASS"]] swProd_MonProd_veg(object, id_vegtype) <- value object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_shrub", signature = "swProd", +setReplaceMethod( + "swProd_MonProd_shrub", + signature = "swProd", function(object, value) { id_vegtype <- 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_SHRUB"]] swProd_MonProd_veg(object, id_vegtype) <- value object -}) + } +) #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_tree", signature = "swProd", +setReplaceMethod( + "swProd_MonProd_tree", + signature = "swProd", function(object, value) { id_vegtype <- 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_TREES"]] swProd_MonProd_veg(object, id_vegtype) <- value object -}) + } +) + #' @rdname swProd-class #' @export -setReplaceMethod("swProd_MonProd_forb", signature = "swProd", +setReplaceMethod( + "swProd_MonProd_forb", + signature = "swProd", function(object, value) { id_vegtype <- 1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_FORBS"]] swProd_MonProd_veg(object, id_vegtype) <- value object -}) + } +) #' @rdname swProd-class #' @export -setMethod("swReadLines", signature = c(object = "swProd", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swProd", file = "character"), function(object, file) { + stop("swReadLines is defunct") # nolint start infiletext <- readLines(con = file) object@Composition = readNumerics(infiletext[6],5) @@ -505,4 +627,5 @@ setMethod("swReadLines", signature = c(object = "swProd", file = "character"), for(i in 1:12) object@MonthlyVeg[[1 + rSW2_glovars[["kSOILWAT2"]][["VegTypes"]][["SW_FORBS"]]]][i, ] = readNumerics(infiletext[139+i],4) return(object) # nolint end -}) + } +) diff --git a/R/F_swSite.R b/R/F_swSite.R index b6e1c12e..5aeeac43 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -211,67 +211,103 @@ setMethod( #' @rdname swSite-class #' @export -setMethod("swSite_SWClimits", "swSite", - function(object) slot(object, "SWClimits")) +setMethod( + "swSite_SWClimits", + "swSite", + function(object) slot(object, "SWClimits") +) #' @rdname swSite-class #' @export -setMethod("swSite_ModelFlags", "swSite", - function(object) slot(object, "ModelFlags")) +setMethod( + "swSite_ModelFlags", + "swSite", + function(object) slot(object, "ModelFlags") +) #' @rdname swSite-class #' @export -setMethod("swSite_ModelCoefficients", "swSite", - function(object) slot(object, "ModelCoefficients")) +setMethod( + "swSite_ModelCoefficients", + "swSite", + function(object) slot(object, "ModelCoefficients") +) #' @rdname swSite-class #' @export -setMethod("swSite_SnowSimulationParams", "swSite", - function(object) slot(object, "SnowSimulationParameters")) +setMethod( + "swSite_SnowSimulationParams", + "swSite", + function(object) slot(object, "SnowSimulationParameters") +) #' @rdname swSite-class #' @export -setMethod("swSite_DrainageCoefficient", "swSite", - function(object) slot(object, "DrainageCoefficient")) +setMethod( + "swSite_DrainageCoefficient", + "swSite", + function(object) slot(object, "DrainageCoefficient") +) #' @rdname swSite-class #' @export -setMethod("swSite_EvapCoefficients", "swSite", - function(object) slot(object, "EvaporationCoefficients")) +setMethod( + "swSite_EvapCoefficients", + "swSite", + function(object) slot(object, "EvaporationCoefficients") +) #' @rdname swSite-class #' @export -setMethod("swSite_TranspCoefficients", "swSite", - function(object) slot(object, "TranspirationCoefficients")) +setMethod( + "swSite_TranspCoefficients", + "swSite", + function(object) slot(object, "TranspirationCoefficients") +) #' @rdname swSite-class #' @export -setMethod("swSite_IntrinsicSiteParams", "swSite", - function(object) slot(object, "IntrinsicSiteParams")) +setMethod( + "swSite_IntrinsicSiteParams", + "swSite", + function(object) slot(object, "IntrinsicSiteParams") +) #' @rdname swSite-class #' @export -setMethod("swSite_SoilTemperatureFlag", "swSite", - function(object) slot(object, "SoilTemperatureFlag")) +setMethod( + "swSite_SoilTemperatureFlag", + "swSite", + function(object) slot(object, "SoilTemperatureFlag") +) #' @rdname swSite-class #' @export -setMethod("swSite_SoilTemperatureConsts", "swSite", - function(object) slot(object, "SoilTemperatureConstants")) +setMethod( + "swSite_SoilTemperatureConsts", + "swSite", + function(object) slot(object, "SoilTemperatureConstants") +) #' @rdname swSite-class #' @export -setMethod("swSite_TranspirationRegions", "swSite", - function(object) slot(object, "TranspirationRegions")) +setMethod( + "swSite_TranspirationRegions", + "swSite", + function(object) slot(object, "TranspirationRegions") +) #' @rdname swSite-class #' @export -setReplaceMethod("set_swSite", signature = "swSite", +setReplaceMethod( + "set_swSite", + signature = "swSite", definition = function(object, value) { object <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export @@ -282,101 +318,134 @@ setReplaceMethod( object@swrc_flags[] <- as.character(value) validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_SWClimits", signature = "swSite", +setReplaceMethod( + "swSite_SWClimits", + signature = "swSite", definition = function(object, value) { object@SWClimits[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_ModelFlags", signature = "swSite", +setReplaceMethod( + "swSite_ModelFlags", + signature = "swSite", definition = function(object, value) { object@ModelFlags[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_ModelCoefficients", signature = "swSite", +setReplaceMethod( + "swSite_ModelCoefficients", + signature = "swSite", definition = function(object, value) { object@ModelCoefficients[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_SnowSimulationParams", signature = "swSite", +setReplaceMethod( + "swSite_SnowSimulationParams", + signature = "swSite", definition = function(object, value) { object@SnowSimulationParameters[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_DrainageCoefficient", signature = "swSite", +setReplaceMethod( + "swSite_DrainageCoefficient", + signature = "swSite", definition = function(object, value) { object@DrainageCoefficient[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_EvapCoefficients", signature = "swSite", +setReplaceMethod( + "swSite_EvapCoefficients", + signature = "swSite", definition = function(object, value) { object@EvaporationCoefficients[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_TranspCoefficients", signature = "swSite", +setReplaceMethod( + "swSite_TranspCoefficients", + signature = "swSite", definition = function(object, value) { object@TranspirationCoefficients[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_IntrinsicSiteParams", signature = "swSite", +setReplaceMethod( + "swSite_IntrinsicSiteParams", + signature = "swSite", definition = function(object, value) { object@IntrinsicSiteParams[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_SoilTemperatureFlag", signature = "swSite", +setReplaceMethod( + "swSite_SoilTemperatureFlag", + signature = "swSite", definition = function(object, value) { object@SoilTemperatureFlag <- as.logical(value) validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_SoilTemperatureConsts", signature = "swSite", +setReplaceMethod( + "swSite_SoilTemperatureConsts", + signature = "swSite", definition = function(object, value) { object@SoilTemperatureConstants[] <- value validObject(object) object -}) + } +) #' @rdname swSite-class #' @export -setReplaceMethod("swSite_TranspirationRegions", signature = "swSite", +setReplaceMethod( + "swSite_TranspirationRegions", + signature = "swSite", definition = function(object, value) { if (typeof(value) != "integer") { # Check whether we can convert to integer without great loss of info @@ -395,15 +464,19 @@ setReplaceMethod("swSite_TranspirationRegions", signature = "swSite", ) validObject(object) object -}) + } +) #' @rdname swSite-class #' @export # nolint start -setMethod("swReadLines", signature = c(object="swSite",file="character"), function(object,file) { - print("TODO: method 'swReadLines' is not up-to-date; hard-coded indices are incorrect") +setMethod( + "swReadLines", + signature = c(object="swSite",file="character"), + function(object,file) { + print("TODO: method 'swReadLines' is not up-to-date; hard-coded indices are incorrect") infiletext <- readLines(con = file) object@SWClimits[1] = readNumeric(infiletext[2]) object@SWClimits[2] = readNumeric(infiletext[3]) diff --git a/R/F_swSoils.R b/R/F_swSoils.R index aed6244b..2da1ea17 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -249,7 +249,8 @@ setReplaceMethod( #' @rdname swSoils-class #' @export -setMethod("swReadLines", +setMethod( + "swReadLines", signature = c(object = "swSoils", file = "character"), function(object, file) { stop("This function no longer works correctly; and SWRCp are not read.") @@ -266,4 +267,5 @@ setMethod("swReadLines", } object -}) + } +) diff --git a/R/G_swOut.R b/R/G_swOut.R index e1e57ace..483194d1 100644 --- a/R/G_swOut.R +++ b/R/G_swOut.R @@ -195,16 +195,23 @@ setMethod("swOUT_TimeStep", "swOUT", function(object) object@timeSteps) #' @rdname swOUT-class #' @export -setMethod("swOUT_OutputSeparator", "swOUT", - function(object) object@outputSeparator) +setMethod( + "swOUT_OutputSeparator", + "swOUT", + function(object) object@outputSeparator +) #' @rdname swOUT-class #' @export -setReplaceMethod("set_swOUT", signature = "swOUT", function(object, value) { - object <- value - validObject(object) - object -}) +setReplaceMethod( + "set_swOUT", + signature = "swOUT", + function(object, value) { + object <- value + validObject(object) + object + } +) #' @rdname swOUT-class @@ -305,12 +312,15 @@ setReplaceMethod( #' @rdname swOUT-class #' @export -setReplaceMethod("swOUT_TimeStep", signature = "swOUT", +setReplaceMethod( + "swOUT_TimeStep", + signature = "swOUT", function(object, value) { object@timeSteps <- value validObject(object) object -}) + } +) #' Set time steps to the same set of values for each output key. #' @examples @@ -319,15 +329,20 @@ setReplaceMethod("swOUT_TimeStep", signature = "swOUT", #' identical(as.vector(unique(swOUT_TimeStep(x))), as.integer(c(2, 3))) #' @rdname swOUT-class #' @export -setReplaceMethod("swOUT_TimeStepsForEveryKey", signature = "swOUT", +setReplaceMethod( + "swOUT_TimeStepsForEveryKey", + signature = "swOUT", function(object, value) { - stopifnot(length(value) <= - rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]]) + stopifnot( + length(value) <= rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]] + ) # Create empty matrix - temp <- matrix(rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]], + temp <- matrix( + data = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]], nrow = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]], - ncol = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]]) + ncol = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]] + ) # Fill matrix with requested values temp[, seq_along(value)] <- rep(value, @@ -341,16 +356,20 @@ setReplaceMethod("swOUT_TimeStepsForEveryKey", signature = "swOUT", validObject(object) object -}) + } +) #' @rdname swOUT-class #' @export -setReplaceMethod("swOUT_OutputSeparator", signature = "swOUT", +setReplaceMethod( + "swOUT_OutputSeparator", + signature = "swOUT", function(object, value) { object@outputSeparator <- as.character(value) validObject(object) object -}) + } +) # used by swReadLines @@ -367,54 +386,63 @@ timePeriods <- c("dy", "wk", "mo", "yr") #' @rdname swOUT-class #' @export # nolint start -setMethod("swReadLines", signature = c(object="swOUT",file="character"), function(object,file) { - print("TODO: method 'swReadLines' for class 'swOUT' is not up-to-date; hard-coded indices are incorrect") - - infiletext <- readLines(con = file) - if(temp<-strsplit(infiletext[41],split=" ")[[1]][2] == "t") { - object@outputSeparator="\t" - } else if(temp == "s") { - object@outputSeparator=" " - } else if(temp == "c"){ - object@outputSeparator="," - } else { - object@outputSeparator="\t" - } - - if(infiletext[42]==""){ - useTimeStep = FALSE - } else { - useTimeStep = TRUE - temp<-strsplit(x=infiletext[42],split=" ")[[1]][-1] - object@timeSteps = as.integer(sapply(1:length(temp), FUN=function(i) which(temp[i] == timePeriods))-1) - } - - for(i in 45:length(infiletext)) { - if(infiletext[i] != "") { - temp<-strsplit(x=infiletext[i],split="\t")[[1]] - temp<-unlist(strsplit(x=temp,split=" ")) - temp <- temp[temp != ""][1:6] - mykey<- as.integer(grep(pattern=temp[1],x=KEY)[1]) - sumtype <- as.integer(grep(pattern=temp[2],x=OutSum))-1 - period <- which(tolower(temp[3]) == timePeriods)-1 - start <- as.integer(temp[4]) - if(grepl(pattern="end",x=temp[5])) { - end <- as.integer(366) - } else { - end <- as.integer(temp[5]) - } - object@mykey[mykey] = as.integer(mykey-1) - object@sumtype[mykey] = as.integer(sumtype) - object@first_orig[mykey] = start - object@last_orig[mykey] = end - object@outfile[mykey] = temp[6] - if(object@sumtype[mykey] != 0) { - object@use[mykey] = TRUE - } else { - object@use[mykey] = FALSE - } - } - } - return(object) - }) +setMethod( + "swReadLines", + signature = c(object="swOUT",file="character"), + function(object,file) { + print("TODO: method 'swReadLines' for class 'swOUT' is not up-to-date; hard-coded indices are incorrect") + + infiletext <- readLines(con = file) + if(temp<-strsplit(infiletext[41],split=" ")[[1]][2] == "t") { + object@outputSeparator="\t" + } else if(temp == "s") { + object@outputSeparator=" " + } else if(temp == "c"){ + object@outputSeparator="," + } else { + object@outputSeparator="\t" + } + + if (infiletext[42] == "") { + useTimeStep = FALSE + } else { + useTimeStep = TRUE + temp<-strsplit(x=infiletext[42], split=" ")[[1]][-1] + object@timeSteps = as.integer( + sapply( + 1:length(temp), + FUN=function(i) which(temp[i] == timePeriods) + )-1 + ) + } + + for(i in 45:length(infiletext)) { + if(infiletext[i] != "") { + temp<-strsplit(x=infiletext[i],split="\t")[[1]] + temp<-unlist(strsplit(x=temp,split=" ")) + temp <- temp[temp != ""][1:6] + mykey<- as.integer(grep(pattern=temp[1],x=KEY)[1]) + sumtype <- as.integer(grep(pattern=temp[2],x=OutSum))-1 + period <- which(tolower(temp[3]) == timePeriods)-1 + start <- as.integer(temp[4]) + if(grepl(pattern="end",x=temp[5])) { + end <- as.integer(366) + } else { + end <- as.integer(temp[5]) + } + object@mykey[mykey] = as.integer(mykey-1) + object@sumtype[mykey] = as.integer(sumtype) + object@first_orig[mykey] = start + object@last_orig[mykey] = end + object@outfile[mykey] = temp[6] + if(object@sumtype[mykey] != 0) { + object@use[mykey] = TRUE + } else { + object@use[mykey] = FALSE + } + } + } + return(object) + } +) # nolint end diff --git a/R/H_swSWC.R b/R/H_swSWC.R index d38209d7..28b08b1b 100644 --- a/R/H_swSWC.R +++ b/R/H_swSWC.R @@ -70,15 +70,18 @@ setMethod("initialize", signature = "swSWC_hist", validObject(.Object) .Object -}) + } +) #' @rdname swSWC_hist-class #' @export -setMethod("swReadLines", +setMethod( + "swReadLines", signature = c(object = "swSWC_hist", file = "character"), function(object, file) { + stop("swReadLines is defunct.") object@year <- as.integer(strsplit(x = file, split = ".", fixed = TRUE)[[1]][2]) infiletext <- readLines(con = file) @@ -179,71 +182,87 @@ setMethod("swSWC_HistoricList", "swSWC", function(object) object@History) #' @rdname swSWC-class #' @export -setMethod("swSWC_HistoricData", "swSWC", function(object, year) { - index <- which(names(object@History) == as.character(year)) - if (length(index) != 1) { - print("swc historic data Index has wrong length.") - return(NULL) - } - if (object@History[[index]]@year != as.integer(year)) - print("Somethings wrong with the historical soil moisture data.") +setMethod( + "swSWC_HistoricData", + "swSWC", + function(object, year) { + index <- which(names(object@History) == as.character(year)) + if (length(index) != 1) { + print("swc historic data Index has wrong length.") + return(NULL) + } + if (object@History[[index]]@year != as.integer(year)) { + print("Somethings wrong with the historical soil moisture data.") + } - object@History[[index]] -}) + object@History[[index]] + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_use", +setReplaceMethod( + "swSWC_use", signature = c(object = "swSWC", value = "logical"), function(object, value) { object@UseSWCHistoricData[] <- value validObject(object) object -}) + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_prefix", +setReplaceMethod( + "swSWC_prefix", signature = c(object = "swSWC", value = "character"), function(object, value) { object@DataFilePrefix <- as.character(value) validObject(object) object -}) + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_FirstYear", +setReplaceMethod( + "swSWC_FirstYear", signature = c(object = "swSWC", value = "integer"), function(object, value) { object@FirstYear <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_Method", +setReplaceMethod( + "swSWC_Method", signature = c(object = "swSWC", value = "integer"), function(object, value) { object@Method <- as.integer(value) validObject(object) object -}) + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_HistoricList", +setReplaceMethod( + "swSWC_HistoricList", signature = c(object = "swSWC", value = "list"), function(object, value) { object@History <- value validObject(object) object -}) + } +) #' @rdname swSWC-class #' @export -setReplaceMethod("swSWC_HistoricData", +setReplaceMethod( + "swSWC_HistoricData", signature = c(object = "swSWC", value = "swSWC_hist"), function(object, value) { index <- which(names(object@History) == as.character(value@year)) @@ -264,13 +283,17 @@ setReplaceMethod("swSWC_HistoricData", } object -}) + } +) #' @rdname swSWC-class #' @export -setMethod("swReadLines", signature = c(object = "swSWC", file = "character"), +setMethod( + "swReadLines", + signature = c(object = "swSWC", file = "character"), function(object, file) { + stop("swReadLines is defunct") infiletext <- readLines(con = file) #should be no empty lines infiletext <- infiletext[infiletext != ""] @@ -279,4 +302,5 @@ setMethod("swReadLines", signature = c(object = "swSWC", file = "character"), object@FirstYear <- readInteger(infiletext[6]) object@Method <- readInteger(infiletext[7]) return(object) -}) + } +) diff --git a/R/I_swEstab.R b/R/I_swEstab.R index bc493bc6..94011a4c 100644 --- a/R/I_swEstab.R +++ b/R/I_swEstab.R @@ -54,9 +54,11 @@ setClass("swEstabSpecies", slot = c(fileName = "character", Name = "character", max_temp_germ = "numeric", min_temp_estab = "numeric", max_temp_estab = "numeric")) -setValidity("swEstabSpecies", function(object) { - TRUE -}) + +setValidity( + "swEstabSpecies", + function(object) TRUE +) #' @rdname swEstabSpecies-class #' @export @@ -83,28 +85,34 @@ setMethod("initialize", signature = "swEstabSpecies", function(.Object, ...) { #' @rdname swEstabSpecies-class #' @export # nolint start -setMethod("swReadLines", signature = c(object="swEstabSpecies",file="character"), function(object,file) { - infiletext <- readLines(con = file) - - object@Name = c(object@Name, gsub("[[:space:]]", "",strsplit(x=infiletext[1],split = c("#", " ", "\t"),fixed=F)[[1]][1])) - object@estab_lyrs = c(object@estab_lyrs,readInteger(infiletext[3])) - object@barsGERM = c(object@barsGERM,readNumeric(infiletext[4])) - object@barsESTAB = c(object@barsESTAB,readNumeric(infiletext[5])) - object@min_pregerm_days = c(object@min_pregerm_days,readInteger(infiletext[7])) - object@max_pregerm_days = c(object@max_pregerm_days,readInteger(infiletext[8])) - object@min_wetdays_for_germ = c(object@min_wetdays_for_germ,readInteger(infiletext[9])) - object@max_drydays_postgerm = c(object@max_drydays_postgerm,readInteger(infiletext[10])) - object@min_wetdays_for_estab = c(object@min_wetdays_for_estab,readInteger(infiletext[11])) - object@min_days_germ2estab = c(object@min_days_germ2estab,readInteger(infiletext[12])) - object@max_days_germ2estab = c(object@max_days_germ2estab,readInteger(infiletext[13])) - object@min_temp_germ = c(object@min_temp_germ,readInteger(infiletext[15])) - object@max_temp_germ = c(object@max_temp_germ,readNumeric(infiletext[16])) - object@min_temp_estab = c(object@min_temp_estab,readNumeric(infiletext[17])) - object@max_temp_estab = c(object@max_temp_estab,readNumeric(infiletext[18])) - return(object) - }) +setMethod( + "swReadLines", + signature = c(object="swEstabSpecies",file="character"), + function(object,file) { + stop("swReadLines is defunct") + infiletext <- readLines(con = file) + + object@Name = c(object@Name, gsub("[[:space:]]", "",strsplit(x=infiletext[1],split = c("#", " ", "\t"),fixed=F)[[1]][1])) + object@estab_lyrs = c(object@estab_lyrs,readInteger(infiletext[3])) + object@barsGERM = c(object@barsGERM,readNumeric(infiletext[4])) + object@barsESTAB = c(object@barsESTAB,readNumeric(infiletext[5])) + object@min_pregerm_days = c(object@min_pregerm_days,readInteger(infiletext[7])) + object@max_pregerm_days = c(object@max_pregerm_days,readInteger(infiletext[8])) + object@min_wetdays_for_germ = c(object@min_wetdays_for_germ,readInteger(infiletext[9])) + object@max_drydays_postgerm = c(object@max_drydays_postgerm,readInteger(infiletext[10])) + object@min_wetdays_for_estab = c(object@min_wetdays_for_estab,readInteger(infiletext[11])) + object@min_days_germ2estab = c(object@min_days_germ2estab,readInteger(infiletext[12])) + object@max_days_germ2estab = c(object@max_days_germ2estab,readInteger(infiletext[13])) + object@min_temp_germ = c(object@min_temp_germ,readInteger(infiletext[15])) + object@max_temp_germ = c(object@max_temp_germ,readNumeric(infiletext[16])) + object@min_temp_estab = c(object@min_temp_estab,readNumeric(infiletext[17])) + object@max_temp_estab = c(object@max_temp_estab,readNumeric(infiletext[18])) + return(object) + } +) # nolint end + #############################ESTAB.IN######################################### #' Class \code{"swEstab"} #' @@ -133,9 +141,11 @@ setMethod("swReadLines", signature = c(object="swEstabSpecies",file="character") setClass("swEstab", slot = c(useEstab = "logical", count = "integer"), contains = "swEstabSpecies") -setValidity("swEstab", function(object) { - TRUE -}) +setValidity( + "swEstab", + function(object) TRUE +) + #' @rdname swEstab-class #' @export @@ -158,37 +168,45 @@ setMethod("initialize", signature = "swEstab", function(.Object, ...) { #' @rdname swEstab-class #' @export setMethod("swEstab_useEstab", "swEstab", function(object) object@useEstab) + #' @rdname swEstab-class #' @export -setReplaceMethod("swEstab_useEstab", signature = "swEstab", +setReplaceMethod( + "swEstab_useEstab", + signature = "swEstab", function(object, value) { object@useEstab <- as.logical(value) validObject(object) object -}) + } +) #' @rdname swEstab-class #' @export # nolint start -setMethod("swReadLines", signature = c(object="swEstab",file="character"), function(object,file) { - infiletext <- readLines(con = file[1]) - index<-length(object@fileName)+1 - object@useEstab = readLogical(infiletext[9]) - object@count = 0L - if(object@useEstab) { - infiletext <- infiletext[-c(1:9)] - infiletext <- infiletext[infiletext != ""] - for(i in 1:length(infiletext)) { - #see if the line is commented out - line<-gsub("[[:space:]]", "",strsplit(x=infiletext[i],split=c("#"))[[1]][1]) - if(line != "") { - object@fileName <- c(object@fileName, line) - object@count <- object@count + 1L - as(object,"swEstabSpecies") <- swReadLines(as(object,"swEstabSpecies"),file.path(file[2],line)) - } - } - } - return(object) - }) +setMethod( + "swReadLines", + signature = c(object="swEstab",file="character"), + function(object,file) { + stop("swReadLines is defunct") + infiletext <- readLines(con = file[1]) + index<-length(object@fileName)+1 + object@useEstab = readLogical(infiletext[9]) + object@count = 0L + if(object@useEstab) { + infiletext <- infiletext[-c(1:9)] + infiletext <- infiletext[infiletext != ""] + for(i in 1:length(infiletext)) { + #see if the line is commented out + line<-gsub("[[:space:]]", "",strsplit(x=infiletext[i],split=c("#"))[[1]][1]) + if(line != "") { + object@fileName <- c(object@fileName, line) + object@count <- object@count + 1L + as(object,"swEstabSpecies") <- swReadLines(as(object,"swEstabSpecies"),file.path(file[2],line)) + } + } + } + return(object) + }) # nolint end diff --git a/R/K_swContainer.R b/R/K_swContainer.R index a9ec5451..aed1a2c6 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -130,7 +130,7 @@ setValidity( #' @rdname get_version setMethod( - f = "get_version", + "get_version", signature = "swInputData", definition = function(object) { tmp <- try(object@version, silent = TRUE) @@ -140,7 +140,7 @@ setMethod( #' @rdname get_timestamp setMethod( - f = "get_timestamp", + "get_timestamp", signature = "swInputData", definition = function(object) { tmp <- try(object@timestamp, silent = TRUE) @@ -156,33 +156,51 @@ setMethod("get_swFiles", "swInputData", function(object) object@files) #' @rdname swInputData-class #' @export -setMethod("swFiles_ProjDir", "swInputData", - function(object) swFiles_ProjDir(object@files)) +setMethod( + "swFiles_ProjDir", + "swInputData", + function(object) swFiles_ProjDir(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_filesIn", "swInputData", - function(object) swFiles_filesIn(object@files)) +setMethod( + "swFiles_filesIn", + "swInputData", + function(object) swFiles_filesIn(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Years", "swInputData", - function(object) swFiles_Years(object@files)) +setMethod( + "swFiles_Years", + "swInputData", + function(object) swFiles_Years(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_LogFile", "swInputData", - function(object) swFiles_LogFile(object@files)) +setMethod( + "swFiles_LogFile", + "swInputData", + function(object) swFiles_LogFile(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_SiteParams", "swInputData", - function(object) swFiles_SiteParams(object@files)) +setMethod( + "swFiles_SiteParams", + "swInputData", + function(object) swFiles_SiteParams(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Soils", "swInputData", - function(object) swFiles_Soils(object@files)) +setMethod( + "swFiles_Soils", + "swInputData", + function(object) swFiles_Soils(object@files) +) #' @rdname swInputData-class #' @export @@ -194,116 +212,170 @@ setMethod( #' @rdname swInputData-class #' @export -setMethod("swFiles_WeatherSetup", "swInputData", - function(object) swFiles_WeatherSetup(object@files)) +setMethod( + "swFiles_WeatherSetup", + "swInputData", + function(object) swFiles_WeatherSetup(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_MarkovProbs", "swInputData", - function(object) swFiles_MarkovProbs(object@files)) +setMethod( + "swFiles_MarkovProbs", + "swInputData", + function(object) swFiles_MarkovProbs(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_MarkovCov", "swInputData", - function(object) swFiles_MarkovCov(object@files)) +setMethod( + "swFiles_MarkovCov", + "swInputData", + function(object) swFiles_MarkovCov(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Cloud", "swInputData", - function(object) swFiles_Cloud(object@files)) +setMethod( + "swFiles_Cloud", + "swInputData", + function(object) swFiles_Cloud(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Prod", "swInputData", - function(object) swFiles_Prod(object@files)) +setMethod( + "swFiles_Prod", + "swInputData", + function(object) swFiles_Prod(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Estab", "swInputData", - function(object) swFiles_Estab(object@files)) +setMethod( + "swFiles_Estab", + "swInputData", + function(object) swFiles_Estab(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Carbon", "swInputData", - function(object) swFiles_Carbon(object@files)) +setMethod( + "swFiles_Carbon", + "swInputData", + function(object) swFiles_Carbon(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_SWCsetup", "swInputData", - function(object) swFiles_SWCsetup(object@files)) +setMethod( + "swFiles_SWCsetup", + "swInputData", + function(object) swFiles_SWCsetup(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_Output", "swInputData", - function(object) swFiles_Output(object@files)) +setMethod( + "swFiles_Output", + "swInputData", + function(object) swFiles_Output(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_WeatherPrefix", "swInputData", - function(object) swFiles_WeatherPrefix(object@files)) +setMethod( + "swFiles_WeatherPrefix", + "swInputData", + function(object) swFiles_WeatherPrefix(object@files) +) #' @rdname swInputData-class #' @export -setMethod("swFiles_OutputPrefix", "swInputData", - function(object) swFiles_OutputPrefix(object@files)) +setMethod( + "swFiles_OutputPrefix", + "swInputData", + function(object) swFiles_OutputPrefix(object@files) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swFiles", signature = "swInputData", +setReplaceMethod( + "set_swFiles", + signature = "swInputData", function(object, value) { object@files <- value validObject(object@files) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_ProjDir", signature = "swInputData", +setReplaceMethod( + "swFiles_ProjDir", + signature = "swInputData", function(object, value) { swFiles_ProjDir(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_filesIn", signature = "swInputData", +setReplaceMethod( + "swFiles_filesIn", + signature = "swInputData", function(object, value) { swFiles_filesIn(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Years", signature = "swInputData", +setReplaceMethod( + "swFiles_Years", + signature = "swInputData", function(object, value) { swFiles_Years(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_LogFile", signature = "swInputData", +setReplaceMethod( + "swFiles_LogFile", + signature = "swInputData", function(object, value) { swFiles_LogFile(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_SiteParams", signature = "swInputData", +setReplaceMethod( + "swFiles_SiteParams", + signature = "swInputData", function(object, value) { swFiles_SiteParams(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Soils", signature = "swInputData", +setReplaceMethod( + "swFiles_Soils", + signature = "swInputData", function(object, value) { swFiles_Soils(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export @@ -313,95 +385,129 @@ setReplaceMethod( function(object, value) { swFiles_SWRCp(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_WeatherSetup", signature = "swInputData", +setReplaceMethod( + "swFiles_WeatherSetup", + signature = "swInputData", function(object, value) { swFiles_WeatherSetup(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_MarkovProbs", signature = "swInputData", +setReplaceMethod( + "swFiles_MarkovProbs", + signature = "swInputData", function(object, value) { swFiles_MarkovProbs(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_MarkovCov", signature = "swInputData", +setReplaceMethod( + "swFiles_MarkovCov", + signature = "swInputData", function(object, value) { swFiles_MarkovCov(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Cloud", signature = "swInputData", +setReplaceMethod( + "swFiles_Cloud", + signature = "swInputData", function(object, value) { swFiles_Cloud(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Prod", signature = "swInputData", +setReplaceMethod( + "swFiles_Prod", + signature = "swInputData", function(object, value) { swFiles_Prod(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Estab", signature = "swInputData", +setReplaceMethod( + "swFiles_Estab", + signature = "swInputData", function(object, value) { swFiles_Estab(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Carbon", signature = "swInputData", +setReplaceMethod( + "swFiles_Carbon", + signature = "swInputData", function(object, value) { swFiles_Carbon(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_SWCsetup", signature = "swInputData", +setReplaceMethod( + "swFiles_SWCsetup", + signature = "swInputData", function(object, value) { swFiles_SWCsetup(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_Output", signature = "swInputData", +setReplaceMethod( + "swFiles_Output", + signature = "swInputData", function(object, value) { swFiles_Output(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_WeatherPrefix", signature = "swInputData", +setReplaceMethod( + "swFiles_WeatherPrefix", + signature = "swInputData", function(object, value) { swFiles_WeatherPrefix(object@files) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swFiles_OutputPrefix", signature = "swInputData", +setReplaceMethod( + "swFiles_OutputPrefix", + signature = "swInputData", function(object, value) { swFiles_OutputPrefix(object@files) <- value object -}) + } +) # Methods for slot \code{years} @@ -411,77 +517,109 @@ setMethod("get_swYears", "swInputData", function(object) object@years) #' @rdname swInputData-class #' @export -setMethod("swYears_StartYear", "swInputData", function(object) - swYears_StartYear(object@years)) +setMethod( + "swYears_StartYear", "swInputData", function(object) + swYears_StartYear(object@years) +) #' @rdname swInputData-class #' @export -setMethod("swYears_EndYear", "swInputData", - function(object) swYears_EndYear(object@years)) +setMethod( + "swYears_EndYear", + "swInputData", + function(object) swYears_EndYear(object@years) +) #' @rdname swInputData-class #' @export -setMethod("swYears_FDOFY", "swInputData", - function(object) swYears_FDOFY(object@years)) +setMethod( + "swYears_FDOFY", + "swInputData", + function(object) swYears_FDOFY(object@years) +) #' @rdname swInputData-class #' @export -setMethod("swYears_EDOEY", "swInputData", - function(object) swYears_EDOEY(object@years)) +setMethod( + "swYears_EDOEY", + "swInputData", + function(object) swYears_EDOEY(object@years) +) #' @rdname swInputData-class #' @export -setMethod("swYears_isNorth", "swInputData", - function(object) swYears_isNorth(object@years)) +setMethod( + "swYears_isNorth", + "swInputData", + function(object) swYears_isNorth(object@years) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swYears", signature = "swInputData", +setReplaceMethod( + "set_swYears", + signature = "swInputData", function(object, value) { object@years <- value validObject(object@years) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swYears_StartYear", signature = "swInputData", +setReplaceMethod( + "swYears_StartYear", + signature = "swInputData", function(object, value) { swYears_StartYear(object@years) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swYears_EndYear", signature = "swInputData", +setReplaceMethod( + "swYears_EndYear", + signature = "swInputData", function(object, value) { swYears_EndYear(object@years) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swYears_FDOFY", signature = "swInputData", +setReplaceMethod( + "swYears_FDOFY", + signature = "swInputData", function(object, value) { swYears_FDOFY(object@years) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swYears_EDOEY", signature = "swInputData", +setReplaceMethod( + "swYears_EDOEY", + signature = "swInputData", function(object, value) { swYears_EDOEY(object@years) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swYears_isNorth", signature = "swInputData", +setReplaceMethod( + "swYears_isNorth", + signature = "swInputData", function(object, value) { swYears_isNorth(object@years) <- as.logical(value) object -}) + } +) # Methods for slot \code{cloud} @@ -491,11 +629,14 @@ setMethod("get_swCloud", "swInputData", function(object) object@cloud) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swCloud", signature = "swInputData", +setReplaceMethod( + "set_swCloud", + signature = "swInputData", function(object, value) { set_swCloud(object@cloud) <- value object -}) + } +) # Methods for slot \code{weather} @@ -505,116 +646,167 @@ setMethod("get_swWeather", "swInputData", function(object) object@weather) #' @rdname swInputData-class #' @export -setMethod("swWeather_DaysRunningAverage", "swInputData", - function(object) swWeather_DaysRunningAverage(object@weather)) +setMethod( + "swWeather_DaysRunningAverage", + "swInputData", + function(object) swWeather_DaysRunningAverage(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_FirstYearHistorical", "swInputData", - function(object) swWeather_FirstYearHistorical(object@weather)) +setMethod( + "swWeather_FirstYearHistorical", + "swInputData", + function(object) swWeather_FirstYearHistorical(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_pct_SnowDrift", "swInputData", - function(object) swWeather_DaysRunningAverage(object@weather)) +setMethod( + "swWeather_pct_SnowDrift", + "swInputData", + function(object) swWeather_DaysRunningAverage(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_pct_SnowRunoff", "swInputData", - function(object) swWeather_pct_SnowDrift(object@weather)) +setMethod( + "swWeather_pct_SnowRunoff", + "swInputData", + function(object) swWeather_pct_SnowDrift(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_UseMarkov", "swInputData", - function(object) swWeather_UseMarkov(object@weather)) +setMethod( + "swWeather_UseMarkov", + "swInputData", + function(object) swWeather_UseMarkov(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_UseMarkovOnly", "swInputData", - function(object) swWeather_UseMarkovOnly(object@weather)) +setMethod( + "swWeather_UseMarkovOnly", + "swInputData", + function(object) swWeather_UseMarkovOnly(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_UseSnow", "swInputData", - function(object) swWeather_UseSnow(object@weather)) +setMethod( + "swWeather_UseSnow", + "swInputData", + function(object) swWeather_UseSnow(object@weather) +) #' @rdname swInputData-class #' @export -setMethod("swWeather_MonScalingParams", "swInputData", - function(object) swWeather_MonScalingParams(object@weather)) +setMethod( + "swWeather_MonScalingParams", + "swInputData", + function(object) swWeather_MonScalingParams(object@weather) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swWeather", signature = "swInputData", +setReplaceMethod( + "set_swWeather", + signature = "swInputData", function(object, value) { slot(object, "weather") <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_DaysRunningAverage", signature = "swInputData", +setReplaceMethod( + "swWeather_DaysRunningAverage", + signature = "swInputData", function(object, value) { swWeather_DaysRunningAverage(object@weather) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_FirstYearHistorical", signature = "swInputData", +setReplaceMethod( + "swWeather_FirstYearHistorical", + signature = "swInputData", function(object, value) { swWeather_FirstYearHistorical(object@weather) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_pct_SnowDrift", signature = "swInputData", +setReplaceMethod( + "swWeather_pct_SnowDrift", + signature = "swInputData", function(object, value) { swWeather_pct_SnowDrift(object@weather) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_pct_SnowRunoff", signature = "swInputData", +setReplaceMethod( + "swWeather_pct_SnowRunoff", + signature = "swInputData", function(object, value) { swWeather_pct_SnowRunoff(object@weather) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_UseMarkov", signature = "swInputData", +setReplaceMethod( + "swWeather_UseMarkov", + signature = "swInputData", function(object, value) { swWeather_UseMarkov(object@weather) <- as.logical(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_UseMarkovOnly", signature = "swInputData", +setReplaceMethod( + "swWeather_UseMarkovOnly", + signature = "swInputData", function(object, value) { swWeather_UseMarkovOnly(object@weather) <- as.logical(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_UseSnow", signature = "swInputData", +setReplaceMethod( + "swWeather_UseSnow", + signature = "swInputData", function(object, value) { swWeather_UseSnow(object@weather) <- as.logical(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swWeather_MonScalingParams", signature = "swInputData", +setReplaceMethod( + "swWeather_MonScalingParams", + signature = "swInputData", function(object, value) { swWeather_MonScalingParams(object@weather) <- value object -}) + } +) @@ -625,76 +817,106 @@ setMethod("get_swCloud", "swInputData", function(object) object@cloud) #' @rdname swInputData-class #' @export -setMethod("swCloud_SkyCover", "swInputData", function(object) - swCloud_SkyCover(object@cloud)) +setMethod( + "swCloud_SkyCover", "swInputData", function(object) + swCloud_SkyCover(object@cloud) +) #' @rdname swInputData-class #' @export -setMethod("swCloud_WindSpeed", "swInputData", function(object) - swCloud_WindSpeed(object@cloud)) +setMethod( + "swCloud_WindSpeed", "swInputData", function(object) + swCloud_WindSpeed(object@cloud) +) #' @rdname swInputData-class #' @export -setMethod("swCloud_Humidity", "swInputData", function(object) - swCloud_Humidity(object@cloud)) +setMethod( + "swCloud_Humidity", "swInputData", function(object) + swCloud_Humidity(object@cloud) +) #' @rdname swInputData-class #' @export -setMethod("swCloud_SnowDensity", "swInputData", - function(object) swCloud_SnowDensity(object@cloud)) +setMethod( + "swCloud_SnowDensity", + "swInputData", + function(object) swCloud_SnowDensity(object@cloud) +) #' @rdname swInputData-class #' @export -setMethod("swCloud_RainEvents", "swInputData", - function(object) swCloud_RainEvents(object@cloud)) +setMethod( + "swCloud_RainEvents", + "swInputData", + function(object) swCloud_RainEvents(object@cloud) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swCloud", signature = "swInputData", +setReplaceMethod( + "set_swCloud", + signature = "swInputData", function(object, value) { set_swCloud(object@cloud) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCloud_SkyCover", signature = "swInputData", +setReplaceMethod( + "swCloud_SkyCover", + signature = "swInputData", function(object, value) { swCloud_SkyCover(object@cloud) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCloud_WindSpeed", signature = "swInputData", +setReplaceMethod( + "swCloud_WindSpeed", + signature = "swInputData", function(object, value) { swCloud_WindSpeed(object@cloud) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCloud_Humidity", signature = "swInputData", +setReplaceMethod( + "swCloud_Humidity", + signature = "swInputData", function(object, value) { swCloud_Humidity(object@cloud) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCloud_SnowDensity", signature = "swInputData", +setReplaceMethod( + "swCloud_SnowDensity", + signature = "swInputData", function(object, value) { swCloud_SnowDensity(object@cloud) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCloud_RainEvents", signature = "swInputData", +setReplaceMethod( + "swCloud_RainEvents", + signature = "swInputData", function(object, value) { swCloud_RainEvents(object@cloud) <- value object -}) + } +) # Methods for slot \code{markov} @@ -704,86 +926,118 @@ setMethod("get_Markov", "swInputData", function(object) object@markov) #' @rdname swInputData-class #' @export -setMethod("swMarkov_Prob", "swInputData", - function(object) swMarkov_Prob(object@markov)) #' @rdname swInputData-class #' @export -setMethod("swMarkov_Conv", "swInputData", - function(object) swMarkov_Conv(object@markov)) +setMethod( + "swMarkov_Prob", + "swInputData", + function(object) swMarkov_Prob(object@markov) +) + +#' @rdname swInputData-class +#' @export +setMethod( + "swMarkov_Conv", + "swInputData", + function(object) swMarkov_Conv(object@markov) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_Markov", signature = "swInputData", +setReplaceMethod( + "set_Markov", + signature = "swInputData", function(object, value) { set_Markov(object@markov) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swMarkov_Prob", signature = "swInputData", +setReplaceMethod( + "swMarkov_Prob", + signature = "swInputData", function(object, value) { swMarkov_Prob(object@markov) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swMarkov_Conv", signature = "swInputData", +setReplaceMethod( + "swMarkov_Conv", + signature = "swInputData", function(object, value) { swMarkov_Conv(object@markov) <- value object -}) + } +) # Methods for slot \code{weatherHistory} #' @rdname swInputData-class #' @export -setMethod("get_WeatherHistory", "swInputData", - function(object) object@weatherHistory) +setMethod( + "get_WeatherHistory", + "swInputData", + function(object) object@weatherHistory +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_WeatherHistory", +setReplaceMethod( + "set_WeatherHistory", signature = c(object = "swInputData", value = "list"), function(object, value) { object@weatherHistory <- value object -}) + } +) #' @rdname swInputData-class #' @export -setMethod("get_swWeatherData", "swInputData", function(object, year) { - index <- which(names(object@weatherHistory) == as.character(year)) - if (length(index) != 1) { - stop("Index has wrong length.") - } - if (object@weatherHistory[[index]]@year != as.integer(year)) { - print("Somethings wrong with the weather data.") - } +setMethod( + "get_swWeatherData", + signature = "swInputData", + function(object, year) { + index <- which(names(object@weatherHistory) == as.character(year)) + if (length(index) != 1) { + stop("Index has wrong length.") + } + if (object@weatherHistory[[index]]@year != as.integer(year)) { + print("Somethings wrong with the weather data.") + } - object@weatherHistory[[index]] -}) + object@weatherHistory[[index]] + } +) #' @rdname swInputData-class #' @export -setMethod("get_swWeatherData", "list", function(object, year) { - index <- which(names(object) == as.character(year)) - if (length(index) != 1) { - stop("Index has wrong length.") - } - if (object[[index]]@year != as.integer(year)) { - print("Somethings wrong with the weather data.") - } +setMethod( + "get_swWeatherData", + signature = "list", + function(object, year) { + index <- which(names(object) == as.character(year)) + if (length(index) != 1) { + stop("Index has wrong length.") + } + if (object[[index]]@year != as.integer(year)) { + print("Somethings wrong with the weather data.") + } - object[[index]] -}) + object[[index]] + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swWeatherData", +setReplaceMethod( + "set_swWeatherData", signature = c(object = "swInputData", value = "swWeatherData"), function(object, value) { index <- which(names(object@weatherHistory) == as.character(value@year)) @@ -807,11 +1061,13 @@ setReplaceMethod("set_swWeatherData", } object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swWeatherData", +setReplaceMethod( + "set_swWeatherData", signature = c(object = "list", value = "swWeatherData"), function(object, value) { index <- which(names(object) == as.character(value@year)) @@ -835,7 +1091,8 @@ setReplaceMethod("set_swWeatherData", } object -}) + } +) # Methods for slot \code{prod} @@ -845,233 +1102,338 @@ setMethod("get_swProd", "swInputData", function(object) object@prod) #' @rdname swInputData-class #' @export -setMethod("swProd_Composition", "swInputData", - function(object) swProd_Composition(object@prod)) +setMethod( + "swProd_Composition", + "swInputData", + function(object) swProd_Composition(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_Albedo", "swInputData", - function(object) swProd_Albedo(object@prod)) +setMethod( + "swProd_Albedo", + "swInputData", + function(object) swProd_Albedo(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_CanopyHeight", "swInputData", - function(object) swProd_CanopyHeight(object@prod)) +setMethod( + "swProd_CanopyHeight", + "swInputData", + function(object) swProd_CanopyHeight(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_VegInterParam", "swInputData", - function(object) swProd_VegInterParam(object@prod)) +setMethod( + "swProd_VegInterParam", + "swInputData", + function(object) swProd_VegInterParam(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_LitterInterParam", "swInputData", - function(object) swProd_LitterInterParam(object@prod)) +setMethod( + "swProd_LitterInterParam", + "swInputData", + function(object) swProd_LitterInterParam(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_EsTpartitioning_param", "swInputData", - function(object) swProd_EsTpartitioning_param(object@prod)) +setMethod( + "swProd_EsTpartitioning_param", + "swInputData", + function(object) swProd_EsTpartitioning_param(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_Es_param_limit", "swInputData", - function(object) swProd_Es_param_limit(object@prod)) +setMethod( + "swProd_Es_param_limit", + "swInputData", + function(object) swProd_Es_param_limit(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_Shade", "swInputData", - function(object) swProd_Shade(object@prod)) +setMethod( + "swProd_Shade", + "swInputData", + function(object) swProd_Shade(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_HydrRedstro_use", "swInputData", - function(object) swProd_HydrRedstro_use(object@prod)) +setMethod( + "swProd_HydrRedstro_use", + "swInputData", + function(object) swProd_HydrRedstro_use(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_HydrRedstro", "swInputData", - function(object) swProd_HydrRedstro(object@prod)) +setMethod( + "swProd_HydrRedstro", + "swInputData", + function(object) swProd_HydrRedstro(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_CritSoilWaterPotential", "swInputData", - function(object) swProd_CritSoilWaterPotential(object@prod)) +setMethod( + "swProd_CritSoilWaterPotential", + "swInputData", + function(object) swProd_CritSoilWaterPotential(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_CO2Coefficients", "swInputData", - function(object) swProd_CO2Coefficients(object@prod)) +setMethod( + "swProd_CO2Coefficients", + "swInputData", + function(object) swProd_CO2Coefficients(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_MonProd_veg", "swInputData", - function(object, vegtype) swProd_MonProd_veg(object@prod, vegtype)) +setMethod( + "swProd_MonProd_veg", + "swInputData", + function(object, vegtype) swProd_MonProd_veg(object@prod, vegtype) +) #' @rdname swInputData-class #' @export -setMethod("swProd_MonProd_grass", "swInputData", - function(object) swProd_MonProd_grass(object@prod)) +setMethod( + "swProd_MonProd_grass", + "swInputData", + function(object) swProd_MonProd_grass(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_MonProd_shrub", "swInputData", - function(object) swProd_MonProd_shrub(object@prod)) +setMethod( + "swProd_MonProd_shrub", + "swInputData", + function(object) swProd_MonProd_shrub(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_MonProd_tree", "swInputData", - function(object) swProd_MonProd_tree(object@prod)) +setMethod( + "swProd_MonProd_tree", + "swInputData", + function(object) swProd_MonProd_tree(object@prod) +) #' @rdname swInputData-class #' @export -setMethod("swProd_MonProd_forb", "swInputData", - function(object) swProd_MonProd_forb(object@prod)) +setMethod( + "swProd_MonProd_forb", + "swInputData", + function(object) swProd_MonProd_forb(object@prod) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swProd", signature = "swInputData", +setReplaceMethod( + "set_swProd", + signature = "swInputData", function(object, value) { set_swProd(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_Composition", signature = "swInputData", +setReplaceMethod( + "swProd_Composition", + signature = "swInputData", function(object, value) { swProd_Composition(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_Albedo", signature = "swInputData", +setReplaceMethod( + "swProd_Albedo", + signature = "swInputData", function(object, value) { swProd_Albedo(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_CanopyHeight", signature = "swInputData", +setReplaceMethod( + "swProd_CanopyHeight", + signature = "swInputData", function(object, value) { swProd_CanopyHeight(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_VegInterParam", signature = "swInputData", +setReplaceMethod( + "swProd_VegInterParam", + signature = "swInputData", function(object, value) { swProd_VegInterParam(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_LitterInterParam", signature = "swInputData", +setReplaceMethod( + "swProd_LitterInterParam", + signature = "swInputData", function(object, value) { swProd_LitterInterParam(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_EsTpartitioning_param", signature = "swInputData", +setReplaceMethod( + "swProd_EsTpartitioning_param", + signature = "swInputData", function(object, value) { swProd_EsTpartitioning_param(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_Es_param_limit", signature = "swInputData", +setReplaceMethod( + "swProd_Es_param_limit", + signature = "swInputData", function(object, value) { swProd_Es_param_limit(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_Shade", signature = "swInputData", +setReplaceMethod( + "swProd_Shade", + signature = "swInputData", function(object, value) { swProd_Shade(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_HydrRedstro_use", signature = "swInputData", +setReplaceMethod( + "swProd_HydrRedstro_use", + signature = "swInputData", function(object, value) { swProd_HydrRedstro_use(object@prod) <- as.logical(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_HydrRedstro", signature = "swInputData", +setReplaceMethod( + "swProd_HydrRedstro", + signature = "swInputData", function(object, value) { swProd_HydrRedstro(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_CritSoilWaterPotential", signature = "swInputData", +setReplaceMethod( + "swProd_CritSoilWaterPotential", + signature = "swInputData", function(object, value) { swProd_CritSoilWaterPotential(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_CO2Coefficients", signature = "swInputData", +setReplaceMethod( + "swProd_CO2Coefficients", + signature = "swInputData", function(object, value) { swProd_CO2Coefficients(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_MonProd_veg", signature = "swInputData", +setReplaceMethod( + "swProd_MonProd_veg", + signature = "swInputData", function(object, vegtype, value) { swProd_MonProd_veg(object@prod, vegtype) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_MonProd_grass", signature = "swInputData", +setReplaceMethod( + "swProd_MonProd_grass", + signature = "swInputData", function(object, value) { swProd_MonProd_grass(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_MonProd_shrub", signature = "swInputData", +setReplaceMethod( + "swProd_MonProd_shrub", + signature = "swInputData", function(object, value) { swProd_MonProd_shrub(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_MonProd_tree", signature = "swInputData", +setReplaceMethod( + "swProd_MonProd_tree", + signature = "swInputData", function(object, value) { swProd_MonProd_tree(object@prod) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swProd_MonProd_forb", signature = "swInputData", +setReplaceMethod( + "swProd_MonProd_forb", + signature = "swInputData", function(object, value) { swProd_MonProd_forb(object@prod) <- value object -}) + } +) # Methods for slot \code{site} @@ -1089,67 +1451,103 @@ setMethod( #' @rdname swInputData-class #' @export -setMethod("swSite_SWClimits", "swInputData", - function(object) swSite_SWClimits(object@site)) +setMethod( + "swSite_SWClimits", + "swInputData", + function(object) swSite_SWClimits(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_ModelFlags", "swInputData", - function(object) swSite_ModelFlags(object@site)) +setMethod( + "swSite_ModelFlags", + "swInputData", + function(object) swSite_ModelFlags(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_ModelCoefficients", "swInputData", - function(object) swSite_ModelCoefficients(object@site)) +setMethod( + "swSite_ModelCoefficients", + "swInputData", + function(object) swSite_ModelCoefficients(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_SnowSimulationParams", "swInputData", - function(object) swSite_SnowSimulationParams(object@site)) +setMethod( + "swSite_SnowSimulationParams", + "swInputData", + function(object) swSite_SnowSimulationParams(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_DrainageCoefficient", "swInputData", - function(object) swSite_DrainageCoefficient(object@site)) +setMethod( + "swSite_DrainageCoefficient", + "swInputData", + function(object) swSite_DrainageCoefficient(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_EvapCoefficients", "swInputData", - function(object) swSite_EvapCoefficients(object@site)) +setMethod( + "swSite_EvapCoefficients", + "swInputData", + function(object) swSite_EvapCoefficients(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_TranspCoefficients", "swInputData", - function(object) swSite_TranspCoefficients(object@site)) +setMethod( + "swSite_TranspCoefficients", + "swInputData", + function(object) swSite_TranspCoefficients(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_IntrinsicSiteParams", "swInputData", - function(object) swSite_IntrinsicSiteParams(object@site)) +setMethod( + "swSite_IntrinsicSiteParams", + "swInputData", + function(object) swSite_IntrinsicSiteParams(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_SoilTemperatureFlag", "swInputData", - function(object) swSite_SoilTemperatureFlag(object@site)) +setMethod( + "swSite_SoilTemperatureFlag", + "swInputData", + function(object) swSite_SoilTemperatureFlag(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_SoilTemperatureConsts", "swInputData", - function(object) swSite_SoilTemperatureConsts(object@site)) +setMethod( + "swSite_SoilTemperatureConsts", + "swInputData", + function(object) swSite_SoilTemperatureConsts(object@site) +) #' @rdname swInputData-class #' @export -setMethod("swSite_TranspirationRegions", "swInputData", - function(object) swSite_TranspirationRegions(object@site)) +setMethod( + "swSite_TranspirationRegions", + "swInputData", + function(object) swSite_TranspirationRegions(object@site) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swSite", signature = "swInputData", +setReplaceMethod( + "set_swSite", + signature = "swInputData", function(object, value) { set_swSite(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export @@ -1164,91 +1562,124 @@ setReplaceMethod( #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_SWClimits", signature = "swInputData", +setReplaceMethod( + "swSite_SWClimits", + signature = "swInputData", function(object, value) { swSite_SWClimits(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_ModelFlags", signature = "swInputData", +setReplaceMethod( + "swSite_ModelFlags", + signature = "swInputData", function(object, value) { swSite_ModelFlags(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_ModelCoefficients", signature = "swInputData", +setReplaceMethod( + "swSite_ModelCoefficients", + signature = "swInputData", function(object, value) { swSite_ModelCoefficients(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_SnowSimulationParams", signature = "swInputData", +setReplaceMethod( + "swSite_SnowSimulationParams", + signature = "swInputData", function(object, value) { swSite_SnowSimulationParams(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_DrainageCoefficient", signature = "swInputData", +setReplaceMethod( + "swSite_DrainageCoefficient", + signature = "swInputData", function(object, value) { swSite_DrainageCoefficient(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_EvapCoefficients", signature = "swInputData", +setReplaceMethod( + "swSite_EvapCoefficients", + signature = "swInputData", function(object, value) { swSite_EvapCoefficients(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_TranspCoefficients", signature = "swInputData", +setReplaceMethod( + "swSite_TranspCoefficients", + signature = "swInputData", function(object, value) { swSite_TranspCoefficients(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_IntrinsicSiteParams", signature = "swInputData", +setReplaceMethod( + "swSite_IntrinsicSiteParams", + signature = "swInputData", function(object, value) { swSite_IntrinsicSiteParams(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_SoilTemperatureFlag", signature = "swInputData", +setReplaceMethod( + "swSite_SoilTemperatureFlag", + signature = "swInputData", function(object, value) { swSite_SoilTemperatureFlag(object@site) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_SoilTemperatureConsts", signature = "swInputData", +setReplaceMethod( + "swSite_SoilTemperatureConsts", + signature = "swInputData", function(object, value) { swSite_SoilTemperatureConsts(slot(object, "site")) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swSite_TranspirationRegions", signature = "swInputData", +setReplaceMethod( + "swSite_TranspirationRegions", + signature = "swInputData", function(object, value) { swSite_TranspirationRegions(object@site) <- value object -}) + } +) # Methods for slot \code{soils} @@ -1280,7 +1711,8 @@ setReplaceMethod( function(object, value) { set_swSoils(object@soils) <- value object -}) + } +) #' @rdname swInputData-class #' @export @@ -1290,7 +1722,8 @@ setReplaceMethod( function(object, value) { set_swSoils(object@soils) <- value object -}) + } +) #' @rdname swInputData-class #' @export @@ -1316,7 +1749,8 @@ setReplaceMethod( swSoils_Layers(object@soils) <- value object -}) + } +) #' @rdname swInputData-class #' @export @@ -1326,7 +1760,8 @@ setReplaceMethod( function(object, value) { swSoils_SWRCp(object@soils) <- value object -}) + } +) # Methods for slot \code{swc} @@ -1340,81 +1775,115 @@ setMethod("swSWC_use", "swInputData", function(object) swSWC_use(object@swc)) #' @rdname swInputData-class #' @export -setMethod("swSWC_prefix", "swInputData", - function(object) swSWC_prefix(object@swc)) +setMethod( + "swSWC_prefix", + "swInputData", + function(object) swSWC_prefix(object@swc) +) #' @rdname swInputData-class #' @export -setMethod("swSWC_FirstYear", "swInputData", - function(object) swSWC_FirstYear(object@swc)) +setMethod( + "swSWC_FirstYear", + "swInputData", + function(object) swSWC_FirstYear(object@swc) +) #' @rdname swInputData-class #' @export -setMethod("swSWC_Method", "swInputData", - function(object) swSWC_Method(object@swc)) +setMethod( + "swSWC_Method", + "swInputData", + function(object) swSWC_Method(object@swc) +) #' @rdname swInputData-class #' @export -setMethod("swSWC_HistoricList", "swInputData", - function(object) swSWC_HistoricList(object@swc)) +setMethod( + "swSWC_HistoricList", + "swInputData", + function(object) swSWC_HistoricList(object@swc) +) #' @rdname swInputData-class #' @export -setMethod("swSWC_HistoricData", "swInputData", - function(object, year) swSWC_HistoricData(object@swc, year)) +setMethod( + "swSWC_HistoricData", + "swInputData", + function(object, year) swSWC_HistoricData(object@swc, year) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swSWC", +setReplaceMethod( + "set_swSWC", signature = c(object = "swInputData", value = "swSWC"), function(object, value) { object@swc <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_use", +setReplaceMethod( + "swSWC_use", signature = c(object = "swInputData", value = "logical"), function(object, value) { swSWC_use(object@swc) <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_prefix", +setReplaceMethod( + "swSWC_prefix", signature = c(object = "swInputData", value = "character"), function(object, value) { swSWC_prefix(object@swc) <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_FirstYear", +setReplaceMethod( + "swSWC_FirstYear", signature = c(object = "swInputData", value = "integer"), function(object, value) { swSWC_FirstYear(object@swc) <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_Method", +setReplaceMethod( + "swSWC_Method", signature = c(object = "swInputData", value = "integer"), function(object, value) { swSWC_Method(object@swc) <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_HistoricList", +setReplaceMethod( + "swSWC_HistoricList", signature = c(object = "swInputData", value = "list"), function(object, value) { swSWC_HistoricList(object@swc) <- value object -}) + } +) + #' @rdname swInputData-class #' @export -setReplaceMethod("swSWC_HistoricData", +setReplaceMethod( + "swSWC_HistoricData", signature = c(object = "swInputData", value = "swSWC_hist"), function(object, value) { index <- which(names(object@swc@History) == as.character(value@year)) @@ -1438,7 +1907,8 @@ setReplaceMethod("swSWC_HistoricData", } object -}) + } +) # Methods for slot \code{carbon} @@ -1448,77 +1918,110 @@ setMethod("get_swCarbon", "swInputData", function(object) object@carbon) #' @rdname swInputData-class #' @export -setMethod("swCarbon_Use_Bio", "swInputData", - function(object) swCarbon_Use_Bio(object@carbon)) +setMethod( + "swCarbon_Use_Bio", + "swInputData", + function(object) swCarbon_Use_Bio(object@carbon) +) #' @rdname swInputData-class #' @export -setMethod("swCarbon_Use_WUE", "swInputData", - function(object) swCarbon_Use_WUE(object@carbon)) +setMethod( + "swCarbon_Use_WUE", + "swInputData", + function(object) swCarbon_Use_WUE(object@carbon) +) #' @rdname swInputData-class #' @export -setMethod("swCarbon_Scenario", "swInputData", - function(object) swCarbon_Scenario(object@carbon)) +setMethod( + "swCarbon_Scenario", + "swInputData", + function(object) swCarbon_Scenario(object@carbon) +) #' @rdname swInputData-class #' @export -setMethod("swCarbon_DeltaYear", "swInputData", - function(object) swCarbon_DeltaYear(object@carbon)) +setMethod( + "swCarbon_DeltaYear", + "swInputData", + function(object) swCarbon_DeltaYear(object@carbon) +) #' @rdname swInputData-class #' @export -setMethod("swCarbon_CO2ppm", "swInputData", - function(object) swCarbon_CO2ppm(object@carbon)) +setMethod( + "swCarbon_CO2ppm", + "swInputData", + function(object) swCarbon_CO2ppm(object@carbon) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swCarbon", signature = "swInputData", +setReplaceMethod( + "set_swCarbon", + signature = "swInputData", function(object, value) { set_swCarbon(object@carbon) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCarbon_Use_Bio", signature = "swInputData", +setReplaceMethod( + "swCarbon_Use_Bio", + signature = "swInputData", function(object, value) { swCarbon_Use_Bio(object@carbon) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCarbon_Use_WUE", signature = "swInputData", +setReplaceMethod( + "swCarbon_Use_WUE", + signature = "swInputData", function(object, value) { swCarbon_Use_WUE(object@carbon) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCarbon_Scenario", signature = "swInputData", +setReplaceMethod( + "swCarbon_Scenario", + signature = "swInputData", function(object, value) { swCarbon_Scenario(object@carbon) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCarbon_DeltaYear", signature = "swInputData", +setReplaceMethod( + "swCarbon_DeltaYear", + signature = "swInputData", function(object, value) { swCarbon_DeltaYear(object@carbon) <- as.integer(value) object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swCarbon_CO2ppm", signature = "swInputData", +setReplaceMethod( + "swCarbon_CO2ppm", + signature = "swInputData", function(object, value) { swCarbon_CO2ppm(object@carbon) <- value object -}) + } +) # Methods for slot \code{output} @@ -1528,111 +2031,142 @@ setMethod("get_swOUT", "swInputData", function(object) object@output) #' @rdname swInputData-class #' @export -setMethod("swOUT_TimeStep", "swInputData", - function(object) swOUT_TimeStep(object@output)) +setMethod( + "swOUT_TimeStep", + "swInputData", + function(object) swOUT_TimeStep(object@output) +) #' @rdname swInputData-class #' @export -setMethod("swOUT_OutputSeparator", "swInputData", - function(object) swOUT_OutputSeparator(object@output)) +setMethod( + "swOUT_OutputSeparator", + "swInputData", + function(object) swOUT_OutputSeparator(object@output) +) #' @rdname swInputData-class #' @export -setReplaceMethod("set_swOUT", signature = "swInputData", +setReplaceMethod( + "set_swOUT", + signature = "swInputData", function(object, value) { set_swOUT(object@output) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swOUT_TimeStep", signature = "swInputData", +setReplaceMethod( + "swOUT_TimeStep", + signature = "swInputData", function(object, value) { swOUT_TimeStep(object@output) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swOUT_TimeStepsForEveryKey", signature = "swInputData", +setReplaceMethod( + "swOUT_TimeStepsForEveryKey", + signature = "swInputData", function(object, value) { swOUT_TimeStepsForEveryKey(object@output) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("swOUT_OutputSeparator", signature = "swInputData", +setReplaceMethod( + "swOUT_OutputSeparator", + signature = "swInputData", function(object, value) { swOUT_OutputSeparator(object@output) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("activate_swOUT_OutKey", signature = "swInputData", +setReplaceMethod( + "activate_swOUT_OutKey", + signature = "swInputData", function(object, value) { activate_swOUT_OutKey(object@output) <- value object -}) + } +) #' @rdname swInputData-class #' @export -setReplaceMethod("deactivate_swOUT_OutKey", signature = "swInputData", +setReplaceMethod( + "deactivate_swOUT_OutKey", + signature = "swInputData", function(object, value) { deactivate_swOUT_OutKey(object@output) <- value object -}) + } +) # Methods for slot \code{log} #' @rdname swInputData-class #' @export -setReplaceMethod("swLog_setLine", "swInputData", +setReplaceMethod( + "swLog_setLine", + "swInputData", function(object, value) { if (object@log@UsedLines <= object@log@MaxLines) { object@log@LogData[object@log@UsedLines] <- value object@log@UsedLines <- object@log@UsedLines + 1 } - + validObject(object) object -}) -## + } +) + #' @rdname swInputData-class #' @export # nolint start -setMethod(f="swReadLines", signature = c(object="swInputData",file="character"), function(object,file) { - print("TODO: method 'swReadLines' for class 'swInputData' is not up-to-date; hard-coded indices are incorrect") - - object@files <- swReadLines(object@files,file) - object@files@ProjDir <- dirname(file) - object@years <- swReadLines(object@years,file.path(object@files@ProjDir, object@files@InFiles[2])) - object@weather <- swReadLines(object@weather,file.path(object@files@ProjDir, object@files@InFiles[6])) - weatherFiles <- list.files(path=file.path(object@files@ProjDir,dirname(object@files@WeatherPrefix)), pattern=basename(object@files@WeatherPrefix), include.dirs=F, recursive=F, full.names=T) - object@weatherHistory <- list() - if(length(weatherFiles) > 0) { - for(i in 1:length(weatherFiles)) { - wd <- new("swWeatherData",year=0) - wd <- swReadLines(wd, weatherFiles[i]) - object@weatherHistory[[i]] <- wd - } - } - - object@cloud <- swReadLines(object@cloud,file.path(object@files@ProjDir, object@files@InFiles[9])) - if(all(file.exists(file.path(object@files@ProjDir, object@files@InFiles[7:8])))) - object@markov <- swReadLines(object@markov,file.path(object@files@ProjDir, object@files@InFiles[7:8])) - object@prod <- swReadLines(object@prod,file.path(object@files@ProjDir, object@files@InFiles[10])) - object@site <- swReadLines(object@site,file.path(object@files@ProjDir, object@files@InFiles[4])) - object@soils <- swReadLines(object@soils,file.path(object@files@ProjDir, object@files@InFiles[5])) - if(file.exists(file.path(object@files@ProjDir, object@files@InFiles[11]))) {#Optional File - object@estab <- swReadLines(object@estab,c(file.path(object@files@ProjDir, object@files@InFiles[11]),object@files@ProjDir)) - } - object@output <- swReadLines(object@output,file.path(object@files@ProjDir, object@files@InFiles[14])) - object@swc <- swReadLines(object@swc,file.path(object@files@ProjDir, object@files@InFiles[13])) - object@carbon <- swReadLines(object@carbon, file.path(object@files@ProjDir, object@files@InFiles[12])) - return(object) - }) +setMethod( + "swReadLines", + signature = c(object="swInputData",file="character"), + function(object,file) { + print("TODO: method 'swReadLines' for class 'swInputData' is not up-to-date; hard-coded indices are incorrect") + + object@files <- swReadLines(object@files,file) + object@files@ProjDir <- dirname(file) + object@years <- swReadLines(object@years,file.path(object@files@ProjDir, object@files@InFiles[2])) + object@weather <- swReadLines(object@weather,file.path(object@files@ProjDir, object@files@InFiles[6])) + weatherFiles <- list.files(path=file.path(object@files@ProjDir,dirname(object@files@WeatherPrefix)), pattern=basename(object@files@WeatherPrefix), include.dirs=F, recursive=F, full.names=T) + object@weatherHistory <- list() + if(length(weatherFiles) > 0) { + for(i in 1:length(weatherFiles)) { + wd <- new("swWeatherData",year=0) + wd <- swReadLines(wd, weatherFiles[i]) + object@weatherHistory[[i]] <- wd + } + } + + object@cloud <- swReadLines(object@cloud,file.path(object@files@ProjDir, object@files@InFiles[9])) + if(all(file.exists(file.path(object@files@ProjDir, object@files@InFiles[7:8])))) + object@markov <- swReadLines(object@markov,file.path(object@files@ProjDir, object@files@InFiles[7:8])) + object@prod <- swReadLines(object@prod,file.path(object@files@ProjDir, object@files@InFiles[10])) + object@site <- swReadLines(object@site,file.path(object@files@ProjDir, object@files@InFiles[4])) + object@soils <- swReadLines(object@soils,file.path(object@files@ProjDir, object@files@InFiles[5])) + if(file.exists(file.path(object@files@ProjDir, object@files@InFiles[11]))) {#Optional File + object@estab <- swReadLines(object@estab,c(file.path(object@files@ProjDir, object@files@InFiles[11]),object@files@ProjDir)) + } + object@output <- swReadLines(object@output,file.path(object@files@ProjDir, object@files@InFiles[14])) + object@swc <- swReadLines(object@swc,file.path(object@files@ProjDir, object@files@InFiles[13])) + object@carbon <- swReadLines(object@carbon, file.path(object@files@ProjDir, object@files@InFiles[12])) + return(object) + } +) # nolint end diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index 0c5c01e9..5bb662ef 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -175,6 +175,13 @@ dbW_weatherData_to_blob_old <- function(weatherData, type = "gzip") { +#' Add a new site description to a weather database +#' +#' @param Site_id An integer number. +#' @param lat A numeric value. +#' @param long A numeric value. +#' @param Label A character string. +#' #' @export dbW_addSite <- function(Site_id = NULL, lat = NULL, long = NULL, Label = NULL) { .Deprecated("dbW_addSites") diff --git a/R/swWeatherGenerator.R b/R/swWeatherGenerator.R index d4cd867a..329cc29d 100644 --- a/R/swWeatherGenerator.R +++ b/R/swWeatherGenerator.R @@ -117,16 +117,23 @@ #' swMarkov_Conv(sw_in) <- res2[["mkv_woy"]] #' #' @export -dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, - propagate_NAs = FALSE, valNA = NULL, +dbW_estimate_WGen_coefs <- function( + weatherData, + WET_limit_cm = 0, + propagate_NAs = FALSE, + valNA = NULL, imputation_type = c("none", "mean", "locf"), - imputation_span = 5L) { + imputation_span = 5L +) { # daily weather data - if (inherits(weatherData, "list") && - all(sapply(weatherData, inherits, what = "swWeatherData"))) { - wdata <- data.frame(dbW_weatherData_to_dataframe(weatherData, - valNA = valNA)) + if ( + inherits(weatherData, "list") && + all(sapply(weatherData, inherits, what = "swWeatherData")) + ) { + wdata <- data.frame( + dbW_weatherData_to_dataframe(weatherData, valNA = valNA) + ) } else { wdata <- data.frame(set_missing_weather(weatherData, valNA = valNA)) } @@ -139,8 +146,12 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, #----------------------------------------------------------------------------- #------ calculate mkv_prob.in - icol_day <- grep("DOY|Day", colnames(wdata), ignore.case = TRUE, - value = TRUE) + icol_day <- grep( + "DOY|Day", + colnames(wdata), + ignore.case = TRUE, + value = TRUE + ) #--- calculate WET days wdata[["WET"]] <- wdata[["PPT_cm"]] > WET_limit_cm @@ -156,25 +167,31 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, #--- output container: dataframe for storing mkv_prob.in data doys <- 366 # see SOILWAT2 constant `MAX_DAYS` outs <- c("DOY", "p_W_W", "p_W_D", "PPT_avg", "PPT_sd") - mkv_prob <- data.frame(matrix(NA, nrow = doys, ncol = length(outs), - dimnames = list(NULL, outs))) + mkv_prob <- data.frame( + matrix(nrow = doys, ncol = length(outs), dimnames = list(NULL, outs)) + ) mkv_prob[, "DOY"] <- seq_len(doys) #--- mean/sd of precipitation across years for doy i if it is a wet day - temp <- by(wdata[, c("WET", "PPT_cm")], INDICES = wdata[, icol_day], + temp <- by( + wdata[, c("WET", "PPT_cm")], + INDICES = wdata[, icol_day], function(x) { # if `na.rm` is TRUE, then remove NAs in `WET`; if only NAs -> PPT_avg = 0 # if `na.rm` is FALSE, then any NA propagates to PPT_avg = NA iswet <- if (na.rm) which(x[, "WET"]) else x[, "WET"] ppt <- x[iswet, "PPT_cm"] if (length(ppt) > 0) { - c(PPT_avg = mean(ppt, na.rm = na.rm), - PPT_sd = sd(ppt, na.rm = na.rm)) + c( + PPT_avg = mean(ppt, na.rm = na.rm), + PPT_sd = sd(ppt, na.rm = na.rm) + ) } else { # there are no wet days for this DOY; thus PPT = 0 c(PPT_avg = 0, PPT_sd = 0) } - }) + } + ) mkv_prob[, c("PPT_avg", "PPT_sd")] <- do.call(rbind, temp) @@ -184,8 +201,10 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # dryprob = p(wet|dry) = "p_W_D" #nolint # = probability that it precipitates today if it was dry # (did not precipitate) yesterday - temp <- by(wdata[, c("WET", "WET_yesterday", "WW", "WD")], - INDICES = wdata[, icol_day], function(x) { + temp <- by( + wdata[, c("WET", "WET_yesterday", "WW", "WD")], + INDICES = wdata[, icol_day], + function(x) { # p(wet): probability that today is wet p_W <- mean(x[, "WET"], na.rm = na.rm) # number of DOY = i that follow a wet day @@ -195,30 +214,32 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, c( p_W_W = if (isTRUE(n_Wy > 0)) { - # `p(wet|wet)` estimated as the number of years with doy being wet - # given previous day is wet divided by the number of years with - # the previous day being wet - sum(x[, "WW"], na.rm = na.rm) / n_Wy - } else { - # `p(wet|wet)` approximated with frequency that today is wet for - # data where yesterday is never wet (avoid division by zero); - # this value is likely near 0 because p(wet yesterday) = 0 - # and p(wet today) ~ p(wet yesterday) - p_W - }, + # `p(wet|wet)` estimated as the number of years with doy being wet + # given previous day is wet divided by the number of years with + # the previous day being wet + sum(x[, "WW"], na.rm = na.rm) / n_Wy + } else { + # `p(wet|wet)` approximated with frequency that today is wet for + # data where yesterday is never wet (avoid division by zero); + # this value is likely near 0 because p(wet yesterday) = 0 + # and p(wet today) ~ p(wet yesterday) + p_W + }, p_W_D = if (isTRUE(n_Dy > 0)) { - # `p(wet|dry)` estimated as the number of years with doy being wet - # given previous day is dry divided by the number of years with - # the previous day being dry - sum(x[, "WD"], na.rm = na.rm) / n_Dy - } else { - # `p(wet|dry)` approximated with frequency that today is wet for - # data where yesterday is never dry (avoid division by zero); - # this value is likely near 1 because p(wet yesterday) = 1 - # and p(wet today) ~ p(wet yesterday) - p_W - }) - }) + # `p(wet|dry)` estimated as the number of years with doy being wet + # given previous day is dry divided by the number of years with + # the previous day being dry + sum(x[, "WD"], na.rm = na.rm) / n_Dy + } else { + # `p(wet|dry)` approximated with frequency that today is wet for + # data where yesterday is never dry (avoid division by zero); + # this value is likely near 1 because p(wet yesterday) = 1 + # and p(wet today) ~ p(wet yesterday) + p_W + } + ) + } + ) mkv_prob[, c("p_W_W", "p_W_D")] <- do.call(rbind, temp) #--- Make sure probability values are well formed: 0 <= p <= 1 @@ -233,14 +254,17 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, if (anyNA(mkv_prob)) { ids_baddoy <- mkv_prob[apply(mkv_prob, 1, anyNA), "DOY"] - msg <- paste0("values for n = ", length(ids_baddoy), " DOYs: ", - paste(ids_baddoy, collapse = ", ")) + msg <- paste0( + "values for n = ", length(ids_baddoy), " DOYs: ", + paste(ids_baddoy, collapse = ", ") + ) if (imputation_type == "none") { warning("Insufficient weather data to estimate ", msg) } else { message("Impute missing `mkv_prob` ", msg) - mkv_prob <- rSW2utils::impute_df(mkv_prob, + mkv_prob <- rSW2utils::impute_df( + mkv_prob, imputation_type = imputation_type, imputation_span = imputation_span, cyclic = TRUE @@ -258,25 +282,40 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, #--- output container: dataframe for storing mkv_cov.in data weeks <- 53 # see SOILWAT2 constant `MAX_WEEKS` - outs <- c("WEEK", "wTmax_C", "wTmin_C", + outs <- c( + "WEEK", "wTmax_C", "wTmin_C", "var_MAX", "cov_MAXMIN", "cov_MINMAX", "var_MIN", - "CF_Tmax_wet", "CF_Tmax_dry", "CF_Tmin_wet", "CF_Tmin_dry") - mkv_cov <- data.frame(matrix(NA, nrow = weeks, ncol = length(outs), - dimnames = list(NULL, outs))) + "CF_Tmax_wet", "CF_Tmax_dry", "CF_Tmin_wet", "CF_Tmin_dry" + ) + mkv_cov <- data.frame( + matrix(nrow = weeks, ncol = length(outs), dimnames = list(NULL, outs)) + ) #--- Aggregate for each week mkv_cov[, "WEEK"] <- seq_len(weeks) # Average weekly temperature values - mkv_cov[, "wTmax_C"] <- tapply(wdata[["Tmax_C"]], wdata[["WEEK"]], mean, - na.rm = na.rm) - mkv_cov[, "wTmin_C"] <- tapply(wdata[["Tmin_C"]], wdata[["WEEK"]], mean, - na.rm = na.rm) + mkv_cov[, "wTmax_C"] <- tapply( + wdata[["Tmax_C"]], + wdata[["WEEK"]], + mean, + na.rm = na.rm + ) + mkv_cov[, "wTmin_C"] <- tapply( + wdata[["Tmin_C"]], + wdata[["WEEK"]], + mean, + na.rm = na.rm + ) # Variance-covariance values among maximum and minimum temperature - temp <- by(wdata[, c("Tmax_C", "Tmin_C")], wdata[["WEEK"]], cov, - use = if (na.rm) "na.or.complete" else "everything") + temp <- by( + wdata[, c("Tmax_C", "Tmin_C")], + wdata[["WEEK"]], + cov, + use = if (na.rm) "na.or.complete" else "everything" + ) temp <- sapply(temp, function(x) c(x[1, 1], x[1, 2], x[2, 1], x[2, 2])) mkv_cov[, "var_MAX"] <- temp[1, ] mkv_cov[, "cov_MAXMIN"] <- temp[2, ] @@ -288,7 +327,9 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # Used to correct random temperature values based on average conditions # if that target day is wet or dry (e.g., overcast weather tends to # increase minimum daily temperature and decrease maximum daily tempature) - temp <- by(wdata[, c("WET", "Tmax_C", "Tmin_C")], INDICES = wdata[, "WEEK"], + temp <- by( + wdata[, c("WET", "Tmax_C", "Tmin_C")], + INDICES = wdata[, "WEEK"], function(x) { # if `na.rm` is TRUE, then consider `WET` = NA as FALSE # if `na.rm` is FALSE, then propagate NAs in `WET` -> neither wet nor dry @@ -309,26 +350,27 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # if no wet/dry days in week of year, then use overall mean instead # of conditional mean (i.e., given wet/dry) - c(Tmax_mean_wet = if (isanywet) { - mean(x[iswet, "Tmax_C"], na.rm = na.rm) - } else { - mean(x[, "Tmax_C"], na.rm = na.rm) - }, + c( + Tmax_mean_wet = if (isanywet) { + mean(x[iswet, "Tmax_C"], na.rm = na.rm) + } else { + mean(x[, "Tmax_C"], na.rm = na.rm) + }, Tmax_mean_dry = if (isanydry) { - mean(x[isdry, "Tmax_C"], na.rm = na.rm) - } else { - mean(x[, "Tmax_C"], na.rm = na.rm) - }, + mean(x[isdry, "Tmax_C"], na.rm = na.rm) + } else { + mean(x[, "Tmax_C"], na.rm = na.rm) + }, Tmin_mean_wet = if (isanywet) { - mean(x[iswet, "Tmin_C"], na.rm = na.rm) - } else { - mean(x[, "Tmin_C"], na.rm = na.rm) - }, + mean(x[iswet, "Tmin_C"], na.rm = na.rm) + } else { + mean(x[, "Tmin_C"], na.rm = na.rm) + }, Tmin_mean_dry = if (isanydry) { - mean(x[isdry, "Tmin_C"], na.rm = na.rm) - } else { - mean(x[, "Tmin_C"], na.rm = na.rm) - } + mean(x[isdry, "Tmin_C"], na.rm = na.rm) + } else { + mean(x[, "Tmin_C"], na.rm = na.rm) + } ) } ) @@ -420,14 +462,19 @@ print_mkv_files <- function(mkv_doy, mkv_woy, path, digits = 5) { check_weather <- function(weather, required_variables) { stopifnot( length(dim(weather)) == 2, - sapply(required_variables, function(p) - length(grep(p, x = colnames(weather))) == 1) + sapply( + required_variables, + function(p) length(grep(p, x = colnames(weather))) == 1 + ) ) } # Aggregate daily weather for each time step -prepare_weather <- function(data_daily, - time_steps = c("Year", "Month", "Week", "Day"), na.rm = FALSE) { +prepare_weather <- function( + data_daily, + time_steps = c("Year", "Month", "Week", "Day"), + na.rm = FALSE +) { weather_list <- list() id_daily <- "Day" == time_steps @@ -441,8 +488,11 @@ prepare_weather <- function(data_daily, } # Prepare weather data object for \code{\link{compare_dailyweather}} -prepare_weather_for_comparison <- function(weather, - time_steps = c("Year", "Month", "Week", "Day"), na.rm = FALSE) { +prepare_weather_for_comparison <- function( + weather, + time_steps = c("Year", "Month", "Week", "Day"), + na.rm = FALSE +) { req_vars <- c("Year", "Tmax_C", "Tmin_C", "PPT_cm") if (length(weather) == length(time_steps) && @@ -550,8 +600,14 @@ prepare_weather_for_comparison <- function(weather, #' unlink(list.files(path), force = TRUE) #' #' @export -compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, - path, tag) { +compare_weather <- function( + ref_weather, + weather, + N, + WET_limit_cm = 0, + path, + tag +) { dir.create(path, recursive = TRUE, showWarnings = FALSE) time_steps <- c("Year", "Month", "Week", "Day") @@ -578,17 +634,29 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #------- OUTPUTS #--- Compare means and SDs: boxplots calculate_MeansSDs <- function(data) { - temp <- lapply(weather_vars, function(var) - sapply(time_steps, function(ts) - sapply(data, function(x) { - temp <- x[[ts]][, var] - c(mean(temp, na.rm = TRUE), sd(temp, na.rm = TRUE)) - }) - )) - - array(unlist(temp), + temp <- lapply( + weather_vars, + function(var) { + sapply( + time_steps, + function(ts) { + sapply( + data, + function(x) { + temp <- x[[ts]][, var] + c(mean(temp, na.rm = TRUE), sd(temp, na.rm = TRUE)) + } + ) + } + ) + } + ) + + array( + unlist(temp), dim = c(2, length(data), length(time_steps), length(weather_vars)), - dimnames = list(c("mean", "sd"), names(data), time_steps, weather_vars)) + dimnames = list(c("mean", "sd"), names(data), time_steps, weather_vars) + ) } foo_bxp <- function(data, ref_data, ylab, legend = FALSE) { @@ -600,12 +668,22 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, if (all(is.finite(ylim))) { graphics::boxplot(data, ylim = ylim, ylab = ylab) - graphics::points(seq_along(ref_data), ref_data, col = "red", pch = 4, - lwd = 2) + graphics::points( + seq_along(ref_data), + ref_data, + col = "red", + pch = 4, + lwd = 2 + ) if (legend) { - graphics::legend("topright", legend = c("Reference", "Weather"), - col = c("red", "black"), pch = c(4, 16), pt.lwd = 2) + graphics::legend( + "topright", + legend = c("Reference", "Weather"), + col = c("red", "black"), + pch = c(4, 16), + pt.lwd = 2 + ) } } else { @@ -620,32 +698,54 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, # Make figure panels <- c(3, 2) - grDevices::png(units = "in", res = 150, - height = 3 * panels[1], width = 6 * panels[2], - file = file.path(path, paste0(tag, "_CompareWeather_Boxplots_MeanSD.png"))) - par_prev <- graphics::par(mfrow = panels, mar = c(2, 2.5, 0.5, 0.5), - mgp = c(1, 0, 0), tcl = 0.3, cex = 1) + grDevices::png( + units = "in", + res = 150, + height = 3 * panels[1], + width = 6 * panels[2], + file = file.path(path, paste0(tag, "_CompareWeather_Boxplots_MeanSD.png")) + ) + par_prev <- graphics::par( + mfrow = panels, + mar = c(2, 2.5, 0.5, 0.5), + mgp = c(1, 0, 0), + tcl = 0.3, + cex = 1 + ) - foo_bxp(data = comp_MeanSD["mean", , , "PPT_cm"], + foo_bxp( + data = comp_MeanSD["mean", , , "PPT_cm"], ref_data = ref_MeanSD["mean", , , "PPT_cm"], - ylab = "Mean Precipitation (cm)", legend = TRUE) - foo_bxp(data = comp_MeanSD["sd", , , "PPT_cm"], + ylab = "Mean Precipitation (cm)", + legend = TRUE + ) + foo_bxp( + data = comp_MeanSD["sd", , , "PPT_cm"], ref_data = ref_MeanSD["sd", , , "PPT_cm"], - ylab = "SD Precipitation (cm)") + ylab = "SD Precipitation (cm)" + ) - foo_bxp(data = comp_MeanSD["mean", , , "Tmax_C"], + foo_bxp( + data = comp_MeanSD["mean", , , "Tmax_C"], ref_data = ref_MeanSD["mean", , , "Tmax_C"], - ylab = "Mean Daily Max Temperature (C)") - foo_bxp(data = comp_MeanSD["sd", , , "Tmax_C"], + ylab = "Mean Daily Max Temperature (C)" + ) + foo_bxp( + data = comp_MeanSD["sd", , , "Tmax_C"], ref_data = ref_MeanSD["sd", , , "Tmax_C"], - ylab = "SD Daily Max Temperature (C)") + ylab = "SD Daily Max Temperature (C)" + ) - foo_bxp(data = comp_MeanSD["mean", , , "Tmin_C"], + foo_bxp( + data = comp_MeanSD["mean", , , "Tmin_C"], ref_data = ref_MeanSD["mean", , , "Tmin_C"], - ylab = "Mean Daily Min Temperature (C)") - foo_bxp(data = comp_MeanSD["sd", , , "Tmin_C"], + ylab = "Mean Daily Min Temperature (C)" + ) + foo_bxp( + data = comp_MeanSD["sd", , , "Tmin_C"], ref_data = ref_MeanSD["sd", , , "Tmin_C"], - ylab = "SD Daily Min Temperature (C)") + ylab = "SD Daily Min Temperature (C)" + ) graphics::par(par_prev) grDevices::dev.off() @@ -654,33 +754,62 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #--- Quantile-quantile comparisons: scatterplots foo_qq <- function(data, ref_data, var, time, lab, legend = FALSE) { - vlim <- range(sapply(c(ref_data, data), - function(x) range(x[[time]][, var], na.rm = TRUE))) + vlim <- range( + sapply( + c(ref_data, data), + function(x) range(x[[time]][, var], na.rm = TRUE) + ) + ) if (all(is.finite(vlim))) { probs <- seq(0, 1, length.out = 1000) - x <- quantile(ref_data[[1]][[time]][, var], probs = probs, - na.rm = TRUE) - graphics::plot(x, x, type = "n", xlim = vlim, ylim = vlim, asp = 1, + x <- quantile( + ref_data[[1]][[time]][, var], probs = probs, + na.rm = TRUE + ) + graphics::plot( + x, + x, + type = "n", + xlim = vlim, + ylim = vlim, + asp = 1, xlab = paste0(time, "ly : reference ", lab), - ylab = paste0(time, "ly : weather ", lab)) + ylab = paste0(time, "ly : weather ", lab) + ) + for (k in seq_along(data)) { - qy <- quantile(data[[k]][[time]][, var], probs = probs, - na.rm = TRUE) + qy <- quantile( + data[[k]][[time]][, var], probs = probs, + na.rm = TRUE + ) graphics::points(x, qy, pch = 46) } graphics::abline(h = 0, lty = 2) graphics::abline(v = 0, lty = 2) - graphics::segments(x0 = vlim[1], y0 = vlim[1], - x1 = vlim[2], y1 = vlim[2], col = "red", lwd = 2) + graphics::segments( + x0 = vlim[1], + y0 = vlim[1], + x1 = vlim[2], + y1 = vlim[2], + col = "red", + lwd = 2 + ) if (legend) { - graphics::legend("topleft", legend = c("Reference", "Weather"), - col = c("red", "black"), pch = c(NA, 16), pt.lwd = 2, - lty = c(1, NA), lwd = 2, merge = TRUE) + graphics::legend( + "topleft", + legend = c("Reference", "Weather"), + col = c("red", "black"), + pch = c(NA, 16), + pt.lwd = 2, + lty = c(1, NA), + lwd = 2, + merge = TRUE + ) } } else { @@ -690,19 +819,44 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, # Make figure panels <- c(length(time_steps), 3) - grDevices::png(units = "in", res = 150, - height = 3 * panels[1], width = 3 * panels[2], - file = file.path(path, paste0(tag, "_CompareWeather_QQplots.png"))) - par_prev <- graphics::par(mfrow = panels, mar = c(2, 2.5, 0.5, 0.5), - mgp = c(1, 0, 0), tcl = 0.3, cex = 1) + grDevices::png( + units = "in", + res = 150, + height = 3 * panels[1], + width = 3 * panels[2], + file = file.path(path, paste0(tag, "_CompareWeather_QQplots.png")) + ) + par_prev <- graphics::par( + mfrow = panels, + mar = c(2, 2.5, 0.5, 0.5), + mgp = c(1, 0, 0), + tcl = 0.3, + cex = 1 + ) for (ts in time_steps) { - foo_qq(comp_df, ref_df, var = "PPT_cm", time = ts, - lab = "precipitation (cm)", legend = ts == time_steps[1]) - foo_qq(comp_df, ref_df, var = "Tmax_C", time = ts, - lab = "max temp (C)") - foo_qq(comp_df, ref_df, var = "Tmin_C", time = ts, - lab = "min temp (C)") + foo_qq( + comp_df, + ref_df, + var = "PPT_cm", + time = ts, + lab = "precipitation (cm)", + legend = ts == time_steps[1] + ) + foo_qq( + comp_df, + ref_df, + var = "Tmax_C", + time = ts, + lab = "max temp (C)" + ) + foo_qq( + comp_df, + ref_df, + var = "Tmin_C", + time = ts, + lab = "min temp (C)" + ) } graphics::par(par_prev) @@ -710,12 +864,22 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #--- Does output weather recreate weather generator inputs? - ref_wgin <- dbW_estimate_WGen_coefs(ref_df[[1]][["Day"]], - WET_limit_cm = WET_limit_cm, imputation_type = "mean") - comp_wgin <- lapply(comp_df, function(x) - dbW_estimate_WGen_coefs(x[["Day"]], - WET_limit_cm = WET_limit_cm, imputation_type = "mean") - ) + ref_wgin <- dbW_estimate_WGen_coefs( + ref_df[[1]][["Day"]], + WET_limit_cm = WET_limit_cm, + imputation_type = "mean" + ) + + comp_wgin <- lapply( + comp_df, + function(x) { + dbW_estimate_WGen_coefs( + x[["Day"]], + WET_limit_cm = WET_limit_cm, + imputation_type = "mean" + ) + } + ) foo_scatter_wgin <- function(data, ref_data, obj, fname) { @@ -728,36 +892,70 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, rep(ceiling(sqrt(length(vars))), 2) } - grDevices::png(units = "in", res = 150, - height = 3 * panels[1], width = 3 * panels[2], - file = fname) - par_prev <- graphics::par(mfrow = panels, mar = c(2, 2.5, 0.5, 0.5), - mgp = c(1, 0, 0), tcl = 0.3, cex = 1) + grDevices::png( + units = "in", + res = 150, + height = 3 * panels[1], + width = 3 * panels[2], + file = fname + ) + + par_prev <- graphics::par( + mfrow = panels, + mar = c(2, 2.5, 0.5, 0.5), + mgp = c(1, 0, 0), + tcl = 0.3, + cex = 1 + ) for (v in vars) { x <- ref_data[[obj]][, v] vlim_obs <- range(x, na.rm = TRUE) - vlim <- range(sapply(data, function(x) - range(x[[obj]][, v], na.rm = TRUE))) + vlim <- range( + sapply( + data, function(x) range(x[[obj]][, v], na.rm = TRUE) + ) + ) if (all(is.finite(vlim_obs)) && all(is.finite(vlim))) { - graphics::plot(x, x, type = "n", xlim = vlim, ylim = vlim, asp = 1, - xlab = paste0("Reference ", v), ylab = paste0("Weather ", v)) + graphics::plot( + x, + x, + type = "n", + xlim = vlim, + ylim = vlim, + asp = 1, + xlab = paste0("Reference ", v), + ylab = paste0("Weather ", v) + ) + for (k in seq_along(data)) { isgood <- complete.cases(cbind(x, data[[k]][[obj]][, v])) - graphics::lines(stats::lowess(x[isgood], data[[k]][[obj]][isgood, v]), - col = "gray") + graphics::lines( + stats::lowess(x[isgood], data[[k]][[obj]][isgood, v]), + col = "gray" + ) } graphics::abline(h = 0, lty = 2) graphics::abline(v = 0, lty = 2) - graphics::segments(x0 = vlim_obs[1], y0 = vlim_obs[1], - x1 = vlim_obs[2], y1 = vlim_obs[2], col = "red", lwd = 2) + graphics::segments( + x0 = vlim_obs[1], + y0 = vlim_obs[1], + x1 = vlim_obs[2], + y1 = vlim_obs[2], + col = "red", + lwd = 2 + ) if (v == vars[1]) { - graphics::legend("topleft", legend = c("Reference", "Weather"), - col = c("red", "black"), lwd = 2) + graphics::legend( + "topleft", + legend = c("Reference", "Weather"), + col = c("red", "black"), + lwd = 2 + ) } } else { @@ -770,12 +968,25 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, } - foo_scatter_wgin(data = comp_wgin, ref_data = ref_wgin, obj = "mkv_doy", - fname = file.path(path, - paste0(tag, "_CompareWeather_WGenInputs_DayOfYear.png"))) - foo_scatter_wgin(data = comp_wgin, ref_data = ref_wgin, obj = "mkv_woy", - fname = file.path(path, - paste0(tag, "_CompareWeather_WGenInputs_WeekOfYear.png"))) + foo_scatter_wgin( + data = comp_wgin, + ref_data = ref_wgin, + obj = "mkv_doy", + fname = file.path( + path, + paste0(tag, "_CompareWeather_WGenInputs_DayOfYear.png") + ) + ) + + foo_scatter_wgin( + data = comp_wgin, + ref_data = ref_wgin, + obj = "mkv_woy", + fname = file.path( + path, + paste0(tag, "_CompareWeather_WGenInputs_WeekOfYear.png") + ) + ) } @@ -851,8 +1062,14 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #' unlink(list.files(path), force = TRUE) #' #' @export -dbW_generateWeather <- function(weatherData, years = NULL, wgen_coeffs = NULL, - imputation_type = "mean", imputation_span = 5L, seed = NULL) { +dbW_generateWeather <- function( + weatherData, + years = NULL, + wgen_coeffs = NULL, + imputation_type = "mean", + imputation_span = 5L, + seed = NULL +) { #--- Obtain missing/null arguments if (is.null(wgen_coeffs)) { diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 41aa6a59..3466508a 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -354,7 +354,7 @@ encode_name2pdf <- function(pdf_name) { #' @section Details: #' The argument `swrc_name` is optional. If missing, then all implemented #' `SWRCs` are listed. -#' `"NoPDF` is not included in the list. +#' \var{"NoPDF"} is not included in the list. #' #' @export list_matched_swrcs_pdfs <- function(swrc_name) { diff --git a/R/sw_dbW_WeatherDatabase.R b/R/sw_dbW_WeatherDatabase.R index a9f5b090..22996f57 100644 --- a/R/sw_dbW_WeatherDatabase.R +++ b/R/sw_dbW_WeatherDatabase.R @@ -1508,6 +1508,13 @@ dbW_createDatabase <- function( #dataframe of columns folder, lat, long, label where label can equal folderName +#' Add weather data from \pkg{SOILWAT2} weather "folders" to a weather database +#' +#' @param MetaData A data.frame with suitable columns. +#' @param FoldersPath A character string. +#' @param ScenarioName A character string. +#' @param weather_tag A character string. +#' #' @export dbW_addFromFolders <- function( MetaData = NULL, @@ -1729,8 +1736,13 @@ dbW_weatherData_to_blob <- function(weatherData, type = "gzip") { #' sw_out3 <- sw_exec(inputData = sw_in3, weatherList = sw_weath3) #' #' @export -getWeatherData_folders <- function(LookupWeatherFolder, weatherDirName = NULL, - filebasename = "weath", startYear = NULL, endYear = NULL) { +getWeatherData_folders <- function( + LookupWeatherFolder, + weatherDirName = NULL, + filebasename = "weath", + startYear = NULL, + endYear = NULL +) { if (is.null(LookupWeatherFolder) || is.null(filebasename)) { stop( @@ -2135,25 +2147,32 @@ dbW_weather_to_SOILWATfiles <- function( #' wdata <- rSOILWAT2::weatherData #' #' ## Transfer to different years (partially overlapping) -#' wnew <- dbW_convert_to_GregorianYears(wdata, -#' new_startYear = 2000, new_endYear = 2020 +#' wnew <- dbW_convert_to_GregorianYears( +#' wdata, +#' new_startYear = 2000, +#' new_endYear = 2020 #' ) #' all.equal(unique(wnew[, "Year"]), 2000:2020) #' anyNA(wnew) # --> use `dbW_generateWeather` #' #' ## Transfer to a subset of years (i.e., subset) -#' wnew <- dbW_convert_to_GregorianYears(wdata, -#' new_startYear = 2000, new_endYear = 2005 +#' wnew <- dbW_convert_to_GregorianYears( +#' wdata, +#' new_startYear = 2000, +#' new_endYear = 2005 #' ) #' all.equal(unique(wnew[, "Year"]), 2000:2005) #' anyNA(wnew) #' #' ## Correct/convert from a non-leap to a Gregorian calendar -#' wempty <- data.frame(dbW_weatherData_to_dataframe( -#' list(new("swWeatherData"))))[1:365, ] -#' -#' wnew <- dbW_convert_to_GregorianYears(wempty, -#' new_startYear = 2016, new_endYear = 2016 +#' wempty <- data.frame( +#' dbW_weatherData_to_dataframe(weatherHistory()) +#' )[1:365, ] +#' +#' wnew <- dbW_convert_to_GregorianYears( +#' wempty, +#' new_startYear = 2016, +#' new_endYear = 2016 #' ) #' all.equal(unique(wnew[, "Year"]), 2016:2016) #' all.equal(nrow(wnew), 366) # leap year diff --git a/R/sw_dbW_upgrade.R b/R/sw_dbW_upgrade.R index 4e59ec72..9031bf38 100644 --- a/R/sw_dbW_upgrade.R +++ b/R/sw_dbW_upgrade.R @@ -605,23 +605,31 @@ dbW_upgrade_v1to2 <- function(dbWeatherDataFile, fbackup = NULL, } +#' Check an updated weather database +#' +#' @param con A connection to an updated weather database. +#' #' @export check_updatedDB <- function(con) { - print(paste0(Sys.time(), - ": 'check_updatedDB' started with database integrity")) + print(paste0( + Sys.time(), + ": 'check_updatedDB' started with database integrity" + )) print(paste0(Sys.time(), ": 'check_updatedDB' started 'quick check'")) - res <- DBI::dbExecute(con, "PRAGMA quick_check;") + res <- DBI::dbExecute(con, "PRAGMA quick_check") print(res) print(paste0(Sys.time(), ": 'check_updatedDB' started 'integrity check'")) - print(DBI::dbExecute(con, "PRAGMA integrity_check;")) + print(DBI::dbExecute(con, "PRAGMA integrity_check")) print(paste0(Sys.time(), ": 'check_updatedDB' started 'foreign key check'")) - print(DBI::dbExecute(con, "PRAGMA foreign_key_check;")) + print(DBI::dbExecute(con, "PRAGMA foreign_key_check")) print(paste0(Sys.time(), ": 'check_updatedDB' checks indices")) - print(DBI::dbExecute(con, "PRAGMA index_list(WeatherData);")) - print(DBI::dbExecute(con, - "PRAGMA index_info(sqlite_autoindex_WeatherData_1);")) + print(DBI::dbExecute(con, "PRAGMA index_list(WeatherData)")) + print(DBI::dbExecute( + con, + "PRAGMA index_info(sqlite_autoindex_WeatherData_1)" + )) } diff --git a/man/check_updatedDB.Rd b/man/check_updatedDB.Rd new file mode 100644 index 00000000..db5573e1 --- /dev/null +++ b/man/check_updatedDB.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_dbW_upgrade.R +\name{check_updatedDB} +\alias{check_updatedDB} +\title{Check an updated weather database} +\usage{ +check_updatedDB(con) +} +\arguments{ +\item{con}{A connection to an updated weather database.} +} +\description{ +Check an updated weather database +} diff --git a/man/dbW_addFromFolders.Rd b/man/dbW_addFromFolders.Rd new file mode 100644 index 00000000..cd953de8 --- /dev/null +++ b/man/dbW_addFromFolders.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_dbW_WeatherDatabase.R +\name{dbW_addFromFolders} +\alias{dbW_addFromFolders} +\title{Add weather data from \pkg{SOILWAT2} weather "folders" to a weather database} +\usage{ +dbW_addFromFolders( + MetaData = NULL, + FoldersPath, + ScenarioName = "Current", + weather_tag = "weath" +) +} +\arguments{ +\item{MetaData}{A data.frame with suitable columns.} + +\item{FoldersPath}{A character string.} + +\item{ScenarioName}{A character string.} + +\item{weather_tag}{A character string.} +} +\description{ +Add weather data from \pkg{SOILWAT2} weather "folders" to a weather database +} diff --git a/man/dbW_addSite.Rd b/man/dbW_addSite.Rd new file mode 100644 index 00000000..d6acd7be --- /dev/null +++ b/man/dbW_addSite.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/rSOILWAT2_deprecated.R +\name{dbW_addSite} +\alias{dbW_addSite} +\title{Add a new site description to a weather database} +\usage{ +dbW_addSite(Site_id = NULL, lat = NULL, long = NULL, Label = NULL) +} +\arguments{ +\item{Site_id}{An integer number.} + +\item{lat}{A numeric value.} + +\item{long}{A numeric value.} + +\item{Label}{A character string.} +} +\description{ +Add a new site description to a weather database +} diff --git a/man/dbW_convert_to_GregorianYears.Rd b/man/dbW_convert_to_GregorianYears.Rd index b24f7a80..8f8a509b 100644 --- a/man/dbW_convert_to_GregorianYears.Rd +++ b/man/dbW_convert_to_GregorianYears.Rd @@ -62,25 +62,32 @@ can convert from a non-leap to a Gregorian calendar. wdata <- rSOILWAT2::weatherData ## Transfer to different years (partially overlapping) -wnew <- dbW_convert_to_GregorianYears(wdata, - new_startYear = 2000, new_endYear = 2020 +wnew <- dbW_convert_to_GregorianYears( + wdata, + new_startYear = 2000, + new_endYear = 2020 ) all.equal(unique(wnew[, "Year"]), 2000:2020) anyNA(wnew) # --> use `dbW_generateWeather` ## Transfer to a subset of years (i.e., subset) -wnew <- dbW_convert_to_GregorianYears(wdata, - new_startYear = 2000, new_endYear = 2005 +wnew <- dbW_convert_to_GregorianYears( + wdata, + new_startYear = 2000, + new_endYear = 2005 ) all.equal(unique(wnew[, "Year"]), 2000:2005) anyNA(wnew) ## Correct/convert from a non-leap to a Gregorian calendar -wempty <- data.frame(dbW_weatherData_to_dataframe( - list(new("swWeatherData"))))[1:365, ] +wempty <- data.frame( + dbW_weatherData_to_dataframe(weatherHistory()) +)[1:365, ] -wnew <- dbW_convert_to_GregorianYears(wempty, - new_startYear = 2016, new_endYear = 2016 +wnew <- dbW_convert_to_GregorianYears( + wempty, + new_startYear = 2016, + new_endYear = 2016 ) all.equal(unique(wnew[, "Year"]), 2016:2016) all.equal(nrow(wnew), 366) # leap year diff --git a/man/list_matched_swrcs_pdfs.Rd b/man/list_matched_swrcs_pdfs.Rd index 625a2886..b540cecc 100644 --- a/man/list_matched_swrcs_pdfs.Rd +++ b/man/list_matched_swrcs_pdfs.Rd @@ -22,6 +22,6 @@ Matching pairs of implemented `SWRCs` and `PDFs` The argument `swrc_name` is optional. If missing, then all implemented `SWRCs` are listed. - `"NoPDF` is not included in the list. + \var{"NoPDF"} is not included in the list. } diff --git a/tests/testthat/test_WeatherData.R b/tests/testthat/test_WeatherData.R index e8273579..87f72f08 100644 --- a/tests/testthat/test_WeatherData.R +++ b/tests/testthat/test_WeatherData.R @@ -1,5 +1,3 @@ -context("rSOILWAT2 weather data") - test_that("Weather data check", { expect_false(dbW_check_weatherData(NA)) diff --git a/tests/testthat/test_WeatherGenerator_functionality.R b/tests/testthat/test_WeatherGenerator_functionality.R index e3ca64b0..6efb10ac 100644 --- a/tests/testthat/test_WeatherGenerator_functionality.R +++ b/tests/testthat/test_WeatherGenerator_functionality.R @@ -1,4 +1,3 @@ -context("rSOILWAT2 weather generator") #---INPUTS path_extdata <- file.path("..", "..", "inst", "extdata") @@ -13,8 +12,10 @@ temp <- sapply(strsplit(temp, "_"), function(x) x[[1]]) tests <- unique(temp) test_that("Test data availability", expect_gt(length(tests), 0)) -sw_weather <- lapply(tests, function(it) - readRDS(file.path(dir_test_data, paste0(it, "_weather.rds")))) +sw_weather <- lapply( + tests, + function(it) readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) +) #---TESTS @@ -26,14 +27,22 @@ test_that("Weather generator: estimate input parameters", { test_df <- data.frame(dbW_weatherData_to_dataframe(test_dat, valNA = NULL)) if (anyNA(test_df)) { - expect_warning(res <- dbW_estimate_WGen_coefs(test_df, - propagate_NAs = TRUE), - "Insufficient weather data to estimate values") + expect_warning( + res <- dbW_estimate_WGen_coefs( + test_df, + propagate_NAs = TRUE + ), + "Insufficient weather data to estimate values" + ) - expect_message(res <- dbW_estimate_WGen_coefs(test_df, - propagate_NAs = FALSE, - imputation_type = "mean"), - "Impute missing") + expect_message( + res <- dbW_estimate_WGen_coefs( + test_df, + propagate_NAs = FALSE, + imputation_type = "mean" + ), + "Impute missing" + ) } else { res <- dbW_estimate_WGen_coefs(test_df) @@ -61,25 +70,33 @@ test_that("Weather generator: generate weather", { wout <- list() # Case 1: generate weather for dataset and impute missing values - wout[[1]] <- dbW_generateWeather(test_dat, + wout[[1]] <- dbW_generateWeather( + test_dat, imputation_type = "mean", - imputation_span = 5) + imputation_span = 5 + ) # Case 2: generate weather based on partial dataset, # use estimated weather generator coefficients from full dataset - wgen_coeffs <- dbW_estimate_WGen_coefs(test_dat, + wgen_coeffs <- dbW_estimate_WGen_coefs( + test_dat, imputation_type = "mean", - imputation_span = 5) - wout[[2]] <- dbW_generateWeather(test_dat[(n - 5):n], + imputation_span = 5 + ) + wout[[2]] <- dbW_generateWeather( + test_dat[(n - 5):n], years = years[length(years)] + 0:10 - 5, - wgen_coeffs = wgen_coeffs) + wgen_coeffs = wgen_coeffs + ) # Case 3: generate weather based only on estimated weather generator # coefficients from full dataset x_empty <- list(new("swWeatherData")) - wout[[3]] <- dbW_generateWeather(x_empty, + wout[[3]] <- dbW_generateWeather( + x_empty, years = years[length(years)] + 30:40, - wgen_coeffs = wgen_coeffs) + wgen_coeffs = wgen_coeffs + ) # Expectations for (k in seq_along(wout)) { @@ -88,7 +105,7 @@ test_that("Weather generator: generate weather", { for (i in iyrs) { # It is a valid object of class "swWeatherData" - expect_true(swWeatherData_validity(x[[i]])) + expect_true(validObject(x[[i]])) # Prepare weather data.frame wdf <- slot(x[[i]], "data") @@ -99,7 +116,8 @@ test_that("Weather generator: generate weather", { check_weather( weather = wdf, required_variables = c("DOY", "Tmax_C", "Tmin_C", "PPT_cm") - )) + ) + ) # There are no missing data expect_false(anyNA(wdf)) @@ -110,8 +128,9 @@ test_that("Weather generator: generate weather", { test_that("Weather generator (integration tests): compare input/output", { - skip_if_not(identical(tolower(Sys.getenv("RSOILWAT_INTEGRATIONTESTS")), - "true")) + skip_if_not( + identical(tolower(Sys.getenv("RSOILWAT_INTEGRATIONTESTS")), "true") + ) dir_inttests <- file.path("..", "rSOILWAT_IntegrationTestOutput") dir.create(dir_inttests, showWarnings = FALSE) @@ -137,30 +156,41 @@ test_that("Weather generator (integration tests): compare input/output", { swMarkov_Conv(sw_in) <- res[["mkv_woy"]] set_swWeatherData(sw_in) <- new("swWeatherData") - wgen_df <- replicate(N, { - res <- sw_exec(inputData = sw_in) - - out <- lapply(time_steps, function(it) { - temp <- slot(slot(res, "TEMP"), it) - - data.frame( - if (it == "Year") { - temp[, "Year", drop = FALSE] - } else { - temp[, c("Year", it)] - }, - Tmax_C = temp[, "max_C"], - Tmin_C = temp[, "min_C"], - PPT_cm = slot(slot(res, "PRECIP"), it)[, "ppt"] + wgen_df <- replicate( + N, { + res <- sw_exec(inputData = sw_in) + + out <- lapply( + time_steps, + function(it) { + temp <- slot(slot(res, "TEMP"), it) + + data.frame( + if (it == "Year") { + temp[, "Year", drop = FALSE] + } else { + temp[, c("Year", it)] + }, + Tmax_C = temp[, "max_C"], + Tmin_C = temp[, "min_C"], + PPT_cm = slot(slot(res, "PRECIP"), it)[, "ppt"] + ) + } ) - }) - names(out) <- time_steps - out - }, simplify = FALSE) + names(out) <- time_steps + out + }, + simplify = FALSE + ) - #--- Comparison - compare_weather(ref_weather = obs_df, weather = wgen_df, N = N, - path = dir_inttests, tag = "IntegrationTest-WeatherGenerator") + #--- Comparison + compare_weather( + ref_weather = obs_df, + weather = wgen_df, + N = N, + path = dir_inttests, + tag = "IntegrationTest-WeatherGenerator" + ) }) diff --git a/tests/testthat/test_class_swProd.R b/tests/testthat/test_class_swProd.R index 86bbf441..9fe6a006 100644 --- a/tests/testthat/test_class_swProd.R +++ b/tests/testthat/test_class_swProd.R @@ -1,14 +1,20 @@ context("Vegetation parameters class") ids_VegType <- rSW2_glovars[["kSOILWAT2"]][["VegTypes"]] -names_VegTypes <- tolower(gsub("SW_", "", - names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]]))) - -names_VegTypes2 <- sapply(names_VegTypes, function(x) { - if (endsWith(x, "s")) { - if (endsWith(x, "ss")) x else substr(x, 1, nchar(x) - 1) - } else x -}) +names_VegTypes <- tolower( + gsub("SW_", "", names(rSW2_glovars[["kSOILWAT2"]][["VegTypes"]])) +) + +names_VegTypes2 <- sapply( + names_VegTypes, + function(x) { + if (endsWith(x, "s")) { + if (endsWith(x, "ss")) x else substr(x, 1, nchar(x) - 1) + } else { + x + } + } +) #---TESTS @@ -33,18 +39,26 @@ test_that("Manipulate 'swProd' class", { for (k in ids_VegType) { #--- extraction methods # integer-index version - expect_equal(swProd_MonProd_veg(xinput, 1 + k), - swProd_MonProd_veg(xinv, 1 + k)) + expect_equal( + swProd_MonProd_veg(xinput, 1 + k), + swProd_MonProd_veg(xinv, 1 + k) + ) # character-index version - expect_equal(swProd_MonProd_veg(xinput, names_VegTypes[1 + k]), - swProd_MonProd_veg(xinv, names_VegTypes[1 + k])) - expect_equal(swProd_MonProd_veg(xinv, 1 + k), - swProd_MonProd_veg(xinv, names_VegTypes[1 + k])) + expect_equal( + swProd_MonProd_veg(xinput, names_VegTypes[1 + k]), + swProd_MonProd_veg(xinv, names_VegTypes[1 + k]) + ) + expect_equal( + swProd_MonProd_veg(xinv, 1 + k), + swProd_MonProd_veg(xinv, names_VegTypes[1 + k]) + ) # veg-type named version - f <- utils::getFromNamespace(paste0("swProd_MonProd_", - names_VegTypes2[1 + k]), ns = "rSOILWAT2") + f <- utils::getFromNamespace( + paste0("swProd_MonProd_", names_VegTypes2[1 + k]), + ns = "rSOILWAT2" + ) expect_equal(f(xinput), f(xinv)) expect_equal(swProd_MonProd_veg(xinv, 1 + k), f(xinv)) @@ -57,8 +71,10 @@ test_that("Manipulate 'swProd' class", { expect_error(swProd_MonProd_veg(xinput, names_VegTypes[1 + k]) <- data_fail) expect_error(swProd_MonProd_veg(xinv, names_VegTypes[1 + k]) <- data_fail) - fr <- utils::getFromNamespace(paste0("swProd_MonProd_", - names_VegTypes2[1 + k], "<-"), ns = "rSOILWAT2") + fr <- utils::getFromNamespace( + paste0("swProd_MonProd_", names_VegTypes2[1 + k], "<-"), + ns = "rSOILWAT2" + ) expect_error(fr(xinput, data_fail)) expect_error(fr(xinv, data_fail)) diff --git a/tests/testthat/test_class_swSite.R b/tests/testthat/test_class_swSite.R index 52867727..28be5e84 100644 --- a/tests/testthat/test_class_swSite.R +++ b/tests/testthat/test_class_swSite.R @@ -24,8 +24,10 @@ test_that("Manipulate 'swSite' class", { expect_equal(xinput, xinput2) #--- Slot 'ModelCoefficients' - expect_equal(swSite_ModelCoefficients(xinput), - swSite_ModelCoefficients(get_swSite(xinput))) + expect_equal( + swSite_ModelCoefficients(xinput), + swSite_ModelCoefficients(get_swSite(xinput)) + ) mc <- mc_ok <- swSite_ModelCoefficients(xinput2) expect_equal(swSite_ModelCoefficients(xinput2), mc) @@ -33,8 +35,10 @@ test_that("Manipulate 'swSite' class", { mc["PETmultiplier"] <- 4 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) mc["PETmultiplier"] <- -1 expect_error(swSite_ModelCoefficients(site1) <- mc) @@ -44,8 +48,10 @@ test_that("Manipulate 'swSite' class", { mc["DailyRunoff"] <- 0.9 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) mc["DailyRunoff"] <- -1 expect_error(swSite_ModelCoefficients(site1) <- mc) @@ -67,8 +73,10 @@ test_that("Manipulate 'swSite' class", { expect_error(swSite_ModelCoefficients(xinput2) <- mc) #--- Slot TranspirationRegions - expect_equal(swSite_TranspirationRegions(xinput), - swSite_TranspirationRegions(get_swSite(xinput))) + expect_equal( + swSite_TranspirationRegions(xinput), + swSite_TranspirationRegions(get_swSite(xinput)) + ) mc <- mc_ok <- swSite_TranspirationRegions(xinput2) expect_equal(swSite_TranspirationRegions(xinput2), mc) @@ -97,8 +105,13 @@ test_that("Run 'rSOILWAT2' with different 'swSite' inputs", { # Run SOILWAT expect_s4_class( - sw_exec(inputData = sw_input, weatherList = sw_weather, echo = FALSE, - quiet = TRUE), - "swOutput") + sw_exec( + inputData = sw_input, + weatherList = sw_weather, + echo = FALSE, + quiet = TRUE + ), + "swOutput" + ) } }) diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index a724b30a..459ed098 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -36,6 +36,7 @@ row.names(texture) <- c( ) # Field capacity and agricultural permanent wilting point +# for Campbell1974 and Cosby1984 swp_fix <- c(fc = -0.0333, pwp = -1.5) # MPa vwc_fix <- data.frame( fc = c( @@ -80,35 +81,35 @@ test_that("Use SWRC to convert between VWC/SWP", { # 1a. x [len = 1] + soils [len = 1] --> res [len = 1] for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[itext, ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), - swp_fix[ifix] + unname(swp_fix[ifix]) ) - expect_equivalent( + expect_equal( swrc_swp_to_vwc( swp_MPa = swp_fix[ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), - vwc_fix[itext, ifix] + unname(vwc_fix[itext, ifix]) ) } } # 1b. x [len = l] + soils [len = d] -> res [dim = l = d] where l = d for (ifix in names(swp_fix)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[, ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), - diag(swp_vals[, ifix, ]) + unname(diag(swp_vals[, ifix, ])) ) } @@ -116,22 +117,22 @@ test_that("Use SWRC to convert between VWC/SWP", { # 2. x [len = 1] + soils [len = d] --> res [len = d] for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[itext, ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), - swp_vals[itext, ifix, ] + unname(swp_vals[itext, ifix, ]) ) - expect_equivalent( + expect_equal( swrc_swp_to_vwc( swp_MPa = swp_fix[ifix], sand = texture[, "sand"], clay = texture[, "clay"] ), - vwc_fix[, ifix] + unname(vwc_fix[, ifix]) ) } } @@ -140,22 +141,22 @@ test_that("Use SWRC to convert between VWC/SWP", { # 3. x [len = l] + soils [len = 1] --> res [len = l] for (ifix in names(swp_fix)) { for (itext in row.names(texture)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[, ifix], sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), - swp_vals[, ifix, itext] + unname(swp_vals[, ifix, itext]) ) - expect_equivalent( + expect_equal( swrc_swp_to_vwc( swp_MPa = rep(swp_fix[ifix], nrow(texture)), sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), - rep(vwc_fix[itext, ifix], nrow(texture)) + rep(unname(vwc_fix[itext, ifix]), nrow(texture)) ) } } @@ -163,46 +164,46 @@ test_that("Use SWRC to convert between VWC/SWP", { # 4a. x [len = l] + soils [len = d] -> res [dim = l x d] where l != d # (x vector repeated for each soil): probably not used for (ifix in names(swp_fix)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[, ifix], sand = texture[-1, "sand"], clay = texture[-1, "clay"] ), - swp_vals[, ifix, -1] + unname(swp_vals[, ifix, -1]) ) } # 4b. x [len = l] + soils [len = d] -> res [dim = l x d] where l = d # (x vector repeated for each soil): probably not used for (ifix in names(swp_fix)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix[, ifix], sand = texture[, "sand"], clay = texture[, "clay"], outer_if_equalsize = TRUE ), - swp_vals[, ifix, ] + unname(swp_vals[, ifix, ]) ) } # 5. x [dim = l x d] + soils [len = 1] --> res [dim = l x d] for (itext in row.names(texture)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = vwc_fix, sand = texture[itext, "sand"], clay = texture[itext, "clay"] ), - swp_vals[, , itext] + unname(swp_vals[, , itext]) ) } # 6. x [dim = l x d] + soils [len = d] --> res [dim = l x d] # (soils vectors repeated for each row of x) for (ifix in names(swp_fix)) { - expect_equivalent( + expect_equal( swrc_vwc_to_swp( vwcBulk = matrix( vwc_fix[, ifix], diff --git a/vignettes/rSOILWAT2_WeatherDatabase.Rmd b/vignettes/rSOILWAT2_WeatherDatabase.Rmd index e7497748..59476610 100644 --- a/vignettes/rSOILWAT2_WeatherDatabase.Rmd +++ b/vignettes/rSOILWAT2_WeatherDatabase.Rmd @@ -38,21 +38,21 @@ vignette: > Latitude = rep(tmp[["Latitude"]], 3), Label = paste0("ExampleSite_", seq_len(3)) ) - + scenario1 <- "Reference" ``` ## Create a new weather database ```{r, new_dbW} my_dbW <- "dbWeatherData.sqlite3" - + is_dbW_success <- dbW_createDatabase( dbFilePath = my_dbW, site_data = sites1, Scenarios = scenario1, scen_ambient = scenario1 ) - + # Check that database was successfully created stopifnot(is_dbW_success) ``` @@ -62,7 +62,7 @@ We will see later how to add more sites and scenarios ## Connect to the newly created weather database and check if it is valid ```{r, connect} dbW_setConnection(dbFilePath = my_dbW) - + # Check that connection to weather database was successfully established stopifnot(dbW_IsValid()) ``` @@ -74,7 +74,7 @@ We will see later how to add more sites and scenarios # Read entire site table and compare to our inputs dbW_sites <- dbW_getSiteTable() stopifnot(all.equal(dbW_sites[, colnames(sites1)], sites1)) - + # Read entire scenario table and compare to our inputs dbW_scenarios <- dbW_getScenariosTable() stopifnot(all.equal(dbW_scenarios[, "Scenario"], scenario1)) From e282932882313f9e81ad3da4023fe1359f169de2 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 13:39:49 -0500 Subject: [PATCH 034/238] Replace "initialize" with class prototypes and helper constructors - problem: existing setup was not capable to deal with outdated class objects that lacked slots --> follow community recommendations: class prototypes and helper constructors instead of "initialize" methods, see https://adv-r.hadley.nz/s4.html#s4 and https://stackoverflow.com/questions/16247583/inheritance-in-r/16248773#16248773 - each class gained a helper constructor function of the same name with only "..." as argument * "..." can either be arguments with names of slots to fill or an object of that class * if "..." is missing, then values from "rSOILWAT2::sw_exampleData" (i.e., the SOILWAT2 "testing" defaults) are copied -- with the exception of site-specific values that are set to NA to avoid mis-specifying a new simulation run --> now `new("swClass")` creates an object with prototype data (instead of what previously the "initialize" method returned) --> now `swClass()` creates an object that contains default data (replicating the previous "initialize" method) - new `weatherHistory()` that acts on list of "swWeatherData" objects and behaves similarly to a helper constructor --> for instance,`weatherHistory()` now replaces previous `list(swWeatherData()))` or `list(new("swWeatherData"))` - new `get_swEstab()` with signature "swInputData" for completeness of methods - new `get_swMarkov()` and `set_swMarkov()` -- synonyms to the previous `get_Markov()` and `set_Markov()` but now with class-consistent name - new unit tests for class helper constructor functions --- NAMESPACE | 24 +- R/A_swGenericMethods.R | 28 ++ R/B_swFiles.R | 114 +++--- R/C_swYears.R | 144 ++++--- R/D_swCarbon.R | 120 +++--- R/D_swCloud.R | 148 +++++--- R/D_swMarkov.R | 154 +++++--- R/D_swWeather.R | 202 ++++++---- R/D_swWeatherData.R | 124 +++--- R/E_swProd.R | 352 ++++++++++++------ R/F_swSite.R | 292 +++++++++------ R/F_swSoils.R | 196 ++++++---- R/G_swOut.R | 241 ++++++++---- R/H_swSWC.R | 132 ++++--- R/I_swEstab.R | 138 +++++-- R/J_swLog.R | 58 ++- R/K_swContainer.R | 144 ++++++- R/L_swOutput.R | 68 +++- R/Rsw.R | 6 +- R/data.R | 3 +- R/rSOILWAT2-package.R | 2 +- R/swWeatherGenerator.R | 2 +- R/sw_dbW_WeatherDatabase.R | 5 +- data-raw/prepare_testInput_objects.R | 3 +- man/dbW_generateWeather.Rd | 2 +- man/get_swMarkov.Rd | 18 + man/set_swMarkov-set.Rd | 20 + man/set_swMarkov.Rd | 17 + man/swCarbon-class.Rd | 16 +- man/swCloud-class.Rd | 16 +- man/swEstab-class.Rd | 16 +- man/swEstabSpecies-class.Rd | 16 +- man/swFiles-class.Rd | 16 +- man/swInputData-class.Rd | 24 +- man/swLog-class.Rd | 16 +- man/swMarkov-class.Rd | 16 +- man/swMonthlyScalingParams-class.Rd | 17 +- man/swOUT-class.Rd | 28 +- man/swOUT_key-class.Rd | 16 +- man/swOutput-class.Rd | 4 +- man/swOutput_KEY-class.Rd | 1 + man/swProd-class.Rd | 16 +- man/swSWC-class.Rd | 16 +- man/swSWC_hist-class.Rd | 33 +- man/swSite-class.Rd | 16 +- man/swSoils-class.Rd | 16 +- man/swWeather-class.Rd | 16 +- man/swWeatherData-class.Rd | 37 +- man/swYears-class.Rd | 16 +- man/sw_exampleData.Rd | 3 +- tests/testthat/test_WeatherData.R | 16 +- .../test_WeatherGenerator_functionality.R | 4 +- tests/testthat/test_class_constructors.R | 110 ++++++ tests/testthat/test_class_swCarbon.R | 4 +- tests/testthat/test_class_swProd.R | 4 +- tests/testthat/test_class_swSite.R | 4 +- tests/testthat/test_dbW_functionality.R | 2 +- vignettes/rSOILWAT2_WeatherDatabase.Rmd | 2 +- vignettes/rSOILWAT2_demo.Rmd | 2 +- 59 files changed, 2231 insertions(+), 1045 deletions(-) create mode 100644 man/get_swMarkov.Rd create mode 100644 man/set_swMarkov-set.Rd create mode 100644 man/set_swMarkov.Rd create mode 100644 tests/testthat/test_class_constructors.R diff --git a/NAMESPACE b/NAMESPACE index a795829d..23551c2a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -101,7 +101,26 @@ export(set_swWeatherData) export(set_swYears) export(setup_time_simulation_run) export(simTiming_ForEachUsedTimeUnit) +export(swCarbon) +export(swCloud) +export(swEstab) +export(swEstabSpecies) +export(swFiles) +export(swInputData) +export(swLog) +export(swMarkov) +export(swMonthlyScalingParams) +export(swOUT) export(swOUT_TimeStepsForEveryKey) +export(swOUT_key) +export(swProd) +export(swSWC) +export(swSWC_hist) +export(swSite) +export(swSoils) +export(swWeather) +export(swWeatherData) +export(swYears) export(sw_Cheatgrass_ClimVar) export(sw_dailyC4_TempVar) export(sw_exec) @@ -116,6 +135,7 @@ export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) export(update_biomass) export(update_requested_years) +export(weatherHistory) exportClasses(swCarbon) exportClasses(swCloud) exportClasses(swEstab) @@ -243,7 +263,9 @@ exportMethods(get_Markov) exportMethods(get_WeatherHistory) exportMethods(get_swCarbon) exportMethods(get_swCloud) +exportMethods(get_swEstab) exportMethods(get_swFiles) +exportMethods(get_swMarkov) exportMethods(get_swOUT) exportMethods(get_swProd) exportMethods(get_swSWC) @@ -252,7 +274,6 @@ exportMethods(get_swSoils) exportMethods(get_swWeather) exportMethods(get_swWeatherData) exportMethods(get_swYears) -exportMethods(initialize) exportMethods(swCarbon_CO2ppm) exportMethods(swCarbon_DeltaYear) exportMethods(swCarbon_Scenario) @@ -344,7 +365,6 @@ importFrom(methods,as) importFrom(methods,callNextMethod) importFrom(methods,getSlots) importFrom(methods,inheritedSlotNames) -importFrom(methods,initialize) importFrom(methods,new) importFrom(methods,slot) importFrom(methods,slotNames) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 6543bb1a..92afe28b 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -862,6 +862,14 @@ setGeneric( function(object) standardGeneric("get_Markov") ) +#' \code{get_swMarkov} +#' @param object An object of class \code{\linkS4class{swMarkov}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} +setGeneric( + "get_swMarkov", + function(object) standardGeneric("get_swMarkov") +) #' \code{swMarkov_Prob} #' @param object An object of class \code{\linkS4class{swMarkov}} or @@ -901,6 +909,26 @@ setGeneric( function(object, value) standardGeneric("set_Markov<-") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swMarkov<-}} doesn't work. +#' \code{set_swMarkov} +#' @inheritParams set_swMarkov<- +#' @export +setGeneric( + "set_swMarkov", + function(object, value) standardGeneric("set_swMarkov") +) + +#' \code{set_swMarkov<-} +#' @param object An object of class \code{\linkS4class{swMarkov}} or +#' \code{\linkS4class{swInputData}}. +#' @param value A value to assign to a specific slot of the \code{object}. +#' @seealso \code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} +setGeneric( + "set_swMarkov<-", + function(object, value) standardGeneric("set_swMarkov<-") +) + #' \code{swMarkov_Prob<-} #' @param object An object of class \code{\linkS4class{swMarkov}} or #' \code{\linkS4class{swInputData}}. diff --git a/R/B_swFiles.R b/R/B_swFiles.R index da159055..5bd5453c 100644 --- a/R/B_swFiles.R +++ b/R/B_swFiles.R @@ -28,10 +28,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swFiles}}. -#' @param .Object An object of class \code{\linkS4class{swFiles}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swYears}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -44,60 +50,82 @@ #' @examples #' showClass("swFiles") #' x <- new("swFiles") +#' x <- swFiles() #' #' @name swFiles-class #' @export -setClass("swFiles", slots = c(ProjDir = "character", InFiles = "character", - WeatherPrefix = "character", OutputPrefix = "character")) +setClass( + "swFiles", + slots = c( + ProjDir = "character", + InFiles = "character", + WeatherPrefix = "character", + OutputPrefix = "character" + ), + prototype = list( + ProjDir = NA_character_, + # 23 must be equal to rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_NFILES"]] + InFiles = rep(NA_character_, 23), + WeatherPrefix = NA_character_, + OutputPrefix = NA_character_ + ) +) #' @rdname swFiles-class #' @export -setMethod("initialize", signature = "swFiles", function(.Object, ...) { +swFiles <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "files") - sns <- slotNames(def) + sns <- slotNames("swFiles") dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(dots) == 1 && inherits(dots[[1]], "swFiles")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } + dns <- names(dots) - if (FALSE) { - # currently not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } - - validObject(.Object) - .Object -}) - -swFiles_validity <- function(object) { - val <- TRUE - - if (length(object@ProjDir) != 1) { - msg <- "There must be exactly one @ProjDir value." - val <- if (isTRUE(val)) msg else c(val, msg) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - if (length(object@InFiles) != - rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_NFILES"]]) { - msg <- "The number of (non-empty) @InFiles must be SW_NFILES." - val <- if (isTRUE(val)) msg else c(val, msg) - } + do.call("new", args = c("swFiles", tmp)) +} - if (length(object@WeatherPrefix) != 1 || nchar(object@WeatherPrefix) == 0) { - msg <- "There must be exactly one non-empty @WeatherPrefix value." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@OutputPrefix) != 1) { - msg <- "There must be exactly one @OutputPrefix value." - val <- if (isTRUE(val)) msg else c(val, msg) +setValidity( + "swFiles", + function(object) { + val <- TRUE + + if (length(object@ProjDir) != 1) { + msg <- "There must be exactly one @ProjDir value." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if ( + length(object@InFiles) != + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_NFILES"]] + ) { + msg <- "The number of (non-empty) @InFiles must be SW_NFILES." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if (length(object@WeatherPrefix) != 1 || nchar(object@WeatherPrefix) == 0) { + msg <- "There must be exactly one non-empty @WeatherPrefix value." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if (length(object@OutputPrefix) != 1) { + msg <- "There must be exactly one @OutputPrefix value." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val } +) - val -} -setValidity("swFiles", swFiles_validity) #' @rdname swFiles-class @@ -200,7 +228,9 @@ setMethod( "swFiles_MarkovProbs", "swFiles", function(object) { - object@InFiles[1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovProb"]]] + object@InFiles[ + 1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][["eMarkovProb"]] + ] } ) diff --git a/R/C_swYears.R b/R/C_swYears.R index 141b9ff3..d76bf7be 100644 --- a/R/C_swYears.R +++ b/R/C_swYears.R @@ -30,10 +30,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swYears}}. -#' @param .Object An object of class \code{\linkS4class{swYears}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -45,18 +51,38 @@ #' @examples #' showClass("swYears") #' x <- new("swYears") +#' x <- swYears() #' #' @name swYears-class #' @export -setClass("swYears", slots = c(StartYear = "integer", EndYear = "integer", - FDOFY = "integer", EDOEY = "integer", isNorth = "logical")) +setClass( + "swYears", + slots = c( + StartYear = "integer", + EndYear = "integer", + FDOFY = "integer", + EDOEY = "integer", + isNorth = "logical" + ), + prototype = list( + StartYear = NA_integer_, + EndYear = NA_integer_, + FDOFY = NA_integer_, + EDOEY = NA_integer_, + isNorth = NA + ) +) #' @rdname swYears-class #' @export -setMethod("initialize", signature = "swYears", function(.Object, ...) { +swYears <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "years") - sns <- slotNames(def) + sns <- slotNames("swYears") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swYears")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) # We don't set values for slots `StartYear` and `EndYear` if not passed @@ -65,60 +91,78 @@ setMethod("initialize", signature = "swYears", function(.Object, ...) { if (!("StartYear" %in% dns)) def@StartYear <- NA_integer_ if (!("EndYear" %in% dns)) def@EndYear <- NA_integer_ - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + do.call("new", args = c("swYears", tmp)) +} - validObject(.Object) - .Object -}) -swYears_validity <- function(object) { - val <- TRUE +setValidity( + "swYears", + function(object) { + val <- TRUE - if (length(object@StartYear) != 1 || - (!anyNA(object@StartYear) && isTRUE(object@StartYear < 0))) { - msg <- "There must be exactly one NA or non-negative @StartYear value." - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + length(object@StartYear) != 1 || + (!anyNA(object@StartYear) && isTRUE(object@StartYear < 0)) + ) { + msg <- "There must be exactly one NA or non-negative @StartYear value." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (length(object@EndYear) != 1 || - (!anyNA(object@EndYear) && isTRUE(object@EndYear < 0)) || - (!anyNA(object@EndYear) && !anyNA(object@StartYear) && - isTRUE(object@EndYear < object@StartYear))) { - msg <- paste("There must be exactly NA or one non-negative @EndYear value ", - "that is not smaller than @StartYear.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + length(object@EndYear) != 1 || + (!anyNA(object@EndYear) && isTRUE(object@EndYear < 0)) || + (!anyNA(object@EndYear) && !anyNA(object@StartYear) && + isTRUE(object@EndYear < object@StartYear)) + ) { + msg <- paste( + "There must be exactly NA or one non-negative @EndYear value ", + "that is not smaller than @StartYear." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (length(object@FDOFY) != 1 || !is.finite(object@FDOFY) || + if ( + length(object@FDOFY) != 1 || + !is.finite(object@FDOFY) || object@FDOFY < 0 || - object@FDOFY > 365) { - msg <- paste("There must be exactly one non-negative finite @FDOFY value", - "that is smaller than day 366.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + object@FDOFY > 365 + ) { + msg <- paste( + "There must be exactly one non-negative finite @FDOFY value", + "that is smaller than day 366." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (length(object@EDOEY) != 1 || !is.finite(object@EDOEY) || - object@EDOEY < 0 || object@EDOEY > 366 || object@EDOEY < object@FDOFY) { - msg <- paste("There must be exactly one non-negative finite @EDOEY value", - "that is not larger than day 366 and larger than @FDOFY.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + length(object@EDOEY) != 1 || + !is.finite(object@EDOEY) || + object@EDOEY < 0 || + object@EDOEY > 366 || + object@EDOEY < object@FDOFY + ) { + msg <- paste( + "There must be exactly one non-negative finite @EDOEY value", + "that is not larger than day 366 and larger than @FDOFY." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (length(object@isNorth) != 1 || is.na(object@isNorth)) { - msg <- paste("There must be exactly one non-NA logical @isNorth value.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (length(object@isNorth) != 1 || is.na(object@isNorth)) { + msg <- "There must be exactly one non-NA logical @isNorth value." + val <- if (isTRUE(val)) msg else c(val, msg) + } - val -} -setValidity("swYears", swYears_validity) + val + } +) diff --git a/R/D_swCarbon.R b/R/D_swCarbon.R index a8fab59c..77c2fbe5 100644 --- a/R/D_swCarbon.R +++ b/R/D_swCarbon.R @@ -27,9 +27,15 @@ #' simulate the effects of atmospheric carbon dioxide. #' #' @param object An object of class \code{\linkS4class{swCarbon}}. -#' @param .Object An object of class \code{\linkS4class{swCarbon}}. #' @param value A value to assign to a specific slot of the object. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @slot CarbonUseBio Object of class \code{"integer"}, where a value of 1 #' enables the \var{CO2} biomass multiplier. @@ -49,6 +55,7 @@ #' @examples #' showClass("swCarbon") #' x <- new("swCarbon") +#' x <- swCarbon() #' #' @name swCarbon-class #' @export @@ -60,70 +67,83 @@ setClass( Scenario = "character", DeltaYear = "integer", CO2ppm = "matrix" + ), + prototype = list( + CarbonUseBio = NA_integer_, + CarbonUseWUE = NA_integer_, + Scenario = NA_character_, + DeltaYear = NA_integer_, + CO2ppm = array( + NA_real_, + dim = c(0, 2), + dimnames = list(NULL, c("Year", "CO2ppm")) + ) ) ) #' @rdname swCarbon-class #' @export -setMethod( - "initialize", - signature = "swCarbon", - function(.Object, ...) { - def <- slot(rSOILWAT2::sw_exampleData, "carbon") - sns <- slotNames(def) - dots <- list(...) - dns <- names(dots) - - if ("CO2ppm" %in% dns) { - # Guarantee names - dimnames(dots[["CO2ppm"]]) <- list(NULL, colnames(def@CO2ppm)) - } +swCarbon <- function(...) { + def <- slot(rSOILWAT2::sw_exampleData, "carbon") + sns <- slotNames("swCarbon") + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swCarbon")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + dns <- names(dots) - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } + # Guarantee names + if ("CO2ppm" %in% dns) { + dimnames(dots[["CO2ppm"]]) <- list(NULL, colnames(def@CO2ppm)) + } - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object - } -) + do.call("new", args = c("swCarbon", tmp)) +} -setValidity("swCarbon", function(object) { - val <- TRUE - if (!all(c("Year", "CO2ppm") == colnames(object@CO2ppm)) || - length(colnames(object@CO2ppm)) != 2) { - msg <- "@CO2ppm: column names must be 'Year' and 'CO2ppm'" - val <- if (isTRUE(val)) msg else c(val, msg) +setValidity( + "swCarbon", + function(object) { + val <- TRUE - } else { - is_bad <- any(is.na(object@CO2ppm[, "Year"]) | - round(object@CO2ppm[, "Year"]) != object@CO2ppm[, "Year"]) - if (is_bad) { - msg <- "@CO2ppm: has missing and/or non-integer-like years" + if (!all(c("Year", "CO2ppm") == colnames(object@CO2ppm)) || + length(colnames(object@CO2ppm)) != 2) { + msg <- "@CO2ppm: column names must be 'Year' and 'CO2ppm'" val <- if (isTRUE(val)) msg else c(val, msg) - } - is_bad <- !all(diff(object@CO2ppm[, "Year"]) == 1) - if (is_bad) { - msg <- "@CO2ppm: years are not consecutive" - val <- if (isTRUE(val)) msg else c(val, msg) + } else { + is_bad <- any(is.na(object@CO2ppm[, "Year"]) | + round(object@CO2ppm[, "Year"]) != object@CO2ppm[, "Year"]) + if (is_bad) { + msg <- "@CO2ppm: has missing and/or non-integer-like years" + val <- if (isTRUE(val)) msg else c(val, msg) + } + + is_bad <- !all(diff(object@CO2ppm[, "Year"]) == 1) + if (is_bad) { + msg <- "@CO2ppm: years are not consecutive" + val <- if (isTRUE(val)) msg else c(val, msg) + } + + ids_bad <- + is.na(object@CO2ppm[, "CO2ppm"]) | object@CO2ppm[, "CO2ppm"] < 0 + if (any(ids_bad)) { + msg <- "@CO2ppm: has missing and/or negative CO2-concentration values" + val <- if (isTRUE(val)) msg else c(val, msg) + } } - ids_bad <- is.na(object@CO2ppm[, "CO2ppm"]) | object@CO2ppm[, "CO2ppm"] < 0 - if (any(ids_bad)) { - msg <- "@CO2ppm: has missing and/or negative CO2-concentration values" - val <- if (isTRUE(val)) msg else c(val, msg) - } + val } - - val -}) +) #' @rdname swCarbon-class #' @export diff --git a/R/D_swCloud.R b/R/D_swCloud.R index 57d033a5..4e0522fc 100644 --- a/R/D_swCloud.R +++ b/R/D_swCloud.R @@ -31,10 +31,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swCloud}}. -#' @param .Object An object of class \code{\linkS4class{swCloud}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swInputData}} @@ -46,93 +52,115 @@ #' @examples #' showClass("swCloud") #' x <- new("swCloud") +#' x <- swCloud() #' #' @name swCloud-class #' @export -setClass("swCloud", slots = c(Cloud = "matrix")) +setClass( + "swCloud", + slots = c(Cloud = "matrix"), + prototype = list( + Cloud = array( + NA_real_, + dim = c(5, 12), + dimnames = list( + c( + "SkyCoverPCT", "WindSpeed_m/s", "HumidityPCT", "SnowDensity_kg/m^3", + "RainEvents_per_day" + ), + c( + "January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December" + ) + ) + ) + ) +) -swCloud_validity <- function(object) { - val <- TRUE - temp <- dim(object@Cloud) +setValidity( + "swCloud", + function(object) { + val <- TRUE + temp <- dim(object@Cloud) - if (temp[1] != 5) { - msg <- paste( - "@Cloud must have exactly 5 rows corresponding to", - "SkyCoverPCT, WindSpeed_m/s, HumidityPCT,", - "SnowDensity_kg/m^3, and RainEvents_per_day" - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (temp[1] != 5) { + msg <- paste( + "@Cloud must have exactly 5 rows corresponding to", + "SkyCoverPCT, WindSpeed_m/s, HumidityPCT,", + "SnowDensity_kg/m^3, and RainEvents_per_day" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (temp[2] != 12) { - msg <- paste("@Cloud must have exactly 12 columns corresponding months.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (temp[2] != 12) { + msg <- "@Cloud must have exactly 12 columns corresponding months." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(is.na(object@Cloud[1, ])) && (any(object@Cloud[1, ] < 0) || - any(object@Cloud[1, ] > 100))) { - msg <- paste("@Cloud['SkyCoverPCT', ] must be values between 0 and 100%.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (!all(is.na(object@Cloud[1, ])) && (any(object@Cloud[1, ] < 0) || + any(object@Cloud[1, ] > 100))) { + msg <- "@Cloud['SkyCoverPCT', ] must be values between 0 and 100%." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(is.na(object@Cloud[2, ])) && (any(object@Cloud[2, ] < 0))) { - msg <- paste("@Cloud['WindSpeed_m/s', ] must be values >= 0.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (!all(is.na(object@Cloud[2, ])) && (any(object@Cloud[2, ] < 0))) { + msg <- "@Cloud['WindSpeed_m/s', ] must be values >= 0." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(is.na(object@Cloud[3, ])) && (any(object@Cloud[3, ] < 0) || - any(object@Cloud[3, ] > 100))) { - msg <- paste("@Cloud['HumidityPCT', ] must be values between 0 and 100%.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (!all(is.na(object@Cloud[3, ])) && (any(object@Cloud[3, ] < 0) || + any(object@Cloud[3, ] > 100))) { + msg <- "@Cloud['HumidityPCT', ] must be values between 0 and 100%." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(is.na(object@Cloud[4, ])) && any(object@Cloud[4, ] < 0)) { - msg <- paste("@Cloud['SnowDensity_kg/m^3', ] must be values >= 0.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (!all(is.na(object@Cloud[4, ])) && any(object@Cloud[4, ] < 0)) { + msg <- "@Cloud['SnowDensity_kg/m^3', ] must be values >= 0." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(is.na(object@Cloud[5, ])) && any(object@Cloud[5, ] < 1)) { - msg <- paste("@Cloud['RainEvents_per_day', ] must be values >= 1.") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (!all(is.na(object@Cloud[5, ])) && any(object@Cloud[5, ] < 1)) { + msg <- "@Cloud['RainEvents_per_day', ] must be values >= 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } - val -} -setValidity("swCloud", swCloud_validity) + val + } +) #' @rdname swCloud-class #' @export -setMethod("initialize", signature = "swCloud", function(.Object, ...) { +swCloud <- function(...) { + # Copy from SOILWAT2 "testing", but dot arguments take precedence def <- slot(rSOILWAT2::sw_exampleData, "cloud") - sns <- slotNames(def) + sns <- slotNames("swCloud") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swCloud")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) # We don't set values for slot `Cloud` (except SnowDensity and RainEvents) - # if not passed via ...; this is to prevent simulation runs with accidentally - # incorrect values + # if not passed via ...; this is to prevent simulation runs with + # accidentally incorrect values if (!("Cloud" %in% dns)) { ids <- 4:5 def@Cloud[- ids, ] <- NA_real_ } else { # Guarantee names - dimnames(dots[["Cloud"]]) <- list(NULL, colnames(def@Cloud)) + dimnames(dots[["Cloud"]]) <- dimnames(def@Cloud) } - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } - - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } - - validObject(.Object) - .Object -}) + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns + do.call("new", args = c("swCloud", tmp)) +} #' @rdname swCloud-class diff --git a/R/D_swMarkov.R b/R/D_swMarkov.R index 27f07b66..44e52039 100644 --- a/R/D_swMarkov.R +++ b/R/D_swMarkov.R @@ -29,10 +29,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swMarkov}}. -#' @param .Object An object of class \code{\linkS4class{swMarkov}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -44,16 +50,48 @@ #' @examples #' showClass("swMarkov") #' x <- new("swMarkov") +#' x <- swMarkov() #' #' @name swMarkov-class #' @export -setClass("swMarkov", slots = c(Prob = "matrix", Conv = "matrix")) +setClass( + "swMarkov", + slots = c(Prob = "matrix", Conv = "matrix"), + prototype = list( + Prob = array( + NA_real_, + dim = c(366, 5), + dimnames = list( + NULL, + c("DOY", "p_wet_wet", "p_wet_dry", "avg_ppt", "std_ppt") + ) + ), + Conv = array( + NA_real_, + dim = c(53, 11), + dimnames = list( + NULL, + c( + "WEEK", "wTmax_C", "wTmin_C", "var_wTmax", "cov_wTmaxmin", + "cov_wTminmax", "var_wTmin", "cfmax_wet", "cfmax_dry", "cfmin_wet", + "cfmin_dry" + ) + ) + ) + ) +) #' @rdname swMarkov-class #' @export -setMethod("initialize", signature = "swMarkov", function(.Object, ...) { +swMarkov <- function(...) { + # Copy from SOILWAT2 "testing", but dot arguments take precedence def <- slot(rSOILWAT2::sw_exampleData, "markov") + sns <- slotNames("swMarkov") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swMarkov")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) # We don't set values for slots `Prob` and `Conv`; this is to prevent @@ -62,64 +100,78 @@ setMethod("initialize", signature = "swMarkov", function(.Object, ...) { # We have to explicitly give column names (as defined in `onGet_MKV_prob` and # `onGet_MKV_conv`) because they are not read in by C code if the weather # generator is turned off - ctemp_Prob <- c("DOY", "p_wet_wet", "p_wet_dry", "avg_ppt", "std_ppt") - ctemp_Conv <- c("WEEK", "wTmax_C", "wTmin_C", "var_wTmax", - "cov_wTmaxmin", "cov_wTminmax", "var_wTmin", - "cfmax_wet", "cfmax_dry", "cfmin_wet", "cfmin_dry") + tmp <- new("swMarkov") + ctemp_Prob <- colnames(slot(tmp, "Prob")) + ctemp_Conv <- colnames(slot(tmp, "Conv")) if ("Prob" %in% dns) { - temp <- dots[["Prob"]] - if (sum(dim(temp)) > 0) { - colnames(temp) <- ctemp_Prob + tmp <- dots[["Prob"]] + if (sum(dim(tmp)) > 0) { + colnames(tmp) <- ctemp_Prob } } else { - temp <- matrix(NA_real_, nrow = 366, ncol = length(ctemp_Prob), - dimnames = list(NULL, ctemp_Prob)) - temp[, "DOY"] <- 1:366 + tmp <- array( + NA_real_, + dim = c(366, length(ctemp_Prob)), + dimnames = list(NULL, ctemp_Prob) + ) + tmp[, "DOY"] <- 1:366 } - .Object@Prob <- temp + dots[["Prob"]] <- tmp if ("Conv" %in% dns) { - temp <- dots[["Conv"]] - if (sum(dim(temp)) > 0) { - colnames(temp) <- ctemp_Conv + tmp <- dots[["Conv"]] + if (sum(dim(tmp)) > 0) { + colnames(tmp) <- ctemp_Conv } } else { - temp <- matrix(NA_real_, nrow = 53, ncol = length(ctemp_Conv), - dimnames = list(NULL, ctemp_Conv)) - temp[, "WEEK"] <- 1:53 + tmp <- array( + NA_real_, + dim = c(53, length(ctemp_Conv)), + dimnames = list(NULL, ctemp_Conv) + ) + tmp[, "WEEK"] <- 1:53 } - .Object@Conv <- temp + dots[["Conv"]] <- tmp - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swMarkov", tmp)) +} -swMarkov_validity <- function(object) { - val <- TRUE - temp <- dim(object@Prob) - if (!isTRUE(all.equal(temp, c(0, 0))) && - !isTRUE(all.equal(temp, c(366, 5)))) { - msg <- paste("@Prob must be a 0x0 or a 366x5 matrix.") - val <- if (isTRUE(val)) msg else c(val, msg) - } - temp <- dim(object@Conv) - if (!isTRUE(all.equal(temp, c(0, 0))) && - !isTRUE(all.equal(temp, c(53, 11)))) { - msg <- paste("@Conv must be a 0x0 or a 53x11 matrix.") - val <- if (isTRUE(val)) msg else c(val, msg) - } +setValidity( + "swMarkov", + function(object) { + val <- TRUE - val -} -setValidity("swMarkov", swMarkov_validity) + temp <- dim(object@Prob) + if ( + !isTRUE(all.equal(temp, c(0, 0))) && + !isTRUE(all.equal(temp, c(366, 5))) + ) { + msg <- "@Prob must be a 0x0 or a 366x5 matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@Conv) + if ( + !isTRUE(all.equal(temp, c(0, 0))) && + !isTRUE(all.equal(temp, c(53, 11))) + ) { + msg <- "@Conv must be a 0x0 or a 53x11 matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val + } +) #' @rdname swMarkov-class @@ -136,6 +188,16 @@ setMethod("swMarkov_Conv", "swMarkov", function(object) object@Conv) #' @export setReplaceMethod( "set_Markov", + signature = "swMarkov", function(object, value) { + set_swMarkov(object) <- value + object + } +) + +#' @rdname swMarkov-class +#' @export +setReplaceMethod( + "set_swMarkov", signature = "swMarkov", function(object, value) { if (ncol(value@Prod) == ncol(object@Prob)) { dimnames(value@Prob) <- dimnames(object@Prob) diff --git a/R/D_swWeather.R b/R/D_swWeather.R index 181d9d77..9cdbfa6b 100644 --- a/R/D_swWeather.R +++ b/R/D_swWeather.R @@ -28,9 +28,14 @@ #' The methods listed below work on this class and the proper slot of the class #' \code{\linkS4class{swInputData}}. #' -#' @param .Object An object of class -#' \code{\linkS4class{swMonthlyScalingParams}}. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -42,56 +47,78 @@ #' @examples #' showClass("swMonthlyScalingParams") #' x <- new("swMonthlyScalingParams") +#' x <- swMonthlyScalingParams() #' #' @name swMonthlyScalingParams-class #' @export -setClass("swMonthlyScalingParams", slots = c(MonthlyScalingParams = "matrix")) - -setValidity("swMonthlyScalingParams", function(object) { - val <- TRUE - temp <- dim(object@MonthlyScalingParams) +setClass( + "swMonthlyScalingParams", + slots = c(MonthlyScalingParams = "matrix"), + prototype = list( + MonthlyScalingParams = array( + NA_real_, + dim = c(12, 6), + dimnames = list( + NULL, + c("PPT", "MaxT", "MinT", "SkyCover", "Wind", "rH") + ) + ) + ) +) - if (temp[2] != 6) { - msg <- paste("@MonthlyScalingParams must have exactly 6 columns ", - "corresponding to PPT, MaxT, MinT, SkyCover, Wind, rH") - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (temp[1] != 12) { - msg <- paste("@MonthlyScalingParams must have exactly 12 rows", - "corresponding months.") - val <- if (isTRUE(val)) msg else c(val, msg) - } +setValidity( + "swMonthlyScalingParams", + function(object) { + val <- TRUE + temp <- dim(object@MonthlyScalingParams) + + if (temp[2] != 6) { + msg <- paste( + "@MonthlyScalingParams must have exactly 6 columns ", + "corresponding to PPT, MaxT, MinT, SkyCover, Wind, rH" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (temp[1] != 12) { + msg <- paste( + "@MonthlyScalingParams must have exactly 12 rows", + "corresponding months." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - val -}) + val + } +) #' @rdname swMonthlyScalingParams-class #' @export -setMethod("initialize", signature = "swMonthlyScalingParams", - function(.Object, ...) { - def <- slot(rSOILWAT2::sw_exampleData, "weather") - sns <- slotNames("swMonthlyScalingParams") - dots <- list(...) - dns <- names(dots) - - if ("MonthlyScalingParams" %in% dns) { - # Guarantee names - dimnames(dots[["MonthlyScalingParams"]]) <- - list(NULL, colnames(def@MonthlyScalingParams)) - } +swMonthlyScalingParams <- function(...) { + def <- slot(rSOILWAT2::sw_exampleData, "weather") + sns <- slotNames("swMonthlyScalingParams") + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swMonthlyScalingParams")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + dns <- names(dots) - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } + if ("MonthlyScalingParams" %in% dns) { + # Guarantee names + dimnames(dots[["MonthlyScalingParams"]]) <- dimnames( + def@MonthlyScalingParams + ) + } - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swMonthlyScalingParams", tmp)) +} @@ -103,10 +130,16 @@ setMethod("initialize", signature = "swMonthlyScalingParams", #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swWeather}}. -#' @param .Object An object of class \code{\linkS4class{swWeather}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swInputData}} \code{\linkS4class{swCloud}} @@ -118,6 +151,7 @@ setMethod("initialize", signature = "swMonthlyScalingParams", #' @examples #' showClass("swWeather") #' x <- new("swWeather") +#' x <- swWeather() #' #' @name swWeather-class #' @export @@ -134,49 +168,69 @@ setClass( # TODO: this class should not contain `swMonthlyScalingParams` but # instead be a composition, i.e., have a slot of that class contains = "swMonthlyScalingParams", + prototype = list( + UseSnow = NA, + pct_SnowDrift = NA_real_, + pct_SnowRunoff = NA_real_, + use_weathergenerator = NA, + use_weathergenerator_only = NA, + FirstYear_Historical = NA_integer_ + ) ) -setValidity("swWeather", function(object) { - val <- TRUE - sns <- setdiff(slotNames("swWeather"), inheritedSlotNames("swWeather")) +setValidity( + "swWeather", + function(object) { + val <- TRUE + sns <- setdiff(slotNames("swWeather"), inheritedSlotNames("swWeather")) - for (sn in sns) { - if (length(slot(object, sn)) != 1) { - msg <- paste0("@", sn, " must have exactly one value.") - val <- if (isTRUE(val)) msg else c(val, msg) + for (sn in sns) { + if (length(slot(object, sn)) != 1) { + msg <- paste0("@", sn, " must have exactly one value.") + val <- if (isTRUE(val)) msg else c(val, msg) + } } - } - val -}) + val + } +) #' @rdname swWeather-class #' @export -setMethod("initialize", signature = "swWeather", function(.Object, ...) { +swWeather <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "weather") sns <- setdiff(slotNames("swWeather"), inheritedSlotNames("swWeather")) dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) { - dots[[sn]] - } else { - if (sn == "FirstYear_Historical") { - -1L - } else { - slot(def, sn) - } - } + if (length(dots) == 1 && inherits(dots[[1]], "swWeather")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } - - .Object <- callNextMethod(.Object, ...) - validObject(.Object) - - .Object -}) - + dns <- setdiff(names(dots), inheritedSlotNames("swWeather")) + + # Fix "FirstYear_Historical" + def@FirstYear_Historical <- -1L + + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns + + do.call( + "new", + args = c( + "swWeather", + if ("MonthlyScalingParams" %in% dns) { + swMonthlyScalingParams(dots[["MonthlyScalingParams"]]) + } else { + do.call(swMonthlyScalingParams, dots) + }, + tmp + ) + ) +} #' @rdname swWeather-class diff --git a/R/D_swWeatherData.R b/R/D_swWeatherData.R index aa942571..201c9dea 100644 --- a/R/D_swWeatherData.R +++ b/R/D_swWeatherData.R @@ -29,12 +29,18 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swWeatherData}}. -#' @param .Object An object of class \code{\linkS4class{swWeatherData}}. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. -#' @param year An integer value. The calendar year of the weather \code{data} +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. +#' @slot year An integer value. The calendar year of the weather \code{data} #' object. -#' @param data A 365 x 4 or 366 x 4 matrix representing daily weather data for +#' @slot data A 365 x 4 or 366 x 4 matrix representing daily weather data for #' one calendar \code{year} with columns \var{DOY}, \var{Tmax_C}, #' \var{Tmin_C}, and \var{PPT_cm}. #' @@ -48,63 +54,89 @@ #' @examples #' showClass("swWeatherData") #' x <- new("swWeatherData") +#' x <- swWeatherData() #' #' @name swWeatherData-class #' @export -setClass("swWeatherData", slots = c(data = "matrix", year = "integer")) - -swWeatherData_validity <- function(object) { - val <- TRUE +setClass( + "swWeatherData", + slots = c(data = "matrix", year = "integer"), + prototype = list( + # NOTE: 999 should be rSW2_glovars[["kSOILWAT2"]][["kNUM"]][["SW_MISSING"]] + data = array( + data = c(1:366, rep(999, 366 * 3)), + dim = c(366, 4), + dimnames = list(NULL, c("DOY", "Tmax_C", "Tmin_C", "PPT_cm")) + ), + year = NA_integer_ + ) +) + +setValidity( + "swWeatherData", + function(object) { + val <- TRUE + + if (!(length(object@year) == 1 && isTRUE(is.finite(object@year)) && + isTRUE(object@year >= 0))) { + msg <- "@year must be exactly one positive finite value." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + tmp <- dim(object@data) + if (tmp[2] != 4) { + msg <- paste( + "@data must have exactly 4 columns corresponding to", + "DOY, Tmax_C, Tmin_C, PPT_cm" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (!(tmp[1] %in% c(365, 366))) { + msg <- "@data must 365 or 366 rows corresponding to day of year." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val + } +) - if (!(length(object@year) == 1 && isTRUE(is.finite(object@year)) && - isTRUE(object@year >= 0))) { - msg <- "@year must be exactly one positive finite value." - val <- if (isTRUE(val)) msg else c(val, msg) +#' @rdname swWeatherData-class +#' @export +swWeatherData <- function(...) { + # We don't use default values for slots `year` and `data`; this is to prevent + # simulation runs with accidentally incorrect values + def <- new("swWeatherData") + sns <- slotNames(def) + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swWeatherData")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } + dns <- names(dots) - temp <- dim(object@data) - if (temp[2] != 4) { - msg <- paste("@data must have exactly 4 columns corresponding to", - "DOY, Tmax_C, Tmin_C, PPT_cm") - val <- if (isTRUE(val)) msg else c(val, msg) + # Guarantee names + if ("data" %in% dns) { + dimnames(dots[["data"]]) <- dimnames(slot(def, "data")) } - if (!(temp[1] %in% c(365, 366))) { - msg <- paste("@data must 365 or 366 rows corresponding to day of year.") - val <- if (isTRUE(val)) msg else c(val, msg) + + if ("year" %in% dns) { + dots[["year"]] <- as.integer(dots[["year"]]) } - val + do.call("new", args = c("swWeatherData", dots[dns %in% sns])) } -setValidity("swWeatherData", swWeatherData_validity) + #' @rdname swWeatherData-class #' @export -setMethod("initialize", signature = "swWeatherData", function(.Object, ..., - year = 0L, data = NULL) { - - # first year of weather data - def <- slot(rSOILWAT2::sw_exampleData, "weatherHistory")[[1]] - # We don't set values for slots `year` and `data`; this is to prevent - # simulation runs with accidentally incorrect values - - if (is.null(data)) { - temp <- c(1:366, - rep(rSW2_glovars[["kSOILWAT2"]][["kNUM"]][["SW_MISSING"]], 366 * 3)) - data <- matrix(temp, nrow = 366, ncol = 4) - } - colnames(data) <- colnames(slot(def, "data")) - .Object@data <- data - - .Object@year <- as.integer(year) - - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) +weatherHistory <- function(weatherList = NULL) { + if (isTRUE(dbW_check_weatherData(weatherList))) { + weatherList + } else { + list(swWeatherData()) } +} - validObject(.Object) - .Object -}) #' @rdname swWeatherData-class #' @export diff --git a/R/E_swProd.R b/R/E_swProd.R index d5260a00..44fd5baa 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -22,6 +22,8 @@ # Zach Kramer (2017) ############################################################################### +veg_names <- c("Grasses", "Shrubs", "Trees", "Forbs") +lc_names <- c(veg_names, "Bare Ground") #' Class \code{"swProd"} #' @@ -29,10 +31,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swProd}}. -#' @param .Object An object of class \code{\linkS4class{swProd}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' @param vegtype The name or index of the vegetation type. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} @@ -45,114 +53,226 @@ #' @examples #' showClass("swProd") #' x <- new("swProd") +#' x <- swProd() #' #' @name swProd-class #' @export -setClass("swProd", slots = c(Composition = "numeric", Albedo = "numeric", - CanopyHeight = "matrix", - VegetationInterceptionParameters = "matrix", - LitterInterceptionParameters = "matrix", - EsTpartitioning_param = "numeric", Es_param_limit = "numeric", - Shade = "matrix", - HydraulicRedistribution_use = "logical", HydraulicRedistribution = "matrix", - CriticalSoilWaterPotential = "numeric", CO2Coefficients = "matrix", - MonthlyVeg = "list")) - - -swProd_validity <- function(object) { - val <- TRUE - nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] - - if (length(object@Composition) != 1 + nvegs || - !all(is.na(object@Composition) | (object@Composition >= 0 & - object@Composition <= 1))) { - msg <- "@Composition must have 1 + NVEGTYPES values between 0 and 1 or NA." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@Albedo) != 1 + nvegs || - !all(is.na(object@Albedo) | (object@Albedo >= 0 & object@Albedo <= 1))) { - msg <- "@Albedo must have 1 + NVEGTYPES values between 0 and 1 or NA." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - temp <- dim(object@CanopyHeight) - if (identical(temp, c(5, nvegs))) { - msg <- "@CanopyHeight must be a 5xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - temp <- dim(object@VegetationInterceptionParameters) - if (identical(temp, c(2, nvegs))) { - msg <- "@VegetationInterceptionParameters must be a 4xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - temp <- dim(object@LitterInterceptionParameters) - if (identical(temp, c(1, nvegs))) { - msg <- "@LitterInterceptionParameters must be a 1xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@EsTpartitioning_param) != nvegs || - !all(is.finite(object@EsTpartitioning_param))) { - msg <- "@EsTpartitioning_param must have NVEGTYPES finite values." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@Es_param_limit) != nvegs || - !all(object@Es_param_limit >= 0)) { - msg <- "@Es_param_limit must have NVEGTYPES non-negative values." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - temp <- dim(object@Shade) - if (identical(temp, c(6, nvegs))) { - msg <- "@Shade must be a 6xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@HydraulicRedistribution_use) != nvegs) { - msg <- "@HydraulicRedistribution_use must have NVEGTYPES values." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - temp <- dim(object@HydraulicRedistribution) - if (identical(temp, c(3, nvegs))) { - msg <- "@HydraulicRedistribution must be a 3xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@CriticalSoilWaterPotential) != nvegs || - !all(object@CriticalSoilWaterPotential < 0)) { - msg <- "@CriticalSoilWaterPotential must have NVEGTYPES negative values." - val <- if (isTRUE(val)) msg else c(val, msg) - } +setClass( + "swProd", + slots = c( + Composition = "numeric", + Albedo = "numeric", + CanopyHeight = "matrix", + VegetationInterceptionParameters = "matrix", + LitterInterceptionParameters = "matrix", + EsTpartitioning_param = "numeric", + Es_param_limit = "numeric", + Shade = "matrix", + HydraulicRedistribution_use = "logical", + HydraulicRedistribution = "matrix", + CriticalSoilWaterPotential = "numeric", + CO2Coefficients = "matrix", + MonthlyVeg = "list" + ) + , + prototype = list( + # this should be 1 + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] + Composition = stats::setNames(rep(NA_real_, 5), lc_names), + Albedo = stats::setNames(rep(NA_real_, 5), lc_names), + CanopyHeight = array( + NA_real_, + dim = c(5, 4), + dimnames = list( + c("xinflec", "yinflec", "range", "slope", "height_cm"), + veg_names + ) + ), + VegetationInterceptionParameters = array( + NA_real_, + dim = c(2, 4), + dimnames = list( + c("kSmax", "kdead"), + veg_names + ) + ), + LitterInterceptionParameters = array( + NA_real_, + dim = c(1, 4), + dimnames = list( + "kSmax", + veg_names + ) + ), + EsTpartitioning_param = stats::setNames(rep(NA_real_, 4), veg_names), + Es_param_limit = stats::setNames(rep(NA_real_, 4), veg_names), + Shade = array( + NA_real_, + dim = c(6, 4), + dimnames = list( + c( + "ShadeScale", "ShadeMaximalDeadBiomass", "tanfuncXinflec", + "yinflec", "range", "slope" + ), + veg_names + ) + ), + HydraulicRedistribution_use = stats::setNames(rep(NA, 4), veg_names), + HydraulicRedistribution = array( + NA_real_, + dim = c(3, 4), + dimnames = list( + c("MaxCondRoot", "SoilWaterPotential50", "ShapeCond"), + veg_names + ) + ), + CriticalSoilWaterPotential = stats::setNames(rep(NA_real_, 4), veg_names), + CO2Coefficients = array( + NA_real_, + dim = c(4, 4), + dimnames = list( + veg_names, + c("Biomass Coeff1", "Biomass Coeff2", "WUE Coeff1", "WUE Coeff2") + ) + ), + MonthlyVeg = stats::setNames( + lapply( + veg_names, + function(k) { + array( + NA_real_, + dim = c(12, 4), + dimnames = list( + c( + "January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December" + ), + c("Litter", "Biomass", "Live_pct", "LAI_conv") + ) + ) + } + ), + veg_names + ) + ) +) - temp <- dim(object@CO2Coefficients) - if (identical(temp, c(4, nvegs))) { - msg <- "@CO2Coefficients must be a 4xNVEGTYPES matrix." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@MonthlyVeg) != nvegs || - any(sapply(object@MonthlyVeg, - function(x) !identical(dim(x), c(12L, 4L))))) { - msg <- paste("@MonthlyVeg must be a list with NVEGTYPES elements of a", - "12x4 matrix.") - val <- if (isTRUE(val)) msg else c(val, msg) - } - val -} -setValidity("swProd", swProd_validity) - -#' @rdname swProd-class -#' @export -setMethod("initialize", signature = "swProd", function(.Object, ...) { +setValidity( + "swProd", + function(object) { + val <- TRUE + nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] + + if ( + length(object@Composition) != 1 + nvegs || + !all(is.na(object@Composition) | (object@Composition >= 0 & + object@Composition <= 1)) + ) { + msg <- paste( + "@Composition must have 1 + NVEGTYPES values", + "between 0 and 1 or NA." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if ( + length(object@Albedo) != 1 + nvegs || + !all(is.na(object@Albedo) | (object@Albedo >= 0 & object@Albedo <= 1)) + ) { + msg <- "@Albedo must have 1 + NVEGTYPES values between 0 and 1 or NA." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@CanopyHeight) + if (identical(temp, c(5, nvegs))) { + msg <- "@CanopyHeight must be a 5xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@VegetationInterceptionParameters) + if (identical(temp, c(2, nvegs))) { + msg <- "@VegetationInterceptionParameters must be a 4xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@LitterInterceptionParameters) + if (identical(temp, c(1, nvegs))) { + msg <- "@LitterInterceptionParameters must be a 1xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if ( + length(object@EsTpartitioning_param) != nvegs || + !all(is.finite(object@EsTpartitioning_param)) + ) { + msg <- "@EsTpartitioning_param must have NVEGTYPES finite values." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if ( + length(object@Es_param_limit) != nvegs || + !all(object@Es_param_limit >= 0) + ) { + msg <- "@Es_param_limit must have NVEGTYPES non-negative values." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@Shade) + if (identical(temp, c(6, nvegs))) { + msg <- "@Shade must be a 6xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if (length(object@HydraulicRedistribution_use) != nvegs) { + msg <- "@HydraulicRedistribution_use must have NVEGTYPES values." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@HydraulicRedistribution) + if (identical(temp, c(3, nvegs))) { + msg <- "@HydraulicRedistribution must be a 3xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if (length(object@CriticalSoilWaterPotential) != nvegs || + !all(object@CriticalSoilWaterPotential < 0)) { + msg <- "@CriticalSoilWaterPotential must have NVEGTYPES negative values." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + temp <- dim(object@CO2Coefficients) + if (identical(temp, c(4, nvegs))) { + msg <- "@CO2Coefficients must be a 4xNVEGTYPES matrix." + val <- if (isTRUE(val)) msg else c(val, msg) + } + + if ( + length(object@MonthlyVeg) != nvegs || + any(sapply(object@MonthlyVeg, + function(x) !identical(dim(x), c(12L, 4L)))) + ) { + msg <- paste( + "@MonthlyVeg must be a list with NVEGTYPES elements of a", + "12x4 matrix." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val + } +) + +#' @rdname swProd-class +#' @export +swProd <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "prod") - sns <- slotNames(def) + sns <- slotNames("swProd") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swProd")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) # We don't set values for slot `Composition`; this is to prevent simulation @@ -165,26 +285,30 @@ setMethod("initialize", signature = "swProd", function(.Object, ...) { gdns <- c( "CanopyHeight", "VegetationInterceptionParameters", "LitterInterceptionParameters", "HydraulicRedistribution", - "CO2Coefficients", "MonthlyVeg" + "CO2Coefficients" ) for (g in gdns) if (g %in% dns) { - dimnames(dots[[g]]) <- list(NULL, colnames(slot(def, g))) + dimnames(dots[[g]]) <- dimnames(slot(def, g)) } - # Initialize values - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if ("MonthlyVeg" %in% dns) { + for (kveg in veg_names) { + dimnames(dots[["MonthlyVeg"]][[kveg]]) <- dimnames( + slot(def, "MonthlyVeg")[[kveg]] + ) + } } - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swProd", tmp)) +} #' @rdname swProd-class diff --git a/R/F_swSite.R b/R/F_swSite.R index 5aeeac43..459f9b6f 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -29,10 +29,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swSite}}. -#' @param .Object An object of class \code{\linkS4class{swSite}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -44,6 +50,7 @@ #' @examples #' showClass("swSite") #' x <- new("swSite") +#' x <- swSite() #' #' @name swSite-class #' @export @@ -61,141 +68,186 @@ setClass( SoilTemperatureFlag = "logical", SoilTemperatureConstants = "numeric", TranspirationRegions = "matrix", - # swrc_flags: swrc_name, pdf_name swrc_flags = "character" ) + , + prototype = list( + SWClimits = c(swc_min = NA_real_, swc_init = NA_real_, swc_wet = NA_real_), + ModelFlags = c(Reset = NA, DeepDrain = NA), + ModelCoefficients = c( + PETmultiplier = NA_real_, + DailyRunoff = NA_real_, + DailyRunon = NA_real_ + ), + SnowSimulationParameters = stats::setNames( + rep(NA_real_, 5), + c("TminAccu2", "TmaxCrit", "lambdaSnow", "RmeltMin", "RmeltMax") + ), + DrainageCoefficient = c("SlowDrainCoefficientPerYear_cm/dy" = NA_real_), + EvaporationCoefficients = stats::setNames( + rep(NA_real_, 4), + c("RateShift", "RateSlope", "InflectionPoint", "Range") + ), + TranspirationCoefficients = stats::setNames( + rep(NA_real_, 4), + c("RateShift", "RateShape", "InflectionPoint", "Range") + ), + IntrinsicSiteParams = stats::setNames( + rep(NA_real_, 5), + c("Longitude", "Latitude", "Altitude", "Slope", "Aspect") + ), + SoilTemperatureFlag = NA, + SoilTemperatureConstants = stats::setNames( + rep(NA_real_, 10), + c( + "BiomassLimiter_g/m^2", "T1constant_a", "T1constant_b", "T1constant_c", + "cs_constant_SoilThermCondct", "cs_constant", + "sh_constant_SpecificHeatCapacity", + "ConstMeanAirTemp", "deltaX_Param", "MaxDepth" + ) + ), + TranspirationRegions = array( + NA_real_, + dim = c(3, 2), + dimnames = list(NULL, c("ndx", "layer")) + ), + swrc_flags = c(swrc_name = NA_character_, pdf_name = NA_character_) + ) ) -setValidity("swSite", function(object) { - val <- TRUE - - if (length(object@SWClimits) != 3) { - msg <- "@SWClimits length != 3." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@ModelFlags) != 2) { - msg <- "@ModelFlags length != 2." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@ModelCoefficients) != 3) { - msg <- "@ModelCoefficients length != 3." - val <- if (isTRUE(val)) msg else c(val, msg) - } - x <- slot(object, "ModelCoefficients")[1] - if (!is.na(x) && x < 0) { - msg <- paste("@ModelCoefficients:PETmultiplier =", x, - "must be a non-negative number") - val <- if (isTRUE(val)) msg else c(val, msg) - } - x <- slot(object, "ModelCoefficients")[2] - if (!is.na(x) && !(x >= 0 && x <= 1)) { - msg <- paste("@ModelCoefficients:DailyRunoff =", x, - "must be a number between 0 and 1", - "(inclusive)") - val <- if (isTRUE(val)) msg else c(val, msg) - } - x <- slot(object, "ModelCoefficients")[3] - if (!is.na(x) && x < 0) { - msg <- paste("@ModelCoefficients:DailyRunon =", x, - "must be a non-negative number") - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@SnowSimulationParameters) != 5) { - msg <- "@SnowSimulationParameters length != 5." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@DrainageCoefficient) != 1) { - msg <- "@DrainageCoefficient length != 1." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@EvaporationCoefficients) != 4) { - msg <- "@EvaporationCoefficients length != 4." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@TranspirationCoefficients) != 4) { - msg <- "@TranspirationCoefficients length != 4." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@IntrinsicSiteParams) != 5) { - msg <- "@IntrinsicSiteParams length != 5." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@SoilTemperatureFlag) != 1) { - msg <- "@SoilTemperatureFlag length != 1." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@SoilTemperatureConstants) != 10) { - msg <- "@SoilTemperatureConstants length != 10." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (typeof(object@TranspirationRegions) != "integer") { - msg <- "@TranspirationRegions is of integer type." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (NCOL(object@TranspirationRegions) != 2) { - msg <- "@TranspirationRegions columns != 2." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (typeof(object@TranspirationRegions) != "integer") { - msg <- "@TranspirationRegions must be integers." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - if (length(object@swrc_flags) != 2) { - msg <- "@swrc_flags length != 2." - val <- if (isTRUE(val)) msg else c(val, msg) - } - - val -}) +setValidity( + "swSite", + function(object) { + val <- TRUE -#' @rdname swSite-class -#' @export -setMethod( - f = "initialize", - signature = "swSite", - function(.Object, ...) { - def <- slot(rSOILWAT2::sw_exampleData, "site") - sns <- slotNames(def) - dots <- list(...) - dns <- names(dots) - - # We don't set values for slots `IntrinsicSiteParams` and - # `TranspirationRegions`; this is to prevent simulation runs with - # accidentally incorrect values - if (!("IntrinsicSiteParams" %in% dns)) { - tmp <- c("Longitude", "Latitude", "Altitude", "Slope", "Aspect") - def@IntrinsicSiteParams[tmp] <- NA_real_ + if (length(object@SWClimits) != 3) { + msg <- "@SWClimits length != 3." + val <- if (isTRUE(val)) msg else c(val, msg) } - if (!("TranspirationRegions" %in% dns)) { - def@TranspirationRegions[, "layer"] <- NA_integer_ - } else { - # Guarantee names - dimnames(dots[["TranspirationRegions"]]) <- - list(NULL, colnames(def@TranspirationRegions)) + if (length(object@ModelFlags) != 2) { + msg <- "@ModelFlags length != 2." + val <- if (isTRUE(val)) msg else c(val, msg) } - if ("swrc_flags" %in% dns) { - # Guarantee names - names(dots[["swrc_flags"]]) <- names(def@swrc_flags) + if (length(object@ModelCoefficients) != 3) { + msg <- "@ModelCoefficients length != 3." + val <- if (isTRUE(val)) msg else c(val, msg) + } + x <- slot(object, "ModelCoefficients")[1] + if (!is.na(x) && x < 0) { + msg <- paste("@ModelCoefficients:PETmultiplier =", x, + "must be a non-negative number") + val <- if (isTRUE(val)) msg else c(val, msg) + } + x <- slot(object, "ModelCoefficients")[2] + if (!is.na(x) && !(x >= 0 && x <= 1)) { + msg <- paste("@ModelCoefficients:DailyRunoff =", x, + "must be a number between 0 and 1", + "(inclusive)") + val <- if (isTRUE(val)) msg else c(val, msg) + } + x <- slot(object, "ModelCoefficients")[3] + if (!is.na(x) && x < 0) { + msg <- paste("@ModelCoefficients:DailyRunon =", x, + "must be a non-negative number") + val <- if (isTRUE(val)) msg else c(val, msg) } - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(object@SnowSimulationParameters) != 5) { + msg <- "@SnowSimulationParameters length != 5." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@DrainageCoefficient) != 1) { + msg <- "@DrainageCoefficient length != 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@EvaporationCoefficients) != 4) { + msg <- "@EvaporationCoefficients length != 4." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@TranspirationCoefficients) != 4) { + msg <- "@TranspirationCoefficients length != 4." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@IntrinsicSiteParams) != 5) { + msg <- "@IntrinsicSiteParams length != 5." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@SoilTemperatureFlag) != 1) { + msg <- "@SoilTemperatureFlag length != 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@SoilTemperatureConstants) != 10) { + msg <- "@SoilTemperatureConstants length != 10." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (typeof(object@TranspirationRegions) != "integer") { + msg <- "@TranspirationRegions is of integer type." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (NCOL(object@TranspirationRegions) != 2) { + msg <- "@TranspirationRegions columns != 2." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (typeof(object@TranspirationRegions) != "integer") { + msg <- "@TranspirationRegions must be integers." + val <- if (isTRUE(val)) msg else c(val, msg) } - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) + if (length(object@swrc_flags) != 2) { + msg <- "@swrc_flags length != 2." + val <- if (isTRUE(val)) msg else c(val, msg) } - validObject(.Object) - .Object + val } ) +#' @rdname swSite-class +#' @export +swSite <- function(...) { + def <- slot(rSOILWAT2::sw_exampleData, "site") + sns <- slotNames("swSite") + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swSite")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + dns <- names(dots) + + # We don't set values for slots `IntrinsicSiteParams` and + # `TranspirationRegions`; this is to prevent simulation runs with + # accidentally incorrect values + if (!("IntrinsicSiteParams" %in% dns)) { + tmp <- c("Longitude", "Latitude", "Altitude", "Slope", "Aspect") + def@IntrinsicSiteParams[tmp] <- NA_real_ + } + if (!("TranspirationRegions" %in% dns)) { + def@TranspirationRegions[, "layer"] <- NA_integer_ + } else { + # Guarantee names + dimnames(dots[["TranspirationRegions"]]) <- list( + NULL, + colnames(def@TranspirationRegions) + ) + } + + if ("swrc_flags" %in% dns) { + # Guarantee names + names(dots[["swrc_flags"]]) <- names(def@swrc_flags) + } + + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns + + do.call("new", args = c("swSite", tmp)) +} + + #' @rdname swSite-class #' @export diff --git a/R/F_swSoils.R b/R/F_swSoils.R index 2da1ea17..5edc8ce1 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -28,10 +28,16 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swSoils}}. -#' @param .Object An object of class \code{\linkS4class{swSoils}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -43,6 +49,7 @@ #' @examples #' showClass("swSoils") #' x <- new("swSoils") +#' x <- swSoils() #' #' @name swSoils-class #' @export @@ -51,88 +58,118 @@ setClass( slots = c( Layers = "matrix", SWRCp = "matrix" + ), + prototype = list( + Layers = array( + NA_real_, + dim = c(0, 12), + dimnames = list( + NULL, + c( + "depth_cm", "bulkDensity_g/cm^3", "gravel_content", + "EvapBareSoil_frac", "transpGrass_frac", "transpShrub_frac", + "transpTree_frac", "transpForb_frac", "sand_frac", "clay_frac", + "impermeability_frac", "soilTemp_c" + ) + ) + ), + SWRCp = array( + NA_real_, + dim = c(0, 6), + dimnames = list( + NULL, + paste0("Param", seq_len(6)) + ) + ) ) ) -swSoilLayers_validity <- function(object) { - val <- TRUE - tmpL <- dim(object@Layers) - tmpp <- dim(object@SWRCp) - dtol1 <- 1 + tmpL[1] * rSW2_glovars[["tol"]] - #--- Check "Layers" - if (tmpL[1] == 0) { - msg <- "@Layers must have at least one row/soil layer." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (tmpL[2] != 12) { - msg <- paste( - "@Layers must have exactly 12 columns corresponding to", - "depth_cm, bulkDensity_g/cm^3, gravel_content, EvapBareSoil_frac,", - "transpGrass_frac,transpShrub_frac, transpTree_frac, transpForb_frac,", - "sand_frac, clay_frac, impermeability_frac, soilTemp_c" - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } +setValidity( + "swSoils", + function(object) { + val <- TRUE + tmpL <- dim(object@Layers) + tmpp <- dim(object@SWRCp) + dtol1 <- 1 + tmpL[1] * rSW2_glovars[["tol"]] - if ( - !all(is.na(object@Layers[, 1])) && ( - any(object@Layers[, 1] <= 0) || - any(diff(object@Layers[, 1]) < rSW2_glovars[["tol"]]) - ) - ) { - msg <- "@Layers[, 'depth_cm'] must be positive increasing depths." - val <- if (isTRUE(val)) msg else c(val, msg) - } + #--- Check "Layers" + if (tmpL[1] == 0) { + msg <- "@Layers must have at least one row/soil layer." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (tmpL[2] != 12) { + msg <- paste( + "@Layers must have exactly 12 columns corresponding to", + "depth_cm, bulkDensity_g/cm^3, gravel_content, EvapBareSoil_frac,", + "transpGrass_frac,transpShrub_frac, transpTree_frac, transpForb_frac,", + "sand_frac, clay_frac, impermeability_frac, soilTemp_c" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - if ( - !all(is.na(object@Layers[, 3:11])) && - (any(object@Layers[, 3:11] < 0) || any(object@Layers[, 3:11] > dtol1)) - ) { - msg <- paste( - "@Layers values of gravel, evco, trcos, sand, clay, and", - "impermeability must be between 0 and 1." - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + !all(is.na(object@Layers[, 1])) && ( + any(object@Layers[, 1] <= 0) || + any(diff(object@Layers[, 1]) < rSW2_glovars[["tol"]]) + ) + ) { + msg <- "@Layers[, 'depth_cm'] must be positive increasing depths." + val <- if (isTRUE(val)) msg else c(val, msg) + } - tmp <- colSums(object@Layers[, 4:8, drop = FALSE]) - if (any(tmp > dtol1, na.rm = TRUE)) { - msg <- paste( - "@Layers values of profile sums of evco and trcos must be", - "between 0 and 1." - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + !all(is.na(object@Layers[, 3:11])) && + (any(object@Layers[, 3:11] < 0) || any(object@Layers[, 3:11] > dtol1)) + ) { + msg <- paste( + "@Layers values of gravel, evco, trcos, sand, clay, and", + "impermeability must be between 0 and 1." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - #--- Check "SWRCp" - # `SW_SIT_init_run()` will call function to check validity of SWRCp values - if (tmpp[1] != tmpL[1]) { - msg <- paste( - "@SWRCp must have exactly the same number of soil layers (rows)", - "as @Layers." - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (tmpp[2] != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]]) { - msg <- paste( - "@SWRCp must have exactly", - rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]], - "columns." - ) - val <- if (isTRUE(val)) msg else c(val, msg) - } + tmp <- colSums(object@Layers[, 4:8, drop = FALSE]) + if (any(tmp > dtol1, na.rm = TRUE)) { + msg <- paste( + "@Layers values of profile sums of evco and trcos must be", + "between 0 and 1." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - val -} -setValidity("swSoils", swSoilLayers_validity) + #--- Check "SWRCp" + # `SW_SIT_init_run()` will call function to check validity of SWRCp values + if (tmpp[1] != tmpL[1]) { + msg <- paste( + "@SWRCp must have exactly the same number of soil layers (rows)", + "as @Layers." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (tmpp[2] != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]]) { + msg <- paste( + "@SWRCp must have exactly", + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]], + "columns." + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val + } +) #' @rdname swSoils-class #' @export -setMethod("initialize", signature = "swSoils", function(.Object, ...) { +swSoils <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "soils") - sns <- slotNames(def) + sns <- slotNames("swSoils") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swSoils")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) # We don't set values for slot `Layers` if not passed via ...; this @@ -157,18 +194,15 @@ setMethod("initialize", signature = "swSoils", function(.Object, ...) { dimnames(dots[["SWRCp"]]) <- list(NULL, colnames(def@SWRCp)) } - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } - - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swSoils", tmp)) +} #' @rdname swSoils-class diff --git a/R/G_swOut.R b/R/G_swOut.R index 483194d1..eb1e36e3 100644 --- a/R/G_swOut.R +++ b/R/G_swOut.R @@ -29,56 +29,88 @@ #' The methods listed below work on this class and the proper slot of the class #' \code{\linkS4class{swInputData}}. #' -#' @param .Object An object of class \code{\linkS4class{swOUT_key}}. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @examples #' showClass("swOUT_key") #' x <- new("swOUT_key") +#' x <- swOUT_key() #' #' @name swOUT_key-class #' @export -setClass("swOUT_key", slots = c(mykey = "integer", myobj = "integer", - sumtype = "integer", use = "logical", first_orig = "integer", - last_orig = "integer", outfile = "character")) +setClass( + "swOUT_key", + slots = c( + mykey = "integer", + myobj = "integer", + sumtype = "integer", + use = "logical", + first_orig = "integer", + last_orig = "integer", + outfile = "character" + ), + # TODO: 31 should be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + prototype = list( + mykey = rep(NA_integer_, 31), + myobj = rep(NA_integer_, 31), + sumtype = rep(NA_integer_, 31), + use = rep(NA, 31), + first_orig = rep(NA_integer_, 31), + last_orig = rep(NA_integer_, 31), + outfile = rep(NA_character_, 31) + ) +) -swOUT_key_validity <- function(object) { - val <- TRUE +setValidity( + "swOUT_key", + function(object) { + val <- TRUE - temp <- lengths(lapply(slotNames(object), function(x) slot(object, x))) + temp <- lengths(lapply(slotNames(object), function(x) slot(object, x))) - id <- temp != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + id <- temp != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] - if (any(id)) { - msg <- paste0(names(temp)[id], " must be a vector of length 'SW_OUTNKEYS'") - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (any(id)) { + msg <- paste0( + names(temp)[id], + " must be a vector of length 'SW_OUTNKEYS'" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } - val -} -setValidity("swOUT_key", swOUT_key_validity) + val + } +) #' @rdname swOUT_key-class #' @export -setMethod("initialize", signature = "swOUT_key", function(.Object, ...) { +swOUT_key <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "output") sns <- slotNames("swOUT_key") dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(dots) == 1 && inherits(dots[[1]], "swOUT_key")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } + dns <- names(dots) - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swOUT_key", tmp)) +} ###########################OUTSETUP.IN######################################## @@ -89,10 +121,16 @@ setMethod("initialize", signature = "swOUT_key", function(.Object, ...) { #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swOUT}}. -#' @param .Object An object of class \code{\linkS4class{swOUT}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @slot outputSeparator A character string. Currently, only \var{"\\t"} is #' functional. @@ -121,68 +159,107 @@ setMethod("initialize", signature = "swOUT_key", function(.Object, ...) { #' @examples #' showClass("swOUT") #' x <- new("swOUT") +#' x <- swOUT() #' #' @name swOUT-class #' @export -setClass("swOUT", slot = c(outputSeparator = "character", timeSteps = "matrix"), - contains = "swOUT_key") +setClass( + "swOUT", + slot = c( + outputSeparator = "character", + timeSteps = "matrix" + ), + contains = "swOUT_key", + prototype = list( + outputSeparator = NA_character_, + # 999 must be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]] + timeSteps = array(999, dim = c(31, 4)) + ) +) -swOUT_validity <- function(object) { - val <- TRUE - if (length(object@outputSeparator) != 1) { - msg <- "@outputSeparator needs to be of length 1." - val <- if (isTRUE(val)) msg else c(val, msg) - } +setValidity( + "swOUT", + function(object) { + val <- TRUE - if (length(dim(object@timeSteps)) != 2) { - msg <- "@timeSteps must be a 2-dimensional matrix" - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (length(object@outputSeparator) != 1) { + msg <- "@outputSeparator needs to be of length 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (nrow(object@timeSteps) != - rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]]) { - msg <- "@timeSteps must be a matrix with 'SW_OUTNKEYS' rows" - val <- if (isTRUE(val)) msg else c(val, msg) - } + if (length(dim(object@timeSteps)) != 2) { + msg <- "@timeSteps must be a 2-dimensional matrix" + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (ncol(object@timeSteps) != - rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]]) { - msg <- "@timeSteps must be a matrix with 'SW_OUTNPERIODS' columns" - val <- if (isTRUE(val)) msg else c(val, msg) - } + if ( + nrow(object@timeSteps) != + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + ) { + msg <- "@timeSteps must be a matrix with 'SW_OUTNKEYS' rows" + val <- if (isTRUE(val)) msg else c(val, msg) + } - # timeSteps is base0 - ok <- c(rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]], - seq_len(rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]]) - 1L) + if ( + ncol(object@timeSteps) != + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]] + ) { + msg <- "@timeSteps must be a matrix with 'SW_OUTNPERIODS' columns" + val <- if (isTRUE(val)) msg else c(val, msg) + } - if (!all(object@timeSteps %in% ok)) { - msg <- paste("@timeSteps values must be within SW_OUTNPERIODS or be", - "equal to eSW_NoTime") - val <- if (isTRUE(val)) msg else c(val, msg) - } + # timeSteps is base0 + ok <- c( + rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]], + seq_len(rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]]) - 1L + ) - val -} -setValidity("swOUT", swOUT_validity) + if (!all(object@timeSteps %in% ok)) { + msg <- paste( + "@timeSteps values must be within SW_OUTNPERIODS or be", + "equal to eSW_NoTime" + ) + val <- if (isTRUE(val)) msg else c(val, msg) + } + + val + } +) #' @rdname swOUT-class #' @export -setMethod("initialize", signature = "swOUT", function(.Object, ...) { +swOUT <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "output") sns <- setdiff(slotNames("swOUT"), inheritedSlotNames("swOUT")) dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(dots) == 1 && inherits(dots[[1]], "swOUT")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } - - .Object <- callNextMethod(.Object, ...) - validObject(.Object) - .Object -}) + dns <- setdiff(names(dots), inheritedSlotNames("swOUT")) + + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns + + do.call( + "new", + args = c( + "swOUT", + if ("swOUT_key" %in% dns) { + swOUT_key(dots[["swOUT_key"]]) + } else { + do.call(swOUT_key, dots) + }, + tmp + ) + ) +} #' @rdname swOUT-class @@ -216,7 +293,7 @@ setReplaceMethod( #' @rdname swOUT-class #' @examples -#' x <- new("swOUT") +#' x <- swOUT() #' activate_swOUT_OutKey(x) <- c("VWCMATRIC", "HYDRED") #' #' @export @@ -273,7 +350,7 @@ setReplaceMethod( #' @rdname swOUT-class #' @examples -#' x <- new("swOUT") +#' x <- swOUT() #' deactivate_swOUT_OutKey(x) <- c("VWCMATRIC", "HYDRED") #' #' @export @@ -324,9 +401,13 @@ setReplaceMethod( #' Set time steps to the same set of values for each output key. #' @examples -#' x <- new("swOUT") +#' x <- swOUT() #' swOUT_TimeStepsForEveryKey(x) <- c(2, 3) -#' identical(as.vector(unique(swOUT_TimeStep(x))), as.integer(c(2, 3))) +#' identical( +#' unique(sort(as.vector(swOUT_TimeStep(x)))), +#' as.integer(c(2, 3, 999)) # 999 represents 'eSW_NoTime' +#' ) +#' #' @rdname swOUT-class #' @export setReplaceMethod( @@ -345,8 +426,10 @@ setReplaceMethod( ) # Fill matrix with requested values - temp[, seq_along(value)] <- rep(value, - each = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]]) + temp[, seq_along(value)] <- rep( + as.integer(value), + each = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + ) # Set unused output keys to no-time temp[!slot(object, "use"), ] <- diff --git a/R/H_swSWC.R b/R/H_swSWC.R index 28b08b1b..ad0a0142 100644 --- a/R/H_swSWC.R +++ b/R/H_swSWC.R @@ -29,50 +29,61 @@ #' #' #' @param object An object of class \code{\linkS4class{swSWC_hist}}. -#' @param .Object An object of class \code{\linkS4class{swSWC_hist}}. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. -#' @param year An integer value. The calendar year of the \var{SWC} +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. +#' @slot year An integer value. The calendar year of the \var{SWC} #' \code{data} object. -#' @param data A 365 x 4 or 366 x 4 matrix representing daily \var{SWC} +#' @slot data A 365 x 4 or 366 x 4 matrix representing daily \var{SWC} #' data for one calendar \code{year} with columns \var{doy}, \var{lyr}, #' \var{swc}, \var{st_err}. #' #' @name swSWC_hist-class #' @export -setClass("swSWC_hist", slot = c(data = "matrix", year = "integer")) +setClass( + "swSWC_hist", + slot = c(data = "matrix", year = "integer"), + prototype = list( + data = array( + NA_real_, + dim = c(366, 4), + dimnames = list(NULL, c("doy", "lyr", "swc", "st_err")) + ), + year = NA_integer_ + ) +) #' @rdname swSWC_hist-class #' @export -setMethod("initialize", signature = "swSWC_hist", - function(.Object, ..., year = 0L, data = NULL) { - # We don't set values; this is to prevent simulation runs with - # accidentally incorrect values - - # We have to explicitly give column names (as defined in - # `onGet_SW_SWC_hist`) because they are not read in by C code if the - # historical soil moisture data are not provided as input - ctemp <- c("doy", "lyr", "swc", "st_err") - if (is.null(data)) { - data <- matrix(NA_real_, nrow = 366, ncol = length(ctemp)) - data[, "doy"] <- 1:366 - } - colnames(data) <- ctemp - .Object@data <- data +swSWC_hist <- function(...) { + def <- new("swSWC_hist") + sns <- slotNames("swSWC_hist") + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swSWC_hist")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + dns <- names(dots) - .Object@year <- as.integer(year) + # We don't set values; this is to prevent simulation runs with + # accidentally incorrect values - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } - - validObject(.Object) - .Object - } -) + # Use prototype "def", but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns + do.call("new", args = c("swSWC_hist", tmp)) +} #' @rdname swSWC_hist-class @@ -106,10 +117,16 @@ setMethod( #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swSWC}}. -#' @param .Object An object of class \code{\linkS4class{swSWC}}. #' @param file A character string. The file name from which to read. #' @param value A value to assign to a specific slot of the object. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' @param year An integer value. The calendar year of the \var{SWC} #' \code{data} object. #' @@ -123,42 +140,57 @@ setMethod( #' @examples #' showClass("swSWC") #' x <- new("swSWC") +#' x <- swSWC() #' #' @name swSWC-class #' @export -setClass("swSWC", slot = c(UseSWCHistoricData = "logical", - DataFilePrefix = "character", FirstYear = "integer", Method = "integer", - History = "list")) +setClass( + "swSWC", + slot = c( + UseSWCHistoricData = "logical", + DataFilePrefix = "character", + FirstYear = "integer", + Method = "integer", + History = "list" + ), + prototype = list( + UseSWCHistoricData = NA, + DataFilePrefix = NA_character_, + FirstYear = NA_integer_, + Method = NA_integer_, + History = list() + ) +) #' @rdname swSWC-class #' @export -setMethod("initialize", signature = "swSWC", function(.Object, ...) { +swSWC <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "swc") - sns <- slotNames(def) + sns <- slotNames("swSWC") dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swSWC")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } dns <- names(dots) + # We don't set values for slot `History` if not passed via ...; this # is to prevent simulation runs with accidentally incorrect values if (!("History" %in% dns)) { def@History <- list() - } else { - # Guarantee names - dimnames(dots[["History"]]) <- list(NULL, colnames(def@History)) } - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + do.call("new", args = c("swSWC", tmp)) +} - validObject(.Object) - .Object -}) #' @rdname swSWC-class #' @export diff --git a/R/I_swEstab.R b/R/I_swEstab.R index 94011a4c..05dc43cc 100644 --- a/R/I_swEstab.R +++ b/R/I_swEstab.R @@ -28,9 +28,15 @@ #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swEstabSpecies}}. -#' @param .Object An object of class \code{\linkS4class{swEstabSpecies}}. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -42,18 +48,50 @@ #' @examples #' showClass("swEstabSpecies") #' x <- new("swEstabSpecies") +#' x <- swEstabSpecies() #' #' @name swEstabSpecies-class #' @export -setClass("swEstabSpecies", slot = c(fileName = "character", Name = "character", - estab_lyrs = "integer", barsGERM = "numeric", barsESTAB = "numeric", - min_pregerm_days = "integer", max_pregerm_days = "integer", - min_wetdays_for_germ = "integer", max_drydays_postgerm = "integer", - min_wetdays_for_estab = "integer", min_days_germ2estab = "integer", - max_days_germ2estab = "integer", min_temp_germ = "numeric", - max_temp_germ = "numeric", min_temp_estab = "numeric", - max_temp_estab = "numeric")) +setClass( + "swEstabSpecies", + slot = c( + fileName = "character", + Name = "character", + estab_lyrs = "integer", + barsGERM = "numeric", + barsESTAB = "numeric", + min_pregerm_days = "integer", + max_pregerm_days = "integer", + min_wetdays_for_germ = "integer", + max_drydays_postgerm = "integer", + min_wetdays_for_estab = "integer", + min_days_germ2estab = "integer", + max_days_germ2estab = "integer", + min_temp_germ = "numeric", + max_temp_germ = "numeric", + min_temp_estab = "numeric", + max_temp_estab = "numeric" + ), + prototype = list( + fileName = character(), + Name = character(), + estab_lyrs = integer(), + barsGERM = numeric(), + barsESTAB = numeric(), + min_pregerm_days = integer(), + max_pregerm_days = integer(), + min_wetdays_for_germ = integer(), + max_drydays_postgerm = integer(), + min_wetdays_for_estab = integer(), + min_days_germ2estab = integer(), + max_days_germ2estab = integer(), + min_temp_germ = numeric(), + max_temp_germ = numeric(), + min_temp_estab = numeric(), + max_temp_estab = numeric() + ) +) setValidity( "swEstabSpecies", @@ -62,24 +100,25 @@ setValidity( #' @rdname swEstabSpecies-class #' @export -setMethod("initialize", signature = "swEstabSpecies", function(.Object, ...) { +swEstabSpecies <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "estab") sns <- slotNames("swEstabSpecies") dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(dots) == 1 && inherits(dots[[1]], "swEstabSpecies")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } + dns <- names(dots) - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) - } + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swEstabSpecies", tmp)) +} #' @rdname swEstabSpecies-class @@ -120,10 +159,16 @@ setMethod( #' \code{\linkS4class{swInputData}}. #' #' @param object An object of class \code{\linkS4class{swEstab}}. -#' @param .Object An object of class \code{\linkS4class{swEstab}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -135,11 +180,19 @@ setMethod( #' @examples #' showClass("swEstab") #' x <- new("swEstab") +#' x <- swEstab() #' #' @name swEstab-class #' @export -setClass("swEstab", slot = c(useEstab = "logical", count = "integer"), - contains = "swEstabSpecies") +setClass( + "swEstab", + slot = c(useEstab = "logical", count = "integer"), + contains = "swEstabSpecies", + prototype = list( + useEstab = NA, + count = integer() + ) +) setValidity( "swEstab", @@ -149,21 +202,36 @@ setValidity( #' @rdname swEstab-class #' @export -setMethod("initialize", signature = "swEstab", function(.Object, ...) { +swEstab <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "estab") sns <- setdiff(slotNames("swEstab"), inheritedSlotNames("swEstab")) dots <- list(...) - dns <- names(dots) - - for (sn in sns) { - slot(.Object, sn) <- if (sn %in% dns) dots[[sn]] else slot(def, sn) + if (length(dots) == 1 && inherits(dots[[1]], "swEstab")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) } + dns <- setdiff(names(dots), inheritedSlotNames("swEstab")) - .Object <- callNextMethod(.Object, ...) - validObject(.Object) + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - .Object -}) + do.call( + "new", + args = c( + "swEstab", + if ("swEstabSpecies" %in% dns) { + swEstabSpecies(dots[["swEstabSpecies"]]) + } else { + do.call(swEstabSpecies, dots) + }, + tmp + ) + ) +} #' @rdname swEstab-class #' @export diff --git a/R/J_swLog.R b/R/J_swLog.R index 9be9e21e..51944799 100644 --- a/R/J_swLog.R +++ b/R/J_swLog.R @@ -29,8 +29,14 @@ #' The methods listed below work on this class and the proper slot of the class #' \code{\linkS4class{swInputData}}. #' -#' @param .Object An object of class \code{\linkS4class{swLog}}. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' #' @seealso \code{\linkS4class{swInputData}} \code{\linkS4class{swFiles}} #' \code{\linkS4class{swWeather}} \code{\linkS4class{swCloud}} @@ -42,29 +48,51 @@ #' @examples #' showClass("swLog") #' x <- new("swLog") +#' x <- swLog() #' #' @name swLog-class #' @export -setClass("swLog", slot = c(LogData = "character", MaxLines = "integer", - UsedLines = "integer")) +setClass( + "swLog", + slot = c(LogData = "character", MaxLines = "integer", UsedLines = "integer"), + prototype = c( + LogData = NA_character_, + MaxLines = NA_integer_, + UsedLines = NA_integer_ + ) +) #' @rdname swLog-class #' @export -setMethod("initialize", signature = "swLog", function(.Object, ...) { +swLog <- function(...) { def <- slot(rSOILWAT2::sw_exampleData, "log") + sns <- slotNames("swLog") + dots <- list(...) + if (length(dots) == 1 && inherits(dots[[1]], "swLog")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + dns <- names(dots) # We don't set values for any slots; this is to prevent simulation runs with # accidentally incorrect values - .Object@MaxLines <- 150L - .Object@LogData <- character(.Object@MaxLines) - .Object@UsedLines <- 1L - - if (FALSE) { - # not needed because no relevant inheritance - .Object <- callNextMethod(.Object, ...) + if (!("MaxLines" %in% dns)) { + dots[["MaxLines"]] <- 150L + } + if (!("LogData" %in% dns)) { + dots[["LogData"]] <- character(dots[["MaxLines"]]) } + if (!("UsedLines" %in% dns)) { + dots[["UsedLines"]] <- 1L + } + + # Copy from SOILWAT2 "testing" (defaults), but dot arguments take precedence + tmp <- lapply( + sns, + function(sn) if (sn %in% dns) dots[[sn]] else slot(def, sn) + ) + names(tmp) <- sns - validObject(.Object) - .Object -}) + do.call("new", args = c("swLog", tmp)) +} diff --git a/R/K_swContainer.R b/R/K_swContainer.R index aed1a2c6..16c4cff4 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -51,10 +51,16 @@ #' } #' #' @param object An object of class \code{\linkS4class{swInputData}}. -#' @param .Object An object of class \code{\linkS4class{swInputData}}. #' @param value A value to assign to a specific slot of the object. #' @param file A character string. The file name from which to read. -#' @param ... Further arguments to methods. +#' @param ... Arguments to the helper constructor function. +#' Dots can either contain objects to copy into slots of that class +#' (must be named identical to the corresponding slot) or +#' be one object of that class (in which case it will be copied and +#' any missing slots will take their default values). +#' If dots are missing, then corresponding values of +#' \code{rSOILWAT2::sw_exampleData} +#' (i.e., the \pkg{SOILWAT2} "testing" defaults) are copied. #' @param year An integer value. The calendar year of the weather or #' \var{SWC} \code{data} object. #' @param vegtype The name or index of the vegetation type. @@ -69,7 +75,8 @@ #' #' @examples #' showClass("swInputData") -#' x <- new("swInputData") +#' x <- new("swInputData") # prototype +#' x <- swInputData() # constructor helper #' #' @name swInputData-class #' @export @@ -93,35 +100,129 @@ setClass( swc = "swSWC", log = "swLog" ) + # Note: we cannot set prototypes for `swInputData` because + # that calls each slot's class constructor; the constructors call eventually + # `new()` which in turn calls setValidity()` which use `rSW2_glovars`. + # However, this all occurs before `rSW2_glovars` is defined, i.e., + # validity functions are erroring out if they utilize `rSW2_glovars`. + # Calling `validObject()` at run time is not a problem because + # `rSW2_glovars` will be defined by then (see `.onLoad()`). ) #' @rdname swInputData-class #' @export -setMethod( - "initialize", - signature = "swInputData", - function(.Object) { - sns <- slotNames("swInputData") - scl <- getSlots("swInputData") +swInputData <- function(...) { + # Call helper constructor for each slot class + dots <- list(...) - for (i in seq_along(sns)) { - slot(.Object, sns[i]) <- new(scl[i]) - } + if (length(dots) == 1 && inherits(dots[[1]], "swInputData")) { + # If dots are one object of this class, then convert to list of its slots + dots <- attributes(unclass(dots[[1]])) + } + + dns <- names(dots) - slot(.Object, "version") <- rSW2_version() - slot(.Object, "timestamp") <- rSW2_timestamp() + object <- new("swInputData") + object@version <- rSW2_version() + object@timestamp <- rSW2_timestamp() - validObject(.Object) - .Object + object@files <- if ("files" %in% dns) { + swFiles(dots[["files"]]) + } else { + do.call(swFiles, dots) } -) + + object@years <- if ("years" %in% dns) { + swYears(dots[["years"]]) + } else { + do.call(swYears, dots) + } + + object@weather <- if ("weather" %in% dns) { + swWeather(dots[["weather"]]) + } else { + do.call(swWeather, dots) + } + + object@cloud <- if ("cloud" %in% dns) { + swCloud(dots[["cloud"]]) + } else { + do.call(swCloud, dots) + } + + object@weatherHistory <- weatherHistory(dots[["weatherHistory"]]) + + object@markov <- if ("markov" %in% dns) { + swMarkov(dots[["markov"]]) + } else { + do.call(swMarkov, dots) + } + + object@prod <- if ("prod" %in% dns) { + swProd(dots[["prod"]]) + } else { + do.call(swProd, dots) + } + + object@site <- if ("site" %in% dns) { + swSite(dots[["site"]]) + } else { + do.call(swSite, dots) + } + + object@soils <- if ("soils" %in% dns) { + swSoils(dots[["soils"]]) + } else { + do.call(swSoils, dots) + } + + object@estab <- if ("estab" %in% dns) { + swEstab(dots[["estab"]]) + } else { + do.call(swEstab, dots) + } + + object@carbon <- if ("carbon" %in% dns) { + swCarbon(dots[["carbon"]]) + } else { + do.call(swCarbon, dots) + } + + object@output <- if ("output" %in% dns) { + swOUT(dots[["output"]]) + } else { + do.call(swOUT, dots) + } + + object@swc <- if ("swc" %in% dns) { + swSWC(dots[["swc"]]) + } else { + do.call(swSWC, dots) + } + + object@log <- if ("log" %in% dns) { + swLog(dots[["log"]]) + } else { + do.call(swLog, dots) + } + + object +} + + setValidity( "swInputData", function(object) { - TRUE + res <- lapply(slotNames(object), function(sn) validObject(slot(object, sn))) + has_msg <- sapply(res, is.character) + if (any(has_msg)) { + unlist(res[has_msg]) + } else { + TRUE + } } ) @@ -926,6 +1027,7 @@ setMethod("get_Markov", "swInputData", function(object) object@markov) #' @rdname swInputData-class #' @export +setMethod("get_swMarkov", "swInputData", function(object) object@markov) #' @rdname swInputData-class #' @export @@ -1436,6 +1538,12 @@ setReplaceMethod( ) +# Methods for slot \code{estab} +#' @rdname swInputData-class +#' @export +setMethod("get_swEstab", "swInputData", function(object) object@estab) + + # Methods for slot \code{site} #' @rdname swInputData-class #' @export diff --git a/R/L_swOutput.R b/R/L_swOutput.R index 422681ea..c2c7dd49 100644 --- a/R/L_swOutput.R +++ b/R/L_swOutput.R @@ -81,7 +81,7 @@ sw_out_flags <- function() { #' #' @name swOutput_KEY-class #' @export -setClass( +swOutput_KEY <- setClass( "swOutput_KEY", slot = c( Title = "character", @@ -91,6 +91,15 @@ setClass( Week = "matrix", Month = "matrix", Year = "matrix" + ), + prototype = list( + Title = character(), + TimeStep = integer(), + Columns = integer(), + Day = matrix(NA_real_)[0, 0], + Week = matrix(NA_real_)[0, 0], + Month = matrix(NA_real_)[0, 0], + Year = matrix(NA_real_)[0, 0] ) ) @@ -173,7 +182,7 @@ setReplaceMethod( #' #' @name swOutput-class #' @export -setClass( +swOutput <- setClass( "swOutput", slot = c( version = "character", @@ -213,26 +222,49 @@ setClass( ESTABL = "swOutput_KEY", CO2EFFECTS = "swOutput_KEY", BIOMASS = "swOutput_KEY" + ), + prototype = list( + version = rSW2_version(), + timestamp = rSW2_timestamp(), + yr_nrow = integer(), + mo_nrow = integer(), + wk_nrow = integer(), + dy_nrow = integer(), + WTHR = swOutput_KEY(), + TEMP = swOutput_KEY(), + PRECIP = swOutput_KEY(), + SOILINFILT = swOutput_KEY(), + RUNOFF = swOutput_KEY(), + ALLH2O = swOutput_KEY(), + VWCBULK = swOutput_KEY(), + VWCMATRIC = swOutput_KEY(), + SWCBULK = swOutput_KEY(), + SWA = swOutput_KEY(), + SWABULK = swOutput_KEY(), + SWAMATRIC = swOutput_KEY(), + SWPMATRIC = swOutput_KEY(), + SURFACEWATER = swOutput_KEY(), + TRANSP = swOutput_KEY(), + EVAPSOIL = swOutput_KEY(), + EVAPSURFACE = swOutput_KEY(), + INTERCEPTION = swOutput_KEY(), + LYRDRAIN = swOutput_KEY(), + HYDRED = swOutput_KEY(), + ET = swOutput_KEY(), + AET = swOutput_KEY(), + PET = swOutput_KEY(), + WETDAY = swOutput_KEY(), + SNOWPACK = swOutput_KEY(), + DEEPSWC = swOutput_KEY(), + SOILTEMP = swOutput_KEY(), + ALLVEG = swOutput_KEY(), + ESTABL = swOutput_KEY(), + CO2EFFECTS = swOutput_KEY(), + BIOMASS = swOutput_KEY() ) ) -#' @rdname swOutput-class -#' @export -setMethod( - "initialize", - signature = "swOutput", - function(.Object) { - - slot(.Object, "version") <- rSW2_version() - slot(.Object, "timestamp") <- rSW2_timestamp() - - validObject(.Object) - - .Object - } -) - setValidity( "swOutput", function(object) { diff --git a/R/Rsw.R b/R/Rsw.R index 991902c8..05ed4ca3 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -413,11 +413,11 @@ sw_inputData <- function() { dir_prev <- getwd() on.exit(setwd(dir_prev), add = TRUE) - temp <- new("swInputData") # data are from calls to `initialize`-methods + tmp <- swInputData() # default values (minus some deleted slots) utils::data(package = "rSOILWAT2", "weatherData", envir = environment()) - slot(temp, "weatherHistory") <- get("weatherData", envir = environment()) + slot(tmp, "weatherHistory") <- get("weatherData", envir = environment()) - temp + tmp } diff --git a/R/data.R b/R/data.R index ff79241a..20a7de55 100644 --- a/R/data.R +++ b/R/data.R @@ -31,7 +31,8 @@ #' site-specific simulation run is discouraged (even though there are many #' such examples throughout the documentation of this package). #' The recommended approach is to create a clean new object with -#' \code{new("swInputData")} and then set all site-specific inputs and +#' the helper constructor \code{swInputData()} (or based on the prototype +#' \code{new("swInputData")}) and then set all site-specific inputs and #' parameters. See \var{\dQuote{rSOILWAT2_demo}} vignette. #' #' @examples diff --git a/R/rSOILWAT2-package.R b/R/rSOILWAT2-package.R index ee0d8c2a..0cad3435 100644 --- a/R/rSOILWAT2-package.R +++ b/R/rSOILWAT2-package.R @@ -49,7 +49,7 @@ rSW2_glovars <- new.env() ##------ Import from other packages ## Package uses S3/S4 classes - they are defined in package:methods -#' @importFrom methods slot slot<- as as<- initialize new slotNames +#' @importFrom methods slot slot<- as as<- new slotNames #' inheritedSlotNames getSlots validObject callNextMethod #' @importFrom stats aggregate coef complete.cases cor cov fitted median #' na.exclude na.omit predict quantile sd weighted.mean diff --git a/R/swWeatherGenerator.R b/R/swWeatherGenerator.R index 329cc29d..89cb2882 100644 --- a/R/swWeatherGenerator.R +++ b/R/swWeatherGenerator.R @@ -1042,7 +1042,7 @@ compare_weather <- function( #' #' ## Example 3: generate weather based only on estimated weather generator #' ## coefficients from a different dataset -#' x_empty <- list(new("swWeatherData")) +#' x_empty <- weatherHistory() #' wout3 <- dbW_generateWeather( #' x_empty, #' years = 2050:2055, diff --git a/R/sw_dbW_WeatherDatabase.R b/R/sw_dbW_WeatherDatabase.R index 22996f57..ec29fa52 100644 --- a/R/sw_dbW_WeatherDatabase.R +++ b/R/sw_dbW_WeatherDatabase.R @@ -1773,7 +1773,7 @@ getWeatherData_folders <- function( weathDataList <- list() for (k in seq_along(index)) { weathDataList[[k]] <- swReadLines( - new("swWeatherData", year = years[index[k]]), + swWeatherData(year = years[index[k]]), file.path(dir_weather, fweath[index[k]]) ) } @@ -2018,8 +2018,7 @@ dbW_dataframe_to_weatherData <- function( weatherDF_dataColumns] ) colnames(ydata) <- c("DOY", "Tmax_C", "Tmin_C", "PPT_cm") - weatherData[[i]] <- new( - "swWeatherData", + weatherData[[i]] <- swWeatherData( year = ylist$years[i], data = ydata ) diff --git a/data-raw/prepare_testInput_objects.R b/data-raw/prepare_testInput_objects.R index 77254fd4..ff432878 100755 --- a/data-raw/prepare_testInput_objects.R +++ b/data-raw/prepare_testInput_objects.R @@ -127,7 +127,8 @@ for (it in seq_along(tests)) { ) sw_weather <- slot(sw_input, "weatherHistory") - slot(sw_input, "weatherHistory") <- list(new("swWeatherData")) + set_WeatherHistory(sw_input) <- weatherHistory() + #---Files for unit testing saveRDS( diff --git a/man/dbW_generateWeather.Rd b/man/dbW_generateWeather.Rd index 1210f155..bb33741e 100644 --- a/man/dbW_generateWeather.Rd +++ b/man/dbW_generateWeather.Rd @@ -84,7 +84,7 @@ wout2 <- dbW_generateWeather( ## Example 3: generate weather based only on estimated weather generator ## coefficients from a different dataset -x_empty <- list(new("swWeatherData")) +x_empty <- weatherHistory() wout3 <- dbW_generateWeather( x_empty, years = 2050:2055, diff --git a/man/get_swMarkov.Rd b/man/get_swMarkov.Rd new file mode 100644 index 00000000..72681e46 --- /dev/null +++ b/man/get_swMarkov.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{get_swMarkov} +\alias{get_swMarkov} +\title{\code{get_swMarkov}} +\usage{ +get_swMarkov(object) +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swMarkov}} or +\code{\linkS4class{swInputData}}.} +} +\description{ +\code{get_swMarkov} +} +\seealso{ +\code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} +} diff --git a/man/set_swMarkov-set.Rd b/man/set_swMarkov-set.Rd new file mode 100644 index 00000000..23a5eb57 --- /dev/null +++ b/man/set_swMarkov-set.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{set_swMarkov<-} +\alias{set_swMarkov<-} +\title{\code{set_swMarkov<-}} +\usage{ +set_swMarkov(object) <- value +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swMarkov}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} +\description{ +\code{set_swMarkov<-} +} +\seealso{ +\code{\linkS4class{swMarkov}} and \code{\linkS4class{swInputData}} +} diff --git a/man/set_swMarkov.Rd b/man/set_swMarkov.Rd new file mode 100644 index 00000000..831b5cb0 --- /dev/null +++ b/man/set_swMarkov.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R +\name{set_swMarkov} +\alias{set_swMarkov} +\title{\code{set_swMarkov}} +\usage{ +set_swMarkov(object, value) +} +\arguments{ +\item{object}{An object of class \code{\linkS4class{swMarkov}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} +\description{ +\code{set_swMarkov} +} diff --git a/man/swCarbon-class.Rd b/man/swCarbon-class.Rd index b7f4e0d1..b2c5f5a0 100644 --- a/man/swCarbon-class.Rd +++ b/man/swCarbon-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swCarbon-class} \alias{swCarbon-class} -\alias{initialize,swCarbon-method} +\alias{swCarbon} \alias{get_swCarbon,swCarbon-method} \alias{swCarbon_Use_Bio,swCarbon-method} \alias{swCarbon_Use_WUE,swCarbon-method} @@ -18,7 +18,7 @@ \alias{swCarbon_CO2ppm<-,swCarbon-method} \title{Class \code{"swCarbon"}} \usage{ -\S4method{initialize}{swCarbon}(.Object, ...) +swCarbon(...) \S4method{get_swCarbon}{swCarbon}(object) @@ -45,9 +45,14 @@ \S4method{swCarbon_CO2ppm}{swCarbon}(object) <- value } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swCarbon}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swCarbon}}.} @@ -81,6 +86,7 @@ column and CO2 ppm concentrations in the second column.} \examples{ showClass("swCarbon") x <- new("swCarbon") +x <- swCarbon() } \seealso{ diff --git a/man/swCloud-class.Rd b/man/swCloud-class.Rd index a39bebdf..7f49a177 100644 --- a/man/swCloud-class.Rd +++ b/man/swCloud-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swCloud-class} \alias{swCloud-class} -\alias{initialize,swCloud-method} +\alias{swCloud} \alias{get_swCloud,swCloud-method} \alias{swCloud_SkyCover,swCloud-method} \alias{swCloud_WindSpeed,swCloud-method} @@ -19,7 +19,7 @@ \alias{swReadLines,swCloud,character-method} \title{Class \code{"swCloud"}} \usage{ -\S4method{initialize}{swCloud}(.Object, ...) +swCloud(...) \S4method{get_swCloud}{swCloud}(object) @@ -48,9 +48,14 @@ \S4method{swReadLines}{swCloud,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swCloud}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swCloud}}.} @@ -65,6 +70,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swCloud") x <- new("swCloud") +x <- swCloud() } \seealso{ diff --git a/man/swEstab-class.Rd b/man/swEstab-class.Rd index 0f434c60..4f978e95 100644 --- a/man/swEstab-class.Rd +++ b/man/swEstab-class.Rd @@ -3,13 +3,13 @@ \docType{class} \name{swEstab-class} \alias{swEstab-class} -\alias{initialize,swEstab-method} +\alias{swEstab} \alias{swEstab_useEstab,swEstab-method} \alias{swEstab_useEstab<-,swEstab-method} \alias{swReadLines,swEstab,character-method} \title{Class \code{"swEstab"}} \usage{ -\S4method{initialize}{swEstab}(.Object, ...) +swEstab(...) \S4method{swEstab_useEstab}{swEstab}(object) @@ -18,9 +18,14 @@ \S4method{swReadLines}{swEstab,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swEstab}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swEstab}}.} @@ -35,6 +40,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swEstab") x <- new("swEstab") +x <- swEstab() } \seealso{ diff --git a/man/swEstabSpecies-class.Rd b/man/swEstabSpecies-class.Rd index 1ec9c40b..5e790582 100644 --- a/man/swEstabSpecies-class.Rd +++ b/man/swEstabSpecies-class.Rd @@ -3,18 +3,23 @@ \docType{class} \name{swEstabSpecies-class} \alias{swEstabSpecies-class} -\alias{initialize,swEstabSpecies-method} +\alias{swEstabSpecies} \alias{swReadLines,swEstabSpecies,character-method} \title{Class \code{"swEstabSpecies"}} \usage{ -\S4method{initialize}{swEstabSpecies}(.Object, ...) +swEstabSpecies(...) \S4method{swReadLines}{swEstabSpecies,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swEstabSpecies}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swEstabSpecies}}.} @@ -27,6 +32,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swEstabSpecies") x <- new("swEstabSpecies") +x <- swEstabSpecies() } \seealso{ diff --git a/man/swFiles-class.Rd b/man/swFiles-class.Rd index 5541d4d3..70b0d63f 100644 --- a/man/swFiles-class.Rd +++ b/man/swFiles-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swFiles-class} \alias{swFiles-class} -\alias{initialize,swFiles-method} +\alias{swFiles} \alias{swFiles_ProjDir,swFiles-method} \alias{swFiles_WeatherPrefix,swFiles-method} \alias{swFiles_OutputPrefix,swFiles-method} @@ -43,7 +43,7 @@ \alias{swReadLines,swFiles,character-method} \title{Class \code{"swFiles"}} \usage{ -\S4method{initialize}{swFiles}(.Object, ...) +swFiles(...) \S4method{swFiles_ProjDir}{swFiles}(object) @@ -120,9 +120,14 @@ \S4method{swReadLines}{swFiles,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swFiles}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swFiles}}.} @@ -137,6 +142,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swFiles") x <- new("swFiles") +x <- swFiles() } \seealso{ diff --git a/man/swInputData-class.Rd b/man/swInputData-class.Rd index a1c781d5..7e597c47 100644 --- a/man/swInputData-class.Rd +++ b/man/swInputData-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swInputData-class} \alias{swInputData-class} -\alias{initialize,swInputData-method} +\alias{swInputData} \alias{get_swFiles,swInputData-method} \alias{swFiles_ProjDir,swInputData-method} \alias{swFiles_filesIn,swInputData-method} @@ -85,6 +85,7 @@ \alias{swCloud_SnowDensity<-,swInputData-method} \alias{swCloud_RainEvents<-,swInputData-method} \alias{get_Markov,swInputData-method} +\alias{get_swMarkov,swInputData-method} \alias{swMarkov_Prob,swInputData-method} \alias{swMarkov_Conv,swInputData-method} \alias{set_Markov<-,swInputData-method} @@ -132,6 +133,7 @@ \alias{swProd_MonProd_shrub<-,swInputData-method} \alias{swProd_MonProd_tree<-,swInputData-method} \alias{swProd_MonProd_forb<-,swInputData-method} +\alias{get_swEstab,swInputData-method} \alias{get_swSite,swInputData-method} \alias{swSite_SWRCflags,swInputData-method} \alias{swSite_SWClimits,swInputData-method} @@ -204,7 +206,7 @@ \alias{swReadLines,swInputData,character-method} \title{Class \code{"swInputData"}} \usage{ -\S4method{initialize}{swInputData}(.Object) +swInputData(...) \S4method{get_swFiles}{swInputData}(object) @@ -372,6 +374,8 @@ \S4method{get_Markov}{swInputData}(object) +\S4method{get_swMarkov}{swInputData}(object) + \S4method{swMarkov_Prob}{swInputData}(object) \S4method{swMarkov_Conv}{swInputData}(object) @@ -466,6 +470,8 @@ \S4method{swProd_MonProd_forb}{swInputData}(object) <- value +\S4method{get_swEstab}{swInputData}(object) + \S4method{get_swSite}{swInputData}(object) \S4method{swSite_SWRCflags}{swInputData}(object) @@ -607,7 +613,14 @@ \S4method{swReadLines}{swInputData,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swInputData}}.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swInputData}}.} @@ -619,8 +632,6 @@ \item{vegtype}{The name or index of the vegetation type.} \item{file}{A character string. The file name from which to read.} - -\item{...}{Further arguments to methods.} } \description{ This class is a container class to the input file \var{S4} objects. The @@ -653,7 +664,8 @@ Generic methods to get/set individual elements follow a format: } \examples{ showClass("swInputData") -x <- new("swInputData") +x <- new("swInputData") # prototype +x <- swInputData() # constructor helper } \seealso{ diff --git a/man/swLog-class.Rd b/man/swLog-class.Rd index c2904840..a54b7af5 100644 --- a/man/swLog-class.Rd +++ b/man/swLog-class.Rd @@ -3,15 +3,20 @@ \docType{class} \name{swLog-class} \alias{swLog-class} -\alias{initialize,swLog-method} +\alias{swLog} \title{Class \code{"swLog"}} \usage{ -\S4method{initialize}{swLog}(.Object, ...) +swLog(...) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swLog}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} } \description{ The methods listed below work on this class and the proper slot of the class @@ -20,6 +25,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swLog") x <- new("swLog") +x <- swLog() } \seealso{ diff --git a/man/swMarkov-class.Rd b/man/swMarkov-class.Rd index 05c9d161..7ad10f52 100644 --- a/man/swMarkov-class.Rd +++ b/man/swMarkov-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swMarkov-class} \alias{swMarkov-class} -\alias{initialize,swMarkov-method} +\alias{swMarkov} \alias{get_Markov,swMarkov-method} \alias{swMarkov_Prob,swMarkov-method} \alias{swMarkov_Conv,swMarkov-method} @@ -13,7 +13,7 @@ \alias{swReadLines,swMarkov,character-method} \title{Class \code{"swMarkov"}} \usage{ -\S4method{initialize}{swMarkov}(.Object, ...) +swMarkov(...) \S4method{get_Markov}{swMarkov}(object) @@ -30,9 +30,14 @@ \S4method{swReadLines}{swMarkov,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swMarkov}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swMarkov}}.} @@ -47,6 +52,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swMarkov") x <- new("swMarkov") +x <- swMarkov() } \seealso{ diff --git a/man/swMonthlyScalingParams-class.Rd b/man/swMonthlyScalingParams-class.Rd index 33e59b0d..21c97055 100644 --- a/man/swMonthlyScalingParams-class.Rd +++ b/man/swMonthlyScalingParams-class.Rd @@ -3,16 +3,20 @@ \docType{class} \name{swMonthlyScalingParams-class} \alias{swMonthlyScalingParams-class} -\alias{initialize,swMonthlyScalingParams-method} +\alias{swMonthlyScalingParams} \title{Class \code{"swMonthlyScalingParams"}} \usage{ -\S4method{initialize}{swMonthlyScalingParams}(.Object, ...) +swMonthlyScalingParams(...) } \arguments{ -\item{.Object}{An object of class -\code{\linkS4class{swMonthlyScalingParams}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} } \description{ The methods listed below work on this class and the proper slot of the class @@ -21,6 +25,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swMonthlyScalingParams") x <- new("swMonthlyScalingParams") +x <- swMonthlyScalingParams() } \seealso{ diff --git a/man/swOUT-class.Rd b/man/swOUT-class.Rd index 1477f8f9..a6cec949 100644 --- a/man/swOUT-class.Rd +++ b/man/swOUT-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swOUT-class} \alias{swOUT-class} -\alias{initialize,swOUT-method} +\alias{swOUT} \alias{get_swOUT,swOUT-method} \alias{swOUT_TimeStep,swOUT-method} \alias{swOUT_OutputSeparator,swOUT-method} @@ -16,7 +16,7 @@ \alias{swReadLines,swOUT,character-method} \title{Class \code{swOUT}} \usage{ -\S4method{initialize}{swOUT}(.Object, ...) +swOUT(...) \S4method{get_swOUT}{swOUT}(object) @@ -39,9 +39,14 @@ \S4method{swReadLines}{swOUT,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swOUT}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swOUT}}.} @@ -84,16 +89,21 @@ for each possible output time period. See details.} \examples{ showClass("swOUT") x <- new("swOUT") +x <- swOUT() -x <- new("swOUT") +x <- swOUT() activate_swOUT_OutKey(x) <- c("VWCMATRIC", "HYDRED") -x <- new("swOUT") +x <- swOUT() deactivate_swOUT_OutKey(x) <- c("VWCMATRIC", "HYDRED") -x <- new("swOUT") +x <- swOUT() swOUT_TimeStepsForEveryKey(x) <- c(2, 3) -identical(as.vector(unique(swOUT_TimeStep(x))), as.integer(c(2, 3))) +identical( + unique(sort(as.vector(swOUT_TimeStep(x)))), + as.integer(c(2, 3, 999)) # 999 represents 'eSW_NoTime' +) + } \seealso{ \code{\linkS4class{swInputData}} diff --git a/man/swOUT_key-class.Rd b/man/swOUT_key-class.Rd index 4ca86279..f7c20fa9 100644 --- a/man/swOUT_key-class.Rd +++ b/man/swOUT_key-class.Rd @@ -3,15 +3,20 @@ \docType{class} \name{swOUT_key-class} \alias{swOUT_key-class} -\alias{initialize,swOUT_key-method} +\alias{swOUT_key} \title{Class \code{"swOUT_key"}} \usage{ -\S4method{initialize}{swOUT_key}(.Object, ...) +swOUT_key(...) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swOUT_key}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} } \description{ The methods listed below work on this class and the proper slot of the class @@ -20,5 +25,6 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swOUT_key") x <- new("swOUT_key") +x <- swOUT_key() } diff --git a/man/swOutput-class.Rd b/man/swOutput-class.Rd index 310160e9..b4cf0876 100644 --- a/man/swOutput-class.Rd +++ b/man/swOutput-class.Rd @@ -3,14 +3,12 @@ \docType{class} \name{swOutput-class} \alias{swOutput-class} -\alias{initialize,swOutput-method} +\alias{swOutput} \alias{$,swOutput-method} \alias{swOutput_getKEY,swOutput-method} \alias{swOutput_setKEY<-,swOutput,ANY,swOutput_KEY-method} \title{Class \code{"swOutput"}} \usage{ -\S4method{initialize}{swOutput}(.Object) - \S4method{$}{swOutput}(x, name) \S4method{swOutput_getKEY}{swOutput}(object, index) diff --git a/man/swOutput_KEY-class.Rd b/man/swOutput_KEY-class.Rd index 517790d5..59728249 100644 --- a/man/swOutput_KEY-class.Rd +++ b/man/swOutput_KEY-class.Rd @@ -3,6 +3,7 @@ \docType{class} \name{swOutput_KEY-class} \alias{swOutput_KEY-class} +\alias{swOutput_KEY} \alias{swOutput_KEY_Period,swOutput_KEY-method} \alias{swOutput_KEY_TimeStep,swOutput_KEY-method} \alias{swOutput_KEY_Columns,swOutput_KEY-method} diff --git a/man/swProd-class.Rd b/man/swProd-class.Rd index 1c7c6a6d..19ceedd3 100644 --- a/man/swProd-class.Rd +++ b/man/swProd-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swProd-class} \alias{swProd-class} -\alias{initialize,swProd-method} +\alias{swProd} \alias{get_swProd,swProd-method} \alias{swProd_Composition,swProd-method} \alias{swProd_Albedo,swProd-method} @@ -45,7 +45,7 @@ \alias{swReadLines,swProd,character-method} \title{Class \code{"swProd"}} \usage{ -\S4method{initialize}{swProd}(.Object, ...) +swProd(...) \S4method{get_swProd}{swProd}(object) @@ -126,9 +126,14 @@ \S4method{swReadLines}{swProd,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swProd}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swProd}}.} @@ -145,6 +150,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swProd") x <- new("swProd") +x <- swProd() } \seealso{ diff --git a/man/swSWC-class.Rd b/man/swSWC-class.Rd index cb3fbc67..4fc9369a 100644 --- a/man/swSWC-class.Rd +++ b/man/swSWC-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swSWC-class} \alias{swSWC-class} -\alias{initialize,swSWC-method} +\alias{swSWC} \alias{swSWC_use,swSWC-method} \alias{swSWC_prefix,swSWC-method} \alias{swSWC_FirstYear,swSWC-method} @@ -19,7 +19,7 @@ \alias{swReadLines,swSWC,character-method} \title{Class \code{"swSWC"}} \usage{ -\S4method{initialize}{swSWC}(.Object, ...) +swSWC(...) \S4method{swSWC_use}{swSWC}(object) @@ -48,9 +48,14 @@ \S4method{swReadLines}{swSWC,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swSWC}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swSWC}}.} @@ -68,6 +73,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swSWC") x <- new("swSWC") +x <- swSWC() } \seealso{ diff --git a/man/swSWC_hist-class.Rd b/man/swSWC_hist-class.Rd index aa42a342..73c7bc63 100644 --- a/man/swSWC_hist-class.Rd +++ b/man/swSWC_hist-class.Rd @@ -3,25 +3,23 @@ \docType{class} \name{swSWC_hist-class} \alias{swSWC_hist-class} -\alias{initialize,swSWC_hist-method} +\alias{swSWC_hist} \alias{swReadLines,swSWC_hist,character-method} \title{Class \code{"swSWC_hist"}} \usage{ -\S4method{initialize}{swSWC_hist}(.Object, ..., year = 0L, data = NULL) +swSWC_hist(...) \S4method{swReadLines}{swSWC_hist,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swSWC_hist}}.} - -\item{...}{Further arguments to methods.} - -\item{year}{An integer value. The calendar year of the \var{SWC} -\code{data} object.} - -\item{data}{A 365 x 4 or 366 x 4 matrix representing daily \var{SWC} -data for one calendar \code{year} with columns \var{doy}, \var{lyr}, -\var{swc}, \var{st_err}.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swSWC_hist}}.} @@ -31,3 +29,14 @@ data for one calendar \code{year} with columns \var{doy}, \var{lyr}, The methods listed below work on this class and the proper slot of the class \code{\linkS4class{swInputData}}. } +\section{Slots}{ + +\describe{ +\item{\code{year}}{An integer value. The calendar year of the \var{SWC} +\code{data} object.} + +\item{\code{data}}{A 365 x 4 or 366 x 4 matrix representing daily \var{SWC} +data for one calendar \code{year} with columns \var{doy}, \var{lyr}, +\var{swc}, \var{st_err}.} +}} + diff --git a/man/swSite-class.Rd b/man/swSite-class.Rd index 97b6d169..ec552850 100644 --- a/man/swSite-class.Rd +++ b/man/swSite-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swSite-class} \alias{swSite-class} -\alias{initialize,swSite-method} +\alias{swSite} \alias{get_swSite,swSite-method} \alias{swSite_SWRCflags,swSite-method} \alias{swSite_SWClimits,swSite-method} @@ -33,7 +33,7 @@ \alias{swReadLines,swSite,character-method} \title{Class \code{"swSite"}} \usage{ -\S4method{initialize}{swSite}(.Object, ...) +swSite(...) \S4method{get_swSite}{swSite}(object) @@ -90,9 +90,14 @@ \S4method{swReadLines}{swSite,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swSite}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swSite}}.} @@ -107,6 +112,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swSite") x <- new("swSite") +x <- swSite() } \seealso{ diff --git a/man/swSoils-class.Rd b/man/swSoils-class.Rd index 902c9ff2..6ed257ec 100644 --- a/man/swSoils-class.Rd +++ b/man/swSoils-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swSoils-class} \alias{swSoils-class} -\alias{initialize,swSoils-method} +\alias{swSoils} \alias{get_swSoils,swSoils-method} \alias{swSoils_Layers,swSoils-method} \alias{swSoils_SWRCp,swSoils-method} @@ -14,7 +14,7 @@ \alias{swReadLines,swSoils,character-method} \title{Class \code{"swSoils"}} \usage{ -\S4method{initialize}{swSoils}(.Object, ...) +swSoils(...) \S4method{get_swSoils}{swSoils}(object) @@ -33,9 +33,14 @@ \S4method{swReadLines}{swSoils,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swSoils}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swSoils}}.} @@ -50,6 +55,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swSoils") x <- new("swSoils") +x <- swSoils() } \seealso{ diff --git a/man/swWeather-class.Rd b/man/swWeather-class.Rd index 55c58d40..4d06865b 100644 --- a/man/swWeather-class.Rd +++ b/man/swWeather-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swWeather-class} \alias{swWeather-class} -\alias{initialize,swWeather-method} +\alias{swWeather} \alias{swWeather_DaysRunningAverage,swWeather-method} \alias{swWeather_FirstYearHistorical,swWeather-method} \alias{swWeather_pct_SnowDrift,swWeather-method} @@ -23,7 +23,7 @@ \alias{swReadLines,swWeather,character-method} \title{Class \code{"swWeather"}} \usage{ -\S4method{initialize}{swWeather}(.Object, ...) +swWeather(...) \S4method{swWeather_DaysRunningAverage}{swWeather}(object) @@ -60,9 +60,14 @@ \S4method{swReadLines}{swWeather,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swWeather}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swWeather}}.} @@ -77,6 +82,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swWeather") x <- new("swWeather") +x <- swWeather() } \seealso{ diff --git a/man/swWeatherData-class.Rd b/man/swWeatherData-class.Rd index 5e2f2c34..262c5312 100644 --- a/man/swWeatherData-class.Rd +++ b/man/swWeatherData-class.Rd @@ -3,25 +3,26 @@ \docType{class} \name{swWeatherData-class} \alias{swWeatherData-class} -\alias{initialize,swWeatherData-method} +\alias{swWeatherData} +\alias{weatherHistory} \alias{swReadLines,swWeatherData,character-method} \title{Class \code{"swWeatherData"}} \usage{ -\S4method{initialize}{swWeatherData}(.Object, ..., year = 0L, data = NULL) +swWeatherData(...) + +weatherHistory(weatherList = NULL) \S4method{swReadLines}{swWeatherData,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swWeatherData}}.} - -\item{...}{Further arguments to methods.} - -\item{year}{An integer value. The calendar year of the weather \code{data} -object.} - -\item{data}{A 365 x 4 or 366 x 4 matrix representing daily weather data for -one calendar \code{year} with columns \var{DOY}, \var{Tmax_C}, -\var{Tmin_C}, and \var{PPT_cm}.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swWeatherData}}.} @@ -31,9 +32,21 @@ one calendar \code{year} with columns \var{DOY}, \var{Tmax_C}, The methods listed below work on this class and the proper slot of the class \code{\linkS4class{swInputData}}. } +\section{Slots}{ + +\describe{ +\item{\code{year}}{An integer value. The calendar year of the weather \code{data} +object.} + +\item{\code{data}}{A 365 x 4 or 366 x 4 matrix representing daily weather data for +one calendar \code{year} with columns \var{DOY}, \var{Tmax_C}, +\var{Tmin_C}, and \var{PPT_cm}.} +}} + \examples{ showClass("swWeatherData") x <- new("swWeatherData") +x <- swWeatherData() } \seealso{ diff --git a/man/swYears-class.Rd b/man/swYears-class.Rd index f900d70f..d307f81c 100644 --- a/man/swYears-class.Rd +++ b/man/swYears-class.Rd @@ -3,7 +3,7 @@ \docType{class} \name{swYears-class} \alias{swYears-class} -\alias{initialize,swYears-method} +\alias{swYears} \alias{swYears_StartYear,swYears-method} \alias{swYears_EndYear,swYears-method} \alias{swYears_FDOFY,swYears-method} @@ -17,7 +17,7 @@ \alias{swReadLines,swYears,character-method} \title{Class \code{"swYears"}} \usage{ -\S4method{initialize}{swYears}(.Object, ...) +swYears(...) \S4method{swYears_StartYear}{swYears}(object) @@ -42,9 +42,14 @@ \S4method{swReadLines}{swYears,character}(object, file) } \arguments{ -\item{.Object}{An object of class \code{\linkS4class{swYears}}.} - -\item{...}{Further arguments to methods.} +\item{...}{Arguments to the helper constructor function. +Dots can either contain objects to copy into slots of that class +(must be named identical to the corresponding slot) or +be one object of that class (in which case it will be copied and +any missing slots will take their default values). +If dots are missing, then corresponding values of +\code{rSOILWAT2::sw_exampleData} +(i.e., the \pkg{SOILWAT2} "testing" defaults) are copied.} \item{object}{An object of class \code{\linkS4class{swYears}}.} @@ -59,6 +64,7 @@ The methods listed below work on this class and the proper slot of the class \examples{ showClass("swYears") x <- new("swYears") +x <- swYears() } \seealso{ diff --git a/man/sw_exampleData.Rd b/man/sw_exampleData.Rd index 421fec1f..a88a8b62 100644 --- a/man/sw_exampleData.Rd +++ b/man/sw_exampleData.Rd @@ -19,7 +19,8 @@ A dataset containing complete input data for an unspecified location. site-specific simulation run is discouraged (even though there are many such examples throughout the documentation of this package). The recommended approach is to create a clean new object with - \code{new("swInputData")} and then set all site-specific inputs and + the helper constructor \code{swInputData()} (or based on the prototype + \code{new("swInputData")}) and then set all site-specific inputs and parameters. See \var{\dQuote{rSOILWAT2_demo}} vignette. } diff --git a/tests/testthat/test_WeatherData.R b/tests/testthat/test_WeatherData.R index 87f72f08..8cefb555 100644 --- a/tests/testthat/test_WeatherData.R +++ b/tests/testthat/test_WeatherData.R @@ -5,10 +5,18 @@ test_that("Weather data check", { expect_false(dbW_check_weatherData(1)) expect_false(dbW_check_weatherData(list())) expect_false(dbW_check_weatherData(list(1))) - expect_false(dbW_check_weatherData(new("swWeatherData"))) + expect_false(dbW_check_weatherData(swWeatherData())) + expect_false(dbW_check_weatherData(weatherHistory())) + expect_false(dbW_check_weatherData( + swWeatherData(rSOILWAT2::weatherData[[1]])) + ) - expect_true(dbW_check_weatherData(list(new("swWeatherData")))) + expect_true(dbW_check_weatherData(rSOILWAT2::weatherData)) + expect_true(dbW_check_weatherData(weatherHistory(rSOILWAT2::weatherData))) expect_true(dbW_check_weatherData( - get_WeatherHistory(rSOILWAT2::sw_exampleData)) - ) + list(swWeatherData(rSOILWAT2::weatherData[[1]])) + )) + expect_true(dbW_check_weatherData( + get_WeatherHistory(rSOILWAT2::sw_exampleData) + )) }) diff --git a/tests/testthat/test_WeatherGenerator_functionality.R b/tests/testthat/test_WeatherGenerator_functionality.R index 6efb10ac..717d3f56 100644 --- a/tests/testthat/test_WeatherGenerator_functionality.R +++ b/tests/testthat/test_WeatherGenerator_functionality.R @@ -91,7 +91,7 @@ test_that("Weather generator: generate weather", { # Case 3: generate weather based only on estimated weather generator # coefficients from full dataset - x_empty <- list(new("swWeatherData")) + x_empty <- weatherHistory() wout[[3]] <- dbW_generateWeather( x_empty, years = years[length(years)] + 30:40, @@ -154,7 +154,7 @@ test_that("Weather generator (integration tests): compare input/output", { res <- dbW_estimate_WGen_coefs(obs_df, imputation_type = "mean") swMarkov_Prob(sw_in) <- res[["mkv_doy"]] swMarkov_Conv(sw_in) <- res[["mkv_woy"]] - set_swWeatherData(sw_in) <- new("swWeatherData") + set_WeatherHistory(sw_in) <- weatherHistory() wgen_df <- replicate( N, { diff --git a/tests/testthat/test_class_constructors.R b/tests/testthat/test_class_constructors.R new file mode 100644 index 00000000..27b3ff5d --- /dev/null +++ b/tests/testthat/test_class_constructors.R @@ -0,0 +1,110 @@ + +test_that("Class constructors", { + + ref <- rSOILWAT2::sw_exampleData + expect_s4_class(ref, "swInputData") + sns <- slotNames(ref) + sns_dc <- setdiff(sns, c("timestamp", "version")) + + #--- Check that constructor helper for "swInputData" reproduces inputs + expect_s4_class(swInputData(), "swInputData") + x <- swInputData(ref) + expect_s4_class(x, "swInputData") + + for (ks in sns_dc) { + expect_equal(slot(x, ks), slot(ref, ks)) + } + + + #--- Check that constructor helper for "swFiles" reproduces inputs + expect_s4_class(swFiles(), "swFiles") + x <- swFiles(get_swFiles(ref)) + expect_s4_class(x, "swFiles") + expect_equal(x, get_swFiles(ref)) + + #--- Check that constructor helper for "swYears" reproduces inputs + expect_s4_class(swYears(), "swYears") + x <- swYears(get_swYears(ref)) + expect_s4_class(x, "swYears") + expect_equal(x, get_swYears(ref)) + + #--- Check that constructor helper for "swWeather" reproduces inputs + expect_s4_class(swWeather(), "swWeather") + x <- swWeather(get_swWeather(ref)) + expect_s4_class(x, "swWeather") + expect_equal(x, get_swWeather(ref)) + + #--- Check that constructor helper for "swWeatherData" reproduces inputs + expect_s4_class(swWeatherData(), "swWeatherData") + x <- swWeatherData(get_swWeatherData(ref, 1980)) + expect_s4_class(x, "swWeatherData") + expect_equal(x, get_swWeatherData(ref, 1980)) + + #--- Check that constructor helper for "weatherHistory" reproduces inputs + expect_type(weatherHistory(), "list") + expect_s4_class(weatherHistory()[[1]], "swWeatherData") + x <- weatherHistory(get_WeatherHistory(ref)) + expect_type(x, "list") + expect_s4_class(x[[1]], "swWeatherData") + expect_equal(x, get_WeatherHistory(ref)) + + #--- Check that constructor helper for "swCloud" reproduces inputs + expect_s4_class(swCloud(), "swCloud") + x <- swCloud(get_swCloud(ref)) + expect_s4_class(x, "swCloud") + expect_equal(x, get_swCloud(ref)) + + #--- Check that constructor helper for "swMarkov" reproduces inputs + expect_s4_class(swMarkov(), "swMarkov") + x <- swMarkov(get_swMarkov(ref)) + expect_s4_class(x, "swMarkov") + expect_equal(x, get_swMarkov(ref)) + + #--- Check that constructor helper for "swProd" reproduces inputs + expect_s4_class(swProd(), "swProd") + x <- swProd(get_swProd(ref)) + expect_s4_class(x, "swProd") + expect_equal(x, get_swProd(ref)) + + #--- Check that constructor helper for "swSite" reproduces inputs + expect_s4_class(swSite(), "swSite") + x <- swSite(get_swSite(ref)) + expect_s4_class(x, "swSite") + expect_equal(x, get_swSite(ref)) + + #--- Check that constructor helper for "swSoils" reproduces inputs + expect_s4_class(swSoils(), "swSoils") + x <- swSoils(get_swSoils(ref)) + expect_s4_class(x, "swSoils") + expect_equal(x, get_swSoils(ref)) + + #--- Check that constructor helper for "swEstab" reproduces inputs + expect_s4_class(swEstab(), "swEstab") + x <- swEstab(get_swEstab(ref)) + expect_s4_class(x, "swEstab") + expect_equal(x, get_swEstab(ref)) + + #--- Check that constructor helper for "swCarbon" reproduces inputs + expect_s4_class(swCarbon(), "swCarbon") + x <- swCarbon(get_swCarbon(ref)) + expect_s4_class(x, "swCarbon") + expect_equal(x, get_swCarbon(ref)) + + #--- Check that constructor helper for "swOUT" reproduces inputs + expect_s4_class(swOUT(), "swOUT") + x <- swOUT(get_swOUT(ref)) + expect_s4_class(x, "swOUT") + expect_equal(x, get_swOUT(ref)) + + #--- Check that constructor helper for "swSWC" reproduces inputs + expect_s4_class(swSWC(), "swSWC") + x <- swSWC(get_swSWC(ref)) + expect_s4_class(x, "swSWC") + expect_equal(x, get_swSWC(ref)) + + #--- Check that constructor helper for "swLog" reproduces inputs + expect_s4_class(swLog(), "swLog") + x <- swLog(ref@log) + expect_s4_class(x, "swLog") + expect_equal(x, ref@log) +}) diff --git a/tests/testthat/test_class_swCarbon.R b/tests/testthat/test_class_swCarbon.R index 843453ba..b2efdf9a 100644 --- a/tests/testthat/test_class_swCarbon.R +++ b/tests/testthat/test_class_swCarbon.R @@ -5,7 +5,7 @@ test_that("Manipulate swCarbon", { x <- new("swCarbon") expect_s4_class(x, "swCarbon") - xinput <- xinput2 <- new("swCarbon") + xinput <- xinput2 <- swCarbon() expect_s4_class(get_swCarbon(xinput), "swCarbon") co2 <- as.matrix(data.frame(Year = 1951:2000, CO2ppm = 360 + seq_len(50) / 2)) swCarbon_CO2ppm(xinput) <- co2 @@ -14,7 +14,7 @@ test_that("Manipulate swCarbon", { # Get/set entire carbon class object cco2 <- get_swCarbon(xinput) - cco2_new <- new("swCarbon") + cco2_new <- swCarbon() expect_false(isTRUE(all.equal(cco2, cco2_new))) set_swCarbon(cco2_new) <- cco2 expect_equal(cco2, cco2_new) diff --git a/tests/testthat/test_class_swProd.R b/tests/testthat/test_class_swProd.R index 9fe6a006..82207e78 100644 --- a/tests/testthat/test_class_swProd.R +++ b/tests/testthat/test_class_swProd.R @@ -23,11 +23,11 @@ test_that("Manipulate 'swProd' class", { expect_s4_class(x, "swProd") # Tests for the 'swProd' slot of signature 'swInputData' - xinput <- xinput2 <- new("swInputData") + xinput <- xinput2 <- swInputData() expect_s4_class(get_swProd(xinput), "swProd") x1 <- get_swProd(xinput) - x2 <- new("swProd") + x2 <- swProd() expect_equal(x1, x2) set_swProd(xinput2) <- x1 expect_equal(xinput, xinput2) diff --git a/tests/testthat/test_class_swSite.R b/tests/testthat/test_class_swSite.R index 28be5e84..84d98659 100644 --- a/tests/testthat/test_class_swSite.R +++ b/tests/testthat/test_class_swSite.R @@ -14,11 +14,11 @@ test_that("Manipulate 'swSite' class", { expect_s4_class(x, "swSite") #--- Tests for the 'swSite' slot of signature 'swInputData' - xinput <- xinput2 <- new("swInputData") + xinput <- xinput2 <- swInputData() expect_s4_class(get_swSite(xinput), "swSite") site1 <- get_swSite(xinput) - site2 <- new("swSite") + site2 <- swSite() expect_equal(site1, site2) set_swSite(xinput2) <- site1 expect_equal(xinput, xinput2) diff --git a/tests/testthat/test_dbW_functionality.R b/tests/testthat/test_dbW_functionality.R index 1367a444..f3be02f6 100644 --- a/tests/testthat/test_dbW_functionality.R +++ b/tests/testthat/test_dbW_functionality.R @@ -877,7 +877,7 @@ test_that("Convert calendar years", { expect_false(anyNA(wnew)) ## Correct/convert from a non-leap to a Gregorian calendar - wempty <- dbW_weatherData_to_dataframe(list(new("swWeatherData")))[1:365, ] + wempty <- dbW_weatherData_to_dataframe(weatherHistory())[1:365, ] wnew <- dbW_convert_to_GregorianYears( wempty, diff --git a/vignettes/rSOILWAT2_WeatherDatabase.Rmd b/vignettes/rSOILWAT2_WeatherDatabase.Rmd index 59476610..eb9da48d 100644 --- a/vignettes/rSOILWAT2_WeatherDatabase.Rmd +++ b/vignettes/rSOILWAT2_WeatherDatabase.Rmd @@ -97,7 +97,7 @@ Here, we create three replicates of our example data with the weather generator imputation_span = 5 ) - x_empty <- list(new("swWeatherData")) + x_empty <- weatherHistory() # Loop over our three sites, generate weather, and add it to the database for (k in seq_len(nrow(sites1))) { diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 10752574..8426ef7f 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -188,7 +188,7 @@ editor_options: ```{r, input_object} # Preferred option: # All relevant site-specific parameters and variables are set to NA - sw_in <- new("swInputData") + sw_in <- rSOILWAT2::swInputData() # Quick option: # This approach is discouraged because it is very easy to miss to From bb63b8707dc24a162e7085fc2e2205e5ef4f6aeb Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 13:41:16 -0500 Subject: [PATCH 035/238] More robust `get_version()` and `get_timestamp()` - now just one method with "ANY" signature -- instead of multiple methods that did the same - `get_version()` now consistently returns an object of type character (consistenly formatted via numeric version) - `get_timestamp()` now consistently returns an object of type numeric -> unit tests "exec and aggregate" using development versions of rSOILWAT2 work again --- R/A_swGenericMethods.R | 20 +++++++++++---- R/K_swContainer.R | 20 --------------- R/L_swOutput.R | 21 ---------------- man/get_timestamp.Rd | 9 +------ man/get_version.Rd | 12 +++------ tests/testthat/test_exec_and_aggregate.R | 7 ++++-- tests/testthat/test_version.R | 32 ++++++++++++------------ 7 files changed, 41 insertions(+), 80 deletions(-) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 92afe28b..13671a32 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -31,13 +31,17 @@ setGeneric("swReadLines", function(object, file) standardGeneric("swReadLines")) #' Create \pkg{rSOILWAT2} version representation -rSW2_version <- function() as.character(getNamespaceVersion("rSOILWAT2")) +rSW2_version <- function() { + as.character(as.numeric_version(getNamespaceVersion("rSOILWAT2"))) +} #' Retrieve version of \pkg{rSOILWAT2} that was used to create object #' #' @param object An object of class \code{\linkS4class{swInputData}} or #' \code{\linkS4class{swOutput}}. #' +#' @return A character string representing the version number (or \code{NA}). +#' #' @seealso \code{\link{check_version}} #' #' @examples @@ -49,10 +53,15 @@ setGeneric("get_version", function(object) standardGeneric("get_version")) #' @rdname get_version setMethod( - f = "get_version", + "get_version", signature = "ANY", definition = function(object) { - NA + tmp <- try(object@version, silent = TRUE) + if (inherits(tmp, "try-error")) { + NA_character_ + } else { + as.character(as.numeric_version(tmp)) + } } ) @@ -151,10 +160,11 @@ setGeneric("get_timestamp", function(object) standardGeneric("get_timestamp")) #' @rdname get_timestamp setMethod( - f = "get_timestamp", + "get_timestamp", signature = "ANY", definition = function(object) { - NA + tmp <- try(object@timestamp, silent = TRUE) + if (inherits(tmp, "try-error")) NA_real_ else tmp } ) diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 16c4cff4..05f0f5ec 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -229,26 +229,6 @@ setValidity( -#' @rdname get_version -setMethod( - "get_version", - signature = "swInputData", - definition = function(object) { - tmp <- try(object@version, silent = TRUE) - if (inherits(tmp, "try-error")) NA else tmp - } -) - -#' @rdname get_timestamp -setMethod( - "get_timestamp", - signature = "swInputData", - definition = function(object) { - tmp <- try(object@timestamp, silent = TRUE) - if (inherits(tmp, "try-error")) NA else tmp - } -) - # Methods for slot \code{files} #' @rdname swInputData-class diff --git a/R/L_swOutput.R b/R/L_swOutput.R index c2c7dd49..0e446a72 100644 --- a/R/L_swOutput.R +++ b/R/L_swOutput.R @@ -273,27 +273,6 @@ setValidity( ) -#' @rdname get_version -setMethod( - f = "get_version", - signature = "swOutput", - definition = function(object) { - tmp <- try(object@version, silent = TRUE) - if (inherits(tmp, "try-error")) NA else tmp - } -) - -#' @rdname get_timestamp -setMethod( - f = "get_timestamp", - signature = "swOutput", - definition = function(object) { - tmp <- try(object@timestamp, silent = TRUE) - if (inherits(tmp, "try-error")) NA else tmp - } -) - - #' @rdname swOutput-class #' @export setMethod("$", signature = "swOutput", function(x, name) slot(x, name)) diff --git a/man/get_timestamp.Rd b/man/get_timestamp.Rd index 18dc498a..1a29839d 100644 --- a/man/get_timestamp.Rd +++ b/man/get_timestamp.Rd @@ -1,20 +1,13 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R, R/K_swContainer.R, -% R/L_swOutput.R +% Please edit documentation in R/A_swGenericMethods.R \name{get_timestamp} \alias{get_timestamp} \alias{get_timestamp,ANY-method} -\alias{get_timestamp,swInputData-method} -\alias{get_timestamp,swOutput-method} \title{Retrieve time stamp of an object} \usage{ get_timestamp(object) \S4method{get_timestamp}{ANY}(object) - -\S4method{get_timestamp}{swInputData}(object) - -\S4method{get_timestamp}{swOutput}(object) } \arguments{ \item{object}{An object of class \code{\linkS4class{swInputData}} or diff --git a/man/get_version.Rd b/man/get_version.Rd index 8aed2e04..4e946953 100644 --- a/man/get_version.Rd +++ b/man/get_version.Rd @@ -1,25 +1,21 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R, R/K_swContainer.R, -% R/L_swOutput.R +% Please edit documentation in R/A_swGenericMethods.R \name{get_version} \alias{get_version} \alias{get_version,ANY-method} -\alias{get_version,swInputData-method} -\alias{get_version,swOutput-method} \title{Retrieve version of \pkg{rSOILWAT2} that was used to create object} \usage{ get_version(object) \S4method{get_version}{ANY}(object) - -\S4method{get_version}{swInputData}(object) - -\S4method{get_version}{swOutput}(object) } \arguments{ \item{object}{An object of class \code{\linkS4class{swInputData}} or \code{\linkS4class{swOutput}}.} } +\value{ +A character string representing the version number (or \code{NA}). +} \description{ Retrieve version of \pkg{rSOILWAT2} that was used to create object } diff --git a/tests/testthat/test_exec_and_aggregate.R b/tests/testthat/test_exec_and_aggregate.R index c48abd2b..aa66cb48 100644 --- a/tests/testthat/test_exec_and_aggregate.R +++ b/tests/testthat/test_exec_and_aggregate.R @@ -351,8 +351,11 @@ test_that("Compare to previous runs", { } # Expect version number and timestamp to be >= than stored copy - expect_true(get_version(rdy) >= get_version(sw_output)) - expect_gte(get_timestamp(rdy), get_timestamp(sw_output)) + expect_true( + !!get_version(rdy) >= !!get_version(sw_output), + info = info1 + ) + expect_gte(!!get_timestamp(rdy), !!get_timestamp(sw_output)) } } }) diff --git a/tests/testthat/test_version.R b/tests/testthat/test_version.R index 46e3f1db..359a8cb9 100644 --- a/tests/testthat/test_version.R +++ b/tests/testthat/test_version.R @@ -81,14 +81,14 @@ test_that("rSOILWAT2 object versions", { ) - #--- Check for other object classes (ANY-method): return `NA` - expect_equal(get_version(), NA) - expect_equal(get_version(NA), NA) - expect_equal(get_version(NULL), NA) - expect_equal(get_version(1), NA) - expect_equal(get_version(list()), NA) - expect_equal(get_version(try(stop("error"), silent = TRUE)), NA) - expect_equal(get_version(swSoils_Layers(sw_in)), NA) + #--- Check for other object classes (ANY-method): return `NA_character_` + expect_equal(get_version(), NA_character_) + expect_equal(get_version(NA), NA_character_) + expect_equal(get_version(NULL), NA_character_) + expect_equal(get_version(1), NA_character_) + expect_equal(get_version(list()), NA_character_) + expect_equal(get_version(try(stop("error"), silent = TRUE)), NA_character_) + expect_equal(get_version(swSoils_Layers(sw_in)), NA_character_) expect_false(check_version(NA)) }) @@ -109,14 +109,14 @@ test_that("rSOILWAT2 object timestamps", { expect_gt(format_timestamp(sw_out), t) - #--- Check for other object classes (ANY-method): return `NA` - expect_equal(get_timestamp(), NA) - expect_equal(get_timestamp(NA), NA) - expect_equal(get_timestamp(NULL), NA) - expect_equal(get_timestamp(1), NA) - expect_equal(get_timestamp(list()), NA) - expect_equal(get_timestamp(try(stop("error"), silent = TRUE)), NA) - expect_equal(get_timestamp(swSoils_Layers(sw_in)), NA) + #--- Check for other object classes (ANY-method): return `NA_real_` + expect_equal(get_timestamp(), NA_real_) + expect_equal(get_timestamp(NA), NA_real_) + expect_equal(get_timestamp(NULL), NA_real_) + expect_equal(get_timestamp(1), NA_real_) + expect_equal(get_timestamp(list()), NA_real_) + expect_equal(get_timestamp(try(stop("error"), silent = TRUE)), NA_real_) + expect_equal(get_timestamp(swSoils_Layers(sw_in)), NA_real_) expect_equal(format_timestamp(NA), as.POSIXct(NA)) }) From f612cce98a70749357f325be6b37f8620a1362bc Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 14:03:44 -0500 Subject: [PATCH 036/238] New `upgrade_swInputData()` - upgrade an outdated "swInputData" object (from a previous rSOILWAT2 version) and add default values for missing slots -> `sw_exec()` now calls this function prior to passing it to SOILWAT2 --- NAMESPACE | 1 + R/K_swContainer.R | 59 ++++++++++++++++++++++++++++++++++++++ R/Rsw.R | 5 ++++ man/upgrade_swInputData.Rd | 18 ++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 man/upgrade_swInputData.Rd diff --git a/NAMESPACE b/NAMESPACE index 23551c2a..72fbcd8b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -135,6 +135,7 @@ export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) export(update_biomass) export(update_requested_years) +export(upgrade_swInputData) export(weatherHistory) exportClasses(swCarbon) exportClasses(swCloud) diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 05f0f5ec..a301451b 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -228,6 +228,65 @@ setValidity( +#' Attempt to upgrade essential slots if input object is from an older version +#' +#' Missing slots are added and take the new default values from `SOILWAT2`. +#' +#' @param x An object of class \code{\linkS4class{swInputData}}. +#' @return An object of class \code{\linkS4class{swInputData}}, +#' potentially upgraded. +#' +#' @export +upgrade_swInputData <- function(x) { + + # Suppress warnings in case `x` is indeed invalid (outdated) + if (!suppressWarnings(check_version(x))) { + # Only consider upgrades if version is less than current + msg_upgrades <- NULL + + #--- Make sure we have SWRC/PDF flags + tmp <- try(x@site@swrc_flags, silent = TRUE) + if (inherits(tmp, "try-error")) { + x@site <- suppressWarnings(swSite(x@site)) + msg_upgrades <- c(msg_upgrades, "swrc_flags") + } + + #--- Make sure we have SWRC parameters + tmp <- try(x@soils@SWRCp, silent = TRUE) + if (inherits(tmp, "try-error")) { + x@soils <- suppressWarnings(swSoils(x@soils)) + msg_upgrades <- c(msg_upgrades, "SWRCp") + } + + #--- Make sure we have the name to the SWRC parameter input file + # Note: non-essential to run `sw_exec()` but it helps pass `validObject()` + tmp <- try(validObject(x@files), silent = TRUE) + if (inherits(tmp, "try-error")) { + x@files@InFiles <- swFiles()@InFiles + msg_upgrades <- c(msg_upgrades, "InFiles") + } + + + if (length(msg_upgrades) > 1) { + message( + "Outdated object was upgraded; ", + "default values were used to add previously missing slots: ", + paste0(shQuote(msg_upgrades), collapse = ", ") + ) + + #--- Update version/timestamp + x@version <- rSW2_version() + x@timestamp <- rSW2_timestamp() + + #--- Check validity and return + validObject(x) + } + } + + x +} + + # Methods for slot \code{files} diff --git a/R/Rsw.R b/R/Rsw.R index 05ed4ca3..3d03b8c2 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -247,6 +247,11 @@ sw_exec <- function( ) } + + # Upgrade essential slots if input object is from an older version + inputData <- upgrade_swInputData(inputData) + + if (!check_version(inputData, level = "minor")) { warning( "Object `inputData is outdated; ", diff --git a/man/upgrade_swInputData.Rd b/man/upgrade_swInputData.Rd new file mode 100644 index 00000000..30d966d2 --- /dev/null +++ b/man/upgrade_swInputData.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/K_swContainer.R +\name{upgrade_swInputData} +\alias{upgrade_swInputData} +\title{Attempt to upgrade essential slots if input object is from an older version} +\usage{ +upgrade_swInputData(x) +} +\arguments{ +\item{x}{An object of class \code{\linkS4class{swInputData}}.} +} +\value{ +An object of class \code{\linkS4class{swInputData}}, + potentially upgraded. +} +\description{ +Missing slots are added and take the new default values from `SOILWAT2`. +} From e8466b3b5ed22ae84e82d8abc5eb5f5fa29773d8 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 19:15:18 -0500 Subject: [PATCH 037/238] Clean up methods and documentation - define `set_swMarkov()` -- as synonym to existing `set_Markov()` which is not consistent to class name as other similar methods - improve documentation to reduce "check" warnings - define "UTF-8" encoding in `DESCRIPTION` -- to avoid roxygen2 warnings - improve documentation of `sw_exec()` and related functions - improve documentation of `sw_verbosity()` --- DESCRIPTION | 1 + NAMESPACE | 2 + R/A_swGenericMethods.R | 70 ++++++++++++++++++------------- R/K_swContainer.R | 13 +++++- R/Rsw.R | 20 +++++---- inst/WORDLIST | 1 + man/set_Markov.Rd | 12 +++--- man/set_WeatherHistory.Rd | 11 ++--- man/set_swCarbon.Rd | 12 +++--- man/set_swCloud.Rd | 12 +++--- man/set_swFiles.Rd | 12 +++--- man/set_swOUT.Rd | 12 +++--- man/set_swProd.Rd | 12 +++--- man/set_swSWC.Rd | 12 +++--- man/set_swSite.Rd | 12 +++--- man/set_swSoils.Rd | 12 +++--- man/set_swWeather.Rd | 12 +++--- man/set_swWeatherData.Rd | 12 +++--- man/set_swYears.Rd | 12 +++--- man/swInputData-class.Rd | 3 ++ man/swMarkov-class.Rd | 3 ++ man/swOUT_TimeStepsForEveryKey.Rd | 12 +++--- man/sw_exec.Rd | 8 ++-- man/sw_inputDataFromFiles.Rd | 6 ++- man/sw_outputData.Rd | 4 +- man/sw_verbosity.Rd | 3 +- 26 files changed, 187 insertions(+), 114 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 974d77c1..2d638ede 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -47,3 +47,4 @@ RoxygenNote: 7.1.2 LazyData: true Language: en-US VignetteBuilder: knitr +Encoding: UTF-8 diff --git a/NAMESPACE b/NAMESPACE index 72fbcd8b..bffc5e7b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -91,6 +91,7 @@ export(set_requested_flags) export(set_swCarbon) export(set_swCloud) export(set_swFiles) +export(set_swMarkov) export(set_swOUT) export(set_swProd) export(set_swSWC) @@ -166,6 +167,7 @@ exportMethods("set_WeatherHistory<-") exportMethods("set_swCarbon<-") exportMethods("set_swCloud<-") exportMethods("set_swFiles<-") +exportMethods("set_swMarkov<-") exportMethods("set_swOUT<-") exportMethods("set_swProd<-") exportMethods("set_swSWC<-") diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 13671a32..078a62f6 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -354,9 +354,10 @@ setGeneric( function(object) standardGeneric("swFiles_OutputPrefix") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swFiles<-}} doesn't work. #' \code{set_swFiles} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swFiles<-}} doesn't work. +#' @inheritParams set_swFiles<- #' @export setGeneric( "set_swFiles", @@ -609,9 +610,10 @@ setGeneric( function(object) standardGeneric("swYears_isNorth") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swYears<-}} doesn't work. #' \code{set_swYears} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swYears<-}} doesn't work. +#' @inheritParams set_swYears<- #' @export setGeneric( "set_swYears", @@ -761,9 +763,10 @@ setGeneric( function(object) standardGeneric("swWeather_MonScalingParams") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swWeather<-}} doesn't work. #' \code{set_swWeather} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swWeather<-}} doesn't work. +#' @inheritParams set_swWeather<- #' @export setGeneric( "set_swWeather", @@ -900,9 +903,10 @@ setGeneric( ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_Markov<-}} doesn't work. #' \code{set_Markov} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_Markov<-}} doesn't work. +#' @inheritParams set_Markov<- #' @export setGeneric( "set_Markov", @@ -980,9 +984,10 @@ setGeneric( function(object, year) standardGeneric("get_swWeatherData") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_WeatherHistory<-}} doesn't work. #' \code{set_WeatherHistory} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_WeatherHistory<-}} doesn't work. +#' @inheritParams set_WeatherHistory<- #' @export setGeneric( "set_WeatherHistory", @@ -998,9 +1003,10 @@ setGeneric( function(object, value) standardGeneric("set_WeatherHistory<-") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swWeatherData<-}} doesn't work. #' \code{set_swWeatherData} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swWeatherData<-}} doesn't work. +#' @inheritParams set_swWeatherData<- #' @export setGeneric( "set_swWeatherData", @@ -1074,9 +1080,10 @@ setGeneric( function(object) standardGeneric("swCloud_RainEvents") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swCloud<-}} doesn't work. #' \code{set_swCloud} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swCloud<-}} doesn't work. +#' @inheritParams set_swCloud<- #' @export setGeneric( "set_swCloud", @@ -1308,9 +1315,10 @@ setGeneric( function(object) standardGeneric("swProd_MonProd_forb") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swProd<-}} doesn't work. #' \code{set_swProd} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swProd<-}} doesn't work. +#' @inheritParams set_swProd<- #' @export setGeneric( "set_swProd", @@ -1617,9 +1625,10 @@ setGeneric( function(object) standardGeneric("swSite_TranspirationRegions") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swSite<-}} doesn't work. #' \code{set_swSite} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swSite<-}} doesn't work. +#' @inheritParams set_swSite<- #' @export setGeneric( "set_swSite", @@ -1784,9 +1793,10 @@ setGeneric( function(object) standardGeneric("swSoils_SWRCp") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swSoils<-}} doesn't work. #' \code{set_swSoils} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swSoils<-}} doesn't work. +#' @inheritParams set_swSoils<- #' @export setGeneric( "set_swSoils", @@ -1921,9 +1931,10 @@ setGeneric( function(object) standardGeneric("swCarbon_CO2ppm") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swCarbon<-}} doesn't work. #' \code{set_swCarbon} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swCarbon<-}} doesn't work. +#' @inheritParams set_swCarbon<- #' @export setGeneric( "set_swCarbon", @@ -2055,9 +2066,10 @@ setGeneric( function(object, year) standardGeneric("swSWC_HistoricData") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swSWC<-}} doesn't work. #' \code{set_swSWC} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swSWC<-}} doesn't work. +#' @inheritParams set_swSWC<- #' @export setGeneric( "set_swSWC", @@ -2163,9 +2175,10 @@ setGeneric( function(object) standardGeneric("swOUT_OutputSeparator") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{set_swOUT<-}} doesn't work. #' \code{set_swOUT} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{set_swOUT<-}} doesn't work. +#' @inheritParams set_swOUT<- #' @export setGeneric( "set_swOUT", @@ -2192,9 +2205,10 @@ setGeneric( function(object, value) standardGeneric("swOUT_TimeStep<-") ) +# Need to define and export this generic method -- otherwise, +# \code{\link{swOUT_TimeStepsForEveryKey<-}} doesn't work. #' \code{swOUT_TimeStepsForEveryKey} -#' Need to define and export this generic method -- otherwise, -#' \code{\link{swOUT_TimeStepsForEveryKey<-}} doesn't work. +#' @inheritParams swOUT_TimeStepsForEveryKey<- #' @export setGeneric( "swOUT_TimeStepsForEveryKey", diff --git a/R/K_swContainer.R b/R/K_swContainer.R index a301451b..9bfb3a1c 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1091,7 +1091,18 @@ setReplaceMethod( "set_Markov", signature = "swInputData", function(object, value) { - set_Markov(object@markov) <- value + set_swMarkov(object@markov) <- value + object + } +) + +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "set_swMarkov", + signature = "swInputData", + function(object, value) { + set_swMarkov(object@markov) <- value object } ) diff --git a/R/Rsw.R b/R/Rsw.R index 3d03b8c2..495e83e0 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -37,7 +37,9 @@ sw_args <- function(dir, files.in, echo, quiet) { #' Turn on/off `SOILWAT2` notes and warnings #' -#' @param quiet A logical value. +#' @param verbose A logical value. +#' Verbose mode prints any \pkg{SOILWAT2} messages. +#' #' @return The previous logical value. #' #' @export @@ -80,11 +82,13 @@ sw_verbosity <- function(verbose = TRUE) { #' \code{\link{dbW_getWeatherData}} or \code{\link{getWeatherData_folders}}. #' @param dir a character vector that represents the path to the input data. Use #' with \code{files.in} -#' @param files.in a character vector that represents the partial path of the -#' \var{files.in} file +#' @param files.in A character string. The file name (and path relative to +#' \code{dir}) of the \var{files} input file that contains information +#' about the remaining input files. #' @param echo logical. This option will echo the inputs to the \var{logfile}. #' Helpful for debugging. -#' @param quiet logical. Quiet mode doesn't print messages to the \var{logfile}. +#' @param quiet logical. Quiet mode hides any \pkg{SOILWAT2} messages, +#' see \code{\link{sw_verbosity}}. #' #' @return An object of class \code{\linkS4class{swOutput}}. #' @@ -317,10 +321,7 @@ sw_exec <- function( #' Read simulation input data from files on disk #' -#' @param dir A character string. The path to the simulation project directory. -#' @param files.in A character string. The file name (and path relative to -#' \code{dir}) of the \var{files} input file that contains information -#' about the remaining input files. +#' @inheritParams sw_exec #' #' @return An object of class \code{\linkS4class{swInputData}}. #' @@ -372,7 +373,8 @@ sw_inputDataFromFiles <- function( #' Return output data #' -#' @param inputData An object of class \code{\linkS4class{swInputData}}. +#' @inheritParams sw_exec +#' #' @return An object of class \code{\linkS4class{swOutput}}. #' @export sw_outputData <- function(inputData) { diff --git a/inst/WORDLIST b/inst/WORDLIST index 070790ff..4deae414 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -72,6 +72,7 @@ README RMRS SSP SWP +swrc SWRC th USGS diff --git a/man/set_Markov.Rd b/man/set_Markov.Rd index 527ff060..dd2c20ae 100644 --- a/man/set_Markov.Rd +++ b/man/set_Markov.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_Markov} \alias{set_Markov} -\title{\code{set_Markov} -Need to define and export this generic method -- otherwise, -\code{\link{set_Markov<-}} doesn't work.} +\title{\code{set_Markov}} \usage{ set_Markov(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swMarkov}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_Markov} -Need to define and export this generic method -- otherwise, -\code{\link{set_Markov<-}} doesn't work. } diff --git a/man/set_WeatherHistory.Rd b/man/set_WeatherHistory.Rd index cb492ded..c0385a8a 100644 --- a/man/set_WeatherHistory.Rd +++ b/man/set_WeatherHistory.Rd @@ -2,14 +2,15 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_WeatherHistory} \alias{set_WeatherHistory} -\title{\code{set_WeatherHistory} -Need to define and export this generic method -- otherwise, -\code{\link{set_WeatherHistory<-}} doesn't work.} +\title{\code{set_WeatherHistory}} \usage{ set_WeatherHistory(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_WeatherHistory} -Need to define and export this generic method -- otherwise, -\code{\link{set_WeatherHistory<-}} doesn't work. } diff --git a/man/set_swCarbon.Rd b/man/set_swCarbon.Rd index 97a5186d..f178dd76 100644 --- a/man/set_swCarbon.Rd +++ b/man/set_swCarbon.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swCarbon} \alias{set_swCarbon} -\title{\code{set_swCarbon} -Need to define and export this generic method -- otherwise, -\code{\link{set_swCarbon<-}} doesn't work.} +\title{\code{set_swCarbon}} \usage{ set_swCarbon(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swCarbon}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swCarbon} -Need to define and export this generic method -- otherwise, -\code{\link{set_swCarbon<-}} doesn't work. } diff --git a/man/set_swCloud.Rd b/man/set_swCloud.Rd index b7864fcd..a806f236 100644 --- a/man/set_swCloud.Rd +++ b/man/set_swCloud.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swCloud} \alias{set_swCloud} -\title{\code{set_swCloud} -Need to define and export this generic method -- otherwise, -\code{\link{set_swCloud<-}} doesn't work.} +\title{\code{set_swCloud}} \usage{ set_swCloud(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swCloud}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swCloud} -Need to define and export this generic method -- otherwise, -\code{\link{set_swCloud<-}} doesn't work. } diff --git a/man/set_swFiles.Rd b/man/set_swFiles.Rd index b71bb890..b4cd6c6e 100644 --- a/man/set_swFiles.Rd +++ b/man/set_swFiles.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swFiles} \alias{set_swFiles} -\title{\code{set_swFiles} -Need to define and export this generic method -- otherwise, -\code{\link{set_swFiles<-}} doesn't work.} +\title{\code{set_swFiles}} \usage{ set_swFiles(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swFiles}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swFiles} -Need to define and export this generic method -- otherwise, -\code{\link{set_swFiles<-}} doesn't work. } diff --git a/man/set_swOUT.Rd b/man/set_swOUT.Rd index 8675c5fd..d0f60fce 100644 --- a/man/set_swOUT.Rd +++ b/man/set_swOUT.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swOUT} \alias{set_swOUT} -\title{\code{set_swOUT} -Need to define and export this generic method -- otherwise, -\code{\link{set_swOUT<-}} doesn't work.} +\title{\code{set_swOUT}} \usage{ set_swOUT(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swOUT}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swOUT} -Need to define and export this generic method -- otherwise, -\code{\link{set_swOUT<-}} doesn't work. } diff --git a/man/set_swProd.Rd b/man/set_swProd.Rd index 2590bbcd..f43b0f5e 100644 --- a/man/set_swProd.Rd +++ b/man/set_swProd.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swProd} \alias{set_swProd} -\title{\code{set_swProd} -Need to define and export this generic method -- otherwise, -\code{\link{set_swProd<-}} doesn't work.} +\title{\code{set_swProd}} \usage{ set_swProd(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swProd}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swProd} -Need to define and export this generic method -- otherwise, -\code{\link{set_swProd<-}} doesn't work. } diff --git a/man/set_swSWC.Rd b/man/set_swSWC.Rd index ec764bdc..295fc353 100644 --- a/man/set_swSWC.Rd +++ b/man/set_swSWC.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swSWC} \alias{set_swSWC} -\title{\code{set_swSWC} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSWC<-}} doesn't work.} +\title{\code{set_swSWC}} \usage{ set_swSWC(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSWC}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swSWC} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSWC<-}} doesn't work. } diff --git a/man/set_swSite.Rd b/man/set_swSite.Rd index 597ed038..0928bf7a 100644 --- a/man/set_swSite.Rd +++ b/man/set_swSite.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swSite} \alias{set_swSite} -\title{\code{set_swSite} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSite<-}} doesn't work.} +\title{\code{set_swSite}} \usage{ set_swSite(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSite}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swSite} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSite<-}} doesn't work. } diff --git a/man/set_swSoils.Rd b/man/set_swSoils.Rd index d5c9b94f..cd970150 100644 --- a/man/set_swSoils.Rd +++ b/man/set_swSoils.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swSoils} \alias{set_swSoils} -\title{\code{set_swSoils} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSoils<-}} doesn't work.} +\title{\code{set_swSoils}} \usage{ set_swSoils(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swSoils}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swSoils} -Need to define and export this generic method -- otherwise, -\code{\link{set_swSoils<-}} doesn't work. } diff --git a/man/set_swWeather.Rd b/man/set_swWeather.Rd index ea364468..3c8178d8 100644 --- a/man/set_swWeather.Rd +++ b/man/set_swWeather.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swWeather} \alias{set_swWeather} -\title{\code{set_swWeather} -Need to define and export this generic method -- otherwise, -\code{\link{set_swWeather<-}} doesn't work.} +\title{\code{set_swWeather}} \usage{ set_swWeather(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swWeather}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swWeather} -Need to define and export this generic method -- otherwise, -\code{\link{set_swWeather<-}} doesn't work. } diff --git a/man/set_swWeatherData.Rd b/man/set_swWeatherData.Rd index 69b93cb0..493a6efd 100644 --- a/man/set_swWeatherData.Rd +++ b/man/set_swWeatherData.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swWeatherData} \alias{set_swWeatherData} -\title{\code{set_swWeatherData} -Need to define and export this generic method -- otherwise, -\code{\link{set_swWeatherData<-}} doesn't work.} +\title{\code{set_swWeatherData}} \usage{ set_swWeatherData(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swWeatherData}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swWeatherData} -Need to define and export this generic method -- otherwise, -\code{\link{set_swWeatherData<-}} doesn't work. } diff --git a/man/set_swYears.Rd b/man/set_swYears.Rd index 19b80218..d4c953dc 100644 --- a/man/set_swYears.Rd +++ b/man/set_swYears.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{set_swYears} \alias{set_swYears} -\title{\code{set_swYears} -Need to define and export this generic method -- otherwise, -\code{\link{set_swYears<-}} doesn't work.} +\title{\code{set_swYears}} \usage{ set_swYears(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swYears}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{set_swYears} -Need to define and export this generic method -- otherwise, -\code{\link{set_swYears<-}} doesn't work. } diff --git a/man/swInputData-class.Rd b/man/swInputData-class.Rd index 7e597c47..3864253e 100644 --- a/man/swInputData-class.Rd +++ b/man/swInputData-class.Rd @@ -89,6 +89,7 @@ \alias{swMarkov_Prob,swInputData-method} \alias{swMarkov_Conv,swInputData-method} \alias{set_Markov<-,swInputData-method} +\alias{set_swMarkov<-,swInputData-method} \alias{swMarkov_Prob<-,swInputData-method} \alias{swMarkov_Conv<-,swInputData-method} \alias{get_WeatherHistory,swInputData-method} @@ -382,6 +383,8 @@ swInputData(...) \S4method{set_Markov}{swInputData}(object) <- value +\S4method{set_swMarkov}{swInputData}(object) <- value + \S4method{swMarkov_Prob}{swInputData}(object) <- value \S4method{swMarkov_Conv}{swInputData}(object) <- value diff --git a/man/swMarkov-class.Rd b/man/swMarkov-class.Rd index 7ad10f52..c89d70c9 100644 --- a/man/swMarkov-class.Rd +++ b/man/swMarkov-class.Rd @@ -8,6 +8,7 @@ \alias{swMarkov_Prob,swMarkov-method} \alias{swMarkov_Conv,swMarkov-method} \alias{set_Markov<-,swMarkov-method} +\alias{set_swMarkov<-,swMarkov-method} \alias{swMarkov_Prob<-,swMarkov-method} \alias{swMarkov_Conv<-,swMarkov-method} \alias{swReadLines,swMarkov,character-method} @@ -23,6 +24,8 @@ swMarkov(...) \S4method{set_Markov}{swMarkov}(object) <- value +\S4method{set_swMarkov}{swMarkov}(object) <- value + \S4method{swMarkov_Prob}{swMarkov}(object) <- value \S4method{swMarkov_Conv}{swMarkov}(object) <- value diff --git a/man/swOUT_TimeStepsForEveryKey.Rd b/man/swOUT_TimeStepsForEveryKey.Rd index 5181baf6..6a1455eb 100644 --- a/man/swOUT_TimeStepsForEveryKey.Rd +++ b/man/swOUT_TimeStepsForEveryKey.Rd @@ -2,14 +2,16 @@ % Please edit documentation in R/A_swGenericMethods.R \name{swOUT_TimeStepsForEveryKey} \alias{swOUT_TimeStepsForEveryKey} -\title{\code{swOUT_TimeStepsForEveryKey} -Need to define and export this generic method -- otherwise, -\code{\link{swOUT_TimeStepsForEveryKey<-}} doesn't work.} +\title{\code{swOUT_TimeStepsForEveryKey}} \usage{ swOUT_TimeStepsForEveryKey(object, value) } +\arguments{ +\item{object}{An object of class \code{\linkS4class{swOUT}} or +\code{\linkS4class{swInputData}}.} + +\item{value}{A value to assign to a specific slot of the \code{object}.} +} \description{ \code{swOUT_TimeStepsForEveryKey} -Need to define and export this generic method -- otherwise, -\code{\link{swOUT_TimeStepsForEveryKey<-}} doesn't work. } diff --git a/man/sw_exec.Rd b/man/sw_exec.Rd index c204936a..5ed33262 100644 --- a/man/sw_exec.Rd +++ b/man/sw_exec.Rd @@ -24,13 +24,15 @@ sw_exec( \item{dir}{a character vector that represents the path to the input data. Use with \code{files.in}} -\item{files.in}{a character vector that represents the partial path of the -\var{files.in} file} +\item{files.in}{A character string. The file name (and path relative to +\code{dir}) of the \var{files} input file that contains information +about the remaining input files.} \item{echo}{logical. This option will echo the inputs to the \var{logfile}. Helpful for debugging.} -\item{quiet}{logical. Quiet mode doesn't print messages to the \var{logfile}.} +\item{quiet}{logical. Quiet mode hides any \pkg{SOILWAT2} messages, +see \code{\link{sw_verbosity}}.} } \value{ An object of class \code{\linkS4class{swOutput}}. diff --git a/man/sw_inputDataFromFiles.Rd b/man/sw_inputDataFromFiles.Rd index 5d5fef46..f884201c 100644 --- a/man/sw_inputDataFromFiles.Rd +++ b/man/sw_inputDataFromFiles.Rd @@ -7,11 +7,15 @@ sw_inputDataFromFiles(dir = "", files.in = "files.in", quiet = FALSE) } \arguments{ -\item{dir}{A character string. The path to the simulation project directory.} +\item{dir}{a character vector that represents the path to the input data. Use +with \code{files.in}} \item{files.in}{A character string. The file name (and path relative to \code{dir}) of the \var{files} input file that contains information about the remaining input files.} + +\item{quiet}{logical. Quiet mode hides any \pkg{SOILWAT2} messages, +see \code{\link{sw_verbosity}}.} } \value{ An object of class \code{\linkS4class{swInputData}}. diff --git a/man/sw_outputData.Rd b/man/sw_outputData.Rd index 2f23d52d..27d0486a 100644 --- a/man/sw_outputData.Rd +++ b/man/sw_outputData.Rd @@ -7,7 +7,9 @@ sw_outputData(inputData) } \arguments{ -\item{inputData}{An object of class \code{\linkS4class{swInputData}}.} +\item{inputData}{an object of the \var{S4} class +\code{\linkS4class{swInputData}} which is generated from +\code{\link{sw_inputData}} or \code{\link{sw_inputDataFromFiles}}.} } \value{ An object of class \code{\linkS4class{swOutput}}. diff --git a/man/sw_verbosity.Rd b/man/sw_verbosity.Rd index 0669e4ed..4d54c2aa 100644 --- a/man/sw_verbosity.Rd +++ b/man/sw_verbosity.Rd @@ -7,7 +7,8 @@ sw_verbosity(verbose = TRUE) } \arguments{ -\item{quiet}{A logical value.} +\item{verbose}{A logical value. +Verbose mode prints any \pkg{SOILWAT2} messages.} } \value{ The previous logical value. From 77504fac843f48c4e465d29a343dbc5c71f1b708 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 19:20:15 -0500 Subject: [PATCH 038/238] Fix `sw_out_flags()` - `sw_out_flags()` now returns (again) a correctly named vector -- as prior to commit 1b344d3807b046b707eab8b7c11e02d25a3bedd1 (Feb 23, 2022) - remove "swof" from "rSW2_glovars" since unused --- R/L_swOutput.R | 9 ++++++++- R/zzz.R | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/R/L_swOutput.R b/R/L_swOutput.R index 0e446a72..f3a99d50 100644 --- a/R/L_swOutput.R +++ b/R/L_swOutput.R @@ -28,7 +28,7 @@ #' @export sw_out_flags <- function() { tmp <- rSW2_glovars[["kSOILWAT2"]][["OutKeys"]] - c( + res <- c( sw_aet = tmp["SW_AET"], sw_deepdrain = tmp["SW_DEEPSWC"], sw_estabs = tmp["SW_ESTAB"], @@ -56,8 +56,15 @@ sw_out_flags <- function() { sw_veg = tmp["SW_BIOMASS"], sw_wetdays = tmp["SW_WETDAY"] ) + + # Fix names + tmp <- sapply(strsplit(names(res), split = ".", fixed = TRUE), `[`, j = 1) + names(res) <- tmp + + res } + ###################Generic Class to Hold One Output KEY######################## #' Class \code{"swOutput_KEY"} #' diff --git a/R/zzz.R b/R/zzz.R index 08470657..6cdf73dc 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -36,7 +36,6 @@ # 'rSW2_glovars' is defined in rSOILWAT2-package.R # Variables for interaction with SOILWAT2 - assign("swof", sw_out_flags(), envir = rSW2_glovars) assign("kSOILWAT2", .Call(C_sw_consts), envir = rSW2_glovars) # Variables for weather database functionality From b75d7e1d556f2b4507b1ef12a104694137d72945 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 19:57:11 -0500 Subject: [PATCH 039/238] Account that some PDFs require live internet - `pdf_Rosetta3_for_vanGenuchten1980()` requires live internet to connect to Rosetta3 and obtain parameters -> document -> catch errors in unit tests if no internet available --- R/sw_Pedotransfer_Functions.R | 13 ++++++++++++- man/pdf_Rosetta3_for_vanGenuchten1980.Rd | 6 ++++++ man/pdf_estimate.Rd | 4 ++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 3466508a..ee4c3589 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -400,6 +400,10 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' The arguments selecting `SWRC` (`swrc_name`) and `PDF` (`pdf_name`) #' are recycled for multiple soil layers. #' +#' @section Notes: +#' Some `PDFs` require a live internet connection to be able to obtain +#' `SWRC` parameter estimates. +#' #' @inherit SWRCs references #' #' @return `swrcp`, i.e,. @@ -569,9 +573,16 @@ rSW2_SWRC_PDF_estimate_parameters <- function( #' [pdf_estimate()] is the function that should be directly called; this here #' is an internal helper function. #' +#' @section Notes: +#' This function requires a live internet connection to be able +#' to obtain parameter estimates from `Rosetta3`. +#' #' @md pdf_Rosetta3_for_vanGenuchten1980 <- function(sand, clay) { - stopifnot(requireNamespace("soilDB")) + stopifnot( + requireNamespace("soilDB"), + requireNamespace("curl") && curl::has_internet() + ) tmp <- soilDB::ROSETTA( 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), diff --git a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd index c0d3320c..368e7d47 100644 --- a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd @@ -39,6 +39,12 @@ Zhang et al. 2017 is an internal helper function. } +\section{Notes}{ + +This function requires a live internet connection to be able +to obtain parameter estimates from \code{Rosetta3}. +} + \references{ Mualem, Y. 1976. A new model for predicting the hydraulic conductivity of unsaturated porous media. diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index 0ab9f438..e11f4d11 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -54,6 +54,10 @@ the same length, i.e., represent one soil (length 1) or multiple soil (layers) (length > 1). The arguments selecting \code{SWRC} (\code{swrc_name}) and \code{PDF} (\code{pdf_name}) are recycled for multiple soil layers. + + +Some \code{PDFs} require a live internet connection to be able to obtain +\code{SWRC} parameter estimates. } \examples{ From 70a7269193bafd01a7211d0fa16e46c79026e11d Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 19:59:16 -0500 Subject: [PATCH 040/238] Update water balance unit tests - move loop over SWRC/PDF inside loop of test examples - turn off summation over SWP -- because summed VWC may be larger than theta_sat (and SWRC may fail) - catch if `pdf_estimate()` fails due to no internet --- tests/testthat/test_WaterBalance.R | 473 +++++++++++++++-------------- 1 file changed, 244 insertions(+), 229 deletions(-) diff --git a/tests/testthat/test_WaterBalance.R b/tests/testthat/test_WaterBalance.R index 4cf81186..85bed9cd 100644 --- a/tests/testthat/test_WaterBalance.R +++ b/tests/testthat/test_WaterBalance.R @@ -44,23 +44,28 @@ aggregate_for_each_timestep <- function(x, dyt) { } -#--- Loop over SWRC-PDF combinations ------ -for (isp in seq_along(list_swrcs_pdfs)) { +#--- Loop over test cases ------ +for (it in tests) { + #---INPUTS + sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) + sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) - #--- Loop over test cases ------ - for (it in tests) { - #---INPUTS - sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) - sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) + + # Request summed values for every time step + # but turn off SWP (because summed VWC may be larger than theta_sat) + deactivate_swOUT_OutKey(sw_input) <- rSOILWAT2::sw_out_flags()["sw_swp"] + + swOUT_TimeStepsForEveryKey(sw_input) <- seq_len(SW_OUTNPERIODS) - 1 + slot(slot(sw_input, "output"), "sumtype")[] <- 1L + + + #--- Loop over SWRC-PDF combinations ------ + for (isp in seq_along(list_swrcs_pdfs)) { # Set SWRC/PDF rSOILWAT2::swSite_SWRCflags(sw_input) <- list_swrcs_pdfs[[isp]] - # Request summed values for every time step - swOUT_TimeStepsForEveryKey(sw_input) <- seq_len(SW_OUTNPERIODS) - 1 - slot(slot(sw_input, "output"), "sumtype")[] <- 1L - #---TESTS info1 <- paste( "test-data:", it, "/", @@ -68,237 +73,247 @@ for (isp in seq_along(list_swrcs_pdfs)) { ) test_that("Water balance & cycle", { - # Run SOILWAT - x <- sw_exec( - inputData = sw_input, - weatherList = sw_weather, - echo = FALSE, - quiet = TRUE - ) - expect_s4_class(x, "swOutput") - - - # Get state change values which are directly re-aggregated from daily data - N <- slot(x, "dy_nrow") - Ns <- seq_len(N) - idelta1 <- Ns[-N] - idelta2 <- Ns[-1] - - temp <- slot(slot(x, "SURFACEWATER"), "Day") - surfaceWater <- temp[, "surfaceWater_cm"] - - dates <- data.frame(temp[, c("Year", "Day")]) - dates[, "DOY"] <- dates[, "Day"] - temp <- as.POSIXlt(seq.Date( - from = as.Date(ISOdate(dates[1, "Year"], 1, 1)), - to = as.Date(ISOdate(dates[nrow(dates), "Year"], 12, 31)), - by = "day" - )) - dates[, "Month"] <- 1 + temp$mon - dates[, "Day"] <- temp$mday - # SOILWAT2 'weeks' are not calendar weeks as in - # \code{as.integer(format(temp, "%W"))} - # with \code{%U = US weeks}; \coe{%V = ISO 8601}; \code{%W = UK weeks} - # instead SOILWAT2 numbers consecutive sets of 7-day periods - dates[, "Week"] <- 1 + (dates[, "DOY"] - 1) %/% 7 - dyt <- list( - d = dates, - ids1 = idelta1, - ids2 = idelta2, - # not first year: - nfy = which(temp <- dates[, "Year"] != dates[1, "Year"]), - # not first month of first year: - nfm = which(temp | dates[, "Month"] != dates[1, "Month"]), - # not first week of first year: - nfw = which(temp | dates[, "Week"] != dates[1, "Week"]) + # Run SOILWAT (but some PDFs require live internet!) + x <- try( + sw_exec( + inputData = sw_input, + weatherList = sw_weather, + echo = FALSE, + quiet = TRUE + ), + silent = TRUE ) - # change in ponded (surface) water - list_delta_surfaceWater <- aggregate_for_each_timestep( - x = surfaceWater[dyt[["ids2"]]] - surfaceWater[dyt[["ids1"]]], - dyt = dyt - ) - - # change in soil moisture - temp <- slot(slot(x, "SWCBULK"), "Day") - swcj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - n_soillayers <- ncol(swcj) - - # today - yesterday: - dy_delta_swcj <- swcj[dyt[["ids2"]], ] - swcj[dyt[["ids1"]], ] - list_delta_swcj <- aggregate_for_each_timestep(x = dy_delta_swcj, dyt) - list_delta_swc_total <- aggregate_for_each_timestep( - x = apply(dy_delta_swcj, 1, sum), - dyt = dyt - ) - - - # Loop through time steps - for (pd in seq_len(SW_OUTNPERIODS)) { - info2 <- paste(info1, "/ time step:", OutPeriods[pd]) - - # Get values - ets <- slot(slot(x, "AET"), OutPeriods[pd]) - aet <- ets[, "evapotr_cm"] - pet <- slot(slot(x, "PET"), OutPeriods[pd])[, "pet_cm"] - - temp <- seq_along(aet) - idelta1 <- temp[-length(temp)] - idelta2 <- temp[-1] - - # Get evaporation values - temp <- slot(slot(x, "EVAPSURFACE"), OutPeriods[pd]) - Etotalsurf <- temp[, "evap_total"] - Elitter <- temp[, "evap_litter"] - Eponded <- temp[, "evap_surfaceWater"] - Evegi <- temp[, paste0("evap_", veg_types), drop = FALSE] - Eveg <- apply(Evegi, 1, sum) - Etotalint <- Eveg + Elitter - - temp <- slot(slot(x, "EVAPSOIL"), OutPeriods[pd]) - Esoilj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - Esoil <- apply(Esoilj, 1, sum) - - temp <- matrix(0, nrow = nrow(Esoilj), ncol = n_soillayers) - temp[, seq_len(ncol(Esoilj))] <- Esoilj - Esoilj <- temp - - Esnow <- slot(slot(x, "PRECIP"), OutPeriods[pd])[, "snowloss"] - Etotal <- Etotalsurf + Esoil + Esnow - - # Get transpiration values - temp <- slot(slot(x, "TRANSP"), OutPeriods[pd]) - ids <- grep("transp_total_Lyr", colnames(temp)) - Ttotalj <- temp[, ids, drop = FALSE] - Ttotal <- apply(Ttotalj, 1, sum) - Tvegij <- lapply( - veg_types, - function(v) { - ids <- grep(paste0("transp_", v, "_Lyr"), colnames(temp)) - temp[, ids, drop = FALSE] - } - ) - names(Tvegij) <- veg_types - - - #--- Check that calculated transpiration and evaporation matches - # newly available ones from "AET" slot - expect_equal(Ttotal, ets[, "tran_cm"], tolerance = tol) - expect_equal(Esoil, ets[, "esoil_cm"], tolerance = tol) - expect_equal(Esnow, ets[, "esnow_cm"], tolerance = tol) - expect_equal(Eveg, ets[, "ecnw_cm"], tolerance = tol) - expect_equal(Eponded + Elitter, ets[, "esurf_cm"], tolerance = tol) - - tmp_evars2 <- c("esoil_cm", "ecnw_cm", "esurf_cm", "esnow_cm") - Etotal2 <- apply(ets[, tmp_evars2], 1, sum) - expect_equal(Etotal, Etotal2, tolerance = tol) - expect_equal(aet, ets[, "tran_cm"] + Etotal2, tolerance = tol) - - - #--- Get other water flux values - infiltration <- slot( - slot(x, "SOILINFILT"), - OutPeriods[pd] - )[, "soil_inf"] - deepDrainage <- slot( - slot(x, "DEEPSWC"), - OutPeriods[pd] - )[, "lowLayerDrain_cm"] - - temp <- slot(slot(x, "LYRDRAIN"), OutPeriods[pd]) - temp <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] - percolationIn <- cbind(infiltration, temp) - percolationOut <- cbind(temp, deepDrainage) - - temp <- slot(slot(x, "HYDRED"), OutPeriods[pd]) - ctemp <- grep("total_Lyr", colnames(temp)) - hydraulicRedistribution <- temp[, ctemp, drop = FALSE] - - temp <- slot(slot(x, "INTERCEPTION"), OutPeriods[pd]) - intercepted <- temp[, "int_total"] - - temp <- slot(slot(x, "RUNOFF"), OutPeriods[pd]) - ctemp <- grep("runoff", colnames(temp)) - runoff <- apply(temp[, ctemp, drop = FALSE], 1, sum) - ctemp <- grep("runon", colnames(temp)) - runon <- apply(temp[, ctemp, drop = FALSE], 1, sum) - - temp <- slot(slot(x, "PRECIP"), OutPeriods[pd]) - snowmelt <- temp[, "snowmelt"] - rain <- temp[, "rain"] - - arriving_water <- rain + snowmelt + runon - - - # Get state change values - delta_surfaceWater <- list_delta_surfaceWater[[OutPeriods[pd]]] - delta_swcj <- list_delta_swcj[[OutPeriods[pd]]] - delta_swc_total <- list_delta_swc_total[[OutPeriods[pd]]] - - - #--- Water balance checks - # (1) \code{AET <= PET} - expect_true(all(aet < pet | abs(pet - aet) < tol), info = info2) - - # (2) \code{AET == E(total) + T(total)} - expect_equal(aet, Etotal + Ttotal, info = info2) - - # (3) \code{T(total) = sum of T(veg-type i from soil layer j)} - expect_equal( - Ttotal, - apply( - sapply(Tvegij, function(x) apply(x, 1, sum)), - MARGIN = 1, - FUN = sum - ), - info = info2 + if (inherits(x, "try-error")) { + succeed(paste(info1, "requires live internet, skipping for now!")) + + } else { + + expect_s4_class(x, "swOutput") + + + # State change values which are directly re-aggregated from daily data + N <- slot(x, "dy_nrow") + Ns <- seq_len(N) + idelta1 <- Ns[-N] + idelta2 <- Ns[-1] + + temp <- slot(slot(x, "SURFACEWATER"), "Day") + surfaceWater <- temp[, "surfaceWater_cm"] + + dates <- data.frame(temp[, c("Year", "Day")]) + dates[, "DOY"] <- dates[, "Day"] + temp <- as.POSIXlt(seq.Date( + from = as.Date(ISOdate(dates[1, "Year"], 1, 1)), + to = as.Date(ISOdate(dates[nrow(dates), "Year"], 12, 31)), + by = "day" + )) + dates[, "Month"] <- 1 + temp$mon + dates[, "Day"] <- temp$mday + # SOILWAT2 'weeks' are not calendar weeks as in + # \code{as.integer(format(temp, "%W"))} + # with \code{%U = US weeks}; \coe{%V = ISO 8601}; \code{%W = UK weeks} + # instead SOILWAT2 numbers consecutive sets of 7-day periods + dates[, "Week"] <- 1 + (dates[, "DOY"] - 1) %/% 7 + dyt <- list( + d = dates, + ids1 = idelta1, + ids2 = idelta2, + # not first year: + nfy = which(temp <- dates[, "Year"] != dates[1, "Year"]), + # not first month of first year: + nfm = which(temp | dates[, "Month"] != dates[1, "Month"]), + # not first week of first year: + nfw = which(temp | dates[, "Week"] != dates[1, "Week"]) ) - # (4) \code{E(total) = E(total bare-soil) + E(ponded water) + - # + E(total litter-intercepted) + E(total veg-intercepted) + - # + E(snow sublimation)} - expect_equal( - Etotal, Esoil + Eponded + Eveg + Elitter + Esnow, - info = info2 + # change in ponded (surface) water + list_delta_surfaceWater <- aggregate_for_each_timestep( + x = surfaceWater[dyt[["ids2"]]] - surfaceWater[dyt[["ids1"]]], + dyt = dyt ) - # (5) \code{E(total surface) = E(ponded water) + - # + E(total litter-intercepted) + E(total veg-intercepted)} - expect_equal( - Etotalsurf, Eponded + Eveg + Elitter, - info = info2 + # change in soil moisture + temp <- slot(slot(x, "SWCBULK"), "Day") + swcj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + n_soillayers <- ncol(swcj) + + # today - yesterday: + dy_delta_swcj <- swcj[dyt[["ids2"]], ] - swcj[dyt[["ids1"]], ] + list_delta_swcj <- aggregate_for_each_timestep(x = dy_delta_swcj, dyt) + list_delta_swc_total <- aggregate_for_each_timestep( + x = apply(dy_delta_swcj, 1, sum), + dyt = dyt ) - #--- Water cycling checks - # (6) \code{infiltration = [rain + snowmelt + runon] - - # (runoff + intercepted + delta_surfaceWater + Eponded)} - expect_equal( - infiltration[idelta2], arriving_water[idelta2] - - (runoff[idelta2] + intercepted[idelta2] + delta_surfaceWater + - Eponded[idelta2]), - info = info2 - ) + # Loop through time steps + for (pd in seq_len(SW_OUTNPERIODS)) { + info2 <- paste(info1, "/ time step:", OutPeriods[pd]) + + # Get values + ets <- slot(slot(x, "AET"), OutPeriods[pd]) + aet <- ets[, "evapotr_cm"] + pet <- slot(slot(x, "PET"), OutPeriods[pd])[, "pet_cm"] + + temp <- seq_along(aet) + idelta1 <- temp[-length(temp)] + idelta2 <- temp[-1] + + # Get evaporation values + temp <- slot(slot(x, "EVAPSURFACE"), OutPeriods[pd]) + Etotalsurf <- temp[, "evap_total"] + Elitter <- temp[, "evap_litter"] + Eponded <- temp[, "evap_surfaceWater"] + Evegi <- temp[, paste0("evap_", veg_types), drop = FALSE] + Eveg <- apply(Evegi, 1, sum) + Etotalint <- Eveg + Elitter + + temp <- slot(slot(x, "EVAPSOIL"), OutPeriods[pd]) + Esoilj <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + Esoil <- apply(Esoilj, 1, sum) + + temp <- matrix(0, nrow = nrow(Esoilj), ncol = n_soillayers) + temp[, seq_len(ncol(Esoilj))] <- Esoilj + Esoilj <- temp + + Esnow <- slot(slot(x, "PRECIP"), OutPeriods[pd])[, "snowloss"] + Etotal <- Etotalsurf + Esoil + Esnow + + # Get transpiration values + temp <- slot(slot(x, "TRANSP"), OutPeriods[pd]) + ids <- grep("transp_total_Lyr", colnames(temp)) + Ttotalj <- temp[, ids, drop = FALSE] + Ttotal <- apply(Ttotalj, 1, sum) + Tvegij <- lapply( + veg_types, + function(v) { + ids <- grep(paste0("transp_", v, "_Lyr"), colnames(temp)) + temp[, ids, drop = FALSE] + } + ) + names(Tvegij) <- veg_types - # (7) \code{E(soil) + Ttotal = - # infiltration - (deepDrainage + delta(swc))} - expect_equal( - Esoil[idelta2] + Ttotal[idelta2], - infiltration[idelta2] - (deepDrainage[idelta2] + delta_swc_total), - info = info2 - ) - # (8) for every soil layer j: \code{delta(swc) = - # = infiltration/percolationIn + hydraulicRedistribution - - # (percolationOut/deepDrainage + transpiration + evaporation)} - for (j in seq_len(n_soillayers)) { + #--- Check that calculated transpiration and evaporation matches + # newly available ones from "AET" slot + expect_equal(Ttotal, ets[, "tran_cm"], tolerance = tol) + expect_equal(Esoil, ets[, "esoil_cm"], tolerance = tol) + expect_equal(Esnow, ets[, "esnow_cm"], tolerance = tol) + expect_equal(Eveg, ets[, "ecnw_cm"], tolerance = tol) + expect_equal(Eponded + Elitter, ets[, "esurf_cm"], tolerance = tol) + + tmp_evars2 <- c("esoil_cm", "ecnw_cm", "esurf_cm", "esnow_cm") + Etotal2 <- apply(ets[, tmp_evars2], 1, sum) + expect_equal(Etotal, Etotal2, tolerance = tol) + expect_equal(aet, ets[, "tran_cm"] + Etotal2, tolerance = tol) + + + #--- Get other water flux values + infiltration <- slot( + slot(x, "SOILINFILT"), + OutPeriods[pd] + )[, "soil_inf"] + deepDrainage <- slot( + slot(x, "DEEPSWC"), + OutPeriods[pd] + )[, "lowLayerDrain_cm"] + + temp <- slot(slot(x, "LYRDRAIN"), OutPeriods[pd]) + temp <- temp[, grep("Lyr", colnames(temp)), drop = FALSE] + percolationIn <- cbind(infiltration, temp) + percolationOut <- cbind(temp, deepDrainage) + + temp <- slot(slot(x, "HYDRED"), OutPeriods[pd]) + ctemp <- grep("total_Lyr", colnames(temp)) + hydraulicRedistribution <- temp[, ctemp, drop = FALSE] + + temp <- slot(slot(x, "INTERCEPTION"), OutPeriods[pd]) + intercepted <- temp[, "int_total"] + + temp <- slot(slot(x, "RUNOFF"), OutPeriods[pd]) + ctemp <- grep("runoff", colnames(temp)) + runoff <- apply(temp[, ctemp, drop = FALSE], 1, sum) + ctemp <- grep("runon", colnames(temp)) + runon <- apply(temp[, ctemp, drop = FALSE], 1, sum) + + temp <- slot(slot(x, "PRECIP"), OutPeriods[pd]) + snowmelt <- temp[, "snowmelt"] + rain <- temp[, "rain"] + + arriving_water <- rain + snowmelt + runon + + + # Get state change values + delta_surfaceWater <- list_delta_surfaceWater[[OutPeriods[pd]]] + delta_swcj <- list_delta_swcj[[OutPeriods[pd]]] + delta_swc_total <- list_delta_swc_total[[OutPeriods[pd]]] + + + #--- Water balance checks + # (1) \code{AET <= PET} + expect_true(all(aet < pet | abs(pet - aet) < tol), info = info2) + + # (2) \code{AET == E(total) + T(total)} + expect_equal(aet, Etotal + Ttotal, info = info2) + + # (3) \code{T(total) = sum of T(veg-type i from soil layer j)} + expect_equal( + Ttotal, + apply( + sapply(Tvegij, function(x) apply(x, 1, sum)), + MARGIN = 1, + FUN = sum + ), + info = info2 + ) + + # (4) \code{E(total) = E(total bare-soil) + E(ponded water) + + # + E(total litter-intercepted) + E(total veg-intercepted) + + # + E(snow sublimation)} expect_equal( - delta_swcj[, j], - percolationIn[idelta2, j] + hydraulicRedistribution[idelta2, j] - - (percolationOut[idelta2, j] + Ttotalj[idelta2, j] + - Esoilj[idelta2, j]), - info = paste(info2, "/ soil layer:", j) + Etotal, Esoil + Eponded + Eveg + Elitter + Esnow, + info = info2 ) + + # (5) \code{E(total surface) = E(ponded water) + + # + E(total litter-intercepted) + E(total veg-intercepted)} + expect_equal( + Etotalsurf, Eponded + Eveg + Elitter, + info = info2 + ) + + + #--- Water cycling checks + # (6) \code{infiltration = [rain + snowmelt + runon] - + # (runoff + intercepted + delta_surfaceWater + Eponded)} + expect_equal( + infiltration[idelta2], arriving_water[idelta2] - + (runoff[idelta2] + intercepted[idelta2] + delta_surfaceWater + + Eponded[idelta2]), + info = info2 + ) + + # (7) \code{E(soil) + Ttotal = + # infiltration - (deepDrainage + delta(swc))} + expect_equal( + Esoil[idelta2] + Ttotal[idelta2], + infiltration[idelta2] - (deepDrainage[idelta2] + delta_swc_total), + info = info2 + ) + + # (8) for every soil layer j: \code{delta(swc) = + # = infiltration/percolationIn + hydraulicRedistribution - + # (percolationOut/deepDrainage + transpiration + evaporation)} + for (j in seq_len(n_soillayers)) { + expect_equal( + delta_swcj[, j], + percolationIn[idelta2, j] + hydraulicRedistribution[idelta2, j] - + (percolationOut[idelta2, j] + Ttotalj[idelta2, j] + + Esoilj[idelta2, j]), + info = paste(info2, "/ soil layer:", j) + ) + } } } }) From 6ca41cb3f3ca201d038098539bf25c43f9c90c6e Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 10 Mar 2022 20:01:42 -0500 Subject: [PATCH 041/238] More complete SWRC/PDF unit tests - new unit tests that loop over all SWRC/PDF combinations including "NoPDF" - catch if `pdf_estimate()` fails due to no internet - update expected SWP values for Campbell1974/Cosby1984AndOthers unit tests --- tests/test_data/swp_values.rds | Bin 2005 -> 1996 bytes tests/testthat/test_pedotransferfunctions.R | 79 ++++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/tests/test_data/swp_values.rds b/tests/test_data/swp_values.rds index ffe76c498933c0237406dcd9b2ca5f1878f441b0..c492e8940e0f0f792b542f2781b029887ca49e43 100644 GIT binary patch literal 1996 zcmV;-2Q&B|iwFP!000001KpL2JJe|#$A1_dFsp-9bU>_29H%JBu_A*s zVvv||N+p!nV3kR7N`y6IO7}BEp@!PsFo|S4I3*)GNO)DhZMXds-sif0*K;4f&-44- z&vjqd?JR>~m=s2kki?{0y8vDAyzPjw9jnCq5{^oS?vGAt* z@P7L9dJk>kiZ7QRjD=#3?6hRwMo8Gd>r|{U8KP(l>^dX@fvGm#q<(1+_%WP6FgF%} zn{V8^gD(moDB9j3b6ggj7Q8Bvp1lQj+Zv3`nxzOe!8PmWH+A9MB@hv)B+nf@1YWEv z_$0;CUQdx>KyqQV2_1nj@&`*P??#;a5yWbcG@9MpfO_xE_LzPW zB#oMT%BmK^k$TIs;lfgIA0UY<1SJsl>20rJjRUw|C|JC*kOK!Wp@Df@Ci0|2J+Y|P zK^si&49Q>agAZTISqP1)g>K5$k-&RF$?sQE1A$w5jy^FT*w*6WzFG2+vYuvTGBg1N zb}MRqyrO~Oex12ep9S%W&Ay}bbhN6L96@=q7$&)o1FzofhWf;*j45>y&fN=)z6NdA zw*Nrk{rBFh8p0rf7w69>1w*j$iG^3TH3DmAh365!PN2H?hD{kv0{wiAVQxS*0_!@r zREq}03~853J(G+KphJoyK8?S38@x;xZ+6_i6U043Cyg#yL4BVM*)*FBWwi9?XX^o4 zYQ0fQ&NN)u!Kl_c)DC%-Yh5={;*gH7LQQa5G?JTdA{9_ZfDU!4s;y89csr)M2Ol}( z+z&xu39Vk5cj5B=#0!GlUm*3J8~tNlkoCPhmlGpaC!LiI+ox0-}Ju8PCCpCSo`+r#Hq6hlXHYbNz53GOh=hOVwY z0)OVFi&}^mfm30b?ZtitwU1~K)(W=Bu;JF)WzY7ZIqI2xS=wVD;Lvyab6OxhSmxkx zZx0+vi`P=#b`9qqfY7a69p2%3aAit62~MiOX%k(S^A(doY1g-M4BresrS8VHiWqwL z{7*xvb8}Idwq}ObNCL7=JDzgEMjc6>T(Q@;HyVcY12P7E7vbDRP`66{OuXnBTzTBd zIhoIgmItpr8O}M779XdbWx|5YypRH3WFU&s&@X((HALH+^+t_jOyIqjUVev07Sz#6 zBMJQLz+xqw7aq5T2fwPgidRM9-2D)y>${TwE(&axTUd=!Rc97Lxakb z`0fhPl5E-_UuOPq$%pgeP*#mkmify$h-4bfxHO@QR_D`Y>BCQv!AB9TX?#82-x1Ir zbJ&FWVLl?fi0f)~Rs!U|=4{?n6f}(cvADK9=+bGYuZ$j{NPtJ2&REm5~EJF$ZZ z&u$3@6olHqJqIq=YCpn=lzqS1*gfDYlw>#EuEV)+fM{))c1*Y|u*5v_KG#Gj>G6zN z*ki$G+}T|6%biL7x)k2jxqJsyt1U~8KN^m_cK$TaNP~&2yKmcUkxxUrb<8gB9koPD z8p7VCH?weVW28|MHPMrH1IPY$MxYy7g z0vrev%FD%k=Dh_kvUDQ(Y9p`jI0~mx-Vtnh$0!$>CEq->Y=b6JEp6QL;5HyV)h$Ua zqKD8QGMBM$yEfFjmw#Gg5Q6tf78D*=&uqA{7%IADZRB;$(SROFjikRFT|SqJx)My0 zdDSrrquUcEIYJMfh6*%9ZgAS~>Vk-7#l+qk1Ng1naF<^{9g5bh-Dg;*4PrH`SL%Zo zaqbx4toM(sbSf7})Yl63%zn-PZ~k!WsF?*{);#LQ-Qqn*h ztAi11VOzMvss>~>{yUdIAtL#4jix=!E@Z!V(l5(K0|raO*dzl1&dtIwg5*rUNMHnP z?&rbn?Mt26h+k$nhRM!+l3(}lWOHU@0UlJJqn}3ruATQq_cc#&^a$|AZ5eW)2bHdJ z^dFJWS-Oh3 eMM&Z?$pc=0y-HAM(Em$?Q~v|CGt_CJ2><{sdfu-9 literal 2005 zcmV;`2P*g0(tfvNECzN~`+z?6!Zx?>x^rpU?CDywCT% z&Urr1^L3NL;cyZ-Jbre?e@++8F0X+lQ^OqUkAgJ+^J{pw|Ae3|2Ye!l3P6syu{_Kb z2iElop-OZ&*q1}m5ZAhbZRVpi(xt~>?rz^TxGn^C)n7eN3Rn)NhF&&J20mcL6d#Lh z?}T@sz6`h@x$MP?gQ-x-mi{DBVhbm{_MA#G+X=BW1*hIQ;gG2Dsa@-W7X&ff-Y5Q8 z4xWL@Zx0SsLTLQ1-T9Mp;G*zX)!g~k;Ob~RF>jsh_W1KI0*dm z>deAb>%nO_Z+dL31p;MXIj9usgEOmdk4pSPu%6bLXn#NguLE_b`71;~G`aH>N1F!w zO^KgK2ZU(VME8f=0xOJr23p-N$*2pxp{VqhJm*0VWGgApW_f$won)wQd;%_D= zag>3&tw)eurwR#=x0y)|XMnGUZ?3t5Gz6rj&|b|rz)OiG^#nQ}1ksCZ@cszn?uI07 zqIQRO7f|oK-jOh532Eb&zS8PtaHPfNOr)R+yk8Q<^DyM{jo+aq zbtZR4s~6*b4h&J7p2vM#sJQpeU$gBvoZu!?c*GD0GmBetaeFJ|?X2-V64VP+@4<+f z%{ZW+Z7?Ygu0~+j?3rcFM~UG*GFcgk$QXL@Z1EZFy@l|CDYkOnVGrW|k&~tuwnK}E zJzctNJdN1`HzxXG}dh1D_>MMrYRPUld|K*UuwUD>- zt%f{>8d{SKnt|;MFo0d z;IrvFDeO*QhDjY99qff8*(o|I+bb~cr*M25X9M@}b?``>>%u?z1Edr5_nxhJ4dfm} zTjxk?2&ncpYg{^s-adb7g3rOBt9om4b;gpAV|GmDIg&DxIJwe2a4-%=41;rr0~Ijt z3TW1p%SaJEgo_U!u}_vY!rjhSz6`f)$WBStDyTXHeFwT>#B=;@An^70AmwaaIuH0G+?8d5AS*Fz#oNU=&fjN0bcgkvA^Fcby&{qvNPgVyrUZzx?o7!{475!K<#8N`(1moDh+lmBQINCK z<628Eq@?9|HO^iJo;C4bDhk#CCkOUkX_A03{H`I3iFV*ARu#6l@-c1zp>Bj;LZlSr ziMbB@J<_47-#1}NzZH*h)2iy{n=`!incSJ2G8fdSC+(1OG!FUg+$e9VosR7KT1i{w zGLh>Bi&FP-Q>4@u@s`<e&*c2%sK>BbEBlQln$bqs-MubG`sr4~vyIK|!lVm;c< zxw7<09S%h7&7+5D-B8WrpP$=V1kpl6YPHTNTxW72HgG*8O{`Sa7nOsL`?CEPo4)n; zMR0TN>2f!5g5cef(<&yw|MB1S8}?Ybh=^huNC^exd#1EL1e z&=i&CWTD3=RwK*0V`N63J$z&fe7M@Hpe@?S#mmDL$y!v(4mRk+Z`Vxr1PuklrFFXd zO`6p}tYQ0?)-V&}jsx~4N_4GDDSu8&BY)rgQQl8wqut{cHauy|*z30|m$pw~+#LvSHz$`gYQ&Rt z67*-?OGUNSw30tM2GEvnNnK@g3XENU$hyXDgIX6(*|Ny32u}-ZP&h~dSgst0!*xMs zvo|~cqAv7@%e-N+^C8*wMt4`VF~-g3+fLhi7O7Eq9eSz6UB@eVI$4*9!h;{trPay{ z$`3oCq^3uEN9*Y*Z^`}0-I@qlO#aT1BugQ=N$vK1iBHik_m4pZBsCbWj$jdu8!>Js z4ksxw+b?r)lDLJl5$_*Joei>|)7dHg09{T@s! Date: Fri, 11 Mar 2022 11:35:46 -0500 Subject: [PATCH 042/238] Update version and data - set version number to v6.0.0-9000 to reflect major changes (still under development) - update package and unit test data - start NEWS entry (TODO: complete before release) --- DESCRIPTION | 4 ++-- NEWS.md | 19 +++++++++++++++++++ data/sw_exampleData.rda | Bin 54323 -> 54375 bytes tests/test_data/Ex1_input.rds | Bin 5529 -> 5801 bytes tests/test_data/Ex1_output.rds | Bin 52463 -> 52483 bytes tests/test_data/Ex2_input.rds | Bin 12833 -> 13153 bytes tests/test_data/Ex3_input.rds | Bin 5531 -> 5801 bytes tests/test_data/Ex3_output.rds | Bin 52464 -> 52483 bytes tests/test_data/Ex4_input.rds | Bin 5530 -> 5799 bytes tests/test_data/Ex4_output.rds | Bin 52463 -> 52482 bytes tests/test_data/Ex5_input.rds | Bin 5536 -> 5807 bytes tests/test_data/Ex5_output.rds | Bin 52507 -> 52503 bytes 12 files changed, 21 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 2d638ede..7d3c9499 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: rSOILWAT2 -Version: 5.1.1-9000 +Version: 6.0.0-9000 Title: An Ecohydrological Ecosystem-Scale Water Balance Simulation Model -Description: Access to the C-based SOILWAT2 v6.3.0 and functionality for +Description: Access to the C-based SOILWAT2 v7.0.0 and functionality for SQLite-database of weather data. Authors@R: c( person( diff --git a/NEWS.md b/NEWS.md index bf01636f..25d35f81 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,22 @@ +# rSOILWAT2 v6.0.0-9000 + +## Breaking changes +* `SOILWAT2` updated to v7.0.0 +* This version now handles a variety of soil water retention curves `SWRC` + and pedotransfer functions `PDF`. +* New inputs are required to select a `SWRC` and `PDF` as well as to provide + parameter values of the selected `SWRC` for each soil layer. + Default values are backwards compatible, i.e., + default `SWRC` is "Campbell1974" and default `PDF` is "Cosby1984AndOthers". + If these new inputs are missing in an `rSOILWAT2` "swInputData" object, + then they are automatically set to their default values. +* This version produces nearly identical simulation output + as the previous release under default values. + Small deviations arise due to a fix in the handling of soil moisture values + between field capacity and saturation. + + + # rSOILWAT2 v5.1.1 * This version produces identical simulation output as the previous release. * `check_version()` now checks for the possible presence of diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index ccd07f837f63e7a1d385d7268f2e56d07b3c8003..38342cb57bb4b2ea93ab4e8e90b4077906947a1f 100644 GIT binary patch delta 54021 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

2<-Ux-!hCk~cpU3Y7KRfKtwfMpn& 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 UV-#z~{h($ diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index 769a802faf319587cf00b50b0229406164484b7d..0621be2ba4cf5e4fad5cc1f39f2f0365cad10f44 100644 GIT binary patch literal 5807 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 UP%Sn28-_+VAk?CB0YOLiA7!vyFaQ7m diff --git a/tests/test_data/Ex5_output.rds b/tests/test_data/Ex5_output.rds index 5a6beeaa0e7bd5f8cd80944a92f142df9cb816f9..568249facb59fbd9932e4885ecd1c90fcc0ea8cb 100644 GIT binary patch literal 52503 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

    ? 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�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 IZW>Yn0KxIuJ>u5J`woDkHO9h{#Ao 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 M06xeQiWO1;0C&jHp8x;= From 5e12251f75ea68c5049ab37911745e6485d9a55b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 17 Mar 2022 15:10:03 -0400 Subject: [PATCH 043/238] Improve handling of internet requirements - issue specific error message if PDF requires live internet but fails - capture that error message in unit tests -- only skip if error due to offline status and fail otherwise - see commits b75d7e1d556f2b4507b1ef12a104694137d72945 and 70a7269193bafd01a7211d0fa16e46c79026e11d - also update internet requirements of SWRC/PDF-scripts in "tools/" - update vignette "rSOILWAT2_demo": if no live internet, then no Daymet weather data --> use locally available data (and adjust simulated years accordingly) --- R/Rsw.R | 8 ++-- R/sw_Pedotransfer_Functions.R | 40 +++++++++++-------- man/pdf_Rosetta3_for_vanGenuchten1980.Rd | 4 +- man/pdf_estimate.Rd | 17 ++++---- man/sw_exec.Rd | 8 ++-- man/swrc_conversion.Rd | 10 +++-- tests/testthat/test_WaterBalance.R | 7 +++- tools/test_SWRCs_and_PDFs_Simulations.R | 5 ++- tools/test_SWRCs_and_PDFs_TheoreticalCurves.R | 5 ++- vignettes/rSOILWAT2_demo.Rmd | 9 +++++ 10 files changed, 74 insertions(+), 39 deletions(-) diff --git a/R/Rsw.R b/R/Rsw.R index 495e83e0..4cb20c90 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -219,10 +219,12 @@ sw_verbosity <- function(verbose = TRUE) { #' #' #' ## ------ Simulation with different SWRC ------------ -#' sw_in7 <- sw_in3 -#' swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") +#' if (requireNamespace("curl") && curl::has_internet()) { +#' sw_in7 <- sw_in3 +#' swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") #' -#' sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) +#' sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3) +#' } #' #' ## See help(package = "rSOILWAT2") for a full list of functions #' diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index ee4c3589..3617a46d 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -428,13 +428,16 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' swrc_name = "Campbell1974", #' pdf_name = "Cosby1984" #' ) -#' pdf_estimate( -#' sand = soils[, "sand_frac"], -#' clay = soils[, "clay_frac"], -#' fcoarse = soils[, "gravel_content"], -#' swrc_name = "vanGenuchten1980", -#' pdf_name = "Rosetta3" -#' ) +#' +#' if (requireNamespace("curl") && curl::has_internet()) { +#' pdf_estimate( +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' fcoarse = soils[, "gravel_content"], +#' swrc_name = "vanGenuchten1980", +#' pdf_name = "Rosetta3" +#' ) +#' } #' #' @md #' @export @@ -573,16 +576,15 @@ rSW2_SWRC_PDF_estimate_parameters <- function( #' [pdf_estimate()] is the function that should be directly called; this here #' is an internal helper function. #' -#' @section Notes: -#' This function requires a live internet connection to be able -#' to obtain parameter estimates from `Rosetta3`. +#' @section Notes: A live internet connection is required to access `Rosetta3`. #' #' @md pdf_Rosetta3_for_vanGenuchten1980 <- function(sand, clay) { - stopifnot( - requireNamespace("soilDB"), - requireNamespace("curl") && curl::has_internet() - ) + stopifnot(requireNamespace("soilDB"), requireNamespace("curl")) + + if (!curl::has_internet()) { + stop("`pdf_Rosetta3_for_vanGenuchten1980()` requires live internet.") + } tmp <- soilDB::ROSETTA( 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), @@ -773,14 +775,18 @@ check_swrcp <- function(swrc_name, swrcp) { #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], #' swrc = list(swrc_name = "Campbell1974", pdf_name = "Cosby1984") -#' ), -#' vanGenuchten1980 = swrc_vwc_to_swp( +#' ) +#' ) +#' +#' if (requireNamespace("curl") && curl::has_internet()) { +#' phi[["vanGenuchten1980"]] <- swrc_vwc_to_swp( #' theta, #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], #' swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") #' ) -#' ) +#' } +#' #' if (requireNamespace("graphics")) { #' par_prev <- graphics::par(mfcol = c(2, 1)) #' diff --git a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd index 368e7d47..4b917da5 100644 --- a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd @@ -40,9 +40,7 @@ is an internal helper function. } \section{Notes}{ - -This function requires a live internet connection to be able -to obtain parameter estimates from \code{Rosetta3}. + A live internet connection is required to access \code{Rosetta3}. } \references{ diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index e11f4d11..90e62aa6 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -71,13 +71,16 @@ pdf_estimate( swrc_name = "Campbell1974", pdf_name = "Cosby1984" ) -pdf_estimate( - sand = soils[, "sand_frac"], - clay = soils[, "clay_frac"], - fcoarse = soils[, "gravel_content"], - swrc_name = "vanGenuchten1980", - pdf_name = "Rosetta3" -) + +if (requireNamespace("curl") && curl::has_internet()) { + pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"], + swrc_name = "vanGenuchten1980", + pdf_name = "Rosetta3" + ) +} } \references{ diff --git a/man/sw_exec.Rd b/man/sw_exec.Rd index 5ed33262..60eafc89 100644 --- a/man/sw_exec.Rd +++ b/man/sw_exec.Rd @@ -168,10 +168,12 @@ print(round(as.numeric(object.size(sw_out6) / object.size(sw_out5)), 2)) ## ------ Simulation with different SWRC ------------ -sw_in7 <- sw_in3 -swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") +if (requireNamespace("curl") && curl::has_internet()) { + sw_in7 <- sw_in3 + swSite_SWRCflags(sw_in7) <- c("vanGenuchten1980", "Rosetta3") -sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3, quiet = TRUE) + sw_out7 <- sw_exec(inputData = sw_in7, weatherList = sw_weath3) +} ## See help(package = "rSOILWAT2") for a full list of functions diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index f1e42649..871cd831 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -207,14 +207,18 @@ phi <- list( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], swrc = list(swrc_name = "Campbell1974", pdf_name = "Cosby1984") - ), - vanGenuchten1980 = swrc_vwc_to_swp( + ) +) + +if (requireNamespace("curl") && curl::has_internet()) { + phi[["vanGenuchten1980"]] <- swrc_vwc_to_swp( theta, sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") ) -) +} + if (requireNamespace("graphics")) { par_prev <- graphics::par(mfcol = c(2, 1)) diff --git a/tests/testthat/test_WaterBalance.R b/tests/testthat/test_WaterBalance.R index 85bed9cd..2aa18e07 100644 --- a/tests/testthat/test_WaterBalance.R +++ b/tests/testthat/test_WaterBalance.R @@ -85,7 +85,12 @@ for (it in tests) { ) if (inherits(x, "try-error")) { - succeed(paste(info1, "requires live internet, skipping for now!")) + # Skip if it failed because PDF requires internet but we are offline + if (isTRUE(grepl("requires live internet", x))) { + succeed(paste(info1, "requires live internet, skipping for now!")) + } else { + fail(paste(info1, x)) + } } else { diff --git a/tools/test_SWRCs_and_PDFs_Simulations.R b/tools/test_SWRCs_and_PDFs_Simulations.R index 1fadf519..e448915f 100644 --- a/tools/test_SWRCs_and_PDFs_Simulations.R +++ b/tools/test_SWRCs_and_PDFs_Simulations.R @@ -9,7 +9,10 @@ # Required packages not part of `rSOILWAT2` -stopifnot(requireNamespace("ggplot2")) +stopifnot( + requireNamespace("ggplot2"), + requireNamespace("curl") && curl::has_internet() +) #--- List of SWRC-PDF combinations ------ diff --git a/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R index 508d91ad..77500333 100644 --- a/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R +++ b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R @@ -10,7 +10,10 @@ # Required packages not part of `rSOILWAT2` -stopifnot(requireNamespace("ggplot2")) +stopifnot( + requireNamespace("ggplot2"), + requireNamespace("curl") && curl::has_internet() +) #--- List of SWRC-PDF combinations ------ diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 8426ef7f..9f32e2b5 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -273,6 +273,15 @@ You may organize weather data in a variety of ways: # Check that weather data is well-formed stopifnot(rSOILWAT2::dbW_check_weatherData(wdata)) } + + } else { + # We don't have live internet and + # were not able to obtain weather data for requested years + # --> instead, use data we have locally and adjust years + years <- sapply(wdata, function(x) slot(x, "year")) + rSOILWAT2::swYears_StartYear(sw_in) <- 0 + rSOILWAT2::swYears_EndYear(sw_in) <- max(years) + rSOILWAT2::swYears_StartYear(sw_in) <- min(years) } ``` From e6041c383da0b8dc1ec5bc80c77479e377eb9e1c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 9 Jun 2022 09:23:25 -0400 Subject: [PATCH 044/238] Update SOILWAT2 submodule on branch `feature_swrc` to commit c8bb45875eb7c93ced215cb1d442d85933b34c23 --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 7db64923..c8bb4587 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 7db6492375398c0099f1e6e551468d822d26dc83 +Subproject commit c8bb45875eb7c93ced215cb1d442d85933b34c23 From 02eacdf83102731e924a4fc5a4b255c3e7a6dd3b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 10 Jun 2022 08:03:01 -0400 Subject: [PATCH 045/238] Display message when using live connection by `pdf_Rosetta3_for_vanGenuchten1980()` - live interaction with the ROSETTA API can at times be slow or pending for some seconds - now, if new argument `verbose` (TRUE by default if used interactively) displays a message --- R/sw_Pedotransfer_Functions.R | 14 +++++++++++--- man/SWRCs.Rd | 3 +++ man/pdf_Rosetta3_for_vanGenuchten1980.Rd | 5 ++++- man/swrc_conversion.Rd | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 3617a46d..daa8f05f 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -254,6 +254,8 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' i.e., `name` (short for `swrc_name`) and `swrcp`, #' or all necessary elements to estimate parameters of a `SWRC` given #' soil parameters, i.e., `swrc_name` and `pdf_name`. +#' @param verbose A logical value. If `TRUE`, then display +#' `SOILWAT2` internal warnings and other messages. #' #' @section Details: #' [swrc_names()] lists implemented `SWRCs`; @@ -579,13 +581,21 @@ rSW2_SWRC_PDF_estimate_parameters <- function( #' @section Notes: A live internet connection is required to access `Rosetta3`. #' #' @md -pdf_Rosetta3_for_vanGenuchten1980 <- function(sand, clay) { +pdf_Rosetta3_for_vanGenuchten1980 <- function( + sand, + clay, + verbose = interactive() +) { stopifnot(requireNamespace("soilDB"), requireNamespace("curl")) if (!curl::has_internet()) { stop("`pdf_Rosetta3_for_vanGenuchten1980()` requires live internet.") } + if (verbose) { + message("Connecting live to ROSETTA API...") + } + tmp <- soilDB::ROSETTA( 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), vars = c("sand", "silt", "clay"), @@ -667,8 +677,6 @@ check_swrcp <- function(swrc_name, swrcp) { #' If `FALSE` (default), then the returned object has a size of `l` = `d` #' where the the `SWRC` conversion is applied to the #' first element of `x` and soils, the second elements, and so on. -#' @param verbose A logical value. If `TRUE`, then display -#' `SOILWAT2` internal warnings. #' #' @return The dimensions of the output are a function of `x` and the #' number of soil values (e.g., rows or length of `swrc[["swrcp"]]`). diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index 1948244c..88cd1cbd 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -41,6 +41,9 @@ Contains all necessary elements of a \code{SWRC}, i.e., \code{name} (short for \code{swrc_name}) and \code{swrcp}, or all necessary elements to estimate parameters of a \code{SWRC} given soil parameters, i.e., \code{swrc_name} and \code{pdf_name}.} + +\item{verbose}{A logical value. If \code{TRUE}, then display +\code{SOILWAT2} internal warnings and other messages.} } \description{ \code{SWRCs} convert between soil water content and soil water potential diff --git a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd index 4b917da5..d9d4d83d 100644 --- a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta3_for_vanGenuchten1980.Rd @@ -5,7 +5,7 @@ \title{Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} v3 \code{PDF} by Zhang et al. 2017} \usage{ -pdf_Rosetta3_for_vanGenuchten1980(sand, clay) +pdf_Rosetta3_for_vanGenuchten1980(sand, clay, verbose = interactive()) } \arguments{ \item{sand}{A numeric value or vector. @@ -15,6 +15,9 @@ Sand content of the matric soil component \item{clay}{A numeric value or vector. Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{verbose}{A logical value. If \code{TRUE}, then display +\code{SOILWAT2} internal warnings and other messages.} } \value{ \code{swrcp}, i.e,. diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 871cd831..d9621222 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -84,7 +84,7 @@ where the the \code{SWRC} conversion is applied to the first element of \code{x} and soils, the second elements, and so on.} \item{verbose}{A logical value. If \code{TRUE}, then display -\code{SOILWAT2} internal warnings.} +\code{SOILWAT2} internal warnings and other messages.} \item{swp_MPa}{A numeric object. The soil water potential values (units `[MPa]`) to be converted to From f2aacfc2ee0e78e1dc6c15f4812e70cacff8da39 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 10 Jun 2022 08:10:27 -0400 Subject: [PATCH 046/238] SWRC/PDF test script now loops over soil texture classes - Updated script (in "tools"): `test_SWRCs_and_PDFs_Simulations.R` first introduced by commit 9d603ba24181cd06f5b156639bbe8f8c799dfbd0 (March 3, 2022) This script runs SOILWAT2 simulations (using the package default dataset) * for each implemented pair of SWRC/PDF * for default and 50% reduced precipitation events * (new) for each soil texture class and produced time-series plots by soil layer and by year of volumetric water content (VWC), soil water potential (SWP), and transpiration -> note: output based van Genuchten1980/Rosetta3 for sandy soils! --- tools/test_SWRCs_and_PDFs_Simulations.R | 239 +++++++++++++----------- 1 file changed, 133 insertions(+), 106 deletions(-) diff --git a/tools/test_SWRCs_and_PDFs_Simulations.R b/tools/test_SWRCs_and_PDFs_Simulations.R index e448915f..5b0cbf84 100644 --- a/tools/test_SWRCs_and_PDFs_Simulations.R +++ b/tools/test_SWRCs_and_PDFs_Simulations.R @@ -32,127 +32,154 @@ nsoils_used <- Inf nyears_used <- 10 fadj_ppts <- c(0.5, 1) +soiltxtcls <- data.frame( + sand_frac = c( + 0.92, 0.82, 0.58, 0.43, 0.17, 0.58, 0.32, 0.1, 0.52, 0.06, 0.22 + ), + clay_frac = c( + 0.03, 0.06, 0.1, 0.18, 0.13, 0.27, 0.34, 0.34, 0.42, 0.47, 0.58 + ), + gravel_content = 0 +) +rownames(soiltxtcls) <- gsub( + " ", + "-", + c( + "Sand", "Loamy sand", "Sandy loam", "Loam", "Silty loam", "Sandy clay loam", + "Clay loam", "Silty clay loam", "Sandy clay", "Silty clay", "Clay" + ) +) #--- Loop over precipitation adjustments ------ -for (k0 in seq_along(fadj_ppts)) { - - #--- Simulate ------ - soils <- rSOILWAT2::swSoils_Layers(rSOILWAT2::sw_exampleData) - nsoils <- nrow(soils) - nsoils_used2 <- min(nsoils_used, nsoils) - year_start <- rSOILWAT2::swYears_StartYear(rSOILWAT2::sw_exampleData) - - swout <- lapply( - list_swrcs_pdfs, - function(sp) { - sw_in <- rSOILWAT2::sw_exampleData - rSOILWAT2::swWeather_MonScalingParams(sw_in)[, "PPT"] <- fadj_ppts[k0] - rSOILWAT2::swSite_SWRCflags(sw_in) <- sp - rSOILWAT2::sw_exec(inputData = sw_in) - } - ) +for (k0a in seq_along(fadj_ppts)) { + #--- Loop over soil texture classes ------ + for (k0b in seq_len(nrow(soiltxtcls))) { - #--- Create figures ------ - for (k1 in seq_along(list_plot_vars)) { + #--- Simulate ------ + soils <- rSOILWAT2::swSoils_Layers(rSOILWAT2::sw_exampleData) + nsoils <- nrow(soils) + nsoils_used2 <- min(nsoils_used, nsoils) + for (k0bi in seq_len(ncol(soiltxtcls))) { + soils[, colnames(soiltxtcls)[k0bi]] <- soiltxtcls[k0b, k0bi] + } - fname_fig <- file.path( - ".", - paste0( - "Fig_SOILWAT2_SWRCs-PDFs_", - list_plot_vars[[k1]][["slot"]], - "_PPT", round(100 * fadj_ppts[k0]), "pct", - ".pdf" - ) - ) + year_start <- rSOILWAT2::swYears_StartYear(rSOILWAT2::sw_exampleData) - if (file.exists(fname_fig)) next - - #--- * Prepare data ------ - tmp_swout <- mapply( - function(x, sp) { - tmp <- slot(slot(x, list_plot_vars[[k1]][["slot"]]), "Day") - res <- data.frame( - SWRC = sp[1], - PDF = sp[2], - tmp[, c("Year", "Day")], - date = as.Date( - paste(tmp[, "Year"], tmp[, "Day"], sep = "-"), - format = "%Y-%j" - ), - list_plot_vars[[k1]][["trans"]](tmp[, 2 + seq_len(nsoils)]) - ) - colnames(res) <- gsub("transp_total_", "", colnames(res)) - res - }, - swout, + swout <- lapply( list_swrcs_pdfs, - SIMPLIFY = FALSE + function(sp) { + sw_in <- rSOILWAT2::sw_exampleData + rSOILWAT2::swSoils_Layers(sw_in) <- soils + rSOILWAT2::swWeather_MonScalingParams(sw_in)[, "PPT"] <- fadj_ppts[k0a] + rSOILWAT2::swSite_SWRCflags(sw_in) <- sp + rSOILWAT2::sw_exec(inputData = sw_in) + } ) - var_swout <- reshape( - do.call(rbind, tmp_swout), - direction = "long", - varying = grep("Lyr_", colnames(tmp_swout[[1]]), value = TRUE), - sep = "_" - ) - # rename "Lyr" to variable name - colnames(var_swout)[grep("Lyr", colnames(var_swout))] <- - list_plot_vars[[k1]][["var"]] + #--- Create figures ------ + for (k1 in seq_along(list_plot_vars)) { - # create combined SWRC-PDF name (for coloration) - var_swout[, "SWRC-PDF"] <- paste( - var_swout[, "SWRC"], - var_swout[, "PDF"], - sep = "-" - ) + fname_fig <- file.path( + ".", + paste0( + "Fig_SOILWAT2_SWRCs-PDFs_Simulation-Run_", + "_Soil-", rownames(soiltxtcls)[k0b], + "_PPT", round(100 * fadj_ppts[k0a]), "pct", + "__response-", list_plot_vars[[k1]][["slot"]], + ".pdf" + ) + ) - # add soil layer depths - var_swout[, "Layer"] <- factor( - var_swout[, "time"], - levels = seq_len(nsoils), - labels = paste0( - c(0, soils[-nsoils, "depth_cm"]), "-", - soils[, "depth_cm"], - " cm" + if (file.exists(fname_fig)) next + + #--- * Prepare data ------ + tmp_swout <- mapply( + function(x, sp) { + tmp <- slot(slot(x, list_plot_vars[[k1]][["slot"]]), "Day") + res <- data.frame( + SWRC = sp[1], + PDF = sp[2], + tmp[, c("Year", "Day")], + date = as.Date( + paste(tmp[, "Year"], tmp[, "Day"], sep = "-"), + format = "%Y-%j" + ), + list_plot_vars[[k1]][["trans"]](tmp[, 2 + seq_len(nsoils)]) + ) + colnames(res) <- gsub("transp_total_", "", colnames(res)) + res + }, + swout, + list_swrcs_pdfs, + SIMPLIFY = FALSE + ) + + var_swout <- reshape( + do.call(rbind, tmp_swout), + direction = "long", + varying = grep("Lyr_", colnames(tmp_swout[[1]]), value = TRUE), + sep = "_" + ) + + # rename "Lyr" to variable name + colnames(var_swout)[grep("Lyr", colnames(var_swout))] <- + list_plot_vars[[k1]][["var"]] + + # create combined SWRC-PDF name (for coloration) + var_swout[, "SWRC-PDF"] <- paste( + var_swout[, "SWRC"], + var_swout[, "PDF"], + sep = "-" ) - ) - #--- Subset data to requested years and soil layers - ids <- - var_swout$Year %in% (year_start + seq_len(nyears_used) - 1) & - var_swout$time %in% seq_len(nsoils_used2) - var_swout_used <- var_swout[ids, , drop = FALSE] - - - #--- * Create plot ------ - tmp <- ggplot2::ggplot(var_swout_used) + - ggplot2::geom_line( - ggplot2::aes( - x = Day, - y = .data[[list_plot_vars[[k1]][["var"]]]], - color = `SWRC-PDF`, - linetype = `SWRC-PDF` + # add soil layer depths + var_swout[, "Layer"] <- factor( + var_swout[, "time"], + levels = seq_len(nsoils), + labels = paste0( + c(0, soils[-nsoils, "depth_cm"]), "-", + soils[, "depth_cm"], + " cm" ) - ) + - ggplot2::facet_wrap( - ggplot2::vars(Layer, Year), - nrow = nsoils_used2, - #scales = "free_y", - labeller = ggplot2::label_wrap_gen(multi_line = FALSE) - ) + - egg::theme_article() - - - #--- Write to file - pdf( - file = fname_fig, - height = 2.5 * nsoils_used2, - width = 3 * (nyears_used + 1) - ) - plot(tmp) - dev.off() + ) + + #--- Subset data to requested years and soil layers + ids <- + var_swout$Year %in% (year_start + seq_len(nyears_used) - 1) & + var_swout$time %in% seq_len(nsoils_used2) + var_swout_used <- var_swout[ids, , drop = FALSE] + + + #--- * Create plot ------ + tmp <- ggplot2::ggplot(var_swout_used) + + ggplot2::geom_line( + ggplot2::aes( + x = Day, + y = .data[[list_plot_vars[[k1]][["var"]]]], + color = `SWRC-PDF`, + linetype = `SWRC-PDF` + ) + ) + + ggplot2::facet_wrap( + ggplot2::vars(Layer, Year), + nrow = nsoils_used2, + #scales = "free_y", + labeller = ggplot2::label_wrap_gen(multi_line = FALSE) + ) + + egg::theme_article() + + + #--- Write to file + pdf( + file = fname_fig, + height = 2.5 * nsoils_used2, + width = 3 * (nyears_used + 1) + ) + plot(tmp) + dev.off() + } } } From 4f188451b55818ad0f86eb6f3de00a7ef9d4f7fe Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 10 Jun 2022 12:16:17 -0400 Subject: [PATCH 047/238] `pdf_Rosetta_for_vanGenuchten1980()` gains argument `version` -`version` selects the Rosetta version number: 1, 2, or 3 (default) - renamed from `pdf_Rosetta3_for_vanGenuchten1980()` to `pdf_Rosetta_for_vanGenuchten1980()` --- R/sw_Pedotransfer_Functions.R | 27 +++++++++++++------ ...Rd => pdf_Rosetta_for_vanGenuchten1980.Rd} | 26 ++++++++++++------ 2 files changed, 37 insertions(+), 16 deletions(-) rename man/{pdf_Rosetta3_for_vanGenuchten1980.Rd => pdf_Rosetta_for_vanGenuchten1980.Rd} (81%) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index daa8f05f..e8df6405 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -261,7 +261,7 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' [swrc_names()] lists implemented `SWRCs`; #' [pdf_names()] lists implemented `PDFs`. #' -#' @inherit pdf_Rosetta3_for_vanGenuchten1980 references +#' @inherit pdf_Rosetta_for_vanGenuchten1980 references #' @references #' Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. #' A statistical exploration of the relationships of soil moisture @@ -532,7 +532,11 @@ rSW2_SWRC_PDF_estimate_parameters <- function( has_pdf <- pdf_name %in% pdfs_implemented_in_rSW2() if (has_pdf && pdf_name %in% "Rosetta3") { - pdf_Rosetta3_for_vanGenuchten1980(sand = sand, clay = clay) + pdf_Rosetta_for_vanGenuchten1980( + sand = sand, + clay = clay, + version = "3" + ) } else { if (isTRUE(fail)) { @@ -542,10 +546,10 @@ rSW2_SWRC_PDF_estimate_parameters <- function( } -#' Estimate van Genuchten 1980 `SWRC` parameters using `Rosetta` v3 `PDF` by -#' Zhang et al. 2017 +#' Estimate van Genuchten 1980 `SWRC` parameters using `Rosetta` live `API` #' #' @inheritParams SWRCs +#' @param version A character string that selects a `Rosetta` version. #' #' @return `swrcp`, i.e,. #' a numeric matrix where rows represent soil (layers) and @@ -578,20 +582,27 @@ rSW2_SWRC_PDF_estimate_parameters <- function( #' [pdf_estimate()] is the function that should be directly called; this here #' is an internal helper function. #' -#' @section Notes: A live internet connection is required to access `Rosetta3`. +#' @section Notes: +#' This function calls `soilDB::ROSETTA()` and +#' a live internet connection is required to access `Rosetta`. +#' +#' @seealso `soilDB::ROSETTA()` #' #' @md -pdf_Rosetta3_for_vanGenuchten1980 <- function( +pdf_Rosetta_for_vanGenuchten1980 <- function( sand, clay, + version = c("3", "1", "2"), verbose = interactive() ) { stopifnot(requireNamespace("soilDB"), requireNamespace("curl")) if (!curl::has_internet()) { - stop("`pdf_Rosetta3_for_vanGenuchten1980()` requires live internet.") + stop("`pdf_Rosetta_for_vanGenuchten1980()` requires live internet.") } + version <- match.arg(version) + if (verbose) { message("Connecting live to ROSETTA API...") } @@ -599,7 +610,7 @@ pdf_Rosetta3_for_vanGenuchten1980 <- function( tmp <- soilDB::ROSETTA( 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), vars = c("sand", "silt", "clay"), - v = "3" + v = version ) unname(data.matrix(data.frame( diff --git a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd b/man/pdf_Rosetta_for_vanGenuchten1980.Rd similarity index 81% rename from man/pdf_Rosetta3_for_vanGenuchten1980.Rd rename to man/pdf_Rosetta_for_vanGenuchten1980.Rd index d9d4d83d..dfeb699a 100644 --- a/man/pdf_Rosetta3_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta_for_vanGenuchten1980.Rd @@ -1,11 +1,15 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sw_Pedotransfer_Functions.R -\name{pdf_Rosetta3_for_vanGenuchten1980} -\alias{pdf_Rosetta3_for_vanGenuchten1980} -\title{Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} v3 \code{PDF} by -Zhang et al. 2017} +\name{pdf_Rosetta_for_vanGenuchten1980} +\alias{pdf_Rosetta_for_vanGenuchten1980} +\title{Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} live \code{API}} \usage{ -pdf_Rosetta3_for_vanGenuchten1980(sand, clay, verbose = interactive()) +pdf_Rosetta_for_vanGenuchten1980( + sand, + clay, + version = c("3", "1", "2"), + verbose = interactive() +) } \arguments{ \item{sand}{A numeric value or vector. @@ -16,6 +20,8 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} +\item{version}{A character string that selects a \code{Rosetta} version.} + \item{verbose}{A logical value. If \code{TRUE}, then display \code{SOILWAT2} internal warnings and other messages.} } @@ -33,8 +39,7 @@ air entry suction (units of \verb{[cm-1]}) } } \description{ -Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} v3 \code{PDF} by -Zhang et al. 2017 +Estimate van Genuchten 1980 \code{SWRC} parameters using \code{Rosetta} live \code{API} } \section{Details}{ @@ -43,7 +48,9 @@ is an internal helper function. } \section{Notes}{ - A live internet connection is required to access \code{Rosetta3}. + +This function calls \code{soilDB::ROSETTA()} and +a live internet connection is required to access \code{Rosetta}. } \references{ @@ -61,3 +68,6 @@ Rosetta pedotransfer model with improved estimates of hydraulic parameter distributions and summary statistics (Rosetta3). Journal of Hydrology, 547:39-53, \doi{10.1016/j.jhydrol.2017.01.004} } +\seealso{ +\code{soilDB::ROSETTA()} +} From 0d19451d883be767eaec5eff04f3221bf128aba1 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 10 Jun 2022 16:13:38 -0400 Subject: [PATCH 048/238] Bulk density added as predictor for PDFs - currently only used (optionally) by Rosetta - update SOILWAT2 submodule on branch `feature_swrc` to commit 8be1d98e4a022ba25edcf0a50c1e6745cc3597e6 - function argument `bdensity` gained by * `C_rSW2_SWRC_PDF_estimate_parameters()` * `rSW2_SWRC_PDF_estimate_parameters()` * `pdf_estimate()` * `pdf_Rosetta_for_vanGenuchten1980()` * `swrc_conversion()` --- R/Rsw.R | 1 + R/sw_Pedotransfer_Functions.R | 67 +++++++++++++++++++----- man/SWRCs.Rd | 4 ++ man/pdf_Rosetta_for_vanGenuchten1980.Rd | 5 ++ man/pdf_estimate.Rd | 11 ++-- man/rSW2_SWRC_PDF_estimate_parameters.Rd | 13 ++++- man/swrc_conversion.Rd | 14 +++-- src/SOILWAT2 | 2 +- src/SW_R_init.c | 4 +- src/SW_R_lib.c | 27 ++++++++-- src/SW_R_lib.h | 3 +- vignettes/rSOILWAT2_demo.Rmd | 1 + 12 files changed, 124 insertions(+), 28 deletions(-) diff --git a/R/Rsw.R b/R/Rsw.R index 4cb20c90..3199bd7c 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -275,6 +275,7 @@ sw_exec <- function( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], fcoarse = soils[, "gravel_content"], + bdensity = soils[, "bulkDensity_g/cm^3"], pdf_name = pdf_name, fail = FALSE ) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index e8df6405..2d1c8436 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -236,6 +236,9 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' `fcoarse` is required, for instance, to translate between #' values relative to the matric soil component (< 2 mm fraction) and #' relative to the whole soil (matric soil plus coarse fragments). +#' @param bdensity A numeric value or vector. +#' Density of the whole soil +#' (matric soil plus coarse fragments; units `[g/cm3]`). #' @param layer_width A numeric value or vector. #' Depth interval, width, of each soil layer (units of `cm`). #' `layer_width` is required to translate between @@ -396,9 +399,9 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' [pdf_names()] lists implemented `PDFs`. #' #' @section Notes: -#' The soil parameters `sand`, `clay`, and `fcoarse` must be of +#' The soil parameters `sand`, `clay`, `fcoarse`, and `bdensity` must be of #' the same length, i.e., represent one soil (length 1) or -#' multiple soil (layers) (length > 1). +#' multiple soil (layers) (length > 1); however, `bdensity` may be `NULL`. #' The arguments selecting `SWRC` (`swrc_name`) and `PDF` (`pdf_name`) #' are recycled for multiple soil layers. #' @@ -436,6 +439,7 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], #' fcoarse = soils[, "gravel_content"], +#' bdensity = soils[, "bulkDensity_g/cm^3"], #' swrc_name = "vanGenuchten1980", #' pdf_name = "Rosetta3" #' ) @@ -443,7 +447,14 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' #' @md #' @export -pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { +pdf_estimate <- function( + sand, + clay, + fcoarse, + bdensity = NULL, + swrc_name, + pdf_name +) { #--- Check for consistency between SWRC and PDF swrc_name <- std_swrc(swrc_name)[1] @@ -465,7 +476,8 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { pdf_name = pdf_name, sand = sand, clay = clay, - fcoarse = fcoarse + fcoarse = fcoarse, + bdensity = bdensity ) } else { @@ -474,7 +486,8 @@ pdf_estimate <- function(sand, clay, fcoarse, swrc_name, pdf_name) { pdf_type = rep_len(encode_name2pdf(pdf_name), length(sand)), sand = sand, clay = clay, - fcoarse = fcoarse + fcoarse = fcoarse, + bdensity = bdensity ) } @@ -526,6 +539,7 @@ rSW2_SWRC_PDF_estimate_parameters <- function( sand, clay, fcoarse, + bdensity = NULL, fail = TRUE ) { pdf_name <- std_pdf(pdf_name)[1] @@ -535,6 +549,7 @@ rSW2_SWRC_PDF_estimate_parameters <- function( pdf_Rosetta_for_vanGenuchten1980( sand = sand, clay = clay, + bdensity = bdensity, version = "3" ) @@ -592,6 +607,7 @@ rSW2_SWRC_PDF_estimate_parameters <- function( pdf_Rosetta_for_vanGenuchten1980 <- function( sand, clay, + bdensity = NULL, version = c("3", "1", "2"), verbose = interactive() ) { @@ -607,11 +623,22 @@ pdf_Rosetta_for_vanGenuchten1980 <- function( message("Connecting live to ROSETTA API...") } - tmp <- soilDB::ROSETTA( - 100 * data.frame(sand = sand, silt = 1 - (sand + clay), clay = clay), - vars = c("sand", "silt", "clay"), - v = version + tmp_txt <- 100 * data.frame( + sand = sand, + silt = 1 - (sand + clay), + clay = clay ) + var_txt <- c("sand", "silt", "clay") + + tmp <- if (is.null(bdensity)) { + soilDB::ROSETTA(tmp_txt, vars = var_txt, v = version) + } else { + soilDB::ROSETTA( + cbind(tmp_txt, bdensity = bdensity), + vars = c(var_txt, "bdensity"), + v = version + ) + } unname(data.matrix(data.frame( tmp[, c("theta_r", "theta_s")], @@ -719,9 +746,10 @@ check_swrcp <- function(swrc_name, swrcp) { #' `0%` coarse fragments and be represented by `1 cm` wide soil layers. #' #' @section Details: -#' Arguments `sand` and `clay` are only required if `SWRC` parameter values -#' need to be estimated on the fly, i.e., if `swrc` does not contain -#' the element `swrcp` (with suitable `SWRC` parameter values). +#' Arguments `sand`, `clay`, and `bdensity` are only required +#' if `SWRC` parameter values need to be estimated on the fly, +#' i.e., if `swrc` does not contain the element `swrcp` +#' (with suitable `SWRC` parameter values). #' This is handled by [pdf_estimate()] and additionally requires #' the element `pdf_name` for argument `swrc`. #' @@ -838,6 +866,7 @@ swrc_conversion <- function( swrc, sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) { @@ -909,7 +938,11 @@ swrc_conversion <- function( ) if (is.null(swrc[["swrcp"]])) { - soils <- c(soils, list(sand = sand, clay = clay)) + soils <- c( + soils, + list(sand = sand, clay = clay), + if (!is.null(bdensity)) list(bdensity = bdensity) + ) } nsoils <- unique(lengths(soils)) @@ -958,6 +991,7 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], + bdensity = soils[["bdensity"]], swrc_name = swrc[["swrc_name"]], pdf_name = swrc[["pdf_name"]] ) @@ -974,6 +1008,7 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], + bdensity = soils[["bdensity"]], swrc_name = swrc[["swrc_name"]], pdf_name = swrc[["pdf_name"]] ) @@ -996,6 +1031,7 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], + bdensity = soils[["bdensity"]], swrc_name = swrc[["swrc_name"]], pdf_name = swrc[["pdf_name"]] ) @@ -1018,6 +1054,7 @@ swrc_conversion <- function( sand = soils[["sand"]], clay = soils[["clay"]], fcoarse = soils[["fcoarse"]], + bdensity = soils[["bdensity"]], swrc_name = swrc[["swrc_name"]], pdf_name = swrc[["pdf_name"]] ) @@ -1106,6 +1143,7 @@ swrc_swp_to_vwc <- function( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) { @@ -1115,6 +1153,7 @@ swrc_swp_to_vwc <- function( sand = sand, clay = clay, fcoarse = fcoarse, + bdensity = bdensity, layer_width = layer_width, swrc = swrc, outer_if_equalsize = outer_if_equalsize, @@ -1139,6 +1178,7 @@ swrc_vwc_to_swp <- function( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) { @@ -1148,6 +1188,7 @@ swrc_vwc_to_swp <- function( sand = sand, clay = clay, fcoarse = fcoarse, + bdensity = bdensity, layer_width = layer_width, swrc = swrc, outer_if_equalsize = outer_if_equalsize, diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index 88cd1cbd..fc2afa8d 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -19,6 +19,10 @@ relative to the whole soil of each soil layer. values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + \item{layer_width}{A numeric value or vector. Depth interval, width, of each soil layer (units of \code{cm}). \code{layer_width} is required to translate between diff --git a/man/pdf_Rosetta_for_vanGenuchten1980.Rd b/man/pdf_Rosetta_for_vanGenuchten1980.Rd index dfeb699a..d26f1958 100644 --- a/man/pdf_Rosetta_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta_for_vanGenuchten1980.Rd @@ -7,6 +7,7 @@ pdf_Rosetta_for_vanGenuchten1980( sand, clay, + bdensity = NULL, version = c("3", "1", "2"), verbose = interactive() ) @@ -20,6 +21,10 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + \item{version}{A character string that selects a \code{Rosetta} version.} \item{verbose}{A logical value. If \code{TRUE}, then display diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index 90e62aa6..32dfafe4 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -4,7 +4,7 @@ \alias{pdf_estimate} \title{Estimate \code{SWRC} parameters from soil texture with a pedotransfer function} \usage{ -pdf_estimate(sand, clay, fcoarse, swrc_name, pdf_name) +pdf_estimate(sand, clay, fcoarse, bdensity = NULL, swrc_name, pdf_name) } \arguments{ \item{sand}{A numeric value or vector. @@ -22,6 +22,10 @@ relative to the whole soil of each soil layer. values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + \item{swrc_name}{An character string or vector. The selected \code{SWRC} name (one of \code{\link[=swrc_names]{swrc_names()}}, with default \code{"Campbell1974"}).} @@ -49,9 +53,9 @@ Estimate \code{SWRC} parameters from soil texture with a pedotransfer function \code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}. -The soil parameters \code{sand}, \code{clay}, and \code{fcoarse} must be of +The soil parameters \code{sand}, \code{clay}, \code{fcoarse}, and \code{bdensity} must be of the same length, i.e., represent one soil (length 1) or -multiple soil (layers) (length > 1). +multiple soil (layers) (length > 1); however, \code{bdensity} may be \code{NULL}. The arguments selecting \code{SWRC} (\code{swrc_name}) and \code{PDF} (\code{pdf_name}) are recycled for multiple soil layers. @@ -77,6 +81,7 @@ if (requireNamespace("curl") && curl::has_internet()) { sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], fcoarse = soils[, "gravel_content"], + bdensity = soils[, "bulkDensity_g/cm^3"], swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3" ) diff --git a/man/rSW2_SWRC_PDF_estimate_parameters.Rd b/man/rSW2_SWRC_PDF_estimate_parameters.Rd index ffcf733f..d4f4927e 100644 --- a/man/rSW2_SWRC_PDF_estimate_parameters.Rd +++ b/man/rSW2_SWRC_PDF_estimate_parameters.Rd @@ -5,7 +5,14 @@ \title{Estimate parameters of selected soil water retention curve (\code{SWRC}) using selected pedotransfer function (\code{PDF}) that are implemented in \code{R}} \usage{ -rSW2_SWRC_PDF_estimate_parameters(pdf_name, sand, clay, fcoarse, fail = TRUE) +rSW2_SWRC_PDF_estimate_parameters( + pdf_name, + sand, + clay, + fcoarse, + bdensity = NULL, + fail = TRUE +) } \arguments{ \item{pdf_name}{An character string or vector. @@ -27,6 +34,10 @@ relative to the whole soil of each soil layer. values relative to the matric soil component (< 2 mm fraction) and relative to the whole soil (matric soil plus coarse fragments).} +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + \item{fail}{A logical value. If \code{TRUE} (default) and requested \code{PDF} is not implemented in \code{R}, then throw an error; otherwise, return silently.} diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index d9621222..235513bf 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -14,6 +14,7 @@ swrc_conversion( swrc, sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) @@ -25,6 +26,7 @@ swrc_swp_to_vwc( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) @@ -36,6 +38,7 @@ swrc_vwc_to_swp( swrc = list(swrc_name = NULL, pdf_name = NULL, swrcp = NULL), sand = NULL, clay = NULL, + bdensity = NULL, outer_if_equalsize = FALSE, verbose = FALSE ) @@ -75,6 +78,10 @@ Sand content of the matric soil component Clay content of the matric soil component (< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + \item{outer_if_equalsize}{A logical value. Relevant only if \code{x} of length \code{l} and soils of length \code{d} are equal. If \code{TRUE}, then the returned object has a size of \verb{l x d} = \verb{l x l} @@ -135,9 +142,10 @@ If they are missing, then the soils are assumed to contain \verb{0\%} coarse fragments and be represented by \verb{1 cm} wide soil layers. -Arguments \code{sand} and \code{clay} are only required if \code{SWRC} parameter values -need to be estimated on the fly, i.e., if \code{swrc} does not contain -the element \code{swrcp} (with suitable \code{SWRC} parameter values). +Arguments \code{sand}, \code{clay}, and \code{bdensity} are only required +if \code{SWRC} parameter values need to be estimated on the fly, +i.e., if \code{swrc} does not contain the element \code{swrcp} +(with suitable \code{SWRC} parameter values). This is handled by \code{\link[=pdf_estimate]{pdf_estimate()}} and additionally requires the element \code{pdf_name} for argument \code{swrc}. } diff --git a/src/SOILWAT2 b/src/SOILWAT2 index c8bb4587..8be1d98e 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit c8bb45875eb7c93ced215cb1d442d85933b34c23 +Subproject commit 8be1d98e4a022ba25edcf0a50c1e6745cc3597e6 diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 870c35ce..88981711 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -11,7 +11,7 @@ extern SEXP onGetInputDataFromFiles(SEXP, SEXP); extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); extern SEXP sw_quiet(SEXP); -extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP); +extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP rSW2_check_SWRC_vs_PDF(SEXP, SEXP); extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); @@ -23,7 +23,7 @@ static const R_CallMethodDef CallEntries[] = { {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, - {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 4}, + {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 5}, {"rSW2_check_SWRC_vs_PDF", (DL_FUNC) &rSW2_check_SWRC_vs_PDF, 2}, {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index e126ea17..85c62c47 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -615,6 +615,9 @@ SEXP sw_consts(void) { @param[in] clay Clay content of the matric soil (< 2 mm fraction) [g/g] @param[in] fcoarse Coarse fragments (> 2 mm; e.g., gravel) of the whole soil [m3/m3] + @param[in] bdensity Density of the whole soil + (matric soil plus coarse fragments) [g/cm3]; + accepts `NULL` if not used by `PDF` @return Matrix of estimated SWRC parameters */ @@ -622,15 +625,18 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( SEXP pdf_type, SEXP sand, SEXP clay, - SEXP fcoarse + SEXP fcoarse, + SEXP bdensity ) { int nlyrs = length(sand); + Rboolean has_bd = !isNull(bdensity); /* Check inputs */ if ( nlyrs != length(clay) || nlyrs != length(fcoarse) || - nlyrs != length(pdf_type) + nlyrs != length(pdf_type) || + (has_bd && nlyrs != length(bdensity)) ) { error("inputs are not of the same length."); } @@ -640,6 +646,16 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( sand = PROTECT(coerceVector(sand, REALSXP)); clay = PROTECT(coerceVector(clay, REALSXP)); fcoarse = PROTECT(coerceVector(fcoarse, REALSXP)); + if (has_bd) { + bdensity = PROTECT(coerceVector(bdensity, REALSXP)); + } else { + // Set `bdensity` from `NULL` to array of `SW_MISSING` of appropriate length + // `SW_MISSING` is the expected value by SOILWAT2 + bdensity = PROTECT(allocVector(REALSXP, nlyrs)); + for (int i = 0; i < nlyrs; i++) { + REAL(bdensity)[i] = SW_MISSING; + } + } /* Allocate memory for SWRC parameters */ SEXP @@ -654,8 +670,10 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( *xsand = REAL(sand), *xclay = REAL(clay), *xcoarse = REAL(fcoarse), + *xbd = REAL(bdensity), *xres = REAL(res_swrcp); + /* Loop over soil layers */ /* Ideally, SOILWAT2's `SWRC_PDF_estimate_parameters()` would loop over soil layers internally, @@ -669,7 +687,8 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( REAL(swrcpk), xsand[k1], xclay[k1], - xcoarse[k1] + xcoarse[k1], + xbd[k1] ); for (k2 = 0; k2 < SWRC_PARAM_NMAX; k2++) { @@ -677,7 +696,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( } } - UNPROTECT(6); + UNPROTECT(7); return res_swrcp; } diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index a08cb547..6dbf885c 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -48,7 +48,8 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( SEXP pdf_type, SEXP sand, SEXP clay, - SEXP gravel + SEXP gravel, + SEXP bdensity ); SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp); diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 9f32e2b5..23ab0d01 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -591,6 +591,7 @@ see `pdf_names()`. sand = soil_new[, "sand_frac"], clay = soil_new[, "clay_frac"], fcoarse = soil_new[, "gravel_content"], + bdensity = soil_new[, "bulkDensity_g.cm.3"], swrc_name = tmp["swrc_name"], pdf_name = tmp["pdf_name"] ) From 0ef887ba0a514ab7963bbb8b02fbdc59a6c6016d Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 10 Jun 2022 18:07:11 -0400 Subject: [PATCH 049/238] SWRC parameters now include saturated hydraulic conductivity - update SOILWAT2 submodule on branch `feature_swrc` to commit 5653f7ffea715b7f82c501ff3a3d8ff97ea14800 - updated `pdf_Rosetta_for_vanGenuchten1980()` now also returns saturated hydraulic conductivity --- R/sw_Pedotransfer_Functions.R | 3 ++- man/pdf_Rosetta_for_vanGenuchten1980.Rd | 1 + src/SOILWAT2 | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 2d1c8436..4ae828d3 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -576,6 +576,7 @@ rSW2_SWRC_PDF_estimate_parameters <- function( #' \item `swrcp[2]` (`alpha`): related to the inverse of #' air entry suction (units of `[cm-1]`) #' \item `swrcp[3]` (`n`): measure of the pore-size distribution `[-]` +#' \item `swrcp[4]` (`K_sat`): saturated hydraulic conductivity `[cm / day]` #' } #' #' @references @@ -644,7 +645,7 @@ pdf_Rosetta_for_vanGenuchten1980 <- function( tmp[, c("theta_r", "theta_s")], 10 ^ tmp[, "alpha"], 10 ^ tmp[, "npar"], - 0, + 10 ^ tmp[, "ksat"], 0 ))) } diff --git a/man/pdf_Rosetta_for_vanGenuchten1980.Rd b/man/pdf_Rosetta_for_vanGenuchten1980.Rd index d26f1958..8a8859c9 100644 --- a/man/pdf_Rosetta_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta_for_vanGenuchten1980.Rd @@ -41,6 +41,7 @@ of the matric component (units of \verb{[cm / cm]}) \item \code{swrcp[2]} (\code{alpha}): related to the inverse of air entry suction (units of \verb{[cm-1]}) \item \code{swrcp[3]} (\code{n}): measure of the pore-size distribution \verb{[-]} +\item \code{swrcp[4]} (\code{K_sat}): saturated hydraulic conductivity \verb{[cm / day]} } } \description{ diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 8be1d98e..5653f7ff 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 8be1d98e4a022ba25edcf0a50c1e6745cc3597e6 +Subproject commit 5653f7ffea715b7f82c501ff3a3d8ff97ea14800 From e7dea739a0a5e6dba665f770c7ff0d8e59490a3b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 14 Jun 2022 18:11:28 -0400 Subject: [PATCH 050/238] `swrc_conversion()`: repeat `swrcp` if one set of parameters * if one set of `swrcp` but many `x` values are passed, then we now repeat `swrcp` for each `x` --- R/sw_Pedotransfer_Functions.R | 14 ++++++++++++++ man/swrc_conversion.Rd | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 4ae828d3..502afc8f 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -754,6 +754,11 @@ check_swrcp <- function(swrc_name, swrcp) { #' This is handled by [pdf_estimate()] and additionally requires #' the element `pdf_name` for argument `swrc`. #' +#' @section Details: +#' If `swrc` contains element `swrcp` with one set of `SWRC` parameters, +#' i.e., one row, then the parameter set is repeated for each value of `x`. +#' +#' #' @seealso #' [pdf_estimate()], #' [check_swrcp()] @@ -907,6 +912,15 @@ swrc_conversion <- function( } } + # If we have one set of `swrcp` but many `x` -> repeat `swrcp` for each `x` + if ( + !is.null(swrc[["swrcp"]]) && + nrow(swrc[["swrcp"]]) == 1 && + length(x) > 0 + ) { + swrc[["swrcp"]] <- swrc[["swrcp"]][rep(1, length(x)), , drop = FALSE] + } + # Do we have sufficient soil parameters? if (missing(fcoarse) && missing(layer_width)) { ntmp <- if (!is.null(swrc[["swrcp"]])) { diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 235513bf..bc22cdf8 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -148,6 +148,10 @@ i.e., if \code{swrc} does not contain the element \code{swrcp} (with suitable \code{SWRC} parameter values). This is handled by \code{\link[=pdf_estimate]{pdf_estimate()}} and additionally requires the element \code{pdf_name} for argument \code{swrc}. + + +If \code{swrc} contains element \code{swrcp} with one set of \code{SWRC} parameters, +i.e., one row, then the parameter set is repeated for each value of \code{x}. } \examples{ From 51db55277e11d30c39ec9ffbd7c279acb2b5532f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 28 Jun 2022 08:32:29 -0400 Subject: [PATCH 051/238] Update SOILWAT2 submodule on branch `feature_swrc` to include FXW as new SWRC - SOILWAT2 updated to commit 0c7162bd387edc6f2dd1498657d07bc9a5bbb4e9 --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 7f58fa6e..0c7162bd 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 7f58fa6e6a84aad9236cc4d4da8d88eb7fbda9c8 +Subproject commit 0c7162bd387edc6f2dd1498657d07bc9a5bbb4e9 From cf948af4cb5dd85e369935e485f2e7cd12ea4eb0 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 28 Jun 2022 14:52:56 -0400 Subject: [PATCH 052/238] PDF "neuroFX2021" to estimate SWRC parameters of FXW - `pdfs_implemented_in_rSW2()`: now includes "neuroFX2021" - new `pdf_neuroFX2021_for_FXW()` to estimate SWRC parameters of FXW based on Rudiyanto et al. 2021 -> Rudiyanto et al. 2021 provides the trained neural net object as RData file in the supplementary materials * this file must be downloaded by the user (i.e., it is not included in rSOILWAT2) and the path to the file passed as argument `file_neuroFX2021` * the file path may also be set by the (global) option "RSW2_FILENEUROFX2021" which is automatically retrieved by `pdf_neuroFX2021_for_FXW()` - `pdf_estimate()` gains argument `...` so that it can pass additional arguments (e.g., `file_neuroFX2021`) to the selected PDFs -> "neuroFX2021" works best with sand, clay, (silt), and bulk density * updated examples and scripts in tools to provide bulk density -> new `check_pdf_availability()` checks if requested PDFs are available * each R-implemented PDF now requires a function with a name that matches pattern "pdf_XXX_availability" where XXX = name of PDF * arguments `verbose` (with default `interactive()`) will print helpful messages to inform users why a requested PDF is not available * exclude code examples from running if PDF is not available * updated unit tests and scripts --- NAMESPACE | 1 + R/sw_Pedotransfer_Functions.R | 402 ++++++++++++++++-- inst/WORDLIST | 15 +- man/SWRCs.Rd | 1 + man/check_pdf_availability.Rd | 29 ++ man/list_matched_swrcs_pdfs.Rd | 13 + man/pdf_Rosetta_for_vanGenuchten1980.Rd | 3 +- man/pdf_estimate.Rd | 33 +- man/pdf_names.Rd | 2 +- man/pdf_neuroFX2021_for_FXW.Rd | 85 ++++ man/rSW2_SWRC_PDF_estimate_parameters.Rd | 5 +- man/swrc_conversion.Rd | 30 +- man/swrc_names.Rd | 2 +- tests/testthat/test_WaterBalance.R | 8 + tools/test_SWRCs_and_PDFs_Simulations.R | 23 +- tools/test_SWRCs_and_PDFs_TheoreticalCurves.R | 42 +- 16 files changed, 626 insertions(+), 68 deletions(-) create mode 100644 man/check_pdf_availability.Rd create mode 100644 man/pdf_neuroFX2021_for_FXW.Rd diff --git a/NAMESPACE b/NAMESPACE index b5d38a1d..c8427c87 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -17,6 +17,7 @@ export(calc_RRs_Maestas2016) export(calc_SMTRs) export(calc_SiteClimate) export(check_TranspirationRegions) +export(check_pdf_availability) export(check_swrcp) export(check_updatedDB) export(check_version) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 56898d23..b0cf8c8b 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -210,8 +210,10 @@ VWCtoSWP_old <- function(vwc, sand, clay) { # 2) rSOILWAT2: # * if "YYY" is implemented in R, then: # * new `pdf_YYY_for_XXX()` +# * new `pdf_YYY_availability(verbose = interactive(), ...)` # * update `pdfs_implemented_in_rSW2()` # * update `rSW2_SWRC_PDF_estimate_parameters()` +# * update `check_pdf_availability()` # * update examples and unit tests to utilize new XXX/YYY functions @@ -268,6 +270,7 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' [pdf_names()] lists implemented `PDFs`. #' #' @inherit pdf_Rosetta_for_vanGenuchten1980 references +#' @inherit pdf_neuroFX2021_for_FXW references #' @references #' Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. #' A statistical exploration of the relationships of soil moisture @@ -277,6 +280,7 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' @seealso #' [swrc_names()], #' [pdf_names()], +#' [check_pdf_availability()], #' [pdf_estimate()], #' [check_swrcp()], #' [swrc_swp_to_vwc()], @@ -294,7 +298,7 @@ NULL #' @details Notes: #' The integer values may change with new versions of `SOILWAT2.` #' -#' @seealso [`SWRCs`], [pdf_names()] +#' @seealso [`SWRCs`], [pdf_names()], [check_pdf_availability()] #' #' @md #' @export @@ -309,7 +313,7 @@ swrc_names <- function() { #' @details Notes: #' The integer values may change with new versions of `SOILWAT2.` #' -#' @seealso [`SWRCs`], [swrc_names()] +#' @seealso [`SWRCs`], [swrc_names()], [check_pdf_availability()] #' #' @md #' @export @@ -364,6 +368,18 @@ encode_name2pdf <- function(pdf_name) { #' `SWRCs` are listed. #' \var{"NoPDF"} is not included in the list. #' +#' @examples +#' # Data frame of SWRC-PDF combinations +#' df_swrc_pdfs <- rSOILWAT2::list_matched_swrcs_pdfs() +#' +#' # List of SWRC-PDF combinations +#' list_swrcs_pdfs <- unname(as.list(as.data.frame(t(df_swrc_pdfs)))) +#' +#' # Available SWRC-PDF combinations +#' has_pdf <- check_pdf_availability(df_swrc_pdfs[, "PDF"]) +#' df_swrc_pdfs[has_pdf, , drop = FALSE] +#' list_swrcs_pdfs[has_pdf] +#' #' @export list_matched_swrcs_pdfs <- function(swrc_name) { swrc_name <- if ( @@ -396,10 +412,12 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' Estimate `SWRC` parameters from soil texture with a pedotransfer function #' #' @inheritParams SWRCs +#' @param ... Additional parameters passed to selected `PDF` function. #' #' @section Notes: #' [swrc_names()] lists implemented `SWRCs`; -#' [pdf_names()] lists implemented `PDFs`. +#' [pdf_names()] lists implemented `PDFs`; and +#' [check_pdf_availability()] checks availability of `PDFs`. #' #' @section Notes: #' The soil parameters `sand`, `clay`, `fcoarse`, and `bdensity` must be of @@ -408,10 +426,6 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' The arguments selecting `SWRC` (`swrc_name`) and `PDF` (`pdf_name`) #' are recycled for multiple soil layers. #' -#' @section Notes: -#' Some `PDFs` require a live internet connection to be able to obtain -#' `SWRC` parameter estimates. -#' #' @inherit SWRCs references #' #' @return `swrcp`, i.e,. @@ -419,8 +433,8 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' columns represent a fixed number of `SWRC` parameters. #' The interpretation is dependent on the selected `SWRC`, see #' `SOILWAT2` input file `swrc_param.in` +# nolint start: line_length_linter. #' ( -# nolint start #' `system.file("extdata", "example1", "Input", "swrc_params.in", package = "rSOILWAT2")` #' ). # nolint end @@ -429,6 +443,8 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), fcoarse = c(0, 0)) #' #' soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) +#' +#' # Use PDF "Cosby1984" to estimate parameters of SWRC "Campbell1974" #' pdf_estimate( #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], @@ -437,7 +453,8 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' pdf_name = "Cosby1984" #' ) #' -#' if (requireNamespace("curl") && curl::has_internet()) { +#' # Use PDF "Rosetta3" to estimate parameters of SWRC "vanGenuchten1980" +#' if (check_pdf_availability("Rosetta3")) { #' pdf_estimate( #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], @@ -448,6 +465,23 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' ) #' } #' +#' # Use PDF "neuroFX2021" to estimate parameters of SWRC `FXW` +#' \dontrun{ +#' # Set neuroFX2021 file path, see details in `pdf_neuroFX2021_for_FXW()` +#' options(RSW2_FILENEUROFX2021 = "path/to/sscbd.RData") +#' } +#' +#' if (check_pdf_availability("neuroFX2021")) { +#' pdf_estimate( +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' fcoarse = soils[, "gravel_content"], +#' bdensity = soils[, "bulkDensity_g/cm^3"], +#' swrc_name = "FXW", +#' pdf_name = "neuroFX2021" +#' ) +#' } +#' #' @md #' @export pdf_estimate <- function( @@ -456,7 +490,8 @@ pdf_estimate <- function( fcoarse, bdensity = NULL, swrc_name, - pdf_name + pdf_name, + ... ) { #--- Check for consistency between SWRC and PDF @@ -480,7 +515,8 @@ pdf_estimate <- function( sand = sand, clay = clay, fcoarse = fcoarse, - bdensity = bdensity + bdensity = bdensity, + ... ) } else { @@ -507,14 +543,72 @@ pdf_estimate <- function( #' List PDFs implemented only in `rSOILWAT2` instead of `SOILWAT2` #' @md pdfs_implemented_in_rSW2 <- function() { - "Rosetta3" + c( + # `Rosetta3` estimates parameters of `vanGenuchten1980` SWRC + "Rosetta3", + # `neuroFX2021` estimates parameters of `FXW` SWRC + "neuroFX2021" + ) +} + +#' Check availability of `PDFs` +#' +#' PDFs implemented in `SOILWAT2` are always available; +#' PDFs implemented in `rSOILWAT2` may have additional requirements, e.g., +#' live internet connection or access to specific data files. +#' +#' @param pdfs A character vector. `PDF` names to be checked; +#' defaults to `pdf_names()`. +#' @param verbose A logical value. +#' +#' @return A named logical vector with current availability of `PDFs`; +#' `pdfs` that are not implemented return `NA`. +#' +#' @examples +#' check_pdf_availability() +#' check_pdf_availability("neuroFX2021") +#' check_pdf_availability("nonexistent_PDF") +#' +#' @export +#' @md +check_pdf_availability <- function( + pdfs = names(pdf_names()), + verbose = interactive() +) { + res <- rep(NA, length(pdfs)) + names(res) <- pdfs + + rpdfs <- pdfs_implemented_in_rSW2() + + # PDFs implemented in SOILWAT2 are always available + tmp <- pdfs %in% names(pdf_names()) & !(pdfs %in% rpdfs) + res[tmp] <- TRUE + + # Check requested PDFs implemented in R + has_rpdfs <- vapply( + pdfs[pdfs %in% rpdfs], + function(pdf) { + switch( + EXPR = pdf, + Rosetta3 = pdf_Rosetta3_availability(verbose = verbose), + neuroFX2021 = pdf_neuroFX2021_availability(verbose = verbose), + NA + ) + }, + FUN.VALUE = NA, + USE.NAMES = TRUE + ) + + res[names(has_rpdfs)] <- has_rpdfs + + res } #' Estimate parameters of selected soil water retention curve (`SWRC`) #' using selected pedotransfer function (`PDF`) that are implemented in `R` #' -#' @inheritParams SWRCs +#' @inheritParams pdf_estimate #' @param fail A logical value. If `TRUE` (default) and #' requested `PDF` is not implemented in `R`, then throw an error; #' otherwise, return silently. @@ -543,19 +637,37 @@ rSW2_SWRC_PDF_estimate_parameters <- function( # nolint: object_length_linter. clay, fcoarse, bdensity = NULL, - fail = TRUE + fail = TRUE, + ... ) { pdf_name <- std_pdf(pdf_name)[1] has_pdf <- pdf_name %in% pdfs_implemented_in_rSW2() + list_soilargs <- list( + sand = sand, + clay = clay, + bdensity = bdensity + ) + if (has_pdf && pdf_name %in% "Rosetta3") { - pdf_Rosetta_for_vanGenuchten1980( - sand = sand, - clay = clay, - bdensity = bdensity, - version = "3" + dots <- list(...) + dots[["version"]] <- if ("version" %in% names(dots)) { + as.character(dots[["version"]]) + } else { + "3" + } + + do.call( + pdf_Rosetta_for_vanGenuchten1980, + args = c(list_soilargs, dots) ) + } else if (has_pdf && pdf_name %in% "neuroFX2021") { + do.call( + pdf_neuroFX2021_for_FXW, + args = c(list_soilargs, list(...)) + )[["mean"]] + } else { if (isTRUE(fail)) { stop("PDF ", shQuote(pdf_name), " is not implemented in rSOILWAT2.") @@ -613,13 +725,10 @@ pdf_Rosetta_for_vanGenuchten1980 <- function( # nolint: object_length_linter. clay, bdensity = NULL, version = c("3", "1", "2"), - verbose = interactive() + verbose = interactive(), + ... ) { - stopifnot(requireNamespace("soilDB"), requireNamespace("curl")) - - if (!curl::has_internet()) { - stop("`pdf_Rosetta_for_vanGenuchten1980()` requires live internet.") - } + stopifnot(pdf_Rosetta3_availability(verbose = verbose)) version <- match.arg(version) @@ -653,6 +762,219 @@ pdf_Rosetta_for_vanGenuchten1980 <- function( # nolint: object_length_linter. ))) } +# Checks availability of `Rosetta3` `PDF` +# +# Note: `check_pdf_availability()` requires function name +# to match pattern "pdf_XXX_availability" where XXX = name of PDF +pdf_Rosetta3_availability <- function(verbose = interactive(), ...) { + tmp <- c( + requireNamespace("soilDB"), + requireNamespace("curl") && curl::has_internet() + ) + + res <- all(tmp) + + if (!res && verbose) { + if (!tmp[1]) { + message( + "`pdf_Rosetta3_availability()`: ", + "R package 'soilDB' is not available." + ) + } + if (!tmp[2]) { + message( + "`pdf_Rosetta3_availability()`: ", + "R package 'curl' is not available or there is no live internet." + ) + } + } + + res +} + + +#' Estimate `FXW` `SWRC` parameters using `neuroFX2021` +#' +#' @inheritParams SWRCs +#' @param file_neuroFX2021 A character string that contains the file name with +#' full path of the `neuroFX2021` R object provided by Rudiyanto et al. 2021; +#' The path to the appropriate file can be set per R session +#' via option `"RSW2_FILENEUROFX2021"`, see additional details. +#' +#' @return `swrcp`, i.e,. +#' a numeric matrix where rows represent soil (layers) and +#' columns represent a fixed number of `SWRC` parameters: \itemize{ +#' \item `swrcp[0]` (`theta_s`): saturated volumetric water content +#' of the matric component (units of `[cm / cm]`) +#' \item `swrcp[1]` (`alpha`): shape parameter (units of `[cm-1]`) +#' \item `swrcp[2]` (`n`): shape parameter `[-]` +#' \item `swrcp[3]` (`n`): shape parameter `[-]` +#' \item `swrcp[4]` (`K_sat`): saturated hydraulic conductivity `[cm / day]` +#' \item `swrcp[5]` (`L`): tortuosity/connectivity parameter `[-]` +#' } +#' +#' @references +#' Rudiyanto, Minasny, B., Chaney, N. W., Maggi, F., Goh Eng Giap, S., +#' Shah, R. M., Fiantis, D., & Setiawan, B. I. 2021. +#' Pedotransfer functions for estimating soil hydraulic properties from +#' saturation to dryness. +#' Geoderma, 403:115194, \doi{10.1016/j.geoderma.2021.115194} +#' @references +#' Fredlund, D. G., & Xing, A. 1994. +#' Equations for the soil-water characteristic curve. +#' Canadian Geotechnical Journal, 31: 512–532, \doi{10.1139/t94-061} +#' @references +#' Wang, Y., Jin, M., & Deng, Z. 2018. +#' Alternative model for predicting soil hydraulic conductivity over +#' the complete moisture range. +#' Water Resources Research, 54:6860–6876, \doi{10.1029/2018WR023037} +#' +#' @section Details: +#' [pdf_estimate()] is the function that should be directly called; this here +#' is an internal helper function. +#' +#' @section Details: +#' This function requires that users download +#' the fitted `neuroFX2021` neural networks published by Rudiyanto et al. 2021 +#' in Supplementary Material 1 (resulting in a local file named `xxx_mmc1.zip`). +#' This needs to be unzipped and the resulting `tar` file unpacked; +#' this produces a folder `R code for neuroFX2021`. +#' This folder contains two R data files : `ssc.RData` and `sscbd.RData`. +#' The argument `file_neuroFX2021` is the file name (with path) to `sscbd.RData` +#' if soil density data are available and to `ssc.RData` otherwise +#' (see Rudiyanto et al. 2021). +#' The path to the appropriate file can be set per R session +#' via option `"RSW2_FILENEUROFX2021"` +#' (and avoid passing it directly as argument to the function); +#' this can be useful, for example, if `pdf_estimate()` is used for `FXW`. +#' +#' @md +pdf_neuroFX2021_for_FXW <- function( + sand, + clay, + bdensity = NULL, + file_neuroFX2021 = getOption("RSW2_FILENEUROFX2021", NULL), + ... +) { + stopifnot(pdf_neuroFX2021_availability(file_neuroFX2021)) + + # Load `neuroFX2021` + nfx <- new.env() + load(file_neuroFX2021, envir = nfx) + + # Check whether type of neuroFX2021 is + # SSC (sand, silt, clay) or + # SSCBD (sand, silt, clay, bulk density) + is_sscbd <- dim(nfx[["tW1"]])[2] == 4 + + # Prepare soil data + tmp_txt <- data.frame( + sand = sand, + silt = 1 - (sand + clay), + clay = clay + ) + + if (!is.null(bdensity)) { + if (is_sscbd) { + tmp_txt[, "bd"] <- bdensity + } else { + warning( + "`pdf_neuroFX2021_for_FXW()`: ", + "`bdensity` ignored because ", + "'neuroFX2021' object is for SSC (sand, silt, clay)." + ) + } + } else { + if (is_sscbd) { + stop( + "`pdf_neuroFX2021_for_FXW()`: ", + "'neuroFX2021' object is for SSCBD (sand, silt, clay, bulk density) ", + "but `bdensity` contains no values." + ) + } + } + + # Evaluate neuroFX2021 + res <- iterate_neuroFX(tmp_txt, nfx, niter = dim(nfx[["tW1"]])[1]) + + # Aggregate across iterations + tmp_res <- lapply(c("mean", "sd"), function(f) apply(res, 2:3, f)) + + # Backtransformation + for (k in seq_along(tmp_res)) { + # backtransform log(alpha) -> alpha + tmp_res[[k]][, 2] <- exp(tmp_res[[k]][, 2]) + # backtransform log(n - 1) -> n + tmp_res[[k]][, 3] <- 1 + exp(tmp_res[[k]][, 3]) + # backtransform log10(Ks) -> Ks + tmp_res[[k]][, 5] <- 10 ^ tmp_res[[k]][, 5] + } + + list( + mean = tmp_res[[1]], + sd = tmp_res[[2]] + ) +} + +# Checks availability of `neuroFX2021` `PDF` +# +# Note: `check_pdf_availability()` requires function name +# to match pattern "pdf_XXX_availability" where XXX = name of PDF +pdf_neuroFX2021_availability <- function( + file_neuroFX2021 = getOption("RSW2_FILENEUROFX2021", NULL), + verbose = interactive(), + ... +) { + res <- !is.null(file_neuroFX2021) && file.exists(file_neuroFX2021) + + if (!res && verbose) { + message( + "`pdf_neuroFX2021_availability()`: ", + "data file 'file_neuroFX2021' does not exist; ", + "see documentation for `pdf_neuroFX2021_for_FXW()` and consider setting ", + "`options(RSW2_FILENEUROFX2021 = \"path/to/sscbd.RData\")`" + ) + } + + res +} + + +# Evaluate neural net: code based on Rudiyanto et al. 2021 +eval_nnet <- function(X, W1, W2) { + N <- nrow(X) + # from input layer to hidden layer + xt <- rbind(t(X), matrix(1, nrow = 1, ncol = N)) + h <- W1 %*% xt + # activation function + y1 <- tanh(h) + # from hidden layer to output layer + t(W2 %*% rbind(y1, matrix(1, nrow = 1, ncol = N))) +} + +# Iterate over neuroFX2021: code based on Rudiyanto et al. 2021 +iterate_neuroFX <- function(x, nfx, niter = 50) { + res <- array(dim = c(niter, nrow(x), 6)) + + # loop though n iteration + for (k in seq_len(niter)) { + # Predict theta_sat, log(alpha), log(n-1), m + res[k, , 1:4] <- eval_nnet( + x, + W1 = nfx[["tW1"]][k, , ], + W2 = nfx[["tW2"]][k, , ] + ) + # Predict log10(K_sat), L + res[k, , 5:6] <- eval_nnet( + x, + W1 = nfx[["kW1"]][k, , ], + W2 = nfx[["kW2"]][k, , ] + ) + } + + res +} + #' Check Soil Water Retention Curve parameters #' @@ -742,7 +1064,8 @@ check_swrcp <- function(swrc_name, swrcp) { #' #' @section Details: #' [swrc_names()] lists implemented `SWRCs`; -#' [pdf_names()] lists implemented `PDFs`. +#' [pdf_names()] lists implemented `PDFs`; and +#' [check_pdf_availability()] checks availability of `PDFs`. #' #' @section Details: #' For backward compatibility, `fcoarse` and `layer_width` may be missing. @@ -764,7 +1087,8 @@ check_swrcp <- function(swrc_name, swrcp) { #' #' @seealso #' [pdf_estimate()], -#' [check_swrcp()] +#' [check_swrcp()], +#' [check_pdf_availability()] #' #' @examples #' fsand <- c(0.5, 0.3) @@ -823,7 +1147,8 @@ check_swrcp <- function(swrc_name, swrcp) { #' theta <- seq(0.05, 0.55, by = 0.001) #' soils <- data.frame( #' sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), -#' clay_frac = c(0.03, 0.13, 0.58) +#' clay_frac = c(0.03, 0.13, 0.58), +#' bd = c(1.614, 1.464, 1.437) #' ) #' phi <- list( #' Campbell1974 = swrc_vwc_to_swp( @@ -834,17 +1159,34 @@ check_swrcp <- function(swrc_name, swrcp) { #' ) #' ) #' -#' if (requireNamespace("curl") && curl::has_internet()) { +#' if (check_pdf_availability("Rosetta3")) { #' phi[["vanGenuchten1980"]] <- swrc_vwc_to_swp( #' theta, #' sand = soils[, "sand_frac"], #' clay = soils[, "clay_frac"], +#' bdensity = soils[, "bd"], #' swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") #' ) #' } #' +#' # Use PDF "neuroFX2021" to estimate parameters of SWRC `FXW` +#' \dontrun{ +#' # Set neuroFX2021 file path, see details in `pdf_neuroFX2021_for_FXW()` +#' options(RSW2_FILENEUROFX2021 = "path/to/sscbd.RData") +#' } +#' +#' if (check_pdf_availability("neuroFX2021")) { +#' phi[["FXW"]] <- swrc_vwc_to_swp( +#' theta, +#' sand = soils[, "sand_frac"], +#' clay = soils[, "clay_frac"], +#' bdensity = soils[, "bd"], +#' swrc = list(swrc_name = "FXW", pdf_name = "neuroFX2021") +#' ) +#' } +#' #' if (requireNamespace("graphics")) { -#' par_prev <- graphics::par(mfcol = c(2, 1)) +#' par_prev <- graphics::par(mfcol = c(length(phi), 1)) #' #' for (k in seq_along(phi)) { #' graphics::matplot( diff --git a/inst/WORDLIST b/inst/WORDLIST index 4deae414..8facea54 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -29,6 +29,7 @@ evapotranspiration exter forb geoscientific +geotechnical gregorian lodgepole loess @@ -48,6 +49,7 @@ spatiotemporal submodule symlink toolchain +tortuosity transmissivity xeric @@ -91,15 +93,21 @@ Canadell Clapp codecov Espinosa +Fiantis +Fredlund Freund Genuchten +Geoderma Gessner +Giap Gidden Ginn github +Goh Havlina Hornberger Innis +Jin Kainuma Krummel Lamarque @@ -107,10 +115,12 @@ Lauenroth Lavin Luderer Maestas +Maggi Markov Matsumoto Meinshausen Milchunas +Minasny Montzka Mualem Nauels @@ -128,13 +138,15 @@ rhub Riahi Rotella roxygen -rSOILWAT rSFSTEP rSFSW +rSOILWAT rSW +Rudiyanto Sala Schaap Schlaepfer +Setiawan SOILWAT Springer SQLite @@ -148,5 +160,6 @@ Vollmer Vuuren Wickham Wuenschel +Xing Zach Zhang diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index fc2afa8d..66d97729 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -73,6 +73,7 @@ Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} \seealso{ \code{\link[=swrc_names]{swrc_names()}}, \code{\link[=pdf_names]{pdf_names()}}, +\code{\link[=check_pdf_availability]{check_pdf_availability()}}, \code{\link[=pdf_estimate]{pdf_estimate()}}, \code{\link[=check_swrcp]{check_swrcp()}}, \code{\link[=swrc_swp_to_vwc]{swrc_swp_to_vwc()}}, diff --git a/man/check_pdf_availability.Rd b/man/check_pdf_availability.Rd new file mode 100644 index 00000000..124038eb --- /dev/null +++ b/man/check_pdf_availability.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{check_pdf_availability} +\alias{check_pdf_availability} +\title{Check availability of \code{PDFs}} +\usage{ +check_pdf_availability(pdfs = names(pdf_names()), verbose = interactive()) +} +\arguments{ +\item{pdfs}{A character vector. \code{PDF} names to be checked; +defaults to \code{pdf_names()}.} + +\item{verbose}{A logical value.} +} +\value{ +A named logical vector with current availability of \code{PDFs}; +\code{pdfs} that are not implemented return \code{NA}. +} +\description{ +PDFs implemented in \code{SOILWAT2} are always available; +PDFs implemented in \code{rSOILWAT2} may have additional requirements, e.g., +live internet connection or access to specific data files. +} +\examples{ +check_pdf_availability() +check_pdf_availability("neuroFX2021") +check_pdf_availability("nonexistent_PDF") + +} diff --git a/man/list_matched_swrcs_pdfs.Rd b/man/list_matched_swrcs_pdfs.Rd index b540cecc..a5cd8760 100644 --- a/man/list_matched_swrcs_pdfs.Rd +++ b/man/list_matched_swrcs_pdfs.Rd @@ -25,3 +25,16 @@ Matching pairs of implemented `SWRCs` and `PDFs` \var{"NoPDF"} is not included in the list. } +\examples{ +# Data frame of SWRC-PDF combinations +df_swrc_pdfs <- rSOILWAT2::list_matched_swrcs_pdfs() + +# List of SWRC-PDF combinations +list_swrcs_pdfs <- unname(as.list(as.data.frame(t(df_swrc_pdfs)))) + +# Available SWRC-PDF combinations +has_pdf <- check_pdf_availability(df_swrc_pdfs[, "PDF"]) +df_swrc_pdfs[has_pdf, , drop = FALSE] +list_swrcs_pdfs[has_pdf] + +} diff --git a/man/pdf_Rosetta_for_vanGenuchten1980.Rd b/man/pdf_Rosetta_for_vanGenuchten1980.Rd index 8a8859c9..02eacda3 100644 --- a/man/pdf_Rosetta_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta_for_vanGenuchten1980.Rd @@ -9,7 +9,8 @@ pdf_Rosetta_for_vanGenuchten1980( clay, bdensity = NULL, version = c("3", "1", "2"), - verbose = interactive() + verbose = interactive(), + ... ) } \arguments{ diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index 32dfafe4..bac213fa 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -4,7 +4,7 @@ \alias{pdf_estimate} \title{Estimate \code{SWRC} parameters from soil texture with a pedotransfer function} \usage{ -pdf_estimate(sand, clay, fcoarse, bdensity = NULL, swrc_name, pdf_name) +pdf_estimate(sand, clay, fcoarse, bdensity = NULL, swrc_name, pdf_name, ...) } \arguments{ \item{sand}{A numeric value or vector. @@ -33,6 +33,8 @@ The selected \code{SWRC} name \item{pdf_name}{An character string or vector. The selected \code{PDF} name (one of \code{\link[=pdf_names]{pdf_names()}}, with default \code{"Cosby1984AndOthers"}).} + +\item{...}{Additional parameters passed to selected \code{PDF} function.} } \value{ \code{swrcp}, i.e,. @@ -50,7 +52,8 @@ Estimate \code{SWRC} parameters from soil texture with a pedotransfer function \section{Notes}{ \code{\link[=swrc_names]{swrc_names()}} lists implemented \code{SWRCs}; -\code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}. +\code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}; and +\code{\link[=check_pdf_availability]{check_pdf_availability()}} checks availability of \code{PDFs}. The soil parameters \code{sand}, \code{clay}, \code{fcoarse}, and \code{bdensity} must be of @@ -58,16 +61,14 @@ the same length, i.e., represent one soil (length 1) or multiple soil (layers) (length > 1); however, \code{bdensity} may be \code{NULL}. The arguments selecting \code{SWRC} (\code{swrc_name}) and \code{PDF} (\code{pdf_name}) are recycled for multiple soil layers. - - -Some \code{PDFs} require a live internet connection to be able to obtain -\code{SWRC} parameter estimates. } \examples{ pdf_estimate(sand = c(0.5, 0.3), clay = c(0.2, 0.1), fcoarse = c(0, 0)) soils <- swSoils_Layers(rSOILWAT2::sw_exampleData) + +# Use PDF "Cosby1984" to estimate parameters of SWRC "Campbell1974" pdf_estimate( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], @@ -76,7 +77,8 @@ pdf_estimate( pdf_name = "Cosby1984" ) -if (requireNamespace("curl") && curl::has_internet()) { +# Use PDF "Rosetta3" to estimate parameters of SWRC "vanGenuchten1980" +if (check_pdf_availability("Rosetta3")) { pdf_estimate( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], @@ -87,6 +89,23 @@ if (requireNamespace("curl") && curl::has_internet()) { ) } +# Use PDF "neuroFX2021" to estimate parameters of SWRC `FXW` +\dontrun{ +# Set neuroFX2021 file path, see details in `pdf_neuroFX2021_for_FXW()` +options(RSW2_FILENEUROFX2021 = "path/to/sscbd.RData") +} + +if (check_pdf_availability("neuroFX2021")) { + pdf_estimate( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"], + bdensity = soils[, "bulkDensity_g/cm^3"], + swrc_name = "FXW", + pdf_name = "neuroFX2021" + ) +} + } \references{ Cosby, B. J., G. M. Hornberger, R. B. Clapp, & T. R. Ginn. 1984. diff --git a/man/pdf_names.Rd b/man/pdf_names.Rd index 0464d149..396b43ca 100644 --- a/man/pdf_names.Rd +++ b/man/pdf_names.Rd @@ -17,5 +17,5 @@ Notes: The integer values may change with new versions of \code{SOILWAT2.} } \seealso{ -\code{\link{SWRCs}}, \code{\link[=swrc_names]{swrc_names()}} +\code{\link{SWRCs}}, \code{\link[=swrc_names]{swrc_names()}}, \code{\link[=check_pdf_availability]{check_pdf_availability()}} } diff --git a/man/pdf_neuroFX2021_for_FXW.Rd b/man/pdf_neuroFX2021_for_FXW.Rd new file mode 100644 index 00000000..493e4e00 --- /dev/null +++ b/man/pdf_neuroFX2021_for_FXW.Rd @@ -0,0 +1,85 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdf_neuroFX2021_for_FXW} +\alias{pdf_neuroFX2021_for_FXW} +\title{Estimate \code{FXW} \code{SWRC} parameters using \code{neuroFX2021}} +\usage{ +pdf_neuroFX2021_for_FXW( + sand, + clay, + bdensity = NULL, + file_neuroFX2021 = getOption("RSW2_FILENEUROFX2021", NULL), + ... +) +} +\arguments{ +\item{sand}{A numeric value or vector. +Sand content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{clay}{A numeric value or vector. +Clay content of the matric soil component +(< 2 mm fraction; units of \verb{[g/g]}) of each soil layer.} + +\item{bdensity}{A numeric value or vector. +Density of the whole soil +(matric soil plus coarse fragments; units \verb{[g/cm3]}).} + +\item{file_neuroFX2021}{A character string that contains the file name with +full path of the \code{neuroFX2021} R object provided by Rudiyanto et al. 2021; +The path to the appropriate file can be set per R session +via option \code{"RSW2_FILENEUROFX2021"}, see additional details.} +} +\value{ +\code{swrcp}, i.e,. +a numeric matrix where rows represent soil (layers) and +columns represent a fixed number of \code{SWRC} parameters: \itemize{ +\item \code{swrcp[0]} (\code{theta_s}): saturated volumetric water content +of the matric component (units of \verb{[cm / cm]}) +\item \code{swrcp[1]} (\code{alpha}): shape parameter (units of \verb{[cm-1]}) +\item \code{swrcp[2]} (\code{n}): shape parameter \verb{[-]} +\item \code{swrcp[3]} (\code{n}): shape parameter \verb{[-]} +\item \code{swrcp[4]} (\code{K_sat}): saturated hydraulic conductivity \verb{[cm / day]} +\item \code{swrcp[5]} (\code{L}): tortuosity/connectivity parameter \verb{[-]} +} +} +\description{ +Estimate \code{FXW} \code{SWRC} parameters using \code{neuroFX2021} +} +\section{Details}{ + +\code{\link[=pdf_estimate]{pdf_estimate()}} is the function that should be directly called; this here +is an internal helper function. + + +This function requires that users download +the fitted \code{neuroFX2021} neural networks published by Rudiyanto et al. 2021 +in Supplementary Material 1 (resulting in a local file named \code{xxx_mmc1.zip}). +This needs to be unzipped and the resulting \code{tar} file unpacked; +this produces a folder \verb{R code for neuroFX2021}. +This folder contains two R data files : \code{ssc.RData} and \code{sscbd.RData}. +The argument \code{file_neuroFX2021} is the file name (with path) to \code{sscbd.RData} +if soil density data are available and to \code{ssc.RData} otherwise +(see Rudiyanto et al. 2021). +The path to the appropriate file can be set per R session +via option \code{"RSW2_FILENEUROFX2021"} +(and avoid passing it directly as argument to the function); +this can be useful, for example, if \code{pdf_estimate()} is used for \code{FXW}. +} + +\references{ +Rudiyanto, Minasny, B., Chaney, N. W., Maggi, F., Goh Eng Giap, S., +Shah, R. M., Fiantis, D., & Setiawan, B. I. 2021. +Pedotransfer functions for estimating soil hydraulic properties from +saturation to dryness. +Geoderma, 403:115194, \doi{10.1016/j.geoderma.2021.115194} + +Fredlund, D. G., & Xing, A. 1994. +Equations for the soil-water characteristic curve. +Canadian Geotechnical Journal, 31: 512–532, \doi{10.1139/t94-061} + +Wang, Y., Jin, M., & Deng, Z. 2018. +Alternative model for predicting soil hydraulic conductivity over +the complete moisture range. +Water Resources Research, 54:6860–6876, \doi{10.1029/2018WR023037} +} diff --git a/man/rSW2_SWRC_PDF_estimate_parameters.Rd b/man/rSW2_SWRC_PDF_estimate_parameters.Rd index d4f4927e..703f6502 100644 --- a/man/rSW2_SWRC_PDF_estimate_parameters.Rd +++ b/man/rSW2_SWRC_PDF_estimate_parameters.Rd @@ -11,7 +11,8 @@ rSW2_SWRC_PDF_estimate_parameters( clay, fcoarse, bdensity = NULL, - fail = TRUE + fail = TRUE, + ... ) } \arguments{ @@ -41,6 +42,8 @@ Density of the whole soil \item{fail}{A logical value. If \code{TRUE} (default) and requested \code{PDF} is not implemented in \code{R}, then throw an error; otherwise, return silently.} + +\item{...}{Additional parameters passed to selected \code{PDF} function.} } \value{ \code{swrcp}, i.e,. diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index bc22cdf8..3d209b58 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -134,7 +134,8 @@ to convert from `VWC` to `SWP` with selected `SWRC` \section{Details}{ \code{\link[=swrc_names]{swrc_names()}} lists implemented \code{SWRCs}; -\code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}. +\code{\link[=pdf_names]{pdf_names()}} lists implemented \code{PDFs}; and +\code{\link[=check_pdf_availability]{check_pdf_availability()}} checks availability of \code{PDFs}. For backward compatibility, \code{fcoarse} and \code{layer_width} may be missing. @@ -211,7 +212,8 @@ awc <- diff(c(0, soils[, "depth_cm"])) * as.vector(diff(tmp)) theta <- seq(0.05, 0.55, by = 0.001) soils <- data.frame( sand_frac = c(sand = 0.92, silty_loam = 0.17, silty_clay = 0.06), - clay_frac = c(0.03, 0.13, 0.58) + clay_frac = c(0.03, 0.13, 0.58), + bd = c(1.614, 1.464, 1.437) ) phi <- list( Campbell1974 = swrc_vwc_to_swp( @@ -222,17 +224,34 @@ phi <- list( ) ) -if (requireNamespace("curl") && curl::has_internet()) { +if (check_pdf_availability("Rosetta3")) { phi[["vanGenuchten1980"]] <- swrc_vwc_to_swp( theta, sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], + bdensity = soils[, "bd"], swrc = list(swrc_name = "vanGenuchten1980", pdf_name = "Rosetta3") ) } +# Use PDF "neuroFX2021" to estimate parameters of SWRC `FXW` +\dontrun{ +# Set neuroFX2021 file path, see details in `pdf_neuroFX2021_for_FXW()` +options(RSW2_FILENEUROFX2021 = "path/to/sscbd.RData") +} + +if (check_pdf_availability("neuroFX2021")) { + phi[["FXW"]] <- swrc_vwc_to_swp( + theta, + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + bdensity = soils[, "bd"], + swrc = list(swrc_name = "FXW", pdf_name = "neuroFX2021") + ) +} + if (requireNamespace("graphics")) { - par_prev <- graphics::par(mfcol = c(2, 1)) + par_prev <- graphics::par(mfcol = c(length(phi), 1)) for (k in seq_along(phi)) { graphics::matplot( @@ -262,5 +281,6 @@ Water Resources Research, 20:682-690, \doi{10.1029/WR020i006p00682} } \seealso{ \code{\link[=pdf_estimate]{pdf_estimate()}}, -\code{\link[=check_swrcp]{check_swrcp()}} +\code{\link[=check_swrcp]{check_swrcp()}}, +\code{\link[=check_pdf_availability]{check_pdf_availability()}} } diff --git a/man/swrc_names.Rd b/man/swrc_names.Rd index 9e945a09..29ddca17 100644 --- a/man/swrc_names.Rd +++ b/man/swrc_names.Rd @@ -17,5 +17,5 @@ Notes: The integer values may change with new versions of \code{SOILWAT2.} } \seealso{ -\code{\link{SWRCs}}, \code{\link[=pdf_names]{pdf_names()}} +\code{\link{SWRCs}}, \code{\link[=pdf_names]{pdf_names()}}, \code{\link[=check_pdf_availability]{check_pdf_availability()}} } diff --git a/tests/testthat/test_WaterBalance.R b/tests/testthat/test_WaterBalance.R index 358598be..4a53f44b 100644 --- a/tests/testthat/test_WaterBalance.R +++ b/tests/testthat/test_WaterBalance.R @@ -15,10 +15,18 @@ temp <- sapply(strsplit(temp, "_", fixed = TRUE), function(x) x[[1]]) tests <- unique(temp) test_that("Test data availability", expect_gt(length(tests), 0)) +# List of (available) SWRC-PDF combinations list_swrcs_pdfs <- unname(as.list(as.data.frame(t( rSOILWAT2::list_matched_swrcs_pdfs() )))) +tmp <- check_pdf_availability( + sapply(list_swrcs_pdfs, `[`, j = 2), + verbose = FALSE +) +list_swrcs_pdfs <- list_swrcs_pdfs[tmp] + + aggregate_for_each_timestep <- function(x, dyt) { nid <- 1:2 list( diff --git a/tools/test_SWRCs_and_PDFs_Simulations.R b/tools/test_SWRCs_and_PDFs_Simulations.R index 5b0cbf84..a5725d2c 100644 --- a/tools/test_SWRCs_and_PDFs_Simulations.R +++ b/tools/test_SWRCs_and_PDFs_Simulations.R @@ -9,17 +9,24 @@ # Required packages not part of `rSOILWAT2` -stopifnot( - requireNamespace("ggplot2"), - requireNamespace("curl") && curl::has_internet() -) +stopifnot(requireNamespace("ggplot2")) -#--- List of SWRC-PDF combinations ------ +#--- List of (available) SWRC-PDF combinations ------ list_swrcs_pdfs <- unname(as.list(as.data.frame(t( rSOILWAT2::list_matched_swrcs_pdfs() )))) +tmp <- check_pdf_availability(sapply(list_swrcs_pdfs, `[`, j = 2)) +list_swrcs_pdfs <- list_swrcs_pdfs[tmp] + +if (!all(tmp)) { + message( + "Unavailable PDFs are skipped: ", + toString(shQuote(names(tmp)[!tmp])) + ) +} + #--- Settings ------ list_plot_vars <- list( @@ -39,7 +46,11 @@ soiltxtcls <- data.frame( clay_frac = c( 0.03, 0.06, 0.1, 0.18, 0.13, 0.27, 0.34, 0.34, 0.42, 0.47, 0.58 ), - gravel_content = 0 + `bulkDensity_g/cm^3` = c( + 1.614, 1.482, 1.520, 1.246, 1.464, 1.700, 1.143, 1.384, 1.26, 1.437, 1.277 + ), + gravel_content = 0, + check.names = FALSE ) rownames(soiltxtcls) <- gsub( " ", diff --git a/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R index 77500333..1fb79ffd 100644 --- a/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R +++ b/tools/test_SWRCs_and_PDFs_TheoreticalCurves.R @@ -10,50 +10,61 @@ # Required packages not part of `rSOILWAT2` -stopifnot( - requireNamespace("ggplot2"), - requireNamespace("curl") && curl::has_internet() -) +stopifnot(requireNamespace("ggplot2")) + -#--- List of SWRC-PDF combinations ------ +#--- List of (available) SWRC-PDF combinations ------ list_swrcs_pdfs <- unname(as.list(as.data.frame(t( rSOILWAT2::list_matched_swrcs_pdfs() )))) +tmp <- check_pdf_availability(sapply(list_swrcs_pdfs, `[`, j = 2)) +list_swrcs_pdfs <- list_swrcs_pdfs[tmp] + +if (!all(tmp)) { + message( + "Unavailable PDFs are skipped: ", + toString(shQuote(names(tmp)[!tmp])) + ) +} + #--- Inputs ------ thetas <- seq(0.00, 0.55, by = 0.001) -phis <- sort(c( +phis <- unique(sort(c( seq(-1000, -4, by = 1), seq(-4, -1, by = 0.1), seq(-1, -0.01, by = 0.01), -0.033, seq(-0.01, 0, by = 0.001), seq(-0.001, 0, by = 0.0001) -)) +))) -soils <- data.frame( +soiltxtcls <- data.frame( sand_frac = c( 0.92, 0.82, 0.58, 0.43, 0.17, 0.58, 0.32, 0.1, 0.52, 0.06, 0.22 ), clay_frac = c( 0.03, 0.06, 0.1, 0.18, 0.13, 0.27, 0.34, 0.34, 0.42, 0.47, 0.58 ), + bd = c( + 1.614, 1.482, 1.520, 1.246, 1.464, 1.700, 1.143, 1.384, 1.26, 1.437, 1.277 + ), fcoarse = 0 ) -rownames(soils) <- gsub( +rownames(soiltxtcls) <- gsub( " ", ".", c( - "Sand", "Loamy sand", "Sandy loam", "Loam", "Silty loam", "Sandy clay loam", - "Clay loam", "Silty clay loam", "Sandy clay", "Silty clay", "Clay" + "Sand", "Loamy sand", "Sandy loam", "Loam", "Silty loam", "Sandy clay loam", + "Clay loam", "Silty clay loam", "Sandy clay", "Silty clay", "Clay" ) ) -tag_soils <- paste0("soil__", rownames(soils)) +tag_soils <- paste0("soil__", rownames(soiltxtcls)) #--- Estimate SWRCp ------ @@ -61,9 +72,10 @@ swrcps <- lapply( list_swrcs_pdfs, function(sp){ rSOILWAT2::pdf_estimate( - sand = soils[, "sand_frac"], - clay = soils[, "clay_frac"], - fcoarse = soils[, "fcoarse"], + sand = soiltxtcls[, "sand_frac"], + clay = soiltxtcls[, "clay_frac"], + bdensity = soiltxtcls[, "bd"], + fcoarse = soiltxtcls[, "fcoarse"], swrc_name = sp[1], pdf_name = sp[2] ) From 918e9b4b5160caca4a2b0e89bfc444075d839e0e Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Thu, 30 Jun 2022 10:58:19 -0400 Subject: [PATCH 053/238] Adjusted `rSW_Weather.c` to fill global `allHist` --- src/rSW_Weather.c | 25 ++++++++++++------------- src/rSW_Weather.h | 3 ++- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 7caa3272..49a8bb1e 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -52,7 +52,7 @@ static char *cSW_WTH_names[] = { /* --------------------------------------------------- */ static SEXP onGet_WTH_DATA_YEAR(TimeInt year); -static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year); +static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist); @@ -60,21 +60,21 @@ static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year); /* Global Function Definitions */ /* --------------------------------------------------- */ -Bool onSet_WTH_DATA_YEAR(TimeInt year) { +Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist) { int i = 0; Bool has_weather = FALSE; if (bWeatherList) { for (i = 0; i < LENGTH(WeatherList); i++) { if (year == *INTEGER(GET_SLOT(VECTOR_ELT(WeatherList, i), install("year")))) { - has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(WeatherList, i), install("data")), year); + has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(WeatherList, i), install("data")), year, hist); } } } else { for (i = 0; i < LENGTH(GET_SLOT(InputData, install("weatherHistory"))); i++) { if (year == *INTEGER(GET_SLOT(VECTOR_ELT(GET_SLOT(InputData, install("weatherHistory")), i), install("year")))) { - has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(GET_SLOT(InputData, install("weatherHistory")), i), install("data")), year); + has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(GET_SLOT(InputData, install("weatherHistory")), i), install("data")), year, hist); } } } @@ -228,7 +228,7 @@ SEXP onGet_WTH_DATA(void) { has_weather = FALSE; } else { - has_weather = _read_weather_hist(year); + has_weather = _read_weather_hist(year, SW_Weather.allHist[year - SW_Model.startyr]); } if (has_weather) { @@ -298,8 +298,7 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { return WeatherData; } -Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year) { - SW_WEATHER_HIST *wh = &SW_Weather.hist; +Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { int lineno = 0, i, j, days; Bool has_values = FALSE; RealD *p_WTH_DATA; @@ -332,23 +331,23 @@ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year) { * either valid or SW_MISSING. */ j = i + days * 1; if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - wh->temp_max[doy] = SW_MISSING; + hist->temp_max[doy] = SW_MISSING; } else { - wh->temp_max[doy] = p_WTH_DATA[j]; + hist->temp_max[doy] = p_WTH_DATA[j]; } j = i + days * 2; if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - wh->temp_min[doy] = SW_MISSING; + hist->temp_min[doy] = SW_MISSING; } else { - wh->temp_min[doy] = p_WTH_DATA[j]; + hist->temp_min[doy] = p_WTH_DATA[j]; } j = i + days * 3; if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - wh->ppt[doy] = SW_MISSING; + hist->ppt[doy] = SW_MISSING; } else { - wh->ppt[doy] = p_WTH_DATA[j]; + hist->ppt[doy] = p_WTH_DATA[j]; has_values = TRUE; } } /* end of input lines */ diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index 2f7daba3..ad2cd0c0 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -1,5 +1,6 @@ #include "SOILWAT2/Times.h" +#include "SOILWAT2/SW_Weather.h" #include // for SEXP /* =================================================== */ @@ -8,4 +9,4 @@ SEXP onGet_SW_WTH(void); void onSet_SW_WTH(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); -Bool onSet_WTH_DATA_YEAR(TimeInt year); +Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist); From d493010dbe5183c7d4367113d5d038baf758d20a Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 30 Jun 2022 11:45:31 -0400 Subject: [PATCH 054/238] Fix typo in documentation of `pdf_neuroFX2021_for_FXW`() - the correct interpretation of `swrcp[3]` is "m" (changed from previous incorrect "n"; `swrcp[2]` is "n") --- R/sw_Pedotransfer_Functions.R | 4 ++-- man/pdf_neuroFX2021_for_FXW.Rd | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index b0cf8c8b..983b24f0 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -807,8 +807,8 @@ pdf_Rosetta3_availability <- function(verbose = interactive(), ...) { #' \item `swrcp[0]` (`theta_s`): saturated volumetric water content #' of the matric component (units of `[cm / cm]`) #' \item `swrcp[1]` (`alpha`): shape parameter (units of `[cm-1]`) -#' \item `swrcp[2]` (`n`): shape parameter `[-]` -#' \item `swrcp[3]` (`n`): shape parameter `[-]` +#' \item `swrcp[2]` (`n`): shape parameter `[-]` +#' \item `swrcp[3]` (`m`): shape parameter `[-]` #' \item `swrcp[4]` (`K_sat`): saturated hydraulic conductivity `[cm / day]` #' \item `swrcp[5]` (`L`): tortuosity/connectivity parameter `[-]` #' } diff --git a/man/pdf_neuroFX2021_for_FXW.Rd b/man/pdf_neuroFX2021_for_FXW.Rd index 493e4e00..d3d172b9 100644 --- a/man/pdf_neuroFX2021_for_FXW.Rd +++ b/man/pdf_neuroFX2021_for_FXW.Rd @@ -37,8 +37,8 @@ columns represent a fixed number of \code{SWRC} parameters: \itemize{ \item \code{swrcp[0]} (\code{theta_s}): saturated volumetric water content of the matric component (units of \verb{[cm / cm]}) \item \code{swrcp[1]} (\code{alpha}): shape parameter (units of \verb{[cm-1]}) -\item \code{swrcp[2]} (\code{n}): shape parameter \verb{[-]} -\item \code{swrcp[3]} (\code{n}): shape parameter \verb{[-]} +\item \code{swrcp[2]} (\code{n}): shape parameter \verb{[-]} +\item \code{swrcp[3]} (\code{m}): shape parameter \verb{[-]} \item \code{swrcp[4]} (\code{K_sat}): saturated hydraulic conductivity \verb{[cm / day]} \item \code{swrcp[5]} (\code{L}): tortuosity/connectivity parameter \verb{[-]} } From 72a3ac68cff75b75f9d19e6268ac2cfde4563d1b Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 5 Jul 2022 12:37:23 -0400 Subject: [PATCH 055/238] Updated submodule to `feature_read_weather` --- .gitmodules | 2 +- src/SOILWAT2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 39058bbd..7b3f415a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = master + branch = feature_read_weather diff --git a/src/SOILWAT2 b/src/SOILWAT2 index d529bccc..a64f2772 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit d529bcccf8147d3845d6737fccd155109d323378 +Subproject commit a64f2772f2be0bfe445bd348f38a444b2d54351e From 1d181fb588410a0149bd5df3480e14508c2bd2fe Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 5 Jul 2022 12:43:05 -0400 Subject: [PATCH 056/238] Added new function `onSet_SW_WTH_read()` - Created mentioned function to mirror allocation actions on SOILWAT side - Renamed old `onSet_SW_WTH_read()` to `onSet_SW_WTH_setup()` --- src/rSW_Control.c | 4 +++- src/rSW_Weather.c | 21 ++++++++++++++++++++- src/rSW_Weather.h | 3 ++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/rSW_Control.c b/src/rSW_Control.c index e7cd57f4..f2082ffa 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -77,7 +77,7 @@ void rSW_CTL_obtain_inputs(Bool from_files) { if (debug) swprintf(" > 'model'"); #endif - onSet_SW_WTH(GET_SLOT(InputData, install("weather"))); + onSet_SW_WTH_setup(GET_SLOT(InputData, install("weather"))); #ifdef RSWDEBUG if (debug) swprintf(" > 'weather-setup'"); #endif @@ -95,6 +95,8 @@ void rSW_CTL_obtain_inputs(Bool from_files) { if (debug) swprintf(" > 'mwgen'"); #endif } + + onSet_SW_WTH_read(); onSet_SW_VPD(GET_SLOT(InputData, install("prod"))); #ifdef RSWDEBUG diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 49a8bb1e..6a43fca3 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -148,7 +148,7 @@ SEXP onGet_SW_WTH() { return SW_WTH; } -void onSet_SW_WTH(SEXP SW_WTH) { +void onSet_SW_WTH_setup(SEXP SW_WTH) { int i, tmp; SW_WEATHER *w = &SW_Weather; SEXP @@ -354,3 +354,22 @@ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { return has_values; } + +void onSet_SW_WTH_read() { + + int year; + + SW_WEATHER *w = &SW_Weather; + SW_MODEL *m = &SW_Model; + + w->n_years = m->endyr - m->startyr + 1; + + w->allHist = (SW_WEATHER_HIST **)malloc(sizeof(SW_WEATHER_HIST *) * w->n_years); + + for(year = 0; year < w->n_years; year++) { + w->allHist[year] = (SW_WEATHER_HIST *)malloc(sizeof(SW_WEATHER_HIST)); + } + + readAllWeather(w->allHist, w->yr.first, w->n_years); + +} diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index ad2cd0c0..4c70f796 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -7,6 +7,7 @@ /* Global Function Declarations */ /* --------------------------------------------------- */ SEXP onGet_SW_WTH(void); -void onSet_SW_WTH(SEXP SW_WTH); +void onSet_SW_WTH_setup(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); +void onSet_SW_WTH_read(); Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist); From af6bfd8907aca182509b801554d655d754d95a0e Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 12 Jul 2022 11:36:22 -0400 Subject: [PATCH 057/238] Added "hist" variable in call to `_clear_hist_weather()` --- src/rSW_Weather.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 6a43fca3..9c140787 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -316,7 +316,7 @@ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { } p_WTH_DATA = REAL(WTH_DATA_YEAR); - _clear_hist_weather(); + _clear_hist_weather(hist); for (i = 0; i < days; i++) { doy = p_WTH_DATA[i + days * 0]; From 67293a11df4d03c2f1b76bbd7092153524fd17de Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 12 Jul 2022 11:51:46 -0400 Subject: [PATCH 058/238] Updated submodule to `feature_climate_predictors` --- .gitmodules | 2 +- src/SOILWAT2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7b3f415a..0a2d10ca 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = feature_read_weather + branch = feature_climate_predictors diff --git a/src/SOILWAT2 b/src/SOILWAT2 index a64f2772..93519f35 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit a64f2772f2be0bfe445bd348f38a444b2d54351e +Subproject commit 93519f354ec236db6a802661b9a1e7d95f02725f From 3cadb413833488beaf8f02df1ba66abc2baf5b09 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Wed, 20 Jul 2022 15:19:33 -0400 Subject: [PATCH 059/238] `onGet_WTH_DATA()` does not take in data twice --- src/rSW_Weather.c | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 6a43fca3..595b8f03 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -224,29 +224,8 @@ SEXP onGet_WTH_DATA(void) { sprintf(cYear, "%4d", year); SET_STRING_ELT(WTH_DATA_names, i, mkChar(cYear)); - if (SW_Weather.use_weathergenerator_only) { - has_weather = FALSE; - - } else { - has_weather = _read_weather_hist(year, SW_Weather.allHist[year - SW_Model.startyr]); - } - - if (has_weather) { - // copy values from SOILWAT2 variables to rSOILWAT2 S4 class object - SET_VECTOR_ELT(WTH_DATA, i, onGet_WTH_DATA_YEAR(year)); - - } else if (SW_Weather.use_weathergenerator) { - // set the missing values from SOILWAT2 into rSOILWAT2 S4 weather object - SET_VECTOR_ELT(WTH_DATA, i, onGet_WTH_DATA_YEAR(year)); - - } else { - LogError( - logfp, - LOGFATAL, - "Markov Simulator turned off and weather file found not for year %d", - year - ); - } + // copy values from SOILWAT2 variables to rSOILWAT2 S4 class object + SET_VECTOR_ELT(WTH_DATA, i, onGet_WTH_DATA_YEAR(year)); } setAttrib(WTH_DATA, R_NamesSymbol, WTH_DATA_names); From 70c534bf19044ab7cf774cdca48f9229dbba6b66 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Wed, 20 Jul 2022 15:22:25 -0400 Subject: [PATCH 060/238] Modified `rSW_Weather.c` to use `allHist` global --- src/rSW_Weather.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 595b8f03..6be9b706 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -243,7 +243,7 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { SEXP nYear; char *cYear[] = {"DOY", "Tmax_C", "Tmin_C", "PPT_cm"}; RealD *p_Year; - SW_WEATHER_HIST *wh = &SW_Weather.hist; + SW_WEATHER *w = &SW_Weather; days = Time_get_lastdoy_y(year); @@ -257,9 +257,9 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { p_Year = REAL(Year); for (i = 0; i < days; i++) { p_Year[i + days * 0] = (i + 1); - p_Year[i + days * 1] = wh->temp_max[i]; - p_Year[i + days * 2] = wh->temp_min[i]; - p_Year[i + days * 3] = wh->ppt[i]; + p_Year[i + days * 1] = w->allHist[year - SW_Model.startyr]->temp_max[i]; + p_Year[i + days * 2] = w->allHist[year - SW_Model.startyr]->temp_min[i]; + p_Year[i + days * 3] = w->allHist[year - SW_Model.startyr]->ppt[i]; } PROTECT(Year_names = allocVector(VECSXP, 2)); @@ -295,7 +295,7 @@ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { } p_WTH_DATA = REAL(WTH_DATA_YEAR); - _clear_hist_weather(); + _clear_hist_weather(hist); for (i = 0; i < days; i++) { doy = p_WTH_DATA[i + days * 0]; From 1e2beaa6cf9ee699c654c8970bc88edeb62472cd Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Wed, 20 Jul 2022 15:23:11 -0400 Subject: [PATCH 061/238] Updated submodule to latest `feature_read_weather` branch --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index a64f2772..184e6572 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit a64f2772f2be0bfe445bd348f38a444b2d54351e +Subproject commit 184e6572c4ee2bc988a518f0597f50079a614b1c From 5a7f96b88c6f3054823b147e40cd4b05ea8b462a Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Wed, 20 Jul 2022 15:25:20 -0400 Subject: [PATCH 062/238] Updated example data --- data/sw_exampleData.rda | Bin 53985 -> 53998 bytes tests/test_data/Ex1_input.rds | Bin 5552 -> 5545 bytes tests/test_data/Ex1_output.rds | Bin 57442 -> 10134 bytes tests/test_data/Ex2_input.rds | Bin 12853 -> 12849 bytes tests/test_data/Ex2_weather.rds | Bin 9162 -> 197151 bytes tests/test_data/Ex3_input.rds | Bin 5552 -> 5546 bytes tests/test_data/Ex3_output.rds | Bin 57442 -> 10134 bytes tests/test_data/Ex4_input.rds | Bin 5552 -> 5545 bytes tests/test_data/Ex4_output.rds | Bin 57442 -> 10134 bytes tests/test_data/Ex5_input.rds | Bin 5557 -> 5549 bytes tests/test_data/Ex5_output.rds | Bin 57427 -> 10152 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 0426529553296544700d92162520f0c84e6fb0d1..e4eb0dcbb43faf9ce201b86bb4a6839a987e873a 100644 GIT binary patch delta 53351 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%0AvDPC=?|qIshr9(vFcdp={AhNW4ygpyGc7$OV}Y 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 J2OSqK{1;;D)4u=! delta 5256 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 diff --git a/tests/test_data/Ex1_output.rds b/tests/test_data/Ex1_output.rds index 89e26c175e4ac4dcff0dee5214cd61117da07238..d0a1fd585a994311aca47883804d88422011ea0c 100644 GIT binary patch literal 10134 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 E7nR}^g#Z8m literal 57442 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 H)^7m--VI`Q diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index 6d352f6e0eb0212bcb1f2605bd44d5fb61039087..cccc25ad4ff18892062b75dca8ee68fceda78008 100644 GIT binary patch literal 12849 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 delta 12562 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 Z%amL#UvYYu;P8=C)k6U}bJV$W{|D<$^F06n diff --git a/tests/test_data/Ex2_weather.rds b/tests/test_data/Ex2_weather.rds index 585dd1cba438d990f724f6ebdb850cd17e1ba416..e3add1117ce13ba36ecdbdc8af195752cd2d95d6 100644 GIT binary patch literal 197151 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

  1. )(kh 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

    d$E#@ZOh+Fm(L03)j(_Jz{Aw4BY=mS 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 Y+*5wI|3R(+X=+gZFP9xIpWvhg00mGN*8l(j literal 9162 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 K`E}-^ul@@UvbjV6 diff --git a/tests/test_data/Ex3_input.rds b/tests/test_data/Ex3_input.rds index f66b615a1d1ad3525f2f8bb1710a211453847d79..a3fcb242ea781a8d60e2a7eab4d0e1d53c407617 100644 GIT binary patch literal 5546 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 diff --git a/tests/test_data/Ex3_output.rds b/tests/test_data/Ex3_output.rds index 0485da7e04561f12bfdf7be5b2351e8c7e1866eb..96785428051779f622e66634fc118f852765671f 100644 GIT binary patch literal 10134 zcmZ{}1yCGO*MU4jlS!vG;ba0qU}A-KCs26qeYK0pQ^ zY?l4MZ)^KKH59eQsCXuDYk`B442V&jC2edMU1Xj2sxClK&8?$Zk)5Vp0Bf zpVIyvV`3q{a?~4Z3Z~C~pA-f3D?LlxKYfZMd)rES@@d#nUBfmuJ|gcSTVX(Xd}qxB znSJjzhG;+a@3@CZO}I6J_Q13@o!hx`xoVbgYBk=GP>S5DMy$vQEi+h?u%$_oM3nO@ zeN?w(i-^mzcDv0*73X>=R;;VfgsbJ}_8CNJk)Wf4WH4YkrWEe)F}F{rfEKYd;6>Nm zcraPY1Wp(dwvt+;hFMSZs^4DZ`?TxF+wv}&Eoy|0tmWz|wDrd#NTdnnJw4X?Npb?o z%Eqr&Y~h~UZ!eDL;kU zhyqY&14&G5B_ZPQG*Ldu8b^yA8(gngSKw;f{3VrMSgG5!8t&k8@NH4D?k`_@%tN-6 z0a%CCuSl#f`r3oJAJ4rGtEMhgfcaEB);gw*$*X4$#+) z+5VEqFLe8+nSG#XQ2HiK2=PWeRD_I`xR_5xC=)1Lypb6?Ltc#3!5;hg6LuSwVy%O# zag7Dn@N;MsRt}?Scd{Y_^nWq0I=CH1HR~HA<*MSPe=ye}@3lcQdpu?XVX{c;+T4e# z`x3m6a-wCkXv2G9uV_`I@(b-d9eyJDN-o;w{iXd>M-+oV`#gabO0QSfs82H|(TjD6 z%1tN6fYzVeE)g2c?~ExL7PMdJ%Lk+4W9tFE3$cfNbOGqSI(-^>EPV*>`^s@e0+inU z4DqoW9n{U4{g4hXO%yX9)r1v9r?hTs$@$oTB0V_shDzM%<#*=#O|u(6fEnCrKhk*u zuqhjfGlNbft-GTM*M^f4t{FTuk3_$hwgsO4bmpOSUCZA}H68pDqtlcNF29a5JBllN zIw)4hYq+XG{cuVEP;Yjag{aPbdrl{ssn6ET2y&Wz8Jk576F$PKx?of=P$o8>D0`HH>`51(=azr?s3Curc0j2LLw_SRRI;>eQo`@n$t z_x2bKp^uS=sBRmers}*5WmA;gp&yI!b)K?R_{X_v_$4-0Ic`|B$ika&7o@W9#RbHl zprqD+MnkY*%j_`I{9{Q?>aip}f2BkR1a3Y!yfw!n5XX(be-gCpY)GbVh?3&`;O#U0 zs2WEwPl?2A8o7=A8==J;=QB~s8FDPpnF!Vgbaq0!2z(O}ug(ubJ7kmSXJ$^eHzx`~ z!~1FZ6EZC7*uVM~CcJ~UJ`lcW8TOg}EfV+najboXe&4W;2QLhF&hx|oPvl}tcOL&E z-CIRFmV$xsLEM!xkvb+H^GpUJ-m985%l{xxr6ug!-=Z4=_ z&8@0;?lK!0k1`vv2zn*h$qGe-OX11!A2~I{s+vP~%`& zhqPBn%v2;rHn^fJaMP=G+u%^0l|2rmIFxvL4*{84QXKZT>#lbOdYas$J%j{d@=?bX z#6iubVZ+Kh7TN>HYOto&8Mc5;M91ju+!cR zL@2YrRWH{p)r|dE^W_d@@#Z8!;e1eP=SBnP&rK@@jZ8bgXFgyH4%omrXS(<0Q_FOB zd=lsv=;9ogHngqJlR8&8@y!Y|zb0A^`@z-LcTKNv&yh}_eSS1#OL9ymo)P-@aV?%p zO1QAlK%}tnPv$gsZhN3KnK;86M5)7Z> z8Rz1euX~vmhC>uo4Brmz@+XC51^XD9#Bk#TAd%^?B~4jKwziXC@@Knad$Qmmn$K>p z+{W_in-$gd4U^uS{EN60f;Nts!T5((hg}(GavP-Z$MJ8>lnHP$uZVR5Lax2a3w=Kw z&C!X8SCEf@Vfx|Qhh@_aML|2f`@?Kat`SlFa1Fu%wW3kOE$<*W<2qPPXvkt+QngiE z@FR`tmC0*;m!0Sxkn~1B5nS>oluq*|qT<1h!*<{5{kTAJY|a9y?&F zAi?MxN5eYy-t@Wn%{_DHImNls@1^tfje&F!)-eifAg{#62r?F$hXCdPGZ0>?H>b{Fd5+X?*xZq5#+3Br&EaeM0kdJfRTtBkil zAhxWaa*lrujX3wR(=UFDDYnmde2o)UtoR}TYE5GcTJf+PE$00xUu*q`4g=(2Q?F4q z{5`ZTAWw77A)v5SDYziHwBTbrgY#{V-*uQ?NmS-PVl!){Hyc&H`>n z47d9NKRjz(jvdGbDz2P5+oj*u$KUcBftPf_OLE{PP4HdY$*&%pu!zO~UzqJp^9#NZ z+gCR zTBkpVvr2;?n-n_}?b+s!K&ztBc8Fz3|I~J*YD)0-Tjm&TUWrQ~mTKnMsRS!coPp0k z@*~cdda0Z~QEP4m88ouz&1$|Ub7**a&luT$!)SQ=E3o$!|J>jNl19v{^Wu+4PDA0i+2TI2P^pWhOmuH|kn) zd!#_dM@?N98jYdi+@Io)n$gssSZ6#Tt(bW%dTU=k>M2-aUG-f}2ZU>g;`aKDXIXts zlY1Vr=xlep4p_wM*CaU;Iqe{_K^vcIUMG%S*ftDx!#N$?L zYWdi+p$6FnF=762luh^|+YVVDw2Rd%VS*bEDUf|G10z!W>CNac$~QH(zFfc0;jkPC z|K|!fc(ViH$wQdmNf@ng)AmZ>J?lSj>T&PPq2}z+fn$9arqgWbwwAEhcGRCoS#O#! zKGc1Um5FW(hH=vM`I!ToO}KGp2B>J`DV}UO=|vuK_OA1_FWDi55x6H{0~_w6jf9Yb}~$*7((j5R)F!nV3QRqc(q^ z<-UqaDHmeB%2K`x*4p5^%092RIzo47h8{|KX8YRzuRH%g7s*iE-+c}|eV@*0>Cua% z)lSK=!B_v#VcloxEkv|S1hn~dqL*}{P$_pM$U*AUq}`EH@zPGcgYicmTd8+Z5X;E` zOA6#54|j;XKw5Aan6)vK)JDx8`IhABHlDj3`fu765U^Y|ag^5Z{{;Xm-lf8bljDZ2|*i8p_h%!TuLE5tP_2GhnurTE(eyR*GZ z^@|=Qw3O30N>sIiH)d8@N5xN2z7eRLhz;dL4aOX?{v%KA{D<1ZaVjb)B^mqtz9zWi zBY>UP=&1qB((ffTVh3XmkvVri9SiS%KBi67H^4La8sKAyJ5eZQv9R(j4CdlgF2jo*kjV$#Z8uU3?abX?l6eZvRji-~HRVMx%5{!Ss^1s(NYn zRSw6$iZH353#sL3>q|9sc|6j5%E&ELBd8PX0OJCsqb*z6dreVVN1U{A+)+5k3*vUx zkS~@~wpQ9cD1~vLuXjgj;so%mvS(ImW0yYja}P9-B9^98Tjd6qyv-r#V)9eoAvowN zUzO6ne~#1Z`QCdl<`7h*dHwd5$gyb2l3}3)v<_(*`0I=2#A+J)`A#wBq~%(j_O27~ z2VD5%0jr?W_D!>4=uDpo_O}!WU#sHeWU@ zg=K4e-Ok#?hj06f)?XU(M=U2TU-W4cS|WYX3p-dW#E`ydEce-mkO%E0or3fjVx%vY z=+z5-~^j=&;g1K(_1Vq`JWetKjH1P_-#Q3GqIeUI+f?NOOKT_^rVrl2x!UT0-klLgkg?VQ>W zg~mZwuoj^m8ai0G%0IM^vS%h zh_iI793ePd$iI7K$0J;3c`y+R&q8pITuV}zjqqboIQG@tO^jr0xRcM=?d>=k@oJeL z%?(WqM_SR$6+%}@lk%sv~VQdAauch6z7a+H!6GIUj*wlNxey1)7h4nb!UYL-MIh1@HaBj-XpG${%i(95!rn|u9ZX}Tx1QMgBEpKOXr$FplMh8q>ZE4#hYpzCEBU(29MrhzE_Kj^xaXWC<2k#~nr zf~O*;Qfp(-Kf}<)u{AreJ*hDYxl=R&t1e;p_LE!)>pDJ1yPsu&%-Lx_ct;~EC)I70z-4Y!Sp3{>RK#OtnNYb4MunHm|EP*9ka69Y?lqoff19+S zYQbhieK?j#OH$dj;=KB7_Rw6YAw=S)l1|n!(RTK)8`Teadzx&fqq5lgPza25O%sd6 zORMISTq2kFKlIw#R(!vR2e--`+&>}shxvq6=t2)c-k$F7+0TWPO}eoEgcVa<5Pk^| z!hgT=?gNPEJa`_Pdi%r3$|Yg&#IKPLmeixJ3X-cTzO)f1j@P;j>8yqJOh;!UE7*@# z0z&iG@-@?wgu)Qb4@SrW$d9Tfib4jYW|fugBk4j~DaMatL*QG>-_ck8@2Np?xz?T% z(7&gYTkSqgDop3Q6Q#221NZXc#D9QSIyOx2Cemo+X&yO+00`eOMDzt_D&-K<^*`hE zh>rr7KfXO(-no&_ci%4U*RZ}NT0a#N!K?w7PZA*z&J*%Ew_guBRDZBu#~Q^pH`&a& z>^OhSWzF%Xb=39hXD+jKCPHLzKEz4+=*Hkjtj^j~*~!k8N%QL^3lJaxy>;_>%_)nR z^+pRjyfG58c(80390yFR@Vl$Dkv3LWv{o7bR~b+HcyM;LCm$;fx(*)^A|iOpe;V3s z?-e6@er5RJsz&o@*3a4hyK`##N6!SSL?A?8;$DtE!hfgElgW2mi@I_>C+YDQMm%n+aDS5|~u9>C(PAJ(O=HKxmYV%|Uq5IvRZO zRx^x?4f{P@ZPAMDhknYsq%2IkKBLQ3=2F*0 zgkp;8Q1;b1R+0zC8^K9QSoH6;lW+z`EegziJ$F*P-g*M;Mh9q|UuOFqkdbZ~G!bHu|Q3;m-MPcnEqCL%-hdXRAuWS7ekPDh!S+p~*|W z%=bQ6hG?(y;{J&M+~rjjJs3`YY8^moJfQG(&z`>UM$$ahL4R!e@sb?tTV~KUQ0)L{Cr)SlBYJRkK_SN z&Dq2F`|AywEBSLco}qPcZv@9)2Tomj-z?#Q!8AR?jWX+MuI7)~VhO%z7z z{IqHC=Sj@3(gvaFH^3 za=4Ai!AL9@DenYz94sv`AFj&a{FKR<_UI$?>FAMS>SUml@~l z25h5Z^smi@QKu}FY!;ATR&XmHV8vSO+jEnBxRhz9J2#-*n#0Bcp6fUrX~%5&FZ<=6 zv^HAZd?`at`aL{Z(wOwX?bVh1eDBD{gaZ$ZDXX^A5@a2=3 z#qu8EFi$_QPs&kHK^iiSTz{Mu82oFuYY?x4|4y6An2nDLL&U)}PnQ1m;}Ew2N6uNx z<`*=Yrk}jB88?{IT%!M=41;j3wk%9pDVWfQFkK4OhW*p&kV}ztu@d5fu8W-o?MaiV zY=JhcC?DKDE4?_hTr-&9pa^cY3*KeIPVtClkFe)ta*uo*yv#phj9$q1U2?-uk+k_%XrFAL_U)ER<-zflh z)i`SOW)UB^`1=9ox1R3F{mIAG4_QH*nIYQC1)->YYE^ph&zh!Sh3kU7r|UZ(_u71Q zgTtCRm-xGlXl`TIx(o*X*M{ZMy<3;QuDZTk$od~c;Zsx3trN|V)vjovCmxWz-JHWv zZ%z4rWE8hIl~UPa>F#3nRM2T2cS5^zF{@Vu&BW94K-I8`bZOngpfshxxaqkW`9FOv zq{3I{Z$*oy^SOFgzuO&Li_Mqr(UCdC@(3| z@*^xGQ;Eab^_}_J&TPgw5{myQ$Y6$Aw-`j@RA(}pH1)znrMeqQ*UYgtv;>7N&aIXv zd2uqE;IpRgj@V#5C@mP2c;5aJkk?qRqxf2?Lp}!dipym=Nf(@Pr{0Q@-3Jg7%L4~P zo_wr3r;SJ^s6nnM<}PE>&i#i}3c`bDpxZG{5(5moY-xT2>b)r8D1mG8gKR&KU%B7R zD}3yniROUCTJ-GW2K3Pnd~-}v-G2+;T|HL|DoJDBiUu(w24g=B9RzJz@ZDw0Dv1<# zVDU0cRI{EB;L*)cC}#(HVhCVj2I7A)x_V~F3QQt_Q;jcWwuRMJllNS zC`sB_IDvL((;z=#lTKKSH15oL`(R~h!2nzMz0~7Xa>w%eBHPR-jR}?i_0yUt9RA3m znyvjbJfmQk9ReLt(|r$nk*pP|iPB^hA>jwTVWR>uMhnNwXWGjBS07nb3W!;!!-=E+ zFDd^Z{;$G`mH$U$KZyTN{R?+|G;OVjOh{2KTPHal*#7`(mb%vwIp1{0M(BwAx2##D z!cN~|v=&G3P^P7Yf@kMl08pMR<3JK3hpVQseN% zKXMJ!t-Mm=?{OW4EoGz*T6}&|RcfF>zBOnbx^6{m$C5z61H( z4~g7z(lyRbhzutS!!y+>G0ziWu?li;Heyg%%$ngg%cEo;DD+b4ky|tJgABU#%T>B+ zqx!n>#yf)I+q}?N-Zg!E>i_jUJhWZB*XFca&R4W=4r{;rM6&4dRGLm{cG)((X5)E6 zjpq)q7qUtP1+y+nUPRgmW`9L%dT}6kJ{Y&Pwr05Z`;70%nt2jyn>P^D9CKi#uO(cAyX z*NLgox5brBwS%f*a|5%^$iQoPa@tjM9HdV7uLlOty2L)D1QF1miFhtZ;A=2}Zg1g1*+r_tF_}$_QvecR4n5hV=2tB_Yl#BRf9wbA0AVOTPbAr0rD7#jm@YhUW z{A8rF=Z?X@=>f7h3!D~j=4XyPwLI|2w@&;^2tTS^1rPe!Dwc4VgDPvdL1 zp0BDC7ti;+(`c(Tr~RvVeJQJ9qUCE^DF9ACH&r~HO3Y+{HJ*wOCSnA~cc~21RK#I2 zN~TZO)DGxTxnL_;-H-3A>I(=gyej^S02%}po-A$St)+GUM9f=%xD+)#Eai`0WJb~T z%__an7ogLvy{20y1_5<39aI!g6;P9N=l6eNI-(`JRcLp1SfFx}v$RTZoMR?)w2BtT zhK?8%KNZaQuvD+yoi8{vq;$J3^#0mJa0Ko?edhp~w4#kzIPva_j|J_fxrMc=BJp&M z4cD4O5+Ri>o0S(u6x=gpy&o)LU}Z7X#9|P+o>tV-rr#+&y-#_3^?tBI1SiN! z_ywEdq=ZE~#rMRlOowKDbQ$Bdn%D_pOc^=Xk`)~``kj+>jp#4A^aXpBVSoz!@8Hgg z9@A)aaLZv;qiqt3=51;xtKuuc+&u!-YhyB7tY#2KigP@4LOE(wp*JxHnYY-n3nyj$fGEqwxJh z2d@=^bo4Gzq!hc`X;x5fr!Wog0Sl-?ibshsI3SSP-;2`b4A5<4MJwu@PUs@!D~ad! z24!U@LqR36=eD~l-s#2z<%UGaW4Smt(65kZf?opNC32QAF|-FX;RT!ZdF0s8CYYK1 zJdU>F>&QXc#}LTse{wz)`nCJZ%A-N{9eVe%anstQ5a3@uN$i-(42rkx!yLuU0^k?M zf%cRX{y!*lY}^+UeD7bo3fqm9=;ASe6XBt()mGF>KpP7eyMR9q1407+F~B}ux-hW*8bRy zV$~a-X~p9Ap1jF)*9WmgMW(PBHd~_EPV86JEejH#-;nbPxZF#^bzlPTP~_iLwvdG~ z1raqkOh%8E#WgXF#H0Z7pE@mEZM;zB@7hD&`DF#3#&z7cQc<87{o_(7E#sVQh>pxU zPs4Gi&34*2`;6JTZK*tB`j~rc#0nNt#5r(1<)RfAAvidZI ziZyJBU{xElqGe6rx#p+ z)fi^f)g#GJI=M<|okRy>7bUWTp@3f`1snvInoj;~Fb}GO64isg7hh3)JND95DXuXN z@WxEM^WxAhN6U)9xMqq+5Q{>tT}Wh5V-yOU)5YkabG)K&{S%z_|00BpW4rTF? zaZHlO+LDxz5FN+y%xcyB;ec+M=j4mL-hyX0)ZVtCS` zi8sg^bV6`C=V8BVY$U{cbENrL?p-GWPG-)SsM)^gZSD+^T)UgI_3TroR2Ar2pHH-h zv{kSzJYWJ_%gDcXK9<4TcGFkiJfuH7$(vbJ?nd`QEk~$BqKEd552q7xaS2}tKUm8G z0M>3V?2+jYkdx?^WP4|&MngY~TEr4*8m=Fh*3m5?zM3bbDCF@3A#3BnJ@z z5kbU&C

    ZP!W_MK{86t;d#h8=O8(!?=XFPrsv+vondu4ZAJbIN z)za~|iT|*!s)MbYoxRK75fiJKc@Pi~(fpan;=0{$cM%c%$Itd3c5P{S<3CTaXXpRm zKGHJ|_O93di5p3bEzO+&nFY;l&0H`$5Yhb&bB~L=wwtS?o2%(*b>rWg&e6>LhMDzW zE&uPn<*cWDO6$CezSLh9`Qrxl)z9es$2n5${B8mYS4%rbQ?u*Nf00xEb@L>BMe^yF_; z>o=KA6u;`Gr0uaADBYERGs6S<4ei8zqxwO||Ek1}*Xfj=`M zTNH_Ghl&mcEGA7~$RQhJMqE)R0 zlokwHQyC@&G-9vpk3I7&*t0bUUEOOO-QZg8&uwC6(f zLpxezUTuiZEZp6ua4({*rZ86ZEkyJz>x@^@f)JHN*Q2Z_ClGC8d)9pe14Kdf%~%`r zCx%aVDqddwjjmfDM!!69 zN9x0fp^8ZI(DgAycS(5Cxo871E?p+B=DUm-teD8NoW*nIR6w{`B{Uq+0S zo)0cz^e^wzx`BieSc!ULO%Q*e^QG&j8IW-Ook$;2E+mi;XP{EVg9L)R ze6GEyMEsE_UlTcNBSDfc97~qW*u38-H!4<;uyt|M$38tQzWNhAZg(M}75OjLoE%74 zz-d6_U@{W6&3$?6Q#=xqXQGZDNku|rNV`en6cUYLJl8N8f%vmbZ(e&NkNCf@9`t0^ zLxK(d$G?;>{QNxi$b~^)2RiVNkKSQB1eFG(RKDg7&=qs|^me2w^i8xdXC~c;LM_MV z^>I(FP(n$s{#6sIL`D8dXA#`Nf zt%@o5{*1nupu0$I1tSC(9Wum?Af>98(UJBv49G6|1vUu51VIju>>4SI`ZLiL*Qfu? z>qu2jb(Vz@3IhS|&0!d^=}|m*?E?%@s_0CK)53JBMWnB6AB?u_5%TXdgW(ewVvZUw z!}#&_XdTNVFt+F{IOv`NEm*G`K6%6fV220fM7eg$5JFma$A;czY|D$Cr z5HYvpe#)^Givv4V zI53A8nD{*Q`Q#!dx2xfqG)sR{^Dr<-K>mBkg#jabGYns1zcck4Vj~}rTKNoe*)T&{ttvUIsa>+&6${BlXQ%pi;RrIh9Div z$Vf~TWRQNl58E2jJ)5PSx=WXeg0Ak46SA_xR79s$G`?agBF*)F4W3;p&U8zEcRsog zt#N;mCq(RCYa}tf*qv8!f7Tt0svo^Qt(xkd-SHwz#d*6_ zQ^`JXm%ed~##BcqgD(nw#OMj8+kLJWJ)0dFrMA0ndt~IUT&>6)?STVf6T&EZyCGDDSDM+@)%JYHD`p zIj(=ZA3JI!E3#C&Yu8ivf=za*5`QbjE?=|yKIg8zlrc}7-JL%&GE!hy&UCwLcYksh zMHZj!-oJ3<@UA_Tw;Vso?T#zdNZcL2Yy7s|efI9`=pC^_$*tK8T7+`H!k*Om%b zclkuYCYUQB6cc>0V0XT>BT~D3x#yDsyX&ZDoty019nVT7w`-r{y*t~x_CB2N_-R+4 zqqG+VcJEWj>DSoRUmnvNb6F(K-%5qsoyV;xcy~WiZbi>_`3jTwxp(zCf(VFr z0TBgZ-FbAF&Q)E47f#_P3SC}U{BHR44^yR#)>qltKg>)K@~t{}m|xWJYqHzb%C zyrchW2OTUMe{gd(0P$P@d^Ek%i+FEU$`RaLMm$A(zj8a>M!dG=UxLhUp#2(5GVR$$ zXn)W94{sjXBEHKK@m_n&5LYCwQR7B965Nxq6OmVlc#5wwRC8w`UOhs`!S0hth{~Zm z!m$VmpI(ex2{A{4)X}ZkB$bHg2Cr)AkPG6C)4ua!&r!s^ZhgOJc@uFL*VK|ks~|r6 z#dBY)dl7p?)zVwhcZg4D-mX4p1M$Asx#YztiS|kMJt>s=iG-&wX~#SZL4t?W9&W!G zL%d$ISux&=f2YL%)>bp_@_%2_$^N9I6FWM({*~=)cHRE3_0z@P!QIr#%+~g=P+^y0 zXKCyDx7W4~yN@CMdkZzyuKd*56Q{KF|3R_dbKTzRx~;3Tnd`qjT>HN+*@XWCOSba= z+LEnaSmfDe6^Tx$2b`^aWR5gyVMI=X8l9??sInZ9MLJ4(pXFXkBQ1GuT6vL&=sh3p#_;?DB>gi531%NE7{okS6+*kfv~PxNd8T z1q8u=H-^?VIIDf)#6QB&&TjS&R#yK+K$83q49HjiTLbc6KmYpq*U$f#fBv-akp6?h zL;7b}(%$l~@NloAgS~~Nh3Rkk|1V71zhcP$%--`iW9Q(+Qf%01%FFsFq zLa`11OEGJGDAVoY*l;=yRa;#eN7-|r`WKl`R?sk%t1cb5#^4VX^eU8*@sFXRly+cA z#PJI#C%O1Xb-zUd%>q9+4( zwgq}n+`Ye7^lKfISI*lN$fZJY8M-6b{spSTcd90-?n9lsvZ;TdIn*!HNm|I9g!*gO zF843l0q$ZDaXr5%)QgE!@Hf1Ix(u4E?DPq!V+j1Vp`;4cH#Re)V|k$BT*FOS_xn&g z^v$&Ck|5v&_WsJhwhwBKuGGm${eVjIlT+#U>Y=8Y`-JHaJE&JQpIGddcZJ zz-{h-u3E$lwT-=Hu5A-gogI8eO8o*<&WjH6m>+=BTz7SXGGi!xDio{2YXN0XKM!g@ zm4%uwls<<(t3tid>=iwM$55xXOc@WW*nNjphe&jxGQ+gf+jJ6Y&{SUD+is|>u`J`O zeg?IkVPdm4*r3kBITJTv1h}=<18c%$fXnIO6<0}zx>WCNC6{KXHN8u$>81g&JjF zLE`Qhs4b#ffB2pZ>h?J~5cS7F9cN)?74sWx{l37BjWMWK=Q#Gz0h=#EC2%UV3aUTe zbtS)j398DD-zl-b3{{t1RXz^& zLoY7KhBZQc>S;-^}kvpsOgrOn3+g}8o_+tM{ayj{Xt%l@B0C$p;Nur zog@QwUm18yhbIAdPuF;5)&y{m51l^EdJS+NK+LEo0P0Q?Kud8L)Re1Tf05gI%{QB|NX9ftp}i3nNvRVT?L^z#=DxzPqMyLa-Bx{=Lzgj^>$Lvixj|`|0Io{>^p&Dvg1xfSb zK0!@}gy=8TTBy0Y-)ZXQF{o}-C>?8(hT4beE~ckqpsGDJBFD}Es&r%rg{hUH@@ls{ zDYYF`#YPPXD%D~37~dEenS{#x3kgGqaZu?bVyGZ|1}alO+mu#ML$wvpgKp9&s3y(m zH7Ua4{OJ>s<*rGn#ud*BIbv}+uY3P(rw~+rNn~51xCND$d(2C`??FY&NXyaV2cS}o zhM<^N45}O(;^cdOKrQ+FCC*QVP&=s3<(4%9wY`t;W-$yxwQYW$rrk5Bj9+dbZN>I8 zOiC+#zpm^yyihC;!#fH;MJz?ok zDmm!jruq$v+IU(YC7VGJU9Z2`Cub-WW>mMH7J?%2qhd|z+E64tbs^6x848_S&K~mi zfWpJXEz`7>Pl1elI^v zi?4t}D~D|pCnqQrS$mqbu!QZ`I3kI03koT-odVf2poqv_y}LvON{;!fhpkCK>7i+g z@rVj2wVVst$0i5GDs=4~B?eG<3387A*nz^tp!~^wFQ6cWw<%R!4vLzXlbr|TphQ`F z3ujRT#r3`dX=0K&p%al$&xKMblzOkFt$qv&lHDSj{3xN2 zt*k9WgAz-2m2dI^57q!}%xjJ7r{}*oke;l`#i`+4@%y?NGb* z&ep=)4eBX82!c+hKxKO_qlIx9ROPpLOA;AD_5F8!cLvTv`T3vmWrx(EOqRviJeM1) z`Al`|TFRho&8v+)gcK_MO5}v?tTBB2+Wu>_GL*c2Snn;~1!W9;XGT-rLzVrjm)ynY zpma6cQUCrisQX+tpfep0xT*2t!p#}L7rvBjxOx%r&O@ye6NYy;P4@XjV)f~T|Gs1CfO~bvKKzF%;Aaj_pW7sa`tw=} zdh5PWBW>sLTr>-CB<~{66$bf22R12+8tfA;=ky=h~> z;nv+>XJujc$^0M&8K`;wv+WqEGSpjyshN0|0WN6gv+b(_z?rdcu2VSyZs69t+lCI% z(3K&n9&-d5!tPiaQl90$I#hA{k=!jnhtqTmsYj%gxUz|&4!x3JYN7@;Bnm|QX9Z!o4Awx z9K-POM?d033?~nKj~;y|2YAzyB*6r-P!}(Dg}ssh>krD`%I&=ewLjZ9MpA8{R_iXg z$x(Bt{eUBM2s#Qloqe+Rq&5I=)*CkjR9ZxU7L3BGt>oY zpNf8E1@(l*3l8OXq3)AM%6Kd_;BRv5F)i@~JgzdYSlkfsnSCG4w;>s zpx~~_d;~bs=CPP3$DlrQpzJe26yOcQ%zb390G?Z~U8imx@IE~!?^4JEZj$QTEk$9# z(M+A5?lJ`&<^Fps=Was%i7TdLH>05L`$eh>>JF$E_ZxjBQVn>@^!(9%tk7_NJi8A6 z6dKG5f@rD8pux+B`TTkX;F=6P)O5q4eyx4ugLpLH6zkib6Jz_;y=U~D3y=9X(TztL zq0k^yE9{pZ2MuJ#Pd5Ap0N;N7T~h}D-o0mQFI_z}eBXTWmYx*w8}koTS}?uCtL|zr z5CU#*HcOEXHct9(%cIUU%-^hoV@>n`r`n_xm_-M;6HWuZ!QFs6eEW{^<3hlDHR>%5 z&I7I*Za*Jd1pEM-s9bR$;4eDOEtJ0i+=Ui)-JvglGpts7DN6wLBV5gs&2d;CW8ZCC z%nJ2oRHUVHk?=?*G-SW2oO8qC_MoDY(|Q=-RGJ1~ zskZ>`@?A3WG#;p@PYBCQod$fQXw|^2O=u8z7s$f31AeaCQ=bC!yL>$g?X+~jTaaEX zFIj9DFxhMh}P$j9L&C~QJI}VfWLa%UHni7;ACB1 z1QZ+w994p3B#s8^Gs3o0$guu%&-f)8Gf;uSUm)rinRt2R6)H`R-20^Kd?7|NVCv3lt1VY@K zP^u+duRIV9Wq!6H49}wgCcUf`k}1p(c9ONc2L@v zHtg=n52X)WPZRxEgVJHD?-%l8pxmTcEQX&3%C(As01Hb$#-F^(jR!l0FlF|_IymkW%-ho9Z@rd-RDKfK~$ zwy*7ZpQa?tyevDr*whQtc$uNSDSj}09jEoEm=vZ2bd-!pHDK=S8S|t`Lip9^G?sU0 z9;OZXJn-YXFs7E^wc;xZlcS-0>t{k?wkJN}?lUHsb1k85G)jhPrg=9aRzdj1{9KEG z@fZAB*6U1t9sv`_GvBHmorSTjHU1tC9Q+FSs;K?;BaF8tI9se5(*1c0UN2!%CN9j zwO=`U8Wy5e6wb(7z@p1HwW7%dSn!PWW-*V3g~OFcT;k2hLLVB!7`_l{TJ zVXl$>%a0e)u%sX){US9A=0D!(q9hN2IlZ-KaKi{@WiK3BR9c700|qQ;WdsH z=fjlLxh{UEQka`ipYaNO1Piwe6^|^p!u%wA8D;qfcHiYH`+I3HOTRHLZn6M#aiL2~ zgPJh^?&quKpT`i9osuHU@fk$4U7k7+(?w3ad*%MrIWcXI29d@yimW zA>nU`IF~NYFNGJ8o(LZauw_9c6pvTUZJZFHSVF{XnHVB;+?I207eRzdOfC_vK8W~Z zkKL6$Qiz0VV4-$z10w#_m31}$BOjOvg5MkydvEN8EBIb`IP~x}3^gB;(IZ%a&2q^haoW<-*_Uw~PG6N!PbqEH! zYD9eZB&~%LHeOX(Z|>JIM4a3~PeOGD5mVTb?o1jYBD%_^NuEGNM0H%ZdHx$Bd>MXp z`5|V%6U3!qDaR1uqXUPlo(v%31Cs_E$!UlrW@OfF${CR)uD<2!K8{FgXjU9pL=e%h zKH-sLN{Ddt(HrW421KNGy^&XG6n1p)8U9>KK!k-vHukZ$h)Aeb$V{UJ+o$p4&i$tl zVf*#BnW~=!*?W9f&}+Nzwmy4I((<)bB0w6A>J~?QQ7FjtIRPb$eLy5kWP0+?U)$gad3M z`(iF3!i!F`Jp^uu;6e-A8QGJFz_42Nd6gFIjBqthyHvxDx_##@TT$34vy%1`#`dv? zHkJ9qX+(6d#?D8(91*>tz_*$!BBJa!6{TI6oewH1nx4QT0+ptLmm=7HFW)64tmZ+q z^a-J55dw%lQna#S#1t`zyYq*QTO<0p?%PKvt|0n+J@O+x{)pa!)Fj0}8Zq3YtKfJ_ zis&k6-?{o5AUbEh=~ZiTM4S8K!HKgc5nUWl?fDbYh%UTA$quK7=va&rXx{N5+FIuu zm2*6Zjy5hP_nj-E=Wf!U;J=IL218Cq8iyhJcGk!!O-4k2_4Z9RvLlF2)+N;M)zj%Rzt%yNj<@VuGL&T6oEp`SA@#;D z)reyHsE)gmE~1!Ude%@{geb(~T?`d?5tTRRY26pE5&2Wmy>=$@h%AiNQns!hkvg`q z6plF}vg|@R%6@Z1R&4Ebs^l}kti|A^cPd6gJ{h=&HhY69} zb7^jej3G*22QwS_hlnETqNxN21tQ~@+tMpLhDZyjx8~2(B2pLGd27jeY`+fM?Gc-Z zR7<#af=2+6`7yH^NS{NLrvwc*+&vMM$FixqLOz}zrTt{BZl1e|&41F=oFx#Ebn5OCy1tCN!M77tU zb`DXYfM=J*-XJP1N)xu$9z?-m#OD;CjM*;^Jm*s|dyWoXi`)DcX8r9|5WVv%{{XKN zySSVE6Ht}se;!mN-uYh(RljY-zB%Qj1DXCf-tGBBNc(7=87FlY(&lFEqg!>M;C&}) zzji+4OuYgx0T0OYqo}({XbsuV_Pr!d`Ush_cJZermm%X+%>DXK1m6S)o`vVS zLb`u}vnzT4DJ(KBEpP9^=c)QT%x5|v(e&jsF|9dd*vVPVJ|Bcc*+#`RLv=`fIp&wU zeho60-0AKHe1Tln9LaNE93XqUzFjuV0`d+%61rET4B0bIv57*VkmW$g>GEV9GQYh% z+Nw(nsnWVdb{`Vpa~yfx};JOz9| z{UKUgzX!5AV@^1&ZbG_g`_7o`68snvIV-<#1u}-0!)~3NgEY?kZ}j5ZkW4ZDV_10s zUio?pJ#?Re$j7Qo2KSdCx*Dh7I8p%V0V(R4Dg}^z|FS~z`2@(!JL{%|t&=pE$olfm z0whN5z^MzrAgvV_b###lGR0EcDSY=r`gNh)w`HFoGwb=j%%YP}%o%6geNq{U=oL1e zzmtKilMi2IjLAWI8QVvt%gK;`qJim&L<;0A@hSVIp z26kwK`MJ~F-UA@gd3G{b^UUd&&Tg>Dt~7(9p1lLr)2;?*H;Nr?IT z=V*w%^==S64B@+-Z0fSOCZtQVMo{|?LxvFl(~d?Qqz2s~Ai(w)cjoY*-rO3*tu-FK zFpYx`vBbwBM)ty6-$sgF`=BcrWi=OTxfP@H?BlXt_PM}h3|(Z z&*@&5hO`^b;$a2`kZPu!Pl@?ic4B3$TElhtp0Qv-g3&mS#xXU_ZqX6Up31hw@Xg5e z&hhAT@KvBM)1{yfK6=aBB)nvXPZHW)mx`0&BNtyo*DrTS8OsPSSRR0{k42U&u=7mY z#RpC+bYgj_oY;0&PF3~=TcSEhE9f?;$L3GTY7@0t z@`QB5AEDLMQ&1oo{87I<2FrgsNqbKIfRY<7BaJr$p>RE_ZVii*?<$Q_)Y!N*u~Dxo z0aHjZPv?+&T?FwfeUcYah2Wdw;yWdhamd!G{mRO;31u<%7v!;gRb}dRzHZbNs*HQ0 zLbs%#z^|0(yuBZ!MMcwc2Uoy%2U@eedhQSxWBUA34hO&5arj6LaL_g&yS`&@NFPGBMr-^@l=~(HSZ=MdGwfE#Y-Q^ z%%r)g@-r4n7~jgi;kW=5qCNEuMH^7ba4cRyPz(yZ!xI%TyQaG0o`+dzLHZQ^+uppd z5dWm6Y|7>wgcB;#5$_6M>JOMP_IqK;)#xF`ZVpzEy3E#<>-y~$1VDVl`%3?MJ zDLmZ7emArszO=PLp(+)=F^3)r*mW6WL2$t2DEGUm?kDS2# zqTp%9SNFwwNc}jre>ZP@=RDY~e}EZEWP~1Mro=s1mqZ*Adlg2m~dP=lxL*o~`dua|rd{=rao z#_bj|4uqd0{`Q7gJ*bwFHa*{#4fTDob`X0E%BQaUY{76v5vTZ2#hf}+N=`;R^K^pR zt%-zP|ERd0baTv;1MmqS%pIpSijLlpaHx=tu`8Ff zgwo@OwM(#kU;e;*?){Dy)PAdL8*Aw8HXdZP?&oBR-0QhmJj!PE!x>Y;boDx8?1s*Bc6V!MkxpyxHfe^ zuUkNa|I3-(bzASLeSDhp3>xp}Sej@UK}py|zC7kfWx_wlU#J?u54%{K=k0n>m*!Ka zv+JKBey$_7n}E|eLcvws1vp|p^%e?Cs5x=mtHs|Ro7c~FA@Ma-eA=Hv8vX#vhH81n z9~(i@85ObZ1C>y%_DU)=Mi0u@X*NZb%dmW-aH{Pc6_ik{(HYmcKvCa=Pyr3V^#5>z zYtjj7h*teh@y|d#mjcOZ{VS-7SAeNp%wHe<@O&@+5lZ;7aj$ANp%5Yk$X}?ykD!=@ zmx|}0V1+Va$+;M+eN;tq^Vp%`9x<&T=QU^u`*u)e4|Y9%c0#f23sjNcaJ<(U4aKU-hx z(!~>4{1+xUeyr5R@~FlSVIeCk$hp*ncJpt3_^BYl-h3!S$y$~ej;*gsmNUit7k4m+ z?A9iBes}6F7Gn6JoZn%r62t$6Vu#M|;;F*&IE6jfx>YWRbNt$xp(8}gAx5_tdX7=r z?dJQgR)w#{Sl`i^Y)bnc!v$^Q+p=-kdGry>w(4X1Y9?U+ehjPUjZBWm(iDZE?w$TZ zpQ9W!Sqnz!fBOlI^ZqY(>o*R+Z3g(|xJknKO$0nfmDVw^| zurV|~miXa%Hw}7N9@*{oJAH}fN42@1LEqb)Yl9dbZS`-`l*jS|&hQIqCWd41(vC$p zv3*wD!|!9k&b!s?-bugC2hf?KOV5tw^Y)}m&bxT0ed>qqZhW_FR@%o2Ye3ISef%Ej zv(U6!A^i#K4;uFN8o5XIL(ThFBR8nYp|ogbv~C@{R%7EmR463c(McM-2oWAR%T;!)v( z^;0#T4<}tQf2+_-liV)F;_2;d$RLJe@mY#G?3i6U>Qrl!FdW_ES^13@>(_eqsi`=> z@;U)NnIaB~{#)0$}p{B5!P-XKw3nvcanEiHTZZa>!$Z1k>P z%LN*$ZoM_Y@O%C1kgDChQ_I1){}8rbz2T4hrWihN3cFaJFxCl8rzndKVfnW6?N#D$ z)bh|Siu+}S;Z$7bKFWh1Zb03*MJXZHchoc!5VK=-y`sZ`X}4dh5!|PG1*^vm^gQGe zkM2N+#p&mgKgyuH!hMPq!>`?a$3EP_?9(#c-c9WhfB!$&e;1#Jsb^`lP<1dRmI@nJc9!E=7FI{fGP)zEo_Rt8 z^V}I?EFad|*mAF9II>=q^*%A?KQ()<)jY-WL8aX>DGkbMsQAElS^&c_Wj8%OS;_kW z&Xp&Kdg>BXbjCFX1_A(gpA$zs}F2^;3a$za4+gjJsqc@ zg6^(-C6-4jeKc=)AFhFF_QwRDvG^?x>RbCay#Dd+6;2v*sQS21Z1;IVQQ40qgy~(b z!mn(F;rHV2cjcVa9U-44aQrA1M}=~0E&-nypprCAoWUm+3Mu;!@7D2BkJn#sVSQ-z z-Wbi@{=079-5JFptY4&U^$WJ=g8HXg_bqQ^LQP86x*mp~s-spf5MX(-%2sN5cYLV? zaqz@Be#j4{+dPJiucE8DG>b`l1%V71PtlH->5mx^T7Dxy@Fn_Ax7U8{1Kmave z{o6XcU!eSSec)lN4&iB~IF4a>y>fc>ia6FkmJT1hLH`l+H$#m`dU+E_vreRT#P*w- zsdIe+^Y@Gq=ClY5XO}-Coy1`{v?hVQlXO`es>(&hsxkW(U9KgtbhrX z>z*c6?m*@C>d~DqsjH_Gw6J9x&|x^dnay5%CdC=*<(OHpgLdmCPMA$^C}b8&@Bav-dHM|sJS9obVfCTHB=5=YbDGkUk}GN$eky9W zQQn8?S$ah)efK#<^$pW+qwEV%)303Xq3{-JS|urtT$_a2sTa;iFno;5ul}<8T%xF2 zmHY~}&*D9%PepkS!H>~++J{)*kozg<#4NV{5AEple!}ZeIUH*8GxiqXCZvnvI+_4) z(B5WtumxJK-;aymFA5DNT2Az(5m0n3GwYHYFO+aKxENx1F8lS1;g3=mp+=RRyamhG zbrm^kI$Og~NAu80=tTn)g*DY@WvqRxBw^6TdguO#2Y)JF{1U&AqX_ zneY2)kPFkJQbwCfpTZLGTHRwtPfh^-y0L+YBzBFPdG!&CyYlZ86b)EER~Y@Y{^|)V z4lFXZH{RTZjPHrGS{N>=z!O?)VB@O|s-4d6)`7cP;bg4sPg6I zVoQBLmhY>Mx$-KWy9kAsvb}4uyq25so|g&B_oZ6Pd)Y92QIvNrOm`Qjnj!=l)u@-EnUSH8BtbRFyC%AlPXVfpZ9EU*7A&iv`? zM(X&v2Xc(f@>8%l$uN{y&c^!s?081^>tn)DBL7f44eO(8KXQ*H-n{^I$ISwHG2Bp3 zJ-vJj%WtKOp>HGm<>ALo?R`a99{kxc>(hqSfikAMXtqF=s2`r_RQSHTdjL)4=-W;Zucntk`sn|8reYnX9LzJQ#Kst#qx30G1U5-dQ_7fIlY^o>ON+&Rw!jb zNgT;}x#!-{e9vHCwPhN#*XLVtV0~}vH^!=4oHWqdOfZ($p#aUg*&lZ6Kv&A5YdqFZ zG-^DWkH`ETrzj^nz56^SyXrU#7ALs4Q~UTxqyhKzh|hftPgM&D<45+FL*<1M4|;50 z)s~v3`0sJh$a=n0nr8(X+U3&Ru>8^fgys+;KyW+5}m! zKCTsd_TR$%u(nje{1leQs%;L>`0n0saH?Y$zn4k~UU+>6pdx^OeYcL`j<)*>?dpBy z=X)T1fveg5k*8z(8N@T>j3h9=!kHRS(`j zdDVl)#of%*)!EY0^l#t!_|IIaKjj|zQ|{3}7JE&b9I#q&@T4NM2DE%NnyZuYhJM#KqPHR~Vc^i`gf}nep#ALuQv1Av(5d_8 zi>Fx`bbAT~=F%R5CjGO@KP#J|frdV4b!{(n+fc?Ab) zy6L{&`x2`6d0jcD;{v!HN~(8pkD%jqh}5G4zW}#z;zNq39yI6I>Rvb#3|-o93ygh2 zp^x|Y6z^&%^z;tT;$`+iUz%u2zHb)vti53veXI#xqp>E74_Ki~^6TtdNel}~P;Pv= zJP1|wawa4JI?#D(lKWIZEA&0Pd-bk@2(+HsO0NHE2ROpHe8w?#XcxYv`PyY2deSWp zB)b?u>kM~pw{$5CxYftzo}h+KY88528Cz&^dPJ|v<^lMTxARF~1tBl8{@{7{9mqlU zC%0m?p*UNuBxuhQXroOzE~Y#IJ#xjv2i+*4iz(i}E+rQ5g{=G9vfKeT@>qth!3SDT zFjnUP7j%05vVV?3!{TRyEOk*K4oY;c>LMAq88MX z!Whk`K`7DwHER?`3(e|*b4sia055a)Xl>a$s4%0ldnOIgi6oPk1`T2Lh%XO_PW7# z$V(wFQ?6lwV)mk_tUPUKp*CxF>JWv#Gv7H_b1pz%x%sx_M{4LlBXC$G4xrKO_4YTj zOHeT*7hb8Z1$CtMJGJsrkZF6q)Fu}P%^^M4;)?2^oksIkkFxjFgHuq1!{!E{aYW+Gfn|5igQJrIMIPShP44cJ*e8vQ`4Vw+2V3`vvOU^p3XI zmq6+5xla~Tfl&Ij`hlv1CX_6H_ni+6g2v>Dg?W#M7)GpfbeUg*7V)4jxf(~IVP=gl zzBLQVj-?Q7IBr6j(sz?Yr6edMcL@2>`wp^Q%=;{OX`!IHGxqWwEDl_@Ekh&DLuckQ z3+DL`&`sZM`GQ0MdT0-^>GM7ZyhEwaex^1kb?7Yb4R{FUe&^!uSGytWsE2)HL z_dpd-*`LrKdWHF2t~m6yn#dnI9uFf`zKU;dzK6kI-m5i@ywK7gm%M*04;ls8i!Ylq z0p6&>VfEq{sC;+k`q_J(fG3rf2o~*uF4kWM92;X{JSLFZMfEKFvM0hh%c#OH%W?gC zR`+1QA^GRiog!$WIDY?boDsCpXUohE(?EIo9^#}DI~aJjblJG{9gOY889nnl1H*jM z93E|kFm%OnwJ)?329LR!zKCsw$;6>OXNrBGpM&A-c}Zz#T?R7TNgKc?KFDh+Nrv|3 z@1ostSiFpxD>HRre$VNzNaeN(xa^^8`(p;6nfTzRjudO?StKA{p!I`3OFz$;`?@g7 zU@LzA^e-4vcBnh8VE`@hFJICfWrqg8aBl}atOpd4rLFpL0V>NRwjH)j0XLY%6=icA zI*bn4HJrfW`JL)(5wFKE*)B$Ej`iMC>#PnQWb2q-T@hsJ^3X7z*-rGq44R9Mgk@jv zhVqS%VGnjjq4&a@$HGl}VPrUR$E*7-3^^TolS428L!5pWe@Neif#}0_8`gC&5qZaW z(#a3{g-72Ke%u3XN~!l+KgIxlN|5C2(gA4iaA;1VcV2vb+|bNwd40Sz5pY|n zHVfaopjqqQ#dggu=$;u%A*_>x-Y?6M-;Ft7lsIk5yt@a6R(J5@dmEvp=b%Mk(rsuc zV(#RYSOvWPYE?XHfhvMWEZN^Z0lzm(klG>%IxHF9S(8w~2<6YujNC_HV(J0Q28|v} z@=RR(*n@Qf7`0IX9t?MBup5*O3`maxq{DuBM zj$2zKRG$+0H$pGnReF+(7;a3Q^ekFnN#&ez6^R@$4{ERP=Nj^`dgn4 z^I&;w?<&=&2QctdT>luoE%ZyDSM3R|hd!E#Puix{(5o9D@@4)Sv_6bHcd&{NYAb76 z^R5d)&$SC-SMdrkVEvWt-HY$g-sd3Q`iUFxmFnK0Mg*PnD~{agJ@nHIoMViigpQXJ zrm4d?7`iu--I!SoJ$rm511|bvc;VNNNBc6Naj=%=2m=%REI+?0lpO^52L+|wJsP2O zLhHKRGkWOA+o!4aY8Cpbj?4u=429k!)@0J!m!L6+Js~pS88nou8&eSqLVFkUPC(N# z^gK+9IP6de?Xu?AgP1I#`}Q*vmPgSr)_8)MFIf>rjlOHO{R)BZvQ4)icKOg=rFUnJ zZyyXq+MdnGI0gMO+DQ|24bX5UU*O@6HIx&W=;y>@IJm&HQ*^@_8tO}W1!HHSPFYx= zLo5p#xwsiTjtxSmUV%@yz&Lc-oOYdz#pWkee|Udz5UU4I^^c8}L%)4GH<`>6sG~KE zoGv^J^`hE3t0yI)Oz>c^OKl<)d{*fskhu+I8gm+o1Fg`0_;}Yx0Suo$lE3PAkO>A1 zNY8*)^uvG(fyu?U^Skw_T(y8|7Vpc{&W%tLZd4Nc3NRd!SFd=)1v)Oclkf@= zK|A}N`RsQg&?#?g7{#~&Ek2j(Zh1;Ujj-U!_`n}fqvNao;+!6o+GyTw^ihPL{emoe z$S**tJpF!+yerUl$2NVTst^XaT!u5>-^J?K=WXAdSs0X8i~Ci)49$U~`X0eFP@V2x zQpoBExWr^l%iTZo8&9++xe0xO&lSW5Fn^<0 zCjZ4{10Cj{w9?MtplR%qpDP~oZ`I{zOK%RqpwV68M5k03x-(?b$TS60t>g-ew3lG~ zEOoK-+6Z*%ZQY5yy8^8OUi+0C>7dzJt(hrA8E_mu1mt<07#@xl(yf<l&C|j6Xevi=p+SATIxDICM%Ccy-KPgxd9>yvn#d z7>tOyC1w8&rrr_w3X$%G@gNVfLZk06&i_%`XNwg^PkC4UYJUr}?|!W*3HHOVQ-47F zL1E}Q!!77+nh!13;wLHvjiFEE{)j|UDhx;xCuP-~g^o+gWmMFp(5%EwPU5Bt9q(e6 zvR@X#!1piaa+KIEL4z{szFy+2DnOlL96pCy~~1Mq4|r< zcG6K#z#&6zIhF=!J|`scK}QkmzYl(lGe9u;L?Yx_{2I(QHaXY`DZuQ~iQs4HpJDXO zqsOOISfF*vn23N=8#=u_<;K=7{|mSNJ8sqaKf$ez|H7@m(f`MB>qb<92>PN1qkSE@ zbCWGF?>#~nw%HDIff*P|*eV}t`)i6bD2L`(tluO#oVPad> zHE}Bjrb%o~E@fB2ykSd<$m)4$^J-AT80I2 z3q30_S?HoXB;=U<99qpc#}bNJ;TJBjr}fb=jQ>0wS@$prM)ox=XK}rNb@!_*va-C0 z@MsKM_Zh6OZ5r1+(mzH8}Vd&#=M;~G`=ytBqQFHnQeV;YFeUFbq+uWg> zMbiP$AMDicTZiRk-^}xLjt5}m-MP76N^-E2=>3-GRgmePKA;$M$E?D|7mmUO_335%yv=WCeTntNY7ScFJ4u5~sk??W_sEuv%5p|It9oQ#k19wLgk zkg3m5f>?;nSTFnCM?95Ju2J8VMD*6>Bo99KAm(d2B1M_c5r;9wUM7myh(&2jKA!D0 zqLw&)eEf3=qA;7h#9>;ED0I|6pI>f7WNIS?&N1f@Aw{j|gX0^BBej2{`kDpefXy&c zTPDPJt($|4N(u=cziU#h+=BRN(aq=lgfE|I0bJ=3X@GJZi zEQnl!^>vCNlUN4CiRY$F6dpuu6H#J;cwZ#61@tdodLxRY_&7!ebwnbHGd<XfzVeq9V*KoV?XJ5NVijetF&vXaybjG&>b|;& zjw;~VSa&O8wmKO){g@PS6+GQxB0Yh)^z%jMQp*sJ>e1%`VZ?~)*^h@@s}~Us{ey#n zhOvl3@XGDBmv0f>3SGfl-qf&$B17$ zL@7ot2hm1(E8Q!Xfo&SPddiwy*s^;yuVoqu8`TBD4I*C<{h)xUv2+#UT3-?_yLl9` z$EIXCJUohoYO?C%T^SKYWuHU>{|+KfsU9mJR!5}bu2aD;#}K*m3;ceyLA2M<6`zXX zl+AqGf~K7cM4C+7{pBS+VrP1vqiTK=@kS?62}*4tdcOTpV`%sKkT7ClBDuig(Td2ntZA?9=RvgUo9{aNpCT>> z<7Y%J@`&q_c`?{vdUszvB-KKJgeC9Z5I&%d_&0g6$dFcVQ=k5rg`{<)yw!#5UmK)t|V4_zu6fjp(LCtVLoW)SHWl z^;YHg-W3kSvzH~;<{~%Z9p1mwb=m}RH;RAFer1OkzK376yycG=b_^PuU!)@v>zh2j zVc!web8eCw0bYo+vhu5>e<$KGdlUUu-WT!l4b4UJ@FJnk@lDZbH^k2=)Eg$QhS=RQ zH%cr|AkzF>Sqnj(utQVt!^!diHtR%dBlu(yt&He7k-MabC;EX}C>a~#5_5|dYYIR@ z(jOmWM&S^H*_P~hat?W`-!N#W+ts@nTnh}rV+s>-RJcR zjfjCG!{wau3&i#`lATMN2k|y%4H*lLBi67*(?IWf#IibhNoU^(;x-QorPD4&yr12Z ziPS$KZW(rF)0zv2(eBKK`)3Non3Y#HyM^iPLLVeD@d#0}uIcg#gdk2y5&f3T7{tSF zd%ob;Rm9uYF)(T%goM=BsAEUJBEA@9THVh}h%J+?|2a_uB767gfQC91BJh7+#l3z8 z5oiy+z5MDCqG?T8p4mHrcrL?wA~8GSEI#SY&*c0s-1^%jdIq{DR8-ZmA?mvS0J`q| z?cW_XbvJXhbp9vM>%acpK!X24=(WY$Y2G@G1PX}HGo;USzz|^-2^WbKbfivSP|f}X z(@fD$7wj}(lE++z|L9j(tVr&7Ri_MDM(x`rvX`JC+L77QY8yHij+k9MeFGZLm<+}u ztSfeq%QiNZf{G^#eQ}o?;8$JAOyXBozze^+zL;|wx|tUZ>hlF*QP<_!T#+}->FY6u z@TNe21*2X!?Q7`cU}RMfF~jD+n*UP67CJIde3!6rhT5wy&(O=yL(6jsDed($fPXh} zQTibnH0e0p(3$XtzQKtT7w!i_TWt0D;Qk^QDVKabRMP_ehZb4lUhV*{qd@xf(9gdU z^+f+5>i_KD4W#`o7|!p;f~mP3!GCj*lIiQJoYnh>{{*+Ivzfh%<3ACXBLDN^l4Rw7 zZCq}$3GOH`lp_L%$0tNBLJ+aMqQ4r09wO~=Wz%J3KtyA~JXwQgh?rPC1!pmfC^{&H zrmG?mS&R+w(Hmc2#f9Zw&953n($1By%cKT79~zm&TPG0Niq4bAB2KW4&)Ab&>;zlO z?mMR#Y+-|HYOOhA64t-nv!X2Jhb?~lP#=m}M7l-cBvkeo5k$3E#OAsn!jPvCZb$hM zA@hp02>}ZtoM*V3i3!jCGqHbu*nhh~!yh!A^QI ztSXyV;~ZOHDe{m4F=ZR>s2#ewuHq`j<;_l-GYhd zU;A9EJz!4MJoR4VL6|=xd&ga~7nUBU`8J-ZgQ=6YwBZleVSX=L3fUb~_$8pvnO4vU zNGE6Dtt0kr=%f*$YG}OYbD}HXfGd2a>ut zQ!u-Za;&>vLxdvEwJQ0&u%WpWoIQny&8lI+Pf^^k-G;B?g#e6d-WIu=hsaDATby34 z!D32lrNC7uSc*5-5r&KY6d_uHjm`6xxgyMnAcWY|%lH!Pu;~q~u^mMOqJ=fV zb+fSMCN%K;Run9?4AF-6Ho@w6HK&fxI;>3ZCqKkXjtCCkBIW;n9TC)V4qrGe1?y+- zK0bEI8`k}4Jl%!6VCCnT#OK6zh+tqgMd@lPY)1I-4z8QS+K=l3L>z^Pu+!7_=~xr2 z2aY|CJa+`Pna@3Mj_ySS$yBL3P6@Emvge@w#1q)LF&!O3kq$fczJ8mJX<&P}K__va z8LW}v%I;q0M1-zqM)e!7!R8O{+1_(2h_E(=Gx}E+EI;@ds3*@1E9|GNgT{yu;hqcR zx=SIjUP`ao46%s7kn#nQ_*2-?;b+0iN5JOE19XwW>#$}G=J8I1urkvc>&zGfE8kL# zH70UlWuw%#`L6Z&E(z}&s=(b`0 zxO=m6TLi2$HN8A5ds}7u=o}KMJ!1J zHf0xBbIwh}Trr(h4gVO-r|_`}ohpFUn8!B+C@#ZNr~GoL+Y4B0d6^pY$Qstns&daB zItI%|j_z}wPhrtiNKJF892Shy*r}2q!+h>Y5wDduEL?grnB%JoE5}q8?d@k_BjMm# z)p7+`I=^4tUcLoZSZ(YLZ|T8;P}=xtF9)oiaXstZK@E$u?*7tI4v3IAB|3pz2a#D@ z-{qC|Km=`WioB_Hh$xR+tWdEBkq8KWEt5VB+bQEinQR+~Xu9R#>mqSPAbfpK7W*(F zRtq21Zr=+#Q5GW#E47H|RHCA&;20WP%Fs@7ePefLbpuTw6HE) zpM3vWGem$dkq(*|MTFP4{7lp(ux^RffQj!iBGKWLBG}MF1Uz;_+9tG!X#W#A3Hp3Q zJTmw8=fhjDS?MaoZ0wDQ#I?R#b;!dG(z7iUQbR;bll$*Ys=#&vXY+l3b42*M^imv! z7VM1qo0Ts*AkzIw2iJ8T!)BS;^$*@5u&tyKzDD&N5$ilJKj_N~+kFZNc1B8wB=YKZ zDt9g-$X0B=q+W^$3j-hY6S=^4tl|Dfvv$~NO}AL2PlauTD8ZVwqp)MUL_mB1t8z|C zY}1L{h*YQiL*J|g><~tIZL76ldR;$xeiDnzV3&oFo*meBE}HDSs)GoL$c5Ngz951f zo8*Xz&xmMrUE(CIBkau0{2I~`LPSO!dt%OpArj)v%%tf;*b+S7{^i^+sc#)wYAuBw3(ogVdt(vdkbr=&W*;KZ@{S0|M}*vmj(6llBO->6Ei0l)G zPx{wkv}xx32caYwtSXJBol%34_(5_(KO1O&_i1XC;yrX1eIF${Fb~5lT_n=XEYSCL z?~7`GS7k{mahqu>=IDRvZu`G*mW4-mk_(yU=IzWJ|CXpRiK;IR_8cxF0|m+q&nw*XjH98@r7`}-FD@VUmAo)IZ~1uhP}|tTU!-+!3LVw`Okejdjr}^ZQ;(# z0jRigRGjFR2sE+24tdAf3+?3^N@snep++r2^QRU$)<+zpRUb`(rtHC%s?0EG*-k2= za()ZA$78owww^+Z%c(El`kz6yjGc|P9|u(0MLoPCM*>HdA6Rn)%DOS zK%B-sTmoIQjVWfIB%!Tv<$bUD9vG6V8}L=$f`*)XDL<9J08Z_ckNLa}^h;$4Hv$E; z2;&L3;p^Z09_TXVn zXd+=C8Is?CLH;`$G|#_7A3pIuEjf0~qj$Sp(@7;#hCqGs9mNY__agw8Lge^3XAEzCt7=qqvX8JvY-=X>SO`db@B+zwB zoydj502+*+)R__70eq-tOUFtb^vd{e={F2OBWF*xb*%%mzdt7={L%>8)7j6e(lTCKG1ZixP@Af1{!{raZOPsLf>h(`1`i`&>t{h=GEd3 zZAv4zj%heSkM~I9@sFO+T=3{~qaQ1Dm|mErJpTdO?0XG1qt^kSn*P;-kQRCg&pO$i z&V^<&Q|n{8zo2c0Jc#P}2y|Az+p5t$2#v?j4~Xhx=W9CnB&5j;8lO3zGZYMlHqQ@d zkIriW{-W5K?2#zw$~{oVsB{+^?f3GOkDZ5ZIpGF>tJ{EI{~fUyB-ig-#T4SK^%}w32Fdm_;9gHVx+7L62|Hn6YsA+4pK_ zXje<4)iZ*|vmVyh>3pHHhWoUP^$PTsKletCGtf?<75%f>4tmr^E!#b1pxJzT)LS?l z+SQIph?E_Hrj1UL2nl%@I>0CRhMf~;7HZXq-`s+c1!Z*=vtKZAvqCaU;tNbMJh)H& z!xDytXk%1K5llMlL=Jm=gdqdp7-`)Mn3y*om-QckLFGFtx?7$wE}kG&Cng0$KfP}7 zGv9+5!l_fyU$tSNd5!t3Yy%8-I4&wlWWZ#*hSx^GER38_Om4-C`urWY1HgK>F7Mzsr}Fxoy(RNp={Pdvd^BoCzjdTFAd0qKCm9;_*{BJdDfEyN|2vxOm2)upDEo~oGX)HX-r#MVJP(sI8szUj z3&X_W2m3A;b;B4D%TO#$HH_2=xNqPLVWg>2xx|AJMwGf*t!l2p(A&+75Vo%{c87IG z&hH8Q!q*;)8%c#x92@>;~##N@Z$o{xB0}Z{@mzX-gPgzC6nlT?@Z7Zhm9$e*jZL zep2TK7obmwNaEc}35@mcWm4z50E6R0loPk6VCwF%;G5icVMzFvPv_?Z=#TknxUlmC zdcsdFxPd`e~JA~boQ)301xg^@|}pHrXaVCd#fKtu!wOln=ae*bVf^o@#4 z9_)Gt&EFpXdibab`ifN=gtDce$HKC}*W@ZRwJgnb^6$U^S@qhJm0!@RyIDvYBM$wJ z*Js7{j6>h?y10BV7HB;X(&0=b20bUp^>c^MLT~q;GgeFY0I#@qY^8g@G0>aA{|FimeEakzD;^qVYH6;yazm5as;;P~6SPWXj>?^y zgRUb45^d7C&{3SGL=tlyy8FcaMDGPcLoU8swMhw@U%W`Yo~i;ZR;7&=T%Q4-=J5`% z>kLij$YoGcoOph?r>eq*0FwA_EWF2)-JjgsuA zqry+a5S0YAg{%aO*PrB|h`kL%U1P)USAAh3gJpC1T`1P4_inrD#lygZz|RC8p)khk zTDtjs9HwkKHPqcKVQ}$)^wk4`F!FxXVWofqMmb26iXLBsv4Zy}M4a7WmYUG=o*_5% zMV)Lv*=`I2S2QbkzO}=6-8WoJcn^$BWG7xb#sXu#ONtiyi!d6gKhj4W17oP=MY*&P z4Au^KYX3BYfq1X`(Z9%H(AatEZnqf>?#bemLdh_cyES)`@;i)ui%>FMrGX*OqOt_d zc^I%~3!-1whk^RnpMTw#g$aU+OPjiHV3eNGC%UErMkFSZYurs?QUsP5Jp=)gu$FebG(xz409IB#xQDNdH6|gS@BO8 zTytGHsA>fxgEfw^R5~#Eop!9I&42paES<$^ z80VH{E4#V`J$x!r+|E?cpL)$qisdA9KjpY1#x;w@0n;zz2d>a_li&2`3n}P$J7u4L z`XKa98n2W^c|hNloWV!fdG$K_oW)0aLHF&8uc(s;p|9?m&P^I&=*D~Ay&lGe**&W1 zyFxj1u$8@$__+q1=~VvC7|!lvdsMB|RRg^rX-T)Ve4)?9GlTrhJQlxKIL2xCpgY|s z$J*{SbX@QEbunXtu3FL`OOo-><-TJZ$07@zDp!5aD34k}?8^iW>?6$Lh*Jab-pIXCo+pINIpj)Q^r+*R3) zD(Dy4#M68hf`MZ*gf>y#(62s!sH_yb|KorQ$#??v5o>b3Q9TCzqoJ?1@;0D9k@wr} ztCY}BAfyvi)C>J86qLe0u=rH_9whn#+o$o(l@iik=-cEY?}$DIz4a0YPODR4=fqa= zpxzP&1aevmd(EM*yzUkaSvvH;VLV;Uj@gC6q4+DyF!btVW*wTRfZm%CB>q}A?g=mG;* z84g{H{{Y<&c$Y#5b)om+S+CRCEzobp_8BQ2g`R*AiPr)|(9b2nXOQL&JyaE6Z*A;> zKJbcG5F)_(px0&6Mzhf8wNJ}JkqP>gZG-HE=%Lp@KgU`I^GDjp)G`kb!oYxIp5oj% zbmyhTz2j(s9)-D$fF2#_w)}MXs8bkph3ylV)trI8$aLmSEYI}|D&AM8!0b$3zdpHY z2Yn1aY5NakKyUIuGQDdB^nTGh5c+`$dbBM^H=40?%b`A%mX>4hN-X{V2RaOc5joNh*@Zzc>it;};=ri8&L-uE3b zS7ChYoSXI&6&QVG@H&d=Ftnf8p3_XAg`pJ*+}gGv^i5T=9V&|h&a=k0hf^q-DzvLP?U`V{}vk-qCNSnhLLS%3!yElB;Ir(B0& zn^E$K25x9?(BR+}Bi=X)odRqdi3d}m z;q%sQPMjrl9GrZ&;#&;ewxzs&_f?@fM@@P*?gg|AC4^0}G(%Gkol(!sF{qMg3=F2o zhVFs7>5>{sz^!v%-_WRmj<7yS@xVA}=5gqv_Bag{l*EL5qZv>)$uUUo&IUE^FLciZ zxB~7j|9I5wH)zqzo_Y7>J2cw-Qn)}P39a%xMad6Mq3qicxolEVz}+J&kDj>z4XQyW zMe-@2{Nmjc)2yaYPx#u!>A)o5dltB8;#{HeF?(!(nlDt*74qEXE&}W@CQ9-~pvKoJ zNui?>%6UzSBs5x}rP+M?(NaF@QJ z8mk}8CIt=70z6}5?9gDqlhj$G41ERCJsKQbWrqPw_JJ6Mo((vm_9P|p7|5{6Z z3(el0fr&cW(00y%fbygswD{8ZdBpC==2!ckd~6Cj21TDEBSL@)P`PEgLGR&x(vz;C(B*QW;;pSIbOhy2_jetFR%SIfuN(ttA|!PSC%6v{ zJ|DeHHJ72~tpQy)#XjgvKAAb5lMVgy7YuSAc|r5-enls16KD?=i2eG76E2nlr1OJJpH8t;=ceNaIgKt6RdwVqPRbQ z5(m|ETUTD$><2t9xclH$DX8^PI`6I{0}WyZN?)eUp@PD&ulD0GG_D2REyxF``DjGN z6j1@Ke6L({FdJ1V-=!TN_z9KSvL zEjS?v@cY^ieJON-I`8zo_=qW}R&~~W7C;P@v95<7nZ-ff?JYz63s=C?FOs?K%>eGzsZTBy$xxGZ(uz;Ji)D{}`^%%vlIP zt4!rxipUkf?F4CC%YTJN&JvHUP7K#RIda2l96`O$lSG|2gjoE2?9acn26c;pT{Kxy z(0m{vEFnz+YJj)Pn;%A?A)C*Xnpuyx~^25DXp%pjInwO3P+;gvcBGuUaloiM3lY#&jGIrEZ zyaVtL=`JeQbwVS_Gx5=!2+Upv5>#2X&}3$#S$pgw)Vtwmi+sKUe*0ycIwKY@3g1t# z96bTGvSA*k;}g(8dy@T!x(n18iqBhVR6>*T!`!P*%urQ#QQgep4K&D4U-gwyhPs1+ zF&8bwpp~*jMgI*y)Nwe?w4R8D+UKW}kG!ygCcDI^U(D}9oqro8X~=76CVWZv!!-cv zm#<3~+EoMon?BQQwh7eflG?UN=|O$I$|sE&2B^LAqNU^R9?TwE+m>@}fa5EC5v62E0ejyI0{9 z&}hLp{J8Kk)YF)fXr}36`N!TM%O(NyA1m_dBPLLL{{&^&zG7&&N-<=!90|3e@jsI( zGoZ;!`NfH615mA`aqs0>O=x&Xo%h1(0Mx~(%Vj6ALaV~@lcQV0Q1_7g`jzpkP`gH$ z->Clzno4iId-iw->Ts{L&oYxhGqHKEiVqv$1jmlm-71F$64T=a2YjKf`V134mUnPW z%JGzjlTgP`V^-}E2{@%R)`FU5z@7TB__^#Iv{;7w7h42F&BJ}UZ;4(*9Yxqm{s&p8 z@387n9wmXgQ^SVN7xJNDKeOd31*WIg@o*1ne!wN4jUN!%3(a4`uL(;Wh1L+7Qybj9 z(0n@ivbgOaG+lXeBQ)s;bdj8&_?k@!?V?pB^jTg|erLp^$mTM%=5qvk-#7s{(R(>o z!l$95)qn0yrZv>funLRN&;YJ{%jkKnDpcWu5+)n(K^2FV%MM2f;GFvU{E79T?LL)N zlmAb^+j98L2xbBP$HZJ$(nqYWPG7~d(Lm!Ty|a03HqgkLyAt8}4T{7b6qI&-O2CxpswlA{&fB|XneaJ7=8C5v}Al?IK^`u%2=Y_)qM_%-1KPj^*x|{TJx4~j677tKk;P86+lbqD7AtQ9%^|iDiU6DLy1VQ3RiwR zRG2VP8P|$J(JAWYrF{xenaacK;LikjJ;KrXf)c1r7c*aAe+IZakF42FxxuXXN{LWL9z0OZ~lUbP_dRnvi>X%%3X)pxL+p#Zs54*r|fzto(WSI zvi8K}H_p9Zx&_5`DwdO1IiTRp<%$btM9>g^w?d?=3|jTwLdqLyp*c%|#Q23GhG&gh zKlB7ZZ%6(BV?sMr(%@fgCO1J#t%R1m+6`#)^Jr~-*#|h=zFhS^)zGrJcXDUl1sZ+K zPc?*hVRPH!4K(K*c3U-l2+i&HuMzC~0JV3MLwjORL9LrBYgRNJ;A{GH&J=J$?Plv>mIIcT zW|@cYF?K`KiO`Jo7e&y(!Rir*^-Z|2*uyQf`B2+q@SW;yA2eqq)3FK-0M2CGw#Ua2 z8n(u`xQ#K~;jr+n_6b%O&ICQNk|cp9d)nijd55t)KT^H0EC*E+f}15O1^c^G33L9We_uar>Ui{X7gUUpvlg=-+@UO%YA& zw_;EyG7>u3K#k?mpADHX4LG-ZmkzrnLd(wn1pMGEH0{_>zw2>^hTKtA-yjvJdxq~^ zd`SqkBQ!+vAD=)i#e*Y$R^3pm$m2Bip%ohZpXiR=EQ1z)OJ36;f52-fJMK;920Zu0 zg~VfJP%GSelCbzOG#xy!!r^im@Y>}3clg_&v4tm>r*r^X2h&Jiu4w?Cpd|AGlQA^e z$i|uBTQIyB&!)^Y4An?3UYwH*8fE=A(rV5@<5YKj(3zirOMBcM?)d_m4(}ypS~Z4d zYWr>)4liir3L&~VV+5_A8|}e^45|x`{oH!O1@%!1=`sl!(0JA~;L_VNz{gHhQ`8SY z8^h%RdP);$Avo>(S?d=x261xfaewHGxl*o-m<^xTU`hPbL`$T@yamdiE4R>mtib4RAZ0WF&L02TK}%W z4a4)BSFeO_z}T7$x+BL_S8FWskv{^M_T zuiCT2M6FfP)!tMX@QQw@oWBo7K+L9XH9fql_js`RBfzgDlyaQC!FmNR8py;Fvj2LapC{}I5xX8p|Zkg-QM`_}pis7K4 zWa$`P0v{L*_<4>sWFCfMgaZyEMHuwc_Wof<3PZ-)6F)nQV2D*m+G6Vvj4hY+j|uOA zzBl_%W^XD%e;Ab~I=%xVcBYc&rN^QFOZ~!Qi&rqY?{drt4=)VhX$*+#f5J$@JLk}k zD$sw>h=2iM{ijAmh0Uxr^qrOR*nvUyQtOzUn}6s1O3{Dtex>N2ykE)im$w;B zT^(G_Z2!~8-2Nz$`n!@Ne^+w!?@FZqu0-bVN@V}8Aj~f0_^80i7af0X?GT>ki(!#_%X zug@PpcKAoh@AdiPClCK9`Mo}W{P5u)CBN6_kDovMqvZGc{P81*f0X=QpFe&I@sE<< z>+{DCBK}eGdwu@+S;Rj|{@ef71BJSwiq7tsfAC5*rR7aC%xN61+x`=8RTKZud#jqj z>woK8)rfP!ui_-*2P8u9y|9bi2=Uh|hd7OqBcYq2CuBtp5x=kM%*UD$#OJt3zt6!K ziS$puXSH~W1WnJx8D?vu{pQwNXDrPT|A&=Kn|wti7|g7}#n^!acvT0ZE>R*8+qQ>< z)@+EETPIf4`V->4``}7RoEQ=m%5*4PWI{YdEaS4)JxDN9Fu0|o7x6esEq%6;MIw7o z87YrYAzsIcfHm8Ti2p%XyuIWC;$BwY|0?|<;%LlL_bVJiLatk#4SskeBtBc&Ny>!; zB)Pbc_r6C$?w$QnIYo$5ST)u2&C*vqr;Zl(aDkYkyymZX4nms)oe{{a!OAB)jdD@Vkl zqGfd2dtvALy(botw-AwqNvn`)KJ0`lCIpxCBjVoLfay3#MEFpVWt3wR5xjDH z5raW!z+u>#+br0_Z~>9YjN9lNjUbX|h0k@AR| zL_G;7za5RT4AicSrr8%jHjvc zD3dT0?)AFP?jB4^7~*2m#9*|(+LG%yA&iC49j3Z(0mG9`H`GBLW{v&NNZ64;f4-;R zd!bJ-yEP_MDXI)zKSU4O2wkKjej8>w&Fdj}AYU}h_I&E(muGI3A`bSVpN#&rNRY8rDtICeacN0xJ!OeS96nj)p&Ec#r$XZo%R3`hp`F+} z^NEPTjd7&#S})?X*7To}k3wucT#ZXkZxQFQ7ORg+mWZ=y{V>md8N|kFa_3H62x8K7 z*Vj1E&e#xYpDYP|Us*9NPtEjmrkA7OJRzl-d-@${%O(HQW?gK@p}~XqF{hcCUEwS z74%CTc(mdu0h0=rZwJ_8pzpMr{QjVB7`Sn8ioB2=ZKi)b# zm-7btuO>)skvl;jjp3WTpCd4kw6Fha|2-IEFXmr(Oavpe$_J#a)M03kT>D-ERT%kT zYPXow2)$&HLAC|+Fnm$rtd=GTjL=xqy?v|#6{lrG%+CfvO9Y=n^@1BTj4tCsO1Yu& zmb>z-;eEjK+*M*;zX14KxSCclQjO$6*#Ef!be~7-+>mgXie((H=#y+!k)SK zJ2de<79|xk16*$Y;s>E_XtZNXpS1_5uZAq6)8 zp>;r^S3>k8H1?FpvZPEyL%!kJsQRo!Z zCFvRd}awPBfkodlMO=qQ}>R*>1)s^ zD&cw7@H#Y-c6fYAz6_mZQF5tqS%8nC_VsS3jjG(P4pE0lf#-HJix>7uWowUysJV5bdQ zN!D7wCqIGqmJnTUw=;nI99gvW{0g+nh3Wbm6hLcLX+q5x6&T-%G&&M353AJgk{-D^ zz{15J*EeTXU{NHy?x?0I%=?KF9a1ELxh;`x5_$xyQ>VD-?S){W>{4;=(^Z%}(6Q54 zLJqTG_T1X-nJ{k=Xq=GQ3JauC;UnaGjMP}56cxi^p8f|VDSQX3R4U%EEp{@_P;p@OJn!vxlbv>xDTahigqf@ zv)Gagg>J)wECUH~(oI-z-K;isC_^Nv=^e3?m5AXvhv)~DcvuPbiX+++hZruEh?1Pw zM`Zj{-}dc!iD-_5vf8pdL*&{=?iyS=2x}xRk7b>YV)^A}Km|`eES*SvzGv_``v0}} z)^S~JTf4Y`2vX80p`=Q8D|67T2&jO8sDLP)f{1`YsEC4K(MU;mFFK`L6p&B^NsCf{ z%YAU)z4h$<-g|!UdC$4`?Dfz1tg+@8bB;CRdFEt&2NV~o--n<|AWxy4 zi5obNzM8x}ro_DlggyIseYDQN=8;?b7j2w@@i9T~Ly6n4d1iCJ{d5fwyep5Ua-;{s z?8eCR=Z^xx&FS0S^QGwBoe?JRVg+)Y2&?coGPJ0s7Cuf!2SfqnTtl_DVN-r+el3kY zTJ)1i99Q;6Upk4U2^tE4oUFA{b}s;-)dyMH_kVN%M*1fdjP&nNFtT5`%`XQ@zuS#| zJCXTakzdXEDGRiM?)T#M)Bx${Sr<&-0Vv%G zn7mSU0d-uPE@MF;&ZJ4!GT*QUl7J$8z4RgaAbaUCHkEw}6~|(O{2I zJ5XN!(h;kr5A@pSbRx%=f!1Aq>6jhfPS=`jh7Ava&gG`z)v^NE%>Uwvrc^pme+j?h z9vcEQ0WW<-PVlZXJic{?$MyrmWBLPzx9|rH@9{dr<6mcZG(RxBi60o=`*nt=^1sRO zKCd%8vL6`U+jWNb^bZ)`?jIOl<2u7DT4#6{*BRcnb%qza&hSLh_|dXi&b0k#l4r7D zOUSAJg5h2GFBqQ4I>U?k1BTbX&hRS!gyC6v9~f4`8J_dijW?Co8J^mI!SIOJ8J^NQ z!wdSE;e{TR>sXaX9UC7iN*sKQI->4vkBqs2dbyuf${r>DmEpCB*xJ-rrlPjM<42bY zi%^G?{A^!{0qUIGkuab>kGgw;zSQ?EqqeY9EA9#VQA>@$mFNN{)JrT~{3^)}J!PX5 zXNcea1H*g%f5`CE*BRd19~hp^A27V2b%u9lo#C0`3@_(=hDHwRrg2ailR}OupF!QPdUSTXs-oV7 z*Rg&?wP@h7*Rt}wAL_EwCq8`u!x>&@xkWlF8jNz!o`N>i;X@UvN?H%IP)UhuPCFLK&|`iXn8srS2~-d^~bWjVhneoJ!5zA4r@&OiGP2|C95 zD*B3=e@0`-?Qs%gXKnTmvY5ZlsW$u@u^1Ru8#av32ekRci#d;{p!g)%e6%Vl<;p+O2S_12O^Y`dl=PW+PCvN>q6a#pMs9V2YJrWVi>fQY;yBly7yCiC zm1@~ca1azib}OIn;D z#M>XncC$MjR7c~}>-2L#h1M(yU(Nx7ypkl%T0rGo<)@CCY*0E}Vt;DlH0+H(5Km5# z0DJA5JLzV$KsGtMpqoYy&?9@Pi#ihk%pXi1e$oQPwN82Q45sv*|Y9=?}2C?FgNy(jHJQ>D0QHnFC74@`T^e27&@K z8HtoHf|769?I*2i0HG?R4)%&5mw{M#<#Brx?Nr$p$3P;L=*gYEV8GH2Kmzw z+hSR^fhwt<>Eu=(P~r7tl6M~fC28q1UvAOEZpl*a))YOELRSt@X*>mST0YP8k_?au zaMxWNB>^FZ`q&$Xh(Pjb0BKm@1K7L$;iZye_hC2v>{@-@94H1pDIUrx19^RiCTnSK z&}?6Lma|bDq}41e&ui`ji7|r9Y7UVg%}njZc6S2AIt7=R7$`s}!ZIj9oE>D0hPT;f zXMs$Joc!)n{-C&gc~*aI3^3#EVLA&{buc$)fE7sT7dZ(GQ+ zgT(Z`r2rBG5FL_zwsS`v2wW4Ro;dCc(#P#iN?n)(iMIrnirdZr9637E+I;|kGiQ{3 ze>=zq(Qv$RTmVI~54XaczJh!=!3EFTULZkoJmeYwJCM;-)6J!i1ECQA z!uFg1$ecFq=^r5i6|zXv1gSz$I?fVi{8|z4g^0=9=QD5*yUFqBy#lfFkKP*91Ry#Q zm@@l>2E^2cuATkT2>fp?WtH5HgIIWLj2>+?$Tpe!8(mHUo~Ot;|PHvDc)R7n%76VuclXS^r2DymN>qY+i zLF}>q6M_{tkTPFmC7!ziJjus$CBhs)n)Z;u2<0x2(p)Jm%(4V!i<9#DHM#(CvAlw3 z>;YZe7*NJH3f#Lp4+~zt3nK3y`$n~sgGd6Ei9Y{V5IRzzbj@!K_%>S%6g0$xa1)E} zU{M3e5VPzdK6MD5PV+f(g&iPqYwoQ<-W}M!tNe9r zkQ_*n)H@^-B!T4iBa6(Uhd`-%Fu;1D7!)p9ecX8%Uq{K*w=j+m0T;tj9rL<;5DHr% zyCQKJgh_-txIY;I-{D}|o*)j`eP+e+&DSO18!1>xS$+;u*PkDsx=|188B52ATke6> zr)*>I{_7yiwrSoo>kueUa@(b`i-LsQVd-m{x*(iS=<|ka1%#dE)~e@gKtL+M#18oZ zSEYr076B)S`^`vYhRc9J!h_tht!F^?e6*{ZX(!0`DUynEEP?nTxfJ0}e}H300xmlH zfpmDLEQ32g2zDCYRsOK$zv-OnpOXIapPfuk!&pUMRprl;>78*u?Pz}buVi}vcXPG> z)C-%Yyze1H5r*}9_vqWn@L(;MPPZQ%55z_f=JHBDoWw>bO30hp*-#F3n6fp2DmI{( zwvR|d7kfGOwXkV~4a;JmBMq_qgsruPUue0;gPqZ*wocsCjLot>5ceP1j@6mZZ;14t z$HqpgHuv?s!`|p;s))Mo#p*QPoMsxU#@@B}-j|o^z*<+P+Lo;bvEJ)n%o_FgVDsqa ztCurzs6lSG`_`CBtdC~Qk#*(}wvc7&w!wTB8!6@_uB5iYoR8lxr)7GFJ-aWcDq-{r z>mZ#S?mNPbhUP{C1eW@->3Cs1B3nMJ)uxAblf+)k<V)6%A@h=xF3dn;8e-P7_BNc)Lf%@QgIJk zvSal%dntgu)YvJ~GhTvC^3$BPE~dk33dvuYPRe6n#MHP#F5bo#i750Aw!Or<4}### z%_VFxa980`)2CSTk}`jA=_2;Fb?!OIiZr%LW_gY^kP3S#zRSY?0|oZ}(iY?D30my+ zL?E}PWI8r6Vyu2lAsibuP?%|>dWo$jA29JF&cL4EzbY9wMUN_ICogCdbz#p&dyKw> z-oR!fuU@%zNeCOKbqbjfK7=hY7hPiLw?`w2hYu;)&0zyNyFPX$-p3x4G@tl%Dh$Ii zwuh%1o1>0R%R_Vutyp>NJr*zKJ6QKx#7lmG9@K}z*XWO!W25~3M@a-H(fE>A62CA3 z_LiFe6jj#|G+?-~TAaWby@(d{w7GH;Yreozw!7UPjWSa{pMTPVz3qu54PK=~y+T3+ zMUHvsnQ8;=C6RvASATx%mHp#r=%u=e24gz*tU}i6ptcq2^VMa!G}nnnIx9Z+>`6y` zEyE`p9DT6)#>@Z$JvwZfCAqW6U@w*+L8mcdc^-QqLVb91!4A~F!$C_|PZ7gTSe$-j zOOCzT8)m$*Iv+i=%(EGkyp3ueQIYgX^Py4NC78S4hQ?{H1!e{(pb3t44Kb0!sKo54 zt*hj2)HnG#;MJEGXq0X6F&Z*OeeLFH+dhY&m(P*|^mMLZ&jc!4^~)wvZ=(M74SE{r zh5d$IpSq>7+$()c*3z(^pW>i;ve*6g$xKqbYq~yKGTUXt|iDG^9Y8O`j zL~i>F-3l!8ghjU>9UImz=*H9+cL$C3m>rCEp+pU5Yug*TH=%;DH&P#^15x({Z^bXR zGg!M?+@?xhWrQtGrJddwgc?MiR6SMShMo_V85Z1I#9kZ-drQ!mihB7ex=N;U(Hoxh z;oI}7Xf)-J)R~trP+yU8dOkA+%56S+@zmWKlz6nDLiv?3>dh@Gxuv~;M$aV)RP4Eg z(iZDT)yP{=@71FzUsa}2Sw_b@)zptD_sYIgb|E>an<1rdJHH@m;w!J*m8*w(`tyTB zu3DnXv{%@x@w2FN=sNK`+Xz&-b>XZ?*GS+%hRYn+J^D`rCv1XSbdu?kP*E(@m1}#Z91x4@Qv1^UqUnE8E3`6zDD&a z_Ai%=IZ%1>CZn}2m(j2n%M)hfF4W##cvC7>8NE3oefPe-1FH8Z;IjXejk;*H)zSkE zP#y7O%?R5EXnyRGn4kGEG?iN$Z}}+#4a>VZ_O1A!_Wt*~`N|DY*T}`3O$Fyse`Bd$Z2HLfsD; zw>`bsjj9Ea&(5nfXo5I8f^+j%loJ#BXl9`U}ZNWHz-t3be7tq2&~j zK3}Y_FiawrffjrAmS6s3H5b;G{!Hua<1DP$kn163a2wV*nx(68fEVi@+e!Su|0vcK zLU^qqG#@K@PN6JkHjmZsKh%@KtdF^-rB-TJ1Y^CCG`_W%7uNdJrL0o=E|%gi6Yaw$ zg|$Ct?Bz5K#4aC|QVck^~=oPUJRwi^|k(9my>+3motp6)LR?%9| zDSI##t8jQXD)^ELE9o2?9@wCP^~xBjn(Q6JinB<nKPnT zqwS;HGS{N8@`y8Dkz1FsHtC}4Hld~{S?lf=nH1bli}9zWE=I)hoUSx;gaS*R&o;V1 z_X-P5Ie449^8psGQ1nuKIua}3kNaE_b{54-shLzK5MwoJ_uifvt3&A);(kK2omkWR zT*nKEfD)R5?gp9gq1X_^9UkgySh0L@ZX}@=DmfJ;_ndwo*8J{3mL_#13b!*32yK=} z>5dlVfzcQ$FmWIhexrzz-o6wjDGk9Y7@iX*@&%&!_xtX(A0$R87JOpE>7gjzo!)j( zbvxF6KS{~8HwA0j>A)*>ei92>;1Qin=EibJUp#2^B1KuI*ikc{1}y3A&6ptOLaa_r zj%&Hf1Eo!U5_4&>!2)l>n(S0O%4Jv@RO=%{S>ZccpZ2<;oVuqWxwW^DOIgk7E7o1; z!68$#HR(x|(nj-&&F~5eH|AeqSrl0mXKW3*Axb_Wea(G`2rAliYn*{g9OaG( zRv8M0Vnqk{XCw^2LTR)qhb+jtQRcw8{UwRQD2;!zThR=|^6U677CR|mrQ)Qri?u`8 z9g7bqgfw%oFS=NEz&nmpZ0;!4=u3um)Ml*SHsj_YTSoM#Jl2iptTSrXX09tpC_$B} z4Nurw-=I8?_vD}S7qOJ{#6yOa+St7fReq<2@=-4KSoNM+3c?1SY_+FI!+aRCOy)d~ zqkChUc2IwMkGVf{D_iIfMt-jL&Eh;+D4B1!=bSqkO1z$(l4pxhQIN({9v2A|o+bTy zuZIT8R!<*Rx@d~xR*w(K#51BQVjV>}(KsxZD72etBpDmXRLRm-IDpl&sBe1rDj8)0 z;bk{bITWNIW7;ytiYm#w?^oDuKsl^iuzpK!RMWqW_)v2`s+hq6zE}4Qx2B>BxadZqmWjH2oD0H; z?x7Utw_e-a8&K&^89%?4HT2Yo$}?iWIEp=>*VGZNkMmzE@nyRkD9U!HnsLGb6kW@e z8GY~~Dxp-#E*wZixhf=qV(bH`eXYyM#489T3!&@^LQj-4GvB315`!}7RnjkW9z>m1 zwTErQ-lDeZk&mD9CQ#L0HMUKAg;4y+d!9>g!cmGnPjOCCA1ZD1@FJO4LG=pho>aq{ z=!x-LLWPt(G@!=4<3%hxYUikAolw+7JtUQbw`ROh-C1!W`E)hZI<3^nO`m~Uq;Eu6 z>zJeLe2ux5N2gFl?q!z?r*@-kjc1{`mp7q~4_~&?+Yq2=^Iht%%mq>2oW(Kjj7n6C z$tMQ9_rUJj53_{4)4Cog3{u(CHE5UL9xY9MldmfBI68pOWdqM zP05YcG>j|AdX(zf>`*sKX%J}Yo}fhcq!|wRed0tNNAe;PHtVBq?#-3sGIFTHv@$6{ z-2=6pZ7B=2IfQ~%rP4jWY)5G~-g8CQEuac(Suc`==6^Mg{;Mvm^R(2Q+kOeGB6(vZ zQwSZFcP!Wb;h_^){oebV$B!0Zbz(!;J13LT#dcM}Q5zSm@@#}FOC`b@_#E`f!ez14 zH~Z4R>>$I&DX$by2<*phvI%StyS^L4S0IZt%ePq0he@~5W@W4~YeiP-%rMrm>p}RM zXBCzuE+1t}HHke7XXjI~V8aR-Ey!|(cVU>el4k5RQLOihVS|S9ZuEF7eU3o47FIDs zDecl{fjt{jZ?WpSg>`7}U#kyP#ynoNrZL#MVO1x*zR1tgW5v`H8d%vhs?}x4*#CtV z>(B}sY%2}G3a)Fr%D=0?ZqHYhSDK~a`<>nS_HUA~j*Dwllh5Om>C~K zb)U$zsE+z#L1Udnfk9VLgPWYcPN*~Xbo(Ti;qnlwcr*H?y~Gz)SEXlAfAU4O<|NNY zaz5hwj+X;rex_Ke_JbhzGTa}5UvuNj0@OrOlx8PxgsSeAJ;;pk!8$}JhCZsSVJ$0^ zTg_wgFkipY&GYvbu*#T~Cy%SPqbj|vX3mT}Sm-ggqn4RRusR`%TB|EpP-XO?PXee6 z=0?lJ1@X7&Y2?Ul?H7|M)qJ5+lRXhtHHc)ldjM*xQDwjK zF&WjEEqC2ZeTW)-lREV-pT$yqV-Iar8AAn$Nf&0g{83G@C8^-amncSWcfzxCZ&0D< zxs=k3Wt4Kvp~5UQ64jE?6ze=$L?tX6s!j)|qq?1~u5a(*kDhEFMGox6UpV*#de*e{zYzk`m>bJ`_BsCW?wa z_#9yll5IDhyTizi(I?RzQ!dk4OaV2toP5{fkM-bSSlv zvO@RBGt~IFIHT9L5@lDNSV}e=#42;@iZ?eeVsY+g@}INUqugu3_A%P0&=cf)VgJjt1V4pXr%I4Ms|0DINDWdBrk@f{tvok67>*p?%y5)ou z-(e0^7FxP<(S8f6Bppuf9nnX%FXxv|bFbq2PK=nFm>V^<-!G~tdw`Pq8)mBH(^2_Z z&o>#t`%yh>&<~_RI-ul;cecn zD0{@T{sbWpzTHoaGKK}Xwh48h*0Pvat9lnveUHHA zFDFb;w&Ca1W4B(TB>Pk8&G}j=JC7u`?8!9B5Al5`)a8k)$Jn-}o4i3en-q`jy?hlt zZGC(FL9HFC^W(X`x%(z+dD=H^q4OTqC|UN1x`ZN(qSE(3Q3tA7Am+Z1<%G)Z?1uZN+UO6E|@-ua&1}080$q*$_tN*Q_4N49(zN7M_><% z`XaSLZA^f&Upp#l9J+!MkHmfM&Tc|2MMw6?NA{tnzy_9bl|!hU&m=3y;T$Tfn%|m5 zkb=?}Un-m&9YUGq-JjC$x1mZAZid*31OI9q{a0OBr@WZxHB}a@V&ArUGmj)Jmq0xK z&EBI}1EFbHY55kcHrgwZ#$Hd8>+5`pnJHv6)~EPD9kg$+?)1e~VQ4tTQ$W zH|rh^x?xui-rDTX+l6%xs~Ak(iNms=1XH}yOu(LYlO)osY`{8-m$C{I?_e3sixdkZ z1lXWNd#L>#POPw|{%%ZD0EW3p9qD&W$9nibFuo8yij&if={hP=tSZ6eEsx+R*313Q zsrP~qR(|Dx(GF5l>~PM?;FQ5Vtm>K$fv4ybtn5aO!x1J76&-#{#bTN`m6qb{YY53I>(Nlo>KGm0h}DaJnbj?6z(xX& zi`%oeV-!8?Af~o>-w5=<#iGh zYMkR?HE;97^3)&ET@JmBIc3V`Sci&YnsVdYZiVebHEG59`3>$^NR{hQo2wv}DQYx- z(C0L&e)7dVY~M)?U!pY2b{|LWC3Bbbxq`8$m*^>_!ndI6mt8De9$u)Su;J3R#M{_W z6@_kVmrPW5;)s}nm@L+E?7~)}+%;4!KK({kr59DUiy0WJE~4U=)C}#j1gQR56m8L1 zA69-`*m*MMBdUr_I7p%5j~bWzdOJ2bql!3w60KKvv341QqAg)-SW~XiRr_KpWN1uo zLD#SwtDFy?e#7`4RrtMAa3FTZoVGv!m&RkPHtS^A=Pb=vpvY3mw`QLzV%YR+6H0os#se!rBO|^Keqrw26`-6aeMKGJ}NOja>QZk97@?# z&1^Mr3RO=GykR&Khzi7qA1OMIqk8qa5mPz?R2jF!T$$tomSyyQ@l^prr6*$>CQKPn zRr#pUp6)qR_=qf?^hy{i%%R%wVy_Vj(bgmUI3|i&-;+?iY{`J7_X&!%urQ;Bh0Zk+ zWl|isljkU93{lS252ug6H$-`#=)z2ICZX8njkdH$rBLbI)6ag#AK?4Z(E9YX52!kD z^*v=EFBYd)9zL6U5LLde&mYU2L-kvP8U|kGqH0o|y3ANsRCtSr{_rzhlpm;3mL}PX zBKX4vlReW>A!p48UW^>oM4g>;$Xi6w(PvQZtTC!0os&2z5R6hbMv~vCqeGE%oP!|& zU8tl(YW=H809D^iK(2vi5?NtIjZ>Bp{D!C zR(v9lpdv@>m!$ihv64&*KI17~EVyYg+4GVwDq)h@V6UQs(mqq_geN>gRUVQ9x{RAq z?v0MXz`~2Dnoy;K-i{LAFNSvqKcqrW+wuz!#e1Wge4A?_UvYksQ`RZe3aFak{k&oC z9#mC8_iQa$4^^!dJa^g@fQsnK@=ib6h#JkZgRiV~pxAf&B27-rqGH(%RAY(Ls4h{Z4 zna=Sh6eTFpqWrA~FFne(C$0#>xKV^BNyocQ;i%P5#Z_KY57nI#4lmZ(iSl#Z0!q^5 zQLc+xWO`;kDqNV(xsi4P=c6y@Y-I-UxZ7p#PmG~#hp8c(t<0!%VY0>SsG|R=vqRMs%3}}^ zqmMs;8vN-9rC5v6BctheY#$LSU{tE!F`|cRRtcET zg6@Px*2oGUL@nCKYtDTQMD-t|MQGfJP`TY^=L|P~RK4?d%L5-xlzTMjx!f@plr<#T zJ8_5#RitmPCO4k`SL5iv>cT2fbA)fM4VF$+SR-N}iakv6=1`n%#fsw@NTlbAvFrhk z=%s3H6w9Da(o}L5OQQ^^R~Jsk^37$cWgT9lkdAE))r<33r+1?L@#h36SbGyq%R5J` z+WRW^`D}OW42$Fg`UYmK_?8UW<(np01tDUl8EV09or==tB-q}$nV2^>NxI#LP8ObiT_~A$2BUlwdy3cV=609D(b+_3g4J%4N!9_F0g7wY!oR{!> zjJ2EE<~7mSU^%Bl0xRoDu=ar_jf}Wd^m$uzUxUec&de+ z{Hp$TuxSh{mc5!%i1VGN(@FW$(l%Jt)h>tFc1NtOTy}<~dmLq7rnI>|cN421ac#v0 z{IP5<9)BJ02(0-1r_mUNCd`MEKSnRB6npF*7=wnLF$_hKpJ>QJS98nyIBS}*8nLq@ z#nbVqaJS>uLA#4s(=s~Lvw9h2vowmWiiD#l=}#jfnsB~ky$~?}U>OyZ#Y=~jE@LgP zx+G%->d|8*zoY@71e9ifu(@`g0r?yY&yVL>KsmZ8OREWFSor~wv6qKOQEG%4)*Bp) zvP|2a7ClHuX|yUkJQQNF4(=jN|C?o4qb_a?{c+B3#lq)1T?IlBOE<1>l)twG* zj=PKsww+2LrZ|WSvORetI<8_B1XX@l&y=G~^;(rPmJdpwr9!nyArX&ywtlH?N?D5o4!TR2?Z3M;7pWwLI;acJ4`)1 zzZK=kb>B0NoWZKinn@H_moe9|RykVgL=0&;jxOr_08`r^SD_@x-2Y^91r-q(RnKwmMa|v>?~m>EK@oxO&U@!CqxQ@C zr1DXhQS7GM5WM*cx+polu)rdQsyQyR)juLYDWAMr(|Y|-{a`Vx=NUH?`zp8HW;h;Y zSRE|RqVGX>VhTKp{IXD|uZ#)LhnRZLC!ze<`FpOJ zYN%*nWo_#EF;wg9l&}3F38e`O*mGXEik|HjIq0CtkJ@+NzH*|&6?GY>9@C^egsOJD z%?RIQi#nc6uZBoDp^k$MCTbpgP(jH^&Q-hPsC>~di9pK;W$binE-jrvoos7|_Zq%I z_Y!aO3%yoDIh9H71;)*&Zm}!+!RuDcne<>j%7#bwQyM(7pYq?4 z{gn8Q?5B)(WIv_4Bl{`G9obLG?Z|)5YDfNaIy>^8^VpI9oWPF!=gf8FKc}oC|2bD3 z`Oit}$bZgGNB(nKI`W_M(UJe0h>rZ{40Pl_r=BDKIp-Yt&&lSJJ`>*X!)L)8{{21){@*G4&v}JJ zihuVV{`%O=-1)EH`TyVj)io&dnv3Xfqy~*=dY_d-V?jMl)FksQKWH2@(!3`Dpf#}1 zE;BL!RPNmvXlP6V&8U-KTxV%PEuZzkCfO8FM#@s@Pv}6Ul*z_fXAo2io$2T(BS7sf zn{Ml+9?%FszbBE99aK&liUx170;Ope1=D^xP^bIK=~22JRGIi3KF|_^R+o?dTZ>1a z`X!y;d%zyl7CCLkF5L&^KAw^zFTz22I{)pl{uof&J5M>W+a8oR8Yv$1l?Bza5?K#z zY(azmk`4Wr8Bpy_v;nP1|uvexVLj8Ya(r8q)#4%gAnW z&;1~ptw$zj9|D46p9D0?ra_eT$P}Mu9f)oDFm`}vBk(rwD&52G4WbIi*~1h))Y20W&yG_FG zahuX@M?Zk@<8Hprs|LVt_9Tm@BoIWCEcl;TnSfC7syL$t2M9~NnAm!E7Wf=gZ@;YP z0DiK5-_GStz*iJEE4}IryCt6AkGh!yLjIN@oL&H;m!d`=1}lJ|0-eI8l1AV+wrZX^ zy#l-kymA%Y!a!h{!|nd(dEhT1^Dz9B0i4Zs@)8mkLHLtX!NTMh;0@5GloaU#fwlf! zDe}|6TXS`kqr(k$abPiZv0fmuqkQn9QZn$T$oXeEtO5_CcufaAEAVX_G)l~H2SM%f zW|sJQ;LRP2b-uX=M09oI6H-}$$DkzgS}Qs1tXD|g7=g!O%SvVx)CWALQU{`q8-PE; zW^0#L81MuU#oJJZgV33DzKIb_*riiQYPJahFWvroF3v^3!|`O!Jw_F{WT*N<@3?^A z_$Ll$+2bHcbwYQQ;0Ex~w7v7BX9Gc!i|3!2k^-lca6I#o*RX5Y!uly$0qhQvIm1R^ z3mX>t>k}m!fa=AD>x}~>u-Ug~o9lLCAfI~Uz-%=Qq*KQ%zUYL&X1dJAwEKZTb^e@p z|I$?;b2{B^6_E>s0(6smMIQmN;4!yToUuU4(WG{0kp{?w?ycVck__Z)`)!D*?0~eG zJLIZb9}v5SdiUx-18S1y<-9#bu<`o6Rz<=6Kp`n`p=dB0NM-eR(7bH~vKZ3|VAL#&?&S=$e zUMvCPAr^TSeji}`5@dBNK@YZY`UtZ!NCJc5VCRZOJ5b*j72S46ABc43uLh@V2htwF zFnhe8h26oNtub;QA5Rt0-vwxWk zdzbn-eEd@6f4x^)3GCG;X`6Qx0*3*C{n!f)*hyyh;+}mK?9zUp^y$ti;31FcE85ry z?B_U?YsZ~{BWb@^D1`*t=eHfX* zXw~IPGByk*wtlRByC%W-#=d6Vz0+Xa##h$6;|Lhv-SLK{zz9qT_TA;Gq5|X5YR3I@ zO<)r5$*1W|0w!KAC(#@$mqnjg<;dl5_|PHo-o zy&X(S9vLY&9Rg#~m-4-|t6+TLcI;{UMKHcJUntcn0yR$VPrO^{p~l*tLVo1s&+`A( z=l`zl`X@inQ!d}CuGI*6l5zZUYR-_Sb>P|YhrW=f(w$Pklnr@$!z-=%6_BUt##qM{ z0eMQKB;v%hkOw;zKU7|Vygdgr)blcMxkR+Dlogi(vI8gNAWv;JQ|giy?uTaJl!F`O z?e}o$3%&t)Qp#led}|?3H8cKcUJLH8_QI|CDZCwbypxeQZl6ZDF%tKW;?81gNqBko z4U;E&Ay0fpYqX*Y@?@?&Hknk0JPC=+3d3p0Q^?Gh$*hCCy)!rS-UmaT?D=G_S9txx z=WpA-Cx$$2!ts@6F33}t+(Z{^g15(YwP>5=e`?%+0NtDZ1iCl<9q8VKL)`xYUNQ|+ zyECS`S~h}WztK4VsImO1jOF(-|Los)A67L~Q8fM&%qDR&cRp?A?(`4fHtD|~ZWA#5 z$Ktl_dRz`8>oWRp(s5lnwf{}p2e0eb>#_I#o3vT?Yqu^P*58Bux}C$i-hO_)+-G-o^*gP{XJ4@{*Xy@mx3^{go3vWj+rSU)wO_x_T$kVdt+&@vFxE-fFB>+v{vuivlRTd$Y5*|1)I zy`0l}dmPuxJAQxuy?yI;4(xxEcHi5v?)Q6te)s3R9>@3h_Pt%d_S?Fh?YiD!y?(3p zdM($>{W?D2_jcdoa}xP|`@Z+D!@Ayfz5JQ)e%H%ceUI~d{lV*UJ>KvAW4Gb=ahzJe z|MmS)|Gr($>-F1j_+N-%|9yMUuG`zg z@BN>OUXL68Anx_{d><#a-ao{>Uhd?&{@3w2|ND5H=6{Ggcs=fl-`96;J&y15)na5_ zvaj2(`#Tr?`?zh_%l$g;*ZrUQZudRD^>QcI>$O~eZUsNY{kPb^|;sT{XRaexHZm+i|So58__8bJAO{|9iPVh}+zIy&d1>dOW8qeqZ0O z{j+ZWef<6u_qx4p#qa%@R{R%n>-}E-QQUvn-{0f5Uypm_&*MI`9`E<{>yP^T`*{7S zzoUPMd)>bs`|soXFZ=tC;y&@acKiW9-TWu~bo2jI5~APS{PX`CmBGIKhxHVdwf}^( zl72hxvNt<*?jInng#Uh|b;Gg$Skg*=_=&dU$L;9d-RM+brXXMzk-g`l`v@2ll@f~# zyz zv}FYvBbwtT3&(&8keu<98f+sR+k3`n9>_TvX};F00M($GY;T?%u-^Z)MUhAXI1P95 zSUR`^U5AFUKx{5hvQ_(&y>tOO+v?;NH+i6I`O0t8bpxn3_PV9%lLEbTPvIb$B+wQv z+xRft0{X0o=V`Cyfk~v7GFyKa&`?mxdq=$hu1WVh0@T*P{I2-k%idPl@~T{a`oVh; zS4s6Y;2!`6>w8!^>-IneN_EGC#sgT1$0hnO7*K!QGF=arHm z;7r-J)w`nAoPgJT~}Tk!;)i`rH)AY$J#?B&!3l z#EYXznY%#Q=8OimTmW)KjI?f7_(4=g_a^_fhCf*3i2h`eBl`Q2-@MUe#e&4%mZ)O$bi~fKmt?}vf7=aX*-45Bk8o>LeeY__<@ek%M;h)T1!oM?jsjcnYbj;k% z9aX+fhW~-tN&4-%p{lOlpZ$AFXLFl>_}^P@{r8)lL?r*Qvy;QKl4ADC&TpUufT1YDeT)Z2Ap9& zokpp9fU})}rjG=_pS(L5LvS8A78wncGs}UabL$79fLp+wb3j1GyaslZ2ntWDlERK~ z#j#4-3E=Q6cX2d71gzqhUX-g=!VVRNqaJf(u+2t7l7PMiSc)6Ol;rt=ablALm3k_$ z9OSOMLJ$KidT%Ss3Z4Vohu2$)2)$v4c3jij&6KcXJovs;%Oq^SA|YNSL^58y2`hU=z*D1U+$v&CfN4c(vFX;1z5599&xHhpuhjdosCBY zn7reR-<4_t9b?!=f88RWUt}#-W6%JaoS~x9PqILN&j0Hj*E*mN3Y+me)e4M;ZB(?( zKEO11EJ=n}3z*&=@Z}n3117~(YxPfKz##0ed5t>=7>A7$$vypn_I)DD9D_1!-Lrk} zK}aXi%c+gmFLeR^m#do%{FH#+*4|Gx_6{(FKEB?bPXde=7M2HxD1m9^@xDa8BG`7n zZ}4RpD=-CnzZsJ=g{`bNYco$M;?JA58aLzplbbSJbx|D{<2rIiU$Votrpmyx3qwHH z>8G*MZvb>TO2oNORe_;KBz0GS2+%H8@(>E$0)|mzQUU)~pcxJAyy4#nbitSQ(UR>4 z>X!32Tpv6DI;ODVwLQ;(4&_{!>ud)4zH5EPQ_H|;m8N+~)E*e!?)!B!>jA^;cD7B{ z>OlAL@uMzkJpM}|i^oW<3?gHaOZ@aIOPOz1v?Ltx1c3?F6$kXU435@m9LYk5y!1!qJ zSU&F*Fr1RJyTxn;47v-!<~_@>m1u`}XuKlMtP}M*gcg7{C6#5#)DrK%hO15=3W4^L zi>QtS0WjRU&2p_h5@;%7xSq@4?@8}<`K%c?9=E)d=1e)zP6}0D95(_1gdcn0I(mwo z??hXG{!y6A-p^9ND00}Rgy|J9>XwjRrEms@?x#*I5j%nI`8oIQs^`FP1!bxN}$`7=%skE66m=@Lj4iGBj~A-^4m25 zj84(Jm5aQ9sit`3tM3J1JTMid$m9)-5AOD`QHueir|XsbMgG8m2rO^NvIE2RxvxdH zjDYEWx2QM8MxagZ?r45v0JLdaKl2`Q2l~C_I+eGzfTnc1hBKlD7#Qiyc#=YZCYsvR z;OjA<{gfQ`V(&0ePdZGwwp|3;bc!D4f;FIhIZz&VfEws^V?J)j#|y*wj__IWhrr0G zcUsK#956H*ZHrES4|GlWlmWKefgyNH#}+3&p!vMBwzx407=_zy53YOyy4_Ew+>#ID z<7#zjpPVDmZB}{xo~0P*CKqcDXuSveL_Nw-hS$KT&FZ-23Oz7c3Q7^l1_Gmn_Ug(9 zD_}IIBzgFN9hXET6xGeZz?K-h$;bfcCnx%3bn*5qGrBx5vIp8HXM7(yXaa5P>z0Qd zr-6RsoQfue9#Ajef9LO)3-oEi$l62^Xl~N5tc5Y+ao*(jz8DVFU!z$IZXd+6{3>AlOUs^N+y3#1Sb{+h^1d@w< zp6Uf!&gx6DUN*om#K2zY$OClB)b%O4bU^21&am2j3uxDf<75utc4>LyZOev0?-@t` zVb=gK@>LMz2=oIJjej!p3?7gD8pnV)J`N-_y{Kyh@Nr+^u&)=Nr^H{*W%uLjPh-mv zhn_z$UKC|s8QO%$ZAJg^!XBU<@n}?Es{y(`B9Rj$yg)69S;X`Q0lhN8ypU!Z(42pL zZr%o!4$vR44t^`F1B@i3^oQmy17qpy4kP_MV03xy+B)6{ zj6}Y9jt6{!QIo60_ZdEKr>Ae!r91-qND1BQdI-!p6^AkUNOS#V*|Y`v zR76jb=&}#ZRGZ4PRUbub_cWs^E*YcwHfxvAg$rm&J@N}dlqOm^yp?6G@+n%m;!YOK z%!?Li59nO$t3zuCsI*cdmC@&=8{sYIL(q!dq@D1)edy~6qVr4LQTX$zcLB53XvM}< zC203NTKzIdTM(9kz9eg&3VwSSy?3W^;gQHgi@k;%e#wW>r|qt$*9-e$|taiSU*%;+7w7Gm*uu* zwE;P2=BZB#rm)$8=-$QrHQ1c-+_3A(Wgt=TbDi`lfXyTqDf-(Cfk^i}m7othkSDgU z>fOHy8(Wu&SISa>q>1~^0hJ>_GERPdUQZB6r#e!_)j42O@#dS)KJ5bX!#5bW71jXd zPR6vGBD;Xhu9(y2j2}>(d+T#&wHL@$L&Gyi2w-#OhuPVJSRms)mId{Ac{`q#*N)GD zILkWwS;}W1rYD?f8LRG%sO@AaU1LDMOO;TM z!4znZu%6CJ(FMBJ2bZSpb^x_JgVK>mAz4jbLR2WWIE`*ge$fOg;ExD2-`pn0a( zW1Z>(w9k%m`SEYV{okc&oOl5AQxS@LqYne4p5W)N@5O-rI>Q!~3v<9AO6~IKGd@3G zc#Q|NWddE1LX>sWD$rG|32cuE2FBz1oG0Dffkr5YVA|CQXg0}i+qj(&Xa^d_jnst&ZJ6e+#exbXF1>AWv& z0eYui=hXc;ev-7Y?tO~m)0XY(>`wUl=07rBvYZQa5fq}F3wWHerdH!t$AQLgm-{8n zZNPYPLnOJSD$r(b&Mm%l6zDu|s#>Rq<2=IB^;GQ`(5z=-8>JGS~6-6Jrm2LZ0d0-#_9;6Ppq-r|T9|DGdY8)S$wRroNXBXC<)s9SJT!t^i*$e? zZHGr_D87Cac^yd?uLTD4^cAwg(?C-^w`-rqA~2d}6E1(c545j}sm#3Ufi9?6r7NKU z=!i3U%7qnxo-kOE_Z*I6srQk9@jT88WXrUv@P&z#q&RYaJl1W0dfzh>T^NF)~ zzZ&l4S$;YL3|sd&zFEb`-}3v2Poh@9WJ5|^w1V@NfV&%q5`BR7`qwPhH{n3PHI=CT zs5g$^fnvqBT)@B(GJh&E5sy3X@me+>-zT-6Gu;$8es7oYI}?iIev0Ep|GhYV+ZS=2 zWyA4X{#=op2{4QmT-7tgaf9R4i9lr|U}$(9zhvi!>*KqufKSsCZ3eb_h5D=S>!SOpRN|*&7-w7kf?}ml}qgHm8 z%UukZEUHaf5|weheq+Y%egha!r`?+9qsL{iUaW69j^EM-63?n}{Ps9}FzW;`F5UX{ zoE4u(Pw3qWU*Pey-Xcw=wZQTBhPun*GaSF~WPi$kh~qcU2`vj+9KXp9s5;;{oqn}k zTxAf)@B6vOgTCVU?Ooa?9EIa|ijYi~G;Uu)*jh(~<2T0x9a{x_{9RBdGh4&)d*7O_ z5TBEso!%i*htgIDS*6Jv>o~<2R|5RSnKhosM7sTqyyxtDh~F zC0ua)OV?&?Ai(kaL1F}B9FE_GB*C@;IDUIqeYC;jv43B#vND3>x01n?_qa4Fc*4~q zi{tl)YM&8P9KUO$pWJ-h2c>AZ9A63)MSS91nQjB)%f|G-Os z?HhjU?ZEeWIDQilA6EK?-_*wo*t=P1cb|imx9ech9}D`i9>JWpDO4i;uqH zx5_rsi8wH^+ro7977LKl=xSe#38tEK9uI$zcyZ z5^Ll0E5uVO8y`Qr(GEkqTk+eC2&qF4^J$duWKqumS z!h2{xzRn7KWer%x`SDY`$)H|*y?vVzUR3}LPXsB?hTyyldviH0`2xPK(M)Z5Y6mp- z{kEzPVt{eL*KgvSFVKdM2ThjZ>qzp`^Wn$hflipU!fxdT(Cg(S9Pc^^^uu1eqC;_B za_R1NqW4v>b!TOjr}rw(i@in^QsVLVz~KFn(-{~YyX0t*CeF{RY0v&HN@ifj?=?6!bB?a;I#rEPCr*1A_+!r8L z+?@&x=`_NO1QS44>8WW$NDU0i8>=4>;OqItI`ZwR!@$_Qf9j3mEYK!+w!ZNMpiA-! z-FXe)$MCxFYSRnE}J1;>K!xUNYu( z%_PGSeB84;?25_+hCMOo3~$c^gF3yDoSp@2HDfFwzuN$`P8&5pSSkRmOs*5@MIWFy zD|ov_?=HT-I&2j7o)Q>d$e0t>1>yTK=DR1iaRS{{OYapwZ=eoJ@AM{?!ROzJfrEql zfsXY>ZOrOdps&yx2t-T3Xt23PGZfI>4+--a7XxGZa+i=$Me0v_*>0Gf=>3az&*K&SA$*I=a?sLL;uMK03= zZSOt@3En=SBk;WI7>w^50t7@tcs~Fm+n#CG<}EnCuwZT-eT}c@A3lk0#m7<8`>Dzc zdcfe$7F%z>05r|H1Nz?hKGZR>jXAs(XqU71;tegK@W_*>U`SEI)QE1jldN%(olVaQvPQ zic+D)_unihj~{)B@4t5p>)evTAxmyC#a`cTF~ktK<9cty1(odvN@I9b0wd6^`Fa8fWZr{$|0P zeyhM8$L$x|6@~abKi&AGFAi@9o1I6*{Qw-lGnv%B;?I}5q)Oy&;5epmkuOmn$M2GJ zoDMH>{4J{;#^)9Fa+m?^5XAADZ~x#4ejL9k^J9qcbtgT*dEliKj^B?auT$grcj=15 z5$h}*ztcs{Zz$sSzbj;l8rX3Brm^IGy3?= zg%fUfk^g0N)eIiD`H~uYE+~4pUUOqeZZT~GD zVL|*2zhmDLSbW3pLoPZ?-|*YXPj~yb{kQOk+nwL=dq(Q=g>U$6EPvtfH~empy=?yt zzXLpQ{)6MU?$9FdH~j8?d3NC&eurqxYkb4+J?BLwzu~uMZR)}|{C2Lj9R7yiYNuWo zf7^d=c&st>4ZmH_TxkBb{}%jI$N3Gv9jDJseZ%kGj6Ljs@K>H~fAUwJZGSJ%!Y`kp znA(_~H&y;YWo7%L%FNaB_bRcU4aI&o6#Lmw{AWY)pAE%-HkA0;P~vApiJuK6e>Rl- z*--LlL#dw)rG7S)`q@zWXG7_q4W)lJl=<0E=4V5hb;E!5hv{ni`%P5;^gqQ~INEub z+y0|}mHX@C^bP+$f0aXBb5cQ>$~#f#+|a?>LSImW*rf#7%ezshmBa(xogrv6Z!mhe zYY%!6yHQg289N$$$yLixPK)}9A6d3|o1o{<N zTjElw8y!&3ZK2N-#&js(AxetCk{LDJP~)QUuR$X@TTbZ*Y(;%M0>W922B_z>Hs*dv z6?ImvGVutApl6hy#j70ifA!yZ|J(Hd^?5C(2Dr_kN>6XxgTb%$R;`yyNtmJLNU=kW zep$&X*T>P{9=oBs_4)^yLp9351oap3nq9mef`&J5-<>vp2Ys`~8;V99e+eAD(AZn( z(tQOD=EAk)5*0MKA?L<&COPW5oBm?cmj|eVBgM9ZkOe(kukX8`4$fr)i|zHO@!bhV zyvkqgo>P$!`BaRc0U_Q`57mv(@U8l>g{3t#gj?Mnz5Z+5ZR`To{oS$X(R%s&sEf5S zbl$V=4Eac4BjJr@m{cx>*-OF~_){?t9vRw#MBTwRGX%ZlaIU;FJj-do0X z7g5)@*Ui*`3VsRv271x@+NtRIEb3+YrtsSE!-Yz5XQEHHp)Sq%Z$sk8=YMql`d&K2 zesPR4*ZZe?^_KyG%Ad#t@r=9opEvJ_AAOse~3aXV{<{8WufIM{|AngXI&RsSpV)&I}e zsA^!SsHF4PYyAKB8p)LRi>a!qsVW;9{Mo0+r|iVcEiBAWIsf$=-~ZdUQF8|m^AT!Z zLvtrCd?IuzLvvQ#Ufq0JXwEqx-*9pX&G{Sw^L9Tpchf0@Y_JZ^-H+w+C%lK|lI-WJ z7qZb@(at->w;Iq~J)K0@wGlMe@isp7!%H+b$Sz_dZHnezu4F!17)5h$HgWC*Nf&ijqg7~tcB(&y{-zFx}tf8>06g=DbYMzwe-0544UVPT+)`{ zNAtW*hfN~K(7b3GS3m|anwOKC{WO8!D^c+5Zo7o$HRE(EZAZ}j0VM_3r4BT2^sv1{ zR|UWYN3>3wPFe@T@LwXlxYoU-jceIF!m^#KemP8V}>r8Hy~EF;_*cDYD0sEkAEU8TnUwNo^A)4i}g$(J$xU{1xp#!KH@=h7s*7;6rP~D)A1w% zBt>XWYyY)z%ONx;c6`G9gDRS1*%Lq-;(_KiZujAL96_@)GsfDXxoEa;D@&UjF3Sy* zhPZgqYFDN>+BdF4oSb-_ka(>nOkLe#x2qqw<%8#Xl;4 z$rk+G<>7;>Ke_y_`<=`0%HO&CuKb(JfA-Jqlr;D2DjNJL=XEu=G3`x$~>Y5A&xGan^Jk5*CRb4U3r;y}wy|I+v2$EbGXw_=V zaT(e_C&Y=%Huh~CFCodzsC~-%IW7lu>9`9a>HO&@>bFnhvOFw$rywM`o91R(2H|pW z7-AV9$-^M(-mDKUlQWjYbs_1(Aw5nOYFv(1er4`~MEecI&++*G)1>yG`wrGuJ)r%j z{d3mlx1hanWx%4=47691D2|bpfezurU4#6!phMHKcEpDpbXb!l!(OL?4sZ9ZWl?+3 zk&v8L{i+K(stmh#-)01zeWe5`IX$3rXxjhngfZwC`TFEOzX&>~)bAAQ3W1Jw$%8a$ z+~4_B%Tu%0LFbb5X*pl~`K^-ts;Fkri7dM7z|spksc9(_&)PvJJ7D5`Wen(4(Q`sc z0qC@|ZZ1kD2AyF;;WL8lpfef2Y1<6mu9b3jf=MyZCDqlA>yidt1~YQ{fjywRU4@sC zK^1gGqu-`&w*g)FBoJv!1BxHsFW8Zt1H~`#<@Xj3ffCWfnZj{(P$J|0z`EBDl(q=3 z8E~6}(pKA25sG)9wBwvW;%i*)dLxlC{S}mi`7L|+{6R_9ql#&-87QHgsOT90C6yI_ zFQZ4Gq;{w9>#A@6IwOJ{dO#MT6dIz(%|4MJ&*E#Y}}qECWm#c zCvfS!UCVUn@5ui*pF6}^B(ZGT2M#G87l`~mfI~(f>C1=~aL89oHNix{p;WN=Ks_@! z)MyftEhvLSGxvunwn%X3y5J2;Zs0H&#*In(g2Q;p5x$^#aG2`T49+M3hk4>8+v!Ab zSiC*PTIvK2pZblo#a6-Lb2qD^sXRCmpPYWkF#?X{a_5@@h`^C<)o$!6IXJSNk4`B+ z297&*!)~cdf+PQ(tm{GC;3z&IHhR_q9QPFGo_f9nj%r66M2Ty_QMa3Qwk``C59hZA z_B;W{6WZf_A91@gcb+3&V{o)<&}ufl2#y}kI*s;U!SM>Ot!8Em*m@9@ZY<0M+bjKk z=1-o3?M)S@izjY@?LFgHF4~=78{d&vJdWRI-gP&8#s#*ewn-5yLSWm}(<+_j0JejS z=gEZea+5K!TyO7!?K@$1p7N z*i9=D#P(-_-P)##cjZJNCX@N$g4~i+r0m(z>!wqwzKr0A!h|{ zo5kyWa!-K!vf$$z%Ey2^P{_l}*c`Znx39G3$^y6l-iR&>O5ncF*wA-_5V)fj%ef*V zfII0?srhrf{&*)%p@JQjbx-wutn zJ};OcYeHiKN~T`U#b|7FE_*nL0gX-4XDSc~ps|H|9%ph-G`8w1-OzOrjc=mXqB%T) z#wj0dudQuI=aX(%(F4j6L0SjmxaeZ9-5{t$)>)v3# zOMh@yNBbvdb+muytd7P)+0ND6(NxLI(Olip&c*ihub;R6?ZIyj+$h#nzddjJuKVqA z+jre>5AeR7>e+nz?_a^0&2b)=|`4uj8L{$oP{p((lgxw;la|9(y-C H)^7m-gaTr| diff --git a/tests/test_data/Ex4_input.rds b/tests/test_data/Ex4_input.rds index c1d91fe978be659d20669e0438a79b381ef5f2ad..6cac7815a9cc660e90a3a3b096b05821997ed15f 100644 GIT binary patch literal 5545 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 YMY)2Xxz}32Px# literal 5552 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 z z6K{|;=!D>O&clA!*hq-?=1B9g+`CQ$oXngtQL}x~+uRu-xpp^a>)EGFsVdO5KA&h0 zX{%scc)$dP#qT8>bML=Wv9A5JIY;u5|Pez2AW z0Ic0!*dx;)AScl+$@b1ljfQ>}wTLCsG+aM0t)p8)d^Jxg}NB3yT85QOK E08Ks{{r~^~ literal 57442 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

    H0 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 LDZ+$;Dhh@;00C&d diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 8e542870075ada1fd020c3601cceb1f7ebdfde9c..404916792aaee04a05cdad88dae9f3b88869b1c6 100644 GIT binary patch literal 5547 zcmai$c{CJU|xN1HM_B7 zXY3gaGnkk$i(k+4p7;FD^Zd^5eedU-@A=$&?z!jQzwTEmo|EaX!Mf%0_>n{x*!A5N zNNkFCeBEkNL)mg;|DyrrapSZD3a^5Xke7^ z)3iE8?qlBgadvK2pA*8?(mFQ~(`GF7+6zCdM+$t->H;FixpGD87Ntz)GUvSZgAVo; z;zT#)vsu&m=fU${*eS|%<`fd?PER=(XyKBjmp{l$ckJ!QSkrpLMhXVS<%&zAI3A@m z<{QQtXu0Xbe1@RMWLq;|25rp*2DjB=#!5Q;(@IQUA*|GQlR!{>4TtgMqdY7ICMLY;`q9ly#7HegqQF6FDrGfLN+bwo<;IN%FB)rN{1 zZvmZ0c%?YoeDh~h&ZJMhYp6fV(W&y`hNaWTMp%y7Xn;`M*$3|&=Cf2Uz_62F^t5p0 z@wkm>rLNQo(^TN-(~FOb%l>fd%}O!cOT^}`j@LFII|Jf-lo1Ta1bH))j&rVhPUE2VkT@Rd9khg*)KUY%^ z3URCQX(?}LB~LEyylE|XI1>9);?m>vPxjC&iP(d?8eYR_DbU;jBkku6ehW2(EiBk< zP;C=Y>^&}I8MxQ)**|WfLZIang*33e30?;6N@*(Y1}nPJjun^G-yj+aB+V^G7~eIi z%|5sUpqa4{Y>RA?1OFjmF?7=e^o8`gAgV4c&l6^sb3a?Iv>bm!z9xf(U;Ncl&Ec9C z;K)4?QByPwX|0G;3JG_e<9hG<&`kjdy;3O|6opcDA{uoPg_~Lj&YQI+c4zu@-n!^4 zR`tkw4OJ-e;cSg4@E}n@D>+Iy zIG{^IBVcx__E{qZ?MXa(8PJztcUnBD#Mek8j*M>4No_MM|5AYu*a#^{)Ys=@&W~O! zAf;v6fdoiw{N1L5)YZ%|DsUfcZTS3q#_E@fjLFv%MQY7n@FOk{+2p(U!>|{Msff%L z{(AjzBBFA+TDEKJ`}AZsiY!bIRj=){SPz14Cv*i@2-`|6t-&wWEknR432*mfkPnzE zVZE6RbDyFmF=)3JhV_$afYUWR+|XmChRxvWo{p<0AhJA3+FiUCdOTeNyl#L!ux%Io z24(U;RBQ(|%;h_d#ldF0r(HGy4`Pj8;}U4kz`?&(49hctn(oavcqe-9b`%(Q$B=3! zd1`%YpNB`)eMQMPiMU5DP_S2rA6fXcyF9usuDRHcthC5&S#@2Ie#+Uv8p88bEJU0b zv>@4%-J%~6%pA;oz(nBKX5VIoNQCecg|1?2w^_0LG~mMd2!19hHbb@*Ynz`T@+|`0 zvdL00G_@7G?!4qK={*%siQUU9T-`#+2gX=_u;A{w71m_%s39jsdc{;4zyjvp6<+b_ z9!=&q`e{v7TWL@BlE!pjJp(apksXqXU~rOfyQ_C_UZ3EvAfks7Bwbv<&{{4$3c`1& zi~B9FA!iQ3xV29JZn_;V=^9k{kR5k27ZeU*K6D?FieiY7x^h9$5P?Gz+{sS>KDs|H z$rvheX!_~*&c8xv2p-O0Bc0EM@*Z~mD*#+{bDZrpsNmrh5*W8P^!s#ndhvZ}yiGPs z8{>z@)xo9{xh$x^Fg#;j{g*(PX)I)RBG1Cf7S(VN6PgLd{dXV&G#Ro9F@E7>t7;^O z4b5rD3=g+$Ilmx8XWO0?qcna*5oxpc;kdW&B%Ee18WbLc2f)5=$2x zTPq?#>}YNj^FQE1{T+6c7U%UV<7cFo+K2Aeov83&7C`?3OVe(H*xTU0^pdIHgcrDJ z6)i{qJ{g~kX`Xpt4A6fED4=|monWs3=-@iIm@}qIJxm17}DQ#=jH@>gDcwqOPmc6z) zvw(F0;yr58>pq2j*XC)B+0W7Mh}qX*jyt~9viE0R#dXF6Excm-ozi4CWBn7MRi7j| zQIkV_&BD3AGaCBm{0LAeJ`GrIB2a|>`?df1w1%q5pFH`QK-5*351qvao>n20;j$C% zM&7eDut0pQSJI&&W$SVAilB>9{Id=P>N0N{D9UzS# z5kDTedff5V070F^q@dBN4rA`;^VHR!X*z+dtM*XrEF3p$MA`nRx&FaZbL+CY=7xi1 zzwHCM5~p`LyozZ9K$cHo(kM?Ei{yr$f_H3m}pd*Q7ZU|tONfjb1KL~!hG0# z1MTIhy$-ep#z#mA`Om##7HOC5LmyXpp%It)76Bsj*`<@N5tf;{S-S=$2NuEu$OSn$i)%^0m#wMMt5q|v`Wt^nQZZU1Gz7XXgs3&`nF(E7g zoDAh>jN|LSAU*O)?wszrAx;_=dUnXkH?gPgs`p0oBtCI+#+8zhLK2pj6|^v#%}X*q z14oN_`Bu)afOysz%SUOq@kggR3&v7=`FitpUUGqXQkz`E(pGQnQ*vQ_-I;hlLx^4C zq(}Q(-=3O8;BHye`B2>nyxFBblh48x5c%0lUyvkM$AR#2JP&|A=YWs7%%D#RwF~I3 za_AtQMP)7Ngp3i^8~wco?H^4LYBcjc)=x^l(s{2ifagC$vJGE)_L;vSZhcyBo6Wpu z(+Rk2jVfL3z<61xgO>$Udw{7jMtVUH<~j9Ri7k3qIiik2h(>EuH2*_5t-A%E4G#%0 z*eU$c_M|vW`FBAeQ8SYrM6!eRbjW8%dwmckIQQBqgR)E@Y@%7rrBeYM^8#3XmZzOs-2)8?x@9-1QB4OkZY$G8)6b2we&j-qH zgE^l=zP35^q65-)2`jcfPD6PGb|1B@4VO;$X2MXpLn=?dKaX8}7ze?eVO;;5)-Ln* z>8}7{fnC=Aom%<2!?o;AO2k3|#*gQ;>Cib?gMVk!V-gW-_deAERx+%)^Sb@sJ}pb9 z8t)fBzu8j}vrE^f$IS78n#stQt3b6clTEi2_xY1$?GA5|xY{AIvg6`Qo6C3lhm9nP zMc)j#NZoR&QQSXs$=5EBAZEv^>xyoQ@;{q&j=_e{9(j1qulR{Vl0HvR0m8xZ=YWW{hWNh#5>r>H}NaW5Q z?f73|_{V*3N?wE>j`g{YR%UA1=9J&$F?l5yb+`Xk?6!>#k4iHAYtMt-dg@eJs`)wN zce~b8s#hTI3brN$6_2=0_tnyyEfm{TP!&3O zGmxo@i^>l2#BypmKcIlE<`|-_ebmbUqNPO*4=ToIE?v%K5 zo=38Wjot`zk3O|ctBrlu7+>F*ykgyHA+nZQS=d^V&@HOr#UzGgX$&9@(_583>IZe|N(NC1kspvqFG8M}zk8ftO z@mWc*nB@xt)i{2*FK&2{e`y~g%ZagZ-hk}Rg2MEh2uS^degd$1zQFojohew&`|bTC zvVO)$b)M9^SX+R5TwrO(U`DW`?QW2+T5x^bgVnUu%4-&4AlGkq0(bA{LMuev9H&a0 z$yU=6>PADA4zZQqHomoSHiDg!KqZqgXU26&QjIT6;rkoU8s`w z`R_Q{`V@O_<0^S|%U+V|MP}`1xEnn?9=$e-A@9d$JWtiQr=6UpWe)iWw;z}^ju7GN zrB{satbzy{n#)60!S-i9&pGs~S9le+9VCWUr9-nLp~oYkVG&7|l!hSn7JSpm1HiJZ ztM0e>JHc;^lR)>#a5?ChG<9EJH9K}`Z^z$_$8{UHj}G1!?{kkftefT7G8^0I z2^)H(JY$i7EAw-&;2}38B}hz)vW)|NTGqAcV~i#U=`{Z!iw1yZQj8x@+Z5SA?nA;{ zUTavQo3K0cg{}C{%rjd1&Lx6ha@X;$G9{2>7)0}huY@MtRlT)fz~)vnXBeBXysf^x^=H6b@ZhlYOiC?B(^>pYH+f2mIh>F>G_F1Qb7jV< zV7c7wrOPGP$ZO^r*lj|hTe{NsZ>3q)nq@uDdE&=Bv;@|z`Y_5$sJ>H=kGn51Mi3!4 z6>s?{GyQs=jjk%b5ENm9ams3GDXPc}=9FwSADE|EC8}iw{r*i#Cx89C>84O8<)|5( zIW?R~-8R3qpswBGWJUiv>^W`9Pxz{Yf-j$?SZ0KZQ!M>h=UEw!;kK47D)&^MGF|4B zVA*EEvPf`X`DVGAc^Zz9{iW;tuh5zP;7DXX9}%LpPvU*b7s4CD62g6(jRO#V{w10; zG9{!xpZ3kR8oV2ax2BA`O*sUkjJ2u{6tyELvG_1%vd83+a<=pQ3!8oHi!_MqdtZZ= zBsSXg87M?~;tcmvv2|6%QPeZUf-UpPbfG0)c7kz&e3DV-SRQtApYVqcp;>97o;(_i zWb{R#48f77x&sX=O97{5P3f433U-aRhqf%x!ef!ov#~V?*m=gr#ocwvoa(zTXdCcn zMr3W>j(-NIM)0fmSLHM#Nl>t?hQY+{Z0e0V<)IbM8NL-*kjzi(V7ZxBr9ksRIZ?R5 z$4^moDNAK|ZRJ;pN|(oBQNj__&DY#%(y5})-}uOmnn+F)tsCEbHai6Ufzp6{d4>4Z zD4|2*M}86EwQL=Hojz>ywaV(Wn#7HDlfs<09R)d$ET(1IS#LtG%2239boM9TJ?6Hw z6^lwHhBloPy&sm%Hz&GIjBawgsA9Yy4_TLgF=wSZo&i))v9l@q-(gws|wE%xa4!D<;R9>%zSElfcqEhsWPe6qRoXO0Kzr|DW+ zNpaV9CU-7lVxt%C-(xdIVd-$RJdY~NxgGpoVVZs&s|3L2=B;~m|0T| dKF>l(ORj8RRi)DSiHRd7iB+)8brciR{{S49Xfpr+ literal 5545 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 diff --git a/tests/test_data/Ex1_output.rds b/tests/test_data/Ex1_output.rds index d0a1fd585a994311aca47883804d88422011ea0c..963fbfc1444a213242bca0c0ff16d88fc7326002 100644 GIT binary patch literal 57379 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 E7nR}^g#Z8m diff --git a/tests/test_data/Ex1_weather.rds b/tests/test_data/Ex1_weather.rds index 1a2085a3682fe35e60e4b5b3fef1076d044386b8..829787815a400bef8e722674062389087913425a 100644 GIT binary patch delta 26 icmex%p5@zlmI)IXWg91Lox~WU&XIp;&AtaqSQ!AToeSIm delta 26 icmex%p5@zlmI)IXr5h)0ox~WU&XFCo;L?L7tPB9CXA5os diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index cccc25ad4ff18892062b75dca8ee68fceda78008..f95976c74eca399b114579106da7972cb05d5c1c 100644 GIT binary patch delta 11586 zcmV-IExppQWUyo+ABzY80000000ZrP2Y6Iv*8h;6&_WZWMpQ(4mm=JYp(>FhLw_ip zP8X~TX%M6f4)y#~7dm~~n4W`m4T7)M=|X}$2@P~1x=0TUPgiVqqs8p`XS7#x=)hk6 zd-e6>jdU2(6uU#8X7wOVRKm#OukLtaxwWGoV`#F`q}T&li?dngk22c)tm*vO#+%1L zgJ8Rgk|UtDm(fgklksM&)6qLq(SO^#Qkze9I@Dy7B}L`$<$+8Q{C1;5vFdI5v|5_% z7Nf~aQwx!rq39i{cE#be){vSBQrd#_1gp)G=w-czV6dd?Z8el=K{1$&X?llJliosEgimHX;Lu~7BGr?}k^psl-N4r{-snF*4qvw>f5esA?oY(1ow| zw>sLK2$l9Z6v+s=IBoN2}+ zqa(A1uQ>);#q61?XC^F2>790Gf2K^;8_lEB6|=*hVD-$%lJuFn|HfXRu14#b;85GT zvL@Sv<^*DV&!nPh5TFf*s54v9ghN+pRe}m!jvyFKuuvtzHU!%fj3L;W;B^GM5bR2@ z8^Im~dlBqIurI-W1p5;lKyVWOsl`Myg)7k*2JV`nS_-;2)x9=mx^4De)(AkseKJ3f6b@WZdXBKXVTnY4d@ zBcvb9KueYmExI4_d!HNx{Ai00V!ZVpB7JO+<&Mm`eVMmke~0vUgTJEsIQ-t*zrXOm zJ$gzlzij{Tb&ty4`ZYV`rXrJwr_WP$FJ(4wK3lDIP&50fN|h-&d=_S z*ZahQ{p2|A`{HY)S2l|Rtn%~UKaR}5->*D4UmB!x*!S#Yp_l5(fg3QwYw7-R;`(!x z;?4DjAU&MF#;EPMV^{}5Dzhi#>aDLf;%?_2n z79Ya>%b&}$g7Biz6>e{wUi*nZ`(Xy~cp{($<;T?@Zh;w`VWH_9LDXS-YujB~yYaD2$_-p~3%Keq#JC#4^* zTIRz?f6%`?HGinQ*q>VMnA;P@mFp$@RXS(PGH<_Gj`eXr>0f?au9cgvcYE`5`LiFK z@AC4a72bNZ@x?En9A9l*@XI&X3)ZW(4~he)vmVVKmZSEjrBi$0^5A-)`Oo7D<*$PD zF!b*qIKKYvsMh%G=f9R8(!+fI@nHTFait{9zZ?%#h? zzv&-0u2=r;jrH(2Q7d2Ee^Y<0jl+JB+Z)e=xS!$j;r`U$KGW;!&pBV(yuhy<{OcLx ze>{Fy6usdSzvI-8`j6v0k7NB@pNlD9TrND{VEt@Yi>LoQjp*8ZkmtP=AMWQ_p6mDV z*0B}dabtNdM{Qj9i)+@Sg-FjGe=YQFeDPJCw_N3>4oEL1yz0Xb0XIya1^p$|J{T`7 z!wOx4n?~=1Uu&8*fxX>vg~(4i`Rgywe|A`Y-Dg9vPguO7-;1>63xy=H|<~nxB+i^gQT=FTUX8Zyw1rNFSF|HsNl9oL{!f`C<9JPYwos|8(qRYx&}O%Q)wU%a`qN zIc)JOf6h0TCqvFJ`;pVE`4TTZ{L|>HH+y9p;5#z+FZ1??pu|1BHe>t+Af6`um*Lla0 z{nq+Zs{iaKmjma6`_ml9ToJc{dtEw-BfSb?+Sw11i2n_zs>D|? z*&gS6vmeg&eI1oAUpR*C(wXAb)t=ag#l+@86z&Fvi<2*2DFQ{o{U% z{N$fj&sTKpSrLG*rk|wpVtbtajbA>t`uW50Wt{W%S+lE_dB>gmezV(!%=L)dKi7Y@<3IlL zyou@D{whfy_q$vU-2VK>-x5DMx5s=xy%mJB{~RCo*S|mG`3dW#@m%vir*SdjR&HGm zxm{le34bOxMw}`te{gavRc#adj3u{KLvJbVzZGq|0KQ6l2>AAXe^%tXdyw#}vLE<( z{*|++05I1&Ou%n(k|O1OgqsplX}5MFo=NTCZ)LmJfag?}f}XdcC15`75A45s82EBR zdIHaGxfuD_lXD%?3qKd@nUW{p68S2bF61YKB0cw3oM=l0e`}utJ%7~{$mc#a7wMbg z?ht-<%o1^Ihm(IP>xE#Uzw>_Z7gvsjz8w8CkSlYnhQ5j+A;7aE{slc-hg*f+uu8y! zE-wI9wtorq-S@ABzWjYvBHz!Ki2RLR0X;kaIZou~?dK5JZJXZ$ecLZM>6fxPu7aF4 ze_me-{ymc)e@A-WyL*sc{tQlxr5x8rq?cE>6LCp+5PA#V`3C7_Clr5b(B*u$#B2C;ZzzP!jqVSBm^>bpzi{^(gn%OR!V?#v3B8 z-PQpw?|c#Z^V)5Iy`pPA5_Br(oGG{gBJD2S3%qhke-!iX2U44kwq|{z}0jDtD?UyGyPT@&?=llCm#8fb`N= zR=_UrV^x?70V}Eg7u~c4^nHWg243}X1oZAooCx^?@0|p_Xx(n$`?*}rYoMp>WGAGT zCCx#;fA(j72mY$_dC*hv$T#52qISJA^>xroCSD~Ae@_7xQGN^0tp)!sDvwHPCk2fk z1Yh2v5rFxYgRr;#rZ1qckoI5l{=F0VD4#6)(`wMNTvKz+^CR> z7nwwPz26IVbE%z_w2wu4(LINucL$Ywi6IK~e~RTru#@vJZYpSgWdHOt^k?;tgxvON zj|qQQ9!CChdo~gFyPgA{{b~;pU&_zMPdCGlO*=|pKc^@PdNwcp4C#3ncEH}cz4rjF zJVon~=DlHO-HAyeKO+hNH%wnB;xba~3vqw5b#o)=+i_ce=-EN_YUlM<=yP2a3BGSv zf4Y#qdGM!@&+WSdcGh!yTJ|IOwegbrqv9z?p}*AFTiCmMj>zwk7|`>cc8l^cuJwuU zy5_jaAY~7F3i`G!n*#cl%{b|mcD8vR`Zkk(_9JWmTcSK$r-^cMw-xy{;ii$aJ>*3Z z-$BDfxlR-NiQN86^FNI7_CKqzLfD-pf5zFh#!rNwLDz_KbrboX7-15M5kw5Cc z3m484`FnPih|kJfL^)Bt%Q?CfaA(hnLSM7bD!l1yqR#=Yr+Stf)fN8keET5umPb#7 zU#ltqx$kZj@yaSk`ueB(Aw8SQWpmHJL*KUZ_aS}T`Uu!t6R{rjHPp|qPZ8^+f8wwq zpl?nZjdZTJWrM}ISa=pU6Qr!}_kpkC>()pw+Ep#`W4;>k$p1*xvx=Pa;4gbpjJH|5 z&vT(U^zZs61L?aT#fiF9`A(d`-|Y;%YG%CPC%A|D$~H9r!+q_ujcTB0qa* zp0n+_@@3wB>@Y1udS3hm=q($9n?O>&gd3((!6DqFlJeIr1D<>AFy!;c;pUQ*v+H%x zi@G)yeqL1uz7jg8+Vy}8y}Mss0=|NkJwY#;^c2$b)?mse?WFwX+=ZJPf6|^CqkxxE zeX6AKko(=@zFi=xUz~g!-vH%ds=8osShiz6SnQ z9BMhwJAQ@K{}tbS4fN;Qe?|TasDIr>^zz`_;ZM}C$PKY zjA)-cKPvew9DI49?+O31yFxzuYtg^&>faIec67;;%@h|0W-0vMI<=LP>l7Im0X=1- z`asX#C&hZB=-Rs>S2{Z!u)KSd8x=Kw3f~M^Xt)-3a+|#lzI~fTf1Ca0--JIQ(V`r> zZUcTOVLR}h8}CK_3ZG~NeD8~EgqvS-6>}w zSMpsu=*?SV5%MLt@h%lL8ZXL!Y3b9TmyWmv_ICC7hw$fz2H?-_`mTuYwi3wY9-krd zb7w>FZGB6Izj>>|AfKNn#$6sS%E#lzqLee^HKdm`*dpjV#X2fy32yj$){9~tw14ae zBENt82mC4+wgoW1`a$R~JJw#vufYv%spL?S;CoA)6YYx?{a^9X;ll2Jf?@FY;Co`e zoImS5=-KTUA?y!#125WokBE2kQ1F+%=n``AkAUyUd2w!D)w%^>p@N&r(y0!;VRwJz zOQKxQbcfx&-G2q1KjCq}{htIQy_Ckw{R6)MUUo4K`VKFA5BTAGUV)$4nN1;=)pRiM z9j&$s|KvA?znPzla%%a1H^8zJbRP1Y8+c`rs0StYiuq6ec-$zK@~T?^-xl;L?B$2t z3RtjTtOpJ*o(erXE)7EZ*5K=*FW1=<>A7<+0&ca4d3DJnVmvIE`y%pnxXgz1qCS!E zfA8qUNZ(zs3w+tx*9rQ<1E3$y8YtrVbdJbpx8v|H=ef^?z3OLwAfGqm8WESGPlVq~ z-T}SfL_6Sx-Ne4b-XY_Wk8KloK>wy?xOpj+KkyFHi(eG|>Yiy?pl`GF0{%tTMc_Fn z8p7Vz`1g@s@vw;Zria>!_;0-*cFQed|6uFXj{);%%=kEfMp$yaQsNeM25z2uRt(@FGRpe0L?_rryUyd}4b*Zckbl z*x4N^+IfNLCFt3?sQ_@>i(;NtwWf75BO#wx-3jT%r&_~K@vm7TuEWKX{1_V%yBg_h-r5Ga0wYd{ zrL3WYkdr7GB!8HDpg)`TyVl(E72>ikT&$}$g!YAeWz$Wd@A&SRh|`?SfE7yxEZQRW zVRO5Q^3fpTfj_sum{%XaM(mdy{YJEtiZ}9r zpO}mnAkxWV+#r{Ztrq=XS&wVMS9R+x(0?%PLHJP;gnt(@QvQw@(DNP_^}Arjd(cxd zB^UBl(V{;qSS{w4J64AZ`MbqEfy$^pz>f?N<(@m`W2Bch#0x9w==-xoewM8ju+Lq{ z&(_6wX(pB2FXs1~Uc-*1lyB~gxa@kRSd`Bz?citOX1r*U*4>vV%H{6kklS@GLzG+m zta*ZO1b^ryPBAYnUi=;8cHg@XewNcZGAAzzc$uRE?B;y?E%>sAhKAKwS*h2yKimv?Li;GwQ~F(K{O;{}^k_9|WwN##a7 zP4o2QIY{4iH(oMGg*SXH_#$H9=iYoVzbvBhrhoXZH$|L2dsVioO6kQ z|DQkSbVnY?cDXy~^Oy=1Mm!#}Ooa{3F9JRE`${!SZrvgbd#>!4)~S5bg{{GERZsBi zzs^%(^j+Vobh-7_7-r>;TOU#RR@`8V+O z8H5KLa=#_m-je&zK^>9@Bw>3|9=OH@{|6mu2>OuTo1ky#xO>%n$iv2B*p`PS;(CvK zbJNbyH%uBO;H~B08=C(S=tC!-Mf#Ac|KCZ%pUD~E z>-&FZAHZIf)u4CpEd0IUO_Y>;O~@h8JH3ntk8;azLlBS1OCc&QJ^b=i6}r|Iyr9}~ zo!`A&<##t6{xQm-N%ADby}>CAbM8KEXQEts-Hz=pcOS=hs$F;Ql3&2rCw{hoZJtGX zHwPYOx^Jjn3)tmjY*V{C|L{2U#F((GaJPSNhwWr{yAllV?yL4-8tZPk;(NeIaopez z-ZE0J?$@^fqdJ?mJ8VaKG0h|Wk=kb-FOyyLO*{L z)Av)&u+8GCEWral*YVZek*_cVmNo8XVOXZPTb{-A$=&Ae=Mm4g@8g)Rrw{HOd zheo00$s^oYzRA501_Soo554lB4e@`7L*KYZkv?$oRlskOdO_dNLpY9?M{GoS%hJ(2 z#9{DHcwj6KDLn{1!~TH>%<_=?!ofeVIUZWdy-(u!Q||TeGoTL~vI%(4r@sgN+FUH} zJpCQ%c8*5+$P=Fl{JJNhU+y_oLY3qPW0 z+y3nCH&s8RA0ls3?MO%3v_ksfs~02v@T)=K*F7Va54*~40{rE~5cq!|DsVaSvmc

    &p?-@!(93&dmkh_{LH2vwf$xkdMB>*mjn0R9=Bxzn6D_f50#tm&yao z55vx&Wg|czZ~@1%@=YasAwTqXOpoLNEiS~=m(zbwIo&nxf{!Vd1T8r zfMXrl2A3x`#qpIqGG%`l_=Y@#>kabFPvK#sJm~6Z@b!EN+rV;CsA%4x4w(?PA}XKJu$1_M0%&HY{0fF??OI0{qq6vwf+L*g?v@x zRYYIetjrrbaJORUIx7OuFnCx+=69@Jm}0L(Az^_1pb?fgr33Y zs*yhQ@N?iF`5KOiWJzqB$nxv|0v`L4=vRjy6URyWmgAwft7P*QmF_A$xl-kqzI_58 z6mXS9J)`P%ZK8i?ZX0^z0k~_|l1_lf`VIr%iBT6-eXd`79zpuizjuSavT{5qcQ**Z zyvp^XdpqbqZ5yHLbqB9Fr^>r^7v6@RUpwH#5w4%b^?%pTKkNbj8F4Mb9ki}J_)eL( z!`^BA2GB1q#q|l-4^b_EpM4DF?mAM1`rtZ!v@h_Z;y8cDb>bqfXS?>z$9A%do_o0V zZ@_%abzl-cjNm%<%(KXU^&{b`ygM}W0pv&5W~~}0ci7xAq=$)PDtCk2C!zl*(cax5 zbI`xIF1@o9>6ZpvC-il}F{7*C2<9oSis}83UiJP$U`cUKM_qwT&Rjw6nq6x#>Y?omj;G;I*d^Y9#TtaISx zDb)`-xQ|%opIITc4KJ<3_J$mOz_kSQQXHSkL61j5-!C)10^bjl-d5$MbC1UgJ>$2+ z&e0F<1*}+r{zN(!azFS_ocjd)$HJa~AN#st{w#l;v5D=Z!*q@7MCWJW|ACidpr?Ae zxV}<#_D+%BwlUzTu$RGqdbt7gvtdo)-;a-dhxA{s7TYox^IHQy|F@fA@7#U(K!O}Z z+hsow_$TN;W`72~XaC(Cc=4B5Axirb#P-p_^W7m|RUHO@FSNu8Ox8Uuj;DUi-4A`o z=81o0`%kTl08gLX4EXbjzTo?5XlKa(xN$w~99z&9a))md+pBr+g^2tXZv_9L_5)OY z*Tya4_~GcGhrw4e65F1xWo7U?*F&3u*7^ zFF-$i7mYvr`-r%9Zvy!fCQ+W}X*;aCb$@^0$JdE%!Q;p77Uj7V^Hu3cmm#7&zTFJ` z>_xGyckW$rE#ShSWysH&hp>K=E}Xj{>@6)5d`%|_n0z((F2)PJ#nXo(9!D2E2YA4S z6~A=oOJVPayk;Wq-(>(l{FFGRIPmf^@VVO!RrR?e#^PAeb!pH##PjsiI9_!(_$Gf_ zWptf=4%@1(OSe6&LU)*WhUfaZL6#aP*Rihn(2MKnCG<;EbqVb7Q-KAU!hUtJ5a+AK){zPZ*g){I5|t#2=J1AjV()(K#5~n4>ATLD+-d1_2VQ8o?$`e(J~oQgn=RJN zaf&e|)j^)N)V{ugyO=udD`L_-aU0VAr)`VUSHGmx=frl{_&WIBvkHH{mOp%{T9BV5 zd%xRmt>zZ03;Y>Ep9n58nv+e6fzeDKG}NXyrznirO%^L7k*SD|_$*VF3z8Il(w`rM_7jW_PhKw@fDmc*am?{G$XCJ%50JqIm&srQ z-wgigd1^J=D+wlJnvt7) zNUbk^E=%^o|2l_4<5TrX3i;87A5Lf=tm7_$Pf+M&g1dzOl;3~76E{VXBg3v^#9ZM5kKk6P$LnRHH=h(H6b_{;Jy4x(;usel>DsZO4Tt?Sw8; zT>SpC(gT!#@MV9>KbS{pPeI38%t=!%7M^jnjJFs~GxeS>FwWvo%nqa8G_VhkNS?}J zRaAjLKZ0#zZJs{MQxj|3=gz|2NMzdGR5T9JBx>MaSG-MQC-;lBD9Oo2gVEy?4-V0i zyGqj*LJUIEH(+W%?qOz5 zAMMLmlhQ9hq@yNU%#Ku3re}WQ@w1Ie}WTe$*G!YU!QO`^vw>r&A&A&~Y z9yZdM;04V-w`lkf-zl5 zuo@g1K5~450hc+{%1l*tIvtG9XoT6aJTp%W=Xj;!fk|Q(t$qJB`C37r|ByH+FnlcN z2}6XQ+iA8vrv>qm9Di?>zkABx=geeCd>PpS^7nre`Ma9@-BbP!>wGt$w1VCreL=H& zUfdSY`?D&VH}d;dp|0lrD8KLH_tmV2^vW6R*IxtctLpEss{HA1{+60<)#OSjovIpe3F0%S_M2{d@0w~8^SU>?!|WMx>TdOwZgty@ z4kf@=cVzs`SnSO3+9udlO|`0*FZ9bIFD1k68HR+Kz5WOlHJXhMZ?d|tA8^W_q?pE- z^eJ{)xCfCT{{_3YJ2+Lb*BlXyQWWbbo8EtD4xqakbO%_v1=nnO`TqiDuW{VyX=zTA z!)P@bwVKgzl-_8{oa!`Nl9M?zT2df)+QgeJ8SzGsB7MN!#!zYR(vGX999=5?u)HX0 zxb(S|YtHp*`1t`N1zSpaDq}dduihyOwtub<{-l4>&8j~G930_<8O~+$D3uR<6 znjKob!^T!^N3Wh{)0^#9;~#L9T$F!Kc^?=3URTv^m@9O(#dx#BW;EN4hImg;fEuXP zKKC3&t$h#6vD?&YcwBx;_GuY)?8<7jZ-T{~Vsto@*tduYo_KiUBTYVdsCUf6M%t~O zd<1e?-4dFnq*)bDe4RE$?JCr|tn=B{^J-+i?6DTJ-J!23izsbeqaMv2P1%2YK%`4! zs>7aG_3b99{|DXrOz)?cHhG$&r#;HiqA_Yc;*-^Z!VyJ&w4`xkg4(SrwuF@4X?JqF zY&5N}f!s>a2S`f{kjC4q?F{w=EfIN5RcvYMuADX|HS}Vkq!@dumy{>cMo$$Tr|2EA zdaK@Gbnu88jc`p=^yZO9n;L&b_QcbVI`p#=P-D0}J>A48&ybrMpwL?SG>NH7is!#- z38*uNFe*9TrVQ4JleCCBwlRY)bD+&*La;eWJ1;WnGcl%LW(-v;|CNrRp>|Ku?EwbS zunDSRu4nVKb4T8+<>wUq41%98@Vu1gwX+43&ePW~&eM_8d0KUAkiLJ?ahkqXa+bb! z!0;R2d15X2TSwVPLU0{XS|_dtO8-dJW`e)xCw-uZS56<$S3ACOi?0Ov!!1v3&;^2P z#IDZR*m7igI#NU0o&AZ@B$GTX8#LO1ZVB`30O^>Td#5)Q>FWGFK(ab_ z_fC$q>&;0%2?kGJ7(PPjl87} zhG_L7k=3T8c*38Mq|dC&P_%j_>38t8q?<}AOG2{6GroHS>f{yIoWN_f*d3SQZRM|5 zp+X77+yXtfqf|~+W53I@sy_TK*2bzoU zUg7^^)1bE{dX{Ikn?R#jlVC0ue-ZHp#jLkMm$!?dQ)A->5A?6Vqtpr3?12Bb(Hh@l zC-<{j`98-8`ORwZ$Zwt{_yfV81$;|KFoa+P!A1n53AQBIhG2VwF$Aw8*p*-pf_(@M zAV}9Z-nyBfOmGyzaRljT?5#M0(+JKYIG5l&f=L8Z1$17&_NlpD&&$qXf9g7Uq3oQ1 zWwGoubUo*x$j-af1goiGQnSaous1>^!>N^UIRc!wGf}^67oBzLwKR2tDZ& z)QSIaIXw|e06G1hWc4SfzeI2)R=sk10r8*nm^rsj&S;F~yPR=@pl6Jmt1`$LCc&5S zgvdw6Cj_&^3M1o~u(zm@fADKjpMEzz_URUR(e&PHmHFQX7*RXve&75!1U1XA7G3U2 zrKsaq+{i3Wht=r_(8!t!O1z?82Xa_!ewrKf@NX9mW1150P^`RqSmK%NAJoE1l}x8K#0Kxx1C@3&+%``-LPzJGzze(&FJ$!hk!`GbA`e*&fb-oM|H)$9{q zs};oP#Lb6Vvz@fe1xh9{#!%^bFFjQub?K=tN!7O@YX67{i4OOuvB9m%s@-i8bI$ww^!r6HaPBs(z9}eRt5QwsV%m`CiTiihjsn z_!sJx`7l4{!tKs9lX5U50ZfyZFgOBYD3j4JMFFvs7coA6a9VO`88urnta^i%(IiE& zdX_Nyn%5jC1TRM$Cfh8F6|;Ae&JRWzEd7+^WX0gHYa!PzqSrAM3AJZTo<8kL=OLcr zFa(%{H22Ki<7dW>Guk~f5Tjv~-l5mkz3gqG(#Lq}W1LM%HZJn>K|R_^f&$-0Hb(6R zeCPAwZ}?ALlO`&TRP{7ZoALX1bm78Bbqs4!<6597dGd3`Q8HOl0z@f%f+dAQ6CEHd z>h|vhqgknIg&gS#a#8?>K+bzC{XyqzX=!NB7;pB>EJtZ&@jG<=51pQl98A6d0LR)M Ab^rhX delta 11604 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%0Db7|rRg(I{ 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�PnK69?_)oWF+db*kk zSlZ4O4WsA4?AD0;F*6Lpxg)$8SI9t&^tgGZJN^) zeQ}5u1U{cU$z>V{65L1OgVPu=@VN7gP8xzl&0K9w^a^n6C6e*WY6J82nKS)MO2A)Q zQc-!!5SUV)yr5Wk2O>&=Q4=G>Kx_S?H+mw%MqvjR>Qt!_@r{OZ(YaIoQ!E$5)tbV{dbll*5 zABHVwojp7|*A2wQK83{K4V!{|d@r<~2BE=1220O8;7)grvQ@7_q`dy0Ig}m)+lvEN zFZk~U=AMq2_|#0S$G$`8!blc2-8Xt+fn*dI53-ckG*|%Z;~Mm~J_?wQe>yv~Hql~o zXn9T)J_pQsRcG#JYz7X&DcojZ95(TU=F#%2QJ_nZ6y9kW1ne4eKsRFz^ot~}wQ3pI z-1+$ZPq+6Y5`XKha;@L+gWW2I&Q4;8%G-79<)#maW-K9(!>u3DAMhpl;HihG^P}>) z5BFlLxkOKE+86LYEKWM8HcXvH6*YH__cWfMpoqAupSBW9IC{fKEQYj>S$H0yAEl6d4`P^xzv2n!u zHO@3ThZXS_s+~59-Gn&(ZHDWu`VnrGGFw1O1_{3~n+ra<72z^&-Nf-3BAzhY^Bz{0 z5pQ#m=a8ZhVov@{d3~P%l6YL_$ZWxh1dkGhYxpH0vC+rxx{)QK@e^bM?r8jEOGq}w zv?=0(Wj@kJ-iYbKCMRJ@TZ9{@_q?T>gG7&xC`!&0A_b=U$fqHIq?bd;6Wul=iPajs#1mQ#))=A(>DLYDKX$q~<$w`^l!Yc@1;pp63^2kVX#7*YMm#V*a`U zXNxnD5QLrm(JF$Z`B_~u?kphXfwMdLYKjr-;=7*Y+KD|_1(hg7;Q%`iGMA&ouu4UZP{ zkp%m_MsQk>jS;r=K)U7`u$4cW13FBQie(v5p>0?O1_Oaog{vvnRpR{9N zhZ_jkBDk@_xxqJakr(&Je&a5}N(nY}bET8$?>DSZnXuA_l^i0hjA5^W;72#TR{T$i0A*T z``F)-%Kw9}@9;lKO|gciLfdt$ZymG!clf$Xo+hkg^&RPie9x9@ z@IQ%f6elPNu&>Ei)_Jh5OF#c*p%eSLyZ5je1Mc79t$w3Jh%YfFD5bE@eLd*U{F)AR z`>o@BdSXHyb*CP8u4D7%jTP?yCeO_vvw!M8Cub(q|Ml6ff1~VwyJ3$MZ{XJP!#08f z535nb!C#3hE#UPd#GN{b`(LZ>uQ%+&S8v?E6Zg65Pk);84}0y?#|i6L(fRW?PydG+ zR&-Sbw~pDuTz>yfe7-0C---Jdp8C-1o$J`3(Sg>nyOeO<#X3)aNcf-dHZoAyuH%4e z4}rh_)*e{L9)JIJUaanHC1Jen^DTnk%j$5yKjqnJNQkSxMNr7B`6>Tf^>n?t^tb#w zS%V1qp0`~h^i%3Q ztxQlBVq>Ayet#A>vb_cU$@qVnCssfZ5qO0N3M#DQeh_XQ`v(ZSv}46mgnyaA>iaen zTmRXH6@U1r`z==7A^K1D&#^v!>sWRG689Q*gGh`z%T6oZ~MP1K`;F+LH{j5-{}9Apl{%Y{kH^t12^oy zCFmQt5&v6)zJVL@za{7!xDo$bg1&)_8@R#qTY|oU8~J}r&^K@+|8EKU25#j4ixPC; zSt{0#keo*(ig(V{zJHIOH$5O8F5ZvWcGCH!T+>86&m>w@ny=k>JivxQHl3 zIeL!gL}V4>)=t*CQ_YAtEOxTdJ@dmCW#-G|xm5#AaqGx&{4C?IJeDNi&p9 z7l-(C9^BU0J&DLJKC=BzVT=U5E$nY(G$FywenmRZeerW>?`iedNkB)fdz68~4sDuH z#90`=LJaj48lS6t5ksI(s8l`<(OatfouG}tPi|`+8X&7eME5!NaZULlk*b5ZP|k4R z(6}6b4@i(`8r{n$w7x(qEfjcL!yo_km~~Q?ZVNWR*RFagQvk6TAKEn#XN{lnsuF#* zmk*c>c`ua=5o2>vY2PCk9f9}zadcd}&6cN!TUn|MR0ss98A>D7YShKb4 zXHM1x5L<9EwNp6Wr>2nVx`e+UOa}3W8ZlSVP=qkw`5ED=2 z|85iue2WuYZ;rQta2n4!88HsTkXm066Xyj=l&@!4yInx;?DDDDp?4tYeMyvQ{wj#> z$$8fIh!jLaj<1kAGJ^O6I^oj~l|VRlT-U@Z7*tx04DZiB2P!6Zvd{Bx!KQ<+f-HC+ z1N-*PU8nt0Kt!TX;aS%i5Mxadpn8%4va00Dr>@L^a^8``YFRB%x!qGl!#x9XH~3o2 zd-OogbJ)-Fea_l(485pIFb36jyV0{BszLnT_bx@o{h+pb;0UEd9;nGaqB^c{5L6^2 zYLiyqfb5CrL-Dojpw!xLRlTYSYHs_uTs?P!Qi}ftvAI}K^3k#@uuKP4z32CpxBG(9 z(?}+-sd!M=dNsOrA{Erbr@Bm(9)i-Xst_IJ0=F2eE0I2k5F1p^X0gaFK`UbYI zK&~;7^|*W-2rX-|rbm*2f~1Q}Wl<_9`dQqa#dD1y>840PB_OEzUXg0}S-GBN4~-SZtG)R#g4>$vy+wk<7asrQ90%H+H-2EJ96-xk&xtB-7_``F zG<=_xgGRVLccvZ&%3U88-&CCj%_sd<=SGP^XAiz7ZK@8mY~(iUyxalm6)FXS-92l^ zoyl`VhZNK=zC8Jf#2hrDB0Z;Hu7a+s_4L7Y3G)srBZ-f%LG9a>Jw%spgW3b*2|ssI z(EBhOe2l&pG`cvfO&j-u>V-?sE4Vd4&%*v_`8Eu+_Bb%!QY!=vb<&6{tM#CfbZJqS zCK%K^wYNNQlm@NxF_#k#LZEYApVKhM2%u>A=#i}+pr&xD7|%=(Sj(Oj%|dO^J^94{ zLq#5FZ)flKEZPd%4o^F8PwWBh)7NWLCG>ax`Xt?x22)?*biP%SyC zd_pN1RImgy)woW8*Ea;pme%?L=Z_vQ76tVf(=Iy~SPn*J>W*)7XL3{sV~r}Jpu zf#OBB(4+_Lp!U4WcAS4=dS6TV32>tnW~__2pYucm)eZ0L9<%( zBF{$~P*Az25`8!x)Y5mH?8^-XMK^K%eOF~bmgU;lY_UwxyWtmY5PuZp5mE%&&#@kxRxy7)>QHv!T-Mvp(c zCIY8EW9;GN(aE_%)|Ik2=Us#OMfHBdqUi@~P5ngdbxu zGkZBc4@`~$6`S8}1)iqBy_>hmfLIDwTd-a-VzYTPI(3@_t3E;(B-ic*q9^H%>U(WK z@ypQ7_&Eh&ctR3>eUA&`mC~F~y&MK|Q9JMN;zuB?;db1JR1Roj_n@1(+=$@?^FW?f z6Ua^;Qplo-0OqM?YK1q&Ai8(;-eu<W>xDC^oDms zveKFH^P7)69BP*Xwmt)sM;&+YGZ&`gi0)Qm12(47k;h80sfwc9rK<|~zJQu}7e8;T zll8D%-CJ|)`@IB@K7nVzDPI0kt}PIF9GU~a4$&iaKI)aKw9Sb3f#;QEb0freN9H6w z4Hcr{^ZgurE*1MCslt_`J&zxjjd4yZ3q$-ncB%Bt>HrZJ#pTo*ZX`36^!`b(3KF^7 zQ)hBl4Uy{_4rfs-AsmiGvTs=nND_5KLs?=FMb|i=qhB^~-tvC87dFqgBV~@`4Tx0|DeX~d$+{7MG{j}LhKPtEbyInzJ;DiyLt5+HkIZ-^$7+HL zo_vEetOKpmzwAM{{ZX6y!~>Ari0Ixsg^@_r^vVM#|3#!Q5nQVLl}5_Z zqV>Fw3XsApQ@c=FZ=_s$Kj8?M77~3l{7%ip25I4J)GRn>kyvX-%Jqyqq!bcn{y5kW zX=L4e(kP{Yl(?K1rRqG9YLv)(MM^&W>RxGHBAEol^kV;=6CdZ1$}8&?`IH`{FuL$< zM}Gy60$}yz9>zT~LCk>=~Wm3!|Wd+Hct(YWd8$jGEH_T-7C6J8y zhbw`Uyhv@c!)fK~1UIZ}Jc0#CT6kc-akYB zYtoTOvOSzvUhOENc6@4U84XChT37H(1t7`q-_K=guptR~X`s z;np}EYxA9m?`o2nR8#{JSpKxydz2mtonLIie7+*CwhKP3MCFKuFU&n}(iq{=y_>er zxFf+aGrRb-Er{iihGGsqJrb?rE@la+N0N5u<2avoA|cNmPa8@`5s&}d^Vijgkc7Kb zuKMHa~-|dMU5;%OPk5*E+P68qtm#y+#2}cwI*Rvwf z3^pOZ7`>p}iMXU<8zojMu%WeY92d^IBVxuV+j43mM0JxTlE#J{F>mqqaklk9#A#hP z5@UIUb1L|F;k5~VCU0v|tFH|9Jwx#Ovj78p=kZ60bSaUDdGQ_FISXUNVQyfyrAH0% ze4(witz0VlirX#=tq22KGQdp7|etli;F*ul+_z{E++jn%CJ zOXbmYHg8tIJ;J|}-xCWgf$vm{8sFpF_Kv9njx;;Bd;p3`CC9D)!ZA1BdMQTiogbz$HF= zkoRl=5C=R-BOcfRbfNb}Rpv^8Zgq^K-}M}@bc}k$k9-GlX}q*|v=Z>&;k0qjZvX)$ z(Q-9~d7$?)e)lT(JaDiC+}8i@1>DppF9u(z2G$z~FT_5e0&443->`c`z^Q&#oZO)S z*heTWLZYmJ>bkr#y+adFAj%&nO|n72^PO9vZyyNA(G0zRIs?qv=`X7u3<7(n(VjHc zUSRt|dqv?0F}6I%wu0&`Nf8v{=K z^Db@UQ4r|oJRo=C9Ee>g5lGPY1;LjQkr#}jfOEo_j5~|d#}eUngGWfpy5s50gN0y^B-5O zK}c=IPqpX_uqIN0DxVs#=eEe1f+_H*k#Ju>rV3PLN3CU-i-ChvL_zs=1u$fIhR;`K z0c+DXLG9dV5IAvEKDdwt`+9;;tTbdT?rT3w(nB+B^htf{$Eqe^xqp5>*iU@zyxVr= z&OkS|TzxF(W(Nguf112QpLqy`ozL8jGI7Dz^k24lc$f$_dE9GV;-v@rezzy}-TlDh zo~C1%%m!@ocg#LXz69ZZFFUp7JP^z!b-v?!7h3}AF!^F;pn|MMJ<)g|<=&r0i&XGk zPi!0orX%qSb9GJrm&CB1AaYRC?8JX>v*Di z4N>{KyjJvx0oFjW_rklj1JOR`H#%%_z(vi%v)stqH6>E4x;#`7-N@U!MjAJcYxxo4*MzKS>4&~#p(<%eL!g?MDj0$!lvDm?siPz_l!1ajH&Lt9jPgXQJmvR~QF2&}Z7YpEPUfomE@=ZX* zzRe*nCrS`Y@gWt@S3yWfq8;-|x{i1ctvWMaph8SdqS6n)^ds_wqPp+xTaj?}&9|Ia zh}PzH(#)H7$sm%#ZCr`T=7@Li*(cYnGLZQ9a%LfFKSUa88!3YsAR(IlWAaQd5pzyL zzsx`}etuj;y>XBViL7qzF9=UUg2$7S!3c+Va5&Rt)hr~Od=`_FR6*=o9J7UQ9shsx zY{Xn=tHXWsJz`;demiQg6F=>!V3>1Y5=ko4D&DC!MY2)}?+;POBc@^jocWDpBz~`p zrEcx&<9B0)k6J5)9wwMNoSML#+h=8#x%y|9m7ACk!3sVQ-<1_yrM?JFZ3mtPh}$2Hd8LSrw@?m z-NUg<&NK)!A1J7Z8$*f*xIb5{&Fhp82c4M6nDS!RRJl0zGaQz88 zHhJMW{CDKP%G)T-;rGY>P$=`ydR~g**0G`Ogx{aU{p~y*Y#S?@f6>2>%R)!nG z{c(Jl?l7UQE>(9z|54gSSjR8=LInTj{rm(h$j<6q$4btP6}|r=&xjN)0m~x@D{ff5 zdHb*Y{}ET#y|Dtk(SOV1kN!g3zwq?O3jQ$;`?PIi<>YVje3E6yt>b6w%j9y^`SHwl^RB!tY<=njFslk~iJ#=dRaX3GaX9_b+kvJH)88^VVws^Wn&0@lQxCxd9W(O_waY>t2KT7PyGdQ zX#!tW%1=qzHy?(smu2)7sHr;hnMj<#~fOT=^*-@8%5hTgNtT4ZlD0`)ItO zT=_3}N>ZYKX>V%L0zw{=Cj{&arCzTK>q(mYRouVZuzr8}{{`BA%`>h}kj!Fv{DWv6 zU-uGLVzJ4jpOVj^%>-%ge;MDpH-!+_a_C;?I$rL!{xg59A@S4tI95CNmEezmyf=Xm zKfC=`{Qtt!UcRBI`1cxCZ%t3YZdp=7Jud_%aO>D1)#0~}U%riW{vE!GZh|rn3wrvJ zz*Bj>=a2DN!y$rV0~;Ln!To7`z9(A8KEB*v=6P-B@^|X`m-weIHWX`rGpdH=PJl}-X*XCrgMI*!nW6Y@NI z@=w=Mtk3J;`uCE*T~Ci4@p>L?sDF-7PrD*PL4?g^6=y2BZ=E;_SWuDXve9 z1J-fiEgivcWRKQA<>{@zNZ@HGCbRt?9@AfGScy`1C!yY!kYDA)CiOG?)^XHtLjm_6 z%3s~X1b@fB{cIfWKbZet_y^4=I@ht1azlCje^-M3;eTC%{^qv?-R~#SB*&C3BZQRmE|0~WAKAw-p!=8 zyOA(=?S76I!ASf@pg{8LNBBN05~!r}@!yzoG24T(h-t$4u5aH8kk`1rFeVNF=6dxA z`aMzjktV~hQ8p`x+x0W=<~}jRvh&&Y=F8lO<|+M72g%!ry=(UtrlK%}OY&v>-bjQv z1qVs$C&>_rVZqSF6Q}U?>8;h{Oz!xp4!t^dqw^pf*lTqsH5^HOk;!GBd5>Q?7&(4} z?gU~QqwQ&pHOA*sU5(=ZNQ5o4F+O$2E+UeI5|yJ0?ub}ZlCHIFKaioJF0<4~U?nH9 zw^2Ba$Q{Jq+hmU*T)!pl?MY{#n4{Ppzikk)vr@GkGbsk{>hG3A1*1TH^_Azf?PiGP z#+S322etrDo$Wo&uf^EH)BEK1FK%PK78b{pE?eXKcF%AgHXBEzHF;krUxZeey0Z1H_ja~Ci{pD>$FgbNF@Qc=*7{Y$n)I zw|Lqc(IS=;rd!r#ZD+*qm1bYW&perLlX_u*P2FR8hvvh8>6_KH`%hDV`RMRgwl6Bc z7|DHn(RXb&Npm55lerg&1wYzG^j!^12xJ3Kyduqt0q&xl!%5BUAm*vEbhtJXWYkYS zx3-M|Q7NNT^7}0y{7^ab(0g)Fn0(Q^^W_^5Dey44NNWsgvk~eufw`d2vaMoB?hQ!0 zNOF+vcmP8Cj6-&5xBwrethNyG7GU}QF{)P}1q7wpIh+IpK{WS}jiO*7aJ;{GMTAxz zL_{fGo@Mg{++5y z`k*STbwh+g21HD&Em~WILBTxzLmiVBNZ1ES8O}0+()Id_M6&0ANpoAv=R6!}Ozh2d zap44It1DWO%srsAm1!sTlp7QmP8L0mrUK;)?fK*plc1QMk#gEvAEerDY=cXKpfN&j zcf#N)C@+2i8G2uk?fPi3r>P56kM0W&^E3q=Pc*(;aTzoY9(6gdx*c#fmP1>+u7ft6 zfx|(%TcCMsQP2BbF(@Wl7uPjz2Q@p~Bfr5gqXwuJL9FM31wOpEcKaWz7wZGMH zmuLpmx6n=19A*QxRJ?H~oe;=<7BWujvAI0QV(j z$OSz?_40npm87kp8rc@!cA^Nh-}9$_z0wWpySLtLeG&<}9&~rrKmP!&^7F-MyIzCx zlm@cb{Dk1e&0OsfEE<1W>?wsQ@$?j%s z5CJXWC0j1Xx1cxgc>Qa(BIw0mQlpWzfz2Fmt|xA_1l13$n}kXPL1$lb~jF#{7P&<<=&8yVpSJ$P?-bDSTv zokq-*_t%1EuSRTM`y0^Ym|f^hSpjX=dG_O*FM&?0aRNG~16uF)JK#(20cMhGg;n)} z&TB8#t&d$m8x$*fF3o|aToU!fkK3SgG*q$eq$Oa-iw(Is=|PK4qRArtAZY!FrXAT* z2x_LY_2&Y&g8IEjcfXAy(0Op+{q#~BXv}dc9+d~s6@NCX{B#wxf+YHFzl(x)(e-(zd< zUkZ&Hb`rEcZq@c3y$KrM^mlI2yaeikXP0j|*nv{*Lgvg5HBhthk=N?l0Xl5)lEm~v zp!U3UbE)WSP(MLtR(1Xms0n9MT&V2_#T%YRX6`1SnQALQexeoBUYdV+rVtD2QTsAD zC%Hh+%&ku$34zvZ{Job=w?K>X1gp*^8qjJR-2PT53glLC^Jw8HsOpMlYEzvDWlQz? z)y^ZJ`mJ?~UU3B|M)KEu*-8W&QHKUH>v%v#b9rw0I|izcO>`4QT0nmAO`GcTP>}E~ zWV|Z01Jr!JR!G^8g2L@x7j?=vf$Ctva>|1|Q2TmN`=;OzkTpEFa{OEiNPP}6@*H3Q zm0P)6Pf(o!<-Hc0DeNjiH8eyhI(ZbdGpmU!p3j2H-EgmiCcU6UaxzZaE*C^*jqTKi zH9?8(VDiw=JCN*e{YKPD0&*qzcboE)K*kAa6x~SxiO2XjN2MCz-xK?waOMpN@jc6t z?U4bYyf@Y<{Y{``;@r%lU=6||`ZpYJ}@won2T zcGzZLiIWG(ID42mKUF zJ3;l9_iLYa73@=Rlc(7Y1nT{#ns`30-B)=+Bro_if!HdxDapNJ=Qcfr2e*liQ@9L4#UTn#d+UlxE0)C0tBYYRhB(N@DRy9;l)0xLtugv`kbM0Q(W)p=$L=mW^k-n+02Y^sMZrmq?zqR*H122Lj97u&HP zL)2D?*2Z?K+DsJxE#C-}sjLLLfR~i*--NK~?CK(ZNel~yYKfaAfT$KDz8ERs5vc>+ z=R@s8*mtXyH!&Jg_#t}RkbMqYuwkNGm-G83@ssgK>AvrcL!vxS-Cr+PAb|vT!|R$J zh=1woDK>5;tcQbmg*hk&=(xIgxqdhy?o_7QnN2$Q>1~Z8dnykg(yKnE!($Xk+*YoY zNsb$lG4Tg}wYNcxkCy!9+YSSBVt8YEQyRWZj4$l$T^y3qb&YP^T#87P?e8-r`5~@j zUG_(v#__8y=T|jvP$L08wXBoj4M>4=2ebFw6w)-Ye(l+Ah-7x2(-qQkMG^;r?DCTa zBxWHsZBPLJ^>cjhUiHH*f5YaNls{ZX8a=@BISLOGTfF%mmbDEfoq8dC4ReFL|T11X*u?`EqQKw_UVq|%(mk>*?7 zDhmZNq+-1AX5SzqQVn^@HTALtiG5UgB7HF!DW>vV8?UcJiat^?hC()o!O78W*O?il zm7Ghb82K2!s-=oK*h7{%(6Fe#a zsWDq}+zG-Vc~73)UjIp?(e1UM!CQjlrE`g$6lsx2yvWOx;6Wr&-elVG(iaJciYaI; zyg(Y~K4hfQ??T*Xb9xn?CnHtK0#a1&gyf3f)oGkst0QVL;TC%=5_x)qUhX3YlJU7a z8PuGHlxW0dcQx4}u?k&=xo`K@zIXJ-T)Z8Cc-|ga9=AkDL5_JxuyY&Yq*Z0qdOw43 z4X*{$t|cM?RWmA<%vmJm5=|!igBA%%MUqn2dLp5#i(Q||*^yk`S=XxoSYXCU9KC>NaA~-+In_L$22t9d+&p#iBI2Aq?oLrkf++5n6csFKBf(SBPm6ZUW23irFCMmM zM7Yn}KaZw$<5x0`{0_df#t+A7930g&Pii>)bi4w;wo0%VB#q>Y@u!X|u8&*%6Sa|!%38GRovP77!S7S3rKZ^4g^8Qe?c;RKqL zKDML2afo?z@3pLKGazHmwVN-$fVFWdpEDPnM6?mRuj*UKA#aBvw%8r zclwp8Wo+8-)s~mk3E1%U7mpe%3$gz3FS!Ty*#kLHv(kCq!+yMt%keyQ4#<{wmY)!? z1(uBF`{P&?uwBfT=lwi`?|Ar4QQEW`gcP%s=}DS^ht*N+8BYuLo!;lrL|p@HvdW5J zS#$-OQ(=y+G+Dsfn)$}{%K_jnGq(P08HT-A5O><@hXdlFi?Oy(vOrKngY?#ecfi=D zJv2`?51gOx>|1E=1@0|xa>tYyfXppaG%&?lMzD!B$uldH%~|a^92+0z2_r< zA!YYg4=-; zi>FlMLFBu(NL}LqaGkyI_IA-cunfhu@6R^_p4zx&!F(E!+h5=?7o!5yWhKKO_Zfhg z>~1RE9cO_`a$*0x6+3YH+>!4$OaLjC>xwQ*8=(PU8a|`;ga-!#xfX}_ZG8^B{vStVBg23zvv1#NB{2}*^=dkx z00%<4o=nrDfx!PQG??;1H*nok7Ukr{fgp9GQW!4}2=3Z*`4;&y@JKM9SW%S*W=3%$ z?0MPR_g$uE{n2^ATVQv}Lr598+g@q(O1uHul$N)*<)VS3<>5djYc{YBmVP-J*9pS) zXE_UvQ-BvOkL_1}1A<{$4VI3~z&poqg|4Itge5QE-f>z2n1n}OSUsc!5?_VqoLVH< zH^of55(gZx^2wx&m~8<{1G2BLDieWMDI{V`Od3c;(UY1O90tW{3MH zk*rGm^0n=!bE3<@K*ZyuqV%5jjEuVvLcow{@I#!ImW9KsW$+X3Kb91WOn&yE& zZ{G2~oiAc}3_mj1J_ARW@$I9Bt*}X&m}l|V$be{2tIGY^ZA6uM{8o`EJz@=V{Ho+y zjaWRx+WEeJ!%sO1yVjmqK_u_oHy{4NiC^%1`05TZFJhQ+e{%J%FJk2<-^+OYEfV_L z%((tsN{N?8o!V}JWnawgm7D?_eWO*0S&pg z|K`g&NHB)dHdRyuh=VOMzPi0Z!nU;5;Vh|$%jB>oZu$%oFAA)5PD@5C6U+3zyQz_U zTU=rgZy6GLQ=xfU(g}&rj07w54ISfF6F?B$l@rymycK>8J@e(dLDm9(vy9P_#R3mIO@V6NJERH{2#yi zkhC_h{In}oZj1+UP|n4?-8F?|>~<=I8D=6eS-sUey-$%i*LH0;acLyEEjB%svH&qn zoPT|+DiZNjxs^EyS0m0TmyR=v>`2+}?i*I7eMnhzI^Hru5J?thn2|Xs!GN`GAxJy1cZL77OELCo zJaD~_HE2A8b#yh7{*`*a?&?7Q zt=BK&-;XS<*M}{H{ydMnhYtLcy`-LjP*1JH1A<>majYMq&Q^Isy{)C5oqzOS^?Lfp z{=ekwbRevZV;w~+|4!Xl_ZOvK@&9eUXFN=}KO3*VjI;e?zk#-B-4CnMS6|PMH9b>F zSjV#WFVQ-7&14YzwPc%N9XpO(LBGn|XCL${`@i_35-LKTFLw#b9V`IPY)i=Nx|uNk zqU9=~zLs_a0=5qs{3YJ1s-L?k_e$L*@O9?;62_m&|CC18K3u{5jXM9q+x>*y_K*F+ z1QuAwIM3D2b$oM~piIGvpMD@5Pr*Zmzr_1)x`q&6-L(^~;{*#z_&4hN2j5r!NCMBS zokM$NUAI7ES8Us;*tTt(728I|s2HbW+cqnRV?yx+9@19oL=kE7Z8c-+6AiQGO)IpwjLto-jP_yU@Y z4^3f!RGtEIIOHF^P9JTpUs9huGQss|=hi^4p3;1vmmi)KF*QuB0=Rq6mssxbZl0jF zZ9MnNtL2jiPYQ%D3YNm?c6L2{)jrl+-q+h*R7r?YO+0B6&~!s`z2)3j%YomkKL9ZG zr8baj0GxlPOm&Nh3XG>@ED&sXCVcbak28$aiXXv^l>Lf1?)kSa|K#$i*`SAX&Xte9 z`bzhOnU-~<=^5QEfpYfh*^nNXQ%{NqWC6nz?7XETtfYH6?%7&UF(iI4oGi(A`_S#fo}sufO<87wfus zW<2eoIKu;OqdxxFsQpSU{f~_i`(|VI0%RAy!I#gL|NlsE0_XJf|L^aYL)3pb41@A^ zZ|p~aa(ChB^uK32rOl?AN^V zZoHeQh9?0A4Zp(Rvi?j;G7$Z^W$jCzYbYjiNOks9C}G#@NuyvFV{0Ph_Mt) zBK2z7Go@Po($dg7d)N4|In$&Nu!XY|ew)2iLz2B1(UNs>b7OBl(Nk*Y>A|R*pK4NF zw!q&wy~Rw?W3>+$=DwjP?u;ea85WOjaB>m!)7?aH~(2 zC-9HY156@uPkViZDU$L=Ud6r$ea~o`{fvBogyS;ax{pa_rg-_0kROFs>ztv8ZZ}iy z<WdNIiD;j^}Jro*|>4_8fhd^pGw8 z#I_w`g8Z943XT0qV8^auTfN%|w)6YBxl+M==l!i_yeOV{r|$y{|Lm8ra#g1(3p;Gq zz5jE57!35@X1z3D(f94ueLAW7n;4m4+#N6T8r-0+!D(OGjuo7s+K46O5u?Bd#!OgWPdtVZTPW5%a&_#>m0pQ1eFOGcnDBsiR4gJQ6Jd9`luq!}uZ9 zF193i>)!&;?!L*`bUNy{jg+n(S@`i_BGE_MJh3tW`~rIZ7&<9BvSgiO^~x}per>%Xx-r{2bH1Hsn5X_5q65d zT5h|$1ayDwu~Za9_g-Pzm+Oo+JKi^qUAk~n?>g(+ruYA*-fYV2nCY9?Bh9H4NGO_znp zaoLW-^f&~$z}JF#7g6pxX7al(BT~?XJSt2baVNQFI;hT*8rz6cYBnpLXS$$yM5h&{ zXLp649}<*3ZTL%*^SCfa8lJq-FT0aCS-@=;|F!fNFowjf=gYjjF>VbMuTs6~3h92` zCH$I)o+0F{*BPD&zKSARrc$s2Cm`f)>$S`i)=f{*`WQ1-GKD>hc0+}THAlhu>@ow% z!Ah!0(*~DtAaXo^WwAp{WWi_?hg*veMZ^dLGqP?F*gBd3$mdsH)*m2cG026&VhjN28 zK8skf9@>Pm9K3U%7uLMorROpiCblq~FwJtHNAg=J0`k|G4Hvj5nA3HZROfxm8H`*FeRkU_dp zD8ZG}r5c{r*aS_K^KC&nKv*hCQAu6UQ8-bKCi&P0=9Y z<{4cUyy?QPeHdt+D{$2M#mg!`xnXcWqRMJk_JvmK_I>jsh;B~wKecRQg}9HIy9RzD zm1@PD|A_JqmOy-jPI`$4XxtwFfrDNNB>^P&xiwH~@wC=fZ&87$6BzFl1+K_UweRJv z1z>9NA6%>yt`KHdwM7fzxgfFS*=HqfSV5mEHII);I7;MqbJUnCNOJ{rzL;Ul!imM7 zBBEeSkyhw-RNb$L=`04n zYjog1JMMn8r8VzIMolj=*dZa+`fp~;1QbGudGVXM3up*c&ORibaW(`^t8OX}jKWY) zLFGREY{v68W%Vlb5%^boa(a4!Ln&h}dX#D+sxFOQ zsoKM5Ur4>jMvJCtKqCzuq7xt9?8lSFb`fMEkVoitpVT)sUvzS|(2!pEYC+4Px2@$d zkR8nX{M+QWk(tL%!53S^jpnUfBY#$qB;{A}@-h1&MQV9B1W)YM+Ivub@}|1IP!LwY zcVL{N0BO$3H$XH7N&L0N)>omU#ssOeHwlBJ=(;qvPwvQ)F0#Pl88b;goy&~xCF2wS z9ilA;S*j+CyHi0{AF@i(8uafZRim$cP;>aKjbHFH<3dN@WiBG1KW{iu0>kKooojF;gcUF zr^{goM1*RWm4MYVkwuw}IM0pDNu8w}&!dGsMRre@CGyvx(HMRrN2Jw>^N`A^yrZ`! zTEJxGLsxOntx(n!cHZDxZv-rnigN~;J!&I$vvQLLm@?16y9U zh!T@h899>*p2kkn#XouN{-RXz6?B|N~Q|J08dxc3o%+X#mm%_7CILWZv@zR1u6zukRn}wGW z{8k%i`;aG!!h}aLjd5mPcynf8x1fMANcYeBVw5Dbb+5*sCX45HUUER$^;-&@AoUnk z$IfwtXGMYK)~h24q^NsGdbWqur*pb-!6Nrym9uXiUNZEaDo*#1n_NMIqpp$XR6pu4d)}CQelHNIi}2xp6ox6P=F|!FrNeaE95!{e3=y znEv*nohmZ+9u|?vE>RQv_}BF0d!(Pz2e24>B+EGjCTgN4>$2}YXpCfuSy@GCJqM(; zcfamm_DZB~`j&~@f7?hURQA$;R117Yq+3B|8LIZdm#N9z<1qb5NMU}hiNhJH{G5B`*LeNyH?F-h|`X&#wJ zoxNZr<@L!%H$1UTnh`t+E7b}<$jf#RX*FtSn4dnWb4;Umf`la%<2k7=xV{c49h!?* zEgb@jZI{)z*GFwu<58n$`}D0cD9@pXiEot=J@3IyCo8tC+zO9De+epF8Atl~t0jK` z%!F^2C$3d|6G|$Eb{wa;WRKMs5$p5IKE!{}s@a)bUH+${#c&c%`+~HeW`A#>RW=2- z<`X{Y;Yj#W6Juw5RIVE&Y7)0^^akU<_B+VzN(+kPrgSl8pcvuZV7$FEX95d*wLGL{ zZKFS+c6~5+KQqwKI{9t@YTIa$w^?VBe6Myjrz6e~Tn2znY41Mv`P;2H*|aAJ|A`ka;P75S3;favVJ|Ltj?(WQ<8BkW)}T5|($4MylBY!W-Ej za@`c{+Tz+PzW;g?Q%w{B39zzkmR8Uv-7#oE8uh(+Hse#)xbSj{)m(`LOdvMN0$rJ# z#zJ~SWz?&VNLocz+tEJyAjPjE0^AAU^x|0-B6|x#Pfgvu5#11gpSsN@dNc!+*FCGW zTn8}t@Ja(`#1NI!r#6l`}9`a}9|i)8Puln3p%HI!!>aX2pG)9?iR zLw7{mD751cCg$?18}_nA|7p;+llJ|W3%lGm+iwFEI7mi7Qb0uB-n;fyP*r) z?m|P<+H)$#)vRPhSE4ZFduEW8$M@bku5k@x=QY;u@I+>0p2os2r~uvRfW^cey8%{r z?IDdMKLKKEVGC}Z%zbkj!K2qIURqHNzFeMtr5bhg-X+U>__0x`EIlhyFza)#IJaB zRY(+lKHczA%%A*5zqPz=;e9c6@R>D!?5JLN8+OkBz;?Lcp0)dhkex1O z;WlAlL?#o(_J;^!slf+oe7W1uaj}!AP`e_6*TW@EyB!*4`4m1WnGHk|&vGm7^%wEo z-d`14Yu2BJ3?1T@EKnl&B%7b>Ho~RhO?lSza9pO2G2$$;LKRMM1Q?h5*U{oZR~~=s^bLoMn)V6BqOzZa{3h8_)Ekhk zjzkz0Qqf52k2UY)O+51DC8(_Ul7FrYqRz4Q>PH#6*LZIAlFvbMm=Gq7WqRh|Fp)Z0!`mEj9f}mr)e2Zq`7x`v zHm^m;8fUesc5x2RUfY~c=ED$A8oI6_V$;Xi;Jy*VPNL|FV(9S+?@eSt{*y^$8_f;z z3s~s4(a)$OW_BOBtHI2v!u94SOV@@@>LPndz(XJGxfsWjMlQ%;SVa!{$>j92EE{ zquY!Aa(t2Aa3lBsce|uflPm?Go4dHUfJ-Vf%y#pBfJ<~PrT6tii8`3zpGaqHBnguv z$bT8vl$y7go|$`~8|-u+$<3}8m4kKT;02B$7Q-iTZ;Lxx zLXn8vhnh7Zf(B7q<7A1VdN1KXPIB=qO|H=Q=My1x9rYY@x7NUPv?%KDe;Jjc9*L#9 zkb7fh_;c-TVO}F=KT$jX0{n!py~OwoA+!2@~rs*-E&aEL{gbz z%5b<)8`tHl8hV>M^F8z7SL6qNO89;4_-VHM?R;_gz%6umMY&tL>H|7;ng}uM#sl~M zj(jN)1hg18)s44)Eu9B22LL1ZVSDNo|9#9WlGbvhEq~j=axvRa9{E;S=YJFpZ^t-v zmVUz_i~OsQ=jn_xO0*`Tln{_ePr}K7jsEVz&y+O|4_(*K-!)mh**k)Tx2lhB-&CC7)u`4@CE-tGw_tJnlSSAAFN3sP02w z6CXJ%joaHdUxJIZ_ICs~J$<^z^?$M79X`4@h^gh74?gj$Ot)M7A9|Fg1ImqK$z)pH z?7BV_1*=}LdNc~S*WK`$$*HAk-*PJ;KHgFYfV^J3rfaZXS>ioFX2L9!m7MS6+8*Am zxjDFq1#-^S`1!Ar!+5nJn$_{Wpn3qDS`Bd6r7NDhSOJ^jhg;7HZbz zh6@85cwJiKIu$cCsr$OCa^8e;WJ$W=x!ewa!UHOIm+A-}ta_p(Us|)Mo_ZK&e;v^+ zQkhxLd^E8grFx}_b`*hN?f0&!pd<3`L1=qA4?Rj&wajoE81vx31~pNEJN&lUFtsf{ zb9^3uYa1eVDDt1NogZ}8WP>Oro>#gRR8I_}?}(WM5~TabME_u;$aE$G8{`t1Zlbx} zwV>*U6w_*nwp`dTbuIQBTuS4hGBY=_oM&Sqoq9Oa&ixE_HkJSBa@)s1#D=ZGqt$$) z7JYc;7}G)e<+t<8Y1hJ5_IryO9p_R?N@;&`o++Q$ca9bjyxonE8@RKdg7FP;)K%39 z`J)*48I4i@P=NhDEmGY_GT6l`FAI3!D+J3YXRD-D0*xVPzV+jj3jEp_^2x>z7b;&L z+uPGcaIJo~%O|n}#i#JvdaZej)RBpqVBLUiMH85i{%H+5%`()tvCP^lhT8ClLg<^+ zFptyf#2#pmbmxTAdL+%PoD?V~at#zvZclQ_g*Xv#Y}&bW0Ub#+UoZ#2RjMu%(h+%u zezj&an+SEHiIu@iOt}{ah4#03G&#TaKK-)bt@{HOskK!>L&OJCFUn$*`Rk3?b>BTu zR-Te0Lq%bkj2A{^j0rU>Ojme;_dL2_8M#(kFoScEACikdQFd<1NoXXY`wQwCZzu1! zmnhaKIG3?NkWV~9(Bi6IW5p&!MFBIsejGbw-&S)-B2*M{D$nNf1qYJcM2Q>en_aC# z))p3q7i940u?bSr6|tQ;J<#p#gSz$w);_+uX}Fs^V1GVVvUkcS>vQ5$BB3V*?UsxL z>Wg8n(%3PJhV+TzE!Ei`r}dd%sbnnzJaH!9>#7tp!OFFxW%&T(Cf+JbkX{D?m;wFc1@d7B-g3@NJrB*PWJhU7SRycOOI zUn=H;LY~|Cw3ccEC({C7Oh!ZmDm@gh zV|lJGeE7Pzh!_N=B+uo%u^0_eGL6>6WlpP-BL%4|xZUxEP zZch+F=rtY)B8_JfGQ`tg1-=nP7uwx%Bv|u0Rwn&|w-UVX$ddo%=%KlAcsfS>u;-J4R^YDg;m6+)XjXGysYoUd;pHV66;z z2hm8y5p2+z=!d=)Nd`OB0DoVU2iJ)5{ib5!j*%1UpW;Ch7Tk+C@Y*x0v;}fqL+Fhv z43n<5ro!^9-APs_?uwzUDB`h8mk7Fa`6Xe8M{A*Ou*z~k*0zN9? zid*z4`i&n88{;RkMB>4zd~SVP1q6VCL659*53Ev(&fP0Te~7haNXeMwf5Pl?wO<+A zlrsn&F1~P_kUE5GpNLelMzVZ#lQW%!R{BU$WA0Yq`kGf5`|wYJ82qlMo#c>0iMI=G z@1Qdl)J3c7novBq_fT2j{6f66O|krI*gtvBMIu^pW;mkYEaV>`bMy@o3)?3F`s-gO zqan`#W@B5cBR)8tZ5ta_tfj5(j;k6}wpd}0Hs%M84kjyAWAE*lSYh6h1F`CmpC_H) zT;-c1zH5&2Rq~8jVDs1K-(|xhAzMd($_#rtE6qE#s)gUd8m-Vc>JzLpuNz#h`MCsa z0{hUozwU(09~?DEV?nLTWbJpy{z6yb&Y#WQ`~u{#?>LFtz#G;0ECjcz3C;79o1VQ` zD!twg8t<^688vHCV`Hcac?>^oMgPqLG%qaR@w=n3O%iQvi2+gAbWN}YqH-W60e{Js z7fFT4N)C)~#rUndj|5$I7U)m(?MH%n&4qoo$wC%x(*Okjs4e_;jAH|`9GlkIXMRtm zVXZbHv86<}M08VwOa`S@;-fhM61}I@?=tbNcG1{dMz6jzJ;{TyY3;)C7Csnm640es zFML0_P{A_CgY+kb=ZHt@UN&7EP)fVG4oG z%xGRoQ#U>v(iyK@zW{{_a%o^{t@y35)=UUJKVR#{zJq|+f3rZM~MH#il70HtkkQMNi}l<^bc*z z6)-jmP;t;S5a|M{mamr^r*#Pyds!j$J^W!Q!=bXykP@QvxDuOKl}1+d-#ZtvL@J-t z-sX3n3K<86L!-%I0*vWVo`)Gw)xtyyLk}>8&KV))-*R9Q8hnQ9df%}No4NU>){Bu; z4i!;Tn+TSxTU1s@#=wOV51ZiYKG+kuoL_9YzrFcy{hBR^F~Jx0XhY`kl1hF=7kK`u zM4>J1Jj1Md5Re4RnYP~9#0(}bGs}*cjyW2?WXE}WSwBV>=Hy@tX~`AQf967B@OR_) z)HM+6qv4mwhzX0x$ALZBgVnVXv5VU-i#I89(-;f5^ah;g*!J$mzhH?zGQ}z`KVDH6CtBOaIB^trzNn zZg7pXT1ilI6lAbi2?~c9wy`+pHE%flB4i7o*;Isp2zUU(2;@UuK#M`fJ^u+AY%U60 zRZ-nJ@#ip4MnN*OkKj7d^SiZ%JiM-HelgAoqsTkWd;&QKwcP`Luc-(UV*3zmbiqb$ zL&rJi>_P_Z$!wpMk|HDXaQk{j;kUxCrBsa^2iAmsH_mo6ck;%3j`1Tv+=6$IAr_Jq-<$clJ;++k$GzEuE@~U`jV|Vujz|4)9+wd_ zj2v#an|D7)@iCg$X>r}BXF;wg@x3jGhYnP{ojC_%)g>RcvhdL-!=i?Ip1i5*s;QS>5k@tpKX`VWHuCtaB$30SQSqTJJ1wZ@%^%ia7!li_Pvxv zTN~UzeBW}UL%sAAqzKr6rSa`>7;^=HWL+;#(2wN~GWl1>+R~pv2#h#wvP|zw=|U;Q ztwWGfOoxyG zV6(%JK#c%9hO*2^3~jW_EONw20;ap9MT8TK&A*=4Q+J7$*Ky0x_YFx=JzC4A)sw9K z+yBS5a1TkN>W({hicWmm6n#@ZXkB=u^damfg`Gt>4qLA|NbTVNaTNwp4dYYP|dp z_r5I%YHYOE`G#3|=q0!P*yfI;P3|t(v{q=MBb};9@iAH92zC7?c@WeXi~^jf4wj1A z4*?ZWMwok-WEUP~#nZ|A-D<-828y^9JL~-^sK6s36?A z$SZ9N(IZvZK@PJMA+^g8H$%SSk=c^KlnnDXqSj8~-<2Zt=`Vid56*RO`~4s){Qaw{ zDCW^>*)>%1VjiRd;~96@@s8vc_kk;~#KIPGO}nHE_MjUyqg`;@hEa zj~%6Wxc1MiCDp}}9Os2iJ zAc0ZUQlpbDd4c=j!0 zAcG&uCOjs07$z(@WKT7DVuQOZ?Mca;2};i6>m{0^LFvwT>tXj3E3S?e@yfZ(q|NaY z?b5no95g$u&l+sRcV#zruZtclcQ!w&I@gHvH{}b7o#}ogGE96Z@du#dm5pB~l*SG) zbvwq=o@R)nPvewSQsE-s&LWfy9Mbk$I3B>F@x$gLJ#jwkV1KKo$x1RS3vPa~Kl#kK z{rFH?s{c6eYr1ZL%C++{th`azAxv$DhN^=s8{?;HCr9r3*xd>Du@JH@>Z3Q)iINXL znWmV~Fjh@f(O5F@f6>+l=eeupv0KeNamt({&j*q_zYsUk=i?w*4TzD}E#5+n7$vh+ zUc$FczY;hEK18p|Cskq_kq2P-4bc-BdhnYpPvT7oS@^k&pB~x{&a@ZWI^W@QOnvX- zk0c>H>F?b>7A05qHts8LM`mHpP-3U1!K#90_4Yxna^A0;6jznp;e&yeJdiIRbz<19 z`E8d}C?n8SoRoHygY;soa}QaTMb!8$iB4f0LbJv3Y9l=j?;nriWioQbfUPzutb^tl z5O2G)GRxDUolt5YWNPpQ?t*wpcE7>>gj@Xg&joQ$Qn5OQ{%Q((_%d@ET|gb=D!iD@ zgaJB91FPDog=FU;pjpy!2|DXb#oW^%2W~VXZ~L*(861@9ST}Lws<$Fd%X9vYnWKAR z0l$X{T^BReCTmwMBYS%??AH5yI8Q!yRys0 z&26uJcAf)}q1KSJjfPaod?Dz}#1K65m*|?qAq%WKE%~#_%(!>bCvn#06t$MrP3-h|FOIR%7vrw28@8)lT>un`ype#JR;{Gi}UjiFr!%J1*d%d-V=d+~|=WG90 zvjnu(p*?5v^%ZnbmvYeI1Z?l)tt@`Xnvc;*R~nUyEo>`q*~je>b}dUDzPiN@6e(ZS zN;m%{v6e#?Yi$cMIYkG&aW5(a^a;)iez@=rZM%3ZoeKQw1pfuuK;G@s8W z(ffz@mYH)LyYzLDd0H-#QGy&_tL4`FsNpwgkFn3updS_Tk)n?hQ!57bTX?O& zHH;A+zei=t6`kXmKMBfh9axYi6&U^^L(o^`8C{XHJ#s$((j@IUq@5i>+Th()u+mIi zhfda*keSZA-gm(d8Qr+kWFI$@J(nSEbMXM$6)Tp`a=H5pE=k2vkERfME9s#|60czC zh-e*+NK1R~T~WTIjsF%ru5mYm^9i_e&=$`T7i>EssFCel;fT{?V^%5q84RZd)WO)I z%>yZ(7TeWvP3gU}vF^T-IY)|8WxU|)98BACr78N_}d z96w#B50n?jeTyF<#4Pk@ia*Ce-z_*gFULpLU(V_QOrO(aD9;O3)SnUlk@ffeTR&f; zBaa`Na5xxEKWqjja9YN}KKj4S_4=n&$W;E1@0M9cAA6U{RXPK5Fq)NqWO+$Yu=;pJ zX2T=IgmV~unRw7BXs5~!&Z+B>r*F0M`z!9`4}0=*Z6|1zt^HhOi7_yBGImc*k#oYG zipdSn71jD9+>9>`3MHgVE)8#BYb24zEiV1P=5)v(9%jbdN*N*_V`|FSsYJNeCTOz^ z>Gyjqb*-)!V}!v(G&~%65T!P}tb`*Ak#r+F|2B&UKsiCbbI#{Z2?y6*V67HI-9>EkH8?wvd&#omNHB>tMRovnF*BYzo@>G^@ketxP3v|gXfcy zdcc3afdD5>Yx`U5mSXkG|EIo*A18j)d#e0R=ueW}fwgEBe5}N9Q&3*T^NFVY6X|h_ zdtsUF_}D5PZc;A=2J}0p?_0H~+l9RiA!;FjOtzXhwIRRM=y1TUs%n3Ua564 zpM*1Q`Uxhgf&X{a)MnTNc0ag=nmq}LDofkSC@gu>6}65p8O*6%t7C^0I_bZEMO@M& z@X~xvGkFED5;BWifBGkVBVUV?`&^f&Bldc%R>UOw-_TqufxTUiREJs-B^PgK?v;yf zM!+$yC+9NEZ$9Pk2WVfwi-uNzfMoa8@}P|9PMI`u<%~(rE7GqokqyDUEMOLl(+eH5 zf6tw*`o!D(ZCv_v=ttN{P0jJp8jIz3ucYpjvsLg-J>3;p&R97en4>fT&DsAOm!t4q z^*cuI7Zs>40s#q=D&~4SeKwf;REO;7tf@xz7cu*dX%4vlL-fZ&^B3M=K!Y*+K863e zrzsoeGhNRoelY}Tuv$iu3&HlOMuA&pfS3}D5&QfGL?uuv0o_z|?ia*Xr}wXZPl_Hk zV?NCr=#Rvfj`f(G=dt}``+0uV`tMQC^HCS+V62V`$_49HZ0HBmdwk`+5mC$eSNYY~ zou>sFEM3fs?sP@~-Dk4uzIV=wS`?_xh&0uF-eV7?!i&d?3}x15()K;ealqLzH_E3t zXa&}q`Mc%kWPCt3Q7ns~pypv}vIy+=iB{Q2p05~_iTBoEaiE*wJ$+tI`~Nu( zSgTDW5Tq#M@4!P_s(aa(KG%88!4=^**YfGF+0*r9{3_xL@qr!xQF(T7Q1kL>KhRF; z4BNTIx0>^XM)(i~_~`qMD*lD$2893Ol;wZO+sVj9ywV#HHs|&CPpmfcx9702YosH4qT> z{w9P_wV#$P7rY%v25sD_3CyEd1TuwwvR${7$GHhsii?FO^t`Tfi1ehcdCe? zsYbUZarT!tu=DfKuLIy{cRKR;yZMqQ@?a|F`T3bMsNLFX_&pY@cI)}=>Fk{DBQWd+ z*r2PHu%M;YXm*Y%#x98kq-4UG?YD{rs$l<=Ms7RlIuN;tF&XohNbNPY2=MFl$AQIc zqM~@wBsr@*g13wt1JxJu(C+a7(I`l^HuYsgl@gdd9`?H$d^--I2#&MZIW{#_rO2YF zJuLAZBPw=9zU*cY>#+6!E6e!W`MS==wJ}OYa#fCcSBDz}gO_4~-{g;82evYDxAAqcF#4>{c z#XD>Lj})%asD1L0HbLFBDTjp@bmKDdnk97a)@#yiU0Y`ZCEjpZIL!N(7+c}zU3eUr z9ZOsw3?8l6q-KuS{f8-W_aD5zN~|DilBg?BNZJ|{+kHc$qFkmkg(pt^$#0xK$b&Hvx6hV zZZpzwN$Ni#;N)5>m zLEqa>2bd%}gp?Th$2z>Q60GmAdffaXnjjBSe7VDgW-EXsn`E?r`Hz*&{ca?3%bx?K z(6PkE$}__T#qcI1GSR$nQ-Ps7WsDWwP1nDW7$^@?4Z+bqVJps0nR|=y6~>fkAQL|r zdjw`10QNoFe!3bMI|>c^v_la>;SmevH=^iEcmO2Il3&6kdOMkYShC1-JmSAr-Vi;} zUAF0LazIXf{qf#__N;|qYe(XpC6E5K(va6&0}$)#NPYG_&G4w z;tr$NNK^##WyWIAZ$Z#9BEa5BqzV1YH-88}@ljGiHHAUc2Aw_jrkq2kATB*9*%Qn~ zXiW~GiaT5c>q&l+7XA=NcISkl87qJ;3ZJ*U#1{lpPP|2$JmX2|)#Zln}HcQ!QbAINvIvG`!U#+vO-6jUXS z&34&OC(_Y8qnV3Vs^($5j@~94(BGIPHJd9`Q1uyeK4@K`LWM3L8{IC>0Fu+}w6hDC z@}o}hECrU}BY_;KsRY6qgaCZ9?5D~Bqnia?74c*@n^ z*h=S`_d1b9po{nFZd2sW08G4AR5m%tEO|kQ@Vr>?$-(o>OnfrHooipwv>wrdVs~|J z>OY901X2E44*1!PyEa9NZM+oTR^2}yKLYKGzt-Q*WdQfHt)55`kS8mib~5sQ;F&AH zdT{R)0A}L=KsyXgO@8C?;`$1LL3-@eww(;n=iuJBccC%E#(%Feam^mMPeYQ`u?E-_ zH`m)qgu}JpmU6AGzMYzB_3ojA;5U5VT`lk@ZF_tpq2;7bRBWPssB!m=vgm7#7u!Pm24|JkFgO|<)<(H2~>O=7m zf?g-1cq4&pY;33f9g{EYS1LkULrdrySv@_=eH&y@Kh|(CqA0Z9EAT27hjnr#H_DMT z2a+R}2QCwT8r?ODWIS14=(=cThQ%_iT+y-yD5Z6kT z$D9lCX9&;ZL}AQ;hp@x*eb>J(FpyzR{R_hCu4+cis@Ogjz~X@R9?=XUF3aEB?TEZ! z`@JIBWd}d-sv3XI*w9U3Q-O$1(s@|6s#nNvri?%f(PfgaERZwJrma~!WALhLjTl`Q zF=5l5+xv5CBB6=hQFq#|7Qo-eQiIP{xJI-d#M<8_ftgpFm}nR-GZtne0)iPJO>w$N zf4r_jj*!O1lOf<|Ix9%5NyNc%{~}D%E-4BhPNoevM%zB3x#8=~81QaS)iQ@eXM?*< zhB8q~CJ8Uw9F2WaK&%nYxvC*93k@tZ^BGyQTKyJ4=AQL|Y;1OeV#vXUFi%Z&$wI6T zq@9&ts~GYJuyklAk%qvj#VNx%wZR0JpQhhC@(2Ewcsut?3<7)-uOH-S5|_>@ReIhS zfU`sP^y0k{0@^iYE3=E?(L+Vu6a42PqW)4%@pQNcJOA~ayUfK_`m`Vv(b$EV>nk}I z`^_V~`nb=z@#w5{#o zv(VLZ*=UP^m&Y=nvpy=o!fdz)#udmbQ6?uj zI7or1-G#_oD<$=wx#yG^u*M^fM{g#!pc`e45-UXtqZUs*wJ}!6e47$z_B|a?51AQ* zw;=Y?%NJjsn0B-k2nQP1y)aPDsjq|KNf@OvOqWBidN7vTti-b_ql5|iz7`F&U=<$; z>qRg3on_-G$}byh(`6#4Ka+IA}ibO*oSpPS2iIv z*jH_Wq9gTXLgc{(-w!(4GgZm+Q`RH`yd)V=Zx{V)OPerYUtOV*REtPb;Z^oUkIhlu zT_eU;KPn>Um6u|!6PWWE3yLsZu*H&KY0qFWcoX)Le8M3I$df7qs@0`PL(E>Pq&D%_ z5+6zm3iePIqy%0I1G_)TRS>^OF=-mW$HckD6gh`Uv|A2!K1d)7iFG>N?hwF}WZ|ur z(9Ff^r5pWEOEeOp#1E2QDGUowzL@I(WoS{GdM|?ov+;&SW^3+!1SA>Je~2P|r^zR?#Yl};?T=uxA~RbMd-yRN({xgNmu8=;CH!!k=FMGNpsUsQt~J3EyYrr zh295R6R*ilQYIf#8@pausQZa_W-v>? z`EeDpX|>7Gy}?9r`={VephU-iU9tPe1?qG=6+RcA zO@cnL6vo-g3uH9Kc*e-J9eGfZ%!P!IWiG)H=d8V$$V$A06`wsUPND%(Tuxv>}Nh zWuxtgO~5{fRN@w*-EwM<^u8m0wIRpTJb)W3Zyo~Wp#&s(;C?!*iY(&KO?e;0Muu>k zS9WZz!y&rrD-v0}9SA40?F@0jLHww9$y9E^G7^e@yHJ z5^g>8Y-n#aV(L}9IHb7+ac)bhs0+J~C<|96ud?kyFyQJ8IOn zluUzP4OLWmIgx`{Q(gDVo>s#atB*`R&E!NR#I1a-3A+)|cB7MFxLx?c>&Nnoo%SJC z4QVcPNDgt>b=?wa%|ML8gMuz?yAjLblOm0~Q}K1%N6$n*ZbQ_poX?1S*%4hPz0{X9 zSNswq-P5WEme}O#sCaI^2coI`b^OA;-^Z}STY`PBEF)O zbhCIdd?3})rwl`Wh@{*&Sh#L2UVs0atYeq3g0bO@*RDj^ym_LQ%%M79r8!bsB6kUq zu}11OcOXk z(D7zt=M#NkYcuK{u1N$^AO8@s!9XC}p4Y+GItfHR#HkenlfdV_!+ihI9l$i7&>haz z47B=cQr{vHfZ3wY=aOq05bre}yY~JBQ0^Wads#OMj2a?oIp(K;LxD$M9CZT6s>rqZ zS_)u^6t&JuX~&iwB-1xz%)oGR@Dc;XGB!&&_8?h23`Fv55wJD0Zs)>%0~Xo*y5K`kfIax6V(JGS5Yl(N&KqtDj32}5u~X9^ z()RIVME6l6sHDNdCXF$la zEt0cP2cNv!zBU8hlB;7(6d`qtA10*iij{^yN> z{d>V>Vx>!fOANa-8e{@2Q7pH7pV$E|cQEo}i!um>4fYKjH3HUSY@s@E7+8+D6Xkz# z0v=k6*$O=gtb4aSx!N)S*KUm`cHx5{;&6$)n>+$|AC9gZ$PfWqkxX}LksNW*;1y`k-+t8tR<*O4~Q?ts8Uy&0k7?uYzk3XU`G7x zD$NnV*IJigTsa6tR^R4?-|_-&cE0(Z3on5qvdfd)=^e06YHfdOa1N3ACfhHZBEkB5 zYbSo}rNU-{c4XGxQ2@%qK~Geo2CQ5mesx-6Ao#wdzBjZITRw(mosX>qwq-V@UCwd9 zv$HDo!TnHRp`kLU_$~^xvGR%sRKkI-oV=SN<0w$;6~;{`^J23B?H@e0YyoN%cO!yG z50Pz?-Cwz%2w2|{8Cl+l2Ci>Q5rJ_pv5DU0&=Q4wY!P3cxH{E|pa1r*{!+05aCTh3 z@4hu2m=+x}DTXEyLrc3Q$9;Q58@lP4OKLdcG_lON{bLWlSxPHQZ0-Ff6>a%o`e+AY zKYYNFMT-c;^YX%R^D9U&;(9|)%`yCRL9RCcQ&S+hx=A`^Bn8NOyNN^N{17R*ocX~` zW{7;pgIT3HUc_Nm?l9ORjYx-&ox3g=i(k?&yLSjzhAn0ji|&%1M0AdqxlbLaL;nwZ ze;!Ze+V}tC=6RlH%RIBpv-6!KNs=TKNs~%asU(#om4r%~rCCx*NG0nXGAA<2Jd;q! zSbnVScYpT2udaRVecjjn`+OhYU&lYs$8j9*>0GRJPOtMg*?a;*W4_p+*vMkmpr!Xw zq|&SM)g%oHM22xNu5Y4zrp>wHP!Ny8)+)veA8{e0?N$k~tfwe>T{PJx+Xf}>B;EFw ze}!^FYvf*?-$Nd!eM$X!Vh>QIr*2SbFGr3d#`g zX&1?{pq$FZg5Zz0P@cojYTL=LDB}FSb=ie+;7DrPPHYWDn$aVRGfT=)WaZ=GfL1P4 z2-Qv2w~R-Q$6jH2M?RwHy5mM1+Z9oI!=)RkE6FGzgx+cSft22 zc}Ti48KV?-A0@S>nv{F5`-7I?3?8AQTPWEOg~KQHDyo;b~WT zJ<(uuYT!bWBkDisOESJ2fqH!>qUF|lqU`p?dw3Q0qcm}ZLm;;dHS12bwa^!#$`Z+x z8l4BIvuk2dCRu-y-Ujcp_1v{h!7BL;TDNd1}07ukg7m?8FC?zPT&!#24Kx z((mmW4X;zj%T6%NU8yHVTd8;Ch+L6cDm!z`J*ob6JXHHC(>TvR%R6|dle#@c;T=@J znzdTNf2H7m7O#!@8~)k+mkZj|JlP`D)!vCrlj)Y<&wspdm|9PYF?Chwe;TK?tmrS* z^Ij#tg_*YVI?;re!YGg^j@AvrBd;Sgo|MKfROOB`3v2o__& zbS$Cv-zriSAw;K5u;=gdv|Zw+j(2S5q{e+3uMTs(Cr7;lO_X1}NoBA4(Yd;bq88`B zQvZLd5oK1oILF$}(SMegsLK6qb?okkz43D_H!P<1%Xj{^ig6naRe?r)V5I);{L8%e z20Ezh+Q0#Gd{T9Q%B~eu#RTy#QUyNO+j^}ew6>LQFofP>u#mz9J~2tgXh>f;n?!Ok*9B8AnEVekLu4Wyyp8weRlXi$^Y`z zk)P!!y6?`fLjIp^MALHnxqL)17xC9T{_jfAi~rXp=o!Bx=)u47mjr#D_#1yo(C0Zn z|4V{C&z9f#OM*VndH-J$^m)$v|B|53bKd`#1bv=Ezwws@eV+6Ae@W2iIiLUkWfFAQ z_gj9V-~9%Q*?JO+Y~05`v91&aB{bPrE2N|9j_wZ|!-P@xI&oV`p#;^V#_X3>Oc9?5 znd|vGX@EYr>Y!DwHIcr>XtMZ8Ja9yQd-c&E0mW%_=x*{dA=!eiUS&xM2zg5;zJ0+B zd@Yi3#(VaGf=R`bn$cA#!0Wn0_%jE`arkp*C=E7Mk2gDo6-=`(OYx71(l7nHNSGY0E=apzZ@k3>5J}NG%d_Onm`DCQJ~5eU#}N z#&j!`N`S}Wg!WPMUS#H)d>7ftg2J2lm+s=$13Hn6HnBIppp+G%P8=yijg%!MWzKR` z;9YTLwa{W<3yE~#cMe1Pn$)g)FsE zm*j&BK*I5qUhs-x;`WtSo-Yjmg~cQk-IptZNXapDcz6zI{U#1MYHK2Y@wO+gjZ{IF zQOvl^Wd#Vf-A<|W&IPqp@#+0n~UNIar{Akk}4@82%^MdX@ zd$xn-$cETlF*lHT-ISOSPzt+U0bBh6GXp1)N<}U0i?&zt$I#J0K4V% z(Aro&5cxWj7`yT?@tK2OL+LUN3g7E0-_h#}%-@n*Hma}yPl2_jakTcCM*_&M)IL%ueg~8U6}l-wt3hk^y5ZDS${^LKQr~WQ z3CMW|pC?pxgRtrFYxxL$(C&>;IQ{e`$fn3X2rzU8B^Tev*DS)3r|%1$#-br$zj>A> z<0%Ko(G@*yaLNSD(owI5H}s(QiFV!%hQh}xK`Sjo;#=)ePzmvsa?oZ1m7$LHoKKWMt*7e1KCX9Q zyuIN5LE{~uy~mg-dol!M-5BFC_ht~&^-+Y?LmQB{-R1s%oDLZ7Y|?g&^8qq=^*3a{ z1)bJ1=Dbo9P+2t@%#tV%y1~T*LJ#hMY}+;A9-lOjlUh;jy{-zhnHcx#MLz=VjE+K| zEvm%e{m!L9rT|K%4Y4m)DS~cw-IE*4F`&DX`QSyBT+myq_xee|Mo=GOV_{g`0Awe# z7Ny_-(0*}}{<3B^=w<9*$Q#89`c4Z5oq0Jx_vE&LRw;Q<4+bx`37#6V1+5sidk-!i1w+m= zsX@>6K(9IB$`Nx#FnqVnY&_(&9)1S zuN>xlx$-ucN$fiLI*1(%uP}nJR2IObtWJA-8R)(J5cI-S8w~bXFWTdl3PygC4c?!^ zz_j6PZpyd&pmXuL=ou+?FuHgDVZVtF=nr^X#@Q_blV_nFGc+GT@36a6lKN~OAuZ{z z(MJKAuKI~rIe|&+!jB;|fv`Z&`uG~s?DlslI&jC)ff-AWrmCv}=tSJo-uuNsY=1<`&G7=GvHmx{9v8v*N2$*e|75VxlXMv? zL@+7npVsp#)f@c+;83@d0sK@RDp{J?K5Id^vLVE0~>=>dFz#0JCnFLU!@1 zV7&6n@+&*j!NhQ9nRKcg7%wD~%dGN1FFn!N<2)0X9C{+x#OwivjU0-4lW)Ozo#!Wi zeK#;UaV_kc`8b%qDQ&UbV+RH-Yd^PmodmOmC9NwKqyRZ^y=fTlelX^pJe_ML0s5X< z%g??E2R*tSi>erDK-bslLF#9FFj`U>yJRX2)Ys&N>INi&;e}TAdlyYXM_9;Gk?A-X zmr1R8agQJL+8hHc3on4dd38BoqqU%|na*ioX9{{TZ@T2ALqB-SfvmfcdAmY3=(aIyk`}Xq0jq)W(lSfXSCY1= zG4cZaevtu%Z_z+be|>e`_u1cV@1v)07jFXTMJpYju4n^eg(ETW+8qqm3o9?$&=1P- zug;fQ>;@fUbIwQRyFn}Ay#^i06LdzOW=UvpgWTGMx0+(hfE>v}K63OX7&)~(y-{!l zBx;TBCD)FC&Rs=e_Qz{M^VVQ>MtdP>h0jb_?AHS&hKb@^Zz-TZq-=lJ%MsLTB^#CR zFoIUKVxs*O8Zc@d@Rk`OLsDf!f}FPZ}F} zkXx3&kzw&IVx);U+dyjxN_Ia?%WbzJeHJLuyxv0j%J3=VEI9+k`R+V$FYf`Nh6aZH zG%JW1v*%YPPWceSD(9{<*M%ePLYn0d+^(%Dj*Mw49mddY-FPEhgEmXiME?r3YD#XC}wGB`)$cI((XH-cSa_k zGW7m%>b)T!%8=ZWp)cn8C{&z#SI;+^7@mw*P*o%&dnf&h8eMy&E9(w^uHb{rt9j)| zmTdr9C9k|9hLfmttRu&Y$&Kji9ijac9FKgCl5}@dM~LrSW9w6|`5@!7M}|ARfW zgtJ&&6Pk{pOpsebMt=(`zH_^L}MEUrg(x)eDQQ>4?(;+^2)Vs1z#j1ZN8VI=+ zuk!LmRdVe62c=(7WJ8huyXPB;u?<%qeO=~>#uUXcTba#hVi=^k#WfT4k~)(;sv^;n zB}jijxbE&N7N^-ivG&6A6$$EfOGp1lt>t{=3Za4$ibZ2G|gM=8|0JjlN! zfeC3iz1}{45RV#n8aK)L*P?Qj>-y;vNk|r4+)waMpqkkG&_@H6s48o`Qu*}{WF@^` zayYmE7c3@=on=0Z#xo{Ib^za zXf5i_NC@p=dXGYRY866j-B50~yYb-1AISK1?=6x+0m?j&f8=awfeM@D``wy+QNf0M z@W;g%6gjSUQubvhs?5kZUmg@hO@6XuUoRUfo^-n^VH1M_Y;RJ1z2Bl#o$T`if*~mG zqOJb?j3UaJR%SH&e?qZ!`7255X5-TIkVI`;P^nR6rM~zKDv1dz3G3cN@uRIH7x*So zAUyRm>u4sb3_Vm{yrKi;vQ8NYdeEVyDO3LPC4s1(@bJ;Vpe!og=P2sT2ta9rgA2A* zL?CO}VcF-gxk$RSt@OxFT9kNaA6a+jDrI6_@%g?)2NYzyo2#0071<6%xun>hMB3t0 zJPAr}D6{>IZu-4klsdFgPkHY)l)iA{>*+WS4fHZX+B0Sa(7tWnhq4!6H?Vrsz9z?9$Aa;;!- zLkVdm?PkGB-Y{+yEsl`>M62U6CfW zYp(*k7-c47mEeYtEWjVS@5aZZS12$MMJy$~Cd%K$hxv>oQ$|jzO)WDGMTVP8G|oPs zL7vDjXwxf+Os+a#)o1jOUXeqn|LrHr3`f8Jsk<+SIVgtrLQ}g7~OO)vX$*2Q$BOv~Q=eyaU74Rx9eVlZ_f-)AVr;{aJ zOBuZK=IixW<4Bve-M)0{5^&C#YO<5niO+rO2(#=CO3{mO3ytgqAPsi#Q`b5+vzNW9 z5&|r_yE49+Tmqg#!-%Uz9zdTLeNwNX90b0Nth_8%0X%z7?lsaiqD&b?F86s^nn|tz87+Ax#j$4~ zJ3^DF$axfGJ_#|YL_~mO`SJ3=Z?zySTOWJIg#&ms7w0r&W&kNUR%LC`1CSpGJN+tf z8?bc-S6^t20i_dcGTF_OAe=KD)x7u>@VU1xG8(V}k>|3OXDcLt`Wn|_s-LM8Yl|t_+@cV!a3rp|@hd^Kz)N8_> zWwYn|OWaWJ^j2~O=oJ|JyyFFI#S3doeM?znKg5~NO@p-+`90M0$p9#T)cfGsNY zV+U^o(1q{6I5e~l_#MZqg=5} zdGnluygP_zdY)mq<^YOGu@Tqoq(HjeMY8=g1q4}ZJwz7>fkeV7mO>v6kd3J2NZ8Ya ztl}x#qcxj=G+r{|wDb;e9|FedL(ah8ev&+VV;n@EpA;66N6L`)g7|J>J5X?Dwt8!3 zM|@$4_Tx)116tG6gAMjGl(GgU8*-fs$m)H6@X4izX!|I3gtb4JQXsh3s8i7a_z%UW ztk|`g_#x=l8$`oLnS38qJif#k+1C3ix8>afZoga`67#s=Ru@214(^4vSNBN&iVdGC}e&d!&aVJhWt;L-<%qXCdL+e zh+Xz}MG-&aeA_c0fzhk)h9j#m^6I>~KK$S{(oZhFM)r$kUU1=FIKX0H6hAsKAR4Wr{8H%b7Ec2sGL&uBd!(l|(S5}rY zb`D6Qefw$0STu?bY_~eVL__&u!(yAPnS|n(uC(G4N2KSw7{9%5H%f(mVdgX6h|Jm> zzhnI#Zk*X z6dqT}eHBFfNO3m|p{+$8Jxyx`k2DmlPuGc}U5DHo;_XD`0#M7+J4eLU8)YSf@oqc^ zl5f2!wn!YEJx*jQ6=qdK@$xeFo$^{J&yu3{Nl+X~kz0H&?OKmAAB03VT-t?_$FHWR zFe1t`Sox(2okR)7O`CEkw`TY6KAqQMGEueI_SpT?y-2o{Iy$88h_cT+%tIcyp#1QI zRn0~5DB^zT!b`(-sFWz;+~?bh!Y&j2o`b`voL+Ch?)Dlr-*hnM9*CR$fAN!Mq{%~r z?YZ#^+mli8aU9>L$P_dl4L4rAKnGwgZ$Z_yDiaUCXrg8n(`{$pOw>=CxcDv5 z0_Cl@88F0bL(R-3)AcZPF3%~00e^41G|J0xG!I-)*2e^>b5Z$#aW_bopg z?*Tf`-}k!}+evdQYV-QH@-+KL#Luzf2RV3-jdFh~4I|!XsZi~jtq0@(P)FJ)Y8|&j zf0O7o*}nfpL2+lZ&NV${4p zz6Id_B+jRWt--(V*UWtWAH^F!wCE4<`Vts_7LRCb;*Ou=OYSt!Id<|>?~D;WS8GUf zOztp;Sz3ItqbiPwLBroxnQgf#@P{}QZmGXhFVVC-hV--Xn*E6_bFAHOLe1ajT}thL zfmhW2sI}wYNb|4jXxLjAJjeE0VQT#R-M{7QCH@h5WV6g>Zm-P_16DtpY1;~eug@W=m|eW42Vdq7;F zJBEL!o{z78Tiv?y?&MruL{Vft%(3OG*<3#2UHG3%!pl9L{aIcA)UT>X;?L?NYFrCi z{*Ac*Ta9?3zz1_|-b9tW6D{J;agN=7I-b9`tMd5m?HDb&m#B6#YI0PLPO$&p?*FNc z2o`6IpCi7bKKexzD+%EoYm^tq|CwKnriAAl3)NOod2WpQ2-1JNzEs2I)Ov<&M_T^O z?$Xjxm}93(0_m^BZQ+<#c+U5~iIoKZ6~A^X-nsb12Y#v|k$4^4K35k}ro9OM%&)cQ zxBBt}2j=n;#m1~u|C$>@RR1$-x90K_l^#>n@%{~U)ba7&zLwv|dC&gaTTE)VPEg~0 zXuVDPv%DWJO#E40|EK+fM14+K_Wv`9ddaU<(tkhqkR|0PkM=luLHiTXU} z{eMZ+=Q;2HOQJr{dH-J$^?CBlb3V>5iTXU}^Z$~l&vQQiFNyj*=kxzXi8_k1ub`9U z(nKXm8A|E9+enIc%L$i?M&6OO6F~y!h(;ZA=18>wWcJ+~X{p+Qf(1=8`y~RAJx@c< zn`Q?wWwb&(cuPFx$DK(X`xU!^V@Bn~!q*wdSxkH2wD1F>`i^ty`ep|d`Z(w|*`P{% zX^&yE?u|sD0OA9WLp7=lT;x}FRRE!WVGm0hWfVER)$`_t66A;FZ_C>Y z?RWwCZiES3j9L%eHuZ;kCM76u>=un4;6`M8?C;4*K16)$@fRi)H6aUY{Bo|8la%jK zA4=6YOOT6AobAikUgT*DZS#oFMoB&i?gv5xsLI|&E8l^$VLr0O-r9#hsrxWse>VFYA{T_IZoi$|J$V5bE>#yz~m_0Qdy|IML2Q`UJGIXk z`TGuDL0M;Dv(FE6+1*am_uSgdFX9byd!zL}oJ}PfI6^Bvn%pa^S=L#N40V3z2e!a-XQ&eLpe zq+CZjCF{(O&qqMs*X+xq6C5DDr*`p$?m>_(&P*#mX9v92Y+Hr6mJscVkd<7Hpm1o_ zbS8TrD6Zv5%pEQQ-jFLF{Z3s0rL!s9XdZtB1(w?@oF1ry;{NfEz~}%npYD99^|}Il zA8vIGoU{gw7XrruddonL<u<2$QBJ3(o; z%CRUQ$=XiR(P@BEY+RUuhBzo@wuzsQVFI#Z$dtiQ3y^0BZPluSAhXi^5XEB}$enz< zw$I3ewo6aBqZ0#Yv6XC_h^Pe}4)4Sx&dDGXb8`AZ(gh%;Xm1hwcp8+wCU)zbcLu#O z{S#uDK_I`KD8Hk00?0ZmYO@X2fm}Dk<(^4L(A=?e+o>KCT<#ZgWKM{_2>d^kC0WL{B^+K{b*8K zt23zC>yl2>#Dbj$qg+V(rpT0(B>)J!-WrV8Y2p`f;8Y3_W#~#kZJ(;S=GH2c0s( z@N(7y`6sJD_hU>9@9g(kT5!mJA3qD|XfWP?0F0phs_o;#(Lm6#f5*8p^)~4H2J3uf zi2}X!Z&OnD35fd*>c;e^y4XD zx+YFLsP!tCZ0z__7iB_|mIiz+~Bax~77yV6?q!VBwxkU}hsT`sQ;C7=@T; z1PTF|Zn}FbOfMTub3ROmp3MN$I2Ot4g^gg|-gHBeB?f@yh|y$2DVW{V_D;X?4or?$ zo!YUY5KPW8KA@A}0n?RVFKL=OfywTnpcl#rM0?!ca;{)7lj6Sq{Mr*R4=#Gw9F_%y zOwY36ozKD8M>f}2!3l_Fz1+Z;ZUDY^=f=B3z#v&VPqp3_2-3YUuM%l6?RPb=@5=_l zwK#D1j&(q|ti7|~+h#E8NE_r^Dg(w9q{%Z3B(TswK=WSS63lw!J#vlq05M+igh8Sn z%#!xrR*YK@X7mEGt7E0WWQV)m$J~2hQjq1Y;kq3x^irM}U?UKg0ZWcYeE>5%naPW` znqVASy19|!2L@|aq~$)DrOV}@8dWba+eddvSp57fZECM6tIlq>6vMk}EigHDc(m#r zGw9zuD%O7g6d1l-AhqlyJs7E*-cWHE1S3uw=Su;CU~=beWAnZsFeQ?Uj*SO_*`{Ur z0w#Q*+|Pl5J)z~hycLXMHc9aH{+Rtg{}IL|Cjy4I*FEGqCjh1? z^@kUop#|e*`?PiyS%cA25%*&O5nvGYb~@_z0x*7QO*wo)1dQapPYkg1gT6{EwrrLL z<98!X4>(_ev8Yf_mwynbP0L+Mi>CuUrhrZS$@^!wcX)Yn+eRSsUZWogW(0!;jT*c~ z+dx!J**c=GYfQca&4R5DMIVHMc9v`D zoy*Z+=q~27c7rjHD@=}@P#*(B+f~W>w>N@j{0l>^4*>exy$3|@x`1I>=Ef9_Ghle^ z&O^S26wukN*v@8=2x=E-19SR17a#x1Ov6 zod?H_Uq);O{SRxebEK>Vjn2X&H*5L8gs6>u+-VOcy$eYf_tSuu^HfgRS!E!HyvVRm z+zDFyc=SRU4Fbdx3<#RCrjP8i@mgjoS?q^RKJMKFPGR^AO?-wP4V$Ro!1A}59H+lJq+}Q-s zEz^yuP3HsITXEfLTdF}Swf?cH0S{<9>2fQ_o+my%eQ00%-4n#=MXsFdy9V0$MYH>s z%dFqlJ;8P&z^@l5eD}?2;QQRTz+!q3ct6;@kM$xz-Rn)~$vxVjeqr@^bD<3iIJ}Dt zm3a&z6-V7j>Ip!ioVVjh-wUd4XYtGe`Z|(uYaBI`RpaaxXDD3&fY9^GaSQYPb3Q_px&Xl9c^ z6c&MkS#`tM7760xlMtK!)7HfF?iq6i^_|G$cC**+?K=<;EAIVx(FYYTcp2`lTLAo> z9RhY|(?ObYKF{y@HI!i#^9W22L8-pf$Mu^sfs_{@b}hmHcrK7mSWF60rb3gV)X(fg z5w9mjtcRMA`AyyX9W{=W2|i8QDEVCErFqq}KFN(3t$XRutdKzIIFe@&_|h8~mJgf_ zKAVh8Z$2zbeZ-DR0_KorZjG`JkA9`!7K8i-zVz#_kD#FQn%sTdrKqy!;Prh)2T|p6 z>5E+*u1ILP3EPEnp%IT}moU2n>J}JsI5fB;Y3&lHUEEcudC$tlzs3T|S8lC(B<_u5 z4&ICPbX$?nkFR}Gj19`xt&es!xP?N7Ed>?JIZ*Qz-`<;9HYi`tc=w#?4639@f1$ba z8P#0yE!Poov>-VvwdQl8;pLSyS>bC@xC)2U)>xt`d(Ic{t2a@-(v>SwwiMNB#>@Q! z_n}FAo2BbUc2v{4VL0iXgl1k%ivCMipqhQs*1)B1s9W)TM^F7Y>fYXSMQ!bQ)E*Hz z`O;k<^<5S;rSmnR5HCY)_e23|WbnL|ctk>->pMNK+Pb0EQ)jMXcP5lpy5H27R*l+1 zdseT$nt(>v!ap7q^+es$#Pyq3-$Vu1*Tw-gZ|9`>(ybY4Xx5s{=6^r{$-8J2*$o0w zQz^#fGiP98fRYdCXn#JqixqCI)1CP+jfZw+CCg zQG00e-A?-^l(}c07BH!S`qpvp9BcYfL&#{8l;suFco4MmwpAi(UzO;7_1*@_=?SK#LzJN{KDTq_L(2Cz zv_EXvY*45@aU1Io7gYFiT}nKz7By?0SlrKyMD6}%EZh=BNZ!0Vf0gH5l%Q7#As;bD zp&cr{yQ4BtF(MdG@oh%A3zxQdDaWGh=I-wf>p!5(>)Sco%yywt+iL|bhfw5CdqMBE z&w}!Obac6_qCZNm^Sw&$3Zjg+1nHk$+k(ps@NDZ?%K#Km3{(6?CDy4YG^3$20+%Z#1nZs zY@}>9>Z8EA!W&ZDF356YcW8>{KIFMgN!}z|f}}B*5YM?^<S zIaJ}Uf}Biz@^7B{BA?GQ*PxMY$R}&K^>w-c@nzs^8XwyoyTC~2s`b29*UTk^7uy^51i1lIZ@gOR-5^SjMOtG6M+Ax(+&S}PUmK+( z>U~1vgeRq^dtpPC*)-54ldVoxr%d$O(ACP^)I(J+345CxOcISmW zJ>=}j3e7&4hxE$scjC_*0li;&El``dU@}G@W97s ze$P$-zuJ+PE}X}Ri}$}7u~r3B3Rr%eU3sR3C~c8rws_|aTvuNf@}_nGcM22B#i<3v zfXwES0&Q>NtM%^YNxB2TEgf+4R`=K0^Tom|>uo22*X@&#Zhj>2Z9Vxam_HXd1Es>- zZ1({(U$*;Q)0LDqXAPd9%|1l^viB*u^2x+^f@w^GIS<6vzcvfmkV*XDTzq!ihl!H6 zV*Gk~Wf{mYf7cf&I|FRh>Pw6KnLx0}BJ^1QE|A}&ezyKX4Tw!fCpFC;R|>5RscJoA z24V;A?!%F7ARu$(qr%KHV2z6$$m2)=-nN6|vONaC>2E_eV`c$q_qMFWv``|ovz{(! z1%kBd4YNz1{XwMLX*vlO`Nr0(BcuUjEX?*d@hX6D z!tg>mPZ5x>jOFlbWCPJfpPnmk3p{uG`N9tVR1owzU$;ka5pWiq+g`J6 zcE7yNV7J^6KHyOD&1vAM1PN~LnFqqAATl9NxocMjQli^V2aNQC=&hl+w)$ESb(cS6 za5WW3I_7@+n^{3<-!i>K1sPB{ZgRLs)&WFHWiJ-p-~)wcE}^E!UjoVSAkWin>9hOQ z8{(;IWgxzC|GLoX7a;m*AXMw-USJw|1$$?jfOns~>p{(TAb9=3Oy>g#1eZ!SnC%B4wHJQ-4KslK{j;E(qMD$Xc*vfg!UbaTPeKfm zYe3YlxI@BQ4rJGz``Dcz1qxSsFR!??6oigTIggY?0@su7qt>$n? z`CMp#bl`L7rh&NG?cEUh)#xIKt&$Q`%DMzBs&7WOk0*ot!IUm#2Y=wnC}CP9{um^- z?^8(ONdtkH^u6a7BoQ6e{!8V!dO%{^=9Ruasg%i&`ftwZ+W<+4-s#o#a1gB?N#4|y zOH8OG42QhyAx3vgq}D(61_`!BXN%VE0Unh$(gpo>z>s^Z{LKg-@LM^0JYUoTylD=; z+vqm}6UWMdTz?;;J7+SA$*Pj_EKJ0p@Wt$LgwXMGAvNs8M8*g_5eWo_u!J;8p={vU zvEJ3l{4lbhhX7kn15vH>Lob`P7MO2-*Amh2L7vBbf$@H4iHdqfw-P6RPAC+32KeFb2JV)pFOMI!L}W_Of|1TOEC| zQ3J|YjL~~tDQDuX|E-A4G9=_nx-PQmyc97=_Ac}tM3m3F+9sZLo@f!!A6XejqI?x* zt}s+KK*`HQjj7H!vYS?U4;XZ!?8l~l|3~ML+Y+5G9S%exWr^uPBXO3{8 zLNX_Zr{ivvd$nj}oxl;~sT&S+zPAd+<4ZMjjU!P`js5N2Z;{BMxmbFg$tDzY?%(>- z%o(*F9+Dy4PoTi`(p_8fb&;cCG1CNT1ByScJQYkgyT5&9s~rrTQ-Y8=Tsz+1>@kYi_09yV@FCyl z8%0MKcA#EoPo2!>A(RbHH($aUg`^Qhq5X^-P=O&gc(aN($}I>RF(*7xfsXUT| zhKIMd*9#OOv%X4wlP#c@vW70>*CZ6{?5Pf*97Xkmg`89QMX0pNOnuOp4&_d0-|L`@ zLq+=YF{F(-sB`XJbp9GdF%FegK263b2OAYz6w^@l`b?6`gdyr^3xwAf??VF@-dn+I zL{W9D=&f7nLDc4D;Shba1X+yecXM0$qg>CLqHo2lsP=d>cVO>hRPj-6F$zmXDUI=6 zG6Q007G!C_`^XGM#lqGr3QwYZfaNi_2nRHHx-DbXmm<_*kUh_(Vt~r)DmxFgFrd7u zSH?HSB2;tx@;QuBiAqk3YdV(YqLx~!i_r;gl;6p7$$04?s_k5vu}qFY8NMY|wVa%& zUZB47OmPb;Hq~=q`L2xGucme`x0yjR`thEMf&w%w=N-(Q%183k2d%QH8K@&sJ0cjz zjQTlkzN2DahH|qMYxKAJaw#s_ry@OPCUq1h5@rXWm4Qd@J z3#fPKiBe--m}9yBt6*yX$Zcvr*SijW@7EMnLme-@ag}PL2$`0v=49pP=6V|&+c zzYjf5k~qf_U#b#@s0|Cl|73klkqcXX-+$YmNM+|8DbN34o`1;uQMqC+FEO-YF!-<7 zmpM|ESj5}xKdkcqk8#h&{LicVUA($%szQP27_9Z2W6{u;x%@s_D|-^=|p}yo;^x^1dBKu zBjowB`6`|q((n6qqSUuN5T*O5N(UlkjJg{CzpQWIEmavvfj(;KVUu}e^dmA-w*G{Sek*HY79Q=p+ zuQ~iSzTYYSKbZIb>5a$?{ln+*PwhI~6XAc7XGrLP=N!9s6_KbseTVcvi1%M{yKj^S z&++40cWT^ZL8|hTcp>`R|4}=6S^UrZD&jS%^%Q7xQSCpJ%`0C2n_b+HP0JkHj(wrp zRc8qQ-j2xPT|v$J;ZP0!e!Ob;=6`dO{)FA4fQ=ly?4(C5iB&-pmN zB;6DKM&;~`nhhwm#mBeAMwUpGy!cRjLo_jJ-?c|x zwiMVX4_ni3X;OwpZnt{Q=psY4hH>DKIVz+%H))LALk>|__aNgERG?=M_;`hciYsFG zoZOOxY%^@ylpOSivK~zvm|I;mH%COJDh;S=^kk~Z1z**Y^WaJK;O4Tz`%9?v`?_C#ya%g2o9!iI`alNzAY#2gjoQfKwrNQ-x(Mfw?5~hl+fj#%}uC9fv{39 zxVj6NOs_vqJ#?Mujox2rchnDAe9V@ZuGO9We51&e^%g|!3E?{z%>5~2PxpFRWqSjE zv;T4vrX=9qy(37T><+XI8x|hOBO_yxsda>7CCEm9J9_GwD@g0#XgYfF5(s?!er|!U z9xzMWZjoBhNtsDp)Fm;unmE~g+pZiN6rZk_TiG{4OfPZx+!@M;;!YnF{G{oCTQnsg zbA=HI7O&1c-?w5 zdx+Qi664{~Z1Mx=h)KoPfa@YJfoId3uUQm+;>&J%BNG}kN_jEK+=rA5GP#dr#R9rO zG|K7ng&ldIY+I+U!R!O%uIvMwSM3Ig&vY(J>8(Lw<>0mzmZ~Z!?~DKBbg&Qv7`F#Wb?*bY zj9x*Lk`~~9IJH}RNCf0tHPYG+&7Sw|r8#ry);Cc7oXWa9a2rT#kLJdj>;+>bpV*F? zPav{Si}==m7*ubvNN4PR2;_w-pEwGWLC&s`QZBa!w5A8j&ZicD{P~rl7CievCx`(x z3VcEJjat|_N*?H4V1CH`BO6qjm)37C?*tj|AdjbgC7|<|b1zve9JFgPcV2Ie0BH+h zu}%SJP{`nCr6GJl*s;Ctb(<^*ZYuEbNq-G;>q0I}a%6z=#<+ueQzTG$S~}2X@d3yI zu<5zTVbF8s>Ki^p3%Z)>ANIes2J&*ouz~Gez^Q#cSaG}r)cPG6beng9lI`v@j%p2{ zoxE^!)nO+fmI9|w;C;|tW}9?rOC{)zY*%?sZ@?s7oL}+O z7a+^X`}H@T1|w196}sZRK<;a*HOU$R17YV4lZHB=Th{fJ{*fDyZA6}9*)`Cf;!1rv zRtq{N)oP!*tHIFxg2EDMH889b;k&Hh40_j6gx>A-0-dWz0{m(%ft>R+!#VB%=q+By z>h8E1bg!LpWLxwOv`?G44e!nXy&JpRJfb5&|I5JpfkqWDEtdV}`sN&vCqEaKuU`me zx>eF=6(qsW3{0cwHtrgi1HG3Tn>}`20Sm5IEs75`z=SVW@u4pnOm2=R z4_@8@#wJ`6E#9;7_g=CVJNgOC++|Kw<*|d#HLDBURv$pGDH?KVkAc|-$JDJ~Ex}~% z+k0a-eF2EDOA&Fkptt>6^R~{9pkMUlIO{V-(0l8=^bG?$7*2+-Zr7awvl`#H%bgp* zM9utibJMvwX}Lvr_G&O3c=Sl(#ZfR=b=gksjvXxUJ*V>m7lB2<;POwG48fT7=-PC~ z6fl|5sD63!9hgi<32!)h0nGgcKWOZF0%iy0-@jf+2l|cod6UlyfJOb*^S4*~fzg-4 zQH+c^K$Q6|?4mgdrdMB9Z|wdKrcYO<6a43Zcz3$van%(tkD7R%(ES`to~XPL79Iej zfSsq~Cmg}#aUZi=d>uf}C)Kd2Fy>S-~66N2ZmslDr21j z7Pnl<9G-8%WS4t`b#^V7cX#uSA1MV3NefgQ}kLsb2HG{8J}SzmOp zE|@*h4!GSF0*2vqwA`7_U_th=u2wV#vm1Cg^>rbb4Bxt5TbBkFH+;@PX{i}c|dMhxw zeOhohVI!D!7i?Lm@C1x33ikTi?gE3XwxJ8&ieSptuDMRV3k-F;9yL~-1S9|4d*>qx zK|h@R#;X@1pf_^Vb(aGV806fxJX}5-*TT@^Yu0rzz1y42DUt{V6_2_`WbcCEHqV?H zLv#e&7C$KgZJxk2H3k)6 zFzm$p{eBhbvfb<5naT(Tk;XQ~0kNPT`S|>WD@#C;mQ5= zUhn{gcX^MW-sT2{h7~*8HTQwSo{a8DrQM*HvaV+2&=Me@E$?C5NDqqiLU=(e2DCQ{ zg%`B;`qh!l?Rgui-(E<-1qnki!SU z4+K6qN?CxwiW*A4K`+Q!?DJaDB?aUcM|U~iaRgHLiM+iwWk9l=d2g~N5cH%zDn(GZ zL71Pi{jm6D&KeeX!1s1>|3?8UCCX1~hjVOepCB39w%f?EMwFG6G7ne)u6DX&upYo*h`3YPO`)WB}deX^lO_ zxyW})?Bj%yEHF7)MC#ZxAY*d={Y@VGfi0mT|?bQZ$5#&pfu1T%Di@aGnw-!E&MS;fQbBe+z zk#<9%lWuP^F=2V~-b0;uWS1P`mSq! z#a(_V{)khJ&!zzA3#J7m3?osHtCDegQXe&5dWs%?#EayV1sT4NtwRL<#xKB!k9 z@$PIuDaypZJe+GjfU2bN>*qbUBH6+CV&eKEsB!yESM<~y)P7oa@sq{`nuXn6H%fOA zwYw#b@2&Ji;|rcSQm30x^!v!-JO0rqomLZK&}W6}{*?zFtUiy%HKCFY5BDN@B6tbS z)ClTowsz)?x}d>@_yyW}4M>*dZM+-MhK60auLQ!!QFY6zOZ%NH(S&>U7ZHlD4|xQz6uo8ftE{E!LToR*T-23sRgTTMNv{aXV{R&P?o9g!%+L9kb-mvJW_mGk|3okSy1*6i9r{n}F0&ydr9<$4A+Pabg8-ED<>Q*;*j9&xBG*s4m% z3!v0kZ*cL570TsDS_e;ULrwNn`3^QcR6nk)9(Z;iGSJ%@OEo8u#kmQvKr>A%@26pu!d=?q;thfzlC zsz9amb>vKcQJ6|!g5o!>FW_GdsBmQGri<+#P?O2?>b9vbD0T}jui;pM${vjCp1hq# z`P=c%dya2K8STlwE9#q3e&{k~q4-HuD$R1y$VHTKUMZ0-0VriSLCTBCLh-L`-*pyC zp|tu}_`HxrsVlfu>ShX*&+F@^Xg2F^xU)ppTDk+8>`EZsGRY?1-ecq0vjPQl%$$QbL;&e}r z>fw{Oy(WlEj=iryfigX;W|pxs|tz@Ac~)I%XifELQ!`IgWJWyDCKCV zGLoT#0;WQ*RFXoF#AbA|@e>nDT}!!;oEnUrg%zepZmFUG|04AT^MmP_`+CgEGh~eJc8b zmOnBnzNGZrt*3Oo^M0g5ibY=MqDy+|E<|~_66Nyu9+VU)w);-+fr7WylMbfwQTh+4 zPO(^)5?|k2aFEx_QXcBKTlQ4MQ#$!y+}*q?4e8EB#U_QuQR=w67vJu0pmfMNYiaKs zME>H8A=fiaz`d4P>0xde(7e34`tlPp@?OXv8GV{hbQ~aEoKS5;!Mi;vpG9s{+T*N# zjERzvZv6W0$4e@KwlOr{V3-DZGQ)VoSD8}2N@pZ?q&WcVSLwQfljgv9%{$(O#kw1AZLL#`7~F9Lt~H$L8oIACL6_l=Qn8Pe4YC*A72 zK^YzsHxP~GK#t=ZFL%o65Yz6>A+K0$fiAo8u+^7uAfx=@C2P4kNWP&}_Y$L_v^|Xk zVQw?vsxL&g^Zmf;Shba-YZ&P6TxYmA5eCf5lmkWH9|IcM&O@n{_d%HUv(%mgP9Uhj zf1v4|Bc-pptnI;037|i6=lO!WQ^4Lfxm4U*6nN5VEic%eqm(f1k5josqND^mH&|r= zrRB-eQ(_BxK$1T0@WqvWz;x_n2mhJtAgB`R{bP&(w$*0m!x+gRYiHX~u_GL0x5Yht z?r93LG%~s&*%KgYasENp{@MKxypzy;WagmNJ z2wl9K|J=+M#4Vck`h@NUIhnv^>$?O%M5+Gd(818z^X@pc^B&P4Gw!_NquOy$KhX2+ z_SQ-ueQvsC5bz$Pbj=F1iqwF2P-HWE>IRSt-c=$sG6s_6XZl16ia$EjF;B{*&#h6QyY5VQE)kUO_CMl z*p$9ckTOAnal~}wx*f=q`I&0!1wbq{W4Xu9CqTNFz;jD?7s%W0-R5k)5oCF)D~k_B z0+(n;)bimn;Jc^w?(UQaNU@#Vr=(>8;;t+L6qEZP}vQd$J_H$_2cX;8@GmzSpf1R5-0fft6nQz&%23SOw ziMS1X1zvSYyVvw(Amhm4zdK+&&H)<>v9%I z_OHKFGJb4+r5;54N%FXz2My)Nl@+efW|E2AZ&kY}(j;ULeR7O{q84~G4-1{$(nS3D zrk+;q8Uwt!Nh6TvhXP0B4_a%Hk@Mp&n$MTVk^6T4`UeZn5mSYS$w{SB#MkAoUpU;k z3cNk`DP8_ID4p${3;gBXDKBVVOq8_@A+Pt8jlv9>7}dKq&90P(G#hD?0w~vz;E|1+lrOaUidYp%^?%zcd_Iib$kO{=ce0o*gBADqVJh> zUKVmz>Ou2%Z{%xY-O!O&f+EI#QEI2zQT*sC8{e@66wJ_STR-DVsf_j9;#C-r0y@4a zG)d_wtL#F5I$s!=uW-%mk5i_MZwUPy$uxul_tr8pIu;@QeNOHmrCTWV^{8<@&p0ZG zw^cqmHi?3cFYaA6J&B?ZIkQ{#Ek*us-{Y~Q92HnnZ;E{HK;;*vt*_HlP~PhBu+HT$ z6nv++d!g|Vid&qJdNeqUs=}K}F3YkY`;cvCfn_A}xYQ*S5Ia%W_U>C&jeE#3&UZCo zmk|oD^ib#u@kS}5;o$ovyNDi_z96|3BoyL3EYsa5hH~5AFVMXvj6%A-2eYW0cnC#P=xKGSrJ@{CGTSGm0;!9h^PR zMwvy?Z?3;GMuqYPE6(PxMFXWn@>7&PRI6#+&iAklWf%6Rk8x_CWPNa2dSoo>?Yws0 z+F?1WN3AQnXY~Q)->|Tc{%Azq-7o4LrO3!{VbXfj>`M>+mC z{6^u@sFb#$l8O5Zk`_E$zS8J08l=DH-L4srJUinxrOz9nE>B2`G|2_^^4=`AWW0vt z#8WTrDaok+hO2mU;wb7QN?vDqz=uk`2e#3%97f&Gafe2-uA)L+^pdN!45+;!B4R{j z1!@`EGF&=ogMt;7WTVw=sIYKiXY*%URO;Ct_t8%jb*+_R_9j@NIsGeMLy^VANA;gd z35nX>tLCn>6G;;9=B|(vUv&19eq#5}8u4-I2-UA>sovZbb)r09DERmD?FCdN1<@+$ zPR-L{wl$dMUpJz*bz%I^#;aFpd(N@xK2kZ%a)_G0=bajrgI4o*a^~%un66RBi}wk( z{KakhcN$UnIesoL@#YFuX+czdzZ3lL#Aytsc>dXZ!TwwDv+;^2;dA4}(4K*x&HwE> zN|yJu%(2X-gfz!?xh|xRXVAC&2jc%jzKn}$)c6g^68t}j)0h5~^dG6{zs0R#f7>$0 zhGlv<$BeSf;5in^$-^AS0`lYMI83KNWqS;XI$xf|BbqC`+ug!&lcYOzYzXk=g%_`g1=+m{Zx|5=Ffk= zT6VFI&ClWz^(z!Tf8T#J^oO?<{MYzX_diIi|7*OjxUuCgRr=rjs?r2K|E1M`t`X0N zE#l``Ch^<;?@eVjb-dhV>EDV|k^YBOrHQ;RNz}M?=0`|#{J?%Q`1kV#ER4Um|A%~H4s5t)Z?l72t_hWQ9}ywhtSo;vb>SAt&pOM?DOf zB|)F({QNHo`aI|7e@W2iIq&~VfW(wtQ1RX5`hu`Wl%exojP|>Hk;@@((}D%HK)OQT@sVtWJn^5Ib61^5 zfi)k7H(q5$fp_~|*eD*za(9bfA748vEVJ5wDk2%#28~Lmz#gS;iMsmkh@jM;eMP^J zWt8xWI;5st$HQLZQ=I`a5QStUA=KaRr$a%)XkD-$w2DfY631F^7&Mn*Xng<+^=lH7rme>y{ z>#(SD$+JM@S2TSyCRm9w^t5Fx7GlKb>rn+aCn8YQyvQ=YB_C+-%jR@e$OAK5H`hKh zDP%n>@sQOsj?&IOru8U43>h_TI$wQm0R=NV*Zr1hDF2YDaM1>&OmlvE-D128Xq&$+ z>*G@g)*G)=kDiaF{K)(GWl>ZQGAL&8=H7{;v?5r?ln#zM*A)~1mS9$>3 zrh}gn-0lJ!yQ;~Xnbja^_5Ryf88@)podk0$~62CvAkA?yo@nJq={U(k*aU901{dJU&3b!HQx z_9_`5kZyZL&%glW@=u-hT4;%KQsthI1P=Ydk_WCj)Pl zx{I7n45)C9T`RiV0jfTW7ulk(l$J7E#XH0SRfk{f)61#5cYXFM=z8@kb#G0k9)SXZUIpx;VNno+IpKLSQKPm{Prh3@U4Omwj4!4B$?$-r(FS&rh#C zKImx$D$l|Lo~*Z+Jzpg^N6Ko0j;7q}zRfP6w{iUm$zqi<|1vpL^JY-o9hSeL!cO+22d||;m`RlvE`0ABz zxu6g*8C&;!fnYpnhmn@NTV4eQu}*~AN-40QU7zF&8DNsVqWDaZ1?W_|v^T6IfsvF& zz}gHOFuLdM*z0Nn3*46s+_0d4p`*kR^1xOA^4joy7c0Q@;fL#Y8Xds+fwCrWH-ZK0 zfuzEWMPNE1^j3D=RRD`5rv1FOKv-G*5N1&T;OtRpOx*ycX~(#|#X`Xpn*^*^=7CAa zVG}RKRbZUG);r?35ty~~h}J|Zf<dWqVI$CV&NXHcJ2kBy1&h4xh7(IA zz%1-JySQT{=pC{Fzv@UZQhig$_vH{6@VK6=4!8}vY2yis3x+_?b@1M~RvXai`yy2m zu^UV{9<0xh-wGz?w2#@&vw>mC3ne$j2VnU1@c70@A3!f@&vzZ^JD`0bs(tCfaL}K= zADDG~KaleUOR}$N0X#d_dcAZIbVUURLO$OEeUH>rHH`Z~L){j>+gO8UB9m_}e>~{B zB^2*mB>|d^g;)B0K7eUO{!+|I2mNJ3TJH=6z@YK;Wqcz7I>iwQdamz5ub*WZ2gfw% z26%N?=Zb>C>I7kFA6L-N!tt?OS}?q??8Btf4!VanY)G@^0_``sHD`*?gDy8=#TA$a z#=?op!?%M#%cHHlr+NT1KP-CV89oGB32V5tuj|f!Pk4J9Zo7jn+Zvj84tgMe_xx>c z(j}y)>6WHf=K-VJV^`yn3qadFSYLKyHjoz_ar>+*0@_J^K0>qe+A-f0Bfe0;h^{Pj zRW5*}{&$_q8aB|LKEA&xG6S?8mFzxUwGK26U)5xk+z8qiht4YqDuFitb88lfyI^qf zofyltc+ikuH1Hz%1xW1Q)_93k8&n?dZ8#FW2grO99KI7`py4dYJJ@v@R0zdu-rbI% z;_`;M^~PEd6I}ehZI2-_c5Foa;v^5quT-vo>=A@CN*f;6eop`ehgBvi;rBr;R#n^j z@)T(EZk6I2QU&>qiz7v=;z0X72Lv3i1lels3$n`m!1CUwx1^a5y^$ zH#=Js)ACc3+oWCs!=3ORm0B)Pr1Q%RR!l|aB$?Xn8)o+hJ6tr`<2^v8KEvq2qglpz znD&;Z1N$EK3*{DpAbMAsW9{J=s4b{umR=!(r2AZD>2VdHx!sVtF+CZ$y17^-4GyEY z=B3u;DJ_)ejA`i{WdTO1_zk>Y!ccxN{B{oSb7XSdolE~?GxFIye?HOtm@-ML>Gdx7 z2N9F?>9gNqPvYvE*9$$S5R`l~tuHT$1b(GDqtb`(kuG|Gj{QX`@?`6*7MYF((TID7 z>bf+*kUA2e#<>#NyD!(Am+B$TXTE29@&$+q<0CT+d=ZqXt*c%K89Je2kMi@ik4J$O z12a@)`zVwU!Q0m^1Eprc%C?UcE-1Hw^u4ZJ0(gvH9(ZirLdd!Q3eZMfE`jK^KYWE&P?Y8rA@>{b|j)`Xh-KhGp=QEZ|vqkt=rB2rAF`-?(v_ z3)Sg9J>`zxh^D6s&LggSo5hL75*qrtwBw-K`AsQWyTq9i(nM*cxTe1`^5$0mOL z!!PwnzPHEI)w~Q%k9C&CY~?_8{#A<-RV+}#{N{kc16ve-8{YFWcO13VKDr%hbwZs3 z0V?mVh9G%Zru}hqDH<&4mXPoKhB|#JFW0=DMENBj7(%qqp!tUFc>)(2(AXsR8^x*% z$%_lB&1^QJu0nk^CUK!&*2ZS{x&qXGAamR@ogGb|r}!BH3;#tt31KNxeZXBwiCVUTriIl+=b=k}bk}@*_|)li@|H zs0+$p?T&q{5`qfy&*)t)?L#u}igfYw-l(!v;{6t#WRz66$jatqh5BwWYi>rjp`7U} zHdbpgs=8UUNI7&PDVIDgKkyiZVpkq>H;zQkEM`CH9uX905PX@o`xPo*ZMjs~y$n_S z2R7X0UW???bF9_&mPjsf3LH6&sN-TgF7k;PC3#9>nX8>p;RQ{qOZ^Bkn>m@E+@y|@ zcm0>LHYTBLq+8x%Zf8`zm3CZ*(Ew$a1}OMW??oBI+Xh!ax#8aCeUr@AWOLv@6Jql9}$jN4>B44vup2Jx` z}L+#o@Eu)ZFZRUDLx?GK{Bts^e48P=gxp1yM#xr3O}(jJbr z=ph>7igviu^B}*8bWgdLH1KY;9PJz}Ajb4*3epddC~ZX^kA!tSk+XHlo_#tb3Rcyb zz0)c~fn>juuq89d%0>4~dBrVC{|~Zk(zFFKEoxi7w{Z!I_w}1^^%$hI`UrVF{53F?)GNbfVR&(9F5C}}0lnpJznSgirK*ff2 zv)iY0dvl1#GoW2BebPiP2DwP8^v9hlh~cdFqRlt>kp1b&9@X<@DC9Gwn4=X*!6DsU zPWR(MI>Tpj^VaXcBK(BsN010`jni=6@9`j7+uq+@al;;%T%DOcRtn`wL2g^M z?<~T~Ad=T z2=^yf1^H1X3wFJ3`fdcIy9x(#RbB&cs@R1?Dy<-R$Wl7uiw=m=A8?&&dAM=@)=~H2SFmRggML^7;_ufx!ah5QsQU#Ll&GMG4??+ z-?0yvnvzE?E5<=0#?E~S&542}S-vOT)Q`7E)2SAR# zz+CfY3L)EA^z@Zis-6!h_K=LuKRO1|2PF0G+$sQOEuUkIf~6of{$iDJY%qv29&&x` zVFS`HZysljJPC3&*LH-O7lBy3zl?-tDJVVTc-*;b2INYviCj8o1M)wfzb(HU2c(Us z^<2umL2`TW^%dLMKr&I@e}k+l2;YC=OMdMLiaJ-Kd+vP&0XElD1+KGk(;VeZ7ViR? z@UN8up;S;Jef7gjrStuON#c+sEdv=i z91BYQq{l(hP2EozBtSvv$Wemx5lCvZoz5091JU7#vOQ-*K+y7xfM3=Hpxy80eri;R z@`EPH;Kv6LG@l=h9E z7Zq36Z}1urgSU%aGHY8eO8FBUwimwpvRClB%6c4$R;c8fQ}<$TIa+;WZJ2gxWs zeUMhQcm&yek8_1C=0F11g2P2r!n$rw__LN%K`3ZbUu7HQNIB8X)=mmVIWzrN|*za;e$Y6Ul)FDAsWtRXcVvB)A%( z?)lWZr0i(adF1tMV}=eY)npVbUpa~f483{#mW89(3}3kL%LvrUU3A)^`WPximz}uI z9fXRJw;z4dRY%bu(o=p;qNrlhW%DMP4z=<|m~*@uP<>Ow?%qefs4&P$Q*~1YHS;FPt6clG*Xh!V=Y94EcANJw-lS34fvR0yO+SX&=OticHJR4KkCAP~p;> z)QhNt`XbR$!=B7&V!VQ5D%2T`k9nOH95hDd50dQfzimUE-7DN)ZAn5yo*nmW#)nYZ zJ@?G&_iaeNRwNWfEJE31`;Hcl{h;}8jp%!?fWPk#OzF&BaVNTtbWqvoc=BXVEn#%(;2}`Nt$;))9dArTu zQRgd<4tmb9ZQrQppT*Beq2Adf-mpH5|Ji(w%umPvYrfxrD$OMNI|5*iWqk}(cF9YT zes5QIrwxAJujTak{rvwKUswOL@qe1XyEF3-c`At{0 z|E3foDjijSUq4Z{ghZ{gM(MZJ-?sN;2G2dV6hNdH5eyu0JS_y4E)3XHO;aqC34 z{;WQtK;*vXpZQl6eV)rh3~-a??1&dNh4FJ7gLTw?f5UMq`{t%QnxAhlrz(?( z)+5wA*+j?NkUy*U|6d#Nmi9NvXL;1i_&Gk3c@z9IyVtez3WR?Wr}R{I{LjWKAC16Y zspBKN_n*f9D7I{Fo@lsO`KNJ;B&kw#;)azTX^s^qhUfAVBVJ+D`6107>U@i%VelN2 zT@SU)@xkM^pVj|gaXT;V|JimB4NJ~Z$H4-hcRB6LlrhILDzk znfSAKZRvv4`LX5pBx>K;oXV!_^Gcn0yH?$&p8w$epKrvd_$B;1_N9A&TOB*+^1MRk zU)VS6{q~lW_HVyELYF%{@mKu*Z#QB_@Jh?yv2V9H=Q+oZNkj2-?9~13?FZvIR7Dms z5E}z?>>%Bx_S*yvk=o~Grn1<9s*obGNkY{5;>q9kr}<74YMe}u=kT+BOVBfZ zNzj9T<1Y#NJn=XFlAzCXe*TvPeV#49@s|XBp7Z{{B)FA4fQhkoNP z3Hm(e^Z$~d&vQQi|H~xkuGtREQeGnqJYyBIJ{2U&3!z2XUpQ%y z?X95N$-XYs$TPAFdA)>E2VYH3i78FVCxVZZ&Y)U9S@z?xIxPy~UF$6o4`(CFI4<&;C_p9hPnNdIu!^ zPT(#XLXyDRg4cdz%2zQ(&&RBnfh2G`_CZoAWk#CE{_WK!%J_t^hJz+)i9v?E$O(`gZ{`9 z7I(2?oj1_3&QXRzBUTLz;KMhP= zuagdQdAX=lw$G^9S^3_76Ag|kxGV?aW^00~@F}%s#q$D*GI2}hX z1#;d3>HHp*#dODjM_;`&*!%~`)Vx3Fb*>6zmI&RtU!MT7?Bd)?-1mUj-McQ}aRw;4 z_g$cTX#vTgv$1_H-9WeS*-jOACeW&RJbM0YDrJ1Hsv*nzOGG9&*tA<_U?5%KL}x7kpM!qLAm38YLW?9xu~f#&l1GXnbZpuMv; z@Xm98P)qmYZ>)}hcGfkgVN(v!ksr%XTdD{; zQSkZ4Kn{>$TltgM0OUL5fb(+dU~FGy`&If27$(0za{dq_kUy?jxl)k_v`;?UwAai7 zlz-G_-F=Y(MtZXLdRebPi)OF6Wc4IyRS8!tGo1i!kyM>ZB_Gg#nOvWw-wk?Sed;d1 z*9TpLtP3{h_k!UvwksUsa-h{R$}E>X1p2%hDJ~WApqo}W`Pm}u+LZZQZuSg(kW;^Ibfkxngepo=+BpI-w5R3%V z)({6o!8AuRGiNy+7?v*nfSrg#`kj%cYfdCTu&9TbMWP@@oO3 zuuG3cLmEN*#?B@0Oz(h+->&6~JR)FZ_}y+vH_X=ESTb|(3FzP4Z6EMB9gN*?rV5{ zHDK&|eekh}2^fzqmwT(+0frrW4{`ad1as{OuaEWbz-;KS-tz4{VE){>aH+o(7;(KW zJt*r7h9M^Y0vGpz`Oe|HVRFe}lzM+O)pR`=Mt!7-Uwaiy-}0N1-o6I&CYLRImps5E z0Ja}l%n0UhZN6U{EeG?1x7?m=;Q>RD8SZn+{a|*Dlf}bwE10@}98Q#129wWO>yE#z z1JjK!LpAj6z%X1)<8@3Y=QC&s*9zpS%HPPIlH6K2>1+QpVag zCKXI8-EJ2}90!a1jmy4{r-Au`i2TQ+4FD(F$eXei!T9NtmvKS#V7gO!YVCt7U?6&Y z>=EZPFyUXa`095@F!v6QO3erdGn?p#f^6-xpR47n&7B*;T(*=5TUZY!mDvia-wMId z!{tl->epcM3C(-L?ZK>MI3s6=Jec0=ZtToy1asTARftUhxfdkw7bOek8&;~EaCHY$6+4^U*!N(*e@zAV>O?TO-RS&$FdIzRWHmOM z(1O9U!S(BTSA*W?^j$kYdx422@9oK5o?y|nGjrRfYhYS;R>DHN1I!K!lRVnGz>F@+ zY+vgKFxlO@=0x$df!?B7?{Sv>8w4lYg_}Ue#deB!|6Qg*13mAttR-bwD478gPkJEkP07dtT z(F7w^Fsu`gy8PrZ81EG4G^|?zW=h=hJn|es-c)|L_ta`WUX^nkHRTa`q#4Cqc@wLPP9 z0}Nbhk34;z04hzigGMH{pvR}2yFZH_bkYLO7k%^v9oE#`M6=~U=Bzud5IhJEbklS`?E%oWz5eL3&Gp&+;hLB=w{L>RyBxiBd?ug~(&?_$k_GH# zgX@~kf1CYWUT*8saRd1$gD00SI|^hq#g6L-TtP3iZ2c8)BTyz2A1@`zgZNf;{R6qd zAT76`sgxxd80~#17ou1||IkvKjRIoC=bq z-81!3C4pS0w4JqQ5lFqdE zXuCC^E%~+&8P1ss&|bD8hMGK*eQtN4s4=(onN>6(Ut}kH>i8E*V^hMRtG2-?y7WaQfNuyNqSKJzWnE|}jBL@z0 zvQq{ME9>_KAj&z_b)GqV0vJuXPM9wNluqU!YqnGd6>W#DY~|;OZ)J(wYf1))>5kA< zjEnA2z7p0K#XF=alW$g4bvwUA=2a|gjDsbVzWrBuQl17Pf8x^}LE)h&v#8?Gisobx zOf-0~gmE{@n}o4dGn!F4+^W>*I^vPTO5e ztJa^-Df^>RTcTW+A}y*_o!}RBe2TjJ)Y`Qj{ZXsTCQJ8q2pTiqudLsF3uQV+>uILC zQKhn>umU~MjAhzS>QM%2OisvWhnFDlhgFO6 zXyhuD^JIV%Rd(0iKT7FD%?o8qL<5b`!gK1vX8Hltb`S|c=^j*nez>n;3k|Aj6&_bT zH-g%NFNbdS^`UOFxwf0uIwU{kmXF>+gSv;}B$_KcQPGslt6D%ty^rq239TV$z+q4( zeQpz~lpC)(a`ZD=?&mYS7`_7y3omj7PF_RNY-JgtNe^P|vBBGq6VXVHH`>47QK@~C5Xyg|eg8636BQ>Tb3d#!MP(tc4kv3r%J=)D&J4l9C>1!-cyON{ z$_)%ME>gXZibHle>*zP5vg;9t>q>`F-s@s#lUOB^FZTo`#txwTb$ySfuU}F9abvoW z-V`eFSl@1N;y{_y!;NWIDpBh$C4IfyB2-(yMp$lb1j;fB$prOTp`mi+qrudxNY)JA z7ye=z$r8$iO8d5;`g)@)TCt0e>8pmlZAm?emkdUUd`<(Dq(TYZySh@$i zWG+YX^`rFFG({mzGSX^UC{7U-dS#+d1V|=(?+Br zxDPSS&WnvQ9Gf_ljp83O`Rplv$i3v9lG<7~lv9C{We@XFJa(JKRTmlJ!;W!+ow)^N zOE<;dxo3)E0}DP$)r%rSuhF2CLpSm5@px&W3mHYHxmZ#gno&$I@`B^EJW)kkd-n57 zKP2_Hf4)p3M&#>MXhVMsvbrzBk4r6)dn_|Vv-2xu@&WBKwQ4Wou1U9~bWJej%Nm84 zsoi$O#HJh9&v+$MlFW1N=H&z<+m3yUFFJ`3$+hkcmlu(cK_Tktrb##C8*g2^^~4tx ztFR|;jt)ZR7;~P*Z@K zTaaswYHvM7nD{QWb@##{O=P=fe7QH_6|xG|?@pujASM{oo(}2&v_MP0Ie_S^{U^1( zyoj%LclK~(4ike)Z+1+7jU_@h^6fTk4@M^bR1a0QY7pD1W@}{jfikvFM@BUwoicV} zi-l(K2cY4&xo21RR|1b2es4EmA%=zr0_z{%rPNhU(2Hh}Dcw019Q33jN{iFv?dWI* z;7bg3UF_5cg3Ep!wRstd%#_|$tcTnvm(#qCZL!0j=-If+TJPdUVkkeK zwlz@}c$(K4vz(&?rdN^)2YLrUW9KfWpv_}G&Cqf^>|wcTi2dD>TyS#9z1BX=P1#HZCikdFaj;m(2EtDXUKP@v?H zFB?d|S6%R2rw0UAb_p&x-Uy;>kGEUWKL80g#Z!|qKZrr@gD!(X2r`EDNe@m5fz%24 z(-j7?z}x&R-F3(XNYw^W5}cC2){iv-biN?fy`kpVQUjn{d`)!O{XyW4cSs>D{3xS| ztF+{O{6TnEX4Af#-$1HRVVeK&OOU$D_2PK04~Q793*E2F0SW~nUT>Zp0mXHn%rshb zKse{!`>YqVz;%9k)D>?DkZuOu8!Y}HJ8|XX-BU>*BmB*(C4>OEv&T|)Kc)wgK{>-z z)Ggq%*?w+M)+&(AHFN36;02j4r>0!*&hCFL*~LY6vVqX9l}{P<=s|+Lgd@dc_Pl&3 zv)JUD7)aIL-{2;`4M=+)+7#c30a@uc3F1lIAoFeK6S1{iAgvrKB;rs4QjyjH(`Qpb zG(xZ|!Z)7i>9<kj|X zO`f2vIecnSjXMY*6{pWx*akxD@ALBQ76B={Pud5hvp|wF_wgpZ2H;7ryJ8Vc0#WTd z3>?v2!23>C>0;v#5Gp%iy!)mO$P|qzUs+rUJQ}9m+sE91Kjmp_+(R+o)3%S$I(Y?n zj@0?BFI@=29WsGI3%Nl2rNXCA!TlhgPp@*-^A6=^qMN!vJPqahkcdTCsXR#1+c9-r z=mMTqHLhHJ4}hPm>A6QwK9H6-G{y|}ff!e)^|^$#z{7B$#=X=6c%wG6b?Rq=^fuZH zHsp=K`1sYWrC}|U29CxfUpJG1g|CLI!`zJ+w_|j9;xT(X*Hsu-DkA~nu@5J15-||5Q}_^-GaVEN5A`{k|{u5*A`mm3V9SKR@z;ec%G7~1TY z-XlitTD0lGgep^@Rmfs`ssSSl8=^ z!dvd$Ecb)wpr{Knf@4QuaLy)-EC0)ev=(r&^aV4?pd*>{4FYt zj+{L&QifVNX*>5+HlVbUrq+$u>rq`=V|&DMKyvSns@~lKv-@@1MT)XXD7(P(@t580 zs5^G?s&{NC%4^a+yqHgmLQPyXE5kpbQlIXY<^^}i9!V@aj;5e7omPZ*O*$&^p4~6A`wc3wc>XxqbqqD@&o@TxvO~k6i?4L{N}>3I znM=%pU8uGFL^|y;d*u0Xw&PAFqL|zEYWkJ&sC1S6LG1blRQw+1<`FK8N>QQ%S;Oq8 z)yHJBkau#n&lJ|NcL>Qx?#X`lS%kXo&Othv)5y?8AH3f+8BOw-Lo3$@pgd31XZQA# zXn3wq`F_qflvo?XGeuX6qE?@J;f*R9Qa)HH$fP3Ke5?4bD`IG@%3BH;9syuahA_GpA3?aLH*{8lmb=pUr)|LuWISiM}Whh;UHx2|G#BjL$1mQ*Ad zwTg9Lp0D(c&*xB&_;LjAHm51dx9-=>FP zX9_z0A+O`xPD1|^wCsewTXpyTX+Pbwg9N^z=iE-ez8U}az$!gB2-w~r*t&`>-6;gj z`84)#@%CJhgjH+|_`Yg=<>L4G`qzd|t5}#xP)K3@j28%Yt<1q+;%!fT@SV@#5rMyz zE35V2=`+`vpoqaTPPE{DoNtv`Q*5l+%`>M7aa}M(s6TXUO(F2#8Cd_>HD%EMnEwz@ zP;g)a%ioV%eM6Z}f5wv^78)aV_!ye{;cjl<^R%lv-QvXqb!7< zxL_6Dg#G^?#(jv!t@^Rb#P8DP=CRV%zObwQH_?xA)y<}`iVc>8pJe=UpOf8m1l}_C z+EqTRF|PS9r2oqUt9&uw_bYMreuU2{)^?DZVAmwQ|CPMI<$vIc{j+$i?9BJow=)#K z|9eQ?jhNMVtlIAnuLIT_OHk}!pPqh~`Zo!^!u?A9J39yx_P?8-@*r$KHp@&F&4+itQtv-Cuui57r++1{j7e@a4~z2t`KtX*hTqRWDyza){aEYO1X#sfiy1;* z;|?amd<7e!KGrXCjS&Cn+8e)B>|*-EPpJNBKgA_y34G-=x&)p9qCSG%#-$YXm$vK| z>$SIkU**47KJvdnPlP2a)B3GqWo{{M6(bMY6L74^v-M~3U3>&Z9@db|@H77}*Da#( zjr!Sqg?<>UqQ~f0LYTC9IiTWC@`F~5)*Kp1MTcW;( zYx%z=>T9@`|68KIhHLr1CF*O)w1#Uuza{ExxK{tSM12j{>i?Fgui;w#UtJ}g-%hz@ z7_CP_9qJ6B3(xWR`X~OorV!%$yp31P#0~L~*zjH6*ox?$tCQn(-H`a^2jc-(%7AhD zwIOBjG@>_QBo!wUN34$qY>i38L73vO7v=L=Y?@N30SjxuPjd(piR=mo%A1`Ft+&&V z=y9^Gr?xL*v)lB}9p2H2=;haazS|v(7)3sGzfN&LWbcM0BGs9JZjYd_r->cH4P3r@ zTf7=S|2+1R>E;r|ux?R{SyUcTzTdI_O6nuT6qB$a$-xLei8|shm== zVg|?N4TZ5L`KX9__Y|x(N4NPLxf|kiEjJ2NC_@ar8nJ?*Taef&n%PGl0<14p!d!gB z5s|jDhmT7NVovh66L=MjSeYBsb`LxN`lX2jx#qVJtHYJpsDzyemsNA(vzH}4%k}Q# zXG#f3ku6Mb_j6xtra9bp!<)1CH(dkNemERZ-k(z%tz^e$wDM(&Cvb>RYiyQI! zD9;}Z(w+-b2agVe11q0eZHs}1(k<15Cb;lOXI=29s&+#<1;9H2;a$B^I zrXdK6nALptj|9q-Q38Q=0oVu+z0?ltR=@?l#1-+xATEWV?mMf?go$w z*{Uaco(E*|A9ht9*9OHH+WWi8d-P=nf6Y+r9Cd@pb{R4;_b2*i8Vxv7p;Pl{1j*b5quBTmliE>)S6m z=z&C~M|yGOD2RKvHKqvf08(ZbT3sSGP&SOFf?X%@(cEQv#vw$AnAAV2#NQK}ub8ON zWa$L~7CGPRPa*+Fk|BDYbQ_2b-s9}>dID1TlP;%H7C=@^QBrVD2e_G+o7M;8K>mW< zn>5cSAX{u^w%0`y#EWLrj`YlclFzdVmUY>n)-?LnS>_W+bL_qRTB-+xsuRoBFYN)Y z?vGoPkvK>=d|P&VBMd6bEr)mVjDpB=!d~3Deh_+H%zkDIF{n&koVLgOK-S_#*~dFB zpj>MjfLHrVo*?d$J;wx26Ar?^2QkZf%@i0eie_@LFGuE z0r^EYP*G)<9_c>?S|6UaKY9cpZcCYeo$3H6xivI4o__=?RxwN}ia5~plTMzni~yOf ziB&#qG$3}O{^`|i-JsTdom9c26;z6n?VMTrK|8Cr+1tbr6pM~mMm)a^YN1?b2ag$p zdWyph)*IVEjqC|m(epA;)APF|b9d!)^IoUpq)Z_w@I2h$9<2(RJ1$PgpI893?n5d; z^p8PFimT>o#>#fNf4y%QUJokolXt(kYXF+*JNUZC%s{PjyPe$02GAv?&MmyG4(l(_ zM%|q#0M*dB!#Z=fK{aG{=hd`S(38Dow7z!=wDy*i$Uim$jF)r#gOeSa@Z7`d#2mzg4Z?8ONd2Vtxvc* z60p}rRcYKBpvm*fL;q_XD967cYxSoAZJnpDHHs}kJtnNRQq>l8KVF^YB=G><7m*S< zW2ZpfYP%C%ya#9+-%lQ`N(Qa@^Bb0xX#ncK(cf)33i^}LHPTE>pu4+RxRogi!0AiL z$GS$);NF-#?PCP$>ggueUxtIOb3myFT@>gqMqd`o4F*jSHeK>p7^oY1D%pkiff~M* z=)KMk(7qugm=MJeYHI3&)1ix?TjDp%6Q&8e%~RrABesF|+4G7mZ-zR6FI-2}~O#<7i;mqG8G++G9sY|x5w-h5+a zKh}CDKyz-G3bfx8Xm}<0fbOl^myUUJfoA8sf>;Aj&@JbWRX)c7+S>Qqs435amfXiP zI_#sM!|R^8F2Z4D`|fB*UbzaI_d*_#?OO)bjXMM%b`F8ov}>m@9V@7bDeSVexeJl->m`Abf$Z>D9I06_C37LI+LK*$6WJpgFNW4wMcTLY*^WEg6VNg7l_&QTQYJ_E{TZ?iO{&Vd%mzN+2lm_frYGC7xP<^2n?8Ip@W3W_x6((1NH zfHG0a{UB;vkP&{UM!CZiIQ%m2)n^!iXan``_u*I9O+nDly6fZ0=T-Rhv%FF#V&FF$)a`ld1>#T6WxT850iFjn z+4oM9fz0a@g04N6Krvj@^`y`+us0SDz97i}p8k(y_UBtc_~tnICr)utzhea0UmV&_C5{K&yQqZq9`Zo$bGy;)vO6j{F4g#l1z(nsi zS>WF&KouT9h6Loyp5FMBgr63-G!*9T1#xK3_VoLPEfcqjlb+2%lve|e3%#wu7THR6 z%W4)Nc1M*38J7q|!f?WoaYPn~yZ7*RRk{NWRWR44^)6UtyDj_raD>=P^ehq?Re+0Y zkT`;U9ipwHw!6PM7kl#l{le+jmUx}^NcL1>u zURS!a>oVe`ebyI+^F)*ujx*7keAs7=hgTyXL?OC1O?DayG9;xe_GI@VT)ZW@L5 zB2C?r#LCfP1ZN{IE*C^2B{#>Jn@c%JsmKPss1HHPo$h_>>2@H+=&~}JTW)Aw8H3N# z)?|bmab7PQzl5aKt)`wjiX(Nwhc{_coe-PKa}INA3dBeKuvx(L8j|rG+Ffb#63KHK zA1ywbf^-(uwobS-B4LL+oc2$mkODuo+VpcKq}Jw^a6W(rsTzwX?Jku>jFwneLvRXG z&fpnWdLD!1b$5RW_Gv<*MpY>PEiF<`Jy5DZpMX^ALDJLz5t8=P+`5pt6Nw+zxiWfM z1ep?dt^{kXq{(rM9pBNd7Q27x6w9B<%NjpTP7uB2zS1Q@x z={;U|M#Ou)MB3+qERu75V9{~$DH6RcTDl?I0*Pe43AWOGjU>sfrLBS#ka$Z7Q&!zJ zB(ovwbqeh`l3~8O_rZ65)9O};Tj8MIrW#+wAgOu%ah(t1-#27&#PTr` z7!z0}?u1RMw`YhL{DK3l2;TA*oE-i!E{!NT_>( z%)XWiv0sSWZNaICZy4FzGED_Y=qA3|Mr#r=@$~ogaW5khTXNi7f+~KtIzQ6Fpbqhz z;%(h0F^;H$dF(WwyJ2mEX$ERxM2MF;zgiE+h}iZUk67hc1Lqdc{U12o5OWoy6cc_Y z5?M#FP;qcChgTV&xTQpgAaweY+5u z#N8>5$TWo_Ma?f@)BP7ow~%mP8QT~qvOks~_9P<>wawCqDsJ@KJ~jcww&&G|-CJwy z<@In%Rt7(W6PlYmS}2IPwp@5>7j2Z}Ojq8oh%H=4 zsPYlDWKYKt^?V>Zo5Yth6NjJRuV*>L&4zCk=fE#~h(hF58?HC)w!`XO?iTy1gyR>s zUsb3eD+Z zc34&bSOZU8&)i>!Z@4o-!XB)MpBntQ)u%8Dh)tfJQXnM;Q6$Albg)=xu|EhYhY z%bs07zVQ}tuNyL%UQ`9DYB%+7fae_vj;@`Pk9uR z4*+LEpslX;CZHB659AI0gtbm(^9OC7#B%i0G&M|^fVxw~HHei7s6>PHkBdiO+4Bwf zCD8<+3fXSXm>>Ww9G@&7ZMg&N#;*0(fFGj(%$j2BF-5#{IV(fbqJS?##JKV0XH9pK-nd*iU#eu?pZo za40!dN09~ucPTm5Zb!hLq+e$7J`&h@v$q{}p#>qQk}qW3Z$XHO`HWl62H==ynx731 z14?GxwJG}-zg+UukBH*#9N$S0YMqqg z@OJ`_>J?XW=rxs=Ja2B|D?kcb*kAU!3e_VK#DKPXC z`=cXn*dnJ;aIj_*Hjzz{==IGEgbpRr#B4MIp1VhH@EEULzw`KIGn#6Fh(N#0?p8Vw zxaQdzM!pePUki!W9n%J(V%CHpTUKDdYN^Y*YZq`dRb6}FBMd_12OBoc+5r!x7fXZY zN8o!ty7P^XE^ypaWUo1E3rrc6=`vUoFcp|>$~^53Lf`h(^b}nJ3O-$33XY?|v@5dm z8+#x~sZ^iBK3D>7fUo`OMRK6lGR;2m{xS%(IDCvskpyNHVR^R;uFpK zDZu!ySE}7Q0vjmZ8GG*WYy5CAsnn=C88+{p7wCFy3E#!++q9$mCeXh&s6Ov-4A=}f zmIs|WL8NKCWxZ7|HfY>}V+^{1Uo6c?h}`uIKYmNI*=1cLw%|kJ8Ti=@E7yEhbVoT4 zTaGCVCmn1;Bv%HzOWnfp6Y;z!#?NQrr@t&dxNGMK9K>ccp4Y1J6Yez=sA1)NOJP)+ z*RmRz%*EpMY9kRnsT7+~v^(&ao>32^R7Pz1S4!DQt+kb`uE(jTCv7$CfaQ*by&|ZhpzJF1pIs|+M<#}pTA9)uqqb$S$EuZa|oGaE}-d_%bV_vIp- z9wTuYW_HSF=}2nNpvN0&HElAkrKHNCc-P{A&`^d|uF#f_X(GV8fop{ecfjvfVS-tz3junHr;AwYiW=pRV>M2@)jz>6HERgM$dC zduLxmTP9L_D)+8}D+}o?-w)rOsDxAkcHOAsx=i#B2G;8uPr#2)%R7i+gu1wuCWk@PfkCJf1q~d$3C!aWyoqY?iZ|KI%O8|ha0uo^2eLO(?tIs8_!XG1Ze-{PGQ;2&nMN>xJ$tMFp= z&o2>p+PGe{uHsma9)WMzV-)un`u$f2R;Rb<_p|wmOg^Xo2lfBaz}j8DuZCWlTZsFW z_;STlxy5`YZkPNExo?0ck^D)T&+I9_{xld0h?uf7TcF#kL|0ocZ|xiitCS)*sd@di_t_|2VJ77`3iqRPLS? z{2=^jcg{<<{uy6||ANzxcKz(bKjhbzkFEN#Q5Axs39CGLYqcJR)IXwC9PZ5X`xmz3 z|JA^X+>=^=B@VB1F6v+5&+^H~{cQg896@o0Rpk(`*2ntf6#Z7QGlZZ(!P+yMVHHcn z-~38{|LK7t4uW(OYr4OtRQV_I`PGD<82#7!X^j1V`_XQ?M%cfxLOD@b#fZ(EQL9)m zxhd+$xKIrWr&S!=d8Tz0%bZFHaU~V&30VH}b?eXSy(j;I`^o&@#np;GBJg(w=@I%U z>9r)(DU$yFZw#Y_RD?S18`%)SA1>kdGoH6^m^0wXR}&Gq2x&g1;I!_MhPSr*%e}=~nAttw)#$Sopfc z=~wdV1VUO@aU$va{@TItr~e-C?+)x_AK|ASf3wR%ThJ=@P&xc*-c%~L-zxS#{y@MS zDH5kuEIP{#tC*KVP^@8%iv$HLHndw3_cNYspYo_5?byZdKOHLy{RDsLi>d6V`Q6N{ zg!;LSh3Loms+)*Vf7EBoALa`qZxG_YxHJ>|<#ds)tC)4=qTiow@PB;#@2-+w{#%0n zTY|o3|CXSy;hO)q1bq$H{J$mWYq*yGTY|oZYx%z==xex^|678-hD>X?#`9Z(zJ_b{ ze@oEUaIOAt3HlnY)&E5aIyRIXN%4?c5*XJFYDFvQVrAW?Q}-y!5UchLs}z|dSWoGa z!ntq3h}7Z40UGWEz-`&vPwi)l1Rj30xl59UxX%?OBv9xg!SLFVC+G^+8*q%#TbKxu z?=!kNzWy~ZFSx6F9?`&h&WL|XJc&cB56dX*Eef%Pv8;HRgPQmr@mGZ^`%>_8*2PSD zw-Dm3zR$>~KZ@@@wdAx>fC|4f)7M*v#vL9_3!)AR79~)*deb6oY3@Uhrqb zFWQ{ewmK({SSG!$Jx*vtq#xg@*ss&XCT}X|yttW&DDrCgDGeV78J|U7*;gV7kxv3&`ekXwW>V26ayIL~RKk z&|)dCx+9YVs)pb|@6Yanw0lnrXn z7NxxgrFAz3Rb#3_Rc(K#kB<&0KiMNkV zCnlKc^H-2Fx3u%KX#$0Dhi=!~ouFn-o@w@a3#j!d#7g70gJx(-3XgLc=uwVXdIVF0 z9&6E)JXICY#O8;aS#?+5uhh$4Dp8=eQ!)08_C-*;#MP0-O#|wz!k^VdG(cOrn$>qB z6=-gZ4>?>%0;(*I2i?nbLDSs8e9FTFG%3!IJ9|)qMvF4_C%28DHLWyhZ?y;1C5+`u zN^(I{j5n^GUKR8jAKA2#bAr~J*s`&)XwcCc-oWxf9<;C=2bWPg(BHC=dZ#sYVbe*_mr-ipIkX>iqck2a-{1l*Rw)bKa{()# z1AYAL)DF;$FBGhlDFBS@BYDjBmG@QJzhL9V^?>ac-|jiC3F|K1p^hJ%1I=-_r0VFy zpnqX@HpDWaqnf&J>BrU;N&OJ)Ew`2 zjFtl}ZwZ&InQYKC@?PhE6M?2v^7uQZJ)kSOtC!FSp(j1f7_} zWQ=-Dprv#qhOE{P^j&o$?}f&L-aRtieP$m3?m7pYSI-4)G~%Wwehzdm6m|P#SAvG1 znWMU81Yj>2JG_LkP>3;1AYJI}zrlZP1@6+xSS4nQr zDYj|Jc(W6*9j}O=T=N3$+u9AW`P85`JE3E}?J;Og?K16EdkVUGY^klLKA@w@AwjY` z5Oj=g1yz3i3|h6LTo%49py`#opP#&L#UFSAxx0XtdoP)j^+wRmnJuTRe-1i5fu~eA z+kxgLrXv$uR{Bo1vX3}*0(5HMh8fUCz?Snqhun(m) zcrOL2*rU!{Nlc*Q`!$C9wHs)V>^a5wNDB161ZpN<%>YfJ&<_o6t)SQ`do+Qa0yOA9 zrF2gm1MMxh>~q9JK;glCb?S6K(7Jwu!DZh;P<}I?uyd9kG#QEVW{>xSR_3jxS8wV; z|Nfyzd*;bN%^YYB@u`ChR*-}p4hHqAW%UJ-dmu%*ZJ_nIC+H;GbCekkfs)Yv2{D7$Y~6U_`Fmkd7Qw$B>o#=W4hQz$aL?IS35lO=sVg+M`d zp)=XzF=&kCw$2bKg3uJrQ|_DeAUeRpEWZ&0MMjsv@QIc0$D8rnn%#Xs!cO4Gp!^hw z-rbeiY^M$)6lo&yaVgl;4(2AkbDp47&gGiMn+(j9sZ?oMeIP}D#dSt>2^3t$y|}d_ zL3!cIhbfXdkWyGbG8a1!+B?P}e6k>n4s>4r)&$JzU3Rs_hQQFRBQvV96L?LS2lOEUxW&t5#3PdM zy#?+Aba@F_^Jy8mS#xv5#5F52Bol*(2d`n9KK1}j{>2>}2ONQ(yQ-dNG8UK&aummL zSwM>`Gl_ml1?(S3FK@4JMihEv39`fCNbLTWP;vG^#8E;1wQl`=Y@G77uI}s0z&vB& zG`qeBD93r*x17mCypKchia-KX0*{LybM^zp`e13(#@qO%Qo~vQ&?dy9baorvt*?kt zpZan)i4lHr&$Pu}gBQSOA}g;_+XOtyZw~Lakw=mq%O3_(r4jA>T`hjP!-$Qi$K+<( zam00?ZmzPc8;J`IIDHP$K_tG(`$hI{!3yY9?%ch06yHnU4g;xRjJN zZXuP^532@a!w^nKQeVj76XMdoFm1mGNb;zY^_7F-NDM#ziiY?#lB1@nRt}s&()L^J z->uh1Dnc~^12F=>}Q~H=mS!6 z_#CRo9)X1H?6Nk5=p(6J<$Mzstw_Q;aqBtJ^GL)s~d$Q-FmpE!HOmmLYYA7)%wpN1rx#%{{p96<8y&ZRGQ zJx9XssAZA!8d6EiPA!Rkg5=+pQHp5gA)(=hz^P_4q;eQVD_ble6+buY1BxC<*dwWe zce4jl&)yxHs(k~AIdb*bF0dd4ZOf08=hEo*I%! z(Dw^)+=rO0UC1hoj1caaFvXSRIizgfeP3X>2Fd3OD?KqNKrBy>#g-`vFE+Jg9oIXXiNrV)G9 z`v4dqDQE zx?}Ss}Z8w8Ag5?T}Q0$Y>vyLjEE!PqH~nrF(f+SOS<_*3u20E z(ia^pLtO4>@noMz@Iw@Xp5fFl5GmbTZ(qrk>(9WiH_|7D5Oad=(xRTRNJFP zh(%_`d+^RZ{ET!`6oY9h)|++Xwy2*be*6mYUOTx{h_mEj8gtY<=2v~}U0?(ezW39W zrOG3*NLb1sd5fa~REOduqkS>-3L!B0FB&H z=>Wg=z}31=+E#M`>zzsbT4Tir46@SI9zvVTacSVydIq zjO5GO3vp~fThzRDh^Y)1=pT|WGmHZD)wYTbuO4jDI%$;n&Sw0l$IqYGj^Kb)XlKp_ zrb%F`5-DJ=N(AyC;gg+XhkyXUV|$%| zh)#{4Avh6e1!*{^pdT2TMNZ}1lm%8!x)G%>n}IP%Yo<{o515na^on1y04p^Yf80(> zVA(Iz7WFC+n|iA)5g>)0B~EAznNZc0%3l4MbF&LAf&_N7obZI0<-1O zB9~r(kVlx`CV2w9O zP38x+lGyYv{_&49OdwUvzMFw^26$v9&Fy+qKtedH!%Axgc)vy zckX%bvbi^Kscrpw=mZ`F+N(Z_OYHzsz7qTewHgqrzde{-zXwG37Hxg-*$#NDCT>J* zngy}G=E&Njb`aPeE&4EQ9Aqb(VkeEqfjcawFITb%c;)VmhJ3jQA}?QUOBlQeVnqf9 zB+i2%MjeXF6}ASpUE4T%_@=6ywdGGOwGyRe^534|OX zTBa56foMpd)tJq8pbo8mof)YNLSHPNxLB^#FFoyd$tnzlx{iI;=Kv60u-&lU;4*NV zU#e;?Oa~6}r>~Xr=Yg*){Fu+zQQ!{2`Lqx{1Lj^U+i_b{;NNol;w)|mxSaH(B4w`u z#U_<7hd4`Mol&|TwS^tnqbWQ)iFkkvQ?1;#JcSK{saDObCeR%qc_hwr41}%{8FjQK z0Bf9J(hgT9;4xe7BX5ZVmg(Ab{IDRf8Ab@LzxWgc8qu4R!*)RRfQtD2bQ!Qyh~BXH zIs&x85BVQjW&wx0GM88%70~Wbq1U|s252a6F1&jB5O`t|yBzPV2fBvZ(wo|KApE*w zlx1NSgtwgw@6RQ}_kJt=oV;@%aNgmts;uz>p1ahtwYAm2e3djTxWpBh9JH^;9NvRZ zX;5)XAO%EdOBWS!wrHAZj$h<%Eq_J#&Xg~@P$S%Wcnb9%>hXP!!t;HxtNHUR}q_yDP|B{AVb{i zU&OWKmLrZ4@onYxEQoXA!Ks@{KEO`QN+ohz9Em3_ynN+w4ed(l(N(ucmMycH-`~?mRmrM9062|8^pxJ9_s(O_2{0x*G4) zzey3vOkNo$8OlSnhTG5i4)!A{mox72YI8^_hrK&y&vqou7?n(~rH!O(J-vb{Ly=_v zS8cO+A*5uaM{(=81L6)mMnt@5iNyUcjgZ@sA;HHO?S>p_#A;m;doP(4$%b!a+KVei za?y4-793-dz~JTrmOG+Iczp_g`;ZF~eJtgW;d&kkP;nGXw%|hQzP%SvNnOM{-N+sNyrt(aPtDPKL`5X<$7QRHccCOR7IOdoLg< znHC-2Nnxb07ewCg&_;?UM*1EbDkH_-4L(^j_YmWx^4+nlqxc!yx&khV11qn~`$ID0 zFOa@!qb>8ZX7JH^_w|*^jSOZygFlVo?d#=(7Z{!M63^@0kDE zz`8;=w*G9s?ljxac(4}lsMR~_*zisv0=~_fUX8;lx6Q8Jna6tlHo}kbT(<)B-tv&JnAMxGEv)}vuV7Iy*SSA%=weP?A%f=oPcydse(;w>i z)e`#MIlY0vUo&3!qyPWL9jEg9*?eXAnu21@E;zR3XZe5gH>`Z;tzy2|;h$~C-^F*j zewV-}?~+2R*s+zEupOo6BLA$;-||O^S<$b=bw_dj3g6%2i>3%q;IWzy6oh_y-%-O~ z$sdkU`78DQQv+*xu`6m78cj-3w zFZDBV*$@4hf4;x^S9ty|FU@vMiSSS2ddmN>S~u3yQtS7x6#Pg0oeaUaRa`p4?6itm zSHG`<-$RZ2rTkX21p;P!O~WeI)DoV!V}CuuE&3j z$I73({UNW!_4{hcCCuMf_3lU`Nb|At^SB@T!YVI~6XuH#$q=yeBcU8t))w~De%|I0 zzE}S0z{=;E{!ll6`TM_FG;SaLS)ISnw|ZDQrRE#|K=}ezl#X|_6&mE`TP<3OIz>{`u&>5 z_PwvO6$Jh~2JU}_7n|su_glp(i#-G!BTMxAEBV!q*P{MP{0PNU+$y%zO0MQ%8Pb#A z(cijt6_M+6+^_Hq+I#<%K7YBt&S!U>{tLYS?!a0(r{HJvZC*E{{uRCt`wE>_vHD~s z`jz;C_?bV8!|G0y5^!XJpxDB?L%ean!s|3dQ21ay9bryC^S5>p6vi?FYui;w#UtI;AXiqvb2Mr10uXQcnku;2iyTrBU3oqjrrd2E) zcyYixdxzJW9*6I7_FCVwe;iTOW#pfD>WAn|_R0u^dIDq0`3>zAzm|b zOhFORx;AaRm0XIof3-@NvuD7*Nqi6!(G5h*`gVApA;+q7c} zKT9OE_hy$TNaud@zaY33IPofFNBdp?+mVSou$~1(MjZ9H+#dp`pTcGf17;8+>iIHF zaS<^@K3=aS27v3`IHp~BpWVexd}Sh5eT zV%7lJZSQu**pUHlUTgc(&LhCM&{?cP+YIvi&OLot(GLs{w}%*C*#tse3_O;dTYyU^ zW6H9X2n0o!C3Q}agJjiY+0>~QAZ(;__0_{};NTVf@|KDLxG4N3_ipwDintQj%(r#G zdhpzhlN=aOGQ3iAVoC=}W=6AbdmI2KDyVS7uML>pH$Ql9{uZQ%E)E~u`vJ(th!M$i zZD7%BJXO5O1w`3|7yB&uL4Z_OvcLEkDAqpI63fp3IsP;?b>$)uDv7j;QuhMs2L4;s z)X%XoMGXpx&I2H`;WhhugB>8&^S(^1TpA>jk9(EQ-vGwU(k_?4aKOz(TgL2<1gQW% z^0_zOAThdmIX7w!6l^O4tS7}lNP#BN+oKpnH<|?FY(Id?!>b=9I4nVqD8EJLMlUED zatM`K?F5B~g-`B$@fLY6bCZM7;?h)^w-j%O+Cb4_Y|zdD;%714?p9ZqS2b z(&yqYepR667yrp_$QtB)cN&pskbqLtnQZ@S37{%r(n{G^42t=3jpd!jpg2FY<;6R8 zP>j=Hs_6CtZ565=`Lz!~Vc=AMJk3*3{LCs;M&bw>wkh(A`z1lud{Zd*15Hpi_Q>BC z6bCvQhbmYMy+BKWb@og z>)!{3e5*=(qb;EL)<;f}#v7FRJ+{sHnS$0Fkzwir_ zMo`!DyLpf<6f{E6aO(a=(DbmXaNyPg&3p0B&pem~jl`ORBYZBPskbDQZ+aPY-cjvi zU;GN%*Um6~z;A(dN7fs*q$I&Qeocn+r$u00#^y1rBSoOcYJw&;z5+&FWwg5)frh;1 z1wXT7&cO+t*NcrM^1r0QOJwt zgNdN8>PFUNWe?gq!VBciA)x!#^4e(G%KLiPNv@$x4YX4BzL9P@4BE7MQ`49%Xq>+u z5z1}@Saxs6wx@ZZYbg}J?#X-5N;fLb7n=qU$3EH|tN^V`Ty9&0OhE6tV1o!*1z;B* z%Cb~PfR?qQzL{h-Xv{lFnZ-|l?oM(u9o37Vp(v?k+%ybY8*NLv-Mc{h#^p0LFY7_A zvdGIK{~2g2RvrbRnI*P^-EP&))PYcg7o`;mg?#xK^2{S}}@TK#TU;}%ezGHny8 z-~=rW=>mKk4d^13%-MK5&<>i|H*${?RCboigY>JN|XiNwo-;>3RPnuvR#RysNG zMd&Ul7SxAzJM0DJyF~p_y%nHBf`p^Ygh0wG9=~MT0&3m9p<4vJK<=rXjx*0GP&!Nb zvX+DjG~$Cv^m?5@c^MO;bnyUH*Kt{)N4}t*viIRu*8 zf#f&YCdK4Qd`<~2Cu^Pvr1RW{$Ffs_OZHPUi%AyHTd;Cf&-R1TMV#hl{RALxq4{>> zd=^MfJ-JbtMFPS!@(rr?>L93mF@<-G4)|Cf<3l!Dg5>0f^Ahpez!^K($M~!T#6wN_ zx0woqV0pkD4Koj5x@cs)-j5SRJ;VI3bsPslM>|_?y&hnC`0BtL4=$j7S(1rQeK=P81Y#-}F_*~9z}m4&= zuai8)tBk}Y=`KIM{RydDUwU+d*aYDkCQgKf*CMss+|F@LO-T9Ki;t~N+DJKH=b$}@ zEs|+`rmx0fk5u2OJ{Gg7MH1a4JaNwtBlXEfQsTsZq$v6PrBzKEQc4{#2)z}Gq*%Uo z2yM+nN?LD9-}h)EnbUhH_uf-Qd^G~0LRzCprOAA!<4I{meQpl}?-NlZIclRZ9J7S9 zgP8(^KoLoCjp$!}RD_M~U8i(44G;*bN<^ILL=rR}G5I30NV@V3R}t%5MA6olBF@^2 zG#)ZUwpqp_p-TIir;Lw~Y($o8jHM1dWaNuj?y7sp&-o$sBihY-79)}5T`_-K zetje(xjkWgZURYNPrQ*Lx(Uh0sl^&T{DMTM7O9QJ6p+*vs>Z<{b;NUzq*TlMGE$Mz zVfyT=i*PfqHoi$Xg_Jv~HC5hhLQ4137yU}K5rs}P`R)^;NHH(q6VIW|NNfKRJ}i7a zQaWP6<-2eSsph-rkq1TL$0W+a^p}nzsnd7T6Ns{q@Pa@*&1YrA#V>x3_P#g58L*HY zJ^mDN-i>V9a9JJ6NjHR&d9mRao=6BDCMpgj-m5Xnm_Ck`QU?z13`kmuB^b@s)+67 z@WM^QNW@3wiw*7dMgm_>IF+oUMI26XY}Djrh)dP!iRU3|#Paw^(bx7l#A=HVYoKsI z(j@2Q%LjrGyY{V)DK2$H<9nSfs>I}tpRx#a9C1m)v#pa z-BOjh;?Daadhds-xAP{k#)Q1~Y5D|gSvfmuN4E<$6Ba|0(EA zV?!{|&A&wJ;^gt2?@UO~lLFS;eS2K`S}?xxR7W^-yc>|tsYj*szX8^mn&*Da4cM@{ zQ@4Y41TfH?a;>EOjPI{or+P9n51YDAFU|7)2(TaCm&)_}Ah2znJ=|Ab2UM2o$shfi!zhsl3lApba1%xB9jLsMbZWIA68|LG((gwp9p(4wLCe zfgdn$;L%WsvBPHX=L^uhO#*tW43`%d>VPHUU^4#!3*i3Nm({&ki_M>Yc*Dab0oY?6 z#jtgx0FSk$^$a5!wphb|Ybu2goAFGw7`&4LEbH#GcbPW=WtUaMM|Lh?<`U&+QP~Gf zeV-mgtL+7W_tUpdy~_q39}+jOA!=Y^JU3S`6bT|3OT2HXqkuQS)p7sa8{lSm*EhB` z1=vmvo}zEr3u5h}bZ;nDzGp+`$;_A&fZ?b^p#ISWz{P_AjV>*)#88H1?RWvao=*<3 z&Zq;EpK5+_`FY@cdoC)nD<1fxZ)C?!v;fbAiX#!(0U+Yh8FeV=G!R>*bulM(17CS0 z1vBSH;JliyBD&)Wh+72b@t%|i-u5)pfrVM%Y1@4xaFPuqUou!xYncE|S;ualpo+s7{;rT7qcOfhE!7ogh4vT+KEn2)GLy_P^iz8Ms(=Y%f*q1kut3GQP$S zz}!?U8j|k;!gd*@gE}N2(rCG!s;vo_M8*c>3XcJ)?88kD)uVtaOMyw=$Q;C2>Yw6D zPXO-dhC_M@Ng(Rh^`!KE3NVh=Yy@-?0P8`c&C%U zZ8tdtB!`ck>zr-^+{2S9+C)LX6GWv{HlGS~zI(Ro4|@TPXdz`zRVZ*99^lCN;tc|q z{O?qxuk`WGIVHKD2?Qc%EbP}E04~9|Wwl{Tz&FEm@?PEwU-a|PIDU1Y@;_``Zva4k zy-a}l&dT+_vR}frei{%ey)+iPCkHqb%Z7|ODS-89oc!6sI$&O6{8mLW0DKpQ6YI+@ zLCAV%&C@#%5PdlK3X(npW?*(p)+q;y$gVJ_PEp_;eRc0MFAK2ndOU9{90E}mGM!yd z%<O`(caYl_JzLX;`6pfoQNuFz`N5@^+E?1oW>? z8VGO80Upd*IFKIUo5>?>UTL{uz01DYJR?lN@JO4F0Zrvz; z{L0XD%-*k9_^2rpvosOnk>QA$oAJTdo6op0WuyZUNwep(+!_2F9n0g|%47J21z(L@ zXTRcyMOBPEH?QpXxnn!ntxo~jrE4OTxlM>14I0nis>ZiQ*=Uh*M*6vuuu#|dlgl%%=Jb}@1JNX1zX&hm{dewHZe;qaadxHlF@M`VHc^5dBHk z%m4}9+|im9@*XMN|GYm=fDzG<%)Df%u0pC;HQJmGrz1sjFUg@{UZh+rO;dH@36i}} zJFwd=2C3C-c+z_H6(ZU%UA2_iiIkR=(wDbSBjw#T-hPx%kmy{0_GdK%#Piq^$8akd zNxN6;Y<{o_DOTurIZaz2iX`Qn`_oKFIdI2A%5%d=YTLPqi)6`2ahpeaHDArjd6((w z?H3ghF6KTjK7A(=O*T5lWLSrk_MT{T`Xq_e#TSZS+zdvd8fRoG2R|YCGaGiNhRY-6 zPr>C>lCP1H`1*`nZr727qmEGdPcdKdr(H_vy`h(rkYaR7(@c)gc+=G6V7t44ey2^)530J_+;=03@(JBs;|8%>s z52OTz0QQ0I`|CSY^IbwecC+E9d=;+>(697Yv_M$p^WPmuzLaSKE#(?|L|Kf~()X#V_ zrsfFoZOH^F5tdMVk6?EkJx#D1=@$vO6t@BWr7c_I51p3#L!Z4Ce^@>I@8VP92&?vE zqoIT+%2)^YCETCH|1ED)bA*7g76fGqR@*h#`e*T7?%NerEK}H@U~hO`~4^RYD2C&tzxG>*(xtq_C6A~ig{G);m`6q z&3keG!9M=R+j@MG&`+M$nlj?QJFqhE&p(|nr&&|%t=V@U%He*64^2+4=3!a0-aqw^ z6|ngI%<(_tT4fYh>tTZ=1Z5^xbEXQd;z(su6rsO6j|l$ueRzUBa`l4KD!%Fuk>V=1%_kwGT4y zD4AIplI%pXsXpA%O-~TTNkgq!ms$AmLp(YP#eMQq(BohXp03y3dCr zX=Cf9c58k_%u2Wa{;Ugru47{B!md1QQm4|eW_}#;ZM|NY@Vp&y9b31&y;Bls9l7_u zB$Y)tCK}0-qoas8xpRYe?s_Eb&3v8af;bZQ&e_Q9Nee9P@ev0YUn8!P{E)^Hb!@ss zL2U1o8*m$3y;qw!3(ON?VGktrfOFc(>^=i8{@e9KN{+8c5%Z}a;_~z5KpISD-Eblk zgn+d2QWX^lu?pVlE8h%Eo7-;^^#oy4?9FY~nn!?jpVJ_f8yz;Z`2@uMnam`ZbPkAI?_XLZkq43(o`7B@y_G(!1qMIGVpCLi z+7kHaKvc(!HEL@O(2+*J#x3sw(JBYuY~m!~)V_Ugpm7Kr6Elw%akK-eU|)M4zA2#2 zd1gzz&Kfa|m=%Ou9PalK=tipt56IR z2t71AbN*a6h!GD7dr8uQ@VvB|AX^lOq^fCJy*B~e{bO7+x88%Cp~2w!Z(jJZ_fBRK z#}M$_vz55Zod-VO0_M_}nt;2x*Oh(4SrBs9il#Wf2(0nG`CIEHLHK#!CDZh4ARVx2 z6Nlk2NM94Fw|-m*lJORjVJD?QdM>$F`}29=@0Hk?clHYi9bp^0CD{!sV&eY0@d?2A zEm!%jpbN0>2zkw=vJ(VeXgxc!a&|9*%mOsd_kvi&V%P^3O_0jeHZ?hv4N9DzsuziJ zKtWGG=ZG6S2!~T-zj*clWQqqm)vM2e%7t4j4sKo`<$O1>)7c(G%WkAg42gq`9@=za z&nT!JXvs9$a}$Vfv(nB6iGrHbX>1c|322xL3zpr{2jPhNeU4hjfHU0x@Rl_TBH7G8 z=JpCeB+=%*W>_*vrR$uzR&M~(Zl@Z3o!dcp?!Y`c=mAPsZ&W-`Ujq4Cn|d6isX$qd za?bgLGYCX$fSP;_$S?%n>8kbub)mZSqZ&1!vB3MF3zDJ zly!YiNj-WDN_R06=c62;VSSzvfjit%eXCN(j+m-l)I4BDh_*FZ_g61yMBuDQg(9tBra3%qucmSWGc!oK14EW%wAiDd{xT_b@18PH^QS1e8PN)AjUEAhEDNCP!}c;Rdl|G0 zj%@~TZBWN1%o)z4f47&7&_fIC)g3kNk+q03XA@?nztO&IzS^wpVOHYrmks z(I!LC;Cp@Gmby7;Y&d!NW_UK}EomID@VyC|_X;(?$nXO&EWGD?;s98W<;OQefuOf{ z_a*i#H$dwpHU#M}K+kUOy#9h7=pDafYEJPIv_p~OE^jf=J-sVG*L@49ZwP#CTa5#K zxrd)?Bj14b6Q}7a*F^wv{nC>d18D5ulPx_r3Mvzpmv^8j(77K78XtW?>!3-1b4n9v z>sS?wUrYc!vvc-ecLafs{^dzK<$BP&^Tw3LgA}wIuZfnalz>i~bYRd?@|E{*b7I^n z22gi3X&yCF0}X?(il^t_fy&^(h^MeP=scNIlXV#aod@wpq)FRBYe`=d_1S`Y?fF!$ zZy}&Fl0OkFQw5r^q)pp#474{YQ<-gy23-yli%o94pe}7%@_s}HG;VLGr0l8$9S->& zoZHudonaU{DWsD64I zyXDyxP{S7c}%KE0%#2?{S`ghF=tgXEH5a^(S0;Mb2y3EX#U<#i~O?Xv#{ zD#skz3)?F|cHiJ9rKzZu{aZ9`(qCz zFo4RX&(D%%s6m;HB>uU?2*_SkdVU<&vT__Oo{E??0tL%JJO2$@Ap2Ed7xfW-P_5#> zQN3Fb)U6(7D%_+1x!e4Ll8vuHXUcl02aF@>z$HgDFTX zpGmz|#|9*ydFLI`C@8$M^V;(EC@ALi)+qTDf>@(+zvNXdP=D_bGQKMaKasC%X>!|d z<^6pvtMJqxWH|SXY`#tkBF`_lRo5H=PCb{pytAsv{hZq=1VfYWz}82lA%3-fGABfoLMfAWex5zU}0o@qrIBSjqzj)|Iar5bdA{I--DJ{CqiXOZm4vtkdV5uJwnzh^3G9C4Mgx zu-YB`@T#r_*wmZEcabIm&sIap%PRDUOXH4VO1C?f8fo~nc9$PE@%|OLq%k!TOb}Tp z5{N>~6a!lhbWi|pd-Oi{BRBEA{`#JGG|CV~vk%vfp+RiwzJF2M5h83ZiqkhH$qnCX z-JCPnD~Xu)@0&2$a|>~1ekwK8dw``D3Euuh;fFXhkDOZ3~saxKxcdN z6YZHI#5}CI>kXeOl9!yyFj&5Xlv}!sv_eUcqyt6cw$dsje{PdY6m0|&Juz`8`w9b+ z`EC?Z~^NOAEb7qkVJ-k5nk)_0cl7cQi*5>DDhA7iW>Saz?{Yv=35A?R2oY--48^ zF0MCDd5WZF7c)BVJ0sop@=wJ5b0HwE70}s zMH>8U7>emZ(w`C{GsCr!zN_F;)pRqG|7@z{co>IN;uMqJPC6hhD$ghPhO3aGGOK(? zV-?amIM+dXNFS-Hke_*1cmhfII8Vr_iXt)dC`bHZMI_YJuJK-q6-m~TV$xvKFZ|XZM`X_>5GBpLBIIA3@?~5=oJ26Dyy~cU2R< z8xULd#muWjmyz6YMRDn_?MNE0^6J6HB_v^TWiIeQ3gXysZdZXR5faP!xJUSHC{n3c ziQRcF9Gg13%v)&Ria6d8v z((OWxZKeE3#NOtBjE+5`+vK2(e=vjS3qzhzom5BMDrZ$XAG|n69m@&Mw#EAaO8 zem+FDH9zOLTpki8n~W~x;znZ08x{}qm>|B>b;g4f>WFz+-Qv7L2BN=cvra_i0m3N- znN+9VM_g_;=QtW2fHGBa_a^-$M7>coyuaBPF^G3NiZH1nCQGlo@1%7Qv#+V8VeJ9L z1;i7|nVt6}k#&IOR`|)MFlNCrJNiW6NH3@N^b@5CuXhEW?yL58h#}PM)+D@O| z_lW%Probs!LM&u%oW&Vjh{H1~oZf;4@fWjBa=br-ggzCVcsRR=$U{8!7(R(03YW;I z_>vVrv5JOtmJDJDvQe*`62uR-%jj0$8AZG@7X?c`Y{q&c2Roiz!67D^4*rQLQN%Re zyGgm&1si226IZGUM_lh^xIJ5B5#{?0o;I%Q5E;KWYtQj|Aia#T9y=ra$nxWb>6Pz0 za-1_)dBHS(K{}3Wi{cGLS7E|+IFts_X{9S44PM4ibM9Nb`yvxj`WdZL(ntfM!TlZv zi!Xq5J_^y~ap6Z7?(QdR|A5F8c8Db3QNS-0og;HFl?P_7@=Yn)bog(~r`sAu6Y&)v zm3i;o>P4(Ohy%E#U4Ts_kv7(V9$N^W794MA!WPR;ph`O`tkK~1&YJ_Wc=WKw_ek#! zeB<~?tnjNz#C*K%q<2RHHf~H>|6ZgOzZ9tVR_l}`ey+61RU)4Vn8zyOV$Y=^D&x2N z({g5je9!&7zI1DBz+{X?@Ng`!iA%5_P}>iT+zD4N_qHSUr0IFi2l@E1?&hnn6&3MI za=MbczzmqHp1o4_3J2nE^0u}HWY|E!)f`8wTYwYaWP%G;#g_Nf>ylit1Hors-K@j` zXp+Y_O5QI62C~WdZt^)GzOR*L>m>`k>Te4<_V57L1(JY>(0pJQ(mBU+;4M&Ol`HVv z_yBC~58uCKbpV>lve-HOAmG)18I!1M3oJ|a^Y6AVfk0W@#PcoUz;*AYlyrX|aBiJi zJe0W^gvtbR?MzES@TsY2LGfAOdUBp>uShPoGz02B3=P1rpN=tQf(_Viy>n@g^8wBz z%yygqCtyu3*)jcG7MLikfwaCG*of;slWm{^27@zVT%A6Ei`f}SpRf-E#&vE)AN2?B zZZ}_bH2U7Z)ibaXT^<6k8=SRB&>ISZw*N790i5}9uShx(wVW= z1pc-|(!7_C0NX1TE(3lyVDG3r{OZ~Q(8LZMqT5{tT<7pZ8x9EoOOPJZR?cz|kD%Cj z-a-N!W(lePV!II-HFo$gbeVzh)5_zc(<|?f!SemDi+4Z>vouj&Y5)$7v}FG~kAd&` zF8x>HEx>(Ja^IBr5fBUCk}bLI5#S!&3_du#0PF^jS5EbPfNgznCrj>DAaOdq=(!KaER^ z8gM-G_S3b$2U3@&V=m&2Ks-sj&TzXv@Ga|UXNso*SLb^%8-8lwA$lhs<-QfzdvBCJ z!EFI?QnOoaqOpK88}NyZIRWe=bWtu9`M^APM7G2C7Pfe;&(TRf4H$AgZO7@dR?aJK z3SYL`2W*v14|8`g0*gTfyVz$wp#I`zSm-c`k5xQoRFg;q)HhGogxa|QS=hQGr@e^r z3$DenaL^5CB>U$bom+r5k7fFTO&SOdO%7|D-UYrRQ+r<)eFZv$4c9X%c<>FyHjSGd z!|`oJ`qeX|OTe7dGuPgE0Qd}fi1#}>fxw(o3KN|lqB?bV-TPPcMFt`=nmoQK;3-^c6%3dg)78@+1~*%Y12vu9L@<|?DqoZNY=!ZGAx}!4gt=E@vUxD; zh;^e1wW|pUBJ-opzFGJTG0hEdyG4{D9PjZf8m-5$oV~82Q4OPrYrs5+dqNpMb;8K& z5gS6}QBv`R>I+C}{b|LT<#I$@*7@pX?McMn^4zEF(FGuFkvj7*a6J+z`iv8Ja}m)H zA2>*cOGFfdrJ3&()se`i0)f&!GKjwENTE(p0utQn>zOM>g*YFVY2807jtww8u?R~j zLpa*S5Gz}6giASm^^mPN;v#*?j8@L;1g?(1m%ta`$IOGs_eOHzr=o4f-S{LC%@#g| zfP)E0I#c{H+owpR#3{toyGJ4VQ37Hkx^-kg@f6~k zqUSOn+K3dFUF_3?R?d41hE6lZ6(C7ky>nJiE+Cz(JJ-F;1d&J{>(wWTS%`PL;wI^Q z7o=986g8-3ijTXccX89q3VI;pG31pWxFCp z9m|JdHr7Z>sm#uhDjlixJF`_7?nbh2&L?!9?nWXqjBb@#b*K%CO7C9B6 zeopH5`GQ@9Cu>;y*>h2U##4^t{vKCx5%)`V6Z?KTU-TtlwGNh~r%k9|b;#up{*jO_ z^b7odi!ZtQf`C0mr3Bs{hwrc7%(Em|#nGYy0(QK7+xlZ(t3BaKD3%?V=(mdX8-{R% zzFJZU{!BN*s=e5QebfZL`UyP2?jt8W8N<4s{Xr6q)!I_~{aK%hCu#_FhBg@!^2=<; z3H{dYAk_V*+u0`>L#SUK@siMI`je@j#y!Uqo}^+o>9v09@9$tH@U$-J5$boU5EJ?; zcNQY#y{n)l;J9;x(<%-!Z~7@ubCVYOg}(pW152mg>GZStfpo&^%vh^`8g3PbM#czO zZY_;gaZGZL-zs+M@)GRUs{{oTHg%iu0rT&!DUR0W>x&7ixMHQp zhzNXN`Up?Fu_Ei~ALITOUq<6ih_4-7QyTqu2KH5KjL=7X-iFryVx3{Z$jfiKTJ0ulOKw1`^8!ahU7eC@U%Lfn1r@BhM3xe!OdlA<-m%P;nww?6b| z@z|o>_-cPxnG**AJ3{B22=&waTYuVbcsU_1@qrEj^Xsy-=a)K4!0c(B?|rGU{K$*du{N*fV|gyMKdXnOd?6@9 zuo^nTar|E$SmOfwYCe|0uSejkIA->tl zhSQ@~v2Usw{X*Wa4yW2yZ6+H^@@9tRs{^ZA*Gs^{ z>T8J5*CQh!^l_S?n8Jp%;s|#6%jiG!J3R21;IDT-^@lzyK3BJ{VqG*N!R`nt^!qpZ z`=|XEBs~5@{T#;zLj9U^Qc*w6_(k5tjRb`%R=6DN_v3sOPapv+r{lld(M^Q7%x>F1 z?wfeuhN;-G*{Ozhp zHz4-ez*8hZg(#xp$USdTAfcOguLWLWz!pQ{#p#meWYtgj(QxC^Wcl@2$NJa~y<#p9 z>ANcDBRz`*nXHa)=j6k8?>VJ&o_+zp@C_eBvZ)bBE&H^K_ay?kPq0&rrZ$i-`i8~T zDguqr$IoP%=7?jb_~QaaDnvZB?oH}_Rm3$ek!NbFju;B^$LHrw5yh;l$c^mXNbs`u zQ0K-rgtJ)Z6mjGv67DHqzl9qQq}QpgIIyZC%2_JzT~f|KxBqD1TQev8$g-^5)+3%k z7OX|4a4ifN7)~DzQ?9_;qx?C0Z5Mz+Tg~>hg#hsGIO#wUVhW6w$<*m;VMuyEBfh`Y z4)K^>rcQag1yS1*&qlA~2BwIttHa>}i21M{f6uH3wy^U{-?y0-tbUW17S+rFBszc9 zpk#^@;i$weJo(^`NY@;F{TfsC!A6Z27G{(&ieWDr+cso z&3s+2?rtQ|I!bnp>J%_Yt8E?~LO_w@e4yy0FYwEEGF-7|Ld>O&#tNKu*bKG4=qYYt z;A-9QV2?!x;v8X{l(9$#j)q|N2qi8cjwk963y8$xsYZI@BK@#Y{XJ0uHP%3SaXnr{ zq6|0|x>7$M4+gdfvs3M96Ig$)CVpn!CrqlaKK(x+&=pg?Xs66E^FU{-*)kpi;Ev;ALF8J#bvExBe zl}Y4mL@-EJr!qY6SPx=E$CraAZh@4YRbcp;c2I8~rBrp70b!l$^&cAjK~D66a@!_0 zP(7LUl`TAJasjGQ0HH=CT>6cC?%pka-X43XMG7CE=h=Kl!oJ zyc;ykE2u`)h(Y;~M_9xeQqYwHTi2fpg$9P?R~!uC~xuzGiDnH#mm$^ zk4;HHw&hy=g4Gg8@$jb+)l{rpM{m8DrXLTQEU8?(MzldS-TSoH-Y1}@72Eak7ze11 zx_^-}j06p>M(b4XT2Q_xkyRCC0Gh6w$2I%Uf(m71DOqa{s9j;X@Zg>@NT;3N7)T)w zYDo?%_o>xEfAr!z*ir>L($YmyV>nQ5FHfJhO#;n1-Rs76p|Eb7QRLlvF3|bZrB`X; z0h*0Q977dXL2H-Q2fh2LpsgUL^`Y1iU<3Ju$6t9tjm~LuIpQv8v`&4Noge{i|F&L( zq$bc*yi@%}y%O{)Lb(hmBtRwezEIQ|GtjJ5)~CK;1}Y<}#SgHR*YT9YNxADRpkweb zGvq@QKpJIs+Sy82ceKhw{k|XQXt$G4P{x7Qw~Jq-b$vl|;Ot_0#!k@4ujy#k;RjtN z+h|`^8PLk0e&cy*59sacp&Pnj1G+~G&u?H&2Z*71#fHIF{fy1dZgt7!__$!azeCGDUO#h2-N1ps4M?@_jn z9CR|1Cj*aT0M9Z)Z(WuK483(7tkVEpN{da|p(CJcutAzJS^~6F8|PDLIRHDO*(3Cn z4z$UwxA`+9fR5Dj@WI_YpqtAeEkGjyS`XHJ?QiM^bxH5#BKBLLUnf$NUsMO$OOM;E zG7d(f(0@CE>%24y+NL^W zLh{($qxET~nfJ<6cF2r9R2(j0}SLH$Tz$hcVY%IDuAgq~>zG+QqmFy4^^ z8jhQF^oKIMO=M^)?rOB>5IJ0{pVipOOR3@NFicLvo;$$FDEZI0Sm8ADt5u zh(Mx{;=+TeT_8>|8A@`w05mL!Nj*0rP`>6GEw#me<@hu7b%b&=sNBnr;hAg$370U}0;ql2UXoV60~GuZ>os;g1sT?>d&i3gUP3+vh#U<-?l8L{kZuo6cxTfMq9k^^loTmIY->UNlb4YoE^z!6 z1HTxEg!{H?K2!yAXWEuwc~KC_O01ycA^~B_k`t5ulpwyJHvUX}AMga9QaH#m4r1oi zs>Iv*K}|w3$?TXs@Fg_PJ}7&RZz#$lHaxG0g#C5wgjuzLCEZAU#@iimf<8~Ha?7x6 z_vL6UT>!Gp+Ago$8IY(cJATKBNf60wbbmFu14+7Raz^Z(0kXJsniqpnAROavD}T-s z*r`tnPmnePcOSXfIphhPQ&ILkiQPc09aJ;gn1?9G?P%-9J|UhnPQB52Vo2z*4C`5u zdBn!hX_9g_8z{y#E&b+OfHv0uhMIjYaL{>rehe4D=G8fu1~We(oWOBanvX=-B*jBD zZ-MiOC%F0GvE8G9%kC|b&a_4h?pujWiR_TjOL=`kr7*1Xm673B;Z-#`rD12XS`B?L9wkff$+A)8%=MA}M>pp}rY${5RaOqdK_` zNTjh{Z)t`bv0L4LLR5bi(XYE9$_0an%U3?+?Ybqz#Gy1#)$M~#0h-yzPX#RVTWb%Q zgdk$y2i@6E{jdpD2k|%+Rs59Dt_7-(=aBTd+}H!Et@!F-f2$|h3#84Ecr9JIA1PkV zUA{>si==nzVs+V1koL>RWYZ|v(a zlENXiOvmgnD<32i;`HLiNHr4JUo7BR?SO=N4BHO{1|#;p&+rR%TadI{%7=ZVfW+#~ z_3Rmc z<)RA`d*A3~I?9BErV79Cb=V;3-VxhVLtl}^+-Er_C3b|{CV$KQP$<$R79awRjY#Pf z%R%jnw~$n)+Bx2&2qf?_#wqyjH6&A>mR$TQ9Vr^rNKrdGAlY;oHfN72q-fP3cDO4K zX=z=dT4q^!UFk+r(%;S_g@%47=`anX$S8I1vojSE?tKvx$>WEZKIv7dQ{G1WyChRs zCzg;pTOZ%?%-u*O1V_6UBSnHjoC`e1nh+@kopU|&0@7TZQW?1wgM>PT!(WB#BYvOs zGtb9LkmeUYVYLH?S9o0FXj){EeEY+}ku5n$YM;ax;q)0K_95{-(^Y-MabMM9(}@Da zbfzlpwHrNBIJ$ALQ0*cTyQt&VmA&$MZRsPDXR|_5^A58MPo440JrY|eMyWULBdH}Zo3_-Kq4o%W>~+Y2ci@Cks?Ql5KmgEX*Yu(Vp*U4N$hq! z;++XjJvOkTCR@t4GG7`hZd;T1ry=t zgw9mvG>9Vp@koKkMcl2dD;jU^IW-0;ETxfjB{d3ij4<`iNnzqRC-II(hF$`oX* zu^%zak_lyb^&mPKcV47Ow7bZKh=!zm&sq)Rk<09xR9+%P z9)E^;YOgn9^STy<5N?6Zr-`O`v*D z%M*bY1%4x4-qGWQE7yMu9*-A9@y+i9(G}NY}QfrEJ>w2HniI^df1l;Yn?2Zo5?Z-l5f)vWF)QF{Qad?mXx#Dz&pc4 zwS0AKteNagn}s0I$@(4KH4uu;G+NnOh@QfxJ9jX)w^IYT?ryVJ1_TmvRir2;fU|*R7hjq*Fq~BJ$QEM)7W>CHYgSMw z!*;1l=ott;R`IJT-40yNA$1|W{#eZuzM0(FaNxGw965bJ9|W#t3{~W&;io*T8Y@+N1;>eux z`h5q0&+C!L^odH4(0jd6KC_x5Akwr!gynq*=- z6DJefHYWCj6Wg|Jo=ogBv6FwkzbE$_xF7b~ySr+4?ds}U*IJ)zErJNiGr2jh;{qQd zDG74FA2(WztiH~4bVaV}@dy%o-j)x|OKT-rISEyDbf34r8Q;3-VzIRsB zC8jZnj<>qi0t7{OCv2Y6U7(eyh4PRjSkCL7Yr`QNTmtPdF#fsgrUyZPp?MDaqg@dG z45KuVb13loClwrGqoLsS0Q{3H-R=w%YT_;aB`>HBLZ&3H1<_P6aH+Y8slm@euzQ3Q z?o~15=TNrk;hG#;H!lHIrvavCxZ6SmmPU}1oGgRR82ry#zz;<(qQLInBYh=pG`2E& zi_icy=-<0xLb~h}Xk%~>a@}!|c^L<>6vFaozrDv+PVV4NXhgG@wL&2$k04L07*|Ww zbD_broi)IZcbS}wCCTb`sQo+#li)IX=>od{`r@`F%(7edri=f52OauHMPl{-AV zN)U5hj7}TZ0~>ofonagyfvuqwpGqMbU%MG^Owbc73Un{7UK0_+*CyeGpUs8=FYmB^ zMuC^JOCAbw6K$nHONdvn^Ph!y134IH$KBSg-$nP>DrJfJnmidU))zg6jW3w@D{P2e z5O7`i$r2J0R`_&K(?UNDa1VrqYoKFZewaN(P}RZnHj}>`U`A#}(}WjpVDu81)116t zaA`L0FDP{1dPP=^RM1|{OH18VpV|h*g0GM&id4*IhT;w98}+D>M3yk;dVjy60T+Eu z^u+WAg!|>L_a>R1(ADjZ<5!n=1(~GK2deIY^|V{mPE`iV4Y{V6*NHg5dB)z1K~2tr zXD4d)ZkH-W+Kae77GILT=^v;mB)?d^4RJnda}Np_e*;PrqIZ&rHu}x}mbLs-_uVYH zagcG;a_?xg!F50jjd?$!6<;tLO^!o$Xz6?RiSMWyXT-5{_D0WBs(g5-sejy}zgl`dhuEbMi-#JjZ zIZ@PntPbwrmi@C(m_4~qcqPxm1-0)TbtEl0Ki&(2>=WC7tI(jhj>w`@N#SQRts#}f zHc_zRq{xA3%{OeEA!p?&hrcbjrj6e;H$MWQMYn%C7l!%5V(>iHh*GXct?hu+AC1SP zIAB?tiS>oTshU{3__&GVGqP&tRxh_hJV}YmdR7D@e>S9tUdIPE8+ePXH))3#yC7SD z;u%s7PAT{LPR3hHy;k zx^kCE<>YmGdULBI)vYcbsu^2londc1e3rDxQtf^E-xMH|aZep0KVQJc2_KHP5>UiU zqj==ZIl};U<}=c55+qSEs#NLt%H-U zf$9Z$0JoHCoVw@u3tx^x;#eS_B{DXD%%$PKtSJgSaO z+5X5pRDe>@qUb)wzc}I#i9QnKd`*bn>!CAZ54*_tx-70V$$@7DsQ@Qq=XxkFncE|2m4S+q!6-%u}cx0sQg&qgITVH`kt?Cx)xq zJ77!DKXU}zPYD%$j*V~j4HJ;3_pXkI3W0yAb zbk>c@G>OBfLM4US{Wz!y&aJ#x;jA)@^;2GC#YS00#su?F@2}Qg1Z{6^!;W?Rv8?|^ zjPh9i^5DqE>z9Gd!96d8=63hryT-POc#!Jy8z+^2@7z}#h?XUxOttB3y;7)1wmPO$ zCEv@@tIZM_74mmhru3;&Zh!Tki{;Mc}!n3%_|A z_0MZqKoRK!I_q;Xy*2fpBlMb9G*z#L9dh)iwSGyc<`P4E7sZ!4G7`x9UGzoP5&6Bj zqr8_&{Ijzw_FHfR6r*TU>7VD}uA7KjT`hLC^G@}yii_RarO}Q2t8k;J*8?=E-RVx% zaJ}J?8PHStv&K^Xp|JJZt)-u_+qi9XE_Wwo`WveIbGY^v>)m5Mfwm;YwDPg74*Ud? zU6vcwbk*Pgr*f#AtT!>Z8s(LlK}`kUKL5ceVPyMi-FdT#t&3I$D`cE+>S5#9dq z@vTyubcyudY-{xheBf=jA2sw6k7S(u4wz04IQgv9ELk)47SCDbk(5H1s)`k$T4`~Md^7Y+Ch<6NZx;#MA03mg7owZ$0HvTlLt&IDK|YUxz2 zSMU9F{csG#JVUVykH!IYk5%%Koql_gt?S6`Lwv&tJzP;A-^ILbC!@OS{w&G6xM;B! zzq4jPMa+-!xX;?|&-fSy>yNOJnQAI_Yi!Y>RhOBP8J+5ybKX-%Pw-S!?L9QNd8g6bLZugm{ zp3ZXRFy!sWghx^O_yZeS`c2;i|H?_iJPJKdV@WY--0oL5E+r{OJ19gQAXJ6z^}FyY z=0322_VNmR6am!rN2h;BnAZS(ied8ei;anq~BjpJA_*ECk)jyZiUR3=rx%CcNBH zjMq9@vzogl4qYBQ8PTrS_2}T!aMrAo6(W{>-rSK4>C$%HCC;i+HJpTFgK{OPu8PWT zubhcg)7sS0n;gk8bhbNGSGeKpMNSu11y&V&0#r2QSGY)q%myBKM1T_KqPIV;yDIh2 z6)qkexVvk$XQMas%4l+veEV^}rOj419Yr8)I%JPhrVS4IZZ;f>J5vtJ7$6tjZ?*Si zsxd-&RwJ=M#m*KgiG8j%y!$n=f2<2lxF`fw|C|nVT{b}z{4?nAXhX`gaPiO((25-i zjYZ46rVFMT-3aw9a&;kmg@hDzy&il}mAUsTR=&Px4Vf{!STo3Qxih*d)2RL~g5Ho? zHbczmaG#5|7Toy!!P8=k4q*a%)s9Hm#j2=6+ILmICFDt;Sfq1$GH_Ncfd)qcDz8AK zR9ebKX!~ z80s8#t);SK1-5|}0sOT{p_qIAjYpP2p4%eyzYVMlTI56AzCB>i#b!MHylZ-B^#SI< zIto3DYsjBdPyV7Tn7|SFek}m2UeTbJ=D92NV>O>kXPvNeZ!!KCJJ$kvHXzuThT1=(quv< zf*P2RrfERvTA7crv()&BLk=09ckFibUku11xYo6LSq?H%U)9#(9@M4^)JNFjV@S7v znJHR}>H={h0fVXv#PAQ&#|xBksKc{WquJgV*nM1)G@l8@AVFI*?NUn=IC?{)CZUzv z&92rlX5UJriQFD*A=Hb0fDbOd885`({$pA%%MPNqVHC+Jftwfy`eCIxGR#7*j`R4X zrI=_Xn{3J`6yS=-MER?ECF{V(CS)JL<&xp^c3kX%+JhBK2qiq)=19g2!nj~L2~8MCaM#-N({El2^+jVc zR##{x=!4~)Bz;}4&v*~wuVyxz%FR--D)tO`d#j44?3&h`pG|+x^F4NkqWRKK01Iq& z>if0AfJ+~n&p)cs6)Luzbv0Mu6*V4w@uNB(b>R9bcJ3^6Z=9B{4kGta@N@fHOthT4 zacT3lgvSkY-9gGEdm#zTM4cYT-w~XGSceWNbIRcH4HVnV>Otf6K>OvzF<3Pg`Gpl* z#{RY+>-$RFQDVZ%S!2`n5Q_$JuuH?7K^-?+6lF;OGEuCy8V+s9gS#@3zl@E2Lw2u~ ztJ4O?^}X<3Sz3_8xz^7!EcSK(HbBCH;)HbbhWb&wzJU$5>c0_I)!05M4vn)r2^A&c z+l5WtpkvN3A7rsSgE(4S3_Y&g!HySyhx?0&8I1X_=`mr`S?i$ZpzIj)Xji^G0Eko! z?SU4vEm&g-^iGFKxP46OO+E@|8 zdtDv|n*)6VYCHa6$wb;!4~AS3X4u*cSYFij^bi%czU$j=;>JDK(Pl<#9BjS$N;@+) zh@2YId*(%pK{4Ny#3j_yLAbnt1f?ql9dKfs28C+iaiSZua6X9#N^_zH^ zjp^?*X}|YEjkOLzqO=)+H@sc`G0CGe7BMpkK?{J&pr&HT*bab98SdQrW#`(T9P{g> zi63g}4z&uS+X+9m{`~b2m&2B3QL)=`qlx;$h>Xz13hlwX=$LXb{sFBg=lWb8I8DQ`RR5dK)g;n zG48%59%|otIr~^t2rQ(JUq7laM=beY!mPmvlhA z%6Nh(bEo~17!3v6FnbsS{v`sp{5We1sz_G30+Yoa+RU$H*~D6~uP^VC$bL|jt*e7y zlPkq190E*e&c2m&|gV>~KM8yw==7Uhw|)nCxV)uH|C+zP2UFkM&qBwR~h z9d+Q3D~D7D?$0qpA_j`JFEHSG!@^Bst7T4Xh&>OxR4N&^6!7iIE9x5}Ib-ytZjixx zQ$T3xwDm5Cc#ej<5ld`;$ zONdde_sKbl7d_C#*giC#{?VW&>NWUZ+A-n7qnf*K%lCvUS*dm^N3~Guq{fy8DKh}J z+0A-S3}mT3TuEh%*PJ%`Msg0On61f38>}o=$q3Pwxq$4~_A>e;q%%L6E?_=T%W+*^ z5R&@O?`+2*fDhd0TTix{8zJPt$6Jt%ddL=3dz)^df0JPmX?b33;|x)}rFpEQP!{X|3v>a+ zwnwJlBp(~BB2W?hWNz6t;NGJho!P;gK%^ijX?D?`p%|Rq`O8R>Kpq5R*^KsF6zS)O z?=-kzK6HO??KNG6H+1)WVVCaeC^hHp>TTdHw8ufu(C~f`7%Ln4o-TqQ)6qJu1%>lW zu?;3M-pD-?$+Up;aox?wQLn+Ri;y0`{ZSe z4_?Gw5iX0LBAvKR^_Ei#2LT86Snu0NRJ0;)_74-uOh9{ZuNq%0>G!9WOGU4ZcqEVf zEVo!MTn^nedd}NZ8gm9o*Yqrt1g0+0>gMBbVn4czml`sO0oH4}=i^WIQp-R$M!IF9 zau#>gqySI6@+yRtJoa-Q)gDS3C)z-0d;mR5#lMX>I$86~=5H?Ks#Yo9%a-oNni_-e z;38#0^|WGvr9R|xeGUFT@EO9AxSy4X6Tx7^I#SqpwhE$(_ z4+fJs7XXtmdgLd9;gN`qnlpy?MAxsKUT(U4WSC{0_9RPgV{P+)Ge5x@i=Dj28-gor z*D_97u&Fm2Bb!F;_nrA2hTK;RxOcWl=^Yq-<-W&@Ik##7P3v#P7nVNy7Qc0x;t7|z&GlyZ$|yK{e>S`*^j10EEN+`9F1>AeWdNx(g|v+&hAT1<@yEi2FKfd}G#ygE3r!@KZg%~* z7+p)`$gsl_^~96VBbZZ9l;K0k<7oRZ>irD`-?gS*c3_HWprtZ>UZ&?r6X+q;${l+*$r(72jvGkCmeWt8i}OPsb1J4KC9ZXp>A_+~nJzg&r6G7^~S?O`N_1vZcrg$x69&U zad{{5F>m;Lb)gR#af+I!Nh!l#h2gm?4UuxIG-4BL~ zkaI?aNdY6{iD_0RFHfwtW=^2a0}ceJPx5bN4~=%rF6ODH<@by2^7FM*jF{#o6`Nl5K5L`V9aSjcr7%<;E^_f%U{!$@@W8iMNH3NA-D06cBIkr42Py8lEnBY!o!IXL+lR%oEb^5Zoxck`k=qtTT7m zz=kHO@vIv#%~6xrRP)>Ku|ogpCsJM?HP~jssGN7Fy#BF@x>2>d_BusAEd7gGtN%IsYF&b-9;4O z*e#il4Sx9}URUYRbt`PZc*2Z18XBoV*GnGv=9%G&U2y9NTKw2F?Y7PO+Iqh5(8)DA zHeN)&@Z}?+AFUGlnpWn?J~;n4II)Ql?~9Q~uLZ)z`FPwn8t)<#sF+7-4i6-SIrdoe zz3DyAWvLpP7C5IL1b(_W`R{z3F|g$?0`Vy7U~J{H=RXhL*nX-X>o^mXFA}`ZQeCNZ zDlo=e=CZ5$BVTK0r2xCu2fN3S#x3h-Me-nAirp??uI zwhkAl0UZ7siq~&Y8-X3y@i=D;R2$X?gz1SfQkHP*JkR4B&RInM!*@zuoNzd)kyaZ zvVOrFMrY*p;#5P1kyJMhJsyKquo~yNO_Oj`khLT|CV~?re>F(;j`b zl%!sN)In$ptI>k7A5(ZS#ic$(6$|B{m>x(vIzMS+>ivP=niu^%-H$edLND>Ca9K8f zRhlw2i(All_y@TKYvPT%bD8{+GrtR|!?EyApz9 zNAZ-0B!dqD#6+jvE$JeA_2T|nO1;@uqSGBmU7gKVq*FqEk!#WI;3gMJqS(tCvSdZH zMR!({;_gDqbRP?rWP~}dpZu!0{o#kT1FJxpjSF8v%L7_U?97su3?T})*-1BX5nR_~D*1xHVVcP4NG)JqiCY={+U{xXaDAd(HTbkzp! ztMv9R_FhXuDVhjdUju)CDx+IVH3h1wGn8;xZ11+5s`d2wFs3znLc%!`VYOE>s z|N2Dq3P{X1d+quws_IuHm~RyPf&3Xf3?ABR6X0Jx>4=~wQk_#cNMifEcrN%%b@C+L zJq9uwdv8V66zP{)Eo*RUGeKx1nG0wpWZZ1&{VUtS!%NZKO_u#J&HCUU{1L~$;;SER z2qdMIV%19cI8rA3uzmMlUR}KR>Ln^V*TK4Wjuw4z`Xub=g4y#NoPB9lVpCnT&D$wT zuY90exVQUfG=5@PDaV?gCyFk2%(}e$D7y3t647?y6Q+coY_A7eBgAZ;;Jay;W9C^0 zE=o@>a)Q;R*Lccc8s?iQ&ffK@!Z(qg_O`B$hJAvXKVDHEj={>ZlI2QT)XJa&KHN*(}DFfBx{vz=i#A-KXo zkA^qd1Es(7KX4-hm_M}{DK$E$z4L)a^Vm0n7^VN*#vT2qUzAUKh2AG!&XixdN$5RZ zDjx(c%S3O6v$!(hJ|$*E{pvg&g6R3za;17n4^5UYKG?#BnRb%Yo*eqOJ{A1xXgQUi z-?ROZ;d{3q9piVbo-j9ncjw=K^Sx_d34QDtMSfBOXZ&hQ56q}JP0OCls);(-!nj`p zUTE30Zy6X&5ME>PkG&!|FtY~CWxd03(|EU}SuKD3cvUh{t0Q@-4;Wk@y!)7Dg7R*k zUpupO?pf@WFSHCby|g^ZbX_~|4+;<(EBAk2Ej;nfsxJDF-|=|C;NYA)1QmQ*ujGq< zf=Uat-sHtUQ-kBv14;_^BU?Y^#YfQ{{|iv=d}<*G#Cv`k(Vy_`z5n-^E|PNQ_`hJ= z+y8<$|C=-U*-3xGaVdy+89f_FXUjsv@<)+Sm!DF`g_kUK6&;p0+o32fdFDnJ&}7`o zd+e|AT{;ppc6&tdTdl8{y>h18KSz`Er>2QsJhD9<#Z&)TsJAhr9Z$m&TVXTIES{$> zTloEQ_<5HXMO0`?l1CQ+ty)~NG>Q0{!a~<%LoWyy5MC+UW@QLFmP31iX>B6`fy@yN zuJs;x|K^tTnEtpxllw#P$=jU*|29q*x#*Fi9+q~4aj&61tyb#(QYNPZoqEwi1>LHun_3E#fl}J@^;H`TiRCIu zh|Jhv{cY3)v>OhP^HTCI3#J;h0FT+g=OVHRBX%|gl`qG2%M1Uk@8G7Z zhrK^5JdN#%^+d{fa-gB3XT$IYL)KQ0VII$S+KumtvwZ58+*P)O7REYX8UJ(^3;13v zL5ry6*2D;0^=YM4=M1o87R&uAJiFxy&REXXDldztC@C{1B>ccI?%Y+bB8>#+j(M;_(0KiV`>%aF`(fDlUGLY> z^ITO{4x(cAx8Pqcj~~$u;~?2LPF6gBas5Giuxm{t3p{Nnu-UqDbjC8vX{;6!mkVlp z*~h14LvX`;_3goSO-F{?de}i>5WG+WQK5%EoT*cP4wY zc;w-hC%3YS&&*qEf&Am*xPGbOi%>dic)+*C3U08gqL5G+++!+z*towbmTyt%tY0GZ zM_3?{eRCOyE4_Y{DEpYk&jY{rl(>Uu9Y z*|5@C?YwLO7U8@gmK#E>f{}*INj}6jsv!K#CTw8S_1SpdQKzw#kl?yvBrJB?LP3GX zw%Dn{I{u3(X`%#_8$VTL(1nf*3l$R-9cjvp)2RsfA}=^f2k)8KqfLryYBfI|6L$Rr zA1S!Zl)V<^c%}H~$zc~@Uwuxmk<9mf1&eLZc_Sm20`7p@Oi5%oM$GZFRAySC}7`5;4yL+I_p(*i=<1+uj`oX=Ul+PewW{mhkwYbMCU(w%(>|bt!i2Y8vzUwH)#v zep!UBqb?Z8%a5rcX2PHau4DQKdmAes>G63-PU`0Ft>}Qm-9!*{x-4E z3cv5$tsfpVO4Tocc9r!&Uk9edN{@Ul!4gE7q@gCk0jEH2#=8a0`yj7k(rnv0Q57u| z2KudDn7I>eFNGuij2#iKA9rtB|OF!&CWpH6e%sQ``Q?@<1iK)3&E+sZb|Q#1RKkI?{(51 z!53R|%vW84W`!^*mB*mm|SiveFrtFq9%L;pEe2@w;4}BPb_I7 z$l~^5ECBw9pO*$JJtgpT9{JVHxubtz<}eVi8v4)dFc1(U8|3t}XbIqst%6(E(boxU z?DhVjeb-1S=HTNsY12uV;lYvHKI#Zv`hco*RqF|jbCwrju$2~a&EA{Y!|euKSsfU| zB(@ApZa6S5z=Nn_O=yOD<*9YjrF8hQCAOlh+gMVCPWSz>%BQ@+*gH8)l=(N@)WgPx z^`$>pirrxIq~#$b_s#9xS<186G{HxT{WD6entsatByk^7V}jqkCtNIMGl9P1MxU$m zWH&Z5rWkV59R^1(qWOm&2olH}IBzu)?3V@VQ>U30M^W!v^M9^+@v02;j;l2|^FqYC z^p%+uAck4`Zqmx~-~m=B%t*?V0M3c7L@%ifIk)V1NRf!tH%E6X|2Fz+e0R_jc(4y% zAat8dKzs+;_)eg>1)E?1z%S^_!h7IiuS}=$I0Z0VZGnR~sx6l;jGN?JT5Z`wvBq zX;J`kp#(7m*bl?T*~+as@CAGpuZ=|VlTl(}^?_;#8bQ>Z(*rlicMFi617B>2>IQ_Q zo;oDK9`Y||NvDF^d+VCrA@8|~+e&`#C|IP0@if2EUt)Wa0*#iZosRoQHyrQYn1BTc zed1?Lu@|BTnvpUb*BFE8ws16ne!dsrR8{29aE*^XjT0C^OW}@+i{3cVwC;eDkQUDm zu3Hyx3@SQ=sy)=pClC$vv71-L{U>2ZSS|4iHS6B})bhq&{Qao(z^_A+%;hEQ(WDkW zu`(mFce)g@xO6Eg}||2vA=}(^2NT-A5T}mXNjqx2FP@;LLqqI+>Uw^6(ZYI6G#0~fVQ}t zDV<1}CTr(XbI}<!rG;?VgDuFkCKyrTJvIsg0{c$USkf*mP8`d~wG zJxR(*$k<&^;-rMRLw(saOFmAiFyG4eS7Ca4bWlVLt}W9mtdfumWREIL&x=Ua+Niy; z!53oQtcAj>zz$%hd!8^FhPF9(NjukIkyVw5wH1*t{&lY%>8K$$a5Wc~^yoM36j$A~n56-3 zG}>jI-x!T~ekvy8sKYoV1GkmSA`c-k;@ zxB@^CreJlUb;zS$4{@pu#8tL4#$x=sIpcUn^m4nb?(OSLm<5VFx}VDM((+yiXTJ^T z0gQ~MeO|}@=3Smq=jZm+TA6S1rfwoH8J?dL;{e7A=H?@Eu> zXKq6CshbZ1BWV2b%Z=U_DPgj0Wz__I0*0han+cdnx8bp-O^30NoTw(&HCtMeQ>oHC z=(OME8h{#_{cYV@KrwrsdH|ZN>C4LVrIJmUD01Pth z_K1sr=`~IOW~MFz^iajOES3i{7fI1vT->E3`1JCpYXX|$sO5sK=^B8rhkpOtW;Bl{ z_v=jDoFt$j#LspU`E4gbr|=cVKJI~xUmq=G&FK}6G;8i;6= z2rcSDwTMd%9X}O2H{0ixB3YD-8Eb|%A#ySSW~!z=5^$Z4{d(S*=faV0eH z`+Hwl$~l`RFK8RU`(P4Vt%gd`wY<6AI|YNjY&cp^^haD~_5Mc5?l^dkk#5iJ+SHfP(eT>wW6OKSB1fW@&^Pvr@=SlcnHw|pEwN&gK-X~#jLL1vVB z@0VA-Q^>v9N~Ij&xn<@rTZwydgN2OYttVu1EwF*7i3!yStJqo?{`inbL@ZQy*@Bm}n7mov(gQk;AHeLkATNE1vfzrXCxpKp z8+ys=@pFbd8l}Qf%*h=Ci3-`^@n+UA*MuVX27m;-? zd$I7#t*}*?mJJguWlTNIYzg*b*SnQcl4#z3{$;AJV&kRv8I&)Z}#^hM^HE6?G7qCI4Lqm)+dUg{ON z%io-aMVoxF)8Wl?FNQ!j*h?wS;xTQ@f0eP_i4fyklV!oPVIVTxNpKRVj>HvK;9 z1|=|$CY!<;vo~-Jp4@w62_CsboccQ|gC#DTo$E|PBodJ$p=RVC9+9o^$FzG{Jm+%&6Pji%b{qa3#u8*Q#3L3GBxu=F?>t2 z-qr+sXq>cP+=d((ejBC_ZxQ~$rjH*T_<9$!q_CM+ySO(6f28VbVB zaGDDYzqrhI-<@dY2r+McQ@30s(y=;Ed!lI~C@12YXti$kf@GgOQ;Y(L3iruWP_`EM zbXkk6-O~Jvb^-3)9A;o^8u^<<`(TPxkbT(_lqpMF>c88dU>tanS6Hj9DjQE z%hM)$?~o_)vEhb_9$ga&=|D)WdyUM-Y>OL8Pi?tH(ZZEB3`hBx2kO_oCC@wSpc!-) zkI{0F{?L!iGqIu#kJHQsI&ZMXxV4cuC0$7rOo{qjSwKSoEEc@6^Ay2MR^}ek6X@40 z<$%EpyJBDUvF694ML~Us)xN8ukaZ)&r_(;uLe{zN4b7}~&b9*` z;gw&L?FKDf(VDk&I)ei27*ey2hHO9V}cB; z?vlrZ@-*57nh66fXu3PHt9C~cDCEA#5yaZ2 z^ayOz?GAD3ctQp=txpBeTjwvp9{!&VIB&|8-I@|*tx{u0+B>G@?0s~{6wcY*%uK-9 zp%{EgDZ%&>R{JG3s&q6?H=+n_j)X)|bqlJrP?BO^sRckUJ4;_sFQ#FzDKzGc z<-4L2spHcZx5bz?BdCHZ?&GpF%=V>Fb-)@Ub08AGspK2vbReXl?4f?s0l6gZgeB`; zX?ai@X4~GN2-8I3Wn!s0@t{T7F<2q`poa||qt@)|HbAnA8k$sM=Y}jX-_1Zz=|?Zs z=woL3DGum5Zm-UJ?yfch>BIo7N9*qJAxbQOryXsx_27 zJ!31*?X4w$c#$)II@UlDlsO2dt9K`TlOF39BpgU zO2x>Th9_%lWSpT*Ta(IZQ;o8^7Y02%HY))8`wt(~PW2>{rR#oiQG;TMou_pNUhHzI zbBn_l3y$~kkY?a+rZ;Ci@;|`hWH&)ls3>Kg4XCUuws=uvuD5xw_gz2;BQ)B68D z*8;KQ^M}RFu5!(Nzaz*svMsooJ$R?@Ju7gy)4H72eF%skU6~@0eX94p-7+2&oiDOu zn?JR@=RQM8Qp;eS6fJ>WQ5{rbZH*n9pBx;`{`xdw3(#j!TW{^E)IS=oFj61Og+m@b z{kx+5#nSMA!P@V_Xr*?Z>-O$(rHD#Hnogd$6qtTt4$DW-5z+} z2>CrctOmZ+j^^vQKj0=R^NhW_X|IZ&@vzZ}VpMtv(cGb)P80_qexB z?MrN7$Pr9)pW37OXV=~Zqt*zM&@ykOY(6899fs8;RN*8_v!|EX;-Ig8!a2-8AOiHu z6~Y8Tkka&n@qMHEG*c6=A+O+EtwSZ=ki{$7Qu9sHf0*P>QJ9IcV)1LS_OZ|KSr30= zTfeu`x?e6R2E8|ckpMxwL{HG8(Z6>!FN2f5*(cMGpizple-*b*0}1z}duQ;Xzd!R& z)h37upUs}z5rvmuP+h63?-Y?Qyi_`X0hG1$!FlLmZg~x_aa*{OvFax?c0y{WpRFWS zYdQY$rl~P0^H?pipAX8M0vO6)JE63XTt@%))E*cgYZcdyhBb~pg ztu@VD9;f_ILixxqD=7Pr7k@O{t;KRBLWlf+T1tITP_OEo)6nbxgcZ;yBQ&vW*XMt4 z`QSbMH_-q1Z{YO&8ITr?@)X0kTl5p>)<9iaswPaqJiSITnSvqPthSNdWL&3_(Hc9F zd#|t*d6sslF0r7nu7N8U+ctwPo*5Q1Pef>w16FNB9N%af}8GDmd9{l{qEGX!W&D?Qi) z5?Q06^lgrFSpm`%Lb?36yiVl!u=!X&VMp<~2BVq^gMthNX)youXR=<2P0 zl22w>+>0k$ziZsa?FX+UIu-Ifp)6D)5I%$RLqj6^_3FXRPC76l0~9e;eUtZL;F#0$ z$P=>_?fBM-jtG_ZOLn^KzTf^*#hRX-2A5{MR8Z# zlA%0L6LMQyI969rFRqQ&dO6;Qzgph}r9f|JjG_~HDhbNI|=936wEYcYp z@OQMl%7LCdZOC6GNWc751Y_Nu!vKY7uy9JV`~(i}z%0e{L?%}3CD~(I zhNo(XiH&fiYY(#ml8#m{>k+y?ZCj7x{>cS34h_z$dz}U6%na5p0#LEr(mH;RsSwsz zN$R-^f?}HM=v}I01a~~Zb*~w7UOXXn8_zG%qshx)*&QvnUxk;nIY;DnY9w zmlA|<%%!)mM@;`xou08F3@+X(NUu>W9}|GhU!Jh@BQR;Iz*&A0g3VKnDz(54!Ms+a z=#^JD$l1!)GwPKLuY=oCC{pUn4cjkqiR3#QLbjkD z+J$NgVHkr+KnZ^|v#~1u-?l{&gfUy}=^r<4U~VQa(NZ8*V~j1GQcD%2qphC5y7S;- zD+UEi*>(RHnmT301kCPohn7k$0+YQT^%gZO1xpr7uFC2|fDOEf-0*lVSiXp8=<^-` z5L!9na=Hmj+i&<#lO(}pG6`cFZw2y`6qeksZm?VnqkA^jf$4#Z^2}{^V18rP+EY{- zn6Ky>qVy$#`RUR15n8EWUi~hB5Nr>WbYq^`YbF7>jJdNPUjbk%c*Y#{t^KKMi(t<6 zZ}?K(MdBow#mi-G*~bUuvPk#&i>YAZJbrk#YAaCd-yXbky&KG{#%u~s&jIsIqIUcb zvVg+YcrILs3TAJ%T$cehFh8pynxsnti<6edbF7a5MJ6clW{)wDFW2(%UcU)ut5yx) z*}ws2o~srd+rbKyUb*+VMi;=mS*&NtLQ$ZqIqm<6x-H=Kif=o!P2DhZi@AkABfyqw$Cw76FK;G_ien5!|lxD+q z)Z1o272WfhPw*&Et!@W&e{Bcy2gi%W#R))`mrxRL*$+knTeb#Yu>;eu{yR2QMFW_$ z>aCF857bqDhje6j0X52R*_+2JfxMij_JMf`7-^QBGJYrUP2R=AYpXASajwt8(?=J9 zp5gLs$6bQK*zo0^dD@krLkL*uHLo0Wyq8yUHoJk@DK>WlX$(l~-bz2d5fA#cR{{eH zo`T-`d3ShtSb$ofIMeE)EoeW

    Vh{0H)dMd->FY!LT6v+WV-LVDRYE)yog~!0=?f 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 literal 197151 zcmagFWl$SX*S3p$ad&H>xE0p|B}fa!i@O#HuEDJYr?|C6N^y4r#a)V9fZ!e+0^~g3 z_nu$Rd1uc4am|{0{oCuF*|s)QJPykL9q1>|xZ)Ydk8c6M zysMiVOa+(lWds-=Sv!W7uw;BNq_uVoFL|3`XP9H{7*_H+L*J0p@NXr!Xhfn_8auNJ zxJ;Yr;=YWP=>lA)%-r9;G%+cN8M|^{Cd@o__m}0H8rsEd?L^6>+P-{mViq|T@9rQCqnUALN2t;~`ev*aM6)1e)y4Kd;2(P2HH6R~ zXIgiWEl64ZUp(VgnupzR*Mcw?YWg3)8$w8r4XmEID$S#ADr!L#3sTly!vBMs!N+++ z2<@?f^)qdydBlx#E$G!khea3u|Da~zvB?lZdAw-#ELmwDb8}n^Vpymddb}}&Fdi>j zKVwxwLvQG6LFfw|R$bh<>R2i*qmC#WGbFfr>VJ1`Us zXQVz4`)?Qvfba+1dhdCuA(*fhiziAjG#p+)eIEDUFct)H54sK9S5ZSKU@cZp`e5ic zxEb|%)PG}x`aA*tUy!9fkAVLdx~b3O;r|5?^?3~ZzpyF*q8oJUyLX|6yn?k@K8b>% z(eM}Q^QoBEw=m5?QpA;S4=Lj2Zip0dmoz|nbr1bZdi9WLDKWOHnYJp3^cjaRT)7QB z{r`rjS#l^>*cLA+<4mCs=mH@qdqh1?|En05B}aUPZS^8Q&J_EAE*QeRN7VoHzlsW3 zayVDmmM_fXOpy-}0wKhEM1PZa!DO5 zStA-ho^o!|1ES$^rT66zw_mYTL@XtAwcl4EmHx3EGJC52i03AL>u?v?Auh&_9iFd8 zL}JTz=Sf{#$~-%}A9ms^8orqrosRgBlpG28v{KEWkY4b0wG5QUpOWrv;M~@y&QAP} zroQ`zA~nFrs&ptBEm6l|nS;xXAt5QNXaH^;6tVnX_nBy|fQ#rzHTGT)@)@S1Hd>NV zBFn)1`M7SUs44fLtO+}7s<5m%_p^CODI}Dzr3L>=a8&C#RA3_UULl@r$?;hYJo`k9 z-Zu6d6vJom@AFue{WnUE3+p^;7n9KZK^1~RL-hm*(-m%vsLo9gHHW-2(X{mozX+p6 z{}Z~1^abqR9)X=CB^dq?>2Qi|NzaiOFQk-j=as%qpy9L_ndu9!LP!{0lzU@=2 z;D`oFt-8xy|J&w}T>SGHu_b&aCz%tXMpYHUiF2pJ-+bP8y8A0ZYS{SSqdI+(irfUK z85*jqc|%0n8q8xj1%AK)%5iP_S2usND9ZRoM){eY^=;_>n+$u;n+B(0Jd3 zC_hFK*>-#pvGWHaE4E)!dQUU^V85af%Gj$FSF?LDcxL-Y$|9*qRL9gE4e7V;VapT8obV7Hqu!Xs{_gU-?Wg_vh<+$)bLV=dyJ zgmdySH)43h2Cd^xc`n4KE+^Hlz68ECT0WBHB~+IV;crj%bAflWO(lz!cYdBsi8uN+knUTTM{`EMHW@jY-dU&pIy zyc&M>ulB%rJNvksj0RXFVk$Pf+4UOO0WSDATDmlek#v3{DKdDxM1O8y8X*F~YK4Fo z{+%Sa2ZHO&$<~tIc!)rv{ko1|J_pvwH;q?V8t^CKzTIU|OV6`Ccpp+AmY~9PMRV~V zOAyttnMyMe01+SUU_bIbEvA*7V_3}W?K~ZUG+Va^u!o8mpv_4p7-2eX`&-^v?y>cm z*3VqK@7RFxoL{5Shm6e6bYjCG-F?l;@3|b-s(bO2JP6~Bxii+2mZJcEiEU=m!V{UkU?4#u+n(tm$&D3 z`}E=DUfONwDjRpojW5V7b`zBRHx;+Wn9nG?XJ2aO<7&uTMG+aRp<`3x^CUb!Gw#iY zH;uPR`xST_9J)ZMNVxxBrDJ|I(JCeqvQyb`!wbKXEpf~XX|n##wJf*W4WU3ta^HRq z>tMN(77XcP!hYcwYbD2Sgs?kj>xq1h-SXSL0F}j_?q1xFOikh&A>v*(v485k00C}R z7Gc|&GJsDFDk1hQva=Af8Nc5hOoz?<4a1Wr(Zi_t=YRCg<-_aFWMMHvq+m3sl_m)P-Ivtvy)*iE`@vnn;C*|S z<`>xRc=F-lw%?hTUNHshtU>qAt9qPtpz8Ri_di#MQU}lYmG_iYMS0Jf0TZ_efBZp2 zDZrnUI^S;-AQ!Qds4GMtMJ(s>6mQP zq>@r7Tp%CpT4mn&$x>s^j$$=F6KnyMO&a~d>=!{PgE#k}#Ct~=xYhBP4i0-E>j93A zZ(KPd&{?ge7{EHEr=9>zC;~1+={SA+t~d<%v(*&MZ%ye!9LGvlV!SMNNRb3#@UzOT zIC?eg4!u}K3X<%EF~Nk}qDg}gF3OJqWcs+t=d{XwcRVH>fz=Bn22yJNg~wUS`b)d6 z_!VmPKfg%=jy66Mm&0zIwt=4qPxXuQj{%ghejpNe(`WOUw0vSP>Uq=q8~Ftyhjwr1 zPOVtp*d9PI#rBy#iJ+Nk09ZRSm@5>$sK^2$@{59!*+J!U9T5b7@BI7Y$E5vCr?>9< zmxEoYA<&>QxXv5L7dxg=fhrB~=5qoOBqnG8fdYcC4#K;K#5?3R{S}h#W6{yjesGYSq!d5UpY-mZJ^fT=L71o<=e-O; z-M^Kn3kijwzvtOituo{HU0=ha3xn;TQ=xRwfAA-4*)`3E{qx1;V5Xse@pmEPM3oH) ziNUQqvCSbwJ#)s_hSO)51X^AzPdJQt=)7(U{?MDW%91q2`z44;>+gOlIiLDw;OvP+ zU-%RmX}7_6f#-I^&3(Zy@RT=c2Ht%qalQ=1J?LJBmffA6JqXFX<#S98Bj=pWkp9rHE=u~SB zQHBT6_CE25gJ^=F$$jUAc=xgcVu6sX?@RnIXF`blgO+nrX+N`(t-xf0z3=^}ls(6x zWG(6hcO4>$xtJkLy?4T_xHVJD=csw&liB8#<+rWtYkr;mK#2O*OM3pPW)Oc?zOVKY zkyM7CDH)p|J=`~Y`J77W-5Eb_r{>mkim5&e6&#)Wt61?p-_|95dlhfKyCZzB5q#t;_b&m;e z>x;Pyv>P8vc!;W%W9fum!93*&3O(;%5-xo6pp!KJu@%~jY*{4idr1P*-#bJ0Xv9a- zMc8>*I&M%RKFpJPNTC-&Di{u&ZDr7IWr~FR{?QNOC+mT+#5_B1`8dK_z2VO|P-F_$ z8TP9nSEtR}@n+B4juMeGBIU0&Y6!vz5xB(fNLbnch{o=m#;_**1`R1NdA||cZ#QMI zM)c=?Lv=8y{l2>->R1ohMS0qV?fCCjI1&=W619BAkQDRxLAo;ave#q z^J67!vrIXMtHOhU{h_aG{*7?NtE6*OCEA9m1@{C0-M3xWI#1sN~Q3-)e z{8|R~o$o8rG1mN_00LP@+O58m(u7*C$&DvLuNe$KJo`hCZiNsjh~47+$+J#*03BC6PP9~m*9B1dpAQuRseRg+skP{@daw?>vaMxwv z%8>v9dG7PS$bCL}e2jU9i#?y5r!;`zfh#BCFCF{P(<>zD9cdw(t>5$ZeJo>8;`kYn zUp|sd_B07`BzHIlmlf)mLPBiTpF8Yt^BzuvvSjS(E)WLz8`$u!5Ff}>(!+)SyACsC zVE~A(Y}xaKzq&8v(CwDq|FSSY9x@>pMD)P%d=ikIZ{L7eH#ZSOp4#6AE}cBz7G8&V z7Cy$Txqi5-5{`3R`-jY}E-h3QvVO!SYjz}qBy{K6lO|(0`go=NL&AQoScx^?R=`8* z#UEVP+Isgw)Qq2B%62w48!glLCwiGY$9-Kks6)|zl>M>}z9tIT`zT9?UdCpzi7euS}AOE8miq7oR@c8lwz8GXkWl$skPa2H;zME((_wi-aV~F$$ z`9BQd8DkLC#MuA0>qo5TIZpOtB#iUz;#`9vZ5V*hKH7J{gZ1!rZ-kZhWo%3Op}N)_ zRX-BG0CZ*oZl9{=PAuk!3ONQ3#2)*R+ZK%&Kx^%BR6~T5?9bg4!i~`;rxlsuGo!Yd zokbj^*GG7`hJRx)s>RR!PY$rxTtQo?xdX}DIf^6L*_7cs2D5@cwit__Dv!ulN7>m^ z&&>9;8q%`xCqcjy{Woz4a&QvkzLSf8!Ew&gUL2%tN zh{Nv+w1@U4wS~vJr4#119W_>$rpyyd>&ugcHw!cZf+&|%$sP<0gE8|mx zc%_oc9bwpG8I;@R+3D67J>>WgSy$UPrL^<)e}vsev1hu;gTlXmTx+J-B%VV6<#!i4 zE~bg{2jLUt@0pz0dp-1W7B7i+5f8!>X+%C@jf#j}9Wh+?wRA4l_7hIQr;Bt$;|h$K zwxx3WkRlXL61sQaFpXo~7SOoBNtg0R?D)#u5k&p;D(t_GQ{P6U<}c8BevCC%-o-cL zV)^N%a@#_U0I?UflS{f%p+xlG)k*dH_Cu@2OggLS)7#M?>$=z2m=Ldm0t{zjm-!_S zOHsjWO5<;r@3U;9%$}1kh`S>NyOCgjyQp`}M_i_yje2NG?IB;0(!m|p^RhOS<9`ye zTswK`rYTV1Xxas3UZlfxkrlg!iRkAO$=*>TubEGTn*Susqo<$ldq6+ep~&=SWtzRi zV%@JH;ss0L;C;^(S{#+b3?qBH7x?-~zV6!RpeN9KGdt%9%t(e#5%WfZ1)Wf<%l&aa zqK-w)x>dLIVc)ojx$Nm+Y{Y8Xc-w8TvlGiuxh3$;N8GTb)%%q*?7<@aOXjVhH)0OD z>b4Ne7qrny>^<8|>afm*y<;M^ictPb`S|P<;bC_7^`d=pw2{}V9d5tfP}-()vk%@C zhVuQw$209k3Am(?mOk`m_KTXm-`X+IY7TI1I=lx>PlO0$(H&p}NPfNq;|0n?pMUKF zoQV!f2=+1u5aBQVt0$OIgGHH58e2nAY|Ip<>6apbvN+Jdu1vrJwoI-$qkr8|sj>X?vFRKrBoqm_-3liA2e|8l{op)3OfbKWV0B+a+`&l?rpep%uS z0#awyx=KIB&QS7LCpMe{;FzbsOc*}AKzlf^hrGu&7>Xd%9f!-G^|XAwDOv|<@ongq zd0$(xPxDg;7I$mY4oA3&mSKB`DmZ&s0%tG|qzPMvv*xg91D1bp>yuNbmv{g_tcD#H zL90oCMAJF+-Dm@{7VH+H$kIrftoy$V76+IO8cSg&Ir9A0{vp)X(_Vq~uhar_d+w)) zv}W%8iwb4>n_`zShYRKC#*BARA7C8{cl_Th*1R^Dw^ns(SA194E=lOJ#Dw&q`_3qe z5_JYN;dvJC`P+n8wwS4PlRRaRwK&6|HC*yz35y$%W<*3P1GTBNLBq(7C^ap^d;{S- z4E2Vp7%^JE2-Uc$IE+5QX;>Ra=C&|K^vsB5<_TJl#>3tZ5mqL!0k66L&jxx8Q?8}; zyA5<Z@vjS9cbS?lbOO^)x&xG;UOKPiT9YlKWBBdnld-M(ZwOe|u&P zic*aa@UmR?jrPBEl8o;ue-S*<#j=huWoaX;>8TH&wD8r%q)y`uERfko{Z;c3Tlu?2 zPiy1#(UCM!?VM8xDCZv;I6y62^SBVB;<-R7)l@O8_6Ye&k`4o7XgF@p_Q)c=rqP4U zCiH>shPPw#6jLWA)VGe}!Qv;>5_!Ud7H>_Zxty_qW%W?j@tMlBSNh9+Uj0?0G+S3o zzJ0qK_G0-;n{N1n{Q#vRhDH17@ZsJ8t^kbU^iPpS%TSP}ORy-aojqUP#>6fLWlYVy z_sMLu1bg*|-P;(8HQ?LTvmI6em+KY^-%dhGMe+#rJN^i`eiFYMzHP6_*0tSZ^PwN% zst_*q30iUpglp9G9d+Elxa=%5ES*;mS3XWD7H>z~W$JE4vU0l~Wr6<)$1|J0x!(n$ z!7NtcHAX8IFYmYom38TO8Y)t`7K1Pw@VkNNnNq#)|EgZEAf_yUj>4nc8EC@I`2n{D zS3O@3zmF?E@mL(yjZS!1&}1zmivVZjXjipqO(i+X7UDH*7DqE=0^Kf(lkSTc>Kl4I zV^ZIGz2*d`5**(e&Kcr-UFOBJOThodZXMWb=$Mo@c&ul!&CFeQJ}W8!urW{fw+z^* zz~C~7nGgSAT!F39hg-WXM+3W8Kmqd)&<6x}&}sy*R#v#JV_j8@#%J*JqFb-}D?&xZ z!t^$~#<~=GEpGGcoD04RXL%Ttgm2aKYP4R~O@EM>ZV+mhyV!nnKy|2*;5LGicJlzI zcrfm@P)+p^A)=!G>VNg~n+!Ub5cAb}KpnY;H3#D--1@M?8Is3eXtEY>ohD{WLk4`tUN0vqY_|T7r4n>VO{Ua<`r05p#+$}52wny4*x9A9}#gQ zEwBL-^7D-0I9PX?Stfa5NN2)O2h+Kt2(x`7^gL>W-g9T>S?`5aPahLqtrdpRLZ3;w ziP80x!XA%*SV)^3{A+`=CojU!r(k5hOAf3UDrHGdUkRE01;J`;8De_DQ*PhCEo4Y%I z2cd4qW%mh| z)XJJmuh#UHz#eVJl(?^1uxPF-qA1Aw5o_Czs2dT0&AD6uu|y9YkP@#WGk$9F=3=N@ zLHH2os}{^Omu@BIIxnENZ3ZQK(_N>IQJ{<<<)1>100%T&xyw;*=tgW-w5ghz_{mT3 z6F?QWa$oU1&$OvR??P(kb4mEAp@L~j1v;yXp?m9yXwx|)kzgqSpP`!pw#uqu8E;tX9BDh3n7|C z?(HD^gHdq147>MeU}`qwPtvD|84R0iQKzTx4gWElY;!L6Gqv{mRVmW3 z?>gA`xFX?(zk_7C)mLG&<2&FFi+;_*BvXp@c1CFxp2D87bneGH5tj9=3e{V6iDU)r z^PM%=?yyL<&c|q;2pfrL3*UZp_9jF`?s1<`F%qbTylg1}WClM?^Felpe_EnS%`m*b zF09E|Ii`(oWc@Yiu+g13Y~C%~J-8iuT`f|{vy4Df^@(QqEtrtg4UwYOZPjP>j`wB} zz5WPrUapAx^*JU5El0|2$CQ-yd_yE>qzv4@ep$1^U+CHb9oa&k(2iY0%nj-P#uzc( z%3`u3jl15keRnMs$y!2DWm2qVZ*#Ix^LYP`U$A{|bUsRoEmBjL3`Tq{T4gZ%S5ICN4Q6{;wQQktmkEY&0L(~I~!F)6K}e01}^Fn-^8B; zN5SLyX{T}IN>G5QV7g)|WiaVq1JmT&mIXodSEB4MGt1AxxVDY2 z6D3RsaNb@+X8ndIV{8CLb_z^U)bWi>`gY5#vm~V?2@hMbyi3&+ zl47OJCo3X$Us#jmq8$l)@SC2p=V@8?O+LPsKcxia{HjNqRzZoy;Cv$UFFkPpTLXso zg|hEGly6?G%UA+Bea)eLe@)oStEgM*rwQVC%PCewU9kwv>y><0CRK`GU$;v^?$~BH zNiG(CF~95t48&x2rcXLglnMpY#9EL3iAj@V!0pzHns52UlG3S>&oG{!uFyX3hAoG~ zl2Ie~nB}*@R-mAJ`TIh^Hub!>c&7rK7rv|0sns;D1xZEv)@m9v_%&b%#unl*mHPtDtRS^VrvAh_Xaqto#t zHq!iA+&5Z|FiXj-LUZo)2LaATlh;>E_CfL{wrrOSwEdhGDuQMWNK0Z5j`dYgzoqSj ztdm#9EERh*E5wGQHVAQ&Q@brW^I)@e1a_g5zq}rk{CpT-LQz$y4Ja0*3{E7OJg9~v>v zif66R7!d}PbN3GqFA50|yU(+*fVl9RP`mMXTbYS9hVYx`tYDmf-q6+Z*XKoMQ$KR9MhiOrg*e>anzs zZew=}!1(Gmb@B}7r}}}?QcmIR&2vxDMqN($2GY7QSxU^BTEjpfk(2v_zUOkSJC1&dQAVDjdL8j(wen zLJPhA_J4K6#~B!AFw-i+B4r#RIvW<`!20%v9;?+#;j3j@?_od)@!Lw8nN&6sTZ8l8 zhL~buwd}$}i4SSas}+GyPXR7kc~d%FHS>%%=idHbIs?&D8B&v`@_ezPYGnDPVWwgI zNZ5RRmLIX48|g0-Jm!FDNc5@-*3M<7#CrV*nzCdQlk&J8^WsncyYVvsaUn;?5Q{4f zfZkAYt-$V8(Cf>;&R0&M*)yE2ngG~^C?J6n)_A%ZJzXlbQx`bCWEtd z01$77s3cGI*dOC5Uc~9sjzKtiT5)IX&gbOdrT@GY9$~!4{(JMO?EyOn@GmZ{cW`Cs#>g8f*LZd-e z=$!Hf0P@aKo|bPUUdjNAJ$P!T!M7r`Kl4jDECbWZaZu4LB~adGU4m$mSC#qN4mEiE zT0CBVyo*%OoDu*~?OT?Jz6W+!cI-vr#zxc2)E%BEGndrjGO$)hjMtAA>|(FUYn*PE z`m~`ESNH{5LO+Wp8_Y4Zix&~0WsvB7KPL;_&3oQ@eS8!aPZ<2JgA_|To5Xd$fCe?@ z&_7_PgI^&LSvA9lYp{8tH)9sEL>5^Q9#vU(t`|Nf%Cz3Gfnj()$bWo%juLi!-g46x z6+S18z&y^Qj_n;!slQFKVuq(Kk$tTqd>Xi2yYiZq57lWiim=7x#HL*oTU%rwe7CYx zaOCs3ew5Wkjv_g>ml8onb4$~M)c1Z~+p|nI5>IR|p$YZ<)v*xOr5GC`;oRocOmaOl%!Bi3K;5Nv{&c-`MV1%@4ay8h(-B`_z|L|jJ^KO6+m_$7j0n&8n1 z!PBT}&P{yeQO;}Pj=?u4|14Wpkq|T+jBamz`U?5PuD zzw6e}-<0;Wd%Hz_U%AFqAzN3$^VmhsnPz77A0L*<>bP$nmfmzJXuogKhLjrFg{8L{F|sq=0t{55%hE zPQgs}^!h@3OZ7u%(^>)J#$_Ae0031-Jc`rb+&B&MZIn|;rX z{7f*rFgJVZGNbsda%h2KocjabSb*28FOK$ynEs6M3U~SFL;B9bx$I=Kf9pDCZ@mED zL7aR-O@t$+TK?6X+cCPDWa|6B<5(qz2J}^uWU}{`xnF|sNQ(mzSY_%1%(D{q6|Ct_ z;X8^6Gr&dBV*Xa&Pnm86f;5|+I^g#z; zu284%IFMRsbb>cE%+ki@cuag$=Nnkt>$1`KS8}y%#rfv#-EfxcxS}kW=uoo#^SvCe zqS33CNs~|*0Qm!n`vbjTnEeqp^2ZOW_{mPGm)#f55nH&G^5$w>m2M^F(sCmL zUm7pvCHhWTPNjXyQuM5tK5bKH}L1iyO%0X49 z4nGn5F@CV%@awckY65x=X_0O*LnR_Wo7!NJt_A*5Vs_fXRADdv$@A}+RY zxg}`f=St?=yY?3)WbXRD&Xnbc<}b0&L_o29nH! z?SJ0@p|@q@!;O_L$j{P;YE*2X(TbIiyN;!7GYM@! zj}4opa1|zKh5UF^0EH+wg+TT&^_o3gUV_(@6rNt7naDH6#zMR&nga0-YI~z6d=pQN zZ^z)E_IIey*`{)R27iKT-pKSR&b{J!q=Cw9U5cJPbeaEbKf5>YeNHPJl!!46(MS4> z&6gs3{!@4Er94?!=I`+`+x?chnU#UsY5ig&4MR>1GqJidn176-s`ZCvw{a4P*`q`4Bd`cp07J|2|zsN0=zCy^~7! z;RR#T@DVDbbl8tFkIa1x`qTORIIVfQL0?`Nm*fy=q2{8ZDlV+`PWWMkK*tN2)-LO5 z{-z7_-yRrBTEsoS{GZI#|IPouoGL9EqiTM2s^g`&ePoyRXFZ~4*r~~5 z1P42HRHC&C@sEMseQ~>*R*H(X<_@~hBut7+&pEH&G=lQtdr$ybwC%4w(mvhl7Vmcu zUml~rqQDjUxIrvo80~i)RSj}}6G7T%Q@6E!l^$2DQ$aqy7v}d(`MY8!wYD92wPsEx z5ratvtWNQShE|-BI@s-CL3%dkXz&}Q`_)upz$8rx!KKN|Z-x;y4Pt^CLjJfSaQ*&j zH???F7QJ#O(cxEgQTU#l>%4XB*me9boqTcIKPv%EchAo0qBZ(3%vT@MYbIs*rL>7y zN$S;(%J@CsGR3f-T~FyLv-93{XqUyug~_z(BN{qlr!;f|)AQ+*wTIhgj{8YQ+a6C< zo{ZU&cbbI3W#Iah(74_;}lbMa?51XIwj-c^W~@-BVA)5+re_*6D`phnVz%1?2f6EgaF2ht?lY z4v38_Z(_PANP4=LEdJhwGN($AlZ?I_#}4NRAawg(i1A@St6P0RCS6reZ)^RoOTJN7 z)+@J<(ZbimQ9mdRW!!V(a{jp@Wm-z@W+5l4=ezw?W2mo`6`b${6!Jg<->GXFIE?X% zEwMS#@zKVJwQ-6nXpuwr!j*Y4ns^3enfd$_x8~TDU20?qNkcnHAvydNqb|?v>!Mea z%=+1-v75ERnmn@GiRr$-7oE$=`Aa763?`gqY;f2~MeFSo;MSm3_*r)EI7qY#gZ$f@ zOt9wZa?bSw zZvx1NG%0_x6hWKbOU?5$G*Z$sby>5c?ObrCQIfeO%bnJ{;4Z)Nl3U5C7^cU}UMhXX zHTFwhY~5J7z#TK8Y4Gg%m?+FF&Tvmbfo0mrJs!~$T~@@>EOIXj)0+;yx%mgYis@Yna^s6!Fw>cjaMYt?)VN$J52WVv+ZZUi+gE+3#C*eEj`F zwDpb$G1pk}(8*}ljK4phnGIaXK3lP4I#KK|+6FRUlXRJ0=hw>?wYxswVtfP%5Vu`i zI_uL815Q^ukI`r}EUM1eUL)kk`d~9N4w?eSC-l;AFVb|^u1390D6R+Ut{`^+QTS_^ z9lB$wiIyAxkIpY`6dG6)d9(Kj1(zrJ#QGd!PV6}sDc}<69F>GPRgD`KL)@i9{tmg8 zT+@p2L@c&0KVpz+-V$@-pJll5pKW=E7Fd>0#*h<;h8RlaQQ>5!1 z6q9nXnS2M46}phwFd*4Q7y1>+w*2Fa*nw$c>U8Z62V7%te_sQ_e2iZe!wmwxdNdOA zwdq{LETsc8zG?LdeF$LPCjf^Z#kOXKz$B*m?delx#EA&{bZ)s%7P0c@g}`FkI-V?#V};`yfnke~ziR%e~vlVIHRNjNskqFbaFJRTWJ!Ls zh~uP8B;_5dnsmI;z?9Rwty*0;zG+>H^F>d~G?hSK+A83Zalqm=JL8na7hI+BIx&B$ zh0q7r%w%WHpFK|E?@oSCh{(=-DE#M(nMHm)^v^sU<==Cv*hXwpxbhgGFp(a*fSU}h z2gIFJ!xWZp>k2}FWmbrL97Dq&7EZy}bZ%kGpw-ux0j?I^J#RuUPjRTZ&FtnRh4Jjf z_#bVmZ!pqg_6x@A+^`!I6S_C zhJ;gg^#78Mf1Fxt4b(&7LAwLZ8C9c~YS)#S1GIW}9==hiGj(I6t-PW;``{D0_x;A} z>QK73cF1nAN?AY#$v9tawuyuFHjS)u2WFv_(x>ISfOB1~S}@`N6Sw`Ry^-kn2-f9d zE>pptEb0~SP(n8%IwD#NYqicsVfxs}Q}I2Fmip9i4lCDFAyW!D`rvHd%Nf1fftca9 zDF6Lv7}QUDtx@yaMOp)UrDNgCr^mW55*et=BJY_+affBTdyl1nkDEcWZauo9zv>W0 zIJ*{kETLaJ4}n*|k8;cDE7XXpgsouMoxGclt+?Y6_rZScm7+T;C-}=W?lBXVNB(u* zyKQrMdl_WRRb913r@Z$~Y4x$iaBW2y@`o(7Q-hM@tB3F}Ywc1}Ib0pbv(Xl}tqvnU{8=mxbS~fvLsC60JtexXfxN>Deqney) z3|d?S)QDjY%BE*A6RpV*`wO$#8aD#?_#(J3TRDIi$keeKN%q4HBTfAa$!#?*^)oDW z$pBw}>hg>w{LQ9= z;mWkcEX3~F%$VQaF#tG<5x7^%wi3^wAri6Zo7md#g{Tr9-I)XORnCj8F_Jg)N(z@{ zGg${k5AY1Dz{N~9#vSBPw6Kmq8?tCk=CCn#h3^Ew(bmnbhkf3ISi1+A?T3ovxU+dK zH@7N(jJ2fbT---5_O{Ls&Bk6Nsa=O0tnJ3H;K6qgqf3EYZAPn`U+qd{3R}W=h`-nGJAVW4YP0G1w|3Hj%v_zW3X`chgyg2t%^QgTR=FH^rq({oRUOw9+#V zL?R?#w$u|2eh?J8>(!g;17W6%t@}sL+&5oU6o z#Msl-%vf?_dZm`WFOxQiW2s69$drAND?Y?d!4iBHc>0Bt@sRr;e&aMNNQCbJ$6{`2O4pZp0ue{B6P8$gpcZLwI9@o-MoKDTc^X;^)I zFe-0G%tI@hCz;1HN?DrvmfTZ1)@oOXsdpYsmx@RFaP4H)hjxVh#+G%C`zD#CH ziQdrQ54Mb?oiaCn&+O=DtLQH9JU=T1XtTKCaz)7)yGI#t+qI?4EvQI*l| z8W&*^J3_DV zPyxeO8!QU)t#~%8y!s4iDlD;BE^p?GPcKf&cG?KdFXxnRQ~fdjNDwKyLB^Ty3xrB` z5nwxl4gQMlS}_y)sb28vDzq;A=M?8&hX zhRXw5F6qmeOi^72kS>AVy`a$bp4o-j9~o;g@f+2$aJ$F6elf0p_gFtuce z18_LsGo7mJGVxV`_v=A*12r)W50b*9SM*=zPea+~*M`hjd{FOlWPsCL7&tp;>%2+(nOQRYkr=%N?dKvNAye|4|)vXDb9yxQHsr#cN``Y+BoE5ygcRZMtC0Q0X4DCZm5KJHk8pE zLd-sPnop{yhj*Zktj{110>D}4_vWZBl$}qG2X%s)C{u}JajZmTP~mxe=PtK1jD=O( zW0!~{c}oSb_L-kxZ2pOIYQO zOdYNSD)El2Pss!q{?4T@!*K94_BVsV4F^#}^x_t7A9p@UTs%@^g_m11;tPFTeb53H zJM@*1QN|DEKk#wDLJ`4SqLP`1yA8@=r_?G>tQv6;H7GCNn}*X+cDLNH9J7-j|D1f- z2L0`w+UJ2Fe=Yi5IAaZGb~l8_A2{z%G(2=xLrr#wzJ!K*Bu4Beo!R>43%Q|F&8+F!F6ImT zUM8usG<3fNM+d(@w0|GnJT*ibv;AVO;8l%5xK00KFWb{%*p87sUkZrO=8Q79R)mqY zG-Kt!Om`Dyc_8V{e%qDShnjhsV1i_GJ>zVEfcAUMWLtg z%U*R0%ZoI^kaouYeDiA`5WBqLqxQMe4e`&zks#0PsH4SdLLz$3B=I3s{EN4{-dmMtEb0w&W#@t}Fk=aEAQRJttJf6-X zOoI4kqU#`W+`K}weDIPD(bo#bwQH*C;-H(Q_k3S#-h*k(#LhA=!!H{ggeQ(LSd}H7 zhfQE_ib4#Et$iMe;qx}VW-YIcIhhjHTzSqpSSG)*xgC56B3U$>z!>{O-5=7{?`g}z zKNB#}@=bA_Xojh#5OA!|D#@nu@kwuuME!DRBzX0RGpdkdBK1Hg*~Si%oVodWv}LvQ zr*|<6yT9g^>}3M_BW8;7J|s(PGC1>G);E(7ZlesriFW9BY~4CzH^<*jGG6bLRb(8w zG+V8a@x!m%C|}#rH;KlOz;3fjvi$o=M-U*HGZYhAHt+_Qj z4=mg1`Z)WrTzf116%@oH0ye!W{rQ&=g^3#8kVWYg=#8sW)p z0KAjFU!|Y-D)znj2wzr|0NkbIYnVu2&q@RVYtJ_<`@OTylP$DZXXkRtPI%@Lbe(Iy z58br0p}z`#K#i6FglILao~_&2OfOC+zs-%EOU!WKm@{I2$EqTF7AYx2TvwG+Rj!cp znMthcQ(iY!%$Q@a@kAm)W%H`J#y{mZL}NPZSNSQs$0OmvZO$YQUGtmWWnF-zJ8O0L zKCpOitFis}Lfr3rPE~}}3)DXr6yS6;0cmm`Re!0u%y6-YD4bsmp7=4U#t4IuE<&!& z5C2|do@_|b=WMY&x+s_L?)^Vhokdt(!Mdh#5AG5ig1fr}cXtTx1a~L6Y<%N{Ai>?; z-CcKZmyJ7@bMDjqbWdthYfytVsQTYeqW^-1ziZ4#0W8fU&K4AeX4ik-p*?FMF)em_ zZxWQ{r6aEzeDFAHyMMmXKe7Zm0~f3~)SgaA;U!g`2IbTO4oY$yU1(4Xx;+S9B|nt! z6>}Gi*CKt1tm*RN-Y-A2HXMwkjvn@xLNbrVQ8HCuvaAi3hUh`1{)DNHWEH_7~rtsS?+aZp;^9Sxs%K(b}y@YY{Widy>{Pb{gwKF7rFd} z9B3QixY+)lk;e}D@`3mfcuLOCYup=q*6wio!W)^j#JBJ)bt;l=JV0b~!m>X9GQsi4 z@ID{LZxE;jI+45K&}(4dp?&^{Vu{SORpvafnqI*OrJeeuOBWrYw;V6;8rz>ghhT#p z`P(nvPl~i)3HR~a&mb|=My}(b;4QgUJPleT?sBpf8iV8dw8;wNgW=uYkY4#K8ka=e zUw^MePRbV)BbB#L35Zi>;-bK!fz=*Y00w>4FE)|=z}^>S=iB1CPXg9;Ttk$g|vt<=AgZ|dyLbNZv6?npVHDE~jy zW&b}Q#`NtI)iBn+Ya{Xh$4>+MUq8(!w;B4+7fERHXNUjU0e<|yE6WFt8`t33*WA=d zryCxj@hWRcD{C!%V;pfm7C^V%O)xTILd688DFwRSbh7^-Q8&fGPpzqUP9M3OwfJA7 z!*hTZy_whRMY^5>{lKS0dGyFI5-We7QxvuL>yaludEWj0zI)i`{liF9k9(qMZOtgH zW|O%YFrukTZrGP(HJBpniXBr2OahpYhC2GmCqRv`_g#k|U7?!#YvYv~can(p*Ms&} zcslp9k9*c@WQ!xrh|TtJ{Q*r{$o`1cAQ_K4NW$wUnOaA1Zjae`&@S*MIoIDn#vvH@ zvhK=6Zcw71F**#|f}$z*$F{a2bqmOyzq%#fPF+9lpbDG#E&-5e*r$q-TMCmQffj_;8theR zu*Pjgs}|5fw8^r^3uCW6MN`WPf{t(O8us<%QS(`l_cfr#5u*`*lXY{)HJ!J~;%VT3 zEi@hy5!?{Tv%dGc`PbX1XL7aHtXtJY^4O<_+x_!hlt3`v)bnm7Bxq-^%a-_H_vjiMTeSg zqa|9I<_)?10dC#iD$Q3jd%j(8=9sAk1M@tWh(@eL>;+~$k?_k-1VD`-@p;6KYQ0c9c8V?=%`GZ*on=Qa}>#{h^QrT#T-)B4H zr*4wLq-p84?svgKjgHMp*YX3i+Lu4NSFj$Jo?E&#?0%z!Tj3{}Dg>o;KU=(SXo~Vz z`cg5zAOai}U@qdzA#QFU%B;kVDG%reR*b zg=&e?ym>+50r0+*2Ydk0GI8=MNE&0rDrnc(l3#JL1F2whwrU|bn~hok0zL>S9x&}W zDVmVKvM0hvqOJ0Gaf}vuVDb;Mu=w?=5s=Eiu2he@LX4y7Gjiv|z>#c2hv4NILa=+z z)Zbk|it1&jbaJ%7#m1(p@bF}baZ+w(L;2Q}QqDMjG?wc??QDd!DQ z$~7J?@60q2jipF-GR3_KH`_b0Pr+!Z(xBu(L8sydkP<=l+tlcsN?34RZd*!N#r z?)ijuCY>&nK-~)>v(Y8Uw`{mLl9)#^Uo5w+1SXic@EhHTW#8c2UFFQuUv@pf)Ak{{ zQsS9*?xN-~XY^R%6Zdn^W{70?gek3a7U<1GZDFRlG`L+^NZ2$*E|UUxlh}_r23D`O zI7*X7?xSok!ny`J(uVKm-?MdBM2*+3%?`cz@$o==<}ZF2BLW^9YFg-kgjSQ%-r^=Ys7b|`W$YCx;E1!EylK+faI+$;#Z~j~wMIdD5uNdn3y#Tk6E)m;pM4Dhnw7`5 zQh)F(l;zYoxAKZ_$mq4%GWX^>^iYy!WBlic#Ko!efR5jX^(!gH$`$pOiNP&LD*zXC z=NP+Vzn!j$Zql!^^iGKScrJ$e0n;ASQQVvo})K2BEouCmU#PfZ`hz^qs}=8YXG@tY2~9ZkWn%6U||iqxb`b4FMIJW zPnQ~j%mk!7Plz$qA52Ev(Td-0`_R~>aM@jZXi~#yjvlOh(8bWmB2^xG2x%|Pc;7QD zLr0Hu%G0aX(6pqx*=wo5K^ClDH>_y*o6Bz=P!yu-}4<` zl6*?jSlxr|`~#3vjb$A>Y|xa0HyBw0Oky9d9#@H5z9ug9mZzr@{wDSZsui+TFrkp$ zraW3kHT)ekVSEvIj0+9O@!E<(y<*AhmxIh9TP51x&8jPVuS&_m<`EEoISlv?YA7IX z6-_@6xX{5(a>%Kmq* zTgUuM@o?YP@lgfzTOo2kB3_cHv-P&r=X-X>kG*KA)(t;aaD91fMJDuu=bYt5)*@ff zNU6$j7k&&XjfmS8K+K>z9gYcFh;+enkm|goj@N(L_8N2Zap}pU8?su+|^ZOXbi0ecVQkeN2 z)!e^97cJ(lPBXcRz4y!}_xUK8tnW<9P-2QcWFw3+I4Uw2%i@nA$r_r>IQ8o=xrPIYg43uL&*hj0y>S$MC#b2)> zx|LMU>u9V-YQr0RwJ3&|J9zs>w_6xBF!klZN$4*s@gqw z7Lv_Gh2eFzUL4gP0J`4=q8;9j{#q(SD-HT%3Y09ZJ9RL4s1IwKb{%~^Y=(|s8M$!p zq$O&{{ulnqFfLxldf08#3sOloideX%GVO!M4MomU6pujs0ma=|!Z9B_ed0EDe^BMc z*FvwoMtcKY*11<783_q3nB#guk<+oV@K~c?{NYj#lJtk+_VGs>VwrYLXaZ{jWLOg4 zcO=aiDMZkd&{Ic5<)A%tw@PnBpVxhd)eMFKey?-`E^o|gj0plQJu7H*#xJ;a5@`0j45OjXsmsmvy35=K39hDqaVKUMb7lC)_Qfvg+oN(uk=y^ZEw8T}*!vIlAIC#!|R3L3jXTvfd4@*^K9^Xa*dMo)BLbL9J%d7e4r^GV zC0uX1qqN`~|8w(a7m%nPkz?aUY}#GE!h%N;K4MsI>?ltv5$&3OJ^fY(H#(U^=wLD~ zX})SidO1uV>9$d5H@ARjqgR!%?kR&!*L26thLHDN4;Q3VxZEi{c6^ecJ;Fed`?@HZ z`G8Krh8>_D;~g=A$u`)`GKk*qtgra(giA(&8H_Bw4&yww_4uB}%1_m?VD(7Q4!fhT z(5lXo8^f7W*D&ctgl@BbHPTsyNaaLs>Hpj6D<*rIULwOCr0j!`yGHA`@UV=*c-v-6 zmEw^b(gt-#z}Uh58eOO-pd;1j;D;E}+#WBcDK=fa#%t(nHJ=XI-8Dm>+oV2VBRPM} zFGpWy`#h~GR>DJOPH?Yhl8s$$%!{k;Nswem|BzFgHxDuj#L(qq_)3DQ)bh3x{2hjF zx#}MK^%agyzbG7*7$7Alfi*s4BqWXLs=_ofb>19Ao!DMG(xv8|6Cbo&p23Y)SMpRTnKS8!F6r0o3w zx6drJT{YwAjZ{O>)5Zd1%-T4&Uexdw9ec-hp8|Ej6+t)(Y}ILxh6AVfogwq=97Rt3 z?H&x660RVOq7TrwGsQVnWCyr1r|}G%!6;y^V7PhgFpx_>(4^U7B9IX^1IL$AI?6P# z@%=dGpr)F5>v<&3fwj;v1PKc=<3z3SjS;U4#sZtOR|y4Ilx}elfL+f=3K_he+GVck zQ2WWc2Zf~kQpcmZy zebPbFfxHl2iR%F=>`RqQyyZ*4xd~;P9*D`%+XDC~)ugr;y-abjCGuUc6Cbh<^XmQXG*unNDIMau2{U+N|Q2`Vufs)KXRQGr_~ zOj$X?1xyoTW!fR+FVVn>HA|jpXA|S!cd`eakozzC$#KIZ%M?pQXrJO45LB_?y4P3~ zGMV3xDXq@SYcd^*Dd)9Oj3XlYrEV20SfB2H3dimYk)-@CyEoNDLHVx_Wq58%qCPl+ zxs)GpFu%@swc&X~H6D6b#*f{|zCP^kji!zFtZ*1xf1StrR~L!1tPT55x7{>Z^ik*^ z(+j;Ph#C432N%t&-Y!(;=e0@v1oA%@Bu$=rG^lOuRV6vsWYMRoBxPi@nxHcYH5C%& zgInL4(l@nmHGraPqHL@&+D@NMZ3UcCPX$@EEkPQBixM4yIWwAyhL2Q}tKpZz8I(}g zOiAj5<+G+jWd+U^Yj88vph3B@5-B$pA-YU2X7WO|1{ zqMHFk;i_FDjTeMuOvz&`u1?5p(QcKHpd#5SW?zHa08U{y2}4U|^%tZkf=PLx zdlbN?2E`Qm45A$F3yt5AgQ%GA^yAdSu-JOuhZ1-SE8lDKw0O&eKhmg$e4hUT@tRFq zNuTITkf`)qy;i6SI$qK~iqjf0@ejiicYhtxpPV;39c4HO@Zhpvd*_h*-zUTs3@phg zL>$|eP3TyyrF|CSYlDMqhf3s=xXFwbn0NiQ5o<)EYy&p65$fP2nd3akqau@$?N!Y{CDQJL_WoI|qOXF#2)B5LbqN>Bo2XbtTb$LgXfsGIrQYeFgT=s46ezsHF z>U0$xj&LMLmBWB`M7A5(Zp4_>lDpkQ`!Nu7F@BgO z2`?(>`2^=t#P+X?@u!Eb9kYe);mJH*ao#tH;F8ue)N&{*;+OWuQimR|!-F~c0|OKK zBbCXHHuO zh)2C5yk7og#60IbMFs)}z}9VfMay~irt|*tPq*|G&ofs1a#pUA@a?)^Fr5rN=lyK3 z)f5_bPh+_i0~p)}uI+)4aGyS|d}sm@}|jLDA->-QV5;oZpk^A|4Y?A1UUb z<+~W1*a3S9b^ETK-^j>Im4r(7pCTWEb4D^~0|uHOo`Q4XGXM%fQk%;RdNLQEp}*4X z88R1T;(a{Q?viDZW!Do7*33|AEVJ6GawyOr|?gVq%;w zPWI?p|Ke0*e#!K=*Cd~Ndv$ZsmZwm=B2oXjMiAE!dc1oX#ZMWEoZgg*>qXuOkH($j z*3Id!9M)CXOJTm0S+dM55FI;S$$ zRDSH@78>|W#@wvq74q=hj8@%5074oDua+uyWr_^+)YiGN2={o-mabYIjjWx+58geeQTBjw9JK-iryI>kO;lex7c6|AG z9-I5f(H;0eE-WZS%tlH2`uG*BeFhqgZEc75yI++TWAsg#>gbSJ?o|l19xWQ%%&oq^g%iS0cANSfsz-;_Ry zN$W25V!X>fm1fh~Bb%9WO77fuk$N1T${q4&@{Rnxu!6o6O1c8by zXVB3OE1f^F+%$>$JIb=NIrL)ScJw#f4HCqKSiYTiA=@E1XYIc=$5t(U_-3DE;u{{> zTUS>Ur0N?d*L(huI*Gz0kbLOWzVzMJtV+!}?tU^5ciHJ(Z-MF~deiB?$o{0enRYA_ zrPLW)_VE1+k6T!YOYJELa$-lX?Jq%`q|iDZFfp%a$8v|9&~>16KfYB&vGrqJuri|I zgL30frk<_fUD9-ET~W|;jG*dzLlP%bFmu*1+C5X-0!r%fP1v*c^9TF1KtaYyGc_B^ zrwzz=k9rPt^+FV1ApSol85G>I!xSIU;8u2cV6C-pA zUd_@xhvO~}6~kTMm%`HA3i~c^2SYL1we>(=cjFxnmIqshfOP#k zjRusT^-@n*!|~f?D*KdPg0>USxhU5|Wd>|2KiEUb21rF*vdz%2z6si*?SWpQTFRM4 zrg#C6*D=&noo<0)l3_%1-cw7^>Xu<{PVXdCx4lb^H;ZzTm)>6SUVYz^&>W~8Iz{|J zBI@Q(O7w7hlE}PRU7jk>0SJv@hu_JQ?jGX$i6vwXBykvCNVo@*$?vbDHCc9ixhEd^!hj?Zfhk~p7Zt!0e^^7h>j zF?CCwIo=&mB89Jd{gs9IL^@iq8o=7-D#QSADn4u^`Q0&OM7~{7(A?XDS z?6O^<`$1bQ%CuhkB^^DCIxo{)?KhB(-TB5<8I$2>|?|nDB^GIm#7Mw-Bpwg zG!XWlPaFNr)W{xI9P%a0y;F|~ckdB3FQn=|h3$+zZSSgC z3UP5tF>;vjWVNprEcnp|nWDiCDoZ~I>E)LxR6{|@V?-}K#)NerRKe@qfl+BQI=?=+;X{8|(wbZ z@#^c_%L|k!$ZhXmG6}ay%hdCh4IlFiNGnjTpASi4>gO59Zp)WUT%qUY^Os)UEl=y( zI)bATIJ~T~lu+51!4gg6sh}ZSp7EXer~G?h?{-QS3_eL*y~WNI{F@~?-1>pP$<@({ zOB$5-%-vSv2$w7x+;3;v$MpM9)t)AJtF=4`Z`X7cJPr>0BA1Ip!+&UN$Qqn1ojS-; zx4uzAzpnGufwp%xRCu>jPHC$kXLPqJCYlVLh9Izt>|Md7;QWoPd%YF#8@@kpeWt$* zHVPEH>50@I(dh@bn5D*glUXl8MU!))86?nbbt@B=LXyXg$fL)XSbXI!r^H-%%XhTz z{AZ`VURFw_8$QMmT-8FcB}csqH}r<~GWfu*#0IC)n=n4qGha$sgjnO!iq6&wXq3ys z)EK0O;4L38XYT?ctM!+cSG@;Ld|dfl!GSAch32~bc1aS5@xspEuxRu>k_#zTf9^b3 zn_B9vdMGdzuu-u!{J`*7Q=M`dPp7@+a;%2xxg@b~=Ld|&dQg@xSuFlPx8W%BMvHEL zjEZ*A-R2rOV;3K0if{-B0J}gJd_`3-X&0L1v7jwT^}A6i=Ed(O7%xBLYO`>4;+Nn( z;G0wH%-mheJVYwD#j?gVl?tzuYU+}Ywh^V^#kzve+LnhhUOj@1{ zZNu#ZfzLmOZ6D2pTko^qk0#)1uDLg;Znm+|6|UzLOF_K_>-zsWs>U9J!F^})J5RjPKQdJvtxSppOkkdj<}Nhp22^uE@o{CS8q*f{E)7w-f? z({>M?LUAUXi+apf*RT@=t6UWp6+JHX8`|^r<2`Z)65zBsd>uyi80&A$Fy%u~x;fNv zCavm@^aU-16ZYvpCk^vp(hi+A8mnia%T;STn#J8s8jr^JVqWD~bpeDcou~Nd3>{Nt zZu`NdYpa5k+wvw-xjzjDFrdQsUC-2jM7=xGhw7X=uv#}>-_2s!dvC=no`DLuIy%Df zk2^Xj#n5400e_fvCYMdUdevZym+%A%fmA)Ogb@xt1Bk3&y|p^OYe1e$Eu|sy1QrT*8p$hM@%R{W!qyWi z&6sN^t`tMa_pX0>QN>=Y&2pOl_-0(4QdRp~ucto%zBxeP$Kac4$b zONjZ`r-q2y-&->?6uv>oGCC7^VqImZ`uqUa<4UjYesSSiba} zqgj;;eBD|t^ptCI&s8WghrAM;b?(`!we?rTp;9DB$_a~n&}diHt}BH#mTE_PdR9C&aQgaQ-r`Y)*M#HChHA|g%$dug zl3mt)AqX7)BFHS_7ED zlK48a33Qoh7>NHH*9@U3%&+1Tc&pYjOGveS|M?yn`S zbrka7N-@T35jK`xs*fw#D;-T_TDn)4tGnd@xdEcc!~asmbCji&F~J(F1IHq#-Ci!L z158DaQS(lP953ab&=Y0a^fbja#)kDy4BQ~z53*i!?(hjF?2(9Md{IZz%T4W!!W=ZnQ+^gGUWFKPev;<9NR-t?$onH%~9#f`H<* zxsmNkc|fUqEv)Auo#Yl*k^ej&f-JX`ea8%DjEpcOx5sg3WXDD0L*kG^;qNl-XSp@Z z421h%^&sKck>PeZJAMm*UgC%Wv#+XoQp4u$jW{Kh0a1zS#Z0gaWdXQ+LYZQBrvWd% zS`nRtCH-X9)~e8a=j3rS2zB%TBs}x@4_6grZZPo12L-0j0a+#_0m{ton6r))%x~Eq zE>y!=3&~b=b`mYaZdsO!j!_#aqTKD3+|e`>!Hcjg!_1o!E_V-?F_G?M@z5_gi&}=F zNOTYWn_L2kQ$Y)VZa^TiW0J}3jX0)Avq2Kfhuc>b-T9~D3vX)7Q=7{%-sY|_(J44!0V4HZl^zok)YSbEVN(&^zls7sTjMR#H9I3fu6Mps@Hns?}6x|*TblL zGG%+vSo5kMhAajc$2tRWX)L6PC-D2*wJow#Ur)R^v-u#vbT!VOH^rzFTV(TLGhM*z z9oP&{n3J-UrM4Lq?4+vxY1)<%d z2QM+Y5itd~uiBp0<*BqWo}D*^w0G*iym?a;!OeEB82xBI#Y{SPE#eR1y={gri!RCXn8Gw^*6fwsi zgRSRT5h`+>#96B7|^6xk5mUJ-Wf?qvFan9S2dEgU$VOvf;glFmS&%_e74mo{M>Foi2C z_*0-Q5lq46J!D?q6o*k%Fvay)cFs@`+%4NLPDKclRys2ea{4}z{R=M|x*TKJlDUcH z&@UL81jSJ3gU*68ZLezJRQ74F^9^SGSUb|lOy0CDmT6zVGkiStOHsk_@(AS>WwX)bFlHgI5QnAvvuSNOGrgnRnZo*gkIyH@j`Er@N7|} z((_Lm!90zBqdEE!%;U-~23Bq$KX%jYe9OOLzJc9haGjmt!>QC&r+bcXBxb}+`cIcr zxT|h(Dq3+xNt*(*zy*vZ74kR7o4fEyU-;aQhup|0J7jEk!N&nYwhPYV=Co}0mGV*@ zFpv)k{l7EZ*~uu#uS|C1bg?wn@!4UXZ8&f3`Bv zB~)Av4h8kDAX+pnv~mOaAdzNKErTDbgF|e7eUuVH0v;PoMiU4>CRmhGD zSJ>h{i@NryesM4zlktrt0?9O?F>Tlxm}%>S%)wMo;kX2kEeEN~wu>1gx(Ilui#RXaWVvz3qkjj&4#@^E#t&eKCnwBwiXY~#?r>2WS{N_f+5 z%j?eFp0bfPtN1E<%+CE5?GG7v%o+Mx9h(c$V-eO|{$o7lTV~#;G&73W zIRiT;ZDacosx*=Ab1iaF&OjTNw$&84jirgqc4ZO?g9!OnbIhVhQX>?~CSQ_oOb3mS zN_KdZeEu#)=Mtz?YkK}Prwb4}Z5=P$T|vA9xU(6Ws^p;qhuCbLe)JM3vW$1zEtVlb zeBI&XRYt%_RMvP`6{e^-9v9&hyn{rN-W^}IC*e2sIpUJ0J1L5LpSN(f`=ZE8(|6a< zL}9A#{oC<#_x40di&Bg~M94{cg)OuN++P!~@$ii&UBxojWPg)HctXVlwWjP4ib5^H z6P6G|V|4$#B~EDi64{+Lf!RM6>!sCrzjz%>0ajFs!Yjze0MS>2_lKNiw)V3ePhS)x z-AYOxPsW+4Ec`@hqa6v<0yfCHwLuWF%|(WZX{|!OASrt~tAaFQo%p>@1wAMG4dsQO zRk(V*vQkpav}ZDT2kJBeqvd5OQi*FZBOZ;l_=Q8ZK57?j2sF`OGJ zVpO<|sXt_CWJXMKIpvkm)hg*+IHQ@R%+(ftQyJ1t<#dbd@sls@j?ELz3_=!TJF(36a-YfCaH%eMX@Oz*xUhb@lu4| z5*u$O;RB2D5gq$=l2k@MPe-?^=7}k@<>x$MBVg#9)rnRaYj2x#+8Rk8XMgRKhRVd= z*V0h|Jzqd!s1MgAHoV%`&c$=BIt&|_4Z_S8tnh`w0&&#SLJGxROrPr|#zNlxzrG$o z(ozt<5H-U{aD(@196V+dnFHk4EyuKVndG;z3$$<%fMt(mmTzz9NS|KM!K}Nc`PJ=j zpiC<~#fRuJ1yUj4VkJ74pNqNh`E2;np@hsFze#itXMqf>w$jGo&rKqD?Ypk#sRAH% z{`jr1@NPuML5x)Q6`n$i>Gs~8MD%q{|6(!qnq2mGyk(Xvl-tJ+x!yNS4&$CEOUkVj z(6XmjVC18AK4{&4q}2Xd*MG6Zm&5oVYRqt-!+0Yqnva{~J?fqhRJxxK91)N}nK`q9 zLh9W9@stO~#A)3qB+$JGjHK7^V)^}iuF!q*?AxvkskGoxWSA6AunKTg-uLf21ectT zwzDcU+I{(5g3@>xH+%s#YPNn@%`=oJa9~%^}C`oP3Fz9 zT0pVLua>}rkG!*s5tWZMj@eo-md1^49`)^~TmFKf*<0Z&gKJ^F&z5h+$XH^0s3MEcX$aa-Oi-nR*Z2?7VwN$a|Y zF>qXM=t3{EJf{9dN?&jV(oG#QCRo0rFCT0?m3B@0U|X6uEA>t9JWVnSeX)Xi?Tk1w zR2am7t{#5hV4mKwdX@ZM045#(F7if;_2J|l`IW%d5_-1$ZPHz8X}akBTJ{#JRdK<^ zf=QFxNJI8XsLEcl>G)yaqc8KMWFh-md;7x@3#+-%G1%%kDSxDxKo_7qIY5$3bomAk{Odu#PP#(wfKKGeP7$@2THySGE5>4QTgkT19I`zuF4ByRUkao&)6 zXWE!Ht-~Ha<@kcV;RlajhJNmc(^dDAcd9SLzSW)o`c^-w?K|Cff13KU54~vq=R57W zz@opq*VWkW|8dAf^QY;2Fns^7L#E)r4jI+|CY${=8~yAVz4_11#DDky&#L_)*EVn( z(Tp8`5W0eky0DEM1>?BIx9QoI$)5B#M+B8l6mP@N;WGF~;hhdE{a8jUOxA@()>Av> zVAC*#|IlFMwj}L3*86y5%4Dr>;Je;{h{BI9zkg68k{4=vX8{rTyG#1E$O(N7Gdk;TLiXL+woF=b5Vo)qErvPb^!gK`iI8--;tbC_Y(^$ICOf? zksX^%QYZrSzUQ^ok_Ba2?QtSUs#03rr2;Nq)R?&;cY?kYiIQi}p`8*6k&UOUzu!B5 z9r5)t6#m#kJ9}zOSBV!?Bhy(lom)uMnW?L)ax#r{z2lm_!!?p=%y$TU^A;pT5qDXvqbZ0;_5;=Bqk3r;$6ed!MIX0b z&p)TpiF*&~Ny4U^k=|7A-r^V{2+UP?udEg^lG8Se&1c==M>i{9It)>Q5}iRg$^txC z=l6WMJHu+W0kM&w&9)*gVDcZ4P9-5v>Bo^6}L~Q5l9O0u!)b->8&x54yd5=Gj*$nkT*N5E!Fb7DP%jl4&nb^Y}t9|?-Iz=*%~nmLG^soa6709WcgOd&DFf@5(3E2fmYUF z03;C=nJr(yM1@V0m(+8KUDSg5fD;NTw_6_9+`rJUhaILm82RBhj^181aZmD9=>%5S zMbS^C%MQOyI z*$26xZ=LR*bn&c1Uug^#L1`rUC*{}2h3@=Ul^sZ2(-dOX#*NDa-rOqDCF^!9{)E`e zi~+Onval%M+f2PjI`TEy-t)_Kpc|S6-IzVOVAY1s+tE^SLzbQj)!1U3@>`B2bVrBZ)d)3I)0l}UX^eUNknmfMt920w$O;7^X5ppxHw ztM(Vpp(Hl#>a4U9LT1~xIvFqvgR=Waq{@7e32|=xHinpkey=gRrv?+Uz9#){pwL8O zyg)vxN}hw={RNe!pYbMI{qwr<-GDU(OVXh#eXCToCAb8vGhGz!s>t@+(~kB+G#oA$}=i%*)rOD_$rO6~Kl zPwpRh;N3CESz`(&c~im{-*Y@9gSy+cWl+~e85gk21v!%N2rfB`xtQew7;KYw*$8cf zD4H^Md!3yImz+jod@nT@JiD!@w0ad|lFR(#4akQvp-wl(;7tQj!D5`?bMd7(nXU{; z>%gSfkNJFcT&`xtq=xhOnF;7h*>1O+Lr!)YMY6En31{h`d{M<;k2A5(%wc` z)tgjw%_{Bgtk^3T$l9!n^|HSKU$ggHdGf&=y1c;9uEOjfbTyOAS9IB&q!FF9O0E(6G!i<v?W`;u%_^5$~Yj4Pxxt<n|Dbat@ncNQbo(gSuuK z*&9YHw8P&2V$H;3{^qk-6G6dA-a10xCCK|v&@B1XvG=i8AX^S6Jdj>8Z%&p6=7u3@ zNhzVS=O{o&{Hb|3wh4vO3!UC2Z&S1qDHdK-5{gS zqzjWRKxGTEScvxeC{3yQp%uiR~$3L#~<8Nd`rUr#G2ZuSa3 zg*zGasIq<)sFP}xM2+?60$HDXz)YNDF&DxY2mhXa9s%<3h=J5;?E3fh=fMaAPYe!l z{#(gyvIH?=-N(SD4JM(PX(Wf4pD!>zaHZPuj|xGn7&i0%N%8rY_@<7ND(pge)AAzZ z<3aoPcO+Wl&%H9rl{;H;>-ovGZcckyWHauqc9vM(khg?&*c+rqaMzU`%c>0N&<)Pn z%1D*4{lFQVm?r6<(Ui!iL^WF0&BIcmQGfi~uImB)EUMroy5=-Y0v44^8<~x%2NXB6 zp?SX*MN#ilF!nSCB|!f#-865{7b%+XsdV)=F{X)_D@#3yOmh7|Ys}%G>>(_LW=izf z@r>udGb<>{)9L8VFLeEM z=HG4$EzM7{1%P-O)g-uFkd-4bS>KS($SS_+=*-_k$hhumklGVN6j5-p9gDzZ#%tY@ zGkA+Wt=*5E(;$k@siGmYVj~saxgLv89)|Y8pTj=8ZRHn}66^kKg&Db#g_@P06N{*- zRVwX8*{kQ1?_%bYB8a|E_1-arKH+;<94}7|_U0T>Ee=5Y%b3=ci=KjTJ=)mMa^C^3 zD0#?vtqYfOq`@*Sh@bDrMeT63;*ZK%AZ(~-aSJ&5djHq8o;G+wpmPXvoE%WD5Thv& zXy@Z6zR~hoe&FO^V0~CB$Ew4dr+G3f^smg&%Wjm?6P@{ypP(rT65RQXzlQUX89|Xc zaBa5_AtVdV;s!T1#C-5ACO)}JMgjadWcdA;jF-c}+VqlI&xuy|^O-fvRa&ZZogD{6 z|M?g=z|6Pc5-`ry3{;bAFD@AT*@#htBY)n>dx<u^*GF*Dwr zQdDIv))zkj<_q`z9{`R(ale7X({%W|S_a~(+u^?ZJ_$H3=+wJxkT zkaR$R_e6dd5{zlJc6Q7qIwmu+JM1zLW98ECD!e`*8YJ>AcC8|k9=%(fyk7t@Zhe;i zxg`KGa62i#PSquP76`|08XHAshi?h(CiPNUE|sNn%OIp%_QNM}WFJy$8)*o-{tziR z@AKQa;}M#}TQGIv+$BWjUnTk@)f-uUI-R^*={r&l{;_AgYBe%!FImK}q77-EkR4#D zS%4H@6DCU>Ymsi3@ROuMTV$|l)rOU%G^F;lEpcz#IiyJ>n~Amb;Rq;IWx$h4Nfz|!&-GV>FsubQKb^g=RtTr#tf?!HC+bxO|>xv8Heuzd~E zUz;(J^|cM@t+f9pJGBz&g1F7|Rqv2){YB?}+82;Kr`;<~)e;1f#ug*SlgJ=TWUu(f zTS$Lyl#8zGdSoEyd~@wz!Iokqa9&_u@BILzvbWpPxLgnEHjK?jk^)FU_(@{E z-3FxRYC6~GZ8b9K%lC_AWD1bkjA$;5lFGE>LuA7pJ*q+v5b3PmD(wgSNR3M(`siL3Br9>iIZbpeQe8P{60qbe;*!;4 z=sTAvi^hEsjXuf3n4T*FH+| zH$Ml{Cn<=ec=z@|-WMcqW;dntW-XH3{d%ePH#Hr>2nH}N_=ip0JnnV&}W-Dd= zjF3R-^*0xj2a#guW#zIR z!grkIt34zT>(*5VW#`OC%HQVS-X;M^=KY&TBS$2Vn5w_i?&drsj*cpVZ7k($()kQD z5{Br!;}g<#UQj+gh{@iokVF|wsuxOpeGl<`>da(5KmGo4Mo;3|rd}j*jqe1>i5@Yl zx#_uo+k<2`a}Jj|Wg;Osz9OfH9SQSH1Sp|WB-mHnnzlj)7<%2XOd`RXV_!0iiJo}*}iDRmyQ@n z{xo9Ib`NpdMEXq%I3cmSmf`C^?4-P2c{qKtf{!wswwl#I;~DVYSweoU_YwqpRGukR zE+syE(3ZE0AyJ0hyY;h=Hc;(YfB|ZU8o#v+nkuMlP(1Vt3S%CJC_J z;!u#AD@0Thjy42bH8w>V%Ska~4-D_VZao*Gjde27cqd7S14luP&Z!HNz`}L+G4J~a z*td7*uk<>O0Oi?(?Vq+Q0qd)5>8IbzfbZy;wqlwA5WOPEtrt-UtR9XR^k3cq+O)>f zCz>CCIo-}SKG*rXACKBvtUbwoMonu>wzVs z{njUqRNx9`=2%WU4MIB}5AbHw0as#9sT^}9u!dd$ia;+A#l{`oB+7yPKEC9%PA#yl z+xWg!bR+OF>U~o_84uiF@GZ+L`(k{jt=tA#alj>)c=1Xt1E2laaoOY2z`B{4?Cp6j z;Mtm8`gvV82pw=epV2FajY({(Y7$2vkj=a$fnFat>U}e+Sm=PA{}4ejEDuD~u7=f8 z%!0@hI@F*}i}hNb(d^Ty2eun~f^QeH0>2JzZ0%V?kSUV%TE|}iqS~z_HxsLY`lMWj zb;J~K(jKWLS04gFzPc~$zOo?sRAiyUw-WeWD}s5Ny2;iX#v@4nUmV>ij6_vt(!qLC^0%q{|G zIX$&c`PTziet4eoB=c@DSpf9j_3DRy6Py~MQZjwg{T_8-T85Gm!1NxASj~Fgg zfXG+B&a2!(z~42Tb2{1wC`R+U`3LTRsAST*%vv0Xz5Q;(xSj&A|qJUTt?&by#VYk zB+`Rhgb3Yv!#fV^4FPLe&XMkTI$-fMb)p}<23-Ah_Fu1gVpaRODom5`SkLq0*ZFT& z0F#YQ_H_^^%zTgKoqG2H8&f}v6{_?BwbMP33mPmysxXUVJh2`z91*&9(3S>~)DFMl z)t3b(Z@VmW%{D|bn{_ZYwT>_|6TsH7d5SPlcI2AZCMT?KOG)j)yQN5E^ZPGt&w)^{ z)pVm3Yb6ZcW1`|PFvUu#DA&8_%mNAXUcaCTGpr-+;FDwX1%wIwOvQZJIqbV)$fG?8 z9f(ChL2%yO57C;1UAmNx5U*^BqegKFV&1C!b?BA~aGv9te3_Py$kJo#Oqf4mFK+b7 zO^1;n;r?vX@%2)OqHk7xC#wdcj41T2Ar(SwmPaH5eE13XeeQe+Gz&n??-LGeDRD#m z3`?gkB}@=zZ)8{MczYs|xr@9cy$%S^C~?;@kq6Nxx0V(&av<6$X7jfR2MMzhmzcMC zN+X`Vc~-LaE9cd2li4|+B}6~tH=1JQg@mihbrbOGk?h^vg(k+ePn=^<)IX z+3a?auK`G8C%538%^Q(;6n*?A))*vuR%PSD^$SRVwI+}wXdH>!A3__laY*>6kn{M< z^@tZwis8Z&5L*#ry;p}U64jDB(pV;q$Ox z62lY{$^R(uX)X&XIBwYJw$N4PLYAO!^(tN2UK zNbGo9C39prl71C0#oPWFsRWM7OcahGeuZLnp{`^k%((F3qSRr;bE(+G0;h(=_#4*Q z9wouX29p$9i&zl9h7VifX%&Q@oeMjgcL|BzD9qT{#*O5z7VS>$YC!l}dj9w4q>$>< zP0#(c$&rjssvfNtLUI(Ed#K-iMv~byA1}F@Amwu!*Za!dkSd+s!UK;^r2El+TR9Cv zS`L;rE<;X8_0^^7I%`KH`?Q$;33D^jC4_BEv?xUy9U9ASY9dHMgA&W%XM`k5osYVD z97P;1+w#q`tdNRkBh$8(lPmt>3@3A!Hd36y_VdpZ53N}en`Lijwcdv;L(p&kzZ91S0%jRVwz3wDgyag;uCYM;}rI*y4Zx11QCa3e1BEQ!69(55F8@0N%YAI>@L$OTPR{62^g|#Qb|3_T6 zLK1Pl>oxI-FjjZrB>FSn%G<;z{}@WQ{h1GYXSWyktN0!T+EqU64X46tJXWC07Vww1 z;^#iIf2_XTUf$%eiaAs}{)`9v62cO-ifuO}+g7ope>&>V;@?gGc-11%m8dAerV5pQ zj>kFz>KuNRSLk-@SN{LM46O6abin^+{nl5me<`jPmqf(Tu{#c{*xvif;eWEP-p`-g zezps?jSz86M+p8>{=R#wao9u`(~rC?#;Bj?8!k|yU*(Mr{rKx8g`7XW*HyTv)jX_n zL7j;C8zcgV{tJ75?gN{X`f+}rJr+*1Ke5si>*r({5wV?qS^+NWm zEp$k>PMtMh4v(nFIbGhIFGsuwlDUowy+tGe&j*%zKLTq`W^b*Z17c*GY~FrM39-*_ zrSznDgjLYp;1KL3A$%L(xGePD4_LE1od~M$k!TwY|BDSBh&!zGqi}f=;@&=x!+2~T z;@v;1@znM*5+^s_cZO06i572HR*Y;V3{}L=eU^(w9Nf)lsgV{N*dv(zoIjk<=31=r zMlJ|3JU6kb+i(k!TbU`_$C@Gv3H#IgjUON$Y6(NO880OMrZ%>Gv9ShVN;ABTD{*IgM@BQJvrS`Y&kE5pF@KSQDx=by7e&uu^oGJ(}QysvDDJ& zO*WPQo8s<7jSCW3&p_CBr+qG1`=w)DgttP#vHe~7{OB;^8@d(b2ofaq272ZrLR2;1-zTP#Z}AmAggsoaDz$_D4a~({M1Db6yp_4W-qIQ zTuoN_*$R7*r+YkEYvBTNUT5kal2n86z0(`^XG((TzBaSAntq_)8h=P<(h2ZQT2mYM zhk@pdx5lhkp5-$=O$Ulju?MaQ>~ zH_!mS%=s*I#ew>fFkXwnF;MM{G4$=Z2QpJ{@5Qm)08z$M@s?TgAVPQf;=Kj~z{Tpl zRj9rWszEQKlIm?iu`%|{Ct-ci+GTasNje8KB&-eqL-k@6N;5Se^^=1l}Zwt!4 zM_U7Vm68+bj;o*fj27|E%$vO$Y7v7B2c z6jaM-Ke&4_f%e&i{o_wOK&uiT>gt#Xs^_&xuSXvSbqi8~3a?Pme46ES$jcbyIClo_ zJ(2^;gD)0Yvk!oxgO>9l)_PFa+s6GCTLz5`jfz%2^w1jA($qMS|X);+rQ#>p>UCr67OV6m%7LD4Fsh(5KBA4*DJedU|}$sX;EF7iaFm zF>(oX55Dz_uW|>l_b&_2Uk8|ikIo@YNzfxz4camo3tA()F&oR1U_hZ!d&=q?=rbhd zkVZCwHpSbR?JW1ez^c5ZSuhL?vaD(mEe^ED?`{3)FA0VplVeVw_5|$6nZ}{ehoC!= zkYLrE0=nx3N$y+Cg7yTB+Whp# zpi>?)81vQyw3sfwJgs33I{CGpN^ze+pPdoC?~(<5k_tJjD*;qfjTLL;&V!Z_wd-ZR zcmP$6glG%bmHeiDan4cDdRT(rUicVvckQ6O&qoj1^Yu*m5HtFM(!5)_Zad1JJqkR4>wV7<6}3sW#KHgRUV?d5AXyG{1|;P0?F`{#|)y{nfkCpv6o8dDM5JKmk-USygxXMS&)t#cm2tW6=G0+@tDz7HF3V z-Mo8?2{c5uHfWpCfrh|Lja^s+s8R=nCYzFhYQRA)4cC>v$UZnauQLISw)|M*3&9|h zC-c6$lngXK?W~qsFb4c3db+*aR*q*R!mkdoa)4%?i+T(jfi~xS}hA3@9g}Xc=#m^SdK`J2q`zm1sQ-kjPh!+~Va=3T_VJ0IyjfP>C zF!w^y*dufi*ss+eWgqSawyUk>Wl{p5Ze_ZWZJQj{zXj_z9p(T^+AGFFwcO!5?3(2U%89k1rIxz!%gb za5KFLgcX9C>mG*_W>x9t&e%^7x@W0hh0azYo`q%Ve*Qw>8h*g=B{Y&S@v`^pQ_Kxm z$utXZ?zsVMOvfZ+U+yKOH)e8728JS*eP0=4Cb^{#N;yWU=Bl5f~Vl4_g5S>3um}+#fRbVYc zipRK4^qsv;7=JMG^hFFEl6!3#f=?Ajyod898uJ|yztfJT#rO%t8rmQB-aedAaf(va zds3RP7@itF7=r`;&F3+dQ6nI8)$|mcXF(9ftQ9n0kJOc#2RynkB)1`^FUd_1X?9sJ zQob-odNvschskY_{0_=pqxw|Hpy2bn@8>j-g6Psy?t8^ZRQ=Z8XG%dxPIi8ZsV^Gg zapvTiWg$qR&{(}CaE13v?OoH?RYe{2(+ASlBdw!{S?J$5B5m5eM*91nAi3704I_O*NL9c=cG>hal1o;#>$%9~<`F-xx%; zfD7-YOr&8!ASdIUMAAoXdft}zBMqJVvu7iuk<@^+N*38W#8piYP}oR=@FWaD+&8lj zK8}6op%x}2JaBlSM70*1(v;brF%XU<5To+!mqnzs+Y}mJ>_@UQ8C!Z3k0CXCT!@%` zJQ5()&Yu~TN6H(v*FBYKM2b!i^J2WuBdMGex*=C#q{>Mx68fYbNuHxz*YClKB-^C5 z-V8e+fiN>S$hSo5pJj)J&tOR5yc{dpdNm{ylI3_!s1)IXz2A0hj6w{TH|#h?orR>i zUsmQulpzt$M^0~o6cLWYhx_KWKqO0*5V!w`FA^j?xiptAg#@GG$*<=tBGL6{d&ee{ zF+}&wuJ`~#iqgTVJF>HoxOo)YfcP^c{+{%JD5E-(c>XQzR-g=`Gr8j$IJ_0{O^`Et z6E-5r0RE%b7?+XExzdET*BFv~OCSh}tV6h5u9JT2?U0}%QnzqcMl1!#c2&=bAikE7 zZQG1IkvMD6DA~9^;t=~hP@>0#xJs4t6*pQSk*^2ra|W%En2ptq>8xXjdwsf`28BK1 z`k)hGW%d=Z=}nv!xJ^P>c9x-f@YD*4H1TGvd%Y3K-TfACj?+NG)+#4D!@QA**qeZa z0!75-`^d71+yx1zOYHMVaY5o;dLQ#{i6PO0$GZaf%aO2!N8u-xt%$_x*(lyT98t%( zoe+P;i-e0vzlSHKBL1&c?t0x%5m&H4-HyaO#P9o5>h{$=NKC%+>DTHJ#33RT_Wg(w zV)4D_(`lQ9SPV>V_(&T8{n?vuDYBvvzo70HTKgnKD|_R{^7A){Y$#RYu}uVGWzm$7 z-MkfXQ=Mz5E5AyZqef&DSM3qyOYF#l+jkI$^+~O#B+H0-|K04F_g4_F>EaQaJ3E18 zFSoFk*lwV_^GK$L&jN8hN*ya9L;+bRRhzlG8eyImr?f3J7ih!C_d2_9AyQFe>RU_c zSeFOeaGm@RVbDBS{N(8mKyKyG%v|!B(6Rl{Lg`&L!g65nQG*CPVH`(!b(~xcv2n56 zRa?~(#sxBl=ucK622cMG`Z{_-kN3SY`R-`o)VvWwDtH}8l~Y-KOF0Nr@jriUPM#*JyP9*0eOO*4!hOa?aI1LV_X zBf#1;zIVo^8e5nMe5&i}20WL8^0eMK1Ls&rCj;kgU=2TcaVK5}xc3+b$egvprsE&% z+UIo#7${ypXTKi_bW3v6wK~~J#f`vd zK+iqaKk0T{%%D_eLYLEvP3n(yMs z%6$|IBhwWZU=O}{a{Y)h;NB~ASlzA%Ze!+e8awd7Nx{+(I#dBNvF*82B#R(XKN+#} zZ8P9D<#=xM$^p^Grkl%}PlCi!mnM0*3E-@6IL<^k0snHwExBV(AS95{QbJ<@Tn&Mj z@zH6(lpv^WO*;i*7Ln;3Q%8XIz{B3?1DPP!RTO?$ZKb~FNjkB6IN&7VzG1530m68< z!29&6z%R-2W`Ii%_{v_ThsOqi06%5&ZZl2b8{vO_I)4nL+?DsSdPV`Sf2ey#LI8+k zW6y6m(t^-YnrmfGN`dhc9SzRYI=&!}xe7e_c2$?CHGzYpQBBu38CV}MeHFi) z2h{$TXG6Cx1CCBYMXo0Z=%$wsKfV(H96(U>G_?f*pP@lBYDeH^up55J5d&-|g0%VA za)F-g3rV3$2XI{IqVQb56&ONF4=taX080Kry`nopz`8RVPB~-%Yl!atEzNO&8{fJw zBdZOl+RHy)-|-Y^F4f-?u};OllT<#<96rDD{dajwwkHEP-|WsMKS6_apI0-}W2V8D z>DW)nH>~VuDZ*|1?0!UlLI+~iJ%PQ2>~c4a22dv6Jg0wT53pbE;4(O0L1;_=vU0zY z1?;4=+g+Lpfm7vX^~4v0VG zmgho;IO6$6k)D0~3*rmAvRL}c32_PTraw9%ifCNI&luFdMWoFneNl#o5i3LYRtox! zgx({M<-ODZQO{azEKF}gqCOXkdOkEE?l0GlWve5^y1QslfcY5`){)^4ZOliUbmN%| ze9k~W!MbOEQ8N;c=RW(qbs2Fgcu+jOt%BG&zZ)wlMj`zDmsHC}Tam~q({C9*PY^}_ zOA3|~Z;|N6SVPQ-2`OZz%Q1ExL1N4*l4f+?h}|h=ui?T?B>1v~OnD0dQP|s^Xy#@^ zVkC`C>AJ@dPWpo(b)pl(8}S?$dR>J08MoI&h}R=ry?H;!(n%zF@Z}|yC%TB-uy|_` z-w={ye=+MeRfss)SS!YA+K|MiOWB)st|OW0xS6FIDI_*p`}mdKcEqBZD4D$w(yrou>^Fc^G}pRQ(E49(ESI zeQjXndbDrh_|iECXYSIZkQtF z*;D@0!p2DE;jz5WDw0SkrLtgn?i>5614!eL8-JW_RUnrqccL%QM5#Tu9F zkjiB9)%U)JNR`29bH>*sq2-7EbJ-*06~68W);QYr;}`Bf z4y;AyWz?_y?SVzVivP!a51yzHz%u>Ltp3uDeKogn_>=g5%5PAS`LlQ|-|a5$SAKNp z>S|wDl>`l};^3A|Kl5M<5AR0(jXwU}z^Zu+iFLZEH~d$4vG$EJM2vcUmWZ#p>{j`( zy|v^&^J1^+%ZS*2U%hP=Klk4VAm&F~1SF0rHu!>`4=Bs>I z<0K~$^@TnW>y&k#kNWSZQ@TAHOIO50Awu)aUgNgi=*XP=P&hHpZarjTRW86iN$lLt}N37Qomi(9U>ePLR z_=TIO$imKM5+$2h&2V1ZpXB{ZzL(LPe$K-XuJJ#h`TKSA$91B9wjVxgM?c#w`($ye z*wK)Q`zw5}HvN!37Zo!Tu`54vl@Dt__T%_^R$6Ya8x#Q#57X~Vu>@napg ze@IR%Wb@!>e?|HqR`13#q>0K1ENqZ7U=>Sf%Ko&^0y*OG3TvBgBgXp}G6ejgt|3wJ zgjF&Vl|@)?Cn=Ep>w(oOjO9%T+(tQIkZpKh}1@|IPjeXJm=})l|u#|H(RphA{ZqPT8jV zb3LqW=sB^E&(@Fr;Gfvj6|jo^o9)|HvCu+~7#F11>#&NA>*9$1f%5`Ut2kBi|}agTz=x>kPKWBf7ndZu@voAvWgYyLqeqkN_@E{NSzUh*Lma@WK!Qgx+Bj&FyCy>Y`F{=0{ zI}x+#Mk6!)Q$j_7%0TuyAHq~+XSc_O3xt+WM<=@D5H?UJ75>p)4Uvsg5pK?kA^PHT zZ31dIpt!PkuSFRE_l5?GX(?%-p)WhRt~`;jyfJavGs_HUJ%e&~D@_2?eTU(h@N^J7 zFz(!@!Gu_Bj?q)ko&xr=3)y!K9}>pI)(MUdr2n-Au--rIeO6(K)LQ=xARCmkY2MRwb-)3NwVxD8~Q9$C8Ary=qf8~ja^ z^B_(c{rFLi3UF#k>lfej0U=D%kxQ)@L3NTX{OL(5jUde~1O~&0S-k z1^7U6+q+M5LR7$hiS*X3MmvxRyYnH%zy!DmyIQUeO#?^i#Zt~j0Z=)Sp8GI76J$?J z(H5Cb0iS!?_M@?1K*9AUb6<2M2=DBQl-t>e^{Z%wTv`qV*`Nrk=WIBT@T7{NUCalC zdtB0Kp7c%; zMalx-3z~csN4EH?fU%RP5ULEUR6f_~FwP`sC+I_Mn%(zbOf-z%a)IZ)Ybeq9CN zTbX_6BPc=X^~TNgd{;r1T70_7cNDa4>$jHfQ~-)nMi!1D`+7?&u6n$5_FP(ui4X>^FpePjULrJm|0Gm9;809)9V3<03%(mSdl~YC%6i=9zYLHK^Z-8tseK1hq$% zUTh3(pk{Z~{KV_gyR7aqp9QI=&RNKYeM^)VKv| zyGy6HXcmD+R@Q~@A8kR?jQ{pGX$8=DZP(m3wGj+%SP6LF;su?|kedw5W1!_e*(vls z6m;r&&SoFz0R6l3QICB5K-2Ls3vc~p(9-hkn>yqKSb$X?P0kbmZYtNFy$&EhS>pm_ zFzD)8&Ij)w0R#Ht{g=P)0UZ`&j{UJdpe+bd^OK)J_l&7YxydHbjnCIUb)6pcsTtT5 zqZB~T{L6Z_MkX*|_#VeHcM-HX!_z!sFwooZDJ4f_7iiy$`Lrbgf%e?Ce*6hF(0{e@ zT4$d-=o)?ui{jJ*eO4FsEyb3A9f){wCwCbPyss);IllvRuhh^u9}WU-o5YX%-3-CN zKy?e#W-HK@4Gg4w4WJu9!4>yH3iL{DzNp+x3)*-qX4~C9fW0wU5>vYaxpOeEB1$3!Ynnid&$GLl?)u7h6&+0FiU3`)@MGjguAn!Q&4=uQ-1`C955Dn6m^hn<>yO+QQ|` zehTy-@X=)p#RBFnbj3RL&B}HdN*%HF06iPU3yPhaK>yUEs^_Lkpu2N-9QnGdps96D zS@bkF=&aw;WO1AV^fYt~b$9Op4cUoARksMxkI~4NdbRR7UL~jT(7Xhg@(W#phAn7S z+KSZ0FM|5UM_M(zJwZp;meC~C4KzZNoz%vcL0eid@jO`?XaoN6K5s_Q+j*Rd^WGKE zq^yqUG7$vr3)-UoPrX*Ye?cF&4cr0E=Uwl=i_n4QZGorl-Swd3oEhP;K@rp|E?P|C zZhxjCTNa^lDl0q0Q{^=2hYm+QMG9@&mzwrw31$LzQ^_n3`p?#Ti$4cj!`-{ zP39wzjS4Q=7Via8H}|D|b8Z3UOBYjJbH_o$kZd?eKL<1;?veXlHU+i)l47wWZ$aG? z;=uU^XdRwDv(EVfXoxVWDd`^qyxVQj?aePiJ%=^S$l(KM&1tNkbWouD}C2qkI0KD#W0rz!C^5{fVCwc=Un)Qj_;&Tq`ICI8S9CSvd|oC{{4m zJqXIJfrq#Dtej__pMHMgs08S;NypqeR0(PiayPQ?cLe;+8?SAOjX-76{XzxnF_4*e zzp`UN4U`RfCn~U6kfLfeJ;yWy+(Yr1uPi?R$MSd%Ikh0L>%>NxrR)IilaFHzkCuVL zg~Q{sI;9|yLqS#hf&}>PJ$@{y83dw25zaS@IDkF%lm~17AV{$Bygt^#0?M!L$FEx7 z2gO1;S`g3+Jy~XcXT`6K?00Sr8M3H>k!%0=$S~)dPL_xs#R;CPnewuvSU-OL=24np@ww< zgqpHC1`$s^#5nRWwfb8c5}kH=8Wpk$nDnVbC$F#|MjO(cn{kyu#bI7uG8aIYwI?7N zwu?xN9G~8wfJ4+r&%ThPp+fv4iRLlojfk)C@H@BXp@^wR|IlEq8decT7RD&fLRfk` z>prhridf>CQ!7MvB04uYS9xnMf}6$h{%kuE#F41PI!t~W3A$L_#BXysG7Lsa? zB`;O0MLN}vx38W$fs`xnpL-8DBzI8rRoBowGO(<75=;|923Lk5lY;}1k!EiU+bE3` zMsg=F+{7V$Z&9(57y+cEroDZ8oZL5E-{{iXF2W7{) zR3LfBb2Br~y^!3F!Nn(4YzQy>B#z4~0Lcgk!KLMONCDCMa^!d++0mWq9#4-VmFE%y zuY8%2D(Rj>Z=Uub`tcDhe>p&86it4?E_R6Y_Or`w@zR9eixlyDKH-p{w+HVsMKz*& zTXTD%3Lz;fhJpU8=7jIHId4Q;NRVXAQV8EOQG`#;q&z&3jbwBU7x%u7LF&z~0>(eo zB9ToOPQ_R+A)dvH3b{<}NJ$bS;XkE;G!z~6#{nGVVwk})3*rCt0 zrX-;VAN#@ReI*SNS$;#_D3VG@_rJqae=PtBCybJ>ThKwGoa=DuCY?yZxyGI|BN(yl z&)&@P*&2zUN9#l>xRJ!^(akmkWJvfDIcJt08Isa(=*j!~0f|rD)%mvX6k_`FEwxf^ z2GO2ZOPM8G+5d_6b9uK_Bhi!kX*)$fAnv*ZoTo_!64|jo*NB53aZl--9!}Cl;>RZO zpqGqz`r|9MuJl{Y?DU#ZXf>;k2Cs}ABPtJrexN)y7ly7nE~u8f2? zsuicu3n6BvFSh#@6Os5#h=Jx0@@?WVj;1k1v^*puEPN&g4bR;xS>}p6n!Gq}KA39lo7zYY{H?`Q~R}q)p#HY73 z>4fKxw`^;&2tc%F(mcO-#1blup8L&^N+bT+$@`~At6gvG(i%<)T(gj#7{HTyGw zWk+xE3v72Id<`{osEK62dT$BswH~cN%-*}r2S_$!GfStGYM+-8X6AG*O*h@b@>Q;! zQ}o1Ry=qK_lb`WGM^?u*>K}>Czg=Mc8s>-SR5s=NG7b@@pSA9!u5cj?&Msmh>2ZVs zTCsqTYstW%cQ5apaXFz!`U3xjQ7>Q&XGzW}Zbc*)%P%@$&k3_vr&AwUA)r6yN>1@I z0@yH?XD>4VYj^ArICp#H{%34{^BX%HVW5A^u#Vtl1P@TBVlq9rNHozj~C$`@|? zwAda1uX<~#|GXPEwZ)e$<8B=Ag}UVL6&M2Hf{c3)<;8)EWQix{>s6q0QeSp-xr~h^ z>M|u*=K#mi!8=T?D!{1X_2RQ=4zLS8aCWJc09FTgyL_QLz*9DAI>{FTWZ|4_x%YE{ zfjoWR$nHd7N!{o8hT02jYAks%I#>a;>?vk3r(=P`SxSn+(-c^PgZ68gj{!UTr>0AM zzCbF4K3#LM0*;+d>$l=0f!^PCM>+pAP*xYYBze>U-TI4z3Satx@8UYt^PmklB@?%} zEmea^^yx{bRxZFLvIzAX_ydWKA3~VflWebTOm6u;4cl0)hH{*xpQj`Jr_4}9v&J2WS3J-2~AR{Zo|9w}DZl zVkX)iK(e)0=Lkb62*(;)>q!~_YarP`Zs7n3x{eU^YNi0U{(W`vfrG28u(pD6oQ6c16z*5$)wK1AW+Wtc<)9w zAoq&fL2lB%;#WR|A1(vY{j8r;T!TP_O=`5{k{NKO0#9W@7B;=5LrkbAfKVr~U^Od9 z0$krMY&A-D0fmwDQJsu(U}>vL$7~`%q(0T%?Dz*@*K+WYtoR80S03nQR1E>mTwB&B zxe#Eu&~3K9o`+DZpLS3GG>*{r;=KJ5i551I-Wwh69|z>LqZcU?bP;piR@EExR*2*L zlX|b`V!-S6M)BpCD==EoI|bnUu(5IZF9HJrh{MjSo3|DSQ%CXlzwW&SRPBjO8T9`$oR$XDO5fs?a(Ttnk+Ye*2&kZ?clSmMAv~}%U+M|NcPTwso9z&PP0*J%I%mZ8XlBd#WBx#% z^u;3Wat&f7d#zS$T#U#*3s2SbRwJI5dZ)eVlMvrNd8w%@Lx}p5Z;JB15Fq!pIMMqc z2{Go%R|oM-Bb=D!XLDyhB(~uz1Cy7)a9*HgQQK(y9?)zAc=4mW9>8&BzRnO z|8(>m;yK!pXH2b*c%AAg!|43i`Q=m-+S|>ZhRO+RFcA(&g+?w zT%JVc38l-3pOwl#_URTROPBoVp@9iu#)_S`h~q61h3&EH+s+_`L;D#buUR8bth`=! zOEco$ETz2p1tXG5d0!u5HjSj%#!Ej%?Ll20g^khNv}Tf1yb9};uY0wgM{>^ zQW8z0krW!eHl^_qDRNStxq8PGsRg$uX_)Oo`a#agSGmm*USEupL@ga@7Vobr8asg0 zm(G>2+$cgClQBnUTMCePSj#OMw=SfxE%gf-Arh%XSd;Hys6k2(xl;t6`yeqrMcw#& ziAXI!qW0m<6(0K=S6`N=B00i`jUK*JB>%;M)v4SM_^;&0<0fDgb5vsf3J=y!UDdXV zZT=qrNnNaK3l|X^wz{w8V^vwwKX_3%(az!iUu`cDd2*+IY*))=;;Qifh->R7KHf7B}GL}NeK z#qwfUS8c4TfcKYqWqEO{{bSjWg^6*s#-HKm`JVIEf3WL6oh9~Dp-n;Tx2v7l7gm}X zO!T+Er~SGAf8_bsR>Cj*{}k7g{$thcq~|43Kl?kM|B!U{D-o3{SX~^E4(oVsMC`kL z91BJwwW`LTL)eU2ged7f}I2}k73KK85a_?Nt;;c@6s=P%X8&Qo%Fhl$WvRh7e}M=A`)D{AWdrPTB5a)AoLq!NLiA@>WcoiU%_{P*v9A8XKz>K`&M2q(5rSL(Ex z4eyu7fcub8I>-TriSS6eieGe81~~djLm%`TW@UhZmQY!)mTsl)DbqSz9GTWsaCgL; z>AQAQgMZ$c7Fwt9ggS9MaJQOY=QFShIl=p*_AC43BL)6FoRO~e_|olI&E}irE`6(N zoc5q=o1XYLw0TmptZ^J6>o3E!WG@-~f_rOh%@>)L9u@lzisBK;{Hks zs}GssD8KQAjHi@vTZ~Wp>JMLeITDP&_rt=Mz@mPJeaW|PB&ZJTe^hN+eY$ON_(|T} z@BXAd5C5v!gH$9BZ=8737<}1d+BP6g;eT}^dS~j|;>0^we{Xsvt*$`+<1_Gl*NgQTLRO;x9GHq! zG14JLyQ+3In9RfcC|DhPsIU3FfqxUerys8s(njwJtOT`k>pZSTs}Agnk?$99_l@L& z$L8(xC-Um`!+p0y`M!Jhk2>!=`XB9>w{agkn4ga=^&zD2WiyNq%3rkC|1vdC{|R+$ zUIP9T2(_gCFWY(gzZS;-+rDu8KQQO*Bku>e_eRpEPiaF@pi$5)Gbvc|aQnFd_CPu795PgZ$E<|Dw z8GpL&J9!&*UA^LlAiTY{9*o>MibQ_3XxCXTDo}K28}bPGT52))iZCjLzlMgOIQy5i zD3cost$dRrdC_n!6Y6xeQKuJIu4F+gd1Pcxfz32D0`b`by(}Oa;g3#7-u_r4x~{?N zxG$=RsC77Xy|FzBrdM|2-0d9T$_u7o-OmJ4rNY;I${~d!HJItCs$3x4lVXAI9-jAW z$h3>i37;r_r*-Z53oNOqVLio-BSs(J0n2yNO;s_f)}+SR23(+z7BHkE8y$=AFh7M9It zzxF&?sXvun`T$^@hw1q(m$`zc9BSx3LH?o9v^F9&OwT5W7Nb48xkreQuYz}xT)g~^ zL2YL7_;A}O$A6%#Y1;x~xXCYH?OK|~@jn7fU*%+Yfd!^QK4x*9Fk)=G`1lWu-)oUYy z3z4nG0;z>wQFM-xW+BTg)VfAN^$Qeyf1_p*z0q{E-(_$F>JL?`@+@QWraqQ1qt>FP zn*43R>=zE)Zd<5<=BordJbNhWAF`?zRuCz+h2Esfu>p0)=a~1E82EGMCmQFq{v(wO zd9I7(25b2FtBSWirhY_BTaJ|w>s9wvh1z!@wtbd-rz(Vjyw%RXe0Px8*;5Q!zL>Cc z&DAPnF9pD-!%h~f8k=H`MvA81<7KQY*8nKk(Uux+%E=r zg3f(2U6xmpfPp7P7biDzWM3QoYFXBisfzkh3rfzRGODz1`ONQtnH+g%VuxPw%~hQO zpap1#zq$b=RH>lri8+t{;eP)I!A+)aYFHCpC%*ITND&labDl5Q5MPK&#zo~JRfeh! zU{}jPC7QVnD`C*ivYtv>6F5b82*8CXRz`PxRrg-ikZa^ zYVFN*6=B3~h`nBwjrs#?Dt7d5U&#~X^Q?Kx8%hIiSWfr&a3r(n=DiUSoI!A|SZ=u{ zH3FTm7n47CK;53lS&+6-p=g-qsBx9SGDoeC0nu2&O`bFV9FhUf2!IF8xI8G7>&><1 zS4ZH%tV`Zq5EaPmZ`BrcF`QLtbi-ZT0dO+e{|}b~++;gHzkLmEfY~^#U=^nfIKwrw zZT5rU>-ezqK}<$(k7syuuO5c;lZL~0FfnKSrGFBMKp6T0lA>&AaM58Ip4D`aFfS*_++LM7 z>Qj9Jt7qAP?1g}>IjB`j_=tZKE{*v&Ylwu+qk(biJ^D`Sq zP|m4d*T_AI^NeiCcik6};?3xT3`Q>zd0I|u=n&*XwyKrmb!x=r=S45?U}B4V{tns! zJ&2gKV$VZ7cadQ)=rG)+UtmisVLcOGsPrD9xb3uN5VPlZ&+18NFo%5I7}qkC=kH9o zbJtb_2k)S^1%I4FrOojrp17bY_#cu5O&Itp)WJ+voq#nSH+y~pDSy2r6_PL@8d>AY(&#Xv^<%;&dbic5c>HsilWxHq&b) zJ5f^LiS9mWzCu1EN>X2bw8OnM7LF@RRtqwNPszGg#sk+Xe&azWhW(Nshm)1_MI=W3 zp0T70>aL?n5ACKMl-!K|vy}_6p&U{9Uf&Jk4r>D~K2K*!KQ*D2hnB^k&pzZmt(lYT zE@Sv8WI{R{-SF?M1wuh&hgA~dn#h{fiX|HfM9giaTH$(!zrJ1js5B0;zr=C(swiw` zEmF+C(j@SD)fq>@~-S1hu0&4dQ99`ITULZWTBH8#o3OXSf-|3rN zC>5u4UGbqYk*9z254%YTpusQieBcE*6T_3@w-*7C*0lbjMtY)4r#gEy%pnn%wlOcq zW4aLqxa#t@Cn#}RYT5=w1|Zpnx+Fa48nKM;$flH54nlEZCswMh1G$l%~r&9mewXdVGJ381!5qPZ7C-P~gl}jltw4^7Ny} z`aMFdM{QKUv%>*r;E)?to5&P8oSwRAN|UxWq+oXG)UM@}0QbkU_GKJ*bTk2- zkM~AW?&;fv4d$!>@Y95-Sgo<31N*aN{S>iya=zL$eYYv($C+54M?OQYamR8)lGT3Xu#?29&)>` zj6eVEn5r`ia8kZN!)=j6yC%~w+4;b2LCctmcQ&8 zD_BS8Me?KS$7^R)a&fM~3v~8Uv|W1D2>AwajFSY0I%N|NDfYYMZVOYA{MO%(T8&NE zimRD-mcl@k)vH>$K#>KE4wu!yA_lb6 zNhVYQl!eNPgo2f033B%}@pn4#ebpBOJ`P|YgAEp7(lQAnceBii-XFKrar%qL(VK0?3E9I2gVd3p1$54a8UreX5!=Oh4_}JN)Yh=( z;-;+0RO@|s`Lq+`E9PkT&qi6KyxzX633YK6%sEo8zZeQDUGZ*n^XrEW*rpue7MH|l z@6<+=4scWbz?nQvbw?d7`td#MJo9^9rL0zqiX2sWv#+qKl919G`a%Cy0A|EWiK?li z1m)h_w)!e`QbL=Q%h_oFrPR~ue2(t6pw!b%{Tm|YmXwpAn_W~lQDRzY{#V8?;(dmr z9!9kb35PpED+jvH;r8~eYrn-Lq}ocG56<05j9Pq~rIe^KN)@y1`OaknXYaNrQ@!!x zJ8JJA6pPpjY;G88W0Z-0QIl#NGgXMy@$0zewUkGXJV-Fp!L*R+b>nF+kf@TKsX)VS zSrJpE$@SdB%~MP*SZzy8=7;k^`i<;*&|wzO@)yrNz<)wh1zETb&P-&|y>EXesomxW4ci9EyA5e-veA#T&M zUNVsu3wc4%Q9SWHL^-nZ0%LqnY1w~7M#`oXtmfE>k)MyD{#u|HD*nCd97*p<$Vqkp zPT(^&ivI^K&fI)jMAtXn0kQ0V8S(xDh<9#rJ- ztLK})^an)BA0BUxOsFpRE$HSvj0YTh=DQ6huxnKpf*%FaMRi;Y2-7{Z0%lEzBG~`o zUwIqe2(QeBS~xz|%4|#|NR=}2ocvwUpnVGg!59h-%sbHRcl_j3fE&tX8YvYQwI{z` z27lddpB8l-5Dx*DkF;DRdeR#vcKB&L8{%(ocrpi@Jd)Q$AZg;-t;1kjYU`Pqg&J40 zuBIm@1A{ZK#oA|?3j?Z-dY1UVG=^V~ng!JL_y+&U_48D_p`sWiLX4x~4|dmJV)@<; zA?~}_ug4u6^>wF;M8>N&>1!U}7oQqOJj3{cm!&p5qTrAfCrVrImD*9ZHHN~Mi<(T= zoLoCK9MC6w63jPRlY5csTAKNL@fNt**tAIx@+lb^8R3*VMC)kCk?xCAz&C2)zYWDv zaCbqt%4_;`N>2$K(6|~1;wntEEFcj+7}zMUEBT}FRa`8)XaGu-7xA)4YsrQ5bJ`AO zb%1@*)6Lvweb21QXBlhiXxV6_kL~B9{m0p#t$3>?5YLKUN-|;2AU6K%-oqC*PzER( z?d*hlLZ`?$ef=Mx;8`Xt`hgbGYvHo4c@f@W%-!DeEdp)i*=axnPs6{uN$Z4&*ZmaIK}K|REJlo0GHFKeyG3Bo~; zsZftvp3Xtm7+_T?Ebz`uNdzLU9?4b;@LN3_r2~K+khO~)iyqgHTk-F^zPBSx<_l@{ zs+S9T@I6{5k{&Bspze7=n9`m9j@Gg0kPg+?3%|eb8g2yXZ>VI_qa2 zJu7ixP?v>-y3g?)&T<24mcMPv1fc7zLtUzS9^uclLGsx9Q=U;e#@DhUpD8`Vf3tRk zP7P}4Ib)?(c$gy$CT)4n)dnUOjigadI5|&mw1^JKY#zIUY~$N_{_4%eKmPyCxilrjG7gVh_uv&9wUm znEDIdsm%*Ej~wKn>{emHGt zeBnIBIDAo8)D31=NLQS$b;02w|BU@Yi8*(UEp3$PF6$gfAX`iK=;^FvU+`$iFO|AF&qmKfw{uP)fQ*u2SCu zxR{sPZ7a9DJqoQ^ z4^(Wex+m>ZU>f)6E{|k~9P)9Zn51W5^grw*=aC+v<391Xf6alQnkpJ%(jX6O5n8g3 zoE468fJ68>JG&m9^@h<^LZ10`AKy!KehLY}*QenoVbnvM&*yP+;y0Rb zP!;h=M*NR-grcq&-dfDRU9rH8e&BgXow5CHqwiBOYeJfwiCi8sm_sz_ z|9DP_>ImuS?bajstP_&;pN;cc@C&LeyPMP7Q0c#n=_B9phZaazb>{7N1UnbGo-b|b z#9YQk$PvCkTroM)&Wuk`q!1DNtXTsRQW?utw_MZ)hDm!a!7WhqZaW#LWjFCKcW1SA zp}JBoUSjXie#`|kr$mm9c#x&_6Sf-y1c464#>9!SN#q?O2@y!PNJ{kZ#%KhcVV981 zjZB@eQmO}Hp?}L!q>`2|G>1_TspJ{l4YFQIm>yQbNV}as9+0EIK4HI0uhuXxYy`*#(_rN^V>kjZe0=&fc#CkSLZsIz&ytu+Ocr3oW zS#?eMzD@fw?P+gX`7M$mDDvH*`NFpQMXx!SnvB!gIKD^w$-ji(7!l!XvExA@$zpBx4g#}m-lOALbXGDyhGtng1vbW z_bRJ7A64sqnmh>))6~@|^=a=m@1(y5-7C2%y2>N92CGlP<)v$V1HNbs{#+UN(<;7o zf1bWs6dkkwE6(-oMSyim_UQm|LXf6w@0h z6!&Y-TzBTa75VFthtoGW$&*y)@aKBGEFwld`Av;%A3w@5Q2ii@6>gE~B3OxN2DcG~8MWIH__cvQ%MKG0lIoEX@u{6K_nIllZ=8j^2g8}Ev zmsX@2ZCA|sf|}ViV_~vCv@u^^ah<WUV7`;)%*p_Q_n`VSRHBU9Z z=@bt~mf-hT6~U-CLznxOzUf=MY@k*c02D{VxJq9it)aQZ#HsP;3)5v!z07jddKg@H zX25=Z8&?S>Jp+8LqYyRrkB^CCvVviiQ+#U!c9n7_yj(x7Yg zH-tMJ?^!)gO45CC!eon@-g>8usTs^`T!VsayTd=^0rMxINBu468F_J7hIu`5!b^^e z^jo@$ZSzzV)b6sC=8N&_V;JzHOXbqpdHU~`PfyzMe>`c;;yx&!!Hq-&pHYX?x_`$Q7NM8c zu{}di;5W2^jiQ7mXv8tIG-gRk44zzu3ziolqCb@Ad#PCT_hbJkn)g>kF-G(r(VJ%%fI~~P-&fa1ZxbdP-W8qL2 z!qfNR=~ypLx#RXNDnIyp@Oy!@mZA3$TEo{}2?t|2q{FwbbG^lSwSx(s`*nW*+Y9Gc z6-rk9fjxqP&u4296c5J4+Y4}8L63RE$J+tO3|J&mRaZ7RHnfeA?paTT!FcJ|wA03t z&Fn`x>9ejwicES*Ts^Eqz06e|0aAxPtOU7NGa^q9aFRy^xr~vn=TiQZYQQgB^9g`?3zkPr7=@Z!h&(xnBk4^Y z1guZFz!;k@)_J%gk;Sr7RMP)A@%IvL9*;rm0vaw)s>DVQ%J?Ha zUz#7hy&AnBM!K)De@{@8S$=7CFXTnDNa|+%`r{u4E`JD<3&#P5{?I(XV!7}Q9+87! z68QUJF_-~0NeQ}ZaIN}+)EO!PD@Y85@Sgm>jdt3{aX(;=Lt>&?1h(MLc@Im71HGzJ z{TGNHm2ARPGridh23mPvd6*;5%fDBD;1Ti;2Hs+QGDi3vHyByJZH@36@Yez{lX!u^ z{{C|GNW`@?P#nHlkD*@GlYA#Nr0V;1)1-m1rb zV~WM#C`HgW<{uPQcNc!XS~;MrDRxV%AKoV0zD>)O6m>v(Y9z#m6}GjlOFe&>BEYnQ zQZ@lSuyL5rcH4Ioi0@uZHvJz=L9Y4@$0^S0wASzCMCAfa1#uV*h-r_tcY{1_ZJbB-Cq+w4Sy@Gr3J_P75qa z;Aj1ume=?!Ed~rCh2Tg49d&+NnpnYzuY1In?+5~K@uQ-}?!VEwD6N|dufosJ0NT9t zTLKUF{1dqQ6cth{PZE~O;2R>ss>)Z7AS|oj8uDYzMNG3iY6=4hO7>X5t5%DsUy`#J z5x0MeP*0om##SM#oEo`TuaCpQ9*ZZCM~Z?WzWgy)M-ed!Aibko4q}&`b;9!zQdqa8 zzTK7}+qBjNWOVL{JoP~0?5v7`9P3tVE%qTx-0okP7fJ&&UqaG{Vda4_9bx5iJ4iL1 z0;j#d><~C(u$Exoz5$)on!5~*G3XYKY542d{iBb#vqPTsz_;mL8r>dnmy&Ki=THR{V)a2Sjifhw* za2KTI+|X=fhju7bb?|Yl1N)_QpMJbm8%RIIE;-SSq7oD<8H#ff5ZNr3(|*PV_H5wr zAw`0=xXH+*3f+KiJUdHI!^g5XqGfluz=XadU~7+t#{mz}RL`!;!Re~$7$zMn$IrDl zooVlR#UBe$tth#}aB^jp&7Z^vArjn;xZV5&kC}j{;#>fN(skr}$wpvY*^Me^J8Wbk zGO~0{>|__P?$ePHSimXso%n=JAt`6ad1Dhz3$rVAx&_sLd1r4ZZEhZSOMR`0_g79d>I=O{SAT_&CnrRA9S;^s*Q{^p!B3pX|W;`L@u}$M;j^O^~3grqdov zNiHx~BCa;>5ll{hihVo%n24WEtJi%dk_E#wfe(%%bR{%enO)O2=zCWs@(f{wTR92j zhbtYxx73V1j9mD(s-dV_hA>!#tKGN3blk z&r9Iiq|QH(Qvn^LP!SF=m^W7YgZ@ytd#hDc6bVl7>K_Ht3eXD+hcNzczTi*@q_X(=CDX* z`3z=F?;e44J_oeX_?Ey>NrJBt*W}Z%05zw5Ux!gB4RX3vmYIoC0xxw7%Sj5l?7b|y z2X7IPI7{&mt}XwBKCYfOr3sY`Y|5#ht=WS(6yTWN@yq}$bIIaas!d^mib{LNXg?Vq z0xGTO;ehiWb!lpm>U39#@;kbjH^gmd;w_&|JOfN-hFPXn z4f?mGde0DZ$bq?5PP(fKAsR?w#!fL=be}#>z-HWFN&`fItY;JnPyPDBUB8$McME5d8h}{R2^-Jq)=_D>CdSX^^)Kst8@|JXT(1^({scp8!7qD%M7>bBVc zAdcAua4->rUfuuAlCMk0KM3!Ma6iEAwpz`^2yFxH^nV7I445nYI&8Q5Sp2 zA_npqq&Zbaq0)sl!{gbZLs_b=o;{?zlldqvCm3(Rh7%wNW2|w&KH3kndK41D#Kfn0 zSud$i;lVN$?%iNYF$v80Gz~&8@>v%@^J(~RJ7#KztJ2fWFP|gH-U4;dG%fzLK0wHN zOE=qQ;{0a4Yqf~xAxWO>l=mD#&8a}_%NK>DLSd1aGFyD}r8U^$aaSR^nySk7;}ANp zv4_$0;=WxK!}|8;VZX+=FNmr2*kx4#!!Y>bE%kMbPBh`?u}D9F%D*1J>-Comp;Ud& zx~BIvd_MJtDQDvzU%0&>hkb@Fa?AZ#B}VOm$m;x?!jqe}fk4S9?K*kn2uq4YX9h0h z*zy~p)uURK49s?+M<)pdH`0B>Yc11&y*R0(+a&{hfnU0K4nz3hi=y6hK=Weo->y}O zBPOyx%tLf#Ht{{b*O~8dHW+~P_GyC$Q0sEPC<^%+l=HR?tB30Pp zz22=v#~+OZuF3V9@0fi`(dw-pRIrI_jmfWIP0YXR>(?~tb{OevmF_Dkb?`FE9dR0N zbCjXj!{OhKP5Rs@lgUktqDzW+d49qq8U)GTFJn4J*2pX3pj9{SB#fmjmBs*U6IOKt zGTKx;3;6B4Qt53-5T>ZU#?-Bly=ItC#|ooLlsWfDR$jNq??=n(pF^q_;E^f{)y#&9 zGr$S?Dr$u7a@@7^J<%rgZ5Ikw-lj@@kBwbNZKYhIItbOdTahwM-wQlBe~>znNX6;b z!BM*2=F6Z+kK9cn7{0g=3?3MB;2^XSCiAY{8l0$xlL~Tuhgiz>l44UW+BNlooN<@t zKF|y&-xA|rwrkm^SS$C6b}5ATA(V+>v1Am&`6eN4bQG5Gh<7E_&FWrYZC%D?rWvY| z!aKE9<1kS9vKPFmL7IP}T@k4=CtB9D<~C9xn4q+}9(9pHjNauhZ@Zw)QDCcCRvPUY z@9ljYi&rlvHOjnL72_YDin;ZA08o@F4BD9mt#TKfuks6WC`F0$h$DBEk&BHnn~CaY z(k1L0GCp8g{*pSlqREprX-1G?ml&^pgovmowO;f*;GSV>fzA3HKN~cM(k8ti6dR-Z zoAgV?E51TF$9AcLFi|2#ufE76ypPRtB@~jOpk`~Fpgo$YKp;_NG%q`@r3ow(?Wiw) z9rZ?@bbl>n5uM5=c8<0Es=%WwChV_5TqR)3uNV3)_D-sVkeBRQ_RT1lH3lOucKZjz z8zR+1&2OGR+vu22eBypb7{YzJ$#Vs|Ac^gN52WV;)DgRgshyrO%@n0E%M}|8T@+ms zcntjqi(?1k^gfVL;@h<82O3P32?pNB#{UAtq!@TECtSE_sd{mE^2rARcbUy%_vY!) zyY6PD^|U=~nFJUkvr>pO;ko=75|C1P zm^_ddiVWud(8DVPQBWN|ukj_>!$%}6rs~Tve>ZBYcUwItD*(|Z@Vh$m_qj}Vz4sAD z6zF*hdHveP+@9;`l?_{>_%-Ueo`X3j1@07HcjAL(D;~%({JKTPloUpKTiX$|D0pAc z^~@cy*hrY2DLqZD$IjJGKB_D=ai6>&7%6NtY34!ApcOjFGG*^$_61di?Fdg?!^0nn z)n^EM)jzuNQv7VHIb8HPi!08G3iBH~rdho`$=}KDJJ1-fh{mn4=3>y-iBo85E+wN`L#%{T%xkaXVKgV)AsxnVJ$ze&eqp{p>$ z*Cs}95<^B7SIDeuq!; z*;n%3F8;1*Du^s%**g8!y6>}cDfSm8>%F0)`C{ce+O@D(=)XCd{sMg**g7KbaB5gp zLb$H(p|iS0#0sa~(0B9xbjfSQG0V5%%fRZvh9dnFSn#rk99*Mq%^utZPJekCb39?& zoSqr~r-2EfI2AwTWv&mwB_TTqKMtXQt|N{uiWKmXLZ;qZPuQbePN$WPiGUdv%xt?c z2@#8q{>!`_%i(%nP4zWaM~H-b z@{Q1tN6TpYkyOB8FqL(?3d&EoU%^#iD|FvJuOe#?wBHN;Tmd)r#0o8Uc=H+G0>kC@ zIj7V5$!ZpE`nTRFdK86M3SA~q#6t@mO{(>vQblB0b+3d#D-Nj%J`8v*B+hwBdJ7Ox z7h=06LB;`$W=*3nBKQvQjm6oc2e4Pq5%h@xsG|Mh3kz_LFsI0p2Msiy0Z+L##~>q` zOP%I=x$R?!q42+WKc=pG1f^uw>)6n#WMG9x^BiFj2&O9wT&~Eh4jI22?jjq7ZCL-4 zGiLO$`UQJQ2N^ZlKB=nC4jEQ--+D$2^DftVSkCU-!-4;MSz{UPm7`Uy>FAD3fcb#; zSQ<*FY5iv-zz$-;qnR*lfe`wvm+9BPSk6twC+ADb2b#?^->XTN2VC@wp*(yW2iV$? zYL92zL^9u-{umkwQ-ifh_TS`=aPFfGA?eas0Rg$*>cs_w;dqv&91`x(X;?l(Mu({A z*B^b86H5Ri4!*ohLiF$|9;Im;4@6OO7r6sj5;(&{nNrV8*nA8M{mKRn;Nd>>Lj|)E z8O>P3%h;HUK(+chqePfja8qzpL|-sPACGxAL&#=%PnV(jzpYx=&1|I^431ftbC74M z_j{**y*KHllINFiS2CJJ=aY*iUZR~_^`3o34RLp^yri4Oqjpbxji`$Z?Ufs(I1qZx zS=4}PRj8$Xq|$wAn;ykQ;qOHbcqg$dUFtbeu-|CIcuKljp-&UfhEuQeASKMBj=0yA z42YQzy1GrF=qjTK`$@|EYeYxXO4T3-ybosuDfP@WyP@myJgv7Q4=}(#P*h?NW4mKB&Zb z&`NPto^}UG{xEXf9-NUAl&X634w96-RDRbDrQQ+v+l%!nf1AD%&~I#=1QE~lOUY|&IYQW zzp70-o5c%9?o@%-z#~PR0ENCh*RO5^+tk;~yj!kx2^9*1!BMwxA5~kUIEr~qEoJf7 z4dO+fZmz<=nYtk7LR%chmx*wny}yr`zm5Z-esy8I_^bWe<*VjWr!0+%E{`MaU&yWhk^)Evga3R2iRuD#zb$t~kYnwx3&Z8xgx z%O`ab$rzoiIXUdPoaDFPYxWov{w|*t`R83O?~be5!H-txp%X}0i+V2j*Dga_ndWsG zxnlD&?;NiJiWKz&!QOl>?m|}`Rli3+qMFO2eHk$SZugdVcN6!>@Z4JR0jl=fJt!l5 zpULaWeT*CsKJ^{nQzc|P!z)VHIp6KkPRHRDv!Xgp z33VF-RDw!s2K3OJ`75@;59HggyMI0oQzAdAQEV===s#f>k0A{TS5j(*>YBwVVcncJ z)&=XoWDH@oYNfQ|OqI$A8iPgN`T3~jk?O$m#TUazz;@c7&t9CH;c}WF1mP)jNP7hmE2e_0mm|AH+eb)nV*|K0MLkbIIb z{~y}Y%^*^&M!)Vl#)49N=biI7WD4D|VRv+Y{|y5ddLnYCOj&m$I<-pOTsB6(U@DwOvy3-vLF=l(KH6n;MQ9joJno&3GY8QhNyM84RSr=zAe zM)JCmzsh7sf7Z7bZtwq%$;Ndi^rtTXT{8T!!(xpb1m>-{l!`{ly6n1hT~dK7iTT;5 zaX}0?m++%?YsVefn`^<*V#RFxg3I%CZU$YK5&4hwK9qcmae}yjUjyCaN9A-5j7Oii z)H&?$8|)r^9@^P7ZrEsO5mW5AHF!$$I&LHl(o5b6-bXDS%+RU5#xYXt9^9YW>rVet zFw9uWYb-Exp(Mb%UBl}>i>s3_1ZUbXA`G$;O`Q&u4l~wmKL&-MxG7Jn<7#+6>t)_j zcA4=Ikaj%YI{Sx$_b#^c0doZYoG!?=e{7+bGWgwy>TQAk(W23jdPtAXpB-fPyO5K_ z8RPAa{Qjo3+;iU3OyGtr*!0OdNSDQ^z4==gU@qyTTR3w#cp@p@=gyn((kUnX?9H9H zpt4#9QPLVxhMO4ntOy?+w56pF)_|E9Mawo4?Sz!vcjqdIA>DGnw<{~rXw7qCzj7W= zhcU}y^Q{|J1bMS^2wzU|p|4IbOh0ZRZex0D^>L6v)S;rC-+IqO85YyU;cZ}vxRyP1 zLhc|-G1_e~a+#p^Sw`xm)|vxLa<=yYw2Y!z@iC>wn5g1iUj%kM(hwe7=(wtnia`o~ z1Cl?4F&%_DgI+^S$s9jCK2q2?6x=U?wUy&Umn(JDSyW!Y``HFoEGOEpW1U{j4$K4& z65Rc`CvW~komA^M!Z3a2lU7x_(%P*X(TA^m?Ks$7Tr;aO@Q?y_qN*+yFv%R;wmjjj zFwwuMNh`G^MCQMZU;my)mr`}Hn_EUl@Rql2ON`O+uQUYYp&>#xmNI+v{hS272^jiG zY%43cxX0spu7dZf*v37lOk%^OG5FY z*AH)@?4VcP2sY?}<0JnD)5K6dziRVk>+n>z;&jb1M355uEd#@0LBO{mFj(gSC%$KL zaaURgfFrynXp)-&DsjCYxNlJdbK!ND4}cKINNIz+zl8^6isbYj`ARG7cGtgzO5$3C zbMh|eIzrufqz!zY?ZG9zw8e#4fr;d>dn_rOJ@Wdtb!eJ^%-Z6<7`=Z1*pt@YDlXI( z-q=>De4~(7F>!KD?9~A3o%H8G6B>o3n>(pv1KbivkG)nItpJvou~9KdVi4czt$>U( zzDm;Pd`p5dsCMoVqII26A+~r~P-hv?7R2$>EFI6HU3=__@EkJ5;~xC?4-TkT$EU3V zDd4!sqtv)a1Z3;nvGuo<0gS2S+cjwpC`p@Oyl<)AmHCP=2OAnR?^_jD%ef*#$^SHJ zjzzC9UeFsHhZ>+&D3F@_*&fb%p^SaP3iaLXSP6g01zaZwDmR{ns5EBP<0Bmdh-F}0 zpKPoLe4huT4$EYMR_t9i-b=sYe-Uar%_4-o>gk_;dNr`%;#;bvI}-jjLt?jS8${E_ikU$t?BNp**`6m3c-ROpxw1J( z&N`Opc^+wbcv)xQPb#qa<~#OH5ImTgko{}qERX!R8(^Y6 zZ^ap!KWc*0mP*`azLJ1WU654MFb>&`hPyhkAwDe`%)@SuLG#ofV9^^)Fn#{_U-bE) z?zHps--OJdoPWN_9dW46nB4~?Bf2oM`?~h69jHO~K|@hdrputYvm*kEY~(gVVy8zH z6%jY*;jDz;T3=hFGoM2$U>fQ?&|jJi!KH7{T4t17hb2$ZKJudg!GsmVqA@RERy?qF z;ZvISN2Ouvg#>W7!GKNoa|a;PA*VMH4b_>$sQslQW`@<#SZ z9Z`ngu&1g0eKrz!!aZt^ORWT^8w+2@m_+`fb;SGgeFb>)L!n==C<(;Vz9Q7~h*^@9 z>&0w%j;7VM%b+w11sdwyku~Uow$PPZV@u~pUCtDE3bV)!-~&8u<|qk+D_V7u^4y^s zBw2E;5$FMDB*XAg0ul;8$@13$d~cG=>gq$P^ahq}MXq4!cwkUk#fdT3T3 zDw?D*l9wuD`d5@iWCh(dMUo*^s1pyjf6&b6+zsLUg`+rP(rT@ zlQP$gA9>s+LI%8asAEv7coQdTT@MQVU*Gc~XBkeTeXQ(*q~Z1Q^_PfD%HEhdk~~Bj zoAPxpZeSHG*9Q;Ne!wQS?-i|Zd5DbY8s3B<{UsY?J-pTNg?zNm+%X?b2Qsh@N*~d| z!v9Fdw{?nzV#5kJ+U(@&867c>zexeimbWs7NPPqDO|TVjiQ32C9;g%A?!xY&WwK>) zZ~(JgX*~~AxTQ9#KIf40Vd~6hHS5~cpFP4T4jJcw0hbAc8zlgyf{o01%L!=KAHvh* zh8PuE_*%TR-8CyQ4bOY4 zorvEQ@m+px1-tLE1~O|eKTeI1FC+2l%jYfqdlItb(FQJ!nR%~JBi$H*mkRxN$MnC@ zIlDa}u#zCpeOmQ?Gj)P=XufnOvj7rAMIe)w$Q-f~MNdTa0XRu~wsg7FuzzKL$M8B->^pA^(9)Wm0yZ#PCY5gNH>tY6brluI(Z97>4 z%CG=h{eU69YITWj>;C|XKy|-mZlu&$pu>jRkjBufee>Hm5Lfs$mV32kh<)k0itv+Y zBu`S<=&n18@cnG>PaS-W)43t0c|7~-BHV6;fX{$ zuH)&1_>jz=2wjaw;z-STzmMGfaU{Qe{jr|2-;e-Dnh0rgA5zKrzWgnT9tmXb?VtD< zjCky?BuWMuA?3IT_1RM{NctFA-^p-3BzO*)+zFa14ky8hN|CA4Q7V30H?2+mSHaqJR!11(LZ^f61;z8%eXe;OHIckc!QO z(aqsyB!2i%Pre2jl59L_u;`wS=&n)MI*lJj(#%g{ZZHHOu|kTAQm5^agi!rhlORGu zl&91lzO_U6*AZUt6yG6!8TZi6t8|26hjYb;I>(T(-OIgamADXZ5@q~MWDF8zJJr3% zF%2m<8|8X^cSWK}ua=er?jtch-jmM0rART^_};qn$w(<>hpO)0D@bg|S*!PtcOjnI z$BNY4dyv?`Cem%1u7st|+P#yuW{Ax5;Qt(dhRM9iKRX| zBTg$MW^jYLed9^QtH7>fbH)!zv>h;F9`!;}yUV+?bMgqYZini%^z{%Uzv0WKu6ab- zoqP;!_<;EIOejSkze1dqr=%yS9gvvlfPSV%AYx86O+nYD5bgBzJU*cbNs95eZh0Aw zs1CEa+vr9kZXL}gGS{z&Gc{fyw$cHsX329q9La*%qVrj=KWjjYew%0KW`%N``h0LblL>$F-eY=0o}lH|80*7qycWo<&3Na2Z%*8)3+^{0K1J3Mfq+< z;53E()WM;zKiu_mlW+~4RI07R3a*iDDy9=VELF-bF zdjt2Sn_PPrXFxcKGiUj=G~n=Gb~ZH?0&eq2#N2~3z$94sQjq!%aAYSnDN!5*j(We6 zfES-Y*v;|1QYy>Jd2s#Jgu^l*GVQx$61@*-RP<^#|3B>gcUTl%)-Dc{bIzG2XJ~S! z7DhxA10X0WDkvf%Dq;deK?KAAB7z{2LRrRi_yLYW#mvX$b707bE1VUOOQPsO9fu&1cLBoRz_#bMe zdRgoN;kkCkIg(M}c49l(Y`6@fyXYItnWRB9FJ3O!T?TL~51bA}!qJ2puLA>IW^7bD~z?Vtaw1@p9aPIH9bL`qA@VwY~k|x_5 zMD}<~&3`=$e0~*HPQoWZ=s@0Ao<-bYYy9an#AKUK90pMzM%}!Wc0q(|tfT1p3pzjLvx9#aU4;fvSa)%&PHf3P;tD++Y0nII|ZBMRDr8%>!QQHS0H$X?sE1AS;Vc+ zz{9H3j7X9-Tx5scuoV|sgB@ezKp$oHq7+h!SRUQkI!6zjv<S0Y1+koJyo|Zl61qvxiJpI`Mp)$b8CoIh zMf4BuE&0$-B1Z2#j7`OoFn)S;VmD_aVxb<5cUjtr*ydc%lJQ+bICYcriABl4{@$eU zkvAR*u{E9UzAua90OtUSyU ziBGO9jCi>q!O&>>`_C8<+34*Qk$&I;3wfnVquBo9;rK!>eFNI3tcjiO4P(9weJ#0 zEb8>LU4ik4UBX4j=tUlqcJ0Wnl<`K?1&oFpZOV|Ks6|P#wJTD7_?by!P7$dPju!N8 z%R#a$#TnCm5{V}9=6?1NNd`Smk3P5;sqhtSom+W}M0T)j zUnm+zl2g`Y_R1xQzfs{{_UgPsm0x6fi}>pNGjJmC+1N9rmgl@P(V!ZM^_G1U^i4xb zJJ_RzoUbA=^B1Q$=`SH=n$C@z@{g_h%@NvGR_AjARvo6jK1h`>`+>ZVB~n^k-0lCu z1mWxJ6r&0+B1uuXj}%gykp5_1q0#pMq|M~(S5|0@B#Nq4Li@HO+_kU%`#*9aQG*u$ zmm&Q~{rtIIPsfUoT=GHBhxNCSICW1^dGWg1<9|1-c{5tOgN`-bzq@uP92?Y$TDyae zjjIN)-3iCaQy#bepF#gZ!wOXYSk1YPyC>>b{HvV)ausxJvNVlYSAGHST3y)aX`}x} zdH#1;PI@K4kdE>csuL zf2=lKO>IrY*!Ibv`Ts30+e#PKFwg2GG5-5Db0X&T7yqn|f10P~tHRoLU~O0~F}{ob zk5x-+_Y)N>7=gZ&*kA45yH*cYa|aRYYnvoWzyBd$=~t(}tUI@b8Li>xm+MdV|BvyK zQ*r3eb_{3ZPyN0$9sV;9HjqX_th-*m>aX~JwP9VYPlu&Jj*6@4zWnzD8=y#%B8PyHHk|$o`_Wx9kf5{tV ztB3ouUDEXRr+#guGDK{@N_=vU-P2ZqHO$lXY+b{$$Fbv%6f_Jb&)` z*SsNac~NWFwx4#551WwM6!quvLR|J=)$w2E@1YN}cdCA^*aYW<#=_MQ#7`0_P`zgl zA}?;)$))oF@n&wkkPuUht+WKUI92-+I`{Ps?vN`*ym#|Aa;aqlUHrAtr_*LwES33= z+~)|<(`CIS)7L^GUqZb{^dAC0j-W6s&IKalG}}U>tFfU2N6p`!R6}$$K|Z(om=MEc z(D!U1QEV0;eujPC0I|tgf%WYwV6hQ5`1qzCo3xa@`?~QmRws1pHO)R_pqeedlCP%; zTo1^<|FFv>&0)r^NWpV_@l;m+X0Y6gZXc2#|2DUiZ}qJ;mPM1u36JUpvu{AZbby z@V;*tq|{TE?Um|5@q5?x_dA7G>%KQ~Rb%ygYr4t8{zwbtWsIpz28Tgr8|%W=+4Dec z&R57>MghWX7c*~dVF9H~N#zgi0J;si?iS*=L9FAYXEQw>M1`$I109WlM{W0*j>l(^ zvP7ZH&T4?aS^r>UsSG&z1Yb{9wS#>6zQilXdqJ|m_<2fr8#XNRD0pLf6sX5**9}P8 zfC|&y_bjZ}K>5Kl>d2aD5Eqw-ALb>1_P6B?W2D6(y>iaz_-TER>P%%UdcFw4V>>sW zE#m?Fqj-mvEp&kAieR4~rU3=l@z2*113)=O%$?NX6R73w4Ec0W3#1iE7>DOVLE-zb z1jTeeh<5J_X5Ib~bWeIFCJ4U-(MPc+J>a?ey$Db%Dc%5?q<}(8*JQxQX6qJsgn_!I z$&J0sfgn3C7;4BU2ueqGco-@;fl^w~l}9&2K_r}$GHH(uXq>^0R526-zHGalUVs+h zd5?UJq1X%BRNHA?f6Rm0hw;p3v*Vx|dz$Z1;Z~5ZbW%Ezq5*0HSz4Ft#z8ZS=aV3x z8ffWPyyKzB0L_E$n;SMC2JP^8#ogLxKrJ`C`l;_t(6E!~A{kHz)$5fyRF*oRv8CG2 zrXvDWec&pjKxnza=~pH1K1~cXyWo z{fxY`cdR~dCCxoSZ7{SIEO_gbK#!xE{p z@irK|>NnSLvIWiH-1`xC@u0OKf8$%nH=tv1a!>plTTn}5#@>HA09p$4r;pcG1J>GV zdY0i5Xa??@kUbm+>J?)HQT=VOk?&!O^MxvaW4eQLlg~l_PPT5hRyAlPEqpsTObRL^ z-*0ePz6Pzr=)=W9lwc74eM8ReIMAVg^7&3wE9kw_QbwBzb#!a-*g=x=^106oe*u}@g^ zL1QK{mXg{GbX|KkG+#;py%?%9*8&?sZ)X|B&VZw!9eCvi(n|)t$7(s3s`S7hkZVFG zDgpGZ>F5qdNdT0Z5%y-h0sTD2k??~#pwafxkn=@3Xm@W>Rcf9A^_16Ii=R_K%lPuu zMwL&XEq&vKWzZz(YR!Dw9BBu-8A5D&m#>13b8!3ttrwuP{6^xzz4xGX>=>t{`7Y2> z5v)lM&;i}B7X00fgJ9rqI7zX^0(9`UUrS^1LEpsThDuX2=qHB9I=l1&cD2#yg8L~j zI5_j+o=HCF6*8IUZzu!Zm}h2}!|7J{!!xY-eUqSnu}x_8xud>VASOnq%M zAA*)!a$|$zP0+q$^!QeZCFpF`+ip%%0J>^VaOR4npm(08V82cYXlJdsS06D4FpY^H zpQQqwLf^BVVXC0J62Bu&{4waa=&8!2?*N0{gGZJWhCypMz&Bki3-sGsPoCoT{llyK zzb;?EVW~Tyuk^C=>f=#Rbphe-mBtu^Z8oe7tvff64YN%td#Q|YZUOGp* zgXtLX7$_gx{3H%Eh0gLjpEL#qxsWZvHnt!y$;4MTw|cxzxt(PrV*vbJv7<7N_khA| zP12s`5YQ~sb^Soo2`c5O`woOlg65Y^7J(8cKx6y)<9o8nL0Xt!g5pU6D0duBnrJHq zIic*kk}u3ab32FBMk9$5mmhTA4$4a(tFK+=Q1qtjE+682pXYX$h7SOzjxcGbVLnLG zld_au2?j|f`CBAWg&-48B`4c449u1xpS{e-L6mCK6aL63glkm_c-F@Yq8x{lww!qc zlFK)H4d<#?e^>pZ%-GnlHkL=+`$uhnJ$>t?tuLYw=QU$9yyuQB8pFBYX*Fb%A^C84}qwwCw)6WP! zoOSx#U2fR&ci97n^IAcq|7(bHfE9?OeHiJIID+-jPX{TT`pMFC%KYWBTu~ zT%gz+RUDL7h$MErZn<@G$X!ZSY?!SGKhkJQ z=(#eG;Edf=#Pm*JK3?2Ur^SF+_8mGCLhXg9_lgA5J~@Y|V|pKOrWRsva_=eoKGi}j z>4(yy_VWOIf~da*bkY| z#{>Pg(|taoPJ~X4Ee>9~$%viOMpjd;1c@|7%-nAzK@x9nze4*h2;+GxB0|sZBc3bX zZ=(0`VAEC7;nZ(UklyH%e(`g@NMY0K3HO_32;U#SQ{?UvQrh#~w7ez;Ngk>O2HPm4 zC~bDp^6XiJzpIoRZC8vio=wa`oVSt6^yBkQLQ_cXWy=ut6a&)UPaA?AzKi4zD(|@@ za}TNJc;B)QB1dY2t<|j;x{*p4d(GkdlSurC|4O{KG?F{#U}nbp0trv6TlI7~BXtLd zTndG+NYWRRI3d)J6cby!!bt8Sd9%>8uZR)h=gIsXe*_~ryHB?>!i0O~W2|0;!5;4x2ohN3x3J z@s^}?NG8@NZEXKur0D5Ko?&lP2!i67`>7SRtXvm%E*fULk4oKJAYZ z!Pt0!sO)6vE+p5+CXxIVhuGo@%0e8Akc@b=zNoS;!fVCxGniW-{tl7*+~Mbts8suH z1&<~|SB7!LE3^9u@AAMVlIsQ%HwXhgk6t7tlSh^J(h>3STnKyFD~06Prj#>0%aCN; z;&MAvIl{%vaAWn;i2Lr#%nCspBqmS)gQGkG$-Ira5xSufv5us2d^^X4M19FQj(8~` z{!3y~$MJZ?Y9myRz1K(dp6>)HnzfLqMx4ohH$xViafS z{LK6NMsbLf<%-1ygDfPJ>yEd&--EdQcytmuJ&>sM2xFCcC!!5Deg4MnE@FFsvZnW5 z5Vmm7CTT+32AjCohwo(BMJScmTV$C6B&L9Gi48l9NJO6Q4)nT)n4j0(-Myg%v7ZV$ z(y`ADu}e8qo~ZtaSY@hq#g21`VkD)pQqz1xb&{j&|;$-P75p*^>BX(tiK zX4gmWI2;IFd#}f{HB=*><{MJNGlPWX_fZk*OMHY$w&=^(=$a8NW9s|fk1B*AgVI_P zM;f5=<&g+XJw#Y^s_pi7I!9OzJ!{5T#ycR%X(~R)*#HITLKKS^87qbCQREGI!I2pDG`r zuQb>w@@qSmvM^dBV~zuUuV*E6hn)!-HdBN9n2TAWwVYyktd__A*&YiLV6zEUEe&4% zd`z4J4WGLK$>$>yeAl;N^T#t^Jn`HGq#vJNo#}PLRvhPdwQTwdxXxvo>ytUaDr;BD z{OA$3tf$)@Cgq8ZCx|Z3-I>Rxy{>1*nqC3+dzyMrChUN7@EnDvVlMDb&{SPNAOsvS zJf8wjk^on%`{5am1i;}ot8NOI0`k%0I0EUbxOw;H1!{@{ zO_uV7WBd!iqfDhLNT&$omi;GF1oi`ek*{-|bts6XC#Q`Bq+yj8nHEFC0T}x3Sr0$t z0okW_6`?MP*>mxNe6PSS~ zu8#EZtu4S$c33>-(;Hx~r;a>Z=LG^$(!z>XX&|gvBor9M1ETJJfe$*~VpIF;vQ1P3 zfY<5OvoM`qVC6JfH?#o34ksQ^bPAO4V?- z@Q9L^NJro2kzZf|fyYA%y>BAA zbG}k+T>*%0(5jv0jy7VK9uVGaV}JxM4dy)Bi9@uOFO8Q{V-Tz6QNNuV6$pi*1AA?+ z6(X|G>qp$rG83jwd-?fWD`2DMaU#w)_z1Iv4zo>>2}pnx=6$dABksMD{`OlBVV}P2 zdD!UViP-xNUv+MLh8V8Njeq)>fNGd7j=h)yLlq-*gCVmap9NO2$uaoW{OeK{Y3 zgn{o$7~eD^Z&cVKwEYp{bU1QXcd`Qe81#es5mze`xLcp4ZC8#YuA8ycaHt@Wpx)li z!Bj}d@pawk)z$fm;alFS??H&~f$yy!Jx3AeEdS!+e0jv`z-&+7lZyDY=Sn`?lOfJ* z6$Xx=&q$Q{i??ShE8^i5)@8T(hD5JTyq!9NLn4ukw`)AFVEMZr%^e8GAtfj6UQ6$- zh=!5UA*RO|n@0*_r>sMfP#A@ILcno^%Ts?NY)ONdnr@9cj@(Dm7Tlx>QK3j`?(xM> z3lEV9jk|P)jx181zCSN-@Cu0zHa%x!_d`OItb-$?n+YAdiq<=aqmZ- zuczjI3dvqeq1u`?j|5Y^v}CJok?inU?i$+F-)|mmqw*+zr1Y4wc#-__>ij3LE|c2; z;VHQCDasj<soqO)~NxA=%~NPdXVYNX`5eZS*3B)G|BI z$+=1(jXicDH#F6d{P*0WlY=La`Z;RaQTa1S-s(d!JAPe#uqN?w{<3!G8!PMOTDv2T zWy|a!+Et}bJW2j{!$!i+|JnX$4eM(vfnV_Zr}2g3#3yH1)$u5 zRqrM~vB%2uGot>T?K%INxJoY8+xCQrx##nLwmn#JPwlVd$Fd5He~Gs-N@a})d+D%x zjk$`$BDJuF{arkN=EveAZo;o5{AWCAB66NJvhmqhXJ`-7E<$~>%GypM?JVlDcaU;p2~o#LPJbidwa^Rxb(Yy3au z|4y~8gj=`MDz2~bV;8&xeu3_v*Masb5%ZLE>P8XkifR5C|38f%_MeFQv;C1b&}I!g zj!FGp|Hv_xzs%FZok6T)*)_EpGfZ?_bta96lNKZ{+<{CeSt`jBmSb0+r{CT`Ka1OVIb)M@A(DnXm z^CHhR?4%|twXo_Re|*1vPN)AI|KF~!xOn4QKJ3$&DY1@@&BV76U}gLqf6ep%R)Sve zKQ2Mf_$@*A`~!bW(AN?Dfxji_>$pDtTY|oht$*Ne3Hmy&$N!d~uj6|BZwdN3uE+nD zps(ZTANX5>zK-ksza{AFxX%CoXA*Q+f1M@bdMzZ~#kL8U?8Or;GB^+|-&2;UeOm~n zFHH@Or;H*RPJ9zzoFn$;YQc3I+g1Ndxu(_xH*88Ius12t6NzR}x>%Uy0!i&fr7f`w zh>h^x#C2*Pusk2gYj++;WF_h;DrRs9|mdXkw@78;{CUzgfndO{WxpD&=`KtV7 z_e&OR{{6=%o_HFnVh?&V1!QJK^t}8Jbks6i1FnTV+2IId)1@-8X4*rMkhRmmq`2tW4w8iw>qBjz;bcBafv*wo4c zANhe&tT718{D#=^>tw(;Fg7Nqz1_nCKEn6OSqMSfcMk=RZReN^W2}T3|xRM z-PQd7x(_U`_z$KoHv`A*$1W7MEu$RvMzLiKtO815?Eczh`i_y`o7g?#P6 zPTyN&wQm#1?9^P?Dk=oxUs|v8=h0%_Ht(-U(&0fqjyuIrx*X)_Jjm6}$ALrfOZueC zK~Um&@U_J-3seWnTW}U5z-Lu_I@gL8xNsljg|mG?@{E}DN!|w_qIx>WtIZWFXUTUo zTSB0;_xiJ!Q;{II`+AM_QWZ#CVjCN0lLk?hJ!!A^3xLp*Vyo&DGr;e>sqMI%6maLX zd#A2{1orJ`UwqE$0kzZTr|(T>gZyob$!>uc#Od`sjUz6AGWFBKT6G#wyY_j4f|Cm5 z`E25;TLeI=f-Z#in+2#mB=sd2hJcduKK;$H10eso=i{=zB`BEf2#ekK3Gl*KtXX@) zLB;(Yv($BG(BM}(S*F1b>ipZhSIUh*=Vo3bg)1efEN>is`Sl^FUYC3YKhA;11xL%* zWIUji^=P`n%nxKmWR5>5p#mx2fU<1qY>;I*v<*j+2Qtdvo*rZN0A>BRR_~N-Kw(($ z4r4<*NNpKD%zgm;i0%+Zh2jqd+ag*z6aacPL0%0xi=g?6 z-}FPzAn0V-xXc@SfPq^^cC#`K=;(MoefV7n3>l~m8p@?W>%*L^^W||+l`$1O5wK z2F>jUDR^!GW_POct4lO!Hy%#3WTgPmc}`Dyy8!h2Rz}PC4}hL_YS;%ZQ7}k$B*YDy z19tmqj0;-@=pC5c-M1|ppiqUBoberKwBMlPc3}g|*R1lS#sBoq;= z$D8&Ojp{6YJJ600-6zev%99@(xXF1l7%b}X(Tf;^Mppn$TZ=yE*uJplINSnyu3M#V za0i2K`)MEcG$+vgq{}i`dIogwWO9Yn9smQw4AqDCmO`(s&i2QW9wT-z=kJE&@%H#lczY2~gIkF6Vs{1zOv$W_@1W zZf&{oJBc@@K(|}4Im-JG=$Ia!yJ!9kbTnlA_J6boZBl<}C)Zfe)7Ul~X*3Jk9wOH~ z*vdf5ZQLZq-4XO&3h#Ng)DJq_AB(*vKM&fi7dC9nst3KvFHN&2R6z|4XK)&aL9_Tu z__OFkpw_j`>2X3D!j_1Vp!s6=@3W+)y+?=>YDzu*G(_x|?x#<)TGtopo(i5#f! z_2AlY-UHMR#tlaX34z*~D(7PzUV!H_N~Shw1f^;9%?WNOBpsePZ|u z_(C0vvrjTXURacY?Ryufr#F@3Y-2!XQ;7c!a z19?GZ|5mnVdecA|x1XRnY>b%fQg`n!2mpars)&;LT42BR(aHPi3`q1d1unly0C|?g z%OnT3fQX%N{7E(^P#MjBkjQ5SB3?f#`^{+q_jSZ&D0mY{NEY>0I&J|mqw0;{gAEA_ zClYe&<6W@MD!22q)QyC`rXyRp9BhE}wyZUqj~j?boZIcVNf9LWFpp2sg@BCD(y@i3 zFM#ET%;Se+(x7&8wt9z~7OwCu2(yhN##Z0zP9;*rzfsD7$Vu0P(#8Po zmg2y>u9DcyiGaNqN>hMpx==i{-4(Gu>FUd)ItYR$;$Ek(t04-j(HGlC_aiQcqU>m< zQY3b~s7Tg?191+v=v|+TM{F$7d(?L(18(c~8I|B~NZ6*NSopLk;cPY_B2_1KTiq?Oep@@SMhE_&%Y> zPECJ*Y$Ku`Buhxp<3hAIcr!(>-AC+kvRbs2@krc9F_Ow&8b}I6_Y*!!V_mw>5AuT< zVl&qr@O`z6xWm}+C&vU3=V?!;Ic^n1$5@vZ?Q)CI)D~i6;DeCrlXSg|v(FHZ1NDe^ zh$oVHHFdMAMFhz#HsuF3OCe>&Nea{{jU?00y!pCA1*r=*97wI8MDp3oWA)NckY@J9 z1?g{TNQ!cGesSR{c$U#D{{E7`W z+(%Nq@9JseRgv=GjmvrirAXbn={5zsJ<{nv6#WdVMv59atr@Z@Nb2sT*2o(JNb$D2 zOvhawq{R39mBYv;B)40xp=`rfgx_;RRF6awNp?t_u&69UJjt&<$^!>7D12&myw?p$ z-_3d9vW*L?humVz+kkYBy=K_|+y*KC;63|hsve1`h)jJBH$wO)eS%lRBam{(5d(Gm zc%*hmIrmb<3&gWw+B8PhA1U5_uV3VkM{=^E8J68RB&_H1;C2@sQhHu_tZyk4F`p4X z)>7V&cv4N>E*2j^(rrn4LbivHxXrQaKOW>F&C1BLCr`5=JU2N><@tR`x#@>u*LfwR z{2~8?`=R?tkz2zculf#B5#B|ezmX3~)LK73T4;vocO12JRPjXI4rD_HFHI2cg0Fwn z{?|xCGByWG-h(7!Usl-GTt^C8%DWf@Pav+YK^cR78l)KB5&PlEGE$;7&VTpR5lMJinFy&!He_)id(K8DPf5{O(7T$z}CO+?SZL&f1D>S>U%^i@aSFy@Y zvw9>Rd@t7ZR0m=|TG$>V&Vab64u7UN>5EuXS#Fz>^COli+b2^Xi$o^W&y+2ZB5n$U z-qRPUk<>jstz9lV5wH7l)c&)zNTj0aOa(g^A{kV2tyf4!QgCnX!VoVax$`#8KgAkx z@yeS<&l)3^h~$WyHxD6!Yp0W2@bpL&f2ClB{t6QLUQyH^M}e4BOe-$rFd&XES>;zZ z0piBORKt0nAepaUXYe0okr?H`5q+jK#A4WWx!JiCvA2YJ9)9G3SSg*i&u6Zp)w7@^ znp{Ld-$kn8XIWDz>v?(;s7 zF^X6>s!!X+@5ZJRpMM}b9fZv|ao66|al<jep#nNmzQqP=0-`3PkP;?ws4>3uLZeTbdUhViOEcwrCh|VWkU{ z*HdP8A&##XxnHs0A&i*?BJN&K!esPxyZK-R(7X&huBUB4=uY&0NcirIEewl(h)#h zLdVT{;F${fCit!canbGH@!huyI7oZ5O@& z;2Uk-QQpb}bl-QSrxXP1&M?NyL;?pz1qksmktof$-~pkMgUHqRy}WbBk+44V5%yi0FK0= zQf+o|;Gbt~IAN>{;#vXWZ#T&Uvt`bY4Hq_nVCY*CnuQeLc&%~bhzk$U5>9y8;-Ww_ z;W+b$GzQ=-5Q=D54*@Asm%$$DRG^O@74qnQ4`lHRq0B9f!1_gez{g$}7-PalT7}Yp zBw*nO6D|wb?2GLEJJ_+wPqRiJO2&b8M<-*|p*@5qKVN0aJ7pkX_1Wz{Q!qBodUiag_`F{dNMCG!HL>{{VGLO4YnWYu(&T%9aq&E2-G1#c z8yz08k-Wcc@InMAxGQ_@tpt#u!$zKf4~mFw_mFL3bpqm4*K3OGUqqC7`bpthslfhD zH>d7R3!$f4yZ!=4C?b>AFbG#5Ae#Nh7_X%VAgV=3%MU_?!EiTQN>K`gbJ#0#Ysm(2iU0V1+btI;&ux79jY=A^a=qD@+D?Z^>2v$0 zwf7SwAI5odc9m#@$b!e}SqNI<7IVX1zHWN&y1VvAn5wD00Ogp24S7?>YJ zitoP9yekGInMc0=8>&RY93sc*cMc;i54la>(%&Hxwfc^(lwriPd4$qEuolsg=-g+h zY)4Gnrsi7;I+3s>^9D|-Qp6aGKN?0thUjnjZNPDEAuLREY%nMSfw7&UPeo&gbh(>eYFOr}B3;`*Or#Z&4{I zVTkY|ek>clpFPYc1uK{0CJ>n|RQ_h&)i`1nq z4tK47?s$#bTNgiMAhB258Esuc5I#brNpVLzk`I0J*{Q_{X|}SrMX-1vttO2erPtL+ zn`A>IPvk8mAa}(1^-W)-GDJ;6N!EbmcSq0C%F81B$`b9_?XM6nv?|4cr5LH@HnV>l zynt8Gw{U3-j_%^BFxgCWr}3IVdM0JYj?o0UJ0U95UU8CA^A5N*3gvbNzB9F zi+;tw^IQMgop!8!V=mEd#%kGmAd{Ghbn(L-3cV(Z=dS9uy#iPFM|j<||0)?4$(UmAv_+K7Hp z+xu*Op{{@6uTf-e{aJrycQ=t|Z0AQJ7U_Es`MxZsME%)sCS?qM7XRg*GVW*n1D@M{ z=Kr_x9;#{dSL37C+1JLgA2Y;y{?&#JJ-)eC7uI@he-zQyAwF5dD)#@Kgcz$Ix%J2R z)yu^3ZxMfI3enH{Gd_HQ|4!ce*1waE z|E>S+sQ}y><{EbWEI(F6v*%yo#o9SYqyFXU{&NlMa2xkr!*W}4&;MlJN}s=bo5J7v zTNQkP$lF!+ukc|t+x4T?5PcJ0%Zufw|8ZVvXL&-*_c@m4XMF!<-ZI}MVtfgmdF#Is z|4;L_?RNi9=KF{I;{nOAia_qyk6W`F6At|k(*18cFYkKd06#xADcCtX#dN< zbYb;Be!6NlR;V3h^DDd^N3Q%;{$FiaPW|Cu;rqAqm$JkYF@H=2w}$0MMx)lSF@VZ* z4SW66iT0afW}^MVfcTd$taBqPvH!dNt=6CAeZJjyt!}JceIwB?`{rN1Z3L^JBPvm` z_8U}d`LMoiL}e4!8ahlIFZA;L8P9*YeJzJ+iTv#ieShg!UGypHug2T5|ER0pbC77~ zzasu+2~3@1Sf=3`XtVKUyUDiet0vn`ZnDkEO}4FRvhA8|+qSK*PJ5qooooNR|Gxj; z=f2lk1f1{#Ao_{Hfy!NA?e1ZP6ck=yL zq{a2^E5`C)0%rcdILv>BF9POk_`+fS{}69Vv~>5LQu1E{Cj9^6F#jE@s}d#ykvWI1 zKyqm>ltgZ;wYX=XS)hC`MYNWFM+FO)m1N<0#fd^jmDKqB;;r%>&n^~9IPa8Ph*lBO zrB@U`#jS_pp&Gg{CFL;BZu*wA)}|ADGEy?xNmY$X6 z`>_-dA7-^3jrbqG@iQS3?Eu-RjB6Xsgu;q0T7N&(gBkwW%fWukhh>Uc2aUBk_Y}=2 z$!-3^lxEs6W?FlKW4)1dbH*P62R)6XJO9%SOR7{gx9Icjw~HI~5x52<)YYn1opC}Z zKuSLT_Glt6x*c<0!_=-lVb`>kLuL?JRZbIr4B^?;{*{n7=z?w??`x+2IFCMj2MJ$! z{@6n3=eM5du*Oj;rh7obOrh^Ysfi{NoO?=S(x+fl%T@9`V(?~g!Xmi@kJ7^HJJkuu0 z+t@Q-D$WE)e-2Oesu~URxgTH`)}R0&d70fWQ$x=ma*xSTS_aH-?AX@kkbp_bZ2oo7 zCo1{I1gC$a1XX&S($HJ@1CXJ%KU`r2tIPXIlqJGMbCl~!)BX=4DT7Wj{X);b*E7hy zC71_})C{fh-jEb$%c6Ni2OBe%%U!S%6?`Ft7;8087jSiZ?!NAdY0@ZPS|v*iG1B>X zM4T8BSaZV85tQ%Ry3dH$Y#qwTF$~ zOB!3#aurcKS!kR&`sq(XlPt}D0ma6(lx3i}7((IVFax(qQBU%03! zsE)F#=hKyHJE)n>Z&e#fW&B_#YMulb=cYw!Sk6NOyUAE(jRDqp%#HAhK%aN(@+Utg zi?JkWd_onv%8pyK{;IhP`r#hFypTmXuB;??_=|}$`)1LK_ z?e~{JC3y73`At&PGVH6_eIb4DiE``mR$s`*{#fwc7!H3$jAm=(190^eN=MXWZ6!XL zriXNNGv1Q|XWGr3d!xgV{y0m)?t#Yxy&3+rhn$d2>NMiNet z_qmr9H(w<_%~MNKQ7A8>==C%%zv`i+Nts3&wgjHGggpW>gcJ-2#?4$q$#dtpGto{X zv`}AON+Qk!Cn}3FcjKo7Dl&vF347qW=x^mgM8!b9)R+Ic^3{pUiuTJO`!(Ng9Z66xgmu12*d%9=4y%^QO4FRh#o+Tw==) zzt@`wbWwhi1vr1ptNie6xynJd@GVN;bIJwp9BTu1gth>^E$7lfs{it^hM0!%reJCq z3t#$1F^~D#9I&&6P(tQorr5X*U_eAzNF4uq^I9n)uP?NFt$hE6ubZGwk4(z&h{mJ9 z9HgzCMet0wg{38(FaW#VrUq^U7p@*Wy%Y}xg{PU)K~sUZFNYunsP0wA@h{5~H${Be}MDblW9 zr8$+7YJ)Z&%WB36oF3#fp1um|o*!(6?GNc<12;%18V6WDOo+im6U_5RaF--~ORAh@ z6sxy)0@pVyO<~jl4OCPDr9aUnx3l=*o&K|tmBk8ykB_6sRe0VS&7b`xBQJc@+O4@Y zwAmyzHnevIh}0sP{AYPWPvpn9e>0lp2mDhypub<$uv*k3A*?)KLTs>~{PGO+%4=^o zwhEy|bZPd;l@aL3C{Fw;_z1C0C$WJ%P6Mcqr(-NNWle+JW}3ZKp0)xdJ|E|NCNqJN zy(a__Ixv-we*{UUlmbzNczwG@F*zPejZK7?1E^B&#H{cjvq@C9hB?MW$~%O$QU=lI z#}xH5qG-XQ-#ZQhes|_68~kk5VuZ6YcpVJXkq{wp*Dpto=hYt9&T=1DZ|=Jh_R>Z()W{DaAcZ<#idpO~di)L`_iSF3EiIupXGVD%7d^ zuLo?NT=LI&=%as32X?+}B&u33A4ws<0n|!drRX`vK;HVt>#3YFJk5Dj#|=jjgc^3! zWh}rAwsewolzQVPFHI^kJ6#Tn(+rJS$kl2ZVej3@Rhe*JtSxj)O8Ccy{tM&nC^fKt z=d4Fo_?wclS5e!Os?e~|4UicZP$GMN@S*REr8X4EI;m`KuDuc|V%Eq*w&pk6#^IYHk%_DqZ?Cy<}4I{fKXH7e%9Vp2m;|=T_=u zF@EF247gRMecChH_*%O&0?xU?&OE~KT(;>RU zcUlP&A8gZQYiq91GISi{36Cl#wI_j$c?xnxNE7BVRTNPglpr;ARTif z%~c$_qnCA_Yz_z~{>k9Rs%i(XfgQbF3&BdNZd-KXI~<)5k@9x8KW0h^8!yeR&Q84G zYw5V)WH?_18S))i+}@&Jo2GA(v2H|4(eyJ3wd$cDU6wX0#3DiVMPk-Xzu^ae+sohW z=o=&LBK)>)&A*xFL(SB3l$1U zlD%KvkqpU!W=`XGpDJA;6F^bYPVLU5jNuKdaURH&|5UxwGq0F>yLl!g&DCP&i-IQ| z!aXP^nr<&u@g1eg^9_jI(;-KMczL|?Z<)}M7RpPUL zz8C4_+sCyj#$h=VlCTZe(czrMf5-pszMqm-1_%wd|81CrvFnxhE;#=SUD~#+b%#4W zumK?ogsKIII~)nk%tpqG_b7)cbuL0zVVzR5mLH-p?Jn5du*r?n4}Y=*G>P3u&o;7Q?e!AXl##Jj;L4FMKa*_7+RvMt@r6PB3@GmPWPP zbU0Tb-xac?qK;>c#H?x?*&n1^hBLWiF%MQVLdCV-Ji z%LnP3f)zL!n&N})+=`l1;Smk{NC9@j#vPB-k9>^q>`u3}#V&|i3EJEjlhladhwlmL zh+^?!7QWJY>%`*NZ$2hjti&U@*$SNK+M)?~OV~$`g5oUzzL~IRyX~|&mPNx#QI+rK zfmig@@c{2apKKsQLOJ7FvCVE!3F?wy%O81QTAQr%6E8d@x>1~MkzqJ#!^DgLk&78{ z{d}oxc_#ckO(2o^H9dHQ6*s$D9F5Z!7XwQeWZ%w#YLfAzXTcfCX}$AUG6gR z7hM^Nh2*gaQM6EJe9pDYoLm|wdUSfzr1v(mnL4549)6F1w$6S-{iPGzAbTDytbC{PE%6{cs&uA=D%tiTz^f5l(~K$c&o4(UAxqvf_RJ2Sh& zA&%H{9dgK#b9FlC#wz#o zP-ffPr!lTSzV`0*!k)3cJWlX_3}>-bdMUX+q<6{&XvNytUwWwfj$eyDq=&-$keJS9P@{v8WFDo7WM*MO1T7$wzFM-G#0>r+%&rAT2 z&0AqUh-y&`UoNDCO+y&xttSU`*W+WDwdrbuTGR1I#_Log44JlOtQ%y6s*4F4!0l7+ zi55_8;~@Z#;!d@Z3g+=Y%35c1eB#$S3Mh*rWHi{Wk-H-nP6iK@rrNsFtLe#DK0$)o zf^g9NbgZFXC3$9mJ5e045b4)=5As*%UUb)NRQC;r_NdLcSj%>Y_$ytgeA0-!4cGNz z7PP@o^Q>JIE3gik18`Rr(DW%+=aL3ZYMEVwj8)uwRljUkOu`yHxwJOAyIF-55~&2Hv9 zeR%4h28Qs+-ZSJzC^l$Lg4ArCfQJj4_Wpbx8@9Ez{qk1gIH=MR%`RSW7jvG8qdFgd zY2fwlq&;lF*ExRQtp|kC3k#B*L8Tbwd0It@DY-Ej9#hs7=KzcgZMW*gz42ZIWh~0( zGK3ADo#W|LWB{-2)>w*6t&=>(d`)0KU9gLaxW*`>C4 zLidEsAf#%6N2I>;+ZR0fL2WS5gE5+uNYGCBmZ1m)rVE)Tyiy0U~Iu|}D)sOU(Qdh-&sYWh?;z_Emq$b}Z=m_RV{1VG;V0I z*3>meJnpZ2Aug~0hodSB4^vdevI4jw=utRpCqEKz*Zj(#uD^@D7xm2b%Bz=AE^fT? ztIKg~iy~cibEd5rHtu|M*3kxz*NoLf)*E%FS*XS!$}56Hp~%~9 zHJJQFWb)n&Xjb@6GYy?*RpBz2#8*eYH*YR(05@H;Do(DrTnBDp2$uahpn6dWU7aMIkh~4LJkT*Zka9b^W4OZT$)YiYkPN2STrF=C7XwvZ~&w#<_Wq zDx;m-h>59py2&F@#b@_g&8_^>j=_yRSJs1WABTQbqgRbk!ku5t&}F;Mj#L;ro7?yKc>uO|Lk^dR6;iWTPm{d47q`&Fh$I=pX`OX=LdG|FV`^Ny+v_TB#lQwI5f{oKrW&2 zmS~Fa-^=cU^7hTM7XvTQNVk~|Lwxnxfe_l(D_Sy=*2sQ#8FX6D8vlk*f5Sbx`ECo|BIJCOTnjz-sd+(bcNC{jTm=KFaBaewXl&sNp-QO&7EI9&_TODvp?9F`JRV##6}T>nm%NRTxmIKLU@su z!nArHCl06fz8YuY9TWB(j>3_j9w!p?Ggm(_-dnr#La#O7wTjV{l|x*SE9s*b-<-+m zY<%%=mXOa#Tc6m4NO_-!9Jw(cHl2~*c28`=-YK^hPX}JbK0Vr{@5t(Cj5ns91^j+j z=XVL8cHh7L7FaL{kNB!ii3ezz|K6V8idJ+sMSr7ru3h9LyiB29BytTyl@t}&`dc9U zhMH)B214`$OzrudU9BkHkd!vp-!p#$X;m4mlDIN$z0wO+fHL;0=Yt*=C3^6E)5++X zYEI#pj6X8ox4WaPGtMan7yNc~_x|x6hDC^+%N{UX;&^-(6D(>BuC;{-zU}LLCbyt8 z;wYEH72Z580<51!-t~G%k@0O89rWpTQFU@lZ$;5 z<`H4+HbRKn%qgU)9l$bD5i$`F6HO&W?sa~Erz+UHUNrRnkdh#^-cTm1CWt$u zXXVN7=YW((BA4Fpx=vkDxTs(6pDjh@%^JFgKtXPhqfBbs44nhmDm>VTjSq|Z4@F9C z^w<~LV@>-lY-pMFJP8TeICsITaex|de1ZEA(Juw~9&kjU-6yDpO45P%4ZOEv65{i3 zI7mu>|4;E<1YyGPwZOATLaLI6M008F5}ZzWL5?n82ja~%=Y(F?q9i(O@YVaW6Osk( zVFB9~F4`d>jK}rUNKGlCG@nkC4P5pX?wYiTIhw&LPNm=zT+b{=zHr@pV2zDOcHy2n zEnIsIVmKiI6~k_l$*vDM;Bs&^-!~3F?2I;RxcqaVCd4xa2p@}!YKB1Y=Q{}8R$#y-6` zaKBM7+GF-N<6Cw@e*k+~$KZ=7Q<(k-lXIpyMpzDUv`_{H6d`;1U4!~tKz3Oizppz4 z7j_2C4GlN0&WlOhtrrYzAO+opITwzR^Ah<@>`=J~%8;|&(j1M_I?fLc8+)kU`fqj| zOI(2tNA!2sxA*|Tsnat@6HIX=K9tw?dWgvP`qYLyc@fX_`l~TB6hPV06fyiA>?x$o ztBxvkO<9VTdvcLR1><$srJWtI&57mdKjh{H|HO&i+uqbad2Nhun6Akc=kf=408p)N zte{!rw?rbuPv*e&ES3Ir``FfILb_N#8~YW)`oG%@YILpfi?jxwA(jgJ-v(UkES&!( z#i3dee&@w2bXNG$#Kad^co~p0aBieT!5ru9`6y8GNIRX2dI+)NJ;R4E^;5)a)Pup= z2A{)Xkjr^x14g~flODPZy~leA$_}Ip-v%>uQPsfgA1E}IyJt9`TO( zdB+6Y?27k8G$bW6$17u)76FGpnPNBJ)(xlsOwn)p_W)w)iOvO)`S=?+ zY_yvLi^P=1AI;x@^lz|C&&TxBoSoP2Nz$CS`vxu8Q!PG?D5e7$))@S{mOp?$W8Pph zKfPHjie{Hxn{e)PBo~T(;|)NB*&WymzWx%iP=5M5fMe&;a=}9()K_*a_aS_Vp6%U+ zC&@$n>BQ2jF3}7`zGxlp;w3CFi9Z9;-k31bTSg^Kp@}XoSbrV0=@g@WPbo{@_5aoa>oZm*n!W1AWA$7`Vmac zbpxmeluZUBdTEwz=*F}$IYWn7cVBl=M2q!bt1hbUa4wIF!MJ41)A;JKn=Tj778y2p zkvkqpWh+)0?K!alZ6QtFdFF(MK{nOtO%&5;eCdhZnl`T8owrWpmf#!`Rk7*9C*Yhk zC9Beh$Zaw=vN^;mc?v?T?(Z)+)9@Gup4X#TNH$k?==7}!UQrXZM}gMBW_O#QpzkCl zI+epW36en?%PveLZqW0I@_i=mnBas(r(wqvunQ1J{UuP^(@E*39u(&AuWBn-e&cZd zGLU`uMoer<1kJ8P@P&ag5Oc`9I=o72-QFUHys#D_ceW&S=P>HAyg|`H5qU3@CP#4% zoEGO(e8wkbC{{3nnJgJ-)6qLk`4{&v3s*P@x8ktCpYgj{*FdWtj6)uElF`7xTm_}r zeFY_N$aBTY*uZ|(r8Jm??7XgtE7!eHG1B&R$Wg|Bq$j}Ts`VH6epI{5xv>W50s87@ z*3LH=CrwYzsY60AtXf44ve9;+v&$_l-W*4X^5bjQ-Y;lA{n2Bh9B>XxwmRJQrMB>yH#cgauEu{LXTZt!J05SJh>=M$Vs~4{Z>b2I8)EAHMbJ1WwYE+y5$S7 zm&|uPNBtjpzl8a(56=|<>AEa4TqrO(8OZJ^rY_)BJmfo`a@@lf3M`n=sF3<;hkvcz zs7s1+7E3D`xLE0ukL^W_$@Ro zx{|;}vn0AG7!ySfy>DKv2mg@PHJV(~R$+?YW}(2>mj)mhB!OD{ev_6wY8j1}Azjmh zS02vr0Lo`NzWK1CEf;xh#t&kaDP`Pd#=w{iyY_a8a0&5a3kkQ+tEIvCOKQ*)c7a_;Q4d> z+{u|GCBc4Y|4a*}!n5m0K`j>ScV^>$Vimf$N?>V8rz=B;j9(Dn5yx0S4 zisrR{#oj9JE?Y^q?$NtVlk12-*XpZB4)v>qa6G;a+wYGz1thoU4xE0 zMj5ymy(g6Vb8BH6w1iw(%DT@X83v?_y^nois36@ammAwOf|p9%Y@dXv7qQA{o@<)V zBv)@=c^zPp>36*rz!A1(Q1RHW-76#`nDz3duiVaJP%+sTC=FxpkCiwWf@3#3{yvsPPRjr{f_)U`-A3#I@YQlZX4|fdWtJ@48jm&%jF@DcCI7aYb6fbI?D^@nxgETK^Iao7!yBFzAAdAh^6R|KPC=mPDKm- z*W`o2Ul$kA3d-K$o|l@`dG1ehqe`fLQl3Jh7b9F}?PS8nmSU5~?Kp-8&`T!tHxfO- zUFnZ8O{M#rEISRa9J`a{%h)E|_E7__%JmjV+Y!TYOjDCgoJmKj4IqV|c_?z2!pC5A zaN_T?<^k&O-joR$GF}oEaPWR8OzUFYL0ZIE4TraL!RHWrdLXN?4HOYw4 z;w~5ogpp>3tOsI&YEjL1A$oCnS3RNPTV9lwj$Qd6Gw|IpKJJc-0pI>z@13*>EoOA1 z1u|zrHwfv7w6a1Je6q#L_KK`^XEenEAIBOkX5$2hvYFM5FbmkDAN@=W7;W6QLTg9L zk^RL9xU%MUhRk{h-l`r_fS(4Z--PG|DZ5M7v~69G9LL4KGo@vcO|~D|qEm8{t*(6s z#|%*qD~)+tSV|)hp&ktIbDhN>(Qj8O%0dpCQjdiY1?+ZUNn7nZ644Mb%Y<91QE2=P zEkG^nq9CT4Elrwbq*q|ts>e)(py|-a6IC@2+f7T7F z(K2bd`#1xLa<8vVz4jB=Mv$z(GL0hDBCR^xmajwX6YxQlp824yslyC*Rhje`@cSH( zln-gqUj~*S5R;)C7}iR{76(Xdztu)3&GtOHq>A@z2^c3123dtM8P_cA$7F_!aMTMP zHPb{vhCkor`2VBn)$07&VdO+kuBm#3!tVj5g^q~)o7kT0o`laX`GYNZ+Bd`Ml%bjc z+f`}%ayV9Fd%Bg(uoqVb*UH%={!s>>pu57Ns*M4v_vskPJ%WJLsXW;SSw{}e)t#KE zS7#pZ`^?|we3WhamU-ckZsYrXBPEWl!a4Q+viLvijVBQmea#$`=4_??DR*hD7oo?2 zvE`#Lnf+to5#Ahh+rpXh%4kFOni!mFG=(#Va;1oYwd#&%I8vrBuuXQimW~B)b(7CI zKPir34I}j)4vp=XGJ2>jeT^jBxGPCC3~}L*-|s>H8gkqT4wq3VWevU7ZPl&tVMROF zQ@KZI1^F-cB$cMW=Ig*ly@^NO`Ht5zLkdhU^gCkg)UhFAPAQS6!LmQw6Zo_JmHIYd^ zh!*G8gwRb7h$YigsCYDN0P)7USu-n1KQuRJ8Mp^$W67MTmpK&R&K{m?RZcRU>!k&1 z{DbT8EuvnC?F#53vD!?o254E;%B_&Qf+cRtI!|Wa=s8q)a!{Km_TVX4=HGYdX;#`E z^0+7D`jDr&ucLs!-lA}Hv+aWnjlNYrtNTN0nA0~qoQkx5{yJYu;jt|p?vl`nTj!Pi z(UP&d3?&sWBYs16jp9+uy$a=5R^DX1S2SdSh?>m(AuZT^TtJxF+_*Vtt?( zDGlMKCaes+_B(XP>Q5tHmBQx{gijPYKnlevUyCHvG z$+#mg6>PX~bXhs1tl*ooL*KCpMg22Nn0Z@3Tn@9725+Z#@K8t^y-d}UbK?5B&MG5< z;1DBZ;Zx{Pa1`EO0fXxuU|wIz^A9P(>$Az>hR{f`Ze{mHj!HJT-?|(zdqj{5!kOk< zhb3Utsl_+Z5hxxA&UNy3m6w`$?hrb*+~7|isAwxw%n-5fc$Iwta8Pw!j3lj&s5DNd zn4yp9;KJ2HPHsiemoYjUA497FbHRrRj+}@N@Xvz%xB~&EhD^WuPCF8}gf!XgGQhRk z#-u2SFQKp_+q{=@M;nW%Qm>Iyzi(?GJr5?-BYG(Ku}rzKLZrNZIBR+` z29yTZ=FSKs;6`CH%oE)7fG+lkV10o$h9CUjbAPfNQq}xX9ZG^~VQLgYp4Sj}sf#UC zM{WiTPEO(-2Q7MFRc0Uc-rY^jU7nV)kZ6pT&bG$!2amUEhGz(DHgML_oqx8h@62x+7@0{I0%*E19U#>o4qXKMTXy@0zGkb<(3OZoYUg zWM+eCT(Z#~T8$PeesLhiX^%y2w@Nkh4JET;v9jg~)F?K=q=E8keXBtbZ^7PYhW>O70XRJNbpz$FiCQMV}T!d;ptkL zcuMXRzOJFW1NF>kVol@WHk_Q4?VmR}I11*9bb_^=RSUkf3Pl8iSA!1tBhtf5RxVj?>)A->C%(xY}-nf+a^m`sdkvjPVf(w+sb$#VFxDQGz=-^ zR*2Fyh}|qwF-YAlo5n;dB`AVhl4m7CsTqihcn>n=btpH`Eo4U-;!MD z_r#FK@d3cz>S}Pfr^+A5rPBeb_XokHnv|jqGvscCP4XD-2M}5G)hew>6v3SH`^qB- zQjyyi1pn|klk3C&ZVvji>-%bB2$#P60k<@cJNofy5*;{^3zAt~->$w@v%UUi+?k`f1#^`J1}AYKLZr3vEng=+B41CNIlTYlzPj!ZiM4 z7bTrzP0Vg&rSRAi_sZ@IeFsKtLbz7tE37@;zfI z)E9oIPo5AUEMczs_ByVZ2P*x*?%Ok33cAFah}6v%P8(;>J9EDZheN~p+zW6!=mG=H zlOy5x-1$$>_fPe{LEbxoPb&cvH&FQ1=ggL%Vp74+==jWnMF1lJi)#6)eW3pXTk$S; z091^>h>g~mLQ;;F`5Al2I2`--1(~=LEH>QYKAFGWMLhV?8_1V|z1pkaE8adnk9t-a z5kG_od+2f$_0HrDLH4Z_VtBZ0nZQ4EiUoi+e_;m*4>h*AqSfAZ z^i6rx)SdZN2oXsXiHxsV%UIvBce|UZi08tvV9?Vn{`hQHo< zv^+@cdYCWSu21b+fBUGs!_oNAp!(1LMq1Z-;k&V5V=i;mSJBrSkgTUQFo#oVorXWU z{Hl3#r4=5*Q30VDuvp`o@ntF7ncAbG%_7<0uwE#2a)*|r(eSjr=yld(jOX}aaQIS~Sf;UoR8 zYIVJ*_NRlfCKOIs?6Ui#P-o0@m7ncecGn{f1KwGlnV5@{y`bB%IvG$WLQo~t6ws+9 ze|})j9XGuet3Jr~uc!2JaqGtf^6-WhwG*{DT3`JkfSCc5~b{cdsmZeU>;xc^Dc~M-jpZfuDdtBqu?L2@*;f*JsgoaK&I#sye}X-pVDZn1-7klZ&x zA1N$k?ZRMK(4>4UO_&@0~8yqtmNas9f(ISqc_nJMC}1gT2D zy3Ho>m=@MG*HE@ScB1E!(D^Regal6B%TH;`3jPQAa!3ya9;ujJF`WWFRGrb_XaWpl zUaxO+&H4kDR5wz0e{RCbJP(#O|F{g+U)MvDA5+AsqAgTksEAB1V{lCl6Gi zKGJDE>X+STt1P#*4_OlTX@BC(x3@b152Y%{x#DK!lj4s&sER=hHm?Q;a!0uw( zL#PMp=^P%V2E!*zm%dB=aa9K>pQ@z;jvbUd&yZb*MQ!Wp4U34qOd040+C)(4p?=;g zIrHv#9IL-f57U_i-*nlbw}Z$wgMZ>W#z|&Y-X7k+qc~4A4kDTL;;*#kkf{9h%LLr< z{l(hpU{NY&CXBZ_hN*3tZGkf z#MKJ53@uDBk~yXM6kFbb{q|R+dCtK?@&&=-Hl$YJrzG&oGCgr+_w)nprYbW_9=qYJ z;(?h-EvRc4r_MKoIq#_8^&^pp+v3~fxgp0bOy?K|iQQfw+wd3!L|bb4+@ ztH!{=V_InHoy5HK!=V~KdjHLEj}@(p)Vz9E$?(^8mgA+pyOSV|Gac+S6~9tAKD7^` z#tCL%_dEp|r5^sh%)6;q3_>7Rqrkuuq(q+U=5E0wt;{rkUG0@+w6H~&6o!4s0*Frh z?so|;%<6!fHsKMWh%92~0{t#H^k1m#e7z-+wPJ?kAazuZt$|{*@4`^Fp@!BA<~wfRw2mq<;)$QF8Scsnrx<8!zsWIPO<&J*L>3@s;zZO z)QDDDPCnyYLjFtfo~w$Ph-|Eduf?NhBA`qqm5p&9B_<*S793QaGEbF)Vwq8}Jkdl>G2Y z+C>AlhBpwFwS2X(iGz7=r9y1I0kHcUq2$#PaQ=sO@7fBZhT9~(pDG`|FeS=SLQgy~ zUq+}Nke8@y`BC}~KX{QlFrG$C#yju`AMPf@Us z{Cde#r5LRLqp3Q>!dmvSS`U=`OD*Ph+z-AtHeZm*E@yLjkFNT(7J7w1zY8!V=g7AyUl3Z62(@(8HOQLl-p!z9&HzroQ2F*0c>l z3UD)?)Fl6deIhwW61^>yyoYb151Wz0oQ-9mhzV9|>b<1vufk`wPVj`7xj=3oULp(c zpOPQAD)SY=Eyh}R1oa^q3vN|x9pE9D%zxJzL_UcxbSB)Ak0A-ua4-49l!n;NXp-4s zCk7j=o>fKBxdk?C^Mu|teJup`=F-=ue8D=KHJ97H>%u~%ADj#ev3Jk+tKeF*!yHWP zkBBB`A+GY>y|#oqB+2Je1R47N^(d@i7@PA%sq;^*GvaD~RAtgGAU3+G{^bQ-j(892h-y{(Dg>YO9AzzZ750bRo?|D}*kZ-R|~H@(|^ zr85sM#zAfOEypS~XjPx@^usOnefRKvcNCt*t*Z%Pcai#L`)3+tC|lTe*EPBj;{(U+ zm-p5-gH|}6zy2fMDnJd-l>is%t026PzQm8mY0gnPNWIDffzpjn<5 zqP0(0Mv0qcqYBz?1*eH-R%fg1Fn4O>NXmVIt4Sjre z9@CFZ<@xV6rN-~R(-rE zh&$WG84nVYsh3{1wiXLXQN77HobL-H$O(~=%2Q6{4A$?pP~?BfMMdEZp<4FK}( zI$@Na5(?N#QsgV#0^s_lngFKE^{=-)jMD3N&w4Bga!=6RQ%J^mT+}_ryFWR1uXdHi zD$%I~LMUR>+Kau2&DW*pd?9ySQu!!owE%&#-t-{Dxe6Se-{$jZL3gWah6q7Wb5 zT*${mb&07k&gdJ)_y^QZdaw#D_Hg{QcY9Jj>O@?^&+&_ibxWyuC35%F0)!nc;V{AN zwn&pHV((9>9O#jAJ{gv7wCL-I+&biuGPL4>5z4i8BB_XI95mu5vf6sOA|rJIv{1Mq zl$h5}sb|OaU&Dqhy|ztni@dH_;T;bO;cPM@=joPC0})kWZ?++ZN+s00(j4gr4k}{r zh{Sf023usc#ed(KZiB+Uv?a%yngZyteos4sI}pZ5Pi#if2A!K378vvz#v(E*3~x<| z)8z0357EuI#{fwL^Jl3ks{a22u0T=0L!-ZeF_IkdrQWR)sD6n!86^T&ynGQ4I?X#$ zbQ*C8-l(>yK7l04q`vw+wnl=-wR~nWs}SdM)X?T_@rZ>?murqQ2=Vjoz9k*cha}lK z+SC-5kSO!=6AjXxSa%QY!yYM1By>ArAio@tDt+gBXS2gVn&v!Z`qBvrc&Z1SGCoRJ z!jE-RX(}StcMd`4W6}^WNBfCW%ua~Zq!_FGZiKk(R5~{|J7UYql)k}}Hi*VHKfGPS zo-iGC$A>>L3vquGJz99Zp3v2#-hel>M3g%`js|mRBHVtbmz&aBf!ee1%-tPX*zowb zZAWGDu?+oYwX-5Pprn^n$IfOTCcm#kQxuMfT>K=#0QnIntIy?%KBgmdOx!Q75NgM| z^g~Wq9yLQGDqHMbUkU?d(7rtu{EOJ=(UX>g)QP}2FtD**y%ifb9Gt4IGsi|ZU%OI! zz8lz2pHRE5PK_vH2&^&9{Xla4W}M5uZP;?m%=ROe%Y-I_{$zHtTtw2AbM@7kOTb9W zRS;r#1yO90{@k&8{n^g4Df(V&BsSW&;5+X+3mnQv-tW00LKvl*Ipa-N3^eWSv?O*$ zz&P_ob4BEtk^!~Vn5LJxqoY+`$OO9Zgp7}fPTxEr{1O8FQk9)WNN^&5^8oj~qB zRxst3kCodkS7Wb7fn?F@n@rYApnLuz^d$8Lpmer5uDZtzNE?l|vyn;y%_e1h`}h_@ zheOx^=hH0UIC}OB*gnLD?bFI9&nE+iUv4$i=omJYzVDos{_6Fd`01XRdm%s`%6%+g zu?nb@cRyIIsL__Xr< z9G)u!r;g-pHsNLv=-hTmBvTlur+0mM^~w=wm%4)v+-t=;Z%Vv4vwEG#G01DDpn3pA zG&XNgFfjo^{a{&@k!}#Tog8ovp9BuOI=UBl`u0`6PFw=cS2yl&t8xbEYfZw=8=^r-;pIV+ zP9>0zA84;D;RKeeEfL(aA;6jL#c1fE=KI+hF1LE7&O z8Eaw*Na)CBJhEd0!G}p10iXPV>)4%dVJ|&EN=@nmd+q8xBvdRtL)98YV+YSN$2|fO z<+OzpJ6%BDcz4J*jSS#+;9|&}!GqudIemXeM-Uxw%1?CJ18f!p{X&+3faB}n_KkN1 zmYJ6^VlB(ST`uoG#$*ekrbF44(S56*_h17R*$4=Yw?bWy0EjB9w8V!!1lG6DPPjhW zg-tv{U#2Djc&6hH+7x&JPRVZ%6~`d36fwt_9Pt6F%|bC&%L%~asP{;gsSEg4VvX^2 z7l6&$D&?zb1qdgFXPh0hRaRZ;?AM{ z&JOQ^=iYaosAM&u<|-9PY32u}{xE2YF2j~Mm5XX!b^-PH3{OJN2ry6HIK;T91MFtB z@*_7$foCF(+vw~Y5OY`BHePTUd+1Z-#L%^RJ#05FbwRBYSV&n7bE5-+!>ydmK)wS= zRa@@)8F&(gsXQ!?ykkK0=S0={9!O&OAuU(FlCofBr=?3Gws`{Qw|eATV=kkrx?=gzVKeskux_hLxZAb{yzf0cf#UhlY@fdl89Mb!nh5Ip>@ya)ttm9QH&}5fL+@Aflq6qM!&Uih_~^ zl^`N0B4$7^qJV<6Kr%>9l5>)rGZ#v}zUS?>PoMMl+uh%|!}aGGbFDd_Id|=`NbE>5UueZo|>%fh^;NfiGw>G32vO$^NPEOq$I}b?Z6 zIh__Dp&;AlvR3bv>nz+|zTRYniyCw;AkHB9S&m_O#c-q)esz~?k|B~}9XD%r-;Kod z-cp{qeiup6n9 zAvK<3H5b2}Lkgz&@g@DkNV?zTgV_~HBoTjgx==Y8>2TVl{MdOE$#0U{GdR8hDbl+o zhUc6?1ev!g*pqOi_A|QR?J@oBIE7D)N{)jn!E2j<-q&!vinwt?%(FZw8-IePa zRtE|j`h!SyNvn2)&OB1PP02a!QiI5;(|pyBupv6eJ2zxfoDsn+_(6E}cO?CEtM@)i zR-|^}ZSvulPmoID;FmhlE~I&pif(Z;0dX8OzA2tlg_QE~8;%_JMat?6(o-}_NUjdk z_sAJQIQ?DBdCqSTK6Y<ar#+3WFA3_?@{xm~d`H}hLwLzU42514f~v3eG-n1`qch>;{A^e>#_{{MfZR7D~Mzy@wJA$ zTzwLcRgHhb{c*fJ=HE0bzl`rzBq=hm&M5Lf^ZQpdtURgSb``%msCcbn>*Mm)U-{J( z_>sn2%5}Z|JNd$-^GG}m?BOK*E>Ug!SK{geNHdpM-B9f>$Gfes!77%^Z}}^Hf45;> zTVlQb6+EqKWPgPRE89$xQvYrKY0+xjDmK^#{#hQZ$n*hP#jc_QxL=L8InI)>nXZWB z*FKU9tJssWHbeV2>sng5hFQf4_5>1+>S>U8Cn5!6SFt5#8wp3R{9OJ2=83hLu(kLC z)uEqt7+e2wyRe~y+$6rb?PveE9axt>NpXZ-bqTQjC+ht-p6v9?xL@^W?Xvny@n!TM zY)N%q|68m2|J{alX#ae*r8tOzWY;RLDMJ1xPsT!N?7y(Ce|5vke=aJG6+~~0{WCw} zbQKA6<)>R$v7+oI$xh&oL4Ow4qPf%Suhfz8L>E@^rhgmBE?T)+T*dStZrfk^R|!>+ z{9_i#{w)80h&v?GYypR2(ow=|Tw~8;+w#EK3;xE?sSPlELc&ugLniBBe^_QKeUG2wu zIUbVg=tw0gZ?L9ll5z(tHz%#)jhbwi zo&Tzabwu6AtzzHRHRa=9jO!_v_WB>G=-=gOxh#kKReyUOJFMdPX!Eb?z`8O?3OlUn zY6|?ZfAGBHANjDk=3TLWr=G5O(_hu|uWncsBk2{0|IlBj{~>l2J6j`H>%e-)m44;- zAL4rBxMKfkm%RJnwTgG%EaQIV|9WGN?cb@l##ahfv0a^cH4gjAH&eGSo1{4GIW!?p3>67)4}{fWON z=xewZ|678-hHLS^CFpCo7XMpW#?vWV!uk-UKeX(&BHk#Dl-69i5x$H zU~A$OmTc{NTmZ;ShIux;--vbKo-B_yl6Tgc)Er}x?uV^Bt28rEcL8_7b=aA4n zj~GERL4^CrbLQNhlf=@SX}*Hk2%?}m-h``)BQBsHjQfPwBTfcPXmDhuzHZzjzgKS& zH{-Yo+j;=<=UsLS@AZND6ho~65inqnTfLIH1>c(S*^E+4Docl(j@er zB@XBKI15u$5Nk4emwPEqfX^CE*+kVv$6{%M;9 zqIJ;d6%Mb!nzyWb;_VO%^oJOap4prQl#~f}+B`pigCT2kljKPdI7U5(GujLiitiTO zzA0jJ5%+SY&#HlhvW-BQfq4xi0_%L#7!RqVJXbRa}y`wE6HoOO1 z@!+F@Cr^QseQ8&h)pOvFF3pYJzyX|`gEQXQX24d;r@i@|JV^FfMp@Z1gVcqRjWQeo zpu$BnofL5vq{0r?jxuC{xMs7|c6J|-CU;9=rCAS}G(r#f7T1AebJVfRrNx@lath@b2ExGU|*##hKNWkNq@Ah-opDoiGM@ ztxSjW*DL`ilb!eAYyqfWKDw~;x*6aZ`o=0`Yd|^DCe*3r9H`O6JmfuW45~D<33Yt( zpxEOTEBd$wWW%lo-86Cq=}@~0>dDujJR{V#QFG-!IM2IaG(;QJlXNZbe&h$j3-=70 zbaqgoz{hUoj0O#>CJC}7Z_vKycwAaO0U6o7N0jh4o+c{VRfS|iK!9d0nRLA6- z#s#ug;%T{1Q63N$uRvi46KKn|zIY%}3EB!ryk#>F0luCrqm_XLRL6x%oma={vgNNo zz6e_H86K$RUIPv5m=OhyN1!XIYvYHH3~Cp3!tm$ zqW@ku1hm^ljGFVF0959jFwf`(?IOxDf3@|XOBrmOt`i9c<}R6g&R+s8vnvrZfrg-t zr?5QK$OFnIw!&KlMnLb2YEqZ|Ss*-+>~YNC0i8$h-Waf+y=eNo~o)kk3r`%je^JcaWFK^ z(N)|-3;MR4uj>YmgRZ9d>s(GnHZ9F9aGvyRAi=8Z>arW78c^7_VKb$qGxx561uRp2X z+(!pGWBatILTJFSqyFBh!`+};m`$dalnXi@?GM#$CqOM$qRj zx7opR5VW@SVx0l?Y%l>E^Sm=Q6 zLm8`>Q{14P@Y(Le*(abqL-dwA)C-s>-qz>fJm~CI9?Va_4Vp`gn?mXQR`&nUm-8kc zz>p!a^z`t4(5bkoZ8by-no3^@C#s%5r$wra#ahwAP4zW8&D4&3q70)4a z<$BP%s-r#XUIc_Yr5CHTazWkfb!3IT1*mg+R;JaEf$lYFgDA@~&`CML_{si0XkttS zVV{{nqh0t^I3@!cG|Mbmx0^t<^_6{S@&iz}(pWsy(gG^sbVOuK1)Bbim2ICc0sqci zujibOppaa*zb=ab@S83y^j6!0!a*lpE)@ze@HV{tikS{n?QeFy;tBzR|BeaHU0*fbZIS&)TAW z<#+v7JTxp76t2V^xU^sf8ZF_;<{65hG7%Fmz2!EjerVh8(pm>9M>%3{yYB>+*&{XzR%2i0~B1c5xJX3&a4| zUHat3fde4tD-`y#N54#c+RX6Oy1 z5PMs{%kJdt1?gP#*IMqgAS`Y0c%xFrN}hzkVrol}lVIOH^nMw!YV43Z6xs>0gBJU2 zx{^U66GRz^~_f$**o%Y1BTSmQ3{tSrBCi76al{3&Z zqOFb!c0kFzyWR4lF;X%rvmd`QPF(ab+LqyuLt;`MrqZ+kd`V*|+^;&3X#14V)MGD1 zcIe}yaiJu{|ICq&MkWk#Q6fcVSFh^e9>Jm%SPB(oTM z;lc(#q&}>)@75_xgfsG7H%l*q@HgXN`AY~geDuZS#0(8m&T#Wq6i!4c^u=YWbS6mU z+O{$V%biF()%RPXeJjH6+m{@}bs1?Y**}a>-GSscvTwcl9^UioL9+4J zyjggjAY}%b+|NM?Na5%PWBRY%NUm?!P;g5hQe#hVxgEWL2=Dpj_n#|4n*6)88lT1> z^)@QTO<68TQ_hH@x8^ufqS<-0r}qpJ)u*ZbdNUgFj?2X5ZI4CDdK{OgMQafL<=Nr` zytPPE>M+}@7;PkZcf`srm=)p0(k|TE$&7UQx9F}M?vUV3w3D<2gKnaMLY$ z`1c8j5U{8E+l%)|sUT39ZUYVp>nd>6C#EC5ucbcst+kO_M3}y%Nk77=d3(PWc0__* z5yOYJZbq`2r}CEHStDGromylF3&Nf7#Qdqkk%T+Xw-+a65ckr>2OH_c5w7>%lhB7& zNXDav%{NB?34akA8sr>7;@{cr5_^h~6i1LzQMDtYlTJ{(eX|V-mQt8>bFxMzPgJEhXpwhug0r=olG+bcf7XomUJ%S9Uk0qT&n`{o9t(laZN?iK1E*ZJ@AOu zx<@jt;0WRzFwpp5=!A`K7K@`b<3s#H$CBGy4`#y;;0**dw8o8%WV+I^F8K;7*si&m4fJq?G;?@HOCMVjx8Ji z;(|vw^GfZ27INZHfAWN2{v|{)(M(k>5{B4+)WxZl@d1Uv7n?m6WLT!imXdSEfN1uu z>mUALfVgdM8xaa`A`h=oFiI?c2G5nRjnHJ~I%Td*OWenomA)S*>u|_Cy3W%NNnvYjwV%`;Y;7TqPG$@xY%<5@vz#7Y5vwE4N9`L7GRnmUrnj56cr{`p^R-l;%*PPf zc(-PHM>m%Hq3&>|_Zvj3BF&W`D~SzCePj|1#siJTH%B&mE8q&a_?Y=tGjV)>XxNv| zFrX@pQ3;uq2HI014(4*3uyGGJEOI=AI0?@Wl(|g;_oCU69?p7VNg4y@Avls zGn0t-r@OwuQ!@CYc{3S^ElIN~=Q0qxMc+AHk{Z zS>1QH^M-~%XkDPpwi~B_P0dllLNo&e#qp;ev*>{M#}snI`E|faXwwB`D z*8y&5UX3Cq8N{FNnK>8z9eBT;Na#N00zyB^J{|bj3~WR>amtnJBB5v3Oq-M0KqPKc zmSXN4h*=FUYMD=gPzYH+iVb)*#{hKpKHtgrn=7Y_q}Tjpl!#%sVIvwex|xg0PyZG5!h z#&(d5mdU>V839f&?EP)R6_8*mY+u-Y0C)rVO%h(#fn>k}7htv^C~%*NO!*V=e%~Ra zf-eTij^a&8{VVtHIj3>etdBv!qlT)oQ3S+qr&8-(paI5gKY8u@;vn#q)+0et8H6&s zZN1Z}fcaSqW&gYyNZz{fDB;w1;0YE=d+Ra=?Ay$G3hit_o>iB$Q8+}7`L0ESFS@ZDwud@oacT(&ZRL{E>Fq-is zdF41{I6Y@Z=}cVg+M87zGy;@Lz0yP(2E^TK-Jtq;67lAb1PqMpBL>2r6WA^ZiE>wBr%aQtVbvy&P=+g^j_T$)TgRuKv5Qn)|Z>_Pb^1#g4fwN)XWj{ zv3L2$HOsL64J@GsdUaUN`)B(jI%0{_5#7v=_j$0dIXBFcFX9kS*qo3$**!#;FOLqS z7$QE=`#Uce*&=o)i>5jIa>P5BcVV5IK4MD0KJ@0M4I-~$R4Z)TiI}S&C;HZLBR1i- zV5;X$h+n4l&iS~bNa(ae7uk9mB<#Q$=V(!b7>)JoI{gBWAgg_qMs*yb6)!oNS?P=z zM3_I_X7|Ddlz1;vP}m}Y&pQ}*?zP3&=m^tq#ON{YRfO z7J8AON#t{72_?jNEA>ZWzbKOI;IGXt<40`A$hkKr;*b=B#`5B3M{TMpp`XTJH2T~fBaoV`a1S!_gMP-%Y;;gw}lQP>-#H0B;Seqa#ch@*+;7b%cHlj}tZUIrxfgtn#Vn-~(y zvY39muL2Q_USIZC=RuNlGio2=`1Ga$d4#Xt-&`~D0~sjm4n9=z zMDnq_SX;6$BAw`EWir)?mFr3G1%3QIq;VnCr3TF)l@NTg^MggCc^hxak3B*P20FQ- zPc@Nvi0{o;xvWT;Ps@PpHaU{tzI#yca2nF;=1rei$U>^U=))fIRD|mZ>fNhnjnoFM zRX2+P!js=SQ+DbRlJHm7>UcPZRAU9TWSx7-{$0b`Y)LbmSnEQc7s+OP(Mm#M+v*c? ztZ}{c>XUV>n1eKvi?tm4DVcUX9v%Dd$^MCk5qBz)uyd~{iFYgz+5U0-dnRcn2Fts3 zo|OOLgZ;Q)@l0*=C)M5L*tJ?0Rvq_^WcMY$AlXFGzqKkRRXu;aGK9cgbT$lc1 zUJQL8&75PM!r#4q6<>Cgl7z*2DzJ)`Mj<5sQHgh?{_*SHB)gF(aCLjJEH_%TiW4rI zNOpdb)33JkpKaLSca47~-(Sv~o8e8uY9*G~zvAEZ#@A~V+ixL~{W-y6H4YnU-?iF- z`IX%!^^f+EBr!jV&?RsR3e__nt{rN?dWb#bJ4Ci9;-OG5m^WB=8+6 z-{9;v+f_`hJo!hzmE)}LpVjgIZw-rWRYQNpue$XctYX_i-q=+v7rP1nOuj;DE8HsP z`yKg9dD|{{{T09et%kLsKV4lIE2SlUFaJxP%I}$f>SkodCWNUN-4Wodjr<7!@${2C$%r2c}_ zKmRo$x%c4e_F=7;ebFkmv5{8o#yVo({i@!-+ORh6UvBUJRKuzlKH9EgYpo>uGr!j2 zHO1L~GG6AL2!FII?}@~cuK_k~6fIbr%E#3_Sa#MrQr?PpyZ?;$-}w6K18{#f zKAxVkI*xt!ASvjuuWsA^3h#f)*Eag|ciWSEjbzu)zx#RpQul04vGiZ?6zwIw znt~Pe47C24-y0=!l3(dKX|;B&ga61M`LS%p9^5K+J@;7U!Cu*r6olA-$(n+0&98d* zH{4&S>p!id&LQ&8>ikdRnpLvUDi(xXCDoOMlD$YH|3RX@sx13olc*Q}UM2mvM19Tv zEm2>?wejB)^)*}@|1D8p!?pO|67@A)i~lWAU&FQd-xBpTWLv{Ep5GGnHC)U8TcW;( zYx#dm)Yot=|6i4;Q@!Z5qShQj{LmR~zsU|!G#(jEPx^-V{Aa$NbT%f=2Dt58BGMtT zRCSf()DcKD@%Fo@6X}RuQNr)RLt$X2(cyDBatw)gkA>~!UP2r*{@z_qn#A#|AzJZB z264nZ;JSFOm^i!WH2#%#Ct_JVdOAx#5DC8(32YcICl29WYvs>H5WA&?%mm_0h@;P| zBa4o6B9<%CbdTnqV(q=x%*;4Vuu*k%`qS%PBzXJKokkNAVESD6fl06tYrA%OkFnGU zupe)FW6i;gjp)#9&YE6_4W4S*%wxfZ1dn+3%G`T_coPrdha zo*fldWu|PsbdC*V{OQx)Tr@*0Sf-(WR0%MhyiU_lWdY=g{cjItj1i~XE~OkZk|uUX z-DgmB;3AIFXR)cQt3i~J#a7gH}{AbWBw^1+uztfn%+lbcrvQLTH} zV%p#U^nGYH%5?~2qPoKk#Pxxr_Wl0I*F4ySRN1~Vvqa!Ipdd$?y9Jvt7msZ$JApN3 zzuaCB4j}Ym@6bR33pP`z>65#li#WFMh+iG*0lA*w{rWckz$eM4^`Lzt@F%Ni>D~?i zy8NE!w<6L(_S{Z=rHj3YYByBQF*ceAb4 zQ#0Un4a*g<*+*=Uxij{t7!MrZw`hDg<_0R;iw?6~x(Bk?o5!YaoB%1k>^;{{%7WB^ zkm(MU1Q1`I?2vBG193X`rw`TafhRkgDtMX>@$QM{le_c|XwhR&xrtZ zvR#z19CJW3?KtUts02jbQ4kCtMgeDhR0==!6A+6(T;s)O4T@Y8w|^uKfkJ@AP`V!# z&`(I;>K(2E?Q&Q9Z*1|1=R&Wi&53l7u$$^h<*Nh52Q^Z?j1j~iE+$@)xn3Y66-unm z%>gCe-X9IxIUuK58ZdG{7u2UD!&rBAf?Un{GqtwbKwe#7B5`B@WGP-h*tz}?5b`6A zmi8}$d=mpruZcJv%`WHvJF5jrc}G9O9bR_@wpG@9s{N27OUn0F5r(j z!gcl?afD`29`T|4 zWU(IAIWC|$6*>WE_lmJ?niVQSP6@u3Hcmtc~ z#h?}JGS(Ey0|uEiky@%m&`^8!e6z+zAiQx|Dridq!|8sqfcndz)0Ip46kP+|+B56A z+-*TSJl}tZ>=)1~ZDF~4h6nUQpDH;FUkCMv_JJj{i~vRj_$s%Tpquh8;^9#Q`Um#A zFx}b*Fy{Wl;)N9$yn7ezGkgjR7UHONveZFihFZ%?-x&07i%BG;tAT;k$qRFWqo93i z{m$d}e}F;QQAO9+d%?gf`v802Ixtk*w`dZ!6O7miG%rjKg9g^6QQ~pj9-DF^nHVZu{zKfk_@sFy9heL_tJIF9|HZU*aEV`^I+gM zX!?E23}C11-pQ8qgFc6oxP*f`=-!ET{XUrox|e_SKab`B{VSQpuc~%{KL1X0ozYp) zxn`W|YtIOV%|)9}m~?CZ5d1U zCLJ^msfIB~9085d>d?yxi=Z2NyYWcSEzs%JS{|y^1+Bfag4`cfKs)3WvZi_06jeK zi6dl@pk&JaA#KVH)XO+B?F_Di*0~prjlq$iDjxZCG@h`M??`RGXCTP3*&W$szy=D- z%98@TCjrm+;j1HsF(?%bT%-)t2aT_`&HAdmG^VW;?#IT1 z`bUvD@&zGK<8vZ=d$tiY+IPsYdD(%gfxtaE4kaM?J*7Bz!3lKi&Cb4ix$-;Sy1k;v z<|L>eXMD+6br|@DzqW7V-nsHQuGhEQx^ldbzL2TUKMVN9&~VMe$3SyW#%)H(1x3M1 zGRZJ&&^ox-_c`|j2$;%CT)Vt-J_-vRXu5h2@cYQMD#AX3oaFYC2ZJX-YOBbeiKluX zZT>he`NM1AIYT+F@a-6g9X)hKzx*Bu5W6K`dN+fH>KUG_6giN%KNcM29tSvIr54fS zcAznEalP1NEJ!`$_T3#o0NErTjUQPzL9^1?7F9{e-K_?RG}Yt@P|&x^^HNPisGXTLq-=XN-hj-vaW$vFpj6+ak$KBo#?v&L99y@2!fIbuD&AIUn?Nt-@8i_PgiAA8}Sh_%Ms#(w+EhHy_$ z+G}VVBOGD!xydOeL@l|g+Vu1Uu=if#=nkX5I5!d`w;$xWeFvQ)_+2z`c&3;pVl(Bw0&|AC>zP51$7^OQS`+4<=lXWsL zQ=McH=ep~sH|(><=8rwq6?!a*geuJ6?^JC@Qfbu+yN-(?u>$I6+pF3UJ#+l^ce`F9 zF`;a$V0{*(P_U(v?hG5^W#Y1$Idc^2*_-%*F_{ffUnSs9zRN|NG29*Y+`@?Z>A)Nr zpC*zH@Ku_n$s*3Y)H~Gw#NGq~zO4!p5Nwqio^~%*ChI(zK={aMhed778?N*6M=}g$bEn+`X zD$~CBnpPVT6uNY8^Swg^@uz%jw1pQNR2+bd!u?NQtg)O z{$MPLMAQ0d>z}70MS=Bf;)85RnZs=P?iU)Q8ZacP)i8ooe6~>A)*M4h({IxT`|=UX z_Dds~>lG3EO{J?&F)Q~8mrs`3&cq-Ms5atxwF!yqkwX6^|rd+MI;@_%fg+{f|QwyPf@2@AiQhV_Zye;k-F0C zWwrC=SRWcN_tb7h`0bk=FX=cUHTQnLoHkyh@`$78QTcA95=0jlb=?!G=CU0!p+1L{ z4ZhuTum6tJ3@LdwbJP;2Yz>}C&afe|_4=tcmi|cLWytzDaS0^$C2nl@w>?OOyP_^& zA_gf$Ee>#b-$ZnmRmVAnwN;zcj?`9em)b&N)P*t7mg#=@@b0k_F$v zSUSX65h;7YdLyFId9}2`K?reXJifyz%Y|?X2lsR3ZbV9lTVw~Gry=oAN5n8?3MAv| ztTgMHgd})rM!eH^BO$Z0#a+Q0k(gXe!cN*xNKP=Krme9W2}DRZjlVJ^PI$Kl339~} zt6e|7*1cqlq$Ty!D^JQ0mo!?1pD8aP#dBnLD{X3#Oofh{$6*0Pub5NLM`eNJjc)m; zG|?e;>GD0idAW#tl2!+QEflfa(0CiXV@G5WvE)s!!w|j1-G1*BHY83R>`3=Q5%FJh zH!ih|BDP0e5Bqktj=0<`-Lbqa6|rlu-f~ZQha?{s-%sqCMdTC8r7{QZAe@zNx`nnm z;8sVUx=i8&wpfiHS?I=ZP}0K+a}dcj^WwHf0pI;9;VPrJJm; zY2*wb_7Fv*_|6U?s!)Ct+O)TbYU_`e4WTr^aZV_J^RhHBp5Lk#=NE>kk}mJFI^jrc z-oo^yYGMS)1z#MTl9ea6V#Lr%Stg*!rnYj*WyAVTw=m3YcLuhw4|hsx!+>M#fuQ8v z6gK@h@;$enEw+47G;2_;4jZ8DCffJf5_`R8cP#{w5f|Kzl3uN+1NLy6uF2a>An;+w z*fS?%AaAu{;uCZOibnUH2fk8ZOKdHi5uPH%8s!f=<0ufYzcUE>9 zl<7eFTRb)+o;SZ8IRLwS{36}uTHv)MmL(mi1xj4Q4tw$wz={yk)%wo*LvLh(z4F5L3Xe~~$)|h9_dYvN{Lr|%L5dOBHiqq~*gXtFrIv?E zwd;XzG<-kb=}$mY+cLuc>=AIeH&DHG-VO4uUxyg{D1g^PHp%{eGbqNGANk@m0Q@Zs z{uAS0K`feHZFWx^aG$^0`Xu)iP_jf}#FhIduFXvK7lX?|H0)s5-Z@1O&HR)ap6ml0 zUk=|cy^;n3_vlP_2owVM_uKm_Jj8(GMX{yhwSEw_ODo-E*$vXi#9gl@8-k$jm%1&> zw?N9I)Kz?_8zhrQjqj=|0FLV9F}H#l;4bOBGk2jIgj&rVPA|rSSiWS#N3UKG>NZ`n z<4FdY?`8M3aqoboT!raov?Pes2=qsW=mKA+B%M#jGH^vaJGS?}I!Jjw>e<##0bMDCi1EKBP$!tWf~& zP}#8DV|Bp&?hIEs(?t+reI=12rw&}Q&2!7)AApUcx`iWP3rJx?ZDtZ2AboPgGH}yr z5R$d&SloC4n0}10Mmin_4q3F`kuL$b@HXeDP96q%ioLWkO#4CD^Pn&%FAqrXvZ4)h z;9KD>ei_1J2b^_d;R3=30Ovq>zkF05m^Wqnn`NY81K;W>FDm1JO{!s5|M3JcZZG%c zWz+;Z&Ep%^y94m32!8Az%*84fa`!g&$AWNs;aSN&&43Hi7(RBd1jMe%E$&gf227U< zD+dn)u|q|v<9!YRF<$7o(l+3OO(xS%#^}BSq1oj$@_qGyJ4l=NHnJaReDAXKQ^;aV zgSqSHmc_C8rw;Frn?wTBl;cCaq;tf9GR1fAEjh5MGZ%%Qx$|Lj)OFMYhP#2vCskKv z%oZCfvXiAUr6Z2}Zw^y#C)HQxpsYqSVR`Jmosp~5b=A`NlD8LGDOKINl7TvCoUf0Gq!u5 z1^n-7G2456#6f`^=N8st;yb@rOpK#s#LRu1=h9xhA-3;zKh(0X4)GZY-@8fu6v(3r z>R*4eB2MU?*uRh|iA`62t_&AtLY&X#pUr*JM2tMXWCvJE5baU1Br)H7;^-IZCsT?H zNX&&(NI=6G;W|y_u6~S1xSd*jg>SWy*qj6Lxa$<68kt^X6TghaE#}07Ht8UlT4n3v zhswl`TH)OTFH;c{&^_OJ>La3%@}**YjS$yK-0dBL;fQzg#j^vZn-N!`z!0wb6L!5fAn#c`>h||yKD}8W2h|PzJB^$uaD$YaJU#Opx4}t{a0+1f(84mJgq9CTDQr??OGX2d7+$WukjRTP58PInIkgety5474 zQ#c@%fM;*~gYby3;F-Vv>kTBO@c#OXB}F7$);YjV6kE*xsm_$nPyi{MO|Td!3q*zDN>X*Zx!_+l{-0@7RV^ zTl@ugYDplie$`ojYXz%eWT$?f*o%f4#13?OXp)SJ^&8+~0|>oVtlt zv2fespT%KaBlNbbIDV0&)WM2BjgYWYhlnGMH!A+6eC68+UaL5x@^iJ;u4rMBog>Du zx*b@-`!yxOe-hu{l}^f+{79HoPg~(PQv4e~(#$_r7eR>qqkpl0!e6QD-~21INJ

    h8dn5inYz>hy9W?uKU;`0GsFh@diy)$Kp<5DiVFsUf1J$^G{xRbV@Tv-!TiIU;;rdMS=V z3wFl*&B_-Y5b6G;gX=nvVYAHa`Ume2*jCaAU!!`Ch;^QqAN1vg?LLJBJ0m4T5_xqy zl{*&^WGgmbQZGe>g@F(HiCkbi)^LBLSv%~srdur1r^2>Elwi%;QP{CvA|O71RXHam zw&_G}M5Ng#b_k=qw$)lNy{?};KZ(U)GSX3}&aYzdxk|8i~_5&1Q++lfAg zogF-HS`${^)VGc-wU)w;1?T&wy|IXJNI*bXvkwtyc}E0f@*`5I@;wupG_duM>-cv= zBG{gkmwEb14-wycesU-;8+KHmKey=Hi%62vB5L1`BSP*&$2)SO5fQ`3mK9Ma*s)YT zac|Ne5oj!^EHCX~`nu^a<%Pn|dKfjep(d6O4@cj!WJMkq3 zxG4K&PyQhok5^msdgcrLF84jITq=YC_d45n=Fc#o_NDA@eLnQs9HrcUgAWF7SX&QW zHiJ=oKI^PqBMcPYQKliSfZ@_j^0O^>U|{LQ`&`c_FkBb>%ri*{hVSqmQ&#AJ7Ngb8 zC;jU%+BEb2gHRF-R+UE6&Zxmi{2;lYpAEFX`!uym@gBO1zK;?en1^AOE)r>G7U=uB z_eHh8D>NGxXiB3-=%EnJIn-MREje5jWj>71eRIOBbKxoURo)3=I&=hTX}(mvy7?Bm zYC^C2g-k$e%h!ZSb_u9u*;8h8>^cnaONd=;u!n|GpAXOQD$vbpt8<(;7h3RZQaw&d zP%9y>b>-m!cQs*k2XQ}$p>Rc08pY$p{_ zIll$m**&sg7~#r0ANDpM8t}qZ{k=iZUllcq8@mRbYlMeySx`d9JX_D(>UwAu zAWq{RE`hGu#uT$plF(MT^1j!64-CoG4frZ=K|{{Hl%L990H=1!$9&!f`lYgj8-W5^ zgz*Gi@mtVIE*q`qeHc1jmP8)!&4SL@v)Xs!1fh+|MqXB`(8il4d+@L( zG?6fn49Rc6Apac=n&;o451)9SmYxFIK0SPMY#{@>&g_kD*Y$4LA<_BKK{%G32~ zbb)q)q9B?@W5C-ILjRcn=pFgQ7FvBBTCRR?oH=tEIwaYzjou%FuEAV|`M5pM7;j!e z_3amQN3WXY_ijV$lb@=4OB$ieILXmA!WJ6HkJAoR3_))-GyR^y@6i1ECeOKc66m_6 zPUOO201d`Z>dXl406tW+rDLTIdS(2#^cx1Ck+Ub;y4C^O-=7l_erW{l>Fj6KapTZZ zUcI+~@+!1eTAM%aoP&nv^=WtmA80yM+(Io#0}VgRxTYu*q3^U?{C(Se=noh$^J;O2 zHl>kU$26Rv$9tsl_(xA@E_n30(T^26OfSq*p8o)C_Pqw1(d&RuP5){^NDIA$XPxX$ z=Rz}?sr514U(mKg9z=C~1UjqVZPn-=gvR6N2SoL;^EDlO64K-ajnACV843nNo9BnK zN9VNwe^KmA_DB?TKQ@fSr6;$biUA8!+l!DdIfsRpL-+68EB`_ivHPb2R&+|mhGN0&}_av>Ma}& z?P|v)M9Pjp(?%yrgoHc{9pDpu!_Ema3$<#*Z*IZJg0i}b*)N#5Ss|Gv@dc(B9^9w? zVF|-Rv@xor2qqnNB8NRb!jOS)jI?eBOw5~)%lePNpz<9R-7QZT7f+C?6O)3WpI$fk zneV|2;nb<-hoNJ*A;#tZZO?+n{leu`@06pVZ!yiOC(0Hd_+(HcqBFjVou{S99f zO!YF;mQlWg5nH;tDf=5R-uonjPx2T{ow{Chhl>aX6MYROU8rGFIiL6Kaup2qFAkr6 zi1j5dABPUg^TS|R|Jdd5{V=vIQH}~pV5sfZj@XBERX3PwxlAk;YTks^egCT{`GnN*0V;>WNbNlE7%PHpR*_GHgFVR_Mbpj5w>M z5AA$~p{3h$HcoQa~Owu0iQ-zVa z;bwAnEf_xM`ikXYE{uAeeP-CO2Zrf+(+i89!MMC3quPZ~817(Jw(FLG36fHeQJ;q} zWuCxvk=Ymqv$V66V|!uJb(@auBs&btJvm@5&IFS!E#%)0(Zk>l@%Skm9>!(oawxN~ zc@$bqrNrA{x_N*%ePA92t(t{$)MH@C{~b;C$~l;Pl>Nq)nF5AGZ}2uwo`=a94f1!N zg<<0GgMF8ax?zlnWhj=W8b;~_+&6HBFw#`1T;jn9BT8MZRyEgP=KY%GA zKdEzr3(zM-B=K&g1jhRJGO2T2fWh%0%86T3Fm?A>@J;T!FeH4-r}J|H^vC=(T-bR6 zJ>jR8a*YX~?_^7kubCS3c{f{zE3Lp}zs4B7?+X|YTCbceIzkfI#`bI@2 z4|ctS=5LRGJ$%#zeZ?vbLfKN#V_{j~YjPEuT9)QI`FCJ|ta|Oq$}ecu-7F-H5r=-q z>$75e#-Z2M|zgPs%Q`nkhrp|^X_8LOpxfLB~QHdfLLgR&g;TtS8y zUKlZrZk}#NLLXuCZbFtG+Oi!LqshE)?t2d$(Qn;$h%H;AaAlP#9x% zE!})R4pTOr8tQJAFt~U?`sx8e7g1<|kT!$AG(&%f@=!URFZrA^&8FiOwp6J1jQBN7wIHSVS`DFV}yPcmU-k2Qst z;dvO<}fw3(>oo-HRTUel=Jt;?ySO~-kpljv~Mt^ag8r4YXc@|*!0T;FT zHz_|68H_vhpAJ8M2FCZaa$d1?gpmht2&1hY!eGv#Io?SUhB*smV;D8CJp3fLtoSDk zuDPxpRJDSU!5YU{Djk^o&O3PdN-GSFGxX+*$-vN?7B+u>eHf$+4`Zpq=0E*ymd@fd zjC0Gfm0ewe9zK;QZf7d!PrYU)#c~q5pK{z0>kzh zU7;L0*vj5W{9J?1bSi&m3}^STJ*rmfs)62*w4_^FzR>65nL&PL9*f^A9OE>6(4Fp+ zV{P{uI3@-4t93J+B z{+k>gkyt$UC7;(3pACe*u#4tN3wNN8G>_Jl{eGvMVG8a|5{b2CIPZ!UV zw9tQB^Yxnrj7~Rv>X*g#LHnTd^$8akdMK~{iUONYo;feQoE!SZ&#cuP$H72*?yBrY z74(a2;%Pn$!N9Q@LYt^==vSXVR91@J|8c;DWIO@-h&4Iis2+p<(a=|0c^lB5$ouW~ zRZ8e55Yh=M>Vyh|a3y3qUZtk>!67U;KP`-~KiLQg=5#A^W}=;spPGe~oX9;%A3w>I`b zA9zJ82oYd?(Cad3qgm+l+NWiq$OL`Lwn6qn^w4XdpJOe9`6KOPYMF-zVPL>9PjPM> zy7SWF-f^@*kHXwWK#vY|TYfrx)F}+Q!uAQwYR*7kWIFREmgo8f74NH4V0I?2U!PpH zgFXhIwEYJ%pf`CSnclSmdcWu$2>rkWJ=&I|8_n3c<0&UFBRxy3Ek|q4p{N+GXg@^6eut7J!~prVaN-%VBi;<#X{dbLf9@#L4SERtF;{ znfWea`TXjv`TogF=&!hz^L9KK`cKC<*^rlFeTskTNZ)lBEcZFBEWiVU7Nma9Q?A3X z%_#Xq12?p{ad(qhra-F)HBEeP81#O^$zPz+g^mL_d5PR`XmD_g5pNuYP64)!#Dl5O z@OkStC(aT&4o<#X@hygK+frV?`>If#qb5BY_X1jm62hifnxQF&&ZuYR7*t6#1_o1P zL-#=4bV&^*;MTdXZ)ns&M_8Yvcwihf^Eh--dz^*}N@7C3(F~}Y`gT8?@+U&%FEc9U5(ZDO{kDgjRW;qU49BQ1!?N6%b<2GyXG zBKZ_he(~;!X;xFHCw%SVbYK$jJquhkajww#m_4>X%@?ZZ3VCjG7Xfw{6D4^gP~+>A zq|i|b<-8_E5*jVg(riBcXel4_ODpR31DVkAL@v@SFcSKQYFj?}cfioJrgvFN2Q-?G zwb7nrfL`Va*&UlB&^c$(aD+k*+J^#^ls9 zjn$84lY$0k0iLljc4#o*N$RXohQ0#no)7&h(7w%FQfZ_BeY6*uh(FweE&?C!_frKzULRT72pIJYx4_^Q(PNJ~jm%gQ8C_cO8TliQz{3_AeN&FuQWW z<_EM~c$Uw)F9$m52Dcc>OHV78=E0$}XKb1%2la zUGe!G0&S}YsN6E$p!e`T=}Fg6=yJJG@z&N9I)ZYi`@0T7E3=xLSB?QR5t6!v6WoUe zpO4<9n#<7g)_^XYVjpxSpUfQ3$%cOU3kJE5yrB7ZzoL`13ABd_#D4w43N7dIq>RYB zp}RH7@j2Uf=&H}aE)snTjO%9ayqp8iq+@n3)sxYz#S3D&6x8}Cop;xffd(-Hr7zRwP(fkXSNm}o8rOpE7UToed^DnB zil~5AzE`d}n2oBG@6wJB{DjJES(Cb^AJBM%-L&JY2jJd*ti2mS08NbZz0=}J(6AJc z7Mu_S_NutghLM;A1_UB((gSy4QE}E<; zXg-h-mXM|ZHNe~Daeo6EpXSPsDbYfG=Z&e!(QIgcw%T~N#vbaQCKvuN%Yk|_o3|ev zi=esMK||jn8SorwJ@}YDXc0cb5^1&o4Hx0c%?~5ckj-bxO_B>ZinQ3mAql{xHrED> z3_|^_{?02@9)RZ}5dV|`&|q>g`QhHH(25&p%}d7t?zz`Jk!tLI%8Fz2NkM=M89Qny z-U0ZBbQhKDI-!x|nfPc<1ZFP-392kxXfm_WtUdM->fLa(MLu5vzx}dJoe_%{h3_X= zj-G&8*)R{&@d;?4J<0w<-34k4#pkUwDxpdFVeVBYW~i#WsBY%)1{&n2ulmX;L*2o^ zn2Q!-&`MdNqW^{;>NuQcT2Dkn?eo*gM_yP#lU?G|FXnfl&cBV4G~_ij6TYPT;Tiz- z%h#m~?WzI)O`mBt+XU)#No`xC^q@Xp<&#DX1Jqu5(b92u4`vUoZOgef!0{D6iJr#d zHK6Fl`?!9np}ll3*diS26Ndcm83WXF(r3Oh4TU;N1|h29Siq0xj2k*j1Ky+N-K%g4 zXtZD)eq4AN>S;_#G}Cmk{9|vBWs`vUj}`g!5fiAre}Xb>UokXXr5LhVj)Yp#_@Bv? z8PMdV{Nlv30jO5excBm`CNw;x&U;~X0P14Y<+77lp;h7d$ zZ`6MUO{KTqJ$t+Zb+}jBXPHT$nb^En#fJ@Wf@8<(Zk0m=iRtlz1HMpKeTIo2%R4wG z<#l zcUW~OkCH&$sbNFs3;EEnpV@Mi0@G9Lc(?~OKj4zj#t(?>h2}5e*MudGLTd=ksSWO4 zXg-~MS=@FInyxt{S^x=7AXe9b0=cG0R5`YbOfzcb=dWOEr>^Em>&Z=3*}=)D{( z;nUF3>Oc1;(;Dh#ScOGsXaHBfW%RsO6{>JS36qWYpo&AwWrrgKa87-F{=|CFcAv_s z$^R$dZ8`jA1hWADV`8o==_6KGr?2AKXrS?v-r2l18)#(BU5Rk~21Q~I3QD`bLi3f$ zt86$d<(`Qe7*C<{}@KhVXPKx0>N(pfG``&qjJ|sjS~9*coZ>kSWh_x|@`7JOqY&M`qs=9N zXJ3?`>OKcWZhAEN`X10et$E8gMjk5SpLnw43ZNx)lv=?D54AiM6$vl7p+uxtg)6@u zDomKDjB7=q=oEGH(mn;KOy%Kq@Mi+N9^vSGK?&5Ri<*q|)+^-V=H*nnZQ+7QR&xEN9 zS$ksg8|U6H-Gbse70b!198mD)a>WHRB4`M|TOra_2Ce#TA?1y<(43_}V*El8!?Q-M zA9@0yw;s%_U#|L|YG~QqJGry&0*yZA zry9b$u)LKz)^5xTJ%dTf%I*A6QFBH)8LP8(!G@Bu$C;p6obL3Vcr1>WiQT0|$D#EL z%Kmw=2AXpYyRDi&gy#19*9i7~fZDssp*^vupw`WmH7lA9@HKrpX9_r>cC&Rb%K^(v zv&_Ty7`vhAL}U5J?-(%yu(GZ!Oaqt0%&|WqhSeS zSUgyom%cm=4M7AKzKOqw#;=06vupgJc_Z1rj+h0SxP4FMejbLFuN~(#^lw0wriiBX zTQR5;83~5S;e?tn~{TgE+Z#x!R$gJvg$>bP221M~`KT8bNKi{CoNxai~9+vJ}?R z19(?jp%|YvXm0poMxAj0@HR&q)ShMl{@G;0sjKr)mtLDkUn&eut|uz+jCY~lWRY@7 zRu6_6`6%9yY{3MFrqF59d>FWu{%}=C6Gjx)m-Y|W!&pot-It`3&}Sqt<^F33h7ttS z169{xFzlqI`9moflIUN`P>O>=TRHb@Z$7}#@itFFra2g_J+w9VQWD0e?}lZ?VE0Qg za&yd|fqu0Q2I{S4Fd{pzTUIRr1Lhleo9!T&6xiGo^7$wXiQd=$@ccE5ockb5WylPD ztGwqkQZc%yQ?2;*3iJ*{>~k@pgn_JhTi>zgFlheDHA7hg#zgr2d}dz4z-txyI~UYp z!0!nC`FmW@U!Eqw^+W>(Z`t4UtuBOtId<=vcx4#!M72D`%PabNii)|b-aZaiy(A?Z&v0h^96NEAcNu$B!&W+q1Md$9FpDl>N+ zDq(QpR{tP(I}Cvp1EXKa9!~9p8ZwJ5$N?(&NzorGDYD#VeTHcR6N+hZhF$GzP@=KVc-{opb0% z73e=`M8JTs{!=5O!e-VQ`p!yu@-be7L4o_JQibd=;QrQ*yigIw4kl>O?FeK3vG@7m z=cl3XIqtyi5+)d+Y}8~dpn-uyCzZ(`?7*OUsdY@w&A;=0rRYC+zf$y1-mhf%%iD~m zt`4qdw*Tp4Zhw?W{awkCzbiTVcO}w)S0eLwC9;24^4BlZ(f?KQ`;Qm?K_K<_1V{d! z;OO5INdG;7%-<8p{yl-*?=<}5M-Bfd`Te>4@zaKXl>Gi&{`i5zKT3XoE`R*Y;U6Wx z*XNHPJN%>M_xk+tlZStl{9d0we)#Z@lHcp|$Il=BQSy6z{`e8ZKT3YD&mTX9_(#d_ z_4(rm5&tOpy*_{ZEaD#}|LuS4fkNF-MQ3-+KX|2@(((lUf4x$g!t=~L!8FQk2DP7DbOWjYitG9ex!mT_6@9weA47~Im)i+CKRmOk6aB9XnP zjFd;H5U=Azz?$tv#Q&fx-d=J6aWAXyf0h0aaWrPB`xOo$A=j-L@Zkn#~&h!2<<%g zSPfYsl8ccxd>(R$taNbvYS1Vm?B&^aH&Xyn$gxaUOH#nPORYPK|9}YCkHzS!l_O$N z(K0&iy|8or-V=++TZqWQq*cf?A9g|&6M{?n5pi#Az;v7=B7CUGGRm=u2wu58^4!Mc zh`}H<;4tjWZ5HfdxPZuH#%=VCMi9xf!soi_D~L!c{OPFpEF#V&)C;=N3hR3o`6=!f zB7%|=KiSB_5aA^KL4pe-&}S|BQ{;01OiCJzU&HOd(7OC^jDs8utuWT!tcrpW#?w@J zlt~y0_j+AtcMm2d3~@1OVlY}?ZOL_<5XM624pZH?fZ@re8|t7Av&Q~sBSJ+!<=)q3=8G(i~rZR%EeNc zOq<(GU+{-voksHICk!w_!z5VpVi`J;O}@woQNXB!0u6)VIT+u|t@cC8>F=N~l7E1{ zNdB3>)Arw-oT>jUIsfIarTv5ayyq|Z`7eJH=buQ?fG6wP4YQpc;?3@P`oPK%adNP2TC^GG`NAM!%jnp^oy#t6xFte39atCoqt5(W@6WT9cCw9VZ5V3ea*%Eu| zintq?%QLr15eIwGPey-QB*@q*6+97#xU?j;p0dOu4xg;@Pz^w=Q=##P<((0$&`#`~ z`9#Fv#yC=Vtru}xYx+;gM}lpLi_!;hgnpPqJ2NQxUxGg!Xjb(4ol5JL^$=-n_zN3Y+qqxM~Af$LF%R3`9f^4 z-4m{PJnbcHAC=s>uNaAlB=&Kt+0MdFMu#aK;}|SnHQxM+YlGF+7M&*NkFdEa-dAXO z2)6I2M%Ga>AOg04BbQ&U!cKbM5lPb_SZf#5W%A# zW*uD9u=9xO{bpP(Y_qc0th4JPf_opnmd<*@vKYgKP)bqQ40*1b6(R^*OxX_}7*;^% z(DOsv`8hD55%I|FM*oNu6-|oDvW$E zwOdSTgkG}9Alrg@7`~`*R!frvMrf?*-ab}=iqoZvs|m>XPUX;KoD!Ng99W3LMmK;iE74??4M#v?lfYn@}S@Vb5Ir z9h&$ai;{|&0WLRx@qmoM)ifQ??RH%EA`J!Z(9RQ*|K@;|$9@`^3gkmN;}DO*CL{>?dp*l}olV90_y z6a;k}1ECjrt)c6plHjv5SE2Q)+_7h=4$xY+Kl09{8_+E3zt1H38#KS4#y!xrg3g3@ z9&(nA&~jz_Ys3&g-~%S|TB&zmq*Wl)|0)m7f^LUDKC^_Dkza+!$p)eQse4D@^fhP{ zmGC@kcpVx^J3PK5Uxv=ID7n+RE=9u+s*u zBx|kTlb=9)ONg$w+Zn)pjx5@Geg#_P!gT!&3ZS*BG@<5;3XJbW8Xbw2hgIr#Nsrtd zVBzAA>zlJGuqcvUcU039=KVy84k?nr+?L2T2|a?$mcIVMB zg~NTA;d1k-{muhR?~RYYt-c4dLlopvaXYZo`byeKY650YJdvo0lZ9Er+xQp{MfjC& zb4tLc6Mm(I892C~hvf<$`bQ&fuy}zxg(-#>7L1k{``;XdrLp_-+^3Xb+=o&$MLQMd zS!~ILLbqW-mVtyg=_ahVZdRK*lp&JT^p4ocO2qJ-L-d16JgkIz#S!g^LkyQnL`lx; zBQpM}Z~OMVL^MZ2S#4RKA#&{_cMUEbgf$YE$Fj~xvHWr~pn@kKmQEx--!u3e{r}o~ z>$tAAtzBF|1Sx5hP*SD4l{x5E1XRF4R6vwYK}5hHR763rXr!dO7oE~A3P>n|q(!N} z)cwyyx6|_WEah)>w0lImepuJae+X1BwanI)kh{AUgk)??X@}kf+ej z#0{KBUrpW~Q{r9&!k&G+K3ZpB^T@6Ji#E={_?V#gp~P+2JhQpqe!2z--jzpFIno1R zc4OrE^GAW;=Jf6E`BL=m&Il8Du>!eHgjIMP8Cq0R3m+$=1EK(OuA$o7uqi(@zm`TH zE&9nMjw^ekFP+5F1Pz5iPS#o}yBC1a>Vqup`#(AWBmEN!M*4Rs7}+n}=9hz{-|a@f zoyh#I$S-FaztjA3D)2kaFZ=56-0ByNwUzU?AMvlB_WYJd9sb*|`~S%~2Q>E?s_HAN z>KSV8-}h$>&&n2W%_(zxXDd6~e}Lg_`Zr{F1OKrMkHi6E%VpaJ3=U^R{Q^dS=3dMo zt3(XY5$_ATA2JIx)T%wn=myYidB5FR@jfuvyWR}7lm%Kr_j_@BYJl|ftP7^^0F>?o zOkOFwfI6;Cm$4uaXa*Wy71$jDI=338g;U)?eL^;%Zbu4GYLWV0F0%v1)30cfd>;VC zz9O1a7WzQvn;LW_x)7)jKA|}n9SgKq2i$H@sR8BAV>xeDLV%)zu4MQ7TR_gfXs}19 z9Vjn<>4??R2YT&uI+0_`K56tuwrf>kMz(I>U=yXLzD${Ak%MXWD)=$un87 zCFIn9!SF8p7Yt8io#Dm&0mJKGXLuEV!tkuT4-6~e4A1%M#+%CP3{UO9V0gsq3{PpD z;RXH7@IsHub*##xj*Sl$B@RAD9Z~nTN5Lr#gewE~gp0ZJj zGsJKIf#E&>KV*37>kRMh4-C)d4;Wt1I>S4&&hX4|hL>|bLn8>5 zOU|fgr1qoStMh2ky58VQM+NG=ymI-rpCIapr;<4^b@JP%Ng>CS&!FyCJvzHxRZ;K4 z>sUXcS~PIkYgu{T4|Q4T6Q4eS;S8^{+#;P74Mw?VPeB{%@S%}$R?Yi?;hFz2!yDiD zs!liubv>w{nK3bdxN}liA zXGd2-YmeR_2Zy-`50*xlEm^##69oQ0t3ELLKaROz>HVWEQ|N z;ezZYL6DNOa^)ZC1Edh1rp22JO8QJZr=MH`(E}Y)Beyz1wZO*GMb#Bxahz+ufg7e=Vs1x*FfeYBln}6T#%}k?5nH&0t!*LHj^|b z;_VM(yV;!%s-yAgb^1A=LTi?UFXsS3UP+Q>EueC)@>54mHYgn~u|G9&8urE?h$p8= zfW7w3opdu=Ae)?B&`qNU=#jnDMV$!%<_{(hKWTw_qI#k1@IFutNsNiy5(_FG-Is=Z zmO&(-c4}k84v>T0-EV1^L9%c89(D&{PdTkeYuG%9@^@@A_ZtBDaDkIKN9h4hJuJE> zX$Jfhcl1k(6v8PNXHmsRN-3UV)|(d4cMke=g9AO~TP8!NA6 zYZL%Ur$ZvIEww;Q^`*$lgBFmR*>s!l^at46c7#q;X%8rubZXtp%mJlidBSgK13>|r zj6}*8LCLr5_LJ5$fKU}u2YW@3%Rnr=^0>W;cB<@)V<3@A^kmiTJ;<{x7THrpgZ$}; zZLuudK$TR_baE>XsPK9+$-57LlC<=hFSqDnw`3`IYl>mScCEf{4ip2Q6c6Q;fxNy$leIKA zXtpmr%h@On(rOl#=Qa0%#2CS4HHS!$W~TOHyE_45or23u3=|*~VHuPl&JHq0!`p1L zvp^<9PJZ_(e^6XLJa)~B9~3EXs{7J*fPDNXdeZoDP(04bmrzO!ds}vGX^%Y!QZ3VV zVmAmuR(z>c<53-mdXPNQBUu4iuU$g&5Agn19q!mrlm{vYns)mq*nsj5#$kR|8c^h| zfBf}Q6!6?^N+Xey0rA?wgGyy#Aa>F)oAla6ka!hkIesx41iat)w>hnV_|ig9=g3=- z-}6bzd7ByRd?oN!Q;rdkUUE$sBQ40KtXL>b>;Vm|h0;Ir5J*u+JWc(o3*v3!w=HDZ zL1OyeQUHkohz`j<+qt6-1g?ouPaO9J>Em`Mr7p~Y#9IPO#cgK*jvSq7?LGj&nKMei zza3E_bMfl!G5acZ&=ka_M` zVS7#hWKNs*^p6mM3R$FSf>a?W9cKwMeys@jLd4|l^BK5@-Q;-mUV&KoM{kX40uY@D zOqqQ`17d1J*Uo-v1pc>{vPy2pK`gvAMvpccWSdO=jV>nv&r{@_@oozC(tou*YJiVp zU*&N9gd3pVHa?|UWeAe4?*!(zdw@83;;995HV~Jp&HoT@38K8W>nAFwf$x=ce$m_( zkcy{Hm19f>u@_3bU2bPVA#ZY^I6@i_p__1fCpSnJ>PQR>ivcW!NxI}QgIq-C^&5@8M?O?yaSgmM>1X|9wOW?6!=#YuVn8eM?6SYE+1 z_JA&K3@GCp1@7IQhXpU+1(ElUeWTjRK_r37M4$gF2puU3L4@;xQRt~ zu&4oKh*|a!pE?d)+K&2^l0b6%kws?FL!eYW7+}3n3<{U5KJGk>ucKt@TNuZOfQ#X%j(J@^2!*YX zU6Hs9!X!c++@Fkq?{F|}PY?&}KC|NZ=IavhjTEe;EI$XS>(7r*-KYoljHP45E%!j` zQ?{{p|8VynYt{2LARrZBVu$>I ztJ1V-{H-uIB92*dild-UyOc(9gBr`r#X2V$cKb9p5nPGTbzCFITQY$%61Oxc=16&uh? z+ef6Ki@hBCTG%wghGntOk%m})!q!^DFSK0a!OrMYTPJR6#%5U`i2ILh$Lh@IH$?i+ zV`C##oBMj+VQ=&^RYYC)Vs#pCPBV>FWAEB~@5@VdV67`tZOc}JSnu^OW{vuLuz7Uz z)ytVU)F8LpeQQi5)<-ku$U1WfTgWnX+h9J6jTCbdS5jMH&d2YU(=xrop4}Hzl`wjR zb&$>u_Z{IzLvy160!#habiA-0ku4wAYSTlzNn$VNa_HkYSEmj(J4q%NOr(#^!=%ed zE)Vuq@bi_6{I@Cyjv=OZQ#&dMR37g(JpTb3<)ih2*bHC*`p(VrpC=7jI*WL=<`l+g@Vb2SIS= z<`T9TxU2A}=~JwENtr*mbP;>oI`^DpMH*WrvpmNdNQJ!=-(_L{fdYGfX^V071TFS@ zB9PltG98;3F;+jO5RQ!+D9p4`y~I|N519B7XJF6oUzLoTqDK|9lNYp!y0B-XJw{(b zZ(y^LSFhZsT_3v=?_&>2nooQ>6^3CM z+r!h1%~8juri zdrQrKimK}f8Zg{gElyyJUPKFe+FUt_HD6#U+ud%DMwuy}&p&Cw-uA?j2CvegULhfZ zBF8-ROtpdbl1M-5t3SW>%KmXQ^ithKgE1X@Rv~M3P}>Ui`RcM9vwE#lH6Hjuop{^pwk$!JdeE)p+3C1UU#h>YMx=@aoG8G|D#k7!8@CzIOApZJ$HX%V)^}dOBCIX9AV2`el=-H&Ork20ab* z!hXZ9Puk})Mcvsk!>-Z@&mQix8*-amHPNq3+8^}Q~P2*Ar z=sM5~LO;{$N(!uFb>m6V=_{z`#m8$YiXG_r(UiWgUACwvv|LfCu>=L`M6o`4wF|3% zBDej8ZUvTk!lK)cjty%UbYtp^yMso1%nnAoP@;yjwe1bvn^3{n8>x@dfvEd}x8fJu z8LV9`Zd0YMGQt+8(oSy-LJcBMs-CKEL(hlG3=8fpVlNJay(MT&MZNqKT_sbw=nYT$ z@a=h3G@5cq>dea*sISO4J)fBZ^x^Pw`@)Ua2Em=>AYEhmJgYA>I(%8INv}jVDHTH~E zypGp11@(%(pp_NAjH>kqR(Ol7(dZVtC@q=IsGCt@Zlx_1jf*;Mx*`*W#;f<9JMky(BUjkIjADN<&;g8m?=Zw)rnomp@H8*;GIQ{i~ z83#1a^>HEZxBL`=hUMKH`&N8Vd;k00eB}nHYvf|irh@aRKQ%x6 z)XOzAUZebSH|Bua?S$B*n$ywyZFg1UONG&N*^V&ofONFr&0%)cUwLl6V0`9Z2qFY3pKnnSQYXyL#@j6y;%83bmv^GwTT6UU*4o51W+_+Qm1#=c?o|t;~*WEp6 zPBB0=%76&Hp${fwGv`BZG@s8JJu^m)`}3Y>IFX|Eq|+@-=fcrQ%e9Dv&wc-D9Q{{a zSY<)O=934tuq?Vgtl1B*Vvo=IzD#ps$BF_T5{MO*V0ja3ho2;zLHAT2C|azgV40&m zLF7*bu>!B1do?MAvAbm*3wbXpv2M287rF#KBbVTVo!Q%Hu&SID36K6R>~4az!c7w@ ztl(_-<;M-zF>F(QUC7BQEb30uc;d`vtkEmGIDGeA>|rvy=VYV~mYT9?UA7?=tDUhX z&0Pj`k9glyq~2caadiL6@q7$xFxz$f_`o}?Y=@!5$J&FK1JAifyQf^R%rUbs6Ro6J zXj8?*7qeGUML#!};+BtCadGr^)BBECWR6SxS`D>d?IeESe-!Hq zA-vWQnvaz{r%;wNo5$++AL_|q*2i4aQY*D9g0bF68sA#X3u}GqQdTK_7fbP%iS}WW z!rGrR_HvpAVi_KjlMIwySp97^_14puuaLV+dEXB%Ch zdxeFj9K6ll`2dSoD0(SA9f=k2$9*mdJBwna)J&=qh_M>AdvDK-)uD6?aX+EiPORyD zuH%J7KnYDjcY{p$P;7|d4iEJ;tXRG{HU%)LYg^PatCP)p<5a%9*Ib69dt$4)%;)Gp5KE-W~FEeJvTzx0%;?D?DJTywT5^7 zs3(^3+(-P`7hNnn;2p;)Hg}Y2^d-YOYBN@En{o4yEhBnV9_z+)))_TxGuIU)l%UGg zh9_*TZ&04cd-6~Ei&)Be;vvIIZS3BLD!)@h`6w5Ata{HZ1z`hEw%SvqVLpsmCUc(0 z(Y>)vJE%Xs$K0Q}l`ZrKBR^OBW^tY@l+3r=bIzR%C0@@?$+JbMC`jWekBbBf&ys$< z*FytktEUeuT{J~;tH+0A;u%pDv5umgXdISH6xz)+l8g;xs$^*^9Kh;X)Hl6*m5efh z@Uokz912p9F>M)RMU~{;_bco+pd8jMSidDVs_EZGe5g4eRoQ*2(i9LzZI`9I+vgvl zT3>GWA@8jym09Rex5W_3iSl)kCJIF*@*(-e_4iRj->Z9uTT@X5Ty&#Q%S2s1&IMsa z_fU%STd!^I4XAXdjGtf28hUC(Yl6wjFpx9z4Bbb;#k#PpQC2rQB zrsPIz8pai5JxcX#cBmVrGzc_xPf((J(hP_EK5?RsBY6=CoApsQ_vXrR89CHpTA7rf z?txm)wv>h196~{>Qt6&wwxhHg@42Gu7Epz?tQSc_^S>HL|5X>(d0J}DZNCIok-RaI zDTEHoJCQ}z@Ck%w^()E!aB6~uhj=CV;-+s(->^su&NVYU*u=$v0~~84XkV$)#@^2?EgZG zb!Y_*wv`581=qD*<=<6cx96+ME6vjI{m$-u`!`8g$Hg_O$?Gq$m)(R7HVMJlSm3GD zmP`k1tmpC1&l(FWskFiI+jxSa|u_H6$+&##k zP=s}F%4vIb<0>|6YS7?rn2J?v#4bIGn89AEp4ak<^2J(|=9djKUSRbfsrT&Pa}ukG zQRQ4CAHrTdCVTZLrU}c@Yzk6zJd3iTC>ReHiDM;`L8VgrKVj`YkCJmw9>!|#IAmGG zSz_JuG9~=PTTs0(g%U-}2P~JOR80SJ14`Bj_H7lZLD4Vuyy{s$qe_wlhh&owEadQs zK*i&dSjv+EMwiElsAkHL%uYWJt2qAo3$wv2YArpO(?(#0wRAns%b~l1Du~ks%#4qr zx=&zb9LmySvu$C3d zt>!U#n6F>y=J|UISY^!0lgCxtQI+0SGiOE~EcBS$QOnFDSe+0>t<{w)s51J{CjnH3 z@-Ez*sh{sh4Sot2Nhdl`bE9SAg7{nXG;-v&_KQiBYQ9jZ$)1R+8bq?&JpeV;sIp)A zn2c)7mb>nyK12<^Nu7F^&tfUQv4^&*jG=6H>l9_ zTuN!iGD2&^e1z7C1+f*BE-=Gqwmi!WWN>q2hJK_rrp_7wZI+WT- zS)qI68ESl7oY8AriL$FsEF~KbVwE{{#haTKu{ifL`On$wQSP;1`xxz0=n3*Yv4UMf zRinYS7kApCyg2eU>0WVE^@#ahu+JM*WpnF+|B-ss6w!5*Nc#e+*_jmk^>Y_W-EzW- z?=S}{3oYHbXukzjk`5>Lj_9M>m-9=fxmWRhCq~Ro%#E7b?-x~+JwQqQ4Kr2p>8Sjy z=bMb+{ivQaMUBy96vb)g^L)WlQB(0(7V984lu;P+ejt?qCEa?c_2$4dD%r^O@HX#O zls#fve}a$_HN7THf41KnrP%RqXX(0y@};gP-|nYI8N&ix+k`q$Ygx>zRlSR-zDHp5 zmlGx^+wk-1v0JZElKrXl=6o%boktQ|_GB96hxon|>heU@V{BW~P2QlKO^V0%UcQQ+ zw!Xdopw#Mk5SRljahZiLs6sS0dw-+c@$5sW(P-#QL&cF^GB**QH{IuJ8Ldcbo2A1 zw*7_$)Er>NbKn0K;6Qj`TaGV?F#I7+;7U#mQ;LbRCr_R+V7#mPc?D>*apu z)O$e)E5CBUXa^}Nb~tBcaLV8wR&`B>z*F=IR(7Mt;Rq9kiVnXe^2?dSdNei?FUZYc zgmD;~f>C*9ANex&Duta? zD>NCajY>4}FDu2KXHlICtKWr<`}l2%?B&9q&oe~qiVDZ7&$1QBu_|E=ZueH55?^9T zdSJxfZDl?| zgxHANN9tx@8LV33ftPx`2i9aXr64fy1#6`_uI;sAiZ$;Pb&QU0#Og)A%<7gjU?Ty? z#qHVKu?ofJtjfV)bSFDk-8EJRD}B(#(RFj=^=F)Aa*8b-Tk_Uzq)b$!jb@;ZqL zHO}#{nz#93dFqeoE{9&moHAu|tV2aHO}X)Hx5DbE*l_7u;%)4x zibA)wOD3v2aYRf(OcrZ7c3~?~?i#8VpME2&(u*qF#SDy97g2FbYKHb%0#yGjineI1 z4=X<|>^vFs5miMd9Hdb3M~%yUy&apJQAHd-iPo#TSi6it(U!0^tSQ&%s(mpPGBhT) zpljHTRnCV`zhQijD*WClI1oEyPFo;=OXD$Cn{_g5^mYrX5)Ab!VE>8=^6k@Pm6%b} z*p?8HiWSeQ}6LgyNZ zGAWMR$#ax4hA8LihttR38=|~VbYZ49lThsPMqApWQmAz9>1V&=5AgkHXnp$H2UH!n z`kpe77mL#?51-9Fh$>&#=Z|I1q53UC4FfN8Q8lSfU1lsRD!j!*fB2a$$`8~iOOtFx z5&YqT$)4$`khA6kFGh}PqR!4an(V@sW&cTp? zE>zMa$iHc)3QFC|?Pap-7|OoyuxK!9iV~UcXxw^8jB*r|#8gh-M30E+994YmP}BWm zD?X7&P?4kcOVa($SV<-YpYaqg7TmO$?0Lx-l`zR{uvgJRX`d-|!V?~$Di6s4UB=BQ z_eMuxVBtknO{mgAZ%2vm7sI=QA5x*GZTW?V;=NH#zRk6euQsGc#p$yuiM^QDm`s`iX7KFt`&b@w@gBo%idE256q6*{XFxg^uRMG#`*`aC*cx4i(>u}r_;Ugjti6e*<((r| z?R}N|e6~AwhDGuLeFHOAd`pJx@=X)0f)Fv&47FglPDN>aJe!3z+Oyy8k8s59RbKK5 zY+}YzB(@w1kK)E^((UZG1P-ATovY&}wjx-3bSx=rWE)n!?N}dI;U+9}LrQ_Z_#Jfd zL6p+Yo-0^}rH8=B)U8;A?lpG->q(T)#^*^!cLA%RQnxwsc`p{W|A=te3nZz4kjW5MnRfHcc~4m}8{}Nw~jo<2c-z zGkwF~5PLy&>0Bdq2i7ev{P3gi5v+ZSEHk(5bIsS+SdEQhGvNybtdA+e_d;U>hS{qa z6i^LfHAC-HR6B7zccSGR>m9(V-wEG1EW?6f?ANWyU*E?D@_71GKAgcS-}NLKJk`QZ zepP=v*ffR}%U(?>#QDzC>7@K=X&bESYL`Q7yCc?CE<3~0J&v+3Q`+2~yNOkhxVB;g z{#Z5_kH3z01Xle1(`bxB6XwIoAETF5iamA@j6uWB7>1(APc&qqtGQ);oHfl@jo8_d z;^}x)xZ82-pxs5RX&D{rS-p(1SsKMwMZ(dO^rsOKO*mh&UI>_fu#5`I;-y1Mm$8;t zU6Qc^_2{vZU($e30!p(#*jzi$fP9XH=g0Fbpd8(lrPTy7to(q;*vrGCC^fkW=Y zS*C4Iiyow-G+LD%9tyEo2X~RC|IIS2@qYW|{`34;=z>~`RIIlxl=x2VXGL zH5g#Y$`8-zdy`{z?HOY&Qluz{^0L@DAwkTXMAzMZ>KMvP6C|$|;XnnWk`j~Za;PM- zO|ERK3KBl)FL~_@2a37a&U5xzAIgo>D!+Jf2*m{6&C-3%;%l=AYvCJfivcrbIjyjlN+2+{Nq}NGQbp+pCmmNgO>P`nY z$6ZDR+fJnrQyfGE*`B-+9apgmf-1kOXUb8gdacSC%ZDiE#I?N>&RbAMnRxwO`g$yV z;NS<&I(sbFap1yhUs5b)+q2~PU5Qv>Uh3V9_N%CjP2VEugaQgra3)GTp@YS!9i|?h z-->eNy6+iB&S2GM%_NGe%b4p}s~jzLA__L~nkBTCN0@5c*DJExSmVHynaEK)lr1ZG zBkq|zYL1Q2EBI83DwR(VGasr#xe`ZmRXxS9$H~C$i-GJegdV})$H1Hd>LJH+N*MAED_aGIEutpSYv*?tOd3uB3M85 z!L-r~c)#+TAw2Kli3(?u4Uc>lL-)Rfswq)kK$SgQ4<4>|gr{Z3qiW6V7%#t3WDo$2?B82Z#zq&EA zWOqGoS`_s917polK_rHluur*X}x}^ez2I;^NbsceU;m8GaQdH ztPU1u(f6P`F$Eq)ep#r~S4M?_;URk3JFqn8NrUQhXE(8J?LvjBLrlHrlTd!_{5{u9 zHB>aPvNm=77^-!4%GZ98gwlis>^U!7MbCDN9CXm+NA0_BUpdj?in@$bk7-gKLRCB7 zW`u9DMIBG3S3{(nP{+Xr6E%-LsGwvd=c?UtRK94KM4)AaGIlyOmzGYTPPVnfdkx>9 zdx^LCg>x7Zc^;B_nJaeeRjbrnX`@$lj!ndSx*nywR|F;jxFYgNf| z{pwMnbOZtM!(|j6T$p;D>Hw1>U_43dS-1EC1#SftIf`$ECniq2wIlyIogMkldF;r4PGCp=bLKkopHtS6|D3Ci z{O2TfIj=e$B9 z#lQOwe|>Cb?)=y9{QvL%>Kc@J%|-M#QiH}bz0XRav7nwNYLfYuA2bdcY2K3n&>Glh zml+uVD)(*-G&ClGX4J_quCuhDmd|=%lWYnoBW0=dCv>1v%4FlLGYG1M&UAE?5uo;# zO}F(@4`_s+-;+ql4k{-NMT56kfzq^#f@!}TsMCGr^eEj9s!V(iA7}|dtIJ3Kt;Hiy z{gTe_Jzx)Ni<~xNm+pgdA5Y1V7vZ2ho&WY&e+($?ou{1GZ4b&DjT8_1%7W@yiL8e< zwxB_O$%g*R45;>|@)4~0gNm7={{02KeHOv9)^b^(rtP>SzfcD%4U=a*jp=~jWn?$G z=Y9~))+3X%4*@~3PXd}`(;&)vWQtF-4#c*67(2kT5qO(-mF{8p22q9M>|u|ELD;uI zDY~;11XVr}sy!-Wt^Yf!1?3O~mw@Dww1Ye~2&76eYG;TDX-6mo8 zxJ~J{qaQ%{aW`M*RRiERdy+*{5(uJ67W_}FOhBl3Rh&_S1B4}BOl-Y73w#c$w_nzC z06$s3Z|CwR;46xom0op*-4f65N8QW;A%9B{PA>q_OHrc_gB3tffllF4Nh9zZTQ$#| zUIE?%Ub%{HVIVNf;dcM?Jn$Ehc^H1m0M6z*c?pS&ApFUxU}5qL@CIm8N{V!Wz*_&V z6!~f3t+_hN(cuQWIIx(yST7LSQ9gK4DH-@vh)+?lLjKJftWhFBT>I0rrsRPl*4Zt5^ zv$abr40wWw;%z9yLFi06-^7R|?9wSDHQR)Mmu~+(7w012;dnCV9-|6evQvGbcU(Yl z{1b<>>~RpJI-$Eta0B>g+TMB6vw0Coq-oM9ud zg$)b+^@$PUvxrXGhJq5+WkPFI)Bc) zf9WcaIi2pdipT{*0lLY(qK|-B@R-{v&R8JjXi_`0NCRX-_g3$JNe1$@{We5Yc0gLp z9dcEz4~Shuy?gba0X0eUa^9XI*m(V3tD@k3ppX=}P&Akgq_X-uXx=sg*^UWA)62Vn zn26~SQNmT&h#k^DT(Am6P7%WQ9qWO(hgNHR(GVylNe#r$5dax>yM6dHKWtW;;0Qb# z1mqw4GFE#Bf$%BIiRYu0K)SF@Y`VG=HlLT?Ie}vMhFm?lACUEK$v^(o9X1Cgtt1E@1_IZ>h&QIh zK;v0y>Rw?B8~wx$3(l(oWj^zo6=Nt+i~2>I%q_x3>0w=hI#VESsF|3N(F9s@!jl%t z(Lh1$B~Ra+0Xza;pM}qA0sF4j0V&cGz%!QQ-<$3NJZZPS8b16A{B>{qT$io^mn9ZB z^Jy43&Ns?zaQz7ERg_P5ICubub$!asQ|Dm2I=$3Dkr8YkijIp2v?E^$anHUAc4@y)`gG?M@Q}y!6>V$; z_H!J{wc}2}k+k0{ltKb_tXN(h`nU!=s-L!Oj8Ozm+xG{aG!MhJdrcoAd82@H=b}wp z@hWgc>mBo?69HzCksFm#80?xkwm&xb4)6%71bm5@1P;&n!q|)N|C@g2|4S+&J7-7J zQ#R`wl5c5$|JN<4`L|TNzj4^bB4e?!Vr z{2xnMjFXdUlxlRq#CxvOl*1W}74Dm5k=cN;`>t7c2L>=2$$4q;xg3mj-dham;^liE zyk6V?7>p-MD32df1rx^lHwQOLgURL(i7ixv$OiL=uH*l2PDVJ|m*J^}3$vA#FHD}1vI`HiHLtn^K=}swN%7#3>;g#0>3dqxRW31zf zfIKBq5^-W$$b+4VA1W_F-kt**>UkNsTq4?6%8E+?*?|*skf%1ADRoH;_d_#q%E1lt z_ItSW1>b-?DP^*KzO|62ni>BzuLbv4d*Rmn6yAWBwac8l$B)mNP zhRGAXkS9K)HCj;xc`{cXn@lQ0o`ghZh2b>hDP-o$WY$66-kFtAA?|+xFPVm^ z-5FC|EgM0x-)NkF)L8yh#`1fafA;UY533rgC>s9>W|O#?JD)alclrl#oAlogw+Wd3 zV{zMdJuZilbs7CP>9{VP+W#i)gV*)z_1Js=P1>ycwOf}C>+ivS-OgcMZ$H0YZoMAI zb$f^P`kmI}v#(f}>-F2O+uO4LOy=b^PAm^>`e-*YDTut=G%jY*;V9 zUe0N~J&x<;9lt;S-oAA^2ll^7yYKB-_xrs+zx#7ukK_A$``)f!`)%FMc3tnVUcc3P zy_W0cejOk1d%N%PIf?wfec$`nVO?*#UjEE?zw70!zQ_5!{@``F9`E=5vD@(bI8LqK z|N4HYf8Q?W_4@5M{Jvc_-{W5QbFSj|aa*k4TYQgiU7q{i&h>k{_4Yc>|GvFv*X`}$ z_x?{sug4945chg}zK;`I?;qk`FL!cX|Lgdi|9w18^FPELydHPO@9R6a9>@3jYB91d z+1KsY{hf>cecZO|<$fLa>;BJtxBDL7dbyM9^;)h!w}Kzy{@#x7aYz3Ux5(e*@$d0u zuFLQC_Um!m{}4Czdfe;vejgua*8P7Ux0dVW&A->TUheGrz2kcQ*5B`csQ-K1cHjN2 z%MOFXyZk;bzt6+(?KoEP2XU|4Iq9v}|GnHF#BJ`q-j45bJ)YAQzpwAt z{#m#GK7N0Sd)?l);`jbcEB=eP^?on^DDFS(@9%Njug5*|=W(A|kN5lf^+)~veZ2nE z-_bwBz3$(R{rBSnq$@qDUkGoQ6Aj zEFIi|u0umvAT}2$*{c1?Ub+CCZFO>sn>^69eC4<4x&hQ1d)?CXNr7Ivr*M!=5@-vT zZG0GR0ex1)^R(CUz$DU3nXSJIXeg-Uy`x?L*QEO$0cvYteph_&Wp68Nc~!1I{op-_ ztE74x@DBikbwRtbdLPK8uvV!*76<9cjhJe^9BBAd78A^+!QNZ0L(C2YAVHt8^GZn& zaHeeA>fKQa(vQv!zj^BqlDa;|+akt6gx@8jagH0rUJ@l=!0QolEs*lueGz0G`z=gX zIY3B%-+T3q%^)I6vO&G@11PA^n;v!x1*N0PYb_tQf_N`Ez0>j`5PC#qE_BifB*sE- zn=YIMNy=S}7u<6}FRV%w3>tb4CMOE&#bAMq0Nk{2(f$dz1fK!yhbiM1Qi#5&fM-j`{oi|0P4es)LJ_ ztC_XA?Qb^b6yHjmHn(>^^FMGZPNJf!s%LOm`A=3XveV|~_NJ#D&8+^BthWUJhHI9> zf9#qi7O7ObtzHlq$gVs{jHL!ielfixF(*KRkUL`eD1Z_ruj;TX2kb$@rmbQJU@u$l zf?rQGa2V@pvk-m;zVUZ~&1EqlV72*;Xnhgv6u5p?+bj-tUQu~{{;(tP^c8Q!c@RR zK!EeG_#=u_u={PAig%zWuoF1#UI{P((P8?G$v4+w_mgK)AB&1WI%4PbOBM$~hCB@K5G0;oq6N)Yf)xI%e+X zjw;_K!~ekSB>nc>P*qp&&;Grov$@Sb{O>Kd{`<{NB9i~u*~#HqNwNEbBXF^bvTRYA zf*rgaPcPue#{Nd%gI2HxSYlUcO08Ofz3EimUFim3&zrOj6Ks2JX~##_0<744k2qB$(BFUK&c>qx zOx|(E?@Bd+jxlVbzituGFR~V^F=zly&QMY5Ct09B=l}JNYaP%Bh0XY#Y6V8aHY!?X zA7C0hmL$Wg1x)V__;QW20h3~?wfd(qU=a4#yv7{_jKju>K| z%}1cuZ(AAE*a8d$dc;dicY*Ptx7}AsC)i5TcA+S0J1`o3!&Rpbg+P1B zMN~(E02prFX1UfL2{aWkT+e0j_oVl_eAbK`k6T_!bEX_btOGvL$I0HlX0b?JW;8UlTh@C+9{G5At)pKCDaYOqGuP@L% z_qcwja33&Ujd&<8LjrUZDYwW7gn=%j^tBKTCD83k^isT73H00{q5cTp5%knZ`R$qj zMyKfA%0*tlR8u_i)%OB09+-+!Wby{a2X}kesKtQM)Ah>zB7a~&1eP~s*@0pE+}EO8 zM!Qn42*PUJV_xy6HRSu z@bwtbeo78|v3D4#Cmp6-+b#laIz(0txmTih50jKb}<2Uk7;-R`GTZpnx7 zakaX%PtFnOHmkgT&r%F@lZ&+nwB7@Kq8?=^!)svFW_8?hg&vqJ1*M2&1A);(dv)c5 z6)>7pl01CCj!PmEit1)yU`veMWMlyJlM{V1x_En*8C@P2*#qs9Gro@;G=aADb<4w! z(?Gv*PDPVK52%;#zw`IY1^P5$WNo4dG&gBj*1{O^IB)WMUknH8uhFapw~ylE!k_1L zavjhXWJ}yp)xzzo5{p88fFX+4t*&t=Ff3nYm#Sp}hKj?tFD;q@U1^kEyAJ+d0?9=_ zPxS&VXZ0mnFB@POVqhiQI2I-qkhXISmN1+;6#aWV&RyRu<1p0xA#y^>P29L*njbp$Y9|sbeUeq-L__(id*w>5CQ{pe@vitG%r?F*- zL(d-=FN!j+3~j>WwxWM{VGq!bcr>c7)c{=|k;n-WUZ9r5EMoeDfL@tkUPvzAhD)9gJ<|38t;%phO!Xi>?mf=>+{5R$k&`HSVL8wp zw7&5m-wJ5wHc@KswF5fGaBOK<2j~x22fr280Y(y1`a^SbK@WVKM;*5$%mmsQn?#Kw4Cc=OF?pLPNH;Tw$G3TuFJ zCu7=8kzGJ$SIlX1#t$gYz4f`X+6&~Wq2ZY$1h6^t!|ZH9ERgXY%Yu5myd6)=Yscq6 zoMoN;Eafv0(-Y3Lj93BbrZ2>O+!)XV)yhy;Jq3E%7JHiZPN24m+9^LC0JK}P)zg>D zfvWR!@3o!gKyzItXB+ARnkU>5rJ?vb%wPAI(A)~>oAO3XK8*r>)ONCzt}&qBrAnyB zU<$NHSWjoA=mK5qgGPCNkmsR+fr(T9OiPw?~C_hLYQoned0g*jjlrFMDr8K0jo zyv76CGJ&p0Av;&P_$L(?a z4&jTV64?g~E?2a*FU11Q4c8kn-j9GzVy6;w)LEeR6`iOORR`Kqij>}KT=@F1blw-X z0KHSMbLxH^KS|nH_ddn(Y0GwXb|-v&^B$^S<3QuL%l(q( zHefutA(Gru6=*Xz=N4Z&3UnSfRjt#*aUNmmda8B|=vLFh-8S$6eRwxEEp!GLWz|Zb zm4^dUbnMhqnd|uaiLnPh@&d+lCd`88@cA#Lv9uupfMLU>*vw7rKtGrHM2g)Vm~QXC z$o}ya(3&@xL?xyI?ZGy02^+j$s3N$kM9P5HMB(B^Up(&9)t{*20Ch&G%KMGyfVReV`;?st(9X^fEzGt8y-VfvDY{D4m`Q=Pd#q$t0oK!06hv`NUbg zUk&&2EI*wAhOK)X->l-}Z~1-1Cs8Y4vLPidTETfsz}<~Qi9SGk{c9HMn{c4tno3lE z)Emd|K(S(5E?{5?nLiboh{v7xcr6=`?~_{3nQjUkzqiZyoe9NpKgDsQ|6Uxw?Tfh1 zvf=nGf3C>Q1Q^B&uId@$xWV!2M4++}Ff_c5U$XPV@!M$R-EIS%55+i@o4o>>wN|IK z^L;peTZcyM>c{c>#0Ke`YdC(#AEVoH1?Wg$2#C$c;P@RDCCq}4?}U-#cSFN~Q7gO4 zzX6P=({4@l(c>~$FV?pl$8Tu^iD%U~etR4~m~{demu`J} z&Wg{YC-iQGFYtI;Z;>X`THyG5L)~TZ8IIp~vOncN#POTwgq8&@j^AVlR2^`fPQO|% zt}=+@_x;@CL0@tF_AYG`j>7RfMM$Pg8n-VYY^@{0@tfm;j;#Vd{w}DKnXTdYy>Crd z2_NUB_goop-pmk4m`yJ67RT?>MLC)#9KR{k9-gSg@tf4jss`t$PRFl*u9N`U)z22o z5-vFYrE9Y`5a9UzATfe54#)38l3?2a9KXG*KHA{%*uO7VSsB6cTgl+cdt4e7JmKn* z#qs+?waPwu|M@q1^|jl?cI?vsP_b^Q4Jbl$ml3FqIvt2u)t#yEbLf8eFR z_6@)FcHsLw9KQ*O4=a7cZ|dWPao_OUIq-|kH~d!jRK$7DjZ4o+&fxZ?d$E8g_qK}hZ^7To8v+(3y$BBpZxo;-E7ih!BgC zZ1wjrO1Z2BwAO`n4>Xy9cIP=)8m~BfUvg9NlrYZQ%v;1fnHiG}v6D8H}&1n$mTaM>hgP?)d_pO>sb1tACi~wLLH#TA{n( zg70s`hlF{Ii-9qHxmv*(=fTxij+5=dfG)xIkk6$spyNJ~Zm{br&`W#wJ(<4+^j+0g zJ72cr{TZXacs>xAJ`ld0ujK|t%BHoDL7bN-w6P_mKTcCfOo3FCRWH?qsKpJj3^eBPZ9i z_8J3S{G0e~92P*w<{NCQYLD|Cg+^X(R-k`+=j1{h0Wh9D6=uD%37EQN#g(SYp~J`)a4h-BA4lb zws)U{1aBYE5qREp4952j0Rkc+ydQv(ZO=4o^A?<6STMJazQ)({51&N0;^V04{Z!=z zJz#KWi>^OcumLEG7g5$Ss=GzTwIDStD zMXAu@`)`($$B(|m_uo5)b#BSvar?O`Xv^XF-5+Z)6@}yX%A>&;IUK(uecW%K#qm4L zOT@%IeyCxgN)$#rJRw??PJve^9j;*@!3dipyjWhN*f3sjt zzg6Ilfib8yzpKg587l*fl&CVm@egKZ&nM`V5@#jljQYCUXa2!*($d{;(<9Eq9 zPKTE`{+87aiKaSs&`7uQJx|1H@Jn&Kq$L~jz*Qs&*yL83j zh;}HxzOE@*WjI{5?nU1Z;kYuPe)!#G^w3@%}bYd-Wg)$GL}#@5s||{NA*1 z<<>Bc-xV@N4Qx1m(^&Gpal-MN;$9$WG>+e9?Q2bA`2L&V>ei~)IR0f}t|yXl{Ei&b z+@XNucj?BMmJA%fujG@aUBK6|CHpOV$8r2toosr3702&VD%pdRIDW4%JvfT<^~Ofb z!U?y#$p5msY6g$nd`XQx7oS&dZdEHdF7+ z-vJ&t|H1KFcW9CK8-91cJiG7>ze69?{cI@xv!V3QhSEP9%KU67^RuDMy5T?j!*n(M{U)k^`k!Jg9PK>J zZU51~%Ki0m`i6g>zsjMmIjNvb<(;T=Zs_1`p)aUG>{5d4<=v>$O5%a;&JZ-3HyAzK zwFkY3-6*O1j2#WW&Tr$zn5k1SifP0;gaa+MU}48Pj9_eh`dp)^1*T-ZOp?9)es zEpe&TjSi^iw$SGZV>*=Y5G6%m$&4CqsBzKw*PxM{EvNJYwxT{B0pTo11JrX`8*@LT ziaM)SnRo<5&@;-<;#H3Mzxr>y|LuB!`n(oX1Kj3NrKdOU!Qj_=tJce*MHekKIt+di{gUp&I32g8GYi%`RRKLBpH3?@pV)gT7hg4Mn4lzXXn6XzVR? z>Ar#nbKzQYi3%FrkaJ@>lN@#3O@FcJ%L7!wkz(6H$bz1&*Z18|2j?<@#rAsC`0fNF zUgfWLd=d@4rJfDrGehw4UX_*VVc!qOTV!mVzPUjH@jHg)WupE z@)_lo)9yKNT|{>t<>|1-}G-1HEW{?Ns!97WFcHQ+RFo;Xw;}Q4^FO+NeJ`D1 zzc@yj>;2Qc`pbYo<BQqc+9=uHRq%Ut90T?{ReVF_2wVia~w!-zuQ_ zFYRyq?Y;h=*86|l&bYX9`xWJ+zsLRG=J)$N3jW)B{crPIwmxsy=i5)u!~Rz9f9Yqv z9P(~-*kAfg{=chz|GO8mFnfFU0O#`mbiIFFe_j8x*Iyr}|H4`ob#xA?s{fVw>i_3! zR5dVERMPqDHU9s5jbzIE#Z=YQRFw@4{_NA^Q+8tJ78d5God5cb@Bi)FsJVlO`3NqYaM#`hl~)nsK_7wj*f%fRcjiQU{thdf48f ztAgfFNaWXdg`@d1p0*?`vS{9cg*)rK@n3QO759Hc-1FDllv*y-qIqAJ9cBwOX#RrK zxU~e{E{A+G%CrVFZ%JK97<&}WAKSw4F+&&48xSj7@pz(nwV}bo$HLIOtX%wx*&#G9 zIF;w96NBb?xI~x*YVdX!aK6vnhUT}5UzT+4M)R~cD*Z+I&^#I0*8*-IH1{R#Xs$K> zKBhcQ@oq6gb3I{YJbsI4u7t`sPqzcj#d;=?9=?y}f~5>39+W zk|H#xwg1|<4;vbd2 zWDEZ8^6){`pIm;|{m$igkfW#9ff&KvtbTYlTbO4NMP)arr8ya*r4!Icmw&S02XYh{(;OJ0ZzQ=FV`o0xmE6 zD<_!ZGVF0mt2r*;=Ns%bh9qZgbxj5XToy(dp612ns;-#iQ%G{T-dM_S1WB$8v}(2G zxD4%|6XL{W8~ZknmyqOU)IMeX9G3&SblioIbpG@c_1mX$SsoU>QxKBeO>;9XgK#-G z46zK5UWBDg+Rx;Aq3VCe;&)U=d|XYHVq9WZgeG6r<2=sBUJ z0Cd_}Hy0%ngU+y_@EJjN(3y4+Hp=G@ii`Yy^%f3so=5pVHf~Q7lf$~! z6S#EVu4Ov(cjW(@&mH0{l2|tF1BaB43q*b&z#*fL^kqZ~IOHp)nqVT}P%2n_pq?2V zYBUMS7L>uEnft>OTO>GiUGN4aH*gpXaXf>N&1V;~Nokshw;CO}CRx`5&Y&{4{Hx_1s?UjB% z^C!>2_NI!{#S^!{_MY)87wt~4jqk`S9>?!9@46d4;{w}K+oXsUA+T-gX_ZcM0NX*v z^JKz!xyhJVuD5r=_MI?0Pka&Bu5l_;^9h0-;nT*FukXNa^W%hVYhhqVw;IZKIs@!D zHWzr^{t9-2XBZWqg@TdYdih~>>RXj=V#;h z-mz8VT0~%XTkYNh*=JxEeIewln;Y0=py(eQ(qPNh}HU<`;EoL&ifZ3kldn%IfN zSP(OttfME{4`NmXp;uFHftW+=R>@2j5OXZ~+7#&nVwXKuKdaY(SU?M#sb?OD-QsnM z%zXl4fgWmG%}#6~)6@=Rhp(-R*PR%RnsmxbnqMtRPk{ z99NKF0Als}@2|6ZfmrRao5NXnJ9-Y4Z9a?N5BZVSHAsQjq*sV~#93Tcyt(!XZ{Lbz z;1h9P5GOLImE)5Kaq@Bgw%lf1cDs)kPJsCK(+ah&R3N_F&YS4Te&7~-lDdVL7r5bl z4Z)U;z^!)O|LA91;MRQ=?wA@6+*%u@$8r9_eQfpC`#l`MZQg%X;7BWQ+gW%+j^YE(htR07HV zJs|uAc!b)$i+eTzkL<$HWe1)A)VR@@{)B~(2I#p|N16lX~_EXzU>qW6xAB8jER2 zuQ)7@#u8mt4a6>>vE&%D1+#WEmPvZR_Rf7YmLHZfNxcP)l@GTO zpBGG!HKDNqB~vfwVl*~7mpvTBfW{{2GZhE~(AYvfk2AR^8e8?1Zs@v*#y3%G(Hx#Y znLij*YVFeWc33)U+m8M}Wju}& H)^7m-jQS>k diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index 4e394d686585eb2fa169b8f332b34879f004c686..ecd796549e26397908971796dcc3a529af22a6a9 100644 GIT binary patch delta 5068 zcmai$XEfZ4ySAefEeShB3DIj1LZVGX5Te_9O9-MTdjAnZf=w79>L5l7M(<|S=tl31 z-os$bC^O?^{onVjv-bIN*0r8{UF%uThv(y6Ct5E0l^v)lTW|ijK2Xiv>u0~6x}}<; zt;L+ktY$v#?CE*v(ciYTseI_;@v&HKDVM_VEGhqe_%9FZT* z(_P|o&$yd>sxc~0GTAAM*D&yR#K{G>1P3###rc9qNCvqO7jRTa&FOslTvO9JA(_ut z%i2;NIs(uUOb3RLI{0z2@zfD^{*s@Olx|7Q1;bAq?#;rs zi}6~c)>M9{Um@#7FN|KNVp%>zawtV6`-$_iqno$0b`8^VLBX7geP`kW$(H*aZDF;+ zGGr&%$mq=`oXlrCjps0>wI(q$xxt|@Mzso>18&Y?{!}~BsnqWrMiabJzv-UuzxW`^ z@ImQkNwa{yahfam840f-=Vz5F+QPBqyG0d+g5#LQC_8HNjY-^QTx_8nwpf?Gd7r0Q z{=pzPmPC}%own@V7bSaevY&u~us;R3n?wjGOVQ-nQdaQaSefkXTT~Xo`@ioAJs;+Q z(qlKRdi+>QQa8h4UxRF3264*8(twWyIkn?C)6Lx2Dn&gcmHpl-+Eqd`eDa^h=wvz+ zPjV&xz!9d0%rQs3rnoi$+B6n_jV^HIkES5mLj-o@_z(^y8yZjtXH(+k%f{?#LLA%?J_l zc5~e~i_;xboXnj1OGR6f`VXM(U5S=7ZWCz_6&Ke79Ap3sfsZMRpKcx~pq z7b}nWQeTx)%qO84YU#*7h)HGn5#KpEB_ zgS@P6#nj!oLbLr9jXS`B^4!S1;;a#R5}&FcGo7#cQQd}f`dRsHG%lI3w@9-<@*xsY ze&)hUhZAkb=Z9%)yQ+A+caPtq1Trns{h*!kG`&dgDSLxLR^|GIsWx)^Zp(>=ouA6; zk=;~`oStktD|M&m+tslx;JXU{+<@!hkPvKW!EAHbJc{{rDwxAVZr8Xje@iyQZ|0KG z+-~$i5HG?CUKHd4ni&$wkh0;8-ro?nn|Sb6_0su(V*as(e7nlRycu{YK}rQ3;+gxd zzMyvXp=>^V#`~=hGk*OQFNycJo{%q6v{F2wYvl}}LhG)0tXQ|V01?6A!4Wu890`sL zMA^!C{(;-mg7F3yIq?yisXZo~kqkt$p`*JMAlrVskM}EA1fF`spzp`mUhdO}jvOaX zHfZ{ozA`>jz7crmgl{AAYv6=3`NgdbjR&Bcfj3W>H=O$>zA~zA>0D87@P2jTM)p0s z4`*93*hzd2FbDZuoB(2&no;C)5N#;KB?so|j`t{11w=*Q!2A(a5FpnXd*`PmS2$`*&E>U9{092wLXdMf8a_K zF#nGrZiJEGNzWiP^f&Ug;s(*vH8TJ=mrVy zp~(Liq$oCWp8Kv6w~pWJh+BT1sSf{)y5!`>o7s|dLeAvBUbQi=+{DA$umA4=k5Mv# z7bt1|Ogb4-i5vWknimk#fBm`K64Owb?O-iziJ7Z7RTI9gYm%)mFXHxhJ=zXZkh-E4}aWTmf z(~|=GmXM(?elG9S8&L+))(pu$y*{6L3OaBR)6abtK}vCxS?K=@{yIh&WIbZyQeRP3 zR`(4C5|2*=4WyOqRe{I8vp!`jhZW8SqDV=|O3i5j(qeNSZRrfZELOI&68ae@y zGBZfC8@`+kxg=`W4e$j*X#mU!!jPb|uu|e`o$7wqXvAtk-o-?GV$5n-=3||_FgSFx zq$nrv+KPe6z<~~`#UTu@pY?7x;fO&)Vvk0Q-C*s|p)8%}#*Uq}s>9P7%$amtl{!eF z!bLy__t}P9Ou)j)@gmXAj|IM% zR5ZTa)epEF=yD?K7Pgz4__RxFxG!jRx2ME*Zs6!@I}Pp7dbb5sL)wyugAXY7A*g_T z?85lsBg0Fns45P{ANTmPi>=(cyW`7Q9e_>>4LR|L7-Re*O#(khN`@1g&4;Agt!uQD zp+H5a2v((wzg|lWdmV2#;iBb0daN5NSEx z*dcz*-nxhLS!$Ga60YCJnP(V`SRN#FW@@H5Vy_sl1fP9)I!0yHcwk-|)-Wo_Vupy$A#Ld}K?Ma^fI^Z?u(VcU4=GOET>rSdVy|A~hu@#AkrlfNt zmp2WQ@VkDzOqT@hzLMAxg=}^_@YQ)U-ozLqHGgn_Y)E9-)h52eE=5sQDGX{oZ!Cex z6l7PkJoeGa=2sj3;9kB`B@e-In3NJamag2TyxdLPoAY#B^bwRcA-|2UcRJDZ)~Hw8 zx<;)QtHPV8CiM&dlOh@M9fJv>kqiN@5A>VbI=1@nSf1E7cfWtEhVYaC0G_ddH@DRr zFP{cX6zg1xSuj}=PDku~xf^$Ga_|;HpvDEy+281%I7A?#m9mgIc!sTqNaDq(g-TF?$b+_%i4Jj3Hn?nE$#;Sa)`&&+_9k*gS(e5~gx&S) zZ;^!?Ft-@yE~8Fin=zDUcoGpBUhPq!EmJ zD*u^xinOX}pSRRiwr9D^QM~k!lh=j2ci-P%^5I5OHzd5x$l@PhLwt&UGbu7~3N_Rr zB3-(Nx094tmR(6q-TWl?vG-!_{a0wuYi7=zYm3X5xwe<|*L>#Y1jAe;h_(BaReeFw zuaiMBY*_?^OMxKgR;XJp_eoApnJ$_#@QX%a4Ey7yiE|PV(12Jq@Wnt0vKY2qe;S_@ z%C!C~j+!waTA`B;Dw>11ue>6#@dvs{z zZEK{S^7daOtt&1+XW!6}IOR=9>sZ%V^Ge^p7#qln`H>6eQkJ6sc>p2-K9|nwZefw9 zXY7ln0elBrU=?~UPCCo-X*ww1j|J&?QV~^XnokO3R71BA|Ol<+62r{gd{^Ak9ER0Gf z;F(yQ=fn7u9_bP;vOK0kgQ65v57hE!1M7nHs*=`@qK`A|((56n!Va@NxU*=^-Tgi& zZHYs_r9G-_E!j#l{-oDiokX$wGv??y1Cc8B zbiv&yc#6sJWm3WeMY%$=2CajTi<~{-<%d*ThsI!MMs|=TuK+chpUCaI!_NPhjA`aK z{)mMZXADA$Bg6c3n0i>p+*0Ed`D?j+zpV!%exXkambzI(H%ts~x(iM7IckEt7@tta zKHWMy@Bx$DVg@L`hvL>EoI<)qi~Obb89wZMp{2X7*?_UVMTKocYYak^m37@Z2HOUR zxC(1!IGzfzSG1idy880H66C;p<44$Kj)L+|(b2_J!^47A(QWtx=qhUQ!jl-9#f1T! zgsz5>VUvv40*AOyOGlNMw+JGyQX>k06P`1J+^$)G1o&pm^$kB1MItPrRplzBc*xZF z$;lLW213X=N<)-ikt}x*MF$}34X7ZmCm*>mT^ixPB`-AL*4oa)2XQ)NuCW2?(2KaX6>Vw=MguV(uq+*Mu^?BQ=kTTeNB z2p&K`ms3&HmFnrc^91g!e^5pr=Vq1I7Pp1erS9gA!-d!?jqH(75rdlFPux(pK};>jtK z{^fc5IHPYf>}5FZ#J1eok%(h+Y+T@i5e5j=2IXY32NwL(!M*VE?OcI&4aoLyw%;7| z)#94_mF%6m{Eo>I>6i;$8h7_dcU^e7gZv>|{S5y)zfg+IdN%P;$g$sUv7ui0Radii zLzS7e2~*NYEq?LWT1(a#R#Mb#PSKx0c?%R`<^-S8byBCIH`jiLPuAV9j z1INjpyuh*hO7NfZh<2u#r8uBqxIq=6+HT!$8Q#^d5Z)5uPlh7}QFhBF6mgLbv`ek< z-Gcqf$srjbNhH%F)gy~*U!g+31&&y3`Fsi8 znCBwB{?l*=>W3e~Q^jY=|Qd{<^P@Zk)#yForDjaB$CRlS0DPtF#kQ}y5n2UEc1BU(?$cfzw1lZW_GRV+Ump9 z=26J9ui*)uaZg754gMlc`zom$x*0YjV3XcA>@Rp{W<9{T0a!g+jNP)1VTNTXx|RR5 z?n%Alr9rMxutnu17MM+xl|X!tHp$(R#)rp`;1NOtwgZip_?%wVi@`yOY-Pm4xF=)IJEN?N_e&V+~K zF~^g8E;++ufk3}hQ)y%UukE))*Z9vA-@dU%_DiV?(mRWkH+p5R&+)7AUo?-0ASOA7 z_ygx|$$JmilyD=mxw*MzJ*%3W(qR{4fl!yds+J0wSXp6#!)7BIRJM=BDnjYISCpK~ zci&eAUF_m_?8b!S$MLc;w$w>c9^!LbOx>R;HE9k^hk?+7zj;dcqs;GnyzrD}?tgN| zd+N>388f=3Z$$ZEX1prcA zb=i*Qi1PsWc4Bf@f%BTl>_Y4NZpgt-&_|hSr`Zw5@o}#&%gAVNO}Rngrb%gs)TGCe z!gHOeK#{0SWNqdH+?e*mLe>KQoS^2;?uPE_sS+-kojxxyu{huEGZ1d{vF;1_jT`?3 D+hI~) delta 5092 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 KYO~fONB#p?t$Q^9 diff --git a/tests/test_data/Ex5_output.rds b/tests/test_data/Ex5_output.rds index aca6cac4020bbcaa883e925cc49bdb2292dcd64c..bf88b69cd56664cd90386ef6bc83805bf5961e20 100644 GIT binary patch literal 10152 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 cg##wP$@cYG=o8I+&!|4(7JM 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∨$JKIMad%6ZRPpR{(fbhC5(dwy<5|F6e+iN*eHId8-5+X?@X|B?TZ z|B?S6Nl0w+6_Ik@!X_-;sXLeKLL)8g{d+)=VlNO7jDdOU51O9vvB z*tfVGO{`FqgcKKTxw;A?TnxsZQQ$pli| zbTqY?4&t&f-tdGVE|>R7$}~fYdvHUkurZ{ZWn$2%DZ}N>-WjnSxNP0Vw*4KXco?@$ z*uTc*%Y6i%LP$AxB3(251TM>>6Zk|S#nU1;>*Nhw_PvE9CP?u*7#}lz5tpe?mZbJU z%K5_vJJ{)PIasl>r5heO5s|&d{r`89I(?p89HZT!^SBUI+RLmo(C1K(;|{NfD9 z`piM)8m&R560R?D%izW;T~N6@5mm-K0V? z;rK&PsU?UlTi|-zmpbg*pMgqW-!vny>c6eu-baoY?Xw@jr5mTVMgQNB|9{?hzHgJl zPOb;eX`eolTv-I?Cp{GJ?mY+ReC3QIm;^YNiWcv$+XBwjTEvteRl&K5XK`X{95{EL z_X8CVaPEud!DRfwdAP(>=*BEKPxNSoJt+X^S+W#|$w%Nk7e2&M>I%-EdyRD@m%;ga z7l*RNZg3$xK6z*R0Ju;ooNK&F0xpDQ$Dzwq;Ij2xLRy(QxbW?Z4%L(a7vYHP;2S*P zBK1;o@RSX>C>G~hy{NTr-REeo#CEOcstvO*GSL= zTpa7Qn=CGXix4KUuQ*m8ouHNhf;@>dtb%Cp|QI~Hq#j#`k2pAisSXh6O*{7qQGHZd>e0a z5jcF?p-Lwt3Xa6h4J9k{;JE3*L$+_x;7C}$DRklqIBwrm;1j+Aj-s~A%CByMqXIBY za|VN>cJfZLEmy(OWF$ZM?sagq){$&InhuW6I^p>___beB<*+shIEHJ)#LB+{$At5d zD;^%;_yi@)B}9T_8AH1mDQ>sfg7&po5IFYn`ATf)2gga34N1M(;P{Qae7=kXB;~Re z&wDh3q-H)nCA~06>Q>mb_a%bl!4qF^j5&hj0WIv_7RG2qN z-g7w-zjFX2AE+rCWuFGg`}5(aIiG=K?orhXpE*FXO#FVq!-F7McVHoy!v`d5%tPL0 zT)ezN)V(-4%R3L?FK2TVd2)? zCR}!T4i}Dq6z7ROHD_r+O2E;NBwZhPMAI{91qFcz7OFSUk^+xLaFE$|2jJN^ddnpv z8F;iwWruP8!DGH0x}dlnc&vLbi3LH6nM$MA3noF4!m@oKe}0-0q>UmY|3X=fS1Kve!ut+;1z50EAA!&Uipt^Uz~OS zUHwKw2S#iz%6vsbrcGYoxm3}RB{%W7s4p6_73yVr{Rj;?P{vi2%%dTXt9_eyw4)(k z>fU<=eP}31;*o`{IT{LcJ#OIi5Dnd7VeX#DMMH`8kIRju(9k3I<%5#v(NJolgd1LuLJm_XF|v)eodz>pP;Mme&O%l#OWUrHX}*TQM3MoXL56 zg9#0dGiL4CAcBTI*73Sgd846af7$xZ3uu^}PMh9n1PxQ)<*cb`L&IzY8^W`9Xn2R$ zGsfITG%S4m{Lw3dXjrmkS{gp0VZ{CE+m9qPtX2CS^I!UdXLSsJ@~n>GZ#=7`w^4OG zYwcp8V(DV7>Eh__aN^h3TmN$7uO7H^z3i_a;H^H@JG1)lU%&jf z++RH?{7d0)9~Ayl_WK8gzZCxdLE$fje{F|mz0lsy&CS~7ud3SHowfeS`d Date: Thu, 21 Jul 2022 10:40:31 -0400 Subject: [PATCH 063/238] Minimal function documentation for C-level weather functionality --- src/rSW_Weather.c | 64 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 6be9b706..895abf43 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -60,6 +60,13 @@ static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hi /* Global Function Definitions */ /* --------------------------------------------------- */ +/** + @brief Copy weather data for `year` from `rSOILWAT2` to `SOILWAT2` + + Called by SOILWAT2's `SW_WTH_new_year()`. + + @note This function is no longer used with `feature_read_weather` +*/ Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist) { int i = 0; Bool has_weather = FALSE; @@ -82,6 +89,13 @@ Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist) { return has_weather; } + +/** + @brief Copy weather setup from `SOILWAT2` `SW_WEATHER` + to `rSOILWAT2` S4 `swWeather` + + Called by `onGetInputDataFromFiles()`. +*/ SEXP onGet_SW_WTH() { int i; const int nitems = 6; @@ -148,6 +162,13 @@ SEXP onGet_SW_WTH() { return SW_WTH; } + +/** + @brief Copy weather setup from `rSOILWAT2` S4 `swWeather` + to `SOILWAT2` `SW_WEATHER` + + Called by `rSW_CTL_obtain_inputs()` if `from_files` is `FALSE`. +*/ void onSet_SW_WTH_setup(SEXP SW_WTH) { int i, tmp; SW_WEATHER *w = &SW_Weather; @@ -208,6 +229,13 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { UNPROTECT(7); } + +/** + @brief Copy all weather data from `SOILWAT2` data structure + to `rSOILWAT2` list of `swWeatherData` + + Called by `onGetInputDataFromFiles()` +*/ SEXP onGet_WTH_DATA(void) { TimeInt year; SEXP WTH_DATA, WTH_DATA_names; @@ -234,6 +262,13 @@ SEXP onGet_WTH_DATA(void) { return WTH_DATA; } + +/** + @brief Copy weather data for `year` from `SOILWAT2` data structure + to `rSOILWAT2` `swWeatherData` + + Called by `onGet_WTH_DATA_YEAR()` +*/ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { int i,days; const int nitems = 4; @@ -277,6 +312,15 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { return WeatherData; } + +/** + @brief Copy weather data for `year` from `rSOILWAT2` `p_WTH_DATA` to + `SOILWAT2` data structure + + Called by `onSet_WTH_DATA_YEAR()` + + @note This function is no longer used with `feature_read_weather` +*/ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { int lineno = 0, i, j, days; Bool has_values = FALSE; @@ -334,21 +378,31 @@ Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { return has_values; } + +/** + @brief Copy all weather data from `rSOILWAT2` list of `swWeatherData` to + `SOILWAT2` `allHist` + + @note However, currently, it creates `allHist` and + reads all data from files instead. + + Called by `rSW_CTL_obtain_inputs()` if `from_files` is `FALSE`. +*/ void onSet_SW_WTH_read() { int year; - + SW_WEATHER *w = &SW_Weather; SW_MODEL *m = &SW_Model; - + w->n_years = m->endyr - m->startyr + 1; - + w->allHist = (SW_WEATHER_HIST **)malloc(sizeof(SW_WEATHER_HIST *) * w->n_years); - + for(year = 0; year < w->n_years; year++) { w->allHist[year] = (SW_WEATHER_HIST *)malloc(sizeof(SW_WEATHER_HIST)); } - + readAllWeather(w->allHist, w->yr.first, w->n_years); } From ac71e42719c4e9dad8ebf8f0333b089c571db833 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 10:45:38 -0400 Subject: [PATCH 064/238] Remove obsolete `onSet_WTH_DATA_YEAR()` and `onSet_WTH_DATA()` - `SOILWAT2` no longer deals with weather data one year at time, instead it gained `allHist` that contains weather data from all years -> there is no longer a need to copy weather data for one year at a time from `rSOILWAT2` to `SOILWAT2` data structures --- src/rSW_Weather.c | 95 ----------------------------------------------- src/rSW_Weather.h | 1 - 2 files changed, 96 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 895abf43..da6ae0e4 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -52,7 +52,6 @@ static char *cSW_WTH_names[] = { /* --------------------------------------------------- */ static SEXP onGet_WTH_DATA_YEAR(TimeInt year); -static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist); @@ -60,35 +59,6 @@ static Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hi /* Global Function Definitions */ /* --------------------------------------------------- */ -/** - @brief Copy weather data for `year` from `rSOILWAT2` to `SOILWAT2` - - Called by SOILWAT2's `SW_WTH_new_year()`. - - @note This function is no longer used with `feature_read_weather` -*/ -Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist) { - int i = 0; - Bool has_weather = FALSE; - - if (bWeatherList) { - for (i = 0; i < LENGTH(WeatherList); i++) { - if (year == *INTEGER(GET_SLOT(VECTOR_ELT(WeatherList, i), install("year")))) { - has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(WeatherList, i), install("data")), year, hist); - } - } - - } else { - for (i = 0; i < LENGTH(GET_SLOT(InputData, install("weatherHistory"))); i++) { - if (year == *INTEGER(GET_SLOT(VECTOR_ELT(GET_SLOT(InputData, install("weatherHistory")), i), install("year")))) { - has_weather = onSet_WTH_DATA(GET_SLOT(VECTOR_ELT(GET_SLOT(InputData, install("weatherHistory")), i), install("data")), year, hist); - } - } - } - - return has_weather; -} - /** @brief Copy weather setup from `SOILWAT2` `SW_WEATHER` @@ -313,71 +283,6 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { } -/** - @brief Copy weather data for `year` from `rSOILWAT2` `p_WTH_DATA` to - `SOILWAT2` data structure - - Called by `onSet_WTH_DATA_YEAR()` - - @note This function is no longer used with `feature_read_weather` -*/ -Bool onSet_WTH_DATA(SEXP WTH_DATA_YEAR, TimeInt year, SW_WEATHER_HIST *hist) { - int lineno = 0, i, j, days; - Bool has_values = FALSE; - RealD *p_WTH_DATA; - TimeInt doy; - - if (isnull(WTH_DATA_YEAR)) { - return FALSE; // no weather data for this year --> use weather generator - } - - days = Time_get_lastdoy_y(year); - - if (nrows(WTH_DATA_YEAR) != days || ncols(WTH_DATA_YEAR) != 4) { - LogError(logfp, LOGFATAL, "weath.%4d : Wrong number of days or columns in data. Expected rows %d had %d. Expected columns 4 had %d.", year, days,nrows(WTH_DATA_YEAR),ncols(WTH_DATA_YEAR)); - return FALSE; - } - - p_WTH_DATA = REAL(WTH_DATA_YEAR); - _clear_hist_weather(hist); - - for (i = 0; i < days; i++) { - doy = p_WTH_DATA[i + days * 0]; - if (doy < 1 || doy > days) { - LogError(logfp, LOGFATAL, "weath.%4d : Day of year out of range, line %d.", year, lineno); - } - - /* --- Make the assignments ---- */ - doy--; - - /* Reassign if invalid values are found. The values are - * either valid or SW_MISSING. */ - j = i + days * 1; - if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - hist->temp_max[doy] = SW_MISSING; - } else { - hist->temp_max[doy] = p_WTH_DATA[j]; - } - - j = i + days * 2; - if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - hist->temp_min[doy] = SW_MISSING; - } else { - hist->temp_min[doy] = p_WTH_DATA[j]; - } - - j = i + days * 3; - if (missing(p_WTH_DATA[j]) || ISNA(p_WTH_DATA[j])) { - hist->ppt[doy] = SW_MISSING; - } else { - hist->ppt[doy] = p_WTH_DATA[j]; - has_values = TRUE; - } - } /* end of input lines */ - - return has_values; -} - /** @brief Copy all weather data from `rSOILWAT2` list of `swWeatherData` to diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index 4c70f796..0e78e49b 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -10,4 +10,3 @@ SEXP onGet_SW_WTH(void); void onSet_SW_WTH_setup(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); void onSet_SW_WTH_read(); -Bool onSet_WTH_DATA_YEAR(TimeInt year, SW_WEATHER_HIST *hist); From 989ccb056c4c6b910c08469222fd316777654233 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 10:47:45 -0400 Subject: [PATCH 065/238] Rename `onGet_SW_WTH()` to `onGet_SW_WTH_setup()` - clarify that this function deals with the weather "setup" (and not weather data) --- src/SW_R_lib.c | 2 +- src/rSW_Weather.c | 2 +- src/rSW_Weather.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 5dc1b37e..7ea12848 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -167,7 +167,7 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { if (debug) swprintf(" > 'model'"); #endif - SET_SLOT(SW_DataList, install("weather"), onGet_SW_WTH()); + SET_SLOT(SW_DataList, install("weather"), onGet_SW_WTH_setup()); #ifdef RSWDEBUG if (debug) swprintf(" > 'weather-setup'"); #endif diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index da6ae0e4..9dae9f6f 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -66,7 +66,7 @@ static SEXP onGet_WTH_DATA_YEAR(TimeInt year); Called by `onGetInputDataFromFiles()`. */ -SEXP onGet_SW_WTH() { +SEXP onGet_SW_WTH_setup() { int i; const int nitems = 6; RealD *p_MonthlyValues; diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index 0e78e49b..4aa695bf 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -6,7 +6,7 @@ /* =================================================== */ /* Global Function Declarations */ /* --------------------------------------------------- */ -SEXP onGet_SW_WTH(void); +SEXP onGet_SW_WTH_setup(void); void onSet_SW_WTH_setup(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); void onSet_SW_WTH_read(); From ee154c2cf6550f02da1c218c69edac6bb02425ec Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 11:44:42 -0400 Subject: [PATCH 066/238] Remove obsolete variable from `onGet_WTH_DATA()` - `has_weather` is no longer used --- src/rSW_Weather.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 9dae9f6f..04ecfc33 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -209,7 +209,6 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { SEXP onGet_WTH_DATA(void) { TimeInt year; SEXP WTH_DATA, WTH_DATA_names; - Bool has_weather = FALSE; char cYear[5]; int n_yrs, i; From e6d663465c73bb92449e683892292546298288a1 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 11:45:35 -0400 Subject: [PATCH 067/238] Update debug statements for `rSW_CTL_obtain_inputs()` - add debug statements for `onSet_SW_WTH_read()` equivalent to the other calls --- src/rSW_Control.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rSW_Control.c b/src/rSW_Control.c index f2082ffa..cd09cd8f 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -95,8 +95,11 @@ void rSW_CTL_obtain_inputs(Bool from_files) { if (debug) swprintf(" > 'mwgen'"); #endif } - + onSet_SW_WTH_read(); + #ifdef RSWDEBUG + if (debug) swprintf(" > 'weather-history'"); + #endif onSet_SW_VPD(GET_SLOT(InputData, install("prod"))); #ifdef RSWDEBUG From 30eb6d0935dfa9cb9ef4b65bc45ff2dbba6f3575 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 11:46:25 -0400 Subject: [PATCH 068/238] Fix typo in documentation of `onGet_WTH_DATA_YEAR()` - `onGet_WTH_DATA_YEAR()` is called by `onGet_WTH_DATA()` --- src/rSW_Weather.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 04ecfc33..79fc8497 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -236,7 +236,7 @@ SEXP onGet_WTH_DATA(void) { @brief Copy weather data for `year` from `SOILWAT2` data structure to `rSOILWAT2` `swWeatherData` - Called by `onGet_WTH_DATA_YEAR()` + Called by `onGet_WTH_DATA()` */ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { int i,days; From 2f67b2e4531931d636f6316aa56dac72986b1d39 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 21 Jul 2022 13:51:01 -0400 Subject: [PATCH 069/238] Rename `onSet_SW_WTH_read()` to `onSet_WTH_DATA()` - clarify that function is the mirror of `onGet_WTH_DATA()` and copies (not reads) weather data to `SOILWAT2` --- src/rSW_Control.c | 2 +- src/rSW_Weather.c | 2 +- src/rSW_Weather.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rSW_Control.c b/src/rSW_Control.c index cd09cd8f..1c47a303 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -96,7 +96,7 @@ void rSW_CTL_obtain_inputs(Bool from_files) { #endif } - onSet_SW_WTH_read(); + onSet_WTH_DATA(); #ifdef RSWDEBUG if (debug) swprintf(" > 'weather-history'"); #endif diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 79fc8497..97da9235 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -292,7 +292,7 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { Called by `rSW_CTL_obtain_inputs()` if `from_files` is `FALSE`. */ -void onSet_SW_WTH_read() { +void onSet_WTH_DATA(void) { int year; diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index 4aa695bf..ec2b90bc 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -9,4 +9,4 @@ SEXP onGet_SW_WTH_setup(void); void onSet_SW_WTH_setup(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); -void onSet_SW_WTH_read(); +void onSet_WTH_DATA(void); From b77dbf313902d2646cf58e2e0145f57b9c9fd308 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 22 Jul 2022 08:59:30 -0400 Subject: [PATCH 070/238] Updated SOILWAT2 submodule on branch feature_read_weather - new functions including `allocateAllWeather()`, `imputeMissingWeather()`, and `scaleAllWeather()` - updated functionality of `readAllWeather()` --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 184e6572..148a7cab 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 184e6572c4ee2bc988a518f0597f50079a614b1c +Subproject commit 148a7caba59905bd25efe7c13a2e6ccb26864446 From 2c64be51116b32584d085f572e68dcc85954547e Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 22 Jul 2022 09:01:53 -0400 Subject: [PATCH 071/238] `onSet_WTH_DATA()` copies now all weather data from rSOILWAT2 to SOILWAT2 - previously, the code called `readAllWeather()` which reads weather values from disk; however, this was incorrect behavior - `onSet_WTH_DATA()` (previously, `onSet_SW_WTH_read()`) has now equivalent functionality to `SW_WTH_read()`with the difference that SOILWAT2 `allHist` is filled with values that are copied from `rSOILWAT2` list of `swWeatherData` instead of being read from files on disk. --- src/rSW_Weather.c | 185 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 171 insertions(+), 14 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 97da9235..b7da7c9c 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -52,7 +52,12 @@ static char *cSW_WTH_names[] = { /* --------------------------------------------------- */ static SEXP onGet_WTH_DATA_YEAR(TimeInt year); - +static void rSW2_passAllWeather( + SEXP listAllW, + SW_WEATHER_HIST **allHist, + int startYear, + unsigned int n_years +); /* =================================================== */ @@ -284,29 +289,181 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { /** - @brief Copy all weather data from `rSOILWAT2` list of `swWeatherData` to - `SOILWAT2` `allHist` + @brief Move all weather data from `rSOILWAT2` to `SOILWAT2`, impute + missing values (weather generator), and apply scaling parameters + + Equivalent functionality to `SW_WTH_read()`with the difference that + `SOILWAT2` `allHist` is filled with values that are + copied from `rSOILWAT2` list of `swWeatherData` + instead of being read from files on disk. - @note However, currently, it creates `allHist` and - reads all data from files instead. Called by `rSW_CTL_obtain_inputs()` if `from_files` is `FALSE`. + + @note Elements `endyr` and `startyr` of `SW_Model` must be set/updated + via `onSet_SW_MDL()` before this function is called. */ void onSet_WTH_DATA(void) { - int year; + SEXP listAllWeather; - SW_WEATHER *w = &SW_Weather; - SW_MODEL *m = &SW_Model; + // Determine which `rSOILWAT2` list of `swWeatherData` we are using + listAllWeather = bWeatherList ? + WeatherList : + GET_SLOT(InputData, install("weatherHistory")); - w->n_years = m->endyr - m->startyr + 1; - w->allHist = (SW_WEATHER_HIST **)malloc(sizeof(SW_WEATHER_HIST *) * w->n_years); + // Deallocate (previous, if any) `allHist` + // (using value of `SW_Weather.n_years` previously used to allocate) + deallocateAllWeather(); - for(year = 0; year < w->n_years; year++) { - w->allHist[year] = (SW_WEATHER_HIST *)malloc(sizeof(SW_WEATHER_HIST)); - } + // Determine required size of new `allHist` + SW_Weather.n_years = SW_Model.endyr - SW_Model.startyr + 1; + + // Allocate new `allHist` (based on current `SW_Weather.n_years`) + allocateAllWeather(); + + + // Equivalent to `readAllWeather()`: + // fill `SOILWAT2` `allHist` with values from `rSOILWAT2` + rSW2_passAllWeather( + listAllWeather, + SW_Weather.allHist, + SW_Model.startyr, + SW_Weather.n_years + ); - readAllWeather(w->allHist, w->yr.first, w->n_years); + // Impute missing values + imputeMissingWeather( + SW_Weather.allHist, + SW_Model.startyr, + SW_Weather.n_years, + (Bool) SW_Weather.use_weathergenerator, + 3 // nMaxLOCF + ); + + + // Scale with monthly additive/multiplicative parameters + scaleAllWeather( + SW_Weather.allHist, + SW_Model.startyr, + SW_Weather.n_years, + SW_Weather.scale_temp_max, + SW_Weather.scale_temp_min, + SW_Weather.scale_precip + ); +} + + +static void rSW2_passAllWeather( + SEXP listAllW, + SW_WEATHER_HIST **allHist, + int startYear, + unsigned int n_years +) { + int nList, yearIndex, year, numDaysYear, day, doy, i, j; + Bool weth_found; + SEXP tmpW, yrWData; + double *p_yrWData; + + nList = LENGTH(listAllW); + + // Loop over years and move weather data to `SOILWAT2` `allHist` + for (yearIndex = 0; yearIndex < n_years; yearIndex++) { + + if (SW_Weather.use_weathergenerator_only) { + // Set values to missing for call to `imputeMissingWeather()` + _clear_hist_weather(allHist[yearIndex]); + + } else { + year = yearIndex + startYear; + + // Locate suitable year among rSOILWAT2 list of `swWeatherData` + weth_found = swFALSE; + + for (i = 0; !weth_found && i < nList; i++) { + tmpW = VECTOR_ELT(listAllW, i); + weth_found = (Bool) year == *INTEGER(GET_SLOT(tmpW, install("year"))); + } + + if (weth_found) { + yrWData = GET_SLOT(tmpW, install("data")); + weth_found = !isnull(yrWData); + } + if (weth_found) { + numDaysYear = Time_get_lastdoy_y(year); + + if (nrows(yrWData) != numDaysYear || ncols(yrWData) != 4) { + LogError( + logfp, + LOGFATAL, + "Weather data (year %d): wrong dimensions: " + "expected %d rows (had %d) and 4 columns (had %d).\n", + year, + numDaysYear, + nrows(yrWData), + ncols(yrWData) + ); + return; + } + + p_yrWData = REAL(yrWData); + + // Loop over days of current year + for (day = 0; day < numDaysYear; day++) { + + doy = p_yrWData[day + numDaysYear * 0]; + if (doy < 1 || doy > numDaysYear) { + LogError( + logfp, + LOGFATAL, + "Weather data (year %d): " + "day of year out of range (%d), expected: %d.\n", + year, + doy, + day + 1 + ); + } + + // Copy weather data to `SOILWAT2` `allHist` + + // Translate `NA` to `SW_MISSING` + j = day + numDaysYear * 1; + allHist[yearIndex]->temp_max[day] = + (R_FINITE(p_yrWData[j]) && !missing(p_yrWData[j])) ? + p_yrWData[j] : + SW_MISSING; + + j = day + numDaysYear * 2; + allHist[yearIndex]->temp_min[day] = + (R_FINITE(p_yrWData[j]) && !missing(p_yrWData[j])) ? + p_yrWData[j] : + SW_MISSING; + + j = day + numDaysYear * 3; + allHist[yearIndex]->ppt[day] = + (R_FINITE(p_yrWData[j]) && !missing(p_yrWData[j])) ? + p_yrWData[j] : + SW_MISSING; + + + // Calculate average air temperature + if ( + !missing(allHist[yearIndex]->temp_max[day]) && + !missing(allHist[yearIndex]->temp_min[day]) + ) { + allHist[yearIndex]->temp_avg[day] = ( + allHist[yearIndex]->temp_max[day] + + allHist[yearIndex]->temp_min[day] + ) / 2.; + } + } + + } else { + // Set values to missing for call to `imputeMissingWeather()` + _clear_hist_weather(allHist[yearIndex]); + } + } + } } From 65ba4960cafc24657fc41ab94d9bd6046ffb1763 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 22 Jul 2022 09:03:00 -0400 Subject: [PATCH 072/238] Update input/test objects - previous ones contained missing values for weather variables (because `onSet_WTH_DATA()` wasn't working correctly - now fixed) --- data/sw_exampleData.rda | Bin 53998 -> 54029 bytes tests/test_data/Ex1_input.rds | Bin 5545 -> 5547 bytes tests/test_data/Ex1_output.rds | Bin 10134 -> 57379 bytes tests/test_data/Ex1_weather.rds | Bin 75766 -> 75766 bytes tests/test_data/Ex2_input.rds | Bin 12849 -> 12848 bytes tests/test_data/Ex2_weather.rds | Bin 197151 -> 197319 bytes tests/test_data/Ex3_input.rds | Bin 5546 -> 5547 bytes tests/test_data/Ex3_output.rds | Bin 10134 -> 57378 bytes tests/test_data/Ex3_weather.rds | Bin 75766 -> 75766 bytes tests/test_data/Ex4_input.rds | Bin 5545 -> 5546 bytes tests/test_data/Ex4_output.rds | Bin 10134 -> 57378 bytes tests/test_data/Ex4_weather.rds | Bin 75766 -> 75766 bytes tests/test_data/Ex5_input.rds | Bin 5549 -> 5551 bytes tests/test_data/Ex5_output.rds | Bin 10152 -> 57372 bytes tests/test_data/Ex5_weather.rds | Bin 75766 -> 75766 bytes 15 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index e4eb0dcbb43faf9ce201b86bb4a6839a987e873a..01e1ea2f4bf47636500122dca45055b991faeddf 100644 GIT binary patch literal 54029 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 literal 53998 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

  2. )(kh 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

    d$E#@ZOh+Fm(L03)j(_Jz{Aw4BY=mS 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 Y+*5wI|3R(+X=+gZFP9xIpWvhg00mGN*8l(j diff --git a/tests/test_data/Ex3_input.rds b/tests/test_data/Ex3_input.rds index a3fcb242ea781a8d60e2a7eab4d0e1d53c407617..84b8ebe4e0792c46ba18e2c23d6227c2372eed33 100644 GIT binary patch delta 3644 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 OT>k?Rgy!f(z5oDlA$sEg delta 3646 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 QSVLU@1M(A!Ohmo_0N4_3*8l(j diff --git a/tests/test_data/Ex3_output.rds b/tests/test_data/Ex3_output.rds index 96785428051779f622e66634fc118f852765671f..bee7f907be5ec0f33ac80ab52a0a9358a8144359 100644 GIT binary patch literal 57378 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 literal 5545 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 YMY)2Xxz}32Px# diff --git a/tests/test_data/Ex4_output.rds b/tests/test_data/Ex4_output.rds index ecdff8a91153547d6d4c3cd30959797f231465c0..eef275c32e1f7711b1c1613d32e1fddf605832c1 100644 GIT binary patch literal 57378 zcmV(-K-|9{iwFP!000001MK|=R90J(Hx84dlB0m+qzH(TB-BPg6j6{Q2#QEjBnJ@@ z5kbU&C

    Vh{0H)dMd->FY!LT6v+WV-LVDRYE)yog~!0=?f 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 From e81ccc44167a1b17f147ef94151a766a0748e54b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:57:34 -0400 Subject: [PATCH 079/238] `dbW_generateWeather()` utilizes benefits of "all weather data" - `dbW_generateWeather()` previously was running a SOILWAT2 simulation run to generate weather data - this is no longer required because weather data are completely prepared prior to a simulation run - updated code accesses new rSOILWAT2 C function `rSW2_processAllWeather()` to provides an interface to process all weather data - `dbW_generateWeather()` gains argument "digits" (with new default 4) to properly specify rounding (previously it was implicit with 2 as default value from `dbW_dataframe_to_weatherData()` - new helper functions * `dbW_weatherData_round()` round weather data * `rSW2_processAllWeather()` C level interface to process all weather data --- NAMESPACE | 1 + R/swWeatherGenerator.R | 46 ++++++++++----------- R/sw_dbW_WeatherDatabase.R | 29 +++++++++++++ man/dbW_generateWeather.Rd | 4 ++ man/dbW_weatherData_round.Rd | 27 ++++++++++++ src/SW_R_init.c | 2 + src/SW_R_lib.c | 80 ++++++++++++++++++++++++++++++++++++ src/SW_R_lib.h | 1 + 8 files changed, 166 insertions(+), 24 deletions(-) create mode 100644 man/dbW_weatherData_round.Rd diff --git a/NAMESPACE b/NAMESPACE index 571135cc..4e85888c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -61,6 +61,7 @@ export(dbW_upgrade_v2to3) export(dbW_upgrade_v31to32) export(dbW_upgrade_v3to31) export(dbW_version) +export(dbW_weatherData_round) export(dbW_weatherData_to_blob) export(dbW_weatherData_to_dataframe) export(dbW_weatherData_to_monthly) diff --git a/R/swWeatherGenerator.R b/R/swWeatherGenerator.R index 03cbc161..bf7f41ee 100644 --- a/R/swWeatherGenerator.R +++ b/R/swWeatherGenerator.R @@ -815,6 +815,8 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #' @inheritParams dbW_estimate_WGen_coefs #' @param years An integer vector. The calendar years for which to generate #' daily weather. If \code{NULL}, then extracted from \code{weatherData}. +#' @param digits An integer value. The returned values will be rounded to +#' the specified number of decimal places. #' @param wgen_coeffs A list with two named elements \var{mkv_doy} and #' \var{mkv_woy}, i.e., the return value of #' \code{\link{dbW_estimate_WGen_coefs}}. If \code{NULL}, then determined @@ -878,12 +880,20 @@ compare_weather <- function(ref_weather, weather, N, WET_limit_cm = 0, #' unlink(list.files(path), force = TRUE) #' #' @export -dbW_generateWeather <- function(weatherData, years = NULL, wgen_coeffs = NULL, - imputation_type = "mean", imputation_span = 5L, seed = NULL) { +dbW_generateWeather <- function( + weatherData, + years = NULL, + wgen_coeffs = NULL, + imputation_type = "mean", + imputation_span = 5L, + digits = 4L, + seed = NULL +) { #--- Obtain missing/null arguments if (is.null(wgen_coeffs)) { - wgen_coeffs <- dbW_estimate_WGen_coefs(weatherData, + wgen_coeffs <- dbW_estimate_WGen_coefs( + weatherData, propagate_NAs = FALSE, imputation_type = imputation_type, imputation_span = imputation_span @@ -891,14 +901,17 @@ dbW_generateWeather <- function(weatherData, years = NULL, wgen_coeffs = NULL, } if (is.data.frame(weatherData)) { - weatherData <- dbW_dataframe_to_weatherData(weatherData) + weatherData <- dbW_dataframe_to_weatherData( + weatherData, + round = digits + 2L + ) } if (is.null(years)) { years <- get_years_from_weatherData(weatherData) } - #--- Put rSOILWAT2 run together to produce imputed daily weather + #--- Put rSOILWAT2 input object together to produce imputed daily weather sw_in <- rSOILWAT2::sw_exampleData # Set years @@ -906,9 +919,6 @@ dbW_generateWeather <- function(weatherData, years = NULL, wgen_coeffs = NULL, swYears_EndYear(sw_in) <- max(years) swYears_StartYear(sw_in) <- min(years) - # Set weather data - set_WeatherHistory(sw_in) <- weatherData - # Turn on weather generator swWeather_UseMarkov(sw_in) <- TRUE @@ -916,23 +926,11 @@ dbW_generateWeather <- function(weatherData, years = NULL, wgen_coeffs = NULL, swMarkov_Prob(sw_in) <- wgen_coeffs[["mkv_doy"]] swMarkov_Conv(sw_in) <- wgen_coeffs[["mkv_woy"]] - # Turn off CO2-effects to avoid any issues - swCarbon_Use_Bio(sw_in) <- 0 - swCarbon_Use_WUE(sw_in) <- 0 - #--- Execute SOILWAT2 to generate weather + #--- Process weather in SOILWAT2 set.seed(seed) - sw_out <- sw_exec(inputData = sw_in) - - - #--- Extract weather generator imputed daily weather - xdf <- slot(slot(sw_out, "TEMP"), "Day")[, c("Year", "Day", "max_C", "min_C")] - colnames(xdf) <- c("Year", "DOY", "Tmax_C", "Tmin_C") - xdf <- data.frame( - xdf, - PPT_cm = slot(slot(sw_out, "PRECIP"), "Day")[, "ppt"] + dbW_weatherData_round( + .Call(C_rSW2_processAllWeather, weatherData, sw_in), + digits = digits ) - - # Convert to rSOILWAT2 weather data format - dbW_dataframe_to_weatherData(xdf) } diff --git a/R/sw_dbW_WeatherDatabase.R b/R/sw_dbW_WeatherDatabase.R index 3a1d8a97..2d501d0d 100644 --- a/R/sw_dbW_WeatherDatabase.R +++ b/R/sw_dbW_WeatherDatabase.R @@ -1946,6 +1946,35 @@ dbW_weatherData_to_dataframe <- function(weatherData, valNA = NULL) { ) } +#' Round weather data in a list class \code{\linkS4class{swWeatherData}} +#' +#' @param weatherData A list with \code{\linkS4class{swWeatherData}} elements. +#' @param digits An integer value. The returned values will be rounded to +#' the specified number of decimal places. +#' @param weatherDF_dataColumns A character vector. The column names +#' that should be rounded. +#' +#' @return A list with \code{\linkS4class{swWeatherData}} elements. +#' +#' @export +dbW_weatherData_round <- function( + weatherData, + digits = 4L, + weatherDF_dataColumns = c("Tmax_C", "Tmin_C", "PPT_cm") +) { + lapply( + weatherData, + function(x) { + slot(x, "data")[, weatherDF_dataColumns] <- round( + slot(x, "data")[, weatherDF_dataColumns], + digits = digits + ) + x + } + ) +} + + #' Conversion: object of class \code{\linkS4class{swWeatherData}} to #' matrix of monthly values (\var{mean Tmax}, \var{mean Tmin}, \var{sum PPT}) #' diff --git a/man/dbW_generateWeather.Rd b/man/dbW_generateWeather.Rd index 1210f155..94257c94 100644 --- a/man/dbW_generateWeather.Rd +++ b/man/dbW_generateWeather.Rd @@ -10,6 +10,7 @@ dbW_generateWeather( wgen_coeffs = NULL, imputation_type = "mean", imputation_span = 5L, + digits = 4L, seed = NULL ) } @@ -41,6 +42,9 @@ based on \code{weatherData}.} \item{imputation_span}{An integer value. The number of non-missing values considered if \code{imputation_type = "mean"}.} +\item{digits}{An integer value. The returned values will be rounded to +the specified number of decimal places.} + \item{seed}{An integer value or \code{NULL}. See \code{\link{set.seed}}.} } \value{ diff --git a/man/dbW_weatherData_round.Rd b/man/dbW_weatherData_round.Rd new file mode 100644 index 00000000..9b8915da --- /dev/null +++ b/man/dbW_weatherData_round.Rd @@ -0,0 +1,27 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_dbW_WeatherDatabase.R +\name{dbW_weatherData_round} +\alias{dbW_weatherData_round} +\title{Round weather data in a list class \code{\linkS4class{swWeatherData}}} +\usage{ +dbW_weatherData_round( + weatherData, + digits = 4L, + weatherDF_dataColumns = c("Tmax_C", "Tmin_C", "PPT_cm") +) +} +\arguments{ +\item{weatherData}{A list with \code{\linkS4class{swWeatherData}} elements.} + +\item{digits}{An integer value. The returned values will be rounded to +the specified number of decimal places.} + +\item{weatherDF_dataColumns}{A character vector. The column names +that should be rounded.} +} +\value{ +A list with \code{\linkS4class{swWeatherData}} elements. +} +\description{ +Round weather data in a list class \code{\linkS4class{swWeatherData}} +} diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 30608438..9c003f82 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -10,6 +10,7 @@ extern SEXP start(SEXP, SEXP, SEXP, SEXP); extern SEXP tempError(); extern SEXP onGetInputDataFromFiles(SEXP); extern SEXP onGetOutput(SEXP); +extern SEXP rSW2_processAllWeather(SEXP, SEXP); extern SEXP sw_consts(); static const R_CallMethodDef CallEntries[] = { @@ -17,6 +18,7 @@ static const R_CallMethodDef CallEntries[] = { {"tempError", (DL_FUNC) &tempError, 0}, {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 1}, {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, + {"rSW2_processAllWeather", (DL_FUNC) &rSW2_processAllWeather, 2}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, {NULL, NULL, 0} }; diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 7ea12848..15d4b609 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -326,6 +326,86 @@ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { } +/** + @brief Process daily driving (weather) variables using SOILWAT2 code + + Applies additive/multiplicative scaling parameters and + uses imputation/weather generator to fill missing values +*/ +SEXP rSW2_processAllWeather(SEXP weatherList, SEXP inputData) { + SEXP res; + #ifdef RSWDEBUG + int debug = 0; + #endif + + + #ifdef RSWDEBUG + if (debug) swprintf("\n'rSW2_processAllWeather': data preparation: "); + #endif + + // Copy `swInputData` to global variable `InputData` which is used + // by `onSet_XXX()` functions + InputData = inputData; + + // Copy `weatherList` to global variable `WeatherList` which is used + // by `onSet_WTH_DATA()` if `bWeatherList` + bWeatherList = TRUE; + WeatherList = weatherList; + + + // setup and construct model (independent of inputs) + #ifdef RSWDEBUG + if (debug) swprintf("'setup' > "); + #endif + SW_CTL_setup_model(_firstfile); + + // `onSet_WTH_DATA()` requires correct `endyr` and `startyr` of `SW_Model` + #ifdef RSWDEBUG + if (debug) swprintf("'model' > "); + #endif + onSet_SW_MDL(GET_SLOT(inputData, install("years"))); + + // `onSet_WTH_DATA()` requires additive/multiplicative scaling parameters + #ifdef RSWDEBUG + if (debug) swprintf(" > 'weather-setup'"); + #endif + onSet_SW_WTH_setup(GET_SLOT(inputData, install("weather"))); + + // `onSet_WTH_DATA()` requires ready-to-go weather generator + if ( + LOGICAL( + GET_SLOT( + GET_SLOT( + inputData, + install("weather") + ), + install("use_weathergenerator") + ) + )[0] + ) { + onSet_MKV(GET_SLOT(inputData, install("markov"))); + #ifdef RSWDEBUG + if (debug) swprintf(" > 'weather generator'.\n"); + #endif + } + + + // Process weather data + #ifdef RSWDEBUG + if (debug) swprintf("'rSW2_processAllWeather': process weather data."); + #endif + onSet_WTH_DATA(); + + + // Return processed weather data + PROTECT(res = onGet_WTH_DATA()); + + UNPROTECT(1); + return res; +} + + + /** Expose SOILWAT2 constants and defines to internal R code of rSOILWAT2 @return A list with six elements: one element `kINT` for integer constants; other elements contain vegetation keys, `VegTypes`; output keys, `OutKeys`; diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index c36bfde8..1c7f550f 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -41,6 +41,7 @@ extern Bool bWeatherList; SEXP tempError(void); SEXP onGetInputDataFromFiles(SEXP input); SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet); +SEXP rSW2_processAllWeather(SEXP weatherList, SEXP inputData); SEXP sw_consts(void); #endif /* SW_R_LIB_H_ */ From dc5bdb8e3b5d14ba4dd2a776c8d88deeb49c7476 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:58:11 -0400 Subject: [PATCH 080/238] Fix vignette "rSOILWAT2_demo": impute missing weather generator coefficients --- vignettes/rSOILWAT2_demo.Rmd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 20c08a55..e1079224 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -665,7 +665,10 @@ You may organize weather data in a variety of ways: (iii) run SOILWAT2 with filled-in data ```{r, weather3} - wgen_coeffs <- rSOILWAT2::dbW_estimate_WGen_coefs(weatherData = wdata) + wgen_coeffs <- rSOILWAT2::dbW_estimate_WGen_coefs( + weatherData = wdata, + imputation_type = "locf" + ) wdata_filled <- rSOILWAT2::dbW_generateWeather( weatherData = wdata_gaps, From 4e34eb31443c61b45a11ff34c30700240f9d9bd0 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:59:04 -0400 Subject: [PATCH 081/238] Improve documentation and debug statements --- R/D_swCarbon.R | 7 ++--- man/get_soiltemp.Rd | 66 +++++++++++++++++++++++++++++++++++++++++++++ src/SW_R_lib.c | 33 ++++++++++++++++++++--- src/rSW_Control.c | 6 ++--- 4 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 man/get_soiltemp.Rd diff --git a/R/D_swCarbon.R b/R/D_swCarbon.R index 041ba173..8ce8445c 100644 --- a/R/D_swCarbon.R +++ b/R/D_swCarbon.R @@ -102,9 +102,10 @@ setValidity("swCarbon", function(object) { val <- if (isTRUE(val)) msg else c(val, msg) } else { - is_bad <- any(is.na(object@CO2ppm[, "Year"]) | - round(object@CO2ppm[, "Year"]) != object@CO2ppm[, "Year"]) - if (is_bad) { + is_bad <- + is.na(object@CO2ppm[, "Year"]) | + round(object@CO2ppm[, "Year"]) != object@CO2ppm[, "Year"] + if (any(is_bad)) { msg <- "@CO2ppm: has missing and/or non-integer-like years" val <- if (isTRUE(val)) msg else c(val, msg) } diff --git a/man/get_soiltemp.Rd b/man/get_soiltemp.Rd new file mode 100644 index 00000000..11ab1bcd --- /dev/null +++ b/man/get_soiltemp.Rd @@ -0,0 +1,66 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_OutputDerived_Functions.R +\name{get_soiltemp} +\alias{get_soiltemp} +\title{Extract soil temperature} +\usage{ +get_soiltemp( + x, + timestep = c("Day", "Week", "Month", "Year"), + levels = c("min", "avg", "max"), + surface = TRUE, + soillayers = NULL, + verbose = FALSE +) +} +\arguments{ +\item{x}{An object of class \code{\linkS4class{swOutput}}.} + +\item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} + +\item{levels}{A character string indicating which +within-day minimum, average, or maximum values are requested.} + +\item{surface}{A logical value. Output surface soil temperature as first +column in returned matrices; +equivalent to requesting a \code{0} via \code{soillayers}.} + +\item{soillayers}{An integer vector of requested soil layers. +\code{NULL} returns soil temperature from all available soil layers; +\code{NA} does not return soil temperature; +including a \code{0} is equivalent to setting \code{surface} to \code{TRUE}.} + +\item{verbose}{A logical value. Issue warnings if requested \code{levels} are +not available.} +} +\value{ +A named list of length \code{levels} where elements are +numeric matrices of soil temperature \verb{[C]} with time steps as rows +and (requested) soil surface and soil layers as columns. +} +\description{ +Extract soil temperature +} +\section{Notes}{ + +Requested \code{soillayers} that are not available in \code{x} are ignored +(with a warning if \code{verbose}). + + +Requested \code{levels} that are not available +(e.g., \code{"min"} before \code{rSOILWAT2} \code{v3.5.0}) +are replaced by values from the average level +(with a warning if \code{verbose}). +} + +\examples{ +sw_out <- sw_exec(inputData = rSOILWAT2::sw_exampleData) +get_soiltemp(sw_out, "Month") +get_soiltemp(sw_out, "Month", "avg") +get_soiltemp(sw_out, "Month", "avg", surface = TRUE, soillayers = NA) +get_soiltemp(sw_out, "Month", "avg", soillayers = 0) +get_soiltemp(sw_out, "Month", "avg", surface = FALSE, soillayers = NULL) +get_soiltemp(sw_out, "Month", "avg", surface = FALSE, soillayers = c(1, 3)) +get_soiltemp(sw_out, "Month", "avg", surface = FALSE, soillayers = c(1, 30)) + +} diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 15d4b609..bdec279c 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -117,6 +117,9 @@ void setupSOILWAT2(SEXP inputOptions) { } +/** + @brief Read inputs from SOILWAT2 input files on disk using SOILWAT2 code +*/ SEXP onGetInputDataFromFiles(SEXP inputOptions) { SEXP swInputData, SW_DataList, swLog, oRlogfile; #ifdef RSWDEBUG @@ -149,8 +152,12 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { SW_CTL_init_run(); #ifdef RSWDEBUG - if (debug) swprintf("onGetInputDataFromFiles: copy data from SOILWAT2 " - "variables to rSOILWAT2 S4 classes: "); + if (debug) { + swprintf( + "\n'onGetInputDataFromFiles()': " + "copy data from SOILWAT2 variables to rSOILWAT2 S4 classes: " + ); + } #endif PROTECT(swInputData = MAKE_CLASS("swInputData")); @@ -182,10 +189,20 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { if (debug) swprintf(" > 'climate'"); #endif - if (LOGICAL(GET_SLOT(GET_SLOT(SW_DataList, install("weather")), install("use_weathergenerator")))[0]) { + if ( + LOGICAL( + GET_SLOT( + GET_SLOT( + SW_DataList, + install("weather") + ), + install("use_weathergenerator") + ) + )[0] + ) { SET_SLOT(SW_DataList, install("markov"), onGet_MKV()); #ifdef RSWDEBUG - if (debug) swprintf(" > 'mwgen'"); + if (debug) swprintf(" > 'weather generator'"); #endif } @@ -240,6 +257,14 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { return SW_DataList; } + +/** + @brief Run a SOILWAT2 simulation + + - Copies R inputs to C variables + - Executes a SOILWAT2 simulation + - Copies output to R output variable +*/ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { SEXP outputData, swLog, oRlogfile; #ifdef RSWDEBUG diff --git a/src/rSW_Control.c b/src/rSW_Control.c index b3e82cf2..bb8264af 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -65,8 +65,8 @@ void rSW_CTL_obtain_inputs(Bool from_files) { #ifdef RSWDEBUG if (debug) { swprintf( - "\n'rSW_CTL_obtain_inputs': Copy data from rSOILWAT2 S4 " - "'InputData' object to SOILWAT2 variables:" + "\n'rSW_CTL_obtain_inputs()': " + "Copy data from rSOILWAT2 S4 'InputData' object to SOILWAT2 variables:" ); } #endif @@ -96,7 +96,7 @@ void rSW_CTL_obtain_inputs(Bool from_files) { ) { onSet_MKV(GET_SLOT(InputData, install("markov"))); #ifdef RSWDEBUG - if (debug) swprintf(" > 'mwgen'"); + if (debug) swprintf(" > 'weather generator'"); #endif } From 72de140dbe45cfd231566225d606a9a2ecbd1e05 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 18:00:12 -0400 Subject: [PATCH 082/238] Code style: `dbW_estimate_WGen_coefs()` - only code style changes --- R/swWeatherGenerator.R | 215 +++++++++++++++++++++++++---------------- 1 file changed, 133 insertions(+), 82 deletions(-) diff --git a/R/swWeatherGenerator.R b/R/swWeatherGenerator.R index bf7f41ee..e429422b 100644 --- a/R/swWeatherGenerator.R +++ b/R/swWeatherGenerator.R @@ -117,18 +117,27 @@ #' swMarkov_Conv(sw_in) <- res2[["mkv_woy"]] #' #' @export -dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, - propagate_NAs = FALSE, valNA = NULL, +dbW_estimate_WGen_coefs <- function( + weatherData, + WET_limit_cm = 0, + propagate_NAs = FALSE, + valNA = NULL, imputation_type = c("none", "mean", "locf"), - imputation_span = 5L) { + imputation_span = 5L +) { # daily weather data - if (inherits(weatherData, "list") && - all(sapply(weatherData, inherits, what = "swWeatherData"))) { - wdata <- data.frame(dbW_weatherData_to_dataframe(weatherData, - valNA = valNA)) + if ( + inherits(weatherData, "list") && + all(sapply(weatherData, inherits, what = "swWeatherData")) + ) { + wdata <- data.frame( + dbW_weatherData_to_dataframe(weatherData, valNA = valNA) + ) } else { - wdata <- data.frame(set_missing_weather(weatherData, valNA = valNA)) + wdata <- data.frame( + set_missing_weather(weatherData, valNA = valNA) + ) } n_days <- nrow(wdata) @@ -137,10 +146,13 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, na.rm <- !propagate_NAs - #----------------------------------------------------------------------------- #------ calculate mkv_prob.in - icol_day <- grep("DOY|Day", colnames(wdata), ignore.case = TRUE, - value = TRUE) + icol_day <- grep( + "DOY|Day", + colnames(wdata), + ignore.case = TRUE, + value = TRUE + ) #--- calculate WET days wdata[["WET"]] <- wdata[["PPT_cm"]] > WET_limit_cm @@ -156,25 +168,35 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, #--- output container: dataframe for storing mkv_prob.in data doys <- 366 # see SOILWAT2 constant `MAX_DAYS` outs <- c("DOY", "p_W_W", "p_W_D", "PPT_avg", "PPT_sd") - mkv_prob <- data.frame(matrix(NA, nrow = doys, ncol = length(outs), - dimnames = list(NULL, outs))) + mkv_prob <- data.frame( + matrix(nrow = doys, ncol = length(outs), dimnames = list(NULL, outs)) + ) mkv_prob[, "DOY"] <- seq_len(doys) #--- mean/sd of precipitation across years for doy i if it is a wet day - temp <- by(wdata[, c("WET", "PPT_cm")], INDICES = wdata[, icol_day], + temp <- by( + wdata[, c("WET", "PPT_cm")], + INDICES = wdata[, icol_day], function(x) { # if `na.rm` is TRUE, then remove NAs in `WET`; if only NAs -> PPT_avg = 0 # if `na.rm` is FALSE, then any NA propagates to PPT_avg = NA iswet <- if (na.rm) which(x[, "WET"]) else x[, "WET"] ppt <- x[iswet, "PPT_cm"] + if (length(ppt) > 0) { - c(PPT_avg = mean(ppt, na.rm = na.rm), - PPT_sd = sd(ppt, na.rm = na.rm)) + c( + PPT_avg = mean(ppt, na.rm = na.rm), + PPT_sd = sd(ppt, na.rm = na.rm) + ) } else { # there are no wet days for this DOY; thus PPT = 0 - c(PPT_avg = 0, PPT_sd = 0) + c( + PPT_avg = 0, + PPT_sd = 0 + ) } - }) + } + ) mkv_prob[, c("PPT_avg", "PPT_sd")] <- do.call(rbind, temp) @@ -184,8 +206,10 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # dryprob = p(wet|dry) = "p_W_D" #nolint # = probability that it precipitates today if it was dry # (did not precipitate) yesterday - temp <- by(wdata[, c("WET", "WET_yesterday", "WW", "WD")], - INDICES = wdata[, icol_day], function(x) { + temp <- by( + wdata[, c("WET", "WET_yesterday", "WW", "WD")], + INDICES = wdata[, icol_day], + function(x) { # p(wet): probability that today is wet p_W <- mean(x[, "WET"], na.rm = na.rm) # number of DOY = i that follow a wet day @@ -195,30 +219,34 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, c( p_W_W = if (isTRUE(n_Wy > 0)) { - # `p(wet|wet)` estimated as the number of years with doy being wet - # given previous day is wet divided by the number of years with - # the previous day being wet - sum(x[, "WW"], na.rm = na.rm) / n_Wy - } else { - # `p(wet|wet)` approximated with frequency that today is wet for - # data where yesterday is never wet (avoid division by zero); - # this value is likely near 0 because p(wet yesterday) = 0 - # and p(wet today) ~ p(wet yesterday) - p_W - }, + # `p(wet|wet)` estimated as the number of years with doy being wet + # given previous day is wet divided by the number of years with + # the previous day being wet + sum(x[, "WW"], na.rm = na.rm) / n_Wy + } else { + # `p(wet|wet)` approximated with frequency that today is wet for + # data where yesterday is never wet (avoid division by zero); + # this value is likely near 0 because p(wet yesterday) = 0 + # and p(wet today) ~ p(wet yesterday) + p_W + }, + p_W_D = if (isTRUE(n_Dy > 0)) { - # `p(wet|dry)` estimated as the number of years with doy being wet - # given previous day is dry divided by the number of years with - # the previous day being dry - sum(x[, "WD"], na.rm = na.rm) / n_Dy - } else { - # `p(wet|dry)` approximated with frequency that today is wet for - # data where yesterday is never dry (avoid division by zero); - # this value is likely near 1 because p(wet yesterday) = 1 - # and p(wet today) ~ p(wet yesterday) - p_W - }) - }) + # `p(wet|dry)` estimated as the number of years with doy being wet + # given previous day is dry divided by the number of years with + # the previous day being dry + sum(x[, "WD"], na.rm = na.rm) / n_Dy + } else { + # `p(wet|dry)` approximated with frequency that today is wet for + # data where yesterday is never dry (avoid division by zero); + # this value is likely near 1 because p(wet yesterday) = 1 + # and p(wet today) ~ p(wet yesterday) + p_W + } + ) + } + ) + mkv_prob[, c("p_W_W", "p_W_D")] <- do.call(rbind, temp) #--- Make sure probability values are well formed: 0 <= p <= 1 @@ -242,7 +270,8 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, warning("Insufficient weather data to estimate ", msg) } else { message("Impute missing `mkv_prob` ", msg) - mkv_prob <- rSW2utils::impute_df(mkv_prob, + mkv_prob <- rSW2utils::impute_df( + mkv_prob, imputation_type = imputation_type, imputation_span = imputation_span, cyclic = TRUE @@ -252,7 +281,6 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, - #----------------------------------------------------------------------------- #------ mkv_covar.in #--- week as interpreted by SOILWAT2 function `Doy2Week` @@ -260,26 +288,43 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, #--- output container: dataframe for storing mkv_cov.in data weeks <- 53 # see SOILWAT2 constant `MAX_WEEKS` - outs <- c("WEEK", "wTmax_C", "wTmin_C", + outs <- c( + "WEEK", "wTmax_C", "wTmin_C", "var_MAX", "cov_MAXMIN", "cov_MINMAX", "var_MIN", - "CF_Tmax_wet", "CF_Tmax_dry", "CF_Tmin_wet", "CF_Tmin_dry") - mkv_cov <- data.frame(matrix(NA, nrow = weeks, ncol = length(outs), - dimnames = list(NULL, outs))) + "CF_Tmax_wet", "CF_Tmax_dry", "CF_Tmin_wet", "CF_Tmin_dry" + ) + mkv_cov <- data.frame( + matrix(nrow = weeks, ncol = length(outs), dimnames = list(NULL, outs)) + ) #--- Aggregate for each week mkv_cov[, "WEEK"] <- seq_len(weeks) # Average weekly temperature values - mkv_cov[, "wTmax_C"] <- tapply(wdata[["Tmax_C"]], wdata[["WEEK"]], mean, - na.rm = na.rm) - mkv_cov[, "wTmin_C"] <- tapply(wdata[["Tmin_C"]], wdata[["WEEK"]], mean, - na.rm = na.rm) + mkv_cov[, "wTmax_C"] <- tapply( + wdata[["Tmax_C"]], + wdata[["WEEK"]], + mean, + na.rm = na.rm + ) + + mkv_cov[, "wTmin_C"] <- tapply( + wdata[["Tmin_C"]], + wdata[["WEEK"]], + mean, + na.rm = na.rm + ) # Variance-covariance values among maximum and minimum temperature - temp <- by(wdata[, c("Tmax_C", "Tmin_C")], wdata[["WEEK"]], cov, - use = if (na.rm) "na.or.complete" else "everything") + temp <- by( + wdata[, c("Tmax_C", "Tmin_C")], + wdata[["WEEK"]], + cov, + use = if (na.rm) "na.or.complete" else "everything" + ) temp <- sapply(temp, function(x) c(x[1, 1], x[1, 2], x[2, 1], x[2, 2])) + mkv_cov[, "var_MAX"] <- temp[1, ] mkv_cov[, "cov_MAXMIN"] <- temp[2, ] mkv_cov[, "cov_MINMAX"] <- temp[3, ] @@ -290,20 +335,24 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # Used to correct random temperature values based on average conditions # if that target day is wet or dry (e.g., overcast weather tends to # increase minimum daily temperature and decrease maximum daily tempature) - temp <- by(wdata[, c("WET", "Tmax_C", "Tmin_C")], INDICES = wdata[, "WEEK"], + temp <- by( + wdata[, c("WET", "Tmax_C", "Tmin_C")], + INDICES = wdata[, "WEEK"], function(x) { # if `na.rm` is TRUE, then consider `WET` = NA as FALSE # if `na.rm` is FALSE, then propagate NAs in `WET` -> neither wet nor dry iswet <- if (na.rm) { - which_wet <- which(x[, "WET"]) # numeric vector - out <- rep(FALSE, length(x[, "WET"])) - # only days where 'WET' is TRUE are considered wet - out[which_wet] <- TRUE - out # logical vector same length as x[, "WET"] - } else { - x[, "WET"] # logical vector - } + which_wet <- which(x[, "WET"]) # numeric vector + out <- rep(FALSE, length(x[, "WET"])) + # only days where 'WET' is TRUE are considered wet + out[which_wet] <- TRUE + out # logical vector same length as x[, "WET"] + } else { + x[, "WET"] # logical vector + } + isanywet <- isTRUE(any(iswet, na.rm = na.rm)) + # previously isdry became all FALSE if na.rm = TRUE (because then iswet # was numeric vector with all positive digits) isdry <- !iswet @@ -311,26 +360,27 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, # if no wet/dry days in week of year, then use overall mean instead # of conditional mean (i.e., given wet/dry) - c(Tmax_mean_wet = if (isanywet) { - mean(x[iswet, "Tmax_C"], na.rm = na.rm) - } else { - mean(x[, "Tmax_C"], na.rm = na.rm) - }, + c( + Tmax_mean_wet = if (isanywet) { + mean(x[iswet, "Tmax_C"], na.rm = na.rm) + } else { + mean(x[, "Tmax_C"], na.rm = na.rm) + }, Tmax_mean_dry = if (isanydry) { - mean(x[isdry, "Tmax_C"], na.rm = na.rm) - } else { - mean(x[, "Tmax_C"], na.rm = na.rm) - }, + mean(x[isdry, "Tmax_C"], na.rm = na.rm) + } else { + mean(x[, "Tmax_C"], na.rm = na.rm) + }, Tmin_mean_wet = if (isanywet) { - mean(x[iswet, "Tmin_C"], na.rm = na.rm) - } else { - mean(x[, "Tmin_C"], na.rm = na.rm) - }, + mean(x[iswet, "Tmin_C"], na.rm = na.rm) + } else { + mean(x[, "Tmin_C"], na.rm = na.rm) + }, Tmin_mean_dry = if (isanydry) { - mean(x[isdry, "Tmin_C"], na.rm = na.rm) - } else { - mean(x[, "Tmin_C"], na.rm = na.rm) - } + mean(x[isdry, "Tmin_C"], na.rm = na.rm) + } else { + mean(x[, "Tmin_C"], na.rm = na.rm) + } ) } ) @@ -355,7 +405,8 @@ dbW_estimate_WGen_coefs <- function(weatherData, WET_limit_cm = 0, warning("Insufficient weather data to estimate ", msg) } else { message("Impute missing `mkv_cov` ", msg) - mkv_cov <- rSW2utils::impute_df(mkv_cov, + mkv_cov <- rSW2utils::impute_df( + mkv_cov, imputation_type = imputation_type, imputation_span = imputation_span, cyclic = TRUE From 37b5e72d79f703627d814e8fce484fdf43f6a9c2 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 28 Jul 2022 14:55:39 -0400 Subject: [PATCH 083/238] Fix language related to water release curves and pedotransfer functions --- tests/testthat/test_exec_and_aggregate.R | 2 +- tests/testthat/test_pedotransferfunctions.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test_exec_and_aggregate.R b/tests/testthat/test_exec_and_aggregate.R index 8dd4e720..44443cba 100644 --- a/tests/testthat/test_exec_and_aggregate.R +++ b/tests/testthat/test_exec_and_aggregate.R @@ -279,7 +279,7 @@ for (it in tests) { #--- Test: Compare aggregated daily against yearly output # Exclusions: # * "ESTABL" produces only yearly output - # * SWP is not additive; SOILWAT uses pedotransfer functions + # * SWP is not additive; SOILWAT uses soil water release curves if (all(unlist(has_times))) { if (fun_agg[k] %in% c("mean", "sum") && !(vars[k] %in% c("SWPMATRIC", "ESTABL")) diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 8f553fa9..6c1b46ad 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -1,4 +1,4 @@ -context("Pedotransfer functions: SWP <-> VWC") +context("Soil water release functions: SWP <-> VWC") # How the functions are applied in rSFSW2 # section: aggregation From 59901dd5109343199d2b609f2dd1b668cdcef0bd Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 29 Jul 2022 11:05:01 -0400 Subject: [PATCH 084/238] Update github actions to r-lib v2 - close #202 --- .github/workflows/check-standard.yml | 91 +++++++++------------------- .github/workflows/lint.yaml | 10 +-- .github/workflows/test-coverage.yaml | 33 ++++++++++ DESCRIPTION | 2 +- NEWS.md | 5 ++ 5 files changed, 73 insertions(+), 68 deletions(-) create mode 100644 .github/workflows/test-coverage.yaml diff --git a/.github/workflows/check-standard.yml b/.github/workflows/check-standard.yml index ceb355ad..9634c88a 100644 --- a/.github/workflows/check-standard.yml +++ b/.github/workflows/check-standard.yml @@ -1,15 +1,14 @@ -# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. -# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help -# script obtained 2021-Aug-13 from `usethis::use_github_action("check-standard")` -# added step `Test coverage` (copied relevant sections from `usethis::use_github_action("test-coverage")`) +# workflow derived from "check-standard" workflow # rSOILWAT2 contains submodules: these need to be checkout separately # rSOILWAT2 creates pdf vignette: these require a minimal latex setup -# rSOILWAT2 doesn't meet documentation standards (see issues #12 and #105): once these are resolved, reset to -# `rcmdcheck::rcmdcheck(..., error_on = "warning", ...)` +# rSOILWAT2 doesn't meet documentation standards (see issues #12 and #105): +# once these are resolved, reset to default `error-on: '"warning"'` # frequent failures because suggested package "rSW2exter" cannot be installed # (usually GDAL-related problems on GHA) @@ -22,7 +21,7 @@ on: pull_request: branches: [main, release/**] -name: R-CMD-check-covr +name: R-CMD-check jobs: R-CMD-check: @@ -34,77 +33,43 @@ jobs: fail-fast: false matrix: config: + - {os: macOS-latest, r: 'release'} - {os: windows-latest, r: 'release'} - - {os: macOS-latest, r: 'release'} - - {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} - - {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", http-user-agent: "R/4.1.0 (ubuntu-20.04) R (4.1.0 x86_64-pc-linux-gnu x86_64 linux-gnu) on GitHub Actions" } + - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + - {os: ubuntu-latest, r: 'release'} + - {os: ubuntu-latest, r: 'oldrel-1'} env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true - RSPM: ${{ matrix.config.rspm }} + R_KEEP_PKG_SOURCE: yes GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - name: Checkout repository and submodules - uses: actions/checkout@v2 + - uses: actions/checkout@v2 with: submodules: recursive - - uses: r-lib/actions/setup-r@v1 - with: - r-version: ${{ matrix.config.r }} + - uses: r-lib/actions/setup-tinytex@v2 + - run: tlmgr install makeindex - - uses: r-lib/actions/setup-tinytex@v1 + - uses: r-lib/actions/setup-pandoc@v2 - - uses: r-lib/actions/setup-pandoc@v1 - - - name: Query dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") - shell: Rscript {0} + - 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: Restore R package cache - uses: actions/cache@v2 + - uses: r-lib/actions/setup-r-dependencies@v2 with: - path: ${{ env.R_LIBS_USER }} - key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- - - - name: Install system dependencies - if: runner.os == 'Linux' - run: | - while read -r cmd - do - eval sudo $cmd - done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') - - - name: Install dependencies - run: | - remotes::install_deps(dependencies = TRUE) - remotes::install_cran("rcmdcheck") - shell: Rscript {0} - - - name: Check + extra-packages: any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 env: _R_CHECK_CRAN_INCOMING_REMOTE_: false _R_CHECK_FORCE_SUGGESTS_: false - run: | - options(crayon.enabled = TRUE) - rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "error", check_dir = "check") - shell: Rscript {0} - - - name: Upload check results - if: failure() - uses: actions/upload-artifact@main with: - name: ${{ runner.os }}-r${{ matrix.config.r }}-results - path: check - - - name: Test coverage - if: ${{ runner.os == 'macOS' && success() }} - run: | - remotes::install_cran("covr") - covr::codecov() - shell: Rscript {0} + upload-snapshots: true + error-on: '"error"' + diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 687541ad..5bb1d581 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -1,5 +1,6 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/master/examples +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help + on: push: branches: [main, release/**] @@ -18,13 +19,14 @@ jobs: with: submodules: recursive - - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-r@v2 with: use-public-rspm: true - - uses: r-lib/actions/setup-r-dependencies@v1 + - uses: r-lib/actions/setup-r-dependencies@v2 with: - extra-packages: lintr + extra-packages: any::lintr, local::. + needs: lint - name: Lint run: lintr::lint_package() diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml new file mode 100644 index 00000000..cfc1b71e --- /dev/null +++ b/.github/workflows/test-coverage.yaml @@ -0,0 +1,33 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/master/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, release/**] + pull_request: + branches: [main, release/**] + +name: test-coverage + +jobs: + test-coverage: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::covr, local::. + needs: coverage + + - name: Test coverage + run: covr::codecov(quiet = FALSE) + shell: Rscript {0} diff --git a/DESCRIPTION b/DESCRIPTION index cb486f49..b34e5ee8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: rSOILWAT2 -Version: 5.3.1 +Version: 6.0.0-9000 Title: An Ecohydrological Ecosystem-Scale Water Balance Simulation Model Description: Access to the C-based SOILWAT2 v6.5.1 and functionality for SQLite-database of weather data. diff --git a/NEWS.md b/NEWS.md index 608336ec..bf598358 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,8 @@ +# rSOILWAT2 devel +* `r-lib` Github Actions updated to `v2`; + separate workflows for `R-CMD-check` and `test-coverage` (#202). + + # rSOILWAT2 v5.3.1 * This version fixes a bug in soil temperature output that was introduced with version `3.5.0` (#194). From bbc759b6fa89d2a363b7ed355d50aa23ac94bc76 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 29 Jul 2022 11:18:10 -0400 Subject: [PATCH 085/238] Don't change R package version number without updating test objects -> no change to test objects on this branch -> keep R package version number (plus 9000 for devel) --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index b34e5ee8..ee85cb8c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: rSOILWAT2 -Version: 6.0.0-9000 +Version: 5.3.1-9000 Title: An Ecohydrological Ecosystem-Scale Water Balance Simulation Model Description: Access to the C-based SOILWAT2 v6.5.1 and functionality for SQLite-database of weather data. From a4a8251748c1b521fa7f938f82f5318195b4357c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 1 Aug 2022 14:43:23 -0400 Subject: [PATCH 086/238] Test class validity of prototypes & constructors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - test validity of class prototypes in addition to objects created by constructor helpers - use a loop instead of copy/pasted code to test all relevant classes - update class validity functions to permit prototype values (mostly NAs) * fix logic of "swProd" validity function: previously, logic was incorrect but identical test was comparing integers with reals -- thus, producing the correct result for the wrong reason * update "test_class_swSite.R" to accommodate generalized validity functions - commit 0ba8458be208b07646cf2e3a66cd113ac0c87f67 (Replace "initialize" with class prototypes and helper constructors) updated class prototypes and introduced constructor helpers (that replaced "initialize" methods); unit tests were added; however, the tests did not check validity of prototypes (and only indirectly of constructed objects) ==> new validity tests are failing for "swOut" ``` Error (test_class_constructors.R:41:5): Class constructors Error in `validObject(new(cn))`: invalid class “swOUT” object: must be a vector of length 'SW_OUTNKEYS' ``` ==> this test fails because prototype of "swOUT" was not correctly updated when commit 89aa74e3b72a4081b06bd51c6a3592204cef2c9e (Merge branch 'main' (v5.2.0) into feature_swrc) merged v5.2.0 with new output slot --- R/B_swFiles.R | 8 +- R/C_swYears.R | 28 +++--- R/E_swProd.R | 68 ++++++++------- R/F_swSite.R | 61 +++++--------- R/F_swSoils.R | 57 ++++++++----- tests/testthat/test_class_constructors.R | 103 +++++++---------------- tests/testthat/test_class_swSite.R | 21 +---- 7 files changed, 142 insertions(+), 204 deletions(-) diff --git a/R/B_swFiles.R b/R/B_swFiles.R index 80f07ef5..f938faeb 100644 --- a/R/B_swFiles.R +++ b/R/B_swFiles.R @@ -99,7 +99,7 @@ setValidity( function(object) { val <- TRUE - if (length(object@ProjDir) != 1) { + if (length(object@ProjDir) != 1L) { msg <- "There must be exactly one @ProjDir value." val <- if (isTRUE(val)) msg else c(val, msg) } @@ -112,12 +112,12 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@WeatherPrefix) != 1 || nchar(object@WeatherPrefix) == 0) { - msg <- "There must be exactly one non-empty @WeatherPrefix value." + if (length(object@WeatherPrefix) != 1L) { + msg <- "There must be exactly one @WeatherPrefix value." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@OutputPrefix) != 1) { + if (length(object@OutputPrefix) != 1L) { msg <- "There must be exactly one @OutputPrefix value." val <- if (isTRUE(val)) msg else c(val, msg) } diff --git a/R/C_swYears.R b/R/C_swYears.R index 9fffa012..88996d30 100644 --- a/R/C_swYears.R +++ b/R/C_swYears.R @@ -67,9 +67,9 @@ setClass( prototype = list( StartYear = NA_integer_, EndYear = NA_integer_, - FDOFY = NA_integer_, - EDOEY = NA_integer_, - isNorth = NA + FDOFY = 1L, + EDOEY = 365L, + isNorth = TRUE ) ) @@ -108,16 +108,16 @@ setValidity( val <- TRUE if ( - length(object@StartYear) != 1 || - (!anyNA(object@StartYear) && isTRUE(object@StartYear < 0)) + length(object@StartYear) != 1L || + (!anyNA(object@StartYear) && isTRUE(object@StartYear < 0L)) ) { msg <- "There must be exactly one NA or non-negative @StartYear value." val <- if (isTRUE(val)) msg else c(val, msg) } if ( - length(object@EndYear) != 1 || - (!anyNA(object@EndYear) && isTRUE(object@EndYear < 0)) || + length(object@EndYear) != 1L || + (!anyNA(object@EndYear) && isTRUE(object@EndYear < 0L)) || (!anyNA(object@EndYear) && !anyNA(object@StartYear) && isTRUE(object@EndYear < object@StartYear)) ) { @@ -129,10 +129,10 @@ setValidity( } if ( - length(object@FDOFY) != 1 || + length(object@FDOFY) != 1L || !is.finite(object@FDOFY) || - object@FDOFY < 0 || - object@FDOFY > 365 + object@FDOFY < 0L || + object@FDOFY > 365L ) { msg <- paste( "There must be exactly one non-negative finite @FDOFY value", @@ -142,10 +142,10 @@ setValidity( } if ( - length(object@EDOEY) != 1 || + length(object@EDOEY) != 1L || !is.finite(object@EDOEY) || - object@EDOEY < 0 || - object@EDOEY > 366 || + object@EDOEY < 0L || + object@EDOEY > 366L || object@EDOEY < object@FDOFY ) { msg <- paste( @@ -155,7 +155,7 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@isNorth) != 1 || is.na(object@isNorth)) { + if (length(object@isNorth) != 1L || is.na(object@isNorth)) { msg <- "There must be exactly one non-NA logical @isNorth value." val <- if (isTRUE(val)) msg else c(val, msg) } diff --git a/R/E_swProd.R b/R/E_swProd.R index c9857255..52429b2f 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -81,7 +81,7 @@ setClass( Albedo = stats::setNames(rep(NA_real_, 5), lc_names), CanopyHeight = array( NA_real_, - dim = c(5, 4), + dim = c(5L, 4L), dimnames = list( c("xinflec", "yinflec", "range", "slope", "height_cm"), veg_names @@ -89,7 +89,7 @@ setClass( ), VegetationInterceptionParameters = array( NA_real_, - dim = c(2, 4), + dim = c(2L, 4L), dimnames = list( c("kSmax", "kdead"), veg_names @@ -97,17 +97,17 @@ setClass( ), LitterInterceptionParameters = array( NA_real_, - dim = c(1, 4), + dim = c(1L, 4L), dimnames = list( "kSmax", veg_names ) ), - EsTpartitioning_param = stats::setNames(rep(NA_real_, 4), veg_names), - Es_param_limit = stats::setNames(rep(NA_real_, 4), veg_names), + EsTpartitioning_param = stats::setNames(rep(NA_real_, 4L), veg_names), + Es_param_limit = stats::setNames(rep(NA_real_, 4L), veg_names), Shade = array( NA_real_, - dim = c(6, 4), + dim = c(6L, 4L), dimnames = list( c( "ShadeScale", "ShadeMaximalDeadBiomass", "tanfuncXinflec", @@ -116,19 +116,19 @@ setClass( veg_names ) ), - HydraulicRedistribution_use = stats::setNames(rep(NA, 4), veg_names), + HydraulicRedistribution_use = stats::setNames(rep(NA, 4L), veg_names), HydraulicRedistribution = array( NA_real_, - dim = c(3, 4), + dim = c(3L, 4L), dimnames = list( c("MaxCondRoot", "SoilWaterPotential50", "ShapeCond"), veg_names ) ), - CriticalSoilWaterPotential = stats::setNames(rep(NA_real_, 4), veg_names), + CriticalSoilWaterPotential = stats::setNames(rep(NA_real_, 4L), veg_names), CO2Coefficients = array( NA_real_, - dim = c(4, 4), + dim = c(4L, 4L), dimnames = list( veg_names, c("Biomass Coeff1", "Biomass Coeff2", "WUE Coeff1", "WUE Coeff2") @@ -140,7 +140,7 @@ setClass( function(k) { array( NA_real_, - dim = c(12, 4), + dim = c(12L, 4L), dimnames = list( c( "January", "February", "March", "April", "May", "June", @@ -165,9 +165,9 @@ setValidity( nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] if ( - length(object@Composition) != 1 + nvegs || - !all(is.na(object@Composition) | (object@Composition >= 0 & - object@Composition <= 1)) + length(object@Composition) != 1L + nvegs || + !all(is.na(object@Composition) | (object@Composition >= 0. & + object@Composition <= 1.)) ) { msg <- paste( "@Composition must have 1 + NVEGTYPES values", @@ -177,49 +177,46 @@ setValidity( } if ( - length(object@Albedo) != 1 + nvegs || - !all(is.na(object@Albedo) | (object@Albedo >= 0 & object@Albedo <= 1)) + length(object@Albedo) != 1L + nvegs || + !all(is.na(object@Albedo) | (object@Albedo >= 0. & object@Albedo <= 1.)) ) { msg <- "@Albedo must have 1 + NVEGTYPES values between 0 and 1 or NA." val <- if (isTRUE(val)) msg else c(val, msg) } temp <- dim(object@CanopyHeight) - if (identical(temp, c(5, nvegs))) { + if (!identical(temp, c(5L, nvegs))) { msg <- "@CanopyHeight must be a 5xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } temp <- dim(object@VegetationInterceptionParameters) - if (identical(temp, c(2, nvegs))) { + if (!identical(temp, c(2L, nvegs))) { msg <- "@VegetationInterceptionParameters must be a 4xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } temp <- dim(object@LitterInterceptionParameters) - if (identical(temp, c(1, nvegs))) { + if (!identical(temp, c(1L, nvegs))) { msg <- "@LitterInterceptionParameters must be a 1xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } - if ( - length(object@EsTpartitioning_param) != nvegs || - !all(is.finite(object@EsTpartitioning_param)) - ) { - msg <- "@EsTpartitioning_param must have NVEGTYPES finite values." + if (length(object@EsTpartitioning_param) != nvegs) { + msg <- "@EsTpartitioning_param must have NVEGTYPES values." val <- if (isTRUE(val)) msg else c(val, msg) } if ( length(object@Es_param_limit) != nvegs || - !all(object@Es_param_limit >= 0) + !all(is.na(object@Es_param_limit) | object@Es_param_limit >= 0.) ) { msg <- "@Es_param_limit must have NVEGTYPES non-negative values." val <- if (isTRUE(val)) msg else c(val, msg) } temp <- dim(object@Shade) - if (identical(temp, c(6, nvegs))) { + if (!identical(temp, c(6L, nvegs))) { msg <- "@Shade must be a 6xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } @@ -230,27 +227,36 @@ setValidity( } temp <- dim(object@HydraulicRedistribution) - if (identical(temp, c(3, nvegs))) { + if (!identical(temp, c(3L, nvegs))) { msg <- "@HydraulicRedistribution must be a 3xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } if (length(object@CriticalSoilWaterPotential) != nvegs || - !all(object@CriticalSoilWaterPotential < 0)) { + !all( + is.na(object@CriticalSoilWaterPotential) | + object@CriticalSoilWaterPotential < 0. + ) + ) { msg <- "@CriticalSoilWaterPotential must have NVEGTYPES negative values." val <- if (isTRUE(val)) msg else c(val, msg) } temp <- dim(object@CO2Coefficients) - if (identical(temp, c(4, nvegs))) { + if (!identical(temp, c(4L, nvegs))) { msg <- "@CO2Coefficients must be a 4xNVEGTYPES matrix." val <- if (isTRUE(val)) msg else c(val, msg) } if ( length(object@MonthlyVeg) != nvegs || - any(sapply(object@MonthlyVeg, - function(x) !identical(dim(x), c(12L, 4L)))) + !all( + vapply( + object@MonthlyVeg, + function(x) identical(dim(x), c(12L, 4L)), + FUN.VALUE = NA + ) + ) ) { msg <- paste( "@MonthlyVeg must be a list with NVEGTYPES elements of a", diff --git a/R/F_swSite.R b/R/F_swSite.R index 459f9b6f..b7a7ed28 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -80,25 +80,25 @@ setClass( DailyRunon = NA_real_ ), SnowSimulationParameters = stats::setNames( - rep(NA_real_, 5), + rep(NA_real_, 5L), c("TminAccu2", "TmaxCrit", "lambdaSnow", "RmeltMin", "RmeltMax") ), DrainageCoefficient = c("SlowDrainCoefficientPerYear_cm/dy" = NA_real_), EvaporationCoefficients = stats::setNames( - rep(NA_real_, 4), + rep(NA_real_, 4L), c("RateShift", "RateSlope", "InflectionPoint", "Range") ), TranspirationCoefficients = stats::setNames( - rep(NA_real_, 4), + rep(NA_real_, 4L), c("RateShift", "RateShape", "InflectionPoint", "Range") ), IntrinsicSiteParams = stats::setNames( - rep(NA_real_, 5), + rep(NA_real_, 5L), c("Longitude", "Latitude", "Altitude", "Slope", "Aspect") ), SoilTemperatureFlag = NA, SoilTemperatureConstants = stats::setNames( - rep(NA_real_, 10), + rep(NA_real_, 10L), c( "BiomassLimiter_g/m^2", "T1constant_a", "T1constant_b", "T1constant_c", "cs_constant_SoilThermCondct", "cs_constant", @@ -107,8 +107,8 @@ setClass( ) ), TranspirationRegions = array( - NA_real_, - dim = c(3, 2), + NA_integer_, + dim = c(3L, 2L), dimnames = list(NULL, c("ndx", "layer")) ), swrc_flags = c(swrc_name = NA_character_, pdf_name = NA_character_) @@ -120,72 +120,49 @@ setValidity( function(object) { val <- TRUE - if (length(object@SWClimits) != 3) { + if (length(object@SWClimits) != 3L) { msg <- "@SWClimits length != 3." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@ModelFlags) != 2) { + if (length(object@ModelFlags) != 2L) { msg <- "@ModelFlags length != 2." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@ModelCoefficients) != 3) { + if (length(object@ModelCoefficients) != 3L) { msg <- "@ModelCoefficients length != 3." val <- if (isTRUE(val)) msg else c(val, msg) } - x <- slot(object, "ModelCoefficients")[1] - if (!is.na(x) && x < 0) { - msg <- paste("@ModelCoefficients:PETmultiplier =", x, - "must be a non-negative number") - val <- if (isTRUE(val)) msg else c(val, msg) - } - x <- slot(object, "ModelCoefficients")[2] - if (!is.na(x) && !(x >= 0 && x <= 1)) { - msg <- paste("@ModelCoefficients:DailyRunoff =", x, - "must be a number between 0 and 1", - "(inclusive)") - val <- if (isTRUE(val)) msg else c(val, msg) - } - x <- slot(object, "ModelCoefficients")[3] - if (!is.na(x) && x < 0) { - msg <- paste("@ModelCoefficients:DailyRunon =", x, - "must be a non-negative number") - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (length(object@SnowSimulationParameters) != 5) { + if (length(object@SnowSimulationParameters) != 5L) { msg <- "@SnowSimulationParameters length != 5." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@DrainageCoefficient) != 1) { + if (length(object@DrainageCoefficient) != 1L) { msg <- "@DrainageCoefficient length != 1." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@EvaporationCoefficients) != 4) { + if (length(object@EvaporationCoefficients) != 4L) { msg <- "@EvaporationCoefficients length != 4." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@TranspirationCoefficients) != 4) { + if (length(object@TranspirationCoefficients) != 4L) { msg <- "@TranspirationCoefficients length != 4." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@IntrinsicSiteParams) != 5) { + if (length(object@IntrinsicSiteParams) != 5L) { msg <- "@IntrinsicSiteParams length != 5." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@SoilTemperatureFlag) != 1) { + if (length(object@SoilTemperatureFlag) != 1L) { msg <- "@SoilTemperatureFlag length != 1." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@SoilTemperatureConstants) != 10) { + if (length(object@SoilTemperatureConstants) != 10L) { msg <- "@SoilTemperatureConstants length != 10." val <- if (isTRUE(val)) msg else c(val, msg) } - if (typeof(object@TranspirationRegions) != "integer") { - msg <- "@TranspirationRegions is of integer type." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (NCOL(object@TranspirationRegions) != 2) { + if (NCOL(object@TranspirationRegions) != 2L) { msg <- "@TranspirationRegions columns != 2." val <- if (isTRUE(val)) msg else c(val, msg) } @@ -194,7 +171,7 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@swrc_flags) != 2) { + if (length(object@swrc_flags) != 2L) { msg <- "@swrc_flags length != 2." val <- if (isTRUE(val)) msg else c(val, msg) } diff --git a/R/F_swSoils.R b/R/F_swSoils.R index c12851f2..e25cc352 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -62,7 +62,7 @@ setClass( prototype = list( Layers = array( NA_real_, - dim = c(0, 12), + dim = c(0L, 12L), dimnames = list( NULL, c( @@ -75,10 +75,10 @@ setClass( ), SWRCp = array( NA_real_, - dim = c(0, 6), + dim = c(0L, 6L), dimnames = list( NULL, - paste0("Param", seq_len(6)) + paste0("Param", seq_len(6L)) ) ) ) @@ -91,14 +91,10 @@ setValidity( val <- TRUE tmpL <- dim(object@Layers) tmpp <- dim(object@SWRCp) - dtol1 <- 1 + tmpL[1] * rSW2_glovars[["tol"]] + dtol1 <- 1. + tmpL[1] * rSW2_glovars[["tol"]] #--- Check "Layers" - if (tmpL[1] == 0) { - msg <- "@Layers must have at least one row/soil layer." - val <- if (isTRUE(val)) msg else c(val, msg) - } - if (tmpL[2] != 12) { + if (tmpL[2] != 12L) { msg <- paste( "@Layers must have exactly 12 columns corresponding to", "depth_cm, bulkDensity_g/cm^3, gravel_content, EvapBareSoil_frac,", @@ -108,46 +104,61 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } + depths <- object@Layers[, 1L] + if ( - !all(is.na(object@Layers[, 1])) && ( - any(object@Layers[, 1] <= 0) || - any(diff(object@Layers[, 1]) < rSW2_glovars[["tol"]]) + !( + all(is.na(depths)) || + all(depths > 0.) && + !anyNA( + rSW2utils::check_monotonic_increase( + depths, + MARGIN = 2L, + strictly = TRUE + ) + ) ) ) { - msg <- "@Layers[, 'depth_cm'] must be positive increasing depths." + msg <- paste( + "@Layers[, 'depth_cm'] must be positive, strictly increasing depths", + "(or all NA)." + ) val <- if (isTRUE(val)) msg else c(val, msg) } - if ( - !all(is.na(object@Layers[, 3:11])) && - (any(object@Layers[, 3:11] < 0) || any(object@Layers[, 3:11] > dtol1)) - ) { + + tmp <- object@Layers[, 3L:11L] + if (!(all(is.na(tmp)) || all(tmp >= 0., tmp <= dtol1))) { msg <- paste( "@Layers values of gravel, evco, trcos, sand, clay, and", - "impermeability must be between 0 and 1." + "impermeability must be between 0 and 1", + "(or all NA)." ) val <- if (isTRUE(val)) msg else c(val, msg) } - tmp <- colSums(object@Layers[, 4:8, drop = FALSE]) - if (any(tmp > dtol1, na.rm = TRUE)) { + tmp <- colSums(object@Layers[, 4L:8L, drop = FALSE]) + if (!(all(is.na(tmp)) || all(tmp <= dtol1, na.rm = TRUE))) { msg <- paste( "@Layers values of profile sums of evco and trcos must be", - "between 0 and 1." + "between 0 and 1", + "(or all NA)." ) val <- if (isTRUE(val)) msg else c(val, msg) } #--- Check "SWRCp" # `SW_SIT_init_run()` will call function to check validity of SWRCp values - if (tmpp[1] != tmpL[1]) { + if (tmpp[1L] != tmpL[1L]) { msg <- paste( "@SWRCp must have exactly the same number of soil layers (rows)", "as @Layers." ) val <- if (isTRUE(val)) msg else c(val, msg) } - if (tmpp[2] != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]]) { + if ( + tmpp[2L] != rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]] + ) { msg <- paste( "@SWRCp must have exactly", rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SWRC_PARAM_NMAX"]], diff --git a/tests/testthat/test_class_constructors.R b/tests/testthat/test_class_constructors.R index 27b3ff5d..56781ded 100644 --- a/tests/testthat/test_class_constructors.R +++ b/tests/testthat/test_class_constructors.R @@ -3,44 +3,54 @@ test_that("Class constructors", { ref <- rSOILWAT2::sw_exampleData expect_s4_class(ref, "swInputData") + sns <- slotNames(ref) sns_dc <- setdiff(sns, c("timestamp", "version")) - #--- Check that constructor helper for "swInputData" reproduces inputs + tmp <- vapply( + sns_dc, + function(x) class(slot(ref, x)), + FUN.VALUE = NA_character_ + ) + list_classes <- setdiff(tmp, c("list", "swLog")) + + + #--- Check that constructor helper for "swInputData" reproduces (valid) inputs expect_s4_class(swInputData(), "swInputData") x <- swInputData(ref) expect_s4_class(x, "swInputData") for (ks in sns_dc) { + expect_true(validObject(slot(x, ks))) expect_equal(slot(x, ks), slot(ref, ks)) } - #--- Check that constructor helper for "swFiles" reproduces inputs - expect_s4_class(swFiles(), "swFiles") - x <- swFiles(get_swFiles(ref)) - expect_s4_class(x, "swFiles") - expect_equal(x, get_swFiles(ref)) + #--- Loop over classes ------ + for (cn in list_classes) { + fun_constructor <- match.fun(cn) + fun_extractor <- match.fun(paste0("get_", cn)) - #--- Check that constructor helper for "swYears" reproduces inputs - expect_s4_class(swYears(), "swYears") - x <- swYears(get_swYears(ref)) - expect_s4_class(x, "swYears") - expect_equal(x, get_swYears(ref)) + #--- Check that constructor helper for each class reproduces inputs + expect_s4_class(fun_constructor(), cn) + x <- fun_constructor(fun_extractor(ref)) + expect_s4_class(x, cn) + expect_equal(x, fun_extractor(ref)) - #--- Check that constructor helper for "swWeather" reproduces inputs - expect_s4_class(swWeather(), "swWeather") - x <- swWeather(get_swWeather(ref)) - expect_s4_class(x, "swWeather") - expect_equal(x, get_swWeather(ref)) + #--- Check that new class objects are valid + expect_true(validObject(new(cn))) + expect_true(validObject(fun_constructor())) + } - #--- Check that constructor helper for "swWeatherData" reproduces inputs + + #--- Check special case: "swWeatherData" expect_s4_class(swWeatherData(), "swWeatherData") x <- swWeatherData(get_swWeatherData(ref, 1980)) expect_s4_class(x, "swWeatherData") expect_equal(x, get_swWeatherData(ref, 1980)) - #--- Check that constructor helper for "weatherHistory" reproduces inputs + + #--- Check special case: "weatherHistory" expect_type(weatherHistory(), "list") expect_s4_class(weatherHistory()[[1]], "swWeatherData") x <- weatherHistory(get_WeatherHistory(ref)) @@ -48,61 +58,8 @@ test_that("Class constructors", { expect_s4_class(x[[1]], "swWeatherData") expect_equal(x, get_WeatherHistory(ref)) - #--- Check that constructor helper for "swCloud" reproduces inputs - expect_s4_class(swCloud(), "swCloud") - x <- swCloud(get_swCloud(ref)) - expect_s4_class(x, "swCloud") - expect_equal(x, get_swCloud(ref)) - - #--- Check that constructor helper for "swMarkov" reproduces inputs - expect_s4_class(swMarkov(), "swMarkov") - x <- swMarkov(get_swMarkov(ref)) - expect_s4_class(x, "swMarkov") - expect_equal(x, get_swMarkov(ref)) - - #--- Check that constructor helper for "swProd" reproduces inputs - expect_s4_class(swProd(), "swProd") - x <- swProd(get_swProd(ref)) - expect_s4_class(x, "swProd") - expect_equal(x, get_swProd(ref)) - - #--- Check that constructor helper for "swSite" reproduces inputs - expect_s4_class(swSite(), "swSite") - x <- swSite(get_swSite(ref)) - expect_s4_class(x, "swSite") - expect_equal(x, get_swSite(ref)) - - #--- Check that constructor helper for "swSoils" reproduces inputs - expect_s4_class(swSoils(), "swSoils") - x <- swSoils(get_swSoils(ref)) - expect_s4_class(x, "swSoils") - expect_equal(x, get_swSoils(ref)) - - #--- Check that constructor helper for "swEstab" reproduces inputs - expect_s4_class(swEstab(), "swEstab") - x <- swEstab(get_swEstab(ref)) - expect_s4_class(x, "swEstab") - expect_equal(x, get_swEstab(ref)) - - #--- Check that constructor helper for "swCarbon" reproduces inputs - expect_s4_class(swCarbon(), "swCarbon") - x <- swCarbon(get_swCarbon(ref)) - expect_s4_class(x, "swCarbon") - expect_equal(x, get_swCarbon(ref)) - - #--- Check that constructor helper for "swOUT" reproduces inputs - expect_s4_class(swOUT(), "swOUT") - x <- swOUT(get_swOUT(ref)) - expect_s4_class(x, "swOUT") - expect_equal(x, get_swOUT(ref)) - - #--- Check that constructor helper for "swSWC" reproduces inputs - expect_s4_class(swSWC(), "swSWC") - x <- swSWC(get_swSWC(ref)) - expect_s4_class(x, "swSWC") - expect_equal(x, get_swSWC(ref)) - - #--- Check that constructor helper for "swLog" reproduces inputs + + #--- Check special case: "swLog" expect_s4_class(swLog(), "swLog") x <- swLog(ref@log) expect_s4_class(x, "swLog") diff --git a/tests/testthat/test_class_swSite.R b/tests/testthat/test_class_swSite.R index 15f53deb..1bdd7bee 100644 --- a/tests/testthat/test_class_swSite.R +++ b/tests/testthat/test_class_swSite.R @@ -40,10 +40,6 @@ test_that("Manipulate 'swSite' class", { swSite_ModelCoefficients(site1) ) - mc["PETmultiplier"] <- -1 - expect_error(swSite_ModelCoefficients(site1) <- mc) - expect_error(swSite_ModelCoefficients(xinput2) <- mc) - mc <- mc_ok mc["DailyRunoff"] <- 0.9 swSite_ModelCoefficients(site1) <- mc @@ -53,24 +49,15 @@ test_that("Manipulate 'swSite' class", { swSite_ModelCoefficients(site1) ) - mc["DailyRunoff"] <- -1 - expect_error(swSite_ModelCoefficients(site1) <- mc) - expect_error(swSite_ModelCoefficients(xinput2) <- mc) - - mc["DailyRunoff"] <- 1.5 - expect_error(swSite_ModelCoefficients(site1) <- mc) - expect_error(swSite_ModelCoefficients(xinput2) <- mc) - mc <- mc_ok mc["DailyRunon"] <- 4 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) - mc["DailyRunon"] <- -1 - expect_error(swSite_ModelCoefficients(site1) <- mc) - expect_error(swSite_ModelCoefficients(xinput2) <- mc) #--- Slot TranspirationRegions expect_equal( From 2cdf388bfe5e044a9f70bc8b45b99e46168c1e7f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 1 Aug 2022 16:04:29 -0400 Subject: [PATCH 087/238] Fix prototype of "swOUT" -- adjust for new "FROZEN" output slot since v5.2.0 * this commit passes new tests to check for class prototype validity which were introduced with the previous commit a4a8251748c1b521fa7f938f82f5318195b4357c * fixed prototype "swOUT" which was used incorrect value for number of output keys since v5.2.0 (which introduced an additional "FROZEN" output key) with commit 89aa74e3b72a4081b06bd51c6a3592204cef2c9e (Merge branch 'main' (v5.2.0) into feature_swrc) --- R/G_swOut.R | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/R/G_swOut.R b/R/G_swOut.R index 4c4ba3df..1548be3f 100644 --- a/R/G_swOut.R +++ b/R/G_swOut.R @@ -56,15 +56,15 @@ setClass( last_orig = "integer", outfile = "character" ), - # TODO: 31 should be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + # TODO: lengths must be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] prototype = list( - mykey = rep(NA_integer_, 31), - myobj = rep(NA_integer_, 31), - sumtype = rep(NA_integer_, 31), - use = rep(NA, 31), - first_orig = rep(NA_integer_, 31), - last_orig = rep(NA_integer_, 31), - outfile = rep(NA_character_, 31) + mykey = rep(NA_integer_, 32L), + myobj = rep(NA_integer_, 32L), + sumtype = rep(NA_integer_, 32L), + use = rep(NA, 32L), + first_orig = rep(NA_integer_, 32L), + last_orig = rep(NA_integer_, 32L), + outfile = rep(NA_character_, 32L) ) ) @@ -172,8 +172,11 @@ setClass( contains = "swOUT_key", prototype = list( outputSeparator = NA_character_, - # 999 must be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]] - timeSteps = array(999, dim = c(31, 4)) + # timeSteps: + # * 999 must be rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]] + # * nrows = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + # * ncols = rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNPERIODS"]] + timeSteps = array(999, dim = c(32L, 4L)) ) ) @@ -183,12 +186,12 @@ setValidity( function(object) { val <- TRUE - if (length(object@outputSeparator) != 1) { + if (length(object@outputSeparator) != 1L) { msg <- "@outputSeparator needs to be of length 1." val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(dim(object@timeSteps)) != 2) { + if (length(dim(object@timeSteps)) != 2L) { msg <- "@timeSteps must be a 2-dimensional matrix" val <- if (isTRUE(val)) msg else c(val, msg) } From 194e5a6b5a25af794ce48c846cd374b5af6edd5c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 09:33:33 -0400 Subject: [PATCH 088/238] Update to roxygen2 v7.2.1 --- DESCRIPTION | 2 +- NAMESPACE | 2 ++ man/swrc_conversion.Rd | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 60ed9083..da7ab14e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -45,7 +45,7 @@ License: GPL-3 URL: https://github.com/DrylandEcology/rSOILWAT2 BugReports: https://github.com/DrylandEcology/rSOILWAT2/issues Encoding: UTF-8 -RoxygenNote: 7.1.2 +RoxygenNote: 7.2.1 LazyData: true Language: en-US VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index e14a65bd..a44c09e5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -117,6 +117,8 @@ export(swMonthlyScalingParams) export(swOUT) export(swOUT_TimeStepsForEveryKey) export(swOUT_key) +export(swOutput) +export(swOutput_KEY) export(swProd) export(swSWC) export(swSWC_hist) diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 3d209b58..be5ec7a5 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -124,13 +124,13 @@ Conversion between soil water content and soil water potential } \section{Functions}{ \itemize{ -\item \code{swrc_swp_to_vwc}: Convenience wrapper +\item \code{swrc_swp_to_vwc()}: Convenience wrapper to convert from `SWP` to `VWC` with selected `SWRC` -\item \code{swrc_vwc_to_swp}: Convenience wrapper +\item \code{swrc_vwc_to_swp()}: Convenience wrapper to convert from `VWC` to `SWP` with selected `SWRC` -}} +}} \section{Details}{ \code{\link[=swrc_names]{swrc_names()}} lists implemented \code{SWRCs}; From d93682b806a548b2b52b4c351bc5d9a1e38500b3 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 10:10:32 -0400 Subject: [PATCH 089/238] New method `sw_upgrade()` - `sw_upgrade()` attempts to upgrade outdated rSOILWAT2 S4 classes to the current version -> replace previous function `upgrade_swInputData()` -> new tests to check for successful upgrade using new outdated example inputs --- NAMESPACE | 3 +- NEWS.md | 5 + R/A_swGenericMethods.R | 49 ++++++++ R/B_swFiles.R | 69 +++++++++++ R/F_swSite.R | 20 ++++ R/F_swSoils.R | 21 ++++ R/G_swOut.R | 108 ++++++++++++++++++ R/K_swContainer.R | 84 ++++++-------- R/Rsw.R | 2 +- data-raw/prepare_testInput_objects.R | 6 + man/sw_upgrade.Rd | 71 ++++++++++++ man/upgrade_swInputData.Rd | 18 --- .../Ex1_input_v4.0.0.rds | Bin 0 -> 5566 bytes .../Ex1_input_v5.2.0.rds | Bin 0 -> 5551 bytes .../Ex1_input_v5.3.1.rds | Bin 0 -> 5552 bytes .../Ex1_input_v6.0.0.rds | Bin 0 -> 5882 bytes .../test_Upgrade_rSOILWAT_S4_classes.R | 28 +++++ 17 files changed, 418 insertions(+), 66 deletions(-) create mode 100644 man/sw_upgrade.Rd delete mode 100644 man/upgrade_swInputData.Rd create mode 100644 tests/test_data/versioned_swInputData/Ex1_input_v4.0.0.rds create mode 100644 tests/test_data/versioned_swInputData/Ex1_input_v5.2.0.rds create mode 100644 tests/test_data/versioned_swInputData/Ex1_input_v5.3.1.rds create mode 100644 tests/test_data/versioned_swInputData/Ex1_input_v6.0.0.rds create mode 100644 tests/testthat/test_Upgrade_rSOILWAT_S4_classes.R diff --git a/NAMESPACE b/NAMESPACE index a44c09e5..121e569d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -134,6 +134,7 @@ export(sw_inputData) export(sw_inputDataFromFiles) export(sw_out_flags) export(sw_outputData) +export(sw_upgrade) export(sw_verbosity) export(swrc_conversion) export(swrc_names) @@ -141,7 +142,6 @@ export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) export(update_biomass) export(update_requested_years) -export(upgrade_swInputData) export(weatherHistory) exportClasses(swCarbon) exportClasses(swCloud) @@ -367,6 +367,7 @@ exportMethods(swYears_EndYear) exportMethods(swYears_FDOFY) exportMethods(swYears_StartYear) exportMethods(swYears_isNorth) +exportMethods(sw_upgrade) importFrom(methods,"as<-") importFrom(methods,"slot<-") importFrom(methods,as) diff --git a/NEWS.md b/NEWS.md index a6cfceb2..9fe96ab0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,11 @@ Small deviations arise due to a fix in the handling of soil moisture values between field capacity and saturation. +## New features +* New method `sw_upgrade()` upgrades objects with + outdated `rSOILWAT2` S4 classes to the current version. + + # rSOILWAT2 v5.3.1 * This version fixes a bug in soil temperature output that was diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index e1788661..df2c1ae0 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -185,6 +185,55 @@ format_timestamp <- function(object) { } +#------ Upgrade sw objects to newer rSOILWAT2 versions ------ + +#' Upgrade a `rSOILWAT2`-classed object from an older package version +#' +#' Missing slots and elements are added and +#' take the new default values from `SOILWAT2`. +#' +#' @param x An object of a "sw" class. +#' @return The upgraded `x`, if needed, to match the current version +#' with missing slots and elements filled with default values. +#' +#' @section Details: +#' List of changes: +#' * Changes with `v6.0.0`: +#' * class [`swSite-class`]: new slot "swrc_flags" +#' * class [`swSoils-class`]: new slot "SWRCp" +#' * class [`swFiles-class`]: +#' SWRC parameter input file added as file 6 for a new total of 23 +#' * Changes with `v5.2.0`: +#' * class [`swOUT-class`]: +#' "FROZEN" added as `outkey` 28 for a new total of 32 +#' * Changes with `v3.1.0`: +#' * class [`swOUT-class`]: +#' "BIOMASS" added as `outkey` 31 for a new total of 31 +#' * Changes with `v2.3.0`: +#' * class [`swOUT-class`]: +#' "SWA" added as `outkey` 8 for a new total of 30 +#' +#' @examples +#' x <- sw_upgrade(rSOILWAT2::sw_exampleData, verbose = TRUE) +#' +#' @md +#' @export +setGeneric( + "sw_upgrade", + function(object, verbose = FALSE) standardGeneric("sw_upgrade") +) + +#' @rdname sw_upgrade +setMethod( + "sw_upgrade", + signature = "ANY", + definition = function(object, verbose = FALSE) { + object + } +) + + + #########FILES########## #' \code{get_swFiles} #' @param object An object of class \code{\linkS4class{swFiles}} or diff --git a/R/B_swFiles.R b/R/B_swFiles.R index f938faeb..5d2e6f34 100644 --- a/R/B_swFiles.R +++ b/R/B_swFiles.R @@ -128,6 +128,74 @@ setValidity( +#' @rdname sw_upgrade +#' @export +setMethod( + "sw_upgrade", + signature = "swFiles", + definition = function(object, verbose = FALSE) { + #--- Compare available and expected number of files + n_exp <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_NFILES"]] + n_has <- length(object@InFiles) + + + #--- Identify upgrade(s) + # Maintenance: + # update `do_upgrade` when `n_exp` changes or new upgrades required! + do_upgrade <- c( + from_v230 = n_has == 22L && n_exp %in% 23L + ) + + do_upgrade <- do_upgrade[do_upgrade] + + if (any(do_upgrade)) { + target <- swFiles() + stopifnot(nrow(target) == n_exp) + + + #--- Loop over upgrades sequentially + for (k in seq_along(do_upgrade)) { + + if (verbose) { + message( + "Upgrading object of class `swFiles`: ", + shQuote(names(do_upgrade)[k]) + ) + } + + # Maintenance: update `switch` when `n_exp` changes! + id_new <- switch( + EXPR = names(do_upgrade)[k], + from_v230 = 6L, + stop( + "Upgrade ", shQuote(names(do_upgrade)[k]), + " is not implemented for class `swFiles`." + ) + ) + + + #--- Upgrade `InFiles` + object@InFiles <- c( + if (id_new > 1L) { + object@InFiles[1L:(id_new - 1L)] + }, + target@InFiles[id_new], + if (id_new <= n_has) { + object@InFiles[id_new:n_has] + } + ) + } + + + #--- Check validity and return + validObject(object) + } + + object + } +) + + #' @rdname swFiles-class #' @export setMethod( @@ -341,6 +409,7 @@ setReplaceMethod( } ) + set_InFiles <- function(object, eID, value) { id <- 1 + rSW2_glovars[["kSOILWAT2"]][["InFiles"]][[eID]] object@InFiles[id] <- value diff --git a/R/F_swSite.R b/R/F_swSite.R index b7a7ed28..aff704c7 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -226,6 +226,26 @@ swSite <- function(...) { +#' @rdname sw_upgrade +#' @export +setMethod( + "sw_upgrade", + signature = "swSite", + definition = function(object, verbose = FALSE) { + #--- Make sure we have SWRC/PDF flags + tmp <- try(object@swrc_flags, silent = TRUE) + if (inherits(tmp, "try-error")) { + if (verbose) { + message("Upgrading object of class `swSite`.") + } + object <- suppressWarnings(swSite(object)) + } + + object + } +) + + #' @rdname swSite-class #' @export setMethod("get_swSite", "swSite", function(object) object) diff --git a/R/F_swSoils.R b/R/F_swSoils.R index e25cc352..02faa4ed 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -216,6 +216,27 @@ swSoils <- function(...) { } + +#' @rdname sw_upgrade +#' @export +setMethod( + "sw_upgrade", + signature = "swSoils", + definition = function(object, verbose = FALSE) { + #--- Make sure we have SWRC parameters + tmp <- try(object@SWRCp, silent = TRUE) + if (inherits(tmp, "try-error")) { + if (verbose) { + message("Upgrading object of class `swSoils`.") + } + object <- suppressWarnings(swSoils(object)) + } + + object + } +) + + #' @rdname swSoils-class #' @export setMethod("get_swSoils", "swSoils", function(object) object) diff --git a/R/G_swOut.R b/R/G_swOut.R index 1548be3f..8d87a039 100644 --- a/R/G_swOut.R +++ b/R/G_swOut.R @@ -265,6 +265,114 @@ swOUT <- function(...) { } +#' @rdname sw_upgrade +#' @export +setMethod( + "sw_upgrade", + signature = "swOUT", + definition = function(object, verbose = FALSE) { + #--- Compare available and expected number of outkeys + n_exp <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["SW_OUTNKEYS"]] + n_has <- nrow(object@timeSteps) + + + #--- Identify upgrade(s) + # Maintenance: + # update `do_upgrade` when `n_exp` changes or new upgrades required! + do_upgrade <- c( + from_v230 = n_has == 30L && n_exp %in% 31L:32L, + from_v310 = n_has == 31L && n_exp %in% 32L + ) + + do_upgrade <- do_upgrade[do_upgrade] + + if (any(do_upgrade)) { + target <- swOUT() + stopifnot(nrow(target) == n_exp) + + + #--- Loop over upgrades sequentially + for (k in seq_along(do_upgrade)) { + + if (verbose) { + message( + "Upgrading object of class `swOUT`: ", + shQuote(names(do_upgrade)[k]) + ) + } + + # Maintenance: update `switch` when `n_exp` changes! + id_new <- switch( + EXPR = names(do_upgrade)[k], + from_v230 = n_exp, + from_v310 = 28L, + stop( + "Upgrade ", shQuote(names(do_upgrade)[k]), + " is not implemented for class `swOUT`." + ) + ) + + + #--- Upgrade `timeSteps` + tmp <- object@timeSteps + + # Grab available values or default + has_missing <- apply( + tmp, + MARGIN = 1L, + function(object) { + any(object == rSW2_glovars[["kSOILWAT2"]][["kINT"]][["eSW_NoTime"]]) + } + ) + id <- which(!has_missing) + tmp_new <- if (length(id) > 0) { + tmp[id[[1L]], , drop = FALSE] + } else { + target@timeSteps[id_new, , drop = FALSE] + } + + object@timeSteps <- rbind( + if (id_new > 1L) { + tmp[1L:(id_new - 1L), , drop = FALSE] + }, + tmp_new, + if (id_new <= n_has) { + tmp[id_new:n_has, , drop = FALSE] + } + ) + + #--- Upgrade `swOUT_key`s + object@mykey <- target@mykey + + list_keys <- c( + "myobj", "sumtype", "use", "first_orig", "last_orig", "outfile" + ) + + for (sn in list_keys) { + tmp <- slot(object, sn) + slot(object, sn) <- c( + if (id_new > 1L) { + tmp[1L:(id_new - 1L)] + }, + slot(target, sn)[id_new], + if (id_new <= n_has) { + tmp[id_new:n_has] + } + ) + } + + } + + + #--- Check validity and return + validObject(object) + } + + object + } +) + + #' @rdname swOUT-class #' @export setMethod("get_swOUT", "swOUT", function(object) object) diff --git a/R/K_swContainer.R b/R/K_swContainer.R index a3268b17..2b5cbdd4 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -227,64 +227,56 @@ setValidity( ) - -#' Attempt to upgrade essential slots if input object is from an older version -#' -#' Missing slots are added and take the new default values from `SOILWAT2`. -#' -#' @param x An object of class \code{\linkS4class{swInputData}}. -#' @return An object of class \code{\linkS4class{swInputData}}, -#' potentially upgraded. -#' +#' @rdname sw_upgrade #' @export -upgrade_swInputData <- function(x) { +setMethod( + "sw_upgrade", + signature = "swInputData", + definition = function(object, verbose = FALSE) { - # Suppress warnings in case `x` is indeed invalid (outdated) - if (!suppressWarnings(check_version(x))) { - # Only consider upgrades if version is less than current msg_upgrades <- NULL - #--- Make sure we have SWRC/PDF flags - tmp <- try(x@site@swrc_flags, silent = TRUE) - if (inherits(tmp, "try-error")) { - x@site <- suppressWarnings(swSite(x@site)) - msg_upgrades <- c(msg_upgrades, "swrc_flags") - } + # Suppress warnings in case `object` is indeed invalid (outdated) + if (!suppressWarnings(check_version(object))) { - #--- Make sure we have SWRC parameters - tmp <- try(x@soils@SWRCp, silent = TRUE) - if (inherits(tmp, "try-error")) { - x@soils <- suppressWarnings(swSoils(x@soils)) - msg_upgrades <- c(msg_upgrades, "SWRCp") - } + for (sn in slotNames(object)) { + tmp <- try(validObject(slot(object, sn)), silent = TRUE) + if (inherits(tmp, "try-error")) { + slot(object, sn) <- suppressWarnings( + sw_upgrade(slot(object, sn), verbose = FALSE) + ) - #--- Make sure we have the name to the SWRC parameter input file - # Note: non-essential to run `sw_exec()` but it helps pass `validObject()` - tmp <- try(validObject(x@files), silent = TRUE) - if (inherits(tmp, "try-error")) { - x@files@InFiles <- swFiles()@InFiles - msg_upgrades <- c(msg_upgrades, "InFiles") - } + msg_upgrades <- c(msg_upgrades, sn) + } + } - if (length(msg_upgrades) > 1) { - message( - "Outdated object was upgraded; ", - "default values were used to add previously missing slots: ", - toString(shQuote(msg_upgrades)) - ) + if (length(msg_upgrades) > 1) { + #--- Update version/timestamp + object@version <- rSW2_version() + object@timestamp <- rSW2_timestamp() + + #--- Check validity and return + validObject(object) + } + } - #--- Update version/timestamp - x@version <- rSW2_version() - x@timestamp <- rSW2_timestamp() - #--- Check validity and return - validObject(x) + if (verbose) { + if (length(msg_upgrades) > 1) { + message( + "Upgrading object of class `swInputData`: ", + toString(shQuote(msg_upgrades)) + ) + } else { + message("Object of class `swInputData` was already up-to-date.") + } } - } - x -} + + object + } +) diff --git a/R/Rsw.R b/R/Rsw.R index 9feca2b9..8b3aa06b 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -255,7 +255,7 @@ sw_exec <- function( # Upgrade essential slots if input object is from an older version - inputData <- upgrade_swInputData(inputData) + inputData <- sw_upgrade(inputData, verbose = !quiet) if (!check_version(inputData, level = "minor")) { diff --git a/data-raw/prepare_testInput_objects.R b/data-raw/prepare_testInput_objects.R index d848d130..ee2f8d93 100755 --- a/data-raw/prepare_testInput_objects.R +++ b/data-raw/prepare_testInput_objects.R @@ -188,3 +188,9 @@ print(paste( shQuote(dir_backup), "before pushing to repository if script worked well." )) + +print(paste( + "NOTE: Copy", + "'Ex1_input.rds' to 'versioned_swInputData/' as 'Ex1_input_vX.Y.Z.rds'", + "if significant changes to any class occurred." +)) diff --git a/man/sw_upgrade.Rd b/man/sw_upgrade.Rd new file mode 100644 index 00000000..8247c0d9 --- /dev/null +++ b/man/sw_upgrade.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R, R/B_swFiles.R, +% R/F_swSite.R, R/F_swSoils.R, R/G_swOut.R, R/K_swContainer.R +\name{sw_upgrade} +\alias{sw_upgrade} +\alias{sw_upgrade,ANY-method} +\alias{sw_upgrade,swFiles-method} +\alias{sw_upgrade,swSite-method} +\alias{sw_upgrade,swSoils-method} +\alias{sw_upgrade,swOUT-method} +\alias{sw_upgrade,swInputData-method} +\title{Upgrade a \code{rSOILWAT2}-classed object from an older package version} +\usage{ +sw_upgrade(object, verbose = FALSE) + +\S4method{sw_upgrade}{ANY}(object, verbose = FALSE) + +\S4method{sw_upgrade}{swFiles}(object, verbose = FALSE) + +\S4method{sw_upgrade}{swSite}(object, verbose = FALSE) + +\S4method{sw_upgrade}{swSoils}(object, verbose = FALSE) + +\S4method{sw_upgrade}{swOUT}(object, verbose = FALSE) + +\S4method{sw_upgrade}{swInputData}(object, verbose = FALSE) +} +\arguments{ +\item{x}{An object of a "sw" class.} +} +\value{ +The upgraded \code{x}, if needed, to match the current version +with missing slots and elements filled with default values. +} +\description{ +Missing slots and elements are added and +take the new default values from \code{SOILWAT2}. +} +\section{Details}{ + +List of changes: +\itemize{ +\item Changes with \code{v6.0.0}: +\itemize{ +\item class \code{\linkS4class{swSite}}: new slot "swrc_flags" +\item class \code{\linkS4class{swSoils}}: new slot "SWRCp" +\item class \code{\linkS4class{swFiles}}: +SWRC parameter input file added as file 6 for a new total of 23 +} +\item Changes with \code{v5.2.0}: +\itemize{ +\item class \code{\linkS4class{swOUT}}: +"FROZEN" added as \code{outkey} 28 for a new total of 32 +} +\item Changes with \code{v3.1.0}: +\itemize{ +\item class \code{\linkS4class{swOUT}}: +"BIOMASS" added as \code{outkey} 31 for a new total of 31 +} +\item Changes with \code{v2.3.0}: +\itemize{ +\item class \code{\linkS4class{swOUT}}: +"SWA" added as \code{outkey} 8 for a new total of 30 +} +} +} + +\examples{ + x <- sw_upgrade(rSOILWAT2::sw_exampleData, verbose = TRUE) + +} diff --git a/man/upgrade_swInputData.Rd b/man/upgrade_swInputData.Rd deleted file mode 100644 index 30d966d2..00000000 --- a/man/upgrade_swInputData.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/K_swContainer.R -\name{upgrade_swInputData} -\alias{upgrade_swInputData} -\title{Attempt to upgrade essential slots if input object is from an older version} -\usage{ -upgrade_swInputData(x) -} -\arguments{ -\item{x}{An object of class \code{\linkS4class{swInputData}}.} -} -\value{ -An object of class \code{\linkS4class{swInputData}}, - potentially upgraded. -} -\description{ -Missing slots are added and take the new default values from `SOILWAT2`. -} diff --git a/tests/test_data/versioned_swInputData/Ex1_input_v4.0.0.rds b/tests/test_data/versioned_swInputData/Ex1_input_v4.0.0.rds new file mode 100644 index 0000000000000000000000000000000000000000..d8a9895e10e5b154be076ab20840403a96ea35f5 GIT binary patch literal 5566 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 literal 0 HcmV?d00001 diff --git a/tests/test_data/versioned_swInputData/Ex1_input_v5.3.1.rds b/tests/test_data/versioned_swInputData/Ex1_input_v5.3.1.rds new file mode 100644 index 0000000000000000000000000000000000000000..b05d915961d3760915854d6d7a171abcbe7bf0ec GIT binary patch literal 5552 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 literal 0 HcmV?d00001 diff --git a/tests/testthat/test_Upgrade_rSOILWAT_S4_classes.R b/tests/testthat/test_Upgrade_rSOILWAT_S4_classes.R new file mode 100644 index 00000000..8a575321 --- /dev/null +++ b/tests/testthat/test_Upgrade_rSOILWAT_S4_classes.R @@ -0,0 +1,28 @@ + + +# Maintenance: +# Copy "Ex1_input.rds" to "versioned_swInputData/" (with updated name) +# if significant changes occurred. + +test_that("Upgrade old rSOILWAT2 input objects", { + #--- Locate versioned `swInputData` objects + dir_test_data <- file.path("..", "test_data", "versioned_swInputData") + fnames_vdata <- list.files( + dir_test_data, pattern = "Ex1_input_v", + full.names = TRUE + ) + + expect_gt(length(fnames_vdata), 0L) + + + # Upgrade `swInputData` + for (k in seq_along(fnames_vdata)) { + xold <- readRDS(fnames_vdata[k]) + + if (!suppressWarnings(check_version(xold))) { + expect_error(validObject(xold)) + } + + expect_true(validObject(sw_upgrade(xold))) + } +}) From 034dc6e438a532bad0de516a0e20959657e1dff1 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 10:25:30 -0400 Subject: [PATCH 090/238] Code linting - [function_argument_linter] Arguments without defaults should come before arguments with defaults - Found if() conditions comparing class() to string: - Potential spelling errors: SWA, SWRCp, sw --- .lintr | 1 + R/A_swGenericMethods.R | 14 +++++++------- R/rSOILWAT2_deprecated.R | 10 +++++++++- man/sw_upgrade.Rd | 14 +++++++------- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.lintr b/.lintr index fba2f0d0..5658a59a 100644 --- a/.lintr +++ b/.lintr @@ -12,6 +12,7 @@ linters: lintr::linters_with_tags( todo_comment_linter = NULL, nonportable_path_linter = NULL, expect_identical_linter = NULL, + function_argument_linter = NULL, yoda_test_linter = NULL) exclusions: list( "R/RcppExports.R", diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index df2c1ae0..b3c5e85d 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -192,26 +192,26 @@ format_timestamp <- function(object) { #' Missing slots and elements are added and #' take the new default values from `SOILWAT2`. #' -#' @param x An object of a "sw" class. +#' @param x An object of a `rSOILWAT2` class. #' @return The upgraded `x`, if needed, to match the current version #' with missing slots and elements filled with default values. #' #' @section Details: #' List of changes: #' * Changes with `v6.0.0`: -#' * class [`swSite-class`]: new slot "swrc_flags" -#' * class [`swSoils-class`]: new slot "SWRCp" +#' * class [`swSite-class`]: new slot `"swrc_flags"` +#' * class [`swSoils-class`]: new slot `"SWRCp"` #' * class [`swFiles-class`]: -#' SWRC parameter input file added as file 6 for a new total of 23 +#' `SWRC` parameter input file added as file 6 for a new total of 23 #' * Changes with `v5.2.0`: #' * class [`swOUT-class`]: -#' "FROZEN" added as `outkey` 28 for a new total of 32 +#' `"FROZEN"` added as `outkey` 28 for a new total of 32 #' * Changes with `v3.1.0`: #' * class [`swOUT-class`]: -#' "BIOMASS" added as `outkey` 31 for a new total of 31 +#' `"BIOMASS"` added as `outkey` 31 for a new total of 31 #' * Changes with `v2.3.0`: #' * class [`swOUT-class`]: -#' "SWA" added as `outkey` 8 for a new total of 30 +#' `"SWA"` added as `outkey` 8 for a new total of 30 #' #' @examples #' x <- sw_upgrade(rSOILWAT2::sw_exampleData, verbose = TRUE) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index 5bb662ef..ec987f75 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -88,7 +88,15 @@ dbW_addWeatherData_old <- function(Site_id=NULL, lat=NULL, long=NULL, weatherFol .Deprecated("dbW_addWeatherData") stopifnot(dbW_IsValid()) - if( (is.null(weatherFolderPath) | ifelse(!is.null(weatherFolderPath), (weatherFolderPath == "" | !file.exists(weatherFolderPath)), FALSE)) & (is.null(weatherData) | !is.list(weatherData) | class(weatherData[[1]]) != "swWeatherData") ) stop("addWeatherDataToDataBase does not have folder path or weatherData to insert") + if ( + ( + is.null(weatherFolderPath) | + ifelse(!is.null(weatherFolderPath), (weatherFolderPath == "" | !file.exists(weatherFolderPath)), FALSE) + ) & + (is.null(weatherData) | !is.list(weatherData) | !inherits(weatherData[[1]], "swWeatherData")) + ) { + stop("addWeatherDataToDataBase does not have folder path or weatherData to insert") + } if( (is.null(Site_id) & is.null(lat) & is.null(long) & is.null(weatherFolderPath) & (is.null(label))) | ((!is.null(Site_id) & !is.numeric(Site_id)) & (!is.null(lat) & !is.numeric(lat)) & (!is.null(long) & !is.numeric(long))) ) stop("addWeatherDataToDataBase not enough info to create Site in Sites table.") Site_id <- dbW_addSite( diff --git a/man/sw_upgrade.Rd b/man/sw_upgrade.Rd index 8247c0d9..e0953fb8 100644 --- a/man/sw_upgrade.Rd +++ b/man/sw_upgrade.Rd @@ -26,7 +26,7 @@ sw_upgrade(object, verbose = FALSE) \S4method{sw_upgrade}{swInputData}(object, verbose = FALSE) } \arguments{ -\item{x}{An object of a "sw" class.} +\item{x}{An object of a \code{rSOILWAT2} class.} } \value{ The upgraded \code{x}, if needed, to match the current version @@ -42,25 +42,25 @@ List of changes: \itemize{ \item Changes with \code{v6.0.0}: \itemize{ -\item class \code{\linkS4class{swSite}}: new slot "swrc_flags" -\item class \code{\linkS4class{swSoils}}: new slot "SWRCp" +\item class \code{\linkS4class{swSite}}: new slot \code{"swrc_flags"} +\item class \code{\linkS4class{swSoils}}: new slot \code{"SWRCp"} \item class \code{\linkS4class{swFiles}}: -SWRC parameter input file added as file 6 for a new total of 23 +\code{SWRC} parameter input file added as file 6 for a new total of 23 } \item Changes with \code{v5.2.0}: \itemize{ \item class \code{\linkS4class{swOUT}}: -"FROZEN" added as \code{outkey} 28 for a new total of 32 +\code{"FROZEN"} added as \code{outkey} 28 for a new total of 32 } \item Changes with \code{v3.1.0}: \itemize{ \item class \code{\linkS4class{swOUT}}: -"BIOMASS" added as \code{outkey} 31 for a new total of 31 +\code{"BIOMASS"} added as \code{outkey} 31 for a new total of 31 } \item Changes with \code{v2.3.0}: \itemize{ \item class \code{\linkS4class{swOUT}}: -"SWA" added as \code{outkey} 8 for a new total of 30 +\code{"SWA"} added as \code{outkey} 8 for a new total of 30 } } } From 90750edc2b795780a011811431e330fbd05a8580 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 11:15:13 -0400 Subject: [PATCH 091/238] Make `sw_upgrade()` less verbose - print messages only if `verbose` and any upgrades --- R/K_swContainer.R | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 2b5cbdd4..6608167c 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -252,6 +252,13 @@ setMethod( if (length(msg_upgrades) > 1) { + if (verbose) { + message( + "Upgrading object of class `swInputData`: ", + toString(shQuote(msg_upgrades)) + ) + } + #--- Update version/timestamp object@version <- rSW2_version() object@timestamp <- rSW2_timestamp() @@ -261,19 +268,6 @@ setMethod( } } - - if (verbose) { - if (length(msg_upgrades) > 1) { - message( - "Upgrading object of class `swInputData`: ", - toString(shQuote(msg_upgrades)) - ) - } else { - message("Object of class `swInputData` was already up-to-date.") - } - } - - object } ) From f8c1e4462f05389a11fe66533c817dbe6525da7c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 17:07:25 -0400 Subject: [PATCH 092/238] Set devel pkg to v6.0.0 & update roxygen2 to v7.2.1 --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index ee85cb8c..5c057dff 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: rSOILWAT2 -Version: 5.3.1-9000 +Version: 6.0.0-9000 Title: An Ecohydrological Ecosystem-Scale Water Balance Simulation Model Description: Access to the C-based SOILWAT2 v6.5.1 and functionality for SQLite-database of weather data. @@ -45,7 +45,7 @@ License: GPL-3 URL: https://github.com/DrylandEcology/rSOILWAT2 BugReports: https://github.com/DrylandEcology/rSOILWAT2/issues Encoding: UTF-8 -RoxygenNote: 7.1.2 +RoxygenNote: 7.2.1 LazyData: true Language: en-US VignetteBuilder: knitr From 41794768237f9f44b9c90d6455ad4c68faf1ab7f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 2 Aug 2022 17:26:15 -0400 Subject: [PATCH 093/238] Specify type of soil density inputs - close #209 (Integrate SOILWAT2's soil density descriptor) - see https://github.com/DrylandEcology/SOILWAT2/pull/324 (SOILWAT2 submodule points to this devel branch for now) - new behavior: user specifies whether input soil density represents matric or bulk density; code then determines both matric and bulk density values from inputs - Class `swSite` gains new slot `"SoilDensityInputType"` and associated methods `swSite_SoilDensityInputType()` (#209). "SoilDensityInputType" encodes if soil density inputs represent matric soil or bulk soil values. --- .gitmodules | 2 +- NAMESPACE | 2 ++ NEWS.md | 3 +++ R/A_swGenericMethods.R | 20 +++++++++++++++ R/F_swSite.R | 28 ++++++++++++++++++++ R/K_swContainer.R | 19 ++++++++++++++ data/sw_exampleData.rda | Bin 53990 -> 53972 bytes inst/extdata/example1/Input/siteparam.in | 4 +++ man/swInputData-class.Rd | 6 +++++ man/swSite-class.Rd | 6 +++++ man/swSite_SoilDensityInputType-set.Rd | 20 +++++++++++++++ man/swSite_SoilDensityInputType.Rd | 18 +++++++++++++ src/SOILWAT2 | 2 +- src/rSW_Site.c | 31 +++++++++++++++++------ tests/test_data/Ex1_input.rds | Bin 5552 -> 5560 bytes tests/test_data/Ex2_input.rds | Bin 12855 -> 12866 bytes tests/test_data/Ex3_input.rds | Bin 5551 -> 5561 bytes tests/test_data/Ex4_input.rds | Bin 5551 -> 5561 bytes tests/test_data/Ex5_input.rds | Bin 5555 -> 5565 bytes vignettes/rSOILWAT2_demo.Rmd | 3 +++ 20 files changed, 154 insertions(+), 10 deletions(-) create mode 100644 man/swSite_SoilDensityInputType-set.Rd create mode 100644 man/swSite_SoilDensityInputType.Rd diff --git a/.gitmodules b/.gitmodules index 39058bbd..db4d3ff6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = master + branch = feature_soildensity_type diff --git a/NAMESPACE b/NAMESPACE index 571135cc..42621bc8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -211,6 +211,7 @@ exportMethods("swSite_ModelCoefficients<-") exportMethods("swSite_ModelFlags<-") exportMethods("swSite_SWClimits<-") exportMethods("swSite_SnowSimulationParams<-") +exportMethods("swSite_SoilDensityInputType<-") exportMethods("swSite_SoilTemperatureConsts<-") exportMethods("swSite_SoilTemperatureFlag<-") exportMethods("swSite_TranspCoefficients<-") @@ -307,6 +308,7 @@ exportMethods(swSite_ModelCoefficients) exportMethods(swSite_ModelFlags) exportMethods(swSite_SWClimits) exportMethods(swSite_SnowSimulationParams) +exportMethods(swSite_SoilDensityInputType) exportMethods(swSite_SoilTemperatureConsts) exportMethods(swSite_SoilTemperatureFlag) exportMethods(swSite_TranspCoefficients) diff --git a/NEWS.md b/NEWS.md index bf598358..308cb102 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,9 @@ # rSOILWAT2 devel * `r-lib` Github Actions updated to `v2`; separate workflows for `R-CMD-check` and `test-coverage` (#202). +* Class `swSite` gains new slot `"SoilDensityInputType"` and associated + methods `swSite_SoilDensityInputType()` (#209). + This encodes if soil density inputs represent matric soil or bulk soil values. # rSOILWAT2 v5.3.1 diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 04a50645..5d8743c2 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -1483,6 +1483,16 @@ setGeneric( function(object) standardGeneric("swSite_SoilTemperatureConsts") ) +#' \code{swSite_SoilTemperatureFlag} +#' @param object An object of class \code{\linkS4class{swSite}} or +#' \code{\linkS4class{swInputData}}. +#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +setGeneric( + "swSite_SoilDensityInputType", + function(object) standardGeneric("swSite_SoilDensityInputType") +) + + #' \code{swSite_TranspirationRegions} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. @@ -1608,6 +1618,16 @@ setGeneric( function(object, value) standardGeneric("swSite_SoilTemperatureConsts<-") ) +#' \code{swSite_SoilDensityInputType<-} +#' @param object An object of class \code{\linkS4class{swSite}} or +#' \code{\linkS4class{swInputData}}. +#' @param value A value to assign to a specific slot of the \code{object}. +#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +setGeneric( + "swSite_SoilDensityInputType<-", + function(object, value) standardGeneric("swSite_SoilDensityInputType<-") +) + #' \code{swSite_TranspirationRegions<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. diff --git a/R/F_swSite.R b/R/F_swSite.R index 54037568..58449faa 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -60,6 +60,7 @@ setClass( IntrinsicSiteParams = "numeric", SoilTemperatureFlag = "logical", SoilTemperatureConstants = "numeric", + SoilDensityInputType = "integer", TranspirationRegions = "matrix" ) ) @@ -128,6 +129,14 @@ setValidity("swSite", function(object) { msg <- "@SoilTemperatureConstants length != 10." val <- if (isTRUE(val)) msg else c(val, msg) } + if (typeof(object@SoilDensityInputType) != "integer") { + msg <- "@SoilDensityInputType is of integer type." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@SoilDensityInputType) != 1L) { + msg <- "@SoilDensityInputType length != 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } if (typeof(object@TranspirationRegions) != "integer") { msg <- "@TranspirationRegions is of integer type." val <- if (isTRUE(val)) msg else c(val, msg) @@ -239,6 +248,14 @@ setMethod("swSite_SoilTemperatureFlag", "swSite", setMethod("swSite_SoilTemperatureConsts", "swSite", function(object) slot(object, "SoilTemperatureConstants")) +#' @rdname swSite-class +#' @export +setMethod( + "swSite_SoilDensityInputType", + "swSite", + function(object) slot(object, "SoilDensityInputType") +) + #' @rdname swSite-class #' @export setMethod("swSite_TranspirationRegions", "swSite", @@ -343,6 +360,17 @@ setReplaceMethod("swSite_SoilTemperatureConsts", signature = "swSite", object }) +#' @rdname swSite-class +#' @export +setReplaceMethod( + "swSite_SoilDensityInputType", + signature = "swSite", + definition = function(object, value) { + object@SoilDensityInputType <- as.integer(value[1L]) + validObject(object) + object +}) + #' @rdname swSite-class #' @export setReplaceMethod("swSite_TranspirationRegions", signature = "swSite", diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 99b074c7..fc5c90fe 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1503,6 +1503,14 @@ setMethod( function(object) swSite_SoilTemperatureConsts(object@site) ) +#' @rdname swInputData-class +#' @export +setMethod( + "swSite_SoilDensityInputType", + signature = "swInputData", + function(object) swSite_SoilDensityInputType(object@site) +) + #' @rdname swInputData-class #' @export setMethod( @@ -1633,6 +1641,17 @@ setReplaceMethod( } ) +#' @rdname swInputData-class +#' @export +setReplaceMethod( + "swSite_SoilDensityInputType", + signature = "swInputData", + function(object, value) { + swSite_SoilDensityInputType(object@site) <- value + object + } +) + #' @rdname swInputData-class #' @export setReplaceMethod( diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 10c022ffb114e399f2254d1596926de7a67b899f..1087f872ee816112927493b3c8cb8d2def65f86c 100644 GIT binary patch delta 53570 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 delta 53633 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 i++) { p_Layers[i + (v->n_layers) * 0] = dmax = v->lyr[i]->width + dmax; - p_Layers[i + (v->n_layers) * 1] = v->lyr[i]->soilMatric_density; + p_Layers[i + (v->n_layers) * 1] = v->lyr[i]->soilDensityInput; p_Layers[i + (v->n_layers) * 2] = v->lyr[i]->fractionVolBulk_gravel; p_Layers[i + (v->n_layers) * 3] = v->lyr[i]->evap_coeff; p_Layers[i + (v->n_layers) * 4] = v->lyr[i]->transp_coeff[SW_GRASS]; @@ -107,7 +109,7 @@ void onSet_SW_LYR(SEXP SW_SOILS) { SW_SITE *v = &SW_Site; LyrIndex lyrno; int i, j, k, columns; - RealF dmin = 0.0, dmax, evco, trco_veg[NVEGTYPES], psand, pclay, matricd, imperm, soiltemp, f_gravel; + RealF dmin = 0.0, dmax, evco, trco_veg[NVEGTYPES], psand, pclay, soildensity, imperm, soiltemp, f_gravel; RealD *p_Layers; SEXP SW_LYR; @@ -135,7 +137,7 @@ void onSet_SW_LYR(SEXP SW_SOILS) { lyrno = _newlayer(); dmax = p_Layers[i + j * 0]; - matricd = p_Layers[i + j * 1]; + soildensity = p_Layers[i + j * 1]; f_gravel = p_Layers[i + j * 2]; evco = p_Layers[i + j * 3]; trco_veg[SW_GRASS] = p_Layers[i + j * 4]; @@ -149,7 +151,7 @@ void onSet_SW_LYR(SEXP SW_SOILS) { v->lyr[lyrno]->width = dmax - dmin; dmin = dmax; - v->lyr[lyrno]->soilMatric_density = matricd; + v->lyr[lyrno]->soilDensityInput = soildensity; v->lyr[lyrno]->fractionVolBulk_gravel = f_gravel; v->lyr[lyrno]->evap_coeff = evco; ForEachVegType(k) { @@ -207,6 +209,8 @@ SEXP onGet_SW_SIT() { char *cSoilTempValues[] = { "BiomassLimiter_g/m^2", "T1constant_a", "T1constant_b", "T1constant_c", "cs_constant_SoilThermCondct", "cs_constant", "sh_constant_SpecificHeatCapacity", "ConstMeanAirTemp", "deltaX_Param", "MaxDepth" }; + SEXP SoilDensityInputType; + SEXP TranspirationRegions, TranspirationRegions_names, TranspirationRegions_names_y; char *cTranspirationRegions[] = { "ndx", "layer" }; int *p_transp; // ideally `LyrIndex` so that same type as `_TranspRgnBounds`, but R API INTEGER() is signed @@ -310,6 +314,8 @@ SEXP onGet_SW_SIT() { SET_STRING_ELT(SoilTemperatureConstants_names, i, mkChar(cSoilTempValues[i])); setAttrib(SoilTemperatureConstants, R_NamesSymbol, SoilTemperatureConstants_names); + PROTECT(SoilDensityInputType = ScalarInteger(v->type_soilDensityInput)); + PROTECT(TranspirationRegions = allocMatrix(INTSXP,(v->n_transp_rgn),2)); p_transp = INTEGER(TranspirationRegions); for (i = 0; i < (v->n_transp_rgn); i++) { @@ -333,9 +339,10 @@ SEXP onGet_SW_SIT() { SET_SLOT(SW_SIT, install(cSW_SIT[7]), IntrinsicSiteParams); SET_SLOT(SW_SIT, install(cSW_SIT[8]), SoilTemperatureConstants_use); SET_SLOT(SW_SIT, install(cSW_SIT[9]), SoilTemperatureConstants); - SET_SLOT(SW_SIT, install(cSW_SIT[10]), TranspirationRegions); + SET_SLOT(SW_SIT, install(cSW_SIT[10]), SoilDensityInputType); + SET_SLOT(SW_SIT, install(cSW_SIT[11]), TranspirationRegions); - UNPROTECT(24); + UNPROTECT(25); return SW_SIT; } @@ -353,7 +360,9 @@ void onSet_SW_SIT(SEXP SW_SIT) { SEXP IntrinsicSiteParams; SEXP SoilTemperatureConstants_use; SEXP SoilTemperatureConstants; + SEXP SoilDensityInputType; SEXP TranspirationRegions; + int *p_transp; // ideally `LyrIndex` so that same type as `_TranspRgnBounds`, but R API INTEGER() is signed #ifdef RSWDEBUG @@ -459,6 +468,12 @@ void onSet_SW_SIT(SEXP SW_SIT) { if (debug) swprintf(" > 'soiltemp-constants'"); #endif + PROTECT(SoilDensityInputType = GET_SLOT(SW_SIT, install("SoilDensityInputType"))); + v->type_soilDensityInput = INTEGER(SoilDensityInputType)[0]; + #ifdef RSWDEBUG + if (debug) swprintf(" > 'density-type'"); + #endif + PROTECT(TranspirationRegions = GET_SLOT(SW_SIT, install("TranspirationRegions"))); p_transp = INTEGER(TranspirationRegions); v->n_transp_rgn = nrows(TranspirationRegions); @@ -488,5 +503,5 @@ void onSet_SW_SIT(SEXP SW_SIT) { if (debug) swprintf(" ... done. \n"); #endif - UNPROTECT(11); + UNPROTECT(12); } diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index b05d915961d3760915854d6d7a171abcbe7bf0ec..c11564b727d8c34db4461700ab698cbcd51c01eb 100644 GIT binary patch literal 5560 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 CUn{Ht literal 5552 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 diff --git a/tests/test_data/Ex3_input.rds b/tests/test_data/Ex3_input.rds index 6c0a3ededa214caafc5dd3d5181e497f37a15a83..a2a137e595d46790d3ab151a41af78d6db197088 100644 GIT binary patch literal 5561 zcmai%cQhPYyN5+2h)%R<31$RAL>V=RBw9p7hKx3P8zqR|qnGF*IC{u2dW$j`HH7FH zqmAB28AcflZocoVyYBkVz3bflto2*Ze*f5O@BPPK@8*f6Ao=&WzGLF&$l2=yjdqDi zwu}9?s%AXlYSQ5ffW$yQX3J;N={^$FRd{{d8uGQZwFv<@@k~E&9B-m5xa|?jqK;CF z>AZFa;StiQe247W>%M5+Qt9OOavB+rlsbDub=r|U57PVLPK1Pl-Jjbo$DSw0_hZtw zfZ0s?N`d$QAm>+d%^SIzXyR;l9y{BwikjycnMGh-apGRJS(lK+dG_sa zV3n6g!X&&<-^jvE1QXR=Cqhxqgeq<9#_tqwWh#SBDps9(g`T#6m@~n8*~K;wN9-a@ z!HQ$lJQSU6ua?}S-7-Q~PB^k}9h{2mjCrg^7HY#E_ zw!$9trlQqS!2^dvP96DV}FR0UmAP_sz2-IHyxH1t118t z#i?qZl{_t)J^JOZSVaYY!kZk@4t3yERM)Bru#4Cln{E}i!A|IIE<1JT*IU=W zU=%-*ZBjk|%JO{e_|+mZRCqTO6q_nNnT~(cYxKo1?YeRPp+fGVoHGj(a9&65Gn>3* z^`xYk!K|78_K0`4nX1(0Q!hG0+JRR^O5AFDe&rdpeS49m=W~eJ*$oxS;v)^b=#LEj zRw?E|UkjLN&QzSN?+>QzT*g3)??z$!WiEzAV}P_rCaPYnl!n>9ug}mK zwX+d{Q!Kw#ICQ;DBQuDDx5ckp?7V{YIJ^5;y!)?*UqiIe zgicBIGpp#}%#Lxgra2i6rslZ@wd6YPvWPzlau1$t()@b~i&Cu1&0M+(q z)lv$sl_HGIL7N6g1-nw2p6G+f2jZLbtw~VPJ$TNfuw*UVIUXIg+2oTY^PXbrRUnIB zi08*N+IJ)0CeT(5W-sU!<~i=rhK#u18}1|PdBZBXp@Fn# zvK#ApzlHnEXJb7-H}aC=P%Tf1^nzi7H4hpbcI%JmG;1XU{fR^Pypv zY=^yhN;faWH+aG?b^nS4)gaEZTkp@uy%-jfRZ68 z0vU+Bgl9NP0+~PQ<7>IWI_&}rOgOED^mefjC@GRGkdnwq0N@4|(mTXLp*NA#f$YRb z1Z$k|f_GoYOm`IJP~scj{RwA`u!OsRT$6tfHI*Ldi@rX z^}2D$6*B?)|A*JYd`J-aB^TkJWN|(`i1pHh(EA36?L<;ti4qaGy}yYcZm$DLe#K4v z2RX;>bs_1l9uxmT&*0q+kTdSZ!rHvY}HP{_DI3x++zc<&Z=5gva@tiMn+SMKG?9~4=-s8DE;kd`>E+R zS>oeTIXPl{Y&=tHAoN3^R4MBhR6G^*cX^ zf$FYzq;pJ%EDX@>w8viSr`b^^{A-T8a&OMR(3=ey&i%&?|DT8IE{%0+Q=YExXH`cS zB9*6Y*RkD}1`2s>m&DfzhQjMkGgLvleZp?ytFWTNGzeAOP?IY(LO?GGx=vKO^cbRR zzVpAX>*~t9UnjlxQ>J$51DF#dR)=bNIU&j#?z?Rz349*^99vrQGRNqynR2az3W=0f z*rv_+OM2D9$K~C`rxU{;g4fR2sq!k8StRrNg0KioWz0$Q(dNQrokvddguT4J`0CGk z?LvLjH)G7Wh{W4cz2-+^N~bI1hY4Edyl_#yaz=ybN|EDj_cv(3($^(~J9DoXMG0)^ zUOpVw>Gou>I1(I5z32X5{z37q_DPiP-DkotaG;k5t93tP$17{CtlI)-VC(ELxb)-Q z!3fH>i`J`8lC*K~VrvjE+O)!3ee;#~S-)nDD87bkLculN;F-uPgG^3vfhu7+U zWEzXfoe9B=AfVRVHAuQ3*zwHRY;)?NC55G|wkH<)c#jMf<;i+!=hRetNbY+!`qV z>8>I*%xn7yxlagp>=tFRG1kg)G6oDw$ApQkXL4zv-ID(75zeJ-c(KXdiUv#MN#Kb( zfqVRjdm%wVYlL@CUp95nl+G?h5NJ&I{hFO;vunY<%K>T5X?STwAO+bNZ%ADZ2m>(vwEcQVkSFCQvYy?jr(M00EI zMU?2`#k7DD#B6QIZ~m-&`1X1ewk)u}cHU1u9=A74;T&1Z&k=~l)AGqs(E|pnFGoW7$jeWfF$umSE zP3?t_!AC#OSOLazPHFQn;oMNrN4dJ;0;y^ga^t}e4H+oF88#yG0XW)SYS3b&Mz_OW zuU_&6Ca0a^EkkWH)auGNaQTgZ$ssy?4lpBkncTsJQz1Q|p3E-#)h^*ThLQvM!WaErCl z44praF`qAP?=B0OYg${<)RA`0IyH^@5$@;5Tx)~O44`%b=#%Yfc zXXqC(e1TJ5T|X@1X_tOCOPq^miE9w;>XSThEZna*iluM=48s*i^^AXCz-%wol+VWq z|HQ{C$aFbN_O11Ea5j|sd9T_{f}Jb^=Zlkpa?;k+vBed1;h|bQw1-;AA3Di{4p8dD zQ}Peq+&y;ZlhTtR0z*d3>p3xaSq@TjgCG%Q*T4c91HC`|goeyb7=}$xdc!Y{AK$bd^bz%p7Os6lPUatlH_c!_3~E4{`C89R~pA z&%Da+T=M$?IbiHg`qo|3AnOck3_h0EsZ~!>so)@rAq7$3GpD#TefW4R`Da?#nmP(7 z859s%Rq+934fs~ZYH#I=*ByATSPx;jSahdRoNiK?ovS2Y%!vN|=qjGqyI3DT_FLaQ zRdiT0suLVL{>(*v$8wVIa;T?ndqYhw0yq2F0wd&luxf&0Dlnn_i7CGa@sR?QB{Blj z3|uB={n`5V>Yw}}Wb}zDS0jrTNO8wgn1N-`K3jiOqrkTiUhdE=kn?A#0-`wDA%25) z;8_ymbb{~Js6wT9fr33q{5en4r_?9Q*eJ^|eaXt|`MLm?ijMRUCS)P1E3R^cmrh;Z(MwXQ;102b>`62X6hRh?72YGh zezw#V(}~y<>{+THoP`sn!wAixY`rnAIE&y6FVStkOg>ZH)=-FVlxjk*Eg=`s)}QEu z-C@;H+ixN?*4z*~+B#Q~YjF49q*EFk#|wOVx6+uVvj#a}$Z4}ppglNL^x7T7+Y=5l zT<+TwKwd<7WI}By(JT7VJn^TRHv!~|9NzQJDiXjS@vwJXT;iS93kfRcN!x`@D8=3m8`OQ{(BTlZj)Ls~*BHLY%r`_+!=J(X%*k;TRQv5kG z#xkc^^Ka_g4_d^J8d+iJ{lMIPXcm7<_Ex$b@A|Fi))7ZRd54c|Wnxy9tlct6A0;Q# zZcM;dwc>^3W>gZqwET^87>6PcMsejTG8}tf$!eeIvgzp5;{aAJ?{)8!+PR_F5w+*{itt-UCXa?Z2Gy#Q`C)0p5m7A)DgATF z&WWM#N#ghcN7N;`7iHoheGLmCQ9yv|~;hE2Tq>QlF0`D)NJ@KdB-;Ve1=1kwty04I0 z&P+(XXLN2A9Z*xRM0yFx1=zyoLoQ~14bF&JW3x`*D;Zs_DnoM>hNx>i_^L{Sq#F~? zpd?Tl8~!66^2?VrWSesJe!~ICi`DenuWMed>S>p9tI=mv{nOujvs-Kc4xppye5ffVcVxvcePpFK#tmT0JGd6zd18XU;riVgv!f6A6OJCi8UpMb%H~_*P0{1n zo4(bTDHGnSKwr!Yv5ADhDANX^mJ%S7Epr-gwAR4IP^q`aGv_w>q(*LZrSG6%TOZ=1 zW{X=)6{^CM*+`?0gRfE7KJadDGPbp0X%Y8Le3a{_|94jB#5SB z$q5T*GWkWfT!N}s$b!TqTe^XdI8A>3Aixr$ZhS(qh5itKPEKPlwA1KTiU z7=;hsd|74~Wq*ZveD4qQG0A1X&7l`yu=uJ9e z=n2vxLZqdTa=quwnLFRPbI;x1%rnpKA3N{PygRci{PqIXKL+hDhbSL`p$I^RM%R6V z2EC;tk(>K1HK>;NG6S_M^IawQ%c7Ya10s6n*&&Nd;C8zp|FG6HbqM&Hm$|A(?ERQx z34y{|J01zwcOgz-n8>d zad7w1kbl>qDiYlh>K5vE@C1It0AhhCHLXz8rF>904(5ahK^rQL9~kWI6;gwXZ&su^ zo4uP)b>llh_B;%rXttmIYKuaUqR!9;mkIXOh5|MfPan^ZUJ;?-PJ1|yVMyq$u`DIX zZO@zTKEa;G^_(|LiWjJ#_on@It6iw46WGwMM0@mu_T^@4JOBM!kxvMrGkfkTu&W#V z?R5m*S?U&tQSApWBjePH-HhBO#!n$dEnLYh1#^!bILj-)HFmgylU`v+Kl#>@IZEX;UB#>1{{4k) zdh3S%f?5Lubx3)Zdi=7qRLy%BW2lbR!}|)CaYpYxGkO{{v02#&JZ)EZZZZ}8ptZ^^ zqvv2fdV@U}3Q>=K=H=w#C&xurZ~3W3bjz4wI1j3EZh!muTTr*nL(NI?&Q$(^#1Xdl ztYU+#W-=-)^IWRD!s;4A^7D^P?o5BwEge^Qyq7jKeGc^Ak|AK%znrhaXO?$#m`YC# zj#)>px^*gZjYm3H_!TUqEIb|Agg~zVod@k&e^GhYPk>%A_fMF z$Xqw5DobbWMNf}=^@8x>b~VN7 zd9S2PBH7iu%h-nAcWtbZ44!1zG3J0BhF0^N599bII!E*CVK^hK&CL?6>GGp!Z&kjC zAt?Q)-$A&WTdF$P+EkT-U?zk7{aWP>pRb#T$a*|rr-aRCTFehMo_vTg6`X85JMe%p`^9=KS{mJg9u91;RS7MV(=yNoT>MpM(Y8_+wf=iWdSEsghu?nls|8RX$GA8j zC%mO-1`QJP3zKjfI)>#IOv;9CrVXOwdyzerZ2kp459BW=B8PiFkIN?**5x6V^UNLd zn!k>M>n})deQ6i;Q{A;{EZS1Z4@D5zY@Mh6iWGs{uR3V9rg^(@jq}3T`$CSmYj-c# z{Y8>Fqxr=rD~Kxet%i;G4dh-6?^1oF1h!ZV;NhQUFu5Ikvx-9^pq1zL1p%4^s#O{R zhE;|R!EnX^af~U-q1&Nbv%5VmD(*a1m~oYsNSCf!eIARY1##gFP_*5QactBPnVD(@ zOaXL97dDdr(q@jhawM@KKiu*5YO)4v1kDlM1}Pn@Tac*1gr{;@ZD6~nbpg*loOZV$ zUV}b@??`DwH$7rjiy41w8AUi>C zCruY5Kv$bp?JFGVqx)r4}cDS0mx3g zj?=@uMe+2=#hZ1Dqc|~4IJ#&WEox{ifCf$nWFm6lL@`FFoNl=|00W#Ec$KJtbH#i^ z<@CrU0I1oE7E^%BBYv?;rbbiTD3|;`~`?*wY#rU*T?@WXtw@+urT>C$U}zR>7#(CL>vf zNsbo-=*c!H(EktQOAtTV7uUS@pCk^%NEXC}p@c23F8s@p|1N9DBoGhT0T=dv3l@b; z0I`uZasNSJJs=jcHwKVE;UgkYa0ZGp?td-0A96}OD!dyTl5PiMKgZ5?@8d94Jk&b^A!Nf$45^*+zWoJ%|> zPaL261{~H%oz>YIElp`X2PZw#jhYm6);-Uo8h9Cs!v8m~ojB{NWA4TN;pOPsPl6Y^ z=BHTc06rd!ju#*OVK4m8JdpyOW%&jDy@Dma{{PGV_oFR8@j0fS8IuBB8*c!{HB62o zUVp0zzbj9~mk5P6o1IA5!xl$l~s}50R^&#s<-lV+szTrj7QJ`S&e} zlw?V5hY4#h6YB+Hgh_cSBYYl6W#x7l}mq zpv0OY_0m&W?6q}G%fsDA;e^oycba}l=LO58-Afkx;`ZDF6@Z1&!}IMNjB5vXyLLTI z`zLHykH#>Z5#)WgG_$N=L6A?Z70{@@DhesL_v!CXspfUB>$p@05x&jn3 z`t{nYk3k7w>((BV-~1hW*cU4;itdt4`&iq2^9eh2YA@Iz%k7MjjUawEP;Hvge&B_# zU|4+dMo4w#Z!zRt(9iAJlH86!rqK;4!;EW!>UI8fkZ0k~1P?iI{8u{iP!7F}jb=cX zXJ->;9jyg8OE0J9?_J!XBAf)0@o>eP33UiRG2L^s!P@FXei1G7V@zt?+cBlaIZH!V zGql8E(Mk>u7U$Qq`~AWMBC0nY=v$4dy#vJxSXYvIR?dCpgM1(RwtX`3dIV>13_s^#>^H!QI(F z*QZCF*dMeI)WT=WP0nSWa@vuOCw>y|2Fz|Z)4vn(;4oQk`MIJJ8Gcx9U?^%b=aG-= zbGj8p9_P0`YaTc}-LTQclOe!9zhpUk;;*Ppt6L@W?becKZ0REA1nU!~K4A7Tgs&|J zd+XBidSJWT@M_k_1E>m1bCK!}F0nK!DnJqFc9;RZ=oit4nX6zKK&#e4+rGw0fEci~ zI=L1LPZE4=78t@^)&D${I81*>ia+d09lm-e#8TRxx7Nobc}lH1;B!qvflfYUU!xScb6Pb=czZ(NUuieUbZE$o*A4#)KZ!Jf z;V)!2R_i=-t8Jcy>EF}TpavPa4t9+Rp5z1>S%%L$7$RaupO!S^j~5>q-Ls*IA(O8a z=*ur^bqR)|eji)oTg!;i6Ab$EbAU_fQ0VaF+{SjnQSg(TiSu02UaQF1_4AOFJ^aR5 zdvn3_6f~Gu)$xA#Wk?o@Xa6b`%Z76DyE>Q6RJGf{!sG8o zUR=_m(bTT{C~Pp1Cb0dRd-0lfWS($f2eXhiN6t6<$u#RN4FP%x5%b#fi7SN(C-Qh8 zRG}G^3PYm0dPSU68T72UtgIf-L7|oTcj#ZgtKjVWwNvSN`<6d^e&yG9_j#|=$ecF8 zaZyR5m6+BfbCB!HN#8qwmc*xx(y6cQHY`Vk%4)X2-lR_B@66-xDi_*-d+G3pCrl2K z>bWgp-R42PLN%-t9A)@7&r&XXk69~;h#q(oTP#ccAmgI24e`^nrm>VsE6tTT8HY>W zgIn@{eiiivPT7V;x8A~r4fOC;H_fu?S6ScZ293}3&6Xn%hV9H;kWpLbB(|rZ(fr$_ z=+|Yk=L9m0RTCIkH|`uG9JQoSR4D`np4K6heB8z}%cSS-nLCZ3xa+No+Goe(FS&qx z74nF`fGX0i93zj4qb<+grU8mQ&l~TL-ah3CZnMSivL7(l^1OE5p4&Tc78yXYtSb*F z_-ex}M!&v2+-FgrL8Ke;SbTfmJlJJBAlmxII_NodMhVuJk$5TtPca@3=!@Kz^Jx@2 z8C0{A7cgp%FTVbIf%2;B=2LHr1%|IM+2f`WZA- zxn{OmA5`VqVEci^8=2*qrHqh1YB)8WCcYXKi8P+LfBdJBYjY10NBz`8P5uxLos7FKHE zaH{m-(q|1`rNOWI#NLty^p5_Wmzd>T=M|~i* zkZ9f=q<7N1Rg)BtR;G%+@nt3SnfC+rxs1$}bF|GFN$7mBH}XXbGCUE6 z9@=|SLr1`OYnuk`ujL8D)x}p9A5|HQy;mT8GmL#F&}JSKomXdhakcog$#xL^WHU(x zB=&-D027l@qeOHkNKHPn#v{&|$8RgmLb8%Quvdb|_7^HJog#p$O+Xn6kbnXJQ0o?2 zH4ezT}=iw#0j{ua1yGRpn-HUMc(I4mIbD}B2?ct+r{>EFU6_Hg;8Uvv|0OAQp<#>M!V%vH!i~l3-YNasMDy; zsLZI}cB2?EE{8de8d1*M?R8iK6*I?-PD#*HnW(*qu<{3IS_5LYv@<&8Xy7#G@RH1Z zyUCGNJJ{6Zm!N7!Tt+NlX?+s5xu~n7(I}~c0X?eWB1*>EpTBq=v#}^lL+OQ{jy4|l zk_Gp+AUPWZZV=%n0;D#D5I4I;+gigIdOFF7HKzolzVtAECTDgdcjK-(lwr}G*kC}E zt(GSIT(9l~A!+s)^=Sx`?~FsYIcCec#Webo*%mcxJeXK3~9TDb9Y@w7+Aw z#-%-=QEH^M|7U%&;)}18=M|fo+)Y0wH(QK_8-G*Gd}IwS+3km@`R!FG6J4w#trxX?|RI&|dU-n6K?tIV8nE#$>Vh~mQEOw9W z;SG>*BfNXOrK){JjNa;$FVaDp-sIgW7%{yc8M$&-?gwawPj2Nt47@u)m`YUg~tAJ|d3gbDN0JFd}vV`D1Rv^ZDeY{b+m5-(_ROskgN zVG0800F3)2%}ew^qKM5Fi)AsbY+28y^(_-SX?+F%PRUk7n+~J757~5ewDMYG(vJ8Y z#rSct;=&#lktaXR#6eZ%9&5)btOzSv`-&On(U62BaX%-0p54B1uMp))x9pCMTze~f zyY*lNit>a0_))`@o(wd^+!7!>0$n!Wp(wk$7l&ry7G4GFI#5R~~CCDPMcX%~ZQ{<$)&< z+$Wd#@SbXp&vBsh{e)t=voBkY7Eg+@jr&Hg0mWCUn_mJvD4Fz4;KMHTe%ypfjrh9ahg#I zlt%kH-u`J8`a)BOZ$Z%~O3~A^_5PvzN^3EAGs}K2PvP5eeovN<(>J(fzRu!!`niV~ ok0tXAhnc2>(@#6+1@w0|-WM)v+}Q(sKMBIRRfkZ6E-I@30w3UA{Qv*} diff --git a/tests/test_data/Ex4_input.rds b/tests/test_data/Ex4_input.rds index dd783787804bba48c784d766122aa3f865ff8214..9347b27a99f54168ec142b5383d5ffe3aba4ac97 100644 GIT binary patch literal 5561 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 diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index 17954b7fce8d7a189182bf3ec4dc93f89b201dc1..ebe328c5e57ecd47f5825a5f3a17aa96c0e6d7bb 100644 GIT binary patch literal 5565 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 diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 20c08a55..fc7a8ca3 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -463,6 +463,9 @@ You may organize weather data in a variety of ways: ## Assign new soil data to rSOILWAT2 input object ```{r, soils_final1} + # Specify that our soil density values are bulk density + rSOILWAT2::swSite_SoilDensityInputType(sw_in) <- 1L + # This fails because rooting profile values are still missing try(rSOILWAT2::swSoils_Layers(sw_in) <- data.matrix(soil_new)) ``` From 0ca80dcfbed63c0a27009f5d6464d3eeab5c1a89 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 3 Aug 2022 09:08:44 -0400 Subject: [PATCH 094/238] Fix vignette: NRCS SSURGO `dbovendry` is matric (and not bulk) soil density --- vignettes/rSOILWAT2_demo.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index fc7a8ca3..f5e4d2fe 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -463,8 +463,8 @@ You may organize weather data in a variety of ways: ## Assign new soil data to rSOILWAT2 input object ```{r, soils_final1} - # Specify that our soil density values are bulk density - rSOILWAT2::swSite_SoilDensityInputType(sw_in) <- 1L + # NRCS SSURGO `dbovendry` represents the soil density of the matric component + rSOILWAT2::swSite_SoilDensityInputType(sw_in) <- 0L # This fails because rooting profile values are still missing try(rSOILWAT2::swSoils_Layers(sw_in) <- data.matrix(soil_new)) From 8cd21b19d801118c0893e886e0e2bedcc39cde87 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 3 Aug 2022 14:01:51 -0400 Subject: [PATCH 095/238] Update SOILWAT2 submodule to branch release/devel_v7.0.0 (with soil density type) SOILWAT2 commit ac323024c142840211c6e41d84083e7f4211ef3b (Merge pull request #324 from DrylandEcology/feature_soildensity_type) --- .gitmodules | 2 +- NEWS.md | 3 ++- src/SOILWAT2 | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index db4d3ff6..43a20263 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = feature_soildensity_type + branch = release/devel_v7.0.0 diff --git a/NEWS.md b/NEWS.md index 308cb102..14fc44f6 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,7 +3,8 @@ separate workflows for `R-CMD-check` and `test-coverage` (#202). * Class `swSite` gains new slot `"SoilDensityInputType"` and associated methods `swSite_SoilDensityInputType()` (#209). - This encodes if soil density inputs represent matric soil or bulk soil values. + This encodes whether soil density inputs represent + matric soil or bulk soil values. # rSOILWAT2 v5.3.1 diff --git a/src/SOILWAT2 b/src/SOILWAT2 index ed6d0aaf..ac323024 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit ed6d0aaf2786f5ab15d9741f711acb47a209197d +Subproject commit ac323024c142840211c6e41d84083e7f4211ef3b From 6ef3ccdd6c9170f4844eeb9d91e15dcb055f239c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 4 Aug 2022 11:35:35 -0400 Subject: [PATCH 096/238] Clarify documentation of `swrc_conversion()` - `vwc` represent bulk soils --- R/sw_Pedotransfer_Functions.R | 24 ++++++++++++++++-------- man/swrc_conversion.Rd | 26 +++++++++++++++++--------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 983b24f0..a358dc2e 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -1025,15 +1025,15 @@ check_swrcp <- function(swrc_name, swrcp) { #------ Soil Water Retention Curves ------ -#' Conversion between soil water content and soil water potential +#' Conversion between bulk soil water content and soil water potential #' #' @inheritParams SWRCs #' @param direction A character string. Indicates the direction of #' soil water conversion. #' @param x A numeric value, vector, or matrix. #' The soil water values to be converted, -#' either soil water potential (units `[MPa]`) or -#' volumetric water content (units `[cm/cm]`). +#' either soil water potential (units `[MPa]`) of the soil matric component or +#' bulk volumetric water content (units `[cm/cm]`). #' @param outer_if_equalsize A logical value. #' Relevant only if `x` of length `l` and soils of length `d` are equal. #' If `TRUE`, then the returned object has a size of `l x d` = `l x l` @@ -1084,6 +1084,12 @@ check_swrcp <- function(swrc_name, swrcp) { #' If `swrc` contains element `swrcp` with one set of `SWRC` parameters, #' i.e., one row, then the parameter set is repeated for each value of `x`. #' +#' @section Details: +#' If `vwc` inputs represent the matric component +#' (instead of expected bulk values), then set `fcoarse` to 0. +#' This works, however, only if `swrcp` are provided or `fcoarse` is not +#' utilized by the requested `pdf`. +#' #' #' @seealso #' [pdf_estimate()], @@ -1489,11 +1495,12 @@ swrc_conversion_1d <- function(direction, x, soils, swrc, verbose) { #' @describeIn swrc_conversion Convenience wrapper -#' to convert from `SWP` to `VWC` with selected `SWRC` +#' to convert from `SWP` to bulk `VWC` with selected `SWRC` #' #' @param swp_MPa A numeric object. The soil water potential values -#' (units `[MPa]`) to be converted to -#' volumetric water content (relative to the whole soil; units `[cm/cm]`). +#' (units `[MPa]`) of the soil matric component to be converted to +#' bulk volumetric water content +#' (i.e., relative to the whole soil; units `[cm/cm]`). #' #' @export swrc_swp_to_vwc <- function( @@ -1524,11 +1531,12 @@ swrc_swp_to_vwc <- function( #' @describeIn swrc_conversion Convenience wrapper -#' to convert from `VWC` to `SWP` with selected `SWRC` +#' to convert from bulk `VWC` to matric `SWP` with selected `SWRC` #' #' @param vwcBulk A numeric object. The volumetric water content values #' (relative to the whole soil; units `[cm/cm]`) -#' to be converted to soil water potential values (units `[MPa]`). +#' to be converted to soil water potential (units `[MPa]`) +#' of the soil matric component. #' #' @export swrc_vwc_to_swp <- function( diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index be5ec7a5..7e24f0ec 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -4,7 +4,7 @@ \alias{swrc_conversion} \alias{swrc_swp_to_vwc} \alias{swrc_vwc_to_swp} -\title{Conversion between soil water content and soil water potential} +\title{Conversion between bulk soil water content and soil water potential} \usage{ swrc_conversion( direction = c("swp_to_vwc", "vwc_to_swp"), @@ -49,8 +49,8 @@ soil water conversion.} \item{x}{A numeric value, vector, or matrix. The soil water values to be converted, -either soil water potential (units \verb{[MPa]}) or -volumetric water content (units \verb{[cm/cm]}).} +either soil water potential (units \verb{[MPa]}) of the soil matric component or +bulk volumetric water content (units \verb{[cm/cm]}).} \item{fcoarse}{A numeric value or vector. Coarse fragments, e.g., gravel, (> 2 mm; units of \verb{[m3/m3]}) @@ -94,12 +94,14 @@ first element of \code{x} and soils, the second elements, and so on.} \code{SOILWAT2} internal warnings and other messages.} \item{swp_MPa}{A numeric object. The soil water potential values -(units `[MPa]`) to be converted to -volumetric water content (relative to the whole soil; units `[cm/cm]`).} +(units `[MPa]`) of the soil matric component to be converted to +bulk volumetric water content +(i.e., relative to the whole soil; units `[cm/cm]`).} \item{vwcBulk}{A numeric object. The volumetric water content values (relative to the whole soil; units `[cm/cm]`) -to be converted to soil water potential values (units `[MPa]`).} +to be converted to soil water potential (units `[MPa]`) +of the soil matric component.} } \value{ The dimensions of the output are a function of \code{x} and the @@ -120,15 +122,15 @@ the \code{d} sets of soil values are repeated for each row of \code{x}. } } \description{ -Conversion between soil water content and soil water potential +Conversion between bulk soil water content and soil water potential } \section{Functions}{ \itemize{ \item \code{swrc_swp_to_vwc()}: Convenience wrapper -to convert from `SWP` to `VWC` with selected `SWRC` +to convert from `SWP` to bulk `VWC` with selected `SWRC` \item \code{swrc_vwc_to_swp()}: Convenience wrapper -to convert from `VWC` to `SWP` with selected `SWRC` +to convert from bulk `VWC` to matric `SWP` with selected `SWRC` }} \section{Details}{ @@ -153,6 +155,12 @@ the element \code{pdf_name} for argument \code{swrc}. If \code{swrc} contains element \code{swrcp} with one set of \code{SWRC} parameters, i.e., one row, then the parameter set is repeated for each value of \code{x}. + + +If \code{vwc} inputs represent the matric component +(instead of expected bulk values), then set \code{fcoarse} to 0. +This works, however, only if \code{swrcp} are provided or \code{fcoarse} is not +utilized by the requested \code{pdf}. } \examples{ From b6e8dc406172a8593b0a91562615038c76970c3a Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Thu, 4 Aug 2022 15:48:43 -0400 Subject: [PATCH 097/238] New `get_soilmoisture()` Consistently extract soil moisture content, volumetric water content, or volumetric water content for the matric component. The function calculates the requested type of soil moisture if not stored in the output from those that are available. For instance, a simulation run may turn of all volumetric water content output to save storage space and only store soil moisture content (see example "Simulation with reduced set of outputs" of `sw_exec()`); if volumetric water content is requested, then it would get calculated, in this example, from soil moisture content and soil layer widths. --- NAMESPACE | 1 + NEWS.md | 6 +- R/sw_OutputDerived_Functions.R | 185 ++++++++++++++++++++++++++++ man/get_soilmoisture.Rd | 66 ++++++++++ tests/testthat/test_OutputDerived.R | 119 ++++++++++++++++++ 5 files changed, 376 insertions(+), 1 deletion(-) create mode 100644 man/get_soilmoisture.Rd diff --git a/NAMESPACE b/NAMESPACE index 121e569d..e93f2c4a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -74,6 +74,7 @@ export(format_timestamp) export(getStartYear) export(getWeatherData_folders) export(get_evaporation) +export(get_soilmoisture) export(get_soiltemp) export(get_timestamp) export(get_transpiration) diff --git a/NEWS.md b/NEWS.md index 9fe96ab0..777c94a3 100644 --- a/NEWS.md +++ b/NEWS.md @@ -18,7 +18,11 @@ ## New features * New method `sw_upgrade()` upgrades objects with outdated `rSOILWAT2` S4 classes to the current version. - +* New `get_soilmoisture()` to consistently extract soil moisture content, + volumetric water content (bulk soil), or + volumetric water content for the matric component. + The function calculates the requested type if not stored in the output + from those that are available. # rSOILWAT2 v5.3.1 diff --git a/R/sw_OutputDerived_Functions.R b/R/sw_OutputDerived_Functions.R index 38e2e5c2..22de3363 100644 --- a/R/sw_OutputDerived_Functions.R +++ b/R/sw_OutputDerived_Functions.R @@ -291,3 +291,188 @@ get_soiltemp <- function( names(res) <- levels res } + + + +#' Extract or calculate soil moisture +#' +#' @inheritParams get_derived_output +#' @param type A character string selecting type of soil moisture. +#' @param swInput An object of class [`swInputData`]. +#' @param widths_cm A numeric vector of soil layer widths (units `[cm]`). +#' @param fcoarse A numeric vector of coarse fragments per soil layer +#' (units `[volume fraction]`). +#' +#' @section Details: +#' Information on soil layer `widths` and coarse fragments `fcoarse` +#' are only used if requested type of soil moisture is +#' not available and has to be calculated from a different type. +#' `widths` and `fcoarse` may be provided directly or via `swInput` +#' from which the information is extracted (see examples.) +#' +#' @return A data frame with requested soil moisture; +#' rows represent time steps and columns represent soil layers. +#' +#' @examples +#' sw_in <- rSOILWAT2::sw_exampleData +#' +#' sw_out <- sw_exec(inputData = sw_in) +#' res1 <- get_soilmoisture(sw_out, "Month", type = "swc") +#' +#' deactivate_swOUT_OutKey(sw_in) <- sw_out_flags()[["sw_swcbulk"]] +#' sw_out <- sw_exec(inputData = sw_in) +#' res2 <- get_soilmoisture(sw_out, "Month", type = "swc", swInput = sw_in) +#' all.equal(res1, res2) +#' +#' res3 <- get_soilmoisture( +#' sw_out, +#' timestep = "Month", +#' type = "swc", +#' widths = diff(c(0., swSoils_Layers(sw_in)[, "depth_cm"])), +#' fcoarse = swSoils_Layers(sw_in)[, "gravel_content"] +#' ) +#' all.equal(res1, res3) +#' +#' @md +#' @export +get_soilmoisture <- function( + x, + timestep = c("Day", "Week", "Month", "Year"), + type = c("swc", "vwc_bulk", "vwc_matric"), + swInput = NULL, + widths_cm = NULL, + fcoarse = NULL +) { + timestep <- match.arg(timestep) + type <- match.arg(type) + + out_flag <- switch( + EXPR = type, + swc = sw_out_flags()[["sw_swcbulk"]], + vwc_bulk = sw_out_flags()[["sw_vwcbulk"]], + vwc_matric = sw_out_flags()[["sw_vwcmatric"]] + ) + + icols <- switch( + EXPR = timestep, + Year = -1L, + Month = , + Week = , + Day = -(1L:2L) + ) + + res <- slot(slot(x, out_flag), timestep)[, icols, drop = FALSE] + + msg <- NULL + + if (nrow(res) == 0) { + #--- Requested soil moisture output not stored in simulation output `x` + + # Check if any of the other soil moisture types are available + tmp_swc <- slot(slot(x, sw_out_flags()[["sw_swcbulk"]]), timestep) + tmp_vwcbulk <- slot(slot(x, sw_out_flags()[["sw_vwcbulk"]]), timestep) + tmp_vwcmatric <- slot(slot(x, sw_out_flags()[["sw_vwcmatric"]]), timestep) + + has_swc <- nrow(tmp_swc) > 0L + has_vwcbulk <- nrow(tmp_vwcbulk) > 0L + has_vwcmatric <- nrow(tmp_vwcmatric) > 0L + + if (any(has_swc, has_vwcbulk, has_vwcmatric)) { + # Determine whether we have enough soil information for calculations + has_soil <- + inherits(swInput, "swInputData") || + !any(is.null(widths_cm), is.null(fcoarse)) + + if (has_soil) { + if (is.null(widths_cm)) { + widths_cm <- diff(c(0., swSoils_Layers(swInput)[, "depth_cm"])) + } + + one_minus_fcoarse <- 1. - if (is.null(fcoarse)) { + swSoils_Layers(swInput)[, "gravel_content"] + } else { + fcoarse + } + + if (type == "swc") { + if (has_vwcbulk) { + # calculate swc as depth * vwc_bulk + res <- sweep( + tmp_vwcbulk[, icols, drop = FALSE], + MARGIN = 2L, + STATS = widths_cm, + FUN = "*" + ) + } else if (has_vwcmatric) { + # calculate swc as depth * vwc_matric * (1 - fcoarse) + res <- sweep( + tmp_vwcmatric[, icols, drop = FALSE], + MARGIN = 2L, + STATS = widths_cm * one_minus_fcoarse, + FUN = "*" + ) + } + + } else if (type == "vwc_bulk") { + if (has_swc) { + # calculate vwc_bulk as swc / depth + res <- sweep( + tmp_swc[, icols, drop = FALSE], + MARGIN = 2L, + STATS = widths_cm, + FUN = "/" + ) + } else if (has_vwcmatric) { + # calculate vwc_bulk as vwc_matric * (1 - fcoarse) + res <- sweep( + tmp_vwcmatric[, icols, drop = FALSE], + MARGIN = 2L, + STATS = one_minus_fcoarse, + FUN = "*" + ) + } + + } else if (type == "vwc_matric") { + if (has_swc) { + # calculate vwc_matric as swc / (depth * (1 - fcoarse)) + res <- sweep( + tmp_swc[, icols, drop = FALSE], + MARGIN = 2L, + STATS = widths_cm * one_minus_fcoarse, + FUN = "/" + ) + } else if (has_vwcbulk) { + # calculate vwc_matric as vwc_bulk / (1 - fcoarse) + res <- sweep( + tmp_vwcbulk[, icols, drop = FALSE], + MARGIN = 2L, + STATS = one_minus_fcoarse, + FUN = "/" + ) + } + } + + } else { + msg <- paste( + "Simulation run without requested soil moisture output:", + "converting available to requested output requires", + "`swInput` or, alternatively, `widths_cm` and `fcoarse`." + ) + } + + + } else { + msg <- paste( + "Simulation run without producing soil moisture output:", + "consider turning output on for at least one of", + "'SWCBULK', 'VWCBULK', or 'VWCMATRIC'." + ) + } + } + + if (!is.null(msg)) { + stop(msg) + } + + res +} diff --git a/man/get_soilmoisture.Rd b/man/get_soilmoisture.Rd new file mode 100644 index 00000000..5ddcd3a2 --- /dev/null +++ b/man/get_soilmoisture.Rd @@ -0,0 +1,66 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_OutputDerived_Functions.R +\name{get_soilmoisture} +\alias{get_soilmoisture} +\title{Extract or calculate soil moisture} +\usage{ +get_soilmoisture( + x, + timestep = c("Day", "Week", "Month", "Year"), + type = c("swc", "vwc_bulk", "vwc_matric"), + swInput = NULL, + widths_cm = NULL, + fcoarse = NULL +) +} +\arguments{ +\item{x}{An object of class \code{\linkS4class{swOutput}}.} + +\item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} + +\item{type}{A character string selecting type of soil moisture.} + +\item{swInput}{An object of class \code{\link{swInputData}}.} + +\item{widths_cm}{A numeric vector of soil layer widths (units \verb{[cm]}).} + +\item{fcoarse}{A numeric vector of coarse fragments per soil layer +(units \verb{[volume fraction]}).} +} +\value{ +A data frame with requested soil moisture; +rows represent time steps and columns represent soil layers. +} +\description{ +Extract or calculate soil moisture +} +\section{Details}{ + +Information on soil layer \code{widths} and coarse fragments \code{fcoarse} +are only used if requested type of soil moisture is +not available and has to be calculated from a different type. +\code{widths} and \code{fcoarse} may be provided directly or via \code{swInput} +from which the information is extracted (see examples.) +} + +\examples{ +sw_in <- rSOILWAT2::sw_exampleData + +sw_out <- sw_exec(inputData = sw_in) +res1 <- get_soilmoisture(sw_out, "Month", type = "swc") + +deactivate_swOUT_OutKey(sw_in) <- sw_out_flags()[["sw_swcbulk"]] +sw_out <- sw_exec(inputData = sw_in) +res2 <- get_soilmoisture(sw_out, "Month", type = "swc", swInput = sw_in) +all.equal(res1, res2) + +res3 <- get_soilmoisture( + sw_out, + timestep = "Month", + type = "swc", + widths = diff(c(0., swSoils_Layers(sw_in)[, "depth_cm"])), + fcoarse = swSoils_Layers(sw_in)[, "gravel_content"] +) +all.equal(res1, res3) + +} diff --git a/tests/testthat/test_OutputDerived.R b/tests/testthat/test_OutputDerived.R index 9c0d9797..3b902d07 100644 --- a/tests/testthat/test_OutputDerived.R +++ b/tests/testthat/test_OutputDerived.R @@ -169,3 +169,122 @@ test_that("Derived output: soil/surface temperature", { expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) } }) + + +test_that("Derived output: soil moisture", { + timesteps <- c("Day", "Week", "Month", "Year") + types <- c( + sw_swcbulk = "swc", + sw_vwcbulk = "vwc_bulk", + sw_vwcmatric = "vwc_matric" + ) + + sw_in <- rSOILWAT2::sw_exampleData + n_soillayers <- nrow(swSoils_Layers(sw_in)) + widths_cm <- diff(c(0., swSoils_Layers(sw_in)[, "depth_cm"])) + fcoarse <- swSoils_Layers(sw_in)[, "gravel_content"] + + + # Loop over time steps + for (tp in timesteps) { + id_out_nrows <- switch( + EXPR = tp, + Day = "dy_nrow", + Week = "wk_nrow", + Month = "mo_nrow", + Year = "yr_nrow" + ) + + #--- Requested soil moisture directly available + sw_out <- sw_exec(inputData = sw_in) + res0 <- lapply( + types, + function(type) { + get_soilmoisture(sw_out, timestep = tp, type = type) + } + ) + + for (k1 in seq_along(types)) { + # Expect that columns represent soil layers and rows time steps + expect_identical(ncol(res0[[k1]]), n_soillayers) + expect_identical(nrow(res0[[k1]]), slot(sw_out, id_out_nrows)) + } + + + #--- Convert soil moisture among swc, vwc_bulk, and vwc_matric + for (k2 in seq_along(types)) { + sw_in1 <- sw_in + # turn off the other soil moisture types + for (k3 in seq_along(types)[-k2]) { + deactivate_swOUT_OutKey(sw_in1) <- sw_out_flags()[[names(types)[[k3]]]] + } + sw_out <- sw_exec(inputData = sw_in1) + + #--- Derive soil information from `swInput` + res1 <- lapply( + types, + function(type) { + get_soilmoisture( + sw_out, + timestep = tp, + type = type, + swInput = sw_in1 + ) + } + ) + + for (k1 in seq_along(types)) { + # Expect that calculated moisture is (almost) equal to direct version + expect_equal( + res1[[k1]], + res0[[k1]], + tolerance = sqrt(.Machine[["double.eps"]]) + ) + } + + #--- Derive soil information from `widths_cm` and `fcoarse` + res2 <- lapply( + types, + function(type) { + get_soilmoisture( + sw_out, + timestep = tp, + type = type, + widths_cm = widths_cm, + fcoarse = fcoarse + ) + } + ) + + for (k1 in seq_along(types)) { + # Expect that calculated moisture is (almost) equal to direct version + expect_equal( + res2[[k1]], + res0[[k1]], + tolerance = sqrt(.Machine[["double.eps"]]) + ) + } + + #--- Expect error if calculation does not have enough soil information + expect_error( + get_soilmoisture(sw_out, timestep = tp, type = "Month") + ) + expect_error( + get_soilmoisture( + sw_out, + timestep = tp, + type = "Month", + widths_cm = widths_cm + ) + ) + expect_error( + get_soilmoisture( + sw_out, + timestep = to, + type = "Month", + fcoarse = fcoarse + ) + ) + } + } +}) From 3097d97a75e6aff6974431a635d48a633ec1c738 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 5 Aug 2022 11:34:48 -0400 Subject: [PATCH 098/238] Derived output functions `get_XXX()` gain new argument `keep_time` - default `keep_time` is FALSE which is the same output as previously - `keep_time` TRUE returns the same values but as additional columns to a matrix that contains year/sub-year time step information as first one or two columns - new `time_columns()` returns the output column indices with time information - new `nrow_output()` returns the number of time steps in output --- NAMESPACE | 2 + NEWS.md | 6 +- R/sw_OutputDerived_Functions.R | 167 +++++++++++++-- man/get_derived_output.Rd | 3 + man/get_evaporation.Rd | 12 +- man/get_soilmoisture.Rd | 6 +- man/get_soiltemp.Rd | 4 + man/get_transpiration.Rd | 13 +- man/nrow_output.Rd | 20 ++ man/time_columns.Rd | 18 ++ tests/testthat/test_OutputDerived.R | 321 ++++++++++++++++++---------- 11 files changed, 431 insertions(+), 141 deletions(-) create mode 100644 man/nrow_output.Rd create mode 100644 man/time_columns.Rd diff --git a/NAMESPACE b/NAMESPACE index e93f2c4a..9d8b2b55 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -84,6 +84,7 @@ export(get_years_from_weatherData) export(has_soilTemp_failed) export(list_matched_swrcs_pdfs) export(lookup_annual_CO2a) +export(nrow_output) export(pdf_estimate) export(pdf_names) export(prepare_TranspirationRegions) @@ -141,6 +142,7 @@ export(swrc_conversion) export(swrc_names) export(swrc_swp_to_vwc) export(swrc_vwc_to_swp) +export(time_columns) export(update_biomass) export(update_requested_years) export(weatherHistory) diff --git a/NEWS.md b/NEWS.md index 777c94a3..dba86edc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -23,7 +23,11 @@ volumetric water content for the matric component. The function calculates the requested type if not stored in the output from those that are available. - +* Derived output functions `get_XXX()` gain new argument `keep_time`; + if `keep_time` is requested (`TRUE`), then year and sub-year time step values + are added as first one or two columns to the returned matrix. +* New `time_columns()` returns the output column indices with time information. +* New `nrow_output()` returns the number of time steps in output. # rSOILWAT2 v5.3.1 * This version fixes a bug in soil temperature output that was diff --git a/R/sw_OutputDerived_Functions.R b/R/sw_OutputDerived_Functions.R index 22de3363..834ccb47 100644 --- a/R/sw_OutputDerived_Functions.R +++ b/R/sw_OutputDerived_Functions.R @@ -3,22 +3,71 @@ #' #' @param x An object of class \code{\linkS4class{swOutput}}. #' @param timestep A character string. One of the \pkg{rSOILWAT2} time steps. +#' @param keep_time A logical value. Include time information in the returned +#' object. #' #' @name get_derived_output NULL + +#' Output column indices with time information +#' +#' @inheritParams get_derived_output +#' +#' @examples +#' time_columns("Month") +#' +#' @export +time_columns <- function(timestep = c("Day", "Week", "Month", "Year")) { + switch( + EXPR = match.arg(timestep), + Year = 1L, + Month = , + Week = , + Day = 1L:2L + ) +} + +#' Number of time steps in output +#' +#' @inheritParams get_derived_output +#' +#' @examples +#' nrow_output(sw_exec(rSOILWAT2::sw_exampleData), "Month") +#' +#' @export +nrow_output <- function(x, timestep = c("Day", "Week", "Month", "Year")) { + slot( + x, + switch( + EXPR = match.arg(timestep), + Day = "dy_nrow", + Week = "wk_nrow", + Month = "mo_nrow", + Year = "yr_nrow" + ) + ) +} + + #' Calculate transpiration from output #' #' @inheritParams get_derived_output #' -#' @return A numeric vector of transpiration [mm] for each time step. +#' @return A numeric vector of transpiration [mm] for each time step or +#' a numeric matrix if `keep_time`. #' #' @examples #' sw_out <- sw_exec(inputData = rSOILWAT2::sw_exampleData) #' get_transpiration(sw_out, "Month") +#' get_transpiration(sw_out, "Month", keep_time = TRUE) #' #' @export -get_transpiration <- function(x, timestep = c("Day", "Week", "Month", "Year")) { +get_transpiration <- function( + x, + timestep = c("Day", "Week", "Month", "Year"), + keep_time = FALSE +) { timestep <- match.arg(timestep) res <- NULL @@ -28,6 +77,10 @@ get_transpiration <- function(x, timestep = c("Day", "Week", "Month", "Year")) { if (all(dim(tmp) > 0)) { res <- tmp[, "tran_cm"] + if (keep_time) { + res_time <- tmp[, time_columns(timestep), drop = FALSE] + } + } else { tmp <- slot(slot(x, "TRANSP"), timestep) @@ -35,6 +88,10 @@ get_transpiration <- function(x, timestep = c("Day", "Week", "Month", "Year")) { ids <- grep("transp_total_Lyr", colnames(tmp), fixed = TRUE) res <- apply(tmp[, ids, drop = FALSE], MARGIN = 1, FUN = sum) + if (keep_time) { + res_time <- tmp[, time_columns(timestep), drop = FALSE] + } + } else { stop( "Simulation run without producing transpiration output: ", @@ -43,22 +100,35 @@ get_transpiration <- function(x, timestep = c("Day", "Week", "Month", "Year")) { } } - # convert [cm] to [mm] - 10 * res + if (keep_time) { + cbind( + res_time, + T_mm = 10. * res + ) + } else { + # convert [cm] to [mm] + 10. * res + } } + #' Calculate evaporation from output #' #' @inheritParams get_derived_output #' -#' @return A numeric vector of evaporation [mm] for each time step. +#' @return A numeric vector of evaporation [mm] for each time step or +#' a numeric matrix if `keep_time`. #' #' @examples #' sw_out <- sw_exec(inputData = rSOILWAT2::sw_exampleData) #' get_evaporation(sw_out, "Month") #' #' @export -get_evaporation <- function(x, timestep = c("Day", "Week", "Month", "Year")) { +get_evaporation <- function( + x, + timestep = c("Day", "Week", "Month", "Year"), + keep_time = FALSE +) { timestep <- match.arg(timestep) res <- NULL @@ -68,6 +138,10 @@ get_evaporation <- function(x, timestep = c("Day", "Week", "Month", "Year")) { if (all(dim(tmp) > 0)) { res <- tmp[, "evapotr_cm"] - tmp[, "tran_cm"] + if (keep_time) { + res_time <- tmp[, time_columns(timestep), drop = FALSE] + } + } else { tmp1 <- slot(slot(x, "EVAPSURFACE"), timestep) tmp2 <- slot(slot(x, "EVAPSOIL"), timestep) @@ -83,6 +157,10 @@ get_evaporation <- function(x, timestep = c("Day", "Week", "Month", "Year")) { # evaporation from snow (sublimation) tmp3[, "snowloss"] + if (keep_time) { + res_time <- tmp1[, time_columns(timestep), drop = FALSE] + } + } else { stop( "Simulation run without producing evaporation output: ", @@ -92,8 +170,15 @@ get_evaporation <- function(x, timestep = c("Day", "Week", "Month", "Year")) { } } - # convert [cm] to [mm] - 10 * res + if (keep_time) { + cbind( + res_time, + E_mm = 10. * res + ) + } else { + # convert [cm] to [mm] + 10. * res + } } @@ -144,11 +229,14 @@ get_soiltemp <- function( levels = c("min", "avg", "max"), surface = TRUE, soillayers = NULL, + keep_time = FALSE, verbose = FALSE ) { timestep <- match.arg(timestep) levels <- match.arg(levels, several.ok = TRUE) + res_time <- NULL + #--- Deal with`soillayers`: NA, NULL, or integer vector if (!isTRUE(is.na(soillayers)) && !is.null(soillayers)) { soillayers <- sort(unique(as.integer(soillayers))) @@ -177,6 +265,10 @@ get_soiltemp <- function( ) } + if (keep_time) { + res_time <- tmp_sf[, time_columns(timestep), drop = FALSE] + } + # rSOILWAT2 before v5.3.0: `surfaceTemp_C` # rSOILWAT2 since v5.3.0: `surfaceTemp_min/avg/max_C` cns_sf <- if ("surfaceTemp_C" %in% colnames(tmp_sf)) { @@ -202,6 +294,10 @@ get_soiltemp <- function( ) } + if (keep_time && is.null(res_time)) { + res_time <- tmp_sl[, time_columns(timestep), drop = FALSE] + } + # rSOILWAT2 before v5.3.0: `Lyr_1`, ... # rSOILWAT2 since v5.3.0: `Lyr_1_max_C`, `Lyr_1_min_C`, `Lyr_1_avg_C`, ... if (is.null(soillayers)) { @@ -284,7 +380,7 @@ get_soiltemp <- function( } } - cbind(res_sf, res_sl) + cbind(if (keep_time) res_time, res_sf, res_sl) } ) @@ -341,7 +437,8 @@ get_soilmoisture <- function( type = c("swc", "vwc_bulk", "vwc_matric"), swInput = NULL, widths_cm = NULL, - fcoarse = NULL + fcoarse = NULL, + keep_time = FALSE ) { timestep <- match.arg(timestep) type <- match.arg(type) @@ -353,19 +450,22 @@ get_soilmoisture <- function( vwc_matric = sw_out_flags()[["sw_vwcmatric"]] ) - icols <- switch( - EXPR = timestep, - Year = -1L, - Month = , - Week = , - Day = -(1L:2L) - ) - - res <- slot(slot(x, out_flag), timestep)[, icols, drop = FALSE] + res <- NULL msg <- NULL - if (nrow(res) == 0) { + tmp <- slot(slot(x, out_flag), timestep) + icols <- -time_columns(timestep) + + + if (nrow(tmp) > 0) { + res <- tmp[, icols, drop = FALSE] + + if (keep_time) { + res_time <- tmp[, time_columns(timestep), drop = FALSE] + } + + } else { #--- Requested soil moisture output not stored in simulation output `x` # Check if any of the other soil moisture types are available @@ -403,6 +503,10 @@ get_soilmoisture <- function( STATS = widths_cm, FUN = "*" ) + if (keep_time) { + res_time <- tmp_vwcbulk[, time_columns(timestep), drop = FALSE] + } + } else if (has_vwcmatric) { # calculate swc as depth * vwc_matric * (1 - fcoarse) res <- sweep( @@ -411,6 +515,9 @@ get_soilmoisture <- function( STATS = widths_cm * one_minus_fcoarse, FUN = "*" ) + if (keep_time) { + res_time <- tmp_vwcmatric[, time_columns(timestep), drop = FALSE] + } } } else if (type == "vwc_bulk") { @@ -422,6 +529,10 @@ get_soilmoisture <- function( STATS = widths_cm, FUN = "/" ) + if (keep_time) { + res_time <- tmp_swc[, time_columns(timestep), drop = FALSE] + } + } else if (has_vwcmatric) { # calculate vwc_bulk as vwc_matric * (1 - fcoarse) res <- sweep( @@ -430,6 +541,9 @@ get_soilmoisture <- function( STATS = one_minus_fcoarse, FUN = "*" ) + if (keep_time) { + res_time <- tmp_vwcmatric[, time_columns(timestep), drop = FALSE] + } } } else if (type == "vwc_matric") { @@ -441,6 +555,10 @@ get_soilmoisture <- function( STATS = widths_cm * one_minus_fcoarse, FUN = "/" ) + if (keep_time) { + res_time <- tmp_swc[, time_columns(timestep), drop = FALSE] + } + } else if (has_vwcbulk) { # calculate vwc_matric as vwc_bulk / (1 - fcoarse) res <- sweep( @@ -449,6 +567,9 @@ get_soilmoisture <- function( STATS = one_minus_fcoarse, FUN = "/" ) + if (keep_time) { + res_time <- tmp_vwcbulk[, time_columns(timestep), drop = FALSE] + } } } @@ -474,5 +595,9 @@ get_soilmoisture <- function( stop(msg) } - res + if (keep_time) { + cbind(res_time, res) + } else { + res + } } diff --git a/man/get_derived_output.Rd b/man/get_derived_output.Rd index 10aa8d99..437eec24 100644 --- a/man/get_derived_output.Rd +++ b/man/get_derived_output.Rd @@ -7,6 +7,9 @@ \item{x}{An object of class \code{\linkS4class{swOutput}}.} \item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} + +\item{keep_time}{A logical value. Include time information in the returned +object.} } \description{ Calculate derived variables from output diff --git a/man/get_evaporation.Rd b/man/get_evaporation.Rd index f1494bd2..17e6237c 100644 --- a/man/get_evaporation.Rd +++ b/man/get_evaporation.Rd @@ -4,15 +4,23 @@ \alias{get_evaporation} \title{Calculate evaporation from output} \usage{ -get_evaporation(x, timestep = c("Day", "Week", "Month", "Year")) +get_evaporation( + x, + timestep = c("Day", "Week", "Month", "Year"), + keep_time = FALSE +) } \arguments{ \item{x}{An object of class \code{\linkS4class{swOutput}}.} \item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} + +\item{keep_time}{A logical value. Include time information in the returned +object.} } \value{ -A numeric vector of evaporation [mm] for each time step. +A numeric vector of evaporation [mm] for each time step or + a numeric matrix if `keep_time`. } \description{ Calculate evaporation from output diff --git a/man/get_soilmoisture.Rd b/man/get_soilmoisture.Rd index 5ddcd3a2..041378c5 100644 --- a/man/get_soilmoisture.Rd +++ b/man/get_soilmoisture.Rd @@ -10,7 +10,8 @@ get_soilmoisture( type = c("swc", "vwc_bulk", "vwc_matric"), swInput = NULL, widths_cm = NULL, - fcoarse = NULL + fcoarse = NULL, + keep_time = FALSE ) } \arguments{ @@ -26,6 +27,9 @@ get_soilmoisture( \item{fcoarse}{A numeric vector of coarse fragments per soil layer (units \verb{[volume fraction]}).} + +\item{keep_time}{A logical value. Include time information in the returned +object.} } \value{ A data frame with requested soil moisture; diff --git a/man/get_soiltemp.Rd b/man/get_soiltemp.Rd index 11ab1bcd..e3696f98 100644 --- a/man/get_soiltemp.Rd +++ b/man/get_soiltemp.Rd @@ -10,6 +10,7 @@ get_soiltemp( levels = c("min", "avg", "max"), surface = TRUE, soillayers = NULL, + keep_time = FALSE, verbose = FALSE ) } @@ -30,6 +31,9 @@ equivalent to requesting a \code{0} via \code{soillayers}.} \code{NA} does not return soil temperature; including a \code{0} is equivalent to setting \code{surface} to \code{TRUE}.} +\item{keep_time}{A logical value. Include time information in the returned +object.} + \item{verbose}{A logical value. Issue warnings if requested \code{levels} are not available.} } diff --git a/man/get_transpiration.Rd b/man/get_transpiration.Rd index 6ec178d8..e5fbcac2 100644 --- a/man/get_transpiration.Rd +++ b/man/get_transpiration.Rd @@ -4,15 +4,23 @@ \alias{get_transpiration} \title{Calculate transpiration from output} \usage{ -get_transpiration(x, timestep = c("Day", "Week", "Month", "Year")) +get_transpiration( + x, + timestep = c("Day", "Week", "Month", "Year"), + keep_time = FALSE +) } \arguments{ \item{x}{An object of class \code{\linkS4class{swOutput}}.} \item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} + +\item{keep_time}{A logical value. Include time information in the returned +object.} } \value{ -A numeric vector of transpiration [mm] for each time step. +A numeric vector of transpiration [mm] for each time step or + a numeric matrix if `keep_time`. } \description{ Calculate transpiration from output @@ -20,5 +28,6 @@ Calculate transpiration from output \examples{ sw_out <- sw_exec(inputData = rSOILWAT2::sw_exampleData) get_transpiration(sw_out, "Month") +get_transpiration(sw_out, "Month", keep_time = TRUE) } diff --git a/man/nrow_output.Rd b/man/nrow_output.Rd new file mode 100644 index 00000000..74f7436d --- /dev/null +++ b/man/nrow_output.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_OutputDerived_Functions.R +\name{nrow_output} +\alias{nrow_output} +\title{Number of time steps in output} +\usage{ +nrow_output(x, timestep = c("Day", "Week", "Month", "Year")) +} +\arguments{ +\item{x}{An object of class \code{\linkS4class{swOutput}}.} + +\item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} +} +\description{ +Number of time steps in output +} +\examples{ +nrow_output(sw_exec(rSOILWAT2::sw_exampleData), "Month") + +} diff --git a/man/time_columns.Rd b/man/time_columns.Rd new file mode 100644 index 00000000..165e6e1f --- /dev/null +++ b/man/time_columns.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_OutputDerived_Functions.R +\name{time_columns} +\alias{time_columns} +\title{Output column indices with time information} +\usage{ +time_columns(timestep = c("Day", "Week", "Month", "Year")) +} +\arguments{ +\item{timestep}{A character string. One of the \pkg{rSOILWAT2} time steps.} +} +\description{ +Output column indices with time information +} +\examples{ +time_columns("Month") + +} diff --git a/tests/testthat/test_OutputDerived.R b/tests/testthat/test_OutputDerived.R index 3b902d07..9b9f4d90 100644 --- a/tests/testthat/test_OutputDerived.R +++ b/tests/testthat/test_OutputDerived.R @@ -5,21 +5,78 @@ context("Derived output functions") test_that("Derived output: transpiration and evaporation", { sw_in <- rSOILWAT2::sw_exampleData - # With 'AET' output activated + tp <- "Month" + + icols <- time_columns(tp) + + #--- With 'AET' output activated sw_out1 <- sw_exec(inputData = sw_in) - tran1 <- get_transpiration(sw_out1, "Month") - evap1 <- get_evaporation(sw_out1, "Month") + tran1 <- get_transpiration(sw_out1, timestep = tp) + evap1 <- get_evaporation(sw_out1, timestep = tp) + + + #--- Request time information + # -> Output should be the same either way + expect_equal( + get_transpiration( + sw_out1, + timestep = tp, + keep_time = TRUE + )[, -icols, drop = TRUE], + tran1, + tolerance = rSW2_glovars[["tol"]] + ) + + expect_equal( + get_evaporation( + sw_out1, + timestep = tp, + keep_time = TRUE + )[, -icols, drop = TRUE], + evap1, + tolerance = rSW2_glovars[["tol"]] + ) - # De-activate 'AET' output and re-calculated from 'TRANSP' + + #--- De-activate 'AET' output and re-calculated from 'TRANSP' + # -> Output should be the same either way deactivate_swOUT_OutKey(sw_in) <- sw_out_flags()["sw_aet"] sw_out2 <- sw_exec(inputData = sw_in) - tran2 <- get_transpiration(sw_out2, "Month") - evap2 <- get_evaporation(sw_out2, "Month") + + expect_equal( + get_transpiration(sw_out2, timestep = tp), + tran1, + tolerance = rSW2_glovars[["tol"]] + ) + + expect_equal( + get_evaporation(sw_out2, timestep = tp), + evap1, + tolerance = rSW2_glovars[["tol"]] + ) - # Output should be the same either way - expect_equal(tran1, tran2) - expect_equal(evap1, evap2) + #--- Request time information + # -> Output should be the same either way + expect_equal( + get_transpiration( + sw_out2, + timestep = tp, + keep_time = TRUE + )[, -icols, drop = TRUE], + tran1, + tolerance = rSW2_glovars[["tol"]] + ) + + expect_equal( + get_evaporation( + sw_out2, + timestep = tp, + keep_time = TRUE + )[, -icols, drop = TRUE], + evap1, + tolerance = rSW2_glovars[["tol"]] + ) }) @@ -27,14 +84,15 @@ test_that("Derived output: soil/surface temperature", { sw_in <- rSOILWAT2::sw_exampleData n_soillayers <- nrow(swSoils_Layers(sw_in)) req_levels <- c("min", "avg", "max") + tp <- "Month" #--- 'SOILTEMP' output de-activated # Expect error only if such output requested sw_indeact <- sw_in deactivate_swOUT_OutKey(sw_indeact) <- sw_out_flags()["sw_soiltemp"] sw_out <- sw_exec(inputData = sw_indeact) - expect_error(get_soiltemp(sw_out, "Month")) - expect_silent(get_soiltemp(sw_out, "Month", soillayers = NA)) + expect_error(get_soiltemp(sw_out, timestep = tp)) + expect_silent(get_soiltemp(sw_out, timestep = tp, soillayers = NA)) #--- 'TEMP' output de-activated @@ -42,8 +100,10 @@ test_that("Derived output: soil/surface temperature", { sw_indeact <- sw_in deactivate_swOUT_OutKey(sw_indeact) <- sw_out_flags()["sw_temp"] sw_out <- sw_exec(inputData = sw_indeact) - expect_error(get_soiltemp(sw_out, "Month")) - expect_silent(get_soiltemp(sw_out, "Month", surface = FALSE, soillayers = 1)) + expect_error(get_soiltemp(sw_out, timestep = tp)) + expect_silent( + get_soiltemp(sw_out, timestep = tp, surface = FALSE, soillayers = 1L) + ) #--- All simulation output activated @@ -52,7 +112,7 @@ test_that("Derived output: soil/surface temperature", { # All output turned off st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = FALSE, soillayers = NA @@ -66,10 +126,10 @@ test_that("Derived output: soil/surface temperature", { # All output turned off or non-existing soil layers requested st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = FALSE, - soillayers = c(-1, 999) + soillayers = c(-1L, 999L) ) for (lvl in req_levels) { @@ -81,20 +141,34 @@ test_that("Derived output: soil/surface temperature", { # Expect surface soil temperature: `surface` st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = TRUE ) for (lvl in req_levels) { - expect_match(colnames(st[[lvl]])[1], "surfaceTemp") - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_match(colnames(st[[lvl]])[1L], "surfaceTemp") + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) + } + + # Including time step values + st <- get_soiltemp( + sw_out, + timestep = tp, + levels = req_levels, + surface = TRUE, + keep_time = TRUE + ) + + for (lvl in req_levels) { + expect_match(colnames(st[[lvl]])[1L + max(time_columns(tp))], "surfaceTemp") + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } # Expect surface soil temperature: `soillayers` include 0 st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = FALSE, soillayers = 0 @@ -102,14 +176,14 @@ test_that("Derived output: soil/surface temperature", { for (lvl in req_levels) { expect_match(colnames(st[[lvl]])[1], "surfaceTemp") - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } # Expect soil temperature: all soil layers: `soillayers` is `NULL` st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, surface = FALSE, levels = req_levels, soillayers = NULL @@ -117,22 +191,40 @@ test_that("Derived output: soil/surface temperature", { for (lvl in req_levels) { expect_match(colnames(st[[lvl]]), "Lyr") - expect_equal(ncol(st[[lvl]]), n_soillayers) - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_identical(ncol(st[[lvl]]), n_soillayers) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) + } + + # Including time step values + st <- get_soiltemp( + sw_out, + timestep = tp, + surface = FALSE, + levels = req_levels, + soillayers = NULL, + keep_time = TRUE + ) + + icols <- time_columns(tp) + for (lvl in req_levels) { + expect_match(colnames(st[[lvl]])[-icols], "Lyr") + expect_identical(ncol(st[[lvl]]), length(icols) + n_soillayers) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } + # Expect soil temperature: no soil layers: `soillayers` is `NA` st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, surface = TRUE, levels = req_levels, soillayers = NA ) for (lvl in req_levels) { - expect_equal(ncol(st[[lvl]]), 1) - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_identical(ncol(st[[lvl]]), 1L) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } @@ -140,7 +232,7 @@ test_that("Derived output: soil/surface temperature", { req_sl <- c(1, 3:4) st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = FALSE, soillayers = req_sl @@ -148,8 +240,8 @@ test_that("Derived output: soil/surface temperature", { for (lvl in req_levels) { expect_match(colnames(st[[lvl]]), "Lyr") - expect_equal(ncol(st[[lvl]]), length(req_sl)) - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_identical(ncol(st[[lvl]]), length(req_sl)) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } @@ -157,7 +249,7 @@ test_that("Derived output: soil/surface temperature", { req_sl <- c(1, 3:4, 999) st <- get_soiltemp( sw_out, - timestep = "Month", + timestep = tp, levels = req_levels, surface = FALSE, soillayers = req_sl @@ -166,7 +258,7 @@ test_that("Derived output: soil/surface temperature", { for (lvl in req_levels) { expect_match(colnames(st[[lvl]]), "Lyr") expect_lt(ncol(st[[lvl]]), length(req_sl)) - expect_equal(nrow(st[[lvl]]), slot(sw_out, "mo_nrow")) + expect_identical(nrow(st[[lvl]]), nrow_output(sw_out, tp)) } }) @@ -184,107 +276,108 @@ test_that("Derived output: soil moisture", { widths_cm <- diff(c(0., swSoils_Layers(sw_in)[, "depth_cm"])) fcoarse <- swSoils_Layers(sw_in)[, "gravel_content"] + # Loop over `keep_time` + for (kt in c(TRUE, FALSE)) { + + # Loop over time steps + for (tp in timesteps) { + #--- Requested soil moisture directly available + sw_out <- sw_exec(inputData = sw_in) + res0 <- lapply( + types, + function(type) { + get_soilmoisture(sw_out, timestep = tp, type = type, keep_time = kt) + } + ) - # Loop over time steps - for (tp in timesteps) { - id_out_nrows <- switch( - EXPR = tp, - Day = "dy_nrow", - Week = "wk_nrow", - Month = "mo_nrow", - Year = "yr_nrow" - ) - - #--- Requested soil moisture directly available - sw_out <- sw_exec(inputData = sw_in) - res0 <- lapply( - types, - function(type) { - get_soilmoisture(sw_out, timestep = tp, type = type) + for (k1 in seq_along(types)) { + # Expect that columns represent soil layers and rows time steps + expect_identical( + ncol(res0[[k1]]), + n_soillayers + if (kt) length(time_columns(tp)) else 0L + ) + expect_identical(nrow(res0[[k1]]), nrow_output(sw_out, tp)) } - ) - for (k1 in seq_along(types)) { - # Expect that columns represent soil layers and rows time steps - expect_identical(ncol(res0[[k1]]), n_soillayers) - expect_identical(nrow(res0[[k1]]), slot(sw_out, id_out_nrows)) - } + #--- Convert soil moisture among swc, vwc_bulk, and vwc_matric + for (k2 in seq_along(types)) { + sw_in1 <- sw_in + # turn off the other soil moisture types + for (k3 in seq_along(types)[-k2]) { + deactivate_swOUT_OutKey(sw_in1) <- + sw_out_flags()[[names(types)[[k3]]]] + } + sw_out <- sw_exec(inputData = sw_in1) + + #--- Derive soil information from `swInput` + res1 <- lapply( + types, + function(type) { + get_soilmoisture( + sw_out, + timestep = tp, + type = type, + swInput = sw_in1, + keep_time = kt + ) + } + ) - #--- Convert soil moisture among swc, vwc_bulk, and vwc_matric - for (k2 in seq_along(types)) { - sw_in1 <- sw_in - # turn off the other soil moisture types - for (k3 in seq_along(types)[-k2]) { - deactivate_swOUT_OutKey(sw_in1) <- sw_out_flags()[[names(types)[[k3]]]] - } - sw_out <- sw_exec(inputData = sw_in1) + for (k1 in seq_along(types)) { + # Expect that calculated moisture is (almost) equal to direct version + expect_equal( + res1[[k1]], + res0[[k1]], + tolerance = sqrt(.Machine[["double.eps"]]) + ) + } - #--- Derive soil information from `swInput` - res1 <- lapply( - types, - function(type) { + #--- Derive soil information from `widths_cm` and `fcoarse` + res2 <- lapply( + types, + function(type) { + get_soilmoisture( + sw_out, + timestep = tp, + type = type, + widths_cm = widths_cm, + fcoarse = fcoarse, + keep_time = kt + ) + } + ) + + for (k1 in seq_along(types)) { + # Expect that calculated moisture is (almost) equal to direct version + expect_equal( + res2[[k1]], + res0[[k1]], + tolerance = sqrt(.Machine[["double.eps"]]) + ) + } + + #--- Expect error if calculation does not have enough soil information + expect_error( + get_soilmoisture(sw_out, timestep = tp, type = type) + ) + expect_error( get_soilmoisture( sw_out, timestep = tp, type = type, - swInput = sw_in1 + widths_cm = widths_cm ) - } - ) - - for (k1 in seq_along(types)) { - # Expect that calculated moisture is (almost) equal to direct version - expect_equal( - res1[[k1]], - res0[[k1]], - tolerance = sqrt(.Machine[["double.eps"]]) ) - } - - #--- Derive soil information from `widths_cm` and `fcoarse` - res2 <- lapply( - types, - function(type) { + expect_error( get_soilmoisture( sw_out, - timestep = tp, + timestep = to, type = type, - widths_cm = widths_cm, fcoarse = fcoarse ) - } - ) - - for (k1 in seq_along(types)) { - # Expect that calculated moisture is (almost) equal to direct version - expect_equal( - res2[[k1]], - res0[[k1]], - tolerance = sqrt(.Machine[["double.eps"]]) ) } - - #--- Expect error if calculation does not have enough soil information - expect_error( - get_soilmoisture(sw_out, timestep = tp, type = "Month") - ) - expect_error( - get_soilmoisture( - sw_out, - timestep = tp, - type = "Month", - widths_cm = widths_cm - ) - ) - expect_error( - get_soilmoisture( - sw_out, - timestep = to, - type = "Month", - fcoarse = fcoarse - ) - ) } } }) From 0f1e36e4ddce88a7a8b672c56b27a59b6011ebd7 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Fri, 5 Aug 2022 11:53:32 -0400 Subject: [PATCH 099/238] Properly document `activate_swOUT_OutKey<-()` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -> silence R CMD check warning: ``` checking for missing documentation entries ... WARNING Undocumented code objects: ‘activate_swOUT_OutKey<-’ ``` --- R/A_swGenericMethods.R | 4 ++++ man/activate_swOUT_OutKey.Rd | 1 + 2 files changed, 5 insertions(+) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index b3c5e85d..82461fe7 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -2292,6 +2292,10 @@ setGeneric( #' \code{\link{sw_exec}} #' @aliases activate_swOUT_OutKey, deactivate_swOUT_OutKey #' @name activate_swOUT_OutKey +NULL + + +#' @rdname activate_swOUT_OutKey setGeneric( "activate_swOUT_OutKey<-", function(object, value) standardGeneric("activate_swOUT_OutKey<-") diff --git a/man/activate_swOUT_OutKey.Rd b/man/activate_swOUT_OutKey.Rd index 94ad0382..1d529555 100644 --- a/man/activate_swOUT_OutKey.Rd +++ b/man/activate_swOUT_OutKey.Rd @@ -4,6 +4,7 @@ \alias{activate_swOUT_OutKey} \alias{activate_swOUT_OutKey,} \alias{deactivate_swOUT_OutKey} +\alias{activate_swOUT_OutKey<-} \alias{deactivate_swOUT_OutKey<-} \title{Activate/deactivate an output slot (\var{swOUT_OutKey})} \usage{ From 1ef10e1b1fc335dad539ba813ec40b858fa5d706 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 08:02:05 -0400 Subject: [PATCH 100/238] `pdf_estimate()` gains argument "fail" (with default FALSE) --- R/sw_Pedotransfer_Functions.R | 21 ++++++++++++++------- man/pdf_estimate.Rd | 14 +++++++++++++- man/rSW2_SWRC_PDF_estimate_parameters.Rd | 5 ++--- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index a358dc2e..95d1860a 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -427,6 +427,8 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' are recycled for multiple soil layers. #' #' @inherit SWRCs references +#' @param fail A logical value. If requested `PDF` fails, +#' then issue a warning (`FALSE`, default) or throw an error (`TRUE`). #' #' @return `swrcp`, i.e,. #' a numeric matrix where rows represent soil (layers) and @@ -491,6 +493,7 @@ pdf_estimate <- function( bdensity = NULL, swrc_name, pdf_name, + fail = FALSE, ... ) { @@ -516,6 +519,7 @@ pdf_estimate <- function( clay = clay, fcoarse = fcoarse, bdensity = bdensity, + fail = fail, ... ) @@ -533,7 +537,9 @@ pdf_estimate <- function( #--- Check validity of estimated SWRCp if (!all(check_swrcp(swrc_name, swrcp))) { - warning("Some estimated parameters failed checks.") + msg <- "Some estimated parameters failed checks." + + if (isTRUE(fail)) stop(msg) else warning(msg) } swrcp @@ -609,9 +615,8 @@ check_pdf_availability <- function( #' using selected pedotransfer function (`PDF`) that are implemented in `R` #' #' @inheritParams pdf_estimate -#' @param fail A logical value. If `TRUE` (default) and -#' requested `PDF` is not implemented in `R`, then throw an error; -#' otherwise, return silently. +#' @param fail A logical value. If requested `PDF` fails, +#' then issue a warning (`FALSE`) or throw an error (`TRUE`, default). #' #' @return `swrcp`, i.e,. #' a numeric matrix where rows represent soil (layers) and @@ -669,9 +674,11 @@ rSW2_SWRC_PDF_estimate_parameters <- function( # nolint: object_length_linter. )[["mean"]] } else { - if (isTRUE(fail)) { - stop("PDF ", shQuote(pdf_name), " is not implemented in rSOILWAT2.") - } + msg <- paste("PDF", shQuote(pdf_name), "is not implemented in rSOILWAT2.") + + if (isTRUE(fail)) stop(msg) else warning(msg) + + NULL } } diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index bac213fa..b8c19ec8 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -4,7 +4,16 @@ \alias{pdf_estimate} \title{Estimate \code{SWRC} parameters from soil texture with a pedotransfer function} \usage{ -pdf_estimate(sand, clay, fcoarse, bdensity = NULL, swrc_name, pdf_name, ...) +pdf_estimate( + sand, + clay, + fcoarse, + bdensity = NULL, + swrc_name, + pdf_name, + fail = FALSE, + ... +) } \arguments{ \item{sand}{A numeric value or vector. @@ -34,6 +43,9 @@ The selected \code{SWRC} name The selected \code{PDF} name (one of \code{\link[=pdf_names]{pdf_names()}}, with default \code{"Cosby1984AndOthers"}).} +\item{fail}{A logical value. If requested \code{PDF} fails, +then issue a warning (\code{FALSE}, default) or throw an error (\code{TRUE}).} + \item{...}{Additional parameters passed to selected \code{PDF} function.} } \value{ diff --git a/man/rSW2_SWRC_PDF_estimate_parameters.Rd b/man/rSW2_SWRC_PDF_estimate_parameters.Rd index 703f6502..15f75675 100644 --- a/man/rSW2_SWRC_PDF_estimate_parameters.Rd +++ b/man/rSW2_SWRC_PDF_estimate_parameters.Rd @@ -39,9 +39,8 @@ relative to the whole soil (matric soil plus coarse fragments).} Density of the whole soil (matric soil plus coarse fragments; units \verb{[g/cm3]}).} -\item{fail}{A logical value. If \code{TRUE} (default) and -requested \code{PDF} is not implemented in \code{R}, then throw an error; -otherwise, return silently.} +\item{fail}{A logical value. If requested \code{PDF} fails, +then issue a warning (\code{FALSE}) or throw an error (\code{TRUE}, default).} \item{...}{Additional parameters passed to selected \code{PDF} function.} } From f8260a30bb945cf1dea524ec9e7a013e25bfbbdb Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 08:03:12 -0400 Subject: [PATCH 101/238] `check_pdf_availability()` gains argument "exclude_NoPDF" (with default FALSE) --- R/sw_Pedotransfer_Functions.R | 10 +++++++++- man/check_pdf_availability.Rd | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 95d1860a..1f54572c 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -564,7 +564,9 @@ pdfs_implemented_in_rSW2 <- function() { #' live internet connection or access to specific data files. #' #' @param pdfs A character vector. `PDF` names to be checked; -#' defaults to `pdf_names()`. +#' defaults to [pdf_names()]. +#' @param exclude_NoPDF A logical value. Consider `"NoPDF"` to be +#' available (`FALSE`, default) or unavailable (`TRUE`). #' @param verbose A logical value. #' #' @return A named logical vector with current availability of `PDFs`; @@ -574,11 +576,13 @@ pdfs_implemented_in_rSW2 <- function() { #' check_pdf_availability() #' check_pdf_availability("neuroFX2021") #' check_pdf_availability("nonexistent_PDF") +#' check_pdf_availability(exclude_NoPDF = TRUE) #' #' @export #' @md check_pdf_availability <- function( pdfs = names(pdf_names()), + exclude_NoPDF = FALSE, verbose = interactive() ) { res <- rep(NA, length(pdfs)) @@ -590,6 +594,10 @@ check_pdf_availability <- function( tmp <- pdfs %in% names(pdf_names()) & !(pdfs %in% rpdfs) res[tmp] <- TRUE + if (isTRUE(exclude_NoPDF) && "NoPDF" %in% pdfs) { + res["NoPDF"] <- FALSE + } + # Check requested PDFs implemented in R has_rpdfs <- vapply( pdfs[pdfs %in% rpdfs], diff --git a/man/check_pdf_availability.Rd b/man/check_pdf_availability.Rd index 124038eb..962502bb 100644 --- a/man/check_pdf_availability.Rd +++ b/man/check_pdf_availability.Rd @@ -4,11 +4,18 @@ \alias{check_pdf_availability} \title{Check availability of \code{PDFs}} \usage{ -check_pdf_availability(pdfs = names(pdf_names()), verbose = interactive()) +check_pdf_availability( + pdfs = names(pdf_names()), + exclude_NoPDF = FALSE, + verbose = interactive() +) } \arguments{ \item{pdfs}{A character vector. \code{PDF} names to be checked; -defaults to \code{pdf_names()}.} +defaults to \code{\link[=pdf_names]{pdf_names()}}.} + +\item{exclude_NoPDF}{A logical value. Consider \code{"NoPDF"} to be +available (\code{FALSE}, default) or unavailable (\code{TRUE}).} \item{verbose}{A logical value.} } @@ -25,5 +32,6 @@ live internet connection or access to specific data files. check_pdf_availability() check_pdf_availability("neuroFX2021") check_pdf_availability("nonexistent_PDF") +check_pdf_availability(exclude_NoPDF = TRUE) } From 6fd09e9d1169cb227312aed7795a6c1c3d46ae2f Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 08:10:24 -0400 Subject: [PATCH 102/238] New methods `swSite_PDFNoPDF()` and `swSite_PDFutilized()` - no slot "pdf_for_NoPDF" of class "swSite" - store and smartly retrieve PDF name of a PDF used to estimate SWRC parameters before a simulation run (but thus "pdf_name" is set to "NoPDF" - to avoid that SOILWAT2 attempts to re-estimate already estimated SWRC parameter values) -> updated example data -> updated `sw_upgrade()` --- NAMESPACE | 3 + R/A_swGenericMethods.R | 44 +++++++++++++- R/F_swSite.R | 54 ++++++++++++++++-- R/K_swContainer.R | 24 ++++++++ R/Rsw.R | 1 + data/sw_exampleData.rda | Bin 54503 -> 54490 bytes man/swSite_PDFNoPDF.Rd | 38 ++++++++++++ man/swSite_PDFutilized.Rd | 26 +++++++++ tests/test_data/Ex1_input.rds | Bin 5882 -> 5898 bytes tests/test_data/Ex2_input.rds | Bin 13233 -> 13246 bytes tests/test_data/Ex3_input.rds | Bin 5882 -> 5897 bytes tests/test_data/Ex4_input.rds | Bin 5881 -> 5897 bytes tests/test_data/Ex5_input.rds | Bin 5889 -> 5903 bytes .../Ex1_input_v6.0.0.rds | Bin 5882 -> 5898 bytes vignettes/rSOILWAT2_demo.Rmd | 11 +++- 15 files changed, 191 insertions(+), 10 deletions(-) create mode 100644 man/swSite_PDFNoPDF.Rd create mode 100644 man/swSite_PDFutilized.Rd diff --git a/NAMESPACE b/NAMESPACE index 9d8b2b55..d01f2716 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -248,6 +248,7 @@ exportMethods("swSite_EvapCoefficients<-") exportMethods("swSite_IntrinsicSiteParams<-") exportMethods("swSite_ModelCoefficients<-") exportMethods("swSite_ModelFlags<-") +exportMethods("swSite_PDFNoPDF<-") exportMethods("swSite_SWClimits<-") exportMethods("swSite_SWRCflags<-") exportMethods("swSite_SnowSimulationParams<-") @@ -348,6 +349,8 @@ exportMethods(swSite_EvapCoefficients) exportMethods(swSite_IntrinsicSiteParams) exportMethods(swSite_ModelCoefficients) exportMethods(swSite_ModelFlags) +exportMethods(swSite_PDFNoPDF) +exportMethods(swSite_PDFutilized) exportMethods(swSite_SWClimits) exportMethods(swSite_SWRCflags) exportMethods(swSite_SnowSimulationParams) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 82461fe7..91130962 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -199,7 +199,8 @@ format_timestamp <- function(object) { #' @section Details: #' List of changes: #' * Changes with `v6.0.0`: -#' * class [`swSite-class`]: new slot `"swrc_flags"` +#' * class [`swSite-class`]: +#' new slots `"swrc_flags"` and `"pdf_for_NoPDF"` #' * class [`swSoils-class`]: new slot `"SWRCp"` #' * class [`swFiles-class`]: #' `SWRC` parameter input file added as file 6 for a new total of 23 @@ -1574,6 +1575,37 @@ setGeneric( function(object) standardGeneric("swSite_SWRCflags") ) +#' The utilized `pdf` name stored for later use +#' +#' @param object An object of class [swSite-class] or [swInputData-class]. +#' +#' @return The pedotransfer function name that was stored +#' with [swSite_PDFNoPDF()] for later usage +#' in the situation when `pdf_name` is set to `"NoPDF"` but +#' the `pdf` was actually being for estimating the `SWRC` parameters. +#' +#' @md +#' @exportMethod swSite_PDFNoPDF +setGeneric( + "swSite_PDFNoPDF", + function(object) standardGeneric("swSite_PDFNoPDF") +) + +#' Identify the actually utilized `pdf` name +#' +#' @param object An object of class [swSite-class] or [swInputData-class]. +#' +#' @return The pedotransfer function name that was utilized for estimating +#' `SWRC` given that it was stored either via [swSite_SWRCflags()] or +#' [swSite_PDFNoPDF()]. +#' +#' @md +#' @exportMethod swSite_PDFutilized +setGeneric( + "swSite_PDFutilized", + function(object) standardGeneric("swSite_PDFutilized") +) + #' \code{swSite_SWClimits} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. @@ -1702,6 +1734,16 @@ setGeneric( function(object, value) standardGeneric("swSite_SWRCflags<-") ) +#' @rdname swSite_PDFNoPDF +#' +#' @param value A character vector of a pedotransfer function name. +#' +#' @exportMethod swSite_PDFNoPDF<- +setGeneric( + "swSite_PDFNoPDF<-", + function(object, value) standardGeneric("swSite_PDFNoPDF<-") +) + #' \code{swSite_SWClimits<-} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. diff --git a/R/F_swSite.R b/R/F_swSite.R index aff704c7..e1a97a96 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -68,9 +68,9 @@ setClass( SoilTemperatureFlag = "logical", SoilTemperatureConstants = "numeric", TranspirationRegions = "matrix", - swrc_flags = "character" - ) - , + swrc_flags = "character", + pdf_for_NoPDF = "character" + ), prototype = list( SWClimits = c(swc_min = NA_real_, swc_init = NA_real_, swc_wet = NA_real_), ModelFlags = c(Reset = NA, DeepDrain = NA), @@ -111,7 +111,8 @@ setClass( dim = c(3L, 2L), dimnames = list(NULL, c("ndx", "layer")) ), - swrc_flags = c(swrc_name = NA_character_, pdf_name = NA_character_) + swrc_flags = c(swrc_name = NA_character_, pdf_name = NA_character_), + pdf_for_NoPDF = NA_character_ ) ) @@ -176,6 +177,11 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } + if (length(object@pdf_for_NoPDF) != 1L) { + msg <- "@pdf_for_NoPDF length != 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } + val } ) @@ -232,8 +238,7 @@ setMethod( "sw_upgrade", signature = "swSite", definition = function(object, verbose = FALSE) { - #--- Make sure we have SWRC/PDF flags - tmp <- try(object@swrc_flags, silent = TRUE) + tmp <- try(validObject(object), silent = TRUE) if (inherits(tmp, "try-error")) { if (verbose) { message("Upgrading object of class `swSite`.") @@ -258,6 +263,31 @@ setMethod( function(object) slot(object, "swrc_flags") ) +#' @rdname swSite_PDFNoPDF +setMethod( + "swSite_PDFNoPDF", + signature = "swSite", + function(object) slot(object, "pdf_for_NoPDF") +) + +#' @rdname swSite_PDFutilized +setMethod( + "swSite_PDFutilized", + signature = "swSite", + function(object) { + swrc_flags <- swSite_SWRCflags(object) + pdf_for_NoPDF <- swSite_PDFNoPDF(object) + + uses_NoPDF <- swrc_flags[["pdf_name"]] == "NoPDF" + + if (!uses_NoPDF || (uses_NoPDF && is.na(pdf_for_NoPDF))) { + swrc_flags[["pdf_name"]] + } else { + pdf_for_NoPDF + } + } +) + #' @rdname swSite-class #' @export setMethod( @@ -370,6 +400,18 @@ setReplaceMethod( } ) + +#' @rdname swSite_PDFNoPDF +setReplaceMethod( + "swSite_PDFNoPDF", + signature = "swSite", + definition = function(object, value) { + object@pdf_for_NoPDF[] <- as.character(value) + validObject(object) + object + } +) + #' @rdname swSite-class #' @export setReplaceMethod( diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 6608167c..ca45e248 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1599,6 +1599,21 @@ setMethod( function(object) swSite_SWRCflags(object@site) ) +#' @rdname swSite_PDFNoPDF +setMethod( + "swSite_PDFNoPDF", + signature = "swInputData", + function(object) swSite_PDFNoPDF(object@site) +) + +#' @rdname swSite_PDFutilized +setMethod( + "swSite_PDFutilized", + signature = "swInputData", + function(object) swSite_PDFutilized(object@site) +) + + #' @rdname swInputData-class #' @export setMethod( @@ -1710,6 +1725,15 @@ setReplaceMethod( } ) +#' @rdname swSite_PDFNoPDF +setReplaceMethod( + "swSite_PDFNoPDF", + signature = "swInputData", + function(object, value) { + swSite_PDFNoPDF(object@site) <- value + object + } +) #' @rdname swInputData-class #' @export setReplaceMethod( diff --git a/R/Rsw.R b/R/Rsw.R index 8b3aa06b..47b36d57 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -283,6 +283,7 @@ sw_exec <- function( if (!is.null(swrcp)) { rSOILWAT2::swSoils_SWRCp(inputData) <- swrcp swSite_SWRCflags(inputData)["pdf_name"] <- "NoPDF" + swSite_PDFNoPDF(inputData) <- pdf_name } else { tmp <- rSOILWAT2::swSoils_SWRCp(inputData) rSOILWAT2::swSoils_SWRCp(inputData) <- array( diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index fae587516ebf178675a356ad7f889ba12b6df094..fd3aea10c90f231ed65c7b440c0ff830ec840bad 100644 GIT binary patch delta 53854 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 B-gy83 diff --git a/man/swSite_PDFNoPDF.Rd b/man/swSite_PDFNoPDF.Rd new file mode 100644 index 00000000..4aa42ba8 --- /dev/null +++ b/man/swSite_PDFNoPDF.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, +% R/K_swContainer.R +\name{swSite_PDFNoPDF} +\alias{swSite_PDFNoPDF} +\alias{swSite_PDFNoPDF<-} +\alias{swSite_PDFNoPDF,swSite-method} +\alias{swSite_PDFNoPDF<-,swSite-method} +\alias{swSite_PDFNoPDF,swInputData-method} +\alias{swSite_PDFNoPDF<-,swInputData-method} +\title{The utilized \code{pdf} name stored for later use} +\usage{ +swSite_PDFNoPDF(object) + +swSite_PDFNoPDF(object) <- value + +\S4method{swSite_PDFNoPDF}{swSite}(object) + +\S4method{swSite_PDFNoPDF}{swSite}(object) <- value + +\S4method{swSite_PDFNoPDF}{swInputData}(object) + +\S4method{swSite_PDFNoPDF}{swInputData}(object) <- value +} +\arguments{ +\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} + +\item{value}{A character vector of a pedotransfer function name.} +} +\value{ +The pedotransfer function name that was stored +with \code{\link[=swSite_PDFNoPDF]{swSite_PDFNoPDF()}} for later usage +in the situation when \code{pdf_name} is set to \code{"NoPDF"} but +the \code{pdf} was actually being for estimating the \code{SWRC} parameters. +} +\description{ +The utilized \code{pdf} name stored for later use +} diff --git a/man/swSite_PDFutilized.Rd b/man/swSite_PDFutilized.Rd new file mode 100644 index 00000000..d082985f --- /dev/null +++ b/man/swSite_PDFutilized.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, +% R/K_swContainer.R +\name{swSite_PDFutilized} +\alias{swSite_PDFutilized} +\alias{swSite_PDFutilized,swSite-method} +\alias{swSite_PDFutilized,swInputData-method} +\title{Identify the actually utilized \code{pdf} name} +\usage{ +swSite_PDFutilized(object) + +\S4method{swSite_PDFutilized}{swSite}(object) + +\S4method{swSite_PDFutilized}{swInputData}(object) +} +\arguments{ +\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} +} +\value{ +The pedotransfer function name that was utilized for estimating +\code{SWRC} given that it was stored either via \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}} or +\code{\link[=swSite_PDFNoPDF]{swSite_PDFNoPDF()}}. +} +\description{ +Identify the actually utilized \code{pdf} name +} diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 67eaf7586922af8df93d06d76dc8223de1ad2af2..7ac41f0491977147abd6ce63d0ccacd063f53cb3 100644 GIT binary patch literal 5898 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 O=f&r&nEm72x&H!nej26# literal 5882 zcmai%cRU;Zy2q=kHZ4j~O=)XyEj3duwTe=sc59EI6fu*csM@2bm7-Q+)vOvZYL6H- zLP-$BCRPw}&%Nh$?tT5vz4x5&`}O*~-p}*T_j&$&05LR|{_9b0S%tj4IRU9o1uO_#r8qVmI(iV=> z<|KcR+`1&xS=;s~QHY;H`b9A-4Zxj6LH7B;NL#E$aw<@8?QEMo-!j*vj5YxY=75zq zFv>gor1{lz^323s`>-0{XsWYygUaadCqRDl6-N!IlfJFh_(ZhYejrzs_-Ho%>$C}9 zS~-`(`7{sRcC&*M;2dmWV`IaZ*J%**%MX{Y6`}iFiim=RoNgWaDp}Y~C%=4X+tZj` zA6xil0`B#tAD2_ zOpM33+}L!*`k6{2!6ys%lPh&Z5FcOs$+{j6a$sl?7xOcV*8jGk@bJ@ZHkj46zLSG7 zV$*1o#m6+l$KgrZ-F~?bsp?O`bd05C9en+Alc&#T%_AmVCKfXlP`>&$xqvr# zQ=GZ~JVL?KUX8Q&m1?+gZOS4Ks;lo7547fB*j)M62C5s+R5`kBO^mur1_mJ&X>yyHmnkIq>TM6`y+7V)*hzHOnqrbiIIUOFSOU zm9px_6U(F@CvLx6^SaXxvt7bcsiJk$^qBKg z#_l-Ncd}Y*&l**3O!(Of>t&)DEL?{dDDC)u@O5YX*o#GQH~tAI3$o1GUHL4a@ZG+r z>WNlq9a3Rf#T{?%aKjK);)=HZT-;-n#bTsBX;ONgtA+F|EcpUoEpG8jnxq-%eMQLL zS@6#LVSQEW0kcNQp{7jGJW4}lrb zA!ehZ7Y87pEE<>A*37m+hAQUgW$UDOL9UI`YIaKo4^fCfcG#4KUG(d}Z6>0)DZNrx z7oX+>k^Tc3e1(?A36YYpel8b6l`1I`FvlsGvDT$rQLzy59`X77u-$r!9Xk8D^o>mg zC ziE*=yx&KSCzRK;oSyQ{70SRuKVPC%!IrU9aKc+jAc_$atFuELNGt|*J_nj)vp3<{% z{Ash4r+u89152_l2N?awV^9okHc@J{RdK*?mOs86biXAVW2_|I_E4r8o{;)+d)g)C zl@G0%7D*xga-4#g751xVdHH}xM`jxgBT|y-D;4tNOS$v8_#ba+XO@z;r99J&n-m_D z*7TcH^OycG18|k)wIp7LG5NFUE#JdxrbTxp1@W_6?ZYMHW4i|I> zLm6&K%#Wd$PANwK?;*EO1MsVPuqg7K1L`~=&ABR`>)2bNX}y5JtAf??n7PBoCtUfDGqv@H^pTmA^;AW9XIByCZ;56~+**(+3AG zc#b@qO{xwLuj@2tT~VRg;BF1h;J@=+H<_XJZ$Pe+7>Jy^GFYcJ)O#2Okh1miUxBcb zM2Tj*HCU&1R2Ym3NUuTxd#~RnfMwmKC0+@>3}GVOBFgW+!>+cWLSd9ZYRGMp5;0(R zAG_L)3WrexnIROU%S5VOdMrnq#Cw}d$V;tse}&9K)WJ%GBCq_9ND~LJ65&V&@;{{Y z>R*9eC-D*0cVn;|?Gj-&SCBNVO#cK$>tCU5MKh`?IRdWjy;&3c@^R`x=tm6c(lyAS zKIH-`n7#Krci)SOY>I{c`@n=j>B(Zm2JF9*NGLbio!GDdu;A?bhhzRpz*tNul$y*# z{8zGoiGXsDt%%_NUnJV0v}B!Ko3INOQaToS<>Ef^f3*aTXxIc_e0>~xnTqaT$<5d2 zBBvYESq?)|mH3*5?j~g(>mWd`IkvI^#lBpymIwc~ZtM~mC|l0PdRUn)XZi$s$6rbF z`5a=4I~=LOc{HzNGfTf+u8uaB)%KF8)wg)o4b5xW8ro6l85=z^_;>&R>lxc@OhLQU z-^36k3KyMoK%!s9nzYw64`c6DAo4eVI>BY!Ck&?OU7dS#->L9vq&49p``!7xjql$7 zu{;SGEd{h1hG+$L3ip_E6HmrTy}in$4EU`R#|Qk8tz6{=_bgmcmnp1184xH-%ycv0 zrdyAsB-dYf59;GdgUltlu3pzbqVNZ)dFZ7gUIT;YCG z`cu&xM7%4WY-W{z|D=u@5S#&d1ejEt$RAL*707praSswh*VA5<5+{w?y=5$2ztm}d zb>)0m_PAz29L?7fB-S}mBh~1_^IQ6!+Z9@JfBx}1OrL-N%&t!xvJmNnlEf|OGcstZ zhBY9MbhPZI63e(99b!vP!opLJt^frBd%OU9HPd}vgSanh=Ql_oMM$@T8Bu13TK)tT zJB2=vTbn&3ZPpBiAE*+WUL$?y%I{ylc=#cSMG3wxA17#8ruK_nXLA1oeZ6CbC0@|K za0x2*2AqGI6Ukw9|8N--^d1*|wH>14DCc-fK}b4%oKeR zE>t~@Hy)$p^+WDnkNw*@VNOeqA?$tBxbfYiG9in2ImgmK75C~}R9{L2EB;FFb~o}}PM97z&3VdjQZ@;Zs}?tQByRY@Y1pUS<>-Iu(K z`E8Q-nyt@fbT0FIHZPyKMFWd&)bn#SbeOO`DK@1MQlBJ#t(l*sZHm4;iD1!^4! zx;I$^TlgAjc{1M8g^D$u4jFq2Nt57Kk?}H< zIzi(UQI^kA=OcnG`D0x`Wlv>YK~~M*=fpNDZh`h@G_<3 z)^QNWBoc$kVeq@NtqpzYXN0p?a=Ge109Je_%KHWh$6~ux4GfE_&4yo!Hwa&y;T-cu zP9))U$MdkIESt49FTnRN6`es}G1LKE&F3_$dyZUpLPKs7r2Qk=J~yg>mHG$xZ6#Wz z7&AAKm!R*9rZrcN6887GaWR$660Dz!gfrpJ@C#_B>n8iX>Y@rWk0^cJ@Q8q=&TW$> zr6E1URN!xS1XHy9`nKi}bAW(Mu;=(e*E?rp#e!EU>aCwaH3Ql|11B-VYR0BHRhc;( zJ>n-dYTOgJ=D4`Cz(?@8D(d2JnO_wud^h=j-Kw`YPKZ9Eli1EEw|IHji#Yl;G~d0J zgw99E!%It52c{)O5#|ov6LFUDPW&{VbcX9wJyKr^$7#kZyMwgI*p?~SpNp}e6kyOn zQw}%-U}u$W4Onr}f!OU72gc{{xV?RaY0s@^5dJjKV6(L;#W-uWk8|;sO8IOi{iEx7 zlJl^A-C{6WF{@0M%wCzXtVDZ5(6CkfB+t&tWd_o~?~r|(B{U=$bZ`xv`HEhxeoWiT zw4P0mT^D?k)Z%edzNrk*g-w!WT5S2yODg{9nXp8Ee*?j$48M@a6Gg$ACP9M z5eZjRZQ5t5UuO+GEW5u^UuvypnDh$=jRbI5IUAy-2DwsxI#_~5jT?;bt7}}Yq`F$Z z^P9KB9CP+94{ATOD=~Re51`%WAk+62JTMSDr?CD0$!&6+79^V!yNK20KT>ByC#I{4_^+ z6pZxCUv5_qE14(}f3g_Z-h)Fp9jk2e<_5KVDu=#T?irRORc3>Il7de@3nWDC?cr_f zm{7+`=fKQ{0OD^La#ja*H{!K?Ag?K530H1?ssgE+)xj(kTPv_e*(mOPR=WjR8v+st zUe$_srAX^%^Xn1N8z&*QJtCsYeG;S>`}=1dj7}Xy#1Yi-LdTjIQ+3AVPx`nbuTT}? z0IBUv0xT$<;lavCQqn?<|20x&2{az#zt+;i8{EQS6Divk%?+H=X-#~;EKL1w6Dm)R8VL{iq5fV@Rn1T3AbUueV6z?4#&BK?_JyUuoL|D(7WM zEO-xF5P~^{rKd;;>+3r(TcrnkEh-1BMi=7tdt`yTy;I0v20zzVa6#UU**;rsZJx{w zn`s`z`3m=9eOOvOQb;}Bm|1%kN$8!bEZRRjlJGpkB40Lb@atWSw>^g5*nu9tTW$er zlWXl}DMdtL`g-)q3-JKu!%&>Sytg_*pG*$vOK7!6Bs9PEB#hd*!#2sk?E2DyCvjb# zWS{IME{lWv&9+&78^XF-K%)C$(OwpxAykd)qh{0Hv7zg0X=+Pa@g8S}^GbD-X7M9b zI{c1lZeVxm#Wgs6yPBAplx4l@o_4VbI``$nY7{KL$?jkXfmdiTDy*Z+a$K@Q^`^Ce z?H!XL^K1n>uTPVHZ(^+&8GfSOJd4x`wXmWZ@4}=4kE6?TRMUsp76r%TVNRci+O&-B z=jj9`i}9))V^AeLF8!FR_V0P2Z@Iy=U%1sm9!Hs#7S&3V9nubhL zC)UT0<}%5W2H>s;E4;6Y_;{3iGwPwllm9G3R6MXi5K<+u=f4XKTgy_1_<;&QZkM^S zg5!XnbnLTkqS)0hUD{T~QOBVo_~xG9iw>q2Gc06plttpb<_2<0k5ueHw79OvMGK3c#x$aO zbk*GR-O$;tXuX-L-@zrjlbOjnJ{nO*x)nNi&Q8;8mU-NRed1p?MSs971YXa^)}%C; zq)xn6DH!loXB;**&hh5C$Vjz#wV-gUS!G}>R9pECu4NIS(w6b!5IY)7Eru@xyhxE4jsadP v>1IW$Gxl)HeiXU6zQ#viB%a3T7hqY8m|XapD{-gdf-0H*)n(82OPBrw2ebk4 diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index 2fda6c423265e013852e0537e0206e1fc6540a81..fb863e33fd3e3eef7d0d766d36715a0a44a858e7 100644 GIT binary patch delta 12976 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 bZ4j(%M#hD|JpC9kasmaKor(+Esi^)B^N7O( delta 12970 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

    bdRZ`|+uhQVV=hfcoV>;?fZ48V0i{IdFvixy55 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 z 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 diff --git a/tests/test_data/Ex4_input.rds b/tests/test_data/Ex4_input.rds index a8af6b9dc384493690efd8d8dfb8584e88fa46f8..a9c653982cbedd33ccd4c1e2ec2eaa6c50ca2ab2 100644 GIT binary patch delta 5451 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 diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index 8fc3c0dbd79ce0b256a08cd90b77e87a261848f3..ad4aeab2c76594e96b344217a4855ae6ec4211d0 100644 GIT binary patch literal 5903 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 diff --git a/tests/test_data/versioned_swInputData/Ex1_input_v6.0.0.rds b/tests/test_data/versioned_swInputData/Ex1_input_v6.0.0.rds index 67eaf7586922af8df93d06d76dc8223de1ad2af2..7ac41f0491977147abd6ce63d0ccacd063f53cb3 100644 GIT binary patch literal 5898 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 O=f&r&nEm72x&H!nej26# literal 5882 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 diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index ca729441..70c38a23 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -606,15 +606,20 @@ see `pdf_names()`. pdf_name = tmp["pdf_name"] ) + + # Update `pdf_name` to indicate that parameter values are already estimated + rSOILWAT2::swSite_SWRCflags(sw_in)["pdf_name"] <- "NoPDF" + + # Optionally, store `pdf_name` for later (e.g., if we need to update `SWRCp`) + rSOILWAT2::swSite_PDFNoPDF(sw_in) <- tmp["pdf_name"] + + # Set estimated `SWRC` parameter values rSOILWAT2::swSoils_SWRCp(sw_in) <- swrcp if (FALSE) { # Alternatively, set soil properties and SWRC parameters at once rSOILWAT2::set_swSoils(sw_in) <- list(Layers = soil_new, SWRCp = swrcp) } - - # Update `pdf_name` to indicate that parameter values are already estimated - rSOILWAT2::swSite_SWRCflags(sw_in)["pdf_name"] <- "NoPDF" ``` From fc9f96a63687aeb4ab6700e352aa255da9db6f8c Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 08:14:24 -0400 Subject: [PATCH 103/238] `swSite_SWRCflags()` method for "swInputData" resets SWRCp (because inconsistent) - setting a different SWRC and/or PDF invalidates any existing SWRC parameter values -> these are now reset to NA (so to avoid any inconsistencies between "swrc_name" & "pdf_name" vs. "SWRCp" -> The correct sequence for setting values is 1. [swSoils_Layers()], 2. [swSite_SWRCflags()], and 3. [swSoils_SWRCp()] --- R/F_swSoils.R | 9 +++++++ R/K_swContainer.R | 61 +++++++++++++++++++++++++++++++++++++---------- R/Rsw.R | 7 +++--- 3 files changed, 61 insertions(+), 16 deletions(-) diff --git a/R/F_swSoils.R b/R/F_swSoils.R index 02faa4ed..49191d1d 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -312,6 +312,15 @@ setReplaceMethod( +reset_SWRCp <- function(SWRCp, new_nrow = 1L) { + array( + data = NA_real_, + dim = c(new_nrow, ncol(SWRCp)), + dimnames = list(NULL, colnames(SWRCp)) + ) +} + + #' @rdname swSoils-class #' @export diff --git a/R/K_swContainer.R b/R/K_swContainer.R index ca45e248..b609d82d 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1714,13 +1714,31 @@ setReplaceMethod( } ) -#' @rdname swInputData-class -#' @export +#' @rdname swSite_SWRCflags +#' +#' @section Details: +#' The replacement method [swSite_SWRCflags()] for class [swInputData-class] +#' resets `SWRCp` to `NA` if `"swrc_name"` or `"pdf_name"` are updated. +#' This is to avoid inconsistency between `SWRCp` and `swrc_flags`. +#' +#' @section Details: +#' The correct sequence for setting values is +#' 1. [swSoils_Layers()], +#' 2. [swSite_SWRCflags()], and +#' 3. [swSoils_SWRCp()] +#' +#' @md setReplaceMethod( "swSite_SWRCflags", signature = "swInputData", function(object, value) { - swSite_SWRCflags(object@site) <- value + prev <- as.character(swSite_SWRCflags(object@site)) + value <- as.character(value) + if (!identical(prev, value)) { + swSite_SWRCflags(object@site) <- value + # Reset SWRCp -- avoid inconsistency between SWRCp and swrc_flags + object@soils@SWRCp[] <- NA_real_ + } object } ) @@ -1899,14 +1917,26 @@ setReplaceMethod( } ) -#' @rdname swInputData-class -#' @export +#' @rdname swSoils_Layers +#' +#' @section Details: +#' The replacement method `swSoils_Layers<-` for class [swInputData-class] +#' resizes `SWRCp` to match number of new soil layers +#' (and reset `SWRCp` values to `NA`) if `"pdf_name"` is not `"NoPDF"` (fixed). +#' +#' @section Details: +#' The correct sequence for setting values is +#' 1. [swSoils_Layers()], +#' 2. [swSite_SWRCflags()], and +#' 3. [swSoils_SWRCp()] +#' +#' @md setReplaceMethod( "swSoils_Layers", signature = "swInputData", function(object, value) { - if (as.vector(object@site@swrc_flags["pdf_name"]) != "NoPDF") { + if (object@site@swrc_flags[["pdf_name"]] != "NoPDF") { # Note: If `pdf_type` == 0, then SWRC parameters are not estimated # but they are either read in from disk or passed as object. # --> however, assigning new soil layers fails `swSoils` validity checks @@ -1914,10 +1944,9 @@ setReplaceMethod( # If `pdf_type` != 0, then SWRC parameters will be estimated later; # thus current values will be discarded and # we can resize empty SWRC parameter object to avoid validity failure. - object@soils@SWRCp <- array( - data = NA_real_, - dim = c(nrow(value), ncol(object@soils@SWRCp)), - dimnames = list(NULL, colnames(object@soils@SWRCp)) + object@soils@SWRCp <- reset_SWRCp( + SWRCp = object@soils@SWRCp, + new_nrow = nrow(value) ) } @@ -1926,8 +1955,16 @@ setReplaceMethod( } ) -#' @rdname swInputData-class -#' @export + +#' @rdname swSoils_SWRCp +#' +#' @section Details: +#' The correct sequence for setting values is +#' 1. [swSoils_Layers()], +#' 2. [swSite_SWRCflags()], and +#' 3. [swSoils_SWRCp()] +#' +#' @md setReplaceMethod( "swSoils_SWRCp", signature = "swInputData", diff --git a/R/Rsw.R b/R/Rsw.R index 47b36d57..5f7142df 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -281,14 +281,13 @@ sw_exec <- function( ) if (!is.null(swrcp)) { - rSOILWAT2::swSoils_SWRCp(inputData) <- swrcp swSite_SWRCflags(inputData)["pdf_name"] <- "NoPDF" swSite_PDFNoPDF(inputData) <- pdf_name + swSoils_SWRCp(inputData) <- swrcp } else { - tmp <- rSOILWAT2::swSoils_SWRCp(inputData) - rSOILWAT2::swSoils_SWRCp(inputData) <- array( + swSoils_SWRCp(inputData) <- array( data = NA_real_, - dim = dim(tmp) + dim = dim(swSoils_SWRCp(inputData)) ) } } From 580449693664206d12817d4982546fe055f14eca Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 08:15:23 -0400 Subject: [PATCH 104/238] Update and improve documentation objects --- NAMESPACE | 1 - R/A_swGenericMethods.R | 75 +++++++++++++++---------- R/F_swSite.R | 7 +-- R/F_swSoils.R | 12 ++-- R/K_swContainer.R | 10 ++-- R/sw_OutputDerived_Functions.R | 4 +- R/sw_Pedotransfer_Functions.R | 14 ++++- man/SWRCs.Rd | 2 + man/get_soilmoisture.Rd | 4 +- man/list_matched_swrcs_pdfs.Rd | 14 ++--- man/pdf_Rosetta_for_vanGenuchten1980.Rd | 6 +- man/pdf_neuroFX2021_for_FXW.Rd | 2 + man/swInputData-class.Rd | 18 ------ man/swSite-class.Rd | 6 -- man/swSite_SWRCflags-set.Rd | 18 ------ man/swSite_SWRCflags.Rd | 47 +++++++++++++--- man/swSoils-class.Rd | 12 ---- man/swSoils_Layers-set.Rd | 20 ------- man/swSoils_Layers.Rd | 44 ++++++++++++--- man/swSoils_SWRCp-set.Rd | 20 ------- man/swSoils_SWRCp.Rd | 42 +++++++++++--- man/sw_upgrade.Rd | 9 ++- man/swrc_conversion.Rd | 12 ++-- 23 files changed, 210 insertions(+), 189 deletions(-) delete mode 100644 man/swSite_SWRCflags-set.Rd delete mode 100644 man/swSoils_Layers-set.Rd delete mode 100644 man/swSoils_SWRCp-set.Rd diff --git a/NAMESPACE b/NAMESPACE index d01f2716..07eec264 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -136,7 +136,6 @@ export(sw_inputData) export(sw_inputDataFromFiles) export(sw_out_flags) export(sw_outputData) -export(sw_upgrade) export(sw_verbosity) export(swrc_conversion) export(swrc_names) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 91130962..164bad4b 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -192,8 +192,10 @@ format_timestamp <- function(object) { #' Missing slots and elements are added and #' take the new default values from `SOILWAT2`. #' -#' @param x An object of a `rSOILWAT2` class. -#' @return The upgraded `x`, if needed, to match the current version +#' @param object An object of a `rSOILWAT2` class. +#' @param verbose A logical value. +#' +#' @return The upgraded `object`, if needed, to match the current version #' with missing slots and elements filled with default values. #' #' @section Details: @@ -218,7 +220,7 @@ format_timestamp <- function(object) { #' x <- sw_upgrade(rSOILWAT2::sw_exampleData, verbose = TRUE) #' #' @md -#' @export +#' @exportMethod sw_upgrade setGeneric( "sw_upgrade", function(object, verbose = FALSE) standardGeneric("sw_upgrade") @@ -1566,10 +1568,14 @@ setGeneric( function(object) standardGeneric("get_swSite") ) -#' \code{swSite_SWRCflags} -#' @param object An object of class \code{\linkS4class{swSite}} or -#' \code{\linkS4class{swInputData}}. -#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +#' Names of `SWRC` and `PDF` +#' +#' @param object An object of class [swSite-class] or [swInputData-class]. +#' +#' @return A character vector with two elements `"swrc_name"` and `"pdf_name"`. +#' +#' @md +#' @exportMethod swSite_SWRCflags setGeneric( "swSite_SWRCflags", function(object) standardGeneric("swSite_SWRCflags") @@ -1725,10 +1731,12 @@ setGeneric( function(object, value) standardGeneric("set_swSite<-") ) -#' \code{swSite_SWRCflags<-} -#' @param object An object of class \code{\linkS4class{swSite}} or -#' \code{\linkS4class{swInputData}}. -#' @seealso \code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} +#' @rdname swSite_SWRCflags +#' +#' @param value A character vector with two elements for +#' `"swrc_name"` and `"pdf_name"`. +#' +#' @exportMethod swSite_SWRCflags<- setGeneric( "swSite_SWRCflags<-", function(object, value) standardGeneric("swSite_SWRCflags<-") @@ -1865,19 +1873,25 @@ setGeneric( function(object) standardGeneric("get_swSoils") ) -#' \code{swSoils_Layers} -#' @param object An object of class \code{\linkS4class{swSoils}} or -#' \code{\linkS4class{swInputData}}. -#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +#' Interact with the soil layer data frame +#' +#' @param object An object of class [`swSoils`] or [swInputData-class]. +#' +#' @md +#' @exportMethod swSoils_Layers setGeneric( "swSoils_Layers", function(object) standardGeneric("swSoils_Layers") ) -#' \code{swSoils_SWRCp} -#' @param object An object of class \code{\linkS4class{swSoils}} or -#' \code{\linkS4class{swInputData}}. -#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +#' `SWRC` parameters +#' +#' @param object An object of class [`swSoils`] or [swInputData-class]. +#' +#' @return A data matrix. +#' +#' @md +#' @exportMethod swSoils_SWRCp setGeneric( "swSoils_SWRCp", function(object) standardGeneric("swSoils_SWRCp") @@ -1903,25 +1917,28 @@ setGeneric( function(object, value) standardGeneric("set_swSoils<-") ) -#' \code{swSoils_Layers<-} -#' @param object An object of class \code{\linkS4class{swSoils}} or -#' \code{\linkS4class{swInputData}}. -#' @param value A value to assign to a specific slot of the \code{object}. -#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +#' @rdname swSoils_Layers +#' +#' @param value An object that can be converted to a data matrix and represents +#' required soil layer information. +#' +#' @exportMethod swSoils_Layers<- setGeneric( "swSoils_Layers<-", function(object, value) standardGeneric("swSoils_Layers<-") ) -#' \code{swSoils_SWRCp<-} -#' @param object An object of class \code{\linkS4class{swSoils}} or -#' \code{\linkS4class{swInputData}}. -#' @param value A value to assign to a specific slot of the \code{object}. -#' @seealso \code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +#' @rdname swSoils_SWRCp +#' +#' @param value An object that can be converted to a data matrix and represents +#' required `SWRC` parameters. +#' +#' @exportMethod swSoils_SWRCp<- setGeneric( "swSoils_SWRCp<-", function(object, value) standardGeneric("swSoils_SWRCp<-") ) + ######################## #########ESTAB########## diff --git a/R/F_swSite.R b/R/F_swSite.R index e1a97a96..2d6818c1 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -233,7 +233,6 @@ swSite <- function(...) { #' @rdname sw_upgrade -#' @export setMethod( "sw_upgrade", signature = "swSite", @@ -255,8 +254,7 @@ setMethod( #' @export setMethod("get_swSite", "swSite", function(object) object) -#' @rdname swSite-class -#' @export +#' @rdname swSite_SWRCflags setMethod( "swSite_SWRCflags", signature = "swSite", @@ -388,8 +386,7 @@ setReplaceMethod( } ) -#' @rdname swSite-class -#' @export +#' @rdname swSite_SWRCflags setReplaceMethod( "swSite_SWRCflags", signature = "swSite", diff --git a/R/F_swSoils.R b/R/F_swSoils.R index 49191d1d..def1e8f2 100644 --- a/R/F_swSoils.R +++ b/R/F_swSoils.R @@ -241,12 +241,10 @@ setMethod( #' @export setMethod("get_swSoils", "swSoils", function(object) object) -#' @rdname swSoils-class -#' @export +#' @rdname swSoils_Layers setMethod("swSoils_Layers", "swSoils", function(object) object@Layers) -#' @rdname swSoils-class -#' @export +#' @rdname swSoils_SWRCp setMethod("swSoils_SWRCp", "swSoils", function(object) object@SWRCp) #' @rdname swSoils-class @@ -280,8 +278,7 @@ setReplaceMethod( } ) -#' @rdname swSoils-class -#' @export +#' @rdname swSoils_Layers setReplaceMethod( "swSoils_Layers", signature = "swSoils", @@ -297,8 +294,7 @@ setReplaceMethod( ) -#' @rdname swSoils-class -#' @export +#' @rdname swSoils_SWRCp setReplaceMethod( "swSoils_SWRCp", signature = "swSoils", diff --git a/R/K_swContainer.R b/R/K_swContainer.R index b609d82d..3e3e2d45 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1591,8 +1591,7 @@ setMethod("get_swEstab", "swInputData", function(object) object@estab) #' @export setMethod("get_swSite", "swInputData", function(object) slot(object, "site")) -#' @rdname swInputData-class -#' @export +#' @rdname swSite_SWRCflags setMethod( "swSite_SWRCflags", signature = "swInputData", @@ -1879,16 +1878,14 @@ setReplaceMethod( #' @export setMethod("get_swSoils", "swInputData", function(object) object@soils) -#' @rdname swInputData-class -#' @export +#' @rdname swSoils_Layers setMethod( "swSoils_Layers", signature = "swInputData", function(object) swSoils_Layers(object@soils) ) -#' @rdname swInputData-class -#' @export +#' @rdname swSoils_SWRCp setMethod( "swSoils_SWRCp", signature = "swInputData", @@ -1975,6 +1972,7 @@ setReplaceMethod( ) + # Methods for slot \code{swc} #' @rdname swInputData-class #' @export diff --git a/R/sw_OutputDerived_Functions.R b/R/sw_OutputDerived_Functions.R index 834ccb47..7d63f4cb 100644 --- a/R/sw_OutputDerived_Functions.R +++ b/R/sw_OutputDerived_Functions.R @@ -394,7 +394,7 @@ get_soiltemp <- function( #' #' @inheritParams get_derived_output #' @param type A character string selecting type of soil moisture. -#' @param swInput An object of class [`swInputData`]. +#' @param swInput An object of class [swInputData-class]. #' @param widths_cm A numeric vector of soil layer widths (units `[cm]`). #' @param fcoarse A numeric vector of coarse fragments per soil layer #' (units `[volume fraction]`). @@ -404,7 +404,7 @@ get_soiltemp <- function( #' are only used if requested type of soil moisture is #' not available and has to be calculated from a different type. #' `widths` and `fcoarse` may be provided directly or via `swInput` -#' from which the information is extracted (see examples.) +#' from which the information is extracted (see examples). #' #' @return A data frame with requested soil moisture; #' rows represent time steps and columns represent soil layers. diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 1f54572c..8088ec4c 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -264,6 +264,7 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' soil parameters, i.e., `swrc_name` and `pdf_name`. #' @param verbose A logical value. If `TRUE`, then display #' `SOILWAT2` internal warnings and other messages. +#' @param ... Additional function arguments passed on or ignored. #' #' @section Details: #' [swrc_names()] lists implemented `SWRCs`; @@ -323,6 +324,7 @@ pdf_names <- function() { #' Standardize a `SWRC` name +#' @md #' @noRd std_swrc <- function(swrc_name) { if (missing(swrc_name) || is.null(swrc_name) || all(is.na(swrc_name))) { @@ -333,6 +335,7 @@ std_swrc <- function(swrc_name) { } #' Standardize a `PDF` name +#' @md #' @noRd std_pdf <- function(pdf_name) { if (missing(pdf_name) || is.null(pdf_name) || all(is.na(pdf_name))) { @@ -344,12 +347,14 @@ std_pdf <- function(pdf_name) { #' Translate a `SWRC` name to its internal integer code +#' @md #' @noRd encode_name2swrc <- function(swrc_name) { as.integer(unname(swrc_names()[std_swrc(swrc_name)])) } #' Translate a `PDF` name to its internal integer code +#' @md #' @noRd encode_name2pdf <- function(pdf_name) { as.integer(unname(pdf_names()[std_pdf(pdf_name)])) @@ -366,7 +371,7 @@ encode_name2pdf <- function(pdf_name) { #' @section Details: #' The argument `swrc_name` is optional. If missing, then all implemented #' `SWRCs` are listed. -#' \var{"NoPDF"} is not included in the list. +#' `"NoPDF"` is not included in the list. #' #' @examples #' # Data frame of SWRC-PDF combinations @@ -380,6 +385,7 @@ encode_name2pdf <- function(pdf_name) { #' df_swrc_pdfs[has_pdf, , drop = FALSE] #' list_swrcs_pdfs[has_pdf] #' +#' @md #' @export list_matched_swrcs_pdfs <- function(swrc_name) { swrc_name <- if ( @@ -729,10 +735,10 @@ rSW2_SWRC_PDF_estimate_parameters <- function( # nolint: object_length_linter. #' is an internal helper function. #' #' @section Notes: -#' This function calls `soilDB::ROSETTA()` and +#' This function calls [soilDB::ROSETTA()] and #' a live internet connection is required to access `Rosetta`. #' -#' @seealso `soilDB::ROSETTA()` +#' @seealso [soilDB::ROSETTA()] #' #' @md pdf_Rosetta_for_vanGenuchten1980 <- function( # nolint: object_length_linter. @@ -1518,6 +1524,7 @@ swrc_conversion_1d <- function(direction, x, soils, swrc, verbose) { #' (i.e., relative to the whole soil; units `[cm/cm]`). #' #' @export +#' @md swrc_swp_to_vwc <- function( swp_MPa, fcoarse, @@ -1554,6 +1561,7 @@ swrc_swp_to_vwc <- function( #' of the soil matric component. #' #' @export +#' @md swrc_vwc_to_swp <- function( vwcBulk, fcoarse, diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index 66d97729..d72890c9 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -48,6 +48,8 @@ soil parameters, i.e., \code{swrc_name} and \code{pdf_name}.} \item{verbose}{A logical value. If \code{TRUE}, then display \code{SOILWAT2} internal warnings and other messages.} + +\item{...}{Additional function arguments passed on or ignored.} } \description{ \code{SWRCs} convert between soil water content and soil water potential diff --git a/man/get_soilmoisture.Rd b/man/get_soilmoisture.Rd index 041378c5..0908a117 100644 --- a/man/get_soilmoisture.Rd +++ b/man/get_soilmoisture.Rd @@ -21,7 +21,7 @@ get_soilmoisture( \item{type}{A character string selecting type of soil moisture.} -\item{swInput}{An object of class \code{\link{swInputData}}.} +\item{swInput}{An object of class \linkS4class{swInputData}.} \item{widths_cm}{A numeric vector of soil layer widths (units \verb{[cm]}).} @@ -44,7 +44,7 @@ Information on soil layer \code{widths} and coarse fragments \code{fcoarse} are only used if requested type of soil moisture is not available and has to be calculated from a different type. \code{widths} and \code{fcoarse} may be provided directly or via \code{swInput} -from which the information is extracted (see examples.) +from which the information is extracted (see examples). } \examples{ diff --git a/man/list_matched_swrcs_pdfs.Rd b/man/list_matched_swrcs_pdfs.Rd index a5cd8760..77d57ed1 100644 --- a/man/list_matched_swrcs_pdfs.Rd +++ b/man/list_matched_swrcs_pdfs.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/sw_Pedotransfer_Functions.R \name{list_matched_swrcs_pdfs} \alias{list_matched_swrcs_pdfs} -\title{Matching pairs of implemented `SWRCs` and `PDFs`} +\title{Matching pairs of implemented \code{SWRCs} and \code{PDFs}} \usage{ list_matched_swrcs_pdfs(swrc_name) } @@ -12,17 +12,17 @@ The selected \code{SWRC} name (one of \code{\link[=swrc_names]{swrc_names()}}, with default \code{"Campbell1974"}).} } \value{ -A `data.frame` with two columns `SWRC` and `PDF` where each - row contains a matching pair of `SWRC` and `PDF` that are implemented. +A \code{data.frame} with two columns \code{SWRC} and \code{PDF} where each +row contains a matching pair of \code{SWRC} and \code{PDF} that are implemented. } \description{ -Matching pairs of implemented `SWRCs` and `PDFs` +Matching pairs of implemented \code{SWRCs} and \code{PDFs} } \section{Details}{ - The argument `swrc_name` is optional. If missing, then all implemented - `SWRCs` are listed. - \var{"NoPDF"} is not included in the list. +The argument \code{swrc_name} is optional. If missing, then all implemented +\code{SWRCs} are listed. +\code{"NoPDF"} is not included in the list. } \examples{ diff --git a/man/pdf_Rosetta_for_vanGenuchten1980.Rd b/man/pdf_Rosetta_for_vanGenuchten1980.Rd index 02eacda3..ace7c949 100644 --- a/man/pdf_Rosetta_for_vanGenuchten1980.Rd +++ b/man/pdf_Rosetta_for_vanGenuchten1980.Rd @@ -30,6 +30,8 @@ Density of the whole soil \item{verbose}{A logical value. If \code{TRUE}, then display \code{SOILWAT2} internal warnings and other messages.} + +\item{...}{Additional function arguments passed on or ignored.} } \value{ \code{swrcp}, i.e,. @@ -56,7 +58,7 @@ is an internal helper function. \section{Notes}{ -This function calls \code{soilDB::ROSETTA()} and +This function calls \code{\link[soilDB:ROSETTA]{soilDB::ROSETTA()}} and a live internet connection is required to access \code{Rosetta}. } @@ -76,5 +78,5 @@ hydraulic parameter distributions and summary statistics (Rosetta3). Journal of Hydrology, 547:39-53, \doi{10.1016/j.jhydrol.2017.01.004} } \seealso{ -\code{soilDB::ROSETTA()} +\code{\link[soilDB:ROSETTA]{soilDB::ROSETTA()}} } diff --git a/man/pdf_neuroFX2021_for_FXW.Rd b/man/pdf_neuroFX2021_for_FXW.Rd index d3d172b9..12ed48ac 100644 --- a/man/pdf_neuroFX2021_for_FXW.Rd +++ b/man/pdf_neuroFX2021_for_FXW.Rd @@ -29,6 +29,8 @@ Density of the whole soil full path of the \code{neuroFX2021} R object provided by Rudiyanto et al. 2021; The path to the appropriate file can be set per R session via option \code{"RSW2_FILENEUROFX2021"}, see additional details.} + +\item{...}{Additional function arguments passed on or ignored.} } \value{ \code{swrcp}, i.e,. diff --git a/man/swInputData-class.Rd b/man/swInputData-class.Rd index 500d0a12..c1069cac 100644 --- a/man/swInputData-class.Rd +++ b/man/swInputData-class.Rd @@ -136,7 +136,6 @@ \alias{swProd_MonProd_forb<-,swInputData-method} \alias{get_swEstab,swInputData-method} \alias{get_swSite,swInputData-method} -\alias{swSite_SWRCflags,swInputData-method} \alias{swSite_SWClimits,swInputData-method} \alias{swSite_ModelFlags,swInputData-method} \alias{swSite_ModelCoefficients,swInputData-method} @@ -149,7 +148,6 @@ \alias{swSite_SoilTemperatureConsts,swInputData-method} \alias{swSite_TranspirationRegions,swInputData-method} \alias{set_swSite<-,swInputData-method} -\alias{swSite_SWRCflags<-,swInputData-method} \alias{swSite_SWClimits<-,swInputData-method} \alias{swSite_ModelFlags<-,swInputData-method} \alias{swSite_ModelCoefficients<-,swInputData-method} @@ -162,12 +160,8 @@ \alias{swSite_SoilTemperatureConsts<-,swInputData-method} \alias{swSite_TranspirationRegions<-,swInputData-method} \alias{get_swSoils,swInputData-method} -\alias{swSoils_Layers,swInputData-method} -\alias{swSoils_SWRCp,swInputData-method} \alias{set_swSoils<-,swInputData,swSoils-method} \alias{set_swSoils<-,swInputData,list-method} -\alias{swSoils_Layers<-,swInputData-method} -\alias{swSoils_SWRCp<-,swInputData-method} \alias{get_swSWC,swInputData-method} \alias{swSWC_use,swInputData-method} \alias{swSWC_prefix,swInputData-method} @@ -477,8 +471,6 @@ swInputData(...) \S4method{get_swSite}{swInputData}(object) -\S4method{swSite_SWRCflags}{swInputData}(object) - \S4method{swSite_SWClimits}{swInputData}(object) \S4method{swSite_ModelFlags}{swInputData}(object) @@ -503,8 +495,6 @@ swInputData(...) \S4method{set_swSite}{swInputData}(object) <- value -\S4method{swSite_SWRCflags}{swInputData}(object) <- value - \S4method{swSite_SWClimits}{swInputData}(object) <- value \S4method{swSite_ModelFlags}{swInputData}(object) <- value @@ -529,18 +519,10 @@ swInputData(...) \S4method{get_swSoils}{swInputData}(object) -\S4method{swSoils_Layers}{swInputData}(object) - -\S4method{swSoils_SWRCp}{swInputData}(object) - \S4method{set_swSoils}{swInputData,swSoils}(object) <- value \S4method{set_swSoils}{swInputData,list}(object) <- value -\S4method{swSoils_Layers}{swInputData}(object) <- value - -\S4method{swSoils_SWRCp}{swInputData}(object) <- value - \S4method{get_swSWC}{swInputData}(object) \S4method{swSWC_use}{swInputData}(object) diff --git a/man/swSite-class.Rd b/man/swSite-class.Rd index ec552850..7f2a45e8 100644 --- a/man/swSite-class.Rd +++ b/man/swSite-class.Rd @@ -5,7 +5,6 @@ \alias{swSite-class} \alias{swSite} \alias{get_swSite,swSite-method} -\alias{swSite_SWRCflags,swSite-method} \alias{swSite_SWClimits,swSite-method} \alias{swSite_ModelFlags,swSite-method} \alias{swSite_ModelCoefficients,swSite-method} @@ -18,7 +17,6 @@ \alias{swSite_SoilTemperatureConsts,swSite-method} \alias{swSite_TranspirationRegions,swSite-method} \alias{set_swSite<-,swSite-method} -\alias{swSite_SWRCflags<-,swSite-method} \alias{swSite_SWClimits<-,swSite-method} \alias{swSite_ModelFlags<-,swSite-method} \alias{swSite_ModelCoefficients<-,swSite-method} @@ -37,8 +35,6 @@ swSite(...) \S4method{get_swSite}{swSite}(object) -\S4method{swSite_SWRCflags}{swSite}(object) - \S4method{swSite_SWClimits}{swSite}(object) \S4method{swSite_ModelFlags}{swSite}(object) @@ -63,8 +59,6 @@ swSite(...) \S4method{set_swSite}{swSite}(object) <- value -\S4method{swSite_SWRCflags}{swSite}(object) <- value - \S4method{swSite_SWClimits}{swSite}(object) <- value \S4method{swSite_ModelFlags}{swSite}(object) <- value diff --git a/man/swSite_SWRCflags-set.Rd b/man/swSite_SWRCflags-set.Rd deleted file mode 100644 index 455d8d94..00000000 --- a/man/swSite_SWRCflags-set.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R -\name{swSite_SWRCflags<-} -\alias{swSite_SWRCflags<-} -\title{\code{swSite_SWRCflags<-}} -\usage{ -swSite_SWRCflags(object) <- value -} -\arguments{ -\item{object}{An object of class \code{\linkS4class{swSite}} or -\code{\linkS4class{swInputData}}.} -} -\description{ -\code{swSite_SWRCflags<-} -} -\seealso{ -\code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} -} diff --git a/man/swSite_SWRCflags.Rd b/man/swSite_SWRCflags.Rd index 54eddad3..eedabaab 100644 --- a/man/swSite_SWRCflags.Rd +++ b/man/swSite_SWRCflags.Rd @@ -1,18 +1,51 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, +% R/K_swContainer.R \name{swSite_SWRCflags} \alias{swSite_SWRCflags} -\title{\code{swSite_SWRCflags}} +\alias{swSite_SWRCflags<-} +\alias{swSite_SWRCflags,swSite-method} +\alias{swSite_SWRCflags<-,swSite-method} +\alias{swSite_SWRCflags,swInputData-method} +\alias{swSite_SWRCflags<-,swInputData-method} +\title{Names of \code{SWRC} and \code{PDF}} \usage{ swSite_SWRCflags(object) + +swSite_SWRCflags(object) <- value + +\S4method{swSite_SWRCflags}{swSite}(object) + +\S4method{swSite_SWRCflags}{swSite}(object) <- value + +\S4method{swSite_SWRCflags}{swInputData}(object) + +\S4method{swSite_SWRCflags}{swInputData}(object) <- value } \arguments{ -\item{object}{An object of class \code{\linkS4class{swSite}} or -\code{\linkS4class{swInputData}}.} +\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} + +\item{value}{A character vector with two elements for +`"swrc_name"` and `"pdf_name"`.} +} +\value{ +A character vector with two elements \code{"swrc_name"} and \code{"pdf_name"}. } \description{ -\code{swSite_SWRCflags} +Names of \code{SWRC} and \code{PDF} +} +\section{Details}{ + +The replacement method \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}} for class \linkS4class{swInputData} +resets \code{SWRCp} to \code{NA} if \code{"swrc_name"} or \code{"pdf_name"} are updated. +This is to avoid inconsistency between \code{SWRCp} and \code{swrc_flags}. + + +The correct sequence for setting values is +\enumerate{ +\item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, +\item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} } -\seealso{ -\code{\linkS4class{swSite}} and \code{\linkS4class{swInputData}} } + diff --git a/man/swSoils-class.Rd b/man/swSoils-class.Rd index 6ed257ec..e0f101a2 100644 --- a/man/swSoils-class.Rd +++ b/man/swSoils-class.Rd @@ -5,12 +5,8 @@ \alias{swSoils-class} \alias{swSoils} \alias{get_swSoils,swSoils-method} -\alias{swSoils_Layers,swSoils-method} -\alias{swSoils_SWRCp,swSoils-method} \alias{set_swSoils<-,swSoils,swSoils-method} \alias{set_swSoils<-,swSoils,list-method} -\alias{swSoils_Layers<-,swSoils-method} -\alias{swSoils_SWRCp<-,swSoils-method} \alias{swReadLines,swSoils,character-method} \title{Class \code{"swSoils"}} \usage{ @@ -18,18 +14,10 @@ swSoils(...) \S4method{get_swSoils}{swSoils}(object) -\S4method{swSoils_Layers}{swSoils}(object) - -\S4method{swSoils_SWRCp}{swSoils}(object) - \S4method{set_swSoils}{swSoils,swSoils}(object) <- value \S4method{set_swSoils}{swSoils,list}(object) <- value -\S4method{swSoils_Layers}{swSoils}(object) <- value - -\S4method{swSoils_SWRCp}{swSoils}(object) <- value - \S4method{swReadLines}{swSoils,character}(object, file) } \arguments{ diff --git a/man/swSoils_Layers-set.Rd b/man/swSoils_Layers-set.Rd deleted file mode 100644 index ba3a5233..00000000 --- a/man/swSoils_Layers-set.Rd +++ /dev/null @@ -1,20 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R -\name{swSoils_Layers<-} -\alias{swSoils_Layers<-} -\title{\code{swSoils_Layers<-}} -\usage{ -swSoils_Layers(object) <- value -} -\arguments{ -\item{object}{An object of class \code{\linkS4class{swSoils}} or -\code{\linkS4class{swInputData}}.} - -\item{value}{A value to assign to a specific slot of the \code{object}.} -} -\description{ -\code{swSoils_Layers<-} -} -\seealso{ -\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -} diff --git a/man/swSoils_Layers.Rd b/man/swSoils_Layers.Rd index 29986a14..40fb8c15 100644 --- a/man/swSoils_Layers.Rd +++ b/man/swSoils_Layers.Rd @@ -1,18 +1,48 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSoils.R, +% R/K_swContainer.R \name{swSoils_Layers} \alias{swSoils_Layers} -\title{\code{swSoils_Layers}} +\alias{swSoils_Layers<-} +\alias{swSoils_Layers,swSoils-method} +\alias{swSoils_Layers<-,swSoils-method} +\alias{swSoils_Layers,swInputData-method} +\alias{swSoils_Layers<-,swInputData-method} +\title{Interact with the soil layer data frame} \usage{ swSoils_Layers(object) + +swSoils_Layers(object) <- value + +\S4method{swSoils_Layers}{swSoils}(object) + +\S4method{swSoils_Layers}{swSoils}(object) <- value + +\S4method{swSoils_Layers}{swInputData}(object) + +\S4method{swSoils_Layers}{swInputData}(object) <- value } \arguments{ -\item{object}{An object of class \code{\linkS4class{swSoils}} or -\code{\linkS4class{swInputData}}.} +\item{object}{An object of class \code{\link{swSoils}} or \linkS4class{swInputData}.} + +\item{value}{An object that can be converted to a data matrix and represents +required soil layer information.} } \description{ -\code{swSoils_Layers} +Interact with the soil layer data frame } -\seealso{ -\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} +\section{Details}{ + +The replacement method \verb{swSoils_Layers<-} for class \linkS4class{swInputData} +resizes \code{SWRCp} to match number of new soil layers +(and reset \code{SWRCp} values to \code{NA}) if \code{"pdf_name"} is not \code{"NoPDF"} (fixed). + + +The correct sequence for setting values is +\enumerate{ +\item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, +\item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} } +} + diff --git a/man/swSoils_SWRCp-set.Rd b/man/swSoils_SWRCp-set.Rd deleted file mode 100644 index 2616b032..00000000 --- a/man/swSoils_SWRCp-set.Rd +++ /dev/null @@ -1,20 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R -\name{swSoils_SWRCp<-} -\alias{swSoils_SWRCp<-} -\title{\code{swSoils_SWRCp<-}} -\usage{ -swSoils_SWRCp(object) <- value -} -\arguments{ -\item{object}{An object of class \code{\linkS4class{swSoils}} or -\code{\linkS4class{swInputData}}.} - -\item{value}{A value to assign to a specific slot of the \code{object}.} -} -\description{ -\code{swSoils_SWRCp<-} -} -\seealso{ -\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} -} diff --git a/man/swSoils_SWRCp.Rd b/man/swSoils_SWRCp.Rd index 4f64468a..c608af68 100644 --- a/man/swSoils_SWRCp.Rd +++ b/man/swSoils_SWRCp.Rd @@ -1,18 +1,46 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSoils.R, +% R/K_swContainer.R \name{swSoils_SWRCp} \alias{swSoils_SWRCp} -\title{\code{swSoils_SWRCp}} +\alias{swSoils_SWRCp<-} +\alias{swSoils_SWRCp,swSoils-method} +\alias{swSoils_SWRCp<-,swSoils-method} +\alias{swSoils_SWRCp,swInputData-method} +\alias{swSoils_SWRCp<-,swInputData-method} +\title{\code{SWRC} parameters} \usage{ swSoils_SWRCp(object) + +swSoils_SWRCp(object) <- value + +\S4method{swSoils_SWRCp}{swSoils}(object) + +\S4method{swSoils_SWRCp}{swSoils}(object) <- value + +\S4method{swSoils_SWRCp}{swInputData}(object) + +\S4method{swSoils_SWRCp}{swInputData}(object) <- value } \arguments{ -\item{object}{An object of class \code{\linkS4class{swSoils}} or -\code{\linkS4class{swInputData}}.} +\item{object}{An object of class \code{\link{swSoils}} or \linkS4class{swInputData}.} + +\item{value}{An object that can be converted to a data matrix and represents +required `SWRC` parameters.} +} +\value{ +A data matrix. } \description{ -\code{swSoils_SWRCp} +\code{SWRC} parameters +} +\section{Details}{ + +The correct sequence for setting values is +\enumerate{ +\item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, +\item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} } -\seealso{ -\code{\linkS4class{swSoils}} and \code{\linkS4class{swInputData}} } + diff --git a/man/sw_upgrade.Rd b/man/sw_upgrade.Rd index e0953fb8..e7ff24cf 100644 --- a/man/sw_upgrade.Rd +++ b/man/sw_upgrade.Rd @@ -26,10 +26,12 @@ sw_upgrade(object, verbose = FALSE) \S4method{sw_upgrade}{swInputData}(object, verbose = FALSE) } \arguments{ -\item{x}{An object of a \code{rSOILWAT2} class.} +\item{object}{An object of a \code{rSOILWAT2} class.} + +\item{verbose}{A logical value.} } \value{ -The upgraded \code{x}, if needed, to match the current version +The upgraded \code{object}, if needed, to match the current version with missing slots and elements filled with default values. } \description{ @@ -42,7 +44,8 @@ List of changes: \itemize{ \item Changes with \code{v6.0.0}: \itemize{ -\item class \code{\linkS4class{swSite}}: new slot \code{"swrc_flags"} +\item class \code{\linkS4class{swSite}}: +new slots \code{"swrc_flags"} and \code{"pdf_for_NoPDF"} \item class \code{\linkS4class{swSoils}}: new slot \code{"SWRCp"} \item class \code{\linkS4class{swFiles}}: \code{SWRC} parameter input file added as file 6 for a new total of 23 diff --git a/man/swrc_conversion.Rd b/man/swrc_conversion.Rd index 7e24f0ec..e62a0b87 100644 --- a/man/swrc_conversion.Rd +++ b/man/swrc_conversion.Rd @@ -94,13 +94,13 @@ first element of \code{x} and soils, the second elements, and so on.} \code{SOILWAT2} internal warnings and other messages.} \item{swp_MPa}{A numeric object. The soil water potential values -(units `[MPa]`) of the soil matric component to be converted to +(units \verb{[MPa]}) of the soil matric component to be converted to bulk volumetric water content -(i.e., relative to the whole soil; units `[cm/cm]`).} +(i.e., relative to the whole soil; units \verb{[cm/cm]}).} \item{vwcBulk}{A numeric object. The volumetric water content values -(relative to the whole soil; units `[cm/cm]`) -to be converted to soil water potential (units `[MPa]`) +(relative to the whole soil; units \verb{[cm/cm]}) +to be converted to soil water potential (units \verb{[MPa]}) of the soil matric component.} } \value{ @@ -127,10 +127,10 @@ Conversion between bulk soil water content and soil water potential \section{Functions}{ \itemize{ \item \code{swrc_swp_to_vwc()}: Convenience wrapper -to convert from `SWP` to bulk `VWC` with selected `SWRC` +to convert from \code{SWP} to bulk \code{VWC} with selected \code{SWRC} \item \code{swrc_vwc_to_swp()}: Convenience wrapper -to convert from bulk `VWC` to matric `SWP` with selected `SWRC` +to convert from bulk \code{VWC} to matric \code{SWP} with selected \code{SWRC} }} \section{Details}{ From 79795d1ea0fac85dc96a0144a36699ba283ee7a7 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sat, 6 Aug 2022 13:53:34 -0400 Subject: [PATCH 105/238] Expect same output whether SWRCp estimated before or during simulations - SWRC parameters may be estimated before or during a simulation run - if SWRCp are estimated before a simulation run, then, currently, `pdf_name` is set to "NoPDF" to prevent estimation of SWRCp during the simulation run - expect identical simulation output whether SWRCp are estimated before or during a simulation run -- as long as the SWRCp are identical -> these tests are currently failing for * "Campbell1974"/"Cosby1984AndOthers": SOILWAT2 behavior, in this case, depends on value of `pdf_name` for saturated soil water content as well as the estimation of SWRCp -> these tests are currently passing for all other SWRC/PDF pairs * "Campbell1974"/"Cosby1984" * "vanGenuchten1980"/"Rosetta3" * "FXW"/"neuroFX2021" --- tests/testthat/test_pedotransferfunctions.R | 50 ++++++++++++++++----- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 6c1b46ad..4b561b18 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -254,7 +254,7 @@ test_that("Simulate with all SWRC/PDF combinations", { rSOILWAT2::swSite_SWRCflags(sw_input) <- list_swrcs_pdfs[[isp]] # Run SOILWAT - x <- try( + x0 <- try( rSOILWAT2::sw_exec( inputData = sw_input, weatherList = sw_weather, @@ -265,7 +265,7 @@ test_that("Simulate with all SWRC/PDF combinations", { ) - if (inherits(x, "try-error")) { + if (inherits(x0, "try-error")) { succeed( paste( paste0(list_swrcs_pdfs[[isp]], collapse = "/"), @@ -274,29 +274,57 @@ test_that("Simulate with all SWRC/PDF combinations", { ) } else { - expect_s4_class(x, "swOutput") + # Check that we got correct output class + expect_s4_class(x0, "swOutput") - # Estimate SWRCp and set "NoPDF" - soils <- rSOILWAT2::swSoils_Layers(sw_input) - rSOILWAT2::swSoils_SWRCp(sw_input) <- rSOILWAT2::pdf_estimate( + #--- Estimate SWRCp and set "NoPDF" ---- + sw_input1 <- sw_input + soils <- rSOILWAT2::swSoils_Layers(sw_input1) + + rSOILWAT2::swSite_SWRCflags(sw_input1)["pdf_name"] <- "NoPDF" + + rSOILWAT2::swSoils_SWRCp(sw_input1) <- rSOILWAT2::pdf_estimate( sand = soils[, "sand_frac"], clay = soils[, "clay_frac"], fcoarse = soils[, "gravel_content"], + bdensity = soils[, "bulkDensity_g/cm^3"], swrc_name = list_swrcs_pdfs[[isp]][1], pdf_name = list_swrcs_pdfs[[isp]][2] ) - rSOILWAT2::swSite_SWRCflags(sw_input)["pdf_name"] <- "NoPDF" - # Run SOILWAT - x <- rSOILWAT2::sw_exec( - inputData = sw_input, + x1 <- rSOILWAT2::sw_exec( + inputData = sw_input1, weatherList = sw_weather, echo = FALSE, quiet = TRUE ) - expect_s4_class(x, "swOutput") + expect_s4_class(x1, "swOutput") + + + #--- Expect simulation output identical independent of + # when SWRCp are estimated (before/during `sw_exec()`) + vars <- grep( + pattern = "version|timestamp", + x = slotNames(x1), + value = TRUE, + invert = TRUE + ) + + for (sv in vars) { + expect_equal( + object = slot(x1, !!sv), + expected = slot(x0, !!sv), + tolerance = rSW2_glovars[["tol"]], + info = paste0( + it, ": ", + paste0(list_swrcs_pdfs[[isp]], collapse = "/"), + " - slot ", + shQuote(sv) + ) + ) + } } } } From f8177846170171254c176f67fb6183e7f8e00c92 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Sun, 7 Aug 2022 17:02:59 -0400 Subject: [PATCH 106/238] Updated SOILWAT2 "feature_swrc": New `has_swrcp` and eliminate "NoPDF" - Updated SOILWAT2 submodule to commit 5ad9684818ac95c8f08e8acd1bd768ff142b8228 - remove `swSite_PDFNoPDF()` and `swSite_PDFutilized()`: "NoPDF" is eliminated, `swSite` slot "pdf_for_NoPDF" is obsolete - new `swSite` slot "has_swrcp": information whether SWRC parameters are already estimated is stored in new slot and accessed by new `swSite_hasSWRp()` -> updated example/test input objects for deleted/new slots - SOILWAT2 refers only to PDFs implemented by SOILWAT2 => rSOILWAT2 must add information about PDFs implemented by rSOILWAT2 * new `pdfs_implemented_by_SW2()` and updated `pdf_names()`, `encode_name2pdf()` * new `check_SWRC_vs_PDF()` and `rSW2_check_SWRC_vs_PDF() and updated `list_matched_swrcs_pdfs() and `C_sw_check_SWRC_vs_PDF()` - `encode_name2swrc()` and `encode_name2pdf()` gain new argument "fail" -> passing tests introduced with yesterday's commit 79795d1ea0fac85dc96a0144a36699ba283ee7a7 (Expect same output whether SWRCp estimated before or during simulations) --- NAMESPACE | 6 +- R/A_swGenericMethods.R | 45 ++-- R/F_swSite.R | 37 +-- R/K_swContainer.R | 48 ++-- R/Rsw.R | 47 ++-- R/sw_Pedotransfer_Functions.R | 246 ++++++++++++------ data/sw_exampleData.rda | Bin 54490 -> 54509 bytes inst/extdata/example1/Input/siteparam.in | 37 +-- inst/extdata/example1/Input/swrc_params.in | 2 +- .../extdata/example1/Input/swrc_params_FXW.in | 2 +- man/SWRCs.Rd | 4 + man/check_SWRC_vs_PDF.Rd | 31 +++ man/check_pdf_availability.Rd | 10 +- man/list_matched_swrcs_pdfs.Rd | 9 +- man/pdf_estimate.Rd | 5 +- man/pdf_names.Rd | 2 +- man/pdfs_implemented_by_SW2.Rd | 18 ++ man/pdfs_implemented_by_rSW2.Rd | 11 + man/pdfs_implemented_in_rSW2.Rd | 11 - man/swSite_PDFNoPDF.Rd | 38 --- man/swSite_PDFutilized.Rd | 26 -- man/swSite_SWRCflags.Rd | 7 +- man/swSite_hasSWRCp.Rd | 39 +++ man/swSoils_Layers.Rd | 6 +- man/swSoils_SWRCp.Rd | 2 +- man/sw_upgrade.Rd | 2 +- src/SOILWAT2 | 2 +- src/SW_R_init.c | 4 +- src/SW_R_lib.c | 10 +- src/SW_R_lib.h | 2 +- src/rSW_Site.c | 17 +- tests/test_data/Ex1_input.rds | Bin 5898 -> 5892 bytes tests/test_data/Ex2_input.rds | Bin 13246 -> 13243 bytes tests/test_data/Ex3_input.rds | Bin 5897 -> 5892 bytes tests/test_data/Ex4_input.rds | Bin 5897 -> 5891 bytes tests/test_data/Ex5_input.rds | Bin 5903 -> 5898 bytes .../Ex1_input_v6.0.0.rds | Bin 5898 -> 5892 bytes tests/testthat/test_pedotransferfunctions.R | 9 +- vignettes/rSOILWAT2_demo.Rmd | 15 +- 39 files changed, 413 insertions(+), 337 deletions(-) create mode 100644 man/check_SWRC_vs_PDF.Rd create mode 100644 man/pdfs_implemented_by_SW2.Rd create mode 100644 man/pdfs_implemented_by_rSW2.Rd delete mode 100644 man/pdfs_implemented_in_rSW2.Rd delete mode 100644 man/swSite_PDFNoPDF.Rd delete mode 100644 man/swSite_PDFutilized.Rd create mode 100644 man/swSite_hasSWRCp.Rd diff --git a/NAMESPACE b/NAMESPACE index 07eec264..61197962 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -16,6 +16,7 @@ export(calc_RRs_Chambers2014) export(calc_RRs_Maestas2016) export(calc_SMTRs) export(calc_SiteClimate) +export(check_SWRC_vs_PDF) export(check_TranspirationRegions) export(check_pdf_availability) export(check_swrcp) @@ -247,7 +248,6 @@ exportMethods("swSite_EvapCoefficients<-") exportMethods("swSite_IntrinsicSiteParams<-") exportMethods("swSite_ModelCoefficients<-") exportMethods("swSite_ModelFlags<-") -exportMethods("swSite_PDFNoPDF<-") exportMethods("swSite_SWClimits<-") exportMethods("swSite_SWRCflags<-") exportMethods("swSite_SnowSimulationParams<-") @@ -255,6 +255,7 @@ exportMethods("swSite_SoilTemperatureConsts<-") exportMethods("swSite_SoilTemperatureFlag<-") exportMethods("swSite_TranspCoefficients<-") exportMethods("swSite_TranspirationRegions<-") +exportMethods("swSite_hasSWRCp<-") exportMethods("swSoils_Layers<-") exportMethods("swSoils_SWRCp<-") exportMethods("swWeather_DaysRunningAverage<-") @@ -348,8 +349,6 @@ exportMethods(swSite_EvapCoefficients) exportMethods(swSite_IntrinsicSiteParams) exportMethods(swSite_ModelCoefficients) exportMethods(swSite_ModelFlags) -exportMethods(swSite_PDFNoPDF) -exportMethods(swSite_PDFutilized) exportMethods(swSite_SWClimits) exportMethods(swSite_SWRCflags) exportMethods(swSite_SnowSimulationParams) @@ -357,6 +356,7 @@ exportMethods(swSite_SoilTemperatureConsts) exportMethods(swSite_SoilTemperatureFlag) exportMethods(swSite_TranspCoefficients) exportMethods(swSite_TranspirationRegions) +exportMethods(swSite_hasSWRCp) exportMethods(swSoils_Layers) exportMethods(swSoils_SWRCp) exportMethods(swWeather_DaysRunningAverage) diff --git a/R/A_swGenericMethods.R b/R/A_swGenericMethods.R index 164bad4b..fae88558 100644 --- a/R/A_swGenericMethods.R +++ b/R/A_swGenericMethods.R @@ -202,7 +202,7 @@ format_timestamp <- function(object) { #' List of changes: #' * Changes with `v6.0.0`: #' * class [`swSite-class`]: -#' new slots `"swrc_flags"` and `"pdf_for_NoPDF"` +#' new slots `"swrc_flags"` and `"has_swrcp"` #' * class [`swSoils-class`]: new slot `"SWRCp"` #' * class [`swFiles-class`]: #' `SWRC` parameter input file added as file 6 for a new total of 23 @@ -1581,37 +1581,26 @@ setGeneric( function(object) standardGeneric("swSite_SWRCflags") ) -#' The utilized `pdf` name stored for later use +#' Are `SWRC` parameters provided in `SWRCp`? #' -#' @param object An object of class [swSite-class] or [swInputData-class]. -#' -#' @return The pedotransfer function name that was stored -#' with [swSite_PDFNoPDF()] for later usage -#' in the situation when `pdf_name` is set to `"NoPDF"` but -#' the `pdf` was actually being for estimating the `SWRC` parameters. -#' -#' @md -#' @exportMethod swSite_PDFNoPDF -setGeneric( - "swSite_PDFNoPDF", - function(object) standardGeneric("swSite_PDFNoPDF") -) - -#' Identify the actually utilized `pdf` name +#' Set to `TRUE` once `SWRCp` are set. #' #' @param object An object of class [swSite-class] or [swInputData-class]. #' -#' @return The pedotransfer function name that was utilized for estimating -#' `SWRC` given that it was stored either via [swSite_SWRCflags()] or -#' [swSite_PDFNoPDF()]. +#' @return A logical value. +#' `TRUE` if `SWRC` parameters are provided in `SWRCp`; +#' `FALSE` if `SWRCp` should be estimated during a simulation run +#' via specified pedotransfer function +#' (see `"pdf_name"` of [swSite_SWRCflags()]). #' #' @md -#' @exportMethod swSite_PDFutilized +#' @exportMethod swSite_hasSWRCp setGeneric( - "swSite_PDFutilized", - function(object) standardGeneric("swSite_PDFutilized") + "swSite_hasSWRCp", + function(object) standardGeneric("swSite_hasSWRCp") ) + #' \code{swSite_SWClimits} #' @param object An object of class \code{\linkS4class{swSite}} or #' \code{\linkS4class{swInputData}}. @@ -1742,14 +1731,14 @@ setGeneric( function(object, value) standardGeneric("swSite_SWRCflags<-") ) -#' @rdname swSite_PDFNoPDF +#' @rdname swSite_hasSWRCp #' -#' @param value A character vector of a pedotransfer function name. +#' @param value A logical value. #' -#' @exportMethod swSite_PDFNoPDF<- +#' @exportMethod swSite_hasSWRCp<- setGeneric( - "swSite_PDFNoPDF<-", - function(object, value) standardGeneric("swSite_PDFNoPDF<-") + "swSite_hasSWRCp<-", + function(object, value) standardGeneric("swSite_hasSWRCp<-") ) #' \code{swSite_SWClimits<-} diff --git a/R/F_swSite.R b/R/F_swSite.R index 2d6818c1..d0d6e408 100644 --- a/R/F_swSite.R +++ b/R/F_swSite.R @@ -69,7 +69,7 @@ setClass( SoilTemperatureConstants = "numeric", TranspirationRegions = "matrix", swrc_flags = "character", - pdf_for_NoPDF = "character" + has_swrcp = "logical" ), prototype = list( SWClimits = c(swc_min = NA_real_, swc_init = NA_real_, swc_wet = NA_real_), @@ -112,7 +112,7 @@ setClass( dimnames = list(NULL, c("ndx", "layer")) ), swrc_flags = c(swrc_name = NA_character_, pdf_name = NA_character_), - pdf_for_NoPDF = NA_character_ + has_swrcp = NA ) ) @@ -177,8 +177,8 @@ setValidity( val <- if (isTRUE(val)) msg else c(val, msg) } - if (length(object@pdf_for_NoPDF) != 1L) { - msg <- "@pdf_for_NoPDF length != 1." + if (length(object@has_swrcp) != 1L) { + msg <- "@has_swrcp length != 1." val <- if (isTRUE(val)) msg else c(val, msg) } @@ -261,30 +261,13 @@ setMethod( function(object) slot(object, "swrc_flags") ) -#' @rdname swSite_PDFNoPDF +#' @rdname swSite_hasSWRCp setMethod( - "swSite_PDFNoPDF", + "swSite_hasSWRCp", signature = "swSite", - function(object) slot(object, "pdf_for_NoPDF") + function(object) slot(object, "has_swrcp") ) -#' @rdname swSite_PDFutilized -setMethod( - "swSite_PDFutilized", - signature = "swSite", - function(object) { - swrc_flags <- swSite_SWRCflags(object) - pdf_for_NoPDF <- swSite_PDFNoPDF(object) - - uses_NoPDF <- swrc_flags[["pdf_name"]] == "NoPDF" - - if (!uses_NoPDF || (uses_NoPDF && is.na(pdf_for_NoPDF))) { - swrc_flags[["pdf_name"]] - } else { - pdf_for_NoPDF - } - } -) #' @rdname swSite-class #' @export @@ -398,12 +381,12 @@ setReplaceMethod( ) -#' @rdname swSite_PDFNoPDF +#' @rdname swSite_hasSWRCp setReplaceMethod( - "swSite_PDFNoPDF", + "swSite_hasSWRCp", signature = "swSite", definition = function(object, value) { - object@pdf_for_NoPDF[] <- as.character(value) + object@has_swrcp <- isTRUE(as.logical(value)) validObject(object) object } diff --git a/R/K_swContainer.R b/R/K_swContainer.R index 3e3e2d45..816780f5 100644 --- a/R/K_swContainer.R +++ b/R/K_swContainer.R @@ -1598,18 +1598,11 @@ setMethod( function(object) swSite_SWRCflags(object@site) ) -#' @rdname swSite_PDFNoPDF +#' @rdname swSite_hasSWRCp setMethod( - "swSite_PDFNoPDF", + "swSite_hasSWRCp", signature = "swInputData", - function(object) swSite_PDFNoPDF(object@site) -) - -#' @rdname swSite_PDFutilized -setMethod( - "swSite_PDFutilized", - signature = "swInputData", - function(object) swSite_PDFutilized(object@site) + function(object) swSite_hasSWRCp(object@site) ) @@ -1717,14 +1710,15 @@ setReplaceMethod( #' #' @section Details: #' The replacement method [swSite_SWRCflags()] for class [swInputData-class] -#' resets `SWRCp` to `NA` if `"swrc_name"` or `"pdf_name"` are updated. -#' This is to avoid inconsistency between `SWRCp` and `swrc_flags`. +#' resets `has_swrcp` to `FALSE` if `"swrc_name"` or `"pdf_name"` are updated. +#' This is to avoid inconsistency between +#' `SWRCp`, `has_swrcp`, and `swrc_flags`. #' #' @section Details: #' The correct sequence for setting values is #' 1. [swSoils_Layers()], #' 2. [swSite_SWRCflags()], and -#' 3. [swSoils_SWRCp()] +#' 3. [swSoils_SWRCp()] and [swSite_hasSWRCp()] #' #' @md setReplaceMethod( @@ -1735,19 +1729,19 @@ setReplaceMethod( value <- as.character(value) if (!identical(prev, value)) { swSite_SWRCflags(object@site) <- value - # Reset SWRCp -- avoid inconsistency between SWRCp and swrc_flags - object@soils@SWRCp[] <- NA_real_ + # Reset has_swrcp -- avoid inconsistency between SWRCp and swrc_flags + swSite_hasSWRCp(object) <- FALSE } object } ) -#' @rdname swSite_PDFNoPDF +#' @rdname swSite_hasSWRCp setReplaceMethod( - "swSite_PDFNoPDF", + "swSite_hasSWRCp", signature = "swInputData", function(object, value) { - swSite_PDFNoPDF(object@site) <- value + swSite_hasSWRCp(object@site) <- value object } ) @@ -1919,13 +1913,16 @@ setReplaceMethod( #' @section Details: #' The replacement method `swSoils_Layers<-` for class [swInputData-class] #' resizes `SWRCp` to match number of new soil layers -#' (and reset `SWRCp` values to `NA`) if `"pdf_name"` is not `"NoPDF"` (fixed). +#' (and reset `SWRCp` values to `NA`) if `"has_swrcp"` is `FALSE`. +#' This is to avoid inconsistency between +#' soil properties and `SWRCp`. + #' #' @section Details: #' The correct sequence for setting values is #' 1. [swSoils_Layers()], #' 2. [swSite_SWRCflags()], and -#' 3. [swSoils_SWRCp()] +#' 3. [swSoils_SWRCp()] and [swSite_hasSWRCp()] #' #' @md setReplaceMethod( @@ -1933,14 +1930,9 @@ setReplaceMethod( signature = "swInputData", function(object, value) { - if (object@site@swrc_flags[["pdf_name"]] != "NoPDF") { - # Note: If `pdf_type` == 0, then SWRC parameters are not estimated - # but they are either read in from disk or passed as object. - # --> however, assigning new soil layers fails `swSoils` validity checks + if (!swSite_hasSWRCp(object@site)) { + # --> assigning new soil layers fails `swSoils` validity checks # if number of soil layers disagrees with the SWRC parameter object. - # If `pdf_type` != 0, then SWRC parameters will be estimated later; - # thus current values will be discarded and - # we can resize empty SWRC parameter object to avoid validity failure. object@soils@SWRCp <- reset_SWRCp( SWRCp = object@soils@SWRCp, new_nrow = nrow(value) @@ -1959,7 +1951,7 @@ setReplaceMethod( #' The correct sequence for setting values is #' 1. [swSoils_Layers()], #' 2. [swSite_SWRCflags()], and -#' 3. [swSoils_SWRCp()] +#' 3. [swSoils_SWRCp()] and [swSite_hasSWRCp()] #' #' @md setReplaceMethod( diff --git a/R/Rsw.R b/R/Rsw.R index 5f7142df..413447db 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -266,29 +266,32 @@ sw_exec <- function( } - # Estimate SWRC parameters if requested PDF only implemented in R - pdf_name <- std_pdf(swSite_SWRCflags(inputData)["pdf_name"]) - if (pdf_name %in% pdfs_implemented_in_rSW2()) { - soils <- swSoils_Layers(inputData) - - swrcp <- rSW2_SWRC_PDF_estimate_parameters( - sand = soils[, "sand_frac"], - clay = soils[, "clay_frac"], - fcoarse = soils[, "gravel_content"], - bdensity = soils[, "bulkDensity_g/cm^3"], - pdf_name = pdf_name, - fail = FALSE - ) - - if (!is.null(swrcp)) { - swSite_SWRCflags(inputData)["pdf_name"] <- "NoPDF" - swSite_PDFNoPDF(inputData) <- pdf_name - swSoils_SWRCp(inputData) <- swrcp - } else { - swSoils_SWRCp(inputData) <- array( - data = NA_real_, - dim = dim(swSoils_SWRCp(inputData)) + #--- Estimate SWRC parameters + # if not yet estimated + # if requested PDF only implemented in R + if (!swSite_hasSWRCp(inputData)) { + pdf_name <- std_pdf(swSite_SWRCflags(inputData)["pdf_name"]) + if (pdf_name %in% pdfs_implemented_by_rSW2()) { + soils <- swSoils_Layers(inputData) + + swrcp <- rSW2_SWRC_PDF_estimate_parameters( + sand = soils[, "sand_frac"], + clay = soils[, "clay_frac"], + fcoarse = soils[, "gravel_content"], + bdensity = soils[, "bulkDensity_g/cm^3"], + pdf_name = pdf_name, + fail = FALSE ) + + if (!is.null(swrcp)) { + swSite_hasSWRCp(inputData) <- TRUE + swSoils_SWRCp(inputData) <- swrcp + } else { + swSoils_SWRCp(inputData) <- array( + data = NA_real_, + dim = dim(swSoils_SWRCp(inputData)) + ) + } } } diff --git a/R/sw_Pedotransfer_Functions.R b/R/sw_Pedotransfer_Functions.R index 8088ec4c..dac07c34 100644 --- a/R/sw_Pedotransfer_Functions.R +++ b/R/sw_Pedotransfer_Functions.R @@ -199,22 +199,19 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #------ SWRC parameters & pedotransfer functions ------ # MAINTENANCE: -# Notes for implementing a new SWRC "XXX" and corresponding PDF "YYY" -# 1) SOILWAT2: see notes in SOILWAT2/SW_Site.h, i.e., -# --> updated `N_SWRCs`, `N_PDFs`, `swrc2str[]`, `pdf2str[]` -# --> updated `check_SWRC_vs_PDF()`, `SWRC_PDF_estimate_parameters()`, -# `SWRC_check_parameters()`, `SWRC_SWCtoSWP()`, `SWRC_SWPtoSWC()` -# --> new `SWRC_check_parameters_for_XXX()`, `SWRC_PDF_YYY_for_XXX()`, -# `SWRC_SWCtoSWP_XXX()`, `SWRC_SWPtoSWC_XXX()` +# Notes for implementing a new PDF "YYY" in `rSOILWAT2` +# * new `pdf_YYY_for_XXX()` +# * new `pdf_YYY_availability(verbose = interactive(), ...)` +# * update `pdfs_implemented_by_rSW2()` +# * update `rSW2_check_SWRC_vs_PDF()` +# * update `rSW2_SWRC_PDF_estimate_parameters()` +# * update `check_pdf_availability()` +# * update examples and unit tests to utilize new functions # -# 2) rSOILWAT2: -# * if "YYY" is implemented in R, then: -# * new `pdf_YYY_for_XXX()` -# * new `pdf_YYY_availability(verbose = interactive(), ...)` -# * update `pdfs_implemented_in_rSW2()` -# * update `rSW2_SWRC_PDF_estimate_parameters()` -# * update `check_pdf_availability()` -# * update examples and unit tests to utilize new XXX/YYY functions +# Notes for implementing a new SWRC "XXX" and/or PDF "YYY" in `SOILWAT2` +# 1) SOILWAT2: see notes in SOILWAT2/SW_Site.h +# 2) rSOILWAT2: everything should automatically work with new XXX/YYY +# * update examples and unit tests to utilize new functions #' Functionality for Soil Water Retention Curves (`SWRC`) @@ -262,6 +259,9 @@ VWCtoSWP_old <- function(vwc, sand, clay) { #' i.e., `name` (short for `swrc_name`) and `swrcp`, #' or all necessary elements to estimate parameters of a `SWRC` given #' soil parameters, i.e., `swrc_name` and `pdf_name`. +#' @param fail A logical value. +#' Issue a warning (`FALSE`, default) or throw an error (`TRUE`) +#' if request fails. #' @param verbose A logical value. If `TRUE`, then display #' `SOILWAT2` internal warnings and other messages. #' @param ... Additional function arguments passed on or ignored. @@ -309,7 +309,7 @@ swrc_names <- function() { #' List Pedotransfer Functions `PDFs` #' -#' @return An integer vector with names of implemented `PDFs` +#' @return An named integer vector with names of implemented `PDFs` #' #' @details Notes: #' The integer values may change with new versions of `SOILWAT2.` @@ -319,11 +319,47 @@ swrc_names <- function() { #' @md #' @export pdf_names <- function() { - rSW2_glovars[["kSOILWAT2"]][["PDF_types"]] + tmp1 <- pdfs_implemented_by_SW2(names_only = FALSE) + tmp2 <- pdfs_implemented_by_rSW2() + + c( + tmp1, + stats::setNames(max(tmp1) + seq_along(tmp2), tmp2) + ) +} + + + +#' List PDFs implemented by `rSOILWAT2` +#' @md +pdfs_implemented_by_rSW2 <- function() { + c( + # `Rosetta3` estimates parameters of `vanGenuchten1980` SWRC + "Rosetta3", + # `neuroFX2021` estimates parameters of `FXW` SWRC + "neuroFX2021" + ) +} + +#' List PDFs implemented by `SOILWAT2` +#' +#' @param names_only A logical value, see `return` value. +#' +#' @return An named integer vector (if not `names_only`) +#' with or a character vector (if `names_only`) names of implemented `PDFs`. +#' +#' @md +pdfs_implemented_by_SW2 <- function(names_only = FALSE) { + res <- rSW2_glovars[["kSOILWAT2"]][["PDF_types"]] + + if (isTRUE(names_only)) names(res) else res } #' Standardize a `SWRC` name +#' +#' `"Campbell1974"` is the backwards compatible default. +#' #' @md #' @noRd std_swrc <- function(swrc_name) { @@ -335,6 +371,9 @@ std_swrc <- function(swrc_name) { } #' Standardize a `PDF` name +#' +#' `"Cosby1984AndOthers"` is the backwards compatible default. +#' #' @md #' @noRd std_pdf <- function(pdf_name) { @@ -346,18 +385,40 @@ std_pdf <- function(pdf_name) { } -#' Translate a `SWRC` name to its internal integer code +#' Translate a `SWRC` name to its `SOILWAT2` internal integer code +#' +#' @return An integer value. `NA` if `swrc_name` is not implemented. +#' #' @md #' @noRd -encode_name2swrc <- function(swrc_name) { - as.integer(unname(swrc_names()[std_swrc(swrc_name)])) +encode_name2swrc <- function(swrc_name, fail = TRUE) { + res <- as.integer(unname(swrc_names()[std_swrc(swrc_name)])) + + if (isTRUE(fail) && anyNA(res)) { + stop( + "Requested SWRC ", + shQuote(swrc_name[is.na(res)]), + " is not available." + ) + } + + res } -#' Translate a `PDF` name to its internal integer code +#' Translate a `PDF` name to its `SOILWAT2` internal integer code +#' +#' @return An integer value. `NA` if `pdf_name` is not implemented. +#' #' @md #' @noRd -encode_name2pdf <- function(pdf_name) { - as.integer(unname(pdf_names()[std_pdf(pdf_name)])) +encode_name2pdf <- function(pdf_name, fail = TRUE) { + res <- as.integer(unname(pdfs_implemented_by_SW2()[std_pdf(pdf_name)])) + + if (isTRUE(fail) && anyNA(res)) { + stop("Requested PDF ", shQuote(pdf_name[is.na(res)]), " is not available.") + } + + res } @@ -368,11 +429,6 @@ encode_name2pdf <- function(pdf_name) { #' @return A `data.frame` with two columns `SWRC` and `PDF` where each #' row contains a matching pair of `SWRC` and `PDF` that are implemented. #' -#' @section Details: -#' The argument `swrc_name` is optional. If missing, then all implemented -#' `SWRCs` are listed. -#' `"NoPDF"` is not included in the list. -#' #' @examples #' # Data frame of SWRC-PDF combinations #' df_swrc_pdfs <- rSOILWAT2::list_matched_swrcs_pdfs() @@ -387,27 +443,15 @@ encode_name2pdf <- function(pdf_name) { #' #' @md #' @export -list_matched_swrcs_pdfs <- function(swrc_name) { - swrc_name <- if ( - missing(swrc_name) || is.null(swrc_name) || all(is.na(swrc_name)) - ) { - names(swrc_names()) - } else { - as.character(swrc_name) - } - +list_matched_swrcs_pdfs <- function(swrc_name = names(swrc_names())) { res <- expand.grid( - SWRC = swrc_name, - PDF = names(pdf_names()[-1]), + SWRC = std_swrc(swrc_name), + PDF = names(pdf_names()), stringsAsFactors = FALSE, KEEP.OUT.ATTRS = FALSE ) - ids <- mapply( - function(s, p) .Call(C_rSW2_check_SWRC_vs_PDF, s, p), - res[, "SWRC"], - res[, "PDF"] - ) + ids <- check_SWRC_vs_PDF(res[, "SWRC"], res[, "PDF"]) res <- res[ids, , drop = FALSE] rownames(res) <- NULL @@ -415,6 +459,77 @@ list_matched_swrcs_pdfs <- function(swrc_name) { } +#' Check whether PDF and SWRC are compatible and implemented +#' +#' @inheritParams SWRCs +#' +#' @return A logical vector. +#' +#' @examples +#' check_SWRC_vs_PDF("Campbell1974", c("Cosby1984", "Rosetta3")) +#' +#' @md +#' @export +check_SWRC_vs_PDF <- function(swrc_name, pdf_name, fail = FALSE) { + swrc_names <- std_swrc(swrc_name) + pdf_names <- std_pdf(pdf_name) + + n_swrcs <- length(swrc_names) + n_pdfs <- length(pdf_names) + + if (n_swrcs == 1L && n_pdfs > 1L) { + swrc_names <- rep(swrc_names, n_pdfs) + n_swrcs <- n_pdfs + } else if (n_swrcs > 1L && n_pdfs == 1L) { + pdf_names <- rep(pdf_names, n_swrcs) + n_pdfs <- n_swrcs + } + + stopifnot(n_swrcs == n_pdfs) + + # Check if SWRC/PDF implemented in rSOILWAT2 + has_rSW2 <- rSW2_check_SWRC_vs_PDF(swrc_names, pdf_names) + + # Check if SWRC/PDF implemented in SOILWAT2 + has_SW2 <- mapply( + function(s, p) .Call(C_sw_check_SWRC_vs_PDF, s, p), + swrc_names, + pdf_names + ) + + # SWRC/PDF implemented in either rSOILWAT2 or SOILWAT2 + res <- unname(has_rSW2 | has_SW2) + + + if (!all(res) && isTRUE(fail)) { + ids <- which(!res) + + stop( + toString(paste(swrc_names[ids], pdf_names[ids], collapse = "-")), + " are not available or incompatible." + ) + } + + res +} + +#' Check whether PDF and SWRC are compatible and implemented in `rSOILWAT2` +#' +#' @inheritParams SWRCs +#' +#' @md +#' @noRd +rSW2_check_SWRC_vs_PDF <- function(swrc_name, pdf_name) { + swrc_name <- std_swrc(swrc_name) + pdf_name <- std_pdf(pdf_name) + + pdf_name %in% pdfs_implemented_by_rSW2() & ( + swrc_name == "vanGenuchten1980" & pdf_name == "Rosetta3" | + swrc_name == "FXW" & pdf_name == "neuroFX2021" + ) +} + + #' Estimate `SWRC` parameters from soil texture with a pedotransfer function #' #' @inheritParams SWRCs @@ -433,8 +548,6 @@ list_matched_swrcs_pdfs <- function(swrc_name) { #' are recycled for multiple soil layers. #' #' @inherit SWRCs references -#' @param fail A logical value. If requested `PDF` fails, -#' then issue a warning (`FALSE`, default) or throw an error (`TRUE`). #' #' @return `swrcp`, i.e,. #' a numeric matrix where rows represent soil (layers) and @@ -507,18 +620,11 @@ pdf_estimate <- function( swrc_name <- std_swrc(swrc_name)[1] pdf_name <- std_pdf(pdf_name)[1] - if (!.Call(C_rSW2_check_SWRC_vs_PDF, swrc_name, pdf_name)) { - stop( - "Selected PDF ", - shQuote(pdf_name), - " is incompatible with selected SWRC ", - shQuote(swrc_name) - ) - } + check_SWRC_vs_PDF(swrc_name, pdf_name, fail = TRUE) #--- Determine whether we use a C- or R-implemented PDF - swrcp <- if (pdf_name %in% pdfs_implemented_in_rSW2()) { + swrcp <- if (pdf_name %in% pdfs_implemented_by_rSW2()) { rSW2_SWRC_PDF_estimate_parameters( pdf_name = pdf_name, sand = sand, @@ -552,17 +658,6 @@ pdf_estimate <- function( } -#' List PDFs implemented only in `rSOILWAT2` instead of `SOILWAT2` -#' @md -pdfs_implemented_in_rSW2 <- function() { - c( - # `Rosetta3` estimates parameters of `vanGenuchten1980` SWRC - "Rosetta3", - # `neuroFX2021` estimates parameters of `FXW` SWRC - "neuroFX2021" - ) -} - #' Check availability of `PDFs` #' #' PDFs implemented in `SOILWAT2` are always available; @@ -571,8 +666,6 @@ pdfs_implemented_in_rSW2 <- function() { #' #' @param pdfs A character vector. `PDF` names to be checked; #' defaults to [pdf_names()]. -#' @param exclude_NoPDF A logical value. Consider `"NoPDF"` to be -#' available (`FALSE`, default) or unavailable (`TRUE`). #' @param verbose A logical value. #' #' @return A named logical vector with current availability of `PDFs`; @@ -582,31 +675,26 @@ pdfs_implemented_in_rSW2 <- function() { #' check_pdf_availability() #' check_pdf_availability("neuroFX2021") #' check_pdf_availability("nonexistent_PDF") -#' check_pdf_availability(exclude_NoPDF = TRUE) #' #' @export #' @md check_pdf_availability <- function( pdfs = names(pdf_names()), - exclude_NoPDF = FALSE, verbose = interactive() ) { res <- rep(NA, length(pdfs)) names(res) <- pdfs - rpdfs <- pdfs_implemented_in_rSW2() + rpdfs <- pdfs_implemented_by_rSW2() + is_rpdf <- pdfs %in% rpdfs # PDFs implemented in SOILWAT2 are always available - tmp <- pdfs %in% names(pdf_names()) & !(pdfs %in% rpdfs) + tmp <- pdfs %in% pdfs_implemented_by_SW2(names_only = TRUE) & !is_rpdf res[tmp] <- TRUE - if (isTRUE(exclude_NoPDF) && "NoPDF" %in% pdfs) { - res["NoPDF"] <- FALSE - } - # Check requested PDFs implemented in R has_rpdfs <- vapply( - pdfs[pdfs %in% rpdfs], + pdfs[is_rpdf], function(pdf) { switch( EXPR = pdf, @@ -660,7 +748,7 @@ rSW2_SWRC_PDF_estimate_parameters <- function( # nolint: object_length_linter. ... ) { pdf_name <- std_pdf(pdf_name)[1] - has_pdf <- pdf_name %in% pdfs_implemented_in_rSW2() + has_pdf <- pdf_name %in% pdfs_implemented_by_rSW2() list_soilargs <- list( sand = sand, @@ -1279,8 +1367,6 @@ swrc_conversion <- function( is.null(sand) || is.null(clay) ) { stop("Insufficient information to estimate SWRC parameters.") - } else { - swrc[["pdf_type"]] <- encode_name2swrc(swrc[["pdf_name"]])[1] } } diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index fd3aea10c90f231ed65c7b440c0ff830ec840bad..1eb71a6f2932a423d1e8220a2d1b573a26587d07 100644 GIT binary patch delta 53597 zcmZU41yCGY^DpkQxclPnPH=u>X7g1kO}3@oW=R&Oj-0zmswmAkP!1AX@pEvkRSvE1Wf7s zKlmC7M=wH*Jw!!7U`G(k3QyBzO$(%e6p(js4b#b8u7JMNtfUCZ$OIwKTtsKr$Tfac zQSzgW2}ce@$wimN2xmjzLJ%z`gq`#w)K>xJiR-Wu*oUPN{P+>;-2e?Gv^DdBi@{vJHFp1og5;*U}QcV@dhD; zR0cf|$m?;akr-4Ng5H95IA%uNpC;yh9U?p(wUcl}F`b;a2O&sbSI=R_vVTY0`hlQ> z9**$*1AF+7g8vRONGJl@uaRyqsc`h6!|kv4As55e2;YmTzj{;+q*f0Psy}k0-=$rWxBcsN=Ya^ki~GcM@~|YtRvRiAcVKH z*F76Y{llb-aCF)&<%u0d{ZT|A1SZ)?O66P}3Pc2r*a)Fj6qMx%0c-X=%sSfj4-uZ_4;E)e01CkqOF5m#ZTZ zsx_q*P;4n(u5rTAq9{{v1)Oohg;q5b2&%&&Xi5q*eR!M2<|2BAHzv^PmaArT$)<-I^pJzxbT@upJ)@LDp6sUREpIWD@56Q!S z(Y?AZW}B;6ldAY_;EY(IDL`9l#~55MZsg^3OG-aIyy8rhOhsg?l)y+o&ZsOs zgoBt00TDdFV};&SLNO@3h*{MevfOv(+46HofVkntc>?lXXm6kUy;KI`crb2~G2HA2w zxe*lVGagL()bvw53*SPbq*N`osLX_^%IGWA(?SU!bYgEsHmH|Gs*e{n5P|@Wj#u=} zJSi+fE&}!`q)QeNRq{m3B2IZT^FYrqd<##t@U$3{pz(TF7XA_K+x>V3 zzg}R-?9RakKmH^z#DO=)%0eTCYBi%W&$#+V@C+Ab2ht7(e3 zO?8YYS8YsHL|%M-{x!%tK6ciuz6paA3mY{ZWZi1Qm9CB&IbxrVWx_>@mHj`|jAB&s zj3!hJ2ri&kNdA5qCnA#%2bl#?F5H?N4e>t!;==;5{LkHgm!A=>hk0<2{zgXlYC)!f zj4;TD4MUg?*RlK~htSK1-TG(h1LmTxA`J6kNBx06>;Dt5MnTN~**gPa>W?{32*X_e zQ3SCj2LbHD{VL&-a$V8V>q*9NQaaJrS3mywX* z--Lo@Lths>;@Gx^r0+$F{t>aaD*N^G^Vr{sLMse(?52NHD1X~Myhe34GXGojh|c9E z_sk~}glI<}pC=yq5~QhXiC0ulyX(ZWRwvbxH^cGCZ<%wlV>c540m3*rBO;CId;Ayp zm-R{9dYK9(Ut34?Kf8j4z_g$x$6HZPOL?b0P2r1vE7kFK z5HRJ<_l4CYr3QWuX&3HCeBc2A)0eYp-FNjB4AMc&YWhmT#(d1NH`as*hAd9;?2M0C`TC1IkdmQ=$;w0{Zx`GPAU>F(yG-(ivD4n@6QQN#Es zlBGw}G3e2>7QY1_y!-S#YS$>JD#F0;#z5^tSH2({yBLHo*sMZ zEx|r>T|0h&@IFaF@CN^qR6%X>6dZdR41I|rD*HC{Zr#JvXUKVYHd^zKeYVi&x1+yP z!jQymh$-r`+>)O-Vw&+(XdtOBca&?nGw+rjM^@@E>|9}8>DPl<d(gB@VL|IcRTQ@jk2_H zLHpc{``?qViHp;}wtn9_=wIy6!D@gG$!G5Z-JxGbe#;!J-tR7S+$$j$jtO@Vob#Vfcd#YWZ){{UPdvw{`RLZ_6%pATmtrIGCIe zYF$opDzPGyJ-tkVE(KJIfITv0!Q5Ilh5QLft;>)`%|D^{{5hK6P)3vMKo$_|J*tPp z4DpkVt2#)s*MLT!*emDxpm8c!QTn~hXB$PAKXSRAHF9mG+$dvT|N3T-+Wq@O5}hGk zt?2UCSQ$bH#|ZD_c=_hnbpFzG9JviEzLjQ27R)jB3`PzZS1hNuTQ^0m0JjhxqJ~c*ct_Ce=fK+1>7hEE6f38lI8nnf@ckXl=wf_ZRCnh7H zkK{)>f0&$$W)NQlOeMJMjI$919VMk!k>*O_;i2it^D-Tqu@Rj{*nL7E|A~J{cD4V5 z_Wdt<0>n?5Y3&U1%B<7;B=0Q(Ov1_LazFxM!Nk-N)r@n*cNb#`>zEQoOlmy`K1hX2 zwVaGY>$hm=BIxBSLJ6JbkMEJR@1$HJ@}Ew;qCqO>pYFxQu#*hGDx9JneR9)8LQwgH zeuXR;))W{`4U_E6nE-;`sjN^>zHV<~LqNf=|pv#iaKu9Px%aVQ|8X!i05{KCIJRA1AEA<&1v zs4+fV9(NMwiN|_H;-*Pd5=GY8$I;TnXHB-WG=%m1^VIhkb@REeI^U%_Uosy5o6qw= z)K0@L)EaklbJKfMTmJF*Q4xCtmbbnALVe&V1P~oZwa~REQ55@U<*Z68eqXLn&6GgU z%=6{*2k$+|Z`{{k3dZIhM*6|?i@lyHtvH{19KK*Cx+8aR?ZvDWzcpn=OZ;TWncRj=ef_@ zjE*TM-DXY#pMwiqPsq3(JBTJrx(|KfyaAyVw{2sPU!RZ>E>>#T0l&C&){hqD1N~Wp zEzjLC(tL;7vYP`o%v^U?`|Bk0^ZN&AEFE)%5T!3lskyt6^K{sX5~zj|quJ=9|7Jae zVEv0_`g^K(i;HE2Zzh^ z!m`7 zy{V5Z`i4B5^f<>VqlRLYQL<1X%QVOB+l#o+sSKUPwq-!ug|3^nOkc?5 zF@XBh3{&Fi#^=rI>gHRm25J)TTpyVXJ$>eIS^A7!#R zn>-Jw)$Gl`&AUfL@1UJKt2V)nETLXA2YChL_u6tmQ>cJPw8s<}5F9tn7t9rTb1bff zV;$m^5?XgIdxk?ZS$ox3xEMmpDg;^G->B?unyqas16&i~3o!?Agc6 zD}$;T&}4MBx9P)h=hkt!=?5AK#%O@A^8|u6ewS>9XyzR~2466k?D`1XFb+sPCFi`^ zsKYDZDnJoI+GZ(C>8Zyh5^5k+OFe*eee z*I?8U5uL){*x74;LKsp~7e{Kz{xY{@9z1Y=%to2wy*ILZDw&fR1jj<$(XG2)Q@_tU z=qft8N@5N}zPiK8SqaNQ>~XUCRAPPQo1F9cq0MbdTUmmJF9()BhDuCVHr3cjt!Z8M zIt}9mh=X+{zPPye-i|pNeoJ$KwP%^zQ=MF#C;JHU!zPyTV_ZHv@U-rV#cX94M*lR{4F{9*h1r$^+`ovMN>MReUrP=MVivmSHp5gcROt%t~)f;_}(Axspy?}uB&~>y!q9wF}IYUSJ%wiO(kJey%MG>>UUJN5_ zC*`San}3GfWa*BGUH=vV3%W6}9v&D)K{IpY~Q=J#Ggm9O_BWOzTy zsU4w4oHO_}OQ@3YY0cc!);fDeQG`&;Bg36Oc-hsE9<8|Yxx*9n&t~mLp2ie{+JZ3+ zZwheSOShT!dxdkm#wKu{C-(c79@J2F_Ogjw5MxN>GdowqfGt98{e+y88RRA2cZ;!Y zL^F_>&BATPiN?0c2-$$p`ax`;`|iHiB~G)w-D9wH?I>}@oAi-E)x zeP&ntc8Xk%h910|(18Iuz*XPzYe#8 z=tz z^AdoL{giz71=VQL`$BVsZ}#Unv`Lh}bwSTMcX_9x{p8cv1G5%W*U4}vt|>2HQiyHg zRUk(la{b{qu9*>wNfUqNH!?&)R-c5-dkJC5sJ*MW9=utRj0PF*MaCT~lH?SO$b)v& z`dAC=1U4t1$cC*rzfVeuru*E&>Lzx+H@jTSf#nWEydi>q1Ydpn`tY`U9HANOho%W; zA@vazp6;CB*P?ua>kHpY#?g3v1xSD$K@VXH8PvG=Q*5-F57*A1Q2?|k%e6KbN3n5N zpdWSq*dWu2epY{TJwvTC&hgr?UW5mQ5v#mw1q`Q-7-wBfpV03(4zf$W7#**OEt99u zXxCTmn{YvS#UyTbyyIUY*l0W(TCnGI3m_>|JEJCa3sH>eFKoNxyx#Pwg3$M}C9Qgy z)UsS3JK$Z3od0<4X0Vh4E0Y!SldeVOnw|96ZPLm;;?Un-^wSoUG>d#~gS*7C^bSQX z_0HJquApJ)Q&ry0c3oSa*;C>&atQ8)P|*sd$I-4a3wZR!nToxE#`1NT`jtUpCpzs^ zN{;Ygf+dR|j&M@7;hl2ha4Msyip&(o|RUsC1 zDWjin!^I{C=6;m*1w8c)*37O_LKzIQ&=>*v20 zzUzrCdt6cWl8946^Z*)sv9j+Ml0_ipmDar-H7BdV5I=E+&(*`Bb1u zz~JR+GK0&U7uyPRZ=B_*O|V(rVM6RSm`RPq4P@ewdbJ#IR=&Te$x6Fq#p5;rJaBHu zO7FrI^QBq|xEAKef>rvDcf?|g^zC6Dja}?evU1SxMX*Ce#OC&v+ase3c*!+A@qDRw z-F2)ao8inc=M_T@x=k5`&)Fk}b49BjH4cFU6;c{hS~dN;OsjPIOFXE@<)H)U)94ja zYnCOP4l%u}MdNFBYc$3_^F|B|sa1_*3{E*@cFZa67PBDl5$j(aL8Pl|ue^wfT3?-k z13kRNP0Wz5q=voM(Dka2!iK5iSAhv(|%o+l{%-Rgp8fvFBnK3L4-Bj7g5%W7c zh&KBr3X+F^`avsVWr^ZmTx?tLlk@d zE;}8#YxpL)9Yg9HNXf^cNhy0Eejd@?=#h+my zL%v08-q-m_^}P9F@kLzm+lvNYsBdlXb|6qyOY*Zu%Q?ka~ya_VhWm7sHGm+;4 zpJk66r9|uapXxqK$<#gc&g0Y<1iK#EJbQIRL}|U{7;y=sYR+CtO5M89Kx~@E6O5X| zhI*RC8o7GxF9Jj6HaViSXWKXn!WQ(#Nz})ecKA3Mx=RrNn>i{6SfUh8tA5G|D@1@{ zG*8cqKc{zhX@gPMn;R%$wLZ$i6z5-N@82M6!yMCV;pw04Y|B?OsZi{kiuJr-ak-aM zLYZT6!?r;&PQ2;QCP!%3#{Z;bk2*|Iv;nmnHr2q^$N72 z+`({K&0y+Rog`V&;;n^(Q@V#8A%RNM+q!$K=8@hDa4{c>^_dE){ELib`7Z++Q$7p= zoTYc!v@XB1pYZ9V|33F+F9q1T5wPs#9vXG>6(zD ztR+L!5`%+k$BH^lC~>MH&rGs}CZ~!S%jS*t$|lIS-)BhpqCu)O;E5GrQPXhy+EBGO zni8nK7#+`7hBA2iNgS0zvVF~MCvDx8u+Wo>)BDHW)-I?4th~>(?{6U<5Vp#y7Jr6x zGntQGH`jyDs!{%O1!J>@_{>$m6y%C%x`IQN_dsyTIATo2>SgKH0jnh|tf3_8X!6JG z{I01@9NrS94Yf1TrIl)R&V_E?z*ej1fu$Q^&YThkym+A=(j5EC&@%IaOtL^DdU2qH zfn;o5Lg(e8&75@FDb^e3fFKDWsq2WIxURV7SOezV<({H2xP}?BqRm4>Eb(M#J)kgk zoqoh%+qw>{UCspmFDH`Y3pC7Wi(mboiEq-E0RWXDJK?GjAkKmUq5F z39v4(DqR8Wu%?*IV2x!hW}Ed_Z=TOi^Tbv>Lf@s>ZVS)J&&z|kqs~XLi*jhgCYE_c zZ8lzRkdNP^JTBLFeeJW5YqeA*+P`eytr7R#o4IxC(oaK3GcWQstImzMA8y1GCi1DV z1N*-E%}3F9^>3S=zd!iF=Tl}L_^RfMJPCxg_xh?_-vY&FF2y(G&alyTg7_Q7qfQy* zDUap4tUj4;_-{-_`j4Q8#-Q7)kU`ZJhDI|ZBDXgK8Bz>mb}k-oPAPI4zVpz~ z0oA_vQ;$Q^ZpEr!ro8f2C07WS70lE*Y^!JzB~+W48KNY6Eu2CgG7Tn;2r$NeX`WtD zAKe(EHG&k}@_@+TlM<6y%@MTdH}AwteACAG`?7_WX=3Onb8N#EzzK;17mZg)2G-<| zQuIuGbSmcVNRLhG*PbdtBuvZAwsVJbM$tmgL>MID<~mcFn6b~vDe@Y6GUlccCFf*i z7+R5^df5SsbbXc^D@f&$RxxPWczP|G(>5{;D@~#@jrKbns3nNku}jv-43$l67@Sh? z06c@O4YFR&OouX~GIbfs!$xl3kdN7&3^%INX_!yI4AQ+mvb&u zvfEE9X|X@M($=0>0#EOLLPPwcE8F*XF$YdxJ1NF&tz zP1j|eu*67(CA z+^o9ZRbyXFRGXLOcNSQ#^Ct08yfT(By3{wz=erLLNk7qMm3AZX8Ft$X z2U%h$Gt@!sAqO)yN+hC1$kV)VsL|y>7)flRwZL*NgJz~-()(s?WW?815t8ZG{D$pO zw9x&{7w9dV_;PAN;Eiz}5sZC(QjZM8=*=V^aCW&oct^P5`KLN+Nl`wqB zz(b6fg=$aIC7`{6Q%oBSS=#lduC-{xsCH1Vx7qNJqnv7c&^J%;bz4Nrj|*w*CZ3L@ zZ#v<>aYDph!I_1134mqq zm{Ra{`t}{4Xaz9Zh>W&_A;iAKW;s30%H2J*oo&eXmO`qR-2G%vAaB~^T2cm2K!mNs z;O>Y=W5EKPTv&&nVsP)>Kx=2SrhFM`80@nr9@|zU!hZ_s_Ib^IwJ=q5P96j8o1r8~ zP+3J&d-CL@v)`+;`n-6gdwn*YI2gHh^o0iGZLiPOj9G8=E(C&e7d*)g;p|>v`>Cg` zqWTWit_&rzNw{d3vG*1k0$6ihbby4L$;`TXD1d!Uq1eHA+^b; zdRb9iqy%ZyIgF@p+!Ob5MS3rPvkF>|oiPJWd?o6m*b>1;oPa3?0G-|Db&0)_Oo z)NqN-iu9yE01L0{L>}GIz9$p&1wiLkLA(j`{(QxbY@*Ay;OKK4YE|w}ZG>^tMlrgB zWFrLgku;C0P(h1RBO*TCD?&QoIB(rthk#UADMuDb&7!@vcPMy)w^e=1LZHh;)b_T^ zjsNlp&kVTq zrdVSDXv&vB=}2DPFIUL-a$J#`&hGM^mY>P#LJCa3PQTzfi^W+QnN;c%$s$XEwD}tG z%G%XYVyUf>%O;T#=!6c;8vq|e zMz%Rg&@q!KAQP6l{N&VX*i0TDa3#v(dg&Xe)VGV9gWh4Ll73FhaT*#Gk*ijtOeOLs zXmoBt*?nH5P`pVB6KmL@t@Vc7?WL$Iq!%77sjcn{bc?Vw;aE?^)GAHdASVTqwq}L6bmB0~St3%r5&?WdkiK)eTb;$Ep z^6;$raTZZ}msQur1vcyZ>fMy+%||d3%j>9c2<*f9$$E&EGwv2lJA5Hu)T)Dhr79Vs zwd8GWub<8WF`W%XF}5?&3RmDmIm(i$Fs*V0uV{l@xNH>}R!SX}fW4w58wpp=8(RRA<;YNE@+2u#?we5LB+_YW~fWX-bFy*v^sw`QZ z)&?mKtATO^s`uQ6@d9D!_CIUEUBUCg&9u^!qi8b%+2kxEGhA^AJA;*kzX)}i09Tu? z^}6+PTsdz7RAzc@an7GQTKhHO2j1 z)Q@Dl&ZLS(x@es2Q}fs~RX(p~H2$}V@ZfkN;ypi0pWb!6IMFSMchf)r-qnSIEqBR| z{UG6Ts)2Hx?uzV_gJWAv#uz3&53@lu%{Rff&;=t&{&A z*QWyyae}V24Q}&Q5As3fqxm?jx(fCp)UH8zcA^HnO=lpE9f36t$q@}4@#b|Bh+Y~t z8ZW02==!U7(=bNwB-KbW%hqZum36$4bma8>e4odT7BX%xD-k#5VA;-A!R-^{-x5=( z3~T@7Lz#E{^hF{#8XEA}AuTn!PP7i&19Fo8ag{NJ;HO!ktF!jIRNc_Nfj(@+ zqcyG?q+l2G0G^J1RHh?w(TvI>jW8Dbv#!kkJ++)dc_2I14X@QzMhqt%68Jm!Kp^=h z74uaZWJXrm%Ya9T+A&K(;08C1-`km19E22xv%>6?s?_5HPj*jMN{-m^lq+`XvxyPj z+;msZXd9!yz4?@tcHbS)PZ>X;6g(BYz!K;#P7D7k_lBd9hJxWGj&x=J*{N|_)TjWJ z{9NF3Kbu$96B@VH5_IKH3YHs)tIk;ED_jhPoXSh4C%^IKC^eaEULUT-rCDxD-jrUe zFFnN2w)r0s=3QlRyvEw&%(*RQvsF{r5`7fN0~omF_mOjGbt*?B_&i-xcxt9yx;w&^ z3*U7O2AN3SV@Kp3jeF&S-z=*WtvG$*9zHYzP!6>$TaDy(_AUEwZCqcAtd|uQHt8fF zygaP6Fb_qtDJI?VN>q2J1A#$LgWKV+Dg}hJ!sQQr;E3V`jQ*sIq$Eq6)?yDqVOV;j z`sgE#wh${1{2?y1-p5l$C>?e&WjIWGw#QJVmE_0OT$_F*IfEJu=6O90D!ytaeZ=Ot zy}+X85?0l&X$>1C^Y6>NnUP8ci6gND$1cuEkG~P!|Rl#=#PA-ceHDOyD^~qbv3vh3}BMB5`6? zJNGu6+*veQ@SecJ^>f1n&|+)YEn)4O_mr2t{Z;Fu%f&>IcS4G%prY_@hjebTeY>7; zXV4J}6Q-7P-JUyMHddS4r@OG_tc0stFgr3@>uHdp9IsxYMka2hYM(pS^5yMCb>syv zLyjXZ$q**U z_roF@$`MibV{Xs9@!oZ(bbEKpYtKZlGY0bOabFBQjJTX^3w zhA<{$HBH=pb~O4N4gq^<`Je>gW@Mz~g#;|K-5n8pB^T}cx`D>HS;_~$?0#jW|It|O z=7MzEvBaJU_FH-iERP`PifXAX8m2Wmm{|2xE~+jla8AhZhmMm;%yiP3^i2T{d*2J{ zS-ov)O|>%RwNtY3RwXxE9eBE5WemNPbDeGFqGDNT++vz8Ab!54pOOg`-vDw6SaY!M z916Be$VSl<%X39$%yFDBRJC0(KKKiJub`0J!h)PKrl8b+t9Qqu zQCO{dfL7xc!e;SNJ^uPvvd&ac67-1V{D+*aC?FVoQbA79_j*?)inLd2n@66?V^3Zg z81JSoCXaQDp-z#5zL#UnsR~XOUoGF2pZnUIu;$LcT`W_X+eI1u3v;zo{>4TnY`T%o z>H?q87Vf66_$W1g5l5>}HR_y|sv&o7ZcUDd1vWpl@t1_5BZjLNvTrn9a-YbYR(HxND*fvNT;>61K zciyQ2bc}B=2t3)}*B!uvmUZEhy+FKm@!&CI6Qer!(rjljpXrN1|3I zW(|xgI_Gz1Y4K&a=VK0)ymvqSpz5#FYpdBu{H(3AvlCw6UgIt1b2ERst)xqY*Sz#Z zrFF^cS9>7YTi3T#7{;MauQs$F>+BC{bBObmX`IeD*7?#e*BJq3GGn-L5?fRl;SRC= zmANT24{W$WB6YB7Vl;Lim1wou#|SA~5xafhkmL zCR@Wl21vD-!}cNUDGiLaG1j`mNO5Bu{HUlWJtAV8tgfSE^qr)rFCN2ClYts?>~qxQ zJfcvvmQy2FCCE_Cz4Sn;L9Wb|R+kG3n$Ja?IVvSy=`Xof9q$%SkeircLs^=~paw1u2$!M!1$Ak&-CdAv2CAa05Kb!Ib{b z0Kd|5dHWyfHZ$G#0+8o?-7$|GVdT!zAs9m)nvA5NvE58$!QGxsWoC)#o>RkyRv9hPY)PtAaEm1U=6haH0+9f9M-mv|KN#fx(pZdh%Sh=O=j6e*!^{3YQ2Ykv+Q$a@a6o#XqT94AQ!Vd)(G z(b`mAztN%s=_WYe(~7vd@CFdWGd;e~qGi{w7w9j&)Gc8?B6Gxbc0MvcpnLiDF@UmP zED$$T%sNu$a?>ij$XPeevQ`pu{h<))FUjjzGQj&YU@@65g5tKKVL?xQ-m;R{7N z40md2yv-^M68xiL%wadufGExi4kG8bu}`hLPMgMVVzSl7V@j-7+Vg;8xFAQ5Z`WSM zkg%8e8u*+N`DcjvXjEYdCb3Ey2^X~|& z`4cs=bTDVD!)(dy@U0X01s5Kh9zQXOq-{cT`f&{*hR=6Nq16|Tz%9lgGtx1`6CyD9 zLZb1KT}WZiQaTn6_1YZh46GkV`pG}`@F`i!vnf|BRNW%5QmSg+-AEHGvYZa%)Hv8v z*kzs*Z*=Rm(e&tL<0i4f#XUV0=?ABrY6PVO!Nc-T&8KuxHv7!aF#qgEvDFz`^X@59P>jpoyV?Awt1L<3wcY-S(8--nb)B(WJLQnhx$PYCp%9lA zesbvm7)LB#fm>QDSPkq(p6459dazjT0%vDQasFC1+Z`g*YpHd%F14zQxymOV!1Toz zWB5RohhJ-`uRhpM=Br}gc&<1HSjFqAvJVnt>~|es_5>xL@C&cR>|0UA8k&m1jVAZm zYCGVMd>^zr#;nI&CDCb9XjNdI@`HhSR-QPvh09jXxp61|9D3euCIlw+aedPwDRfQn z1Qhl+J7gtOKG_yWD&Koe0?*~Bi=9;Na95LcsB%<-ezmGVj~Z=_;{abQd(SHCFd-Lq zatx`7NlFKoJ*fP~g3aakwtsTN-*u|hMAuEd2_-_d`x%`4t*b5y_5`T<({C;oyF=Sa z1d&6`xR>Kt)k3q;R(dTkLuG?=svgVH9UC%^^$+#J=aQ;l?Nk}>LhEI&%yAv|*xb|; z*dI8NCRAJh<0Xa_EalH$l z;`rADb__82#fb3N6PET*o-#Qw>!q^d;$kpT*5A7mXl%kBUspD-4WCDgBk>RdA{ ze||gs{c-j8m#5!%bR$1^zYo0q{&(PqOvztw{Uuw!zCmt6|M~aZ9~#+xpUmcmA0 zu=?u|s{3ocsJNEBe?!0-Bb9rQ8GL--WBb3wBur!$HR~RD2ReGAi<}MQ)#@;yYl&>p z0(vt7kww;(ShAJz98)*|WK687Ncq-i1|%$mFOcaU2RuI4Eo zHM)d=+sD^pJW#-rNUriKaLaMtZ_^*rvi^_C!+Y4b#}CHO)ED9lzJ(W%|3L`~d2K)7 z%P_2|zT;1CSLFND1ND8u(W2LD1tR{cW*3Rri_OSV}vo{&IXkbUBvWG44()ckv)vss*FE{Da(9IE&(&&9?x_#GvmYQC4Yf1VG6 z=g$2wzx{TgooU7=_iN(gK~UH+=<}bdj;7X4V{I!6hwZIEk&S)o&`tn>`c63y1tK#a z36RkCORC&*IibR|5*J!Ep%6k|nw%bax720RMuVTxUC~0sGGyg2w}!Zt1G6d|HuSs| z(oR=dObx96+r^7ho^ytPU01J`gdKeS;`)l}t-I%sxME=t`C`_2HSJMEjJWQ9_1e@j z|Nd80@sw!5k2lQU8gyN|G__wgCp?!69%QW`aYd9rEq&KK>aA|}Be5V=k+xUH0(#U2 zb0|&bOm#+grjUKfa`_`w-PJmg+bg{+K%a?WeR^dU3DNdyQQ%TxTvyn;bbr^bd!Liw ztH9ZG+b>$_VaVdT@eA$81>(ZxCrZVg-igMwKqL=t|kE^xPYr(fd>ts?F+*ypK?G;yThr)yZc zHes`=6^cL3WkHI&ZCz3*JX;jcKn3dRoKqmOupy9gtsKYV zeF&n&<$*+wU<%kmvlUR40RQR>E9wMFtq$4*Ht$LHB(J;mSS^Czy1F(9WZD`2oRgQB zj7hBF9Pv$yYuQM_@(qpYRY_zK&}2tsxT@piBCKcs=8dY+ix6(LwI^Z6Axs9d)BtpmqW}ql)Ofj(kGXb&JM`Y$g%RvW>VFPjy+Ze`FaPrHU z%h~Yp5TkGe6sq*bqKBpbg*OK5AhG4s3tr@v5&ebzrY-UILDYxm$A0jkz2Zi2vQ0K) zv#y`v;A2}1>gTYZ$~~3r9lLz(T^iC?lnl$wuwGN(+rJTiCriz)%9-faBXIw@pFp(|%-GI>nzXK_+IgAiu z{JxbbGQh!XDu0urRu^Xh@6U{ThV4Xe^OpBQHl5z!(=J84dH*hGW0aVO zw8tBK-Muh3mXujX+UXkmcJcDnIfi~-D0K_+ z)8kCrb7zF5r|k3EkkmV+eyB&c=Lb2eU74yl&QHik43yDvqZN$!5*PsT;HZT}0l-rk zQqtmI9Z^y37NuqIw=fUz=FAIGu;f`=-PD(h3oK()%|#V5bm7GE-H*mJzD*e%`OcV5 z$v4=2bxB5bj^#I&v%Z|29&Km(nP3k{r@8otG_y0EH?b$4TjSI@xRcmYKS8NYp>M0{ zY>A@rEQ$!N;-_bRD2q{p$AoyW+onbkr?68l-Mq_Uch+7razJ{IF_r%ZaMevzdH|E3 zc8|rc(tm_!4g<9I(vTNJ5}n+T*<*`NvL-?%SXnn;*Ky6+c@ z-;{sqzPKs;)u8ImcY1mX;6C&Bhm91#=+SULGTt z6CWRmL6H;QsuDqpq%Jo_gXWR}PqT`tB8K@cwJGg=YrD>i+Tz^qO&P8M8>^YHl)M~s zapHibPLnDo*NHJh9(~u5H2)e1c+JLD1m`6q1`aR3PHMbiQ@g^TPE6;~7+~tXYb27i zWZ8m^#+Qp9^_ldo8yP9vc5D|>baUNZtmb_;rk&$?aFb!hIOFi6jqB5!5?PGKJc_6q9lxu|T`Vlh*_jjdG_)ZLrj^m-BjYff z=)7#zY6N>|BWiRxIdzOG!;UoSN?=ezk{Rz9>+uYZ9s>g=cVQr>jB!Te&Th|J(VsEz zd^7u}Wa86-+c$;p9SjkXbO@z?PkAtuMb|o3W2_b7NJZLDVvCH^C6RcYmba2WN=%m@iRBkA)B?`4f{RUmxgpb* zy6R%MT*rsMq=*bB$W|dl;uKl+n4qA96j}4_&etfHE+$+GtU<;AGu1L~C`ncv(Ki&#P#BSFlurOeqTUQ~c`A}$IL23^O82chcloqZ?u zuIA2+T1&|yMacCZu7CTd!_!?&F>Uj(@_>=H;pv2xtG2p)D+-v1e5$Il>X***D81y> zf_iacXYv*O{@6v5HHrd+!?H?1V7sjBEGC-lV&A8jU~7dPL0wV@Tl=>CmtWFV06ORJ zQ0-)vd_zvxJiN7R6UOlG*15Q93P1rUj2-1ay`N%`Ede`QfFpaNss`VvtO6n;@iZcE z76&CAFv67#9noobWJrp~PwmV{(qm_i4zER_{RfqvmDWNHMUlvN6v^)}7ci`jQW>Mb zfX#)|3I&W{qM-blV2H#uS>e@)<>QfhAPW0*6Knd#bArkh-IN48aux;#77YBq|Muj__k$5b5OXv@paY@ zE|U#H7k|kPT5;Q0ZRehPrqcRdW_e=@G-2M|>S|UFDYog4F1s}F@Ke;TT%3^2mV?o` z&AQv#JiE{9@izRtgQHg?4!%Iix3N8IH@36Us%}izJ8PRLbO#nz0Cs9$yxU8ZQB}9KH-G5N7hKI8vHPCH|J0i0P^z2&Nn$~rS z!Yip)F|di8+qBB7xiQF-lXjhivz=;xk$)ms+XdMz2zhGxCLp7)C-sO02( zkbgixmKbG_nWd5fNnj+UBt9M{9|If$0$C~`m}HfZ%v@YBOc^AQhcQe70zz0Jk_whc zVSs>`2&9srh5`vBft0CalQ0}0B$S2*7zs#Wf(*ehU?3$WC4ymrkd_iG`OMlbA3lZ?-0Rk?c0FxErQEi-V78q}>cby&H z&aUCyuD<6!=W~xQl3fAXgaiZ-%(V?m-vtK1B+N_$F$@Su2ni&XLPkPT8DJuUMkonn zes(4jNJ#-CkibbN%fLeiY(oM_WR^$>2}zR>#}_eiFu*V+CJ6{)pkf(*+wruzAAga6 zVGOdxK?IWeI3^^sEU?P~96o3%I$b2oOtQl)GC)kEIf!5%)C_WvmZ8=LECf(X0SJVj z)7RJ0+79@2z*J-+A?$kqYEU1r20e?OI%?wxMh;M(`^Dn&?VHx1)ZyC*=`FP0+S@`| zZx9yol9pnnZ*@nkqw5Lp8jSDlS%081thQ+o{0H8 zIy24Rqrv6+AbKGz%1TI61d|XD%K-uDAUNZOID~`{kjpFtGR9z-8G(RHED#WrEi8~g zOC-z?%+U-4uo5s!0SuC`7y#x0n3xdD1hPO#Lj({KV}pq#g^*y&1hB&duzyJeLO}$x zGQmJeDG4O7&$qz?4PY3=l0yuhkD=&goP7H=Yq^@(+px8pQXY~~f$b210PRn;HWoW> ziYGBiQ6uyflf&d{Pr+mP0V3I--LP;c&37H_0AFIGHV1`0qmKX_OWPpHzNi~Cu z3=on)%M8f|u`wkifPzRNl7A8iAeI6cV1w)MF$rKLhDaomNraMOS=$EzmSlvILP?fo zl1OES7FlJ20+5h^l39jX{yqVLpNT*I|6KjW2lVKF5J&6IGx~6W`xZa_f{@7gAuqL` zjFkJ}rTko!wMNtt0|qRAydaYMh6`zHU!`6Tq>B*aS278u!Qm9(MrUz>5q=J=D3{svV3o-WVzUZDtGF4@o zd)0NBRqa$#zP33}2HEenlWImEf8d;E2)$I^s%&Y?k#Ty}qr>j49;Ls>D(+Z>7^^i7hrA9C16LP#Dx!7x&W{!-K3ubV28Qv#V=Z1r(yuQm zA3nwxCop*|avMB^D6up05(?0VpoL}RGATR?9~c<}j7x*D!Pqn1*~Q-CI6qi;`+mdE zy|a1A1MO^x_Z+6x7;wsbAzJs=VyVIl65@NUs_D;SGN#W#(J(8CRQ4^`!y9t(VUs{d z6o17+=)qYqr#sI^x~H~wt4;?T)McZMhTU@Ht^}e>TN+ag(XS1wOiM#GRj4fH|Q7GjLuwMmL(V9Cm(XWQ?{I+b}zmO#j zyEw%*=_!YjQ})Hx*Sg>B!QI4x+@LQUbwriK;YV>h)YY6N2LS{waP=Fx4yO|H%gh?iQh&Ix zsj-bNu58#}J&+#Bl1XHl31pO?mMejYfrEfcAu%M9lEV%l34?=ZD!3q8~&(u}P8ti0e7cv9m#zS*C5Uayl)rlUrsYH*FkT2OQ&W+gUd2a!PDiNu~o^r!3A$ z8*^xFNH(*yX^L)U*ZHy9S-4vzi*QwYu5MlY2=SHYMmJOQkA#SRo>* zc}a_H5?R}t5@y!jtl0+G78$l$wgXwV%$b($2aA|uCPC_Yi6vHUSE{L#%1Ii3YA1yv zhUcbWM5Pj<6{uJhp;c%W3a*)kYGLS-&9vCJ9kyxM?V&rjX4=|gW*FOIW->6%W_GsC zXr;4kNS1_&tm?YCfe2aZ5tgnJ79xm6NJ>d63Thfk85mJjl zlQIc8p^=<9Bp4`RAtH#8nMhiYCew2{w{B&zXvo{Mon+f^#fzG2Bu31P+Q4~ksFkWo zqUfn;rX`k>OzgF(tv3dkn8q1uS>%+WW|A4^>ZZ7+Qe_$;SEeAPgeoF`=1Fa^gKZLV zHk)qR%ORn5nuSgICVn2JfM zR_RlhrbtR8mfEv+=D`k=8=Ot4X3{-95ppvtG&LbYL?WU}4N%HV(4<1oBCA$C6Lf%? z2qYnfBqV}KnF(Mf2!NLWz%YFtn(|G9W=V-R#4(tFhJcbuAj}hg2q1ujfR-7S31S(R zWReCL2qlG*NdgiWhFF3KAR-uGV1ikKSs)_>FmcQb35E%h7-58h5*TEXLM9SP31OdW z?>+uw?{LwfF%sFi7&&aqe>K=??25 z1cV1}A%rkVBtrx-kVG>q!w?fN5RgM51hP!a1Q1M-B$B}~1W7VW48bJ9Qp~c;BoIRc zpiGnyOu;b)B$JR#FMsuLaE4&2f8Lvv<;qb+T`5lGB4#E@mSTn^liT27>SAEbaKi+N zA_8Fe801MT6B7_YB(Sjz5=jIQK@$*7ERaDA1k5nRvJgai|5fr2hsXpv%fv$9^dKn_ zT>T5h32S52UU7d(cr<-@L}KxpiUEE^8Yh{ds3P&x)YPpd)PGuobeE}0Qo)->v@!xP zC2pTkNn~pKM2ZZzjP>Wp3L+998_{KvVpyy*Ekew5W|fPx0#@CA9zI8txox8Gn}_L!+~_dr}A_nUasVz{H!P zQ>k;OImtyTbCQ)4oh43`k;zV+>-YAza^)zLr9|g_R=Y_@Im$)|mJ8bmrY1=YlPp0? z3=<^;{<{|ll1P$BVum1?B1niKifNgKBxWI?f{9{d$B2d`#Vt$_L{ObM#W_w_r8H5~ zlcxe1nSUp~6Nw}d1d>ceElJW&Npd82IVUF^j(On)@0q&fJNEhh}@%!)if0cuLC_vIM&*WXO)_;Q` zpP8Wi5QsjB82U*Yf6SpL!T0g-eMq{mVkuvjG=Gn!Pw^rLp&F`r5XO zo%^#a!9_d8_R;pEWeX+{v+bhgshC)+m0Y7w1*wrIj!Wf_-F6YC;;D^F=o>8>ziaO` zPk)AKsI!V_Hs9KvN6DH$Z}%v*+h4hBHE!YeZU+uT(BjEHeDh3NFiD@2KHM0!Xl+#n zLVir)hDJh{1Xwu6y;G`pjTH3;YbA>MHoX2XFInDnS|AAlTH;VmooT9F&BI3VI`17v z8R_zQJpMr&K`QfyM@0-Z51+~Am&{?(vwv{;d?sWHA&{i;`H5x(CT~wLjEEvWU?LLp z4|~7b^|#E#JH6c;Eaq|Yw|W3jSr8KD+e|a6)Y=RHoE(#GamVQ zR+IACDp6WIVNYsh!UPT3eF=v#T0>Pg@Aum-C&f-QOI*0oj!UyuFBUXPb@MYl(toRB zXBJ%ujjL1Si?qeLqa`Up&q1zoic0-so3Z3z z!%LWP6xg)54h1;oR+S1Cl1h*&keX?tHqEr?;Uu}1Be}Nb*iO-kw4p^7jenkj$nCT? zOIpo2p9_P)+)rOYpqPT986c)+d>M?eP)rg`!z7YJ6HgT9Njb+U$Jh#JO00RmEJ(niLwGc-R&B`QN5I%d%`n#vDGl$MFE%?hKLD>mj;x@tCRlO%#8 zAP5Sk)2M?iA|`@hnSwso_dz-|`%kp{&Hn@FecAWAlX_Dh5A!=qig*6^X-ahyFjQB) zlc-Z6f95x5IXZGt(n%#HQl&{%DWDz@U>SobcfsKc>vK>!zGs8V^>gVr;8R4g5irD4 z6u}fp1Ozk@6CTXi-_8?o-P>3A7Q?m~iHA;$OhnR5MG#bP?Yi*wx;5A5f9r-C+g^6eVNfVUN7VsCFldDx)F2}c z>92hi-tPkhDH&fh(l%+ic9AknOvFUcMAK0u$tNVIeOA+_I*M|fK35l%fF9Qr)%|09_5 z876-oOrjzPn3!RSC}Id^dQ`>4o>7%E?2Iw*nCJ2^GE#zyW|^3S?*R7tHGYq)!M$2w6RImr@HN>iMt7bvA2e>uyM(}gEV9WF;jDakp~b;?3ypcA{@>EYOP zrw5581WXbU5l1MTa#1-=t;pu?_n+q%9{c%UviwQwxcC2}`9s^ELdzC#r|%yX?Q%jS z1lx9Jr^@+nJ0&r0&c(;vHC7+r_$f0m1wPp|gGWsI@P+)A7!-nNHj`kJwoHu~4u7{)pl zd1%}@s@uyuK8e!*o;gKKcJ1{Z)!#!>wpa4?tHS3J(`&J&43sUvr=VqpA1l3Yng0+==eS1>lE5AMY?fgOWu>t-=e}-zOpx;FSYH>&nO`ev__#?f4yGtE7Ze~ zltyX~f4%{;gSElPuVc7JuY;79WIUXs%7k&&kPcVu>_w9d9~Du{$HWQUDEBy3Y$|{s zVrItsY{LoGvzi=x6Cp;5glWN7E}S`UI89Y*C?svX-&3KDxo@qLUh43cnqfS!qFrst zmWXS!i@%>-yEN@>OUaGXf318vFU}VY*3$M(#|-h>+JxF2E{k+#+=XMi8@X!Pe&J-3s9gS;S86-pFR#59Eyxh@Et z;`;)~=#V1edh*;*f3p_}L|!cOY~DK$D`>(dDNdyB6O@jWsHN_EyDpQssJQ7R6S@PEMCl~zbECN^iYc$P z#REQ1$@RXc!NB0d5JVIa0Zc^2Of?ZQ(*)Bbko0lTYN;ZVe~yUgq?hw`StoJD7fzkU z(nTj7ByrMoCvtZ=$4Ms_B!ZV5=W<-4bve>eMI1y!6A(m^6CfAX>~rVOgTR^yn5J2h zf?|Y;V4#uvIm!{m_Xl>TQBFu)oSb(glcgQWM4c(rbwwP6sHiERNrIH6D50YBdPBfleoh2L_aVg<(p;Q$aoj zK@!ZV5i-zFG{pKdl95t0g#sLS@zU&~oTn!{qB=@(e=a+UDI-|qQkM`H{|z%7B{pE9 zic(=HX(?g?B%q0CB58;`6NCi_)eB2A5fD&vcS*$&++9Tx7ZnjyANhGUC=tIddoKw} z0+xV@3EYu%Q1erg|2tQj#ciu6ppeO?B&XebkBRDfk?rq$wzao=bKULl`1*YKZ_nNE z_$pAbe~U&W5#7W-Co$|!=0?p1+%YW-Ev>kyI=g#>U?3{aqG9F@-QK8yCsa%fK2TJO zESatWyE-JuL%d{d;(lmy<*cizY zM~0NcFib$$mL(zrgrz7cprxe};^erlj<51N3b^hrqofH$OH9Ba5K;q3Qk00&v=o&3 zNh6RkEdUWQBM_xD1tCf_08mo26d_0y1VGRQDtbNcd|e&>-sgvH`0OMoASN`4&q&FT ze}in6B4@UQM%hL&aK!=w$%08I5TR70Vp;-{ke~`gA`vMHM1MUdO3*YRKs1Q^X+g;b zly9iOa!M$B@&k~>tVp#G0Z6D&jR1Otf?{xgTj3wsKGvUZr4*A9Qn$3D3GR`8dVgeO zZL{V1LKrOkAie#G{1@9tm&5sf;GOzDe|_df{7{jCp-MfaD3h8VWHR9J4d_9WbTfweytqJ*uH^c&r`jPi)+904Zo#QEt;_FH2v=j9-c@;m4wsgT!e!Xz9fVoZ6=W=~f1-6e zQ>Ve1gDxd;;QWcxn!kd1SgOxy)0NIT8S9pluYmk3J}(H$pqGd^2zXDM!o6U(4#8s^(xDTOL!1b?%?O8>gu4A+ z9={I{e~Z4cF5dxn(~ZDHz2y%Ve{Zr4RIrSD!7)y@Fx+!G6Y-=vvhc-ynn`0%6X4o= z^hIoouZ+||_t^gBJR`?nd~nO#t$3<9y>{VR?w0W?5c1`w6x-tOz%8bJEEPFjl9o+Q zd=#g-iLII~;@6vAaw+CiaZHh#u;NM2TQ$bL-55`1+UDco)V`-$w9>Ale;s4;@nLey zbTZ@CAgd-BaC^7a)XwaE(*8dwa1HeH?h?#-&%0T!nvm_R^}HBS>Nt| z&b}Z_Bq*QIkp%pi0LersR44|8DkY(qS_&Ehk|vdHW3#sr2W^nr&f88%r^&}c^126?ae0Hwwm8Yef@em*XV8Ilx4K*{X8|UUx&BlZPBkb zI6&7PoN|sBV}5%zx2MBg0*&C~XAR9&EhX8HUmW3Yd^^MS7KkNF@khf+DfJVvpC57g zBp)BT`p>BEp!4~be|~8XnW;~uLK&4A^{o2DYZHGzrQfWE$Pi>%k_?<;LLg)x!*LbNe5K=6%AXem{C9jFsL&5s_jeCJ%B0<~5J{#DWVLe+-cjdkRV-P!tgcne9DD zl93>TL=+}c5Cz6Y(paJtq6jh||DjV)haLvGXwKZj)ZEsKGcLJ1myUTx`Hn|-FypRf z0D(26YhaTEg%(3uXAsUZO2Ao=uu6)~Nfe@xKtj_)q99T=!~hitYRii7RFMz|R0d!m z<(NnYGkr8)e-qX(gY}F)1jYKRhu-a&7>D)C)QR<;aAFZ2KP6As<>9jMNm3ae`b=dK z4PRtu!V=@r1vyc1+kTDCi-!Fg&YL4+4$G%lxpK8{CP$MecJluxIdjfB=+bIVd6^wG z8oRljaCvfS4$c^KPeh!!bJNB(HPPFKrQgcT*DY}0F>^uH96B?F#tv3MYkYn5@U;bT zk3(5c3yqaM?Po-9mK<{vE*i{_A~{anaVQOl?n9GbU><)gzV%R~5J*2>SsgCCiRXPE zD<9|iICJJ>L}nS$nE_4Y=Z4w?$gw1qi)w~&oHNLjrWjyYzILK8m8`q6N zTrMzk+bDl&d$F7NwVKPP9FBHq!+m4NS?w+2jp}@;IL^GzT3pswDR@t;L!M`JExB}<%8Xh zF_vZqKyr=kqdK#q9-XsOygo&>$1{}h%+|(aTrqzRpXzhg&_2tK3&fPJ|9d((;%@=j zJ)E}EaE(L4+rm&86odgd2{3|_2cD5JH`4VgKzf>Y#Gs}aSR^SvYzO&Jo)|WdA|6xO z17~wf&J(bYMtmD_)6RHC)3oGV``Y=@!?};N=;fh4y6#4!XgXljz3zCOnc1!5QU_hB z4X=L>wA)opJLsg&JoI#V95gppJuv$y=#<;D z0O;t%^5A$u&#MIJlP8=fDB9W`?2}fbZF#yKpzi*gILTXGbCCCLS~2HpXf>IU!g=yN zeRpB;?x^G1rxG3~)DV-qUXi%wI)v}T%67K0w!q=phZ@X=2R?bdr=D;_)G8^>e@)drx*=Lc-+Ugf_=8&2IhuI3r6N1`~w@rQZd%8r;5v*mgK#2M8TWknaYgAZW?%N^zGXX-%Uc z_co)1oGvo$ws3>PY9HNx;}O(!++pDuM>)t3%Y&{1%ikAy$$Mb$LVuGBxxQuGvL5DT zCec7=JbL52|6A;T{Qb`1#uJqCwH*|Cd+W;EtFK@UOUfOmlsicF+@OEnG7^eHju7}D z%Y<*_;lo%5D_7ua4l;SO%0}R4s}AsOZ4ZiGF{mnoazN)Ihz$7=?*lXXgaFzfE&7z_ zu!I0U(l3(wtui$_h14tACR^quag&UNC&cB<(DRNmCkZPgc9S4CfO_L2y9vFhLnC+? zj(ZrM<_DAyj$P;ccyfOZQg-{CL!1vHLn9>KTcdqso5*){i9ted4xutO<&-(BcZvhh z)(-Kvdl2C%%#wp?$gboesVj^sZGKi|JsV;h!h5(5h&Xe@Cyv>-hXdKjcO-ej?>Q%t z%Y6afE{Ngh;10<*o#iskU~eNrZ6C$9jYEIR2ge$hR~Rnt3$$>9 zB9pVL1mPxHyKbl*;*JnKT=k$l$PS4^HGn5ny-}!WD0o1eA>%4{rRT#RS`NEVaDXyB zU$gv;ggkz>90U6xf4Bs$XpdL+2lMQ9t+O%i;fH=s*-qqSiM-?iz15hBybr>G@;G27 z@EiEC4M=S!@Z^6SX0teT{#9(EMMS^mdf!`lzwg~9I!ydLm;F!zJp z4%Cxn&8Z&lTM;6MQs#du!MX8b-rDC91S%@K!hG_+!R-%RKRHg-)1X4)^QK$$injtjY zk=oXhHglI|wU$h^f18-hRv691w%ZKFw`vH9Nx7+Rfl?_bl%hhxj&+*Z+goX-)Df1= z#}-YEmf4m#ovvm>kf5$^W*AAB;)d3saKI|e`)H9uDMnwh@uMWVp1Vl zbA-Y|&f9Wk)@5yJq|{SHE7d~Ki716t*G+3Sw_`%qCdVdBZ5GVUXlBziwAx!vF(Aym z$TKfQRZJw!Qw*}aLX=d}B~Lsmvv4ysS0ZM{cI;DH)}2F1yJlpK%&#vcaz!dNeXq5S zUW!?^n#qD%e@J&No3lpkuz|MCiMu9lBo<~Z+R>7B!ijBcj5gC)({{qqj>u6Qw%vu6 z;l|9HP+L1UZZ^@J%PBG0G}*KpW0vN&(@RnrCMIDDtGbyUrj=197G@fis)i`8sFfaJ zxfP-ju2M!3fd!$WB5sRm%`)3$vdB%P3Q3%$$yH5Kf6`S)BgsJ%4Fru53ed}PD6}<0 zR96-zmeDj?(an&=(b-X|6hx{@?vduACQ)LuOGKb<$284sX}2~uB93e}TFhF^TV@AY zyDVXxw-Fr4qqN3bvo)=)WbB+K=CNuz-8D6&ayHqMHrYE`9j1Z{bwoF<-pM%i-p2N5 z0iR~^e;^(pc1!u$Q2Mx2XxcdZY*95ENHs#N75WYUXNg)}7u$h4;zOgLeX(3Am|KqUxp zka84h53ih>3W*&`j|l-VokBaAlu#kGi0uNpe^r4tlyVU$7qURwLtL;!C1@0B6s1r% zlrjM+3KS_2C{rZ>$U=gYC0X~qJamZd0<1t#MAJ+6vW7?j!W@9*IW&%}lqp7#43ruZ zBuWr<0_3FwRHZ0V1r&uKlB|gGvPOiYN)ZZOr7{{7dSG%CH2@hU4GPk!N`(MWh!U() ze}?|^6?Gs`v;`}QcAL986!gEiArRk>J36_ zLm?c1$PX$PQiG@|S0SVWBv&OeP{mpxf5^!b{P{%5XbNZsfT5y+KFj$Si>O*u;|~c3 zQXxVm6akV@0gAHZpiq>cQYk=CCIB3@ng@&yphA(QLV=(Pe?h_! z43kQ+lF|(!O_-S=IV!A6D=V_Hymi-SRCjQWsa8?QLV}f}APk(T1;`MgLV$5rT!G01 z$V`TjGE#s8(traYT2Rug0AVRW(zK~SwL-ZHQc^7lqG$2T(NG%|C!sMZ-OqD30N>YSMP>4d6C~3u6A7z+zxK?*?05|V%^QOhLAN^(|^q{&)bfpJy=$xz4)goqN9h)NO31#${n0)S~kfN@tb zi3W;F1f>R+vJeb_GDLC{B~n#{9EN}z5Gacz$y!o}AqQZ3UEj-s;Gnv}V5w4qrb?1Y^6E>1f`XDs zK|y_j!9WWo159aGSgVS%0V1TUARl20xT^}iWPoj@TvbQ{P$eXi>p;_>%XnB5C4$f{ zps-X5loqgA1hs<5B?Sel1=j_TN(wj`t6p%@py<uH)}#E0KfDCb$kidMgn(1HCWqn#P!WL$dW3R?7!c*h0wEO^g)KmWvNOylklT&S z!K)HjHzKV z_!TytE&pG^fAsF_JuVE^<@a_{NjOy`lV$newckl3&eQn*SCzEl2Da_i%dm~y@%Gyf zBe1*aSHL8n0#JO-#^<8u?Nwbh{dKIq?Zy;=;zK||;ZTo+NK3uqL@yJ<5QG`NQwM9e z*8R`J-~NxM`um+s--GsW^5M)-YczK8cb$fRKicN#I5zqy&q*fkgS&%alU^TO`P>zL zcq!e0P@pNG5|yP(qM|BJ=;N=%J0j>f=hi#lLN zQByY5uvrK8mSUgWW;~TB%lzoFUqafG8&v654;`ZYE%Z9pUST!$iods2P`PfuLHSfK zta9Aor?Gm|4?;no)&rqynz^dUl)95cawQhq3M!xKxbcO>p-^p9)D~t8OZyN0x^ z53%nxi&K~HAP=%0ko1qb9_)xkA^{J&0w6x>d&qz22~_qeiZ-r#l@!=jP1~XKQ)Qu4uj8J@ z(vC)fF01QhSKiuMG~2@TPB-Bzj$ubn$d06&-o@(KPFsOp-F%xDT-ai{opwOZ?3vYL zFJ=^(wu$oII%-vu=c=nK%a^~MmnG|kM!B%#;DXN%=2vi4NMCM>YpPbiK7X^yk$=xt z%}mx3g73}Bz6p6z*|y{FkT&h^HBDxj`Jnmr^6eF=XE3`iwih=bVTH5#{(dPWl24D= z^9U>C`aiq&x~x`eM2dBO2zT_;IdzhmnhP;o0)KE1bIhU`8!QqTW|)*HSb`w69=8vVS63=*xZh zo=VLzK@}0HWg>)_%z_w_ttR9(V%!;(B@#TCzswF^Ryp(Kc4o}3(|cI@LnM+&;&$=R z_`QEZ>3BV~WZYH#R}*zwLH?g%EJ-vn{7lh&kvo#F&3?TA|6KfZQ@?-*nd$mj=xX-O z?{8aEn|b_AJ>}|9p>%i4zJIb&h%8iV5D*a%?}d<=bKp+ zS7E3eIV7H_Zo{4rf*oLW!P#dAKS?CZ-S@pGNE}Hdo7+cj_C+V|Ow(UAFnN{!jZq6rR*RUX zb@SioN^(RVja^r=o%%ClKKNaImEzl?HNxs|&6_OuXDECYL2ozEa@9`?^CC+IHvm{@ zkK9L7>Jqgx!zP@-AGrt!F-bj?m@#p&UXfJi@%&#N3*Z7uIXWsAX7J zZJ#z3#szNKlYf3mXEB0&aaWpT_oew$^oWDu z_0P`-m4SMSaOV2lSV>Yl(5^l zD_vDlG}l?RZmvjYv`xAzuGE{Cmo8}J;(*4^Y2VA0oHd6vP}t|ZHf`AMK-MY_OTQCC zS)sYvku%OduSb}`(hu|fY*yb)>LEF0Nw5i9rf#aeDAFhfq%zd9qpXrUc{db7p&qdZ zRDZgFTf`(H1V6vM*AUg83TqSZG_9&XJ4IuurR44ncEG$!Rpcp)>H}2&~fANP;sdtB~*y2lGN(TiY`03AUNpi zj)(~eg5?fVgRi!`L`rzKAS})z@M_w`rDEAaxwA{#V%pdk+YVE0qYDX_ZH<>ks()D{ zZphhVJ!#_Eg;>V5$SRuMZe^oo7~2FccC>A4>~Q!U-QssBamCTa9Z}p}716~7QPJG- zuSaN+*Njf)*$GD=;_7IavP(9h5;dwJlv`yd`HAn+zyH76Kg%B@{^#y7`|f{9cfLP= z{okOJ{?j^q&VomYiwMjXuS%2cK!1U3XWVfpR`-0OfT9@|C-gl^`!FUVQs3zRcj9Y_ z-yi5yqOoINEsv>|%;&sY_gySyi8K;|u4X61x}}Bn)m4(RB^FBno_9>>G-+F}{0gy@ zoiO-5%=qHGXG@(lxf05fijy0yrl)07&9bSMQ}^Yo1=9a}?*gozufJXFWPiU3+mF+7 zTZPVV-^_mVlWK-u>Z5dL!l>mZh9&yyOq-RO;J$r=I7(4US-U= zZ|efruXxfS;1Y~?ZcBJvFC+cwa=lA%&u&>Vad&tYa+E(pC+uS z&6l4UbwEwKnM)pR-3{Bpb84};h_Zz?b1;6l^(C{Nn&{PFIKdEaiOE z%WVS~>(|RT-PBeCv3*CfZOx-7LM~+$^3AP$!Ja0;B9ATB?%du)!tjrwXou1_%6oe zM@-QWqeD`#g3#30H7g!iM+peCBVK%Gd4=y1M4*Mad77D?WTdvtvDsm=V;Pz@n%%b+ z(?Pi0*p}pT1Ai^rHrz`!lUa?2EX>Uu5l&sfFREZ~0$*i$vyJ%xZlbCMBtdPxA$dbg3C^CvoOw|zbQ3+5*B_x+ntIcwu zG>;_^#8Ve?T*|jqT{Y6Baz)Vd(F({gy$nM}n`YU~xPOw{ZAoHCL^4_1Ow*faF{ax~ zak^+~Xr?9=nkYnh5=2eLrZ$Lh4A zLF%Dm8EBDdg zK|K<*yoFUwO)AAi^F>wDS5G%JwA9v4$zm;TNPlA2Ts))*RZ}9ctkq0ICT&FRwQV{= z8DPz%&_U`dMoCm=A{4rLo@=IPwuIVcyH;4h({9;{s#su`sk&H78YGrPo|qw%nv$d> zq9PcWWN~e5TP@n#8#ryHnFKu4&B(+^jbX1VEVE`nNZZrhO< z(}}jq*}E8778|Lmq)A2-q9c|XLY8*Y+aqFTX_&KS!eTpN({}7zX_}BVwnZ>JD9}k2 z5;C(DQX-HtFrySoQ7=%nF;P=gSwz`|S$|cQ994TIUv2!86@5gIPjXZZWF*_@+#Kx% z`;Mn^*YG!M`sr4>Uv=G&hu=?eKFKL$<7y)s<)63cXo|fum!p%*5_gxTCJjTVAyaO5 zLgrE13yGKOs6D5ETvA>y)PXHf%F1byR)u+XT(C39B1)6n|aca_!8%kbBg@jUa=FGW@p;(O3N!S9_OyZ3)h@cx?)uhN%8 z`%Cv-Ug~vLUlTk0(?Uy{o|j>BQ>)3PFPKqr{V3|!>*ceei17ZhhLSh#5&y9NDeh-` znte&v&)5gA!Nd;exy#0Q$w0U7hku*+rvMYHmp3y%7I`v#es^Y|l?v&>;Be3$cq$(> zeq?#xR?52D6@IFGgwohykURfVPaTz_O&H5r>8^^2po(JhIoZwPh$h}WxdqVDZMv^H zS7h^eof8(yyH84bpBvA^MrMpN+W9Io;`x!q$)9XuNpDL!=VqkI>VYTQ`hO`)zyq<4T0X1t6D0G1mH=ImU+!d#&6dt9i7^NuGW#bv5 zE{www1x8?IpnhbV>m-w-=yvrwE2>t`?~{NqzF#KNt<&TVr>Gynr`9o90pEWC_c`!&qi=QLIgV^`!-jaHm+$%&ed+q+r+t(T zuAW?X+d6f|+gc3Ur#rt8I`nj^@5|);Z{R)%B9GPl50w(FPwU6DIS+fb(e;|{9q*_; zrrdfCech4s!{I}Z`d&sBbawqu`Q)fjiz$LxO`@O!{MvGYRw zf6MRmc_vi7v>#4MWGUW+gjVoszp%s= z5t77YSdl&m#Vv|z9N$rB@D+<=2u``$A|J+4{$)NHA5^qTx@DlhiPPIPlm8M%Kc>^M zia%oS=1L=G1M{3H2*!V3;@*vc{DYc!HFi+xrYszoer$~~vaFS)<1^IAsx6)wt1vth z2s`m7^hJah%KJ0YCvEh`X;le9%@q7g{*|Vv1-x$z26`oir%{|5u$IrvwN(Gn`hVKX z9;+^WtAKu-L#cvh`P$=u=0)h5R#v%6#RicV+4;jHAoZWkeMx`%KT66UU0Y($7vM(> z6veOWr`h{P(FP~l68*2ZA9wGE-vK|mfFbw9ce~@)6*vp1l_6yRC zv$UnzpN_7$OmEp0%1@gg)WW17r_E@uM%`sS1r~m8o|%6DKiB^E{*U?oxOb!$1fN-< zC)N13zM%ZgY@Y#ypL7@};dHxwiYgy(qmS1+02##j-nzR08=Q}yrCxdq>`q;TPU()6)5jedp)%u}LO|Bec0Lb16#yHpm}*YfDMSQl}e;wB9=gX z0D*td0zZ7jd>VjtXB`E8Y)wI#W;ujZYsh1y30idu!Vre6>d54P=+T{VdnPspY{8b> zfFzPhIK$H*0ZAm1em=(9RrK<=9JH(Ok6Y|L-_-lhtJkgZdOEL*9RmjwTz&8M{8q3D z|9@{!AACi@0(6Z4bjQqLA$k4&GXnx5IwgMqzyJV0Y)Gs4>YR>I*mxmd25*|+tC`OZ z1RE;ndwUJG06Bc$7#Yd$oxfTjeP@&R-$U%b8*Uw*P=pfE`T)SjOtZ7pG5`Qf_{Jyp z=VY>40|1Qx03rrejFX=qK=CM{<3o=2D#a!REA*cu-FuyS+kC5DuKw&#r@{hh;Uj-v zgh?dn6fX>(8D*G=q>QFufN+Z1(W*%#lePdmd{&G0xVaL6wX~@d^`&usyTmlcR=TJpROj5i%&**mbeXhePw~Kf!G}#r>tKK z>BY&Kdls4bCeK?m8rh}YbspzU)l7{j%{3YoCWh8P{T(p;fV?(=tqycM@Xie_o|ao} zGC<0qSJL);4FD0q)E>pT^3Dpmw~x!?7q81f^#2>~y+1wauWj79b3W?#TbX~~@{U^L z-c|TU9+Z6`--Y1jN_mH#6p#?dZ$PW?cRN>G2JLrhCW3rj9KIuZ(sUYfGv^xA|Xrc{@Dh^^@xY0h>52Oca-sZ$RNZs204lD3nBT{)JT6lfTEqr?|zC~ zJua1KM<}V&#luADy){t`pT#%t%L)|5kR^4{%6~=Qs>J(D?^r*mqxd1>bZWnm)2RI*86KhgAo4OeUSTd2$^tw zpSGd{5EC9=&wqa|{?>jT=ViPgEK}5=>vdnm-VmFKymP1-IuC!ZJk%PcY`x9~alx|p z5BB(>d}{33#~Ir-^UYhYI=J040)uS;GaG7COMfN?c*42y%f&70lwVsPHxoD^JSRK5 z`|FS4*+jfp+X+Kf+p=33YH=ynhhqOEWeWxCdUV28idLH*zd#{ZOACJU1 z>keH-&u5I)-!ofw^jmH-(jDbqDEVJI>IGkaD*s*)N1UQ* z#)N-VEwF3cp+`j{Vu#L2ahNP}wl`{f$lnw`L z-tTU=!k=JI+axuZEPNyGtO*LeJ?~-A{2cZgRgDArZoYmpa><+Q!1oF3dM+wr1KTLDYjlB?Ax?mSK?7Q31urit*kKoJr0iIafSLps3{7 z!`qyb({ib3)YG(~oRot|sy5VK=b!G&Cs)dtZKX25D@yCdOzT!e$PfO7A_g;$qe7<9 zMAQLj`Gw|df+#{E5nCQc4O@+}e@PiI|GaGZg~^7JB!;j_m`X_%=*eb8(Ejv>46DPS zN5k@_mr&`GYLLT8)T#@|Em2To0nso)2&(KvC>r@WHlKRFtrWQVk_f1uLW*-h!GQ#0 zXo}2F(15@oBLi-$D-?#jLG(zrS!Nbw3=$FrqZDAqfn~6n1jp!|mBw2He-Mq4iOskh z29S|Ks96O!=EzSdKu|*KUM2Yyf<<{GLmxe8g0>+M#)$zWK}jHc5Z@|AF-`U{`S6_r7#exBP~;J-@;+BN;`EE2V7k6^r6T!SPF+!RnQZP?=xvZGrhwISYZ{kC)Y^1Z zub@yJOP)W0mcb>be+VX8;rZtpt%YZGb-t#H=nTJ%LiXW~TfZhx(>pP`nn&c1z)ZtI zPiu3(Ez2nWGn-2-mfBslm8ZQ@*%E*ijFw2EC z=kjZY9fDpH{WbkWSIP2FqiyA1wF3`M;83lvYO-0$@2Ny(?fc*&2tY$2eBSx{;q&Y6 z?(uSRa&?V+e5&E&cN!SV?rvB)e2LxGOlzDyo-WGRDx;Eadu!QVxK?{DSk~uI6W78f zs5hO?WkX#Ye|amlOst6IriRtdkl8g?<%2U*+n5$McbJ^2b&583_)+Y1Mf2Wp<=+pDm6J2a>4mcM-!tQGM z>DAHeXUf-2+Oy)HpVnl(`D$FU{94t7c(=d3mL>uFpV;UClj8ZhVde7HbXEj@RjF(c zVtE06TaAE+(>teKg|UJ52GrghqU~E z${zRVfBsMo-}4_gyH8WRgg(N9xI;21kwNUJa78dwY!>$W=J+f(%sYL~=z-~VbR0X+ zSZzXIUWGEsD305AClWyrTD^VMF#{~DofkvU-<^`xX?^u~L3UiW$z}5Dod(=Ip!xym z2R0rkbK%g3y*MHGLFI@0gN`29T6AIMho&EJe?0K1=!bqE7J6Z(9_V|a^+WjK_XG38 z?g!itFh7(VEzog;*A0)L9=!RXL3gYkl=MT>540IC3w*%zLjPPcPnZ{ap@*~|jvDV+ zJy73<_%EL#cRwD}vhF4Qw(lo(UCsA36okgC+3v62^Lm&*-?smQ)$loufydwXBkuf_ zfBVLM_q`rpo9Tf7fUE6>RI65rHraE|o!R(v-Z!D%Dn5l2J9bqWyD;lIpi0`&3p2}} z8nI`QC#fRX9&o8N?b*tiBB_R@2^YF}sg`Dpmn*C?lEz(ikLsRznR~-!edwoGkr~Nq zsC9DcEAHlxB1t?&t0USIJ3~DyJ<2Ndf15aVlPzH-LPT8)P{fNOCp1;i$f7B1^|umY zjA(6|S=g5{4Fc3fYFzTm zVPhHXgKeji5tj{CayoNGQd1H;DO0mssFKEYV%AM!Rx1Www(KKeD^rsuTFa}Af3?FI zZELevOlqpxT-9h@5a?1dj5Mn1(Q|7#v5k^NB}_&laHiJUSi)MKU1YXPO`K6S&fAk2 zhO1@h9m}1?imtltrBGJvi8#RxhPw#1*q*Soj@qHpqe-)-OiE7d&s7<16(M4TDrmPQU zMcJfVwv7f%CDwFnvT3D=f0Jt1&fQqoHI0SP?J~-uGbBW3D<*c+lEf(1fi@ksc8p~f z!?d-!CsU(3b&Sq4Hm6`_OE#;qGh*8gbB8fimdTfF&8%&vlF*gcR)V& zBhE3hX3R;AZLZ#Ux zwVSrZ8Q2|cN@|4@8?&LQ7OrIfE#u(S5VDieK4RwAY~gHSi(_qC+MMgLmWO7sHPME4 zO$m)F8(3-F*6Cux$gWMcbS-N#+dD#;FuNnGXPj2p#LNRe~L7cHHK|=%;Z)Zb(%0K zooJJFvki@!S>2S;w4!X|M9F4sI#sbSn^tx(rCVT1O4}MX3^Fqk$*|?nmNt?pZHr+> z(q}HAZIaSjrWHpHQMxwHtnC|PTWO&kjbi0Ak%@9rO4f@yBSxW(m4P(HY~*Ca8FMX& z$!*J8B--1ne@Zo5T|}BhwFsHc*#w!Kn(UC1gkZa3G)8Q>!l@9u8FpJXdMqnD7LuE` zw<%oc#LEobtle5Yr|3_f_wDQtcVEC>^83t%zbcfmC1g>KU<@0S9;yu_SP85f@|gUj zQp*>U{#N`V3MhX{BBH#H%l^mS|4;qnee#dS{9H6`e}+y>e;W}cpMGL~mJp!#$NyenSM-zmw^|`h zM>@Zdf`&ZhMx4FI8|oOG;_$wCf5R3LuGL<73nOCWRKLb)=a!2vp3Ij=3EViv)1>$< zPL{k&e`2!>5`vkj%CwMLw5HbtMpdI=bcc2V@J&1N|tTSfvpOf7rV$-17~ z@bvA&+V;J*SQKGDS2l;TYmpN;KVak`@9U70a)lajM+6p+`0KR{=z~}7YBMke*gdpJ~0UdWB@5rgg-I_$O=Y;q>7e;CD*Y# zPUEABKuQF3gn3z%T#}}#9d1rpMyMNGLPl3-V2zMy(5w#DwVq9DE*@KKu0)U_m4J8EuOH4sP($Z5eEx4fQe@O2Z zLx4{5ZdvSxT9xEn+>q57lWVbz^_nXq4mMY#+J7AQQ~l}Zv-lr)`p8$WJ(cX1c9GlR z6b~8_NMb%Q4;cvfg7FtNGRZItl^^+3+&~=7vmjPW-Q)hJuBbQ@M@Gq-2=g z0ywBMxd{t7m=NdMgkn<>Mq!LsJCFN+)j0!nf4T4f>HqFLANq{OKoJ2Fe*qyP7m58E zf154O(WFP8(2@H?4l^$zNDzK!zrvXN$6&|qp9}F_L&a2yBlCY|g+BQz$r*jO*lYEY z`k}BRG4Zq7axK2f)PL@3WJD@SKiySG46dPrL#6)?SdlG1vh)Sm&t+1-3lqz8EtkkP zs+%2NS<1>irqugd%U!b|e_F`W>`vRq1}(9yCpTom?@N66-f_o2G}5}mK8f=CPNR#N zH!#Y~sb0sfP@7{cCoSOZTXP+{vcVx7ZbzK{m=1?frCVZiDr;Cl7T{F&XR?R%tVKvc?Y0D zh5~8P(ac7G;TTOzQZqKJ0YeyHxkhR^^jRZSf{XYgfsmV)M5} zdab6a?&?a;FxtaLTk{=sWnRNmv_CSA%878;6A%F zzHI!td2Q}(u6!n_QB`HqZJUdaXZ!AOl0XjF$Pz!`%7D-Se^8W*NE9qo&`u;&L~%ky zchmXjom+Mwpol1^3bfHtU1i3d&b5t=VI0W2Zc`30+1#$GQ7)pwR$RL_b}qW?qcLXH zV0F1#h;nNtn1D?OY0AdSXZ&%+4k&R$iX2elhZH}_#rp1}U*67h zm+dIMV)e#BF(ebqlvC2QQ;mqPIR~9(Adq_?fQRTb0Wddi#32L+k;>iwa-Y+|!@3|| zzikpvV7#jJ`#pnmM3h9OHAdnhMhzN**Cpwe`ur;IJj8IBk;%<Rwm>uS04DKRO7Hnyz zIq*8Dp_48+=8ms;Bnbc$^iWc@5lQX+KcmumT(1X5rReXr_h+TUmn_wXdczVRqjCmg zAq<;!f0p3@7>ua+HZYnUQ1!pnl0g46;{Vs}e|0zzKlu5oOttxs7S4TMXCv@edO4{D zqs&5E5963UUXZ@69(hlRViU!AUt{;XJwZyg(FFV-A_!;5kcypPjGD`qIFn^MP>>k^ zMPN1}(mp>z^VWz6i3Hn7B0wypQUrd9i2R1C4@A$ge{)lu-;6MW^7(!vlkcD!f9`Gh zn@J%O4DW`hOX0EeT$5y>Ql&WjN_`|zmcFWnLGtPhg0;#pqI4p_Y_vX^^M5bnK0Xh| zse`;K9`Kl$tVGn6dRJQ=E1T&OnQelJMK|76DO;8zKXGQz5?h-y)$pksV`8T@;G?K|f38po?C|=%OT#f;_}c6Jp#iG zGwMDUQ?IsvPBoHwT3l{KoL(GWb28cI~P>nGk@7Or0m;Bk-5>`Su9% zYb|^ozS6pS70B(JDqmgvyp2wU_LWBvwo<8&S4}8E3Q3RV=yjEH8#-b)+bq!Tv6S#C zG+Nk?40uuPqg>fxiKPyNf8xc{h4JRKlH+QqRA;WBpQA$ZUkhej*k#Gjor69r$z~Yk zIA3N*)O?w>6jR9h9C?X@`B#3I#XlGt`ATr$~4dl0>v+RaVcEoSEG5tlaWJs7eT2^pgf zjR?6_KFPfJH@FWGe^I1LQi=*jl9-mNkf#(;6iFO+i!W01b>mG*FG@EmWOa^3t2ynq z+Kmu^2@r@7nVAuo5fMmI7XOUP(BSLeSA@WtYf8v?C7)i)vE~z@8P5Ab=?d zZd`-x&pgu*gXUTC5Q;xCN}_$Yv_0LP=FfAlN84|{-kw}HfA*X=_PcZT4^Nk-g0ETY z-Wyxj6vADnC_t{PwQ4L+R@P?9)Fpz(O`!pkMw8Tv1lznS(W4y%CuUs;i_BRXfJDq6 zo&yZ-ULmaC4QOzKgd8B@2YwysY*({53hz}jvTbc{yC?v(>`M;T*;_Sfhgw)A z*=2`WSsBsNM_FdJZC#Z)({ZjU(#wj{EUPfO&XS6=ZKWMy8P?mIahah^ZO%EGDhaGF z9}7X5374KKC#nVDQ0j)dd#G-gpXj?{z;A>Fb zt1)a;R82!&B8N)zM5wdFb~0m4YZ;8Qg))xZV_8RMIgk;Un{GN;w1%;BwXxA8bF$hs ztk|k<5*lP`R28eK79omNI%yV(CaM>jl2K-WlV+tPf6>^PB$6Ug>VYJwN)(z^xkZH{ zsuHRxE1Q)RWol)Ls;8zQgi`9^xRylQSvJ!)T47iMwPO*KTIL$)go>qEqL8kb!ee4~ z?AbeGw{q33+cYq-oLQ~2a&3gvITj4mO)wbN*4su%$w}#&Xr5=G<`QY?qJ>*)W0u0) z$uyL6f3(w0gF+Q`BumV(0|=u$^+`c=QY?=VJrvN0jL$U{QBpl33RFC*i*!v7ArkZ@ zP^m)H#3ZoQ(8_7EZDvF{YFjpO+noYJw6{c56rx2XDNMs4%}dcr$rB7*+&5Px&01?R zHq)`4t;yR#gKe3)+fCSK2FZ&+mT@)_iIw7se~Xx+6p~0Lp~bTkYfDCoOd1`wanLo) zs9aR?MGBCk3rkwfn{AwIm~E0x4X{H^)Duc9RmBZ*y;mbk)j||f)h*OZA}p~_B9s)= z%&SC9({xdDEJ6&*Q*+YST+*;lJu;_JG&GY{)YR0i2}LTTD2QUqYe{W}noDMFnqpR= zf2rh#R3fFDm#!8Bw#hqXFxZTXHnPJe+S=8IVV${XWsX_5EQJ(Iwb2Z#%PfKtG(ydl znPYOBHIo@*Hqx4rDqd!$DjH&hC{~IVHnUA>K}OxXZrd@UJ8NONM%x-TG9pfF+jd8( zn51f@MImIQrJkh~Brd307Llolsz|Dne_3iZk~>Yb%v#2bHJOZCPMc)Ymclc1Y|9O@ z+e2D5wr~L1Xl#hA%P2DnD;o^*{J%{155dFJ_J08Mw%>=r+lG6R-!+DOPG1K2HNPC; z@U9;S>FPOMeDl=*lkksA>CfOwBAgzdApB|kAKm=NeB})kKQi6$?D+DF#CZF@e`eV-ks6U(7h0ZkKdS0X30E{!LMQ+XCOaDSePLN4{p+Yu!oue{xjR{0A-RE$^|EmF%ti|4ua37X-PN_I^0VmfW9C zSx4-`Ycs>&Y@?dUKkY+IxuE5b)Pass+`+eg;XQSZOBWjGZsfa#7lB%CvBB|aCR-NJ zgZ8Wn9L%si)S!y$-C(zCMz4}91zYiVs+(@M(+Pg0|0LM~j(h&3|2Ko?e~O3{P)ep$ zo)G!oCZXj&p2hO>b36u00Xj&eE|Kv7kA(bwG%#0<6oP92;OviYXLp0Ln&j>Bvw)gn z!tB9dt$e86e4M8~#;avKJ*dr01CS@NYL%Rm*v7PtytY@wxJ(Gg;oR*rCF6BiW!Uh9 z@w+29>8*s|pN`Fv+jGu+e-EfCp2qNsvo4FR((^fR3uc83b^RGgA8$7`%A1N2 zqA#0;douCcrhZZ8E=W6OwjBXdR~a$G0bRd!r|Ke+Ym?Jz@2ndJ=hs zEhw}_N)dg)_usSJ909^oC1@y8Afct0swoI@%11@Ya0d~6jh!FsWc58GC6lr)G^oT# znX4+Tabh=YrBPNBwhNsAiV!=V!EZE7&I$r);F^yJlUc1ukO8Y-NOtC1^9 zeRhNZ>?Z>7F92L|f6!EwanMyKA=Jn!DtMg=qsWehowh`FtvM{Q)3g~QV;eg{mER5Q zPT?QVr6mP?&&2IK|C8eC+byu$FK_a;`50_lY<#bkynsF-VG^uC@hFeQB{}JgXc{Pq zAsR}lzyA0E{cbJJ0PP5Q2amJ_09<53eYJO#9fLNwO=Qnte>=+U!dI?1P6n45swCmP z6^2X}(g9^^exTaZI+YIgW+;m|I5v=8LALE%W(@%X+tL~X9Qcr?j8-bqrFqGvm1qoE zxQ&Vjla?wrrkx1L$0^xzq zA}6R%Ld4brf1=b$Ar_#XYS>B^FqF9nH0mHgISdeW1ZA38W)>fiH~;#2-&^#5eeZyO zgUDa^Kjshmp`6G@LnZw$F+7$L{86)!XU8q1KCJR zGRcv;&u)dT^mDEJp98_2S^I6#cw2osTDBF_VGx zI<@qlf0D^|pxO4ayQYlvWylj(3ga1J(=sj%mn5w5uA6YIyk+9@y3Qi<*9=YkkK_swTOp)RGuo=Y~wY>Zu?5> z?-SX@m$?eraA3j9RhX=I?B83OnWe8C7lynP`)pMSuFYzy5ja*m`QutuHk8JDaKikw z?K6u;%eNex0)48Fe-s=?W%>1I6foIFUbd_j`d_O(d9q{&aaXS2EZe-B4-7zGgsESQ zFt0L)F2*x4*T=3ref!t(^Y%U$!uoYkKbHUj5EO+`1QT_{Im78Uc9%WFS~?&i^OL8o zIDZaZd{?*IVol&yfKrC28Wx7AC^))0?9L7@0*gDf>Tf(GmM5yuK^qR0&o*&1mbjMD zjGbi3P&yq%k$+R&IPUJ9r9xDd6;!EC*f@d24j^#@9 zDmcR( z&>EB4Qlu@h+A{bxWs>pCIz%;NoWX;o3sW#sF<|#FP_*hs23D&!hiO)crA29KHGk!u zes26PFNa?)_2Twj&ojHvmsj?Fu~W=NL)p?n`*@)R^Lba+yy)kg#tuVMMXtlox|OL_J1^e2mT+Oeb1X0o_XfH z#SGgup|pFh^U+vDqs8Y4LwY`+Fn?^m9+MI&mK{E~ljoA}*w&d@Tgbznl)YARB+RhB zx2w(PD!<}!pH|w0c6MN5yue8V8f^wyO@zWojKGXrs8FP-ZFwIQ6HCGS_cx$|{F6T# zwTc8+&A6Gwn-@5X*4M4(^n1+f8A4wYKF{SGK?CGI66n3rwooCoP^q%jK7ULKK`+%K zzAF}l5eSdz)D3DAK0fNhO?j4*LO+BXggk>J&q6#;?1!=#)S>n-%qQ=PA+=Oznt_QR z3(_{zD1E~cc_e4@4Uf1zN81)3V55k*icK{c{CxVALXU|dFR$;%YH!8l2>Pl#>1*q# zM1xgm5S(CTa+-o7B*+@TYJU~6%|*0G7a<6e84(c10I#P}_v7$IkL{B`SoZk&t?$J< ze;swE$2lSP)}4&f`kKk(_-k-O;VKrjva_0#EPvcpJMSWd{|0HUx@5&3{C)^O;L&3> zX6X1a{8+0XHdT$R%|=Uaz}vL_7^;mQ9%Fj1`7PRB?e%{4I(1cp@_$a62W;q7rz zscvwM?$s|-Z*Lt?k#ov*rYw#?XHy(;X4jJ%RTfiv!RcRC_e}~naWS?QMqETA<(%Bm zmvG?3f|$%63P4>>TCC$nRO#Kf`eV+nZuC3!g1d>#5|kdu3uHfQH_-8Gul#pvp1s`+S2_T|O7?deiQLk-$0*L&%>^`-q`zJ^(^YaF}V z{QNythB>J8e{A%({BT+BMd|%(mNe*p<{; zBv&S_u$wa?c|Km9UC~uV5#2~}97J~o1;FH82^?}BH-Do-y+oq&Oln2L6@<@K5hWSg zl(wB!ojKnf^ZxJfXB;00g7B>YO%YR7^>Ux#{^!Pcd}d}9;j+&n?|H4kWPW1wD3%IQ zN#*kwoPCs$>oUSfy}bX>bEp| zm`DivGO0;b5o_Zq@?}~|2k;~^1qx87fu`2l1P$Q?+Da)Eq@c+Z$X96q$O3>0P@>j3EeMnVZ4N>KNR0(3 zemVX(Pw@WT?)e@adwsR%ZeFZjFH+;4R&uMxU#QIU(}rBq%u{`|#)j>B$aA zazm0Fkn}^*4JZ8h`R$&w-W3zVY7IQaACALn$i!##N zS!rZtZKbwUCq>9|ZHcv=!tn^qmCDpt6Fj5}l}62OlPxmhIMA~zGE_^|Aqd2x(*##5 z5Uku)Jq(Ohbo8qds>t0kRJ1HLEdwa?btEdY6zfoN8QTWdCEixai5b4b#YVzonmiH>=8b*x5%jg_;sNt$taO5A)L-T8DOnTIMW)|(X>d#o3=@7I@`BwZL1LqjEF-rK%~Po#XVeA(9Jfm z%VloV!yTy`2{TBDw_PBLOHnjMQ3(-k!)-%A?OQu$$+Dp$B_x`gn2CidNfb$mp$Dak zkg8^XnpzR1A)1sSYovu@m`IjN8e(&BjCPt~Eup2bCMqJ9ZiXdZrJ);|LV;$MXqHkG zg-z9>S`>M+mW>IpUAEz4ZHs2L$pbvKRMbRKGbPlpmlG28%S5F-gs}|AEEUyM^3aeX z3lR%d(Nh%q^e`%eu89iSvNde7YYd2KZKQI|xCU@6ZKj!)UO{4b-f~b5$ym&m>iK4bbw!_OyU4hO$d-w9GV|Pb5&F z!#vkfR~I~qM3BnO$WWy%6fltV(Q=GDEo_@~w_wX@lr^^NaFnz)R4oxz(!DY(Qbo+9 zRnnErE5uJdOtEs5W>`!XQBf9I@p%DU%J`5PfPO5B>IjmJLIz1lB`Q!WNR*?fMafo# zVgR5T1f()hat4*!9Dt&LC|VMRklIk7)S8f>9FYQ$42FkjMac>rgvd>yG6A3hmB=y@ zkv~ZTl7LW+1t_0~ll-@L5lR7as!FV??Cz|tvhJ!oDmasbxaL#%pW^<<n+YGIJoE_Xj|uB* zdkQ@sZYAYeB|WpTKf_F(tH(k$J{xY;>aIZ?d7V#f+g?8(Jbw!eP{$xFoi zA0W}{{y!!1=#LMXK}27Wzl>0j*O&YP1;=yx(@M3xUNQcKEHqUueUwb6IjJbTl;{4o zwzu2(Dky^${0aKMf@V~9vc^4`KU(j7j=b%$?;W|xxc7w@t zPTcFO49%_IvCy{14|0#mX03lGf>99+!#vc>57@bgLQ>(|M?z##3)j!w*5#HB~7{%J-U-ZZoT7$ z)LPtmENzeCz$cBLhmzQQ4ZWyHho>tM+mV}^dsZ5 zkd8b=8#wj==+kE~S+H(?=O;8a8b)qf-ObN4!v;5BFmvfl_NckR(5H$?Bwv>e5mhI@ z{r+v^#Q@#{m1ZaTzm`aE2a;w04xlIiL zf-Ap*3erxy$YnU0uPSaDE$_`H+Y4)NaY?zfn_F!KZX(nmX_ov49Kcye5VpLCDAE?? zL0$KllU06YEg*j!IhVVWMLHfm?&oI@W#;u~dtJZ9^8ZimeX67FVuF?`qKy6S0*0X) zDuO1p{J!5D_4ZD8cH7!o@o?6!M{|E?tkK?mpAH*Z;U3aYW_wQtXKs$OtE-nuudVGl z0zLLBJO9VN(RNWyi6cKGArb#FKw3hcilXj2i-@`ohy#C=={g8Wz>xVpqMUZw!l&oU zCKYm}qD@JxGo`BRJFbgPg=x-=%1ZUL>vqOsEHaETC1;puM9d@0n>Se71eV3MxxG5h-a}2T-^Ylo26u9VHwij}WR&%GXY=PDfek4N|VU z9-UyVI|F}cp=N}^0z*bX2l{{W572)D@}7h4$V`M0{^M3L#~4t*!ZA;O4Y7cLg?bZNe|gDSi9bo#fUFL7KogxRIrG$4{!L50)UUkY!N5_ zwpAZWKGjfc^R8Lm*3cl<{?h$8KA8Mo-AV90DJy>sL0h3YTy@b!>$X?9M_}G*g(ZKv zEnXG-lcpa28J&lg=tIW5T}$lqsaE^T$JxO1`SScBk-rAhGGwv<$ATL2=Tea`)979H z9ePfCY|3~!bh>M54?f)U&Qh*_PoWf`(pz;o_dm=g12t=H3JIGQf_PS=@cSws7oq-x z=mCFUKRdjg2#AY8>GBMS9#0t(2!N57kq7kmc!ODY`v@`PF?n@YFjS@L%h-n(3o~S-@>{b-BIubv+z>-rm=xAV4b=heYQI$ z`zFi4+IXis*f_@dNz8TYBknrB6>AK5Ut)i_QkTV-Gd~Wha^qn&OUuITXjEH8He@+R zXbS4oS+($OOTok&VS;3s@33DCqOLL*RywNV$Xek#dUI`t#^~WyjP|!?ld+I+55uX;SJ3}xP(GIQR|U!E2w`Yf(Qm^GACbn1Wc~UIOGlN$~$Y!Vyw9?#Gr=8 zV5P(j6fVYO6U&=6EWu98mldS*F9RuT(;!JCo^Zu^@(Gd*RK;K0pYiRWK-w58NP_w5LJaqNHhJd_^T zDWNE)l1rCvAnF2;kcjq}0OT|!F*Orw08E-956Dy>_$3wgvLH|`Ae4Y*1i zjM$jWyv32)8Omv=mD*!fjVym@lSLEpDdl+i!NEP%al~ZI4fq)o!rpo5rTV86rXBSo>!`~jH3- z1?*?QN~l6n_L!xP5u|(eK^rg_UyF>ax#2P1qhwvqR&R{{Ecog8_UG~!tT9#K*UWP7sWjX7mQ-?g*LYio^MU{gq&6Qmfmw@d` zuL~jKx5OolcxP)S@uv_E2_m>Sm|P5JKQS=DeCjmVf<&DI&>ajzVsmUB9j*Qm<4*T? zkH5vO-RGjz*B4WcUtyizHgH0QJ#L%2Etj(Cx5gss_o+$}SkZs1{bQcWXu9NjPdx9c z>3I0=uFNOG=y2=G>RWpwL~Nm_c~JXx%=ur1F|S-I-%Qgg+-vSW;f_uDlPug;)vp{h zj3(7}72CH6=U*2K^QA$WUmobKHug^WSW&l64rJjDuGIF>b)Ci4ql7kZJFN;eaRq17ZF_?jSN*4G3a`?lkUC$pzVKqTH8Ip9u@7mX8FGjaP&Id zYBFm#w}I(}%_W3gI&THwO_+mlh+-%PtfDI%r>R=Dw!wl%q1!PHvfIxmzffhrCHXN} z=2m=Gpvd-`FomY15gNzf+8VZ-{D{Z zsiY^v~!2OvF= z=c}Wrnp&h;mZF4shm>MPn3IGVcC~{OqRlviIhnR@Wo3-aF(%f8Xh>nM7m*sGlai#B zN*I~DlH{m~gh9GWSZSKJZQFpbH)IM8hAi7|!G>cbX3KVSHZ18($_PnTA*5=l5Q>)J zE}^+pSYo=FUSckoOQ~8Tlkvqbf4Mho3ZxSiT_h7CRl_3FU3E!JLsZo;*F^7Pe+g zWw<4oGgcO6<{M@vu9-%q>LxB>RGAr=sA^&prbsF2qM{;_LZaJCa=~pif3qRAnlrN8 zvdt@N9jzqEHMq^jaOI@hEjww<=BBf5TNqTSqEe_LB#F7EWno>;(8leXt!$EQn>Zs{ zh;3_b+jhy$b9S?qEwdwLMYfX-e^Db*K_raSOv2SXM99rd5j`}Bu}n1dsdUQ;Gssa@0#Pq8 zsPNMw!z`G?Wb9VirK5IF5XngjtkOwITtd~0pf2938Z$(9|2He{1h zYi)|l7TPq+P7v0SFjo{T-6WE&OvwntFGEhY!$r$;YaDB6(q>~7H0foLLLwqAx`s*? z7V0&**3HJZXIY3^)?_O_R^ZB~`LTYi7;Z zEtQg6Ig!@vYa1gnj4pwCV4$Xwg(ylID5xPm?0|9!c11*e)F2D{$r=EpQh}hLq-jEy zlKpNyr5#dSbtOqh6kJqMRpnB0ZCsC4o|H|KO2|8Z<>2M(qNBLFIwPZtkt*?CJHaFn zBW&?#mX_k%d1}!VS4=K3W!80_prO}A`IzKdto(1uj^y9I{9PZAZM|xZNAG`qt@qxI zWAlG*{~p&ANgUqcTCM!c%gO|PNibs%@=!k1#|coTQ6IrI^ru84;T>2i6xW~fm*Nr< zzh~}$l)%DUmVYnka>WULXF+tSXbnfH-+6zi$-<*}yxsRiS6x;*#P?0e$_X9tLDEV9v^n>G^=X|QU}Yas{eEWb_kO+Gh&O5&MkxYc%WbH1<5^i5mh#zyd-i0-nj zsNoqw@`Ku$euVm~zRZrQM`_7AsE#UI@cOjP9wPeRTC(_BZWWjr{b85lAoyAzKgYfU z^e5E%6Xau0=L14o{)9ky2#3xk^Z_Uc5XXEs`-REB#3!yq4nC%|?5X@JS)*OZv+ebN z^`8*WJ818&4D3@HWuhDFjB0gUJdcNYPI6aQB3H+RC_=6G9nWSJxlZIhDY#s`E(p^+ z7h@s^ta~R&QHqLMVNIoO#6ZjqN^QQL4I1mGR?4l*EGy#L;7%*E+l$vxP04(;7T`Z= z%8rE3xvqWGmoZFRgGlHa#pATBRc?HL*U@aa)g0UXYo*!W&Z}zTx372B;>A(V$zN7I zgyC>ahVi*0mx_XZ%61oQw`khUW{LJhn0h$j)wq)HU!RAgzny%~hvN1AEAj;S5D`U9 zj33U>A%sy*yNKZg{>3}0z=NxfIv(x1tvMk%%DA{XohuVeL{!f~=yhj{E{yMg?{9Ce zU1fN_Cp~TS`SJce$K&f+zazOne-~e8S4L~AKSRk!wgQQODWs-}T9iAQ3_xwWncQX0UU64o5ex z#)H?@Aamo?8>K;9_KO^adQnb)ns$}Fi4NH2+*mYBP*ZPgR7*JvaEEhnK!l8l1Tn_? zZKUuS7n;i#ogZ=Jc_IVzWm{H=x+5^=p@BAe9UT15-MqdYS05gDJURP+IaALjA_y6R ztLTF(yE;jG&g|~vk$>XdWk(T0UC8Nm$;xrT06AAg;_adYL`pV*$qQ|N5kaX$2nGaF zZPc4&LNaZT#S6`ibL;5rGoQ!tBY1_&m8SoHkv$Dqc451BxcO{p-C zvP>KbC7PM>VMH54iXuec$geZ`d*w=`W*>gKuf;hsB0z{q46_Vm#2?2|`*(c~{nrQb zD4p{^PtZGk9|;AdvNIQwnxio1jJ7%s8YN(eEBNJuL?u#*juK!so@7PSI^cmx!RSP({=w{2Pb@Xvt$xRCy9@?@_uKr17aw^u%!OLr13i9S!uE~Z~@RX&+ zH1F3e+43-}4*sftF}i8PEEZ+KqFN%=iWa=|3lCZjG&1F3qmzEZ(Cl_?tBXbXEmb>w zhi4}u*_^p=-Jf?kM=0o(U0(f+0pg=nI@?FeIir6bW2**rFP%%rb56K&X)1VO)t&H{ ze@p4N`F|bz-;h5d3MRg2;5h{~5o~_TPN<1rsMVKnP=`f-(H%J_rrdP}5|5|tc0`>A zQl=syk6`b7ua~b+>W=Ndv4(5q#b(;}ETiS`n%3Lv*wx^AJnoaPm$9AE?!!qE(MVNL zB{a+>RV>R$(Mb?T^wD7wc_HM7k{(ETA+-`a!e#l z5mXd1LGFEjufF!#pIx3SeXP%=AxMk%1&izX7>-wILOA-;_oLtJ%C!R6GpcRrv+73; zF%>cNN(RR)^=^k*Tg%=>t9fcLQ80SKunpl6-UTS}$#`FRfe75Jcr0IV3>4-v?9WlL zGUm&CB{p9u+zo6r00xl>20D2*?8Gp=OSRR!ReU^GK&_x>^$>0T()Nu;CY)Gyx8t_ zot;NlX1D*Sle-i^)U^Z?4J1Pm53|9-LI`GPzOx*LB`A(}BdHQDh)TF{>N-=1bA&}Y zo%sEKb(J2H59Y!O6o?dvQAo6vbQc9j5Jw#(a8&P!**Q)mPDLZVb+SZ{G=&7S6$YJD zVx0QYem_~8I5+zOqkq>xnZYWY;BE0SjoB0>8(iOCq}~BlQ@ee95G0) zFs!Y&|80&D067o=KvSYBI&x0vj_ByJ&frLYoRV~oal}Z1%OjvjqmtWCNn^Zg!D-`i zlImSMU1??7=V;scJ>c{1Ij_znK?n1uec2y#lo_}9xQE?>d44w|SGd@`PnYCWJ^2hF zi?3QKrIBQrGGF38*S?>ZeB$^+=koeYn6@w45Lzim_mmF!9Mo7fC{Jy_6yJr&FRE#O zWvV6(rm=!Q@dVL{*w{V4O}ufI+De;INFKgZFV|)QB=`2fa;1g*=>I4 z(!fxN;Rf^w z^cuQQK|Mkq0QNn6d%nM8x8C*3yWDpFUCQrunu#)_)@%5sg#1A)TMqb3GWdsohqc7J zdsLlcS>Fb_sBt!uN-wmng?Ae1w)m^dMR_Nh{4b#;8+dY1r9Rv(RvdHiLfV%;TB~<^ z*sf;0`?JkH3D}*H)qV*}xQ4uU@@eC(ycXob)sntDPFwdlvkts9%rQ zgj7%wRLxYMxP8d4(;z;$Dd~uNzz5(8{m?1RPH8~_6tMwGQiP&%IYJB9?(@I?F64@E Jp&_D7(-Ow*l3oA+ delta 53546 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≫CnUGq@{TE6@j> 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 a9S%ZKIUJz{>ec0cNV}3L!i0ejTx0;ntBZmF diff --git a/inst/extdata/example1/Input/siteparam.in b/inst/extdata/example1/Input/siteparam.in index 2ac096f7..fb715928 100644 --- a/inst/extdata/example1/Input/siteparam.in +++ b/inst/extdata/example1/Input/siteparam.in @@ -9,7 +9,10 @@ #---- Soil water content initialization, minimum, and wet condition --1.0 # swc_min : cm/cm if 0 - <1.0, -bars if >= 1.0.; if < 0. then estimate residual water content for each layer +-1.0 # swc_min : cm/cm if 0 - <1.0, + # -bars if >= 1.0.; + # if < 0. then estimate residual water content for each layer + # (from realistic SWP limit, or Rawls et al. 1985) 15.0 # swc_init: cm/cm if < 1.0, -bars if >= 1.0. 15.0 # swc_wet : cm/cm if < 1.0, -bars if >= 1.0. @@ -87,25 +90,23 @@ RCP85 #--- Soil water retention curve (SWRC) ------ # # Implemented options (`swrc_name`/`pdf_name`, see `swrc2str[]`/`pdf2str[]`): -# - pdf_name = "NoPDF": SWRC parameters from input file "swrc_params.in" -# - swrc_name = "Campbell1974": (Campbell 1974) -# * pdf_name = "Cosby1984AndOthers": PDFs by Cosby et al. 1984 -# (but `swc_sat` by Saxton et al. 2006, -# `swc_min` by user input, realistic SWP limit, or Rawls et al. 1985) -# * pdf_name = "Cosby1984": PDFs by Cosby et al. 1984 -# - swrc_name = "vanGenuchten1980": van Genuchten-Mualem (van Genuchten 1980) -# * pdf_name = "Rosetta3": not implemented in C (but see rSOILWAT2) -## - swrc_name = "BrooksCorey1964": (Brooks and Corey 1964) -## * pdf_name: currently, no implemented PDF -## - swrc_name = "Brunswick": (Weber et al. 2019) -## * pdf_name: currently, no implemented PDF -# - swrc_name = "FXW": (Fredlund and Xing 1994, Wang et al. 2018) -# * pdf_name: "neuroFX2021": not implemented PDF in C (but see rSOILWAT2) +# - pdf_name = : SWRC parameters must be provided via "swrc_params.in" +# - swrc_name = "Campbell1974" (Campbell 1974) +# * pdf_name = "Cosby1984AndOthers" (Cosby et al. 1984 but `swc_sat` by Saxton et al. 2006) +# * pdf_name = "Cosby1984" (Cosby et al. 1984) +# - swrc_name = "vanGenuchten1980" (van Genuchten 1980) +# - swrc_name = "FXW" (Fredlund and Xing 1994, Wang et al. 2018) # # Note: option "Campbell1974"/"Cosby1984AndOthers" was hard-coded < v7.0.0 -# -Campbell1974 # Select one of the implemented SWRCs -Cosby1984AndOthers # Select one of the implemented PDFs (or "NoPDF") +# Note: `rSOILWAT2` may implement additional PDFs + +Campbell1974 # Specify soil water retention curve +Cosby1984AndOthers # Specify pedotransfer function + # (if not implemented, then provide SWRC parameters via "swrc_params.in") + +0 # Has SWRC parameters (see `has_swrcp`)? + # 0: Estimate with specified pedotransfer function + # 1: Use values from "swrc_params.in" #---- Transpiration regions diff --git a/inst/extdata/example1/Input/swrc_params.in b/inst/extdata/example1/Input/swrc_params.in index d9003860..f05fb9e0 100644 --- a/inst/extdata/example1/Input/swrc_params.in +++ b/inst/extdata/example1/Input/swrc_params.in @@ -6,7 +6,7 @@ # selected SWRC (see `siteparam.in`) # - unused columns are ignored (if selected SWRC uses fewer than 6 parameters) -# swrc = "Campbell1974" (default values below) +# swrc = "Campbell1974" (default values below, from "Cosby1984") # * param1 = air-entry suction [cm] # * param2 = saturated volumetric water content for the matric component [cm/cm] # * param3 = b, slope of the linear log-log retention curve [-] diff --git a/inst/extdata/example1/Input/swrc_params_FXW.in b/inst/extdata/example1/Input/swrc_params_FXW.in index 8d916e14..7f1bc8df 100644 --- a/inst/extdata/example1/Input/swrc_params_FXW.in +++ b/inst/extdata/example1/Input/swrc_params_FXW.in @@ -6,7 +6,7 @@ # selected SWRC (see `siteparam.in`) # - unused columns are ignored (if selected SWRC uses fewer than 6 parameters) -# swrc = "FXW" +# swrc = "FXW" (values below, from "neuroFX2021") # * param1 = saturated volumetric water content of the matric component [cm/cm] # * param2 = alpha, shape parameter [cm-1] # * param3 = n, shape parameter [-] diff --git a/man/SWRCs.Rd b/man/SWRCs.Rd index d72890c9..97a0ba9d 100644 --- a/man/SWRCs.Rd +++ b/man/SWRCs.Rd @@ -46,6 +46,10 @@ i.e., \code{name} (short for \code{swrc_name}) and \code{swrcp}, or all necessary elements to estimate parameters of a \code{SWRC} given soil parameters, i.e., \code{swrc_name} and \code{pdf_name}.} +\item{fail}{A logical value. +Issue a warning (\code{FALSE}, default) or throw an error (\code{TRUE}) +if request fails.} + \item{verbose}{A logical value. If \code{TRUE}, then display \code{SOILWAT2} internal warnings and other messages.} diff --git a/man/check_SWRC_vs_PDF.Rd b/man/check_SWRC_vs_PDF.Rd new file mode 100644 index 00000000..f53813ab --- /dev/null +++ b/man/check_SWRC_vs_PDF.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{check_SWRC_vs_PDF} +\alias{check_SWRC_vs_PDF} +\title{Check whether PDF and SWRC are compatible and implemented} +\usage{ +check_SWRC_vs_PDF(swrc_name, pdf_name, fail = FALSE) +} +\arguments{ +\item{swrc_name}{An character string or vector. +The selected \code{SWRC} name +(one of \code{\link[=swrc_names]{swrc_names()}}, with default \code{"Campbell1974"}).} + +\item{pdf_name}{An character string or vector. +The selected \code{PDF} name +(one of \code{\link[=pdf_names]{pdf_names()}}, with default \code{"Cosby1984AndOthers"}).} + +\item{fail}{A logical value. +Issue a warning (\code{FALSE}, default) or throw an error (\code{TRUE}) +if request fails.} +} +\value{ +A logical vector. +} +\description{ +Check whether PDF and SWRC are compatible and implemented +} +\examples{ +check_SWRC_vs_PDF("Campbell1974", c("Cosby1984", "Rosetta3")) + +} diff --git a/man/check_pdf_availability.Rd b/man/check_pdf_availability.Rd index 962502bb..f78f0b3f 100644 --- a/man/check_pdf_availability.Rd +++ b/man/check_pdf_availability.Rd @@ -4,19 +4,12 @@ \alias{check_pdf_availability} \title{Check availability of \code{PDFs}} \usage{ -check_pdf_availability( - pdfs = names(pdf_names()), - exclude_NoPDF = FALSE, - verbose = interactive() -) +check_pdf_availability(pdfs = names(pdf_names()), verbose = interactive()) } \arguments{ \item{pdfs}{A character vector. \code{PDF} names to be checked; defaults to \code{\link[=pdf_names]{pdf_names()}}.} -\item{exclude_NoPDF}{A logical value. Consider \code{"NoPDF"} to be -available (\code{FALSE}, default) or unavailable (\code{TRUE}).} - \item{verbose}{A logical value.} } \value{ @@ -32,6 +25,5 @@ live internet connection or access to specific data files. check_pdf_availability() check_pdf_availability("neuroFX2021") check_pdf_availability("nonexistent_PDF") -check_pdf_availability(exclude_NoPDF = TRUE) } diff --git a/man/list_matched_swrcs_pdfs.Rd b/man/list_matched_swrcs_pdfs.Rd index 77d57ed1..e194a158 100644 --- a/man/list_matched_swrcs_pdfs.Rd +++ b/man/list_matched_swrcs_pdfs.Rd @@ -4,7 +4,7 @@ \alias{list_matched_swrcs_pdfs} \title{Matching pairs of implemented \code{SWRCs} and \code{PDFs}} \usage{ -list_matched_swrcs_pdfs(swrc_name) +list_matched_swrcs_pdfs(swrc_name = names(swrc_names())) } \arguments{ \item{swrc_name}{An character string or vector. @@ -18,13 +18,6 @@ row contains a matching pair of \code{SWRC} and \code{PDF} that are implemented. \description{ Matching pairs of implemented \code{SWRCs} and \code{PDFs} } -\section{Details}{ - -The argument \code{swrc_name} is optional. If missing, then all implemented -\code{SWRCs} are listed. -\code{"NoPDF"} is not included in the list. -} - \examples{ # Data frame of SWRC-PDF combinations df_swrc_pdfs <- rSOILWAT2::list_matched_swrcs_pdfs() diff --git a/man/pdf_estimate.Rd b/man/pdf_estimate.Rd index b8c19ec8..53fd8e61 100644 --- a/man/pdf_estimate.Rd +++ b/man/pdf_estimate.Rd @@ -43,8 +43,9 @@ The selected \code{SWRC} name The selected \code{PDF} name (one of \code{\link[=pdf_names]{pdf_names()}}, with default \code{"Cosby1984AndOthers"}).} -\item{fail}{A logical value. If requested \code{PDF} fails, -then issue a warning (\code{FALSE}, default) or throw an error (\code{TRUE}).} +\item{fail}{A logical value. +Issue a warning (\code{FALSE}, default) or throw an error (\code{TRUE}) +if request fails.} \item{...}{Additional parameters passed to selected \code{PDF} function.} } diff --git a/man/pdf_names.Rd b/man/pdf_names.Rd index 396b43ca..4cb64227 100644 --- a/man/pdf_names.Rd +++ b/man/pdf_names.Rd @@ -7,7 +7,7 @@ pdf_names() } \value{ -An integer vector with names of implemented \code{PDFs} +An named integer vector with names of implemented \code{PDFs} } \description{ List Pedotransfer Functions \code{PDFs} diff --git a/man/pdfs_implemented_by_SW2.Rd b/man/pdfs_implemented_by_SW2.Rd new file mode 100644 index 00000000..c26067be --- /dev/null +++ b/man/pdfs_implemented_by_SW2.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdfs_implemented_by_SW2} +\alias{pdfs_implemented_by_SW2} +\title{List PDFs implemented by \code{SOILWAT2}} +\usage{ +pdfs_implemented_by_SW2(names_only = FALSE) +} +\arguments{ +\item{names_only}{A logical value, see \code{return} value.} +} +\value{ +An named integer vector (if not \code{names_only}) +with or a character vector (if \code{names_only}) names of implemented \code{PDFs}. +} +\description{ +List PDFs implemented by \code{SOILWAT2} +} diff --git a/man/pdfs_implemented_by_rSW2.Rd b/man/pdfs_implemented_by_rSW2.Rd new file mode 100644 index 00000000..114b6254 --- /dev/null +++ b/man/pdfs_implemented_by_rSW2.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sw_Pedotransfer_Functions.R +\name{pdfs_implemented_by_rSW2} +\alias{pdfs_implemented_by_rSW2} +\title{List PDFs implemented by \code{rSOILWAT2}} +\usage{ +pdfs_implemented_by_rSW2() +} +\description{ +List PDFs implemented by \code{rSOILWAT2} +} diff --git a/man/pdfs_implemented_in_rSW2.Rd b/man/pdfs_implemented_in_rSW2.Rd deleted file mode 100644 index e5077581..00000000 --- a/man/pdfs_implemented_in_rSW2.Rd +++ /dev/null @@ -1,11 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sw_Pedotransfer_Functions.R -\name{pdfs_implemented_in_rSW2} -\alias{pdfs_implemented_in_rSW2} -\title{List PDFs implemented only in \code{rSOILWAT2} instead of \code{SOILWAT2}} -\usage{ -pdfs_implemented_in_rSW2() -} -\description{ -List PDFs implemented only in \code{rSOILWAT2} instead of \code{SOILWAT2} -} diff --git a/man/swSite_PDFNoPDF.Rd b/man/swSite_PDFNoPDF.Rd deleted file mode 100644 index 4aa42ba8..00000000 --- a/man/swSite_PDFNoPDF.Rd +++ /dev/null @@ -1,38 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, -% R/K_swContainer.R -\name{swSite_PDFNoPDF} -\alias{swSite_PDFNoPDF} -\alias{swSite_PDFNoPDF<-} -\alias{swSite_PDFNoPDF,swSite-method} -\alias{swSite_PDFNoPDF<-,swSite-method} -\alias{swSite_PDFNoPDF,swInputData-method} -\alias{swSite_PDFNoPDF<-,swInputData-method} -\title{The utilized \code{pdf} name stored for later use} -\usage{ -swSite_PDFNoPDF(object) - -swSite_PDFNoPDF(object) <- value - -\S4method{swSite_PDFNoPDF}{swSite}(object) - -\S4method{swSite_PDFNoPDF}{swSite}(object) <- value - -\S4method{swSite_PDFNoPDF}{swInputData}(object) - -\S4method{swSite_PDFNoPDF}{swInputData}(object) <- value -} -\arguments{ -\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} - -\item{value}{A character vector of a pedotransfer function name.} -} -\value{ -The pedotransfer function name that was stored -with \code{\link[=swSite_PDFNoPDF]{swSite_PDFNoPDF()}} for later usage -in the situation when \code{pdf_name} is set to \code{"NoPDF"} but -the \code{pdf} was actually being for estimating the \code{SWRC} parameters. -} -\description{ -The utilized \code{pdf} name stored for later use -} diff --git a/man/swSite_PDFutilized.Rd b/man/swSite_PDFutilized.Rd deleted file mode 100644 index d082985f..00000000 --- a/man/swSite_PDFutilized.Rd +++ /dev/null @@ -1,26 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, -% R/K_swContainer.R -\name{swSite_PDFutilized} -\alias{swSite_PDFutilized} -\alias{swSite_PDFutilized,swSite-method} -\alias{swSite_PDFutilized,swInputData-method} -\title{Identify the actually utilized \code{pdf} name} -\usage{ -swSite_PDFutilized(object) - -\S4method{swSite_PDFutilized}{swSite}(object) - -\S4method{swSite_PDFutilized}{swInputData}(object) -} -\arguments{ -\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} -} -\value{ -The pedotransfer function name that was utilized for estimating -\code{SWRC} given that it was stored either via \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}} or -\code{\link[=swSite_PDFNoPDF]{swSite_PDFNoPDF()}}. -} -\description{ -Identify the actually utilized \code{pdf} name -} diff --git a/man/swSite_SWRCflags.Rd b/man/swSite_SWRCflags.Rd index eedabaab..9a102ee2 100644 --- a/man/swSite_SWRCflags.Rd +++ b/man/swSite_SWRCflags.Rd @@ -37,15 +37,16 @@ Names of \code{SWRC} and \code{PDF} \section{Details}{ The replacement method \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}} for class \linkS4class{swInputData} -resets \code{SWRCp} to \code{NA} if \code{"swrc_name"} or \code{"pdf_name"} are updated. -This is to avoid inconsistency between \code{SWRCp} and \code{swrc_flags}. +resets \code{has_swrcp} to \code{FALSE} if \code{"swrc_name"} or \code{"pdf_name"} are updated. +This is to avoid inconsistency between +\code{SWRCp}, \code{has_swrcp}, and \code{swrc_flags}. The correct sequence for setting values is \enumerate{ \item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, \item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and -\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} and \code{\link[=swSite_hasSWRCp]{swSite_hasSWRCp()}} } } diff --git a/man/swSite_hasSWRCp.Rd b/man/swSite_hasSWRCp.Rd new file mode 100644 index 00000000..ab4dd9a9 --- /dev/null +++ b/man/swSite_hasSWRCp.Rd @@ -0,0 +1,39 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/A_swGenericMethods.R, R/F_swSite.R, +% R/K_swContainer.R +\name{swSite_hasSWRCp} +\alias{swSite_hasSWRCp} +\alias{swSite_hasSWRCp<-} +\alias{swSite_hasSWRCp,swSite-method} +\alias{swSite_hasSWRCp<-,swSite-method} +\alias{swSite_hasSWRCp,swInputData-method} +\alias{swSite_hasSWRCp<-,swInputData-method} +\title{Are \code{SWRC} parameters provided in \code{SWRCp}?} +\usage{ +swSite_hasSWRCp(object) + +swSite_hasSWRCp(object) <- value + +\S4method{swSite_hasSWRCp}{swSite}(object) + +\S4method{swSite_hasSWRCp}{swSite}(object) <- value + +\S4method{swSite_hasSWRCp}{swInputData}(object) + +\S4method{swSite_hasSWRCp}{swInputData}(object) <- value +} +\arguments{ +\item{object}{An object of class \linkS4class{swSite} or \linkS4class{swInputData}.} + +\item{value}{A logical value.} +} +\value{ +A logical value. +\code{TRUE} if \code{SWRC} parameters are provided in \code{SWRCp}; +\code{FALSE} if \code{SWRCp} should be estimated during a simulation run +via specified pedotransfer function +(see \code{"pdf_name"} of \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}). +} +\description{ +Set to \code{TRUE} once \code{SWRCp} are set. +} diff --git a/man/swSoils_Layers.Rd b/man/swSoils_Layers.Rd index 40fb8c15..e5e4ea48 100644 --- a/man/swSoils_Layers.Rd +++ b/man/swSoils_Layers.Rd @@ -35,14 +35,16 @@ Interact with the soil layer data frame The replacement method \verb{swSoils_Layers<-} for class \linkS4class{swInputData} resizes \code{SWRCp} to match number of new soil layers -(and reset \code{SWRCp} values to \code{NA}) if \code{"pdf_name"} is not \code{"NoPDF"} (fixed). +(and reset \code{SWRCp} values to \code{NA}) if \code{"has_swrcp"} is \code{FALSE}. +This is to avoid inconsistency between +soil properties and \code{SWRCp}. The correct sequence for setting values is \enumerate{ \item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, \item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and -\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} and \code{\link[=swSite_hasSWRCp]{swSite_hasSWRCp()}} } } diff --git a/man/swSoils_SWRCp.Rd b/man/swSoils_SWRCp.Rd index c608af68..ec13f1b6 100644 --- a/man/swSoils_SWRCp.Rd +++ b/man/swSoils_SWRCp.Rd @@ -40,7 +40,7 @@ The correct sequence for setting values is \enumerate{ \item \code{\link[=swSoils_Layers]{swSoils_Layers()}}, \item \code{\link[=swSite_SWRCflags]{swSite_SWRCflags()}}, and -\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} +\item \code{\link[=swSoils_SWRCp]{swSoils_SWRCp()}} and \code{\link[=swSite_hasSWRCp]{swSite_hasSWRCp()}} } } diff --git a/man/sw_upgrade.Rd b/man/sw_upgrade.Rd index e7ff24cf..e246710f 100644 --- a/man/sw_upgrade.Rd +++ b/man/sw_upgrade.Rd @@ -45,7 +45,7 @@ List of changes: \item Changes with \code{v6.0.0}: \itemize{ \item class \code{\linkS4class{swSite}}: -new slots \code{"swrc_flags"} and \code{"pdf_for_NoPDF"} +new slots \code{"swrc_flags"} and \code{"has_swrcp"} \item class \code{\linkS4class{swSoils}}: new slot \code{"SWRCp"} \item class \code{\linkS4class{swFiles}}: \code{SWRC} parameter input file added as file 6 for a new total of 23 diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 697aeecb..5ad96848 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 697aeecbf0542263698f896bf59add3851eb6ed3 +Subproject commit 5ad9684818ac95c8f08e8acd1bd768ff142b8228 diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 88981711..1a4ee894 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -12,7 +12,7 @@ extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); extern SEXP sw_quiet(SEXP); extern SEXP rSW2_SWRC_PDF_estimate_parameters(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP rSW2_check_SWRC_vs_PDF(SEXP, SEXP); +extern SEXP sw_check_SWRC_vs_PDF(SEXP, SEXP); extern SEXP rSW2_SWRC_check_parameters(SEXP, SEXP); extern SEXP rSW2_SWRC(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); @@ -24,7 +24,7 @@ static const R_CallMethodDef CallEntries[] = { {"sw_consts", (DL_FUNC) &sw_consts, 0}, {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, {"rSW2_SWRC_PDF_estimate_parameters", (DL_FUNC) &rSW2_SWRC_PDF_estimate_parameters, 5}, - {"rSW2_check_SWRC_vs_PDF", (DL_FUNC) &rSW2_check_SWRC_vs_PDF, 2}, + {"sw_check_SWRC_vs_PDF", (DL_FUNC) &sw_check_SWRC_vs_PDF, 2}, {"rSW2_SWRC_check_parameters", (DL_FUNC) &rSW2_SWRC_check_parameters, 2}, {"rSW2_SWRC", (DL_FUNC) &rSW2_SWRC, 6}, {NULL, NULL, 0} diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index 85c62c47..583d4427 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -703,14 +703,14 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( /** - @brief Check whether selected PDF and SWRC are compatible + @brief Check whether PDF and SWRC are compatible and implemented in `SOILWAT2` - @param[in] swrc_name Name selected SWRC - @param[in] pdf_name Name selected PDF + @param[in] swrc_name Name of SWRC + @param[in] pdf_name Name of PDF @return A logical value indicating if SWRC and PDF are compatible. */ -SEXP rSW2_check_SWRC_vs_PDF(SEXP swrc_name, SEXP pdf_name) { +SEXP sw_check_SWRC_vs_PDF(SEXP swrc_name, SEXP pdf_name) { SEXP res; PROTECT(res = NEW_LOGICAL(1)); LOGICAL(res)[0] = swFALSE; @@ -731,7 +731,7 @@ SEXP rSW2_check_SWRC_vs_PDF(SEXP swrc_name, SEXP pdf_name) { strcpy(sw_swrc_name, CHAR(STRING_ELT(swrc_name, 0))); strcpy(sw_pdf_name, CHAR(STRING_ELT(pdf_name, 0))); - LOGICAL(res)[0] = check_SWRC_vs_PDF(sw_swrc_name, sw_pdf_name, swFALSE); + LOGICAL(res)[0] = check_SWRC_vs_PDF(sw_swrc_name, sw_pdf_name); } UNPROTECT(3); diff --git a/src/SW_R_lib.h b/src/SW_R_lib.h index 6dbf885c..3a13b753 100644 --- a/src/SW_R_lib.h +++ b/src/SW_R_lib.h @@ -52,7 +52,7 @@ SEXP rSW2_SWRC_PDF_estimate_parameters( SEXP bdensity ); -SEXP rSW2_SWRC_check_parameters(SEXP swrc_type, SEXP swrcp); +SEXP sw_check_SWRC_vs_PDF(SEXP swrc_type, SEXP swrcp); SEXP rSW2_SWRC( SEXP x, diff --git a/src/rSW_Site.c b/src/rSW_Site.c index fc746aef..97abe2ad 100644 --- a/src/rSW_Site.c +++ b/src/rSW_Site.c @@ -50,7 +50,7 @@ static char *cSW_SIT[] = { "SnowSimulationParameters", "DrainageCoefficient", "EvaporationCoefficients", "TranspirationCoefficients", "IntrinsicSiteParams", "SoilTemperatureFlag", "SoilTemperatureConstants", "TranspirationRegions", - "swrc_flags" + "swrc_flags", "has_swrcp" }; static char *cLayers[] = { @@ -317,6 +317,8 @@ SEXP onGet_SW_SIT() { SEXP swrc_flags, swrc_names; char *cSWRCflags[] = {"swrc_name", "pdf_name"}; + SEXP has_swrcp; + SEXP TranspirationRegions, TranspirationRegions_names, TranspirationRegions_names_y; char *cTranspirationRegions[] = { "ndx", "layer" }; int *p_transp; // ideally `LyrIndex` so that same type as `_TranspRgnBounds`, but R API INTEGER() is signed @@ -444,6 +446,9 @@ SEXP onGet_SW_SIT() { } setAttrib(swrc_flags, R_NamesSymbol, swrc_names); + PROTECT(has_swrcp = NEW_LOGICAL(1)); + LOGICAL(has_swrcp)[0] = v->site_has_swrcp; + // Fill all slots of `SW_SIT` SET_SLOT(SW_SIT, install(cSW_SIT[0]), SWClimits); @@ -458,8 +463,9 @@ SEXP onGet_SW_SIT() { SET_SLOT(SW_SIT, install(cSW_SIT[9]), SoilTemperatureConstants); SET_SLOT(SW_SIT, install(cSW_SIT[10]), TranspirationRegions); SET_SLOT(SW_SIT, install(cSW_SIT[11]), swrc_flags); + SET_SLOT(SW_SIT, install(cSW_SIT[12]), has_swrcp); - UNPROTECT(26); + UNPROTECT(27); return SW_SIT; } @@ -477,7 +483,7 @@ void onSet_SW_SIT(SEXP SW_SIT) { SEXP IntrinsicSiteParams; SEXP SoilTemperatureConstants_use; SEXP SoilTemperatureConstants; - SEXP swrc_flags; + SEXP swrc_flags, has_swrcp; SEXP TranspirationRegions; int *p_transp; // ideally `LyrIndex` so that same type as `_TranspRgnBounds`, but R API INTEGER() is signed @@ -590,6 +596,9 @@ void onSet_SW_SIT(SEXP SW_SIT) { v->site_swrc_type = encode_str2swrc(v->site_swrc_name); strcpy(v->site_pdf_name, CHAR(STRING_ELT(swrc_flags, 1))); v->site_pdf_type = encode_str2pdf(v->site_pdf_name); + PROTECT(has_swrcp = GET_SLOT(SW_SIT, install("has_swrcp"))); + v->site_has_swrcp = LOGICAL(has_swrcp)[0]; + #ifdef RSWDEBUG if (debug) swprintf(" > 'swrc/pdf-type'"); #endif @@ -624,5 +633,5 @@ void onSet_SW_SIT(SEXP SW_SIT) { if (debug) swprintf(" ... done. \n"); #endif - UNPROTECT(12); + UNPROTECT(13); } diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 7ac41f0491977147abd6ce63d0ccacd063f53cb3..1d2664bd59fe3776ec665714fee55b624b874c7b 100644 GIT binary patch delta 5328 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 F{{XXh`{w`v delta 5365 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 Z@)5(e*UtvH*s$jm-h3{KnJp9){{=0u1Hk|Q diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index fb863e33fd3e3eef7d0d766d36715a0a44a858e7..71f7a310c14b731bc810cd53b5d6aa1d7909199e 100644 GIT binary patch delta 12777 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

    f>!czyB@Nbd~<#yOe*rS|8h5 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 eKx``h#$V60($b~WDIwAzQW6K!d4zNv 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

    $T{HO*Kx6RzW<+S`6$RWs9t~ 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 diff --git a/tests/test_data/Ex3_input.rds b/tests/test_data/Ex3_input.rds index 81999df59e2bda853ce58f666b77daa51b1f75f2..7e99c63bce893aef098ae714803ff8e95dfaeb2a 100644 GIT binary patch literal 5892 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 z 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 BEKUFb delta 5434 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 diff --git a/tests/test_data/versioned_swInputData/Ex1_input_v6.0.0.rds b/tests/test_data/versioned_swInputData/Ex1_input_v6.0.0.rds index 7ac41f0491977147abd6ce63d0ccacd063f53cb3..1d2664bd59fe3776ec665714fee55b624b874c7b 100644 GIT binary patch delta 5328 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 F{{XXh`{w`v delta 5365 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 Z@)5(e*UtvH*s$jm-h3{KnJp9){{=0u1Hk|Q diff --git a/tests/testthat/test_pedotransferfunctions.R b/tests/testthat/test_pedotransferfunctions.R index 4b561b18..70ae795b 100644 --- a/tests/testthat/test_pedotransferfunctions.R +++ b/tests/testthat/test_pedotransferfunctions.R @@ -237,7 +237,7 @@ test_that("Simulate with all SWRC/PDF combinations", { #--- Loop over test cases ------ - for (it in tests) { + for (it in tests[1]) { #---INPUTS sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) @@ -268,8 +268,9 @@ test_that("Simulate with all SWRC/PDF combinations", { if (inherits(x0, "try-error")) { succeed( paste( + "No live access to", paste0(list_swrcs_pdfs[[isp]], collapse = "/"), - "requires live internet, skipping for now!" + ", skipping for now!" ) ) @@ -278,11 +279,11 @@ test_that("Simulate with all SWRC/PDF combinations", { expect_s4_class(x0, "swOutput") - #--- Estimate SWRCp and set "NoPDF" ---- + #--- Estimate SWRCp and set "has_swrcp" ---- sw_input1 <- sw_input soils <- rSOILWAT2::swSoils_Layers(sw_input1) - rSOILWAT2::swSite_SWRCflags(sw_input1)["pdf_name"] <- "NoPDF" + rSOILWAT2::swSite_hasSWRCp(sw_input1) <- TRUE rSOILWAT2::swSoils_SWRCp(sw_input1) <- rSOILWAT2::pdf_estimate( sand = soils[, "sand_frac"], diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 70c38a23..2c41c93f 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -591,10 +591,8 @@ You may organize weather data in a variety of ways: ## Estimate parameters of Soil Water Retention Curve before simulation Note: This step is usually not necessarily; -instead, the default is to use the selected pedotransfer function to have the -parameters estimated automatically. -If we pass parameter values, then we need to set the `PDF` name to `"NoPDF"`, -see `pdf_names()`. +instead, the default setup is that parameters are estimated automatically +by `SOILWAT2` with the selected pedotransfer function. ```{r, soils_swrc} tmp <- rSOILWAT2::swSite_SWRCflags(sw_in) swrcp <- rSOILWAT2::pdf_estimate( @@ -607,15 +605,12 @@ see `pdf_names()`. ) - # Update `pdf_name` to indicate that parameter values are already estimated - rSOILWAT2::swSite_SWRCflags(sw_in)["pdf_name"] <- "NoPDF" - - # Optionally, store `pdf_name` for later (e.g., if we need to update `SWRCp`) - rSOILWAT2::swSite_PDFNoPDF(sw_in) <- tmp["pdf_name"] - # Set estimated `SWRC` parameter values rSOILWAT2::swSoils_SWRCp(sw_in) <- swrcp + # Declare that parameter values are already estimated + rSOILWAT2::swSite_hasSWRCp(sw_in) <- TRUE + if (FALSE) { # Alternatively, set soil properties and SWRC parameters at once rSOILWAT2::set_swSoils(sw_in) <- list(Layers = soil_new, SWRCp = swrcp) From c9ef00ee8d4eac2fe26e8987241413aeea9d1bfe Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 7 Aug 2022 20:07:04 -0400 Subject: [PATCH 107/238] Updated submodule to `feature_veg_estimation` --- .gitmodules | 2 +- src/SOILWAT2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 0a2d10ca..47592cf0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "src/SOILWAT2"] path = src/SOILWAT2 url = https://github.com/DrylandEcology/SOILWAT2 - branch = feature_climate_predictors + branch = feature_veg_estimation diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 93519f35..eb03f98a 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 93519f354ec236db6a802661b9a1e7d95f02725f +Subproject commit eb03f98a5a01c6738a006d77436431f836d79083 From 3eeb8944781e0e9c3dfd2d44dc27214b52801f49 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 7 Aug 2022 20:11:39 -0400 Subject: [PATCH 108/238] Added intermediate R to C function for `estimate_PotNatVeg_composition()` --- src/SW_R_init.c | 4 ++ src/rSW_VegProd.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++ src/rSW_VegProd.h | 6 +++ 3 files changed, 127 insertions(+) diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 30608438..e514dd1e 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -11,6 +11,9 @@ extern SEXP tempError(); extern SEXP onGetInputDataFromFiles(SEXP); extern SEXP onGetOutput(SEXP); extern SEXP sw_consts(); +extern SEXP rSW2_estimate_PotNatVeg_composition(SEXP, SEXP, SEXP, SEXP,SEXP, SEXP, SEXP, + SEXP,SEXP, SEXP, SEXP, SEXP,SEXP, SEXP, + SEXP, SEXP,SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"start", (DL_FUNC) &start, 4}, @@ -18,6 +21,7 @@ static const R_CallMethodDef CallEntries[] = { {"onGetInputDataFromFiles", (DL_FUNC) &onGetInputDataFromFiles, 1}, {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"rSW2_estimate_PotNatVeg_composition", (DL_FUNC) &rSW2_estimate_PotNatVeg_composition, 18}, {NULL, NULL, 0} }; diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index d97943be..c6bd023f 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -622,3 +622,120 @@ void onSet_SW_VPD(SEXP SW_VPD) { UNPROTECT(17); } + +SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_monthly_ppt_mm, + SEXP mean_monthly_Temp_C, SEXP shrub_limit, SEXP SumGrasses_Fraction, + SEXP fill_empty_with_BareGround, SEXP warn_extrapolation, SEXP dailyC4vars, + SEXP isNorth, SEXP Succulents_Fraction, SEXP Annuals_Fraction, SEXP C4_Fraction, + SEXP C3_Fraction, SEXP Shrubs_Fraction, SEXP Forbs_Fraction, + SEXP Trees_Fraction, SEXP BareGround_Fraction) { + + double RelAbundanceL0[8], RelAbundanceL1[5], grasses[3]; + + // "final_" in the beginning meaning it's the final R -> conversion + double final_MAP_cm = asReal(MAP_mm) / 10, final_MAT_C = asReal(MAT_C), final_MonPPT_cm[MAX_MONTHS], + final_MonTemp_C[MAX_MONTHS], final_shrubLimit = asReal(shrub_limit), + final_SumGrassesFraction = asReal(SumGrasses_Fraction), C4Variables[3] = {SW_MISSING, SW_MISSING, SW_MISSING}; + + // Following variable names end with "_D" to denote they are of C type double + double Succulents_Fraction_D = (asReal(Succulents_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Succulents_Fraction); + double Annuals_Fraction_D = asReal(Annuals_Fraction); + double C4_Fraction_D = (asReal(C4_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(C4_Fraction); + double C3_Fraction_D = (asReal(C3_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(C3_Fraction); + double Shrubs_Fraction_D = (asReal(Shrubs_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Shrubs_Fraction); + double Forbs_Fraction_D = (asReal(Forbs_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Forbs_Fraction); + double Trees_Fraction_D = asReal(Trees_Fraction); + double BareGround_Fraction_D = asReal(BareGround_Fraction); + + double inputValues_D[8] = {Succulents_Fraction_D, Annuals_Fraction_D, C4_Fraction_D, + C3_Fraction_D, Shrubs_Fraction_D, Forbs_Fraction_D, Trees_Fraction_D, BareGround_Fraction_D}; + + char *RelAbundanceL0Names[] = {"Succulents", "Forbs", "Grasses_C3", "Grasses_C4", + "Grasses_Annuals", "Shrubs", "Trees", "BareGround"}; + char *RelAbundanceL1Names[] = {"SW_TREES", "SW_SHRUB", "SW_FORBS", "SW_GRASS", "SW_BAREGROUND"}; + char *finalListNames[] = {"Rel_Abundance_L0", "Rel_Abundance_L1", "Grasses"}; + char *grassesNames[] = {"Grasses_C3", "Grasses_C4", "Grasses_Annuals"}; + + // "inter_" meaning the intermediate R -> C conversion + int inter_fill_empty_with_BareGround = asLogical(fill_empty_with_BareGround), + inter_warn_extrapolation = asLogical(warn_extrapolation), index, final_isNorth = asLogical(isNorth); + + Bool final_fill_empty_with_BareGround = swFALSE, final_warn_extrapolation = swFALSE; + + SEXP cRelAbL1Names, cRelAbL0Names, cfinalNames, cgrasses, + final_RelAbundanceL1, final_RelAbundanceL0, final_grasses, res; + + res = PROTECT(allocVector(VECSXP, 3)); + final_RelAbundanceL0 = PROTECT(allocVector(REALSXP, 8)); + final_RelAbundanceL1 = PROTECT(allocVector(REALSXP, 5)); + final_grasses = PROTECT(allocVector(REALSXP, 3)); + cRelAbL1Names = PROTECT(allocVector(STRSXP, 5)); + cRelAbL0Names = PROTECT(allocVector(STRSXP, 8)); + cfinalNames = PROTECT(allocVector(STRSXP, 3)); + cgrasses = PROTECT(allocVector(STRSXP, 3)); + + for(index = 0; index < 3; index++) { + SET_STRING_ELT(cfinalNames, index, mkChar(finalListNames[index])); + SET_STRING_ELT(cgrasses, index, mkChar(grassesNames[index])); + } + + for(index = 0; index < 8; index++) { + SET_STRING_ELT(cRelAbL0Names, index, mkChar(RelAbundanceL0Names[index])); + if(index < 5) SET_STRING_ELT(cRelAbL1Names, index, mkChar(RelAbundanceL1Names[index])); + } + + namesgets(final_RelAbundanceL0, cRelAbL0Names); + namesgets(final_RelAbundanceL1, cRelAbL1Names); + namesgets(res, cfinalNames); + namesgets(final_grasses, cgrasses); + + if(inter_fill_empty_with_BareGround != 0) { + final_fill_empty_with_BareGround = swTRUE; + } + if(inter_warn_extrapolation != 0) { + final_warn_extrapolation = swTRUE; + } + if(final_isNorth != 0) { + final_isNorth = swTRUE; + } + + for(index = 0; index < MAX_MONTHS; index++) { + final_MonPPT_cm[index] = REAL(mean_monthly_ppt_mm)[index] / 10; + final_MonTemp_C[index] = REAL(mean_monthly_Temp_C)[index]; + } + + // Check if dailyC4vars is not NULL + if(!isNull(dailyC4vars)) { + C4Variables[0] = REAL(dailyC4vars)[0]; + C4Variables[1] = REAL(dailyC4vars)[1]; + C4Variables[2] = REAL(dailyC4vars)[2]; + } else { + C4Variables[0] = SW_MISSING; + C4Variables[1] = SW_MISSING; + C4Variables[2] = SW_MISSING; + } + + estimatePotNatVegComposition(final_MAT_C, final_MAP_cm, final_MonTemp_C, + final_MonPPT_cm, inputValues_D, final_shrubLimit, final_SumGrassesFraction, C4Variables, + final_fill_empty_with_BareGround, final_isNorth, final_warn_extrapolation, + grasses, RelAbundanceL0, RelAbundanceL1); + + for(index = 0; index < 8; index++) { + REAL(final_RelAbundanceL0)[index] = RelAbundanceL0[index]; + if(index < 5) { + REAL(final_RelAbundanceL1)[index] = RelAbundanceL1[index]; + } + if(index < 3) { + REAL(final_grasses)[index] = grasses[index]; + } + } + + SET_VECTOR_ELT(res, 0, final_RelAbundanceL0); + SET_VECTOR_ELT(res, 1, final_RelAbundanceL1); + SET_VECTOR_ELT(res, 2, final_grasses); + + UNPROTECT(8); + + return res; + +} diff --git a/src/rSW_VegProd.h b/src/rSW_VegProd.h index 6cd921eb..15a9636e 100644 --- a/src/rSW_VegProd.h +++ b/src/rSW_VegProd.h @@ -5,4 +5,10 @@ /* --------------------------------------------------- */ SEXP onGet_SW_VPD(); void onSet_SW_VPD(SEXP SW_VPD); +SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_monthly_ppt_mm, + SEXP mean_monthly_Temp_C, SEXP shrub_limit, SEXP SumGrasses_Fraction, + SEXP fill_empty_with_BareGround, SEXP warn_extrapolation, SEXP dailyC4vars, + SEXP isNorth, SEXP Succulents_Fraction, SEXP Annuals_Fraction, SEXP C4_Fraction, + SEXP C3_Fraction, SEXP Shrubs_Fraction, SEXP Forbs_Fraction, + SEXP Trees_Fraction, SEXP BareGround_Fraction); From 811d2687c458382aef729bbc9aa096c1e00613b1 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 7 Aug 2022 20:14:05 -0400 Subject: [PATCH 109/238] Removed old `estimate_PotNatVeg_composition()` - Added old code of function to `rSOILWAT_deprecated.R` - Deleted previous code and replaced it with a call to intermediate R to C function --- R/rSOILWAT2_deprecated.R | 443 +++++++++++++++++++++++++++++++++++++++ R/sw_Vegetation.R | 442 ++------------------------------------ 2 files changed, 463 insertions(+), 422 deletions(-) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index 0c5c01e9..996147b6 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -224,3 +224,446 @@ dbW_addSite <- function(Site_id = NULL, lat = NULL, long = NULL, Label = NULL) { Site_id } + +# Old way of calculating esimates of natural vegetation cover +estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, + mean_monthly_ppt_mm, mean_monthly_Temp_C, dailyC4vars = NULL, + isNorth = TRUE, shrub_limit = 0.2, + fix_succulents = FALSE, Succulents_Fraction = NA, + fix_sumgrasses = FALSE, SumGrasses_Fraction = NA, + fix_annuals = TRUE, Annuals_Fraction = 0, + fix_C4grasses = FALSE, C4_Fraction = NA, + fix_C3grasses = FALSE, C3_Fraction = NA, + fix_shrubs = FALSE, Shrubs_Fraction = NA, + fix_forbs = FALSE, Forbs_Fraction = NA, + fix_trees = TRUE, Trees_Fraction = 0, + fix_BareGround = TRUE, BareGround_Fraction = 0, + fill_empty_with_BareGround = TRUE, + warn_extrapolation = TRUE) { + + veg_types <- c( + "Succulents", "Forbs", + "Grasses_C3", "Grasses_C4", "Grasses_Annuals", + "Shrubs", "Trees", + "BareGround" + ) + Nveg <- length(veg_types) + + isuc <- 1 # succulents + ifor <- 2 # forbs + igc3 <- 3 # grasses-C3 + igc4 <- 4 # grasses-C4 + igan <- 5 # grasses-annuals + ishr <- 6 # shrubs + itre <- 7 # trees + ibar <- 8 # bare-ground + + veg_cover <- rep(0, Nveg) + + # groups without climate-equations, i.e., always set to a specific value + iset <- c(igan, itre, ibar) + + # groups with climate-equations to estimate relative abundance + iestim <- c(igc4, igc3, ishr, ifor, isuc) + igrasses <- c(igc3, igc4, igan) + + + #--- Get the user specified fractions: input cover fraction values: + input_cover <- rep(NA, Nveg) + + # Groups that are either fixed or 0, i.e., cannot be NA = not estimated + input_cover[igan] <- if (fix_annuals) { + rSW2utils::finite01(Annuals_Fraction) + } else { + 0 + } + input_cover[itre] <- if (fix_trees) { + rSW2utils::finite01(Trees_Fraction) + } else { + 0 + } + input_cover[ibar] <- if (fix_BareGround) { + rSW2utils::finite01(BareGround_Fraction) + } else { + 0 + } + + # Groups that are either fixed or estimated based on climate-relationships + input_cover[igc4] <- if (fix_C4grasses) C4_Fraction else NA + input_cover[igc3] <- if (fix_C3grasses) C3_Fraction else NA + input_cover[ishr] <- if (fix_shrubs) Shrubs_Fraction else NA + input_cover[ifor] <- if (fix_forbs) Forbs_Fraction else NA + input_cover[isuc] <- if (fix_succulents) Succulents_Fraction else NA + + # treat negative input values as if NA + input_cover <- rSW2utils::cut0Inf(input_cover, val = NA) + + + #--- Check individual components if the sum of grasses is fixed + fix_sumgrasses <- fix_sumgrasses && isTRUE(!is.na(SumGrasses_Fraction)) + + if (fix_sumgrasses) { + SumGrasses_Fraction <- rSW2utils::cut0Inf(SumGrasses_Fraction, val = 0) + + input_sum_grasses <- rSW2utils::replace_NAs_with_val( + x = sum(input_cover[igrasses], na.rm = TRUE), + val_replace = 0 + ) + + add_sum_grasses <- SumGrasses_Fraction - input_sum_grasses + + if (add_sum_grasses < 0) { + stop( + "'estimate_PotNatVeg_composition': ", + "User defined grass values including C3, C4, and annuals ", + "sum to more than user defined total grass cover." + ) + + } + + ids_to_estim_grasses <- is.na(input_cover[igrasses]) + + if (add_sum_grasses > 0) { + if (sum(ids_to_estim_grasses) == 1) { + # One grass component to estimate: difference from rest + input_cover[igrasses[ids_to_estim_grasses]] <- + SumGrasses_Fraction - input_sum_grasses + + add_sum_grasses <- 0 + } + + } else { + # No grass component to add: set all to zero + input_cover[igrasses[ids_to_estim_grasses]] <- 0 + } + } + + + #--- Decide if all fractions are sufficiently defined or if they need to be + # estimated based on climate reltionships + input_sum <- sum(input_cover, na.rm = TRUE) + ifixed <- unique(c(iset, which(!is.na(input_cover)))) + + ids_to_estim <- which(is.na(input_cover)) + n_to_estim <- length(ids_to_estim) + + if (input_sum > 1) { + stop( + "'estimate_PotNatVeg_composition': ", + "User defined relative abundance values sum to more than ", + "1 = full land cover." + ) + } + + + #--- Incomplete surface cover + veg_cover <- input_cover + + if (n_to_estim <= 1) { + #--- Less than one component to estimate: no need for equations + + if (n_to_estim == 0) { + #--- All fixed, nothing to estimate + if (fill_empty_with_BareGround) { + veg_cover[ibar] <- 1 - sum(veg_cover[-ibar], na.rm = TRUE) + + } else if (input_sum < 1) { + stop( + "'estimate_PotNatVeg_composition': ", + "User defined relative abundance values are all fixed, ", + "but their sum is smaller than 1 = full land cover." + ) + } + + } else if (n_to_estim == 1) { + #--- One value to estimate: difference from rest + veg_cover[ids_to_estim] <- 1 - input_sum + } + + } else { + #---Potential natural vegetation + # i.e., (input_sum < 1 && sum(is.na(input_cover)) > 1) is TRUE; + # thus, estimate relative abundance fractions based on climate relationships + + if (MAP_mm <= 1) { + # No precipitation ==> no vegetation, only bare-ground + # TODO: what about fog? + veg_cover[] <- 0 + veg_cover[ibar] <- 1 + + } else { + + estim_cover <- rep(NA, Nveg) + + # Estimate climate variables + if (isNorth) { + Months_WinterTF <- c(12, 1:2) + Months_SummerTF <- 6:8 + } else { + Months_WinterTF <- 6:8 + Months_SummerTF <- c(12, 1:2) + } + + # Fraction of precipitation falling during summer/winter months + ppt.SummerToMAP <- sum(mean_monthly_ppt_mm[Months_SummerTF]) / MAP_mm + ppt.WinterToMAP <- sum(mean_monthly_ppt_mm[Months_WinterTF]) / MAP_mm + + # Temperature in July minus temperature in January + therm_amp <- mean_monthly_Temp_C[Months_SummerTF[2]] - + mean_monthly_Temp_C[Months_WinterTF[2]] + + if (warn_extrapolation) { + # Adjust climate variables to limits underlying the data used to develop + # equations Paruelo & Lauenroth (1996): "The selected sites cover a + # range of MAT from 2 C to 21.2 C and a range of precipitation (MAP) + # from 117 to 1011 mm" + + # MAT limits: + if (MAT_C < 1) { + # Note: MAT = 1 C as limit instead of 2 C based on empirical testing; + # also because log(x) is undefined for x < 0 and results in negative + # values for x < 1. Hence the threshold of 1. + warning( + "Equations used outside supported range (2 - 21.2 C): ", + "MAT = ", round(MAT_C, 2), " C reset to 1 C." + ) + MAT_C <- 1 + } + + if (MAT_C > 21.2) { + warning( + "Equations used outside supported range (2 - 21.2 C): ", + "MAT = ", round(MAT_C, 2), " C." + ) + } + + if (MAP_mm < 117 || MAP_mm > 1011) { + warning( + "Equations used outside supported range (117-1011 mm): ", + "MAP = ", round(MAP_mm), " mm." + ) + } + } + + + # 1. step: estimate relative abundance based on + # Paruelo & Lauenroth (1996): shrub climate-relationship: + if (MAP_mm < 1) { + estim_cover[ishr] <- 0 + } else { + # if not enough winter precipitation for a given MAP, then equation + # results in negative values which we set to 0 + estim_cover[ishr] <- rSW2utils::cut0Inf( + 1.7105 - 0.2918 * log(MAP_mm) + 1.5451 * ppt.WinterToMAP, + val = 0 + ) + } + + # Paruelo & Lauenroth (1996): C4-grass climate-relationship: + if (MAT_C <= 0) { + estim_cover[igc4] <- 0 + } else { + # if either MAT < 0 or not enough summer precipitation or + # too cold for a given MAP, then equation results in negative values + # which we set to 0 + estim_cover[igc4] <- rSW2utils::cut0Inf( + -0.9837 + 0.000594 * MAP_mm + + 1.3528 * ppt.SummerToMAP + 0.2710 * log(MAT_C), + val = 0 + ) + + # 2. step: Teeri JA, Stowe LG (1976) + # This equations give percent species/vegetation -> use to limit + # Paruelo's C4 equation, i.e., where no C4 species => C4 abundance == 0 + if (is.list(dailyC4vars)) { + if (dailyC4vars["LengthFreezeFreeGrowingPeriod_NSadj_Days"] <= 0) { + grass_c4_species <- 0 + } else { + x10 <- dailyC4vars["Month7th_NSadj_MinTemp_C"] * 9 / 5 + 32 + x13 <- dailyC4vars["DegreeDaysAbove65F_NSadj_DaysC"] * 9 / 5 + x18 <- log(dailyC4vars["LengthFreezeFreeGrowingPeriod_NSadj_Days"]) + grass_c4_species <- as.numeric( + (1.60 * x10 + 0.0086 * x13 - 8.98 * x18 - 22.44) / 100 + ) + } + + if (grass_c4_species <= rSW2_glovars[["tol"]]) { + estim_cover[igc4] <- 0 + } + } + } + + # Paruelo & Lauenroth (1996): C3-grass climate-relationship: + if (ppt.WinterToMAP <= 0) { + c3_in_grassland <- c3_in_shrubland <- NA + } else { + # if not enough winter precipitation or too warm for a + # given MAP, then equation results in negative values which we set to 0 + c3_in_grassland <- rSW2utils::cut0Inf( + 1.1905 - 0.02909 * MAT_C + 0.1781 * log(ppt.WinterToMAP) - 0.2383 * 1, + val = 0 + ) + c3_in_shrubland <- rSW2utils::cut0Inf( + 1.1905 - 0.02909 * MAT_C + 0.1781 * log(ppt.WinterToMAP) - 0.2383 * 2, + val = 0 + ) + } + + temp <- estim_cover[ishr] >= shrub_limit && !is.na(estim_cover[ishr]) + estim_cover[igc3] <- ifelse(temp, c3_in_shrubland, c3_in_grassland) + + # Paruelo & Lauenroth (1996): forb climate-relationship: + if (MAP_mm < 1 || MAT_C <= 0) { + estim_cover[ifor] <- NA + } else { + estim_cover[ifor] <- rSW2utils::cut0Inf( + -0.2035 + 0.07975 * log(MAP_mm) - 0.0623 * log(MAT_C), + val = 0 + ) + } + + # Paruelo & Lauenroth (1996): succulent climate-relationship: + if (therm_amp <= 0 || ppt.WinterToMAP <= 0) { + estim_cover[isuc] <- NA + } else { + estim_cover[isuc] <- rSW2utils::cut0Inf( + -1 + 1.20246 * therm_amp ^ -0.0689 * ppt.WinterToMAP ^ -0.0322, + val = 0 + ) + } + + # 3. step: + ngood <- sum(!is.na(estim_cover[iestim])) + + # Any remaining NAs are set to 0 + estim_cover[iestim] <- rSW2utils::replace_NAs_with_val( + x = estim_cover[iestim], + val_replace = 0 + ) + + if (!fill_empty_with_BareGround && ngood <= 1) { + #--- Hack if some of the equations produced NAs: + # [these rules are made up arbitrarily by drs, Nov 2012]: + # If no or only one successful equation, then add + # 100% C3 if MAT < 10 C, + # 100% shrubs if MAP < 600 mm, and + # 100% C4 if MAT >= 10C & MAP >= 600 mm + if (MAP_mm < 600) { + estim_cover[ishr] <- 1 + estim_cover[ishr] + } + + if (MAT_C < 10) { + estim_cover[igc3] <- 1 + estim_cover[igc3] + } + + if (MAT_C >= 10 && MAP_mm >= 600) { + estim_cover[igc4] <- 1 + estim_cover[igc4] + } + } + + + # 4. step: put all together: + # 4-i) groups with set values (iset) and groups with estimable but + # fixed values (iestim & !is.na) + veg_cover[ifixed] <- input_cover[ifixed] + + # 4-ii) rescale grass components to fixed total grass cover + if (fix_sumgrasses && add_sum_grasses > 0) { + ids_to_estim_grasses <- intersect(ids_to_estim, igrasses) + n_to_estim_grasses <- sum(ids_to_estim_grasses) + + estim_grasses_cover_sum <- sum(estim_cover[ids_to_estim_grasses]) + + if (estim_grasses_cover_sum > 0) { + estim_cover[ids_to_estim_grasses] <- + estim_cover[ids_to_estim_grasses] * + add_sum_grasses / estim_grasses_cover_sum + + } else if (n_to_estim_grasses > 0) { + # We estimated zero grass cover, but some was required + # --> divide requested amount evenly + estim_cover[ids_to_estim_grasses] <- + add_sum_grasses / n_to_estim_grasses + + warning( + "'estimate_PotNatVeg_composition': ", + "Total grass cover set, but no grass cover estimated; ", + "requested cover evenly divided among grass types." + ) + } + } + + # 4-iii) groups with values to estimate (iestim & is.na): + veg_cover[ids_to_estim] <- estim_cover[ids_to_estim] + + if (fix_sumgrasses) { + # Fix grasses and remove them from estimable + ifixed <- unique(c(ifixed, igrasses)) + ids_to_estim <- setdiff(ids_to_estim, igrasses) + } + + # Scale fractions to 0-1 with a sum equal to 1 (if needed) + tot_veg_cover_sum <- sum(veg_cover) + + if (abs(tot_veg_cover_sum - 1) > rSW2_glovars[["tol"]]) { + + estim_cover_sum <- sum(estim_cover[ids_to_estim]) + + if (estim_cover_sum > 0) { + # Scale estimable fractions so that total sums to 1, but + # scaling doesn't affect those that are fixed + veg_cover[ids_to_estim] <- veg_cover[ids_to_estim] * + (1 - sum(veg_cover[ifixed])) / estim_cover_sum + + } else { + # cover to estimate is 0 and fixed_cover_sum < 1 + if (fill_empty_with_BareGround && !fix_BareGround) { + # ==> fill land cover up with bare-ground + veg_cover[ibar] <- 1 - sum(veg_cover[-ibar]) + + } else { + stop( + "'estimate_PotNatVeg_composition': ", + "The estimated vegetation cover values are 0, ", + "the user fixed relative abundance values sum to less than 1, ", + "and bare-ground is fixed. ", + "Thus, the function cannot compute ", + "complete land cover composition." + ) + } + } + } + + } + } + + names(veg_cover) <- veg_types + + # Scale relative grass components to one (or set to 0) + c3c4ann <- veg_cover[igrasses] + grass_fraction <- sum(c3c4ann) + + if (grass_fraction > 0) { + c3c4ann <- c3c4ann / grass_fraction + } + + # Return values + temp <- unname(veg_cover) + + list( + # Full resolution: suitable for STEPWAT2 + Rel_Abundance_L0 = veg_cover, + + # SOILWAT2 land cover types: + Rel_Abundance_L1 = c( + SW_TREES = temp[itre], + SW_SHRUB = temp[ishr], + SW_FORBS = temp[ifor] + temp[isuc], + SW_GRASS = grass_fraction, + SW_BAREGROUND = temp[ibar] + ), + + # Relative contributions of sub-types to the grass type + Grasses = c3c4ann + ) +} diff --git a/R/sw_Vegetation.R b/R/sw_Vegetation.R index 5e7a56f6..5c9d8425 100644 --- a/R/sw_Vegetation.R +++ b/R/sw_Vegetation.R @@ -185,431 +185,29 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, fill_empty_with_BareGround = TRUE, warn_extrapolation = TRUE) { - veg_types <- c( - "Succulents", "Forbs", - "Grasses_C3", "Grasses_C4", "Grasses_Annuals", - "Shrubs", "Trees", - "BareGround" - ) - Nveg <- length(veg_types) - - isuc <- 1 # succulents - ifor <- 2 # forbs - igc3 <- 3 # grasses-C3 - igc4 <- 4 # grasses-C4 - igan <- 5 # grasses-annuals - ishr <- 6 # shrubs - itre <- 7 # trees - ibar <- 8 # bare-ground - - veg_cover <- rep(0, Nveg) - - # groups without climate-equations, i.e., always set to a specific value - iset <- c(igan, itre, ibar) - - # groups with climate-equations to estimate relative abundance - iestim <- c(igc4, igc3, ishr, ifor, isuc) - igrasses <- c(igc3, igc4, igan) - - - #--- Get the user specified fractions: input cover fraction values: - input_cover <- rep(NA, Nveg) - - # Groups that are either fixed or 0, i.e., cannot be NA = not estimated - input_cover[igan] <- if (fix_annuals) { - rSW2utils::finite01(Annuals_Fraction) - } else { - 0 - } - input_cover[itre] <- if (fix_trees) { - rSW2utils::finite01(Trees_Fraction) - } else { - 0 - } - input_cover[ibar] <- if (fix_BareGround) { - rSW2utils::finite01(BareGround_Fraction) - } else { - 0 - } - - # Groups that are either fixed or estimated based on climate-relationships - input_cover[igc4] <- if (fix_C4grasses) C4_Fraction else NA - input_cover[igc3] <- if (fix_C3grasses) C3_Fraction else NA - input_cover[ishr] <- if (fix_shrubs) Shrubs_Fraction else NA - input_cover[ifor] <- if (fix_forbs) Forbs_Fraction else NA - input_cover[isuc] <- if (fix_succulents) Succulents_Fraction else NA - - # treat negative input values as if NA - input_cover <- rSW2utils::cut0Inf(input_cover, val = NA) - - - #--- Check individual components if the sum of grasses is fixed - fix_sumgrasses <- fix_sumgrasses && isTRUE(!is.na(SumGrasses_Fraction)) - if (fix_sumgrasses) { - SumGrasses_Fraction <- rSW2utils::cut0Inf(SumGrasses_Fraction, val = 0) - - input_sum_grasses <- rSW2utils::replace_NAs_with_val( - x = sum(input_cover[igrasses], na.rm = TRUE), - val_replace = 0 - ) - - add_sum_grasses <- SumGrasses_Fraction - input_sum_grasses - - if (add_sum_grasses < 0) { - stop( - "'estimate_PotNatVeg_composition': ", - "User defined grass values including C3, C4, and annuals ", - "sum to more than user defined total grass cover." + res <- .Call(C_rSW2_estimate_PotNatVeg_composition, + MAP_mm, + MAT_C, + mean_monthly_ppt_mm, + mean_monthly_Temp_C, + shrub_limit, + SumGrasses_Fraction, + fill_empty_with_BareGround, + warn_extrapolation, + dailyC4vars, + isNorth, + Succulents_Fraction, + Annuals_Fraction, + C4_Fraction, + C3_Fraction, + Shrubs_Fraction, + Forbs_Fraction, + Trees_Fraction, + BareGround_Fraction ) - } - - ids_to_estim_grasses <- is.na(input_cover[igrasses]) - - if (add_sum_grasses > 0) { - if (sum(ids_to_estim_grasses) == 1) { - # One grass component to estimate: difference from rest - input_cover[igrasses[ids_to_estim_grasses]] <- - SumGrasses_Fraction - input_sum_grasses - - add_sum_grasses <- 0 - } - - } else { - # No grass component to add: set all to zero - input_cover[igrasses[ids_to_estim_grasses]] <- 0 - } - } - - - #--- Decide if all fractions are sufficiently defined or if they need to be - # estimated based on climate reltionships - input_sum <- sum(input_cover, na.rm = TRUE) - ifixed <- unique(c(iset, which(!is.na(input_cover)))) - - ids_to_estim <- which(is.na(input_cover)) - n_to_estim <- length(ids_to_estim) - - if (input_sum > 1) { - stop( - "'estimate_PotNatVeg_composition': ", - "User defined relative abundance values sum to more than ", - "1 = full land cover." - ) - } - - - #--- Incomplete surface cover - veg_cover <- input_cover - - if (n_to_estim <= 1) { - #--- Less than one component to estimate: no need for equations - - if (n_to_estim == 0) { - #--- All fixed, nothing to estimate - if (fill_empty_with_BareGround) { - veg_cover[ibar] <- 1 - sum(veg_cover[-ibar], na.rm = TRUE) - - } else if (input_sum < 1) { - stop( - "'estimate_PotNatVeg_composition': ", - "User defined relative abundance values are all fixed, ", - "but their sum is smaller than 1 = full land cover." - ) - } - - } else if (n_to_estim == 1) { - #--- One value to estimate: difference from rest - veg_cover[ids_to_estim] <- 1 - input_sum - } - - } else { - #---Potential natural vegetation - # i.e., (input_sum < 1 && sum(is.na(input_cover)) > 1) is TRUE; - # thus, estimate relative abundance fractions based on climate relationships - - if (MAP_mm <= 1) { - # No precipitation ==> no vegetation, only bare-ground - # TODO: what about fog? - veg_cover[] <- 0 - veg_cover[ibar] <- 1 - - } else { - - estim_cover <- rep(NA, Nveg) - - # Estimate climate variables - if (isNorth) { - Months_WinterTF <- c(12, 1:2) - Months_SummerTF <- 6:8 - } else { - Months_WinterTF <- 6:8 - Months_SummerTF <- c(12, 1:2) - } - - # Fraction of precipitation falling during summer/winter months - ppt.SummerToMAP <- sum(mean_monthly_ppt_mm[Months_SummerTF]) / MAP_mm - ppt.WinterToMAP <- sum(mean_monthly_ppt_mm[Months_WinterTF]) / MAP_mm - - # Temperature in July minus temperature in January - therm_amp <- mean_monthly_Temp_C[Months_SummerTF[2]] - - mean_monthly_Temp_C[Months_WinterTF[2]] - - if (warn_extrapolation) { - # Adjust climate variables to limits underlying the data used to develop - # equations Paruelo & Lauenroth (1996): "The selected sites cover a - # range of MAT from 2 C to 21.2 C and a range of precipitation (MAP) - # from 117 to 1011 mm" - - # MAT limits: - if (MAT_C < 1) { - # Note: MAT = 1 C as limit instead of 2 C based on empirical testing; - # also because log(x) is undefined for x < 0 and results in negative - # values for x < 1. Hence the threshold of 1. - warning( - "Equations used outside supported range (2 - 21.2 C): ", - "MAT = ", round(MAT_C, 2), " C reset to 1 C." - ) - MAT_C <- 1 - } - - if (MAT_C > 21.2) { - warning( - "Equations used outside supported range (2 - 21.2 C): ", - "MAT = ", round(MAT_C, 2), " C." - ) - } - - if (MAP_mm < 117 || MAP_mm > 1011) { - warning( - "Equations used outside supported range (117-1011 mm): ", - "MAP = ", round(MAP_mm), " mm." - ) - } - } - - - # 1. step: estimate relative abundance based on - # Paruelo & Lauenroth (1996): shrub climate-relationship: - if (MAP_mm < 1) { - estim_cover[ishr] <- 0 - } else { - # if not enough winter precipitation for a given MAP, then equation - # results in negative values which we set to 0 - estim_cover[ishr] <- rSW2utils::cut0Inf( - 1.7105 - 0.2918 * log(MAP_mm) + 1.5451 * ppt.WinterToMAP, - val = 0 - ) - } - - # Paruelo & Lauenroth (1996): C4-grass climate-relationship: - if (MAT_C <= 0) { - estim_cover[igc4] <- 0 - } else { - # if either MAT < 0 or not enough summer precipitation or - # too cold for a given MAP, then equation results in negative values - # which we set to 0 - estim_cover[igc4] <- rSW2utils::cut0Inf( - -0.9837 + 0.000594 * MAP_mm + - 1.3528 * ppt.SummerToMAP + 0.2710 * log(MAT_C), - val = 0 - ) - - # 2. step: Teeri JA, Stowe LG (1976) - # This equations give percent species/vegetation -> use to limit - # Paruelo's C4 equation, i.e., where no C4 species => C4 abundance == 0 - if (is.list(dailyC4vars)) { - if (dailyC4vars["LengthFreezeFreeGrowingPeriod_NSadj_Days"] <= 0) { - grass_c4_species <- 0 - } else { - x10 <- dailyC4vars["Month7th_NSadj_MinTemp_C"] * 9 / 5 + 32 - x13 <- dailyC4vars["DegreeDaysAbove65F_NSadj_DaysC"] * 9 / 5 - x18 <- log(dailyC4vars["LengthFreezeFreeGrowingPeriod_NSadj_Days"]) - grass_c4_species <- as.numeric( - (1.60 * x10 + 0.0086 * x13 - 8.98 * x18 - 22.44) / 100 - ) - } - - if (grass_c4_species <= rSW2_glovars[["tol"]]) { - estim_cover[igc4] <- 0 - } - } - } - - # Paruelo & Lauenroth (1996): C3-grass climate-relationship: - if (ppt.WinterToMAP <= 0) { - c3_in_grassland <- c3_in_shrubland <- NA - } else { - # if not enough winter precipitation or too warm for a - # given MAP, then equation results in negative values which we set to 0 - c3_in_grassland <- rSW2utils::cut0Inf( - 1.1905 - 0.02909 * MAT_C + 0.1781 * log(ppt.WinterToMAP) - 0.2383 * 1, - val = 0 - ) - c3_in_shrubland <- rSW2utils::cut0Inf( - 1.1905 - 0.02909 * MAT_C + 0.1781 * log(ppt.WinterToMAP) - 0.2383 * 2, - val = 0 - ) - } - - temp <- estim_cover[ishr] >= shrub_limit && !is.na(estim_cover[ishr]) - estim_cover[igc3] <- ifelse(temp, c3_in_shrubland, c3_in_grassland) - - # Paruelo & Lauenroth (1996): forb climate-relationship: - if (MAP_mm < 1 || MAT_C <= 0) { - estim_cover[ifor] <- NA - } else { - estim_cover[ifor] <- rSW2utils::cut0Inf( - -0.2035 + 0.07975 * log(MAP_mm) - 0.0623 * log(MAT_C), - val = 0 - ) - } - - # Paruelo & Lauenroth (1996): succulent climate-relationship: - if (therm_amp <= 0 || ppt.WinterToMAP <= 0) { - estim_cover[isuc] <- NA - } else { - estim_cover[isuc] <- rSW2utils::cut0Inf( - -1 + 1.20246 * therm_amp ^ -0.0689 * ppt.WinterToMAP ^ -0.0322, - val = 0 - ) - } - - # 3. step: - ngood <- sum(!is.na(estim_cover[iestim])) - - # Any remaining NAs are set to 0 - estim_cover[iestim] <- rSW2utils::replace_NAs_with_val( - x = estim_cover[iestim], - val_replace = 0 - ) - - if (!fill_empty_with_BareGround && ngood <= 1) { - #--- Hack if some of the equations produced NAs: - # [these rules are made up arbitrarily by drs, Nov 2012]: - # If no or only one successful equation, then add - # 100% C3 if MAT < 10 C, - # 100% shrubs if MAP < 600 mm, and - # 100% C4 if MAT >= 10C & MAP >= 600 mm - if (MAP_mm < 600) { - estim_cover[ishr] <- 1 + estim_cover[ishr] - } - - if (MAT_C < 10) { - estim_cover[igc3] <- 1 + estim_cover[igc3] - } - - if (MAT_C >= 10 && MAP_mm >= 600) { - estim_cover[igc4] <- 1 + estim_cover[igc4] - } - } - - - # 4. step: put all together: - # 4-i) groups with set values (iset) and groups with estimable but - # fixed values (iestim & !is.na) - veg_cover[ifixed] <- input_cover[ifixed] - - # 4-ii) rescale grass components to fixed total grass cover - if (fix_sumgrasses && add_sum_grasses > 0) { - ids_to_estim_grasses <- intersect(ids_to_estim, igrasses) - n_to_estim_grasses <- sum(ids_to_estim_grasses) - - estim_grasses_cover_sum <- sum(estim_cover[ids_to_estim_grasses]) - - if (estim_grasses_cover_sum > 0) { - estim_cover[ids_to_estim_grasses] <- - estim_cover[ids_to_estim_grasses] * - add_sum_grasses / estim_grasses_cover_sum - - } else if (n_to_estim_grasses > 0) { - # We estimated zero grass cover, but some was required - # --> divide requested amount evenly - estim_cover[ids_to_estim_grasses] <- - add_sum_grasses / n_to_estim_grasses - - warning( - "'estimate_PotNatVeg_composition': ", - "Total grass cover set, but no grass cover estimated; ", - "requested cover evenly divided among grass types." - ) - } - } - - # 4-iii) groups with values to estimate (iestim & is.na): - veg_cover[ids_to_estim] <- estim_cover[ids_to_estim] - - if (fix_sumgrasses) { - # Fix grasses and remove them from estimable - ifixed <- unique(c(ifixed, igrasses)) - ids_to_estim <- setdiff(ids_to_estim, igrasses) - } - - # Scale fractions to 0-1 with a sum equal to 1 (if needed) - tot_veg_cover_sum <- sum(veg_cover) - - if (abs(tot_veg_cover_sum - 1) > rSW2_glovars[["tol"]]) { - - estim_cover_sum <- sum(estim_cover[ids_to_estim]) - - if (estim_cover_sum > 0) { - # Scale estimable fractions so that total sums to 1, but - # scaling doesn't affect those that are fixed - veg_cover[ids_to_estim] <- veg_cover[ids_to_estim] * - (1 - sum(veg_cover[ifixed])) / estim_cover_sum - - } else { - # cover to estimate is 0 and fixed_cover_sum < 1 - if (fill_empty_with_BareGround && !fix_BareGround) { - # ==> fill land cover up with bare-ground - veg_cover[ibar] <- 1 - sum(veg_cover[-ibar]) - - } else { - stop( - "'estimate_PotNatVeg_composition': ", - "The estimated vegetation cover values are 0, ", - "the user fixed relative abundance values sum to less than 1, ", - "and bare-ground is fixed. ", - "Thus, the function cannot compute ", - "complete land cover composition." - ) - } - } - } - - } - } - - names(veg_cover) <- veg_types - - # Scale relative grass components to one (or set to 0) - c3c4ann <- veg_cover[igrasses] - grass_fraction <- sum(c3c4ann) - - if (grass_fraction > 0) { - c3c4ann <- c3c4ann / grass_fraction - } - - # Return values - temp <- unname(veg_cover) - - list( - # Full resolution: suitable for STEPWAT2 - Rel_Abundance_L0 = veg_cover, - - # SOILWAT2 land cover types: - Rel_Abundance_L1 = c( - SW_TREES = temp[itre], - SW_SHRUB = temp[ishr], - SW_FORBS = temp[ifor] + temp[isuc], - SW_GRASS = grass_fraction, - SW_BAREGROUND = temp[ibar] - ), - - # Relative contributions of sub-types to the grass type - Grasses = c3c4ann - ) + res } From 1a34fd41694927992bf53f016b8e66511bd655e4 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Mon, 8 Aug 2022 12:27:22 -0400 Subject: [PATCH 110/238] Added "veg_method" to R side - Added set/get code for "veg_method" - Added "veg_method" to "swProd" --- R/E_swProd.R | 14 +++++++++- src/rSW_VegProd.c | 70 ++++++++++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 32 deletions(-) diff --git a/R/E_swProd.R b/R/E_swProd.R index a7231ec9..c1a5e893 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -48,7 +48,9 @@ #' #' @name swProd-class #' @export -setClass("swProd", slots = c(Composition = "numeric", Albedo = "numeric", +setClass("swProd", slots = c( + veg_method = "integer", + Composition = "numeric", Albedo = "numeric", CanopyHeight = "matrix", VegetationInterceptionParameters = "matrix", LitterInterceptionParameters = "matrix", @@ -63,6 +65,12 @@ swProd_validity <- function(object) { val <- TRUE nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] + if (length(object@veg_method) != 1 || + !all(is.na(object@veg_method) | (object@veg_method >= 0) & object@veg_method <= 1) { + msg <- "@veg_method must have 1 values between 0 and 1." + val <- if (isTRUE(val)) msg else c(val, msg) + } + if (length(object@Composition) != 1 + nvegs || !all(is.na(object@Composition) | (object@Composition >= 0 & object@Composition <= 1))) { @@ -155,6 +163,10 @@ setMethod("initialize", signature = "swProd", function(.Object, ...) { dots <- list(...) dns <- names(dots) + if(!("veg_method") %in% dns) { + def@veg_method[] <- NA_integer_ + } + # We don't set values for slot `Composition`; this is to prevent simulation # runs with accidentally incorrect values if (!("Composition" %in% dns)) { diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index c6bd023f..46bc6f35 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -42,7 +42,7 @@ static char *MyFileName; static char *cVegProd_names[] = { - "Composition", "Albedo", "CanopyHeight", + "veg_method", "Composition", "Albedo", "CanopyHeight", "VegetationInterceptionParameters", "LitterInterceptionParameters", "EsTpartitioning_param", "Es_param_limit", "Shade", "HydraulicRedistribution_use", "HydraulicRedistribution", "CriticalSoilWaterPotential", "MonthlyVeg", @@ -66,7 +66,7 @@ SEXP onGet_SW_VPD() { SEXP VegProd; SEXP VegComp, VegComp_names, vegtype_names, col_names; - SEXP Albedo; + SEXP Albedo, veg_method; SEXP Canopy, Canopy_names, Canopy_names_x; char *cCanopy_names_x[] = { "xinflec", "yinflec", "range", "slope", "height_cm" }; @@ -149,6 +149,9 @@ SEXP onGet_SW_VPD() { PROTECT(swProd = MAKE_CLASS("swProd")); PROTECT(VegProd = NEW_OBJECT(swProd)); + PROTECT(veg_method = NEW_INTEGER(1)); + INTEGER(veg_method)[0] = v->veg_method; + PROTECT(VegComp = allocVector(REALSXP, NVEGTYPES + 1)); REAL(VegComp)[0] = v->veg[SW_GRASS].cov.fCover; //Grass REAL(VegComp)[1] = v->veg[SW_SHRUB].cov.fCover; //Shrub @@ -391,21 +394,22 @@ SEXP onGet_SW_VPD() { SET_STRING_ELT(col_names, 3, mkChar("Grasses")); setAttrib(MonthlyVeg, R_NamesSymbol, col_names); - SET_SLOT(VegProd, install(cVegProd_names[0]), VegComp); - SET_SLOT(VegProd, install(cVegProd_names[1]), Albedo); - SET_SLOT(VegProd, install(cVegProd_names[2]), Canopy); - SET_SLOT(VegProd, install(cVegProd_names[3]), VegInterception); - SET_SLOT(VegProd, install(cVegProd_names[4]), LitterInterception); - SET_SLOT(VegProd, install(cVegProd_names[5]), EsTpartitioning_param); - SET_SLOT(VegProd, install(cVegProd_names[6]), Es_param_limit); - SET_SLOT(VegProd, install(cVegProd_names[7]), Shade); - SET_SLOT(VegProd, install(cVegProd_names[8]), Hydraulic_flag); - SET_SLOT(VegProd, install(cVegProd_names[9]), Hydraulic); - SET_SLOT(VegProd, install(cVegProd_names[10]), CSWP); - SET_SLOT(VegProd, install(cVegProd_names[11]), MonthlyVeg); - SET_SLOT(VegProd, install(cVegProd_names[12]), CO2Coefficients); - - UNPROTECT(40); + SET_SLOT(VegProd, install(cVegProd_names[0]), veg_method); + SET_SLOT(VegProd, install(cVegProd_names[1]), VegComp); + SET_SLOT(VegProd, install(cVegProd_names[2]), Albedo); + SET_SLOT(VegProd, install(cVegProd_names[3]), Canopy); + SET_SLOT(VegProd, install(cVegProd_names[4]), VegInterception); + SET_SLOT(VegProd, install(cVegProd_names[5]), LitterInterception); + SET_SLOT(VegProd, install(cVegProd_names[6]), EsTpartitioning_param); + SET_SLOT(VegProd, install(cVegProd_names[7]), Es_param_limit); + SET_SLOT(VegProd, install(cVegProd_names[8]), Shade); + SET_SLOT(VegProd, install(cVegProd_names[9]), Hydraulic_flag); + SET_SLOT(VegProd, install(cVegProd_names[10]), Hydraulic); + SET_SLOT(VegProd, install(cVegProd_names[11]), CSWP); + SET_SLOT(VegProd, install(cVegProd_names[12]), MonthlyVeg); + SET_SLOT(VegProd, install(cVegProd_names[13]), CO2Coefficients); + + UNPROTECT(41); return VegProd; } @@ -413,6 +417,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { int i; SW_VEGPROD *v = &SW_VegProd; + SEXP veg_method; SEXP VegComp; SEXP Albedo; SEXP Canopy; @@ -434,21 +439,24 @@ void onSet_SW_VPD(SEXP SW_VPD) { MyFileName = SW_F_name(eVegProd); - PROTECT(VegComp = GET_SLOT(SW_VPD, install(cVegProd_names[0]))); + PROTECT(veg_method = GET_SLOT(SW_VPD, install(cVegProd_names[0]))); + v->veg_method = INTEGER(veg_method)[0]; + + PROTECT(VegComp = GET_SLOT(SW_VPD, install(cVegProd_names[1]))); v->veg[SW_GRASS].cov.fCover = REAL(VegComp)[0]; //Grass v->veg[SW_SHRUB].cov.fCover = REAL(VegComp)[1]; //Shrub v->veg[SW_TREES].cov.fCover = REAL(VegComp)[2]; //Tree v->veg[SW_FORBS].cov.fCover = REAL(VegComp)[3]; //Forb v->bare_cov.fCover = REAL(VegComp)[4]; //Bare Ground - PROTECT(Albedo = GET_SLOT(SW_VPD, install(cVegProd_names[1]))); + PROTECT(Albedo = GET_SLOT(SW_VPD, install(cVegProd_names[2]))); v->veg[SW_GRASS].cov.albedo = REAL(Albedo)[0]; //Grass v->veg[SW_SHRUB].cov.albedo = REAL(Albedo)[1]; //Shrub v->veg[SW_TREES].cov.albedo = REAL(Albedo)[2]; //Tree v->veg[SW_FORBS].cov.albedo = REAL(Albedo)[3]; //Forb v->bare_cov.albedo = REAL(Albedo)[4]; //Bare Ground - PROTECT(Canopy = GET_SLOT(SW_VPD, install(cVegProd_names[2]))); + PROTECT(Canopy = GET_SLOT(SW_VPD, install(cVegProd_names[3]))); p_Canopy = REAL(Canopy); v->veg[SW_GRASS].cnpy.xinflec = p_Canopy[0]; v->veg[SW_GRASS].cnpy.yinflec = p_Canopy[1]; @@ -471,7 +479,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { v->veg[SW_FORBS].cnpy.slope = p_Canopy[18]; v->veg[SW_FORBS].canopy_height_constant = p_Canopy[19]; - PROTECT(VegInterception = GET_SLOT(SW_VPD, install(cVegProd_names[3]))); + PROTECT(VegInterception = GET_SLOT(SW_VPD, install(cVegProd_names[4]))); p_VegInterception = REAL(VegInterception); v->veg[SW_GRASS].veg_kSmax = p_VegInterception[0]; v->veg[SW_GRASS].veg_kdead = p_VegInterception[1]; @@ -482,26 +490,26 @@ void onSet_SW_VPD(SEXP SW_VPD) { v->veg[SW_FORBS].veg_kSmax = p_VegInterception[6]; v->veg[SW_FORBS].veg_kdead = p_VegInterception[7]; - PROTECT(LitterInterception = GET_SLOT(SW_VPD, install(cVegProd_names[4]))); + PROTECT(LitterInterception = GET_SLOT(SW_VPD, install(cVegProd_names[5]))); p_LitterInterception = REAL(LitterInterception); v->veg[SW_GRASS].lit_kSmax = p_LitterInterception[0]; v->veg[SW_SHRUB].lit_kSmax = p_LitterInterception[1]; v->veg[SW_TREES].lit_kSmax = p_LitterInterception[2]; v->veg[SW_FORBS].lit_kSmax = p_LitterInterception[3]; - PROTECT(EsTpartitioning_param = GET_SLOT(SW_VPD, install(cVegProd_names[5]))); + PROTECT(EsTpartitioning_param = GET_SLOT(SW_VPD, install(cVegProd_names[6]))); v->veg[SW_GRASS].EsTpartitioning_param = REAL(EsTpartitioning_param)[0]; //Grass v->veg[SW_SHRUB].EsTpartitioning_param = REAL(EsTpartitioning_param)[1]; //Shrub v->veg[SW_TREES].EsTpartitioning_param = REAL(EsTpartitioning_param)[2]; //Tree v->veg[SW_FORBS].EsTpartitioning_param = REAL(EsTpartitioning_param)[3]; //Forb - PROTECT(Es_param_limit = GET_SLOT(SW_VPD, install(cVegProd_names[6]))); + PROTECT(Es_param_limit = GET_SLOT(SW_VPD, install(cVegProd_names[7]))); v->veg[SW_GRASS].Es_param_limit = REAL(Es_param_limit)[0]; //Grass v->veg[SW_SHRUB].Es_param_limit = REAL(Es_param_limit)[1]; //Shrub v->veg[SW_TREES].Es_param_limit = REAL(Es_param_limit)[2]; //Tree v->veg[SW_FORBS].Es_param_limit = REAL(Es_param_limit)[3]; //Forb - PROTECT(Shade = GET_SLOT(SW_VPD, install(cVegProd_names[7]))); + PROTECT(Shade = GET_SLOT(SW_VPD, install(cVegProd_names[8]))); p_Shade = REAL(Shade); v->veg[SW_GRASS].shade_scale = p_Shade[0]; v->veg[SW_GRASS].shade_deadmax = p_Shade[1]; @@ -528,8 +536,8 @@ void onSet_SW_VPD(SEXP SW_VPD) { v->veg[SW_FORBS].tr_shade_effects.range = p_Shade[22]; v->veg[SW_FORBS].tr_shade_effects.slope = p_Shade[23]; - PROTECT(Hydraulic_flag = GET_SLOT(SW_VPD, install(cVegProd_names[8]))); - PROTECT(Hydraulic = GET_SLOT(SW_VPD, install(cVegProd_names[9]))); + PROTECT(Hydraulic_flag = GET_SLOT(SW_VPD, install(cVegProd_names[9]))); + PROTECT(Hydraulic = GET_SLOT(SW_VPD, install(cVegProd_names[10]))); v->veg[SW_GRASS].flagHydraulicRedistribution = LOGICAL_POINTER(Hydraulic_flag)[0]; //Grass v->veg[SW_SHRUB].flagHydraulicRedistribution = LOGICAL_POINTER(Hydraulic_flag)[1]; //Shrub v->veg[SW_TREES].flagHydraulicRedistribution = LOGICAL_POINTER(Hydraulic_flag)[2]; //Tree @@ -547,7 +555,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { v->veg[SW_FORBS].swpMatric50 = REAL(Hydraulic)[10]; //Forb v->veg[SW_FORBS].shapeCond = REAL(Hydraulic)[11]; //Forb - PROTECT(CSWP = GET_SLOT(SW_VPD, install(cVegProd_names[10]))); + PROTECT(CSWP = GET_SLOT(SW_VPD, install(cVegProd_names[11]))); v->veg[SW_GRASS].SWPcrit = -10 * REAL(CSWP)[0]; //Grass v->veg[SW_SHRUB].SWPcrit = -10 * REAL(CSWP)[1]; //Shrub v->veg[SW_TREES].SWPcrit = -10 * REAL(CSWP)[2]; //Tree @@ -562,7 +570,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { get_critical_rank(); - PROTECT(MonthlyVeg = GET_SLOT(SW_VPD, install(cVegProd_names[11]))); + PROTECT(MonthlyVeg = GET_SLOT(SW_VPD, install(cVegProd_names[12]))); PROTECT(Grasslands = VECTOR_ELT(MonthlyVeg, SW_GRASS)); p_Grasslands = REAL(Grasslands); for (i = 0; i < 12; i++) { @@ -596,7 +604,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { v->veg[SW_FORBS].lai_conv[i] = p_Forb[i + 12 * 3]; } - PROTECT(CO2Coefficients = GET_SLOT(SW_VPD, install(cVegProd_names[12]))); + PROTECT(CO2Coefficients = GET_SLOT(SW_VPD, install(cVegProd_names[13]))); v->veg[SW_GRASS].co2_bio_coeff1 = REAL(CO2Coefficients)[0]; v->veg[SW_SHRUB].co2_bio_coeff1 = REAL(CO2Coefficients)[1]; v->veg[SW_TREES].co2_bio_coeff1 = REAL(CO2Coefficients)[2]; @@ -620,7 +628,7 @@ void onSet_SW_VPD(SEXP SW_VPD) { if (EchoInits) _echo_VegProd(); - UNPROTECT(17); + UNPROTECT(18); } SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_monthly_ppt_mm, From 557ff9ebba664ffda4e0f48096fa683308ac3f74 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Mon, 8 Aug 2022 12:37:05 -0400 Subject: [PATCH 111/238] Modified `rSW2_estimate_PotNatVeg_composition()` - Properly check for NA using `ISNAN()` - Properly translate Bools using "(Bool) LOGICAL()" --- src/rSW_VegProd.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index 46bc6f35..8da49219 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -646,12 +646,12 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont final_SumGrassesFraction = asReal(SumGrasses_Fraction), C4Variables[3] = {SW_MISSING, SW_MISSING, SW_MISSING}; // Following variable names end with "_D" to denote they are of C type double - double Succulents_Fraction_D = (asReal(Succulents_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Succulents_Fraction); + double Succulents_Fraction_D = ISNAN(asReal(Succulents_Fraction)) ? SW_MISSING : asReal(Succulents_Fraction); double Annuals_Fraction_D = asReal(Annuals_Fraction); - double C4_Fraction_D = (asReal(C4_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(C4_Fraction); - double C3_Fraction_D = (asReal(C3_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(C3_Fraction); - double Shrubs_Fraction_D = (asReal(Shrubs_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Shrubs_Fraction); - double Forbs_Fraction_D = (asReal(Forbs_Fraction) == NA_INTEGER) ? SW_MISSING : asReal(Forbs_Fraction); + double C4_Fraction_D = ISNAN(asReal(C4_Fraction)) ? SW_MISSING : asReal(C4_Fraction); + double C3_Fraction_D = ISNAN(asReal(C3_Fraction)) ? SW_MISSING : asReal(C3_Fraction); + double Shrubs_Fraction_D = ISNAN(asReal(Shrubs_Fraction)) ? SW_MISSING : asReal(Shrubs_Fraction); + double Forbs_Fraction_D = ISNAN(asReal(Forbs_Fraction)) ? SW_MISSING : asReal(Forbs_Fraction); double Trees_Fraction_D = asReal(Trees_Fraction); double BareGround_Fraction_D = asReal(BareGround_Fraction); @@ -665,10 +665,10 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont char *grassesNames[] = {"Grasses_C3", "Grasses_C4", "Grasses_Annuals"}; // "inter_" meaning the intermediate R -> C conversion - int inter_fill_empty_with_BareGround = asLogical(fill_empty_with_BareGround), - inter_warn_extrapolation = asLogical(warn_extrapolation), index, final_isNorth = asLogical(isNorth); + int index; - Bool final_fill_empty_with_BareGround = swFALSE, final_warn_extrapolation = swFALSE; + Bool final_fill_empty_with_BareGround = (Bool) LOGICAL(fill_empty_with_BareGround), + final_warn_extrapolation = (Bool) LOGICAL(warn_extrapolation), final_isNorth = (Bool) LOGICAL(isNorth); SEXP cRelAbL1Names, cRelAbL0Names, cfinalNames, cgrasses, final_RelAbundanceL1, final_RelAbundanceL0, final_grasses, res; @@ -697,16 +697,6 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont namesgets(res, cfinalNames); namesgets(final_grasses, cgrasses); - if(inter_fill_empty_with_BareGround != 0) { - final_fill_empty_with_BareGround = swTRUE; - } - if(inter_warn_extrapolation != 0) { - final_warn_extrapolation = swTRUE; - } - if(final_isNorth != 0) { - final_isNorth = swTRUE; - } - for(index = 0; index < MAX_MONTHS; index++) { final_MonPPT_cm[index] = REAL(mean_monthly_ppt_mm)[index] / 10; final_MonTemp_C[index] = REAL(mean_monthly_Temp_C)[index]; From 2f3e3a16cf9a00de7d7f12f7e17fcbed8d1b9069 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Mon, 8 Aug 2022 12:55:34 -0400 Subject: [PATCH 112/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 93519f35..d5d8f7a9 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 93519f354ec236db6a802661b9a1e7d95f02725f +Subproject commit d5d8f7a94ecdfb67804d4c9f12aa9ec72ce5bf40 From 63e29ca37a84f757c5e801e2407ec83c7120bf96 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 9 Aug 2022 23:37:34 -0400 Subject: [PATCH 113/238] Created intermediate function for `calc_SiteClimate()` --- src/SW_R_init.c | 2 + src/rSW_Weather.c | 140 ++++++++++++++++++++++++++++++++++++++++++++++ src/rSW_Weather.h | 2 + 3 files changed, 144 insertions(+) diff --git a/src/SW_R_init.c b/src/SW_R_init.c index 9c003f82..56fe9ed2 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -12,6 +12,7 @@ extern SEXP onGetInputDataFromFiles(SEXP); extern SEXP onGetOutput(SEXP); extern SEXP rSW2_processAllWeather(SEXP, SEXP); extern SEXP sw_consts(); +extern SEXP rSW2_calc_SiteClimate(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"start", (DL_FUNC) &start, 4}, @@ -20,6 +21,7 @@ static const R_CallMethodDef CallEntries[] = { {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"rSW2_processAllWeather", (DL_FUNC) &rSW2_processAllWeather, 2}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"rSW2_calc_SiteClimate", (DL_FUNC) &rSW2_calc_SiteClimate, 6}, {NULL, NULL, 0} }; diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index f2b682e1..bbad3d36 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -468,3 +468,143 @@ static void rSW2_setAllWeather( } } } + +SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, + SEXP do_C4vars, SEXP do_Cheatgrass_ClimVars, SEXP latitude) { + + SW_WEATHER_HIST **allHist; + + SW_CLIMATE_YEARLY climateOutput; + SW_CLIMATE_CLIM climateAverages; + + int numYears = asInteger(yearEnd) - asInteger(yearStart) + 1, year, calcSiteOutputNum = 10, + deallocate = 0, allocate = 1, index; + + SEXP res, monthlyMean, monthlyMax, monthlyMin, monthlyPPT, MAT_C, MAP_cm, vectorNames, + C4Variables, Cheatgrass, cnamesC4SEXP, cnamesCheatgrassSEXP; + + char *cnames[] = {"meanMonthlyTempC","minMonthlyTempC","maxMonthlyTempC", + "meanMonthlyPPTcm","MAP_cm","MAT_C", "dailyTempMin", "dailyTempMean", + "dailyC4vars","Cheatgrass_ClimVars"}; + + char *cnamesC4[] = {"Month7th_NSadj_MinTemp_C","LengthFreezeFreeGrowingPeriod_NSadj_Days", + "DegreeDaysAbove65F_NSadj_DaysC","Month7th_NSadj_MinTemp_C.sd", "LengthFreezeFreeGrowingPeriod_NSadj_Days.sd", + "DegreeDaysAbove65F_NSadj_DaysC.sd"}; + + char *cnamesCheatgrass[] = {"Month7th_PPT_mm","MeanTemp_ofDriestQuarter_C","MinTemp_of2ndMonth_C", + "Month7th_PPT_mm_SD","MeanTemp_ofDriestQuarter_C_SD","MinTemp_of2ndMonth_C_SD"}; + + monthlyMean = PROTECT(allocVector(REALSXP, MAX_MONTHS)); + monthlyMax = PROTECT(allocVector(REALSXP, MAX_MONTHS)); + monthlyMin = PROTECT(allocVector(REALSXP, MAX_MONTHS)); + monthlyPPT = PROTECT(allocVector(REALSXP, MAX_MONTHS)); + MAT_C = PROTECT(allocVector(REALSXP, 1)); + MAP_cm = PROTECT(allocVector(REALSXP, 1)); + vectorNames = PROTECT(allocVector(STRSXP, calcSiteOutputNum)); + cnamesC4SEXP = PROTECT(allocVector(STRSXP, 6)); + cnamesCheatgrassSEXP = PROTECT(allocVector(STRSXP, 6)); + C4Variables = PROTECT(allocVector(REALSXP, 6)); + Cheatgrass = PROTECT(allocVector(REALSXP, 6)); + + allHist = (SW_WEATHER_HIST **)malloc(sizeof(SW_WEATHER_HIST *) * numYears); + + for(year = 0; year < numYears; year++) { + allHist[year] = (SW_WEATHER_HIST *)malloc(sizeof(SW_WEATHER_HIST)); + } + + Time_init_model(); + + // Fill SOILWAT `allHist` with data from weatherList + rSW2_setAllWeather(weatherList, allHist, asInteger(yearStart), numYears); + + // Allocate memory of structs for climate on SOILWAT side + allocDeallocClimateStructs(allocate, numYears, &climateOutput, &climateAverages); + + // Calculate climate variables + calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput); + + // Average climate variables + averageClimateAcrossYears(&climateOutput, numYears, &climateAverages); + + res = PROTECT(allocVector(VECSXP, calcSiteOutputNum)); + + double *xmonthlyMean = REAL(monthlyMean), *xmonthlyMax = REAL(monthlyMax), + *xmonthlyMin = REAL(monthlyMin), *xmontlyPPT = REAL(monthlyPPT); + + for(index = 0; index < MAX_MONTHS; index++) { + xmonthlyMean[index] = climateAverages.meanTempMon_C[index]; + xmonthlyMax[index] = climateAverages.maxTempMon_C[index]; + xmonthlyMin[index] = climateAverages.minTempMon_C[index]; + xmontlyPPT[index] = climateAverages.PPTMon_cm[index]; + } + + for(index = 0; index < calcSiteOutputNum; index++) { + SET_STRING_ELT(vectorNames, index, mkChar(cnames[index])); + } + + for(index = 0; index < 6; index++) { + SET_STRING_ELT(cnamesC4SEXP, index, mkChar(cnamesC4[index])); + SET_STRING_ELT(cnamesCheatgrassSEXP, index, mkChar(cnamesCheatgrass[index])); + } + + // Set names of res, C4Variables and Cheatgrass + namesgets(res, vectorNames); + namesgets(C4Variables, cnamesC4SEXP); + namesgets(Cheatgrass, cnamesCheatgrassSEXP); + + // Set mean annual temperature and precipitation values + REAL(MAT_C)[0] = climateAverages.meanTemp_C; + REAL(MAP_cm)[0] = climateAverages.PPT_cm; + + // Set C4Variables and Cheatgrass values + REAL(C4Variables)[0] = climateAverages.sdC4[0]; + REAL(C4Variables)[1] = climateAverages.sdC4[1]; + REAL(C4Variables)[2] = climateAverages.sdC4[2]; + + REAL(C4Variables)[3] = climateAverages.minTempJuly_C; + REAL(C4Variables)[4] = climateAverages.frostFree_days; + REAL(C4Variables)[5] = climateAverages.ddAbove65F_degday; + + REAL(Cheatgrass)[0] = climateAverages.sdCheatgrass[0]; + REAL(Cheatgrass)[1] = climateAverages.sdCheatgrass[1]; + REAL(Cheatgrass)[2] = climateAverages.sdCheatgrass[2]; + + REAL(Cheatgrass)[3] = climateAverages.PPTJuly_mm; + REAL(Cheatgrass)[4] = climateAverages.meanTempDriestQtr_C; + REAL(Cheatgrass)[5] = climateAverages.minTempFeb_C; + + // Set mean average monthly temperature + SET_VECTOR_ELT(res, 0, monthlyMean); + + // Set mean minimum temperature + SET_VECTOR_ELT(res, 1, monthlyMax); + + // Set mean maximum temperature + SET_VECTOR_ELT(res, 2, monthlyMin); + + // Set mean annual precipitation (cm) + SET_VECTOR_ELT(res, 3, monthlyPPT); + + // Set mean annual temperature (C) + SET_VECTOR_ELT(res, 4, MAT_C); + + // Set mean annual precipitation (cm) + SET_VECTOR_ELT(res, 5, MAP_cm); + + // Set values of the two standard deviation categories (C4 and cheatgrass) + // in result variable + SET_VECTOR_ELT(res, 8, C4Variables); + SET_VECTOR_ELT(res, 9, Cheatgrass); + + allocDeallocClimateStructs(deallocate, numYears, &climateOutput, &climateAverages); + + UNPROTECT(12); + + for(year = 0; year < numYears; year++) { + free(allHist[year]); + } + free(allHist); + + return res; + +} diff --git a/src/rSW_Weather.h b/src/rSW_Weather.h index ec2b90bc..e0ac08f5 100644 --- a/src/rSW_Weather.h +++ b/src/rSW_Weather.h @@ -10,3 +10,5 @@ SEXP onGet_SW_WTH_setup(void); void onSet_SW_WTH_setup(SEXP SW_WTH); SEXP onGet_WTH_DATA(void); void onSet_WTH_DATA(void); +SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, + SEXP do_C4vars, SEXP do_Cheatgrass_ClimVars, SEXP latitude); From ffb472461bb98782ef12cdd27ad78830f013cc9e Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 9 Aug 2022 23:42:18 -0400 Subject: [PATCH 114/238] Modified/deprecated `calc_SiteClimate()` and helper functions - Deleted and added following functions to "rSOILWAT2_deprecated.R": * `sw_dailyC4_TempVar()` and `sw_Cheatgrass_ClimVar()` - Modified `calc_SiteClimate()` to utilize new intermediate function - Added previous version of `calc_SiteClimate()` to "rSOILWAT2_deprecated.R" --- R/rSOILWAT2_deprecated.R | 221 +++++++++++++++++++++++++++++++ R/sw_Miscellaneous_Functions.R | 235 +++++---------------------------- 2 files changed, 252 insertions(+), 204 deletions(-) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index 0c5c01e9..ea08f09c 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -224,3 +224,224 @@ dbW_addSite <- function(Site_id = NULL, lat = NULL, long = NULL, Label = NULL) { Site_id } + +#' Calculate variables required to estimate percent C4 species in North America +#' +#' @return A named numeric vector of length 6. +#' @references Teeri J.A., Stowe L.G. (1976) Climatic patterns and the +#' distribution of C4 grasses in North America. Oecologia, 23, 1-12. +#' +#' @export +sw_dailyC4_TempVar <- function(dailyTempMin, dailyTempMean, simTime2) { + + temp7 <- simTime2$month_ForEachUsedDay_NSadj == 7 + Month7th_MinTemp_C <- tapply(dailyTempMin[temp7], + simTime2$year_ForEachUsedDay_NSadj[temp7], min) + FrostFree_Days <- tapply(dailyTempMin, simTime2$year_ForEachUsedDay_NSadj, + function(x) { + temp <- rle(x > 0) + if (any(temp$values)) max(temp$lengths[temp$values], na.rm = TRUE) else 0 + }) + + # 18.333 C = 65 F with (65 - 32) * 5 / 9 + temp_base65F <- dailyTempMean - 18.333 + temp_base65F[temp_base65F < 0] <- 0 + DegreeDaysAbove65F_DaysC <- tapply(temp_base65F, + simTime2$year_ForEachUsedDay_NSadj, sum) + + # if southern Hemisphere, then 7th month of last year is not included + nyrs <- seq_along(Month7th_MinTemp_C) + temp <- cbind(Month7th_MinTemp_C[nyrs], FrostFree_Days[nyrs], + DegreeDaysAbove65F_DaysC[nyrs]) + res <- c(apply(temp, 2, mean), apply(temp, 2, sd)) + temp <- c("Month7th_NSadj_MinTemp_C", + "LengthFreezeFreeGrowingPeriod_NSadj_Days", + "DegreeDaysAbove65F_NSadj_DaysC") + names(res) <- c(temp, paste0(temp, ".sd")) + + res +} + +#' Calculate climate variables required to estimate percent cheatgrass cover +#' in North America +#' +#' @section Note: This function does not correct for northern/southern +#' hemisphere. +#' +#' @param monthlyPPT_cm A numeric matrix of monthly precipitation values in +#' centimeter. There are 12 rows, one for each month of the year; +#' and there is one column for each year. +#' @param monthlyTempMean_C A numeric matrix of monthly mean temperature values +#' in degree Celsius. There are 12 rows, one for each month of the year; +#' and there is one column for each year. +#' @param monthlyTempMin_C A numeric matrix of monthly minimum temperature +#' value sin degree Celsius. There are 12 rows, one for each month of the +#' year; and there is one column for each year. +#' +#' @return A named numeric vector of length 6 with mean and standard deviation +#' for \var{Month7th_PPT_mm}, \var{MeanTemp_ofDriestQuarter_C}, and +#' \var{MinTemp_of2ndMonth_C}. +#' +#' @references Brummer, T. J., K. T. Taylor, J. Rotella, B. D. Maxwell, +#' L. J. Rew, and M. Lavin. 2016. Drivers of Bromus tectorum Abundance in +#' the Western North American Sagebrush Steppe. Ecosystems 19:986-1000. +#' +#' @export +sw_Cheatgrass_ClimVar <- function(monthlyPPT_cm, + monthlyTempMean_C = NULL, monthlyTempMin_C = NULL) { + + # Mean precipitation sum of seventh month of the season (i.e., + # July in northern hemisphere) + Month7th_PPT_mm <- 10 * monthlyPPT_cm[7, ] + nyrs <- seq_along(Month7th_PPT_mm) + + # Mean temperature of driest quarter (Bioclim variable 9) + # see \code{link[dismo]{biovars}} + if (!is.null(monthlyTempMean_C)) { + wet <- t(apply(monthlyPPT_cm, 2, rSW2utils::moving_function, + k = 3, win_fun = sum, na.rm = TRUE, circular = TRUE + )) + tmp <- t(apply(monthlyTempMean_C, 2, rSW2utils::moving_function, + k = 3, win_fun = mean, na.rm = TRUE, circular = TRUE + )) + dryqrt <- cbind( + seq_len(ncol(monthlyPPT_cm)), + as.integer(apply(wet, 1, which.min)) + ) + MeanTemp_ofDriestQuarter_C <- tmp[dryqrt] + + } else { + MeanTemp_ofDriestQuarter_C <- rep(NA, length(Month7th_PPT_mm)) + } + + # Minimum February temperature + if (!is.null(monthlyTempMin_C)) { + MinTemp_of2ndMonth_C <- monthlyTempMin_C[2, , ] + } else { + MinTemp_of2ndMonth_C <- rep(NA, length(Month7th_PPT_mm)) + } + + + # Aggregate + temp <- cbind( + Month7th_PPT_mm[nyrs], + MeanTemp_ofDriestQuarter_C[nyrs], + MinTemp_of2ndMonth_C[nyrs] + ) + + res <- c(apply(temp, 2, mean), apply(temp, 2, sd)) + temp <- c("Month7th_PPT_mm", "MeanTemp_ofDriestQuarter_C", + "MinTemp_of2ndMonth_C") + names(res) <- c(temp, paste0(temp, "_SD")) + + res +} + +# Old way of calculating climate variables +calc_SiteClimate_old <- function(weatherList, year.start = NA, year.end = NA, + do_C4vars = FALSE, do_Cheatgrass_ClimVars = FALSE, simTime2 = NULL, + latitude = 90) { + + x <- dbW_weatherData_to_dataframe(weatherList) + + # Trim to requested years + if (!is.na(year.start)) { + x <- x[x[, "Year"] >= year.start, ] + } else { + year.start <- x[1, "Year"] + } + + if (!is.na(year.end)) { + x <- x[x[, "Year"] <= year.end, ] + } else { + year.end <- x[nrow(x), "Year"] + } + + years <- unique(x[, "Year"]) + + if (length(years) == 0) { + stop("'calc_SiteClimate': no weather data available for ", + "requested range of years") + } + + # Mean daily temperature + Tmean_C <- rowMeans(x[, c("Tmax_C", "Tmin_C")]) + + # Get time sequence information + is_simTime2_good <- !is.null(simTime2) && + identical(years, simTime2[["useyrs_NSadj"]]) && + !is.null(simTime2[["month_ForEachUsedDay"]]) + + is_simTime2_good_for_C4vars <- if (do_C4vars) { + if (is_simTime2_good) { + !is.null(simTime2[["month_ForEachUsedDay_NSadj"]]) && + !is.null(simTime2[["year_ForEachUsedDay_NSadj"]]) + } else { + FALSE + } + } else { + TRUE + } + + if (is_simTime2_good && is_simTime2_good_for_C4vars) { + st2 <- simTime2 + } else { + st2 <- rSW2data::simTiming_ForEachUsedTimeUnit( + useyrs = years, + sim_tscales = "daily", + latitude = latitude, + account_NorthSouth = do_C4vars + ) + } + + + # Calculate monthly values + index <- st2[["month_ForEachUsedDay"]] + 100 * x[, "Year"] + + mon_Temp <- vapply( + list(Tmean_C, x[, "Tmin_C"], x[, "Tmax_C"]), + function(data) matrix(tapply(data, index, mean, na.rm = TRUE), nrow = 12), + FUN.VALUE = matrix(NA_real_, nrow = 12, ncol = length(years)) + ) + + mon_PPT <- matrix(tapply(x[, "PPT_cm"], index, sum, na.rm = TRUE), nrow = 12) + + list( + # Calculate mean monthly values + meanMonthlyTempC = apply(mon_Temp[, , 1, drop = FALSE], 1, mean, + na.rm = TRUE), + minMonthlyTempC = apply(mon_Temp[, , 2, drop = FALSE], 1, mean, + na.rm = TRUE), + maxMonthlyTempC = apply(mon_Temp[, , 3, drop = FALSE], 1, mean, + na.rm = TRUE), + meanMonthlyPPTcm = apply(mon_PPT, 1, mean, na.rm = TRUE), + + # Calculate mean annual values + MAP_cm = sum(mon_PPT, na.rm = TRUE) / length(years), + MAT_C = mean(Tmean_C, na.rm = TRUE), + + # If C4-variables are requested + dailyTempMin = if (do_C4vars) x[, "Tmin_C"] else NA, + dailyTempMean = if (do_C4vars) Tmean_C else NA, + dailyC4vars = if (do_C4vars) { + sw_dailyC4_TempVar( + dailyTempMin = x[, "Tmin_C"], + dailyTempMean = Tmean_C, + simTime2 = st2 + ) + } else { + NA + }, + + # If cheatgrass-variables are requested + Cheatgrass_ClimVars = if (do_Cheatgrass_ClimVars) { + sw_Cheatgrass_ClimVar( + monthlyPPT_cm = mon_PPT, + monthlyTempMean_C = mon_Temp[, , 1, drop = FALSE], + monthlyTempMin_C = mon_Temp[, , 2, drop = FALSE] + ) + } else { + NA + } + ) +} diff --git a/R/sw_Miscellaneous_Functions.R b/R/sw_Miscellaneous_Functions.R index 2b242246..8b2c52fb 100644 --- a/R/sw_Miscellaneous_Functions.R +++ b/R/sw_Miscellaneous_Functions.R @@ -1,115 +1,3 @@ -#' Calculate variables required to estimate percent C4 species in North America -#' -#' @return A named numeric vector of length 6. -#' @references Teeri J.A., Stowe L.G. (1976) Climatic patterns and the -#' distribution of C4 grasses in North America. Oecologia, 23, 1-12. -#' -#' @export -sw_dailyC4_TempVar <- function(dailyTempMin, dailyTempMean, simTime2) { - - temp7 <- simTime2$month_ForEachUsedDay_NSadj == 7 - Month7th_MinTemp_C <- tapply(dailyTempMin[temp7], - simTime2$year_ForEachUsedDay_NSadj[temp7], min) - FrostFree_Days <- tapply(dailyTempMin, simTime2$year_ForEachUsedDay_NSadj, - function(x) { - temp <- rle(x > 0) - if (any(temp$values)) max(temp$lengths[temp$values], na.rm = TRUE) else 0 - }) - - # 18.333 C = 65 F with (65 - 32) * 5 / 9 - temp_base65F <- dailyTempMean - 18.333 - temp_base65F[temp_base65F < 0] <- 0 - DegreeDaysAbove65F_DaysC <- tapply(temp_base65F, - simTime2$year_ForEachUsedDay_NSadj, sum) - - # if southern Hemisphere, then 7th month of last year is not included - nyrs <- seq_along(Month7th_MinTemp_C) - temp <- cbind(Month7th_MinTemp_C[nyrs], FrostFree_Days[nyrs], - DegreeDaysAbove65F_DaysC[nyrs]) - res <- c(apply(temp, 2, mean), apply(temp, 2, sd)) - temp <- c("Month7th_NSadj_MinTemp_C", - "LengthFreezeFreeGrowingPeriod_NSadj_Days", - "DegreeDaysAbove65F_NSadj_DaysC") - names(res) <- c(temp, paste0(temp, ".sd")) - - res -} - -#' Calculate climate variables required to estimate percent cheatgrass cover -#' in North America -#' -#' @section Note: This function does not correct for northern/southern -#' hemisphere. -#' -#' @param monthlyPPT_cm A numeric matrix of monthly precipitation values in -#' centimeter. There are 12 rows, one for each month of the year; -#' and there is one column for each year. -#' @param monthlyTempMean_C A numeric matrix of monthly mean temperature values -#' in degree Celsius. There are 12 rows, one for each month of the year; -#' and there is one column for each year. -#' @param monthlyTempMin_C A numeric matrix of monthly minimum temperature -#' value sin degree Celsius. There are 12 rows, one for each month of the -#' year; and there is one column for each year. -#' -#' @return A named numeric vector of length 6 with mean and standard deviation -#' for \var{Month7th_PPT_mm}, \var{MeanTemp_ofDriestQuarter_C}, and -#' \var{MinTemp_of2ndMonth_C}. -#' -#' @references Brummer, T. J., K. T. Taylor, J. Rotella, B. D. Maxwell, -#' L. J. Rew, and M. Lavin. 2016. Drivers of Bromus tectorum Abundance in -#' the Western North American Sagebrush Steppe. Ecosystems 19:986-1000. -#' -#' @export -sw_Cheatgrass_ClimVar <- function(monthlyPPT_cm, - monthlyTempMean_C = NULL, monthlyTempMin_C = NULL) { - - # Mean precipitation sum of seventh month of the season (i.e., - # July in northern hemisphere) - Month7th_PPT_mm <- 10 * monthlyPPT_cm[7, ] - nyrs <- seq_along(Month7th_PPT_mm) - - # Mean temperature of driest quarter (Bioclim variable 9) - # see \code{link[dismo]{biovars}} - if (!is.null(monthlyTempMean_C)) { - wet <- t(apply(monthlyPPT_cm, 2, rSW2utils::moving_function, - k = 3, win_fun = sum, na.rm = TRUE, circular = TRUE - )) - tmp <- t(apply(monthlyTempMean_C, 2, rSW2utils::moving_function, - k = 3, win_fun = mean, na.rm = TRUE, circular = TRUE - )) - dryqrt <- cbind( - seq_len(ncol(monthlyPPT_cm)), - as.integer(apply(wet, 1, which.min)) - ) - MeanTemp_ofDriestQuarter_C <- tmp[dryqrt] - - } else { - MeanTemp_ofDriestQuarter_C <- rep(NA, length(Month7th_PPT_mm)) - } - - # Minimum February temperature - if (!is.null(monthlyTempMin_C)) { - MinTemp_of2ndMonth_C <- monthlyTempMin_C[2, , ] - } else { - MinTemp_of2ndMonth_C <- rep(NA, length(Month7th_PPT_mm)) - } - - - # Aggregate - temp <- cbind( - Month7th_PPT_mm[nyrs], - MeanTemp_ofDriestQuarter_C[nyrs], - MinTemp_of2ndMonth_C[nyrs] - ) - - res <- c(apply(temp, 2, mean), apply(temp, 2, sd)) - temp <- c("Month7th_PPT_mm", "MeanTemp_ofDriestQuarter_C", - "MinTemp_of2ndMonth_C") - names(res) <- c(temp, paste0(temp, "_SD")) - - res -} - #' Calculate climate variables from daily weather #' #' @param weatherList A list. Each element is an object of class @@ -174,108 +62,47 @@ calc_SiteClimate <- function(weatherList, year.start = NA, year.end = NA, do_C4vars = FALSE, do_Cheatgrass_ClimVars = FALSE, simTime2 = NULL, latitude = 90) { - x <- dbW_weatherData_to_dataframe(weatherList) - - # Trim to requested years - if (!is.na(year.start)) { - x <- x[x[, "Year"] >= year.start, ] - } else { - year.start <- x[1, "Year"] - } - - if (!is.na(year.end)) { - x <- x[x[, "Year"] <= year.end, ] - } else { - year.end <- x[nrow(x), "Year"] - } - - years <- unique(x[, "Year"]) - - if (length(years) == 0) { - stop("'calc_SiteClimate': no weather data available for ", - "requested range of years") - } - - # Mean daily temperature - Tmean_C <- rowMeans(x[, c("Tmax_C", "Tmin_C")]) - - # Get time sequence information - is_simTime2_good <- !is.null(simTime2) && - identical(years, simTime2[["useyrs_NSadj"]]) && - !is.null(simTime2[["month_ForEachUsedDay"]]) + x <- dbW_weatherData_to_dataframe(weatherList) - is_simTime2_good_for_C4vars <- if (do_C4vars) { - if (is_simTime2_good) { - !is.null(simTime2[["month_ForEachUsedDay_NSadj"]]) && - !is.null(simTime2[["year_ForEachUsedDay_NSadj"]]) + # Trim to requested years + if (!is.na(year.start)) { + x <- x[x[, "Year"] >= year.start, ] } else { - FALSE + year.start <- x[1, "Year"] } - } else { - TRUE - } - - if (is_simTime2_good && is_simTime2_good_for_C4vars) { - st2 <- simTime2 - } else { - st2 <- rSW2data::simTiming_ForEachUsedTimeUnit( - useyrs = years, - sim_tscales = "daily", - latitude = latitude, - account_NorthSouth = do_C4vars - ) - } - - - # Calculate monthly values - index <- st2[["month_ForEachUsedDay"]] + 100 * x[, "Year"] - mon_Temp <- vapply( - list(Tmean_C, x[, "Tmin_C"], x[, "Tmax_C"]), - function(data) matrix(tapply(data, index, mean, na.rm = TRUE), nrow = 12), - FUN.VALUE = matrix(NA_real_, nrow = 12, ncol = length(years)) - ) + if (!is.na(year.end)) { + x <- x[x[, "Year"] <= year.end, ] + } else { + year.end <- x[nrow(x), "Year"] + } - mon_PPT <- matrix(tapply(x[, "PPT_cm"], index, sum, na.rm = TRUE), nrow = 12) + years <- unique(x[, "Year"]) - list( - # Calculate mean monthly values - meanMonthlyTempC = apply(mon_Temp[, , 1, drop = FALSE], 1, mean, - na.rm = TRUE), - minMonthlyTempC = apply(mon_Temp[, , 2, drop = FALSE], 1, mean, - na.rm = TRUE), - maxMonthlyTempC = apply(mon_Temp[, , 3, drop = FALSE], 1, mean, - na.rm = TRUE), - meanMonthlyPPTcm = apply(mon_PPT, 1, mean, na.rm = TRUE), + if (length(years) == 0) { + stop("'calc_SiteClimate': no weather data available for ", + "requested range of years") + } - # Calculate mean annual values - MAP_cm = sum(mon_PPT, na.rm = TRUE) / length(years), - MAT_C = mean(Tmean_C, na.rm = TRUE), + # Mean daily temperature + Tmean_C <- rowMeans(x[, c("Tmax_C", "Tmin_C")]) - # If C4-variables are requested - dailyTempMin = if (do_C4vars) x[, "Tmin_C"] else NA, - dailyTempMean = if (do_C4vars) Tmean_C else NA, - dailyC4vars = if (do_C4vars) { - sw_dailyC4_TempVar( - dailyTempMin = x[, "Tmin_C"], - dailyTempMean = Tmean_C, - simTime2 = st2 + res <- .Call(C_rSW2_calc_SiteClimate, + weatherList, + year.start, + year.end, + do_C4vars, + do_Cheatgrass_ClimVars, + latitude ) - } else { - NA - }, - # If cheatgrass-variables are requested - Cheatgrass_ClimVars = if (do_Cheatgrass_ClimVars) { - sw_Cheatgrass_ClimVar( - monthlyPPT_cm = mon_PPT, - monthlyTempMean_C = mon_Temp[, , 1, drop = FALSE], - monthlyTempMin_C = mon_Temp[, , 2, drop = FALSE] - ) - } else { - NA - } - ) + res[["dailyTempMin"]] <- if(do_C4vars) x[, "Tmin_C"] else NA + res[["dailyTempMean"]] <- if(do_C4vars) Tmean_C else NA + res[["dailyC4vars"]] <- if(do_C4vars) res[["dailyC4vars"]] else NA + res[["Cheatgrass_ClimVars"]] <- if(do_Cheatgrass_ClimVars) + res[["Cheatgrass_ClimVars"]] else NA + + res } From a529688b0eadf437fd14bc54377303d967cccbcf Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 20:15:13 -0400 Subject: [PATCH 115/238] Added `.Deprecated()` in three new deprecated functions --- R/rSOILWAT2_deprecated.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index ea08f09c..f3f8d631 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -233,7 +233,7 @@ dbW_addSite <- function(Site_id = NULL, lat = NULL, long = NULL, Label = NULL) { #' #' @export sw_dailyC4_TempVar <- function(dailyTempMin, dailyTempMean, simTime2) { - + .Deprecated("calc_SiteClimate") temp7 <- simTime2$month_ForEachUsedDay_NSadj == 7 Month7th_MinTemp_C <- tapply(dailyTempMin[temp7], simTime2$year_ForEachUsedDay_NSadj[temp7], min) @@ -289,7 +289,7 @@ sw_dailyC4_TempVar <- function(dailyTempMin, dailyTempMean, simTime2) { #' @export sw_Cheatgrass_ClimVar <- function(monthlyPPT_cm, monthlyTempMean_C = NULL, monthlyTempMin_C = NULL) { - + .Deprecated("calc_SiteClimate") # Mean precipitation sum of seventh month of the season (i.e., # July in northern hemisphere) Month7th_PPT_mm <- 10 * monthlyPPT_cm[7, ] @@ -341,7 +341,7 @@ sw_Cheatgrass_ClimVar <- function(monthlyPPT_cm, calc_SiteClimate_old <- function(weatherList, year.start = NA, year.end = NA, do_C4vars = FALSE, do_Cheatgrass_ClimVars = FALSE, simTime2 = NULL, latitude = 90) { - + .Deprecated("calc_SiteClimate") x <- dbW_weatherData_to_dataframe(weatherList) # Trim to requested years From 029c33dfc40d8431c95594f95e088cb5ef14ce23 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 20:58:40 -0400 Subject: [PATCH 116/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index d5d8f7a9..3b0d8a3d 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit d5d8f7a94ecdfb67804d4c9f12aa9ec72ce5bf40 +Subproject commit 3b0d8a3d62a9920370e7958b9d2fe2a322728b9f From 845f5d9f252344c6cf89d361be128c40ca248cc5 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 21:00:35 -0400 Subject: [PATCH 117/238] Modified intermediate climate function `rSW2_calc_SiteClimate()` - Fixed value placement of cheatgrass and C4 variables - Accommodated `calcSiteClimate()` call with latitude input --- src/rSW_Weather.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index bbad3d36..5eaa0503 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -521,7 +521,7 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, allocDeallocClimateStructs(allocate, numYears, &climateOutput, &climateAverages); // Calculate climate variables - calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput); + calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput, asReal(latitude)); // Average climate variables averageClimateAcrossYears(&climateOutput, numYears, &climateAverages); @@ -557,21 +557,22 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, REAL(MAP_cm)[0] = climateAverages.PPT_cm; // Set C4Variables and Cheatgrass values - REAL(C4Variables)[0] = climateAverages.sdC4[0]; - REAL(C4Variables)[1] = climateAverages.sdC4[1]; - REAL(C4Variables)[2] = climateAverages.sdC4[2]; - REAL(C4Variables)[3] = climateAverages.minTempJuly_C; - REAL(C4Variables)[4] = climateAverages.frostFree_days; - REAL(C4Variables)[5] = climateAverages.ddAbove65F_degday; + REAL(C4Variables)[0] = climateAverages.minTempJuly_C; + REAL(C4Variables)[1] = climateAverages.frostFree_days; + REAL(C4Variables)[2] = climateAverages.ddAbove65F_degday; - REAL(Cheatgrass)[0] = climateAverages.sdCheatgrass[0]; - REAL(Cheatgrass)[1] = climateAverages.sdCheatgrass[1]; - REAL(Cheatgrass)[2] = climateAverages.sdCheatgrass[2]; + REAL(C4Variables)[3] = climateAverages.sdC4[0]; + REAL(C4Variables)[4] = climateAverages.sdC4[1]; + REAL(C4Variables)[5] = climateAverages.sdC4[2]; - REAL(Cheatgrass)[3] = climateAverages.PPTJuly_mm; - REAL(Cheatgrass)[4] = climateAverages.meanTempDriestQtr_C; - REAL(Cheatgrass)[5] = climateAverages.minTempFeb_C; + REAL(Cheatgrass)[0] = climateAverages.PPTJuly_mm; + REAL(Cheatgrass)[1] = climateAverages.meanTempDriestQtr_C; + REAL(Cheatgrass)[2] = climateAverages.minTempFeb_C; + + REAL(Cheatgrass)[3] = climateAverages.sdCheatgrass[0]; + REAL(Cheatgrass)[4] = climateAverages.sdCheatgrass[1]; + REAL(Cheatgrass)[5] = climateAverages.sdCheatgrass[2]; // Set mean average monthly temperature SET_VECTOR_ELT(res, 0, monthlyMean); From 7baa106848a401cd9af2d1d116c17b713c8b9ffd Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 22:03:19 -0400 Subject: [PATCH 118/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 3b0d8a3d..72be4ba3 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 3b0d8a3d62a9920370e7958b9d2fe2a322728b9f +Subproject commit 72be4ba34f4ed4433342993eff6b213c81f5dbc5 From eb1289f878379af1369cadb99143e53345691d26 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 22:03:34 -0400 Subject: [PATCH 119/238] Fixed errors in deprecated/E_swProd.R - Added missing parenthesis in "E_swProd.R" - Corrected overlapping code in "rSOILWAT_deprecated.R" - Added `.Deprecated()` for `estimate_PotNatVeg_composition_old()` --- R/E_swProd.R | 2 +- R/rSOILWAT2_deprecated.R | 107 ++++++++++++++++++++------------------- 2 files changed, 57 insertions(+), 52 deletions(-) diff --git a/R/E_swProd.R b/R/E_swProd.R index c1a5e893..07c56154 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -66,7 +66,7 @@ swProd_validity <- function(object) { nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] if (length(object@veg_method) != 1 || - !all(is.na(object@veg_method) | (object@veg_method >= 0) & object@veg_method <= 1) { + !all(is.na(object@veg_method) | (object@veg_method >= 0) & object@veg_method <= 1)) { msg <- "@veg_method must have 1 values between 0 and 1." val <- if (isTRUE(val)) msg else c(val, msg) } diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index e8e694cc..68f30f03 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -394,8 +394,59 @@ calc_SiteClimate_old <- function(weatherList, year.start = NA, year.end = NA, ) } + # Calculate monthly values + index <- st2[["month_ForEachUsedDay"]] + 100 * x[, "Year"] + + mon_Temp <- vapply( + list(Tmean_C, x[, "Tmin_C"], x[, "Tmax_C"]), + function(data) matrix(tapply(data, index, mean, na.rm = TRUE), nrow = 12), + FUN.VALUE = matrix(NA_real_, nrow = 12, ncol = length(years)) + ) + + mon_PPT <- matrix(tapply(x[, "PPT_cm"], index, sum, na.rm = TRUE), nrow = 12) + + list( + # Calculate mean monthly values + meanMonthlyTempC = apply(mon_Temp[, , 1, drop = FALSE], 1, mean, + na.rm = TRUE), + minMonthlyTempC = apply(mon_Temp[, , 2, drop = FALSE], 1, mean, + na.rm = TRUE), + maxMonthlyTempC = apply(mon_Temp[, , 3, drop = FALSE], 1, mean, + na.rm = TRUE), + meanMonthlyPPTcm = apply(mon_PPT, 1, mean, na.rm = TRUE), + + # Calculate mean annual values + MAP_cm = sum(mon_PPT, na.rm = TRUE) / length(years), + MAT_C = mean(Tmean_C, na.rm = TRUE), + + # If C4-variables are requested + dailyTempMin = if (do_C4vars) x[, "Tmin_C"] else NA, + dailyTempMean = if (do_C4vars) Tmean_C else NA, + dailyC4vars = if (do_C4vars) { + sw_dailyC4_TempVar( + dailyTempMin = x[, "Tmin_C"], + dailyTempMean = Tmean_C, + simTime2 = st2 + ) + } else { + NA + }, + + # If cheatgrass-variables are requested + Cheatgrass_ClimVars = if (do_Cheatgrass_ClimVars) { + sw_Cheatgrass_ClimVar( + monthlyPPT_cm = mon_PPT, + monthlyTempMean_C = mon_Temp[, , 1, drop = FALSE], + monthlyTempMin_C = mon_Temp[, , 2, drop = FALSE] + ) + } else { + NA + } + ) +} + # Old way of calculating esimates of natural vegetation cover -estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, +estimate_PotNatVeg_composition_old <- function(MAP_mm, MAT_C, mean_monthly_ppt_mm, mean_monthly_Temp_C, dailyC4vars = NULL, isNorth = TRUE, shrub_limit = 0.2, fix_succulents = FALSE, Succulents_Fraction = NA, @@ -409,7 +460,7 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, fix_BareGround = TRUE, BareGround_Fraction = 0, fill_empty_with_BareGround = TRUE, warn_extrapolation = TRUE) { - + .Deprecated("estimate_PotNatVeg_composition") veg_types <- c( "Succulents", "Forbs", "Grasses_C3", "Grasses_C4", "Grasses_Annuals", @@ -521,6 +572,9 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, "'estimate_PotNatVeg_composition': ", "User defined relative abundance values sum to more than ", "1 = full land cover." + ) + } + #--- Incomplete surface cover veg_cover <- input_cover @@ -831,54 +885,5 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, # Relative contributions of sub-types to the grass type Grasses = c3c4ann - - # Calculate monthly values - index <- st2[["month_ForEachUsedDay"]] + 100 * x[, "Year"] - - mon_Temp <- vapply( - list(Tmean_C, x[, "Tmin_C"], x[, "Tmax_C"]), - function(data) matrix(tapply(data, index, mean, na.rm = TRUE), nrow = 12), - FUN.VALUE = matrix(NA_real_, nrow = 12, ncol = length(years)) - ) - - mon_PPT <- matrix(tapply(x[, "PPT_cm"], index, sum, na.rm = TRUE), nrow = 12) - - list( - # Calculate mean monthly values - meanMonthlyTempC = apply(mon_Temp[, , 1, drop = FALSE], 1, mean, - na.rm = TRUE), - minMonthlyTempC = apply(mon_Temp[, , 2, drop = FALSE], 1, mean, - na.rm = TRUE), - maxMonthlyTempC = apply(mon_Temp[, , 3, drop = FALSE], 1, mean, - na.rm = TRUE), - meanMonthlyPPTcm = apply(mon_PPT, 1, mean, na.rm = TRUE), - - # Calculate mean annual values - MAP_cm = sum(mon_PPT, na.rm = TRUE) / length(years), - MAT_C = mean(Tmean_C, na.rm = TRUE), - - # If C4-variables are requested - dailyTempMin = if (do_C4vars) x[, "Tmin_C"] else NA, - dailyTempMean = if (do_C4vars) Tmean_C else NA, - dailyC4vars = if (do_C4vars) { - sw_dailyC4_TempVar( - dailyTempMin = x[, "Tmin_C"], - dailyTempMean = Tmean_C, - simTime2 = st2 - ) - } else { - NA - }, - - # If cheatgrass-variables are requested - Cheatgrass_ClimVars = if (do_Cheatgrass_ClimVars) { - sw_Cheatgrass_ClimVar( - monthlyPPT_cm = mon_PPT, - monthlyTempMean_C = mon_Temp[, , 1, drop = FALSE], - monthlyTempMin_C = mon_Temp[, , 2, drop = FALSE] - ) - } else { - NA - } ) } From cdde0f42a459e7e055b3bd3db514d3fd8c26f2ae Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 16 Aug 2022 22:04:54 -0400 Subject: [PATCH 120/238] R/intermediate function for vegetation handle values correctly - R function handles if a value is fixed or not and the rest is handled in the intermediate function (by testing for NAN) - `rSW2_estimate_PotNatVeg_composition()` eliminates the chance of a user specifying "NA" and using it as "valid" input --- R/sw_Vegetation.R | 54 +++++++++++++++++++++++++++++++++++++++-------- src/rSW_VegProd.c | 6 +++--- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/R/sw_Vegetation.R b/R/sw_Vegetation.R index 5c9d8425..6ebe74de 100644 --- a/R/sw_Vegetation.R +++ b/R/sw_Vegetation.R @@ -192,19 +192,55 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, mean_monthly_ppt_mm, mean_monthly_Temp_C, shrub_limit, - SumGrasses_Fraction, + if(fix_sumgrasses) { + SumGrasses_Fraction + } else { + NA + }, fill_empty_with_BareGround, warn_extrapolation, dailyC4vars, isNorth, - Succulents_Fraction, - Annuals_Fraction, - C4_Fraction, - C3_Fraction, - Shrubs_Fraction, - Forbs_Fraction, - Trees_Fraction, - BareGround_Fraction + if(fix_succulents) { + Succulents_Fraction + } else { + NA + }, + if(fix_annuals) { + Annuals_Fraction + } else { + NA + }, + if(fix_C4grasses) { + C4_Fraction + } else { + NA + }, + if(fix_C3grasses) { + C3_Fraction + } else { + NA + }, + if(fix_shrubs) { + Shrubs_Fraction + } else { + NA + }, + if(fix_forbs) { + Forbs_Fraction + } else { + NA + }, + if(fix_trees) { + Trees_Fraction + } else { + NA + }, + if(fix_BareGround) { + BareGround_Fraction + } else { + NA + } ) res diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index 8da49219..03eb7b91 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -647,13 +647,13 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont // Following variable names end with "_D" to denote they are of C type double double Succulents_Fraction_D = ISNAN(asReal(Succulents_Fraction)) ? SW_MISSING : asReal(Succulents_Fraction); - double Annuals_Fraction_D = asReal(Annuals_Fraction); + double Annuals_Fraction_D = ISNAN(asReal(Annuals_Fraction)) ? 0.0 : asReal(Annuals_Fraction); double C4_Fraction_D = ISNAN(asReal(C4_Fraction)) ? SW_MISSING : asReal(C4_Fraction); double C3_Fraction_D = ISNAN(asReal(C3_Fraction)) ? SW_MISSING : asReal(C3_Fraction); double Shrubs_Fraction_D = ISNAN(asReal(Shrubs_Fraction)) ? SW_MISSING : asReal(Shrubs_Fraction); double Forbs_Fraction_D = ISNAN(asReal(Forbs_Fraction)) ? SW_MISSING : asReal(Forbs_Fraction); - double Trees_Fraction_D = asReal(Trees_Fraction); - double BareGround_Fraction_D = asReal(BareGround_Fraction); + double Trees_Fraction_D = ISNAN(asReal(Trees_Fraction)) ? 0.0 : asReal(Trees_Fraction); + double BareGround_Fraction_D = ISNAN(asReal(BareGround_Fraction)) ? 0.0 : asReal(BareGround_Fraction); double inputValues_D[8] = {Succulents_Fraction_D, Annuals_Fraction_D, C4_Fraction_D, C3_Fraction_D, Shrubs_Fraction_D, Forbs_Fraction_D, Trees_Fraction_D, BareGround_Fraction_D}; From 435dbba832ef04ab6112204a98b556fbad0cc3fe Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 19 Aug 2022 12:27:41 -0400 Subject: [PATCH 121/238] Updated data and submodule --- data/sw2_tr_CO2a.rda | Bin 21736 -> 21755 bytes data/sw2_tr_VegBiom.rda | Bin 624 -> 631 bytes data/sw2_trco_table.rda | Bin 6744 -> 6750 bytes src/SOILWAT2 | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data/sw2_tr_CO2a.rda b/data/sw2_tr_CO2a.rda index e5b2b3f6bdfb73575415d9a280dfc47ddabc77b7..0fb89683b2c9c20000914f9a298f8551520c8054 100644 GIT binary patch literal 21755 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 literal 21736 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 diff --git a/data/sw2_tr_VegBiom.rda b/data/sw2_tr_VegBiom.rda index 93853587f0c323adcba783101b313e1b27167e3e..7d903021e066cb0f1b0fac5f350ce346eb33c98a 100644 GIT binary patch delta 604 zcmV-i0;B!#1os3ELRx4!F+o`-Q(4g7&%colD1U9)#kv|wpOK+YNrc*lAkpe+qd;gH z28MtQ4Ff|)hJ#O2(16n*(@02w*+2jQ0009(8UsT{nhhEN4FCXQlxTo5XaH%W2mlQ- z8Z

    0000oWMF`3B@z^90ig8_Gz}U6G#Exe27nC!Xk^dM>rsIsjR>THSIVe-m=ea3$3Sg;Hc|h90%YqCIYct zyTH^pjFrQL9RMb_xg}_X7$g)XVk_cM$yTjUdA{`Y(g1puK!@#dRKXpP7|2tA zQe3_S2>E{8%WxekT@tFA{bV*4KSc__(G?SP5I+#0xroJt2<5Uh0Sn~_fgfPPTsC4{ qgqoWmG(&RGh6rO9>J6<00*~;(oFL&!g%Jfm#oUoj6eKh^v+uzDF85#n delta 597 zcmV-b0;>J@1n>k7LRx4!F+o`-Q(1)SFWiw1D1Th%7U*dzenyj1(qT5Ch%|bdXwVu4 zfuW!SLqO2cp`g>$^wI-NgHzH?5(8-(8UO%f7=Qo2_#7dfCJP3007Vc&;S4c00003O@mk9aG0rI5+9e80|gTX zg?|u5G$c#$2nL_y!*VG0-OWD+!Uqu>0{m!*?F0!14<%biNX7u-Y!IlHC~&gM%$Uzr zQ3yJe4@p#0r9{bfxDEIy!d_J#f-pW56ZTn>Km*RqIXUxWW3&M=Z^%ppfJAgm`VuBP zuaQ6r=Ytc6LtN6Mmp$)_0W5@=5QDT6dVisl!Hni+ZbuB^%4w9N03(9Da*V=3Jrl>~ z4*`M(L|nQUUiZJ88PGL9y~RI9C~>HT3Rq|GN(@urHsnZzfZPNqi%IP*q8aX=u1X)bl|>LiAZ`5#kDr12G=3 zR}GMG0Git5m7E`b3~ zmv6>H0uo*kOiI}_cmjjnoEak}tUd@n(fZhF%@`C&Sxy8mq$GrVg9&{+#J5Q^w19C9 jE*M~jF-<|LYXKwpaCL}?Nuof8KgHaUP81{|I*a!Je{}GB diff --git a/data/sw2_trco_table.rda b/data/sw2_trco_table.rda index 8c9fae114cd81acc5d15e9a597a5c8a5bddf4ca5..d55ae62be84ca8bdc656da69d08944c53d249500 100644 GIT binary patch literal 6750 zcmV-k8lmMvT4*^jL0KkKSunbn696Q!|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0 z|NsC0|Nr0>e0}dc@!?9(VQcOlwUO_M@zun7dNc*SoJa};tLds0SGDf%OVxV&d)2j! z*1c_m*SdtIK#UT3MA{S5H1$1C(FkE0dICJ5>TIKF8hTAKc&3@D>SAe(riPwS8hVDC zNXWutQ%9+%s4*U=kZO35>VBh5Pg5E_CYo&!(@i~0MxKgzC#cl@8dKV!(y2X7G}?@s zG&BdKz<|?D2b2bY88r1729HxiAbM(gjWT+hLsQTR&Z6Uo#X!M$GL)7vhew1%iJu;rBq%;rJJxm}yO+8OZqk5seQ)x8F-jX&` zMwtUcMvbT>k`UC*Q)x}9`X;B8!3>!(q%s&0qsT+jH1r_Q4H_7O0%@ir38oRC8VwBw z5H!kdcp)lh`Isn1CW8*tBf6a+0#r^AIyLN+#6KPVE(KXO-=?>o*hh8f_hs6F`(QvqQd`eI1m;2)Jxb)nPOKN^qM=qzC zRNk($o6hIf^eehKvcII`r(t7d)au#woZ4Fdme%(dH(hs5yB(Xq_1)#`%Zuw{FhGDr-|3c-Md&?^ci$#IHh zi3ucWMgWX+5r$xp5I#YqAWK<`vN?wkL_QJ1Pvwjef;0dk5IkVU3|yozs@x>HR_*UK z;s@I}4Vec*GQ*!Vv&AQKOjPNEL%9nt8ptB5CZ5iSj>gv@8}-^s)8p_xR$N0TCWb zo~D$!>@v2$T8fNN%ypLW>4}y05>13gS5*}S4u*0VN&-tAa_-%PY4hCF+%)0kb{580 zP?CYLnK4;&a}pup`1F3RM&;l7=u?0Qz463R7Q@qyzVUkyc_hJ27v}v6g5U_-Jd?7K(u&fi7-cfMWe$3(F+U$jJoPmy6T#!Z>d56`tF z-;(JqyBq2^X)R%?H-@IK$)%XcN!?r{6f>a4m$t-ZT#=HB8-RpM_{PwC2YTJz{B!Q4 z%#Z9eljh{d@dU1X^prfYDrtZOIz5Iq)$`ik%UIC2BkwSyd?&6sqV)G0+5b`eohX1+O_p4%EILWyae0|N-w^grp$K92 zREU(SGP;;FCPdlpNV1B>~01Y}R)4Wq%p=#7EniqsAefqZ)GUbynDU}GVTSBIN- zXB9x^97#KFtYAfqML=B3P(j8}X02r9tt9NP;{3R!-EkRH2LvLXDghRf&qK0gfyo3Y zp5fJ|H|HZ#=k7G|(NWHZ{>v}e=7K1MKbiI}GzH92SrNn}e?W~uI(?xGQ&7`=6{pQ5ZH7Qm^0xzUBp1^SH zAA?fkE=S}^A5Ze5h#{W&MS-23bWM*5R?f?Ndx@Lgj~Cp0brF2oD-XR13GB3r0YkUk z#sW(u!2r31pnzAsw~Ev^-3Kd-rL4f93E8!&oO8X@v0J~bW_2^U^6L(W8d`$iYahZf z60v4Q=X;Ad6I(J44NK6a8cG^EuBdY|Y#CA7Xb^`P2FJRLIHx>xc(Gogg>t>85G$Bl^ z6>-4ZfUX!GMNHs;Uj3XEOJoJKhzBJ{oehq|F+O6NWJJ|9F8iLzfqLS!-nD6i9Coo~ zE_z>FaQ0qtC(4$1ds?~avmhc>H;&OAeS2azP9g(BcXU@#wRUZ-y<;2V!g%I7iZn!| zfuu7EJQJ;9oOpK9_NAV6(nvpidJgZDdQ*Sd&6&oc9=?i5A3uUwJjRo=lA>CERe+O@ zF;|BWB|nrLP-?8k6Y#i)smwAlb65YI64&}i2#`$T&OreTHOHv>JS(p4nRieHg4tDEFb;*!l&t?;1k}# zbNpBskPC}BxAueE+_EGE4DtIg8ENjPevPnNI9!w!BKV2DS<7=h*J>{w~VA=q4r{1 z#DWFN3jLmIk-|VrSc&j{rn#sk5$s64p4VOG5m((4r)JRVg~|A^6PLw z5?)lZtFs|j7=q6(Xit9(LC25jm}|jrr$O`NiUgY5bwJ5?zvTL%domn&!X9 zwqC|ei!MnHg|{qorkUv)2!WX!IKOz3(fNMi1`kt8OZNd7D7Que8E_6z;RG`>Q>MaY zJ~qH90FH4a%-(9W0wtK(i8?z+#M3edyDyE_{%n){Bt2P`eWo54OHgY9&lvq9k#aU<>?c3C!w*R+FITK@ z51qpLf5Dg1x;0}VX*q4!9L#HLXjoB=nzV!!l+axi?Aw+l=*RjKJEM_n;YMRfC36nZ zK-LtB))daGjgdHfBd$R{RG(?JCyFqbdT-BUei++oN=v*cB_DkC@(r&Sv6x#%D2R-9sef#7{9W9vFqYv0z|oI21a3#uhihNA zC#+&jLPsTz8AR@$L$;)cfsk=H$ttbRT_rq{-+EjZUb^UU2k*a$^+;O@+FGqKg(wL_ zitLCyS;7Heh`dARDF@A&i84$Y+6vAP9dWW~xre407eYP77}(ClHaKM2+xvVcNz*JY=d+$_O8w6m0(p{QaTm%6f_x2DELDRQ6D$VweC@aA ztv%Mu@)}QuW2@+3HX~gxc5{+72j7+`M^KbRfug=E13~sirRJ>5qEq>$cz7X6U@u71B z5ZaGiz!72S6J%&KP3Yh#&va-4D9AaWJU~ZAjB~7#gNpfGB(O{-d;j+m=;0ZXmk8jU zq`Tl4wzh=Tm?8!ACxOn-;B7QeaHpH$$`Ia3CWv_98uy8EL_xaMyM}g~R=!iCGDD%$#nWxPX)u#9~0* zrlF-_x|9*&LU)s5k=|eoDXIMrv~UAoIos~`orO2Ffq$6zrW0FN5>{-yJBahib0Q+# zOfZ)vXvV}$hk9Yf2-Cgvo1bNIpAaaiwnxAkCI*K9c4F{oCkDk(J;9BRG-gl04;dnW z+R&1tk~Aim!FKPIV2&Nwk+!C@c6FBYl*}ahu@n!4MG1Nc0HjDPgn85gO6D+;C&zXo zeb|`<;5?i-zZ^GK#yRzk6t>zL@G!3KtN^Y<>~2>g`D@OhLB( zsCJ{~;6orvlw$K%VnlIfjw=52kxkVd4^MIdTEQ(AB*PN|y#_C5g)T%mVj}w$F0rN> z{@TV?$AEx&+_*ENX})giC;hK4Qc_V?9O`s&Tje6dNX(f6mx-D> zT_lr=>C&I*KXzihe#!;#8ed$xIDstTRMY)v(n`Yv^e{`#bkNM^bjK9_Mo@TQQW5}? zU|4s}6l?(@9UBgFfD%|{45J8IMoCjlK$2B$Qdw^}1eEa;d}eJV#c%6nW8DyRM<{HO zGZ?Sv>$Y){O?5SUHpCeZFv)@^UVR9e$~kmQ3IZbvj6%g`s-pSO zzjSef-jX}Z5wZBjz2lNM3vQ5tixc4W9xtD&HPkz;bU{GBfQHXd%1}1_pUHwgeE0x{ ztJpP?fv7jhCuuF==cy_731rxT9X@ebaiTl{;m8?Mq?ym$dFSd`XRtX(R6in$#8vXS z0VFEe_Cbu%=4GA$+8eDTEwCCHqvYeh!lV0*4m0k{8=<%v4RsR)m?dIq-V*eUYg)~4 zqDe}~+_BX;2ykbjOCBt#D_H3}ZCk`88Mt^laja(X#zUzAvm{?y;r;_cCs|w~PxIyT z_irbL8}LOafm)4;DQpW#ZY}1cA9|S_zA(K*vDs!H;u%;aIT!p>wcjJKV=l_=^G;SD z$4kvI|8Tz0L{OT6OKdW{x=cShj#wDadVE7Kdea0{Y?||aWJI3Ikhxy#N-x-Jx+4)W z0N-X0Ps%w@fU;#$N*i`I0OqE~(Er1uC*c|d7a3ZiO}qr7Hk2|W>4fOR)+<{=0ujmt zFUWVpH2OE7B7p*U0vG}?_P`?gTwwgj>x?NH#Fr(i0U7}iobG+1c^JqG8XoU060?Qz zC6|nN7TjCN_vtQHgMqc%S=|4E|lfS{TjAB znrd)E3e?JSzcYDAAoYYWgjBUyw9o4w$S^19O$M>1;kRq@twKe{h_%tcKrZ_|d`BOe z^qv4{fQ`AVW70yQDzoyEg8>F{JAe5L=&4x=t0}sHhWmm}!r5zk1TLZO?Meb;jj;U~ z2fPRQ!f#qW4k6k-2@H5&9g~K8W`y|s&eumO?9b^TET%#;7TD~+qp=6l^ho--|yQtd$)mWDHr5Nzq{aF{f_4_F2Pu-XyxDSAVj+ z`8}+?(#!xxW+PMgN%+?6mKd2ma@)CcKWP?($(G5FXNYJO<&(2R;n5gP5fXqSIZdVI zawP502-a#$`bqr>=@#BmAv$U9_Sf5xL;qHSPrZ{c1*5%t`JEgFaGb_8LY6`#a5gw4 zjskeWnYzebt!CrNL`VhgDL57PCgN<{FFq~Pa&sB=)o6s3<0JUAnWGXyz>IURpq42f zkz5fZD%0_d^rYzx9{nYBh#SUS4L`X8FU#!$)OStCpyg{1go!W$K91C>vq^G_!U3&r zNhG*Lb&&16d?z0UZZC@YB`bj_3qUj?ttfcogp(*=SD%6?qu)?kX$C((5pv?-a7n}- zM$&Puko}n0$U#*k!BeKcBe%>MUokul=>ML`5dw=JrG>7Rag2(RHsAIh${QQTJIbEC zCbVR0_`Sn@FEb{LR6XJtVtD?hL$Bw1O* zk9w|)r~}hvF1h#KOpa^~8|s`gxZ{}^PC3c$Wr(VOlz|kV4@+-1#YAPCG-i7UM4mgJ z0xeI;B|;+nP+zMDu}09n@wZvcvPD}W2Klt}~b9>TAJo`tK_5dax*Ab5&&_qsOms zfPJYa3^&?*pOBy*(2LY*sKY<{K>}wpcV1P<*QAA?1U~&WUbRHmZp`-kaXHV7drH8E z1ZZTy+EIxiaCkh+Y0KXF2I%e+C-98t)Ss_?c|J6Es@eimfvq^U{BV=#a8 zHgfaWAY4(D5lwUL8=(UBwY~-GIDAO}gb+C+Ki?BA2d@?K{R!1s89$6QfH?*(E4LRyfz%G`7xf$Z+{Z@e=-~Rf*R83 zjd|mwzPa+f_Uwzb)6QRKx2EqFGl9__~Ld0fJkn{EDXz|>?2oO(ikm^~v0#p~MO-#!@#)Rl*9D+4$3hk|XHN5Ob z+474&ioyLPihB#Gz8MjRG}IA627NfN=(Taz!{$kTANJ6F@_& AJOBUy literal 6744 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 diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 3b0d8a3d..87e94cb1 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 3b0d8a3d62a9920370e7958b9d2fe2a322728b9f +Subproject commit 87e94cb18e7e1e5e6b845ccbdb64c6baba28d90f From 0d3816d651f30b34fb4c84513e4e7ecbcb4004c0 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 19 Aug 2022 12:34:46 -0400 Subject: [PATCH 122/238] Fixed vegetation tests - Four tests were failing due to incorrect placement of values out of `rSW2_calc_SiteClimate()` * Output data are now in correct placement within the output list - One test was failing even though comparison values were the same * Added a tolerance to fix the issue --- src/rSW_Weather.c | 8 ++++---- tests/testthat/test_Vegetation.R | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 5eaa0503..1f7aea75 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -578,19 +578,19 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, SET_VECTOR_ELT(res, 0, monthlyMean); // Set mean minimum temperature - SET_VECTOR_ELT(res, 1, monthlyMax); + SET_VECTOR_ELT(res, 1, monthlyMin); // Set mean maximum temperature - SET_VECTOR_ELT(res, 2, monthlyMin); + SET_VECTOR_ELT(res, 2, monthlyMax); // Set mean annual precipitation (cm) SET_VECTOR_ELT(res, 3, monthlyPPT); // Set mean annual temperature (C) - SET_VECTOR_ELT(res, 4, MAT_C); + SET_VECTOR_ELT(res, 4, MAP_cm); // Set mean annual precipitation (cm) - SET_VECTOR_ELT(res, 5, MAP_cm); + SET_VECTOR_ELT(res, 5, MAT_C); // Set values of the two standard deviation categories (C4 and cheatgrass) // in result variable diff --git a/tests/testthat/test_Vegetation.R b/tests/testthat/test_Vegetation.R index dbd524de..d6fc4eec 100644 --- a/tests/testthat/test_Vegetation.R +++ b/tests/testthat/test_Vegetation.R @@ -6,7 +6,7 @@ clim <- calc_SiteClimate( weatherList = weatherData, year.start = 1949, year.end = 2010, - do_C4vars = FALSE, + do_C4vars = TRUE, simTime2 = NULL ) @@ -86,7 +86,7 @@ test_that("Vegetation: estimate land cover composition", { ) expect_pnv(pnv) - expect_equal(pnv, pnv0_expected) + expect_equal(pnv, pnv0_expected, tolerance = 1e-6) # The set land cover types are 0 for (k in iset) { From 616c3008bfeac2316ac4e3dc42e765fd4cb28594 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 2 Sep 2022 13:48:48 -0700 Subject: [PATCH 123/238] Accommodated code formatting to lintr --- R/E_swProd.R | 5 +++-- R/sw_Vegetation.R | 18 +++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/R/E_swProd.R b/R/E_swProd.R index 07c56154..cc420bf2 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -66,7 +66,8 @@ swProd_validity <- function(object) { nvegs <- rSW2_glovars[["kSOILWAT2"]][["kINT"]][["NVEGTYPES"]] if (length(object@veg_method) != 1 || - !all(is.na(object@veg_method) | (object@veg_method >= 0) & object@veg_method <= 1)) { + !all(is.na(object@veg_method) | (object@veg_method >= 0) & + object@veg_method <= 1)) { msg <- "@veg_method must have 1 values between 0 and 1." val <- if (isTRUE(val)) msg else c(val, msg) } @@ -163,7 +164,7 @@ setMethod("initialize", signature = "swProd", function(.Object, ...) { dots <- list(...) dns <- names(dots) - if(!("veg_method") %in% dns) { + if (!("veg_method") %in% dns) { def@veg_method[] <- NA_integer_ } diff --git a/R/sw_Vegetation.R b/R/sw_Vegetation.R index 6ebe74de..dcdd69c8 100644 --- a/R/sw_Vegetation.R +++ b/R/sw_Vegetation.R @@ -192,7 +192,7 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, mean_monthly_ppt_mm, mean_monthly_Temp_C, shrub_limit, - if(fix_sumgrasses) { + if (fix_sumgrasses) { SumGrasses_Fraction } else { NA @@ -201,42 +201,42 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, warn_extrapolation, dailyC4vars, isNorth, - if(fix_succulents) { + if (fix_succulents) { Succulents_Fraction } else { NA }, - if(fix_annuals) { + if (fix_annuals) { Annuals_Fraction } else { NA }, - if(fix_C4grasses) { + if (fix_C4grasses) { C4_Fraction } else { NA }, - if(fix_C3grasses) { + if (fix_C3grasses) { C3_Fraction } else { NA }, - if(fix_shrubs) { + if (fix_shrubs) { Shrubs_Fraction } else { NA }, - if(fix_forbs) { + if (fix_forbs) { Forbs_Fraction } else { NA }, - if(fix_trees) { + if (fix_trees) { Trees_Fraction } else { NA }, - if(fix_BareGround) { + if (fix_BareGround) { BareGround_Fraction } else { NA From a759e8c66670a6aa882b7398c563b30c70dcbad0 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 2 Sep 2022 13:50:21 -0700 Subject: [PATCH 124/238] Updated submodule and test/input data --- data/sw_exampleData.rda | Bin 54036 -> 54010 bytes inst/extdata/example1/Input/veg.in | 7 +++++-- man/sw_Cheatgrass_ClimVar.Rd | 2 +- man/sw_dailyC4_TempVar.Rd | 2 +- src/SOILWAT2 | 2 +- tests/test_data/Ex1_input.rds | Bin 5547 -> 5556 bytes tests/test_data/Ex2_input.rds | Bin 12848 -> 12860 bytes tests/test_data/Ex3_input.rds | Bin 5547 -> 5557 bytes tests/test_data/Ex4_input.rds | Bin 5546 -> 5558 bytes tests/test_data/Ex5_input.rds | Bin 5551 -> 5562 bytes 10 files changed, 8 insertions(+), 5 deletions(-) diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 8ed3bfabfed3170eec2387418000f5830911d69b..8ac7c346bdfc1c611b2bc152a6a66602ff507236 100644 GIT binary patch delta 53643 zcmYJaWmsHGvo?&o4DRk4AlP7GaEHMmKyYVphYapAIKkZ^xWmTXT?T?X6M}}w&X?yo z=RIFvS51z3^`jLr7nX zXzU4O6Hib<7r|ku{%E~?*oas3jDPfNN0%KLJ2HGJ~ zNHPzjx1YkEhj=ZHO@ceF4X_kFU&2uL1KeO3HG|uV3g7mI%wt}V2>t?o=NYC_LrMMy zhrUM=7DggPDnUcPBmP{1#a)-Ks~bTY9`<+C=zqxr35kLDeG$#uuVJWH(aK+Bh(o?3 z$<#%Cre|>dd4PHaK0IQMR!~r>CFQPwvs^f$2Ha(w51}4lfgX`ULi{GbAQ6VkqG`9e z4`MUu)FBauA>Yetp)UPJ{%^sDez8OMa8gc zBOFAcuX%d$KIB*oBmCg9YszUu3`D-+>ilQp3zACodc+58R+a1zNqg~>A z;XBy31LX1G+Yt&o8LZ*}B=Lbn%JE0$A^;W=Q3<0aiKc+%7*SPxoG{vQZ8AHuv~WHn znN)6C+QBC!CnO9dC(@FzqoXtnno|dTRcsB0Ql79d z4Y)LFDkxca3RM=L8VQQJX6yKbMExJH{}kdPwaj=0j8D{#OQ`G`VN*_3NlB6HVM|L( zj!Q_WN-<$n!cH)}Flkv~de|zXEvlw4swQ#?ayg4Ui8HqLTCG~1*Db1A~lhOkOYMsDM?n>k(Q=} zm!?bf)7ZnDv2xL<(N?4F|EP|yJ$VF$Eeotr39<{1tuoc@2s2h+eXMw*Vp($x zQoe#FIYaAm0eGovf8U2Ej68f)S&ZC&0dd@amj0p3Q~m*WE~}+>tg8Rnv?3Y1y4$Xm zVllWLed^}vWmZ7P=BeyC#6}tmA~w_Y$)u&5X7!E$u#FX{_!EsN6Vt6$)Dm#*)dqQhFg9V*zt!;-FCW<$_8&a11C%io?cA3ji(X9;9Pk@+-1U0*A%BPmbb%Dg_BD zTA3-Tqt%R_%A|7fn5Z@99LOWG*jOr2%0MmP^b&AIJrl^%vn(NZp@2jiORRfI0M&^F zE+`zF9C7xbv1X*B!A>HW3wqQ5nblb78HM7RTvNp9v>+fOaV%E4K5fA{2N!FC4+n~m zI0845KtZRFX;RAv&;wUV^IU=HC9qy-VT%`dPQ#T|C4h9p>X`-S#1UNBTFj+d=?SX* zy0PAAD2D_E{cl)i`UkfsPYC;=f9lUdcjtfp(OU4I2x>?jcl=0E`iJY*=hvpxqQ$@T zzcOyb4Jb|kgK>y5Qk1d8{69Uq1<}9#b)^8s@&Cu) z?0+!+*Y`hg|7kW@8vX}elyNR%XgE#~Jv+h2J1QZk?@t zo0^x717g*=`u0?bI@0DE6^$SS1JqS|lR)&cpY;XK^j)R2*KCz-T%mdu`f-=nB(Kr->|*6$cA3`I#su<=4YAN?nV2_}?QhHK4B zJJcaC;uXOX;C<7}DN$TGz3K~0$ckdNn z=ICd*6jU!#mw4ikP=?L=Se0Z3Jdfuc$B>ZvIo|sI%;8UayIYpfx=TOJ>MDzb|J;h0 zYoQ_BnKsLkKz_&pAfZRnN}ECR>|)}=khpa7xXNllJYptDSYZTf^M}rxM+nF8@^|u0 z7`c?+e>E&g+0tz$_L;gf-i1J<2r~vOr10EM?4o5iyYfRM@$UFSF2pPh0~p>Z;Qspe zYJIK)W?Jh-@mXjY&oVG;`xxbBEt3Di28(j2mw*;w8Q3g!L3tiBMSB6I4B-zd%{cB~+kpk;#>23`A;M#jGK$!F`qe&8T-3d5t=U=@y$n*hHvL?;$fJZ5ed% z1L+z08FUl5gt>#cirN0x?fE~F z+;FXBS~ENMgY5x+}cp`;Wc^^}gW)aRiogBo<0`p+}yKNgp zMLXtUe(ThZ>|d52rymYpo4?;BYv-%{zWH8}qMCST;u?|05DOHm+sAx zoyru)aIp~Hc*da$w2~T(PHD^mps@hjBnW1nR=;PDXwSnFCaKN9N@$U5%!}dew*YC< zYDQ3}!EDq5$6>=!h9&KGate0}ve9Z;+&c+NCi0rxbtd){){QnU?kG%?95k>vlR8Nn z%|JRV&|13@&OKILm^b-6=vsled0IS5OExCTG0dwW!@LZNm2E^~@C1>+Sw@SP*`%rY z_5JRS{$;=}(y`~mBH_n&Y?iU_0EL~7eB+vo7`s@kTtc`ie3-I=t$Y4TCklz$(9gJ&9dA(dkes#BsGmms$#2*=b1UcP>N@uouMuULt`rN z$c)4`2QWb|{mZsVSeeAPiK@)P6P9b03T1REvr0Mp6RCS#a79^ymLq-)e6308{QWMO z!StQZ7o{JR-&KFrqy57`o@ntyWgTGo@Vs0mO6uS}elkK=yR*nhFVn^Y|Ql#^L)S z!~;)`&a1`f)6mX{6bWfYPn1i(VEtNh7>dv?7Q0iillv%Va>dW|YClb~j3+v~#P-o% zJ~h;D;T?V;(ZuFbrB?k|mQ3)C-(_HN`92aMG$1785ALrpnV&i`C$OgjPJ&j99@fKJn|9kn1Qr)Dv1RO?E17d$tgTw6T)5*uN3S&a66x63Cz*=3hue-^!Z)^8_wgs0T6L8blD-ejM(%HN zpwp{G#XEuj=6+PacN1RK6kdZzIPB!7tM)kavbk(FwG0*#J1&=j(Sr(u7dbMz5y6>A z=bYS!zht}&aBMdo_cT)ZbzF^FEMsHkV?*k_fZax~yxJear#GW8dtI(h! zT5%K2Lrw-@W+AS;FeCuWKI*p*3BR=A@49(^PkS~SYgTA7bVvki8872YQ5OtgvS4X2 zYhGPSt;$>tu!TG=y}ulfqY(0)cj92P%cvvWH;F5Fqg$HHYH>dAc{pKC_xMI{q#G`l z?#nnSq%15xcVqdAJ%6^ViSrGWHsA}CXri4McjL(<)+8W9o)xB%#=6M1@u?M|@N`b7 z?w6@2aI0}OgXX6lQOnwT@2ym&o+8F6BAb1oK$|%;)cqL~1{2C1Y7NLO)>QWQ<8;|f z&#=;sjUy@|Ol}%ZvBOYMQehvZV%i#-LX@OL6qvA6D@evl&g9wAP-=t0M6%Gu(kjbD zq5es2U@QeirYme(29ZR67^fXS6J_4*NqcD4GvMZ+%QIFHIS`|SmW38ksyS}kTF8q@ zW8f&hEu*?!U@fKKr(RM>Vy4QO>3wkopbeQ}NjTZ~xLH-zbfZ;IOXivDC6l4+o)Aa8 z#hSAMb6dcWU-<6H2H!@1Scm%dP$#|Tl;c-zHhuAJ@$3@S-EZZ~s)=`@h_BPkL0wVx zdH%dlS0GP70%!5}3yhr>2;_~pJ_2gtSq6C|2iKm-p5oC>)?79eEC!Kt2(RvKRCG7a z*0huYu1N5P{FV99{JCeO=Z||+?uHg<00BI#Ov4_-wJeS!_a6m#@t}vUoq~id%Hk7i zqw1sTNkCQb34Qb!aA{LiHxe`HqaAa6*;Bz&k%6;O4eMARt~v*fL`<-2LjQ;wsi%Ss zaLFnNhFj zG>hgantd^i9~Z(pn>3itE#|>_O!3P8Vqgq@d~kis9fHI)-09@dyl1rA-{)lQtX#5P z^f9a0r7&42L03QmWm0&FS1S=MGwpsOT;Xtrzb&6ggpxbS5E}jo=kJ8 z!0INsr8Hi{8_JENhov0dkxer;Tw_w3y-vq`uFB1^5?55zeP_d#jkuvZ$AO#Yc2y-6 zeUiOb^}(f>d5;q*G3u$~nW4MM&2%3NNv}n5+O;lJLwj-2J@rd(pA>db7YyCoJ2|9` zawp;EG}IP|N28d}G-bRIJp4=#Pf?d>Sh<}PNeL8eg_;-hdpC;_@Q^JBo;E8GHT#r- zPklb8qgjG$QBkm>`n4M5us>C38o0ehuJgnuQwdgEG}D@8nHh{gbuoiE9tUze+l>%u zd+e3>W3xxymmcZ`kkNH8=0xeRldvfnTjRQg5*uHaHpQZvDVQ+m>>1ydEYg*fJR6kR zyV__ALwRp8(BrzlyQW~a6F9H-pmsxG$)--O8)nyN-+a%Kq&98cIZsWgO%f1_EKV<; zLFJ!=>)A4Nlupe?V0sw!CYMyv>+40M#I5A~H7)ax*ID3U@vGmWkhiYkD}LrP1y0rB zI@1;gUo7M+kqy*EVq%nQh0;9Wd7zONzZ&oXbhFE*MieK}>~(p&5#yrub`fZ?=qdPg zwG1-bS@ez^0O8=HwfU-EJ?=}H3_o0DA1E?E_5t|(#`iurQbixf=#abz_$c>E?|Wy( z{M0#Xc;9LWryxAYS8OlD9Pd)_X_w2;h1Zx(DTOf)^gV2EbZ${1#nhf-tin zfn<4TroG1ice1PEVbU?V55hU3M6VXVoa9iFCoAa{(oL1ihcQv zC5*iI4&LadJQjx5J4-H&Q4!8ujuDUL8NDG=J@QfX-g~P?kJ%HPBXYer$E{7K2&oNt z)Vck1BGyYeebqN>Hg%PRaNwQt@Fuq|xb)|)MXfvd!aFl;Hfiju^g@CBmcuJP^G-rU zG7^3n+eI)dno%#qx5&I>L6!tf#){Z)MX!r7vyA6-@QSG4iuDOmOfcEw6Hzy|@xI>W zW%Dny8+a4+)`w`&tEY!xyUQMyv3_6@ZyHn=UheM719>jYBf2{GzF;1S)06kJA?hMd zrhpk0g~UXudGYS_8~VWtvz%)J@e~?%g?iEFkMuJw7-#i1*E7`GW9^|=26dwRXv{ce z9V-w7ZTL9HV)}$$+fjf`()q}Ec}%GsV@9iA-?5kBc8! zsoE(mu}hFbbZg(-b$uG^k^z>XFIMePi?93nYrJ>gJ|f5 z(_`t^*o54AVok(fRLAmkSbCLILyvV@X%y`dfkaDY-|cHDAuX39&(baO;5@1C)kS91 z2L{uIRbzJZ-|~B}HJA+m1#b~zDe^I@7vefQ)S%hmh?o;*R_NZ;Ag9VBDIZX5;USGf z8n`Y@QF!jIxTuvfL1=}Xoq`a3cFSymr<@lYx`yxZ?F{MpXRxFUy)d;S5NB}+{>|a- zMyf&3?C{{qr84CqW@cRE8}OLl$4~UwcMYsrP2(je*xHZ^+RT&KxAF@1R~8$K{Go8F zD^30L9e)#7X#Yv9SFYviB`n_{5_c=c!tFB1tHRj4=gEgThbd;*)n$M$EJI?ebYtne ziB2BsY?vdMOyfb?$Sh`H*8A40YW?i@!dG4KWw%S}ZZaUXE%TZjVse^;dT_3=b;p{ISOuEa9>m9NLs-)EcjjeSoa-Uand{R#l2}({H{aTjEDQDhuwzoW?AdS~D-^v5W3rEgWC7S)()Znm1%(N~vrZV{*u$ zuwhGfHJerS9Jc(~7C^qb_WTApL2J;FwXf?9X(QVpxk2|8Y`rq5puW2qPH zFxYJEsG-hot$fZ8H{ZY7D6wF|EI5zGN;e2vjV9YSb5xs!P9cqVzI-~yTB@nrifgYD zB49gBvN9&VfN->%!9>&a3!wf^Nt~o*Iop#1Zkn8em?SV}_S+*q#{h(G7zekUh+=xT zPc2~=S)2Y^1Fh7?GX^EWo5~wG;y$PQQKmn|ROJvM-|0my%+Xwn3Y^jsy)>y>=y;%d z=m=_d-u}in5fHNFT*1Mu$2~K2NDF;Yxd#(%N0ml{G`*oU*Kjb)4%-JBFT(BEUQ?0P zazq3g7Ugqjc{A68lgpwMF(!In-P`Q02LJO>$KB`zeZ@B+cu!Sfs%9-oR|z(733G&jT+AA z)%~eYLc~g;R(^4zYdt=Aw%^rL>k%@_HQ-&i=6RKuSobDRJg$&8ZhKKbmG;JpUk!-|a`QFHWARO|%9{Bh|Tj>g(tht3h?RsX_zqt#ZWZPq*}kir81`2h@yWg!9%naK2|qZ^!(8(=rFVgldi)RdC6xQ5!c>qXQ+gL=(~ zc)>XmBTV;V`dP;hS_st^Uj=EFD`KkB&l#HLSll!_7PM)?2~*{tOeKryaw^$ytX}9Z ztpdDzy#_?i>!nKkpbs1Xv+DYr=lV+cNV32BVpN zt0E+0NwF2GmZh8fES4;A1`=tbDDSiLI;J-9-W0QJsGW*ImsYCOc@{d~_%~Zb^(|eC z@Z=OT5yT01k>}W61edL~D?A5Pl;8k``7<@UKUh-}{ z`QDrCZQiA!*V}$cS@HvcY#WJ_W$n)}BAj!a3TFV6YqT*sGf-n$i_L2N*^~dH!#t@4 zzwlQn&YOZW%CoXSzR0s-+`=6C(23!l26M3|_{yl>}^O1}lz1t>duitzS^T{*c1S;nX-HAlB z;XRd5=NEtA%mr`*bc&0y6Cl_Cj67kIqdo$4ScI5t_-;%^_zq(RM`PM5Q^3>~21YW& zBepmFnUW1+z?hqKwse?UCsaB0U-{`6Sk+Q}X~)xU#H*gBJU*>Tt`INFo2qkLSJEX& zs5G%LMM`#?IRt&n)SomY!W#Rjd2&g6cx?p5Xi$}R`NWC}IW9Ji(HzEzdhtxSAT()+ zyDMGzJWUD$b0yrkKh<1i%P-X9qzJ98SJWji-K*w*>Yxg#w=Fg zo-i7JeU&Lq%G~4N5OD=N9&^!%1UXn31efQfT(pfwI6s2M@>BSwmGv7p9-a&5v<;yK zp(TklCQ&{IeKkaJIyOlfnZdFN_5D-oZGcCJrGD1asmVZQWG0xYEOhwh1@(x_!C=!P zJi#JnOTIpqU?89=6lDJ?gGjdL!K#d|hHoD-voEnp$TPjxR|=@ItkRMDIN_06?GdQ^ zDm=nGLnuNVdfPG6mFF%(28M{|=t0R5vqBMuHfJmZES0-?6Wr0BKa(5_OP9YDj=%aLz082Aw; ze$LTJ(j7rENKyz?s`H_MeGL}BBAf|1>8b3 zGL#kh+J>Vid&EzBkz;~XyDg{V{pp08zJQ(9$@U{MHrge7Ih)=_coKATuZ9_ zqykTGI?t!9%L($uJD%$Gk_wJyZZ&pu{gr^fTGMBy0JdWyQ1Yxn7LZkeN z+ieOi(P%ZGs@y`FOA2bDW3v5FRh8%5S*cgr`M!5`LsK$2u>&Vr31Wc`j`%EdI+@Z4 zA>P>3&6SM;MY2e2ztQR)v;Vu{II|Ez4CuRwld{vmC7t|Q%X!4LAxpcyv^8ceSXFlF zbygd0AnK`>Z+h?Jy{QaGcK$b<|$ukJ4*a z3A`)*Ku~b8Rg*c3zPjcfO<-n0Z9HJvGr9zFmA-u|02M1|jWVR5Z(|CwEw)-tPqT1! z4Q}Ne@V=pv>ZWu(h6{a~cDs_4ArKPfY}3Cz{4dDhe0Sgk2tL>L5m z!GSR?)uMtYonFt`&t@hHj!9#xd!}gd5;PW3wC?;l>0Ec}99~au=^h_VCiaJ~?7d-r zpSIWMpw(lR8{G^3klY1#N&^I!N9bP4Nwb)qU6nHv`{iajVlm^zW(211kdS9$4*pF4 zS+Pq~^(coWGBHE8uxe)~MwPK_{NY?`Q$XdSyr@vILFXX6t^p48a7KA8d$9;ukC`!L zofstPq1#~wU4zqG-*_NoY5@@^eSIRn-2xfVGs~|kY+55GdVZSdZ9K7RlZq?82gUrx zH<hV`bhXIWVFA_2X%dA4VWY6x|ajB%HfZ? zush@uAx>)R;n1iitwS7_F&(A}UK|pbvM#+SRO37-}e^?Du2=M=U0Q%+ZwP2Zv^ZCdxR!OEGrm z3vYkLo?ZML%r;Zy^fP+yliALB$+a* zRVMEdrJswCt)#$7a)o-`u#pQZEALiol+;@37p(8*Fl~k9FMn&fj{|mRn-*ylZl{YJ zY_vv}UVQLe+nzVTPwRFA2%WC5CZDv?lqRXuTcO0_)Kd?`bRS!=o|rm)Pe0?Y5P0Ed zTIhnPS`1aKa+Xn9A&MfY!X3t}tBqH>9dLYFwh1plJ+!R@uBN+mwb&!LYk2Lu zWS1~Id{;Pa-kSHkSDcXkPHAH1TS$dwP0y>>tQQ*xFxp1!ESX^dA^Dv-5zVh|?Q*P3*U8c>*DtYMhE7IC$$qQZMrwMvG(gRgd zLh)AEyiydqybwvQNs39~JMN$&haRhFkr@n#r+&(i#O-8n9W&5WlaM8 zAoK~K?~>O;$*t9{6dv#Oa7E>=nRel7k5DRj1?%^-kiEtXgYJ#GL4hykRS6b6-Uv4@ zIw2UhT9&m&(mL0c?Uxqb!9vSr`Grjei8uTlHKT3{6jLnV@d|WThkc=bcm128LFIg6 zdXchkJ&^FCc&y&UjKoB9yyhaew<6Hd^ak~jdpd1l4t~V9*x))ZcNyXI(eo*TA^KA| zQ>9j-4{uXV`k~|udLV@V`6Qs|vWfg2m;2@%hn81FMZ3B=bcDjUCudkA0U*f2rzt^a z7F=(Di2i99%c$AyDL!qP8$~?**pX>0a^OSN5DCcIshK_cp_oxngs)a`)dRg=%B~ef zUw@`GHlNrFdOrG~;R^}8zt)VJbY_dzH}iJ&v?a^CcG0if;QZEL%v4E+^uF>6c#ML+ z(7!Mak$CZpl=@_Xe5bCYaabw%0(4$)Y!wH#~Vt_0aQEiNIqq03qEmo*SB zRE*}600qz+-2{zH{0fyGSDfXGoAauO^EXU6_V{FniwzFb=6VMG`GPm(pC$6LU>b9V zJ8ALr@4G)cOpQh9wLbRsG44+atDP>{uADo*yK;Jw!t*|U!(j?P$31KQ4xM4cfZ9$H>#e)t&~$)AG! zmN{<^i3TafdImQzm^VuV5Eq@#%#7a~s$85aPjT=t059)DOKa+H(0uo_|WM|(& z)?$D_$Z(PujW~FF=&J2B- z_*G5;DHWpOd|NJ_BQqbwC-7(rhq03`<9zgKKVy_u90c^tNbC#{b2+M{@Y;m;r&a3D zA2mTEN|;xS`-0*_b*ov>i%VIU@cwM+o?32- zu_$B5XJ~BB0UWnMy9C}F<<EN0vUi}MnO}m}SfAa*r&u(nO&#vvHQBYQ8 zFd)V+-{WdeC6grYi6V{Fi;#m+mqpBoWoU{k16E70W;r9hl(X2w8+AiV*=ft4B67L+ znJE4+^O%qc(19koq8rWPvO*4y`(Er$#S6lYqVaKPJoMQ9>Q11h6`F4LYkxptas68CQV#;*wAigL+%ok++Gks5OXQ(I#XUxoS5lG<=jy~TAhfdE|ke5;A zH*k^B9Rp99oQPldakId1cA=>kENtN#Q`u_4F+hsh9Ih8}SBZa=m66sZR0wdpBy}A{!>?q8J#knDnoP7uUWbj2!}5h|In|)bw@g)hOW(*fD3y5A>XbOJ%ll1< z6q`2f)fZc}R|ToHKZ}&IKz&Zt)newRGc=#tA|r?!cozUP?w-tb^FAWiCfWaYM1Y+mZ4M9Y?Pa%DLuf#nzHTN9#%ux|&k zy6hY>#_jxx)nuwr>7Iw_O8ELJ5vNOcy=|MMJNMj8tc7_X$r0qMkep1x29m^6MD=8kGbWDpthF`j55_? z$Vk35vYCm>WEPvi9qKo<{9zdoPxUUGps^sZL>`oxSBQ)3!fW|ypo<{AQ=)J# zF^C>ADS(rrhdWNCQCQ!8H|2HT;bqpjlb#=gK8(PND|Raohy(H(Y*=iPiK+4{D^SB; z1dAcPSH9fBuQ_Zs_OE|aoMdgpC3B32Yg3G3^wEt_6l ze_!dPPN>BDVVOhT)3f3EKJdlM2S4gwaew?^amxsqi%pBLLPv0{({XS@)Qe#c+I0g> zi$J}T4f8Ao!KrJnN1aC==z}_>K9wqc6n|=Iyu~6k@O$}~-EM?FNvs7zl~T~kHl_9| zZ5p?c#af$yC816c?uNi}LX8^VuDOgR<0|#mhkBim_-2TEX;k98P2`X?6e(H&CA;7+^d)IvZ)3|=AGM~iA+(Gae7kVpcpt(dnzjkc z>BToNc)U#vt~$48-C_y z?ex|vlC z$&Q1ivzr$&=>{S7vA4{q?*3iBRzo6DYPhFso%%DQgcrK6|qU>>5(GzXt za}`(m0Hd7n39G>FSy90mn2N@aqV(Eo*%yp>?YB6>uESm>(`k`!mS>yt8HGUkS01>x zMM_uB`0ywHo_XGG#``Ds@P5%ED{zi?2Nd)+*<~eBKUfz1~hb*j|F)=fN# zC4#nlnH+pAE6?-cLNvYU*XPj1&fr$Ex2Qp;e9N&MYQfnUE8S+;!LorlmG@SG);)`Cdt`)=M4;T5t+dg zGfMP;6+pz2bvEPcbJ@!ynOBT6=qtD!BW`4{_C)p5bx+YIZ+TrN#u)n36p;?uQ58FZ z5!2i&`|2FIrE3rawmb8)M0EFx#}>m4VkFLSBdf{H9ScJ_CTaz0V(o_aq7*o|)6fvF zQf%Go@B1t^J04gS$&hSzkmC&gQ2jij!CVKR|NE-=>zvi_@WUr6rsDcQl#h$6mJAYK zNWLIKPkd@0rss-`h3TOWFVL>vo45Z!|9tow0uBH9&(QDl<52f~DC*Nc?_d6reEBo* z%l-ai*TygR#;1Qk&+i(3Yj1^qS^KH=kNo*BNYF1t*+0cE#oj;lzLGqwgbs86k^DjM zQRnkC*&q4S>#zS>ColxnV=<{QWB$G3GRnqV&K!S)qZWlDSJQwr%ngIW8sb=aD>%7X zk~(gJUu28?}LAzWH>Ra0*+Qd#9BY!K_3Hfznx^HCVY%>z=iDge8tSU z`NQ+nU!3v!A?E?O;9YS3zsyGfYoIxC1r`6d2rcLwD~3OY-KR@x-VGQ(-fMN(DDG;g zwv^YjU}VCY2ZsK}X)-uIoHS3$(JBjez?`BfSqynCy|{HixO6<)&Z;?Sj6XBHQR2$k z{6~7a^H!Qp^rKY!7dLk9Fbz3A)(DK!(&BQpbteTP1srlLBY)#jzs4B=jGIZYMsP)&~*k)16jvb5q3y7|>PWB(61Xq=dvElk!%^b`%iE#44`Hi?6}z!I-azu430Z4az`HkCc=w zL@lozI`Ko~MT;Bb1r>Xzw!warK3%gJJ+B-zp&9iOaq8>VpmU)U_C${8hE*2I`V2?{kDNVg}Hk?r-4O{~CWhAq9V(=Oe?3AQ91>s{~bw zJ_0JP<5DX^OK;0y^W#K6T%IIDOPKh#(U8$?iw7xN2&kguDrO?;<`#CTjW=Zb^5oov zf(7aEEn@${eaQR{E|zFLL)cpcCBHtd0F;cDtbp2HvisdW(!^NZb2+Zn9OlzSU=HUc zpwETdHxmh$cjXWd`0K)h_6@QXw(vL;ZwwgyJ(!eUJ0x(b6ilvZLU7CO%(b|>E9NeR!NC8pC0RmEROr1xC^XuE;;NGl}r)o za*hJH8G2z!9lED1XkfrJG84WcFAY12Wx57)gc};02Fp38|(4EH4x&6n)p~#XsF;n)tRSL;JWOo+6kHyzL6dzM90;q^Yifo{ic5(HY z=49?t4OXBJ)gN=-uaIuv=9-vR(LW{wE;cRyK>=f>j(lXe`@@Ysj7AYcaZU0Ir19$q z@h|PeoF$(|6gAm06b! zIpDQb`mMIzTrLjUyRo0ft-ZlezqIs=`%6*Z59vuC`pRY+|B-%goH|}CRR;ah`eR)D z7LsJz*n{&nG{ztF$2h*HFNxj`*`=|^^;`Qw5lS4Gp z+#|u#Yr|GiSJ7kkg753`#o5?O&W2n1Yv9!Wb~~?B<6WvM)(WdMw-DofNjP$B9lbsn z7Mq1dYGHvNA|+jRicaX?w*_6hHTw(}a|r3^5M_CN9f=;+eOR0voj0v+om`#PpS7(k ziyr}2e6n&EAr^5?F}ZDlced7J%sSwK*0Xh>BC(&Yv}So{o%4I zl&G-bSbhgmSqB1<@OUaLtTGI0MsB;}$zxic958A6I2XG*E4vxcGa36W9{>w$j1fst zK|dn=h`c~ifN4$YbjkNIgS`ENO0nj_I5ROIeQO*k-Un_QkqKotvCExfW%{J>$7ESi zUzWkRT|ht{`V}4X>tVNicvOvjMJB9?hKb*U$^$uk6q$EPQxTc(JM56D2op7jcBLK1 zObQ#Dc#YkRl9m0_EK@EPCo8vUnQ4Vxc-V4O3>7zu84^6c^nQBBm=b~E3y5)B2GAXAGAfkl zhJi5n_HGXVMDTr7{Dw~tj(FYlHhg#>JQr)bq1^l0WW!L(@Sfn`e}J)X@fH+}xFHYS9d`4BdnZ3@Y@-@1`(g2)gvwVC&q8$_8X$ z{R&;EEF;=sfNTObYc_RQwu#lyHV%_WjIJE!{p9ah91l!(O;+&{Yi7ApHdvV)7h4Qh zSh}+bw)H2RPplEvVd=yb^Xc(1>69wi5pr@UX2xv8nRCPF8mq`Uq!rQftQA>!QOy7% zRcu}u;4L6ZmdVn3Szi%sD8Ky{Om@{hZBq?}uH4jw{bWVm4uNHV;Ls}iQYp>F+pLIu zWhEfOg$J9F$EzTw#EVfDrFv`2xUEqUHHycICIBGPfDvmn52-TY5l>Cyk>RpW*$ojk znsFehDY7=F$yG{z59T%xg0vWR)Qd@g2t0C`!m_bdabo1ijj5~{nIed>u>V$nzyDm? z!OCCfGp)Fi)3xxs6;pdR;&jqTFs%txVMCGF-SCbis;PWugKj%r3m2YKGYNg) ze(4^-Y+ywp%cC@H7-v^W{&U#3M zG4Vp$%^@Xb9Nehqt~OVwZ50iv2P*cQe=Alos0tU$k+slw%z?pGDzIJ z4z{u7y?Erul;yJdanj|}1d!y&*|F^?BevIu$a2w!(!*;k(^D>Y(CYHXBqz;(dvkX} zuW?JYM4Y;-&&9(=?NQ>{44CIU+kD%NxueUz{=XY;$FOr~*u$$}V%pZ7iud&8f1gCV zGFt6C*vAvv9G6>)ZJiNC&>{i%fG?5&0)m#6DNvsO=~*EVHMP?nAk+lZQ5m3+?eD^$-7R%SYORZG zy%vnECo3Zqv_ z@R5=nDnv#suF$Tvv2)(OJ!dB)+=2uIu){2b%`A`-O93S*A@^A^^D}^emP&{w86jjg zT)4tvl1T`5Qvm@XED*^BOC&JBKuiQuNl-%p1d>3?RI*8o4j?3yh6Wf3e@J114TQr1 z0Vydg6ATQ5u#+hygbcDk%0NRb5Xmyb5E7HJXV~?;pHBBa8T8AZeSUtC*1n&xM&Eh# zti^PwkeDkH0tFe-5rp!`FiayP&YEU7qy^v2}zS7oVzYeU@%Hd5)j2e z#4^hd(7<9DWr~6cC4`b$mRMzgjz2hxPYc3Kw970q!z2XCL$VkT{sTIYmZ9SYSO}n& z0wNHLhj(w%4%lu0sK`V^uh#=ofcoHL)}iB%e}Ew*9HBnr#p3epTAS9O$l=TqU|ExM zE@UN^;Q?+LDP}5G=Fsh^_QdxMMt6Eu<_vgb$jqdnR$&zmU`I2qyV;#Zm{j$#g_zGY zp3h$m?ey^Xp4Ykux)RK!q=hg^F#!y)5FZGWl|(~-h6!Mj2!w(OW@Unal2Q^$VV{YC z3~_+WNhC1I@V(!6Terct7ao1bCq821X^8WZj1Nf&5DuBN%YAOzo_UN?G)X@}@dY6e z#2^9@3VNmo3=&8}NJ%7;K{F&0LjepB$V?K$0W1uV5D-Zw!8 zf8)Sl-_cL;|B8QqMf`j}BuDEmGymW~{r!*sV5BlW2ut>v`~;`p1uwgjpNiUoAYjFh z|H26$n89r?uD?}W-r6igB!Pj0WoiPH5g7V^!x1Ffk~8k91!S`L=2xtXF(Rc*N&iA$ zIsK*2Od02|%Nm8O3Lthax(Fy#;KeE8AhRDeS6d-dZ@WnR@09Xd_+$mPmdxlWnaA2dL*EAnfvb_;3TK&qBcG=PA09b< zGedaZGDlBSXjhM6A2y~IzEJ9|$ZYB%MTwtLAgu^_$W~oOMHhiX;sYRYiE#FKdnS9D z`1{;v*d9*brt|M>-*Q0xO>z%$%55@#Ly9xv3YWmM6-*FVmmA$>Hq3g_l(uQkc|lxi zqqAnNDJ;jweo3#J5i1jlid_pCuKN+MT`ab~_Z;h<^!H}s0_o!9+Q&$*b25$A^{wC%h0du?dpZn7HAEw>}n78$ZO#hsHA ztF~d%Nr})Hx*R|j7!QI4x+@LQUy-_7` zI8oeA^;)xppx_{d&K{||km_+SJiPL?oTYJLQ)3!kT-mU`d-xvz&k{={$V()o{Xvr| zNG*S`eein#_W}07?|0z)p!Y%ef&8FS+wTc zX0?iK&NpR^+ZIV_vvv(TNoO=QV{3J@j>DqeXxk(a2?Z2IT*9(Si_Oi$Q;6JbXET2t zt0lV@*~3eZfHrHTXwT#8(>&w*=pDgW~q^xE`)fwh9YDhr>K?&ZXLGN zip;j%j0J6mS7QrWg7OF~4}cH6e*rD)FDOlsjF zVkm@Egrt(7rlF*vxfw{Vfr`3e5mKsA6)8wkij^pdh?!zYwrIBP#}>_7Yzu*ztkYTs zYbl+&Xf)V0f@HSD+-EFSvtu>5vrKN*Q=2<6G@3GIK_@gaGnXu;t)`ZiwzYqgF=*Q$ zn@!B--MN;G)O$RR7%w((R5U_QxeJu!#yNG#5XF_6BxrA zV>x2l%-Lx?-Bi~U%1om~D)ht@x>nlO=2*7E4YWzb+HJdQEQW^Zt!Wb$O*S<)$XYhG zVmY;fcI$2(w#2hbHIChov$uZ++XRy<+>$FDQc{xCTrkF#Vl3f_n`uid%M-Si3t_D^ z)?`~Wv#rH~*0y7|(QM6ak;!dXEHl$ZNY&8{^CCixQq#mO)WU)^Ezs4|a}qqYg3ERe z+ZK$|YFj}x);Xh7YSJ|Awwp{FI&NC!ilJq>h@_g8Zk0If%S&r4w$*=|w>AiLnB3xR zOE$^b+ScUEGij*`5+M~5P-=!!W`!darYfzs2Sn(Q6CnhIFvNtANi!iV1i=sz;4m0| z7ma%-ARF^JS zDMgqik^(RW9PAh-7$$#6VTKY2NMVvm2$)GEC5C<{+kCyBla3B9D}A5UuaVaKFSY6Q ze+1j=@P2EEKCc$Fw><0X)s?pD%Idofx-V?|nl|e!a*~phloK&5#4->>GR(}yG_XSivogX-Bn1#e7usiWDso7<(xmQO zq?Dxu$b^3qOt8T-1q8$sN%eDxnpv5cA@B8l*zoYU^ZMThk2%M2x^_TJ+1onwsL2mO z_1H1UF-9T;Ld~bkKt)7AAOZj}0J9|!NitCcgfdLbK}4y}N>omCl{!*KB|3AjnYFu@ zDMY0zCpmHuQ!@li5iA$P5los$WSL?LSYVkbC;ESExQQf*9WF)5PEvG|mm`jIgAy|k z&_P78G4FDrl484uDM=wZbBc1DuS#hJB*c>hGcr%4CnS(W4xKq8xk=JaNpd82IVHy< zoask7%Kx|UrTY79+H|D+e)@gh<>@NEdrKatj|CA<5Vf6oqXv>yLBCQF4EWfDfq#Bi zkKlj5z5B>F!h{VY4E|-?4QKb#8TpzI!3cxsk&mR2xB28G_&)r!A5>jeu@tZ4jU(w( z^sxi-`1|{V>EeSlMB0TC4~y}Cev{!(t!jG7JL(JSv_IZj<@5NQr79*IaQu!a*2#pJ zN--%vP}+(CfH1-b_LRTK)wEpil2w=}rg(q8$^NXB&az<(KDsVCS$%4?RYo*->`X~C zn68dbw(I1g(xr_`ryA@Uez)9epA3@EUktEqpIT)etdf0yvptT}_H1U2%l_S<;l!Do zSf#gs3^$WY*sgM^i6nNvJxqjY7iITy{R$>HkjJIG>- zL;)Zx97+jttu#lswrJi5ThmF&H6AY)lcYw#N_>IK%R3E2i zxIlrr?wv2@D+p<#?hgB7!1(CGcnmZ=thq63YFAp5Y0~wxQ-+r?;(sZzX>bTo zjVnrp3rQtN6-YSaiEW!{(ZWe{EJt%!H7YwsD$<1%S~hwIBeu}lEv?n>Uas{XhaYpn zf#g9^I!Gy*nq`85V3KATB$61KS_zUOW|$@>S_yNAib*FfNyR#GDCNn^j+3R;IY~NF z9Fm;mlm0uk-+bD4qOwwQcYhK|6rCcFkTPEwR}oRU=Joyp%-Zq7;El%(jA z5>TV0r#aB)OPsk%OPv5BAR$mv0aex!VQ6^zhseA`<3sWph?JK!nW9kkoy6d~cVpi+$Cxbs33@xBYKa&#(f-r4hl&MmsM;xarNyVhv!<4bmvh{Q=Ev2X((n{s6daA=YRBfei7B`%@jzT$mdBXL{3oY zFEtv!FbS2-F)~CkFhM~K+>uK8o?DV!x+y6+JCt!0ka8o36)1C@l99y{oSajgImsm_ zM<|^sbScghoRsBJBvC;E7DYOC?c3Vt{odj3876;ICZZw;n3!RSC}Id^d=$%)dq%0B zXvSv!rhg47K}9o6%t86UKEH#D^dDeh;z{ad#1jOLbCm0jbfP+Qk|g4kr#Vh8QA#>< zmm{YNPLeuYj*3%~bENB$36g|QKcB7PG$i+^;8GS`VJkG@xo`4`DVO`_%f5?j}{ zSXlLJe4n2ir_uBjemVv8PcX{-`3NH%`S#DuP6gDp~bY+9keeTv8=r`#je!^%rC9h{@egmP*~ z2P^gVWMrcU$f@~xIKexmCv%BbLYM*eWo(yOUH8njoUr89n2Jg15u){4x-aFp;eRbP zD4>#AalV&B3o+eOCArmK9TY-n;XHbqiyZLPUmt%isP*U5rahQjGS|hL?4fAeWe;S$ zkjo~WFqbo<&1P(yaHw}Ax0aoEZSJr!N`tkHD&1IOdO4dnWgVSq}9vG zd*Gmc-Im~0FJ!w`?8h>$K3y1HtA87NTKKi1_j@_Apv&AN(_}U4Qt1b+TD$tao^bGp zL@@|}fDByVQ4tEG{74Wfp+cfc8cJF~JGh|kE{lVTJE0*s_8Qd{B#=dIWw&KAQ!>xs z$dt^P4U1Mv!%M8pt=n5h7+sjPZnn~^vpk)c)kb4;vsTE7E0~#zx!JZIVSl!ilxSHO z=Kb%$_djrhgStWmAylD7EJH|9OAx{*IKI5HIwT0VUeLDysWP0Xf{J9FQ)i*&Z5T-l zob>CIoe(Kqny|{5ox8^K)UQ*LojBxiIV4k@oy3%#9G4{&l$R)!r&4zb%1266Qv25K z%cSlqE;>m>?ttWxI!QX5=zs1?B8kVqZo0Rz_CD+BdUE8XqLQPMavZox&f}EhojP2i zq>4^DBchT@i93!c>U8cdk|{XpBaV}yJCSB-A|hyFBB&vzWr$Qxr#ea~qlinBlA=h7 zlne4b4xKtZ380CJWtj?cE|a-MI`3ie8@vQ@)TdESNL-wpcO;Xg9e>G0ohj6HMI2oS zQPc@AQk10>G+x(``klX$@48~Byz+;sCqg1tDrhJYA&I1zqLPw^Wu%FTBIzzll9QkooXeml!eaX_1QZ$7M9eVZQd4hsqn3r@%Nlqol zaZ%E79n+`__}nui!vz#llOaP%OG=ZXlenbglD%WJsJh_0j^{ZfqPaVy;)w1pqKJ!% ziVFWv*_*DV>Uy51qVH;n z+(R^_LFuP?o32`&* zt*yZVO~EiQ`M{`@Sh89JZdA+)$R%}3Rv7Xd0J54l69i$AxmP7P6Q0nY1CLGfarm3O zo(n#m8u+}9FHt~FhM=VtNlHmY5>kt}(0K z?sB}sB@H7;aRkW{PrMTw36MA?iAaEqxag%e3qDTpK}ASN>j%P_@x29j8bo|G-e zcark?d+#qNjoZvGo(cdOMkSyrDGC6jLLm~6q(}1-X<7z^C+Sz8YQn%sg!h2L-C+F^8JlkiliA*{6 zBJYxY>)?>qO*eEAst;sFAg^3V!BC+d(u_&X4yHa~2R+9#%krRpHvToZ6miPW%ydGB zg4g3Ise4sA-tkyF*H1aP;00T|UbG~sXIyqE@AG4GTP1PNb@EAnUF*fN5;<`A6;rC1 z+32W-77iBP)Rs2m_GknvaLMedtbqqdu6u%2*5(~#SyB|@EN-47 z9b5cgEHiT!koudi~f*RE8 zw}*Fo@^bemcQr`T(xVVi{v5B(m3W$IQh_LFXedewK`HzRb@)(zzoH?UI!{l>a7P?k zbf3irdVUr4YWK1B5zon?_(dOytS`GK@D2Y4X&(e551;6eZ{zrh{=E6W)JVh+6W>De zBxDzVkK_}dfzJR)qz)@k$tT_?!2N6AS1f7#LGb%Vh$Tz$N5e@e^(SLKKI8I8K0llL z52){;^ZAy3X%CsHPo+W`l^OOd`vhwfe?O()u!hJ(?9@K|F+_%k-u)6zAbo=UO}w3W zdYtj+-p@hxk9$6+2Ti-9zT}^wI-;2*{iR%}^`vxBZV*NqG?{>@#L;LdeB7KLP7=%ZU$y4@Ocx=29RE9^slNm&VSKArz zgsa~&0X{^KdS9I%Gq26BprUeP&3N&DmtEHvNi=&hdLyrG(~j;Fi92nhzN3rHw~QXl zoI&L4j|uRTyRUx_XyR+b&x1bo{WT}>^`U|Ek-lplAbb=+4zGU1eTyKj(e81n>vpwI zqmAJmHICaRy79Dn(cL`u$v|>Po*w89+jNtxX($Q~obL~r6#LA9S~)TiXTr9B#BGX~ zzWo5Rqr&xL%LjbE6$hf=?l5Y3&w=FJ^V5!%9@WLt z4UE@LIqAxt-;*7rDwnnMV~8t%t=bO$bqz0~H&0uQ#=LW*zT6n;#(QzT71Ai_Q|!Uo zc=o%vUB<5IdUV61<@jn&W5dzu;5tr&zW36Xf%&F<$opaiKS88cxUynJ{VR{Y(1G!e z$8JwO#BsNL?wDwOc~3#?ZhNr$BeZL58UwmIT*mTm2z+_mPe^_3&D(B&>Fc)~n?=_l ziV0*woZ^9Y4dj>#0wBH2$m^fKw?r51i&Q13Je~3gv8%N)Tn{# z(S9D=Yt5eS4O+0N$fP(lUYsgS^)}He*h9? zbM-eTPB?mANcLyoU8Ag(-@SeVR6bpfmp4e_4w2yp7VEXW7qQdY=yr>zCBjyht=$34 z@dl4}6Qqw4I$b7>V$dEJUjuUvAbzCt`H}WIe7=sRTY&l7BR(I0Gw-$WhrpgDnd=%i zYk@|r`L3#qXVZ4B9ydzaX|9u#O;sbGHUq=MC$$6C4*w<-!c9H!ozczAJuN2}5zij~ zf#wfK=J#nUo69;MMcu)k`-!0AZ5?H~$ERiBxtDAw>ftmT$Gw9>@w#J<+dM*gu=h_l zHm-1W^JG2u8TF@s*SM3qJ-gI}@?68rpAzB^2Z0^iF{5Ek5!N zBdi|0@daJocyL+nA{q}owz;ur^2Q>!} zXzzp5JWJ=gcw?F8$8qPz<0Ii6p?gEpdRn8#9(o+{Y#q>l9Ldb-JWlNB;vTWmq!JK5 z7wL}?NO=-ZKI-a_+#{>J@M8b3liP8v2k|W%LjZ1meL)h?FYS|Rt|4!@^-*@ zL`d|XFURA%k?lQanNNo&6HVmDb>BR}LGa}cVSBr>be{W|IHIGPjw6UD4@Bua9--clF*KF#E}Qfbzl} z_dPPcc=j0WDd9Qw@!bsvVtiof2VRQ){5}i=@#}IlUrZrz)ZY>wkaKenre4v+6+zID zJMCy*rKuvY#`|bq_G!m|4EM(t6dhg`(`>I6rxV045U-j|blEGkounx~*Soynd*if; z)=JVm$)GwwK3LJ{gz0ezXz2qH-^r8fpnITyedN6-{`hnq(t3WoA>RYsNNCb@mhkDu zlca~EjFc27NO*+N&vv2QXQWUb&lq|~KBhygr+Fm@GorlkhZ0w4RObE8)cA9d=?V4_ z9uRf!#-7~neQX~7L(e1M3(|C+_q(S6dWGQ~eXQ%zK52d=J~7hmDc=Bjr0G2+HMqfl z(nf^lKVx$oL)`=HM-uUNg7jf|j<9H?^La3xWY-s_@<8ULQyM1CH@M_b)lwF{glwrc zQuLKUL)HZA4{1}>m%pxlG#*=sI=~t}C*Oas$cM475Xk9N^Gz}p6 zb_Jzqr9%G)0%!^nfllZRG>?oXyu>DiXi%Z2tO43MgotQHgefVY@PiU3mQjU&NiS7I zm{FVi=Xq84A5+luaH-MS%bl)@z4(5PIQ(BnPJAzq=-Hz7mc4p6Ue~jWUXB;^tJ4SX zf}g$*un)Wrc?a`B+XL?d_`vW1`{4cnKYSm69I$?1e6W5%e$YRF{9vGWzpM%cpO_z* zADRc|f#JUJKOjFKE)U8N$`8ta4!j?fAA}!79JwFD^5l4tI{%RDdoPgezNQwd?mBL~ zed2-R;rfrBzeNC#po`^^r}HuzLU!A%?5wi0tm~+%+fgKTenEJ;@mFbCbakB&UBw-h z)?GzFR9$VOsH>Z2XLeBqamIC#c2{IoXHj=W+1*)PofSlIRNJGj&g`;(D>@^xE3mT8 zvO43e>n5(;r7^;FY5*9_`yQ(B8V6Qoc^8!UMS@D|3ztD?(Oo)1x}r)|{E84Y-oF+05KV&Dq(( zw=`sg+p{*Uvuj2NTT^brGaA;Jn<0`$)=jmb%*``tp=oWctP`@%-7RBm#9J|z%#6s@ zR7G>eGYbeSJuTA`lTSqoM5R-4B&$Oa4AMxdP}9wIT$GJMiY&E%6qhiR*EIqy&s42) zT#HjAH%i4ou(J?DAq>(6aNAo)Y%Q9M%0-q^DAWWMO%RaWh`kXAi)T4@YguH=S-FhG zVTrj!s+E~a>VhItZfaY#3tKI$TUizibF9|RqM?R?R9Pvxc}W^tO3bmu?Q=35t*dTs zW|~tm#T7KwB*cw>Q9?qgT#QvoN}`nUH6)`FLqb`{7U`_E#+Em2X6>38v>P)SCfH@S zZIm>zB+W$(vvQR+M5`4DlTxoD)YH`!U2?2V5o=c6vsksEjNvelv$b+FM95JLBT-Ed zuT={|B%&2pT{RO$(!!)mHaRk5Xtri+LpGVErqbGRi3VeTnM}uPTWv6tHB2(f@d{B> zNR>S38M>L9TXIa;&fSV@TGOa$H*Cz4a}GIe%T%b<@4c*Y^is`35;CZe$agK9vqtT( zfws+wyC!ZV7G^El(UNw;iEV6*Hq%(scEZt)$Wa`&-G!Fn#>|^gTRS&yHqo5RDKXhJ z*|Zx=$#WH23?vAwlM^t7RozUFQ%b0l3o{K$)k73lR7#I9+=|f%*C`_iz=F`x5jRCc z%raFXNsyaL6q7i&Ew>DjHCwqJ*I+e<3D?pcarRN)o9Ti4*b@$BqTk6-5U(TZtM|gaULWQm1r*rj%Nw zDWNDPMWs7JW3DtbB>-zcB?xtpbSQt)ACjFk6%ss3k68gRJVHGUsGvic5#|MWKp;+K z9SD>Q=8!p%!g$hIp6w-ibLV}be0)9`AZV?_}Rfq}*nrKFl z1Ee|wwCSXHw4q8gfN4RYG>JkF5H6IUYLul4K%$VO5VLp$bYDKxthK z3!o_)8bByafNZoQNKm>>C?zPAXwtNxa7ZD-0Vwe(B`7o$B?(HDr6H{)14s=Z($FRZ zBvVK&D$<68(xns$N>GVP5eQPH4LJaRk)#b86F|{RN@!8iXi5|`6pbKN3rc7~(^LTH zMnE8Rs#8E3LX^<00%!w3(kRks&;#bQNR*TTN{+Oe5}hkZ zQfXRU0^|Y#(xIRHg!kf;>`pkKyb1>jT*+6ACel>(Wm2dPEiR0;(kpinTdEDAwZq8F67FJM>{f`KR$ zgTJ6G3In223@!^Gl>(4TL3;szs)3&XSp>~sSPRfB3Idc1SQZ4efnZ7n0@MZW3j$Cm z5`jRMuq+8cph-Ze5>P227AOk>fLf4C0+2~Sq7qOlK_vpMKrcik!9Yt;ED8ja3I*x{ zsR3YALR~;C3V{}&EDC`o0-#Aiq!Lgn1T9b!z@QSS5`j_#Y_DH+WQiDm0-#AK6bU5) zpg$D@sh~WH2XR1u7J*a-Y6Hip4c!2%0iTgzXrMk_1N}Ncn`#(;57ghnMsAZE&HXz+ zv4%?1QaCU#&skRDVDf)^J}mwoCW=YMsUrpHVp2mh=3D-A<;09TXWi+(np#ZoI(9m$ z@ITeF_MOeU-k9(I6QI+71D)x5zi-_876_K7nJVx9tW$jp!#}YgXJ#wBHF44*o=j7Xefv=6p>75h~yUqgk z@4DBg>OUuq;aQ*KU!XegkL6R1*kS%Z&-L%i@)^Gm4F@)maQ~72M~n_8UH_x#ak3BjAgFEFYcD+u2x77PR@6G4^jlImDWAbq3hyVjP#2dQ$WWVWSr>F2XbsaXinq(g; zpm>odiCips=$)&o0r)_tq5(pHrhrOTm7$7=sXL>NzYgq+pyQATqoj+30?h6Xi~foMVG229O80XoaQ#kqKVo)%ja+CK|h80e`)g`dM$cBdPn#dxJE)(2t`7l0$E>m zzS;FV5tNE%(v}M#{wmB<`0UQ58Gj;1N9J2nQ)-8G{V)o?5E^VzM;o!f{xA0OZ@2ue()UYT(wJ1EM?%57t1-$;3{jVlBQi6 z@=I+|$$ly>u8D1%2vEwB4s!BhzbLJryc5$m#N)z$7M5i}w9!ackT5UXfAQXxQt_Hs zE~6Z*34R#V8&f|+Ze1+JBj_)JZ_lbZ6*KUa6C9tNB)?L&{Sae8U!Q=oxs~-F^>F&L zv18d}@o{7l&<8jI;>9!-NCik#<@d&E1dZnm3(64)d82R$IzWsXVY62q zImF(8@#zPr@ajc@;-B?Iiuzt3ndn>tp+Fhr@qUy500Z>=T%Ka(i(&N{0D%gNt0^;= zo50;Y5H-LNop*caMGpwcEXojvg^P55!Rhq6Ma*0Kz>HdrMb=kqu%u{@X;zliW5L%B@6+>y&DK^Or=j3hK>wHR#fWOp*z8Op57C^+ALqYT1W^Sf000?(H}=a( zk6Iz`4|K*NO$-eE<>*kMb9c+WvQda*S+9*LRZhXd*OseQw&jM}!?KgQ=lo9#wefkC zUGCsK*dJ^kq7G0xfOjDO5FK`abhLv%&F1ypbdr4_cwEWW`kR+(TMKpFUneO7dr=7o z<3LaeO(i8Q3que@QAbmhb-@&WQ=BJq9TSt6(Cr9Fp8vU~^UVS`h)~?SV=oU(j@dBe ztCdFBOsyGB*}_alDRreDoW{1Aa%^Ioq}i+`8&PRA+m?Dw*tE5?CfJjX;GQ^8xgshe zADFxJT-?LVsATlM4MQQT#ZH1VI{=GQZhG z7=$&61PFm-$92TkvV%TD_Jwx*Cp8?-U_v%5!cjy-ArV4Z5U7C+2n|uFzOi(=NJkp# zeKJQ{{vS?yBaT#iY*dJU9~aU3FmxAH2H>ivt(Mrz20r`(aDn}YEgtr|1yU|jmDf#o zs+3}o9*tc$GL8xIVK)FDaY3yFJK8~OZPp}Aoo4b zbw*?E_O)>D@bYo3T-@9}!{s%&mZozdz5p>jUY~vvIsN!Iid5lWH+{W&q}M40Hd!QZ zoli<337E+_S<5VcgUnZ2?(*id5ge5BOC``A8n2@kH{nEP4aJ1PX1rL>mS;^h2i~KP zUR-Q_(oz`pSDubGTm}_(18uqJpz|<-YhpqF! zlM<$ayWiM&A`Vy_-}8L#uJ0`RE@k?Mo8S0NaRZqWHR0fEtaNxdB7bLvh#~Ou#1T9v zf5i57e;^m%v)&F6@E6U@$x{_6hyVZs;TWLyJbxFT@?G5YVn%Rtv&knbc-`Z2B$Cs1 z(n(<2`kq^VbY_Sm`W@c!aG3CNC`-CRzn-A_A3$6j>NMj+U(ZDd7ts0(+g4jH2!PU|Lr(uh*544( zmix#tfm{cmiC5*&tV5v$Gnl4fMPCT>Xp#mGmKo1JgrFIgR%oG#mI%z@=87n<000lt zh$4@VJWk)_yC-4}c52Z9+|V)pQ_#3RPkm$)+U>g#UIuPs9-iZLYn! z`*J>iE`GzGV1VE>VhRX=_l(Fu#v<>K_YAwfNJlHm1`^5=lEIx#!$uph9VG+Vs0q-} zKT$ukQc3md5+b_dv%0dPi;nI{4mvucq5?u7xkHrT>+Md_5}qx{3p0qk8Yq-O2)0nJ zY|{4FwzdW~!<5@-!op?SV`b5*mPp&OHdxPpT6nf$Rxzz|3Z}PPnP}NYHo*&>ts7eR zczgwUg`h@+rhn%^1c ze6IGNIQ*;A^PhI}cf@}`)79R`!u%gWDgB0Y`JD&8Wu8rqe{Qq)@1YId_kSf$`TW0s zAYi01EKlKjmGt0DM4`W>{LgW&Cwt#AqZNx9`0ITvvR6Ig->~T9jzVZ89^hGkbU{O%i9W3zW%;#l*n4tt%gKA0y9{OmL5R(6dtLMPR?zEusa35J>Jrp-1Rxryr>^0&O+q$f&$Fe|%tm+ZvsIpI$& zQ)XjwE1Mnn?B>O%60}p77K~}lkDmziKux=N%MNYK&DyDjg1d9B$;L@FYUP-1-BshQd#_}>dQ71S9LehCms0tIEQZ39 zUPljw+3fAHuH!{!`0mrFor1aRIxfT=$v~6vN&-C{6B(R?FGBhV1coI{f;|xuP)G=2 z&_n~x&IlvX2g$FAuQN4Yb6$$wfcY{|IkHLR0=b{L;GMBvU3i`qUhlej05$`B83Xpgzy}l`whz|_6V(S876$+ywhnk7s17hW z0OE!ETC3L8Uk~=0tJ|-Cv`g%^$pNfwXynd2HMJd*bW3fvWd*Y#S(Zk&wCioe<8xdM ztnB2WBQtvo%X#ZwPb}8=&c@_NOwkadLsGDU(A3v8D;`)!2?(vcqJ?Gc;{AyKXI}gK@dBEy(5uTeNMsmTM-n8xC22nVMS`$+?!IURIiF z21SM<1-VIShF;}{f+|r6M2d!)5~O7*S+16;5>BC#B$S%%p^X|&VY?QxX`5}C5?GO? z22n|=nxY;`Au0%@q>}0td9G9@k>sKniem0dnO5qnrn*$FNV*<+Az20&p@?Z=skU=& zB(~d9SdtM8mU@OZVdkM$SZaj1ZkigMt(wgY+S*CUWR~Mo8$?Gou-c8cJ8`!=OIT*M z<61SXw1GQG7Pg4cFw&EDeI$R{%yvv#TG}*6OIq8u6G6FKHM&GkgBPvrC6w* zXsWtu>E`ArYHKHCu@<)^F>TwY6bMyQBCxF0OhY8lDE8X6ogoacX3}XX+goJI1kGzj zyE&ZOvou=@jSQDTB(kdwbum>-3=;J>O9?|nlE{)r4+4}?QM;m zHqy+39NRN;F%aDa*HDv}elIt*u_3IE8y2?Ac5I+ga<$BhHP1^?bP|I_)yRx##M@Oeina%NT`vOn5vN!fsut6qEd-^g{g{)nvs-w zwUt$Bs;gC*!0G=w!1!@MjG`SblK=n>u>b%B?QHFJeIHsR=>a1IGxB(SwDuF~l9o<3 zqA{*n`u=8!tIrvEwfN*Gc={wTY8@d8TWh)3Dvr*kcq0+&Bmxz9P{ff4)1^V;0?~if zW>17MhD@L+qbyaS;Id+6Q3F!+eZz)a!zwcvWh`*asUeD~YFF$Za#BQXvej|va6`O!^eU>5~J>Blx`dRK| z{HF8GOsH3m9;aRa_$UN?r0=QFac~9jushc>Ht=!G4>Q`_%8=BU)`;IqMwpd0&r_sq zL`C>l&Q_UK7-j~F1`)^3mj&Nx?RNgQI-1iRvwWn|m@`kSn@zGoZ)-*8eJX!5dux3k zpO!!hj;;4tayCm+5Qrdng3etUO`R1W4XtF;8Gtp2#RYm8lq|DDz(3 z)n&G{?aH>(Hr$!_LH!fPvJR!xbhP+)rExFeV*!pB71-bo&!c^=Pf>Y{rJ^I>gQ z&sbjNu-R?i)Z2EjX3@*;KX!0vrBm&8KcPyJN~)iAH;oCuy;pNDxxd~zTr=uv-NGkA zc2t(1#^J21YTobvUnZu08rwLj#!SidZB-Qh<{XwTj~b;J^)KC3CT)LOCki9HX&PNX4R7nf+l~@Z1C*izR>R^K883m!N(okb>uE=>AXqU&Yb+96f;lFGS6uFvQoYH4;l$G#>BUk^GQCWZQZ{I0sKD<_ z;P25-))o+58|%wJotIH0v8oY&gPJM&EB+mZs0EyF3&v^VhKEm-8nBMP!nIQW$N4{n z9GlFw_AUYWFb&(&C(&z-|AiNtSlLqJD%2UoUti)3P=nTgopmYr|02pCQCmXJpSq41 zDT`m!PpkEfq6|;0CH4N;eb0|yz`ad%Vtov_RH`9XqI|lgs`{N&?O9QI>T97K@UZ*XsY&gT zk(IJH6*yy}%q_oFl;n>1+pJ24D_&&LRr#GB8W*E271r!EmXXI)c_9Lo>dT)vKl}cF_`*7p>wHfWr&b;wZx_PD#jJ3{#n0ka z9xjYmwl#cj;^U2BUM>~6TbE_Ext3bmney4F2K$ts56^M0h6(2K6B^C*ROsC;lA)e? zlAeX-x1fl{8+Pldru2H6Kv>#9R)ye>Ondhfivl)pewjo7q=&m zi*>r78UYXoo749Iy<#7@U_NyA{eME4>S&l&!8u1wC z0#+N%V$Tpg3a>igci zzQ0}DY1dtUwLUUYoqYX&x1StOXQJo+N5!hp)ol}kY0CYz(%tXN?5?`jwfA-$NFS`I z2l%o^hKgk1(n-O#YhMsr+HqhC-@>fTgbg1nh%KUU8{PsAXBW@%{%_;M9Jt6+X78-J z^)lmDe+Hmst8U%5^Y=6Cobt7{?xObKQ*!zGCkO<8_7LsT%CSj;h5Jvu`5zyTw&&^G zeV0$OxcWaxxaXH^A%Iyn6Z;n8z{wUti}3->oG}=IoQc@p7<*YsKWV{Fj}S*q`Yhd zW_R{~2Up{zkUFP;o%dk7#C&vh^T6gRxCaJGeU^;3Mw-)8!Bnb+D)Uvks=g^z#@eeF z>~b}4J|ep=;U$|NddwVM_L;uh^Se*h_}#lS*qiO?s*PNLAM0)d@q++y!M+ZVA3PcX z#m!uMftpYqA4!VvDT?%Wm6_eK1+e0A^VN2LmOFmqr|2e{uA3^)lgqBFGTZz%i|5`4 z$63m!c9rVzG^$4x$tt3SMK`qp+0ZMUL;G}*El`nXRTp<1+$9u5M*>ux!9gVl6o(|| z5F??tVnv2=Df3%d(`2I7#>$v&nH{yYSO)BEa_l&hZJN1% z)_I;?gt;s{oN3~L7=~cSF+G7~KLWQ>4`3*!a(iEfhRs8x zS`o%7bkaCynK$L8K*jtCe=KmFOj!a|RP3Yh+xY8Gtj_IY_{vYq8@?J`>gskomJ$A) zugKer56%aPHVQRS3G!wq;Z!8X+G#oEr}H;GZzj!FNu`kPs49Thi!KcK@Mv9sDx;4F zUytKNU)}q;u2OB~rdb}0s_Bk*67&KtG)%M>~u~T>Ge37E&g(Z1Wbyeb@ zd^fRFpB_7#j(9RkhWToAZ2I3*?TD`!P3TuI)DrlXXYqZ7p+Sg$VLqsRh=feIey`Y3 z0f-5YFKfTSkAqHLF6U{yKrB;#)S&BcKaIRWFB^F#P%>m6N@-^`M%eqDEaZb@?jPCX zh0;^nuaZfdEz?U=t~z-gD*|(D;4+(OQ%i#t=6FJ>u*b(8%Zy)BA1@m?VKgQ?d;ANN z? z%+o6_WurG#?_n?k_OKNsp5-hGI;fGF*_Dk_%)s-9*Ys(GJ6C@mEBNUx zr(0fnnqOZw5m7LfN~bk{Uo#y^K7_k77O2qMOv!yda*R=t9Y6tybFu zalO#o9;ecA8L56HvjeH>ALP|aR(PCVi&mcBq07tX`fMFz%sr}}t?}OmG0vw`BybYj zCHPzMRADEDmk}+Og~1sO?9;>Ey>+!%akNP#zK4mQg=;XHu;Bt5y?bMNMd5Onf0qi6B?COzP0e((^zIonvLLRiN*Q6#c0KzZEK@d zX}HQ}S~~rJfBit8{8R}v(h0bll9F44I1`kbb-M!J!B4Y)y~)zSKDNqVU^Yf~E0M|a zJZ{Z7`4d+1zh*@?NF$r_yq^;G>z-v_zqS{~>}!`^1}h_dgESVm=RMxjl!){~_Pr7m z5Sj@H9>)1R5f=!jLMx}$=`r!Aki`^+A>>lQA|F@Cqd&wR(Ed;ipKlf!u^t1DCIyho zF)AU-s8T^gjk zLOoU12YuSA{I(sj@Vm!nif5PVifV4Izz=&S- zCCf0y6hIk<(J<;m*;s)DLYO5E(#AZe$HM}#rHp%rec*HMXG5j9{RX{pfP5dJ|Ad0l zr|~6FDH0^4C_(|;9Rz#0SqxRxGNg)#nJP2HV`5n` zs@d3ort6_D#@KAU<7FzrEbC4Z#)ft-v(2P!tZXdO?8A1OW^Iw~;Oy{nfx_1%M@_7_ z;vhJ<@m@Q@(}_96M+c6wC{Gud!`qyb({ib3)YG(~oRot|sy5VL`RC@PldI*7Hqx12 zo~3o-rgf_#WHEgvvWyv=Y$2t*<)W5~g)aqOyktZ(G(_AgzH zQl`B{XT_>+jFx0g556ITD)8tL@cY9{sC3D-NMWSvRR!agsHic3=$IgcRdym24SbxN zPqmX|Jqk2x30Vd}``TA6EuHe%~J=J}=WmpCHf4Y(qyH*c?l0Oe!*+$Rkh4 z_}u4<(nmbObpCQsl0G(*mrRaxESbvrTU>t%Szt8VB|}Q*mWvL0RrEyx)H&n!nPd_= zFM?yLAAVt`$W(UKQ|V~FaL4h8T-)%+Z^?`1nV4He1Mo@cCSRDQvAJK4)s&wZ%bk~3 zpc^3NUANO3eu(G!f_dAe=G2_?E9FJDMurZxdD;%Or1p%9Rxfhw!|yNizUr z&iT`*+i_LqfrpoDCsv;|M6-*~r4g5(&;lTY1Th!S^dF!;hOX}C9?hFN#=WjpadJD6 z3}bgUEF8Uw-PBBLoIS2S(%34WWW0a&Rj#d2sP)*fsm`1xtB6fdZ#$gIMydHRRbrV@ z5ywRBr=20LT5iV%WTUqzENkyEIaKRpzZMqZk~s9yuC1)PFv7bvXNHX%FXf_3vH5*}3}+ zkG~x&jz4!&ual2||IBh22ifNUi{1JC5ApcvIjI6a8q~H3F*<>MI}MC4-ezXKcaA0u z_}XB`oK5Y`wA)Qq+`|j9wq1Xm-zWCaK=x@N5?A(p*MaMMr&std+W0wiU3M0(qcg0v zb$Dj7C_PmTsHO^yg5OWLZ-T?RVd?h0K?BO_r#N=ru+Iqk^Qo23JenJ(VI&a+tFN@C zATR}8ef{)mh)59x`o_i*iX;Q4Pt!p3pnfPHW(O(_Gj;mji#{K>C3HtRHwE zh!%BV^#SdJ^Mlm|J&<{T`44Oxfc=1ez(0x)^1=DR{c|g`yRvn-$%OUHU}rU?8)tY3ca&GZ`+fb;rIZ6 zKtxCRKqMj{L`Fnp1R=J|o^l`=(B4N4L(bn#Ox%^5CNSY;)Qy6Yb@dFEyB4V8cQGM!#TXChDFhK%a7tBVU5&uklQ zJeZ8QYO|5knks*in335^otoW5mNTmsvTG8tSTgOmVH*iroS8D#U0iLh7|Uy2n!00E zR?6n9LgFF@{G z?krVx*KI0-w`57i2y8XjMYhECg`{@X4wodot(MziW!QhShSpR~m7HXK)q_gI8|3)w51y(=_EZg|^wT zVk>iPlvQ)9TV0uEi*z`RWi6H*sJjWMX4?y}x-#;zn_;&Vwll~gi!!A}l^v?vMysi` z#%gedY(#&xlNq5`RKm$=6x$m(mgKDKm1WA7Cq|8nYGgBpSf#<{F)E{AEBRS}sYBRN?!ww#tBMzjgA?X$FFD7GD?tsT6EKwkXcP z>ta(>D45-y4M??fC(hnJ4M7VjJrm|GZFbHU#u&CX)vc+{yBTP9YZF}gIUb{8pwQz?$qLPhay8N}tmloa zVy(3H(XFX-t36X<%BGukv9lPhs_O=3((I-eN>Q}6L4h)Bb%>aDW4sLM&U)>N@QiL{$+j9J7{76&Tq%r>h!#W}@f+ZDELxr~39 zYID%yQZ2Ua3nta3HEcHyM{PQnvgzwFWXUybGH6(%Nh4Th*KE#3VYgYM0-4r{H(M~+ z*`=M?O&dxk&NNJxX2Ydh6A86vV+vKa1f;F8qhP}$F)W)7T?u1pB9_>;6m2GQ>K558 zC8}XmaOE4LZ0gR@wl%hz5!lu)Q%Qdqmn9^vXtSa;Y8csA6HHdlMocl6GT4lk+_j=j zt-7?MRkhSfq)SkVob8ZFnaQrn2{=Xzwj)Gl%bY5a3$d4FvuC2hv$1I@yK8cl&Wud3 z&Dt?2h>U~jf9^L10zV089Rwj)!lf)pS189A1+BausZAoqSH+{7dgj{OHf?{^ZCu?6 z5+C^{LU-fntNd zR;4o4Hr#ewM@_Pa>aA$yMG0!UMoZCcSrX85q(Wpe)pO?kR^)YHA@9PGo=ea=iP@tVzD5bW2Q>IAtbL$-tx+Ui$cXXKG7LSueQx3Q(^k z)7O_+cXCfANhd&*EUspePnRNW#OUeZzTP@Gv&S&;=;E7kljfgON@K2F&FwfYORuk8 zH1BQIfwptSp>3aDjG8j9BcqorXB|85-I2GZd1{xFUtfv$uWo;C#>~34Y)dF3R%UXp znoXH#x0f!>U%({X{XfTilmH*hLr4^XpOG!-x0VomDlZIkE zSYB)ET;pWj3vn!&;Y249_*=*50vt`vLZDAU# zO+8Ju8*F3Vd@>68c=O9!yQ(TGxRY+08GpQ2hS+jEZV=TOlWVbz^_nXq4mMY>#D8`k zr~&x3<=X%voH|RTXIUM75kT=FBt|3R5b+R?NLnK1$sAIExl&Je^MDuF^!IxPF`j|m zQulZK2n$&jX6`8$8bKJSDdL@J6cx&`%ewBg{rQn6Hg+zLK9w;+ob=|((pyXsMSrA& zsK`u7#wJl9?H<-!vgQme5*&D7D#pwh$Fm448IrP z!^@UYP$A_8kh%awKqG>KE0B<~nSl;nFp@%)ib+OE7c-CfAF^=<;QIgV|Jpt8_cnM@ zVVN#pXK#>p^V!mN_PTxH@%27>uYV#)5Px&u-b{Vtuw(I`3-=zO;;KZE{Quz4r{5%_ z5e1i?m8xPXL9in+@UzV1TYQUA{`D-7LX?a8nrH!y)39fBf5nbMC8zZ7KwWI|DmUL+ zc&%lT^o@$5w^fc}u75LWeT`*~=(t zn;)6e@a#>y@v|CL$o0k&@-nh=-VV{VDcPeO5)xr*Jm&Jib2@b@%F|+{v4j#f@}tw5 zx*TiP%9PD}#XmIbdRsg)>0dOkk@XvSo+~%-F(~6sal4INE(T7v!MyKNgI2CZ2&}|N zdB<4uh%mrSIr;g;5R8b#HGgq;b#d}?4_|Lnd;0^9H!3x7go;TxnXWTy#at2WgPx?} z*7X^T&wI7h);qsVRJoftDcHu6|7W4S4lX0+E%N7r~^UKa94 zFBRBV!yZbtQ9xu$hQ)B>Ds7K6r);=S!9957Ei$^UJ5ReNdv__C>3?b4u2}54LS&NI zy_vPID|1z%$|-FD2Q2SXI^-`cT02C!6(h+wd#ZDwt zL~%kuz4QBS3h6;X5Pwll6=|ZPy336_oogE!!a0$4+@>61v$|J%) zMqVII z#F-XGip`e11nGrJqD9nQ>`sbXdv@%px;w&!$WtZN(Z3trp8)JJOhPRch4%;w> zR}m-+CKOR7Th5)`-1%d-kI385cqoK@Dk`LvRHamO-|l{vw@0G5I=VhmkwY%p+R`x~ zq)5bwC)q|0BO@oeYU z=5jvwccYq+T0F!hu>Mhl*XaxE(dU%-mLWV>mG|#)^z*$2y*AP>u=I(Zl!~2TjGD`q zIFn^MP>>k@`oL^Oq5n&kmb6;65rD2CQ1^ty#bPF; zr_8#T=-l5hl&fqMN-2KYs7jo%5&H`^fRfzVUaxUT+S?+W*Mf~e$c2A8OYNFpy2k}g zNdosG>GzZ=?k+G1tNWhMvb*vXzYXp@blGjyM^s@Uwx&v<$hyLRmtZXnET8C?&gz#K zXH<}?S+2+$Aeq;J!y_risY-Z8p``1UpL?5XI^6^;omNN~c{g0n!}4Nf`R1Y2Q1$w#=Tx3frac0)4D)C{CsC`me*~2h zc^X`fM3`P2ep51k*X7t8tU~2yNt(nIh0bI`0v-sw2hvBFBQgqfraoP_=zbk=e)H*hWO~D%{*HU$!M?2eyLW4+ zw%gh8xp5+Yd|Hr%_*4+8g;H@;f*lnV4ZAKRJA#TRn>DE%EU%XGI`hnxQ3Wfq=)$^f ztEw%E&UV_IY~m4WvPo<^6fPNTqdkaT&246;?H03hbqLFwb)Jk_3WSW&hem{4s~>O2 zKSEGBg+`GnN+>BBN>jKFq~eMqi6f5jWb`%0VTmPw=|<&Djrvc~g^8#HOuhMFFv{iNM!c~>d2occ zqM-#x41ne1(P#ugxB>tH?2J)$z0c~1J>Yx5_kr&N-Uqx7cpmUPPhih!DnzX~MEE4Rp!>p`~ z=;}FYItzvfCmRn-lEZ8?R5v3xk5~?XHo0Sx0YGsP5r=}r|b4 z**2B6)R8YT#0(;g^VKB<(MYm9MD$ZaA~QVHRYgqflv`=QjoQtpD_HF+p;CpZh)H3q zp_O5#wV4p*schNDZgdMnV{}D9N+eQJl*}>=)V&m}kub&0!*z08)eKCA+IBOwxjSeu ze{HijJ88QN;Mp-~63!;lYcY7DV&*7?B$5fJWhs_zX=u?&gG08?J5z3DLgJ^AC{%?Q zT3U&wt(Us6vWbrMih^MV2Y#Qi7V9m1v2YZi+5t zh(Vc3ZhBhlnpO$trc~-ChLUS;*|u$lf70667KsBE6hb9R!w8hkOft&UH9U~YgjBO~ z^}@iFNRL@eHX|a;$Iv1^gQd<<)ao5UQ6>$#1It(N%iiI zev#;eBz`@F)@+l={pFG+@Rz?N{#ut?_Nl}~XnfJszs*r3{qp?6#*+nN1rUi3uw)=$ z@e(6khwaDs8T7sH$tzUmOm6vBXn{KwBkf&IoZMj4rNrxG8ftA}XV{Fsf0!Ag-z#ge z?x6gbscL<*j^vK#*2)UzRR2@ll8R(-N0EO|-I7WhYI~8!KTZi*)AE z@5r!Kp5LcTyHz%bNAFGVf6Is%=fB>Y;Mwp=e3u`Cm66fOV9K zS_%|}7ah()9ZAP29TzFU97XMH==N;R+1WDQF7X^`QHYT@>5!$rmvd2!)XvZ8J9C2~RDB1c#i2e#vP*>jmlhAvgOV)xA zp#l)^^rwJ<08s;{r9yx`BElt9gVLftn5fA_l1?+vAt4$@sd@q1ygGZ~>4D2pIC zG$6c#OS9=PXb2XZ;g~SXfeL29VyxNMl$u!9fW@1L*r0hiVxwwj&I)?(j=6I?B!`v= zq#TH}d!(llfT*()L`9e+j)oG2j3q82 z47rF94kH8{!6b6W9HPVjN6qm3zp3j0eP9_f`(Jd7Ml)HUn27-hd0xR<2#3q}<~GEjD8FEUnm9*8gg#cr$AMD@F+igwDQ=jY z4gP^(e`0P5P3h=U&Up^MoM9j=J%D>C2<2HaOKbDawcL+Mke(M7qidLc%+*;BV!E*~ z*)7xJp1H*>8SQf4ixkw}kAJt9*GjR`ip#lu7Bd5u@ubo#Rg(<1m7EPLZn#fh9zNtMWubcq9W~&w;IDyhYGjVAGh7<4 zQ|zr%rmFQSm`HG_crwXSQ!aGEYcIa+bZKWEZFcRsHH6w}J`50W9d~8Xlu*N5`1;x} zTj+j_wPeMJ9miIyJaX=A)_33n`{PQyIYn`lId!p_4z5j7a#TAncaM{ko+zS-06*Ul z0000G5CA%YQk?6EbBFkMc9%WhT0AJKqMG2jQl*n5tTBIMYmHD`R~zv@FFcZTfm#7d z8lvLvE(!ySqpr;0;^9;jp6K+pB$g+t&p{gwmCrVDG?uuQ(TtsB$xu2jHZ)^*BB}S# zq!84^{zL%$=mVS%a5=!{1Dp;Y2lQ%ixeiBtUG=NJ&3+@yU@BX|7_(3z=M@5p1bod_ zLl{Bvxg&pgIe>!i_-=|Ih$6Zn0SKtoqqV*v-}Jpg^${41+$01MGVCoB9l&vRdtz~m z`v8is5+;7nWY>WfC7Ni=FD)8Xodt1dP>2!|l)V9@4N2!xqAj7)W$kFk6~mBoh-kwp zg9kbmhF+v%!R}z8XV8ocZB|Uq&aBeLiq6z)$fSSDrH%`cw2ir@$vc}Lo+zRWB1sO8 zswg~6cN=SVwl33Ywb42)7v(Ql*@KmaZ&Tgo>%Cq%#@`9_SCsR4e3j4Pz^ADQP$We1 zii(Q-Bztfk`~OqvzK!}f=)Bmx^UpQrC}!EM4Wr|?o{GXH9xpgT8`1Rs@v``OOh~3! zbozh1pFEd*jcJvYyo@>NOV?*2Ov?-E_4&NzSLa-3*S4V@ov?bFuv9*4XwGem1d$nm z7`ITNNmAPKJ}4%agZJFM1Q+C)_|>dXBADNTD6oiZFBTA4tsOp$w8JC>Pl+Fc`9}~y z`45D;FLZ5`2yGN9Y_(650+37fNbicpp#*Vn_n?jkL-ij$%(FjQ$z1_~X=l(P8!qIE#p+(@~$x z&#I_V@gyboUHM&2_`HE1T8}y=Q>X|;1w^AD5SUZ9jLAMLF1*{N`LI;^z3hhd zUGuEcz00ZjFwdf!--=|+J4ZUKJZ*p5$wP94mpepzyIWXjgiD$;sW4=ift$EtgEaWC zp;9u7mJdp|u5_@Ua|0V8T#?`*CsfAfgnO8j!QW#ieB1e|$XxsM(iBN3bWj57G1Ffn zGM7y4uNPA-J_cjw?Dce&ODPgQqJ^8@8GMTB31Cn0-e=-2U_NN$K!-6Yzz%;w>OU7z zpmiY$6htHi)#C8*?B?eq*}$7P$({}t8guo>ff(RF1f1&T??b;pE4ZA&8A0rTwwBXO zylmxiPP&&TI?Zp_8SITF=S1&F6kL-fUJ03Hccj&G_$`BR6|&HV3#u1WQo+c^RP1`2 zi01HR=M3tW`O0&1G#*Hf85@z6y0P{VS1bzJ%_JxO<1Zk?6t(}q3%4t_1=;@+2{@LdylDds+11odT+Bb1edxQ(u7 zU!NR28D-p}{JAF4GpJuJQqGZNDJxfl!H0t+ehobXB)$Nr!Ls;(A_FJxp#-5CP^Bpf zQjn#X={Sx)X?7h)5p&nU><9am?+Qf3rd9pm1tR{M>i73w0rL^j->CXS_=ZJ^Yf{|JRnj)sF z@1Z|+>mH}91VjQfi3wISc`f-6?V1f_V9vSYkZ|@m^L5_)zts1B2jo435%+&(Qj)47 zV@Rn&r2+@@FpiWcUXW>3prAwfI5?3wfTn|(T`CPPSnlA%KvLBMO~*U}2S`CVl8QxX zC^U*_SD66N1ppMGMaFcrB2WR$IuHs(XemScGy9((*nH@xy2IfEi%bz*tU|MKRP-`2RnyX}N~u%k#wyZ=dG9e7f0+S5W6!mdeLp0jMEtR`d40fb!B+Vis z-E@K}Ekw~3L?lJG4YdsewQTL1Cd!0}l#*(0VkQ)+BvB?NgdUbELaCZ*XhwgOhH6lS zu96jsVIo;5X^G9kG1_T_wuY9#n5c?bx)_yumV|C;3I&>3qFG2%6*pFiXi?_QS~MoX zcH4!Gwk?|1Bnz0-sxsG<>M5#`>!On>wIF|sO&OML8aB?uWNO)D))^4e+eqb`a17vB+f6eq z$k1BNP6dm0Cuz1aAlTN^M#$RPMKMP+5UVW{DH2g4wOtVig!0mpRF^#SOs`AQlCs0k zQ`OAW)I`iMTVXETZ4I;xOig8*DFq9vqEbqfq$HXfsacBVs#PVPNUG`^q2+&t?P&m8 z4P=(vX_#p^o=BlVhIy`{t}b~Ji6NDnkfBOiC}AP#qU9KPTG=+~Zo!t*C~Ixj;VEcp zs9GYcrFvvmq>GtItEDTLSBRc^nPTNA+Qh+XDk9eT{lIr$Is=FY=g6-RM3iv|8cIPa zQh{1Tr5+&{O0**o1pv?`A*Fu@K+?R!peUdU7KEXsIg}_klZgre(jZa+p`qpxbcGIt z(44|(27n4zL7^!V`RE-e1qjemiTYVOKqnDMw1GlU1tSuaG$=HINIF7+4I@fW(zFRl zN&!d(2}-o66sFlC5TP0XDHf4Zl%zDJA&Ey?28vLj2S}P|4X`6iN|b-2LednCG@#Py zLrR8#M@p16NYYVB5kMw@XizjLniX^)l!%laAW`BIh%_mRl7L+RL;;`&N*V;vpcLo| zK%^0+p$#EOE`pUE6wsz4K$=37S`giG4-kn+H9+wQX;(tf=}JLO0O&v|8U)dyS^)|Q z6(|wX=s*fIE{98{4GMoIgGy4Xp`;BIh?*JzDGW*pLg@y8bOWR)0)zufhMg$VBcu~X zg<3!g5OgRM1En2Mr3h$JlTM8$g*2e)7fyph1tCgMg$hszX-xo)C}(KQM4*4r4ut}NprjIjX$l8Q zQYL^YT16=XNvBHa6w)jDZ=@&GhLj2^p`w~%r62D{yC9Dc5fWPa?=p++Kmq#*Rnmnh z6eCw$R9tj-MRFBKImbldClpYWmf9jtl5+RBQkv=IRe2YelvzsF(&o=HjxeKQHn(Nk zX4@L9Vwh#EVl;nFOxnYm6wb1xv$FNh?HbQ)J5I)$H#rwPMk9@}`aX9eDNP_y(uD;q zi@4yUthYFz;^Ux$l;sG$HEMXnoN^Z4d9ie)%B>Qa)sTisAjGhne=pxXJ`ej4exK+6 z?)=*)vc0zwc}I_2i141RZ>>@2^KmaK$tnB?Vt?-K*DJf;jU!p4+y( zem~OoPoVoQznFH{;Mpm7pM&HYJzvM>eq9ma^It_v^6T`)2@QDvT!C_E{i$PG-Y*$H z6$~_04SjRUr#Yz@yp-quR<@_v`V^Fa#ePKmACgv5b~3g-n7=CSeQvnyt?wPFiMW1f zO&czz=u3ZIOW}aF@`vP}=Lk&PtET*oso$BJ3o zc2kIgRJJ+sWNau<;)lw4XUC9kmKk4Y)01eiEtb;*B|qf(ac7WQMC`9k%>4?D)V^uh zSB_7bc>Yh5p)H%U2=;`&S|5rVpESV?lmvMET4#UxWl1BSf8sodQ1yf0&Qa|b?j z%VLY19SS(&iYTJ$5Qt(br1^IefN=pzvlD;#-@YDv-k0w?_tFZ8Qbgyi3wBaV4wle6ck7DKL6l+Pam_}p^y}aV1!9F@{fCX zl;&ydIvQctNFuwopsgb7Jccun&3C4gMZNgq(8AB7N|R1>&!M2LD76S0W4iIfAQpcy zz$~j03N(ed&{uWFB-LG!OGpO>MekzGMrVyPO1#-)Do&5)VY#{8*L!*>?m&xv>sNJn zy5a}~1|bug(TWj_MJguPooh243I%N$7*7_`)`Dvg+Zg3KJ^NdB?X85r2CjvwNTSYkSv!Q&Yyk0@z zmWeecu+EmNu$;l zs_ejDx2KoNrhlOyBs2No(keg3F^|jlFQmnYFG3cGoN82XkXZ+}_nHL(A9&azPyQOG z_T=)@2F)_#neA-i4R6H1R`-9=C%NXOJr7C>vrts%Ojey!&vNXI?ork^8ec(O=Z>EO z{PQLL&G{XFRj`Lj@O2Nb$fa5AFArAp%jC!H1}6G6vlc4g40s{09#tt4?EY2VS=F58 zvb<+|mqVqpkn(L!G{qX`^LbH94CS>;pKJVLU^3LU&Y+dDG!w$LABTU{Q1tm<deJsm?52Um!R1VBj3sR!on@rI)B_D@#!tzGi&_YZ^A5ac#U*!aywA#gnw zig*(mVC_RgrY`$cEe(%_q26f($V@ukZ{l3;?x^@e$+&2JGSoQ; z7EN3_W8vcspuI6lcUCWkF;^iAsvQ*aVl7aaJlQsbTXS(Lwt4p@|2R!y5UZM|Wsv(O%xJurFz^nvui{HOu%`vChYC$lU?E9}An zm?D}Z;$Fm;sU<2(_+2Mo*7g_cucxiIX;;yr*x{Q$S=igFwKIWbjCYeH%NMa-xx0ei zu!h!f+Cm{6(cga}>nm_c1P~0+VomW+@Shkri7xJNiR%? zWk*w~FI}p;E-sEv6P{obO%Vt2)d%)civ4_u6bngob;l*#LYEYha#D&oLHZ53E^_09 zxh=cTF(R6mv|Um{!m&)aOS9K4n>ZZg)F+LMa<(iCNnQFWOjyf znrY>BnALw{OB!U@*w^Rdow>O|4JZvXQ$kQuaB;z0IUVS-^IESRreOtpLQ%{R z7;N=~cf>j8xds&5fQ2 z(OrKUmg}0vl%CA~g;jNwL$O0Dr7lAkJTaWrP^p8OTj50$*P6P4m1M@Qd5geyB{v0d z>9eFu3a`r6OX5x-9uh@xaWJ^p&VFKHg89^GtptfW2cS9_hQ#L9JX&}-hmkwo-cJ7> zr+1!nr}l6fngr*TgEHA?v3eG*lw6!0cVRb~};A85&of>g&Z9hBoRWWH zjXE}Xw@teFb>YHImJ{{eHz*DG{CZz?^dFih(10i?s-KsE4GTe1U!H*sQ42Le##GXc zQ8ae$U}^;E@B?8KvGL~KlhOm}kf@jWrajM*d*6@peaC;Ba77EO#fa{-luB8zKJOBYn$7LtdRtpbVI!tZ z;IIj@kZB?r1pw7}ipKNItl9Jf1dT(W#55L+v3nGTJF#7h1&&2!!Dt>7 zx}+%$E4J31AX2|@e7-p514E-rKxlNa4%V0r)~c7mbj>Nx77}Z0P_^{u<0l? zYLT&kr2T}0y$i>bJ0MDdB#^HY)4-HXv#8E2@8^Af^t^|r!;U+OLgS9eIy+)E+1;8< z%+VV#a9UGqJH4Ugd2T{74sF|RvPiSLEaITCu#ZSpawM<~JoR*S6H8V`V{L6GT5*%? z!x(>SLN=C|YlY-SsHEhnB~peaZsfTtB4H42l9n1~s%x$Sz}=82HW;&Qy9ODJn=RSQ z*t4ZGEm~PtA*5=l5Q>)JE}^+pSYo=FUSckoOQ~8V=y(dohM3mda!GBrhGh-AEaZ)L z<8IS48q6Zh!&usFrk2Y9ZCXPtg|m^Nv$qB9|$rnY1@vqpAXmRY53W3{B2Cbt>5&K$6f3PaR9&oD7H$x8~A zG)h$jM3FZ%%zvyabI`1A*}B%rCfT!sHK>Nxw(YlUoaZ-dIc`i#4I53k*6D6RT1MJ- zv;#8FT$I8p7qH-6EL+; z5i&DV1W!#OEK?0VDqS+dOyzBDwxzX>Xil3jSY?wKY=51K+cdOp$<~-sLaQ{AQdbbQ zbqmna(4vr#+|bNSP^!Y!$#P|fVGWri)SBC3vcufY!w>GiHwv8rcFm^J?p%D=mT|*@c3v?`8@lDGYPZKDq5i%>((?G2bFwC)R239qQ z;+dr$7=My^>zYYQN*ZYql2)neScYX;hRf+{#i5hui zh>B^u1+ubBXEHk7jb}317`z4Xf`Xb#6rm_+qM(Ed33x?BencP(`q>%)q*8&PprmO+ zmXiHGTtP?_xavxhjwraOK;S1P)yVZ(=|t61vwybQaU{f38)q3~OVsB{wlX@`BRfuU zt;(^r5W05Ju68V2tTyR{n4=XAJ_hk z+kZ(7d*=Uhf0t{DB#v)ztycbJ<>dlDB$zRW`KTXiV}z(vD39LS`ctA2@Q$n%3Tw~r zFT_z_&VE^aW0v_W{(sEniW2;eg6LAv8jn-H+W!%gg+}ptyX^?Bs%v#==#S2-7hmU; z|B6fR{P@My!7f$K_^D)agynV+3`0F1QGcP1@Tp@**K?(ARb)I-{(TnyebU{D4*#`n z`PHF!%|#Yj^`18wk;LgnwQ5^8#T#{1ic(y(rNs<1s*M`yvm9`%k53A5+m_58x=LM_ zM>%bS^tn=IOuKrf+(_~irM5H zyDHw3vYbu{Z{Ig0nE2->>!VqA%W{1=E6p~!35T1K8`hFrvDQAKk-@IroPW>K6X`%j z6*ge~_W*_>C?r}A5KrXOx~vE~xZ|Ps-N0gEDkfkW8l)yxCYTTq5g3LihM3CI7nMpC z3XQS=jl8Zj=Pw6Q7zG(7Y9_`JSvCx+w6zntz-^uSRt1vHe)$&~u3tF)dLcO@HxyuZz9UgQDk;z31foUE8)RoqQFiVOkAf=Jp(pZ&{58 zuW*6SlWc2^1#?s^auta^8EDR}>_j>T9+iVc#RW8I6%x)O(nF_6fe9H92w{cPSwY@0 zFC}%aDn8T1@GOGR-sU;yo_yZn#zN4DpvohjB1GTFuQU0}l?fkQgT_@#}p^fUR$!uVqHVpP+met4NnpLmb2gv8Km*PX9+l()g6s(g8myVX} zjbqhi`Jqpn%3cNSGnE`r z-kI=?TY8n#;18+c2)rTyA_EclE46k}!cR-|o_C0eU!K*Ma8QRu(H%J_rrdP}5|3rt z?1?%KpyZO}_#4)J|L_OD>V)F2837+qfQcda#DqhsL}rRV8I5s2JOW1e%5aO?*BvKu z9e+SqM;ztQ9L%(h6p;jf2t*Zs3;_Hv1MtB5VESO>1Nk~yRFG9lsT3-w_xD-fQo6}P zxQ;m-x=vCN5daYgh9D3Q&i8+;Md&Lvml`_gy&QLR9> z49b^&T)Gj%M1rP1c)-}@o{hlkD}8(DwSRA|MhYemSXKePB0J!v9vH3*t}r1RRfi30 z?g4_F##@oi3hF}2BArQnP5Qqo>h(se0LPaGyTm+W_aUCadMLudw9EM6p?elLREhEL!p~@<`!w*?*8t zVS)jUK?$S@V+j1*bRRrX15(rwOf-=UL_Z5%r&5=Q5^0^QY2JDRl|o-(wr4D zQAGrV|38G)9|Z^b5Q2p3sygZ;uH&NUE((qyjyg!-so$H~IZh-_MFd{{u}F#{>Oz89 zii1w7F_UV>C$eW4!numuHKOd~jDN~N zIk`!7E}gElvh8!UZSsBK^ZkBn_B4q6gXhSn<9%0$t2g_kL;2uOFW|B@dw-3K#QA<< zL*JId7`pYMnkFEmL|GV#`Fu=`%z6_@9_Y-NwlB;ev{H}js2%M&sIY2Io_71P{ih(l znPZNb3>!s51b^HKWRUA@9^ZMqGDl?vMTqiynPS3(Z`}3G1yR{mZkohZ6U$gSl9Gz- ztJoSC3Z+*2r#zgvsVzRsNmo7hco_5)U>|ErpafapD4GAfN zjHP@pyJmTfzSJR(1o~Y6aUQXZ*|QQU@ycg$yF?pI!L;zQX%#}c&86^I=|2kjWFT!4 z^1*|BU}Q47Zw&q$X6$s|gyVZjR~6m~8;*$aJzel?U~5@;BWD*wg?~sg3kQ&d7(9S} z0BVv|_80!;bB~Ji*4V3*&Zeb-!Ji%aTZH)=51Yyi3QaU9DQSJBzgt zbOb@*0U?Nl1V8`;KyIDV*1E%v=uje*PL4S)9G5N}q0s2(I)C6!bE!+5=Po)E*y~)W z03#5HfQSIDe4-&CPKbQ)jv_T17{oIkbsWAS4t{{*I_>E>`aRxG-d*I}`8sjuA3;=2 zL{LPNN^pzripq!-;7WxPib+Z+R60ouoLozyT<&zFaN^`nN-AK9mRKk~bJ+KN%zLrz z{C|tbx5saX&wmGX!S0roXe_!}rbS06u05tD#fuboN)6JYBml%t(gmala%f(ZB_aTz zf$1bI5iGQhfVUn2k0xAsQHwmSESUogGcz&Ak#UB6^0jW8JDTH@F=xqSx0ZZx&Uy4? zhy*}D1VA~2f*}_q?nMzgC?`9)B05CmI+uFpj&V9Wlz)mL4x~al6iy_H9U_P#nWVi> zH)G46H=odPliW-W(m=@#gc1=&6~Cf}n({iV8{f z00F_MTB1k|8Ip%3$V5d*Il$}g7fILz>`5IUbuvi!i6@Xq(IZ4v6iDt$j)x&AoQ_a} Q|M!YQHGs`Z-FogAsKkB-|0Rm+*m;L)1{zFCq772QguxeM6<1)zyl~MDf}~ z$Wlm1*-A}=NYs!f2_ZKLq>!f;n~-~*kb9)XdT_TZI8gvDgGLl3M+cl3W?2k{q84tn zd`E15zyg;Xq8=!$CX@NG-OD{5B7ap&N_5E~)W8HFVZne>*{JCBcz`h^<{YG@Jn8az zq+CGRGlAmj>bk%)z+$<0Mp9mu5eakpngR(o2UQlU42iN3PzzCGK%qd7kd>l^ZI!92 zq37ZWtiA!RYRKT`I#kA#FD*eSk>g&RX!An5*^cuJl6_6LX{bs!=uJaF3*U$G=fK< zXpcfvN-uzdRi-0gUl=*9F=oFKpfk7TqEvIqm$>F!Rk^HzEmRp(O>`1q%A(P2!Y zV|9>t>=9!e{?&?Z3~?3{+&w*rO~Z+lrco3RxH-a5=FzVPe#NXfqfLtm?3nDltq`1W2*_N|9}x$eRU_uP$`{J-iuC4s}F_Iin-}3f;k|#T;*bB!{uWb0CFYx5BAlr#cG0(lhCA{8PeA*t z`#+rj4FAjG!B!c+zprq?PMv+t`~3Lt=RYrBpSckCH>0Dcj~~CYRWlF-%U*@J+%5J! zev0IbT&)kVuO%BZGotkl*oet8S+E^->U7>GQ8 zls|?jynS=`w*Q-d@gVviX{u!Ih}oV=XU`9)mH2j5b2|hFDce=I8dGIz41^CEMT6-s zzkbt5HDJ#|!!E$9n`{$j04q+s+*RK{_Pd?2egW zpPiTw4d$j+NJvk==uBNQ`~!E~1}(m8DKls|zPC33BB6!%_)aB;1Tl_EmI0AazU9wv zel_idEc(W?&pQX%q_!X-3GdE-<{NW<@5bq=dx^1RDuqOf>;CKsz0Rcki(8>=UzuA0 zsNc6iVn7ntGCOE!3h63EPyCHo!{g!o`g*%0eoB)vxYr;I^OJlLMBPJdLQ$#wDJ(UG zI{k%5w=Tk*E~LBfABSFk(tY^yU8vElK73sTHsHkxoWS7g?YA(?h1qW3SfY}XNlz36 z6Odvgp;CVhKs|&?{onx;<0CMVtu?{a1azc9LjiQ_ac8Kz0)Kx9fP$gJFBsqc*mE&3y#Dzx|AWW_ zcHy`9YSG12y-sy_Hj?$nCRynZbo7<-b<907mT#4E6SPw6(}=G?^C8)&o-#dq;>W)2 zu)a$8FGGPv!41<{GOzdC3;&L7{$ay;(0Z7Cb(=L^-5Qr;2Ivdiy!iF?c8D{&E`Rsrn%e zecnF!-z4FGRb`7+zW!->n=cjvBxh5mSNv|^qW77fU}IS@1lQz)hLbD~w=>Ut@McGo z(+@oWJfT{I|8%p2*9x0Km`m9#U$uq;@Pq$cI=eL(%0^tKOjm{jI7W4v&=6@Q=ZRkjXjhnM8RM`z zROqR2jNIzgySN-eL{3jU32_7!tR0#dOEASU^Rsk6_QH_GcrE$d7DQ|i+b=<-|Ry6?)TEmfi%d!2n9>1;o}B7=qSf> zgcbZ*ou%FDK zJC4JRJxb=wDtn@juX%9z_<$72pG*X^d{+tuNOC=yFxW)0P%#M1!g!4ZSy!uOh+Es4 z$WpBhI4wVpxf%0(Fgf@+=F@fcoAqbv&(RR7OY0++hkByl!N#0HSB#WcbYnEOCwT1V zRu=g(IeZNDd{b6kqa58!KwU$G~ z(BYvih~azgiD8x1;mr;PM#zKT<+s)LU}_Nosy;798=1&N4Y<|2M{^r_C-Tm4MFvMZ z5}NQ-mO0dil}7Jj9594PqI!?dCT!7@YU*3qbOL!_YbMb>avU zo-+4(=;=;IS{EEMg*Wo^YT^V)d9&mGI6c0o?kX{YHOCN7^8khf;@zjrqX%PxULT== zXkC_5roz(Wx0%kVlE6{t0ThFC8$YYRuB>cr|K+TJ=vcgt&nDMr$lmQ(@KvbZhC*zhHy zdK@XU%g0hdWA5jH$~N`ta2coS*nvX) z@#6B;mbAJVmS`=p+DzE(%?T9JxJZ^Tx>{J&^AMu>sq5zNS81+8*)(9WMd&ombo zUmt&n=cYCxbun&!98t)4k2-&TIe>=vMbJEeEoo*B?f$1~>$j^Yc;+9dfH7I8=J_kN z%fI+t+Hc>Xv=o0#AMpNzns(ea{Kv zdfT`FUbKE*f{IFT<0KtHU2Q7?fq%4;EJIgnOCdHof=F}<{TN?9{rdhH3Waj~0d#M1 zFt0GD927`aao9%};;EZQq((9mGCzA4Iu!Ys!v_N|IiHTlaB{@X+tc8!)9cu79AoNa zHJTG}Zm;w1`xCC@pJX*hrmj@eVle9*#$4);zC6K^=Z`LxQT}1jWC^#}6Jsp2o51?f z`hKMnxFWM6+zx)Dy6wjh_!v{sr_7e^Tj^tqBF-|b3pWZ7Ez@C|q)MkOR`F)QSGKh< zHHer}q)@dml2FyCEbHqd7QC5OYOawT!(7Ce*tD4Bi(p^`y|GM$-CEfAX(~vobEM%h z(2N$GsqrNxvQ$H>V~g#UR(a%d%&n{PM-viegcNOx{NxGT$5_VBWVrT3lHD6k4?5dw zNRG9o4@MbLl*6SpE00@^)H6|&YTK!ui$J#vytEABOiSunPX^lJ4C>wL z-pylkGa{W?gLEW}tuxPtU4eRo48Gzo(8pjQ2>bdZMo+UPGNpaKQCFe!NQ%f0tUc0s zM&qBXd2guO4dA@VbwJ!`o9dsf87{^8U`1Pqmt~=dXV}u7f7@5^x3I&Dl^}rw54$ba zQrj&9-b2Yr(cL>u$YZw3@~s^$D~>8AsLQJ#2xN|_FP-w(q$4KY^QA(T0~Z1p**o5? z5m}i2Ncpz>nJ!bFZ78#xWKb*?=ri(I&};;WNXsrwn3(R^%f zB9uh_ozz?udNAG1%?zP5%?zQv5yKaX)Yj8?forR_Wu&WNtJ|{YAn$6>!=b(7CAF1b6kAYxcVPy+>rU3qAtq zb&Q$>7^3*{1FTm)X&kTIirc;1dA`eUEkVaBMKjRYA{j?^X7P?K);QK?9g|bN$}`?v zK{PZ>{dwWDe!lpRQLbEbCadxqs>K1IUbKWW&M4^u%kFBC=^CdD;Hzwxl5Uv5U5k1J zN>E3QXP=U>buNEJ_8jwKrsj&nZ43G^ku-%N2;U@Fje@IA?$gi2&@ zb1i0xZc)XM#9#J5Y%ySNiD|Ju^cqZ~@UX6hg#l#DS@h`vb1TfXojIZFB9Zask`;E1 zEVij z*|0_ij+AQGdfz3x$>gX9FI`xF17m`>*Z+t<8aT_;fX+XQQPeTZCTyQ{u?=^`d2*5e}KI;rUOW znd-xQpHF$h6rEC6;#_Cy0;@ySHcjkbo9I_UYb$a`Wf|9U6uVv3=#C8gpt`L0PP;8@ zRA_RI!I!ri5#C0=7x_(g-Pu2%?TZ^-?0SX|ilflOje5(U1Knsj4qu;D+!;~>&0o#TfT#zlzR`hE#j$b8f$*&KM&k`G^P{DD!b0Dk5ttu5b?@dIa_w z(15VBS!{jQbOnTm69;h5pdLYmI0 zh&{?V<6~>|Kx@~1d;ba)7grUm_Rx{|5@lnDLAXJ#;XW40$#kMd_xFoY!?-hT6k^6L7kf_+Nv>d^5;IR-U9#m4OI-MG@&sM`oWD3{r|d=0#V&j@#p zL~l37XJCInCDu`9>=u7zoRW|{hGuzihF`=yL%x&Ye!?R`%ui5SlWi?}Iqtq7V`d__ z%M^ExG{RcDuQ6rCkIKkA$4acysKJu^&1gKmpfyIL+%uv;+iL#_c4~0+PkdS@^4}c zJ&2qN0@S^M+1zKuISEUAX_sz)Agk}(1JypR&9m8Aqm7TeAAhEeh-d<@x_4iOZrHlJ zTc)i=qjkMlSx`b~PFfFS#-E0=U>M;&x*KDgr?g%~dXee^<;I?nkCb*ZLRpvP;(?^| z_eksA%Jza8#yJp~xfS)iJNQ##h3A_)^Dd7t_{k+utO3C%lfVmPa*9fJ)nJ<)$YB z;X#0SBYxlPOUxU6&w~p-l8!#?r3%kvEWrT=nSFJ`?-|cdJ=!o+V!5ks4&66C9(*z0 zd0xSRCcwtxE=HUM@&rfeIZlt=mYWp1S9GAS*FFJMZE=(8gW-$7=o?e>VS7_sKGrK# z09(?E@7c~Xk7p|$dMXJ8LJ}{9Qb{(&ktj!KZ?rx?sQg%sm2jUCH2AIB2(PrwPa^h` zE0|w5QP}Y5D2R5eqIEw;PFH=*|wmICz&Ox<|}Fq_e7z#ow!@0DkBbDQ{XW zc>=1swDFZaWpheO`F*&Z?6SZJ+-K%muRExCeW$snY>z6B!_$;n?QqnsEVt0pfT%VH z*WS-wLKWDkMW^6F=8#f>v*wL`Fh{i-^4X98YkXxuVO^uF`B~5R9v#QWPZxeQ)b^cE zNv7EONo<(RGQ<{CAu!s|g*`t9Afv8<7)Wt^wt_2TBRfH@i-j&1GUHY0?6am`rPN%Kp?uSl+>bboST1zrTFhu2 z*>hMpzUIBguj~0(2ZT*(Z&(4_W)oWA6P;YP<=uzPA=~{p4%b0sq2nwc1c=Obv*PvP zUvSv>d=wp52GsRd`f%stE+z~Xb}3mK9X<5*_^!3i#nI;bR_n$WthprT@u1B$k~-mZ zW@jF{GvNt^(O#Di$3&WyHAZM{ATT+fP280gwVj^;-x+E+bDsoWFfNun3yb(gP~9M!U)8kl)wO-@vJNmCeNc{LT&q|#&@HQHI12<WcZ#G`5FJ5jYdu!cb%k+bug=>*# zHMw=Nd1{DyCdB!oRw3D!C&on)#Fgl|!FA4HM(RFYF?WJfeOaH9#Yq*Y)??o}TRP4I z31RB7m&Z4O30NgVy<+b=tFl~m58|fwv;eYWM@#}D45hoQQ{qv{8y=B53wrDL7pukV zXp=eS4b8K8DW12{c9f04cjL((-n=oex#CSJkmZrkj@5T&3k5Pi$8SOtpT3(q%9?{|r)!=Ftr?%?)d3 z-eQc{FNH}>#W8)|?dOZI{@V4*VMz8lR$WBbVv21$ca+==F_HxD zjvHSwSI$Oju7PGTd3FUJ#q%r0ySZO%&H?_zXKMf5gO_kpj{Dj=R=J}2|2Yv(30 zX_Z=mPelS(80Cn)!IL3~qpmn(?VqG}&V6 z4V1|<@6thsDdWO~tZ$23#_ZB3H)D1Y76YL)NlpTX&?15(3j*l9*}$9BB! zn$Kyc9?*g^_H*Lna0D%CsH^iUkM$zYySV# z&k4q@j*+<4+M&!ak)wk?{GIi^m1V3XsG#zes*94u*i8y~+Dc+%*mr{{LyE~1%@0|X zCX0QghjH{~$c&sj?htb#qgsF0%kK60QpkeLYoNdsL5y6yAG?whWu#91TBA@TX}M_~ zJ6e)i8`JZds}5g#1nKNe4}E9Ge9ujqQP0xg^KGBJa>+qI{6_9%**HiMGs-Ipsx62~ ze6%q#BT;EzMbv!#OC;+(|9Lz&8Kqw#v9G!pu9ucX=J2CM)WU2E_{2UdulXkMIqX~T zaOacbT~DiW*cuCn#z^7z`!%-d4^F{dR+vqKve(?r%HuoIAJ6$?Cu;a;eS2TTJ`Tf- z_nqq>gMak;eVjP+&(=O)=!(s)f+9>;I)eK0&%CK`=pLdXTqMXhsD~ebC3qfmJ56AY z8?hT3X|cnIfsu$-#)K&*JM$xDsbS}vKG;O`uXge{4ak59He9gB#XsOb!){%N8EF+#`QV)lb$_ml&yht~kZM7A+;Z&sS(!GT(6p^>*hkUhSg=yMxUGqOV0m7_+vsRm zFp%z8ZIX<(tXBUf;Fmh|oTZL^a7iwyeniaOYz=dam3M+!S+ZD8@4$v>J2p_5hh6#S zL;b;w^b9L(8GQIXDC`??TkTD^)Ht`SGyVE#jCsESxVTMqI=0yKwRstTjr6Oqts9L~ zOvdT8*;1?yj}9ySdutJe)ozKJ;9N^WTa4T|@b{fFlX>CX`06ewwMtEbpKXrxJKjga z7{Zmid214x?tdl()R!)QEF7h|_gzh^P@EG6MU$M4lMd)yem~BDAMUiPD$?wVvB+KQ zt7!A`Vbfr+`CBvO(U#yir_}agjBn0XD`ZjMM3txxP9#n4!IZnG5O*#>$CKP}u3Ee_ zCwmr*rMvDf&)hbs`G$1Ee74Xavr<`U=Jw&p$zHzaKGLWpXphHctS>p&z^%IdI{vG) z(v30AKCuDCut zZPd-<;g+jHu`X3)e?=BcMpJaA$FB!Jejn>*rD_A)GivK+2F|!7e2OpM ze>QSdI!|gdSGZxpd_&+XWf--!p<3g)Qu3MJN%!-y#bHkegR+=GP*mr_g^61aTqJiq z@PP}v193C|W_98PW3hrkzvMya`y^WI(Q2%YRuhyqy^y1t^CrZ9dm>Z>f*r3SsWKzEi%gL!ml}?6kIJLkztIEuZ|L=ywi<|PryjCb5`wbp~ zroGQdDqRtW_0c?p^2D$cBRp*$ zz<#LKQ;e`Z!(Q>iujdNKWvLv(X7l#7O{U5eMv@}KN7Om zp(6!*6`5D{%jc8Kx!`7}8p!AuRQs82tp%;TAhp8leC@my=GkzAF<3Y6(fRny9Enin z@dvTesy!y&igvRj6!OaV_G>cKyo?OwWkxL=R&z7cV>lzue8Ka?%eL)(eI4(LE1s4> zn&Zik0i3XdGhefHJW-rL+H0P1QU~$;;(^8HO|H~hrbdygMy0KsMhyBi`kA# zSYBN>W}?<#WIctq`I^yNn!Ufrm3q{0HIMwkL^Mbxh>N3CK;8<3Xh4A!;5EtM3umcJ z6aQdJ>j~_f7J1Kc;%4#8FFGZz3cbBP*E!~KGPM)$QneFKWPc&<1|udt4XJ8cR|SD- z-Z#^JcGJIFjuhGX$JIC*t2a{&N_Q*Ezp11Sk53n?ue!L%f?!%!uaAXJ*&uJNMfK7R zR(Gj&eOKykLFC}&pe6~&QCm(T>kn9a$#;Zw&(+gLWZiymbz`MH&GvJ9p?l;?k34?m zL{*j?HGRzC+Zm%3)}>cs_ZnFozNmfqG+ulhhC%|)DMn2RP9^8%E+|aiYXP-2H-UG1 zab$7+_8)Oj2zzIiBg@L?mBbB2wA}zl*P=5g&FTTRlZA4=qvpJ<^J1HO>xo`pi3iy7 z)0sDgcn3CInnUZHuJH~_pp`7-NwrBGlUvbW&5z^`?URNoo}CrFe1l9(IE zV_zH%!}wbXY8#))4B%%hLC12u(^2Z5!(%n(_RE5o|3~ub4)sAczIk$JnaVI zE*Bc5+cIlg|3Pi$HPhccwmn2? zUA_u9SI7&y&ZSQo3_tc=EFsF;*0OAm;?nRymO0wxo(O^xDt^(WUTJs*gX>**Q^H+4 z4ug7i1WEeo$Ef6$o*+*A-tTgL5@T5Lu3}KG9#h8{*}Pkt;QEv1J%(9U;{I}#{*$*&bqeB-b6o^ z87}3$b?tpiau;f>cRxgqjDYwh-zW^6<5_1-OU#^(>RY3 zQOW);8}F6)JROi{cjyZi_5?{nu#B2`50m-R!?w`GT{)L4LT1R{2ZwE_ z&{%&zp&k*Y_(NUo^om92tx}Gti!E0dQN;x?4qK*ocC**!NO^K7uW#0Me?o9#I?%=w zMwm~6ld3>bp*hz(YNKjujFGG@RU|7AXIhr(ve#Ee#YkvP=bN`=mxD00gsS;G?-HHf zdSHr+ePOZ*<}7H8F6CM__oVfTE7-+X=xc(7jJ^R$qfp~Z^%}j+x#3g$yXBJ?O)P4R zr)CNsPS9xw2_$j2CMcn5Pt};t+m(v~lTXVe=a`nA^aX!*3(}t&_$>Uq6oWrWSSr+; z`9mrLZIuT~a!~mxAJ5|1pwWhrn{$;A63X*NdF-?X!eT4a{-4n%t2TjD6n&{xU|l_K z%<)f_&6>d(2%ve$rbB5~{NArT(-_rqYmnui0j3B^ld6VFM$DrYr{wG*5Nj{j`qgzCT81 z9&5I*-}2x(KW{M!)cpED;*Qbdhv}eGx{vd&7Syf&5N2+YFwjHG((4q}A3oD3Iue6} zr~T&Y_N{x=zN_uM4nria;;fE(i~;TSdQi!y^^&PKuGH#$hRpPU)(}oxQapbebSJto zCf{1VAA_kj7c3Fl&?>RUz$d0!wJ@KM7*aBiF7tuztW_G5!r>cqEPNbL)a#EyMfyw?uVO~xAEhfnWdlrkr8{!pT-P?1h?7)t8>T+0HyBxC2 ze8Vw$UAS$%1MJ`8$b@((k9~yqJgF%t#GEB^1HM(6T3MUSL6`A-Zx=r@QgEavxzLJ8 zV~*(Lvinh?R)p6Ze-Z!SZEF?iNEI(NTrWyX2vk`sO=CiJAmTDXX%7?^y(;dRowD7I zkn{Jtp?EORU3X)i3qq?~sI0Jg!%xy#Zsnzqc(?t)OHX{8mteD^0yO9R8;t99MdQ+d zP%6fF$H}mHK(`WttBBgKqbAexRJ8V+_-89o85~{ZM1kqV*26D)5kj;1N()21!G`MY z21NuHh%L%s$MiAJg2Gx6Wb~+;&97HX2aLl?Q|9W6wC2PL*B{mJP{TJ z`DV3UktD*-?|qGy@oze^2>g^TJOB)wbipm~rLFW+2>nNtBZ-x-djo=KXn z9`+b9(R(wx+1gsB3{&ZJ)?IXu8#Qjb%4p00`~{jdP1&>YaVzO%4}^6D>FT_nQ3<5P z=IK=3i0{5cv@b9JO@0_ngw5&6NArSqWpRIqTQnZRts^Y9;}TcAmvbOC7W|GacSov+ z;|bdqN>v~rv42@Ck3)BJ&Ek%c(bdwvyIkc^dA`G7vv0#Ix6s;vvBBjD5a9xUypG#5 zbR^ZO0H&STMzk+H-%_YF45Vb35>`@@!z_;CCXJ7r0`{plJ}?4OCC7kPGHpC}6%)#0 z_?Nuv_$y=~HLzMwr*08vEYS*Cc>2~RxKTr{>jBJkM^LnHwE)usHDw)0r@IsWm^ z>G*hLhlR_X(b@Z|CL~8HY)z$CZhfY^)Xl-y{+kuZ-%!^|mP0v_?c0}dE!6nQ#fZ1#+f zW%uQ-ElZ^E1{_VMPu%A+S*HO5G71z`;Gz)58oXi^U&=lA)~p5I2=ohg8EY{s8WN0m z!_^KVv|OIaolTHFO$vO!X7!pfA3Pu*&JvG3>Y*XSuTQ{&va@#4(P zW2BCm2A6X*apX@wW^8N8zuBTXx!eeATg*|>%Oq1;@Gu+}QxDEKXD?**M1y*G*|rX{ zc}Q5F5`YVK!}BrB_R)lfXX}NEwZn;p9=%-o!Tmf#LJTewa?^1(SA-$FPk_h=x}@ne zC258!1ryDkTR0%Wu!*NO4cW04yPMEJ$p0N0LgHl9hLn6}Cvt|)*tEwFB}7cY?~QeS z6Mu|T=UwWSeT?fso|2km9+VS}9*b}dLSIn1C)TCS1UMg%J5{2Nn4ThzonN22=fk!+ zWtZ(B=S%TsdPJzui({a3=HQei1^PLSS^3+Fj7~u~rSYHAOB8pWqSCFvEV~mbKp9K) zeTo}@Q=y>UQFvOBO_pRvpM>#I+GyQ5N&#vm;&Llm8dME_fr#`%#p{&sEuOx$u9H;X z@%uhZMl2?HS^5*2`hEeUBWiW)9bTk9q%D8%EN0$i+f%3ReGCxN(uIuHwM$H__Tucb z3nwGkUAh=#Mwpati(n0gA?uLBH@bT|cbER>=_*HFi=M+nfi0 zF^eB%FS6m1=7?NxwO5AGc!ry7nK;E=ExU|pjZm*|+|Jbsg+xbDK_tK1$(Tp;!iVW< z$w76>A;DWhE)AV90pyq(H)8*lG*Zi{V;lZ>oAxv(pLPSCw^!U3)m|xSX(>WEF7LP7XO43}lawi^(N)mVMTlgl= z!Gb@Q*n-K3x z1--j;i^G0AbtzX>AY`XcAL3Ok;ZMI77q^(niBk%_8rRlv4SsO&6Z9TarbMuBb1dx6 zw29MiW|>1?BiovR>eKG!9pb#>)j#w}-g7jFvYfS9viU#N@Tip_HYMe3RE<`Rg?wb$^3t7H4O9 zPy_?Zt{pA|z6yy?R>!#7ic0D-db#AB-EL!VfpQYqcG_@z(Au+K&UvhwA5+AKkJ&Y& zZE3t?w=!=timgg)j9#VH!%rzK8Cbr!1KR7OtTyK;XyFtHIW#2KJY8@Z#G2zN*&u4}itnAjFOxQG!dJ6D5 z8x)y;V*N(pdzb+@+U$eN;~E+<)&`b)%G@Y!rH#fO*QWlBCWcc=9r5})ido7jL+wr1 zse1tXHVf2gY%+<*(+lfKcFv`WG?V%J<$^MufMlUI4yCz$I)$LI7xvciK%6Qw$PHHg zv@QI8D{5?@}hMBLF_w@3{pdPsbLG7?bTe8i_+*`&E5VDmB|Ni#`mw`rbP748ClpZ3Cc zqC}AEn7Cr&$QeY)28iM{=9LA!p=C4|FZ$R+`amo#h|o{3Qj1Y(=Q)buHyThx&>ep; zv#rAyc!rVg=b;yjbte1OSHCE!PQ~gwWmMQe-Ib*Gh7X1uVD6>U#Ilyj~e-5Q?486j!5j=grc^nt{C=}u>kn#Y2N?rFvpFZzwt3k%5D7Y3_p8?Uo3N2%Xc zK8G-W>JnBmJa313FGgj)@A!IXFq;v4S&R}>pmRPISjc3q1=wuO^AXhE|IoA;rWY-) z^Y@Tq0=F@XmeOslDm(qU`wKlG)}l6DL6-2iNqk2i(_PR9K1f~}?G&y|)Ay7^;J=E& z$4H-l*^>QCR&1E~tjs6-Uh)*{pR5fFN?=yY<8G0>nC>eGdaglCNucoX`RxOg>hXQj zYskL^uODoGf0+OM@9`hM!#~iof8L*e`f&c|-^YL7KSJL>{`qxugL=cm%oOF!SUd`qzfUu&!pHQf$=ElPg(Wc4}bDfj0WSZU0>UL>%B5H%J;VhPXG zN`-tyqnAMg>FOgvEix1p^&vzgk;OGcbdZzh-(VJ^t{?p&zj?pBNOoQ;HK&4NZM6VO z;->#}rSyMhP!c7t>YiI|GTQ@R?7qAYy82bL`iJHEpGnaLul$SuBhkoY-GqUmmaD5; zW3;eXt7V{E0q5Aq&it`2y_N@@B6Ir6OSz2;2K8{L8ZTI^QSW3kxsQUY0P@0uF+x?m z=>6m9Cr!#%I{9rG1AsbaI+90dkeZJ}9A>AoSu zWc{g4EWob)J_xzOLE3x@B6hZQ3g>kp6wijc|d>p55X<`t(i zREsC5>gw_X?`y@?bkS&r(}*+lNSIVqscG7Fu=y^@dbMbYk;ETRXk;6hUR%oJ)2oj( z@gIO_>JNlOzQ{z|y2zpd7V#A2@!mE_Qb-UhWF)*l8@N1o%oPOAfUzLkJ2edH@N8^27GFwt zhKL9~ND`zyv^JuEg4M368*RdoPQgRL%HQ54b$R73O4C@ESlQ2dtHwXjrbC|h z+k;J~0iTA7E@E!OJ)qZ++9mW_!OC!qFSZKN7?bZm6wxG;YDwS8*aQ`z&9sBje}h! zlMx#)h2G^^n}lu1Fn98IsO@b~Sy(;*KBo)RltzO$hNtr^fB+*PR0WjfcaH5%=>Q+2qjNtK>V_jC%}XJk67|-@zzkR3hLC_?8wKL zF#5<>?R)~{@KNrc|Gtfh1LmGh7uP6Sl*4jyQBKzm898-(6o-i+d{TcvjA@y7pMhEZVOn>pcExNONQAgm#`edTQ=^M)%u@T%e_|)G zzF>SU^m+QC`o*Jbjetk&kwGP0~8vBV8t7YWy&CO~(!y-Iouz2z0U&DS{_ORzs<68Bk5tLsd9 z|JvMUQY^iG`2FB7)9=#u-Dc{I5ko*g>j3|v?OZlC;QjQ&>D<-bKk12C3VB*>)1Qp_ zKFtg1x%_0`oBAY431uQ%&)Z;|L>lNp6-6{yF3Vx+{SRO#cr^U=|57AtGe0Q8`<%jqmIt}p1UrKaQU z;sP-jc2?mhFs9yE&+P@P(*>$&KXeAba+D5U>TF(WKAeVbj> zVSJ+bBFfjeXOKL%U?;NBvs`SM?Zsm>nrxd}x!g&*3p921uGxHBw27vkAVk$ypB2%(q&82~t*?jL7iOn06P+%-6yWYmUf z0hJ4hN5q0D7puCM>9ZX^5yhdqsK@*}sfy7dSSqKC?Qpn^Lw+koXn43xMJ-dUydgOr zxuPY!m}v-w!js}B0ZgGE%-yp1c^@}p1>yY*PY4piZ&{^xn%teRczL75cy1(M%0gc= z2mOLVZEeoYF_00Kd~dIXY4?Q?`HIpJg$X4c1(Vn9saJ}QabN`%Z?2dB3U{l}i<3hd zmvn4Cj`vK5vVqbQ)k~Z!*j=@D?z2f-mE|h5?rTW*{8ty;<0*(BZj`ige2tQJi9#~L zG)6iB9re&BP4S_?eI0FC-C9l>0X;eGQmCAi6xPUn7%`C&hafUX>u6Xjv5XULc_hKj zV!nG7lBdmzY$7uQh@Hp?8}zs9t+KJ0D`1&yu$sRYC0McO*;Th$vmNLo|E`80I;Qb( zQwr5Npzb^m39_=HE}ycJ=9CIDGBFH3jf~0x3RLJ?)s@rIm)+#oBDwCKwyvvzUi+*` zg?J+03@WN{IO;nxU^8IZhO-iY-=J#4rg6)8W~Avur)<0|(}ZO3(q|M^c}ApU{~}H! zgJy97aNsaUB5YW*)j8S}>8IX^JD^-!1q)ddsPXlCXygTRF>fN}91M7Y6;6(2kq)c2 zp|=goBtjvlrwjd$SumtSzi;Udxf@xe!{v=YndF$l=Y%8f=~mPDJULicyhu>Q%MJ7& z*?$-R5dHGr`kiMZ{(VOJ=fvyc5d$Fi!=ocABwdd1jiOd$WuTf?0&>VVe!7>>_Wi5! zJ;<%;)Z^VQBuIZUt6KQ?-cjhUkMJcNT3g$Fei!`z0Es|$zw=mYS{;fp_1`;xE~cYw zgGb$>Wr{&Ane0yyuzm?TF_qIQ9_(XvF`aG5mYuJK*(#gazayrSL4{~aqZ%BJ!QU9< zN~)L2c(&uU(6M?YGccFl_%4y`2F3(Z9J+JH(T0U|AJTgk=;UBtzgCYbrP1q}rN4aN zHPvATv(m#I%HVL8rsHbiFtKib^7n_((eC=}yuBWS^uLeRQ;&{QV+*1QvUM~IWJUs= z3L*}GaQM1BAZ8*SB1GsB5)WKFd|RBm{G5BE#ys7=qtV+(kvM~hqvnGN$ehTni7E#y z7f#ZRQui3q@69g(cdD3qMm{K8S)?Sa!<&^H^~TEejiRBoAmv`ug=)ZmY66AwW?PaWx{jMyUo1YnmoNn^?2KM8%I8! ztU9)aP0fkcuc@mv`eoaHme*?Lz;ZpI$#uCV+u({X0Ehs1KmsVE5CAACX;PI6RwQYl zs*oy9qN9&wSwtj4N8uZ)70}T3WJbCTu_t6!VIG}}TT@!ju~0C<$a_i6kU{fRadHB$MXhLk}4Y5)!z?mD zOr$#@fdAk#sR?QxFlB&>31A_I>3)CS{3GIq@CuBCL^{1tH7F0N20c0+ICVGz5<$un z?mS*EF1fu`Y7DL%;U*=WH?wC#S#J;)@sgHerEhKy>W_3!c+_Wisa|ly9JyJTlq$|5 zq0R{Abys^dD6@*5wlK4q=aVAdS(N(m)Car?W>Qi@m?W5hhFAy>T$7GOLx1{QI3A}Z6YFS+N z=RKDH6Hh<6xwm@5UKninnxlCtQAtt4Se6(hkc5zuNhE@1NF;^=7$K0DC58f686Y4a zl1+y!FhWTKEHfk$Ng*Tz5`RGqkdRCgz(WiWey;{XSP5a02_%wXB$$?X!-1A$gpxu@ zmSvJiWrh}6Wr6~bkbsg|hFSlY0fT>2Kc)ZK{v8+TW9LV)$2?!G2p_pI`q(K9kAf2X z1pIWT-vuwn$xp?95Rk`V|D-`9^cXFr_Lu6bpWH==gpe>WY^^|2f`20)SYjlbVn%)C zAgq>Oer0;dvl1#)#Gmg=>mS@)^ueCBeu&g9U{M3Hbmj;+SO# z9;z-?6}02XxgND==zsPWk5b>{jdrX;3{^5K$CBA*_IDsW-4X)ZOJ;Nw%>(VAA@u>l z;%ek~ikaqLkmvE@gXY3s!J)iw86&64+7;&7N6oE;vy?oQxecB|6j+)02?c0F&O);C z85CX>4~z_f#wEko;p>_2Y~$~7pICW2eTScWXHm%m?QD>Hj(<~Wk{nT=5LCVen5tlc z#JJw;DYj$SjHR*DF~#X1m`XiBd331oN}T(uP7r!)!)3T zA$ePMkk)Z+xgMCX&5^b&?3kThvksC>MRaQsbG9nlx>%hGt~PFr&9L-VR?)MZZJlRh zVO_SqtADQtcM=D3fV^_>3L?0iDDEeETC;?p;3A@@Jg=j7BD@bMn;QnRl&&l)Y-3BS zn>H8EW(Tw9hljc1WF?YPeW8;bNG*TR1N%S^G#^MGJRh#@f%HM>gX;tI!TKQj;QHYD zpzy)_z36y=AeDNd1= zUCz)76Ax<)ZMfv7)wa7C+Q_0h&U0*R&}Eisn`|78i)5OLoPQT5R2ePSRP;4OrUUY~!%#w^}yI z2DG(pZEJ1K46u%FZkuK!aixErW?q6sx>Bc=f)Xl@EY{mZmUiZZnYFiTHbJ%phHaLu zfYxoZCSgEI?XQ)P6xJX!vAr&DhB&aEwiQKA)kVhUJ7qg$C`+Xyz% zClhJ5?X0pI8>Y3SOj$J8)Y~Cw+S!Qa)(P9KxOUqT%`DbCc0zy7+#79KW*y5RuG=k( z8*6maT3Lv*h9+&LEVC?5+E^`yw9{FUY|_rR77JRYUZ_%;ijjE|f>mLjnkq)Fh-aA+ z6l#{9A#T~ClW5(h+p}|7III?1uy)wAW}8yl38t~gSQ-dLhpL8#Ri~!qt~IvNjm>Li zn_%6A$7WhvS!I8=tlhb=L!`#%6F`$vJv|X}Gb=PTAwz3OOBCB_i!*4oqd8SuZVrjj zASOZy2w{l{Ad+T6SP6n4CBR@X`u+9o&O??-i8^F6F#!z$B$7d}n1TohNC{z?V3r}7 zW=SAnfPz?AB#=Y)Di2fdmXiXPoxB2P{Zk%fPF(EDZatM^4n&tuB))wqV~_Xqh`^$ zDil;GZrT=7P?AW72_T4OS%x4cU?CueLJ4GdmPjCm z2@shmAen!HVhTtJWSAmil1VaPz)1uW$s`1nkVyovUQk0BAG_pYiFcUDt639RxA-B=u4V!;JhmgEvJfZ18QX;wh3&ja*W7J-8 ze}ueQ{=_619x~53FUo^F(zG;$j~yHORiL-lpx!0vQk1Y}qgojO7!tRSd`V<#`y`4C zE*YxLkQ78DKsO@GBE+#+Wm<)p<;xovUF4*a#$A&pX$=OfH{GNIOhN!40uca&LlDFR z69j)lGxRwW!7Rxnu>_L@!6XqOG!rZnBttO_xRa+PE>4{!>C>d=Ak556kW3LIkV_3D z$#kNlr#MLNT%{*EbD;q+RV>iV6vPlyGRslPOO)wyl9H2>oaHRUG7v;E%*@3!utNm1 zGQvqD1rS6R#Lj4dxg=caQg<#=N>Wpua6x}0%M24RP)tEIpJ|*$N~tPTsZxqfJT6r= zYOC$>Ios{8p={akVaew-Zez;n#^;ZB$HDBpJ}L0gwb|?VJbq#GBoIk6B@jt6Q3QlC zOw2(+0Wy@Roaribq>f5-=U*LbcP>(iN>omAvG~Gk|dHCmnAt#(n?&8InG?2afoOjqF9*r*-*(bOH%@pLUiX8+vbNjW9Rk=*2$9FB9P9Oo@fE)Wi?VSzHLPSz!+fz`-)%aYT7P$%_@J)6jMB3 zWd9_U&az<(KGH5aS$%4?RYo*->`aL?nJ$h`mDkBdrAr!>PBqvx{hzwkJ{e`6z8PTK zKFrEJd1U)vwLOm2`&Khf_5UrP;mDcXStiYzSxY_XEAnRCgBGmqrjW=_$(S$5$WY*s zgN&7FnNvJxqkLtqITy{V&EjYBblv7fq5zN;jwJ-SmYQST-863lt>~oWnvWlk&CnxY zB|c!~<(-D1^K^M5@)&b0+&(`6nF5GnD7;=mS%C?g)5s$d2#=5mguH{^@AkUf24WrF z?tUh7IQd)DfD|_NQa)22Rqc}Y zC7jH?`>C<{6~kXPtxMhKu7NY06qq{%r1?W(s}73n^3uDtu0I(PHGsmy<4l&xN7 zSaZ8$rjukjgI)w)1nYY2-CeQv`RBLyo-bMQ{46Fj8DdDCLWNaPRFy#@4&$Svj+44N zB#wIa%1+_O0F(Xtw-a`)%@Gcv(9)v2v}d|Si%vFaX)HP1>jN${?Dev^u6sE(ZPr%9 zqgird*3_=GCex+sW~U72*$0PLzivr#U45p6z$%Hl65JN=|=H;z=Ttq*4+& z&Qg?8odG1l1Qg7~Le=`L?!C=AQfF<7B+{M z$UbG{A1WW1%tOsc#4*Ptgk}L4nS>=-%g29z;`yI5Br`I^Qw&KENf9X=jJ@IP1Tne~8JoONU#^Bvyx%evV+(1M?igp(|b-qU}eT4F0Ac8%a>qKkM3 zw4>cYL*IylO_y7u>hS|u#2_F_O!^qrtAxnWG1QloBF zS)!9>n6gA7F#v$mqVn{pr72RVsYObZQ@#D6QtQr#yz#SnJ}28BZ^tJc$9Hxy1Vpg} zM9jrB#N|mjM{|Fia*-|)XBl&Nt^IeGYduPe^;%l9`U&NhEc=Cntmn9dBDf;;TO=Q&PE z-n*+Q$cf2Ll#X$8r*SFBbGV44xzRBbNih^bQPbRbaq+wycl(|?25?~PcLuII=xw+(d zNlD4vqllz~ksLUwL!9K4jwqDm;+*NuNhvxxMCnVRPH?2;rz%d6P(X!|PMw{dp07WN z+C8Hr&-XHFA|Q#0h8U8DAckkard*TR8m4_y8JmCcaA`^kDVkJO7csxg> zogSo=5im$aMFlWXG{h846ii-x?gaRs(|r%zom2Gxe0xLc8Dh>9{ww0Wu1G{hRT{cy z&*Fb#-69ON;!30JYsP$w;^HMV7m57A3G-}}2}3qNLqDQu(?KKnSQpVe!z=S-Ho5%F z9{{WT>z@+Op@s5+f%v2I-_ZPTs(j&lM8E5sBrs2x=2z`T>DZ|yP)L!*OFl&Q$#0r@ z8TH)T!E&?fHo6xYnx+Jk%-AWx1GMRydRTui`m2m1pnlD^SyRH_mzCW#G?!(~IjA^;jy168hOzS)+ z-8pI8!e)GPCEpa73YhKdsXbQwZAzI}!_%t!TuV(}rid~yvhtd7juZU{d_P793YLG_ zJ~6yXUhvNxX3KcZe(!3cchY89*2_5ohA4kA$* zs6C$e2F@PW4%K!$gnIaSNoGU0lzC8&O=$q-e$Kp%lwkQ4KQAX3Cv>FlaVp4D06x5} zlIttJ`IfVm9Gep%Nj)MoUaMC{{I`D`C8nhm5=$;O(&%Gm7gWh^byvql5Slno9=7Dd zcx$hZznffpG-}lz+-;d_;?H(qv~9A7vR+7LlUArpozdsBK3&*UJJMUrPRqA<*cl~3 z+`%f}SY&!Rn|I|M%!}WXM$4>wHNV%3tc((5xTcGl5`7iKM6t+cA_ z&nIRzQJCE9)v_W=<|bmUc5Q!$SZ$>x8Wu(Q?|Se(*W6&>??m7is5_{R&rZ2X(E^p(s|=|#*Jp9u9n3)_(-hG$ z5kWH&$tgNHE=nmWE>S5?r0x@xj+CgS>Nj>>Cvj16(n=?E2PBEoh>(AoDPjsJD4P2W zh;OR;ucGAVmn9_>l^m0h<-$&P9H$)V(&ZH-QgP886p~a)+;K-!r*U+VNykYXbe##@ zoz8L6NyW(^rN=qkmnfZ1bd*s?5SJ$Cxy-1WZ#b$w4tfM6ggu{GYkc z6;Vwg1cd{V7bhnj$s~X2M{-doN_8DkM;AgAaa}l7NUD)ks!FAETHTg@&rN2oO<#YJ zn`RhbzWWO|?!RZXm9r|Xtl-(RYilie^i8!@MO39FN|d1@j)?A#6621NIZJ?^o-TPq z&nH46Rw`&H5+RACn4*%BhGnFQiK2w1$x>2v9TgFAPF)=#(o}zRofjOP(cG6&5iH7) z6Dm+$?=yYNQ@ZQnQiY6KF(8iZ zA@I46Vs>&iST@m+vaqyikwLwuQ5XmcvnZH(LvwR@K$Cb(3_gG=B^FG!fZLffg0hKS zQk9MwO@LXA8TfljwT7_T7IOA#~FghtrLNgO*c zZB~4eZP8Q-RT7mYP^yZkRRKtZLM0(ckMq)LS_XtD29Y0PM0A5nGz}#bK6wGq#H>iQ z5CKZ4P>le5AnI(5K|v%op)k6(fI!aFjhvP#QUOXx2KwRmQ#Iu5P_ z@T~Z}0~&%pAmAb4K3@X)0d5^)#y7yB6NrC9mF3*qgzudl@CK41+`(!~s z>5vU5g$jiL(4|DQGYdgOMI9$4TUdYW?ZiRbWHzU&9z;{+}900Go)QMnH<|Drh*5}hJm0|c_VL%VsmE^y^K5($ha48#@k!*pwD!kMoFO?7Fx+4W64*wz2{1@e zWHlC145Jim1(^#3r>cMQX3c3zaW94UHZ3%1u->O9f02(LG}%U-=&sM>%8E^B0PRdpRvosW#E#eGClN|$|M@T=x4$buYAY^ z`4U0tesp}!zc#*th=C8N{SPj?ZZ48&_VRgSuV(4TZwbVmn`nRTsN(VM-v_soh&(-U z;GYDYy?eNOBZ;pElN?La)Y<$!XkdLLZ<@!59|aHttKYdFV#oyXAF;JhTe8(YUN?d| zYaN>=y79DnQQJKBWS}`C$q#G?X5A#~8cG6#r#UXX=024rbdo;oS)>Gl z@iogm;rkDV9g-DG*?lx|1$Db1?&na_`D1kSxZG>MIy--@!H%3~vyJQBB94_l-VVv* z)$QST8oOob(+-cM@M=zD!R7OC9VbEEJ{^+qW_-x|p#qxXB8#-nOjvjMOrzmW(eL()1B5Qo?}5q#y}^NrV&_JoAZ(zK5w%1Ju*H zLV}oX9a^xd!ANlEy*RX)>TIG_vb>rp8x-eiaInvLrlvH)rWGwp)4P7^nB{5DYSDCd z)wfI23O1;{NxP=em9oBSUZB}ms9{__e+%iWXS08Lu&6`-oeF2cLl)2l6g`M_2=SJ0SNwb>rqo*Xi>5I+<<*=WLAle9yk;;}3y6NgQzl>??&v ztoeVgs*7jScCI!zO4n(%NzKz$NW&`)TCAR|4_G_AI8Owcd!ajHo0xi9PA(&!K6`=Y z4=>v8$t#=1Iv*|D!Jg}hpyO>FWx2 zI6C<99^;JqQ|a7E+aBig!uW1s=1*ec4+MX7@5A9Ei0K}kN$%thkWzVPKy{X%Mh+va z9-Q$7UA=Fg1+!Ym8jO4k4HTSuG0ka(CF)^QU0-H5RP~=X8|VGTdpck`M~(xUgNQVD zLFS$%@?AU_=6Ubjc`>-i_#?6xvL2Jt)gAEj(C3R_?SSS^XGz|6=SL9rj+aQI7lnWN zW5iM(M3eZkzT&+@3&S4_ew2s4L}ESQu`SuXON+B_6dlkWD@b-p*$1|tLJn_M@b+Ll z5fVKo#qhZ84(vmm=6>o z-E-3`vY(8p0^N`>W8{GgUb&mT!GdHi8MVR;xr8!e3G4#=;l+H(EKZi>nB^XUU}VM^sXfe zJFbxP7>>!%J_rv}oV?DL#|M%DKAxZIjdyWUX zJ0woBR*~jS0n!2SMvp8fONc{9NEnXpOrH7&wg=Idr2pX#gSJmMzQ})fK=zUvG@T{9 z9XQf-kn-`8f`sW05Slsd)H{syiUZs6hop1o$aR$NB%tPWSCSCoO6-MBZ^+u82RROq zp8kfaG1FzLXTsQVEO1md>L!{=nx(2Z+A~}pa_~oAS32^~j$dLP_~~{^cR(IFI!{SW zZZLF_p*fGkxsD<2f%ShQiFmspytrOttQsjiejF!RHO1zqez`6Kpih0$ekd5iU-u|fjU5R^)ehtb0>dDbRE(h$b~cqSpyOD zkos`Gx5&qAr;ZPCFOu)O`X?x}3J`^37SRR*XL8U29Bq81c{o((?PbqvqOX28la4;a$G!h53jCe6(K_jXz}}q$%4byDKcL>pJQxw$w=-p76X~c&oImx;oB?F5-^L z>n@_8DlWFs)K$&1v%4sQxZ^s=yDPFPv#7hG?Cz|t&WfTqDs9o%XLeZ?oe|j;*jZ;- zQZ$-P4HJJF#3fa*Iz*w;P?(UQDM}k;iA^C}YUJeLxwl+h7Z!2WSk)^_S_+`j=-V0+ zkcepZ3DO)|M^1`bM@E3BMyk@*+-S|&WgJ^>j?S#^XpmEhC#t5I=D21CfNN1_VszWA zNg*SmIITOj-KAMvXqA;6W_FP{KzAf%ZgIgyXi9(0+H_}I8qx7AFWfZ1aDUoJH zf~bn;TQf$KGqJlhi#B$)f+Z@Oi6vSXh-Q*SQih&us^p|<6j5cUq`8Eqxu_9tdZlZU zINx7+Rfl?_bl%ho?S$X1Oo}!_q)Df1=#}-YEmf4m#ovvm>m9=fn z%+pIVU1+JMsU{?9iV_t{lD9l5K`t zcG*KlvdO5SmTpp}sFh-&5^7cCTAF&ItFBdvq9}s8&0^MuGlarI&f9WkiIAcgMxvS_ zUaA&^Nkl5Hx@snirG-e8X?YnLXi}M&g=U6fA)zX9i3VetOvh_mZJJq|Y||KZqS}Ak zHcM>hK+V9+(OihlEcMcZ5fJbVCheJ$ZehnQxocrIzW3V4FGVcWF(WF82#WVM&Do=N z*g)H6#NCrO5(_gH?P$q6VMMmJMjL6YX}e))$7CpuTW-S3aN}l8s4bnFw;O2AWt5og znrzw)vCDEQ7)TLWCMIDDtGbyUrj<)kCKhHIm8ym)uByUwO~`F&HsZ;o)S`xniMlEt zVUnp5NfjCpR1q2FE=sCumXfMDoVKlIn^sM&Xl*gM5kpipMRJmiB?>U4Li3YOYD#~Z zw#speoLH&~&e+Aezcv%M>bJE39A4C#0OkSG{d}l>Y$?oh9iKBOoJTT`oP`eP1m+bu zHWWI_hLkC2p(sip)k&df1*8g6gsMg2MEz9p-+^?6Q9;et;zpF=0G$a`soNlFr533Q zXi5o@X->#Yb;gE-pbcmQp$@VRg&KcD^|PjeqDP5Q>mVj4h)1Ed6bN%7JixCA1PRQe zp%Q_7atAUTcHs>xK%+>dDuL2a&zUgrx^S1vI*UQPL)qEt)B57m3g`96*@>vmyl|Xcw4W z3es^XQXpglVNfYbRHagqgCG(b6w)Ty6*QEEB2pAb5caMwJQ%fGGzM zfN3~DBTGm$g*M5g2M__MjRt|xXgHA_AX2oC6o5)P5TK=K&<34S3!p-U3IWIjx(7&q zCWO$^CX}E6C{~m*0RR}3plMoEpjx3_3Q|%n2(hY(g8wb17)EaLWR<4K`BI|MwO)lf0FY<`KqMz19ApC_P$~sL z=2``k6#}4C3-`;wyb6JPK(q={pi?y<__SUHK%i0z1p^BLz@!ywA$d!J_631RC=!84 zJ8A;JpgBrGg~4PJpi&7)FJLu)P&42QAepQS0eS_2KvIEg0>GBAED1oMT7bR5U`ho7 zP$&}i1%W6O2`Ci;N(Ce$#Q|VY3sMPSQVA#&LP`ZlB%oEO1?YshC<$r>fk2XhK)pa! zAS?=qOQ;2bP$JX?flwr%R0${)f=UHIg{lHr6arNOP%1!;b@MkCNRfblDg=^&K$1`@ z1M5&dT>;=wI_d-Rs1-nFpga12+|UZJ8Tc#>6bHMYe-e-;%7!1a_`BFh&Cp|cy{BLG zFv(hKM-Bz}mQ}d;JTKDEi$8gZqLOkdNWpqol#tB#mj4m%;zk{7==5GvT1@adHae>C zKaFSOhk(6akO!yu!$YEf008+u_s{#k!TA&Kiot37zt*wgS?N#;89USFS$*}W{$wA(1kahOLst<1r*KUV#t5Jz0ub|v z;1k|MhBuK2sI#eR1Qn5+a6OS{mB zT@MIC5NCX)4$o_Ur}h79z52aB&E4M1_Wwr?cz^&j3_t)A!=w>k@Uhd;_Zs?6i)tpB z2X9b2*pt1kE<8w{)r=1iQ_BFMKvO^^D@xFm1qDgn9Chu^$hr+y}~jGl(0bs5GY~+ z6B6_;)D231AT`qhfGwiW3<%0aGjU4=kbgmDDgCoFDMnx5NXY#QYD#TWqgXt37vgX6 zI>uaKE!7IYwWgR_w_TY0$`{l)THvFva?<}wL7&P8I@c{y(~|=5$qVJ2=WrD@)Jan= zjd^9ZsN}yT7gt2K&5S5zNe4N3a$lHM&*cf}o9j4#@r9+GP;E3)73B;|`Op5@=~XWo zrE=;q%)po9jX}9H^tR>F%#uEW_-6YRMpaQ!|jK+5)njzL+yZw54N7-AqWU_ z>+S7-4lYjFrqR|Mn?t;yNB0{BD~w6b7M}#0c-Jp?YuT=fHa-<9HSJ`KaKIx|*rq7j zxv5l%u&I}~JLRIg0+`>)HEW?9jRIXaRLX9-v@~e5iRhe}!RkG$^L7Qir3x`F2Dz0qQ(_L6$-^|NW<-(I(xAJhoXMb}C zaMM6tW_l{7HorD+v&xcYr)HLG2*Gz{Pi3+0CoDorzw$;^#H^@3F?meECoyH5bv$NZ$iycdZ?f;I7A`njldx30x)TW zZ^R<`03zLh@977Z($tFs-yf?IE8+K?&m!kvnCCWjKdt}(0sFo_PeF3UwETuZAVQ+@ zW+rm;cw4K%16%c$l|L9gc@cxr?dN1Y*=`E}FYNWg|p;D(i@L z1WPRVU3MpuqfAgmL~2a@(h)1LDYNc-10X-Y^WwxcXZBjt2t%}-xF5THh>^Wu40?Nig`~%& z5cfy8V-Y5X27c=FC{Ve(#ok#c#1<+whzJc+*f@JxYPDNtSZu64oSly+z3%$Yeaou% zTVU~EeDHRF=Yi4#t_NNY&p^FWQ`MR~^9%fr(nwoExH z=U1>+BF|DSYn;53)Hfsq+)LKn8<(`vvEiG)xwj|@YCyo?TkrpZ< z>c1rZU$oUb&tn;LUl8@Z9P?YGc>A4vTd`ZJ5i z%}}TGADMg4Jw`5l8i40oB!NvL5{e`u>VcvQXh&Ql_Ddl@v)0LlexRuS97O^kjY^vR zd-ypIi2G3>fep9P-o13*skA<=A)U+2u8)2N+^hgA}C8D6%ZkT0jf0@*)E4k z2;*H(rbz2w$Jm~T*9>A4}ni(`@0Q*pYgA~(TJ~YhZ_dYLn$u$li93;dfNu?Ek*4Bf@^P(P+}u6GkXHnK{AT1hN_=e%Cii_Y?5d|lr0aG3CNC`-CRzoMY{z9DdPsMC!Ne?=4^Ul+s%PnJlf zakcBNY!jZs#5~#YEzoq{{@k1p9Z$Tn3E11MuFKis^@QS2K!KSF0UHbqiJnpQ{a+!0 zq#xz_m@U3}ltOXFlHL)wJiF@iqe!3{5X(Z!ev(9g?wW2Wg+e_d4f5Us>5!0!5dL1D zP(w~@?;yYm;5{Ttzc!U*9Vj87#WRX3_(z{ikT86((0Vkb0L;>}O$&$5F7@KK|v56@tFu1#9i_p;g@&K2<3S|!dXI6STo4fYEKXV0CW@& zKABI@s*+EWP>`x3RaSRaR8eu=$pOblRCGW{L>DM>oE?4{+9FfMxdCQz7lT&T zBq0{c70sGn+ZNWq#@KS3Z5UWgyKHQ_HB!lc8+Jy^8S76L%qqq;u0d4R>vJs|D8|?! zbG4&uUhfZq-QFj1*IZp3QPmyA(On!+RUIAA8uU9vj=W-bHpoC;LB-V3F=Uo)LL_Tc zAW=oOQh%GC{WJY{>d)zqk^NubBlp{XiFdv~6Z{WBDgDND`JD&8Wu8rqe+6gbeuOuF zcjNv_o%8vAB*9VkFY$jneyjvg>{h(EIQ}-&ljE~%ZTXFZ?mS1a|_cEWd_8|+sIs< ziB&GwB0#N_U4hKP3_KE>*{La;oJ@6Y?>1%}v}(sbO6gKb)|b72Uea z_T+Xv@TZokv$45V&4u^v=EBsk0e_ z^}l{P`Pr_0IcDY0A5S#d?V5*wD6p8WmWb?}WRqULS%%&9UON}Q_Dj2{$`Fyvo~~JS zub4APY$-Nn3$525D#x9*o7uX~l6w_#Eai0|>&gV4l%O^9y?)*AeU+DiegXj@iBlkt zf+9)@0Sr6@Ks?;wf<6d7NM8j4gyx2d+<^BoP&^qV@WEWa+jl2gSBYJJ?{`q!(} z+qdiieLvm+{WXI11oOr*m?;C{j6N^d_I|-kqy~dP!jzGYsZ1Gx(ueAVfC3IV=b~T( zjv+x2dW2mdgkd8YBY=Z5j0gNWN5}gB)(#LggLoMO?t_F4@O{vIka7M{IRLOYK>MKL z1L=d14ghb1>4Sh*>%R+sReIg{NqWVyKx-RXIWvyUZAWCC65DN=L2SrYWs$9|I@@tL z+}8tZI(ZOOMVY;Ui+cACCNE>y+=%I#A{1z9RuEbmn&zcr%Lw5i7G!JBhVL-F;z*Pf zZaJG~XENDsvn+O4Y?#Joji$G4#kA0FH#Q}?9Kg$VjkglbWY%LEVaqc!OJdnKGS;!f zX3e!SG}g5niyJh@ai){Ld=`J0>J^O|PGP$ivT2)bnJj8Xlo>@PrfP_JD1@jYl9EfP zRpz-+nn#j|VkwKcE@fM)uA1pmxgzL!=!Ik$UWOs1hNh>QrY44MZ6xHfOL3`MYM%r>;mqIH%;tlXBdw206((L5qd zlrz;x&2+OZo z7TvmWYF686kyuu0rXiAO6ndbc=?Ghp) zelCB}N+8xp4U1c5J2p_Zw+*?Gn{%Uw{6IbL&`NsQ*^SViw)G(QY51Z(GklH zAqhP~REtVxX_&KS!eTpN({}7zX_}BVwna5MCe@a;5;C(DQX-HtFrySoQ7=%nF;P=e zGLJMXD%z~h2S@zXfzrhSGKh3KZVrBc0(O6P_I#gD)`>a*NWl#J-Y;=Ig!u_eCmT^1 z*DU>iLqt{SjJ+E?vJ!t7^%M8;*7acIn#FoZo-I7s9~zPF!r^pc_|uVRM|c+ zK-P$h@o${1GO94l4HOI`n$DL6-!->f(Rtd+jNdtL zAK&HH4V?+erJpe?rQ*Pz&DU+aF1O$Ho^NFUnze_NJOD(E<`We51!?SpgV}#tk&04{ zMqV+NL3EPV%4XSe(sT zdcC(v?0Y)hdfL~nQLioN5!m{#Wbp0m?8BzwG^Ma(WpQbr^7RAQK7&?l2nao_QWMRB zhF}Ddl>0y=Fn|C6DZVa$=|z87fCvbO>gs*PDoHA;eH7g^Cid-J%f8H0t)pFrrzP$-}%KW8WpG>(X6m zLR90DU1jLJYsKNx51t;;T@W}dOo;A@N<@@fM$!nYU(n&uxhg%eV zdw-25lDo(0oF@q+kN5g=Rv*k9vq7t_cS|W=GmpWe={c!DmO{M+_9j zuj{AD_D!M;PqHQUzEJzWd_MRI{nP;uz9ZD{k5`jtXI~z!mth*-f8(}s2~_l1zn? zt(Gf}dSPPo7V5bcf9WivPj@9>rTs3Ho153yl6W0~w*ARPQHLCpZI$*(9r#VKUX$T7 zN zzOM&HiDdCk=^rm@Vee2!gLZ!AVFKCR=UF7e25k?2aA~<-fAynwjYf^7v+%Thbkz_( zMFUjaO95{J!1!_C;E?iev{FyZw)@-X2g{&N>$UKF9WWI4)$~2&`U131pwEC)=rv$u zu{EF2TEz$GAj~ruOCW9KmeW%{TJ-?lbIH>D7b5szo-YDpS-f>Q_d{f;XPn7TBJ$k< zy`!W>5d8;#b2 z9j{N_E!)_B>45rE-1YsXGuReu_ECu6pipbq>@mM|f4!%_x9z>MgZLvVLteP{M?TOs zyhJ(2Zq85xVk^L?)QkjD$Pb(lIlxEmn2(1@4xGcBuFHw2GOWiaij8>;bO9?ykyt_y z)0tTukR18*E=^hTzIO)$k;LMF>Yb!455m2H(b}s7wOjxJ#vadO)$RHZx60@bD2D(< zAPfU%e|Pn4XC4RQssZ~6BSS?paOouB z+cmF_L}e;^hp*}%aXJM13hasaJU}L% zA~pDgk}m+Ec%t!Z*Ojelvt91NeXW@2(ObaXs2jXmy1uQXwJJf!rK)BHaeFM=_|rA3 z@wDIAW=vSgsg0CkwHgEctb6wSJ?*$}d4M^T)%1y?VN?xh0z4 zQp_9s%`4rCy8A)Ww*G^7tgv6X0x8BWR>!`T2&)` z&6QC?qMN#a2g!g7?chI;3OYeUNCgVh+$9u5M*>ux!9gVl6o(||5F??tVj_~W${_r0 z6P!HZ*fE9JAZE)>v`*=09X3iWY;389*^%2@Re)~B*Dk|}HrcD4XPM>LOOnIMf3$v& zcLCGfP@_XkOGOJyLrFX|6jM1pzso~rq0y}f;}tq-95c+F zNokNWe)PYlI8LT4fhwwYQTc8B^{3fqcCq~BC+Usf9WHfsI}4T({_U^I+lwEh4-#w? zYN8Y6&QHduNrP#m=a!$;-4(o>HCbksL%N`<171wnv+v^2x>ZLWF24`He~7=q_%qz3 z-OWt0JsDNg9PTQyzA-n-ufG^HV7S%tzNKWQ@4fRzi<%UbnzXfeYK%Mh<|N9K>KkBnQ;7{ZA1njCOo~K{{|cy zvvGGjE#d)Uo}~v*r2aPXe+0a3D|e@$utiBMm!_ z$z+k%^Vi?}2Zc>01akDUH;j6E6@f#M)6b6f2hj^%&ZX4AMN|TNj$C&Z z_ej0$CIDX60;H4aQoy68i5ab#Sk)}d4;Xx(CYVFoyJ+{%&q-}NO|11azD{f+qG2qR zPX%7{9Z5bEyE7K3f6&=X$$dUDj8UUCRcvkU1Hr`3u~OTT+g0SJl#{^2db1^|DWxQl zo8A@y;_BK~s+9`jciX%sdRK*3THYRigL<{88fiqRm4T~0-5wgirgJ@Lz#ZRtz3^|2 z`X^_oMzl5`WDnqBpeMeePk=y{LPCIEqCA}dH(`3!ZICwGf4uF%@qQbQ%}ep^m>#dB zeoa)RXNkYc)u-EYxp@kVZ{VDI*(hz+{1f=kDCTLuZdaQ+FD_TJX+KSnIeGW z+o#i512zmfe-)vGY}&zD!KERkSV-Yip9>YLY-Xx9(}l=5+c#PDXy+oA%{5K!d)qVB zBr!3ynf8^V35`ms-dgx>X{<9PO-AT5#NYS4wP?kjY;94hwA^JgEgeR%NBt@UnkfXy zG^HfB3U5wQXw>!vzZpE;&J8RR zc7y7P`UwqY3m*vj>jFml=4dT%!1sGjQX|m|+V*59Av6*YJ&p4CA}#?=bXSYb;xY0k zl*JT=A>~rRA|E%EMt_t&q5S|Ee&$Sb>-+G$wpM^oJ9)x&6{;Y5~;f*G!`2De25ToxZsM^C1b4$>@Gv?1|*)`7Qmr?8Z&JH&p zl(uVdWg_21~INmV3&)})YAu9Ksvx|BPEpt!gs z{7njiA)|`NB!rI|$YQRkl_XR|$x)so8xqNlR?fvYT?uwJ!)50iDOL$* ze_C*sG&8Yvo^2y-V_{~OW*fBIGi?%}@gUF%K*R+lv7x4-1B;Iplbl3yu6U6_ zQOU7~w>c-KzTpR^x1vK}JkJ(l&g;s_aB48u>XkpL3H>jw63awpnHtWDF7# z1)~&T#(`z9nFPn^ot4I01Q3mpiOskh29S|Ks96O!=EzSdKu|*KUM2Yyf<<{GLmxe8 zg0>+M#)$zWK}jHcL4||rJP*WDOmLy?p)w$S@z9d2JqcSFRJ#{kT!I*n zvELfHlE=z41&r%!gc_*S2#y06Er@92TLX!0NrgsJxddta4~@=vy(DwY7f;5NB#(`x z<O1_YwI)^-eX_i4FqWC5iL-ytxY=uW{RX&!B z=L|mZh0VVlE&Lfj9L&brC?AGTXqkR;n#SgS7ObTE$1a9lUXW~qnReeyY4}G+;|b?( zr<+o9&acFaY>f1g zrnO=4+nzbS>b@9PB=-x);bemYOYpvmvvhI7{<$vsz2*D}uc7oOQMTf%(E|@Y=uWL( ziiu|zw51W3r`iD!LIN0z==(?Q2gR?uy~nq1-kGm+m0Vno0^XiWc?BTtjFc{M{hji-I zS#I>VD#BOquCY7%Luwl1Zk*Yjq6-PvCH&TgN%eov1zv5V4D;=gHfpw8xVN+A#QCe~ zlX>RR%RSTR_^AnPvP(mf1<&p~nyz{@_&V9JYo+a1?@iCvWPSMQTygu_)qI?NPx>&B zz&_tN1YY;i@ITAtq~@du{Hs#fAjI+l{I(kb56YlXkCZP!V#*{1h+jn8DYBZaw}uyG zY`TBByif9=f#*^}B(LoKM{)B1>i~8?i1zz3>g}NqRYBPy>>`O29;$}aQw2uBZ)3P` zg2TFD*zER%4>PKq;oEw{L?i0XrdK@jX>O^6kVF=)uHu-0z!i0USE|ECYgL$GSLpAb zJ+oS1y*fUM2gHH(V0o}P=pP0LM+4?S{D*&u1JywI!2M8tFnv&2(}UuJ&?!t93PwxKVA=<52Ow^oDZb=prBvqgV1^4`M~`E zX22HnLFa=HqzunI7y1Cl(+AN93+V&s1HcD>3?8$%cU`@mr@dkB`FXp#?yxqZkeGkf zn?1Grp0BjQ_C1ID-q*b5HU}rW?8)u?ReOeh=eZ|0$MAswg0IMosaCBLZL;T`JG1Y{ z**BryDn5l2J9bqWyD;lIpi0`&3p2}}8nI`QC#fRX9&o8N?b*tiBB_R@2^YF}sg`Dp zmn*C?lEz(ik7{}5W$z7@_fnl+L}z~`s-e}(sISACJc%Un7OanGOzjNxtoJCZ(rn?{ zOtplS2@!NHLlP{AoY7Z9B8a84*4#;oF`>3;XJTB)Gz(D`sdLMahO;q?YmAPV%9?SM z)S~PyaxZOI(Wg2zxn(rCRvE)aby?NLg^Xvm4Yr<4MqD*n$mz`$NlZxWrA~j%ZlX&W z)r(m*iCC-|cH6Lxgso0YnQJbtHrEVgwXV%wF{-O&b5)^qL!n51Y}m0CxwgtGxz(+%%(F$h97eL1%MMgs zgw!)_h1gvgd09=c+lt#6olcDD)-yQF+MR)!EZVNb&5LX~&K$*7 zTP9tzHnFyvOF~y&S{+pKZn`Z!s}@U8k2uE3n=vLew#*rFJZ*m?iLs`P>E*U;sZ1|t zY>Bp-v14Nv%bnOMS<9Hr(v#66s;61%)^6JrXJB=)DXJ7qZqA0JTDgqMKam~3p)&g`a*r4wfwCQCD6(yfVv+Ox5R zD%%25R@l+7VUd`YO@}Uov9ys(Y+DL8lR0$@Y?hMMFse9mjnTGsXK33R+f4}UYZob` zj7yS|RLk)7s6@_o$Ry0<*JOm8 zBL&+LqBCXA6-b5H%d*+C(P3HGw3OYoxk~3oCRk?eX6n)S|NQ=1`vL3M@wd6Y=Ouqh zN?4MwQH~%NHy}Mz8bq)YSU2ey{URvik>vlR(29Q`Q2)LnqP;K4{#V?8X$#H{TzQjzO(8+f0=3b#5kY)Foeul zGxG`@|D*NM`WXM&C@c7r`PSGWMJF=9go1WF<3^l)rW@%Q4qm5$)}b%>$+<4TP5>2agoy`*R4*DtV<*v{1qvdskY%|v~*i2e*)HyR8W?yq-4Ge zYRZ;_ogxzzI=q$Rk@YlSBcQ^^y-b&X();}Tko13gJu0jxzHXLW?_{>3CSZZlEehbYff{}9 zKQ|Lf3F@qQ%hDs@^rq8s8gs|sVwADw=k%|{*NHHQ72+TwXMj04b@zC77#`gWXH&be zi+_264o8{C%iNEZ7RD`x_sb6K+znC2ut@iUetfGf;DGnD(R%znu~dJZP)w6gq<8c=zstKBKiUm z2*dyaDwHAmFeZScXi7+_Xet+9es-P5M-+gR2IoVnxu8PIb|B4ZEXn|U7dn9 zL8C&jJ6hIxHLSRKv_$O6=&_o2G-EbfG*4{VbxE68Myk_KQ*B1u82hh=UoU?hh`YE2 z0YEso=%S;zq^0lmJSYoU7IyC`7aD&-7^o@YojDX0%CXJ9?wtMkkta5Fu8&5gF+rg9XUx)D zOc6z>gUDniB;yk(karJrHQBRG=20wiGFI|cQSdxf@ zL_eR|AW+2OQHX-e(@NDb6rk7=8#kNXuej& z^*A-_*Gi1k<0NoKXnKj6+`+cV8bTAoX{3x4*PF<8q@{2uP%piJK!f zyj8&-*g5J>9gk6%%=f!xO=G+C)k~STf}N~wR3%pHot8^1ZJNuZZDlPmraO|EHtbE5 z<$ZUCHREq2a`As%jeIfXt6dZZRH$rM4h2oI=alW28Tco!2@6!NtB%v|$)errX1ZE; zYnD4MkeMX5FK&H{%-r>9vWjZAel~IjtMlP@Q>uIyu-h9Q4+$Og^*VeUP^)KGKJup= z`LuHHceDg9<)d5&)Mkgvo0kq-JDZD|`DqkYIA}J@$H{-Q`aIzjKpnA&B8&D6QA7Y7 zRZ(k9#}svbDWQLR_LwK)T@agot6rD){3~;it>=9E2!bF8gYAd_j8Q})ARr?UZ~t57fNr#Fe(vIt zLoR>n+R`x~q)5bwC*6UV#6uS4MY=!+BN{#pk`lvwI)DA*0QZ0C^Z%RuKJo|up+h1e z16ufB7S4TdGm-WedO4{Dqs&5E2l(QE>VZ7aks}C9AVehillSkt+3E^awumR-`4B@s zM1)l91Z37+vBaAx(u9D=`db097LoD#7oH)sKtxC;+CdTlWg?Ix^sGnZHBu&hi~DMv z=KNuVAD7GUlWdIPU3N-^F75oxkY|{Pq zI4WvL7r7TtyrEBVaez%<%j|m#zbRYsUgN@>ExM@cj3hSH$y7O4SWNUoQvy3x;B9&W6g?q^x~ax(oBQ0gdp{ZwJ{A4t;_g^gRFhRmP2kSFmqN)`E%;>T%)x(~738k`a5!CFN78$8 z<)JG+TXX`k)gLw`$z=G(+j8T$ywBNIrM}?}x{~4D8L%3c%^I_A*PgQ-&V2VaIrEkr z{P`*BQO5Z2Bj$uTGTF4J#Pii{dLQ8C-z~Jq%ewt9$EpwMK9`nPtU2%SbDCCfWBG$? zxn$RGiXe(0i@bj^MO|I_6<1NzUByxebW~I}?6{Eb3Mis%)}XwpA@Mj~Hjz~jQoAmU zE2i4IqS&nGZK=l2Ar`A7mcy|^;g-rX*oExY)@p9iYd1GgjJda2=*5tzNX-~@Xhq7Y z_bun%p5Q!A?m2ki?uetVIypOl>P{%4D3Unu7G9O+>&AbY%N>ciQzNW$Em_ZPw$y4t zr6DsiBQPQ&h@vhJAo^X^x}JeK{7YH^C3W2q3eb!?1Y1g&UL@#Q0tf<-hSkJAiKdoP z5PYjWq!9#B1YVJd1Vlh$>FeQN0=yrI-@Q3YLRuc$URswsSW zoS_1?qSJq*u{}Dnwl<+G7BOlN7_;a-D4hW;{o6etdO-An=>yUSqz_0QkUP+NK=}aqAo@V` zf$0O%2Jk#!c);<2;{(M3^MDU*o}|@KJ*B5bv9W)V&{P7`u`D}VWo*@^9cf^fWtJUf zWM@Z79c7x?wRTkJO~$yZOD-!&vaG`EI!Y?dwv=^*XIpM<#%6^vw>ai#sHnuN$KYr) zAu{vDMD;+t3LQ|_PjwB_^eimGRCMunHrctf0Sj%nM`0UnJ3BiK3uw_C4Qd;(Or;eS z6HtHGNTJfa(JL9#b~0m4YZ;8Qg))xZV_8RMIgk;Un{GN;w1%;BwXxA8bF$i4iK3~v zNNJI&P*$#_ScWN7>7-gDny6lCNk(l$8ZB-%S&iFkI~ijwM$JuUWSb$*!#1%*jNC2T zGnyT>Z59nsy)4NjkrIzo2_;HUq|&X*EGaS-P?b?hT->OmD^o00RXs5bB9~VU)-p}C zlWj9)rWJq!31t~Yu3@f-NUBwuHdft{gp*ICCVy<&&Sz=OEZNz$v=-LKErq#~X(;Du zh8jkMD(Xm=nPLVJMtSOzg6O1K9wK@vp%EFLYAT|ndPEecc~utZnjS(W=t`kdg{g>1 zVcT|?G}*SZA{@0Xn>g#96;c(Yx+0*Z5-BN4W*G)*UW!&om}2JPy16cDh9*U*dRgeX z9)F=$4Yp?IZ8u?@8zwCR6UsCr6D!3N7coRBB$~5rF>J)z($S)m28V5&cBb6Iw_9f| zZ3{$&rKp-}rbV+Tst}@Y?P-IIWh*AujM-V1Hz~7O zF_to+1|&+CnW>6~n4t<4qJQPcc>V=_c8kmZtim4(<79>UJY8jM?Xv0~U#kA?RO*w2MH%82`+by&;qibgX z3P@Iw7MVhY7UnN<_b+xn+1~LU?e=~k-9;~r7F}=^5s()vc*l%IOeOLP`2rDxMn@N0 zlp+X#RsHwk{|*1wV%XTfBG1;^=6`6U$2Yd%)yZGoBoB*RSt$lsL3uCAw-7*75hvHW zIsMzw2uS=p39Q*Ck^H@qCGeNOihnIjt@~8sA~Zf|>R;t)Q}m1N&wMU8h2l~E38EPJ zks>w7e&l~UKBvF=JQD5mZ!>b+>zY+*+E>&pW63iqL~~K_f(p6qdt)r7U?hp^bkEpUIdpo>6l-Cz;m7FBg78hm<1#9I->)Xn6Y-+Yq#oCfu zAR9tz)~MOGYS`A1x0brN*9k!w`}>`yWVmgn{5CuxG?wINB^5B76Mu47vO6t#&7Jgx zGgjUqR#ne!njU8z;bgF#n{>UE$1V?_GtN3-8wu-Es%~E16l2OtW3hD@ zGL~w`Hdy#F>0I~$7L22tmANxfuj0Ug_H%Pusd(We@;+WA?8B1H6LOC+ZG*XT6*EUh zJtBU6_(_|Van#=U_J88;k91=10T2j>SbD-?=t<@jw4%`!C`Ihgx_iaJz#gZPC1@y8 zAfct0swoJW%11@Ya0d~70i7PDnbh=*mQKjH(xVX~W~{2U#faUqm0FEsI~!QhI)@q2 zCM;`f4ungswWz|=BxR|y)00)X*)23AXsUBCc$VH{dhXJy?|&uKbsa%*$3aq6$3aw_ zhgpzRRPj0$N0A*1J8X#UT5?%qr)V-p#x{0^E57=79Cy-)1Y!XY0UsaFIB4-%1R+8M zA?kD|gn%KbW&g`-tXd;ku zqS5Y>oYGJc<0bF5AP9g1bYd8UK$Zf*amXSkoKGsm)_($`&Pfp#aFRM0N)|AbxQH`n zAV4^b5Oai)%N%lx56|&_FWvNje@BeJt^P>==?>wLj7CNLf4BD01VlsmzT**I&y5)M zm-Bx47>s7KK`{~n5cOWcS_p^Y{ke^?C<-s^2nnNvbT~utHa0v8m@$e487WJ2#Nco0 zSQwjvlYe@9DtXT#*YFrf3lCf#$^to7Op@CD6Rme6(qt!v#mH@Q57?TkA?w#xMjIu% ze3REWrK3HrTk>R@o6+y~^Loiv6lAjPzRirp<+$tCYOPhK_FD z+tOIddv_kZToodpxqf4<=eAD5OC8`xkByi`I7Y4_Y zHgqnFFQ~c;#pHE-CFH6YoAtj~g1G!DT&x2g^n@%g3svAWFhq$wBz_v)1X-4gp-T_G9B`er57;%Ge-6i6&%X zQhx_l528ARL%$kLBDL8t%V}A_(zfe__Hp6dg-o0{i1ix(eecaxd&-GM!wSpg6iZ z?9L7@0*gDf>2Ex;#uH^ z;{(PAj1L$buz0|_zc|HiP|N5aK@XuvczO&4OL!v|Y6Lw3piv-?p{mMb2tGF?Z+{0c z5MBSu=%NUME20n(ij8`EJwXotsoE~mBN3a#fPyAnWuk+)4lciJPBDL25mn?w(bwym z@gm5xO*zHor&6>at}QAN0zy)kq%{GlJt|a1xH^oztvE$+HZMH$&3TF$wrfLZ{igHLSVW`6=Lkc3KA+n*Uk^!%6w3~uSAUb|lJDHs znOR%N!=9AAYdI2TB?5OxJV_`0GQ&LENDx~surXd>B!P`KgDj@PVI)RiMlIARQdG9Q zkBSMU;QjmC&_RAlpN(3@0x6C7B8v!y!tr4Rn$gqf%SHv zL+oFePu~<6lTAi{k)K+qQSl@t z_C5J6P58WlA5xDxTKftSAk|s~eRK3R_gnD^C3n#9KX5y~UlV*3H-C{TG?G7C=ojhK ze&~J(vHD2HVPe|yTwb}UUwunbg-B?^AoQt1wT!X)?PSt@+ME#g3U#e)sO6x`ALOQI z+(ik!yt3PDsfs=L`*44^p0;Vr&+X&)@m4@=Ya1Dse3o5#w^Q@tsq_39P3pVhvr_l2 zr{>2-ns0tdlQ`}i>VL5CZthwem?XK{W8d7|$4nwz(Va<)B*+Zk#~fL!$&Ct;lw7cS zRnocA!hP&aY=v@1h=iV5jm-%6vMGbqV<&vwO!Z|i2U40si6svW04}2nYu1dV(>rs? zByi#?DtH z>#1^ctk(UJp4ifEbWZevMaeQ%;hC0KdQDe9hS)bDTP+A+x}kM7EF6qwPQzPr9Nrw< z;h|FBIZke7lYh-(>2a`f;7+>>cRq_xT3yo{r)7HeV~10NpNpitohf`5g6NyWPcic8C#y7x9Hgve$Zc~vy!b=I znqBHI&6aI5I)(DpEa?_flC^kzJlA2tudwBH^|LO)y)W2%UOXV{DF~`Ws*tLYRD~%> zQq4&dMK$}_bx2Z0&&uqhl7|XR?L1{Arjb<_EtBrBEq`n#%*dWkhnyY4g;7LzQXEGS z9l=3xITu1l9EXkQY8|zSc_uX?;flg%s)&+|?Mhots?MD6r~Apr2j9?MJGnq!P(Vat z5fStVL>_Pbc7;}f5de)sLRJj^YOPrxn7s-mg0ot7e&*il)m5QYg4DL=TG=aIt+b|$ zvdcD^-G9oG5mW*qKllnG>1FD4jxF*L-2v+gA(@`h-rqA2ZGArzUS%1dO#4LG3*CjP zo$Z(#~}#dKrPO#1Y}8|K){PY0cD=+Y7A>j@?=rut*lU5 zC6YEi?2RU+?V1f_V9v4OAme$;vcc5q&+A_h1b;ymp^7M?0T_a+BID`Q`I4m({axLfzl98 zWTKH;N(~~K73M%R0YC*PQE{Cu2$TSG4uk@ziBwfceP`R+{T}*mak!W1FuysOT{SC< z(tp-_axJ2&x>~m$v|k@pn?4q_&(f`Ww@Z8E&x6zk;5|TkfTySrP#&N?Kze}tAoT(G z;PnCO1KR`C2c{2989g!|KpvPZ^uh98m?$2YJuq~DyVD1z4@@4IJurEo^FgwIpP@*e za6I67!1F=udXA&mdmmwcU266E-B5d8_kXLENl72X&MgkcEM(PEP3Ua#Xp^p>^*C}U zPeapJFGIwTfhKm_i#szivk0Lx9hFHLm8Gkos zTVrU`Y;8gX&Ow;ZJTp8b|-Asbu_bbv_&*e6pb+PRI5{5i(I6<^)ysaA~Ld6!qOzM zOU!gvT-7luO4HL^@~cEM-7G6n1%E{Kw-(OUYn*KBSd9l8D`%lZW~x|Jk!l*Ml&-AH z64o@V=5g4|1!`HwnAWz9qDCy;vP)Uk-MeFLSd9siw9K^@Lo~%bTvfue4HB|a7evDy zsT&J3WRbgeQYmUCh^iqGMJtu46@^!zr>UfAs7Q%PCZ^^hVM>xk5@KjU>3?FRDw(F1 zglR}-r3hN-Az0a^tYx&>iOs?>+G&KghL*t1ZLMr(?KOj`Xh!CcpjoAwC6t9BQ*~&T zg&t|-g@s0yPOFtAs#2J)NEzj-rlKN=nJ%S-xR{r&S|usuC5UD@V6LjCmV|*2ScqD# zikPSCh+tI*T@on;N>z0-s*?(}DSwI>S(0d2TAqf;)w0Q~G9jh5k;^vV8Nji&nr2&( zptYKu3l{87(`;lxv5FX4MWUK1iaD5tS!kI^l8F_n=!iromXw;=ZgZP3>~<_Mr#okD z%&Dk}m|&_@PPu4Sp;eS+7?Nou6fUZXNh(s1l4x$FW-FShRF-)n+ji4-oPTKTX#iUd zWR+AiD+uz>Bv7EkJl9cI7d(kXkjl--P^B#tG_>s6+)X%I**58J!Ip+WSgVVbDQIe_ zS|Y2ZdSq6liZn+1DM5G#^c!V^op=flaAf|wHAQX)PXwa-j;Ktu1yRm%(Kt!P6eT6Lh?At8cdhJRZq5P7V%?f8(QrX#h=XQ-}wjHNqO&gqxoRFHM;e5O}?iZJeE<32BxQn>p zqpY_$pyK18gOue6y&APVO7qLesasgOQe{?&OzOx(B#>fQO~0G$eLeT;ApK|2eJk^< zpB;OCBT$C#`tsMt`TnZQ8wRX~F?lJ^{Y`C8v+q(;0~PvH^8T4wN!ZHR_GJA_x%Il^vbVf?_AF z&pdxO&EQLB>%u+3FULdjLwo0#A(nuT4<4!i9Dk`KbN)5OBD}vbaQ+c`gVhfzdaV=u zCO&w-2nYw^0wouOe+UqM=N}HvZd2msi`3VzZvy~>w;DM+GB=G%lcfG=#v0xa7-!bZbk9TV2c8@|v3My7_~jM?UA$ z>AqRr-{$&dSK5Y%s*~w1B>>_Am1ZaM$A6C(mHC~!**yB^!_U-u9PnG^@o$;W1Oukv)|w2*QMm{@9scPJ0#WSf`A7I00@8xfQS5EeB1Es7Vu&UL@+`mn|(*W zzDjd6^<51x=_Cm}o@IBg>mNSla}a z#kIM^j9Fx>@)v{8;@@4=4v->J(zFi{xFskeLgG3~IDq4#B0Y2GK&z34#QMjGp)UANmjNe@F73gY*O@LJ0qJs~F>qC||`fPku9F z0RalZKf3&J>bo!(@9E|8sh`h}k_$Ji42Ve&$Y8N|uNjLFUW6?XIMk@&AhHi{^0W#9 zKJl}t=JR3g21ffjnUf`O20ReghGi)d z?H+aAS=FHCvb+xWE{98HA?DngX^J(?=<}kK8VholKG*p~z-6gzoqs_qWN0UeYCjjM zq3H9!&V1l2=H_>koe>deJ`W(of#mU#AczSWc@TdecZ@Zcf3AA^TJ`tKyWBnw(1#(i zM#si#DGPzsc39`Ee`WYCPHD>^M4ZOcXda?7EQxL>6W$xp?Y@b zb=FqwoD7!^7SYEs+<(EwOQR<-*DQ~?>bRAxG2(q{;z}PQEoN>lG+~Wo)h`YwYeJsM z=&vEhI)JUIMVDU=sQ7rpa4$@foz;usfUA&&)ef3@G8VW@o{YPJvAOt_TRl6{@^I}i zrEAr}+FNg;_MKkFZ)xqM{XcWk`$FHj@Q$W^f_9{i)|E;zw0{uLG^tF?lW%L=o{f($ z9@jo@cb}7wYOQAuufyP~!rhl+*-I^ZUb%IXUcDPHSZZtdW8wqi1L1?p2a*ox92vyl zksI|TDODHS!U32fm=oi1fq0dPZ-MW=i{gBKJ}JAjTLjwDS}C2L66_GOfn|X7lPt>@ zv0b^lg5H>h=6`_PLLnXT>JfC+yd;7M252!SQ>FqYR^*s+2Tv-F%CeZN43^?hLt`&e zz~Y9249J97h*L3Bkt&aO8KONumQi48jWbh!912 z)T@%rFxl!7a$7B>nhA-}i`hSGb}AjRlQ&P$BKvqX@-|BOzvc76BlJd<{k)XX`Y7Jb zkcu<%B{C1bq?-6YVqeI$Xdvbo7%%1Wk)qh=eSgAQ3K1=ygFhgUdkLKUsz6B$m%3Uim9UN9$1}@|AwfBsbk1($zy~bxCs`tDi+w+d#OW z`TeVXcvnu^olX-?;I{M0ZdiN~zuM86kYF)Qvf5cZ(@&n<%Ap{@Y!^3!B{np3;Li+b zuYU%$y5_N^C$m4as;;t#b*N=jrO0CEh6goNDq!Z8_)$dl=dPe-S#Vc8#o;>=n}WD> zSSm|SdUKQS=DeCjmVf<&GH@CSj2Y));1#jAsec@w?elT9<}wmwcv zYOeXOwj5gUbq%?aPbG7-?kV49xnCRaqDr;Go&?J(tj4b6?HMv~N|;N>WjgV{K*C)% z&sCd{lQQ`DpP4BPvH16eX}Pjz#=?@#99dI{I$EZ(bExeul>9-nsP3F6*N;y0AbKG5LHJjb2ci!|9Kc`>U^#&1 z1DFmd-$^+Y8{@C4q*Wo%k#~QwO{#w)va`7L$D)^U1I&S?rEYoQIF_Da#H|$D1Z`Xw z5VR(qA=2q7qe-qUCYMx&A*FWO)1(Sl^#{^%yg-wrp5+2gp5#udLVB-l$!m&-OMKwy za1Sw0I}VbAMyVSZ3Qxk2c<63sf#L&H28|f0H0cP~EwqJcqfhXB2PXwR8xBA??kNk7 zJ0R%oi)VIeGc!bN!NF-wtnT$kk>$Av$T_!dy2&EW?6Zo3#?p3H+j3adHgna{)J-i? zEXz?sJVVNp%)=OeL@F%_3^l^?BUDmyRFbJf6E|{Pl@TzAH%UgDGi|eO+y#NVAW&>E zX4`fQGaEKrvzf6^2s0!QlB`2W)lwl9Ey7(xa;UJybuzrfT`;$7HnG}t6^#ust+wQn z+ieWW8+KXA8tum2re-ymMVW@NwA)QBmH^tchFJ?|BSU8gZb-Qss1-<)X~ZXg=(_2M zDG};PT0}-3Q6{OXnpAp9ZLiWx+frXgY$wq{IaxFwl0Ru*RFR;DJdnMS4R zCN5!AnHiXu6l4P3PX5%<=(rp%< zwB~bD6I_(AsZ&IyP((=+b7o+G**VT`)^gmKmKrvj zajnwag0zja?PvyLJ962iD|%;;cSMOr)g%zZ4=W2raz>V&n1!<3jbygWjhPgvMjE0< zqJl{osF{VTc!`mkm?C;<5n`BW=~C&I5@(R2ssy55U{0GbSY?wKY@LdK+aV!tk>VLC zAyt}5DJzItx`pUzXi-Q=ZfIsFTR_pa<+(D$u!hW%YE5miSz_BpnQ6ir(k2bM+B0@p zVB0e-CYbFub+#HVTbo$pTSk*J7&{oqt!rA=?b}SYjT^LUbFG_=ZqBn1wXDc?&6`rR zIKwiL(vH|-AmOgE6~wIEp#Om zQmYgSwGuS)$q^LObgEJkB2&zinbnOpji|-o7rqJ#X(&>Jp`wa{5GW<#6%qJwfG^<4 z&;=rt4Fv@wN))G0-0tlt>XPHBDoQw@&S86iFQ3;aaWy%gf3Hen~K65Ax7H)W-=>rcocnHT0)M zBjFubDimcA{&h78316?~DM5s{EdDRZ<%$yg&VuMt&>D|ZzUu!ulZ8g{dAsEiT~yZU z)7p>Hsuy3#Q~r4`zvPTvToUD6@2^WElqV~(fMgly`wa|#FAA14eYZMR=2lb5AIU|( zCDPrI4*!kNMZ2fWaK`hO1q57bYi^%LS_Pw9c7Eq_rE9s(is#J->sfPoBn1B19*csRuM#DU4b ztvf1z5|(J!ZCUpEy3dSenX~uT26gC?i06j_C*h zxva(Oq@~+*bC&2oQ3WFyow`vW1IUBqyLe}0|SU_sT#9S>>UR-BNW5;36+Va zA}VLVd(RH^_2AxzOQq9}-w+7f%HvLQ@c2cZ6EagmVTR}_gv2XTa?s%D6PC}LWoLYv_FzXy8W?1Tjm#+~k|F@ypr zL#1ifR+Cscy=Nnv(_=yF-XL@2-5TRTT-6I4g2=Ag6?r;03P1h)< zdfIVvF1F1&xuG?pqUUQ?v8gDt4%=(Ag z{ZF-hbM)#uCHBb@ODG6DP*E!pF0=`W28DJgTJ^Ps7nx`z^J7Asg3%uhwi#40kclxe z(f*}B&`iQDpco*T`GeE*+a7}$K4k()Hl)Hn$uMvzmTG6kg%E8HD2Wq)BD~M$ZWtd|oApSakkF@Wh-?!lYMH9Yf>G}t6qu`KQOCvFPDXKFLNh7V$ zaL*eAL0_&oG(t5fnBgV^S>i-p6D|l8@~fS{s&Q+i{W5qM-z8paV+821XR{=>u0I^o zt$x@(M?H+cA{_?Y0{J0I$uXIDQr(fPe3oCH6#6{n;bEs6t7k5p^>OHb(PWZ2>Is!U zhJs6KS>6xKb)}6-XUi{55X@4z9;ln%$@_7s_^)- zNcX2k#$5Q?!ZoaBjjC#w4mB-)A&hxBP`O*T#TPP!nc^sjKn#37K><*Pp3e^+-p2$TaeWQmd|B&XbE9KHJ8N{Wf(R4e1;otrJ4*H6c0+9z1f z_S2GOck)LYkybWd9$OmdRfbin+?U|KB8<4@nfl|GHbxae-_t%e%P?UDnQ-Thc^a`o z*P3x*>p{kLTC4Nz;H6fa^1Z)_F|KN0nZw`UHaGq$3B>J z^&cqZlI~2WP3+&gWiK7w8sWD=QN<3F&xePnz4<*ptJyx=>PPBeqHFadfzVS?7bosG zctlG5zO1`~ggP#W>B&7Canuw_Jx^=0BWeYmb5ThnDH}c-(tYTb@3y z)O%ew9COo;tK#&3Uk9z;c)NbDc}L3)BuhmhRX~)}FqKrZEh9xFK_8$bB$LVqln*E# zP&}Y;1N5}CsGw6yKvVzrO+Unh(FH)!O)*R)Oc7KRGC}bDkB{&6`u*wMIf%GGK}d`2 z3m4V$u^g__gmLRf-jl!CjcNt3W>mdNb7@Bn5(=34;{#)VmU?%Crmmv;h_!VVqXiQO zrYivI2#-({qsJw|b;blEYO&$1eZVkNn9Fj#M#RG|7eX^-(T$+i!#DtF8=P?{xatxq zDbnC1xD$x!JBm3cE|j_sNfWLmN)Ci@yM*aP=;=B-$xvUqi3T^CVt*U96-4sZ4y2@_yDIhuh61U7Rlf1hCoW2@2{{J)2P}`E>!;YuUO6nT z{AJCDy-z!A#&#}pSGvP;?1q$-!A4TP7u~l+#@}ub!UXzU|8*X*jM=v$De=l@al1?# zOu@MDvS}4Ux^1QKSn59#`D7q%67s==ePCoVx^EQzD`x9-UyS2>Nmmu#85@NWvF9U^0G7ATggcv-4eh_akk1?yA1QXW~@CRem$Ghrv`+e_FyS>M7bzH9Z zO{kKpPMcrH946xkSfffS;2amjGxxp3uwRFx$& zBUKYJ5JNLC(o|nnj4%;JH53=ZQjYlv=I0%YxkxA33P7!+gvZ4hz5}`!ml2VEl4w6FW7ZT`~JDn*UriLh(f~sJN zmRKk~Gt~EVIYn{qF)l2bBf3y-r4b+oLUy1n zKtq>G^&u$`1q2UKA!&(asC0$6Vi;x3hGb&TGfOT|#~kd=aphcLqeQJ+rqJfN9xV9$o=`aBGA&Egh$35*EC}}qtBvu<24YVzY8L z^z~KRv3CUNR$GZflH?*H2&!hPPheN$fImtKd*Ba*s(fKzvIRR-?Mes;rHBejn5c-H Sj!=UC_`8xR!i0eE#CS-<)W327 diff --git a/inst/extdata/example1/Input/veg.in b/inst/extdata/example1/Input/veg.in index 51e67b31..b08f58af 100755 --- a/inst/extdata/example1/Input/veg.in +++ b/inst/extdata/example1/Input/veg.in @@ -6,8 +6,11 @@ # USER: Most of the other values in this file are parameters that # describe the four available vegetation types and should not be -# modified unless a vegetation type itself is altered. - +# modified unless a vegetation type itself is altered. + +#---- Select method for vegetation parameters +0 # 0 - Read in the values from file + # 1 - Estimate fixed vegetation composition (fractional cover) from long-term climate conditions #---- Composition of vegetation type components (0-1; must add up to 1) # Grasses Shrubs Trees Forbs BareGround diff --git a/man/sw_Cheatgrass_ClimVar.Rd b/man/sw_Cheatgrass_ClimVar.Rd index 27cf5f59..bd583c41 100644 --- a/man/sw_Cheatgrass_ClimVar.Rd +++ b/man/sw_Cheatgrass_ClimVar.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sw_Miscellaneous_Functions.R +% Please edit documentation in R/rSOILWAT2_deprecated.R \name{sw_Cheatgrass_ClimVar} \alias{sw_Cheatgrass_ClimVar} \title{Calculate climate variables required to estimate percent cheatgrass cover diff --git a/man/sw_dailyC4_TempVar.Rd b/man/sw_dailyC4_TempVar.Rd index ef998b55..a7e1031b 100644 --- a/man/sw_dailyC4_TempVar.Rd +++ b/man/sw_dailyC4_TempVar.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sw_Miscellaneous_Functions.R +% Please edit documentation in R/rSOILWAT2_deprecated.R \name{sw_dailyC4_TempVar} \alias{sw_dailyC4_TempVar} \title{Calculate variables required to estimate percent C4 species in North America} diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 72be4ba3..a0134087 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 72be4ba34f4ed4433342993eff6b213c81f5dbc5 +Subproject commit a0134087b6ecc6c6d468b8bc05847fe2a4d529f4 diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 404916792aaee04a05cdad88dae9f3b88869b1c6..59bf88d83687d317a6da68b1060c2844eb84bc45 100644 GIT binary patch delta 4848 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 diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index f95976c74eca399b114579106da7972cb05d5c1c..1ee844d369dfe8ea8a8a6d63ee720367ba29bc13 100644 GIT binary patch literal 12860 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 delta 5091 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 diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index 252b98b01d510de1b2ea35240362edad83143f84..d5c7af399183b8fd727b64ca7abfe2fc3fab9391 100644 GIT binary patch literal 5562 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 delta 5278 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 From dca7d2ac531aff37c930f7cf6c74eef837ea3bf4 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 2 Sep 2022 13:55:22 -0700 Subject: [PATCH 125/238] New `sw_verbosity()` and `sw_quiet()` functions - Created new `sw_quiet()` function to silence/unsilence warnings/notes in SOILWAT2 - Created `sw_verbosity()` to call `sw_quiet()` from the R side - These functions are taken from the "feature_swrc" branch - Moved `expect_warning()` test and `sw_verbosity()` is used to allow warnings --- NAMESPACE | 1 + R/Rsw.R | 10 ++++++++++ src/SW_R_init.c | 2 ++ src/SW_R_lib.c | 27 +++++++++++++++++++++++++++ tests/testthat/test_Vegetation.R | 31 ++++++++++++++++++------------- 5 files changed, 58 insertions(+), 13 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 4e85888c..a2ad89f8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -108,6 +108,7 @@ export(sw_inputData) export(sw_inputDataFromFiles) export(sw_out_flags) export(sw_outputData) +export(sw_verbosity) export(update_biomass) export(update_requested_years) exportClasses(swCarbon) diff --git a/R/Rsw.R b/R/Rsw.R index ec6ce946..ecebb90c 100644 --- a/R/Rsw.R +++ b/R/Rsw.R @@ -35,6 +35,16 @@ sw_args <- function(dir, files.in, echo, quiet) { +#' Turn on/off `SOILWAT2` notes and warnings +#' +#' @param quiet A logical value. +#' @return The previous logical value. +#' +#' @export +sw_verbosity <- function(verbose = TRUE) { + invisible(!.Call(C_sw_quiet, !as.logical(verbose))) +} + #' Execute a \pkg{rSOILWAT2} simulation run #' #' Run the simulation and get the output data. Executes the \pkg{SOILWAT2} diff --git a/src/SW_R_init.c b/src/SW_R_init.c index bfa6412e..64dc3d24 100644 --- a/src/SW_R_init.c +++ b/src/SW_R_init.c @@ -16,6 +16,7 @@ extern SEXP rSW2_estimate_PotNatVeg_composition(SEXP, SEXP, SEXP, SEXP,SEXP, SEX SEXP,SEXP, SEXP, SEXP, SEXP,SEXP, SEXP, SEXP, SEXP,SEXP, SEXP); extern SEXP rSW2_calc_SiteClimate(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP sw_quiet(SEXP); static const R_CallMethodDef CallEntries[] = { {"start", (DL_FUNC) &start, 4}, @@ -24,6 +25,7 @@ static const R_CallMethodDef CallEntries[] = { {"onGetOutput", (DL_FUNC) &onGetOutput, 1}, {"rSW2_processAllWeather", (DL_FUNC) &rSW2_processAllWeather, 2}, {"sw_consts", (DL_FUNC) &sw_consts, 0}, + {"sw_quiet", (DL_FUNC) &sw_quiet, 1}, {"rSW2_estimate_PotNatVeg_composition", (DL_FUNC) &rSW2_estimate_PotNatVeg_composition, 18}, {"rSW2_calc_SiteClimate", (DL_FUNC) &rSW2_calc_SiteClimate, 6}, {NULL, NULL, 0} diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index bdec279c..573cb07f 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -54,6 +54,7 @@ Bool bWeatherList; /* Local Variables */ /* --------------------------------------------------- */ static SEXP Rlogfile; +static Bool current_sw_quiet = swFALSE; @@ -61,6 +62,32 @@ static SEXP Rlogfile; /* Global Function Definitions */ /* --------------------------------------------------- */ +/** + * Turn on/off `SOILWAT2` messages including errors, notes, and warnings + * + * @param verbose A logical value. + * @return The previous logical value + */ +SEXP sw_quiet(SEXP quiet) { + SEXP prev_quiet; + + PROTECT(prev_quiet = NEW_LOGICAL(1)); + LOGICAL_POINTER(prev_quiet)[0] = current_sw_quiet; + + if(LOGICAL(coerceVector(quiet, LGLSXP))[0]) { + // tell `LogError()` that R should NOT print messages to the console + logfp = NULL; + current_sw_quiet = swTRUE; + } else { + // tell `LogError()` that R should print messages to the console + logfp = (FILE *) swTRUE; // any non-NULL file pointer + current_sw_quiet = swFALSE; + } + + UNPROTECT(1); + return prev_quiet; +} + /** * Determines if a constant in the Parton equation 2.21 is invalid and would * thus cause extreme soil temperature values (see SW_Flow_lib.c ~1770) diff --git a/tests/testthat/test_Vegetation.R b/tests/testthat/test_Vegetation.R index d6fc4eec..8261bb93 100644 --- a/tests/testthat/test_Vegetation.R +++ b/tests/testthat/test_Vegetation.R @@ -250,19 +250,6 @@ test_that("Vegetation: estimate land cover composition", { ) ) - # converted from error into warning: - # (iii) cover to estimate is 0, fixed types are less than 1, and bare-ground - # is fixed - expect_warning( - estimate_PotNatVeg_composition( - MAP_mm = 900, - MAT_C = -10, - mean_monthly_ppt_mm = c(0, 0, rep(100, 9), 0), - mean_monthly_Temp_C = rep(-10, 12), - fill_empty_with_BareGround = FALSE - ) - ) - # The last errors are avoided if `fill_empty_with_BareGround = TRUE` # and bare-ground is not fixed; we get 100% bare-ground cover expect_silent( @@ -284,6 +271,24 @@ test_that("Vegetation: estimate land cover composition", { expect_pnv(pnv[1:2]) expect_equivalent(pnv[["Rel_Abundance_L0"]][ibar], 1) + + # Make sure `SOILWAT2` throws a warning that R, we use `sw_verbosity()` + # to do that + prev_quiet <- sw_verbosity(TRUE) + + # Expecting warning because MAT_C is outside of formulas domain + expect_warning( + estimate_PotNatVeg_composition( + MAP_mm = 900, + MAT_C = -10, + mean_monthly_ppt_mm = c(0, 0, rep(100, 9), 0), + mean_monthly_Temp_C = rep(-10, 12), + fill_empty_with_BareGround = FALSE + ) + ) + + # Undo what the previous call to `sw_verbosity()` did + sw_verbosity(prev_quiet) }) From da3901896ce43db72fb4f29acc7755c572a74dd9 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Fri, 2 Sep 2022 13:59:38 -0700 Subject: [PATCH 126/238] Fixed bugs in `rSW2_estimate_PotNatVeg_composition()` - Corrected values in "inputValue" indices - Bool's now use `asLogica()` and ternary to get correct boolean value --- src/rSW_VegProd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index 03eb7b91..35385a05 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -655,8 +655,8 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont double Trees_Fraction_D = ISNAN(asReal(Trees_Fraction)) ? 0.0 : asReal(Trees_Fraction); double BareGround_Fraction_D = ISNAN(asReal(BareGround_Fraction)) ? 0.0 : asReal(BareGround_Fraction); - double inputValues_D[8] = {Succulents_Fraction_D, Annuals_Fraction_D, C4_Fraction_D, - C3_Fraction_D, Shrubs_Fraction_D, Forbs_Fraction_D, Trees_Fraction_D, BareGround_Fraction_D}; + double inputValues_D[8] = {Succulents_Fraction_D, Forbs_Fraction_D, C3_Fraction_D, + C4_Fraction_D, Annuals_Fraction_D, Shrubs_Fraction_D, Trees_Fraction_D, BareGround_Fraction_D}; char *RelAbundanceL0Names[] = {"Succulents", "Forbs", "Grasses_C3", "Grasses_C4", "Grasses_Annuals", "Shrubs", "Trees", "BareGround"}; @@ -667,8 +667,9 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont // "inter_" meaning the intermediate R -> C conversion int index; - Bool final_fill_empty_with_BareGround = (Bool) LOGICAL(fill_empty_with_BareGround), - final_warn_extrapolation = (Bool) LOGICAL(warn_extrapolation), final_isNorth = (Bool) LOGICAL(isNorth); + Bool final_fill_empty_with_BareGround = (Bool) asLogical(fill_empty_with_BareGround) ? swTRUE : swFALSE, + final_warn_extrapolation = (Bool) asLogical(warn_extrapolation) ? swTRUE : swFALSE, + final_isNorth = (Bool) asLogical(isNorth) ? swTRUE : swFALSE; SEXP cRelAbL1Names, cRelAbL0Names, cfinalNames, cgrasses, final_RelAbundanceL1, final_RelAbundanceL0, final_grasses, res; From 1026e64059b4162856edbfcfd3803699bb82716e Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 4 Sep 2022 11:18:24 -0700 Subject: [PATCH 127/238] Updated documentation for C4 and Cheatgrass functions --- man/sw_Cheatgrass_ClimVar.Rd | 2 +- man/sw_dailyC4_TempVar.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/man/sw_Cheatgrass_ClimVar.Rd b/man/sw_Cheatgrass_ClimVar.Rd index 27cf5f59..bd583c41 100644 --- a/man/sw_Cheatgrass_ClimVar.Rd +++ b/man/sw_Cheatgrass_ClimVar.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sw_Miscellaneous_Functions.R +% Please edit documentation in R/rSOILWAT2_deprecated.R \name{sw_Cheatgrass_ClimVar} \alias{sw_Cheatgrass_ClimVar} \title{Calculate climate variables required to estimate percent cheatgrass cover diff --git a/man/sw_dailyC4_TempVar.Rd b/man/sw_dailyC4_TempVar.Rd index ef998b55..a7e1031b 100644 --- a/man/sw_dailyC4_TempVar.Rd +++ b/man/sw_dailyC4_TempVar.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sw_Miscellaneous_Functions.R +% Please edit documentation in R/rSOILWAT2_deprecated.R \name{sw_dailyC4_TempVar} \alias{sw_dailyC4_TempVar} \title{Calculate variables required to estimate percent C4 species in North America} From bf26a196422a758e92bb7ef90da08ee548d4738d Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 4 Sep 2022 11:19:46 -0700 Subject: [PATCH 128/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 87e94cb1..39195947 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 87e94cb18e7e1e5e6b845ccbdb64c6baba28d90f +Subproject commit 391959476a73727aef77ad65518df30a67669256 From 94d212007bb60c2e2f3339efd2dd0e87872f2c2e Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 4 Sep 2022 11:20:34 -0700 Subject: [PATCH 129/238] Made format in `calc_SiteClimate` lintr acceptable --- R/sw_Miscellaneous_Functions.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sw_Miscellaneous_Functions.R b/R/sw_Miscellaneous_Functions.R index 8b2c52fb..480bd38b 100644 --- a/R/sw_Miscellaneous_Functions.R +++ b/R/sw_Miscellaneous_Functions.R @@ -96,10 +96,10 @@ calc_SiteClimate <- function(weatherList, year.start = NA, year.end = NA, latitude ) - res[["dailyTempMin"]] <- if(do_C4vars) x[, "Tmin_C"] else NA - res[["dailyTempMean"]] <- if(do_C4vars) Tmean_C else NA - res[["dailyC4vars"]] <- if(do_C4vars) res[["dailyC4vars"]] else NA - res[["Cheatgrass_ClimVars"]] <- if(do_Cheatgrass_ClimVars) + res[["dailyTempMin"]] <- if (do_C4vars) x[, "Tmin_C"] else NA + res[["dailyTempMean"]] <- if (do_C4vars) Tmean_C else NA + res[["dailyC4vars"]] <- if (do_C4vars) res[["dailyC4vars"]] else NA + res[["Cheatgrass_ClimVars"]] <- if (do_Cheatgrass_ClimVars) res[["Cheatgrass_ClimVars"]] else NA res From 4bdf23b9cba7de91010a2f95a9c4d73a58ec4b75 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Mon, 12 Sep 2022 01:25:49 -0700 Subject: [PATCH 130/238] Updated submodule and variable names --- src/SOILWAT2 | 2 +- src/rSW_Weather.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 39195947..cf58f233 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 391959476a73727aef77ad65518df30a67669256 +Subproject commit cf58f2335e2472cd773099217065f4a7316519f5 diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 1f7aea75..1d4e62be 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -558,7 +558,7 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, // Set C4Variables and Cheatgrass values - REAL(C4Variables)[0] = climateAverages.minTempJuly_C; + REAL(C4Variables)[0] = climateAverages.minTemp7thMon_C; REAL(C4Variables)[1] = climateAverages.frostFree_days; REAL(C4Variables)[2] = climateAverages.ddAbove65F_degday; @@ -566,9 +566,9 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, REAL(C4Variables)[4] = climateAverages.sdC4[1]; REAL(C4Variables)[5] = climateAverages.sdC4[2]; - REAL(Cheatgrass)[0] = climateAverages.PPTJuly_mm; + REAL(Cheatgrass)[0] = climateAverages.PPT7thMon_mm; REAL(Cheatgrass)[1] = climateAverages.meanTempDriestQtr_C; - REAL(Cheatgrass)[2] = climateAverages.minTempFeb_C; + REAL(Cheatgrass)[2] = climateAverages.minTemp2ndMon_C; REAL(Cheatgrass)[3] = climateAverages.sdCheatgrass[0]; REAL(Cheatgrass)[4] = climateAverages.sdCheatgrass[1]; From 9511cd97ba9e05277c1c778bd03af015d62a15e8 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 19 Sep 2022 15:32:22 -0600 Subject: [PATCH 131/238] SOILWAT2 updated to latest commit in branch feature_veg_estimation - required for updated variable names --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index a0134087..d4765a68 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit a0134087b6ecc6c6d468b8bc05847fe2a4d529f4 +Subproject commit d4765a68054510d77e8de1559bae0e6f940fc77d From 59cb7b3911ca2b43e72d2ed4dda29329d7f7833b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 19 Sep 2022 18:30:32 -0600 Subject: [PATCH 132/238] Demo vignette more robust against failed DayMet weather - if downloading weather data from DayMet failed, then the available years covered 1980 to 2010 instead of the expected 1980 to 2019 -> adjust if needed --- vignettes/rSOILWAT2_demo.Rmd | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index e1079224..c05cbcfe 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -272,6 +272,12 @@ You may organize weather data in a variety of ways: # Check that weather data is well-formed stopifnot(rSOILWAT2::dbW_check_weatherData(wdata)) + + } else { + # Fix simulation years to weather data that we have at hand + rSOILWAT2::swYears_EndYear(sw_in) <- max( + rSOILWAT2::get_years_from_weatherData(wdata) + ) } } ``` From f70c281cfd14a56f4f90aee44c2612104da217c0 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 26 Sep 2022 10:21:41 -0400 Subject: [PATCH 133/238] Update to latest SOILWAT2 on branch feature_veg_estimation --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index d4765a68..93dd0723 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit d4765a68054510d77e8de1559bae0e6f940fc77d +Subproject commit 93dd0723524519dbd70c40d6406b98ea270b1a1f From 73f5105d9c055792858dfe9a6e390f7e4210e328 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 26 Sep 2022 10:22:14 -0400 Subject: [PATCH 134/238] Switch to roxygen v7.2.1 & update documentation objects --- DESCRIPTION | 2 +- man/sw_verbosity.Rd | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 man/sw_verbosity.Rd diff --git a/DESCRIPTION b/DESCRIPTION index cb486f49..3e079139 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -45,7 +45,7 @@ License: GPL-3 URL: https://github.com/DrylandEcology/rSOILWAT2 BugReports: https://github.com/DrylandEcology/rSOILWAT2/issues Encoding: UTF-8 -RoxygenNote: 7.1.2 +RoxygenNote: 7.2.1 LazyData: true Language: en-US VignetteBuilder: knitr diff --git a/man/sw_verbosity.Rd b/man/sw_verbosity.Rd new file mode 100644 index 00000000..0669e4ed --- /dev/null +++ b/man/sw_verbosity.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Rsw.R +\name{sw_verbosity} +\alias{sw_verbosity} +\title{Turn on/off `SOILWAT2` notes and warnings} +\usage{ +sw_verbosity(verbose = TRUE) +} +\arguments{ +\item{quiet}{A logical value.} +} +\value{ +The previous logical value. +} +\description{ +Turn on/off `SOILWAT2` notes and warnings +} From 000eff5dc936b53a4f8c2d14b58d511af8200e85 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 26 Sep 2022 10:25:17 -0400 Subject: [PATCH 135/238] Fix vignette "demo": run `sw_exec()` quietly - warning messages from C-level SOILWAT2 caused the vignette knitting to crash with cryptic latex errors -> quiet those messages and vignette knits without errors --- .gitignore | 2 ++ vignettes/rSOILWAT2_demo.Rmd | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0886c41b..5bea2356 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,5 @@ doc # Locally knitted vignettes vignettes/*.pdf vignettes/*.html +/doc/ +/Meta/ diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index e1079224..ab51cbf2 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -24,6 +24,9 @@ editor_options: --- \pagebreak +```{r, include=FALSE} +options(tinytex.verbose = TRUE) +``` # General setup, installation, and R recap @@ -617,9 +620,18 @@ You may organize weather data in a variety of ways: ## Run SOILWAT2 for prepared site +Note: Knitting vignette crashes with C-level messages -> run quietly ```{r, run_site} - sw_out <- rSOILWAT2::sw_exec(inputData = sw_in, weatherList = wdata) - sw_out2 <- rSOILWAT2::sw_exec(inputData = sw_in2, weatherList = wdata) + sw_out <- rSOILWAT2::sw_exec( + inputData = sw_in, + weatherList = wdata, + quiet = TRUE + ) + sw_out2 <- rSOILWAT2::sw_exec( + inputData = sw_in2, + weatherList = wdata, + quiet = TRUE + ) ``` From 148e5428d3ced2827222dcd33aa6af8d3c846580 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 26 Sep 2022 11:34:39 -0400 Subject: [PATCH 136/238] Fix `estimate_PotNatVeg_composition()`: coerce to correct types - `estimate_PotNatVeg_composition()`: call `C_rSW2_estimate_PotNatVeg_composition()` with correctly coerced arguments * fractions coerced to numeric/double * flags coerced to logical * argument `dailyC4vars` is expected to be either NULL or a numeric/double vector - `C_rSW2_estimate_PotNatVeg_composition()`: coerce `dailyC4vars` to numeric/double vector if not NULL -> fixed errors such as "Error in rSOILWAT2::estimate_PotNatVeg_composition(MAP_mm = 10 * clim[["MAP_cm"]], : REAL() can only be applied to a 'numeric', not a 'logical'" --- R/sw_Vegetation.R | 49 +++++++++++++++++++++++++---------------------- src/rSW_VegProd.c | 5 ++++- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/R/sw_Vegetation.R b/R/sw_Vegetation.R index dcdd69c8..577fd110 100644 --- a/R/sw_Vegetation.R +++ b/R/sw_Vegetation.R @@ -185,7 +185,6 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, fill_empty_with_BareGround = TRUE, warn_extrapolation = TRUE) { - res <- .Call(C_rSW2_estimate_PotNatVeg_composition, MAP_mm, MAT_C, @@ -193,53 +192,57 @@ estimate_PotNatVeg_composition <- function(MAP_mm, MAT_C, mean_monthly_Temp_C, shrub_limit, if (fix_sumgrasses) { - SumGrasses_Fraction + as.numeric(SumGrasses_Fraction) + } else { + NA_real_ + }, + as.logical(fill_empty_with_BareGround), + as.logical(warn_extrapolation), + if (is.null(dailyC4vars) || anyNA(dailyC4vars[1:3])) { + NULL } else { - NA + as.numeric(dailyC4vars[1:3]) }, - fill_empty_with_BareGround, - warn_extrapolation, - dailyC4vars, - isNorth, + as.logical(isNorth), if (fix_succulents) { - Succulents_Fraction + as.numeric(Succulents_Fraction) } else { - NA + NA_real_ }, if (fix_annuals) { - Annuals_Fraction + as.numeric(Annuals_Fraction) } else { - NA + NA_real_ }, if (fix_C4grasses) { - C4_Fraction + as.numeric(C4_Fraction) } else { - NA + NA_real_ }, if (fix_C3grasses) { - C3_Fraction + as.numeric(C3_Fraction) } else { - NA + NA_real_ }, if (fix_shrubs) { - Shrubs_Fraction + as.numeric(Shrubs_Fraction) } else { - NA + NA_real_ }, if (fix_forbs) { - Forbs_Fraction + as.numeric(Forbs_Fraction) } else { - NA + NA_real_ }, if (fix_trees) { - Trees_Fraction + as.numeric(Trees_Fraction) } else { - NA + NA_real_ }, if (fix_BareGround) { - BareGround_Fraction + as.numeric(BareGround_Fraction) } else { - NA + NA_real_ } ) diff --git a/src/rSW_VegProd.c b/src/rSW_VegProd.c index 35385a05..67d00be3 100644 --- a/src/rSW_VegProd.c +++ b/src/rSW_VegProd.c @@ -703,11 +703,14 @@ SEXP rSW2_estimate_PotNatVeg_composition(SEXP MAP_mm, SEXP MAT_C, SEXP mean_mont final_MonTemp_C[index] = REAL(mean_monthly_Temp_C)[index]; } - // Check if dailyC4vars is not NULL + // Check if dailyC4vars is not NULL and assume that not NA/NAN if(!isNull(dailyC4vars)) { + // Coerce `dailyC4vars` to numeric (double) + dailyC4vars = PROTECT(coerceVector(dailyC4vars, REALSXP)); C4Variables[0] = REAL(dailyC4vars)[0]; C4Variables[1] = REAL(dailyC4vars)[1]; C4Variables[2] = REAL(dailyC4vars)[2]; + UNPROTECT(1); } else { C4Variables[0] = SW_MISSING; C4Variables[1] = SW_MISSING; From 230afca2f1390976421c8fc6ab7c9dd177cd5447 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 01:21:08 -0700 Subject: [PATCH 137/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index eefe749f..80d9478e 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit eefe749fca9107249c0a14d0f924d40c8e4dd60f +Subproject commit 80d9478e49f9f955760d3367de7b191abba65394 From 21b7bae5f7808a2a4e8ec264f23ffb7354c892ae Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 02:03:45 -0700 Subject: [PATCH 138/238] Updated submodule and example input --- inst/extdata/example1/Input/weathsetup.in | 7 ++++++- src/SOILWAT2 | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/inst/extdata/example1/Input/weathsetup.in b/inst/extdata/example1/Input/weathsetup.in index d2fc3834..3eeedd42 100755 --- a/inst/extdata/example1/Input/weathsetup.in +++ b/inst/extdata/example1/Input/weathsetup.in @@ -6,11 +6,16 @@ 0.0 # runoff/runon of snowmelt water (% per snowmelt event): > 0 is runoff, < 0 is runon -#--- Activate/deactivate weather generator / historical daily weather inputs +#--- Activate/deactivate weather generator 0 # 0 = use historical data only # 1 = use weather generator for (partially) missing weather inputs # 2 = use weather generator for all weather (don't check weather inputs) # 3 = impute missing temperature with LOCF and missing precipitation as 0 + +7 # Seed random number generator for weather generator (only used if SOILWAT2) + # (seed with 0 to use current time) + +#--- Historical daily weather inputs -1 # first year to begin historical weather # if -1, then use first year of simulation (see `years.in`) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 93dd0723..1e23c4a3 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 93dd0723524519dbd70c40d6406b98ea270b1a1f +Subproject commit 1e23c4a3486287183aacdffb6c6ae5bffb949726 From 6326daecd103669898763999bbb78c4918bac03d Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 02:05:41 -0700 Subject: [PATCH 139/238] Removed whitespace in rSOILWAT2_demo.Rmd --- vignettes/rSOILWAT2_demo.Rmd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index ab51cbf2..345d8d1c 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -623,13 +623,13 @@ You may organize weather data in a variety of ways: Note: Knitting vignette crashes with C-level messages -> run quietly ```{r, run_site} sw_out <- rSOILWAT2::sw_exec( - inputData = sw_in, - weatherList = wdata, + inputData = sw_in, + weatherList = wdata, quiet = TRUE ) sw_out2 <- rSOILWAT2::sw_exec( - inputData = sw_in2, - weatherList = wdata, + inputData = sw_in2, + weatherList = wdata, quiet = TRUE ) ``` From 4a0ec883b1208a4f715b26584f3b1f865d0705f5 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 02:08:02 -0700 Subject: [PATCH 140/238] Removed initialization of "veg_method" in E_swProd.R --- R/E_swProd.R | 4 ---- 1 file changed, 4 deletions(-) diff --git a/R/E_swProd.R b/R/E_swProd.R index cc420bf2..67d7580b 100644 --- a/R/E_swProd.R +++ b/R/E_swProd.R @@ -164,10 +164,6 @@ setMethod("initialize", signature = "swProd", function(.Object, ...) { dots <- list(...) dns <- names(dots) - if (!("veg_method") %in% dns) { - def@veg_method[] <- NA_integer_ - } - # We don't set values for slot `Composition`; this is to prevent simulation # runs with accidentally incorrect values if (!("Composition" %in% dns)) { From a0505e45434e7e9758f70c9be15739d59096b124 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 02:26:26 -0700 Subject: [PATCH 141/238] Removed whitespace in rSOILWAT2_demo.Rmd --- vignettes/rSOILWAT2_demo.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index c05cbcfe..80d492e3 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -272,7 +272,7 @@ You may organize weather data in a variety of ways: # Check that weather data is well-formed stopifnot(rSOILWAT2::dbW_check_weatherData(wdata)) - + } else { # Fix simulation years to weather data that we have at hand rSOILWAT2::swYears_EndYear(sw_in) <- max( From 8d3da68ec948de7808f8eb6df2b111c57e43b06d Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Tue, 27 Sep 2022 02:41:48 -0700 Subject: [PATCH 142/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index cf58f233..82421880 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit cf58f2335e2472cd773099217065f4a7316519f5 +Subproject commit 82421880e2539006924fe9bf8f9dfb8e87276426 From 5b0d20ccbb70ddb61fe53b5f5e73431cbbd4f7f4 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 2 Oct 2022 22:50:15 -0700 Subject: [PATCH 143/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 82421880..488eb437 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 82421880e2539006924fe9bf8f9dfb8e87276426 +Subproject commit 488eb437778fee03d24fe6eddbc74dc99c9695c7 From 40d53c3eb512c9dd12c35f81699bfbcab166c0d1 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 2 Oct 2022 22:57:52 -0700 Subject: [PATCH 144/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 1e23c4a3..ba62768b 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 1e23c4a3486287183aacdffb6c6ae5bffb949726 +Subproject commit ba62768b65d3e3b0c23d50c55834acb6ad44db2f From e1c6b3aba214ae7355d99c4c0fa1bcd5efbb9588 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 2 Oct 2022 23:04:12 -0700 Subject: [PATCH 145/238] Fixed incorrect "isNorth" in intermediate C function - In SOILWAT, `calcSiteClimate()` takes in a Bool for "isNorthHem" and the intermediate C function `rSW2_calc_SiteClimate()` was sending in the latitude so it needed to be translated. - Outputs are now more correct for when called from the southern hemisphere --- src/rSW_Weather.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index 1d4e62be..39229715 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -494,6 +494,8 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, char *cnamesCheatgrass[] = {"Month7th_PPT_mm","MeanTemp_ofDriestQuarter_C","MinTemp_of2ndMonth_C", "Month7th_PPT_mm_SD","MeanTemp_ofDriestQuarter_C_SD","MinTemp_of2ndMonth_C_SD"}; + Bool isNorth = asReal(latitude) > 0.0; + monthlyMean = PROTECT(allocVector(REALSXP, MAX_MONTHS)); monthlyMax = PROTECT(allocVector(REALSXP, MAX_MONTHS)); monthlyMin = PROTECT(allocVector(REALSXP, MAX_MONTHS)); @@ -521,7 +523,7 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, allocDeallocClimateStructs(allocate, numYears, &climateOutput, &climateAverages); // Calculate climate variables - calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput, asReal(latitude)); + calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput, isNorth); // Average climate variables averageClimateAcrossYears(&climateOutput, numYears, &climateAverages); From f13f9266f65b256389062ed37cb816e737904cb8 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 3 Oct 2022 09:03:32 -0400 Subject: [PATCH 146/238] `calc_SiteClimate()`: calculate Tmean only if utilized - calculate average daily air temperature "Tmean" only if actually utilized, i.e., if C4 variables are requested "do_C4vars" --- R/sw_Miscellaneous_Functions.R | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/R/sw_Miscellaneous_Functions.R b/R/sw_Miscellaneous_Functions.R index 480bd38b..3286206f 100644 --- a/R/sw_Miscellaneous_Functions.R +++ b/R/sw_Miscellaneous_Functions.R @@ -84,9 +84,6 @@ calc_SiteClimate <- function(weatherList, year.start = NA, year.end = NA, "requested range of years") } - # Mean daily temperature - Tmean_C <- rowMeans(x[, c("Tmax_C", "Tmin_C")]) - res <- .Call(C_rSW2_calc_SiteClimate, weatherList, year.start, @@ -97,7 +94,11 @@ calc_SiteClimate <- function(weatherList, year.start = NA, year.end = NA, ) res[["dailyTempMin"]] <- if (do_C4vars) x[, "Tmin_C"] else NA - res[["dailyTempMean"]] <- if (do_C4vars) Tmean_C else NA + res[["dailyTempMean"]] <- if (do_C4vars) { + rowMeans(x[, c("Tmax_C", "Tmin_C"), drop = FALSE]) + } else { + NA + } res[["dailyC4vars"]] <- if (do_C4vars) res[["dailyC4vars"]] else NA res[["Cheatgrass_ClimVars"]] <- if (do_Cheatgrass_ClimVars) res[["Cheatgrass_ClimVars"]] else NA From 10f4a7d27e690466cd36b5249330c7d19187c1da Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 3 Oct 2022 09:05:24 -0400 Subject: [PATCH 147/238] Compare `calc_SiteClimate_old()` with updated `calc_SiteClimate() - several differences in output -> awaiting documented explanation - new version is about 20x faster than the old one --- R/rSOILWAT2_deprecated.R | 86 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index f3f8d631..37871e8e 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -337,7 +337,91 @@ sw_Cheatgrass_ClimVar <- function(monthlyPPT_cm, res } -# Old way of calculating climate variables +#' Old way of calculating climate variables (previous to `v6.0.0`) +#' +#' @examples +#' # Compare new and old function +#' wdata <- rSOILWAT2::get_WeatherHistory(rSOILWAT2::sw_exampleData) +#' +#' fun_clim <- function(fun) { +#' lapply( +#' c(-90, 90), +#' function(latitude) { +#' fun( +#' weatherList = wdata, +#' do_C4vars = TRUE, +#' do_Cheatgrass_ClimVars = TRUE, +#' latitude = latitude +#' ) +#' } +#' ) +#' } +#' +#' clim_old <- fun_clim(rSOILWAT2:::calc_SiteClimate_old) +#' clim_new <- fun_clim(rSOILWAT2::calc_SiteClimate) +#' +#' # Compare values assuming northern hemisphere: +#' all.equal(clim_old[[1]], clim_new[[1]]) +#' # MAT_C: Mean relative difference: 2.740629e-05 +#' +#' # Compare values assuming southern hemisphere: +#' all.equal(clim_old[[2]], clim_new[[2]]) +#' # MAT_C: Mean relative difference: 2.740629e-05 +#' # dailyC4vars: Mean relative difference: 0.05932631 +#' # Cheatgrass_ClimVars: Mean relative difference: 0.707922 +#' +#' # Difference in MAT: +#' cat( +#' "MAT_C(old) = ", clim_old[[2]][["MAT_C"]], +#' "vs. MAT_C(new) = ", clim_new[[2]][["MAT_C"]], +#' fill = TRUE +#' ) +#' # MAT_C(old) = 4.153896 vs. MAT_C(new) = 4.154009 +#' +#' # Differences in dailyC4vars: +#' print( +#' cbind( +#' old = clim_old[[2]][["dailyC4vars"]], +#' new = clim_new[[2]][["dailyC4vars"]] +#' ) +#' ) +#' # old new +#' # Month7th_NSadj_MinTemp_C -27.243871 -27.199333 +#' # LengthFreezeFreeGrowingPeriod_NSadj_Days 68.290323 72.600000 +#' # DegreeDaysAbove65F_NSadj_DaysC 20.684935 21.357533 +#' # Month7th_NSadj_MinTemp_C.sd 5.241726 5.325365 +#' # LengthFreezeFreeGrowingPeriod_NSadj_Days.sd 13.446669 9.586629 +#' # DegreeDaysAbove65F_NSadj_DaysC.sd 19.755513 19.550419 +#' +#' # Differences in Cheatgrass_ClimVars: +#' print( +#' cbind( +#' old = clim_old[[2]][["Cheatgrass_ClimVars"]], +#' new = clim_new[[2]][["Cheatgrass_ClimVars"]] +#' ) +#' ) +#' # old new +#' # Month7th_PPT_mm 35.729032 65.916667 +#' # MeanTemp_ofDriestQuarter_C 11.524859 11.401228 +#' # MinTemp_of2ndMonth_C -13.904600 6.545578 +#' # Month7th_PPT_mm_SD 21.598367 35.285409 +#' # MeanTemp_ofDriestQuarter_C_SD 7.171922 7.260852 +#' # MinTemp_of2ndMonth_C_SD 2.618434 1.639640 +#' +#' +#' # Benchmarks: new version is about 20x faster +#' bm <- microbenchmark::microbenchmark( +#' old = fun_clim(rSOILWAT2:::calc_SiteClimate_old), +#' new = fun_clim(rSOILWAT2::calc_SiteClimate) +#' ) +#' +#' # Unit: milliseconds +#' # expr min lq mean median uq max neval +#' # old 136.41207 149.689687 157.494004 154.114424 157.490437 277.3953 100 +#' # new 3.07084 3.422651 6.992061 3.694008 4.082199 119.7300 100 +#' +#' +#' @noRd calc_SiteClimate_old <- function(weatherList, year.start = NA, year.end = NA, do_C4vars = FALSE, do_Cheatgrass_ClimVars = FALSE, simTime2 = NULL, latitude = 90) { From 21add869ad00a533739a1fc60b117d3110c8bac7 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Mon, 3 Oct 2022 09:07:18 -0400 Subject: [PATCH 148/238] Compare `estimate_PotNatVeg_composition_old()` with updated `estimate_PotNatVeg_composition() - several differences in output -> awaiting documented explanation - new version is about 15x faster than the old one --- R/rSOILWAT2_deprecated.R | 67 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/R/rSOILWAT2_deprecated.R b/R/rSOILWAT2_deprecated.R index 68f30f03..94b4aa2f 100644 --- a/R/rSOILWAT2_deprecated.R +++ b/R/rSOILWAT2_deprecated.R @@ -445,7 +445,72 @@ calc_SiteClimate_old <- function(weatherList, year.start = NA, year.end = NA, ) } -# Old way of calculating esimates of natural vegetation cover +#' Old function to estimate natural vegetation cover (previous to `v6.0.0`) +#' +#' @examples +#' # Compare new and old function +#' wdata <- rSOILWAT2::get_WeatherHistory(rSOILWAT2::sw_exampleData) +#' clim1 <- calc_SiteClimate(weatherList = wdata, do_C4vars = TRUE) +#' +#' fun_pnvcov <- function(fun, clim) { +#' lapply( +#' c(90, -90), +#' function(latitude) { +#' fun( +#' MAP_mm = 10 * clim[["MAP_cm"]], +#' MAT_C = clim[["MAT_C"]], +#' mean_monthly_ppt_mm = 10 * clim[["meanMonthlyPPTcm"]], +#' mean_monthly_Temp_C = clim[["meanMonthlyTempC"]], +#' dailyC4vars = clim[["dailyC4vars"]], +#' isNorth = latitude >= 0 +#' ) +#' } +#' ) +#' } +#' +#' cov_old <- fun_pnvcov(rSOILWAT2:::estimate_PotNatVeg_composition_old, clim1) +#' cov_new <- fun_pnvcov(rSOILWAT2::estimate_PotNatVeg_composition, clim1) +#' +#' # Compare values assuming hemisphere: +#' all.equal(cov_old[[1]], cov_new[[1]]) +#' # TRUE +#' +#' # Compare values assuming southern hemisphere: +#' all.equal(cov_old[[2]], cov_new[[2]]) +#' # Rel_Abundance_L0: Mean relative difference: 0.3153386 +#' # Rel_Abundance_L1: Mean relative difference: 0.1424291 +#' # Grasses: Mean relative difference: 0.4614127 +#' +#' # Differences in Rel_Abundance_L0: +#' print( +#' cbind( +#' old = cov_old[[2]][["Rel_Abundance_L0"]], +#' new = cov_new[[2]][["Rel_Abundance_L0"]] +#' ) +#' ) +#' # old new +#' # Succulents 0.00000000 0.01915593 +#' # Forbs 0.22804606 0.26554610 +#' # Grasses_C3 0.52575060 0.61220536 +#' # Grasses_C4 0.15766932 0.00000000 +#' # Grasses_Annuals 0.00000000 0.00000000 +#' # Shrubs 0.08853402 0.10309262 +#' # Trees 0.00000000 0.00000000 +#' # BareGround 0.00000000 0.00000000 +#' +#' +#' # Benchmarks: new version is about 15x faster +#' bm <- microbenchmark::microbenchmark( +#' old = fun_pnvcov(rSOILWAT2:::estimate_PotNatVeg_composition_old, clim1), +#' new = fun_pnvcov(rSOILWAT2::estimate_PotNatVeg_composition, clim1) +#' ) +#' +#' # Unit: microseconds +#' # expr min lq mean median uq max neval +#' # old 450.820 467.7365 499.84000 503.8165 515.4235 711.459 100 +#' # new 25.467 28.3930 33.95104 31.4155 39.8005 54.414 100 +#' +#' @noRd estimate_PotNatVeg_composition_old <- function(MAP_mm, MAT_C, mean_monthly_ppt_mm, mean_monthly_Temp_C, dailyC4vars = NULL, isNorth = TRUE, shrub_limit = 0.2, From 8702baac46bb61e2a300973979ddc2377a797675 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 5 Oct 2022 15:46:44 -0400 Subject: [PATCH 149/238] Improved script "prepare_testInput_objects.R": ignore patch version changes - rSOILWAT2 expects that package version differences smaller than "minor" level are not relevant for simulation objects --> don't update test objects if they change by the version only at the "patch" level --- data-raw/prepare_testInput_objects.R | 61 ++++++++++++++++------------ 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/data-raw/prepare_testInput_objects.R b/data-raw/prepare_testInput_objects.R index b91b2adc..ebf9f336 100755 --- a/data-raw/prepare_testInput_objects.R +++ b/data-raw/prepare_testInput_objects.R @@ -95,6 +95,27 @@ for (k in seq_along(list_backups)) { #------ Helper functions ----- +compare_objects <- function(new, old) { + # Compare to previous version + res_cmp <- waldo::compare(old, new) + + # Ignore "timestamp" + has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) + + # Ignore difference in version less than minor + has_version_diff <- rSOILWAT2::check_version( + new, + rSOILWAT2::get_version(old), + level = "minor" + ) + + list( + res_waldo = res_cmp, + resave = + length(res_cmp) > sum(has_timestamp_diff) + sum(has_version_diff) + ) +} + toggleWeatherGenerator <- function(path, activate = FALSE) { ftmp <- file.path(path, "Input", "weathsetup.in") fin <- readLines(ftmp) @@ -249,15 +270,11 @@ for (it in seq_along(tests)) { if (it == 1) { sw_exampleData <- sw_input - # Compare to previous version - res_cmp <- waldo::compare(rSOILWAT2::sw_exampleData, sw_exampleData) - - # Ignore "timestamp" - has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) + res_cmp <- compare_objects(sw_exampleData, old = rSOILWAT2::sw_exampleData) # Save default package data (if different from previous) - if (length(res_cmp) > sum(has_timestamp_diff)) { - print(res_cmp) + if (res_cmp[["resave"]]) { + print(res_cmp[["waldo_cmp"]]) message("Update default package data: 'sw_exampleData'") @@ -311,23 +328,20 @@ for (it in seq_along(tests)) { #--- Compare input to previous version slot(sw_input, "weatherHistory") <- list(new("swWeatherData")) - res_cmp <- waldo::compare( - readRDS( + res_cmp <- compare_objects( + sw_input, + old = readRDS( file.path( dir_backup, basename(dir_testdata), paste0("Ex", tests[it], "_input.rds") ) - ), - sw_input + ) ) - # Ignore "timestamp" - has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) - #--- Save input for unit testing (if different from previous) - if (length(res_cmp) > sum(has_timestamp_diff)) { - print(res_cmp) + if (res_cmp[["resave"]]) { + print(res_cmp[["waldo_cmp"]]) saveRDS( object = sw_input, @@ -348,23 +362,20 @@ for (it in seq_along(tests)) { ) #--- Compare ouput to previous version - res_cmp <- waldo::compare( - readRDS( + res_cmp <- compare_objects( + rdy, + old = readRDS( file.path( dir_backup, basename(dir_testdata), paste0("Ex", tests[it], "_output.rds") ) - ), - rdy + ) ) - # Ignore "timestamp" - has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) - # Save test output (if different from previous) - if (length(res_cmp) > sum(has_timestamp_diff)) { - print(res_cmp) + if (res_cmp[["resave"]]) { + print(res_cmp[["waldo_cmp"]]) saveRDS( object = rdy, From df69d9da57b2cc71d473ddd40fca297cd0a37645 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 5 Oct 2022 16:05:41 -0400 Subject: [PATCH 150/238] Update SOILWAT2 to "Isolate "allWeather" functionality from global variables" - update SOILWAT2 to commit 679226f03acfb8993b09fca3659ea2e141cce3a2 (2022-Oct-05) "Isolate "allWeather" functionality from global variables" - updated "weathsetup.in" --- inst/extdata/example1/Input/weathsetup.in | 5 +---- src/SOILWAT2 | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/inst/extdata/example1/Input/weathsetup.in b/inst/extdata/example1/Input/weathsetup.in index f663d216..c463e31e 100755 --- a/inst/extdata/example1/Input/weathsetup.in +++ b/inst/extdata/example1/Input/weathsetup.in @@ -10,14 +10,11 @@ 0 # 0 = use historical data only # 1 = use weather generator for (partially) missing weather inputs # 2 = use weather generator for all weather (don't check weather inputs) + # 3 = impute missing temperature with LOCF and missing precipitation as 0 7 # Seed random number generator for weather generator (only used if SOILWAT2) # (seed with 0 to use current time) -#--- Historical daily weather inputs --1 # first year to begin historical weather - # if -1, then use first year of simulation (see `years.in`) - #--- Monthly scaling parameters: # Month 1 = January, Month 2 = February, etc. diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 80d9478e..679226f0 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 80d9478e49f9f955760d3367de7b191abba65394 +Subproject commit 679226f03acfb8993b09fca3659ea2e141cce3a2 From b9abb57e2db92fdcb22cd87e7ce73bf452fd1b80 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Wed, 5 Oct 2022 16:11:32 -0400 Subject: [PATCH 151/238] Reflect changes from SOILWAT2 "Isolate "allWeather" functionality from global variables" - `start()`, `onGetInputDataFromFiles()`, and `rSW2_processAllWeather()` are now calling `SW_WTH_finalize_all_weather()` - deprecated "FirstYear_Historical" (but kept in rSOILWAT2 for easier backwards compatbility) - `onGet_WTH_DATA()` and `onGet_WTH_DATA_YEAR()` now use new `SW_Weather.startYear` to index weather data - `onSet_WTH_DATA()` now sets `SW_Weather.startYear` and mirrors other changes in `SW_WTH_read()` to accommodate code changes - `rSW2_setAllWeather()` no longer generates missing values and applies monthly scaling parameters (see changes to `readAllWeather()` and new `SW_WTH_finalize_all_weather()` --- R/D_swWeather.R | 8 ++- R/swWeatherGenerator.R | 1 - src/SW_R_lib.c | 21 +++++++- src/rSW_Weather.c | 95 +++++++++++++++++------------------- vignettes/rSOILWAT2_demo.Rmd | 11 ----- 5 files changed, 72 insertions(+), 64 deletions(-) diff --git a/R/D_swWeather.R b/R/D_swWeather.R index ac68afaf..2087f7d3 100644 --- a/R/D_swWeather.R +++ b/R/D_swWeather.R @@ -185,7 +185,12 @@ setMethod("swWeather_DaysRunningAverage", "swWeather", #' @rdname swWeather-class #' @export setMethod("swWeather_FirstYearHistorical", "swWeather", - function(object) object@FirstYear_Historical) + function(object) { + .Deprecated("`FirstYear_Historical` is no longer used by SOILWAT2.") + object@FirstYear_Historical + } +) + #' @rdname swWeather-class #' @export @@ -230,6 +235,7 @@ setReplaceMethod("swWeather_DaysRunningAverage", signature = "swWeather", #' @export setReplaceMethod("swWeather_FirstYearHistorical", signature = "swWeather", function(object, value) { + .Deprecated("`FirstYear_Historical` is no longer used by SOILWAT2.") object@FirstYear_Historical <- as.integer(value) validObject(object) object diff --git a/R/swWeatherGenerator.R b/R/swWeatherGenerator.R index e429422b..313eb298 100644 --- a/R/swWeatherGenerator.R +++ b/R/swWeatherGenerator.R @@ -966,7 +966,6 @@ dbW_generateWeather <- function( sw_in <- rSOILWAT2::sw_exampleData # Set years - swWeather_FirstYearHistorical(sw_in) <- min(years) swYears_EndYear(sw_in) <- max(years) swYears_StartYear(sw_in) <- min(years) diff --git a/src/SW_R_lib.c b/src/SW_R_lib.c index bdec279c..ea9486b2 100644 --- a/src/SW_R_lib.c +++ b/src/SW_R_lib.c @@ -145,6 +145,12 @@ SEXP onGetInputDataFromFiles(SEXP inputOptions) { #endif rSW_CTL_obtain_inputs(TRUE); + // finalize daily weather + #ifdef RSWDEBUG + if (debug) swprintf(" finalize daily weather ...\n"); + #endif + SW_WTH_finalize_all_weather(); + // initialize simulation run (based on user inputs) #ifdef RSWDEBUG if (debug) swprintf(" init simulation run ...\n"); @@ -314,6 +320,12 @@ SEXP start(SEXP inputOptions, SEXP inputData, SEXP weatherList, SEXP quiet) { #endif rSW_CTL_obtain_inputs(useFiles); + // finalize daily weather + #ifdef RSWDEBUG + if (debug) swprintf(" finalize daily weather ...\n"); + #endif + SW_WTH_finalize_all_weather(); + // initialize simulation run (based on user inputs) #ifdef RSWDEBUG if (debug) swprintf(" init simulation run ..."); @@ -417,11 +429,18 @@ SEXP rSW2_processAllWeather(SEXP weatherList, SEXP inputData) { // Process weather data #ifdef RSWDEBUG - if (debug) swprintf("'rSW2_processAllWeather': process weather data."); + if (debug) swprintf("'rSW2_processAllWeather': process weather data"); #endif onSet_WTH_DATA(); + // Finalize daily weather (weather generator & monthly scaling) + #ifdef RSWDEBUG + if (debug) swprintf(" > finalize daily weather.\n"); + #endif + SW_WTH_finalize_all_weather(); + + // Return processed weather data PROTECT(res = onGet_WTH_DATA()); diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index cf13a88a..8654a01a 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -39,9 +39,12 @@ static char *MyFileName; static char *cSW_WTH_names[] = { - "UseSnow", "pct_SnowDrift", "pct_SnowRunoff", - "use_weathergenerator", "use_weathergenerator_only", - "FirstYear_Historical", + "UseSnow", + "pct_SnowDrift", + "pct_SnowRunoff", + "use_weathergenerator", + "use_weathergenerator_only", + "FirstYear_Historical", // removed from SOILWAT2; kept here for backwards compatibility "MonthlyScalingParams" }; @@ -56,7 +59,8 @@ static void rSW2_setAllWeather( SEXP listAllW, SW_WEATHER_HIST **allHist, int startYear, - unsigned int n_years + unsigned int n_years, + Bool use_weathergenerator_only ); @@ -102,7 +106,10 @@ SEXP onGet_SW_WTH_setup() { PROTECT(use_weathergenerator_only = NEW_LOGICAL(1)); LOGICAL_POINTER(use_weathergenerator_only)[0] = w->use_weathergenerator_only; PROTECT(yr_first = NEW_INTEGER(1)); + /* `SW_weather.yr` was removed from SOILWAT2: INTEGER_POINTER(yr_first)[0] = w->yr.first; + */ + INTEGER_POINTER(yr_first)[0] = SW_Weather.startYear; PROTECT(MonthlyScalingParams = allocMatrix(REALSXP, 12, nitems)); p_MonthlyValues = REAL(MonthlyScalingParams); @@ -145,11 +152,11 @@ SEXP onGet_SW_WTH_setup() { Called by `rSW_CTL_obtain_inputs()` if `from_files` is `FALSE`. */ void onSet_SW_WTH_setup(SEXP SW_WTH) { - int i, tmp; + int i; SW_WEATHER *w = &SW_Weather; SEXP use_snow, pct_snowdrift, pct_snowRunoff, - use_weathergenerator, use_weathergenerator_only, yr_first; + use_weathergenerator, use_weathergenerator_only; SEXP MonthlyScalingParams; RealD *p_MonthlyValues; @@ -170,9 +177,14 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { w->generateWeatherMethod = 2; } + /* `SW_weather.yr` was removed from SOILWAT2: + SEXP yr_first; + int tmp; + PROTECT(yr_first = GET_SLOT(SW_WTH, install(cSW_WTH_names[5]))); tmp = *INTEGER(yr_first); w->yr.first = (tmp < 0) ? SW_Model.startyr : yearto4digit(tmp); + */ PROTECT(MonthlyScalingParams = GET_SLOT(SW_WTH, install(cSW_WTH_names[6]))); p_MonthlyValues = REAL(MonthlyScalingParams); @@ -187,6 +199,7 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { SW_WeatherPrefix(w->name_prefix); + /* `SW_weather.yr` was removed from SOILWAT2: w->yr.last = SW_Model.endyr; w->yr.total = w->yr.last - w->yr.first + 1; @@ -200,8 +213,9 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { MyFileName, SW_Model.startyr, w->yr.first ); } + */ - UNPROTECT(7); + UNPROTECT(6); } @@ -212,22 +226,20 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { Called by `onGetInputDataFromFiles()` */ SEXP onGet_WTH_DATA(void) { - TimeInt year; + TimeInt year, yearIndex; SEXP WTH_DATA, WTH_DATA_names; char cYear[5]; - int n_yrs, i; - // number of years - n_yrs = SW_Model.endyr - SW_Model.startyr + 1; - PROTECT(WTH_DATA = allocVector(VECSXP, n_yrs)); - PROTECT(WTH_DATA_names = allocVector(STRSXP, n_yrs)); + PROTECT(WTH_DATA = allocVector(VECSXP, SW_Weather.n_years)); + PROTECT(WTH_DATA_names = allocVector(STRSXP, SW_Weather.n_years)); - for (year = SW_Model.startyr, i = 0; year <= SW_Model.endyr; year++, i++) { + for (yearIndex = 0; yearIndex < SW_Weather.n_years; yearIndex++) { + year = SW_Weather.startYear + yearIndex; sprintf(cYear, "%4d", year); - SET_STRING_ELT(WTH_DATA_names, i, mkChar(cYear)); + SET_STRING_ELT(WTH_DATA_names, yearIndex, mkChar(cYear)); - // copy values from SOILWAT2 variables to rSOILWAT2 S4 class object - SET_VECTOR_ELT(WTH_DATA, i, onGet_WTH_DATA_YEAR(year)); + // copy values from SOILWAT2 variables to rSOILWAT2 S4 class object + SET_VECTOR_ELT(WTH_DATA, yearIndex, onGet_WTH_DATA_YEAR(year)); } setAttrib(WTH_DATA, R_NamesSymbol, WTH_DATA_names); @@ -244,7 +256,7 @@ SEXP onGet_WTH_DATA(void) { Called by `onGet_WTH_DATA()` */ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { - int i,days; + int i, days, yearIndex; const int nitems = 4; SEXP swWeatherData; SEXP WeatherData; @@ -255,6 +267,7 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { SW_WEATHER *w = &SW_Weather; days = Time_get_lastdoy_y(year); + yearIndex = year - SW_Weather.startYear; PROTECT(swWeatherData = MAKE_CLASS("swWeatherData")); PROTECT(WeatherData = NEW_OBJECT(swWeatherData)); @@ -266,9 +279,9 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { p_Year = REAL(Year); for (i = 0; i < days; i++) { p_Year[i + days * 0] = (i + 1); - p_Year[i + days * 1] = w->allHist[year - SW_Model.startyr]->temp_max[i]; - p_Year[i + days * 2] = w->allHist[year - SW_Model.startyr]->temp_min[i]; - p_Year[i + days * 3] = w->allHist[year - SW_Model.startyr]->ppt[i]; + p_Year[i + days * 1] = w->allHist[yearIndex]->temp_max[i]; + p_Year[i + days * 2] = w->allHist[yearIndex]->temp_min[i]; + p_Year[i + days * 3] = w->allHist[yearIndex]->ppt[i]; } PROTECT(Year_names = allocVector(VECSXP, 2)); @@ -289,8 +302,7 @@ SEXP onGet_WTH_DATA_YEAR(TimeInt year) { /** - @brief Move all weather data from `rSOILWAT2` to `SOILWAT2`, impute - missing values (weather generator), and apply scaling parameters + @brief Move all weather data from `rSOILWAT2` to `SOILWAT2` Equivalent functionality to `SW_WTH_read()`with the difference that `SOILWAT2` `allHist` is filled with values that are @@ -315,13 +327,15 @@ void onSet_WTH_DATA(void) { // Deallocate (previous, if any) `allHist` // (using value of `SW_Weather.n_years` previously used to allocate) - deallocateAllWeather(); + // `SW_WTH_construct()` sets `n_years` to zero + deallocateAllWeather(&SW_Weather); - // Determine required size of new `allHist` + // Update number of years and first calendar year represented SW_Weather.n_years = SW_Model.endyr - SW_Model.startyr + 1; + SW_Weather.startYear = SW_Model.startyr; // Allocate new `allHist` (based on current `SW_Weather.n_years`) - allocateAllWeather(); + allocateAllWeather(&SW_Weather); // Equivalent to `readAllWeather()`: @@ -329,29 +343,9 @@ void onSet_WTH_DATA(void) { rSW2_setAllWeather( listAllWeather, SW_Weather.allHist, - SW_Model.startyr, - SW_Weather.n_years - ); - - - // Generate missing values - generateMissingWeather( - SW_Weather.allHist, - SW_Model.startyr, - SW_Weather.n_years, - SW_Weather.generateWeatherMethod, - 3 // optLOCF_nMax (TODO: make this user input) - ); - - - // Scale with monthly additive/multiplicative parameters - scaleAllWeather( - SW_Weather.allHist, - SW_Model.startyr, + SW_Weather.startYear, SW_Weather.n_years, - SW_Weather.scale_temp_max, - SW_Weather.scale_temp_min, - SW_Weather.scale_precip + SW_Weather.use_weathergenerator_only ); } @@ -362,7 +356,8 @@ static void rSW2_setAllWeather( SEXP listAllW, SW_WEATHER_HIST **allHist, int startYear, - unsigned int n_years + unsigned int n_years, + Bool use_weathergenerator_only ) { int nList, yearIndex, year, numDaysYear, day, doy, i, j; Bool weth_found; @@ -374,7 +369,7 @@ static void rSW2_setAllWeather( // Loop over years and move weather data to `SOILWAT2` `allHist` for (yearIndex = 0; yearIndex < n_years; yearIndex++) { - if (SW_Weather.use_weathergenerator_only) { + if (use_weathergenerator_only) { // Set values to missing for call to `generateMissingWeather()` _clear_hist_weather(allHist[yearIndex]); diff --git a/vignettes/rSOILWAT2_demo.Rmd b/vignettes/rSOILWAT2_demo.Rmd index 80d492e3..c316dbf6 100644 --- a/vignettes/rSOILWAT2_demo.Rmd +++ b/vignettes/rSOILWAT2_demo.Rmd @@ -283,17 +283,6 @@ You may organize weather data in a variety of ways: ``` -### Specify first year of observed weather data -```{r, wyr} - # `FirstYearHistorical` can be set to a negative value (the default), - # then the code will use the first simulation year. - # That is, the two lines below will produce identical simulations: - rSOILWAT2::swWeather_FirstYearHistorical(sw_in) <- - rSOILWAT2::swYears_StartYear(sw_in) - rSOILWAT2::swWeather_FirstYearHistorical(sw_in) <- -1 -``` - - ### Calculate site climate from daily values ```{r, siteclim} clim <- rSOILWAT2::calc_SiteClimate(weatherList = wdata, do_C4vars = TRUE) From 808efd819e32e1fed84a999a84784b0362fb5718 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 23 Oct 2022 21:46:15 -0700 Subject: [PATCH 152/238] Updated submodule --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 488eb437..ed3fd83a 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 488eb437778fee03d24fe6eddbc74dc99c9695c7 +Subproject commit ed3fd83a3f761952675fba2b7537313ea1f2edb1 From b5fb65ae889bab439ad6ceabad369f952998da09 Mon Sep 17 00:00:00 2001 From: Nicholas Persley Date: Sun, 23 Oct 2022 21:49:20 -0700 Subject: [PATCH 153/238] Updated weather variables and data - Accommodated R code to no longer look for old SOILWAT2 variable "yr" within SW_WEATHER - Added input to `deallocateAllWeather()` and `allocateAllWeather()` which previously did not take in any variables - Updated data to take changes into account --- data/sw_exampleData.rda | Bin 54036 -> 53999 bytes inst/extdata/example1/Input/veg.in | 1 - inst/extdata/example1/Input/weathsetup.in | 5 +- src/rSW_Weather.c | 21 +- tests/test_data/Ex1_input.rds | Bin 5547 -> 5546 bytes tests/test_data/Ex1_output.rds | Bin 57379 -> 57378 bytes tests/test_data/Ex2_input.rds | Bin 12848 -> 12849 bytes tests/test_data/Ex3_input.rds | Bin 5547 -> 5547 bytes tests/test_data/Ex3_output.rds | Bin 57378 -> 57378 bytes tests/test_data/Ex4_input.rds | Bin 5546 -> 5546 bytes tests/test_data/Ex4_output.rds | Bin 57378 -> 57378 bytes tests/test_data/Ex5_input.rds | Bin 5551 -> 5551 bytes tests/test_data/Ex5_output.rds | Bin 57372 -> 57372 bytes vignettes/rSOILWAT2_demo.log | 536 ++++++++++++++++++++++ 14 files changed, 547 insertions(+), 16 deletions(-) create mode 100644 vignettes/rSOILWAT2_demo.log diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 8ed3bfabfed3170eec2387418000f5830911d69b..11cc4edec18c78c6eb03052b3bf17050fa23536b 100644 GIT binary patch delta 53392 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 delta 53485 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 PROTECT(yr_first = NEW_INTEGER(1)); - INTEGER_POINTER(yr_first)[0] = w->yr.first; + INTEGER_POINTER(yr_first)[0] = w->startYear; PROTECT(MonthlyScalingParams = allocMatrix(REALSXP, 12, nitems)); p_MonthlyValues = REAL(MonthlyScalingParams); @@ -172,7 +172,7 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { PROTECT(yr_first = GET_SLOT(SW_WTH, install(cSW_WTH_names[5]))); tmp = *INTEGER(yr_first); - w->yr.first = (tmp < 0) ? SW_Model.startyr : yearto4digit(tmp); + w->startYear = (tmp < 0) ? SW_Model.startyr : yearto4digit(tmp); PROTECT(MonthlyScalingParams = GET_SLOT(SW_WTH, install(cSW_WTH_names[6]))); p_MonthlyValues = REAL(MonthlyScalingParams); @@ -187,17 +187,14 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { SW_WeatherPrefix(w->name_prefix); - w->yr.last = SW_Model.endyr; - w->yr.total = w->yr.last - w->yr.first + 1; - - if (SW_Weather.generateWeatherMethod != 2 && SW_Model.startyr < w->yr.first) { + if (SW_Weather.generateWeatherMethod != 2 && SW_Model.startyr < w->startYear) { LogError( logfp, LOGFATAL, "%s : Model year (%d) starts before weather files (%d)" " and weather generator turned off.\n" " Please synchronize the years or set up the weather generator files", - MyFileName, SW_Model.startyr, w->yr.first + MyFileName, SW_Model.startyr, w->startYear ); } @@ -306,6 +303,8 @@ void onSet_WTH_DATA(void) { SEXP listAllWeather; + SW_WEATHER *weather = &SW_Weather; + // Determine which `rSOILWAT2` list of `swWeatherData` we are using listAllWeather = bWeatherList ? WeatherList : @@ -314,13 +313,13 @@ void onSet_WTH_DATA(void) { // Deallocate (previous, if any) `allHist` // (using value of `SW_Weather.n_years` previously used to allocate) - deallocateAllWeather(); + deallocateAllWeather(weather); // Determine required size of new `allHist` SW_Weather.n_years = SW_Model.endyr - SW_Model.startyr + 1; // Allocate new `allHist` (based on current `SW_Weather.n_years`) - allocateAllWeather(); + allocateAllWeather(weather); // Equivalent to `readAllWeather()`: @@ -494,7 +493,7 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, char *cnamesCheatgrass[] = {"Month7th_PPT_mm","MeanTemp_ofDriestQuarter_C","MinTemp_of2ndMonth_C", "Month7th_PPT_mm_SD","MeanTemp_ofDriestQuarter_C_SD","MinTemp_of2ndMonth_C_SD"}; - Bool isNorth = asReal(latitude) > 0.0; + Bool inNorthHem = asReal(latitude) > 0.0; monthlyMean = PROTECT(allocVector(REALSXP, MAX_MONTHS)); monthlyMax = PROTECT(allocVector(REALSXP, MAX_MONTHS)); @@ -523,7 +522,7 @@ SEXP rSW2_calc_SiteClimate(SEXP weatherList, SEXP yearStart, SEXP yearEnd, allocDeallocClimateStructs(allocate, numYears, &climateOutput, &climateAverages); // Calculate climate variables - calcSiteClimate(allHist, numYears, asInteger(yearStart), &climateOutput, isNorth); + calcSiteClimate(allHist, numYears, asInteger(yearStart), inNorthHem, &climateOutput); // Average climate variables averageClimateAcrossYears(&climateOutput, numYears, &climateAverages); diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 404916792aaee04a05cdad88dae9f3b88869b1c6..c6f9145647e1f9732762dd59f618032ffaaf0c21 100644 GIT binary patch delta 4041 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 LC76>fhKJ|hzJoyC diff --git a/tests/test_data/Ex1_output.rds b/tests/test_data/Ex1_output.rds index 963fbfc1444a213242bca0c0ff16d88fc7326002..97b4397a92b9e3808c31914e05756cbc5b30b4e8 100644 GIT binary patch delta 56669 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 diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index f95976c74eca399b114579106da7972cb05d5c1c..e86350db50e9147011b74e8a90c2ac88e490a641 100644 GIT binary patch delta 12418 zcma*tbx@Si`zUac5|I*=ZV;6c=~@J&Bvzy(SCLS1I@CF&x|3C=c}TLKuD|zVn`Y_I zEOa{KGc@fTT8k`Q{{k-sraNdQ{Koi{hcFq8%- zPQHF;qDS>N_v=DdP=j!BGpp>`fQy&VHKeT(ltl_`yV*Z?+=D;~Rz zqBdjCSQ_l7mBpGzTYdcbh!lx)nY+TKqeE=PW61(wHs{7riX^J8-G`+}pQ6{Vj(Oz3 zO(`bIhE46|?Cc_Dw6wsjN|G%RgX9GY+i&MNpwYD75?p))#~~ki_20z~RD%0DKT{rS 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 FKL80b=z9PF diff --git a/tests/test_data/Ex3_input.rds b/tests/test_data/Ex3_input.rds index 84b8ebe4e0792c46ba18e2c23d6227c2372eed33..e5bace251ea9b400bbb0b5200161364ba7a41e46 100644 GIT binary patch delta 4864 zcmai#c{J2*-@xr#j5S*{Zo7~sM2!qd${Ld0h-_IV>mcT*vbR_!WMnrK$y$=IoG-VxX$^Wb6r)cRjTQ-K&Dz(-OPA9_CP=Z zEz~7vY@HoGIhEJq9D+bLr$O`cWK6AfeDB|gEmM{%s&f`o<}EY4u9Yw?{`QU>_w;0( z?bx-v@`NR-V521yww6y!dHoxK?u|eq(n@^mf`-n!A1vz3?dKsP+@P9J9pr0xW|`$H zf7^=T++v1l?m;t<0{>t&IUH3gA09p!XJL~wY*JToCBQ_J?{LdqUN;o~CbosF7;xlL zZ7OB|%IU^;VbVsco68TU$LY_3)SpbiZuNc z7;C^(`m@-DH)l5mGze_Z-gxP4QJ07LXi&QDWEXr*Ge(B1CL_cw+QHl8=WL?5NQ=9q zx?k}6ooHDLyoGXNy0K*}qWz_Bv}exxa8b+Yk}BbPDO)$N^-YV;>PBq+r4$u}>0v)K z`eC;7kDtE)QM|fhQ{y3A8zXaE5FL4Os=gyNdtCFJieH6rR)|UZJ>xFBoxP6JFL_d~ za=r`R3m?+N&o1p(xIdDq}@SJ4r~(?z_DT zt#}P63S54f>;25f!KbHEwI!p6fbHnKQcQVGKUl*v99%cl?li)QRkFuU7TF^|mE~Z> zO-I1|0ZB7Oh)1F^*CBdcL3ek#ZEEF0yq)Ssc*L%#Isa(h@=G`oE=}ScqQX}eX5`!^ zLZ@rD6AJTC)$OEO(E)7$<1Qpj`FFM{Yb5>&?QbcpA( zFJJx)eDJX>eXCXpTbt&;rh4?^LV^Frruy1$4=Gh8*2{a?p6%jC)}4%9RFwA|Dk0V_ zi$8zcD{4){jL_+SLwvRY&xo%V>{gGU>9>jWj+)OWO-UP2ZjJ{}WGqH_1`;gcF)Ep; zcJWCsY*>rc{+GoT`_u~l?OpuwsbHKQ9Mo9H3hVbN&|fy6{(T+&nN<@&LZ^d{+=tp3m)ONbiVL0UkN6(}} z42dy_BHwe^#)Z@8O878$f4Mj)T%QloxGSK`HqG41uFKoX7YQYT<}K&*J6hse;_k&E zS@&7?nPH$-P71dS!U@=C-r}U6C89ex&?EIW!yp?bpeTuXx8{6;A89pxqKZqM{6 zF-=gE)DGJcclXg>TSubmTiu%J zKDTA~Vc>be)ieWuEjsLAM~&1lh`$6o77IF*BAs6i9mE^L08W||=}#HK_-T5i-9c~y zU72K34CA4(kd6&%7~q&_kkvFpfcMaIP~#GgizZ8YGzdyo|}!$7ps!9OSe7Wb-^ z0l;!7JP6~UdH$~o7YSVjndgz}X7ptU8qDg^Ao0 zwip(DW*i%en<_+6AeznRbZFd%v*37964bL4FJj+(&PR=ha1I;`ik-?sIZjla2kbj) z;{M!#^`8LTR0U#A2b|^qLxSo>%=rlC0RA0t&VPdAK^>=_qSz6u=IuY$Jb<&$G5rT@ zbN_^8PVy?7>`8xqf$dwX>dwhy^>N8_hk-Iw2RQqu!ad3Kqc)Lw9%@YoezK zfP+(xl>wqciCZ18^0W2-Zrncu&CLl$gE=|T8k|xbI8Me%>OHg-=bu;jBfv+;&nltM za47)p$<@vzow|H4R~2W{#G7qHcv9e&XOh?fncQ3%asf8^OsiC7puc~4q;mMfa%+{~ z(E}MP^S)8C`og~T7i#{>#?<_*s~y3sA^Tl%?3Z)LJ|>b2pq~@Tn#`$un;pCVvcYOs zV#Is`(;v%FJdB_MF?Ge#TaUzC)drEVJ z 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 delta 4849 zcmai#XEfaVx`6elNd!SewCF7|(R=LZAqXRC5M9(T!k9msL`w`NdJxfjFVRNtqD6Ej zx@g0UKIQDQ&$;WaeZSoGto5vC{XYEG`+j;$MN38Fd4U?S-s+{<_WX;R{D@nH%&1LIg$P%Jz->+W8$12~= z$WGMc18xn>1^gZ(tU|jUm`uJ|&3l_sJ(@2yY7mG>bh`RTqx!yMFNosoa^hf;e!%jK zBYA6ii93dqrtLI-tLEjB80gBH`I|r$=Pf4QOP)(;YUH8nl}Odpv-sSc zo~1qI#}vc!D#2t0At{o+Je#i|y`tC(|i!(bvUg&+LaX5>+s9%U?Er z)-?g&di`Pt#mfocj{@3HdhXkdHHcMx#r(W$X=HN}}`22#4&?}uRXTM})KgrCd z_^~Wl=UF6^w?F>|^g+v%qaKdh_n1*U34? zfKuG@nI*`10?B2&bVf+p)V!hlpxiJWqW%5BZh5iGPbNKo%!t#-PhE*aTppSUv^@0D zS-D#*Ny0&ST|NR_`A{mVys3awM|YCY_votCb^D{KwgyxB{`r%v>>qb^$Dcp3&BsO- z0O1WuxlZXuS$3KHr4@Uc0<|e*H#pv{)?RK2suCUi%WI1!V4amQVu7JHOEd@@H+vyd zK&gr|AiQ1N0!`YBW^U;m71ZvG8%T5QH50XBtM+)h)n3Tr`NO{hq>TYGBO&lW$1$Jo zc7(Y^@og8aF2%rU=?wcr_1fE}XK{>xbbL57#IGL&@>`s%^DVhRI-!Zde#0M)?r^|M z+|@xb=g97?PhBb%`IUQqzXL1E8yoY+1gAs`ut{k~wv1Sc8$*#}7aM6IS4vl{0$fV_ z!^e|gy}fSt=WNThGsK7*#sTpFyhN4Z9Lvro4d&tuO(LRb! zOk3F3xlfbtTV|tVT)NU~?UK~OhTA&SQ8&G>p>Lxepk+||9g3lfVGy!IvIDXMs%7#; z@s1jo0FVt8ZG5 z$gTSfFvSaUABMNyIKIEGGjPR&DF`7sCLMr3hA|&AuL}=M#TW8$MT}&e@(e_BkEvxP zgel>yLL+lj>G5{k6C1;|<71Ci>F{D$`E9@PtuJHhs@L$qU98{uUv&eogvE@HX#f5vSwB|}ocXmAhD9nr(6lupTTTPh?yj2%aN&Vm+2fjcTg0b5ce8H^Ij z@K133=#&myGJxiP!x5d*X-fsLxs;1^x&}>CgX+eHin`dLfEN+pSx-YXU3tTXe1f&{}-Z_itjoD@j6Zs zeb|8{C#DV!Aoi(PNjnhNuiZg#U85oGLI_{ur8?{c7zpkN-D}+Bs(wg>GBpn%^z4gT z7*B)e#7a*f2w-zGVhk3#XTc2JyAyS^zr^Fv?H zz=TVPbno}8+th5&fKiK^YNNO8(kJTHdd74H?nIAd{2Rs+kkO6 zOHAK3-a_?PjgSF;$P6~4ij0t4tDnV3v&=HIow01H6FAQ;YgdvtlM^Q4JRdet!lObv ze{9(E2{?J^_6jjc$ThqAP( zXPB9YC<-B#_xRVvpB*RwSsP}j@4loD52Wo?s`w!IXa(tGRSEluz4vkieA*hqj8>5J z7y+YYXLQz+db@V()1c`mUUh|lS1Z(rBHBl{h09B}9qQ(kzowa{&$O~x_X@pzAB065 z(@Fx^`M1RFE;NJn%CNJ6ajV5I;fCU6KiM87tD! z<$pTul78N8_aOLSl;g!|WA7n$9jtK?mI(v8JtHNpaVJ;nrVsLGTg-${Z^ZK%U7BHO zx?#zSh&#=ZXAkHwYd$Sb16iLwA7slgG=7!cK948}4)zAYoDP$-X*}O{qw9+qdiTIJ z+09j9LIBlSwR)=YoO!qhc#bO2QSl2~)-8jhpuaCNyMn*Te=c(5xO};HE>J<9rJhdQ zRca0H5e+twdoePhez*8`)TlL=v30HR>AgqpM*fFvM&$A~$d+&)9{7C%#a`y5+kLNM zPa*i;SSi8jx>=f$=@x7F#8Cn%P$wqY%Bb|6H8NaGoGN!4jhmU&BF9fwUI-2j{bnT( zA%t;f^*@+bY2XY%9bwEa6u%YXpx>#qW~Xg$#Ajy@j7_g^WgYvOr+mLi#ZS(4kMLfl zuuWqI_Zz*GhuP+2r94}s(A)~bSCT*d5OehWq|68+J&1|S7TFo{POHn4KBh#Zq@<`s zRT=SwL7emr!jB>FUhB!;ug0vA_OnIE6;}-*RodtBLdnqb)bgtR5w-_Gb6p-7Q}#(H z*iX47y!In|bjN9_P^$^lV{<mwL9{#Y(){W>CtulVh}k{7q8S4qmYv`ro;zCNVSZJhpIi3L zCZVt#60@oG{N99vuR!|N5?|btLq73A4;`1d=i-ksGqp6kBIee~_QOF5nzv=Sq#626 z(;X+cRA$C=GdX(p@wzv&GMj$jf6O5-odOOqkb|t1+*e4Q4Bpr94y zE!9b>h^;>6U9;#+$rWqm&V`MRMP-r1B(QN8t*{;R?TOR$U}PAf%`D2=vDEh$$knfh zLcQC7zw4`f`Gkmq4m0F=HM6PT1(W~yScU6XHoo*x--N=5)7%Q*M~5?PHd%EUY`O47 zUELgp-t-!GLX==g=rHaJH+I%lb?V-)$Ss6TV11sUQ z#B*KQC+ruHj57`2TR3cmD#S?k^hb*aegn@Dm+QOx!LY*=Jb=a7@!zGX*g%A2K}QT% zFk08}*f#Hjayr-Z-)WV4uII84Tn519d=0&SnwiLyb=PL2fZXBFt zd$ru`y|F-i*X?!jYbA0C(y>;`=QXavFM=^;iG!Z3pKP`7UTt{ow!JTYU8)FZOEwi+%Y$v~%|FcjM&UiWN%TdQ?S}J(@ zxVGLyRQhXe`^Pp3)S8Nn?@P;@=EPLVIod;|Yt~51PAou#zfp_5&wpZFx_ya%zHvget32f(Db!Hw1x?1= zFaKl?;hKVPZED_gb$Bo!bL)kS@YLQIYm%m-R=9`Wv{qq?Iw>c7hYx{ zyxh~`fR>nj|G_{STK>_%7Nla#iyF4GGS8vODuF3+F|(BEKk`80s*P3W63%tfAEK}H z8dr_-&GYL?eoXlj`U*;BDHW96Uz3sNwmU8JyxA6z1~4G`E{}Qf5qPEjOomBx&MeGo z;=YrUmh%Bp_C;9#EQ!0+$&6-(E0=Ozf6X}zh>P5iv^svhF4@Wey>V_!s=`Ow657^5 zisJUBZXyq)^JWWF^cF-*pgd9iVY7WlBjIZ7a#WuwR;On{pbmMI5y}Up^OBJbN0PON zUmSLhJA{HyRR%W)MQda?3}YP)moBbP4=fkXQfz9~oXMkD?TC$Ud_#6$%mwc%;adTL znV?WEn)CW40?wjB`EHL%hCMkka^0dcn{1%oFlAP&0R21J_Rm)T^tbWUt1T$BU@28tbp`rxq;L(Kv zHli;Tclfu)ZlSgT<_lRI+_Y6w0L#d!Dm=v3LIBoEdKGk*CL zbLgpe`t?&ls2)1m_4D%E-ISeN83Hl7oZr>Xy-lK@0k5^MxC*wIwWu8S(I6UKeLqjS z-SBhQcX3>GJ=yGm7^NbYg{I!|T7Jg1Kd8-I^^!4YN#x?Gbeddk6|;_& z#R23sDk*vq3gPupjsyF15WbhYEcYm*4rjn>yQ@ ziLX`EKe)ty>VQozYUuKRZ8k{V_@#-J(Mb4UqWVa+aoLAj{JON`O!#N$rZSEw_*O81TV6k1!1G<(D4iB= zFs?#Sn=knNYcBzD@sw?RnPSSD+Rur4$|g?iFF>h@;vN?eU66JQyD!)1x_ykg#cFY( gs6JFrEF<$079JZP!W_MK{86t;d#h8=O8(!?=XFPrsv+`Qn^uT`I`)_Ol z0`A`rv3LCa5Q5(i@won94zcw7uZEDE*FUNICyJBmUvsmw`c3WM-$bF0X{zUD<@DRc ze^^)5(azo8!S(NmiPg+K2?&U2{!Cia<}Uxtf);k>u9zK&=>CSe$JImI-Ob6}&Fr+g@$XINWNvZY+~%*A|99VV z(bGPqbzVhZ>Mx7@afABmXLSDK94U5wHvxs4mA#Xh`8Ain$SME2d6HeDWB-l*$N#%> zs=vy2eTM8WJnEhQa|7)CzZgsNe=(N!uVdTM+u45;ptp;^(beDR=3nSLg5M~~Z^Ca;8$J3PmHUk<{zlPnRP8r<@;9pW8`b%Z z>i=uyr$T*b-gfC%l3sQDcvve`&~K)?)%(wY_Ko#02JH}7xW=x;^B zbhH`r{G5&y2_xMIsww zUc?FXNVLc0bRV@m66KE;V>-Z$4xCUt+Ii?Dwh!~LA<_sWEc3AI)-x|8oNRJ@_W57| zoz@dW+D63!3RUN@^hKrurn{%F312)}KqsAQ!{a1Zz>+?59CL{R76yObyf(4|YX0qq zo`&iLbOF34)GJRH(93upxl{J3fI%1~JpH0>;_n{n>sZ1#}Z;H#YC4 z6)<{>A5D)sQ$X|Sg>J;i-U2EgfrUNqCJN~CmixIWs|)Cy&s(Op+ZRx_kJQT$+7!@? zo{WjfEGnQLjMg0*wkx1fYfE{0xvGGHrEWWSC9Hswm8D+BM7)4X-@I0|sB(|F4n!bIh%_3Z!8xUzpX@qL=yA_ zBxevW{d2}+qhFA~s@0)0a1ROec@M`7bYt-l-r!|ai-f(2OxB&>AQ6L?=RT;&BVi&^ z%463aAVE(5@;WfOm zA9?aMk&8AGB>BRzWW|il`+ahwVg(7?6gPeB)5GGcKhg767ZO^L|6;?*frJH|2Sg4g zBVoJTmp4DfBO!Sv>iCgVBt(X^n>0=#(HO>a4U-XwKg;aK)i?5p|NH7eFJ?U?*x-Ns zOZmdj&r^?F8T56a1ONEw9kxSIX)sFVYtaB*F^5lYN2)^KL<@6f(tRk@a(Z4LRs;>4 z%_JpF6HuU?_2M(7APlv)<<@-?hjL4?<7KZdLr*B3Wbi^Pv@MfQhEo$lN0$Ann1b)m zXwwAUMQUppAux5!5I2I9s$NDX+S4!~yW|(xAOsTxIXtp!q%i8wL|0s&{xh#5RXNo~ z7Dgxx1h_YcVZ^pa@!-`DFhHrIGbK(7)2Wt`zOsEV+OkK;zt0?oPh5yOYP<~N$Je8E ztd79gqKn|5M+&rLg*(I@S%Wg}}h!``CB?tQC5etlsT;s1r^i4SB zi)zt`vDQ+;+Rg;gUD`wNm|Gq(^2&Uy>e9mekSmvkp%F2ydXN&2oJ1^-_w`>q<%?MK zbi~}gRU_uOlaoIMx)9?J!~9=56Np)Yo9_NgA4G34fw!BnL@cA<1^UC75W_>Qv!ffM zi1F*bixkovh*7HeIO)Mq#AK}ai1qn9#55QzQNLddvH0!0{;G!%o2)1@ z{q`GTDL&7nO7ar1xCanz_KYFs{-ow%V32_P_mB$%Mh@l}zQlfK{B7JW4xszDv40Cveghu%<~Pk$ z|NY{c!+%_u->~`j3wl>~7i)71EB#$`@VB@8XTjgx{+|SYnd;xGGu_UAjdbXLk4*kc zXhWu>tFC(LAAuV(Cl@P=Yfk?Jv?2W;2yJry*Fu{!F~KJ37(Evm8HEi&I+T%-m@3F1 z{Z=2gHKcnsOFMO!E)@k`*&QcjZH=jjPOE5q#Z*L^>-`!$yHuR%rvC1HbRSyd{vuC^ z*uBT{IVRABc$ zg`9qkUH#=Ty)lYiMVy!1K7eBfnNP5d$Tl4_QTO|24e4s~15B(DHrBy+k`>Yz9+B}ft@Xviu z0>qG1p2M+P$8{ur<*So~&?XX1yg{~87KlWGrSWAJV(9QgkAv>QSCD{n2|3ju6*}Pj z)A($GG?MM8eqb|u6e$p0ZMq%ig^tKJKfb$u2p!N(G5H~DgAUJz?mws7feyF)3c2cM zjt<>;^!n%KaddFfAd}^MF*=+YeTBW%5*_YYs*{ ztx!c2lD#EIag?qT9o!=zBeyPw1jX)bN!V&49^txn8H&qDa4;^gCCMELCI;{5zuG|u z%f=tvSPek@Ha{Otuk<3`o0W0|H`<%Cp2$gpR<8@-|Jkw%_xcXN%lP{l=+E-r!Q*9JPSdBhtwW!zZpZkw`a3r zychpYiT|ywX58ifzNC}=Nl7Pma&r4C+r|8v!(Z#CtAnG5nYFo{-Cv=?F2ml+&h2ln z?HqR>L;Uv^YN}oNsk0|eY3cuiV!h{@gY`8#Hy3lae|xU>e_gT({|AfYY1G1qoCGyGRVh(rH6n|2l=42yy_7~;^4zrYA`j8oh2lr=uyNn&T2vYuWqFEpeQ50ivnq0YGU$Z9Y7~0 zU$#prXrhy&$aXx{ual#LrIn@GZ~6Z(OxnL<$p6gV^EYE12>!ckmWr0vNh$3=saXWSt5O8Nt4aj_ z11r-1!Px&EGm;ygS3Pc^b^0Iu;ouDq3$rWkcGv%j>QC`M&(?&j|68j+l(c@FP0Xo= zifi^OHJS5JcFXmle54JOrQgVg>?Wx7OdTs&n}^D+?vN^T8mK0`;74#H4JuE_!2#6~ zDDMc-p<28KGFqEq<9k|Ni4;Az(l#%g|p`w&_U`gc!loE;E zdA%Y8#oL$1@052y#q~T%Nacc(M8m>~%cr4iIea_KVi8KYe{R0%AcCSN1NL?WdQjZG zzgP5Y9h6tj+ZV{CLU9?oBiQ~0s>64xCaLa2orkiSf1m}_FVjg{%AADyt5+}eFWCdm zG>EvKUli)aL@M|jUO`<3O;&dL1k^DEe%nw|h3e~@nbEO4P;su|hOEbZs2%!d)^t%2 zZ~}XOBvJ|m@m0V?N32YDU6hx=@*6*6D3F2{mXcFYj$P)Ye#)@l`*ATCXs% z+3RdjXX%oO8!!UgTI+!|VKTtw^ze$Sq(fb*_qLL2Gt`>hCDwG;h57=H$P<2TP`9y% z;ppc}P;cw5oZ(Ht zk+odb4!i)>w-O6|l^CIVbW3=@2!iSt)AtLFs-fONGMRwU4{#LUgIkr4L;cW;3$kI2 zP@j5Qm*&_ZsQaaNGwfC);QZMV0y4Itj;Nw0Rq_nf20U(4eGm#Y#y3gdwO)m~cP2-| zNS!eK1lm53+<=;z&g&n(U4)v}GtC00b)e?)aLTr?I@BMD^&#h!hC2L~9w#QR_bEPW z*L@P|T>B^^Z$5&W(Rlr@HVA6EWhQ1O(x65#pZAeFA5?#kSLFMC0BYz|?{z21K;2gc z-qPVoz}?d|UYRuk+~Y&1PqSVH+y@Xd>Is0l(*)2`90oPzYT}-@6Ht5X_~ca!YN({C z`&v_it#g&Q+q;z!YN`5LiS}UEElUZ{t7xDmnAXzBP64Xtx6NkGSwZd0`hEYiWl&S5 z)AD-W6{;R}M_h>!fy(5k52YV?Lv>&spHU+tRE_RoHOX0qDl(qSjVp;zMWtOY{y73F z$BH-d1D-I z1Af7>Ypm0uFsmMCsQ<)t2r67PFZ(K6C<^!Nd&RHGp%<`sh~ zr-nHB-XBm)K7Wz(lOfa&s&lz#jX-VhMsyHZKdXD1WN<*>X^ioe)I+RKdI=ZWV zgQ7N`)A~IrHm<0~9BH(-KTR28G|t57Xi+pwQZJ z+r-%!3PskQW-TmX`!$Y8V%&m4%53LA_6#T@@=)(CQGt?U{_0_C5>R?*nqoYn0!pps zLiVxAL9q&5dq;@@6kdd!<3DzwFfk~9a^DLmNa1ZtRhNUJCgx<90XZm9*51Nd7C~{n zuRz*XHWZKFR13DVg<=J>r;R3@P_kb1mZY2pin_N4g|R$S#18xn58|Ql2xV*i;tUi? zwI;y$dni(kVKv@+4GQlDk0&ndheCPLra<|NQ0Pw)yv4r;MakWH{Qluk6ie-0zh?+a ztX70=#PLwv!aTZ0F%N}B%?mrk)lle6q$j%&jusLN#~&{cgnus908K7Q@+HCh=;UO%k&7Vm;G2EH?+Des}m;nhp-;&V{Cn(d^2 z{}|MLE*sF9jtAV-cyZz84B!i2$~Igv1-#2p?Aq%oXgD-al2^JdHQc@2Ug6~%eM^~YILBo=kdmSq2PL`N0U55I0v%!E(Kfs^8|5$I@7;w0CkJnjQ z*nKiTh(QKwp8sq+Myd?;mSJipUS)s_+WBnvssM22?3?RU&VU=Z`RsXHkxfZy9BcO?J-ckV9HNrolBe|YmW@BjngW%z|D?IfVyHbX*DSs3c5QlE6} z(E{AQpV~2Wc2Ixs5w)gc9@M2(tvsPNf_n3zrZ3MI02g>%w}{jhaM>mvWIx9+eEiXm zI1$6i1K*=Z-^l^q>?BDrfh^R;i(O`~B*6NE^0#t(??LU)Hja^0Td38#OKx)10%||t z2pxlt0#0Y2>^-Rsz}vb%Y3g+Z{KMwS*UoRCVf@;+tyN>d*L~Nf9sCS+f!e2{Us*#v zVex`v`CX{{DEj z07tq1-paWfP=DgG8QF~}sQYe8RYBbW_2Pb`uSBW=Pnn)Sx{nna&W~r;;h#c-c|i~@ z6&W<#_F+E1UIDl!15Y*GaHwBv-}oRN4LHU6w&%pyes%8|edoes{!MiKQAQ{<2-OPv zrN==7nemeizX8CvUwhZo0f6`D+1g824-MZpU%aI!1^mYR1CY|;^JH@z*2g$>+ZD4yeVMha zPtZHS@1ac-vOEC|_i7wI-^TQQL(xchq!Jpk-&D@IV{v;>QOS8d3~(wuFMco3WCn3|gAOTbC+AMlrQhmwl8a^8=gP=N?|mADF_GHgi0o{|nJwQs1}aYp8a<=LL6zrKt?DozsQPKYsud;(74!!54Ucl6G(Gr>cxDcivCWB> zJ83~lx9w@M#Dh@&kb|>A4C@EZ3~slZN7~p{VyN_Sn{S(If{N-_7XBo|P9N|nZ8^Pjw&OHBhMoq7c4jW(e4(&{t$3Ogu^^2*B_7=TJ4Dq14(5U4@{Aw<$- zP^Cp_njhf?6&yzV3kn68{o+vTmNaJ1(V?o*TmQnXzddW!`>&t1y8i1~>u>b`am+fg z_o-OB=pFdwSLyz9cm}4}>8?N6DTFEW7dF9hr(oWW7Ju`#EX*o@@%nK)9%lR6p7&`= z!pzIEvx`l=FpZZP+MD7B)7NlXkBUiQNTfhvs40kk1o8 zt_x#o3Aa~#MPYI@lyCh^D9rZ6C)|C;1aodBw2el|FwHdYPQ)q*znGtE5itIOU(0%( zsm~)|;&|p;wWG5zwzbCJO0Ie(tr8! zA{v$ygrr}jM#22Y>s^%OAuy-6_6)8Y!L00sLyJo5FnPd$1+C1$#N0P+{Iz_Tk~-JL z?_3IV6Y4X!10TV{O+&>a%dId!$zDcTzJc9$smkGA8qCsfjEkErz+7DD($b(N%)k5j zs`=+JL}ag|$Z~uJ5p9>J4g`51QaP=qOs8^0G9DK1*}#j4C7%8mxoU-oOuiA(Jk&$P zZS+vXV1tNFM;~7vdxZ!S$Zj#oaUp^c5{IJOJcwvNt32~5Pq6Ro0vPbqoVml6^tQ{f}sueQVXuPB`~_i~K|chi`csy0Ig|+l{(CEcu9_8a(eyZX&_~Hj#ZX7ZIVU z^K1`+J0iHy!gfaXBqA`ZR()Qj1v?{Ljnl5xu%qtKdDBi5cFL@!{e-c7?4eC%{%{%* z-K(+p(Jn_sZz%As7K(@{`%Oh@7iQ;!ii&0@@Q6UAY2c*@w%<#4NeQcY5G{Q|Xjy~+ zqK_1QP*h8)r6zIbrr>`6oy$5VU$L^PrcZ&0$w=^;86qXe3Fe2BKz<$C2D52B-u zi^+ZGhUmGQ^e6c5BD%ql(~-tuh`yaQGD?#X(O|D?Vk6K3w6IE+A#XN3*#P$F2FBd;9x6a5Lmf&c+?OvBvDIU3w?$dzGh0g zQr97R{^hVF|6ABR$5d5g7Z9BUzo;+5{GlSQw3&SxQ6K{DY_6Y(GHgh_@k=$Lm_DlG zp`?o_=9iu|lolZhv3OTQ1ztqu&3Rh)#cM?VRCKSsi98|;W3`g4t4E|xZ7hXjPKYeK zP>!I(8<2Wuv>Ekws*0FV}Uzx9*mOx}j9y@K9 z{6M6&s@%A?htEV7@D21r@I@Zo1DirYS zlGqzWrA2AN*4l$8IE?t51C%lQ#evs+3TDsI!K-nb|H7=ly$YgtUgaO)Rbp2U^M3-W z^8C+(s>D10YoY45jo3G*oOK}6AIG~rp9pCmZ8GDe?n2t!tV49GE)=})B<{EBw&YyDrsk58p$2@6eEw zK*qe@0U8$}$olxuuti!FQhRx{tok*4oEb6IZaG!0U7pk*0awCAyKwbam`R2QeTew<*r|a%q0)H zy8&Mymo-Q7+!sg4-mY(#4YP#2gO7yn)hI*ujB{+FP$*yX|CL2AO<}A$G(9b8X@^f zcjzRx{uf7;FB`QVA$eIhMfR#Md~bUt9WxXQ8Pk3~uWjle^N?0-n`Jg+K1TGCmOGH^ z9eRF5<~zjKPq`*}D8g5!&}f0IIQXcnGfWed2=7H-Gn+?7!3S50L?<~;NGA(lc!T+4 zZjKL|Cw4A*^(&xIeKAJ{)0B7^u(qqKL^f*`RVreKeB_3_M1Lz|hFM54et4=` z_8KH674UyZpofo4?|aB@w?Ud=K_@TfFUdkTi+T*6!{^BZiYf8x5Vs`6{QYw@#NK>2 z2%d)U-Cj0zSzHs+rCB4W{f8k#i2rFvBMwr7?hp`Q`-?kscu;R{4dT`sk6xI@!G~Dl zV-X{J;jQnDHv?E4#(45aIra-c+WA+cJ_C}F7tnlScfEX(Lv-0)zu*T6dH&r#CrGLE z;$@&d3~@rI66=}HL&AkU!79gOA@Z0|PFqt9q+KdBzq1=xA|}@YORm88LzCxpuSrAN zbrh8fLfX2xc#3J7V}|`H(cy*~rt| z2w8fSL-mX0kbU|tjZmm28`NX-r)0H>+AeuPy5Wz| zYU(K{kPQB)-yMVHKb@pKCx1Z6b=Q%`8-Y-`9#yx7#mRS-Mk#7+T$D5$gzUAW8wr6L>yZ$*-zsEh9$Gu3@4 za*jG5v~?5;c}L8eu)I(~R+XIj{tf(i-Wh%ecp#JG;;~Pq0N>_yh#emtge>F4_tbJY z$d0a!zuiU#X>uP=?#1r^HmtJy?E*;4BQ9;8Sc1G9c8LbepYp8(*DjLnK*^n>Oww2! z6tUR4Ok;kLUPnNbUpES=nr=Ton(@H5f$)qpET6_xZHCpnn}FoeV{#QQeIPTF=7!48 zSSVq9EBl7y0#u0h)Hf7uKqbSmcm+W*DDVzXRK)C>>V|tBW~l|~Q}l0p^S(m-lbW(A z+jEe&s6%v^?Fp19?z3gaZ>dB63Z_fVy>U&sc_OO^M9^?M>lp#1u5ruOSQfSWWp z{T!=9)mbXR&oR9!EgHLa{j2bFnZN|*@8#4CpUSYfz$r|&6$_REejl^G|E@o6obBAr zOI7Y_g4{BMP(w^S9**f<;&}VR{bg||^7mzo!|G+VQ_u7ISA_uG_d z7}TEx<^5P*tW#)zaW1d~aCTg;lCXJe3x^XdPyd7(JaxxzTvgwG$>-=F3}t8BZzAJB z_&MV5V2IU&YAI>6^KIEs-xq5SvB#i%>hjMP3|AC!iVs!HsY9jYWW+NsXQpiuPPjj9@F_~-ZwRRj28A8Y%(T@UKgeCl*|{WHYR zZNzR9a2iJ_xQe>~N6e?*LSY3pCyw84@%P8(^|M<@d<_+!_NS1BKY+5KTAuO8Mo@G{ zMQr;(B~+`uk_wH{gYtEnO;P1CEZ-=cYI{coB@}CP#x<@`)b}7%Km#!SKb+v2bcPzD zRligGGf>Z^K(bo@3aa82U@8~$*GE6R-iv>P625HQtC~$Hgh&DM7b@^0C??^h;yEZ- zp-fnEDTZnvRgv60c4)XqOe@HF6&k|69aPzaU5}rgP%QfbRpi&5?sY~(F>X5b#R05N z-O(2WPe#buwhvmy@L1J`1p%>dA=Em^JP18<1Zpx;{21Kqp}KBZAo0c+RMg@Yj+RRT z&Ts7DoDwP2@XpvSV0EY1%(BEE%eMu@+r>3l-743!;bX$;W6Ai#XQF;0P-rw!C5z>U zLM1qGfJYSya+_1eF=|R6(rc34`nD>%L>D>^;OAoW|;rt4(5>E+{DiB zPMv8Xh9AoL9mgs${9h<`=T=@9#Ce+P1 zd8+N+zx*@hA%;tu;%V)B3im?i2dO*?46n5XR0*EM@*nP9#Ou>o{MLndR=8sQRE^ie zNjJ>jD)iDMw@a~jdOI63h~Zd#mZAut00`2+X z4*RjbrR9N-Q#01rbr%ZUn8y0FW|{$iJ1oC9NK}{RV{uSR%ig`)&ou-ay{p%9g@&q| zZw)Z~UjI6zYB%rHaxm^cgsoR^_~X7AhR>VAOzRWII-%(lWziul-*&#eLi~+d9@<55 zzpOEwitF4*dGNz^s2jH|CB*uUnq~rGcC4;fbT~5Y_DeN_`&2Ju^|*nahg{;(9q6z; z{ao@#8FW{8Op#*vwY%@whdY>kTBiG36EWOW_bA6O4zml+PT5ecLdclFKA$%J41}+ z!&+NA?sW`D)~mAKC&v7zX3y1{r&vCyv_B@LL0JtIANWoSU^u4ihUX`1c|X9p@dQy% zU4*K9LP0;Qzpl7Z#DDsyClpv;QldY7y4D_dju zz4-fGIcIez$fpS$KZ?asq1>8lz$XT%Bux`%@QH;&%KpQlrV;EkqoL;>wj`feF!w0X^f5iOFP$QCF-UQNY5~-cA{ibH>TwB2W zJ!6D9Eds;Y<a`vTPTE7y7|yoH)pNs1#^C!u!gh075PALH_?zwADjD5_Q^zl`m( zc#qjrQJzEaV>F)jA=WqKehNA?1dJNmqz@H$iuhnoD1y$QGp>7uxfCcqoCx0xSo zftG9cwps?BC-Z9zxQ1GSd;%?oqHl`o_%6ADWEBbF~ zi(>lw;7hoOilO4v#h8gsaVX+-&s)IkP`J!()b4Wzevl5+KE(RY?3G{(Z!B--`+gea z!t|(=(WcU;umZeR_n6U>6M(;FY+xdZUE^k6eZ=Cf{5u6j1J=(KMnA2;asrD3%Z%-f zH+Lc9dm^nChD$2&gf<%3_-cb{=d-(Y;I39U8EZRK-l8km^@p;}P8(jGIH;T0Qs0l| z`>JDZyo%>cq3~k1cP*CJax>oZGGY0?RBL%J8-_26@~(#I?&5T_#COpc{{ImX`gI-i zul&bP3U;4km2;1}mSTQb6nj+O6+7?B*A5r2VSQW~v=bvNAO4Kx_20#rKYiUvoj&(K zjP?8$}Zlj6)~z7(`<#RH8;-Q@M@@OGul3cop~ha zgqE$_PS5YTLEX?s;{D3gP}7^Lw%gZKncOo;#Ohnw-s+wMUt6H^K}fI!7Kiv-d(;=P zI@Q_s1xAF=q88e^k z*6)&hs{5pvpHz@{ADdA51@$>D2`t-D(AFeq-;JG1*M|q!j$t^jJ6Jq&Z=w=3jh~pO zRC@wdNdfUfxvNmCw{(RL%O9men-z*2>(D6o;m1p?ziJyX9=M3%g;v3Z#NFqMt)JS7 zcX2^e`|x52wvW!Xy;o$q6rj;Cf}7W*A8;4++dJR)K_#cLs^-DlfJ?ulW`fltT$S;7 zI6*p8M_dS0+4B-ALwDRsF`QIgnCMcB*}Wm<#Z&$WDQIwuBQnSO|Mq}3K^Cl!YlWWu zH!(k~Emg2Mh2^no+ru-yyZ0NM>e$8ar4oV{Uf%(z2;g7etz)>O?Y=_0dSCuHydSIo zonx*tA2Iyg#WI)Tiq-jMikt1b&zY+h(m#w~II=b{&=)(Gzw@dG?>~6egZEEf^`LR} zFgJ5^v9dDz+jl4Iee}=S(tpmD`E$1HpR@n}@jAT9fBibV`M+L=C;0!s zJ4THwhE|_%Bj{WbqhsQju8$TD}_1)k%3nzuOzpn~_#9aOiWwo0oIY{`LT=L*7B?)P3{C%e)M_ zy@UdDX%9h@{#oUpmCevVLm#xdwimi>sbVAEQ$a)VcahpdtI#Gg)Id*m5*mNq@L2DC z3Dx^+D-e3=2t6ZhW~k2vzlR zCL{qm(0Or^`&2+H^gX+K<*tGVw4T~ZuK#KeIKsJn#xZqh7rv?a+I1az(k%}pyBa|2 z40mp~bSVtD*T?3bpoUIr6?$D6J7{r!M6b%`3HXt>^GRO?AuqE2;CYW7$UzP#w_>%S zI9shGXwMU9qfI$3raS>Xa>c_3-6^4qDc-*>B^L07toz!sJODTHSca~_2U<@sR_6d0 zbb9@Ac#T+~C8gbCMWP2f9*mt+CS8J&^FJA^bC+P4nDV(fsX27id?RYa^lz16or^M! zg1&r>-u0tTpl8EWe(T{7;2xO2ZL469{ZO*xqkmJ3XBUP~%+FtZj5U3><_M)h)JZ)&9Hg9(B5QV-o-#J)wEBa9AV`pwayG_BZp3P%$GH zUa77Hb)*hEwenGrX?MQVHWvrYAw5^)it3=9M)PKo(sO7n!sqpLWBfBDn}(nTO|LnO zl!`Z@+f&j$icT5YX3XyqFOoo|l9)(Xv^W%Y^=68)Rsz1a21ls-1?t@Oj<(mAK`Yd^Ap`f}m_R<|J4qUgbLL<&YXXZ0Y=J^lM zP2X+xfW2w)6rZy;b>@4pMcnIZw=i=^HyoB;E4ts7E4#5C7K*+za z$yoTE2j(y#B^@kNVGW~e4<|ogTGHy9=FAQY`FCLD+3sWwK83LY4LZ1TPMfdlc z(B`vm_%5L-G|&ww8Wej%*Zsk~Xbw;4;r9H+{K68NeaI99DvPl7NgcnHR6?^ypo*95 zPv{T5%=|7_9Qs;Khmk5@#Wy$J!{9IP)tW|LXz7nj-anQHje_jOmn@h7Z&cy9 zYWf8#-<`R3_FgC8Nu?!%MSGx&_16KX##k7S38Z#aJqy1ah;S}4s_@HdT>qZ+Js5CI z{`qvL2%0F4-@hAY1TFO0GPA=pP+q==IH|-Q2A(ZlGA?}wV|#H%&u*WAVLoXN&o)CC zy6m*t7g`E~$K1_c#J0j@;?SNm#Xiu_!EpAxq%^cH0~zk5E#MO$!>zH0$5oGG}&@i6aPV~VXnv0HvWnb%t@{NyS z4|YbO_rjaU!cBW&WH@r?cK2Htaz6AXhhPGRIQ>k2NZ){g=)?9KHgzx&dB=Ft*$?`K zN8b{D+yiY&srOnx#sGdwkmT&r0ch`VY-Xn7fo}G9xB2?Gp_$d{+IVRq;I>k27ru8v zv(`P+cFiv6o*7FatdoS^FUyhNjX7YHIBm+Jy9b6=ckttT8=H*6JjUG($QF*_r zm4tzh4o&gX0?^2R%euB_2b#Ae%q~3T``7F6zYV}J>wo>}kzLgKuTPKsh5kQ|TU#Vl zpAz{uLNDDFdJ>z3V0(YZWm zAY_bX<30oJlA^QIPa|Q_ipRz`)fI-Ma?ZY>e+peU+D%0XE1<`uI=Z3YKJ;Dgx_|Z{ zAy)T;n?ep=f+pJNoS%7R(0AShJ>zhJrgqmQvKv~^(Y7x|HEbSQ1Z^Z=Rt7*Fmwln6 z&o(p+cr`k`pn~q_0R$|rcF@plJ9C=X0K>WRH{YHwgI>4slV&dzpnr<~=BL9vSRUKE zO7-ah3_KOrKSpl{{nF=EdxGnsk7nYNwplgw>IR5>nZF9H4(%9_@^YeLX- z^+MPcyaEi^d}Vw0;ybkWIZC&F;s$)Bx;Lm1LFfF66E}Jf{WJsT7~?0QM#z5 z?u}$OW>!Pb9$(1-Q(p`({QB`|UnVpT*3ukdV1l3J=U0WYgCPH)ptOf)Ba}{PU6Xr8 z4;^{?G}T_MLSNO9x!{MP(0jy&Oj`RQH0H1;Lq8ZPcZW(E5fMJcdfQxA<$j6>Hfn$AKI(*?#%J+gMmo9 zvl$tupkGEiX`-$H8ZPGxJlwH?asm_moLCG87npU5Zn!{0eMzri>@3tN3+r=;WkDks zH-qP~LFm*g@aYy9hc4UGZj-Ut{DkTc?+*@Q_28-gv9WUKcSz?ZlX(Jlw1$z>g@>VD zR9k2Dq$HFH9t?J^O@xBaDxCx}x1da8PD62^71|FU@A@c!;nPR*SNsk#!GHnDT2xam zjJrO!CupjL!Kia*I;OXv_M_pGR<1$7zdF7rNMiu<9Uq0`I!U2ZhjGLH5DWAw| zY6Gn?5uyUE$DxsXcz@xlB~-I`U!rztgqm=plGs;(;gGy~#UrlJalwOxSBMDO+4sz6 zzYBp*c{{@>#tmrkxmb78OA2a)1y9BY{(u@CU-cK~^q|yM^KPS$BK+(ZWZ6T00ZQfR z_iN-`hPFF)=?hhbFu>(HocaDPR>wYX`{vBTpuAe#ui|BB4jk3@45oqVbdQokRwuwE zCcE(Z>O#JTeO6@uJLp&mC%I=g0KMnB*+wVIp*t<$&|K|j=y-oZiMi1a+Kc%l#%=b) z!1W*MpUJ49_n`cc$Hxy)|HR{H8g3fO^jTw#-pN4A`2tcKegkNv)F+b5xYh-<%(J(%eHs9sL4Rhs}623jHgrQRt%dDTVe(-Jo`^uSG zXbIa_(-c4g{f$ZI38&~`pfN#uJ@X!P^psb>8cT-eshenOlHgZp{vxxTbkqxQ z$WU93r2(4H2}yj=QN;T1gCFAz5KKOi2zeI22D6P#j&p z=%PF%@Y_BAbMalL?bk1H&)vb>1!XbfBT z8LY2u8rMH6b00RVb(DBI_+i%1I*Iu}C#-#!jx&7jhbSY7-Jeg5A;S8=%7(!AFnOgx znSiMm5h>Lx4SkD)#o`wimtyT;=;LuGA7V1-cB#-&bN&T=pEbOFkB>sz+@Tvq(*e*Q z?A-5LhvjA8%=2_k2Vmsgxw&6Ta{g&tDCq$|C)T{rzK8!|K?zvU|13FzYOmeCH zVXlOZD||5)5yjga;jgEKUrt3qp-I`$uYHexx$z0iI$4@TISxXjXk45BwL}}WM-ikNTas~A^p!c6x5D=+t^LjOmF zi-z%pFdS7~Mf5riyAS4)G|nPII)UL3<9jd{totPUXgQ4Wo}H)dW=DGy)?W!;evQa9 zy88l4I$*|x#Y?I4HOy_zy)PatLL?ejJDZgEA)34v(Xr@I*z!G2#z%P%5k*|c)MqF` zEX3xlm;CM{p2{azsc%RkdYf{R2cLTo^Hm*@qRi)r!I+&-NNoOPoGF z{y79um``5hFsnusI_jU#FE=7GwUGjsm~)7bqE__5@eRb0+P_hK)e>>QW*Dg*6XLtt z%|S*bg#?e^HK|r^LHxAw*%WMvh^G1bRL<9@h#;mo`IHmDj)3W0wwN*e3jYKPA{SwO zonpu&mH~0%xhWHc2NByulvp6%7YS_v{fn30h$1OIj*&qfk%;2VPC2h3(z70HOE0Vu zS;C`L)z&ezm*5?{9mh0mO~0nE{AG<8KYL%j>mh|$McHc%$K(*NV>6YyuP&ma3b;Df z-HMp4PlirECPiEYPj{F|ParP+e9^hoGQ^{L^m#xSF`|0*<003oDWai&a4^s?7EuUZ zzSZ{fEuveYYk50djX0A}P)E%cA}%&BU&_-@5MREGfJ&w-5()`^_8Pk3Q!$*fnQvFn zv{QjdlWDuZyrf6$Oz(44Ep8y*=p-sZsVzj$xBtusoD*WMV{w|(Dn|P&Qv0|?L(%@Q z8;_Q6xFQ~|b5;+do?~_l?Oq=eMl4Ju7g#)75!sdv?bZD}h*o{`U1$GO#KmCzjL20U zab2`123t(;?kk6+S}2gPJA_^>k z8S4;9yu&3^;ZunGq}#SFwK3ZB#_L<$5G8DvzfPt4u!)$mNZl+M%@KRh>XEO8A&Bp> z00nye8L?O>3cP6|L#!7Ze#oygA|5)$u<^S$5FZbdQNWTW;xUwUYHo5vbk*0URwHN- zqecI6`tcP++A+BNy*e4~$sBx_OL-7+J+r$KTzL`kJXR_WedUSx;-3^u_})Uoppc#M z*a`7_DR~*_G$XdNj8)bL?<1n?p3Fs#+OVOBTg$!~2pgA0uh|?rh3KLmYh2N`LOjoi zuGPBiNBbpSE6XvwKtdfn@1YGGt1FpCG6BiKQ;rDhC-IR#6NGybUa}lxLto+`) z!hv}9vgF#DawFd1{X1Q!O%QjZ_}A=L_K4wo_!X<0{)l16pt1QyIwG;T!Q&hD9Z@~! zCb=GP8*x@vewFm^L_FqiqTkBQExwLr@Z*$g=vEVpj4O=t|^sYxNtCJUX_KhHJi=a?C?NY@1*&~@q{S)Gr zVP`h0xquk$&un;nra+8Yd1bR(nBK1RK_U~65GCuHE}uXM;*=E8Z^?{7JnVMo3w~We zylou=qXt4qNPUeucJwRai&3W4{k(+OGTHi{6Ez^Rcb^Vus8b;V|L0ZQ>t_&w_R!l) zuO1)zk~-C;8i zb2lrOe*(S!>)#C|_#cE`TfCj;ZPG}ffcQK^`b-B55mu3Kkyt}V>huNG>`ySw6zzP$ zUIQk1EM)kPeuc$~yGgx#{Wa(0ImVFcx85v7=nJ zv6&Q9JXz?AyVL-`>Plu3zp?^e_|>(=oYTQd1^O!( z^}1C;0$|4!5s{e!6g zvwt^`_P1a-zZ(l?7WM@H%|S}0ud8xa?;rjX+-@%B4z5oBL|lse&x=cvmH)MIxydHD zqrgy(2pk`u5VZ_J#PW*%Y7Baaw8xE2myrPxjRo^$4VoijV)Yc9L|8~!svXmdT_#HxhC}t7q7KO7=*<(Zy)nXZ&>xu|No<_JIfzs zEQoNP8Ec+u5CH@+O-JEj?wxB+FFY*CGK zYJsK5Lkh%{ZLq_{PM&B$4Qq)J;T=c~<_Cj6SC74g&2!Ar@j~xlk-YjNu3!u{0>A7_ zQ|*PVU?Q8&Z7P^KbFk^OSRt%w7__&sE5M5R48O*WTA18>%B?%l5E1BvO@6le4)g9I z8BV|e)xTuw10iWJKhCm-M`w$hS|X{+8(uy%e^o+t0*5f%hn>^jP^ z?sgRsin!FO6dpFKh6O)Gal>{SzKRzDFsgY=C?XIotO>50g*A7f zf#)})V5wz@Hng`1R>!M3b$r%gWqLpPAzpGsaPTH6|MzQ%ppJ9+!f7d3KXdo-v5VfY z?oZ?8A>0KkKhGpSC$>if1G6bgS5jd!!iRTo-2&ErToWMTC`5#vUUpB%nqWO}>~Z9| zBe2bU?s;=`FCs{$O5JfzfR&a#2lXeOz|QsQ=n#r@*s1sR+k8v|+rteyiTli9jSN?I z_ZlZ6bUQPu-*^=^e{j$Co?AhLwJDs@zp`NY!N)*7d1hE)KV=g%MuZ6WTp-t73W4=f zdd+5tMFfVFFNnmS!j29<3tm0~HcuX)iws_eH5;&qcP50Dnbuer#u!-nmSU_ikqavu zr3S7!30U_Wu3e=uj)=@lH1RQfuzvK>+Mekk*nCAQ953JttK#P;Snevq&JU}grLSDD zec1m*%GL$UZ;pB_f0KlblDgAq#TFJl4ka6r3&M*2($5Q;Y_OKztvo}w4fDr6nqAr= zV5O<)8xw`$6!8%k4@-Q0j$P6zAiv<36?tLmqXoOz*@`8)SyQ;ux4JBd-l*VST=I< znDcrHi)KPtJ|O4;F;d#z%WOVD*gKS?>;NSe*6nmyU8ogv2S)3FJD6%*N&}ue2v3 zXmeNOO|3&jdE8=!iam%#K=5ms^kLXe86V1I+dxFqEeBs0i6a8xYkRWThY_(__^5XK zUf7AU98p-QMMS3(6-5OH5rJi~_WFhzB71i7L!!e5Y=v0QmaEmm4*4DT+lly?N`3N7a<&N~IwHwz&nSzCgo*1?KCxi)2Jt4poks+EMl!d<{bA<| z-@Z*J8bm;$F~zzQfC&5Eh`$e8Lu5<`&3_!&K!g!$B^lu&h$vj>rpcNX)@AFH?>}pf z2=FD+K@+2h@Y- zip>|*OA%pV;Ddf5SJ;j<+}~*44m+*smW%YMu&od!ShIE%cI=i2h!0>@&RL0VI*}WZ z>Xd)zo3(@;!l>KZYAu*v*G`_F#Nsm8bz!7u2ew^`Ci|}FAVMN?AvTsTh+xMyIbz~7 zA{t$nI7#aSJ99I?hIE7wkrBt9n6qJsgm^PEX}S=$1kbmBIk$|6{2JKpMIXb?4xTry z39E1FTSt~!OJT>7^L^9aSVTA^ARw&ShX}O1BLXt{5vf%9o(WAF*m}ry{JS9$Y){I| zJbk5yi0?f=Ih2lH|dWE zG!|5rmv%6H-SwC9LSbh;jGEd|6U&E(qi@->T7%04>OhZ}$!=;<#XIt*Tz|x8Lxn56TxGwmaSCSA6-{C!`tk3~1Mys1o`qyE! zY3BV0p(GfrDvhR{QG=2AL2^MqTWEjxX=;_?J#-g+A0;|455p{7B+|?*(D!xki)w#2 zXf`a+ltzuvLm`@TsJ9MUa=0qWd>Eno#)Nt2!c*w0yc5K9=m^x(e5rVK<1KX6gkJFr znSj=ouL+av5>U&sr_AWsH5lNR5HoFXfQC_@56|!_(9LS6bDTF9TJUR9J11jyK9$uCsfri_y%LfCWKwpWnSo|mj^o*Gl9Bo#E z0WWT{dt|{d!j*SE>}@_Y;DxLDdxN0ADryurb`?6;2oK-1q=b%nww|}u_0TFnoW?y| z0$sC>DdwLfp{;P`eXqqH7?P_S@KxS|hMapTKb5}#PVJPB#k?)_OJxZ+0tK`P;|aLp zx1f_;Hd@d7Fm$>ui9Ft$1)Z^HweQ3ULK~CGg;95GpOl}CZd%(CTZ@a^-vD%$d{BA<2Gq^!^xh4dyD$$L)c}c#9IMZ@-{B zdeuC?cNGuqNhvwHec+RzxK-W!mB3BLr zXfS?KXHIYj@S&P59V>OvE91YV-!K4;oITk#wT{sK{+y8TOCxAcXFscs8;6$i>b(V& zSD>}h#^Q1395g(yPs1DdK+~b(7HUBnX!u#iHAR^SeW%^y@7v`=f53qG?G_JcQyRH> zOv4#^yhj?3fAoUpf=8bl{aB&H?7}SN`47_ptJhjR*mjKXgq#?KvW+)U$em{Ax*cT@tMmxL&0EZ^ZIc1=)4x- zO~uY+k3>ON?twB!rMuARu$QNN>^yYK2{-s#-vaz1SNL8wF=((Z(dW<7g3fpEB)YgB zL9^c}g>v3u=s3gtTGZexbfSp667Mvjl~k+4Jo*r{X)xywdVYh(jD<_jzE?v-yILBp zo)I*j^|ZN0=L?-R+^1!1R-m{1xi@l}fp!Y5=%3B@(4#hL)$Sz&%@*6E-ooL~u69g9 zr0fVZZFG`ENXWy`0Y1Su?3^&OP^(7#<|d3RD66ZO|AL7d6_QyJUto&i!F}o32!VA63Xa@g}D3>o;wNb6?6#Jt70tp5lMD&JAj-SUEQ@dT+lF)0}OdHXs)^F5d$ zoH`Z#RT~DH*O<@BHo#zq)1s0@228eV+};S7g^}}V9Q@uwFq!@OjoZ8(Oh}0G(|q^@ zqbFCLg&PjSh_wF37ejv-VWWS%ct-$+Ti+7e)sDhodwu7YM+A(2;~VO2x&$*DW)n`e zcVLq5b%kGuJ4`oS{!(Ha4I?L?pQ2hg1tVVwuhGOaz$k5dv_?`j3{`yac*7S3Q@zZz zWt8t=#E!0R%HcYU_ddzslRO4fr>+&<;Ua>;L|;QmS8AA4&gXr*Tm?h@i^HcMVttA0 z$DxDr{4f~SKXxg6Ka6cll%qlt7;3w@Blh7dO!t{qOYhZ#LAr`s<{ecSQaNuEOmk#=tk_F>ddZLuRBruw+O|kNf4BJnTHTp0NBQ9#`Lpxt# zXzAA8DdTV$(zA@|JZ}zTjtw7n<`-dxi>5Nc*cwLdYo81l-hhcHleCBXRAFRpxS54inlU|imiQSCw~40kXq+jq;r1WBpqsLw-~vPfVu zWj2PvEbT1i*j|`)+ooeX$qvJEPYzg!Gr?p_3;DN0^f0(XJbns?hjH1t9Lg+g9)%V& zDe*R#ZXV!GADD+h>t>-G^%xlPe@BzOat%5JV=V5Y2gZ$lRVVF4l zVBe*pZWtqC8H%N;hLJh}j}4q5j5Jj$mv}P5h*DRpbv+rHS^I+JY;Xs?a8jNNuiY1Y6LigpH^XV@( zvGLC&MYLYR$h<_K{XjiTsZ6cSA7;Yrtz1_yZ3Uytmu7jQYvGs1jc@Gz4`52jPwL#@ z0`v(HNxWMrfwBI*OzK=0U~qhha^mI`Ox-;ee1rQg3<=-#>HM4k{V_ic7j~XNPxz^& zTw?<0JK2)sYpw=;-py9wN-HqguQ5jN`vQi|qIlWr7hr_CyT<**4;cEIJSMuA2u3cY zT|G!F1$}XkPpQn9LX-D7{mQjf7?~vhIrV7{hHmTxL_~1Fq}Ii2_YbE-->Ass!LE1E z{O$3thmV?|uUMr)C|e48EUgNBO|C#w%hFsY{|*e0Rj)l+`30@In}wt?;?VDOZB}g0 zIP@K_i_5>w0<8x^I$Vgvpyvd+e(vyD=oeffJm2AUU7+cF z{GH$j7of%S#oEG_G;|ad^W~m*1UyNJvt>gOG-+DiZ|oC?misT)#du?&QIh?1RQPEa zqLQGtl$C(-`jZ?KvA1BTYi!u#iZ4uLuxu{B3&r~M-fcI%co=vP_?f^n6vkNHN;jX6 z!<22OhPt~I3@#p!zH&eiM&6G)t`tzfCHizQWIL;GvtQ8sFUp{ z+l^u1vS#JZw{{q>`-Y1N?}3qt?8K|bSYWJoNzqb&5k@2RNBW3kU<|dqD3=z3!P)^Y z?Vsi_5P$oA^e=K4GB!7^P?QiLR-D5s8W98V@s=6oF~UCz&v^$A;pz;dvO< z}fw3(>oo-HRTUel=Jt;?ySO~-kpljv~Mt^ag{GCYXc@|*!0T;FTtoRW_hB*smV;D8CJp3fLtoSDkuDPuo zRJDeY!5XJnDjk^o&O3PNaw`mtGxX+*$-vN?7B+u>eHf$+4`Zpq=0E*ymd^4tjC0Gf zm0eka9zK;QZWk)(PrYg`#c~q5pK{z0>kzhU7;L0 z*vj5W{9J?1bSi%r3}^STJ*rmfs)62*w4_^FzR>6Dl|g=H9*f`09OE>6(4Fp+V`Kjs zI;g zkyt$UC7;(3pACe*FjI@9g*(tknn!EK@(TKg2QCS{J_vnFnTx93elU39r>oaVTIj!} z`TETQMyDG-^~+-WpncH!`h+VCJ(O2}MS;yH&zzTD&JF$IXVz+t<6xjYcU5+y3i?Gh z@id=>VBpvcp>0$*^sCPwDl5hA|2W`EGM)f^#G0IMRF6UbXy~i0ybb72`ZoEB+p!Y@uN%|Q*==NE-)VB5u z`jo^X!u6=2cQ3^?0S95|AG9$u6fcIp{mX0mv1`z0d4p5o6FKxIX|?+ry28K}hC`* z2oYd?(Cad3qgm*?y-&+hkqP>g?SdSH=%Lp@KgUJ}^GDjp)G`kb!oYx2p5oj%bmyhT zz2j(s9)-D$fF2#_w)%AVsB;)}h3ylV)trI8$aLmSEYI}|D&AM8!0b$3zdpHY4}A`^nTGh5c+`$dbF)ZH=40?%b`uykEywG)R;UB^kxq%=3uzoPE?({tq{5oTX*D;%|Q3BLl5Xk)uEgJa+yyG5A<_G z8E;Q9bT#4Ly_GJ<^xx;x^uiE^w9`jDx$|H&PB$adHxq`MR^~Y_QNmyp@B5CJD=g*hvD(>n!Zhrxj=D?7a;= zUFBRxy3Ek|q4p{N+9l}D^6eut7J!~pW)1g7%VBi;<#X{d3+R7w#QFAptPVy@GV_^Y z`TWYP#s0}m=&!h%^L9KK`cKC<*^-xHeTskTNZ&OWEcZFBEWiVUmZW~qQ?9|V?I`&~ z12?p{ad(qhr9i7EHBEeP81#O^$zPz+g^mL_d5PR`XmE6o5pNuYP64)!#Dl5O@OkSN zC(a5w4o<#X@hygKyHZ}i`>If#qb5BY_X1jm62hifnxQF&&ZuYR7*t6#1_o1PL-#=4 zbV&^*;MTdXZD`a$M_8Yvcwihf^Eh@`gT8?@+U&%FEc9U5(aDO{kDgjRW;qU48WQ1!?N6%b<2GyXGBKZ_h zZhH5`G^-iZ6TWtJJ}?RRo&_$NI5%i~%pTjH<_lGHg*>;oivT-}iITh#sPT19Qs}6J za$b`n35^zLX||Ytw3Lter8RZ?flTOlA{S{M7zzDDwJo3gJ78#9)4MFC0~#&H+GtNQ zKri!z?2hdb=$x}`I6@%@?L&dbAmA+4FQ&6Tpx}e9e3JU=uWZn%tK1M_{vC$D#_C72 zNkM~)0MFPMJ2V*ZBz4v(LtlY(&xd{$Xy0ZosWei6K3Y>I;t%(ri@=Bb{gfs2Y6bZ@ zYZ^kUCBH-cD|5iBN!O)LJ%dKlG`e!VJZOn{I34_K2f7kc8h%}lgI>Y%Uu&svq1n4L zFi}Sv+RhmeP@dF-7GL^4&)EIg{A%Bmk4-_xpy<;}T?e5>Vz|+v{R@UG%r9TC{Q)f( zp5?Rd%Yjb1!7a&AtX>t<_1dE*XjahYYF&H?on=oRyS~bR_Sv71waNkAO}yVe-r|LZ zD)m9d`^TYAJDBb3R1UO-%?Td)#Q^{;osN%B<#oJI4T;2ua<;3GPFK&qwc4 z&1GnLYd{xHu@5?vPiBtiWJACF1%up2x1sq~zoN5^3ABd_#D4w43N7dIq>RYBp}RH7 z={ehX=&H}jK*snU8e%8nCip8iq+@n3)sxYz#S3D&n0XiQ(EON3L6sBdGUzlBn~B5R1Q${rMNypl&g+izX`ynhzv| zC8Q}p4e)k(-rs=6r@8WDO0-bld3|bfG#lEVtv24Rae(@#$%Q}6bD*Bg_U#9!B51C5 z)X=v~20TYv4?d<3T7-|VM4B%^gDG6T@nHlSviZ!oNpb;4krrDxBmub8=GuUfL8!mk z-+7tJ6YyLF;-4}A8ca-+AMU*Zt+;X4ymTDkp5MMFQjOhDS#fMWDF|>OV@D0eI{^QX z&Q!Us6BVQpvtm?CUaZO+G8J~-W^9<%m3#aBid>JA3Rm|BWK zD`km_{u_R%<8Yp7JrNDH&rc^Gd0`Dr_K8owSlop=|29g}kk`;m_>%62TL9EAUz0Ah zuLk@#eWuxL6R6WAwQG^mgZg}xPZ}`{P<#1BOUK)SQ$5;3ydK!z@fT9=g zvmz~54tqR9aj&2D<-9zqcm&dO_?HXZzqy8&s zD!uvc+2b9k!@bfz%S-~z#1_3OK5T#!96MHbvm6>o%#Ifv@P)eSGfezg-oY^`$5R?k zLLEPid9`OG;FQu>3u>AHck0LD=dyRuVioRRY#9tS5BKH1C3+2Y6k#j*A7r7v!@5Ix zlmzNd4I8>#$cKjg%vP%un4Vh4!#%0_0hfF>en4a|G=B-dDlBmnT0>|~ZE*KO^XcSE z;&y}3bot5k(4-&GMRI=PYc?UYi&mA;XWfSKJ0qS&wwItapCi!w`U${^-pjETJ`EkM z{&R0KZJ=(3Rak_E25{wDM$cB(8FbnWMCg!@5K4Nus`U;+n1{y!lv&?UIjIz>K<$8_Z(rkG zXrl7!PJYJ+bxnu%r}M8t0%#VZuaZ zTq_Dir>L8k_9;MRDi5!tKNH~f2uJ4&N}x7f%wmE48Q|_bvSB;r0Y9>az98QPsI7WL zc}wOh-~@!9HD3G##mXPP`3ojO#aa%@`m;DFcN=2kew_fgf#Y7Evg@IECQMz(#tV~Q zKlgs=CKT7HSWRBxfPy!dDlV84K|}c63X!fdXw`QQDQ~2O<}3vg;}?n;o;7Oy&=UZ? z9r*){3GGlxgMYD^+ypJP5?biza@F@#L(Asg$(?mqX!Nl-)ezo= z<*n4Qc4J=X8B9u6Zs&)JnlsADSe>m4Hk6b-&IHZkbf@>kV{yDp>>({W4y|8M_D|Cq zXwEt8zH0Umn%nPRCD``?YVRh8_QaloT6Z_rtY|vG*YxR}Dd2?K&DOyzM=USRG7sNl z?1rWjp&9EhilBjm)iVz3n{Z*Vhg)d#p|;21JJs7hXwFEcV-*?zoXNOdkB<{HY>jbo z8)LY`ap7C-6Ra+r33_5JNdip{w8uO14r6(KqV2&(H*-{1}*$nyk?Z26WWfC%=@vK?E#kXaEkDaKds2_kfhD!tV zlqS$ZaN75?)-Pxb;^flhYKMCE;K(+!C9GZ_J(ewM1hwJv@9B5Mq5fRTQdmn5;N572 zVtm%1x#5dBb;bd}+a7IDdzu0GXOju1uFOMSdTkzksW3FTov6Sw-i3OTMam^vJs4`_ zqj*EI1rr>aLZ?adVc=%^!&Mzk7*SYX+CN+mV=<9*Uy@EjpOL_n$FCt6N)S*FR9%C? zu#;9652av8qJJqvDGmnhS+xWVSZv^Jw}W6(U~^B%=c6zrdSCy;^VcwP?t?IuAv5%?@}AE~ z#pt3=wc^*y&^r*Z&((wy2D0Mqe8--{pv5b<3}p=%6XEysnRy8VuT|*pTu_Grza#YL z?{PtYd71#%6Ac)=>2Slhx)28D*u7`sm0`#W)$$N8!&qpj#vZX_Fd$L1{#}C`hUYi0 zTn^oUu{9aSedRM)UrLL+{;Uaxq(9LFY&yXpQ4BG|S~d)sn;5n4!Pc9p%-nITgu#WI z{e#@?Fc|(og8J?(jHTIxCn|S5ZW?DOkp|?e6iT+a{478@-ExDEr z0}30iRRQKOMxgXlleZZ9(q!a>YPg_po>g1w>0{_mJGe*v1-4E(yiYbIf`KhXZ*xa= z7^bp58qBl@Mia8~4p33Uz>&0rqLZ#LVze!zShWq~A`^$XWv)RVrHOwkhJ%KZrDJpn zd|)u(=Q-Apc^HZj4mgYyVbD+8`-eR#3>j-r{OmA-Ayyq}%dJB&wp`LbCcFpw-t0e_ zy{QEKVN_n|_zsNNn@OIR9*6!f^$U+JU%}+QOEDunyfA>LF(9u02_p&bTtYvpK>tA_ z0tSTjpBfPrwzD?ScUH=akI@tc1@5Ox6|%#C$6I^yLPZ!mn4m$oBaHdS-sgv(pN78Y zxC6IJm|%diQIoNN1_lnDR3?A01B2?NHZeIj{?7ZAqW|FiO3^=gzmnlEZ!?;?Il7tK z{ilz){ZS(IcO^&uuH@+7l}P_xiOk=X$o^f)U%yO8|5wTHKVJ9;fz;m<9Qk{Kqkm5z z{r3bie@`I$_XKjk)9{ZUHT+{D?9{y4Cdwu@+;ln>ley`6TKY#c~$?x^~<3|wxDEYlUfBY2UA0@xn=Z_ym z{G;Ue`uy>;h<}v)xBsmN3Uxyjo!v42;FW4hs~hH+(>PwU`zPM2CjOuIRyD!x|E+IT zBhCfCij#~VkO;x|!Y*eMkQFsV{JyF)A8SSspVK1!K1X9D(m(y4 z)$%D4G&>V#n5~KSTi9%!v9dt?A67DL^A(X`FtY|1V+Ru8RUM4FNQp%3+8z?xupwS< zomf?yPl)&KgUcmxVn|RZ)3I=o3GooIjLX{eAi+$*;FgYF#N#Bj^x0MxiR?XPq&z}} zc%3E!*6d6X|AVf02gwD*y{x|fRr*83(U_&~S2%=(+_pL!{P0Lfe73TalnV(+a&aH; zeUF4ZI{Tw?iV&x=n1B6|CB!FdzDHm%1@YaB5v3;&gLTuOwrN6tL`gGnaZC3sB8>mw z{PBSaBI!IE;_xy95eG_>tJ9{#rsjT`^($u(*%#Z-7A@9@ShgUJKSUG}+I#J>9Qoy=vtp|$#fC$)+#ptS)BVtj}GCJ+O zuygI+6U)e(h{)2URmdzKc0v^sf=l`lac^zFbet0+e5lAW%CU(EUb#Q=+Q#IF!5}o? zFzn227VKfTfXHOVZS{>t5XrN`=ep@Dh)62@>8SWDBF-h$3%cG4>w6aYDee~{f|3(I z*~r2W;UxV*f(s+iXCwMkcw(^PqsNf-*h z{kqQn9!yFY;$qUoV6?v4it9KbjD^r0rn+wl!;?+d)j=I*js4F^*ponizL(#7p-(Wo zH6~OkstjE}L=V~u?S~<t9$SI>Tf0Za09CJP&X7LGzIp=B_7Ruol|F3VAi={A`Hn*9+ z;19z(jpWNu7+`{iNwDO_GIS)He322NfKf*U8V192Fus>t?T3`}-$7p_{{VfF{4;;2 z?Y}uWQ~z6X{>xuW`v>`X&tLNMU;ZY}Karxz{|Bb%)&I3An!%x`FlE9EaaR?+?byjf zd`um24rPvrZRnoizN!Mmo89yDfwdvxyJuSh_h+^FwcG&#KvlJ=T2P+V$yWtx7vFf z?f2UrW>Gnc_WkJM%I+|QMZ)+UmYRczaO$Zy!Q_6}zRbps4r?QV)Qh+Bh1g)bCtUM* z+Dq6zD!FrCF%l6;?Bi6kn}wZ>4l_E&F<87}y!jQ^2CJ8CK~B>*A+3U|D~PEcZJFtU0b3Nxlq01do20cW_O^ z&LgV#n{loI7CT*9+xu7C)i?c(rvQ-)&YfH z3DJ|#*i$0Qk}?eq`G#ks>d!)x|Jj9;m+hd2Brn2T*$Nu_pGopJXnsG9d!TC#oeA$e<*XW^ z^+O zKY{j^5M6KgGl2UXS+w>1GPKHt>G~TKKxwhuJU( zZteC=n70fxPRMM91=7byeH|)cX`*#;v^XAShC?p~i><(nsnWrK9xGV8^JtjD@jlFO zx%d}Q--Fp93UaBq9aw68CG9LV0kbEbNYup1!Ytt}e2k|e{7SbyCE(Ku zztX}C96ip%as?0lqY-ylyuh8p6hjLOMoWzSZw|uJ*!_9#Q_3*zLn)e~oeJ|TcH}~# z+pr+ZKth~!1J+wNtIZtC5J_r!N9<%JVtCFW`avZgRzh#b5$%aX3>Qm8NzUsdGXAM= z`}VvN?O2{6a_u8`4K5ypH4@jyvMxul{Bk3pf+ruAP9#3xGx!|s8NOSl_y23} zz2mA_vVLy?5hN&aqXZ?Y$x(6^1tchf zL=#DU+cP+K&T-Cp?w$9UXXf5H`=9mc>RMIx?MlCD_FiP=0m+4Dd>?}*?j=SRv%^QKK$MbF!Dc;VB~*Cf>HdUZGL%?^sCe8_ct=X z%JR!QjbEkw@>bwiDZiYne`u>;Qmn0Zl`s`E~z4Ip%=oenVA#WmP>x z%>(=YNa0!8;;lJtZtrYmXZsH*yiNax3UA;)R^gF3U~IW;+kw&Htf*hW2+-b-8Dy1+ z0eaH?VGlxPftE(KCmG!Y+N~dUI4eE?Mtj#=p_Z~hC+L1ZZf^~cf0=c`^c{fOoruXR zWjD~owdoQH0)cj*;dO!CVW4-bVOlud4KycZ1L}6B0JRpm@0Bt;Ae?zko8~jdf(KbtI>r(bLc7Uq3BqkyEfoe6Ib|nO;D(Fl0e7Fsi?286_h1!Ao z%GZuqEq!3nKCcrwwhVOc@=M3<@OHY^WHWAf1oSSq46l_Hz-IoJPc@~|f#z%YRrlBs zpbdECBXW{=UE%SqD?GN}C_JX$QFsf#qwt=rD?I*ng-81vg*WjVh4*1y;i>#@D!ec2 z3XkG93h&*z!h7~R3UAME6kg-H!Yf)=c$d}{-u88c7rUHk9EUHmT;p2)hwi}@Xe*T1gtD*iy>S$Q8ER>BpY^Rl}8;LA1O*4dV)Hl?(c|+kN=g>A^#=ef9afGGW@N~`6c0RRn9L7e=Bk*z9+0}oPYKo5_F99 zRrD1#|47DA+T$X|&f4rBR55?Pr`qsuq+(!LZP+kAAJFEPFXud-f#TC(^U>loQ1blH zK0CS!T6=9LNuJ#UwXA^DGN(JBwla6Z_<<%!%w_6SHJ*mOgIZrT66#>@6QVCdWU~N{ z2^VEI34)ZIl`H>9A0UPBG%em-P||1OIrH=~h#u^a8oAvGss%QdE~>5oi{o5-UmgJ6 z)-B6sf`gzCvPbzs2S4oHyLzl5_&V$>cwy!|cO7It5x5`cm7hCmvO(!ciT&w`Gq5lIU_2#N z0_?MI?xdg50@>v3f^J$pK#%REF6m4FFn=_8^jQnk6V(f4hxdbONMcOn)>u&S=)OGU zvkW2uwNo1#c7h!2>3&DI43d4z_p!SGd&}uOTEpf+l)q!Ux!(ZDhYOs_ImQ5R`cct+ zNi*Q5x~r!`8vx2*?(F{}Gy(gx-i(-<%z*aSzN|{$P>_2$jV5MU0fefMJJ>6NTn1v{mB;-}v{PkY9tVk3lBcU~A3&aEvB-W)G{~Qc z*dEKW9aPEnOeeSTfC{fClf3%?C`n77{d$`L_DGg;x2EWU6uNqFi^ek$r{nWXFUbIz z0C(NRQ8Ex>tdG5Um;@xB1(1gYK7@Tc9$hXu{s8tc%&yhf&4FUz)8e6=GLYAIXtI{( z2F><`=Q$h2L0Zki@`C1mkQgJnqUI0@(#$koZ1*NWtW$8AiIEC~A}oUv#Mwc{Xn4DA zb{5El$jR?H?GK8}N5-yO@q;4uEp=bI4v>%k%s?JL4vHr@`4UP=VPDJct?jXgK&oZh zPV6Qz$citOYCNt3Q4g}mdSojg>$O`*{vqD~s>2-{it<3^VACG|1RGG^Nf_p5r3FRa z`X}EmM*+{RrZh4s84#}>Jfu_>24bfSv&pYt0*TjAmgASQLBRX1f1A?^h%YS!b&k9P z`MsZ|oVT07uGa$ZH020@^pb1B2y`HqvSOh$u@^M37Ha>Cgq3lWpI&llhxc9Y}LdktdcpS(4yi9mEB zFlF{BEr_WNT|f7=5%}L($||{?0I~4a7(KdZkZm&cH@cDpJkOAG#``JQ$MDVem;pYH zeU-!Y6K;Zf+xV1bl_5yFz89F^;Q`{5iKiFL*+5*XHveP1C5ZCgsh_Bv2ENzQ`9*VE zK`NdmRgRDhVlS0=yWGx!Lf+&+afCD=VmIOTPHvDc)R7n%76VuclXS^r2DymN8%6#H zKAK$<@NKpjC}@ZW;U*T{ z!J-C`A!XT1din%#ap&Em-Kznz_Y4op3=4p4Tb9Z7wjH4QQq8RV{1=dT$PlHQ$qb?v z$5f7Rd;w9Z+Yb!(T7j^Dz0Ui)zF^H&B?!72`1mq*Vo)yG} zgM87I4L4s9gCudif$7KyK$8875ej>d8PAm45Y-DJInC!O6?THe?YVabd3RyQ?(#RW zL2@8PR_~BZlmwDHjxI8b9tNfA!2s)pVoy4w-%1!C0xrg5I_7oxAQZMj zaaH092$KnQaDO%ez9YeOJwY6>=j@8(+iy$2H&U>Yvit(1ZoD`#b+aDWGnS5%w%iA) z&)LS_{Wn0CZPUDG)?rYdC- zu1X90EFw-2_nVQ*43`0cgon9h+s=aQg=kkd(@v1>QzRGVSOW3Gaw)={{s70123&IX z1L^QgSw?q$5bQL(r~Gm2f75%ae@ghve|9iE4PzC3Rh2&qrgzr;jHCIPKZEK0->udD zQ$N@=^#czXsxYkIyGP$nh6ii8e5U=-cpx@9_*|>jdkLtW^9)Ap}7CZ4y?|6enX`H zJT^8`wYjh7J@!^VQ$^HuA6BRF_6*ZlHTJ%}_kp}r2iCeW)wXOki1pt1YSyT~7n?`7 zUcZ`&Lk)6!+_%M4Vtuq@j;u3>v4t#Cw+-gA*hn!aX(f#n=6vEoIUUn`?D+#hRSBcl zSO@v+aNkjGG&DCFAh6VrO~(uCk=XKKtu{S$nMPtaj+ zCIY!VCDXBq5o7h^3gOtOfx=ANmRHzn@<9_n(hTgygKLs;Qw*qrZt|iwNf-8fw8!Xc z=uK=k^4itgmxZu#I;W5c;ltP>bJ1nSetR^cc;v8>-5fTcv-?w5;sfkqN%P6ir^7HT zV@G(pu{rA4v^+$w(2AAE-e>V*zKeCQMZDq{=s|rbe2w9#IX24ge~e6U5{)l;CGiUr zVee@8PjBfuiUtffR*MrEqnFWwo;FucVa*p=%J#I|qfut+7xPbBuy;MNjc zsK_x7Jy&g@yDZX=`sy!iyLw<84ZTt~(IBK_&nslD4ryDVK3`py%X6J*q_g5n&)#&@ z*D`#n!O;hsZ_ErJ(xbA~Z)f7wkm+I~}xi^%ODeq{W%X zwv^cGePPBMtMk!w%RHMw$vdd#@fNZ^X+AVcw*+$!+R!-N^}x*F1T?|Xt|2CJ1eKUQ zvvrl+gZd`F1ib$G5{P^(Yu|ZD* zy|mx3`*XK6mV33&E$|};>akze*80qfCEgQu21 zpUUlcsat_%p0w!pqi4g~1>KnX;_jl+9b-U><(tYhD$D42ubTP^5*yL0tWPk(-J z$Tdq;nf4lcJ$?>#4&5MqZySLsw=J9#i9C&7cT3h&qgs@w!)W{ToisLY7A=}oXN^5) z6|dvD87878tojd>iF<2uCX<<|fe^T(!WWcZV{>v>}|k>(TAMZ=9=97%uk zK*j;hbA4LKdvylYN81oCT<%4Kj@5UF0}1Hu$!}_BY|~NYf^W1Q!xEYq&p0Rk?G36= zv46E>%z?_2HyN#My@H0lSe`N)ccJ#~!dp_Q%INJ;>3a|C9Z?( z(OL1JcN>~Eo7h9kZHbRWuQBkMZI01L#Vt_}BBFGtpct$L6owsyKD(~bq6yOI2+qylP)0)UwMYbU0E0<;IinPtNCKq=(#a!JdpPy!-*WVC!J|wIvEi8+EFKhOrYuJ->zOT}p*s-F3M?_*pC0O3X+L5OTXVHDthl&ek}?ir?i_7>ywwU+F<9th5~J@acDV3 zq|X=YD-4r}Wu(KNzvGwxRLzC;r9am?_aqA|HspFl9o&XBj%Mj<9OT9N$99oE^go7m zg%DqF2+hYzUQj8^nayMM2M+gSFzaKkX{nXk6~S0_QtgzK)Q0A;C z)@b|qj?DEatUThZSLC*3tWCP;hE1p`O4ho!RVD>5r^Wd5QWpVnyr3`59HGLJ=d+D2 z(!a(+Qx4tX?tF;FD-^vFpN_-|_~X8mgq=gNQfemE38Yw!+WmKD$LdhJg}9&4Y$w+A zA=mL@BA|q(pnE|kd?+@=aHog*8dfY{oEu53g-T9G$-Q9Mk2SwPn59V*iNfuS145hS zQM#i=d0;e#3QQb`h2JWoq<61`$x1`83dR@2iF|=5{=@$J?T1KFiUpt8aC#_;cW1C2 zRNaBKKS)w??M=a&b~*4$U6{mz7I;J_lew`R@|O=Ay~t6PDR#_^rvXcPcPl1{xe%*U zljB;h@<3@*pT%5SY_PyvuqHbdk8&B82G#l~P*(WP)@QwLD5vgONN(+IY)yI+rL@t$W;48s!j1V?SQa!tkOnlsp;*zO0~ra!uTdIZ%3%wNZj?E2{y<5hFiPW}>{c|xu>3myOT|tKSgAO<>|*T@ zcGu$LNg>S~EV+X`hS)6)6^}%uwGO(X8*2Wq@67MTBC}GogkBh-Y=N{9KlXX7)>^~6 ze$*4oc;O@d{HrdO9q^vxG@Cn0HTs%i9km&&x6Qb9*p`4Em&dyCoO4Fa+RSwY2_>j9 zwc#mS>syrP@qzNQ{vwugfpo~QQX9L!p~~;{P(I4Vo~Yh8OF`Jc({1)tX_yZo%Vf^; z1iC-AX(!F+519LNx3Y!)VC3g&-z?6Pg_8O9c+R;~pu`*5DS5UC6$NQL<8hHd;aSpe z_IYTaZ1wbErAwwLZuP{FOgsTqk?JVQiN;~MB%$3*Bgxo6rb?E!!a=N_MSauz*U2ao zh_ASb%Ap_y8Pk?AR#ZvZ{h-2b1Il6DiuGG^qniHhq=%dHQI*~2Dop`l)OJP6yM6vK zs`ce|AM)OYQkjJgcUughoG4!xX_8P>A|H}ZTK@nw^u4}sxGfb`z$G^-wM^9I<6IC% zav!BQzw_Ge-hfJX$@uxTtf6N{TRbBUh@;qpdQBbS`ndkJ5?{8viK1+GsTn66MA5Ze znbC(Xp%QA9?81RWl&eA(D8@d3+Sj_AOuT|nvJlFyAofH#GxJ@FWHBg{K_&eP=ONT- zReQun>>X;W9{Kb+Zvs{AQ)An-PYA`2eBinKHXNnc^AzVK^`X*64==KL6;!W~?zv@H z6FoJ4N34*NhX&NRcfO2eN9`PytP_fwsE4d_@b-)ssyio6BA>2?TBnsdxfwE0i}cM1 zYaMfxov$(1^7u5W$i3on@$?>)t?@iG_sS;J@$u_+1{)$2ZN6LmwYeb5o3l91ol%Ku zG5N%R4<6XPK1YTE#E!bysl_Q`f>DOE-jO}mSWsHLw&XtIy(qRA%7`W=P-L9J9*J8u zs42P8nwGGFtVg#zpB?H(DGdTm-4oR4zBJ=uzt5bg<7i$)!e)Kc&AqvDTt*Icm{ukw zsC%H6b1h||HiuErs#Ln?*BvPB<_E6mx&>5WE$c;=(EP97NB>nHtn-Z2oZA5jtRi`1 zBvS}ImUleY{?Xx+SpB{So5zn8V0B_cH##Si(WQ1(!BHC*tnyrhD@!H98u%RaDZ*v3 z)VKT7zwV^K#;LCsPY4{qZm|jM2)nTd!&e}SG|P8b&c{i&(Pm|=F>6Iu>g+JqvHM~8 znr9W3B`zOjyJZr49?s6EV!?(L5-cckg?D3^wvuM-by2MMs$qkM@*ebL8$*sjw-#10 zLoMynXMsH*Q*W{Ax{Y;cA6TmoRK`4Bx27@Lx?xo(y}ruNGGN6t6B=0AG^*8Q%sB9s z4(reg8f+^KzzS|?yUM?>!0yafl~TPAP3#9nn1H`pWuV`G7* zQ(H0}u(6&iU)46pV)fB)IH#{yV!iaAYb9O3Y2R>u%K97@gPaVN(?>b~z z#93n9^D-s;q+3zFFO?Ei%SSAis#Hw>N&`yP3HEIjsX@`N^t|d>zo1I81czjk5G>@# z$w0*ul32>q0)oqvL{u|nNMWZRhgF>T@|D?O7PXch%4s9A!dkkXtu4oVv7oU|lE9#=sKHInUnkTVd$wbe%W!!JRlFVj+Fs&|s;km7Xg>R*T63}& zBRQY&bH}TJFh5f)Rr_I(dl_CHkzaG;s{+(SR+MHZZiK4tl|9Ui@WDDnsD?hNtYIxH z)Z5Hs@-Sb&(#`Yt7qH5hm8VatcAzS~ZD!5{9xU{@+cC?`qgb5~Rjt+4tEe*i@Mi&3 zhVm}nnyH`fM-6@om&hkNP;;YY;)3`)^el4Zj`qt*lxn_EsmY#*sv1PH+dTj^)u^&x z{gjMq%$B?Er#?arzDb>WSI%K6zOje5sf?k5#H5QeT>hx0*pgiE)GHLDw~!Ac~rIS;Ti3VOz65`rP{R~ zGE}Oc+xoH72cNdSN{M+Z2ifjQrW;nIPXi1H7O&x>xJZ@)LYBwVrE7!`)9`ad)*4J)80)kh_Qc7~w*;Qqy=WO|g^ zNL`_O^f_vLQk>CiTZyu(PA(-I4q}x#b;X;T7qK|^v-vOB>rw9YVEY*D)95MkJ-LEi zMpdK1wwHFSXSi4Kb0*=8;f<28_FmQ`7n@5gpzJQ(t3Mv8kKD1dUS_( z8_FIrtv^Xjjhfz&r$0a7jZ*A*cd&HbM)^`VlJE4>pp0PwuI)k{sI@HS^{U<_RNo`8 z`Rhp&lx_HB_4w^KD9QeGdUL)O%FZK;EqgkR@M^!$=_YSc&L+j<`>tF= z&syKzcvx$P>il?aZ0^2=TAuYyTj+d1HAj|k+!ff1 zqP|M4&=?b;>^F{z8i%i<#G`Rvy0e>5OVQE2@{xV0DX@X1T;(t-=QGL5aX634s^+(4 z5v8Cs!YhSSqeCdOy!&(dgEmwt!p#_4aqwTgkN&GZSf{+0=yg>VtYZK6dNYqCESE?; z|LwkGSOc+XSZVoItTx&!k?hnI@-9^vb$O?XRr<`$(6gCf4NgNe!^ydrkAI6)`K&WG z3b*PW54vGj58dAE&)bD{533kV-HpStp9WLC)=a>jb(1ABsBFMGikGqq6YpXf%!^bD zBShGsM0=?HT~4g9rv6?`Qvim!NFD8WOvifoKN4Pw9>c|H#&q2lQLHM#^S}jl)qU3>6)DN8*<=hxKS|Bwdi3 z!3wvgT!@(-#cmur;rewL!@6i99}Q8YVVx5$p_jY5u`xzXN7lV&*aSg&WaIUSw@KA6CB`8~5?s8rjQ*y_jc=*c}y)Ri9%kkYiQC8r<%$Iwiis zlK2!PLy0o6QDH82$=e%o9iuL#s^p6mZ5}y3p85jo$})Lxbb=C#&6#xxO4P^Ngxkt| zf{3vZw@)<9zA{*~#6vIjcn_?}Xi7m~;49WjdqUf5#T0AaCF&R*--y+Vex21VX~0GT zPKevHw__EG%~_R$!RT&wuDWZi4p#cGi=*qt4Av2(U1C&5iZzUO&+Of|73=zzbM;LU z6Kb5}VKr~_!}8Q0(_aa_f;nZ%=2(Y{Vw!T}+i!>MM>T21`S}g*SV)!YP@AhDmMLm9 zf5_(ys($*_J#7Ce3}2!&%l4c=?Im-U^|^wvXO|hMrNXzO>Q`MXTpnJip|Iid^~5{a zF%^YwYnMz^ck-y1f|xAUa{S^plH4^^Ek6BLR;3qJwu>1Ut1hDAmedUGb3~~Ac@$mI zSRYn?LfCmS<`b%lOgKcP;*T1a`+7SzIird=elo4s_po*ugQBfrYgkjR(KY+xEy&QA z(t^HW4^}xJKK+*P0af_DS8yP8#+?^Y1Jw{7dAcG zcsLi;-?u%)o|l0=ZNB|VzS;(1@2gl_HKkEav_H21V+ML6S#f9arame$K6=z)>O4x> zRLyKPa2i!l47_DL8;A+JVexeVLZzo-8zxK{ zQC0b<(BAGjRQQ-8p8RSUD$Lok;pILf6r!z1{Ao-Sv%W8(dc~3vOYajDYhhtV4GW!X zWXk0DzMVWrEn|psu6;an;)5Z|`%E8ZdMgRVE^oA@J0^un=bnA>JMj=dkA~K#uYE+- zfvX>=19`DHz4Gwc+(W4HO@01Y<{YZuD%3FWDi>9g>(ph&vZBJ!SQXjj}Y! zRusV>E|~0@jtV(zKJsFes3z*%oI~CsijF>ua%YWE75SXRDS=>=vN4kKW*t3>oZ}n} z3Fty4O@jQJcB!D$ZQNcayN{#n2M&t{qoyd4`L4$8N2Dl6K}k&I%q{eol-^Or#|||; zIKJW&c@z~nTE8Mc;Ea`IQt=s2@nXSEi^-mseNhRM%m#ZE9hCNkS|>c=F{<*A9MC0f zM!7dT0s{*#p=x544hB1F{Ja?69sFnude)X-csSl0)#Te;5BY}ci=47fp;kcEL?7l2 zd-tNM0{Z7`$$F@2t>A^zrT|n#UzT^~@kZ2WmK}U`r31yj-ydmmauyZKZrC!GIF0J! zlumhfNuoIOy555ugHdCR2E(!e9ZD0wA*?lc3q>CemJu;zLlvDHXf+55D9zmU^O$NK zs>pPXH=!y)i5BJWJa`#UwmoS@5XOxnJjpuVZwg1Pek!i=ntG`2v~YN_&MuUn>lRRw zE{}3u)FRU}^HJf#bk5DRleivzHD@a`fOEIYKA0Fo*$z`fHrr@W3kO5~jH(r?@6QQb z6DUC~4u>=7jvYhQ-0HLUY+Dc(7diLleGY2KapY}_I)o~Wm&0U>*-=IRGiQgYDU`=3 zAjS}X5HfR6tOw-Z`R&YF3Gu`(4se_$fg4)pnSBS9T3zN2jbTLzWtWWmhz(F#+DzF|5_S~BmRo&;Dhg$IzqKy?t{BT6 z;D}zT)<&_6>SRqN=dd*DfO>V|WGvrYrdrnF4GQVl-cY?bk9B${+Mjqqgo3p<(YCyI z#HzioabL)G$Ih}yK4fTM#)@ytP+YlXf>jVBX4;_^?Dpv>jZf#Yutt0KJN*%k*!{}O zK7mclSc=5f!{JffSWUW}{no%Cl%jKO+{9J{i;s>aXN_#bs<$8S<0{;Qg>FbG&={U0i_pF9E?_;0^4a)2Dd;a^HCxnej(*vPg&jC5Ty|vu-7`7J zd~Hz+YhL298L&~u+RQA+a&G%f8 z@Oy%_o7(0z(b`}+XF>ui>&dY8fhLWN#)DX9ZrhidZ*Q;~8^vbgmkL-PQ-tru#s&q0j&DH@XaGKEEvXq!>3!V_325wUk0!?>w7M%Ac0D!K$uxImEU*Vr}KJGc4WXDEkVv&7HYhSOuAD zD>mSdWpnZP>v%_C#UDP8#wavlKAik9dRe8|6ZgOvH0+FFD2noALl(N0Th_-}(~Q-K zof|2hjz@)i9JdYHUBa4{(czxeD=3?#QEXKt96e2c77@{e>m}=jfcb~ZsGuxfI;3nJp+V-sIVLD2qQ`zaE5Q}wi7is$6D#IEdv|s7Jz>kG4sHI4r)5ePLD%?e>Mksdh zB{O}40hX-%=&ZgsC05s-G1ekQj&i84h@BS_#LUTb-R-B2qr5ah%4!h~R4^(jF{v(x zN+R3j%C@N>;Zy#S*UxgGm`m+E=brbW+&HcBOP7XFOyIpN-Pawcs3wEOIX@1op?c)? zWH}ZU5Q$9j-iSsy>U$HMw*+I^-^eVMnIutm*zmVe2NNvY99x?7I)$o^;-~AfLnv9@ z>Coo5E2v=m=@e3`L#QCzlQ*K{8dgD6<#+9DIm%S8RXJ<<2<4o-zHh>LE6OMnufNAo zkEIVB`p8*lkL5ZJTzun8j>T+$o;<%h5i86~y_eB`4VAI!TLhg{K;a3_B#9?=uo$%? zG{f`TP>x*pedEX(tlF%ZOmTG?a~*4yqoYYg!6sg_#P;$CQ*HZpRaP5o9GEf_IcA5l zWd(1>J(ow#u@QO&pG#4t@<~$W!&N9(;%Kg_rx^Amx!NLmD~9f|x7okH%ZIXKZ!&%CR(cWdSDv%P7d$*s;Y_mO(Jx}?{?|}7CF+Z)vWM$Yq(mCZp?aO5r?G_U4jAY$ z^7NqwyWWe-9;B$FX?XrBvnQ&3evM(Xzb1O}S(fB<+)Gq(@~f6v(j!#G$*NC+@N?=n zH)eLceT4^=KUU}HqRx*nwc|+@N`lM-PbXJU5s^{#9OpjN>`nCH_&y&L5$Nu`Z~h8u zzoJhrA9V%AZn^`(o3ElvlG6(dEMlmd;|g2-V%8#AD z@0zKGiUwBJrfwWZwa!lY+Aot(ny`R9=f!L2`5uu&4x0R^eb1e%Cp%nGmvQQGP3ps_ zYUjI*@J+U;GiLyP_YyX~jHl>>IzKLO>mlEk%x+@b7$Sc*AeLCcNP{Ukl#w@AsA9|DC-5 zoJUBa_;;V-UvHb4JOBAR|Npzcbq&hA<|6tVX+Yz--WR3NSWr(BHOYL(4;qJzH1A6Q zXbtSQ%Zv;FmHRgb8XA*8GwRe=*I7DH%V#~fNj3$Pk+M|!Q+iM-WwLSB83ffrXL@?- z2vB>+rrUbC2Q`f$Q2bEKXqQP6OKxx`V!L(lv)ak!*dX(+}RVF@%k95SK)#aoA z&f+nseog219hRJiD#`M7N zGO~x#^8kou>ru$rhk&5iX8}!$X%J;SI>o112Vz@4jveIL2)xa^OZT#SgQ&s@_OK_y zAnaS96x~@0f-LO^Cd)p6kk}zF^+72R-t%U}`Nc61c1vN{*Q5_(f-lqjW=_E#S~uD+ zZj-QQ+@^H-mJeQ1N(TNEIsYt&Rp23r*K{zj0^jyQqr?n% z5Y#SjW{IB%-rTWR=UaP0L{~RHA(a()3`!!ew^G8cdWF=D5jck}D}_-|AMl(`9f&q= z0R9M@ZCzSnz!O9gZ$ljpLTA(YCPpk_w@x9s*(LjHw~pE;amPk`W-le()!H-V3~?Y$=h8wiqJy71hT95|(fyY4Us%Bi;w%vRGtK6TvUt4;`Prq66ldk_d) zE}Zx7U%CbqPG`EUB65LPfPQkH=wl!iJnnXyGZx4>n$!+2(gKCh{nZCwlYw&WfDOqO zJ0LIS4!Ne*2c)i{-o5(IfrhMkId5+fY`k&5RZ;K&P)Q10EE>!Pa#{VIwC@^$V&{aR z>6P6;O2YJ*B;gut#188pDOd#(rwHK(j`cv=L#H*qXb9Aj{ELA2zE^ za0DI;0?JQ)8LPd6K>Up5|C*E2bu?>qTBE41BuT3wcwN; zK;9!5W{>w1NzcQN$6B(1UV=+ROX4PMv6bPmvVQ=y9VMezI*$U`)obp)O$@L#G~_X< zFCWl!eLAu@V+yR)+jc9xaRyr9>$9ZnoIo{vQ?8!U4=8%K=AU@x4x59LRuTk{0Fi58 z#9LERp!KXYb+536jeg>W1s7C-I-hyXiVzAkqJGgPbBnN1dRUjJ&J;)+Y9?l6G=Ywi z_>_fmG*FRx$ul%(0FQvz7vXbSz`nb6K#Ke%@Qfw-_oll5PulHohL64hf8AR@*QM*g zWr+pOd>#gl3ym@xTt5MO74_4d4j#Z^U7vF6^m*8!&LA~VWCS~gqT?b0t%37|aIzSrw*V-$hY_QS!a&BL($e$&TD-YDSQ zwP@2;yb2uAddEHKMSxjkjFXdUlxlRq#CxvOl*1W}6&{#nQP_a7`|eqH2SzX&$$4e)r5ucPK3ELt z;`w_YzF9l)1dJz2s81YL1rtL3+d~_r!DREt#Fi{7Frl{#);u8u#ty}gDsJ8f1}(wcYsOBVO1_tF6^t+5i9KV#2*#J^3#B?mpvKAlsdp;_)L7e7$&bAH z+5W$J|KGJ;|K$65%H`YCwHhH$GLBzP%^C8v4n9Be$QSZdx>E|6vLR1zc%?PJ0`fH7 z2z6W$kf%gWCQeERd9X|IW94PY+j~$$Jud^dOChDP-o$WY$66zL{HjAA%uI_Chk( zYrKBp3wLZkkV2j|@%TzJ7v!l+ZlaGh!Q11yTD0BrKb8A;w(d=Tuyt?xJ6rcAe2e>E z8!v^1sohyqT`e0yvA;=i{%wloPkAhVkAh#kyUu-+tZSmi;f*YCYWse$!t2_3O-a`=h+|_ByP$-(FoEW8dK`bGpZrZZ?d$35*FT=G?0>O#KiaWg?vMWbQJ(WU$B*asqg{XPw{<_; z^>l~z`mNUMwOr5l*YN?r_WQx-B=YO_{peqZ^>o|y{AYiZyPnVL2j`FagV*gk?~nem z+wg0S)9crNeLgh5ZkO|V{q`Gv-7cFS-0S6>ulO~$#rn0y559GK{zp64ukF^`>p1`G z_MTh!w})Sse>!@d8-9m-y*)q1iLLi-qjV?$^sd`@`=C-+I1N>-Ac$-?xI_aQ|q>5ANvSaEtuK zp7_C&xo&^>+plxm|Aw1poqN6BALHZfdig)bt>t=t^B?uC=R3E4?YLgQ^^fb{)c=Fq z?nim+_T+l{k8$)P{kQAL5Bp%^xXr!S+wsG$^PH*p zb$x&BpLPEq_wV-i4{rN)?vX#{KD*BQWBvNQ{{Asu zf9mh(-*B&&Z^!;?zW=hne~3}sA2_0?sI2`5 znw9+f>n?k<)93#I(MtU9Ct5cg|Bn@|3`d@7OMcpc-rtK(^<@eIW)a!@F1n9_kf@Yc zWatHZX1I*M&UOLI#l`5@k#3+{$Q(EcWI*)JPPXTO0T3)}>0D%3fWeOBbAit**y7Z= zYnLr6&>GR6Fj+VbTL8%!PpQFn;<0^ajpl)plR*2eUIn%cn#uO&$pPzw&s!BqB!JU! z7muZbJJ5G%C=0~q0ySH;KgBB-ptr3~ZgG7>rX%Y z0OBgC-Uj>wz-V32uB_e%aw)7;>QBT$dU7MCS}zA0K9$8pb7`>ew(AhH0})6tWbC?H z5(Jzn+qZdll!El*^TTi7`GcgckMZ`1aS-8m$!MJ82C-Kp$rtf@L|hA`Joj7zS;u}0 zlT{87(%=67!>hq>Y+(JR=nDSc7r)?nKOUdB0d>DitZ!s4-%|1%>Q2^^s73! zSh<>6o7?`)!JO)Qjx*-=&S(Dz-ini{sH*B298vy*6^r7Gxw*aR8Amg#e8B6Ac{3dfF_+Ux07?ePDB03>NMp(dA&{XG zwi2}i5VPI6yxrm^ps_VRogO2Q;Ab0#0keE81_3fs4q0 zm?Pf_xNa;D1iv)`&L9t~mNsc%|58Zi@{RzUigQ-XFRSo!RX*;^71cZ0FP2f%*m z^9CulH^3g234z5cGa-b?6!?C0c#XdR?k&0DamWmMPUViwR@-?cf%zlt^XtW$9*k%Y_iMVmE0g{C+?Bc9P`6Qg;-7f9id} ztTkG(F;xlLGmlok&e0WwWuULgnx})`9YG)5Xe-(43={v^iQ2^h|zx^X8R-Uc~vN_s{`g zm=gHL8n6lk&u4a%LA^lGdzTSjRRD}n1*y-4m;pWZ_DWjvMPQVro!a`$4ruNBZB-w} z0Aaw_Z{oZ!(1ni&O_pv4`s8O9!jH!Ty)bKq-O5d1(920U(RBzIhP`%2hx!8H^1U4- zAF5#6uF5J;?^R$N_Zm@1i3dU{qxUCHXCOFs${|(jlp&s2}vS`7GNoE z5L1%p2g1ZAhb`)1Az&hg*}QZ19P zw>cLn}C)1U5428AlPBt0wj7J*Et&Fdno0ZSjW;0!eQs zY$m%z)!$|aB)S*22>P%CWn%lP-h*4Pv2~err7RW5nz-*CR5=P{;?+EVosa0en55pozLCXUZ7MB4bL1Qg3Xy9 zXJ-pyfr9sV7S!YU?RZ+=IKBYVEbHv&DPMq;fq156#0tnaeI@PV#(>_ur9SYg77(`F zXuZ?H1hkDq%=-se@bSmAgpH>GjVs~Yf%`f@Pu;5g+Fod{qgIGR6Z-Y$Gt#ac(yQ z#zn=A)%lNrklQtr3`c=r&+f20Diav@#+*02GY^dF3`TN#7O>5XP(XRF0qC4IYJRj- z06LjmC-O@^z+hJJZmZrsV0iG>osCBYn7reR-F=_y9&QMY5 zXIXq+_ZE0B*Uu(Oz#i+a*eYAlVYm1`sXoV6!zD= z&K(4VVdF$fPk*5MkjOH}s0`co?wETR(g_T5YUA}wUBK}5+GYbkC19|%_mhpi3yh&p zZnWo<;k*mWgG1E7wDM$sqFxbff6zDhDvTAFg1z64$(h17)?2liCl&GgP1}r{@%fmW zGF){@9SCt9Iis)GVS7_$;JJk%pzrk4Sm`$a`Wz+F+-Iu5SR<0UJ3s_zgKA}Hs-6LZ zY>Pc@dneFXMeULw4*mNrAvU)H zhNip`lh32T5VeCMrE3frcB>NWF`5G1QPwkADY`)4`tb6!-ArgdaP4jfbRJ*EnKJt)3h>Ga@7?!w9zWrCRbT6T)sC;%G3tvK0)gox@w@q2ZXi%Mt%VE<03o4`Eg}6i5Ujbq z99pb_QR)L09={tH#VqDGR2soHhJap++%%x`j^J_HeGKT1mEAt(!UGKZzZ@oA%K*B? zN*-dN+rT(#OfKM$w{JAG^QM0z&<9`MPe*Y8Xj(4Zbba^`-^ap=*Y-XKdX#fjC5J4z^9!>OlYL$>S~>e7rx7472k-3A8T}(KV`W zAXJ|z%hxppdYV$@fz_ix-=;=f8;U=Fjfj*BHJ^Y%zinkuV=FKc>5(om-2=iSZ@X`j zPOy!v?P5{X4j>qP;%W4h1VX*Ekfx*v5FQU6&*z;2#?x|kx0$VgQFkHOyk{A-ZKQOvn)z-co3$!;~Z^n2(26~BI zO3YE`fW}vJqDoX9=t`+ldarW<-N@1fU)Tx^PQA{l2k?5y+F18J+Yf}TJJi{ob^)XR z$aKkaF3?9%iE=LB<673#YTOE6*Zg+7U)J0Xgi{+LDJ@ljE^~8k@#SMc?{Q1jIz1eJ z{+6z%YjNGMnilT1fe#qMyRm7Zvp|qlD}7!b4ouOpQ_o~>0OK;o9{AV`2xpbo>&=y?F2;Z0m^r!S22!?$?lh`B6YW^PR-gacaHS@;%>ClSo zW?Nu*lAb`qMgs(yaSob6PeL#2FMN~(E2pDhQVY%KOiO=sCt`{=+ zI;i)ieAbK`ALsH?nlt4@fSxMlHU$yBK4z4@ z5u&9A`rV0MikB*ZfjcDBACUt?PmPq{?g=0`Mek8A@&cxs;*oE@7lCkaDoT;b8wd~Y z^{~;1;d;^a>VqPGT(1#X-jrp>x#zwW-8KTI2i>CHRQNiQ+}+Xq7JtrZ+rID~cgMLY zbt>=RI?hDl(j{MfoS&)wTy4_~v{4(66~*A|sX)g}QK$pZWR$9W*mxf3YHW8**_i;{ z>L?3hp(rG`*@b0%>d)Jy^e2J@%?4_L&RrM zD`2uACoNjR=Xb!pjYEk(KzHL?7VFz^VAz&QQh&@F*RKP8X9n?g(1S1F$xaEN&FHMq zdba}f3NLyMR+@pP{9;+;G6T@{?st&j?E`uu&wGx+I=~PhAQHm+5eRI1r&*h~;`7jg zxpnjnFjjp0EV}I;&^LXUs=SD=bM9=h_4W%u+nhU~?;VA&&xvi!;jKWooV`B}!}pyi z`LGRxQ@Cz;+VQQ|8yM*CO!fER{Zc7ZJWw$Ugp<~b^|qeClo?+i(Afe6bb_1vFe4EB zGv*Y^P6FYqagS!T0x#Z#9Yqp^nc(u!$R6mPp7nj~pb2!XZ(1I8oB@W7b1Irtcza3%#fojYfRQm|{&Zv_KF;%= ztYzcl`LkNj*={PFdxwnQ*-(6bq&RN$$Jc{b_C;Lh*l=$7^F?kZz&KWLP0!FD2pq3Z z1}Yl?W5b*HB|ATy+i2wd9s_*ch;b@6dkwT}txjtf@bypFIy7Q;KhAw}gY>O6oICzF z{no2MPySLsY(56(4vP|I!SzbQ$ccNQVL;Hz?sB<@0h2|wNlPMrZZv;u#_fI+2xro6 zPxLY1Hdrs#w;bn|HjsE;jdOb(Ih2KugQeS_U$El3=qZC+;Y*yS^)`7jodwQ)Q{83p zInG_YYI|)F=k7|XiHpIx$B2`R25{~RQe5OqIJXAvWmZa@dob>HG&|1yM1Jge2+nPr z`EG+6&OIFzr9y}IH_NFL$6n$6y>nRSwhYeg=cb@7hjaJGT1-XZ+$)aFW7zb=Y%*JOjZI^N&gq!@bk;@odyt8Tu=xtBD~+T;70 z1#|lC0(YGErFKOj-mhmGpZ3M!?O?O>hJkFBcfngpsw0BGBHVWmyX&;N$uhzxSnZp!pWfT5t!~JD2@= z-r(mEx`J$pyQ*5ae^p{ps1Gnk@w(MD;`{dU6?Umw7JPmmxpR3DKYy1-*|qE7^B|B? zDsIfL^$`u#0Wwh&Rs|rY#V@cdslt3!N;%thjNt_{G2ACWN`HZZjB0_ za`njK+#jobMoe+;+UTeE-s9Z6l5Qq;;oPSN=j-@!Zs%S5mT(=~yP7jdW{h)(8Ng0K zoSW~!;7NX*n>s&+1V1OH2RIMBlES$kPu`%x{Vrd1IBK1RbEk`%-&Dl8%X?G=ao#AN zfX$EabKvr2@#v61oZCR{^}`^X`_bZi$~2sN)56u;!#H<^Oi=?H&P{8{`_>8Prn(%MWE zTXnMO#WkF}bc^hvNt}Cy>ESW_oYL5cSvcW-m-t^*SIywu=1Xeqxj46*Th$7_Z}xt3 zWb;!58cEC|rXSC*Of)Z~nFh2M-khJe!}og&>uWP_N`RK$bnq?1RiM-7E%jc&fbORE z(W7J%IG2KSAo)pPG*K2-9&rQ4)&3$%2?--6P4deUdLF?dm!nh74 zBWE}~cLfNgZ#stV?+e49Q{29G@J3 zu<>p4p+g?HZizZ!Nt_9EGd77l=Wtz-98P!EaSrD$|H#X5{X4hb&W^F~+(e{Dl)iJ* zoG6U@&g~rd)#f|5x~C$(AKbkBoa`(A6d*@$Uedj(Td#mp|H!;Vh$KSbCwv(Uu&Midt(d0Y#1|sf$ocmt+o<|zr zxj8Pzvf$j2U;G0?zjG^OS>o+Z4tw~CRQr2>3r@J+`pzA_o4V#Zx0J^i$9Hb+U3x;_ zxs&8Jdwl2i`TD@`dw(-$$&h^KUJV#{|DAjO>2~h#-0F@n59brNGojdj&k;QlJ z!!9~Y-?^Rqba#C3Z{d%3I=^$zNL{)3o!eOc;*sy%4YF74zjFt8;Ohj=tvj^H`<=V{ z)wzZ5+#wqC8sEA1UJ#Z1&h1&7y6~Obxz=*{JGa{DH^txkd&3irq3_(TXD>E??{C4+ zb)4V19jDJuedq4Y*vtMqf92W!2Y=<+{`cZ6{PHyvQya4jrpmubvaSsskpB<%t zc9j0vQRZhynV%hH)*b)ZUrbliKVYKzhyN+o!qLvd-1Z;+tK6SoPT%nF^H(|4H76C6 zsk{qy&J7*9BlHzDh+R&Qy|M>&T1h<#ec@ z^s!}&w+VXjT&|KTobj*z?LE?GeW(r4OBeP}uln@SU`t#oO``+qxg+#t!k8ZAJ48tl zSu&%Bn`&IN{xxVMXX|PGfNiLcM?g5s(E#4)?2lnFC}4yh9kueHTq>GtK1kzf4S|3>elNYWDeCR z2NTp^#A|lxMhF_-ykk$={9W|j8*eBYb^HY!z0}xO=+b=^4d%l24>hQRDlQ1iZ?>`n}jfM&eU3f(C?mKR;48 zLc_P~#}<~>&=Br*XY|Hjx!c$Us{6ZR(c|^}4^S6tWylwlS5CM0;L%s8pX2UmlzT23 zH1XKnk(Y$JT>WW!q^(f$dcL|6XO6)etZA-K7V~KongNej562zr+f960fEY2$W1BE z)S&Ln^4dmis{h?`|62a_^?v-p(apz5aZM=(^)Y;}fcC%izxkKv`hQyQ|8YCx;?5sX zl#~9!{ohvZk9idQm*@K5R&Lq)yj`DfKiv=eOTGVPIqUh5cca6B(&zI3UG4kd{U8go zcjpdrF8@#0`{(D+&;RV_&o8I{qFNPobPlVk{~7t}|L0>=H850E()sf-{{MT76v_w0 zRMpf}l?@I4=&Q%4?ZnJ2EX+?k|M?r=|J#pIbBB)b5o=yYb0;r;CUz=Ab5`75-F#YT z&N(38aB>OF`5XoFc0V+C%PE6munx^Vh~@GpzK`aT?B}Z&ve8`8uDhhS8_--my+qjc z5j5BFEOIAE@C5XisoLeWIkRPMRRXAc75D%7|p$Z!Yyy~5zTM#kKCcxi{>|t zA2>>?h32Wft_hgBqIt&Y+gEI<(L7tV^tkp6n&*mK(w5*y^Sn(*Od`k7yl5I%Kn5wA zmy?_QJb_;;QSt0)yNu>F<8&)+N6`F1B?Z@|4m5A{sJ%m11PR>n^mx@g{jRN0Eh6V0m)4IVijhUR7E;#bTLqj|xpJV%`vG|$5&!YojOx4VGz zL*{lgzfJs#q;of#r@L9{FUp7JDJZ@baQmRSuW83}t?}nE<#C#Ks~MW>2`l6ATSRju zTa5E`JJ4LLX9D?=2WT!>%Aoc!51P9~A!?@Z6wRH9CleqmLUURNu8&&|p*gV=6Yd{X z(HzU(0P+wIG`Dew55MCGnw^<3)(*`@vwhoG+T3tkZkRO0#fxU+GmQ6kQU1yOC-;8> z_kYtdib~1KPS?fS+4OtZ=Jhn{A8EhDO#W@+F9C~xoA^t#;2%XEIi&hikw4OYRpgJv zUlsWy@h?UGvwv=WWD|gCv(5jivlXkmSlpr&e2z+tB_wAx_-3v2W*i1xap3 z?Nin-a66z&&s_*f7tTCYzjFq+S2)Bd75X%Tj9tKhOXMJ#+oUtUX z3rQCb>v6Ks;C8g~8*>jN+HW9zf%E^TS?xjhovg2WK>Ka`m#oe2KzrfpfJLntXs;$w z9j7P*9pXp32l;D3hqhzws1G;juqH`{y-5Wf-tODWqV}L8Avvx3O&4@j8TahDLjaxq zr9>$?J)m=V+W*~zG3Xfi`sBX21UjeH?-uI{fsS>_!!&8UybGz8r)O_~&SmE_a=!Te z+a>u`QO%$eS#-~Vr5AKk(^4j$w}Vc0z{G{h7|^L=;DnL_&}nDgT$D@-I>Uy-X9d|o zXEJ`%_8GigE9LA&lVYGtuB#o_B@McaW|RyAdqH=H3NL|C6?8?T-=*!a0bTek5NS&b ziXT5L*ioDZ#jo+@_ZJU?63L^P!f|y_qTv3>y3Y@kwhFHqaGQhDHrrAWs`sF@^SnUf z8{F=GE0Hq&4U~lWEqnOsB>8i;sFHkZ~FHF8r4N6uIqvP2&fRd9+RW$ztQ1Vp1x!5NMO5Tx% zZw8NpQs7p-w0(GaA)jFW`c56 zZ2D6Ppj1aMv}%f%+p*MX-BAWggM+gSJj(yE+@2;TM|78JRIvD9Ju^7eXcAK_D1$>Y_s1!=NO0)7 z=nYD4;4m1*jY;}~!+6P2zMy$I4p-`;D~4R>9#* zH>;wlJUEh`ntsGF0*;h&7n%Y{z>$8{ZtNN*II>-cPANYQj=OZjZmUazBmdp38$sOQ zC_W%Idd>nI_ZH`#ez63OYR4KxNo&ASx0`jgE(;uw1-7NONf9eTVB6HwDxKy4wu6KV6vBAE$(UHKclW^dy)ZjZ zd=c2LaVpdB34$H*v&NEd@4;^KlZ5SSVPHqU8p?Mj1ME097kJ(I26lpH35w4{!A=h7 zW_R2GJFR$8Qsw}#GoHx5@%Sd#nQM!+op=g%4%&C}v+-;1*s5_Y60p0YcK@O5bFhoP z81l`{4eT;d^kQ@f*p<_D2yMjceP+7#g^)kk4eq)uLNo++(@I3K{aIkQwyENMISGi# zWPZHp_6)?-^Jyt)`9Vyl(yC)H2E+``tOUKW12KI~>||mrh?z~+F_0YqF)O0bYpJ(E z%prE0WF`xUIhK5Diu3`oD;}#~)N4R2poPuUGY`aW^EyT5J_WHr54CM(r$8)R@dhR4 z31ShBXQD($KAeMVV`O;@r5GxmsD@ZT^v3mUvH(0$utoHb= z;VirzJ%`ISpTn<*{K)GXq(E%aD?~lw9BwP#UjK}@Z^be2sW>l)lNi*>@yUZYLhv# zzR$6mqf!lvyM3)6Ma6ce4^xY%|?x@9bu80WWPI_Ew{sON*-bqs^Vg$I0 zjJPx{HUM{x%uuuS5#Vk$s-SWz0q#bp4=47%0PdH=W0pzhfqQbxF2jOo;C{cI@6)^i zaL>o9S`};ro=sm4+i-6J9-6MNJxpc5!+dbNqRltpVe*tcDEt+8gxbA}do}=%?832S z2c7>^ZZxJpVc{dWg2s+EdwkicjK<8kh$jUvqp`Dm{fsXX(U>hoWOd1VH0BmCNX6NK z#x7I$M-&XAF@KRnQ|aSqEZFIko_zuud&ETOnaV|DF%9VzN5s)sqRXm**hMs!9Ama% z){e$9$q(AzeSpUD!%`+`wxY4}p_sVqxPQ$P@fQc|&{*q>f(eQyG&Z1Q>g8OF#zyC| zhl3c=*d#-y0+9e3Td3!8ru0N(tG?0=U6;`KCK@f;BNJ$x`tgq1+IBR)o!)}J>=hd4 z^eAJ<3;0Qt+NuafW{Hmr?s!KXk4@IE#|xQJMZe~{@`65-QRgvM{A*M z=W6a~s$}M9uI^~(VteMVUvK@(jlX%}Mzx;wx9{72r2XydwjXJK`vUL#TRofa|NZNi z|1I}7FAD#X`0E#izoh;4Md2@rzkN~oOXAuYg vU($YC`!9*Vt^Jq8zpZ_ZP!W_MK{86t;d#h8=O8(!?=XFPrsv+rD=z;yZ_utqA z1l+$LV(<9-Aq2l4;&J`I9AfGDUkxESuYXeaPZTHBzvgCV^_$wizllO0(^SvR%IUX> z|FEvAqn*3GgX`ZB6RVkf5)cs4{F%t|n*DEg5fS{y&-Nd7ZDn=+KTok|=l|e7(ld?@ zZdd<_8%d0<%w7JO1ug8%T`@Zl(fti`kE@5ayPK1{o7rh~%5A-)L$0);|BHB&*=QeIa2KWZUPE7D|;t1^J^}DkyHM4^CY`Q$Nn4rkN;?l;Qx8)f^Aa{fknexm}vQIX%M*l$$wH+u9pD)$>z{EedDsM>Gz&d+ z)&Gqe{YFiHqnCf9mcP-ff1w8;cQH-(Ari9>!Uw-1M8d?O8A94iNci#~&o>qqB#>`4 zqWE|S3GN6ixC*Z$(W9JixQdg}0TJ36QS&=UWV4a}fPfhir8O(eJHd}cZ{FX$(cg-M z>1Z?L$up6N8RyG_NfIPjJflIh?=w1ZcCh<+I2#f@5EJSOm|OT6TWz|fKEEqhQ~>+fF*tAIOY-sEDZj|)|T@0a#aBXOWk(vN>~9UD@(nMiFg5(zIm-^RcisIC4<&f zhDia9*ei!)&%6ruED(KPp~)>^@QqNFeWg)ApW2`-bxpc}?)pI^bumfA!0ul8_39*I zF-@`KySRxc1Gk4Gb#CyX7C_Z1P9c0GK^T7gI>OG`yPW)Q=5&h?)TT!?;XM~m!s z8=^B0_pmM8i)gDUj8%OL5k1Q~F}MQBZv|*2esa;nSUp z*QQ~JAt?S+Np}pQQ@eORx2+lNopgLIHmHmkWt$X+J_R5~`Xaf}bxXwPmnZH-eHbxR z5lJ4pHiqaf3QxKeZ6L;_OT^WDmk@(B6M44031Yl&pY;)&k3Qm-&i(t#h>_Ck!9{F5 z^}7RO&m1Svo*b21MVUp2X5sOnS1Vyia8~(c@Eac_T&#OjA{T8WNb-ea$%+}9_xt2V#R?L(DQ^1Mr-#K?f1>BDE+n)f|HX!r0|^T_4~QI0 zM#6TvFK>Q|M?&&U)bS&!NQew+H))(gqA`r;8YUwUf0o&et8e5H|M%5{Ud(z(u)+WM zm-2<5pQj$VGU)3-2mbNVJ8Xxb(qNRz*P;QsVh*3)j#P!di5BL}r29~)<@CHhtOy!7 zn@LKVCZIq&>&0hEK^SUp%dPt)4&|0&$ID(_hMrJ5$>4=pXj>+q45uc9jx76CF$LeB z(WVKyi`3RILSX8cA#MaIRlST(w5MS}cF8ZWK?o)Ya(HCdNMY2UiLSUl{bycBs&cA} zER0YX2ykx>!-#E<;=!vQV1QCZXG)wFrc*5=eP#P#v}KQwf1f!FpSTcn)OZ=jkFQ7T zSRH|}MHj(Aj}&Oh3VGNvGzB=b$_L3R*P)vum)(|{5iw>OOAhqOBNiANxyE0M=$mlL z7uBK>W38oxwVer~yR?VkF}FNo4>>~t47RmCntXjbRotchWWpACJ?g(H{Jc0K8W680&h2CiC9Lz3-pIEA%=%qXGb?i z5#!f=7b&DU5TjJ_anggKh{;&-5$p4Jh-olbqJF;^V)5H~{Z$VkHd%)sEn|U*xg{?* z`|UTxQhc6CmE={GM#|QTq8fPG8({{sKahDNWa`*Zvr&cTu>{a2w9AaSN z^W5i?ihyS=RzhU$57xb>~F4pE2R{Fc>;BRmF&w{_X{XYr*GS$CVXS$vL8tKsg9+~`? z(1uJ$S6%hgKLR&oPA*m!*PQ+dXhZrx5ZdJYuZ1>eVuDT5F?udCG71}lbSNVuF;$R3 z`mH`}Ye@HOmUikcT`CH?vO7-5+8R?4omSEKim8Y+*ZVbicBweiP5s^Z=svW@{Y9P- zv3sqN#Pni!UcvoYcQC4c^wyBm?mQ2ul!SKacx2?s-SxC;s(W_Fi!2rA?NUu8hrnI> z#wi+89i0p|75a$L6HK@I+%S4JJ2Fabcir~L$X&VK`6OmcRiynz$#HidI`yWa^Sk4y zlpGd!`T0&C{%s#WO+~PyL-IR2TVoj2Fphk+JCACWl0(Ao{=R)^y1h&3C;fKqp-O$9 zb63Ap4osfA`%#gPjL5?1v19!wcCQsMy>DXl_?;}>-F+zUsj1whYI|yGcIP>+f2$um zY9uSNRJv=|Q}=>RcBvA7E5$Bfv-&>guDz5oPn_MIKQb~>U{}s`t7~_Ea;74S&vx%$ zIC6N`p2}NJpX7GO6>22zj^8zY+wMMlcXo7k`CpV=cF$Gr>wWIs^MR{Ng{!-KqF@uu zl@N*vHZ9nlFYSobE?@5XWWeq^>RIO|yLQL3QpxSw=XmeV_O87T=R1Ac)#oU!sle`i z3OW56yZXyxdSfn&r1@K^aJ%!k7X|O`N6NkE*)CsU@;>*jUPllC@vi&`E0yxDozzt{ zl6LI^uSJ%3^;bMM>A!17S#ymq6}$QgSzGPuDOVJ1w7bqx>7w9Wy_DVmLZu`>w7lQF ze}9(Vzv=PfR^RS^VQi^*_kNZ1TfJ9z^`uxT+MNg87FleE5^}0RDs;g4 zr}5bWX(ZcG{lI4SC{iH0+H^b23muVdetdWR5IUfnV)8@Q1|6Oa-G5HE108Pp6>`lCaf8Ji>MDG8C7Q;9y)}OOiVhObp)9f3<@S zmW@BSu^NE*ZGJwQUg<@=H!I}`ZY(37qP<_aoo^vtyYeqV7T3{!4JMiPY$LS4=lzE_ zkL(cNC5iakd&>}4B(728dN>l?ld%(#SBQ9uuP{_|XCYoaLZ`v*lSqilu{*-42nnBF zj9Uq@K!ViKt=S}%i03-5YUz+G;*Hb3^J33Y#Jz5Fzh`+9aTnLrl0>T@K8M9~U#oi& zdqmaJThVujPiWr0K4$~*zSp^Un^6+&lk9s^DDx8uPhZrIc@}~M52-!eelv!6Z_j4M zcrX5)68~FU&A7||eMu+#lafyCYdnt{ycCoz;T)U)@OSK~YA07X{M1)Wqb+I)F}0 zzHFCL&_pLklbutG-Xo1@Rti^i2C3QS4Kore{GE^{`UfFR^d})r;p%wJ&I}6(g8yy| zt!r>r`^1TVgrQyB9UQH#|A~Mk`5zdNul~0N-0bR!@(OK7G_u6?XLe5)t};jo~;R4|F>3uC~5sTo0wA# z71!)nYBJ}c?3U|8`A8cmOTUo~*-cREnL1XmHV>6s-62)xG*C@=!H?iZ8dRQ;g9EA~ zP~H)uL$!Df${)11G+)I-nV+lW3EOv2{mrW(p6-NVTmF|~ zHu_Me+r_crd>pE_x-^cm=Rox@GM}uVVJKH!I&hW2A1dfoC?n$^Lq#d=z>>-dC?yiR z^Lj-HinlM1-zo2aitBljkje!miH3y}mrq04a`<+d#Uhk)|J;1jK?Frl2JGz$^q{zV zf3N7*Iw-H4w=a-Oh2k=FN3i`1REO_WO;X*5IuB(t|3C|f38-TT{I;Q_3f0#)Goxd9pyFJ^4Ox%-P&@R^tm&d4 z-~{&m%D=h~YL2ed$w>WxN{f?I>G$fPrkVSM*$;cDSG1U4F$;tm|8aWB={mq|?tiXY z#0<5Ky=87~6HuKUd`3$B0#we64)RzWfYMwKb%HWuD19mvtHNsuWluj3YCn~QnlF?- zhd!%9z0mAsJ%Ptir?yNP53AUHhgFA2bfGfCtkc_U5^B&?Uf$bosI9RoERVuNr$>r?`f6k{m6wHWnV$!?ii>o zqFaCXo($^tIXe>d$3Y!uVP+Nc8*Kf)z>SSDs8{DW_RtZVFG3}7Dzpl!Ki+jCzjYC+ z%8uVDakvCkmt5spLX4m)k%AzIeE@1rH#XCR5!4&YZ@!1SQ2#s~HGC%mJgNG9Im4TP zBWt;=9e4q%ZzUG`DltO!=$7z)5d_sQrtcRTRYSdlWHJGxAK)my2e&F8hx(xx7i7a4 zp+5DrF3qt+Q1?skX4tJp!1=Q!1Y~SO9Z^M1s^l4{4S3w9`XCf)jBk>@YrP6}?@W$_ zkvd`e3ABA6xdAmbo!38ny9hO{XPO00>p;!p;goG(b*MiQ>qE{d4R!b}Jx)ws?^Ar% zuKOg^x%N>;-h2c#qw)G*Z4lIS%S_Bnq(O~fKJO!UKB)d6ugLfP0MyW_-s?`1fx52@ zyrsjFfV-z_yfSM7xW|W1pJu%ZxDOy^)Dr-8rwO2?I1Fma)x6A4)&)hU&mNKBGoPs2bhFYLc@IRb)Ju8&?vcib}g){Bs0U zjumg@2Rw!9^~uc2{0*q;sa}d6U5A?23$7P&VNhMpnI3M#2UQ1Vh5G0BLY2TxJI)(@ zQ0YGu|EQP}DoKozLm%cq<#qp+*W4CReZt4jpn(Bu-!cwZX}Lgc1r6t8{5sSwRjMe4 z>Ol3)%ax)QBAKa{EvXwXA}qd2yehCPPB> zmufB4T-onD_3{{0H!75lHAzG5!*o}(Q!!B0o*I#3Zva&~vV+3Z%20WwTb`8K9;#xa z1_YJrFnf$|42(=dW&VYPp~E<+bQUpG5IzHysh@32tEZvbn&&|`X%tkGX7rjAVR8QS ziO6!-Bvj*yXN8=wxSZF$|F%;ID!(MMEm7Qr%1b>KCEoX-qGhDz=} zP7QJLy+5FqeEuTmCqt+mROfQf8iCs0$9J7|~qbSRY^baYq! z21RW=t&ft;p@^>6U+j|$6bdt{+e`~Vk@!)urgUv6lAgMdXPpd%E-hydd3!?PVd9o) z+Da(A$s3xzGXzByexw&-Z$Qxx@8$^i04T9}a^}|y2PjVZrX`qs3<|%OAEw1uK%uqc zwu!Sd6pE}p&01K(_G=uG#JB~8l-bUK>={r*ty{MEzOB%t)rG{tyC1(aIN zh3sRKgJKoB_Kp$*D7*+c$A9cVVPa7JC zUxBo(Y$zVTsTOQ!3&jd%Pa91*p=7=2ElD{I6m@S83S)Vuh#mMD9>hc85z5y3#Th7) zYE6Lg_fVu7!)mMniqD6tD(@D$fxH*DHKY**V0x$1_jCP5lw!SP{>x+mZ8B3 zMa&YFv{&v!$$kfCA>|8DN^m_kC0`RtDWjPaJ?}vADaNyfa#EQ6rgp+j3ZXDVk5ezl z;_sk)%71|FDgW#bf3-Ya%ntwUh1B0(9QoUeqknrL{kIn~e|sVOw-<5*|IL_{62q)# zRP=REss01hO0|nx?akd>u37vGxBfqlTgyf6m|JDMg=+5l``wBSP_fqh{k3`)R31A` zetkm$aF=OlH`zU*reA_NNx=;22z^No%Bw&PGan7(zBf?i%VeBz{Po;?tl!jb(Oww$GirO~r^5S-=-Fjzd>Fo~n z6rKb@r&FM^J(tnaxD2ZDTf8NSjG+4dyS_UEXQBN3&-k)K>QE-jVr-Gi4b^;Rx^*pO zP_}lvjXi`ED*a02gzarGeEizsYqTgCv#pj@OHQP!5 z{xPWgTsELH9S^vv@#4bG8Ne65lx?_T3V4^H*tOSF&~Rv;B(InU@aL{?4P8k9JZ-(^ z=hxJLOJ9DKxW^g8yPGEad?K;>^umANv2?(_y5kW3!wm2<2dB?%5<>lXEd{-GU#O9` z_k1pz1vrv-k>`qo0e`{iI!V(8stj}}{$fPXc+BvBOtcnSJnd?8EF zU_9{P9Q`}MCCGebaQ+53o5PS1HICuVj+Cm~4**Xr_0@Pw7t`;I=_TW3z!6Yz*JM5d z9BK1d%#&kKpE*$WnIH=A24NOHvX=qRt=Fzow+?upo|AVeVGqM{|Q1{)Gs)D)$>c#y=Ux`!$o-#dubRR1;oFC7w!#{-v^MW8+ zDl%xe?ZbS2y#jDe2A*oV;ZVQUzVSgk8gPpBZO@6Z{p#K``p$*N{F~_dql{2!5ULgS zOOJyFGUF#3eglASzxJ-F0|4*Qv$dD59vZ%HzIaPd3iyrr2P!R?-r-euH5dp1w>O)m zNCz7yeYfRN=Njg3Ho>tbdVo`HQVPtX1KbJc0pH+mz#YDI$M|s};BPnTEe*~Ct{QGV zA6f+b0Gp^>aUbAKo#z(HUjXhx3%l;n7r+@-tG$#Zfcg=x=E>$btdDW%wku|Z`Z8-- zpP+Yu-$R=wWO)J_?$tPazK!YqhN6-1NF_96zp0#a$Kv*&qLTA^7~oWz24AVS0PfOV zGV(MYsHaZ|%S@dHe57dAz|Bo)5cd$s!nFf_uG>qW0`t3kJqqo#biiAZnwFQWK*J5X z%HuN(fUBT=?@Ou;I2XQOI}c@`KKI4L*f}>DZ1R)>ZZJgab4U(mU)HG1&LF^Fx#b~#r~`1at}g-#4g-!V zK{66Y1N9kU+bLvN|GDRVP%7sSs1KvRH+?J^Z~=Z_#9lB!gTRWHzDyl7BvBuE;id`= zUo#KCDOUkJ|8jUi@gO$OF*P;Kmw=PtKj1Ir4kZmLs?H-|x~w^|*62nCe3h^~_kctiQE4;3QoI#BMwrRDCH z50$=-7DPHeP!VN%Ijf)!%J}8Bzpqt6X#w@l*|R}V>MFbN!_pbsuM>d~_a>BT3D+wR zL_?V$Gh4oO3{;*HG}OC!ZdX5)H9dO!I?^6W`_hIzy!fH? zf!k@KA8SxLO!fUjehieGG>gUX(?GfQ(@U9^#8BzuHs3ba1Qpe-P?+tBPq_Px3Fh2NXd8`^VVY^)orqNselb7SB4GRlzn1kn zQ=dn`#PQ6xYDZ^bY-^3b#}fy?0=_D0zx@c~Z3!-xtCwIZUGc|d#W|R;N!}>cxd)?? z92DiVS7EHlI((6(5T^4SDJ4(zz*r{kO|lL%%qg4oG>nA80#(39YO^vdtX1t-j-G~v zXcdJs@|LjZ`c189asd{+BE4BGqG921)pwX{r2q2c zMKmla2uZ(4je_})*SjdmLtsvC?HOD*f?3%MhZdFAVe)_h3tE|hiMemu_-pwvC3UWg z-?4 zRrAkdh{#?^k>&UdBHAub9SHJ3q;gtInNH=1WIQb1vw;^8OFaECa@7hEnS3Lnd8mho z+vuT&!3GhVjy}FT_6iXuklkXE<3a=@Bo0Nlc@WWlR(a;zK8P^e{!?dD3L;eJJ5anL zjR-%}W%AkHM?{gDufs`55D_k5*u0h!5#iSudd}QKL_2#7-grAB;>U+c!iKjHA&4x6 zc3nb*CvYeI6K)}b-0|RJB^!vqi-I_b!vhf{2oe}c9zsMHxV&dp0}=7d5~U&GZ-_XT zF3vB77m=O_9|^EyK_nE9S1oLv5usQ@#B7-uB6Ql8b7>brgi1`V5v@Lm_+yX#`KM zqj`uhbCTF^BpMO(M-nLUTVwj2C$}1?LPP|V{3p(0_9c7vNhX;A5wlh+V?w}{3I)jKQ>_~Se4G|GtWz!^2AR?kVuG>8S4H3Q!Kf3%7v)>8g z(y)|ci15*Y!&OfP5b=RY1CHc0L=rPH>ptazND^1ya&;d^BsDZEjw~XG=vSZc$T1~E zxcTS}^*{q6QoGj3t27Eby7vr!E+rtsLLys-SUW@{R4Zhz(Sq&M_;Kg{Q;4wr+S^Rk zPl(W?XJaX(7ZH8m40TCSM1&jj0eq~1h#BG{YFTWVMpDe^QN6B?37tc`w3(F*h8Dj{NXer zx>sZGqg{@O-caCMEff(^_M3{*F3ipc6&1}+;1PjJ)4)p+Y`>T8k`h+)AX@r_(6R^t zL?0KCL?`PS>UVM#(NQHxL<*ip zv>9QW-(L?R+CA?d7wUdTv|;pj7sfphU4UP_z`<6;Ah2@l@TehTNTQay7Wxb^e9e?} zrLIHt{L5iU{C1ImZHOi$Q`&ew?oDd zrLUv8t^7ko5oKy7!9jt@_~o|r%8nt@0_v^#Gqs4+Rd(J+avs~S<92(*CL+}muASf! zKxBT*tOnBO5alUB!wnBFMCEz)H2?NGqWWpS{Qm6;L_u#rch21wk){X7H9Gu6WNdSX ztor2XTf&H9u*D!v<36IGl646@Jcy{| zUDfZe;t_e+omX?GmJr#yr<1Lsp@`I{=1lSYK}7a5=%w}$w(q7#ZzObz5ourA5WC|r zB7NX?>WfA?A|0km+q7Fjx%ShG$8lVU(#LHMtz+v{zcODrErH06Ja*bH z`GH7lRk@qzZea7DG_zm{L?oTMJCq-)5$UDXr-N;Sh%Cx0S5H9*Q3_G*b*!C3R4Cxt zC9yY%N{iBjt+fYHa2WA92Pk9qivzFu6wIEZgID7=|Akq9dlf|QyvjeotHiDz=Klm# z<@uinRf%{0*Fx2A8?kRrIqN{CKaO{MJ`vJB+GNH_-G#KdS%>IWT_||pN!qWS4>?n> z;I@D#}UI45+{9xOj-N*(~`@OaVqB4t3xj#t#3T4A>kqXxLi>1$jA(` z_|+&}i(KLRQuTKNu|Y^6I(auv{{W=vwrtfM8HIdOa*Cy@R`{W(cU`L89=?b4-k~8U zfsA>*12ir|koEDQVT-gVqyPc0F0BJ3eeUrs! z-6H!B3Glg&cH7Cg3^Mry$z)bfL2gFVmwP7Skk)(W#?SG$kU-uV^);RXzMuXOt*ze! z*_|;boL4s?-K>3QOm+!=42hhTU$_hz!^>eePtHLaXZ|;O@oh+^82>S>ya2C!y@ein z%s}L0RVIV`%Me|S({CIpfb@VA^-Prl$i9C`A^Cg)Wagc9SHjjw8cbw;d1nCBau#v~+elwSvW3BcW$ZjY_GfSRvA95Lj(r0=G(z%| z?$AkW{V$FxUp8t#Lh`b1itJTi_}=zPI%X&qGN%1}Ufa|`<{_=vHp^_te2nNNEq5T- zJM{dB%y)>dpK?v|P=v2cq0s_aaqv-DXP71^5#EcwW;TzEf)B0~iB58ykWLo9@CNh8 z+#DY^PwZUs>RG-PV|FcmpuQL$p9?=eKd^s1L z>@`SCD&YT+Ko1|8-uIB*Zi6(#f=*t{Uy_Ax7WEiBhtHD-6jS2WA#O>C`TOT+h`sr4 z5IhaxyS;4cvbZLsOS48$`wv5g5dYJTMjWID-60^r_7`{N@Sxt@8pN$N9=$M)gAcL9 z$0A1d!du@PZw9b9jPc};a_kp?wDYe>eFh{UFQECv?t1wmhv>4qe!&kC^8CAfPLNXR z#mhi_7~+IZCDt>YhlC4zf>n;mLgX=_oVKPINV`;MerGqXL`<#)mRy1FhbGVIUXzBj z>n`G91_qF7uAEPa`B`>iWvp7mHTa&fU`c|}IM2p0HOy|&5zJo7cEs?_$nDPY=yUK@ zpfA(4pbtKJ%iAWrWQI=?+Fcimli?#5Uqja~4@eoy2rpP3fUl25mMpRJOxxsqA87j; zQsgARm9@NsPb$n)vD0+$sj+hVk@qM>BVR%>%+I1I$(*fTUxoJyGCsq%@*!!YvyrE_ z5wi3uhw2y0A^Y@Q8lg~4$YBpz+x4&Hyo3_XV}Xz4gf zA_c_zEfPX2(B>#ie>Hv*w>J*sXEi<9pvjZ)OuxHPfR+f@Q)kYbU} zA@#Zl;#c}4FQf{=H^s$wN+jcutyBAzm1z^oVjM2WWBIDe?DqM(Q8%bE?uiQBl7a%i zQlj$?evlRwP0Jlz0pA^I&G+hgKwOO3^NTq&P*771+ZCGXZ+Xax8M_k%Gu>^TJ>=F%_Kjm8ou3aSCfs#8%nWV8e zC}Od7na2Dgy^eq=zit##HQj!GG~sRhXHluNwH{?Cw{LFsa7fM{Bo^E6OqJ$%cmD`c+H=2MWu!%ggW zT^r&{TN@OrQsEnO=#h{OR>&-Fk1@jHwD`48`m<(PD7TAXS&hkp@`(1x3Cu4Fo@RXY zSgeQCk7N6H^Tv11gU$K}n4v^Q=s{*mJX8ypzYM_gU-@b626<6)DE~pyH;wsm!#fp$ z-8xZc-R*AK>79AOzqcq05@rH z`Z-pIst0At59=%@3$$_ zFsMHX%KNdrSf|kb;#^<};Ow|wC1LZ{77iy^p8g3ncl9!4Rtl)l$-C=i9QOzAx4uVvj-j)a9Qo7_KPd6d$UXQ-?~)$%toO&QQBGk+AC@ z71xq(jCpYYKH-B!M7AhYv)X@pvi1$iHeHX^cJM&)waMY^2dVHq_J~^wwx920l4#mte9esy%bWGI4aWNUL4ZR8k4dpSjsJCkwKC2ON~MTu z+Oaq&70){3c!U-TQ;*+lb8p7-;r`o;_O?)XN#yMYt02^fryr_O3W5f%P2JDymeAn; za%Okk)_ZCnpXNM+#``%|CK^Ui5;l=9kNHuV@XzrVss`}GKGybmyB^e~`PAv``e%rr z+lbvJ;53du0x+_!=rc?N1>Me*k4ewLIgGjiBg^ zirDsnN~l(QB^4T@2j%NDo1)5PSiVs>)%K1GN+{OojB8w>sP93jfCgate>lN4=?pbQ ztA3~WXP}--fn>G*6;#D5z*H{guaACsy%+xoC4AYqS2deZ2$2HhFI3=1P)x#0#dA=w zLYc7SQVi8Tsv^00?9gzJm{ySUDl~+BJE*b;yBs>rW9-Rq2oV%&73j$)_La23+c@TQ!2-IYx_%XQILv`J-K;n%tsHnv)94(gw zoZr~PIVDo4;hnKv!0Jx1nPrJTmTwD)w~K4Ax>c@c!^ecx$CB}f&qV!1pwMWdN*2ox zg-USX0FNpZNNS^aK|F zg-K2yD|N9vs_{cu$l4lmE;gav{F@(sDoC(5AIea&mKBC$>#LIG%rO7O9n2xSxrv?M zojTJ(3_q0fJC0Ri_`gu>(Aix)RahRUum@YW%Jp!LUt2SDglIX&=oUlIF-rU0eBafo z@U~^{qA=9G(_iRwl7l82 z!3h0tKcR8n|HW?o#^JZTDY13y2KP}BV|594E!89#+h424ppb3888p|V>(OCx&~-L1 zr314|I~P9A1H=9JPy6-nU^ob8PVoFBQ4Q27^%Gpi{IiNjy6X0^38;O_rmi$>42_Q^ zez@IDgC3Sg_PhN~U!uiPZSH5#_crJ1AcjX<{hKu9vHXBD{6dsVcH@Z`E4Po4=454^ET%>s4X#JyD*UaD!%xbX4eO{kl3 z@>JWsfB9$1LkyQR#namN6z+x24^nv)7+z}&s1iJhEpsT!|` zlWv&5Rp_NjZkJ;5^maC65W}(fEJYo5%&r}Esn;?yF^%q_JhY4A zepzEU71z0s^5BQ-P&aN_N{ICxHO&OX>{wl|=x}7(?U!l<_o-gS>Tv@-54psnJJ4Zy z`nlwfGU%@Gm?FjSYj@wV4|g#8v`qK6CStg$?op0m9A+1s$Kj(lC*%LsfB&oh{#XC~ zum1aA{rA86?|=2*{}1-x#phw_SsE==9ZZR(!p4=I<#?8b)seD{?g*-9UeLficZL|t zhqbnL-0K*QtXE~dPmK9b&7P|@PqBPZX@5*ggR&YbKJc9uz;I024bM;3@_vAG;|Zdk zx(HSIgo1upe_e5-i2w9YPbjdyrX-8muZ%h&V>kZl0~;UQ7Cs2L7xiXdPE$}pcUQg= z%OjOOn%BJ#*FZJPYCk;7NecUIu`@Ep2>_-y9^e$K7SGLCR zd-3LWy>v*Z>>#sMlKD2sojOK3t zUAOPd00(bZg>I>8Th-#o=-u=-F|?emxjtN#THBm|zAKUHvx@ZKdLfSRuUZ5`e( zP=2~T@Gw?~@U&7K$1uEJIlX#W9P1xThYwz-|A_gUp++RVya}Y)BvLzJ`%TT%xwe4$ zd&UTJS_Fo(%b$@>;xHUqlfd3dx-1S=<)UKMn0<>b)e=}a-iN~W%5*!-u4RRFPm?Nl zpmKY4=oYq4m4<(8?9H=KyTbL<&C3~D*s=}iFdW{@=Ab>3;sW(@%q-Y(LDgRQur$n1 z@oD-&yLA&M%%(RKG7F{me+1Gz{RRbIlBDOb`cPq#_hk1uO=(HVWi<>x6}8(c@5A&g zy{whK`<$Zsy4kl;_64ZvSFZI`cndYHk`za-PD1U}3zs7pKE~x&f7yL5QB$Hng#g$5HXXZq3zD7u=Nbd^nAGL!nARtn^{78sK$x)^^Xi>~=_B4u+>oK6o(ZO=iN+{J`)z z%)cr&FLz2|eO;+PD*o)61BIW2Zc?&VKw-1Ny<@WXq2No^#ofAJZA?GUbosNLrb{2(2seTem)*(<>o-dNtu_x&`; zh3Qc#qfMnxVFh@t?lGe$CjfuV*uX>*yT;AD`iR9{`F9G62CSbejDA{wknm{oi@BWaZoq0rM@4_ z_f^N-cool?LgB@1?^-OcDE6qlD|X(MuN^L4!}_=~XeUNkKKvQW>%WULfBL$UI(_be z9AoqR6f90M3?-JcvA#Y#p3&plm@t&cKNL^H`smt^++&G%FF@UK^FUqk2DUsqXe(mD?e1JK%9XdkYvqv8t zhxSWenY(zabx-Z#C9L1=9;IJ$#&Ay~8;JjG!1`p$hQqvAKCU{ZI^t=52O13N6tB>Q zVEtkFm0i45D`HeFrr8QrYi^vq;nh&nX0&|>JMZR8+<`sL@1U{tE@#L?HfY~!zhT=; z2`yW47X4!y@;UDUzwe)F}A@@1?Z)g(tw@8+kvkD06$N?A}6M{-{7 zxi>W5GuT&cl?Ltg`PLj*-`o0)vFau#4YW2BjOBGGK(lW4huu2Rm9pp-kM$Fc8jt4V zF~7$t%85?zK99++I?jT{2`=u`K0Xp@z&$fp6`_AS%HRjxiohyf3!cLImC$J>Xy&^cXyxL)Ebab3_R+^?*Br2ZsiqJGG;#6 zt=}d2RQE|SKdB(^J~pB93+i)R5?HpQpsh*Jz8gE2t`85c9m8;5cd&Tm-b5v68b2{l zsrCe_k^=7QxGLlE zaDsHGj<^u0vgajKhVHnNVmPU~FwvzLvwK6zi>Le%QqbTQM`Vum|Lp;7f-G1c*9txR zZ(@E}TdH7j3d>{FwufhYckeei)v=4;OCOte` zVQ%K;Vr6Cax9@!XXRg$ra*zBe_voK;rT>&G^QTpR;BE zoc*8nZR29@`X~GT54O~wvyc2a`{R(jI~){jvM0RPW**LC5P5sYeHX0dC>MhZHY8XwI+Iy>KQNy0qUG82f}mAMf!g z-qld(=^dWM%j|`|G|`lN-z?}^d&4mLSQENNV@(zxutJyQ*V(s{7#5PC-1u^75UT3s zOh^KBp!4D+_o;wZ=zDhe%3TE!Xg#%+T>sS`aD;RDjAQE1E__q-wd*?cq+1?Hb~S+3 z8SdO}=~5VQuaC_=K@FYMD)hQCcF^Mdh+dV=6YwK%=aaq)LSAJ3!SfzFkb@jfZpCUt zakg4X(4HsIMw@b6OnCx&G_IQ@np&N-W?DS@*SNc>r$Yu?$^<544_Otj+;0 z==A#K@EWl|OG>-PibM}|JQzEtOu7Uk=YKL-=Pto8G39e}Qgi62`9{=;>E9~DIu~Uc z1%3G%z3WGxK+lG${MN%Ez&%oJe1B*LO49CIX{<#+ljls2hS@0KejOGsX3d6b+1bN} zqpE;EQZM@Rg&ed+9D>7nSD`(m``-Rz_Rz8K$BR#DOVA-1nR2WA5%gZ}#)Y_)VZCbY ztb`N?)KI?=zjM73ihrTn3wN$V{#w^e34R$$_C7Hdk(z>*1cTCfp99bvVxvj@(i8f8 zG7~oK_+Vs=sNci=HuQhIZFXq=DO4r;vcB=*gZdP@+njSJA;)_&N2+2kw7ux5AW%t! zF0Pf+)0lsD%*DUlwwZ*s%n$`PYHnx^{}Q?{j1Kzj)BIQYl%et9@n`FbT2N04V>F)z zp+x)FtWg*(G^+>BDX~5Pyv*67wPo+1!ko(fnSeA@=J>IEt-K56w8a5mE5o2Q6Yob; z8VxPsk7M6c3_{youYI&Jp3npiWVEqZ?_=n2L9^BnD!o2G%1AJU;uEy(b%X7YmqK2q zT*Csz>_t&odD_rIZQktMAqstGzH_kVT!6lEi*3n|)X;xM;IK#>K%@EV?QiB6p<+fZ zyi#2Y>PQ`SYUQIK)9!q!Z7vR)Lwc^p71cpIjpofFrRUIEgwN~g#`tGQHVr`wnqG4l zDHU%*x2L3i6rD1(&6wXKUL=7^B{7k(XmKd)>dh2otpt2;4USOv3)H#m9c`~Kfzn%Z zpDd>Wq4aC@162u4C|UmQJ0BPXjmZ-W^PUeej9BO7I==)h;z3_>HI72V%o<;OYZjCp zOCj2D+JrKt?#Nl-}c81kd{9b~&&^jY%KLP2$B?4>(c9Jp>mvb=Y0-%$5NmDOl?r=*je5i@DR%V&c)rYcnRfS9QNES9D-q!vG6+& z%wa-GI#{N{8b$y}K)1iw9!z@V*uk*vW!!S$UKq*>UOXIs7p7beGXy-9ggynni|+3? zq0MLC@LfVvXrLQVG${6juKR;|(Hx%8!|nNt`GqAk`;aLJR2E_DlRADYsf1>aKou|9 zpU@wAnfYC=IP|re$R9c$4#qY&jj=Eu6G-i8RNlo^6IO zblGXOFSHZ}kGY$@h;4<*#GyTBihZD;gW>FXNoi2NaQ|t@?2RD$69c9k%FJeSsgve)-k=hBFNO`p`RxCh#lQt!2Xi~;DwHbP6!LCe6TThLI%+{rDm z3V8k1s(91_RRoV%vcG!)es7i_wPg}?STVe_A)$g1%AcPZxsSla)B~0c8a0N3o1udqaXCAf!;s;%?%_p4=v~G2UwVb%*Dbr1qH}rB zK*$)&#(f6bB}HeapGLx<6_1T?sw)gh<(z#%{}j4zw3~_&RzQzQb#z0)edxQ~b^q)^ zLagowH-#L$1WmNjIY0Btpzpj1ddA@bP3^8rWH+>+qitV`YS=uq2---#tPFrUF8e}B zpKWLu@M?5=K?U8<0|;1L?VzFAcIGs%0fuwsZ@xWW2EA_MC(T|cK>rl|%}V>c?cm)`+`O5b0#dm1$bChoV#0~gLb#G83g3kFBCvNl}`e_EvF~(0q$IA(`)L|S9 z-5ben%&dl&X{x_RD^=i-o?BV(6kIa57QzJ zI~GE_ti`n;CM)Q^^~{9jQ8bJ-o?zxnR)kTb?^p9-Ee`1`jTG3*jcDk7S`tw%YsHO zZU)a|gV3p0;L|NI4qdjV-6mtP`3cn@-X9#q>cLa}V`Jse?~u+-Ci4X9XbmH$3lBrR zsJ71PNl7RZJQ(a+n+OG;RXPb|Zb6yGoQC2+E3_Xz-t|!c!>5nrulOBgf&l}PwWy|C z7b&^7-4&#RXAr|OW%6Cpw z>xb@H`Z5vMW$3&Se?zC`WP2sPnGC9$sn!y$R~ibq_bfU&YJN95|})8B7D!=^iD8tWJPS zOm^Y*)rEWw`>e?RchIpCPIAv~0D8}LvyD!aLw8!hp}E@6(DD9+5_6*;v={S9jN9yo zf$KliKa){I??L$?kB=Xq{)xxYG~6_l>9fWfy_12K^97_f{07iSsZS)A$pKaENp#nX z9%K6dur0MAhN`1ih8UcBpzYOg>dlrD(C{jn+~x2Dbmkmp70ko>;jb%p^?SLXy7Hp> zjX_$duH{QNFjI%pQ>Skhiz&lToMOkVLp)Hj-SGSbHG*c`Hi5y@GtjS_12Kb|FmUj| z<#*DGFi?40(p>BZG*@Tz9XGfQRn-l-{(|SB)>4Sc+j~FMhEYCuI=&1OsRQ|y=dEDY z%=}j1k@GOUGCn3P{0SyX*2wxiqhWj`ZNAHg8|KO{C475Y2}7qQmRUbz{ovdF_mwlX z&=R(ur0FKUJrrsn?Z8lR35fuRx=WnsoC-sChD;inreLa-Tw#&+B8;D!qR3gVX9u_iLEaVDewt zvkY@Kx&CeqOfb)RHn#Sf2BsI|PcPwOX#FUN%YPaUol*t2J7!Ixc0DMsGA<7WBVuk! zIedeucLcsdqUu#N&{V?p@AJBeK7<$fd z3%Z!)LyL|0iAq6Z=o7g=B9W8|1Cqo^Sv6;&cLdW`|(rUmM|d;6=bDq&=r;eZqm1*)#a7mCBd)I{6%Iv>8Kar zkfF95O9M2Y6O#C#qloq22S3IcAeek25%Mg44Q3mg9BqXZV0P(5@U!&KFnZ?E<5Mau z&^l#IM8K&HowvQ@#?~(V3%C9|Zq@le!L3gJ!mYp2|HpCbMpS|b`l1G-eI2=TlPxgs zJwg|@*$#7o8I>+yVM~h0>Un6p-Jsq-$qFM57A`p|Auw$x{qE#vAw!V>9|9LpF?qL#)>}y)i;(7t=9#>doWqA?d(HOSw zGgx2SG_HSC=00pz>nQPb@WZU1brSP|PFVXc9cTF54^c)EyFZ^ALxlB#l?{RKVe(3Y zG67RBB2ubX8u}Ioi^VT4F2&lx(8uFWKE!0u?NXtm=KKr#K5KaU9v_9axkERKrURfq z*ty@g4$I5Fndj-84#3E}b929xIgqiI9S6=Q-h5nBU z7Y*YHVK}O~is*G3b|1_oX`DrbbOOU6#`j<@SocZx(Q+8$Jv&d^&5rgatiKYx{2GyI zboT|8bij-Wisn1Y? zScuJ8FZta^Je5zbQs0n7^fu)r4?g!G=Bqj)MVZeLhcU%oCW_aHMQKYup6xZFmN3JD&+Yf`P;g7|6UvnkjT5l!>=shqD*5kX9G@+l{P9Rbt1Y%yc_75)hpL@vVm zI>nGlECb@ib5kY?4#cj$7U*ZUtL5;6>xQ| zyA?58pA4OTOp3S)p6)P_ou{TST`)*Yb9_8gV9{ppKd?L|klMzLck*AijJV0hLTwBoq+keqQS_;@1vQijm7f zv{Bwl_sV5pn})8QvL+X{>|f1mnMJ}zbwO~0$QMLEC}3tRU4^*TmxRl197XK0DOrvW zk0PO(tonF2MnqBBCy~IvgNReA#|ntm5vjP_RPf6&MDFqezh7+-?KO16r(!r|GvBVD zX{Q2_CewC*c}b7hncnB9THHXq(MeQ-Qd@|gZ~vJOI48th$Ko`nRgCsmr1o)(hNAsp zHy$nDa78>^=d2z^J;&@A+Pyv`j98dRF0gpEBC;(T+N=9{5Uu*=yUzZnh>OAa8Ih|z z;<{*247Qlw-B%7twNM~o$-CEu4`?I)kD&@zCh`%($UU3Hn>vVqZj0z8M+I!3e*)K| z0$|gxWIEyI6rvBxn9C5ZLi=YKnDUdZAkKQ~+Up$bNSKYkIZo;`qSP|5=&|rcL=;#6 zGu9!Jc!x`-!lw}VNw;lVYGbtLjn}uhAxhXTf1OJ8VG}WBk-Awjnj`k0)gxaGLlEC% z0Sff`Gh(q&6nN7_hFC8+{E%N~L_BngVdHmiAU+-@qktt%#A7Jy)ZFBT=&G+xtwzuw zMvMOC^y4dtv}17jdv!9}lR5YE0Ub8uL3eiPB*0`c=g?OG3 zU8{B3kM>KvR+eLUfrL7E-b=SeqP>B4yR-IrBH}r|^3KK{L?NK|`)vP(Qf5)HjLP23&9VCoUkq!|&}Px+xKBkyr@z<|1OfS^2$p zg#+>IWy!TQ=DEF@GDj~{Sm{CL1XiabVOovgU2`QJED5d zO>#ZpHsY+T{3_|+iFnN4M8B2yMSOfibCEo}NT_psQ*_!L@pB6GhKZ{ocK6JU5~~x4 zH2-GSLQp5{(A4{IvV4HeI?>t)K3PO7BYIBcE-B)PexMdg#)i1W+@r;s0+5jO#|N2F zIK*JSB|Dy+gGk>coeng0L6iokLX*tR5rvHy=gCJti1rp!k&EXvBKV~Hyk4OZF>qwK zo-=-d*q%nRb7}J+-sY?!W5IF68n$Q_=v|LkRwpm&>>EMc7D1tO+NFs1vqv(K`X|IK z!_I70a{)2hpV{#EOo14)^2%nnFuh&rgG44CAxhRYT|R*j#3?DF-;x=Fc-ZaE7yP<{ zc-uM#Mh%3Jkop>R?C4j-7o$w8`*{hmWwP}@Cu%@s?>-&SP^Ur!{?Dtp*UumV?V-1q zUOhrIttrbhdnXXjC0I`+W=EXGC%yTZT>gbyf15ws!)aeVV*`HvVDcbph zy#`G3Sjg}n{R)c}$sMoilp)KgeY-^VA~ZxhF?(5WL+8Q~bJNq;q4A8#U@XGAVn?}b zV>2nJc(TwJcc}q>)s@U7eq{x`@T+T!Ij5nUdC{OgUl0~`U7yVrdBdE(9%Be^3iMYn z>UGn;hCU8PR`n2bZ2l|xFE#9-BlE;}2}>8Kz4G!5z5G11JeQEtUOxl)cN3=456PfO z$ML$(gg5jJPMo-KKM>kttIr4b7r{um?Qg+wem54(EbIyXn}d{0UsvU<-aq^&xZPaL9bBFMiMSN`pBI-TEB|Zba+6JP zM}eUn5jZ|RA!-?dh~*Xi)fn^;X^$J5E+YdX8Vlyh8Z<}5#Of(H%UMLxK`}I46^Y1V zY>AIv{{kznEca@D)gY2~u6$i4HQ4#k$Ryr6fyh>Lo;((DhHZStp4?(**jo13ImKWH z8&p$k%^8!h{_UPMWhp;w@jHb2P|PCIEedC$vd4%Zs>L!k*A)?lJdJQa%8v+{S8PlO zSPC{0a&ms$U(vx9T*`gZf z)B;P9hZKk@+hB)@ojlQi8rBjc!aI-}%nt^Ct{!^}o9CFLFb z#sgy|VN=B(wTTeJ(oZp_{P6oQY5)3$cf1SCx_`Bg4YPw^v^{DYmwRDuR#85zI2D$a z2i$z_Ou=G7#!n)?Sy*{_&WmG12gcU8FGjQ{!@OFrn(?v~EPisjbv@}OOg#VE=T_|r zbD|ch_Zknv{1MqZ9-6(d^f=A8@k|{|owTD3f4C0wd)ZRR?wG+Z0e#N2f<_o0#j- z-R&wO6mh9l$?t^?&86V%DLiae4GVsX;)d-ud=)PQU{v##$lW|dX2RIw{AvvrQ(7wp zt~kR|oNY$iDd~%JhEnL%igO;NVSC{_ociK^^Dth0{{7e&+7uV;8+) z-JizGL%0i8ex6BuPHc||24+)~uB5_dgb(lFx&^HLxF$fvQHTgTz3iTjHNkq|*yG4^ zM_`-z-1Fw>UPO>gmAd1c04ptf4(d-lft~Bq(IFJ+uv72rxA~X`wuc*Z68D+I8X2za z?ln$C=yqmQzws(;{@|YNJ-31gYg0I*e`Ue)gO7oF^31Tpe#$0jj0h3#xj?SF6awp| z^qS2OiwF!UUl55ug&iG!7QB1}Y@R$o7a6<`Yc^mJ?@S0QGp(^Mj4`nCEyY-4A{SOR zN)23d60q($T)RqR91)q9XyRk|VEyQ$wLQ~8u=$EqI9|XPR>jXxu-sLIogY>~OJBKQ z`>_9sl&uSx-yHQ={w4_kHLHjADhsr0$7cCd|iOz5-fGfFNeCnfVGyFsX>oyV9mTL_w1o#ux#Yy zG3WIZ7R`jzG?&U@!6=QLD)}+Y=Z+NdT6@F7#V3O~zN)ZtOl8r*VHP$L4xUvlSAeDS z`_&!fTVRFN*1_tc6?+hgfZ*3M>BF#{GCq{awt3MN2@}_)d}6`o4dP9HJC6wTjAU+y`@_x` zzI~fcG>CvgV~TYr01@`R5q}@HhRB!>n*TVkfe0hiN;1Ml5K*|$O_Mb(tjpFX-+$H| z5#URtgC<51;k7M46Lkr!TVgd};=6=MbU395HuMkykNuFg2`wVp|3prLJ|7W}%)R~j z@Fr|lx(P8Gdm|!ot?$+y^00&S>`H~y5Yf`){(F-uu${o!eBa*!5xy?H7)PN6J7fOl z<%^Dpbbr#pb)CnsS!RCigLepQD`|wUQ9Vb*I?u}w`trhdpF)DYkrE<_yt19jor?&v z6`L=rmm%vIS4s5#=P4->UL4-u)LToHw5W$XZa>T@E zL^QfCagx>vcIIY&4e1CWA|sAHF=xXN3GrrT(sUtg37&8Na&8$B`8BZHi#~>(9XxMZ z6IS2Uw~j2emcouD=liC;v50U;KtNct4-sg2M+9W@BT}jIJrkNVu=SAZ_;*7h*q)S^ zdHPBZ5#M`$awsnwc2u7~x9r=CNRrYbYTu3{LheJyJ945C5yQup6;Wr{u~I&9Z_*zT zXe_8KFYRFZy6Z3Hg~HBy7&Wz_CYBEmN8hwzK%}ZW@g+>Lup?*1LvvfZydex84-ZcAz7736os5}pF2YD{5i@f#J&cw;d>l;~ z3&XkM471caxzfiD6H?=yT^)MR<~itHKH&)Ci3z8xeA;2aRQAiB z{6jDvueNsknJ@Ia-uJwGu@DA4>g?i~Kf{39m$JL{`Os^7lyd)dJ{Y)eV>5Kg97gf^ zth4rwFi?0$nTE6ihD$fe&$irwfu$4gbG@Fxa9!{-uOuNDzQcP=S)l`3j8-?F^smEc z)6Dx1LP;=KRT@n@qXr}KgXDsKw$T3W)6^=(d+09uK1y_89)?-ENTiurpzrJ67uEi5 z&}>+sDUBMThe9;xP;VWyRzh6s z^3!E#RINzyg>b;#a^sI*8iYnUQj!{mz0k~CTNQf27Mj=j&wV?49okCm;LghdsJMJo zoam+qG_k%8dB@oc?d2LuXMLlgMlC|~rxrQZM;xP7A5DR#?7^0*%rI!#PAZ~uc?-D5 zW4BheoZy{)z%2UOZeJ-jSO0u8rYmk$O$fxZ%DvG`F6=ovF9INGcR z176%@_sD`_ge&iS*xP()zzbLP_Xa_KRn#bM>?(Aw5gxv2NeLbEY&~zQ>!DSEIE{O_ z1iEG$Q_Md}LR;a=`(BGZFeFzu;H$g^4LSExeky+foZ2ZLi+NkEWAW3mMRLW^Z)6t}irB7ks_Cw-LHgp6=~NS7;|F z3Zhvw2D}|1^q&cU-jPpiq1D%*<;wTQnKP%MLz4aK=>0M18q8IgkJ|%{@fIai-+n=N z^s0G&?>4kP`Kh|Mq!GG|lbq}#?4W`CIPE~i5cF0v)9)Gl4$ZG`@SJNWfv%hCM6MhL z&|v(e&Ya*5;6pWAI#%kSSH^!!zhM9xIeW5gY8|2d{W&4wmqyT@&VE)MHx4c3)q4vl zuRv?1jm6{6IcRuZpN2Q^fu=*nE!2WE(D1X2Yl<=v`cAvY-?z(${(u4V+btf@rZjT% zn1(a-c#kw5|L6tH1&=;A`msWX*@aok^B0d1gX`z?!th4>;TxcdU zvpJ^w3)*(bgQ$*=Kxg&4ts32f(0Kg(fT%upzGj0@LYi(v<1?3YhJwM+=Jnz1(RnSv zn~I&u9*Kgk+yiBdN_U~rVJ}bl*m>xd6K?Rgz6JP2uJFBVV$fh+qR*eD1)cBSNpx{N zf@Z%{3gx`R&~b+OwWz^Y=tL2BCEjU5E2&n8dGsM@(_qdW^!x^m84H)5eXoXwcC|EG zJtJs5>uGb1&KEjsxKGR2tUz!1b8qA{1ML)A(LbB*p+{}hs@+Qlnk}|Ry@kV}UG12J zNZAo++UO*SkdTL=1AKyS*g0Wlp;nFf%}p3tP*ztl{{<5_DkQTczQ7d2gZtD!tYBD( zHb#{c!KC9(k7XRcbIOv{H4S;8b(e&KSi~03P!#VUZaU;fKl4^XpN+57^?W-@rEx7rh1ua z%P8N$h#g(sl*4rx?|qWNCwUB}PF*Xy!$kyxiN1!CuGBE8oX`7qxeA8*7l%(j#QGA~ zk3$FL`C%}uf9z8Dei+-9C`W}PFw}N)N9@B_nC>&JmfouegLDY0=wWb&c>EL&596|PIh0x0JPIvl zQsQke-8{gXJ}?i1*3CjW>M=0n|Bfbmzb=D^ma2NgzYPg-C^C4^Lqln z@U_R{Mp9vv$Nb`T%cC$>>EE?4ToXn$XWzSu=fSW)!+|z;H5koS6iXuCgzn2X=hI(o zV&k7lifFxrk$H(e`+<6xQkhztKg@*LTe+@a+6qROFU|5q*TOH28{gRbAHbB5pVYa* z1?UqZl6bdL0%QGqnbf&1z~J~0<;2Y?n7Vr`_y+e~7!tne)A>08`eS|?F6=ykp72vk zxyA(0cd{kN*IW(yyqm4Ul~!P~Ut^5k_XP}_Me(xLFTemD8!PFBL0OJ^t{_7UFN~N_ zzLbOhD=4?)*bH=e4)kX5KZ1q>-#&fGiid`oTAHhF+|Z=9sw?W{46PEGqjIO_pz8>M zM4NOjbQGs4k;Ghs?mlrp(R+c=kc;nDZBl~f7cWw;rK&)Sb!np|*Jr?|dA`HzxB_hfNOp=21!-I_Z|`5nf-MJSoA(!h{cQCWiKJPbIn z1<|kT!$AG(&%f@=!URFZ#ZBEeFiOwp6J1jQBN7wIH6CU#DFV}yPcmU-j}66b!}Bnz z$60?^d4zZc=_C zG8lL4KOKJj42%(gEdaER5~#Eop!9I&42paES=?P80VH{ zE4#7;J$x!r+%8nmpL*3?isdA9KjpY1#x;w@0n;zz2X4@FgWv4u3n}P$JLQmn`XKa9 z8n2W^c|zaioWV!fdG$K^oW)1phVEOYuc(s;p|9?$&J7x2=*D~9y%xrW**&W1yFxj1 zu$8@$__+q1=~VtM7|!lvdsMB|RRg^rX-T)Ve4)?PD}(&ZJQlx~ImT)DpgY|s$Hx9O zbX@EAbv0*#u3FL`OOo-><*{QI$07@zDp!2ZD34Xqub}Jx8%a-< zV(6R-A}l`U5AAo4%G_JdX*g#LHnTd^$AxPdMK~{iUONYo;feQoE!SZ&#cuP$H72*?yBrY74(a2 z;%Pn$!N9Q@Lffcr=vSXVR91@J|8c;TWIO@-h&4Iis2+p<(a=|0c^lB5$ouWq6-wwQ z5Yh=M>V)0uI8^KWJlSC|(SG`2ECvxab(rWiLbcKN{42MkP zKS1{b-lY&iUFdyy_V(%Q7U;KT`-~KiLQg=5#A^W}=;spPGf4A*9;%A3H#hb`AKZ>s z5F)_(px0&6Mzhd&d!Lr2A`|o}+XXoY(L=9+evXX{=8v?GsbwA>gn=>4L1AoK$h^k`d+ZZu=(mP4n)G=SN0vh5p@W)zmET2~t4G5g&J zU0bId#pIQHA6j8{mr?dHP@BNyP1F(G$><9FRH<A%mX>4hN-X{V2Ra_7NloNh*@Zzc>it;};=qJ+UH-uE3bS73bX zoV)fD6&QVG@H&d=Ftnf8p3_XAg`pJ*+}gGv^i5T=9Q<=aPQEC4;H%o^^Emc!`w%je=_7SR9Vi1Y3HSRIU*Wacx) z^7)lni~W(BSAEBi=X)odRqdi3d}m;q%rl zPMj5V9GrZ&;#&;ecBQ<2_f?@fM@@P*?gg|AC4^0}G(%Gkol(!sF{qMg3=F2ohVFs7 z>5>{sz^!v%+t8?ij<7yS@xVA}=5g$z_B;(0l*EL5qZv>)$uUUo!3H%RFLciZxB>1i z|9I5wH)zqzo_Y7>J2cwz4XQyWMe-@2 z-1P2=X;w3+Cw%Sdd|(prJquhkacX%@?ZZ3VCjE7Xfw{6D4^gP~+>Iq|i|b z<-8_E5*jVg(rhvPXel4_OKa-(1DVkAL@v@iFcSKQYFj?}cfioJrgvFN2Q*rYwb7nr zfL`Va*&W*>&^c$>aD+k*+J^#{d!dC(H^a60(e4s<1?H2k_82fc#jzt&RULbG>g zV4{vTw4E~`pggGuExz=9p0WF}`PIHBADe=XLD8p|x(-5%#BifS`xgvXm|wnN`vY1o zJj-X@mjj)2gIkiLSiLHy>$OKs(5#@()w=i)I?J9sc72rr?Xy22Yn21Kn|Qx{yu}L* zRqBI^_m4xLb}-x5sT^nvn-e_pivjwhilB&OKQyi`yndEw2aVz{WtYyJg1+;IF8h2A zfwt8HRPLGX(0h2F^rTxTbh%!rcxz_{9YML%{auHkm08XGc8&ow5t6!x6WoUepO4<9 zn#<7g)_^XYVjpxSpUfQ3$%cOU3kJE5ZbS2}enn>+6KD?=i2eG76FD{lpQD3JpH8t;=ceNaIgKt6RdwVqPRbQ5(m|E zTbEzi?guEjS?v z@cY^ieJON>I`8zo_=qW}R&~*R7C;P@v2KSSna4rhtt~_R3pc>iFOXU0lGSp;UKX>tHA~YCK1J2DNIByg4KZa{FbCv?oDpPrv zB60C=RiG~?b{DdMbKRB zsG)C}40w*T9(+t6vJEljH)9A}zLXNCI%F&9wm|gHV67 zzwZVq#C=Qvf|i$QV`%m#*P|_cL4q& zovCtNCp3~g6Ccfq!0crpL6v0(P3E?mwZ}d}y*rM!$mc8Iw_moYGh*?g@cjhK(GyTB z8|G;?J^>B1C)t0fyF!hj_`J17B{V5N%)R2w3{`ce>gJAbph156im!|^)Ex|rF|`zf zR>~3;{Wttj$KgEFdLkNXpPx=X^1>RL>=U1UvA7F${%w?`A+MpC@Fm?3w*aVLz9wC0 zUk&(g`b@LgCQzqKYS$vA2le?XpEP0^p!V{MmX5o7FnefiTg|lrj<4`Z^fVT)0Yxv~ z$Mr)E?Ztb+mf=vJFywd77@(e$KJ%4XDAZ9h2vH5k0)9Ma+|WfD@SZjAUWHRYqb1|; z{5ilN~O#gOfCB-Dz=|4gRLfTr8Z zFHSrgfNCX;doRywLc>GqycgC7pe{yTE<1@8S{06;9NiLzx`*7?E{|V<+BL%bM*UaN zRC@E>v&TD7hkK=cmYD>ai7k3neAoadICiY=W;ryFm>n-T;0txtXPEf0yn|y>j;A!7 zggSm2^J>pXz$vA%7SuEY?$nRP&t>nR#VXvt*fJPu9`4J1OY|D*D8g3qKgdFThjoYY zC<)Y^8a8yfkPi*}nXOhSFg>-7hkH`<11|Y&{D8<_X#Ns@RaoLEw1&`}+TiYm=F`cS z#O(&5>GG57p-DfWi{$*o*K9&)7p*Fx&$T4h z{pa3f+Cbe5tFQpz?r?+v&bhD8pI8st?o(Me`TqpG z9f#kHU>4wiOw4s9eZ=bO^c6fC4K#kzJDb;L3yrL~D-llLph)aNL236_Xudpog$;-0 z86$aKs;kA&T;#*j5S|X@)-znKvO!Qbi=$2Cp9S2qk=%!PC8&(yb5bc%f!YB<-@eAX z&_w0co&1gu>Y5JiPv>8Q#<$yn(RWRuCF2XjDW2m{#uD`=FZeYy3eoL5+FSy7_C@)r z?sHJ&u1Axv?+NYGnm2u8WW#pK1Ab%;eL=npP+Rqg z@|Mh1zzGOHYrOagij_Zn^A}8ninSb)^=ENV?l#26{W<|~1IN8SW!FRTOqjZmjTa`r ze(wF!O(?EYv6{TX0R?X^Ra`J9f`;(B6(U__(5mkqQr<`l%~=X0#xE2xJZseYp(g-( zJMsq@6WXDY2LEC+xd~coCA8$#u0xxjXKU-rKET=a<*M(ghL+8}lRN9K(CA}vsv*1! z%Uh{q?Z&*&GnkaD+|CabHD{EQu{v89Y$z#voC%u6=}zy7$KrUI*h5-$99qAi?4PDJ z(42GFebwwCG`HWsO0e$()ZR@F?TI}FweD`LS$0{@cIFoU^9v>%Y*c#*F zHpXy=eU8_5oJ#4OOn?RzTs^Dwl0?KrQYe;ukcMKo>Rib0*o zNa$n(HI_$zHe|vy;N0(BJnWtbEj#-Y@Po6^v|~&CuEzx$az|BtgH)jI8NPGzB_Y&~ z&=ARgd;+x;503a*cSEfrkMq=rR%q~lqC0k@3|jcDc+G@Z6>giO0&I zR=D*fVew;VI(T4(!}Sv2waNMK@V7x@3r{Xj=>W72rjfi{(*Qg{N#+G6V`#FKjWfr$ zV0bZ}O_^yJs*zm0I42o2%KC4l)trOIsqXrqGd}^B_P9IT>jg9&-b>1~Y7EWP4&5{y zx1o_Mgy_bM5ww18bO28>s4h76bL$Bg)JG|#%Oqq#<5{zSi*L&SA3IS^Q9l4}43`Gz zDNUe-;I!{&tzXa>#L1=0)eiOS!I5odOIW==dMsPi2x`OS-_!4iL;bmwrLdMBz`M~3 z#rUj2bHf*N>Wl+`w>{dR_A~?V&n6R2U73fv^x8c7QekLvJ5hmWybJXviUdN9<; zNAZSa3nn-;g-(;^!@$k-hpRf8Fru)&w12oB#$qDrz9gN5J|lrCk6%MDlpvrUsJaG& zVJEFD9!kNGME_ETQXCB0$$4CT^8tpAw|NmV&B0*pp{==>k}y7fH!Ld#yI+ctn`8bA z^s9X^P;V`R5!rd&vT6w!u-L%cZU@1nz~-Ki&qrZM^uGRw=dWSp+y`MQLuTk(>={_a&AAhTR#ep3r zYORZ|^rphV?dXTf`TJl5#BAGE4np6sHaqi35%l4+&9rt7LvM@D68)z@7-&tuTXHQM z1{5}2s{+hnj6mt9CT}tHrOC(%)o?-IJgc_U)5p-Cc5sjS3v8Woc%N)a1Or=&-sX<# zFid5AG?-}*j3#8|9iXCyfg@=LMJHWh#AsVav1%K}MJ5h&%Upv#N)!K73#Z!l0kF_YZqg7&6wL_}O6uL##T|mRpBlY`LU=On49Uz1e>< zds7Me!>GK_@f{ekHK7hczJkepmtsbEcwqofV?bR06Gjr=xrBaHf&PO= z1Plo4KQ$sMY-eqt@2r#;AEPM@3fxbXDrAQNkGJ;Zg^DnCFhPTEM;P;uz0VInKMj4) zaR+XdFu?$2qb6ek4GbJQsZ9Q02L{zkZDMk6{GInJMgPJ3m7;(0ekH?S-exp&b96Je z`%fQp`=dna?@EsRUCGhEE0O-Y5}Cg%k^Q@pzkZpH{;!hXf4uMy0;#_zIP&)dNB^Ec z`tJ#3{+>Yg?+N67r{NzzYWPRV@6Y9rpEmrXU}g<2#ttOFt2!8UkrIj6wLK)XVMDy! zI9egY64`soNO^<` z@j6Wetl60&{s&$04w4Iqds%(|tMrG6qcKa}uW$$nxovee_~DU|_-th-DHjru6j3gWvLBT7#m2J5ClZPSGQh>~XD;+F1NL>T|U z`Qrl>sQVovM;uuEn2J*v1~yce~2g|wD;O$J!FMQ zOe1aiJmnBs>EQU4pixBF%d_uprU0UlW0|g&q=0qTS`QTe0THkti_ujpN5rC{Wpvtm zVdvVtCzg>n5s{@ytB_ef?1U;N1ef$9;@;YT={P4u_)w8$lw%VSymEi!wT;OUgF$G( zVc415EZDirayqb@|~KM>!Z;VXVDT6$K-Vr>XKNlQ0y1 z`*ofDJ(!d*#KokE!DxN871wb>7z?30Om*K9h9{e@tAjes8vCD-uqT23d@sNELZ4uE zYfPw8R2jN{h#s^R+7Clyj}Bxgw8AJp=DCPtFpQoso-UpIgrR=QBZqE3hk=aep~n&) zV`!X}CY$&rjJ_Pr=@vJIkyA!x{wh&0IOcpl%;FOabI#Q=ER@49{$JlJ7fWF>ZEiDt z!5@Zo8p)TRFu(*2lVHh-E%vS2i9mFNAS}6n0Xuo)!*a`PR#Nz#AOYEr|;%;Cr z&)h0S9PC9u8U1OIAY-dk@I)Nq(vsME$`Xq>e6q?zH2|?rg~lJ2cR{Q|JF$1>6A^g|c&Yijt#H8uOZ?*R} z+V8hL%%XA>?fcQimEBNy`GCTHciAi4l+q!QWkj3u$A~ju>ot z7nXS#c)?chz9L1cEm*xRa9}d$Gpy1N*2Pb6z_R`nS?+fVSaV!6l6)D02p;_~@8Ft- zokvvfH{)tyo0Yw0on03Z-23pgbk+-&#TYJxQi{T6$aCGS5JA{t%6{;`umU=Vo*&xI z&w&Yzh)3=(@4%4Ip2RYfeK4v#G_Cag0}Pa(=*(F@f;GMcwQ6@mVN7JWb-G|bj2zHD zv=~Ku!pH|R`^BV2 z=p~B`vMZQ}VN->(TACyTia7;*$DXA+LTlar$U7IWL$j#=K9l5c(ENTH_dwSgIuqV`%2_o+ z%jNB_5kvfd517bnrQUs!R)J9et2{Idx*z`d%nDjYeia@k8-(_!9vy+xSD{f)qN5?V7pIZiwqc)00@m4l+w!dIYOer?}`HgkYiUVsY-%RhT@`vC~*W4zpnn z+}iD#FmD-XoRHZH3#5;a`Z`p?(nRaxXmLEu42NC}7F&TCQ>B9eJyx)G=g}~Q<9(Rn za`&nI&I3#DjgP;rz6Y~I6y#EIJFwLHO4?a!0%lJe zw_!n+frL2e2CTPkR+~ANA(GVej@Zdc#PFO$^n*$~tc2c8eBXGYb36ZWnGS9`Q=7H1y4RKok)DXXYe`NGkmv9@Bi1{ zd&gC=Wc}U(B1ll;MhQw($vG>v$XO9k0Ry4}qU0!u2p9+|q9B;aNRpg$lcVG;3P?}{ zi6)Zzwr6neoa3DH+&k|x&&<7Z_CM>>)wQbX+m(LR?7hg!1Ck5R_&x?z0%Z!_Ox(Z) z^v&emaV73GAnw`E>!WoRHjmssuxR59geOG3k0kEE=9$g?_R}>$^u9cLiz5RNXE#P( zxNr=JZcX3mo-al3?~X8m7b{TeL|BE#QJ_UNweWEYdLRj)VB~)w!N~uP1f%#x+x+q(=~t)G?{8#& zmF1Ur8ox^U<*mT4QhqsC|Ik*yq*z-yfBzBx`rDqr)lo&1PSE{++};`>|1#@>={o?mI}wvt z%5I>EYttnZ1On|q!|MXO!$9v=!?bX^8)#0-2Gs3L0ctIB-z#NyKsfW7Hp%xPQ0*_G zJ#C>6^uDP<(H1z;q7#-$!6T}2FLqtwiK6jiWwV@V2hb$XWWm;u z)BlCSyZB!yJdt&U7xOy`uYX=*4WDZW9`u^3VkmJf{QTOW}ojtCqsCVH_ ztRG1&8o1)MtUT|Bx~%j`&m6>Xh1XebkAT-3Jk#GOJopzWJd1y^!gKo_ zr9<`yN{8(4D4ost9{($$L;g#`|I#_XWcXW|^Gm|ts+?aE{#N8rd{0={IRETFB$pxuu$-cVUub>chdox*c zBHsQmwp-olpgJ0#UZLlIfF9dRUDBBVVE$;yU3)BTQa86^9b?_+lX_LkFmw1&-tD1XOxbH4$Q4;MIit1WFJFxv}zE zwnhPvbUG~Z#!?H!R9}g#JZu5EnN4^2&U}P@ZAa-vmG**iNvGER%p6cUo+td4E)W!; z$w;Jp5tMw(?mTTx0|-?icd%CkxeUa@E06n|Xs61)JPs16Bu`h}K7c&SVv+rpXplb> zu|1Y$JE)TDnNDuw0To_PCVBS(P?DBD`}H;h?2#&vQ14gS483}+q?u{F*zQe$Sf}7J6C)J}MOX$Uh_i!?(eQTL z>@1K8k(1wZ+8-2`kBnWn;s-_QTk5`a9Uve7nSnfh928G*@+Fj#!oHT>Tias~fmF-1 zo!CuckQHAl)p%S7q8?Ku6o z@_Ro^Id3E2pc!31jiIC^~??FaWO*fYz4unGdPtZ_|fXoZO z3fuDnAalmFr+$ud@f$_J7a}HapD(~Y>?X&f_Zq~?KY43Z6M^VN zV9M-MS`bqkx_<6!Bk;eolvQ#&0b=2;F?w{-Alqc>Z*(OIc%C8WjQ3NpkKvo`F#~)Y z`znX)C)@<}w(%*=DnpQTeJ?P-!vn-A6HhOgvw^r&ZT`o2OAzI~Q$JBT4ScVq^NZ%T zf>bL&~z3^z;ef;?BEAyH^8b?-?GH85RK9wk(tDZ972qrJ7m!`7a>xkReJplNm%U zj;S2s_yVF*w;venwE|%Qd#8Js{b2XLnZENTTR@V+)$!ncVh~ZM+2*^izJu8R{ z2l=8a8*aWJ21(+21JjWafF%1DBNX-^GoC58A*vTda+=RmD(nP_+jH*>^6tWp-Q{m$ zgXBPptllA+CeH?x_&Q3VzLhXO1YC^Abj<7WK`3m6 z;;O_I5GE7q;Qnj`d`E)mdV)A$&)F5nx8Ih4Z=_%)W%&h2-FR_g>SjH#XDl5jZMhFp zpRVj}SvCmts6%clsTdSV00RgE16FcMw zT$L8~Swx&5?l&Wq87>0?2@iA2ww(pp3(>A_rkx<$r${c!u>|6WIWV&RAE@ZcaOfE3=h_F`Aqwv@jz_!P%f|Jqe*Ops)VwcoekyCgehASsbT|q zY5Peubg@@s-wK;X*sv`2Ir0$8&)8aP_{Em%JlI)%8tcSO&DbpKLvjC+9ax?D{Dw&X zd2DQ?YI9%Dd+e=#ri!TRKCDjT?HQ)AYV3V`?*nE zy?!+lhZ^MexNnQ8#QJE*99d@$V+&cPZX3*Jv5{g<(n=aD%=yHFayq8>*z*U1suD)8 zu@3Ut;l88XXlQOUKwzmKn~oROBeCVfT5WphHc9NmTn>L4=jznKW+y4+f=TqTd6;w= z$>qVm34XbHiT`#5(Q(A|erjh0k;;=jh8I3!qdXd)PxxWjM^2SYj9^u89pi+IH^(1ZF=_!`4eb8M8~{}`FzBpP4xO5ztL z!rsyFpWf1S6b%?|tQIFSMlYiUJ#DU@!kRC#l$0P9n!W!eZIOZm*+asNN2^Dp1tX) zuVwgDgQE{N-M3H_NsBX& zZ7H$W`@)PjR_CMVmU%XVl6O$e<1J);(tK!?ZVBcdw4rgj>w%fU321_&T|-Rd2r4mq zX6q`s2lY*U33&bWB^qTLe1e8dQD3`x+V(FY=+*P&06m?n*mHr(R{gR`)SIY(V}qUs zdTGC5_vdbDEca@kTi{0y)MLM_t@W7|OS~uS%5~y28p|lT-t4B2Iw#Ydwh!c>SEg~P z1N0r}C9$7rbtM(nvAXe;==4?8^YYX66vYno;#f-Gw=P@M6I!mQ)L4Q7b)r}wzut}2 zKb70@Qnv!jJZaJGN6&_}3%W7&#oa}tJ!XfZU8qsRx!U%I?oFs*?5)%%=|I$d(OdDW z?F`ng7PqNVR~cc8Q)y>52B8L#r&Z6?x1$$BWrhX!7qOQI!`=}!rlMYcs;-i$T=bSF zefZA2DjH2WEOqwPOVn3noSx52g>svZT{?ZQ1|=RVs8D`wjCym6N^WZ}pwaV50u_5N zqqN03ay7~p)O+n%$~Tp1RF={4UN!X-%DuY(v|UIJ>Sj#o+rcl0n)u2qcjxM%p8ovc zkZYExGVL|?di)&f9J)dJ-ZlbNZd*7f5_uZE?v|{lMzttUhtc-wJ85j*ELt?F&Ki5p zDqhFynSy%7Ued`5UqRLS11r2m)@XFAU6hv0X4FlPm|JN}MdPAQo36@4q4DZ{=MTRD zG#eAmcC+>jn%H7DGfZTG8uK_T$90I&%dY_{=8sL$$nYm?*Yn0`BF!hJi-sG$IFkP6 zfs6y1=lZme_v#F)kG3IPxZH~d9josU2NKZRli$?N*rub(1>a~rh9xvJo^ek6+Z$A$ zV*hH%m;;q3Z!%ijdIb%8u{>oq?n3R|g}0(6GFlW8aDoYVZHBhp*fKb&Xug*;H@=^{3{C zpMJH5#%q*c?ZF&SyPXi5RC7A|u>GEDe5o*+F54N#9gvO|ygAIS84RJZHSw1T7K&)n zqO;;b?>01THnE46+Y&uDzqhpiV?G+0=?-DAc1PXx2ai0ue+SL_haFr#{v2T!4s-1a z??k;d<`D^$t7szN9^=E~2hf#P@vrAUXQH`Qj?G`yccX?^2CG6oW~fz}p*QRNYt;RS zu>IMkZd5IZe0E)F+f>?pqu6>%+!q~mCj)lCJl~_01or_%pUyw`iq0a2>v{+TniiAgh7j`c}TH%(- z7Odc0_mw9NH!y5deqG3^DlF=5(s<&`W~|XGyEuH$J?v33yXR!24wjm-XkE4;6|0@G zCeK|4bf0wpRHWWM>`8S0%87goYcSh=;>5svtZb*D#HZRrm;=xG$9tw+u*@;DuM@50 zSZGtlqnESSP(?pCm*Un>SaEUm4$}vYSY(b%{8|)3PH8tE)+aAxwZYDP4F%d*P9I=BsM9L>_zILM3jkL@CT=zk3B z3L(DU5Sovbyr5E+Gn>ci4;=2vVAjW6(^4z7D}u4!NLt@o%nNIM=2BKEeGg0Vmx=aa zlfv3x5PCUH1F;N`$w@})F0B5JntJP*%UE|+1$s@YgOv$gTqI|x!1{WQAMgLhfK{~C zbIKk{#VQ=$j|#rpf|YcR4G(P4z3%^xFN$*|>la+>G6^t*46ZryB{D=Mb+YgbV6bnAF;q*`x@6KR5 zsJa7de~_f)+M9wk?Q-Cix-f|aE%1m=CUavs9<{PNsbRngI4K5urEM08wV=1w@uxYn#_ zAG;UJZKz3IG9f|f>7M%~V=S46$1pDjtbQYaMh&H`M%J-SE{}ENIp>U;wVCS*5=u~I zYQs~u*0(6n;{)Yq{Y5P00_l)pr8ahdLzUm@p?s8!JyE@HmV&T>r`znQ(l8%FmdTvw z33PvK(@vVtA29dlZe29(3P73;U;Mm7E0Ne?&Yqbj@4Rhk0AsO^fBcl-Qf zRO`#_KIFX(r7{a0?zR|0IZ?hY(j=j%L_Q>+wEh8V=zD$Na9b*>fJ<&vYMH3Z$GISk zO`cCBAHT6GhqXQZr6Ch@xw` zGNTV&LM7BH*@Xj%C|89nP>g*5wXbzKnRo@EWFeGYLF|cgX6CyT$zo6@gG%}p&O@lv zs`iMD*gMo#J@V;u-UO=Jr^dEvpAd>4`M`7eZ8%D?=PAxf>O-ZC9$sYgDyUu|-E+&Z zCVFc8j#wcj4-Kes?|d1{j@mgYStk@VQ4d+=;O!YNRCi9CL_S>&wN5K_ax-M07U`Q2 z);i`WJ6~h2n|pKRxQra?Fs)2V zQ1?JB=UU1_Z4RTLRjG8(uRBoM%@17BbqlD%TGop!q4{6EkN&GZSmzn3Iky86SVi*2 zNTv{aEbn-({iDMtvHE=vHjf`G!0NI-C`5i5q4t_hOa;tX_oJ>oR5=kqs_`#W7dkS)Y)OIWB0@G zHP0$6OI$w6cFQF8Je-|R#exkhBv?@73h%}+Z6(dv>!MiiRl^1ixR#>N6q zr?zA|U}HU3zN&4G#p?5uGe>m~zN%L9E_L9D%3o8&F5yYf_<+LA7os&VfS zqe2nZy(y>d_04P8u&F_VyJ0F;tr5HQIAR8SrFucjE6NvZQJP;i%y@~_f1=rYVDBlc zCPtNWjdBQk`Gn&23P+&enFLF2@c67Ay~+f zlYxpSB(apI1q7ETiKu4Ekit$s4y!ovN3l8~s#>e7S5am3;m-o7 z4CP(CHB&#|j~e_GE|E`kpyo!)#0Bwp=vm~*9qpHsDAjzSQj-F(r=z-Et&~gL@~CRt!!z0!nb38?O0{b} zWT;eyb##xs8mfNjQM{;f5MfFu>6t7yqs+!*M~Nk0VmDbNROU~;$9xmJ`HF9T#S)Ep zv0IZZsP0U$p7wiLl-=VL+F%@ta?=84?k*lj`M1w471;uM%y4Rn(UKbFnm!UduO^C$ zKKdMEV|<9p7t`te>k6>g?RU0pw0(<8oLcfr7^qR*gYJm0FobF{$4(VvDX27I;k9yk zD#|~&bV^dgABEa9TkU@wk4khGj4F$dqUwHZY~y`%bg$N*Qr!TpO#$@D0- zk-9?n=yTNgq&TD3wi0Dmom@&b9KWVivFJf`-XY*gM*Q4C)!S*rQr_od7dvXQ4 zjH*V1Z7=PzMR{?QZPLBssOmBE`(U59sLJN{L;s`os41fB7>V{pRI@87_S=^(l)Ck# z6W@o zHk3VLT7Qz58a2HkPk(;E8>QIs?qKPs7r=sJ=&F z^VgFmDBJMM>hareP?G)W^yYjml$}QwTlRDs<%jsb7wYmv)njbi(oNo?oK1?y_g%S$ zp0&Qa@vzno)%o$<*xY>!wLI&aw$S;2YLqN{L|sA=Mpfy1u&4voERb?v%yL5I_VTnY zhkH>~X8)Gcub-fzV;i&TUWB4X$AjjSz4IuZQq2yI7NcSx*>4;bH4a}ziAUqUbZ0lAmZGD3hew%tMr+hp=UF}8k~k`hLdwKAO9Aq@>yqW z6mHc$9(2R59=g5RpSKI^9#%1!x*LaOKMkgOt(ky5>n2NNP}zWW6fb2JCf>y|m=~!Q zMu@OMiS|(YyPQ~IP5r%?rT`3ckviJ%n2z=EeIo#4(rj_NV*_5 zgB5N~xezlwirqML!u9JghIP?IJ{qD(!#XEiLN9l9V`Ge(j;wplunB_l%znyc>~#t| zxmIX0RvVRQ;$K#Zy~x^fKCFH>HtyrMHL{lrdoj-#u{$apt3Jn8AjhhNHMrehbxM4N zCGjaph7x6BqrzP5lD9YFI!0YeRmm4C+B|Z6JoN?Em1XkY=maGen=|VYl&Fuj3AdH` z1QBB+Zl7qHePys}iHBb5@g7){(UgL~z*nr5_Jp?AiYeB-OVlwsz7eYz{W_~#(twQw zoDjEXZ^tSWo3knhgVEjWTy@u29jx?W7f08P8LT5nyTquB6l)mmp4q!^E7tWb=jxjz zCe%2`!)o5d;d)WR{7`{YlmhCx#+Dqmx>vIKT&n`1iONDPm)vvl(xIDa2Lt(?^>xp-; zV=4;W)-IW-?&MK11uyR$WBJEvXsW=ZH}K^C-Ha zu|BN)gs}5u%qLV8nQ(|o#UC{;_w{ycaz+(#{A60M?_upS21Q%L*082rqigoXTackK zr3HP%9;|XceEKcn1FGU(4my%CVt!d!-)2dzQSsL~z*R~W@FKl|W z@o+Axzi)epJud@$+I;(!e6E(D#0Nu^_nAJ-^i~pzUEXL*cT5VE&OQ6$cj6&_9u2KeU;Buv z16My#2l8TZdgbA>xrb2YoBI5*%sEuQRj6U$RW7O~*Qv{lWkrRzc^Hm7*G2h(8f9sc zttf&&Trk-)9TjrceB{L_QBBmjIfuMO6dipQ<<1(TD)KprQv$&#Wn(1e%{qD%ImbB| z63~T8ngsbb?NULh+qk_FDZQhLj~!}y zaD2rl@+c~Dw0=c?z!@vaq~bH4;>CiS7Lz?M`=SyinGN!#x9`X&>7dd5}Lal(Ri9XC5 z_U=Vh1@zC?lJ!v4TEPpaO#!HgzAW#|N(YL4zdzFC71KsCviRcYR*<>0OxL(eK0YGvK^*|Y_`#$77m8|8C5G(-=7n> zCQyP}91dsD9Xp1qxz%Uy*|s1oE^_Y8`yAAe&AZqZZCzfI@MvslA-?M!}sDPkUy>mnl)vOXR_q(K{@KctSMwI(elMJcD%6m4H zR3dh7!z(?M)XDYHGW!lHwYtn58pDbb$}SoA5gVYgw3)J_B#3qK7?AdPt=_M7KrLUMT^k7k)U$B&CVHa{HS`@otB3_nke^J&9_#c@v_J8J2nB0zqHTHa zh*f)ElaPC`ISmxQVR@79Sl;&KlW7QjSU!P zuVPTJWe}?w`jDd9iSOr5bbMpI16cKY;hRTfSTKzJhBf7z2iQO!PoK)ivsmT(ohA`d#;{`9Ybk}e-g!2ils_$PgH>JYa)@nr#M;VbXIQ$&QT7#Tn>%y2unIEQ zR&2l@%jV+o*YS?Pia&fFjZtXAd^q`I^s-8^C+>kUXxJIUP!#3KhAea~x2%t|rWvad zJ2z519ghn4IBpxXyM#3@qr*L`S5P)fqu8oQIC`4?EFz)_*Gtw50rL-+Q9)U}bV%tk z*7CYbGFG4-JyG&Y8W2iAY4(SjYv&n}&++j5c%B86qnom{nm~b-9~2pTbz~H!Mwnr} z!LcaIwC!2Z!*rBJr?S&SAr|Z4F4FYBRfaV_Xur~bfgcN9P)m_Kr;QcgRk({%jZp01 zOJ@2811wqj(OG?OO02FuW2{Ar9OY175j!s=h?$e=y4z13M|o+2l+_{}s9;o5Vp3fW zl|;75m2Fc&!l(Qtub<^WF_+qT&OPr#xp7+Mmo5#Vn815ky01G>QB4MmbAB9FL-ok( z$#N_zAQGA4y%CLa)b}PhZwbb-zmZuiGfATCu;Fi`4klQ(Ikq(EbqZA-#ZT8|hfuP* z)1l3AS5U$B(hfqPbCvQZ@HLQZD%J16Qa+IlFt8&)z5z0Avecy!hR+LdDUVo3F z9!noM^pUg99?NwcxcJ7G9E;ihJb8Y1B377}dM~5>8Y*Mcw+K3^fWi};NfJ-$U@>Y( zXolyvp&YsH`^J$oShZO*nd0g)<~r6YM@N&0f=#?;iS6YPrrP%Hs;oBFI51@Ti6#j2;tnv6YLTMCo-kyZ4@0M%SJ8shk~4M730oBC!?Lm>(}|fo+Kh z)=zUNt@I+^uRLdoFL-#O!kJ{lqhG|({jZ^FO4JuoWe?Y*NQpF*L-jgAPh$zy9Wc;i z`w9;#f2_{YMV%jEYR8i*lmwXvo=&cyA|j*eInI5k*_-IY@qIohBGBD=-~1KS zenp>LKI#gJ-E;?nH(y1UB&Qb^Sj12@#}&5v$3!UQvsY_cuOF%(EN1mQ>xN=q=eFAn z$D<6ZL&aGPJ?L&sfk%;F7V7ksQDJ0!gr4;dEX{e+qWav~O>En`P@(D&Q}2Z&lpi~P z-!)SW6%DMcP2D(-YMq_(wO=NoG+_aI&WqR3^F1Pm95ne+`<^>jPjhDQW_JRWFB&EhX&Ir6T~5uVr4y)=ZSBZD z!?);u;vIgWH)<%SGReKbxEa+gc11sY(~5cA*f)Mdg@8I9U3x6j+<-#UbpkYIN>FyK zDn+heJt~xrAR>LVjKYHpQ*UfJh^l%97^P1$BcGEaLPJ+pQM`{`ScR|v$l#7Gb!5DW@k~B!WM(&qg1G3I&$Z0 zDTDu}V0x54N71AFIeZ@F&vEl8e-4;O`E#T^%AZ5zQT`kokMifBcoaWH!=v~q3?9W# z@$V>p3VcWLQ^Y%ppF-VH{1oGk;-}ztls`wcqx?CX9p%q)>?nT@U`P3L>l&1K%|-M#(tyTuy)R0kv7nwNYLfYmA2bdbY2KFr z&>Glpml+uVD)(;=G&ClGX4I*#uCsKYmd|={lWYnoBW0=dr}Usw%4FlLGYG1M&h+%u z5uo;tO}F)O4`_s6*qcbq4l1V%MT56mfzq^#f@!}TsMCMr^eEi{s!V(iAL)oetIJ3K zoyB8N{hH42Jzx)Ni<~xNmmh#~A5Y2Am*Jp1o&WB5e+($?o2Q=GV-Lz3jT8_0%7W@S ziL6I9wxGdq*@ofk45;>|@)521gNm7={(}X)eHOv9)^b^(rtP>SzfcD%4U^|Qjp>2k zWn>Sf=K&DS)}xTK4*@~3&jOkh(;&)vbc#>24#c*896QLf5qO(-m+ocv22q6*>|sxY zLD;uIDY~;11XVr}syywk`^NV93?3Ti?uSp-o1Yf54&76Wgv~ILt z+$LeqxJ~KyV;@2INjG2TH3Q%`dzwXC5(uJ67W_}GOhBl3Rh*!~0m2e5C$`<21wIGW zJFn_FfS;n@w{v+D@D;_)O0PP@9*GwZqHg7YkiR7erx$?e<*3m|!3rR#K(BDQq!IXy zt(s@ftN`ypuUtj9Fc28#aC`7&9{7tWJPbc)0B3WZyoAIh5dQ2`urT=*cmuSlB}KYG zV6A_5iu^S2)?6Fq=x~GG99T?UtQUyvEFZk2lnneSa{gHktH47Lujyc51-|WrMu{2j zAgEp5%o0Bjyt!ks&bRi0h^}sYLMkip7?ea_Z>5A?^$MvQBXAB|Rtlq_KHxc>IuLE# z0Q?a)+q$&EfG3C~-iA6HgwCe(O^jH=ZkPMWCIjW#0UMGn zc0gXt9db>r4@g}@y?gba0}Wa8a^Bt|*m&c9tD@imppq20STvXol45Q{tuzYh?;23g%s(1WdRw?B8~wx$3ofVvbw2Z&6(JO8ME#;o<`!Y2^sp{bohgtu)J)9CXaXH2 z@hJ=CXrLnXl4oen03HFaFT&@vfPHuCfE4*j;2BHu?@f0Bp0wNF3?F?1{<^n*u1nW} z%MuHm`8*697aCGQBdok41#$Ov`}MaM-1S_9_^;bc$h zI$(Ry-lcvXAHP)j-|m-I0(I{Oa1)?w9-jY{{bc$CAbVACfGj z|AvyK_&-*%7$+yyDAnkIiT7NmDTgx{D?BjEqObvD_uaGZ4vb(llJm;oOF0k_Al*_lNYc)ciWE{Vonlt2S9ejS`kuT(_bf*+BWka6c@Jefb1>|YE z5$d=iAWw;$Oq`Ss@?e+Z$I8o)xA&lidR_)@mq_-Pvf@@icHpEOSpU;?7}f zNqBzt4U;E(Ay0fpYqX*Y@?@?)F_~0`JPC=+3d3p0Q^?Gh$*hCCeKWW6J_JLa?1f~m z*LeNH7w*`8AcZ__;_;PcF33}t+(aL1g15(YwP?HLe=7IyY~7pwVC&xWced_L_!jrS zHeL!1Q@gXKx>`1ZVtz4u?N&3d_Z>(*iYIoPlJIjpDK z&#&iOug7uS-(kIer*%I2igmkQzx}$uE&E@r)q1)O{HDG3>(`m<_D6Z^?R8jhzrD!1 zUC-zEqdmX5cKMO7;@9c+zpZDT*J1wG^*H`WKlz(-+Sk+9uYWvW#~*)^b^;@miYq_59uj2!L?e~MvN#xh<`_aD+>*==Z`Op3+cRiog56&O;2d~?8-XHyA zx8c_ur`NCl`g~}9-7e?#`t3LTx?MIuxYx@$U-4^hi}h=ZAAIZf{Ev37U)!y>*Kz*W z?LD{dZx6pN|8(>^H~bFwdV7A16I<`!aIfb(wVwXh@j3r%9;f-=a0jn*SNyuZ^XnWx z=BvfXx@BMYUoY=`^sl*X*Yo{#+^?5^_J`jOzV&>k*6X!gzi$P<;r`K%AKcNu;THLe zJ@JDlbKU;%w_oSB{|z_II`?|LKgP$|_40p=Tg&zQ=0ECN&v$P9+Ht*p>mS#@ss9JJ z-H-Ct?aB4@ALHmp`ft~fANI$%{4o!IwBvZi?{KgCIq9v}|0Cb;aGQItx8sLh=Q&gH z>-zrMKkNQK#_vzu>;ASCzb?y}uWo>dO=a%p$V)U34Dwg8edo>GJD#AEx;8qEVGCxP}`y$Wm@G?VSklLOWVpSLQKNC2nd zE*?tI1!}fxe~MQwKyO=}+~Ot=^ex}`ZMtp(&Bk80G<|YlknSlQq>u!< z!etvD#@oP<74ahNjXW@k^ipT*?*>|`E%M$`FM(^){jLCwH88&~zW=JX6}G-E*Pnj) z0mM~Oy$$#WfYG|3U0J;kKClF>NF4PviIk}u-*h`1I=dG5IcvX1>0 zCaWAEq`&`z`o?AuktN%pUic9d)aOl)xP^k!G3B+EPuoDemy*G0`7j7Q-eN9v$_XUK zLhqO^oC8Vf-GqzoxghfV6G87*KS+h1_Iz073li5k-nd+w04cKVo8O$D0-5bZk%km? zAeMM(G%0g8DBGOXz?KU@u82VAc9kDQWpr=xUvK!GMULbT7CDl?v&b?3nE$^-=vQ@c zv2r!DHn;togE`gr9B0h!ozMOcycH)?QB~D5IHLRqD;C8Wb8~ysGmd6f|47tZqJP6R zOW{9u%@T`Ls@+~M2#ge0A121qfF!?|-qDzoAVJI>v3v|biJDh+*p&nJB4N{3v4gOW zEqB4MCmJ}6^|V=tzX0F(`@rV17!a`9{8qHS2zCkFIHzqE2fMDSyt#115qNq|$lRsb z2NJK%e8=P;0!w4p<%MnfAn~Aco5P+_kP%@j;307W#kH_@p3FQDPaf-bapwU6ovHDc z6b&H2c|`m%)oIxCE=|QdP!!mSoc62)n1JXoL&oIW8?fi;^QccnMIarq>&9h^Lm)#X zY$a+3AZELBdAr3;Kx1osIz2`p#bviscAp0DzHJ}xNl*Npxl8;9bC>w<%v~C5J2xFO zcXLOT?~~zwV0My!zi+6jtM^C$-qP9J<{$p|mfQaQW+w^Rf9&k!@T{cT^U)EwSVdX3 zs!YL7-i~J%@tuwRt-c4HU=6UuuF{rTwE}z7>AZW=4Zxl^X&cH>1f14_SG3<60~eA1 zFh{-oIxH|Ep5`k{-u!2;vH>Ta~qd-Y(O0@c%^}1Bm0Q$5$EK{m!7A;NOV|~qGj6Tuc zcvUuSfj$>8kR`h8M>Ex?@@&<|(As^?XsXM`Xui$bC3N8;T2hbvN))AuR*r0AS*v`8 zR<62J1T*uZ1-gSe*ZbJAyvA)4K3T>!|3x4SJUeT7lA$~ z#8WC;83?=OOfGp?18v(8fx}zIfWAb5fqu^wpgBh?X>+t5=$ZWX=FKYuy@>Nk@1X<0 zFeUJfHDDD8p3m$igL;9W_bwy6ssI?D3R0g7F#~$+?Ul6Ti@+#LJGJ$h9njkM+p0c{ z0m6W<-^6)epbH-lnk?N8^vTaIgddLwdSTWIyOo>3pqG#Y zazzX1tPATNYBB@euJf+6UU9&1{+8lt;Tm8Szx=XXwGwu!Fdp-m8-wjO5|Ts=Ex=OT zAf_bG4}^(L4qMbyf#nc)-BqF(V9|S5Syu1@*gn45MndcjJGJAQ-fgCao#Vj|q*^9n z$5jdODxodFGM3wCUabl{h_yG=Kca^1hV5H;sTRc^dAK0JWW-f0z3_DWem-Grhz)tb3 zhXKTOuydblm}{E_utnDoi#D(To4b2o_ujX_L8_~Kr-%WVsrBV9xo?8)Z!GQjC|ZCO zo9_|d(g>s?(x=j{CBWwFjXnp@T!M|dTffQ5EdrTPo7Y8F8`!u-r=Fvu4@hq@)_PJu zg-xXTq2kh}Kz5}pw>7H`KLKQ({;XgMn;l5*0UsaW;9tsLgUuN)47;9Q0Wt+Y*GZoO z*i3ebs=v(;NOUi35%ggP%Eb0ny$82oW9u^MN?9t9HF4iPsB#p@#wl;i>j?t+R7a|~ zItOej-hAu%=iNYgU z(R!zY31}OKnD-B`;Ny>J2^&uX8dt)(1NU`+p1Q9)X5&7f=WQmPPObxn!O>+&!E7Md zUi#|P%>{)00b<47slb>{D@-7o0QyQ#O&ekwU{u~%{gCJc&|a#e+@U%QgysWNZxv^O zF2S?)ttS9|l2_=i>$`xS-&NsxBRjK;P-7vC?k<^f^kTxzALAu|_0ycYp}c2Gz>YR6PR* z*%o`+_D-O&irOVV9sqRPvena<%VA6Bm)`5U%z^fXOwM-H2eePQBT7Ss@&2iMLTqjY z3{80>CZ9)vA!-LjO4k@L>{cb#V>AW2qpWALQgng7_2K1dyPZHI&!}`XQV1A1y2D0y z>;+n#%03rcddGi{wsGPizJ5k1?u$NxubYBj zzI_k_h8v7qRW8l}qbQBb<1azL@X~8Mpe+;Vixi@)n^u9oVohL2OfV2m=yRTOa|c?X z9HMDgC!pOVyM5yhVxSvn{5Ebc0`v?=jKV%p1LI2>bK<%npsirOcWOH)&|kCkUh(q= znxOPfZ&DecTRk~&Xz&2gv%aj2S^WkK6nx9L1jgJ81v;DJ zfWB7$2+JFLU_87+f6=8CXv2qud5nvJkiJ~4V7w9Ns;{1)*o)7z1lz+tm&1Ub`((Po z?rZo--@EVWJbuFOs=n6wsvTdiW7HQf1On4X;&=14+(4jiS_>Hz0760=TSEG4AXsyI zIkZ>9l_(Y`xww2E4zKng$Ee+e>qILmH~8& zl{~~kw}Elgm|VagZ{KKW=S}}cpbx&hpN`@H(6n5*>H6>?zK?|!ukC#f^eE@zTxT;d z^j+^Wo>~TiRhs5yQF|b`J@D&h)&s`b9c-Jd)q(!glgC{&_;`OD8D{5w5@=r{qH9#$ zK&U=bmal6H^faZ)1FJ`YzD*W?-s6_4b$U4d z{4HHi*W$WiH7(q210OJicVp8+XMrHAR{Fd=9GIeGr=H2&0LEpEJ@By?5YC%03!c{j zf|SP6h6Dh{4VPmxH?af5T;@|Lc6VU9bKnyDr`JGd-e3}ymo7Z^(}Uo{i^0`!gjuUCo4f$`k84ZI(QfHqrv zpD!P-bM9uRjXXENpWmr9t$oHoAOALfJBJ0(v-t+ws@mi0gF+)OH!CnayL)OOjtB_n zPKQ~qYyzfkS#hQ50U+?2#PLy?0O5f~yu6+wKHl!~4W1?7^Zn)Kox$qBxTAxuWmOuO znxu_PT0(&CwscS7`Th8K-`7g8z;(+$vF=Co`+)AUi>QtS5is7q!*abn5})5OTrXts zbx`k3`K%c?KF;N(G-t|zZc?cF(zp@69#HLiFWLeOkHcK{eUSo!$Pu3sCVZahmXKeg zat6lkXHG2<_`dYwynA=m3t+r?Q~N5fFVMd5xN*1;9~ajm9?8p)0XtUl2!}X%;)dxlXxLzZ&yeZ3$bI*M%x@`nZ54uIYsql3qxx1tJE&iO-wte9}?v8U) z>Qvsrb)1R9rAxl}I6qVUx!R@~XrneBD~iF_Q-O||qEH8*$tYF%u<<<5)!6QsvNHj? z*%^|B*;Zh1shplXoC^dBPD3v*B_Qz73T`XX0mihQ9-*N)SCQAzbn#kXG*4flC_DqS z#dEv&Yb*l6G@E$&^8=uJUA)E23)jCv#VTD14M0zt$x|+@01U*zioEAP07L2nBw##` zKTp{*Z7vUBdK{F_z=h9mfsSOdP+T{-Hf=t64qs0V_wg)0n*qjcdmZ1d;`__;hltOj zR={LKPFl2r&+mYH8;25ofbPb(EY`Q-z_2Zqr2d#Uu3rcG&J5z~pa);TlbsSko6%XJ z^=<{|6<+ijtTY2n`NguxWd@+@-R~g5+XwVSp7$Jsb$}s2KqQ3sBM{j3PO~;|#pj^~ zbL;3EV66D~S#;Yypl|vxRe2F#=iJ$1>+KhSwmEk|-#ZFlpA*}d!&`xFIeUK|hVMI3 z@?jeWr*PfywBuW^H!#rOnduo)ODKox4ptA)C=maNg+TRO=D{C?KseVP7ZsyZy0DM9j08{E&*LSRS$E) z8qmEOD33dc>nYusPdo7apK*L=_^ddtpE&i-h`F8z#zv#<(di#>?tJP1+a16dytQMi zlOE81*;QNIh;s|K+a6l^4D@@RO}Ql>!S{{TrTub_K)+e#%?FlZpr2fOukMpfMmjBJUqn~V&AVRE8R zMi+0-GQs7ckv-5oJ?s0}K@;d&-?TjHI0FnD=TtPQ@b;7jiWS>(0V89`{OQONO9cgkFN)>?2EY0vEkhE=ZoA-fN`wgnx3IQ5IA0+ z3{*A(#)dcXOLl%Zx6#P^JqGx?5#v;D_8Mr{TAkJ|;On2Tb!f!yew_Q{2I*UCICuPU z`mI-ip8TbN*nAAm9Tp|bg6oxpkrVeq!+@Zb-Q{u*115`Vla@sM+-UyRjNAPt5YD9C zp6Fx1ZLnUfZ#m8_Z6NWy8t3*nawrQQ2TQjuvI6It!fprn<}G zbDX<))%MyV&fS$%6BmPXj}a#s4dC1tq`1hJaBdCS%dC_*_h8)ZXm*_YiTv2{5S-gK z^W6qDoO?PbN`(&ZZnB^kv{Hs z&f(l)E=L}v;N0zeneq5|-%LwEe_a&kuE_>*b-cf~Nip>7#kt?aR^5D!b1!L}wa520 z3+D9O1@1WSOYMq6ykE~WKJAOc+reh%5%C}Z=gwqO`-b0N>XIsvyNPovT;faA$GJ<+ zb2_}jxyx#Yah*i7{NTO6UoJ4D2_tJ0MWDS!%d!?mz{mA1e(y`+K=Un{wcrk}cP{($ zyur^SbOqTGcU84;|Ek2IP#<87;&rQQ#P{vxE9_FWEcpCBa_90Qe*P|vvTN7D=RqK) z$d{>JpyRB*EbC)qDv3-PUeiO-M4{mjWkZ?AnuozC*HPf2n?Qa z3?Fyn`xajXQI0@AFwy!aGtc0h_G=si-uOB%q3K0agX=b<3Wxo@xb7nTdOo`!KR-0K z3~}h;$C}$#hBM+$F@VbtE`9$3q=kd|g?-s7_(F zhI8*<(^bNCOX+=AM*O_M7)YE=De(^HE?tzPZNj;!(;l6y#JS0>tZHzb=5*r5mr4m- z2Y<0xmT8b-+!_@; zjF{rwwb4)Sy~nwCCEZNy!nsck&e!qd+|Il9E#W$}cQt2_%oyhmGk~3f zI5*#c!IS(rH+6mt34TsY4{#oMC53Z8p1eVW`(3{3aMU^r=S~+jzp03Gm-na$;=EBj z0h=G;=fLI5;?W_2IJbe?>xV%&_oK!4lxaBkriH7whjH!-nW6?ZoSW8?_pKAoO?5wz zJR0XVYhP;`!~2`)+P11UICmE2dNLX3jvUh5sep5rZj5Qkz`3vHlc(YPxBZg+)_vnR zx9Vimi)%P{=@!{TlQ{PZ)5BxEK(2t3apETk5@l0o_gS zqesaka4rSuK=PBoXre5vJmLn7t%Y72A|3-{_EygvyF+;UYX{zT;pc_Ro{v1zaJ{55 zoDfqzi0c@Sb3XTReQx9=N?BMA^oOi(KFqfQy17l%n)~d4-Z30o8pij@gVw?CgmE28 zM$T|}?g|h}-*g!1=K;axjce<8BM?Y@^BfQQ;^!f*65r>z?w+2$S(ow{7?Q)3IX*c6 zVdLB8Lx((Y-4b=ek~kCSW^599&f&TuIh^jS;~dUi{*jmA`gd-6fq;X5~2_a4W&-9K90P{O$#lg;)^eCOtQ0ctom=@s5a=kMJ5tK(0< zb5nHWk>lKC_s+kz`p$hw_Ez6_Zeos0kH2%PY$reQom+_Pqse#f4Mg1iIQPBsJ&!cL zb8}pbWx=^4zxW4)e&<%mvc%h+9QN=NsrL8&7MyUs^_@F_x@(ik|Fudy&5p^{yX>l)9u{fx#89G)8G4BI>LhVJ9q3mB8%_b zhh21*zH>YI>F)U6-@+g7bbjZak-Bp6JGZg?#UtOj8)UE8f9DSHz}E?!TX$%Y_d9p@ zt8)wAxkEJOHNJE2y&x+2o!hfEb>Ta=bFJm@cW$-QZ;HS7_l74LL*Kbw&t7c)-rs_s z>o~u2J5HaS`p(^(v6uaK{>roc5B|!t{qMzD_~mOTrZ#35OqG9=WM%u?Br{jbUnhzE z>?roLqu9@m;y*iz|LiFKv!le%juJmRO8o37`Lm?r-Sqs-5aGCw=YtULa*znHG3f51fb5C2oFg`=H^x$QstSGhmGoW9}T=dW_8YfdUC zQ+XHaoEtiHN9ZeR5WAcpdu0#mw32wJyDJ2Z<_$&e3bK4(XRuefR%%jr-* z>0`?lZxi(5xm+bxIOAXa+k2$X`cNC7moDs|UiImt!IrpGnnnlIb4TdQgfTtJcZiZA zvSdaLH`Tak{cF%j&eqfV0oza?kAQHNqXFtUqm8*ARz;mvt4ursBIr5w7x5~`{J)mp z_~85JA?ov5Obu|GLzSN1cnJo7t+#4DUrNFZ4M&O{YV^xWR=F{b{&L$5)veb*$Q-Is z4koC-h}Z1WjSw`vdB>i#`Mc=5H{MV*>i7#dda1Fm(53q-8q9_3$t5aia6`_`=>W8UKAq{PzCueg67fI>UY`7-g>aPxtCC0|J%5kegDR zsX^VD<+Y94RR6o>{;3qHqnnSB;+j$n>SOp`0quY3fAcTT_5ZZq|KoPX#hpK( zC@1}c`@gN+AM+^qFVFSAt=zKpdAmN}e!3s_mwNxpa@O-9??#6MrO)O6yW01^`#~0F z@6H|MT>hV~_s`Ftpa0p%x!5X_pv+0R!mWTUyFU3W=uH=wzCdWo>> zBWSMUU3}`tS7>gKUBpJ(6wSR_$$Y#piss&K?E1LjFq(V+gj?R|BbwjfAGt%X7tL=P zKX8;(3(Zq|T@x^MMe~f)x3Abzqj|P!>2d8DG|v^eq%FaZ=6Rcrm_&}DdC@ekfDBSJ zFDEzqc>=#yqT<=pb{WlU#_3ktj-dI2N(!z^9cbR@QG1833YtGDkzd~xj^@vL+LE!z zqIm}v?yL*Oe{%oH{U5m z$I$%ot&E>CbkV#4sj?N1Cz@9q8a#4549&~R#jlthM)QJGd5$_UXr6~lgjt{lZ+8Lb zhs^D0ew+9eN#|}fPj|D@Uz88cQ&4;>;PydtU(=4|TI0`S%HuTeRx>o$6IRCKw}|FS zwixH>cA&Xf&jj)#571n<Jxd9yE7}Lexy*DVjSIPbNTCgyyskTpza_LUUp#Cfq-& zqB)km0puYbXl~;UAAZLXG&?h6tR0$*X8X3Ww7KE7+%Rc~ix3B7da)s>mOS zzbf)a;$MpVXaC$zN%MfNqQM_(URQHVb7wPWE4zQ>=XSLJewvq9=s#BTHa>U|{iprY z{%QZT{|{M6vSYh5Hobt`$9DBM8gVO)v5N-#DA(j!6JPe}l&-&mtIb%s& z7m_X>*5hQM!R=_}H|8ElwBJDb0_Xovv)Y61J6T`%fcD$=FIk)4f%d}H0gGBQ&|XcV zI!;jrI>e855AxT74sFNUQ6Fy5VNH?@dy@(}yxq5#MeRXHLULO5n=a_6GVa-PhX6YJ zONml)dO+v!wEw#aW6&}3^~rs433N`Y-!0Y^0v+p;hiTGyc^6VGPtV=}oy*Q=3$TlVnzgOaRA71KU5P(nFT(K7%_Dl7h8Mvp;B?QY?>vKN(p8gNUZ7-}UYLBL8kDRaM#r;l03|1ts%ZWPpya81bFohjl)NJi z-wYlHrNFIvY5VZJpE z(HoT9z+o_q8HT{TV1RN>lE;I#@fFu2?-PkosaAdm>ol<@r9Czu4-By}T^2YV$!`tpc?ymvwa5ED;eKcDzCgUj z;Aq#N)ogkR96g+M8tuP<<5gZ;&CC|C^&l$USeOa6SNr|UpS}RwTPjYMPTmIF`^K+b zv^&8zz9X-A9KX)I=Wh6%3v5emlOk4xz_zKURXWW9YzGM!D1`BRlQFSe@9u%^dtr8- z_#&`f<5Z^M69hZrXN@J_-h`^|d`?J7qZBxbjauN`e z$^3ZH?HP!v=hITq@`IR8rB%mZ42T(=SqXY$2V(k~*vZ6L5Hp*sV<0;KVpc?<*HUkT zm_zI~$xIdyb1eDR6zKzES3Fj~sMmm4Knt6xXC8>%=5>n9eF|cM9%|dnPJvjs;tfj7 z6T~7M&qRrifY=ii#UokgK`ie5o%1`&KrHu!@}WnW1LuBf#BiR6*rb0^E&GA5QFj0o*T#$1Ic11NY>XU4{kG!2NzZ-=}#4 z;GU0HwJO*MJe$58w&C6cJTzTjdzi|Ahxy=kMVoKH!{jM@Q1~nG2(^0`_iO+j*@a`v z4m$s-+-OXH!oo*#1&tkT_V}_>8I7575l;$UMq_9B`Was&qA^>F$m){!Xv{5OkczVd zja{bhk0=;KWBwwErqajJSg_M6J^KVS_K1nlGnI?RVj9vbj)}{lU9By1(Dql57q0Pl?N3WM9TEOZFwgShF|w zJ;oNY4Wls_Gk5p(+|P2~Z=U0G9G~NRp2zv({Jr{}r81>5?_@7Xzn8mY7y2-yK%4))`aPSAi&I6Irw8!;5>1!n&i-?*+c? zhrQly`>IPjE&eY4@I5#5RsAgJbdhn1@*PT&5(}Oi{rr7_D6nfZLuj%|`lA9`|FJ4b z`W|^JRL9Hi%^mgas&Ii(d7 zhsj=iVv8BflR&w&zqzu2+e5pu>+jN>CIwqf zOg$VmeI@(D{JciqJJ764FQ#>0_}#XI4Qz`Kl)8UTYItZVrMPaSj|$TB9(nFzv#_wz z)U%dsN%6SHT_6VIs&swKXFbY=n7Ssh`!El>$N0SR<7ePOoA3;s#TCweZLGqrIN<_` zS*?e5K5n~vf6c1rTUWTz9V(k;SbIa{&>0M zJ)9{)K?eH)OJ^w=f|^ntbz1HnSJb-78;kO+O=KsBl`|9{%QUs%6FW_Y0%cUQ@vOBE zo5Oy++u*Qo9q1NqSV{N4Dy@GeIKG1~%2k~b1sS{&Hz<#cjTS_=3?fdDkk$QM zzg`>6wb)TsG0THsPp|*j91!y{^m4)H3~+W<*2XuN59Y&^TW=^!8IRp##%2N^+C`_E zbyI`@LIDrKM=rz}W!~%SmES56qLpT^SXem}a~hQ+8K|ul{7nI~GhbPSDLd>KZd#xi#y2q!3073!v*ilyR|+q3B)(z7qpVcu_rQiRmts#9P0Cf-VJZA9nVSw3hy zd*Q9ohA0d?<$zFZ8-$Jr@y?~OLPSR`{1G5syz0-u?XN+J+B#W)S&`j_!wkv{T7?{FH#pu`twz;XV={uG&Os_W(G`h9Yg&-iH zn$v3}Oxd;TdMI@YBJ@rB6)YQ8uH6yq)jl5@Kovl}PrFFBK(|2CBKVpAGds}-tJ!Ws z6*S(=9tgo%g`#M+sDe3&9Pd=s(pI;q^hD#ekphQZ@AR(3-xhu|^d;4&Z}pv|sEPI> zdk|zzzc2A!u_(SMgzE4@-|tDr8 zMI}NQMF3_VDbpP7&?^n_(WP$xWWPesQP(eD8A5~_TH}RmR_5n7$_7eEZsub#MK{4< zlvNpYI~iYbZ-?czhN9f#`Nps%y^HvOY;VsuhyaUft09}YaDw%`EUn-iVvj>`&V)fq zrH%$e_fO~Y3(kdZ(D3{=HX5|6jq3^b7ZN4H?tpQySHI0c{@oBIQ8M9fl$iat4HMc# zMMk;5H^ff%s5poYmmkoL8E*66KPwN;`n(gxz|)0t_-XcZy~Vj{86(uB>tJ|dv-Qz^ z;&r93{|@G~|3mk*8YLdc!gp1CrKbDWQ~wp(DM0Gs__}AI3;xoeO~%RT_zICI9-LMx z489l}`96R2^l4Pqu^b0*BPYFH^i{e<=goZg-pE`tlno3iw(Y8;?Ry?WXFBb}a>?`v z*#7dpGU{0UR~mMv4wT(I6@2J^iYdIoY4O#x zwEO*vN3`adSC0=PrG&U=+e2Ws9T=Lw`q25BA$YMwRB2wTaSwV!1lJdQX^1Z zJ5wxK(>hg6p&r@kY?gVN^obM-AekJ#dQ_h&%Tx)z+}|F0LpsAX!qIZWa^i&|cLWAI z%+t-rA_scz83IEyQD)a{pS>7gx$V${$-+MB)F}xnT6X5w_aL*2Tyb8xUJf(4C|_*> ztERZ}W>}hE2TLU`?&z+`neM$@=S_Y*yYc#|ytr!(`hZBM21@}cS4d#gr}}EyvT;ea zwc`EdJdx0r!?b6Ebw9=scFHu(H5kg#v2l&y3X$D44q(??`yjYb_Z0+>TEg<8i?_dK z1sPP^p)q4I&lh0*1)Xl)Hop z%PidlTE?3?*wf66-7R!Q@`v{vhs(!We)Mc!zt^ukk)JYOXm@b+oztw{|Io%8(piO)2q+HUTh|;~=?q+`xLBhqQGDiV*!2n6 z1gUG~ZY>Hg#GqyoYsIf0w>>5PJhJH7nXW~t1H5Kr*1gs1jt`ujKs9#Gg4m?pSFpeb zfAnl;iPC|^TsJ3-K0R~nuDK<2dn2YZwwW!E-kn^D$L(=e?x-z4QPgAbDX7%A7CY<0Q|S_?eiWBdA6BY_BTR|VLVy>BUO&ec##vN|8WT&|Q~DlbcyzbZ~c zcC)q*)(p&405MqGu-+S8KB+8>r$1d^Ix3mHxlPn;hKX2v#N^l7T^_5R9*T^ zVMQbep zA4~H}$)tyq6VmrR4YLH`fS#36S7^{#&mO#3YtXVxwRvLKO;4E2EUhu^Iw+wFblJQp|k!{Mo4<`E>_Jd@1_vmM>7G;s;sglB%w;{F)6 zqIC*;G?2cS`p>&|MU|Vr zP{LL3+l_6t*n0&96)G+@ke4e{wGm4%#m*L$m$reCQ}e0r-}jt`*X;fd<>$yM|FwD9 zspINKIq}k;2U}JO2%|2SDUG0Js2mS(GAmrsN}?G&F8f)VFnukte`(LP7JBVHtL}iR zGa5&vOK)&6D2Oo!0L9`AKa}wDH!eh^l)wF_J$V%<>H7_PbJ=kM{(2$n7h>CDm3RoK z>4jFkY>>xJhPiD*nVW=A5tc>JO3i zj{HVnCJrP!s-#ZrnumLMgy)y2&2bZN-6#*)h~u<8(~^t_$eLy0kR(iBb@Hf-g-UtI zc#+wZZDrs16xawaem#CuQH^^TzsK2|clTg%JZpKD#(6nmNOiW-Y1 zTw0wP>~)S~F_+_L=9C+6*3~F*>7%I9CQ_vOrt37TSq$f}OH-fu?K3kgwe({TRt1we zqnJ@WxJ2PdILrtZ_hHMylG<}^BsO7n@Iw|9ckL6h?7^ZLdJ%?w8^;Cwq)>_`c8yOpc;XN4Z2xIi(g!IrQ0uzM2hC*a7DB zTAsh;uifK_5QboI5Cd|l4q-RIUPGv7V`a6QuVtca2iTumUNr!S)(}mHiZJnxU%@q) z1R(xo3qjb-LA7msYxUCtIcVXHq(Kxy9Dv_n-N~VV@639K>^UKcjnB}S{osf~$+K9I z?T&LYwgGQOsyatONXa7PJ2N5t8g1%_>bvH7N)8sweO4y+h#!bH2Xez+L?FXir4$gi z6to?=%!nLe7rD^TwI+GuuUL4iRzXw+R6d%1l9}7s*UU@!34T{87kD}#kQ*=8r~`)9 zzl0@ja@bwCmw1o!%C-9pb@!prrTXxSB@+vK@2W**O~Pv!_^fwhM&XB-(de<_c_18_ z7|Y2IbioU2DOuh3L#}9p3qW7Wq9(SdFM!%2|wurK@VbRw7j`j8|jk3!bubsMfeQ|;Y9Fh4izSmmm`<1>o0c!MgB{zysL&et zgZM4Lc|XxJyX87!oLu*aFp;%y8oLt`W%MUf4BLbj7UyxYk_KYy5JrL3Lu0jKiQ zfZE8kWV|v>Qw4+nFAT%68O0Y{*1?)jPHbN)2^F;~ChW8xH=+qO!A~8Jqo163L$g1k zML&55FRV|O-<7lRFmN{QRb5C_cXca!!xz60H{9R%$w-GS-zPoT8 zIc?FR^gd(X_-aM(K`Fdzsfl;^3!AjPTF{J*)t4waiM2RJ|NF!2YmW}q&%NxCilE}V zNqpz)wkazQd@_iS8VY9PGE}`jUG8s*Em~u?JCL`qvf=7u>n7f)3|!C0Fsfv{drhwz z^JgR^i&UML_ZFk9ZfjNltndM#EHw?{%l`aU$gY5WwPbQqBg6VI!Rfh$k5??FpENDN z$#Pvrkv`EW#`x0MLmQuUzTR4cs0W9Bg(t`oaH_#!&6O8F(p}AUkYF8cZO=uRFGk4$ zpO1eqIpGvw=g#8=HC*s3=4u0P)pY`h8|#eT6F0V#^TJhau6E~{3lst;UTkO%F{baf zHN(A;oS+1*naXs8e#za3(@eD*3x6%TNG16EjNtpBs?L_%lUu}kyQ0wPcwuF;;KvB( zUqx}!6=L-$0^IqO$wtK03p!>jG1hMH#e2@U66^WekLKVY7$YJXp|9Nisj4w(`7g-q z=r3CLCzz_;;ex_-u2vKTw2=T$Hh*5?IwvdcL2q93R*quqLGP}5XD>g^)==@jfyS>F gX_4NM&b8(!rOm$Qva->B-M=85b=9!DZB$hM0G-@N0{{R3 delta 5067 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 QW0?RtG3XAs*Fiz?H>zUSKL7v# delta 5228 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 F`~#b6xUc{K diff --git a/tests/test_data/Ex5_output.rds b/tests/test_data/Ex5_output.rds index 27d75d2c7e6063b4c05602952eab70a9b191a77b..65c24fb8b9757fc98c0cf0e04cbcff0f1f696a97 100644 GIT binary patch literal 57372 zcmV(+K;6F|iwFP!000001MK|?IG6plKaQJc86&d{84^M?V7((lB85mogi;wYHmMMi zAq|p{B%;VX&-2X3JkRqy%M}0H+0Q;_pXYh@KHu-YuJgan_jmT^s%yE|dtB?ihS$2? z?$2ckJUl!?JR*ETJVIjZM?B(7I?6|m=I+&!|4(7JMP5g&- z6>aV~T3Orwoo2!_Cin612=@J1lbNN}Z=(qC{^PUrhh3YS-~P{2Q0@L7j3d^tv39um zPYfi|H#f2SXBNDE$HX4f0|D*dFsbaFH60yn9UY9%De3=Sb+#tgZ=2lstLFdRw(PVu z&#LR4){*$jB7fYVj*`ZO|2Rjo-QP_>=3s7RYiwd^_m_6^ziysrPwCjd@&EY0*G}=* z_C1>+`3sM7_y1f0)c+TK_x)e=rTJ^$PV{l%-x|=zmEY+4Z*==FG#u|YO7t5g`;Ail zMrnVejK9$XzftzzDEDua?>8#=8x{GDivLEXext{Kqq4tI^cy|%8&&;{s{ckW{6=+t zqnCf9SAV0|exqi;(VKsv!jQ9)qUDW5to#~ZhTtOs!Z+!MG*^+pwPEf=COgEJXFewD zGlKYc`IhYkHj$7Ndl*Ma0umOanHMs7j0Crv>4f==kr0h>QLZvC61wNH?KIeq1ZZi} zPmpFHL1Xry!f7JJUox*k!1@&lpC9g3cy|B^9kCnoA`V4@pF1kg8D=8^(d!T9`*e}e z4~_X`{sAOh^VTFFMh6K$`rnq*eFT zrD>KeBvZT_n7YDP$oTY}rGTMoA?>l`8{D?X3z<^q6)=-1WTJm|Ft>xGkdk-D`@XJH zA+6^@Wu>Zfg>=&QB_EeZ71C>G2p^;HD5Nc6ZW6f~Sje!TFqq{oSV%i%?6mzfrI5iz zR4Vm@M&Z7ww_5MVs0%5c@GVn?PZiSUt_^aL*A&v;)iX=(v??U;9BYuqzfrhvT=nzk zjN(Gd;Rvmf(L06v&U7UCU#l*pXR6=H`59P9&dk&xZ6I1mp<_}fRNY=kZbq*@lWtJB zPb9?pWWd8hs%3(-pZjtO>0RF|%7myC(j_;^OIRK&q`iIkvXY26qGxfe`hIg7FF_1reZiw}#3>TgV zu$e+s*{2^AXB4A-%RWa!eg>jLqm(l_w0%fWwzgl-V;k|-N0qs(FCu=Kf(S$DQFM@O zAnT<9CE}Mmz|2`Kg!uOpu_iK*nKM|AOVC=$ry@te0(LjoW8Xz$-MMMAe8bv=10g9NA;64)&Ik-+(Vwe~u}NFaJO zhppWM9l9nYV1KP19Xhah)nYdX3H6pJZ#wlMzGEE^LZBJ(PMkQpX{m|$SC6ea8x0lU zro-to3x%Loe3gqURSyc@j=BcFj)orcbIo6>(_sK_`ou3AKFDjUUJLUOg9e@J6PFL= zLBuxANwKzvFcP9jH_vGf6)tyUUA$jG*FtuQQ4tliEj%4Me^e3L<))+GTD&SKF;Fi( zKKT_!89&&+l0OW-dK*6iZB}70tCy!N$^s@|qnP7HqA;RTFM4s8t)Q%3k`zB%xMoL*F$}CYbA+MF!bQsu12nP+|AK9{V0KW(XN3xb7mR7}KumK{dp5SN&=4 z>lU=%V;HjhP9cVpm8*f@ZlL`FQWVzhjEL@J`XIdWLQGr1&YK%I5Pj;vRG^h1Vkn&J zE0U~349CCSI&@+KF(y-dzn@%%80WLn?SrKdQ|Pw>q-cQ-n0j6nc6o^Q*LNRTp)W#A zU8~otjZPz`SI!5OyE@T+{g&yk`5kD#*3pBPUw%UeTB^NFrW6sqKac#UmJUQORuEq8 zP=px0+_b!hRsSUCVPFuC^!Jbp14h;+7{0`QX85h&9uA=Wx4wT1Qhoy-Rwnn1761Lh z()vFxOq_1~`vsl7qn(Axb#t9Pbnv%B{&U0M4F69Jf0^pvvor1Pe~onLeveH4OK3xK zK}$*T>^}lGB(`?u*DY=T31~z7KM>kv|F4BM8lPVpq+;}9aPSAL3%Woa9E^#AE~P#g zz_y08&Sz>S@6pv_KhwQ_hb$~G5z)ERD&H{?k=o{<3ilorWxS`eHy>?ed(2qjAH zy|Ty8vyJ?>eH2_3#EuS~*xmg#fl(Fx;E=s}6szT|M9 zMsT%kPp@a)UK;FCIo@`%J-%9v2m7AB-u{kX6rK6P0h3d-5H!FyE8&c=5~2d+SIYD}K2rm%QU&sDyZA+o!$p zoSEAHCdbZ);)-iRoFES0+$d`?d zs8{m^|6)S|g&w4`laWa7B)5O@b_kMIIq1ewqlxeAU;767gQ+JspwegpOG2w+8qVAWnL5;wRVK5Z`k7 zPQkvH=$K!og}KUkB$M7>p+DM%#LX;nmCTN!L;Ow-19kdHbmu0sO~@@I8uV}?Pxk{7 z5?SE($bW?nsm)e?CHjnxBq^_5K3xf$36Bq;vHl^VFh=i{4sjUw2A-)|Z+yy2#bePP7rQiG+68=)aC%DfM9pyXV zBk!E?w=W?PF}0*OAB&L4xPjFz z@<}92&!6X2y&v)AQoeHC^g#l=hV7CsB@mx}K3`nuEyV9d(WGp-hy+G#c}JNd(81@r zH>ip+h*x;0P)d8vS&1iq zC&m9(Rx|AJf1lDx{v@Rn+S)q&m2GEYY5mvyX>V=gY;0k2=gwcD!XCrQ{EoxlUf;3V zyAAQ*o2V)F+RvU>KC7eJ~2hwCA8ecXfL~8L`va)=akcL$D*70*+5wNsJ zu&}8h1!B7IU3bKgLeyvqjKm7`zx1=g6P?+xyGN5dhc3$8_WUkEixj<6m!gu^kz((LPLDtnQj{dbf7C^T zP7@`pn_fGP;Ofq_gv}~C{Xn!Bcb^w2ZPvpz$qjUlm-=C16)`%yPj5nxn+qug4A{J# znMNvAa>eV1rI7Nvq9|b)CsJfdwFnrJ`a3R7@DE&?;7?qd%-+WGjxpvCc>moPTIqjrs(0qitiz@VdjapE}68lZ&s4!H&x>>pJ1`aCAgdN$QeS$I( z3-`3?D^Q;7#r68dIFxNaZmIZM4mD(2w|UNNL8Z-h;`xiiP_ZA48MTi?@wfgUF8_B> zc5CC{jBXiJMd;t{toaNz{H)J&EZ3lPp_BH?{9`Egmkv0cz6zC$L7A`UzCy`j46dC) z8A=Ynju{~;fQmAkXYRZzP?B|IHUAAKlv|L^9mp$&(ibHc_3<^K$p6-c%$LJZ8q|bey3_$~@P3t)lZK$Us zZA^dc2bG^Tn+I~epx*t&VoKEmsJk+LU_f~QYF?;4Q?%)Vau)5!Jy+(SQZhNDt~U$n zhM%s8W_*I`!sw=BuWX?*hSYvkMI34+X=_-XO+kHIWGfjfC)9XpmbJVPhiX?A?k&7F zs6M$9IRTsJwc!=t$@>s9gW@<%ymu)bU)m{o30Gbt>*5 z16BM`Hz%cSSN|Gtk>rn#bVmTr&sy|x*gDh=(j?KZhCm&wsq6!&1RPh-%F^r+s7?L; zc4jpVYQEa_a#AQlwdYTgNGfWm&6IxW(1M-!PgM^uX;G+&?c2ypRf8JJ4uhKIQ&3&P zuIXA~3w22;pRM=xLM^?>w&F=)s9#^T{7hU94WpCiN?SOf#)Rlo?C~+EIfiGeOIatW$+YDEZtL_zJhlOch_;!yv=;?*MqY@QXy{D;w*fQuS>N_1NR z>PR`VtZ5aX=A`ICz`G`>Ik#%nQ@IH>&MmuFu2Vw&ggmZU{s=UPS^N+rD1!$6ZxSKx zo=`tS=6SiR4eDRL`M8UW0CzN^A=upx>c#`t39n;%p)BJR*C&RW8L1EV51oU0kpr2# z!V*w-o&9OGqCM1hNYs{{RfF1FR+X$0kx+Z4!0!6hb!fmhts7F7hq_Ok%L~B<(2&2* zIqLfn>h-U>#fn-%ZQ4}l`}q>6eH18$e>MPW>NJj+a1%hy<-|i-Zaz>`n&uRZ>7~xo z`kU(`X=vDec=b|XGvH2LeOIpV6mS!!ud>*Lpl$@Wnyaq}weIp)#LHHpHaCo`eSH`z zSF}X!=;olN*Zo}^DRy4hTBzE*$Dme*=eb|oVW?SRL6fTTP?PG=#iwBkb=qT|uNoN|-&WkACCS+JG7c;x|8&ZbJ2a=`wYc57mU;`(4L4pz7X56-Cx! zsCs#Ob@jd%)LgStaFs$(JwN=UR$m!vaibPB580q5UKfh}l%Z%#Ys;^Ebs{=fh&w*_uKN)sI^XUsT_Msuj(eGy{bB&)8tDIUiKZsy(4U zF^uVB`S_w^2vlWm{#5ih1XU7e$qQOXFu!ZuG*sY$YIjpD=42dHpMO7~E? zs_sF}Tg`jLfoV`xkeSbRLl~;Avp@d#%M{V{al*Uv02n5SP z@uhx2ItN22%334~^85&eCG!i_VbV~vXu?LG%nC&Vs@59eMo@I4|6$~TBTzX1;RP4V zCn#e4u4t;I0mVnmyBSn-u>K-;2KiXLdf^uRI1!86=1XQ&+s07jbtFXQ1tk<6aJ*us zsRf0DIu7(7zCfXc-t8+?=}=gH*hlsq7Pr&Bb94A~LCNiHqQmFzL8*SeY8I<0ls;;x zE|gJ&;v0-n~tl~dFtrUBx)yl-d&hq-daO?l$xV0=i8)wm#3gvm$Uw6(|L8YJhuR1LLSN8u} zC<^xg+}U8o+bug#GyI7`)>|FwJh+&5j0T~`BhSLt{Tx(yeybUln!@r9|9uW+DyXy? zQn2CRhkA10@gB~F8i50)(K@f7DymJFQ0p9&=5_yS#@mL9+M^1!O1e<{;JRtYvOLra zotW9C`T-SZp4>dNC<&z>3G*~=V0f;`m-kSB1(XY}I1LVKL794YN75N(sJ47>!1x8b zo|2@Cc_0Io!-tICyqSdZX1YmvW-MO2)*c<%-VY`B#U0pu>!D13RCe832FgA=FQk#s zL#^|>7vF_+piXtUWYXjXGhlq`fcwzeYyU1B>as$o%ubzy8gs+2 zO~=#Fa7m2q&Y~?e9-Ne0V8_M>IqvtZe*<-PyANu54WW*ob%&&@DH8da$5$5kMrl7e>wI6PR#eM(c4FWJ0lWjs)Nb#sUnZkpbwfJDOywJ5kZsL zX>V6}1-Re`PgD|a0`4#?57mh$&^YCuqhp0spM6d$(|jFjTfe`<%YFoPr^|1J zAO~pZeCN<-NCS;{cl$k9jG$5C%qo${2uP>-VK6XP&^t7AdV zqdf!l9{m3LBzm#?M>f15YXd*Q434@=X>R#@-zEtuTd# z=)UM7w;-q=Veef+IH)&$(dJ$72I{*4^4=bJ3%DBx$vcT>p|QNFm{6@Bn#k#V0tQi9UgbA4;lGDHy(;Bb+t?EoeAuk&7SK3XQky;OcE(Xv}@)eX#F7 zwhza^raCETbk?kjRp5ih3svN|bLXH*$96xm{0fcp`ySo>u>&~03o-Zup3v}#iz$3E z25{5EF5Z4Dfb%Jqy=)c&IE7+|Q+9uH0aj5m8TnIEN+**4RatE4JPp$b!-Nxo`*s`*<104GZZ_lejz%hB6 z{j!mR`sJXSd1Gt9ZMsJl?dO6o*D(DH`IO1TnM0%Uk$d+ZMM9&j)p~|42{eiI zldJl51Ma0#uyJw^;EpE^=!_hK1{v;9&IM<{ng0m5TfmIzBaBjZ3Gvf{Mbhb&}%zZpHzQx!JiXED0Kt zd{-bD8?SppE4ptR>dPE*-Mj8V!>QDa9&I7ODLJWJj8}w4Bj2`B6#;1CRGVkb#Y(6s zaC&-MxDqPq72E)NU}o^#jTdyB^ti&jw}sZTkbBordzv0&T_UeyqQ9fWAis zRK@dN%n~EPDqriJw-Pt7IDLZ9jFuD1j9w>et6zjNme|)fyT_pP$*jsf|4bYkkY`v~4$hl(PGOmUNFsAPY{X_j*vD#|7wzB!21C5tNi z_K9L~b-U#b?#+29mnfEtHe7}>{IJ4fWV29yziOqWbO_4taMDpU@IqM!_ibe-LMT(n zObIiN!`Afn{Fp4{;#SCRO z6X~Hw*f{i>hTRkRYS7D~>71x^I zAdFuMdNgi#3Z}|3Zr!-!1Pes%No)7YtGsn#PcwlUSl3P!vYgu@7s&YVEf(m5&AeQ0h93#{0XNcVRVT& z!^2M+MkjRL2&G0~e5`1A_E`%|=$6lMzF~v~!ZY#yH%DRNJ~>A|?><=0GE2>9n1y9~ z;?eWNE3j1kWtg7k0L)dL@amZU2FvtBGPH&>uyh$`<13;Li_+Gwzwu9C`ie1nbN3s} zp>TzwO9HU;L;QW1L@6v}-c&SsFa~o?|rga}VJ!Ov^E{yh8Y@U#lg`Zy~(5SIqdwy%7E~4@)f3Ho|}4r|o#K7vZZNzRDEv z1L2L|IAMH`7~y3tCMB_B>%OE_dRC=|@O`dwd?UJo2n~Wwi4{W;;e1kq0nuxO&;EJD zvLpcE<8v!ZPTfOz_YIampc;gCT-<$@UIyVg?1s2$2q63^vk1BP9Yo0elyx?96A@na z{YkAViHI5uxQRXK5dojwn~`cEgimCsd&Ni*;nUnVi~SXf@P$XY-n)z=!ixe5&q#U@ zq01+cPW&81=={Ps!XgzBYI|t^^eRV$tlNslUZ)U|JcZ(uk@JWkF)xRJ^C2P-Fp%hz ziA4DJp9Xv~<`F^nOZ)H##)!ah5%>6(AR-{;D%jGfNBG6h!f1`75&pNIUmvrwA;N3D zh4Ht?5y3Nt%TC6fh_Ky&LDP8{5&Z0IjLjoL_>0LEyMbK@zphvATHPkXzji_PYAQa$ zXSO~dxfq1-uPojY7!E)L4#dI%v!4;+Zahnx%NInXCYkHp%#Db79!d+CEF*#hg5bc6 zYJ}fJvTpP+3*oO0Nsev#!|qXw?0xSn5&kVZd8N{u2tW6k7YUO%!vE~}HZ!Ul;X7+q zzN*9YdZCI;H_;Fg=-4u{@nHL(-}g`}p9$gVU5MVk{RnnHaWO`XXCS=k;YSbZ2N9l6 z@hQz1XN0G4EdH)o6YRE`2Qv)X!S1s1vR(TWcAjU>1{B61yw*9f{)}2gK=AS!h%6#} z^-JTO@6{2WEcNl=85)Ggy*og{>YnG+ z5q`&^7Rek@M4)hM)y5$Y5vZP8y>&1So4;Z68iO6eV;|w^DtV0Xm^`m>fR zXu>@2t-St*XkT;KpKmBew0GH9GIp_bmrils3!BE)N&0?2>=mMAZgy(qet>9_e3#Ay z%OD!v6Bm*m-az}x9I}JlMG(!Y)U=79K18eJq^xnNAJG~4wl)}DLG;{8ck6v|i2g)m zbwu?wM4Rv~L2R%Y(bTUO1uA?)G{bqvF5#sjqVF#@l#ehWl7hkHh*v#`jOp~S`s_DE zTHy3}Uh*0uqgVJ&k*J7B+ot4tV@VKs$A#I&C%%YeT6bxGqXQxlv{K8vsf37Dre}Vg zaYrOpSthldpAgCAE8c^o(ulaI{fbZDaYTIBRU~?V3=!+MF`gV7KqQ$37du#|u>Q{e zOFzyd@_610oL3tW8Cd_KJ>`sur%n(M-|LPO6BVFUyHW7I!VVHYOg<}h5L^GFCi&e2L{eWSYoG8KkvzCc-f*4{lUq1A$R5-CEvm?v;XFjV zVf1Y}R|FB;Or$AY!^ZI+S#+K^Lqx&Fcd6xF5HXdIh|l*;L~?RCg+6W$k*PnWtNa{| z$PKQGDUdND@+iFY)*&B6N*PYBm$wfQ+efMOssSR7&m3LowfYxk{q0c@ZN1a~0Iw3- zJDdCyP?h_C9#kdV{a*`Jc?73^*;g4-E}Zf>ek&9Toj!59 zT5v(uk+qA_Z`2?srvBKMQGLh^YWNY8s@qfa7UFIh3iH%hK!$9uOCHfA#Ce`O8LB-G zDK{w}hrE6V34KM6ys>p7e?4swsCx=u8okpy%(CFy6`O_Do;mow{ynOz83*xtp9@T| zeI-2hid^HT2(g$h`vmtPq z!1wSYK6ul9@me!Z6T%Mr_E%)kK(ZXC6Q#;!Na|oq*^@WD>T9-J#6^gc<=_8QzZ_y@ zh=q0X5qwJ|73c5IgS4)s=~VO_QWAB?%D?tOT3hh$l=nR-%IW1;XWs`!x@OXq*my& z53d?-<{87c3QbMPzyydkK2k^MS_F|R@a8$88>GpHZ7bP$zz>c%ooAu(kX3TgnzT$!_W-mS=n+hT){8i3>*C?NvikPs4|IEaxPy z>OjiUQm+VhUTIo1fux&ekVa^Hn;AQ|6!Tz*RW}w$@pa)Oqiuz3Myt>>!}5^WOIpDa z`~hMM4s-9F=cfUQdA^BmNP5b?y>}jQD!bxIUZoIY!b#_!s0dLnZ*%V1kvZ;ST2E|R8J$)y$$+$#e=kk?*IZ#w`9HPdOxzul6gijrxzn>RS zfe-saB$K+R;ZscP>3!F#;fHj2CXvKd$h_UFSe0`IvLgpHN1{BTkTDy-o|Fg@g`B?0 zK23q>+p%k85>FwYw%-|_?bSpEyU?u?%>#q4;ei|0`rFE>l8Sc$1^Pt`fYPu6yw^1RugK#F+-1_lKB!8@IScN+FfB zc;dz3N05Q%Alu47;fmol zr1nlYxIfW=_>Xd4d*_&OW5`@N+5j>J^C;c1IG3vF`m6_wI|)Yk@pXsZKr-IS3FWqM z$UZ?k)OYC>WYJ6<6`TABrE`7e_|)1^gf~iF#{Cmg125k$H9ZQ6ErIOkF#nG4z^~^7 zZis#!W;A8p2=Vui66*ARhV*nbR@H?tD2m_+j>qC*d2Np(kAoFd+~?pd+n*0PzSI?U zk#UerNTEa=dJ~d0)7MWxY||8&JtTePX3h+sf*290WoiFJ zNL!Yxd3t;s3Qu2Z)MV6ye1?vEIimz9xRDWTiP>?%Tl#`n%zw&{X;@w1R)p+~uQ=Zu z^^oeBJ5Lp~AL7M`mkaLeLi+3I3aT@?kYV-qe7b=sq%@P(WrV1}k8f9}0v_Ilq|)3t zEgEacdc*f4=L{KS1fI-p1|H`8x zvXKbU-{0Pv-HY=!R3@|szd<_wsdr}Bc^7uRs3OMVd8yazv8$N>mbs{r&SUvFJ1V2L zAo?C8_FNX)i-XB5ZO)B;Xgivy3Cf81@1j;>KqxbSf1*@s{Ui@ux`Z3-% zaU5#>M89&c4MBsQ`n}QQPN>=b$`IR_4yB`UtnJqBP%*9XWs2b!l1vw<)o{MQQklpvF_dDh%g)z@nW-xm$y7=lt>AgrOj>$@E$Ihda zdQBw-i~IHW9Vb??JX#mkxJ!-cwZ=R7+V$pnD9rUK%EaPrt<}Y}$C#g0AB>9H+jsd> zkN3{l_zVKBR|l~?QIK-T>F)YA)X+U4i>d1%fzx?+6y=S9$pj@2#>b=jIP`!&U9fH|+v9QBzp~x^4s?pazQD1~2 zonKcMFuhb22;Q33JPkD+mGuv9ctHKzkM5*~s?a)<$MV2K5n4ld3T(}Gp+0#1!CoG! zp|^bdB4-_%hgrR+1z$teorPDf?OIT#A-G7o(g20S`&+!QJXiI4zk$2PQz(z5bNCQF z3uT&DR&4_&xZ<+VDV@0-RF#AsPkJssw2D~%122CK}G=@t-dCkVtAwZs3L#9 zQ81K3bI{(omE3N;&S%UG1v}!xILxkd=h4N2mzdvmBy(;aQF967cg|bit-KA&W`3?nZ-eMo2w3$hX6F5;`-S$c@8RNv%jr|euvUs4>YVL z427>v1r5}bpvuK%Tbzp=${&%5njYqXQu(8%!YdL`tXmn|SMCNyMPlAmtAbEFtf5t1 zCjb@4f;fLt(g2Rm;FYALBvdO3vsC%}LrJy_YnzHV6i19*%0JEy1=)?;+@k}KE0mo0 zqL>H@?DLxq?p0*ZxCuoDeul=&B56b8M$o(~oy+{@I#k-H-P*sV4#gQi z9$sS(gc7f{mzOhSA)BKm;Sm;3E1RsIot`a)>KcofaA|y~mcDY48_Q!=2A@~=dDh z79V=nc2sq-{Md1%WO1*)!4st^4$6J z>7lWs@BWKvBIrDH_0V3t>}}S!amjRoJ_}#lNwG?3c`Nbh)r-eazhFr^h2`xAW2^HG zPF_$^K?-}gzbV19_n?pov`sk*-v82s`MKEh0L-7-xx=1yoh*XZ+4uBkD#W43&sF&w zhI^WpD)~l1&z$F`E#PnTN{>@=OW)F?2-)<*i z_Soor=ltGzH%P^;j5W4F&5e^U#<04wmN558GnSv4ei#S27GnB&oxC=S)nh#}7W5Gp zVxWE5Td@tRGjU`zt&-UOYP}Y+)m+A*Iw)6sPtFSQ0JSj;pH@w2ead|dfU853RT#c# zPs&^0!=GJqvkA_DX3$;B=}m$8QS;OJSLFB>P#Y5Cse+BK+u`AH!R+{7_4mK(?|;?b z|Ej^OOJGIS39sJn*4e#VnN@Dq;#QBuiVGIZ6 z9lZ5oFE3V=S5z61nM2Wwq~$;imljNl%%5opfvOu_hhGi(K;b}A&zZeCl+V&E6vHva zKDSj*-(ZETgZSN9MF_X zX#DIYBUB*Sm`O~pC1gz-LYN=q)_iX`j`goNCnejC)hne(T9?`1)j$dUi>gyv-caaw zc#_L>6!Oc(uR35jx8~GW)}Vs>P#PP5lw{`v;JD11_TpOOE{XLR=HErllAqZ-NTBGP z?FlZ%vyc;90b9p$ka@J>+K1#rkYhSlB!|@>6+|?|1?r1X-*AI*@BR*sC7ifGRUTTV zuQTuYLFL=!NDq2(DAMdQtdz@yqNM!g+gP2D`6=jS$_yP;3r$DOdsIQq={wIZc`!lE zfme>282+zT<5t?M+bb(Sj^Qx8h9kf9I4Zdl${AitO$FvdappkjlQb#FJ#*sBX>Dhy z5LNY-coGezgs)%h-Ipq=XEZZ&w}e9OLzm9F3qrxZuyRjtPN)u`j@!F`Q@WWfyg1hj zbx#$aoK56`ivD}XdvUr*jn`)HzEPpWQt@7WkfTa>uMNY=8BtD2IOFS(y*-HcjOrFTe>E_mf45K-1`H18$RVP|h0p=|a_AD15q8!G*^JMYjI46PXf_ z)-;x&hQ;IZh=rNGJWv@Q*65Att&+IvYbh4rD@f`CRW4)sfkge?9!{x!_^oLVcUR45 ztmD}phk}=k9LYoBkoiIhe}M7?lsMqd&tmwt2wy+i1ha?y3;jx+SiO}^yiauji)-0m z)An}{@J-M@;(*|N_2`wOu6khd8YyLbO4w^Lg`=9LR% zELjQ;V)La!y#3z&q70Xk%Zfj~K;c)-4tp$aRvA*>SrpxYnqPrKL|9y?J*Ia-8=I$i z_UaS4>UPL|c!4+55t~o>>*U^jnlhbAiB7D3ZZT(-Hq&S!Gq8h%{uFY*?k*z z18Wk7C+lb)pC+hkJu+-N8JCEj>igQ=zoS~I$fPL?NWeehQJBj7zt}kM1XR&=Xo}s$1ckXpX zcq>9bL!j*8z|HpK&+q0KP>kTftCSY}J_1nXE?YUi0p%YIfipfz)rZHc#cVEHb zM%{i4w>5}eGcGz|09~9P@+{9$L8}L-{}{*OXA~iIELJ~NhR+IC^BF^VQ%$#3Ndgo% z9HRJ<9ROvSyd373ztst>q)uRUaBDF66%q_rbY6TOScv7T&S}-4ISlVL+Iuvn9}|Mg z(i3@mc&qvV(Z{KyEKusWt^NY5ZyW6S$qn#Qp=ISW1v$2U^K3DvBeqVf@Qa+i`nh@c z#9S7}?^@!%qmI>Ujdt>jx!C#DZM7vl#Bgj`omf%@7PlG_=3o{ZS3me`?lgwSYlH&t zMPWF!qTlnt=Xxoqw2Z-9!|DfI**s#EPJ@PrGje*Bl+eW$r*#y|b8Y07H%4;Sv3Nhq zWQ5_fDzbfBq)D+*!F-6DXjdIdJl#x!vHV!B&`8LO*?C>3;FC#A@2xS0i~$(GlOnc8 z7{hB_cmZ}L*m*Ywdh8Fua82b}JnbDUuU7}%j!rt@`*$AoIQS19^*Hz^k9zF0cQ!G0 zuroI|{@Z6h{xetNPq~tR%9Z+4?y*1RO8+TW=1;lD|NSK%7}x%$oulc0+VJn#5`WH? z{ByR{pR|Kq;@gDvsrY{@@oOZ_?f*q^hd|C}xJ=j{Kq z?;Ca|_J6YP|6oh}Ia~72*;0SbKKAEq=|5-7{5kvoACJSI{;wa0H~H7&@Ob|pc*Y2q z*>mb{bOto(u?b!-&Ve?GH`XO`_|O)^IYndN0K*mG`If!%&?iu&8dP@}27J+6qUvGj zwI8P|UT=q1f#gHhp<~byr^t;TBiht9(qKGX>_ zP$yItIWij$ElzmWA2SG`Ka~CB=aYjlD0c0EgUv~3{?+=dhU+fWe7*m1Lskg7m#FBx z%vhj_R=sRU>yOl z2STZ!^2l5M7j3doFVg+cv>_I7hx1<-nOOm@_rcs(P7G@ZxhdSg76kprdfdOG|vB}8)x3QFEn_D-uq zwQg+8UA`mG&950PI3xwlU*Co}I#xmLVrlQg7Xr{;s9jIJqX4}TdEwLi*3jz3p&z(( z37U8VuD$MbhbH=y^~nlm(7gS2+&4@RaG#=hcD=qs`l47`VpJTYF7spt;&niQ>s%8d z)~{8{2mkQRy8K z7fMU<(+8pSO47<>IU#6w;Uj;P7X!G1CJN;H%AjW|MM`m$2nNyIyOS|pP)+pGACLbc zRHRL_DLs;b!XcCGHF;~uX8U2Q7=hJ1u6Ov@eGQ;FE#|@Dqx+z{a36uJJu&po^Q{Ef zu)!$#NECw%8?@XhKS!2(4=U?ReXf`?L6y(v-~y0?EPPvopTWSi2~nzzC&wKGqGMpAN0NmB7fQy4NV>e*<@`sP^}VTEq;*^3SZTn zSoFCA%^W}awwsip-oEjJyU!w2NxFr7;ZuaNuoH~LXD&nOu99c|@my#dElOEWj|N;- zs;weQhR!z}<7+jSpgHc$^XepOsI+2E8dbK#YKQDqps9z#u$pcEz>|=DTK@A;wS&KZdHt4`g0cWq zaq1;LKgb5@;PJe~3!ph1FFM2dF|>Z$F1ExQgBBmyzjeg|nk0FIUCfiA+3c;n9q~Kp z(vc}^csBzbcO#EV#Zp3Pg_cjcMUDg~Q+k#0uB$8J8!E=ora=^8TXGTVZQl@Gv%d<>7ke~59jAw0 zE#iH1B4N;NHNG)JJPzaLkD4`;C15B!YFrGRfi@0{;S`rZz-8nKrc)6^y$7ivUo{z2 zR;Qk>6@3HsN`~PACj8LRHjQ7p?>r1&84LShbps~X&dul25W!S+*{v6)C!voa`!ksU z7B}449)>06K(opTl9DHxP!ZCsZqp_NUCka;0(g&Mh-_K%3dsTts1k;+StP?iHJ8Kr zH&0-&-`i73<}yqySX|W+Jq|s)XQ=V|OrRxBK)w08AJp?un6^s=K}XL{k)8Jjbf%U! zT;@%I)|L8{`7UCpn^|JJvJ(l-6gl@^gu6n|*IIdl(;uNT!U5myqXdk#juCp9dJcGpszc-P%OAGSH9_-v7L8}zR8Wz*+_0K` z4>}kgi!$Ahhrz{dk^+Jb7&x=8c6IV049ptYHA!56L7xmYiEt{IJb#k(g3%82npeH{ zq@#qEiF6s3OZZUl38X2nIG_{1O~G_#0lLWF>N(tKh1PM#cIw6^s8`u+nx*Q7X8D$^ zUXcLIURodROA?39E<5EyP8S#tSo5KjnTBC2?d5{|r=aba7Sj?vR$G5KTeO|n3-yIF zlCc6cP<19-BRMb}>XWsT-a61jhlB~!;C=%b3a}5YClrHm%{#`oS<>EbjFp6l&!B0j{;GG16!iUUl8$~a1x<+QjaBMV=+wA<*GswuTKqqEkR*FRWtF;}pNSe& z_i8GSd%OW$$vYEA8DD7pnQ{K4R6I20Nh-Wm?tm6i&Q&JEH5k-wXm5*Cgn^WJ=BZ+7 z=uN8%>!1$?oE~S8x$$f0_m^&#bUOvT*SP!67o3LnU!RmM?#@F|l;71`e#KCy*s;<> z@g4ev9G3Lu-$83z6c@+dE9n@$am`jF&~<%U&vB3n2AtH#J!Z~8`^;-IDK!~r5pdsR zqWA$VjHmT>pWVme9P`Oa6G~{hA40JbsSH^zC9;Nlzw=U|;H8(u!|)sZ*a9shw7*Or zb^96(Z4)8=%QlM8I~Y>NX)6MagO$Qfs^_3yks_ITdK7Tobfypbb)hFmla2gSF?1Z? z47L@~fNtXnH=WvY7#m-!-`8{<#xy?jDOBK~^XSk;?&?kG&^DB9BvOLm&7Y0)9Z#UO zl0m2MD?QZxtduu>xCX_C3Lf5tYtVWz`(8Q)0B)@G+9muUXdoRp+~k@CRg|}cE5DaO zd06b(BTPfk#d5}lQo|D(XC#kU(Y3+=ZKxftV-kiBr<9B?U5DCZ@ z6N-zYN>9f>hdhD{l%)p-p~T)GeP|{NTF1`bo)FfCzE-obQSS^Gh|st_v={^9*R)M@ z-VQ=rQo+y(%?PLoxEb<61|Moo6-Hb~UPDf0TCSQjH*`{+Xma-7gf0c zO!Z(4v>zN0$Bsm|-%a}m1C2R8c0%>TK zyR&}f<6Xc_6MX-&cnxatF3SrF=R+kCiC1ET161gE@&%^)K<8arP6B~8X!?5cjA2kV z^xS$w;JI=NTD!Z9f>{WmhIjDpenxMoR5|Uol)eDPPPPN`f=iGmLX}qI#ty}KR$J`+ z)X?-k(J5YR3i=)vpEx!790o?ow)t2Nz(|^E9s$23G`}-jNjxwCReHsTw8g5RW};a- zX|V)y8Z4&oUdw|H&%(ypqTA5DKW8O1v>%guU+;dpS!gSmO83gEh7P$b&DW*@FyQdH zCzi|=`ur((Z>8>o>O^Lh_uQ^fY~2&wDmMzv-F>6s@9P0~Lc}iPr8m@ssXtY1;)l|& zX0#-kc~BugG}?=A0j*63FJ)Z12F+Kmm~I5}LQhj7e?LnWw5_w8{S{;e)eX_MXZIOF z#l$T`|GS=0eEX-+ee-F^v$NO;SbGJEw->rcs=cH1e!+l=@Jt@& zp9B7ATUAR8nxcHF4|7RFO|k|-G+AFA%mX= zG#K6^J-fQV26b+g2d}RmgMm^>!7q`nFyR3BXrvl zn0{V}gQiqwtux#q&|Y`zvM?tp3{LdNFu%jjhiJleaq$MsKAe6ucsUQoUH1=tkZ*!+ z&(T9XIf>8`(0N~y{ynC*0h&xDJ7{pQrXF3>fo4L-nyDdX=;OY1^1Z@780RfsGU$5_ zvq8IBdcG|%=Tb;av#1Y4qGto{jj2Mbr*#QKSqgL<4F7yXfgI|-ikH=e@<87K!yK2e z6&SOANZ$G#U_@8i=)`jbqk`$QooY%jIv2&sdGsL6M^yT7zEOrDLVp)iZEzR zh{su7X@CyJ^=d7dzxPcH{~K}Zh5r-WYWpwT`WyX!8@D3D&YmmJ7Vg2$4c~HdKXF)r zvl9ZybqQ1z{rQzVp-wy(C5NK*w8o&W2}1cF2n#f%tVj8*I

    ZP!W_MK{86t;d#h8=O8(!?=XFPrsv+`Qn^uT`I`)_Ol z0`A`rv3LCa5Q5(i@won94zcw7uZEDE*FUNICyJBmUvsmw`c3WM-$bF0X{zUD<@DRc ze^^)5(azo8!S(NmiPg+K2?&U2{!Cia<}Uxtf);k>u9zK&=>CSe$JImI-Ob6}&Fr+g@$XINWNvZY+~%*A|99VV z(bGPqbzVhZ>Mx7@afABmXLSDK94U5wHvxs4mA#Xh`8Ain$SME2d6HeDWB-l*$N#%> zs=vy2eTM8WJnEhQa|7)CzZgsNe=(N!uVdTM+u45;ptp;^(beDR=3nSLg5M~~Z^Ca;8$J3PmHUk<{zlPnRP8r<@;9pW8`b%Z z>i=uyr$T*b-gfC%l3sQDcvve`&~K)?)%(wY_Ko#02JH}7xW=x;^B zbhH`r{G5&y2_xMIsww zUc?FXNVLc0bRV@m66KE;V>-Z$4xCUt+Ii?Dwh!~LA<_sWEc3AI)-x|8oNRJ@_W57| zoz@dW+D63!3RUN@^hKrurn{%F312)}KqsAQ!{a1Zz>+?59CL{R76yObyf(4|YX0qq zo`&iLbOF34)GJRH(93upxl{J3fI%1~JpH0>;_n{n>sZ1#}Z;H#YC4 z6)<{>A5D)sQ$X|Sg>J;i-U2EgfrUNqCJN~CmixIWs|)Cy&s(Op+ZRx_kJQT$+7!@? zo{WjfEGnQLjMg0*wkx1fYfE{0xvGGHrEWWSC9Hswm8D+BM7)4X-@I0|sB(|F4n!bIh%_3Z!8xUzpX@qL=yA_ zBxevW{d2}+qhFA~s@0)0a1ROec@M`7bYt-l-r!|ai-f(2OxB&>AQ6L?=RT;&BVi&^ z%463aAVE(5@;WfOm zA9?aMk&8AGB>BRzWW|il`+ahwVg(7?6gPeB)5GGcKhg767ZO^L|6;?*frJH|2Sg4g zBVoJTmp4DfBO!Sv>iCgVBt(X^n>0=#(HO>a4U-XwKg;aK)i?5p|NH7eFJ?U?*x-Ns zOZmdj&r^?F8T56a1ONEw9kxSIX)sFVYtaB*F^5lYN2)^KL<@6f(tRk@a(Z4LRs;>4 z%_JpF6HuU?_2M(7APlv)<<@-?hjL4?<7KZdLr*B3Wbi^Pv@MfQhEo$lN0$Ann1b)m zXwwAUMQUppAux5!5I2I9s$NDX+S4!~yW|(xAOsTxIXtp!q%i8wL|0s&{xh#5RXNo~ z7Dgxx1h_YcVZ^pa@!-`DFhHrIGbK(7)2Wt`zOsEV+OkK;zt0?oPh5yOYP<~N$Je8E ztd79gqKn|5M+&rLg*(I@S%Wg}}h!``CB?tQC5etlsT;s1r^i4SB zi)zt`vDQ+;+Rg;gUD`wNm|Gq(^2&Uy>e9mekSmvkp%F2ydXN&2oJ1^-_w`>q<%?MK zbi~}gRU_uOlaoIMx)9?J!~9=56Np)Yo9_NgA4G34fw!BnL@cA<1^UC75W_>Qv!ffM zi1F*bixkovh*7HeIO)Mq#AK}ai1qn9#55QzQNLddvH0!0{;G!%o2)1@ z{q`GTDL&7nO7ar1xCanz_KYFs{-ow%V32_P_mB$%Mh@l}zQlfK{B7JW4xszDv40Cveghu%<~Pk$ z|NY{c!+%_u->~`j3wl>~7i)71EB#$`@VB@8XTjgx{+|SYnd;xGGu_UAjdbXLk4*kc zXhWu>tFC(LAAuV(Cl@P=Yfk?Jv?2W;2yJry*Fu{!F~KJ37(Evm8HEi&I+T%-m@3F1 z{Z=2gHKcnsOFMO!E)@k`*&QcjZH=jjPOE5q#Z*L^>-`!$yHuR%rvC1HbRSyd{vuC^ z*uBT{IVRABc$ zg`9qkUH#=Ty)lYiMVy!1K7eBfnNP5d$Tl4_QTO|24e4s~15B(DHrBy+k`>Yz9+B}ft@Xviu z0>qG1p2M+P$8{ur<*So~&?XX1yg{~87KlWGrSWAJV(9QgkAv>QSCD{n2|3ju6*}Pj z)A($GG?MM8eqb|u6e$p0ZMq%ig^tKJKfb$u2p!N(G5H~DgAUJz?mws7feyF)3c2cM zjt<>;^!n%KaddFfAd}^MF*=+YeTBW%5*_YYs*{ ztx!c2lD#EIag?qT9o!=zBeyPw1jX)bN!V&49^txn8H&qDa4;^gCCMELCI;{5zuG|u z%f=tvSPek@Ha{Otuk<3`o0W0|H`<%Cp2$gpR<8@-|Jkw%_xcXN%lP{l=+E-r!Q*9JPSdBhtwW!zZpZkw`a3r zychpYiT|ywX58ifzNC}=Nl7Pma&r4C+r|8v!(Z#CtAnG5nYFo{-Cv=?F2ml+&h2ln z?HqR>L;Uv^YN}oNsk0|eY3cuiV!h{@gY`8#Hy3lae|xU>e_gT({|AfYY1G1qoCGyGRVh(rH6n|2l=42yy_7~;^4zrYA`j8oh2lr=uyNn&T2vYuWqFEpeQ50ivnq0YGU$Z9Y7~0 zU$#prXrhy&$aXx{ual#LrIn@GZ~6Z(OxnL<$p6gV^EYE12>!ckmWr0vNh$3=saXWSt5O8Nt4aj_ z11r-1!Px&EGm;ygS3Pc^b^0Iu;ouDq3$rWkcGv%j>QC`M&(?&j|68j+l(c@FP0Xo= zifi^OHJS5JcFXmle54JOrQgVg>?Wx7OdTs&n}^D+?vN^T8mK0`;74#H4JuE_!2#6~ zDDMc-p<28KGFqEq<9k|Ni4;Az(l#%g|p`w&_U`gc!loE;E zdA%Y8#oL$1@052y#q~T%Nacc(M8m>~%cr4iIea_KVi8KYe{R0%AcCSN1NL?WdQjZG zzgP5Y9h6tj+ZV{CLU9?oBiQ~0s>64xCaLa2orkiSf1m}_FVjg{%AADyt5+}eFWCdm zG>EvKUli)aL@M|jUO`<3O;&dL1k^DEe%nw|h3e~@nbEO4P;su|hOEbZs2%!d)^t%2 zZ~}XOBvJ|m@m0V?N32YDU6hx=@*6*6D3F2{mXcFYj$P)Ye#)@l`*ATCXs% z+3RdjXX%oO8!!UgTI+!|VKTtw^ze$Sq(fb*_qLL2Gt`>hCDwG;h57=H$P<2TP`9y% z;ppc}P;cw5oZ(Ht zk+odb4!i)>w-O6|l^CIVbW3=@2!iSt)AtLFs-fONGMRwU4{#LUgIkr4L;cW;3$kI2 zP@j5Qm*&_ZsQaaNGwfC);QZMV0y4Itj;Nw0Rq_nf20U(4eGm#Y#y3gdwO)m~cP2-| zNS!eK1lm53+<=;z&g&n(U4)v}GtC00b)e?)aLTr?I@BMD^&#h!hC2L~9w#QR_bEPW z*L@P|T>B^^Z$5&W(Rlr@HVA6EWhQ1O(x65#pZAeFA5?#kSLFMC0BYz|?{z21K;2gc z-qPVoz}?d|UYRuk+~Y&1PqSVH+y@Xd>Is0l(*)2`90oPzYT}-@6Ht5X_~ca!YN({C z`&v_it#g&Q+q;z!YN`5LiS}UEElUZ{t7xDmnAXzBP64Xtx6NkGSwZd0`hEYiWl&S5 z)AD-W6{;R}M_h>!fy(5k52YV?Lv>&spHU+tRE_RoHOX0qDl(qSjVp;zMWtOY{y73F z$BH-d1D-I z1Af7>Ypm0uFsmMCsQ<)t2r67PFZ(K6C<^!Nd&RHGp%<`sh~ zr-nHB-XBm)K7Wz(lOfa&s&lz#jX-VhMsyHZKdXD1WN<*>X^ioe)I+RKdI=ZWV zgQ7N`)A~IrHm<0~9BH(-KTR28G|t57Xi+pwQZJ z+r-%!3PskQW-TmX`!$Y8V%&m4%53LA_6#T@@=)(CQGt?U{_0_C5>R?*nqoYn0!pps zLiVxAL9q&5dq;@@6kdd!<3DzwFfk~9a^DLmNa1ZtRhNUJCgx<90XZm9*51Nd7C~{n zuRz*XHWZKFR13DVg<=J>r;R3@P_kb1mZY2pin_N4g|R$S#18xn58|Ql2xV*i;tUi? zwI;y$dni(kVKv@+4GQlDk0&ndheCPLra<|NQ0Pw)yv4r;MakWH{Qluk6ie-0zh?+a ztX70=#PLwv!aTZ0F%N}B%?mrk)lle6q$j%&jusLN#~&{cgnus908K7Q@+HCh=;UO%k&7Vm;G2EH?+Des}m;nhp-;&V{Cn(d^2 z{}|MLE*sF9jtAV-cyZz84B!i2$~Igv1-#2p?Aq%oXgD-al2^JdHQc@2Ug6~%eM^~YILBo=kdmSq2PL`N0U55I0v%!E(Kfs^8|5$I@7;w0CkJnjQ z*nKiTh(QKwp8sq+Myd?;mSJipUS)s_+WBnvssM22?3?RU&VU=Z`RsXHkxfZy9BcO?J-ckV9HNrolBe|YmW@BjngW%z|D?IfVyHbX*DSs3c5QlE6} z(E{AQpV~2Wc2Ixs5w)gc9@M2(tvsPNf_n3zrZ3MI02g>%w}{jhaM>mvWIx9+eEiXm zI1$6i1K*=Z-^l^q>?BDrfh^R;i(O`~B*6NE^0#t(??LU)Hja^0Td38#OKx)10%||t z2pxlt0#0Y2>^-Rsz}vb%Y3g+Z{KMwS*UoRCVf@;+tyN>d*L~Nf9sCS+f!e2{Us*#v zVex`v`CX{{DEj z07tq1-paWfP=DgG8QF~}sQYe8RYBbW_2Pb`uSBW=Pnn)Sx{nna&W~r;;h#c-c|i~@ z6&W<#_F+E1UIDl!15Y*GaHwBv-}oRN4LHU6w&%pyes%8|edoes{!MiKQAQ{<2-OPv zrN==7nemeizX8CvUwhZo0f6`D+1g824-MZpU%aI!1^mYR1CY|;^JH@z*2g$>+ZD4yeVMha zPtZHS@1ac-vOEC|_i7wI-^TQQL(xchq!Jpk-&D@IV{v;>QOS8d3~(wuFMco3WCn3|gAOTbC+AMlrQhmwl8a^8=gP=N?|mADF_GHgi0o{|nJwQs1}aYp8a<=LL6zrKt?DozsQPKYsud;(74!!54Ucl6G(Gr>cxDcivCWB> zJ83~lx9w@M#Dh@&kb|>A4C@EZ3~slZN7~p{VyN_Sn{S(If{N-_7XBo|P9N|nZ8^Pjw&OHBhMoq7c4jW(e4(&{t$3Ogu^^2*B_7=TJ4Dq14(5U4@{Aw<$- zP^Cp_njhf?6&yzV3kn68{o+vTmNaJ1(V?o*TmQnXzddW!`>&t1y8i1~>u>b`am+fg z_o-OB=pFdwSLyz9cm}4}>8?N6DTFEW7dF9hr(oWW7Ju`#EX*o@@%nK)9%lR6p7&`= z!pzIEvx`l=FpZZP+MD7B)7NlXkBUiQNTfhvs40kk1o8 zt_x#o3Aa~#MPYI@lyCh^D9rZ6C)|C;1aodBw2el|FwHdYPQ)q*znGtE5itIOU(0%( zsm~)|;&|p;wWG5zwzbCJO0Ie(tr8! zA{v$ygrr}jM#22Y>s^%OAuy-6_6)8Y!L00sLyJo5FnPd$1+C1$#N0P+{Iz_Tk~-JL z?_3IV6Y4X!10TV{O+&>a%dId!$zDcTzJc9$smkGA8qCsfjEkErz+7DD($b(N%)k5j zs`=+JL}ag|$Z~uJ5p9>J4g`51QaP=qOs8^0G9DK1*}#j4C7%8mxoU-oOuiA(Jk&$P zZS+vXV1tNFM;~7vdxZ!S$Zj#oaUp^c5{IJOJcwvNt32~5Pq6Ro0vPbqoVml6^tQ{f}sueQVXuPB`~_i~K|chi`csy0Ig|+l{(CEcu9_8a(eyZX&_~Hj#ZX7ZIVU z^K1`+J0iHy!gfaXBqA`ZR()Qj1v?{Ljnl5xu%qtKdDBi5cFL@!{e-c7?4eC%{%{%* z-K(+p(Jn_sZz%As7K(@{`%Oh@7iQ;!ii&0@@Q6UAY2c*@w%<#4NeQcY5G{Q|Xjy~+ zqK_1QP*h8)r6zIbrr>`6oy$5VU$L^PrcZ&0$w=^;86qXe3Fe2BKz<$C2D52B-u zi^+ZGhUmGQ^e6c5BD%ql(~-tuh`yaQGD?#X(O|D?Vk6K3w6IE+A#XN3*#P$F2FBd;9x6a5Lmf&c+?OvBvDIU3w?$dzGh0g zQr97R{^hVF|6ABR$5d5g7Z9BUzo;+5{GlSQw3&SxQ6K{DY_6Y(GHgh_@k=$Lm_DlG zp`?o_=9iu|lolZhv3OTQ1ztqu&3Rh)#cM?VRCKSsi98|;W3`g4t4E|xZ7hXjPKYeK zP>!I(8<2Wuv>Ekws*0FV}Uzx9*mOx}j9y@K9 z{6M6&s@%A?htEV7@D21r@I@Zo1DirYS zlGqzWrA2AN*4l$8IE?t51C%lQ#evs+3TDsI!K-nb|H7=ly$YgtUgaO)Rbp2U^M3-W z^8C+(s>D10YoY45jo3G*oOK}6AIG~rp9pCmZ8GDe?n2t!tV49GE)=})B<{EBw&YyDrsk58p$2@6eEw zK*qe@0U8$}$olxuuti!FQhRx{tok*4oEb6IZaG!0U7pk*0awCAyKwbam`R2QeTew<*r|a%q0)H zy8&Mymo-Q7+!sg4-mY(#4YP#2gO7yn)hI*ujB{+FP$*yX|CL2AO<}A$G(9b8X@^f zcjzRx{uf7;FB`QVA$eIhMfR#Md~bUt9WxXQ8Pk3~uWjle^N?0-n`Jg+K1TGCmOGH^ z9eRF5<~zjKPq`*}D8g5!&}f0IIQXcnGfWed2=7H-Gn+?7!3S50L?<~;NGA(lc!T+4 zZjKL|Cw4A*^(&xIeKAJ{)0B7^u(qqKL^f*`RVreKeB_3_M1Lz|hFM54et4=` z_8KH674UyZpofo4?|aB@w?Ud=K_@TfFUdkTi+T*6!{^BZiYf8x5Vs`6{QYw@#NK>2 z2%d)U-Cj0zSzHs+rCB4W{f8k#i2rFvBMwr7?hp`Q`-?kscu;R{4dT`sk6xI@!G~Dl zV-X{J;jQnDHv?E4#(45aIra-c+WA+cJ_C}F7tnlScfEX(Lv-0)zu*T6dH&r#CrGLE z;$@&d3~@rI66=}HL&AkU!79gOA@Z0|PFqt9q+KdBzq1=xA|}@YORm88LzCxpuSrAN zbrh8fLfX2xc#3J7V}|`H(cy*~rt| z2w8fSL-mX0kbU|tjZmm28`NX-r)0H>+AeuPy5Wz| zYU(K{kPQB)-yMVHKb@pKCx1Z6b=Q%`8-Y-`9#yx7#mRS-Mk#7+T$D5$gzUAW8wr6L>yZ$*-zsEh9$Gu3@4 za*jG5v~?5;c}L8eu)I(~R+XIj{tf(i-Wh%ecp#JG;;~Pq0N>_yh#emtge>F4_tbJY z$d0a!zuiU#X>uP=?#1r^HmtJy?E*;4BQ9;8Sc1G9c8LbepYp8(*DjLnK*^n>Oww2! z6tUR4Ok;kLUPnNbUpES=nr=Ton(@H5f$)qpET6_xZHCpnn}FoeV{#QQeIPTF=7!48 zSSVq9EBl7y0#u0h)Hf7uKqbSmcm+W*DDVzXRK)C>>V|tBW~l|~Q}l0p^S(m-lbW(A z+jEe&s6%v^?Fp19?z3gaZ>dB63Z_fVy>U&sc_OO^M9^?M>lp#1u5ruOSQfSWWp z{T!=9)mbXR&oR9!EgHLa{j2bFnZN|*@8#4CpUSYfz$r|&6$_REejl^G|E@o6obBAr zOI7Y_g4{BMP(w^S9**f<;&}VR{bg||^7mzo!|G+VQ_u7ISA_uG_d z7}TEx<^5P*tW#)zaW1d~aCTg;lCXJe3x^XdPyd7(JaxxzTvgwG$>-=F3}t8BZzAJB z_&MV5V2IU&YAI>6^KIEs-xq5SvB#i%>hjMP3|AC!iVs!HsY9jYWW+NsXQpiuPPjj9@F_~-ZwRRj28A8Y%(T@UKgeCl*|{WHYR zZNzR9a2iJ_xQe>~N6e?*LSY3pCyw84@%P8(^|M<@d<_+!_NS1BKY+5KTAuO8Mo@G{ zMQr;(B~+`uk_wH{gYtEnO;P1CEZ-=cYI{coB@}CP#x<@`)b}7%Km#!SKb+v2bcPzD zRligGGf>Z^K(bo@3aa82U@8~$*GE6R-iv>P625HQtC~$Hgh&DM7b@^0C??^h;yEZ- zp-fnEDTZnvRgv60c4)XqOe@HF6&k|69aPzaU5}rgP%QfbRpi&5?sY~(F>X5b#R05N z-O(2WPe#buwhvmy@L1J`1p%>dA=Em^JP18<1Zpx;{21Kqp}KBZAo0c+RMg@Yj+RRT z&Ts7DoDwP2@XpvSV0EY1%(BEE%eMu@+r>3l-743!;bX$;W6Ai#XQF;0P-rw!C5z>U zLM1qGfJYSya+_1eF=|R6(rc34`nD>%L>D>^;OAoW|;rt4(5>E+{DiB zPMv8Xh9AoL9mgs${9h<`=T=@9#Ce+P1 zd8+N+zx*@hA%;tu;%V)B3im?i2dO*?46n5XR0*EM@*nP9#Ou>o{MLndR=8sQRE^ie zNjJ>jD)iDMw@a~jdOI63h~Zd#mZAut00`2+X z4*RjbrR9N-Q#01rbr%ZUn8y0FW|{$iJ1oC9NK}{RV{uSR%ig`)&ou-ay{p%9g@&q| zZw)Z~UjI6zYB%rHaxm^cgsoR^_~X7AhR>VAOzRWII-%(lWziul-*&#eLi~+d9@<55 zzpOEwitF4*dGNz^s2jH|CB*uUnq~rGcC4;fbT~5Y_DeN_`&2Ju^|*nahg{;(9q6z; z{ao@#8FW{8Op#*vwY%@whdY>kTBiG36EWOW_bA6O4zml+PT5ecLdclFKA$%J41}+ z!&+NA?sW`D)~mAKC&v7zX3y1{r&vCyv_B@LL0JtIANWoSU^u4ihUX`1c|X9p@dQy% zU4*K9LP0;Qzpl7Z#DDsyClpv;QldY7y4D_dju zz4-fGIcIez$fpS$KZ?asq1>8lz$XT%Bux`%@QH;&%KpQlrV;EkqoL;>wj`feF!w0X^f5iOFP$QCF-UQNY5~-cA{ibH>TwB2W zJ!6D9Eds;Y<a`vTPTE7y7|yoH)pNs1#^C!u!gh075PALH_?zwADjD5_Q^zl`m( zc#qjrQJzEaV>F)jA=WqKehNA?1dJNmqz@H$iuhnoD1y$QGp>7uxfCcqoCx0xSo zftG9cwps?BC-Z9zxQ1GSd;%?oqHl`o_%6ADWEBbF~ zi(>lw;7hoOilO4v#h8gsaVX+-&s)IkP`J!()b4Wzevl5+KE(RY?3G{(Z!B--`+gea z!t|(=(WcU;umZeR_n6U>6M(;FY+xdZUE^k6eZ=Cf{5u6j1J=(KMnA2;asrD3%Z%-f zH+Lc9dm^nChD$2&gf<%3_-cb{=d-(Y;I39U8EZRK-l8km^@p;}P8(jGIH;T0Qs0l| z`>JDZyo%>cq3~k1cP*CJax>oZGGY0?RBL%J8-_26@~(#I?&5T_#COpc{{ImX`gI-i zul&bP3U;4km2;1}mSTQb6nj+O6+7?B*A5r2VSQW~v=bvNAO4Kx_20#rKYiUvoj&(K zjP?8$}Zlj6)~z7(`<#RH8;-Q@M@@OGul3cop~ha zgqE$_PS5YTLEX?s;{D3gP}7^Lw%gZKncOo;#Ohnw-s+wMUt6H^K}fI!7Kiv-d(;=P zI@Q_s1xAF=q88e^k z*6)&hs{5pvpHz@{ADdA51@$>D2`t-D(AFeq-;JG1*M|q!j$t^jJ6Jq&Z=w=3jh~pO zRC@wdNdfUfxvNmCw{(RL%O9men-z*2>(D6o;m1p?ziJyX9=M3%g;v3Z#NFqMt)JS7 zcX2^e`|x52wvW!Xy;o$q6rj;Cf}7W*A8;4++dJR)K_#cLs^-DlfJ?ulW`fltT$S;7 zI6*p8M_dS0+4B-ALwDRsF`QIgnCMcB*}Wm<#Z&$WDQIwuBQnSO|Mq}3K^Cl!YlWWu zH!(k~Emg2Mh2^no+ru-yyZ0NM>e$8ar4oV{Uf%(z2;g7etz)>O?Y=_0dSCuHydSIo zonx*tA2Iyg#WI)Tiq-jMikt1b&zY+h(m#w~II=b{&=)(Gzw@dG?>~6egZEEf^`LR} zFgJ5^v9dDz+jl4Iee}=S(tpmD`E$1HpR@n}@jAT9fBibV`M+L=C;0!s zJ4THwhE|_%Bj{WbqhsQju8$TD}_1)k%3nzuOzpn~_#9aOiWwo0oIY{`LT=L*7B?)P3{C%e)M_ zy@UdDX%9h@{#oUpmCevVLm#xdwimi>sbVAEQ$a)VcahpdtI#Gg)Id*m5*mNq@L2DC z3Dx^+D-e3=2t6ZhW~k2vzlR zCL{qm(0Or^`&2+H^gX+K<*tGVw4T~ZuK#KeIKsJn#xZqh7rv?a+I1az(k%}pyBa|2 z40mp~bSVtD*T?3bpoUIr6?$D6J7{r!M6b%`3HXt>^GRO?AuqE2;CYW7$UzP#w_>%S zI9shGXwMU9qfI$3raS>Xa>c_3-6^4qDc-*>B^L07toz!sJODTHSca~_2U<@sR_6d0 zbb9@Ac#T+~C8gbCMWP2f9*mt+CS8J&^FJA^bC+P4nDV(fsX27id?RYa^lz16or^M! zg1&r>-u0tTpl8EWe(T{7;2xO2ZL469{ZO*xqkmJ3XBUP~%+FtZj5U3><_M)h)JZ)&9Hg9(B5QV-o-#J)wEBa9AV`pwayG_BZp3P%$GH zUa77Hb)*hEwenGrX?MQVHWvrYAw5^)it3=9M)PKo(sO7n!sqpLWBfBDn}(nTO|LnO zl!`Z@+f&j$icT5YX3XyqFOoo|l9)(Xv^W%Y^=68)Rsz1a21ls-1?t@Oj<(mAK`Yd^Ap`f}m_R<|J4qUgbLL<&YXXZ0Y=J^lM zP2X+xfW2w)6rZy;b>@4pMcnIZw=i=^HyoB;E4ts7E4#5C7K*+za z$yoTE2j(y#B^@kNVGW~e4<|ogTGHy9=FAQY`FCLD+3sWwK83LY4LZ1TPMfdlc z(B`vm_%5L-G|&ww8Wej%*Zsk~Xbw;4;r9H+{K68NeaI99DvPl7NgcnHR6?^ypo*95 zPv{T5%=|7_9Qs;Khmk5@#Wy$J!{9IP)tW|LXz7nj-anQHje_jOmn@h7Z&cy9 zYWf8#-<`R3_FgC8Nu?!%MSGx&_16KX##k7S38Z#aJqy1ah;S}4s_@HdT>qZ+Js5CI z{`qvL2%0F4-@hAY1TFO0GPA=pP+q==IH|-Q2A(ZlGA?}wV|#H%&u*WAVLoXN&o)CC zy6m*t7g`E~$K1_c#J0j@;?SNm#Xiu_!EpAxq%^cH0~zk5E#MO$!>zH0$5oGG}&@i6aPV~VXnv0HvWnb%t@{NyS z4|YbO_rjaU!cBW&WH@r?cK2Htaz6AXhhPGRIQ>k2NZ){g=)?9KHgzx&dB=Ft*$?`K zN8b{D+yiY&srOnx#sGdwkmT&r0ch`VY-Xn7fo}G9xB2?Gp_$d{+IVRq;I>k27ru8v zv(`P+cFiv6o*7FatdoS^FUyhNjX7YHIBm+Jy9b6=ckttT8=H*6JjUG($QF*_r zm4tzh4o&gX0?^2R%euB_2b#Ae%q~3T``7F6zYV}J>wo>}kzLgKuTPKsh5kQ|TU#Vl zpAz{uLNDDFdJ>z3V0(YZWm zAY_bX<30oJlA^QIPa|Q_ipRz`)fI-Ma?ZY>e+peU+D%0XE1<`uI=Z3YKJ;Dgx_|Z{ zAy)T;n?ep=f+pJNoS%7R(0AShJ>zhJrgqmQvKv~^(Y7x|HEbSQ1Z^Z=Rt7*Fmwln6 z&o(p+cr`k`pn~q_0R$|rcF@plJ9C=X0K>WRH{YHwgI>4slV&dzpnr<~=BL9vSRUKE zO7-ah3_KOrKSpl{{nF=EdxGnsk7nYNwplgw>IR5>nZF9H4(%9_@^YeLX- z^+MPcyaEi^d}Vw0;ybkWIZC&F;s$)Bx;Lm1LFfF66E}Jf{WJsT7~?0QM#z5 z?u}$OW>!Pb9$(1-Q(p`({QB`|UnVpT*3ukdV1l3J=U0WYgCPH)ptOf)Ba}{PU6Xr8 z4;^{?G}T_MLSNO9x!{MP(0jy&Oj`RQH0H1;Lq8ZPcZW(E5fMJcdfQxA<$j6>Hfn$AKI(*?#%J+gMmo9 zvl$tupkGEiX`-$H8ZPGxJlwH?asm_moLCG87npU5Zn!{0eMzri>@3tN3+r=;WkDks zH-qP~LFm*g@aYy9hc4UGZj-Ut{DkTc?+*@Q_28-gv9WUKcSz?ZlX(Jlw1$z>g@>VD zR9k2Dq$HFH9t?J^O@xBaDxCx}x1da8PD62^71|FU@A@c!;nPR*SNsk#!GHnDT2xam zjJrO!CupjL!Kia*I;OXv_M_pGR<1$7zdF7rNMiu<9Uq0`I!U2ZhjGLH5DWAw| zY6Gn?5uyUE$DxsXcz@xlB~-I`U!rztgqm=plGs;(;gGy~#UrlJalwOxSBMDO+4sz6 zzYBp*c{{@>#tmrkxmb78OA2a)1y9BY{(u@CU-cK~^q|yM^KPS$BK+(ZWZ6T00ZQfR z_iN-`hPFF)=?hhbFu>(HocaDPR>wYX`{vBTpuAe#ui|BB4jk3@45oqVbdQokRwuwE zCcE(Z>O#JTeO6@uJLp&mC%I=g0KMnB*+wVIp*t<$&|K|j=y-oZiMi1a+Kc%l#%=b) z!1W*MpUJ49_n`cc$Hxy)|HR{H8g3fO^jTw#-pN4A`2tcKegkNv)F+b5xYh-<%(J(%eHs9sL4Rhs}623jHgrQRt%dDTVe(-Jo`^uSG zXbIa_(-c4g{f$ZI38&~`pfN#uJ@X!P^psb>8cT-eshenOlHgZp{vxxTbkqxQ z$WU93r2(4H2}yj=QN;T1gCFAz5KKOi2zeI22D6P#j&p z=%PF%@Y_BAbMalL?bk1H&)vb>1!XbfBT z8LY2u8rMH6b00RVb(DBI_+i%1I*Iu}C#-#!jx&7jhbSY7-Jeg5A;S8=%7(!AFnOgx znSiMm5h>Lx4SkD)#o`wimtyT;=;LuGA7V1-cB#-&bN&T=pEbOFkB>sz+@Tvq(*e*Q z?A-5LhvjA8%=2_k2Vmsgxw&6Ta{g&tDCq$|C)T{rzK8!|K?zvU|13FzYOmeCH zVXlOZD||5)5yjga;jgEKUrt3qp-I`$uYHexx$z0iI$4@TISxXjXk45BwL}}WM-ikNTas~A^p!c6x5D=+t^LjOmF zi-z%pFdS7~Mf5riyAS4)G|nPII)UL3<9jd{totPUXgQ4Wo}H)dW=DGy)?W!;evQa9 zy88l4I$*|x#Y?I4HOy_zy)PatLL?ejJDZgEA)34v(Xr@I*z!G2#z%P%5k*|c)MqF` zEX3xlm;CM{p2{azsc%RkdYf{R2cLTo^Hm*@qRi)r!I+&-NNoOPoGF z{y79um``5hFsnusI_jU#FE=7GwUGjsm~)7bqE__5@eRb0+P_hK)e>>QW*Dg*6XLtt z%|S*bg#?e^HK|r^LHxAw*%WMvh^G1bRL<9@h#;mo`IHmDj)3W0wwN*e3jYKPA{SwO zonpu&mH~0%xhWHc2NByulvp6%7YS_v{fn30h$1OIj*&qfk%;2VPC2h3(z70HOE0Vu zS;C`L)z&ezm*5?{9mh0mO~0nE{AG<8KYL%j>mh|$McHc%$K(*NV>6YyuP&ma3b;Df z-HMp4PlirECPiEYPj{F|ParP+e9^hoGQ^{L^m#xSF`|0*<003oDWai&a4^s?7EuUZ zzSZ{fEuveYYk50djX0A}P)E%cA}%&BU&_-@5MREGfJ&w-5()`^_8Pk3Q!$*fnQvFn zv{QjdlWDuZyrf6$Oz(44Ep8y*=p-sZsVzj$xBtusoD*WMV{w|(Dn|P&Qv0|?L(%@Q z8;_Q6xFQ~|b5;+do?~_l?Oq=eMl4Ju7g#)75!sdv?bZD}h*o{`U1$GO#KmCzjL20U zab2`123t(;?kk6+S}2gPJA_^>k z8S4;9yu&3^;ZunGq}#SFwK3ZB#_L<$5G8DvzfPt4u!)$mNZl+M%@KRh>XEO8A&Bp> z00nye8L?O>3cP6|L#!7Ze#oygA|5)$u<^S$5FZbdQNWTW;xUwUYHo5vbk*0URwHN- zqecI6`tcP++A+BNy*e4~$sBx_OL-7+J+r$KTzL`kJXR_WedUSx;-3^u_})Uoppc#M z*a`7_DR~*_G$XdNj8)bL?<1n?p3Fs#+OVOBTg$!~2pgA0uh|?rh3KLmYh2N`LOjoi zuGPBiNBbpSE6XvwKtdfn@1YGGt1FpCG6BiKQ;rDhC-IR#6NGybUa}lxLto+`) z!hv}9vgF#DawFd1{X1Q!O%QjZ_}A=L_K4wo_!X<0{)l16pt1QyIwG;T!Q&hD9Z@~! zCb=GP8*x@vewFm^L_FqiqTkBQExwLr@Z*$g=vEVpj4O=t|^sYxNtCJUX_KhHJi=a?C?NY@1*&~@q{S)Gr zVP`h0xquk$&un;nra+8Yd1bR(nBK1RK_U~65GCuHE}uXM;*=E8Z^?{7JnVMo3w~We zylou=qXt4qNPUeucJwRai&3W4{k(+OGTHi{6Ez^Rcb^Vus8b;V|L0ZQ>t_&w_R!l) zuO1)zk~-C;8i zb2lrOe*(S!>)#C|_#cE`TfCj;ZPG}ffcQK^`b-B55mu3Kkyt}V>huNG>`ySw6zzP$ zUIQk1EM)kPeuc$~yGgx#{Wa(0ImVFcx85v7=nJ zv6&Q9JXz?AyVL-`>Plu3zp?^e_|>(=oYTQd1^O!( z^}1C;0$|4!5s{e!6g zvwt^`_P1a-zZ(l?7WM@H%|S}0ud8xa?;rjX+-@%B4z5oBL|lse&x=cvmH)MIxydHD zqrgy(2pk`u5VZ_J#PW*%Y7Baaw8xE2myrPxjRo^$4VoijV)Yc9L|8~!svXmdT_#HxhC}t7q7KO7=*<(Zy)nXZ&>xu|No<_JIfzs zEQoNP8Ec+u5CH@+O-JEj?wxB+FFY*CGK zYJsK5Lkh%{ZLq_{PM&B$4Qq)J;T=c~<_Cj6SC74g&2!Ar@j~xlk-YjNu3!u{0>A7_ zQ|*PVU?Q8&Z7P^KbFk^OSRt%w7__&sE5M5R48O*WTA18>%B?%l5E1BvO@6le4)g9I z8BV|e)xTuw10iWJKhCm-M`w$hS|X{+8(uy%e^o+t0*5f%hn>^jP^ z?sgRsin!FO6dpFKh6O)Gal>{SzKRzDFsgY=C?XIotO>50g*A7f zf#)})V5wz@Hng`1R>!M3b$r%gWqLpPAzpGsaPTH6|MzQ%ppJ9+!f7d3KXdo-v5VfY z?oZ?8A>0KkKhGpSC$>if1G6bgS5jd!!iRTo-2&ErToWMTC`5#vUUpB%nqWO}>~Z9| zBe2bU?s;=`FCs{$O5JfzfR&a#2lXeOz|QsQ=n#r@*s1sR+k8v|+rteyiTli9jSN?I z_ZlZ6bUQPu-*^=^e{j$Co?AhLwJDs@zp`NY!N)*7d1hE)KV=g%MuZ6WTp-t73W4=f zdd+5tMFfVFFNnmS!j29<3tm0~HcuX)iws_eH5;&qcP50Dnbuer#u!-nmSU_ikqavu zr3S7!30U_Wu3e=uj)=@lH1RQfuzvK>+Mekk*nCAQ953JttK#P;Snevq&JU}grLSDD zec1m*%GL$UZ;pB_f0KlblDgAq#TFJl4ka6r3&M*2($5Q;Y_OKztvo}w4fDr6nqAr= zV5O<)8xw`$6!8%k4@-Q0j$P6zAiv<36?tLmqXoOz*@`8)SyQ;ux4JBd-l*VST=I< znDcrHi)KPtJ|O4;F;d#z%WOVD*gKS?>;NSe*6nmyU8ogv2S)3FJD6%*N&}ue2v3 zXmeNOO|3&jdE8=!iam%#K=5ms^kLXe86V1I+dxFqEeBs0i6a8xYkRWThY_(__^5XK zUf7AU98p-QMMS3(6-5OH5rJi~_WFhzB71i7L!!e5Y=v0QmaEmm4*4DT+lly?N`3N7a<&N~IwHwz&nSzCgo*1?KCxi)2Jt4poks+EMl!d<{bA<| z-@Z*J8bm;$F~zzQfC&5Eh`$e8Lu5<`&3_!&K!g!$B^lu&h$vj>rpcNX)@AFH?>}pf z2=FD+K@+2h@Y- zip>|*OA%pV;Ddf5SJ;j<+}~*44m+*smW%YMu&od!ShIE%cI=i2h!0>@&RL0VI*}WZ z>Xd)zo3(@;!l>KZYAu*v*G`_F#Nsm8bz!7u2ew^`Ci|}FAVMN?AvTsTh+xMyIbz~7 zA{t$nI7#aSJ99I?hIE7wkrBt9n6qJsgm^PEX}S=$1kbmBIk$|6{2JKpMIXb?4xTry z39E1FTSt~!OJT>7^L^9aSVTA^ARw&ShX}O1BLXt{5vf%9o(WAF*m}ry{JS9$Y){I| zJbk5yi0?f=Ih2lH|dWE zG!|5rmv%6H-SwC9LSbh;jGEd|6U&E(qi@->T7%04>OhZ}$!=;<#XIt*Tz|x8Lxn56TxGwmaSCSA6-{C!`tk3~1Mys1o`qyE! zY3BV0p(GfrDvhR{QG=2AL2^MqTWEjxX=;_?J#-g+A0;|455p{7B+|?*(D!xki)w#2 zXf`a+ltzuvLm`@TsJ9MUa=0qWd>Eno#)Nt2!c*w0yc5K9=m^x(e5rVK<1KX6gkJFr znSj=ouL+av5>U&sr_AWsH5lNR5HoFXfQC_@56|!_(9LS6bDTF9TJUR9J11jyK9$uCsfri_y%LfCWKwpWnSo|mj^o*Gl9Bo#E z0WWT{dt|{d!j*SE>}@_Y;DxLDdxN0ADryurb`?6;2oK-1q=b%nww|}u_0TFnoW?y| z0$sC>DdwLfp{;P`eXqqH7?P_S@KxS|hMapTKb5}#PVJPB#k?)_OJxZ+0tK`P;|aLp zx1f_;Hd@d7Fm$>ui9Ft$1)Z^HweQ3ULK~CGg;95GpOl}CZd%(CTZ@a^-vD%$d{BA<2Gq^!^xh4dyD$$L)c}c#9IMZ@-{B zdeuC?cNGuqNhvwHec+RzxK-W!mB3BLr zXfS?KXHIYj@S&P59V>OvE91YV-!K4;oITk#wT{sK{+y8TOCxAcXFscs8;6$i>b(V& zSD>}h#^Q1395g(yPs1DdK+~b(7HUBnX!u#iHAR^SeW%^y@7v`=f53qG?G_JcQyRH> zOv4#^yhj?3fAoUpf=8bl{aB&H?7}SN`47_ptJhjR*mjKXgq#?KvW+)U$em{Ax*cT@tMmxL&0EZ^ZIc1=)4x- zO~uY+k3>ON?twB!rMuARu$QNN>^yYK2{-s#-vaz1SNL8wF=((Z(dW<7g3fpEB)YgB zL9^c}g>v3u=s3gtTGZexbfSp667Mvjl~k+4Jo*r{X)xywdVYh(jD<_jzE?v-yILBp zo)I*j^|ZN0=L?-R+^1!1R-m{1xi@l}fp!Y5=%3B@(4#hL)$Sz&%@*6E-ooL~u69g9 zr0fVZZFG`ENXWy`0Y1Su?3^&OP^(7#<|d3RD66ZO|AL7d6_QyJUto&i!F}o32!VA63Xa@g}D3>o;wNb6?6#Jt70tp5lMD&JAj-SUEQ@dT+lF)0}OdHXs)^F5d$ zoH`Z#RT~DH*O<@BHo#zq)1s0@228eV+};S7g^}}V9Q@uwFq!@OjoZ8(Oh}0G(|q^@ zqbFCLg&PjSh_wF37ejv-VWWS%ct-$+Ti+7e)sDhodwu7YM+A(2;~VO2x&$*DW)n`e zcVLq5b%kGuJ4`oS{!(Ha4I?L?pQ2hg1tVVwuhGOaz$k5dv_?`j3{`yac*7S3Q@zZz zWt8t=#E!0R%HcYU_ddzslRO4fr>+&<;Ua>;L|;QmS8AA4&gXr*Tm?h@i^HcMVttA0 z$DxDr{4f~SKXxg6Ka6cll%qlt7;3w@Blh7dO!t{qOYhZ#LAr`s<{ecSQaNuEOmk#=tk_F>ddZLuRBruw+O|kNf4BJnTHTp0NBQ9#`Lpxt# zXzAA8DdTV$(zA@|JZ}zTjtw7n<`-dxi>5Nc*cwLdYo81l-hhcHleCBXRAFRpxS54inlU|imiQSCw~40kXq+jq;r1WBpqsLw-~vPfVu zWj2PvEbT1i*j|`)+ooeX$qvJEPYzg!Gr?p_3;DN0^f0(XJbns?hjH1t9Lg+g9)%V& zDe*R#ZXV!GADD+h>t>-G^%xlPe@BzOat%5JV=V5Y2gZ$lRVVF4l zVBe*pZWtqC8H%N;hLJh}j}4q5j5Jj$mv}P5h*DRpbv+rHS^I+JY;Xs?a8jNNuiY1Y6LigpH^XV@( zvGLC&MYLYR$h<_K{XjiTsZ6cSA7;Yrtz1_yZ3Uytmu7jQYvGs1jc@Gz4`52jPwL#@ z0`v(HNxWMrfwBI*OzK=0U~qhha^mI`Ox-;ee1rQg3<=-#>HM4k{V_ic7j~XNPxz^& zTw?<0JK2)sYpw=;-py9wN-HqguQ5jN`vQi|qIlWr7hr_CyT<**4;cEIJSMuA2u3cY zT|G!F1$}XkPpQn9LX-D7{mQjf7?~vhIrV7{hHmTxL_~1Fq}Ii2_YbE-->Ass!LE1E z{O$3thmV?|uUMr)C|e48EUgNBO|C#w%hFsY{|*e0Rj)l+`30@In}wt?;?VDOZB}g0 zIP@K_i_5>w0<8x^I$Vgvpyvd+e(vyD=oeffJm2AUU7+cF z{GH$j7of%S#oEG_G;|ad^W~m*1UyNJvt>gOG-+DiZ|oC?misT)#du?&QIh?1RQPEa zqLQGtl$C(-`jZ?KvA1BTYi!u#iZ4uLuxu{B3&r~M-fcI%co=vP_?f^n6vkNHN;jX6 z!<22OhPt~I3@#p!zH&eiM&6G)t`tzfCHizQWIL;GvtQ8sFUp{ z+l^u1vS#JZw{{q>`-Y1N?}3qt?8K|bSYWJoNzqb&5k@2RNBW3kU<|dqD3=z3!P)^Y z?Vsi_5P$oA^e=K4GB!7^P?QiLR-D5s8W98V@s=6oF~UCz&v^$A;pz;dvO< z}fw3(>oo-HRTUel=Jt;?ySO~-kpljv~Mt^ag{GCYXc@|*!0T;FTtoRW_hB*smV;D8CJp3fLtoSDkuDPuo zRJDeY!5XJnDjk^o&O3PNaw`mtGxX+*$-vN?7B+u>eHf$+4`Zpq=0E*ymd^4tjC0Gf zm0eka9zK;QZWk)(PrYg`#c~q5pK{z0>kzhU7;L0 z*vj5W{9J?1bSi%r3}^STJ*rmfs)62*w4_^FzR>6Dl|g=H9*f`09OE>6(4Fp+V`Kjs zI;g zkyt$UC7;(3pACe*FjI@9g*(tknn!EK@(TKg2QCS{J_vnFnTx93elU39r>oaVTIj!} z`TETQMyDG-^~+-WpncH!`h+VCJ(O2}MS;yH&zzTD&JF$IXVz+t<6xjYcU5+y3i?Gh z@id=>VBpvcp>0$*^sCPwDl5hA|2W`EGM)f^#G0IMRF6UbXy~i0ybb72`ZoEB+p!Y@uN%|Q*==NE-)VB5u z`jo^X!u6=2cQ3^?0S95|AG9$u6fcIp{mX0mv1`z0d4p5o6FKxIX|?+ry28K}hC`* z2oYd?(Cad3qgm*?y-&+hkqP>g?SdSH=%Lp@KgUJ}^GDjp)G`kb!oYx2p5oj%bmyhT zz2j(s9)-D$fF2#_w)%AVsB;)}h3ylV)trI8$aLmSEYI}|D&AM8!0b$3zdpHY4}A`^nTGh5c+`$dbF)ZH=40?%b`uykEywG)R;UB^kxq%=3uzoPE?({tq{5oTX*D;%|Q3BLl5Xk)uEgJa+yyG5A<_G z8E;Q9bT#4Ly_GJ<^xx;x^uiE^w9`jDx$|H&PB$adHxq`MR^~Y_QNmyp@B5CJD=g*hvD(>n!Zhrxj=D?7a;= zUFBRxy3Ek|q4p{N+9l}D^6eut7J!~pW)1g7%VBi;<#X{d3+R7w#QFAptPVy@GV_^Y z`TWYP#s0}m=&!h%^L9KK`cKC<*^-xHeTskTNZ&OWEcZFBEWiVUmZW~qQ?9|V?I`&~ z12?p{ad(qhr9i7EHBEeP81#O^$zPz+g^mL_d5PR`XmE6o5pNuYP64)!#Dl5O@OkSN zC(a5w4o<#X@hygKyHZ}i`>If#qb5BY_X1jm62hifnxQF&&ZuYR7*t6#1_o1PL-#=4 zbV&^*;MTdXZD`a$M_8Yvcwihf^Eh@`gT8?@+U&%FEc9U5(aDO{kDgjRW;qU48WQ1!?N6%b<2GyXGBKZ_h zZhH5`G^-iZ6TWtJJ}?RRo&_$NI5%i~%pTjH<_lGHg*>;oivT-}iITh#sPT19Qs}6J za$b`n35^zLX||Ytw3Lter8RZ?flTOlA{S{M7zzDDwJo3gJ78#9)4MFC0~#&H+GtNQ zKri!z?2hdb=$x}`I6@%@?L&dbAmA+4FQ&6Tpx}e9e3JU=uWZn%tK1M_{vC$D#_C72 zNkM~)0MFPMJ2V*ZBz4v(LtlY(&xd{$Xy0ZosWei6K3Y>I;t%(ri@=Bb{gfs2Y6bZ@ zYZ^kUCBH-cD|5iBN!O)LJ%dKlG`e!VJZOn{I34_K2f7kc8h%}lgI>Y%Uu&svq1n4L zFi}Sv+RhmeP@dF-7GL^4&)EIg{A%Bmk4-_xpy<;}T?e5>Vz|+v{R@UG%r9TC{Q)f( zp5?Rd%Yjb1!7a&AtX>t<_1dE*XjahYYF&H?on=oRyS~bR_Sv71waNkAO}yVe-r|LZ zD)m9d`^TYAJDBb3R1UO-%?Td)#Q^{;osN%B<#oJI4T;2ua<;3GPFK&qwc4 z&1GnLYd{xHu@5?vPiBtiWJACF1%up2x1sq~zoN5^3ABd_#D4w43N7dIq>RYBp}RH7 z={ehX=&H}jK*snU8e%8nCip8iq+@n3)sxYz#S3D&n0XiQ(EON3L6sBdGUzlBn~B5R1Q${rMNypl&g+izX`ynhzv| zC8Q}p4e)k(-rs=6r@8WDO0-bld3|bfG#lEVtv24Rae(@#$%Q}6bD*Bg_U#9!B51C5 z)X=v~20TYv4?d<3T7-|VM4B%^gDG6T@nHlSviZ!oNpb;4krrDxBmub8=GuUfL8!mk z-+7tJ6YyLF;-4}A8ca-+AMU*Zt+;X4ymTDkp5MMFQjOhDS#fMWDF|>OV@D0eI{^QX z&Q!Us6BVQpvtm?CUaZO+G8J~-W^9<%m3#aBid>JA3Rm|BWK zD`km_{u_R%<8Yp7JrNDH&rc^Gd0`Dr_K8owSlop=|29g}kk`;m_>%62TL9EAUz0Ah zuLk@#eWuxL6R6WAwQG^mgZg}xPZ}`{P<#1BOUK)SQ$5;3ydK!z@fT9=g zvmz~54tqR9aj&2D<-9zqcm&dO_?HXZzqy8&s zD!uvc+2b9k!@bfz%S-~z#1_3OK5T#!96MHbvm6>o%#Ifv@P)eSGfezg-oY^`$5R?k zLLEPid9`OG;FQu>3u>AHck0LD=dyRuVioRRY#9tS5BKH1C3+2Y6k#j*A7r7v!@5Ix zlmzNd4I8>#$cKjg%vP%un4Vh4!#%0_0hfF>en4a|G=B-dDlBmnT0>|~ZE*KO^XcSE z;&y}3bot5k(4-&GMRI=PYc?UYi&mA;XWfSKJ0qS&wwItapCi!w`U${^-pjETJ`EkM z{&R0KZJ=(3Rak_E25{wDM$cB(8FbnWMCg!@5K4Nus`U;+n1{y!lv&?UIjIz>K<$8_Z(rkG zXrl7!PJYJ+bxnu%r}M8t0%#VZuaZ zTq_Dir>L8k_9;MRDi5!tKNH~f2uJ4&N}x7f%wmE48Q|_bvSB;r0Y9>az98QPsI7WL zc}wOh-~@!9HD3G##mXPP`3ojO#aa%@`m;DFcN=2kew_fgf#Y7Evg@IECQMz(#tV~Q zKlgs=CKT7HSWRBxfPy!dDlV84K|}c63X!fdXw`QQDQ~2O<}3vg;}?n;o;7Oy&=UZ? z9r*){3GGlxgMYD^+ypJP5?biza@F@#L(Asg$(?mqX!Nl-)ezo= z<*n4Qc4J=X8B9u6Zs&)JnlsADSe>m4Hk6b-&IHZkbf@>kV{yDp>>({W4y|8M_D|Cq zXwEt8zH0Umn%nPRCD``?YVRh8_QaloT6Z_rtY|vG*YxR}Dd2?K&DOyzM=USRG7sNl z?1rWjp&9EhilBjm)iVz3n{Z*Vhg)d#p|;21JJs7hXwFEcV-*?zoXNOdkB<{HY>jbo z8)LY`ap7C-6Ra+r33_5JNdip{w8uO14r6(KqV2&(H*-{1}*$nyk?Z26WWfC%=@vK?E#kXaEkDaKds2_kfhD!tV zlqS$ZaN75?)-Pxb;^flhYKMCE;K(+!C9GZ_J(ewM1hwJv@9B5Mq5fRTQdmn5;N572 zVtm%1x#5dBb;bd}+a7IDdzu0GXOju1uFOMSdTkzksW3FTov6Sw-i3OTMam^vJs4`_ zqj*EI1rr>aLZ?adVc=%^!&Mzk7*SYX+CN+mV=<9*Uy@EjpOL_n$FCt6N)S*FR9%C? zu#;9652av8qJJqvDGmnhS+xWVSZv^Jw}W6(U~^B%=c6zrdSCy;^VcwP?t?IuAv5%?@}AE~ z#pt3=wc^*y&^r*Z&((wy2D0Mqe8--{pv5b<3}p=%6XEysnRy8VuT|*pTu_Grza#YL z?{PtYd71#%6Ac)=>2Slhx)28D*u7`sm0`#W)$$N8!&qpj#vZX_Fd$L1{#}C`hUYi0 zTn^oUu{9aSedRM)UrLL+{;Uaxq(9LFY&yXpQ4BG|S~d)sn;5n4!Pc9p%-nITgu#WI z{e#@?Fc|(og8J?(jHTIxCn|S5ZW?DOkp|?e6iT+a{478@-ExDEr z0}30iRRQKOMxgXlleZZ9(q!a>YPg_po>g1w>0{_mJGe*v1-4E(yiYbIf`KhXZ*xa= z7^bp58qBl@Mia8~4p33Uz>&0rqLZ#LVze!zShWq~A`^$XWv)RVrHOwkhJ%KZrDJpn zd|)u(=Q-Apc^HZj4mgYyVbD+8`-eR#3>j-r{OmA-Ayyq}%dJB&wp`LbCcFpw-t0e_ zy{QEKVN_n|_zsNNn@OIR9*6!f^$U+JU%}+QOEDunyfA>LF(9u02_p&bTtYvpK>tA_ z0tSTjpBfPrwzD?ScUH=akI@tc1@5Ox6|%#C$6I^yLPZ!mn4m$oBaHdS-sgv(pN78Y zxC6IJm|%diQIoNN1_lnDR3?A01B2?NHZeIj{?7ZAqW|FiO3^=gzmnlEZ!?;?Il7tK z{ilz){ZS(IcO^&uuH@+7l}P_xiOk=X$o^f)U%yO8|5wTHKVJ9;fz;m<9Qk{Kqkm5z z{r3bie@`I$_XKjk)9{ZUHT+{D?9{y4Cdwu@+;ln>ley`6TKY#c~$?x^~<3|wxDEYlUfBY2UA0@xn=Z_ym z{G;Ue`uy>;h<}v)xBsmN3Uxyjo!v42;FW4hs~hH+(>PwU`zPM2CjOuIRyD!x|E+IT zBhCfCij#~VkO;x|!Y*eMkQFsV{JyF)A8SSspVK1!K1X9D(m(y4 z)$%D4G&>V#n5~KSTi9%!v9dt?A67DL^A(X`FtY|1V+Ru8RUM4FNQp%3+8z?xupwS< zomf?yPl)&KgUcmxVn|RZ)3I=o3GooIjLX{eAi+$*;FgYF#N#Bj^x0MxiR?XPq&z}} zc%3E!*6d6X|AVf02gwD*y{x|fRr*83(U_&~S2%=(+_pL!{P0Lfe73TalnV(+a&aH; zeUF4ZI{Tw?iV&x=n1B6|CB!FdzDHm%1@YaB5v3;&gLTuOwrN6tL`gGnaZC3sB8>mw z{PBSaBI!IE;_xy95eG_>tJ9{#rsjT`^($u(*%#Z-7A@9@ShgUJKSUG}+I#J>9Qoy=vtp|$#fC$)+#ptS)BVtj}GCJ+O zuygI+6U)e(h{)2URmdzKc0v^sf=l`lac^zFbet0+e5lAW%CU(EUb#Q=+Q#IF!5}o? zFzn227VKfTfXHOVZS{>t5XrN`=ep@Dh)62@>8SWDBF-h$3%cG4>w6aYDee~{f|3(I z*~r2W;UxV*f(s+iXCwMkcw(^PqsNf-*h z{kqQn9!yFY;$qUoV6?v4it9KbjD^r0rn+wl!;?+d)j=I*js4F^*ponizL(#7p-(Wo zH6~OkstjE}L=V~u?S~<t9$SI>Tf0Za09CJP&X7LGzIp=B_7Ruol|F3VAi={A`Hn*9+ z;19z(jpWNu7+`{iNwDO_GIS)He322NfKf*U8V192Fus>t?T3`}-$7p_{{VfF{4;;2 z?Y}uWQ~z6X{>xuW`v>`X&tLNMU;ZY}Karxz{|Bb%)&I3An!%x`FlE9EaaR?+?byjf zd`um24rPvrZRnoizN!Mmo89yDfwdvxyJuSh_h+^FwcG&#KvlJ=T2P+V$yWtx7vFf z?f2UrW>Gnc_WkJM%I+|QMZ)+UmYRczaO$Zy!Q_6}zRbps4r?QV)Qh+Bh1g)bCtUM* z+Dq6zD!FrCF%l6;?Bi6kn}wZ>4l_E&F<87}y!jQ^2CJ8CK~B>*A+3U|D~PEcZJFtU0b3Nxlq01do20cW_O^ z&LgV#n{loI7CT*9+xu7C)i?c(rvQ-)&YfH z3DJ|#*i$0Qk}?eq`G#ks>d!)x|Jj9;m+hd2Brn2T*$Nu_pGopJXnsG9d!TC#oeA$e<*XW^ z^+O zKY{j^5M6KgGl2UXS+w>1GPKHt>G~TKKxwhuJU( zZteC=n70fxPRMM91=7byeH|)cX`*#;v^XAShC?p~i><(nsnWrK9xGV8^JtjD@jlFO zx%d}Q--Fp93UaBq9aw68CG9LV0kbEbNYup1!Ytt}e2k|e{7SbyCE(Ku zztX}C96ip%as?0lqY-ylyuh8p6hjLOMoWzSZw|uJ*!_9#Q_3*zLn)e~oeJ|TcH}~# z+pr+ZKth~!1J+wNtIZtC5J_r!N9<%JVtCFW`avZgRzh#b5$%aX3>Qm8NzUsdGXAM= z`}VvN?O2{6a_u8`4K5ypH4@jyvMxul{Bk3pf+ruAP9#3xGx!|s8NOSl_y23} zz2mA_vVLy?5hN&aqXZ?Y$x(6^1tchf zL=#DU+cP+K&T-Cp?w$9UXXf5H`=9mc>RMIx?MlCD_FiP=0m+4Dd>?}*?j=SRv%^QKK$MbF!Dc;VB~*Cf>HdUZGL%?^sCe8_ct=X z%JR!QjbEkw@>bwiDZiYne`u>;Qmn0Zl`s`E~z4Ip%=oenVA#WmP>x z%>(=YNa0!8;;lJtZtrYmXZsH*yiNax3UA;)R^gF3U~IW;+kw&Htf*hW2+-b-8Dy1+ z0eaH?VGlxPftE(KCmG!Y+N~dUI4eE?Mtj#=p_Z~hC+L1ZZf^~cf0=c`^c{fOoruXR zWjD~owdoQH0)cj*;dO!CVW4-bVOlud4KycZ1L}6B0JRpm@0Bt;Ae?zko8~jdf(KbtI>r(bLc7Uq3BqkyEfoe6Ib|nO;D(Fl0e7Fsi?286_h1!Ao z%GZuqEq!3nKCcrwwhVOc@=M3<@OHY^WHWAf1oSSq46l_Hz-IoJPc@~|f#z%YRrlBs zpbdECBXW{=UE%SqD?GN}C_JX$QFsf#qwt=rD?I*ng-81vg*WjVh4*1y;i>#@D!ec2 z3XkG93h&*z!h7~R3UAME6kg-H!Yf)=c$d}{-u88c7rUHk9EUHmT;p2)hwi}@Xe*T1gtD*iy>S$Q8ER>BpY^Rl}8;LA1O*4dV)Hl?(c|+kN=g>A^#=ef9afGGW@N~`6c0RRn9L7e=Bk*z9+0}oPYKo5_F99 zRrD1#|47DA+T$X|&f4rBR55?Pr`qsuq+(!LZP+kAAJFEPFXud-f#TC(^U>loQ1blH zK0CS!T6=9LNuJ#UwXA^DGN(JBwla6Z_<<%!%w_6SHJ*mOgIZrT66#>@6QVCdWU~N{ z2^VEI34)ZIl`H>9A0UPBG%em-P||1OIrH=~h#u^a8oAvGss%QdE~>5oi{o5-UmgJ6 z)-B6sf`gzCvPbzs2S4oHyLzl5_&V$>cwy!|cO7It5x5`cm7hCmvO(!ciT&w`Gq5lIU_2#N z0_?MI?xdg50@>v3f^J$pK#%REF6m4FFn=_8^jQnk6V(f4hxdbONMcOn)>u&S=)OGU zvkW2uwNo1#c7h!2>3&DI43d4z_p!SGd&}uOTEpf+l)q!Ux!(ZDhYOs_ImQ5R`cct+ zNi*Q5x~r!`8vx2*?(F{}Gy(gx-i(-<%z*aSzN|{$P>_2$jV5MU0fefMJJ>6NTn1v{mB;-}v{PkY9tVk3lBcU~A3&aEvB-W)G{~Qc z*dEKW9aPEnOeeSTfC{fClf3%?C`n77{d$`L_DGg;x2EWU6uNqFi^ek$r{nWXFUbIz z0C(NRQ8Ex>tdG5Um;@xB1(1gYK7@Tc9$hXu{s8tc%&yhf&4FUz)8e6=GLYAIXtI{( z2F><`=Q$h2L0Zki@`C1mkQgJnqUI0@(#$koZ1*NWtW$8AiIEC~A}oUv#Mwc{Xn4DA zb{5El$jR?H?GK8}N5-yO@q;4uEp=bI4v>%k%s?JL4vHr@`4UP=VPDJct?jXgK&oZh zPV6Qz$citOYCNt3Q4g}mdSojg>$O`*{vqD~s>2-{it<3^VACG|1RGG^Nf_p5r3FRa z`X}EmM*+{RrZh4s84#}>Jfu_>24bfSv&pYt0*TjAmgASQLBRX1f1A?^h%YS!b&k9P z`MsZ|oVT07uGa$ZH020@^pb1B2y`HqvSOh$u@^M37Ha>Cgq3lWpI&llhxc9Y}LdktdcpS(4yi9mEB zFlF{BEr_WNT|f7=5%}L($||{?0I~4a7(KdZkZm&cH@cDpJkOAG#``JQ$MDVem;pYH zeU-!Y6K;Zf+xV1bl_5yFz89F^;Q`{5iKiFL*+5*XHveP1C5ZCgsh_Bv2ENzQ`9*VE zK`NdmRgRDhVlS0=yWGx!Lf+&+afCD=VmIOTPHvDc)R7n%76VuclXS^r2DymN8%6#H zKAK$<@NKpjC}@ZW;U*T{ z!J-C`A!XT1din%#ap&Em-Kznz_Y4op3=4p4Tb9Z7wjH4QQq8RV{1=dT$PlHQ$qb?v z$5f7Rd;w9Z+Yb!(T7j^Dz0Ui)zF^H&B?!72`1mq*Vo)yG} zgM87I4L4s9gCudif$7KyK$8875ej>d8PAm45Y-DJInC!O6?THe?YVabd3RyQ?(#RW zL2@8PR_~BZlmwDHjxI8b9tNfA!2s)pVoy4w-%1!C0xrg5I_7oxAQZMj zaaH092$KnQaDO%ez9YeOJwY6>=j@8(+iy$2H&U>Yvit(1ZoD`#b+aDWGnS5%w%iA) z&)LS_{Wn0CZPUDG)?rYdC- zu1X90EFw-2_nVQ*43`0cgon9h+s=aQg=kkd(@v1>QzRGVSOW3Gaw)={{s70123&IX z1L^QgSw?q$5bQL(r~Gm2f75%ae@ghve|9iE4PzC3Rh2&qrgzr;jHCIPKZEK0->udD zQ$N@=^#czXsxYkIyGP$nh6ii8e5U=-cpx@9_*|>jdkLtW^9)Ap}7CZ4y?|6enX`H zJT^8`wYjh7J@!^VQ$^HuA6BRF_6*ZlHTJ%}_kp}r2iCeW)wXOki1pt1YSyT~7n?`7 zUcZ`&Lk)6!+_%M4Vtuq@j;u3>v4t#Cw+-gA*hn!aX(f#n=6vEoIUUn`?D+#hRSBcl zSO@v+aNkjGG&DCFAh6VrO~(uCk=XKKtu{S$nMPtaj+ zCIY!VCDXBq5o7h^3gOtOfx=ANmRHzn@<9_n(hTgygKLs;Qw*qrZt|iwNf-8fw8!Xc z=uK=k^4itgmxZu#I;W5c;ltP>bJ1nSetR^cc;v8>-5fTcv-?w5;sfkqN%P6ir^7HT zV@G(pu{rA4v^+$w(2AAE-e>V*zKeCQMZDq{=s|rbe2w9#IX24ge~e6U5{)l;CGiUr zVee@8PjBfuiUtffR*MrEqnFWwo;FucVa*p=%J#I|qfut+7xPbBuy;MNjc zsK_x7Jy&g@yDZX=`sy!iyLw<84ZTt~(IBK_&nslD4ryDVK3`py%X6J*q_g5n&)#&@ z*D`#n!O;hsZ_ErJ(xbA~Z)f7wkm+I~}xi^%ODeq{W%X zwv^cGePPBMtMk!w%RHMw$vdd#@fNZ^X+AVcw*+$!+R!-N^}x*F1T?|Xt|2CJ1eKUQ zvvrl+gZd`F1ib$G5{P^(Yu|ZD* zy|mx3`*XK6mV33&E$|};>akze*80qfCEgQu21 zpUUlcsat_%p0w!pqi4g~1>KnX;_jl+9b-U><(tYhD$D42ubTP^5*yL0tWPk(-J z$Tdq;nf4lcJ$?>#4&5MqZySLsw=J9#i9C&7cT3h&qgs@w!)W{ToisLY7A=}oXN^5) z6|dvD87878tojd>iF<2uCX<<|fe^T(!WWcZV{>v>}|k>(TAMZ=9=97%uk zK*j;hbA4LKdvylYN81oCT<%4Kj@5UF0}1Hu$!}_BY|~NYf^W1Q!xEYq&p0Rk?G36= zv46E>%z?_2HyN#My@H0lSe`N)ccJ#~!dp_Q%INJ;>3a|C9Z?( z(OL1JcN>~Eo7h9kZHbRWuQBkMZI01L#Vt_}BBFGtpct$L6owsyKD(~bq6yOI2+qylP)0)UwMYbU0E0<;IinPtNCKq=(#a!JdpPy!-*WVC!J|wIvEi8+EFKhOrYuJ->zOT}p*s-F3M?_*pC0O3X+L5OTXVHDthl&ek}?ir?i_7>ywwU+F<9th5~J@acDV3 zq|X=YD-4r}Wu(KNzvGwxRLzC;r9am?_aqA|HspFl9o&XBj%Mj<9OT9N$99oE^go7m zg%DqF2+hYzUQj8^nayMM2M+gSFzaKkX{nXk6~S0_QtgzK)Q0A;C z)@b|qj?DEatUThZSLC*3tWCP;hE1p`O4ho!RVD>5r^Wd5QWpVnyr3`59HGLJ=d+D2 z(!a(+Qx4tX?tF;FD-^vFpN_-|_~X8mgq=gNQfemE38Yw!+WmKD$LdhJg}9&4Y$w+A zA=mL@BA|q(pnE|kd?+@=aHog*8dfY{oEu53g-T9G$-Q9Mk2SwPn59V*iNfuS145hS zQM#i=d0;e#3QQb`h2JWoq<61`$x1`83dR@2iF|=5{=@$J?T1KFiUpt8aC#_;cW1C2 zRNaBKKS)w??M=a&b~*4$U6{mz7I;J_lew`R@|O=Ay~t6PDR#_^rvXcPcPl1{xe%*U zljB;h@<3@*pT%5SY_PyvuqHbdk8&B82G#l~P*(WP)@QwLD5vgONN(+IY)yI+rL@t$W;48s!j1V?SQa!tkOnlsp;*zO0~ra!uTdIZ%3%wNZj?E2{y<5hFiPW}>{c|xu>3myOT|tKSgAO<>|*T@ zcGu$LNg>S~EV+X`hS)6)6^}%uwGO(X8*2Wq@67MTBC}GogkBh-Y=N{9KlXX7)>^~6 ze$*4oc;O@d{HrdO9q^vxG@Cn0HTs%i9km&&x6Qb9*p`4Em&dyCoO4Fa+RSwY2_>j9 zwc#mS>syrP@qzNQ{vwugfpo~QQX9L!p~~;{P(I4Vo~Yh8OF`Jc({1)tX_yZo%Vf^; z1iC-AX(!F+519LNx3Y!)VC3g&-z?6Pg_8O9c+R;~pu`*5DS5UC6$NQL<8hHd;aSpe z_IYTaZ1wbErAwwLZuP{FOgsTqk?JVQiN;~MB%$3*Bgxo6rb?E!!a=N_MSauz*U2ao zh_ASb%Ap_y8Pk?AR#ZvZ{h-2b1Il6DiuGG^qniHhq=%dHQI*~2Dop`l)OJP6yM6vK zs`ce|AM)OYQkjJgcUughoG4!xX_8P>A|H}ZTK@nw^u4}sxGfb`z$G^-wM^9I<6IC% zav!BQzw_Ge-hfJX$@uxTtf6N{TRbBUh@;qpdQBbS`ndkJ5?{8viK1+GsTn66MA5Ze znbC(Xp%QA9?81RWl&eA(D8@d3+Sj_AOuT|nvJlFyAofH#GxJ@FWHBg{K_&eP=ONT- zReQun>>X;W9{Kb+Zvs{AQ)An-PYA`2eBinKHXNnc^AzVK^`X*64==KL6;!W~?zv@H z6FoJ4N34*NhX&NRcfO2eN9`PytP_fwsE4d_@b-)ssyio6BA>2?TBnsdxfwE0i}cM1 zYaMfxov$(1^7u5W$i3on@$?>)t?@iG_sS;J@$u_+1{)$2ZN6LmwYeb5o3l91ol%Ku zG5N%R4<6XPK1YTE#E!bysl_Q`f>DOE-jO}mSWsHLw&XtIy(qRA%7`W=P-L9J9*J8u zs42P8nwGGFtVg#zpB?H(DGdTm-4oR4zBJ=uzt5bg<7i$)!e)Kc&AqvDTt*Icm{ukw zsC%H6b1h||HiuErs#Ln?*BvPB<_E6mx&>5WE$c;=(EP97NB>nHtn-Z2oZA5jtRi`1 zBvS}ImUleY{?Xx+SpB{So5zn8V0B_cH##Si(WQ1(!BHC*tnyrhD@!H98u%RaDZ*v3 z)VKT7zwV^K#;LCsPY4{qZm|jM2)nTd!&e}SG|P8b&c{i&(Pm|=F>6Iu>g+JqvHM~8 znr9W3B`zOjyJZr49?s6EV!?(L5-cckg?D3^wvuM-by2MMs$qkM@*ebL8$*sjw-#10 zLoMynXMsH*Q*W{Ax{Y;cA6TmoRK`4Bx27@Lx?xo(y}ruNGGN6t6B=0AG^*8Q%sB9s z4(reg8f+^KzzS|?yUM?>!0yafl~TPAP3#9nn1H`pWuV`G7* zQ(H0}u(6&iU)46pV)fB)IH#{yV!iaAYb9O3Y2R>u%K97@gPaVN(?>b~z z#93n9^D-s;q+3zFFO?Ei%SSAis#Hw>N&`yP3HEIjsX@`N^t|d>zo1I81czjk5G>@# z$w0*ul32>q0)oqvL{u|nNMWZRhgF>T@|D?O7PXch%4s9A!dkkXtu4oVv7oU|lE9#=sKHInUnkTVd$wbe%W!!JRlFVj+Fs&|s;km7Xg>R*T63}& zBRQY&bH}TJFh5f)Rr_I(dl_CHkzaG;s{+(SR+MHZZiK4tl|9Ui@WDDnsD?hNtYIxH z)Z5Hs@-Sb&(#`Yt7qH5hm8VatcAzS~ZD!5{9xU{@+cC?`qgb5~Rjt+4tEe*i@Mi&3 zhVm}nnyH`fM-6@om&hkNP;;YY;)3`)^el4Zj`qt*lxn_EsmY#*sv1PH+dTj^)u^&x z{gjMq%$B?Er#?arzDb>WSI%K6zOje5sf?k5#H5QeT>hx0*pgiE)GHLDw~!Ac~rIS;Ti3VOz65`rP{R~ zGE}Oc+xoH72cNdSN{M+Z2ifjQrW;nIPXi1H7O&x>xJZ@)LYBwVrE7!`)9`ad)*4J)80)kh_Qc7~w*;Qqy=WO|g^ zNL`_O^f_vLQk>CiTZyu(PA(-I4q}x#b;X;T7qK|^v-vOB>rw9YVEY*D)95MkJ-LEi zMpdK1wwHFSXSi4Kb0*=8;f<28_FmQ`7n@5gpzJQ(t3Mv8kKD1dUS_( z8_FIrtv^Xjjhfz&r$0a7jZ*A*cd&HbM)^`VlJE4>pp0PwuI)k{sI@HS^{U<_RNo`8 z`Rhp&lx_HB_4w^KD9QeGdUL)O%FZK;EqgkR@M^!$=_YSc&L+j<`>tF= z&syKzcvx$P>il?aZ0^2=TAuYyTj+d1HAj|k+!ff1 zqP|M4&=?b;>^F{z8i%i<#G`Rvy0e>5OVQE2@{xV0DX@X1T;(t-=QGL5aX634s^+(4 z5v8Cs!YhSSqeCdOy!&(dgEmwt!p#_4aqwTgkN&GZSf{+0=yg>VtYZK6dNYqCESE?; z|LwkGSOc+XSZVoItTx&!k?hnI@-9^vb$O?XRr<`$(6gCf4NgNe!^ydrkAI6)`K&WG z3b*PW54vGj58dAE&)bD{533kV-HpStp9WLC)=a>jb(1ABsBFMGikGqq6YpXf%!^bD zBShGsM0=?HT~4g9rv6?`Qvim!NFD8WOvifoKN4Pw9>c|H#&q2lQLHM#^S}jl)qU3>6)DN8*<=hxKS|Bwdi3 z!3wvgT!@(-#cmur;rewL!@6i99}Q8YVVx5$p_jY5u`xzXN7lV&*aSg&WaIUSw@KA6CB`8~5?s8rjQ*y_jc=*c}y)Ri9%kkYiQC8r<%$Iwiis zlK2!PLy0o6QDH82$=e%o9iuL#s^p6mZ5}y3p85jo$})Lxbb=C#&6#xxO4P^Ngxkt| zf{3vZw@)<9zA{*~#6vIjcn_?}Xi7m~;49WjdqUf5#T0AaCF&R*--y+Vex21VX~0GT zPKevHw__EG%~_R$!RT&wuDWZi4p#cGi=*qt4Av2(U1C&5iZzUO&+Of|73=zzbM;LU z6Kb5}VKr~_!}8Q0(_aa_f;nZ%=2(Y{Vw!T}+i!>MM>T21`S}g*SV)!YP@AhDmMLm9 zf5_(ys($*_J#7Ce3}2!&%l4c=?Im-U^|^wvXO|hMrNXzO>Q`MXTpnJip|Iid^~5{a zF%^YwYnMz^ck-y1f|xAUa{S^plH4^^Ek6BLR;3qJwu>1Ut1hDAmedUGb3~~Ac@$mI zSRYn?LfCmS<`b%lOgKcP;*T1a`+7SzIird=elo4s_po*ugQBfrYgkjR(KY+xEy&QA z(t^HW4^}xJKK+*P0af_DS8yP8#+?^Y1Jw{7dAcG zcsLi;-?u%)o|l0=ZNB|VzS;(1@2gl_HKkEav_H21V+ML6S#f9arame$K6=z)>O4x> zRLyKPa2i!l47_DL8;A+JVexeVLZzo-8zxK{ zQC0b<(BAGjRQQ-8p8RSUD$Lok;pILf6r!z1{Ao-Sv%W8(dc~3vOYajDYhhtV4GW!X zWXk0DzMVWrEn|psu6;an;)5Z|`%E8ZdMgRVE^oA@J0^un=bnA>JMj=dkA~K#uYE+- zfvX>=19`DHz4Gwc+(W4HO@01Y<{YZuD%3FWDi>9g>(ph&vZBJ!SQXjj}Y! zRusV>E|~0@jtV(zKJsFes3z*%oI~CsijF>ua%YWE75SXRDS=>=vN4kKW*t3>oZ}n} z3Fty4O@jQJcB!D$ZQNcayN{#n2M&t{qoyd4`L4$8N2Dl6K}k&I%q{eol-^Or#|||; zIKJW&c@z~nTE8Mc;Ea`IQt=s2@nXSEi^-mseNhRM%m#ZE9hCNkS|>c=F{<*A9MC0f zM!7dT0s{*#p=x544hB1F{Ja?69sFnude)X-csSl0)#Te;5BY}ci=47fp;kcEL?7l2 zd-tNM0{Z7`$$F@2t>A^zrT|n#UzT^~@kZ2WmK}U`r31yj-ydmmauyZKZrC!GIF0J! zlumhfNuoIOy555ugHdCR2E(!e9ZD0wA*?lc3q>CemJu;zLlvDHXf+55D9zmU^O$NK zs>pPXH=!y)i5BJWJa`#UwmoS@5XOxnJjpuVZwg1Pek!i=ntG`2v~YN_&MuUn>lRRw zE{}3u)FRU}^HJf#bk5DRleivzHD@a`fOEIYKA0Fo*$z`fHrr@W3kO5~jH(r?@6QQb z6DUC~4u>=7jvYhQ-0HLUY+Dc(7diLleGY2KapY}_I)o~Wm&0U>*-=IRGiQgYDU`=3 zAjS}X5HfR6tOw-Z`R&YF3Gu`(4se_$fg4)pnSBS9T3zN2jbTLzWtWWmhz(F#+DzF|5_S~BmRo&;Dhg$IzqKy?t{BT6 z;D}zT)<&_6>SRqN=dd*DfO>V|WGvrYrdrnF4GQVl-cY?bk9B${+Mjqqgo3p<(YCyI z#HzioabL)G$Ih}yK4fTM#)@ytP+YlXf>jVBX4;_^?Dpv>jZf#Yutt0KJN*%k*!{}O zK7mclSc=5f!{JffSWUW}{no%Cl%jKO+{9J{i;s>aXN_#bs<$8S<0{;Qg>FbG&={U0i_pF9E?_;0^4a)2Dd;a^HCxnej(*vPg&jC5Ty|vu-7`7J zd~Hz+YhL298L&~u+RQA+a&G%f8 z@Oy%_o7(0z(b`}+XF>ui>&dY8fhLWN#)DX9ZrhidZ*Q;~8^vbgmkL-PQ-tru#s&q0j&DH@XaGKEEvXq!>3!V_325wUk0!?>w7M%Ac0D!K$uxImEU*Vr}KJGc4WXDEkVv&7HYhSOuAD zD>mSdWpnZP>v%_C#UDP8#wavlKAik9dRe8|6ZgOvH0+FFD2noALl(N0Th_-}(~Q-K zof|2hjz@)i9JdYHUBa4{(czxeD=3?#QEXKt96e2c77@{e>m}=jfcb~ZsGuxfI;3nJp+V-sIVLD2qQ`zaE5Q}wi7is$6D#IEdv|s7Jz>kG4sHI4r)5ePLD%?e>Mksdh zB{O}40hX-%=&ZgsC05s-G1ekQj&i84h@BS_#LUTb-R-B2qr5ah%4!h~R4^(jF{v(x zN+R3j%C@N>;Zy#S*UxgGm`m+E=brbW+&HcBOP7XFOyIpN-Pawcs3wEOIX@1op?c)? zWH}ZU5Q$9j-iSsy>U$HMw*+I^-^eVMnIutm*zmVe2NNvY99x?7I)$o^;-~AfLnv9@ z>Coo5E2v=m=@e3`L#QCzlQ*K{8dgD6<#+9DIm%S8RXJ<<2<4o-zHh>LE6OMnufNAo zkEIVB`p8*lkL5ZJTzun8j>T+$o;<%h5i86~y_eB`4VAI!TLhg{K;a3_B#9?=uo$%? zG{f`TP>x*pedEX(tlF%ZOmTG?a~*4yqoYYg!6sg_#P;$CQ*HZpRaP5o9GEf_IcA5l zWd(1>J(ow#u@QO&pG#4t@<~$W!&N9(;%Kg_rx^Amx!NLmD~9f|x7okH%ZIXKZ!&%CR(cWdSDv%P7d$*s;Y_mO(Jx}?{?|}7CF+Z)vWM$Yq(mCZp?aO5r?G_U4jAY$ z^7NqwyWWe-9;B$FX?XrBvnQ&3evM(Xzb1O}S(fB<+)Gq(@~f6v(j!#G$*NC+@N?=n zH)eLceT4^=KUU}HqRx*nwc|+@N`lM-PbXJU5s^{#9OpjN>`nCH_&y&L5$Nu`Z~h8u zzoJhrA9V%AZn^`(o3ElvlG6(dEMlmd;|g2-V%8#AD z@0zKGiUwBJrfwWZwa!lY+Aot(ny`R9=f!L2`5uu&4x0R^eb1e%Cp%nGmvQQGP3ps_ zYUjI*@J+U;GiLyP_YyX~jHl>>IzKLO>mlEk%x+@b7$Sc*AeLCcNP{Ukl#w@AsA9|DC-5 zoJUBa_;;V-UvHb4JOBAR|Npzcbq&hA<|6tVX+Yz--WR3NSWr(BHOYL(4;qJzH1A6Q zXbtSQ%Zv;FmHRgb8XA*8GwRe=*I7DH%V#~fNj3$Pk+M|!Q+iM-WwLSB83ffrXL@?- z2vB>+rrUbC2Q`f$Q2bEKXqQP6OKxx`V!L(lv)ak!*dX(+}RVF@%k95SK)#aoA z&f+nseog219hRJiD#`M7N zGO~x#^8kou>ru$rhk&5iX8}!$X%J;SI>o112Vz@4jveIL2)xa^OZT#SgQ&s@_OK_y zAnaS96x~@0f-LO^Cd)p6kk}zF^+72R-t%U}`Nc61c1vN{*Q5_(f-lqjW=_E#S~uD+ zZj-QQ+@^H-mJeQ1N(TNEIsYt&Rp23r*K{zj0^jyQqr?n% z5Y#SjW{IB%-rTWR=UaP0L{~RHA(a()3`!!ew^G8cdWF=D5jck}D}_-|AMl(`9f&q= z0R9M@ZCzSnz!O9gZ$ljpLTA(YCPpk_w@x9s*(LjHw~pE;amPk`W-le()!H-V3~?Y$=h8wiqJy71hT95|(fyY4Us%Bi;w%vRGtK6TvUt4;`Prq66ldk_d) zE}Zx7U%CbqPG`EUB65LPfPQkH=wl!iJnnXyGZx4>n$!+2(gKCh{nZCwlYw&WfDOqO zJ0LIS4!Ne*2c)i{-o5(IfrhMkId5+fY`k&5RZ;K&P)Q10EE>!Pa#{VIwC@^$V&{aR z>6P6;O2YJ*B;gut#188pDOd#(rwHK(j`cv=L#H*qXb9Aj{ELA2zE^ za0DI;0?JQ)8LPd6K>Up5|C*E2bu?>qTBE41BuT3wcwN; zK;9!5W{>w1NzcQN$6B(1UV=+ROX4PMv6bPmvVQ=y9VMezI*$U`)obp)O$@L#G~_X< zFCWl!eLAu@V+yR)+jc9xaRyr9>$9ZnoIo{vQ?8!U4=8%K=AU@x4x59LRuTk{0Fi58 z#9LERp!KXYb+536jeg>W1s7C-I-hyXiVzAkqJGgPbBnN1dRUjJ&J;)+Y9?l6G=Ywi z_>_fmG*FRx$ul%(0FQvz7vXbSz`nb6K#Ke%@Qfw-_oll5PulHohL64hf8AR@*QM*g zWr+pOd>#gl3ym@xTt5MO74_4d4j#Z^U7vF6^m*8!&LA~VWCS~gqT?b0t%37|aIzSrw*V-$hY_QS!a&BL($e$&TD-YDSQ zwP@2;yb2uAddEHKMSxjkjFXdUlxlRq#CxvOl*1W}6&{#nQP_a7`|eqH2SzX&$$4e)r5ucPK3ELt z;`w_YzF9l)1dJz2s81YL1rtL3+d~_r!DREt#Fi{7Frl{#);u8u#ty}gDsJ8f1}(wcYsOBVO1_tF6^t+5i9KV#2*#J^3#B?mpvKAlsdp;_)L7e7$&bAH z+5W$J|KGJ;|K$65%H`YCwHhH$GLBzP%^C8v4n9Be$QSZdx>E|6vLR1zc%?PJ0`fH7 z2z6W$kf%gWCQeERd9X|IW94PY+j~$$Jud^dOChDP-o$WY$66zL{HjAA%uI_Chk( zYrKBp3wLZkkV2j|@%TzJ7v!l+ZlaGh!Q11yTD0BrKb8A;w(d=Tuyt?xJ6rcAe2e>E z8!v^1sohyqT`e0yvA;=i{%wloPkAhVkAh#kyUu-+tZSmi;f*YCYWse$!t2_3O-a`=h+|_ByP$-(FoEW8dK`bGpZrZZ?d$35*FT=G?0>O#KiaWg?vMWbQJ(WU$B*asqg{XPw{<_; z^>l~z`mNUMwOr5l*YN?r_WQx-B=YO_{peqZ^>o|y{AYiZyPnVL2j`FagV*gk?~nem z+wg0S)9crNeLgh5ZkO|V{q`Gv-7cFS-0S6>ulO~$#rn0y559GK{zp64ukF^`>p1`G z_MTh!w})Sse>!@d8-9m-y*)q1iLLi-qjV?$^sd`@`=C-+I1N>-Ac$-?xI_aQ|q>5ANvSaEtuK zp7_C&xo&^>+plxm|Aw1poqN6BALHZfdig)bt>t=t^B?uC=R3E4?YLgQ^^fb{)c=Fq z?nim+_T+l{k8$)P{kQAL5Bp%^xXr!S+wsG$^PH*p zb$x&BpLPEq_wV-i4{rN)?vX#{KD*BQWBvNQ{{Asu zf9mh(-*B&&Z^!;?zW=hne~3}sA2_0?sI2`5 znw9+f>n?k<)93#I(MtU9Ct5cg|Bn@|3`d@7OMcpc-rtK(^<@eIW)a!@F1n9_kf@Yc zWatHZX1I*M&UOLI#l`5@k#3+{$Q(EcWI*)JPPXTO0T3)}>0D%3fWeOBbAit**y7Z= zYnLr6&>GR6Fj+VbTL8%!PpQFn;<0^ajpl)plR*2eUIn%cn#uO&$pPzw&s!BqB!JU! z7muZbJJ5G%C=0~q0ySH;KgBB-ptr3~ZgG7>rX%Y z0OBgC-Uj>wz-V32uB_e%aw)7;>QBT$dU7MCS}zA0K9$8pb7`>ew(AhH0})6tWbC?H z5(Jzn+qZdll!El*^TTi7`GcgckMZ`1aS-8m$!MJ82C-Kp$rtf@L|hA`Joj7zS;u}0 zlT{87(%=67!>hq>Y+(JR=nDSc7r)?nKOUdB0d>DitZ!s4-%|1%>Q2^^s73! zSh<>6o7?`)!JO)Qjx*-=&S(Dz-ini{sH*B298vy*6^r7Gxw*aR8Amg#e8B6Ac{3dfF_+Ux07?ePDB03>NMp(dA&{XG zwi2}i5VPI6yxrm^ps_VRogO2Q;Ab0#0keE81_3fs4q0 zm?Pf_xNa;D1iv)`&L9t~mNsc%|58Zi@{RzUigQ-XFRSo!RX*;^71cZ0FP2f%*m z^9CulH^3g234z5cGa-b?6!?C0c#XdR?k&0DamWmMPUViwR@-?cf%zlt^XtW$9*k%Y_iMVmE0g{C+?Bc9P`6Qg;-7f9id} ztTkG(F;xlLGmlok&e0WwWuULgnx})`9YG)5Xe-(43={v^iQ2^h|zx^X8R-Uc~vN_s{`g zm=gHL8n6lk&u4a%LA^lGdzTSjRRD}n1*y-4m;pWZ_DWjvMPQVro!a`$4ruNBZB-w} z0Aaw_Z{oZ!(1ni&O_pv4`s8O9!jH!Ty)bKq-O5d1(920U(RBzIhP`%2hx!8H^1U4- zAF5#6uF5J;?^R$N_Zm@1i3dU{qxUCHXCOFs${|(jlp&s2}vS`7GNoE z5L1%p2g1ZAhb`)1Az&hg*}QZ19P zw>cLn}C)1U5428AlPBt0wj7J*Et&Fdno0ZSjW;0!eQs zY$m%z)!$|aB)S*22>P%CWn%lP-h*4Pv2~err7RW5nz-*CR5=P{;?+EVosa0en55pozLCXUZ7MB4bL1Qg3Xy9 zXJ-pyfr9sV7S!YU?RZ+=IKBYVEbHv&DPMq;fq156#0tnaeI@PV#(>_ur9SYg77(`F zXuZ?H1hkDq%=-se@bSmAgpH>GjVs~Yf%`f@Pu;5g+Fod{qgIGR6Z-Y$Gt#ac(yQ z#zn=A)%lNrklQtr3`c=r&+f20Diav@#+*02GY^dF3`TN#7O>5XP(XRF0qC4IYJRj- z06LjmC-O@^z+hJJZmZrsV0iG>osCBYn7reR-F=_y9&QMY5 zXIXq+_ZE0B*Uu(Oz#i+a*eYAlVYm1`sXoV6!zD= z&K(4VVdF$fPk*5MkjOH}s0`co?wETR(g_T5YUA}wUBK}5+GYbkC19|%_mhpi3yh&p zZnWo<;k*mWgG1E7wDM$sqFxbff6zDhDvTAFg1z64$(h17)?2liCl&GgP1}r{@%fmW zGF){@9SCt9Iis)GVS7_$;JJk%pzrk4Sm`$a`Wz+F+-Iu5SR<0UJ3s_zgKA}Hs-6LZ zY>Pc@dneFXMeULw4*mNrAvU)H zhNip`lh32T5VeCMrE3frcB>NWF`5G1QPwkADY`)4`tb6!-ArgdaP4jfbRJ*EnKJt)3h>Ga@7?!w9zWrCRbT6T)sC;%G3tvK0)gox@w@q2ZXi%Mt%VE<03o4`Eg}6i5Ujbq z99pb_QR)L09={tH#VqDGR2soHhJap++%%x`j^J_HeGKT1mEAt(!UGKZzZ@oA%K*B? zN*-dN+rT(#OfKM$w{JAG^QM0z&<9`MPe*Y8Xj(4Zbba^`-^ap=*Y-XKdX#fjC5J4z^9!>OlYL$>S~>e7rx7472k-3A8T}(KV`W zAXJ|z%hxppdYV$@fz_ix-=;=f8;U=Fjfj*BHJ^Y%zinkuV=FKc>5(om-2=iSZ@X`j zPOy!v?P5{X4j>qP;%W4h1VX*Ekfx*v5FQU6&*z;2#?x|kx0$VgQFkHOyk{A-ZKQOvn)z-co3$!;~Z^n2(26~BI zO3YE`fW}vJqDoX9=t`+ldarW<-N@1fU)Tx^PQA{l2k?5y+F18J+Yf}TJJi{ob^)XR z$aKkaF3?9%iE=LB<673#YTOE6*Zg+7U)J0Xgi{+LDJ@ljE^~8k@#SMc?{Q1jIz1eJ z{+6z%YjNGMnilT1fe#qMyRm7Zvp|qlD}7!b4ouOpQ_o~>0OK;o9{AV`2xpbo>&=y?F2;Z0m^r!S22!?$?lh`B6YW^PR-gacaHS@;%>ClSo zW?Nu*lAb`qMgs(yaSob6PeL#2FMN~(E2pDhQVY%KOiO=sCt`{=+ zI;i)ieAbK`ALsH?nlt4@fSxMlHU$yBK4z4@ z5u&9A`rV0MikB*ZfjcDBACUt?PmPq{?g=0`Mek8A@&cxs;*oE@7lCkaDoT;b8wd~Y z^{~;1;d;^a>VqPGT(1#X-jrp>x#zwW-8KTI2i>CHRQNiQ+}+Xq7JtrZ+rID~cgMLY zbt>=RI?hDl(j{MfoS&)wTy4_~v{4(66~*A|sX)g}QK$pZWR$9W*mxf3YHW8**_i;{ z>L?3hp(rG`*@b0%>d)Jy^e2J@%?4_L&RrM zD`2uACoNjR=Xb!pjYEk(KzHL?7VFz^VAz&QQh&@F*RKP8X9n?g(1S1F$xaEN&FHMq zdba}f3NLyMR+@pP{9;+;G6T@{?st&j?E`uu&wGx+I=~PhAQHm+5eRI1r&*h~;`7jg zxpnjnFjjp0EV}I;&^LXUs=SD=bM9=h_4W%u+nhU~?;VA&&xvi!;jKWooV`B}!}pyi z`LGRxQ@Cz;+VQQ|8yM*CO!fER{Zc7ZJWw$Ugp<~b^|qeClo?+i(Afe6bb_1vFe4EB zGv*Y^P6FYqagS!T0x#Z#9Yqp^nc(u!$R6mPp7nj~pb2!XZ(1I8oB@W7b1Irtcza3%#fojYfRQm|{&Zv_KF;%= ztYzcl`LkNj*={PFdxwnQ*-(6bq&RN$$Jc{b_C;Lh*l=$7^F?kZz&KWLP0!FD2pq3Z z1}Yl?W5b*HB|ATy+i2wd9s_*ch;b@6dkwT}txjtf@bypFIy7Q;KhAw}gY>O6oICzF z{no2MPySLsY(56(4vP|I!SzbQ$ccNQVL;Hz?sB<@0h2|wNlPMrZZv;u#_fI+2xro6 zPxLY1Hdrs#w;bn|HjsE;jdOb(Ih2KugQeS_U$El3=qZC+;Y*yS^)`7jodwQ)Q{83p zInG_YYI|)F=k7|XiHpIx$B2`R25{~RQe5OqIJXAvWmZa@dob>HG&|1yM1Jge2+nPr z`EG+6&OIFzr9y}IH_NFL$6n$6y>nRSwhYeg=cb@7hjaJGT1-XZ+$)aFW7zb=Y%*JOjZI^N&gq!@bk;@odyt8Tu=xtBD~+T;70 z1#|lC0(YGErFKOj-mhmGpZ3M!?O?O>hJkFBcfngpsw0BGBHVWmyX&;N$uhzxSnZp!pWfT5t!~JD2@= z-r(mEx`J$pyQ*5ae^p{ps1Gnk@w(MD;`{dU6?Umw7JPmmxpR3DKYy1-*|qE7^B|B? zDsIfL^$`u#0Wwh&Rs|rY#V@cdslt3!N;%thjNt_{G2ACWN`HZZjB0_ za`njK+#jobMoe+;+UTeE-s9Z6l5Qq;;oPSN=j-@!Zs%S5mT(=~yP7jdW{h)(8Ng0K zoSW~!;7NX*n>s&+1V1OH2RIMBlES$kPu`%x{Vrd1IBK1RbEk`%-&Dl8%X?G=ao#AN zfX$EabKvr2@#v61oZCR{^}`^X`_bZi$~2sN)56u;!#H<^Oi=?H&P{8{`_>8Prn(%MWE zTXnMO#WkF}bc^hvNt}Cy>ESW_oYL5cSvcW-m-t^*SIywu=1Xeqxj46*Th$7_Z}xt3 zWb;!58cEC|rXSC*Of)Z~nFh2M-khJe!}og&>uWP_N`RK$bnq?1RiM-7E%jc&fbORE z(W7J%IG2KSAo)pPG*K2-9&rQ4)&3$%2?--6P4deUdLF?dm!nh74 zBWE}~cLfNgZ#stV?+e49Q{29G@J3 zu<>p4p+g?HZizZ!Nt_9EGd77l=Wtz-98P!EaSrD$|H#X5{X4hb&W^F~+(e{Dl)iJ* zoG6U@&g~rd)#f|5x~C$(AKbkBoa`(A6d*@$Uedj(Td#mp|H!;Vh$KSbCwv(Uu&Midt(d0Y#1|sf$ocmt+o<|zr zxj8Pzvf$j2U;G0?zjG^OS>o+Z4tw~CRQr2>3r@J+`pzA_o4V#Zx0J^i$9Hb+U3x;_ zxs&8Jdwl2i`TD@`dw(-$$&h^KUJV#{|DAjO>2~h#-0F@n59brNGojdj&k;QlJ z!!9~Y-?^Rqba#C3Z{d%3I=^$zNL{)3o!eOc;*sy%4YF74zjFt8;Ohj=tvj^H`<=V{ z)wzZ5+#wqC8sEA1UJ#Z1&h1&7y6~Obxz=*{JGa{DH^txkd&3irq3_(TXD>E??{C4+ zb)4V19jDJuedq4Y*vtMqf92W!2Y=<+{`cZ6{PHyvQya4jrpmubvaSsskpB<%t zc9j0vQRZhynV%hH)*b)ZUrbliKVYKzhyN+o!qLvd-1Z;+tK6SoPT%nF^H(|4H76C6 zsk{qy&J7*9BlHzDh+R&Qy|M>&T1h<#ec@ z^s!}&w+VXjT&|KTobj*z?LE?GeW(r4OBeP}uln@SU`t#oO``+qxg+#t!k8ZAJ48tl zSu&%Bn`&IN{xxVMXX|PGfNiLcM?g5s(E#4)?2lnFC}4yh9kueHTq>GtK1kzf4S|3>elNYWDeCR z2NTp^#A|lxMhF_-ykk$={9W|j8*eBYb^HY!z0}xO=+b=^4d%l24>hQRDlQ1iZ?>`n}jfM&eU3f(C?mKR;48 zLc_P~#}<~>&=Br*XY|Hjx!c$Us{6ZR(c|^}4^S6tWylwlS5CM0;L%s8pX2UmlzT23 zH1XKnk(Y$JT>WW!q^(f$dcL|6XO6)etZA-K7V~KongNej562zr+f960fEY2$W1BE z)S&Ln^4dmis{h?`|62a_^?v-p(apz5aZM=(^)Y;}fcC%izxkKv`hQyQ|8YCx;?5sX zl#~9!{ohvZk9idQm*@K5R&Lq)yj`DfKiv=eOTGVPIqUh5cca6B(&zI3UG4kd{U8go zcjpdrF8@#0`{(D+&;RV_&o8I{qFNPobPlVk{~7t}|L0>=H850E()sf-{{MT76v_w0 zRMpf}l?@I4=&Q%4?ZnJ2EX+?k|M?r=|J#pIbBB)b5o=yYb0;r;CUz=Ab5`75-F#YT z&N(38aB>OF`5XoFc0V+C%PE6munx^Vh~@GpzK`aT?B}Z&ve8`8uDhhS8_--my+qjc z5j5BFEOIAE@C5XisoLeWIkRPMRRXAc75D%7|p$Z!Yyy~5zTM#kKCcxi{>|t zA2>>?h32Wft_hgBqIt&Y+gEI<(L7tV^tkp6n&*mK(w5*y^Sn(*Od`k7yl5I%Kn5wA zmy?_QJb_;;QSt0)yNu>F<8&)+N6`F1B?Z@|4m5A{sJ%m11PR>n^mx@g{jRN0Eh6V0m)4IVijhUR7E;#bTLqj|xpJV%`vG|$5&!YojOx4VGz zL*{lgzfJs#q;of#r@L9{FUp7JDJZ@baQmRSuW83}t?}nE<#C#Ks~MW>2`l6ATSRju zTa5E`JJ4LLX9D?=2WT!>%Aoc!51P9~A!?@Z6wRH9CleqmLUURNu8&&|p*gV=6Yd{X z(HzU(0P+wIG`Dew55MCGnw^<3)(*`@vwhoG+T3tkZkRO0#fxU+GmQ6kQU1yOC-;8> z_kYtdib~1KPS?fS+4OtZ=Jhn{A8EhDO#W@+F9C~xoA^t#;2%XEIi&hikw4OYRpgJv zUlsWy@h?UGvwv=WWD|gCv(5jivlXkmSlpr&e2z+tB_wAx_-3v2W*i1xap3 z?Nin-a66z&&s_*f7tTCYzjFq+S2)Bd75X%Tj9tKhOXMJ#+oUtUX z3rQCb>v6Ks;C8g~8*>jN+HW9zf%E^TS?xjhovg2WK>Ka`m#oe2KzrfpfJLntXs;$w z9j7P*9pXp32l;D3hqhzws1G;juqH`{y-5Wf-tODWqV}L8Avvx3O&4@j8TahDLjaxq zr9>$?J)m=V+W*~zG3Xfi`sBX21UjeH?-uI{fsS>_!!&8UybGz8r)O_~&SmE_a=!Te z+a>u`QO%$eS#-~Vr5AKk(^4j$w}Vc0z{G{h7|^L=;DnL_&}nDgT$D@-I>Uy-X9d|o zXEJ`%_8GigE9LA&lVYGtuB#o_B@McaW|RyAdqH=H3NL|C6?8?T-=*!a0bTek5NS&b ziXT5L*ioDZ#jo+@_ZJU?63L^P!f|y_qTv3>y3Y@kwhFHqaGQhDHrrAWs`sF@^SnUf z8{F=GE0Hq&4U~lWEqnOsB>8i;sFHkZ~FHF8r4N6uIqvP2&fRd9+RW$ztQ1Vp1x!5NMO5Tx% zZw8NpQs7p-w0(GaA)jFW`c56 zZ2D6Ppj1aMv}%f%+p*MX-BAWggM+gSJj(yE+@2;TM|78JRIvD9Ju^7eXcAK_D1$>Y_s1!=NO0)7 z=nYD4;4m1*jY;}~!+6P2zMy$I4p-`;D~4R>9#* zH>;wlJUEh`ntsGF0*;h&7n%Y{z>$8{ZtNN*II>-cPANYQj=OZjZmUazBmdp38$sOQ zC_W%Idd>nI_ZH`#ez63OYR4KxNo&ASx0`jgE(;uw1-7NONf9eTVB6HwDxKy4wu6KV6vBAE$(UHKclW^dy)ZjZ zd=c2LaVpdB34$H*v&NEd@4;^KlZ5SSVPHqU8p?Mj1ME097kJ(I26lpH35w4{!A=h7 zW_R2GJFR$8Qsw}#GoHx5@%Sd#nQM!+op=g%4%&C}v+-;1*s5_Y60p0YcK@O5bFhoP z81l`{4eT;d^kQ@f*p<_D2yMjceP+7#g^)kk4eq)uLNo++(@I3K{aIkQwyENMISGi# zWPZHp_6)?-^Jyt)`9Vyl(yC)H2E+``tOUKW12KI~>||mrh?z~+F_0YqF)O0bYpJ(E z%prE0WF`xUIhK5Diu3`oD;}#~)N4R2poPuUGY`aW^EyT5J_WHr54CM(r$8)R@dhR4 z31ShBXQD($KAeMVV`O;@r5GxmsD@ZT^v3mUvH(0$utoHb= z;VirzJ%`ISpTn<*{K)GXq(E%aD?~lw9BwP#UjK}@Z^be2sW>l)lNi*>@yUZYLhv# zzR$6mqf!lvyM3)6Ma6ce4^xY%|?x@9bu80WWPI_Ew{sON*-bqs^Vg$I0 zjJPx{HUM{x%uuuS5#Vk$s-SWz0q#bp4=47%0PdH=W0pzhfqQbxF2jOo;C{cI@6)^i zaL>o9S`};ro=sm4+i-6J9-6MNJxpc5!+dbNqRltpVe*tcDEt+8gxbA}do}=%?832S z2c7>^ZZxJpVc{dWg2s+EdwkicjK<8kh$jUvqp`Dm{fsXX(U>hoWOd1VH0BmCNX6NK z#x7I$M-&XAF@KRnQ|aSqEZFIko_zuud&ETOnaV|DF%9VzN5s)sqRXm**hMs!9Ama% z){e$9$q(AzeSpUD!%`+`wxY4}p_sVqxPQ$P@fQc|&{*q>f(eQyG&Z1Q>g8OF#zyC| zhl3c=*d#-y0+9e3Td3!8ru0N(tG?0=U6;`KCK@f;BNJ$x`tgq1+IBR)o!)}J>=hd4 z^eAJ<3;0Qt+NuafW{Hmr?s!KXk4@IE#|xQJMZe~{@`65-QRgvM{A*M z=W6a~s$}M9uI^~(VteMVUvK@(jlX%}Mzx;wx9{72r2XydwjXJK`vUL#TRofa|NZNi z|1I}7FAD#X`0E#izoh;4Md2@rzkN~oOXAuYg vU($YC`!9*Vt^Jq8zpZ_U4jlS!vG;ba0qU}A-KCs26qeYK0pQ^ zY?l4MZ)^KKH59eQsCXuDYk`B442V&jC2edMU1Xj2sxClK&8?$Zk)5Vp0Bf zpVIyvV`3q{a?~4Z3Z~C~pA-f3D?LlxKYfZMd)rES@@d#nUBfmuJ|gcSTVX(Xd}qxB znSJjzhG;+a@3@CZO}I6J_Q13@o!hx`xoVbgYBk=GP>S5DMy$vQEi+h?u%$_oM3nO@ zeN?w(i-^mzcDv0*73X>=R;;VfgsbJ}_8CNJk)Wf4WH4YkrWEe)F}F{rfEE+DX-lrT z@nEu)37jw_Y$dfw4YQu+RlmK+_i5LUx8+?lThs_0SA}hTyBVE?jp==9SC5Q|)K5@x z5e1;m29lWANDd|3H9&ZtJm7U_pI&6$6Gzh*m*FkV?vki47&Zi%9iXop zv;8HJU+DHtGy6c(p!7|e5aNw`s0bM=aWS8YP$p2gcq21(hP)W5gFW`~C+s#V#aahf z;~ERD;pfmOtQK9~b#Ob3YSuSK%2mZn|6r~|-fM$q_IS(&!eo)wwYd*f z_a%5C$8Tr+rR9*KT0Z3{g8>C8jvx|Y9{YC8BQMyDwkTz(yAb`)3k zbWp60+496&NWCI?@s`So!;#+0`n5)^Oi|6NFkfk4dOKSFd!QfCWgl&)#PM6P0mB5( ze964bFDc`WuY5aJkIGuMkWTPqy6<4GL@-hp12OqTKJYnicfzA+SGKc+qO2OHR^KOj zMRrg%AD{FVkQ;J&J2jphH_KK0^A&v?9zNv;eu;56PSC&~88OhV?X9ma#gQfF_kjWP z@9i-fLLVa!QQbB`P1SiB%BCo}Lq8Vd>pW$t@Q-uT@Jnp0a@??Lk%c$mE=XnHiwlT9 zK}oIujD}#rmf2yZ`Nxu))MH6{{z{1s2;6*dcx#SDAdVY<|0HPH*^o@#5GBR=!P{s0 zQ8kWWo)U@KG;$mJH$say&S#>MGvrvHGZCy0=F&{k~xx4_+AVoac!Fp2)?P?mYfS zy0?mUECmDMgTz$~16?hi{w=BYKu%1yEd6A|YM!lHGyj*!Ra&~RBa|d)%~&K!`@a|F z3f1LLxMtvvnLpzx3+|yFV4S5z_0&48?x>gcU}eX2 z1~a#?TGt0L(T(okqN5|_?3fntKW7mC)L-J6WqAW;W>OOuD_u8kDs%MLD0nSv&JDk< znp;)x++{X09%VLS5!Rhd+^YjLD=$o_adBtv4&dWDu#>7W{vdv13&c8~bo|lSp~k_m z4r#BDn5jsLY;Z+c;HFpWw!xt~D|;MBaVYWh9s)A8q&Vzv*In-n^fb9gdk6`_}5d!ug=o&W#4npPN<+8ku%}&wRiZ9I%0L&UEj~rgAgj{=-7y5oW znxhjFuOJ@*!}PMBDmyFD4pg_M8&hWo^D5?cIxE$32esz`Fp4xKBg<;Ja)iT zL4wgYj)ryYz3FrDn|tQYbBc4N-%ID|8w2S!Walf8=dD+R?-J4=X9S;V0!*yTYAwgC z!?!hb!~r{6HI;q_dL=4RR=s8giMOfD@k`(3p}Q`q6ZjSs z#Frbu{VFO0{Hp{K+ZQ4(OpNQ+1deT%>@L*9w-fpY+?*Xs6NDiT;`Y`7^cPJeVT?odw*E z7;g6ket6cn96OK=R9rcAwoAXQkH6(N0x#);m*l`pn&7*(lV3eHVG)b}zcAaI<`;Y+ zwy$nzV3Tc!PyW9(mmot12R5m(y3?pp3HVeDwX&(g z)$*}tLk+SEV#564D4Xy_wjHuQXcwzj!UQ)SQXu|N(;W3;^O{qNMIJA{kskJqh6 zj>pKVb)8S~cdY2JQk|QbW+BqQ5-pOBZ?@^<^htnsT4AtpVdGckksM{WK- z%Y7A+m3>}sb%gHF3_X2jh=Cwo>n+AeNH> zmK4ZA9z?v^9aCTVAKA5Q+5}s5^w%0nG5IhR)}j<45p2RO7XV`c4vE+ z>K8pqXep<0l&ES2Z_KQ+j*6e4d?Qdf5gW>h8jLw&{YReK`46>+<5W~qN;3BOeNAx3 zM*uso(NhDMrQb_x#16(BB6IG3Iu_pjd`z3DZ-8g;HNeLZ#{<*)J^|WKcTW#j3Bpov zvegpW&JPQUFoSw^pNZx$PYND(4Q-u~0JJDz`hsm&HJUtghl;Us6}o($S!vh0GKRcr z$7uA`+rTLtq&dC^CXX*4Jv%~!ljqKSy7(*<)AaI`-Tt94zWcXzjYjE^g6So1RrS*D zs~nDh6=70A7gEd7)|YDN@_3~Al#yGgMo=f%0mcPNM_abC_nM-#jyP%KxTA267sTzX zAzv(~Y^}6?PzvKfU+<36#0lVAWzVeC#x8y4=N@PvMJ!FHw#p4Id7DGf#pI{FLvYYl zzAB}C{~V{+^S$?A%ps^q^ZM;Akz>)4CBs4qXdTir@Yfg3iPbdp^POVMNz1i5?Oi9} z54iBj$#r>UTU3N+QU%AbJykAgGcL#ASEX6#{E4+K+gJIe(h)6PK^Je|gfGaNY`$z* z3d`2`x}CL&58w6|t-mznk62DxzUb2?v_$%%7k02%h#`H^SnjhAArIP1ItA%5#7JK( z(XHWHkmsbGy@T8)t_SYr>tS76N@AvaC1Q^5(P5>3fNa;zNp*t{R>>FS0b>y_2a0^% z0DV)KX(k8e=NCentD z7%NdL#-}=3pVBevcbw93vQp6AGAFDgl|Tcx44-~ESrUkth6P){%4zPTJ-G8@$ngdn zt~#!~l!jliZy?4oNU{ms{1aqRn7buo&yYqQWr~6E^wE8-UWo-#N8|x5qoncUN1`-=x?a6p{9x zJjxa?WG%+T#hxCsa$+Wi)x?af^Pm>i`+l1tmCX5(S0!#VL#$R>x&PTQ4v-j2{1e9= znFbG7L1p-C0P_XxtD3#Lc$?+D^I_1Xj0ai=#zP0 z5ohUEIYMx_kbn2ejz_r6@?atso`v8Zxt63b8{x;GaO|tOn;6O1a3`O!+uLz8;?*)g znj4xJjuHFqdp7VJ=+ql+biFg7QXW z2$Q5(r)k6GH;ttJ1l<$0V-t@mEb|6yC$0sX1&fBLs8`FeUe)?u`Gt?#Urigv&v}dY z`>uS(%lUr`b$|629D>dy)GUca3b|J-N6v+IXi^k3pqFJKH~0F-(sWO1qi~NzKa_j6 zW&iBDw=eg+Fh88-tE*Ys$!}OjWCVrE+N+0pZ4mC&J%mLj%U|i3^yu*S9W`)LD$PNzLr6iOaoE;f6#R;&$P$5BJU2L z1W!dwrPjuve};eu=u&%sEEhPGNE!8j0!KA|4|iJAmh3(-D^C}{x)et z)q>54`fx0fmZY+4#d-DF?4h|(Lx{vpC7rBeqV4QoH>w}<_B7c{M`f|~p%57BnkE*B zmsZUuxkN7Uf9SQft@wTs4{nt?xPLO%kRMe|6om{(%_=L~N799~Qj8zPhQPO$zoW1G-&2F)a;-fj zpnp#(x7vN0RG7|pCrV}42kzy?iT?nvbZnU3O{CGt(>!tt0T8}ni0BKwm`S z5g!FEe|&qoymKR;@4j8yuVH;lw0{GDpCm#coG0XSZoeLMsQzHRjx~yHZnBwk z*>V1u%bMd&>!|D1&s=8fOoYhbe2A0s(T%~6Se><}vXh-Fljhe;79cx~w6cw;1F@nG37I1ZRr;dfVQBWqX@!;%gPd-)}bR9k-L`3kG|1`AO z-YZ7*{L1jbRgLD+te><0cjwgfkDduui9m?H#JwDSg#S*RCzJ2!=u*f5eb>>O^NR%< zkPQ3>k=H7b0Kid-zI3HD>irX@!J{d~O$jO9O9k*Ik2(96kyjng;LWfYSL9ZC+nEL7 z4A-$Jqf>*3cGLsv*F!#a@f%q*Qqa6jHWRKuBrvIH)1`fLdMMvYfY2xzn}hJAbu{?m zt!5Y(8}@s++M*TP5B-#NNm-b7%K^rvmgMMQ=)E1qBYs)EEV##vgdus-mqzC4%4N=- zgj_gGfzfyrH&$AF6IM-u5YtE`R?FmPHABz)_uGMCs~2+kCH_pxr{_J%eMXn7%%!f0 z2*niFq3o-3tRxSNH-eLru;|}wC*cf?S`?W3dhVon$*X{E=Bl7$KtH2cg>5KRmI&t~ zrueT`o1+G0D3kVtcyah`xu^x#<;i%)f=-_B*@t=Bem6?r4nl(U@mXnzp_F^)!7qfC zDhC?qk1#4JNS%9mU@%*<-}Xg>Z1hb5!=3Zp@DTJOhJL-@&sLR$ugEApR2UptLX($# zneTnD4AEZY#r+cjxXZn=42YUOmjeUy1Bek_&OiwEA05%8DmiiW))H*AIgtkWrO^+%y;!h;4Idke{+N;&S!a@ey_Syh`1!gtB~NWsAISrl znzM)T$sJ>OmBv+_L#nVNuFf4{M04xT-rs-wI>@>Y!igr02#%h(x(a4-*4|U;38%6 zi4eoXpKAPnG(ne(=mSnp?DyV`D~THhH?t~0_{=pP zItX{L67jslw;Cw(l?W}`V&BO`4XgFUNfm|NX_2V5ooNLftZbjZljBLLiUcoyE;G*8 z4cJD-=wF))qfS{U*(@Nxtl(BYz>2llx92ANa4FMHcWywrHHVD@JlAnL(vI2kU-rvC zX>GK+`BH|Q_AeE*3s{^VyM+4cxBb;^npc{TnogO3GiMw=w%H5(uY278&-V8yARnp7 zC&6Cxye|Gq#wx-x6qp4^^IwVWs)xTl|J}dlt!e&6oLNTb+0@TQiZRPg~dbNcb`eq#?!^8``$8nI`b{EQWzao#hYR1dG%|K0z~ zP1C$iguP~jCh4#7Gv;{4iO+cGIeX{%;h@=oYP-z(=#12`P`0-~;-Y$Q&eZ8A;L9g5 zi{(ASVV-_qpOmAZf;40tx&AmSF!41%Y`r*FH`@$3Q&4`uMZ9Zr*_4lCRCA$fFu^XkeZ9+harf=wqN#Z*1wo}+w1J5A=De6wt+MB> zI$dtwyT~|C$e7m&o^aN8_K!qdHJhxPBeL~5>DDWUroB5i4IWm{rI0Nv-n#=Km+dw5 z#_YR2-#-ccfaP@dV7x8b_$0_9jL7kuq{QdBUA?^1m~uCbGmtn`DG=iE-q_<+G$x`T zkyHA(9fOJK6|h<=CxwBlSm4aP-bG9?t8!Bo0S$a#xX>7Ocox{x7J0U{tpW&+g*6B5 z@1w}>-WLnpC8EhjMDB}Z7<8*~4PCVFiKTjNX3hRa30>MBhm|M-LjC29;3E}Sq58`U zSCYQ~xOmo9>v3rqxV%V;tCwDZxivS}ZHH{#E|>ox6B0b8wh2X&O6ybq z28UheB1ovVoH%OsF7bC8(cH$abr}r&uMNwid$%rqU3Go8ko7-?#`){>%#m)#%%A_M zCULr+R9lKLlrZD;c_rM)FL-|lJ!6;89R4#Q=cz=u^IiVbD0Km_gO14&%ju(J`QJVQ z9r3FyFk>*lyty1la9k%G_8a22TG@CN;BuJkygU7tdvE$J0XJx!t6kATPdp%byE%uU z-kS3L$S7`aDy6c;(%r@Csi4z5?u2&bVpgvRnu(|7fvRB>>C(D~L1{{Xano}%@_+hT zNcr#zRZ@czRZ?ULi`>|^Mx-G70$k;E9G4?Z`>QsFdmBgU3Ewemg!bXJPQ6C^P+n4^ zpSzco!N|WBozNqkiiVKZZU|)sm^3HY3hZEN_97qu9;(PXbB2koLenT z^5SGR!Dmg~9kIcBP+Bl3@x1*dAg{4rNAa~(hkOj^6_?9$k}f#oPQ4W)yAL2FmIn@o zJo#96P8*R-P=j1i%w5K$o%;`|6od!QK(}L@BnB9E+0y(5)O%6FQ3BWG2iblezjD8s zSNPaD6U_mOwdmQ$4d|mE_~w|Ty8jlwyLzq`RFcNL6%ArW490#MItbdb;JeF~RT3%g zz~W_?sAfGMz@wX?P!N{r2%$jnb&|gnZ5SX#7%?8Ks)@g|U6hlP?U5^?%WRvjc((bt zQIfQ=a02bnra^wfCY`VtY22Ch_QA^1f&sShd#T5(!&qQIQ)@A zHCy{>ct*i6I|MqQru!cDB3Ua^6Q#*2Lc$Mv!$t*Sj24cU&$N~MuRgM>6cDpchZ9Ht zUsC=-{9lC=EB}wieh~kk`WNo_Xxds4nUJDfwoY<9u>S$nEOoCVa=z(~jnEPKZ&|ZQ zg`K{`Xf2N5p-f8)1<%gA0H8dzj!-Cbf_N0NtM9kvu3TMBLqmvl zEGbrs_OJdGdKs9(?^wd>m9}1ofmgwRpORd-GVJUDi{&S`TRNu@KC#EIE_WV#L6#$g zV)OT9O5!UqXZ^i@n8b&#=S3&6%ou|?PL0D0Q*Gs1$Io#^lq}8E)xY3de72H!q{iWi zf8-jdTY06#-{U$8TgpfswD|m_tYELi9}T(Os=!Mf4B%?|V&bMmGOcrC`kl39eFyTn z9}>Ccq-&g=5E)JuhG(i%VxA|$Vin}xY{a0jm^H&~mPg4xQ0S%7Be!Pc2N`tfm#cKu zM)h^$jdujaw|SwlyleXS)c@;ycxbzLugz(Ihj^x{D7d@ycnZOw4+_Zi=jHS;9aHg6!PJzVQF^FHI- zJxlq!wSEDwGN87IsvWxDsB!tUP|M7Qik|MSaB*ranZrG~$sIHO^46YAlvM`&3vg0#gIAJ<9dV zBaD->^Xss59M#vx>#1DcxXrvpC2SD7*E?NU)8}lA6mq`l8Jkz z6z_*}V={f9Mj|4;ZO7o^9gjrhY}s$9k@`H1Wzg%drQ-fHAiZgn5Kfp3JzYt-i;-GhuMdosg`&_PEmj$M!UfF+q{*mrx z;;WB%1b2(qw~KGV@VmtqWT`X7F;fv#5qf?*C>Qa|JV=K0K!mtn=LB`LQFg6B;jfv% z{BQYvl?FxKHLMv++iPz&{;n@cR}|y9(8OPgb_5W*pbG>Ox0D9LpNvRV?Z`~QpT^g2 zJzrHPE}rjsr_okxPWxB!`chWIM9bH-QUIKOZmM`Xm6*u@YdjSnOvDI|?@}42sffd5 zluVzlsU6Uxa=})xx*y+J)fW(0cvbut0W=6IJXzYtTTAQyiI}(ka4BkfSjr#0$c&=v zn^k(DFF>bTdrh}a34^c;0WA(`py9|X+;~caN^w;9}C(|a|>%#MdIli zA4t~6V5IofHPZjvvoqDx)SQx?P&B{st4v90voIAY$UzEg*HCyWNm-_td^JJ9>0h77 zCXLqK(7)b}>D_i*ct5BPm8|0Hdp}shz{+B%iNzptJ*}vvO}|rmdY|(6>iuAa2u_fd z@C!D@NePQ~itmY8nGVhR=rYD@HL(-Im@;y%B`Z2?^gAc%8qr^J=?nHM!vGcd-@%;~ zJ*Ls<;FiOxM%yG5$vMWYVOPrTGvfgcBSnk{2+=3I#kD}GN#6IiHn_LJ^S~&B3Y=T{ z8(UTDJJhG&#A%WQUs2aRhYN{ZMFP*f4f3~o-*F8acNGW!=)2yJ}PGK6}0~Sz)6ps>Na6llnzZa#=8KB$9idNJ)ozO+dR}#Aywi;b$_dBs(Uh|rLc_l$86wP?58>6o<0`)AZaCW>63$@Dl>E_6R zQkqZfA4KI=K)Oz>w6s9<#bl}tz=`Yxg$Ro!GCcTNWffzai%paJiR+>%auwp~%0hY#|F} z3LpU7A0j(tlsvuzZ z6>HcM!KyZzd!4vD?D37X&_Ma^*Br6Qv5Q+Hk;~VU9W-}NN58S8Z#MI%DNE`CPcOIt zt1--|t4ETdbaIu_I*AU%E=ptvLjk`?3OEQZHJ$v~U>;NlC8`H~FTSGqcI>6AQe0yk z;EkDh=f$C2j+PaHam^HuAQpvOyO78zDYL?aDtUjPX-HD7M?p4$USQH4_1X!79)n|- zo%xrPUUX6@H@C)oXLu6V0oZG~hOwOA(;ItamYO4)AnTOofm*w@FhzfJM5)|;pzyJ) zjoPe`&CH{+UPSls7cGq4Q&QVk+6>L>gr)q_R%Xd9sZ!U@6CPv4>jD{f%EwX>FXun& zsc|jj&^?s+JP+=9S$_FxH&>y|&%AKLkA{LtfP$l<^*3wI_#ee%vJB%^0RoN$9m?V( z z6K{|;=!D>O&clA!*hq-?=1B9g+`CQ$oXngtQL}x~+uRu-xpp^a>)EGFsVdO5KA&h0 zX{%scc)$dP#qT8>bML=Wv9A5JIY;u5|Pez2AW z0Ic0!*dx;)AScl+$@b1ljfQ>}wTLCsG+aM0t)p8)d^Jxg}NB3yT85QOK E08Ks{{r~^~ diff --git a/tests/test_data/Ex4_weather.rds b/tests/test_data/Ex4_weather.rds index 1a2085a3682fe35e60e4b5b3fef1076d044386b8..829787815a400bef8e722674062389087913425a 100644 GIT binary patch delta 26 icmex%p5@zlmI)IXWg91Lox~WU&XIp;&AtaqSQ!AToeSIm delta 26 icmex%p5@zlmI)IXr5h)0ox~WU&XFCo;L?L7tPB9CXA5os diff --git a/tests/test_data/Ex5_input.rds b/tests/test_data/Ex5_input.rds index ecd796549e26397908971796dcc3a529af22a6a9..252b98b01d510de1b2ea35240362edad83143f84 100644 GIT binary patch literal 5551 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 literal 5549 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 diff --git a/tests/test_data/Ex5_output.rds b/tests/test_data/Ex5_output.rds index bf88b69cd56664cd90386ef6bc83805bf5961e20..27d75d2c7e6063b4c05602952eab70a9b191a77b 100644 GIT binary patch literal 57372 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ℜH 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 literal 10152 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 cg##wP$@cYG=o8 Date: Fri, 22 Jul 2022 09:03:33 -0400 Subject: [PATCH 073/238] Improve code style --- src/rSW_Control.c | 8 +- .../test_WeatherGenerator_functionality.R | 122 ++++++++++++------ tests/testthat/test_class_swSite.R | 41 ++++-- 3 files changed, 115 insertions(+), 56 deletions(-) diff --git a/src/rSW_Control.c b/src/rSW_Control.c index 1c47a303..b3e82cf2 100644 --- a/src/rSW_Control.c +++ b/src/rSW_Control.c @@ -63,8 +63,12 @@ void rSW_CTL_obtain_inputs(Bool from_files) { } else { //Use R data to set the data #ifdef RSWDEBUG - if (debug) swprintf("'rSW_CTL_obtain_inputs': Copy data from rSOILWAT2 S4 " - "'InputData' object to SOILWAT2 variables:"); + if (debug) { + swprintf( + "\n'rSW_CTL_obtain_inputs': Copy data from rSOILWAT2 S4 " + "'InputData' object to SOILWAT2 variables:" + ); + } #endif onSet_SW_F(GET_SLOT(InputData, install("files"))); diff --git a/tests/testthat/test_WeatherGenerator_functionality.R b/tests/testthat/test_WeatherGenerator_functionality.R index e31bf645..25630f7a 100644 --- a/tests/testthat/test_WeatherGenerator_functionality.R +++ b/tests/testthat/test_WeatherGenerator_functionality.R @@ -28,14 +28,22 @@ test_that("Weather generator: estimate input parameters", { test_df <- data.frame(dbW_weatherData_to_dataframe(test_dat, valNA = NULL)) if (anyNA(test_df)) { - expect_warning(res <- dbW_estimate_WGen_coefs(test_df, - propagate_NAs = TRUE), - "Insufficient weather data to estimate values") + expect_warning( + res <- dbW_estimate_WGen_coefs( + test_df, + propagate_NAs = TRUE + ), + "Insufficient weather data to estimate values" + ) - expect_message(res <- dbW_estimate_WGen_coefs(test_df, - propagate_NAs = FALSE, - imputation_type = "mean"), - "Impute missing") + expect_message( + res <- dbW_estimate_WGen_coefs( + test_df, + propagate_NAs = FALSE, + imputation_type = "mean" + ), + "Impute missing" + ) } else { res <- dbW_estimate_WGen_coefs(test_df) @@ -48,8 +56,14 @@ test_that("Weather generator: estimate input parameters", { # validity tests ok sw_in <- rSOILWAT2::sw_exampleData - expect_equal(swMarkov_Prob(sw_in) <- res[["mkv_doy"]], res[["mkv_doy"]]) - expect_equal(swMarkov_Conv(sw_in) <- res[["mkv_woy"]], res[["mkv_woy"]]) + expect_equal( + swMarkov_Prob(sw_in) <- res[["mkv_doy"]], + res[["mkv_doy"]] + ) + expect_equal( + swMarkov_Conv(sw_in) <- res[["mkv_woy"]], + res[["mkv_woy"]] + ) } }) @@ -63,25 +77,34 @@ test_that("Weather generator: generate weather", { wout <- list() # Case 1: generate weather for dataset and impute missing values - wout[[1]] <- dbW_generateWeather(test_dat, + wout[[1]] <- dbW_generateWeather( + test_dat, imputation_type = "mean", - imputation_span = 5) + imputation_span = 5 + ) # Case 2: generate weather based on partial dataset, # use estimated weather generator coefficients from full dataset - wgen_coeffs <- dbW_estimate_WGen_coefs(test_dat, + wgen_coeffs <- dbW_estimate_WGen_coefs( + test_dat, imputation_type = "mean", - imputation_span = 5) - wout[[2]] <- dbW_generateWeather(test_dat[(n - 5):n], + imputation_span = 5 + ) + + wout[[2]] <- dbW_generateWeather( + test_dat[(n - 5):n], years = years[length(years)] + 0:10 - 5, - wgen_coeffs = wgen_coeffs) + wgen_coeffs = wgen_coeffs + ) # Case 3: generate weather based only on estimated weather generator # coefficients from full dataset x_empty <- list(new("swWeatherData")) - wout[[3]] <- dbW_generateWeather(x_empty, + wout[[3]] <- dbW_generateWeather( + x_empty, years = years[length(years)] + 30:40, - wgen_coeffs = wgen_coeffs) + wgen_coeffs = wgen_coeffs + ) # Expectations for (k in seq_along(wout)) { @@ -101,7 +124,8 @@ test_that("Weather generator: generate weather", { check_weather( weather = wdf, required_variables = c("DOY", "Tmax_C", "Tmin_C", "PPT_cm") - )) + ) + ) # There are no missing data expect_false(anyNA(wdf)) @@ -112,8 +136,12 @@ test_that("Weather generator: generate weather", { test_that("Weather generator (integration tests): compare input/output", { - skip_if_not(identical(tolower(Sys.getenv("RSOILWAT_INTEGRATIONTESTS")), - "true")) + skip_if_not( + identical( + tolower(Sys.getenv("RSOILWAT_INTEGRATIONTESTS")), + "true" + ) + ) dir_inttests <- file.path("..", "rSOILWAT_IntegrationTestOutput") dir.create(dir_inttests, showWarnings = FALSE) @@ -139,30 +167,42 @@ test_that("Weather generator (integration tests): compare input/output", { swMarkov_Conv(sw_in) <- res[["mkv_woy"]] set_swWeatherData(sw_in) <- new("swWeatherData") - wgen_df <- replicate(N, { - res <- sw_exec(inputData = sw_in) - - out <- lapply(time_steps, function(it) { - temp <- slot(slot(res, "TEMP"), it) - - data.frame( - if (it == "Year") { - temp[, "Year", drop = FALSE] - } else { - temp[, c("Year", it)] - }, - Tmax_C = temp[, "max_C"], - Tmin_C = temp[, "min_C"], - PPT_cm = slot(slot(res, "PRECIP"), it)[, "ppt"] + wgen_df <- replicate( + N, + { + res <- sw_exec(inputData = sw_in) + + out <- lapply( + time_steps, + function(it) { + temp <- slot(slot(res, "TEMP"), it) + + data.frame( + if (it == "Year") { + temp[, "Year", drop = FALSE] + } else { + temp[, c("Year", it)] + }, + Tmax_C = temp[, "max_C"], + Tmin_C = temp[, "min_C"], + PPT_cm = slot(slot(res, "PRECIP"), it)[, "ppt"] + ) + } ) - }) - names(out) <- time_steps - out - }, simplify = FALSE) + names(out) <- time_steps + out + }, + simplify = FALSE + ) #--- Comparison - compare_weather(ref_weather = obs_df, weather = wgen_df, N = N, - path = dir_inttests, tag = "IntegrationTest-WeatherGenerator") + compare_weather( + ref_weather = obs_df, + weather = wgen_df, + N = N, + path = dir_inttests, + tag = "IntegrationTest-WeatherGenerator" + ) }) diff --git a/tests/testthat/test_class_swSite.R b/tests/testthat/test_class_swSite.R index a6b9ee82..20a4c394 100644 --- a/tests/testthat/test_class_swSite.R +++ b/tests/testthat/test_class_swSite.R @@ -24,8 +24,10 @@ test_that("Manipulate 'swSite' class", { expect_equal(xinput, xinput2) #--- Slot 'ModelCoefficients' - expect_equal(swSite_ModelCoefficients(xinput), - swSite_ModelCoefficients(get_swSite(xinput))) + expect_equal( + swSite_ModelCoefficients(xinput), + swSite_ModelCoefficients(get_swSite(xinput)) + ) mc <- mc_ok <- swSite_ModelCoefficients(xinput2) expect_equal(swSite_ModelCoefficients(xinput2), mc) @@ -33,8 +35,10 @@ test_that("Manipulate 'swSite' class", { mc["PETmultiplier"] <- 4 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) mc["PETmultiplier"] <- -1 expect_error(swSite_ModelCoefficients(site1) <- mc) @@ -44,8 +48,10 @@ test_that("Manipulate 'swSite' class", { mc["DailyRunoff"] <- 0.9 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) mc["DailyRunoff"] <- -1 expect_error(swSite_ModelCoefficients(site1) <- mc) @@ -59,16 +65,20 @@ test_that("Manipulate 'swSite' class", { mc["DailyRunon"] <- 4 swSite_ModelCoefficients(site1) <- mc swSite_ModelCoefficients(xinput2) <- mc - expect_equal(swSite_ModelCoefficients(xinput2), - swSite_ModelCoefficients(site1)) + expect_equal( + swSite_ModelCoefficients(xinput2), + swSite_ModelCoefficients(site1) + ) mc["DailyRunon"] <- -1 expect_error(swSite_ModelCoefficients(site1) <- mc) expect_error(swSite_ModelCoefficients(xinput2) <- mc) #--- Slot TranspirationRegions - expect_equal(swSite_TranspirationRegions(xinput), - swSite_TranspirationRegions(get_swSite(xinput))) + expect_equal( + swSite_TranspirationRegions(xinput), + swSite_TranspirationRegions(get_swSite(xinput)) + ) mc <- mc_ok <- swSite_TranspirationRegions(xinput2) expect_equal(swSite_TranspirationRegions(xinput2), mc) @@ -97,8 +107,13 @@ test_that("Run 'rSOILWAT2' with different 'swSite' inputs", { # Run SOILWAT expect_s4_class( - sw_exec(inputData = sw_input, weatherList = sw_weather, echo = FALSE, - quiet = TRUE), - "swOutput") + sw_exec( + inputData = sw_input, + weatherList = sw_weather, + echo = FALSE, + quiet = TRUE + ), + "swOutput" + ) } }) From b2c8bc9bf675368e94e14c73fdb9431dba00e9e5 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 08:10:36 -0400 Subject: [PATCH 074/238] Enhance tests "Simulate and aggregate" - Expectation that input weather is identical to output weather was previously checked only if weather generator is turned off -> now, this expectation is checked even if the weather generator is turned on (but restricted to days that were not generated) --- tests/testthat/test_exec_and_aggregate.R | 42 ++++++++++++++---------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/tests/testthat/test_exec_and_aggregate.R b/tests/testthat/test_exec_and_aggregate.R index 250aa756..e546cf8a 100644 --- a/tests/testthat/test_exec_and_aggregate.R +++ b/tests/testthat/test_exec_and_aggregate.R @@ -185,24 +185,30 @@ for (it in tests) { } - # Check that input weather is identical to output weather (unless weather - # generator is turned on) - if (!swWeather_UseMarkov(sw_input)) { - # Precipitation - sim <- slot(slot(rd, "PRECIP"), "Day")[, "ppt"] - obs <- dbW_df_day[, "PPT_cm"] - expect_equal(sim, obs, info = info1) - - # Tmin - sim <- slot(slot(rd, "TEMP"), "Day")[, "min_C"] - obs <- dbW_df_day[, "Tmin_C"] - expect_equal(sim, obs, info = info1) - - # Tmax - sim <- slot(slot(rd, "TEMP"), "Day")[, "max_C"] - obs <- dbW_df_day[, "Tmax_C"] - expect_equal(sim, obs, info = info1) - } + # Check that input weather is identical to output weather + # (don't check missing days that the weather generator filled in) + is_obs <- complete.cases(dbW_df_day) + + # Precipitation + expect_equal( + slot(slot(rd, "PRECIP"), "Day")[is_obs, "ppt"], + dbW_df_day[is_obs, "PPT_cm"], + info = info1 + ) + + # Tmin + expect_equal( + slot(slot(rd, "TEMP"), "Day")[is_obs, "min_C"], + dbW_df_day[is_obs, "Tmin_C"], + info = info1 + ) + + # Tmax + expect_equal( + slot(slot(rd, "TEMP"), "Day")[is_obs, "max_C"], + dbW_df_day[is_obs, "Tmax_C"], + info = info1 + ) # Loop through output From db1578fc22a24009b5320ee20e700052b5d802ca Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 08:15:27 -0400 Subject: [PATCH 075/238] New tests to check example data - check expectation that example data are indeed behaving as they were defined to do (see script data-raw/prepare_testInput_objects.R) -> checks for example2 are currently failing because no weather is missing --> this is because recent commit 2c64be51116b32584d085f572e68dcc85954547e applies the weather generator during obtaining weather data - see issue https://github.com/DrylandEcology/rSOILWAT2/issues/203 "Reconsider test examples 1-5" (example3 and example4 are identical to example1) --- tests/testthat/test_testInputs.R | 81 ++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/testthat/test_testInputs.R diff --git a/tests/testthat/test_testInputs.R b/tests/testthat/test_testInputs.R new file mode 100644 index 00000000..a467d553 --- /dev/null +++ b/tests/testthat/test_testInputs.R @@ -0,0 +1,81 @@ +testthat::local_edition(3L) + +#------ Check that test inputs conform to specifications ------ +# see data-raw/prepare_testInput_objects.R + +dir_test_data <- file.path("..", "test_data") +temp <- list.files(dir_test_data, pattern = "Ex") +temp <- sapply(strsplit(temp, "_", fixed = TRUE), function(x) x[[1]]) +tests <- unique(temp) + +test_that("Test data availability", { + expect_gt(length(tests), 0) +}) + + +test_that("Check example data", { + swmiss <- rSW2_glovars[["kSOILWAT2"]][["kNUM"]][["SW_MISSING"]] + + for (it in tests) { + sw_input <- readRDS(file.path(dir_test_data, paste0(it, "_input.rds"))) + sw_weather <- readRDS(file.path(dir_test_data, paste0(it, "_weather.rds"))) + sw_weather_df <- dbW_weatherData_to_dataframe(sw_weather) + + yrs_sim <- seq(swYears_StartYear(sw_input), swYears_EndYear(sw_input)) + yrs_wth <- get_years_from_weatherData(sw_weather) + + + #--- Check that weather is (not) missing ------ + if (it != "Ex2") { + # not missing: no NAs, no SW_MISSING, all years + expect_identical(sum(is.na(sw_weather_df)), 0L) + expect_identical(sum(sw_weather_df == swmiss), 0L) + expect_true(all(yrs_sim %in% yrs_wth)) + + } else { + # missing: NAs, SW_MISSING, or not all years + expect_true( + sum(is.na(sw_weather_df)) > 0 || + sum(sw_weather_df == swmiss) > 0 || + !all(yrs_sim %in% yrs_wth) + ) + } + + + #--- Check that weather generator is turned off/on ------ + if (it != "Ex2") { + expect_false(swWeather_UseMarkov(sw_input)) + } else { + expect_true(swWeather_UseMarkov(sw_input)) + } + + + #--- Check that soil temperature turned on ------ + expect_true(swSite_SoilTemperatureFlag(sw_input)) + + + #--- Check that CO2-effects are turned on ------ + expect_true(as.logical(swCarbon_Use_Bio(sw_input))) + expect_true(as.logical(swCarbon_Use_WUE(sw_input))) + + + #--- Check that surface is flat/tilted ------ + if (it != "Ex5") { + # flat: slope == 0 || aspect: NA, 999 + expect_true( + isTRUE(all.equal( + swSite_IntrinsicSiteParams(sw_input)[["Slope"]], + 0 + )) || + swSite_IntrinsicSiteParams(sw_input)[["Aspect"]] %in% c(NA, swmiss) + ) + } else { + # tilted: slope > 0 && aspect: not NA, not 999 + expect_gt(swSite_IntrinsicSiteParams(sw_input)[["Slope"]], 0L) + expect_false( + swSite_IntrinsicSiteParams(sw_input)[["Aspect"]] %in% c(NA, swmiss) + ) + } + + } +}) From 238811cb4609c11db62b4d38dd893a2ce94199e4 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:27:38 -0400 Subject: [PATCH 076/238] Update submodule SOILWAT2 (generalize handling of missing weather data) --- src/SOILWAT2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOILWAT2 b/src/SOILWAT2 index 148a7cab..eefe749f 160000 --- a/src/SOILWAT2 +++ b/src/SOILWAT2 @@ -1 +1 @@ -Subproject commit 148a7caba59905bd25efe7c13a2e6ccb26864446 +Subproject commit eefe749fca9107249c0a14d0f924d40c8e4dd60f From c3308ff61a98c910781cee82d513f6973e70f92b Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:30:46 -0400 Subject: [PATCH 077/238] Propagate latest SOILWAT2 changes to C code in rSOILWAT2 - SW_Weather.generateWeatherMethod replaces SW_Weather.use_weathergenerator - `generateMissingWeather()` previously named `imputeMissingWeather()` - rename rSOILWAT2 C function from `rSW2_passAllWeather()` to `rSW2_setAllWeather()` to clarify that it sets SOILWAT2 content --- src/rSW_Markov.c | 21 +++++++++++++++------ src/rSW_Weather.c | 32 +++++++++++++++++--------------- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/src/rSW_Markov.c b/src/rSW_Markov.c index 7e667670..30b5fd2e 100644 --- a/src/rSW_Markov.c +++ b/src/rSW_Markov.c @@ -24,6 +24,7 @@ #include "SOILWAT2/Times.h" #include "SOILWAT2/SW_Files.h" +#include "SOILWAT2/SW_Weather.h" #include "SOILWAT2/SW_Markov.h" #include "rSW_Markov.h" // externs `SW_Markov` @@ -67,14 +68,22 @@ void onSet_MKV(SEXP MKV) { PROTECT(MKV_prob = GET_SLOT(MKV, install(cSW_MKV[0]))); PROTECT(MKV_conv = GET_SLOT(MKV, install(cSW_MKV[1]))); - if (!onSet_MKV_prob(MKV_prob)) { - LogError(logfp, LOGFATAL, "Markov weather generator: rSOILWAT2 failed to " - "pass `MKV_prob` values to SOILWAT2.\n"); + if (!onSet_MKV_prob(MKV_prob) && SW_Weather.generateWeatherMethod == 2) { + LogError( + logfp, + LOGFATAL, + "Markov weather generator: " + "rSOILWAT2 failed to pass `MKV_prob` values to SOILWAT2.\n" + ); } - if (!onSet_MKV_conv(MKV_conv)) { - LogError(logfp, LOGFATAL, "Markov weather generator: rSOILWAT2 failed to " - "pass `MKV_conv` values to SOILWAT2.\n"); + if (!onSet_MKV_conv(MKV_conv) && SW_Weather.generateWeatherMethod == 2) { + LogError( + logfp, + LOGFATAL, + "Markov weather generator: " + "rSOILWAT2 failed to pass `MKV_conv` values to SOILWAT2.\n" + ); } UNPROTECT(2); diff --git a/src/rSW_Weather.c b/src/rSW_Weather.c index b7da7c9c..cf13a88a 100644 --- a/src/rSW_Weather.c +++ b/src/rSW_Weather.c @@ -52,7 +52,7 @@ static char *cSW_WTH_names[] = { /* --------------------------------------------------- */ static SEXP onGet_WTH_DATA_YEAR(TimeInt year); -static void rSW2_passAllWeather( +static void rSW2_setAllWeather( SEXP listAllW, SW_WEATHER_HIST **allHist, int startYear, @@ -98,7 +98,7 @@ SEXP onGet_SW_WTH_setup() { PROTECT(pct_snowRunoff = NEW_NUMERIC(1)); REAL(pct_snowRunoff)[0] = w->pct_snowRunoff; PROTECT(use_weathergenerator = NEW_LOGICAL(1)); - LOGICAL_POINTER(use_weathergenerator)[0] = w->use_weathergenerator; + LOGICAL_POINTER(use_weathergenerator)[0] = w->generateWeatherMethod == 2; PROTECT(use_weathergenerator_only = NEW_LOGICAL(1)); LOGICAL_POINTER(use_weathergenerator_only)[0] = w->use_weathergenerator_only; PROTECT(yr_first = NEW_INTEGER(1)); @@ -163,11 +163,11 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { w->pct_snowRunoff = *REAL(pct_snowRunoff); PROTECT(use_weathergenerator = GET_SLOT(SW_WTH, install(cSW_WTH_names[3]))); - w->use_weathergenerator = (Bool) *INTEGER(use_weathergenerator); + w->generateWeatherMethod = *INTEGER(use_weathergenerator) ? 2 : 0; PROTECT(use_weathergenerator_only = GET_SLOT(SW_WTH, install(cSW_WTH_names[4]))); w->use_weathergenerator_only = (Bool) *INTEGER(use_weathergenerator_only); if (w->use_weathergenerator_only) { - w->use_weathergenerator = TRUE; + w->generateWeatherMethod = 2; } PROTECT(yr_first = GET_SLOT(SW_WTH, install(cSW_WTH_names[5]))); @@ -190,13 +190,13 @@ void onSet_SW_WTH_setup(SEXP SW_WTH) { w->yr.last = SW_Model.endyr; w->yr.total = w->yr.last - w->yr.first + 1; - if (!w->use_weathergenerator && SW_Model.startyr < w->yr.first) { + if (SW_Weather.generateWeatherMethod != 2 && SW_Model.startyr < w->yr.first) { LogError( logfp, LOGFATAL, "%s : Model year (%d) starts before weather files (%d)" - " and use_weathergenerator=swFALSE.\nPlease synchronize the years" - " or set up the Markov weather files", + " and weather generator turned off.\n" + " Please synchronize the years or set up the weather generator files", MyFileName, SW_Model.startyr, w->yr.first ); } @@ -326,7 +326,7 @@ void onSet_WTH_DATA(void) { // Equivalent to `readAllWeather()`: // fill `SOILWAT2` `allHist` with values from `rSOILWAT2` - rSW2_passAllWeather( + rSW2_setAllWeather( listAllWeather, SW_Weather.allHist, SW_Model.startyr, @@ -334,13 +334,13 @@ void onSet_WTH_DATA(void) { ); - // Impute missing values - imputeMissingWeather( + // Generate missing values + generateMissingWeather( SW_Weather.allHist, SW_Model.startyr, SW_Weather.n_years, - (Bool) SW_Weather.use_weathergenerator, - 3 // nMaxLOCF + SW_Weather.generateWeatherMethod, + 3 // optLOCF_nMax (TODO: make this user input) ); @@ -356,7 +356,9 @@ void onSet_WTH_DATA(void) { } -static void rSW2_passAllWeather( +// Equivalent to `readAllWeather()`: +// fill `SOILWAT2` `allHist` with values from `rSOILWAT2` +static void rSW2_setAllWeather( SEXP listAllW, SW_WEATHER_HIST **allHist, int startYear, @@ -373,7 +375,7 @@ static void rSW2_passAllWeather( for (yearIndex = 0; yearIndex < n_years; yearIndex++) { if (SW_Weather.use_weathergenerator_only) { - // Set values to missing for call to `imputeMissingWeather()` + // Set values to missing for call to `generateMissingWeather()` _clear_hist_weather(allHist[yearIndex]); } else { @@ -461,7 +463,7 @@ static void rSW2_passAllWeather( } } else { - // Set values to missing for call to `imputeMissingWeather()` + // Set values to missing for call to `generateMissingWeather()` _clear_hist_weather(allHist[yearIndex]); } } From 84c0be19125b238d33df2370645cc038d48b4cd2 Mon Sep 17 00:00:00 2001 From: Daniel Schlaepfer Date: Tue, 26 Jul 2022 17:51:43 -0400 Subject: [PATCH 078/238] Fix example2 weather data - previous commits caused that example2 weather data contained incorrectly no missing values (see failing new tests in commit db1578fc22a24009b5320ee20e700052b5d802ca) - now rSOILWAT2 can fix its example data sets since SOILWAT2 handles missing weather data more carefully (see commit 238811cb4609c11db62b4d38dd893a2ce94199e4) -> script "data-raw/prepare_testInput_objects.R" is much improved * it defines test cases (example data) explicitly up-front * it creates a complete and more user-friendly backup of all data that may be changed (backup folder is excluded from git and Rbuild) * binary files are only updated if they differ from previous version (based on `waldo::compare()`) * it correctly creates weather example data with missing values - despite weather generator -> updated script * "Ex2_weather.rds" is fixed (it contains again missing values -- and passes all tests) * update default input files from SOILWAT2 -> "weathsetup" gains one line of explanation for LOCF+0 * "sw_exampleData" is fixed (i.e., it (again) does not contain Markov weather generator paramaters) --- .Rbuildignore | 1 + .gitignore | 1 + data-raw/prepare_testInput_objects.R | 413 ++++++++++++++++------ data/sw_exampleData.rda | Bin 54029 -> 54036 bytes inst/extdata/example1/Input/weathsetup.in | 1 + tests/test_data/Ex2_weather.rds | Bin 197319 -> 9162 bytes 6 files changed, 309 insertions(+), 107 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 940ebe77..3996dc57 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -2,6 +2,7 @@ ^CODE_OF_CONDUCT\.md$ ^Meta$ ^doc$ +^backup$ ^data-raw$ \.git* ^\.travis\.yml$ diff --git a/.gitignore b/.gitignore index cf1e468d..0886c41b 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ Thumbs.db rSOILWAT2.Rcheck rSOILWAT_IntegrationTestOutput/ tests/spelling.Rout.save +backup/ # Package build files *tar.gz diff --git a/data-raw/prepare_testInput_objects.R b/data-raw/prepare_testInput_objects.R index 1408724f..b91b2adc 100755 --- a/data-raw/prepare_testInput_objects.R +++ b/data-raw/prepare_testInput_objects.R @@ -1,162 +1,342 @@ #!/usr/bin/env Rscript -#--- rSOILWAT2: use development version +# Run this script from the top-level of the source package, e.g., +# ``` +# cd rSOILWAT2/ +# Rscript data-raw/prepare_testInput_objects.R +# ``` + +#--- Load development version of rSOILWAT2 ------ # load package "methods" in case this script is run via 'Rscript' library("methods") # nolint: unused_import_linter. + # these packages are not listed by `rSOILWAT2`: +# nolint start: missing_package_linter. stopifnot( - requireNamespace("pkgbuild"), # nolint: missing_package_linter. - requireNamespace("pkgload"), # nolint: missing_package_linter. - requireNamespace("usethis") # nolint: missing_package_linter. + requireNamespace("pkgbuild"), + requireNamespace("pkgload"), + requireNamespace("usethis"), + requireNamespace("waldo") ) +# nolint end -pkgbuild::clean_dll() # nolint: namespace_linter. -pkgload::load_all() # nolint: namespace_linter. +# nolint start: namespace_linter. +pkgbuild::clean_dll() +pkgload::load_all() +# nolint end -#--- INPUTS -dSOILWAT2_inputs <- "testing" -dir_orig <- file.path("src", "SOILWAT2", dSOILWAT2_inputs) -dir_in <- file.path("inst", "extdata") -dir_backup <- sub("extdata", "extdata_copy", dir_in, fixed = TRUE) -dir_out <- file.path("tests", "test_data") +#--- Define tests/examples ------ tests <- 1:5 examples <- paste0("example", tests) +cns <- c("WeatherGenerator", "SoilTemp", "CO2Effects", "TiltedSurface") +define_ex <- rbind( + ex1 = c(FALSE, TRUE, TRUE, FALSE), + ex2 = c(TRUE, TRUE, TRUE, FALSE), + ex3 = c(FALSE, TRUE, TRUE, FALSE), + ex4 = c(FALSE, TRUE, TRUE, FALSE), + ex5 = c(FALSE, TRUE, TRUE, TRUE) +) +colnames(define_ex) <- cns -#----------------------- -#--- BACKUP PREVIOUS FILES -print(paste("Create backup of ", shQuote(dir_in), " as", shQuote(dir_backup))) -dir.create(dir_backup, showWarnings = FALSE) -stopifnot(dir.exists(dir_backup)) -file.copy( - from = dir_in, - to = dir_backup, - recursive = TRUE, - copy.mode = TRUE, - copy.date = TRUE + +#--- Inputs ------ +dSOILWAT2_inputs <- "testing" +dir_orig <- file.path("src", "SOILWAT2", dSOILWAT2_inputs) +dir_backup <- "backup" +dir_extdata <- file.path("inst", "extdata") +dir_pkgdata <- "data" +dir_testdata <- file.path("tests", "test_data") + +list_backups <- lapply( + c(dir_extdata, dir_pkgdata, dir_testdata), + function(x) { + list( + orig = x, + delete_orig = if (identical(x, dir_extdata)) { + list.files(x, full.names = TRUE) + } + ) + } ) -unlink(dir_in, recursive = TRUE) -dir.create(dir_in, showWarnings = FALSE) -stopifnot(dir.exists(dir_in)) -#----------------------- -#--- COPY AND CREATE EXTDATA EXAMPLES FROM ORIGINAL SOILWAT2 INPUTS -for (it in seq_along(tests)) { + + +#--- Backup previous version ------ +dir.create(dir_backup, recursive = TRUE, showWarnings = FALSE) +stopifnot(dir.exists(dir_backup)) + +for (k in seq_along(list_backups)) { + message( + "Create backup of ", shQuote(list_backups[[k]][["orig"]]), + " at ", shQuote(dir_backup) + ) + file.copy( - from = dir_orig, - to = dir_in, + from = list_backups[[k]][["orig"]], + to = dir_backup, recursive = TRUE, copy.mode = TRUE, copy.date = TRUE ) - file.rename( - from = file.path(dir_in, dSOILWAT2_inputs), - to = file.path(dir_in, examples[it]) + + unlink( + list_backups[[k]][["delete_orig"]], + recursive = TRUE ) + + dir.create(list_backups[[k]][["orig"]], showWarnings = FALSE) + stopifnot(dir.exists(list_backups[[k]][["orig"]])) } -# example1: default run - # nothing to do -# example2: use Markov weather generator - # Turn on weather generator - ftemp <- file.path(dir_in, examples[2], "Input", "weathsetup.in") - fin <- readLines(ftemp) - line <- grep("Activate/deactivate weather generator", fin, ignore.case = TRUE) +#------ Helper functions ----- +toggleWeatherGenerator <- function(path, activate = FALSE) { + ftmp <- file.path(path, "Input", "weathsetup.in") + fin <- readLines(ftmp) + line <- grep( + "Activate/deactivate weather generator", + fin, + ignore.case = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) - substr(fin[line + 1], 1, 1) <- "1" - writeLines(fin, con = ftemp) + substr(fin[line + 1], 1, 1) <- if (activate) "1" else "0" + writeLines(fin, con = ftmp) +} - # Use partial weather data +setPartialWeatherData <- function(path) { unlink( - file.path(dir_in, examples[2], "Input", "data_weather"), + file.path(path, "Input", "data_weather"), recursive = TRUE ) - ftemp <- file.path(dir_in, examples[2], "files.in") - fin <- readLines(ftemp) - line <- grep("historical weather data", fin, ignore.case = TRUE) + ftmp <- file.path(path, "files.in") + fin <- readLines(ftmp) + line <- grep( + "historical weather data", + fin, + ignore.case = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) fin[line] <- sub( file.path("Input", "data_weather", "weath"), file.path("Input", "data_weather_missing", "weath"), x = fin[line] ) - writeLines(fin, con = ftemp) - + writeLines(fin, con = ftmp) +} -# example3: use soil temperature - ftemp <- file.path(dir_in, examples[3], "Input", "siteparam.in") - fin <- readLines(ftemp) - line <- grep("flag, 1 to calculate soil_temperature", fin, fixed = TRUE) +toggleSoilTemperature <- function(path, activate = TRUE) { + ftmp <- file.path(path, "Input", "siteparam.in") + fin <- readLines(ftmp) + line <- grep( + "flag, 1 to calculate soil_temperature", + fin, + fixed = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) - substr(fin[line], 1, 1) <- "1" - writeLines(fin, con = ftemp) + substr(fin[line], 1, 1) <- if (activate) "1" else "0" + writeLines(fin, con = ftmp) +} -# example4: turn on CO2-effects - ftemp <- file.path(dir_in, examples[4], "Input", "siteparam.in") - fin <- readLines(ftemp) - line <- grep("biomass multiplier", fin, fixed = TRUE) +toggleCO2Effects <- function(path, activate = TRUE) { + ftmp <- file.path(path, "Input", "siteparam.in") + fin <- readLines(ftmp) + line <- grep( + "biomass multiplier", + fin, + fixed = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) - substr(fin[line + 1], 1, 1) <- "1" - line <- grep("water-usage efficiency multiplier", fin, fixed = TRUE) + substr(fin[line + 1], 1, 1) <- if (activate) "1" else "0" + line <- grep( + "water-usage efficiency multiplier", + fin, + fixed = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) - substr(fin[line + 1], 1, 1) <- "1" - writeLines(fin, con = ftemp) + substr(fin[line + 1], 1, 1) <- if (activate) "1" else "0" + writeLines(fin, con = ftmp) +} + +toggleSurfaceTilt <- function(path, tilt = FALSE, slope = 30, aspect = -45) { + ftmp <- file.path(path, "Input", "siteparam.in") + fin <- readLines(ftmp) -# example5: tilted surface - ftemp <- file.path(dir_in, examples[5], "Input", "siteparam.in") - fin <- readLines(ftemp) line <- grep("slope (degrees)", fin, fixed = TRUE) stopifnot(length(line) == 1, line > 0, line < length(fin)) - fin[line] <- paste0("30", substr(fin[line], 2, nchar(fin[line]))) - line <- grep("aspect = surface azimuth angle (degrees)", fin, fixed = TRUE) + tmp <- if (tilt) as.character(slope) else "0" + stopifnot(nchar(tmp) <= 2) + substr(fin[line], 1, 2) <- paste0( + tmp, + rep("\t", max(0, 2 - nchar(tmp))), + collapse = "" + ) + + line <- grep( + "aspect = surface azimuth angle (degrees)", + fin, + fixed = TRUE + ) stopifnot(length(line) == 1, line > 0, line < length(fin)) - substr(fin[line], 1, 3) <- "-45" - writeLines(fin, con = ftemp) + tmp <- if (tilt) as.character(aspect) else "NAN" + stopifnot(nchar(tmp) <= 4) + substr(fin[line], 1, 4) <- paste0( + tmp, + rep("\t", max(0, 4 - nchar(tmp))), + collapse = "" + ) + writeLines(fin, con = ftmp) +} +#------- Loop over examples/tests, setup, and create test objects------ +for (it in seq_along(tests)) { + message("\n", examples[it], " ----------------------------------") + dir_ex <- file.path(dir_extdata, examples[it]) -#----------------------- -#--- USE DEFAULT EXTDATA EXAMPLE AS PACKAGE DATA -sw_exampleData <- rSOILWAT2::sw_inputDataFromFiles( - file.path(dir_in, examples[1]), - files.in = "files.in" -) -# nolint start: namespace_linter. -usethis::use_data(sw_exampleData, internal = FALSE, overwrite = TRUE) -# nolint end + #--- Create raw example input files from original SOILWAT2 inputs ------ + file.copy( + from = dir_orig, + to = dir_extdata, + recursive = TRUE, + copy.mode = TRUE, + copy.date = TRUE + ) + file.rename( + from = file.path(dir_extdata, dSOILWAT2_inputs), + to = dir_ex + ) + + + + #--- Modify input files for tests ------ + #--- * example1: default run ------ + + #--- * example2: use Markov weather generator ------ + if (define_ex[it, "WeatherGenerator"]) { + toggleWeatherGenerator(dir_ex, activate = TRUE) + setPartialWeatherData(dir_ex) + } + + #--- * example4: turn on CO2-effects ------ + toggleCO2Effects(dir_ex, activate = define_ex[it, "CO2Effects"]) + + #--- * example3: use soil temperature ------ + toggleSoilTemperature(dir_ex, activate = define_ex[it, "SoilTemp"]) + + #--- * example5: tilted surface ------ + toggleSurfaceTilt(dir_ex, tilt = define_ex[it, "TiltedSurface"]) + + + + #--- Base unit tests on default SOILWAT2 inputs ------ -#----------------------- -#--- USE EXTDATA EXAMPLES AS BASIS FOR UNIT-TESTS -for (it in seq_along(tests)) { #---rSOILWAT2 inputs using development version sw_input <- rSOILWAT2::sw_inputDataFromFiles( - dir = file.path(dir_in, examples[it]), + dir = dir_ex, files.in = "files.in" ) - sw_weather <- slot(sw_input, "weatherHistory") - slot(sw_input, "weatherHistory") <- list(new("swWeatherData")) - #---Files for unit testing - saveRDS( - object = sw_weather, - file = file.path(dir_out, paste0("Ex", tests[it], "_weather.rds")) + #--- Use default SOILWAT2 data as (default) package data ------ + if (it == 1) { + sw_exampleData <- sw_input + + # Compare to previous version + res_cmp <- waldo::compare(rSOILWAT2::sw_exampleData, sw_exampleData) + + # Ignore "timestamp" + has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) + + # Save default package data (if different from previous) + if (length(res_cmp) > sum(has_timestamp_diff)) { + print(res_cmp) + + message("Update default package data: 'sw_exampleData'") + + # nolint start: namespace_linter. + usethis::use_data(sw_exampleData, internal = FALSE, overwrite = TRUE) + # nolint end + } + } + + + #--- Obtain weather data ------ + sw_weather <- if (define_ex[it, "WeatherGenerator"]) { + # Deal with weather generator (obtain weather input with missing values) + toggleWeatherGenerator(dir_ex, activate = FALSE) + + sw_input2 <- rSOILWAT2::sw_inputDataFromFiles( + dir = dir_ex, + files.in = "files.in" + ) + + slot(sw_input2, "weatherHistory") + + } else { + slot(sw_input, "weatherHistory") + } + + #--- Compare weather to previous version + res_cmp <- waldo::compare( + readRDS( + file.path( + dir_backup, + basename(dir_testdata), + paste0("Ex", tests[it], "_weather.rds") + ) + ), + sw_weather ) - saveRDS( - object = sw_input, - file = file.path(dir_out, paste0("Ex", tests[it], "_input.rds")) + + + #--- Save weather for unit testing (if different from previous) + if (length(res_cmp) > 0) { + print(res_cmp) + + saveRDS( + object = sw_weather, + file = file.path(dir_testdata, paste0("Ex", tests[it], "_weather.rds")) + ) + } + + + #--- Compare input to previous version + slot(sw_input, "weatherHistory") <- list(new("swWeatherData")) + + res_cmp <- waldo::compare( + readRDS( + file.path( + dir_backup, + basename(dir_testdata), + paste0("Ex", tests[it], "_input.rds") + ) + ), + sw_input ) + # Ignore "timestamp" + has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) + + #--- Save input for unit testing (if different from previous) + if (length(res_cmp) > sum(has_timestamp_diff)) { + print(res_cmp) - #--- Run with yearly output and save it + saveRDS( + object = sw_input, + file = file.path(dir_testdata, paste0("Ex", tests[it], "_input.rds")) + ) + } + + + #--- Run rSOILWAT2 with yearly output and save it as reference output if (!rSOILWAT2::swWeather_UseMarkov(sw_input)) { rSOILWAT2::swOUT_TimeStepsForEveryKey(sw_input) <- 3 @@ -167,23 +347,42 @@ for (it in seq_along(tests)) { quiet = TRUE ) - saveRDS( - object = rdy, - file = file.path(dir_out, paste0("Ex", tests[it], "_output.rds")) + #--- Compare ouput to previous version + res_cmp <- waldo::compare( + readRDS( + file.path( + dir_backup, + basename(dir_testdata), + paste0("Ex", tests[it], "_output.rds") + ) + ), + rdy ) + + # Ignore "timestamp" + has_timestamp_diff <- grepl("timestamp", res_cmp, fixed = TRUE) + + # Save test output (if different from previous) + if (length(res_cmp) > sum(has_timestamp_diff)) { + print(res_cmp) + + saveRDS( + object = rdy, + file = file.path(dir_testdata, paste0("Ex", tests[it], "_output.rds")) + ) + } } -} -#----------------------- -#--- DELETE ALL BUT DEFAULT EXAMPLE FROM PACKAGE (to minimize space) -for (it in seq_along(tests)[-1]) { - unlink(file.path(dir_in, examples[it]), recursive = TRUE) + #--- Only keep default SOILWAT2 files as example input files ------ + if (it != 1) { + unlink(file.path(dir_ex), recursive = TRUE) + } } -#----------------------- -print(paste( - "NOTE: Remove", + +message( + "NOTE: Remove ", shQuote(dir_backup), - "before pushing to repository if script worked well." -)) + " before pushing to repository if script worked well." +) diff --git a/data/sw_exampleData.rda b/data/sw_exampleData.rda index 01e1ea2f4bf47636500122dca45055b991faeddf..8ed3bfabfed3170eec2387418000f5830911d69b 100644 GIT binary patch delta 53696 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 tR zd%JDas;N>!t7^%M8;*7acIn#FoZr9~!oc@VTx{Xvm>kbTZz@AlV_GA5DH>u_**-5o z)`*MoZ=9_%sxZtA6bvJp&X)z>HRyY9GaXH&$7J3qG^PyG0EpFc)(+Z1$8(BtLNW0o9Qnxl<@TG*(uq2 zy|+p1dpg~E+Sjg8uPx{i*!r(z@a^pEf5WEYG^Ma(WpQbr^7RAQK7&?l2nao_QWMRB zhF}Ddl>0y=Fn|C6DZVa$=|xz82ndJj>V3s3Nh+#+6x}o?_U&EEzTWp{=y1=er*jCL z>D5wNes3DewyoaV?BvwX##>(cauYIm_Nt10wjA3RKaEn1`j_l#lQyjriyRfUf77Ba zhO8i83R}42-=A4&STahbuQcby!Mx_I-HBpbi^y~{vFN&8Jm*chwRqiB%{m+>Wz%cv z`amC_K$X+l)vl3iu!ylchb(&R|* z9vn1C%ux0o%9bO0i+=0v;LO;_mX8x&C&3t{u}wpl=&c?C zv22ip%bB7f`~@fRsqo19W1cn99Oe7&n#pUM_tHr}HHTXieS3e6Cz89z>6|ACB#-y{ za#kPA9J4{Iu6Ii*UgW>>RS>ILK3#IveNL)&tf;*8wa|`uSbgl2r1r?j%Gn!|oN%JdZNFWV<&OB< zuu6t2W^~h4`Q08mSEn@<)_?4F7NNqZ^1=lx)tg43k%5v-g_5n7D~@_$V)GX2xfbax zqfd7wU#0ynl$)E^*OGW0fwuk0MNx+wlWmpuNgeo2uwIklGfF*~xhd*|ru~vGGJLrH zmK6a7K3*kb$>+FM+uXLy{%2pJoj;NXz* zZnRQQ%(na6=LgH6PV2Ssd>t?p_to@0kiML&*Sc` z)>?^HUcxQ%0m1J5;QlFO?e|}0K<-lz0K&L{1FwmE)c&8q8ABi3`M@&;6;GCWtS@Y@ zzZP!p>Eh>NY@DD+IZzyGkWO}>O!{eP3hR~y?alL8w;PStf`1*aPu(rs*na7N`cvHX z{iQS57HjrVh~J=4YuD^CzjVE)zqjqZvV-^|Dnnkl_D4R@HM~SQ$8OG017a({sML%E zQpgXS5IMj{?wF5s4}d_D2k1F40Hi2Mv+)T5Yw4i9FQFO^Da$U^1gQm z1Chkyfa;y3EPoHey@Ao%s|2-N00G7x&tui?`VY6t=np7|07M`R17~;jv1JtI?dR7xirQ@4MeV|- z-ShICP)8ma^HrphfJPu70T7BV*N3m_A8|Sa`wHxd_&h)+o+35)gpw}+p?IS4YuA;n zX|rAK!F{cm=+Rri-KZP9TDrciq_rwR$EB)f1#x>U+xXKptMRno*k(*v$*GN$Vzn9r z{j7WT{C_>|xNmuYIly5)5zv5vA3_RVHG(rcYXhh6(#Rb%xK7vD-QK;LI*HtJ)m$To zB|PSgw+5QiQ@K>Cg(~w^x@x{DRmj+@7wU2~ZoPWCuDK!u4cSp`mHC+}}pC^f3Hf6WC%@@zQ4`#ETr(~7#xLQ>sea)3oLZX|xfCtHd3+>=P zj|w_LLr4V*)7&K#L`MQtoxwpR2NZ`S=MW>Iw_+lav&ta+Z4;b4;n*>S*dS)hPP9(x zXn!3xN-b<`sfO8++gnwDZpPOx!-+Q8tDR?=<=9J-!^yOMk9Psn+)$%KOiM)zOG8OX zQ2|j)(W@>mM${<_!DGC{YA%;qc3mzQ-JOg(Monq9M4zeqhspWhKzZ@%s(gp@JTc>w z*MBbY?>#F83ML?-MT7`p{xW(I{IXwVkbn7qdGH2+ve+ojArTQ$)SXfx@DUL-;U7&; z7p#H|Loj2Qp1`snkz45puoP1{J-^FCW}(ro2;&txX&f`mok?ksGJf>GrZ`TfEP*Pj zc2W6l{Pm~VXLhmtbvp}|5&rG3%G-+{qz@8o6l$Uq<<3vWs7Zrqq<`m@ zpVZwIyqh&yW|l*`psE92OxUyU;?TNPM;Re+!$0@MM(@^3>?r_I|(0BD?}` zXwUGML5P2CK0y0%2!EMy{GV+^1|TLpy`KLD92&E6cRMZO0b-t|2T!E_ zHt__!ZRD9i$&h_XrJU6pWA1RXk`0fzf3?R8q^GlAB$GB%+^*7Mij{C@|9O(q0# z^s+aMdU_RsLy^|(nOSo!8M?DC?QzS)&iuH=~BR> zrimG?nOM~<%nulRpC*_?+JC!f_s`EsZ97e@^)$XtY$BpzER|0MUh^GEJ`}q%7O2qK zOv!ydGK^89HC1eF?gPQZ&aqP4lG|0}r<9Yx!+NtNsVSu-k(=HY0pjY~R;rZ>;&4D}z@~FOXuuucdA;y&j`}BOsDDPZHXmdU;9;OA zzM)TmK$b#6fL@|Jod7psdev=^Hru@I!SQ|@j?GK)?U){~q<&3QrDuu1%GIaabGdk& zo{I;pa}PqN%Dy|m#y$l-T#>>{YnS5hMNx#E-duFHUEd63H*-$&cJ=FOu;gfxOMEW( zKNi+uHDSdBH#(17!hhVudxMXg205>ZS=`!MVTL?f)CQR%faBYz(^vyG3^^5{glyWu zS;3_trC3PeRG$kKs%&PeHq(X3INLW_^=RiJm(4Xz?R(oZ)g&=7wVC#nqX~^ls@_`o zZfUGDB~3=?GsNHbytQb>o@{MVsEED7FrS*ecXL7l&4*%bKMCRm8TdMTrQ(S^P4^PMMnRbKfiTVi*W(yw(`s)Hl z`sQdYZ@~9^PEsS$3)=Q%C?PZw5Iv3Z_#!R=PIOm`&EhfgCzQn$h9Tur!6F|wl}3M* zJ)!*o8GhzWbARMKM+~@@Q!M1fTA`XVj~7Xu*+tog4Uv+`2AK>n<7 zIN^;ZsQCS{SrDV|DyZ7S4|7Yk5F`^Y?FVp( zdxjme(w)H-2&oJR3rk{r2!-!LT)TB7IW@(ryBsg=cyzK-V3az`81v6(h6Q6w81>H6 zm&tbg?v~r!HnyVy&h_8us7X~Mf7YasQ?8SvsJfIpgP^#$B>YVZf+3=KO<5sSl0+WX z-6VvM8h^-QuBnwIR7A;9o+BF)$&FUd#W!6Eb~eLh=Nl^klOlXnvH246DPSN5k^wmr&`GYLLT8 z)T#@|Em2To0nso)2&(KvC>r@WHlK68trWQVk_f1uLW*-h!GQ#0Xo}2F(15@oBLi-$ zD}NM*yg~FxwpnHtWDF7#1)~&T#(`z9nFPn^ot4I01Q3mpiOskh29S|Ks96O!=EzSd zKu|*KUM2Yyf<<{GLmxe8g0>+M#)$zWK}jHcL4||rJP*WDOmLy?p)w$S z@z9d2JqcSFRJ#{kT!I*nvELfHlE=z41&r%!gc_*S2#y06Er@92TLX!0NrgsJxddta z4~@=vy(DwY7f;5NB#(`x<O1_YwI)^-eX_i4F zqWC5iL-ytxY=uW{RX&!B=L|mZh0VVlE&Lfj9L&brC?AGTXqkR;n#SgS7ObTE$1a9l zUXW~qnReeyY4}G+;|b?(r<+o9&acFaY>f1grnO=4+nzbS>b@9PB=-x);bemYOYpvmvvhI7{<$vsz2*D} zuc7oOQMTf%(E|@Y=uWL(iiu|zw51W3r`iD!LIN0z==(?Q2gR?uy~nq1-kGm+m0Vno z0 z^XiWc?BTtjFc{M{hji-IS#I>VD#BOquCY7%Luwl1Zk*Yjq6-PvC4cRR%RSTR_^AnPvP(mf1<&p~nyz{@_&V9JYo+a1?@iCv zWPSMQTygu_)qI?NPx>&Bz&_tN1YY;i@ITAtq~@du{Hs#fAjI+l{I(kb56YlXkCZP! zV#*{1h+jn8DYBZaw||BgWo){+yif9=f#*^}B(LoKM{)B1>i~8?i1zz3>g}NqRYBPy z>>`O29;$}aQw2uBZ)3P`g2TFD*zER%4>PKq;oEw{L?i0XrdK@jX>O^6kVF=)uHu-0 zz!i0USE|ECYgL$GSLpAbJ+oS1y*fUM2gHH(V0o}P=pP0LM}Gt6K>UY^1JywI!2M8t zFnv&2(}UuJ&?!t93PwxKVA=<52Ow^ zoDZb=prBvqgV1^4`M~`EX22HnLFa=HqzunI7y1Cl(+AN93+V&s1HcD>3?8$%cU`@m zr@dkB`FXp#?tid0qL7%?n?1Grp0BjQ_C1ID-q*b5HU}rW?8)u?ReOeh=eZ|0$MAsw zg0IMosaCBLZL;T`JG1Y{**BryDn5l2J9bqWyD;lIpi0`&3p2}}8nI`QC#fRX9&o8N z?b*tiBB_R@2^YF}sg`Dpmn*C?lEz(ik7{}5W$z7@_kU8IUPNals-e}(sISACJc%Un z7OanGOzjNxtoJCZ(rn?{OtplS2@!NHLlP{AoY7Z9B8a84*4#;oF`>3;XJTB)Gz(D` zsdLMahO;q?YmAPV%9?SM)S~PyaxZOI(Wg2zxn(rCRvE)aby?NLg^Xvm4Yr<4MqD*n z$mz`$Nq1Y}m0CxwgtG zxz(+%%(F$h97eL1%MMgsgw!)_h1gvgd09=c+lt#6olcDD)-yQF z+MR)!EZVNb&5LX~&K$*7TP9tzHnFyvOF~y&S{+pKZn`Z!s}@U8k2uE3n=vLewtvhS zay)G#iLs`P>E*U;sZ1|tY>Bp-v14Nv%bnOMS<9Hr(v#66s;61%)^6JrXJB=)DXJ7q zZqA0JTDgqMKam~3p)&g`a* zr4wfwCQCD6(yfVv+Ox5RD%%25R@l+7VUd`YO@}Uov9ys(Y+DL8lR0$@Y?hMMFse9m zjnTGsXK33R+f4}UYZob`jDJg#l2)`?(Hb=jY^({UD`z7n7|WS#MoVs5(I(d2T2ZRn z>Lk)7s6@_o$Ry0<*JOm8BL&+LqBCXA6-b5H%d*+C(P3HGw3OYoxk~3oCRk?eX6n)S z|NQ=1`vL3M@wd6Y=OuqhN?4MwQH~%NHy}Mz8bq)YSU2ey{URvik$>d>q|k~WQ2)Ln zqP;K4{#V?8X$#H{TzQj zzO(8+f0=3b#5kY)FoeulGxG`@|D*NM`WXM&C@c7r`PSGWMJF=9go1WF<3^l)rW@%Q z4q$+<4TP5>2agoy`*R4*DtV<*v{1qvdskY%| zv~*i2e*)HyR8W?yq-4GeYRZ;_ogxzzI=q$Rk@YlSBcQ^^y-b&X(trE>`;hc{Ju0jxzHXLW z?_{>3CSZZlEehbYff{}9KQ|Lf3F@qQ%hDs@^rq8s8gs|sVwADw=k%|{*NHHQ72+Tw zXMj04b@zC77#`gWXH&bei+_264o8{C%iNEZ7RD`x_sb6K+znC2YPuz+N*pqiDCFQ$3$J~AJhQbWrmVNze1#}imTBwFusgYD zlPr^wj&{uU^!$f;DGnD(R%znu~dJ zZP)w6gq<8c=zstKBKiUm2*dyaDwHAmFeZScXi7+_Xet+9es-P5M-+gR2IoV znxu8PIb|B4ZEXn|U7dn9L8C&jJ6hIxHLSRKv_$O6=&_o2G-EbfG*4{VbxE68Myk_K zQ*B1u7=Qb(hF>ooh`YE20YEso=%S;zq^0lmJSYoU7Jqi{DHj?+7^o@YojDX0%CXJ9?wtMk zkta5Fu8&5gF+rg9XUx)DOc6z>gUDniB;yk(karJrHQBRG=20wiGFI|cQSdxf@L_eR|AW+2OQHX-e(@NDb6rk7=8#kNXuej&^*A-_*Gi1k<0NoKXnKj6+`+cV8bTAoX{3 zx4*PF<8q@{2uP%piJK!fyj8&-*g5J>9gk6%%=f!xO=G+C)k~STf}N~wR3%pHot8^1 zZJNuZZDlPmraO|EHtbE5<$ZUCHGku8By#axjeIfXt6dZZRH$rM4h2oI=alW28Tco! z2@6!NtB%v|$)errX1ZE;YnD4MkeMX5FK&H{%-r>9vWjZAel~IjtMlP@Q>uIyu-h9Q z4+$Og^*VeUP^)KGKJup=`LuHHceDg9<)d5&)Mkgvo0kq-JDZD|`DqkYIDcq1%g4#H z`aIzjKpnA&B8&D6QA7Y7RZ(k9#}svbDWQLR_LwK)T@agot6rD){3~;it>=9E2!bF8gYAd_j8Q}) zARr?UZ~t57fNr#Fet+)bkwY%(+R`x~q)5bwC*6UV#6uS4MY=!+BN{#pk`lvwI)DA* z0QZ0C^Z%RuKJo|up+h1e16ufB7S4TdGm-WedO4{Dqs&5E2l(QE>VZ7aks}C9AVehi zllSkt+3E^awumR-`4B@sM1)l91Z37+vBaAx(u9D=`db097DAEn`WK$GKtxC;+CdTl zWg?Ix^sGnZHBu&hi~DMv=KNuVAD7GUSPd>eC0a}%+hr!vYK8(Jf)hxxeIP$J&zYZX zldhi}e<)-hE}+OOT%!snLM#T$L+PJ4^8AO#!T8lMca1+}S!W2ElAk*2W219?;!>@! zQ7EPRilHiU#7FHc+5$^+WqQ5EBWrAmb6yHH10ogt5?^f6{q{I2YDgEk7f-yQPjPX8 zO<&9GdkeoQTk&4w!kaC+sOpR)Hq^;fIagRxf9yq}jg$Q%_&k!}8WkiemTR(xm?nkd zaLUSXRHZy4P||hFPrc2#9d3daUnPFcULOLsyJr%Y)qgJ5r-6N? zPsS~bsbkgQp$H*CG5p>KS5DJshC#Z><%e~QqlHpWV`LsFIFaq2T)0CMN!-4P1Vj5-8cN|;_G=ve{?0+5E)#6F3pmQoOWt39L<1W^QDk%$CD zKw|0dhiFT#CD%R9nv|VF6{~$}=_9W>6c}pWu2$_5HKw+87#Ep5Pg7aeuZ$&~1ju}DN z@;Tlq9Rj3|i{Aa)Js^5O^nvLE(g&muNFI1JVZYJYaah@qyz5 z#R2nx4{V;K)lfa9r$w=`f058s0@JZ9J6mOJ)utV3V3%c<9c5%^M@b!Jn%T8>ROd~` zxT{MpD@d}e!s|LpD$TZ(b%bYIZf(Y9g)z4{=4hy>#H+{PXfq))^TkB1EW%WD@pd-ZxwHWbZMR2Z8*Mu~I}HnH(HsqG8?a2J6%`XuM%PH8(!9|t8Pj$$ zV@+!rjI)I@j@)BeM`t;Z5ty59I$5-av2(St(Ij)S+E|IAsklgKk*QEtuB2FoDOBmC zS|pmNUTR5`45T7|wQUv+P`xb4B#{!2R0$OmD^o00RXs5b zB9~VU)-p}ClWj9)rWJq!31t~Yu3@f-NUBwuHdft{gvP|}*|K)WZsn_6wrF8vII~-3 zXL%!q*)#!dMTk18J=n?qNI966sUPs7U-HDLM7-*p;CpZh)H4Fc9=BTwzDD} zwJn=C>z)--6{Wf&prsNiDN1G;25Mf4R!Ep)=Ha@zE^3A*MW}jN=(!%DRt>gh=WRD( zoEs)B0u#!AG$Ru$#S<4XL@6Yivu!bK#M;u)qLT)PZJc(d+`_k8XDw|DM1`fOnrf$( zk(H?t7*?fGT5h14QDUwrYnAG`8eXapqL!&{qFE7Tig^^Erlw_DB4(SSi;FNW;X3Cf1DES(Y~`vsp2gGNA?}N|%|b ziiVh>3KgP-7Kw%-1yEY+tEy$9J8NONM%x-TG9pfCtE76FibkqbQWi=|S?W9$QdY$G>D%&^-nv^Aq^X8;OFR*@E&LWLIQ zFLL)Uc0SqO@gD8=ejwdNFO3#ma1{}d7b|$jj73Z(@(TF^5ralY7h9Af2!K`n_u~Hz z|JP#J*uNsr*4pN1q{lb5;MK`r-6Ri-Tv;i923SFPFUq$NKvWSY*Sb0V+tCO}{5uJ( z*(Z_wy^{82OPRHOPMCe>*;> zzxm~AoXL&fiDrlsu~I(O)alK}4N6>2wn3(*))sxZ%j$ueJ@U4@9_kOxl9s2+aomxA z-1^x;T*{x?_hh1(91-PT)%T>5hT5L&agWu6wdRMg*vBn!f7XVG^1;g=eg-%W?d`Yh zlh;t>t#Va6cVpct9tB~#w+FePnPiQf2kTZ7xtKurl5#6*bz18^B_m6JZoZuz7$-l==D4 z!CdI16IcfiWP5u%ygiiH7jKoEB-0ibW(x&t&(Ay!p?&uy9> zXC2{Wu$`N9y_Lr<51%v6I$#?K>yD|Id26LtTVSegUfvXA%1UFgbr>?1YR5KM_%i8S z_yHD-qnnkvGf}VNz=8I2b6Tl*;Uw}tUM1|qlFbuxk1=h7xpEaVM@Bs&etq~!o0f6Z z-uU+7?vHe0?*R}9hgf>TVdzOK<`lG|(G@5~?9aM;#lgTHr;;UTC{iGyrI@NI2${-9 zMapmo5q<%k9;KO+$f!Agb1-<8-eY?1(yH$z)O8&}amPVYRmVY8oQGMER8;Xg6-SXB z3p;Fx?OJkKW2a~`M#eUFg)6@LcN}-phy-E*5CI<_&p2rDSp*?M1R?5lCxn3jQ3Io) zLV!I2!X;FL(4szwsLMo>PBYITAsR-hd;snK9bNG32zbYfumk{qTtq^Bm3I^!V>Y-= zWY17LitNHSu1lr^OAOT^IBi8;eamS8vZX&jY0om14(2RT7Eo|$L3swJXw+cP5G`5* zIAfa<6wivqS@bV4G_YC&7H%VAf#l_ijj5wRDeJyE<<9J~9%v$va-z}hlAO{|5#uHA zwjcN>}A}5?rD#X?TqRvSX7I2a}7)ll}l(>j9XCOd0j1Y5#k;@!% zix1E7elOkhfPY7fzpegA|LG3lkc>t}{C~Ih(F8<8`M%>3UeApf^_TO0`5265vq3Qu z0uc3H!CDB1;{Caeu_y{J><9^?gmgGV@isO*3Yam91sN%SOLWBGZ|YbWn}U;idn$R) zA=mI2NDB{K9?AkaR!oxG{S&QsBhq9ig~iBia}U^>t0C*xRz@2ox_pz@IHjXKu3PeC znw!z@_VaqlRup8i?Y_;7#O1i_)@rR)+giQ5-wt?bgB6`0vFaZL{@c=6%6oSnyj&F` zpSgZxt>o)}lto_y2ckR_@WNhEORl@|ubk~VZMi!Z3U3&rGh zd?n;<0x|MV=|pwn&jlDcHZwNCnr2nMb&?;RZ>)S1f@CG5a$o{?(Hsn z9<+2oMds?Wxiz$4TwAddx-n(W)3$Z7YR%YLfm1~2(%VxJ zE*RHi4j9WtI#e9G{MXvN@Obn?yNbJ_;I1xz;^3e-x;pI64lV+VJGJR=JhH~Ks?R|i z4wcU~aWs~=meGw4;y8`4Tw>#6MmK6IpIHh)4OL21?ZM*%#s`cK7#y&8z`DOU#coi` z=pR83p+|Un3d@dp$va z4*#jzF47|ro5X;ECS7HsgSZYZzidu1e^?P!zeT*$g@p3#pS0`v>>i6DiH!g zQkSGP0jWJIR7JQtjJ>TmMR4UE0vd75V8PIZrI)D~uzQ#&S~Q~r2CFW2XjXY+MQCa@ zS-v;KL8vAJ@nu#HQ&(%c-d5+s zjrbyq2!_J(VFjAe)9A}gGC)N5k^6^}O0FOR(5bY^Zp`AQaax+V2hlhCgue-7Smay`5Ww~U$L z;bEsgRCp1N1Mtbtu5R=@^a8ty%n_6x$O~z0G|R@$S0wAHa&xTK{gIy7(r$E4^npdm zGF9Q3mREXBS3ic>Hz8Xs2w=LQbu}y;jAc&4TXG!U9NgidQr|gFZf29sV(D?Pa^Oz8 z3*{yA+u-0^jhVUKe=mlkTG+h%`Kh`&(yhqxZfiU$Nfa>No}G6-i%(iz(;KH{di7(6 zQ-hz2q`aLed>4Y~o5N2r^64k5G>IIftYye;b2_~EL&KU~>MzZfZ8JKB^3^Qq7E+S6 zczit9VZpDk<#qM5F2TLndtN*s>nRATM5>UgkyM2#NK(y7e-lMD``C3zQbo_o?4y#0 z3QX-hWhJJORTnK=bm7pZ&17QbC>Yar?K9V8d3jmePTN%&vo4;oc8ztgGcC5<_9b-| zi51DKY$nXeo==CI9m0iCM0ZjgM-d&tL2x-2LPs2jjp%9}wTXEqH6r1P!e^?8l8o(2 zTTZIZobRXmf62!O-_Tw=xj73M1)d>U54R@)6wu>k1*6 zp3&alGZ1ZkKNDVM8J|r1MA!@6g{qzHngGlWdF39ef8L9YOKr_HD7cuWuEJ53~NjBWKra;tWa7dk~Tit7HA zK^CEkD53!vf~q3p>D2j>ttA8ZQW^ycP^a0ABBctH2p?w%=|Y9+29;V01U|A3Bu*eH zpyn4!e}hZbJ9seA6tzIpanAsO(hyE$qLErk4I-Kq=0G$7Km{mKah)v)lmK%MgaW9E zR8>fQXWQES9{O%^xR>cLzd4y*H7kqK)_Za-qN=)Dw;r@#A61(^7PQaOt$Mdhd*si9 z)CS-^Kze|us1Hycpgll(fcqfz0r=qc0qO(We*@G9rVmURJu)9a9+)ij!SY_1C?1$S zFm!;s(+8#xOdgm$FnOT!L9&0Jp-7%^Jm7i2^Fi!-j-%LnA7Ou8YW4cvPcr4#q5G)lyC9Z1HH5uAuceawtzj(^oG;#E^j|cH4_PGcvOXp)(zuw@9;@x=Agv ze|7{}mX_MfOCu|7EwZ6HE<=-SO|0&Yw3(LNHrCx{acUOZ8#TI2w9AO&Ld>kmZDY2| z(rXd22(DHkS-7ft85pYR=~l2AH)dO7Xwz(MOipguXc?`WwWPL9mXeZXl5ECvHbph9 zt=4umBq<~fLsYdBGZi5s473YEv?5eZe=`b7Jrs^<8cfY?n{zgHCv4VrG_!KFMKn(o zjWF?4t5aNyT%^49G*nO`GO|>{(j>7<%yd^=)iEkc)6-n?t3)&1EGtn3MD@28&em(3 zZ0lH!2OBGAp+sh?SX7Z}8mg48tjiMCG_2-v*vkcKS;m;wwvD1jEZwq8S=QaVe`9S} zjR}&p%(WInG{rq!Rl>6k60%YkM8h4a8w)dJk-K(MDQYH&sv!|YE0w4fg;$`bsibMB zNQp@%rsg7HN|HqqVrW6>Vx%gWrj~?hNM@x7TInHJ*`=&ywAqQx!ZF%ugtms3z|C!~ zY-a5>gQ;jn=8&LSrJ5y_g&|XQe`uD49%`q9TczE~SLH zn3t|vB`M@3h-NupuBxY&gnS1E4DP*Q;9+;4>C!VS2rHU9?l4w|3o`%TPvdOG6e<7u|k;^vV z8Nji&nr2&(ptYKu3l{87(`;lxv5FX4MWUK1iaD5tS!kI^l8F_n=!iromXw;=ZgZP3 z>~<_Mr#okD%&Dk}m|&_@PPu4Sp;eS+7?Nou6fUZXNh(s1l4x$FW-FShRF-)n+ji4- zoM`Q709y@Yl~gk;2=dP)e^8*qJl9cI7d(kXkjl--P^B#tG_>s6+)X%I**58J!Ip+W zSgVVbDQIe_S|Y2ZdSq6liJf4Dm1qB=;ctgDNZn+1DM5G#^c!V^op=flaAf|wHAQX)P zXwa-j;Ktu1yRm%(Kt!P6eT6Lh?At8cdhJRZq5P7Y5U=}*nYouu`CC)JanQ224`zSGUVohjdQTvRQJPvK zhwc&0pD$KBDab)8TO9c^wiGCGL-C$z@X9w!49~P_%eYw<%V~jctGOJ?iBJ;5)>L-Ip==a?aufR7Izss9|QBy;{X#Ui}FF>wA7 zdV|#uDtfIG{3bqlzkdh_2jK!G7leNZ5Ps($4$f{<;^vFg*RO8_0E4$0IXf~pjY^ZG z{%FP;-ZVSA2Xh)5Xon(gG2>3q(G%Y-?&?3J%> z86|aNZB3MMZAXRc=C;M(DzKJ&Yry$!p2p+0w$}bT!f7p;hJQAIq!Mlk^jD$$yt^;L z(UB(nk+yyK=Sjw`w8)PssZchXmo|9W2{Gd!*~zd6K8pE*y@PA_cJo7Fq>}Q~?rwQr z7qPnegP%t}=hErES>4~}`ej$zhKQ<@=`JMz;sTXsC-TRS7nS*)yV*SY=fls`dK~au zm#4Ge-{aS%5nanrR*`g`Lm9|syVFsk-uxoc!qKNvlU9V$rJ$`y zwFnwvb>oguEC&#>tcWPm7T|)rt}!O6?5bKoJNZ|?lYiZLz1M>C`8<7n*SYZTKOS%O zyCb13C zh&Kavk}1q22;*!3{R{wzBBmhvqOsEHaETC1;pu zM9d@0n>Se71eV3Mxx#Cd8l_!yJvzZ!b_UTx%?W}8hJTEn_xd0D5AA?bZNe{?iv3IW-ix6IfEfF}> zsNo>84{!3c3IaayutcByN}t=4)us)aWydqx*~A*(s=qbwqEB zD`aRViE2L=s-fufzs`K%E9T~RlbsO}Xn#HrAjE;>@sS{i2^o11e;;>@HJ5*`diq-R z_shH7J`T`_A+kot#%d`Gf#|eTz?jnqYZ@IfciO3FYk2=N-?w$&@`z` z%#&|x+n$Y&FCN!EZg-!Pk7})F4u7x1;Htvimt)yWEqh+Mb(3Db8!uRDYxra01L6bW zgUSbz4(J>i#NUw{^(84)7u&)Cm?D@H<8gs_m5FbG@4k!Te11MDyR=&b+R|Dnot_fx z5VL`0fb^3r%NMa-xx0ein1<$n+(IE8@#+zD)x0Ev2nJ{|CsU>ZCRXH_a(@R;Dvrvs zn5zty;!s0lFH+UFK2Oo*;@Svx61uNG6bCrYihSFd%UZ z6(uOIsc9iIsLVrRd-rxsALQ@k_Hy8xdL_zvWgZ|W_zds@c0@4Xc(-5>& z5Y;4{l%kFhe&cRSoVevgJoBWEv1?XiO`GLKWla>9kP=*PtYR!cs24iO8LL#^T8wZ zMwR`%l+pSq-p!DTGx8-e55A+a*#V7=QX0rM`Qa0IEM(h36!e&m&&>D@8}^Q6%z}e#|5{-5t`^LuhqL za~`XoMO52BxS;v{t9^J^PTHML6HVZ@^T}>ld=bCe(V387F-@}CSv=EEp4`fzAi!)F zH-jZMG;`q33}~+gwYui9r6;pLw5qPMh;^uCRHevb=Y|J0RDUX9=9c(TMD^#cpk-Nb zS3JexI})3MxO7?2C5>0+YbEig5Dy6=xHy9#&jOMhyv`LDJdTJUuZxsp#MbF}U$-)6aA8}Fh@wZfhR%POqKuH)?)GH^vS-G^lFb}hQ;0fRrm}OW?Jku3L9?jt zoF~_hPW0rHBx&H=tvApxEK8+y3BT(rv4JD^EUd0f2dXiAgn56~no(t^O9TkW498ZaBOx#d z!V%k6y;io{ZlP5Ys;W|`s+4x0Y1)1uKM)>xJ8*m;dLZ;c_+a!w=!4M*q7RM_3(*In z4@4ZmU=Cn8faU|34k+JAITah@ud1X~A<&U`f3Z!fBC@l%^~a)@aRbbOrKN6p;W(C_ zVZ^Nz+XR1YTo(|uCY~YE=_#X0t}P~)RD~g>cG}aV3Rm?9(s8^%lcb*I0#2UfPO3tB zuWiX|iib;l;OKAVEmADYQ9?XJ$~BRi$-)e~TEU6YW}HEs%-c6Ivc_f@lSC>l2@EyD@*`AI za#WJ3LlZZ0T$K?ph&M?_n=@^*ZrlZdyC6_(F=pF#3^N-xTeF$5PY5$45R$AzNYzpy z6)k_lT|;uHu*G#Uyu@8Fw`?}C+H@6-4Kb~@kgXCMvo}CPb@-MW(vyl9-06s$s5*3W*{Xm1?3Gl$J!P z>ZpZLiWx+frXgY$wq{IaxFwl0 zRu*RFR;DJdnMS4RCN5!AnHiXu6 zl4P3PX5%<=(rp%V&n1!<3 zjbygWjgxrAB!2{=USLj}Fj!@i7;K%2+aV!tk>VLCAyt}5DJzItx`pUzXi-Q=ZfIsF zTR_pa<+(D$u!hW%YE5miSz_BpnQ6ir(k2bM+B0@pVB0e-CYbFub+#HVTbo$pTSk*J z7&{oqt!rA=?b}SYjT^LUbFG_=ZqBn1wXDc?&6`rRIFlO24FoLbZfuh)#xZ{)Q_Pf^ z)r~fdsKwwHz6uIyC{l!>qKbkLC?(+)5%_R`FW|_~1tOFU1qCBY6sJ$z?(Hb*lH;i= zN;sh90Z~=uQgUrvk5!(OO;sy9ZKo1UMKQKy~ z{x8VoiW2i;>Dg+}ptyX6sGRMzU#+K|mNb30I#%XZQ^_C6MZYD|-H{IemfQ3zO7EJAEVJ!AnH(dx z?T)6wt2t|gAE2=M51xNnv9>o9t3B4Mv3s5MewWmir^v=ha7{d$%%@bB$rwH`ds7dn zpH+8Pk<`TP875TnVx_+St3BxLbHQ#P!61$-k{TDt{7|XxD#jS@!z6&x~f7v-j5q zb?B0a=Z6C1l9yA(weasL&Pu7;m2zJR(5ii>YuSBHQ?{QRyiQ&Agp^GM*2w_%k7Vcx z@li)aD6p*9h#5htMVC>-pIuaG*-e;73b^%fryaSh#p|S{+jMi5=s#1HCUniau5ILx zDN0+TK<65TGfr=JliBD9)3u4tt7W=tbIizgJrvUqVWVl;t&835djg1N+AIM;9wnE zNT*%IaDsn+oz-AL)yEwVY28+wkeuaQT&W3_iKZedXTX1Z&kpqU;NFKzrPGez5D44K z<4$t$_(h%*GE+ifi|vRElE(5l%kDNPf+_?61VUg6X(^$h3Zi9bS|*9zP$Q&Q6p2I! zafGC*W{4LF?WibL8C` z<3U{23mkuiVoyeDG%KZ$he+Y6V9_x_O*%zHvxv12>eL`YMnnP_<8>BLcZ^HRU2Dvb zwDLTW0r_xSR*1Rembf=FvbP&no(Yj?N-C=Rz(^NK5fe(& z6n`kmped0;UC8Nm$;xrT01QGDOCYmB0wN^30Lgy~N+N?gh!6}2qSHEQA`y#8UM_d5 z9CvuU9y52H-Y*x6xD&}GH9%8EQv4mRtQ->PsT8i{6N8~8E}};yyNjHidskQ7%9Nl1 zK(wSl1vJt%Q0^iqD7%BBszm2HQRnV&`>0LVD5iSaadIxU%{sZEHKL;DYgVzTD6N+L%$r4K_2s}_xD-kZV z35f=Ub|_l)wS^a%Xe9GvLY#up9}Tt{R55>$i7_(K{-r~VW%6bXD*!eap=)xk~!)Ll|P1pOKMr(56pF?jY((AEYXju?-a4P zZE@zLr=51scV72Sl6VinF9g0P^j3e&o&%Vw@c6Pw_oqh2T=?3;HLPZhs%n=GH7$N2 zjCnawxm&lz7czvI;wXqf417L80Z@jX&kr8n&dsXhLr(bZUwg2f_HB+%S$PPQ12bfa zk|!jm++`fS`rS&3iR4r(^xKFkuCmaOaMB8nHsxnsH(4LB@7ktMl#Pth2ivn~LMl zc1smT=F_ik)w3~j-Mu#UVv_;S8oFKj*aOEtm~{0YDCLswOs7rk-@0Wl9o-t?w?R?G z4wTP_ho`;yJwB`1KHKU?>R^AOYxN_6&{I(tC+;|SL`wa>th<7QIxdLm$vqo!)D%iR zPiwLy=sK#Hh=x9_^ZegykAd}vmg)6)+~Hepl}29w6v(8Q%Zk8Q~&l&Kg5L5 z1wheFF-#;(5mXd1LGb;LkMH*S{psB~h`2yONQ>+X7uE8y9In!YaqCCklfT)GY6Y-n zRJ}=aX-5qb3Yhuh17ntYcY~&`qWXxnbrz!q69=X%0O|;jP!yxbCBb#Z1S4v(;jMkZ zFjJVza=k{x!!8#>Gi4FcjiA=UH~?rHoN*|)>Jlj_lU>dse+!OEA`lUXViAZ2ArTM= z^5r5}tij2O5@Z%Fd02U5aJhN-D)_mq7p@9z>}9R5E9OnQRVbBJB~=tt4J1Pm53h$3 z5JNLXG%+bebGaQzkx>a(4jo5IaSm{Zr&GQMU22bZgZglSg(3wa6jCiET?N5W#1Y3y z92GnEyC*5ce~HMXchOrUNb^WgOEFMs)kZRHSj6^B;}};lTV}LfoROHS!8qx6mnZ>=$1RiycV7}DK4ecwbqthf39|ozn|U@Ki1~IIFSS&&YAh* zKOK}AxA;hh=RrKbA(5-xY+fhJ@`@h(o)E>?trXJ8vP_vT@Lz%Nr{&)`z7YBRzLO>` zi}VOB6r=k}2YYU6EEZ!nKBtDOWB*AVarW7NmH>UH~l?@+tF$8dFA zuJ=u-lB!OdU&kCK;|SzzJK-Fw;~p;88tm;*bqz;!8tP%j+6gDR!m<@wYog1fSB`qJ ze@!jd-8x1#ab%rJeV5p)`6l6ol&)+kson0yQnlyZnpv+-yv&nL*QE~Q8nNKXqmriZ z*^>KD0xFxuEBC_+>MVCen<7`HQ>w|_?8TB$-S6b_vvTb@D&(-^yLXQ`ajV4m-JfM| z*=B;|k{b3BPe#8Q@Yb%*y?b57*@!#N$L39R2_?1(8q* z;B0J=qa=+-Fhw{Big1xh)2U7odit`W1vnC+MBOoD?9OrJTw$X`ty`wh=D6g} zS~A%!<)a8_Js*kn&WS~OhPZN0f80n=4DRmko&88KCNAsWI!Q5i}wou>F@ZIsyXX5p&;BLHIpFIGaJxea0dJdSWau9nnh!dYy6_ zh8iiM0i=$EqjHblm5NO?4O2P{L7I)B?CBDHF}^$a9`T+8Ax8h(Cro-B1caXm^qLWS z|MC9MgBTV8M*20Pg+7H4dVuoj-Y5(W0sm8wN8jqvVTdjRNgab)tpP`tCH&VHLi^zM@2-gUBZzGz+$aiQ#AuwG-4x&;*j!LfoXj!OjUcMk+Y^}W=bw~#x zJpUMLX*jHY`+~gRJ<&61t-Ma66RT5cpvD0mwdn?j{X`JEbEN*z(Gs^MEsa3)@Z7uA zmHCt5*CFCJZaZpf7eZ|e6ad@E2*el@))%hp5ltD^MzIc%M}{H zC?T*wNIn%}Sp~6-5F!*U53N840WIRcT_C$+YBQ@TvLR~{1hztw$9eXh<}s7a7I9Ira~er2MTHAWBg69 z!nr`T!r-^i@-=@cM@R^Jd)(TpYe?~mwm#vjPDlz}b+HZtzNS(HvW!bvg|_}0!ZQN3 zYE50)bx?J2aV2i8hx}Sd^x890Wr7f47YZ&h(-VsQQ}wDmF$>Al*cV0w1Y$4?OI*H7 z0+jVSzD!t3TbQ->S;+nwU!S#h`n5vFrIfBz2!ReNfQzt%i~bNJYy5BQ56Vh#<3v42 zdUc}fr>-4kuUEH#gyq>CZWAk`O>*Yx;T2<&KpG@n6+c4eaaL8?;XRl#2#92%Iu`Fu z!{iOz7gvKG!%l09h*X&lW57jhr$j`=5T8_?B0S$%c4ee^V#tNql20Ln7$9;OB}xl} z;Pf=QP(4*_Muk>vOis(<*b9?=MGtd?U1i{@vq#HEA$dE<4`e@OLAt!>$NmM|z%3>fqA_NsV1qQJhu=j#i^J4w|#7FS)Kf@4`! zUVt(QRn)vmvHZZ9da6E|5`_?Q48OCZU^>II7p-?R;j6#jbAJ2u;qW!U_p|YJ`#Z|A zpH}f_bQd+>|9O-O?F}*`tPHX#t!~b(t8x5gyoUmk)= zhyMMIBuew%aJFyK-N))rHJ(#VS10|ak~ZzFl60kf1;#VZcQI_cKTX6V%}BHVT`hb| zv#6oYBvinrh*6lHBX6i(XSnd2*LgAL4`fuW2y52WJuMG9kot6MLx7+%IUziR>1+Mj za6@(yjGymMlkwHu5pzf*z33h-tn^2rBTf_NQ1&W|(-;C`5?Y^j>VVG854Y(U83ei# zckJ}`7W$6zw{v_Cl5(aO#urp?1OyY#9DB&*X0v2)6Ga39dCa-z=a91%me5XJBXhfL zrW6PQ;wQM}uWUw}w?0l-jf}MLUux?~d^;9!o=rIb0n4B|(YannZGJ-r34q*1y63tD z|IsP4T$0v?tbr4H@LmY-0o{22ZlhpI!s;wzZa;>h0|a{`jTqv2-^` z>@dg-@P6d_&a$X6YF!;V6qF6ILmq3+pdfdwr1T%)0@xv4g7oVmkH0*W+7;cG2Hk@t zA@q3Y-pJGZwR8sf5Nv4z$yV2~N5u2!PpBm%bY9YYyob>zQ6&JnAW0d&tw8HvfG5Ng z9L?w6)}ykkVg(=g3Fd$H>RwC&VY&pEA#g)95Sz$b4jz@(Kr7 z<9tmy4EUNiC;2t!=fKyBTgb-`VZ& zJR8aRw=z}r-?#?+QYt_@r@4aP9f_QM9!;qXQ(r~Dfp zhoruenrra6+aICWSGHH?-=e3@F1NPDu=T(z?KPoOwoy4zO%nLXx0Rr?zLNTP;2y)8 zLHY{vE7<%tP?`o`)GjO2_%-cY7P#Vi^x=rAL?r#6z6VvB4D!o~?I!$&$Lc>f5Z{E4 z?~Vvxqno`EqcY1$(t-oV&EYn$J1i|lNp|<$LVWE%MsYUhL(P7CPSR0j>yM6>)(jyg z1C%rRoK|g*&7?!MqowUBlUPU6!D>R~SbVKo0FgnTNfJBuS*>nOR2Lx%XI6a{LQ>mU zb736QpuwnoPyvcCBVZ!)F$oxr(Io3U6O(WViNwm{Fzg~NZI8=0G-#jW88@5QI6#q4 z)e;2~bQlDPRYX{`Nxv+wEDC)>dUY4^qB9mtaDC|m)*XqQY@*W0d9CHT#N;YQI1Kb(@AZz(A~pmnOA+ZCbaF07P6DGOJD7lkxH zA;7rp5R{g=DerF$?kD$~=`{@_mWUd$Wh^g0uMdC4sz)M; z7#hM`n8o+&3|z>`-8gMB)VZA2gXnORzkYnNU#$l~3xo;DJBGJ9N%8{({DT$lXIKsO zR%naD#?)@X4?%-cVpqRw($3LuKJHiNyHw{(dTG3_x~hsaDaJIVq$Ezf`l(hZB`A;% zq-KmB-AP!jBZ$pl^(w{^8b3%#fDBeOmeg)s6``qbpKqn{H@=1L{r>l$(*2O^*!Nd! z`lCJnaEV1j3dgG0v z^G>x#-$Tq?T{+UmMd(&#SwSM1>7s2lD9|8qfb5%hI;P8!nZ|SQ&W`D!*}_5UPBD7q z$i2w-RWOp&BA1ppn>m(m&n;3h6!WJJMCW; zv79O%Ji78+Npz&GD>9WyoxV3@%C^#SUYquwI76!?+Q*27<(ZI^9)2f6)2ATQCMLeB zg~P{jL%!>|bLc!E2@XGWZSl{QPC=$ow(OWBC@5*y2$%Gem_}9Ny)J_FH7e{duQ?dl zz?4rybA*n@xmOo_$H(7OV3e%;%h7xMm=9t)Nj-Rsg`7E}O^w%zL7C9N)~PSBQm6rY zZ)3K8Rm6#F6FN2Pw1i-?G9-1{kGR||fte^ZoJI~gElEN!VcjmOSrAWo z#Z~h`7s(t2_Ns^5_hl;hD<0E80pL>zxVeW>H^~7*aasi13f|2laz10eq1fI<$Zh)| ztlEAUqRLae{x;eHu^9=C@q{n({bIpqhFXRxvkxcZYZ12iOHR?0MfX0_3TNbflN&qF z5A9#eA?@=g6Jns1v&qG~Jo}P*W~$sb7^r(dK{;xRk7^$S;-L^`@}RKNox3vL)M5cxh7)~JFQ!Id|h+@HC zJ^5nG(`totgCII|;;O_FEs^TP`p$^6#aDr!4Ss$N7$2?|4v?lD@qltm7IOB00`cI5 z`Gspv0dWVgjyvDBYF#xYbQzQLeAI+xYZy%0Y>BN?@uGgjH?RCyw8f2rH(IGK2I;0d^zoheA`+^rY_G$q{i>tu@WTrHYcjB?MDuN-*? z1_lcm2~v(7#<8Z)2?0^R+LIJ$<0OSocGIVw4D&5}&)XJRM8N7DXA1#nN8`5rypr7* zQ6hMmYLd-a-(`}qgaOvF1UU)o5LrQ?g!-mxYhf)QLmj@0=}p46eX#M8jE5Txm*xYr zrbe$EJDj>RFp_Dh*g%rw15!nICDDB%%7}gKERL*4OSw9&pYYP58zhPGn!16ulk%jK zgl?u&V?NpC92{Fz`lXGW9yk5VkH~qmKtLew3SomLcm8aVburK2a(w=6${9_AygI+- zRHcVBoY%nro4iG!|sJPZ_ zpMHwaJqIP{%)rf*UnxhOW9!n?Gm9P%b%qMah-V#35=`~u)*o$H*R4ccLb!CF%(Cx- za~sYgJ!HnlSzrqH3akanmS%g_Nm&(4CV`~G_4Y6-t#WKpo3{oU?vVKgy=IWyZ1Es3 z$^#2NtzTVf){_F%CYila6io+;Tb%dJTUp0%F4-*rt&(FrS(BmDn&9AM zzX()Hx(4w3E~{i%u5eb11ROh;1499GNjctN-Fo{bjcj>ARKtLy{SSeGcE?oEHVNd; zHl-LP;H2M&_T&ZfD%~c?Ab+9lLeadA0hT|o(>9FN!KbZ+dlOj@wRCH(`KIEjXkx>- z+9b6u+s#CM?EV;{X)=719v)hwwJR*XMSQ)Y!(Q#WKL3!{9&V_lj-sz-7BZQ&rt=JL zN0)~|bWN<_J^P8e2N^A09?BsU(ZFAppeU0JwXd& zrgdJrMA{C?xEFa!DdS+bJX+nNxwAYxJli?_BAzotfWHOxS)K`J?hRh;!SNxBJzQ6y z7+tBxE3}C3$I-Uqioer%->JF!NE6bpE9E z;W^UDZc!1X`9THRqn|BR6>bJMs3b=v4DrM!McKE|DBEY*`%0HR##zffHS!q8umknQ zwg|WlIhm4{jiD`kkze(F22X5mNX_$&ZIZW|kyC0UipvaR+4&Xq1q^A>G)Bu-Dk_Dh z$=gl9bWV0+sx^D~ZdmEAKpAQ%fhyCygRW%q&W-zv4C2@&IO~kK8&V*v$!<1RLFE#X z$JuBLtUivlt>nH>f`OJUF>2++ap4mWQ(n_j=vdV9DqvL^hHn7^%li`t^X=IZ>3ffb+)#LI9IipBi>r*o(xfr4uB}d*NcOw6Xjmci+}SyKUwvo$ zY;ho3O0~Z5P3wjmoKpye>*G*`3lO`u+Jq9!&JXcw86;u%NH@pmo$_sQrvz5D5;>WZ zi0{y2a}dh}d*Na+)D=6`-#|C}Jj0s}b_T!p?O!WXaSt&XBh@gf$zjG3OwmhT_|~!Q z7*Q9fYTRsQT&v+eTV1U;@klUW0hydO3bw`3m(lOh zdE0y}-+JoeOpsfo(m6%i$353(oRV6_#waQ<~&MHz}azDWzWb=53L?mXN!K8U-PJ-ZSX_Z zWA{WNXMUk!mPUVOaO$wH=hO9rZ|-cGue>{lHrU`0LLO{kC{S8{QC9dW*&CC|UT-Ap zK8+uTlgAKZ5>L55kJBe}n9#h4{2m!eH(`!4P~cj4>lf}UzXDNC^8Wh$2%2RK`7SO4 z-=?`_BM~i8Km2O5TV9<~trI`w@^$3`uW(=~>Am9>o8@8&^2F?HX-dXwiU7Z-YJ~`6 z71-5!XjEZ5C#&jSbEIDoO>~#8pdq4ZgK>4u6NNFmb2=-&VrEVe#A_d_&~V}@`^NX8 zuGH@rz9bWgOt;wC=U?c0nFA%?>z`+LgHn+FMoi zZ%v@o^rJhKn1uKMZ&q$L%DnFCPk4+gz!IrV5=J)tkvGI-fpsBYbPKh;y$2Flm?z%6 zas>j_-n&NGGDTe(gwtYanDp%JZoCNd;O9DsHv9IcO6lwRD?Ta{5?7^Di(RLm6eR<9 z^)Rt3Xu6X6AUTSK0xrIwk!x{I#k>{DEdio#BsqrvZ#;fo2DvWu-JGoN3 zoN<_1d$3dB?ejQFBtI{G=Lv_wRt25m)Ud}By_+Hjs!>pRKD;Uwzjt^!o!B~a+Ec@P z5p|e5*4YpxGqyH`m`{Rct8q?@9NM;kcQa}(i}UJZAE-)k+^;(ROoY4Ky@j)I*(bpv z5p(0ECAL3_CokS-VCQS`J%mm7#U&3GvL!MFwr8AlJ9;jVr>TKKg5utvmBnk5n*eE5N* z%cWJ9MJ&qo@b2+s+XMS*e_Dj6Hoh`kPF_g(yGuhEs(h&WD2yfDl*E@)+4rRVsj^H% z`edJr7cWrDxO(u}DH9KTV1JCA`5a!n?l+LD+k6##pN>WX$SF*V2UM^In5Bg3i8smV zr<}!lzM~zWb`kcN+N}(2Ziweu?6<$tr75)xdX#w<%RV~2%Cs5+IpE-#W*&6-qD?nx zE}BUsNKJYjN3vz^uy&KX?O+cZx7k6X>GW2O`lya#A5TN3EvmtY8S+4f2EAtK9FpmAO<46xcl4 z-4!U*DQBmt*9|77*3;$}Kbc^9ssIAQvyP0=yieB1&#tl`;g`J(D#kJ@vjK&K*6((`IfB+XDKwpDgz7FrVLw9}HQCz31~7q8jjYhn4zcPNN&?zDe~* z|2Fx%~GOQFnia!m`jDM1H;s>qDM|!@9F66b^ll7Q$N`95*DcWx9vtl9X>u5S= zse8*20ykN~FT^a-#iu08tar81gyZ?bV%X#@R74sUlf)PLw+Xa*0pGkzZz0FuF-q%pD>D6Aez;pQ7XvJxQF1#YQT`HdBpbw8&+$luPjLl8eLBpV; zO<9$6tdh?u5Igysl|W+d^$3un#AUFEu~5nte7K&#=Hbf};j!m?LonS7SSp6|TO!^F zr_+&$t^ZD%(VFV>h6;Td1+cfKpEcSleO1b{Rbac`x36f zGcBEjc5ZyBh2;K7{8%{N39vM0Lc_p3%m7=ulsPQer@;o%cBoGxlaO|=RPkY$BG+|4 zoPb|_X&1xa>u9rubg`CeRlt^wT-seoz6*6=e%pM~?C305JjaiLWR7G8Lwjq1@ClC3 z@t!4D!BqCVTzjay&*)L}yu6-!lIR+2yT9$Iqc#^dW;5nD;A=9j)BMgmg}75(TCmrC zkLT4#Zz4Fx>L@mtU$MpDRjRkjzE`A)mr?dZ(D`;3lmY(#M^+m0#)yMX;OW({mu^N@RNim_g;15W)~Ff=Ie;t zk^pnQtm+Qp>wRIR>5<`ER29XcJkQ{8h^VOfB5mE422eLGGKoxl;_lH-!_dCHA%PFIS=M5!{x z2C-Wo%&yNc2rdu~ZS2DBQ(4-q29u(iLi-;To*ssVAFouhYQs{7 z+J`M zW;@sV7z7YLdna?|t4)*SechtH*@>ae`ji@^n9o3<=puM>A)&s?e+jP_&?O&mGdu;yXyweV*_yIWEk3qE+O z65@T}%%90ro0JQ8tCaI6SVQAH_ycWw*=X19o%0Gz`{Lg%x4(b94bsC(e$ZFvtQS66 zzwExMlhix)^7e5i?%XxknPws}`4o1Me~w8@;=5Ygl}JM%Y*-M_gDdl1$m(X1s&!jk zA$M~mka0jkMaoscND)puxz0dfkrU|H+=E604x6LBLaEzQ=kS~^?RN0GGP&&68YDiO zrHz1Jpj*r(k>RFLGj6yY?_37gQOhJ)3e&mPha3z9GAJHfQBg*HiScajv|+mv)YIC) zBPkdLg{1oQ-Vzs^dS9elwr(b?32Jq{2;0%Tjq|EGF=KYkCx7rSa0hVgyhaDHxg<=0 z8C@$pyng@(HhXR36ntUID*NnIjRcO1Vzp&M?6;-jb^=m8_VgrH375)JZTmPi{V24% zNwGGYNi_`@(_;2}`KO+~^;zePwbB8p8gX&7eRpkmo+PsS%VH>zvj$iG`o+DgYX&YX zR!K-b6q(L}q?KUS{ixU@dx2WRvKxcWGPiTt-y@~Vk?;I$ z^M88s?lS}2u$U?57A&;g*0d@ThiL;CLFO_VEV-V_ZeD)Qhf7y-wuJ>5r4~DT8&t1# zY^NtCV#l*OsqAm^%%??}J>o10QiL+yMpA_7dw~}2&TV!4Iva6l;_(8Png#9PTY`Pz(#X0 zo2lN9QmyZndKPDet;6{gpvxYXmGXyf9@p_p9DhbxRkLUeLfc~w{J`M)m||@eMsEmP zl2NdUokXd_`N^|@Kh`$8l<+7R0t%>}%E22@h0WTw&?vYu5aoLBNW1^Q>KY})+h;kQ zx5V?j?2)i(Km6gQ^4(%|+#=1(OAyoGa@29QSA(1Mu;63f30sl(hZ@q5(RDnjf%H0O zAN@jcOta8xqlvL~UqTeyri3dSF^AB8GCoy!rco$CB;RqTvY$yxP#`Io_^6QWXeIa7 zo@ru>XR^P(YpQ8UbZyZ{1#qFn8;_|2Cv#SOiXGocjrFb25)xYHgFnxBx?1{Po3=8Q zL)0+Nl+1er<$fH82!!{|ig85~FEn~_jAeV1`SDB<-92xloKBp1{#39lm(z@uPM6>$S83O`J zgH#(jep1+Q@dB~>vUXA2ax{y6h4jH}J3syeyE%Z)k)fT50G3rYkgif>VX*6{Uv@#Z zJ!wXTQG{cfOW+k?FU1_!ggaH;cAnjUlJ7sHW;7645!1UMM+y!I7)VevqcweDk#ODj z?8j*{4U#7AQ4pRcANI_mK){d9-fq0@`A?SN-F(i`#Edwe3CWbtqGy82L<~zu7nAxy9 zotCG^$~ph7kpgmUn3CZxL!!VYo3YtX(=m4m)=6Mp#Q6ShQsUNQO|B~X2TsA&Ic{Ak z3#kz~a9gbHSAq;JxT^7xWVdG9fD3lP0JN2kR&K_NH9M=v_C}&qPntL*SX^~&a>Y^0 z+*G}3tS)$rK@Qs7{tV9p>9yUnz`yVIc&B)`TjkMIqBx<-o$5}w7zpyTZWEJ}MV@3r zS(oM+jM+}j19>hdrp8RBXse$n&qK2*^ew}|0b_jQ zP64Co@S9V5ud!(YnRsLL zo4{3eq{=!Yrm1nrToTDU@5l1*$05lgYqDWc!Zci%1dZcZ6Bz&YiSnqd{q!^A;vK_$O~M1l=FdqqX_J;VR<}J<&qAIwLpYh zj!+p~_Q=g#C-4vtmKtXtfAdsMfaf250JJwRc$JNe8pOPYqVE9%&GW)Yrpl0s1lCr| z)+hVBtS;YoIs2gO#uF!JV?t!PO4Lmiqpi?o^QZVRE$fp%@m89OO&_k+Ei{0OhcI0; ztS#T$jK}VIY_@nZKTR54l<;(JX#|v;7%EPROp?i(Hg|WaHQA<7jYm=G>Y(;pRTT39 zENrwU*>sY(ZrW4>jtu(h0T3Rlj8ii zV*5Yb*3nD z;~sSsh3f-}Kf;n#6eU=Ww}oJ1Z0U~y4n*q}Ti#(CINorU1Ks7`ckTb$x<^F@Xb?$Z%oE zs`~a-SrnaoN4!4?!7p!b6R4j>Xzt;7=cDC@vo4#dlo)Zg#vq%P=lKQ71wh$)TMV?F zQ{zFDdO%2h6dhV{XKl+Jf{X`G`e4g|pE%>#4dqdnLdsLR&;;X)hOiMvO^LrI>>-|c z+uO68yjSwlL{m8u+#GT%LB=%Vl%H4n0{_s-w6(dqUqgyusbtG zafyp#q5#=?Z}gfS1S$*XObs(>d!tZ58|NfkykV)){W$*eov~kC?KuizgL!H}`+0-f9^a~Co6rry+W+rc-ppS`W!3A2S5yR_o2?;Ujj{zUL} zf1hTyf*s3zN%O_lq3OQi*zw`WTGM`X%cPX5nNfp!x3<%Tk=XI4-qe=fah!NaA0DCA zhZr(OZ}e=qIDce8iRX^K7xzpYdphL!TsBcTD6X?31`KEh#I)skg-`qYbjDqd7Kw9r za?RdAij+oa^G>c+lXPpfTZ<$Vc#ViJ_VS0H;a(3cJm+0P+Kh8nLEdNlgDeRqr(<*u zPI^SAsk#`~^3Fv2aXmC#RgcNm!+m=MxeK}Rin25Ju2fp+Nre?n4a*GKF_7a45cM>b zp~e9R_>u#On>nfPZo1b$X19~5DNB`lrM1qgZ zoPs|ghLcMVUej8FtXPX~Fp)CgyALXZpudkKPE?*47W7UDr(z#7>*>sw2a4-dc6W3q>z$y?^1M?(AXbrJA6Fe+pss>SS{2_%l^89dO;G$iD^zQgD5gh#!orJM{T78GGlu2i<8H0*CV#+#Fw z1PWfyg8R`d38uQfGdUU@Ytj=Mjm2l`W3g*$_33U_2( zfqDHS>ADAk#d>7vyhVq7hO{GgTxnhr8EUbWSiUr}7-w@|dVriE=s`-PesCycqdjT- zNs)1n*pY3l3&qg$!E`q_BGzDqaDkPFY9pCMY+p6Rk4j&F%61>0(0(|^cABcv)+=9P zyo|)`F2H{9jp?@_Vdd+i84*}i%b>H?eJ)Svt2qb+q;VudA@eI%mFCCL10}Q@qr|o} z%@pv@c8Yelur5Jf4>b)?R{X4d-L;W;707)(i9`4Yc%o$8(aN~IspqeMUDAasxit3C zh$#(z2<|3`UHgT%q;*tVVP_z;Rfx(DwA0#YejLWd^a0K5=`@%4 zbQt~&w!UXca+m$y2H=d{63Kkac}sqxxPioOb;0iMjSEx$XPfELHe9zT#O)UBG(O+_ z#igi?W7NoglGXDN+88MD32>RfmeF=tj%wb^qN`ysv1li-&@_BN=2fktQQG#^kx;|l z6QF|HopcBXNY=7{+Ml3ORedg+2pO`!2*wn-AQ|wgX;iKvt^=1dj54HK#dFh}?|NNv z+STn%^^~38`Xbbx@eS%`PVWq8L*)=?@RgPrnyG1LOajLNaREAUJIc)KL^eT9<4?~L6!Rxzem7T_4ARM%R(E5-ff}f ziv77n6>FgWJ~r5{YLFOCv|!~GtKB!fZBb#>`Zsr zVCdc#qAs{PO_7W#jk83)qAG+34^lIYZB|iNo4Vp7ZUUzEgCf8Hz8@GF#FF1QzOs%8 zy3ht=hL)}yzSr97>Guq<)r?||Epu12;ukrG`_?Z+Whh9EuWor>q2q=QD2Fua@K(@h zlTVFKfM2(x<2$=1L*!>HHpcBYPCO{N1Ul#M#-!RUM)M~I;z%}jqoS4#50?(KnMr(_Ns}`l`E+8tt_Dye%OI)@MTk6jX6BG#|=h%W?_>yr?qfSU}cJpg;Nb0!6?gUPA%%N9^+pOdCK6#-o~G4)Vr$-c2=AgBAw}5m8*$c3Q%dy!1(Z#jknMn6OKvpRw#K z!VPl>8Ecvf%Eb!rbI)l! zI7CdK*PWl9PZHgQNDNG-UtA+PYr3}fV|{m(mclO9N9wa!N%j1KkysN={3v*qe)QX+ z@pM*LZ7EWGmj3xvD43{)Ez13-dR^0?M-}dSXlRoi4_9p!QYhpS^#-ehn{KcwP9+dK!io^3TWe&z+CIOQxmuJ}zjtF~2|m zH|L!N=L0I3`uOHD%z;GOwGj}@2BDDyG~i^mCnvH7v11XiGnBU?qtwgEf!hJlMrKr% zbR?D+{m+M9obkg4M@MP+hXE1^EbR&~V3qhL4Vh`xQCb5;@Np?G^>%lxLAs} zd>Kw^uvOWmPwiH)@l%bh^cM-Kvmu57>FYZVw%SrY1ok4F4Foy9IV}_t0^HIZz|m-? zZ)FC127AfRn%F}I-wd5z5)_$s`F{#PYS8*9+apwZIk~u4HRXG2p(ZxYZH#y+gv3Ns z5oE-y=djx-a8#)?0vlN(W1 zb3qbLog@xRynf}9YzTp;DB|&Es+EbEwKEYx7&4@iC=5)uNX+fENIu_(Nd#3%E~hXM zFp^~eh(o($qj)>cIxh$s%DtBBSQHhi;j917h+#T|tpV@0`QP1+(Qh*_{QJ|1kpuub z0wQAKw8u<2|IlJULDBnF&u}86s)4GClBc|q^|wf1l6=zpvNocOgxRTM5NFPnNy$ga zCfM1ITv7GqGyt9-3xXTA@OGrd0)G;3HfFuwnT_ftwAxZA(^V@aDJ7B0l_bhUFV(kFJ`es1>TSxGfi{!v9g_APc!yRPtq?@OR65B%62o*X|J zfLtWfQ=dd(ft4|HVlAtHGX;hU6e5Xo$RMGLekLB0SX%K6&xI@oq{P1kXk|nk@sDD` z^N;Mm3w{|;P^nc#2!T&ntJjVRVr(Z-R2@kF+FVm58tT)Z9 z6{~RB$nlFph-%lqL*tTEFRhtc>nwBd;Nuz;p>o329-G*gdK=bFA7fN&JKBKAqs5H zAY)IA5$@$IOd~~e9(&yvM0oJ2nXJUy)=o1EE%o_6O@hKAGK#2&} z^oHB5SumNV*jSe2^mR2*GFvIVPWe!wIqdfFNT5{%g-%68L>#_pJX9`d-bZ@4`{Nvn zu8>Ulwld~d!k0AhSKh)t@{gfbL6n5T#dZ`9kcLc4(hri2HnQ*keW%=Xh2{QZj;l!@ z9~`0t@pEg1ld018{Z8BZr^sb&R zNImiD8dm=&YpYSP?EB}p@*ufE?v7s%wwR6Sl7riHc{T0l8mLJ0=f55t{C@nAVq{)E zTXFyX9+v!mv3#cKvy^#m+GL4j`D^CL3IrJ#DB+9OJ7hFmm9^EUIkK7Y`)XG?}(8=O*iEl>CgljiPC}|f(gpMg}wGGN*(7-jK5$d|G zP-sZiK7)VWdcLRDWK1|9W?GTePv58ZEITbo*jK$*?{Ns`I4P_;9DOJJ@(30l2w4cw z`g9a`@G&Id!yd;_#n(`FSHQV|jZOsvwU2!!gcOjxF@>Y)_JtXLqN{ ziGyi%K4h1(NV7Zn=@GUuvn^s>BxKkpl zuwFD3ml&w+FTW9=A?lYyXQ)id;F*F;xS=d;%69YJm$Rh?c^dKf8)l{FHvVu@@<@^h z;tlEj$v1FVyk}RFF)zgle$)6{dt5WXOsbfs?PF%+dHBm%9ANAb<&Zj5UoV!?~zHo5-PY?(U0 zE~B4-z4DPUwT_jU&}M2Nj~AsEV&o_y*OI0pBKOPv5wI8?Ifn+k(urjuiHS+H#$rLi z#F94)%*9}1;xH>Wt8|ErSdNLK5TRIQXm61a51jh;o%#K)n}#5<)sF<67Hb0jG<(Vq8aAH~s2vsq;pacRV%B3Mzj|-4` zj;T-DN-n?W-ydfn`0X-MIn$U9DQdF{vI;W%0>dQeIhc`kD)w=D6b=CB7kdG* z*69Ku8hFNmiG{)j0E~!8w2y!}#389-SZ6D#Sl610$nzkCV;zBz^w^nWB5E;MUqWT% z{uUAx6S$5l7``#XI4G@ZDh2`s?O$dw2$2i8M2AWb zQqJIl#h1CLTF-CIJHld5j}Fhtciseu=tbxD;Fg!tZ>&9QykJcjc6lY2|IFRmzMuIj zxk0rNZ<`!mvoKp%y9-$U>6~W^Rj&>u9&@Kp)M{k*n~DESv9IA|?#*1|b`-!-{o~u% z6}S>=V@6av694}wy6UK?o;D1)G{OQ)H|)YL-QBsnbV&+Ix64Z_mhDcv9hI$_bMHSlX3jll=8d_}`#fw-9}nmehI;qfIGaA*lzh?^c4U8;DCT8CR{P?V zGF2Vc`KRkkA4#mX=o1K6e&`+;bp0(g=(xx|?5=(5EW<6ZS&xhFH!~Av$S(lrcY9VYSe426;URUe0-Q!_B z?y(lsdE#*r2KPYOxUAlSNH?4ZY((dxb_YDU7xa03XTM*MfH|g6;ejZ{26y!?#0 z!uN5B52ZuRGy>E99sV7;o@#Gi{!LQddjINht||IO-%wYbjMKw|$4tq~Y#yHi7wgzF zVzas-(dn3yV^R#_WQ;iIAO=QJc{$PmW}H$HR#jw>ucC%xiZM|JD{2pR7;qIA{}@g5 zqO;N(t^Fb+McH1_mT%P<_uX*Ph1Fj4Ot9u$!vnm(Rr#9x$h6d{*~qNz#ZbFNysD2l zkMo=1qi^nBI$oIY@@MiO4uCI6VUv{DmvCym#oQN52Ljb?-O3L6xj|5BguF~a({n1T za@Wt+w>6S1V=UI$1uT-WO`5DJe7$~91q{7D(p3yQpt8Aft?1N z9Bs=FBqQr5N;YU#A_4&VRKV!~ejox&RIU!r>f6Oaz+b%%NsFRpUe$Pd5RLBV?;BOe z7evG5C%{By0KtBuRBi!Gn6e5GWVFVlbF_sbE&{3R4-%4o?*ZU-2PtY8>BZuQH9@i) zg2#Ne&7?GI>HMMbOlq8d1(uOdQ1&ML0hAX&KA9f%vbI`@w?hU;vq7QHhTY?08#T0N&$fW zg5aLu7VJ}FYEt2d++jDh&7gUW#Y>>KWyU_VC;8J!GU z2pATIh{3ZB3HcR5e?&71S9r<+`jog`*q?`EayQB=YP2>hU~;GOD+wv{ll8&-xdDR6 zK3n})q8h*nK(jnt2>>LsCq{sIaA;m-P`}E+XO4k0XV@7-@gXeW3>wt0OO_;lnpkiY zjm#UPrR5*D8M}KUo%=_Vyka$1-`(=)1G-Jj+gErpe*dS<*U`}yFknw4a^GF*&8dsf z?KRFo;)7YhU^Id`8;#Er5`|~Oj{iC&0|$VE z2LMd2;Vj&M#;5Bj1V36sUHWz3grFjV1w8R&Fa-w)xtsej;c$5b_W<{QBO(2to#m<@ z>~9w>tKXM0-X{5d*6I5@_kN`xZW9E|+^O8RmA!+#(?Y)Ex{HXCV(Mg0c_5;ke?0w7 zF?GQ@s0gQ~7JX3!Qy_icEI_7N%_jSh{6d{?MDSCZNh}45(@OiU{Ab~G*GagH$o-y9 zTc|Se(24>!K^}Fvv@)gjam}fXw1$n-2=@x-`qhUSgz7`qfi#_E`Ou#2(H?kZ4St@_Q?@W&S{IGouO zOL1#r#7e)SGe55T z---O%OqM@(GNVt~aKCNUV>j!8up~Z=-Mz2-W75_MJfDIL zmShnkoCk$Q487E+E1!J&62!O;K$}J73@LdH-Dg3q+J6}x!kA-NvlO8b@>tN+6g6^` zOx|141Ahft#`?SU5~}nLljru78!0F8L~C?b(_^tq8~i8WK_k^BDk-bF57o0Zdv?c@ z8zd^Wu5=Q^Ys)^O6dTSbzK@N*?##YW!Vx}<5|+UoHFv4Sr922OCPwuP*YVb9!?SVr z;r`kKu6Tl6>iO@7Q;|38m}e3@JLi6=07VlB#}UD|v2bE66Z}|kS_ZWTM%LR2A~Izq z7$5@BJO=opfGGqJh8h?cRO{-+r9;pfU$aOCpK9`pNODLln{a1vcfwD?Z~E_x9zvd) z{3YhC!g2T!$+l6ztXl%UN_cD9U-ae`9wl3aDEHS**-t4-( zpSIeVs)5s?Ws;XHdN{kD>}v0@0NR{t9@H8)P9S|fI5lMDW5&K2+wMR%ILSZTz$!px zILG;Gp^-LfvE4+~Yb%ky8ATCWd{|=z!Rb2aM!1!X@rb(hS2}VZM%B8ywY#r+nbpzR zgqxbSx3{$)Mj5M#iD|ZwcCJp_Nxe|_;c1Dg<8f^o*Dxet)i(c9BBbJ_$?O{XI@k8Y zE0J86G4xBkD^DWjQ5kJraLv>}`+AB=#zs@9Yip@yYX@oPVf(3@E6VD}iFMwzX+Vje z9@H(s4uI6<6c(MUa>Z<;ZQp1So@&t=%y6w3>O5=F8ga$n`Y5`*K*vA4K`xLI`_QV3VEVA)Dfw5J9ami_D1JI&yniw05VphONgO$?|$yyF0(A6s^ z6(Hw^!!%$WZsP4Ir;S(UL{oM-vqB~sXA24y{k7zfcJ@69tF~O4x}h9vpXR)^wb-(` zR6%@+;*`8DTM<{`*0#3V?0D5Rz`EO$AD?XJp`r8ftj%?!Zt~Q$iCIg@0W+G_K%CGH z-JGVdWdTHmkLluaZn%bqIv0<+G&)UVUP*e(U~OVBp4}3uW3?Kq7_L|&R9&7_6K&Mmavf-2&2Y49+GwWq`L^LS!GCV@+-J?jc*CqB zXMR#8Pe8~OW}9v0GvDtbQjs$mZ zB?4@s)+cz{?9Qgb7}&+cbFnnxKYyx>PS(yYM&i>d8dq#+nB=O|(Tu*>2ru!1<0pqH zQd=p)!P&_fSg&I6-%=CFb_55gu}pvm^95L(RIGMjs zftwo*2PO{+4gwW0fdkI~WRqlLnAFdReTc}3$ie&r_y92f7&t-$j3yh9{XB5jS#k-a zrp}7>`8WIC)_VQ?!&z_$>!T`@&ET^$8dA;2Xxwo3V>81v6I(B zo@pQc{px^Cq?N>U8(oXoKJ}B$jxvd(Mr((LGY)GAF=TyFPQm2YBvS_r4gwL}+)4nn z0syEyNUjbBDq#u{32;XMSvnRL=|n?`ORj-8xXmGDDqdaGxY{ps&8UFohdEF3N7&)+W)%KO(tGmP}Y0vl2k`#nqNm)^h-8)JZ zesw_vw*t7I9|3@C0ww@sz{#he1t9S#WZ4NVri6&?5K+0mcR@Q!O6} z%WHzoPxO3w^^kh{`Q8fP2_kZS9SsHHLN)PN(m0kFE9xi~3}Eb%BQS9Auti}KXBHxW zDP-?*I$zpOwf8lD#!T|N%My>%%*6KzcQMvDPELcW8XdF^ssta;COa!E49gBwm3PAF zRhESGI-ces%Om>P976{TCDwoI@&u2g9tDJET9C`AO$M} zhlD2w$b^8i3d&6aXU)ZEtBeXfw4&D$=s?0EZB9)~PXjnPChMSuV2%N!t&$En5E78l zl+FE26n&CsIsFmWnXH!OVEa_1O5woGe+9mciwO4MFV;+W_y96#Jp2mN9DYZL0o^Ya z;7no+oaz*L^>}eACxvsT6I%AVaO&gh+JEv<@9e@a6`3Ev)+b=sf5G^&B%g(F7vpPw zv!?&)DhuWe?vek~D|`Iy!LMkFRJ2$*WRL@xhdNGta(Ts8DWvG9R0H!*lm^G&5g0Ny znqJN$I!u5$<{l#kr9LW4LgKl+BLuv-y>V~J9%=jJhpA-m%C>IZ z7D$roD*dx1Lzy6SDk7{rQk{LtDCofYE8|kxhI1lEH6wp%7v~NZ&S|&T=d4ICC?BEoILkt=caj!l#kA|@Y`$W}W4p(Hr> znzL`rN@ar<$Hl89I+`GPlb;@|>+aHrEJgFVwvHN4c^LerV^c%X9D2H>)_&#sBlyD{{Rd{{i@Si7VL3{n8cP}o938jU&{ zWEultv=X_xf}pa-0$^}LK}lFg4fN6aVhryYR{FSqJ{PgMqR zK{z?2 z^xinOk+Di-@xe7owx4+Pc=VwV@J3I7$bF23CPbC}HU0~aJgNVJ4||=#LV|<(LomQ5X_vy2dQ9oCznw~Cd9Kdd86IHq$-FMgh@Zm>Y{E_?6(8AZh9qVu3 zH4>7eYn8rP_b|@+Zg7MF^)IKwy*4j#&;f>}vKqLKeh`{>nWKb8s4}B~w4QlJ zyI zZtW!`J#^<09LThiYJIpgD#Yq}h&^ry2{Y#9V+!%n!Yvcw($4^ISc!2=mK7{KEp|Sg z7skOSd+&YVzwLJym~uqN?rF+4qhXJu(a-SPN@7|c?c4Ny+=JCaznm@4{A3g9L4VE) zlylXN>nHC@n94Ts#ggK{^nZCNYhG@5X9r z!KU-}(W#|rT4|_m&=G+a(xdEz3=h~0TWD!%*}VC8;qW^lRW6>rgcUC<>vb&D3ePTx zz;;X~rN(|UYw~Mve>oId;g}sGXNCLe+wOzK-N0b#;zSHPKD!-$=Mj>vQi4?rhV)F^ zJph$fN_a@VEjs}x4?zIrq=L!`aE&x&S68RyZ>o-QC8(-$Bqyk*T-Oj<;ur(Xf@bw} zZQ}nb41J;-kgWXv@AyCN|4wPQrQ`Ru!+SPc(O9k@g^n(o+){8%uOPa2v{!|!cgL~K zgoFS5BJSIffZ|-Hio)4e$D))!M1;o$uVYbfne8;h;-1MPEH`LHK*{_Z%+$D}e3rjx zyL6BF98j4*6VcQhb3Z@aT6_I4Kv#j`yXA%6GV^AK1**X#qL=2i_qi_#6E*d*5Qi?H zZ=vg6Q!?CCf7^yhXXOGmxT|;G%s+Fo(CQvPc`WLJ^fZWAXX~x-eZ+U4*dM`iT1MS;q;PYPbh$e;8SI>_d|2M=>vchr~t z+_-Mzw6!#=GyL6|krNzrY4h6lKzNUy<8JF$Zx1mAPjgVIUs^A=(7|OubgkZD7v)K0 zBAYq0Br?!-yU-y5>&Juvp)2hX$p9*!j)?N=H*+g(Vb}&|kHg{L+SNz@^QO=tr z|5!&!=_F|)FxLMDXVXCYub(_@Pe}fC>ZjokEE*V(g6-?WR zFR9KtcX&jgMQ9WE-b^Jzfh~PV*ODazNYP_SOqQA8%1F+S zVuuY|5}TgJ3HE&cOrg>#JD1$XD&MjWS4q_Q*4I~7>A0S>hP{o0KRrd?j7w!@er6B$ zHU9kug81-;=OQfhvE3}x;1l}Xtc8BO^Y`(WGvkeom61BC&udfZI2Kp#-yazMv;F;2 z@?IO)qF`nvQ0~pOb|%pr;7_U)LFs>kc%a#0UC46?53^n?$d^i`e~4i=Iq#j2X-OFx zg;!VG{-Z)&h~~T%X{Ql2^a1j^eA({BSzRd+@1$vmnWN!af!3r`sX*7-2OH(|NsS@% z9~;Dt8%U%ucl-_GMBnXH=^AaiaURBb5C#z@tSv*^be0=2ZrOskIVgm&g zL9ObR+3WTMaO8A=_qbLJsD8@W7E$mKCHl*GX}?lSf?f*&I^uALaHv7XR3MOX2sA=n zmtO@81d(0~9>deBI!_?v-Otdp6sAYT!ND*FK2h_~TDm&TXwf;84I2e9v4xOcYRby#!R8JgMbo~|@C zWlRT?I~wX5!Vr4p&=M%>IO%wYSNw!6tvmK)_b5%e*^3ooRS_1-O8tZnXJDX`*!0TF zQ<*nUhj8f5=~96X=H?k7YKS@au`Px%ZxAF~kJYxQ92WbF1E~U^2SL40S0WDy@WZTZ zp=B}bF^&!d@En+W72*9KA+`Z*kX|Z_5<(qF3IV7qkZUL$pz`E(5_MYZJrF7$zK9{x z&6g@LgBoP9fuSK&b^ixtSfy4TcsRvC&0Wu%VT?+JL_|WaeQEfuYq-)ku=~pntVIJyaHDBOe-bj;_UoJPD!>9?h$xnFE_FP#4 z0NcbsLprnz)z!m{=wZiUqUMB9a%Y5Wqzhp+NEUl;l6_%0a;9x}yD3fFNmKSbiLCB{m zw@zY_Vnc-^VemvQ1%!4jS`r6RgvAcF0#$^R!Bj&C2wsFmz_3DMXfevQjm9=svvh^i zS+kxd2$nT}UJH>?vLhrW`$Un=#TuMML)v6=jc8NRffyhS(iLksiw!_A%B*^zn18*R zTqyb3NQ`;5)6t}4N7c}>lIRI$N$T`i$`TBiApvO-Nh~8V_}e`y4CVC4TaL9HluD}C zvE#t6HirG+_}4L|eJ1k=?^VlX*zK?AAMci>dzmJFEHnnP3Sb8+suD!v{Z6yea`30V zkD$M$pW#~$eLVa7s}tltKC|kj7#+5907F#=8cJ?o8B48eBRaofn|*vY39hy`_kmsf zwDvTExX*ZBBVL{kHIqraeHgD^(r~%uWQh!q>}Z1|cK+?gB-j)Tbo#)oFn3z;E#12- z+Jw^JiBgNMGFxl*q`^*pB-GURGnwc9hpik@&eHjlxD_EP$WzWF!YfnfVWY3BPKoj& zcG_E-eSFQ3O|}NHtttOWrCRPaW#GkN&N1JzcTBxVdKHaNLV9*=3FR56G9La3Ro(?2 zV)0rlvaBnl@Z5i4L zF;U*ktg-5#Aj(MSsMhu**B3Gw`@mjXrjM-V*U(ef@c@rh=ahX26uB|#?DF^f$%m@b zvw!i(V0LwF=``Udu(QluNpW`(*lGAVef46T!;->On?5hk;Br8l_xa@Z3?|C_AvH;x z>>#Vw(%0^8n|G%E4wVx0HVdvRn-{}zY4Z%pqF5|14AbQy`ZB9Ci;Eb0u`DI!4)j@j zUi&>d1#~ZdY+L_|8?5w1QsidiQuSocYQs$s^viFVG=$Ni~tbfBnF%}A#Xi#|dAjrcIQfK0(sM`^P%l&MkD(qXQ0c<&!$_lN z9=+)9{;8r`WZzr>tZ-v5iY1der~cIM6$Y;)6|2Fecvgys^yV$>g3OyLf4q<0TxU+_ z8)AA6u3Xd_4hkOGPY!ywaVlHd8$NSra$hEES1y~5XJ=r)+;U1dR*)!7#Qs%islv0Q$!v(mNt-8+TgDRT-TZc0@g$yx= zuj*>E$m=N6+UI{)PKX82GCx85L%0P+(L=yepo0Hr|AVu=278o#()RPiAA$d(=_%K* z5PP3me~)P9lczj;K8z8{6XElnUgbIlCAH z%0gDdAD2L37~kb50rV{-IPV(vO704pf|zPwU$XOk>oPChTFU~{0}tgnM$shdH>HQ(_iaBx%6P&0KShpSc2FUN1N8ja z8thI+-rx`B=Q^BM?cRv4mPYFah`P5JY8uiCEch2>RvUhBnpn*4sB=CJnC*Lje-(KT zlqF!sHTvu>JCuySD`)4BS-0j?$U)c7Ad)nd`qFP*2JZ}25GbfapRyO-{;b6f?VSk0 zR9MI>z&qgsQk15$PzG_isIFEAo@WOy7sHv8-}Q9UEkB;|)p$X@-m>G9%WoN-vn5Lz{pX~nV{t__ zC)Lo9&f5nS5~BRT7xYw?P>)vInh*|2wqWnF?~${4&|PCO_>{S-1~f8jCO-Fm&W9G$ zR!SWHcvITFNqsULD8Ah`4?WR8QCO1>EZC-U|Iluc&wqT^`y4UpCtdIcbKZ+#VP}mG zXZMEfe30N>IK0l?W-$K2h$(n7^eUP-{FG9S&Q}X{5*0m{cFp+Jb0d0;A*HU-fq3=A zlWw2~cze@Xko@SJ+v2u%+CiVIvcmH9LGn!`d1AqsP>srqN1yeUbs?Sc3RC_bYxQ|< zy)PkyWz6^?hzJn1^bLM&Z*;Zpv&DsO#jvc`FYE0WBBbxc->Wi?UCD1u?gYM;Rt_Ay zX`Jy#Ra6Lnsi5FNE_A)y&N^_M_&(?5Bhse6Kp+bJgy^c6OKkFQ;QB4T%kc)8DlLpN*aFRl_L@_@5kHw%#$HGuwL@&TlDhD z^@C)#+p{B=gu9@b-qSsjP-z6c`?J&co5xFqB1^h14{l3ehEL2yb3u7dPSw=5uRj=; zZub2O|2PnFiKy%*Z`2$c%>CR=5uM^z3U*pp=RRde)yw@ z3MF_J@gEks!epR>Fdtoo_>Z++^64ibgswKv@P_Qu zB#22D>Pfh_Z-akY^zvxb{An(uNlf|Sc7cY5u%DdG=ua^65FT5XDXeIG*)GH%; z_QwcZnxEcl+-!Phx54Uk`uwzqf&c#c26Hz;sy@Ir$o*{fN7|)UFul)!!m4%<1M}&E z&da}l=zZ*K8Je>UGz^7w0}>WR7E!q%J{3J-gG6!b;gckvla|09#yk?^@*g2TlFm{m z*Y_M4dyT= zyVK$%%1UUBd3nMn9fIRyPC3k)E&R7${p5uZNYy9bP$!Me%Hol{nYOT3KSU|)h4@RX zU$n|R8dB?3nWfU>?4MpMQ1-9OwTuP;j?LaAn)kO@R!z= zxk){*q}=#E?J=MO$T!%$#TrQ9Pt$HHvspZ>N|FrMyAGGU7-|0t53^O)>|DR#3lQUP zHy`?;p&vMt&3MCNDX8g%TH|Wg8Y9rIJ3AL=JpPd)IcBPsEsP7t9io*^&gW%$&cJMy z^VU=%hdqw{U)hxYUxSQN71bjl2geczxWl|x#--ODVqR%%7)d~0Cavgj)S+`OG!G?F zPmp0N8Jg>3D zqx)qpXK&mB@ATZW0ep{sxV#-vZ`SX|xB;KYKtwwG=T##P&HHNkrxv)4I&%5WRDrwqx2MZesvsipqF;`8Mr3;JdXF)pz^iWDv_#0D4aaGG zIc7@v7@E7fny@Gt7!*xLKQ_;R>lH1?qWMI^JQ!pgOl_&ZXWgzp8NR8$_woFmGP5?v z;@Cr7Q9 z+~PHUF)aw{c#7ep226R5Hya5NX2cU<^(!Z~^{c`wQNS>I3}Mt|+9RnvdH`B&u|C6C zofGhz-wHoN z_rq&a9xaL0yvd7h>!V9=>)-FacKXziv-Z@SiB3=dC?VKOIA#4&KUyZxv0xRQk zA=1#)*~fkD(jT-@QS8PSt!X!nJa?L6}7f?&;4qfbuhhs+HP0WZF>57S1Fji+b*mk#>8+pv_75Ew$3rTnFj1?vtdd! zIUvkmjjyX*BLn{RMY&BdPMiF>p6!i9jM6jAEMSLy z=cM*2N@#ZzZ+3BMpKR*;=_$xHs$(Q3LZ@Zv%SOAs9^vV7 zel5Dawm!nA!o4WK#u*;}Y>W@e-~xA%-IA2t)e!5P*g-nXodK63=MK?9y{x^RiNW#RM3zXFk=@ zNdN`6h%({Ljwt~LsHM|o#p^DgRM)Ykv`=QYkF5@AaT{XWyI5^m=HhSMh)stO^X0RL zNQ8KOcIRYL1RY8w%{W8z)CAwBMG_wa4k^S%p9s&R(qIn7P$W}Zs^Tmm98`{P5I-3E zyJh4Z_B@3Ou9#UYt$qZS7euepCA1>V6jcT*hO(=aOR)&7(9)8Hh!l}UNRCQ^97&d^ za|mJ?A!@ZDSp_VNQHwe(lQB0~JhOe1&y_LgG{- zb;<}}1PWj*cp%X)f2`Zj9oW~}V*Neo4 zVuRv~XNB?f!Uv&g;yJU9rcTg$*6!Wi4@vn3ReMNDigE%?oKUD@2n;X%IW&s7*ele< z(V$ohjEe+e=dfXCl!U^Nq%cJm0)yg8W-{T>Qbh+^n4>0vq$a*%R9H$GL9wGI zo}^O<1KucrI34Nm46c_$QKb1K6{SL}NsCeR67K|sISO#pnJq4=2zkjI$?Qmm4uR<| zrz+}~I}&JesTY}t$V(as<3z-erNtmg=LwEs4g{Fx1el{ZlW<|ZC+MnhTQSBgP6`8l zxt=@=u9Ez7JdjG+d}}#zgm6-%cNw01J|R4`XqKg4JVG3X5z2s|4An_j(BY)u!TKHQ zK!L(4G9V$F6cg6;U)m2 z5nzAEs>Xa}p!iarn;?|(X~0kj*3;W%PtO8)bjbRO$g0Rf^#Cp_6B{P1su)#dPlG*m zPEslV`zLO&{C6lxhkVU55zOsHob3?9keQ)IVI3x%&<9Yc$RhvWj{J`i38>9!vD|JS zlsZv*McJEgmZ7$0fw-YRj)n@m2Imms>EKtNxRG$XAg*`WmsY9_LPt06tV}g7Wj-(% z`Z1N-uX{s&yu}DW)zEAKF>ts3SQ=fu`#M{g@Pbf#_g{9K92M*O=Z&AaDpqghg}od; z-_A97KFE!#9Fmac^qevwtL;(c@=%)#?QGk-<T%osgFCQT^gQ9#W*H%@jmZm7g)fw2H2Mh#>A z{vk84dq2~#?MrEYoB2ChZq845H?T*}b0_HIua`Gs^E=EJC%A++pC?e;&jNWzChqdI z84+TVNmQo!sXJGGjM`?XYIEuk%8)0?pI<(m53R{DmzBC8cyL=Bt{yEG30XvtqTB26wqUm{xkP_v{_rx;?{bU;j1~E0U()Kh6m>v`h%I{W`%0Uaxbz_^3}AC+O8d87 zmNzQ}#t~{CGR|D{$bGm|>wvlJZ|9{vMDn6eJ=aGMJR7A5tJe-)%syx~8Md{bY(45WVL6kHcZPVaVWpZ@4A_{&4O}@>*!pA<7E;C$bIf# z4&#XgNO!T(tru#6@Wp9!VYcE!G($aslo$`+&oY|7ZzYzyoHFu^Co15U+(%L&)%7LF zY%k|Ao;EeeT~&8Cq}_!@i4!g{F&6iyq#b3>QSl~wB!Y)~JlwG)xqY@CjOlt; zIYzvt^tJf!j2G!r<&@lBau2Z`^VNx+8`8&R-yvg@w3|@i&mQf6ldTmjyF!|~(r=k= z-#)f9S+AKk4uK9Z-fUs}EusRaJA=Ra*P7;i_Qwdu{1M$OdmPxr0)hi%kMTktt1noA zA zofZa9gf=Q~r_RoCRwC!*FC-XTr5OJk_)8K!b$lX0KRwB^p`6r5v>PwhaA~)UrE>eR z()`~85`z@OC-~J|^5|&5H!H@7-?+h)Sml?%i@M%7ic`9Qctw2T$}Go;eat6V{EiWC z`dCqqMWnhwsda@b|MiqtzV`RKD*i8LVy}3;CEhzWeE8M=Bxrco6Vw~FK{;?ugAqy) zKbDr=kz3v!!0a5tCPjRg9LLClHc4Y4A*VbEZ(BT}67asmq;8{)udV-DTjucI^<@h2 zY^+To!^$ha8sUC`fogdglFV8F?-jB!H)aVH{#2u$0Kad{o<8Xf0H*Rvfz z42+2@n52Z7TAvbbkH7H_#n+uCzS(%>3-Fhbs-)fZ5YTt1X z_!bkmw=EEpD)me(*nbgfzKwOson}QyK|2TlsGR5iO=vT%Yv2}HW&q_|a&7rC@cFKZ zFL`gsU%d*N_5OCyKmDuIox-#dhKk?#}dJfqLjdd8Q{|73>8)G>H}9o~Ef}*InqQ9@aV9oqn+oQ(L}VrCog!r< z5?zJ&SBJz9EyhUEl6l7t?w`3$j?Q+PO&kpU(r-)hVoIvwlRB%2wccD-*IyHL|y* z(flmz=IS_*s59?r5hHnc_Y{6b*0ydC>&A(8N^ zkUs8uykH;28tkKg&CQfKLz2O`(sBvfJ0oGL!naeu{fEVT`}e<4RqIQiU+&&_UH+8y zZf?9+XCj>$6`m};7y>dc8;HQ3fB4_fR}c2SAq=EI)awzrG{e727NjYX3!q)?)@&H9 zx>rzsR3ce1`;|E+ydhVH!PHHk3E24ExY-Fsc83G)ycTrc5lDy}43BIwblda?4~=1>dmRfq=)}JhJH4)(@pDFP)@?k~sS;)EnEq#u%ptf$O`gO^%VS_L z@!fvyS{IA*=biquH}oSgYEb^iuIeyD#gKJrTfc~hB>kQK=aUjA*Y8&%_WJ?O{(p!M zWM{5^yiwAbT?YsD{aN_&vE7v#4v4g>cZ&x>C9DJRwSK`eG#|}quOXgL;KN6;N zRP0wTMyy?dodccBph(n9h3lZOZ%4Y7thE2Sq4K@j$wY`H7r%RWgUjrW z;dlQ*8CPF^yT&WNo90V}&PE)ZidJPZehyf`Owc;gR_^fvAO2`o**+}0puH5C=B zVh!xQZB?ikHk0YSyw#Ke5egpBu>O_ptrCc|Su&+Psh^0el@9BgVpog$hSmBi^#-xN zYbhaqrfXuRYK;k-+vu9LjN>k9Ez)?nZIm--%gwgbmU;ug>(lD${I&Q}>f_+K&S`vU zoMdTdH&zI%LE~|P3>X&JK04T4glt^8CclGqPiztBex~eoO&c{`tcy~X-usnP@QVEEzB{zw z1tv|ciaH5@uq|$*^-@djs~;rB-Fsips-HN;B>gC!9juL;f2ua*MUAj3%-_r))VFJ* zn@y3v(PDBuq&K{VBVHag2T1bkCa)>YP3P*@FRA46nkES@wrn2-q=^0W+pAjyx+tcS z9)EjUEyS9_CgN3v4@YJq0+`viHf^Itf7_i~ba}nl1ei$X3S`OY-|jW!=Ty$2UAsz8 zZF5ChbPgyb;!YfrP-DXg5vL9QjouFVjujTu@cza#|HM{hgoYu`P4+di?kyR=%X2rt50R9tJ%%fuf z=}Gv06cm=z(AHGa{!Q`($_POF$=5Gj_u?<4?;81TE}cK1(1_oyey4tx()YQ)rCZ*- zv1@mm3jeg``=8j(-S73Oa3#eZBz(l6f~fCA=>eFGp)ex-Qv<_&5X#D@6JG{Q0NVuz zys@?WOplb)rhLNCs!m_o7~Gu^kh{r4CTecSi)yI6f+pIu}2;ezSq-4zCK!A9FP z4Iz(HhNmmrD9CBX7-p@j!~V3CNE-v%OWn2I7Q2PTBtx~m_0)B6&(oZMqcR0s*(7(3 zx}&GlT_8|)cwbFp4p^$B*BCatxFW*EXsm{h*TQD;&a>ysZ7i#f;%3j3#*Cnzp`iM_ zlFhJ?u&c;NH=c@c_pTW=482y6>0?w%Gs;}dUw#Ta=N1u>J{!!~a8f5zWI<1_ z+c7!`QP@URsb`!NSC`~W5v{Ky#%wb7^y!qJDooZBJEYt@q|}Y=+V@OF>RLmk5R~n) zjr{YeKEV)_z?y)gv%?$%kF(pVCPf#4)d`%|=CqjF(5lqokj~U@PI7|vg`2wGY|O04 zoHVOOn$Qw_%Bw|ReKH>YNq`iX_^dhoBafT$p-Q5w&*U&Y0ixx3yf#B-uE%nVsMXq_ z%|;`K8ICQ^0^8DagP*gLkS7q4A*%|ZGV`pqavdLv#ZX@#*`zByXXv%GFg2;ucgkVY zMA-oraNVe+EHl(+ZLD3=Py)|Ff2p*d;MszbmqX#;Gg|Od5h^R5K`da02@pNruos#+WvWK3v;yS=$JLRk-W%2BSiawBCdrg@>3Wo1}XVUi7Zg8HAwbUNZAsIp3GVqy=Dn^VZq~=SU}>v*61p8VnCk zE(q97MGX23RGh80FNiQZyTmzpY1Y82Qc&qxH7TIblt}6lz1V=r>bSU^lr;ZhrzOJ| zAA~~BP*sf*t3|51#Lk+1V#-fi+Z`Pp2agtuh&@a;fY5KrPd|SzT##jGiIxb|n>>8t zAvJ2D3Gluzk#OPi>^9+q&L)VF{IrirGN8JWd@j*KX`3-cZM^&Q-X6CI~c<-Sa!F zFyQ)3qThfKIEX2`8b}bR#fZ^MiEI92&*DG&zN=u@+Uno{}133LD~)k+u70^r-P1+;bQWEyn>o%IBex>Xay63%s! z*L7Y~4eY^A+DSphw69yc`FxLS1{`Su;_o&^_m zbt9d1`Pr(|W{qqges5oW+bBV`5UXL9^MuoJg=_rhsUx#+)CR*~#Ry*?Vv$~j+F>AQ zv>UOM@Gvm2a(9pZE2OZ(L{@&7eS9!L8yY;|cRFZpjel(EUA{0qY@DgCe1n(gSz6Zm zrq3YMElHh@z`wXTtgK(Gh!hsfkeH8hs^KaQ=eoY!s$&>>yC3&N-uzX zkv!{fEVE1;jRleA4Z=r5Lt7phZpuwO{ksy?OE*F1g^r^et37UwfinNo8L&L ziURcv2%s3Dk6rR8P90cDL>X4x{{VnMf4^F;D7rd`yN-_T4vr|hobD(%L!*drQVt+F z01+IDeWuN)Y1oN`O7y)PQ^cyzfEJ)F2` zk(imbt%bNhj*C>tc_yZ}Oz_S9txCgyAHS{@%2ehxWsg zXf<`t>18Y2m;RhhF|M3dB!9yz)X5biW`;_P4)neb{p9|Lu!88{URng~x``!?P>dYW zPu^ekEHywZ->I_hW)_-E^Q}_RYWe>Qm!DmT~gJ3PO5gSsJ!(x(2jUmehgHk_Q=S}*&B+SG0|og->S-TM|^G8B|{aj zGH9y&&W{ZX(Uywqc7GbnNaLzJkbz3|WzVD}U}BRIVyj(>wgCXo153yig+D?vi-?LQHLaxY?by&9r)(fFG=yt(vMzVT6+O0zg&xqpDrJ*g+M`1 zmcd?a%8F^qMt+`-n1DZ{|D*o5tR47;VHewAMfQFkx7Ht(t$&Duc&BcUm9a4GkVk)Z ze%4_E+1<}eB*F%54+`MZa=T`Y$~77`7SF!X@)J}*^XM9;+E@#B)(4dx{s|8*>qR8{ zmf^ar;Q3Sl0E^%5d|ww>1wIvge*%1Bv`>wn5U0k~fs(}5e;U>(KN<|fwRT$DS!J-) z&z8=h8?IeB-+v**z8EKq#Y}5AlBY1{td$J&#FY4#mgY|{*4WmsQn2fJoc>PY-7Tn< zW$Yr}drPYuD;ye+he!e|Oz`We4!aREDil>yCYZYj}urj?H^O4T!FVMxf z;DG4ee19wtk9z~!+N%JFgunm;kUhTFvEB3^cWa1Nhbc;t$aaiX~lpmcM7vM5HxmM z!rCVJx!NG?_QmcurRxi-xYTSF3bbUfgHe8!9aQ9kf>tAou{a<<0vrUxU zZcS8b;(+}fpnX7K4p1AQ=0V{DKsb4;lz+Gxr2))yIIjYjuSZ*1onsJN4enDtS4(53 z>OHTtnrgYct3FQ-xfzz-;WS@9;5sFoy*k9NLw%)EIBqdj6e=mXs1A~WUOf-gq={;T zg{lQpyN>P>iXtO{Do)^_l7osvl5>a=(AP>LlC#Pn`)VgRdBd<{3$Q@VmYryw(tpr8 zY?NBq*;5U(Beu4y0NstQU565FvsXILGt01-C5Mw}_`Tc%r6^IMrX`|f;kJ+S`!}>m-z2BMnLU-$*@xqM6C={+bvlC>7^%}p;htpc%S?fb_~rd^!gVoZ2~|_FkJE4O z)}MKu`p5UmPuCm1T3qVtb~~04{}r#u+lvpd4-#w?YN8Y5%um9oNsYA9bAQWE>~4DA zO`5EeOCjA*RROOSTp9TAXk99!j|X3m@uDyCeoWUXH*(V~k49B=$2*FwFN{s{tMSGS z7%nw^52;wGyYYQ7qUMDqc~Ny$;-9V@7^+Xlj^^W@43eR~TAdp{_uTpfSBxh26}RpQ ze9JTWzXH&p#6Q5FbUy?_CVyOCckn2H#01B0Z^OfnhfZET_iemjEK}5=>u^7jykRdR zd1g>DWFKB>XEjFH``k?BgJbU>?(#zEDec$GB+ZuTrK#5)Jg$|2Iks>aO|+?{!;14f zAyn97-0kbm*i(qKm~1}5?k zTRO3nIbA&XZ(~PReQ|YTpO;++HMui1%FCH(&DfcLLvrBw?zd^TH?M`>8edMg4_=pR z9BW=~EP5`BN5znB^-`2i`(1Z1=1T9br)%KCv+pk6MVK4&ruoWbqMwSH} z^hnKY%EqZ?V0h!u^M5IXI%j1a5m7LfN~eIX+Z{0S+4Yj|1y9qQJkX{8dPRtBv1du%p9rf>!ePyhfvAB%tE;C~(jPUm2aXly>vk9vX2!A2B(0h&c-W$AK?AS5Qd`iyaC8ii-!L2}Pk|+)9bJ}YFX2FLNv@nf( z7%Mn5q%^Au8|stE#cG<_s*R-IaSj%}#(i2nq*D2&sk^hguRT&j6B}8dVOlVl)T*u3 zuZG^5!!lIVZUa0{A8*<#MlADNVvSX%<0+YF=r%zguYXV^(MTpqr70!1({^&nqf^}$ z{i1q%d|fOP&)KE+L9-d$w<*Q%yU%)@X%klBzaB&a5ycPyL?17+_C6yn;C#YpDzRJv!Ux2SJUJLS|EB ze6+DFyrrrwRZn-Kl~#yVJo>6OFvH+d^e;^Lvwzw(&6(QL>O0p4ORv%dqR6BX0zoql z;CG0JykXrv3EmMWjJ*~P)2_7|&#a&Y>NT`XDqdZ17C6gMhor-R{66|e;%g#1ZtP;+&;VfupV(UEG zM%u>0%`VJ0X|`tB9_|j$2PhmUav(1athnMJIJog%JHgY5ImAZ?jy7B_Pr&jkOohbMn&3)$(Q=X@5+w%~HDYQ##d=G8^Y_JcrEsp7Tegw9DxO zr_3)iToFPM2#VP9FlyXwl1Ryi{pQbN_1M)aYt&YJTBh$Z=g%!4Btr&O;m{-D`NK=7 zbjh_yVWjF+1>=^es4;-(m>`5zb|MrFe4Lw4y5ClcTzts{R8OHrIiO&`f-$s3W`8H> zKwuCNfwxtaibGx?`XpN{vkNi?2?+wxiZEk9ve-<5WAskS<1K;+M##kG+zo?BNTAd# zf}8VXCzK#4A$6}3{E9&$ypkc0p0q(*5QyVMfRZ4jkUjEH5i=P^m&B}650OGI)#}06 zmLyXzGSw2-Q3}M2Y81tSQ5r#?GJjhMB2;Xb8VrZ<#0)PIl8F+*O(F^Mx{F0F1q_Wp zzsT`y0&+qn0wtlpy}@gaPvsMc65r3POR!#2eun-^he9%%QUDu$* z!%h4Cy3*PK8KGhQTXBNo6tC0i!|L@vT0T;)6n{T+`C_uDH3YQE#Ixl`@o-^a`lo^T zib;+XJ+vl75577QRfnM~V+xmI>x+;>5%v4yS5jE|xH0L_L2^|-~G1U*vFw|7&_JGXn#7^liD&ZSiSqR z55mAfYNcHtyv2DpQRwaIGEwe%Q{25i6pyU6WBS(Sj&FjmtqSCx;duRKNH8?N9rRU~ ztCAP?Nq5cgFXBafe;n#I+*NuYVdvcm)u+)>EaLYRqB8XRfFcM$LlJ#{aQ(pfHFx*9 zHf-6}HSTR!A1k>~#(y_+ZG)GwJNk)@bBDLd+gk-w?3bR(wbiN>9=jGbIn#vIafzx8 z=X04z)juvOtWzo?IOv_U^Q1M)P1xYfly_wXjeZ6u)jHWP#f7+Jjy*JMt8*@lFs{v6 z;iE>&_R&boqDAxRj~@15-p&}tG|OS#I<(eXyc?BcmHX?gPJjLZwGDB%MqIAX1%&I8 z{%b=N`lo`gHqnnX`y@?zZIGS-Qgtplwq00j2_npmGJsLVa zY`EI#dzJhXbNbAW!yPM*KZ8=QlasIi{~U$^_&LBL_&&cw{JvUFYCw<5wJm}SParSL zVXzSVss$MNLVxsU#?uBg-rU;PO?1_5tT4MPWztR3eyRu_r6fQR1W^z9-`j_)^nY#v z+WwjB_T|&vLLS0{wnN%Q5-2@|4XCCHje_3Sc;5wwe8aWd?g$=NRXM}D^@eyy*quzS zdF0UDGYKGwYxWjUcp?SuD#`@sHSKJY&9 zK0rTy4eq2Kus(n|UYI_E<^q9#o)1;(1J(!U12zD+qz_OSeE?>9fWOWLKaLNc4foIo z&If!B_O z&kb0!$dlBOY!5h8ns)5vOp#Q>QiO}$JXFgwMt@6{))`4-F1p9co_U#j!)1N&r&o~~ z$!e%|a_TGZ=8qytJVmP`+7mlNJu5xRD)gH;c9Sh(B|=193sA(1A}2Ie(8!`GZ1uMi zVvJ~QnpxPFG7SRMMQU8~d|v+IkAnBMI}r|B5-JYFAlxS+*6XGUTyCw`|*U3cam3)Yn{HL%U+oYVFrLwrR|o zW}K$5w%ax=MQ&}fimr8QYqKoTZif-9rLx177hyFF+hKMWMqXA^Y&PPy#(4x$W`9(u zvZJ+IXw`K#n9WWQt%#PgV>Bx2m{~0%n`37Z+?AbjthrLe=+UulOonrl4`{@YyE7ZA zwsR4%y_41Z3!ro$hgmCm|PAMTTaPavR1VTtjSqS8x*kOMb;~~I>M&a zlI?Ahl%j35v1?&_c9S{VWiZ-I;eWZ#dW$hkIvz#Zm9$$xj&_M^(k7@)qHWPdT|=g< z4`xN#q+7O)223T^bZfF{rHGSi*v{Qp*ENlW(CsqHqBA5!XDcRl(~`s})`2!1wswqV z7Q?i)x+hbkI(3ZBGd8DSW=l4!u`^=Z4s(YwRhG$@Y|X4~rjpQ=*H(vBJb#<6i%)9B zlGG#4F|uaNNsVo@23(IDNaAd1qdIwQn<`Ta+1ny*rmR@l#j@vi3RZIFGc=_1Nb0H9 zdbOLj#TnQgY)Wc{6C1OksTQte`J2bVs3B!1qI|{8uGzxa!xqNcwY53dV=WHNVr!!e z?3xoARyMHHxvkR0g^^sFY=7ul)@8PKg)(7wM^?``t+9<~ZB?a*Bh+kE8XRevAz865 zM!H4Sobk1cRkohmHMK5vXR2&jRMT$OHe(gFU0}@GU6jJt-7pG_$)YqiICh#)*>5*mSF6VK%JnVM?~Zl$EwLY#3x_C6i&xp)74AQri~7 zjik<9Lfa*zwM;6G9Dk#9ZJk-#HpaHoLOUA8%4s7K1{^xj&iU&2*l(m{IfdbL(f?RjM!OYp;w(*($f*B})5{$7-8FcvlKGrCNa>Pm z)~82S1&R*+wJDaVw&SweI<1sHYSxZaP?oEtWW5&Eku3*0L?%NmS3Ymr+>WdqfSGcC z6*ZoTtSXc>$qy^!1VbjeIYz?H+GL{&&5|?u4>2PVPJhNeb$Khp6Y6NdM>&O$dYLZ& zrT6*wA?WmaRaj4a+!-@HlG=!wLI*^&D~8epY4|+++-)c)u(9VaNRLOQHXDf3o<4>t zOCD~2O8iZDlL&!cA_69K2QL<`{}!_Y*`18*_w})F@Gv3D^EmeRquPsO7Q=hxhkkAr zsN-?+jDL%hWX3C$;_UuuRjAT5^r+4C8kOoGLtCf;Zh5)eSBMIYD-O7 zFSz+iP_HD@*Oyp#@=qp7CqR@eu4a)>mm+M$=;`6U-by(0$1w6}ngWrbDIz=CjJ8Wn-s*0ag2Wy8&)CuUbgjMKTJ8M4`; zdw*ujs!ZC#HCCE>n`$=L$J%@{`FQL_-M|$UTwHWfQQUG-Tz4HD=a$@1bR>6+A;2Tp zZdvSxT9xEn+>q57lWVbz^_nXq4mMY>hW=UiP~OwoePiB&DZ{9`mUWTW;uH@W5=3G? zF%KCC^#!6XY>~w%3za1If0h8hTeZLI7=Olk2Z2l9>-3;4WLcZMq+DqPVxXsrb)-;N zD#tGSy3_b(M4Z{{T^@ZZVuLy9&6T9Km?Dcw2aw22Nya8oAnqRKTe9X1EfO4fU@FGU z7{{{+D;biqm4psxV#6fQ#`&jcC|O+_m?YyAgu~00QBWb}29UY{L_i~ggDa4bvVWO@ z4qY&kLX?V0MoAYlkNe-n{mMieuwiZf64U-0&=*@hg+}}9PbI9fKN#4mD|J}rD(CdJ zm)O==?O1}wNkgzZE*sdk$xuvg#eKep`LMX;!!Frlb!L4NWAwUyJ*m5XHe*V)J#mD( znOQk+2WZ@s?9q-12{5%Db9x{-ojR3eX|+<=!U-FBQQMlj9BbIhl+Bz4KYu*ydRsg) z>0dmsk@XvS-YYlpF(~CufxDGlZU#=a!MzVtgI>K#5m|_k^bW!35Mh9tbaZqIAsG>f zYUA(fN6Rh_iL%FcZQm&b2f0( zv5l&Ps@+qv$z_eRS#*u8rGKUr$8u99&1tTjkFM~-ye;L9UOTX_iaeESqJYSi4T|E% zRNEeDPT6puhI;YHT4i-ymY;r1_U}_Q($l+KvDtKl$tAISGizQ}=Bq`NQ&qe1vy?R7 zn;qE>sqwE_wl+E*B0K5p^|*N9R=&n<E6f9JgIFV5i#R(DLU+126Yo!GQK}9%K zrizN|E;R0StZZut=0)3bm~n>A<#ketbruq`<=L~bb=PGXi#DqRt;*CxlUX#xHtS}m zY^Eu8D>gHYxp7mR=YJ!c2>Z8}hnp+Ma4EnF2=EFExT2$?4mgR(rw$Hu;33G%2~Lq4 zS&)K7Nkby_Y$atjoUClsuV18|a6I67!1ICU1I`DW54je6e!!Ojb%r4^Bong1Pdd?8 z8xdYo4=TzbAoBtOAFyZwU~bVMLI@8djlJ(r=hsZz}psNM9c)EG7O{ao^qbh z$x&B`u)GPDUwZMhA&eAljqG|F-d3X^9M|@KK7YfQ(Odmo$1j@<)t51jjTXIFDH1Uv3HM-TF%ZSMQErd{h{lhDWQ4Ha z4!8R80DK?rdH?PI()a%la`~!EwfUbG&V7DoBk&h`IjIGs%tBiaTCwYT1Us|UV7015g?ms z1V{yxia?Llu^*7tNSXF8@^v}Q_`?W4FPGvl8eD!#w3tD*%1xrx3iVg)YEa7+F8qFN?`8FwUtVRI^=> zG(j`31BOOZjZ&2GjYCP-Ek6e~L_~sgmbD-H<6D(tiwFo4~^7n?w`jcM4o1sE0HD_ zhbNqW%(eOU2G${MXHlBO6ot-YLINEzbe~ZlQGapItVd>|)y3WJE2p7b9j}c`>_2YC zr$YORpO9M_Qpc;Ngdl|k$MbYLx^^2nWE-rGSa;aUIF%&!HbLW)jUL(cOO6;CPUuW5 zT^HRaHH?o76*{DvszPpz%f)mom2%&Y7d}>h4A?Ifcj1iTb$Fji?8%aZtoGZS6^5Ak zur6CC!ZzEJ4aMbty0oqL2yD`q4(QE{YF{*J%e!7`%y&8ST-fK#So!(!Q`e)B@#7=r zggJ6qu&2QDRc(3S(apYFDUWXJ^gj;3KY{eTvOQtXe@8i`X7)drHal#d&!h6uN8(C< z2tNJ*LXe?o0xF@=QBd2m;zPJ7qKUIwk;2OU2a(sFWC=yC%cBbEwyvnQD>>V0akGd; zs>vm=>`=I6vW)g2do{J1o3vWZ&D0|Yjn zMv|D8s*+A9q9~F$?-pLA=Ih3hB)uqq+^Lb)ITozvw%ck9h(H90LQ2qG_d+gdZx;VF;u4vQ-oB zz3KIq_%`@Fdfxk|PJRBm^!L4bdi?i%^WXOS^c8x~UtDZ&U{d(>xk3ePMWaD~V0tv< zY;8hVEMn3iF=ozs5kQ-l1v#@}n1t)cnGtyl6Ho}5d-A|xmCL}5d18X{;jxzX8MZbv zZ0vDbapH0KBy%c~IlkNW_Ilv;!Rv$92d)oX9=JVlcR=;Q@t`A%rpz(p@ z1I7o84-_64I8nV)s;a1(6>64$rCQ5tb=g1#r(#%kw#wP7OghrRF3T)B%E-=+k~+&Z zvuf+>5|jI75x+Y{9S z@F;adT|Lw{OVF^hOKo;>b~f3$v;hlkw?|Bt)at0!dPoDKx8ciwZ?lB~(&ZH!3K~ z)XNoBPfSAyrPaf6EQr)d)H6v8m4GW&F)vD#a03uxOlrHwY- zrVTc2tjLEgOJ>eHbD&xq8?~*qY)KT9r85kJH7`XgBup`LaNS&&HA533)IBWpT%EKS zHrbnwyfBVZMx9cE7fu|y;LDZEmGY?vLeeA@+m=0OvRV{X=%IL1=4ZD`GvnPYOBHG?dY z%|Z-Fl`k_>6%94Ct)aEFM%HPqC@9xmT~jP5y+tc>3skVQvLa4w+jdUbn%Oqn2()Fg z*v{C6mAh>lM#+Cu5mb>?BuN6qh`kL%F>4wy)@CtnI&G6qN>o|6T4a@}Diw%YDZm3| zp|VEIR?!=n3k*8p>&3`H*WTj|)Kd8oW!V8y83Ao?Ao2*QguYQnBDo7Xn{KwBkf&IoZMj4rNrxG8ftA}XW)#!*cqeWD{Hatp#0dWYJCSC z$sNzFlofx>sr}D>N-2@S9!34Xf=MWCsqe=a{kThBSbCcnwC;jxpW6 zw*BII>Ks+BN~dn@d!-}5tT$HR_p_5Mk+Y!u)r9V5I3Ds&MQu*3TcY#(!S5@$zy!1}VWckwjX@m;`p8 zKROsIofLv=0OIYBcVB;twwj{u?Pn1*#f95~!CJPXb!^&mYihO8$J~-yAR7W|)~MOC zYS`A1w{3NDE)s$<_xHPu#cG-R^BmIMbB-S z-e-Ru;bgF#n>0O@$1XR|mFFEW4P^DlRLne;(yOhoRW{!4IxyNwW3Y7?*-JFxmn3{S zG%kE#MV}z$+T2-a)$(H?eVp9Zs$NJ*Jdc-+dhznvo^7MdTOjSYikYLM4g!8{_(_*+ zfQqqe=RG}jmv_8@H83Y5Yq)O0Gq(MVVF+_DI9Hewy zrvPym-4nw73p10qs5yUfGOk3eE%q7^1F)P2QPdY4bQL9BbQMX+b(umJqU{9ao@mcD z$d1*gC6+pNgCuNYXJ}(*<%%QsX-Pp}H}<|m)cJmge>&$J>)-s&epWdFL=LW{3IO#B z2$fO~Qi%GZqa_kaIL|zUglQV3=m&4{Y4C?=L&iLPpdbR{A`^e@tGuA~jN0KflRa?n zE4K*Vxh|LuEHhMu;k6ZY_bsFX%9Q-!qcqA?JJ>NqSpmVJ1>_oCpGkv2K(yx!!G>H2 zQ#K0~X3o5%(#Es~EZj!L1If!38&f`TQ`dZT%bD3EJg`L|_eKQUYk>j)w?-X2!>XQwA|Wqa`VBn4EtN{fh$=a8hqiZBIGmI{qUG z0b%U}*+54s$&y=NqIIt1dQ61yxVcTPVfv=3$a_`QiH6B;pA_}ZDQM4Ymi$*UAYg-oRqB0}s&v&}rBewG6%P(sDoSO} zm`!E(-Hwec3u>-j()n}4j?V8T~ z0AGK6X;)EPWevL6%!gMlsXgxcz4rE=v)=pOqDcqo&bc~TqzcdqP}KuM(A9qg4la(nGlPqOqR#Dlo6JcpPgS0RHXSRT zY~pDxaV?`6I?0ltbUKM5_8fP2I_gNGlB%UDc0log;{(PAj1J5mFgRQOzNZI@;`SBT zTDuI_-gXyOY;`ctjq@VD~Ukv*<e6oz0Ka6j25d1W|uP0lFg)2mlAdxq?BQV*>{iQU;LH)7%3UkRWa% zsnUY7sL+6maw)`oN15XA*FTr^uqo$46bTVc6%`eJx;@wrxc}7pKcIcf^ZsmJdFPt* z6f$6jlCS`^7 zdi>sUtMe{1>)TL{&TI@H7`}dPIt{?)@sFPQ&F@Iwcc_e4$n;(olN7|Mj zV55k*icK{c{LK25LXU|dFR$;*>Tkv52>Pl#>1*q#M1xgm2uv_CwM{`05@ZcvG>X{f zqS_=2h=fTDh=^o>U#C&{1Mo$U?NdKk_W1d&@5H-*FLkEJIU)A8orYNbrm|^24NeGq z#X8ouRC3T|hkx_aGwvdU-tI|lwp76${5{w|-OXDxWasyA{CF!6HZ_fm$v!JCyxXPu zuvGcJEQa-6^{mpp>#6#1&!U^(ie$_?hdQi0ZQaR3a)g&VM0@+2m}rDcnlq^|WSD`Q z_+f)I`7ohUGK-cEO1Lg`u%CMa8zEeg;2|fLV{<}1>@`YY_1MYZH(xbb3!|@1Aw-gg zO#m*V9X0AkQt6$!55zW(=oHMFh=PAw1(0OcKE;bHKWb3it zDKDPhjup7smz~mo^weux7n^@AH%B^ExgHJ6XG)Sq3^%8zRnMZ+)R%RJ>DgYbIAiPZ z^YQR67X-Z*g6Ny3o@3jfo~*JYa+0u@5w*KC@DXGpRXm8++x z4xEwn>F60H=?Z#wUl0U90jxqG2!KQ)2&qDpq$x^5mTE|UnkldGmtoX#7d@k89F#ax zXG56;O*D$AxoX>|4uv*rBNr(^#+$ckp1UK<%Ffz$+Ni~uboGn0YpsEqZMNsJE2y+c zu1#BEHfBWfeJ@U~=&GWK?xZ-5B0GYD;Bqd6jyVq-(Scr~QF$gcBH@a{XR3&jjO|KW zPO8qF@0a#}XB-~}g7M2hQ$$qNeF#s>^baqfZHn^R-hJcw{#zDDf6aYc8%PO50!4Sn1KoL>`B0u94N56+#eB$0A9l##Iq8XX%9o^$G z2G_yT*O^9VzQnl;l&UHL+eVV zB~(Sv$5YysX(%7r$Y>NPLZ6iyMM@PY5I*h^(uE7s4Jx!02z{g+NSr`ZLCh|d2A8aM z@L`~TDQbbH_hAe#jokKF~doeXw-k_Cf3e*alC3V292JunRqae3!5a2e1!d9N;eY0qg_V z2e1!d9Uwg*YoDvlBu`8pm_0ChK=*wILGHcZy1zea_dXNs06x#|eU_4vKQB16I~cK( zRY^CUv&Eu^I|o~W;wUuYb+&2KthAy`?Y9%Ye{UIEhQw&B-xDSY>I1IE+?glAxR)= z8l|Y2n5hX6WuRIWp%S8Lm{uoiVCIp3q|DaYw=-vD9;PR$rJI$aDWZ6!X@`oXTAJiq z=W1_m|wrdLwottxkwWfDtLui7cdahEQiH><`;w2Ul#>&~+ zB+a(Qg^{+KRZ3S>$taO5Aw177OC}1`vyCyWZ5u?4S-WJGv#q;!#@ewO6D4VXGC-um zG{rq!Rl>6k60+G_wJ^tOM#9Y5BwciZDJ?|N6+|K^rE;|bu&VSF^)!t&2@xqI)ZD~O zDN;zHOic(qEL4S4G}6$GDGb!13%6yVt(scKTTPgp+#?;Pm`iABYz)@g*2Y~7O1(=$ zH#CI;%`DL@S}hCC+s$KWoY~8NMu5_()pDe@N>dfd13a}<)I?D;CDgE&6B6~yM5R20 zu?)v771dPo(2ybv5erq(QxyB67!^U+M2bODm0e7#jJ4%DifW{K=!z&_VVG8gsVJ0* zYLtkjx|mq1idiX|N2VkziRY?$>0*W!WSWf|XJN86Y_e+%h-q!4a?QAZ25>BGrkR%H zXf0-^0>!%%wA&act4kCxw2MVFQxtPC3bN5MktGry% zT+K~HOv43IqIJtq+d#y`)>*R3D|XvzQc9GhB$^wkS&HVWRbx48ZM$i^PBeD3fGviy zOKr5wG@NHGZ4|>i*HKr07d(kXkjl--P^B#tFp%`oa*RBw6pe6~O0rPMD;05ar7aCr z3q)0PuS|;6k#i{(bf(sij(jczTinsS(wMXmBXK<&Of2M`a)kzOE)DB=(_l!8*F z0)Kl%qn@6pb{X(&1wQArVhKqi1_P&6o-6?7n!h?E^5QQ{MbG%1RbfL#DY0iXv;8U)aw6zB>- zq!Fc|4IxM_f|VT<(553mnnILX5Z!VQ5Q#`NK=BA^S3=O~Nj)W*gpwJG50)e2U5`bw62TD>V zfGJuL6i}3w+9FPpao)YLdAm5Oyo<||C%86$;=H^ON@)Uylqe}^ zp=qiEthYFz;^Ux$l;sIeAc4%UJiLmPwTq=DRcMsXtb{U21|@{sf?_d3c^uIUr z&&)D^3in(|yBaw=ayOAmlY#uvj5R!H zcYY4$G&jrL1lIc-le zDB#+U9qZ<{#osEi%RRN@J+{wdaM@dHeIEe{uqOSthN@DuFFRsH#){-G3XJ*ypXxxkhX- zy9-+lu4^^-_sLFXj>Dm%90>$hdejx9Tn{0P;!zQRC#~fzTtUMPDvy90lBw0OG8BoRFwd7ohLyFI1(R! z``RG#^-l_)pe&eG%9e>WCa}(ytFZ36EjksaIx{IN*3+%q8HljTFvyjjVWAT+k1lN8 zV{8&z7S`tuF>2Aa``yWN`8V731EdI)w57hJnsJ2&z{@lK9%Qqe%UOMKHt^o#yH~&7x-2w z@5k(5AR$;M_fL*JS7rkJ@jSj&Gx|~TLqDDkBBT5}82rBz^s~_X;y(nxrr)L#3n2FY zcF-sY{06}ifAp0hvygiH0FPk5@7@O_sW-L{}81O@0 zJgQP9+5GFev#UAHWq8i_E{98HA?DngX^J(?=<}kK8Ow5)KG*p~z-6gzok1&PXeWtk zKNql}>hr(OeBdkQ=692w5fNyAJsv@c1IgneK@bu$@*w_x{~&5F4`lUlYSrN`|9JR& zf*hvF8y_L4q%Iet(N6+nOdY6bbj9InrJ=F$G&~I;nF)tm&HQVf-Sr<3SvM6Ardrq% zh3Va$*I8S!aI#!{O{0=yxr2n4Mowd{Ss!`TajQ^a#`@L9ls-mU%)EMkD943l)h{0# zwINSr^jC=E9UxZJqRFd^Onh8{xEH1=PU^+*#wz6@bwi?_Tt%uAC!;3dYi@2eR?klK zyu4csDO%r?&Qox5>W~%7%@kks{NA@H0e@rc0C7e9pb>fiB8d7CL>+P=plMQ>nI_*m z(meYfL-HjERG=S_M2IVY6R#kO7n8^2h=7cYeW8>ijj|Y{!apc^pz}fH1I!1O4%{4E z;&9|Ar7T4&=|TaRBA655@qu`i5E!B!zW0B*;XdiRxLU;8(po8ydSpyd;7M252!SU#tQqR^pg(2U{Y4j>@tas~#(GC?T>aNRwi=&f-=bEmwi7WLL2mN_Pee8%73rHm+OhS;Q#Uz}RqK*)L&u&EL zlb4kfkt?>8MKv#Ix}=4LVwrH4XRcc|a8lE@qc)+8XSQ{nM#h^8S#?m0nZ|5PW?o{* z?F{8K)5`5Js>YTy$)bt;YI$Bhb#-TTTyY#-6ekB95z6v^FL;t@fX_oPg1w>y5ngpF zEnAg zLMYG5l*lnkL}byRO~TcngP34ozoW`Vi({ShlF(3zZ1frV1cTJ|$PZW(gqSa5JebL=5R5piHmoe(O^i@r?3yKe) z+_&0=bnL0r+#*S=k>5Uc9 zscyNfX-VzR?kcOSq8_yjs+745T=2$oRYIl?X>Wyp6i;4i>IPMl8oA~!ld&ndD~DB` zLReLPRD~FAR$i{Q?6ATy5qfKZeNzgq3(8M+;HnHQ=!^S+R;P3MIc{Mx0 z^jezY-{p_A&i^Yop*tS8OWzj9+jP7mAiA!-2|7n4`j6H*tD<{tN2JqC`fZPwmfEYn zYwd@B9;|Mmw=zlOu6CWpJM7gf<9+l=R;W|LnI%=2Ro;E0CN3FM9K4oOs|)jtCDCm4 zS-A-^uak}WQjp0Xk9by_n&y0LDJ;*&kvPMHOx8|y9i_oP7;EdhtqJvE*1b7o#Ts;M z@$Z{;?bnA9Hds&CblX60#{~|)c)0=~=MVsY0Z{|Jt5;TC#SWhUuB{U8nxNwW`THKz|%>4jHMb1Gi(GYW=LKqr>I=VryidfE4peO(cs2G3*QM7-*_Dk0p=;^VbV}&)gxm8 zN&DFcj)vxF9w0EQEVMe#&ZV_B&Z9W9zJt~;OUQa`IODjaE;#IiqqZ%b*`&ag*%B7=LR* zHkO)g(aAQ^Ny$=5r3_5n$#PUg!zsHhjW%Z6X5F|819m{5*kaAL>=ZLiWx+gY}SoJ z*38L_w*<2$V3j6rWolw->6B_-qGIM1Ns*a~hNdApWP+ZWDk3Q)C{m#=Nqv0zkvBBVtSfWSthZBf6v;Nt zoDr==Hnq2HyJY7%yIIR}VpwR}ZN|4tathKm)3u-(jP1*2f}wi{2=0jzi>gQ=h8|Xp zt+``MPRv5tZbq_NnHHH8sFQ%jA%6w6j%ZGsFj!@i7;K%2+cdOp$<~={v<%ouNnAqJ z)GtFzLW)8|b7`8*Z39NzmgLJ0!W%M4sWrC6Ws7YZWv2*hNSHS3XwBJWgHtj>Fw4-> z#Y)1Qmo!U_Z5m9>VC-WewXJF{x`s*?7U)>H;+vK(o-+`&tjKoFn^Lqm!w@pXuo+m^ zBaNA{I%_2J*EEwc#xZ|HZ8nNb>c*Q!)MD@p-vtFUlqo_`(M3TB6cX@?i2N8p7yL;Y z0HjiZprE8_LY9*JJh+08A{s&WULXF+r+XbnfH-$MUUlZ8g{dAsKkT~yZU z)7+2Jsuy4G6#uGA@BPTd)xj=R&iScia)jk}5DY^-A910M@Tp@*-*csIRb)I-{^b__ z<w0tBe(C4mcgqzYlI)1vHX8;o>{QAHx#Qq)~mI9o%a66 z+Lout#z}BZJe$m?Oqa~h~?EP*KAGDue?I*~_pV`?JOo4RiG83Y0RkBChYxtRaPkT2i368^ zQg+n-H7tM8uGq8g_B9_M%`<24t_AF&B=nK%d)NsJ1NHCmj1c9B*)1)KV2Hjx?9uf$zEx-$V@!ku;8?k-Hx&K6pjsc z?Bj*^18HTV1pbvfs=$M*jyfNa-Bz5CoiGgzQWGl^Ohi=A zfc1ZTJJG`OsY0Pqwm=cLYmGU}r=(fZW=d#GF@6C7l33nH8Gh?jeAo&m0H%_f8W5@` zRJ)16JE{b9isF$dfbMeW=sCoq25=aJ1Ox&G zV5BuU@?*ZB$iCs-if9p1W(S2L!q*MJu@k;OI$9 zsFBGo;^~P$Scm9Jl%N4Xw4^`iE9PfsGED@L|bhUM(#8q;kxhdWzHs;h129qG>~p4aI;!|WfT zQPD5UQm$a|<}WML$#`S_wSZ(5E1@N5$=j&r8S5lD>ag)B8(& zZ=S49&|w76wmm;dvFI^_=1?S)YD^>SlLrEcW~O{tQ3lZBh>wBDaii1}+UG7Lv%!UP@|=!=Y6E7Vt*BZykW%;2`qt0C{G~{(`+oLsHne*8sj(UP+Pt!pqwJh%k zxbo6d&bw#3vwNpWIuD{=8GKLbt(dwFVyl0r#fnG0I<>Or z#?}$7V>E43RJd{}Yw-+Y%e4z@c6g%ZP?J1G5eNZ~Pmn-VA)~j&$+NewV!060!aEn> z?I(qsBa>{rq)GvqvP8)fmQ(LCjlLS)N{Wf(R4e4=oto{P*H6i2$|qRP_S1@GcyUJ? zkybWdEw(k#s~$zF+*g0&Ul~SRlFa>4%a;=hpz!FQ3uTxw!Dd`pqn<{rP_<>8SbC6f zotCQn+c;}1&cj~fxiejg#ZkGi>)Ekv%3E&Un|moqjB`e=4-ISq-<`+5`$Nfe`S{#?=&jEmKGb~f zn~pi@$Is&P-v_DQc)Nan@(+?4NS2C1s(~q{VJfL+T1JXgqMz|ZB$Lbsm=7=>U_8Ka zKo9e~j^Y#wX-IzxfBwm*{+LY=3gS5Aa_KopD7n(V2f^X%5qpJbsRWCN1QdwA(6N1w zD-p`>C`S)kKLnm0+-p!RgEFP-%a=kpXpmIL&lnpVv(daAWp&rrMXRp07$}%MVOR%T zM0((*9vH3*t}r1RRfiR8?*W3G##@oye*vZ-rYV|9st*sR>Fw6*!QIcf=X2>yTJkXRNa1qXkWFEN0ggclqzPjPc)m`wf$n;zZ<9e>>@|f+&lr3JGQ^4LYdCO{*B5$(&;f z<|}O0i?fn58ts&sF}V|R!%n)`+Zu+klXIQZT9L#~jfJ%)aTZKCVv$^7SzB+Rwm3up z;-4BP$wA^I>+FUn+U_Zt_9^8C_=zcGX{b?ZemvMiG( zOZ-RLbZ%qNnn3qPWW}+5fd!(Je|5##+R4_;W5SB>} zw!!WATg4=HP*hltC%Kj^C`SGtXwX$1f0b70tVK~gwS%cCD6Y!ALqh>ns^5U;lWr=l z2{}gl2PBW6>!;O{yfIl__)C``!B0DE!gellSH8n??1qGt!A4TP7u~Zw#@}`j#{zvW zf4+}c#%$S%6!_&cxZR=+reNH7Su~2FU1rkwEOeiVdt@MO677Qq`oPF#blxfae^$-w zbzg+zdr4On-7+^F5#oBhAlAUvvgwVSeGU~M$SfXG5Mc6w^n-bXd5v7?AfC{NKz6-+ zJO00CyWsW9zutEbVao7znu#i;>oxq5!frs0M#I7p%DzG4?s6{9Bs}$1Rebc04e`g*k)Th~fiocd_C|OG8$4yS~cB+-HKK#+A&qj zVaImwCSc@OiSfHOy5FwM<;x^BYb2hHUNz&@)8TtQ&)N5UZ-k!EpD48Gf1nB>B_kM3 z9Ct#26ryx-$#CSkaODn%M>*F5bDc^|%)?1he9U2hiYcg|y7@iSAt6qPeDIDUH5(Yj zGahvuzA+AdfH4J;Pzli3*&#+;_K`@0f?QX3rG;;(7h;1L;*nq(nwk&S!o>sZaf1XOt|u+7I|7(G6ooC zW@C>c;|%%bYTY(>HOD4m^*ujB%=Y`#_Z|MH9;dwY(ugQNMTVv#e^{WXofH$D+>sq3 zave*(eWRRCj^!eVL#Yssg%gP)he{RVS`1^}r9;f}c_W o>?)rOSMGsM)jLvx7y>C`0+4bNiOA&$FaL|VBAh5lY+D*0fKVdMX8-^I diff --git a/inst/extdata/example1/Input/weathsetup.in b/inst/extdata/example1/Input/weathsetup.in index 55ddd973..d2fc3834 100755 --- a/inst/extdata/example1/Input/weathsetup.in +++ b/inst/extdata/example1/Input/weathsetup.in @@ -10,6 +10,7 @@ 0 # 0 = use historical data only # 1 = use weather generator for (partially) missing weather inputs # 2 = use weather generator for all weather (don't check weather inputs) + # 3 = impute missing temperature with LOCF and missing precipitation as 0 -1 # first year to begin historical weather # if -1, then use first year of simulation (see `years.in`) diff --git a/tests/test_data/Ex2_weather.rds b/tests/test_data/Ex2_weather.rds index b34ceda3465651a004e3732934e3520caac58262..0116f91c78cdb27ff70d2538aaf92ba0af732c6c 100644 GIT binary patch literal 9162 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 K^L6H;ul@@`%(*ZC literal 197319 zcmagEWlS83^QX9g)&oKoDS6nB@wiaW(+aJRvkVc`DH zIbZI3?wj2G;g_9ft?XncD|;pTS@f}3NdLW1&k)$}(oEJcyjl|K>5#@2l5!Df8X4z|cf`2mt#YKpgHhjxlAuS>ALry|M zj1}zl_&+JjWvoB5oeEBy^6WdD#b#Ahfpu4CVQY}_EY$t$ z)x*)ClCF*G*cMzH=*-V;(s_?hzoNUE6z17P9XwTQvI15KMe(V2x0(vWU2=tOJrQ*7gTT zRkaTM4+5)NhXei#umwZ#+fxG@#Mdg{-T=)1fkpV8Qyma*v9>QjrOJ2kzX5AD1e2dG zStE?AeES2~{|6RPcc*ng+Qr%d*qtGm?sUlp5l{sQxudQFqAt4i2H02m4*fS^@rGcc zQ*mp=`zqhQ0162n4+#ni9uNO?TONB4UXkM;&>G6i{}W*BU2&^twm8UlXtn^5WXP@m zQHv5xwJUD(Y!?TKgJuf?g@@dR9w#X;BcZPUA0$98C@=pPLZNh&m;Wcg=)0|!&*X8C zFsO+D5NF7(?~#}CG6tIWzX2xOZMA;>90&OUH4y}I54rt)tfst-fSUhrfbn))t)9i= zAd%2D0U-5|+rXm>>=Oq`fUXGwrH0&wAI~W-!=bYO8(`F3U(09w zI7lc|N&tvCblLkzOL-X!?Fllpmg-^Qsh5F}8CrMt^cY&hdu9!-=^%lI*0PW{Jof%@ zhdF{9xD^mEaT)c55CGF3JPbSoGa&z0k^Tm50|ZT6CO#nq!GME@;pdkO$p1|QAl+bE zz93D|hdiMQfRGLddY_Rq{_i5;4W{*r+ys5}6RIGH;ecT9IWzV;u~{`*t70EqB_p#NDu|8<9qH`elz2@FnozOv>F`j9=Ocw zQ(1< zvTv!TW7rClGDWUt=X!0_a+BpihIT_F>KpETxCst@o`0HBvmo(z@y{5m37M>_R=nlD ze^uOA{J!6Kj1lv)q=8F?R$H-R>=2Z&YtA&vAKqq9jGXav7e%$>2_4aHUEd!;3x46KBWbnE!e*RU0;R4 zS~2Njl`*xIe@!1BtR%k5rqMJ7kOViukZzuC{sjoXrJQJ@nAwH_`-9?yK1wlYa;s?0 zJfry-cM=ziNDa!}t5<9kR=OSkahwoVz9D%O)Q(%^@73OAey?3!27^RBeOELt50H%` zDOkWf5(M$bV^RvfBHg&3km&FrT*GBjw?ViD|n3E7_Lj`T1IF3!d=5pUk#DB z;;Zf+^Z?z?j!m~vkBI7>hojZd<17l>$jYxL{P4@EtS$VdA73) zsH?Us9-xp-0E-c!>ke z5W6Z_ShHns&h5j6JB1-cGhAx539>BOa{4rkdl;w0w~7{2=uhvI9f8Rwj=QS#a2ILy zoAKr7&r@ivje@SeHtQhUb#1#U5fHCCAS=IkMfC5@U(!TuWnHKbGGB|skl^IF7K+xi!=Ou;I8jnWy+-#<`g-c zkM8Qmz50wa?s-;5Rh@%w9>p6vWD_%Pv<1xD&;51KxL@kvSgDyspXT>$xaCtnxLT@tUzEe-z9V;&pWYVie4LE&iuSdxipNn#=7gnGCqIycKhjT$f;Gx`Asm;e>WTFl7gv?wxrIs|0XRqjqU11JLq>cIF&Jr zu73B4FM3HuS-OS{>PKSy3P*e*t0no`M%V8LuqtY%V9i}jh>r20ljmsz*H{72uilXi zcCBZ)-LDG;_9P9%vxtYvBR?Qst1VdELDAMyo=vdHJe3gaHKKu+vE4gu?DX_uM45mT z-<7|<^-}ho4^OCSewT=TgAVR-y1&QcH3n1eor+=@{}tmrMQxW}S4z_CulBczfdGbq z^oPY*UuDL-AA9;yt>p~F)vtuW+IU;XJ4HWw<&(CJ6$jvlt9D%M*^@*TcL_&h0CQI@ z^QWL1*7!_~Ca!(v;*^v=6N2X?`OvjZ1IOHv8JtN~KND}im!dRK+4@4UZa`_3(Rg$?53`*~WQ-;oM zRH-jjv&Hz6aH~N{oGyU(pPTO9W^Tj&Qw{?71*Le7r&RrjA8ii1lxka0ruZA^6Ag48 zM&&VoAigtv&K`nD&6GLx-MR1E_ZHNSXqjUC6m&6sXjr0VvXsO&6tfe6y#*xcLoh@? z?Fr@+Ul6c5TV#rXlO<~~%?XlZU0xNwT8RXDwgI`8^B7$KN&!t?sB``2o## z^^itCiL-pl1N~ma@9-sT)^*o6lw}Gg1j!gRwd5BRWTtMct33&}g4#5#`AGjclRp_& zWwDH(SEfn?S^6gkkTqaZUX@m~_M?fh2HCp%e>lUWt_E}3_{oxP2li?N>11?+TILq1 zzE9soQ8iX?F`vkEV6=B0#%OTHgv05of z>U8W5^$?y%1eR<*k(wWHs)t}}5I7Z7|2u8??qCSPny_Z} zrnT(MIdI3T@2u@-zt3|0;7!(JB%BDGo*4|1@A`Yr8oI>Um8Y8peIB?J1g=5auL4*@ z9`v6#W5UjLU3YHJU`s#d{kj#}Xo>RZqe*JZsvc#usjD|rt(@tn?FSPcc&)nVc0ClR z25$T*mu{Hvce(E^2rs3A{JQOjg4Q!Eu+~WWPh|j`n1ffcQPU7C@bHsMKGEM7j-3au zv1JP*<5$L@1m*u+g~dY_NUusY3~v+IjH;(6?cyVX2xz}uQhd`IE&$Y7NSOYD(gxV8 z4|Xx-r#)+>lcnFj0n81a7sNbhX_@A)1Wfg`rVgDKejl%#-5g-x?IPf^d9|%Ki(K)- zSgf?}?giWm%ZfAAuOP@;!{5sKrU>NI$-4cgGDUN0wK^XdXjcOwuiyeD?>fP|FSN2pq(jWCEm?B-hVedu9kQ8~%`J1om=3JW$i+qeg!=egZWlo~r$u8AEhN zalm(hPt`Avh&#Y4+=XWHp1LQWgtiTA2gieeKvJ)hi%vc{if9I=P zK3J;9?r`Dkp%ij$zh={tZ+Ez&zYeBtyo5s~n%-Pq#y}-pNaUs4YaRXbXP^%dF#vna2HpqmRhb3pWS143dr<*y~y0K2d>fEJ*+%DzAQv8 z$p>BJoAJNe$aYywPA$E*=0RYNKJ@U|n=6ae>Q1F@wFsBm%nk>*{AzI z!2>X2qK6<`2J-Ur#jQsFm2hqHsO1}*Kztw!eC!O%WDx!h;^-GM8yx=D3D-nQVW_6r z*t-P<{cBi`ySr|F1R0&Rc4D~YJOIk8WnX_9*Y^W=56(qU!HI&9^NW*2+QPD8n@KpP z%#EGfQivk~negl&Aw(vy?t+Mv?z@^4yy}qn*7k7fc&c6oH$Qd^ zaiA3aM@h!=$jj&Hwv*`9?OCrv=RQ?i`ttmEnf&Wr&8L~1N+#9Nc1_c>di<0%>rHio z6m%ielg-p3CKmDL4pG@C`cX6s4baSi0@bN0U+%oDI@PZ8$;X9*_p2YW_S(rG;FCe=iISBjc{A`t$tIU5+L z8i&n*k9m2w6F$xv<8S=l#9D2Tz+SOdD>{4*G&tttUd(+JoL;9s8dKU;=eW9k{T=tm zO+xf{SuIxcX6bBUl{S19;jfu`5{Jn18jBobFUo`I8;&MtM@`W+>8WM*c$9LFzzD$j zIrdKH)1RhnYHn!w{yq6p26rm581Mkc4HjLoTiLRb#zveU(j_@0fbyNWnl0nadFZaw zT)%Ea`XE*^g2AdBUy%I$m63@MGDN0hU-Yzz5S~3>?$q-gi5U{MzK5`naqB*yNv8D* zwYXcH-`n}9Ua7h_C&?)E<+;SUEZCB3#A11s^`-p{+HkFyqx&Y3+CCQB;XpIP>eDay zfF;_M#U$8n>7H`0w)W%bi3?i1F3iU_a=3Sjzbyxvi!%$DO|vOVc{6sm&P#rhFE8tz z3~YFCNzy7XIS|M|`cXHc%*&3KQT#x=!u;X;V}STXs}=;OqCQLAHtJ{ZaL!@J-vf;3 zO{#S-(Gyb2&D8mxSX?<}feeE!Ld+uva!R_JE2R5-Wi#vpy#kN=U*n%oQU9E<>NGF2 zqI9#DJGuhalt_RJ>=O=NyPV#V|!EXHQgkk}uUL|vZJ{ra^WE~@zZ}^LUsg7bgBs9oP zr0-KOS=;iZVIpaHXkk<0Lb|Yx92ekFU#yMr-xo^$nh879ryhE-JA3+2!E`Oltx=|= z&GV!y>l&ORyp+$8JyuAKf|s+~w|AE22dD1IJro~3jS}ZQ4#PWSii4}pWoAG@?UgA_ z#3JmlV8fiUKnQD3=5YbjQEq|70go4^h*^&ByB`PP9Ev-_P$aP#Q-9uX)2oa#CI!|T z-rM*ik4ijEn+|v|*8&b;6KBwV9MTbm_XxOaAL)1YCpb?nO2#0O z#VT2c+~v_2g42O2sfzewrFs|1Yg1`a;{YNT_4k|?k#ZbZ|94?D?=u-g^WO1#tT5_) zN#nimLc5#}+urEgCvOHLSFl}4CkAf&=W^mNo%}c`Ut85Lxt);p5VP zdi~zLJO+UBdvEx2(3!vG?@<#oqfT5NwpK1$4sp~5W1pb(ZQ#rlk54lP88SDx;{-1b zv)6svtEa;@Kp^*wk|Sdt+ZMA7pFKj5fgT*J;jMy33Hee%$7zW9*+fCS;@^IlM|knV z-Y(qoAiL7GRSy-nsp_~vuPyYpuHs!SC;14Kml%9aGAtrac^QXWR$x~^&F9w+MnkWz z=R7iU9mmt}2DTmSjA8tDL;IznM(0~oV-r%AIW|pe-H3UuF7a#8Q-MUk*d888wn1TEuLPKH#D-L#Q*V(9h!b@}QV=8^pHlH97 zlN7zTFFC=9E9NL4r|)L>Do`7%Gkt6dVU|>Oyx$(a@@J@Ei>7n=hmAU@$bXF!&w$x^ zqC@tOi|N9jpJwaj+@ls4JA&$hpnju6c$t=kcLx>vtAvJFnW-MZ{3tky4;pu}72%)S zVRz3ZGy)dG4ceDGLP&S8)j%;t%l~{q7Ft>$8&23@o7Zm=^W<2lf=|UzxYOiWV}DRv zN-*TDa=ha4(AxNbj>}MQ&fVPLwq>Z9UwS&WiqY!YUV*z|VaG2J3#Po=EzXQ<3m-yk zJ|ynLz1(Yit-hj(Ixj^h9>YHd`NTeZXg7VLPb8)3A?v?aRe|CZ6S1o~Cf$#H&nIaZ z0~xLYHx1`E&s*4O7TI^gEoSKB^XtPYTu7QO%KkovCE-SfBI72fw3g-^Ex(;I$uhj8 zh30MiQTGy$FIUu?`mA-@l`1#%>)NEM(-v;iA2)MHdh%clUR_eWdA41o1%z{(KP9$^vJYbqV3tVPZy z*qtteCf3KWD;Z}3bjuK0=~}=p)Z)Ar&u@9u`?qgp3MX<%1>QI`AkRIUbvGLSWNBFa z=Zy9%1`KDhjfS=YT{vB40@Gwto*#71IT|V;peer1FX2u;K@Mrs6mmilb^GhX-}9+J z+CJ*+G;zJagQuY3SdrP`Qd*!NT8^%2V2X;rA%p%tK2VlDb`|y5Z!+wc^poY+-JsdF zJM5#$U%GG8u+b2r9x?X6e#*BZPEV!P>H$%BloTKKa(c@Rt13crTw-hH~$pAK-R$4vBQXRHMf+^$ZGI z2PLUz?kaW{kkJKLj)i^U&Zyh(^3H-iZbDD7B6JX^<}>S;e`bzT(IPuj(p_P;$i#P2 z*Nd*X2ed+zFP{BGC5J6;c8&6>g`yY)G|fNdJIjH?h>{PwJN2zSI}oMJcLS$$MB7-f zz(Vk-QZ2!VIv>u zCOJ#wr<4nEFN#oIg~*TOOY$t1rWR|c)X{9awSE7v%v~8tu1Sk*}P>w8X?&ABpliaYntnI(~I%A+-UzhIB+-Gs3u#a2r4E^f_kD0 z4X)A{^@6d^yT7{cnejJfIZPr+A0K*1=4zFTc<-^jSiLyIXC1`H8?|jc14pZypKS-r zNHV(Ykuik=_Yijzs3t6$nKlc*PQpak@4^51uT;d4N$ach<&_^3$Kitk0%GF6XRG#w zk*jvc>bpY@^pra2O&g8O(W&Ng56?xu$TxJ}-mI{(C6BJtT6ePvj?{4>G(v5-=57+F zyATZ2$#1Wx&2u{OGs#N`7NlGi0tjcR3T=Pnzrr`V~u0a@8KPPZuBe zjZ3MAg^E#TZg+WN|3x*n@AuH30JL&$jh^i_55C&_`gnI zJA%7L_nOtP%7LD^{x9oj$CChI%!E@0f5?xYrN|P|q>A=3_ADrlYv;G|UpN)sdRSB- zTsP#1*-QCq%r0V^*4s?GepxWwl__NVr*SbnC6rNb($g!TFapPUi@qk0b?Lz_wD?p( z7fK}pm#ig=vVR_Ur{9c9>loC~OGT!(H`YKr?^NbeTL~>j3|kM&|>&G?hMxo zLzS*6Xu4Q}2_64&*P&5AGGgbsowFR9s9Kkv5+WP}N>sIJ$<4(mj@#0{S8v$HiO@g( zv~>kA$@1Fig0G1f{WX$tSc&9Q>5aI%+I5x~SBi`CKFH%FNqXO6t$QiGF_$Db;;WVm za=Vlm^Gav@n^1h%@jR3?cm23Fv7Mayp*SYM--2Qc{+WpNe(ixn-`7=}%$9@EpZlI2 z@^&(5eUFvDJTX$0OSy3RIUbOr0Ws;6X+wpc9oedmPs#;30lTQ3H00K8h|e%D#q{2b ze`9|GpJS9I+Z{*?JWd+aFWw$SrAXGxv3cQw)~fm~U`Dy6KPRW=8!UYEA|@6%ruW}5 z5BnYocH91zR1$Y7dG_jFC@`DcvLBRdiI%cmZ%=BTqjd~eaW?yH8E&{JAi=K&Rcshi z`Pc(qj#Mg!JeKNievpOiB^gyNL}VDe*Xc^VDZx$4zRW&RL&g9E=GS~vVBin}TgVs? zsC6~nb?OxA!dl>CH*cE>0dHl4YHVZ_pXM%HoHjjUDSu@)`8_ccdGH2$J@Ksx4ssc{ z-NsL$42sy-l0u@G#t^^GUl#L?2@zb5zk}1)Idk8N?-P{75Q+N0y*2L}kadoFV!qF* zMBmNsxBmDds&tMwOcq8J7&>}aRpj-7eumq^w2CW&^sZPy z6^yIm{ZodQUv70NZ>hMIhMR3F&X*&s+Roci49i^gRpFPq+_@8pE)G_9-1@}zLw-wh zEK~Cw<*LFShE+Xx4fJCY-mq_`X#xtkkh4QoKOm_RgH?=#5fYj@BnT|*L-R=NMr%u8 zuBJ&tP%)cK$?!YP&uxDc7d4MYa1wUr+nd3WpK0zFpV2Y3%9}rg!IQ(8a-WD9o#=1$ ztwfkP^`fz)ZFOXqp>wj=s4a>Bts&3t?t>I+(B4(SOZw;DO)i6cwqbeA9JOw+)fomf zSQWU$UK+@7-N<@0iy2))eXMEIt14f%^tCNN@2a%yW;t7rf7PS2Kg}m4y4%J+DiWz5v;si z8d=Xv;^;F9N;`*VWKSoE>k&Q$()|RgN|8ZS*t7j+)NlTSa30l6%8>`6V)bliAN!SX zEE8&Q*FBl8z~P}K*a5|pMiRMGgiZeC_TLKoMtDJkje|;$9NCrKd(!;GXe5c?`=so| zGkG@W`E04emjYey9fh@d3Wm2dU2Bs!TqD@7u$LeQOe|mZoEirS5}eH&?~RP%c-6U{xtjOFhfjd+)2cgnOfySJ)&d8M^V1F zkPdGg#GrcydmAcsU$yW40|jKx7TF54F%b2xu$uE zMf(Qhem3UC+_4#s+fOBy^91+iV5T-Qc+o=Lf#aB=EeHa9XJh2K-L491BV73t6R+p! zNYN1oG3Z&g8?LnwpH}iHb%=eF)<1ig>1ejQJgo47I4L1fdSJu_>&F2_)3YvdwEAr- z88JG;U>nG4$|UTFuWfI3nH%F;cAp@F-YC2dcrfbjqfICZ#XdR;L{Z;#8#m0Uik@Bv zw!kUokf(j5n%Tvg8FKo_hfK4O)-AvrGi@Vp)Mdn5!0~}tL7ta`3Zpg*1>y;sV1Cp> zWpakjbWF6hLv+4Qb~Mv6z&z-T3j;elLxMmY4b|lB?mA}I3qu_TqUXL?h9LkRXgFD| zH&{?H!lqAy6*lb_=%?`qiF$|dQx-qAp3|=gp6emP;g+7#`-njKEM=LtFW*E3%2GNs z0q4luI4EDuKgG=N-bK${<9LN!WXy~M%lOpotFAs5m;6*6X*gY(eP>rBOxo@QeUC(d zxDZ`8pkTO2jrR>ZdE}(;En^XLmKB_nPfW|%4QE}x>N<%`>% z&m`#ZK1eiG|s=!qTf@VP%^-dCF{H%|V_a=Y1nc05O) znjA9DtNmM9l`-4H%gzj-=k4!ChVkyDj;(X@YPtyBfr?M`tM-J?Q`}EgaVB~3MBw!8)BbozWncosz6-_2g(+@E z)cLyj@!4-BD+s9emle*EMdnwBF?XUlUz6)6*%Ub?{@(58S^E2ZzTWnIe*!_lj8TY;z`koYX&|Bvbrt z7s|<#P4qm!mTJ9wBP0&3w{8T7+(PJoEKMgU!&cs3&OO$WoS$LZZDx?rtI<2U4LK4( zVQQ$K5@vcvh~2pF>^4(LKArsIe^Sc*wmXsS!2~+u`P38WTOM%%0iY?rz%?a`I=G;| zPY=xH7OOE+&kvrUz9|rlP^SFS^hNtgeD^J{@HGzq-MGxG=4;J9VB3XGod7OjCI|m^ z>~<{wVPOw&rx*oeP2<>K4}YmzAMdOIz*R^=6;CUCvpFA?o9FFY_IzKwqte4bu<$YZMy(jROhmVRR3 zZlJ#mn$MpzIRDs5F#Wk>Vx*7vAOD|0>QUgWecQp(_3I}!?^o7nNbbcD!?G>}&v;&m3JV~@#gae9x@E_=m zHv>6vvXdtdzt6^1jU%$8nNPn}{CPZMGD&}(d4NE>_Q#5@yC6P0~GEH>L4Pbz0){5EEtcx!3r~=h=TdOT0(E0`WFK%$^UX( z(Ei(T3HvX{<&FHXCwkiQ#ec;GU;p29#_G_W4_;x-Syk05u`}yX=SgWaXaf5$rTzg* z%>WzK@JG3P&1A)7#!KnY&&jW?I#?Ghycy#*b zebAatAU4YZG3qv;?O_l_4*=`x9$F?rbN)=h^hJ9mEnMq@uLGI5DH#zm}$+4ER6jJqZ>)+8cj1?;CE#IHbX(zrBM&aMj- zfzg|ex`dZ(rkAd_ZN+6sw6S%Z$ue&zJ#^_Xo5;=0!Co>8oKy#As<)nQkV?7^?oYGQ z$2lM!7Bj~+7f6d!W?o8}%7oK{IfTt{SJkS~TmNJR?C-^{K)Qss7&I;E;RH84w4r$X zuHmH`q)^4tWS|yG^onz5P~~0#VeEn)E)8$JOfnVn^^5bha~CZ7 zIO?E!yyQ!2eL-=x#dvefZ{o(yiUwj9QRDnqhS8)9zp*Y$drvH=_U%z-fhgAZG@{?@ z6hDa|hNe)7>Bhmw?5_xMa-xnaE?)wNPWNKcu`)UsuT}>{_J7H41`F!Q%e@;1P+M z>9-hH!Z5uAb{K!+EtN=H$aCzku8Xgw1vI*hosQ4|>)X*H=@$JyhTre<9e3A&x`H(V z2S3Fy{=(@}O6mEKcLNi2)P_DYxID{ipo)<_&9Keog58@(O(4 z*s~x=AVb)>i1fRUahs>VPuR!khQsy0t#Sw3x*Fx)*bd5ouXrE6p~av5NnQ5xD3Ctj z8EOV+U2hLDN1n=C6=XVl{mVZ?RhJT5ry93Vq*^ld9oPPgE^=rnzE@|8yq`@~t0ZkC zcNVlc)PO=kcx=qkq~#&2x~OlxiR%ywTP*AMPjD{Sx{nSju*Ci%q|CNlri1HEIYw;g zStXaZl6&)R2el{r*uG!qZD`iUKPfAP^o)jesotZMHvti$x7lWCp;-oZW&>#h1%Y7U znypPI-E>hx2Vo2RuQ9Rgw6prUI-M(9qubb#tOc2E-B=$#=a@7vh~RjOfn#vOd}fy3 z8yEiOv{ZnUX?N_sd8=~ae`R|WCVzM2E@;6;Nw?wB+^I}=yAVt#w2Y19_%3w`_(_7& zd^Q#w%uAL^hWq_(9xvuXRNUve`GDdIdU<*6vx2rn=JS6`rgeWPO?;~zVVlO(6(YWb zp*4Q?+IFAOkCaQ(;Er^d^M(7T)>A@ZYPg5J4VQ{?lC@j%t3&8%3d29PE$Jw4p7^j@ zCDGpd$dc{&%7%qb4(qG4&;T}lkVZNU{MBc4|J3SsiQ05x@bTaR41-?w` z$l3%@Y8KJa8_q~$yieR+4!GOtb7t2sIwWz`Jty7KDhCk2bQBKTHfxae)(dUVPtq-6 zRvzms&1{x+@P4FBe$t6U0rMdCFK9zjkRZ^P79vewqv+~S?dY&j`v^~b_mFM*!#+dk zLIHY$xfFMY+)$;*ORlJ1LGYvVr`Z8rftUN;%Cm648Sy8sJnmoEzs&Qo++YqyEl~n3}Pz`Nji4e9egze*i9trR`kPmEO51gUByuRf^}(stl&iVG!DZ zgD3%x=3w}!3C7ePMYrB%D=oXfYmT6Do*c3b$&}Ut%+(t4oO?F>Z4w)a3U7k*z+_YN`Z&>HZ?ww{xumO-7~fd;a>c zu}U3m*|Y!e&EzzDZ$o2%j!YC?hV-JENg;?rGe`f0}AC~s5eX=3bPuM(o{ zy{sMPw-0%-{NIpxnw+oC z{ji4!?pK7{;UO_eOM`1L8Ox>?`3AS=HyLB;~5E{`}EE*M!|y=U&be>_rU4DuNtB{U;Nx74EQ( zbQ=D#pZJF;#48n5bkS2vs%?HE^27``^szU1HL&bZR|_tk7(Kq@d^i~dq6<*PveUnN zkD{21Y^7F&9Y?TvRWW*qYIdJary_Y7+Ot1c?untSTUsK~t4rcgI?O-bVS>DeS02Uh zARf-B&;Mj}%9RxO^Tf+z*i=`#?O>EQGn^q+1g!cz!Y3e<3u1*%a+A>Q`1r->&7eZMV6th2)WR<#$72`x&q1FlJw_->3P^ty_ESx+Y~WoPG6J zx4yPfBEvx_E5j!@dY-Iu!q2%cqnm0BR0k}sT$pkkrGg`Unr!1wOv`4}Zba?Wli@cvcazCaz*kSRfDW zf8#loxL{NeMfY(!zY&SFUnPurdK105F>dVJHWsP$-70{_0jY!J^DjhZrTi+JSN}v8 zIi>00r=iv_VMU%29w)ZMUy9%ky=*x6gA}!2PFn`(Sz0Op=7j#FG0d$K2lc}Ybitt9 ztcEvVq7$Ibi@Sun^=s2zTu`3ZF9z%FZkESOJI_Jm|~xOCK?NHO=UQo+V5yn z9>(|Lr`ObvTW>ZpnauH?Ex3=t=GVyYO@a^NM)w)$KKixJuai+4c!>V{!e5NC`7F_=mpQ`61 zxXa!aU8q8{C%?%M-ROi1T|`upp;=MQMZB3TX{Gsmb!W+dNzsaJ@n>?DD!gTZO2y5l zWXUJRu@{Cp*N}V{vzZ-z+u3rl&%(*DKoUTZa`=%cIJtQARF93&O2|S9HyzZZF24Vo_VfS=|iP*$Zcr# z`52jF35)Z-`^&PFZR+3#xx`WUKhW8gi}Bld&D|6e+~RzuYCJeZKb0*R`myLD!oE*6 zP(I}pIn%?o;*XCV@~gH|BzALY*AihSw_`B$rx;89K(UYCFY!4794X<}dJHO=rXDJe zl;~7hy#(B>DP@dAwSlGMxg>3)O~T-3Qg)_)cv)#j62C_1i zH1k@|lA9xDoxVx;G27ffTL-OB)oCZt&)I&llEA#RK?^%l&ic!4vin^$AwgqVy&}HQ zVsGFz10Zj+Y)r64kKM%D@7qpogE`n}J_Z+9h?B`k|ZOVF}ccZj1@75%| zOAVPk_%!%)F~e08s|4LpZ-h%+`AC6QSB!dm4_|x6BqQQZeb!1r+;U%0Db7|rRg(I{ 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�PnK69?_)oWF+db*kk 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

1F13{;M8Od89lO`Wyso7Xvlr_sNp9I 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 diff --git a/tests/test_data/Ex1_input.rds b/tests/test_data/Ex1_input.rds index 62e9509548f7d3d6faaea3fa5615c90e6ccaadfb..1db78d65bceacceaf6a22c7aefdc243c08a15af2 100644 GIT binary patch literal 5801 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 XmQdA=2?b@elG&@}hb-@RQBeF3I0M>^ literal 5529 zcma)=cTf|`zQ^fB5Rf7&y@R0#hyoHgC@5X31~38&f*6|g5;}*D6cG@RUZq!ognA+( zh7JKFp?3*AlqB!md*8h?@4T7w-hO93^V#2T|JdEXc2*#sf#RQode=74l^5j?eW#AN z|ETG~+<{2TR$C3OEmeA;{^ty$_~8z=<(ap(5t4& zN}BbxINld%aYPTlKV$m)Ay3anSo-45=Pmr zPv>m-r*|SjQqC>d4@V9R-)kPYBL#MihC@63k#_#SYUm#CJlvR!QO~5^cFe-;6@OI@ z>ndvRH+3zUWlwW(2@oy)to15a5;h=I$A4ZcETE2$& ztt4KEm3FEWR%b_BJL|uUVmDhzIm+@qqLXPY9Y~bPvo?Ua9Ag!-1-Y)J`Q4jq`Wp9s zrcp)8xr{x-(>f*a!GOiVakp&wmDq>TRPYLqBO#f=lY*@{?bp6m-=`{y#!z$NCFKCU zEKz&@I7ijhNtj=L{1vw4Cgdzv(ydxY-x zRkxNFJ~ft}90uliSOeNS57T;$zxx3}d56r6=I0dK*U&-u4^2}~rpqwv zhT3j#1rrTiT9&!}L-f2PwamD>v^SH#)4T!b4l5O@52@-~+F}w7Udqw&*Ko!eucOf+ zB-9qf_i+(19Ln_+&(;;dAx@m=H>o7~JqPSW2U|DcsN)u;d?Ip;Q^Wb*0fBL!E!*T> zFxfwX(USA!>!D65Yh+c{J-*{_dCSqk67@EwG9yWmzWB=5Dg&elN14iB0unBQ^isc8 zlboE^+Z%7LnjgZ4apco=%UcdgD*P7cLPyShc;-E^s9+m?=v~~zzKyk;+oOErQY(W^ z0MG#;yutV@lQsWv2zYT)wR4yqgm01?8iL!}3p^|8#Ur{%66uMWuzH@O%@UIqM{4jq z4BQLqOBzbzZRK%u@ZIV)J35RSkp+~@1($;PvG+{XgMZJ5%VLr)R?ixciF^b*jl(0U zvSlB74j*-L+~(Q5y%ovtyR78po9c7?+Mqaxwie-7T78xmST4%rKb*_AoZ-(=)p<8Q z#UAlxXwk>)nFYWFR^;s4OimG_<0}Lm09I`$IRe`qjYbnHtfhOY-wKWG#xxq4c6?afFe(5dfs7**y)SYP)woC?mcd$-#zu596qhPBP^flpwwFquYs$j0AKACAW-171l>FpQR9?Jzwt+1 zvaQ4jCTsCWsIz4GDsZGo2pa#E7um^rpz+l#rA%-y=6lWwkq6M2ukM%F)}well0=!xn_ha+fh zFe{Pjh-pMl6G=h5wvns}r#TlHk^2qFKomZT9}$QmNgnAIfUgkQkMu|6w2(AJg^gq_ zIPYq0*F$ephsSQO^k**K`xc|sD?tjLrr#2i)i@XxT zb$Od$fv>{x{3SWK{~2qXb)ROx!!Dh$26NX-rhUkDwtZ_PQ>4H)K$Fn;jNTK;O>GlJ zwje64%aBkAy$UVX-4jTby zCH;-O#zP~>w=Sn~NIJ4Ip|%HpmGsvVIV+I%3a6yWC(SUbzZK?s?|2ejOJlXf%Xp1B zWsRNfy4~Q*5q9i?2Gqi66_uUps8oW%oOMDnAgv!ymF%HxE3wX)S%lQ3#hyny7oY zd1k}7sX6~7{vY#2^7>ot3l78u0?hUQ*!N$~W_5ioC`@U5k*PRqN-l-v$(gDLhKp4) z8jPGMoA~BG|3Es@Fct7StN zz2QGth9Ep==i^KL{e3}MmHcWq6Jy^MjncWq<(|s0$roog3x;Nk^(qxPqhbq2Lm~Dd z!rM+-nqI^NT9auHrduXQ@a>MDwQ;9v$62_UChxp2Qw|tMh1KuPi4KmFihRS91|m!BD&(ZXD!j%aH=CL9J)7LLfFmcOlB(wdl_PAZHw)CvlN9ErPvVF=igcSR< z-3!-oV4RfixLPIm!%=3A%i}bXC*-6g3-qL+0orkVe8}ui7z#Z7W*6=jNQR3gYCFW) zK@z13GXS!ts_c1)gYHcVkGLl%FYMMjC(ao&A9!q8wH(ls&cuRl)(-qaf9{5@bk!=d z9_;mDvxzNAtqJKN%y!cB#?CsAByMx_C@44pbh6xgMh)YcsJXzt;SP*3C2LvHnKq)I z&yYk0DGn<;u0Z4>yS3Q$3%F&yvvNs8gyJUp+5H8o)jTWc%l3?5jq)``Pw@+$WZM)G zAB_AmxTrzzy zLwkQz=!{yb+nTLEeC%ao4e+b}v3@TmW9zy5X^3@#ja8+J?XYndVYK1Z$1KJ2Dilhb$6lGIWcCBw@_`H%Nb z*N&wx=9YXf4suNpZZX)pxy5+ykZt~U>Qc@?;~0A~+gtpXk&MQ|(hczoUnp zFl?F`la@Lj0W4j#Jfh>vA9?F`74`>u=jXwAj|@~H=*@YY{Ye!Dg@$US=XVF&2pLqk zR%^9XxoUSd@R=|hGnV-g(~6(#t}y3*so;`LfV7lqZ{$60dyJ+;3l5XL`4`l-GVV!y zlwR8qOfqNcU#nrQsKIbvux2-xe}R82596)HcJ;KS=(5A9PK;kGr?#4d(sfVQE#N@< zs_*5MO!_?=gs&-J$a`)q1OK}IT!gd?UC{>qa(WC!O+0Wrml*uEl}Qy$LI~#R%Fk-F zaQWc&4=vBy%Pxa{(CN-hLRnMt^S`1eSJv|myq;vD&pr?jFn!;JFRX4%9uDsM!Ze0% zU_c76&QQFds?>$tRHMe8Ku_PiVgmjCH}AX}Kty3>O;_bX5%O$w;c^2Oq688jmm$a> zU4Hcp5xooc{D`uC6>+)oGNgb1ir?i!8(FV=U`W=XJLlVjK8aGh459=s*@SCuaGvCk z2#L73k{sEkC|OxqURhX4x-_4hkb3B9kb48BYh~CM=6^Bp>sgt`kY&|$$HeX{*+);e z_`k{|odJMBuyNwjgNe#q4}*E(e7%#q-pW{;?LDVL$5$}(;i+S@n9B!+##?%rp8hVT zq*RU*cW?KkJHu8q%aKo(TMBPVc|ccDxr*M~Fj;>wa7AmYvyVMuYqQ326Y>P8k_5e}i$` zyEypjz+E~kJ;hqrDpORswZCZv4m9j@oKpAyVk*PQ^`04~U?uiNZCtud^JH2)Z4kTV z)MzUHj`_hi&^RL?~rkA#$$7a&wCx^F7 zm;(ujg*uU7zV^2o&C>p_c|Vxhq*lEW16^l(8h~xULeU39UniJB)xM-&%h$iv=C^Y7 z)i>!syq)@in7pxF*esqQ(^n0wus-Ff`Ft~}bnTTfZo0efBv(!6$?iq9`pIeaEt0v0 z2nwQ;V}YqVG0f3<>eVG|Y)w`gPA*rkM6DPop#ydK;umxwshHFe^$JMjTCEeulttYa z>4Eph!imx_4aZwaRZ2tl@(40$}`)z)G@h|a2j@YbP%vkr4nKy7g(muWBIU@NgQjg^`h z_?fNao8@Y+)7T%sGlsXQWiZ6AHR)7sa6X<_7%(*-UNxSu19v$7ZlBJW>CqODnh5a?VSFr)Pf&IBi%(HY}Xz9-TaF8?c&3lCo)y|PMbR?|k z210HuBbscmhi8770q;VOBxnPFKJx$l#0ZG$%*$oQsvQhKNZwaS$_%7qS`FFN<=GO7 z#=U1VrwPe^t4FeqKZTOieexFJ?=LMPcINgv->Sx;QK(oMf>vz;PkbasFsG8HDR6Y2XBYyIw^0iHaA+(`1 zf>m*r_m6&JiS>TDY4sR{Vrx?s?qFuILzSD?tP)nB0ByvvslH9iMxJHy+Ntbb=N4C; zIbJunmuwNRQi{!Lug3)L8Cl{yRJtL0#O6`QSrp4|y)+_!S?esGJDBGz-i;bdO|l9# z*6-$j4t8g_!^}$wqh6qyXX(7!M(roz4#KBtx-R>jhkRn@r8lD7ciGu|ic`l+;_u)^ z>lm0rD2z`+_Dg^$-%dbazT@GF1t#aDY@ng+mtTy_i#-pOu(Q~mV19zw3_RYb#!Ukd z=+>nNt{rUFz@ex@-n4>|?_aah?N5|qy2+I7miRIX&t0I{$-CEZnoE876kr-bec@Z4 z8#u(J*b27?wNJ7T-bH0&HY5W$E%rU1o);ks8y%dcoYO&o1{MoXSfNiL` z%<&=r-4H693YaQsPJmS=a*c&9%1G94n5Vs)F;6qpx+s3Gxy7m}3dc4fKMl842mTbM zwK%*TU@Jpw7=N5LJ+ci6u+^2Df{xvi{i#{YvpH}+oIJX{HWir_wfeAk%(H9#ifz_c z!&7ngsdYb#*2TS%xV5L5oV5w+)#H;jsrroVfN)dwUr)xq5I@_5jLxUB8$u>BJ-wIo zJc5I&A!Dwn;hYxBq!+URW*#?d{Cq0_GO-RZwn64roeiUi{9*RuPj)}UpT~l|FBLu& zMxmutnXQ`LY4w1T(^s#jw?*;U2C*(zOirrjC>*dmcv^V8NklhaPIFvix(!gEOLIto z-5N88c&v(}8ujD!4!ldw7Ro^%L=HTK-s)sKnW=}UX=!S@F4%j?DME*e4j)WTIQZH+ zbG|V(nD=gFM{sPm^ujOXGZ@?^c^Vo{HzBaA);gf%DX@Y1?DK&n6X(oMb#4fTl2~Z>4oZkU+Jbwf^b9`eu zW+XP&y1Vs=~$wD!mqab zY|c{=5D*X(kPs3P5R+m*5|A1iXzW)YASC7_ARr;a7=#2Q1e6#hceiqOv2n1+eq{JN zHkF)|4E9G+Mn>j$11Mc>?5tc|&Fvhq3%cC~mCpNpb-gsPzn|I5+0@?I!2|n|_AhJ# z0^Z+uv2*x+7lPk+@wo9HcCqyOkGhbYGdQ95C(@G|*tptS{U-bG2T>SclIpu!IsP{B zAJ$cMuywPuclig+#A@bV1O!BMf7WDaWB1!AB7%SWZ2w``R#rFu{S-7i{}t2aol`M5_}4}LxIqK;GrIqFjubn;n}EXA%FfZ$+{XE@?UaApJjt%ovA+}l_HVbH z>Tm6Yf9-!A7oc~J$db#`?{q-B&{40$o_>GeMMk#)y zG`~@X-zdv(l;bzb{Tt=`jSBrn#eSobzfqar=;7a}!f*80ZxsDT)qbNVexq8yQQhCD z!Ef~ZZ`9;BYW5qo{Ec4wE0uu!(w%@#%pAyXtyZ(35IA&A6112^4=I*=#> z{Z~cuY$RsN9bG&_f`rR{XcFytha|K|`i?*4K;rwIhl5FeH9uzKU+eUDzKQLjJ;XXB&wKs{`gR?zgRKDw5j{1Z&oq$ zZK=bbX8J!(J|X%IM`pFfOl*zY`KwXIli1{R0ie^;bgeEPOlx(LH4DhJp`>sG>I{guNP(&Qw&0d;CC5H@Mfo+4CUA(H$)^?@q*E z{?y}o2`!?pqqv~zSArPX)|t(+LJ^g8@BN&I8i>B7D<{y<5K&Nlx}byE6Vux})z3|$ z5L0N%+w#6d#GrQRTz+R8qMdPgEIFc#nB`lKj=l{-%#5W96YG|U*}p)_k@^5)swI-y zZ!?J)E{V=Kmu?{DmCM9+0+$ifRTlDGMPtMqXqWQ_n~yQ(rfy*1PsB`l>)s`-KXtss zWVpjLqRCUaS(;sn=$0Prf3_Nhn6od)3=b+IHkcf@5o|z=tvKaNY6*zB!BYCFtubP_ zOhfR1R}nGu%e|@X)x!40lh4M~f>?fekP?rdKx_~83|%_uhuHLWC0#$&A=cy*Gv9=I z5p$7I;dk9>#463p5E$))7%ispwm&Qp+r$^4p(qx_6r!a)u`z*|KkT_gA0 z5YcA;Bw{^2LSuB{D`GY2GP;>;hB(su)=xTiV0y7r1&Ia3#3JCe$0r}LxLtXgO}FwV zF%Sa>1f;)D!C0cSH^=Y>_A~Qu{dV&L!(aOTebV|Z5!so0nyUVv3mf}?yD)dR{y!JA zE^f|O%`L19cC&@*zr|gKo&Pw8G5$X1{D(=4Ojl1`_2fTGTV#&TRu(pn|B0kU`rj~V z<^8WsT4xf&j6Y-aY;0^C)&=QO#>QfzAj8i$2eGXoJ?$Kw%w4)t8hT~7pUBm#n26}K zislDQM09F>NRw}uO0jqv?9RvVx+D3o?Wr-l*P3Z8Pj=@O-kWm=qw0rmjymqnbB{_% zWS36G#-7++PpiJJf49HbN?E}!J*8wHyh~p=CSanY6JaJIZ!oICa&yoXquRN#acaBk zcE!f-w(FluW5q;8I`5SncK4y%WFo$}+mA}getDN)==l0C`}k%eh8-PJ+}YWh#Hi+l z*k`-*sMadkr|$0W)9Y66UCKD)zpD>b>Ok&Y`A*uic=)$7T-VaB^uNw9-rmw&1*kb75O z%9th2@6I0^8!NQi&T_MNcYg{dV$0#XkM z`?FIi?CR(Ez|Qurz7G^SzTK7QFujS;?zp3QLz=ttD`IkECW~YRJE(BG^SG6U?e6EG zTWR<%|L9C0@2*^j5CQRS`yqBJII&Q{oIxR*x8wYT|LU1Yre1El~3fV z)vlZhrD5lH*EuX(8n!E!vfE$jL7CU>uXe}p&C&mh98Ycz?(P>RSITzBt9-sWaBWvk zij~scd62i*aw|sVc#pl8)oe!W5@JV1^%l_q23MIAN0X3bher1D8)pP*FIgK(?;%Bt zH2>z;jOg(G?_z%RDu{cJRZDB92a*~4w&!7xBsy4Nf26@-9Z6mJ;3zG!iNrs;lkHRn zBe5`9e5HjXIuPQq&rS3S5^^dhry8L`5>DSPXcx;O`R=-V*7JwaQKDP?|%RJx6R{d-;7~4+qp7yAT!|#XNM&^ z(7)0sH=BeGAKW)r&cuOaf*+)jNT?uXIkyIp>Nq5SQ-R_zLl4?VBP6G=E{TLC?`%n5 zKZW>28@uEv%#iR%a&UW^8xsB)wqx*Y2konzy665Y2nkw$yFa%&fcQOY6bRgZBEC}E z54=t{5x;HK`%sG;Xs;%VTvzUSw737&>lgQJk-%l?6mQx}#1o5a(Y)~#3DbPti76;S zd}UXd>UeVyzdoVkNZ$!0LgmmG<5-GBPcJ90Mpz(W>V%G5k{ZN!gI~2`)CKV;>)d%l za~SciTLoq= zhb3~~km%ecoy716B)nfOWc$S=;`g4MvOh`A#Ey=xe`7nF z+t~jtf4bN^c$i)_x3&FS(%)s+S=qY&{k5&bZh`qtAl0{6D8`!vBUTTls%&%2qEaz14X&7HOylX*b-rK$;COt{_c~PS!}*T8+yi zU8RC|3emDiOOcmeQ7i;$FO}VoSJcN+fa)Yi-)p3*a3-}i;u2D0r5q?aeFkZ2zZxlx zS3)Yz>KT4t7?H+(7OY6Pf;9CWu{A}AprfS|i;f*ZNK2UZ;nN2kNQ15-y?(?V=}~>W z%0gU*)D|tPg7VamT9I}KztB8V3s??zzpIFjAO6soYGH!V{K>}?hntZq2`->@-4$ux z`Bj|qy$@;KEB%_%OMy;ZZe{UjA4VE8(On0RoKieVy_4(K5 zU!VUkfBxBxpFd4Je|DpX*xu@I@Q~Kg!QRr!()73Z|5qmc-!SCAXVd&$UweZ8>YSyb zrFG(<&Y$Egg5PB+g5PB&g8zmY>Hnhde~lW+jn1haH`F@)&;HxT-NVB4ikt0?|3vnu z`0uA{LiYcy*&oU~-pqf@tA%PCyVd&aMX0>#5~3Ju4V9nWb0N1C8oV+mi`N#RW~(ov z)|?jV2rv2*xMx9)h5|^ajzd*h*GMI30)DtzON;oOw|9oy;dEbPTFgS0t`61wb{U z3T14{1E{W`A6`+>fC?hXJI_}|plsW0>P}TRRNp9&flMAK|7cV)ZFU+ee?HyLvRH-+ z-fx>Px{09l;jo=;u^yE5vC??glR;I@qFu2q3-EU?F>~AGHI35r9Lq*%3J^D}7tN|%%Sc?KGpf@M#S2o0m3Oj|Dr15Swcd*QV`P=9!}QSM+7)L5LD{d^Y>^=-TwrbTwpbj)IL z)ifCD1Ev^d=5T=9-1}Iyloc9U1}a@UXP_=O?94&+i%_#DKEh|Q4=VCK)CnptK*b}G zBo%&3sC@KpMCXw_)W4_n+5b)znndQ!^o1TkquNi(6j;Z`9Z(%5(TAEZe!2qoc2JLI z3kqHiLPNb(r9fRcG~9}koWH>ajh4>YxM4%Ut#wGOiIM>>ub*E^xOo!iHhI$RhGW~}eP)GSHLw-L2)Nd{<|JeT&>WzmJ*9>%_ zE&-=zTa*X&%6`JceTmRe%CH{tiVPa}I5`jvB|{^3Np>wOrccYk;Ejz*Xj11o65@c( z7o!q98(9l=Z+uGEeK#9oY|!-}ODCZngj}fFm_1n*bV#s_Qdl&Ok%ZgHF|Z zQBZ%ulQh2L8Z^cmABrM%#^e*~d`;pB_4PeBUVpj-^&My0gih;1{e!WLZ9jErI+Wx? z&MgOx_$__zPnV&|r%cbwcy9_&ATn%xF)uR-#Be=szj`XCw1whr}G zYEoX;=b+)p@tJED)KEj$_@TZWTjv^a-|Y@2XrLPEAfkBy_3bOEk82sAK8)V-yzNn_ zTiiDNarP=S{8$eR(5{90O5OJ7i!M-mzc1!Wq6E~WKMIk(cL(Z%8wJj{FhT7E4ZCsP zPpBp1GizD>1hrH;O;YckLCs{@MqyAm)UD5C*A#9+ZGYWL!o&vDKVNdWgo}c@D(=ru ztp%V~VqRoukrrx&JZ-t%2caflH06F7CDf3dPmc`AgPI!wtIv5YpiaZb->{h(8eTFF zTWL8$Lp2@u1N;UwtkkF+i`0WUPwHzwmzJQG=)3%R)C09L^{q`Gu0eJ8yt{%|4%CYs z?{$4$3k~eTqy@=uq5iA1_;=MtsK2t;X*T)@)U_O~m~54UhLF!LrYB!RZC7SYo}D4o z>dKFZQY%Bvl|DsMYCEV+iW?SIYQ*$0wJ|(C12u&gQ%4UpLXDG{(NWPeP?P!YdPUtF z)LrGf*GKvc>PWv17?%b?{iBCsKYKC1#+A*BIO<~lsTcUNM;L0}f8Cewn4Z<>2+H^+q1LfES#h8U8pszfalbW!h7olhx14ck7Sr7`I?3w|;o$`xAR8 zOZ%iHoPGpKzEmBc$5%tiRflb3Cub-TTYHqV^b_0fg_tzvEhwSPbqePE3Z+CI>V4&^ zP<|vpJ!(w`D)!G&OvRK#h1EjD9*!eWhB6)>O}z*ummu$W(GHY+3@x15^8|`B_**m8 z<)O5dHQjkw0m_wiws4lEP}bxpl(m%yWmBGNVYb(y?5OFZ7Go@Lte3tdsiK3@zU>iF z`^!+u34%=b-b2YD%8sVxA5eO*BNe6+p;R@I{Q~WEDDe%O`na?gN)*LggB349NdQII zmf#wcruP*H21G+?67}sSno%gXS{1dHYKF3Q)`>NW6(}ifTiPM6g%T$spZ<##P;&5< zmX7)nC{A~aY4xXs5{}BwubSLY$|_w$e`~!4P`A^V2<)8gGu9lax>4Cq$IQaJ$hyMQJ@ZVp^ z{{4mA-(Sf8{e=R-e=%mI#4zg_6$8DKs{aJFQthHvJ9AfO8;gJ8*8kzSwMy)cxz*Pf zP{-R8*mtZMs@K}SJXgVgnlIZ6jh*}Re+9p z&kLyaW4Vxe2+Lc-5z0-sm4h2zAbqmwFYnpq4qczs6V>Dk97r z(oVHNbwej_RaqA_Y{lDJ-gbi~3NM1t(-~0HmCtN>p%Q8f+i%Mdork)>_`y5F+E8`w zTT11Ab*PkQyI_&e3v~jfdX4RsP`T#a$r(WkHU8xaqIT98K7MZhAwe0+pNBNvmgG~K;VeafK_8nbFwA5t4Zllf@t`^QUw z3qGz_N_rh|xyBx3-zG79{KlX7BPq82mxPIU1;Cr0APFOohsG31GtL?eCw{GZsX%)d z8oqUMjc3|GgO)G3@nH*Sc#R`;2t5cm-97Sm53U3Ly4%Cn0SCZ`w9PzsdJfG~HlMbB zT>yMzs`(n388im#oJ@Fj4VnncmK>^lq4BL(##9nD;N7`sOv`Tp9#>OPCUp+**@JH^ zwx|IAY<@+$HUjX{jNb(!R-pO9@V&E)34lwL`@rP%32@d2;A`A8hC916YQ66Pp7`L0 z3tM`ad}mB9Uswek0R?Y;_I<#SwoN8JJOWMG!BOpxL}Ql%9$ln!SBk&#hzU+bSZP)H)AMYh4?!rQQJUSX1X?;wfm- zyL4Hy@9#0DhQ5T%l|b@Fq?ROI1$*cd?yQZ}dIjjOx^)(;T?9>0jCbdbgaIzd|GnfB zCTJE~y=5TR2+e8Khn~2qLi300123vn056!oB-k#2&2vOe?Nl`2qy;4c4!S{kb#fK| zo10LL2>6wFilHWIRMU=<5vu17>ya@;L-pcHg!u{&R7<9~c9G^n?QL$Y^{ZE)>XA6z zxKaaDMzLQ_;M0H#$4(B8l?ABGEm3s4?E#f#*3KPYo1voV!3b+x6ja<+Ya|e(fQokU zb<*KGP<8Wlwb=SusIuqLa&!F#HGU2jM7q9E9cN;eQ``iVf(qMT)@q@mn0iNB`w>*Q z$S)OHI%E5FBoN`YEBBD52wUKt=BcJx~Q8_`_1l`R+Jc2 zGxV)eztw??&tdPSvh$#lV?nCQQ47lZuAi3tC;?R=T-?=?SUqrNWV_4c5LB0$JJ=mU zP(9LqP9)?vvfVbPWz z@A+IF=9S;yD)LT-`N7V|gQsNRM|7q3a_a!h;pIkYGyGxB2B&quj1*>tbd}DNYQlo{ z8H=l>t`ZizCR_^H=G3)T+8WO&Zom1 z%c2_*yD)rbeXK>m{2jjk)bGiB90SwGvtOzmo`=b;HNk!_9DEP@a7^dr8<^@$b+-I< z8D>8pD>6H_0Mpj#8x^{DVM2zBqH6vsOtxOsdA36Va|I5RG8zLgnT>mquFDDw%BKCz z<4<6TDrh6K4Pa@lcCT{6cUVeLIeJFX8kSu?sg=$w!P2eR+iVsIuymm2kSilIEY?NY zzaTpW3xc;7E6Cg6`&CWm3d5_gnD+hXXr4SQ?`OPjTgnd$33~>I2D0Ht0hj2|>p)l} zJ@jCsg9MfWi#)oYeSw7*#`i@}5@F@2i0qThI9PmhqnDCA5*GB=!r{hwn3un}e_3e* zW+V*R(CQDEUihSgw<(0#gJ*jMoho2qTK$K2@O@bFG&*+ZX9q0Ka8^=QZDQjt*V^Cx z4D*bR&8&eWu#gEse;x@wqq3{nTksB zYUW48(vOP9uUR1?<4;6%A$o|olM(8ftP!!v!~?U*XNWMB>?Vr>4_3VlLPaKQ4>ULu)Ob*Z8;)& zySF3RvKSGS6#D$QEQ5$#*{vlG7b3#!8DjtO1Vk(tOQ0lZjmdY8+-kTE5fM-dYG`Bn zB@2Hmm(GL;I~>A*p$-xIo}jmMN<_q}%K8i6k0RpqZblNSGl-bNmUL&v2oW*Vw9fDa zBOj!EqeWI zMTnpdyaHvg^Bv|8+mm<+5t=y7_Y=4wf{X1OXXH;H0;4+B$F*9pGtSd8=TZkd>h?XJ zw&Ji;c~#b5^cW(fq0eM}t%Zp0*4z2$R3f4m6!;DcB}A0_qPn7&84>Oy=Z`z@i3n6$ zhoi+p5W!_%Qo=fZM9-KSSs5dO7-Pk2s>d%QCMgfWs3~j2xX^d=@U%H%EYv4I)E|Ht zElG_t0um9EJ3}?sBQnHLO&{+XV2Bu;1?GNPlOy{4C-*e8PauY5zJ_xe35elovyvT7 zA2G0PI?d*KOU>|&3NJH?C`uiSL! zAUlW{p)CG zt2Yl!7$K%K>Vr0s;fU!&wu}pPBVrWHUu2BCfz5M7RW)e|F-QxF`=R5Aq&m5xjq^LA zKm@$GJVl5yYE-@DeFLJHJFM%Wq=zULSHhbs$`OTRii^=v0Yr71`?TJZ7l{0kIIW%W zF+>){ZYAG{L!^$KY$cP9h%C26fpW+Kk(F6H-S9O=q)iWoa(X)u>20<8Wc_?Z+AjVp z*{2_o-+Wz}q05TM?RidZM@%D1KL_*ciuVykoQbJ47bPMSRM^t5Jc3Azskau-G$K+L z`9*7)C2YSA+g&l6h*V3oVVX|}k@>T-8_F6W%9FxI8y?<>%In%`!R-}9_08_*tCuGc z1w-G;{b)x-`Z+AQ#r_*2<5<{lHKd40`mUesZx2M|AzWNKag~Vj%*dA7?IlD}W^OmQ zC5|XY+6}Wb0}%z4ymRn@QADNaq8|9G8IecbdA4x!CnAe~G}9se1d;mGpDA11hseH# zM(d1HA+px{FQj$L5$RyoD5t|XBE9E&^1bF~L^?*5wQ0MG$c@|fNm>;ma-Bz)j^lU` zrH|_ZTEB-V>Ykaeo<4}k4n1((E-yr+4XV6t3+~wbCrmBaLJ&!h-VWvKIz)Q;*Q1fn z5kwYuD_{SpD54ahqIGCkKvXCw{IX;mqSB%?=I9tg6nlD_UsXND^p^~`7PByYPK;bj z-uxG4{q0c@{c|e+1g{dic$ohupeo;gKd4H)^S>6Ve%eTSaneZ_vIB7Z+lwC|>y34G z@2(If7~wE~PH;Wu@*5f#e9J5}oi(HjscUz4oofLlaO) zN=~s-+W|%T`Zo@C*}<2Hfje~MB=B`nUxLnA1ajVl7`4laLk1A=>(Sdo+Pi+g62S_{ zx%qz2c=3MtBs?7cG~X3I2NXNIqI;0RCg;-r@-DoaZMwsHrW-z*IwqdC%!RLZ3RmYJ zkHAOymSby1>W~>d>7T!T4YF4}7<_}?Lq2<+%-Q!2kh|T~B_Cx81^e!c+^tuJ+#gO! zA4MV|$AOUB<>5MHe~Lcbp+^syvU;UECpEu zcig{Cy@XWqj<^pg6!7Kr>jWKxe#q@f)NuN>37<{7b|&RlplDP~TXD$@zK;Ej@;tEs zS=@!67^Su$onoqJOnC{O`P~)?@%RC;4^&wU1Ajt79nPR-ycj+QWvFMX6hm&{<)i86 zQX#uQ+f4~uCvD^-d-RZ<)@m~m=eMG2^uG($D?HFy@DeUV?EBLqd>s?is1iunZIg zwQ20GS17ihA-DHC6p@e@`VKlmMzu&Qzr8;si=6z}#BvT&FVcjm9Fd3EBO-a7t%;Cz zxy1a=u3w26+XRpusVGB3$TU|jq{Qqj_hU_xTC)v&`MP9Dg3)BJ zmPs{CZwWE1x0G#(;nR87JI52w!Uv(jY?tCecyn9vdTKN)yp`7Jy;PPCZ+HZnd%t@? z#^l$h#XpDP!vnDuOYA(eHo0E~Uw;l63NoK6+vDM_3hQjr90R; zXK|EdPFBya!K;g>Rq*a`bCPo0h8}_p~paNaQKV-GS{=v7`3T5vsospPriP5Wxp_YYnINx|j@3x50P<>c zFWM3{LRN8~VG}lgMoy>r^_5%j*{CS8j(Qe~Wy0PV^d(~PPdAO`L=lwVa2aoL4~CNU zxW+ZiPrj(M9HhqjWl2tW*9w_JhQ(*DgU?GLWpz;IVx|auI<_3IL^1`rx(y%LSvH|E z(f*<$7O!eez0WmHxI*oP{!xsm7b6R~5NKQ0;d?}9( zifgV%E}5}Gg&5cHOR+R4?G-r7N)-sDPI2c#w+=%I|F~%@78k0?YSXh{y?~;}Jx}id zA7pb~I`Xyx;M1ZmvBUj+kaOYVD{2KC+9k3bD8F-5vs-eo0>~EpoZy4%28oSDE8*O zA7sY^nXb6UQI=Zpd6x0zK*0w{d01aLd;KgFEb9^-;CKk-$M#%j#o9}CGF@&`Hbdz# z4WR2IhvIj+_l+@ss*;F67K~V)dY7lp^z1Wa8>-)(<1vQ}DM1SfdpzXWdv*BH>O*c# z2*L0HPE2lo!|$9@kikuQNe~;CwR!69ZvM)j&Skz(c^eAualhmA_JeZgxJTOqfK@=#?P!}cpN2dZMaVy7{?C=L}H5F(9%%r}#JcjLwv?tN_r60A@zCvq=4BL(V2 ztD=Lj_*ZpWr&&?l9IA>)2Inw4ZjM(G+RYP<=Wo5ect#X(LIpoNO)a2)?dRUBG_Rmm zWv_@e7ME%QMGg96#-ZxQe74T>JAj)pJpCBULv=YSVUIDnYAjlMckQd>bfwTVX75$h zOm8bOzrY=x=`0hj0Q??SgMeLo+R*OVjZ3v|YQns7giudRJoOZlyWGM1b>L4aC=Kvq zPR8gZ4s+FwI2tGr3DkXn?eFGG&N-^x_n^JL>J{GsTP_t1r zE~?Q1B@5hQyEvdSCPKoNY-YxCu{`u8>5yv%wx2I#GFgmYk|CGq6n`BiXLYWVPcgQBL$}xh*TtJqw{+!M zESBfWZc^^t(oKfatpfjsQ<$BO>`hzB?Sndo`%&Up{Hy>%cE9qOT^ z15=NnT{r*GD-2)Zeq3%YLKmT)|)!tPsGelA`8 z6vU4CQ*AFBq}E&ou(;Vo z-+aNKFcffT_yH*vr}5t<*lUtaq2eG>eHZ2j6;e5891hV#N#=3SPPaBJ9`5yCw!01` zm&IOgunR-I)aU*6N}cU~2{_F|6g*|UfFl-AZ>O+=dX3}W?EwMU zy#BUJAD=_@+r1g2PwzqHXanEWgY!^&Mn!U4q6X^Jo*j%#)Q75dx=nHAN-W+SJ=qyg z1?3cL3>WHMpmgwFq>v_H^1s&LnQ?-8qF??e1%E&j&ryeD_I z8ti&Xd-_=Ad#EL27yL$44`sNy%qJ39p1NZo3|`ETw`~{t6T@S*8x{n_ekIUgFLy8U z&>^V*n&HpnY6o?VV?rO@C!x9lw{*Bl25|n9Aqz^RP|yG4`Vy9R%1kZG1F(2oOuSuI zkL9f@eQN<0EI*b{g@lXyi$Tfx=~{U#K9nedgan@|6z8{POkudFX5Z+nB<6?ZFV$|U zV|lXf$DUyqGF_;?ux51(%kL#WS4=c8|1U{%d{d)`#Zk>7QIV@xA@5Qv+Ks=3Pfvyl z4-`TrO4qW&aBNd;x`HWYzqoyQWS*PY`Q2$WDZ%hVl>j%@R}4>S1xZObQP=P^hu-(i65 ztBrv3%MmP}x3D-K$vP$qjqwIcgN_Q&YAqaN@aY@0ECxK;&EGiu)@@3x?r0p@Lq&|` zC7eyBaTvD04v!I$>xHJ!R{vR_0rP`i?ShPMOfOwL_+$?Z_v7F0HMoP}Ae=eD;}h6< zH7X4em|^x=%O_jwePkLM9&xBEja`722hv5ZzFE-EcHeHd-WmL8aae~p90p(JT^qsh zXotVa&J`@5;EdjrW@9)8FY8$9j_tGhE`ARicHSM{cTf2D+=HGBJw{F}o_D2Pa^A%| zU9&}cyZ+t2S!16pstNtk26!4-ZD{>fE&CR$51MHQ&U?fTLH(;|<2SIp-t5J5BZWL0 zn(y7lGBq1CZW9mG9w~wPwyzi8gm^;Z4@WPx-SI!aWrSe3q&0=!uD^s9dR`wapuq52 zXHc#12`v8M;$xnl#{9Q2!mHYa9?KuMLS|esd#l#ZlG(1n{ORR<#0Z9C@j1tIIWfI< zH>x(IVK}<~R?R1VtX>;1pr+#fAOP*vs>>g+b8S3Ee3%x)?>GZKwhAmR*DxKc>H6#r zZE}P&s@VBCxpL?#d}_ZJt6SRd`8c*=bzNVHkoz1~r?t@y2iRiq zy;-`hq7d_g271oE-FmJ$?0kHamJ2l3dcHKo@O#tqh}zw_)4;{NcR#jXlTlHiDTdEm zqfDAoCwrjvBxULTyPVMT@(S@MYDMT0$9=zw;Z$7D9?E^MZ$RUeWd$Ktcht8L5OZRA zy}H|hWw&0c7v7_4hUMdCMm}=s`*)z*^7LbwqDtti_LwEb@N3`Tk=J)H{j|>-P)%ca zukn7KQ8K0%oX3H~o---`s=xnLfB&og{#X6|uloC6_4mK(@Be}IciB0Z4bP&7+I<;G zR9L@CZLaVfERR%v?TeubzXi>#3ulN&$)Mr7E$=#pBb!v&1Bo&Fsi(PC{|Ji*HFif1 zYEsrg^=pCCLKu#zboY9DRnZ@Cu6&`?vzMT@kWknktFNowO9fAV^Mc~5HcIlC{wk?c zzwY{9Q*g^YZ_#~#d(vcj%W)Q}8GIFMusBlVbLz(J1NBhH`GDXZ=D%g3gKK}m>u+9~ zanq4Q?VCN4yY~x9D~r+)CU=#Jpz>7=zn6XSRd7;wghIODsl%8bl_-og?!n?>4QZAX zlTQ+qP!1i~&Epkb&p&u#b!Z)J;;G&GyK#^2k7J`)y-45TA7;-3O^>t!t!`vPeMZi@ zK8By_;(lEuz~W@B?ZKbB{VSx2!=}#)LSZDs<`JxaEkpgKSq(vG{NyDihvkRLI-dtb zSpF|wA|dd??5UbpjNg}l0P1^(wsra6L)Gb~-~(75!qXq*I)dT#nz>(QQds?1F}Cjp z;~UK0j5K2z6^$Xw`XjX?w%^QbU7ID$-oK8sX2oDQyDFS?2FG><>Qgy;NPkK}ZI!rW z9j4#X%MAop4uMe8N%Jy1NDC@U8Xu+A>_E--uhE;>I<=YsNl93|YgpxZ1Eg90Y zSbnHBE_k?mpQfU`+)NF_Po-VgmG@wBR+wph-n~yzcf<741m_ae4=Fcz9eoM)9WoS$ zuFXKh>=Wlh7(T`o*1g}oFHu^jN^XYjvy8^{kvQLeD4Iy255ek&{I{VR^Vs@DItl0e zMc1KbEYkQ}k|*G%WlNL0TLEv_)oH%39olUIlT-GJL$k4@c07F{lwQlux#Y$Vg*b^k$$*9{KHTT|Bcb-FWJO568sPPG z*LKgj(mP@>55v>tuRWLxX0qX1Ver!h%)Y8O&3X=EbzMaODtqUW2PJPsJSo|$p`^|5 z?h*MwD1KjiX*ciJU0|H}AaEIKs)ugsh-32m;LCZ4%Aoq>rNrqTDJbQ4D_FwxQ1X-a ze3#D|C?XxB55elr+|@9P+gRKz^m{wPgUL}Nr$c2xVFh@tzRB|sH2`mO!O&O+yT<)^ z_6GC2s;sO6I`LmnlJKbMiU#HfmS49wUiiY-FCXc(FkDiNC$!eY`qvrOIce|a0bi}B zWb9o~bCaQX*B&Z2d#w3&lc8~XOMNdE?`w~^@*g{E0wtGnZ#Q6ZE&uB)eikg=S7`mD z<-qVoX~DH9yiDi7@-CPcW?+8u)kykhE>_p)rZ9WhOo~FeVu(~0 zR&O=D;hp^Gdl4Fsn+Nk_xS@%9?x!af-zu2kTR7$iMeaI#O0hWjt$W_56UzgYEWT6F zZwH+wM8|gVYcKaZ3D(Rm=#F&Dow$D-x-Q?!-o;xTGz|w&e346Hc~^#hq|yLC;i@m=GO zSbnRdt?QTg&<-{CBEqCGKg8dpQD4ULe^2Mbkkd+}FrcZ%$L?AM1IM3T(#7z8+cmho zgW>o3^w_!G_|*6&o4r~o2g;L4&M7>;4Q+P~_taTsL041ZRW7XV?fAr8>&ZHxXO)vNLZXW2(Sawap>WLQ3`->@<-Q$iah|lfbkIAh)&W8C3F8Smh0TNljJv!tQ zh~cR^AyNGJ-YTfMSnkD$?W@k}lqvp8GPJOt>yhPKh2}1WEH^BEbUmco&y3;f_IHB5 zyZ3Dx3`r=4?+;+(-_xI6eFinm*$;Q~cX=UIASq@i)#QCgrd7T}Q=W4w+jbmuwhG(z zVdv8O`ku`Z4CnQQNyXBBRD#xtnkJFAOi-H^lp>P<3mWuSt}tNnqe5h}`WV+bv?#nT zipJ`z&hZPwmoU80A-wc)_x@tX+b-f=T+rGzwj6=&qozlV!+k;Z)IM*(eZHe+jO8O-?S-kQ1fQWU=3=l4O*GU*?zoX+IH|7WqjMRi_vVZz zj|5{5LbGc!kvUfXcLj9{vte~y2lVgt#O$!4;;6+*ERNM(Kk&nEcf8@r?p^#|AuW9I z`5l1jAi?$BJcc{m01wuKBAEYG)*&CvR^9D~}W&#%WZ z9N7>Y?1!DpKX}xG|DQbS!T%?ZdeFIen47vfTUnX@{WBl`o_p|5xrhFgd-zYevVY2z z`%|v`pK=xc&r3WouFExNw=4f{!@px6{B!o9KW88QbGGcCv*rGrE&u22f4A?e4$fCx z{LikO`f>oDUst zv*T}*1z`A0#mCrK73i%reA=e34c+V~JbH@luw1b3#4%P)X#a42q4D5t7;=3f?ip(Z z!~5T*zKC9cu9p&|_67T(NAJb^TjrI}cS|HVpMF2I8fYtjt7(H~I>yjnYqZdJohm8j z6%{m>eGzNezY3jVqs@$DC!poKyT|%KG}P_!Han~93b^h0TR*(Gp!<2m!TS>50k@>_ zI^&i;v=uh!T|5&8y*e+8FZe{mAph}M{$G*MKQK0rm!pNjEb)v&zijAVd%-mE;5773 zBpEN?a^wBwDX48yFeVAog`P_@yeES?U@+YGitkY|=s3BR-t+;J zmvEtwc~S$qL_JSEciDpe&z2JDE=JJtgEzlVwg!gXnv(K0sG)~ig;7t=5!#*ZGpcfU z0Dk=CV%i50D2Q#^cg|x6@{s+Bt)w$hmaA4CN)ra1^clw`m1m(}p=@lQ8#VN@qy#i( zBm=&LeNShO7vM%OcYSm(hYk(qx;)^6o?GATpCb-v&*<`4mF|b`dy{9CNta;!+&8AH z`Rg!7O!?TH)Ev6&KM}RaQA39u`$C+_3m7ca99Tab2K^f*id!MmfV;2S@@oH2D9;MC z(p-y!R<9rZnx>P0`+h*Gj6DzPOW~JElzm4H7w=%T?pp7Uay*8m zXdhk>J2(gJsfHDcJ~A*6VSS1k!ytn`*{Peh0x&*FH00st4MT4X4r{WnLhVOC_7^^f zpecjFn|t8|s$m^XH>jpiMn^L5ckl;N`RrH&nicYI7>P za3KY#$@6FXP!kSS^kqRGYF}`K1g~+F$$f&xAxE{`avt$lhG%MLXDCA z#ZwIzq2|`R`(IPdp-h9mt8t_s3NpwmmFwA{jI%T@r$7hVsm1N=Zej!+M)rQGxncQutm#m$Acma{=n@uBXXs`M!+|M|slF*p)h(x;ae zy&hl~vC+|GaRu6?Lf_|WVp#IWnm|fNE>s@LAlh(Thf1X{#vhf^poH8ZqG;eHGL;(8f_j4FvH7(wrJNaiK7gRX( zR1E}$L6!g6eP?}Q z4sAYUM}=w%0PjHR@Tt5C+B||)Zpr7vP^1}ae7-mgb{H$}Kb{2RwSLE5xW~cB_uIef zTezToC^>!aWG1u-bCzAUpauN-YKLDY@1Q3BjE(kPtmY?`l@1f{gkJXV5{@lzU@9?~ z+C^0zzS|SwoaGeYyVaDz-K)MZY}cLmE?o;+DUJvFCL2RLW3Jr%7#UPm(GaJVUx(rF zmCF|@5@3=RcRt)(7sdo+xx6|r!l;?!uffP_7&+o*`Xs3nWRRCX89YX@j6JrtE|GYC~1Z=&w)jKaXh7Y{^RDPVjocE`If0Y;tnzsMt)g;8#Q zlOkD97*04~w_%Nk>DW6L0AxU$zh<0*U`TZ0CE*(;=v2zQ+wlgApR>Xw+AHGF)$P#6 zO2r3#oblcQg96aTZe=r7kp{S}%u&aN131E@kcEmHr8MgI~2Ns26Gp?z827xdnLI9ARq9bm+EX zink`AhjGep@0fWH!Sw7swhcNRm=U15{j5O|h7)f`U0n=-7QvfW8wSXrZA;qp;v<27 zJr4g{2Mn|R$FCmQMXmpO^~hi8|8U&eF0J~AD4+!f7_Kmqn9M`h#|7R~V;`WKf-^7t za2$-w5^-|XO~BAnE%TVoCm3G4Jz{TT2}8uh=UqvIpnrD1o6&t@=zHiHH@n^j-HeFG z$=(b`jcoeHmW^QG7jEeCGYr3O*{+tJ&4p${<|Gc@Gtea?K0o&;7DlZ2to<@wVDw;~ z_7lcO(Cgl1B2HKh{l;|(&Ba(8H0ur2-baY#{jk=EeV3t?J|XX0K_v{HGe+TD&d}QB zvO?y58oE38WT-|hLc6fFOms~UH1gP$$oLXK^RU_dqm%%BkAn!s{LV2Fi1E3R>!mf z2K0i&-Y?#Oj*!^1`)b9Zp{Bm0z(xf6uU(9~fd1@Uz!2T=S>}`(=#HK?%^Yim(YxchE!lO@Pva*OWDfA4p+)yaoCoJpXg@cM|EgOY!7U(Y6b4u;mIt0$56Ox-;7|r#@)kCsELPBWGu)W%emqRJXs`;TtH8wh zFIt`7BcQKx)2+xZAG&Jw?<@%Lz;LXs_SdgkFeImwHrQ0X_P~K7B&pq4)Y}*O{a^=p$4Q2^<;6 z^1&m6Ba?M7WdE6$Oztr>(i_Fjl^lR3aUI=XC#0ZKcwd-HLlzXjQ|Td)^M*>z1;j_ob^bq(s+ZeON$?tuEI z=gX6xoyBlSLDR8AccJ^D2MNCjIdpN-Eat{XLXV=YQ5*{iwEJ9Y^t`1A^`gQjQi98% zUe{0k$=M4~as8BUi_dZRHYChOLw*q|6dCtw7MMZj9ox@Kwbd}p<1&{0DhP((yxaE6 zTZ9oswdC&@-fX)^_en45KGc2oC@*0T0^G-RXMR5eDAcsei5+?Y-K$SY?%EE*z}Y^I ziRmin%L>}R(2xY(uQZfcTLPe~Oh9_ddM^y$C{lk%Mh64?6h}SYyo08P9*47V^H6EP zo^(E50ouIgUf;v$0Ii_LI>3 zEP>qlz%=ya9bgwOV1SMftF}$Fd!er8lDhi{Ez~s#d^R*yhl-P@Jt@${dC+Dt$30k2lcsR5a+SZ!t9FG?BRzxxs|&!EB5B zvhbZz%`qzd1595pwb)*dhAGcbg-FiFXjvu>UX3tDNx6;^v-%)EU>mGcYqEj89! zMBjvVj;W9KBTlhN^<9S!A@99Pj!e+ztk%X7p#nIr zegg7>E({MRiRd-S!Jr4X)%(79nAKznSf!bR1?&6(*JfH+#hH0>`D(GGSPTI4!4M z7rHMgS5i@9cu|R$oW$)cbjK&IXJCzn=|Y+>}xaYr9w zGU#)z)>U&Ffx&m0xBZUyLFdAL_tH769uIRG@@tfW5x?wn42}{o9)EV>yOIK|e7yaV zFZwN_RC{!5=$rve#8}eYtSW*Y=dZ^3)Q@1HoPp=*@(VA<-(B8 zUB;g+;V|!LX&mR!4=v)!odGtPF!8gFgvxOMmg&ncIy^Xp2#CxmGuO@|u9-=(^|lv? z=ZUC;)q)9P^(<7mP`e2~a`#?|rp<(*H%BiSrI5i`TwN{E^E7N6ETm~_AVL@;ckbr^B2ybLc1}Et z2q_xG?;YPjT$w`~b=NEr7i>n6+Oi;lYkgc~R0ompabM#)<#r@UpOQ<#@fFdveVNVs z@CXqkmZhI`l!qN5lZ9MK8~Fb8Ei8#$g7x)aM~{gB#Es{r{3!YjaZJZa2IKvZ$QCd@ ziN1{}(o&L{nbZ-9IL`E>(;6bx_TX4~VvNXA@BdQmSVFV}@tn3?8?ZI^oU!KnNyPl_ z_BCG*dBiTxS#LBciTEAbsMP)R5Cc`vwaLB?#Cr8aE`IaY_b(>18$=1UL{$1Oj~ z)AmT9P)oo>SKJoujdH*L)7=E|@tm~^i3`Q_7}>Wz%7NHeNG`H@ zbs(}WYx-+@`4GMOW_-`kOT@!;A)LrX5%FBID1+;fNTBb^{)6r8NL0r6hNy%N5_}VR z^vZM(tta=Ebc~$s=>H zUG+SZ>UAGt$su*MWHv{fp}!7&F!DhH4}>Vt^H{`YaZKn%%TL69(Y{D=of+{l9E+Or zbw>hxEa!t(P9Z)cdB?U^C&W-^Gy5xs3Nc#@{rs#-hDf_detxM-M>N?Z@%fb6h$r0k zN?45x;(MS}7WvEz38XwMp7wJ?qHr|#>jP6HcuVP)p>7-E&}Oc^y3Y#{-SA>9bf?H}~lls1&D}()rW7x%e z=;IO+IPl6grjHb{mr6!ZZ!RNt&zdg-t9*!$mM#Cfi74V9+q=_y+8FV+NPWnCb`>#w zd3wdl^A=*-F>Gmj@*a^`yYu-)6(Op}yd*b*LJ)UN%?Fu)9>izB#K#n zCjs##+*6Ar<3K!;ZV8gDp-4pb&AsfnLBwRfB|nv3j!5IvP6wMfBTB=Qk!j}Uh{9Tu z`^5b~M1PZ|)Y)qV5xmuV+;p@TF>!r$IeQ@naXgCUM4jddb9yBb#IB zF;OQXi+?MjsZNgw0v^}$u3td}I-@TyKf8(OdcnBn=TpRY8P-1%vm)-Y6SoCf{QiYo zf15<#P)|ceRUPZ1uJ=!%>)(Fou&IZ+tCjPA0=@q0_XZODH$t!Nx1AQPvq+$r_#D&c zAKfrYSWCh~auvEW=Ps(|zJ)oK1gDF3nlQs>At!kF11wjkcRy=XhMeNkV1N;h>Ov!So-W(=he0l8cJ&BzZ2l{S(VDikFn9b_D;$PD*B=r=qR@Pk#ls ztFyVii{pR7FU9`*`6bEf|60G?KQo8c|_4oF*;ZK43Q;XCq8^58CG4`?$&>=MI>E3g?cO+u=BcwMXF;0 zk*(@Jd?4lm+xV|E`DG5U_0wbLB$GXCP|dEjeVu^yPj|0UR*1rupnaqd#R4MTqHq$a z3_%2O?UqUTE{HJVQHP%-B75zn$U^ z^KKvPlA`S3JAJ>}hS@MI%pX&XD*FOIm4{t@?##h*@z-xe0&}n$efAdDh5<~j@m`AQ z%7R6;0ksQ1ZD9GWv%CfaQ#i8lfxpu#$ZJ>(fsLi14ZSH!-3$*w{R0l`qDK z2qK70y)Rsb9S;5BH4Yg>AYM`**7zOP+(d>Sdp?7e_EGxCfmZl6RmZLCvjVGgd&&3n zlOlqBo}_|bY!N{t_t?eLhhY7T?}H(4L&0RBg!X4Qcqw__y#slNHD~P z)4-ZFSfn@+!|IQYBxmL%SpAf7L326>RyQgPUGg%p>iMZot>z*kGA}=cPZWXm!}r%{ z=3-&<8L4QB&^`DiPhqA%QV2UmR-r2&L}B|tfJVmF70hl9d;I()4;$r;r_m~AM;`mr z&y!2Qs=>;)i>LO&+UGvy9}HWtc-*7SxicD8TU(>GMJ+M=jTM?>(t)2@1m79ABw(p@ z{#^L^bFkK-v~cL*8(98;e=nJK0ygEB*z?Z*fQ2%KtM!6Yu$UphA#$=5ekDG*Aw*#e zD?N%oBi)|BT6=V6=zUCo=C%3S`;WoT^Nt=1x58oBR7CC6N;xc@&*G#?e+Y~D&HYv{kE=VddOjb$i7DSY^L%Z{%qNOVWppR#b-J*BMvs z+uc;KJns=88|RD&i8B&X$#oE!wY4w5tP>*WbUVhM*@%b=cqL1Y4I&aD;SZIvhhRHn zYBZaZ0ujx%?|WW)01=4V(ByDVAY!$r6FOb=uoGuFesr}05uN;aOk5bV6U#E4^$j&d z7JlOONBd3KinuyorPc*IndK1i^1h2xe6)z*dBP2q+dPPr`ox*^+>40lkPNFG zvn(PKC2q`k%Yn@s%Afx7CnC^4FX#Q#A9mgg?Adf=K?D?_&Br=@8N0hYHe+-w^Tm!pmNO;rcac*s)z9AeKl%1WrmEa~}l|sczNl!FdbVA&m3hR_nv$vN>^X<^k*^ zGDNQ1r@^*!>CE7jvxtz0T!e!y84>JUPmh^?kBBDLrBBe?!_LBw@1wc`i0C{QO``Tw zL_)looi_IkwuH}hy+8XC5&1WB+KGq4&JLbGtJM+_t8X1z=_rRCOYT>#vQSQ+*eMEfs@rlubT-Z^4{Md4k3X!B` z#WcK}Mufckk9X(ABO<0Z?W^Lhuw$jHad*ZC5oj){{9M__%O`sEZ5;c0zh7 za{Osn+U+|q#Mi@|{lW~!8%kMO(-~l*GUP!5Wde-lOEJw;r@*+DE`hhFG|b6Kd#(<$ z!SunYp5E?r(CIaDyK4FdOnpo}UF*{g!zS|YX$qxaDn)J0J3I)6Tmrq!E)~PDN26^D z>pK`$dtd3>Q~(3l4^!^FAqm4btgS~cTfzjskbT~+8HP*lDASQv!C1v6xpun`46kUs z%D?px#u~%IZ>5RA*d6{O%0~yF{rs=ZheMk%(fZ@nYmrnKsjWz$|8X3~Q%1;z{jWh+ z{M*@I6wjbE8SBp9I zO^Xz(BaYCkPh>!A?nrxW_9JNDPAjEyegU`#lQ&nl!lAt_^5XRlO{kNzyRPHU0X24U zA!Z7s(Cppub6@Zy7%W$oOqrm8{z>EF!)*wLZ}F1dC5wb{o`Q2xFAJan&YfgY z=wvazIN?SB&6MxXdtW^Uo%~ty`wl2UD+v?HsNx2U2;R}8d;A3k@gD=}8OfpZZODrw zOL@?HhBl!~FA!Shia%VV#X}z|(DQD&30(xGp>)fa0B=hOLuVer!1!B^$T~-8zw)K! z#~B0Ymf^fM5jYOLBl$-clNq2T#iE=lgBqHAc<8;5=4cz^2+icj z>4&QqV4#kbk!Bt=^CYxz z_vczS+=H%HXGKJ#uRzylPHlDE0<>4v(H2vBKu3+W#e<%CXnx$3g*Utlt^3Q`sfDSb z`CBE=EM*1^o_0$Kv@L?6pkZ_G_FK@YH12ss(--=0kGC9u698=^ck6NS9nfuhah~$r zd+4+uFx*Vo1bpV_50-=iFhHp7WOq6j+Q>|;kLWEy=MH%&)$u9lsf*vL*As@8Y!}?s@@GbP97+>l5Q_w-G z)oq?237wj(`6FJRpylh*2_RJlKuuWU7Fq- zK|f&pTo#w$Z4sEseg49A(H5qq#RchJzk`Vrznnyy#b8|4VB@_}0E}}mK3KjZ1Y;d9 z32ht3V5F<5XUiiRralRb4z!xUj}6ml#|Ceh5qMthAK?IVt!D4buVeApt_|+cQkkJRmVlT{It9t`8>$0JrGIC(bN?)AP zj|3*tbtqQDcCh_~UPZ6_VBA^l^XN_rjIP|IoxSh`M)fTdd(N4`q(k%ToyB?h!9!P* zdf^I8*fl&HHnM~1IOD94J;z~!U5+x5vuqXF@BxvN?* zb3gZmD=W5s|n zFs{_wakbtCMqh4zjo?Uz$vf;j3jQJR9p7*yc{~#)_{=Zeu#|$ynt zTM~=~FiCW}sli0SiG4eK8+Bc>G%-1;MO{|G~2(KVVRVNIHJC3?_$YS=4!qVPtBQa@unSW_^!@ zx%1wEQBhByo_A?5l=#hPY3CvIKRvmUe}Mo7PqgRxnXAI!?KZ2YN~vxD(VV%u zg2k(2Yey!_2Vg{=tBEJn7{d$W#+1=VVCV|U?>@2sy2FN(Dvj> zrcI^_v|p`gvE)ere3n-{Uhf*To=dqCcJDm2dp%iO+Byu~rDX#7=iC8LQto8gTn4SD zECX8xrJy}9dR>w~5n5z8Pscqy1*25b)Ryw1Fx7N|iz3MtMtdj6Jg#`a^jEgcpYd4S z7#Y}h)yHtwz2J8QULi2a?pm?=cm!sz_h_oS*}%xMgzOawZWwD-Ukj?ly8z{)X8 zgB6&FH5eZxj)zIq{-jEFFN`z{-_rSJ3d1ShfeGKqVdR4ItZ$zwjL_t8A4FJu&EHx$ zL754YpJJ3ue^JBetBr2gqRp4o>mOSu?0=|c)5`gf`$vkGBU z^O`_T&NfWbaTrtzTf>A}AE_V_4NN%Q=8Gg#`v6t6r-<&_QS7f^}gb*6-&%xmTc*;JtK5!W3_o+Zo=SiWDl zhvh+cLDO$f4np_KS^L7%f-o?1VYM>u77Uu@jog3Q4+D-q+W1&+=(}n1j5;0ji^glZ z?sNjshri`(6UBz$e_3iE%JY zamMWS844I#;%`4N<^@CUTwbx>Y%rL9PFHF^1O}r_EYgy(wEP42=z67I`iX zgDcs~s(t=2a`BtXtrJu*bo12n7fYD_=9=FQ$$x_(`g=XkHEzIYh@$#43MLp-WG(ny z#R)@FXV&VEm&0&Z{xA8BdKePh#M8ao3&Tf#5MGb#f+6+A{goBjF!W~Fg=Fdj3=*H> zexZuRi;2i*TLtql^pXG5%`4b?1R}bjSlk~{p`a8ka)VK|FQMX3Zo=RN_tkRJZW!DY zAn#6)gMlWNN2lydv2)_6zSm?4!$NuOB?D$KSk>rBN0tFYFPKl)arVFj(6zTe&`R1kbW+> z217hT0)|27Lut$?;qr(0_DcBdFgH`m7%IH%DHD-l#o7^QRVIF!nR+ z=AbwX2_Fkorx<}D@}~8fU)C_l00pM?SOyDt0N+F(f9y@q~;1^OF}wvNlwWBdDPal9`a`j1_R z?`toD!L`$=qNP(<{ls4MBkw1+&qjVH+Z)htVy+xFc?5V-PTQRoE3EMn~7ibtA{?@3V#1URjA8Tlbufvh4#_Z zs9CmlXw73d-~U4iYNcC(!zgm0Z@6);yq*Sd>%2A_noZChH7Fw${2to)9D1p}w4j=j zm{4FM6B=i@M#wz`q2A+(-q|2G!1)SJ#m#3zyMFGE`1iTca{c?!i*!=Zp~zR79&!aL zKOIuYC6xf&U9zf#AEwZ(8hS#kkP@m)d^P6ScYi_Wa~CIxS-|%%@z5o^LCXWqq@gSy zsAVYOyUAM&*kMeU7feFEpHte=?kcF_H!hXd?8fSHi@EzNn19M$rS6i*f$oP2vF5=~ zVQ93W{cXS?jLx09U767ZEf$lV^e4DsfOT4a=ej)fELb)lqBsm)qrpcY=qy$*erCT% z!418IBu#Z6c%Vm5xjDxC6O4UGGDzT%hh}FXzR5{;Xg1_a>#0|Q!D89|*FykZ+pOg^ z=a0f5y$K8PYk%k^@Zo(mYYYQgq5e*%^r6F2(7x%JCE(R$8#8Akp@lSyp-Mj=+G9fI z!ooM9H#MXAyV-jf5U%>ZmKg(Ww|jy=>YjqmvxWqeCk&z8k8#i|3BwQcYG2Zi%s}^u z_@m3c2cTVgti`@76T=neW*4uQL;J<>LiRm1(8DmYB{Ojs!*>h=c4!dVjvDZEEI)#t z%7+hJo|Qq@{5Qz?#SeY0{GZ<36olql^^s$NnlPvn#_?e`8#<#Fgb#h^fuXokC?&z_ z*k4P}!#_Gei&V7y${B4KJh$J>=iM{t{3Su-LBUU6`<`rMd0EIJk&94nLWGC2Y6gq-@YqK(BPwV&O=uYnk5aD-p^S> zHHFb&!Vs++Pnv zbFP3XFG)V&D6*1DM#TV^+13y=J^)RgLp^3xE`aADkb3(SlgHR3J%si$bl|4g3qIEX z?y>h>vAS_+rmQ})m=+4Sh!GZZ%P_!)FqkMe{(=^gaH)yBPnf<8rKxgmLaX`pQw>Lg zpvetKU+R+r`0eOUb>zaSN!B;p>bbuqKV}`=%6fDF?hiPja*JYIy9a^!{gKGhn`%4R=ban z-do&)#(+*r(uil!Mi|Xd}mo3$$(`(*Bl!4NNw8>YC}_@%3IAu252yQ z(%$V$h3P|U+iIZ=Z~`R{6XuRUdr;|VhX%#i21#T_HD( z7CMd|KQXZ-2#q1UHfB>c(6B~W*kbSmS}Q!`!yjxzBkq}wHY*{t5nBwX_^<;`c=AZ2 zXEijFm>w^d@Po#>Gc1DFv2$lpPN6jV4vm6z=5<~%fK$q1FRpI~+{vQlca`zbZuK;v z%rYG6L-ypqB+7wCim27X*O=VhCh1cO?$CI0%*gp-J~Z!TwfaSI0h+XqKlP%P1YEjy z%CHzCw7q|NO;lO|IwI&!Zt(U)+v)VnQno|TYWDC(WLg>YlAN3VkV^<%;4#zsWUCU zP|Ky|vcnY(IH$qE0AhXU45Yf+8c+myTQ2_}!a0C1nqKHl!|K*|b64;j^w9EFU%Q~w z8d})%S7RJML8;`u;)=c$XfvC+!hyr$%y~tAs%zh%t<;CD`DrFpUH!q+A%71l=W+BO z1%CqW=Xr(KDMz3tQNU59^awNz3;PYW+=W)ETYc&ALeSW{fA41@VrY4}9h~5M8QQB)p2KbBfahFRobA(vQa63NLIW@8nmgs`m#75QDGzUP;>w^s za)SD(4-Ojms;g6@_d>bYfC^7x2UHugP+e%)2c;*e+gA1{Lro?hzeB)Y!0QuEEEbnR z!)Hm0CCA+;zYSiH5gaN`W%v*PjA})1Z1Sk7PYO z394L2Ie4F^0&e*Dt+%<&Q1&BAUBucGYrk>!)yhpMYgDnqGz7&jE>~YPr-J6EzSUyA ztT65qug&M4bYZ%!0ngm18D0CyhgAm1sZ(QBm0vuKXY?s z&q?41eEp#AnPM(z*z6d|ad3pzdDgMJ%(Kv{5&3ofNf|VAv3n&yR|Z^E(t&pRLTKnW z{6h7z2HL)+Gq8&c0?v5Kw%^Acnztr-crO@2hr`mRhKIKRe+# z%IkMB|J?|*f9O7^Y2XO8r^HTKzZ8W=vGK^6W(F*derwK#S-`p7y>!4W3)*+~rs78y zp>^jvb$q`gH0MvK`h}`NV>rHNIhqO@#_5O@-$X$J#l1uRS8Jf*7@yPZ>n>;xc&In& z-U#i2R{W-+A%NFZcBDBHcxcg)VTK7q;a=F+6UWZ)pj^F^awDaZj zRZKv~NES)-ng-wr%Cj%Bm_h4x`DAna5QZ01IFwn2pbjadNO6-wi+sRFR=pv#%=R^f zo+$@h)`PyMx1yo-04*uYuZz$|ZQn=7bsJiEB8c37VEN@;i#>ReKwa^XZ(9%dKvUe& z&vL1y(4uV`bm?Uk;FG57D4Ir~lj-s>Bc&d+6P)&Yr?m_%q1-%rJiXAw85Y}Vx{BrN z!$)$(ouJ{V;w#1-EU%u;Scz)?4tQ63kwl*@Xls6NPW@F3@YfGFt39d)eE3Z2$t#P{ z__?UNWPc~Lx@uJ8nSG$ic$soV{wj>N2vEErC536OQzEBHb70u>bI31U0~kNLzOr|$ z7bX*98Q!Ozgu(MdvmW0UVKh}pJy>-UMxstwS%fIVsPxdvSEctbVyobB?L{(-9`C$G z$g%_@4g0qiqW8hnoNrW4q5%vZWai~sG=L$s*M{mHwJ?QFV$1}?IVrY&li@I8 z@yzwBvJOm&3Htl|h=AeeDvWn7o`PZjLyYI{^1@Kn`-sE$&cTSMy}Mss6$~$M-u{uI z1f#c510M+iOh!g((nu=8uypDA7fm4;Tim>27P$tKYjVtcsur=jlpc2@ycb4g-_iwb zI>880A~Dli0gRd(pYNi148uQavUeP+U}VX2XoR;DMxNf2ruO{_lUdeJKOPH*!2=J& zoW-BO5cA1k@6@+2zOQHR%I@=j$6xAQvFC^BhO4Dl2J&IpJ0V25kPF5^@_Og0Bn*z} zaI%gU!yrD_RBPu547BU6Fuujs>-g+jZj%SYM>kw*gDhZ@K^cV@g}_jjK+KIXeN29Mm2N@_!&}F0n>%R37}eFoVJy@zk(yH=K}8M2hqCsG&$z<) z`E9vlwc9WyHhq9s&ISf4jRP|4CSWvOHc^it7)FA=on?<$fzd?KpabX_jQH!^F0vzn z(F;1$-?}fsD7&t#<(3po{wyDw6s3T{7kf|SZmPpj6xA(sd@!gy-DbL1Np7}|H9fC)vwkY-Hv^?3&v)INAifY}U2gaR`U zmhi%`$4fi%5_Oo|m#WFIBaPVy?c)QF^U_`yb zIx)}nA3R?v{!gB-6#tXwE1CZKG^44jgR8mizk8Y6A6pLo!` zMgAYQ{O!$jjDKtS{mTpg&~We{H5~d!4Tt|xgX}+Qko!js^8cto;dc`L@uh};Z2A4U z{PER>e{A{vx%}}3hktDO{ki<{HHUv}`Mo@UeA(e2TYfLkA76R+$ClsA^T!t-{;}ov z^8E4jhktDOy*z(>3F04HelO1-UxoO`mfy?s#}^|0vE}#j{PDGje{A_L|JDPAx{-?R zZl8bhNHwLEyE$ew4mP&`iKnWG|NA{vP2l~%^{Hyaz2skgg84NPBluF%OKyY&o0KD* zCdrYAd!&ZExFHhsQ~mL#ejEunE;H_NxPZil=3cQ|h9Y6pGs#A|C(vFC>#Z|Z=1B1M zYWDTQqewW6Rg;Ig3kmV7j>KIeM`E^}A%xbPh@V$CN!9ud;`hC0R-P=0ghjF)N|sp> z9}(M>ymcQE&K3@9@9sx@jt5uXU6)5p+$x-(&8AT$lTRqMGI3yx9U(-X%jf7-)c#jXnBN30Dp}4$K#H}nD&~#`83CNq% z2#us8fxC&~jO04q1iRtl-Evg?p;PCJ=ziW(M5cFHRPW5J!Y|w`i`8S|bvZ*y{pbM-W-X$kdh4DMUEHx5qbI z08uEg&DF_J!MaO>2TFN|2sn=<>Zw&DVsY_G1|2%svAO%uGS&wXSsHhUn0|wu$YZHt zP1kvoI9y{k+jG1ZJd-aEV#_V4|tcisv{9 zOhzyqpbESOV>7Kc)ZsMDUkErOZAT14g}3})iM)mRtx1s@@ng_iB);#uh%k(j-Iw@! zv;!vaiI2q`!eK(=!d%5n0*3l25AFBH(DK*Ekw;R)Ff`6imrEQ66VVfSeNvZU{N(w{ z0F{?8GU;?K$|4!YxEC6jmTKX<;P+28%MCD-wXpelDG0`NTgZPtWQA!u7UA+JLg-F6 zelI6N2onxR>6na+V2YMkt>~cVKR{n3{{(%J{Aa$?_Fo*Fss9q3|N6DGe-fW*{u-bE z`c0hwM2IH;Zy2I~{jUwtO!oaH8Pm5AZ*A$z?wtZ8z|x&;U+I82M(-N!sVzqQx&4ps zT{S}7TpXL09fnBYL~u=(lRx5V9(ks1E`XQ{?#hkN^&oaa^`NO3e#E+w`J!uJ81V^b zcTmUfARbxO8aZ%6d!-sBHQYuJ+wF&2l8;;wZ!>FE_ErVr;w=5f96*nRnL7@KO(!EB zE$OXCY)OdAC#Nb>6A=4sWXb_WXT&bDlXPeCBVux69xu5zfVizs1;vNeiVsdt_i{eYLMk;+4H>QdR-jlYJ?nuJc?UG6l!&|U5u&4AG)fW8n7Lu6B zdk4Q5M;cS+HsGhhELr{+3RrVkJ1-L*fe7vwnRoNd!OnfESDVQVu+7d{zs{+L2=2cA zP%(cCeo8W3j5N!K&4|Z(IT6CJ#gcpPo>4XQj6UAKU6=>cnlbm?qVK?{2+hYz<2^8; zJUXZJ4U=uENkkiTkUL(lB$>>g6zJA`G5ZQ`{Tc z2NQ0qsyyXgSOFW+9_Q2z9uUDey|RStRdpDpQRt#2P=)c=rgqC|Eigb98)|p88^%nIYHOV$fpI!( zhL;aip!&3YgoSn}w8sb>ty^+~=82!Uhzee4@$^uhHwpwipRW?@`bEHd>Wyj!J%x5H z-i>hgHE5>dLpyfREXOzv$=<%|mzUZWFLWYp-;-5HB8@ zPS6E7SL2{z3!iW)U8RSa))}UX?xbPFVHIRK%7+49B}!C%dbWHpv8{k^SnJk zQyt`-?^wp>Up1`?&xFP&*-u)=(*Q@PZ`*%#8#;!M4oHiifR_GpdA5u>Xf8C;j%(6} z)&T9L6K1whPf`$L{&Ekr7`QJGBuzofJtH>U{!nP#7>+dIw}xI5CE@ThSD@pH!jbSy z2k2XgAyb5Hl(W_@L>64r*^`2|r3` z@IevUgxwCj3Acjw@$V(a$wr{-kwsVx7|FPM?&-f1Z(hxsUbUY)LNShNhjkeb~AOQa7D``OpP%5=x_ zL|F>_7>m3VCb@H4uSB4$IYkV3m>e!x^Vnu-CdX;r650;yaOv8 z&t#nrPQ$#$L+Sctd6*}>iBI%82H!tlKPlwX1K+cv3>`eq!OvgC&t3 zmd>v*553q2E0ckXyeE}m%7;=sW8e)eve}Z0L~g^9JQE3Vnmep_Y}T1NR3ehh&)rEg zHHhgkm-uUy6j+V)P9~yBMogE=#YxT?ATq((PkU%$5Z$3jc3ZY^M6Pql*YMIlSR-+H zAn$w_i!bg$)qI7pqVe%D&B$X!Gv-^VpYa6|d)7;=JSsud@0sRacX`6j#o0^8g*FjU zo3^;$scVRGFidCB&K0q}C2W6o_%WiKqwI8?DMy4$MX%_bSrAcX%}Y;D6GRv~^SE`s z0G1*K+0h+tM6LD0Ci*oMENW;(k5Vxs;t*=V{))$l?CX=S6^#0@cu(QosH!h)HTvUC4`7lT;boY+Tzw7ds zdm8_a^Ow5<|BmyQy83U}>MtBy8`s@0@&9(W=kIaUxxaq9|G)U111Gf&)b&)=bq!AH zX#X>WXJe1;#=^?c)yBd8KY{Sb{u?5^uK%?NkKE}S&u1P^#OieIz`c+`#2Ay%!+kgb zF_UUPjg9<{7#Y;tQs5zCq+j0asuGJ>9o<8pSSuo?{a!JzkCh{et?zE%^qdf_7a{wd z_o9g5b<-KP?E8qZt9m@!!3Z&Xl(R2bv?2yG#gIzg_lWis#a;hG2gGJM&X{~R4$)}m zGFn{KL(F$m9|gS1K@5f;7!6+~BBsDDkB4*`h*soM*3^0=qA6z17h4WP)O?Hj$E0wG z)_)tHcuEhkoW7y;a%2rLc^&3Wy4bHJ=f0N;TTV;6UKQO#^s|@eu z?=Zal9~fTkD#OcLWq6lY86MLr!;4&HctU9Oc+q>dq(f+eb0TNU!&CnS!@KlfFg(Fk zh8OWW46l2Y;g$RW!?W@_JRnbCcrMpB+)-F%c*_3;!y{Q`c=D?Z@9xhG@6mDTmL(a~ zvf-JW=#dwwCG5$L(1_cplcTp(>Nv^Y7+!;*oo#h#B5Lw8IlhpahgzIv-giCJMXeJ% zqkB|lQG3VTmFljqs43vo;>GAgsG)-QT6oS@)JYr>sAiyU%2}oR9;T>$QbKUwf(z;xto$rJ zegXB_RO?=ADM6iA7q8y;;X^G^nI=J=J_${zj53-m)&#Bh^8?hJ|P#(~W$_BLQ_3Ih8mmrtmZ$6x#1oG}5o8J#FgZh5E ziS;iZfpVH}Vv+L$P+pudF$_`z(V0}uvf5LyzfXNdHM$!1zaaX?Px>CfDf*JsMt%^N zwmQ!<*ab*7FiCx17Rc*t2||Zk#0T%Sfl`jGlZkj8Z(CjQHP@_C||$+2Kz0APPHty^QjEC}(mFq!*wgG?ar$&BL+0H>biJrOel9?A#W ziZpjX;oJR#-}p!2fcl$3Q=@mFvC@@R>irm`Ur(Wly)_^)!yQcl0w6t7T*+F?17glc z1>abzgRs(&;NsJlAU(bDKKJQQaG>cJoshf?C=|4+KS|91dE+dBx3qpB3v~v9#UDWa zNh*CDOa601;#sh{uUi?&fj`9ZZnVfwkTe)zvP(|`$%oQ1 zT&He=+*kdP8&=#PM|DTVo3;sLqQ20RMU8@-F|||1xF8&8*t?}UQV+x%rtF1puLCKO zg+kTf8W3_L4b~?83{oC@`DLD}gOt)h%ep+mxH(+Mbu-!q6m~KW@UYN;+`j4;-#x>D z^G;n7skkJFRQ4T_FM15ZC-u_FZn%T!c$nqr<#gcndV90U`3s0F%-wAroCKNuU&LLQ z%wW$r?>jYVW`DoQ`X9)e-8W)Z<3 zm8Q{2wK8oGJO6=qc842?P{f>?GiL=6@yhH^QRX1D?|$`I=_GKEOJwKGP=R<9b)qz5 z90+iG`H>miCj(5o&gbn&vR_mL$^UXr1e(b&4VEPLMMS} z@f?VoFSC#k<_*p`<4n;2TachV$~#E47sS;T3v<)VLBZmrj826n!1Ks`d}ka1UEbhZ z#61igT&?F6O-8{_bTE z62BLuyZ;Ob@H#j@_Vk9m2d2BMji^A3{JhiQC+k5_g<}6DDFcuR^>~@{JOE_!uCBY? zw+Ldy)w-sGLjcjzflqcjf#hha^t!MP5X`8zrjTU;(R(xRbh949j=jZiBJYZTIBB(G z98nyI?Kn2SUFaytm-qSF%;kZsr`6{@`YRwyuCj%3bO6{Hj%%7%i;7*p;$iOwter;$PAYy}Iv! z6zj%W_cT3FnBcHa+9d#@()toN)U-e#oA}CG_OBq|JhNOrTL!%1zDD-Q8`w)N9MXt( zfr!tvcxs>o@J2t)EZTMkq%MS?cQtJTsV+G(q203}a#T8Apw$n+=;4SpZ4O8Trb;nf zIB;Pyd-r@BePD_MiI0Q&d52 zl9bPIw^xUby(BMg@I2joWb_IiK9adl?Acp9NLfHpzl#-RPzNa35WT=X+DQl3t7_t* zk?*;6gS&9rt{Jk2meY8-G4N8u4Ssw^huS8FQX0Q!c`9;qa5t_ppIsMv^9>#uEZfx8 z@e#k(NmUd&e*jmhzCFElBpZKd?hKL<@4=0WlTBZ(#&GAY6|-8M{dgAL86TQ{foi0= zE^doxz+E&WPAt>rcrMM3>)0OD zKQrvhyU>lNq9i(oo?XX{wjHz^Mdk3hqn}6FTOZ)}6XeqV>-F#~Oq?6c+=;*QeY<=&B#q;YawU0Cn;`SrJH+^Rr&-?AoJ#N~I z>lYMw{0lSjyT+MUq>I9MiQLkf#g7&biR`s-__&BadTuc+AKQZ8jQMf6i$&qFK|>W| z**kbxS9ZE-^AKK&J8a}b5{F*}T^D;ksftQyCoXBMe~f#FI}BDHUBK@{uV1_8DU3&H zoga<~oW%3n^E?^4J<*_?{!w}RDcqyE_j6lJG=5r8f8vWdFUBc50+S7|p_Ywb`{`ug z;o`_A%pTiyaQkw|5D)Jh>Oz6b^v87ZFwf27q;SL-b~shA&rJ<7hoo+0*%t%@Jsc7gvNF^s|pL6paQd(cIU+sQP;#b-|>|`G|bxf z0`(K(X*N${`j(1@dgFYxHE-iy-qJ>$qAAoFqjPJWwjO%zux{^{_B}ZBT9>Qe$9mM^ z@Kr_4$7`)}oO;5d-G}ZBZsv2{ z+V$KL4R`b`er2yhHD@cEYuY!WoRPQUpCt=W`z0^A6}uVSto(dqsTMcF^OH%ZH{_!l z!GyAxDyryJf016!lTQ5laKJmF+CJ3DL)lg^S%=1@|<*p<(M--je-}C~3ZmOqq%ibzVOn|6OSlDoSbj zpp=-0GOryxW&iLkYG;V=+QB1(>bQ$b_hy=+j_z##hu06F(xh=bJ}QA)`)`qau)B{+ zx6Pdu3^hmN?PAqbs0L+eGT0?d%ivkFaG}^LN8HOIQnk-L0CkE!`>a6fhRSt%7Wd^5 z`gMzan7SkxYG)LkS!^mtqe9LbuSo`=(eeY-d53E=>_pR}DQ5{w7pjhT7+NrtL&b3$4VE`|qX7@*gzbj& zsJT7&j(Flu^!Av<;~POZXsT#u0Ecf1n)BLic3rm%jVz12j<%3R6Bex{L7fa}%502_hQl27nm=AR_$eI? zPPad#xA8&kbcgkyJqbqdZw4IxYCMhbg`@0yo&f5sFb|2Q_=d)OA2U2PK7y_`imX_F zYDP1SyEm<<5PE7zcZvVXanz_l-#GjhI4VLG4CTY7(TR&#OmR_)b$gI*0( zs}mRSJ5)w%->Hrxn_{`Tr$y^j8?ez-KJX4AnB88p(jdDva&e`^>FKTXLyfM4#;mL9w_8@jNW||Y% zdZgzEay`Y*;&!=Dglgl&_<5V6b$PgQ+J-FiE1)MN2PZ?dRq>1P?nRUAHe6%2*Tke} z5f|;$6a8FijU73ygSjTvaq5WK%2*>MepFZT?DhL_RMO4CF1KY0=jSJ8D|K4p(2R3Y z%VEcmbJFdn)$yaa(%+@4Cg&Kg?f)7t*yW77asxyo8OU+(J06+O<=nU{xmW${ix)Uw zkNp{ye+{l3PSa97ycc(m>>+u2(-gNoB)(De2;+iRlnT;j?{W2^qa7*RHSqbQ#8QnC zV%!-@<6VipapTK#MWqrCaQscl@GGn|xcL=hC!1*yPH~%O%9k>|L?@xw6R5IHVr9U16ZcMx|<8YmeZ7{mE# zqycQ>i70B6gZUoWCY;-7+b4NuC$6;%zAt&>DJ~8<;}N=T05?hG-Lie;jN;TEZ;_1q zgbNxBzbv$IqTR3P3R8n#;<(v#gG+QD@T2%6_c>Z+ag=P{kjRuZ&f$6ftsvkAiWFBi zDt}ReE0mwSJ2O&-k}X7h_}@RkbssaGF2!i0=(@X)?-~xH$cK76-Bc!UzD#~*D6u>$ zI29)Sik=hKe>j|`MjeI%?G1e&)w`i&CyQdg@OG4AEiEGXmxX?!L)G<<9Pr z6%@)S?u5jRi#r`q-o|^Q4D9<+<{)309^XrxcjQn?^uQOCL>qt9f?^{|?Xf;o5F?0^ zcqZEA%oK2T70=~-=cBk#giLC_auz?Z_;i9_{UDBOA&Vd;@PhooFy-eL8PF}|o8$Lq zX>e#-ygGlM2TJEn8uZyUjw@|cy{d=paLTJIBE2ijINkTd?o+IWDA8ag#U|7RSKFoB zIcleYf{Pu^%~o&a-!2wX<|(RYhwe-a{EZ}MVAf7Um)q%D_Ox$)|L63>Tg7u z_=VCFvwVbm61F)|M&c`sX+|?{v*^jl#+}q(+3>|)*P^*TedKfAp?ux!EImTah^ zn~CITeF`eG|5B#LdjK_E758eMO+%I592fh&=uzT!{-f=d#3&=o`<%r3R8%1IFq@=0 z4ApdvKhfJ3hf3hGE2VNAYP;f+6R_SN#k;)oV7iD=;T}mJpN22!rNL(RkVD&00Vs|i zrI!%TqKxU;HaXG^luECde3k7UYPG7=w-tVen#u=1f610cWe1d5Hy-dsQG*{jJ>Q-u z#6cT-I@1trjY=}Fp1X8P1*NO@KFaj|fLcDS zFwxtRp>XrPD&yuJC~L;Tm?NbXRbrVK-;aLyahDT)4myn5c2S9tN1R6~F53EB*A`Jy zl!n*=qFEG~4@E@dWGM8xE|=)-2viqWYeTbjC$bsd-21*)8^zb~*0qnRpeGUxM}5A; zpq67(3P&>z_(oxAhsKvB2Hd^HxYB<|a^vD*_J<`Bk?&_8(>GntV@akGrVk6~2 z8r|}*UPu2`Kiqm+e8%;VI4+6X5W4jt6V5Wuba-~u09PLf+BAAR4_68I-)fzRMVFhE z_=fGqaOv5Q^US4UxQ5$NhdfXWC%!$Hys~2fk5XOBALG@>cUXCM1l(H0?I_hE$#Mo~ ze420_u9wEOX^T?gXL@kU-lu`f?o~KVL?+B`^BC?8+{LYE!H#noEyyzk_F}9duNHYj z78M=!R~XYjV~$0gHL66d;HaPNppgH_vY+@f)4x!O+)yNx#{G1zkAvJ)OF zGVd92KJ}O?F8YEhwHQ(kt!%?B>W}zlNV#y%EsgUsA70}7vt`AlX0e3*4p+9r+XUQl zd3p21ttLFwPF!OfeFu;Dol0y-b;ctdS67rbMd9l3H*8ZkI&df5mrBv0dw3+U_^gR( zB7VJ*TP?hiAD32DS+TLV;abir`HBPs>`nEa@uGS;9-jUb=c0NYx0Awo%R^l_C(^;A zNh}bzm!51=UNFXqs*jH_$ezdT8#9{5Z+qbZQ{9@2dbzkiviI>*9(CCAMV>!hY!m`FL3j-^l?Mm zi>wT~KvY7K%xh*SkE*_qt8YH;gzt{DuJ^n96xFy&-_(3$iC^xRVAuQFk4oMSuQV6j zK;>o0Db!!Cqe^qqSA!Yjgnh?QPk@g;PSkjM_hOMDDk1WzuN}%pb)~Yc4 z)R5=6MUb-pvl0<*Sftu!9?^rneF`_tKI_4y5sL{g%0y6^=BNGCJ`eCCW7p%BDJ!^& zpR&^Gnl~y9Kl+6i<)N%gcc!anU!xiy*~?^O#i+j4GG5WNf?yszb(mR|V)ffh$%p~9G2lFK;``+1wJUe9+On-8L z!SVpgG=0Wrtt^T1K3zG^%20@k=acDfR^7poO!qf$us1~o&JEcG^h~HKs6Au_UZaZC zk(2p21QkZljVlyapzOm7C&g4Bp+~m$RtJMKP=VH*L214nD(}W48=jb;$CWpkzu-hv zYI@^+NXj)7>*hu%(i~B-gAC2Nql2g{wR`ia@#iS-_=dEqS0Sj@>99FP=K_kNP_~C-!zf=}@l~+$ zCRA}z;e!pk7`pRqLc?KQ7OMBP+Uk0+3Z;7L8h@r|MM)G!+jFM)QKlX92xGMdihu1^ za!Mf>RpYnx4|okw*oycfwLt<(f8!*ldNc^d9DDw)J-r7t~D6WWRD{A!qs6%9}^ zw^3S#<9$?AHoGm2=oU(1!o8HYj-%A#_Akjnv#3;%gCVj+=U=^!{;PhtRYq9oh7v0- zImlFP=9Y*viA1vB9x%l<#HIm-#SFMI+#`ncfS->vt_ z7{?u|n@*Fv1mfH+@fRYd`tYqICg)cMj^Z}z&}aSRDY$j)+#}DnHaxws!@JbJ}vOK2xIel^PwvNtRYm!D1C~t(4*`RN5@8Yp67b@*5IUG_2mB z>fSKgypc{^Y$D(?5wU{GLZgpRDn_B&uU(xj8&9E<=RBn9i>k zUj*qHQdrRC&*9S9z^S*4i>TyUmEHX_SFrOI@MTva!Ifzz1BUNUqcXln9yzTR5!Baq2T30)Ko#X?z3kSYTjO}w|nsrin(!n<7=@usM6HW`jk==dYOcuW!jaX z^0|%AHXJQO)lck>?8-{R3HA4eWXk;!{!qr!sHTJ}!f$f$G9;lFVkP(IZ{I-$hR2RM zPFkV(jpf^|dc08iSkGIAGgnZK$Uv~%IVx1GQZ;Bwr;AFT?=)8+eTdTxKF*KlNT9-# zku_tcT&S#gn16r!1j-F2k0QHv6y;`YUibQdB6_HyP5gP}5VmPNrFv8cB_E?{U)W_nM+? zKh>fnu@Mx)6UZ0mK8SMJDn9MQ+fYT=*%`;IVH6&I24%i~h|0)jL{IVtq4*7<6t}B3 zqtF?)zK6bqb*zq$XX73zF35QCN~jLXbFvvCJCu$KQYpC&Cnd3e-F%$8=Ur5=t(W&h{vMR{jY=~x+8UL) ziS=kPQliY;Eq;Evw^2Er!9wemNz zp>m>+vwEF!s4R!BcR5ZUl`ZGIa^83g<bd+$uQmbn+`Ovu@P-UjTcJw-RhO`SiQE!U@4Jb@kNQgr>V82bt?Ou188uOo z`S~v+O3zS9s!Nm+We19}D1PV0HHFe0NJ{Qv9u(qE+VWxJGt}s#cwRd6|Ce*9ynk$0f$;OtnKvKOP)&x@zNRn&UpD+2AeGO7O1fXV zIF@}uSq!|w^igL~%}qLDah3`cY%ukK^|LF=VU#c5IcSI~mWZ}@pG!r7CoL@vDE6W{ zNfO7!5A-OuK=|>xAq5oM%KphR{VFQ7^5l3Fu@glXT{i3@=0inE(?!SDi=znE%<@~5 z*HDVrTYH0?bo3w~v_eYY1ZvPQsj&Wj3srv(7o<7=9TnSea!GMjLgjnzH$1(9P^R(9 zovuhBl-4iSId+sEl_c*dr!ZXjSFfZ0svm(d)`xg!y5QvXxfO!Cg7{gy*KWD@&vAYf z1F6JJ1y1kT9llVmfg%}HNb3sj;3O*FY88PXoNX>yF6B6Z9=0&mlz-TUTfJf&OkQn5 z{u&!;8a`;_a1%Rv{yjFDy)F!?>5{5ZwZjrVgRKMv8lago=S6lJq=yOYy-;fl>#-43^I;($ZP1d6Wq zqQ^#uw_l&XgzFbLZF_9Bag&)v@dk2!+{aseMz)O=_ZNB`a%3REuU$7zZ5=y?3y+X; ztZ)$4;ns|)+cyv6*PA`9YpGjtyNJNE&)&yy8By{T6E<>Ojqg3KcT2)~$tT!pCh2h3 zY{vyrpD5gHYL`_Qqx|kK@$Lrf(JBn{kD$Ts`q?Rot~T#QRch z9mWodx;dLma7F*ec%|0;xZIhRd!(}mmwynrtuMI~<6XCGDBc9&o-EET#ZSh#^g~CC z?n^^_^1I5rzJ@0_U+Q{%?&f{?tCti88d}7nY*eHv4M*=5rirvWGg(5CDbDr(3L7C6hi!WauL=k?E)3nB4p}dL|W|!=6TtWHF z0m^!y#lVLBC0LaB;!(%tukw8Y^OqB5WBXUb8kN~Pi%%S@DU;>Lk77YdY8BvSpD zULGg+9Qnjnbq!}a^;~-6&59$KdgEsI_Tk*D#K$SkR;Y;8vtVCY1qzIISs!zP4o4{K zQxDACMj6uWPYgrnaJgAMsoc^8K0neZO-u6}`5Sq>Cw6c{SgGmzH7SH^dnU~Uk6%UU zQhc|c_nM&k$Pn$EFZrlc;RMO{qlA5~=&?*CcOCp9uG}JSiw}CdtI6TR12vQ$dCMqI zuNIZ6h3n~r@FTyDZAyyg9-#QGzJ*RQJJ1t}z$>1S3D{ON*v+Jp9;M}$cfGuykD_{6 zzFlATL;)OK)wjOMqhMlo)?yI{lw4J@cfZM7bi?_8;+c_RR7vS17+GS5efF{B*yS1H zZt5dRg_kIB73Ue^3vN~@cjo5lj#?x1WaW{vJe4^r?O=ZvDw>EgD959<)i$B3L%P}w zoVlpRzVp&oH(JzEH!yo``#n_Id!2sMO-c0Pi`4p4&l^z5i4}FT*a%d{#-g(xC{e|C z*X_HO^-%6%g-_)fCsFGsnB4KA6vaa7p@fOoD38dXe1=UD)q4?rG(K<%h4@``IWV^o zHDA>slL@>R=`m|HY#*sZ$hH_vN#=p9w^fPUVX{Rnyxk>i$klNz;pODZxj1frLnJqt7L+Ne77{YF+MQk1LIzqRv%FUpRZ z$n4pC`o|Vf$h>u)XOD!#8HhCHFMp+cA~`zwHYQFt5Ip9 zvYqcz0ykQqmV~LLhvH{Z%aIx*WjAq@Q!tou-ChF~&+Ek!sVkzCJow}n4_(}LY@9T>f(^Z~UzyBsW8pNk$PYx=5A6UI@c z5_zUi7Rr?fAtHG;j{^O36K_$aqOy)228mNU(UlW}{QXy{P}CLsfD!?9eCc)eW*#YF z)FRHmk+`lAwd~M)?&ME|TAq`bE!9M$*4~5E)64HsOvd`)8y8ton(SuXug4CdlBv+0 zk%7#b&QyM(- zpYq?4|CIQS{HKg}qgt40IGfr=FwuIp-Y3&&lQ}e$FyS@pF1P zil6h!QT&`xj^gJ`auh$OkfZoHcO1q4VA42ZCB47%((t+;UK3vT!)w9o{{3DF{@x?*_$_dP4qNtU-S2oUCd00Z^g)&gNFg3QAkK9Y4_$gL>N) zop%-?ptO?A>DuJd4iAA(_zSNZ`7{Wz9Gm1;s{!FHpGFRI62ZRuy@mUCd4Z6u$*zDG zA|T+MBOl&c2z<=VhbD?)OC$mXJnM;0Hpn7CZ@7#=xJyB*Lh=2Lwc4k8OMW4!9ka z?hjS(1|ITm@7Awmz@7K}y~L6OaEZPO3cHgD{5LH@AUPj|Ji~^c`O5>JES;=pK^^cI zTGdaVUV?q5L?_-c<^%7*Zr7l1Gr*Ha?xy!80odxRWJEP=SUixO5<1%nEid3}F?*MM5K7*K) zi@>K*T+bXe2m3NdB3-e{zNJ=L;_8$xygj~xrS!QF1)JeAlJ zZde06A-3Dv)B}L??)oTOs;9tzCYgI|&=U4)=8~Ch1lUJ+=*c;kJmB1&Fmo|N5!j_B zyB<9_4}7CvcDqQK0^jBnT1!NCfSac2gF8Jl@R44=&}&K#Y~lh@+mDUG-T@1nm*hFX zbyxBXE0F`No9nKQ5v_sEuh-qG?IDFt-W^QmcNhZ2R#QMWX>75g`4BeIrPd|| z`N8H3)?VEU*MZ#mbh}kZCJ^(|O&kyk1`o?m2Sw6?Z>&jg~a{iH5r%o?Wlh%LD+Mfp-Zary~<2wYDV!W5~`qF_+N@pj{yILUM zIi_cNbuW;t-x|C=`Z{dDM|JdbmSDYeh(M52HIQ`Bs*ld=0hJh;u81`ekmLK!1E+al zlk(VZzvFj-;&WHZQfD6!zhpk~TF4N{=Dw1cF71I$7o^vjyk&#+Q=J@C43xK4bS%#VC3NWtRwYnFr4O`f*2(U1S1A|^)>!L+7PzMPKF+I?M^_sKS z{o{84SqEQ$163fb?|Ay@ctbkSiLwi-i{6IKc9NV{4naWEQZRhA^%#&|yMEETjvlr= zdKgUN%?;FTpY`XbO@W1K+g|xME?)&5*y-p7yKSoD@0_xR9V+zVJ$VMOqd)w4h@TCx znFz$WQ&j$L=GdbRbdag{p%+VWw2M{W9*j) zr+||pqAPDhE$p)1tx!4Y47+0wc|4*Ng`JC**ZV&&!_M-T4I3ilfX(jX;e`4DV0u#b zDRf^LudWO~YWRYUrhw7>tWNM`<*RJ*^rY<|kl^*5K#Ia&OsY-j(=^?x>H(f(t~ z;_weq7LtEM%98&dOIZx#Vk_h;G{MMgrqy(}3mD1$MI{fngJOQRmKMVEB0FTjm@CFd{nm zn7wQ>7!H>+9-65GqbPT7H5XDa@;G-A&9HzG@0H}Lycb~P;@ktaYGA~nO7k^p01Urp zN3q#m1|!i^+qk@TfKfrPfkNF;Fccb+>7-o(!%O!gPdm(mq33L_c&i{(IA2WgYNUq> z8wX06!J(h!|Et&kUE}&EU(Zq~-ln2n3t3{%d8CzHAWQvlugNoS$Wm;N&)J#|S=s}O zjoBrTrRK_5#U27#@?@kUB(#tPd*nWqdP3Iz!>TG-DFnH&{$L>sLGnuVoREer<@c%L zp6UcUG(D#rT_Nj`+qo|P+mI!$Kz`7>60($1qh4k;5bRZ6x;HyXh~t4*91#x#w)vo=jbX>g; z4y)}PSM?6FtMyj>IIXsKT=nm~iqD~BRj&GXSZ!~&>#x#kRc{MF#OttHPFb6Sh%hw{0#dL_TrJN)Qp6|dv$Z~Zu}=}-J%r+HPsT3)-qPHXY5;&Jp^ zEw8q>S*>roZngeuJ?GVUoL1{QtzBP>Z?&D{uD?qAwK!JouJz}dJ(pD+Yxiv}uD|u$ zYCF4Cz2mBXt5v_2tM&diKH#_Q*6=wC{x-g~{&if{+pX3=vu1a-p4A%8HUIvraux4d z|JbklEsj&G<-gq@>fgrYvg+Sq-EZTvUBkU<$GYUVxGh%87HjxcrS)2zt7ZGuc%5c{ z8}HfG_73n{`=`QJal`N6UX5pMoY;B&fP1yx$yNQ|#^>yB@i@=^fZKl+cgb)4S+C+) zdtNODSLLqN_N(@+!+(q0ZnfUu#{H`OGi&YE@U7N6x$4()^|}@OfO{>DHQeDp;1>L= zG+D!wx+>S&JFMb%_yITdD(+RkYvbe0s{OTbYq?tAe9hl#y|b%jr&a$pYvmvOui>^| zv$rZwtm@as(VG6pd1Otljmx#?a4inwlHb9-+Rj;f)&E+(-@$F}wHn8oT*Y&`&8? zUyi#R%uZSV1EiJs-;cDeGyabyt@Qc{8e*S!pbwA36TP?Ih3$e;PtIut17nPQOrD+x za80utuDovp=1cS8k%R3(JD1vX0!V@AoxN1YAzfg!tfW0B$qe-N>%Zh&8G_But$X&^ zu>g$$jfv5mF>D4TZ8)h6OvEDx&KS%B1sfyH_i9Dh+-D}$nI#P@L0`7WtrrD0y*-?k zju(NhMOA?}G83p+%WskoodY_%^0)?98K7(U&STql8>lyQx+dw60lh>=ZXdZA(B^)% zy~1!0=+i=8CB2b>t%99Y={kFXhH|rvSJ-P{pSbvdm)Zulf5?9_)Y%AI#*1~Po_+)o z#Y8V%o*rPZ$!S(l=>q9^mNJzWA|Nrb0V`EYgX)#ie4?2oIB@TL|8_?r5T#GqbFJVm zu*EZN^J*ysiD2u2x9@I(nAR0TrjSt(z4OkqE zZ#s7t#HjW%Ub>hGg1w&^weNI;_@h(qPs_YP^v3Qt=dO=|I4RSnH`bFN$wU;YM_vWO zF_(v9Q}=>`?HN`4H3y{g7-?Ov@qmz|)*YT3HNP{-t^b2bZvEex7Uz-0oK!bIQNeIBo9Wa^`>FRGd^%Nl9B*U*QjCEb`Ol<_@N(oy@HMk*v2w|Aupx z?0@W>B^)YW$yCh`4CL3I#zc~V7>}^_v51o(O3V@R^*91~s(nfW=Xb$=Bw*Sod>9U} zX3qI^M8IxCZ4GAP72qEI;8$Pt9C)oZy%nm?fjzvp&T5!FhdtL6-(1jl2F?x>$p_TZ zAUba5Jt7kX%(ZQvbK6dXXi)1mN3Ic&6x^D_x!w`vmIInOQ`12tZlwL(MGoNAoE&{k zcm{dd^hJUx&4BA&lA@O%FYF?6=34YM1fc=?l!>=~z?IM&_BpQrBtrJw^0d$gNlF1L zA$v&>w%hrY$-)oNYw5NxD%U}r-F~Ok0ae)dwt2K8IpTMoUE)7@c8UMavrBDb@2Y8b z(cDS#FAu~2z|%?gm+N{;TH1f~c}o{_+kg1;mVX|Dt@}56I_d5{bQe!o0LH!2Mwi`e zfTl^G_vq#kpevB2r{lT`)MshLY>!m~-BzFdS+fd2C+Kp*tN#$tPx5|e@m&H&_m}n) zcRPVm`&~+4Sq?BH@KK$8Xa;on?bW2XOTZvSGr8rZJM)+V>3v2O-w z_gIJAP&o|r)^~K2h=+mByrJ6fnmRCUzSVfYWh>Cs_HRGf!%T>0>jEB40_yXOXAeEm z1Ujm&_J|D!fNozs$y8hw(Dx0072`_>M!U-^&h6~Lc+gikzdaEcl4%4OiN=7g)LqS% zm>L)qHk3alG69;)RTMjv`hl_j(BxaW_dpx%-uTuXfG*bK(ViQ7fR5+9Y;P?Aw<>p8 zGy^rkzU@vY@Fb>48ssw6ORq&AFQC4g-0DRl1++^idXDrR0y>u0l@Uwdfxbk&#}9o4 zM%_&nYX1Jfs3uWmd3*yfWM0V8+!z6Ll{)&&ZybQ(=px;vbB#a~*e}3om=BD}U(00; zHvnzU`-a6Do=+6k1`3ruq^%L>C z*-8#zq^etf*vAWu(M_z;$>YFi!{OoBU;_-|A8}yRUSJTmm|a(D0Ndz&J1sJkfYvMI zbiaff&>k=5BW@w|*THW=9`?#WTlQ&`OyDeGe7=t>+#m)tIoDGHH>3mINu3%-y)K}R z>5yVE{{XaaThiZ}c>x{ukwvLZ_CWt4IeI-SH84sR3-^0;0i(jPH*U(=z);|M%}n?k z(A9R2FAOJnsku^-rS48_#i!Lu=g;~4xU_AKVS%SQE#J|c3S`)tGB!!2&WKC>d=zV6=L` z-FJo&7=&JL+Uc(f3_Ds_8oeDCxEdb<0Q-5r;JzLY<|r{p~_p0Js( zwsV86sZrIwtqs74OgK1>G6Lhxlo{EgQ^0t}utTj}78rO!r)9P)0RyGe!R`~MVe3^p z=8*Nffi@^B^^DvFpbfrrUx?oY=(%6dx*MiQ2aIgYCryrz z07LE00nK|71l&HZvKkV=aIZVkVloV9mKTHjBBX&)AoR+``)7fUE8v{|vv{EMZ{|*o zBH-UdLr!-?2aPL1u#*qyleiD{o!|kQJ5<>b>k0Etvad_ekT_6(51zP1%>%Ta*Bp=8qycSC zvXJ?0xxcjUP~;=r=P*v+P0tAP%2!X3@Q1ev{jIA!{`4-;6+WB)K#>3pejDem-RlQh zwi3y_8dhNFr?K4k)*0v&D4+O|g#(?lS@Uw;2+%GQUEfyr2I!K~@c9$5K<^&fueMVb z7`Y2KL^Pzp0pJTC^j4Z{*mk2XKh(3!?cZz9YKI{U7y1l<7I+g{t#BsUOn9a!@1`2Y+?^0Ns{ z9Kg_+3q!ppfgyd1M2H39dQxTNJ0c5U@N_?VPV*DcDh@dNXc2JVb`$t?pD>>qI8BRR zy##beYz$>C=>zQyNsZK12cUBb^mQ{^2KvJ`TK)5TfsvH7edz2QVcmN3P<2)n7|*@g ze?dqb7}tBdS0;WS%%|)wm6iiQKQ*O%>P-RA#|5l=p-NacHoQH5=2AV-#yt=Da+4Kk zryU$$e03$PQ%`nHDMkHx47U1*TRBb5qe?1&zGMIY^EN8!>dDFfy)WDUc^m%^ZX>zE zAz>wDWhDhY-9I|yIAt$vZed}5%H_|u3H~qNMxmJ_`rO27H_*(9OJ9hci_nY}hetcN zI+}6u&DNV(Kr>g4fqAnJnz`egLf%(}W`ZKwZxTO2GqDb{<#Xw1CU4IJl6y61rkYMP z;Km@DX?Yiw_-P2u^z9O~l`us!LyM`wbHixn?S{5b>yDzC4=*@m3_hXRbvHwIXm_I7 zjiZN-k*K3tDv#^DrsvTt!_>X2c2sDVwOnFUV;aq}hc0M{@}Sv$b^1o3BWPAAiQPAa z1kFlIzyC5uD9clFay5CPS+(a{rFMg8_OQI{`GpoVYw)bOMN1LQo)FEhZVN=SXWZ>b znWfOIBQr)JeAGsi5SL@N8C6mZnzf|P zC5}9fW{tNnd`{6qv$`Y-R-Eo=R=K}V-#7rxN=Zj8njJ;6e3MyDnh|K0lU;B-Zv`Rl z9JY_COlWqS$W<|yb~Hc4OQ~S1W6NOTK1zEVUw|o zpOnxH^L}5lhi+(Q!;ULFPJ`(E^t7SIqfGR^Ya4TuD?t|P#rCuBL+_(f4EMKD{E7Qd z-2Vx<|C_c^l=4>gTIXzj^9@R>HQlejL-{x5ufIk4H|4LtM@gxFMCm7!Yr5Zqg2Mllf671QpYs19 z39p=lC9ob(VZEkS^7< zQEfJ6YJwat{l2{eVjR|yydvQLPm>yb7k9FZcYwy*=5J}6-hsy4wH}K~GtgLyr8Fil z0!`v)d;54QL6fFs`PdZ>&}4}f3wVp=b)OM54;B)| zXLNw((W#s7#tcEz!23$(tIMEyO65Vm7C&g(6g*9mAlSQ*XnE@WEztCIIW6r?xPGr7 zyDY38G(+q??XU$c_`(}%M+0)7 zKF-;bTZ7z6RPmGfqaeTj*>vux3doald}2A^1M*u0mUTJIL4KQEp&;c4kl$&|8}o)B z_r4X4pZX5+0z8%-+&4j9%B^hc0W*+C8DZhm0P>29H$4o3L0gz5os^<_(Uc1;@DW&Vu7)mzsY{4mi$|#M({8faCoA5tc${aQxD3pdq{jj^El@ zL?L~l&UZaH(Jk4JT&Dmh)(heB#m3;YM=Ri-iWoTYJV?8Bmjj$c zdW471T7c93{LE9Y7QjjQc#RNA1vqK7v%IfL11J6LM!${(a5|we+Vz>x?#zQ%XrCcC z+1IGon_dPdHy6!XhwtEYZJ(W5Y6IB05fyI8O$EDa-9F|CufXn(qVwew_rUIn;rKa? zRXjHa}D7plLWAL)VQCWPAGdtmW`^f2mAZVPo7Hkf_?a< zhu>XY!9E3r&xbz*`(oM_{tX1bFHN_+;=c*@eS16wiTc5QN}edPI}PlYHFY#MSJ9uU?nwQA{$0AbzJi+A7HgRqVoJ`ocM!e$dy^rVMC*ox@U^~8H1 z>=?OCER`9AoeI9!g(_un`ApAm6PCv~Wgr9%7Z@r@kgfmSPE`MPG;bMX3InlZxT&?r*7K;Z6R~p|L zNF&72akOaDSwgwrhpehb9E2x49;$?#CCHMuH@*vb!oxn)3vVw9&T zvz{Q^FOKGpfyj>2vX$pIg9w+s*ZPD*z`>W0xMkly;DC=6L|Zlhhw`nP$G_PDht_zY zQ(_cwsBe%MCGZap;F#FFM=vKFI6g3Of1cF^ zj@c+BtDFtMx$)akTaJyuN!_;6v9$;|w;yJbv;7X7TivA&3#C5@Fg@77hyJM z){I6{$qw5+2tp&-0r3;mThK^xf5h_}g!UCLL|z@TMmH(&`6KGsfSBG8X2BR zAGphaMkeS}Wr=vv$Xqq23xzuxS@M>sX}gR@H&Uz9=#QaMs^A@!mCb0BiOzzqXb6q6 zxfRi8)}c|J+m}py_MuVX#`mHyhei?m=jD}1G^$qh7JD!J&RHGpADq?E{++Wr8Vd#c z^X5*b@@7uvDo*z2>`wnJUEyCZ{OZ7sa#i)~^R_kJuaDc-biY2p`^%}G?O*Z?{*uM= zR|kcERsQy%@E6^W2Zg^Ve>^DsMfqz#o7a>!RxU2)PQR*ZV|CvAC+~k%{?_|1x*xs& oqWsbOFUntg-=rz0w(8@bbIACUF|svd|J#QCKVXQ5#2Qio08N=K{Qv*} literal 52463 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 UF^V-~|J#QCKL7}J&lOSu03T}dhX4Qo diff --git a/tests/test_data/Ex2_input.rds b/tests/test_data/Ex2_input.rds index c72db55acec31148846da5400b2c2e3eeaa0fc4b..4a2a3235fa0e108f9ecc7d97801718a2f0bad946 100644 GIT binary patch literal 13153 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 literal 12833 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 a8S;i-<32z01_`iC*37lQuqm{kJNGw%QpPF( literal 5531 zcmai&cTf{byN5xfNfQw%0#T$0NDV~<0T0r9?;s#es-U5o&;+FgDbfU_cO$(Ms)Cfz zLrsw02`vN?$UWb8=H5HsxijbPZ|0e2_m7=-_m7=-77$BC^6x>mX9J1jn0g1mdmW@9 zuwe{hiq}N)Cb=i2K~$q8az8IIvkS8u^K!WeR+x(mdVgebcW8kyb85(~Zo*z~xGk+? z!dMpeS(Dk2UB$pCgMyhQ<$2+~PveQwIzm|l#(JJ4E7E0X`AK^QA}c#1+h!yhCb?zh zw(o~Ny9A@ohVfDd?SXjgOel|rjp12TyrEgtm5|f=1|Rs;%S{^y%hMF09}MOh2CzDb&U;Gi@O@gRgQ0F=6a_*@yJro!NDA)4JZA zY7Gs!?9!C^hy@|RZ%Hsp&@&VD=Mto-lXu-kd^pM5L!B4X@IHat3EcTZ6PVzcu5^yNU zT`=>s*Kkq3maVovX;4m4fY2M)=(A#h5YsAR_|App=&mr!VC^-vo=D)~b%S_jzC%f# zs8Wt&BAw;HpEmfVqHjr>jLD^3Vcv{3_)cmAe*r6NUrwbi_P@kBEZMi~hdhCRuZ|T> zku5Rodn|n)qqS^{WXKX zJP`OZTSurQi|9^4go`#VuohJxmbS1+7JMMe%q1Jn{H#Aoz0~DI)YoG_pPau8>PzX6 z0B#F~=PcQt_shcNYrWy!3b0?%TxU*!TQJSt9(Q9_R4alQS;N>b3?fr#zx``kdntOJ zQweux=Jo8S6_BInuC84`61d~`oKw-8R>Vo)N~=~(3B%zrf_MHkT;7hpu9{47$R$T% z?XYPvFOm}hcL-8woJm#Ws-?LBk*iQ>3#=LFeQ^^kOaqnvNh>(OXY1#p8t8-?67(M7 zE=-5*gPIl#&8A{9=UwM)wiI7}d=|YKPw)-&KV4P$mSH04*rrO09I)ywR_>2FIi8`Z zbFX_78qrYSz}HId7`}9lQX2D6ck5a7cz##%_t5Nj&99wn3QISASerNl$b2X<&P&3b zR$+2sjila```7kKQKSnr3zP&NjP6oNXq($2T^l9Ny;G0ufE-2H2I$ZFGIV%IqIM6e z1SUBmOH{iL{evrFs5Sj{|4JhNJv}89L!jcSMt^c5gVMSV{@!XtA|R4*Z&je*D6!m;!8Dh=-1p!+7Z#g-qZ?ll&vGNc^cS+5 z8(;qvu8Y9UjlA6GtA{6Qd5SkK4K`W6+J%BiFUU8c&mgoHj-!AGFyn>FCQF`O@gh~5vd5ihaR4kcw!NTpx z;Wxm{1VNk$hVF0C!Te{0F;(~PEmvbn7y(hJn)d<1G#_wPXtHkTsnk7!1&p*A9ZUMH zlX!yw`~NYI@$P}s5v2+LAaa<4PB;D7w@B0^}z9CX8Ji2op5gka1;7o3v# z4Duw-{M9s9QK*;7Trn75Qa`)H) zM{j4af4;+?yuEWP1WS$!bTojO<3mH%wpE%{RwJ!THIBkN+h zI~T@6cKc6a{x$ziWO<{EckIBU6q*13vj2XxomkHfrOYi1`MCBDi#on4B)e%hhVph# zuHClDtF<<#=HCd;W)(Z_bIYw#x5;prpVva}X|ljanBNtE_+&%PCjS527Lh2nRx&uN zIb2LXXqkn(nCQmgB0@6Cx#Za5KYl70yKs-mJ`=tvR+?FVFEo?4Te86I=f^w)xTOP_ zd&lLOlHX+ zoOsU(V2ptO1TddPeT|?y4I6f-HB%#T|uIGkm(nbYf{PnHBxR9jT)W*E6Ehta+-= z;VTaXn9S^%@u9zOS@GV%LsYBXq>5@HB(?@^pQEm=?VH)!H>bW6DP5QF<-=z|trH)B zX2n)4k31Zs<>&jEI=;Arcrw6D-FiO(0$J}(`0&Ly z;_j1$r6?SoEjGC2)j~$??fFyuqv3}e!XUNZ!#tWmd=H+$^tI{BCYgw1OGBL8GsB}6 z)2V>u125Ub<1IsNTljS+U*;n9#Du+BWQ4Am{PzTZY69I2lr~1>ch4NZqJ&uRdiPL8JKU?SY;!7L<-zr=WAIZc){ukVsLd%U6&G7H51p&$>VCB6xpju zL!Tzc=T`-^6ptk3uQxTAV$8D{7xlSh6U{D%IVvRz%11;g3RVgtu3Rl_ z1D*za5#6V%sbh`H?>V;90x+Ct!PjzmgevT)PtJqG1Gu_f@i^(3u%8I4wT+ykW7)eL z_GS=aB`}y<(JVPP_!q+7=E;U5w!#G}7Q1WbV2t2zM8gjsIle^qHXUB;j@T^Rg_|RA zZ4eR$zdE(8m*_@BZ$}Q1QZB1BsX9Bg_J3Dm*MNFD=h6 zzgjk)niNp?(9UM{QZv)(2@Ayc?Q@kV^q5v4TPF8hMKmn7_YuNz7ec@guZh!cmC16O z*V+r*xtiD~Z>7-II|q*W&aPg@!_%im(FB!zy-m&8uHJVKIC%MYe{U~6dYuWQ`axCw z!$SpVxZKeVm2=vjp0YmD1RHvL9}nTIrzUKM$Lqg4d$1cxwu|quIhXZ%^U-Q*jbOjn zPy4aQt83VJ4!wjBdgEQ7ZKuz%?Ji(3pWIWI%8wI>w1Bx9^gMCux0;A{gGJ?mi?@}k z@zlx$OaYr2HC!2Z^rp!2q2MF71&0RBH~uXaK4H5s9lm7vFv7V=o0}~r#k(JT_=!f+ z6P}~aR&r&iE3>2Uv^)DgmfK*r&2rJkqY&5X+*WK}ytiSZ$p$)p*KV(N!S1^i^2*|9 zdPcFLiN|bA)9cZ_nv;&xPN?kTR9h@C`Y%nL}MOtJYWo|QlTSg z6=mUQ*vKhnZ3X1e86L~&goWAf$@zczK6fS?cyeGaMaT$IO{kBPuBfr!%aVw%Sr1al zY3LBh1Q-N9hYn=8=A6YnzS9n^17Zt6gh$3XZG%u(TDFYCKiQ^Omc zkEeN@H8QT8cso_;pFWiB(4OTb_a48Pd*tY~i}@oIk+cPADv=PPC@Kjebn% z4~!yO9GTJ8c*BpER}4Z#6m&hh7=ltS4;JU&g={e>?v!lk3I101k;>hzU1b7awWtL{i+a6PKUhersJUJXo7K7&I0A|=bEa? z4Okqv2}jz3c+E^*`Y}@Bq?Ad2|4}+z*{>bC>EPm@w)!3}MBF2MUz@PN1-KZ1 z7><`8{qf?1Cr^!sVexFPs9-!OA!_Dxp~(!LW63SxK$`YNNJ(TvLzgr^dRl_BF=EeT zAb|P??{GjCTrS3jy5)SQV(=CBc*f`4EQ=7p%R1h;k9e)dWrHH~qI#0a z38||e#pN^PPoBDaUW+K`a7NvKv&km~IR?shd&~(BLH)n)43_okdnkT$y#=f-0Q#dd zDmxuLLhI8n+zW>5pj;?-ix9=1mq%%$7t%**Xo?O>0*oX#DRi+@Vd=Evb=yAs=DiZ9ofr)G?Row7^fOVmpOFBn+~Bssg6N3kxtyCG&+ zh2ix9p&FSry;vu`#dG?pepG?SwPT}MJU2$@J5eOt8XaJYMFqVF+orm=cS6Ytb6gOx zFmj(^xlE@zjQGyCYDtfDb~iJ1 zXjfafW~LMY3u>35p)d+y+=U()q=Yi!O*X3b>>K)gZt!U9d{H#12(A&BkK(EF3R&1g zRz4Trt}Bu#U2*q%S-fGHlQrJoK#|E|KObg2q1)T`8~d`=r(STNxp%oXT5anEk>7BT zU)ZBQSJ%2YcKedZG_N_{Z5sS`IjW&z!DhBq?r z?C`_#ky9rvQMQ%vLMiK(1Y6`p>}eLD02yCJ4W!Zf6j`(uboRt1qhIHY=hpO2fJx); zgVC7vSycgBwm|ce3LDkSoE!qCxH`mXkc^rOBD~6)=CVIddn2fdo_9ZGc@LoLdm9>^;9?W z!{M*iGUocrcR+6rpT?D#njL%m=+}xHFzKt8Qa~Qr={7Ku{4BML?yI?sy)$yFNS|-&N1#0zcHQ9 zyF)8*V0ja*8+Ce!2LShaA0umyOK}bMCK#5UuR|`icD?3~4NBX~G zQ^`n3VSnVMq@;c~fYRB@#=^9BJZ&d0xdh|Cc_ZvO&8%4iSmEY*8->AlKRQoro z_Zz+V8#Vfkn*2u1f1@}4O2r^&FzZ z@n{GM?g%V639lp3qnxj}ic^r72;GdR={+Q}*~lO!V2niRj0ri)|E6nyD-x!s z`yo%BfkccsBMT-;kYMqQI?>(_NKA9E`{Z+WBzn+sAdvJW5{YlCIC~`<2}_vWp6M|_ zqF>Ij~ z$qY!e$MI|*wLB8#j}vDWV?knSCysU=jKua~8Zkr~g@k2-x^9QwLBc79Cug4y7SL-v zHlS-fQ9z;W5b)zQNYUR$D7+mRzS_a9pqu4 zT0kGbtEO6cwtzv#PsngycoE3`QUj6PAyvM<(6e!4M;)9BaNw(?u(E9+y#84zRx^9k`d~+r2sShE>Dk7;Fq^BUAF#O4qqGoQy^uN=hea_xBr?b4sb zKnxrZkp4aeV~Nt%6vG?X&rHAd+szB~f9d=8N$a;nWMk@Xto(m2tZe`7!qnCB|6J^G za&f$FYG$Fgn=O?8E$-6q{Kq+r;rBV`KTKL=+B&Mrr~g^nBC~h2Ftf7%Pb4kU|At8` z`+sfHIu{>e_zk1yqoZT6E=Zd)IvNuN>3_T3hiwh%Xl81q?b4;9;A^}6gsxx5L_}wm z)IVV&qBHCL>O8wtg4tbfcRu>Jt%-kaPmbEXR{z5MY!X6*?mo2ZjYQ{n`%x*_F7ER4?BD)nA3u#mu%korJ3Cur7*)R% z{bF|>xmM-taQ*-Hv-BGJ#TWIJVn zNF+oWUuGtb4h6X#a1p+S1RP4psRpT#n8VLYng!BGwxjxi2@i0`UolINZ>#1)NeRKN8c3DW%7iOMZR zJjK@-tGP1~uP&keVD~8`L}k|bTY{l1jvLi&wdH$O-W#YTbKA za};r}Tl)7bZzAsEnp%=LCB$dDc>Ys$FXD)*T6!%Si}-}*ZR)c(5bqo9E1pbJXs=Y? z<3gFANO<~+R(xm}5st+>EcAT3i1u>F+XZEUcaX{@U7Zx4`_bP1IDo?WZ->PHX7>lVnX}WqaMq z+S$?6`7gIk{-0Ae;eW%Ft@yt-Wvdnz-D$fXjnq^FG;1H4A@y1qk&~oGrz<6^EJkFJ zwnFX)xkzcGA*X z&P-g4ROZdg1F}_+O1@?*ufQx)@mmaZy)TbW9{p68Y-WVe?CGbYM;nkb3C^!+-5IIh zTP;ZX)r~YB6#Yo*qCjV^HZl9M4Is72$o9j>&!AJIDGq6GJ&}4G8-)`(hg58Ghna|v z{{xpM`X??;^d~M&;bdoJZHzet!GAS|*3sA0Qd9e97~0Xr*6#ZCf8F@`pY4$U`uywj zuh0LNKmY8;&z~lqKfBRGY-{m1c(}*j&eq(*-1xWn|5qm6-!SCAXVd&$Ut5Cz>YSyd zp>gW4)}Q1og5PB+g5PB&g8zmY>Hnhde~lW+4K663)Ymxs&;HxT)y>TKnv36eJ&Q31#10vmmPpYCY1%3fAVKa;rP6 z%5)D@6JGWua7~9wH8~Jd9)a?XFm0+uD=2@^-qL&n4`sei=4v-%q5A8chE#VVs7QaJ zTbXYNw)}iM-E0v` zxqoiH>L7xm#{)Lj1v*gN%|hc@Lk8uQ^EL%?X;55-?g_SkgzD!zRg+W!Q0Jy->=$SO z^~>~9<}zoX{>F`~{Y#F3GYTfI=NE-~aghrCh8IxxgElkk+a%O627cX8P=@MTn;CHl zd{A+|!By7HA8Lob8aG`L1f0O0UwJq7Le0^YI+?@yP-%8*>f3!h)HHLe8Ry$T{Ry-A z72`mt@f&B5n#KWcbN^H2A{MA^>@9O{n}q7DkaLGsFGJ);1vs27?w(G_?Ebt=o0NwAKMJES~Bq6?MZeYE*(ZJ-8C z<>tQbgW4L4GQR3isJ#;*K6{H5>dYN8a0B{)TWb|t6D9*(b`P(F(l@9}ySuI6)C{%8 z-o$5Iw4uIWU$mNU8`N#kFdqGI6>8M%i*+AwKsDu?RM~?BP_sF=ICJnh)EExLujy$+ zbsSE`IzJm~6nzAVyW^p@h<-ij4H?w!b+9AqPlP(o!i*{wOrPd`fg2lRP_Mf0Sdbky zUzAedRCpCszw>q`zkLO&%1+)ZvBl_BCwbPei%|8Mf*_a!lf!6ZGhJ8_>MzM}z5#Ej zfBFqId?x@rsj9!6fji*H>Mmq2#zFP%&xJk;EKohVCA?n*LG`m~|H6yaP;V=hLcrt; zIEwEft%@h1e(2d{*@zaXPdlqad+Z?8{nB-hxZMaiKlbE+3<9Vls;EhmItR4@kJ^+U zL_p0YchcC_8&DT(cqD?<5tC1#?JbEr)YNp|di(VX)U=*!7C5U7HIIf?o&|b)JGZZ{t#+Llk`4WBB<$>nV6aQ0X2eoyboP?p!%)+ z3BKpIkw zt4Mg-a7Zgc}`UM@IY!9_rIIp??M zmV8hpHY?OWzXz%W+^soX`=HWqDCuD_B~+4JObHLlhRR!hD=)dtpjyq#SHFP?YF{%A zSZLToZ3QjoBm4%`E>$X>2-ksXcj_C<3ky(1^h@?4>Vzt(nx^_sH=v?p)>Y0U6KX_G zb~(STf?75~(%i)NQ1e4l^p|oS)Lh%|FcoiECz6okr;pV^lv+@bPnk6Fpx z`%uv`(sJ}9re_sef?{5AsIqTJl<&=lTJrfTobL^wc2JeeC36I7dmnjcG7dtuwek4( z;vT3>T5ce1#r88yN+*5f6%@RAK=Sd9AQWG}?p1zf8%o^9@veM|P&~VwP+FA;#Y<07 z;%gZwHke-OiTDnsQiFCb%BfJ)#?$&R#SDt*d;P@UJ3*l^ld9#k5EMxq6>s{c1x3A`7=@u(6gwU`Ur%YF=sQR>s<$(Nz<3S^(m-+{uWfM<_f(*;>Ci14V~hlVLm_ij?EoF73Gqh2A0KpBMH+p}c5Qp!^jm^rHyb z;$MTJlPBQ0PG9)pNNN3J<^0 z&{91H1t~63O}>;+$X?d=L!A?fSR^ayt_48Jep?42#mi7ia4R7-?-Z0$#<6_%@PXn} zDV^yJJ(&KccAgs+LE#TwPTg#?e}L{O{|UOM{ImbY)$njMKJ@n&hyVWK$lqTa{rd~) zzrT?A`wQ8>zmOyNFUG8t7-l`Eq^EOQ`JbRxs$JA-W9sZ^W%e)J`ac}EmW$jowfON0 zs=4d^yH7Mg#ai?Cm#UdidF(9tt&QV=Gohv1{P9aIuGKYntt9qLNh>U;wTq1sXWN|&4lR52y@R2phSX_$%K zmotq}QQO8{Ufd3~Td~&WcU_>K!h<0AY${Z?=P;RHDub%Lmb+3!7oplew(s76CX`?J znN)UA70P5;FPY_VLp7hVPF+hGl&yKTafFdVrEiIxu#F{#k6+q;ic^G=mqGP+B|4yt zkp=cZMb#?@Qy zjR8M%VEX(fA=F>cIIg?y12xh%9#2KH0Y?%WeZDvZ@R#jxku<%7`mfwp+L8Lu(5q-g zWpWR2VM3cT@06jg?w}LnL-rBt5Ck6ZcfLI;ZpijCB{o8P~UDm z7_jLJcuoIDy3>~chg)}hnVE%+lgTFrIj9M(2+Q=waFcn2is79qzy^s0-9O9rxk})Dspj*p+)j-FuJJ@dRqXyY8bgF1Z7ETxD*t#09`-^u06N zq5}Mj*(J%UFu+SP{Nf8+f`&^256&~h0WMkQ6Qjddz*!!GA2Aac?(9gd@_Ybz;=`XV zZRue0oin<6X$5cu6x=l#4*^HoJQn}>7}RGBlzkwG0la>MnU}07;JJ0%wd*zj@6~h4 zn?fFNlT=^bPY45!cIxbOmoeZd_upSR?+*29CdOp0(NOo@h^m6R4eBL)M_-840G{$& z-soO7Xt*$*Rfi9O2GfFIIx2E#@bqH2u#TN?laO>m(=61lwQszYcn7!>^=(gy$Dv;5 z{>ATHc+9?uZaw@F1`R^B!oJ^et;|adsH*%O;D1QdH%Pkx_LmvTWP^}UvO91sF zT+NfsiC7(D+ihLU2K8mvWxax90Z&7hE@Z9_4fktoKX?X1!z+qL!Xs7CkoBr^&IR+^ z1LS<4DJB4?)HL`)wH0tzy~)Vad7+*mIU*x%2Jq3MRRiuD&>-O^kcn#t{9N}PJxu@j zJY5Q{^lyMSCp9WBS%n5y`pT0tOn|GPd*ef@1vp2(UpqlEP@nTG=p=b4;1YT2Oe?-% z`e;yeQ*Z+u>&4IXB*{=;>u6I}p$<5@#J9Q8+t@ib>2LCs0d6o%<3m^$reC(0jLu-d zU%Txlaj+e5vQEze3Zwu>l`IvFqlNk(5!*mKM^B~>8op2;dFHGP4WBX&y((7%Jb%ste~TD4&oLF1Gm(Ik;fefiRHZS zZbJnk;8ox%fXav=bsI_ssF*&gLq;D774u7Brb}Ex`q-HfX?sIOjFCxZK|Pf5%WZ#OtAf%3>K#qZCs67n zyO3}0i0#*&K!|%2N;QP*6$j#=%$J2d@A`YFJS})JloAhB9yc_qBW^?0Pn%VZ2ob2D z?_QyPuLY&wLOx1lWJ4MIoJ6_329$K)JS+ZL49bJ{aaM?9^}xBo?RKLhP*H4ZXLAHW z#bCJBlp8jS$Me%exz>}b8I{CP>E%4% zHrE0b)i2EaNXDS-$RkJ7EoUgLRpvchnuyJR$|Q%H4oW(82`*gRfYPh0q4E{hP!@A1 zH+NtVDut-%h$ORgK>M7jFIS zUaRhZe6Q8%U-w#nqyNJ(>%^WX;_ae$;g@fv%g^B%nBt(n^$TH2vre2uF%M9&F^@V9GoW{dqQkW9ZR=7y24s)94 z%)U$#!mmDuvD}06Fm1r+fgjg_F_mP`6(3QU91Z7NKNk+OJxR&lq0BJnTte4)F$JcX z=Us@{1mPFUQw;*9U+`;Lw=?Z&6il4Vc&&1D7RI*L_PHmtV(+vSnfMAj3`TB3_t_+uPUQn*lSq`-J=7`olcw zkw+V?B(UJ0@7D3+JIpmQe9V6q4@<{|q@Sh5!2G*gU6kbEFsHi~3b!u8tnB53iwYYs zDW=bgR%T#g?yDBwDi5X(pYP&#D22HR)fvyghp^yoaN@{vE6h)Flu?#%V&kq>+1~#K zvkdkPEdC@gml(dZG^hddu|Hol|2&3>Y!ptgp8SP~w#(B7f?W`)oW@dyeK{f-k4W-p z;6=oePx41@SRf+9uSB##I*7Q90csd65wX$eBa^Wgh%lM#HnSWTA{ZgDE%M|+MElv~ zSv>C{!YrHjolR+oP?b-tc;zS}{6L?3oP-1s;R1$DYbg;CevPr`oDU+} zq0xVJ*8vefIz$pNyoCrsWGTGsDk4(~h&ZxDVMzEZBF>>t^iAbKq-xJc0<2jP35CyeQfeh46i<$tEjx$^?YHF| z+eHwe0<%+8s}~}E*JEQsa~P3O4J_2|X+*@ox-zfjB_QH@JEl`ZMu=E%@xT@95=8QT ze`}(70U|2Q^P0ITg@~NlEX9uIA;OGFV&9QCM9d#epulg5$#;R=VxSrk5m550X=3^% z3w!iWf4?LvUQ8WDS+qBD1hN5smCx^usdBjS_}1`?`sh?v5fbZ6245z$vRP4WaH zBC3-*&GVT4BA*{!4#M=OMqC<^Dvt;siXEzYJcx+JCiVBFd_yGhBeO13PKf05>T9lU zWkga#yJE*GhKPQB+-RmXLWG+SUr`SIz6oU zh@cug{H3t-9bgyP8-E268ad4N5V#F-F9Us zJB;XMox*)jtsr`;WXWj3vxx3T#OC*xgNTmi&7(q{?}#pf!Fyrc4bcbqCJ7v9MT`O~ zw-1dPAjU7$hpoax5#y%}DJSYW#K503&k%D9o9CFaa>4?lm*f}qK_?MOMPg|)$1g;I z2)MJj@)2dkkZR+{T0}8@RNGBK2T{x~g*KFyAPVs$CxhdBi0UrqS)FIE5cw0)JvN3X z5LpD9g=`%Tk=nPh7LM5?vaCWm%6>CMR&42T%i9o<)<5dc>}o}%cU5WIO?w?}OvQVrqS2_6AN=F7sSFRh0tPYW7sxOpNfj~i$Cx0evrPn+d8uTLWi z`tGHNk@kr6TS#J~?N3C;K6lWfUmlTk-#p#Z;*ZFK_U+S(DMOU!2Deo1E+C3xQ=7gm zQA9D=qMxqrk0_{Q9Rm*yAu4$%RsYonL>_VP#oXy-L>BvGvQ_jMBK4{{S3G|Jk^Kyg z)Ec5fWK9oWNotoM(!TT|4!aRV`oQ`0NA+)rbeJlA(|QGw8#W&hx5z`}T2HQ=#Bm`? zFXuV5{s2)_zc5`ndl-=&d1Sv`l7~oZmARYeT(S928Jn>NA(Bp=9m==Wi1g~}lfkw@ zL>6-=NB6ieq7hew1YNe_~CfB=RZUGJIjp3 z!`_fSH)|W$ssjaYI!XJr@*sQa1$YX0K&~%EohzXwWQFdHB>wUaGGuL%&PpxAkJItD zUmT2t^uFfnY=k-F9(X8pzeW+VW*ibe z3xz|b9U-UF<8{dR8hNx;hYr%Db&71>Cc}q1x^4SQWst!qNG7v-8ghO#eY|fd0qMQ> zTz`(ghGg>Am`_O*@cr!DI4!*%$m)z&b6DMkZ^rFAW3o$-KO~|lzhDAChL zGIBLt6tH!^41Q*dyte?KBmEf~9DhK1D=y~fA~R%&r?pe~?167qLOHL?-a|&_)4dr* zr=XZK@ly9GMJQr8zVS3x1~N|tz4$RE2j9xr-zi*8fjqSa=Est$kiC#C*hcyiQq1(l zma+4A*PpfB$La`a*)|Ov&G+`p_%ZG4 z_0qBqG7f4av|;Cw@dzsp(}Ur2L43h9Js-SSQm|xxGz34GBA3XtmLPMub>G@oYRDu@r#^$(=?@8gjl|Rh=T<8*g^0xfbTZ4Y0DC4;F~mC6t&+l{1D=Q($R>6wBUOL z1lax(&m9`nom+#%wZ@~Dr*ZH$f%sU|$R2p@Sa`3*GLO3 z_zV=e9+_V5Z-t7A(rw8`F37u4&Hi~d3^E!kHX|#jA@zP%_A);sWVg|>7^vhzc2(A8 zYoa*4<)ypMjBlMp>RE> zZVmI3?@En_sj+_P;-j8b0>+SP_HEzcmqn1Y(kFE}O$ff8Sd3L58HX(G+D~lEn@|>S zds!ZfS5?NI7wSfxq3TjkO!(GeD7b$vV+M;a=`nG1+#wb4-Hy(5kFFae#v4Dql1&Q* zl{do|Ojw~*WZ%GRkuOlx#dn^C${&gxVlD)49fd;P5#uH-E>w_JrDVK$1^G`qpWg!> z$k=z~*!xm|uk+f(b`K9g=B3YXsO4~w6<3?&*+vHGa_>&poHnQ?5lm3p+dB$zM*IXDjAO@9Tyab0#A;I z0XAHa=8St9VXgt+rWjuL=6-^t$2DbBH_t=vqBhYX_Qz0iV((2Bti4Dp&FMB}0~DQ5 z1KMtKDEN@|&=B*dalRA;5QSq#Y3j8N2|{sUC62o zA{aQtfyvFQ|BFKcQaMSl@MGiBH_zPP&0jeaSxlG8?n3SZ&JP@(K2YKq^JE+27bPDt zsN9Z*?_?~ml7ARt{$5JTYB~j}Jlw>-x3nOsw6)=QRT_L{2|p6H!3G({?eP~eKP`Ug z^)0kn7Rs%oSXbjSp**TRdIGbHf?$ze0n#W)dpEX!H*S3AJkYEs#sVcWLJu-hlb~9- zJTd@_f8}Sj8stSyp*)|YZyK}XhFB$m-8@lu@y`3p=Y#<#kh|PwYz8%J%log>yn!mE z{X&*lT&naJ*6WEHf%03k8Coyz0d7+N>{BccRc9)NJjLXyG;8eIwXednWdakJy_Zun zzAwZ40(X3}tyr)W@OxSG{C4eWL$h-?E>*dx2y)91LJcwT_;XC|5u_j*_`<|!uF9@NyK#nD0I|eG0%UE6ze1no?O5U29TF76Kpx@0mMWW2z%r5t#a-)1i zSgjQb=Qu@naX?vAn1rq9D%70Z^L5H70_snJ;(jbH)*Wwuc0RBKaMoNezF_m#77izy zpZy6ncVT33a|7yNI$ZW&b#T_LXK8*QWt7-}|Kh;0iPhD$k!%$OOFNk1L#(&QM;G*Kr5S&qXU= z1K2Qss*0=V=nZ=g6|(U*tgNHbJP7_;#>HAs8CCHg!I%n?r+NubI6`6X1m-=9kQ`~j2=)$)u#x(G$*l*G5iDxq5C#o_RHT_|6t-4sS;zr7V(@%K;7diRlD6Z$LxD*8@s4 z*!8&P#EG(xP({YZ|C6W&igD9v&&04ibx%(aJeVMR+a`D!!(&w&W(34Og-~lN^C0}l z5vci*>dWYC1J!lI0-s&SprRJHaI{aR7B_A`EA4|rALPdQ=pzz{El`Iw?3Kc+1j7J#?a+*`eFS6n8 zCgAvf49n+@%=X99PY6R@tlmPOy&N=I3P$OD{Rxfpe$RIEHx9pbmlCTx>IU~x5o37? zXO(6cg6*%>ZBXcDo-s7neAA`J{GdxSH?;%POFI`n(GA1>`1kwu?qN6xXG-w&6n0*9 z3jG8on0;39NLP6tn}FIU?5YaGm!R>HWWKX^I`ptUwArn9`aYW-)#46?zSr3|1~EL^ z>T9%f4a+AugO8*c7>>b9+ZVZF`>eQ+-^+@fcdO_9Q@))Kpfgp6fdh-@?O(1q?&6*H zseGMX|8Ci=v`rLNhn`41JdLy_G_6)hzsKr>hCRI(-J<)U=FN+dTUcIi@Zh?YM4kZ+ z5AI@_nicA{iF>P#6+%t(kIV0Z+@Ws9-a}<~{PNG#APko@CDGaR6z+k}w}*2nFuc|l zP$hT@i+{M-sF!Ck|E&x2sBogg^2eQ^NoUO7DsMOs^ev z%C%oG9NlxL@+&V^ul4FtQ*nOcgO&>A#ZTC|)}0_ex(CDWI6WTLQYoiuUHPa6GS!40N zL9)6u5A%asI*#t$dafblVr;#J6Esx0zt+d_d;QC>s@=F#yN_xAL2SKxgM5Eu44*ee z7}Y0_bwbl=%A$k!IiU0PHR7+-^3X1d`*j_|skqL)ln374g1T|@QbMfmsA(o3=D_lL zMTZ^pZoO0^xL4T(%f}52JmiuO??H$8*{4$ZWzb#WHbsiz*Y3V!Z|`CHX_?Zan!xa0 z-NS5yL`*L@w?jwWCzJkFfB&og{#X6|uloC6_4mK(?|;?b{{!pq;tMbpnob8*2T~KL zuzqEl`$99ZJW}?fJBljw4m7aLog*G1gW8+c-0K*QtXF39C&uijhUP}i6D%H7+8jHq zPFW2VZ~4v&U^u4C)#Lqjd0)Ue^8`~*U4g1RLP1}wzOHaB;y?S-0}8HNDac~_E2B>S zvFm^JfsGG5g%1GkS-tTc`zffP_m;23;z*^}nOk=c)j&1JBZ3c@{}u=Lt^EbBzk6-M zNlOk@@AiuC-Y+OB%m0EfxyzOK6|ZCXz4*JgoP(-8AI1ErP;R(xFBTUoNz)}5 zy%M01vj5O-9xwHH`N-KujoEXCDMY>ks5L+&&f1=@UaVrCAQZv_e zG5k~=vwE2Ti<4E>hnIKzmr4?cOq}P3ym0!>V_5$x`kE_KYWz_5)k8uC%MWGMUXO^d z{9mv@Lg0bfQw6sOuQve!)O7W4Yx91D^0W1Uhp;?^r#rmw7>3s?r&moRu==rd_`ofO zcbL5ys7Eu%8$!C}XKH(FziAoTRtuQD{}^FOkHTIn66EUegZLDe4lh;+>c_rYqj*!uZeaTk1r z*P(Ja-0)|DJK!dyixNAU0I%QPW_q9nTCDsNllF^3gQ2))EL|QH-N?wi;=&6hTn$bJ z7@o^|`E2;zVI!zf<{)pu;&oj`wu<)FFx1foIS4&Vh1zRgoELe+q3XDJX;6*|;B~au zcF(!YGpsKg!_y^i-I#JGGvH@l;PW}mzA83NIuB!YU8x@`{@|1ih3|#jDcLHZuv!29 zF3Go1#8ODgb$mg-plYW->l&D}iUt?`_U ztsN?F(--X8L)m7hC9ifO)J<%u?#JSN)iGz@6X%Vf@JiO*S}d;R{CLC5jK%v>jpaS; z7``aVy%C|ai_?ui$Hrm!KR+t`(>i8fd5<0!?B2&J=N@$`#q6*s;i$Y5cHWgQZLe5i zbzB*=6C*4h{!HNY+r^nbeOyTGKlDKMCDXiA%ujw8NG@k#b$wP6lbh9;FqFs#Nu*=- zR_#0PvCrO@q3)zZzxf-Ld#q$_PJ0F+a$6)!JKx#lfE)vtDgj9w=k>9)}(q zXfq-@v5Q~3I6sK7q_smwxJ%aP!;{c{^-jhv-fE?(J+y??yWOJ)oW0Mhp{DKP_Cf5t zo3C;Q_Bg~sW2rZ1SP(n3Z?(JL?4^X3El>NW_no0`XydbgMA^J&gIa1^2HTx4DUDJfV(>w zey>T1p5Bd5b?-9RDikuIB$4ET+|#?zd|!WWwM9C#*XLc|ht<8UUzw`hIccG_nP4op z<2W?yWWC+Z16`?$&PiB3(Ww4#J_)mX+zC0+>D~J=Syd-lF+ag2p5DtxA`Q4FN4)$o zJXI|qj33!w4waWnJQ%QjRa=}f#(z(QMz#x`(mX5B&@Pwmg2j*a$Fv8TFkId8f!}-g zzD=z@3B|y}UTpkFy7Mb9ppq%$@oxSu$)oZo#q6Yly!+UM(l4mbc1&j7j)Ar&L7Q&u zT)N&qusVj}yzUT*=slkmplP(SUg$j|RDB6Z63SVHTHU2<^jQ2T722#gv2Pt3<=*B; zV)a$q$fbcR7+z=GEnHS7o6Wxe*! zH+@jac}e-q0Z+hvyQgA^g!OGi_uKiT)cu@C<_`^cZOkN!DZ`p?-i zf6kWubN2r~9*0-@j~|CO{nz901pgm+#;9?{z~X}^g3cvD+MtOlXytq?%}vJ$tu|i^ zIwjIzaMNd?HI)wfM5KF^))}CmDW8Kl&A$w-O^O`x+WMC-VO8gxXF37ox}1FbGo zBkvRWVBlQo=jdo9=ql5H-mI$$9c-uEIty&DTyWsj2^Mu|`E+rv?(kjccYY=69&G^w z2R|ggikyS?*J7l$xd)(A=heqMre)B5M<_6d?jSVjX)6A#Y=#C}hTzq;J?(bPPj4Cq;V#W?!tEOd<~ z7%o282VGL1W?xHLL$f61#>cDUP*pEyND`n8omVEgPY1L@U#Ryr@8crSdU`9R{u3rI z;ancmm>RSTyPtXKv;{ri%*9fi44`#}JEvQ^5(ZrA6LQq3p_5vPK}W_OS{xoSD6_i( ze&qH1mrp{F8(n|kg4+&cBimD33Fn|VOQj^3CIs5(QcsF2PC<`c@$dl`YUpB4@~cZt z1biXe-nL8+zztn(|Lj@a!2qE3YF^ zpGxn^Id=-O?`~!vu3&|>XFU}JN-5CAwQ_bkS_3-fk|MV)=b$Yk?6@#(D&;+(*bP2*xX<&Q# zOzmZ;yz}AVk7QFQR-PT&OYUN);hV_Ngn>lsR9M*Fqv8Wc> zY0tP9DLjSNB7AO7cRe(pBiS^7bI|m1-$jMuP3ZQJvWcNT32if`_lXzDp;AFyBqHt* z6n6Dyh_Y1!zPAQPsDsr~F1knC>r0^Y_S}2(sQ@VbRQ*6%@(h$LfA^UW42Q;)iG_KO zM;Jz|vv-3wk^V=E<lrFkE#`AMZELqyx4i|v<~ed9YAj}N4F zQdWguwnR8b89Df6F|K$2x;G5ibi{v1(SRn3lm6a`hS0*0B{Mrr2Ib{6#9vBo!a(TK z)k~#uFt!JGG1OBVhWVuTd9+=IArt%6zVHedJmzBjETIi1KM&EIEB1x{eT z8OU&_9033ML2gS)3bZ$W7wt~`0$pQfip*Us(9G#~g34tRa9Kk)_Q#JxGx34<9jP|Z zvq(U^K<5vA7QT1l{k33}(OSa)>>La!+SQ#^zX&Z!k&*OA_d$d2^SgGsPJkDYrK`%n z0+nTw+jiTAfE&!@in*x_9TyMUG^h!~NUZWp5l=suY!@dr%hQLcbv8Q>vK<%*ArPOa zJqr!v8SO-G?V!2nNJN%ZACzyri+Hdz1ihDEJrZuBfRW+o9nbDK7;-rHDw|*mhB$qV z@}=EjAnuUOh9w>*qVHXrbO?Zc;nCNG?--#?AplcAtiSDk>pLudP6?7|E{Q^Whg~xZ z6%TZC#Cr1e@j)}2h1GcJ7ry_L4#KmZb6JCw%{U z9R9Zs7-s#CUp=ymTL1Oxk-yUa;kdO$QuzsyUnBI=Ut=IKnuYeybKGZ!KS2itM|SAZ z7#NWz;@DR`3jGUJOv6@RVPNg}h>)Os^?Fd!}m zTN4;Eu<9OOG=Sb!T>sS<7=GQdUMV`C1r3Bu3GCeGpj}FIcKS&)3|jD5`lLC*(BW*& zXADoE%eCD|l&}JN46EZB3a~h6(&evtfDp_3Ax&Wiu0j)CT=vi0GU&Tth(h-{LQ}ib z5}E5+=xE!UsvI#7ErOO(k(B{Z$7NF}xEROA2rF#DW2A)Xh9b>o&{n8hddqV1=k9Oj{mT@ig z>I8^ux4o*TV`e%gWaOi7c_5jkO;Hrxb5_eZiCGpeD7#z!i^$REQCzw#gM{SJ+TwX{bV zS>b2-g;k-fV8}ZlDDCEfgVG5NE4ff+=*ZoBM&-pi^i>_13kiA#y+2ZR}Ag4W>&$>7SMe=)R6UIEQ~d(vGAoR!RW>B z8g0MApu23-CEq3o+N*T$&GB);K(w{yj~^P)FQfHkq7JJYO!5SRcI=>>z)&wc0mH!s z#+{-YPS8+a(kqxS4|R&ddi%t4pplE4(c{=Cbm|s(bqoB0uA66_Clg|zn@}~#e{clL z2T$~lja5Ux?Kf^RnWs=kXAnJIcnIo6wX|1HNkEz4fe@$KbSU_s)JY)Y31#YY>L&); zp#9Lvu6F`ho_#2P&G!I14Cs@r#Wdx>xYJV`f~Hy+j1fq_@gf0g-x)k^<-+pBi<30L z>I0Bx_wYHclMXtynKo<=vO}*zp2KIAY3QD1C=+qogihD^J3ok$p+h>3Wzld929yX4 zjb5+q=BJLQd&&WSyiS~coD|BQeiPv~vVqq4C{cmdGtkIAyuWbu22``&y-Mxa3N_C! zmL$A5kKvHq`V&X)L&s$|5?Xy>4r&x#F)PI+sC7-kY^@w!syen%c^gauC}1r|e% zwvXzw^OvCX<{9rsuaoezUyzlC{4$ivGwfH-HG#H!*54MYDqw)iX*lCe01UkQuDv|K14wdB`5Sw5wJ+yvWv98~Dt(&xLp zxM8mRYVy}7P+I$YxpzO(5!afv)srP`kyRz#yUNNS<(m!5i=uL zASo<%`@945JE<*%cMifR<#~-FsiV+Nr7Pm#_6|Cq3kO{HE`Zw1dNNlc7Z{a3oMHA* z8h$aT*hi#%f{B|&X4~tLFzy~K_f;tv#wZyx*G;ovPUA~psl{FxHf!v*qD$#Ky7 zP7s&(BoR6f7kGBenn3M(aBgK{77RwkyC1eqhN)NrA0bi(7!UR!E4-Ki>4@g4KIc`Bm;}U4Glu)Y_ya;_F{v(oK(qKS}_)BJu zHgsH3ETf{v@S*}YIf=`8=!lJ9%8IOkf$wv6HC`JqSk=L+NqQcpO5Tj0=Dqq!tqT?K6y?<=m7uS%TK7OGE^m7opShj@;PV)qmmE|ASk#|8H=s z{l9SQZ}fjSZrzAU7C|4+!f0Pd&fH`p%-Vps>*>?$d1j7>x66U(s#ZN#NoYvNH_pT4wFX53=5|D+P_HobH5nF*pIuo>u!f;`C+)q6 z$)MY@LR-aQ5c)o--}O1!4Q+D=U5lo%dOXCT-=|Ij27NLv(A$f_NbLE!UkY-t^!e^< zp2+uzQsv2={tJ3A8f8v%yF4E{9e)_+P(OjW5_+!Zi?0w-lI0QpdNTNBUlbhvB@6ns z?lUYmhQh49xnYc54>XDEYg)+wtI905fGVBrmbB>`zFUk)|+1; zu4lq_7IQ|3#XV2yQq?BRWbMBexhDFTY^pVD5{$8X{ztdDSiH z1#=-fkF$;z!x*pTJY6>j+LOHgLeS(RB2(|~3oMz08AH}P3Y{-uZfovM@nAM0QNPjI zq{xhDb6Z5m;=*Ce=Oh^)<$XjHbvZ+iu>`Rao3dT?^*}t8k8e=BN+AZza*_uhMiI*m zZIPmk0JQHC#U5sgmxxtiOFoJHC8Cx*dvg3kETS--yt2sQi^x<)3LN9l zBSMN=(FZ3t(7v?(jp`fbXdi4wkXkb%z8l^9$fyn@!IR#G)ru{MpDrnjg8c`gZT>!$ z{pkrJh%Zh#Z7&Nu0!DLL;#TnM`FmIpxdQ9!f%a~reuxv#P5D{)Ct{z75f8-sAfYW_ zcoumVQG7{CWMWiBB%(Ou(++EhRMU-p>6sxSOMbYj+`54F5X5p=@7sW_>6Z+ZzfL2j z4|i{PyU8LpQH~meF>%Ce*G#4Aql4(F0&a|Tw<4D7r^2Tnks_{wCp*lf`iM&}PjoJ= z4Dl!*eHsu!ji^HNgSb|W5G})l1AzwL5QU)0?Y78|h<=5><@Ini;!IJaj+re)ThH{0KIx z3ql%1LJ-67e$AbpD#W$EBwXeyfH)FTGwp)Zkx)%$eUdXjqNwbXOctO)#HrO|1;kp2 zRKj^GB(evQJ3hnjR~bZm44m<4Bqp$#XI;>=lZ{AI=(;~fav~1qH`&T&_J}v`3zgvE zEyTdL|J+-g4`QifwV%@{M*Az$`nW}{(f$b6hs&-;h==REMNmvIrpNH^^&xh|%1m;Z z)uR=WZCTRY*w2ILR5xQg`(Gn2#!I0@PV$KBidiw-3`cz3*A5A47XweVAHo`I@!G*F@#L)m>(uU`)3)M^SnC&cqep*Z}72jWY5TrlC|f`s9C){jTVi2shl9ewR)#IDIyb^U+`BD&?lQe>wF z8z*pUS?+CgOrwQ(LW!(u9mUXo$(M?9jL(oz2hSVn)>yPB(7QWx zuMZ-g<16oMY)2FVS{{WD+YtFid|CNgG@_MNziPb74BInwu@R?25TojW<)ywJ#6IBU z+5dR~@f~_&9o0>W*owr%s5ci8n|tN=-W49ivxhb3rjan>9p1mwb=DAZH%ffUdT|{w zet&+=!u<|n+|h4re)bWOSi17~MC2o?r`#mB0)h}{W#uO+zfQzs`YP_Vyg%aO8=8ye z;YC870f?Vds5e4F1#!4!Y?N3WMWlJ|nG3;q*rBcW;$-cB%{tNAC_WKHcPxTQ zb|((;#63_6Cu2uk;x2LGO~FV=`rU(!m_Ed4x+OcFQi4chznl#;azvE+r^COPnj#8I zan4f@{Sn=5<|0RrB}DLE=V|@%F2uO+htv5>QHcFXGzXU!58`dk9J(Ypj@Tj=jRWsu z@oshUiuT@q#BCNFPOsI3ct5zM5UD01ZW#_1;~Fc(WOHuA?E^7l%FHdB-O55FP7J{! z6aI*jZB2(yz#nl+iRiUtd__DQ))xwXSs~uGj)75qF(jnAMx8MF74gL@(&;1;BlZmT z{-;E3h%ENKn7S$*BJg`!#l3zF5ois)zWU-eqU{31%H`*X=PIm!CT2mL#i#D_GyD7t zxBfPXuD*_%lCmn+MOEjYK-a(h&S7IWQ)dgu{{(vd*Y6D^_-}+>Tkbl{Tc(ph0r3UK zZ!;Y*L|8?_MRFZF(xxvfXT67M<~WDTHtI0RVW;MR#FNPnRi-Hx>FTm~^}8UP9kKCN|YDQ*8cgd6DYY(2=3`UDDhU zYOh6}W00SRmZy@3wbsu8K6b)LI*1IKwC!$bPuzvR!3nj?{(;bzP<#ZF45r=z5)`%ixb zx3iTszM~~TzNXoYOwRRky)a3 z6p^iHKYk?Q1l#x@G&#j~u(j;AbDGf>HmIi7ntzPK`q%r{DNBW6i{Ccfi((FuZc#W0 zl?5S!m=^Pd94AB=_9V*Xs4yaAS+O)EU_*rSECxx0)rbIsnWtk~VJ_A$OGK<15ue*& zlX-p!t2RCAW;(SINoaJz&bKeHs%Tb?vu}o__}Yh_8ZxlM%t8KHp9I!EM?LRAN-#ed z@}YVx7B)tdh7X0{0#5WBqk>~I1+t7otHSQ}> z?ddSD(yMZ5*$Nil+uy$R#T_P|e(H0sz72DtW@+~u55W8p*?Vqhx?$;2x=-Ud988_E zrh6W=3G;%VI2Si?@Jm3CGrgb{#s_&P%8Silbw}-M(!2#Cd_`G)e9R8EkqIrKk%iC^DCy;(S7UAmWWWqu~sQ>7&gu zAc8PrW6w)hVTWCJV2xc05r`Jngw*|lH5Z|Qr|vIcsbz>RytfHf$E!KDy_R5QdO!I= zUQ$GGz@3!;yEP)H;~c(x_6V$>^L}*f%57NpqrKxM+zBf`&wYMMd;<{-%%&<_`wE*; zUc7_rH()K_N`Pn|9uaolv3@ev4C{eokD|{jz&6YIr_FK0h#-Y3ZO0)6R$6Ed=uO1H z&aLUVFp7NGsrT{Se8d3T!wuS>_gcal8LrIR3bRY+bEA5VH(@iMd$#xd4kD~g<&67P z1j`TJ1?tLkzzWA{%iu9eL`ZX)TxTf?)=L@AG{ZMUU_kkdNa7jnX!En;<=?^PDKYx! zP#RdX1hXUuVpy4JO>ksNfR(SQm((XRVP&IK-zhs4tDc{0RjJP-BGZyH_;?{$Kl*Tu zW;z-+UyuqX2|R#RSqc-~!93W>w+LSPBn;b!{M1snu3>g_)NT2zENqn2okc5{9l0G$ zxkxSsD|$;mFQ3^DYu~yRXXv+J{-j&8V_PJwG&MzP3Y%m08!a%+s0GXE1iu)z#9*Ol z_Cn~z3$WIzFn8qfJ6QaL|0w?D6l}^auw|d0fw^M(>oxr2FrUiDE_AvGR^uPt5}+`I zrB3+UVdo>?-c5UEL_ncF#kTVh5%#^3coVUV$e0h9 z=8LT&!YGxJAJ0V)(Q_ep!!;d5z!AF#^_@lp_!8;hiD^V=wdHH5iuuudHhpHkYluXf z^Dx22Swz5NGo)omi-`6=mXl=oiHJw$UjGcb4V#tDLM)eVBO(cn@7FuzVF&42mkKE% zqNU0G_a`yGNak$z_tQm$FH5f^Qk;dIF+bDtMF&K>|I2}O?I74JGqrkq_bF^Es6St$ z3PHr$PsB+S!WhqOm2ONft5X*yAHhyM zefYZV7ua?zn(VuF9uX3e3$e2%B7&WpDNz$25z*+n>&xPKbM=AH;5{H3XmXKn*7McwT&PbzX=%EnJKG<6iE!kWZWnQe% z?K)xFxeyM0mG^>~4@yHV?Z=82uFs*XCj6Rj*ci07d`h0=I1II{G-Vf$*}wq5q_|Oo z12l|!y$!`HLpPhX_DSAcXu+=??s51GwUQDVCLz?&s9cfi15tpx?aZIFGzyJ!q$D+r zbkNLOTNQrU8k*Pn&wtgt1#P9)a4&KQDol<_5V?y(6WhzMSk7T+FIQL4^mz$2Dp6;C zYLH@e#4$S6(Nt*48f>Y`cmgfkUy7(4UjgpX*zJ|AP-tlmzkIV*9jaw)Zfg0mL#0hj zkck{AGCy`9d5GwWZ^Kvm3txLbuKjEg{%5|A47jt z%qVW`26V0w9&$IQfsT3hp4Zj&&?-Qj&OMw9U9*j;rtc3yTj9!^-fOEcBv&`!qqqeP z+4oa_Dt-c-%4sjNd1L55oGIK0l+YrKC*Vq2hfZ?YINiHPpwnqdUcKZhIWFYVA{nifVU=u{&P>DcjP^Lc(pyWT>IWQ zb50LBq&RMj`j0@@V9xRRM0#jUGAp4cpUesQpqEh7!RBlhG?N)y9@ANXwjJ_ds*~f;SslAoqaz57Coc?$ z>XBmO2Oozuc|&8U<9P$YC}_L$R`ck*Cg6?4&t;9gfvy~}GA4z4&}h4dr+n-(bjt}h z_+7sb_(iVgd)N;^!}St9{!A_CjE$A-;(7|rzNe3u^A17BIhL2A`tP9=MR`lco`F_U zjSkZ|acEO#$r<$c3XMM&u7-ZEf`)dLbUIxVXw>wuw4#3noi*HNWh^(KxBTf{Wd94= zDKz4KHakI&%BV&A9cgF|;D2q|5De`q$0S9{4nfmKCrOl~EDVY93BKashM9$072;Pe zFtVVis$@C=6Rs6fnUYB`#rVLVI^P_Ih3MjyNmXFdZYO%!<1-BD`@~D@WWmI|*|@CV z7z`@jQ_|V;gmH=F!*$})F!a;&7C(zO%n(kUj{Bqu1I=qJnzDT`*kQk@Ao&v}+tocc z0%l<3Li#@byFxIT_41YTyfsWnit^LG{Q#qbY+w=Fk($#H)U%Bx74vvsFBid3|Kjl3pbD6DdN*`HUH}Fo`p2$5r-89;$#PUk0z+-?JK}FY z!*rifwe%iM7^JVLW!X`IA;q(I?kBjyq=#n+KZ6$xM_-z{QT+}k*QJBMre?ypg{~;2 z4+)H>Xi=<$>|px|zK-5@!-%8Gx1pUR7+Si$XX?^37}7P5@4R3FV|ER1cjjkdhKsf` z`O-BQwW)nPU|<6iF^1_udr!hBn+#<|cYeVdlmVljnxO^_6fn%d`>n9(F^tO_ zFsWRA3d0>NiZR?=UE}Jql1cr~d7$25shUw-3-fsibFnGOLC|fldhWuh_vsN@< z@?q91XBKSz@LRl%lX@^YqfQ?CK@27iJ=lA-s2j$JScej5Yhk2Lz-2^Yz7)&N@;3s{tyGEZ^gQT zX$u%#zB3}gL!m{qw9VQ_qia>9KQro4}Z zxN_fvAz^o~&JSOpKmMn|!p>vpd475+=Mn+*oodPUF;#}XyUiBQ6;@!fUww?hCk%#- zV|dx?=U{}oyT(N=7luBijEU|cgpsT1Hx3XVfxg5?r;y~?!}7?~vhIrV-X zhFo_7qN4V~q{bC1|3m4}H!3oDpeqiVzdrgE^spWJij^9KvLv9#+@iq85F6jJG}p<$ z1p{Q&YmZlEp;c$IkTm`{^xIp_iqlL&-^sefJWnQQ6$|TdBoc)lHFCY2VIAo0ra50Ib2PFEm_zX9ES627AMgPuvP(ERLK znpK(-v|KN3H0O!~e7Z+0UgrihT}ZkY^57!0csyHM*g6UwMa6tM7hC~PQsQ9VPz+6H z%>5htB%sAVa$TG^9vY=M&c-}H14C4j)aJ6nFkXLZA4P&Q40VkSyIpgGi65++%duG8 z80_74*2QqvgTN029zih1=3Kh@bP%R)cB-qoSi#_;nDjLLn{V-TNa7XK>F$^Sm`p5kuhrvsZQ{LUiFi4Zhc^F~wHD_z? z6lEHWeT`BuUZsYiJ4I#5X9i)wmOYqZ9b2#d<%eJX;xIu_ab;5{21Xf}yy9xAU_^2v zrN+$}CPiRc>Tv;#&{$G<8W_Q-E@%BAiB%Y#tQdPG^8tpu4v#!=#P)X~PNXe82BxSP znA4`nVAS@6na49J7_L9l!mLUO6R*`&vZf!vnC{sauBpc`MLF+3=0ysFy7wx=)AL|R z{RUrV<~B^wvg?%zTEeJGHz_|64UF6MpM8E(55{R)IZZ6wVC2Co!no_vFqpk)hIf#G zVa`I?cqZ(eDjw&Q6&J$bn)Av5Wk(nptg%m^x&V{kc?YkW48YJhV{e`~f}vL}?0$aw zFi7buXdEaA<7dCl(wl3;IJYc&*|iPm;Zus?cBF*T>}S(Tvs$-aByTnm^VF#o#r z0Lz1}{Kh|@9fpqAQ?_|$`Js36(n?v(9q2R39(?$`2YT(jH1W}%(0$wJ1$7GM7j-wZ zU1|BC8-K^!DuNZ$drZ^!>J-5|II7g(k2o*tonVNOgW&dmNb7!>MeA+?N}$W%0s8pHJ@{eBUro` zj?pO3h5oK?d+C}8=<NDWQD$z3)&L1LC_arWcFp@9`ups(iyWxL;vu=RiT%n z(6^MasNC%fgO`6g-8n@C{kPA&e6@h-Z@S@qzwA%wr+d)(QtcKD1<9+vpkRbPd6wL7 zxb|CzA0`&_{fR z^OZ6dFGj;(Y~{{E|7YH>x36LA5eR7qV{yM9L2B1$tJnFeF1@!KruoAGv*mxrVQ;Qx0P7m3x9LT%k`!(Mw-t9BXf)j^h3dJ+0er zCyXCp`wn#aA}kF3DfXm0rc=->df(|_b2Icyx>nLHF+)$C!PZGxI&6QR%}#cQLeGgy zvE42C(6@FrS-5B%tDo5NXR?>Eeb(_hSl@ykBU8ngv12gMn>DbQjrpaus492ccj!KJ zy(61!0=j=OanjQdLN~ujnO7<&^m9WQZx2?tG~r@jOP6Ev@AYbWW&lH4-$p&Sf5K>@ z&W{YAZ!pxfGQaOC<_9snZ#v@5V0`Sni`HWd2ffgL8N+-C+SRt_&Lq>q(268(ZCe=n zrYhNvT&IVzQv_1CSUI3iBhkR&?iTcPm2+LxVSvuJwNLohE<$&vPaoMOZs<8}+;D%i z3P!ghpGu5fhyG_r96bGHpg(Goh0jO`2CvPU?VrT#zT!sq>+w+NKbzEale`kEQ~c6K z`fk8rxz|}m0d5#HC-r@rY6ZhLN69A|_CtFccQ=_u8nk*)({=PK5X6Q#92VcfyvkvpBm`4F6H(0SBC0r73tZ;U}zai zj+kO?fu?Nwi#;<6P$k(I7($T+-2-*gB{ejFTj#dgP_KuMh(0Naz>m<(W7kFPp#c?? z#DsjKX;3%0Z;;%LA8Op5>6{O60h~Agc+6}XwCHBd#D2_z#+$#6U#69SR(YPHl%Q)+ z_VtKd7O5EE?vs_r%@{+2a_}jUJW41x@>ZK>+x-QdFP$93rU2iwz(t$r0*#M268h7< zpo+eb=Qei%V23eLk~;=9J`P`wca%dpuVIm-dIwgQn@vAl!u(U_I(55PCUiWOi#82> z4*f&5E${vMU}*Zx-LlknXfzvZqdUb3y(|;5J2z#abI!cs2*puo9|}AM0q3!L@f+I% z3Qp+CBdM?c#08x?iVabwUt#!Df?gcEEHpR@@QjVIL4!Wem(Cgm=qr%!dD{=rzRgln zdGR>((HSulzx9PK0x#}2Q-;v15$x-5Mi*Mm`EBc8m;+u#x-M-h92!Z}>C1IHyX5-|Kgr}91J*d%le ziaxp8bqHD{hZ}9%(=c3NYI6Bz3A9`e&12hJ37zzVTT-LhgYlHfr`M4fe>*5pW zEPMRO=|wTL&;EqWRbJ?B;{E#WHa|2}sScj-SBE~W5cW?~8PFCnCwSx+7xc#zK@ka7 z$F45C4E<~ejS`WvOXoD9@4`V7uMaPvZB>lQCBp}L5ABtnbdG^8r^^+ut#3j{aL#mp z*9mB4QE~Ci)`ccQQkUlhkDZHHhvwV; zCmbwIp*>t6;nT;x&~pA;%=WXB(B1mQ{waGNbXDfs6TJIa-%op$s3#HGfH=x<*$L$M75l~a{ZNT;ZBH&(}e(zNA9cnVKU4CkG5gHcR zL6w+f9Up%SCnUom~@OHyUth9=XSXKIfH zK)nl&uE;A1@Y|7Xs!Xpi`~I%Rdh{IB%0_q?j}Jow-6@WIRU4==keI)&UItByK{?kP z7@(@oNY&IX3L506uldMGL*0SEcq8)z&`MdNr1y#o>h?Lzw5q*;+NWnzjy$^tO*WsO zd^EcQb$)G>q+u_hnJ|(*-`OAPm#w4=ZK?qORgZZ#%M|K#NUd8AYeIdV(tGuIdZ;yd z*3#ikh3P|M+hVR6aD0W26OF+@HH;G+PLwDtVhTp4E40eBxlkMu=r!EpLsJGv!Cna(?>2q zt-l&&#NKjfxJEH_a~a#eXwuIV$_i-mRD7luIsnxQ>h~ixm7yVsI``RiQK*YomCO3F z2U?GxJTbqE#gfnfIXl z-iSxh&CAf5w=eMSty6##y`Ozu_$+j^`pvz{xCwPLY{DY6bbu@0y7;tK8LDu>$&-!V zP_<9PX=h&~;2iq;{D^g-&7bOelV3jIt@ruP2xbC4e`2od3s$#&n7)Q*r-R1#x|+Fd zme9zSvl3SFj-iIctJKZU<0#Mg02bwdFlU#ZR7@ob@`nD$&dOPw4n39{Jk{17LGo=w)Y9%$~Rji@S*Q2#H zau{&deL1Q$Ezq*LXL4u#9yEHHoo;yEiN&q7vGz+s&@=cYMX_BBDr(LtrkEr^U5J5{ z>`7i|mY_dNlhgqCWnwpJ(Fth%h_Zef)k1UjA(vI-N6_5ve}iCe64ZL9g!d$1e&*uL zmKnzj_?kZLa|QdLcC&Rb)6O26W?6>sGfhF0TKJFkXT{L4kIf_Tr6S-W5)QS{;`K!bWX#6C2JF6xTnm1Bx>xkK* ziQDIN&WAy0`P6YiUC$n>&WN0`d@T%hA|v6G4fI$X{n?NKQ-E{1f8~%%I<)NUPsR_< zL(|Sp>ewE8Xvi5=_6b&jx=?)QVk8yRj?faxzl(rciU&u0uUA6t2_A>3x9!m2_gH7l zwGLYNEqINCg8;9tXul@~(+{`N!slZZP%B*i>i)AyXgVOavd_r|@LJ^j_xO9Ev4tmx zr*srr2h&L+*VF({P?B+(*#w$y$|joP`!T$j#IDHP57kI6NrICU8fE=9(rfggajLsM z_*@C#(jRp{zY_^fhxU*%uU>{`YTItweRrXeD~!l>2FouW8g0RY1gZ;;{oH!I7wTh< zf0Icrf<{f_fGe-d0iQ5YO;JAxZH!k37$|k1h2X5u2aQE&4Cdt0;p&2Vj*#d!;}tAl zA3c^O>HxLR<=-&uV0ra?>QY3@FTgv~3B`MDL36`LQ|ccgfWLXPLFGvW;6o>qPhXpd zx^MX%g$LW9$yu!e&*TO5hKrO-ve#j#k&ogPDJe|sJ0o%qwJ^`-s8 zT`(3OP5<%BY3REsFy;1Z9)^+yR0EYaVKCy9g;|gy3`zDc{ZRM_gVu6xH(n*e(8;zt zgv<*tSbK15F7g13PkTpX#_K`fVJ7Z<^Lo&)@>XB9wF*XL=XJ`eu{z3Z1AlWn1SSPG zX~I67fFV(Ty|+(eVC4K;VJZWx{#)g}@FR^C`WCgTPkb_m-hrsSPKJyykeOudGZqSi zW-pw7C~Co&2*0n_Oc)HjRARVy`3wyB9$~m}pBwtiKZYHBZ~+G0ZC!n;%VA)SUU7@x+X4xiDmEc(I-4DGbb1X6)FN!{CB@{~&i83_gD#N$tH1W9gR9Kc5JNzC({g z97Uf&KhxJ!%&!ANqfWB5BI=s$3gfDwg3zj{=~%~?C>(>#2KkI4iE1^m+v z7jnaZ+iM&0LRA<$kgQI>BZ=9^o~MVN>OkL9oY?IWRv4hH;&8o60s{w6DUt`$z@TcW zWqh{tKX|@U^q)LmDf%bRS2F(fX+~pbJ7-htfA=!CKeinHhb>3`Vaw5f*dqN8TV(!W zi|jva`P-Z682;As`2I+s)AoGtJWdBiv-0vj(<4X1k!nf{S5wSr?5wQ+6HiqW|Mz>Un!xja>r>T;bHTUb6w_NILh!w?i`)S5*DHoO zjFBTD*KjpiQGLYkqdfDjW(4usFEZ@4yM#pgr{A!d2O~k_bBP97r_g>g%dK-3rilOT zO2*B+<47=sMV*VO9SQI%55`;}MF7Z`_J@}~+>}Kkdrn_e9HBwH_7eeX)`p1xL06Kk)FR?uR^9*N zTOiukn5pVpID~|pw>leqaY#sFwz89y6A4Ihai8psMM7?!{V~}^h*MGAul~pq;*&L{ z5g1HCeD~u;8OS4G-6*(in$R0j(hgkN($PSKNpBtAJ-CWUIyJ*=Bl8h)pftHE-FMhL zvtMTYnieAac=Ll<%MC;9=+ZwC>)aCvxVI~R5kqkedR6zt4x7SJ$WMr1PMH}x)#B9hR; zr#j!35z*o2Pevsc5OEHnZt$&kSf^R!r|{251SM)e*~wxM;UvQWg3DvjXDRwqp$U-ZCDAwd`-dnoqf zcq@$J!;dA0U}&6;Hj6k0Mk7bFyCtr|$mxq^ zeoC)laLnOCgjpgCbI#Q=E>yuU{$F1!7i(cMeQxvHLI4bFHX2FsOLg+{_ z{3s(t2%~n#X&DU+V0;g^O8#N@e}KM7{t5ab`Okc(?Y}rUQ~xD6|MhEW|0F)s{53xR z^_w{Vi4aZx-!Me4{;v(ujJ7?6sS|e)cU95rj-6b@$J~)assZCsyohBZ?Nxj40OAqM zXr+$cL0rtGNs!*1M0l#Gg1L?gp0fjIC0%kE7@(lOG)tWNJMeGLeY5 zG$gm4uqL2=UYX_L>VVj$!jlfkJ0dororHVypAn-A(@5csUc_m6#&1eK2C?^WH7+^4 zMx4i5uD?^TK%7nMhj{kOAa*vxd-v+X5c3&({_A96Xut3FFsss0v^T$tE33l@773Gf zSZfX-!l@^B2`2Z$wh222I;4dN(yrXj6Jm$$p66#yrboi|QK=pO6VZrBaxbTf^(^fC z=rE>d8iU1amo`7)+F-S{MZ3xI9c->j^c7khgzbCE(RGxJh=4ud$koVI*!k9XM9O#w z)*1%JW1jLMVsf^9mqiy~ja2eHZde%+d?alw+7XAXyM<+L`gdTfcW==Nsx4Uc6cC%t z{s5~CgLO&M8?dZ5MV9lO0@m!-E=om)A%chbrX5_29Gc zM{IEEt|yGNzhAVrP=v8dc$(w7F)+X`6F7VCI`khFd$?jR36sYyUJr1@L*H2y`TfD& zFzT|R%vI8k6|i9~F%BIt^6Q!6SF@kcf3kIWF8dYqUrRo`MeYE7v<9zoe~!Swm%aVh z`tQRSM=}4xBO(}~QxucFt_njma_xHvlwstpvCZO_M(8Dr4z{`80mDYeH8swVzzD4+ z{p&|cP;pi^%uF*FTB7)lS1-6g!{{T>>^}>XPgb;KoD! zDOx|r3LMmK;p49O?LZ4z+!^XOu23T}Varnd9h&$aiIR$&0xl3FFZCzN8h`03z|j!_8O*qh2}TYxCc7dp))zwL(ZZRT1>V-MGf%-K42oZmD&>;Lyr^c zeUgV}L6<}CLM@J58nJfw9}PO2Xo2BZwvG&i8} z5r0{s^fTx_5p4EN^aZrG^1B7>v_UJ$TI=_e$I#vqrgPWj9N<1g7i~4LL#tebj-P%3 zv{scS*L+lh@tx?4N8;pRl{)szLl-+(Fv_>uoK=EFk*vC-XN+OqSCr`B2@;sw64@qU zK(IP>nv20!2o}n&6z4oyg-NlFoyHP!n2oUI)@sjydGo+a$r-J%K>FyYk8LF^O|&kK z7AL{XaQKxF@fDacQaBLMV*zXT9u8C3`NIsCi&yP;9$0#F>E!F``!G91L4G)K2bNl2 zNIM*!fLXQ2k~N94FiUtFAMbGjeto-nTEMFlex*m~+qqqUrS6FY|tTwhQLnLY6Iua%; z5#!T+qHmRwU?to$k%%S{Fhm>UTu!UL&^jq!3YmWSoB6?hZSbr>>k7*hECl znxZ~uZXn9O5UqI|XTI&r*5F)Z#l4o3W{Q!wTcE1M@jN+d_Fp58cU{rs>Hh;O1^zW+C-8(Y>uFGHU zY5Y6RU+xP0JI-I~>c3&Dzi_OroOi#(|J&W3zsFG*{`&3y|KfKJoYvG+)lpW});q1G z`OgrZl`Xa#GYflXD?8i&1i~ZxZ;0^P|JNcsa)+N>-?%ssi^GjW4}$s-LsVQR=g~OC zM5_5bI{X)6pjT~9g2#w~ZgIb}QZ!<*cMX1KDUTQrdPKcFQGzJ8e!2YAaX@=K2-)s^ z6h`!K>(8-fJVXrb6(bpT28hY6gl*2O3DKL#2bFPuM0?Iq-1p71L#*Z_42kz+5RGOQ zgV}W*#B@LTiQk({M6dseLH|uWV)So!drYf__6S``A72kgGzCmKB8wr2nrB}3gai)l z@!iJ9pV2|gXK!h|9$Z6=9>-U&*kSv0ElFb`c!8K)g7y6KG7#l~?oX$aR1p1kq@PE8 zIARFu_mMIY{SD!X{f6+keuwbb{sF?9`v(Z`{ci~Gz;6hT;dcmc_;(0z@i&C`|7-8P zw927+a#DHMJ1fpb-oO5n+l$=4yAc9CR zAs~M5?18y^>+F5*o$t(Zw7`>uz&sC8mz zbdSm`YVWwaQr-0xH3ghnycm55HB|6k3(wh#I!Pq*$75a5OI9iohNvAsFuYg)hYU|; zmEpbnf#KP%GCbxV7~b7ghIeL_;h7N_UdDwK)eO{4IjeNv!xXhoN(k;-a6uh|m7k@@ zFQ7h~YTausC8+c2;??^;e5fUAv*h8)lYe7lX08Pq=Bp~-b#33blBiS$`tiF&Sj zd{vnBL2Xt#B&QE!0>f)9wn%0{ePI{VC!qO-!mvr{F6*Yw>F3~%cX3=jTA4A0_U%}|~cK^F7pIn}yl?rkEik0Hb#zjlB;wwK#|rg_K6t+xa$!sX4U|T)-Iop^j!vd{Q`$mW9D!m>TnbV7 ztpQST={fB*hX4gTh+ozm1=#+{=-C%_P>E5=l^W0jrH3&Qp<5zB(XHLH|H={w`c_VE zsM!J1z}5ba_A7{WeSLx-0PHWOb!!Zm1tFdmCUc)|kO|~HnQ@!};MB9cCt_y6L-{~k zk>(C4e7k?}8~-RAP=7OMYV-~?R=Uzky&r@0>nSv`w+19;xT7gR0HjBXD_LuKK+O55 z;2TSI5LOxzTzvWxq^CFD=RW-j4m2I36Oxw!g@RV~C#e}AZ=5CYmevnsq0T_C_yfpa zN$AO4=mL18NapAOAf1Ak_sJ028)+m;y*>`2iR%-VTt9*g^L(De=5UZX9l{jJycLwl zv`r_raf0GL_pLG)dqG}8;>^lDdf*Z(VRfL{z&HrF=-)3_SA76Ezl8k$j3SWHajdhEU(ot<`>H>3!-^Z^sP3qE(>8%j)E9cPs8NtJrgq907lZ>1d$%-4>VbH}l)donbs#0O zP^cPQ143@3!P=ysLCRw6_*5&%DyA=MUO%Fq+UAN4R;V753?M-oDRHRZ*Mj^e*uw&xx1}{lOVJIi?|Du z8SEM7eWxbP3`je!B7l(wq~jMYX4U--!(v_N#wqT)GiR6da~e4 zdKiTIrF!@5tN`8{!qj6Xo*-dje^UI?G>E<yXx=XYB ztBpO%rPJK9GFnQ(|Y$3zDZz zJGuvnK#@GuG+I0xQmQwPrCLkQx7@5``TR3f^61APkx9PAYxa6=GGk`k*g`%Gav%+d5*1m=r%})wBE|Qc@TtO=p+y= zo&$07Wfl^`yule~oGBV$3lg+Pc?YTXg1FjZVQ!i^C|I17(W%e`cpkZr?~Eg$%Nu-) zxQBs*t5u)xY5)j+eBm9|ObLR~n~ijMR)GIlj{FUuufV;@q9>>3ISAA-YxU(-gCq&_ zev(rrz|N8Nm}dVWkb10lSaN_Hq?*!pD9mnRk3mpad@;+aixjc~dwEDb9e+6X8RkkpW4gfpDaZU58T;LB_B)=wl6$D86 zTR6TP0d9SN+K#)sfa}bn)7$S0z&)6=82_~!#BaSanY>*MyHXa6NgBdH{7br_SN9!| zV%<3Fo~8#16CCzQy97W~T3_OZnidFT6JL4D{uKnAXO_!n%Yawh*T^1u1AD23LmJU8 z5b>E7PYsj+-sq>9McdAR)P?Z#uBL4u)g?zJw0jmrj!MT1wE6)UJsh#7%>jwPR4Imw z+`!kW_gLW*#edT|)juWui{!@Q=iYmxW zlJXhu_Uh2Fm*m9_o~N6Sj9$URM>6+`J$s7>DGMm-cd?=j>Hq~Bq8GSFJL%whRZToJ z@;$e1a2HP7HAD8$avCo;23~5o!H>`AP}{^%O5^t|PepDH?#5N-v+F`{zQH4dWt+M> zKH|4Jsft4958x`*x2Ly`WaAIbok23nR# z#cdG{xQk}QiDlXx&!w5Vt}}m!2lLrTN~zCb7n7i3T6!Yf8^ot1YA}ym$lech9ovKY zXNG-w7rOCOltjnSv+KCgwu5$~s2o0b^z$ft>jV6Lf?V2vy&j&0iF1RQJMnkEZ`UsK z+$bS3Mq58j?k*uxe8Hu6;UgaARQ+P&Q;9#ZDW+mZ^OAKHHz*TIp5g_27H_j5Q9Pu& zN3dhG08jAHoVCfP#TB^}Dky~1`_|f7ak-ZiU9~bdQ&n<@KV_Wc>F+UD>u_!z?XsBW= zdj}8e%1$?J9>Pm;hmCwl;_$1W>tfF*RZ$7;#3haOk8$sChr!CD3;2EL^=tP$h4Cn@ z^TRQLlX!l6o+m@MCmNK~KPqoOg?lvjer}72#!n0CPkb@w#W-b0V6x#g)UxqwKb`D5 zTpam?*<-s7ZeI==;^Cb`T_|vw{+KQv=DB&Cl&>F+E_lT9@W03JsCiCpZnH)`dK=0` zh(yura6Wh2YZ|!z5_1t(^Jz4^o$A$WLJ5A?5lQC1v>A2s^AqJc<)dDu8d^`mUer~6 zVcWGsji`S}#YmMg9QT$;Ssl?hiMqVCm_27k&|quHw~qa3sHYDiGJHFC~hFSYw zpngI;&E`o=-%`;~Z=A2T=55@|TiU2oG=(~2bZ)KF)vHw`SdTg! zzG|p{p~f+f1Zo-h$(gC=6&f;qp4daziCz=?n3k6+;FhHgCxxc& zppMs{Z^X-uqF2Y`yS}&CqK-$!a`LsF$WJqjC3qwUS0_mCc&$~AQ%_j5`_P@i&3vv~ zyPjL3;f|iguk2N*=4@qiP5VZaGxApavt$8kzvLyiVmE`Em7i}c)#65YelqFwhI~{b zm{9goMHRj3FVf3-(urRm4tPgY+lM-NDBB7q>(E=y>s{G?F{i$w%LAqfXE!xX6?2d z)!c+$ulOpO2Ros`fzLMQtxut`q$?3^)ST#*e)5|jNhdVR{&_BI$P`tF+cIA8Y(#xd z<@bsG=+N5}-<40>MWNC;?{IB~ooISA99OQ5fRlDV|JABDQZL}K7$$qC%70C;=5W6ZgI}$AHV{U{dGb^Jk zzcix(8CR#S#aYzc{gI2iSPr!fqsDEw22poncHpU@9yD5^FvNu&P_sQht9X3}`pEQH zDXLHaO%?47;P6dBb6&g6uIqN8k!6wB(H633!lJb#sFMLrnT>JLaG0ZB^T!JZKc%C= z>Gp^8Ha@7G?y&x|C&B3b&49ySji(X5aFl(|6F{96<{{A(-_V%vV}_^3N6^(qkrnGt z&1j}^_ofvULQf6pF7aPEjv5u{JJYOlQ2R4Rrk9uBpmIKRWzV$|G)590!bZLcWkfs* zULFZT4SS3p4TM^w%;%?~a%OI!SrTfl?_8Z|M$T6$Oy?7NOYcw4YA%l6s=az|(5r!J zb>ae^934l^v8NlhT6dtqh8rQ#-(LNz*U^8~50~cDY&v=5AWoy(&yr49=U$xk9!hfF zh4Xx$5eerN;;gY{{e);M^hD{YoW*h%P95&JOYxE&=XmTnphm@w9~ZUEWxbBY?X34N zwegXlbN)wK)3@2k8uOmpH| zkM#UNuBZ4}+%ETtP;HzTKW|gCE)Q2u+mK~`1@wgE;AE(_Dt-~(y=ao%hHK3Bnwaz~ z;-Z~;qMs|Ru_LE-FxR9yP8~5@8Ed4(kLpUEy?!5#O1e4N<+e=W{QSghrA|v6nsF{_ zIqVp6PP+ZHI(`&a`nz=1_u}r6JtR+Wn&P&H#5ZalVO;QvQbF46J+3}g3`o6MCmyJ zG=Ob95k-x1FyABFgmW8h`y|io#I<(8_a$#U#l<0KJVLh(;3kQ@Tegp!QJnhYEs}Ac za6yCNmxVS?wEGoZVQSDz95bim zvm&wlzC6-48 zr^2LP(R1SZ4~Ns#sKZd8y`k@;dN-8pWKrxF-i~sN9Ek$u= zKZ^Qz@JX}Y3W~Sj79L0rL{S&%?fR6IadS|t{Q1rVT(`$@pZG;`e0PphXdXOO*q zTI<1%(u{0pai}SdeRn6~?)Cv(r7X?E& zcQ(H4v_ctGFCS)BCZTgh6{oM+^P;CmP0f}ihEaSI%{Z&xQxs^(v&cMGjxu}g26<$( za9Q3le{QcGD3-`rNAi9oO1WMy=McFaXVz3CE*O4A$;s{q#UgZYM!>wl-8Xrt+}S;{ zf zN9{CFaB-w7=h?@oUSoSzPINjdO{_^^ZEQeUZXYSW=(6GX3ncw|B`f&Jx-y?r{f#IS zzfgK&mXB~x!ZruWNPLAc&1lAL7Cjl+xRd%T8@|}av&4cTM3nptJzhw%WED)-82`TaL^S60%rVJHigQnUw^*e#(9mMys3k_}aK zGm#vvPeEn&U&_>Y51^*2;$F?OX{geh<6^%TJxbipf3)3_7-fWcpOaXhiV9>NW|LHh zp_;DoCwklBPzhXirBseXZC6}!0@nMZc$aq`OcyaK+#~7Z)9?koG}!DOa%dZhJgi;U z5_p=xf2~Bm+DD);yFJQ=F*Yc?l07wCZw?huDW>Q4RHIBqQa|Bcp{RMe&DqE!0LAg6 z^b+D(lrcTqCP$iqQt1_wud>}ktyY!#w!-gFQ~BWMFWJ(l?0_=s#sj`6YVaec=iBpy zIB28q#^j;GS~m~U*^Q`LHrajifEG$Hd`B#sa0vA%bL@N_xdS!tE@c^$Q$ro3rG59N z-B8t8k@Ygk%BXQlzLkSM4mC*J4zbZZg3_~9XBvX7QAy_2bC*u3pmf#VN15IqP|K$k zCVE>k6mGs(W!&5YWzAR^bELGQN-PuO`_T_S?sB5fL5ES>E-Df7i1R4LMO&Zi+9FDd z(hxg9G>anhp@?Xl423?|*&Aghg(mJ&$u2E$0czaLbpC-!db?d4$qDn;OYZGn?{f4;VR+&TdfnZ=yJ0X z->}^nE_%S3^`!sOby$Yv^$b{K#9>cwXySNoC*l{kS1$m~xUW_&5)go^Q z*7DLLRm2J31{Sn^`DHqPUrEy;7!%KXBwye0+ES9j};mUS+n}Ay` zFK?c>)r5!IiEC`5@8A)?Q;7|!&UmEb>WcEFC|n)>hHdIb2kxZ%QYkug503;EpEWT} z#IHAUtA#i6n8vT+3M{Uy)#dy{X3$Ff5z5mdDU0e~N#I{U9*e|^x9}kYG!5M0GcjcUXQCb)!qkbL}E||DmD1N8~ zH(v>k%RH%#D<3$fSv^{BD%NJbNpK5l4x zk(EIgh)PJ3dCd&vQPmf6_07kf@ZFKt^?rAsq8eA}o0^X-@yi_(?0R4OQOVokmF9vQ zsJtvWh5E~NRB2B7YA|D*us2vYWcRwBX;i&WdpBYLp6PvNH7XFa$yVlm-GnFuP={Is9i=K+3X?0VcXWd&F9 zQ&w7C^G2oNN5Al*Jd}0m&UE$cYgFSSdzoyk7}eKW#>|NfqL-nA_cdNGphWYzQng*L zP+5&&db1m0pID)^>)PiuRAKhD?MY%Ls_~9()xLTg$9qQ}-KN-xa$;gHO|u80ihN5l zzLUc!LYphP*ZLdEb+?W$OqoaV#*QUskH%0XIZeK1!Wb%GURQS7zYJCFX{1=-Ak53# zo}SjYB#UnFl`3CvKZXhwS%$e}PNDMGZu#?yIta_3pxbKEi&ATkA0rm)#4dWZ9)8p9xzndCeDV7>%p-#fdIXQzyU=}#^& zSRO!`rqB4Sl_gQ$rz^)<846MHd@|k5syjH6>Hg*o_NJ)7xgooNo(WY2wTG<0YgCas zaxx!>pu*_6afRXvlzn*Nq?qa>^vJf}>R@mND$trUD9yJ+<=uE>!xIzqxbi0R7o3Pn zO>evpNx6n%-F#`5zuiSIZsbnCzn+Y;Wuuw-C5=%k<5l|&VOLRE_s5!r0WS2S{Fvz7 zo##=ufA@TB91TjWr7F=n){kmm>Y5e@+ne11)N>Jua z!PiO&$58_EKCy_8p|W9ryUTk{p{(Z=O%k2*s4RH<2mdP*sLb}>)0@ZIP+dsd@%0*a zQN^Cv$nW23P~w&o&fNOKsOVAQo_Pm0R7y4w*Ex6uRSwNAoaUG%>^m_D2MHIdYYxgQ zDSC=xyKAP)WYSUbS@*Xo{#vM-EMA$>s24p~%jR6crKm3dJG0GQUzC#j@MBNnUKD%p znflwq1*l*H`?LG|4xscw)9MpMA5q;KvgF=Fw@|$Oz8%bM!6;k&R^0t=T9h)t%g)3< zjv9+1#+S4&qUsLbO)Dn|JWTJ~lCi%$igh@ZT%Wyp3+Dj&{Uo7(+R!^^HI3(Z+nA#d3sbS@BK%2Mycc}=Kd zj)db*j|QQbW6!^}r}v(Qagp^x1#!SMBP=4&xs%FcFM;cJf9d}3mFl}Y06a9W_er| zZS;P1W;&9RJ3ddtxi%_2ayY)U9 zHhDR9GoLKgo;xR^r z>4OwYcsza=nfjv`Tp1Q)bhD@qze?L|9Z=1VN3Zy73GL*@uVxuS_J)Pw^0TZt(kusX zjq8&o=a_yR%PlMRi0B0#7GU2cc8`R>V^qYI>Jm_m8;;`!_E|IHGEA5L$57IML&POcZ!l!M!+is2Fmb)4S21R7JX1INN{{b%C z_C4d;n^-8L&9#dd7=~1S8VV0;ODL*^ACImk$JKx`Q zZU(0c8O$EJavqf@tXvE@Xo(3^vsw|CIchGL@zi1W#V8{EGx`~8;mb)Tc7y>m5WThl~R0#N}Gjs4VC6lenVo4hSeKX z-5W-mH`0lVO$1yfB34jYX!H?E#VAz!wX3sb<0(|~oQG6>JQX)f>gH_;_>Su`4X!)n ziy%Ei3JbdYIb1p$IQ5os5tUr4vb%rg3U=NCzU(R_xH9cz!0`QPRL1wnBWKqX%E@*} zl9Jzv>PEIa6uexBnkvZFefCU3&D(4Bb}t@6F*j~+d@c3{Rhs%)pHgZ3q5j^GOu0Y8AIex7)s#?0_)QL8h9vYttmOXu?K`Nz@YpfO zNh=h;v3$E#j~6N*>v_v?<_gLY83>j;M}?|Yss>HzbW!Q^o#qOp4{@5o$NBLb2~>D8 zvS!Sb3zZcQ^Y3q;K)J!>QDoPSqTGzl>s}vFL=QEzi9e4V!ZuGtm9AR);N&ho;fC!^ zsAj&$F9JL8x&jKagupv?CVQ5o5c=t;^|NnOhV_R zcqJCq1sN}13DrS)PBueihthFDDkZn!q$KvQn~!t%yo(C9_40nm--D9AQE3K7Tca{J zu^uf(N|brK#m_JIHYz7pY@xR&A?z0e+x?%>qnAzDxksaXP(`-wjfdaQqu7k1R{lmd zR8I79RJrv3ky`@leK%3~QGZE6-7l!5bsdc=qb5o+ zKmTP!=@}|Xb%`>f>_9OV#qZp>rck;ANy%NzgF@U%TRv=jh8leo&&#N3qN-B@f%%$B zC_B^Dw;?bH;G;t`c9M+*+|5!!WA9M9<7B_>HV)LVn?8G5 z$r4p}XZS7i=Aj11qbYys|8fqM_mAx=5Plvy^X5Yus>yKL*AzzJ%Z6VAr1CjXN%u<^ z$FeUdi-A{|KI$y0xk*PX&QgJb4W>S@es)DUjPm6>2Mtlh64CbVbEzosq@|?+#a>h= zN#eNpfgZ&c2tQsoq<~^u**{sPUqyvho*a)NcB1H_%Z6RVe5fdCy6D(?aTLLtS$>Q1 z8cOkcYj2Q~jvfSrR!9k)Kn)ru71rNxq3X}!f;8v9qhk9_E-9``sC>`;hNo8$$~0cN z(-kR%()z_Z$By!&lH?ub6ow1`>UH#A^&>FG`Vj9-7o5C4w?a@?5I>9e+Aa6~InIw_ zAeES@!0A1^!xzdmP$Yv2XF!xpBR@(eN8UTzb8q4^^OrPAx7J2`rGimQ(>x~&-&w9hh6u( zLp<=4QqL=Xb=z^g=$4~_VH~(3+1_D`UmuFsygq7VCy1lMBgt4oXK^``aTj|oDSosr zK1W9+9bJAJCcmeXAE#Kl@qSL^$01rbF7n!vqHI=fcXB!}T(McJ+u_zt9B}BEK+)A+ z^w{X|_UrSPaQyEp;ny7ZG^&+4~qSBTBwv!bXm(@x90OZb>*V`2;)7BpvRW z?YJQ76NQ^i?Xv1O|ooY($ah#gj^sVB1Gp?|et0#V~io3Rkcwefm z!`MMlH)nGRuIT?5uhhC9mpjvPk979n@(%*H^(A*=yz7VyS87_C=I_mCE-1%mrLR zdcG0&c;Iw)&YPNE894vrm*EK67JP+`Cqg^56Ti6V7l8)MF-Bn&Cu*wE^~|C!wu*DO zLip@p{!{?U<#O8AXMYmceMLt*mL8&X=33z;L3fmp{4yk@E+6OG%=ykfokTfBQ4$Xe zTX4g8n^+`o4SFH(6Whc83?(@nsjr;nMOTaiv!gg7QHECh!cz2lTzpt?WJtdUC5D*c zPXBq7X4>>J?`aZBqE+1KCOeH=IP%nP-YLPgLCsgYFUaFZbIS2z*86e(1K9^C(GW#8 zkH438-;d)Io}JP0T*g(+DI*QyJ5dJJRbgv>VQfySbL?=|Z zQ9)>vbkVlsNZ{m6u^ZXDP{ieC&a=HWDD$~`@#V{dD8lb?n%4L$lvk0$?2;XhD=43N zy!e`ga)<;c_uYy|87ljuT{b_!>EB5$zHa42=>Y@ZhaIJHx;b8$@GwSY$F6sf7HOb3 z73U+Hp1(smOsC>WC{M5-Ut z%j4vpBcIr+uHj6lo=b1MS#bnYZ`|zOKAfAC_&BB63Kg+>7VImlK!MRN>tjyP;Rt1Y z>VcWtC_}paiDBp*E;p+um0Oy?=SLc)X=$D#eZ$;CWUZq&!m~)@vA6Z zitqOGUK3Ow8KRx@B_EY4oFLhLl(5egJ(j8Du7h91m0QGZ@j;JwH935EpoY>TZyDw3 z)uK|ha6O$6e&pA&O-b?G0~Ej2x6nyu2YMnAc*Qd^0o#fOyO~tdqqN-eu9x@oQB*I> zx9iKED1f7@`qnpj6im#{S}fv#lB+8A?l*ahZa5!MJTp>^Dk+@=BTLM%&pwtMyF6pu zO?@P(@Dc^C;ygoq!OaTg&fGlRQEP;rtUOYdr!q&S9qi9SMH5j5<#@EV+9p(WNLQPI zGZ)p^cV7DHMvGeN24=5qzlSP&uhVb3DT!Wuky?N1c>^jrv7&Ak8-dE$Saj9{C93%D zx_#HO9?Cte@TolGBx?NxlRI9NqF6{hlrZrc?V$K3I;Q-+iRfWdA(R7bw!l2$GN_+h#a-DF6$rA zn?p}x?(^`!$wwKbu@`d;-=eDdw(zHKTCm%#1EaT;KA@IomxCqibJ3$@O<&b%!Z@l_ zBG2^6Lb(zlL?qAVQJ{Zr;w`FFRMyeMAaQCZx^iNWzyB%~in?MSP$Hm?FTKv*%p)a? zTEzJ`64y1NmK}P}o&1SV%X1R5rJ88e+Ix_Cdigzy$ygtJ<030clijTQ_1Ga)G8MXW zT-@xxDVZL{&sp>+eomi9@pIlhik}naQT&`KkK*SPc@#hA#-sQ-DIWPx+3?7JN`puK zQ~o>hpAz4Z|CI5L{HIiRR+=bWSXIoTY=&spXueoik( z@pE1|ik}n8QT&`qj^gJOauh%3j-&V=Od3b5r1y7T8eaFqYr^Y(crAF{zuzmt|2uX6 zIk#}V+~2*2f4gjE?(*mV`TyVj)-@>XGZ)m^Kntq9+TY|KMSx0@kWuP89#B1Ep!P%* zK)vUneQKyLC_cH}Q&XD&YGEf=&cCMxJFJ0V#+lC(wgp;Z|E0%~zn5>q19I z6#~ldShX5GJ3uw?!u}ZI-Jp0+r!D=;6ex8jauY54fufn5PS9K&C|Jz}1rh~=vWC-w%v?1n)=ZprH>3rg zbAwzI?uS4qU7K9m;UVw|f8kXlp9Ue8W0Tx!H6Xm@)5u{?BG^~Iw{ZV1FA$P7*%k0Y z1O&WuN`~fPm=hv2Bmv0k@;l z{h{jJz(d~c-TIXbxbvRBmsoNDF40#(VRtft|E47fBPjHu`(5cuMpGdHmU`+PO1#01-b zce#6Syv!u*tGGVAyTuju?#2;Sk)9y9v$*fFd>rt^OW#a$Tn0`?k%|`j9l*`hXAqNe z5%@HU>zSkGU|;4)q{|%{5Y*C&icVw&PThjg8;umOr&=~~L&z@Rv11`OxZ4e!rxJU@ z4QqfW#CBVodH`_VT_0sj^%VHeBy*1qTEbqaHnSmKGMq`?DJ78h+k~{~v z?n<6vC31jubKTW3qBXGj^}1WNJ*2S7yMyWc4nv@reCxQ~Y6{3EjV)F*AHpWO)Y_yV zKiGW1+N*ovI*>b`Znp}_1Y%ygi338xK*DG2dWtO)$adE$ADyQGa{ebvK`U`Uv3$sO z{bqY0%jbA_UAYTL&Oh?%)aeCk()zDi`}1JKttX9ge20KijQ3JrUpkOU>FlI=R}17j z$Mj6E?gf(dTZ7j}Uxy9&sE&Tl60CO)5eRas29ge1_0f4fpb{g~6|p7)a(use;4}|x zQXbpwcl<6;eC|qF>g)sJm&_+#3mF30+*cCQr9H6eg7i9*w`{O}YP6s*To9;_%Nu;A z1K4^-y@Ks>0g&`F%P{j?0mhZPR`;T{VGG+80Tu>vV9@JpU9@Nh>L4K@rUyE(UUT-k zfBX(0>);D;pbCWb9Zx?UZ%79^QFcLf(c7@uPLk8gAqZ$%3Wl$?9s|;A*Dre4(ZiNU z4}(d(xq-Uvv;O?FDX>s&+bjRZ1!x3ryeHYk29yK0rK>4?fV^`{w#mzju<35>Vl&}0MU1d}WJ00C%w@r2Yom1AZLxoI%KmIrU zpZ_nZi0oaQOi$UaYDoW*_V<4k$;|(fYWG){%}?36{^s&ICyU>d?d*TK{?Dc?+J8)0 z9R4B7Lh^4&S@Qp5DT`rTY=wMWA)o38zjJJ)2En*G)gd{v-ejs;Ri#<{AVS% zpMc@Sh}adztzfWp?phok03$me7N5NnV0imrz1D##Fl^#3>fCt@3?J`&%ba5XMnnf6 zvzKiK!{KtqLo;s&_X3PuoO{4l4U9NcX}(4cfZ_M- zC^oyxU?h5K8<*D(Fe(T(P^dc!hC)L!owQ3}csboL+f>wRAxrEzkF>H2WT_wSHF@R@S&HrPIa|{qOM76k zF}nn^)La>>*h3&oo{Ut4gch=3kKCtHPsrMTSXCt}g&-H!A1q`cNM5O)6Vi~S{61CO zQ=MRkrstHSD`XvVJJ;oZ8?wX|$Pao~LY7i$)XS^}g1yR1_hu&vaXj#fLn4IsNyHmM z3HH(Rvv@g{P=D9Di4&cWB{Ho(Tv7&ElGk1sO(;N?sAy`5-V|iXre;f~RzcQ*={s2; z{UJ;0LLB=z!N0(T`*t5mAWMUIbg`ZtvQ)%2(nT5(;yJ&R$7K1Riu-q#?u~!2bZ`7S zOZP^?68FCrUUF4a`!l9m>b88sztXt;sImO1j^$dNfA;@(>nrIg${GH_noa6z?sD4f zqVqqnZj=4{t=mLf|6|u}yH#9{gR3(9uhMB%Iye7SI{2^ZSN%A6{Z-no+O=Pmj;r^< zVYQv(s@`FCwce^9r`7h3tNxu=@i~;N%2odktL^P}{Z(46>TThNcpX;DsjG6$-fFy# ztMNMsuFBPVPHXY}P(HU-ujIFShadf{;&q(;tskc~{fQs!G_UGc%WL=7X)WGWJdR$g z<<<5!tMzTyt=3s1_U z&#T4Ys@%2Oe$}3J_-}FBt=9Y7xL>t@X06>CzSVjsSN&S9UbliDaIeL&hCBQR+=73V zCTn<7SLIrJhgIATKj5Zb#l7lxZG4GtGEaM826b~yleB<@AdcEc>Srr z!+*fNYTtg>Z}I(?{r!8mPy8m1-{Gg5{(zru`kzWd^sB-@|7%pb2M_6M%PDC50cR!q z%W;>3*(vLPfV2|-`;pdl#{aRTm0mwVL+tYo^x<)MqW9Ljuw78<$vLfHV2qKE$iFo9|8G~7%U}L2DUabh5`^=;|v!sC~=*t$l^`gM0w};cx z@gmT*s4DPAW&#y!`Azbnb3kWT9@pS119T1Fd2HKm1NDYZ*CZV>pqJ>#?IRZh+T5?U zR~YUAeOkz?q&G6KRj`vPU1u-QP;Qp-3VRLg6Bi%wQrp1x5BX1qIvZijc(KmZ(~lsc znCPX;(*q1PIn4?xT_7FLQl|1k1SBRlV5MqlP`y%`Pc)MR2kxEk-|k2RqVy?yt`*z` zws@v(UM+RwQ=J)?@h=74k_BdzN-9uSh$y2Ep$=65E!^?xwQt^Yfd-1fES|CbE?N{;8O z&YRho+x==|PWhJ_r_CK)&ioIYijyiTDQWBKEBwKXMSj}c+`;s;lbO{&lJ%D8-*C>7 z{g0iqghS;knX37Lf&ALjm`E}Z;}OT#LSjAT&UqGV#_AxDtB9KIavHM97|7o)-EbNhx3@ zWG@NAc00c^S@;2ZE#3A-AFYgPg11YJ&e^&bNIN#5@)zDvO9{?dNp zZYMBmze@=$%K?T2KB}`1&43QSy_ytv2^gekCbzt_2O5WNJEf-)z}VyMGiL1#w1J~{ zCkmN>F7D-pK;tN&6JRN^U%UQqr?kx7YY7-e zJqBgtqkyrH!Rs@d3otshNz)=VU_fOu9p}1%;qd1!BX>*KcGJxu{;E3A+T?aL_RRq8 z9_x@BDu;pI`i_ng@i5StH&pvwQwPS)w;J!aYz3Oy{_O{QmVtnbqXm@$Vxt$#t5Bdt{w zW}qh6x83PPJ_wALxWkSIsKYi!`YJXiGhmpP+fbhU3>Y)prsLokFgomV+#8k(4ErOj z_3qCCg9^QYw6+CoGh@u5cw7Ut&Ku5{+@1qk$;{IE&Er6CmP^(8xdrIx^$h|(QUSwj zNps?=yFgR2{qadAHlVw1>9y$N1=M$wTfIo6fOhFb&yl`EK*#dBGGggF(3hz9_@S@B zsJp2`&EFpw)g-Dck8c2m%nLc18zX?OQb(WpjRPYq_l9 z2B0m!W*v+GI?U>m(}r$uHG(0YZO z?w4=_+T+E1#4UvWI`}Qf!(JI^%RY^g37jR2&-ZbK8^nMn=Xy%uhIF7isZ+zK*9Fuu z9a1djAAt64OZr!IR7C2MmEO>TML$ZVRAe_4c<@ zasc|hvbFm-Sb+ZJgOhX5*8}6(Qvo)M8)0j^l!*Kk!OuRU=iHP=z!;<&C8I3|j8+f0 z`_3=|gV5_uJN;FGVMhyV!;&Oyt&=b?YIq2=_ar5YxqS)vW%D&_41xZDh*aJMYr^>N z={nsP5iTb-`pp$*osk>MY)Ww&ILch`jZRbHp(S2P&N96w4$zKcT zeR%~R?)wCctox@}>bC%+l*RVO;c;Ln`Se9-+hd@s`#4#8=@2knWR0wLm;;*n%pM)D zFhc*uG;I%T1lq6Z2ea@J(1pnatm~TuI>v;S@10&iPj`Q^yW|G9z1b3K-8AcBqxh0s~Lzw9IxTV4!q5*nQ$OY`tp7 z9I}2l&<16to{_r%w83}o3-P-EJ@+gAm$KJ^rZ9iW?)p41Fto*1JdXgHuo2=|gI=Kh zazUJ(YyqezRB1d}D1bJp@AG@#8% z7Basr_m}n^ihP9o9LDLp=^0^O`RXYW{_r-Tzjc+zpWX$!!e{dzC=!6dZ{ysxd;LJm zRw9{K!wL-jG?x3`Is=^o)XoS09{fVK7S$>=-os6)pp7P zBX{A3h=vpa;R_!0*h+IPn=I)PVIEs>*m7VL7)6yP>R$N(qe0K(e^?>2ZIc zudT%v&If?;GS5(X*)##S)ea4FCBk!cad-qL0$tZScQIwcyd{SD#?IdXdIh5Jy;K!I zbK#A++X!KNSlDRn(dGvlI@4I`O@w(tXWx~Tpc_DY+iQE82xoy(s|txPWypR0-?GhPUU>T&f4!xaT2XZn6UH zw1eY|udal3>dCGtrKmrT!B+opE2pV>R7vH}ckKUv-bN)|JvsTm_htJ(Z{z>LZ6sGX zB&?*YtfZi)`$vZyr|gBzEiBAWx%~My!T;skC^U0KpPN|i2AVl>=?k%Q5t^~$@Mz~& zM>8(I*?JQTXy(c>FmLujGk2U*$os0$Oi(2IP2wkLCe~rLd@dc$RMUwD z+!#bNE$^ZdKMkRozFmU05~gToXfZW-ZWztH-O%=F-BC32;RT0`!6!7k?q=u??M^hi zarDqJ5_L37<#Cjtb4PmP?FkOru%$&;<=q9yGhJPTweW1kDO1vHPZw zpjm0@_g}^cWqC?Yt|m`3tM**0)NT;X9+sCqztDna4W2c(XepxE6QbGGZGmX^jJq8v zvlNzvJRzClT~ru+4GDF3GX^|vVhru_ByC@J-iDE(w|P4^paoEK?d7b->N0Z;f0iwG7#&48nTaWA;_!qCM0bT>quUn{N9Qn?bdC5IzW)) z5vBWuA=XJP>}cQ-Tb55#MM|kRP*k4;VtMi-w9C zgDyelhUuN&N03We!eTEW_S~)7LLLK%J}7t`(`h;=n+p0s&I zkUd&-9JvsC;dFw^{nG?l91y;T4`MHxW~N%+CCI)3h-83RH{Gx&@2?PKT*`uo7Q|jU zs?EksO_0N--?w)_jKeyTR|Ne3X;P!_;!c+F4$yep{4H(MJJ6WB)?-m=1{zDTl*Z&m zph^5}Zy!%3XwtMSAG^WDJnLl^j!-yl^D3V?lXes!9t?= zj1JH|I(75im?3BycwfnUbs02IsXWNn;s;Hef~QFm1bY_}El<6_1)82Nr=`6K*Y6c% zmxa}XW@z4HN9In@OiYR&>um#~Kz@tBvMz@?$ZxYN6r}tB@;j}0W8M(t z-nXLhQ{O>efXA|f`zFXsxs`1_UGN!CzsY`f$I z@~+_67r=qVyuop_;28JaS#X@}Qu9yA0moUASi7khaGbwC!cyoAj$gVBG=!JH@mo8K zoT&^rk(``*wtEnqD5Njc`K|{ix+VLO>lEO`dLcZ%*chDlXa(F;5d$Zl2WhwNa)6Ua zkMQtW3vk+>pLy!l0yrrjuMr}t04J?>miJX@;H013=+}_|PA4=*yFL@zoq6yI?K1=? z`x^Cn)63xG=Av2a@Ex44?Xy!$Z2&trqQVWisbF`l+s8cN71-TTbiRDz9@srG96zVg z3U*N~S^1-ca_ZxYdcEvmS7;X-vd9m1bsdcoNseIG$9REUfKYEDB9i^xW3c-mu!}P) z5A2rN6sWoRz@GSJZNc{sV87`_G}Ceb*wZaN;y#@M_PaObc-;RE_Izg;<$521y)@9i z-*F4<)uV(+w)=v;;aK*q;M-ttt|8oHk^uIO8uzo)31zRyvQhQ*V1Hlv$y2Fbun)iV z@Vl!k*r%ZI`S6EeUrgJ=zk%TQrRkPe{5QeAZ;z)SQ9syE$rD9(r-A+Q#*z=k>p@sD z_0uKSmmsW?O+!w@1Hzi6RxN!IAgp_O@$MUY5Y|z{Ct@N&*lePTp7an1TM<3Fo_G(0 z9V54ir80xCQ^EJT&?_K()otmUN(Bh}Hn5tyXMym&ea@ko2_Wp}ro7GUBnSt}-J-zm zAROX!I!tH~gkLDi>8DwP@beG%t#=fGaHfgE6v6w+x6-jPf*P z))Qp=#nId`5ZQ5Bw(|UD5aF`-TAy$TIQSA0x9r;o9PqJ%Xv+rRP`-8Z_%}P?&>9bP zN{j*y^$ilE1pdKcymas5{@uV~-hG|-SR-)QTe{IuumFec{H-qO1mL*J_u{sKF>v_t zyLlLz1Bd^P#l}o2;JA4pq|Jf~ID!~!x^5E#N7#HZdq@ay#0D3dzasdLa#rIH83c|z z19mlwb-+;}*tstGm=;ffeB7Z}!UXSO=U^bH~3r zYW}C~@09iq|5v#pFBlbL8Fq9(aSUj&WBoLkZrzJx~NBFyH@ zn$buq*E2YBf~T4 z19utF$OL_=EDp>RhdOWqPSZI{vLMrw5${V_C36}+RevKfss(OJ+H4WUss zw<7w?IyB02`;v*zJ~S%a_+Av|&?sX6yu1>LM%Aj`V(*3DIjf`ngR?r?zjIbcW1(Pw z-rUJl-pt8d#mWAh-RZxjEBxz)UmdtnuBv{0-nORu^>N#p?$-x+e>v5&{Y##~U$R*K z>Y(ti%HJLo{-XQwpzs&vj|YXnD1Yr|^P1Ae%EiUp=~q>4tj?SN6LrR(u~Hx84dg8hQ;Ns|k{Ydi{HUR?5uu?{o9);3@}Oc-K?B`4g9-# zRUPfz?HyeIq?uUF+>3yKi1v?~EN$(7-9<$3AD^w?t=h`!>OT&#Yy1D=KGKtp4sMtK zg&RqXt;}8il?g5E%v~`(5Yhh~bC;`!j=P(ayPMewb>rWv&dJ>3s=3YIH2;5W%SB)3 zxb|5U1F64G^7{oEsGrpRkA0-r{>=asZdUeAX6Cjoe{HAy+u})fl#cxy`;Y%S?Nonj zC;V%l9Uk@e|Gffe{vZ0%{y+4k`&-}V=+*3B8qll7U-aiMy75=~n&1~D`9&#y(OthN z{V&S=i?aWsdwx-#UsT{175PQQeo@I^^zbh#_lqk2qUaY@`$doaqT0Wx?k{TaiyHl+ zroZULU)1s!z5G|Y5Aqh%_3k1u`w;x2=Y&X@I4o00X9)>k9OC)R>VgCctVR{@4#IR4m42ja273FL2BT>)W8`lQfkT5-6raXBT z5;5EJtZ<4136}iOB-;G}?K?Hpb2Ne-i5_qn3?_YnL}J@3Pn^$1!r~U!fAkt6(d3gq z(ggd_zM7}zkK+x{z8miXMAaUkeI|0IPlz~?=;cROa9_*OJ_Y`)$Q)55vM%OLoXCJg zdtFZSQ_CY!{unXleJp67hT`F_1JAH^n1>IOMj~OEyWQ6xdn4f#lcTdwh6?Gm9~ja# zDHc+wI)`U0G8Z!Yov;-?f2@#RI?aa1Nv@DJ19|h?$qK3Yx9)lwsu$7+ z@oK17ohW3G@j7&~{Cy##e%3x|s@sM1C2Wmirs0K5vquMV0z?YwC(W*H_@x&z`G_CR zh(1|J`~In3|wi^v-83(>m-6DLY0RWC(2vX~&Mm#%2{4 zQV+%G4UgCr(yFzmKD=06$jDm1mA4XJNXf?9AY&q4NM&GNCtBTBNNLHaJ)LP%NGtZ- z;mBj}!d(kQUsh=I3K{()Rb`)R7BZwYDofc)7t&wdZ=^0Ji5NNDt3F+xLae5#c6{eI z5M@v|vEb1dMEiiL6Y@VHqO$J0ciAct=~P*nsK*b)cy-U(HwP}nFubizcB389n@4zD zDWXAiH5A6G{zZs^b&cs_dI+MD=)RZzKm*Y=b!6W@a|TgReKyv??1}OH&B_<1;fOIL z;eBaOETUICe>ShZ1<_17J`o#IMohBJ3d8S%5EDbO+}N5WVhYF?ccMOs7^{gS57>?) z`t!n5F2(DJY3TxS4c`UCXw6KXBX5G3Zrf+S!^UHXysmru_A+9k^uBW*>ref9-}qz4 zNwh0h<$7^eF``|#f8hB_IAY2&mK^MtN31YDYRg}T7@Bd)=hb2mQ=O%RwVer~zp#to zKDRt#;+1(<-K~wSiz|x#L3u0bsE$ELmsbR(v( zh6UesClQMTH~sBrzKFqM5^wjz60web5f}((MvQm0PmQgQA*N5e&r?WqA||Plqon)8 z5VNu3J+>#W5%bU^iH5ymh&5pQ#V37)*kv8QwvGoQme%~doL8R_Yspz=Rg!0j)jf!4 zqjwy!939$aXq<^yOgjv($6rM3DLre)o!T(H*sH?6ImF1!=e6564>7x6ipZi}`hysV zfdc~4-=<(JQ977ocmw;H=~ush#zJH&zekCG%b5AqX|8rsM@E;fE*KGdJ1&yn_ zi?z9hmBCK7Q2md%OTYb}=P-uf=A8dDX_4vbsjD9UXK9Pf$;HaT*6CkJTBQFClUDBk z+N5wS3cbUq2J`iPH;kUjiHcU+nYSY< zYNuWQY%&WbD$@C=u)yj4jy#9yOa*rCQ^+0A+>u`%lN&QxB+cJOh1(g&z4+12dZgTo zAMfxLrfzfZ$aM%25bv}fVxv;t(UZE0X7Y|+;DyNYj{J(Jrvi8MC~L0yv2sT~A#1B0 zIpvBU8STt-Si1Ppj$F#_f2C5AZ(HB&+`l(l|1WYpz23jGUKn30*|}dO<9gra9XTnM zig(6AH$)bjF)G8Y_)%K35wYzPQ4rRfM+fQMB#$Y?A+a`%ti^XO2$Em1)D_=B@)pSf zjc*yy;RD}A{OMHCp50bW&FvmYa^&0Y2SH*;D&OHqo#Pr3zx2sTLTCetCS4=jE)PZ` zkEHSC7Gmh&U61|l!k3VMb16C15Ea_z{LT1Op)`{1thr+|dl)GYU2eV+?u`z~w%qqy zJAn4-rJ8(|wLu4G!}gxm>qG}zzlUB9Fh>Wj-FxwE<0#rcbta4TYzaD;7ITTC%@Q5# zU8+}AS1UXh6KfKZc1Fy zLOjCt9WoRbk>F5#aBH$V5=?ruZSZ^>?Ju9WbM0pk;dS|CB{n6?~}D#UY@SG8=|74gRF+quf$5TC>1=}$F%h$FIk>6Pef#3wXw-;leGc;D!rzriGlc1!j@ zD3bYxglEp{#6Av1f(O*@ZoM2wyfldbhncmxo!#G({tm<5%FgZYuk9Rn3e5l7L`}8Re*BciaczTtlB{>xI#}D< zxw)9T{pG~u|2bt7{x?k7%KvLqwt7*qce`~I(ohdNRd>$@n z{d7&p_P;gzLuuQ)*`(YWsI;|Tsm+>)^6Rd5<)dt%JmXppO53!_JmfO z(?Sj5xd4J|=}@I12m4e#+BDl^Vz#G)sqM+(;w*ic{J_^;F-I|9va-rrsnQwN;2vn#p?Yqnv2$c*f zlu-%yp|Xr_a7jf2%80~nzE}~0lC6sqH!C`!@@l>$q;WxMl3~&0#S>7z9I=&du?S_{ z-!@)$5<&5UL3_JGeJJVK+b8;|9xAHl?F;47prjn#6zup2H4)p@Q&hL1-b2|eFxUbb zmgyxeWsX6^<;xcamh1s%8baK_FA5D}B9;7&&!Ik(HajO{66zU)Kd&pPLe15Ute7|+ zs65?xP1fT!)D3?&Yd$XsI02gP1($b2?ctSr8L6*OWpQje<5mOIws32heYJ-MMT_|r zvtXzVoM4cgsR!J~-Y2TXEKt|fSMJt62{k#7PD-htgQ|JaAs&l;P?qPRPEc+PWe+&(1f?714 zpZ}@{>T0dZ`Dz|Rop-p{>{WKCw{*$E4H^M%wQb+3Fd5)-dwIoGGN3-qXG_Vo1?tTF zh_&4HprMd6N+X~h>eqKM9{z9vYBiin^dGE44dt6u*#iVnyD_);<3J?TnheIS8k~Zf z7@V5j*F30I_7^1XiG{ji`n9`n$e@0=vm?*t}m{OHY6hYL`B!Bw6$)Cj7RCb(o!~`{Co5FiV5Y#-Kxm{#b0}T$6DFjRb zfTQ^Gs7?7OGz>pICmY@b4QVIzXpbC#`tSOl;n$l07s#F%l(_}X_=RK$$OECCkgP^uYX7a~mI@Agl@ZNLhgPOPU zihN)8K`p)Nt)65VsQ<*sTQ)KUxLbP0E3+nmyMN%s3AW3CdkbPly+Kfaf&f}e!lAZ8 zP2B6sB-9-_I(6BC8megPKh>6E^IRtG@o8g%I;w#-qFvZ^>r&#AYFem$L}zJarvNqc zTV_8_TS48AwcCNG%AvMgxAn!mD^%a>iM$jm0#zvw?@HhCftuiYKBFcks2v9`SI_eHd8|MyJ{WOUfSzC{p<+TG%1vgH%mj^-3(W=0Jygd<4+<*PWBQm_9~_;6s)BQg!v}FtTAbb+4(mq@%tC@is zYo0qjq|s1An%QSkjQRP)2O`VeQ&58|nH6%v{BmCJ_Ny)-sQQ@1zC_^(RTp|KN_}oY zW$S3`;iLPYN{yDFgjWozof_li`@TXQ`TY4k?+u}DNS(_)dlc&W?)zmk4nd7wLB5v# zW2j14ZX|8P)-ys%Cw=H86u!Ab^3huWO02DYE3~$u)MEmFjZYCuW|!m2s^g(#=?RK| zB@HEpGfTbU8BiuUfbX8E~$s3llJq*Q_0i@^Ru0iovpO#4XASktYaPs?82PjGY ztSy*w1d6^?9HhfnLXoxOmWi`76p5@p%wAZ+)@vM@%(MwblsV499GOr|xTcqajh4pFu>EdGFEskTIzcmu_%v24aPwov5vXd-E0FBHj(HV4a}hoV4=N1Obs zP@K|}&mR~8#c|X=4ZDV+)M`c8MjQ_%tt?}!6!TD2+_JDuTmwbUM83V}%AiQZ z5hzS?k8BR0gd+Cx_Dsz^P|PAxMR(~olA$~_ z`TGmmzrTnn5%M0~vs5)|j{OY;_;4aeAZE$!&?SKSJvVs}Z6Z(_vmsf#W7Cu_0-7lfq zpV>I^&}XO?-1oyl*b%CTTOK?#>VW!Ew)%h|La1>OJKrs*4b@DEy;UZD9NEL;32Bc8*X|s0t{R6SlX(@bL?WPch0+`r>Ybk9aqfGxD7r zOML^?4$q%)mz;*OpE*tjw~s*mhw?$)nFPR1Pm~mG`~ZB>Gug&Vrhs=Dj$3^(4UGrp zN%Bj00Dt=G=J2INz|%EoeRx3)xQylJNxPgeyt`qt+cyf!Pfr7PAISjR^P3J4U(Epj zWB<(Q4MJ!*tF55F<`1>f_Fhj!vjIo)I_h-EBfy_?x=Pag4jMjl+v+|ufW|&$TdIpU z0T(K?@#Ec5sINcZ$~ajHwaw!9FO@bxrQn;NgkwLUVnNfAj(ZKN=#Q0}EnS3$4zr=4 zjR3%(x_w`N#u#w8HIEnB+1PzDUx`5mYM*>-KSHVu4VK|*Cf?0FV%Uucrz@7FZI>xvJ__r?~2Jd48ybQlE zrJV#cT*;JBR2GJMso)hiFEjiAANxcTFg1;7O# z)hi~w0=OI#53+CL7(RX%K%9i(e|Y^X5-u zz}J7#p&R-D^}#yFW1d?>17XR6V}&2ozxPU=h@%GlHO^gTrQU$YRppn68v;J7|DDAq zCE%aWE=g2}0$zgQJ74G$G#U@yInD4IaEUUX7@a=@&gLLwMo(b4vop2&#vQ;DOMNol z)WhUEX?nqU8E^y?+_hQv07u#~9{b=3G-M5ye;|kk{F!hIU)hU*=hpAgtzQGYZ|^Zb z3VFayQGNDQ6b2ma^of~nGr&>qy|r@s8Z>BJG$Xqf4fS74sVb>Ep+P)g?72t{;3+c- z#&)woTq5TOlwqCtk zMqjw_n0*sny_XpVjY4(80U7boNM`(CJzx;<9k#EVI|1+>y_+=j4bb>yZtQ4G04>%3yLH|cRfIE2o zrt$qEz~5-nUmBVRTn$`*GQ0@*L3UBOl77IOI?pXsJO$jjRt~-4kAO3*QF|s!01cyD zEmJM=SRLcgV^_ik4dvFdz9Fvxzl$zi$Wj9uZ`C?{xPi(2lA?+5P!%-hysVmY$NYA` zqLTAkIN(&8hn}mq0`7tz8F@MnG%zHFXQj;mK1#HD&~pPC#XSVFaUFo4>+v?A!0fI- zpF$@+1MrrlrWK_t(0Gl$>gW$fz*W+{@h8;*oD1Lg?YlD2koWZNQS!%ti|45~uS~}D z(Wva9shcV^e#$!dvO)#${L2xAB}3RaN7U4`o&ipRe_x=KJCs(&SMa{` zf=WcdtHf0VRpG;$_LOu`IdfQ#jQ$x^&M$?UFL6SpSb|#zX*N{*?9pDcHiwFbqO_w* z)leSJW*x($4rNa5?CeW(P@YpH@9yIP?*;h018ti`j+sP|h#6^<}jh$_lBsPn`;ZGFRD! zua?f(dYuS_xHq6oTev}aFb2v4SlA1!W1;G}pwVMW98`N<)~*Tnh3aqiKefXJp_1VY zL*uCQ9LUb%Gu|{E1a~UwCBnRv84S_ahG#Xr5IKZoE+NfFqMMJ5_3oUL&{J& z)OuDWa1tu1WZfuQ&Ox=jtET8O`SMCkAC$j-IHSUM3(9P3`2l=Y{NczE+e*&VkNL|<2-Y=r8|xq?`zFliBs<)?)Torf2)s)(V=*KNLi zt{Ez8o?8Txj6nIJ`!432?od{z$}3eCkBxuqVjeXuly>P8oHbg9vI{>S%U9Y#d9-(a z{@@@~2~p7ziHAZp3JN8XCWC5iO4EW!H>l(^;$KiG#Pk=B+BT&zeU1%Rk6r&aZvA!E zs{fy#wYvWMto0ZDAC6fkX&#Doh~9+n0afnbMt;CF2mRGM+eI*K{?z7C{BfAKqr-c? zkcC<0kKSKzB*1Kc`;&exN%--s{M2G|AI#uohG|j*V8#}weXoQRrUi7Bj7T+M?$k+( zAP0D(i?kyOTu0s%sRdZ@j`Cr(h=GNJRfpUd7-7C9+~Fme z7R>Sc%$Jcj!*^>dOH-hiMf~TS4q2)H1pW-N|tXRkHyHM?LD;;JT z)+fYG7GN$uY-wpo3+7*cd*1Tx2qLmqQe-{)0}*Xiqz#66AW}K)r7WikL^2Vc;MK^B zh$S9=9ldOYh)g~c(caZZ#O(}F%V>j$O~>wE9Dj}o6UnYK%W)xsQ4)vZ8$5_;FPl8e z4PQi;Z3hTar2sLoW0u!$zg1m`GM@rWbfj0$lGN%V3NE9S6l01Nj z&T;wt_!*3dpOq>N3x7t$dGzrCsl13(BVshjjunwm-2Z8D#TgNbB}UGciy=a%EjgDC z5k#oO>>AnTi-_O#+F#ryg-ECd7wTvl5%Kr#>`Mjj5OISe)3ISwL~O9Q|GZr(B6+{J zE#C4gA}T8I{c%AO5xKG1>^q!~2(zY$14d&IF@F?+62CPj-&u02!D>WAK*_Ih3ezvy z(S;XPxyO{noh|9uLk08Q(`wmt=7(~STrp|Dtq$85p(OLIt7etcu^A%Um zQAAQpyW+?yf{4EN3y&UALWCRlUQ!P>A|f^0CSIj6*w(vc_-!c>5f%|$afq`+L_&2! z=9;b8I*spl?LCeNJ8WNNslG>q9=+>Jp?!$x%SM<>sv;s>pAX_=3q}MH)xJvajS&G& z4oi_+G9r}rYw-w}Mg%yUhfxNdh(NVjG4OgVBG7Oi@Dcfj2o7HNF?8cVgg2V>dRYq) zK@E7_mfS#ugX|)^W6vW(Q|H-U0(V4ku9f|y>@h@OSfl!+S{t@UxteBNYhYX5q07@w z6t>H)r2~Yqb?l-`V|jZ55#6e__tmLDL@z1uZ5E1%DCcEmSvRKV{fdfa8hAvY(meP~ z1Y7R~KT^UP9z@5G7*-xBfEc1gt13s$5Tm#UfB1wAVwmf>et7aCVkpojKhztD7%WLm zQUhZU<2Cw9&WEIkzLM^>Ti_W)@4`3p(}o<;Q5CtOO z&f)roD8q-E@BMDD<)wG}#!DE%GHugKp;6w#(;5}Xu>j9+e3zx)UyEu`L@KUs%JU1jHO zBBAh3BZ%~l+wqT@8HjX*Dt*Il1(BPy>=(1jL*zOS&mYBcAxdAj zIkbk&Q}f(><%9$xJ9OV^tMn@(tyAT0nY)IKf6UB+H5id}>1|WKtwE$0em)#(A3|i& z-g){8LWoj`ipH^S4pE_?#}~w2A}Vc46ZW=VM8Rpq=NzPr=`S9<=Tk9#jtyOo-}pCX z{q-n_{#liOf>()MJka;}z`tt+N zAiaMgx-s!Ce7#s$c+bcTvia30T#H@d%Tmo30s}!CBJYHGDnufJ&(;n`ksQ% z4B}gmLNW1mM0o+8`}+vp_4ol%_f?tC++K#58k|AXXdz?-rK)GC6hhAJ3koS`6Co@A zl)Dl(Px4R_+q0VskQBWQ$IpF-^fp}d;YDW15=-l#@TY+cTcNyH9;u=zhas(f6pdj~1Yda1IP{ozadbLrUOILMp{@O@!Z z4_ODa5vU_3slHb7ksRYw&$sP5@h=e@&`r(fK{b4dlct1wx zmmUI1g|US*^nCDqNy&!!{xD=RJzFBvS%U15HqO=0)R0Y*7% z_9><&s6+gc5X+YjF%akZdI-D>;fuX&+OoJ7WJt3`QU{JerV#(b&L$kBh1?_{z}6Rk z^5BsE+$zMcHXS}UgM+tm#781WY2cOrwU>jKAI5s|M>`G(K>FF|q`rfakRQ~du`^$R z$N~DC?(guGguKA7-w9Hyym=X^4??`q@uUXkvygah*CUl9vJiDdD7U>i7Sb;incv*; zD-jdh;L=O*<-pWwJzHr=zv?0$e&!6MnJX7iVs@63R28SzXbWF57c5CI8t>IKu7>F? zCX&Tl*^U@K8@b&)8gm*x3G`>V7WTtCANebZ&sgBSgiiPQk`#Ey#n;&V-2+m`Gb0L@ z2jSCwktIuPKhrn%ya~SY0#fB9KbN<@hW9Eg({VHO@V=>P>z>aT#2|k{G0e`QDao9z zUR;JZ3NpSU*9#zdw5y4yuL-jCtA-mED?I_I1nQ9Yy= z_MBx?>hDsO0T+(HeCybqP6JyRm@Mm zs5D7YWBt;_#%@##m_e#V2B*}EVn|r&mpqpy1fLZbUn`MJK#p$RCpP8{D35hGCy&Le zYO@<>>&M)n+PF75Y*Pvf1ImcbIs`y^bPOH$qe}SVNM}x??*Z|#W>3!N(n4X?m9T}2 ztWYMxIrvH>8H&64PP0(mhGOUFvmu*@p@?_XtQm_7m1NZ^S#Ms#*C$;OH-QJTIL{w> zUk31bUYFSM-hRk7PI^Nvhl8A$x`Z3;WRNcR?idYr|K|~voo}T>dOmSk%j6Q|=W<9i zV)j&E9lUy;Y#T~%9%h!t{GgciipvaU7a8>gL)L*OvmDB0@X%% z?dwTM89O3Z`OFuxvS_cVe2arprdP5rInP0*Xm3Mf@j6s79!XFT6oW#ah$KZ!uW4?$ zC*hXbkTK2hsxSW&Bs{1spT2S$@)vc94zfRhQpMd@Sg`hDoix|$l#NiVr~$M+Mp_HK@LoA z-ZS4h#36ML>3M$azVr>PTRZtHZ!(9;xZDTw@9g=&al;=S~=7FnpU zi)8&7n++9_9Z{2*T@*gd{N%CN0BP^W_wK}vFMIa480=$#QW>E;S*Zz7BV6$;2#bFe zCv+O+Ma`k&D@p$hX2*@MRRnhOM7@#s`*SCS0Vj~Z+-_z8wX4f}t#`eFYL&f0HdtJ$ zx-D$b8#xLUS7)R26`d#-n8fV8f|~JtIp!BQ zg{k%u!7{+_W-$odv8VM@T|059+FebMTZRy7iHRp7Fu6+|Z@j&|EDpti{!H;$zN~TT zebVrp5K0Q=SmL&#p;EP+H3H>kx^ zckcLA&5dV#j)9M${G_`lG7g4sqk#^FSU#wck~TZro&yd2arO{*1S+O4erv^WMe!c- z;mSF6sFIwDeC+KEb(@okJN8j&n|y8Dn-lPfZ!IEoM4^Vw{{4g1&rrVMdZezC2TE+G zMsn_?!I!v0ZmHOMzK}_#Gkl4M93m~=8cfd09B1D`Z2r1VkvYzD*P&+N((@=R&y`%K z-1gRuhvIFo=r6Z8pkiom@ZQ`lw z8Te`+cjZZkKGdiC*6Z%rXJ~-isNDwOG!Id5m2?A+m`}Zx!U}3Nj^1bu48+C_uvc zwXRUyepn*$)q6EmFs=(Kf*u-awr=f6#GI7bJ1ZsR$Me_1Fpz#(lo#39!&=~%CzsfG`dg9ci zV);j?Cco-*t1AXda5HI7_hEVJrhy=MF+uK@eaJF~$Ew#Y2#EcQpw2<&PS~MCP@9<= z!02WVHT5F`N!P}qvJSU!xIz+e0poY)lt`hL_s5k5Ebo+epvcS?YcUaCu@G} z9&{zsg-YX9D@8277cDQDYGD3flPjQV&~#totD9ds^s?Tw->G-{lPnJFa6g9rSGkvmFg)58*sLXw z#Rr_>N75_|$Ka)%imzeoth|Na&5G@J+l^bt0=n)%SE?QZ2NuselFz&B;GK@?uX;QF z-MUfb5HG9=z0VBryQEJ+^Uq4@_gH<`~C)+J*& zy4SnvGcQ)J^%+o8?fJw9tyM*Ao~)OkUXl1P4Tj%w20W}~SX{1RRIKXAxCSjUgj1^6 z{&v>At7pROtwVC}6_uG%=qQMA*o)OIt#^E#TClpVr%2%13|6PL&<+OLVe!3DqNc0> z^Mg7%j-H)*uJMu4>jrICXsq^pbq2%l4KG5gcj8VRC)3^o*nAC!UvHaX_`EsXv>|c4 z3!0Bp79YUkZP%+y#Gk3TlFHAj~f|y$R+OGgigy7Pb9yVLrhC4j%TLO89sE{qOqw-}U#u>+gTp-~X<^|6PCo53IjS&cgKLbULWspBhJn^(#Nc z`8XTPBjuSrkyMYpp^;_oBrz5b>#o>wuVFZ{L6z+`F=jutyDry0#Nt7f{Shfm${MJA z%XdNm!!hO8yxv>O2LR5ECxm+XJX9AD3I<^Hb>+2U{uAH4pwQY@Nfy&zIdx*@j{h|T zH{H1*ydQ8+8_c|&rlFGFPreF^BUQdySA7oFLJh}#f)AMgmW1@L{sphUdv$RSEjd)b z+byn7Ugq`UlP6Y(*3iUi?bP4(yZwGB4rBEqU0c8-2QFxMsD0b&Y8KR{X0PdE_^BrP z=Q#o_PFCAVE${R%lOTRHd72*z!ss`SVEwD@I(D)FL43PBa7`#PSfHPKxsghS#fReqI#E>c_H?{Z|>@VfJRI z8O0!P0_iqM)K1uX)3S7J7chIz9A!z5#Bg@SW6~)chC^!;Il4%f#i6=FRICQmZ}EjX z0xQScP}EVCVTb9pyr}+Ra@96eZT%d+j?Gi885kGmc?#-QxE{KBJ3}jb&KY_Phqtgh z==?}^fd)AiR&2YVnnpf69kWw>xko&{LfP%F!L$!QL!q}M>1ixKRGQ>J z*g2;uD=odKhT*5;jw{N$F*(aFYG>@6Q`B5F`#i?60JQ_kbzTauptent;?U(OsGEN3 zatOo6xPqFGJLeL`HLBznv2~X0GJ7b>a{#`MCD7f)>V~}cAsVyT{9koq&ISmtLDfi@ z$+tL9z)eaQ$9FaZ{!B-^`TkaDwY?pmuvZisO|+dE$|9loa#r?vcU~yvYIHTk@LbM| zrz7vAOrchlgS-`s*Y%aTYPy>vP)~c;S?Fmh)Lru3W5gQ<)e2%|ck|Q$ucy1Zv(M!> zLi=+uJYD+MgDHP13%(TuN6caNRk?AoOA4#&$^ucz2iIIEdN1Tj$yNzPEoW{Wk-ZIt zAFI#r(#mxf$_d{Hm991$pR0b4QfYbatrhYgoBFh8)&+**I>2bo`z=(I6hQi&(D(Zu@KoT+g>wUY<@v?IvaI-u%0 zec_Hhly7v|@ao1x{p67`HO#&W?msBpImfEt9&;_j?65fQu)Hg_-&HRh&f8*jTsd?Q zBPX~IvEWVX7g}sUzkcY3=baoeGaqwH`tZzG(2g;fKCZN|I+D(ZR zckpZXo)7z2(mJ3s%spr9-cjhd;GMODx7v2q9bCfd-JUUqC1(uxG_iyDw??c^rffXO zi^b#WBdVib<~O0ykY4c;eJEBRR$SV_TXiBvHDX$AP`&E5r!S%gYTJ#r4q*G;a)CRz z*ZDOxmHF)ny~_?An;qA#^ie|V<_)JOx7?t9cs=QM)d{HWOHN& zci*R0sJavSNCNXi{PkVxi&&oOYJYI|gc2$AX{zzCxm7^l(dXxNF}&Ymn_01p<)hk^ zsF|JkRR1oEtx_o)O5;h+%02OcmRo0b*I1=PM?--%Csy~ieP*im+(Qd(Ed=BFoeI#R zm-BWf4|Jz4x+P%sM3d&d`2@`Faf))HGdt%oIn_s5F+ah@AK%SKA`Q5QhkS2ic&bJ~ z7(cqV0;V6T2eb#6FkIdGf!}ZE+@|gf z3B};OKJ5OFbf;IILlsljgPr_cT0nK16tj~`@}47;D&L_Y*Cmm4D;nCH1?_vVed&IC z$My(@^LieMN6{oHLGy&hJf+$Ls7?+_5X$=rb^1$}=&|@wCbUth$hihha&Nyr!|JQ{ zQRBh$7+z=-Tu9nEUu=8dLA-+tnma}oL$P&qwbNXZ=~jRy!$@vklL5e;GwA4g(+^d9 zj8(Pv-vC_3O*IoNAK|KvCn5+kpeFKMu*$AyP!+cAPKx2AnxZ6^5=`%nsZSsBM@m7X zTRf3DR{wVdwF|OhbzB?t?)Aj%u&zwO;y4z^YOWmo;lFeLnd6;1_`OU*@Z5`=0F^=f zYdd)iceuk}Xh-gg??(1w`M+!2RpuRrpSxM-QeCk;-$LQpv2)H`y^!&C6vL5q!NLC6 zzWm9f9=!kLQ4iifc+`W|)x+G(&Be;f?C+oX_(!hPA94@yo8|1n$okJ&PR%$EIQ_CKuK+R^2b>+je7A8e^V zW*_=v_TfKfOaC!j=8xI3f6V@eb=$a@yZ*tt|AQ^{$LvFY%s%|bZ0SE{%lt80_K(^B z|9Bi;!xQ{};2EQ)6+^2JHxP6!3DVx3tbw*Y52U&27@^Jnb77ZwDhzG- z54NS!LBEJ}ugV$&3^0A=AP)A2-q&O#B|{gXtND?Rg182BMv@7fxR3{J?$e|1%}q z(D7;?sYCvL=+b-n(c8Qndc1{#^XLvhv%x9lZ&fYONXroNbCm{qu298AzM+D~k}o24 z2Yy1k$Z#VA*)eGPe$8X8?-|tWzH#xit}EcSDXCt^--FHr(a5p?UkDm3;DgMQwl)4V^!pto;i7B52s{pq5q1^(I4yZVxG?7kLskHwiR-eH4o z$xpMdBrz-`LAn0%!Vpw9$eEA?=|b1}DemJzZP5SN?~-cP0;X|w z=n(eQdf~bTy&0DKQe4kK+Yj!%9_ca|bZ>~u)1ZbfY83`O89QiozQ>@-?gjYKSM$lA z1R+1FVgFf=ZOBCq$2Q}1pd?4FG-THUXs1g(DyBRMy>cZZ``sy_n>it{J~a;TMQpp< zvpoPedS8aV(HGh@m}+u?3%b0&JG?-w(3;xeu_Dn6op;7hE0Zq4=-F?K)_F@XLQMI@ zoYWjTYd;e;Ve+@hu+2rAMnivrX5ZT32hh82D!+Mm7;yJgo8BDw0j24;tu$97q1o$4 zucp};;JzOeFJa4p8rj){hGVLLKhz-l?Wr8JM;?HK`In(1wCC2|Blgg_`|H#9YD>^5 z8I^jy;vV!}?7@Y)lw-AO-K>NZC)83u6~B443QE4Cx^p+LLcwbHk5c?Hl+rvf7Ll5U z*2FVq^S=9_FVseh`k5E>`(`C>*zv*WIMINI`wbX)cf;(!+C!*L@@ISL%Lfgq^f&g* z9fMq-ja;cp8fbsoTS=gj1l?RKCuT7F?3_z@wq-K~?OCA;Zq(e+7V$A`cQ`%t+ouQq z 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 z zHfGh~EdwnUTVp=L5zwJ_L_(ze5HzoMkwi+!!|*;n!IvC+;KxFp8u3d{7+p|SS26z% zlh-OGvn4*lG~=Dy)L*S&M2Id{l@!60<95`D*E<+K;~y)nmkE>e78A08qcEg=Q$=sn z8z#gPrRv3`VEEgOtNbjt;0NLK@t99KFxaxna!R%lhB}=Vl_WA@szdX}deAJ4o=xZE z_Ys1roEI*1z@D@6`@_-7z}kZ zbZvS>!o+93;lAbz@MGO<(y8tyO!2*_3iqsTPjI=tn|Z+5|=z zqw9##Os;|9%C{ab`J!REkA<$B@->Xw(brEqT!o3g2bp}5M_~H6ZShSmA{a{YHCa@y@V>)kvUyK(BVVdE|sVc^XuDt-(T@`g-m=fYs5 zlSSFSM+PQI%Dl#W@4~c2BC{!rF$`tvWGlz@!Iaw;J^L{Z7?FFh&qACTrdnIcKObO# zp>5)c<2XD_$j;?bW@F;xdUgIFGp29l`obA27+bzD z%M()v-!-p&<`}pG(?S7Kr-v4xUx-NJ^-3v>5702HbDe{siDAk~&uN(UJM!onw;v1( zd-`^LNQ8mdZ-xuo51=>V_)?xR0rVeh&Gk1|gMObDs|ckPm>SR=XYhXtBWBUO>(A>H-*TugLgJd%VZUJ6# z^~iW>9}LNIHgJU)Vt8THgz}jj3|vBaokxB^x7T1_CjUKX-1qtY$Ls`X{82}H*^L{T z)qd)UdOJg#MAn$x@j2)|L?F>Fod=yI=}IKAw$Rfr9w2%v7#j2NJ*v%0(DL+Ynr)g2 zv|5)nS#o^uI1wFj0*0w1s4ZnBV4~p|Cq>+K815b)@wnsl_eo#cCkUf&#vE4)DPW9~G`aZxWf(7f zqaotr0khPER<{hfp+EXq$FUA$7`&)ewf(sRCh9-qVk3HCbTTLD@)1@T?^{x|G+2bO zD1*^{;#e3*txqeYg|I=*s5K9R4(uTeYX&gb@Z!Vw+p;i8PG*nWJ;}v z8BB@5jO2qX7~N$H$cD3!fXypW>cU}_4Sl@-A+(iq#vm}h{ zDUyw4(!}EMgS_&RZ!om#wz6N<8b*g|o#Lo;Vd@L-(1nX_Fg(H7S0E+>!!KLe0|O0U zh%zFawHh1$#OGOh%M&ocEz4ehX$gAyRHC_Es9+%NvbhxNG3a^7c~gvQ7V`t<@5XoB zp!XWT*|(=s(D`cGq2R=R=$kTLDUbGo{)@Ro_ptrybMiffkGcUp*G->Orwl=V{bk*2 zw8GGX_x7_5=fdlnW4Lm^y`vj0(5(9+r_iWLYK-V|C7pNSiBgC z)~>*COLvcxbnSEKzWq|tOQi(5rb7rzjs!x7-(mSHZ9UMh_Ts@*cRlpJeeV$z`xFK# zPG0mmNdrR*ysZaEykX!Pr&ko_&;2Q9b;W0cp+DTzB6;B^^pob(nXx{Hfsw%rLNE41 z|5DbXYEJ+Ro%`nMeT)tUu4}z`xq#7`#`goV*gEL$biL4Uh2gvM>dz^#@#IXxt?NJ;IcI5q(U9W}#kqtcU2O$_d@`Lb7bPo)u&mSl+!|s1K=t?q?2>rxbdtRy@ zfq}8G=bQQKFp$Li`T8YF7$6YR4Jqz}0Tl{L;jfr~s(lF&eTuEq_}WS-X&>}&@R4`M z9D%+DiG3&3sjz)wue{S>1%m>)twntn&|gvSNlTUi1236Q)No*Wp>Qnu#5w|fx>?x= z<|&}>S|mxvNqy+?UAWM``W^a}#3Cc~si2RB!dAdR7zT!H%nZd#pnvc3szKZ;^jlur zqwt;_`jWLf{0&`U@Dk$z(}cIsbBA{+lu!@)?w-1FBBvDwtl2*x#lz4W6e{sTfCvV- z1o+ORdq6K$|b>Zd*QGy10Q-Iob{DT65tZk5pYQGZ|9TW09hu^L-%!S*eeUWIuO z)8kb8XCkd=EKaqpG$vsByB4;(MmdJHSJB+H!t^eq?0ZIS5^Ha!j^s{(-nK0dMYCJj zx`SPlg%7|$iWBL!`7HE_-f}(Ag3T{+t%`1m6?*FpH;>9$;%HAW^eP&^?rE)n z{?!wS!o|~A{lxb5NA5bd&U#*FJ4fg>HCK)vmxsZ=oWaFh442!9s&ls&LC-D(@%gpl6 zg5lrzHuANgOO7#e5P1Dzcg#HcPa}8Dlg~0ns@{QClZ>kke6X~N?_V(zby<^ z_?}P};DI4a(tszawlH#KjC`_@8#>y#d&sO(q0Nh$HlZ&Z`rhN@&(Z2Z=RTagL|z0m zI=aV-H;qA;0Q-8<{xoR(uz7tC&I&sBPrY98FM%GrGTwmOs!)@wCOsSf6k3N9!>3tW zpgEV`sQ1SasFr97engQ2J%jZ#rL~lRTjRD}*Q|xk@P0}0;CN`^aqOn{IsuiG#Dsif znNUB)IYjQk4z(Un^-c%50nU$qB6{{SwCd;lc>VDUG+p_waE?|I+T?kPQ|_8U`R7A& zIi#Y1yG2$J^Wz*es)igBDWHG~Q$LLvHZy1-eBtW6Zwm0e3tY7EZqRg}BW@twAFAn# zc&>971GX8HrTL>!>+hVb&{+i)ye7pGnyt{Mj zTHgnD!tjiiPkCx5G+B(d(;Z`kK9)(@?JI|%YtFLq5QQ9c39pi@}An89|3f)Bb2 zNE&KBu|t=ha$}_V7Z~{zXAr|K1&uBOJmcdW(0GO?xvN$g`U|Cd-wvoi#}-Rzm5~DU z)0r|8zr6+B1isvFrY)gQJ0!qa%MjWu`5hXbn*&}=x;}0CF*K2;(^u%{Lu=&SnMaSe zp*u0P@%zPi=o75?zMA$5T70^KlXP{U{qz|E%47P_>d(;c6}J}~U+qiEk!k205`B1~ zdq1>Fj5IlPe8g~t`NeZrzC!D{#|3P=bD@iVXj5_w%U31zefFpsS`-Yp+7|CZSNVhc zuFo@}WA+5uJb};wfd0a?W54I^N9V^bS|`q&j}v-&Ikk1#ZXML7n*)9 zym*{s2TkJ7WS34JhyJq%F8Y25h4!EOsNA#Mq3_^s=_$7`=yp9<`O3}=Iz#ei2D%SG z8;hFzjodTPOi1b;L2w%yec$<%X)QzRt26Ww6uY4-lj)k^$P}k)C)t)XInyaiAqwV%U?ZfXX zApRZjLAN^IKEUc%BZ}Me$8bNRLF&Afir^eNOLgJj&m|?2pm*$DE}Aw8>QYQADi(ZaYNBM*b5t?J4!z?80#EgF{!XClECFK1kAi zNr?I1yMco9t5Clf+)bMu4K4c;!xPgLpcZ($y>72V)5ARZaV0uv=(;*RHI@S%kAF7# z)jB}K!<3@0=DE;7cIDMur($TSanv-hOaVM+dM`ey0`d2m0F5T5DR*fuK^ty@Ek6SXxFDNKj?lL9_W4t-2%cpurtS zSM2)<@LSK?)tNAVQTU?4dRPPMWW&A8CMKbg?ij~cbyui06rZ=&tb%6cyLp$KS)jV! zRNdV1B{a&N%Z%v}wdZ-IEh3hn`wPvwhOTj~0GV zAJ|Sw8u|iS2%ph^bqj)qWn1YY`x?N1HejC3F@btLQoB|ueP}39d9NAE2z3{qws!jM z!t|lNWi{6hIKH9>F*BII1{FVj6F&g8bmwn9vW$R+#NmKj#sCd_7_y$5g+V7k+gHWTSdF$CJEoi(;o&VH&AJoUH%jG1qL7T$S zV`H1bP=A-(_Tt1Ps9Pm0Xfk*X&1IgiAK%}GdfaoJQ!FIVLTu5e;>!*=!SN&Yo)yqY zVs^A}pFh;soMh(5;tq~kIf2q}3hMc3&1<}(0H>7BR#@8txZ__JKa{_QR;!4>63a(W zdv|xtXoT-5-a=&f99;So#X7;GFyW1Bvya{Wg_#bKp0?+i?c`5X=Vr*U7o=#&)(<$l z{ygLy%x+`(450;uaf^M&eF zKeS|~(6b2*0?uT@uGiNI8aKzexQ#K~;kfX*?g5q;PKG?NmL!2@2fCwO`3JE$KU%Y} zECnI`z-zjnm!3$WBmh}{edSX^+=Jr3H z_hAHDKXsnfG`I@YS|VCDuf(8UWHfB5ks6Dm-x{-E25|1T&L4D7g4XT5iTI&eXx_d; z{kqo$8uP|f{X_n5o4R~(Tg`^|pP$%4WjIiWBH1FTH!s&Ve@H*uDH~HJ4sg);>r)&_~ zhSEu%t!e_Epfu|ovoSPZk&QRUw_@g(s2zG}Id4D{S18f7A4bsjp~(Tf$e^b1$hXZ0T+k4$kRg+p z2~DTWg3iAx2YlRQ4MoEsv@>29WS}&GR)Q1$AGE(iQ^+1JJ+2OD;CK|(ZnlKw>%&KK zM2(;>LjDcIwm3ALPF)Ib?FGCWolvarDzr3yG^fto2ly+88`U0W0{-z-;_*xKP@hqk z&rl`|&2Ac%cqTt+Fj=HrlGTUdCO(RnB%3hFsU>uRv;YP@Gw%M>)q+ulwWYly4KN-X zMgKAR81x$nOnZDEhT%j3^JDtqJ(Glq8NcxCSnPf&CT`C8lQ5w6_KbR4IgHBA>y_6?z@WuC{>oMeObKl43jJ^x zhDC21ynXTlMo+&LrZQxK{-3;OGt)4-s9U4>=_2$EM(%bsp@hNg1UvunCop93+$~dC z6UIgO1AKoxgTWUn3^&iI!(hN6hO@W0V4xyhfa`%K40$?S^RFp_!8s0}9|_7Z?2YPp zh?ikJEKGBk*bx|%C|>)b$qgg(8<#GIt;6`L4Abt4A6Q*Vhr9Z?8HT0b(*|ug!4Od_ zG2?0u44a!6b?n0C`%#s(?N|jv3!Vc*+#N6!aYusMZx+VWZ6cBs!=eA+gGVl+p)kO7 zJorXp42v-9^+QN!S&^!=h!t}tq}C8Joq z1rs8Z2f1Zzp`X$uFb%^&!zt3SdIY{O6!h&hTj)Ft#|j4>M2avJpyTt^o)m_Sbtb=c z8o@A|uC(Rm0T^E{9T*qh1^qAg9?RKKf`M=y#k(F0wZJ_^@ls6xfDGUkRPLnF)fI*K} z_T)v1Fup%glYUzmvk#gl2cMjP{wKJ7*GrjUkg`dOsgM>14;)h_zq1WP>SZ>ux!3;W z`AX4$@_eP}A3R^l_}8Zy&DJa zrepY9%Wq#^_`3$FKWjMjXAOt{tU>zE8f5;gLH5rYXzVS38RMoE8~&I~pUAftfdKmJgAj*~xgr94)lh!e;ZNl?CE|yOMRKKoJQ( zV$tMc>O=y(szcG|DUpa>`&~jCcEroA8>edX9`X9!xmX%6h6IJO9E%p25f2gTgse?3 z63h~O)Y{pHc$}n`K3tJSA~eU1lt-x$uhV4Es+}p~ztf%IAi03Jm(}+^&$x>?o3hmd ziiVMp+h$i|03Hd6&sKGjav=dpF7Bg!Z;+5j*Fbb`G1{Xn7T9oT3GvCA?-CeFMSQnn zMH$G$Va+t8eTFa)QPK{c-_$#W2ov5qzq@0CNV-miIy}on#KF?!>U0^fp|w|L?b1m^ z_VLOGi&kqyEL#}QA1aCn?Y(zd4_hG;)2J(aUUG=6Y-r+A$QUB*W6!h%8Oogv<(HJ4`Y0QRx68?yC!$ ziFZPTcNJO3I5!Z%bN74RTUa|{JQEgl5Vq$w3U@J{Lu4`&R}73s5y|7CCwdtxh)62p z;h6X=BF-b!54qX~Yr7WtDQ*`bf>Mod>}27HaEf6+!MRcBw-Nm&@*xPOB+pD-#%;s! zn*2ztqZ|ycFx6eFj)qaD6IA(>$ruX1@uJ@T7EDPP;$qXqV636Wit8vLjEB-6q`GYh zBU8;+)j=I*jRQ|g*pt9Ofp@?gq4zMmIWANsstny#o++DpkD-3bLkDg=fx*ltVMh}0V`!X>Hi!5bj6EC6?GZPH(c?ztfhy53H12#h z+~Pfq?3t@$T&RHW{NF!UEtbJl`rJmwLLiLjHjytsV1!9pX2H^@%g~u(@=->J0>&H_ zXc-Mp!vqbt+E*#(KS5t4{{(%J{43vS`!5d8)PD)ifBjn8KZ(z~{u-bE`c0gFAw-k^ zHw@7~|JR0SMu*;_)Jbo|U0wXDb2}gLF?Ys0lsh8!;ai5gs|yitPVd7z)`n;gC;NtF z+Zn`nEVwG&IRJ4r4n03*&W9NDZ^?|#bRjlE^`MDJUc|DV_OhdI5b+3RwNXcHBQ9yx zDj9G_d&TR;G~9;}tIvZ?v4?JmyOE_LYqJb-auk1K3Zz4VOl?w+CgTy8w#4Q`);PrJ zn_Us635abvEa9NM3t|)6j=MRZgc#kKMvE@@p*=QQfz$HQh`pDqY03E&+H<7U`kj&$ z+S9ytkY}$9VrMhCd9ywgF>5*TThZJ=djqycSXBMpO~ON7AO^Z86yNDJu6k;|-gAyNea6HsR+DfqhfCAK)j$P<_J8 zIxHJZljVJ(fK|s;Bgto>h~VB=^G>cA*uF>gW+T21w%9mo*EsYL!L7HS%4WS`S&Z>q z7^Ns|gg(*B4i$t==A1is3@f2)_{o8-f?Sx?jJ)Um>?RBg?Mf;)*$rdL!!t@>-ojvo zMpy3gA*}E%tW)y~gK?3Owwc1cFuG6Yz+!wM^fl9K+i$YNfLYL+ zykE4lQigG3{4NFkXc%Od37)-a4Fgj9?yWdUz?6d3t3i%f=s%$*zc-`@#@ts_xk@{* z0yeZY+PM=(zdu#}Z1D{Sj<$`=<-UZ0ONmmO=%=pppPsn#IA52Mobk>X={4XtD`TGVf@L9O_t153#lXy&^wN-Aa!xV(bJw?aM8WY3;4>j2PD1KCDxi`e)p zW)+Xqp#Evr)27j6z!B=(^(t&Z+n_?9gy=D7>MfOJO`Ue|$4X2gM^Y z&>|YR+a%>Pw7i+Y-O;m#uEf_~a#l^ydU5MhetEl+#O-T^sDX0tO_iODGLosKM+w+uE;%xZ%L())+~9jahyvTbp!BmsVmgq?pR zwgNv)mG%eqTEXhgdm|K%x8VnuyKmhW9$0!~eDqb#EtnmqAeV~YhNZUW(#}$oFst!E zqBdR@W(lw3W4#pNd&ZUH0=`}FJw5!4qsLiTuH<33H|h?H=eSduW9eYQXo+dy<$hQi zzdg@=Tp1>ODMeFt(qNv|j$9~g3l?MM|Q zO4yBfqFwQb@qDQ$$yozL#y|ae_pWD%_D~p`9qVI6u5-xm%=!JWO5%E7*5xo3U#7I5x;W%)GvtGvv%Lo!y-iek#Xj2hbL^Gn?8S3U;`1goD%idx{N6M zAL-27yCK&1gssmHKS7i;ll<1ZW<-=$^~%%J6cL6@J!ziJhlS97Hgt0j zqSk(C`|K?h%xh>o8>V7H#CNIrd&{06vdpKMWej>Se@E`au&N(yHIe{*K!U%@5>{p- zYO4Aoc_oC1Y?tI27ys-4jN+d_Fp58bU{rs>Hh(!t`iE+C=S1coy8Pu#;~zMGITiQ^ z&R^>4zhSGtaO`Z|cD}^_>$K^owh zS8qvx2Z(`gaj%<76k>6@7V^|a9x)#9ihQeBiYPX}yMNPjMl@c8Y&Sm&Bl@=uCt0)Z zA%>31(JV(p#N<)RHfPa{=r79OE$9A-XtXG91r#_UR?AU__*>Cv*Qp!^3u`^ZbSv>; z;G1kjf94aznK!YB@pgyD16mD4BXmA}Vl52qDrCwNS$u@3dFJ&M#c_xxU<)6srH7bL zT-AOxw2BzL6n>s}#MXJOG>wJeIbw1TF}Pijg(&y;d^#?ZjOe$X1$xDXA%?pH{*o6( ze<8emzYreRZx9~apCG)sKS6l!e<8g6zYre7ZxG(dZxG(%FNCM|e~Iume<3`o-ypo{ zUkI=EPY|BSZxCM9FNBx#3*q_vLU3DqS{><<~4#~AG%cC~ZM@kY0o}#wM z``aR-Z=!Cl7ZtLH$o|IgnnfHP>MByu^8kxOiv@+K%}su$C)g0RPi&9t)0jh@U4h@~ zdcL6Nq1H?1;`X8DYJn?J`I}KUnRL6o)v-NWuHyg%tpP`b82_IEm7xNX%XHXD#Z{ay=yF@4Bu9o{7hG+Bp3~!9|b**qV>UdbrFiYi$Uh%WtD0Ewg zdda%7X!m)b?rx260n2y4VR)9mVR-N_VtBUyVut7OJ4}cC510=5-(fl%2z&ewM2F%R z#sA_tzclzY&G|*~YnJni;@2dH@-K>2j`Pp{LxQfEfvSO$)*sOrDrW+Tak97i2U*OY z=Tz(djaUo}st+2)<^kI9>ea00Gf+wnvKc8#1!b=fturIbpuNX&g5=pfP|x&FDRsL8 z>Pxd0W)HMLVm3p!vcVem^lN|9jH`t`Pl>(?k^#D=~OV#Gh z0cC^D+{cnHg6RG>siE8LpqB4ocUtWXz`_{ko>%)ouVv#GE5UwH4CYZe+r|%j_ADPN z54r{l`7f>9XRm?GCuXk4**PFpCD~J3^9>XuZ*L%PiYLS$%6_Xe4b(wejl%`7nW_*@qYbtREHLm$U+Y>bv@?bpD|7_0Ha}LgS#I z{btD0d>VAV^<-A~hJf6wDKxRW9;9da;;29vGgN`j(r4$=LZ=?mG^*3al7{YjBHRooGUy@9{`HbXev^+0Ls3lcamFD0YX$MT%46a zE*-J*$`ksV>!irOIt&siB+1JjA3&aUq0o6_6v!V7-x|ZZ71Sv7Ehn~cgDS7rX8Ch{ zpe!wY{M&6t;E^ohYDv-uDRgE3M$Km+PS59+R-6tp{^#@-M#w>ksV?TGF$qXM^QQ<6 zcnAvH9$hRx`~Y|uXIAQJXF(|-xo9A}6yyzD8ttXIK&y5BMK-B8NUPi0oz>b45~D;yXabba1O<%gOUtUk9ZxCZpF*@PiV~ zEe&7#Hjt0~%t#SC21*tjd~qdYpwPT~Q)|otkZPWC61zzZvf_&+nvZKi)RX+NKKT;J zdhZsJe@GaAwZXP^g}I=*zmey9oCBzAXCCBdqXQ-0x~JbSMgsS(##C}C84$1OKcHM1 z3Svi%vM8=y0EyR;c4HT^K)`46`g6A>5MP`RY#(|D@_Rl@xo@?CU9Sb+X~{7I(od`o zWu^zYq$OMB@jal4n`y2`7=sjT__LJndLaH>{En^c4v?6-zvxeH2%-bBFLrIO1%Yc~ zwBr`OAZ_7vROpUn?e!Ly(_8sIq ziOzf7@dgQUi{Kah??FaOT`!062?zyWx1gmQ0-2Y7<&LKWK<1cbSMLxBs8U8)#z_@` zvIT3X*&8JwEJT}qE`0^AK@T}@{nsE?_Q^-HiU>r<1CnNv=|D_<;M&P=4Z#1-PFC5& z0>r{vqV?&cK(^8Hy6NQv;C_bO)8D@Z1;+1=hYShx*jFXYAnqn;JRf_jRcQp0XWk3U zZSw?is(9;p8+H(vs>%BpYX_pdck0F~rhxCYbY9`?CXkAyO_5_x1hH4jyd54VK{0ot zuP9s^5V41FYdaT67wAg#4T=FQhDx5!WdXVH_8W!Q_kq|`gJhy550J81VI!Np0^Es* zb0k7tK$_lIV2EZnNNFvV6lB_gitSN(gK9m1Co#N&$DILPAoVZh8v!n!b`!zN_dw*s zQ{Tu|DiDd=Xl}s&9fS_%D_`?l0lp2kefjmVAl%5R*I!r5fRpJ$q1d%g|SUa4D^o%#wA4;dr%GFU*=_K>Q{&aWUUb^C$go)aJ};Outq zq95#5nC>}cz7ZrT&$#ZtPYfa&RC~_Lnt*(S_p|&bVIW_4dEL#I#2`srXJ|Pz1d!nT za){CyWX3Y&)CLRd#BH8wGi4FD(8Azho=JP-<9qP!w;8HCA&+PFTO0-s3`eOKU4 z;5okJI{AGO_=fVAlD@nIsT(gX-rlT(9qEgQ$(rwj)aNWSpWYiF%f5cjE7KTMCb*nZ zcZh<7oQd=`Ej6YUldp7Efhh;m+_9#(^?py?MW4R>Z_UizL5Bgtl_XFv$3|Xdg{2(gc6B*TrH zFCJ?>FcyGE4&?AkKAONo)WuXyJJ?Y+ZK#Spks9vPPu)wRsfUM0zZWzPvE$4gvlPL0 zpYcjd*!kvb-1xWwt$qCZCOpITQ2hGPHe72nw=UxP93CC2+|bkY9#0x%sEVFZz_pr_ z$2N~v;rFfG59FoVaLdx$=U-0rZtQrjV;5l^b_3-o)R4>PKZcB6p?x7oXWt%p} z^O=?&>uhH5P!R`N1?>s!Zt2{3nbL~2c8e(&I2GgeQOaf1ne$2Wcds?EvoPbl`PGXq9Uh42`?TkyEBFK5>+4>@F9a%D3`!?Zcf7%kb^4m-&XpdIfR8&-m-81L?aypD{+{p| zP77-^nqGXZ$-@A(Po%nS?aM~PmQPap7~0S)Vn55O3ToW8OnOvw>I&+5_32uYQX6`C zD5>Xrha>6=DN|BzC`JLgk!+7&@5Xh>a@$_%mE(*fww-OjrnSCvJ<1=Ql=>tcfI83nD1CFB#;xj4)>r7MAiVH4^%!X&suxMFe5SD#y&Nbt z%D=yWU+oWlN7Rsly7{R)ir?m-N$#}4J9BDiB*|Fn`0y*#Q)rf!$3l&AnhssCzE_Rn z59ODuyf#DKIfccyb>`8?sRV)YJr_~xLM??lRWs_odMN3;>J%zXZ+own@(JZ!*=y|- zoQ*n}l6toB3!+B8vWnd~`lzcnFDUq`9jZuujbD$QMC}7N$lg1Kqlzu_Cq*Kx(d$mh zIvP}ia&?&;lix|>Ijbnqgj#$2f=#@Z*DDEii@lU!CZ|YknGL9u zSz>nSc?ud6bz6T$CK8QRDV#EX1862Xiv4EIF*Lr>X?l>z7B%GVv>VeUMz6m4tJ*xa zL_>q0?9ZGsL*uEJqC050&`XoFHxFc7&>ZKd`P|`Ss4mKZ`Rv7R)bCn#hd6*4O&9O>a;@{t(x+Le}MYEl#EOEW*%BIU`(3>@x#jFFhb{5={N>M?R z2c_>laCSj;p81^4pR-U0y^eZXfFY_Sd#V-g_z=yFJ{I${IgH-s)Wq6-4o8FX9EKO zx%|`6yw6UntA+z;bVdACoUIa?ux&4Y(7gpsS&j41aoM34Huo0ye#}Ed)1ASL_UBM1 z!+w)T_wS&Y>!JI<9DafDS!2#!VeP29+9o`XY8j3D-(z}scptjlBL3~v=L|I4vU9^X zjoqkz*l=0sk`-!EVeHO4^%`|PV&3}fLMN&cM3;75r9>p;;w=wMat}G|3o5$!^1kCbeG9n7%MW4f}Fmrn^y~ z)`Vltn@@$Iq2_DhabJ7>)%)nb>W3@x>o*)dpp7#b_ON9=x{9Bk^c_xh+kp%H9}$Ta z7USIU6_ez+(=nyDcpG-s95kMiQTD z4qzAVQ;&Jxp2iuYR^P^3C~!z)`J-1eS5bK{7pKyuPq?TkYMbQ)R~(UjI(8)zA-B|< z59<=Y;F=)!p89+p+%WJZNuJGzVP;q^nfBbfMFeMlZIeo3t&XElfG_8E7jvl!qrsVNmY1cx``;`Y(OzIB?oTgFt)TwxR!Ws-+-ytYNL zV_dAaDURcU7KeVB{lx8dLCp6QJ8$aZ@o{t9<*BE#&(3}s&1RHJl)L6kq@<6hkK zet)JGZ3GH)GV>2F30($(i5e={VaC6*#QUKf)&}fu_%XWv0uH15@m*MZ+X`3fwF6# z1?SY<>@%ijP z2}FktWbTBa^s7xu&M|v%PJMOCqB#jlOY_<*8EuQRLl=Yt-_)WiH?Np#DkGG5MEcsf z?INgf{p~R(PH~hoBv@%A7=jBA>`RXue2r4+lZ>U6MLkhqM`8Ami{y7hWho_cjorsh|DByp_is8 zOCWW~Z^s<2vDfse8}Y*FFE5F|_@;-m{NL}iW5a| z#hE%4Ut-QQpY^gp_ea-nr~Ui^pL^j^I^P?F{LVNxiF0S7L_Qv`*>jXA{zg_(t|LN) zftt^_PfMV%OzAfYo|-62BW+Omf+c#gY%w4c%Zw_?bd}^ppWqylkj~9RiMTIAHB(1% zKdxidSpWWYBFX^b%O0X~C{R(xvU!vZRZw+4D0f3dq5Bm@=92j`L1JwWw6ukRaeNkQds z!Gl^o19e<-&krTJkCNQqd2c;ek4kpQ`1v)jpl7BVy~6j2qnQ2rjcs8D1pa$M{EO2~ z6zRB2-7IcDimKtvh&pfq71O9@74*fU998lFu^oM=b*012+&d5@3ZblWVlR|EJ=dW` z9*r^>RnsnW96;?SYD^r&-l6AJL!Un9j-yHib@ufNLMV3V1NX(rFqGuXU6h^BgGw4a zy~*cPQJrF%*Tz9Dlx+5nSTQLV^{I1he-*O>weGB78&}doUE~%0x2L^P?MZPG`80LZ zGNs(k#h8worEiAY>)N2KJk8nW$JVGk=kn?E);uUn^F>I`<@KoT`FQ^ip7>smD`P&|fjV~3h*L%fp>%hB6P~NAC^c3`Qh|66iYbCp zqVaJQ@x+iv;#M_kOl+{HV_rh`BO71L40NKTdV$8yaT;`An#tJjGY4urm>V9q!2oq~ zZKxQNkwa~k6$x<~o~Zd`b7_c!F$!FkO7r@*4W-`vz!_CLkIL<3y~*R6{?+^Fzv_qE zk4epX?32LdiKG#mgBft{;T-2j#z%0S!h;QChw^c)*uahUi9~dvRZVcj;WVx|8GeSf z0^xc-7X!*LS)4MtH|^VYN<2n$rD$AWAHKydur2fk4<@WYwyAdSaQ4RukC7%7+>p5> zD|LJjx9xryw&GQZGsWd29XC$k7hya2RBhRD0kbV-j__`bb(FPYu8HFAD@OI2Dm>`v z7RGFWPHkL1O(T7}#}>aB)o4D^aT~Yk>|3b|P{E$BTT+=EJ#gg_?{D%mjJSw)Toad0 zp&C7=^nKsxahrBv|ML=moPR^-jQsm@d}pq*timdl@Vvv5=RBE!+b*nZoVf7{4|fvR zJH!Ry(E#g|<_s4++I9Jx`i2->7xji?>RJWvX82qqF&v0T!^%!tSjOX5>-n^zT3B#J zZS4sT&N|${U8`K3Y=wPkW|+_E1mltEkBRP@*Kj8}oUz;2gY#pYy`M|o!kraIpQ|tG z;S|k#2bdHKap(H%=dW*G#eps!$ z*|+B?u8vmYSfLugubxuAejMG1v$Yxnm0VAv%t&fxlR|M^JP}wTweK@-z4SOS=coy; zx$BZ?`@{}+&dC(>lWjtEzSPRp%^z_Nb%~h4<$9E;8|2#}QjMa9^}XxZzM=~9IG058 zU>t06BtXeR5+^0+GoOAMkE-7qQ92ns!Q~cTzp)t3pq7#Y+0Thi;O35}x!DX?P&rwe zfR)){RQs7yd*dNr95~ue5)gO=)qBWY*9~#U&$dl)8hsf+<&z`dT8n*ARb^T_?Pp(9 zV?+LODEkxPxnsC5)Xx&9=sXNOS4yx)3rafdQf?Izfodq}igc3~P%-Pe%40!ksCHKi)gqTXs@(GMn9ljl=$c@K z`qeISRHDi@!XvMas$O{(EvW8CSosLUX1fh2qv6m&V#!zdCaZ+%+|l>gH@=gv=;k*Z zZ_0~rO*Et0V@3Kp?`2U|ms?1^SqREW^`E}Ga2Vy?KDk)v2T<_ou)bO+@z1y(@WmO(oOf>4p71^~#8=4mIlXJ)OUhb$vIoE=mqjjuNGV(pL zgfF7Xks!wlyBtyO6RPLZ-QuY7G0Xd)OOvS5;r7Gp2kTH{c*h|Uo%5)AS3=D9uN^35 z(-Aj5lbxtEq-58E^Cnb5F__prWPoah=N6A~EfbzQF&P&b7iw&MP*`625GC~1PglyP zp|X=+lj%YGP#r~*I^OKLT#v}H2U?j{smOm zC9vV!5p$Gf^mY00?KddF**dK$Pa9?BlE;)LPocbE-}gctUZ`r6eM_48B+6c|bXei? zRrIXo-HnGePN>$8`^JXOTd4V2&y=n12UM+W*Cl#71Yzn5-~EMcsCu4^>wKmgDsz^n zJ8j&JDl>XFTEBjZ3J;NH*1ilu4X*obsJiD+ES0(w94tab+Nv)ft9?h+=TzR?bBdx{ zUng{&*Uh6Q{}Y=%_O_smi-w0kF|wglDsz_nsRJm-k#&^0P821*@+`Mj=|XjQlJTy< z9u)aaYKhj22xYx-Rnj!Rg5nQ8`P!M)h?)xz?van^L5%_RtYxaksEp4%Gu!19Dy^K` zl1Y?=QkjPpkB$tWjIz$pX%C*G3K1@*nDYJq>V5QI^~3G*Vxrg7SaJE@t#wwO2{?yH zJa1Cr5UwY-3@s_!glnR_} zN8ncN<9-i(<-qL?*Lgc|=b)A&52*mF@^7r48v6?+4JStlySYs{bjfKVVuCH zC>cVOfk%WncSznQCGZ#xDK%wZT)1KA@L0-A+>vSi-qeB$$7Ii(4vaUz&xN0tUJ4|} zLmr=Kn|x((mBd4DjaX0IX!=%Bpzj-Qp|jBOUb4hZyF^{1VjFOs=(icY;(9#fZz1ly zqZOAcHDy-x2cf%JIT~kTbaBbUj-4Ghrg2-KPO)hz8Ll7coZh3b33q(YzVaqvGisRS zX0v(jhjTR^Gh7b2jNLM1v+YAfv6kG}*4v?bQFUrjUS9n<99(&3;Q1LroFQsDci_@7 zRF(YgTz$yq^F;!~5ds@;I%@dR)7`e-9hE=fC)a*`54Xw~7H$e%!HqelSDlMCA|o>@TZVcb zTrn3mHOc$|mHWL{bRl!cZkxcLQ}ZdV$vhf5a;F(p3Wj*+@A!`L^PE#jHO0D57mHCVOM}tQC4Cfs?dJMdl21{MWxy$GwGQ+w6+g;xEJ0QC>mQLC=b*a# zjt6$+rsL$M+r#oz4hX-mWNXoqM%7W*xdfQf(NoFtI}0}rP_fy;gD!7Rp``UyEGPP` zQPp_gB-8N#lrKK`Sjl}1)oIiYSuz-+iYMD`RLIZcOw$hwuk#TqIT}+xZpnly%SMFu zbk3rJ$CR-YS3*%i_QrLu6iiXDjz00HQBiDvUqbD&9TQIL5fp1?WkL1x?JMLe6oh>{ zah68L2xVXWc+BF15z76{5NdfV0mXbFb)-Keg-T|hef6_=NO&F%sY_e=h^hjXKhOm5 z;wSoLVKX@gP{o_NywQwVRJTc}zHc}ORZ-~HX2h_eg4^7TCNK0*UVvt4s$>fa=MNK1 z^h!eo9MvCrF%_zgJUQ!!L3z-Ym1uSydOMex=b3i+hYJJth0}m^YxDn{5FB z1s6~iv1%Km6Aj^cF|0G_(MI&_d0v5WtPiTrbGR1#oxm@$OWTE7096rvm^13$gDUeG zUaTbQqso>1mu~C*Q6WQV?y<+DsKF{L=*m(Xig~{`!u-e#Dw18daWsAk)jm-^>eC^K zp4ilO?S7dcTlUVAml0(-la&WzE)?!X-u8Zd7;5oTJtMEBk7})j!-{lwp}ZUq|Kc=xlyh1= zA}u2i70gd%-%LG1;G@H{jxv1&+^w%i95mEwre4Cu82U+6h$Gn;ozsP>h;g zjMM249YR%H8Z-ACn-P8zG5h9yHmc8d<$WG`0F|4436(9{fy#TIxw}-pMY&7@VvMo- zQT=rWVkx#F^w@OjJ^Lqw@|l&Zwh!r}>SZF9-qUF)?5LfcDb-%oC`0D5^qw6h6pP(k zH>{5m+BrYkW!*s~CoXb@M6;o|(hFui#D=Ieb-MH*$qp3Fo>O&$IufP(Ogfq7UqN?6 zBdTSE51?ipi|SL~15n+kC=ogj5>)22!9CrBA64zT)BNy~7Rosk_)_jLE6N;@>>fAX zh|1HpRZ*Eu{j2xUf7K6Hpr&x&90#06Qcx{oD2g8?`Rr7hX~9LYOyttDML4T(XVhYq z4vJyYAa5)_iBoC(>okNDah{D#m8{Df6x_D8zG`6(xBJ99Tf8JfK|1T{n%}$PDxa%d zXS2@XZJH>?`eeyksD~ZxBS#Xf!I(++HlV>U}Ogq9!_m&m+%ypfW@Oz3|Egf?k z=^SwOvEYD;I&$3F*QlA^upejSJpWq#{SB^mP--H6rHFerhx?vysK?k@)i8f!Kdv75 zkfhd5*w5YQ`9{0@aMgR^n81J}YPxa;j?#t!wQT=!vSG@0vH+-gzkABy9*WWmb zi)61R6%hE&v#Erd9}kOrqvZcFO!{S?Hof{muVdC%-+J~PUSix|&nk!%^LYtHn+Z6-~vW0v^{b z{Z1Ef;}>MywR{<6u{MY;i-e)%v}fVrjRd}AKkq;H@C(W>jg<~A`GT8YcSyzv)S;)! zehGa-aVXXKKvT^e6S{ObEH9RO9%bt#EiT7V;rfQ52M^vL8>Z|ohW}qQer|w4i!f{mn+?(iiD3| zm%Mg-CyKt%%6;-h56XF>U3THZ0E!N{m#O!<4HZ_Wv%2R!!PV4{yq|uFLHR@?Z+UM- zp=^ykaqb&~aMpKn+b^3XQC8^S_YoI!oMnR-C%liM%7cWb>(T=#QN!)Ph9{R%{#NTG zGU@{;Kg)|ZyzMG3C#v+jdb|u}Xw;}4w|j)Lk6cq2ci)84OU3K%G1lRx;y>-SM~}H|1V>>s3_BZeSaDL=lC>xs${n(Z$i~CbWZdTTr%K=Y6w? zX~ zE~3Z8oa|-dM^IXA_3k|uU(hu-1=ZuD@u-H{RV1d|9{cgK(%izgXs zYaE=r!s3N$UR-6|a9s;M{VYpj{p1xYKk`l6D&Y~T`R_lLWM-8RkIulsL6-u!(oL>C_LbtyTaUM)Oy)~LO${`idlaL zf;L=17bK_V=UK&2)y~W8b&rWq(r53M)NVgi*I&fub=(8Ryv}KL7>q^fCk_;4GIpW6 z(fOW*ewnD3-P}_leb9K)>D8G0p`>K-#DqAp0AksEP>AT#TN=n92JNt@>g3%0*>sqehwISBDCu!->cq zeL-PC1t~W+?njkfeN58UEa=jaA)$fG%P97eQ)s!c5I+AZZzI1fAucJQ^~8;JsBN3k z6W5?ksO<@v)pC6VYJahpc6wzQ#b;2qs?W@zOvR0cUk*~E@~MdJucZwCo092K{hURQ z>gV)%R6pmeN|s-Kh8QT?2q zj_T*MbW}g*qoevc5gpaf8R)2fPCZBUbIv)cpOei|{hVcv>gV)wR6pmHqxw0a9M#X6 z;lcO zvwPx+cYx|qBhjEuCqQ}Xw4!CN9B43n=kP4q25Ou6Tt3nhgLcOygLk%%LG4=_zfYet zs4s9hj9z>IDm~oA2VaGO%2eLF!@bd_%k#Q`9iV9TF;!W@K(mc^MhcY?6QtMM)OW`NH{?apxBPT;5P^=<#M z9{38M%t$Z01CPYZ2a&h3LFl?22&d(P=*7s9M?s1psK}srvA6;F%}z8;A6o+6{oXlB z9-$yGxYOgo*E!%Xr1UiUoDLjKwek`Y7eM&4TmJmSH{kWxp^+5n0D+a>-AVFOz*~KF zWM`WP?B0o^Yh%1YWP4fv1?5EGPm;Ty>9P#m%;ME;jBLQSwcj*8{TvADlr^!&&H-=E zXpH-llqz$yE-C*doi+uAo+!}FDxm5LrOT7<=`9GJ!otHj4~g10%eY~6FI`V`QEyC ziF(-hYTb>7K62RL+qLz~HZ!1lJL$r5VhSkU9=83a8w?v5G8$4J1i;3#r+j)BuL7mp zvCb3WIY2DHFrgs&7{~+js(pcJ~l{NP(6P_689Alc{y6h&OYSJiuf z>`aJHx4{dbC2#tYyQdIHZ`^ND65I#Wk^<)o`?G*T)?ho`y9S`#K5k@rc{h-eY<^4< zcNIvnv4KhcGLX213qNqJ1F|l9?Xd+Tppm376hB1-l=x2T;4yyKpgz7c;7}k?edH8Y?b|5&_yn%BG(f05%`juI9K<3}geW z@~r%qfcabCiQ94du!-Z6FdLI3Fd6l?FWI&N?E_KKt#=K8M0f6LP|`M_=n@QdCX5qF z*Tav8nzMjGf>T6W;wEf#l;J+%`~c|MibpQD9|ZC%SI_x2GQy^i;KyXXd_ddr$z);L z64+?A>{fo`4s^oTX2^DM0QKNaxjHI8pzPk1XYuSDYzRzPiW4*eqB8;Ela^#a=T%{O zuG|qw{lty(&#D1U9?QxJ<`AG2^@}o}T>w()K|P{cOCYPS9-o%c0(vUqqqZthKuzW? z&)Ad>+ydTTg->e3j@>PNQWQskdo_S?Qp>K=Rw$c zwn1jynNP5zk|ue(izn=~uS>dReG0Z|FiQ0mn!>h$s3+k8_P}8woajYU3+xYCJ2Xxa z<}Y>L_xmLku%qfIebe>=*l9@QJo-u#c2PRLy6;>GyLCP!e7&_7gm?sNw;#RpcIln!8aZuiVN7bY+r${sfSS_WpiA8ZHo2<^KczFFD# z6wJnpX)KJ@z?`{m@&Ktcm~Z$P-<(Me<_u0jS{6cJ=2G;i{N{Zyn;4b6#Jm|ymrq|w z#Die&=*Q-_djiaE?rqXjm;$rse5Kvn4}#gf?UStereIFA_a0~EMlc(xV%|5~2>!wZ&x_@7ya47B)?0Xdwt;!^ zV^ftzV=xmPmhYxt2D9^bVvad4fZ4^l0;zTpsCGM-?9;*s)%MQR@M!1-bfzOD%cjkgMgvT+0~_xylse z;$-xY3%is)R$PSKJ^M8^a?=TNkz{WP8$k-l_8pOfT=kg@sf*eKJ9K^4E*_A(&+~Lo z&`rpdQlZ@ITLZaj8L`iDn+f)6&flJUONisHPa+a0^iL%wjUd=ZPfp^M1VZ~A>n4tL zL$3I=_DFdpV1URq3*N9h_JDxvc7)=T_UT`f*+D z@3QLOZ55w$`Kny?@4VXIamQcfiB-J={3c%K)pEwFT(h?tughxu&LXRFwVmr)JijTQ zUTatWqu%+qepd0i%>C%cbxnWdH+EWA^{eHz>+8A}?2T70YhTz33bI<3XAYIkis*X+5k;#j+GYjOQ;+*bQJuIgP@{hwI%Yq#3& zZ}S6w?6-!`P2|V;*2dRmRqwdk{`i{R)pjS=aIX0eT9vDK*T%j;{K(Tdh9xHT za&2C&-G^&&94`MI+^hZE^jH0_wfi01Ha@FytjSe8$I5^7_qXv`?Y}mEf5N@m-?98h zdzR(@1#bNxvX2 zhx^D6ar_QH-S7webi@Bt5~5!f{`p^{GTgh*L|;io=MOk5#b1uQoUN=+{R5l6OIjICl653MZA0(xMWy&|4g?kv+54yU9s_f{a(tnYH}Fhznthw;0M_#hQ87cE zKtG?+cLd0R=$(^n*FHmFwyU8(EyD_oP9&f6FAc*+xAtAT9NB=*l+MC@{xEC=Bxm+k z9kvpWDjYYR11b(?y6<(Wu(97twmVl2*dBb|q(mYC97emi?Oe_QLz||GKuiwMuvcBD z96k*Uj#Y`x9`eA@{GH#S<0jCOc6+26PynNJS3y6eB+wUpak#{E8yGXgU#7m1hs`40 zG+73_fsT5kyiepS;G8&jSAfO@=g#k*!w|)v}IZG3d5Kum(veNu%3y619F}i&*2BF6rZG?`xfy8LY9n1NXAW5^E`TV&Y5P9*5 zS^riqNQGE?J*@NviEBIGoW42^Qsi4VygBt2WVRAT7*W=OSp0>NgpA#w;&5COf5`{A zLS}l8EBqiTqj!t{TK(@VawLDS$dUY=MUG|d{{JOIznaVG6KAaKZ5)5~U{3v)7RPLy z-H-ndoQjjHs;TK4nyCE2ibZ+M#>Uz5n5)%^eqO1o24ioXm)YicBE>+bh zKooWmx$!Ldn}g^eWBSD84d6+B5&5aG5TwI*-MDCb0A#3zPl!4Jh&gWmveot`pwSgR z-7Zs*;&j?BtDp(IldWT2Y4N{v?-KvPy-WOe?p<1YCl6h#b2hH3f4Ld{2kuUaztkJ4 z>FNK`=PliB9RA_YTmE?rw(j5P?qmoI_L9m{0p{Iu<`+Eef$q79fbqsrU?^5(WZ=0B zv?u8#9S+t3!)CudxpOMOAmV<+XJ8*Nz7_b+=D!TgUeBB+0=t1(|6O`mWj-(^3(}kn zwgLt`c{w%lJTS@9z1{T83Fw@A9n~I219P9R-}otCpbr}hoG94}42jRqh8>Ot24S{x zr=^>~sGl8Y(QyD62fcSkh4=#V#e3UGK2*Y%T@{sHKFh!~<~^jC6bsBHOg^7D+=1D( zLyjJ40TZf}?>gNJO#46en0wj5mg}CTNtd;O-oBvrp%x3!?>cpc&ie^4p1P%EEnE!@ zHqCVbSG0k7s51qa(&&VliN=AU!b{76coQ(GkXAh;vH-dZwN%^G z27tL~-`h#08K95zYMJx`U`X%|*>!CfFz}yIe9=I_t;tsz$3#o8@37sKatN5u^FRvt2yOC;rv{M9nnH)EY3zvY=D*xRk{d>T`Xkr@rfd-gf$=DFr1_E6<%e|vpIe_7+ zozIe=56}jtwfm6C0R8fjz61UHfPw8*P4x12U@X_}3qXs&Y`CFXD<}wlB4AGYQl)4{3iMT1EGYM2V2E=xzH~7Z z7`Tq48ScJHV1_@0Fe>FXfGz%Dx8q_lz^#N^smn@sjd!V0e%bK*h2n@6b zmSi_L0^`%PI1+YRV3sKp8}RM{W|f0)Jk|4nsrcd*E3vP@(9rvOnTP_IPJUm<`(Xg+ zvcwg9`IdnBZdU5h3qznEI=Z5*UXkoS`%yR{?&PNOig!$jsbF6SPHy|&?E{Pqci#4Podd=Sp`yO>8DKtQzfkAs37a!w>-^iBff-qFaTzlM z^Y!#u#ZqfvK5o{fRiy|_{1MagENZ|+?Yg)3$T8S_*^xDzWGB!+$eB8zX%F;|Z<=s& z-T+3v{sh%C6F^r|wCs3w0hpLN5~`m>16|}Oaf0bfp#OYUij!gyXeTu3F0xSpeQN)c z+fh4!e)y^U=;2^s)N{;uw@w|HMyCQJRT+SpgY~GzpD--@z`zrF+T>9ZFa)*oWyBKjZ=j=OxF!k=6V+KDt`3ax zTcjAf_5ic?o0!U*uVJ(8qULdDTVS?jNxPkY4w#R<(kU+>JkcF%NbY$;h=bk9GyFjS zFivD_R{u_@U+j=7mb(e`$%+^F;thblrT7$w%P=sKmevejya%*jLJeWNATXx#?dw0n z4|KO^@}fxy>rR@#d*84W(0+eBaf6m0=r3MzIcT2&^!aI`HaC?B{mZ&k1qs(VlG}g7 zBf`4!<)V00Z~$Sv4b@*i3l>~4om}dcD$2rz@S2X zKY$_%7~HH{R~koweue1jmdZE40rd+C^pKi~&m2hrMz4qgt?i1y%vVAh-JAxS>8|8a zq@E|NV~ft46vlvALT#e)r5`YxmTZ(gFab3}6+Q za1HbKv|0hi{q}kT3%h}toV;`R{FrL>3g>Sc?`Dt zhg&6GU1K$kKi{$c|9KhJ42_hO|K6AF|GbR<2bYmjWuKUuy1JT*k>MX5a#%Zw+1T3J zSiArEHo^bpk5Op$fC(S5)-^PH?CQ&$92YN_We^XdDD+*Zr$~WZTj74ZvEK4gJjxhj>h|{faMu9$24{O zvLg+eW3Q4P)0swdoDqvU68vb6x6#BrVie7ZrgHkHlc6~|xtY)7gt9Ui zUWMZjn%l3ecxJH;&6z%GZPQalb4Mid>N>*E+;J~Qa#mS1=fcXBdDiSt+<)T!kH9^5 zh!1^|a>QWQAtCLQA>*7SL?*MzdVKHZ&XK6-Qz60L=zT z8P+`JMza?vMXeN*(d@BUasl!}G^@Su+L+w{niaDcKlf1$&9d(CrwH~$v!vTD@w*P8 zndxaWosb+f)3b&3xd%a(86^yG@}im8bhAAjRDa_B6Zd}t?*FF8C~D;sPI{;9fA|I^ z&6@7l-=X}Q^4H&@{G0OE-=m~9IiU8F$u->%CfAfdm|Ro-)#N|>4|~d5`}C9y|B&;Z zv9Ysp|3^P(N%!x^d5MMoV>xfbg9lN6%0K0w@=y8ykc0#$_B*3f^91?WsqRJtL5?h@ zAC-p$XVjc$yon$$FIbRuK!OWpRocu6f^=NB`QaczzK*WgBL)es+A?(&CImSoa_i78 zNN|(6JD8jvW8f-)gtNzzHSQcE$g-P3N=uL<72jF9Al`W$*-HZc z|1_!7e{MV5>n_llZ2g+K;T`DAU+J^0u>zgt1nR?-rJzgvXm>w<4d~LftsK0>1-fhr zlA&)>K$o}k_7_oS(3Oy!Qv0q4x@t^3Ja?EucW((%Qg#>U8c$t+H*N;HroNYQUS0rQ zYmK`_dP1OUU;Hptnqcp2ik_={H1 z&GH{VTM-Sqm5dxvoDaIKY#Ry_$v}6|Ncgzm4$z&5UB7jj5Z6-K4x$M$(4)}PdD0;b zdQ4VSjD34RZ<{JFGm{$ViAKFk-R1y#@L3?jkq(qTewcTnJOxVMV$1F?7=tp&qv?V% z4N#`!`pBl>2g;j-R}8sqKzWN}i3s(3P~Lt@ApQ+O?w*uLn)(jP!u)n!eAhu)*0XZ6 zf)yyE?8vBT0A)xi1L0SE7!S};Cpsc%~7H}mPlnp75=x#g#%H}1@=C`~-*)pvl z@oW_+pLiG*%f1ej-Bc^1_#c3>m&(nB9yw6xg7Om|CXdztP)-YNyzy-lDCZkpt2C1ZWn7uXa5N5-YZ-)=EeUqp7TfLHN-U07(x-V6zmMRO-a|1Q-V82z zN-5@81YAl4i}u&CfJ?O&G3C4pxHNHne9ImIE*4; zWmt9^y-EeH>}R8r$_|6;F1^s(8j|43e>d|+AQ!lb_lb?1v<25aMLE_l7r|BiP`xNw zHMr_^vdz?Hf~!ehOF&mLxE|3N>-j|Jcl_>4#A^nwPW9SNmKVU)(_Od0`8&8?;dRu? zXa+}5q7u@A3~;>C>t~bv5*%--x?MPO8yxSOy*{ne4vw*HxkY1ya>l)LMlU$QvBWVU zd`So#8@pPhQ(eHZpZP4MFrnQH-Cpn;>*>(e*v|~ldSp31sY&`GAm1Ei@;B-g*{zKUp;1qQ}_`8P(IHjYgg{WX~Dx+@`A|?2J zX1VF5&~rrZWGmzXV*8LS}YTKv5+;u45m_FVp| zQ4M1L&Fq$5xgd6%*DWF^8N>oS)wft31+g%t8&uc}#KK*VMT!oA*i%&{lgv{f_T>GY zQ`<^GEXP9S!e=%RD-(W_A7=<+bp{`9uz7=6&EZ>vnS?mHj7vA1B$NmIC~E7aKy1Q0 zSR?!-L6%Qm`%H*$$u%HZoEOAN3~S{01}2MTtVBGT5@E8>$*aChb;|o zJz%cyxk(IMkqc#<;o-oQ@VLb0CBc8Jo0d@c5O5Wma%$PG1FmYBfhKzs;A$}~r*!%yM$A~HL-D*QGOI~z2D0BY0eP1=3>=O^vGxjJBG$YDJ?N6#E_TK0u>+p-B_8o6u<4 zK=hMqg#Oh}#b54oLZdA&^T#P0(P*EtrMG(#8XcL<8VqDYqZ5o7ibMivbiR(;oyrT1 zF8fN?cU(YY>uI&=Ovcd|&Est~HLYlDD}yaV=`b4O@GND_X+&fEH_u!6@uD%YmKh0{ zM`MWd)5^CPG^SNMiG3G;=d6zY56tiWh+-34Ogerj>rC%uJErF zzdCTEURC}2ylqYQ>*KaH-LDVu{&K44@RvM;zhtre)j{E3l|LR7{-XQsLE$gT-yRhH zqWra=jcZE#6YlOduD@z(f8vbIPu~Bk{L%X_y5D;LMfqFrzbJq0eS@x&)~b(x&LQJZ V#wgZ|{cjuk{{TmFvN{z~0RU43L0kX; diff --git a/tests/test_data/Ex4_input.rds b/tests/test_data/Ex4_input.rds index 4d8f99d1157fac80430bb2a94a1d998a0ffc91a1..babe2c68c3001433a55a2b5cba87379b46809224 100644 GIT binary patch literal 5799 zcma)=cTf||x`&Y}O$4a|h9V$EA~h5x6e&`rgOmsgNRt{uO;A9j2uKwo#DYMiNk>XT z5s(f7(h1d20)*Z|xZk~J=FFV$%suz+GxM8gcJ`0={bP4$7m#q7;(rF!rb9#`pIZpv z3^V9<_8K@L2zl;{<}KQsQI0cDCD?DZ!@6^~!^7}<%1KAAZn)Xp#>wpOCldz+8t=^F zoNCYk$r>a_|+E~HT zn6l3ANt(t-&lacmOMlj>-D=owQ&}3lM9a`F5b)6o4HNA9S>Z* z`Tc!Oe}-v)S%CN$(&+jUoax165H;*DxK55wxenrn+Ez&PuNpwL@>h*Xq zj7dob8I1s*SvW|FOQU0sXck<|p6N*zzt)?vV~uilGx{ue+gRJkIDhRsH2xAh%ABWf zncb*-%QROua9k&lL(}R>4@f6nWW+bY2wl?V+yfdr>r)EN`0d`mcuG6SEDDl8_2Dr} ziGTf|iTSzXQ%eJaEpoXg4ayv(`!H0w!%{Y*Mfw>7^zA+knQduR^U?ZQ(pSkV-Y2|I zYK>|5h2~78v>hxN@}>XWP`xLoT%&XstQP~JhRwv{T-Z+COr|WoU~wL{^v4Y74RmPv z6P>bw<(N>qrO$Fp1`1R`UCf<2Zkm^7s_@D$0z|CBH!Il#P-B93BoGEY7mK z?oia4zvIy==-yr;U-0R-vD8@q9i*vUZ)5o5^fpP?rWoGAkXPA**jERU_^WeG3_k>F z7juGciXR+~i%hy1YL(XtFeiG}E?I}TY6jfWFz0C2-efVPi;y(xm;ZccBRQd3$3{og zjEjoJnz3W-H1s?RQBqp7BCjHSZ1k4qXt=RzARn2-t=|oi^onx8`Xt;4$2tecJFNU! zy6LIAoaEkNm0-_Z>t%$;6mmQtg=5`PrrdI4VOPRv2L0MA(rl!~UDnjw=z_--Je`jO ztN1Ko$!rQKQS31PuBxiNnaOJZ%0pYZWBk^>2Q<2~^RowJG?7our&=uEH_?+@GVDFW zpPGZD%s{wovwfS*q|Bn^%eV8-Pl&cyHFF^9$#~W7M{|r+ImtWEp-DSt!9k16(W4^( znm9P!55Hws^#br56i2-MZK+bYYf}d~k=sPP)vU%g^(FslBP_6MsnI;XkY#6YqjIwz z;wYVFL}+2@%`P-i=BQJ(aO>&?X4wxg2gQK82rqkZtvM{)d0utHT+xuOw$HN_RBxVM z^Z8yS+$7`U`Ud39n%bLws50}sP10Stzw|euY)8!2d1xg}q3Y3uor=s4g@Ab1#EiHF z6`q8NKziE@$K=oIRmKKfN~?Ao8_g`=4eO`^V2V2RNI&4 z7?&N4{{&04IQ?u-*^UYaEVKR;PSF+I6Le+T+nZ)}NG^KPw!FHtmLMmQ%)>R94$ zC=&zb@hyWdP*h+#_!Sc0F?Bel+9gz^NsHM0H6s0S2yt&7-#QqDq64$QZ;{1S=sSeuwI&(#Wi38BVbhO?4{j<5d>$@%g~EG3!Y_@7cdU;YxyK$bZE zr>GqNDWJOUEY-zC&(DAQ--Yo)n$$?# zZo~cup}V+23L|c}V*htR@Q{0nkXIM7q^t!j(}l}1u>Ierz!B;n)L&52FtFcx_@AWZ zDlcRh*D@#NX%eiBYF3!r-XKn$t@g1YnjiLwYff zz9Yk2Uh8w^;)cs8VlO-bSP#o&4;zybYaUYbL{84f9G2BJ?Fkv^j(7c^1^nkCA>|Xx zEPASsNSEAomjEe;HrWh*ll&|{W5C$aFX@atz5eYeRsR6YJEGec;R4eu-2S1TzVQh*D-{=o3OiF;eFvmq`S)LEylj`GNiqVTZd zD&SF2HD-DfI(m2SnlhM?(gW`%71@wvHx&8)!VcFDw``h58`43LwF5p5o^@VwS;SmV zq)uO|i%L#$wvMlr7&IS4Uj3Xr!crasHHC8P$0?bSyec+6lqy|W0CV87rKcP-4fyvI z=`Hz}3iv$~XA38u;x(rC6YVvhtHd5ib!R)h#5NEvW?<`UYk1pAGf4f)_dTYNjxQnRw zB)3jp0=b8QKnp)q{-Z&@N^+>gz1sRMD1u;iDxo&<&~X%#;3}4>XtzqFTzL5z$;lNO z4_~8(7)$`iFeAju;`|B{?1muCqC|<4$#v-pOXrHgs(2%$cn1II1K7Gy59h5qlxmm0 z#MyWGAOf?OU;M1qWU|6{~>z-3}+3^-lT$?v8ex>S60> zRJd=p%j+d@o*G6@NbISvRsz%W*KWjk{MwX^+nkx#IG{@Yb4rCxQd{5XnCp5>7zri+ z$A6aFmu95KrH?)}b+{(AvoSoZ9Ryd)OYXJ?YVfapN)^`YN*dj372qaQssh-8=+G&# zrjNPV;I?O{2DAmwo0sS|;=ms{g7o|CoWvMDjsv5szpjQ4O>V^+N{ZE_eoFrJ9ENhu zd}h1n5y&CD&9gq-%m1q^_}l?(+CLdz=(*05k*M9rg- zLs7KG+4|XH72Y4-ys3G9a5o|}dohE-r0AlS^8nZB=Kg3{xZo{P&Iq%3T@RUqDH;;= z{T&#$;1Lf$Q&STj?sQ_+soxbjE?`9_*;b1vp5miACNTmdZgsS|!mDfwO`&6r(5J4x zKW?5h6?n)Sh5N6X9Xdo*OXnFAMiAw%N>-amv1X_^WxOV1e^M!T~iD=))+x#C524QX$Z5&5X)z`1#@TM?{8E-D;AL|zPF2ReeYon%D_`f35RcnM}AqMunq}#i!h8h z?Q?Q{dn#ph5FT*0i5$42vrcCNa#Rn#nwx%#Ifx!S;|!j#d$l9r_`Pie3VkR)X5jNR zKqI4fPos6GzdU@|B67kIG*2}IczKs`&MA5?xXLJ{1w#?Sao0Sl*B%Atz^~;0NboUi z7d;zn0eliyO#6PGMk3LkEJ|({M}I=c7f9r+U!V$d>S^Li(Hoi5!{#HtPIIJhjU(v3 z%8~Vh8&K681Gc1wuwMzn?napnUjo9&&&WzIG3dy0*&#PrB{@PUsnI*_DPuuP-ujz{;&241sJM80D zw*pHSDJQ|m5)-l__FV>L9Q!RZjNrjSEO4m$+|i*&=>YVr!FFejbxW!u>$S7n=&w0@ zg;v~QMWu6gEyRi*Iw75mV$hFa$shcfJ|Om6Wc$s%fOvyn+PAkmDTQ>m?ZnRaq_9bb z{l4u%cz~CJ=zc?poeZBrV`9Eg9Qq$ge_<+T;h9HH5;dHW$qqO9 zB)SH3)FX@-%vms59`P@6lUL4Qw!@{nv&)b7?o>lfhIe20w1*mQz0M55e|s_d_2Q513XxMSc5bwZLu ze>9nE@Ns(h;GR~a&}OnfVu+`mbtf4p%ApJVB@-F)B%ZnW#{m0brZEvd2|^&_pSq++ zfAiAh20J!8LS>ykpvHwN3e^JI{c)3?^;h!yxjQ3D9CrQ7G9&jVBZT$4d)OSXn`Np;!h{^wk!~xW z#*G%TlQ5_qKH2Lo3phC5sT6B!dR$_!mSShTTtZg{6WaED)~`x07lLQ+z2`&dU1&Ff zJ2wG>fxhfNxw^vrn%N((7jj)u+Y-(TJ7>4MxJq|JZIFoFB@b(_uUO})ade0+C5+LA zm*UqhhB573z>Bp;(tdaex3n&BML#07Y0LyCmV9`&7Pd<;z^4&63b7I*3t4l!+iAS3}GbE4d)A6x&aW$*gW|DVni7wSMj@`NTH{ zu%tKMgcDWT=#s+nBsLXTgXLfM|Cei8Ltf$&`q`^qkuHN$$BSvVAroO&y;262y?Fcc#_vM}_fq{Oq8#P!Z6fs&)7BmtqwuUXuc{T9!w3 zrx}ADuo!XSbxM4}YR7oQNe1NZu1E;t1cHFq5~WX)wx1(*Tj)%B=|TrEOCxE36qcC~ z90J!|XpIS2%jSYtA6SJPjpr%V1e4|X%yGygwN}nX+!>+k2++7-j^@HOG*|iT?xDGo z)hf2_F82J_wGXnhXDWEjfyT{^^J+Dzp$iM80MY~q^TQN#csSa)chVHzJ~ZUR!n~Q~ zb3&fu#}DMD!J3tgvMiH(8ZoC8KK8o!4F|~N&PT-OAdqqHS?tG;8c7>oZ?QVo&Ldl1 z!__BIIAg?h>}^rz&is$>s==bOH`2CJa!mXKr?U?6=z{_OXla{D`YQW6e2NUj+U~Oc z!PBw*3EB=|Zm0{)aisg>L<85p|77iC z;Vg%HziNC=3d#Nq+`pXeA*XvzplLAp#@iAG?Yo%O&n z40T@{IT^!5;vwQMsfk{ielgpk_89C-QBM_25KQXJ$qr~u@Vo_u3NmWb8yy?8(yzCu1DcaTZKO=?7+hjDMIX8E` zq;0CpU9tcm152yMONf;OUm@iZ7=JWg@h5(xN|P41nLA;;+KuSNAxLfYUcs{xG)8;O`xqUD22NhF z@-IicYt6ZHUQPM8?L)6MmluL~K|c9MMsMilswCe=i)4hJSvIH&Wp9-j*kmnb%zV92 zbE@uB)Zgj++5Tv@|N3_eF`vW_?8&N`)ruD#T3CP1FYmo9X2`cweL~Y~PQ(c=8FW$gpT|;cL zkh?X`oCN+J!yjS6-f3P|#1mBA;+fbj(ov&;5kCSHXiF89{NOfBl9_s@XXM_If#e?? zkd)}QNS`tv7?{8FVw_Q2(&|+%4Us^7=~6{z#}smpv^@Dqu;4~7v?8bKL7DWpxBfA8 zc|QX<$Vrmbb@Yy8=BHOY{jAQzrEz9wNFgkn5Pin_H){pD2Wlo3Ftj9|APg9WYA35Nk++SO|*e4ag(K;?C%Z3#Xx$6!Lvf ZzD8EwXQz7*P5TSRD#QyT`Bn;w{{mO!#Nz+} literal 5530 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 U+iBe*zwkWDL8Rr>t=F#o7e+Qj7ytkO diff --git a/tests/test_data/Ex4_output.rds b/tests/test_data/Ex4_output.rds index 1e80342c071db5dc378a7e9718a389eda1053b91..efb7b8442816f3373a49eeeb25fa2acd941f420f 100644 GIT binary patch literal 52482 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%0D(vy>M; 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 literal 52463 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