From 456f60ceaa9399e9767636c31e80fdbfe5fc362f Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Apr 2023 08:16:10 +0000 Subject: [PATCH] Built site for AMR: 2.0.0.9013@9de19fd --- 404.html | 2 +- LICENSE-text.html | 2 +- articles/AMR.html | 841 ++++++++++-------- .../figure-html/unnamed-chunk-10-1.png | Bin 0 -> 43432 bytes .../figure-html/unnamed-chunk-13-1.png | Bin 42811 -> 0 bytes articles/EUCAST.html | 2 +- articles/MDR.html | 60 +- articles/PCA.html | 2 +- articles/SPSS.html | 4 +- articles/WHONET.html | 2 +- articles/datasets.html | 4 +- articles/index.html | 2 +- articles/resistance_predict.html | 2 +- articles/welcome_to_AMR.html | 2 +- authors.html | 2 +- index.html | 2 +- news/index.html | 6 +- pkgdown.yml | 2 +- reference/AMR-deprecated.html | 2 +- reference/AMR-options.html | 2 +- reference/AMR.html | 2 +- reference/Rplot005.png | Bin 13011 -> 13485 bytes reference/Rplot006.png | Bin 13025 -> 13506 bytes reference/Rplot007.png | Bin 12958 -> 12775 bytes reference/Rplot008.png | Bin 19647 -> 18547 bytes reference/Rplot009.png | Bin 8531 -> 8633 bytes reference/WHOCC.html | 2 +- reference/WHONET.html | 2 +- reference/ab_from_text.html | 2 +- reference/ab_property.html | 2 +- reference/add_custom_antimicrobials.html | 2 +- reference/add_custom_microorganisms.html | 2 +- reference/age.html | 22 +- reference/age_groups.html | 2 +- reference/antibiogram.html | 2 +- reference/antibiotic_class_selectors.html | 10 +- reference/antibiotics.html | 2 +- reference/as.ab.html | 2 +- reference/as.av.html | 2 +- reference/as.disk.html | 2 +- reference/as.mic.html | 2 +- reference/as.mo.html | 2 +- reference/as.sir.html | 22 +- reference/atc_online.html | 2 +- reference/av_from_text.html | 2 +- reference/av_property.html | 2 +- reference/availability.html | 2 +- reference/bug_drug_combinations.html | 2 +- reference/clinical_breakpoints.html | 2 +- reference/count.html | 2 +- reference/custom_eucast_rules.html | 2 +- reference/dosage.html | 2 +- reference/eucast_rules.html | 2 +- reference/example_isolates.html | 2 +- reference/example_isolates_unclean.html | 2 +- reference/first_isolate.html | 2 +- reference/g.test.html | 2 +- reference/get_episode.html | 115 +-- reference/ggplot_pca.html | 2 +- reference/ggplot_sir.html | 2 +- reference/guess_ab_col.html | 2 +- reference/index.html | 2 +- reference/intrinsic_resistant.html | 2 +- reference/italicise_taxonomy.html | 2 +- reference/join.html | 2 +- reference/key_antimicrobials.html | 2 +- reference/kurtosis.html | 6 +- reference/like.html | 2 +- reference/mdro.html | 2 +- reference/mean_amr_distance.html | 70 +- reference/microorganisms.codes.html | 2 +- reference/microorganisms.html | 2 +- reference/mo_matching_score.html | 2 +- reference/mo_property.html | 2 +- reference/mo_source.html | 2 +- reference/pca.html | 2 +- reference/plot-1.png | Bin 26661 -> 26281 bytes reference/plot-2.png | Bin 26416 -> 27368 bytes reference/plot-3.png | Bin 28235 -> 27499 bytes reference/plot-4.png | Bin 39467 -> 39193 bytes reference/plot-5.png | Bin 38828 -> 39963 bytes reference/plot-6.png | Bin 38096 -> 39168 bytes reference/plot-7.png | Bin 37562 -> 37398 bytes reference/plot-8.png | Bin 58408 -> 55902 bytes reference/plot-9.png | Bin 26275 -> 26388 bytes reference/plot.html | 2 +- reference/proportion.html | 2 +- reference/random.html | 35 +- reference/resistance_predict.html | 2 +- reference/skewness.html | 4 +- reference/translate.html | 2 +- search.json | 2 +- 92 files changed, 720 insertions(+), 605 deletions(-) create mode 100644 articles/AMR_files/figure-html/unnamed-chunk-10-1.png delete mode 100644 articles/AMR_files/figure-html/unnamed-chunk-13-1.png diff --git a/404.html b/404.html index be2cd997..183ea829 100644 --- a/404.html +++ b/404.html @@ -36,7 +36,7 @@ AMR (for R) - 2.0.0.9012 + 2.0.0.9013
+generated on 21 April 2023.This package comes with antibiogram()
, a function that
-automatically generates traditional, combined, syndromic, and even
-weighted-incidence syndromic combination antibiograms (WISCA). For R
-Markdown (such as this page) it automatically prints in the right table
-format.
Below are some suggestions for how to generate the different -antibiograms:
+Since AMR v2.0 (March 2023), it is very easy to create different +types of antibiograms, with support for 20 different languages.
+There are four antibiogram types, as proposed by Klinker et
+al. (2021, DOI
+10.1177/20499361211011373), and they are all supported by the new
+antibiogram()
function:
In this section, we show how to use the antibiogram()
+function to create any of the above antibiogram types. For starters,
+this is what the included example_isolates
data set looks
+like:
-# traditional:
-antibiogram(our_data_1st)
Pathogen (N min-max) | -AMC | -AMX | -CIP | -GEN | -
---|---|---|---|---|
-E. coli (1250-1250) | -64 | -58 | -58 | -63 | -
-K. pneumoniae (316-316) | -63 | -53 | -59 | -60 | -
-S. aureus (661-661) | -64 | -57 | -57 | -63 | -
-S. pneumoniae (399-399) | -64 | -56 | -60 | -66 | -
example_isolates
+#> # A tibble: 2,000 × 46
+#> date patient age gender ward mo PEN OXA FLC AMX
+#> <date> <chr> <dbl> <chr> <chr> <mo> <sir> <sir> <sir> <sir>
+#> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
+#> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA
+#> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
+#> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA
+#> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
+#> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA
+#> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
+#> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R
+#> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA
+#> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA
+#> # ℹ 1,990 more rows
+#> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>,
+#> # CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>,
+#> # TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>,
+#> # FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>,
+#> # TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>,
+#> # IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …
To create a traditional antibiogram, simply state which antibiotics
+should be used. The antibiotics
argument in the
+antibiogram()
function supports any (combination) of the
+previously mentioned antibiotic class selectors:
-antibiogram(our_data_1st,
- ab_transform = "name"
-)
antibiogram(example_isolates,
+ antibiotics = c(aminoglycosides(), carbapenems()))
+#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
+#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
+#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
Pathogen (N min-max) | -Amoxicillin | -Amoxicillin/clavulanic acid | -Ciprofloxacin | -Gentamicin | +AMK | +GEN | +IPM | +KAN | +MEM | +TOB | |
---|---|---|---|---|---|---|---|---|---|---|---|
-E. coli (1250-1250) | -58 | -64 | -58 | -63 | +CoNS (43-309) | +0 | +86 | +52 | +0 | +52 | +22 |
-K. pneumoniae (316-316) | -53 | -63 | -59 | -60 | +E. coli (0-462) +100 | +98 | +100 | ++ | 100 | +97 | |
-S. aureus (661-661) | -57 | -64 | -57 | -63 | +E. faecalis (0-39) +0 | +0 | +100 | +0 | ++ | 0 | |
-S. pneumoniae (399-399) | -56 | -64 | -60 | -66 | +K. pneumoniae (0-58) ++ | 90 | +100 | ++ | 100 | +90 | +|
+P. aeruginosa (17-30) | ++ | 100 | ++ | 0 | ++ | 100 | +|||||
+P. mirabilis (0-34) | ++ | 94 | +94 | ++ | + | 94 | +|||||
+S. aureus (2-233) | ++ | 99 | ++ | + | + | 98 | +|||||
+S. epidermidis (8-163) | +0 | +79 | ++ | 0 | ++ | 51 | +|||||
+S. hominis (3-80) | ++ | 92 | ++ | + | + | 85 | +|||||
+S. pneumoniae (11-117) | +0 | +0 | ++ | 0 | ++ | 0 |
Notice that the antibiogram()
function automatically
+prints in the right format when using Quarto or R Markdown (such as this
+page), and even applies italics for taxonomic names (by using
+italicise_taxonomy()
internally).
It also uses the language of your OS if this is either English,
+Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian,
+Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish,
+Swedish, Turkish, or Ukrainian. In this next example, we force the
+language to be Spanish using the language
argument:
-antibiogram(our_data_1st,
- ab_transform = "name",
- language = "es"
-) # support for 20 languages
antibiogram(example_isolates,
+ mo_transform = "gramstain",
+ antibiotics = aminoglycosides(),
+ ab_transform = "name",
+ language = "es")
+#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
+#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
Patógeno (N min-max) | -Amoxicilina | -Amoxicilina/ácido clavulánico | -Ciprofloxacina | +Amikacina | Gentamicina | +Kanamicina | +Tobramicina | ||
---|---|---|---|---|---|---|---|---|---|
-E. coli (1250-1250) | -58 | -64 | -58 | -63 | +Gram negativo (35-686) | +98 | +96 | +0 | +96 |
-K. pneumoniae (316-316) | -53 | +Gram positivo (436-1170) | +0 | 63 | -59 | -60 | -|||
-S. aureus (661-661) | -57 | -64 | -57 | -63 | -|||||
-S. pneumoniae (399-399) | -56 | -64 | -60 | -66 | +0 | +34 |
To create a combined antibiogram, use antibiotic codes or names with
+a plus +
character like this:
-# combined:
-antibiogram(our_data_1st,
- antibiotics = c("AMC", "AMC+CIP", "AMC+GEN")
-)
antibiogram(example_isolates,
+ antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"))
Pathogen (N min-max) | -AMC | -AMC + CIP | -AMC + GEN | +TZP | +TZP + GEN | +TZP + TOB | |
---|---|---|---|---|---|---|---|
-E. coli (1250-1250) | -64 | -76 | -75 | +CoNS (29-274) | +30 | +97 | +|
-K. pneumoniae (316-316) | -63 | -78 | -74 | +E. coli (416-461) +94 | +100 | +99 | |
-S. aureus (661-661) | -64 | -77 | -75 | +K. pneumoniae (53-58) +89 | +93 | +93 | |
-S. pneumoniae (399-399) | -64 | -77 | -76 | +P. aeruginosa (27-30) ++ | 100 | +100 | +|
+P. mirabilis (27-34) | ++ | 100 | +100 | +||||
+S. aureus (7-231) | ++ | 100 | +100 | +||||
+S. epidermidis (5-128) | ++ | 100 | +100 | +||||
+S. hominis (0-74) | ++ | 100 | +100 | +||||
+S. pneumoniae (112-112) | +100 | +100 | +100 |
To create a syndromic antibiogram, the syndromic_group
+argument must be used. This can be any column in the data, or e.g. an
+ifelse()
with calculations based on certain columns:
-# for a syndromic antibiogram, we must fake some clinical conditions:
-our_data_1st$condition <- sample(c("Cardial", "Respiratory", "Rheumatic"),
- size = nrow(our_data_1st),
- replace = TRUE
-)
-
-# syndromic:
-antibiogram(our_data_1st,
- syndromic_group = "condition"
-)
antibiogram(example_isolates,
+ antibiotics = c(aminoglycosides(), carbapenems()),
+ syndromic_group = "ward")
+#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
+#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
+#> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)
Syndromic Group | Pathogen (N min-max) | -AMC | -AMX | -CIP | +AMK | GEN | +IPM | +KAN | +MEM | +TOB | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cardial | --E. coli (394-394) | -61 | -60 | -54 | -60 | +Clinical | +CoNS (23-205) | ++ | 89 | +57 | ++ | 57 | +26 |
Respiratory | --E. coli (448-448) | -68 | -58 | -60 | -64 | +ICU | +CoNS (10-73) | ++ | 79 | ++ | + | + | |
Rheumatic | --E. coli (408-408) | -62 | -56 | -59 | -65 | +Outpatient | +CoNS (3-31) | ++ | 84 | ++ | + | + | |
Cardial | +Clinical | -K. pneumoniae (93-93) | -60 | -53 | +E. coli (0-299) +100 | +98 | +100 | ++ | 100 | +98 | +|||
ICU | ++E. coli (0-137) | +100 | +99 | +100 | ++ | 100 | +96 | +||||||
Clinical | ++K. pneumoniae (0-51) | ++ | 92 | +100 | ++ | 100 | +92 | +||||||
Clinical | ++P. mirabilis (0-30) | ++ | 100 | ++ | + | + | 100 | +||||||
Clinical | ++S. aureus (2-150) | ++ | 99 | ++ | + | + | 97 | +||||||
ICU | ++S. aureus (0-66) | ++ | 100 | ++ | + | + | + | ||||||
Clinical | ++S. epidermidis (4-79) | ++ | 82 | ++ | + | 55 | -54 | ||||||
Respiratory | +ICU | -K. pneumoniae (116-116) | -67 | -53 | -63 | -66 | +S. epidermidis (4-75) ++ | 72 | ++ | + | + | 41 | |
Rheumatic | +Clinical | -K. pneumoniae (107-107) | -61 | -51 | -58 | -60 | +S. hominis (1-45) ++ | 96 | ++ | + | + | 94 | |
Cardial | +Clinical | -S. aureus (215-215) | -67 | -57 | -57 | -67 | +S. pneumoniae (5-78) +0 | +0 | ++ | 0 | ++ | 0 | |
Respiratory | +ICU | -S. aureus (222-222) | -62 | -59 | -59 | -58 | -|||||||
Rheumatic | --S. aureus (224-224) | -65 | -54 | -57 | -65 | -||||||||
Cardial | --S. pneumoniae (130-130) | -62 | -58 | -58 | -65 | -||||||||
Respiratory | --S. pneumoniae (125-125) | -65 | -54 | -59 | -63 | -||||||||
Rheumatic | --S. pneumoniae (144-144) | -65 | -56 | -61 | -68 | +S. pneumoniae (5-30) +0 | +0 | ++ | 0 | ++ | 0 |
To create a WISCA, you must state combination therapy in the
+antibiotics
argument (similar to the Combination
+Antibiogram), define a syndromic group with the
+syndromic_group
argument (similar to the Syndromic
+Antibiogram) in which cases are predefined based on clinical or
+demographic characteristics (e.g., endocarditis in 75+ females). This
+next example is a simplification without clinical characteristics, but
+just gives an idea of how a WISCA can be created:
-antibiogram(our_data_1st,
- # you can use AB selectors here as well:
- antibiotics = c(penicillins(), aminoglycosides()),
- syndromic_group = "condition",
- mo_transform = "gramstain"
-)
-#> ℹ For penicillins() using columns 'AMX' (amoxicillin) and 'AMC'
-#> (amoxicillin/clavulanic acid)
-#> ℹ For aminoglycosides() using column 'GEN' (gentamicin)
Syndromic Group | -Pathogen (N min-max) | -AMC | -AMX | -GEN | -
---|---|---|---|---|
Cardial | -Gram-negative (487-487) | -61 | -59 | -59 | -
Respiratory | -Gram-negative (564-564) | -68 | -57 | -64 | -
Rheumatic | -Gram-negative (515-515) | -62 | -55 | -64 | -
Cardial | -Gram-positive (345-345) | -65 | -57 | -66 | -
Respiratory | -Gram-positive (347-347) | -63 | -57 | -60 | -
Rheumatic | -Gram-positive (368-368) | -65 | -55 | -66 | -
-# WISCA:
-# (we lack some details, but it could contain a filter on e.g. >65 year-old males)
-wisca <- antibiogram(our_data_1st,
- antibiotics = c("AMC", "AMC+CIP", "AMC+GEN"),
- syndromic_group = "condition",
- mo_transform = "gramstain"
-)
+wisca <- antibiogram(example_isolates,
+ antibiotics = c("AMC", "AMC+CIP", "TZP", "TZP+TOB"),
+ mo_transform = "gramstain",
+ minimum = 10, # this should be >= 30, but now just as example
+ syndromic_group = ifelse(example_isolates$age >= 65 &
+ example_isolates$gender == "M",
+ "WISCA Group 1", "WISCA Group 2"))
wisca
Syndromic Group | Pathogen (N min-max) | AMC | AMC + CIP | -AMC + GEN | +TZP | +TZP + TOB | ||||
---|---|---|---|---|---|---|---|---|---|---|
Cardial | -Gram-negative (487-487) | -61 | -72 | -72 | +WISCA Group 1 | +Gram-negative (261-285) | +76 | +95 | +89 | +99 |
Respiratory | -Gram-negative (564-564) | -68 | -80 | -77 | +WISCA Group 2 | +Gram-negative (380-442) | +76 | +98 | +88 | +98 |
Rheumatic | -Gram-negative (515-515) | -62 | -75 | -75 | +WISCA Group 1 | +Gram-positive (123-406) | +76 | +89 | +81 | +95 |
Cardial | -Gram-positive (345-345) | -65 | -77 | -78 | -||||||
Respiratory | -Gram-positive (347-347) | -63 | -77 | -72 | -||||||
Rheumatic | -Gram-positive (368-368) | -65 | -78 | -77 | +WISCA Group 2 | +Gram-positive (222-732) | +76 | +89 | +88 | +95 |
Antibiograms can be plotted using autoplot()
from the
-ggplot2
packages, since this package provides an extension
-to that function:
+ggplot2
packages, since thisAMR
package +provides an extension to that function: +- +autoplot(wisca)
To calculate antimicrobial resistance in a more sensible way, also by correcting for too few results, we use the
resistance()
andsusceptibility()
functions.
proportion_R()
I (proportion_SI()
, equal to
susceptibility()
). These functions can be used on their
own:
-
+
our_data_1st %>% resistance(AMX)
#> [1] 0.4318355
Or can be used in conjunction with group_by()
and
summarise()
, both from the dplyr
package:
-
+
our_data_1st %>%
group_by(hospital) %>%
summarise(amoxicillin = resistance(AMX))
diff --git a/articles/AMR_files/figure-html/unnamed-chunk-10-1.png b/articles/AMR_files/figure-html/unnamed-chunk-10-1.png
new file mode 100644
index 0000000000000000000000000000000000000000..7080526edb8770efe61ff9240a6971c826a2ed5a
GIT binary patch
literal 43432
zcmeFZXH-;M(=OV8f*G?S$v_YgP;v%EMKTCT1|>t2o18JBk`x4lCMlAWgeE6J$w4G%
zlpLDS=4b#z>bwsSmWb2k)bMCh$tDlS8X66HBBJ7HC>^tHg
zexI?IYnD{)DBUSsn@X7|oG)4{Jbn#+h>+2F9YLo#?EfFCosozO`3Uvmq!qA&lwMkK5&S_|9{2UwhTnw*=9wnLRVE&g6!Sy3stii&+eY~r;j^L76*#I79pfeapX
z_73Ve^7}vZK}3o+N}+gjbJMnl+Htf~)2hjRZ6NHs?*-%O_T(Pd`BF>;5!vWl@e_6L
znUqqr84e2IbK7k9cGf0*M7N(L$j6BMLW}G!22Mn~&h?C)+XptgWpZN2Eh<)UoFG2WeUs((CRL!j_sH%Q&svXEc?VLsFEP?p?Zc
zss6{09}K#jH*bFF=|U;E`W-YIO4u}U7eXm85t}?tbswP|s-+Lp3Zmox{py-+BSod-dWglh!ii{2{ApCu
zWqt2WMN8WBKr&R`-KyH!+6Oq_$4i@ATT2U7dnp{*fX+4}E(k1hPv)KpyqOkv3m-l}D;cs`m=
z9r?C+HhUWmZu$M)H>XR-bxeESMRj%1bv`>kJu{R2g07p5W$8-i4c#&!*V!xyIf1Fq
zCBM&Qc8>~-x5UJxW)v|y4!JubcaL)DW%8l2eGnixS77JhAXm^hJp4GLY;#)6alqc0
zP{)`vlTkblPu_B?hANoSvfv8XfMv7LQX`c^_Y?h4Y@z$D#O_VTW;)
z{i73n!(MbF6F##uGYyIo)FGXnom!YCZpu=+E!FZ(6_Lf)@}sY=1=QAv?k>KWz2=l)
z@91dkL+$XPJv&fj(*z8aS?kpM#2|fdgNAC7VCtjh1-oVeWTEW3BAdlqo1287uo61P
z7&qJ1eoTu$n3X{FF8GKVz%~V=Xx!bJkGU2o#8HgT>-*3p&*g*RcXtbVv%IwFWY%+3cfHaq4E3eS
zhLr2e_wzT@-o7|`fk6_Pt?W*mrOsDMtCCw2QI3NJ6P+8qU1gyxnI*Q3OYZLOg}a+G
zn4OibiPCv@D`WxuGxjD#_neyr=Sz-}lLv~d`RZ<8Er%^bSjqGhZcC7D5FA_#xOJsP
zc&$I!b*_-nIL6&!b;xs1(yFh-dC9h!f5NXP8ulvh+Muh|;8OJ3XgX}E0z(Nf$FB!3
zjAl2mQ7)}-Z!B?o?ryumG_-6?#KZ`%cI!7Tm6nz|!zVE{G_K~$S!6U$m&t_|#5@SW
zF$Qz}g%q$Kb7(u6jA`YU_w4(!nqMx7=izW;6(r=1aBITW(4GkFm!SfC#=5aE-DsFe
zD);5qkxt=o_XA=Z%>3scSaRca#
zLL(Wk;w=71#=aWHu@zVyRFXV+3SZ%c3KGd6^&BIW*??8#5&=Sl+LE=>`6jq;*vpqM
zZ?&{U@^i*)G#Y2mmu)2!7Yq9P`y=}b*>aKgo$7^?pL}f>zLFWk+0oWJx*PSXgwXsF
zdd4WbhY4~~5rcz+T28-SAp3eLyv2=ygoK12Zi<;sPBen&llJuV%qaN%M$4}C-bTLX
zR{r*+glNRVu{hSncy@OtE0;DbA;7WZ8nVO{6=IfU8{=-jj_TI(mTxpsVH$6R3)oM8
zFw7_+)N48P7>0ABAMI|$?D6Lqx5!~I7#9~8+csI=u}DmF9XR7(TFzr3rdC$8+H+t(
zdNi=TXNzVsHu@(-!n7TF=<9lOK8UO&%liwyWpSjP2d7pzm4GF9le=B^+#aFDd_Sk^
z7rl{79{>}M>;_eB`;O;i38|`?&D4(l?*ak>Y{c;+TOJE$#<$F8xoaoLpx7D1OCfF5`)z#I*u<((AlwijzA
zeu$GdEl;&UjQRQF$6F?)gi*wRFTft7s|$puhaFgZEwB-+c^6z=!pDzSsHv$phRH-f
zz^!j+73{l%aN}tH%`Ht$P0UY8MnmvPwQtU`5ZaaGWnKDomLj@Fm)qoNh2L75n%13?
zpnBI;wu+PFm^&5^M&gD?>q@Jts+R4pWEy9du1ZNuH%#)-+P5q6?<}{qb#;Y-x3IA*
zgt$8aqq-**{}9g3H0(@MX9|&m|MnyC?#6^wcC+p3VklLu+~{|94;w%nwo6UC@_gSb
zU=v2uIWJ*{gvPx*v$qa;)nC`U@z&f$NMTOxa`K$huyc#6j>z6dOQ8B1<>10gx6x~~
zl0h~*%R%(gwgdKE^peQnChoDjw3?J7;ZJmEy_)wSbBOIsdj9xp#^{UMb1+r_XXt8~86k@GfGEq_+1H1qo0^{PokZ(w^>zhp
z@wUdt&yl@_xH7~k8{4AIb
z3`v(kMKkDdV)ug}5^|xNlGRjP40TAX1ZO$%?Tow(8a?y8AtQArug{V)M=N{PJnnV#
z{XWAmZ3bb_vC!F(y6YiQ{No?=gXkOwohJ$=*h`mx($&rAtQFk~ly{&dQlPl!cQB|f
zkSs4ZCS}}dSa{yK<+-sut@G$R$xgWzoKaImYYnnt=;{#PB{ad`LXod!Y;25d6}mdu
z9k({ui*nx6x=enQ?9yNgo|;%$L@AU5lrzt=4->GQmRrSQC9K5-0XrFa&R3C(M$TlG
ziQm6TI@0
zx8w>q0ChHaYAV~>D{+DBIwgGMBI}Qhnj`t==Jo$E77rl>OHq}k#fq10=(M)}{z&k@
z!sNos3ZXaDg8(NnI2Y*-wU@MECYqbT+lvU$OJ(y!LR7*m(e5qM7DAk~ZC8{qgh18k
zN5RP;?EZj1FE6I6hD2=Vv>1t|`9M@#m-cV|cUa3J)8##K(QWI&jb=wn+o-0dCal|T
z`R+_PVPM|FF*viQ{WiY3IYGnma$Ximwm<6{;-_HH!v!^&fI)1GX|3=@VQktFbY}*y
zTZ_+>8;#Y6NM_eHm~~MwDJEsq=`p&RSn_9UYgTI!tin4V8W)qsu%9fC(jElaIXYU|725Nj
z)+%$`_)x=EI2wdF^}=5-Det!&v4SnXSVJ2#5-94Co9WJAZXuc(NanRk??sx|U9>?n
z0njQsI$D-Sfu2(IgXT~ITfRHEr6qV&URGAteLv{F+QS$X6=iB}E+Z~34#DaEgpx->
zT5+8Fsm_D7F*~!yHIYoY@eS!Zr7m%q>U$`A_m2LW+Sfqu?L$<0P~OdT=3F3j%PN7J#L~_20gjsrayQWScHQIC1nvv)6R4?gv`kapW1n
zNej6gp5gA&Qd*zag_h9!rh4;y
z_hwc_^|%2I6&00mu*<-9Q(fE6CK87HJHJ?#mkb|d|FEzT8X5|bN3ezpBg0lS`DwdN
zbVmuMl>p$ubBR*zwr1PEIVy+>oXvdKBnkdjZu-HPBdV1}4T{(ZhBCDg08cE-YocxA
z%~4o7WWlpx%d+as(X%^C28|LL*lA1o+cyyaIJCQ(e}+wSPDIBswDYcG!O&@lKrIMR
zL_&zX(BfT>&9)eZ@O2}_x>00Vp4|AdQnr$ACCg{{t;J(ChptX!Yc@D9FR!&mcQreV
zUcIj?T~OS`9bz!ez#Pd5zQ?|1YP^q}X0vMY3g(ayIJ4;t#HgK}i0g~WIFJPw)ulE$
zK~@Bb(}4TB#Y=MO;zgK5Ar6
z;SdsvMDQc+_AnXmreMQBO^fI5QZU`#lIR}iRI=nCKqop$#0_cLcc@54i>wd+*tbso
z8(-{q0Sk=j?yczNnD=DUp#G?gQ+t!L6SM(z{d>c$s^
zAM56>p_psb9ydhU)-xeEivS+LtsgV*HX$e>zPjQ*t54ei-e}+VIjQHc+tg!F*
zu&_zp&LLvXx=9%lwylPJUv5mN=<=4;TUs*tJ<0QF~IGyr?iB
ze=7n)3>(La#IlNti*u?@2+ElCNYJ|HrWLAsPrCp(3T2FTx(ejp;-2NBW9_86Z&7~6
zCrrEq)&LES0(p>)h=}08j5nHvAp)3?@1a56Q_1_Iv7Q}F2d8y8Cz72w9mW4jHL
z&^`z%0kflYEM!A;rgx1*#}&w6dr4TG=6biYHY5tlP(P>EIrwtHoY9Lki3D+L`QW$^
zC7=*l#L-}RBSbHJ}xfq
zX-9h*XcNE&7$kvc{cLMf`q!C=$_Lk^o5JIpraMyi?*aD&v4&1kS6BB@x`xWw8&uN4
zW-mlYMa7;ZHbH))j$HX~@7G#en1OhrNtoH+ab4u(IX&jWExRFjkEk
zuo&C15Y=(eG-{FAb6uT9d@w)AfxrunXo8vs&o|hvg4zKgiX&!kd!j~IL`bOQUIT~|
zI~${nqWt44YXgqDf1t!h<%P1hFs*Ock0R$P1WubB2>?%r;CkAPS_#|Mdl$z1IGekF
z8>(h#g(D%ks;Y{AcYS0D-0e+OU3Yu7l7-5~2yPYxz?Kn0GL_xbkxO~GsHhSxNAhC`
zujSpYBG3&)C?D`5=8M^g_=CiU6xC8@E6=UIw$9E_`1fqVNC5xVY!0wOThK6!TR+`9
zr~TJ6>2#=|gw?@?6i%n42GM~Rt1Orh6c8Y6c9n}r+BUG}E1Uo8whUg)y;!mg^&AGt
zY}g9&>k-J7k+cQH;L)FB9;xzPiA)1>$0&&a%ZJHazt8}_!|9wSKl(7|&AvR(s_`C)
zVwDqMUD==vTH0I){d#lbuVrtEd=%^#t(|MhHu3t{@#Frxo;wW(kO6_R(F{CD_!p+ns@xsKKAxi4
z92JBti)iN<$pXkofh`@YJ)?xdEKOdpg(poL%7AAoGZ_%$S87630&D9p$mRvB8Xq60
zTa_1X%~(m!%CcFWRl{qDc3O3TMwOkhoUEGh8+B106_uE1+1s)5CD$u33H
z*p1?k&rS$jC!@Ce@w^2vw&B#zcuMWno|NKZSFR+jQWxBCoSdD#z5fYwR~MIRx7XtM
z>FMc9JIC5HR^oDUFfzqQE>@eN(b#3f2~hl2CrC9kH6@b+?E?i)Z|}k8whLa#8KsVDMmWQ?s)&*{ca*
zmXB0vbJ6Z*rlyi0ums^$UlbjF;%;JTDd*_u7=)`Cvb@7L2xK%xo4A4}F}e4ka&I-U
z{|fDp+W7A83*~%6KtT7s+-jdy3uqx6h?hg6b`x5Mli^#&Xg1