From 34ee0247ac2183847ca6bdd60d13710c6ccc2cf2 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Wed, 4 Jul 2018 17:20:03 +0200 Subject: [PATCH] addins and small improvements to microorganisms dataset --- DESCRIPTION | 7 +-- NAMESPACE | 2 + NEWS.md | 3 ++ R/globals.R | 4 ++ R/guess_bactid.R | 4 ++ R/like.R | 80 +++++++++++++++++++++++++++++ R/misc.R | 53 ++++++++++---------- R/p.symbol.R | 13 +++-- README.md | 7 ++- data/microorganisms.rda | Bin 38582 -> 38409 bytes inst/rstudio/addins.dcf | 19 +++++++ man/like.Rd | 35 ++++++++++--- man/p.symbol.Rd | 2 +- tests/testthat/test-g.test.R | 3 +- tests/testthat/test-like.R | 10 ++++ tests/testthat/test-misc.R | 7 --- tests/testthat/test-p.symbol.R | 4 +- vignettes/freq.R | 89 +++++++++++++++++++++++++++++++++ 18 files changed, 284 insertions(+), 58 deletions(-) create mode 100644 R/like.R create mode 100644 inst/rstudio/addins.dcf create mode 100644 tests/testthat/test-like.R create mode 100644 vignettes/freq.R diff --git a/DESCRIPTION b/DESCRIPTION index 419e6fc0..54571cd2 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 0.2.0.9007 -Date: 2018-07-01 +Version: 0.2.0.9008 +Date: 2018-07-04 Title: Antimicrobial Resistance Analysis Authors@R: c( person( @@ -41,7 +41,8 @@ Imports: Suggests: testthat (>= 1.0.2), covr (>= 3.0.1), - rmarkdown + rmarkdown, + rstudioapi VignetteBuilder: knitr URL: https://github.com/msberends/AMR BugReports: https://github.com/msberends/AMR/issues diff --git a/NAMESPACE b/NAMESPACE index 0cf12a81..fb692dfd 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -44,6 +44,7 @@ export(is.mic) export(is.rsi) export(key_antibiotics) export(left_join_microorganisms) +export(like) export(mo_property) export(n_rsi) export(p.symbol) @@ -121,6 +122,7 @@ importFrom(stats,mad) importFrom(stats,pchisq) importFrom(stats,sd) importFrom(tibble,tibble) +importFrom(utils,View) importFrom(utils,browseVignettes) importFrom(utils,object.size) importFrom(utils,packageDescription) diff --git a/NEWS.md b/NEWS.md index f4c59579..bee5351c 100755 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,6 @@ # 0.2.0.90xx (development version) #### New +* Support for Addins menu in RStudio to quickly insert `%in%` or `%like%` (and give them keyboard shortcuts), or to view the datasets that come with this package * Function `top_freq` function to get the top/below *n* items of frequency tables * Vignette about frequency tables * Header of frequency tables now also show MAD and IQR @@ -14,9 +15,11 @@ ratio(c(772, 1611, 737), ratio = "1:2:1") * Function `p.symbol` to transform p value to their related symbol: `0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1` #### Changed +* `%like%` now supports multiple patterns * Frequency tables (function `freq`) now supports quasiquotation: `freq(mydata, mycolumn)`, or `mydata %>% freq(mycolumn)` * Frequency tables are now actual `data.frame`s with altered console printing to make it look like a frequency table. Because of this, the parameter `toConsole` is not longer needed. * Small translational improvements to the `septic_patients` dataset +* Small improvements to the `microorganisms` dataset, especially for *Salmonella* * Combined MIC/RSI values will now be coerced by the `rsi` and `mic` functions: * `as.rsi("<=0.002; S")` will return `S` * `as.mic("<=0.002; S")` will return `<=0.002` diff --git a/R/globals.R b/R/globals.R index 28463b21..9fdf3265 100755 --- a/R/globals.R +++ b/R/globals.R @@ -17,6 +17,7 @@ # ==================================================================== # globalVariables(c('abname', + 'antibiotics', 'atc', 'bactid', 'cnt', @@ -36,6 +37,7 @@ globalVariables(c('abname', 'key_ab_other', 'median', 'mic', + 'microorganisms', 'mocode', 'molis', 'n', @@ -43,7 +45,9 @@ globalVariables(c('abname', 'patient_id', 'quantile', 'real_first_isolate', + 'septic_patients', 'species', 'umcg', + 'View', 'y', '.')) diff --git a/R/guess_bactid.R b/R/guess_bactid.R index 7d52960a..785ca0ae 100644 --- a/R/guess_bactid.R +++ b/R/guess_bactid.R @@ -96,6 +96,10 @@ guess_bactid <- function(x) { # avoid detection of Pasteurella aerogenes in case of Pseudomonas aeruginosa x[i] <- 'Pseudomonas aeruginosa' } + if (tolower(x[i]) %like% 'coagulase') { + # coerce S. coagulase negative + x[i] <- 'Coagulase Negative Staphylococcus (CNS)' + } # translate known trivial names to genus+species if (!is.na(x.bak[i])) { diff --git a/R/like.R b/R/like.R new file mode 100644 index 00000000..f3303912 --- /dev/null +++ b/R/like.R @@ -0,0 +1,80 @@ +# ==================================================================== # +# TITLE # +# Antimicrobial Resistance (AMR) Analysis # +# # +# AUTHORS # +# Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # +# # +# LICENCE # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License version 2.0, # +# as published by the Free Software Foundation. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# ==================================================================== # + +#' Pattern Matching +#' +#' Convenient wrapper around \code{\link[base]{grepl}} to match a pattern: \code{a \%like\% b}. It always returns a \code{logical} vector and is always case-insensitive. Also, \code{pattern} (\code{b}) can be as long as \code{x} (\code{a}) to compare items of each index in both vectors. +#' @inheritParams base::grepl +#' @return A \code{logical} vector +#' @name like +#' @rdname like +#' @export +#' @details Using RStudio? This function can also be inserted from the Addins menu and can have its own Keyboard Shortcut like Ctrl+Shift+L or Cmd+Shift+L (see Tools > Modify Keyboard Shortcuts...). +#' @source Idea from the \href{https://github.com/Rdatatable/data.table/blob/master/R/like.R}{\code{like} function from the \code{data.table} package}, but made it case insensitive at default and let it support multiple patterns. +#' @seealso \code{\link[base]{grep}} +#' @examples +#' # simple test +#' a <- "This is a test" +#' b <- "TEST" +#' a %like% b +#' #> TRUE +#' b %like% a +#' #> FALSE +#' +#' # also supports multiple patterns, length must be equal to x +#' a <- c("Test case", "Something different", "Yet another thing") +#' b <- c("case", "diff", "yet") +#' a %like% b +#' #> TRUE TRUE TRUE +#' +#' # get frequencies of bacteria whose name start with 'Ent' or 'ent' +#' library(dplyr) +#' septic_patients %>% +#' left_join_microorganisms() %>% +#' filter(genus %like% '^ent') %>% +#' freq(genus, species) +like <- function(x, pattern) { + if (length(pattern) > 1) { + if (length(x) != length(pattern)) { + pattern <- pattern[1] + warning('only the first element of argument `pattern` used for `%like%`', call. = FALSE) + } else { + # x and pattern are of same length, so items with each other + res <- vector(length = length(pattern)) + for (i in 1:length(res)) { + if (is.factor(x[i])) { + res[i] <- as.integer(x[i]) %in% base::grep(pattern[i], levels(x[i]), ignore.case = TRUE) + } else { + res[i] <- base::grepl(pattern[i], x[i], ignore.case = TRUE) + } + } + return(res) + } + } + + # the regular way how grepl works; just one pattern against one or more x + if (is.factor(x)) { + as.integer(x) %in% base::grep(pattern, levels(x), ignore.case = TRUE) + } else { + base::grepl(pattern, x, ignore.case = TRUE) + } +} + +#' @rdname like +#' @export +"%like%" <- like diff --git a/R/misc.R b/R/misc.R index e8354650..ec8db1eb 100755 --- a/R/misc.R +++ b/R/misc.R @@ -16,33 +16,32 @@ # GNU General Public License for more details. # # ==================================================================== # -#' Pattern Matching -#' -#' Convenience function to compare a vector with a pattern, like \code{\link[base]{grep}}. It always returns a \code{logical} vector and is always case-insensitive. -#' @inheritParams base::grep -#' @return A \code{logical} vector -#' @name like -#' @rdname like -#' @export -#' @source Inherited from the \href{https://github.com/Rdatatable/data.table/blob/master/R/like.R}{\code{like} function from the \code{data.table} package}, but made it case insensitive at default. -#' @examples -#' library(dplyr) -#' # get unique occurences of bacteria whose name start with 'Ent' -#' septic_patients %>% -#' left_join_microorganisms() %>% -#' filter(fullname %like% '^Ent') %>% -#' pull(fullname) %>% -#' unique() -"%like%" <- function(x, pattern) { - if (length(pattern) > 1) { - pattern <- pattern[1] - warning('only the first element of argument `pattern` used for `%like%`', call. = FALSE) - } - if (is.factor(x)) { - as.integer(x) %in% base::grep(pattern, levels(x), ignore.case = TRUE) - } else { - base::grepl(pattern, x, ignore.case = TRUE) - } +# No export, no Rd +addin_insert_in <- function() { + rstudioapi::insertText(" %in% ") +} + +# No export, no Rd +addin_insert_like <- function() { + rstudioapi::insertText(" %like% ") +} + +# No export, no Rd +#' @importFrom utils View +addin_open_antibiotics <- function() { + View(antibiotics) +} + +# No export, no Rd +#' @importFrom utils View +addin_open_microorganisms <- function() { + View(microorganisms) +} + +# No export, no Rd +#' @importFrom utils View +addin_open_septic_patients <- function() { + View(septic_patients) } # No export, no Rd diff --git a/R/p.symbol.R b/R/p.symbol.R index c11e2727..22e0550c 100644 --- a/R/p.symbol.R +++ b/R/p.symbol.R @@ -18,23 +18,22 @@ #' Symbol of a p value #' -#' Return the symbol related to the p value: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 +#' Return the symbol related to the p value: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1. Values above \code{p = 1} will return \code{NA}. #' @param p p value #' @param emptychar text to show when \code{p > 0.1} #' @return Text #' @export p.symbol <- function(p, emptychar = " ") { - instelling.oud <- options()$scipen + setting.bak <- options()$scipen options(scipen = 999) - s <- '' - s[1:length(p)] <- '' + s <- vector(mode = "character", length = length(p)) for (i in 1:length(p)) { if (is.na(p[i])) { - s[i] <- NA + s[i] <- NA_character_ next } if (p[i] > 1) { - s[i] <- NA + s[i] <- NA_character_ next } else { p_test <- p[i] @@ -52,6 +51,6 @@ p.symbol <- function(p, emptychar = " ") { s[i] <- '***' } } - options(scipen = instelling.oud) + options(scipen = setting.bak) s } diff --git a/README.md b/README.md index 042d2c79..9d086718 100755 --- a/README.md +++ b/README.md @@ -34,9 +34,12 @@ With `AMR` you can also: * Get the latest antibiotic properties like hierarchic groups and [defined daily dose](https://en.wikipedia.org/wiki/Defined_daily_dose) (DDD) with units and administration form from the WHOCC website with the `atc_property` function * Create frequency tables with the `freq` function -With the `MDRO` function (abbreviation of Multi Drug Resistant Organisms), you can check your isolates for exceptional resistance with country-specific guidelines or EUCAST rules. Currently guidelines for Germany and the Netherlands are supported. Please suggest addition of your own country here: [https://github.com/msberends/AMR/issues/new](https://github.com/msberends/AMR/issues/new?title=New%20guideline%20for%20MDRO&body=%3C--%20Please%20add%20your%20country%20code,%20guideline%20name,%20version%20and%20source%20below%20and%20remove%20this%20line--%3E). +And it contains: +* A recent data set with ~2500 human pathogenic microorganisms, including family, genus, species, gram stain and aerobic/anaerobic +* A recent data set with all antibiotics as defined by the [WHOCC](https://www.whocc.no/atc_ddd_methodology/who_collaborating_centre/), including ATC code, official name and DDD's +* An example data set `septic_patients`, consisting of 2000 blood culture isolates from anonymised septic patients between 2001 and 2017. -This package contains an example data set `septic_patients`, consisting of 2000 isolates from anonymised septic patients between 2001 and 2017. +With the `MDRO` function (abbreviation of Multi Drug Resistant Organisms), you can check your isolates for exceptional resistance with country-specific guidelines or EUCAST rules. Currently guidelines for Germany and the Netherlands are supported. Please suggest addition of your own country here: [https://github.com/msberends/AMR/issues/new](https://github.com/msberends/AMR/issues/new?title=New%20guideline%20for%20MDRO&body=%3C--%20Please%20add%20your%20country%20code,%20guideline%20name,%20version%20and%20source%20below%20and%20remove%20this%20line--%3E). ## How to get it? This package is available on CRAN and also here on GitHub. diff --git a/data/microorganisms.rda b/data/microorganisms.rda index 76cf6470b856954dba35768f0cb2440733636ad2..bf7effbce56398555edccf49f0d23b6d9c588cb7 100755 GIT binary patch literal 38409 zcmV)KK)Sy|T4*^jL0KkKS-xs{p#lYT|KR`s|NsC0|KLCW|M0*6|L{lv0tf*C;N2ej z6rf|EXaS%A017ECj8X$l0yY}&zTsFNs_+0fo$h<9$KBp|aknYmoVxAagU}Z2fUQVLM^a2$>$!`OB!Nc1VV@bo) zI=!ZK#T8ESbaEK(#+|lyBF(n2SWp7~d?ae8;wlTQfVkk`&EY%;DM8c6)DYbJ^bN)1}k5 zW8MlLhi>j{X;jvc?{}-%XfJiad!1deB&kCWpa22DfS>{)CX9w4R8ax~Xb=)&WF`rzhM5yXBTSTgQawQR000J> zXa@eYF@L#KPzVY#XjB*f(yD=&2ZQ+=nJ#&}@=RlDR7*#+=|2QlBa0&QiL`_J4 zGyr}Z@<1&J{uzI!1^|jbA1GI(i`G!$ zQ}bS_Q*v&5U{vQ`6xslMnjq`%* zSG;L=D4FSe^pp@Rv4=uv%Gha3Wh&5jN-8(^|AR9|`=32>htp~0jF#z{uRqP>S$(tH zk6p7BOEil=>@4|FMHE#7RK75Z-v`oe(zB0~y2&<|(guj7KE}7^@le-l>d|PTN(+Dd zU_OxzqrKrP30edWeh?^UrqSqE9nJZ?vUw3DZ!_)TU$C`RhOwP;F`RAo#PPxtz zkKUQ@7lL9Po%u(Y;BPo~r7O3Ko&U(ZB@#c0xQNlw#(;#K-8;bvIv4tXqdgJpt|JOQ z8~?Ix-G)?f(Ifu=GjU=#zz(aPV|=cZUznB@*7ooe}{xWL|Fkd|D(<|Oeqg`_Q+3lh-G4_WRz4)SF^$Bx!=Jz_bG3r%e- zlG*nq)c6q}g5^i(sO;*8HgM_<#S0QDDwHHq;y{7Rn32U~v7yd&U700;u`v)NWNL0U zF3qag$Z~iPCP*<~9O377nH>?(gx`m4p2nQ2s9aH z{F)0(8mbmCC^+%bCXp8>&_?n>GA0HF8kijGtkkK^!dv*fNtuQQ!-Y;Hi<;1}BG1nR z_|{-8p8`lj-S?Y1$?!`jsd4aHl`CQ+oL;L0(p9tI9L0w?lrq_6U6Q+&5t50ypG%TA z7!uKyo#-NBY!+lFvW>(OGI*>E%!(U|+LbdRWrU*y^u*j~XhWC;zIHBB;Ji$$4X;`F2DV;E2~AnFdFt%LOo6po)S zY5z%7o!2}}mrS#Rq>zyzI$VCF4x@`jmqX8hj8<83ha~0QJJ8VNLqQgUzE34F$q<;E zS5PI^8~26A%RP;Vvh8#3C7XJMkM70mSd^b~N_lz2xuk4t;!v?+5*C6{i06!q#%1+; zoq{r;h?OG^O-Y_}m)M^ijr11h%ttXG#EElaTNn^p8@H$yNJEI@o1ELt2Jx-ZQE_;9 zx-5x04j57}`kyyP$HCan5@>l=Xz`ITITSM{bY6nZ!-_W{UF^6PB1qziG;`c4KLaxY zromFgh!z$kLKYR?&JRie!$GMg_1EjEqgh-cHUPTQcOs+2MnRuI>#Q zwQ5x>+}6S>NXuqQ@k3OY=Hev`3z8-w%*+f37dEQ3q;4Lmc{G8FvcbZJBa%$Zsob(C zZYDw&AQ*Sm^BcHc*a_2gs1)5hlb>Dm88_*Hc<%*GHqi z4!annNS9CLkHVr_woxuljh12e9i5$>n<$v*M~4sWc47CLJd@zTDa6cD&G8A9E)y{- zXk=Sa5LXMAE*CCbsnEJQ5q>6MbBoEFC6T!uUB`58>%O$-Oh zOISIHb2Fk#XFN(=$?@2!&P2qSfg(8}N#aS?kE&dFw&;Y`@n&N9o5WCa140I6NE0}h z3Y-nbLNzK>u`_{SiD4QLF%eTEA_UBdlru6eO{3Mxs+}2p7-+9Hk2kxk==wHg!@F~l zh~W=z1LfFtT`(a`m) zOzfe>BZua9*A2(aD=Mgc2%YZj( zn9i|o?>^{nxjVllbBOT~G2WT3P^gC%;Towb@Hd%6N!uX`;&-8mb0VfBOw5WK%nBJ9 z7?v==iIJn>B=w=?+zD%+TP0ql1W@SJC|x|)2&J)^xX9c{sdEyANW@DH1~UYyz=&5f z5=KQyI!K~YsbXf?p)1K{$U2Ub$-%YimC7)q(d56Fk7b@$sW!BA;E^XwbM~d-?DsI? zcDr_zyd=X5wfGtGTJKUn2WHGY#Aru(3r`Cu_Zg$)&V)C!k4KY}4vt118y*$2R<9?) z>f1+Gh8ZwW!cUzbP*r>~jwJ^&G%~7DiIG4-Q-NZp<2x)Js^m?KOpB1CE5DHP6f-xR zjwS_-!ZtJ@K;mpv)RSmzVpt@4{DAYsrUVR>vU?m#YNL%vXu{t59K}f)8Id^{NJevi zqcCe&7FPaK8y3%a67#dkoQ3sl!jFL$rJNXxh0@Tao`*D2lv0!N9K@)Miy09)%xt?~ zic6b$_%FBgzm9kHXWc-G{cJOwy&*M(Z%;_g;k|DD`@_KuKh<&Zv5c>|QiTwAojPMi zX7(gzv&O2?j+nLzkOs9qzOAIILp-NJeryfgVeLHD8hDTP|hwga?F=TaOmw84wi4x!Nmv>We7?l-XjBY z+NLN!1V?M1*Qe{BL7J~f73ql?yuT5VImMsE>$4MKsMmL{~x@4jwN9!YwT6YW6GzGO!E zvU5(OYRt^VOKUUZnTMI4zm*1&h}wp~r9f?RnK(503M4`lHWapVG8xpe_wCi5Bs?75 z=9)2dNg|vzBI!V0nTWOF%$iuAhX>1bJX@DU_=QiayQ(_Kcj2_2BrD@I{Z!=PKwKg$ zQ8oIds4L(9sjTK7iaq|({hHpJM%fXFYDDps$qV*y8USg?Lm(-j41`jE6C@KLP~4(A zf|FT@v<5&W0<}Qo0MaHx1CT3{jz}2*(k&^eM^dFalqe7>5uh4GqzVKw1q^`HBIE#3 zsRhV#04NtBX+bH=AQvU|<{(gt=?sxLmB|Q!paz-{pedjV5lR3`K`0bBlt&<>i57sM z5`kKvXaS^35E=z(Mvy25k!ehna#W_2C=e+Tpc+J^3Ir$=C=7&LfC?!Ep`ZeRXj)K8 zYJgf^GY}|7X3}iZM~dH0uNj%yFCUZ3?BA3-KJP>N|6YtYV{ALUn*Dt{`D4c(X7M-M z4PqTgNt>ha-v$p2`)=AATfz0^wp^&QM@s1S#s-?OdOBc|Sm)F2j$Sj@uGsdn0PDw1 z>wf;<55IOhwCnC>1Ij)~DVU0>C<;O&Ga4c)B&4dKC~2f610&BGvck$Ds|A$`z(m%X z(GgJ!sRaRWFp(Rny|G3S;%W2WF{ zZzqoaC67l8bMa%-g{?SV{d3PSZ%eSx-0kge6Z-N#UtQnw!RnkyxTySyi@J^!oRwKc zD5Tf!dw-aoJkpcgSjOXB;k&ByIsS3o_@4Xiem2%su}yzyhjzcf?>chZRL z^D`4O2h9hi1&!Pw^GwPc5nIW+m91Z^S5j!^P{gZ0iwymkDGYm{Lv~p=`?9PH(3EGJ!NSb#;IL;iL(WOc(QO8YeNN;vx*pX(?%%BP1Q-xG;!QBni1N>Y{q2MvxtjwgYfLJm!5Sf zNT?5HF&3&$({MLQwt`8C^Kmj#aqNDf9UOM(=;*E60ofqIWSR4L!P-gBtRTZA%?BI+ zRtqyLCE;zVRoMyf9SMl5IptF#fB0mIGi30;NkH z0oJt;1g0@T*3!r>;|4jT(D1MiMxW} z>ix1f5L5h2n3Q5djG352^Cw@2^GF&-h-a#V5ekq2Kv=QN+kxf=fL1qb%i;|Rt209gCe2G3-Y&=q zkU@8T)1nF-5oAO-)(A)B!(zKLKzJU zs6cX2p(#dzXb|Qj(*YAus?$OZ3N!+zA|Fbp6(~?u86$;BmQ+$xMIkdmRMM0*Efm!w zNP$XH76K;_-**7lTMw2x^v}45hUhR#HC|I%YqpMMI=K-1r*ZJO3+tm!YKxk3Q-~fqLi<%IU^ii`y@VG4wR5M z^2-{WtJ}HbAKLdLQAZbRI@5zVUZ`EnW-%nqr!3+`_w@XC07Wf4MmR&Hg#o1~N~m!i zDxGO0tc5@sWv!1qx(=O(;-+3kWU%SMc+@q5&Gb-(eZV0LfC%LW*{g5Dt=} zGzf(X83H5EmrhhpX4ON8Ku<(~tD}zYNIH!|DNaw7uQhAiBvt%Bw?0*w_cOn;y&JU1Ov4$w z8OjP#k1f7lNfw)vV<9k}>hqigjmD2&jrRe*E#hP`DN7AVQ%WEyFSLC8w1w$mWACJu zfjiK~^R=WHscv{6nZ=xAimf52T$YrjXj)MUP@^W4r2sMri$zn+p${ITnxnZ(K(fTj){yo~p#Cx!W!bWA~ z7Z&8#w)hcEh^8RFQ`$~N%%E}~r<7A4JwKDA$=0Z$Yfp*m-_pJ?)wV%yTZc7O4u(oe zs0T~ABTE}gj%l_yfxBA9yP2_xF2q@F#L2ZSmb(<-Ha0dQhBz+7ba75MPi}V?Yppu% zyPk>a@&tWQ6o`(r@!g$j@VBh4E-FkG5qgM4Qz%w7tB&K(hl}g%Q~1J-MYBqBiFCVF@3a!t)$ATs*-*Np+LSqUZ{<2!i3V&@iwh-0qL|Pve;=# zDQcy~Wn_Du#i)~&eooNOAZzWnbwRrhG2@I5c8Y_9r2@`AJDu#~D)Q9ui_-QfVKbu? z;vWt>_VLUyOj?30h{Pi6&6OWD*!g6y;OeN;lR`+V${8UALsY1 z>FsR|MNAGPPE#!g(JV}%p@gWH3CF|t{(3KrwFA)SjE;L=v*nvYZl>lXL@`CSN?Tz5 zzSGmsbakvMWJj6a(!HUpmubtK}m`au|`vQ`P`&yS(Wofeg_ty zl^2yNl(`Sk+=!yxK(>Nyo^fSmVyd6N+rPN^r@n0u0k>{uj8e(dR01Sm3aCrL>v^PIzX=E z6Zg^Ou(}#QIfPQ z*|nIgS!EKev(t=p>{*R?#WN{Vl_^q|l%fnip9^T8K@%n|qk?_~4oL+pTt3|1?3EYAY(8wDR2o6)y&Duwz~_8JoXu6 zg)vD?JFi4je5LWLR8dCT!aMCCKsDB-@iwQ0%8pYfy@#3BR8eeY&d~c4?p{w1ZXN8{ zrFF{zT-jkvk`1#I*e3A1o@JVp-)qw`J4EdJ!QyjN`lZU%RaJ=6)+(v(#n^n@UI9lDUc-(<|CCheWJM1xi=N<^SILDJ3?h0}e;003+uqB$NW8?|#p03B?K zI&1u-BifW<6Ywv=?ph%T10R4|6(`L^VfChmiC9;W)za@fH)w|9->NKEjF#Axj~_r* zu9C#il?>;Hi*$hiaCKbOS61fpdpkl-j!tZ|K+;5tqN)KP0UcOci&*cwgcITYGVeb0 zK0MZo&BH()fs|_;I}aoOp824WkQz6_Ma-E#Dypig>7TWsrzyWK-+@llzDuor?1|4G zkqAI(jwJ4|JmD%)B-ca6C9Vm+}eiCeQUsA*$9&%eODQhzib=Fje9rfMo zRDGfDmL0IOElRRcE%t7jRHe5eim76a)d&%TUI%oSWCS`6Ldy$(6BLiH8cUbxM) z!WPT6*3#!>5lqt4ZQa|PR$(a<-lk7H=N&_?UVAHQiY7H(wof;7det;+xW@W+8j09l zQ)s11+bCJd#+5#qydJk79y;~9+LThRcER9D0uvrR6?__><&$aLdgTuP47(>Qe%&zP zQGU;!c(U&dGBMbMsOII%GA+$6O{@4FOv-rO3(~`ND$d&@=w3BFze$~$x-Doma`+Sw zFy96f>qTGZN{KwWvy?lA``o3q>`!yj% z1bHPLG`_LrZ2qU2%`~%f#hKG2rOr|ylb+s)GjLQ8kR-+?@tkP*rGb|N`$<|+;+EWa z@rDhCKsrmvjMN0eLK8d2;d2)V*911dB&|m z%d#iaiV97e1tjstLm*&RoEVgd)aB z#v`$Zff3Q$Frf&e5XvG(A|eq36Qq$r$c|J+f6{fD8r;WmIk9lvA;cm>h{%A@fbE>) z!M9VI`?vJfx~mtvm<9+6RiuaJZWH$i@H|W-yu|Pb^mcs5mg6ok*M7#wlXe?2!Mppv z^%+9f(W?!JfY6AOB*Kd&>5Q2vn7%zf!5b(vV94|^QZP7CsWw6p_Y5{&h}lNyW*h2Z zS&o(9RXRG&&2WsYjAY5GPEH#%G-9Iys;Rb2wQkI5!<*>v!{pf?`qXq;9R?h$49}aQ zG(4MXn=87;9oJo^W?JR9t8*(PX1p?P%$qgKIzQ&xOWk*8)z2eUVP209v8t=1%ZJff zRaj%j4OODGQ`K8LvdTw_@Q0~kf;UvHJszyQ-fluTDGCEtGh-BY>SCZh#!18A(ks;z zP;+sIhLh9Yd$BQ+^wFWomy;%~6LfW9mro5EJe{H#HPO3BocO8RRc>L4T;1!{vO6+) zFzC@62PX_j-QkAmwXrLiU_1fsH==8o8vWBR*C81?BS!;Ra2s-A@1~Ko{soDo=$E}36%$0PHMM@CJ{ZA zIn$b$vPZJXId9JmCfsc{S3Ep2=%UToO%!@LFpGxH7H$7FU49R98MxBuWf(G|68IF7 zG6UW+CL3+G+!+YH9h`B&p);7=ImqJ59q8uUjhwqNL^ySjmAYzO=lgk%`(cCnkW^HVYTyeHJ$05ujLQsD$!h; zG)+|bw0SzP!-SkRWroZ;I{CJ2YIc(d>d~Vqwy#x2#887izHJgnGEb?7pv|LR0QV8>AhVGJg^ngA2HtTTF*pODNb3F#{r|`Ke;~hi{zQ-XG5mkk zQ~p#J{on5Xnt((6f8}rX|DC6%XZ=6%&{?x?fjtHPHe>#_{~Y6&8T2Ik2#m?*x~eu; z#Q(fRM^JJ@?vOf&7&99U&>sy3Z}Dbh13d9E=SIKv{_c!!WH+qL--9rJmYrGeT(Rir zpZQL|B@6kqlg?`BLiP?O+OMsV+Phk zwVaH(n9r7UH3xl6&CRZ+y7>Yb6O#;uk_6@H-@t7!oN0KNyu1L?Z~p^UC$2>}EUJ zIrs}x12I2`?vftLHgnT5Cw4mJy6*FE+s(Ua5u;Y_Tr#T4s!mQ54mV8J^Z2j3Lz8t^ zO3}k-CrQL?=&pxW9T;X#pVr;Pl4i$tvKzH>ZI&BOjH{`;heO%T*_CYO-2Tk8b9*xF z*#GXZo>0Bna7~! zyriTbBPTXvW|hH`)V4EYS9Y#aZuepDwmf&oh3~l0qZOOkc6-I0heL-Q9JrXKbV;MK zhGb0hVaIj`Ho$|yhfRTziRWR4_Ke-#-R`{4-R%#TrlSln%+2Wr0Jsh9scbvn1n_m~ zh8SV0y#0r*eu*Lq*q82F&w1{;F}x>RCG(&RJ=V4F7Dit8nTuje++<|LfYP(m3Ruw3 z9mNe=wlZlAJ6{_UJ*zzpvkEfI6FlAB6K_87{!WucD< zZuv%vr!Ah=#Kol{#9zdl-gNm<+IXAJsKnpTkv>UlL>e@gObViCqN&ZO~l5|DYrN0e-{ z2(b)elVd1CC}%WI#8hBQI3s1j=z(%#9E%#>R-9U7()D8&Y!YF6*<=(=ny0n$N~UQsDcQr#z8zf^=w<45cx=((sd^-A)tt!& z-?^7QZ8UJnBLYRujhX^32Et+Xxr_>*nJvUeGb+W2Jb`Dq4KcK+n3+r1Z}${^3OIT_ zj*Xn&8ntq8=<;-MG;2K7I8%jcdJMGWx`u^ya$q-MSSmL{wN_JhSeSfXzG3{ul%~yx zs=jGXhKDDUmk~ENXI8CaHaokxC!yqS>guZ1cUjTZTxGj1>|tfHVoW}f91tOA*leRvQV$awXDUjFGNH1LPY!P(@ek*h7$;NA0lnjUV-!=L)!^t5?7Iy<|` z9~op0lUD7WP2S})!K+q}Z5T4Gl-qZ6bJ3yY(o8b*!)0rz?5K2X)tGCEiC%A$PHj#W zLS`gfanYG^27(}FXlY&6wBx$%N|KW~%`WiB$m@{Ce51W2O`3Ps&G-r6;wa&8U~)Fm zqHL)*%Hl9fA57t)qOf@Kk9T4ljhi79C_9dr%uHO)X=*Wvq{lHFs#Og}eDlSi8_f&| zN=<-#8}IHt!!ZwMpTpzl`=W{a;Cjl>@jc}LW4)P}_Kvao7l+N>7mOu6K60c;Mqd>R zS`k(F&cdN-6HM6EZn+CI8%cyo9Kary{L?K@tPY>C7HmtSQ)bz&+@fe=Y*n>3;vZUY zGG&p-mRN&J8Ks9Ofi;74(7~ET=yczKd^fN$lQRTA!yGjmH&|L76U&3sIiZ^%fjLy1$ z0W&iq;~}(d#7~F4sC`--HZg6s-L{|D(C+MVaQ0UjbaIn6BfGPjR_gIh&G(!)SEI?v z?(T6>!iuEJA7Vw!4GaxT&BTfu+GR}hX8zHJz>y~lC->4#>v>&P4UIIMr#6MgFkyxZ zP7THehGa)M8w5xZ2CL%3NJ#@PiQId8zK4IC$1spU^apT#8IM(0!`%K2hlUKsi~z(8 zi$~~B;kc=2)Ks&2(=J@ST+r@ErTg9bqc}f*qs0RnksGv&If09oJf;N91jv6WTlywM zQ!4HG2#AQ3d!58cY9sa;lLRJBpm-V^+6>KLi4#=C3zHv6W_l=4$R@=b3lV0;-i4wf zwP6-8Ze_coyQ|6BwA-YebULZuEwpXc-upFB;QDM>*hE69oUaUW#v57^g|pgGqaMLE zsy7ni+ig?3{ck3f)5-t8pQ|A>Ru$gTY(OCcg$QBttNMKD7JUov)y8i3RfQNEBF-PK z|5+l6B$CZaHGU(;hJt^%K|&VPS6Pw+$=kL8%6}u@alPtP))vBti z$CPE3!vI4W=z#PbJr-Fma-xbEA`Zy$?4Kv3?`nS1rb`SyhG~HXct78niI*baJ!o2l8Y2LzP8Q0kJ{-kfJk# zjgsPd&9uYDS#aBvgMrCV;bhjsW8!(VN4c^%GHD2)qS3rO2y|D8ET5SXpruyto?kqs z9kpe%vnz%jFgh~%wj&fF%uulcM>#?VIF5b?H$Nyq9yTi>4oMUiA{=n9K;uX)Ly-fb zrQ}GVftfmhp(%s zZ0PZ$VY1|697v>M8XVHf-rDVvWfP$=^-!5lEK zW{<3JWgYW$Y?D`p13v$~mq7!Ja57}!KR<+`DD3RGFdW1XjLR0WsG8=5%afBg^2}Qp z;FsRs9?xVL^p1P|N7L2yWarHNn0l}$dY-cFmp~UOP0&HkLAGYg;kDJm<8`e+XDJ zlXJ4naII+{!>i7l+}-1!c>%iQ8srlt?rv~ZyaLL6i< zWPOhao(wi*M)sSuAZ9@pCP2`UfkOxoF5cp!TH$}7*%+4@6)_QD)MySC^Wq90iz*OY zXuLRBV1)o63UDy*vjPM?rX~f;l_)t94lDc28L~4h7Hc6G85xogi@=FyXl@;uzD$|A znY_InXnx6%hmE{vf3S@mpy!}t%6nVG!_%3FTM`(v0|D)31_MCL!Ysk+VZ1GZ&HdiR zudrUDx3#>f&i5R1xbmVWq=0eb6TB2e5iD`6{@eKqap#muA@qwjOl+DMh|riRB>epb z&{9bH};yK-`QI~>x(o5@=_ zm}<)|45`tFBlvl`F}CjqH&|@s*x7`W1#^$y@b1~o+0pyl`@EG~HEiz~WmQ#0RH~ke zVNTLJs>b~$mob)%G-$)khlmm`Xi)Swpy~L7o^!w-#pomw^LgL5y_&vx`eAZy!R5QDUS1eykzeDRO*$CFm}$%`)TZw)f1H&)r4HA(AR`PqX73~SGn>ydiUYc;O9ap=%UNB!6lekWfUS%BgU+Kiv)|59F>fX@gP7`R3czj zIQ{(0lTrLVO`j!lXqbFkG-=DL<%~Nps)cOXl6s^olX;0%x#q7n>@hwHX)0*hj%mYH zNzJoXS!Iz~VKnNjviEBA@@h`#o%mlI+OVz|-gQRj<9~_HtoZF8*y3eeep9HN=TRq|8VdVqj!UBr|ED zU=&9%&qyoPaLK4+i(Rcs+T;Qa0xXF%NQlrlkk%A|B%Cx@+FCu%&pYp-k`g0A1R#-; zo3v@1OfbQ!tA6h?v0a)zDLJ<(aR`HV2ammvQQPXDaqaWnxSgjXfgO&%w&o;s9EyI- z4;joILv$W8h|4B3AatDvFU7r|k;LL|)N7%g(y+(*y`F7YRc^0GtJ6oMF=U@fWW||2 z$%djfc79W$?g(U)F(n|&j(+74NP{EH5-FnVUH;?1ab00su@%yA<+;IP^tX^fsB7ezK=uH_LSi`aWF|o z^OjUZmR$}ICks-$nhaH>JAjqKcCNqrW4NXmC zJ02H8lIoh8V6Q(+!BoU! z240L9RcY*M_LDizS~B%kirc;EHxoriM+`Mqis*A@VbO`A8mh2iRIYfK!xA$hu8tTO zW?{oD4HcD=tWOJs`_C3aEVm8?F(r}}A9FQvM3hM2BvKtZI$?))3@pphTex*_c09Lw zw0M=nE>qpZn!C48HF1U#tKsD8S0`@LC+GlgK+Ju7{vNNr{~3AIPjB1XFH^(ubM68@ zzt0S@%=P~8*Dss=T7L1{bDsg3j$619rlv#7hA@BBcxMtnwS)tZRWg2GMgg>DdEZ4+ zLk2Zpu$3no&a=u>A$c1)yBWhrW*KsICVUA8z(fib6iA3dK^hd(9MxY1PBo3ry}{97BnzEg1L|mnX(%~_hyLRp)pd_ zwn^c!mqzX!ny}T&gyga(MtZrLCaWZxd{~&>i13;^u%MfiT^X60`m`xQ$s6GUu_Z_rZEG+iVIx9D zc$`ilGh@y?JNh}XyVbibo!T^Emq_u$PezRvTL6R3>N)lnP$+^xvoE`@J2^ z3*IvHx2A`ve{7F|>m)_}gExnVhprze`#rx-2F9$+Zw4tJfcx}~qYUK-k{8OXz-$FM zOLOmOl_)SOWO%4;;PnZ^10v;3+jI+ZS3L;`ykjW(d zf(;jClwigphEXQU3Is%vLu80zKd`AfK~`w8N)be|NhH{fig8L}<-b1X^*Z?|9#JHJ zt@Ns*rWimT)8FrDgsT^SfpVoFQK<&_pCUK{VGrKNlP>jwENA*c!dc9k0t82~Z@amE}6=d{xvfLw`s0zM0y^m2qYpGtdq4j#SE?n^Ok-N}auZUM}Aw#PoH%4)fA^ zNEh_LJj9F&)6#j0A9*m5qqWE|;JQxo?3h9n)QJ(J0n6PmGJ5A7|y9ZThaMg)EF8O7LzGum^tYFz&Js5l& zwrJ>X%D1gt*lDhvF`HKS@jEtnRwwvJAzl@ZV^U{8#V0wgLog0 zzuq3>1L|b^giP)Mj!Buj6EiR&0fef3x{>-Vl1I>B4pafb3%i0hEI^wh-!8%j=Y`21 zxgzl+5FDx)h>$51$pZ=dH6atm7{soL475UZmu47)gd9Mq&*-p}W*7n>daS3SQw>!@ zAxM%*MB>6tgos>bwVi?-?ed(Devf(`4RCDQ7O$X>+Bdnr!H*-MB#9)FNn%8BC82>v zg@$eVCJ_Rg6C}VGoU=F;HZoXy=JO}0(N5-+qRHW@CZAmzIxgHDuH%Zs9@N#fTOvBx#E>O@XkO5Ts0f z=EXBA#vw4iL)zkL6fiao1bTza-QOlVAp_Ur=m~i}jNeK6j}G(b{+7zt^q5`&r2mKG zAr4XyvJm~U5c8h0^Mlv+^}YJ#rrYOVWru}XhHRPJ1`FYLcc}4bK>L~vI2$uIU!Fg= zOW{?C35hT<#hJN&`u^+uxMsd&CNG)+CIL()43P}=WUaXQB1&3TKZx5Vqfu_pYY zZUdt$TOO2kL=H-c5?6#ku1Jw3bMu-{0L1$4X|Fypd2y7w{;(@V1pwu@M;V7`)5|8$ zpd_CuH~9AL!yB{PoV&F?$9CwFIigNE{C>@(Kp=S9_@e>h@2$8==|vp2jTKC8<<5eZ z>uz|S&p?B`1jz7UN4X5*LiisN4H){-MeAP_^K|%s68DxQMma)JC+oBK9Wvuc@2WUd zHc;?B(5aG~hZdfc;S<4~KbDkW!El%HX}mti9S%B+K91vxW2lD=(1`-B$`l}ODrOkM ziaHS`11w=;WegGtK`~MNXG07N8Q@{uQB3a1g>!N+)@aJf8mW)xVrr_bRI*M_P{c-Zf!LXy)j{CW>yXDP@$YHFb4t$(Q1JgNhH)gToY|LWx1Z zV;JmZhOCwUX(QE^-dl5UxOp^mx+$fQ$ts>6XAHD@u#6qtGT~lz@K>Tcs2kK&GGP7Y zsFKfN!6P%B2MQz!B$M@@kwcCsiKiH|3`!u0PiMG19*x_yR$Ho>am~iMiVOeFd zC$NuGmy;q)OK_u+g_#wE#Gi^LCWKT=A8{eo#YmadB20!j>X3vog2U=Ib(4jM8QC<5 zn2;%!@`a$pZtRVYV#gvSXza;`%nvp@yS%5Z^<7sJ4a%vrWmbMqn_SAX*U?>^G;?jq zc452S;i0{X+=m<6=+Si1h8QxerwVB-s%UeeyZy)DcziyLeY@y*eX2&3Z)FSyukw9z zCWZs*$;W1uJ~&}BFK7(2YRHCcH_n*K5cyMVkE!GdnHc@;y2p2uobs;j-$bH#`#VcY zNRaF~L&!tTLPiuM)lwkTyUv`lXr*Yn#zsG0jr!=>Q!47=u#luS%?uHd`i{=bJ1kH` zHc*K_zA`y+sThEg%bZF=8PI@64DlbU?1Q2NB3zR*fH~esxryl@K5Sg|kUd6ZOsGmt z`nwpYg3?K9OJN!PYSr1v!b8w<9o@Cv0~yb7Z5RV z8_bL>SdoJS2Piqwlv(r?dNA!=F`6XSL2y`zhzXb(JzJ{=s&L(dqmBup#*I{Jr$=TG z-(o*n#$s^n=I-Rdqm9^QiH2}T^74fkNpUE^sbb4Lja=Kfp9h8$&F;%qj6O~ocuw`! zXzJ;ZN4SqT zd1129i@}K!BL*4+K!h3kHayZL5KA0p& zMw4k&j2i}r6h*Gn)gldM&c-G&TF#fV@Lsgm{;m8)a*{fZ!fa=U0k;%<4+9S+mUVEiyN`+-R---L6rHatfm%TM|L8@6SM!LOChGad}r zhK(TnnlBHB4$9$%9{aA&?a<*TcjgF~lpV6ki4)|iI8ao`ty&F2WluNQJl>Cocd40% zncmWg?_dCP-S1RHm*FBx1ip7ZCEjA(ymquXyDoP1jkJn)lD4sA<o|VAbB&&FIJ><+O6^(7fxwpzw!((3DwJks z0&L8|jjVpZ!KvcV=5<)n_Ug+^Yri_FF|>{!wdX2^km%*B-m=|}HF4ptF-9is*2ef( zALi;{#(|P4(!tDW4#vYk(@$@&!FoLd`UEe4iTjxoh)@wWqd*`bmnBj9z_LmY>P7Hz z{4OmQ7+Hg4j*ZDi$NUKnwrvRg`?Ba~0`_yjixII5*o`2jk&-i^5^zyLs-oghL_gk{ ztNEd>S!}@Ot?OvZ4o#DWPu{}>iUV4Khxps*Ze<)4Z1m|794uh~F*5*UAR^HnnXyC_ z5~$)nQ2R^i7a(j&@gqGjG-0M>Vrfy{#5F2lhc_D&5h8FCA>JCdWvk6oSMX@jt7n&! zlFYPuySpWzqKPK#13Yj_J)Yy$JW9LNg|ifHM|6p4;LOcU zlqcShE^OhBC>Sf>>9Kv)@^J zxbWj9Fbh*?MiQRUC9=+O;#%6btFy1U{GFap%tw^-coA#Sm~h}wy0fDLVr#1-M4#Ak zlJJqA;qWLdL+b`anX&+$K6^lABKiZpDyI}S5ae`t>)qY%*`%#y@KLBM7P zhBk`LNRQeJz;H0|Trr)JF$WI}*oNo!sLdCMHm|pqeOg7L`99RM7eT7BSFlGIEd67OoZ7J9D)(~e&XZg zNchBB5HS!}1~UdYL-c(_dl_FX1eW$>_eP2wSuqIRy0a$EF`+TcLjlPkH{r)^FDetU zO~=HvPo3}bV7Z7fH|gH2K!k?S1R(~aj9{v&rFCWJeX!PVqeju8vjYWnFSFz^pF@O@ z5AM$W{cmxDi@_LSMD7M6`{EFvk+3E^H`#>XzX4>VAh?l8XzFi^9=|(w#+&cXYBn(( z)yEMNG)g06QXt|ot)||Mvg1G=6&??ry> za&r%BGY5C>0BNw)X515DlQaS+*yix${zJ2`xhW1K%6WQOCV}{~nJtIriz3S;+4s10 zbd{qK$iwojRtOOprpbgxEdz(#a5*0?XoOC#cnrk4zI}a<^Od|$BewFE4+Lgn#GrQP zFF5l4j&S)1?QYtBojm7HNO;7};vnoqEL>rDka&4jS<`x1xPE_!Zyu6u2RVMs@NAsW zK2F<@aUx{V0os6q9ps1$-sH*~Rq80G=9YEhFC`H35C=;n7!LPk#Hy>0TZRP3dnpr0w(`Ch@t=sT0PIMB_B%_Ay=v6Mk_gBazujIbElz z&-#7;j`QD>q0rOn_2!4&o9y15xW#v`{dC{^v;I7{`YwC!w8E!|^Uwz{lOh@>8|x<8 zZjHwGEUE0O!sdB2wZ`L}uBPR!>R0^z4@F`#ooiN8^M2WNqH|kRUz&`FfdzRi#2uIP zZ(9ruLx~+Sj&@QrGZMs#lbPEcc{Ox%*PET~yBOYVl{Oo8vot-}jsV3lM>R~vLLpR* z_2bQ7p&IqCCO+^cA_ORf5Y!EJOu-rZ#M@*Zj5P3Q)8yY5Vy+c4*~$jS!8>kac{qc{^^I0yz@3w52I?Y2ive z@G>tiD*UP8>Rnv%_`V$N`(^shx{39L)$H!8yFF>!*MAkn-7k)x zzD%0i>R%H?_j9#6q-{~ww_9r`H07nYq9B%tg)E39{8&*D{B7onb+JTI82#F4mo$5{ z$smf*MZcB5s@}01?Sb!hFKj%XurBeLTjl4}zdgXS+hqCO-g%iO`ARQV-nOx=X=G=w zb>M5?JUhYi#7J#a^Q>*`9Gf{k)X!b8nGCu%x!Qc&yYt}L>z6Is$(@y-M?pueTGdxZRYVnams+_@v^3h8l_)mGwzG^Y zlPN~1ZM1ENZe~;MXwI;)=8k0+(wfh3S0HrVwu4Aw4;q=%y*Z(ad6ZJYG@!y84$N?X z24=3Z%}TLYnFVJ3oT77j&oR!{+I%;=+g(}hlvXTd#7wwTlP+p$3AeU1lBVL*)?dj! ze0t&DerNfV8Jma8e~XDBiwtZZ9{Yno|Dn=xC=w6uKR1`nePQ(H0nGk$spdT1;l0yB zC#YXis|TR$=r(ijmG$=NB<_-ys7=Xh?wYtFlt9!)U>Wv6%mT`XBq)M}3P`dPnIQ_0 z4-hP zoPjtA%nHarvJ0u+urhKEEQJPzC;+5KQi5tmN)19M2O%~F__-VlxBD!;(`m(*tC{&e z%Cu}XD*K6~GZ5g!l%!OtYWd%jR)QkYm2D4=MeDQTdjp{9_aqNYdH(EqxV z{yeougqt=uNJ%(|i6aWC5+W+XqOd9u5)>_pRkGX>kL+&B5A_l!0|v5J0;W$#v*sZ- zbp4+<`SsiDZ`sIcY)dEKj{U9HW_D#esMAl4(IfOXD`e^T@@J;jXXOlNW4Sg-HA+7k zq<)?*wG%h}3Ly9A!a2ARl^&=q?`CdpQ{!OshXd%~^J&=u-T}UvE3X2L6Nu{UbzTJx z4*8w>?zudP7NBFk5RBLo(k)3F)FTUJkvzB>=5^__F%iaB2@NQ7q5-|)A{;=x;RBSY z2HB3dsTqQ&LO~EU8taOVJ$ITDuNG?W&I_-UGk1V_^K;tv&a6whuppY3O`c|9dn$nK zW;4>Ayh$a}DS1oHNhL9X4TM-(a7?yca>ep$`v;PLv|*Ilv-(ei*{SkLCuB<`im4>7 zreEHVH&lDQo2T-39b>F&$~9E{B#k7FQX!*9MkI!^^ASJy?(QT+Zi8XC7zSkP0fDgw zF&ZOSJ@Gp_nx0LDs-KZQuO#{(LVw8p9_|*d-G5*N6JfkO zhnhdwpLme-=?q5b8uGV$b)9ZMJ!KYAB?pVjP(CA`dh{*JplKara)MAA!wsRqB_pJ7 zLA%VaXX)9@alXl&N5-McJ60*;Q%ovY6Fj2~JQ@quMem2iKdJ zzz#v!dO?r|Vj>!l4oH3^%gFOeY;%5d>db>*>djY{MR=? zC4yZ&qc>6j-HKhkM~X2@F(bLsz|hF(_jN;Nv#UJE4yo~Ac5fjEy9~Y3M$1-76+K^z z@@}hbRi6jQ)%;x=|KaSPCuI1(o7_4^n8E0c0jcWX_sv2OLoz?s6Cu~KaGSyopqtlz zCB{P>5D5pGHrvseagUKvi=Lxv_KbP?9cV*=bu~Xl)!t+E@JhzNBE9MpY)$T|ag?V- zCe0+_6J|T~jjbg&EiGGRu#UWW%AC2JXd4`zTqoz}Wu^{i zcl|H(N%1{To&C3w$f$#uB`F7>4FQZpj*RT?&TfOd`OZP$F^jX4|A8+hWvAF!``8q#iM8oOd>nykOee&1lkS&qj_7Rk&2lKEnMI<3kXVr)` zRinK37<_@`KEvd8r3}GOcZGa!swK`egZc(Tdd4Ci?c0QnelicZ>-v%qD|H!BG-^z5DpXxk3^YVJ6ot37a zQ<6d-H69fq4k07iK957HeG_KgT9{0mB|cO5(1QO+ZvHPP-4aL4`%{_F9uDFH0Pr7w z;&&+dET~^i=B?vngsU~DnQqtc-bnI6`&$@pm^vMrGD*#F@3PbxWgS?)v`$v z95qv@nFNsfPf7i0p%Lctc^nyi9*@*$ns2@{+?zoly;Hw@Qq(HBDJ+AsF1-nRy||cC zw&v+4*UJwNM{2ru`iC+iJu<%di{unZz zJM~Ua+|@Q_Oui>KoH!rD|1La^WF1F%kD21b#wo$x1A{Xf5OE@-Olb`R^|;sK{8@Z< zr2dRzCNTX_Pk>m8T9p+UAgBl=qN<3YiGm_1A}A_qB%xg}U<@ljlnCYsVFXn)B~eU7 zNf5-;#7R_5MiRLpOjSV;v^11ifYwDZQ85z4s;elFfynAniYTBd0t&T^1A-KSlt6(< zi;#+v(aRl4@3hA$Q8;A>aBwPY!A-0h%*iUESjx9qI_=7XOzpFX?zAgSqnYpe$E_xs0oXjK0j4!>nnxyq=$k9JnJzn_X z!ELgsqhyuhVw9ySs;a8Dq>|<|FcF9%z&5z^i0n5#492KqLn*;r zmH{!?Z>sH)Pp{Pi+Ouh(t3Q8uJ06A|f#sn})z_f!_cd?frL& zXQ}9+!?Qf( z^)Or9j4iLWNK$ z1y+@5RYjH{q#55GM>E}Z4Xmg{w1HJg6G_OAHoOG z;MDZHC$*6e&PaUU&&_fKcOxn}$qvn)Ada0p+$xnSe9X_j`*(95rs6#I?(};7?g<<@ zFy#MYLJS||o`Y71>(^%I*_^vKYRQ8PJSM5N$?TORJrkoZbMa5P9e&PO?CG5^Mytxp zM``)+PvIvZ1O*FE%6-XoO>-LBlr~nC=}s3n3YqF?;Hbib$pnK(j=R0vHB7M*B^3!9 z4350kz4-rC?9MuaW4pP?rd@5bgR}2B9rm)*k~{Oag=ombQcN=MEw!T|QzA1&krO)g z$Y_jIYX*%r;uU+D4fy$u&6w8OwpS2@?FbwqA;F0Xq*{bUsFuVnaGwn}PcJ9P(tUbq zZ3ja8EqZ7h#=B#XhT4|!@jc&sb8!@o&;pAE0Ir+ zcTqgJH64ZO8x6i*jL{yOvFe7DCg)(j2{@95NEphr&;mmU5>XP$%4$%_kWDbCP@@tV z3Q~j}$4gqbnpF&A*0HSyZbMLT8{E!Y7l!8`?*TIc2T-`BQ_nosJp>K2TDO9x<%tfB zF;PIs(Ml8`kxe8b%WbmTJSr!XhY99!>2Ai`b1{xh+qMpE8GQYB(TsnvJ1QwEc{wJ| zNY*%3>mc^-sP5-XpPK@w5@1XYOM1|3%nJvTyDX&3L)nAp936X)B$JuWm!pT1hn%xx z=ZqcSP6-?|eNFe>Ii(RbcmWUF=l>tYRecZ4^h5C9M3?b)DVa=@F>WftG)x$Cd-3Ch z&_vC6#q{0L$~N~P5^u!)`05&~En28y1&sS6sAP6}3pilmG($woC1E=blZ#}?+Eubt zssIQnUJr@e=08RkOqud$nbjZ?fM_VCDJV;-btaacIPkX7(K?d`=r{*sM9NbNHen1J zDoBPKB;$?KbllyP{1BCcK*CH8N{5Fe%XIJO=8g#=6QU;L7b;VXpc@WQGr(b#JPlsq zcU;d#?@T5UR@-X%r{_gY-bAVM?4+(DcvsifwChdiUU3U3BgYn!V6vZYE85|B_iL6R)eG=Wi5K`3fLGE^EtMBF{0A06k6s%LC7 zrVcIf@EYJV_mFHR1I1NqR}nG zTc^!C7266?1P7pqf^@*;Fo=eZ<`EFrI3$Ek7{M8VhJ%_S@N(N0?i-6q_R24$T2PXN zl1zls`6e4S|9)P!)>cOJofQN_H6kIUwF62t(*iM7gq{cSVHhXgkb|LysQ%{&nj}R1 zN$%AXu=0PfsXMx~N}gyW7)QIJaKL|RZu4xMI~ z0wx>(e9mD6j&t?_klc;D-Y4#VYWfKA)_gu@F>`WrG-UI0Kbk~0Ke0Z>3>7v=eW@f! zeQc6Mh98Oh9p3?$-4YJxFD0tgJGvatlXC{B`=^)W-f4@^ImRB2=AAe+s{$vXw1Iod zf+1_XVHHc3u_W`m$~U^}w@a;NR%vTm>T&(rIy{(~7G?OKM|Q6oDr#!pf=*2NqLKe$2rgRb@fS= zGiJN9NY%lUJ4QUZBWdV#6h023I~o-FdoM1$f#D=^<#5w!BM=V?Y0nKfj=Z`}~taw%F%(J3$txeT;T*MI&+yM#*n5%HRHa}W=HGY>@>n?0&EE9cR6T8hJ+k}!c=GjAXKDs z0)!|LqJT`4$te<)DGCE5GF4gxX#t@Ygsh53Ap(&K43RP^T1OzH8c?7T5U7eshakww z42njaoQ#lZ5Tz3{0BExXtb-zeAQK^SRLKUYq-hn%DFLJmktit)lv5=lL7-Yd>C;ZG zkPb^qP;r>kLrNJTW>Zy8ModK|IVMUKR8R#71tXFe^w&P01cVy2D{Yc=Fmvj)p~+f4 z?QQ)^jUyi~r{UNboZ<4{SWvi=R}9(`+oRQDE36e@!*O|Ee^&OPFxI%xfvoin(8Nr zRaxHo-DyQV>rKu#l(3tQMtVPuWy5qPl9b+RQ=ARwc?6av+H(uw{57eAjV5UeJ*4#% z`dc>o>GcTGO~P$1rRo-}U0U>ljz-?Ql^{?MHB3fk@9g+5(SAvSg$68cY!H`#$cWaa z!J#9|^T5KxyN>4ra3hq7@gFovyUS{_)wa~%;Jg|$rL5L&D-bvjv9v^0 zuF(^F`TYkGxC=?X_k+N&%ri4?1bYf(mq^Br%%(;}(Dx2aS{)71lD2bd8YKlEIz$kD ztt25x%tTD{7uY*A11ME^>9n>_yhav{UiXynNANf~rS-?suAA?&LvGVkQ5q67k~qaN>j-p z=6tZB81}5K{+CLWrC$5CI(rAVI&+7aTL5nq2+?Z z2p%FJFc4FjXHc|g0I=p9YD2oix^|SUIe`>{$Z`cq0-zN$3Xm2+iUE;RCCN;MC<+nD z43VOmL1NYw3cxnGkd*;e3Zzj4EIdf-3R+dbg%J>8sD413%POZ^Qi??wqhNmj*MEq< zB`;~6CAmKWmFFTITPCT)eHOP(SvE9J+-T8NIUL=eYooGg+ZN%;mTi`t-)s+L%$_76 z-LF!jQcGcMMDBJvJzH%S$AH}8LLL}NB53G#bR^L**|0gC+CM4iqI-|he?Pu*Le=X7PGIk~q?U=EF7Psit>-6zB5hR5vMIOdBv=>!ko03e21 zbp86zEAK_K7Dg<#KP)|;r^cSOCdxTg`5Up>7Iz=Kb77J6*3>G9v|$ng1UARVC^tb7 z*kX$?2r%U7tcG|M<{mg5QLu+eBXwk4zuLNvW&pG%1}yFW=1(ORlEgTTkRi7k7?jkT_=%5ovYjTj zeBZIK?l%~k28KX*AQ?sE2J|HfJ@Y=@4HZvrE3u+o(oK@6WzR^&Z;$n4!2=PdOn@4W zYP1N9M3NqRm(0;TzI~r#G4St;jwa=jMJ=in2@=gg5_BYo&)#w*-E z2f^tN@F?`9&YmcCJl6R)YT`b6XDNq5{MnIg2g3a-bVr>WI2?% zhNC-v)gHa1F?mA&n(A3LS=avyt?kieatG-Sx`_T#~(miiL|2cuT!zBP1`Bhxy*;<+_X zuidwXi0@0BGIoEHMhy{KKOnDy+jK{k-AB_Ix+IS*awcEpn`Rl1FYv(rXc+qet11a( z3ZNfH;+-SPbz*S7pa!;HT~7=}kP$$W?? z%NWP{a6y#$x<4e|XzPuH^m1WHwp(h+T9`-4Dq$Hg%1Wk4!?9YUP#3$O@YPjS^xx~M ztMpsG{pq}K6SzJCeQRBCGQ-YU@V-X`mLyNg%l+47Xpzt%K=gbe^vAsqt66D2(w0vI zA)y-`Y#VQtUmuU8S} z8t3hvM>3(vxXO+WTx5h1%oD9)qW{1(} zrlAq&o9c#=L{snga)X{^G#t+<*6!K zNlO}n$x0l*jG*+R>6+CmaY!dFPZI4#jAU^V$U;#>L$>c3=ZrcC85LC!lz%cL;LHpH zHVNkjvZBEQyN?GeVADOZFec(>56dgsR+s{8h>aKFGAb^9%f<}MFf%obZaHXo~o7_ zE4!|dobdehyghn-bUS(rO@>-=G?lKrM;7qgIO6aIUyum6%Gi#IJb3oDrP5p zu&!noQ#)FkHBjFdDb%*3LV-Ys2$nL-ajMmmIJUa-w{+QG?He0^tCD^vq40?}w$O-D zFqKJQxU{ys~Nks$|uW8J@<$GQ& zF{{Ndt6LVvTCG`zQ;BVow>WfsjmV8h>cSS=64dIj{nSYQZ@UES=$JePUDzF+9u8t| z$tzv!;fz-*!^;`YQ>fjc>eG0y0sbXcB?d+TA*6R_=~x+!yn0{>+`tUR>Kh47-4aP8 zIy_Er^iSEm#|f9srb{0X@#4LNQnVCE!rS*nqEb9uS>jVAz~7so}$}S<>S)(R1L^V-phaZ!8fcmSpVa;lan- z%{39jqD(5-l~&!e^y{4GO+58_`D3l&TiKlJoLz3!wK^D1?31Di22v17!XOBUj4Rs` ze6UFG!dR1O7<>|F!5+kFDG-!w|11EKj5cAe<+p2Ocu+Nr;B3v5;{CU& z&8>F{w|^TQmUA(dY`->TcwF%7qz8N%)Cdo&al22vBT}~XrFfe5RerklR%_A7bK{%S zR?;SWR7;tD-Bj|~sh>A#JAAh}lO0dDbJi7xrnjrqo>_Ny(B^Y&r(-qK^_e%xtn`%o zce}{k>RfnA6)_=^NLwHu-a;p%QiMSiGVx##56tUiAtj+w=UD(_6xN`3e3R!_PwBzK zWIUb{W$yXD1J|40uiYQV9cB(2*fC8TIMP6$3Pbl28=5DoHgZoe)2)(og_fiksKt^h z%T|R{maRhFn>stDgX){P9Ga7ISsi7zNS4B>X%kV8cb0$K{usGv;ZDzHTRXWhm}r}) zG=v?-eI=D`;j?Emf`4Laz~tAREsv(<%eklGBeBO$4KbS5x>kBdaM-#$2cnD>D0$iq zFp2Jre!?A+5O;*w#6n3LYskhh(b3V}LESnXC-DA8Jg@Sh>WnI?kq|;hf$ppJ!`{@@ zdZ`Yr0{8^pG)QrjxER8jPp3+fMF%uGSvL-3jL?GHx0b9uBm z73a)aD5|3@mW#+Esjsi>J!i7w@R6!>J9^5@!#SA7c@wIBgI_AQyOD(h@|+DJHLGNe zOtH0FvOJXQ3Ixngj(-){yiA$E;@~eq(pi`R6qW8|fc?6TyIByr{M;Q)+b;(MIuQMg zlF}T>G%&-_CB?O|_85HA4G5mGAg@G9(aDC^TPmq)@XDF1+|fCjB_UBKH>z-*9_c3{ zKT+^GCz54>&D|Ou)q|Jv_8v))Xooe4F!}oKgO-dV7?TSnP%ywxbEOA^-sU9v{I?$n zb4S5LyOMVv^%IYBh;sEsYXn$_aNb3Up{so5n|WKQcPmn=oeGNP5MP;{`A#gy>ZFr}KwbW+Qc9x2Qo z=BGn>lQLBfMpVd^El)`)-m14wW!m0eoL*(n{O>aQSS3rAsJ^ePvRmqEp5E}}-B!p} zDY&}TYQf{vhJ(^#q))E}IwZG4xoQ-hzR?}Ji*nT@TzI76?(`WM1k5Uz0nJX*L;``R z8;nm7)1!4y4zpWn!O^o#hu7ipyvZE@W+D&Pollg69Ft}wAov)6xQd<+@I6h_B=vmQ za`U!xY0K9a7Z&m#KD$Um3n2{~nQ=QgTnf0x2ErtbrxUNXCB}0q)`BFB+>(D_mDTx^ zlj46lHE*P|wZpzyE-^gm$#wSKGagB{a~Vij+Z@@_)}hHJ{S*nDyb$*llc0ahu>bt$M4l8PyY28~%QB}Z5+x#uic zX427%oaO{xr4?ipf`^mzK8@3app;L3$4iQgREce&H$rsjp$q%I-|brYC1iaFJb}@9 z{rHjzBu*g56|-tO`w z53%5Qj3Y8{)(2Dn{Q^X{lbjZq69Stx+ir=e@L@0NNJ7&lR@rTWhp{VMGKM9PjEIv{ox!JmY<)YX^b+T zg1WjehUrglPxN2H+wg3O-8Xhe^IKz6CWcZTX3QTn%T~{!*PcC=ErQD*Kaxx*-|K90 zHi2B&B|Q%C&9wbgxt1nPipE0!1V}NKceY#Tejko(aG&02Y}A{{#j%lse@VfcEsI2i zM#=_Rf-L^{6a;@qEF{ms-uG2Vr(fxY3_b&QCKEQstPDBr7~*E8i<%8baUu+H*K>Xh7X_D4WH>S#2_54 zf>cRup)Cs{lTkf~sez(4VF81H4h9UBgqbkFQWcg{Pqft4qBN`bm`t+JWfCQ9mO#-W z3hAk-`@TNm>NhD%;yy8c2+>H+f!MG+8G&loeAJaxcq z!6GUqVNxTxG6IC45u^ng0ijwzXi*QFm0}1C3{LTp)_r#zloGF%$*>Rzcai4wS3AZW2w=5cCuSaepT-3U(R12*p>AnDu6KB+gxup4KIcY^)vW=)U3gF(E5 z(0dg#zvDAAD9kd;0}mlr?v4S5iR_!ESa?s4hs@9T;gs2;eHb%~$e6D?JKt$+i_-BsFNno3xM6VOLJyX|C4FBZfzgw38>cvE4bC9qFpP%Y zMI}k>B1g6OuEo%Gau-Eel4it3Y0PwvNa!5YHpqdXjmu+3ERu$lc{~{z7atmJLtYqM z7X|^Tnl@2nbw?HpW8;+2&|&j*kUY8bo$D9k!?LQfofvg?BRR?FlT=S8jgwQ)t^(*39*_?-qA-!56pJA!pi-Qa$P*<4GYqPnhJ}SOXWH^P zARLIOb>+z?$}t`~^mODFhUiXx>4cKSi7{9^y}A4^Cc&W$>b=etVJV@ZrO;?W_=3QY z@L6KjTVj@_WQgly^mggtUM_Ey;M|{8fg}m_TJW% zzn#Sq4D`!0i>X-Z^TH<(l0>SZ$`1r!o~&}5MmP!cd1 z-~+JHbB()*5D!(NQy9i6AN6n$lT!#!N);7I6AR%$ClefgJwdeleN*R*8^3ye zAKla235;S-t7r4niE1Zvle%TW^6RKRc*A=w{b%PAQ|{zyYLA_XCO-m{e{&t;q`*Rv z6G#vW6h$(_4~noVq>QR+sgW|)LIyBILn*ORqswTzbwgGku)x3y1QECRJJ~$u+{>v_ ziCbt-7oNfAZu0rHrkRFH!l8u%uwV)bDqNWp8Ct+#V4tCuTc#5VmN&+^na*qD<&@#O zAHLn5&PJU5^96t4jF?HZvF5%DGy`|Bj96FHIl@ji$)lN4wo62a?bdgA#)wpPe zJ1l7*pl8?M`%iO+P6C6dr?lAUS9p<@L8^%;m}$kT#A0=+Qto?hme8W7-hRFNwBW(n zmQnh3(a9x$n^w+ds;Z+V6_izAeza7L5UXrj7>#vcs-mu8u}C&2xL=6ahaiKX_>K=C zhh%R|EY1qO$AKPd@6K~%C+fR4O7R>S8B9I({!6HnqBSsltvv1}Vz7=6X6>0sXrC=D z{DUFah$4uJse)pvX(&pGASkGcA}ER>h$4iTiim&8ZvtdMJ z07)kZh8t~bRY-+tYSF1gii(s%fl3Asg)j*xXykh2(N$ZdZ&ZB=Sq%$H zIyo8?NXo^fcGj~BiIxyKvPaj(o-~7fb=O^W|D)!Nhm&fddW1M`sL<;Eu@b*IPl%nHrc-YVK)YRZ=>Ll&)q) z6y{5P&gw5zcU;{<<6?@Z*G=+cR4~btO6BoOL6|-6W8tFnKEN<4qrG8&-i%$eFAqPd&`)d;7mEl0l@Mc2@lG= zpIZARQaeRV6=0#|PF532WeFH#ZE=Gduf4c7dMbLgFgnVWZHZ*nGbrdjV*~B<1M!{a z!2r99E&Dt6ogxUNSu-HfYL%kxi9r!a8*p&5!1EpB@{i^mG$J9g`Sf>sp}X;Ea%q@a zay=P7KR*PFAC;ni50?qDPh;lU9V+7|aA}N)hXW(we{#7nr;qpyb`Tq5#C-@Ffl-d2 zx#b!_e(>-(h0YY;7$p27A`dA+;RC#Bt*yZL+x&i0yuN5tX^!J>8FevE%~ts$(&G}_ zad$ARH~qdxsWNi5t(SCRAGqY3D4BU2-)rgd=8@z0@#XlMwrWXpBS+CW979Z=AF6HtupZy zLyY!409pCS;nvLL5h_qWY~aIAVG@R<(HTUMl zNPWp6-~bfCYDh@8R$-;v2qIuesxj2EOw~l!7}|=d3E(GZ{F8>r`hM&?M%-Luxy?&g zp%Mfl1F`!HjLYS&)x zv8I;chq7?$d6Sspd^~(e^O3(4DGVR92YC4R?-hv5GKFHz!W4K5t=0}%RP<92i5O6b zh?+%8@u;0`r2r7bPY8zmq>*5%6ufGL?KB8?ht@!ODl z-n@%#y;Irpd!JDDe1On$7npJIBICdf+vdP~Q)ooC;y^Uj}5SeqEJq{HEI5ZMcSuEn4gv z5kAFiZ02VxTbfA*BuPCr<;^M|&CSDiaurQY(Rd>8ZlQ@pw$#g5!xr17E#0}m_7OvW zo(H(-b4#;Mw+kK3_e^YMuk5Bu|Un)Qwa9UO$+h z(BzUx;oanNes>JI?=1^uve{`P?>2l#lhLT`KHhAt5i1M9zANu`0)5|hgVdBcxQj*1 zHm2@uLJ~<42r91r20aG{Y|x$Ai&p&(o(SkdLydD3XiU&)7f0qgKK|b;lt$-PjXxbz znI!Cx{Kymdc>Hx$RaRA1RaNaivDEjG>JNGHA2{tgW^?E#sDAeU5g)aEk~Aa^h_4I$ z#B4{!I*OveL|4qH`AwYMJNF##^H*A@SuN#=Z><=-U9ZXPke_F%l*NAsMpUR;2W5^BxoZXQur( zE3o`V9|0YOdn@KD2#N_8xO~SgxvTrmh;aV{vsXzCV#TXcT2+dBjUNbsr19myo8qdi z95QbxgI?8f530Gz8ohIu(|zy2^Y#g__`Y2mKfOJO^X*lHZj}#_Q2pv6c;x6lTxl%m zYmRn|?=gvvYMew41Cd>Tn|~Mnm2;u|qA=P2LoBQBRxawr#Ix>Craq4+u_xqUdo~X+ zkO86sR2hW|Mv)@I(%Ax*2>0LXct@^27vXj(sWit`d{TIrot?;ybFx(ZqwGzQ;A^jt zKHwg0dA)oKzc zB}F7CO0++_Pwme+jt}lej;F&ZcCnUe45LbPP|&nD2-6%|mYR_uvqWV54mMn25V6$k zTjBkK`O|U9AGkkI$l-1RJc@=vfYj637;YQTvcq$M1Kx z&s54hl_IAqI8FJPF$D+#autp04v`rI(c-si$cP#?pUeZj#z5a!bKi7lbe5)!inSP8 z%@Og3;T;U-Y^f3)g-Ao-n;0{_mbEf`Nh=K=Y>b<*p8j0TWRfoy^6%UHwnrnV{D{Gk z*`Udk&|xy!T8c@PYNbfQ3@DgMLXx{GvTZPN15{#FLqy-7-es2(=a4cRpsBFT9naL% z-0aN9o(n4hLfchURf=L;FsX3CRb)x-hm&_!tsA|WZjt-KbBKh=w>q~BeixkkQ@feX z(fM}l(_Uq_7?|}ZszQvu(H#vFxx-h@Ny;k9?+h^PQzE34oe`tR?DL#o)F@Ey1R_!Q zOSxR}%Mr0xOp^@!xwPC%G(+dhBW|~tdGqG@o<6w%N&DpqBqW&%b4gLH8CV56s1_!u z$(0I)83_U(MJRa49Wg^`WQI&PJ=3a9keer|TOl63vXg?XiDj>mUo03@B8qHi?9rBS z+p^r}EbCTRbd&Xe7SN2V%~BpkflDVSh>}hjWSTrCrBv89d9^yWRM}o(gu{narr5Tt zghN+3_~i-q4+tMm*ULU7=FUuXF_)2DPC|}cl!+LVDGG^`@qOo@Hf;1REg(c7>jCu1 zg8@M5Ra}7`NbVhwkq8@N?A@(s@x`PGC;}8z z^R5CDL{-%@l_v*RNR!nckv5V|sYMkM(#p0f+d2#!K0hdu5jQ$Iwjb1T?M&QRi{Vf` z`E)Ws*7+Eil1dP!6B3=roLmkCA$KZ3MHIzIP*bW3q!vIEgQyV)nbgrI`cfTDt1T0< zaC7LbYZlfkQ+IZ)8X<%461f^aE*+F|J(xZ(KcFDc@E(Z*NoZzbUN?tuo#PPsfYBHV z^E|?;LZO1f9~^>pLaJ1g$+H723c#2ZoX^;ACcO;ah=ByYE1jI5pgv51{mN}m-HW7`Kf%wmg-$=(<| zK^06NX}tS*ZN*y?6s_lsh|;UpEteQJ z(WTV|9b;~-HJd{w+g2GRY80lXHf%C1HnH1QD8$IHQrin1YKo$e#<|RrrI0#>gEAHw zvofVi9z$r>YE|1qHO?3yw%RtuOo-(`z{Fuvk4Xx_7NwLu{nV_g!BniRL>Ux|8%af0 zwNR*|YL?p6ggEe|J=95MkWzwT*K3M1YG^cNzbz2K&~2ia(uzRB8Xq1KjM8BV3o1!m z5}HkU6cG$D-K^iGZj$rAjx7CDLlyiv_Mi zk(gI0tgxI>Wh4^cKqi!0P-#P)ISRN!jR36)k|iRPG^%8VO1UAEkbz38k_kv9F(9-F zKvDo?C}f60}LeuFntyAf~*SQ41-yk|s6UsOwm(8@^739*mDP%xzV6vlL2|M4~!?rOlOXL|Wzx zoW&9K!PF}jDBif%g1=X~)>ge~m|U&Nh9YV$78#XHX622r%pF!+X01lrmfKI9ST7#X z@b0-($>`4Rm24==#IO}+P*rl6ky!?}0ydVksI=BH&{)+*t!5K4xr$ty8rY)LHmh}x zl(vQ~Qy8w5#?;iwF0fi=%}S$+S6dM(;o9q_Emk5W8mf#Gsgf>Xabu{K&m70B9vWk9 z1<|cTF0z+u#@E|0{v@}$Z;aJHA0*VTjlt8w^@ab@5GP!|ORhrOQ zu%c3^$&hJoO*9kwk^}=7gOcy7e`%+5x+e6nLZi#x+;LH9y1lozyoh+m*!CUfX9(q{C9GK|CeFW!gpa#2;zJiI z#KT9=macuZ9rwh{#Po{60o)zv<0Vj29mYO4bY@_86+(gM|3}CAl^!W3>Z+^=GOVI1 zs;la{9@ihNB^cu~Gcz=*s;d+ApL$A^qLm~ zl0^&-C*PXov?_0XmI2}i1FS|tnd$}h0{IV-gXi=!G#lxOt}%7!U7Di>u`Ei3YZUSA z=9PwItV9-~n#x%fsjIp|83>Xx)Zr_uMA58Bd34d+#-!eE=OR2#CzbS8HxYtZ1063B zw;rQ&c3|oA8sSjbGYz2O=MJZ_mk&L$Z%gPK}cjoR(QMH!1DD#);AUUxA>U zjtz`+w-P~@!O3o6B-It9gc@m8sF=i@{IQas6=hmqx7VTDPP0bC);mBulc2_v4_@B?h{C(i4xSyukc`bSQA80{F)cL{Qz{fh z4Iok#MHJIbG=z?!R1Afr3J@e9uuxJ8Ndq|izcF|6T=IMEKQugIhpj`@FTUJ-`9ldj zg2@Py43bR<>AdA}So(D5A{&~yIAr(vCnnWvv4lD}H)`Yh@utj5Rx1%#4(5>}evaCc z$Ww&j$x{g=B6K@V=k|V%?czbgQB$zw9TfR}b(2{P7}XiJsaaOoXBNyFw(2E34iC^m zsZ^CzsZA{Let0i?~G9)CH6%tZHs)oMoLjzGo0SkzTs}s?I5ugGkMR3^w`Mp16 z^MSP_NwOj~DJNJFhDi0_&ho!CW=}9Ro_`gPMnz#ChXnx2Nr19TjBTeU-cyIjow7N!{E|u*PefMBQ2*9|Wd}KEA9Bxg&9t z!@Gc89p4wTT{pe!Zqf6gQWH~E4NHAmhenMOq&-<;txuhJtkkwMmm4EO4@iWA3NUO* zrrQuUB-?G|K|zw8>@KHJx?`7|I*(9Z@ai2yLm|fDAP$yD@f8(6opbyG>b}5g#$vZ2vUJUAxZ&7B_&0G ztWiWjMkucn?s4d2(i!EoFwyxK<$0T`UPly#eN5{f7i{}_`{L7hIW}dlpHaJlyNMer zP1CzMEY1@GZ)r@gSGk;ZF{)kHbJ^PJx+_eyRJfAhxwFaGZgy*J&k1}SH97!OMMy9r zu>{doL_#!)K|;`lP>O{B6e7@5NFhL!AQU1}ptPz`i%SrwPyry6lz~)~r6SUlAwbZp zLKL7-h*E%2LqSDQQV>v3QEJt&s#UgD&dghMb2TRK4G{yQ2vb({0RRxi2{M$`R6raD zaoFe_lvL-j%verZ%q3)*0MspHGazkZ)}wY76Cts%$~1bvL!)V>wX&yI*qjIW%IW$krM?_VU4hoJLQc0tc)0U=> zQwAN+GeO=w&S#usaMvhAfCkWyFtxXZ_zUjIr zGh}d|ZW~uWJZBj5PLU9DaGp(HH-R-x_%&>#H%u8;tfowfhYY(uo6NB=weSz?5d8j# zehVX@E_ovW+4V61!$B2fHI-9LQq9Gj%+%{qm5aY+iV64oVtvX=ocRw(5RM8_#d6@Q zX*3S%C0QRJ==}7F%QZ4$(K)z7;5qcwB$^Uv_sNn;&7sPze3QegBO_EQFpVU_$yM9ak*VZp$CHr2$^|PQNV;CKnF_2LzrSA$udl6E1EhWlAyg`WOX_$XfQXtX|O-R)a;#p znPOaFj_KjtJx_vrcR8KhC(MRKcUoz(A|)kZ*<>ArNM+gvgeV^f)c5?_pJ|6bU%EZ? zYV=m{SXSl!M3JJmgFHpdxHRRwm~lCN*zmr!p;M{p>UD7UFzZsD6?o<9eRvwNaGa=S zR2n!?PXO74m7VUP2G1RJvN{k{EKwag`*I}EuZMdQh#*P|fD%MWUOSy;!$2`8D{Ced zIy|_TKnSoZNP74_wE_m>o%L!UDY%8K=%#s%8AKE`xiE5U-FUKl+gdq2&I#|!OGXs1 z%IVuD7mTds__~$7%~tQ1lbJ-$R%az%rR%KGoF?3*D8o-pl!)EwO}X6F%d^h4n%8~! z&mC!Y);_ASb$w2=tB)l4-aT_}wgq7QsVb`iC?A!rpd4~Daul?*sX&JkW{a*`R@sajS^2nx+l|{{7uHMH?Y;veaVM+ zgULxJn<&tmJ=oUYWZk3tk`RBqaBCiOsPm~2@_r@GLuPpm!I;d5c&w{VVRE^_zWVkt0r{<=bQ}vTeZR6`i5zY=jbyqc|irkd5P{` z3(iZi#O^ul24cpi&Y6ZoP`rP5NDbl}u<-+!BYy+1U>9VZbGihZnvcDxi3-%D_QF-24@UV#D%|U4hHXilA6@%UJ~wSN!F(|S-XTzI>)-}QHxlWGH9!v z2{hG7r*o94M4@ipYF$~9@2;ms@~IUt(`2YcqKK*GQCCO^+02SUi6EYZfe}Ga#S=`N zpvZ!%Qi5xpi89p{TnTKED5?wuL==J@d728OSMeBMX;@Z>vr-gU-EhTKp4mvTMS#H> zcIJBc_3TlPwpUtL#vJ$IY2#f={jVliD5DXcA&pbe23)v~mpG@jzS?fQ^})>jB?LX6 zq-1nu)$wJ?w20l&rmKT4%(hWDPVSVo`&c$MI>3*Z!1ieFKEEAKW{7T|p!hzi{YmEB zXqp~|AIR|dIPRRp&p*{b;sP`qLBYInI!~P(cY{(XI^s)Xkm~6DFyr&73@&vM`;iGo z%Rjsp8Z3oFuDhA~8RNB(bUO!Qz?OA3X-nSq9} zDNKp@fm2(=Jue{K&f2OMcR7L4)6(B^QgBSMQHPkp?h%Fwq|(T=TWDyRKRS11qD>nQ zBQNIV7f_Xw2bis-mKZItreF<;o(kP&g!$RWg{+a*jCfR)R~X zE}|ya!BB`)y9WMYg*Y0MBO7kz3>Aj^#=u}YBam!wha#ur`rv+S{mij`(w9Q9Dzgm9 zbq!XoCM>b`afoP>=2TUXK6-kqhRTYE)#fr_WMSepK0D(>&G_%~ugi@z(UlkCa<1cI zC60n~h;u&jLEa3&H#mC(&#zGEK5Pi4NKVkoncA1a#Vq+BH?&{0& zbxlv@A}J^3C5aREo^FY&bbhk5eMgc*;(Q;WJd@E;{HBdWiOpTkq_5HM_g~uC6(Kb* z^Vu!6>WvaV(DzLp6(3;WFixYllau7+l3^yyAHT*bOX#a@+n#!`O(yfc|XHakLi9|&Lkr6<|L{OjjyOJrwgoX1{%?Rg7 B&~yL* literal 38582 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

h14F#Zc@to!Jj>?{8MzVa)Zgsc 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 Modify Keyboard Shortcuts...). } \examples{ +# simple test +a <- "This is a test" +b <- "TEST" +a \%like\% b +#> TRUE +b \%like\% a +#> FALSE + +# also supports multiple patterns, length must be equal to x +a <- c("Test case", "Something different", "Yet another thing") +b <- c("case", "diff", "yet") +a \%like\% b +#> TRUE TRUE TRUE + +# get frequencies of bacteria whose name start with 'Ent' or 'ent' library(dplyr) -# get unique occurences of bacteria whose name start with 'Ent' septic_patients \%>\% left_join_microorganisms() \%>\% - filter(fullname \%like\% '^Ent') \%>\% - pull(fullname) \%>\% - unique() + filter(genus \%like\% '^ent') \%>\% + freq(genus, species) +} +\seealso{ +\code{\link[base]{grep}} } diff --git a/man/p.symbol.Rd b/man/p.symbol.Rd index d1f91f25..d36c5ca1 100644 --- a/man/p.symbol.Rd +++ b/man/p.symbol.Rd @@ -15,5 +15,5 @@ p.symbol(p, emptychar = " ") Text } \description{ -Return the symbol related to the p value: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 +Return the symbol related to the p value: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1. Values above \code{p = 1} will return \code{NA}. } diff --git a/tests/testthat/test-g.test.R b/tests/testthat/test-g.test.R index d04a3553..91899e6d 100644 --- a/tests/testthat/test-g.test.R +++ b/tests/testthat/test-g.test.R @@ -20,11 +20,10 @@ test_that("G-test works", { # INDEPENDENCE - # this should always yield a p value of around 0 x <- matrix(data = round(runif(4) * 100000, 0), ncol = 2, byrow = TRUE) expect_lt(g.test(x), - 0.0001) + 1) }) diff --git a/tests/testthat/test-like.R b/tests/testthat/test-like.R new file mode 100644 index 00000000..fdceabfb --- /dev/null +++ b/tests/testthat/test-like.R @@ -0,0 +1,10 @@ +context("like.R") + +test_that("`like` works", { + expect_true(suppressWarnings("test" %like% c("^t", "^s"))) + expect_true("test" %like% "test") + expect_true("test" %like% "TEST") + expect_true(as.factor("test") %like% "TEST") + expect_identical(factor(c("Test case", "Something different", "Yet another thing")) %like% c("case", "diff", "yet"), + c(TRUE, TRUE, TRUE)) +}) diff --git a/tests/testthat/test-misc.R b/tests/testthat/test-misc.R index b94e2899..164a9c9f 100755 --- a/tests/testthat/test-misc.R +++ b/tests/testthat/test-misc.R @@ -1,12 +1,5 @@ context("misc.R") -test_that("`like` works", { - expect_true(suppressWarnings("test" %like% c("^t", "^s"))) - expect_true("test" %like% "test") - expect_true("test" %like% "TEST") - expect_true(as.factor("test") %like% "TEST") -}) - test_that("percentages works", { expect_equal(percent(0.25), "25%") expect_equal(percent(0.5), "50%") diff --git a/tests/testthat/test-p.symbol.R b/tests/testthat/test-p.symbol.R index 8b40f351..fce51b3e 100644 --- a/tests/testthat/test-p.symbol.R +++ b/tests/testthat/test-p.symbol.R @@ -1,6 +1,6 @@ context("p.symbol.R") test_that("P symbol works", { - expect_identical(p.symbol(c(0.001, 0.01, 0.05, 0.1, 1)), - c("***", "**", "*", ".", " ")) + expect_identical(p.symbol(c(0.001, 0.01, 0.05, 0.1, 1, NA, 3)), + c("***", "**", "*", ".", " ", NA, NA)) }) diff --git a/vignettes/freq.R b/vignettes/freq.R new file mode 100644 index 00000000..bb94ee97 --- /dev/null +++ b/vignettes/freq.R @@ -0,0 +1,89 @@ +## ----setup, include = FALSE, results = 'markup'-------------------------- +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#" +) +library(dplyr) +library(AMR) + +## ---- echo = TRUE, results = 'hide'-------------------------------------- +# just using base R +freq(septic_patients$sex) + +# using base R to select the variable and pass it on with a pipe from the dplyr package +septic_patients$sex %>% freq() + +# do it all with pipes, using the `select` function from the dplyr package +septic_patients %>% + select(sex) %>% + freq() + +# or the preferred way: using a pipe to pass the variable on to the freq function +septic_patients %>% freq(sex) # this also shows 'age' in the title + + +## ---- echo = TRUE-------------------------------------------------------- +freq(septic_patients$sex) + +## ---- echo = TRUE, results = 'hide'-------------------------------------- +my_patients <- septic_patients %>% left_join_microorganisms() + +## ---- echo = TRUE-------------------------------------------------------- +colnames(microorganisms) + +## ---- echo = TRUE-------------------------------------------------------- +dim(septic_patients) +dim(my_patients) + +## ---- echo = TRUE-------------------------------------------------------- +my_patients %>% freq(genus, species) + +## ---- echo = TRUE-------------------------------------------------------- +# # get age distribution of unique patients +septic_patients %>% + distinct(patient_id, .keep_all = TRUE) %>% + freq(age, nmax = 5) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + freq(hospital_id) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + freq(hospital_id, sort.count = TRUE) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + select(amox) %>% + freq() + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + select(date) %>% + freq(nmax = 5) + +## ---- echo = TRUE-------------------------------------------------------- +my_df <- septic_patients %>% freq(age) +class(my_df) + +## ---- echo = TRUE-------------------------------------------------------- +dim(my_df) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + freq(amox, na.rm = FALSE) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + freq(hospital_id, row.names = FALSE) + +## ---- echo = TRUE-------------------------------------------------------- +septic_patients %>% + freq(hospital_id, markdown = TRUE) + +## ---- echo = FALSE------------------------------------------------------- +# this will print "2018" in 2018, and "2018-yyyy" after 2018. +yrs <- c(2018:format(Sys.Date(), "%Y")) +yrs <- c(min(yrs), max(yrs)) +yrs <- paste(unique(yrs), collapse = "-") +