From 213bda0d5d067dfc5a29e888f0cabbb811f2b8f9 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Fri, 31 Jan 2025 12:23:44 -0700 Subject: [PATCH 01/16] Mostly refactoring and code cleaning --- DESCRIPTION | 2 +- R/diffnet-class.r | 201 ++++++++++++++++++++++++++++---------------- R/diffnet-methods.r | 4 +- R/rdiffnet.r | 74 +++++++++++----- 4 files changed, 185 insertions(+), 96 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 50780a1..74f5fd6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: netdiffuseR Title: Analysis of Diffusion and Contagion Processes on Networks -Version: 1.22.7 +Version: 1.22.9999 Authors@R: c( person("George", "Vega Yon", email="g.vegayon@gmail.com", role=c("aut", "cre"), comment=c(ORCID = "0000-0002-3171-0844", what="Rewrite functions with Rcpp, plus new features") diff --git a/R/diffnet-class.r b/R/diffnet-class.r index 1858da8..56ccaa1 100644 --- a/R/diffnet-class.r +++ b/R/diffnet-class.r @@ -6,8 +6,13 @@ make_col_names <- function(n, is.dynamic, prefix="v.") { } # Checks attributes to be added to a diffnet object -check_as_diffnet_attrs <- function(attrs, meta, is.dynamic, id.and.per.vars=NULL, - attr.class="vertex") { +check_as_diffnet_attrs <- function( + attrs, + meta, is.dynamic, + id.and.per.vars=NULL, + attr.class="vertex" + ) { + # Getting meta n <- meta$n nper <- meta$nper @@ -350,7 +355,7 @@ check_as_diffnet_attrs <- function(attrs, meta, is.dynamic, id.and.per.vars=NULL #' or static (\code{"static"}). #' @param as.df Logical scalar. When TRUE returns a data.frame. #' @param name Character scalar. Name of the diffusion network (descriptive). -#' @param behavior Character scalar. Name of the behavior been analyzed (innovation). +#' @param behavior Character vector. Name of the behavior(s) been analyzed (innovation). #' #' @seealso Default options are listed at \code{\link{netdiffuseR-options}} #' @details @@ -555,16 +560,20 @@ as_diffnet.networkDynamic <- function(graph, toavar, ...) { #' @export #' @rdname diffnet-class -new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm = TRUE), - vertex.dyn.attrs = NULL, vertex.static.attrs= NULL, - id.and.per.vars = NULL, - graph.attrs = NULL, - undirected = getOption("diffnet.undirected"), - self = getOption("diffnet.self"), - multiple = getOption("diffnet.multiple"), - name = "Diffusion Network", - behavior = "Unspecified" - ) { +new_diffnet <- function( + graph, toa, + t0=min(toa, na.rm = TRUE), + t1=max(toa, na.rm = TRUE), + vertex.dyn.attrs = NULL, + vertex.static.attrs = NULL, + id.and.per.vars = NULL, + graph.attrs = NULL, + undirected = getOption("diffnet.undirected"), + self = getOption("diffnet.self"), + multiple = getOption("diffnet.multiple"), + name = "Diffusion Network", + behavior = NA_character_ +) { # Step 0.0: Check if its diffnet! -------------------------------------------- if (inherits(graph, "diffnet")) { @@ -574,9 +583,17 @@ new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm # Step 0.1: Setting num_of_behavior ------------------------------------------ - if (inherits(toa, "matrix")) { + if (inherits(toa, "matrix")) num_of_behaviors <- dim(toa)[2] - } else {num_of_behaviors <- 1} + else + num_of_behaviors <- 1 + + if (is.na(behavior)) + behavior <- rep("Unknown", num_of_behaviors) + else if (length(behavior) != num_of_behaviors) + stop( + "Length of -behavior- must be equal to the number of behaviors in -toa-." + ) # Step 1.1: Check graph ------------------------------------------------------ meta <- classify_graph(graph) @@ -585,27 +602,30 @@ new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm # Step 1.2: Checking that lengths fit - if (num_of_behaviors == 1) { - if (length(toa)!=meta$n){ stop("-graph- and -toa- have different lengths (", meta$n, " and ", length(toa), - " respectively). ", "-toa- should be of length n (number of vertices).") } - } else { - if (length(toa[,1])!=meta$n) {stop("-graph- and -toa[,1]- have different lengths (", meta$n, " and ", length(toa[,1]), - " respectively). ", "-toa- should be of length n (number of vertices).") } + if ((num_of_behaviors == 1L) && (length(toa) != meta$n)) { + + stop( + "-graph- and -toa- have different lengths (", meta$n, " and ", + length(toa), + " respectively). -toa- should be of length n (number of vertices)." + ) + + } else if (length(toa[, 1L])!=meta$n) { + + stop( + "-graph- and -toa[, 1]- have different lengths (", meta$n, " and ", + length(toa[, 1L]), + " respectively). ", "-toa- should be of length n (number of vertices)." + ) + } - # Step 2.1: Checking class of TOA and coercing if necessary ------------------- - if (num_of_behaviors==1) { - if (!inherits(toa, "integer")) { - warning("Coercing -toa- into integer.") - toa <- as.integer(toa) - } - } else { - for (q in 1:num_of_behaviors) { - if (!inherits(toa[,q], "integer")) { - warning("Coercing -toa- into integer.") - toa[,q] <- as.integer(toa[,q]) - } - } + # Step 2.1: Checking class of TOA and coercing if necessary + if (!inherits(toa, "integer")) { + + warning("Coercing -toa- into integer.") + toa[] <- as.integer(toa) + } # Step 2.2: Checking names of toa @@ -624,42 +644,66 @@ new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm if (num_of_behaviors==1) { if (meta$type != "static") { + tdiff <- meta$nper - ncol(mat$adopt) if (tdiff < 0) - stop("Range of -toa- is bigger than the number of slices in -graph- (", - ncol(mat$adopt), " and ", length(graph) ," respectively). ", - "There must be at least as many slices as range of toa.") + stop( + "Range of -toa- is bigger than the number of slices in -graph- (", + ncol(mat$adopt), " and ", length(graph) ," respectively). ", + "There must be at least as many slices as range of toa." + ) else if (tdiff > 0) - stop("Range of -toa- is smaller than the number of slices in -graph- (", - ncol(mat$adopt), " and ", length(graph) ," respectively). ", - "Please provide lower and upper boundaries for the values in -toa- ", - "using -t0- and -t- (see ?toa_mat).") + stop( + "Range of -toa- is smaller than the number of slices in -graph- (", + ncol(mat$adopt), " and ", length(graph) ," respectively). ", + "Please provide lower and upper boundaries for the values in -toa- ", + "using -t0- and -t- (see ?toa_mat)." + ) + } else { - graph <- lapply(1:ncol(mat$adopt), function(x) methods::as(graph, "dgCMatrix")) + + graph <- lapply( + 1:ncol(mat$adopt), function(x) methods::as(graph, "dgCMatrix") + ) + meta <- classify_graph(graph) + } } else { if (meta$type != "static") { + tdiff <- meta$nper - ncol(mat[[1]]$adopt) if (tdiff < 0) - stop("Range of -toa- is bigger than the number of slices in -graph- (", - ncol(mat[[1]]$adopt), " and ", length(graph) ," respectively). ", - "There must be at least as many slices as range of toa.") + stop( + "Range of -toa- is bigger than the number of slices in -graph- (", + ncol(mat[[1]]$adopt), " and ", length(graph) ," respectively). ", + "There must be at least as many slices as range of toa." + ) else if (tdiff > 0) - stop("Range of -toa- is smaller than the number of slices in -graph- (", - ncol(mat[[1]]$adopt), " and ", length(graph) ," respectively). ", - "Please provide lower and upper boundaries for the values in -toa- ", - "using -t0- and -t- (see ?toa_mat).") + stop( + "Range of -toa- is smaller than the number of slices in -graph- (", + ncol(mat[[1]]$adopt), " and ", length(graph) ," respectively). ", + "Please provide lower and upper boundaries for the values in -toa- ", + "using -t0- and -t- (see ?toa_mat)." + ) + } else { - graph <- lapply(1:ncol(mat[[1]]$adopt), function(x) methods::as(graph, "dgCMatrix")) + + graph <- lapply( + 1:ncol(mat[[1]]$adopt), function(x) methods::as(graph, "dgCMatrix") + ) + meta <- classify_graph(graph) + } } # labels of the time periods - if (num_of_behaviors==1) { + if (num_of_behaviors == 1) { meta$pers <- as.integer(colnames(mat$adopt)) - } else {meta$pers <- as.integer(colnames(mat[[1]]$adopt))} # same for all behaviors + } else { + meta$pers <- as.integer(colnames(mat[[1]]$adopt)) + } # same for all behaviors # Step 4.0: Checking the attributes ------------------------------------------ @@ -688,48 +732,59 @@ new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm meta$self <- self meta$undirected <- undirected meta$multiple <- multiple - meta$name <- ifelse(!length(name), "", ifelse(is.na(name), "", - as.character(name))) - meta$version <- utils::packageVersion("netdiffuseR") + meta$name <- ifelse( + !length(name), "", ifelse(is.na(name), "", as.character(name)) + ) - # Removing dimnames - graph <- Map(function(x) Matrix::unname(x), x=graph) - #dimnames(toa) <- NULL + meta$version <- utils::packageVersion("netdiffuseR") + graph <- Map(function(x) Matrix::unname(x), x=graph) + + if (num_of_behaviors == 1) { + + meta$behavior <- behavior - if (num_of_behaviors==1) { - meta$behavior <- ifelse(!length(behavior), "", ifelse(is.na(behavior), "", - as.character(behavior))) dimnames(mat$adopt) <- NULL dimnames(mat$cumadopt) <- NULL adopt <- mat$adopt cumadopt <- mat$cumadopt + } else { - meta$behavior <- paste(unlist(behavior), collapse = ", ") + + meta$behavior <- behavior for (q in 1:num_of_behaviors) { dimnames(mat[[q]]$adopt) <- NULL dimnames(mat[[q]]$cumadopt) <- NULL } + adopt <- list() cumadopt <- list() + for (q in 1:num_of_behaviors) { adopt[[q]] <- mat[[q]]$adopt cumadopt[[q]] <- mat[[q]]$cumadopt } + } - return(structure(list( - graph = graph, - toa = toa, - adopt = adopt, - cumadopt = cumadopt, - # Attributes - vertex.static.attrs = vertex.static.attrs, - vertex.dyn.attrs = vertex.dyn.attrs, - graph.attrs = graph.attrs, - meta = meta - ), class="diffnet")) + return( + structure( + list( + graph = graph, + toa = toa, + adopt = adopt, + cumadopt = cumadopt, + # Attributes + vertex.static.attrs = vertex.static.attrs, + vertex.dyn.attrs = vertex.dyn.attrs, + graph.attrs = graph.attrs, + meta = meta + ), + class="diffnet" + ) + ) + } #' @export diff --git a/R/diffnet-methods.r b/R/diffnet-methods.r index 239634d..79f9b0f 100644 --- a/R/diffnet-methods.r +++ b/R/diffnet-methods.r @@ -113,7 +113,7 @@ print.diffnet <- function(x, ...) { cat( "Dynamic network of class -diffnet-", paste(" Name :", meta$name), - paste(" Behavior :", meta$behavior), + paste(" Behavior :", paste(meta$behavior, collapse=", ")), paste(" # of nodes :", nodesl ), paste(" # of time periods :", meta$nper, sprintf("(%d - %d)", meta$pers[1], meta$pers[meta$nper])), paste(" Type :", ifelse(meta$undirected, "undirected", "directed")), @@ -333,7 +333,7 @@ summary.diffnet <- function( paste("Left censoring :", sprintf("%3.2f (%d)", lc/meta$n, lc)), "\n", paste("Right centoring :", sprintf("%3.2f (%d)", rc/meta$n, rc)), "\n") } else { - beh_names <- strsplit(meta$behavior, ", ")[[1]] + beh_names <- meta$behavior for (q in 1:length(object$cumadopt)) { cat("\n Behavior : ", beh_names[q], "\n", rule,"\n",sep="") diff --git a/R/rdiffnet.r b/R/rdiffnet.r index 21f7bdb..5c68380 100644 --- a/R/rdiffnet.r +++ b/R/rdiffnet.r @@ -370,6 +370,18 @@ rdiffnet_multiple <- function( } +default_rewire.args <- list( + p = .1, + undirected = getOption("diffnet.undirected", FALSE), + self = getOption("diffnet.self", FALSE) +) + +default_exposure.args <- list( + outgoing = TRUE, + valued = getOption("diffnet.valued", FALSE), + normalized = TRUE +) + #' @rdname rdiffnet #' @export rdiffnet <- function( @@ -390,13 +402,13 @@ rdiffnet <- function( ) { # Checking options - if (!length(rewire.args[["p"]])) rewire.args[["p"]] <- .1 - if (!length(rewire.args[["undirected"]])) rewire.args[["undirected"]] <- getOption("diffnet.undirected", FALSE) - if (!length(rewire.args[["self"]])) rewire.args[["self"]] <- getOption("diffnet.self", FALSE) + for (arg in names(default_rewire.args)) + if (!length(rewire.args[[arg]])) + rewire.args[[arg]] <- default_rewire.args[[arg]] - if (!length(exposure.args[["outgoing"]])) exposure.args[["outgoing"]] <- TRUE - if (!length(exposure.args[["valued"]])) exposure.args[["valued"]] <- getOption("diffnet.valued", FALSE) - if (!length(exposure.args[["normalized"]])) exposure.args[["normalized"]] <- TRUE + for (arg in names(default_exposure.args)) + if (!length(exposure.args[[arg]])) + exposure.args[[arg]] <- default_exposure.args[[arg]] if (inherits(exposure.args[["attrs"]], "matrix")) { # Checking if the attrs matrix is has dims n x t @@ -449,10 +461,10 @@ rdiffnet <- function( # Step 1.0: Setting the seed nodes ----------------------------------------- - rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior) - seed.p.adopt <- rdiffnet_args$seed.p.adopt - seed.nodes <- rdiffnet_args$seed.nodes - behavior <- rdiffnet_args$behavior + rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior) + seed.p.adopt <- rdiffnet_args$seed.p.adopt + seed.nodes <- rdiffnet_args$seed.nodes + behavior <- rdiffnet_args$behavior num_of_behaviors <- rdiffnet_args$num_of_behaviors # Step 1.1: Number of initial adopters @@ -462,13 +474,21 @@ rdiffnet <- function( for (i in 1:num_of_behaviors) { if ((seed.p.adopt[[i]] > 1) | (seed.p.adopt[[i]] < 0)) { - stop(paste("The proportion of initial adopters for behavior", i, "should be a number in [0,1]")) + stop( + paste( + "The proportion of initial adopters for behavior", i, + "should be a number in [0,1]" + ) + ) } if (n*seed.p.adopt[[i]] < 1) { - warning(paste("Set of initial adopters for behavior", i, "set to 1.")) + warning( + paste("Set of initial adopters for behavior", i, "set to 1.") + ) } n0[[i]] <- max(1, n * seed.p.adopt[[i]]) + } # Step 1.2: finding the nodes @@ -614,21 +634,35 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) { # The class of seed.p.adopt determines if is a single or multiple diff pross. if (inherits(seed.p.adopt, "list")) { - message(paste("Message: Multi-diffusion behavior simulation selected.", - "Number of behaviors: ", length(seed.p.adopt))) + + message( + paste( + "Message: Multi-diffusion behavior simulation selected.", + "Number of behaviors: ", length(seed.p.adopt)) + ) + multi <- TRUE + } else if (inherits(seed.p.adopt, "numeric")) { - if (length(seed.p.adopt)>1) { - stop(paste("length(seed.p.adopt) =", length(seed.p.adopt), - ", but for multi-diffusion -seed.p.adopt- must be a -list-.")) + if (length(seed.p.adopt) > 1) { + + stop( + paste("length(seed.p.adopt) =", length(seed.p.adopt), + ", but for multi-diffusion -seed.p.adopt- must be a -list-.") + ) + } multi <- FALSE + } else { - stop("The object -seed.p.adopt- must be a -numeric- (for a single behavior diff)", - "or a -list- (multiple behavior diff).") + stop( + "The object -seed.p.adopt- must be a -numeric- (for a single behavior diff)", + "or a -list- (multiple behavior diff)." + ) + } # seed.nodes stuff @@ -755,7 +789,7 @@ split_behaviors <- function(diffnet_obj) { # creates a list, keeping the structure of each element diffnets <- replicate(ncol(diffnet_obj$toa), diffnet_obj, simplify = FALSE) - behaviors_names <- strsplit(diffnet_obj$meta$behavior, ", ")[[1]] + behaviors_names <- diffnet_obj$meta$behavior # loop over the behaviors for (q in 1:ncol(diffnet_obj$toa)) { From 5c51519c1b540c4c2bc87a323375c551dada8429 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 3 Feb 2025 11:49:30 -0700 Subject: [PATCH 02/16] Cleaning --- DESCRIPTION | 2 +- NEWS.md | 7 ++ R/diffnet-class.r | 18 ++-- R/diffnet-methods.r | 4 +- R/graph_data.r | 77 ------------------ man/diffnet-class.Rd | 6 +- man/figures/netdiffuser-logo.png | Bin 150747 -> 145631 bytes man/split_behaviors.Rd | 36 ++++++++ netdiffuseR.Rproj | 1 + tests/testthat/test-rdiffnet.R | 5 +- vignettes/large-simulation.Rmd | 44 ---------- ...ulating-multiple-behaviors-on-networks.Rmd | 6 +- 12 files changed, 69 insertions(+), 137 deletions(-) create mode 100644 man/split_behaviors.Rd delete mode 100644 vignettes/large-simulation.Rmd diff --git a/DESCRIPTION b/DESCRIPTION index 74f5fd6..b86a4ba 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -51,7 +51,7 @@ Suggests: survival VignetteBuilder: knitr LinkingTo: Rcpp, RcppArmadillo -RoxygenNote: 7.3.1 +RoxygenNote: 7.3.2 Encoding: UTF-8 URL: https://github.com/USCCANA/netdiffuseR, https://USCCANA.github.io/netdiffuseR/ diff --git a/NEWS.md b/NEWS.md index 364f9ee..ffc8991 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,10 @@ +# Changes in netdiffuseR version 1.23.0 (2025-01-03) + +* New methods for simulating multi-diffusion models, including disadoption. + +* + + # Changes in netdiffuseR version 1.22.7 (2024-09-18) * Minor changes to testing (skip warnings). diff --git a/R/diffnet-class.r b/R/diffnet-class.r index 56ccaa1..d92ec8d 100644 --- a/R/diffnet-class.r +++ b/R/diffnet-class.r @@ -532,7 +532,7 @@ check_as_diffnet_attrs <- function( #' \item \code{undirected}: Logical scalar. #' \item \code{multiple}: Logical scalar. #' \item \code{name}: Character scalar. -#' \item \code{behavior}: Character scalar. +#' \item \code{behavior}: A list of character scalars. #' } #' } #' @author George G. Vega Yon & Aníbal Olivera M. @@ -572,7 +572,7 @@ new_diffnet <- function( self = getOption("diffnet.self"), multiple = getOption("diffnet.multiple"), name = "Diffusion Network", - behavior = NA_character_ + behavior = NULL ) { # Step 0.0: Check if its diffnet! -------------------------------------------- @@ -583,17 +583,19 @@ new_diffnet <- function( # Step 0.1: Setting num_of_behavior ------------------------------------------ - if (inherits(toa, "matrix")) + if (inherits(toa, "matrix")) num_of_behaviors <- dim(toa)[2] else num_of_behaviors <- 1 - if (is.na(behavior)) + if (length(behavior) == 0L) behavior <- rep("Unknown", num_of_behaviors) else if (length(behavior) != num_of_behaviors) stop( "Length of -behavior- must be equal to the number of behaviors in -toa-." ) + else if (!inherits(behavior, "list")) + behavior <- as.list(behavior) # Step 1.1: Check graph ------------------------------------------------------ meta <- classify_graph(graph) @@ -603,14 +605,14 @@ new_diffnet <- function( # Step 1.2: Checking that lengths fit if ((num_of_behaviors == 1L) && (length(toa) != meta$n)) { - + stop( "-graph- and -toa- have different lengths (", meta$n, " and ", length(toa), " respectively). -toa- should be of length n (number of vertices)." ) - } else if (length(toa[, 1L])!=meta$n) { + } else if ((num_of_behaviors > 1L) && length(toa[, 1L])!=meta$n) { stop( "-graph- and -toa[, 1]- have different lengths (", meta$n, " and ", @@ -620,7 +622,7 @@ new_diffnet <- function( } - # Step 2.1: Checking class of TOA and coercing if necessary + # Step 2.1: Checking class of TOA and coercing if necessary if (!inherits(toa, "integer")) { warning("Coercing -toa- into integer.") @@ -686,7 +688,7 @@ new_diffnet <- function( "Please provide lower and upper boundaries for the values in -toa- ", "using -t0- and -t- (see ?toa_mat)." ) - + } else { graph <- lapply( diff --git a/R/diffnet-methods.r b/R/diffnet-methods.r index 79f9b0f..4896bc6 100644 --- a/R/diffnet-methods.r +++ b/R/diffnet-methods.r @@ -324,7 +324,7 @@ summary.diffnet <- function( "Name : ", meta$name, "\n") if (single) { - cat(" Behavior : ", meta$behavior, "\n", + cat(" Behavior : ", meta$behavior[[1L]], "\n", rule,"\n",sep="") cat(header,"\n") cat(hline, "\n") @@ -335,7 +335,7 @@ summary.diffnet <- function( } else { beh_names <- meta$behavior for (q in 1:length(object$cumadopt)) { - cat("\n Behavior : ", beh_names[q], "\n", + cat("\n Behavior : ", beh_names[[q]], "\n", rule,"\n",sep="") cat(header,"\n") cat(hline, "\n") diff --git a/R/graph_data.r b/R/graph_data.r index d8d4a94..e790492 100644 --- a/R/graph_data.r +++ b/R/graph_data.r @@ -41,83 +41,6 @@ #' @family graph formats NULL - -as_generic_graph <- function(graph) UseMethod("as_generic_graph") - -# Method for igraph objects -as_generic_graph.igraph <- function(graph) { - - # If multiple then warn - if (igraph::any_multiple(graph)) - warning("The -igraph- object has multiple edges. Only one of each will be retrieved.") - if ("weight" %in% igraph::graph_attr_names(graph)) { - adjmat <- igraph::as_adj(graph, attr="weight") - } else { - adjmat <- igraph::as_adj(graph) - } - - # Converting to dgCMatrix - env <- environment() - ans <- new_generic_graph() - suppressWarnings(add_to_generic_graph("ans", "graph", list(`1`=adjmat), env)) - meta <- c(classify_graph(adjmat), list( - self = any(igraph::is.loop(graph)), - undirected = FALSE, # For now we will assume it is undirected - multiple = FALSE, # And !multiple - class = "igraph" - )) - add_to_generic_graph("ans", "meta", meta, env) - - return(ans) -} - -new_generic_graph <- function() { - list(graph=NULL, meta=NULL) -} - -# This function adds an element checking that the slot exits -add_to_generic_graph <- function(gg,nam,val,env=environment()) { - obj <- get(gg, envir = env) - if (!(nam %in% names(obj))) stop(nam," unknown slot.") - obj[[nam]] <- val - assign(gg,obj,envir = env) - invisible(NULL) -} - -# Method for network objects -as_generic_graph.network <- function(graph) { - # If multiple then warn - if (network::is.multiplex(graph)) - warning("The -network- object has multiple edges. These will be added up.") - - # Converting to an adjacency matrix (dgCMatrix) - adjmat <- edgelist_to_adjmat( - network::as.edgelist(graph), - undirected = !network::is.directed(graph), - multiple = network::is.multiplex(graph), - self = network::has.loops(graph) - ) - - ord <- network::network.vertex.names(graph) - ord <- match(ord, rownames(adjmat)) - adjmat <- adjmat[ord,ord] - - env <- environment() - ans <- new_generic_graph() - suppressWarnings(add_to_generic_graph("ans", "graph", list(`1`=adjmat), env)) - - meta <- c(classify_graph(adjmat), list( - self = network::has.loops(graph), - undirected = !network::is.directed(graph), - multiple = network::is.multiplex(graph), - class = "network" - )) - - add_to_generic_graph("ans", "meta", meta, env) - - return(ans) -} - stopifnot_graph <- function(x) stop("No method for graph of class -",class(x),"- for ", deparse(sys.call()) #match.call() ,". Please refer to the manual 'netdiffuseR-graphs'.") diff --git a/man/diffnet-class.Rd b/man/diffnet-class.Rd index 240ee15..f2532b4 100644 --- a/man/diffnet-class.Rd +++ b/man/diffnet-class.Rd @@ -52,7 +52,7 @@ new_diffnet( self = getOption("diffnet.self"), multiple = getOption("diffnet.multiple"), name = "Diffusion Network", - behavior = "Unspecified" + behavior = NULL ) \method{as.data.frame}{diffnet}( @@ -146,7 +146,7 @@ order of the rows in the attribute data.} \item{name}{Character scalar. Name of the diffusion network (descriptive).} -\item{behavior}{Character scalar. Name of the behavior been analyzed (innovation).} +\item{behavior}{Character vector. Name of the behavior(s) been analyzed (innovation).} \item{x}{A \code{diffnet} object.} @@ -195,7 +195,7 @@ throught time (dynamic).} \item \code{undirected}: Logical scalar. \item \code{multiple}: Logical scalar. \item \code{name}: Character scalar. - \item \code{behavior}: Character scalar. + \item \code{behavior}: A list of character scalars. } } } diff --git a/man/figures/netdiffuser-logo.png b/man/figures/netdiffuser-logo.png index cfa4751222edacecf8887c476b8246bb7dcc7176..081023381baf35c0003ce497b17a4928b2aa39b4 100644 GIT binary patch literal 145631 zcmX_nWl)=4xGk>5twoEww79!NX@QpF#ogWAt-;-)I23m;?hZkVTaW-L1i9fm=iDEe z%)IYRvgMJr)?Pd6^Cx*M3{ng@I5;dt1sQcXIQVNgI0SJt6xfqk99>4(7rLW@whJ5_ z8_(+p9s*Jcg*|-dD*N44!@=Cu!^qhT&cnll!^+;q#l*Dh+23YLWYxbavFZ=rF5}?#S$7lfWC)kZ5~_q?ghy- zG&IJ)1_8a$K<4fJ-Vzt#oXE&XJ9xom0@(M;$qI!hs^f>t@7t!^G~41qB`yNBukYdT zc&{TPb5QU-87?_~x&mM%2hxdo`B@?hEn_#7(DWsQ)6M?-R^xbv^J8TliFCvOz zcT#?D2{VzEk!g%o*u%pUCPun6-QMV>*7Z6w>&*&MgWvx~DGZwi88yC_%wT+o4?Gpz zr?nwx4kQDVM{lz6DA+_WBE?`sI;VmbXbk%gH#0f~`XKfobz_jP2Y13I#4fQgLQB(Z z=o(0pKmUh#a+aL0aPr>;ToUM zgvga{N3Ct!ZGej?fcoFN_Vv@eLr+TBOO#o8O1$5GKX6>%1OM3e&|zPG-cGQb^u1`y zQIe5C`fsi^0EB7yDdXYF5P!xs4}U%(5>eP(u>bo<&}ECI_&+Du&$17G?PU$Rn7Wmr zp>da$nfI2FfePT~thsRri$x)lBm1KM``~y+K21+!oF@G`m$dPGg}?qxn*L$D^$vVGi7j6M%Hak3 z7{$cKxMMiI&`(-WSzQEL8h76RmWWRP*Hc)BfCQ+M&Z7Llo%P*o{Pyuug?tRZnUIwKh zspRz%T;lM|`8@7$%6n)`M7Av3rE$@QHEdp+(B~N1PrkUAX=h=!)9e12mpa>+=H9T~ z*A09PSKWAmS^rDaCTf)wda~u(o#xY;?b8dP5PJT{)FNU`Vp0ToOI?2g0A@)73C7Z) zs+u%y1gH;c&Dy?Bx%Oq$TCus^6^~zOM&$ zHlyjo8zOx|wYQP}Au~7?{yN?Ud6dqd#K0KhCrTTw>g@#aM-*}YX{+o;t)XY|dxB^> z#gQ0t5rB8mnb(ifKqBtwt!g%}n_~-?{sF4tLQx2{qOP(Q5Uw-gzXe`; z4Z07)*|B#aRP*6=^&_i|{#eU~k3M3z6&B#$`%?kW3R6iMT>R*I8MGi3{A(JjasaIa z&1b2_NWCwD75v1G^ACwJr6kwu9{%yt@f|oF?3)d$FZWHoHi5NG^jtK?^75}$XVj7B zQfzzH4o$;sbm9gj)i8i)%lG0`+wp!{(7WJ=B5J6zxkhGw5S{85rt3lp2K;2c0@k89 z){@V(k>oe6^bcE^lzJ`QrU!MXSO2s+bDnU7!^`h6fj4?1d84BvZE~qDWJ9S2cP3T|+3vL4*^-PD%?S=ueHU8z*d`1Ed2^ zy*cx?W!Bkq^`7O_-pEJ__}5CqLLS6X`H;*Py6Rd_#BVU(B7W`u&~tAXug|p7fT+zP zd2GY>o59N3cauR~^n$jSPO*_8*PI#S=+F9Zf@v`H>R=T7M8vU$8KH)cw_r|LDQfZVU^t9dSKh}EcG+qjiwK6!2S z_z=+DE1M@013d%Oy@)8LN@%AlFgFS6ef8S<2IUwFW*fis+j|nJ#cPxJm6c*?r>795 zLXb@DS~jwV-{BO8gWHDVW2e?Prs{Zgl1Py2M9L`oyn6OK;V!Qw^ff8^-{X4?*1Uli z!8{MxXu%4CRUP+5B@XCfo9}&Wz&^Dy0d_{PeFY;efufcAnC)O2cL~{fM;>Idn@iFm zb0mpJG80_EW+PJ*Sd~OQgBeuF)>O(~LhEkx1;Tp=@2TShKk@eE9(kPTSNAzLxnEvH zgXOf}nu=D;xjL=87i^1HzB*C4YA>QTQct9Q?Ycb~|95t3II>e&vo~@d9G1bSYf?QI z6tI@jJ?WonCNw$mZ!C$9S`n6_hP2KyM5DQ;8MN*MX9h`HYl3Z&0^FQm z&RLPkFk1cfN9|$~cC2cl@1ax$<6X^1;xDxA`X~2x=&_M22CxoitTh1N8!+SUGn-X= z*g@roO6Gs(7O!jixE;=g%tO$YTwFS%eEgJy!JJ*Ir*y0WDvBhhR%mDhjGT89z7H+d z+=l~Tz8TfE@OrOYaN1HkwG+Ka-?4QOC34_ZYcl+;ZWMv!^N530F{6>|7aoM$MTn{b;GP*UJ)`N)C_GJREkD(oQKewI#PGpz2p)G zd*;*G@im+@2D7fc!Xfo!5K> zE+co3rVJx-t22NB5uda=@?W#gj^=ehk)pF!iq(xI?Bj`@{F4;p_IsV2{;^~|&w1oM z3Uyix3Rqf-1t%;8f}pD7)PKc_B;008Ri$=KCv&(Tj?g^Fnl?`%ZiGIWC&64w0QZl6 zI0yddvf}azU+x!Y_jC!7m$>a?ruSq&<&wN_it1tenv!{d=SCxQ4*oI43T~4;jIPcM zSJq<2et;fcwx|U#`+z*qv>BU~<04noUvnhm2Qa4l-S_qI-oh;t*!b?BAl-d!7v8)$ zEBemc$@#RW3>M0k#ACZPno5Mx^=w}h&0HY7j$AsPiJlB@=krr86mQbr{RQp&;ZrN9 zRNtzntYxzY73P1A=24|MX3$p3J>2s$MD5Z3ZrDz!Ks^HPlv`-ekEM1F!W}kK!k*6Ur9&UAY^FkJznc+I0W*>sC)G z-Hy#@!Ls5{MP4l~XI=T;KWRfmV)uQ*Wz!uyf*k1Gv0yXv42H#@al~tTrl6270LF-w zVi`4e9Yvqk?yx!p@M3a2ArG^ue9vYQG4p<(>631?(PO~R_b!>4V7e-P3bjSX9&`Bn zR_kKEu+_=jh;4i3g!-Wc(=5?;JsVloS-7@lF}iGl>S_6c_@S&pNx|x=s7pYQ6J})e zh}|$BbtfvFYZt^#wAH-Yc$b>-syMAH#1FfRRRgSJm-ay5+OZG=#D9zTyXkcW<^SNj zDlTflRj-(VH+d@UyE5_u_UHAU?;F~drTRAYC0WXXyV($ENP?_37^PJ6E8NLd@-r=@ zF393m7@b9%qG0=n7?Y%x(hG+1CriWO7w&Z$0UoduN~GT1i+BNHRkuuWq7-0 z<;kFFxZ2n7T!H^@ydg3qE?)d~9{&ppTzzJ1yY9jsC-Fyv^!qe}ZJq>^N6u@=>6}Yq zOHT|hi1gmc?R^_)h6soY4nf$H(eo=YhQG&&UXWdv&W%)S8n;Jn=)iT*1wRCbrE&J4QhKkyeWC>Jl_D8c3R97f#x8s@R4~QH%XVkyEYPJ z1U+^S-S4GL7^MfQ00=a*H;%WLxSTmU_*3eKB*-Xu9nUR^zOeCjYf|`ElG#m+zp9B^ zLoAk{UQg-XUsYwn+sVAYy+yhXY2L`NvI+Sw5a?m(?lwnyez|NfD z-bEb7^)$5E=A&RgC7t_(->yA$bHk&UdE{JGikQ`f3g2ZgjeHt(H^8`4SX9J1Ok^f$ zT{(j;X>c%gW}i1dhULd$Sn_jNG+ZM$fI%5YB-_5_*147wwZ`tXqaD0f^t;%l|G>IO z&G(^u!zc29e=ESYW#iHAjQ2@vrfi}O&4#0FH$=k0ErL5zSh%elQ{f{|Xin6w3D(5?Z~dw>~#1+wlhdR9eaF=TWtLk_iDEF?Z{=lg_ox`X^+8O?K#U zk?B~lo@bkY+nY3d-;LTrUB~9UwB?1WrFV%bcK_Gn+Hn^(FKq#{Id&~v2IRXfwSCfL z#{d8xxxQrA_1Q}P;Rm2;emQz{OX@c7C?zroZMzK%`2ZkmXj^R8r}Nh4auEV} z8e)F(8@CX=9*n5_F`G-LZSxG)4dRE-GxqGbi;NVMgvIPR7DVnaM7$2msDdqHvo$`e zwl#FR>+TP^=cyU_2g7;+JUS_Y->N&ol2|Tp0UbOXTI{M=T@Ls(wSD~6K1`E^)aS*? zUNy8capfYs$Clk}y7r6K&>WufuXYUwV1vzNb4M3jYwI!Oax?9r30Q=rzOg)Uclu0- zEUVqR?#6|QonJhbuq?iEz~zQT;d-+gPO0Z&(YN^bbMA9{f>SR5k}vFFl=Tc2&!0T+ zv3(5=f!F3`P$%xlaH&VyP~O5ZR!^6=I(W{%H3AX868q*01(UaA{jg#gLHdMAsX|+M zvD|ECb{F2x>H8KSyw$z|xvrx?nYg)aYrU>cC7chPOK(o1d*_?kM?S|x&pAGp$6kKl zV+Uzq8&3zR3bTvxXL=g>Zl-RZi}*Z=QJ5&T)L%>HEn)^B)+FTf)^XL zyPKHEP!FUH&BC!nBsD}F^{#L{uY%+bHRNY2zpVoTFO3gG!X!N$!gG~K7V{&fIU~sV zq0TxDILFA>i&M%bVmLfkaSZ?LSjLa`MJ2WvL-UznMBPtlgAMoZD4g@x7Ioksg~SE) z)eB;aWu-2B`_;16?bKjs&I1Do92sETLJw`+;JDrB6%JB;jcK&k0?grru@>u}#uu96 zH5J}e*>;E1vlH@i=Stc6{t$N;l|*wdr}wjlN8Cu54EjDx%_4}l)8Xfc8$G{~`tV{P z^81C}Af37_LN~ibeAl><$!_)=n%Sn6U!@}TWDN?VLPNgxLkLHi+bvQ=6M32aa@B~g zLKH0yhdRk&ik#q+9%wz5lP;F1E7^OuI5N1rUCbZtfn-am**?;J4O@4z*y7I)-|Na2 zooo4vpzFghMaLx=M)F;POadE%gT{{lo+5c_-~Os?R`Y;vY!Nv7d+)*?iq1>*34Tf!{F zAcu*jnVS)AE zUrzkuyzT?v4MD3+{OcT5X=U{d+Y%<%%PidB?%BE|Hfp^7{UY7#mae%lF0p?!RF-|2 z4@eFRwl-288dr~Z4_;gghnz@+$W_@vG4`zAU0;5=Tyq=#$%Rr%WvVvqi*p8X7Caq} z199Kt!NQ{uYvr!c0m0ot`p4|W?^kvwc7gf`dB?e3EQ=2HC}1TM@Fte25eY`NF8&xj zQeeB#N`!GtwOnw`+td1_J*EVvl-)y9h+{BFEm;~2n+ZMF`l76{TqgS~eDTnBbfuZ) z90D!YR{AwB=~W7z7&mL7Sg8n$RHfyX_Hn;rQym=_>a+3MG{M5SWXjZsE2&Tcg$0U4 zWG$s-dr0@u8eEHkp7S-nw+@TJmRldEGYy8+3Xxwc$CAK1{cpD`e4#{MQ>C{ytvj3n z+q;}ze8Yzxjz`Hqf{II>FsMl=n zbz^R5TMHgj$uY~IwUr;SivHO?+aPCar@B(Ewl`D^`io-9 zn=0;3S==8sZ5LRTm27p9{lR|0EPo|^;MRl1-??ae)xs}oAi?K7n1sV>KER)MEr1eO zB4^9}I_hr%7}Wrg=Ksp{YGV))zuq|i7L?e#=aFN0BIyk9MY*y*ogF~3gp<3Z8_kE; zb}@Yy)oIS)L0ak@OsgrwUp?k97G*8lA^sdh*Vrf#Ha^-Cx(3qrck2Q6iQYWzI8Z#PIC8Gp zhg+8>=Q@;<`$uHQLmoYEpV1RPwZBvbj>J$(?>9N_uVMsf!9x+Im%3BDPGoI`LI9EC zX5LQvM}T=IFKg;mrNbjh&(n;qpi_{k6$%BxXEWCPFrAHJ8OqW;Mdnem$aRRg?i<=` zo#b}$?qNAq8SJl_>ASyW(lHzuKC569w>UJJQ-|4P8mpe?Ow^W^0^Axh(R-LMl?Vn8 z(AITWRN8ZCttG2(EzNmddB3kt1x#^(dVQuq(kv)Z>r~^`dz&5wg!a@Xi2KgSJ&7FqGdB=(mQO4)Lk#FriO- z{;Svhui|AGk%XRnCCDD%u|XoM)eJivK=Ua(j_Z#$K__+}Pp$H2`oaS9Ly+ftbcSYCkg^h(w`4VAO$Ufc_FUU zk(`TFalzmbX$>!YTu*J5VsMle5>u!I`u@azlinSk3?+Vg4`)f0Y$WWblIQl@p?xlV z4xLOG%XP&`*6i!nf0tr&Nd(JzMai`Jdf7Q$mLH3cy~5xvrDHBo21V=OE;(-}{x$tZ zuSrRfv(GcJq&Q+d7w_?u9SsjrJNP{vfawDgXFOLoMA3Vd26HfBjNYWFRHS8w`+!JdhqD>@Tx zCLX5_&&L5l?i)NtAO5u!Cr_>0c`eFCr&YN6JEa`1NzHCsAGtQPBlp@WH&U%bXn{Np zb$H4OD+P*Tk8eQd1e+urnAK6a(IZbj$_|lAr?ouJ?_zfh8B1!gTYN+A@~B*|W4tbt z49kEe=G7@a=kQdh1~^qV%9evuuc^=wB+)|R$M2{>hA>WJ@pK~GdL0bDzXaz_g}_o_ zJt)4avFqoEpSatk83oICN!=ME8Ol4jh=at6epfQq@p>I{E`>cf#cx&{b5HyNBmrXs zJkG0*wTp>%@y)y`F@%@^hR*G zJA!%|{^ZKho~=B4OEmVU!}V}luPgR)?U%>Pli&c~jbDO)|3%aTK|X-yLvcft&Wu;$ zP7I?%ADBU5cOiKTuUfE*!}sAyExj?pS}$gwms?}(yu>qxignYSuA88s1rAFFXQ(h| zzm4xTxzwH~l0oLKx{`hcVQr6x_8%^EYFzao^>{~L8j{WRs%Bfi*`{lcZe|LU$B}~a zjU{f6`|YDYa;eALe5cYaAH&jW4iapdKy}I)8%xAu1&c-0eiNW&p8NM36DXAt{*IR_ zr#nC00sB^a?jN?tuX*oF5x9}-+)--uO8)Jxb$K0}icd<)=SuwAa4#n*gdt;lQPrh9{HGQqa#)BjEokNh3g}mjBT*9pE2O zM9A2a#eK&DeiPS#4??VA|7BP~=*VzKmn<4PB8q>9eL9`-?Z8FUUH0>{Xg@87zIsXp zafiBVJ4NwAm{BNh)3#tZGo(qcaG z#n_>ei5X5~z^|PM!BZ4uM<_$9qc*yHPJdDElXohJAC?v`6s^BuP+6D(MycL}*l|7( z|M)_NVCOTtVv6Et$pGu)0b?8AbxwQ zs-N(6r53Yds@oZ4pDt7~Q_Gj$fDW~xV%M3^BtJ`Ta;0ej<6~0qXTAj^rDxVYbw731 zs)D4F+{}5LdVZr@o<{m;s+vFk*xJIrVYT`f|L7EvIbAKcDX}-^Ln%g`R*;b0o+^&Z z#@P8MDB>OR_);IIJ(Iwdm4)*~Qr?h#$FyR{f(P6@3`nmy!7zUz`mg-)3d*JMI-2R# zR(D>l7tpfr~+_qTwUKsG&7&*~qMB(3HNVX$5S#571MWJxTX zkq2=|a^Wkn)tvfp1&+**HFAovqvngzfvT@{@k$T>1&T%7Mg{*w?K)+!> zqyO^)TzMb@Fj){<0x+!-HUFq5<~O9v?|pXoo~Up<*ZIg|BZXFcuFDau`TH|B5hb36 zI7y=M0bX0`*Nh?d54tpJ_~!&#sbyVKAKkJ0Gr<}clBzH7BL8^zl2xg1REOz^`N4EMr( z)z7$H_XovW=(&uca&*^dWot3rKYKGfs%P>t%x|k(E{j~mhUgD{e|D%U-hFZt%Ao(t zKvVmb6f<(2vnF_TDfo|R7gIFa#4d4`^4>RFni7ymY4Us>atSLMt+a*^B|5U+c2cnl zi%VyYvMNDKwZxb9vFr?1gm&%H(*hD?tJH-W5;=mj@Rcm}o^Wkh6f~d6+D>9n&vEAdtbIqWErt2>+7)n|Wc?L{Qc zlXY6#YI;;Nb*v%0HXa#@hmo(^?Z3kaQ&x2&Gp#mSj)V={a<20~o)IHPR-BdlaonN) z(gtE%n`z6=VvY!9cs=`>(wyKO$x*2$1`cKs%TNa;(9TzPHCgJsd1L$a+}YwI4lzMN zEk#9s+n_kdNuMiRmsFaMC}b@$LiD0*eYZH^N6QApzG3||$8zg_^+@j~QXdyE;-UY@ zzJ}wkN7iraGkf~-C@=OjM&fvs!|(K&Wo2?fHckCay2CJDTb-;%u=hSMx7%mprcy89 zQy`r$P1=&4eWW&q-aNMQ5eM89caC(51A7VGhps-G+0D`uQc6HXm?jdRU)84I1ir|T zr8_IVCRnfKqX zYkPpcQgVL}(&sow5ZQ@`Lo2K>C|NIZl zuYm>=Wb|?53wbYpHBzf&xYnC3>rb|9zF>cQI?5tnOgYOXCF`a?MS-=L-#RlXv%%Ho zz~sNhh!ZI2-9w@~!F~8e7DBZLztHs=3R4lx6+biYn=V#Vm8iQUV+?^SY8I<7Hj$8j zmN3)I>W^Dv60)f3d#?Ep%M`HAS5M%#<><lEP-_DozOr_Nc$09-hh2nJImF z)N6csoP%-P2~k++39VqAs|km^3LpAjWIc}$Y4@ug(|apkLOE;%Z+^Nf>=~`j{~QU! zvJTO)=ila;Uc1d@!xZQ2S~>)B=R`=_eB=JqkX+AJ8E;}0eR+rX_4IR2tv*2MfI|L_ zKOYtNP&Fv<`1sg6iLk<)>9gCn@x&nn<-BVk&by;Q{R`r0fIYeJX#IAxh+LnDspUd-EQ!rKLNzF=V zfOA{CTdk1(K_rL!VOFdTZ==(p_ly2-^Y_7$__(d&BxR^2Z4w_F^4vZqtJetWq?*xf ziWOQ@WFC6uj5NHNxGEKV0D3*Yr9_1tX>48*6E)995e5&oVrM7lpQIL{VHz?bAQ?yKA3UkZ1;!$$2QHTwt9{R z$X&MNe>*BxK7)k=TkwG;pqogUZkJtum^bGMh+8_A7z08f%39638*|a=(^qVxEN_1J7dTWJ}Sxm&~eb)eoN5V1IHTj``kkp?$lyC8c5Wm z_ZxNE_uK+@Do2p)T*!3VQVdPlK~nU8g!No?V>w{ld3oE$?C%hE5F|W zly6)VCvV%ctJ35tCye&^=fp$i(YJ3ybF&2>#rsKI3RJMn~rO%fll}nVHLWPFO$vS{XhNH_zDC3>* z#i@l=R>8`>kJ#0MFJ%zO*c_SwY>RNQT;~Ja3eej*C?5Z=Wz$l*kwW}#T)uY>`xl=#DQ_V8;!<3a!lIE57LDL-!fols zMFXDc)jAk>(!aD3dwjHTQd>27QQ@kU#6(evP9;U-av^OguP;?w)w{4xk3Oq#AvQ81 z43PZEL(%dp;-?CO*<%0v`*TZt_Sg&{NVlOSXJA3(NeUa?$GSqAhW@EDLA`>QNL*si zd_U3b-5j{Xqsp**!X~rzXL_fnhTOMrnVz|aOoS9B{vMSyq|K_Kys>4B^hb(~kEKq{ zG6Wu`6>>J?4T}rXlfH>Q5lB~dCj(8Dgj*dnhs?hMQU@-sJ|A$dHJrPb*TQ#8Y&22* zMx?>Nk53?g*-)rp)B_fht0`&V#fD9VduX1E0>k%ow6ss=O-2&XoDHXago$-GZ%qlC z!}!7T041v)&L805f%SumxN?sfa^>LNCS9|-qh8Am&92sJHnR27H|0Y8xix6IAKxNb z41dz77X2kx3A**EnNc}W8;domWqo+cRNUaT{D5~OwS9NK<(zmj{qwC&a4i5ht?%=; zVRnRZac~&$V_xb9{tKk+H+lk&S4&*xE|aQXHVRJ2G<74&zeA#RLBupptw*bkK9S>n zs-0fiPnI3)rx!5WOTavg+g2wi>D{uy5nh|>a{X{q!1|fDu37ME?|cos{N>yI&r2lecm6(NzENwv?GJ?o{+oF& zN3<=6_|u1Whg&jx+L?*w%wD-LKMIz+@?5BwhJJM64|8)A)6WFU6Ms0+qG>#e4T#$+ zNiFgs^hMC#b2{^DZIOVgFq81_nI?UkGu;*Z5#g-};)PYX9X@8@&|WJJWuKFWZ*Whr zZ8hSm*BOiIdAdlxaH#F!O?$KZoVhS*FTu|JI1zp!wlq<58K1sxW5gSMf+zOI6$96E z3f8tupRK<(wO;Rr-H@Q>!SORXuIFEA*^W>6Q{tYN2CHG_p%Xg$@Looz4x&EgnfRS= zAL_-hjc07nw=Vc~e?MQ$HJ>$_iWfU7699fGN_kYouwa;bb2kaLB@3W~ODonL2j2sL znjcPUTfQ8dX}8YRe`dF31Hjn6?vH$m<3XfNnITnipifKa(UTM7?1+WQ(p|{LP;o&V zxrL^Lf#*dr(&qc3iJb%C9Sg0)^>ZhOJp)GZ5LutIW%KqmlxSoglD#W~BU^N`r#a94k;C`5OybNcxU=Mld3)qu+BMmdMN(sdyS6EZ(t+OD6-V`OeV zbc@!qYav;u$FJ&ExgbLIK4kFU5P>#cvvQQO>A4pcZq19HZ@m@GK1y2Hz`?^r#H7)B z^M^^>^w?QsBhm{pqIF^e{!!myr&$?TWl}C1WO+59@eq?ce zqz^y8zcv9xGoy-;aSINo1KlAveW18kbKH#E*I(9LBVx&OOEqIM!f5ey!Q;Vg`{2T; z7>pbIiNAEyxz&opK#L9b>i!0lsn{d>;qwWe}Ae`Bt11bNkp zeuU_16;=<+aWUk1O#CAM1e1v}m$G;+s+-E*())1pT+h68`y=YrOI@X5$zLa@1tk07 zh^Cf%z1sNlBBsP&lwm?E9}Zxo#eofeQ)c{JR*StO4EzGc%zo)^Xw}uK=fP|5Vp>o+ zAnpg^70>A8YE=_h-z7`9aFp+z`-~(0B`%erZm=Z0>njNVxln1dui3rffH^b9wub z19V*v-4qi;GdADIe)$>c9rM+vo1a_y*iGxyv(GsynNI4boBFa)6IZ4eO(-{Xna8O% z^`UCyTWo806#r0MR}=5mW3&uJbXcY$ewXPzN^H{-}wp4r1^@`)zJ#F>ma&b3Z)jZ>TWnVc~~ zC1_8Oy}SnpYjnTg5R$c>LeS*$U<6>QxL9QL`!1R-d3ii7@bdweVOyTOn2HT$OKZC6 zrzDPe^NvVTzTtPRu5Ev_0>-@VvU;WpJnXvkPg0KD%eQP`8i6M))%+ci+N-Q9&t)At zc7(dY1rX;`{+>Z2icwJ1%pP?kwa5)Ev>Uc(Zh1h}m@j_S4x4Ob3AzZbwKQL}=ssk& zsLjlg*UCEi=S3@l4&LW!`=zeww-6@(_f2Y4PKr5uaDXa=7oez{={Ya(e6Q#{J8ZT0Mo`Qe zL_NfA$(Pm}kpZ5xSZ~DRXm8tlID>y2c=2KMp>pNPu|NG!yIq3yx1C5CG01ngY?Mw? z%aTtfu(OQC7WQ2&!xs#3zu^pWAmA+J$n|5W7pixOMo>jTWJU0z?*i|2ei>$}-Z+a| zXOJ&J09#46)jKtCv)_n*wcCX8zzxPQ8Ci(}VnA1b|B4<1wR0JdeTj<4#}cNH?p-vB zlHAfc+42x8wPq~;=?Sm=SYB& zLu>?3;`w0jJXXXaEO#u+@`)R z1q3|ecTMPNdWKgUs3X&n{PpUs_~PUys|Zbtaesx?bG8&s3-F#2fU{tQ15%tD{A#Nl z5^d)`!J~TYj<3(eFpbwQGnkd%Y@Zsmz;Ih$!}kZ`lH;G6;j$EJ@DOIuxp|0~={Dc} zhbhV1Gq1-^h|jvp3EniTC@Nx*?-`P!V}qHiS(}wN!f>N}?H&KmBl^(i(EX@B<#o&Y-FeYaKmhOT02+zd|0z)> zjqX-;yPMb+l%&p2dR1H5=_bd`kBO8eUz4!dQq#qpc~eq$Qb+r~;gf5_#j=$eJ8jH~ zzfE*4a}tPlsc7>lts0kW3#EQ?;*I4>zyIC#CY@?J21~PchE-;wlAc)mB+)cDn+}in zG?@LlkgO~{ZYL{1(IX1b6k`tyAnVk*R$PVk{b zf+qP}Byqs8Ddpp&acVqnnNj3|hiaXBcNjl9_*cT@)W}a-!aXoUA}L@5_~+G+>g+R{ z!oS(uB7SL~>bE;i4(P)#e;TSO4WsHbSDbrf{dznFBxJhWWR=o{*E;YQ=bG%_2l$Xy zqt$p|6wsTRks$oU2>MC%yQ9X+eIhd@|Kkf3qm)Y0kZiz5Q0YDRx>G-lPkH4I5t&nm zI!=)?DUqS_@B=Sz7-4j7`Ch77X@KXKBMCl-?5fIX!G^YsWr+*$S{m2Rb1MD|ok;?4 ziXq=tUDfyKZIG2{r-RD|++DZg+>|-=jIm2h#30jz{)WFdjNkI*p5Xbsi)|Hh*=Cvc zfWIByj08G~l-a~SD1gGX01aIK*gYNubWcGx|5?Z9DXlQ}HMJ~++lN6PWF?L)Rn^NA z=jMa;>G{-BZ*@(E8vU&f)rL1ef?Y_q|o;w zKj8GzUA&VS-WHc47)?HGb+$V)-}5Q1m5--djm3tK;kH!v&l1hvB>nT{_k!;Yr2f9z zecb_IXUczNhYgMiPa|s%X%Boq{B)%}zQW4rodEI^rk^EQ|CoryK<1*}-8k6mrRR|V z=Lq9Y83~+I-Vz=BEj|=q`h>^`XcK|_M!WD6*k2-N`MK_@QRnZtScfavTL`04SDA_4)MBnJCbQf&QozxsQqaf$rGI$gIUN zcCFujL_n;Mf6|J)Zz}aCKcs^~z(UN2Dz!SaRzDq_PU06`^hqG&9#hvY%^P;d1XhIX zq80Xl*o^s4+X3_cYtoO;;_OMD?z!VRF!ZI4ut>b`XH?6ZocM+&9Ue?G(<#YnL$4E~ zmKfSuYa>ZF#1ES6#p_X9=oaaDA4`>gzzL@(l*L=1kuic!jQ-6>t@96j_pyE;n#z^B zCPXXLR^^`o=&r8&uTfpDe(#9PiG>+y+WT^vu@q-a;u6A~PpE(en^sKblX5dp(l&kz zMxZz!FfHI5>L8%zm=oZOFaB_lO(lPmsySdImw6oG0kk#co$NY(a5Ay4{`0N%$dU$z z@+!opRUKE^VG3YZsK)d^1Sr)K%tg9YFu%xQsk~his<5X^8~p^uEbni!Q*TNa--0~qCmWQv!Xm%{y6_IqOsO=f^HpoKfVlhjC7thOl zZdgfrB3Ow)i?8mJb)LXmyRGzbyNMv)a-8DSzJso_5JCG{KQU?*rM;pdYnm;iZkOzkrOn;os?lM`odyZKEu4qJFZU>0UQbrpE2=BHQu5Yu+69Wg2~*5-=+H|(6ajOWD|q}J zMG(~J6v{`@$?rXcGB^mV54OFdvJi`|2m6Xk(NDEVKxP`J(lu3z>)A=|3URuDo*zST z=~73MDjYE^ukVCo1l4(=<&ck6LrdN6%q3AHwWOshUVr0`Yg9{WX3P_^4v!iiHFde7 z>u0{4F@&*kI@?KI6i=3$ab?rVWwc4xUnSVpWOyv-4dG4Nwmh$AO{^v%P2AfTtd@4( z1EZR@sUdvl4(zJyZKeG_3zvV?v2E-ls0?%*SGIbBd_*5J+V!pHU>p6PpShiz7Pbt1 zqn6wc8*8}cz!(FUoeR$wm)y~)u3K_ja9>|t;Z;b;l6%sijE!=1y#%~f>8La`1uN)R zluZwFXkdL+)4z!~0ARMmzRj6AYq+hX;I%6zJf5aq$k?ELykZdm%C6>@Q6mvsg}MpP zaXF=c=qPqG=+lSJQV1C}^fU>B99fj+#r#~8{o)OkLX)9!ollm5i5}ct?+z2v)P)eH zWAr#{V$CiCO<5PXReoB$quwR74z%<&DA7mS&kE0mf3>|!}Vv`LmT|oXO~-a zCZ8(G6Eb6N0STG9=r`M``>^rL1pQHBMJ=4pZ~4``Lh<_v zm>4o}vD+H&dTfdzy`GCgL!jHxkz}aUMftk_JTm6EK)JJ*{;_%b`z}63?`Gfvyr0$+2zA51 zQ~i;f|1m=M9QbJTjV`fuo9}BX?1EhNb^zsvo>aE(`U3_1&jtU zUu~3dNC^Bt_ax!@HtU>ZC4cR4R=z3s|Hv0P3BnXqcto2|)kK^7lph7Xn3|-Inq0(| z$6Mi|y09JLqFZ##cA_K0f0z+0yFwCELByG#%7lUJ?3)aNv+27I^jb{u2=&|FS;Wda z9zPxrE5G%7aIgsMC|>*p;dmlodTjlIIfp9)Ti~c>8=}%-K$~%RUhJnaq2tWy7&de>U zA+^ABGDBx_P{e{YkKaZw{m4E^T8-rnR$OhSYbwrp5ZpT;U2RNRH16|YULpBDDUba% zI&1QSLweR0<=0?k60+~bo_Sj0KyP#{`MnB9uU$B8M*3+N!m&lQ+VcdOX?FVS)dzif zz%-YXHEB^)T?C%`yg*UoA%m1XjNF=GLEorC?AUEaZ9$laB6pBtNm@uPSyLcaV-aX?4t+Qx?qKDvf^eWa95WXcM{4XbdmZ%XSH1{Ol&%063Pc%c?{=gup=z z{Npf*3-U4+J98$&N$T#xvMh4YwDwAx9fpZ>-vl58_t^{q1_hkcHH8VWmfz6+VbD&J zi&fi$nBz*121vou!Va^cB!?;MBSCt}^gv6@R#4yx)axjYes_^HEf=>vCa^ z9aRzfcz0UJ$nZB?MySE3+%w|&Fb>|G9 zEwq42>%C(Kyq_z{JYVj2*mt0iw#LRESqjsxc9mrr#%%pmE!5T<{k#tEAlFH^Yv39% z=}^;7268*ei;Y5}B-vxuk;fDO9 z>vC3&JJVST)EYW(~6uzT*Vxx0OKXl%meSM&ep1psHeRbFf-=H(1C=J~MTjM1So%n+@`#!Do* z)96>cW%xPCU&|Pt4l`b(?;xyrdu;*SU>6sq_aaX&R!dZ)SiUP??6zmEx`^@r3%L0v zS6wTxcvT0@xCEsk6kj*qa#_ZC4-n<;&>CGk+C4GZPzI$STr@6N(XCpAfcD<0xe%mVm|^RcHfYB;7d{c z#AD-QeAjWz9jg->tJ4}8?qd$6;2q7d zQ@9;#;4Qd2M($$2t>)NH^~B&SAJ>HxIN}6q4Hl^-`g#@8@wk-&^INfNdqP1Q#*IjL z*)7HAsAY<*x|&Q?I+}L=}QE+AUC;I{i9IM zJ|5*si!bp<&?hkkIp|PJ=*Tc&)HbS9k=7v-Xgl{yD%6x9o@`TGQ9^HJ$aNvRWudXV znphil6z(4$WV5i{Kz>J|^7pO|h@T!_`BL$3i5`4^xctbEy1p+Xq=Bip2F`ndx3hmS z(?w|UkfB*#p%NhQ5cXx_Q&|t-#o%h?isz0F>;Gif7>%{97Q8nSZiteu(ME?S-pjpvGUb)UM>)WM2(nqH z>Zj{bQv@doESvJ@F`wQy9!630Js#kzN)hK`loP?H4wt}WmhoLUTV*Z#7A@aAYm%Co zUzB*w{*-3%-7kmkzW$5V&s#46n>NShy!C=(RbZ`jguF-+*3XkFhv&ZGE| za2a5(CAN6wh@_TQu-%)T*GZqTHhU-`Hp%-97a2d&HZO{aowWXaod209<9upguOHaX zc$r?!C^}j%>UfqEfYc7{S3!ccd+kMqEuZd2##2-^f&!! zNt*l-%CZh7{$M*exiIZun7&}{2%znp#okmoQpAjY89>DlEx07<4Rp*Xi^+2H(X`2i z4IVlf9h(YnF*1i=%ysMrjnBW|IhW|1c3y<9>6qge+LoHd$*UGCJK*=M{Zefo89xsc zUkY4*d;X(uxD55fZ);Pnh@38o)ki*k{XMlRf?(n)H%`+MNi+0ZO*SWL&13;4Y^_)rRc27!Tq)pS99djcnC1p>iOh92_Jz0h zS#W-Yh`sr7oNh?|=Pl(@_qXO3@vpLi4EDLrXPU;RzEhy(DWW>AKEC@S`OJ?PmJW%q z8zYhHXNKKShD+b6y)qQzVNKbMvUD%Db>sEKiHQdC_0B<_{-vAu1AfbZelvt|z{#-# z{p~(c_0Q7l(0^H!CYXHO<)FBA8)OtQd?)_YV_?I9*81yswCgqH4Rqetyjx|m)2wyu z&h55g@jWXo(2TW~&{%>vfgUAG#WI}SS;Fy06F_Z{*qHg0pIDM}?tBh!SC z4mz?t^Am@}E|)(;lwWNXXD2M3YyOaVOu8_7`owgDh2~%tCb<1?1=XI@Wh7Ne_YO) zF1+6Eky1}QP;6H8TbA(d@m2ym+cAUPVvK@^VMa)PU|SOn=lRW-I#Zm*~JlbmM>Ap2_9c3(ZwDOwI8;EqKunznv;V-SNlgnEy7m2 z<2=a>5nKnXl>{s-3_t!=J^c=L?u;X6<-U7L)|IYq`Z|{oKWxY7Q91Cvx|TirSLCk} z;s(cvwam%tQj?6)s-^%lza8F>UFDFKe;1Qa=tP^z8^ystXO2B_)jn30RnWQW0xT1W z@1^OtI<%XTVRK0Rybr*MFr`MG;Rz%Dg3qFk|AM?WHpA{zSc_mnNos`4F7|sZq-s0( zr`5>e(1y7=iSd4u?CR=xk;rJ zbE8pz=0n37zxrb3>q690W3!(?B3q-G>sd-r&Oc^`Mb;}cJ z?^A`G#?!3ziJRGrY#LX2?b!vq7S7$`&!*NQIInB(>Oafw2eVMrHIv+!-PCwZHJ?ne z4?B?S-D6KvT)i%Usdnk|v=p-;nJy4HXJKKn$Z1Qd!-6=!`87*(4eXk%Yf!WS{g24w zX2D6q1b%-jgo8ei!*@GJZNIDU*;d)NyjUW~!Q%$gwk=ClGp|=UupHu~0z|ez*DTIK zDjg;qjcMy%X6SY#G7!I{nireKNz;mm0=V^=SPd)1yolwf_Gh12C z%l2MW_W!tgG>4jyyP z%5tyD(i`p@U5=2K4MRqTGkH1K6gz_FbHZ~_v|i?->_m^4=(s+2q&JhuWc+SYyyNMz z=Vu5J;x7|S7}4X~jLX{~JmrHV(J6SWW7PBcz<-OpJ}khO3~sf1QWBCVXv^{VOn?NbUWKAErhW?-N{R(z21L_NHnF+!Fa#aOO=Sc^GMstq!o9A|$EjJEX z1HlX~PZKe8u5WRb2Me08I5K`w&fVjS0{+c#4U4Ua1Ia4WjRcT5uWbP^4o{0>v@)Z`3d|9-@DF@ zgFG_ei`U(!x?f4C9`@50vj*RlN$_P%4?ToQU6Szb17_?IX|ctMy2Osxnh&_o1SfbC zrWniPx1N7L=rL3Ov>4lN3w-Z=p()mFr0R#!_F=`BeWfITgn0$8wfgr*oChfwn8>&B zKQIyW+;E~HusObt@(nvX8x@QAw;Gxe=MPp9jIs(;3NA;#RoEzWgj<2&GhEiar}|MKV-Dt$(TfXOiu3=?o!b1XG|@oARk zCOM~Cb?I(DOM)kq=WDK}V(8xZBK#Ud=cKigGUs2QeIQ=rs>~tEGQ^*|F|DddOG=M^ zjQ);E!g0=>SyGTX7du!cN-eCTk(|5qU!I9a)Q)dp?v4$|8y+&br_+8DRIG~}R$_mJ zmDq@$-)P1D2dSdEVQbLdY9banxSsoax+HdBjq1ygsHDxcSyHZaNbmzo>toAKj>?eD z-*uIrcoZYqo}Y?sN^r|;3W=*rXY~^qzpb+?bYGV$t1QCWfjsDsV1~pyKqj^@oAXp@e(LFfk>>J(N(;7EUg)3dXfD6fx3nO1l}L+LoT%^e z`hO#k!VI*)$jgKSDb}ZvXDBi zyD&G>&yLFG7;{=oH02ksU(NaOriow`1h-?W<*YB$%X5-3zo`pKxE~&-Z}$5^a_pLn z&njlZ>TYVtx8DtJaEceULFrlHYwW%Lv|bipPPu51h!B-u?=p2Z#U%sSH2h=k zS}aK$u(Xsl+7GY)NwXh6nK>K2NMu-|wdf-=tq0iGRs2sn=_Z;-?)NXAdy;=C`xDAB} z*yF#NIDG2qN=tn6!l-##Tuf?v(iiS`=phBUPw#&(77^#0zAstDs809Kr=##XgyL39CX?#z5D|Q|FpGY3g z*Ywuh}(SZ|ye?s@uY0I?1@sA|jv1zjDe!;zKow`>NspV~*P=_6SxLX?SQgcHd> zLsCEn3*+mz?G&oZfqzu`_iM4FYYhGt2yQaDzO{bkSkRZPbC8D67T6ltim6?+uXnA$ zQ;MFi=k!Qu}{S+Y#Q_%&_-$>)^ z_PYbG<^R$@QO0qf(l!TM@}AyzeS$iyam+nz8L8j&H_9pfBZAUR{`sXdE&~MVai>_& z>y5$~6o`>3O$G)S%gnA&I^^YM8%>$ve9Z+R(jOY**S=XY5Wcu}X7sWnE4}@2;S|?= z-3LRQ7T=~H((Ga9QaQsPYM=htRXFeGZJH5`n9`7({}6(u28C-JY=+R?HE#kSj7DSGVvrSu8f4-ncg{=W(gcVN~n@By{4_kHn`Mn?R)|26qknIOza1 zp`4T7|1;o)ebT*3%X>|Zd%LQ;e^MExfg_T0=jDP|Ozcgc`GEsA24$A66-=_bd z6xrCKcP4_*k9I9t^QSVJ=Q3v+;C2(GJqlUtxmE|CLbcX4Rx||}tI8_PNd#Ec#b@#k z-)ChZXY`R#c8%$>0(8ZUXundA%22r(=xeMX-^Dx}Rj6aPE*tDPOFI`@$ZUv{^I>cS zDFOY;^)DXnf6{)qFMR?sM^f;x`?2&{SuSSv;eO(>i!^&E^=Y~!C%p8TzbTbL*05ck zE~cR9&THvuImnSi+W3>0A}#hvNrbzU;4aU83;pGV_pXQ3K4(Qlht0Et3}oZ}!RP+U zgFzSEfgC4zW53Ss@t;{EFbqunc+iLt+j}bxfw|n!|DlCBC|;L&z_>TrH#)CkzMB*r z^6IB=)yHQUEjC`~``KTCBfs0^CiAIjS<}^eg1!f-%6N-$ZhthD)XTZTMqaP?3ANfHhJ{C`(b&^ zjgv_D`lzzQITl|(YizpE^@D+aissK=!qh|Capz+pz^=0hG2x~xAl8gU3tpQwMK1FI z5ILa?K==ZW8?ULb?L!F{n%IiKiWTl$2K+YeVsna>9-K|<-iOw&A?RT(Nn4|@JH_dl z^nipn93fB(Y{@pnV2lr;P8}^0omdV-lCJbvDF1*88I|rX7SatY3oc`+(JxgvovNxi z5Dct>16?P~10lz?sjt8PX-(mUVoEC?^=rry#V`Fq%1w=34b(N;(b+L;$6g~-qF=vkd?l!aTzMDuN94&A9e(R z%N7#yKK1SCx2_@i=y@FB|McF`sryaV<;eIGL{!5R1qSY(O5#ZqM6*g|Wd@nZ zF9HZ7Z`lHhklSjz?`B#oKIZyv1^8JmD*b9Z91|FD<4giD;GIXrGETTskOM;B8G0So zgfyZpx~h5?OEv+#-pNxhj^WQ>;lTUk7nk|VrYIl=;7C6M<(|Pmv-`J&tu%zhUPhD*Z@EEF=ejQdfk;W|o!|Td55N^+mxsY=@ zJ6muF&~5wh<5W&ttcGd`{8*k=Hg>`T`TF?wNOuPPsC4IrRPeaN$N$zx-Z_77Dlr@- zcPET{6djrb%t$@_)X&v(^QyK~C$*rPE{ZegD4ktgodCr$)vCH_u5LEWjO3{u7|$1~ z85nA9XUALz^lvLIn6j`kAIs+GzP#glp5!*3(}rd|d^o!FT4}8nJ+!O{k4T-;%9B6M zTJ&@uuh6f#+0Y_%rCeyOP+5IhIZn89(Dc&X+xARpR>^n?FGe$(e7QNuze>Cd(5l?) z(5O+&g~M7z6z)jhj_HKIn8fzSHfK6}v4HGMnkTJCEW$pgG}fD^ZUS5BbzHyv z@t8kg$TZIv;o4>g0=KFFLP%{rJ*mSiz4?rr@SKjEWQqNLRIB_B{YhSH!3MCO5?PQy z)A}%Z9k^vJu99*kmx(W~Vsj|jpvD{&A+k9`>8c)vA1WbTJj7RMmQ{Qle;Q!_*&$;}=hNp6G+tpgc)KN+wHN82 zK9v_i&y6bzDGGLvk3mjm@qHy&jPX;lhdLgwro8!hRv7CP6y7f_RxW>S%67KEj^oAR z1_*EpTJJ-lTL3(c?Bjcx%3%iQRxD+JKoB#xUavzX;&9Z2@|N2Cap7tIEqAzw6Obs{ z?LInq*nb}-SY#(y<6a_&8ilszYv*}L$j{9T&c&qE8&UK^RDgDN_cvh6hHCazr8fi~ z5%P6Y7amlO7?Jn)&4zl4^`n}2Zppstr_9S$q+{VAum(~2shqeYYZlU%MxWVZ{tvwA zT2Ma1wo}sb%FBA+D&k?~J9V~r=vkPyS3fJZNcT<(`JLEO?A+ulCZqByaY^a66e;_S zVCeC!EOOCh58#pplY@1=60G+JVadoDs1PR_xz55F2>_Fn(=pNl)Rt-C=25p;?548& z4W|5R8x-G#$&VN+Y#lfC-wNYtn_}b>xT>cIGX!K z?n5qH%>~7jzp1kU@!lPI8fdbAWwB;DD=FmS;bLuD{Y;d^vAVJ5G2uYDr&dm=)Kl<8 zk2m!^b2k)(Fq~d}!;`DPNv@&kp5*$-9n@yUC#~N2ckDngD;wi5CXUlQO)|e z^$=wPsJ#e+un@$35w}SOu@}yzgLu=rC-v%)R8fGqxJ#AY>C9n{5;&mHB3frfnG-s% zA5tWRsWOJh2g1gY)N;Sh%YZFHKu%zbuxc?KRs0xVMEtY|wJzu$J6^GL1A&?!=)U3i z7AtNHozXIRccE*v`!JTdq7kz)f6Y^krnW9y+Bz32jsR0n3t^;~+WdQK+ z+5m3YPY5evm^RJx#sFPvp64_2a5QAJ;Z4M?GC(P&w1wXP_P5g@I<`otNsbE=mKTN6 zHu;1Zz-z#?%65t_3W_4WBV9-tEEn^EVSQRbxMhj9_A}UU3>`8c3B&>Gl4463fTMI- z_navV1bh<`1zh?)>!?xg;@Ir=Y_pV}#Qg_sMYvm~-X|OYFCm4JyAWkeg%9 zQr39I@yZ1mXkgHq>#GjX)j$w`xp=Pvt`dmk+Cg#SRV|)#*BP|F7N zx#a`E1iBQ7cXIT4T!fHS&~wN)RgM{Z1I1qNhyFG4+Hq!uI%;dDv=m|8uZUX7Ce7}l zdN4zBU9^>}52CyiWbqW1z))IK48m<7JNj@|R%SQq^!h3r(xckDw3(^)?wr@(mgL*a8gR46G*O+@(V}Ke+`GGxJ zHVXmVC6;IlbnU3N4w_jxLm=wv`L}GR={!3G?k%=?%IB#+Gk%NUG(5(?(NQ~B=)&N5 zMAc$5Mam{Izj%85{q@0h?Xlzh>sSo`&KE$D{GozuU|ercHa(uZIe(78!S-0(v}v?U zs&i^#EbJ<-yC|W!r$(V@765qDYmWH;pBDg8J9qhyoRDV(Z8_?Qfd@RgWbZA=HOCMP z8k3K%URYe-Z+##UQ+AuopEj@I42DM zgvW!BXzfnrxz3$C)_Z9Hc9wat2MytdDZbG5cE9IUuO|0FvBHYNY1O50$GID`us7;J z@-hq%WM8%8h;IJ(nOrgm6)jxWcu<-$9idWkNX?K zulI?^r_?ym3p0(ar+^eY9S}R{TQ5N6yC3AUj@w-2Sqg@AX=K zKJ(-pDBAqzlGtK<39|#|8}=#5H=oap`3rNi$D?z`@327|WUI0~1n2sT(~?2M;bGsN zE9l3{Z*az(kh{INf}~htGXs#%+AITwU%U4Xms?%S*E;Y*V`qtI2@>t}f7i$~yt0SR zj94zrigys)i?%j74zL9Vl5dLLXpx_)Dal%^Gie{-^-Jt*5=5@(XcqkhCA;AvwZt3L z3)2KE)>whzMnkEM4N5g;qRJg&o!Lm4%%U<@VlOrr?|%6HfMcd%ej?-ywbdQ$;{~Bi z0C%^ExGO%J_AXDT|617N4uU8e<)x`E5VLyFf;AP))4Y$T2p5FHbtvT*giO`)>@1X#JQ2!mLk_80F9QGoV%BAEvv}MvQmyej=sLvnsWsx$d4Ex26quV zct0we&2{bNWxm(@8I@5ht}GLoz2Mh~3poX9?6oBrjhcyDQD!`@%@U}0>vg9&WK&dOE- zYW~uLEt#$~Vf>DEkAnv+r6fd(&?;}ui*fDCN|4rwaR>MSImn?KswhaQCqQv7c$JpU z3Bo2&bdYKZc;)PUIp8R@P=LSm45fXI4qBN86p2{VD#~_c|eh5my_8`4Xl0uN9p)u958TghX2iIad!JgB3eSKR< z9liXlfH?0a1aZEpIef`4DKXloOs2e^X`m6M2WSe>)zZxQ0h!sLYF zp`gCl@S4B9>7&;ajL}DL+SGB!VEADNjXxFH%B;$trpBVG^Xwlg@Aq&1YzPtI=& zorBKjbbg-tY`9&xqh`MwEl>Q!m23{+gM0IiEhxJQ5qR#8;%xUH&BA5BiK1az__nj7 zjLOk!abqidUuE|%Wqkw5XM$HC8&64kmaDB5ixSS$dp~@W(fmDWfR=von9#MDURtJX z7}JmY>cy(JM%)4dQS*xs>J^RBu)$>LMyZD@FF|E;XB9ZY&xcvFu<|WfI+Q2u*=}*> zn=!3*&bLhV#a{T`%+KB3im-XJ(llM;5x!n-1E-UX0fWtxsRb?6^#e4~2AT)LMArBO z4sQ4Hy;;*O0wG0SUb}TnajCu)izvci+0QN+qTHGp^_z`$H|^*lGBe`2i9^Yyiubnu zmtO#!xB?enBI!!kL&aX~RfS)c-^_f6jwu)oE7=pMP`6wGz8HvJunptxZaVWF@qW^G z^QY7^U=DR!A=Jb@LG`=+d{b|oF0(@dtDg(O5vCm0Vr7*Ftj|N1gu64uLH(WFi~T$t z^qz;cuKkHVcUVUrLVgixMwVfM>!>9~*mlsG5a+>OEHEg@+KH`}Xgy}N-RUyqAsIue zy;JxJ%df&LO*j$4Us|~+VYc+El1E7%B~{BmI7M_GQKv*yiX~errcc<#n+% zc+D_1^A8cra^o%W-fk*1)wi~xs40c9x;LIf`EpW2q)Pfds4|vU0iyTdPI@DNP(uPgZXYoO`s&3K!Wvvx+!g;fG)UXR2DE7G0YWOMbWeMKi1kTVm zE^bcL7rk^`2xnsARO;yLMjK!PaE@!I4))`dY^s!cXY78n!*G9-#u557OqULCN-uvV z;TezcPp+D5k8TD)v5ph}g-(0n5Z2ru3!H%{Spyi715m{U;(kqz?X<305-Fppk;SKF zW_1IuuWt$~Sk@Fb=2oLDVGXY?#_2g*Fo$39&*LkU`xi97+L&k*glNMNxOmYeLG+^E zE-AW`z@NQ9+U_(8>MI6L8PH$4hWd7Jbpk#^9_H`@be1Ms-2!U>>8BPvcQI=YJ*ZGl zWo_PddgTu$8f(1njTBKlTNl1K`)#5kb(!NKFXvwyv=X48ghy6s`(jU=0oW>;AM;QT z-kwNcCFmE?7A+~L$ecplG0Q%EbPs4vGP;j=>%%0FD5z<~XRLHr*2I-A4u*Hr34nh3 z6+J1$2?Z_q?;YnArF`780tf|_aJUM0*qUVD_vD#gHw!v_Zl1paw(r0-V{Dr}#y8hh zT;F_!W;QfG5$kT7q?yEup!R&hs|jHm#J~@a+VnB@H(bE1g8*t$QSa$AGTI$P0?_nki_Qu zLp^V)4E>Mz43gMvidaD_al&4QYIFCcr6mh==W&q=g|*3Uh<~pZN|wk{>P{5nz-}-> zcN$jAF8LUGQFg&!8YvP?XEb`KU}UrgoB|bh9IYvp_qZT2U8F&%;}iag=tUXb`IV}V zW+)J~Pc{sCASKRic)S;itsZ2*|8%(AjH|j1A`S?=74-g8k`Bm6l#?5o^;TAio)_7+ z?dR5xz_myKiexXde)7ShU$ZS06$3a6^JBd){H3VL#Ai>JT)5RT)6`FsJ%1liDQ$dh z#{Vmp$G%F77J3~?^~#u>ZwSs;WBm?fPJ1fKLK8ryaTzeP!>+Q6AwZC*})5~IGhDmjk~C|T`v(EZ4`v^Nr}zVMa$?9>{u1v{`X-dUc)#oR@o+%Pjey0 z=BAw#ucaDuZU%`m!y@GgEYmtMX0Rb#`ZU}+rSENC%9Cq6=wAOJ?eM19CeC!k+*VO! ziY>vaqpeaJyeO}>o~oR}9#?ssWBst;2A5COjkdM;6YeCSKdu&<%T!R}aM)Xd)ruAL zF$`R7@Nd*Sa0v8t5|=h9NPJ#M@KIb6=jX#;!Ax}xxapL~qN)TSDec?#$XzB=s%m~R z`j8f4KVe_vFma1yF0@dMSsKZfFL7qBn1@KvhKrg%J`JocMRjWs8-V<0aGnts4CA;Hss)Cy24?j+`>Y-`BLzQGvr zYg9nvzIHbrVb^_G;Wfx1zeUb#%4z4(!ZXM${xmJjLu)Z+uG1Q0PnBDtw0PB!0{SRV zF-)dh1NS4j$VOh-cnRu)BP8&b(EFSetMoPyRjl2b(Kzt*>$STR61wfxwH`KRrZjsW z3?K9;6yWubfqBzQ%#*R387DkOASgcGf`Ba?TFFIb3UI-@D`Q0*RVcKgp466)I>ycs zKOx2jNgy=JBXd^PX6?2z6GWLt7nIfTXDUJQKyLEccXxdsLe=LXuNMj>a7*}4gYZ<@ z@WERXg!=%YMrAWyP4KjEO)b0C?-@YD6w0G>;$ur8lJU%`oV{(|*JWzdIZg zja{LJonp2Raj(g*~2JrH4xeL2Zqw+lVZrqWVi8JrIQDAn_6_yRpbvb)!`<-Zy4#QD>1W zE;OgnGPi_*v!twIs=~9NQjCXkZsWAxcaDLjFsE$6K|vSUmt^+FmG3AHfclfO(I29R z*TU{HcB^D}&>xQlAPY{JaudE?$rX6GHZh%F&O!2c@lzW=`R+=(x>!AA65u96`7pRt z%U_TVFf&9}jb<{#Otn2oyp~Tq)6p(r&WR6I=wzkBCED6bVB!y3Cafxw`*Z1g;ZFsQ zcQsm)iQhIbQaFQ62nxPLL-Fmll7#>?GolyP9BpbncWie1;uw|LZeL?4H`Ak2D3M%H z%|ZnJ{*07JrGJ=M8ANVyAd|T(Tp(TO!?*vu)GHtH^?S*D-#4St(D6alW05c3{1X;r zH+{K=_)F3%>~EG&c^d6!fw!bL#R6{+7J9}bSv z7pN(2*s7x()UM_GlW}~+9Zyk98j`X)OUs#d>{`-?N<+u{is-Avzsnl0ITI(mBrc4ue*{u4&X zmJRbJ2MAzObcUm%?79eOR`7R&1WOv?Y>Ku2vZLx&HF86w;n*0$*M0Bs5fgSPPy(CQ;MtT?;r$TwRQqoGGz+yI=K3 zl&kB6_A4(hZ?FKt-fMuCpBNBgTnj*}4Q&5{fHJ+bNd__ZiZH;Ht*~#1qd2IIjY#DJx3DR7u0>oslH~VHbbtdo%P$ z2af1LAF$)02gh5Vuc3mYRkE6tMkTpk7gN6TtGq^Z{SBHRqy401zxNt6B8C ze<@=N>o1tYryrs~C7NliB^jnew_U&dLPI#b*J-T4G8&An8p>o5Epw*Gpss-l0YeMF z;MwhItT592S2T)yHwU&)&m+Wh2FY7jpTRC@*Twf>bq*e9I{Hq=V8d3!68g0(N)(*5 z)umn!SFsjE4!&bR5;p`+Nk=Jr~pa&iJTWV$AE(#EL+|4ln|MecDvpE2|M_yN3#@no2uvZ+( z1zOrHX>Ppq^ERx14mLzK$&j6p4Q4%%^)YaD)&S8ffHV#GBGwiz4@%fg2a?FAYDDmc zy6$|fsd(Xy3t9#h66dG2^1Yrsg#&h#??(z`O?yS|cBUn9cgsT3vJ%1%j#)jPIEg10DYfFtIoP(~lnd0e z_bd6AryZEvZo}cA(|SZXdsda|dE;l}0Jl%F^9Wk3t2rq8l`@MYBVuw4K)W*irOK|H z6!FV*mXTI3Y58+}9bvi;L67_p3~cuLnI#qOa27||LUMhj_a6N|Kuj206G zGf5bj$>@q<1KQMN9YvH-Lp*ftzT>?>>XnC6Z~VnzmiUvHx~W#?uIx6!e$!j^6%zXP>@758+bD@%~+k|cX4c@84B)#{e)o5FBdsgL?$IXVo zSh|S#JxoLLpW8ASQ|1v`v7GQeM%3sy(?6R_W>U@2zuey*;v3=2Imn5~T>036Z?mVJ zSZ9|L*M5UBQ0$N|m*R6{SL*l3+l|%TdYwc3+krZl7)6PPNZ=R)nXZka`%2Xqd-J@i zt+F+^9kyK7T>t6*maPcgHU`Q}NfoGxS7=FUR)k6x0R9_!svPPX!kZ9I({anM?zGb1 z{AI|+mUsNBnbRf>UoSKbmoU(hJYH2Vl>9lU>Wr*r?{9{<0it_hvAm5iLZ-J#OEP!? zz~=g$z~=}0(um-}1)Hd!*aOpDQr2za0ioqJ1I#r^O|AX%K5&r^P!6ykBa`1-qa>3& z;HTxnRewtyp}%U1DNaQY{t%=P)1N}6eT*P71yHBl;s%z+q_qcSYI|)6U3RX49)9oD z1y?z6Cm`yT+1sqvBxd`%sdlkG10* zT8B*uU4FXH6;FQ=g*+E@-HxP+RnL^w3vYi<^D6 z1>BBj#O?w25*BTNN)Wj*snRs=DSB!Sl#<|#m^hy^StmNoV&#WRI7gy9o0kloyqH-= zx`tcL)Ji|*2VdfTfH??oY0x6!V*NL^|364$|=`aNN7a3U4q3Y{3*N;9R<@SIlT;wj;8Td3|D@Fwkpx-=jsQ^pQim9k;@gbZ(mqZwRv#x zx2^hwy>OAapac@!VPmY1&$3Ts#7Lx9~py&mMv$#BkFf>@); zy)|0mf-%Kc3W0$r;7olD?FM{$r~cxWVILj5dWx3MVEH%g^jaj~84_M?#&N z&teX16lh)bh2qQnRa>>rpG48jp7aj+MfNjL&H33G$uEWVp}OL|(y_bL0BZkQHwKg3 zf2#=ldUv+0c0x-~YEqC=_gQRKG)tEc$=N-Ni_uHR@`VXg(OX6rP{DXGMVwQ-p^jR; z_8s#8n&0nYp!QTRuJ22=7JB?UV0zRheTEMDU*qM^$mi`zVfrTE`c^wc$2qr2x&g}u zhssrYLFkblzOcypVkwI%-PFgZCjDbR%uCSmIQ%qdv@F;=HPSzy7adbWN}RG{LJ;|& z;AgF~()JcgN34w9F5b5RefA}!hT;KE)%LW;gHnZg0CiK|(UGf~=YZ+4!1l%lHOdxY z`-K5s<*{o^cD$uWqVf7W2G+*T3Vdr)iV4CXu)=OZv9jb4JAJ1Wuh2Vuu)amdC1rE` zM&CVDqW&dXO&>-yAQ-SvYpfe_650~CnYWG>IuRfkidIxfm%DsnLI^VHDSdhkzkFPn z@u2f|3rfQA^Jv$$xo;E81-JmH2N>%+-ag{SSDAl-u&A^k`vX)-I=O0L|2ev>;A$w4 zWYw3^NVXR7QO%kXOT!+Hg*W8d9{GF)tIZ(~!+=dcG& znXfxzIc?B5j-B}x*1|4w~jU~uUWbI2ql9T*>uD@X5rXPh=FWoJf7Ry_ih`~$W+ zU6t05M8c+v|1s50MGcK}XYGVnB-D-=A5a?R_SLSl}> z`ks3WJ-OP`ra11%@UI1R4d$u?$9Ts-34w{~mZx%u8j$x5Iu&0N!{fyDgtM07-j9s7 zcdO2Ws=RSt8b!g!F0<0SEp~fBO;F+FSTXnk_)W~&#oVg&t_!Nemdp3QF~=$;26@V} zx^QmG0pH289W>3eY*1LSxWY5Q+U-6dl>I5aM-tF_eKhEzd&p%M-H zX-f-X_V};u1fSW*-r7qnd?5dnZG`6m&D7wZz5Vjmq#LoOS4h`jJwk)3sFyugj+V2Q z57&=G-y03-;uy(T?reKesADzRYm`NH*D}S)0ceunRmkkVJ-e`^XyzXqZ3E<>&gNv3 zzZ0|_4!bhUq}1oUtw^TjYf-BYo>5B7#dIdDky_d)!&5od!za-TY`J#y<=cU{mnlfmNkUV#`Z^#b@^!HJj`b=oOd`8Yun_Z=z;rYIG4iM z<9F&r`78@$$@7&3T!8`}2r2=jQC%BB@izDsQ?K_8(wBJ8lfNbgr}%3iWF z8#MZF+!UQ^f_Z1}yo3LrSMn5UiSn+XIOMw0@Ghdm)ht(Jtu(GTB@ zN9+jvih%aN%HgB_AQ~m|vUP zRPvYp?iY8Xyvm2IOzlAZS05&NpU(G7kvo)8zPTZ@Yf%zteHv)r@N3*@mT$Sgf8faf zbBuKlr9|}RY{n}$_7a(G!!-1uo)qF=uz|a$P^-q`8BQHZ2ur@EmzQ5-eA&xzUP!d0 zGs-dMs6et#6i5VrfikcfHCOt}p=4T~ejDHXGsnIi;J82&oz7W7c|u|y0d@VYrVX8; zlC6YlQdi8F0(72liA_^n*YBzqwM!b}9c)2bmA_1EeobvQGpZAXe|XhKgMa~2>lv_@ zWY1J>qZXk;$NA+$*fV>8^UD{${TImPa_q3SMy)fQ3oo*;96*_X=tbpRQ%*DMJ-6T?ORDQZTuoM^)}`^ zuIvKDVeCqE`+Vpmf=f0hXlMB!DhJ3sRuFY!ZUP_oV!3>RUQT`klG#22ca3b*ZdYDCjZQ$1 zA4MdS;;WwvIUTv>#+(uC(t?~ewM2rJ>6PF?Ps_Y;_Rx3NueWaH?U%%W_d2qzh|`T+ z)O3sh3DTYwUBKCp!-y~MnipZ7t&a#b*o1%Gjxu8Tw%g%!RqMFX^%1>zze;<-QD|jF zl6#$^Ew7-v8^<9xbUy?f!v7%c&T)@09aNY2Tk=%6rnvNVvS@!%`vla+Miv|S;t~FXshcE{tl3qbFV#Xu+1!5D$RCr!&PQvQn3oF^GC>XxRli)~CI>QlF zE^6Mvl7%u0AxB1aaASeK79;~o%XDghi8-%7@GS-U73@thRtUWp%IaxeUH1g3{$M&DAK?gbFv7Gq z%9&zaLRxMd2|K--ENX1Zf!c%=(DLu`izK}_zOqK2^`2(ZM8j?eZmxkwvTlue=)|YQ zCgr9C)BsB;;n1aH<^KnbKytrJbK^Ql)M(WWsn%5$dM#AX8np?WYuOf5Y&a3H+r`CCh2|V7zYn%fpMQ?z~hBFlK?E zo|ZR%o0EE)Gr>fN{ ziMEl+cS8cE9<(HKrHWW0cN`}HY&tlrL7Nrhp^qKI1i~?lY8Y!G zi|`kvMS_>+C`K=zMf#RDQ+Yj2wPKIXm3)!=RsdWP!y?-OAl$}CLJx0w#(7ge&{q3i z@nGGuu&u~1K8t=whLZt{-@~*HPvfg)gf)$ATxRartcPl%Jp7p?^1Q0#G)j9wCP_Q1 zuC)BMNbK^MmxrwTPn!fO*ICypbl>$Jl=i;}bl7yzVKdA{dN&~0^0Fr3dLT_>L7OLn zc-dP=3vr9=x&RK!=Y2Z)t(k*Nb4=R+Lw-LeJArqP%tuJg3?_o9P}U;7TAT zDxl<;^vGQTGQVo%Ci_n%8NxJl8H#ZCKn{vs#>VxkV^I{+H1d-l=QY-+@Mcn@>ne8L z!d<^^%cqaWiHQbJs@P?{Ok}18{*4p%ls)up^P0GEjs$pno)=B>?d=D^8#@+68_fJooAAb&XQK1L2LVbk_MCGt?)>xN zO`2roqv!FzWBo;6M&Aq1XYyPTL0&x1GwyHaoTGVuPod?=W8hA(8#Rdn=zDDu zw%>Xaw%qU=IQ_k0e+Vr>5CqY8=s0fGaG{O^dECMJit1iYI2^|Tb=?TGI0@fRpT)sb ze6dDOGu*Vw6#0G++ifq5IqW!$Iq+~4$4x+S)L76$5#=qL(6#s#Y+mpP*5C6-^sif; z-cNCN0R$jC)*Q%wP`92D0H72T&bk=w?>G(KxJjVJru4qqxEAX!IURj3JRS$(rq)oSFw*`#kYY2OY5P|9Oaj9$uF^MMBHW+_V@_A z-A;o$eqVs5f5W`L1C?bDqW_sI5UhVTy`B6DO+!PHLG>Dgzvi##zVCRnz2|wm1w1W+ zHcvsYeNlB9&!~F`}+Hh<#+n^b!aFB2U>jf87>wKYc0C47r(BlW4rv<;cb8*AAlD?y;=D6aI^v6|<>|;7aAzEfV8g3P z9(10f1_9zVqxs}3;qCt3)Viygb>K|g56;B>s*;>32LUhNk}Ywo*9ZXOqBQ@%P@H=% zNYh9|Mhh#&;V8^`9}08c2Y>lP=y~Wou+A09`m?k$wUA+A#Cq4Gvg%$GW}ar}vor?S zz9?HAJrGojRG){RMy=*|a8Mtx?Po-|NR_1Shb|NfDEIZnp*RJQkWvY4^X6u@Lp%>N zZnz;Ah(~2gB~1S94S4;4xhTI84^ZlUcF*%r_CqUfKM3F{Ax4LN=%X0(t;;~0n{&6R zlQVn-#$WPHv>bFOR(WiW@Ef`EZeR2= z9y|Fkupo%m$O9gGc>~O26m>o9`Hjml?E`1zY6k#_>tVvXPQ#cZ-T}X}!yl@t}3zlo^x<+~U7p|xY#IuMr4@1i*E<@$%dx7OO{e@1y089F)K1j4cplCS`(!(nxNKuyzWk;M zvu*9!Eu!W0+u=^LTkF?Dq^L-xwzjo%+BOBv@46Q5kqU?L0L#Vccck2auf9O7a8EdRS-@Mt$`g8296!HU#1-wH_LO2~C{oxHYTc>8bftO>+ba$AR? zG{J7s4a8usKc5J2xw2Z>fH%Fwwm+p^rd|+DgjVYWj4OG(0^CXI&Q|Io>VQlRgT9#F z#VWvB=D?s6F}F?M_z079h?RP$e9dP zs*pTW2c?9BLkM_pFFK!k3Ry&3>UTNWdhBs%Wjx@&Gq1}o7i5a{&{1^)qS6NsA*C%P>KFK zag9>!_mkgX^!!5yjUTn`1eoi=Zp2^bbAPX+4Ib6Wcydc#6`&j1l)xVN74ULz&F$yn zvAZL&vjNb+T+Q3FeQc(0$WssJwPhzKMz2o{1+8(6&ivIqlCN%_$(r0|c8EqVoFv zsJwbR{ACY;b-a<@Hlb)f?rM0`kICk306?C2t#BtFZ%t=i%fNcq)KFoK*YoDBXFXm$ zuh(#G2M6_r#lINDd6foA4F)3jJnP18ubufx%>2<0(RRRmxFhUFLy~xZKepU>Bf1}b z6hT)fiZf?o)Tcg$;w+1_L@C-%JPBK_{zY7el3bQs&L~A`?tF~B^xM|9d!Jf>O+WZ9 zwmoA;ZCF`qgI>wo@Z<9AnCzZTBSe9lwq zp}uvi!^m_%q*@0Mt&yud?Q;Ib7=QS2nRT*C8GRepf)I+**zq84jj`HQ-MRSB6fb>| z;TeEUcl{oP3DYp@gb$)HVG3xW+F(j29#^ACad_ka`!Mq4DQ{Pb=1L=N~%{(+u9oR88` z=Yfu%o^DWPP}`QD`90{!=_u^`0nibXks4N2FK_r*yqSlE7U>3Jo0p>Ny5qq6JHrcN zVB+O&R2JQh%By$7oiZOyC;kl17=wnx?=#**f;SF;6EvT69q2H#)`|CbqW{Ssp#O#6 zfcI?*%P9LJ>9DCN?)^y=_d6#two4H8&~(g|@PD&U7~Dkdiva`{+BOr-Z@&Vx$?S&! z0LpLtZou1(sGc?OT3o2wKwQsH3~71z+X1MtHF6+wp&Cjr@fXJ!gDdy;5%&)O%=gjzx4&Zf4&&zX??l&yIH&^&1> zcK%GdVN&1vHCXhcZ(!|xx5MuV2bn_aFibr0ec1W@ucA15Y%acHgGuF@k{$&)K`0Qe zx#rtgd(F2aehGlqIeTKxAMBbPx#q1J*2(LD*o!VJ6X^kx?+OL5Xp1?NYGuju0O!!B4Q$&6_$wBo_s*Y#_xD81MSILiyyqN2JSk?IR-)@G zN1=G^r$EQgh%M&5BAm&)8F}E_H-c?hmAFR$;C>l=>uOY9x*z4IZnCcji!$ZMuS5BX z>p(|L!mvvX*2{@TwR0Ar@BVM1@BVMX+wC1_`S{KG%3027`*ds5{>la5eO=XtVO-7g zBs#A-5Tye@kK!R;265vZ5dNxv+S`}cINAC(Uu7)&ASl2kAKB_zga{_?t!Lx-;8;1Jdn~Tkm5+twrOxi z?1D73V!dn8|LV`G69!tUHL1@V1@XK*y~$wRX!8vlyAcvPK;evm3HPkNX0`6RF8cfW zKqv*#wmXGJayix zu^>_%6B0_cmF*qqUhz8C+;=Ae5s)Jg;H_^zll?O1+>1cHg0W2i=vep?7MyV+%9}SP zu9v&EW5rF^V#CAtV*YRLM(eCytaZrt)bTCa6E0l$sv5(1vKa2~mSIly38ax!2QbQw zMu0Aupazw`qyPZv>%sP$uK;eoB6zZ3c0mM~ zOUc}@H7!{FFZBHK{KViz$IZmBAHQJaq5RZs=>6T7?E7cc>n2GwYb_=(*`(ZB$_pYT z^TY`Nyq%7NGj4YT8(y;WzySmm^gZ@{lwbZMit|4QXY6k9mpzK|3)fe*XX2yju&M9G? zkDh;=0bc2>U#*>%J`iiuX?577@H8?-JKMpf@`hFG>L98Pypf;v@Fa|f-QO35+XQMG z6Sm%V8+u*{2P(t2fX=`CC3J3LkY=6scH=UauSlZ9PCD6kgV^x3i$h=$e^P3alNbQe z9&Szm;<{M(?XRQl=;Mt1j5z*8Y`F6B>ZSnnE`AlA3ttXhx)LBD#0um+uP?^Z?|&oQ z1J5}stv6bwD`-aotd*u53R807r3%;}lDna?+{B_5h%=y#r5v=Kbhb zKwN#t8A56O>Ce6&2mk2_xE5zAiFbv>{?ECh;Q{3Sdqhh!vJKV1H0?c-uc!X}31a^k z@>;;dZj)fID`&EVMH9)%gSsNCz7aNTOL%`nwPaow0%kW0fHLI~hEa1lx_oH6)8IC~6&AaV=?&4U&YPXw~Q^=-z z6p0Q%s8JB!;N-fvs#+g8_aHb;_Vw4L*ZmYdt5-xIr;bz6yH5zZmMy{Z>#xGBv%X}l zO9yM&k8-=1%%gi=lhV5*y~$^IC{XW$6@~gKRfgAwb zadY7>e|TsBh6gAwzZHGYUjo*%x;Ck~7BI|PZyGS?>5n|pcs*fMcOYsA$YrpJa4-!G zlo;pX+Bk~`9qKrVxa3@HcOnQSFzE_2t-tyfF9u*1D&)DpX`>m)OR*t|$yU{yI0=r$ z(5`vzeC)DzYYJy|5T$TNjX`?s$E8pQ~Fq~F91N)8-()iiR%H$hgAU=&$DXQWA-2y zr3DPs9Uw3_fmBw0jn~W>w*q#?y7b?+I!rTmg@QFNAXxh%oC(zvWfPI6b~sJ#a3<~p z4<|*}S?4OOK+)f@yt6ud)z%aQ6-s@8>CSN~2-!G3fK zy5j9!`dA{*gKd^AG%59S0PeUU`bZQaZK1`j>=S(}THbK0vi}{&L7`9pgoiyDK2~Z% zfa?2?)?X=&o>e%CyDNs|?1|jHPwixBDb`_`uQV0+a)W~E)GLC$> z^Q2@hpSiR#u#uXNK~4%9`>Tc2a_YYHK(Cj_(z_nDPJ*{}Yg#Q#nIuKMd_6as)?Oq0 znRpY_d&hqPeznKQT8OrdM`4c-pydNMVc7W#QP}%*L?d|$-=sO8G3P)LDcWrU2DTxJ zrUQNsQm_XCvI29X(s){0TK+}>_bo1s0}Xb8^yU_=7t2cJfFq=HsajV9q3GXtX2?r} z3bpDxOEG#%8>{H3{O%M7f_M-hSi2?>?o=mf>7NDY(p#RImrxq6HA`2clty7#<)7R; z&!OzC=Rk4P7;9U7n>M6AI}_;jZ(48e1Nl#zWXO=CDgdi>o7%|&3Z_gh11J*^@%}On zFvh_+uL_}RI!}Ob22f?yrB6g6K6&z+$OQ97DKFSI0`iTP)5`lRo7|@pn<#-VxgkD9aAg_qhakKgVD#*U8m5=>Xyhmhh=A2Y-%GHS2m_98+F& zN}9Dg5yp$AzPC!}DLNyry({uwbnsTCY1Oz;m9DLAr2I+gR|R#h7u3t~@K2o(q_rQ# zLKhX7fL#aphz0F}bl*yaWitx|nCJZfY}c|r#9F}HwvVvZ4_41>89XYB?nCDl^HF}` zCLpkbQ!P~3{rxB%e1YYmh(rJ2IOZ{tzxGM=zj$rJaI;q5JiLEf_}8}?<=3u9&lBlZ z?1dSp!JTk)dZmpThvfy*G*!3F{c5d%T<`k(4nhOw5Qc+?+nVIMqugqyVxSTXtOSMv_G$GM4Q4gg~9MY81a9f&CqjSz9Fl311 zlUKwRy8bPjY^|X**1QBE`;-8QxZ)rLr4&`Y1Th&CTm=Dr-#>}+#^uE>wRBvNThDkL zquxZ3t5#I85?+&osD@J{V?dQWN9DMNb%OuM08X(DkoT;F2FZS(F8*0R0#ejdSAZU4A0G01uX)0WouCyMXGyLgLzFnYv<)PYrrcN5JSk&;!ZoG>zRLo z3m2@CXV-N>9S00NGTIB%M3gf^5D2UG$mhJ+QU-`^VM0^kXvS`mD#AM6wyn-<9~JJ= zuT9f(bY>9CY(eI&c_O9@T z*}e5e&R`H)phtCR(z(hnhruAs+5#de7*HmTN;%UvtG;KE1V+r?be?xmZ%6IBs`r?S zL7pQr0!{FP@Z0h{4`8vKg9LOVHTt3G&pAc%C9R|EfG@7ok<+rrWLok2&=gfn_4I1~1OGk%X;08hMTxHFGLW#OI12@cz~!d4W#I2`^P z4~xmHc%7xgANd~13BT4)R0o{F01^TK96gVJ4s9nt3F4Y3R{-sk^coo#5p zv#t$vnhx4F5LffRMSxqUhVAl*Tq76i;AktBNavhKX?_qy(x5spvm79<=CJw2&O;^* z0qgEU_Y;N~$^d9nGe)2B$*Okb#3KljG0bHcS0=2{)zGD?ds$G5Bd~-}LvLd1lr3001BWNklo&|__>+0vB8!^^9zZ$4ISmzt)d-l@QJjFTZz-iyho+QwC~Q?lbaL7&{*Bs4-Q>ZV7`nu|__6-hp`ACEvw?H{6B2zI_Fp5hJVC z$vJ?HPdozd+dW9l{^)1XI&D_f*cJj%JV_h2^V=}(v`<*;0T3JHi86rz?ZjHO)`t2! zYkgYgjQ~&rx-6%FW57596*yrB`dUa%P8dt>=173L`p2u=GEOj*ccd<|fq9;yO2z_Hs|xYOsuos|)eI0tWZ_+&Jn@^d&7_5>X^0fl`&h?bAuQr)(p6NA;yqW8Z4 zM(0%rf%n>Xx{yMvnI8`L%O0~D+0nL%XgcE32*l;YHe!j}Z;f++44a1LBff_bXD!Bv zvzEY{o*nZbH)+Fc|0`F*-fYP>mLg82-KwV9o=NWBQfXqV>Q-KuaYIKk7J){lsUZHE=0`>*{sYYTfU!#PlWv zGrn*!2&G|Y(jW+zI>fPQ>I}^J+yyxDp=a>+8}G%;kAD`U=O2RUr+y5F+;BI1gcB`w zAG_b(g*AV@*V>P6b1M$K`W7^en^@Ja5{O!+%)kLx-2$hW9n^$D060rVDbwE(n}v7Q zZU>b|-9SyPKk}Kc6;gp+P6`5^l+IJ{j{_V;O!yRDgq3_$UTY)qp7Uh7l;q|6K@FM} zYezJiPlDn4#l~b(YD4iL^8}8LoQmcTUt1dwrWqXoXVTt)lUxdOr_M+7Nk58(f{Y0P z+q4A!(!bhS=-y!Oi=ZF<|Ge5-wm9!>G#&mGFcMF+_wt)cgylH8q=g$K1Jj)nw z5ioDq*Lo=E5I{;i3Q-Z8+@uDTziFw2Dd(Mw5eFZPw*B|Bwzc#1*Q00ABCPxQ&(Zbl zGtnUDwzp%#7rubjefLH49)_682-V{|-~SML7rufGKmH-gE0!nk1AxD+1M9whDJK8$ zC&oIwNs}?>FOOr(Z?D7Fn{GhwEB`{JQUO;YyP;S_)86}H#PKI!)G4RJ9cA94(y~|R z(>*eB6MYzsJ7R*sM4sN|Z=f`Fy0NYa@A&{)=j?`c_uYy9jq5<$hNF4vbhPg?7sKCX zSBVXuvm3@8bU4;N@&M%YOB$-Z^rK5L@#qtbs&@bwHhUKwebbaToN?1YilRSKqM>>Fod9Rz&eeTT?g88II{F{I4s88mWmcm!ZlPfHOK>Kd zouV|o`&%F_?I=HeGkEs~kk--g-gW{?M}G;VC4H-B;lQ)tOq-9&%Xgyk(w_vQ3Qv;7 zmTJdO08rTfV<0V~(R155;5`PzO{FeUXofS<9A5zdf{m{l%YlUNXaC=SfWqD%0c|xK zfi@j{A-vhgqxZ=x(7*U@pxl+L4}ddbI=q=jqqyt);Y~3+VR`9OHEo-Bc#~5x9h&ISS;d!jg4Ail99d3Wm`*HHD{i~glc z0YdP$2OmP)+uxqMe0k*xyfSxRuwG$_sSKQs>tfc;x1sIGjBOVP9n_THcpZMnR?t!t z-1c@9rq2Y)q3Yc5+h1YTH~t%yAat!N-MUJv^}zQ*To=-H&b0sfZ%jG6&Y%Y=wBX#2 zV#S?*On?PwI4Rlxn?J$qk9;auJ(bSw00F$#bnv#(=BNIK1!o)|Mw0`SkCLN#%1j*e zr)NNmgCvmvSb6yc*l^R&k{$*PYQJe;xeo2eeqcb`-t?QVW83e)11cJicua|B79`u_Db^u6|j@I)Q*i1MeVQ7v74$JA>& zklM=2{QA2pw{H+pmKgr1;b`Kefv^U((!zTfc6;Yy3?E?*iJL`@JA^@KUF|DIUaDlt z44&N7^RcI#QX9ji653BV0USVK!i1VY8~_SarlMu;yaX?i`quZc^rIg_&vVaa*5kCc zqG^vk(RT1*XxV=rinDgg1>(HikG0ob71rUpiN1=A-4t~_Aq4CHbW14t4^#I%oDll^4f;g4dMVWYTjWejviN~x#0jt9enJdf;a%QA9+fo z1yJ{vC)M@@!w)^lSiTWzJ4Cjv?D&Av4?KCTu+K3A9*dkb4THPek@+$U#wst|1>QTj zd#MZif5fa>&m#yH+fY2{T(q72D289M8g1wQ6Rn?o0Ii>T2*bX(5N+o?ZUu1w=zHu3 zA&6@feJkQve(gSV-F03zQ-s19ISbz81K>?R4DR^7^MN>kz89|pFIO8Fdee@n3B&<_ zwoHaQL9tPgz{x7;S@2na=ZmmbnD!BKLe@HWJ!{{lI@1j6YCYzudk3e6*T{+H)lI*y zUQ>T_0K|3SwA4N*Im1HG(1W4mB|5Cl_}LLcz`DDz^!@Kf$3u3j)Ov~a_F~D|XQKD@ zrN%XOY3L@c&1G8Wl2@_%x7Q39AHC~VW5H)Wh;qkP&B;XED?zy*kA3wy-s*ZgZG+B_`Uy2ykpTFyhefylo? zwC^7vO@q@PwbskaJ?OjZf9h(>U-S@ymD%qVY0|bX)}=cHNTCJJ*j?dHKM?M;13)vR z9)Iay(ZApqRn4g&uFfZVpZ_g7@AwROCEW_X9x5-r8$EwBZ~r2N`rZXn5aXr>kiq6> z(f`U%bJigyAvOf56`->myQsfYG(`=o+6P)yKSb29XE*89O^wwJR8O3ZhDyGV?nTNv zR8H!C`DFk=|BB@aAMCk^G4w8s*P3*xoC7Ft-i#%uy$35Vxd^PUw`TrK)cKFcu;}Dt zvH5{}65t(e5!0l3nI@gWy#BpQ8wPV$DPzg6ufhZGH~?E;d^Xw+mv}CU<$3SsjdreVM~`%Ys?2oORDBvhqcCDmT_-p$O2=szM(X!IO?_+IRN*V9qo`?ZD4!>;Vdkx%_94t?lluvL3P7X8rb-UYq4`?!^FycK%?^l|n6 zZ%zmC)dFpw4SlsBK1~Wg$$&ehxq+P2>7kA9N4zGqf%z?Ocq3NsymQzIjll!&eJ}QW z=tE9gT3*KOuYW!2eZ#7gnUxjX{g&Uv%5C49m>Wq%{2K0k$J=q^WtZaa-~H`QkM`d4 zEiYs5-~Bai`4`W_cVGU~Sibd^kjA#Es^F;}0eX_6H2`{Ddv3zg$^Q{i<$Bl3PCDc_pq17<}?*H7!aOdCrzk?S3)zFde+=x5h z`R`*X95JBMzumw029yunwXk!qeE%lg_oq(UngDOG_micgUAg`rarp1w1uW`*=nCV1 zcsuG_lROGTq+g?PlxVp z{%cY0`uwWqQSbQ{4uA6hz(enPERNprPQZ3Q=lbq1V*K?#9)8WH#LCxx2YTO4aXSMs ztCw-)v)4lJ?Pf^yp zDookbx)wq}7CAON;Yw_J>W^T<6Mq=lnP(y2eg@RGZLrJBFe@vl_wB{X_iw|>?cc-E z>;DNyZnzHR@)1CYU_V!R25l{LT_Y>kmC17d-p9*nY)TD7K%C(HUpLtSqD4y9Y;h-G=)<{V^Q8 z{!36+hcGx4BW!xqW1yDS!CC_ti?Uon{m>p%d+x&F{rh38aj9K>Dpko|03m>4^H!`s z??Q~Wo*6w??jOUs^;QO+{V?NYRQKJ9@`1a4N(d2XDSUc~P! zpF7=A2{>oMas}0%J5fGx7X%EH5I)_k1%&&kEi9yP8SexD3k&7F-h>3?#%;*Yz7T5j z8R2~wqA98ZYXAYCWspw{;p4IgAB1^mm$P+qr=RrZ_1Po+KDq6D*M0qFa0 zhQ99`sK4{~(D&c$?n!uB%`ycfs)uDFBG4?FU$xCf{6vVponwQv?Fw1wrly^4ICI##X=d<>)qjSsTHy<}+{rT~o zPI9(;f7jT2ZfW0RMBn+C#iO5l>#CjI<^uA+eep~1!n4jsrnOt3JwTbdMp>0uSzgAG zBS)~jyo_o*#^ED}ojTWAkOE!;4e-*W=q0A#m|P^I_anLCZ9q;3PdpnDZxVo$_qH2P zOoRpTZ3*{5)1qmt4JlJ=qoJ)u<{jI3K6Tp8Ja`-7&Q;ZQ7>hIo#9Y*M9rdRKG}Knt zwVS&?PMc;iw1CU0F3A4t^N)J~i8K=am||3fJnTzLOYYt)h0&-8_sk`habJbj8cNCl zIsjm_hO1X^!!sC{W55{XMGm7i%Cdyfb*POF09II+x>dyQ0KGHenbG^e04I8flKmX0 z)AuBtCs{zlewn;O1Y`m+-mw=}0FZ*eH3;{|3eU{?_f7bBz}+t(r*;5BiEysSn_aT? zN&r$x7f$E5Ri>i3c1j>B`Q7#brq|atrtN6we^ct}$H%i%_Dzg!C;KPo`*~SuO7upX(4H5B;Mt?R3Cy+b_`m?D)SnPjVz}{9TeQ z+g)DiY2WmB`mRpAvv&G9_}J-npQJ!Ocdm8eZRFYj)>qcz$y&&M&htP~AO3BI@mkv2 zIE{#N#^m?X#hpxhHUX#;b3r<WSL`-jE3ivs0}fy|s~LDw}5OjI-^nwv!wdzrRb|IjGUxdxg7 zCn6q`x2J0_Q<%8FHfD5aQoQI%wA)w*2-NO1A;d({dqqxef!Va4(X-8U)0o;?7jw_9 zKYUZxC5p*pQ&c4Yc`Mi<9z=BfPAAbfM%Q?=Qrr2v&a;X!xd;>97XohEXz9{#B03%W zVLHa1m;%2pGs!G2oJ7ZV+BTHQns%NxU~fCNYoF|B8#0G3269NBq31XOY5t-qAa7e6 za))bUQ2VS?ePEJ)D72{YZ@2F|=HSZDGBo_J?ORLNF+MNAU8|518Ow&Iq;!(E)o{J8|A&mS*fj765qaBbxH7?Bhn@FlDk5LSldD|wN_7=v;=hV&W?mp9()YjlmG z$WePO55-!i^UPSAW)fD)DDwND5d*gD=*QdmU$pe$_cT-^^P*X(zUH|A3(v%mi32vM z)Wfs1fc7f(khYezCuoESk}A6xj!8|PmTgSjs)1l0;qf$Zo;JX&v>Fia>(d9~X?r?$A2Two-%w4_ zNe1R~0XgLa&wUPSUi5=B^KWmOkT46i9h07?Z(bIFH6|_=;vLus z5T#N$*lpx#ImC$Rr`8gbHO|y^2^$WLX9+fLsU|Yk;ak zrn2w`YNG?FQI0!XIfuNwC{S4oV~v+qZJY_O!(;$5P zHBEDz9Zm>H(mo_9oNRJzihI^No2-Jn7tV~}85(0@q=>+r=1ApEt!J(Skk2b6ua<^< ztn+-_U7UW)J|1#O)S61V1>i$}>z_$_+KzKgyXRf++rnrbAWkLLwBIa1I|S(Y@2;`i z=F%p~_h|=C5fBF!Ad&NeA%Z|02x?bKGfH+}SyfR^_EdG+!aN7!-(?%)O?~>LroQzd z0=9IY2Pr9pi}g;9QA#TjXA3oDEx0MDTKsY?l~{d)l!DzZTU zBOy@L6+q)yH;&3PRAmVv1=g)!kFqMA%H5xbo>D4>gRaSFCO`Pw5$aF*^y*U&)Jwp64(Bo%H;XDYjmQVwB8ZXB3{f8e*?TtfZmlgOjR`y zu%;eA?E{_G*2jf+>`Fo0B-<1HIlzm_{R2+FIGXi-w}IEtw!U-r0d3l+%LYH~9Bty0NN$lu_1jc*tt|9jcZ?p zt*YygAR) zO6g1x9-uPUW^j9~yM>%X659BToiy;Ke_mCu@UGW{4A zMYE1KD}eW$({knx&HG{5?^Js;0pdxcO|B>XJ(N7J)=F(y)Y+kHUmvjb^`AD@5K!y` z@xJ4D`_Q>{_3JzKB&UTqyGbdXnh%Yw6hM#!vpjbWZ*}E>-Am+rVQO<~0{fkUdmGq` zq<@=rzHce(1abd`@$a)sfH2lVNfpY7k|a*0Pk~12rtQ?e9n|Gsg&s-hiL)E2@`Vtn zy?42_7Ip1B!Gp7!ce?7j-mWTQ9ONSpcrW>9B5Upu5P`Yz*CeF$j70_m$506G>_%pY zEX$z06P*yiNJ@;yD~=J!GgRYoIF~U7nRl!!%M#XTSYjsOUOxh00rp~ghd*L&5r)>wMZ)3fL49FF-Qsh^~HB}4%Kl$2Dcv>B$h z?E~(4CGK>b)%H#2Hp6(4+Pj5`;z?iHC}>|&5brw2oV2P!8hxPM)wg#N?C+4Vhd7&c zfw*A*y2k60yk`Y&zV9TL#({aOpZUKgkvvEZ4ItDar`qI{dp!l+6wLWPelDWaTRjEz zS-z)M&v!N$*)IuzQ)f4UhRdhF+FD32!Pj*S>7`Tp4L@G(J=SSk1IU@gol5ALQqEC} z*~W{}D3rC#ivlnLb*+P1Jpy0E(l}ke%dw8umzkt%VuGx(L9?QL30tKUv^FTK3R#u~ z6HD$jGR7DzWjTx&gM-r^v#paCw^9-r+1GvOpOVhrYtewAh4Xe7)_C&`t9$SFOH5WX z>tYyrAFf`fovDT=?XQwU(tAipS!*GKo!>@k^GI4mvqo`A-UvA6AbD27(ako1&&^o6 z9-v(&Z2&z`DuZ6?gb?No%M z%v9}KYp8rug)W3>Le2z@VS;^CDFvA+)V1z>DO1oUjYDf+b`06WYwtmx7ln&m_chIh z_a8uAqbQ1SeNIYu^Cl@hm?(r}N(3nOSp+7K-XCiWY-VAt@$ZeVp8I8E!sHATPhVKJj%%Cq?qPNt#ycG z2zGQI(cm-`{yUTc@b8R}PJ3e^AcTZa&g)xA;T$M^7Pv6JaP3w&CQJB`x3VnV{i6^z z+t|}784ob|ygAg_WP_Kml>8+S#N_!M#3UpOIcY>BZCf;nX)p;86dO)V#svRh{dXvY zbA%I6C;r_X8HeQs4pc8t;a(YEX-NgNE6DJQxBCbB}2Qx<)NBv}FtSQ}%I`!t{A>_*$g zXcS4@mL1my^4b`Tio!|%iDR2FHc}sQ(%uU_C1T7{M=esL8xQ8WXt2QokSb0HLz1Ah z5|k2_#^(2335hI|!RJB<32nRv!gyvNQ^=J1_N1s54u$GDM7_;001BWNkl6v?7*!Q;w(yFb<< zc5WlpxoiP1?t#xGaqG`b??_5@&D85!JFQS3x7$ZO8i|?5n}wkm0*nK}lNcz7*cq}@ z;OCNjq{+g>{1=7aZT9hF5}wv2*|vc??>j^a7s)?SVeB>VfuKS^kQ zXE!OGbYV?UqYELRvJ82iV}-)es6v`|0PA9;y1+bbpSA|1AJjC4zH1*}pZK`}53rt@ zk;-{x6T<=lh%AGYs!5d!OvHL~6*+f&)5btEiJOSx%4rVTOW;A$wN3aLx5bmloz{!* zyB}@d*4(pQYYnL-glA?dt)YZFuBOayzMqgH0GIId5Y|S;0;mv$62hs>EhUCQqn_6q zQpk|AzVLDDT5HHmd7lgi)|qn5Ls^wBSG@On*G9W@`;@nVG3&Sw9N7B=fRLV({pAc; zy7FsdBUO7?a~POg(az8kA4F0&onQH51#5#(vSVzAdVR>pbfPSBL!@&?#@|E1esg9D zNVHKMk~!~B$D}+QfWh~v%QRNYZ`%hk$t7{vmy)wRZt{dRz*?0+S3yUr1Wp z7$-5!1>~eMrni`+DRQ!+kfU-u4(e4QC8P%%4$wd&0jA$-AD9D^&!DZH)Lo&i<-w)j zbGk32Bn2YJJ-~r_9palCi8g?xw=v611-rR17UQyXVP`CSEN5Up^2uN<{G!gn_cCTr zCn+6a;aM>jESUeO3^CPF_ZIkfl3>ox235Z zLT&v+eRb>RPj+r8C9*ts=kxK^wHKjC1_*Ui)=jL!n`UNTr@-S!6Tk@%X%6 zIhib6VHU>_P-eK=M+ijML@O0-GwO5v;|@T43;>bzYK#f?c_}5Nl}&ou#6?&c1LLJ^ zW37`ES=_lM0M$S$zW`-E1I~d=Hg;r7(b{lv>7;@1s`ru4GH1N4TnPcGWbhvtkH?U? z3w5ij3Q{@=-le^DVSbO5uB{zO{Au2Zg(SMH@=N4TK?+qZ8m zK)kJQm&(2Ed|lgppS(4oRazsL-FzA$<;ZvMUq7E2SXG`OP#Yi4Z=9*k;b1+a#C5 zWfON!%u*YL>RAjRyPV%z?@tSZ#ihCcrb2|QcJSsECp|l=eTFzE4O|O@#kMFBt<04HKQOr0HzuVkqPI2PAy^naMK2F9M6nT!?m|v^b`lbBu#Ha*~jCV*Q?Si!yN;J=gyzYes1Z)VoBW6S@ z1y~y#*C3o%J55%=IT;GC`N{J z(TfGB9BC+z3xt%c;hje#`SJCKimFV2JP>)^3)W5&c;tC+o!Wj4gvZ$iU6e%Mr*7vz z)8FYn(aw``N<-5^yY2p_xC7lhm@yUGXOX`9_6?P6`QK@F^uFWzr0#V5HYqv<`nKby z(SjJT6NMH6{t(8g54(`GDbx0JQkhK5n{_l+}1}1v7_5iqTJy0Y;B@qw=A|? zQ0Yu5U7-_iUdi)3h@y3^z1GI7zag3eAAVe}H6RI7(p&(La^1isijjbSpKMe%Hp_Fj zVoL|=5DwI3=9n>SeApVCdR}O}BOcs0}N(v+D8W4c?j&9@t=kf^H0N#$7 zv9NXRV!pi@Ce-K_!fPR%^e(KEo)s%&>LLLwD8i3&w>#~JSJ4xw3zq@TI{Oa5mItjE%}x5)YOFE@?jCH4;>V zoMOvUi87@$6m25QTYij_!>kpxsmPNX!+*D`)aicuzg-1U+A_SgwWa%qg84$UzC!@N ztsno}HO91Xu4%`wwmtpb$4vAA_7KnZlaLky}+C@{2TAM+u`|5 zGpBavYIUBTl~WpeHZ37cbiHV#;z-ky00Z5B0*JDzP>h_7zw&wCc~&}O08oktUc+Jhn#O=kCVQ-#Di_^-To~>;DrRs9`6-n46xsR39Ce zJZBoa)&{wfLA$i7EN^|FH7gfAt^W+;wfWDaU*d#=n`rJ`-xR{}Eet@HbUuxy`Z`d* zv|+U%-E~ac7=0iQ|S zs+h-}=h*3-`e zZ8DED2PlPd$9pqW&DGX#m4G&gW;h@BOa~Am0Tck_>w#?-1KV~&YoY60eVjr{ zz)LYaW*Tsdde-7>M#mYWLw#*Zf?|9YHh5LA^!Lui-&^E)qb{e+ZGE8KM^ix?lbVrO z3L(AkKH(!f(pjCYAJ6)m-XZm(;|m-L=sngPXO0gp=g! zx<>A+pVf5@Th}4kkn>xh@~PhLE?lZt0z&}-=~KVDYxLTYEOTmer69fZpZn)T(FIwi zu(Gm(LixxHU%u9j6H8jrdzh$ddEfL2wPLBYu2_!mU>TF3+P(quZI~um-}G zQZ6w}2;&ki_d3P+wyDc!B@W^wq0Vwl7ZbqOd7_H)=X;=){`!oyD60x1?<-MjjZCoQ zH&j?h)Sp1Wt@8Aa@|)4lCsckhq}u6ztDP7h`C}{}eN(^I;1r<6*vMyG9lF%-Q)$4*IS-ig z+TA(J<0Qz19`;TBo#_oYH*jCllG^FTXktCfXRR_%fqpLI7-tFQ@(? z=e&s98NZx7dPjElhVz5vD;=u9^ua3NWZm~g;KnNDh>On;m>NIUaD{0y9_#<9<8-uNa? zsaidVxj|`Bqr94tjI}tXel^ z013JC*^n1q19R(#p}+jwut)cFc3(so+T$$Q28SvvkL(+>bNLBz3ie>61Y=ZsI%Kp3S||0bbJ$`Pd!pclj3qQ zHgoQsPT*ZL;4VFgq}K!tldAg?!W>WP%=XqR@p;fmfyN(KRh5q~w=M?Tr$Yr0lEqZs zxs0M7D0vE*ZEBySMJkC=Q9x@OYN7*x^f}VC58VU&J7%p5hZIdR8YjiesKAfE3II)J z!pc`%qjaytd|9ng8RKm1Lb!bLUbU`O2Ed?ZlKITfz#r!_-zE3hJ&f>79H0-xS8E|o z#ucrHF|evY{ghvXee$beRngf`*b@2v>rm|b0`mR;1KE-9LY5EooK!$Bod><)Qj}Y- zM!D^2s5U=fgUsCF{4=@bsundZTG3%`@o;?k0f*j zwe(1+rOP0f9t$;kG}P!ZkoiumRu?YSg{OghR+4aP&o-hIrHhb4DKQCw#WZhupji(l zG(9ca0q)Gkw^Jhf_G+}16mQOx<+zyUVfQD*tFvwGW62jqU5@e;ZjOKDO9x%S>q^cozWVgvZmgHJBR9jLTteBaICSvlIeHluGH;M?UH#vo(w*@8U30DStIXZ@UQ93*HWU&SN|KBkd-O=CO;$c6;Ml;LCB3g z6OC!525#SPaoawN+xJ=Aw$I?UeHM2fw7BurBS_(a{1jHH6D>UajO^js#5Irs1mKEd zoY#P6k%m&B9C&9B(qVNySQ%xz-v`GCcnp&iRY7-O<01mzGynR$z((Qn{S!Lbx=w#(3Me2Xra@ zHnT0Gu3?co$26b+Jhtq-wsfbi=ito~z!(6Ta2ej{eNoE21EY}%Oo!9fjG2nx zOV8fXFnTAM<6CU&cDp%912OKoQm^s-p2$lt+P^P8_f^M|&q}kZC;Auw0Orzvj_SE@ z14b>2zBL%_`4~3b@rTF{ePi~yc91L|!1~>Pg7v%q1m*Up#(C7|L&s{{w;E|Z`7K6gA=`L0vQ1Bg+VI0r>o0?l8wO4Fz!I~U3|SeSL5|gRr1DViKQiH2P@0U`<+py zGX)8kCC?>;@m1hLvX-U>fPho4OJiVbZ^QOsWw{hl1O#1!@?mJCIwxDU%T(vDr6{1r zV;3r?6qHerSq5ng>beS|b?{tAd-4*>tM2>_?eyo?0{)!ReCwR#obT@-S|e^!U-@#> zKl&T3qHKQfMr^v}O$!C^HY)ah9>w0zqdenTIQXcyLa)Ch+AlWlK=xDbf&Ta#V0L|C z(3q*CTRh-^wmvXVrQ#uA+_rB9K$q(tiEQ)L$hJHU*~Y6O*F6%`s5Zd2AGEmsUW0Ew zU~!WN>^l$6{xa=4;D8(eq~X{Xy0Ns z3qv_{-|?iXs!%8=S+A@t!vGjDwR15VH306Va;bdgJTB4ud(5?6^zE)@>7F$XnH;g` z*pPGIJG-T0aaFH?)7nt2cL=wCWjuCK1HK50u|Qdt7>!&SSZ$5Z#qRUEduAZKM;=v_ zP!L)>mAX=p(kFbWYmD;T0l%NWg<~W#pRA|WE^mDB??A&Stp6ZEkQl!kActqJDBhM_2N#tT8Vp}-)(@NsNCh! zPGsAkg?!tykZpYiMBX3vR~z7F58Bt?YjDGT7B}8!u)HAu-(3eRo^pYoo4OF%oCfki zMBtHvyOa`{QmBETMy6cax^5hhgb<;SNEdaz!+mBZKK>$Tk*aHQma45mRoBQ&4y7b= zFIgMoq;_4`uz3zCC=F^1>HtFQbK#4Xv@t;(AE+?LYVQgym(%X6wJw{Rlg^vet)!-= zxf7t*#vt>WhAj7)0Ba2^oD&?W(2bYYM_GJ|^NZ^KqcVZZ;;HJU)jb{ln7EbD9Q7+>VukezW2^6k$;w(VJv>n=ebJ$TgO zi+5RkVYk5-?=lMo?KawVpn0LBym0MKbb`?Q31R4O$6`V%U!ETv@XkwU)V~C_l!rTj zZ>l0~*`9T-^Y#gSNo|VR!JWLhvn+#vbt>^hvTh^eL0zB$b+VN!KOSj3x|HEVRqoL@ zEV}aq5b^zVZz!9cvpEAIQHi#N;!!f3+B?7z(~;$wuW|3*iCSx5JVvG(AA+MRE7;%} zMVB>Cz*xsjYM&mKs-)FaPF1-Ovr6j_{V*!>Ac@yn2haFWGu;Dwcn7>Qr|?;8lq#Vs zr&@0V=vm03VZPRcP9#aah4kZI4E@YEO|%#Lzl^P4|M?jm+17@NeP6`(>wW_JulNA! z^-PT{B(i_@d#FFU54iWs0A_fOLsj5I$DrSRD)XK;wfPCi&-w}EXa6|VrYl;_8${pR zYw^Xq48Cxu!58l|xaGmwD=*GNF_2$$49|RgXfZ`oytL4&YWGqjcM2201dzmKOxvZ& zHqUb&cGhIRnv}$+z5CpTIgJQ(c=8ucQc7fb7EPQ=R~j#UQ?)WGM@puLEYAZVhp}3= zX&!l=yXtFo4GlnfaLKX^Wjz@tw;Br1s>77RpL^Ro&=e{$!EQ^=R<&)k3bZVQ2nU}K zh6>l{vUC;AM3XhI_P!UwJHF{!qpWKvA9_ZPcE%Xw{+W;?W=;-k(uFPwcCK2RCWWex zFBihw(mk^&ec4vZA5TP#t5OOw^SRjj?(G~Bbzrbg*6=b;EewS@?{etpzIEarjrROK zw%qhu2s1u*^P56yelFzF1)Wp4_prq$zHh?6dk!66m)p}4`D%&c!Y7(d2-9+2*%dT7 zW3>!JfKARnm?D)!#8UaJ03H&ODAiQoqPcVcR9DCwcjRlMJj(*0YbJqappY@+%E1E7gYk}#0MB4%qI;R; znPXP8V}6V=Fchu^KuO^|;Qe#aS_gZ&_QhAEltF7j1yBHsTq$S!_MvIgCBAni0n^y{ zNvc*#!PGVCS|iUhn3_`hHt%Fz*KYil_hE?eOCIaw^fo9?e9Hcll9o23e*PcA$~b?&+an##P>Bm@qOn}ej?FnAfJH<%t-YK#DGBWjqwX>p64j? z9EVm`qH)v=-qoozp6;_9eY=P+{y?KL&3yiI3Ng!-3@YEu=UNZ*kTL>K|&3hCNx<($F{s~w0`@&c3h1ZY>S^R~gJf`KYobG8bwahd)?%+*A9G3UqjtynYW7rnUan% zFa~+d%(Rqm8t&mx593TrNI2)jZU3@0)jY^ zs1IS=*I$mkPx=TnlVZhLmqR}B4ZuJBrx^z8*q-&+zHZq%WIO&jiicf`Y{!p7bY!)= zeV@gD|E|V=zt!OLyA8UE=$#0}fn12wKt7eEl#tfdj0P|v2@ALd)j7GL3E%M&e6+A7 zk~f#iBMBW|rQUHYKfl}6pEQQsQ=4QXF2>uy2InbWXPwSX;3^QOb)`9Qb3pB-<-90d z^)qg7K z|K|N$k7YNgZ9ly~Mr)9>T9W{Vvcn-{e=EzR+ZCsWD1qftS6N7Y9E)* z0n?z#&__&7$}=8Eb}ra*GfA)m;Z(5VR-pzT>RIzjE@=8|VXU;5mr zP1Xmn<(sdD&_|BbtcH^u--j*V`~~cL(uZM1qfro#e>HI1M}Yme9LL!K5DM8j&p@&B zXOW-xJcxYLL>FU$uiawHlQ7B;%tAHoxF>9!kUWNmAR)d zh0ZAt>KwRvj`mh!`)FZbV!-Pd2B26Pp~!QrEH4B8xAj0h8jYZQX0c-A+R6VwpkXLT zML&&%5RkB|3Q23buC=1{xpHY;cwm=Gq9FS>C7bb5dY)y-g_FFEXNsz-Lgov)P)Hfz zo~P5!2q>R~hKRttD>EUbh)wseMzZdT4e#oUlixbtkOhz}q5iRdKe1!;w|)s~Mc#9%z&r98TjbSK<=Y6IWex*9_~qPy9~v{e-6b(KLat^KCxe0 zr!xOA03>#xqKt55RY8%YUjZdc^*W0q-&)bov-g=s zQfEgC59~&VurdHa8n3++PEKwn0JS%xcG*VM<5jT#7A8ls?;5dvD9P|JMC`_{K$ zcR6_up}9bOW-epi6HX_6<;!8W#_G_ed;bcf2S2{HCtd?uf9IcKw&eHzFI z5|1P24v-YCL-z5ys$8;;#2y=gH`*of7uUEAy)4T{C2tIjRe&!QN;drT z{th8xUgq_%?xJa-#chBtl5GNXN(?h93S@Z>T~#PcXVxJHxGc|tH#_-6jLQmnrown+ z1~SH?qL4EmXRduIRu^aP@`@Ss%it+upji zCtfqM*!-P0;h`V?IKZ9uuJ~nO_b1T#_Ro8tg+O-hGf_P1mB=srDG0SR(dGJk4c>Q? z!C!q_uPS@miB5Oy|G{y1TQ!ikfoB_tQQ1nPb%=3>F@RFgI<_CS#fhhqxV08aOnR{M zd7%T;+bBvMTGtR%-#us6+lyxq|#goK7Y~^k1 z)yHf~Kc62IvX@;8Y&s`u+wlEAfE?d{oMtpXWruIUx_du><@0~8X*}bx!1+G{-23^3 zo=fB#kw4-k7(M2-P}?R8%IsgU_{*CO-g$$@*X}!cY~HJ(-3OZO6CKFSoS*po&TeRI z$x^r+*g(8sk+WN^YnY^9N>?%%*#h7~2&f)l9Fv-03r86c<P{y>Sn#B z8P!fCy5k2Z1Z}?XGq!Dv2{!N4Nhr^An7T$eUU50rfk;xEhz)O1n{xoSE&GE2yb2Fs zQm-o^V00`6OMwVP1rS2dC>)Izd+MWos!oAMrA@C?W=&A3OIRE|x(sM{T;W602#kxR zCZ4?DMO1v@lrhV}&eiG^#>Ssht4DZ;Cv_jm7R?L4&ui^*&B1({xt0LCc{kkOkX?{v zX5+-O5L(EF`4dhPLidfAx~(c5&KKgy+59@4-pD^g3jQ6i{RDt|qKZ?=iuSa(N zHAo-iJ%=p*%MBXuzER`u}1w3f0K>_mvu7zyHL1zQ>yOE?XQbflUP<<@s=McWT-d<}aGU7Lm5shr)MiZzCs%A_C&J zIC2U%6D`0V&c_znHURIlrMF#!)*7%jcr=qU8-O6Uh=DQQH)P#LY<$LxvGEx%LbiR!)OlswcVOf8 z9oTrqvvKyz{~cDo_ciSQ*t>D$D<1)@&mBL5ioMTkoowe5UiBx4Iz7;)b6~b#95sy| z`2Ua7WY&r-MtlAqM<4d;rsbTgoHx7ePTMN-4H#YVI*hLPC5Ux#dC&)rSiJq8G~RKY z#=e!)0G`sW0~U`vO8`)i@_ZPx>v&ITO=vNybu`XWkqr(AYIR%JD62B4F5$t6wmC?r zp6OlL-DnX@z0@aE@eFXu4$fcsuFP&U1})$eCPxK7s7?Cxq3Qi-+g2<;I>nEdXryq! z*|#lRJ@UfGh|_+fHLMUJU$|7x;jPjdnNJs5RwZ;p3I_d?{at> zbUv&O%u~sqJk%)+O-K=Z9HeKk$mz^l_;4 zQnBv~5s)L_0DI=+A@aQC$8?jGpu>kQ-u8{yX+t{O7OMc-Pl7jvlAf?I!~@ zKu)pbr-6KuJm^~M(pOSdC|YO$1dnSWgv+Lt=NPZ7con=?2XZM}2nfX9>p;tz!@)l^ z#lTHzU@Zd?nPro8xUF^h)4h$H#w0axl)lVg^|-YC zM3D*Toolo!0%fTKv#GU4uCfU1Nv&=(<x zIX~~=IPc%S4+lT}KJ0zZn_>``AhN^X zS<9In7b^CD1+WIZ1gPEqm>9@af#Pv5$I{jR26E%M(edASz~cA5QsaF$=@UBF`H4ci zPLf#ic@?G$lgLRrjzAMkjqCwkGGGEG!_O3xz5`g(c|?0i8j}5d4ylCF7SpV~jhp}- zqRI5t<+0A&d5YH5woLbjo)g)@tuam58GvzFqViI-^JoWZDjYnRJF2q*^H9K2JNv@tFQJyR-xsEf$( zPMlgJzvMEU{lC4fQwrBwW7n=-xZ{pHuxHO696EF;JjX3tw&0v|&cVYU{&4Kr(XNKy z{H&K@bjjt|^SeI}9O#dq7XBLA1o1RmoHJ?l4!1a(k*l+3K0NxJ9lm+C0ZtMU)d8rL zyP(%GP}$`s=~f z&`Lph*S#v63SaQ@l0dwWrnSYn1J6W=T8A{=rdkwi!@^F8C)`G!7kTii&seb(?(C+S zr#R(0r`Lrigc0GKOez;>a&lAHnOB>SD<1=H46>p?rWD3y3FE`eGAU7)B{FY6Ck7<* z04}9ORoBqQfrbor-uPZvy6@I@s@GQ&nnu(W_D76{F$N0Vp6e5Hnc>`ATVjbZgZGx_ z(s9^5FZQ*8)SMIp0 zBKf;klmNZmeo3@DJKF64c(Ri^`n?#)H(!kWqGw^lvwsKKS#c7Vn;*1z+m~wm*Kg{% zlZN~t((WG+&-I0rF%7nD`0y+y^(q!eUR7ly!7?IAoO?$1C535oZc9NuVi0I?7n8ZO z0beY|+mNF%(IkK&Pjv!$law)4c@x&t=fO^1>V^`+Fi&-=h(?7!vQZL>#yqSkew+ZD zZ2Xy0&{Y}k!Kf%u8Ru-+2F}7iKLZ===CjyYr`gGe3TA!k`dN<4eWtun^InLMYu$Rr zCxCg8MdLVtlgOlmfSq_xMi)O0XT179On|u78lU>qr|_B2e5N;xT}pfQ?7>Gq@)3OQ zbDzWWp7%UlcG+do{_L!W;mkL^7kl3FBG@C{vBuIH%Q?_HvXE#rTB`~@OI1s&p#jI) zB%7OBzGIaqJMk%7{yumSR(bAK*mC8yQJ-%=Xz@E=s`1`$YNWwEr)fC-pd^KvTOyBA zsiJYB3X&?bkt?N;=Q&oU)FV&5)Ke)vb#CJliNvHAdte+y<7^h43t=}bvxC<@tSDm@ z&p5~jVE38b0GH>x^a)|OeVU|lZX;I$J}k?iVm5Nk?dD!uueEk@=S6|Bm)a?vtWpZf z+Ti>ayw^!BuK}$Tgpw%Be$N;VytF-GOJ{BA8bilSI3Z%X!`r-|&+X!XXHa~cx6_gc zCt-Un5hXFQ-s#QyGNmfd0oyn<0)X1Q9cR7zEf7VVvwHvj{dmuN-h;dEzI(vT+v(uJ zgLvQj-iKRny%jHd(TgJ0e|Fv@u$60*Ye+>4ZiaGD2gCpA({r{r(j zzNsfd`~vlzhqh%7s8QUdT5Xb)6Q4wNAa2Olhs}ErTm1TGYW(@vPXqWOXxB*s003ck!QN%fX>yQf-SnC4VYMvNzI;0-n2hdE=wd%@;DER9yzx8-x*8E z3V0PPV?ubmI>o=I#Z#yb_7I@bbsaLdXr_`8gW|PM0`Y5lz@(zH2&t*_m z;rTc}2#ObP-Vb98#^W*SvJBTk8le&z?Pa$2;CJ7l?DZ?z-#nXMgr* zsFK+KrOTg<^*{Ei&f`{V0+~u{D1mdb`MSv=PJ)`_tEDtkoiPSSE8uNks`2RmXN-5> zcpAhPMfV@JSn<|Hr&?chfb5Aub6pkxUMX}Zj@xbQ&-9OgijGeKdyp`|`}^c2{Cpg= zQ=-MY8OjESAv&I}hl4gb(2=Hr+7#;(Mr9M0QieG3q9~et-we!2Z+G$Ril!37$Mnh|j^_M>b>mK*i=zNC`9m2cc{capQc(8l2tDx_F?|XRv``guR?7-Cph3m%qe_|R}tIKm3M*@0+V?aW&zu@@9O!#)^S8OS(!_ia-!{2Az{YR zZ*76cymO3S`&5mC^vMiaT?dCf2k~ukb5tG7g=UjW>?p>nUWDE>xHbk_&EH?r;NkEC*o87G>E1>}e5|HgEzk5o(nw6?wx`->C2h z+a{(Xc&yh=cDnRh+oViVZ*z4z0ebEi*A%$9bS^PnGUoseAJ=Y;38hX`$EGgL$Aq5( zVi2Z(l5MBQcNPcfxkp1VpsP=a;n#I@9~g7Ooh$P!3-=<8tq#}3p1Uyyo3FeE`HuMG z|LRx2ira2mTd(SmfBfUvvu97#w)D)Of!uUPER735NfA98VA8`KXhI*!pJU;)TK=Fq zIw6u+wQ>IWoS>9m+u?FiDvs0CMkkA%d>)!lwa%sC)HY2ZmpHpo!V{AICZuQfI|X)X z5321%Ee<3qT`?(raA{n?0XwP4c?r{0GUwy-%x-`K6E3}19<<4sDx90C(*+vP=2AEZ zdH@l?^WQ0$(>*5%o$nucrh!uwiiCDrgzdF&iAtYE*YRDN-Jl`y4HRP!G(fBvsM9qU zEWNH20`Tbgc%Rl&al#$e0SpC6sOu4{bqlb`InlRW-KlS_Qa($Z>L>0qjY z`WoGKat_*U0M5thGMf;%E2Y9aMpfj55U8pu*uUG}A3mxbt;f2@J~`U|wXc0`;db#Z zy6L8yuy^m?sBQG*=LZuBxLE^@H#=vma~T@R}3*p81}?2n71==E`e zm{W=Bb@8?BI&>Py*OGn^lEN$m$hovb_G8Ma&J)6L?{1zDrcWvd18uZO=QLNkHab^IbOdJtNCK}Ipr_Kg03v_~V#%D;>ExMC_mlu$ zvi&KuF=YLX90z;*HP;xP<&o|Ci7}^-e)u#xj1t=MoMQt_s2xz zD}{|e^dtxsYcj6C{`xttY&Npi;>H_qjM~)B%OE#wZWt~x3F4fhciZ=AcFr)FHO3mb z_x9*_eF_7)-Vk5gZ3osa%i(D{ty&*MwnY^VG=Sa(Y!hl*4%nVjVD1V%>+07ALJ}@9 z2*2>QL>bYww9GeJ58I?eI@UYCQN=B;P8VnZy`19k226rEuSHJMZR+qw4tG@Iw2fqs zdOf|SAyRYKy$XH#JO-RNJ&#gylF8%e5w7|jfjf6_BrQc%Re+Bj=l8``>T^ug`bS+J z&0}R{1-p0eo<89P(yh1N8vPb3L$=e+t3R8Ya|Y$wqtJg=P+k<^w@Kyn`=Qw9px*dc zSTUJB?_?*vbOB5eS1|kD{!=p~>O`TF0mzSg961nYQj2WIE$VYlec$}FkhE#zc1m^J z_KrzOk`IzDl<99$wNHefp`DT8;diMMnx5jlzBFna;7H9*4sGPUPUj_nCwn<(9J=mV zbB&YtYbF}V6wrOwT6Z4M_8duduDynYlHy43*jCjJpt*w^)tJ{ldtWGk;>nqUyf!0K z0r<0X;*b8Gd+wR5irZ@FuDkA^t!So2`j zI#gS(oPD4ZoXYJ_pJ==8{xxzwJWT+AyARq>VCGa!(>lM`Is;nT=FVWL*E%_oMWENF zQtzN4l6YHxq7V|t`VydXk7W+fZHZt~Z}u>jlmTq0Us;yUp-StZP6rxiw^ZHE_Yrtg z8!)L>r)|psoNUpwKTqxA=vQH{refBFS{IY5cK(Q{s7^Ykwz&yRhWdqZNb>fePD~5= z4`f+}C4Vmg{tl3DK~rRf?B~`RWZUDkp$|RuQ1A7x1=V$p0|(+vVA&bxMK*AtaromT zgC}E;lUqtdxV^69=8)XwUH=5=I1x^{{TVY(;>4%)n(jR!aNB{?68Tz^w!mEn2_rT_ zi0#LDMlE!_-bWLeI`F5&S=ldlv;jJFc zu_x55E$I&TmTtQbZPdhfC;huJ&-s(JIq31sZKORZSe&>3u(UJ^Hu1V9z_ualU7qLR zJ+boD0e(Uv@pxW}p z=?9)9G(PJmU{#z9=A(CfHns;Xe)&a(`ru0z5X z0bo2HLrIBIp1W9huU@A(asU%jd#m$PaxL=^*>1bWOdZq0+`7hVQKu7#b5Pe_x|Uwc zK=0R5QH1&AdG1QRRu$^HsdguUC~VDXi~xN!&i6eU#f3eN6)i2rDNOD1p@zxvZ9+`G z!~Fgj}rUDASujUiuzMwe8!Fy=_fOiLG0=#*GIaXni*H z%mkd1UuW!iA1xB-Q)ztK*hlt2?)qZXw6fzx(CbdTg?Cmew>=Hj)~lkn58YOvGN+E| z;6$cfr+8iR6T-`47Pa~!Ui&Up`cO4w%24zjH+1bx?cf~DdEWH&H&?53$2Vf6D$fY? z#gq442iaSv%|B%+qeGI^uW7A#fyv}BnFnz`AWvLFnjZ=^qY*P77fveoz_cj^7=xPG z#DO?@3YmYj)_}Db-yO#`pMU=OvwQK+NjrAzm@q?``&_6Nm&TG%c1+^`tNhOVJwIrX4fS z36BxANrylqd9M{k;bsiXxr&{GH8>|KH_(ou^(q{oM?UHEG617RmefDo8{nFpFe$Z3;%kO_4^1j&V zZTZ}vIjL>sE9blb<+iwb-iL3`PbY#ohP3;%jl7@MN;g9O4aKVVP^TWxBHT!4mufFuhNq>n$m;OgUoP5A%vrRbk$lr|Gv<3d~#^d8}@qs9qW*-Txddgy)}`Sx|uT(7$7stM<_wW3En;t>-X0CU|(!}W6_2CdgNJ`3Q^ z%RkR*A7>=L_esdxKNGc8n=Z%UL_K{n(7{W88)md4YWx3g9^u=2Pd=vPWTvqO?mt4p z;Wh}d={V0QCNn3Lo)9+jHkwBg4~bop_Gvk}rb+0wqwh3Heo;gqMe21@x6`?$^5sj> z4S(o~=>PyA07*naRO+qccHHX;VD5V+J?eFGOzYFs@~}RVj47tONjuwsc$Q_6vmQC< zQG`V1!JF*jK%-jMhH~TE0OBrFT6&YBaigwKf9MY)5O>TBdoEz#OX|$F7PJ=Q`Z3K# zPlJBkwG+EdwiWxY_yF|M`D<|U#Za~B@!0?PKZ6x91O4YWkMNQ2pY~KgUUVV@`Mh*O zNaPliz}&a&FWNF+B`S62>Fj=!_cK3d3g*1c`nGxJD13<3Y9#y=@CAn3$>%a@Olc2) z1Nuz%rA&K9*CFE@g;w#Dy^^Vpjn5cJ_YAPed{UP*+>GWSe6k>T5GPRN$!Tbc`~Ts6 zSpM$UqcP4p>nyzD6|V@UjYZMfXP=E%zVek53|IXRe*$s;?Tv@JKol0(Dvb|$l=G<0 z7fl4>k9#qypZ-%|)Sik~kIu!uCw}OJEOlCKeKPi6`PZ;nJoj%rsPG$KKCMzeo^%?> zduUd`8q&Wjss%u1v7i%Uun4>RYHj#K?|qth zCpvc+Ych>*TVDwv^U`xwRZX3Du3l##uA*(}JktGdVp^;<;ji&wX2yq_!CD9Qlt!4{ zBhn&RW3c=8-vF}`XL`H%;*0Ux*S;2;H*fB_s^N6WC70lJuX`OfZj3>|?)oOohyK9Z z!2uqQ$F(Gu-pHXU@iwV_t(@Ejj$2>#8dT4H8=%r6Kk>?;moC7*Cw&;zmM5)xs*9%a z**}SWSNu1aY)jO>`;f%X{lf;7r<1=NS31$NyUjy$d#x|RbG@(VN$0s&xew^JnYY=> zYY*%x&|6FbB(>4`DIU3Qk*fLm`FsGgKuo{M*{dwe2}Xc`eHJNw7LWBH?ae@KOH-$0 zE}H#aeS&@3|0Ab9N@~MR0UX3-kj4>W#a$mc!9Z|(IR8iI2M`Lu(EX_HxgB@^;jhHC z)ZvoEyzz~1#O0UAwaaIrJkRl*=R60$@C(0y_3Pt8E%x9Z)bDs5L|sNX)cHN+jWLZn&zMR3xwkPJV^9=%=;u7dRS0ncyq7yw;PRnU1SZr+bl9UQAAPMg zRF*+N_*9`u309WvZ79`s4K)PB$;Ju?nq~k)C53<$@x5+)9uf)T;_bL;U+JCKXope? zLOOspLLl?C!T}&x3LsTD&D|K7x<*zwQwW9S0Zq+u;l0wWF_6N0%X?54qH!RjdHV?i z0yy-gkK%!M{RYl{&0C^(e*OCOc&y>$>nS`-DYyz)w1bImoA zX;=Z+qX$v{!7G6W@0_?#fhnR04f5Ym>>XZ9?3jgvo3=k+hw24yhk5w3CU(jDzJct6 zuYoxFAjI-MR4;gEta29_j$HDqsJC2+P2c%7sO8;5uV5imZ+biqKKgf2ZJx|8aPJX` zmws&h>BKK52%X3h`MmP*TtLqAa})IeXs}`Ws$RwY1LI_TcyPna{LJrBX?))>H5MKJWWZ#=Lp+Fn|91 zL?1ivY=ix?OF%Zf4-lw+dudzv#yRJ(stPRF^jlXhQ~EH4S5Jg}&Q0Lc4~XoeYhQ%* z$X9?|pLY*7EJo&@FCf3@H$d$qrEjkJc;pXz0kvzdN6q@1K-|8_c;yskHKT9NH_$)* zQp6>yS>9>jg2!vHv9}^?CWswnGE($GIuxMS*gHn(>SOuUECn-($eku>Op;#YjE)1Se z98i7TvL>$Y6AX2^&6WJRN&&(b$yrp}ro86Pz z3rQ(t!#ERpurIDLt}qLU_LUjx@VN%eag>lY0cx)62E;f@DGc9LA@a(*g4OPypM(3p zZs8wiN=$b6?TA#e>OKM>xAHA~^v%zr`|;brS($PNIC#F}eK{7yZAS2eSF-rh)3v)myh3Gt zcV#Ap87|YTtQt9!G*uxod)swg@8#rciQ-Y0!_Q>RI_b0622#9lim2*wnz_)tDWzb( zrfnFZCQc}YWm#SpG0|rDZ7gha1ZemvL&f=o*&V)rS-xLlx*`Lam*LC^6O|wYcP0|3 z=-a+~fP)7y^5qDL(?yuqONMgv#o!u-<@y+km&SwtVl zwPC#QW6+gP!9L+S@JV|`ro~AHxzeXd$|mZJ4HKO|TshAJj!mG4VkwjSxamz%Ei$bW$5o8ffd= z8NaqTV;%|6kdnTL^8t{uxrP2?MhUp9CVb(X`KEO57{{^0XUkszM6M}D8;ADU*}NJZ zH+%z~w_b;u!%sza!9rB+eJJRJ=EQ4v+tz|_-wboF!^7*ZodE0bv%y}tGkR|b6xMn~ z8;|n`BuQk2P^5oaNg7ug-`#H!oRj|*pxUd)9)R`mS3%c27ao)1Q6!t*MCQ)3;ePT9 za1Oa9;yVvJny?!VhTU**s!K^LYq}_Y@1^pw{=vq$;7gyTV6KXplsP`&zYfoKL2b8Q)xN zpKuD;oKJu?wV>wK8-VQ{iZ-ol-vAV?+sb4B>V<8|fFFdeNj`R$xv(7%{DlzVbCyIb zC;;`{oTPZ^%9*^+AS3|$IBi{iHW*_{xS8v^FikHq!15W|uEe(xN?Qs8lb-iytf0a zZ5?>757f+H!Y^J0na~o9VVrOY*b8?C^AJ2pnHLbz#!Jzz3&}`Yg9(9i#8=@S^|#So zeeE#szXG)F-SlRCSxaXQjHS1OzIzYYKA(eo@Ri{8Bb)i{!yN{Gv9t;guCm~k+tjs7 zMoiXqg`X=4$cHP#)5zibk7NA1ob!muSco1&oz|2tZ;LU??c`6=l10|9IR82U0#Y2f z$F_DI4?w69f;wCmE@u%Cls`KQ4g%ZP3uSQ{TVQPO2?Ge7ha3sdP z1xc09juxN}i3J|ZSeL-Nn8?=?smdiKE)k}7x%!#>okqS(&K2+$XW_037XUS=5fi9n3XPqw0z$kST6j;<6AB@?~?0D_6^n*^yeMp`fj;sISqAz)YD&)Una&`({CHxJI^Yk~4& zMNT3^q+^A7Tv#ZCwkNb7-gn_} zUo$V9@r?p-5&s^I)5PV^dYc~qEQ=mrETWr&|fZ9N+|_*T}1;|V#X1#jT2}fj^yV}Hp$EPN|*dIw;^-N)c_5Ffu3*)_^Ku0 zJ&+C*8hF79XQK(+#Z2It8ZSnC&ashQbn{yHOln(D_oatnw9Z8q0I90S zH=pcBgXQ3`DGv5%bTO$q9k6fgrTB1%ftNNJcxkhVciN3z+V@T_6&p)F%;%~s31Jx5 zC{Hmlzd>~>$+yPI4W#am;U{rs1Um<)IeuG6v@G zaQ*}Vz>5$x(y=W(cS~z92hO<{$|e!+bT+#vCQ^*nW=J7%^5-}S069iOPkM*zG2`-g z3HV^Ho7Dq=f@|9Ve1^YBnj(R=IKOOC zPb<1ME^Fv{Q_l@kLE1rS%=+^;fAm%{nyu}s@QXi6SK;2~zz?i%@0HEIn&iuWNXV)6=-ZWms zOhXmNoCypKRUGveM}3BaaiGs8=*ko97$jKLMbYn!wJBqllv}nBaP;JX`V2tnRCo}W zKBA{mW!OM2V#5Wf1#!y=S?nSsnW&$g8;lRaF9hbm@ZMEooTPU`lJ=j}SBS%yw-_Oz zbwB_%_4`ua(J4rB`Z%udH#dn1Dg$}*Bv_{DY0}*H8B+?!ucz&q&Uui$Mrh{@VO+VJ zqGG+Ap)S;jb$z<9$QpQDyZBs6IGb2FP)cFOFyBqnBfoLK94YgOaNG|!1Hu9_9*NLj zKuQ*qLbDMXw+zZ+0VZqbg+LonwRoL82LSG$Zc~69h6TFt0^reKf`fxVT^L8W1;s8R zZhN>tCjE=m+Iiz{u+RHH@W!atW4!%)m{0uxU{3io@#+TDUHK@CX`WkZzyZ#BvxM`Zoz2Ka~*wGP=+1R3x+yw7HPGAyb zG4mHw!t5SPbStrvT9R)u2^(ag2thmTyE;&=e4r96b<;GJT=AyQQs+Kt(Dd((5XW(X zP)Emc;QF=5J^y?Zj00`lA5RC`v=RY+qJntRG3=e^!MChdcN}{$U|Nxw{*vOxM+(G? zoQq9c;KhjRAkI0Amwo~B@qYw(f)($ksR z-Qg1%m|&Sp;3eD`qMvMb7Uv)$%+H^@d~f7)=!=v>i7YRffgFX8@^}G`& zgDf~fX%h*6MqCP+7>cY)*!&Y=Uw8+2O_REhIWV969?X}1QTV)R<|d0_q2>#}g}M8Y z005f-i|)(gk1Kb9_%4YTHI{sq`a<7HIS?ZPvf@Cp1Q0tb6U|hyRVBfJF@LASqnFQhZ757jEa5)4`2XV0g07@%~ zTJSv`1MJ~GwV(JeU$Kr4g+PhOiy=RGi(tFEj-wFO#DCdJL8N|xw(WgTwQ-;z!L3wL zv~i@zCjOV-1G#>6$8lc_?|01o)!WOaX%~}(^SBGngMHR70aL92hI~IV_g@X;t$Pa| zU-CH#LCrb8gtg~q0C?`FOCGZE=!#t+zDts2z0O=OX1d)8WY`H|fDqi|0v@s!6`agx zUdtLfL-J~(T)uHx3jM^BOz84HypxNr$z64qVlr29$JojA#2BjfeThgorE8WXI&jPc2=pRpZD=0327($=;uV~Zq zUy27*VZKYBh4B6^@K+xKS$IL%xaSd|Gxvh~(Xw=A_1KFmvR$k_)j0^9qrM9F=xB^M zdbc8T-<2S3?+s)8_~z={*iLlY$^ztoR4~K$nMVNI z*9NPqsv;)dLSPOgGuM-3sP})U7J?-IJ0&DwkjrxlLiC8l2>16nt_!qp113!d0N4{7 z0pT|%;bMp}uLw#|wao`B*L7hKL-C#4Qn8gJGkcQ8E*2`3cp8t8n7lC_pe3N1@R=99 zj}nQ?GoyRG4Zpe>fge6c4YkfV=RsvT$4|uy&V$_S9KIPoCi#mvZ#hg;vc*Bk0$1RH z6pJQG0Q~7TKn8LE?osChcmF@nn&mq2=~$B{Q_94LI0mN{oYQ{{w(ptI!#h^Ny7zLB z?u{i(CY@9r`*l?{vBJxeNB^;exlMDAw((g5>%G+P4oZ)LY-15dm>)zq3(& z@(+XUpTFkdUtiq$Lx^OtDDe6Dc|3n^FP=QR7gz3^D;dNAAZu_OHO;}l9WjWvFY3Yn zp3skdn?K&J2L;HD-I5v2JCUh(Ne zeIxs&hC=fS{)?A1kKe}u-@NU`2Fpx#DlylM)+s@IsExCL#cunAIRFtKdQ$!JH0<>> zjC0*DUZ@gU()hB70w@3!cK~M$`FuXm>Sf>;@#O-zgXhq3_am?U=0tJ?tEC@bYU2!vXQSR^%_a3w-V|kzI88Q^?$T5y-%f(&td5 z-I#G8YR>x~h$1HUz3<|iPmeDUKYOl?S3ci^>yH`09*yO*GFX)3%sDomKBot_p45-o z6F#1R-qy=8=sz-^Y27!C3IN&(edfb9tta|XrJU;`!<%6k7#tjo1#|g#tDD;8GZcE) z6uakXzLTMt*MoM+cPw8M2Ruzt+V-?bfO9YA+&kX;$F{WvW4nz_V20f~opQAKFn`WWzvfqPPUJ219n;5?M zu#FU{5_SsNt)Ah(77pO3X~h>Nwr!)my&YX$UC8J2ux%TeOa?VIHE3#T!o-OalZmMS zPM&4s*clG4|7#U~`BoL2j}fMGc;!szHxYnTfs)B!d`tNA68A#RRtAjdZ)>>0D8nwA zq7>Qi!8-`6^39>*MJu$RSX{q;Qs0#o&-@6Xn1W-UU0`}C)6E28u z%9!n;X&o)CvDOBW=}nkg_3CJx5afNrn>azSEN+HjfJwh-UE?+gf>f|XTubao$zWbc z;_|S&t_#cb%Dx)@vn7al9Nu#k4z?^RUQWb z2y=iJ?gCB^iDP`qJYe1-psQXhF!}W79**!C`@=r}X7K8X+71rm#a|WljF2|Z1l&JEZ-UBwA~&2=h1y=sEXguImhbNtFdg^GOS#=5?i-!E%>Zv zG8xRCJsb1p&BG@@`AJNiI5E;EYjAw$pg|ln!@)IwuEFNMkB|R+U8fJ^@ciV=-4gYU z%V0CgKJ!v#SU?`cFw21Dzla4`i;yb;9#$rUd_J#K1dF?GLdsPfC2s8D0=Vd-yHxb= zU+yc;?*S|cz=Ki>VjA9ccJ4r49Ms$zXwpJcm7@e?kqK`^%GNd%5&6}HBx>1OyS%M@ zCf-)?n}{*pdsYe`j0K?kW_8Oj0Id?5uyHt!<5fu`UXc~TwREliBPwgfvW0|@s9C*~ zqA{{4S=@jKP|M>-+x&&c^S=W-C@J{=P zr533uk^SVv*bT_P7WK~t3~uSb3I+6GS3iSKa&x6}ozPh8h7Ux!TrSWgm5N&^ey>U@ zj#A=29prVtJ>XeclETyCfQ!dy<4T%MsMqK)1|ssXw{P_-%25j5Jjr9718~8S@k^F+ z0EDWM0m6sw_-t+Y+-btjbO}u1KIjQ{xBPs^nbMU$F%P{MGY&ju&DQd*IYCxCSJK9P zjohRZu77Q&Wq3?=%@iI7$N^j2>k(X|?5~#1>S_Gmg+w;17vd6d&OticfVZCk4mc%j zU+@`V;uN5BOZ1>pCN{*2a1Xr{&Pm^e@J$CY*bVc(Yd|-=I<$d{2_dLC_Xe20FWzRr zc@Nn5uw&;3aRT5+M-JlBy`vz`7{lVli}Cc+Ph()9KtB2u!a2vvl`FAwjc+B0B}EJo_^ATE*LGgU(aVACyH5}M3cyrB5|&xVBfPE>CG_V9Dbg9@NgvU z@r1xV;oERN^Zh7@_p~8%$3>v)MhL_KWKaAaG6#4ec^tqMkJ{rV_3A$zHV_Nq9UUFG z;f5RV@WT%e8^m>4w{9J7xZwso@x&7mi(P$&1Yr7n3Jc1 znr4vpRuBnAYFC}nF2)It*TT?rkskuXkJk>Sr6qn5U}tD7^*9T!V4+9Ctcv)d<*)dFD7?_BQ`nBO+>G^e35*cG#S%tE42X1w5gAOQK`Wnkln zN+0)#^8rILx2FcIc}Mh5mdKZA4RRnZ~0tw84g&IM^(HnhQmlO(ri4!jWAaDxUu|UdqNmvc<#C9aMMjUp}$|vCRk^2 z+<8hLcB>yBi=`w{lEN6XqGni`y$)?(1xk4|aygb)4D8q5rj)|<_XmK2WWtpgqZpv4 zO~aaI%(!ET46G%LmqybE08YHDY>G8Q?k~lX+Y_6D#SfK0JPx#F2~E;2+yoFWCUM%h zh~3IDJpV(!9s?l_L;o&iTTlL`Z@huqZ@(Rb3DqIXEo;}V z#f>-Kh|bPVrM)@Jar3A9k)ai)c9v0MW6AXww+`qP3gSSS;>eW&DTOP=k_&A~#4n44 zBxxRz;b`b-tRQKDUpZc4YU_RC`pW?BYKxt~B}0f;f|C#!hNpS+Z4z_6*<k9+KU$>IlcJTwiV6U>DExb7OIfpFulVM+a z2iUAbBD;+DpMZJSmw>^Z5j#DpZ$<6JzY9op&#&{s%*F$(G*of?&+!8=wJ-mzx8A~i z_uV%vg6dGDy}cbb-+VKAd)4P`L5qv;9Wpu#im{N5-8=}nqvp(XzFHa3i)oIdEM;Le zZ~%gVEnY;9;{+gYnkJZOVlX!tR6i3n%hS9H<9@(8!KzSy`CjX!HMzesrj~^*whxlQ zoJoC?fLoud>oPFrGp?m7Xk=1rB*vRD2JVDoFzMP%Vg~2%iq42e1R( zpzUix+LnW?S`4z`Ef60yHU2-?*rgszP&2~Q=_W3sg*?MhY4&#}Bhxy8{V^$rB!zD|B z6@2ySKY}^uC;-5q1Dt!mjcxtoK^F)1Yj$zTUMjh*x3?E}-E~*0Y>Oi)AAR%@9(m*u zoORY&L7PEV84tRcY*YSZ|U$^M2^^sb{4nu}*S{LLt@mVm7 z542|(e5fNT%R zZfKt5)iC!>>V{#!vaB$rt3-IyNpB@teo{Q3NsMzPeQF}1tN01x{OkY%9)?W5lYv(F zpOeOl6Y7Vc0ipR^Hn|t_k(bKg*WC3-0@%-NP@1^Z8#y6TJ*}!@T_x z81MbDZ08R|dlZampG5V!*9Y6bTH@lCrQ^h&4q&e)7bne90deKZm3aH@x5sEk@$%3^ z4@Im4U)w)ES31|zVczGXbny4ECSLp*$wbhhx*}X;$cbaCr>MBz%8wB zU2fOsn3N+R&Ei0L27J>ur4-aK0N3?=;dUPA=>{e=0QD1K)Ybw6{oww+bs2+e`^8Zt zzt&I}j&c$gN@>7jkhObRRBbgpUzjL0G_~tMSxi(ySvW4>TX-BE3-pD|_el#2m6gw> zG_l^C4d2ABr;kmXdrFghA)h(`@P!v5fBrv3z*QL|-wvziEf{^PK%Fjt<-pB)u&T*$ zYWIL$zaKzie&W=Gd*tO{a}EP-TMqYAXGOY@&W*6{xD2Fyb?HCQ5`WaBrV+JYyfet5 z{_;l*-+X3#X@Otd%Z}WVr=Na$Oy*KZwr$&nrAwFMzyl8q+76lGV(%sw%eId%UwK3$ zkCP0nh1z|(+oTml!}pUfofD*!kV zXCG5cg2Mx5#<}m`_VbOkZv~mq003|s8e!yfAco=HM;}}r|6Win{(C5*FS-KryjYk) z_4~^b_{ZUqz#?uXQn(g*oTeHF%(4kxjyI1S8+Q&;7+)gkhJ6lzye)2#FvU}v;9r-n zwiww>^bzOdXMY>~l)s7XPn}L=H{FfuE%(Fhc{g!f0N_R~axI_6z|`}RZ$1|K)$^%) z!<`y6vy-+DVcqd1ke-+qkwOCpf#fDi}V`ipRk{pMv|R}ex#L@H3N zh=(Ya;y6waA|*>PUwARAM_fiS(N3grH{D7Q3)WIQ1A_eVvIQlL|6Kko%DsyD1R?{4 zIH!N_WIs7?YJnqo2ELD64(%&N;+{Eqj5yba_)*gsa25MyP>PES*Ujj?UjK#hAo$JbGOJG)&~+o)Q9n&OgM0IAMdRTmA27dFde3ulOO%o_A1e zDNEcwWZND>=`In(hbYyj{xi%yJ`DiKxxm@Kx3Q_G zLLHGql!enBG*+qC^!n?sC-feB*|u#P)~;Qvw4E_$e8lj}q9lbeXT|%*g~-10VxTbw zGHf8{K$!d5e*tnpsgn(Oer+NV-H4wvJa)Wdla2vx;XBuX)RjOf@IU+Hw>SXSzdQYN z1gy0%vPc#)ZEUx|`NcvAVxH}4EV=9-2N0OlIlKq~XNb&KE@|F6fQ$HZL0*(a2JW~v zkqpL2X_D4!jYIjYW@?kQ@j_DQ0guzBhbsYTE@ofRMZxi31V8!9k#?)+Z8X1n9BSA6 z48-Y;IkLEzJ@26L&2ur~gKvYd`1oM@-ea(S_az`VgmVnRr(^AXGO8ASHQ4^@6E+ra z96#hXAxCOuNp0K4yYD7P4^)D@_10U;_VhZ2ISu3MyIJ4GgA%w3*-e&0{_;5A_!xnC zSu}E;=_`OXZ-;&^owe?|uJ<`%%wqRL*Upt%+%d-&)0%ZHT+i~RFA|E)RbJ2)($pc{ zFIT$;C6>IUH8@rVTX|6_3F7O7wV)y2(!9Y^+bNsgMPUe}s6Yl2LTl`6}ZFORh83zD5(@~-E~ z0RUn&f>1wVBLEfcfC|;dfieQQ$h8hY2|p9y6uiu0SnH*(^O8)-BFsz%HzJv`bui^p zpTJD*x9M5wgjqbvgdfa-tGU#Z&M7ZIgoZB8#Q|8B1xTiK(mV-<73SHtrTq1}nLQ1d zCoKl_K895DT<)L7JygiFt!!#$Y_Sjstvp4>OMBh~5#eFFc|9_25!QOrHi=u=$YN%I zD}Dwp=TQfcZF>j}?_LeU(=qcNHQrqX5m_U)0>t$R0(FO3`k)_2S1^%>C)rI?L( zX4ASZvM<{5fyb82v!-cAYLo-RWAF>Jx;&=Ppmm@W{RJqCK9OQ3ejAFkC28^UJ~2NT zFy-^h_e`9}bzRUMlGfBbDX?P5eZ;XM^{spl;v{Z?0)#k2wLXG)C&Wu5YbeJQ`&XB>E`lOM>#YT)FvbF~G74zn`dkQ! z*Ut62+Hn95tt~Fkx}I-64#Z2<`bz=jNE~?@@J+d2pHrlFwhlPuYPFx!i-vc<48liN zOU>+f8MSMEt~OTH!8zhfSeHD`e419q;BhW%LKva3#sV~B$mR1&Nz+0yRCBwcvBnf`0T7>1 zMoY{h+Vs8(Ax)d74AzCddqKRGxdO5C8|e4`0HC1}FihA|;TicDeU7@wp=1$8I{esi zao(6k2N2#{QLsdSdLh6~qm9Rzw3EnU!arXquX~c{`x9%9#|%`G_8((nk0a^<06F#o z@R|mtf8Cm&!WjH0_4$S)wQGL?qkpy1<{oq*keyKaU~yWy^qJJRqUPdTAnKamv&_Y< zZ;d}KPnLQs+Sb?CH~JG9g6Jhq>oenT!KDDX6+?JSBsaxukD&}Zjy#AL*8H6EH42lu zD4H@<5kxuRuhs!6*d}TlHNrgafwpdhK*#}bp{)v_@Y_Iqvp7^Oz8FbQ_>pxIUhJHu z`MQk3Fg&+}ZQEemwu0_9+gnsLHG^$y3-XQ2g-rmJVa~O47~Uk5{sf_)UYO98%4d{< z3T<4nporusI)Dq81&>=?B;2o3`WbO0&dMmmEmbu zP3f}*R2dvugQFqCku`y=zdvgNStHy(F$*+RMc?-Me0ez!BPF?3X<$6~=a6w&ADR*(i- zE|GzpSdwWy4yfhCFry6A#bj7OE()c%qH0sj1FC=blu}P~^ec3w^-}}BSvcH?n8Hn8 ziv^&79pfR81^~|`P26wit_zokphhVLh?hMrfK5p|7mEVoUnuv>JIa1>!J6khTu{i* zfMr?8J9aP*_4_)auM~o2OqvY$gLgt-d5Zf5Aab9?K5Ee5oZ;p9mI{}7CU#+=U<{yY zf6iH8=C^G-@@(s+SBE3TeCR?-c}I@r3zYyMdmpK_a%8vMH~N#|4zg_zqJOv0SI=f0 z1a4M=IJweHh-Mbt%z$L7!K)^KTU9V;9Sm~pH!wKp#joG_u7iVGT%0hiGJ$raC6meQ z6k2&Un^m@ZD}Tx*i$Zo2vE)LViPNr=vb>Ekzz;jux)7l;6{>C~Ywh04xbP1%2?B&B zFM!eYfm&V^2u(ZyQhz`9k1>5f7j4Y;%*VoN5R5@ozdK?W@NtVbu`SLg#uW<+F@LdO z5c9Px3yyCxHw*(@3PGbSttjSElFpdoZ$m`;I8pm;APc{$56;84pO$w{*|NV8`q_3`?Cs=!>odP=8u5>9bUfoY(2P< z0WvkH75fk3-G}hLJgw8t^@oSrlK!PJ#xx|AJ`l386891$U5qAz0%Tmo(xz~aDKnBc)w4c?VNE?7`#VO(MX zBIYNH41Kgy4nb>4ybqBKY%y`p%s2NlNLn>iA9-M67u)~>P+uFD`xEItxiQ(_bmq4J z-i%~5Nh`WG9^@_9*};6;JZ01BdSi?x5`S)YzcW%DyOVzlB}-49AkTo_JVC$XeeTK; z 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
ew%WEFqsZ(j5JoR_9o5AGPwxDhM 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 literal 150747 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

FT0N-1Lq%hY)_Q$+ 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 diff --git a/man/split_behaviors.Rd b/man/split_behaviors.Rd new file mode 100644 index 0000000..a80bbe4 --- /dev/null +++ b/man/split_behaviors.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/rdiffnet.r +\name{split_behaviors} +\alias{split_behaviors} +\title{Splitting behaviors} +\usage{ +split_behaviors(diffnet_obj) +} +\arguments{ +\item{diffnet_obj}{A multi-diffusion diffnet object.} +} +\value{ +A list of diffnet objects. Each element represent a unique behavior. +} +\description{ +Split each behavior within multi-diffusion diffnet object. The function gets +\code{toa}, \code{adopt}, \code{cumadopt}, and the \code{behavior} name from +each behavior, and returns a list where each element is a single behavior. +All the rest of the structure remains the same for each element in the list. +} +\examples{ +# Running a multi-diffusion simulation +set.seed(1231) +diffnet_multi <- rdiffnet(50, 5, seed.p.adopt = list(0.1,0.1)) + +diffnet_multi_list <- split_behaviors(diffnet_multi) +diffnet_single <- diffnet_multi_list[[1]] + +# You can now run standard functions for a single behavior +# Plotting single behavior +plot_diffnet(diffnet_single, slices = c(1, 3, 5)) + +} +\author{ +George G. Vega Yon & Aníbal Olivera M. +} diff --git a/netdiffuseR.Rproj b/netdiffuseR.Rproj index dd8cb83..8de93d9 100755 --- a/netdiffuseR.Rproj +++ b/netdiffuseR.Rproj @@ -1,4 +1,5 @@ Version: 1.0 +ProjectId: cd097d00-46b5-4411-bf0c-2d01da946aea RestoreWorkspace: No SaveWorkspace: No diff --git a/tests/testthat/test-rdiffnet.R b/tests/testthat/test-rdiffnet.R index b810e37..75c070f 100644 --- a/tests/testthat/test-rdiffnet.R +++ b/tests/testthat/test-rdiffnet.R @@ -200,7 +200,10 @@ test_that("Disadoption works", { } - ans_d_adopt <- rdiffnet(n = n, t = 10, disadopt = d_adopt, seed.p.adopt = list(0.1, 0.1)) + ans_d_adopt <- rdiffnet( + n = n, t = 10, disadopt = d_adopt, + seed.p.adopt = list(0.1, 0.1) + ) tmat <- toa_mat(ans_d_adopt) should_be_ones_or_zeros <- tmat[[1]]$cumadopt[, 10] + tmat[[2]]$cumadopt[, 10] diff --git a/vignettes/large-simulation.Rmd b/vignettes/large-simulation.Rmd deleted file mode 100644 index 7b811c4..0000000 --- a/vignettes/large-simulation.Rmd +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Vignette Title" -author: "Vignette Author" -date: "`r Sys.Date()`" -output: rmarkdown::html_vignette -vignette: > - %\VignetteIndexEntry{Vignette Title} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r setup, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -# Preliminaries - -We are interested in running a large scale simulation featuring hundreds of thousands (if not millions) of vertices. Before we proceed, you need to consider the following: - -1. Networks in netdiffuseR are sparse-matrices, thus, as long as the network is sparsely connected, it will fit in a regular computer. -2. At the same time, converting a sparse-matrix into a dense matrix at this scale **is not a good idea**, as you computer may crash. This would be the case, for example, if you want to calculate the geodesic matrix. -3. Following the previous point, using `summary(..., skip.moran = FALSE)`--the default behavior--is not a good idea. When dealing with large graphs, set `skip.moran = TRUE` to avoid memory overflow. - -# Case 1: Single simulation - -Suppose we want to simulate a diffusion process with the following parameters: - -- Network type: Small world with parameters $n=200k, k = 10, p = .1$ - -```{r setp-1, eval=FALSE} -library(netdiffuseR) -``` - -We no proceed with the simulation - -```{r sim-1, eval=FALSE} -ans_sw <- rdiffnet(n = 200, t = 10) -``` - - - diff --git a/vignettes/simulating-multiple-behaviors-on-networks.Rmd b/vignettes/simulating-multiple-behaviors-on-networks.Rmd index ca65c5f..f7bc176 100644 --- a/vignettes/simulating-multiple-behaviors-on-networks.Rmd +++ b/vignettes/simulating-multiple-behaviors-on-networks.Rmd @@ -2,7 +2,11 @@ title: "Simulating Multiple Behaviors on Networks" author: "Aníbal Olivera M." date: "2024-11-21" -output: html_document +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Simulating Multiple Behaviors on Networks} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} --- \tableofcontents From 2ab6ba339393e16056690cc20030de0be23bb1a3 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 3 Feb 2025 14:39:49 -0700 Subject: [PATCH 03/16] Reverting change to graph_data.r --- R/graph_data.r | 79 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/R/graph_data.r b/R/graph_data.r index e790492..5f98e89 100644 --- a/R/graph_data.r +++ b/R/graph_data.r @@ -41,6 +41,83 @@ #' @family graph formats NULL + +as_generic_graph <- function(graph) UseMethod("as_generic_graph") + +# Method for igraph objects +as_generic_graph.igraph <- function(graph) { + + # If multiple then warn + if (igraph::any_multiple(graph)) + warning("The -igraph- object has multiple edges. Only one of each will be retrieved.") + if ("weight" %in% igraph::graph_attr_names(graph)) { + adjmat <- igraph::as_adj(graph, attr="weight") + } else { + adjmat <- igraph::as_adj(graph) + } + + # Converting to dgCMatrix + env <- environment() + ans <- new_generic_graph() + suppressWarnings(add_to_generic_graph("ans", "graph", list(`1`=adjmat), env)) + meta <- c(classify_graph(adjmat), list( + self = any(igraph::is.loop(graph)), + undirected = FALSE, # For now we will assume it is undirected + multiple = FALSE, # And !multiple + class = "igraph" + )) + add_to_generic_graph("ans", "meta", meta, env) + + return(ans) +} + +new_generic_graph <- function() { + list(graph=NULL, meta=NULL) +} + +# This function adds an element checking that the slot exits +add_to_generic_graph <- function(gg,nam,val,env=environment()) { + obj <- get(gg, envir = env) + if (!(nam %in% names(obj))) stop(nam," unknown slot.") + obj[[nam]] <- val + assign(gg,obj,envir = env) + invisible(NULL) +} + +# Method for network objects +as_generic_graph.network <- function(graph) { + # If multiple then warn + if (network::is.multiplex(graph)) + warning("The -network- object has multiple edges. These will be added up.") + + # Converting to an adjacency matrix (dgCMatrix) + adjmat <- edgelist_to_adjmat( + network::as.edgelist(graph), + undirected = !network::is.directed(graph), + multiple = network::is.multiplex(graph), + self = network::has.loops(graph) + ) + + ord <- network::network.vertex.names(graph) + ord <- match(ord, rownames(adjmat)) + adjmat <- adjmat[ord,ord] + + env <- environment() + ans <- new_generic_graph() + suppressWarnings(add_to_generic_graph("ans", "graph", list(`1`=adjmat), env)) + + meta <- c(classify_graph(adjmat), list( + self = network::has.loops(graph), + undirected = !network::is.directed(graph), + multiple = network::is.multiplex(graph), + class = "network" + )) + + add_to_generic_graph("ans", "meta", meta, env) + + return(ans) +} + stopifnot_graph <- function(x) stop("No method for graph of class -",class(x),"- for ", deparse(sys.call()) #match.call() ,". Please refer to the manual 'netdiffuseR-graphs'.") @@ -144,7 +221,7 @@ classify_graph <- function(graph) { # Step 4.2.1: Must keep uniqueness if (length(unique(pers)) != t) stop("When coercing names(graph) into integer,", - "some slices acquired the same name.") + "some slices acquired the same name.") } return(invisible(list( From 679a8ca9938fb5b3462665842c9958f81a32437f Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 12 May 2025 16:50:22 -0600 Subject: [PATCH 04/16] Still a warning around plot_threshold method --- R/graph_data.r | 3 --- R/rdiffnet.r | 9 ++++++--- man/rdiffnet.Rd | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/R/graph_data.r b/R/graph_data.r index 5f98e89..42e8542 100644 --- a/R/graph_data.r +++ b/R/graph_data.r @@ -41,9 +41,6 @@ #' @family graph formats NULL - -as_generic_graph <- function(graph) UseMethod("as_generic_graph") - # Method for igraph objects as_generic_graph.igraph <- function(graph) { diff --git a/R/rdiffnet.r b/R/rdiffnet.r index 5c68380..7d4f966 100644 --- a/R/rdiffnet.r +++ b/R/rdiffnet.r @@ -169,7 +169,10 @@ #' return(list_disadopt) #' } #' -#' diffnet_6 <- rdiffnet(seed.graph = graph, t = 10, disadopt = random_dis, seed.p.adopt = list(0.1, 0.1)) +#' diffnet_6 <- rdiffnet( +#' seed.graph = graph, t = 10, disadopt = random_dis, +#' seed.p.adopt = list(0.1, 0.1) +#' ) #' #' @author George G. Vega Yon & Aníbal Olivera M. #' @name rdiffnet @@ -402,7 +405,7 @@ rdiffnet <- function( ) { # Checking options - for (arg in names(default_rewire.args)) + for (arg in names(default_rewire.args)) if (!length(rewire.args[[arg]])) rewire.args[[arg]] <- default_rewire.args[[arg]] @@ -651,7 +654,7 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) { paste("length(seed.p.adopt) =", length(seed.p.adopt), ", but for multi-diffusion -seed.p.adopt- must be a -list-.") ) - + } multi <- FALSE diff --git a/man/rdiffnet.Rd b/man/rdiffnet.Rd index fe4b2fa..0d63f7b 100644 --- a/man/rdiffnet.Rd +++ b/man/rdiffnet.Rd @@ -235,7 +235,10 @@ random_dis <- function(expo, cumadopt, time) { return(list_disadopt) } -diffnet_6 <- rdiffnet(seed.graph = graph, t = 10, disadopt = random_dis, seed.p.adopt = list(0.1, 0.1)) +diffnet_6 <- rdiffnet( + seed.graph = graph, t = 10, disadopt = random_dis, + seed.p.adopt = list(0.1, 0.1) +) # (Multiple simulations of single behavior): -------------------------------- # Simulation study comparing the diffusion with diff sets of seed nodes From aebafaec5fe744c2152c45da0be4859471fb94b8 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 9 Jun 2025 15:58:17 -0600 Subject: [PATCH 05/16] Adding citer --- R/citer_environment.R | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 R/citer_environment.R diff --git a/R/citer_environment.R b/R/citer_environment.R new file mode 100644 index 0000000..e6b570a --- /dev/null +++ b/R/citer_environment.R @@ -0,0 +1,20 @@ +# file_version: f6ffa5cc103728c81c977e9101df287d +# citer_version: 0.0.9000 +# DO NOT EDIT THIS BY HAND! +# This document was automatically generated by the `citer` package. +# tools::md5sum() + +# Citer Environment Setup +citation_on_load <- function() { + + pkg_name <- "netdiffuseR" + + packageStartupMessage( + "Thank you for using ", pkg_name, "! ", + "Please consider citing it in your work.\n", + "You can find the citation information by running\n citation(\"", + pkg_name, + "\")" + ) + +} From 8ac88484e9c320cd64d0ccdade76e73a1bf71d13 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Tue, 10 Jun 2025 09:37:17 -0600 Subject: [PATCH 06/16] Adding citer environment --- DESCRIPTION | 1 + Makefile | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index b86a4ba..a50c3a5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -64,6 +64,7 @@ Collate: 'adjmat.r' 'bass.r' 'bootnet.r' + 'citer_environment.R' 'data.r' 'diffnet-c.R' 'diffnet-class.r' diff --git a/Makefile b/Makefile index e98edc8..1bfcc59 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,13 @@ -VERSION:=$(shell Rscript -e 'x<-readLines("DESCRIPTION");cat(gsub(".+[:]\\s*", "", x[grepl("^Vers", x)]))') +VERSION:=$(shell Rscript -e 'x<-readLines("DESCRIPTION");cat(gsub(".+[:]\\\s*", "", x[grepl("^Vers", x)]))') + +help: + @echo "Makefile for netdiffuseR package" + @echo "Usage:" + @echo " make install - Install the package" + @echo " make check - Check the package with R CMD check" + @echo " make checkv - Check the package with R CMD check using Valgrind" + @echo " make clean - Clean up the build artifacts" + @echo " make docs - Generate documentation" install: netdiffuseR_$(VERSION).tar.gz R CMD INSTALL netdiffuseR_$(VERSION).tar.gz @@ -13,8 +22,6 @@ inst/NEWS: NEWS.md README.md: README.Rmd Rscript -e 'rmarkdown::render("README.Rmd")' -.PHONY: check checkv clean - check: netdiffuseR_$(VERSION).tar.gz R CMD check --as-cran netdiffuseR_$(VERSION).tar.gz @@ -24,6 +31,7 @@ checkv: netdiffuseR_$(VERSION).tar.gz clean: rm -rf netdiffuseR.Rcheck -man/moran.Rd: R/* src/*.cpp src/*.h - Rscript --vanilla -e 'roxygen2::roxygenize()' +docs: + Rscript --vanilla -e 'devtools::document()' +.PHONY: check checkv clean install docs \ No newline at end of file From ba5b7755e1ea802c28c0fab12543e45b6ceb3091 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Tue, 10 Jun 2025 09:58:16 -0600 Subject: [PATCH 07/16] Fixing plot_threshold --- R/diffnet-methods.r | 29 +++++++++++++++++++---------- inst/NEWS | 7 +++++++ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/R/diffnet-methods.r b/R/diffnet-methods.r index 4896bc6..2a12e98 100644 --- a/R/diffnet-methods.r +++ b/R/diffnet-methods.r @@ -745,7 +745,7 @@ plot_diffnet.default <- function( #' @return Invisible. A data frame with the calculated coordinates, including: #' `toa`, `threshold`, and `jit` (a jittered version of `toa`). #' @author George G. Vega Yon -plot_threshold <- function(graph, expo, vertex.label,...) UseMethod("plot_threshold") +plot_threshold <- function(graph, expo,...) UseMethod("plot_threshold") #' @export #' @rdname plot_threshold @@ -768,15 +768,21 @@ plot_threshold.diffnet <- function(graph, expo, ...) { args$toa <- graph$toa } - args$vertex.label <- nodes(graph) + if (length(args$vertex.label) == 0L) + args$vertex.label <- nodes(graph) + do.call(plot_threshold.default, - c(list(graph = graph$graph, expo=expo), args)) + c(list(graph = graph$graph, expo = expo), args)) } #' @export #' @rdname plot_threshold plot_threshold.array <- function(graph, expo, ...) { - plot_threshold.default(as_dgCMatrix(graph), expo = expo, ...) + plot_threshold.default( + as_dgCMatrix(graph), + expo = expo, + ... + ) } #' @export @@ -966,12 +972,15 @@ plot_threshold.default <- function( # Positioning labels can be harsh, so we try with this algorithm if (!length(vertex.label)) vertex.label <- 1:n - graphics::text(x=jit, y=y, labels = vertex.label, - pos = vertex.label.pos, - cex = vertex.label.cex, - col = vertex.label.color, - adj = vertex.label.adj - ) + graphics::text( + x=jit, + y=y, + labels = vertex.label, + pos = vertex.label.pos, + cex = vertex.label.cex, + col = vertex.label.color, + adj = vertex.label.adj + ) # par(oldpar) diff --git a/inst/NEWS b/inst/NEWS index 08edec7..7109dca 100644 --- a/inst/NEWS +++ b/inst/NEWS @@ -1,3 +1,10 @@ +Changes in netdiffuseR version 1.23.0 (2025-01-03) + +- New methods for simulating multi-diffusion models, including + disadoption. + +- + Changes in netdiffuseR version 1.22.7 (2024-09-18) - Minor changes to testing (skip warnings). From 57130ad379f4d0c6f925549b06039508aacabcf6 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Tue, 10 Jun 2025 19:18:55 +0000 Subject: [PATCH 08/16] Fixing issue about threshold --- .Rbuildignore | 2 +- .devcontainer/.vscode/settings.json | 4 ++++ .devcontainer/Dockerfile | 16 +++++++++++++ .devcontainer/devcontainer.json | 36 +++++++++++++++++++++++++++++ man/plot_threshold.Rd | 6 ++--- 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 .devcontainer/.vscode/settings.json create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.Rbuildignore b/.Rbuildignore index 09e9ee9..cf81984 100755 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -39,4 +39,4 @@ makefile ^netdiffuseR\.tar\.gz$ ^\.github netdiffuseR\.Rcheck - +^\.devcontainer$ \ No newline at end of file diff --git a/.devcontainer/.vscode/settings.json b/.devcontainer/.vscode/settings.json new file mode 100644 index 0000000..d6ef489 --- /dev/null +++ b/.devcontainer/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "r.plot.useHttpgd": true, + "r.alwaysUseActiveTerminal": true +} \ No newline at end of file diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..39a03aa --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,16 @@ +FROM rocker/tidyverse:4.4.0 + +# RUN \ +# echo 'options(repos=c(CRAN="https://packagemanager.posit.co/cran/__linux__/bookworm/latest"))' >> ~/.Rprofile && \ +# Rscript --vanilla -e 'getOption("repos")' + +# Adding R packages +RUN install2.r Rcpp sna network networkDynamic Matrix MASS MatchIt SparseM igraph \ + viridisLite covr testthat knitr rmarkdown ape RSiena survival RcppArmadillo + +RUN install2.r languageserver httpgd + +RUN apt-get update && apt-get install --no-install-recommends -y valgrind gdb \ + libglpk-dev + +CMD ["bash"] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8b58911 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,36 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/cpp +{ + "name": "epiworldR", + "build": { + "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "reditorsupport.r", + "rdebugger.r-debugger", + "quarto.quarto", + "tianyishi.rmarkdown" + ] + } + }, + "mounts": [ + // Mount the .vscode configuration into the container + "source=${localWorkspaceFolder}/.devcontainer/.vscode,target=/workspaces/${localWorkspaceFolderBasename}/.vscode,type=bind,consistency=cached" + ] + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "gcc -v", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/man/plot_threshold.Rd b/man/plot_threshold.Rd index 9900fdd..56b4566 100644 --- a/man/plot_threshold.Rd +++ b/man/plot_threshold.Rd @@ -7,7 +7,7 @@ \alias{plot_threshold.default} \title{Threshold levels through time} \usage{ -plot_threshold(graph, expo, vertex.label, ...) +plot_threshold(graph, expo, ...) \method{plot_threshold}{diffnet}(graph, expo, ...) @@ -56,8 +56,6 @@ plot_threshold(graph, expo, vertex.label, ...) \item{expo}{\eqn{n\times T}{n * T} matrix. Esposure to the innovation obtained from \code{\link{exposure}}} -\item{vertex.label}{Character vector of size \eqn{n}. Labels of the vertices.} - \item{...}{Additional arguments passed to \code{\link{plot}}.} \item{toa}{Integer vector of length \eqn{n} with the times of adoption.} @@ -83,6 +81,8 @@ plot_threshold(graph, expo, vertex.label, ...) \item{vertex.color}{Either a vector of size \eqn{n} or a scalar indicating colors of the vertices.} +\item{vertex.label}{Character vector of size \eqn{n}. Labels of the vertices.} + \item{vertex.label.pos}{Integer value to be passed to \code{\link{text}} via \code{pos}.} \item{vertex.label.cex}{Either a numeric scalar or vector of size \eqn{n}. Passed to \code{text}.} From abda776864a5c3333503cd4e80d11c48e9f32e16 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Tue, 10 Jun 2025 13:41:12 -0600 Subject: [PATCH 09/16] Fixing citations --- DESCRIPTION | 2 +- Makefile | 6 +- NEWS.md | 6 +- README.md | 287 +++++++++++----------- README.Rmd => README.qmd | 15 +- inst/CITATION | 3 +- inst/NEWS | 516 --------------------------------------- 7 files changed, 150 insertions(+), 685 deletions(-) rename README.Rmd => README.qmd (91%) delete mode 100644 inst/NEWS diff --git a/DESCRIPTION b/DESCRIPTION index a50c3a5..0d960f0 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: netdiffuseR Title: Analysis of Diffusion and Contagion Processes on Networks -Version: 1.22.9999 +Version: 1.23.0 Authors@R: c( person("George", "Vega Yon", email="g.vegayon@gmail.com", role=c("aut", "cre"), comment=c(ORCID = "0000-0002-3171-0844", what="Rewrite functions with Rcpp, plus new features") diff --git a/Makefile b/Makefile index 1bfcc59..878e7ac 100644 --- a/Makefile +++ b/Makefile @@ -12,13 +12,9 @@ help: install: netdiffuseR_$(VERSION).tar.gz R CMD INSTALL netdiffuseR_$(VERSION).tar.gz -netdiffuseR_$(VERSION).tar.gz: */*.R inst/NEWS README.md +netdiffuseR_$(VERSION).tar.gz: */*.R R CMD build . -inst/NEWS: NEWS.md - Rscript -e "rmarkdown::pandoc_convert('NEWS.md', 'plain', output='inst/NEWS')"&& \ - head -n 80 inst/NEWS - README.md: README.Rmd Rscript -e 'rmarkdown::render("README.Rmd")' diff --git a/NEWS.md b/NEWS.md index ffc8991..a860075 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,8 @@ -# Changes in netdiffuseR version 1.23.0 (2025-01-03) +# Changes in netdiffuseR version 1.23.0 (2025-06-10) -* New methods for simulating multi-diffusion models, including disadoption. +* New methods for simulating multi-diffusion models. -* +* It is now possible to simulate diffusions with general disadoption functions. # Changes in netdiffuseR version 1.22.7 (2024-09-18) diff --git a/README.md b/README.md index b5287d9..583adf3 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ + [![R-CMD-check](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml/badge.svg)](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml) [![codecov.io](https://codecov.io/github/USCCANA/netdiffuseR/coverage.svg?branch=master)](https://app.codecov.io/github/USCCANA/netdiffuseR?branch=master) -[![](https://cranlogs.r-pkg.org/badges/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) -[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) -[![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) +[![](https://cranlogs.r-pkg.org/badges/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) +[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) +[![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1039317.svg)](https://doi.org/10.5281/zenodo.1039317) -[![Dependencies](https://tinyverse.netlify.com/badge/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) +[![Dependencies](https://tinyverse.netlify.app/badge/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) [![USC’s Department of Preventive Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://pphs.usc.edu/center/cana/)

- netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks

@@ -51,10 +51,10 @@ citation(package="netdiffuseR") And the actual R package: - Vega Yon G, Valente T (2023). _netdiffuseR: Analysis of Diffusion and - Contagion Processes on Networks_. doi:10.5281/zenodo.1039317 - , R package version 1.22.6, - . + Vega Yon G, Olivera Morales A, Valente T (2025). _netdiffuseR: + Analysis of Diffusion and Contagion Processes on Networks_. + doi:10.5281/zenodo.1039317 , + R package version 1.23.0, . To see these entries in BibTeX format, use 'print(, bibtex=TRUE)', 'toBibtex(.)', or set @@ -64,20 +64,6 @@ citation(package="netdiffuseR") Changelog can be view [here](NEWS.md). -- \[2016-06-02\] A video of the **netdiffuseR** workshop at SUNBELT 2016 - is now online on - [youtube](https://www.youtube.com/playlist?list=PLT-GgRN1lFI4coHDqkRJm3flDw9e1gg2P), - and the workshop materials can be found - [here](https://github.com/USCCANA/netdiffuser-sunbelt2016/) -- \[2016-04-11\] **netdiffuseR** will be on [useR! - 2016](https://user2016.r-project.org/) on as a presentation and on - [IC2S2 - 2016](https://www.kellogg.northwestern.edu/news-events/conference/ic2s2/2016.aspx) - in the posters session. -- \[2016-03-16\] Next CRAN release scheduled for April 11th 2016 (after - the workshop). -- \[2016-02-18\] **netdiffuseR** vers 1.16.2 is now on CRAN! - ## Installation ### CRAN version @@ -91,10 +77,10 @@ install.packages("netdiffuseR") ### Bleeding edge version If you want the latest (unstable) version of **netdiffuseR**, using the -`devtools` package, you can install `netdiffuseR` dev version as follows +`remotes` package, you can install `netdiffuseR` dev version as follows ``` r -devtools::install_github('USCCANA/netdiffuseR', build_vignettes = TRUE) +remotes::install_github('USCCANA/netdiffuseR', build_vignettes = TRUE) ``` You can skip building vignettes by setting `build_vignettes = FALSE` (so @@ -139,19 +125,19 @@ this directly as follows (using the 1.16.3.29 version): Since starting netdiffuseR, we have done a couple of workshops at Sunbelt and NASN. Here are the repositories: -- Sunbelt 2018: +- Sunbelt 2018: https://usccana.github.io/netdiffuser-sunbelt2018/ ([source code](https://github.com/USCCANA/netdiffuser-sunbelt2018)) -- NASN 2017: ([source +- NASN 2017: https://usccana.github.io/netdiffuser-nasn2017/ ([source code](https://github.com/USCCANA/netdiffuser-nasn2017)) -- Sunbelt 2016: +- Sunbelt 2016: https://github.com/USCCANA/netdiffuser-sunbelt2016 ## Presentations - ic2s2 2016 Evanston, IL: - (poster) + https://github.com/USCCANA/netdiffuser-ic2s22016 (poster) - useR! 2016 Stanford, CA: - (slides) -- useR! 2016: + https://github.com/USCCANA/netdiffuser-user2016 (slides) +- useR! 2016: https://github.com/USCCANA/netdiffuser-user2016 ## Examples @@ -161,12 +147,12 @@ This example has been taken from the package’s vignettes: library(netdiffuseR) ``` - ## - ## Attaching package: 'netdiffuseR' - ## The following object is masked from 'package:base': - ## - ## %*% + Attaching package: 'netdiffuseR' + + The following object is masked from 'package:base': + + %*% ### Infectiousness and Susceptibility @@ -180,7 +166,7 @@ toa <- sample(c(1:(1+nper-1), NA), n, TRUE) head(toa) ``` - ## [1] 16 3 14 3 13 5 + [1] 16 3 14 3 13 5 ``` r # Creating a diffnet object @@ -188,70 +174,71 @@ diffnet <- as_diffnet(graph, toa) diffnet ``` - ## Dynamic network of class -diffnet- - ## Name : Diffusion Network - ## Behavior : Unspecified - ## # of nodes : 100 (1, 2, 3, 4, 5, 6, 7, 8, ...) - ## # of time periods : 20 (1 - 20) - ## Type : directed - ## Final prevalence : 0.95 - ## Static attributes : - - ## Dynamic attributes : - + Dynamic network of class -diffnet- + Name : Diffusion Network + Behavior : Unknown + # of nodes : 100 (1, 2, 3, 4, 5, 6, 7, 8, ...) + # of time periods : 20 (1 - 20) + Type : directed + Num of behaviors : 1 + Final prevalence : 0.95 + Static attributes : - + Dynamic attributes : - ``` r summary(diffnet) ``` - ## Diffusion network summary statistics - ## Name : Diffusion Network - ## Behavior : Unspecified - ## ----------------------------------------------------------------------------- - ## Period Adopters Cum Adopt. (%) Hazard Rate Density Moran's I (sd) - ## -------- ---------- ---------------- ------------- --------- ---------------- - ## 1 8 8 (0.08) - 0.50 -0.01 (0.00) - ## 2 3 11 (0.11) 0.03 0.50 -0.01 (0.00) - ## 3 6 17 (0.17) 0.07 0.51 -0.01 (0.00) - ## 4 3 20 (0.20) 0.04 0.49 -0.01 (0.00) - ## 5 9 29 (0.29) 0.11 0.50 -0.01 (0.00) - ## 6 5 34 (0.34) 0.07 0.50 -0.01 (0.00) - ## 7 2 36 (0.36) 0.03 0.51 -0.01 (0.00) - ## 8 3 39 (0.39) 0.05 0.50 -0.01 (0.00) - ## 9 5 44 (0.44) 0.08 0.50 -0.01 (0.00) - ## 10 1 45 (0.45) 0.02 0.49 -0.01 (0.00) - ## 11 3 48 (0.48) 0.05 0.50 -0.01 (0.00) - ## 12 6 54 (0.54) 0.12 0.50 -0.01 (0.00) - ## 13 8 62 (0.62) 0.17 0.50 -0.01 (0.00) - ## 14 9 71 (0.71) 0.24 0.50 -0.01 (0.00) - ## 15 5 76 (0.76) 0.17 0.50 -0.00 (0.00) ** - ## 16 7 83 (0.83) 0.29 0.50 -0.01 (0.00) - ## 17 5 88 (0.88) 0.29 0.49 -0.00 (0.00) *** - ## 18 4 92 (0.92) 0.33 0.50 -0.01 (0.00) - ## 19 1 93 (0.93) 0.12 0.50 -0.01 (0.00) - ## 20 2 95 (0.95) 0.29 0.50 -0.01 (0.00) - ## ----------------------------------------------------------------------------- - ## Left censoring : 0.08 (8) - ## Right centoring : 0.05 (5) - ## # of nodes : 100 - ## - ## Moran's I was computed on contemporaneous autocorrelation using 1/geodesic - ## values. Significane levels *** <= .01, ** <= .05, * <= .1. + Diffusion network summary statistics + Name : Diffusion Network + Behavior : Unknown + ----------------------------------------------------------------------------- + Period Adopters Cum Adopt. (%) Hazard Rate Density Moran's I (sd) + -------- ---------- ---------------- ------------- --------- ---------------- + 1 8 8 (0.08) - 0.50 -0.01 (0.00) + 2 3 11 (0.11) 0.03 0.50 -0.01 (0.00) + 3 6 17 (0.17) 0.07 0.51 -0.01 (0.00) + 4 3 20 (0.20) 0.04 0.49 -0.01 (0.00) + 5 9 29 (0.29) 0.11 0.50 -0.01 (0.00) + 6 5 34 (0.34) 0.07 0.50 -0.01 (0.00) + 7 2 36 (0.36) 0.03 0.51 -0.01 (0.00) + 8 3 39 (0.39) 0.05 0.50 -0.01 (0.00) + 9 5 44 (0.44) 0.08 0.50 -0.01 (0.00) + 10 1 45 (0.45) 0.02 0.49 -0.01 (0.00) + 11 3 48 (0.48) 0.05 0.50 -0.01 (0.00) + 12 6 54 (0.54) 0.12 0.50 -0.01 (0.00) + 13 8 62 (0.62) 0.17 0.50 -0.01 (0.00) + 14 9 71 (0.71) 0.24 0.50 -0.01 (0.00) + 15 5 76 (0.76) 0.17 0.50 -0.00 (0.00) ** + 16 7 83 (0.83) 0.29 0.50 -0.01 (0.00) + 17 5 88 (0.88) 0.29 0.49 -0.00 (0.00) *** + 18 4 92 (0.92) 0.33 0.50 -0.01 (0.00) + 19 1 93 (0.93) 0.12 0.50 -0.01 (0.00) + 20 2 95 (0.95) 0.29 0.50 -0.01 (0.00) + ----------------------------------------------------------------------------- + Left censoring : 0.08 (8) + Right centoring : 0.05 (5) + # of nodes : 100 + + Moran's I was computed on contemporaneous autocorrelation using 1/geodesic + values. Significane levels *** <= .01, ** <= .05, * <= .1. ``` r # Visualizing distribution of suscep/infect out <- plot_infectsuscep(diffnet, bins = 20,K=5, logscale = FALSE, h=.01) ``` -![](README_files/figure-gfm/plot_infectsuscept-1.png) +![](README_files/figure-commonmark/plot_infectsuscept-1.png) ``` r out <- plot_infectsuscep(diffnet, bins = 20,K=5, logscale = TRUE, exclude.zeros = TRUE, h=1) ``` - ## Warning in plot_infectsuscep.list(graph$graph, graph$toa, t0, normalize, : When - ## applying logscale some observations are missing. + Warning in plot_infectsuscep.list(graph$graph, graph$toa, t0, normalize, : When + applying logscale some observations are missing. -![](README_files/figure-gfm/plot_infectsuscept-2.png) +![](README_files/figure-commonmark/plot_infectsuscept-2.png) ### Threshold @@ -264,30 +251,29 @@ diffnet <- rdiffnet(500, 20, threshold.dist = function(x) runif(1, .3, .7)) ``` - ## Warning in (function (graph, p, algorithm = "endpoints", both.ends = FALSE, : - ## The option -copy.first- is set to TRUE. In this case, the first graph will be - ## treated as a baseline, and thus, networks after T=1 will be replaced with T-1. + The option -copy.first- is set to TRUE. In this case, the first graph will be treated as a baseline, and thus, networks after T=1 will be replaced with T-1.TRUE ``` r diffnet ``` - ## Dynamic network of class -diffnet- - ## Name : A diffusion network - ## Behavior : Random contagion - ## # of nodes : 500 (1, 2, 3, 4, 5, 6, 7, 8, ...) - ## # of time periods : 20 (1 - 20) - ## Type : directed - ## Final prevalence : 1.00 - ## Static attributes : real_threshold (1) - ## Dynamic attributes : - + Dynamic network of class -diffnet- + Name : A diffusion network + Behavior : Random contagion + # of nodes : 500 (1, 2, 3, 4, 5, 6, 7, 8, ...) + # of time periods : 20 (1 - 20) + Type : directed + Num of behaviors : 1 + Final prevalence : 1.00 + Static attributes : real_threshold (1) + Dynamic attributes : - ``` r # Threshold with fixed vertex size plot_threshold(diffnet) ``` -![](README_files/figure-gfm/BoringThreshold,%20plot_threshold-1.png) +![](README_files/figure-commonmark/BoringThreshold,%20plot_threshold-1.png) Using more features @@ -303,10 +289,10 @@ plot_threshold( ) ``` - ## Warning in (function (graph, expo, toa, include_censored = FALSE, t0 = min(toa, - ## : -vertex.sides- will be coerced to integer. + Warning in (function (graph, expo, toa, include_censored = FALSE, t0 = min(toa, + : -vertex.sides- will be coerced to integer. -![](README_files/figure-gfm/NiceThreshold-1.png) +![](README_files/figure-commonmark/NiceThreshold-1.png) ### Adoption rate @@ -314,7 +300,7 @@ plot_threshold( plot_adopters(diffnet) ``` -![](README_files/figure-gfm/Adopters-1.png) +![](README_files/figure-commonmark/Adopters-1.png) ### Hazard rate @@ -322,7 +308,7 @@ plot_adopters(diffnet) hazard_rate(diffnet) ``` -![](README_files/figure-gfm/Hazard-1.png) +![](README_files/figure-commonmark/Hazard-1.png) ### Diffusion process @@ -330,14 +316,14 @@ hazard_rate(diffnet) plot_diffnet(medInnovationsDiffNet, slices=c(1,9,8)) ``` -![](README_files/figure-gfm/plot_diffnet-1.png) +![](README_files/figure-commonmark/plot_diffnet-1.png) ``` r diffnet.toa(brfarmersDiffNet)[brfarmersDiffNet$toa >= 1965] <- NA plot_diffnet2(brfarmersDiffNet, vertex.size = "indegree") ``` -![](README_files/figure-gfm/plot_diffnet2-1.png) +![](README_files/figure-commonmark/plot_diffnet2-1.png) ``` r set.seed(1231) @@ -367,7 +353,7 @@ mtext("Both networks have the same distribution on times of adoption", 1, outer = TRUE) ``` -![](README_files/figure-gfm/plot_diffnet2%20with%20map-1.png) +![](README_files/figure-commonmark/plot_diffnet2%20with%20map-1.png) ``` r par(oldpar) @@ -380,13 +366,13 @@ out <- classify(kfamilyDiffNet, include_censored = TRUE) ftable(out) ``` - ## thr Non-Adopters Very Low Thresh. Low Thresh. High Thresh. Very High Thresh. - ## toa - ## Non-Adopters 0.00 0.00 0.00 0.00 0.00 - ## Early Adopters 0.00 14.04 8.40 0.57 0.29 - ## Early Majority 0.00 5.64 11.65 5.54 2.58 - ## Late Majority 0.00 1.34 5.06 6.21 2.96 - ## Laggards 0.00 1.53 0.00 0.00 34.19 + thr Non-Adopters Very Low Thresh. Low Thresh. High Thresh. Very High Thresh. + toa + Non-Adopters 0.00 0.00 0.00 0.00 0.00 + Early Adopters 0.00 14.04 8.40 0.57 0.29 + Early Majority 0.00 5.64 11.65 5.54 2.58 + Late Majority 0.00 1.34 5.06 6.21 2.96 + Laggards 0.00 1.53 0.00 0.00 34.19 ``` r # Plotting @@ -400,7 +386,7 @@ legend("bottom", legend = levels(out$thr), fill=viridisLite::inferno(5), horiz = cex=.6, bty="n", inset=c(0,-.1)) ``` -![](README_files/figure-gfm/mosaic-1.png) +![](README_files/figure-commonmark/mosaic-1.png) ``` r par(oldpar) @@ -412,42 +398,47 @@ par(oldpar) sessionInfo() ``` - ## R version 4.4.1 (2024-06-14) - ## Platform: aarch64-apple-darwin23.4.0 - ## Running under: macOS Sonoma 14.6.1 - ## - ## Matrix products: default - ## BLAS: /opt/homebrew/Cellar/openblas/0.3.27/lib/libopenblasp-r0.3.27.dylib - ## LAPACK: /opt/homebrew/Cellar/r/4.4.1/lib/R/lib/libRlapack.dylib; LAPACK version 3.12.0 - ## - ## locale: - ## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 - ## - ## time zone: America/Denver - ## tzcode source: internal - ## - ## attached base packages: - ## [1] stats graphics grDevices utils datasets methods base - ## - ## other attached packages: - ## [1] netdiffuseR_1.22.6 - ## - ## loaded via a namespace (and not attached): - ## [1] Matrix_1.7-0 highr_0.11 dplyr_1.1.4 - ## [4] compiler_4.4.1 tidyselect_1.2.1 Rcpp_1.0.12 - ## [7] networkLite_1.0.5 boot_1.3-30 yaml_2.3.8 - ## [10] fastmap_1.2.0 lattice_0.22-6 coda_0.19-4.1 - ## [13] R6_2.5.1 generics_0.1.3 MatchIt_4.5.5 - ## [16] igraph_2.0.3 knitr_1.47 MASS_7.3-60.2 - ## [19] backports_1.5.0 tibble_3.2.1 statnet.common_4.9.0 - ## [22] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 - ## [25] xfun_0.45 viridisLite_0.4.2 cli_3.6.3 - ## [28] magrittr_2.0.3 network_1.18.2 digest_0.6.36 - ## [31] grid_4.4.1 lifecycle_1.0.4 vctrs_0.6.5 - ## [34] sna_2.7-2 evaluate_0.24.0 SparseM_1.84-2 - ## [37] glue_1.7.0 fansi_1.0.6 rmarkdown_2.27 - ## [40] tools_4.4.1 pkgconfig_2.0.3 networkDynamic_0.11.4 - ## [43] htmltools_0.5.8.1 + R version 4.4.0 (2024-04-24) + Platform: x86_64-pc-linux-gnu + Running under: Ubuntu 22.04.4 LTS + + Matrix products: default + BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 + LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 + + locale: + [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C + [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 + [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 + [7] LC_PAPER=en_US.UTF-8 LC_NAME=C + [9] LC_ADDRESS=C LC_TELEPHONE=C + [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C + + time zone: Etc/UTC + tzcode source: system (glibc) + + attached base packages: + [1] stats graphics grDevices utils datasets methods base + + other attached packages: + [1] netdiffuseR_1.23.0 + + loaded via a namespace (and not attached): + [1] Matrix_1.7-0 jsonlite_1.8.8 dplyr_1.1.4 + [4] compiler_4.4.0 tidyselect_1.2.1 Rcpp_1.0.12 + [7] networkLite_1.0.5 boot_1.3-30 yaml_2.3.8 + [10] fastmap_1.2.0 lattice_0.22-6 coda_0.19-4.1 + [13] R6_2.5.1 generics_0.1.3 MatchIt_4.5.5 + [16] igraph_2.0.3 knitr_1.47 MASS_7.3-60.2 + [19] backports_1.5.0 tibble_3.2.1 statnet.common_4.9.0 + [22] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 + [25] xfun_0.44 viridisLite_0.4.2 cli_3.6.2 + [28] magrittr_2.0.3 network_1.18.2 digest_0.6.35 + [31] grid_4.4.0 lifecycle_1.0.4 vctrs_0.6.5 + [34] SparseM_1.83 sna_2.7-2 evaluate_0.24.0 + [37] glue_1.7.0 fansi_1.0.6 rmarkdown_2.27 + [40] tools_4.4.0 pkgconfig_2.0.3 networkDynamic_0.11.4 + [43] htmltools_0.5.8.1 ## To-do list diff --git a/README.Rmd b/README.qmd similarity index 91% rename from README.Rmd rename to README.qmd index 0600f37..a552e63 100644 --- a/README.Rmd +++ b/README.qmd @@ -1,7 +1,5 @@ --- -output: - github_document: - html_preview: false +format: gfm --- [![R-CMD-check](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml/badge.svg)](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml) @@ -10,7 +8,7 @@ output: [![CRAN\_Status\_Badge](https://www.r-pkg.org/badges/version/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1039317.svg)](https://doi.org/10.5281/zenodo.1039317) -[![Dependencies](https://tinyverse.netlify.com/badge/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) +[![Dependencies](https://tinyverse.netlify.app/badge/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![USC's Department of Preventive Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://pphs.usc.edu/center/cana/)

netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks

@@ -43,11 +41,6 @@ citation(package="netdiffuseR") Changelog can be view [here](NEWS.md). -* [2016-06-02] A video of the __netdiffuseR__ workshop at SUNBELT 2016 is now online on [youtube](https://www.youtube.com/playlist?list=PLT-GgRN1lFI4coHDqkRJm3flDw9e1gg2P), and the workshop materials can be found [here](https://github.com/USCCANA/netdiffuser-sunbelt2016/) -* [2016-04-11] __netdiffuseR__ will be on [useR! 2016](https://user2016.r-project.org/) on as a presentation and on [IC2S2 2016](https://www.kellogg.northwestern.edu/news-events/conference/ic2s2/2016.aspx) in the posters session. -* [2016-03-16] Next CRAN release scheduled for April 11th 2016 (after the workshop). -* [2016-02-18] __netdiffuseR__ vers 1.16.2 is now on CRAN! - ## Installation ### CRAN version @@ -60,10 +53,10 @@ install.packages("netdiffuseR") ### Bleeding edge version -If you want the latest (unstable) version of __netdiffuseR__, using the `devtools` package, you can install `netdiffuseR` dev version as follows +If you want the latest (unstable) version of __netdiffuseR__, using the `remotes` package, you can install `netdiffuseR` dev version as follows ```r -devtools::install_github('USCCANA/netdiffuseR', build_vignettes = TRUE) +remotes::install_github('USCCANA/netdiffuseR', build_vignettes = TRUE) ``` You can skip building vignettes by setting `build_vignettes = FALSE` (so it is not required). diff --git a/inst/CITATION b/inst/CITATION index 768ed34..f22ff42 100644 --- a/inst/CITATION +++ b/inst/CITATION @@ -1,4 +1,4 @@ -year <- sub("-.*", "", meta$Date) +year <- 2025 note <- sprintf("R package version %s", meta$Version) bibentry( @@ -28,6 +28,7 @@ bibentry(bibtype = "Manual", title = "{{netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks}}", author = c( person("George", "Vega Yon", comment = c(ORCID = "0000-0002-3171-0844")), + person("Anibal", "Olivera Morales", comment=c(ORCID="0009-0000-3736-7939", what="Multi-diffusion version")), person("Thomas", "Valente", comment=c(ORCID="0000-0002-8824-5816")) ), year = year, diff --git a/inst/NEWS b/inst/NEWS deleted file mode 100644 index 7109dca..0000000 --- a/inst/NEWS +++ /dev/null @@ -1,516 +0,0 @@ -Changes in netdiffuseR version 1.23.0 (2025-01-03) - -- New methods for simulating multi-diffusion models, including - disadoption. - -- - -Changes in netdiffuseR version 1.22.7 (2024-09-18) - -- Minor changes to testing (skip warnings). - -Changes in netdiffuseR version 1.22.5 (2022-11-30) - -- Adressing roxygen2 issue #1491 - -Changes in netdiffuseR version 1.22.5 (2022-11-30) - -- Solved warning and errors reported by CRAN before the package was - archived. - -- New S3 generic functions is_self, is_multiple, is_valued, and - is_undirected allow querying graph information for some methods. - -- Fixed bug in diag_expand. Graphs with self ties were not transformed - correctly (diagonals were excluded.) - -Changes in netdiffuseR version 1.22.4 (2022-09-16) - -- Replaced getMethod("t"...) by t responding to changes in the Matrix - package. - -Changes in netdiffuseR version 1.22.1 (2021-05-27) - -- netdiffuseR has now a logo! - -- Making updates after changes in knitr and Matrix. - -Changes in netdiffuseR version 1.22.0 (2020-05-17) - -- Fixing a new issue regarding structural equivalence calculation. In - the new version, the function has been fully ported to R, which - should avoid problems related to the C++ code. - -- As documented, struct_equiv now returns he euclidean distance matrix - (it was not doing that). - -Changes in netdiffuseR version 1.21.0 (2020-02-10) - -- Getting netdiffuseR back to CRAN. We have fixed issues that arise - from the next big CRAN release, in particular, matrices are now - arrays. That was creating issues throughout the package (now fixed). - -Changes in netdiffuseR version 1.20.2 (2019-03-25) - -- Repaired broken link in bootnet. - -Changes in netdiffuseR version 1.20.1 (2019-03-22) - -- This version has no user level visible changes. - -Other changes - -- Changing PI macros in C++ code as requested by RcppCore. - -- Setting 3.5 seed version for tests so that test won’t break - following message from CRAN. - -Changes in netdiffuseR version 1.20.0 (2018-06-06) - -New functions and features - -- diffreg provides a wrapper of glm to run lagged regression models. - -- Default colors for plot_diffnet2, plot_infectsucept, and others are - now selected from the viridis R package, which provides perceptually - uniform and colorblind proof colors. - -Bug fixes - -- plot_diffnet2 now has the correct scaling in nodes positions. - -- rdiffnet_multiple calls library(netdiffuseR) when using multicore. - -Other changes - -- arrow.width in plot_threshold.default now set to be equal to - nslices(graph)/80. - -- curved option passed to plot_._threshold.default. - -- The c++ function edges_arrow now returns two different elements (the - edge, and the arrow). - -Changes in netdiffuseR version 1.19.0 (2017-10-16) - -New functions and features - -- rdiffnet now allows passing scalars for threshold.dist, more over, - the user can also ask the function to just warn when there is no - diffusion instead of returning with error. - -- plot.diffnet, plot_diffnet, plot.diffnet_mentor, and plot_diffnet2 - use igraph for plotting. Also, users can now pass “degree” for - -vertex.size- (vertex.cex not used anymore), allowing to - “automatically” scale vertices by (in/out/.)degree. Also, plotting - arguments like vertex.* or edge.* are standarized so these match - igraph. - -- plot_diffnet has a new parameter: background. - -- rdiffnet_multiple, a wrapper of rdiffnet, allows performing - simulations studies by running simulating multiple diffusion - networks using rdiffnet. - -- exposure has a new parameter: lags. By default lags = 0, returns a - lagged exposure matrix. - -Bug fixes - -- igraph_to_diffnet was failing with the graph had no weights. - -- drop_isolated was not behaving well for diffnet objects. - -- vertex_covariate_dist was incorrectly specified. Only the default - p=2 were OK. Now fixed and the tests/ folder includes a tests on - this. - -- plot_diffnet2 was not passing color.ramp to drawColorKey. Now fixed. - -- plot.diffnet_mentor had a bug. Uncesary permutation of vertices was - done, but it actually had no visible effect. Similar problem was - corrected in diffnet_to_igraph, and other plot methods using igraph - for plotting. - -Other changes - -- Replacing some C++ functions by R functions in cases in which there - was no decrease in performance. - -- plot_diffnet function now has smaller margins, so looks more - appealing. - -- New examples in vignettes “netdiffuseR showcase: Medical - Innovations”, and “Simulating diffusion networks: Using the rdiffnet - function”. - -Changes in netdiffuseR version 1.18.1 (2017-07-22) - -New functions - -- network_to_diffnet, diffnet_to_network coercion between diffnet and - network objects. - -- networkDynamic_to_diffnet, diffnet_to_networkDynamc coercion between - diffnet and networkDynamic objects. - -New features - -- new_diffnet and as_diffnet now receive static networks as well. - -Bug fixes - -- diffnet_to_igraph was copying over a single adjacency matrix, which - did a difference in dynamic networks. - -- diffnet_to_igraph was not considering loops correctly. - -- In unexpected situations egonet_attrs was crashing. - -Changes in netdiffuseR version 1.18.0 (2017-07-16) - -New functions - -- bootnet implements network bootstrapping based on Snijders and - Borgatti (1999) - -- mentor_matching implements Valente and Davis (1999) Mentor matching - algorithm. including a plot method. - -- approx_geodesic an alternative to igraph::distances and - sna::geodist. computes geodesics up to a certain number of steps and - returns a sparse matrix. - -- matrix_compare Efficiently compares two sparse matrices looking only - at the valued cells. - -- as_dgCMatrix Coerce matrix-like objects into dgCMatrix objects - (sparse matrices from the Matrix package). - -- fitbass Fits the Bass Diffusion Model to an observed vector of - cumulative adopters. The estimation is done via stats::nls. - -- netmatch and netmatch_prepare (on development) implement matching - estimators with network data. - -Bugs Fixes - -- dgr returned with error when self == TRUE - -- In some calls to igraph::graph_from_adj... sorting of vertices was - not preserved. - -- The matrix method in egonet_attrs was passing a list of vertices - instead of the attributes. Fixed. - -- transformGraphBy was returning with error when the time periods - ranged other than 1, 2, … - -New Features - -- rgraph_er is now significantly faster (orders of magnitude compare - to previous versions). rgraph_ba is faster too. - -- moran now returns the sd, expected and p-value. - -- exposure now receives static graphs in alt.graph with a warning. - -- rewire_graph now also uses QAP. This affects directly to - structu_test. - -Changes in netdiffuseR version 1.17.0 (2016-11-10) - -New features and changes - -- The title of the package is now Analysis of Diffusion and Contagion - Processes on Networks. - -- The function struct_test now allows other types of graphs. Before it - only supported diffnet objects. - -- The function rewire_graph gains a new argument for the algorithm - “swap”. Now to ensure aperiodicity in MCMC a chance of skiping a - rewire has been included. - -- The function n_rewires now has a default of 20 (before it was 100). - This is based on Ray et al (2012) (more details in the manual). - -- The function rgraph_ba gains a new argument, self=TRUE. By default - behaves as before following Bollobas, but now can deviate to - generate graphs with no autolinks. - -- In rgraph_ba, the argument eta allows implementing De Almeida et - al. (2013) Scale-free homophilic networks. - -- The functions exposure and dgr are now pure R code (C++ functions - were replace since there were no significant speed gains). - -- diffnet class objects now have two new meta-values: name and - behavior. - -- Elements -graph-, -toa-, -adopt- and -cumadopt- in diffnet class - objects have lost their dimnames (more efficient storage). - -- classify_adopters now always includes Non-Adopters. - -New functions - -- vertex_covariate_dist computes distances between vertices using both - the graph and a matrix of length nxK. - -- vertex_mahalanobis_dist computes mahalanobis distance between - vertices (as above). - -- struct_test_asymp an asymptotic approximation of struct_test (not - recomended). - -- ego_variance computes a pseudo variance at the ego level (aux - function for struct_test). - -- transformGraphBy applies a function that transforms a graph - considering structural zeros given by groups. Similar to the idea of - the -by- option in struct_equiv. - -- read_ucinet read UCINET binary files (both header and graph file). - Still work in progress. - -- plot.diffnet_degSeq method allows visualizing degree sequence as - log-log plots (default). - -- diag_expand creates a single adjacency matrix from a dynamic graph. - -- summary.diffnet_adoptChange method generates a summary table of the - df generated by select_egoalter. - -- permute_graph permutes the values of an adjacency matrix - (Conditional Uniform Graph). - -- rewire_qap generates isomorphic graphs by “changing the labels”. - -Bug fixes - -- ^.diffnet method was rasing to +1 power, e.g. diffnet^2 was actually - diffnet^3. - -- /.diffnet was not working. - -- plot_diffnet was computing the coordinates of the cells wrongly. - Most of the time causing adding figures outside of the plotting - area. - -- The c.diffnet_struct_test method was not updating the p.value. - -- The function edgelist_to_adjmat was not processing correctly - undirected graphs when the edgelist represented a lower triangular - matrix. - -- The function survey_to_diffnet had an issue processin dyn graph - attrs returning errors. Now fixed. - -- The function select_egoalter returned error when graph was an array. - -- The method [[<-.diffnet failed when replacing a dynamic attribute - with a NULL value (e.g. dn[["my_dyn_att"]] <- NULL). - -Changes in netdiffuseR version 1.16.7 (2016-07-07) - -Bug fixes - -- Fixed bug in struct_equiv: When groupvar was a list (dynamic attr), - the function returned error. - -- Fixed bug in rewire_graph.array: Returned error when - algorithm="swap" - -- Fixed bug in rewire_graph: The option copy.first was not been - applied correctly. - -- In hist.diffnet_struct_test: ... now passed to hist.default. - -- Fixed bug on egonet_attrs: The matrix method was returning with - error. - -New features and changes - -- plot_infectsuscept includes 2D kernel smoother via MASS::kde2d. - -- infection, susceptibility and threshold now report NA for - non-adopters or excluded variables. - -- egonets_attrs now has new argument: self.attrs allows including - ego’s attributes as part of the outcome so it can be used by the - user. - -- plot_diffnet now uses igraph::plot.igraph for plotting instead - -- threshold gains a new argument: lags now users can define threshold - as exposure lags time periods prior to the time of adoption. By - default is 0 so its exposure at the time of adoption. - -New functions - -- New method c.diffnet_struct_test: A wrapper of boot:::c.boot. - -- diffusionMap computes the required matrix to be used with image-like - functions mapping a vertex covariate given a graph structure. - -- n_rewires: computes a suggested number of rewires per step in order - to attain unbiased graph samples. - -- diffnetLapply: Apply throught periods on diffnet objects. - -- Several new methods for the class diffnet. Now users can apply str, - dimnames (so colnames and rownames), t, &, |, dim and %*%. - -- drawColorKey: Handy function to draw a color key in the current - plot. - -- classify_adopters: As in Valente (1995), depending on time of - adoption, adopters are classified as early adopters, early majority, - late majority, and laggards. The function introduces a new class and - has methods for ftable and plot. - -- rescale_vertex_igraph: Helper function to fix the size of vertex - when calling plot.igraph so that the size is proportional to the - x-axis. - -Changes in netdiffuseR version 1.16.5 (2016-05-02) - -Bug fixes - -- Bug fixed on edgelist_to_adjmat: Counting number of vertices is now - done right after recode. (Reported by Tom) - -- Fixed bug in diffnet.attrs(..., as.df=TRUE). ids were wrongly - retrieved. - -- Fixed bugs for rgraph_ba_cpp: Degree of new vertices was not - changing apropiately. This only was an issue when m>1. - -- Fixed bugs for the as_diffnet method for arrays. - -- Fixed bugs in rewire_graph. Indexing of the jth component (when - rewiring) was not been made correctly (now it does). Also, when - rewiring, the new endpoints were truncated to n-1 (now fixed). - -- Fixed bugs for as_diffnet: When a dynamic graph was passed with - slices names different from the time periods, the slices names were - kept. Now these are replaced by meta$pers. - -New features and changes - -- Support for int64_t in RcppArmadillo now allows for creating/reading - adjacency matrices with more than 4 billion elements (big graphs). - -- In edgelist_to_adjmat use.incomplete has been replaced by - keep.isolated which makes more sense for naming. Incomplete cases on - times or weights are still ignored (as these cannot be processed by - the c++ ‘engine’). (Reported by Tom) - -- In edgelist_to_adjmat times has been replaced by t0 and t1. So now - the user can import graphs with spells. - -- Added new elements to the diffnet_struct_test class: p.value, t0, - mean_t, and R. All these were available before either to be computed - or retrieved from the boot list at the class. - -- New argument for threshold. Now, by default, threshold levels are - not computed for adopters in the first time period as this can be a - biased estimate. If the user wants to compute such, he/she can set - include_censored=TRUE. - -- Attributes in diffnet objects are now stored as data frames (instead - of matrices). This affects the function diffnet.attrs, and - egonet_attrs as these use attributes directly. (Requested by Tom) - -- New features for the rewire_graph function. In particular, p can now - be a vector of length T, so each slice can have different rewiring - prob., and the new option copy.first which allows to recycle the - first rewired slice (see details). - -- New features for the exposure function. When graph is of class - diffnet, the function accepts attrs equal to the name of some the - graph’s attributes. Also, alt.graph can be specified as se, which - will be replaced by the inverse of the structural equivalence. When - valued=FALSE the function will switch it to TRUE and warn the user. - -- New argument for struct_equiv and exposure, groupvar. This new - option provides a convenient way of calculating structural - equivalence and exposure clusterized by group. Specially useful when - there are different communities in a graph. See examples in the - manual. - -- as_diffnet now has an internal function, check_as_diffnet_attrs, to - check input attributes dimensions and coerce them into proper - class/structure. Valid attributes are now documented in the - function’s manual. - -- New arguments for edges_coords: dev and ran allow including device + - margins aspec ratio and plotting area y/x limits for improved aspect - ratio computation. - -- New internal function edges_arrow: Computes the coordinates of a 4 - points polygon allowing to draw pretty arrows considering aspec - ratio of device, margins and y/x. - -- Geodesic distances are now computed using igraph::distances instead - of sna::geodist as it is more flexible and faster. - -- New arguments for plot_threshold: vertex.sides, vertex.lab.cex, - vertex.lab.adj, vertex.lab.col, vertex.rot, jitter.factor, and - jitter.amount to give more control. - -- New internal function vertex_coords: Creates polygons of any given - number of sides considering aspec ratio of both x/y and device. - -- New features for rdiffnet. seed.graph can be either a function that - generates a random graph, a character string (as before) indicating - the class of graph to generate, or any other class of graph (either - static or dynamic) as specified in netdiffuseR-graphs. seed.nodes - can now be a vector with indices pointing to the initial adopters. - -- The rewiring algorithm for rgraph_ws has been replaced with a - rewire_ws which has been implemented as it was presented in Watts - and Strogatz (1998). - -New functions - -- New function: survey_to_diffnet. This function allows importing - network nomination data (in survey fashion) of both types, - cross-section and panel formats (static network only varying - adoption, or dynamic network varying attributes and network - structure simultaneously). - -- New function: edgelist_to_diffnet. Similar to survey_to_diffnet, - this function reads diffusion networks from an adjacency matrix and - a vertex attributes data frame. Both the attributes and the edgelist - can be static or dynamic. - -- New method: as.array.diffnet. - -- New functions: read_pajek and read_ucinet. Still on development. - -- New functions: nvertices and nedges return the number of vertices - and edges that a graph has. This can be applied to any class of - graph accepted by the package. - -- New indexing methods via [[.diffnet, [[<-.diffnet, for network - attributes and [.diffnet and [<-.diffnet for adjacency matrix. The - function diffnet.attrs<- will be deprecated for the next CRAN - release. The function diffnet.subset.slices is now not exported - (internal use), so the user needs to use the [.diffnet method - instead. - -- New concatenating method c.diffnet for diffnet objects. This method - allows ‘adding up’ diffnet objects. - -- New print method for diffnet_se, objects returned by struct_equiv. - -- New function diffnet_to_igraph. - -- New rewiring algorithm, rewire_swap implements the edge-switch - algorithm in an efficient way. This preserves degree sequences. - -Changes in netdiffuseR version 1.16.2 (2016-02-18) - -- First CRAN version. From fe6bbaf78cb6603c1d7f0ed730845b5687d7ba26 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Tue, 10 Jun 2025 19:55:18 +0000 Subject: [PATCH 10/16] Adding qmd files to buildignore --- .Rbuildignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index cf81984..74f27c4 100755 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -18,7 +18,7 @@ .*\.doc .*\.pdf # Misc -README[.]Rmd +README[.](R|q)md ^README\_files$ [.]travis[.]yml ^appveyor\.yml$ From f3588adfbc162620f9cfb7040263d18eed98acde Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Wed, 11 Jun 2025 22:11:05 +0000 Subject: [PATCH 11/16] Better warnings --- R/rdiffnet.r | 5 +++-- R/rewire.r | 21 +++++++++++++++------ R/struct_test.R | 11 +++++++++-- man/rewire_graph.Rd | 8 ++++++-- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/R/rdiffnet.r b/R/rdiffnet.r index 7d4f966..122938f 100644 --- a/R/rdiffnet.r +++ b/R/rdiffnet.r @@ -376,7 +376,8 @@ rdiffnet_multiple <- function( default_rewire.args <- list( p = .1, undirected = getOption("diffnet.undirected", FALSE), - self = getOption("diffnet.self", FALSE) + self = getOption("diffnet.self", FALSE), + warn = FALSE ) default_exposure.args <- list( @@ -431,7 +432,7 @@ rdiffnet <- function( meta <- classify_graph(sgraph) # Was n set? - if (!missing(n) && n != meta$n) { + if (!missing(n) && (n != meta$n)) { warning("While the user set n=",n,", nnodes(seed.graph)=", meta$n,". The later will be used.") n <- meta$n } diff --git a/R/rewire.r b/R/rewire.r index 2cecbd3..e033508 100644 --- a/R/rewire.r +++ b/R/rewire.r @@ -13,6 +13,8 @@ #' @param algorithm Character scalar. Either \code{"swap"}, \code{"endpoints"}, or \code{"qap"} #' (see \code{\link{rewire_qap}}). #' @param althexagons Logical scalar. When \code{TRUE} uses the compact alternating +#' @param warn Logical scalar. If \code{TRUE} (default) shows warnings when +#' recycling the first slice in dynamic graphs. #' hexagons algorithm (currently ignored [on development]). #' @details #' The algorithm \code{"qap"} is described in \code{\link{rewire_qap}}, and only @@ -220,7 +222,8 @@ rewire_graph <- function( undirected = getOption("diffnet.undirected"), pr.change = ifelse(self, 0.5, 1), copy.first = TRUE, - althexagons = FALSE + althexagons = FALSE, + warn = TRUE ) { # Checking undirected (if exists) @@ -229,14 +232,20 @@ rewire_graph <- function( # althexagons is still on development if (althexagons) { althexagons <- FALSE - warning("The option -althexagons- is still on development. So it has been set to FALSE.") + + if (warn) + warning( + "The option -althexagons- is still on development. So it has been set", + " to FALSE." + ) } - if (copy.first) { + if (copy.first && warn) { - message( - "The option -copy.first- is set to TRUE. In this case, the first graph will be ", - "treated as a baseline, and thus, networks after T=1 will be replaced with T-1.", + warning( + "The option -copy.first- is set to TRUE. In this case, the first graph", + " will be treated as a baseline, and thus, networks after T=1 will be ", + "replaced with T-1.", immediate. = TRUE ) diff --git a/R/struct_test.R b/R/struct_test.R index d151dc5..c3a9a87 100644 --- a/R/struct_test.R +++ b/R/struct_test.R @@ -159,6 +159,7 @@ struct_test <- function( rewire.args$undirected <- getOption("diffnet.undirected", FALSE) if (!length(rewire.args$copy.first)) rewire.args$copy.first <- TRUE if (!length(rewire.args$algorithm)) rewire.args$algorithm <- "swap" + if (!length(rewire.args$warn)) rewire.args$warn <- FALSE # Preparing the call to boot rewire.args$graph <- graph @@ -167,8 +168,14 @@ struct_test <- function( } # Calling boot - boot_res <- boot::boot(1, statisticpll, R=R, fn=statistic, rewire.args=rewire.args, - ...) + boot_res <- boot::boot( + 1, + statisticpll, + R = R, + fn = statistic, + rewire.args = rewire.args, + ... + ) # The t0 must be applied with no rewiring! boot_res$t0 <- statistic(graph) diff --git a/man/rewire_graph.Rd b/man/rewire_graph.Rd index 979bb13..8f7509d 100644 --- a/man/rewire_graph.Rd +++ b/man/rewire_graph.Rd @@ -14,7 +14,8 @@ rewire_graph( undirected = getOption("diffnet.undirected"), pr.change = ifelse(self, 0.5, 1), copy.first = TRUE, - althexagons = FALSE + althexagons = FALSE, + warn = TRUE ) } \arguments{ @@ -39,7 +40,10 @@ or an integer vector with number of iterations (\code{algorithm="swap"}).} \item{copy.first}{Logical scalar. When \code{TRUE} and \code{graph} is dynamic uses the first slice as a baseline for the rest of slices (see details).} -\item{althexagons}{Logical scalar. When \code{TRUE} uses the compact alternating +\item{althexagons}{Logical scalar. When \code{TRUE} uses the compact alternating} + +\item{warn}{Logical scalar. If \code{TRUE} (default) shows warnings when +recycling the first slice in dynamic graphs. hexagons algorithm (currently ignored [on development]).} } \value{ From a0a15017f28d4b39ba87772e0dee1fc1e11c0a89 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Wed, 11 Jun 2025 18:09:16 -0600 Subject: [PATCH 12/16] Trying to address issues from CRAN --- .Rbuildignore | 3 +- Makefile | 4 +-- R/package-doc.r | 9 ++---- R/random_graph.R | 4 +-- README.md | 75 +++++++++++++++++++--------------------------- README.qmd | 10 ++----- man/netdiffuseR.Rd | 9 ++---- man/rgraph_ba.Rd | 2 +- man/rgraph_er.Rd | 2 +- 9 files changed, 45 insertions(+), 73 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 74f27c4..82cd07b 100755 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -39,4 +39,5 @@ makefile ^netdiffuseR\.tar\.gz$ ^\.github netdiffuseR\.Rcheck -^\.devcontainer$ \ No newline at end of file +^\.devcontainer$ +^\.vscode$ \ No newline at end of file diff --git a/Makefile b/Makefile index 878e7ac..eb2b1f3 100644 --- a/Makefile +++ b/Makefile @@ -25,9 +25,9 @@ checkv: netdiffuseR_$(VERSION).tar.gz R CMD check --as-cran --use-valgrind netdiffuseR_$(VERSION).tar.gz clean: - rm -rf netdiffuseR.Rcheck + rm -rf netdiffuseR.Rcheck src/*.so src/*.o docs: Rscript --vanilla -e 'devtools::document()' -.PHONY: check checkv clean install docs \ No newline at end of file +.PHONY: check checkv clean install docs diff --git a/R/package-doc.r b/R/package-doc.r index 00a8fdb..5c90c51 100644 --- a/R/package-doc.r +++ b/R/package-doc.r @@ -18,13 +18,8 @@ #' #' @section Workshops and Tutorials: #' -#' Online you can find several learning resources: -#' -#' \itemize{ -#' \item Sunbelt 2016 \url{https://github.com/USCCANA/netdiffuser-sunbelt2016} -#' \item NASN 2017 \url{https://github.com/USCCANA/netdiffuser-nasn2017} -#' \item Sunbelt 2018 \url{https://github.com/USCCANA/netdiffuser-sunbelt2018} -#' } +#' Online you can find several learning resources, particularly, at the +#' netdiffuseR workshop website: . #' #' @aliases netdiffuseR-package #' @name netdiffuseR diff --git a/R/random_graph.R b/R/random_graph.R index 6e6ce65..c531684 100644 --- a/R/random_graph.R +++ b/R/random_graph.R @@ -23,7 +23,7 @@ #' networks are uncorrelated. #' @references #' Barabasi, Albert-Laszlo. "Network science book" Retrieved November 1 (2015) -#' \url{https://barabasi.com/book/network-science}. +#' \url{https://networksciencebook.com}. #' @return A graph represented by an adjacency matrix (if \code{t=1}), or an array of #' adjacency matrices (if \code{t>1}). #' @export @@ -164,7 +164,7 @@ rgraph_er <- function(n=10, t=1, p=0.01, undirected=getOption("diffnet.undirecte #' Networks. Science, 286(5439), 509–512. \doi{10.1126/science.286.5439.509} #' #' Albert-László Barabási. (2016). Network Science: (1st ed.). Cambridge University Press. -#' Retrieved from \url{https://barabasi.com/book/network-science} +#' Retrieved from \url{https://networksciencebook.com} #' #' De Almeida, M. L., Mendes, G. A., Madras Viswanathan, G., & Da Silva, L. R. (2013). #' Scale-free homophilic network. European Physical Journal B, 86(2). diff --git a/README.md b/README.md index 583adf3..b92c041 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,16 @@ [![R-CMD-check](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml/badge.svg)](https://github.com/USCCANA/netdiffuseR/actions/workflows/r.yml) [![codecov.io](https://codecov.io/github/USCCANA/netdiffuseR/coverage.svg?branch=master)](https://app.codecov.io/github/USCCANA/netdiffuseR?branch=master) -[![](https://cranlogs.r-pkg.org/badges/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) -[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) -[![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) +[![](https://cranlogs.r-pkg.org/badges/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) +[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) +[![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1039317.svg)](https://doi.org/10.5281/zenodo.1039317) -[![Dependencies](https://tinyverse.netlify.app/badge/netdiffuseR.png)](https://cran.r-project.org/package=netdiffuseR) +[![Dependencies](https://tinyverse.netlify.app/badge/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![USC’s Department of Preventive -Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://pphs.usc.edu/center/cana/) +Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://keck.usc.edu/cana/)

+ netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks

@@ -23,7 +24,7 @@ Stephanie R. Dyal, Kar-Hai Chu, Heather Wipfli, Kayo Fujimoto, *Diffusion of innovations theory applied to global tobacco control treaty ratification*, Social Science & Medicine, Volume 145, November 2015, Pages 89-97, ISSN 0277-9536 (available -[here](https://www.sciencedirect.com/science/article/pii/S027795361530143X)) +[here](https://doi.org/10.1016/j.socscimed.2015.10.001)). From the description: @@ -123,13 +124,8 @@ this directly as follows (using the 1.16.3.29 version): ## Tutorials Since starting netdiffuseR, we have done a couple of workshops at -Sunbelt and NASN. Here are the repositories: - -- Sunbelt 2018: https://usccana.github.io/netdiffuser-sunbelt2018/ - ([source code](https://github.com/USCCANA/netdiffuser-sunbelt2018)) -- NASN 2017: https://usccana.github.io/netdiffuser-nasn2017/ ([source - code](https://github.com/USCCANA/netdiffuser-nasn2017)) -- Sunbelt 2016: https://github.com/USCCANA/netdiffuser-sunbelt2016 +Sunbelt and NASN. Past and current workshops can be found at + ## Presentations @@ -249,11 +245,6 @@ diffnet <- rdiffnet(500, 20, seed.nodes = "random", rgraph.args = list(m=3), threshold.dist = function(x) runif(1, .3, .7)) -``` - - The option -copy.first- is set to TRUE. In this case, the first graph will be treated as a baseline, and thus, networks after T=1 will be replaced with T-1.TRUE - -``` r diffnet ``` @@ -398,24 +389,19 @@ par(oldpar) sessionInfo() ``` - R version 4.4.0 (2024-04-24) - Platform: x86_64-pc-linux-gnu - Running under: Ubuntu 22.04.4 LTS + R version 4.5.0 (2025-04-11) + Platform: aarch64-apple-darwin24.2.0 + Running under: macOS Sequoia 15.0.1 Matrix products: default - BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 - LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 + BLAS: /opt/homebrew/Cellar/openblas/0.3.29/lib/libopenblasp-r0.3.29.dylib + LAPACK: /opt/homebrew/Cellar/r/4.5.0/lib/R/lib/libRlapack.dylib; LAPACK version 3.12.1 locale: - [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C - [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 - [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 - [7] LC_PAPER=en_US.UTF-8 LC_NAME=C - [9] LC_ADDRESS=C LC_TELEPHONE=C - [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C + [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 - time zone: Etc/UTC - tzcode source: system (glibc) + time zone: America/Denver + tzcode source: internal attached base packages: [1] stats graphics grDevices utils datasets methods base @@ -424,21 +410,20 @@ sessionInfo() [1] netdiffuseR_1.23.0 loaded via a namespace (and not attached): - [1] Matrix_1.7-0 jsonlite_1.8.8 dplyr_1.1.4 - [4] compiler_4.4.0 tidyselect_1.2.1 Rcpp_1.0.12 - [7] networkLite_1.0.5 boot_1.3-30 yaml_2.3.8 + [1] Matrix_1.7-3 jsonlite_2.0.0 dplyr_1.1.4 + [4] compiler_4.5.0 tidyselect_1.2.1 Rcpp_1.0.14 + [7] networkLite_1.1.0 boot_1.3-31 yaml_2.3.10 [10] fastmap_1.2.0 lattice_0.22-6 coda_0.19-4.1 - [13] R6_2.5.1 generics_0.1.3 MatchIt_4.5.5 - [16] igraph_2.0.3 knitr_1.47 MASS_7.3-60.2 - [19] backports_1.5.0 tibble_3.2.1 statnet.common_4.9.0 - [22] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 - [25] xfun_0.44 viridisLite_0.4.2 cli_3.6.2 - [28] magrittr_2.0.3 network_1.18.2 digest_0.6.35 - [31] grid_4.4.0 lifecycle_1.0.4 vctrs_0.6.5 - [34] SparseM_1.83 sna_2.7-2 evaluate_0.24.0 - [37] glue_1.7.0 fansi_1.0.6 rmarkdown_2.27 - [40] tools_4.4.0 pkgconfig_2.0.3 networkDynamic_0.11.4 - [43] htmltools_0.5.8.1 + [13] R6_2.6.1 generics_0.1.4 MatchIt_4.7.2 + [16] igraph_2.1.4.9046 knitr_1.50 MASS_7.3-65 + [19] backports_1.5.0 tibble_3.3.0 statnet.common_4.12.0 + [22] pillar_1.10.2 rlang_1.1.6 xfun_0.52 + [25] viridisLite_0.4.2 cli_3.6.5 magrittr_2.0.3 + [28] network_1.19.0 digest_0.6.37 grid_4.5.0 + [31] lifecycle_1.0.4 vctrs_0.6.5 sna_2.8 + [34] evaluate_1.0.3 SparseM_1.84-2 glue_1.8.0 + [37] rmarkdown_2.29 tools_4.5.0 pkgconfig_2.0.3 + [40] networkDynamic_0.11.5 htmltools_0.5.8.1 ## To-do list diff --git a/README.qmd b/README.qmd index a552e63..f279f82 100644 --- a/README.qmd +++ b/README.qmd @@ -9,7 +9,7 @@ format: gfm [![](https://cranlogs.r-pkg.org/badges/grand-total/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1039317.svg)](https://doi.org/10.5281/zenodo.1039317) [![Dependencies](https://tinyverse.netlify.app/badge/netdiffuseR)](https://cran.r-project.org/package=netdiffuseR) -[![USC's Department of Preventive Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://pphs.usc.edu/center/cana/) +[![USC's Department of Preventive Medicine](https://raw.githubusercontent.com/USCbiostats/badges/master/tommy-uscprevmed-badge.svg)](https://keck.usc.edu/cana/)

netdiffuseR: Analysis of Diffusion and Contagion Processes on Networks

@@ -18,7 +18,7 @@ This package contains functions useful for analyzing network data for diffusion The package was developed as part of the paper Thomas W. Valente, Stephanie R. Dyal, Kar-Hai Chu, Heather Wipfli, Kayo Fujimoto, *Diffusion of innovations theory applied to global tobacco control treaty ratification*, Social Science & Medicine, Volume 145, November 2015, Pages 89-97, ISSN 0277-9536 -(available [here](https://www.sciencedirect.com/science/article/pii/S027795361530143X)) +(available [here](https://doi.org/10.1016/j.socscimed.2015.10.001)). From the description: @@ -96,11 +96,7 @@ For the case of windows and mac users, they can find binary versions of the pack ## Tutorials -Since starting netdiffuseR, we have done a couple of workshops at Sunbelt and NASN. Here are the repositories: - -* Sunbelt 2018: https://usccana.github.io/netdiffuser-sunbelt2018/ ([source code](https://github.com/USCCANA/netdiffuser-sunbelt2018)) -* NASN 2017: https://usccana.github.io/netdiffuser-nasn2017/ ([source code](https://github.com/USCCANA/netdiffuser-nasn2017)) -* Sunbelt 2016: https://github.com/USCCANA/netdiffuser-sunbelt2016 +Since starting netdiffuseR, we have done a couple of workshops at Sunbelt and NASN. Past and current workshops can be found at ## Presentations diff --git a/man/netdiffuseR.Rd b/man/netdiffuseR.Rd index 4229cfc..ce516f5 100644 --- a/man/netdiffuseR.Rd +++ b/man/netdiffuseR.Rd @@ -25,13 +25,8 @@ netdiffuseR was created with the support of grant R01 CA157577 from the National \section{Workshops and Tutorials}{ -Online you can find several learning resources: - -\itemize{ -\item Sunbelt 2016 \url{https://github.com/USCCANA/netdiffuser-sunbelt2016} -\item NASN 2017 \url{https://github.com/USCCANA/netdiffuser-nasn2017} -\item Sunbelt 2018 \url{https://github.com/USCCANA/netdiffuser-sunbelt2018} -} +Online you can find several learning resources, particularly, at the +netdiffuseR workshop website: . } \author{ diff --git a/man/rgraph_ba.Rd b/man/rgraph_ba.Rd index dad8239..ad84bd2 100644 --- a/man/rgraph_ba.Rd +++ b/man/rgraph_ba.Rd @@ -96,7 +96,7 @@ Albert-László Barabási, & Albert, R. (1999). Emergence of Scaling in Random Networks. Science, 286(5439), 509–512. \doi{10.1126/science.286.5439.509} Albert-László Barabási. (2016). Network Science: (1st ed.). Cambridge University Press. -Retrieved from \url{https://barabasi.com/book/network-science} +Retrieved from \url{https://networksciencebook.com} De Almeida, M. L., Mendes, G. A., Madras Viswanathan, G., & Da Silva, L. R. (2013). Scale-free homophilic network. European Physical Journal B, 86(2). diff --git a/man/rgraph_er.Rd b/man/rgraph_er.Rd index eaa3b3b..94195b2 100644 --- a/man/rgraph_er.Rd +++ b/man/rgraph_er.Rd @@ -71,7 +71,7 @@ rgraph_er(t=5) } \references{ Barabasi, Albert-Laszlo. "Network science book" Retrieved November 1 (2015) -\url{https://barabasi.com/book/network-science}. +\url{https://networksciencebook.com}. } \seealso{ Other simulation functions: From 0f6221a6cbcfa0de06ebbb0692df4bc170d2887a Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Thu, 12 Jun 2025 07:00:09 +0000 Subject: [PATCH 13/16] Using valgrind --- .github/workflows/r.yml | 11 +++++++++++ Makefile | 9 ++++----- src/plot.cpp | 8 ++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index ed9c1b2..8fb7ce7 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -26,6 +26,7 @@ jobs: - {os: macOS-latest, r: 'release'} - {os: ubuntu-latest, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} - {os: ubuntu-latest, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} + - {os: ubuntu-latest, r: 'devel', valgrind: true, rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true @@ -70,6 +71,7 @@ jobs: shell: Rscript {0} - name: Check + if: ${{ matrix.config.valgrind != true }} env: _R_CHECK_CRAN_INCOMING_REMOTE_: false run: | @@ -77,6 +79,15 @@ jobs: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "error", check_dir = "check") shell: Rscript {0} + - name: Check with Valgrind + if: ${{ matrix.config.valgrind == true }} + env: + _R_CHECK_CRAN_INCOMING_REMOTE_: false + run: | + options(crayon.enabled = TRUE) + rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", "--use-valgrind"), error_on = "error", check_dir = "check") + shell: Rscript {0} + - name: Upload check results if: failure() uses: actions/upload-artifact@main diff --git a/Makefile b/Makefile index eb2b1f3..832637c 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,17 @@ -VERSION:=$(shell Rscript -e 'x<-readLines("DESCRIPTION");cat(gsub(".+[:]\\\s*", "", x[grepl("^Vers", x)]))') - help: @echo "Makefile for netdiffuseR package" @echo "Usage:" @echo " make install - Install the package" + @echo " make build - Build the package source tarball" @echo " make check - Check the package with R CMD check" @echo " make checkv - Check the package with R CMD check using Valgrind" @echo " make clean - Clean up the build artifacts" @echo " make docs - Generate documentation" -install: netdiffuseR_$(VERSION).tar.gz - R CMD INSTALL netdiffuseR_$(VERSION).tar.gz +install: + R CMD INSTALL . -netdiffuseR_$(VERSION).tar.gz: */*.R +build: R CMD build . README.md: README.Rmd diff --git a/src/plot.cpp b/src/plot.cpp index 0a9ee8f..7c916cd 100644 --- a/src/plot.cpp +++ b/src/plot.cpp @@ -217,6 +217,14 @@ NumericMatrix edges_coords( LogicalVector curved = LogicalVector::create() ) { + // Checking sizes of x, toa, y, and vertex_cex + int n = x.n_rows; + if (n != y.n_rows) stop("-x- and -y- lengths do not coincide."); + if (n != toa.n_rows) stop("-x- and -toa- lengths do not coincide."); + if (n != vertex_cex.n_rows) stop("-x- and -vertex_cex- lengths do not coincide."); + if (graph.n_rows != graph.n_cols) stop("-graph- is not a square matrix."); + if (graph.n_rows != n) stop("-graph- does not have the same number of rows as -x-, -y-, and -toa-."); + // The output matrix has the following // - x0 and y0 // - x1 and y1 From dcc18d566f6e7a10aea15854665edca0a5996ab5 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Thu, 12 Jun 2025 01:17:02 -0600 Subject: [PATCH 14/16] Checking with valgrind --- .github/workflows/r.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 8fb7ce7..09f0024 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -79,6 +79,13 @@ jobs: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "error", check_dir = "check") shell: Rscript {0} + - name: Setup valgrind + if: ${{ matrix.config.valgrind == true }} + run: | + sudo apt-get update + sudo apt-get install -y valgrind --no-install-recommends + shell: bash + - name: Check with Valgrind if: ${{ matrix.config.valgrind == true }} env: From 152df785e4b1bcfbcb4f23b1344f6c158641aa80 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Thu, 12 Jun 2025 02:38:55 -0600 Subject: [PATCH 15/16] Adding citer properly --- R/options.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/options.R b/R/options.R index 19e78e2..cc045d7 100644 --- a/R/options.R +++ b/R/options.R @@ -18,6 +18,7 @@ #' @author George G. Vega Yon NULL .onLoad <- function(libname, pkgname) { + citation_on_load() options( diffnet.undirected=FALSE, diffnet.self=FALSE, From 247217c373d0f6d223d23f99b5b215909af5e15e Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Thu, 12 Jun 2025 09:44:55 -0600 Subject: [PATCH 16/16] Adding artifact for automatic build --- .github/workflows/r.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 09f0024..8472306 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -101,3 +101,14 @@ jobs: with: name: ${{ runner.os }}-r${{ matrix.config.r }}-results path: check + + - name: Build the package + if: ${{ matrix.config.os == 'ubuntu-latest' && (matrix.config.r == 'release' || matrix.config.r == 'devel') && (matrix.config.valgrind != true) }} + run: R CMD build . + + - uses: actions/upload-artifact@v4 + if: ${{ matrix.config.os == 'ubuntu-latest' && (matrix.config.r == 'release' || matrix.config.r == 'devel') && (matrix.config.valgrind != true) }} + with: + name: netdiffuseR-built-package-${{ matrix.config.os }}-${{ matrix.config.r }} + path: netdiffuseR_*.tar.gz + retention-days: 7