From 9d6228a33d9f262a68d2f7e046c1a598143ad284 Mon Sep 17 00:00:00 2001 From: gmatosferreira Date: Thu, 24 Sep 2026 14:37:55 +0100 Subject: [PATCH 1/5] #95 method to get trip speed profile --- DESCRIPTION | 2 +- NAMESPACE | 6 + R/get_trip_speed_profile.R | 308 ++++++++++++++++++++++++++++++++++ man/get_trip_speed_profile.Rd | 126 ++++++++++++++ man/rt_collect_protobuf.Rd | 1 + 5 files changed, 442 insertions(+), 1 deletion(-) create mode 100644 R/get_trip_speed_profile.R create mode 100644 man/get_trip_speed_profile.Rd diff --git a/DESCRIPTION b/DESCRIPTION index a8d6d50..8b8ec2b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Type: Package Package: GTFShift Title: Explore and Analyse General Transit Feed Specification (GTFS) Files with a Focus on Urban Mobility -Version: 1.0.0 +Version: 1.0.0.9000 Authors@R: c( person(c("Gonçalo", "F."), "Matos", , "goncaloafmatos@tecnico.pt", role = c("aut", "cre"), comment = c(ORCID = "0009-0001-3489-1732")), diff --git a/NAMESPACE b/NAMESPACE index 1cb466b..038bb21 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -12,6 +12,7 @@ export(get_network_extension) export(get_prioritisation_stats) export(get_route_frequency_hourly) export(get_stop_frequency_hourly) +export(get_trip_speed_profile) export(get_way_frequency_hourly) export(load_feed) export(multiline_to_sorted_linestring) @@ -55,7 +56,12 @@ importFrom(jsonlite, importFrom(purrr,map_dfr) importFrom(rlang,.data) importFrom(stats, + IQR, + median, + quantile, + sd, setNames, + var, weighted.mean ) importFrom(stringr, diff --git a/R/get_trip_speed_profile.R b/R/get_trip_speed_profile.R new file mode 100644 index 0000000..1a56d11 --- /dev/null +++ b/R/get_trip_speed_profile.R @@ -0,0 +1,308 @@ +#' Get trip speed profile from GTFS-RT speed estimates +#' +#' Computes aggregated speed metrics for trips or groups from the output of +#' \code{GTFShift::rt_average_speed()}. Aggregates by trip, route, and day +#' (customizable via the \code{by} parameter), calculating commercial speed +#' (distance between first and last updates along geometry divided by elapsed time), +#' alternative commercial speed (considering the 2nd and penultimate updates to avoid +#' terminal wait biases), and measures of centrality and spread for speed observations. +#' +#' @param rt_speed data.frame or sf data.frame. The result of +#' \code{GTFShift::rt_average_speed()}. Must contain at least the columns +#' \code{distance_along_geometry} and \code{timestamp}. +#' @param by Character vector (Default \code{c("trip_id", "route_id", "day")}). +#' Columns to aggregate by. If \code{"day"} is included in \code{by} but not present +#' in \code{rt_speed}, it is automatically derived from the \code{timestamp} column. +#' Set to \code{NULL} or \code{character(0)} to compute metrics across the entire dataset. +#' @param dist_col Character (Default \code{"distance_along_geometry"}). Column name +#' present in \code{rt_speed} representing cumulative distance along geometry (in meters). +#' @param speed_col Character (Default \code{"speed_kmh"}). Column name present in +#' \code{rt_speed} representing estimated speed between consecutive updates (in km/h). +#' @param time_col Character (Default \code{"timestamp"}). Column name present in +#' \code{rt_speed} representing update timestamps (numeric epoch, POSIXct, or Date). +#' +#' @details +#' For each group defined by \code{by} (by default, each unique combination of +#' \code{trip_id}, \code{route_id}, and \code{day}), observations are ordered +#' chronologically by \code{timestamp}. +#' +#' Let \eqn{\{(d_i, t_i)\}_{i=1}^n} denote the ordered sequence of updates, where +#' \eqn{d_i} is the distance along geometry (meters) and \eqn{t_i} is the timestamp (seconds). +#' +#' \strong{Commercial speed} is calculated as the total distance traveled between the +#' first and last updates divided by the elapsed time: +#' \deqn{v_{\mathrm{commercial}} = \frac{|d_n - d_1|}{1000} \div \frac{t_n - t_1}{3600}} +#' If \eqn{n < 2} or \eqn{t_n \le t_1}, \code{commercial_speed} is \code{NA}. +#' +#' \strong{Alternative commercial speed} (\code{commercial_speed_alt}) uses the 2nd and +#' penultimate (\eqn{n-1}) observations to eliminate potential dwell times or layovers at +#' the terminal stops: +#' \deqn{v_{\mathrm{commercial\_alt}} = \frac{|d_{n-1} - d_2|}{1000} \div \frac{t_{n-1} - t_2}{3600}} +#' If \eqn{n < 4} or \eqn{t_{n-1} \le t_2}, \code{commercial_speed_alt} is \code{NA}. +#' +#' If \code{by} does not include \code{trip_id} (e.g., aggregating at route or day level), +#' \code{commercial_speed} and \code{commercial_speed_alt} are computed per trip and averaged +#' across trips within each group. +#' +#' \strong{Measures of centrality and spread} are calculated from all valid (non-NA, finite) +#' speed observations in \code{speed_kmh} for each group: +#' \describe{ +#' \item{speed_avg}{Arithmetic mean speed (km/h).} +#' \item{speed_median}{Median speed (km/h).} +#' \item{speed_sd}{Standard deviation of speeds (km/h).} +#' \item{speed_var}{Variance of speeds (km/h)^2.} +#' \item{speed_min}{Minimum observed speed (km/h).} +#' \item{speed_max}{Maximum observed speed (km/h).} +#' \item{speed_p15}{15th percentile speed (km/h).} +#' \item{speed_p25}{25th percentile (1st quartile) speed (km/h).} +#' \item{speed_p75}{75th percentile (3rd quartile) speed (km/h).} +#' \item{speed_p85}{85th percentile speed (km/h).} +#' \item{speed_iqr}{Interquartile range (speed_p75 - speed_p25) (km/h).} +#' \item{speed_count}{Count of valid speed observations.} +#' \item{n_updates}{Total number of position updates in the group.} +#' } +#' +#' In addition, an attribute \code{"global_summary"} is attached to the returned data frame, +#' providing the same metrics evaluated over the entire input dataset. +#' +#' @returns data.frame. Aggregated speed profile metrics with one row per group. +#' +#' @examples +#' \donttest{ +#' # Get GTFS-RT data collection and route geometries +#' rt_collect_file <- system.file( +#' "extdata/samples", "gtfs_rt_sample_tcb_4_4-CS-TERM.csv", package = "GTFShift" +#' ) +#' rt_collection <- read.csv(rt_collect_file) |> +#' sf::st_as_sf(coords = c("longitude", "latitude"), crs = 4326) |> +#' dplyr::select(-speed) +#' +#' osm_routes <- sf::st_read( +#' system.file("extdata/samples", "osm_routes_tcb.gpkg", package = "GTFShift"), +#' quiet = TRUE +#' ) |> +#' dplyr::filter(route_id %in% rt_collection$route_id) |> +#' dplyr::mutate(geom = GTFShift::multiline_to_sorted_linestring(geom, metric_crs = 3763)) +#' +#' # Compute speeds with rt_average_speed() +#' speed <- GTFShift::rt_average_speed( +#' rt_collection = rt_collection, +#' trips_geometries = osm_routes, +#' rt_collection_trips_geometries_match_col = "route_id", +#' metric_crs = 3763 +#' ) +#' +#' # Compute trip speed profile +#' profile <- GTFShift::get_trip_speed_profile(speed) +#' head(profile) +#' +#' # Customize aggregation (e.g. by route and day) +#' route_profile <- GTFShift::get_trip_speed_profile(speed, by = c("route_id", "day")) +#' head(route_profile) +#' } +#' +#' @seealso \code{GTFShift::rt_average_speed()} +#' +#' @import dplyr +#' @importFrom stats median sd var quantile IQR +#' @importFrom rlang .data +#' +#' @export +get_trip_speed_profile <- function( + rt_speed, + by = c("trip_id", "route_id", "day"), + dist_col = "distance_along_geometry", + speed_col = "speed_kmh", + time_col = "timestamp" +) { + # 0. Input validations + if (!is.data.frame(rt_speed)) { + stop("rt_speed must be a data.frame or sf object") + } + + # Drop sf geometry if present for aggregation performance + if (inherits(rt_speed, "sf")) { + rt_speed <- sf::st_drop_geometry(rt_speed) + } + rt_speed <- dplyr::ungroup(rt_speed) + + # Check required columns + required_cols <- c(dist_col, time_col) + missing_cols <- setdiff(required_cols, colnames(rt_speed)) + if (length(missing_cols) > 0) { + stop(paste("rt_speed is missing required column(s):", paste(missing_cols, collapse = ", "))) + } + + # 1. Handle "day" column derivation if included in 'by' but absent in rt_speed + if (!is.null(by) && "day" %in% by && !"day" %in% colnames(rt_speed)) { + if (is.numeric(rt_speed[[time_col]])) { + rt_speed$day <- as.Date(as.POSIXct(rt_speed[[time_col]], origin = "1970-01-01", tz = "UTC")) + } else { + rt_speed$day <- as.Date(rt_speed[[time_col]]) + } + } + + # 2. Validate / resolve grouping columns + if (!is.null(by) && length(by) > 0) { + if (missing(by)) { + # When default 'by' is used, keep only columns that exist in rt_speed + by <- intersect(by, colnames(rt_speed)) + if (length(by) == 0) { + stop("None of the default grouping columns ('trip_id', 'route_id', 'day') were found in rt_speed.") + } + } else { + missing_by <- setdiff(by, colnames(rt_speed)) + if (length(missing_by) > 0) { + stop(paste("The following grouping columns specified in 'by' were not found in rt_speed:", + paste(missing_by, collapse = ", "))) + } + } + } + + # Helper: compute time difference in seconds between two timestamps + get_time_diff_sec <- function(t_start, t_end) { + if (is.na(t_start) || is.na(t_end)) return(NA_real_) + if (inherits(t_start, "POSIXt") || inherits(t_start, "Date")) { + return(as.numeric(difftime(t_end, t_start, units = "secs"))) + } + if (is.numeric(t_start) && is.numeric(t_end)) { + return(as.numeric(t_end - t_start)) + } + t1 <- suppressWarnings(as.POSIXct(t_start)) + t2 <- suppressWarnings(as.POSIXct(t_end)) + if (!is.na(t1) && !is.na(t2)) { + return(as.numeric(difftime(t2, t1, units = "secs"))) + } + return(as.numeric(t_end - t_start)) + } + + # Helper: compute commercial speed in km/h + compute_speed_kmh <- function(dist_m, time_sec) { + if (is.na(dist_m) || is.na(time_sec) || time_sec <= 0) { + return(NA_real_) + } + round((dist_m / 1000) / (time_sec / 3600), 2) + } + + # Helper: compute commercial speeds for a single sequence of updates + compute_single_trip_commercial_speeds <- function(trip_df) { + trip_df <- trip_df[order(trip_df[[time_col]]), , drop = FALSE] + n_trip <- nrow(trip_df) + + # First and last updates + if (n_trip >= 2) { + dt <- get_time_diff_sec(trip_df[[time_col]][1], trip_df[[time_col]][n_trip]) + dd <- abs(trip_df[[dist_col]][n_trip] - trip_df[[dist_col]][1]) + comm_speed <- compute_speed_kmh(dd, dt) + } else { + comm_speed <- NA_real_ + } + + # 2nd and penultimate updates + if (n_trip >= 4) { + dt_alt <- get_time_diff_sec(trip_df[[time_col]][2], trip_df[[time_col]][n_trip - 1]) + dd_alt <- abs(trip_df[[dist_col]][n_trip - 1] - trip_df[[dist_col]][2]) + comm_speed_alt <- compute_speed_kmh(dd_alt, dt_alt) + } else { + comm_speed_alt <- NA_real_ + } + + list(commercial_speed = comm_speed, commercial_speed_alt = comm_speed_alt) + } + + # Helper: compute full profile for a group + compute_profile <- function(group_df) { + group_df <- group_df[order(group_df[[time_col]]), , drop = FALSE] + n <- nrow(group_df) + + # Commercial speed calculations + if ("trip_id" %in% colnames(group_df) && length(unique(group_df$trip_id)) > 1) { + # If group contains multiple trips (e.g. grouped by route_id/day without trip_id), + # compute commercial speeds per trip and take average + trip_list <- split(group_df, group_df$trip_id) + trip_res <- lapply(trip_list, compute_single_trip_commercial_speeds) + comm_vec <- vapply(trip_res, function(x) x$commercial_speed, numeric(1)) + comm_alt_vec <- vapply(trip_res, function(x) x$commercial_speed_alt, numeric(1)) + + commercial_speed <- if (any(!is.na(comm_vec))) round(mean(comm_vec, na.rm = TRUE), 2) else NA_real_ + commercial_speed_alt <- if (any(!is.na(comm_alt_vec))) round(mean(comm_alt_vec, na.rm = TRUE), 2) else NA_real_ + } else { + # Single trip within group (standard case) + trip_res <- compute_single_trip_commercial_speeds(group_df) + commercial_speed <- trip_res$commercial_speed + commercial_speed_alt <- trip_res$commercial_speed_alt + } + + # Measures of centrality and spread for speed observations + if (speed_col %in% colnames(group_df)) { + raw_speeds <- group_df[[speed_col]] + valid_speeds <- raw_speeds[!is.na(raw_speeds) & is.finite(raw_speeds)] + } else { + valid_speeds <- numeric(0) + } + + if (length(valid_speeds) > 0) { + speed_avg <- round(mean(valid_speeds), 2) + speed_median <- round(stats::median(valid_speeds), 2) + speed_sd <- if (length(valid_speeds) > 1) round(stats::sd(valid_speeds), 2) else NA_real_ + speed_var <- if (length(valid_speeds) > 1) round(stats::var(valid_speeds), 2) else NA_real_ + speed_min <- round(min(valid_speeds), 2) + speed_max <- round(max(valid_speeds), 2) + speed_p15 <- round(as.numeric(stats::quantile(valid_speeds, probs = 0.15, names = FALSE)), 2) + speed_p25 <- round(as.numeric(stats::quantile(valid_speeds, probs = 0.25, names = FALSE)), 2) + speed_p75 <- round(as.numeric(stats::quantile(valid_speeds, probs = 0.75, names = FALSE)), 2) + speed_p85 <- round(as.numeric(stats::quantile(valid_speeds, probs = 0.85, names = FALSE)), 2) + speed_iqr <- round(stats::IQR(valid_speeds), 2) + speed_count <- length(valid_speeds) + } else { + speed_avg <- NA_real_ + speed_median <- NA_real_ + speed_sd <- NA_real_ + speed_var <- NA_real_ + speed_min <- NA_real_ + speed_max <- NA_real_ + speed_p15 <- NA_real_ + speed_p25 <- NA_real_ + speed_p75 <- NA_real_ + speed_p85 <- NA_real_ + speed_iqr <- NA_real_ + speed_count <- 0L + } + + data.frame( + commercial_speed = commercial_speed, + commercial_speed_alt = commercial_speed_alt, + speed_avg = speed_avg, + speed_median = speed_median, + speed_sd = speed_sd, + speed_var = speed_var, + speed_min = speed_min, + speed_max = speed_max, + speed_p15 = speed_p15, + speed_p25 = speed_p25, + speed_p75 = speed_p75, + speed_p85 = speed_p85, + speed_iqr = speed_iqr, + speed_count = speed_count, + n_updates = n, + stringsAsFactors = FALSE + ) + } + + # 3. Compute speed profile + if (is.null(by) || length(by) == 0) { + result <- compute_profile(rt_speed) + } else { + result <- rt_speed |> + dplyr::group_by(dplyr::across(dplyr::all_of(by))) |> + dplyr::group_modify(function(group_df, keys) { + compute_profile(group_df) + }) |> + dplyr::ungroup() + } + + # Attach global summary across the entire dataset as attribute + attr(result, "global_summary") <- compute_profile(rt_speed) + + return(result) +} diff --git a/man/get_trip_speed_profile.Rd b/man/get_trip_speed_profile.Rd new file mode 100644 index 0000000..586623e --- /dev/null +++ b/man/get_trip_speed_profile.Rd @@ -0,0 +1,126 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/get_trip_speed_profile.R +\name{get_trip_speed_profile} +\alias{get_trip_speed_profile} +\title{Get trip speed profile from GTFS-RT speed estimates} +\usage{ +get_trip_speed_profile( + rt_speed, + by = c("trip_id", "route_id", "day"), + dist_col = "distance_along_geometry", + speed_col = "speed_kmh", + time_col = "timestamp" +) +} +\arguments{ +\item{rt_speed}{data.frame or sf data.frame. The result of +\code{GTFShift::rt_average_speed()}. Must contain at least the columns +\code{distance_along_geometry} and \code{timestamp}.} + +\item{by}{Character vector (Default \code{c("trip_id", "route_id", "day")}). +Columns to aggregate by. If \code{"day"} is included in \code{by} but not present +in \code{rt_speed}, it is automatically derived from the \code{timestamp} column. +Set to \code{NULL} or \code{character(0)} to compute metrics across the entire dataset.} + +\item{dist_col}{Character (Default \code{"distance_along_geometry"}). Column name +present in \code{rt_speed} representing cumulative distance along geometry (in meters).} + +\item{speed_col}{Character (Default \code{"speed_kmh"}). Column name present in +\code{rt_speed} representing estimated speed between consecutive updates (in km/h).} + +\item{time_col}{Character (Default \code{"timestamp"}). Column name present in +\code{rt_speed} representing update timestamps (numeric epoch, POSIXct, or Date).} +} +\value{ +data.frame. Aggregated speed profile metrics with one row per group. +} +\description{ +Computes aggregated speed metrics for trips or groups from the output of +\code{GTFShift::rt_average_speed()}. Aggregates by trip, route, and day +(customizable via the \code{by} parameter), calculating commercial speed +(distance between first and last updates along geometry divided by elapsed time), +alternative commercial speed (considering the 2nd and penultimate updates to avoid +terminal wait biases), and measures of centrality and spread for speed observations. +} +\details{ +For each group defined by \code{by} (by default, each unique combination of +\code{trip_id}, \code{route_id}, and \code{day}), observations are ordered +chronologically by \code{timestamp}. + +Let \eqn{\{(d_i, t_i)\}_{i=1}^n} denote the ordered sequence of updates, where +\eqn{d_i} is the distance along geometry (meters) and \eqn{t_i} is the timestamp (seconds). + +\strong{Commercial speed} is calculated as the total distance traveled between the +first and last updates divided by the elapsed time: +\deqn{v_{\mathrm{commercial}} = \frac{|d_n - d_1|}{1000} \div \frac{t_n - t_1}{3600}} +If \eqn{n < 2} or \eqn{t_n \le t_1}, \code{commercial_speed} is \code{NA}. + +\strong{Alternative commercial speed} (\code{commercial_speed_alt}) uses the 2nd and +penultimate (\eqn{n-1}) observations to eliminate potential dwell times or layovers at +the terminal stops: +\deqn{v_{\mathrm{commercial\_alt}} = \frac{|d_{n-1} - d_2|}{1000} \div \frac{t_{n-1} - t_2}{3600}} +If \eqn{n < 4} or \eqn{t_{n-1} \le t_2}, \code{commercial_speed_alt} is \code{NA}. + +If \code{by} does not include \code{trip_id} (e.g., aggregating at route or day level), +\code{commercial_speed} and \code{commercial_speed_alt} are computed per trip and averaged +across trips within each group. + +\strong{Measures of centrality and spread} are calculated from all valid (non-NA, finite) +speed observations in \code{speed_kmh} for each group: +\describe{ + \item{speed_avg}{Arithmetic mean speed (km/h).} + \item{speed_median}{Median speed (km/h).} + \item{speed_sd}{Standard deviation of speeds (km/h).} + \item{speed_var}{Variance of speeds (km/h)^2.} + \item{speed_min}{Minimum observed speed (km/h).} + \item{speed_max}{Maximum observed speed (km/h).} + \item{speed_p15}{15th percentile speed (km/h).} + \item{speed_p25}{25th percentile (1st quartile) speed (km/h).} + \item{speed_p75}{75th percentile (3rd quartile) speed (km/h).} + \item{speed_p85}{85th percentile speed (km/h).} + \item{speed_iqr}{Interquartile range (speed_p75 - speed_p25) (km/h).} + \item{speed_count}{Count of valid speed observations.} + \item{n_updates}{Total number of position updates in the group.} +} + +In addition, an attribute \code{"global_summary"} is attached to the returned data frame, +providing the same metrics evaluated over the entire input dataset. +} +\examples{ +\donttest{ +# Get GTFS-RT data collection and route geometries +rt_collect_file <- system.file( + "extdata/samples", "gtfs_rt_sample_tcb_4_4-CS-TERM.csv", package = "GTFShift" +) +rt_collection <- read.csv(rt_collect_file) |> + sf::st_as_sf(coords = c("longitude", "latitude"), crs = 4326) |> + dplyr::select(-speed) + +osm_routes <- sf::st_read( + system.file("extdata/samples", "osm_routes_tcb.gpkg", package = "GTFShift"), + quiet = TRUE +) |> + dplyr::filter(route_id \%in\% rt_collection$route_id) |> + dplyr::mutate(geom = GTFShift::multiline_to_sorted_linestring(geom, metric_crs = 3763)) + +# Compute speeds with rt_average_speed() +speed <- GTFShift::rt_average_speed( + rt_collection = rt_collection, + trips_geometries = osm_routes, + rt_collection_trips_geometries_match_col = "route_id", + metric_crs = 3763 +) + +# Compute trip speed profile +profile <- GTFShift::get_trip_speed_profile(speed) +head(profile) + +# Customize aggregation (e.g. by route and day) +route_profile <- GTFShift::get_trip_speed_profile(speed, by = c("route_id", "day")) +head(route_profile) +} + +} +\seealso{ +\code{GTFShift::rt_average_speed()} +} diff --git a/man/rt_collect_protobuf.Rd b/man/rt_collect_protobuf.Rd index f0e4154..bab46fb 100644 --- a/man/rt_collect_protobuf.Rd +++ b/man/rt_collect_protobuf.Rd @@ -61,4 +61,5 @@ head( dplyr::select("vehicle.trip.trip_id", "vehicle.position.latitude", "vehicle.position.longitude") ) } + } From 0960ca933807216ebb9acce6ec7accb0104c3429 Mon Sep 17 00:00:00 2001 From: gmatosferreira Date: Thu, 24 Sep 2026 15:53:06 +0100 Subject: [PATCH 2/5] #95 method to get trip speed profile metrics extended with timestamps --- R/get_trip_speed_profile.R | 10 ++++++++++ man/get_trip_speed_profile.Rd | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/R/get_trip_speed_profile.R b/R/get_trip_speed_profile.R index 1a56d11..11350b9 100644 --- a/R/get_trip_speed_profile.R +++ b/R/get_trip_speed_profile.R @@ -47,6 +47,10 @@ #' \strong{Measures of centrality and spread} are calculated from all valid (non-NA, finite) #' speed observations in \code{speed_kmh} for each group: #' \describe{ +#' \item{timestamp_min}{Earliest timestamp in the trip/group.} +#' \item{timestamp_max}{Latest timestamp in the trip/group.} +#' \item{commercial_speed}{Commercial speed between first and last update (km/h).} +#' \item{commercial_speed_alt}{Alternative commercial speed between 2nd and penultimate update (km/h).} #' \item{speed_avg}{Arithmetic mean speed (km/h).} #' \item{speed_median}{Median speed (km/h).} #' \item{speed_sd}{Standard deviation of speeds (km/h).} @@ -215,6 +219,10 @@ get_trip_speed_profile <- function( group_df <- group_df[order(group_df[[time_col]]), , drop = FALSE] n <- nrow(group_df) + # Time boundaries to locate trip/group in time + timestamp_min <- if (n > 0) group_df[[time_col]][1] else NA + timestamp_max <- if (n > 0) group_df[[time_col]][n] else NA + # Commercial speed calculations if ("trip_id" %in% colnames(group_df) && length(unique(group_df$trip_id)) > 1) { # If group contains multiple trips (e.g. grouped by route_id/day without trip_id), @@ -270,6 +278,8 @@ get_trip_speed_profile <- function( } data.frame( + timestamp_min = timestamp_min, + timestamp_max = timestamp_max, commercial_speed = commercial_speed, commercial_speed_alt = commercial_speed_alt, speed_avg = speed_avg, diff --git a/man/get_trip_speed_profile.Rd b/man/get_trip_speed_profile.Rd index 586623e..dcba719 100644 --- a/man/get_trip_speed_profile.Rd +++ b/man/get_trip_speed_profile.Rd @@ -68,6 +68,10 @@ across trips within each group. \strong{Measures of centrality and spread} are calculated from all valid (non-NA, finite) speed observations in \code{speed_kmh} for each group: \describe{ + \item{timestamp_min}{Earliest timestamp in the trip/group.} + \item{timestamp_max}{Latest timestamp in the trip/group.} + \item{commercial_speed}{Commercial speed between first and last update (km/h).} + \item{commercial_speed_alt}{Alternative commercial speed between 2nd and penultimate update (km/h).} \item{speed_avg}{Arithmetic mean speed (km/h).} \item{speed_median}{Median speed (km/h).} \item{speed_sd}{Standard deviation of speeds (km/h).} From 243f9804f93e48806172f11941fb791d6da88387 Mon Sep 17 00:00:00 2001 From: gmatosferreira Date: Fri, 25 Sep 2026 13:52:33 +0100 Subject: [PATCH 3/5] #95 rt_extend_prioritisation extended to return p85 --- R/rt_extend_prioritisation.R | 4 ++++ man/rt_extend_prioritisation.Rd | 2 ++ tests/testthat/test-rt_extend_prioritisation.R | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/R/rt_extend_prioritisation.R b/R/rt_extend_prioritisation.R index 6c67d4b..c50446c 100644 --- a/R/rt_extend_prioritisation.R +++ b/R/rt_extend_prioritisation.R @@ -20,8 +20,10 @@ #' \describe{ #' \item{speed_avg}{The average speed of the vehicles on the way.} #' \item{speed_median}{The median speed of the vehicles on the way.} +#' \item{speed_p15}{The 15th percentile speed of the vehicles on the way.} #' \item{speed_p25}{The 25th percentile speed of the vehicles on the way.} #' \item{speed_p75}{The 75th percentile speed of the vehicles on the way.} +#' \item{speed_p85}{The 85th percentile speed of the vehicles on the way.} #' \item{speed_count}{The number of speed observations on the way.} #' } #' @@ -172,8 +174,10 @@ rt_extend_prioritisation <- function( dplyr::summarise( speed_avg = mean(.data[[rt_attr_speed]], na.rm = TRUE), speed_median = stats::median(.data[[rt_attr_speed]], na.rm = TRUE), + speed_p15 = stats::quantile(.data[[rt_attr_speed]], probs = 0.15, na.rm = TRUE), speed_p25 = stats::quantile(.data[[rt_attr_speed]], probs = 0.25, na.rm = TRUE), speed_p75 = stats::quantile(.data[[rt_attr_speed]], probs = 0.75, na.rm = TRUE), + speed_p85 = stats::quantile(.data[[rt_attr_speed]], probs = 0.85, na.rm = TRUE), speed_count = dplyr::n() ) |> dplyr::ungroup()) diff --git a/man/rt_extend_prioritisation.Rd b/man/rt_extend_prioritisation.Rd index a1508ff..3df5ac0 100644 --- a/man/rt_extend_prioritisation.Rd +++ b/man/rt_extend_prioritisation.Rd @@ -28,8 +28,10 @@ sf data.frame. Extended lane prioritisation with the following columns: \describe{ \item{speed_avg}{The average speed of the vehicles on the way.} \item{speed_median}{The median speed of the vehicles on the way.} + \item{speed_p15}{The 15th percentile speed of the vehicles on the way.} \item{speed_p25}{The 25th percentile speed of the vehicles on the way.} \item{speed_p75}{The 75th percentile speed of the vehicles on the way.} + \item{speed_p85}{The 85th percentile speed of the vehicles on the way.} \item{speed_count}{The number of speed observations on the way.} } } diff --git a/tests/testthat/test-rt_extend_prioritisation.R b/tests/testthat/test-rt_extend_prioritisation.R index 270f069..9e12891 100644 --- a/tests/testthat/test-rt_extend_prioritisation.R +++ b/tests/testthat/test-rt_extend_prioritisation.R @@ -25,13 +25,15 @@ test_that("rt_extend_prioritisation extends lane prioritisation with speed metri res <- GTFShift::rt_extend_prioritisation(lanes_sf, rt_points, metric_crs = 3857) expect_s3_class(res, "sf") - expect_contains(names(res), c("speed_avg", "speed_median", "speed_p25", "speed_p75", "speed_count")) + expect_contains(names(res), c("speed_avg", "speed_median", "speed_p15", "speed_p25", "speed_p75", "speed_p85", "speed_count")) # For w1: speeds 10 and 20 (point 3 at 80 is STOPPED_AT so filtered out) expect_equal(res$speed_avg[res$way_osm_id == "w1"], 15) expect_equal(res$speed_median[res$way_osm_id == "w1"], 15) + expect_equal(unname(res$speed_p15[res$way_osm_id == "w1"]), 11.5) expect_equal(unname(res$speed_p25[res$way_osm_id == "w1"]), 12.5) expect_equal(unname(res$speed_p75[res$way_osm_id == "w1"]), 17.5) + expect_equal(unname(res$speed_p85[res$way_osm_id == "w1"]), 18.5) expect_equal(res$speed_count[res$way_osm_id == "w1"], 2) # For w2: speed 40 From 4eb004d56a299a8786af3ef03d8f822c6db5b33d Mon Sep 17 00:00:00 2001 From: gmatosferreira Date: Tue, 29 Sep 2026 07:54:39 +0100 Subject: [PATCH 4/5] #95 tests for get_trip_speed_profile and extended rt_extend_prioritisation --- .../osmextract_lisbon_highways_sample.gpkg | Bin 0 -> 790528 bytes .../samples/osmextract_tcb_network.gpkg | Bin 0 -> 475136 bytes tests/testthat/test-get_trip_speed_profile.R | 493 ++++++++++++++++++ .../testthat/test-rt_extend_prioritisation.R | 58 +++ 4 files changed, 551 insertions(+) create mode 100644 inst/extdata/samples/osmextract_lisbon_highways_sample.gpkg create mode 100644 inst/extdata/samples/osmextract_tcb_network.gpkg create mode 100644 tests/testthat/test-get_trip_speed_profile.R diff --git a/inst/extdata/samples/osmextract_lisbon_highways_sample.gpkg b/inst/extdata/samples/osmextract_lisbon_highways_sample.gpkg new file mode 100644 index 0000000000000000000000000000000000000000..c9c1528604b301c258bdbb008168809f8b392350 GIT binary patch literal 790528 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 L- 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
    xTLIKHP?Ga_)v9=Gc~nsN*!d zs-xYJXtu#V0aqw_YTe^7XmqqV@RgE3Hw^s|JMmkaBGtOU$*o;0hQ+mpD%AIyBoij{FJP~oxB1rjq`rUSaA*W zYmTt5`LEUYbq167G)Z{y#0z`wN7Z-kX&~5JN@EEbfd^h3{a)7&n3$a1wx$6S_(psK zy-^#kM^cy=?NZVVAv1+Ey`tJp?u2FtwVf>lrOA`I=-$DB(?zA}eDt|zV*7{enzCuw z>&lQl^HI@O*6<*UCvOMixE1pDW1O+z)N$iX|Qvo^SD7C1lf{`)J88!MJXk^5e8% z&}6^o#zt0>(xwuDCo&?_rWh;brA==FYhfhoZfRqvUR|;|(T>Pu52YeDSxnL$kcJ>$ zM+Sn1S2*AjZ?2BeYlZw;oxX)ct!2YmBD~z4?GAX%VJmZ_ngM&F2>V+csaB||=JdQR z8Khm>&;t-2cKpZBNJM=*nYEAT)yI}lR8myy+|F@@W@td~JwvF*NL1=;t0_iiHR1hS z^_=(lA;swp*{(MEm92@-f&^Q=+ASsl*9TT;h8RJDueI9VyT6nal?XhM5t$Ulif&%o zx!p-I-EH)1Bg9s~CMFpEihPLQ5%lS_Ih%n#^KZxd&bt$?Rz+8pzZxuU@H%A4axee% zBXwUXZM$^oX{Jvy@G&AIJkX?(;U7#848=gqdA_vjEa2x3%vewDVEBf7BhatfpfRZb zhwWL&y5MUuF6dyU#9e(vgy62Y(di8+O&~Bm1wYimQl<~p2p))H%@2k56ZHR5WdbVM zg7*h)EpraPmi*jdE8t3YHWhe|LUjRT|*fjpRW6`+Q`D5AA8ekcZJ~8o3 zn3U%*A`h%xnQR@72|>CK)-?iR^f$kpi~~Gq#I}#`1+2Uw^BmFPT5@JO5-e>Lp8ceZVpSABy*&Xwu~ol)PFoPy+MO?6AmeqmNysU3yX~=;uim+ zoJ~OLKDM0)S^R4kvZmABs9LdUcZJ>C;9`t;ae2ePL8*f;AH7>_8A!GrM&NQJLfSD>%oo8_wv56Cw* zK*7=agDOG5saA6v&H|3j0_iv;gw6ZLlQwXlDsSo-tBoUNcyypOg979&LJ1i}(%2m` z`u1^Kv8Vo;u6y}LAoLqqWTvQ8uklazT9mdjhN=aJuRmE;&gY9ae;1ZuS{-MI;Q3W_ z8x+eMag)0@a-XO>5ZVuS!)u$gTyvGnERyG!5gB39zI_WG#DqG|(xXoT(b4aroS}ft zsk5Ix518sC4+31Ha`}Wm0rLa+#(J3cO-5~mXf?g%yA#TMy>jxGM=%t&RblR3&PIN| zoLM5@;*NuJ-rc^|jJ4#>gX<1`IY9R1Fai%`s^*`M$Ap99pP506f2vdV`Xsi zyQlb!v>|Sbat$ccz>Vir9aPO@?V+6=s&G@Aa0KPizb$-jYfra0%$atfpI%ICOiy0~ zhZR9NX1X`ATRhr~-ikIKya}*`5<u@kp^Qg&M*CP`6u%VE{{7gA`k2zSl!YT6AtC&4BrF9D{uFo+XV2p!%?&b z@ck1a>o*3xzkj>!9{_d^c;3=?PfEQJN_e6cb=f)37 zdl#_s1A)D1B6J3|L97dcU_FX=OQ6E*-ZrFEt?kr;z=)3ad!TmyE~=DM!0$Y2wEB@BW-t<)F6qB)Y-i zqz7w#2>73YD~tr^{;+cyttvlY@z_~oJ_3BA>t?iT2t?%#cw1@xZmW`=LR+C^r)0Laj7zuK9cD-COfsWb zVMS@3XvrkgTl>s$Bg8+BNVlq+>N}bfNTP14@AN=MihXP|KNt|{(UcFewu7()+YH^* zA1ZEcO(ZPZDY@O8^#uLSa{zgYr_ZjzJLTVHj&H(2@Je}TX{mNUe2NoU*eRrZGa?VX z{=uiYVVKyY>vKmA0CC^PE63gsxapG%caV&bxoXnB=777^oYm%Iz{&@Bc9PNPXD88d zME_$y6{f+*?RE;`wSC(%_Ol=(qOaAS;pw~JxnRSIMggB3hg3V1xe;S5DOR-Gl%MvV z<>lw#HUhHHnA0z&=Zm;aHaO?K6{}-!T7t7K3N6PeM)$gJCFbhM32}KvLp$GWgIqnW7ylp0WH?#n6Y|78PH1FGnPmj(?kvjD%A{M@V+$Z6!f7oucZL%D`FvjXoaR;=FKy=P`y zkZ2R*_$kLgvaG2I2P8#kFd`4ETp3es6DDl_?dQd1AWCXp4?4U6aI2t(=g1(cyrEvL z(VC1Arf@$8V!<)Hx0wuTE1RmgtJV76BRBKQvUE-22 zNcR^F8lag3hc%rI(}IBPabAjE`q->A7y(54LK?c}h}H_WPI#*cbTKE}k%`$NLSMu#4l^8@1zQZR?Vgb+O8orpcJsqo)>Ktbvm*h%R#3gqIde0z_fb(nuqi0w z>L_r`_5(`~+mCf#8s`BJN|s$d?Mk#4ah62}!x zPuHb8$Z4JKamV&REZ79caa+Ys{}6hw=hk%AlG@!oJ7|`jchI_H8q~dBk4+c1Dy$x&uXpFAf@R4wvlc(Yk?>U`R?gkLjAuP z=he-yju+dlNsBS9tFxxy((C1}P18cqmjb8t;+^T}e0*9X#Gl1qthrT>T!p)ate!Cz zXWHDS*SMzg*+wosM&Nhy;exNQwZ3@@uBg9^(V!4Ix_Kdvs_o(=5@R1-(8CT#WfdAv4shQ3ig0y6kmAIQK%KZNfFvQnG0MFJk zbpmVPIw!g1%$MZ6f4H-#Aj!O|HypYPY-b}OoD7W%2bay>d|O88IEqkPG#7%+-4SUoWj@7b|UlB?3=m zM9=m&M)(o!?kKyL$lZ!*@IkS$1_&VpcIVxoZ_)0{s*G5*jm^1AO@+<7`PzNk{<%GQ z8&sK#JD#mTMI36r67&61z*py9ICdGTjq-*%qcL2o)f?1)=>Ixx1SP7C$8ju}h;N!h z^JW|>|4pMQR$DH+hO?S*q-bUJGqW4&c5h}3@mt^2W|@<(@Ct=oMS!hB zhc4=V%Lw|)2H69hcL_lniiL^hh2i)6y-V$Kt*|h2n>p$o#Deew2@69(8jQ#Tb7pOQ zW;7<0Z=SdI9435neE-*N0H^k;xaTO~#CgAuR|B^Ha%$dZfRzt$FQhiy-4Hszg;Y3f z5UOWM%3GOc<%*+1rP1pX*$Y@dS)`_ATms_95tB~3mG8>B)Xu5`mzUS(^p=+31#_nF z$k`9Al^4!b`opY0uplCrXGBJ*slV91KUVIk3T;nb0AlE|d%kE6xc0H|UB3b58}g0Z zD~YPEEI7Mc5e^>QtuQ_eWCmK17?>e-S@;wp27&j>TS4tS(n!GOut>pS(c1#48y*iV zlj7U*`8<(6>H#K+vWd^vSkM;n5yy)vdTZ4>p;?H+PjTCb-opC{@&5r!0xH)I?j5wF zY-Xv`0B(gJXRNb|z`*6ZDOap##YEq#U-s5lu$!3p6E2ine1&%t=>&|(2t0uidAEpe z!2h@1A`(97bxL|px0w?xsloRstoW2!SlZAt!-FFea$|ma0R#ffAXpn)dx+=vAgfO4MLPM)>taFH1a0 z7WL;u{{uw60Z(MgH256E|7*cOq&s3@N>*3G(5?|}Es&9`nzN!GGRmFIWb|QVtMT8$ zTe9Tt)tjE9Ygoh8rC<~Y{rmplvQh`Bi0DBm)o|a+w=v<&p897>1CejQ6Pb*}D%QRX zu7DVso5H?`j95DKh81|?3`7@=rwo5Vrd_pBV^WjcS3;E6nF8P@%1+K;KSVj*!bDl2 z`XI#;3X}m;Tk{i zc&G1ib*L^1L9Pgj{nG?*3$ZUkhACEkI??B$;)W%a4>+Vl#_vANTqaVh# z_kqNjE{(B8s3IaIkz`Oz?23{1@YcV&$h;P92l{dR9n zT+`=uA9xyc_2nxcSNK^nIrH**x{5wQB?3=m zMATXdM}n0>w6l2Ym=?1Z36hOVYIR3TS`xAf#7)#QDx(^#Vv|pAj zvMZ{}SdoHGj?jK)RB@ti_P#zksT`=I8WaU-=9-cw3`pPqFUk2rlZl+>&awjaN6V;x zrinG0@=+@j_n~*$g5lOW>v5glV{YVgP_*0hJiUDlYvv>tF#-?pM4mv@uQsW@ZBzY} zVJVD0)5)A^&S<6bv{03*Gm^Y0RclrAeqpLkVd(ZJ&}Iv+cM6KLz|L+{bw!^*DweD2 zWU*002amH7u47bcp+*a+&w}D&X`^t0;CJ5}vUo?uV5044I+zJJjGrPd1yQd$+^Ex- zgt$RJsaOTqcexqogF3=*V4+bj6n)7z3rl`J2nKliCsL{P7u%CUSQl54vy8A;^s>D& zLkyDmU|7Pp`lygyeP-2r^gdiOLWfSFu-fU*{@dUUsfedU;E9Z=(`oeK5n7YjCBmcB zM%y7o7iN=qPZnyxiMmBr{G-BKsD*AMTBBs&_;~UCxbVfKckBeWK<3AfuawC&?`%K? zBu7G)&FqNu6~$sQP_j6MA~Yn&Nt=xEsquE9XrK^0HP$>n(rk55d19$VMuy#j_LUZu zPs6Dr>y1}tP_G&HRVp(^^g}_aq7WM38w66Ed{Oj%g8#o%wSdYo!LABb%O{j=0ifjP z&Rv0=>dw+ad{~Su6=OzA784?enKvIm)AYu{pQ>l$nlba#(-yG2Ca({QN@mta@nMX> z1N+NQiCl^ajz1^7l?24cwhTDC0q~JWZAOAK{_QgCRlq@qE(H_J58?+ft5kDgwNCa_ zwgGmvq&cjJIw~N$K$@lvYb8}7w@M4A3k4CW|B~Ni10jQ;GZ{HmJ+siS2?h8`Q0VNi zB%@EU4Z;Pw51U)4s1{sDvxCaB3!-nl1DGCx!xx*MC0BW6souo@3T@CSh*2Ub#bENA zmr~R~DUC6lf)AC9Qj31V+E6X=WwG;0)2~bNAld zfyZJ(c1>7+Wbt8K4O@QQ(FtU{$9`aUUtGoLJ|)5n$J>T~i3#IB`fMKc5MKM(lY0nu zEO@F^FTi|bz7h6;)&SluDwp!K7%{(w6duaQSy4|*SM7Z{} zfV@34?PG6|5wA~j0V{l>M^<7zxkeH=y@n8KT@aBMkbcDpbMmHCH$$}681(|tE3BXz zQz&X2XsEc4-~Hf6v{p*hX%KQSz4*8oXeFjLcLr9caF+mCD7Kg_y5-(s&J5J?==o*h zl@YjZ&%V22Bj}q^Z&aw$nDtJfEU5>92VR|UahDAf{(NBI6Cpt48}SWvT9e6OjL>N$ zVc62%7Jj~kY=<)dyF9L8d)a55)|yYhH^#M3+ld5=Z&trsVJ)uzyuB;q+_2~l54M># z?L4l+E~gKxM97WXzvCrLc=3f7?)ij%=;ZTs1e?5Wf{QA8|t*sCkzII7`mrW`3s|w`PwVIOwywXL3HTv zu;;C{tJ3XcN>Je+2jwXGV$xspu~c|iFo_(b1%|1-w#9-~E9NiuJs7rT3COTo#nE*};9BZH#CQY9uhCB_19~w1 z64y{7yn1x-jPaQ8^V4;IXb(ib5l>`#6=i|jfnNPZKg*j1$ucqipGZ`GTu+=>{Nh}Q zbOrx^;O2lzD=J(KYF;K9zn1*m!YkmaI_*)gny`inR#TOa$_XbvTeuS(L&+(cy%DDy z!mNg@_(}wx$cW5Z#CW>ffwhqMQ*!#FzR5o9KrmXNU#TcWrrKLLP*!3CHJ@ zb>TYnmAht8h}`R`U#}9w*@+~T2>-|4b-*`Ob@3KT3zf2$fHqWCftDuSEvuBWTQ-7- zC2d0+NRyJZ?3vI7f*?bNAR9p$G6V-hD_c~SqD*DU6cqFW6~6zy$$3d$(o&W*kp8~U z$LTxwChzrs&OPVcbI+lH#7K}7g5~xhS>7i>t4vDfO<@Krk+zn|BFY80y+zJq<7o); zVW`Q6Jy&Lc!*3pSScKO5_0W>>=qdmtBTo0BJ@p8LnV6#%)S z@z@!^0_1|L!T`?xPmFX!Jb*whB$e3*c?}DYBQ)Y*0Ox@rOMr_*oQ{fihY8IXRkycc zxIM>3uqIwA)~1*jtO>Cuj$OQGM>Vo0nByX57_{l9VFw@vlRV#5u_Gij5e+nqA$UM4nZah%Wg zKBZ378HDQ`7q79!pm=}$>z!%tEJnnXF6+WYjKm;awD^Su7_jC0-wv?>9|yc}^CALBfpGxYKSCr{@8D z#Ene9;>GVGETTxft{v__YFt1TB4YwA4qdUhRlqY*dW$_D_y3D+bMcDsboU5!D~o?R zf1Gc?QQm;QqhTmFV7gfC9O%2z>agbb_z_<~DW|`Y_|E&dZf=!(<5u737SgRR7yB1i zVZTPqF!!4k+djd76+J6|cL$6#5e+15Zd+Q^M(GNh2Es0k&Aw^&yF zy5taB1cmoWjC7+D>u!bt3$uf--^Bp&1oS=yw?`<|n*aMOV3DNNv5}-p2CL1VsA+^n z2|F%G{IE*SC2q+tcqdgFcrLW|fK=Xdp3~WFky(lJbX$pks=NOz;Snoh$X^~pXO9u+ZGLyT4SC7yzSpefQ8%ca`?xuayI65Wb*bQIUm`8|u;8^|hd(D9=KzDA8`Ds!D% zoHXK@fTr%>AqP?tHFITeT;Hr-EaZDAxSxXhyj)IhGK|^L0b-;ZE$5W>VeJhMtXcKm zT@2_o`;_-m(CRrkyYGO$UbBv84(Rtf`TuYQwD<#96cODHL&CY5LQFC?LyNP8q$8mr zO&w=>Ctz%+xfQrwoPQ5QQgz6ZZi%ymN)--ab!6?}JM%n0Q$RIet~i8ESw5hZd&zWA zKDp5-8_3e4jr)HE=}6Y}BABa43j;f9IO|HE48^TM2d^Y$-ik>6eu%QtsK(EDWR)5g zWG^*36h{T{KVELdq0<4`<7GBAXt^63D*~|K4U&2l zalJTbHLU%qyeyMZ>iNDvAGiFn$`#2IEqS7{d~t6KE$=c*1tki zfWM%RNA4L&8ke0PAO^beV}K-TqTEzp+M<|B)N82fhVxK<*mY7(penZ7K{aB{Ti_eVfroBYQbT$iM`oYP{X-J zB@Qy?t>U}2-830Gb~@YaKRu?^UK$$0Jl_^|FrbRilJ#LjaII0EZA&~lN2c5m7-{#J~UqVg{?gn@@^I6ua0zL%#*_l(s$zzs*o}_G!8@ar4HEDW<+d>AjHMjgpxjiF!eq;lBp_c; zp@q@RN>$ZIXg+T}+VJ>V#eyCvaYP!-EG)}KmTbu=6{-X)5C&s^VpcYhZm>udJJicg znLm20Cy>X;MMpnb_?(^oWS?L!)?;?1Bl>H!L*!cCCSH^@;COpRC{yH1>y z(9J@muDL=k>y{7CZVf>HhH168?x}<8=FZUyF9b$&*17tWp#Uk{W+eu?K?7+3p;^dI z5(1I}noWVjk>=oMfsV<4gKq{{?#DzV$P)+BAD^phG*Hu7BErU+v=bw>zT z6dQ-}gqR>?N(}?81%X*xt~q^3&7WUg=PawLUbjW@1ubxmdV6vElhE3-2@_77AvMng zff(op4Wt1i2trz!tsoQu*#D<$-6}gES))mMdb-}RK-^W`_hW7e-LO{l!+MVMy(_LyWYlt*v8VC7r{8->aNf_Kz;HbVWrQ5rip1n6R0f@ z&phw8iWAhRAo73>TbL$h{=d7+Ot$}j8rA=H7WW15)PE2tQ(`CC-@73hO6)7SX4jzg zA@f%7xT7$T#(beZ`Z2Cs)a9#P#xb)cw_M-8L+8@mF@_lFM*70{efD8Mn-VKDH^I0m z<@ITMKri%}wc!uY3p?Uu8|aJM>;H8F^neBdr9KC}wpGv6tDwanNTMj@vmu9t^`aNd ztO8e;X!N6p{nbb^9C^t)iGo$6MF}oehStJmApZcR=MX`L-7by+(`GYs6$;v9lgU_( z<;Nf84GFimsT&x;vVvv#mXdWCF~dIJWkY6S zz()&?sQY06O+*6;d_teXBBL2?f)`HB_=GfLDT9JLZTW$(PL-C`a^Y*0Kb70NF|Peq zHv4BGuyn4{p~!u>a_}*yP0Y~$;PoNl7%)I~CUq$o*NxvO9SpjpN>`F)bJ4^!5rNTM zPpPPALMIrXe42`JnJ#Nc;$bgqFy;tu4Jo*}V^(e-1I4yHbKJZxz!GUh4n`LC5;M?1 zVkEEy3W5Ei0ydkiH^{ zUTH|QgXwI+FFLX<_=|DSiyf}L5ZxTtlLuaFv;df{v?Q?_(~|GJ?G@#1^o)}YacEx{&cpn=3lU^8!^6&0{OGYZs! zv!soyxy&F37~{Mnt%8&}QVLRjv|2IgNUYEHUw%B?co(iY{_ksM1B5M(e)H}e0wc@j zBSvEQw9n$k-(Z0LXID?gNE6UN0%rhq!a&WQ9%|)ag%(9|3Y}`&PK_!*=@}^Wledw@ z6x*ruR-ph;gt5?%#41IB%m{P0p*HeVoZ?fWdXQCu0&9z7yMfCUq<90@X4A_Yn0!pf z_l%{3MEM7yDBcrPK>r@|DsQ=aYzC`n-N*AfOdvB9F9ch!{eW83)3QFcDrDGvJni79 z_UN@LmpfIy{u90+Q1*jB~_P`3#Qs{hEfqDOhi=h*MS(!QBCJR@H3?m^t zQK@+=wCHPCP+(mM95FB#WVD9isM(VUvxiCTrqhJs+*ASSG!6q!xCJUBE6psi(y=c@L8pq){FM2B!-?)v=q%fBZEEmO5(5cX|&xovX{2-&!+{~`$#g+T+C>UuXnt&j0j=B^@$lEMz1$DK1l8fG>R&!#1Y}?bB50Id5 znWX(pKtC(c(8rDqH$lkIcTJh@|1bQ7b6=$-|AK4J&K@b{VY}@-(EofzOB;?Dgd3)T zG=QL9v=fu<=i}QA=R8nc@(~w;G?hG2k%~$wmLVEmMl4>_KY}NtSs8=~Qz^8miXzl02oqV`Fo~+7UmG#{%%Rhg-xnS}|BqNz72GM$_H@U_i)> z1=S~j(XCeR?QWQ8llKgd$)IUsn#d$pp+d<_amoiB17X)f9(^fXgz15@G=*T2?OLKq z*J$GhD^iq+Dn*3AXZf}7dxE8C<$0PdB^DsC2Y2IXE_8QwtnQ}9U4TeKZ*DA!_Vk4c z)Vn1$d$BNR!17N+JaOF^ur{y(GKoiATM^Y1SHV9JGgQn7_^=TMEFZSZHv)__5e;Ne z50C|fn^%ycvPEUHANsHcQc(u7$lh_h6N$q9e~Dt#UA)?O&ha=`;wAjk`Qv;8PxTFC zmN4|Ly~G0QcA=OG>{lgD%4zHTWl@-*QYmx z_5K-Ep$=o!8rSw#hF9&R)#ub9AkOHxV%Zo(@<0CMd&4yV(Yw<0MKb`z?#F%)IYw(c zJM$rC_^|ZspKoD+fA6$8v%wg@e9@OanCQ-hG9Ifz_m|cDHW~E6+cR|EfTjZ; z&@gGZc?Y1Vto=4_Ag%q(_zPy|j|z&2XK@v5R58Qx{qt77i2?J!yWHs)Fw#UckZ@{_ zVHXvg^2kPECaYMEyG8hY3RZDRs$*6%l6zJ?B6>@j=W zJY46ggN~&Eg9-ZTTQe;|D`xPkpKMr;0V6MbJ}?7}G!YFX(3+#rMFq4^+A6TuPv|Lu z+`%k`U_*C%U=_AZrs)#OUIpgFSerSt#gEf1!764r+V#(l=PEfvgt|-7FQ2Dbk*sNUP$vHwODw zXC~a&i~8S%-uU#ZE8CfZneoHYg$pee4KdP9Pwd;7+_qC{W5D84Bu!e9K=XBX5T$lLxzFlGyDdA2uAS)Bpmsc z0U;z60l~Qcx=b$nLrBUqBPEVye~uq+=mO;16wDb!%K~ZhH^c)7=|!*FNWRX|qePyblD+9z=*x^ZbO!o_?SG^FWYO`YeXZcPR{(WkQ_jBs zHm=o=OwLXO`r2>Z{i&MtF5CVmM!GS3@0F&@Fd)0@i1Mjmymj64;tbGbl-*A!ffi55 z&>4cYz=6CWdrI~pLZn5=b+J{i|&R_mZpUX;<+VA!TO#3*ynp7Q;gs( z9`mJof;dY9CPuo^Y5m;vk1_C*63hJ4!6=@<1nKt`;d=af2Ja*)SZw*?@aKaTJQGUbLiZu8Zt!N0DJx6|zBkfd1jp>BP$eo8xB7dMh! ze;YY-4OgE|olZ%2teOZh(hc!|pn$NjP?<~`Xj#16)N$I@vGI7w-g)AdqQa3)R7PyA z(dI43HAPQam^orx?}cC#zYuz0bIy$Y!$s*zwVZXTV_}1~8eN(ajZk=R zYq>gIj+Pl%A}sr57~ff>F-cq~!;zl15PW!P2>8*25xQZi2^tlfH^nqB7=%~M;unwQ z6{9nGd%R+sLgh{A6*m}i=iMsNKHFbv)V1mTdMqD3*H}?IUcc;8bub8>x#6UNa zKa~}~jsbltzcV`rjKc?apK=FuLg_9IvOv?sG$Flm^G>?`S8jO>qdRLGn70aj10&Fj z+cO@;}_kEr(h8+2ds;7}`~K8E?@n zg{}RrIRc6&-H`veF2-j&fv(t3AE}}MLINLO`O9DoG0=^^<0eh13;4g&>%~bUF<|Fu z`A?ysm8Y+a7zVn-9&Ls8pug?0;;q4;Kj~4fcwf*v*2f>zfvz;scTpN>-LNe&gFw$; zP<-5Y&?)kjH`Snh)pf7W0^K~|$`KXl3jgdqxeD~;rM)i=06jWoV!1rfkz;CyC_x`6 zwqaF&Jjg3erhL!_wAYG7LuY_~?Q+1rXwW0u`$n$?EpJwK341_#aC%^pGIP+&DP>M6 z<0aYZ+G*c~c3#RP)`pcynX&)hRu?a&=VXs8x5chonUpzy9ODfj1ke@<%Hm>9*{QVB zj~}YOycxkoaoL++`;S?0oV=rwcvvyRrQIQw<1p~gnu}_D0LII)AC-L-bo>`rx~~Bp z`*+mlzMvS0T+k{Udp_ChgRiIKy6>+G|FTLOpEUEhA?R@y1t12x;WPGJ*JT(G zC##=(3&z_{XfYFaP@u()s}2^=Cq}w4XX^Q& zwNM>h-pKH0UiqQlN+)H5p3-;yvOLh@32BuyM;e`~L=i!?Z@EA{^Jj@i8d~y@leIT) zu6loQTMh6AKwty1w(o z2+$v|JoeUJ&~3+_z3?4q*8?ZEF>rq6-(uut@@E{&j%#Fyvg4wd@vq36 zvv(0-7kPWOcWqq19Del-i;#|7G5LipxC(Y0G0=_EWt-n?iUIL!xBv4g7-=G!fbeS0 zym#U?Lz}3G5JlvkcpX2-!mFR51;?web-#y5!S6Wl*}jnlUI~t;uIz9Z`ZIBt+QdjV z4kfz8`eIdDP=1VL|pfEr-hd0`Nc9bwX#GapOpiG9E8$fT4M17eg6u zYXc)!*wdn<6w2?R>n?`~9F_9k+4E z6wpD%J0u+eePPr5A0~sQFG^pK1fpoinCy4(`A^LdI|(zUUq!G4ng|P!>lEoM6r?Lc z`xFkfJQ)4|zg)bgdHz)Lr4kvge?f4ZKhOFb$Qo{F#=SVx*#T1-feAt*z5X3~#%xA9 zb>_$Kb{K?f@iu*TzK=yd>5fLTo2*#o#fcfFSE%={9s|}L+7Pf7j59i2s{1DB@NJ*> z*#P?UMePk!L7&{SeAmaI|DJth<_yrRNz`W0SB6wQIT!TgD@(_J20H%Amj5jRJ*{Hs zX68oH7o#s?QmP^0cG9-#Yy!KQ4_-Tyx%ugX!j?R+GYXb1ki3k=Mh?A(8=7F1h@-OZ##PbP9C#*pZJ09lz&TWD|JuFT2ZI1R z!YjwA2Zj+N-Dvl_Yu(Dg>AIDbZoG*BUk=lkVP)NGjq(19)rC)WU3lv{CcJ$97tIJZ zVezxquYoS!_~OZ7pxrfhEB^|5$eTYe(18|z0m8XCt)Zyk+~&}1L4Ie^!nwm3w#F0N z!G=i7T@%ys$Q)tAwfw2v-i?7daSMTdE1UfzoE&4jCSry*2Wux+#lTg&qa)q{`2HPL zuHws}zfD?Vm;;(7riloQ`EJ0Honp38iq4tt2ZyK7oP!;7v2M!osNs+2VuuAC)gu60 zn_4bHNAP8xK}c+)l@-yTLE{=Gsn&Af-Bd$>|C#yfd&#I1Ewr6Oqwq+ z9T|p?yqWP_fQ|eA#gbV4f3?TT5>our`Qv;8kM#{?wljqDV1sq)li7@{`fKf_mrz~p zv#BpPoQLZl;|>kFj8Z6@2mHFWG$}L|Y!EZtiY)%)LJa6z?PAPT3}`gETdx(Mt1qv$ z@;d0UuWeYm9(3gTij{7GRv#R_aRcZQ8@9g9=uy*_MI8W*hSjZH@j-Px&-6VDx@Atr z%~GK0i_sS$g<16SADm{TrDHBnWCwWJ87EzeW{AB*P!Hp}^95mih9Qiv&cVj28%9ZS z%@$I%cfFqYb8wW;_60$Q>(|D0)7;Z@m%V}fhxhKi{5h_|>MUlUfy5XT5E2#|926p) zMu_UKQR_64Xbmbpn5u6S7|ZIc)$~{BbQ-NhVeEOX#6St0eU(l4!Y>_hC2fsdd$)XQ*-NmF?wqQpvG9XH@~?e&?41 zk?9`5wyz%hu2>+NA+Sw=bh$P?9^J!vbx%}s2=xn)`l08&qi>7x=gVwi2!$3c*eZx9>W2+(<5r{H4yMvGYVoPhLuyA)XKzwK5K9H z9Rqle((o{u1#Im=5__?!5fZi&8!K05 zC~$Ni#bCPOTWC03;bYNxeCD4-rzli%T_jHR4_2z=k?c!iyE(F#JVC2S#*LP^E$PVw z2PhKui}_aYQm)XM*!YzUPlxOA$#mSX8 z8XYK+2K z+e(bS4La|l`qv?#PjA{;n$h8h#$T-my2|3!8`%dOu5qtZStbx8C zUx=3D+Gg5B>000@!spb|!?Bi*Q0x!$VP7%=0rZ*Lp`9X; z#+>DXY4rcoUA*Ewmw0S-`?pxS(V%ty*ZBsX)Ehv5zaYN-nV+(}lla=)omhO``-F^7 z$JIZ#my#{IuSdHL`5RZRELlpTm|@0S*QARu;PoMKWtbH}6VX6Ye!}*rQ~5pDt9DaE zAm1Xg2BJBa`%tswnn74hZ|#_Vw-T;Rf`32EJfbhZIQi8S0wUWYB1XD#a8U5Nh8R$L z?A#p_!5Cg4PgxW6h}YgK&3rNOgak~X{6*0OrpS3R1_1=;$y6)T(owo!Vy$!aex%hq zGr=IU2jCGD6XX(9q}5f4_00BqBGu|3P$k+ zgleHiX3<;Kb$i9tsg)%j&tZ~KjL?0_5CG_k;{s+2rC3rmyM)f-c+3Cq}v<9zakPGM%M%6UgzY(Eq#NP^ByhrM9=igUm?Fn!NQ9uFS*n*> zlOE6WqWHhKzQeDf+aMhI)>-;*_wpV->h?qq;yf2I?v-~bXb9+WzX zl0FQ%w+6Ddui;3an}F!{#UuY31$y4!?&Ge5Et2j( zatimwUzkKf*kdo^BJuDG$fM>6KOewvZfL|^V(UZFIj_=Mq4M0;IJdRW_Fmx|b`Qo? zmb#=o^Kid>TfXmST!j!iG185to!l4cF<|{$6cY0+NeVO!&?wms_x`#uS48~u_A zdg{=Z$1%Fm2k%|Y2EF*-4S${iJ^IBr%QIPBGwSuhj24R|iCmbYh#d3Tttu3g$gv;~ z?^#8^5IP0wl*z0Q_k+vdqb?T@DQo!zuJ8yB6QJTxZan}0mP_g1J!3pl-Nv}S<LLcX96}uGc0$s7|jp;G&xYn%dy_RJa_iuf+-!WXdQe;Vo^uGb)s7|@^J`7(p~bUA(NDBFT=)-LVGA3)Ow(Zr;LLLEg3<-6`b z0VU)#0v`MzJXb%N0}Q@)?ATmC!3el`pnE64GWcNEVUf5_`CsLMn*q-WTID}q;%c^I zO^kG-S~H(ztuSD~?nAL#z$l)8@Eqdscox>s&fOz2v$_>yLE!q&Uyc~2;hLA7dj2x-y!}SGTBUFfPtfATNH1jWc^c|+CG2N)j%q?h z0&7~G$dF>FIMrs$je9py-_mp0tqNNK*0<{|nX=7N2@@kR&;Vi#3=fwE21|p4Y*T=< zr9!JN)Db9SKT&kL9 z57(DnN~e@M=6=GxYVmc&{srm$;cvju$503ROL5+jR>gA-B}iA?a~*Nx5_H822@3|s zLsu->)}&N<=!gmXeKeIwSG<6^h>;lH{Z zpSKNkXw@;t82#d+?xh!ke(~-hFZRX0|97ZA?_-#){(*w{KC*36^B)7^y#GSQ4 z&Kt*0N}8+qq8Cd%(+f-+knS-t*E8}$Uz{P4Q80SiVUXNwDet+QP zYlHZ#jTdlzVaTC_>;&u=rMP~8O6W92_H9w98$o7Aa zbBUIcL5y@mJb*wJB1nb>c8rp1tvnt;R5FJfYVqU7k=_;ynrn{WZ@W*qe7zQS1M+HsJ2}D`Niw{jYRYY$E98 z3#M+p2U>mT;si!FRPG36sXKK~sdS9KS3>XdBIwV)?lFteoxk$QdI|KrpFh9GX!>IG zMd&RBG3-ZUk25`Q{a}`n-de6o#5MoDS1UQwC{O^RTi%L9e@U;N?JPygwzPx!9DPe> zk#QmGhGX#>owe0yqtPGM(FqI*3N{v57oV)R@O2(n1NFclyA>mXP%gqx_6!Iy9uIAU zB#>dXceoY$v!h6cn|#tC`w#RLU-N-_&KX?c-jrov-d1k^J6c@%LcvZqi5X@#etG(N z40x@6vopzHbopsPi;JMYxpe3>TWM%wnuyRV&beKXd(HICSsKuOs7Mepy#rH*V%8PM4$hLnB_G<`6A z5P?<5v?>Z<<(pY@wL)jr`j)F+{@eZ8=xF&tfZa(zpyIlcLvr|woya&S6 z6HIZoT8n-iq0uT~-N{)|CiX3ut*%nRq&1HgjCI606pHkCW)F&Qi>FCa%99ZsVbfR! zcpuji@m$EIG5>#pi`OfjE*`~-hq_F#u$2DOeK6>S9WJAzr|7d)Tow+$0 zwDf}ppx+Sc`^X}PjX3MpiobKKlbjG0V-BLlXmQ+0- z2RiG^(lRyZ>S;GR^a8!|X2ow9&5cOVrLqma>_O>8(1Vlkgqlu^OIm4CB_=n$twOC; zBFv;KoJAN5<*yx-p_E$~f-y)$u*?ay7EKAe)f!d%6_Sn_sY*3`8A)SF{nn`U90u zxSq`&ksShLcdgmwavNN^D6=3zUh|I!UjYN%paFmH?mDFv7{6^dJ%Qa{;Wqr8DA47? zea16-O&7_(EkM7iKYimWXrFsuOPYcHN7{Azb!fuQ~dl$hT{O8ik2WP;U9bzT|f4qi1114}Mvex1k2mUq%!p$c?3i z?99KL|7D;PgS*!0jn~=w#L>?Z4vCR&Y*4K6V*~p%U$pu)FzVvk^kHa5?eY~pKyQiI zHI|`&WyOYf+k+N=fC;hIxb*^I&f22zSdEzL=xes~y@E&Wp=I63%Rsok--t{YsZqHAANL#yPe z^2L>-mW3e242R_3{@M!zsx130*bR);CD}tXpljcDndS-ly^3#69|HQ1?%BsngZ59a zQ|t(6PvxYjdZ6ip>4OO6p?p6WO|=0rjX5W$08q!U5+msvZ9br8^I;pUn;g*BQZ@zq zr6tT;Ygq^du?{P!KFS_NL8z96$btg+o~#+wRyz+UewzeA)u?%QV75R*Y6mLPAqV6c zTC<>Ie1Ca{iiczRW4j@L#&l(>B3_Ay)ego!17?oZ__fwb0>UE#0#J({|Fsy)qCLVk zh*}eG`fxFau+{N|_b&ovVRj12qvI1VDE|y}MPSdD?PaLSH@QV38&4v8H?QMVS!V?Q zO`=N@lpK9`b`&Iwi!9sZ7BjRP_E-5*7`UeTjB~+YY&!qO(FUM*&#tR#4w@#WiAW@Q zyZdOTNESVjw6pEVMb;^hL*vsmX^-66mMfg>hK4HK^0OAmHzP?PzyDzOuVW!cV)?1H z<(-dSC4pp?pO_){gx{ES3=A5%R@xnmG!YFX0SqkiYa%!5#QXLSw1MZCYodb+pxODi zjBJVAf5*%J=i+MI|8MW&Roio<`)#-4F6|+C5A~BBY^ZF{c-D~MuMKAxMOcRk{N{gCc^0nF$9cEwG z0uB!ptFb4;#(hhRu=nFiWqU|h&;s?A56`!BMA(P=a+qBm{x-747%JMaQ_Zm+3gLV+ z{mrib184`$(C_&bprx3P5TO(^nBTyR(s5;<=1J*NwcV=Wb#y$t2;;50Xw3?zb|*q$N03OE%r z&_H4&oED|9{(rtSJc(TXCvN~bvj1Pqoz?#;DC8xXlY@b&BCl?j2eO0gdx}hGAYWLY;m8pOaa{-BwZVYVVbNv7YRIfIycSSJn z*naBphoCR~+A+8cXz_&5fI;Zo9T*G7%%lu4Z4-Y))HxQ~3sibx*E1 zyeuq)nI8^*u8=*%_%VjE+>NtFZgvMku44Gm%$r@Y^L}D@Y*}2}$ZokELULZ~&l?V6 zSHX=V2D;H#y1Upu42be`FUuHdBAS4Z8fJz=en>6au(WaL=xhSREI%;#Bv#~S2ZEU~ zhB9^_Xs*Tn{-jIkl5RfR#R#gr=-0Ze^r`?sF@vr~Ue}5k_+Dd=iHE^R6VX6|V5p-* z@BuZWRiOMSsY#32m_-QCGBgGS>o9%}mqv7x^x}SwwJyz-k}jpiy3r5E`Zr)!K;qBA zw}DHt1_VEc80m(100B4n{=jvv^43kElH{;gJswl;aiZ3wScds zF=C490=gCq7Wig4&LdM5+GGVX2I3jo9S-HF|5uvtQ?{{6^2-@QD6hS@{^?)a!cuTu z)Nd!QZyrl=VJ8`bukF{&B6ZE&Bx0l+ynYe}T+7`S`VJT;H@;lxA``t5P*u zD+AcZ(y&hZWA=v4OjRvt+fEt z70%kDrsdl4VvoG`XjVIeCxk~_T{BlsD{;xHO=ji*QFd^8R<(UM zJK)NN#{t`b)}ZN&&=(+K5~^dyDw8u5DoINgM$)2wCCoD% zG8yJp&{7+lw<1Y&x}*^+ewe{4_FC2SZH=k~D&gcvD=f^yi56oaL0wj%7b*NG{pLj!F;(^;UnDxnpi5=u72D-7N>c+o&U_gakX$=|Uva{zEZ-D+`^|oWI zOkDlRu}wY#J!aFn-ONs=526nsVG*jo<%?Ys8vtP>`#i#O6h*Kxx$QzUnNj{6@x7KL$mg5?wO+|1YmCVgI&8pAhw}_@A zM8I5LNe{J>UD$-Fc`LMtu1ie1&gujC4!;r)CRekNJiZ)`GcoOm62%zHw-Zom9Nz(I zvAaeqE(^%F<*neQ!D*@Z!HN_mwi~P)In#UNd0VNBk4G!)Gnv86aHC2RiY6QXAhIy_ zh0y-cu1wj~ zBE=LXmk#?j-IAoHs!P!fshj?I&g(F#G5Y_NTuNW`tn6{b?OoSOTx_1} z|75!v+<6?_deJtghSJ)4yJTw(>lC8eSLaSGC@;wyTvp@gOJY;tKP zc#-i;3vsibLy}^#KsQ`{I(0hakXClVcqT@=abjig$z%-Zxvu1Zc^Gh}#I72hKzn(s zO3wf-o{;1;xBxkQ-euIrFLMkV*IJw`_irOP;b>KTnBa_WVsPUNn6K3qSJp5RoKu6& zwRsisF0c9Berkm4J^i#-y2)`;?w|TWui+{zV8lQ-Xdn#;3=atn3GPniLFWr?|`*ax(` zH7|ZTX!^kGYYr=?f&RGcuzl=)`s)1yr-Hs5esR zD5)e)g92BPQ3@@}OdxY5GD?MdI%wAv84W$nw*jp5G(~Wk-sX|3M^W7PHYjwcJeesqqgZ~THKeMgD)sBIZTb_jRy-_Xxz5>h>_8ZP# z<*tP+kPHY03Ng?P8b||3Soq1WXH!@lNj9vlZIScpc-z?ASSn|5v4drElQFWH$<`s; znQR^b%fvu8Xdn$>SeAx|NQgIIJhLL&s{CfIP=u+? zrCD*UVTYgh^IBH}*M6gZ@1KX`I15+b8~+uZ=kdT&K#aFKhqPcfb{$)q(gFiqH-)7$ zdc61f9TD`D$li* zv{I;&;enc5&wTQh?M!HPWvxybS>;9AgiZ>SqkzyLSvZS`S_W9?W1j3bqBJa&d$^)~ z#L!^AkC<-*WrvX+{(RXb^`p_-#oxPwQFu&YNAt1t(zOkt_t4^G^Q-4qeTwVK&eOjA z8CY)K`_0Nz5Iy7yy$pnh7>VKarTt`gFyMk!HC8Qbu zd=7f(c>g97KyThP)t=SI?}y9`x%+&qn+J z`t9Q%EMWAP86)l;0llbK#kF68e&wy1pR57hqx3(q`$0EtbM`Z~CqZA7z97j?Flp}R zL3RpS*TRFPL7}W*ty93n#WQ>Qp5jvaK&e~qEAS8JkMj*U-@s#k16fV= zBe_RrZB&{UGP12sUHfyuRID3hW1ateW3k&leJHRcm)tDSXkUb1v=q2VaoBIDKIfxWMO0;G9O^e`xe&_R_;(GVa5AQbxRDY1@`?bQA%M#n)CkDEazNvNmyBKgXCa!WzFw#Uc0byI_ z#I`eH@VN7tjS+)}`eByXHl4W19Y|Y?6bK0XrEl(BsAUQW9DL=UsEQOZVAv)Gy7Bhj zPd=H40qd3z-Q)#EnusPKY@5$H3H^WziiSPFp_``?5wp#`l@HaWDHKVC+MIt@j3w)h zOUpDtO0^y7XqkdsT$umw?y}IuEA<7}lI`8Sihl>9DE(wL)DJCCp2=U?Tm4qKNf1x+ zTMmCLufzg*!dgX)#4z&51Jl@mUUN6@Ee1xKfCiF03+xb}c1nYtnSwcaI2F+&wvJ=-Y*SznfiM#&x&6=M`-`r<^paa*>#LOB%MI&vHu zO;D(;TPCvIRGS@`M@<@#h1e|y6Bh0#mHF}JbdJ5-!k-V|8C)QE5)G$2E(d6)4SF-_ zEnI(I=Q-CEpou)&e>1xZ;2}n0paH~4;1Ra@iwbxONC1EMJi_M!Jeh&|48BlDTIHPN zgp%R?%CXy{2LLqHe3q}dfU1Vy-R*L22YkeVw*tzt-ELu_7Blby1Q%wuvI9?PMIvj?tybk+qHFj_z6w8o^4^_$dSlOI=k+hj^>xo zzz#E>Z+wbAo$EYn*k(r&Y-t@7t1wy@1)V2mpn=3lFcso@4h&NpWIpQp`dnZwv#efc z2WvTH1+1lfzLiyqExqmB-+!R?aQ4_q!Ku)AQ)aA~Hi}dvGtR^e2TTKr(S)_YXI~{c z)gSB9f~t!!s8uS3mIc+iQ!`I{l>!iFRwgknE^<8oznGtkS9i}z9{b#W#6O)s&NpEH z4P@5WYq^ORV{PII*;up$UXT85ek?3DGWV}8ijFKs{sD`v5+gC3_*)UB#efSHU;dFf z5;Oq~Bz-1i8Zz5Sq0?!!7WPx2>^x)9HA$Qz1M;FtRw92+g0#;doG_J!2M6QQS(~>a z6^Vx^g^H4HuTokx|02FkdR_1M>1 zS%|&H;Nc-CYzkkNeJ@A%W$}EOYW*Ny56u#*QrDd3wAOAIvanJ~tg-bjRoU093kq#s zS+{}(KdW}8%LTCusC9H~O8~h_NKx>Zr+C$LU%)SsabeO+T-4g@P zD?L{;sMAC=kPt0oV>>>g*}g3uUJxo_cJ3aLp-qshA6z>dd(%1B`dXRE#7H-k<>&tRKZ^n42?)kQ3WDRq z*l8v|sUEBxtK9#0O?L6>;aSzAx?4B=)A{rG-#})HKGjAgguCVlSxL+L{i=E$Dxr1k zN)=NLH4^K6&Q`Q9<4=5PwX%sB7VaHBq80|k{Bn2;W2A{_ph+c2!^kHsKqXMQ!3RiT zC^{YoTkjsu<9JGonzaS@Or#W%6{oW2hoq7pBJtQ;p(TPnV^_WYNqt;fq;_A2_kE8$$+1CoRH&E?XC5GR6h#Kl_vUTKc|c*@ZBpTdJY!vS)VIR{-xMP?7kf9AXdOw{L`_113YD-Bzs1tzSm4i!&=26J zZGx>M{ery`8qrezK_{Q>>M=u?cf|G52(K>&VTW>Pcu2?5v{T7W+Ylq&sD16Dn+q}E z(}O?E8VSbGG>=QuL6@o?m^&PFzn=T6O$2>-=BYBnK&zs6gpC2+;zWyaLqL}=zIj6i z=yl^aN(Y0!aLMQNK+uzS5An?az0IThl4Q^gihFEG2Yvoll^t@>GbUc}VYK)QL%4#% zWMM(ViG;jys735S6?zr)>e)`Bz<=#* z9z-kEs8E2-1!TfyBnb5h$Vg+AszkjK*yaJG+On`(A&aNkL;>vf!?3P~DGQdO#RWd{ zvF|>F@I&6>vIVSuX85zP`M@48vz}gQvvjz)W(!NlZ~JCn^@JZkYSF^rTb+Hj&+=9` zy$x`#8hgRuNfr=WI>ZcnH~&$_6$5+i*>#OY3jXSK=erW1>v~t&;SQQ6rip;=K&dQT zW+xzE-n1$V%G;?2GwiVvINC-M)3VWsr!X0};n1FAutKX-rsplxV)LxNG%Prf@2Ld^ zqi=RQb>6B(r6$6n--j*0Q4upWLegEKMIUXsM4pznUWYs?bLS4$0)&4CO86;k_R=0Z zP^CcuArJsDQbR)h0z&*`&p@#o_IyVFf0>I{1J4ML0d7jyWsl$abX|KE)<{ zfUTVvvPJhzm!$eZ50tD>XW+}YZmKx;C+1Sk*xl)-pio#~oEYgwlD6#XIv8;Dg%T`rJ&o*^p^A)Qxt)ouRgw-mz^XW@Q_(zNq7hf5nWOZ{mJl{o z)yjQ|AWX6B6_Q(%<^z!w6koP_=POo0abhHf_w?&d?ZE(IqzSsN9VlS~O%Q&d2-tJv zJ{6(;_Gj9q%Iv7`4*~GEiYGvak0AkQ*nYJ~7;yYymU8?nxHb-1Rf*yEYPz(lAOI}+ zlNjlScmM%jI9y@Y*)|C#MLR4e*3TBL>msAk>=OPH*@WEgl#6w>Lj{B#D@2f~(ktxX zIaf%qx|rpHF6|D)9}J;ULAFI}@M` z-@BQfG#6K{UET4`#SGp_y#sDwz}j`?&rAVhQs3jPi({fOqkUtigRYm>x_)`kgCh3y zd^}2Gn(0@T>(2eM`yFuIaV(MJ{(tc{E~S4ibeG# zeST_l3>=x8yln{>X(Ad(E7|jrpi$^mOT5T9lQteEX(Kya{|4Xlh_y-so+wn4tSg`K zg+~uGO+I&h$!Q$r_@ITKds(1VwfpR_$^>h+=Ru6b@TdBhIX5t%9-3B^2V=Px%JsVf z`c%f$c@;qK>lwTA0_Z>M-T0&;X!-z}n87|YBs@IeehvEy6CQ{ftTg2{8ruaTuTg`( zfyzV;QXSE5OrvJ;G2}Fc2ZZpP#t^HV#yGhI^>_NKGV)fU^B8)2=Ue=(5g1chPUB#O z8c+tOO%|k>C0e6G3qrXXJ?=HyB)JNS$!HGEpwElQtZsRj~2-z6JV!uT;O!Ocu`6c2|^)Ql)4lowP`*M?1@O1^yw|4s&B?JS^MQ z^IC3st5TKn2&i}5N!MuY2YlZ3C=Y6VzsI_97Lpq752y=UlE^h_aMSOj^RTe&5I5_Sj66A>khsd?OMF4a0 zjlb=$(b6xOb}mp50?_N4pFh!Aq_rey(o+~-A9dvj46=*+K!6^FP4g{)WnL_-9?OUpI>g1x$FsQm|J>^1pU$5r{{}Ms^nJL$XswlU8q?ZL%Hx|O3x>6a zQt4Cii)#&_R7g7s{vt8b4c}{rIxSd_W$hoT`Eh9mNnbfG}Xmf5YpB^BlB@)XjUt}e1(1hB~8MQ(if`R!p!fmgS56V!c zN;=B5i75&#)*Bmh@ljVtSzstz$;Ez^6lK4|`~n>R+#7$sEDwEeOFW}ZR9P1n*W8Mv zfWtBlXP*Tu369x~H%~kQcoHlHJQD-m@UGpX&M^#3EdTOuHh?Cg2?)b zwqIIc`u=|eZ03YN%fL39eawk7#RwuTtv(7AI9v-TqbStS_u@f5lWI3wKd!mHBntiB z%AMZ74O+&W58G4<*AGs+t~m{4XTSgDdxC0bK|W$kT(Z9&yYWif_TKSqz<{tCjDCBN z^n;of6D&!r_C-0+U1qqnX7}j>Xkro-bNWwVM5QRm1b2E0>-9g1vVU^1frnfMtfhtZ zL>rl^&?YP5(>3u-W*o^w;;$g{HT|oWD}_lsa*|0rKAZY-!+C9ewr{Mwpu$L8{}^{@ z&}E>xezIXXy9z4>G0=@S4o{mu83RU!ex1b_X(F0{;BQV+a9H@;o zudGSJb-)Stji(^)*Um4+C0gcTQxCHHZ8bJCxDCzU9qm z@r0x=gu>#5vMh_ja%p2iJ`H_Q#FtWTa9UZNj@EG0Xl=&nd)Qe{Cv+lldF^t*zG$?N zo}+$cO*LGr$X<14epH8rP2Xo%VL2s6x-t9jIdkh^z&Eq+hA>9)1SB3prKh4U9(EJ= zqNK*-6_HU2E!wmUS#A`*f` z5d+=e{uu`9i~V-?5C+ghGyzGJP+h7}5=CJQ>kyqYl;MMV1{$3_0Xu6|%C%-IO+SM}WhY=7^1RtXHbfwWY7y5rTE(FnEuR)73g zjc`@^?2=x^p2xqhywvy_t{m8`Vg@nL4H`%TIFN&6fq};8ZD+-x424=#nB;{v3XN8) z=&#TkbAK!%#F#fu|2D`wLUcK6xf7MN%C{M~jliO%{0+MRX zH}ayUD! zP_xn+Hlb#Vy;(Zc|HzxOXgX;xDIo|+39RuXlLd!PO5o3zSwi2HL%X53g`eS?BOKnz z`s$bC`(W!g(d`()oQKz1c#SUw6+CFks4b;&6`(CHl@0P|6!S%PgCY8kXm)Q+Zz5?|(ZS~FIx|V8?80m(10I5N< zsallOpw;%7jS4JetW@SygILlYxD6^-g8*XZ0)g1HsmmWfVIBUi@1|7;aov8STrIX9 z2e+zx*J?c`M!F#$KtL4EYa|sVAQJYR>v7{G1xjS3D4M4a#nx3C`m-YiGd@lEj5&WV=ls->Zmx=IWRXODi|c%BalO?Rg|bOG9PhQdSJw z#shlPO{PF;ki8<)LCCbh|MK;AtYcZ?a|`5)IgGo{-$JHTAII|$tf8MR6v*_R_v!Dw zf!H4JmQC*+1J2`YaDY%y4ez-?Cqliu2WpeuTo zPb&%fYJ_6UCD7wNw6_>dA4C(ACPUDx|rHWuwEFX(LtTXtRb9qho? zY%7vCL*a4q*C~!Jz?K+^fd&vG!B)sYefqF<+I}jHR<3O1R=$O z#HJg?h6E6b8E7Ce5(tG%P$viru}S`rzO`d%!YnU+JMMt^S#OdLBL}4N`#Vm{<9xQi z^X{IjvAC-Kcr9rrHpjoOxO~Yh+9YR{XNZv)YR%Z<(h~!MOX@yjWdUdc8VFEI(L66y za6k~rY^lI0dm%nlfKyz+#$w?PV&TY_c^lmn7BcTc#^}=I>J;1K$u{1J^|3*=?(;{$ zf@pomx;q|kVQ0B%&MR>kA72s42xMHLQy&g^x4~&Gxi)VxKl}gK!$;E4U{;CaLCJ;rr>con%aEITJp)A zV|Ykw!(j|+qy11>-=@E+_p}Z82D@(O3bjlZp|aD zFd(Sj;h~c;;P+Mo7jy^RXpU|M6NHxCwr9T%di3`9+s(*NFr)$DfyNZgsNo8&0;zSK z71|_TL#S{meNjn+HLQ&A1)pd|W$_gm7M)d>Kx?@?W(I_*A8e0k&uc`!vdZ1FS zW@Ycf!j0AM!UHYRTw`>oN1$dE@KS|bRuWi~S&r&M>@)Hf2n;bQC9(){ zRP0Z9AMkPKPz#|meR!NEIfH#NqgyNazaf(M0b)oq=Wp58~X1_1Oq8OLmh_FGTZ^hjx>%X?4Fa5P&x!qn;2ij`uvV^TwagAxb zxR)A#yyBHxO&d;sZRSQ1Bi(pE{%B_j25hQ$Y}#Nj?(Z=x@nz5#x4gMU3tBv(>8~Hg z>!!i4evrSu%{hDu00{ZT`6ky1-pv#Eb0bj(7_t0&)9#_}LH?lnaDB8LiPQ^Kq%yk& zq=(?uivI-q<-uA#{f$`chZyNb*#3^geKGLQ&j)`s5{%*r=x@TSNEPyLVtE+BR;@oN z$uhlaTWLUf%$9h0{@$W>UZ`z5_WHtB9qe}0`nFOTh)5+mIZ51^M7`s}XT zHgabB2Y!auZL=C>O2SfoLaH6d+GUG6-~V^r=i)WY^PiHfOT37GI)5DV4P>>~N5OIN zr@$w5Sl7^s?Q>`2twU(nRd4x$<~4B*+Iw-K3W{vmM+tq$kwRlF^oWrd{L^0kV;KhY z`J&FpgTT1y&2!83psR*_@=XTl-$xBv!8)E6D_dH^RtxFmW5XJOUfySL&KS`2f%HM7 z5c3O+vOH4uf9xM9lhvrwn^a(tf~T~XP#9D3K9=BP+effCh(|?I^EV_OHD~qt2m|=) zTX5Sd(yDIogjys`uU|Oj|2LeLl2x0`%)vEVzjby~fW27KuScVB6}%l{pd0`57<>9O z1_bW>_aur=IwmEfAQ z^1nhcVe^`;N>!j>y~&{$+%OzEwe`XZ&d0Vj3`CE2ACdV#d)EQi)YZj76cxo%1&HEa7$8Cv5=_8}BT+z{b+l@0YpvE@ZMBZtWks#4`c-Y~Y_-m6-PPJU z`u*=q&P(zV5Jj!g@awP7!#npT?{UsO`fxuvN%H$ z76sa2l%leO+>dELHX%5a38G##-zM62bO=t7AVa`m)Cl(YSrS7_j#=7U1)(Q4AZ96^ z6r8mLy7b!UYs;qK+HUpjGC%YUYt_u9c{025%t8osW6sg}vu9yJ)GHnx7$R*%8!%=G z43zi>Fq)*^6FmKbIE_uP3loyIH}k>5(PauQTN*ntj3ZMln1X#C;=U=#+`Ncxsp!2; zq#2G%3FF)bQJV||hn1oj1v+>pXspw^=L{24?Q7z;7w3Wq*H@A?{~kn0 z#K%!BvjBw%`BABiQE8Y$$4KPSTE6=rqksmHSP&)K58kL)1(Xr3(t;8#$uvT1Y!qPa zYPIR~Vtq1OlbR$z;_oMzPLQw9s>sAA3FIhDNPKK2!HeKcm9po{ax*mNh_92?k(rY~ z#J4QDbDPF!h8jt~|VDIidbBT;N3QS72YNWnC(#_9-sh!@tHF2#P50GvvkKJXOIK*l3N z!Olvv0(_0fqperTf$V>rf&NDO-v#ym;?jBUr`^uspU?0oJJHY#CTp}{()1)gr0}L< z^ZM&ZvFX*{Eu}NA)qhTue2c8}%zwUCe@EHpCGm|3fo^!D&W`DZ1#vx2_%p<6e_n0V z8}O2=vf>PmiU?k&0^Dfx8TAgpHLjN)vjwoW|HpOn0Pp&HRpv>+*P2&2%RZ342z>!* zkXRPvCzA$|e77^osW9y12$QL;V=0B!PF{$S(Zbv~hf~juv!X{BLOA_gFe^HQgiVd+ zJMUcvxidW{0@uhj4aa>2vcDA*&}tj5ynarIgs^-0o$4pB;D)U7O}2nGpoPRIeCg!N zz$cF=!sPyvASP+-S+tTsW?@GuRCcY|qH0cUE6RFsEq= zh@bc5j99wVza$(objGLe2#wtWTBfs}*R%+MZqPznK*Vm&h(?w}ghrdU6xUE~Dn|3^ zUO1t^h`k`w!8yYDDYlGY^qoD(5CkPE|Agn?!!M7ij5E4Jg9?!{v~yfPYuL7*;dm^r zHdH!Ap2|{Cq6m=?_HSG)nG@5-9@TOnJoeTloa7xX?45lwcUxe{bpiCmq zFD~%hM*%3ifQ1FQc4pR$!KV~Fgk_#sSfI%A!C77)YmG89Rbo9^o90~HBden!kdr3X zAwS&9~m}c!K*H=`Q>1$8hDP2_eu8T1X3s8~CCxC<0uT zL}5gTGbUE#MwBl_n9G>|f6S%q-O_hTy;HJEiQkJIdxj1G=SMl;z|(pI*&YVDos-&J z2uAfD;)R}_O02$%@2)UgKD*6Ox(s31TZ7{oPHv&jjt_2Q3rG03%8sZC-gH`2U&z z4Gg^v{vcQk?zSe_!Spxyao$g^gYl|r79%z1`e; z^mdmlTzE7DG4FvLyN7Rrb1d;6jb`V7uvXf0Ykh9w${h!c!i5Nb++X-7OK;jdJooMq zAnv&RZ!xIdhkN<2hrT1#9u!0%x$%taPgn-Z4n5syT#09RzWHPS$50ei`K(YSfO`+{@WZ*do((5O_~Oc+=0b!w zD`C(g7Dl{w_HN*{WOPehMq@?bd^SJ?g?IymJ<@0fu`!(%);PA!_HHN z#IQ_8QFjH`8eD-2@>GR+5FUUJ-`~4R2y8PS<1dMTjspcYN@>kSDKCY2(=utaQ0lWaO8C zH~-vzbT7cPF>OSw2NYl zwQY-`N{LF7C*4wpy`%?}U30aaMwh0-;4hTaA>hc`_^K2k#$+l{H??Z0Qma#?=Pkr< zGh>xWtYw-gOr=f8NKt4*S}WB9RSAj^qp2DRa}qra3WpV%GE|YGNMs5Cuc^Px>WH;b zY}sLj`mJUzTf43#I!1QDxbD9fdejx%aBt&9< zNdcP4ORV(UW&Y4Wk&$adgj}0hz%6@6My9zeOw>L}s~n^VF*heK6tfq}ruc6aAZzB; zVai`}dK|~Ymj9;o8i(ZLtRaTRmc~5w+Tp|Jx)4 z<)iwK(tXz;v}9A|VPCLo$9_}WLU@IzS8J!R)LexKw2%;q$Y1W8YZD4dF-couFi zl2{?UtV5=Xg@#<9+WNvsGLl%rt4XRkq#$GVe+kzLE@iKk{=t2_+gbecCI89lWN2jP zlrv|>)!M)H@1}?c-yPU_+9pWqiUVbvNh88X-p&Xw1zw18pEd{p_fff=X zk@QQS3t^>;T6KziRB`yKmYV+_<4}_z={KUKCnFN zg$T5e5Q+Bfg%@5<+GpwuN@i`fZ@~EmjBg-kprNiEyJD)8bSaVnSI$LuV{P-k8eO*RD>&OpXz)=UA;Pi5zvEaQ z^IIG1%&&q4v=J>d2?NjH zzW+X#KE<}R|4^V3OS_2GN!v%{MyeZcu{BS+)3XE>=h#Kv^E;o(f?c5>lWG}jP>oh=pL>diL>!Q zgh)58?^Mm}js@MdaaCFWgfiiq7sLYYcVxvb){x=1-0hV*1MXSMeehp^@A_Wb(+TjB zZ*GiYJuZYF$gzYhK+F$72~A1Gj73)Y)kUc)R0qu{6%Jm7*2ki2etzRmxEA^fOk+q% zrTHc%rij32Ca74c8Jja1rqHU{R1vGvd}gB9G|!-4@G}P46eA#7Gm3S05_y1JCgX;P zT5<$s5w+2%6{678yycji8bZHJL??n!^&pMzX|P0qKXYaXIYRu9p(YM<=Cj8`{r~GY z^VLFzkP$;nUlwzsFX&Vv9la$A*L`yXm#qW6j-7UKKkMknF$Ak3AVfm=^4(&8GKTP4 zR(i%(AXc1|P>~V*;!S^!_z5s=NE;Es^D^N1C3u_D--g)p9jN(q3EpC`4+Y|jT>t+P zFaa0;cX`95?D*0v+*i7l!$0%+$r@k~*lev;AKhUp&T!`PUZ{CR-gTK_(YKAzuE6d^th_Z`xWm15>0x2$?rWa zX`B!V;k|+Sp*dKPdTjpHNFb_49Eu(f_|8XTe(4IBHl&SAH15aGm#|CYmQ@_WWNy9( z7|Xn6S~&|zL#D%`PSC2-Sd~8eZC6$*l=m^p?t(?nN^7z)jEP0q7vdTZ(JzE5)I&?!a~@UGJo+QBMyl64z4yJMf7%vqqTnw>paqYSk<8(m<) z@CDR$JPwGbfTtEL3Hj52Yu(R#geHNv+Ie66lMNQ|7jA=`} zMu3`$y0^_fEX)S^(?+xbkv~7y!b$#iZEmLtlCIUH zq$stlSw5#%JhYmhv%^OiYFZMusg`CkKcD5+>dAl127UIe+sQk>E2mP$ z-k><>g>r&%_5Z~ZT*@j-dzMJWKb$|#H}GWNK(@P~2F`bzzylv!BYouVgb$nQa9opK za;M%8`giGkXEo1+KsRV1Euiz<0Rjh3Kk7rzQEMIEUJn3R*bb$_=hQS*2Pg0m2XZgT zNrfjb&>Op5R*nHDkTbF8whx+?(F?tfaiwIpW71fr$++B3?9~dXKFa$A5-6%xD#;qM$Heh83)t8J#>b62XKq=&4yeBd_@-B zbsXTm$G+Qg4KRHH`e5QKQ&N765@}LuO2#VC;oDZJ(Q1_gmD;=&NFqUINqa%RC zk=1Mn^pE26ITT25Nz2MSD4-6|B&ex)}oJc zA5B-sb1F;NTj1jV#WXJE_LVtMYHf*6@K5KD^9?+$H;~=j@ET_UH8540G(sU2njm|T zBv{_GV+fm3oL+Wk|EoCI`}bP+Yh5TjTrnc9e9jdi62b=`|I*A43rkEGz z>jBmB^(vM&kkJ;K07cVGk{=A*^{Nc>mL9DexaJ(X6 z@GymzGk~}woBQoRjn?XyDlSa`kB+mEoW^_r{?U)^BBx(*2UJmxX{+acG0y9(F@`E! zu!IG$Lbn zYpdc6o73Ie3B;U7W`n!%gJk_#`l2P_l7-wwsnf9$k8KrNSp2-<%v^CXssxRK=~YkO zmX!y}v9HjUeOQpXKwFl2EMs5CkqzuU7@8O=aZ_Cz2GHz3-V5;4GIVnJLDyXI|H zD^nWrOu#GYHb>%$0OW9i<)!lV&Q7$8&mgy(l7k&0B;BVE$OK?u{ zPQjt6nvHew%7;wsH_jVZ>ERJuPC+p}eEWyud_4gR3lk#U5H6s<4L`rv>TkpUNnr2g zml*wI&ZWZIS5J}xQWE3XcI>Pp%5AZfLiwV!)ZX%fA_Dz-VH*a8w*=hTp5D}3Cig!nP0nM-qNd=0H*{meZV%L zjcG%WyjU!g`WXF6)5GzrtC zvw9d_v8SKaAvUe#m)6t^dYR_k=pHq3?K|LN>yl87+wDJn&VzJmrk@EBXdxjI+x^%2 z8N3v6sm6*et{bt@6VCI4jR11;1J4f*rl*xOl(Qsln%==X(NBcW{je_t#qV1mEbN4< zxYmT-r6Dlt{5Jo)*KpHFOr$O0%Q)>x6np7)Pu&t!npW$m!aq*zk0S}h%QXDTTC&drU{ zskpYCmwbt_%CxG#-M3;DA;KB|1^d#lAij$1CS#3mw~O`61$^<}Z+%$d9BoV+5v%Y8 zp3e)b6tV*ui7b1`3J>WR@Z3tTWKBj&qEgF5Dfb;Mi>r;lC~C_9PRoDv$bn-qSymTA z89S=p#0+9G#n2T$PlWZ-TGVXpSmtH!Dk_%>>*cb#YrmnER*VpV77`*c5np`tyfBf| zfO(OMHaV`%78yJ&MF+Cz@Z*}>i>SK6wvA;Pf|@&e*3s3#l}zpO%^S_CPE^gbETJt< z3nu=vX@(~d53i4}E5Zi1H^$AY0GKwWjfmB;;F_smQln~+;U z^22H5JF1cIZ76Md@^dVLRMQ~hkwsq|ZIuSnuDsG+p~jW#3IGzX`*u*Ve#9fp$QL5e zLP8`SD9~+uv!E2xClg;Jliry3Il`zs__Fq;R$Yie?dAy;;wC}3?<8`b$kQ{_2-LGf z$>{#G_Vn5tU`vUmY-EhXWlR|D|BfzY`;;E#-peh)rK6Eg9^?Pnl?$rwsN;uDVuk#2NN-hR9{7W`H7{-Ih}Al!f$us{d0JulmT zEQs>;z1cHloIJ|&sDqgxT0==oWzEDFW)tMvgM-Q6!#qEJ_SKnR;F|Y+^vbC))6Ya! z+^_&wJ}W?oFzV>3HM_82)U-O{`9Q4EI{4IXz~jUl2EPZGHl~eCd?I!rZ?u!@9hB;` zYa84xsotc1nQN&l&a5Qn-jd+UBHx4VB^QavHkjWT{YfnqFNSL@DKH-NaV z;N5fgZoL3lxFJz}f!?hGYdN2+dgeU!pG3+kSHs}2g$!JPy|1B!9RnrTmkbmtaZA}E zuIvK>-+MD;nHSU_DtY6hkU|7nNQlG%e4jIWuBm6p0Zs$_@i@S-^q!p84aJe?r54x& z=J*DwGs18L=|3EOmxACBBBa-y^Y5F`bB70GS>jkEWSvt2mD~ih25V5Zq+bo$aui?#psI= z|2%iDU1xlR_Z~XqBahm9lk+4S?SGYv=NqNJao^!K$VK%SmVaTEWQ{hsS?YsrxkavK zE9lq;17U3xv^?ay%Ktso¬U1@zrcb!o5r150z|n_ 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%0A_tdD;+#E~}s0{1M<_YW* zwU&p8)mZ&znoAfiLO^E=Co)1J;Q|E=J9IK(pHU`xqIxZ*w7Uh%!y~b(lY~=&XT9am zkC>1^CTytU6{TPj#WLA?`kTnQ{K`?GaDat`GB#y)`~_<=)7MBbiQ{%(wHYQdGGq?> z52&#T#0imIX5>u)+0yy=NU!n8t@17vUzQSlxqeK$uS}4g_!wBgdKnse@92DnGJpHF zEnDpm;MwEGFClz3@r&P97;dK)TreRp|rV|i{JF*GzEWo)+q_`v!(0feht zjZWK&2Y9{b-Cjy&ds+0!9}9r*pWIoAuN%4e>2xI5@M|f6XerIHO;B zi$U4o4%Ma-h$`oS?zp1bSpAMXESh78W~c|N)UNK?uu7YRC?q}fE3{`nOeCv`Hizfs zUsmAacwXXSkuhqmlQB9(9s0-;8+$+NGX4P)K8w#Ym-m3qO9!@VL4AYkgay$FnIOx6 z+_XRD*j8jnnwpNUI|71>dp_>J1lTqA{q01fvZ4N)y_9jeV|G$*!c7|OUmF43GpfYp zVZi#W4fPfyTmu1z{OK*tfA-A{XlFGP^a1bq#2+Z-I(lA z_fUyU9Er*XGBL7A;WqypD>o-e^j~&9N)ksRCb$JyxMs;reW;{5AS+db5+YM?; zshysa=XQo+x~Ryt?i8e1@y7K1#hE2b>p&*R1n%|QQ_&R-#Y?8Frv`1?zpD2am|tX5 zPqw9~&QR&5LWhCZjcgG{81+|6Z3ed5wKSFR^tG?r4*CLTqR538|S_x zN`VJIIJ1FXguNhpF@)SWfec5G!DJTQE1Kg0ON;Lr?$3F$-w!!9& z9^arU)wHUzrKWYM=k;K_gVYg})+K0^6y17DLZyK+Nrt6Nx8=e@vznG11OiwAS=g5@ zR3U?IWhkIj=?TF})i#*EaY(;=9^)oP)`?aVEW~*(=B@*f^XH#`fuz6~T2GeM-aZ?u zE-ZDv^M#_bVD5bg>^N;7W|+?Ixnn*;Y1;@FOeN=rdOfKtaMW1X3`FHpJRWMJzS>Z>zB zs4j%%n`dMMWp2A_t%lJcG^96aHP=D3JdEgG8S!`IpVRAaS@kFEX4~<#S;fB77O{wL zZ-^ep5qtz#n{lP0^t<0L#KXkBUsCnn6su5H+pV6Wo@w7JRz z*oj54{il~lgKkTGOHgKIgH{9Hih%nJP7A&Wy!}YNd`*Bm8SQ*{9ysAu*L_`q4|M-? z@mXLppQ3^9R!p3G8hBG!;)7wpKISLSo&!el`d?4t0pIw9CrY;|Hfv5?aNMAIy^ z_OY9XVMLUWEql2jtI1fE5r3h_3Pk2_dkAr~-ZI!L`V|?5HDkDLg$9{4+91^x*ypk;<^mdieKgnI6@u(S ztf8up2vvUGOp1(and5r<9)^ru?H`G&=}7-kZ8;>wDk$z)XX%vClMNB`Q@qNwhaX~n z`NWI%IGRh6g+$Gee|Od4W!Qc&#U1MkEMH@^(FqO4T>Dh_6B@+CtZ;4xe0ch)^kQgu zINH1(;a8>OPZ16py)~~N@Qo$y9VjE4-I(17RBX<6j*e<)oIPcQs>1EmCZ^Wc(V{Q> zn}rHZQcc3JuL~Y?6ltHwWj2AdCv8iB4AmQuKc$F@Mh0r+-+9vzvg^!k24&;7QLg_b z;QzBIocEsD^xPATCHRs#f4=7zNVe_8t(vN81=gn;GX?jW-F9~_II_ySyc92MVzX<& zy~}IOp?|G!B>M4jbqFSd?EDFEmo&=}Re_IPds=)g z@G>FtI)Qa>pj2p~ik(We6`id;rJrptTHWi&BftTzbZ{>7TQ?nCZ#LBIpj@#k_78?q zi8aZ3vb8U)OacGah1QY*Lne^U0Ujx*E<}!UO;9b6J#gepJy9Cdf|cHc)-Le`_OZFUbBUCSg+3Fi!1s%9p7>Rr(#Ljphi;oZk0K zkG)>VgV_`E@ESf*%A!59uCq@?YR3fGiCQI^c|S#i3r*j5BthK^;L|xe**Q8fwW9_>3+xTEQN=8Cx{z-kL;nl)&63N?C_JpJjxwv4(wFlc zvGBx%|7`9`-cf`O-##;b=UM1x%X#)oZ!%@3@GvIG1Qyy9-B%0^XHMzvbPj?u`mVdY z7?wnLx7R%`0*`3$rhI+iGPkBKyb7G}&yY`+z$tO7`jYbR*=n566gWQp_EEy?UtAh~ z3lC7ix&GH1z|mKFE|0~!3 z#zvMc^W`@0l_x&eZewF;`+w(8QoWvrW;^u&5p}&)R5wx&r0$EIzax4R&3+y!j3U*@aj`RR>lZ3OOD4dlyCjPZaP>s@Ee+{blo3 zhYO20U(%T12L5$pC+V?Tf0-bg;KqIFYLOokT-zy;E*BukF2EWp_1EFov(|DZpopkC zl0FeKaPTVXV9BW@TCNi$i4vpqUjqZ{(jP=XLlaO^n3Qw=XJ(+?ZgjgF1sV1}Qpb5d zj!8x}f{#HR+XmdTp-f~>f64jJ1k6^8l1SiE^0I>~G#Z$g+&#MS1)YD~^l;1K}5+*ICiKoZR!@NW49JHPF%*3(|1~s=n8D#y-juv4V)`=oU{{yV;yEC z-UJ?fs-H_5@T9=dnzw;3<>jaU34Fvz{G4#Yj8=;e0LOc;6ki8E{;}hWQ^4ce^>ZhD ztd;lvGr;m^H45ASPR@Vv2rYQngR%#6cC<$=JUdaFv@PMp&Vtas@F;~OP#hK^XS5eD zZ33hmxwtyCFN;DeEO4VX=e#%MqBQ81*R>)H??;B?8R;QtLpz~K2sedl7uiW@&%Dit z<|jKC;mx-W*d2ZzGh%Y1ZfDlPZFVUA+8p%OPkMK6JuzKfoiANZlbq2vc(b|ZFS)wj-AFKd2l)hEsf z0`CXCp#NuCxJX@4C0vu!QWe^&UzX@&YR`>H#o2g%sES4X;uv;yr#7=Pe!FQeiW|>q z-$Yk{HDrRy@mY}J4$&N+c{+2Uz8#@C_NnJdHv#zDDIHyNAnj-PU;QMMn=X}WE$t9n-AdeS*utc+OPEmpINI z(b;hUe$#5g>aSL@-dc<>4`^T%V<%k!!J*3rR(K6u`s=HRT_1y#Sj zNELR*k-vCJWzqSmY2=sTz!HNDk~F;=dM|C|(%x&L3eYga ze@Kdp5Xm$6tVoeiM0F!}O?p6qvj{YZU~uG^2@F}=zfSB4y@4A7aiq*pb<*tGs++Z2|sA{pHtAc@fh4B{>Fg-n5!p%A3-QDQ|dG zb@N-O;o;pesoEACJw4qfG{Ca!(*Rzbj%@iw-ZUo21h}eYXkaq-!zVWg9+=c}_jTZ% ztL8NHpbKo@9JCv_)x6O`?SLQs@pSZd;C8hJ`1u2~8?qZYJBl3b9qjE%5B%iOs0!9x z9wA|Vf-IL^$mt^b6)-tDb4glub_TRtlXFvN@YXtopIvP(Wa?+2VUEk>%}UR~(`IMq z;7H!(@4ggq5EvSF9Z~04P+Q0?Qhw=imtHS9N({f4Z&~f?Swq!+v7)E{m^}vR9fO|D z@o0u)-4&nirDC`Zm}QhYh7G$!Ud{w(&hs#)6Pw$e9Www8n4o!M&*gEzQ7ex2r-lGu8z5;)c-GS8=eq&h)QXai0^TxetW`(g z*3;*W90?psQ*{hzF%^d}l`i4eZ~&(+Qk8dP3a^!`Y4|jNc%kmwP|u{=bKjm4$`5S^nIf zCLfGF(1~*X{DUtrSkxVfrnY5WwI<#84s6mLJ^yRNBCr&jf2lg~Ek=T%HJiQ?ar>)w zn;Krmky|5M;t)J60j z_^+xLOP>R-c5TE~x`9hxmyTzE*$sy*-8}XbaNwa@cj^4gbJ3eA(ezmEa*@>j&zfHg zqyx`uRpr75;GKo$H97&ju3@pypMX1soGU?zr|*|lsA_`eTf9POPKl&#+ot_R%-p$B z=e9ab=MS2_v;uy2omb%yFne+K!m6Q;Pm{iYYWT3d0y+HNAsJcP>KR#YtCj`it7l}r zUT<(Bl=h@z0Agy@N@#~Ns3IqugvQ-qDutJ=oXM}Y;Zeuohw<_SlCGJQ!f`=?Fj;9> zGH)g~mO9|b{c6Mz+qu}L>t!IoP8>76Wla3w`yZw6vV$PIK(lD$IwIhd4&^%11&`0M zY%2i%*hSQa2kdvOc;7m}u~8Lk)d03!vujOl;4kTyRxSj#UcYfcd0_Tn?17YD)s9PS z#LUq;ZHdOG%zS_4JATR}@2>cizGXABIyoN?jKM~AH%4E=aee%?iS%Wdamjs3Gki)W z$OL>&S^C~bgZ;Lxw%en@%&7flH-M=SmLu@JMPH_025#J?LVzc15mce`eN;`C#=u)kJ=jeZ zHK%pme%li`=vKP$E%57*2CZp5*61Ry$yaLM^L$fxVD{kbft8vs;s%YMMf3ISM9m>8 zNApRqe@q|_r}+aqa~rqX)8Wv{%!uJV9yo}qX4D-rqk0sMl9vfnjKs)MJlg7!6^@+d z)5fi?fJfZ4#&KxS`&03}CJ=0~)%UMiz`kWtn_B>v3@kQ!8F1IYpGu1K-f#JKp{a8jVr>$sF{&Lgsa?~ zkLGf5HU3p^lYo|8ZeeMQ6_m59S}bYZkgOkfDPDngG{GgSAPN~OStJgVpe+^ZXb##M z9I)hSLzKS;3fyS8(v%-Y=tSZ^Vks4;)w7DebuZMObARYAh5n9r_Lp(|((5HfcEZpf zUN*BbOduu7Pn&-EQzOEEzv(0OEg9!(y77Czry0S%6K z8{y9f-t987d=212Qx9IM0G!%?)6|;4o&I{&j*3&2YqrBq)dA2 zV!kIo!7MthSiM#V%pQn62&$r@E``vJ#_0deT57OI2hIEo zO-{%AQxF>aV%(=BKj@e>4@%JDoe6ksPbyUd4WE~6;7+N{o4<6Ku4!C2Tu2TSg9Z|dja;~%1_Vdb_8@j{Y#t7m$7PoC(STHp z4cKe!pL0h7H#YuU(i!-mZNPncp)*1KeEGoa1wB``TwfKq-3ZWzd!8)?d~I1w_-No>k_K)ifU7o`e2DJPJ{Wtxgj+M*OXB>M0#g>z^Y5v6ZC@GS zX^(e3C06y|YU6g&_471pzn|V$_j}rlsFakWv)ZD}v{0mh-N9sjd(Q8n&4xJCp4rSF z6X({61OwMSi$qCo@8z}-}hX!fVe zu04P)-2Bh20UnpyvqBi~k-|HcQ_-MfQ5HUg+Z7BK5?;5;(hT9>Z-j_kW+8yf1d9_<&=_&wBurqv}tlPYX9`vEA*ZX znp_c2z`qXG+cMAElzs~h=7pWCNEA+7m!X&=Cdf|Aa%fR1KN>z?_GB)RLowRiJ0*~A z4y=1YI|sx+3IqaX<^G(sxmup^to(jCyte<=?Z@%jCX{T;1^u+p3WZC^&qnfS@AdVk zA(@k#R&aEog7DC)8Fk)t?Z?!Tf_|7FJE7YE0Y6TBu!yPEjs^W>?11W)E>`OR`Ny<% zfb0=<6pii`^rW>1M0G*pEQ}(qKygaPHbsq+t#x+hhp5X!zh8HH*hADXI2BcEL0KI8 zZmsOx9p7Z)UuR7f?AsK@w_yV8#O|_-{K}z0*n>$oBOrLIw8WnWyt|KhpB%Wu5bOAg zz)mYao(~6ZS1rb)25|JpH#@_CZ(79-asrmmF8#VE@PbVsOa(4@C;grjc*O45s%?SG zwYD4`3cU2K#qRFFmF`LmTNGJ6glY%cZE78L5ZI=O(GdCo99J>$@y&zk5`M^! zNIehCK2TY&w*gmx{bvk|rt_zqrw+IUeEQ@i3%Xw2HY=LlBl(nza|p8!-TqHWl>lI+ zE;(@9Y3>Rz7pJZ5O|)@dVp(9eBL`Z_k@m+Gn6;(qvKpZ@28g^>4BuEBH4-a0hB^sK zFr(OPq}V_%gUX|&F5#kWWvHt<$$9RfQklfn2g__}7*(2*#zA-0YEPSh+G?+@$W%PS z{)dF!i0lj{065xV_rJE#8INVaCj6Bcz43b7{=d|+yAt6lHtjtN z;W+y{$m|6bp(lzJ2m}JPd6V$8<$+SUi!!H=2M>2|NjUb@;c!;gVyC}J#XJd4 zae<}0=Fwr&aEuGQI=pI#6(TZp8Dd%yyeF>CBln8_2%;Qa^rhLow8syv5Ti^31^($W z!QKfRpVaI1Wh~DE0nt^{NXIyhPX0ji*L$sNUOS2F9dA4oqYH+kUy=^~=qJ`!+z0!0Sz6XoK;YO|k_@GSiwZoWK zdm&K4Y*12FG<@oKp;sDkzb!?}RstSa#j?mA;Mk-ViRFOThm|nh4ZOCHZ*Xy7GN0%M z3tlGA&JWCP7`ED>0)+?VFIs;Coj-H7{wZT%;XLV7YA?%uBlx9oH8aN)<-A--lwbbp^V99yzHJ8j#sZ-=qJvs7o%u zp9b{3cLaD(SH>i40+@Oej%kX!lBPw~ZVfZ2uFg;c7p-qR$qC4E)TGVS1}RO=jtjWNWd zisZZ~g@*F8KM8RN}AmPSmyt3)*Rp`ywZ=m0N37UabOW}SKC z4X?No_}Yp^C%XfS?p+xOu@O*KNR#$qT9k18>N+ zv;7X>8YkE04+U-!D42Z|_;&m4R(*kQ_IVY39C*?5G8g*+pD-RLISKr+I2J>|d%mvj zc@~&|aAWO3z$N>p##{u>*JSsKc;IXOKSW&z?%Q#c@)q+ zQ{d0r7B@};KIRl^@ea6X;oD`BfsO8TTxSGV_1nP_TM4(3^4FLH$Bv$9Lm$@Z%-1W0 zfZ2yGTK8JfGQc76=?&?;|Eha}%D|^2XWvr$5?*I4Y=PGYBmNn9SN`pN9e|y4g>9qz zf3fzAuMgbCb=hHhzWUB9+l>XzwP1}R7Wi2a#e$i@cEgrd?gPB%Y{6P3RcdbXjEq#VOx%%*_74 zJV&c(g@7ksDxOT=*Vel1^HRW-`gimk2;6OJ{%I9~=d4+JfiP1%pZY28^!*Xh>f|VL zR_1Jok+O}PR$AZiKn#TN(+sWyL+i^1&AC9u>RLKJMD0*na^avW5p`XEi*N%ROWJO` z)C>2NckVfUDvq3zQ=lRfWCFuNqKh9zgWTy&7L0^o{Vy^1iF&WJ>x)*SftSqwJns;2 z?PAf>#{iFib>_o<;2DEM8jS;fy0GV1V$gf=C@5k)uyE9;-MfH|XYCz60oXODNYSmp zm&Z?i$dt;E9@(5ibg@%{WwA~&G5%d!%2ym2 z$jQMt!2?9W-x(#9hm%tXfx1|{5*3pG*`Gp@vBP^?;9B)*Q#v)cbgsp2YbPf z+4OMYxFd9Zl8*36;(xzB#{<1yN{43Lj;2lzYRfz{qar#!n+wIOGbT924;;{n2+P(-c=(T=9BK$K_o3jRd$y{=#3_h?W#=&V~2xF98VlXkU6!^dydl`9F{ zFQRr6ns?k=ujBoW3x<9BT1%5NyrP&4Gp7%@NAZ#+aQtMm57w_~7=>a@hQF81PV6WAe zP7*HtW$2*yz;-7p6r~rdTG`jh6fe$RbaDrmGX;Qy5>D{x{F0;dUz8@?W``x=JIh)) zR{`$&a>+5e-ra(aqXfXq0k3@9+@5#zJeLnPxAp*bUGC74F#FJ=vJ>8j zfl-@RXy;_FtUvZM_Gq;ukd`l6j=-#TC^I^%M%cbv90mD@aB-$y(jaNtVpmnvsS@D^ zdaL_y-EjC1^zGzYO}Y44oxbhL`gR?QBW+Hiz(?~cUGDe9@q%5aas{AzH521zwZM_< z+Y~>`1lWn-Nt-Pq(V*Vzd3Ajuc;BYR`~JW)pDx_j40xsKcE@DkJGo3|Gyy)*H*bp( zz}{5$0=P!*qm3p42k-wh)*X0k_=H|FfJFmpR%`%#v6#f+0B{@c^Tri`cewO_nGU?P z$sg}a0<#AnV7hl;QQ({WdU;OZJbM9U-?8JO0Vs#$r<)DceJA^KTTXY0kp8%|FB%P$ z>;H{L`GWEeHJxd)5sIJlC+7?N>|Y=$s0rt%wbxn$4K2?``D15h$2M(=^=9L*Rpi(L z3=?gsRvvEGPK9?rsiEnoWrFMkmpP7x4>r42AVJ*=h!7KmP+|d1)vaOA%R=S67Fci) zRZF&39-c%=2mT_B?J>6EP)G9V5rAa`QEfyhh%B@)Nhf~Ufh zdEoL*)3(T@NH7#*Wf{p55!tPjv4TGI_*~?c*4WH}zb~IiCQw#ZkC5+-TpEtJ=m*43 zi0p*iV#HwVgn)Am8%pl@Wl|Ek_e%qTY^h8hvZgScIb%+kdG*eH`mt zKhdc!w!cc98JQA@BWKK*p))f-uXG7($9Na{*~$td^L9RvWCFA4L6(c3dDz}4~imO-VT6@8y7+QAw zzs)BQ3i*aCbPY{swWq&1Oi1A1OnpsvNiO0O5z%iz|HZvulD{_>kEgBbDJ|HDzHzW@ zT@04iNw4kW&x1>J{%hm0AE0@!{Z7WZW2w!lI>qBLL3X02OLNaCG+f`K-(fchmb&cr zs5$VVFR`Wgz@~Nu9qIz-I$cLr4Omz;t+@km%A=#3D+A9xQ|T13pw8(W)I1+>#I6}1 z-T+57>^wLxaLDS-`ES#CzlZ)tz`75}bpHEJwHcR&?6ejaxgcn?%%o~{ZFX& z(2`zUz*Yk-V`X?ZrrJ+T4mF$S1xAD+^5QLV+|N&_kO!KS$Le$8&Nyke$d? zBj&?&G~f;ODb)djQRA!e#scT_+%n4#c-zF$`Qw1?x*d`<2F~Bd)H@vb$diLq%Nmc8jEV;ae- z2xYeB9K$84xtU0}B(>i3lvST}Lb*)L3lU;PPic6Fi*mk!pBeL|L=x4FXaIFjy97(P zBv!5#wN^tqJ^sYhY@Q9!>{{ zAgR44=fY{G47F2L3L2uW6x6%&Chy9~b2)Oh?Ip^G**pDXo_HAi0}_||EXR?viYU~M z2{M8A;~Mp-ga+?Sm)H-6AiDr-$XO8%_G*JXBdx?6lM=#0qp@il%GfAXg@F2DK`ITQ zDg;4UMv3~R%?W@>BH=ZbDALwSX-nT%+*=ZYU46=za|17wL^Gd8wTkt^3OA673Lq12 z4$qyohhfgJ0B1QUC@B0H?Ij8XGb*CwT8mmeOP(!iX*yOCUub&LRjE6gm%|*Vx7qX~ zma-zDvmqvH2Yzin0-w24zw}hgyr8yf4b8@W1dp6=876XfmiN$*PgpC557sJChQ-pp{A&4Ckbz zP!?5yJ z(34M-|BUN^quqvn2YW(ax^&6iFN`S|h1D|wcEa*%i19!)XxL|-rwoDvE{`la2Y7o= zlp_ab7iJe!DV$KfSjtg2RZW!NOW{)5H{wFhv=uJ3CmYe29(`&%=&1wT!c3p8NA{9T zWeP_jXH1X@tUXZLv^EsXaa6fdy&zcPy5n&h;PT?_ZwObcb-bDhaJj?9=0^ehJ2iQ^ zAI>)OC38Y!fmdxP@nQ$?U-`OMjsp&kJ5@gf*sXW9Hu1puURXEl3f!+mfdUD@^}QQJ zn*q~i|4?A(&!bE};DM)odE}i6{PD)yi|)W~mL=_`0J9fjFQQacDa^~rZNU_`DLUZ3;?5i4Va*6NXy7P`Wc5btu4EZ@lBZnmDAIu+34xXRU2{~ojQfq1KAwjE~G%* z7)*`bM-3exj43d1{?V$}v3zd2X6=YuY`sk!olKCO$lG~MQeQND&^I)W1bv$brgZ|| zI&Gl~VcS!;2e$!^Tv($b;WD!-ZF+5vx7-KjLQ-*Kix+Fh(2W%LeS;Oi{twH~BFr9)J&3ZWIAla&{IWfTIkf&M zol8zHl8WmDf#C}!R2xL~>4t1)&})TB#oc~nV5zbfS=Beti!x%DOjm6jydQ?kz}?~J zH$aK+T(Me9!~OQ~f+e(i5ffl1(zZN*asUky+I2th01al9yC}Q{?0SBg2jRbF->!2L z*nYv%8icRaXu*2~yy@_O%hZb^>+ow9!Htdfi9)HDO?lSr^EP0j;-&eAJs5i+RWHgg zkbc=-^rPmRZ(eEr7iN{D!u8M}Y%{GdaB11904 zj;^430)zL=Zcg<9*bUi@M0}wmq7T)~s5$)qzd8TEsnKvF%i($3m=4PI0Dt|T{Ymar zx2RDP$Tzh2P0ZK|rO`9LRTW?k^||?EyE%?|*4(>GoaX2DiPGkL*fSSMRVSSYQe4bMMwi!aKb`zqSB2y|8C8dHqJOd|8?B2=CnW$$iOg zI8Nw$PZP&qJUDS0&QDx-qcq9q@+jjq9XP$+p>u>g*WUe-@Zh6QALIjmd+z$o8NmLf z-nF9VDPsD;VdxfsX`BO=bfd-@3Y| zDDe4eqX!U{AW69du(2@e5#gmpI|q~o?!Nb?H+`5|!*BL32mJc#mC=ORhh!g4#ODk6 z_Kw0#c6G89*WOwplZHs;k=O%Lhv>2;lXj36ZCz%{vaYpNl+}DibnidE&w)*BtScS^?o#5u=VM@pVcS|!mC1u9 zRU#e&?+qJZMO7);1B|phdV;D}+IM-iBwMevvM>3seHAAH5j=5b2Csvv28!mUlw8UzNa5_z) z{7jIY$kl__ydhZL?ruNZbOajYZsawMiksB<=+|Nx@XP*H%TTeA+8gtqP6W2JX?@BT zm}4;kjx!qe=>u+9?ZPT!+TMP1YpLyX;F2q2+lBxaHg9(Q4)EI&tp)}F>pmdYXPgA; zl_0SWDiz)vsbIvc02;B%5^TZKpYa_v=$Vh?VAZ7QUTpO)uA_|hw zbt$sFLYX8u%J4QJ{p)uQJl2al#)Gj3;f5oZ9}srjNbe>;EbLfdr>r8b<4kpMPo*%KL*%f{mW##ai1c&mlIaVy7qsnh>aV)UKG4L3G5O1 z!z&C}hpn$!+y3IW!PK^}`#o7_HW!*<++YIi#F4(!rF+nz(ES4!J3(-KbKl37xX@ym zzh4L7qLdyAJg+hm4uCIC>L1Dnwzha$oN&A0io6K(Gixh*rD-8SZWr4G);60(0#`(i0D61_&-S|@Rx@1Q56&ExNE zFGNiW2pQV-XpHc(IAl&q18ABjp>RozIF|0B+62@HSNvZ5+>U%MU`(ff3XlbX{SJ=3 z^_Sl4px5K}|4nWiS(P(?oHyMx7=O+Alk)|BuP=}|z!4LRb*8ZtU;o%WU;~+@LXm^By_3K(!;s4f*rg#|;QV{VPbP;tAOlo4m?tCGVQRjO=Ptv*V6i$S zr7xQ}L0?$R4ySqayH=3Ug)hF;1SbGh1LfyK^*zOJ}U=1lcnQY_v#WaV562jPTzy2G%s)N3C)2Wo^=>;5jbR9 z-W5K;0Y?k17y}%!BF|CEFzq1;>74+)+Nw(aw!ky5^bKzhy#MHy(f+{B9+##!1s;>U zVisknrq#G|pf2#uS5wnE0<#xpFUoZYM?qE*?18a?GMf5bxLF>`5(zdvNl-UcRAUzY ziT|$vcP^^&ahWFgWV-quF(2N%~*J5S5XV)zO~xK;i58g!kn@b=9Ey< zo^z;)v^EhE^07t4Ywr?yYGFw3(#bYGKaQKrU7JtECPr3Klp$}U+M&h-*@@$I*iC_C9@yIMk`RrwWc9L*3`;FDTibfpwu}Y1tWe-gMFI58 z-ppft^lj5*TRUzZtg8Ap)v;7EG9Ic90gJLc(Df;L=Nan@d79wZCCzd~RqTlKYYp5{ z8%Om#$OM@{(V5qaFG7RPwS!%#EOWxzr?;m7-;zz(N_f$^m{I+KO9rnwSQD7tfL)mT zcJ|JW%FwBn5-e20)nAP=u+Xbj*;j(xM5_r7od`y&$gS{dC9ojRY5*Bm|eFgl5ilc!X-N`1Yn}{1swD(Mg7G#4- z37ds0@A@J5w&iBqIXHG)ap3(j==X^)t#1E`qk1sW6?isg@PYGaFf-CPb{7QMg;+y$ z2nW8CgW5a)JJhS7eKft{OJmi}oK`;{rN6evP1DoHJZ|iWSNvssZd}0&<@&#+k>v{W zX?d;lNK9J(UQ556xB3750z(Q3xm{*&E%R$w6EN0oW%5~?Qn+2SA()|~1z)o`t7^eWQ+1z7h zMc{T#Yph5Dwu%q4t^j=O&4@OMz@_>Zn@|q8_44C)5`aDbIJdhDus^w8VP4am=hzG^`yHp7qaS~IB^#Zi-xO={5{MlCy}9qc#(+ml?A^( z-MWz8Z*Ua>1_j@;?phnd3B}o(N+Rv6}Ab7Y4Y$K%Z)S{N^1CW=0VwGZSP2 zxw@q>}a0pD4$>{%aRzgl5c z34e`CGJOlGiFFAR-hamZ*$c3u^cVyLBB8xwo3t(A*bt($6xFgry}nTG7r)ewPEeOg zs;x&fuHTcyeIg?yk|6bJK(!x}q5aCvsiD2%$cRvkIOs`WmcWy-{x{fy&+Xjn{7`CI z)tHxUQZC_ppYMF3=q$WK?W?q>3l&H#74;67T{y({u&_LSxO}dH z(R6-R{-mTPz((e=FRA_ExU&~#124Wge480CdrS*J+|diwf-@bii>zIe(8_c=yE8SC5jib3X?48YaL_ zbU876RChF36wfy%!4(_K_5}mK39jQnTA!9`&g%*6RHS|<`j`twdX$R+4u80*rYZ2E zzJA{Qf$y}C1mq@pcnK1KZHG^}PY-bUahx<2xWI^UA%w?XFPk(Pm_4BP2y?+C4a{C7 z`jSf%x}NgK;;W1G>GqW@30MrpA?gJi1u6GHb$C{^yboHdcUqEX`=`!wa&iSfcUE=A=*i}5RH`keYXXtRyKF@j; z6*LVRwdU5fA@gzMx&%cCFhM5Jy60iB65G1#C9^jShTL;bn&MVqD{5CFF zBz@)bS-|U0u5Wk**delUk2$~x^EcbP8n{>W8DHiCvj<=|=2RMQz=nSV5j)ul9P$u@ z%NYh8>`4618j(PnIfq0R?PtsLu;n$9ga=ClQEyw-0T2Qp3Bi0k{j7A+z>NK!NHRJO4zoLjGDHKTn?M)Lnip|#hDzmSJpnTH%# zlk-SwEBH`zrr;)tJ+2%<2*g;g?q=0->_7kH6xzF46nC%JF{a?;kz|5Qz^`)U$$z3j z^Nx727C6;&6}ZPNVd1z2{H_;Y3#8)S#bBgNce zG14|LthS7+RB9VRzC%?EK}1gp7l-{X&81&^c1fyNJxlZdQ#-E#{)l{G`Y3z4!ulfg zlj)_}{AU8}#K5;BOBF`L?t`O3E};Rt5W9d%p);sAv!l>idd~ho%_Ysax8KZK`n3jV zZvAg`#K@|?MXcH3T&wWcU-nOuxEkjjbk?qxRhU_N_9t7%x?)oykEE23Esmp#$5dO1 z&561%;ouW;EW0G{%(!HqS*)dSD9;sbANZ124qSoZ;haBez@oYZ~UM;uQ1L)b2YZ!4Qc zvou&b^xcEXKrm37HJ2b2R^{zeIR%4Iep*#POV=}}Wm|n8|2JPGv_t80-08b}z=e)n z_K>azTcI>KK+U59(WAtkDUBg0l_D>YTkO*XcRwB%wqqGJ~>v@`Ru+2zvw!InQT zeMIeZ^P@mBPR9#D$C&^-ac12eo04eoHsH#Xoe;cXF?fU*aF@olj%^3NmRw?GEO4EM zV=iw6PF%D)awxE=`Lt$)J(AmQ8v}gk+5L}OfNS1$<9`P36usx!2H=0RfniUuPk@o{`eBv@Nu`#jNgf4m2JLu9iaIsgGShg;m8dQ#2Bk9 zz#1|^W!JFRT1#nc0;x8#O4|e|q(LDXu{~KtD(O#I8MBjTWP})%(y1d-d!q zLj!A$68~$a6C?=OBsHkSt^ReCSiN~NrAVBAF6ds*$zDz;G2}K~W9{7@I+&;R_R&%t zIVC3c9wx|6%<&f7zJ~_37QLoXeO}!QsFYS~^G|;WE~qgC_m(1gC6L@UztS+w<-+6) z!-16RRN3C6USy~|#t^AL0(DUd9EB4UB*kS!5zDI~QBc52gGeeP{@-|jk=0m>US=h8 z7sX$5{`|jvfutf84NQV5o!BJEx_xYq27wV64g$X>PZeS~VB?5-5@dqxM5<8od>I;? z-e)tZ2^y4JyyN9C;Iw3ug7tuPFQ^<(H0qjY$Ms|>g4Y!ie zjyz2@W@=e1jlVSk(Q$8cl`GK@$3HHKjHBV#au9iR8-}BLC7~<88ZtprJLLL1>zVM` zQ8<;qS~ChxFUM1Z8pkawsAU$8Q;}T zypssskF4Es&<55AC=^~-An}aQj>ZT(<4U~ z3mo`y;IQ1dkzmM|owI>QrFH*e0c={(cNOtMU#`%@yBIJ^1YBDJZ07Q{G!J;z`8HL_ z*~}i4J(#l3WpIudB!0}oM$90+`+sD4^rimgstN&c)f+Bc)paplg?pCp+@*@ZXqi}{ zGSSb&_%bqJ&6BXCH#ilquFr%8Q{SQ{u0f=te=`dSV-{6Uk$fy*uOD|Z>VbG@qD<-qR_C)|1mJZ17Ji$1`Mdn7FS z2)ymxqeFz*gRmQO{RX=<%pt7iTw@apCJW`eG^nJFdkmiRUjcJ?5;5*11+2{?%b8HX&ZDY*c;1 z!=MwxKe0;p*IpP?%eQ341?rl@C6%6HE^DiIkb62Gm?Dm=sCpJ>%#Pt1;>g7EHHE4S zS0(cK4Q|}OruuGi3aBnfzfo=A2^BVA^0~e2%s=?}u?GjlGHA4l;A@#IsPYZ~r@y9& zrdsjX*fWM(f8<#Cl~bNjCUHl4My2-q|Fg)kvC-#hf&Xf2i%CdSn^cuIYU23(Uu;zD z|G@r#Q9f<|e?5bHhvQ4@X7g*tdViYp``?|=(x#17*F2_jH!Oeq?uDyozWFA-N&h5V zhnho{iH{iTpN1=U&2>hd;f0yYkG{Z-tG|2ffViR0wf&!5MZ8Sez9v9i7pM!8-7@A( z-|3z)E07_2TTr~89mt(){k=84;Ts-h^{8Sm)Q1$t5YfS_y!Nf5bgA+=(ODZUD~=5n zP7N5ySf+hpG`k>Ad}ijXVc}oylc-gKE>9dJ{e(L>F5r4@V89kr)w{ zBp$!qx^)ln)wUtAi;34R-njc`;)@C+x)l?@dr0dqej%=BRL_{!>f_G54e;MI7*+Di z|Ji5c=NYyBFXl~ui;=9@)lhXT+Eg;wSIpGsO^NF!-0P#ool0raK_UF|y9teiqu#L2 z1y8(8SngQpj51XR+lXHhxBBpN#C_WqcCrv35xKq23&iyV z)@@ur;6>sa6JESgBzUyd2a8`K{`SNhds&I=32RL~y4@KAFDFOmx9{aAteo$wW|eo4 zo%vK*s@9Fp0DTIAxwsSk3$pkWi1>J!wm22!98J~9NajP-=lYacMR!8)0m6I!2fh$p z`LiAE#e&ya!^QtaZ-|XP=X;(1GjB?(5I;&GaR|MVeO~IKCA0$e0z!;)_K}>e3bY*^^-TBCaw$A z1*xq&zI}}FAk|NhZ+J+ZA@t7GK9~0g{R{ain`G%WpTj{uzk4d)U+$e7Ok=&5_mEq+ z5Urhs-~g+=fs76Jrf|XnjlDms!|5B=>eC^SUwVtUgEaYHRUz6}dNSe2&0rxHjzIzO z9l#)aRjTwDF=MGTX8hjzQUdQg$EXJb{5icLA@*DoDzVcf`hVj)ew44cPJMN37@#dW z#i*`_@yz#kC%-g(#7e$rvh2Gbf9Op3MMTl$o=lILUU(pDmOf1qi%vR&e&LhnW=418 z2K(^D>vLdS+WO`m-HCr1lk|z$Q}uny6F-h1{>HXnc1|Sz`Xdid$Rb`nq0=kFh`;ek zapM)lH{Ce>SRdkgM)VBCMkmCyjXv|*%6SeSmMc!Y_j;KiTm$*F%-`Mc&oKZ~X#2s4 zzI-opUApK5g9EdIX&gWxj?L-5;lbP>-JyK2kpon3Jo^;!Z7B5|fhyn77?#cZ9AfC; z{$MVrjq;U&O3wUQuEbfRM@8SF+*PR{?#~)0; zn#-HL&ZslI^wqo{T5!Ycr(YUc0HZEIzfo)UvE?rc{jp|Wc}no#-}Ke34}Y7cfBvOO z{iDK{W#I`h-T2EaO{$%wuwNZIN$W;&l|0bG^6xG*HoRLclFdWymQ_1ZlW^;;^`ClY ze2;G54Y=fk_XyQaB3?(R%Ant0^S=8?$ zN(TMH;$FY0LO6NBfvFqx;aGV0I-`E!)0savtImz{E*g2AczJTz@sw&_;^y1me^9(5 zx$T?DgPg>dEsUJ}D)G57-`!&)K5)3w{uSa`eYWITh&N4Gw_m&?Sv3Qq_r=7W*;0bv zJS>>A;l(K#e6{bN^Xa+2K)pSy;z8WfbC=(H=Hr)vj8ySXm3;K4E^jj9v#bj z6bo(1Y@JcRDR`C{|5qP1#J&^E zd7V+eFtz>zJKJ;Phx6@2#G%ryl6TBYAl`P>XA4&lum9Rj*IhvT({*otEe@6TB-fu_ zllbsUw^c7Bo-ps)qu-FAWB1nWVp~k*#3c|KMC|P%v}DI_9)_5xE>e zlwNT=$N8QCp5u-6Gtd3Bp+*}jDxf^b;Kf<-%^z_-vR(+aUbpZOGIbul^ zZ)xWmbZc*;xXRms%RQ@F(+?yz#DQ_|TH3J=;l}vwyVu~zH0`ss-xGvtw-!fp>Wn(W zZQZIbugeXslDo%02%|2*v~}an4-*fL3yc)kXGC3e;!)xc-F^N04T$T4wQd{TR(~pA z;Q@r~y}$cxrPs^?j{3;Nzn~APXLD8Bf_1(=t8JqcPfx_8Nqq}NdlX;(>E=G!nc@&< zI$bsm<4o5*kLRYoR5HCFOPzg-c^RjL^L%CsXM$Cn(20rHS!;^_@)=?6)Q9?KwO`IR zX9K1B)bVUr`!BT2A&OVr&#$&$xiX-RN(SSZm4Qb_Upl!d-@2c(qfM9EgvrNtdTqD@ z$uB*4y`QkW{pyT5!yQLIYZ$=|bw67$&IRM1&1rKR6JJv!b&`j8x4GU14Ty76-!UKY z@&u${*?yz-x$=41#~*3Sf9Cpk71u+1@1x>79Ti^n(2FL9sa_+ychvVqb{rn$WvpRr zdaN>Ha57+r{A|$+x<{zzYUuBLoY(6=*N0Ee<)Bo2+$jc%svnE^SACJc#k0ubnbp-j zD}5@B12h}xILCn0nO{lXJpeKUI$H%#4i_0!_C zkai=76^RowF7Q6L%RyWhtP528PE5RR`_KKr`;YXTo_OP8Hiel^os})VwBHKDuD$sY zadAvyTzo`S1gS;0sPLHmd}G6z9y~0V&Q5#1`IjG$5h31E)P{>QynO;`*^Cthtd32q zFrFj_Qgg+Q75zhFgEy?>tf;h#1IpCwtUPfm_WP_+B<0K-R{y}#nLfgl_bPc(&F`%V z#3i(gj;Xq&R$)*s|0?Xiz0buaB&ZMhtL*=8&nu4cQ8B_~{I#F|tL4-7|9@@pD2`I= zF~x2CS{uT`zkhWNENN3sJ###=dh_FLrq)<#leDdH;e}+{C-IyZnFByIO~o>-p5UyDc0YWW_^Mrn*NE%cBR3A%OMKzxo$rWvo&JTBcN6!n`{9^~?|E?E zUE7J*?^8NVq`xk$*mZ+UlLzA<-R*ad}1s2b)OKg@s?%O8^rYj z>jjNTY=?Uu6JNe{iT7I1xT6)#y#9pYjEh*&slTjJ%3rB&Q@TwgMOpVsI~5P3FnyS{O(Z` z|Fa{3y6#p!5~xdZ6<;j-Yqa&h^hluk|K`yKPoDEF$876E{5Sj;)<9ST|Dpzp2N!dC zb758!xhYK(XS{NV?p`!lne57D+v}M7*1apX!QT2!-IcfT;-!DcthiMbU%=EEb%w9^ zrgx6zhI*}*&$$=IMdFow;)Yh8=H5qK7pM!0iH~dBJ|Tw9O#0&R@PPVMvS&diuVDTW zKfAm5cx*P`%u_$At$x;}($h@seM+&VfXx6Sf>}KE6yFBpv)w8B7BhXtR^n_u6N?@C zEJs*=eQ{Vko>9;0s=O+!KDEivPOYs}0B)_!S$R)c90#zgp9ZQpn23CK=f<-ZSpM1P zG!=zU%g@ir>(HhRA6nHMRe5I8Y(6oVlgm!F)+yPUZDONi+O~;_Z4(pICJ>cd5Qs|6 zj>-*Y3Oz>!qXL@70XcH1AU!WCH5kP=2D8~n(T03iIe95ACgEIPs)>ygE7j3|{RgdT z`Ih!8=J4mj)=esJ!anm7XI#vLD?a1piIG!wMSeio?E2V)ty%B8_2uyw#1NKG({u*? zf_|fZLri>ZyLJgNtdHwG<~)y6WZwzDb}9B1q^C_2TMGW=O#^?6N1a6jiq&I-n^gY1 zWYG+Lc$j$G+t%4En%}>ycf(5weW8n1G^7z<>c3`Q7rilywbrT(-lqqCn8OW^-F3rv z?O@ae={Ls2$0W3m;X8J5dgE>@c4iGJ$S;_}`?|U5nS4;lcE&WHwLDYNPOJNqDqCM+ zr~75*VA}KLd&JsSGr6nzk8cJ}h-;r1EgXcijP%)?MwYfH<`ml^Z<9+ZJ?vOk{_&3+ zde@%kWkDk=zlCEvE?lo(-EZoOb{=c=c`!*=r&!Ra%AmCAdCM={@N>u4F76Ja^6f1> zju1DkcQ+9?PPeW-WJ0hmNKYu@tLJ_d{N?J76=TkD@mVB}TgnOMm1~+E59eFo=3}&c zr!s=mOA^)R#PRVJ9uw=;x1o^FLGj^^WOY|y@AS+L97CIHBr2!j$%%vEgXE_#`;QW?T7}n zDZMSt`!R7`H`H^%?piI#tZ z#wh%Mqwj75|H6M^4TLoi)<9STVGV>e5Y|9g17Qt>H4xT7SOZ}Vgf;M=(ZD35wN9g` znN2d%Ih`gg$h&{}xpUKUW~5EZ<-;YxN$GsCVUBp<#Pg=vvuC%4B`1(FBajwsot>N3 zCNC$L5)&KUrfG0aelRPKLj<+^X6L5o2cxpHGUhrdm(jPyz`yWcSOZ}Vgf$S>Kv)A| z4TLoi)<9STVGV>e5Y|9g17QvP6*UlPVe!E6yK4tx&y&%2Oq6cD7W@?p8qRZA17Qt> zH4xT7SOZ}Vgf$S>Kv)A|4TLoi)<9STVGW#D15YpZ3;*Bl`%^tr&^?m8v@B78K z)AwU|N5FaY7QPVHKv)A|4TLoi)<9STVGV>e5Y|9g17Qt>H4xUoe~$)Uv6GkQYV-4a z4Srsz#?Oo5eg9X*rvI0${5)$G@w&b%465&6?)kF{@QLqz-zMK1zSn#&`kwJU;d|J( z#&@sp4&Tkb>wQ;oL-;SOfv^U`8VGA3tbwow!Wsx`AgqC~2ErN$YapzFum=8N4Vdeh z4Gwc%@l!|q)D}Or#7|A}Q$zgt#ZPtdQ%(H%#E)0}c*Kue{J6xAQ~Wr@k6rxO#E(_{ zSj3Mae$3*>#E-{)qw#w4BN3LXoC|yny?edQZMChX_D&r+j84N$1vM<$_7h2_a67VwxP~(?$_KexIcD( z=NRo?=V;~VVtv?pt@VU`h&@{AZhlwkXnw&v-MYl`iQQ(M?K|eIX=`umVq5AxrrfAp zY`xNQT=~%Tf%`XGPsb$Ra^J1?tqzCnCF>+>f7cbRJjXiaDraj;WA_P5O-p}QTgSJy zM?I}vNv?<87g-)~z2H0OFxijW54j(42As3JiI&GLuUU$1A3E;z-D7*&_PS%gZ=fUO z*rQBPQXP*tt*)A`i(O4z{gfHb51iYbKRXXNH#(0xx44p>pSuh$o9j|%$oZmjuVb6z z1II?ki@xE`i<};34`*9Pne|nh$-2w>wf%Khp<*{5H2hZJoj4f^gio($FtM3!duO|)w{!IvwLhl>q_hW_K}`n?Uz~J z^4w;*&3>Koxw1()plnfoR<r~efx8JR}Gu>0& z%UttZ8Ln$wLD&86F|N@1Z+d};<(qs)HB32uf!ZzZ6N@27Xv{Qqk zIck7~<5JOFEx1e#3Nd1U5?i2QqSRicC_)V|eS)YpPWT5y3D zG}eNKY9O-aReJDSot$D|MMi}Ny-FeWRiG3A`)aJNbW(ql)L&7E>WWaIM-f*&N|6xd zQ3^%gsw>!QA{b|Jo+Jxt+h)+#~x)dCR*IvTwJ6}s~E;w++0^+21S&? zuN2l(!NR60NY;c-ft#s8k^s9q8}M?#t!4B^+U z6bW{}QZzsd1n5^pl5XWf^>?u-m|GF4x|PME{BEUivKEM<05Tehpqd6U`VcFcsKrDp z5{uDFuK15q6t4!^>hFB@cdB+l=#uL~69kNW1VQzeflWX{n>Ccep<1lH76?UiEkV0B zLW_wCgHx!3Ykk!~%6^UkzZUm!WDd5+o%u;^~ z4QkL?{T02+r4;6BfyP#tuf{}kbtxURD|u=l^5{}#tG^E)>4~e zP4PdaQ1mtekxK&6l4>bM{RwI+g%@hUG&Lv^`T?A(1?g%aQ~)N_Nsy`rGu7WBQM)Kf zv_pb11Wu($Y(>KM0E&iA5UmBGr4bYTgCJH5I%z zfKAlEq+xMtpov~=(=gHXY)a95Ef98tm{6@vDHMVUM5PdjswL>81;P>#6SYXtMGJ&o zASQYqfoMGhqPr4^CP5(Dj!lswMTTsOu)kbss|E3DAQ~r_=$AI7z80yi1)?8tNesUP zq7jl~QDc-^bPKCeB)XwhDRgRJP>YRHV}+t=z?r6kMWRh`LzWh#6Vz1->!?9drV18{ z)Dfn!6pHp%*PsZs)m4gSsMm^ev>;CnnrjhZY>_;PpspecN<_U`DH6??*ktumQGpiA zRf9sI3{sPKixvXsEG-b`i)&K|>Qeoprpbe7C*Fp1~?R?|3x`%A}**6S^P^T$NOe_;*$>l!G^chxd1_BN_~0$$-l{fMJiHf_GL z6DJk@nEFx6-2)=mZ+2eO=S5B}Y1VG;qAi4K3wMwYol(C~cU|*`Bf0U0<}L326vm^| z?`vr!{^WHFLz{^2t5$8xNd!)hnpv`ucqqBm_~XRa%+1JooA}+i18W~4KK0A@V%{Xa zZf-;CLE>MoTQT=_;-7q6IP_QI*@y2q^eXYH8Ptw(jZGM_;l-?AhB!T`R~BF6ObKM> zWb5bp9E_Zjo-#KjBPdSP$;#%aoT=H_`Q?%FlX%qQm44?0)U4p_z+7<~hm0X4@9eXW zT18eqfV8NyQ=Bf-s9&X{kc!IBcAn-vefL~SH+0ptsiO#w9#|VIjz?>edgu2;3CmBH zsmhRK9%5|~^;xvQaSr`0F4teDaiw2JqJ}3wyYd?kVVxSKeZS+}#oUj3jX0nm z+$c`w(i!y&yO(9mugwh~tvYzgP8h2SQ1us|*!~ac@9g$fS%2qmQk>s4EvO#WMynEs zE&YK5z5XxtUA6rdH@9a=j(}^mQ4TdUE+E|T75;A9}-xpz5jDZ1ES}GDH-W0fvoHbCwo~Gdz%y8sH?z))DGyUlmW2u5_yAS*LvcJ3CTF>Lejfm?pi!4&!V~avsqqkeiYo z=%~Y~fxL+1^pxy?FkojL7?z%jh0B;B4Md_KC|ylu~a>!Iap`HCCZD)tk#n;48GQF=cq=(l`#S${^g zu@64^K4EV9y^a?!J5xq|*K?b0r$j%g%J6me^~*o!hRnQ_d9TB0x@1}HuZX)pTipIl z;y=26opPA?^u$X}ZY5r=X36j)#G^jBa`O+w^@R0=)P53|SbqHMx%!DM@^_BG`}g*W z^B!o}A%AX;TKUN%Iuzti31rbu{u_JDzk0;p-=lXlw=#-n>7z)Z97RUzy<_0aC$8T^ zqg|Lj^zQA13oPkxiPMv7JvI2Z2MEe-qO4=pUK0NK^EFVCY*Y+4G&2~>S3XT4 z|21(Tf7Z&R`a3!%)!(~IX38A$XO9l~hhCCY|CdXX>K{5KaV6x>{5a%KZk$xV4E*>y ziCaScX}v=J{&yrbFr7$h;NCBBYskMkJLJFOAiM*T8W=`P+!pf3H4ph~eTJO8qy|c% z#O)#fyw}Lj<>ck1r24;wB<=|LN92V3tzQP?o>G0~)*14rT}?j8%dsCw`$x&|3i+E& z302=UKB@kJlcaHz#N8qP16@P@#otn<_sP?AiF-o+>w_VG>KO7kg8XcgxHsf)b4$qI zBojGZkuy=^zL0;|8zFz}qNMsK)+9AB>-nh`@<+WM@|%Z(^-pTx(eqzDGYDky}Uu({f-Rc(#;tBILi6VPe!&upv;HXG-$d~PF8QV(WKV+!R8*ugNf2j*+?&D3Ln zVQ4}I*j(sNiDMd7eTs5XUR`fy%=(m*&Ae!*cqalf#7Jy+AmTm;=0F9AyFlS3Qh5SoyN~*sHbM$jZ zi7x`X8R`Yj>}rpkwHQ}|F|#YY0n81(D$|9xkhCw~L0;&dd*rOh*cp6W$iHYU`5X)B zvo5-3Au}lz$6W8ok?D>Fdw?0u+h83l@Pi4wfEnWs!LPqhycphQ%rrk?hxp@TgyLmz1TW`?({y^!!0 zo`jx}a>7Aa1HY>Q-TxQfKg$5&zyFK|N|I~Kk)^(t0n-?IGgdF-DthzNkUp8h+GQ;a z`O^!rkXZ9_zwu!v&|ioA(}#fLYwp!8v7<6#58>dj@3?Y z0oD@gE%}Fm^+0}Y(i{fO(r`lr_$48K5FPv+34bfe-vQpOGC%mw<@rejTh4mHHDFlP zofk=dMy_d$QfaYZ1<+zCed>;5x zDd$lz^cl#dyl;}%rjnnDtiUIK4gSm-+^`v(yry1@3`R9wzJa_8eDYB+?^>4!apCe$m%`RG z!w>xJnB-?tCh&PojDDjT@7FiF^b7fmMsRJe#O0*ekOIa%f`5NKC{2@N#COhK2h9iT z0ZBj5$i!<&6J!ksWBGD_md0D{q@Pm00zk|sy6VU~ji38~3z#AHFLJx&Z`WDp%djbAt z5@!Of;xBM%NjI>*kpIl7!p>@z(GTjMM{vfdDAYBf_ z@KS~pRlZ2~QJF47y^5~~ON4Hf_~Y6Vw3^RR74YYg5ij#2$}IC^dO^$Ql3HK_*X6%X z{q94jqD@^6t`DsnsPi9jaD;xG(0rNhTVRwcpDE0txsdD^rjOA5Wz@ZBZzsT|eK36t zM!U@sZTu_fl$7%&eS-4NIZeN&YzJCM{44r2j;d}SbUR><(E43A!`uG*Avsksx1p?a zY3oce4$*!N%c+(*8hi_Q5qMdJC3-EH3cn@EHKj@OOLV5T>OUw&TlGIGXB9?@*!2*! zlP3Z9op~By{1j|@$lql$SX2f4129JB&iLBL3&5p(BTcvq&9c*8aQw^@t+jNGAHq8b z{3h^*kUm@54)!aA|9PCQc3hv$`~=2Kr&E2fMo_-Ye_t?~apJzD`bU2h*Cf6hydn5) z;CsL?koXR;{ULw*RB)QX(QPt6R7K+L;6uTZp`Rr_6f6i~UXM10WK|of()P^w+SdbX z2Mv?*cY$Fp510Mb_p8tpa{|ZX^^Z#3tTtkj57s|ws^YEoPWMNP`!k{ExtP_6>kfTbV z8Q=__hjoi>g?A*>42%Kpu)ea%06gkVXc-tI#o@J@7z5UKbT<40!B`@Tz*oaB9|jq0@G`QD$_L+=RR2f=O^y+ZEuNF7tp#UvIeb#$j5uiz z;3tm;JB}Rvc{S?@X_PrI6O4&Rsa&TpwgVf3FUv%#^a)6=gc=x01G$XXrL^ox)YycGOqnJ&5+b0Jg{%nRw08srFlj$mXw!f1U& z`u|2Nyl+6w!Eg?a=quyZ;b*iPM%^BXgQm-Lr;;WU!b=&|1zu*B_r-{5-%43@seVjy`z`>Zd6(*b3#MxTOP&3gESKIwRa~X< z8|lXJ1K6hYEI7|p;`=rEhWo)Dqzs>fQ)Yb&l*vn) z3qt;0kAS}py(jbI0mJ0<_!jJ4Xq%K14gXKtR;nZTUFDN>H@x44{7L=crTZVzhoDvH zpE5^^I{XR#ep1d(bi*3Vz-z!6Qpyq}jxU)+d+6!{$Mlxfmicjkkw)hzFou+}mKtsx z2-YU#?|_eAb}`gj;)7{BABOxbH-p7Pmr6NKcrk&A2C$ycK*>J@46~Mi6IMnWDjOtm z@*?Uzp=lL78B91UI=^&QjKjbtN&bP{GgZpL!4r7w`(Pu_;HJ@Rd&`0vP~I)za)>ZZ zfxj8L!{I6G1IhfDQY8K)Se*)ZHZq>m38YSJ(B+#FyzP00lNzdN&F`2F%@b_nr$ID1evJ!xJ0N1^2M;I zuX8;GZ=`IW_kio|{~P*|fj-k0480v0uE{rBkRj~AJkq4RrE&-|(-tCW=S`j=&GC>N zI?On_ed$Misl!q?bfG5a?B9~)>e8gi(b~9=tTDn5e1~0ywV}!KrXCvJU*HoVefMBH zc;96=rp_;Mbq%+iEcv1t)fTRXi zIrwfq>a0}DZ&;6DvsSLX8&SZ8)`hQKJVrHO`{=mvdnKo@VJo9`)?Zo)4l zFNE=ckLHS`Rir6GvNIUdJg;(=%~aqz-U{E zZpte3tjo!x&M__Bmy(y3kZf0`{PW;TLjHCiLN}4m_E1+Te<^LDCi$6)jJv_xNSwCQ zj&-7hX<%I-eMngbZyMJ=0E>cjQ*bEE5_JRu77k@^1&5S%F^; zt)@FPIo&UYmz}%ia%lTPe%IY#Gocky&RyUwD#+JOf&!K;`PoUV^P63o{@d2qcK<4R zzthD14Sqe8G3@{U$1A!dxtbhVq@^-2po;zK4e6cAeP=A25$hOrOUPgMX{?Kj{rocP z#?4^Qg#5M3k{Y;9fy=?o_!`(z_VXu#r9ir$yZ{`kc@p`v=@Gr8pt%}u!}6OUWxK>z zXt;G1IQ!?7G7UE}`Kt8=au_`nte9<+#NPq$2%blp@3G%rU-`uf3cSX2iA%rKNV+vy z+o<_1d13Fn{dSoylhc}8;BN+Y8~2=+^5=k)rqxle;P zl=uXAn{$nFxsM515@*D$-kJRHj)ey+=1G+Jd$gTI>g+PDew9@k9{vq$;Lp)ONwQCx zH0f^}$1-1kBjg|4DXIRcFO%w@_R5SfU<uE~H5p>BV}%Y3BE*$7phlFEZ&q4RwH*Ze_Yk%I^dA zD(SufFOx5m?1IJ@LjFFZm{9EoAImE^(oZwAgm*u_Y%X|LNc#DPR^U6p$ARI4o|cm% z1Lmd|W~vv2KQIZk z!Fx#s`IxgFn7VRY*FzLI<_jl4(|>zSj*+_R$l8yJTev3XBI1t;VtXdu!hb$3(vY|j z-3$LV4*b*!aEHcj=*@(_A^zSX>IBnk`a$AbSbM?Ih#LYgzVhh^4L9Q3CQ)bIK0*&3 z=n;v30>-tj2YFz)23)pJqje?!PIws-`*lugU}Q)!T`cikv|A>*16~Ge0O?EUyJ=T% z(k4WE7VSiTZr_Bm;()|aCbhf=H94k8bn_F$8qR5!I!_;v_&|+6cALcYp@yMPm80uf z$7joS$eP=!@3=>{6B9#mZ~Cg*o*PxbnR*Pti5ZO3Y5MI<{!L5`L_bZg1x7zLSC{z_ zZOTratw6>FP?W?OZo3vhtd)s+Iq{f=o1NqnCo-1xn$!EKdpWe4(L*e0#L~u3lWsX4 zgN|vteMW*&2SzzmYSRA5Z%MLOnlz~r!_V4Vh;43Qy8=s#2YYH_jJHcXh3yKMgoFAL z0x+T2|plbb%q6Cn6$_p@FVN+ zT~dAn@J-OI$QT7}k@?5uG^NZS%0xf+XT$(hK8GX|Ao3V6!uoWbq zHkid!F(glqSuLep+HGF1#BZh$U$Gbi&*e z8LvQV;in!CysxEejwM|mYax3izE|oq9E3ISyBZKsD`?LB6>DD|k=Agsf-491QaMq>qVL8rOnfgX80xrF>&+(qx26T?5W4sdYWzk zFSzy>=Gzlup*8PCLZej}5wRe_NI-r-EVn9!CrmF2;#+&d!V zzfC-c{Ech!A&%jDFqZ9ZHG}gEwDgdae>IpA^51+v*e%dgQVu@mEtt}k*YW9+7uoze zNb+9;?`pd8Jjs8Dd>?aB2LC$nahiNHX6}Y1qW+CzHR#GDDd-eaQMfa^w8RRKJBW74NO7H0jihALOQ%E2Bwhe^G^Bn_N;O5&e>UEUF0bUt2wR}USEh7*8t(jq2_u$vabRVa_nAJJa&taB{4;M)slP2oRaSyVE$&~eFWcKfUJ>>Twr*t*+ zi{yWbwuY?ob|TktjO&m=ne7Z4YJEw)8J~u?EjnW8JMt3rt(5Z&vPs+JB+W(0UnB8n zX`ig|sO|PS_&YIHNMFZEMFvBe+Wu*WdcQC+1Gn4; z|21GDpY^01JS>5mHiC(I>@M-kXoF8eKJpj=O_F#aSWDXCK6H}=Nqw4WJJp$HR9k~? zu7*}={AMFMW|*tK6^yoZX^Rb*&nPId$>o_ z(thIFPm;eccsGcV=-2>A$~O%FbHLB&bo3zjK$$M1kl61%?hfQ2|ERQ_h9ls&N_;)I zQ}Sa`Cya-%0LN3I)iT|#U`&k1--qmP!KX@`JdVezj%RXx>?vrAlw$##57EnyVF{1P zNv>h5#1p`-JcFCMgQKHyH1mYtk7Lvs%Lsc^$dVSuSQDHHu!`3OU#syO z(eb#&P#!YggLX?fJ;Cy!$zaz*a)sBh7c9VD_6L!1A-G(3Fx?1Fp2lMB%64!~xA0iU zaag6XW5F3Q_52vhG+dP<@^g{Qj|pBzg|Q`IST%3N5alXkL@rOaj)q@Ky^C@k)z_8M!9{ty!T$+# zO6HTYj-k#*e+_mi^qGbm;@QhjI~mp&8O&IYX36|80uG~Zi0@(^r48wCXqwiuHuW=Y z{U>xu`#g4+hzmU$Q%+=pG zC`q zleL6i@K%Q!%lu@3SC@DraG9>TCRp!~|4x=D4FcCEvvJ7A+}-KmS#la_L`(TQ!CSM& zP#-gd={+eYN5*V;Sr=Hz)}l&snuBA$ZnePAr1Io6nV&o`D{Bu71*%EgEAbp;yu=#A zm&mCH>G_|b;Wx4+OO-G6Z>|CFSFAm-^lD()*C5wxO!L4VfLOj&@tT@^0~4$p-K;%q z183iaUXKPQQa92)um2Iu57mgL+6 zlK(;}2eW=HZQ|+!;MLCX8)t%J_Df17zZ^o1453#aVolFi4zJ3uF4GNyajj&1W!!}BOBnu2dV*IdmvJgs2xl(jD;mm-Zz!0F0?smSJufb(N1XOV_aW{04P zha`RgUbV_dp6H^0Nzm-G63g5-^7R6UmE{ zZsOGa$=7-F@fk+nMEKcSVU?q%u?X4B0w+F%Y;gT6(?)bKiDo~E?JKTpq5U#HJo%X9 zXNHA2c3lm>K8jz13`Xk-wMp{`*Q!bW0bq6I`w`E9kCplVmb`S}GoNpemph@4B>pCt zplM)~*ZQTzH)!|>FPPAe&i@AZbl!~QX^hz6TF(EL#4(N5FCaO~G5!eeUI_hI$3XW> z`RING`5!tD{m}LGFRB}vX^eT*4Y$lVgLOZcYy%{le$tT!`6UCFEtGITpgegf_=+XVE?_vi+Da`6-j>1257} zE`wzLO|Md>>yb}CGB2lGawssp3r>F2a*2G(^%oPm5no3S(%vjQWwqQQ^ZB<4bpJp6 z{{Mfp%1e^#$&p1))=W3^K^m;^f*)9Y!k;;;`_J_BLM-8&LtyxCrP5-Xu!IY+N^|j9 z4zB{&TmBY4lJkW2#nV!JmonY2UI@-aMSOhexD(QQ1Qu-GD104OB#-fsrTlyHW5BTv zvsfiAJ&2rlWY7JMG<%RA{P|M+x6-~+k3%(lHa>nStFYxby>`wjzQW3?V`(4gXUX3Y z>@>vWy|g`~`%#lfb0Ya<)voLt{I_Q$|5)&g`Opt5k7eZbsML>fIUiG6!1MoOtmbV- zP92%gw|U-<)tHH|D!!9{NM8qGl$e>y^ZzYi+t6K<XaqF5g5OQE^dU_{6$jYGOndeym!Lf?xWphP#oy539%O_hJ0r z!_uOfFCzbUAWP&QImg{vy5^SPyEHu?y@$L?{hKcVXB5fFgP;06R$cP90z(hk5wcvm z(;$l-4*o70C`qm>O`7xr4Rix>gvAxv_}W|Wb>t+-lncf{znJIGCux$Ww`wXfrh{X4 zmOTiz3I35%b(e!Z#P{KDfS-qDr#DOd2V@Ka$Dcnz_dhASju8`5#00qTDli2aCFKXe zyK1<~Z`E+K4GdFSxCA*oKR+pPBc`kHK?oTqK7eEwH_g@Xg)HNpApa*ml=A7~g;(>< zv>7tpmJ&|^XL5IW4!kU3>2eIMHT*Im15oU)a_XUd}sCjbA4%!Jc@kg zUko07CZ7fmvjOC1#Dm9y>n7(_W+oeub0v6h@Ln=qW~A6 zPGB7%Ia@MfO7rdm{|*el+HR5Z@8Q#yZ*fmIaQu0DZ;4}$3m)a3d%+ZFrpza%aqc3n zu})!US=rG*;>@CE=Ydm?_H5`24L4nhDIH81@Q3X$!QW8w#~^0~_sj(U9DIg`8{nVc zjB5+Q>OnV19KFr!4vsJEm=3Ly_~-C5tJUwcPtbicNUk55eg&sJ zs5omU=SY z6V^aj17QvPB{fizY?G7arZWFb_+pr}HfD+G6u#qW{h`2XY=o=HhFN@4jvTFDCLg94 zo@Hb0Qz3tYU%~M8kIBieVI?x=u_>@WOH5Zlze@S_*(|$`jgb4`ZHf>2jKp~$P`@=e zzVoSfpbsQo4~&UQJ+}B9Ux&Xcm%I#5gE0ZFw;qh8(Gx8s|1)4AXf@cykeu8ZSdOiS z4_%Lqj^g9p$K@o~Ao9ZGw_Z!IU*MNZwT50`O#JHJ1!l(&&yez87rfwXB{{`%-l_K_ zPMURpfLOLXH5GbL;;(?cE%_e+*VjQ2))qj_|VY;M6pUuLtW4MS_Wa4QnL+JXlkxCKx(8wNc_PgVkp9 z=uxn@kuM)k8Q!2Cd(H5E`VYq*CrPq22P>%laOyik{o(a$MSXWwgbOyBeF`A@WU^nbcGBq#gk>a=Ah z%=K7;J|^0Pd}YntfVNM$8b3liUqxQ$XmZT7*~T~%jpu^Rf=VK3E;VtCagJ3lKeS4&wXifes7uc5-_&)%D2*Nz6xa2pM zg5me7{JXezRLXx>^7AxlUqzgzs^$kXA@JX7$$TCmKP=;_`4PC>;$z4MLw79EcI8T~> zeL(V~|J*mBeqiFBBN9i?xp$JEImq7#F86Vm$Y%kjBKHljQsh4&`41ucCJ1xz>l#R| zADJlcY=*wsi{NEw+V_^^r@jQP)}z4n_JjWCd@9S^23#*M?MLK)P8qVv|30~HVzz@D zkkt;Iv0Sbny{e@W{{8!CK==Q}^Z&n3slz1=YapzFum-{!_`lOYNwQN;mRo9x81d=S zu4dETa(pE_)LG&k!E?Y_7dVNZd`hkt7?~8Ou4SVi4|a?0B>ewV@Ehi7xZyi+9-2%X13njAU#DOqD>ms) zV)A(MV{wnUE>jn3ts%yp_ifq9GUdTayd48BcPfX+WoW5Yfr_Yyi(!s}(pC({=kkpUS4Bi`@*NskWM%HSL-#7vp zU3s0S8N4?`x<5Y#jJhAT0gN*1-`g|!*=#+My1yM?dpLTYuE{ag0lNcTFVp0l)*mKP z@8g$|Mi+1<>Zfjz{5T#$PGCD24+qQT;PeFAkyo6#Q|S5BV#(hS{0d04AA##~8q=OH zMHU-M4e5|v$1z=?=|^o3LO)UurU*@bdApMB(9{jx&@aaKrXHU{NAJjV(b+^M_2V0{ zj_?C|`%L0}c(v;UR0NI_rhkXRv5(>`g36Mv@f>%Sf@C6BfA76BtPAw)7Q}B;On7nQvO{mcja@>33wYrx(WOR z+zGx-;wz<`RPwV6Vu|c<3+M`oUkv}Z5Y6r|%U*}|eA3mTFNZK8ho69U$aEiMsck;| zn9ReNg;HtqO*J(+(GP&Hg`^x4CN_FIBydqKY3fY1(Se80PhwUMQa6W$Tg0D<<;*^} zL8)Ln;g>_1DGDqIO#=TA+9ml}vgH|i84t*r?PMk-8N$w+L&<#s<`4gr7-K2~8 zIw+S+O$)XBbo(5P;qu_CQqC*1kqc!#Vs`ZQW};38B}25SgYi&1$xplLMtKu&0i(Qn zeVJHi8FU010u}|ybrv)2vpYj#w^LxEJ*?2=m@%=@=sJ1<`KOB?ep183zkhWNh=ypk zer9mrIo zRzCd354|GS``=wQY761!?2k4Lo7kh6AtZCv~KcJbY31+&sq0}+D)Sp~t22=#yIfxKW!c2;U2ckbL^-eo$a2J_O> zvI6=2Qh8`!Wm5Rn>;7)YwQ!MxUyts*l5 zS;0IZJ6=T6^TmJ336adeoV=W1FttPe+?=3*lSgzY$ej|%64$cxvvViS3QkK;$q05R zm!TIygjw0}Wd$;W9fJ9DGqW?Y)8=-VojwC4yqa_e|0` zf!rDCS!o@nWam#4s46QjJr%Bu83M>nPn(v{jd|GxxhcU8Rn(LkNX^a*ObO=ZXXmv} z$&AWK&zq7RXq{8xj+_}mHNDt&ZDWKS)R#Yrtf>W!NsLX5iiwGeZ7VJnK#FJ&&D-|uoHs3d z_J!x*pjGAPW@lssa|M^$YJ|{pu_8P@RdA`ASX#e0rk0_|+vF1YHjdU+mJQLnN;zg<9l=H_oNYf4;CNEaLv-##{upM>^$SE3yc%g#L0hkm!W z^q}3*N?JwC%gzeqMFjKma|3js^xQyRg>G|p57Bx~d6K-x#vSPym3mGb)m*9P{9db% zjg5xAYJ>lm+i^@n;)malkXakSbx+sQpNTI;;Bymclg zx4CnEa^(6o-)|iiP55rJJ(jz%%gTc<6t2|`xoDj_gMQ)hkGB*gaKoovUjJ+jj8Stt zMRg@!?S&7%Urqdr4i`PrgZPtWg90M1C!{A36Cc;MeL_sT_T{Z}cpwYw6VbCElfIaf zo1Tf4xBZ?y?>;LXvz6N_qE~s_#Cn}E>HP~3CO0{3*|*)d#rL`I1K&np$oHaeo$nFfYTsSHn|;^%N_<7W`L^1&S8bp8 z@@>0p@7lihW%{Q2CizDDhWh&ZdiXl|+WK1iF7ieA>iPUWmrwDYw9Iuh^p<+}d3Sk# z@P6(6#QU!O1N$S6mX4;5S`M#endKqtht}7v-#OlJykh;ry2gEH` z?{sg9cf5C`cd)mQx0^T78|%Hq^1Qd1w~@ED*Jo+vwcFmbJ!tdUifvcfZnWKQyU+H7 z?FZX)UZZ7^=a}c9=NHdUp6@(gcs}%O^1SYO$@8@5QO_F3Qpe?VY7VdFxaQMUvoe2e$uwka?1UX{iywb z{b%xNW3uuzkDh zkZZ4Nhij{?kM%N39oLuk2zx!d-|n(2wv#ry&1gMlJ!tD@dD8WfwZNKXy~TRB^*ZZf zYnp4bb+UDgYlG`$TcYb3*JG}=u6ta!T8CK&Sbwopb6xLR?pop)=USkAWbJ9~?3$(Q zuqG&bUD>W_u7G2NYpi{XYq)EmtCzKn^898$h? zMLPyLdRre=HY>+nEnJb7J6sK1H7%sW$GOe)wUni!wLr)uHdG6G zYe5e!NYVn430T@|fhKHeYb_?Kk!zyj2!uWfYHNY0+gi#J$s($lYZq&Qr~s~MEK5^} z)l?RXED?wd5+rMZC@rxeS|G|tOk}sFvUDCn4P~iN4?(0BG|>W4TEGj`V2P-s8p>jk z!5T_&Lju22?A8KN{eETXI4y|Pf~HzfOACBj;MD@{zNIcTwj^5%L>c_bk||msib71Z z5CX}m-M558K?SG@TVmH@S_(_5tFgsGpRkCg=vNjCEfEOS5eR*9t(q1SYNaS5h3ZPN zq6SMFYe6F|5T&iIEN!3#^|hd$7KjwMX4L|r31XU*CHZP>NuCyDXu%9En63q)I;ty6 zL{$-pIwBAann2`?K&YHRH1F!lVom1a$y!WwX28B$AS!^Eme69+nTd(6M$qT~wQFu& zZB$_xreQ-k(|U@EwY$^SCYDyQt>;=(m|`>xZAe<{aycu&K(mAdlOW)6r8ARze~G8x z;H5voKj6LhzVH5WfHbt=s!LrK>;Huz#LCT;$1&pgY-2)66gj91}g{)hE(*aH&SHZSmOTduO$&CP7 z5s=0Ff@%481*?J;!Ls1CfHgg?d+uYrgPzXJMH z_$4r;!X02xh0Oeb3YmG}bHS#7216%JJEp?2;4=X8XxdQ~QVxJR^sA6MC>7F?Q5Aj! zU?ky^WFup<~smJUIDP?+W_`^4Ztd|3N8yS z2`&PdM=K)0mw^!#QgDDu1C$D&Di}#s0IC8|6@UUD7G@s#lq82tazq78@}LTsWV9s7 z0h2te0w%d%1z!l5)~E`YR)87oQ^AIy2#l&=UBG-Q6)>Lw^NGbg0quk|O6Fy)AaDaVjo0EXlM?8l13n#?u8Tm#HCz)QlA3a$%m>7)QSHZ8a&ND8P5CR~*k z#lhK96$J4*(5nIwClGN0ii1vy15g}*)i|I6Y6MUt;3WW2vqZ5N6$26gc8CK=)>#2% zM2nS*AsRqPCj`$6Sg9EDoU~Z57{Y=DSg?Q;Y!H*yQveowQb22mP;h{P0~8#f-~a^&C^$gD0SZ2-d`jG_{L|7&rE$y>oD@)ZjHK=W zbqAJIRd5aILx@gtXd#{0&889g)d-N=#Q z&7t20x1+!J|JwI>?;pK7@*)oZ|F1QX^KUw1C$qNBW>T}Wc1BwdpJwUg^(=^{7oro>v4MNJ zhFTEY^F&m4)hn%g)$&e5_^u*9V0`mD?^hSXI2ylxUa*>5SlXG-YA2UYH>7V&x}KSz z(^j`ltcJXWW#~Ddp1EMH6qYR`<-LhB(Fq#{M)1bK-R8TS8+<%=>ELJ8n9w|}hB8W_`|bv@vzys_~^0&Lzwh1b2P`J&CwpuG%GQqGxm*ia@y7@Cp*8N?`|d2 zIeVd@CQUbq(B=xo4?DG+WXyB*4` zG*i*OYcLn!I3CY+{a`uxg`~Oizx;Yods0VZ)6!%#vJi#5)0}l24+`Ml~ zUQ65EuX(PlV#SN4Wv^J`)zRiH-i=IZE}6NbKd|pi$`B4n)CNyPV^^<6YA5!Oivznx z#REM*9UvwSd|*U;F(*+QeLfmXCL^^|`^Qo)Z55Wg24jx&{CI$9%t$M4&^12{w^&Nl zjvbH2E?*v~&F&jdw@4Zh+)8D#xnx>r_t(nOxrLN7tIaBLiyu$gS}zp04fET=LUE_j z-mwz?@#mtkSnNps855JKNAvI4-V--{mX2$4tJUo+buyQoPdS)2XFIr`YuwWzg7#fc zI_204_>$nvqPtXCcM+n_+8<`oG>_Vwjk|a!if>Uh+grF@EAQ^ed*woYZFkRNzFaPN z<<^w-e9^_zaj(@;&KLGf*rElbCI4xaoO9he1=zZJU72t zEt$4!z8!hn_+nJSTT~Tys-vUlhuZeD(b&0j5&w+Qx8rz6v*-IgqIVqCyS_+C#+FKJ zo9jjM%}P32p|tzjMp*V%3dI6n_cDXq2P#XY4X>kbdftIilE{i)_1x-`r*lr~X3pLn P#H8L8z@*;0c_Q&A_Ei%C literal 0 HcmV?d00001 diff --git a/inst/extdata/samples/osmextract_tcb_network.gpkg b/inst/extdata/samples/osmextract_tcb_network.gpkg new file mode 100644 index 0000000000000000000000000000000000000000..e43dd40a33da2eb3db75f7dab96199a462813041 GIT binary patch literal 475136 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%0AqkLz!+c*Fa{U{i~+^~V}LQh7+?%A2L5vlR5Zgg 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 z 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 commercial_speed = (1.5 km) / (240 / 3600 h) = 22.5 km/h + # Trip T1 alt: (1200 - 300)m over (1180 - 1060)s = 900m / 120s -> 27.0 km/h + # Trip T2: 1800m over 200s -> commercial_speed = (1.8 km) / (200 / 3600 h) = 32.4 km/h + # Trip T2 alt: (1300 - 400)m over (2150 - 2050)s = 900m / 100s -> 32.4 km/h + df <- data.frame( + trip_id = rep(c("T1", "T2"), each = 5), + route_id = "R1", + timestamp = c(1000, 1060, 1120, 1180, 1240, 2000, 2050, 2100, 2150, 2200), + distance_along_geometry = c(0, 300, 700, 1200, 1500, 0, 400, 800, 1300, 1800), + speed_kmh = c(NA, 18, 24, 30, 18, NA, 28.8, 28.8, 36, 36) + ) + + res <- GTFShift::get_trip_speed_profile(df) + + expect_s3_class(res, "data.frame") + expect_equal(nrow(res), 2) + expected_cols <- c( + "trip_id", "route_id", "day", + "timestamp_min", "timestamp_max", + "commercial_speed", "commercial_speed_alt", + "speed_avg", "speed_median", "speed_sd", "speed_var", + "speed_min", "speed_max", + "speed_p15", "speed_p25", "speed_p75", "speed_p85", + "speed_iqr", "speed_count", "n_updates" + ) + expect_contains(names(res), expected_cols) + + # Trip T1 checks + r_t1 <- res[res$trip_id == "T1", ] + expect_equal(r_t1$route_id, "R1") + expect_equal(r_t1$day, as.Date("1970-01-01")) + expect_equal(r_t1$timestamp_min, 1000) + expect_equal(r_t1$timestamp_max, 1240) + expect_equal(r_t1$commercial_speed, 22.5) + expect_equal(r_t1$commercial_speed_alt, 27.0) + # T1 valid speeds: c(18, 24, 30, 18) + expect_equal(r_t1$speed_avg, 22.5) + expect_equal(r_t1$speed_median, 21.0) + expect_equal(r_t1$speed_min, 18.0) + expect_equal(r_t1$speed_max, 30.0) + expect_equal(r_t1$speed_p15, 18.0) + expect_equal(r_t1$speed_p25, 18.0) + expect_equal(r_t1$speed_p75, 25.5) + expect_equal(r_t1$speed_p85, 27.3) + expect_equal(r_t1$speed_iqr, 7.5) + expect_equal(r_t1$speed_count, 4) + expect_equal(r_t1$n_updates, 5) + + # Monotonicity of percentiles + expect_true(r_t1$speed_p15 <= r_t1$speed_p25) + expect_true(r_t1$speed_p25 <= r_t1$speed_median) + expect_true(r_t1$speed_median <= r_t1$speed_p75) + expect_true(r_t1$speed_p75 <= r_t1$speed_p85) + + # Trip T2 checks + r_t2 <- res[res$trip_id == "T2", ] + expect_equal(r_t2$timestamp_min, 2000) + expect_equal(r_t2$timestamp_max, 2200) + expect_equal(r_t2$commercial_speed, 32.4) + expect_equal(r_t2$commercial_speed_alt, 32.4) + # T2 valid speeds: c(28.8, 28.8, 36, 36) + expect_equal(r_t2$speed_avg, 32.4) + expect_equal(r_t2$speed_median, 32.4) + expect_equal(r_t2$speed_min, 28.8) + expect_equal(r_t2$speed_max, 36.0) + expect_equal(r_t2$speed_count, 4) + expect_equal(r_t2$n_updates, 5) + + # Check global_summary attribute + global_sum <- attr(res, "global_summary") + expect_s3_class(global_sum, "data.frame") + expect_equal(nrow(global_sum), 1) + expect_equal(global_sum$timestamp_min, 1000) + expect_equal(global_sum$timestamp_max, 2200) + expect_equal(global_sum$commercial_speed, 27.45) # mean of 22.5 and 32.4 + expect_equal(global_sum$commercial_speed_alt, 29.7) # mean of 27.0 and 32.4 + expect_equal(global_sum$speed_count, 8) + expect_equal(global_sum$n_updates, 10) +}) + +test_that("get_trip_speed_profile supports custom aggregation columns in 'by'", { + df <- data.frame( + trip_id = rep(c("T1", "T2"), each = 5), + route_id = "R1", + timestamp = c(1000, 1060, 1120, 1180, 1240, 2000, 2050, 2100, 2150, 2200), + distance_along_geometry = c(0, 300, 700, 1200, 1500, 0, 400, 800, 1300, 1800), + speed_kmh = c(NA, 18, 24, 30, 18, NA, 28.8, 28.8, 36, 36) + ) + + # 1. Grouping by route_id and day (collapsing multiple trips into one group) + res_route <- GTFShift::get_trip_speed_profile(df, by = c("route_id", "day")) + expect_equal(nrow(res_route), 1) + expect_equal(res_route$route_id, "R1") + # Commercial speeds should be averaged across the two trips + expect_equal(res_route$commercial_speed, 27.45) + expect_equal(res_route$commercial_speed_alt, 29.7) + expect_equal(res_route$n_updates, 10) + expect_equal(res_route$speed_count, 8) + + # 2. Grouping solely by trip_id + res_trip <- GTFShift::get_trip_speed_profile(df, by = "trip_id") + expect_equal(nrow(res_trip), 2) + expect_false("route_id" %in% names(res_trip)) + expect_false("day" %in% names(res_trip)) + expect_equal(res_trip$commercial_speed, c(22.5, 32.4)) + + # 3. by = NULL (whole dataset evaluated without grouping) + res_null <- GTFShift::get_trip_speed_profile(df, by = NULL) + expect_equal(nrow(res_null), 1) + expect_equal(res_null$commercial_speed, 27.45) + expect_equal(res_null$n_updates, 10) + + # 4. by = character(0) + res_char0 <- GTFShift::get_trip_speed_profile(df, by = character(0)) + expect_equal(nrow(res_char0), 1) + expect_equal(res_char0$commercial_speed, 27.45) + + # 5. Default by when route_id is missing: keeps available columns (trip_id and derived day) + df_no_route <- df[, c("trip_id", "timestamp", "distance_along_geometry", "speed_kmh")] + res_default_partial <- GTFShift::get_trip_speed_profile(df_no_route) + expect_equal(nrow(res_default_partial), 2) + expect_contains(names(res_default_partial), c("trip_id", "day")) + expect_false("route_id" %in% names(res_default_partial)) +}) + +test_that("get_trip_speed_profile derives day column from different timestamp types", { + # 1. POSIXct timestamp + t_posix <- as.POSIXct(c("2024-05-01 10:00:00", "2024-05-01 10:02:00", "2024-05-01 10:04:00", "2024-05-01 10:06:00"), tz = "UTC") + df_posix <- data.frame( + trip_id = "T1", + route_id = "R1", + timestamp = t_posix, + distance_along_geometry = c(0, 500, 1000, 1500), + speed_kmh = c(NA, 15, 15, 15) + ) + res_posix <- GTFShift::get_trip_speed_profile(df_posix) + expect_equal(res_posix$day, as.Date("2024-05-01")) + expect_equal(res_posix$commercial_speed, 15.0) + expect_equal(res_posix$commercial_speed_alt, 15.0) + + # 2. Date timestamp + df_date <- data.frame( + trip_id = "T1", + route_id = "R1", + timestamp = as.Date(c("2024-06-01", "2024-06-02", "2024-06-03", "2024-06-04")), + distance_along_geometry = c(0, 100000, 200000, 300000), + speed_kmh = c(NA, 4.17, 4.17, 4.17) + ) + res_date <- GTFShift::get_trip_speed_profile(df_date) + expect_equal(res_date$day, as.Date(c("2024-06-01", "2024-06-02", "2024-06-03", "2024-06-04"))) + + res_date_trip <- GTFShift::get_trip_speed_profile(df_date, by = "trip_id") + expect_equal(res_date_trip$commercial_speed, 4.17) + + # 3. Pre-existing day column is preserved + df_custom_day <- df_posix + df_custom_day$day <- as.Date("2020-01-01") + res_custom_day <- GTFShift::get_trip_speed_profile(df_custom_day) + expect_equal(res_custom_day$day, as.Date("2020-01-01")) +}) + +test_that("get_trip_speed_profile drops geometry from sf objects", { + df_sf <- sf::st_sf( + trip_id = rep("T1", 5), + route_id = "R1", + timestamp = c(1000, 1060, 1120, 1180, 1240), + distance_along_geometry = c(0, 300, 700, 1200, 1500), + speed_kmh = c(NA, 18, 24, 30, 18), + geometry = sf::st_sfc(lapply(1:5, function(i) sf::st_point(c(i, i)))) + ) + + res_sf <- GTFShift::get_trip_speed_profile(df_sf) + expect_false(inherits(res_sf, "sf")) + expect_false("geometry" %in% names(res_sf)) + expect_equal(res_sf$commercial_speed, 22.5) +}) + +test_that("get_trip_speed_profile handles update count edge cases (n < 2, 2 <= n < 4, n >= 4)", { + # 1 update: both commercial speeds NA, variance/sd NA + df_n1 <- data.frame( + trip_id = "T1", + timestamp = 1000, + distance_along_geometry = 0, + speed_kmh = 25 + ) + res_n1 <- GTFShift::get_trip_speed_profile(df_n1, by = "trip_id") + expect_true(is.na(res_n1$commercial_speed)) + expect_true(is.na(res_n1$commercial_speed_alt)) + expect_true(is.na(res_n1$speed_sd)) + expect_true(is.na(res_n1$speed_var)) + expect_equal(res_n1$speed_avg, 25.0) + expect_equal(res_n1$speed_count, 1) + expect_equal(res_n1$n_updates, 1) + + # 2 updates: commercial_speed valid, commercial_speed_alt NA + df_n2 <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060), + distance_along_geometry = c(0, 500), + speed_kmh = c(NA, 30) + ) + res_n2 <- GTFShift::get_trip_speed_profile(df_n2, by = "trip_id") + expect_equal(res_n2$commercial_speed, 30.0) + expect_true(is.na(res_n2$commercial_speed_alt)) + + # 3 updates: commercial_speed valid, commercial_speed_alt NA + df_n3 <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060, 1120), + distance_along_geometry = c(0, 500, 1000), + speed_kmh = c(NA, 30, 30) + ) + res_n3 <- GTFShift::get_trip_speed_profile(df_n3, by = "trip_id") + expect_equal(res_n3$commercial_speed, 30.0) + expect_true(is.na(res_n3$commercial_speed_alt)) + + # 4 updates: both valid + df_n4 <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060, 1120, 1180), + distance_along_geometry = c(0, 500, 1000, 1500), + speed_kmh = c(NA, 30, 30, 30) + ) + res_n4 <- GTFShift::get_trip_speed_profile(df_n4, by = "trip_id") + expect_equal(res_n4$commercial_speed, 30.0) + expect_equal(res_n4$commercial_speed_alt, 30.0) + + # Multi-trip group where all trips have n < 2 + df_multi_n1 <- data.frame( + route_id = "R1", + trip_id = c("T1", "T2"), + timestamp = c(1000, 2000), + distance_along_geometry = c(0, 0), + speed_kmh = c(20, 30) + ) + res_multi_n1 <- GTFShift::get_trip_speed_profile(df_multi_n1, by = "route_id") + expect_true(is.na(res_multi_n1$commercial_speed)) + expect_true(is.na(res_multi_n1$commercial_speed_alt)) + + # Multi-trip group where all trips have n < 4 + df_multi_n2 <- data.frame( + route_id = "R1", + trip_id = c("T1", "T1", "T2", "T2"), + timestamp = c(1000, 1060, 2000, 2060), + distance_along_geometry = c(0, 500, 0, 600), + speed_kmh = c(NA, 30, NA, 36) + ) + res_multi_n2 <- GTFShift::get_trip_speed_profile(df_multi_n2, by = "route_id") + expect_equal(res_multi_n2$commercial_speed, 33.0) # mean of 30 and 36 + expect_true(is.na(res_multi_n2$commercial_speed_alt)) + + # Multi-trip group where one trip has 4 updates and one has 1 update + df_multi_mixed <- data.frame( + route_id = "R1", + trip_id = c("T1", "T1", "T1", "T1", "T2"), + timestamp = c(1000, 1060, 1120, 1180, 2000), + distance_along_geometry = c(0, 500, 1000, 1500, 0), + speed_kmh = c(NA, 30, 30, 30, 20) + ) + res_multi_mixed <- GTFShift::get_trip_speed_profile(df_multi_mixed, by = "route_id") + expect_equal(res_multi_mixed$commercial_speed, 30.0) # only T1 has valid commercial speed + expect_equal(res_multi_mixed$commercial_speed_alt, 30.0) +}) + +test_that("get_trip_speed_profile handles unordered updates, zero/negative elapsed time, and missing values", { + # 1. Unordered updates are sorted chronologically + df_sorted <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060, 1120, 1180), + distance_along_geometry = c(0, 500, 1000, 1500), + speed_kmh = c(NA, 30, 30, 30) + ) + df_scrambled <- df_sorted[c(3, 1, 4, 2), ] + + res_sorted <- GTFShift::get_trip_speed_profile(df_sorted, by = "trip_id") + res_scrambled <- GTFShift::get_trip_speed_profile(df_scrambled, by = "trip_id") + expect_equal(res_scrambled$timestamp_min, res_sorted$timestamp_min) + expect_equal(res_scrambled$timestamp_max, res_sorted$timestamp_max) + expect_equal(res_scrambled$commercial_speed, res_sorted$commercial_speed) + expect_equal(res_scrambled$commercial_speed_alt, res_sorted$commercial_speed_alt) + + # 2. Zero or negative time difference yields NA commercial speed + df_zero_time <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1000), + distance_along_geometry = c(0, 500), + speed_kmh = c(NA, 30) + ) + res_zero <- GTFShift::get_trip_speed_profile(df_zero_time, by = "trip_id") + expect_true(is.na(res_zero$commercial_speed)) + + # 3. NA timestamp or NA distance yields NA commercial speed + df_na_time <- data.frame( + trip_id = "T1", + timestamp = c(NA, 1060), + distance_along_geometry = c(0, 500), + speed_kmh = c(NA, 30) + ) + res_na_time <- GTFShift::get_trip_speed_profile(df_na_time, by = "trip_id") + expect_true(is.na(res_na_time$commercial_speed)) + + df_na_dist <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060), + distance_along_geometry = c(NA, 500), + speed_kmh = c(NA, 30) + ) + res_na_dist <- GTFShift::get_trip_speed_profile(df_na_dist, by = "trip_id") + expect_true(is.na(res_na_dist$commercial_speed)) + + # 4. Backward distance progression uses absolute difference + df_backward <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060, 1120, 1180), + distance_along_geometry = c(1500, 1000, 500, 0), + speed_kmh = c(NA, 30, 30, 30) + ) + res_backward <- GTFShift::get_trip_speed_profile(df_backward, by = "trip_id") + expect_equal(res_backward$commercial_speed, 30.0) + expect_equal(res_backward$commercial_speed_alt, 30.0) + + # 5. Character timestamps parseable as POSIXct + df_char <- data.frame( + trip_id = "T1", + timestamp = c("2024-05-01 10:00:00", "2024-05-01 10:02:00", "2024-05-01 10:04:00", "2024-05-01 10:06:00"), + distance_along_geometry = c(0, 500, 1000, 1500), + speed_kmh = c(NA, 15, 15, 15) + ) + res_char <- GTFShift::get_trip_speed_profile(df_char, by = "trip_id") + expect_equal(res_char$commercial_speed, 15.0) + expect_equal(res_char$commercial_speed_alt, 15.0) +}) + +test_that("get_trip_speed_profile handles speed column variations and edge cases", { + # 1. Non-finite speed values (Inf, -Inf) are ignored + df_inf <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060, 1120, 1180), + distance_along_geometry = c(0, 500, 1000, 1500), + speed_kmh = c(20, Inf, -Inf, 40) + ) + res_inf <- GTFShift::get_trip_speed_profile(df_inf, by = "trip_id") + expect_equal(res_inf$speed_avg, 30.0) + expect_equal(res_inf$speed_min, 20.0) + expect_equal(res_inf$speed_max, 40.0) + expect_equal(res_inf$speed_count, 2) + + # 2. All speeds NA + df_all_na <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060), + distance_along_geometry = c(0, 500), + speed_kmh = c(NA_real_, NA_real_) + ) + res_all_na <- GTFShift::get_trip_speed_profile(df_all_na, by = "trip_id") + expect_equal(res_all_na$speed_count, 0) + expect_true(is.na(res_all_na$speed_avg)) + expect_true(is.na(res_all_na$speed_median)) + expect_true(is.na(res_all_na$speed_sd)) + expect_true(is.na(res_all_na$speed_var)) + expect_true(is.na(res_all_na$speed_min)) + expect_true(is.na(res_all_na$speed_max)) + expect_true(is.na(res_all_na$speed_p15)) + expect_true(is.na(res_all_na$speed_p25)) + expect_true(is.na(res_all_na$speed_p75)) + expect_true(is.na(res_all_na$speed_p85)) + expect_true(is.na(res_all_na$speed_iqr)) + expect_equal(res_all_na$commercial_speed, 30.0) + + # 3. Missing speed_col completely + df_no_speed <- data.frame( + trip_id = "T1", + timestamp = c(1000, 1060), + distance_along_geometry = c(0, 500) + ) + res_no_speed <- GTFShift::get_trip_speed_profile(df_no_speed, by = "trip_id") + expect_equal(res_no_speed$speed_count, 0) + expect_true(is.na(res_no_speed$speed_avg)) + expect_equal(res_no_speed$commercial_speed, 30.0) + + # 4. Custom column names + df_custom <- data.frame( + my_trip = "T1", + my_time = c(1000, 1060, 1120, 1180), + my_dist = c(0, 500, 1000, 1500), + my_spd = c(NA, 30, 30, 30) + ) + res_custom <- GTFShift::get_trip_speed_profile( + df_custom, + by = "my_trip", + dist_col = "my_dist", + speed_col = "my_spd", + time_col = "my_time" + ) + expect_equal(res_custom$commercial_speed, 30.0) + expect_equal(res_custom$speed_avg, 30.0) + expect_equal(res_custom$speed_count, 3) + + # 5. Grouped data.frame input is ungrouped properly + df_grouped <- dplyr::group_by(df_inf, trip_id) + res_grouped <- GTFShift::get_trip_speed_profile(df_grouped, by = "trip_id") + expect_equal(res_grouped$commercial_speed, 30.0) +}) + +test_that("get_trip_speed_profile stops with informative error on invalid inputs", { + # 1. Non-dataframe input + expect_error( + GTFShift::get_trip_speed_profile(123), + "rt_speed must be a data.frame or sf object" + ) + expect_error( + GTFShift::get_trip_speed_profile(list(a = 1)), + "rt_speed must be a data.frame or sf object" + ) + + # 2. Missing required columns + expect_error( + GTFShift::get_trip_speed_profile(data.frame(x = 1)), + "rt_speed is missing required column\\(s\\): distance_along_geometry, timestamp" + ) + expect_error( + GTFShift::get_trip_speed_profile( + data.frame(x = 1), + dist_col = "my_dist", + time_col = "my_time" + ), + "rt_speed is missing required column\\(s\\): my_dist, my_time" + ) + + # 3. Specified grouping column in by is missing + df_valid <- data.frame( + trip_id = "T1", + timestamp = 1000, + distance_along_geometry = 0 + ) + expect_error( + GTFShift::get_trip_speed_profile(df_valid, by = c("non_existent_col")), + "The following grouping columns specified in 'by' were not found in rt_speed: non_existent_col" + ) +}) + +test_that("get_trip_speed_profile integrates seamlessly with rt_average_speed output", { + trip_geom <- sf::st_sf( + trip_id = c("T1", "T2"), + geometry = sf::st_sfc( + sf::st_linestring(matrix(c(0, 0, 1000, 0), ncol = 2, byrow = TRUE)), + sf::st_linestring(matrix(c(0, 100, 1000, 100), ncol = 2, byrow = TRUE)), + crs = 3857 + ) + ) + + rt_updates <- sf::st_sf( + trip_id = c("T1", "T1", "T1", "T1", "T2", "T2", "T2", "T2"), + route_id = "R1", + timestamp = c(1000, 1060, 1120, 1180, 2000, 2060, 2120, 2180), + geometry = sf::st_sfc( + sf::st_point(c(0, 0)), + sf::st_point(c(250, 0)), + sf::st_point(c(600, 0)), + sf::st_point(c(900, 0)), + sf::st_point(c(0, 100)), + sf::st_point(c(300, 100)), + sf::st_point(c(650, 100)), + sf::st_point(c(1000, 100)), + crs = 3857 + ) + ) + + speed_sf <- GTFShift::rt_average_speed(rt_updates, trip_geom, metric_crs = 3857) + profile <- GTFShift::get_trip_speed_profile(speed_sf) + + expect_s3_class(profile, "data.frame") + expect_false(inherits(profile, "sf")) + expect_equal(nrow(profile), 2) + expect_equal(profile$trip_id, c("T1", "T2")) + expect_equal(profile$route_id, c("R1", "R1")) + expect_true(all(!is.na(profile$commercial_speed))) + expect_true(all(!is.na(profile$commercial_speed_alt))) + expect_true(all(!is.na(profile$speed_avg))) + expect_true(all(!is.na(profile$speed_p15))) + expect_true(all(!is.na(profile$speed_p85))) + + # Global summary check + global_summary <- attr(profile, "global_summary") + expect_s3_class(global_summary, "data.frame") + expect_equal(nrow(global_summary), 1) + expect_equal(global_summary$n_updates, 8) +}) diff --git a/tests/testthat/test-rt_extend_prioritisation.R b/tests/testthat/test-rt_extend_prioritisation.R index 9e12891..14e5edb 100644 --- a/tests/testthat/test-rt_extend_prioritisation.R +++ b/tests/testthat/test-rt_extend_prioritisation.R @@ -38,9 +38,67 @@ test_that("rt_extend_prioritisation extends lane prioritisation with speed metri # For w2: speed 40 expect_equal(res$speed_avg[res$way_osm_id == "w2"], 40) + expect_equal(res$speed_median[res$way_osm_id == "w2"], 40) + expect_equal(unname(res$speed_p15[res$way_osm_id == "w2"]), 40) + expect_equal(unname(res$speed_p25[res$way_osm_id == "w2"]), 40) + expect_equal(unname(res$speed_p75[res$way_osm_id == "w2"]), 40) + expect_equal(unname(res$speed_p85[res$way_osm_id == "w2"]), 40) expect_equal(res$speed_count[res$way_osm_id == "w2"], 1) }) +test_that("rt_extend_prioritisation accurately computes speed_p15 and speed_p85 with multiple observations and NA values", { + lanes_sf <- st_sf( + way_osm_id = c("w1", "w2", "w_empty"), + geometry = st_sfc( + st_linestring(matrix(c(-9.150, 38.700, -9.140, 38.700), ncol = 2, byrow = TRUE)), + st_linestring(matrix(c(-9.130, 38.700, -9.120, 38.700), ncol = 2, byrow = TRUE)), + st_linestring(matrix(c(-9.100, 38.700, -9.090, 38.700), ncol = 2, byrow = TRUE)), + crs = 4326 + ) + ) + + # w1: 10 points with speeds 10, 20, ..., 100 + w1_lons <- seq(-9.149, -9.141, length.out = 10) + w1_points <- lapply(w1_lons, function(x) st_point(c(x, 38.700))) + w1_speeds <- seq(10, 100, by = 10) + + # w2: 4 points, one with NA speed: speeds 20, 40, NA, 60 + w2_lons <- seq(-9.128, -9.122, length.out = 4) + w2_points <- lapply(w2_lons, function(x) st_point(c(x, 38.700))) + w2_speeds <- c(20, 40, NA, 60) + + rt_points <- st_sf( + speed = c(w1_speeds, w2_speeds), + current_status = "IN_TRANSIT_TO", + geometry = st_sfc(c(w1_points, w2_points), crs = 4326) + ) + + res <- GTFShift::rt_extend_prioritisation(lanes_sf, rt_points, metric_crs = 3763) + + # w1 percentiles: 15% is 23.5, 25% is 32.5, 75% is 77.5, 85% is 86.5 + expect_equal(unname(res$speed_p15[res$way_osm_id == "w1"]), 23.5) + expect_equal(unname(res$speed_p25[res$way_osm_id == "w1"]), 32.5) + expect_equal(unname(res$speed_p75[res$way_osm_id == "w1"]), 77.5) + expect_equal(unname(res$speed_p85[res$way_osm_id == "w1"]), 86.5) + expect_equal(res$speed_count[res$way_osm_id == "w1"], 10) + + # Verify monotonic percentile relationships: p15 <= p25 <= median <= p75 <= p85 + expect_true(res$speed_p15[res$way_osm_id == "w1"] <= res$speed_p25[res$way_osm_id == "w1"]) + expect_true(res$speed_p25[res$way_osm_id == "w1"] <= res$speed_median[res$way_osm_id == "w1"]) + expect_true(res$speed_median[res$way_osm_id == "w1"] <= res$speed_p75[res$way_osm_id == "w1"]) + expect_true(res$speed_p75[res$way_osm_id == "w1"] <= res$speed_p85[res$way_osm_id == "w1"]) + + # w2 percentiles with NA: speeds c(20, 40, 60) -> 15% is 26, 85% is 54 + expect_equal(unname(res$speed_p15[res$way_osm_id == "w2"]), 26.0) + expect_equal(unname(res$speed_p85[res$way_osm_id == "w2"]), 54.0) + expect_equal(res$speed_count[res$way_osm_id == "w2"], 4) + + # w_empty: no points captured -> speed_p15 and speed_p85 are NA + expect_true(is.na(res$speed_p15[res$way_osm_id == "w_empty"])) + expect_true(is.na(res$speed_p85[res$way_osm_id == "w_empty"])) + expect_true(is.na(res$speed_count[res$way_osm_id == "w_empty"])) +}) + test_that("rt_extend_prioritisation raises warning when metric_crs is default", { lanes_sf <- st_sf( way_osm_id = "w1", From af514c44191e9e96808709eb243440b177d9d598 Mon Sep 17 00:00:00 2001 From: gmatosferreira Date: Tue, 29 Sep 2026 09:12:22 +0100 Subject: [PATCH 5/5] #95 NEWS kick-off --- NEWS.md | 12 ++++++++++++ _pkgdown.yml | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 NEWS.md diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000..349d2b1 --- /dev/null +++ b/NEWS.md @@ -0,0 +1,12 @@ +# GTFShift 1.0.0.900 + +(Dev version, not released on CRAN yet) + +- add `get_trip_speed_profile` to compute commercial speed and other speed related metrics at trip level +- extended `rt_extend_prioritisation` output with `speed_p15` and `speed_p85` + + +# GTFShift 1.0.0 + +- Stable version +- CRAN release \ No newline at end of file diff --git a/_pkgdown.yml b/_pkgdown.yml index 2a98f6d..6b9f9cd 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -8,7 +8,7 @@ template: navbar: structure: - left: [intro, reference, articles, dashboard] + left: [intro, reference, articles, news, dashboard] components: dashboard: