From 61e967190921adfd72f8f811ec4507bce1b6cf96 Mon Sep 17 00:00:00 2001 From: hadley Date: Fri, 6 Sep 2024 07:28:34 +0000 Subject: [PATCH] Built site for R6@2.5.1.9000: 4a97899 --- dev/LICENSE-text.html | 4 +- dev/LICENSE.html | 63 ++++++++++++ dev/articles/Introduction.html | 4 +- dev/articles/Performance.html | 96 +++++++++--------- .../figure-html/unnamed-chunk-25-1.png | Bin 59268 -> 59179 bytes .../figure-html/unnamed-chunk-28-1.png | Bin 45210 -> 43348 bytes .../figure-html/unnamed-chunk-30-1.png | Bin 41711 -> 41723 bytes .../figure-html/unnamed-chunk-32-1.png | Bin 55408 -> 55439 bytes .../figure-html/unnamed-chunk-36-1.png | Bin 32138 -> 32164 bytes dev/index.html | 5 +- dev/pkgdown.yml | 2 +- dev/search.json | 2 +- dev/sitemap.xml | 1 + 13 files changed, 120 insertions(+), 57 deletions(-) create mode 100644 dev/LICENSE.html diff --git a/dev/LICENSE-text.html b/dev/LICENSE-text.html index 2b1dfb0..6ecbb73 100644 --- a/dev/LICENSE-text.html +++ b/dev/LICENSE-text.html @@ -38,8 +38,8 @@ -
YEAR: 2023
-COPYRIGHT HOLDER: Posit Software, PBC
+
YEAR: 2024
+COPYRIGHT HOLDER: R6 authors
 
diff --git a/dev/LICENSE.html b/dev/LICENSE.html new file mode 100644 index 0000000..164c3a3 --- /dev/null +++ b/dev/LICENSE.html @@ -0,0 +1,63 @@ + +MIT License • R6 + Skip to content + + +
+
+
+ +
+ +

Copyright (c) 2024 R6 authors

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+
+ +
+ + +
+ + diff --git a/dev/articles/Introduction.html b/dev/articles/Introduction.html index cfaf295..e2402db 100644 --- a/dev/articles/Introduction.html +++ b/dev/articles/Introduction.html @@ -678,8 +678,8 @@

Finalizersrm(obj); gc() #> [1] "Finalizer has been called!" #> used (Mb) gc trigger (Mb) max used (Mb) -#> Ncells 701830 37.5 1364540 72.9 1364540 72.9 -#> Vcells 1324395 10.2 8388608 64.0 3573020 27.3

+#> Ncells 701836 37.5 1364680 72.9 1364680 72.9 +#> Vcells 1324403 10.2 8388608 64.0 3573209 27.3

NOTE: In R6 version 2.3.0 (released 2018-10-04) and below, the $finalize() method could only be public. As of version 2.4.0, it can be public or private. Private is preferable diff --git a/dev/articles/Performance.html b/dev/articles/Performance.html index 0040103..58aa4d8 100644 --- a/dev/articles/Performance.html +++ b/dev/articles/Performance.html @@ -433,16 +433,16 @@

Object instantiation speedspeed <- mb_summary(speed) speed #> name median -#> 1 RC$new() 203.4195 -#> 2 R6$new() 30.9830 -#> 3 R6NoClass$new() 31.3240 -#> 4 R6NonPortable$new() 31.5435 -#> 5 R6NonCloneable$new() 31.2230 -#> 6 R6Bare$new() 27.7870 -#> 7 R6Private$new() 42.9850 -#> 8 R6PrivateBare$new() 39.1130 -#> 9 FunctionEnvClass() 1.4875 -#> 10 FunctionEnvNoClass() 1.0020 +#> 1 RC$new() 204.4965 +#> 2 R6$new() 32.9465 +#> 3 R6NoClass$new() 33.1615 +#> 4 R6NonPortable$new() 33.9235 +#> 5 R6NonCloneable$new() 33.6880 +#> 6 R6Bare$new() 29.3445 +#> 7 R6Private$new() 45.1240 +#> 8 R6PrivateBare$new() 41.1620 +#> 9 FunctionEnvClass() 1.6180 +#> 10 FunctionEnvNoClass() 1.0170

The plot below shows the median instantiation time.

Reference classes are much slower to instantiate than the other types @@ -483,15 +483,15 @@

Field access speedspeed <- mb_summary(speed) speed #> name median -#> 1 rc$x 5.7555 -#> 2 r6$x 0.6515 -#> 3 r6noclass$x 0.2100 -#> 4 r6noport$x 0.6915 -#> 5 r6noclone$x 0.7110 -#> 6 r6bare$x 0.2110 -#> 7 r6priv$x 0.7120 -#> 8 r6priv_bare$x 0.2310 -#> 9 fun_env$x 0.6260 +#> 1 rc$x 5.8410 +#> 2 r6$x 0.6420 +#> 3 r6noclass$x 0.2110 +#> 4 r6noport$x 0.6910 +#> 5 r6noclone$x 0.7010 +#> 6 r6bare$x 0.2105 +#> 7 r6priv$x 0.7220 +#> 8 r6priv_bare$x 0.2255 +#> 9 fun_env$x 0.6115 #> 10 fun_env_nc$x 0.2200

Accessing the field of a reference class is much slower than the @@ -524,14 +524,14 @@

Field setting speedspeed <- mb_summary(speed) speed #> name median -#> 1 rc$x <- 4 29.4650 -#> 2 r6$x <- 4 1.1720 -#> 3 r6noclass$x <- 4 0.6765 -#> 4 r6noport$x <- 4 1.2130 -#> 5 r6noclone$x <- 4 1.2570 -#> 6 r6bare$x <- 4 0.7110 -#> 7 fun_env$x <- 4 1.1625 -#> 8 fun_env_nc$x <- 4 0.6865 +#> 1 rc$x <- 4 29.1750 +#> 2 r6$x <- 4 1.1920 +#> 3 r6noclass$x <- 4 0.6710 +#> 4 r6noport$x <- 4 1.2620 +#> 5 r6noclone$x <- 4 1.2575 +#> 6 r6bare$x <- 4 0.7515 +#> 7 fun_env$x <- 4 1.1720 +#> 8 fun_env_nc$x <- 4 0.6810

Reference classes are significantly slower than the others, again. In this case, there’s additional overhead due to type-checking the @@ -565,16 +565,16 @@

Speed of method call that ac speed <- mb_summary(speed) speed #> name median -#> 1 rc$getx() 5.9010 -#> 2 r6$getx() 1.5580 -#> 3 r6noclass$getx() 0.5460 -#> 4 r6noport$getx() 0.8620 -#> 5 r6noclone$getx() 1.6580 -#> 6 r6bare$getx() 0.3610 -#> 7 r6priv$getx() 1.0620 -#> 8 r6priv_bare$getx() 0.3655 -#> 9 fun_env$getx() 0.9120 -#> 10 fun_env_nc$getx() 0.4560 +#> 1 rc$getx() 5.9065 +#> 2 r6$getx() 1.5830 +#> 3 r6noclass$getx() 0.5210 +#> 4 r6noport$getx() 0.8810 +#> 5 r6noclone$getx() 1.6685 +#> 6 r6bare$getx() 0.3510 +#> 7 r6priv$getx() 1.0510 +#> 8 r6priv_bare$getx() 0.3510 +#> 9 fun_env$getx() 0.8815 +#> 10 fun_env_nc$getx() 0.4410

The reference class is the slowest.

r6 is also somewhat slower than the others. There are @@ -647,10 +647,10 @@

Assignment using self$x <-speed <- mb_summary(speed) speed #> name median -#> 1 rc_self$setx() 35.8470 -#> 2 rc_noself$setx() 20.0420 -#> 3 r6_self$setx() 2.8800 -#> 4 r6_noself$setx() 1.3075 +#> 1 rc_self$setx() 35.0260 +#> 2 rc_noself$setx() 19.6565 +#> 3 r6_self$setx() 2.9555 +#> 4 r6_noself$setx() 1.2975

For both reference and non-portable R6 classes, assignment using .self$x <- is somewhat slower than using @@ -703,8 +703,8 @@

Overhead from usi speed #> name median #> 1 e1$x 0.191 -#> 2 e2$x 0.541 -#> 3 e3$x 0.842 +#> 2 e2$x 0.551 +#> 3 e3$x 0.831

Using $ on e2 and e3 is much slower than on e1. This is because e2 and e3 have a class attribute. Even though there’s no @@ -737,9 +737,9 @@

Lists vs. environments, and $ env[['x']] )) #> name median -#> 1 lst 0.181 -#> 2 env 0.170 -#> 3 lst[["x"]] 0.131 +#> 1 lst 0.180 +#> 2 env 0.161 +#> 3 lst[["x"]] 0.140 #> 4 env[["x"]] 0.110

Performance is comparable across environments and lists.

The [[ operator is slightly faster than $, @@ -800,11 +800,11 @@

System informationsessionInfo() #> R version 4.4.1 (2024-06-14) #> Platform: x86_64-pc-linux-gnu -#> Running under: Ubuntu 22.04.4 LTS +#> Running under: Ubuntu 20.04.6 LTS #> #> Matrix products: default #> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 -#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 +#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3; LAPACK version 3.9.0 #> #> locale: #> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 diff --git a/dev/articles/Performance_files/figure-html/unnamed-chunk-25-1.png b/dev/articles/Performance_files/figure-html/unnamed-chunk-25-1.png index f9bd1681c638db92fd25505b8f98851126fb58e8..9edc5137fc9d9670d4ba8cf0b29568bbcda53149 100644 GIT binary patch literal 59179 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 literal 59268 zcmeFZ2{e{%-!H6rl13#(6PZaxWiFL2%9NpuQDn$G&voBLN-2eqnM|R~vq~sq=FA~; z$UL)uN8QgJ*81Le?{DqB_V=#!z1ICaDO}F$Jdfl5|4skHT~=CR^G5oOR8&-(DHqSl zQ&FwOrz=C&lRwmR(|qv9T5TzbbNCY8f}*ixZAS7CpQoE*nHwjZ`uBKXspe< z;wbgxNV_I~z-5b`vJFK+280+c(jZIPAjQeknmI{;0r-J;q9{!8tTf?22{#tdLR%VJn?+sUjx>(v5 zi>pgh^lO+X4pTp?-1a-ub?T9~OoO)^Ex$ZdEb7Sa`}}#hVw}>N)Aaa)bp4xa;S&>< zlrNMFdZ z8Z7JPy-~E9D*0gwc>MHxHw*b}ZqNgLF>e$1qgcX99u*>!vjxS@)j4>=OP zZa&#^fMVZqe|HI|L*LhfLrtktUK3x%x6I}y)^7AVhHK*0#p-tco&pUFqy%KfNz`B%^lj||m*Vku0VwTo; zJ8QCDRjQU}WZ{Likf!r&0lA{7&;z>s_Dd}h8q_yxbEUsi*8?v%8%RxfdxKvVP@rx3&2H1rc zCu#(&242WC|LV@Q*fe2RT2fN&#VmEg`sYAyU^3M-{uPb+28V_FPv}s<(0xchFcb+$j>1H3x{PB36 z;u^1-KJcrfpxb917Kfw`mDtmXfx6PCH!mK;hXkIlV>31Bt z#A=aUDZ1>K*&A^JJ8GQGno@*9);T?!`O9|WrcIAkjWZ)_ojw&7?!ji}9n7B_h|?)b z(W?qG_vHQBp!~K%2am>VD7C>y)ut`S&b72V*7Q~3?EKQ2PWxAaHVKuzY=VN#ZjpiZi8^6AP&@tvYeLAz{o1@*xN~bpRt4~|> z%uHzHEsT}w=8CDU>SoLHjEIOZFCA&mZ|4+sSz0hJO;pRQ<_z}n=}EnGUeveb(TIu5 zylUp?3f$+&4zdY#-``o0q!RBHp;PK($JJ#iz-Q7XL^=Pwoi<5=?pXFr{U+$ojr-d?hu z{g3HL`ZeeD205fS%}>cUteczL=z|gxb2)&2Zf-EKlxrU4LBBeJqPW#NN=(gjBzHQ9 z(P^UU`n}y-cN^}VoX&8fjh))c)7iv^HL~!M5x1Ne>i&LRL=B z6KdSP&jJDr9Tz7XE_gBumzkezvkh-B%2ea-D&a^xQCb&srPy|Par!YF3JI zlS}jM%l0qKmgCBHP}RJ?e0&LIjUEN*xbxzqa)ELBUVNXaK;Q)>C7;m`>-N*dtE3*A z=F=&8A)l_e@Z`#L{@Ts-bc6Nr$17f)zLBBE9sc(1*KfHF>BX(_*x{^J0eSf8o;3T3 zz77jvm*E3EjDxp=ope#u+DtRmE@)^3jdr;0rym_1)%AOKqnO^ye;rQK#iN^y0zSn(dH;0`(MyW7fh&AN&t z3-#$}9hTWGg!zqIzHwSq3QyCCE-xgLdxI++S2<<<^W{6^R)HI3FL^aaQsO_Sssv(3 zG-(|0%nsvq4O?83By8u9ctcy;BfZ_Z*)eg`#*H3Wkb9Ihol+$-lZH!pMsiW60*>iC zl(>y=$$sZFZ=F1JI#9Z+%{YRU6$uHGrLzU zt`<8W;>)eDKzW90;H}DthyTl!H2qN@s&DUZNcg#kWeeU8IB8-`6D6y$^843N@t!%Q zc$Gc3DqgYi9f_*Zr)ChSD3ZJ1uD-*wapOjz?OS>) zgLzWbMl)2>jnxf$@3tCG(+%|DH_$$*>^Apn?yrmUt(;sK5*z*+`uDTo;E~jyyEPr< z!jg?pfiy~cy1VU|sB;3t#WXeZ#-`PF$pl@CSGqCMmK$k2jm2=Hl;5ECv*EFd{Y!Z+ z-kFT!V`F7jf3Mq;U|L3-t5mupmY@DjS}%v@lk7vhuCe5m7FYjZdN5IqWL{ijZv8xb|1wFm=JvEbAcyV?iFC#FnwUm#9_`SoEKj5nW8l zY{gy{x!w#g^1kr?!8=q6G17qoF?jM`5%)LkwtpjNGyF;^L5(d&FM89X!p<6gU(RdV z+==ShN@&4sskhIayH|X4FRF~O`!SQ8QP<2I%YON~M9ucWv_ppv=hkmIf^NP%y}T4W zJ6<2J>J&TO<}ku0BGNXP6&=l59wgknVAr1K+))4MM$4i+jH*wzaii)E{+bEn?czEm{ZeX%7ms*CbySuwa10ICu!7(4sYlqwl zI!tC(h?*qkPWfjp{3_UD`02qm=i;50T($ZD`JOTr78bG{Ir3U^djFfsNK#5m6&Fu$ z2FChzW+j!FchXf(`=9TMnJ8brd?_g{J>C$nnct?iv^e52GS1)1uw%o94M06tGP?o8 z^sEO=8j~VF&2&`I9ybVMFQlmMqee`Ou6j10f z-z^LR3jIUqSKm8#?irw>QgbxU9^x1N^?sFCgr~^d#c&BvA12}H77MS4yQ|i*A3XRW z%7}L7&OY24uL#ti0GqE_YTTa7kzsLH1V*T0mP^WBiSbcu7^STo&uan7$)(E8_kmD{^Fewuvw z>eU-mB6d+x&BGTwWU=U7H}8ENV4Ot}c9>GY2B+P4dl|H7|>RsN>9A0B%`hhIHJ#oE)J*VFx8Ig?wixb?ZhQkz#qphb&YNZTyuZ zuRC(nE<4Y4`)aOaI7WKec92AcOswr_n~^rj%a`jO@#IBUg-Z+qet{PRGf_N+#vW8Q z3t04c6jx?uW;z#|Ye_U^TJ)B6+Y{jRkTHDv*2Tb18=kc)qtZXbUT~B)Cf};dw78Wo@NKK(hn&2> z3L6IB*}9ou7OEiJ0^m)+Whn;?HK9S%Mg2yR2XAmwV~$<2{q%6Ws!48L*OT6dSy!9& zSUs}^)O_z6%P3Zf#1+`Z859bZ@Hl$Kv9Fo4h_Tf^%+JrSX9hBLAm zmJpN0ArqJ9OqczR6-H^3CAV{j*SuiF<&a9% z(SuK8%`=X=>x@!edDn;mtU{-p6wm#NMTz^{{Bk zW()68yRn=3X&_{YO{s=bUf^#W!u=ZH8DU{zOcaoyNqvX?P7`vGQ*4Xvs~_?5@?yzF zIZtP|$ADTq^z>9F&7n19xFTbKd#jDQn+mqsL-rB1qT=EJ_v9PJPwc3*L8>LIk zJAt;&@4FaS%m1~Pi=V&#(#lr?R_xc^gTyqV3XAJSZGVNdPd?fL$)~_=%Y3eS`a?%< zO3)V%usbE&WxVZ-4DvLO0jW;ToaW`NN_3}bU7CmzrLYfNx|(UO6WK+7T-PHr7ckcQ z+SHFP&lwr`Xge$g%CjZrC;G1p+kPL(8JCWn+I^`|a8-d$PUk<}y$u>f&)7p+juOs6 zOM%JGM?C(bnkctR>#mlgg`h@BdqtF$m2J1-o40T_JiB-Eh2~8YX39)OzaJvY^pCvA zFBKK_pqWgxoA=bdz8qj4#>Muvw>ieUy-*Cu%n`W;k-XRtDIW(rvYIfb;j5}CFroP>v_3sK)EfA>k zPWwL1zEiT=t)JX?ly?h`YHM%*OU*#Fl60wrvOF>eyrSr0*pS*DpYEn5?}b zqi7%e;l<0BtTEADhxP@nTt6|{y~U+MXOt#uek5NLWP&60=g-DutA!aeiacsW9U!S> z;Wh6k`$ZGb&U_q{$4Q0ikUVtgP>%H4p~2aBHlq_?jdFE2-eFJDfMj}wmlwvpB^}od3TlIF^^9SUEX2;EB>J5G*$!;{8tA5N zVfJIjs@Y717PLAYZe^xzt8rT{qNd(^TBu$1^ko|}Jt5UN*1 zSjKKH6@{+g)&IJe!6Hs&qmkp|zd=s!c!glkFJ^9EsdY5_zQ(7w#S&cnW;)Sjk>kLQ zYs$241)-?DQotBQnn`h(Htz1}@gKA>H=ls?AVC24Y2E2)x$qpu@WkHq*C|zE>ABbU zrRVH-Ra|~Y6f5hEE zoMF@vo&R~r2PH91i_J7+RI+^UhD?y~G$V36vgDthEdk?l-}TX}H$?Z!?k z2k1SnOyLj|G#UUcTYFyyJ561)n8iY#&dUAkua(JV54IgH5iZWQ8R0L@pK3Df_Tec7 z`p+$5przG02jv09ic2mkXS{1z3>lu4tGU{AAX_(W{93rSjf#= znj3t)*Er)t)DRHr+p?Jwhu_)(coUAkVHM{xdnL{ir#Vz%LHf`68XBX$E z1G-J}W_1rAIuuscWw$ijE9{I4aTLA(Cf$YWqP{IOj6!-o!Gbo%_bZ4t3Sum0VLZF) z&arbBE*OmWl&ieGepklk_(_vCHN*NhRkX@#9ac_pO7STcz0%A~OfRw?LwQ@A>GE8$ zM|6>F5a>!JTv)*Ztqvo(-ffykHv{-JsN1N!H*DIpN%87cR=0v}e?_yid~NVeToCpp z05{KRz83h;Jbe*WaiIKU`@1AhavGy7nxo|oV})HV_vahWY6~7$-O;3X zv`Hhx^B>|9E?k$Ou8O|%Y;I~uRX4Li!y&%9K`x{+pj@{GYdlh7zf+35*_uJYFf>|d zoY4_sv#c#PP4n7NO&Db~)bu|5wZ{Ln#p`0B^C09c5(jW=L>7LDTQmxv+=lxiyN%R_ z$KcMbF3XDqR4Ki=8Y;Rp>IoUx`;AguXIGb1t5rjPmBju!po)0VGy{m3I@a|l7t+O^ z`x}VhX8K*M@Y5$&5fKf1y*}*xBg?TLlvLcT>!UI+kDft+tl1$W6bkrSVvrhZJ=8=m zWcwBvDaylx8VX2Qlg+ma=g#$sF3);`I7LAYjz0fr7oWicziQB*F{|LEpi-bvc1U>b zj^mGqGkY1a@G5eA*3#^Y&Ic?ZGN5kROS!}CyB`&Xo%wsMK6XhHwj!g$Pu|IaIw@?6 zq{iC=Et$zjF8fE62b>%Po$a|7&^F`X9Otlivr_Y>A7;uYieytn*-j08(M|3Lv1|Yj ziY6TbWzeh6K+%ncVFF8HaAvfNv0zBy0w9Ni!V3-ie&)!iD8r?NS@H-5>f_^ZKkMR@ zWpW*+>nHkaCP_)!BJ@ivh8K@YyU1gY7gKg?0z}0*#p#{^lX?Kx7cX8!fW)$Mb4z3Y z)nVPokk;Zgfg2wKDE#ozqnhBQ36@s-!FaEg^O--UDqWVYc-5vFDib{@@di=M9wyVd zYTXl9k58%cENp6RhFcn6U7gbIHP1x%iiSYn>NsAml5K4iqqAk-sgP2hd^N8V(Bb5F z>4eIZ~CvWEV-~kaW z4_JNxFm>Y}Z>JtI8xsZahQ?-@;NAm=#2Ls-Q7y+`OTGZG7fKV}^zJGrq|?N+46f~X z#2isIdj^i;Tej+E#FO6}ebE1;NdnuI*Lsk4u@3a23&@Ys@qL>O*nLZxeM=)hUvyT#PzZGl8Wx3Yk#no3HA1!b(YWDTGhAi0q@%8& zi+jzeZl*12H(0-VNh$6Xu)`pP(&=nQmny3DFNwGg&@b0j^jQ3#-)x>abDqk(bJ#Tb zDyOAS$Vcjer&@Gs;?YN^ZTuA`B)9{aqginQj|xBX-P>r9sdkK7+-pX7uXm@Vz^t@* zWQM5cjB2^dwQJV~sv|d{{)aZepTV;{QmYl>YJO^83H-dXXIJJcgnc}A{5UfOj~MV% z=|T9J%iaM29N3)Li>?AYYh|Is-l`1pW`YJP!5_f&X=!ZcT?9UoZxB_AR=DVwst@$z1HnhV5=p*uuj*jcY|Jmn~Sdnmk>Ol%p@g6*_c0D>z zS|c&oKzUtRKMuIFP|3!h3ar?^Y;JCzV${r!rX&L?ecaw{38cvqwgJ8;=qpRGV;GRu zXXEriu;?a8+HEe&PQqiK56{8dl&UQ+E32)Jl;Sh%Jg0N>X5SW|Md^6adpAR(=EqC`{|GJ~qr}xnipDlmBbwtu~ zN$UKUyF|tU)g}<=>{hMG!W~r6KF~>HUcRKGoZr0g{_d)|Qq83>Ae{l&kzb)&mM7tf z)xTi7f*Mkr=j3o1Ab=Qm@X(oJLPErVZ|C3+LrLm=7aZ(7M>&40V#1b-herlZrKFTp z4Uqc@t&jH(>^J&_CtUbwcO2{=gQgUH_er>V^!&G95}bmb63|OjaD1#!m0+|x_h>f{ zclxV>j<2wt*?zws`PmGaQ@YM+bISxZfK0Oisoe=%+2VbW9aAvs;Atl1CCLc*`W zUQ@60le>V!)a|X|v8QcUQt@3V_2FWs;70WrN_aBX!IczMH~+%ye^l!)&HbxUlN6<; zpUh2C+ z;w)Ges`!FD!9gt+m3D7bQ}mwko3y?8ZFh8b1eoMKV?sg9tR1fkJHLrijkPO3@a~`Y ztJsfQ`$C~sxhD?#fFd4MeZdydeQ(|xP;aM-=EVhYQnKI`mN$U13sS0qm(>P-ypJ@q z`PvYxSUPeQ@d~(dd@f6l&`fMUWk8b~YD|_OdnVcfNJALDJW--GIapa`B_$t1C%__F z4e(ZSI8VfBP7fUhlF}qyUf**Wk!J`!;LWpUw{i!RABpMv`zY$bW&abStRs1G`FN<2 zj8}l}==lsHz^pY~wO;sNGRstxl#!Xv8U{6km{s!S3!9aw*fm_(*!Z~j^XFa4XSc9& zLphbN>h%`QKd`b8ggP45)<`=K)k(JkEoVju@c6fTrw-LB*xA{k7eN;brCGzL088tq zbvDyzIz4;YQEIdlvfUS)?`A7f-~h^4%-MO>d}rYeRL=mizME%~ zCrjwM*NNNTj#{*m#X^yX8@JeIjKG37upimOPID7-cytS~`LLZ}qpEG%#VMPtTaFrM z`ThM0;n^S0=YBkw`3H(hdcnfwyHP}qEg%dLWB^`|_Kh3e_-(k?<-www$kEjCHK@VH zruUoA={PlzrP?sZ?csI(H7zC{^dS%&+80RU;${vWSi2*0_br6D61Nrwkd5ics8xt0|T)iyJ z;QX#@1C@dli1sH#+~OJ(USSQ$5NQ!%p|{u%;rj7QvZjVx;}Y}cBypWJP~}pz3pduq zDoV)+jouTm{@IsmjCE1IxVs_C%8+v2W+0moP_GlHJmY-Ry!5VGG;(Ihxp*28?M}bu zbrTW^NQtn6R>4f>)2}|~t7h&_G8L5~^Ow4cJ$)5UoJlIwmcv3SGs@Vp2Sunm$P@A^ zMaLzh2(BGn+vg!%D!LAJz?bK8ldzky(6zO-3C?`mDQ*mz;QlH4T7}^b{+9N~ck)}> z^}TK;H}2f_Ay+y2B{Yj`@%84xJ!>SdT)nEdr2cuNF&gkxL00y?4Ly4#+KH!Cv* z_f=#GdCvwU;G$_0_DaueURhTS-I#XAj>8aae0`%p84YH~y6wlluuN7<@%VM!Q-|6< zha#N{xy!1*I`Zs1dBOk#weY0SH4VV&U}QWc?zTZsnV+VptFqY)g79>D-^!gn%0qfKyrS?)Zb*72;(lm5_yBd;$p-3sUc!x z727%vcXwKBc~KvdHnbl z`KtXHw0^y7o<_8^s5K5v$>)#U9s4$9J+5B|3OutQ!EH)@0*N=z(|J@b$Zu5SoC$kl z*KsEaApKvsbOS}>aJz z?^pqyP&sR`?It0N0WKBZeh;&$0p&hsa z{p#0)-G8>g`ba{oN?x#u_@-awg!AZs%1rxrr_^1?R|KtECskz<$yl3 zQuN^Q<2vY6F(}o@04mAL^-iJP#6S~(a4LxmMLmo_1uW%y#17F;8lY^HNt?&?y$k>G z<0iz?+8ccgpdhGazx73?7<}gaBo}fXjD`j{Ig#C^z8oAJrTY$j?lA3xjt$SxyCHib zUMbEV!XvU{hA8_3a7c@v(~vL+{0v0obV(h6WXhb@5p=3inA7znZ~`hWAxYwif8JP# z$^&>XhuV(XludFceO#&cgyA>GKyI<`_Esh} z#0fExIcSYi@yh@l{-vOQ01VZ?wf)x1P#Ww=WKq{|uSrhTtJ?Hqh=K9h466||tCHuK z>BFNroZ6zOtlm92iH6OJHH7QSTAXSYuD2Sjzf7!VfLC~dxz=r(PLp+#($e)6fr51q z(h}!QWyFN^z8(;LLjC8xtWUtU8^~W?OdQT%UXq`$L;E5PjWoIydyWXHJ*5(RynWA} z7{KiTSdjHeI;ECKeO&a~zGKHEwyi$)sw9O{g(XUMH4q{5kt4Bq8d<|xgQP@QsABy$ zK<|3t?;o3za$A@xGGQIe{D+;MWzv5t3jVYR}iiO()_Y-en{-^*HcO zjlo@>B;dt3*ix{9a-Lza?SxU20{JG~ZX&KF>Hy22P1nXL^SEpw5(_@o$KJcQnkeOX zT0X>gH$wmk?@g|ejEX7KpaSte_ z5uZMt^R!yCW(~cd^&5y&;pk7ww)=6f$+7}DP;N9ed-mU0v$$O7$CiRX0*j$KLVMv; zG&W8^Nrx=5cR*HFym82y7{2mV3zGjXWoFOXMiadru$aI>Jl@TvB0Cfwzj?z6F##2< zCwQU;5QqS2V4L?NS!FAz)R@pM6Y#z*K8JUbRBXXf^!Dhj=SXT39|!0zQc)G&8=tuj z!nH+s;we$t14W#g99ug~^-$qaV>_j<{qxNpzshK2%RrvQ8P3WQ-1_O4(6eXHBBg`= zX}uvmokTtU^YL-(e|}Ex#DDbr5b_d9)h`{U_XIpb8sX9+(-u#H7KvcCkN1mefS1!~ z-4vVDqH_iGj3hu0Svr+`=Uiw(;tacfKkYm1L<5vHUxSq6 zIs-0?y%2}k*w_dSPlX*rw0ffWqB_-qUL6}02&|CYFK&fMGm*N%DA*J;YK+*??{wNE-w#ZP0sF(=^ zGB0)i_@Rde1)v#(I;YgbFo#-+#u)b7s)w>sQdy~tY$wTPXOHBmg26;T2eO4BX#lcW z^7-@E{Y$^r3D5sbM$keLp_rpv(k0=E{~H3qov)-{NlI2{m~|0lzzaSla9~}$>Pb?C z4nElW`_8?05n6G_Kp*z~Lw9%NXwH?R-A(xBFPtYlcHMr*kY|S_e4?MjK_eU-Bq$3m zlohO${-jcFFdcb&`z&1Zm9Pq=wj%tF-?Go~0eVAujf{-cuZ@-i2R>^`leF=FstjaY zZGl+>#XP-)>sEU6WU=Uy9LecB&o{R#ow@n@a;a#GiJo!j(9%e?hlhs(?&u`a;}^a1 zW;!<|TD92^a&>oi$0#RikhD{6$eC3{6^K_tCl~-A@--6o zBr#~LD^_4Rth@#tU-ey|!rurG9|RyHjAVLMNU#+glIS3DM~@wtAUqnqx}bLqf~ifb zl`pvN-*mLUFH)>~bTyR$@$x0TkT{ln11+rSt=8WWVeXEPY$kkrpfeHP1nHUY`g5*mq<&|^{9ZycdV$qd^fG9v~%Qvtl~1Y*RS=}&w%q@JCfodar{1V!(| z0*2ji1%fc2`HzdK26ZLjZ?x!$_6Fb@^*bu(Fh7)zFR)wneLaJY`KmYzevLkSHG6yk zvJMMn4#bFw0zk+;>4>!PS+9vNEWt1Ae~O*5hheaoVA1($18~|UxCk_7&;5B6cM&Y( zD?*;1nF0gE&fN+(>^T!rRJx@n2787>5)nmje+Nq$ZZE;+XwIV#%sM{aZ%V%9iA~TW z*9&jPzAw}bc>fk5RUt24?1WmN2e<|%|3bnMB)AF!G-O^w>mI4|ffIlzqDwR3=wDF( zBEllhpjATz?38PBQg(rtFD3jM0WzYSw7V?lQWvoDxpy+ke+j@;MQOJ=8w*QR?IM*9 zb|l$u&}3xXb4noOyuq!O56wcVn}zrQ_=x3$%rOP_1L7DBPxzu2y1PXlN z#EG;AZ}1vC4rQp1Cv1ORpB!#&4i|riQYCrmQY{?62q2?q;0x!%)c+tnKH@zjRR!2e z=P&rQ{s4rIht-7g6b&I&qZHYyJ}d@g9pP+2?I0572+Q_goxtsiNx?+EMOOK&)$~yF z?(cek?$ydi|5FBExxKsfhFNh@kpZ{^S#|`XffX6G=cxlr)p_hWE+jAqGENjwP$)g{ zH-d0bxm zkU_xmqRZl-CLe}}NYE}8rQMybwP0S2^-x&f2YQ>RJSK~>g(QJ`W;>^W>!{Ko8A|A* z+}S^m5lsN&0$ve@iMdMHpw(zkJCPa#zGlS(9$yO{TG$RXve(HplFbAuai2|1Z$>ZW;4qje4GN6=( z%n$`R;^z`hP@u3**;!a5XxzffoH9rL;x<}&{lLDLw9By)hfAmT}*`4JUPNT3+)H4(^zjgLkiDXF>lTJy*|@p6YePd^1u)|P`JLH)uZpY|fM)*ETpZ!;K2ArX>0y|o zKO-koCfXl`z#<_YBq-HxwWok8<03No>X46mo=OxNH71>h8wxOf@WDT7i`dbpNT9HZ zWEy86DnT&V1j2~}$iMUqVuh2TTY35IHYNX1Ypr{?tnX<1aI4b~Z2c=14V&4u*WJT| z(@I|Z&wZof+b#3YXHfcG!R!C|_|MP(+=%~(_u+sZVcP(yCu+53bPySWY!pg!SkHR6 zC5EK<$!ajfYJhLh05Ty?w?}r7&NUP?VE~S89kKA87wvU)bzKEG|Gdj!#8dA0-~P9K ze4otC5KI5N4US$PkI@Z71cMB|hTLsfgqDQv%ON0;^=S&x-w>p_t`b2TtDD2+>9Q#B z6!D-z8!nWd3C_8L>S+}hx{#Wt=jlcv@}SwvArIF(b%j$&P4S=eGUX5i_nVRO}!6Eq!LlXf<3J66p8mH&XGl zc^(xNwe0e<)j^?7acOz9VcpY!?Yp86v>iIm!`st(sXEb@_sWi*lS$^jRtGn9{VNM_dx4vB$omX$z}T*b@)us~&()ofyF$I@)9Mu+YR)ciEA~k5 zGu{|>E66id<&lWPNOF5{<%;ERBa3z>mtUQdg9n;NJmRphLpnM-`p_8dkqCwE9$2A# z^=dRU#He8XR24&~j>V7nH{rVdbt{A7@izLQ;UU(hgzk&{-)np$(KMPct`=WzcNo>l z5K;k=Ey%z+-0FTrG?X!;4W(f~Fh^y4ak`xYSuwCx_J;aIO;NCZqKt~)d|%#$C4?y| zjOJTr7P`co*pmeVlIX(1`5b3V!IkS8ohb4kdqK9H z8~iREAv73ES{a_(kjZ|vTzf^7(z)U6kspJDs!{K1?*p$Jf`8C7z*F`1@p%m~1ISbl z(0OvF`p`Q>s)5ppz63q?h2iwrSoK@2f)w3y`tuhqG`R%dT|NR>apm=;D&nZ?XsU)C zIC@kT_DbH0sy}VCcAp7V?aGts%R(2nY}rDZBpG>Q(nn*GE=Gn}<^KKq1C7a18qTvi z1k$@|eQs@4KX~vUc~au11CxU62iPb?s5h9E-iJO*?BpZQDI_aE90!NtOo_I(HpE)+ zlg-Vl;7qk7kBDq#oOD-=5iXC6#4+{z-3qEgcxopdT{LE}$z1wz-7<1B2TqqXnZYR~ zCKL%p+;<|O2=sUi)D5q_u(m}AgThjaBg;!Bsq?CwyB0AFOGGJ#f3TeCknO6FC&;N^ z@PZ*~BTduw)n-Vl$0?@96@ECMpXi-9_05T#4H$=5s#25bYdRxO*2(%CpUF9D3yVZN(ttE$z!MxNs}2wEf|MBW?)w+r&hQ%_IN zj|ByRMJC7mh!gEFb_7ua@ZL=1{Sk*bK!$+vFshJ#1BjOLg29nsZuC3) z2G2L*!lP*&%>A6lbF3y39tqg1+#q%#QcIN`O+?iKSp;pB#^X#ld-m*4BO;eD^*@tf zj2S!H<&VITD~4RUOot#Z31C3%w_|~r2#ty2OhQdsCTU`zsag#q_5)+rP85viDf`YsxpRdL5G-%7o6nAM( zSbG2d{l*dEYvK1*!=yo(sZ_rcz)21f zpjetU-{6gV{JE!88Ens}qIF+a`U3g=@Xm?QgNU(jv+$AwR_WBa5718dU<_fgu_11PdWYii92F)U zL66UQ-E2iDI3mGZN7_(!*WCf z6TX7lDou@s)*k8?!vSgf+G+DCBaz?FyTpE zAPe=DTnA}jn3D!ue#aCO5pj+ucft!AcaGh7ElU6F%na}}>*2%VBnAYRo)}hmXN|pm zm<}P*D;XLAarb6|`DX%cvkK|r6nL13_sNq{nTYC>(%3COO-@{lq})aEEyd+AGI}q6 zNjGX%^7HdU5~zlZuB6ByS;J`eV_TFFVkKUUx9c&S6T5t11xrP+sEc^-eE#x$zM+Uv zYopeOKak_(stT&;HK-vEp$9`1f)xKdAOfUKQWTg;mrHOtbLKA7m*QdxQr+MUpdcWS z5VC3=4aU^Y+hdFrD~u!1=C@b?Tt3kxUotC@&jc>45d z0rMXZoXTMBGE>lT-hAnb27Y>88!Eoef!f&Ecq276CXs}h@co7+KF&QMr`YB=ei>n$3&X?1P?xVj zkKn^u8I)>R`$LOUKO4hKeR&MwgAKr|7v{IIu_2EZ*xZ}REqw!1kfctLQ#0X^q8@<1;Dm)9L*Ua9-PkkjzvuclEmtraDqf82z zb>0L0VQ9kOG{c-I0%IiKf-DM>&N1k{--0_v>LL=E)~sILhj1E}YVic{h#}x2xrf9` zK`qk9ts>W2^A0w9vS@e`0)-qgmQi`-Ab(7h#GJ8*i~d8?MFy!&J5C|?Yd*uNsi}zp z#@E-oaPM3Uv?p2kdk)h{?&o1`N(f9u=!Jt86^v?A;F;*nG2 zv0d*w0mGDfpG*RVQMR^DE8Q35v9}Vu6jcn(`J`nVWIMI-Z%L6ge^#>b5hf~w4=4lO zLqlAM&|{2znM|!TWEsQ<+-Me%uMp&4BGQ@Nm2m?9y?W%5NsmS zk<XT7=JNSV*of4H+^)y}F4L%NqH81cxP8 zip1Rtvbz9WO6FjMtHv-Y_N`qdT3_=P%J|M*yIw;_f)sL%L~Bt;69)5)D)Yl`p49gK3E(^F zg4v4+@Qu_Es;4Q3?$`E;v4Z`F96wA z(fRG+5?eO!Id%@C(DeXs8pgM;UVTZVzM)KbK;b~r4)L??hPBbph{_0ytq;eM)j&h+ z{fds4fMXSWImT;nR6*|Y(maVQrNFjFBq#qP9ZaG|_O5*Z`*3-Pc>pL|5z2Mw&{?Db z*=_oMp$iR}u%0@ORJ!4SA%B23+!o|eD3RIyIKwCml1FXZEog;P;!cTfzP`RBSVPPu zKr^JaY?=~LQKS>$aVbNnBq1ivrLo;^X&43|hi{=r6HTC|a2{c6Hv9u}x=Fq-=Y*SA zd?G2j4}mKZA_1vLwhE`{>?CJx=m(Ql1d+fVGj4)ga?8LqqXTpKc|b zm?Vzz3*tO#Py#rV-uxbBfI1!>9eoicz8cq17bUYFu8PmzaT2(~cr6KB5#t}Ydd<3Z zaadSnAuPuK}Ly`QdpOr~_b+HE7jp-F7SZs!*%R0Zt?q2C;#t@?huW zWpMWiD?2ML9{7Z7uUq`9=a1v}Jyn=v5UfE`9p7Pyd-EHMh~S-ox8W+^^vAE@j>Nqn z#w(5pBROgic@B&zkaA{gn}He~n5X|I-)@@B`zB3*iHe*)wusT{7jABY-9;pgi?Pki z`2AeUoj-_RfqWez$>{b@RFbQ6)RS}2>ZyF>@7GxHDzr( zPZRA9)&fsG&aA6wl3}B<9QJCK<7`qy^|-f?u<+pNLoKmj9!xSaGP84Y^){>-=aC+7 zmio1J?b>>a6B&xYQUvd#G+BS)+tEUYQ!{|m#wI3yEPSC?L4+TQaoo$7FX=ratylcg z41@Q$asB$YzC!FA;HhBtP^>1m?)kI6?qrFrq+;!wzI7mDd%;mM20&7B0O;>DPx@U_ z$uy5d(xBj95v%w2e^t=P76IT73f>dI44G1bkf)oQ#C^Bz|4apBSdIRZ-NNg0Klq0< z{paU@?)HDs`!MkM%T0L<(tuBt(?5RX;ZciYTCTG2Vtj&fS$*6?w=qrIiAJY*_n{#6Adv! z%UTM^Sz8e#MFNsYZ*E4nnr?T=Z)q`Z6?)Qm+o$n%!YJLNLit;x8SFsIHf?qi2+M@5 zT)FaRgRqd$3EeU}u4_r>To$_as4eccC@IR46 zS>coACGU(5X8d#kS%=Xb+-BFy0EagBV_+j_Dp5WOK4uVcyb9nzCKOQB$e1x~Sfx{% z2!$Yx8t9x*XAoag*fU^?1c_$e8<=7S$i0v(&7fmdlR+vwVr9rGB-GdqNP!xV`7E4Q zz|O%TMUbL~%c2#T0)vm0R}jZXq?x4TWQ1Cx&5e+8d9Fp*lwo!Q*WBU=OC}cbxuE)j zZv=XW95z4E2&GtPek+adWlyhIB?}c(ihS>{J!DC2ALOhs=>7ve#!snG8FmyqN!hkKw@OXDqZcYwK z(2)^dggU3%`M&2@;i_VRyObKC$~*n~unsri8IGm2U3KVBIg0iR=-Esakkox!NJxkz ze90M;UJ(G{K7;x8lLn|@vFMbM`o@kF)>1jB23V*jo*3 zOim22$C(n$6r7innE2LM|Nnqms>ZF66AhTH9G6&U;H^c6I=;>2z64JCiC+0y0saQof4LN=H(TJvnJJuk|itq^nwRnDB5B}A0yO4Zb~(fodI7O zNuLAvBiOEtINA{N(I@*(!}Pp3p8-7$#;X3*G7l^3S8|vDA&oF$(2O>2-dqPhkHggR zB`ZzeUgabZlIX!0X^e)tfE^V<&OiviC9j|m0c>VK99O5g6h|i~D+sdWU{$<^RiDG` zm=4M7Y34iAV;&=-nj!bUQ(!C1gxhs4cP3+!=gE_L$ifNCQa-0r&`=T0JOk0U_OCUY z_BD|$0Ahu~hl(Zj5eziR>$i?Q{2xSAE5P;!Xf<)I?Mm9iBo2^|(;KrkZu;{C{9Cqf zxI={0xyrxN%W-ZKCglB3#8iD;9Ql7IqwZ@e|MyhS34>xM9JN4^mz9-`|Kx*tzCUhw zoiheEPQAJ-n^r$LGN@7cl2;sO0Gef3&-~INl?D@H`OqT{MXlSl8^>Cql90UK&j#Yq z5YULzLF&or0P##>NWKI)44=lzZ%R~$vjKQS;MKpx)nq4KNFuQdKiji?M#fY+2Qh$1 z^g9f>onkUZRV3;QsUx__fE?gubbdHt4Afk3B7I1jhMM}#uOI-g5TJKJ@%Fsr#yzTb zT(=U`G7rHV$jQms*t>%L27iDe9z6bLC^?{!7+X@L_ygCc01XU3D_gqlj|-xf9U!pc zI>y;>PmnCSND_8EU!6NXuA#_d^a=)a82l&V5GW_8RgoD{a#-!%b&S#G+t^rHFG5Bl z!42=AAPr-dsS&(~Z#&i?+ENb<7ORRJ+l%xEfr|deZ#@wKIyTR4BPS^!2#>S!E|4Ud z79E-Cz=;B+d_CTC`~q-Sf~7O=0zz@QIM~lCVtF=rImY`Nj#QB#$P?*f!g6yLq0th( z5lwWAvsSIMz`N4f=Se)Ena=%yPtY^WmVPe99x zMPkppV$^|emOGJIgfj5Itj(t1{NLARHF?ID&<+|-B!DI3P9*13{z2NuGx{s2FsDKw z2*g>O*%XQckd%OH?K|CBaOBDsw>*f+UQ8h5`6ER2vC`fO#mP~Pft(Bu>--u!Q{XYLetLKM_5gJFVfChM3})%F4u+mnbBX?5(Xsml}IJu@Uj_`Zxs(WYp&BoBW_}#3|Bu ze;NC-oB$IkoM!kH=;sBFCjIIY6f|t92F-EjzI|%L_7KTQb3@ddUCQt$WD&0k9Pjfj zu`$T6&LEY=N;*)W`zZH;17iD~XUKsyuK`w7phne_2oelg5(Ea$Qi81es^Z#nl)SF- z$w@_wk-b27#O5nGN==X!hRnvMryI!m++-RP<9%={OZch9Q6o}ZT)Ccgbai!2h?GFL z@=};R6rG-Kb3ZZ`c-1>FaOjvDOIH!jzJPD;gD>Qk?Z>ruSZQy5So)URm67ZX zJ5-VPj$2rGh=E}}=r0&3h)(f5js#z{=_PVMV4Xuuk=#L*=0Bl0)Mk|y*Ir(J8Tf#R z4ur&Gu741@(z*Heo?Q6@v&ywk{qYiJn4)fi;N}nMp=E ze{m{+1g=oDqk+k2Cbt)O79~iAm=F05xK*0nR?MlIEc}hftsBd0-=Qu2FUv71I zF)^{+S1W#DclMJfG@5}Rt-$5=f07urQ32d5uB!_1QHulo5IGr6Q6hPY=zTP)zPq$GAi_R3xp6BBaE0bqeL0^|kU14*|ZeSqX9-J8mlpsZM$f8-TI zkZSWgMH`x1Bn^X;kI4JOy2u(zYbJ9A^T%B@ zjJ+TtU^JE`R+1sEAReR=jUdFx=CZ|0H))wYn{|i{V%* zoFlqp`}T(^A+4}!tBk`=)5M6(mkqUe$R15Up(9krkD8tH2*F7o2?S<%WH4=0*z?dX z4PV%!dX0gG0)Tv&ZT3h=CGOL!hiq`huu&H!*gx8kaG;u1DVM48m_vDp0NO|yO}IwH zr+9ig01%8OkWLhoea(9-Y1IH!D<~_k0e4YNp52v|Fu>uHeG9q>c_;1Ilr3TiREcJr zpQzOAU$BzHQDAhFn}gZ5nC34(s@X@js7BF1_qPT<`4=xa=?z7Y}xJ%q5%p6&J7H^#6~ zVhI6AgzY$(z3g7wTQ_gs3>!273gr6rDdLHnKRH~XwUw5Mnw5l8+lELOm&y%=QZ;QnZAQj^EGCE$tmMmPOE|4zEl?p zBQ9Uf&Wg9Smn8$|WRb z(>j+sR}>!;5@pnyEAzXSR9UzBxSjgw*p_Qs#;SwK$<61E;pjD3epc$`zD)kmC7M#c zt7TMnqeyg&P27_93UzgLAqTN7+X#qR+5RKeJPnh;8?s_Vxz52YG?}{Fn*|k^elExF zAr=@_9ryf+4{Ml8U?6dE=%m7t81WJNaT5ca$n22fia}T6ezZZeNgZwsPbEUp$or)y zt#bYyI&1poK2)TX6?#M%ig=a65z@hH!nW=~=p$w!qJjO_t9!FZbnZ<=>y+L*H*DOP zfhGsAXF9xMW!?ARe^1nY5G)@msHM5Cxh!p&5F*m@6rZ#+>chRlPn=qL@7n15_pUWl z9?MOT`(%c_eS@r-22#6h=l=a)Ly>X^@6G9&w~9WU1Tz;|6)a5A?;y%PCJ|Et3?oqr zaQf<1Bf>bN!{!WA&lVn+NneummY2_Cm#kWp5lyZ{0v0s+U;x_PAB4?M2*&cm;*@JU zbM!=O>k}-G(q&T>!)*pH5>mz- zB@oQgWcaCy?w{D2aOtQ}@zJi9=zN-e7!JDZm{arS%}cbqW(Q+Zk-DA_9sgu+YulgU zy7t^yy57lYRo&u``2Lf)-b|)Unc|h4(|#FAu5K)QqcLMV5}wSQ!>QF6OcChW6yc*t zf4{wA%x7UP+XK)7Ac$d3fg^65d*S=0^p?RZ5S|MHn&g#vW7jQf)prpRyb86keyG#> z%{q{L@#2vS<9=#vsTA39>zbfiwtQ!N3BUjKKfi8#68{aKLtbyuGaz`1NW2)hnwkdy zOtLGihJ_9APeoP24O#po(yk>mlQdBvKBbv#SHxxLZ>ybtZWH^~49bAp{tm8Gakx+p ze`6XFm3Xmn0R)clF8OS<+dE+fksMT1WJov7QP2-2lS9hKZNk5XX|;9#IZS(C-dS7P z2hVmrOgX0NkOWSLAd^#z>%@VBGkChcUL377tf=eH0JoPG1|w}s{J{G8RCpd9iW&!$kd;to-xlX-emJ4`hSCQ?>tQZmoTo*!xby`1;FQWJWbQjw2aF6bnDa3 z1I%tAWt5)^t2dSI)`-W&sUV7Av6gP?JYUk@i-+H=cN75+yh`tB`vXxqG+Z7ie58Qp zGOunMe%FQ61*xK-m99m}S>z(u4=tuL>y)d$^3 zANND!8qQd2Zl}1{)J&)*r~GuZG0;*HK_$09#5dUz#UgkpoklvU+;FP8K&;keX$YT5 z4WQ{a6iS|}Rk%#bL(BXTmJ(C-k5sZ>|1T=p)Z2AcA`4`)RgrxtkE<~W%m_T>vUd-Q z>9;e~f#fmO26EI}qOm&Th%5#oa|$=#OxAF1`DbtJPNCi8+zy`mQxgAbIm7~Km!TKC znKgb*t(|j&EM`Qv*#JKZ@em*&wMvX70gHs_23F=$HA3oe3dmcN2t-(8s7!uh=$-LC z0SBBWt4`CUJc!*i7fGOKE-AMKB$YS}NhMwH?9BZREKECqk;TxxI?bQZhVbgPZn^iknbVx7`JtW`M_{F%&x|;S*LMyM&tAc^$Brx-bz` zh59}n8Mri0D&|4~|9vjak*BAQU%t};tN$Fjs}r#-Rb6Q~d-m*2sbS#Es-tX2lXc}D zAq``?M5B8-UsQ7eOQISdvu#U0lolR?5St5W5DSK<^31EmGy44~^ z_tlVe6chCgW*xM?blgYZDAOd^gQqRxohpJQaR@wB2s1K}7F=f~Nz#y~6{qK2tke}m zRL`RuU*)uXDGiFu;37HsvRfGiwUfBG*)a*Eu4PPqFMZh3tYwU53A~nCmteI%jLH`< zMl9ih%$)k-d?bJ-b%{9l1ellH=NL*FVAk}Mu+GR8g%l4vy|Q&Hf#`W1;I@p z`kx_r91x}WbQv_T92Ov5_UZ?RpsyCfDLqJPpdZf1nRv15ZI1Q=%ms80~<`sIrkJFwsbop%~I{{*t$ zU?P0^@u$3{6+PhcQu%Owp>(QpCeT{J?gz*Rg>J`_HgK)oUm@M3i*%hU2yzyPUQiH# zS<`BluwF~iV8A^+6(F1!C86_OUHc5@#Z^xMAq*Xu_+~6!p9x0(UP?hrxaNTkJ{Ir< z3MZX))HCR{*FKaMHQhckTw$0;%gi0L({o~h`%BpfOP3z!LyFR!y4%;c@U>aH1~Vo~ zY%V9$+E%Scu7vOGHY%5u7QVg|a%f6ZftdY^WkDMc%4i{hkofnA#Uy8;GYRKfKF8#UE5b@y&Q>$aHYjG|^3;+dLA*8O{ z`wqw&zrIS^vicr5-WZGLo9*4;4m86r7rvj+5*?AgVz29t~C%g?|I!nLu`Fg z3+FBb?~_b6(D`8~8CmY4qT#}d@EsI9*}=agO3x_kg4_L=p4Pc5k@o>cbhoVRff`T6 zlrF8BD6Woc)*~b%$Rx+R>?0LwY18|i?R(MtW{!?VM$?I*it<;WZq&<`9+wt=wKnuG zqS{_;kAEeqJ^ta^u32wtYWg7)=C?IqNI)?k);#Dmk>vfSrzNZe>@1C^Ep^wZ)8Z`Q zffrnc-7qyQ3bXDuFNyF~ioY0vu#ks2h!?IOSYJP9W=Wdd6JYxt`t46)JH^wOS?<4GXcwb zG?4R?H8=N;&b0DM&CHx7?IHl2MAnh|#%_UWN}<0MB0sUZxZn7R6Ad(V*JKT9Be~gi zpGAMW8GA-rOlqU|~op|U~^zz$}_uf>T z^lDW8#eT-g`5oAUu;HW#aK=)VNyW_cyX6pT1(V;3K)cePBF`$^M1*L!Zq1OeSGg?c z`9h{BCfy+-d>M70CL|I%slb!|HnUcbAD(No5}G#1Y~KC$+DqY|!!{NuQ zi5HVQv>(2b1uRgF(xm*y{_*1y{}kVDsx_EAdH?)y>lY`WJSfqO;X#hI_OSZt{^kEL z4!b(xz#FVA2L4b!qKp9V^*h**HO0c5mkQvebDF<|C>|pUu zuAZ*C`5A>8b@$~J^Jt`@*Jg#re56=Lc_MxZG=klnTAmZT69;EkZ#KsquN2S5Rh`{8 zN~Jj2e_hwjUm&0sW`zGLfMN$3{;yE%vqGTQ*d{3U zz^v0J=b6(#r(t!H_=2y73^`@m_PxZJ5x#yQhd0^%GjMio72Y(H-HMSA7MuL7tU|26 zsh+zi>__qTT(~fdSTRaD1BzD0eO_^J{jK6xGSan}3EH4jCp(kxoA9f5=(o3szbS3? zuCDHE3!clF`1leb+g1(8dX<>7?1OAeiA1x@IcwSL+BG@W(k|X;d=?ZQ(UyamQ^RkO zIfMm{x-~U5A;{B2eC6M2#;&sG$r1$Q-0JDLcDfo|4p0qKAjPKD{IF@0(r{D!Xf509 zzD4?5gENDvbp*eGV+t`zN*rZtT&gPdykRS1+eHju?W2?tB$&ARf?(CGUHf;K?Z!iY zkJ;8+d7aUWeiI%rBK8Jf8%m0sP%ND?M$EWcr?=06p`ZL6R@(xW^q*k0;&_oEpHJY(YTj-~2^myD94$$DGY- zTE`hIZ&M8IJi@X9Yu+v{n*bD{o@xcGgq<2T_fDR7`~3LT#dkP7Wh{=Vb|E!$Lvfb7 zkut|XRrk_2DP4J;S0o<@V&qd@QE5xB~D@y)?;ZEypCaZkS(_39{WTM#Qq24bE zt)I`21pOH6AznYI=NC}?8G=KiBuAOM}Zf9vK+noyn@1qSMH(E zX}IX|gUSdc9%h;w=Uqho=)Z?|$0aqwyCE0G?YMa1f{-QBl9|opx~?E+@UD{UWlm#1 zwB0yvUmb;}6O$9lT&Vz;>!(*anHjh&srW;C`?c@KLR5PfiafvYC+& zD-dNN);B`Q1%%pBT|G?Ft+{wJU6PVIvzL&b2xTft49*h_k-g|RDF!7Ns5mXaTM|`5 zQ{#6;Fcrp7B*1@B%z+0X;SafwaS$>CF-0azU+Wm(+Zu^hb5l6c6mX+R!bK3Yo*~+ zw{7IVQQtC~T+$lFgo=A zyM=V749*~`JdaBd54`PDR_g+m)GlDN{km!om-Y@~QyQ2F?wkDJh zod?c0rgJb~b)$vW1eEtISagbC1lq4A1sXw(6kL0?ZrwWLb$tgnEMA4jyv}xwzvAzC8~zMh`0xAcy!yzsOGqmi*!e{W)%dbSaB^%m@-|Qt7lW3jos)H9YwYtO@JYV^Tpv5 zEtL8*#k)?n{lIqZy!YuHIdMY5lqKSgf;`T_hV2@zNRH zjqwK8m#%j8v`?NLYAWE$blr+y8dbcyx}rvv!idAoCn?EYcS7s*Y)aX1DqNxJI&Hml zNT4YvFx3jk!YhM*cG}XIYT~18bUdG1LdjqAdlWcXO z95qoemp`}NCju1iTba&hl!e<3(2LTCE8KpaUx zAbSyUsAWPbqnj`qG9@=%a>a4!$y?%y;NIZFdo>u70kb%qq_&|SzxAmygmS>g3 z8%VCa41!=L)Ptah6{`p}LVQ2mp6!TI0d={M>h~ zJi1xl$}7w@r68qpEArCH*{*>I_)IB@N}AF#0oM0Y01Jt__1jE zjMAKhd1#wvfT`0s2IRi`O-pt3&K*O^3!wE7_aCsk426Gd8@c-fSWuY` zAe9h!R9hPn!2$$9E_}|;Ro)ex>}0Aqn^iFa!7w~%WQ&8xOh7^7`Cez{fvNGh(} z?|*E3LeF$H6zU(Nrc!C>qNki@Be@3}tat5>)uCSU-O%4kg^aQWfVJ7nIL%(MIXqN^FEsm zIVLVK3lW#{29N^xWkkGNEr5lj4`5}Iw$4*8>L+B$Zeq+MSfOm^Tf<8l3E0Rf=13Xu zO%tc=sN6_6J}Q-KkKD3?B|bniIUQB>5$qlsHFWEB-tl#?6SgAl@=>P~^tUo--0*;j_T?YKRo3nJ^&s9)p;Aj_ra9kqtZ>fx=u51*L z#o?ml1{6Zg!D}l}GQe^OgdxIsEE;?pD&r$OK{?7A zM3^|Sl!jD1BGLg$6hXGQwLeNcA-XX3hz(b1!$N7Ku%0+Z2u*n`fJquS_cHNBFPcjp#f(_rJ#1Rw4UgZhG5c@7V&Piaa63>+?`Wi5MDRw zj_$meW+%Vu*Du5&7cp8^m&R!9a|v736t-7PW?l!OvO=IapgcycMKUTs zV6h;wJSIYQ+$m7ZtIoW1761*<+&JRFS+0ATD=0A|r2an@DO1{Q*(Cx*qSF&uE4}xq z(`XuEe~tnh9pD{7kRx%k(rc!zJvlcNNrdVs)XVup7U(3T9aCc-w9L8T>Xcb{9Py&$ zl(D3=5h=6jZqunO0!qXNZ5&~k6!wDaI|!IW;!5e^dV?k&I1q-=Tc%<-6$b@~*`*(+ zqv7}+%Mhe6o4sbJ^-pbPMRl>o0@=Ulx1AyMOqGZ4XaUg7L^YQ6>GaDFmqpCx)L2@t zb4(MS>@JnRRmC;{iOk?04F}@6+RZIIx}BPO1@M$xO?X_HNh(Wp6jPd*y^^Wgbe-YhN_m zP7D)wgXH@O*TeIX6T4RA5Dx`L8qbl)S?Y6Fpc0Yn~nxF?0|Ly+X*I}cBCAAFMz{$+! zf!9rcj%51`-#b!Ah)8X6T2Vw22L7@Nolj+=s6ufr!L!A==JL=a^92+mid3$E zN)8)?;J%j5Tv#<{UUQ?18D0ZlVBFkto*Ng|ZW*&OSq0pjcdHK2-#`UuQFdu0?j^a4 z$upYk74BYNC%S6T+tZDHtOwo=dPwZL;O^Z`&*NtiXBj`B?Zk3`ks|np$~QU=#l|7K zi@W-Jv1u3#b_~c|!kn=At{M4w8IhIZ+Mt%9hvI6MabE0)1ZICv zb7gRxL&gI<7s4X&}Yn@}oMcufEukgeayU?f!sLTIMlBIEGGGgejPE zalhn}OQFm`=(yejyr5K{p|BF}fr-oTl4Uh?P7w!GOs;4qooD981x|JG5p4*{J?`){ zkk!0fcez)obVKOU=vmfiudj#O?Z?xDJdW;Bw5I30W{>$a>EA6LQ@a9Mm(%YUCwqxR z=BRD?X;vpSwNP&5texHsZ(h;v!}f}HA5)==9MAo2iiJc#O0Z|;2nIC}(j=W5Ot%O< z5bk{nt|i6|QRS{OiM_ONlDm5)~lvyxfj5p%M6#yGHUYkWlm;HZ0xEodh>Y-oS>#7QQztSKxCVlhBfW z+tPxz?!7!~PQge#-D(dsI}Z~Hrg^1AB!j>SM=W_I1-f*ifG+Zhi*9*1N%TbmF|2~r zkFdUX5TPguOVg<~}|oPh%IhZbp~8*HWUsZcdaNCX)F8o?tT1jITXVzz%S|fx(-mE@h3_(aps}B*2#Wv-@F-F>e$?p050KZ zB&`~hs>XQEoIPTq3R?I*QutZA6Mv|Yvg1iXK`(v%r0TZsR|TCsy|V<+&&3v zUP?fYx!-oJ?j5Ux7?4hc`e}Ua)vhvsme|%P#E)I8jq?U948&+_vw6W&2|(nV$zJ;%I5OU(rda#aeQU?+09p~5U@d<*g_!Y~m!ml@ z#9^3QU$<5|T8=lVrBKxfX@Y>pGNGKpORi*z6ro zZjH5j-}!3R+2+uF$z54rn_Hhy)2yKp_1L$t)j4yFS#vpeCIydlLhwCNWNyEp?4TtS zt9{$5&ahY@G&5+tC7FfxVh-txjp838WGGR&v-oMiY+{#};29AI(62t+^L%IL}+(cZIeh;X!hBM7VIP_7Y z9@Le$@o1HW7Akmngq^{sqY3(|&IosNC~V%SWzM+J)+7GJ%LpA_EazNWgD#I!Wp$i8 zCL~RMBIRlYhDx!LbKX;mi7gVL{gN&dqH<)MaDxsLO>HkFX4ypZi*b^xC!TWEQQl>h z*b=bzNoEN7Il>L|04ll{l&!3Oy@G0N8l^$-%L5=L*UX#2J zzDKB$guTjk!!&*iG~lk)i1^?4>$mPpu7oT7sq!`^U4)d&jZrZB_WethbV0( z#QKjZx#4?%<&1zWIfAf5c<{D1Lj0j}MPJdFf=NXpFbLvEv2SV=!IP+}1q&mtv zQ>yrzNx{8lqes@gE7Z@7osJF+^R~O>4kR^iWSc$qe%Z{v-ADknqyBwku2#K%3%tVJwjtZ=m~*fpd@l6>%MkvZ(&cK%}y zsxo_5ZfME7ij}FAvgd`srKY?1Y}2*!gu%V{Nm~LF%`%K=XuZWQfs%!#|COfZHGrIh zcH|ZqW&gi~T($1=Z;>k-<@EGyv_X~$2BoZit)@v?&psiH2qoNY4kStkL**Unv}7z3kJFu-ExDR6~i>y zr=lLXsQE7V9W8?lX8?rQzs*-bY*AAnED5AbZ)@}KP_E1a!=A!}(r3^s9V79ertJ^c z{(}%#=}+EVF8wq#z9mP|2>oh0(kV;ViTh|R#KH?DXac$cT+e~`ng)Ia-%)N6DlF5I zHyTAU-I>l`_8djEflA!H1RhFrDZ!kw^ex^!?yS-@&E2(Y*MqggCUsPP&nW0Xl<6;D zpMBfoEpdN+xj!hp26PyuqDy;X9CD#IYCE1CeQbE0XA848lESX@L#w&drcDdA3fn(& z<>L_(8&5&Ytu4-(j{w~QFAvEmJ{erQHmSys6TiUT4vtgfDm@%voCF;w^k@1cI(LbG z;&uz!enm3OwH1#PRi8)Qq1?CH(7rfy15VQ*5Fayv~W?M^X5C2-ZOxO`Y z)gbFhH4HsKfISke!yWhIrp$X^eZ;{xLSV5B{uwoP1HC@r2gi+O} z93&L;B%&pr$|ZX>SE(Z3bAkJ1S|zIA41mgg+s3OP4K$Q+xF?1*Q=F^ijb+5ytyocH z)0AkL{(ft@PBhL=MUgNZ@j^gJ^dfU{VIf>_<#S0KAlpE^`6wGDK${E!ldvmc@AQPX z$Jt5dD{lUzv?q>CB(NOzcA&|W!}us!a^B8a8uq~AWOJFL(0SMO_24cWD2hKg21}}p&(qj?_Lj9)F z{7?x3iL&G#fp5K8IGF__HR)A%t$B4-pAYQ(sJI(=od}6-w)Dw=Cg$dT{dRhLPj~fv zIVQxV#k{F-L)9ai9OlIvSeZ-reaa=sDJUwrD7t;|2ufbn#Sg21#;?@9Vr`Tyi*sJL zjs{P>A!$JOJ}Q;rlK0M4CKfN}Di6IZ^ApAOBpz;=cc#393MP;w2X4fhU)`S32#Gx< zozFxsl7NW`gK3eJaTUQC*M>K@mShT!1p&o~xe@0`JNT$-5Elb9$=dS?`cS z<*Dh#nZpyg(glD3KIFm>8KJB1n12k1C7vlOycX3ecvWq+gHpebzuAk*%DddhPfzvd z4?rjH5arlS5%y;=Sh^x`qU?!9-nz$u7cyhZ88r87%(o52@xc+36xmCnuP(s1P*@ni zA;HdfyTfF%Fvtnd$gGVUH}*0)VHj?9E90`GsSB5~&-i&(r?x~!_tPU%FN`aa>T?AI z74%RBx2}c~J@v{seR6h0S;ajn_b%*-Pz#lB1S!jJ;bF5OG5Bir-sezC*f1n{PX>en zGl<02@4y`2H|(fG6hSgtPSmK-S+zg*$hxhMI6103=P9{t>({M&n%u+vY=Mlh zDEWAxN2^S><=i6+6A5HQ5GtuVSG^~oM<+wWJ7+rP)jGz2HB zNHlar5uwt&89cCGzcjYAgzEZE{E*gRit069gMI+-P>z*v2Ew{fnP}!3nJhf#s8nV#MGs=nD2;LN>ADv9 z?k{9i2n9?Hbp;+%3itKpglc`Qgm;eaymi=~DUv5eL1X|n^BiO&a=aEL@Yxwz3##B)@Oju44EfYyMx9brGNvRCp9jk^8 zOSCVu=C8jLWWnm=-?_zHba)Kj3c<(4(7-Z*Tmc0A_A=+6BWpK;a#3f=eB%{3z$@1> zqir^%uP;xSO8K=6+Tl?N5}&emR)cQ^oQ=P@oYO4g9dCTGa`1l{XH#~!Q*;mv2wzO)vw>`4FTb$FqfZRy(93@B6mDvSi9X`6n zr(B|UQDIBx%n>1+kNAJVxQN&;cU~G*DVjpM5-!f#;#o(zi+dxO7aLT)#kp z@n`#>bL12N5*)79RiV|XalF8CnwGgqZVA*uN8zFyM0I?3dXZ3|+v>I*8V<(T?`GQ+ zq7C~$gu9*7-I@JsZL(wb9<;x%6V+xIK>%`@8Br<~W9|)L&q?90>{#K$eNs$5W4Poq z^6a=1GRS9~PL5KB+qomQi_)fFf$M*?<9~k56Zr4` z9AXVbLJnI}-L`qmp#O+W%RZirXiMs+2FQ(ITag?Ai2ZK%tvDB%*gV#U{xj(0$y<;1 z(p8JTK-`nqm3%!tlc)O6G&Ma=nIZTEepQM6C$B98ZE7$#aE4Pr5-GbVh&d!hUi4Ad z^sm>VyLf2(-sOz704#tbjG@{m;*;&$w>xbKbNtUJxDG~3njs}DKvk{3(U*~wr!pXI z`1+Sm=GAF69RuFZZmm520ScGB=8_{b0(wtBa3ZO`wp?Otfr5PC@o^alV*{I<;Z%sQ zQpQ4xA76qNUwpd~ZKmG4=NG$r*E_;FOQakEZ`+d9=B|B^!9mrpz(FSGGFAH8dAaNR zAXNJ=YP}Q=QA<)f$)o^k_5t<#c2f<|O$aW6awND(>NUnSws38uj~D70QNq`dEw}xd z(;@>?dBGB9W8{xKA>qa4ZUS>rm^KtZgr6Z%;3B4S2&>e=3?r5s>9vH5C;o~k#gke3 zw{(6Tq3zzsxNaIn42RPL<|_-}C`mq~mz`ZUYri^x2DNe9OfZ>W@Ni;Sq(4OprmXn% zVc8<^UH-#BiF=1yF^cDcl^j9%cp%{{cl~DBHG=eUg2VaE%ZVpirD0wWqy~%5?yn~g} znTu%}x?X9UsEVZ8<)(4k_Oenup_GdOpg$(-Q>m31m-!kG=)+4_6zQA5e(XpAv7B0$ zWsS;^9xra=%*Joye91Mk`8glfh=B?&+wTwK?%|UqH+olFJw^}iqrpV=yLAU3h3@Ta zBk6o1yJAk1RQXy-Z@o~IouiyJ21e2-q8gK6P?^jOBAZ$e&!d!#d}beCUEoO^T7)F@ zNxjO;l|+7G#x}S4>@ZB($P>}2n7Q$t4pd4Emk9K1@aNv;7Ai{`(7%5M-;wIzIGw)e zu&HRp4TN58Zob_TgEnuft4Bp;EN)|1k+gd1WqYnc{*p?dE7MGmZfP;$uQ*?(SA@i; zN}M+UQ3jGB$=r~h<88TFqmdV8o@FaD0X?J9kWrF~0$ix$aanYzQG~@4h<=4nqLR8r zDQN~NgO!Gel{A$6EqGO_;#q&mF+k&Kk?$tCA1FY7(D}HLtd8}~&TQ?$mr+))H%vSw zk&P;9RI^Uip`pO?lT|3eRwOM&F!&c?nNxv(zs}8U!QiB`VS$S>M-)a*nYiF(vjpDQA#tzERv*66PSaoBHFO(i^hg?=LSo6&*TyOlM+^% zraN41WB;6eu7!KIogeW{xn|)tvCaA3o?2~Lz41D*U&mswb=eq~V07r5kt{vS2 zegVK`7R@W4+G*>ip_gY`0W&p8*KB^8w>FySh`ALytQs-S)m8m|?A8qVJ(ID&d7QCI zhE4}K6RGuYF~AN}{v8Hr9(D6m&s5mSM+;kT| zBCNuWt#1tVS!h>1i$jL8oK#^hX?n)v(-*P3fO%`p8mn8*k0KIW=5B%7KuG>8q9##teL{MyHz zlMpL)W1Lue;*oEHCw&OIHx^uDS3u#7`YUTmVCO{Vept2V7nKC6`wrLA`05|RgEbf6 zwJaZ2Q6pTOZNv02dH`6rl;mDx5} z^^~h-7tLqs?%>{kvkS6OOOo+KJR*mhI6Q*s4zl&ysI7~K(fD|+bN{1j@D7+bUj?2e^0F1Vadau zmU}#UQDCu7rehni>_XjQP+jTDEkvIGOqAY)SZ5%ukzSUgY`~({fBTye+BUziEVmv5 zL1+u#h;kWGjc8BVxTLvBgfJInI=!ikb(Rzg@TZbV|e4!UD8GboCMD?PfloE6t_=# zFAe@Qcss#4x$)N)FVo3M&Ul4+y*SXoMS|X_Rj4iS8XTpU7cNkhj*U-ZWPJx(?4mfA z(HzX+@^rVe)}IxoJHv;xc7tl|?|<7ug*M;i#du#EWPXyb6%v)Du)lWR~w#gFb-aj4Ee$OwXb(dqzpIRsQv2)h!qVGW!swF`i{f8xz;UEbW$@& z{1gr#i4idq{1QR>sH=;I-1mMHq4tU7an#)Wk?T$Sbrnku2^rbF$@3CRfY#c+crP}l zHmSa z)uMZSvC(jba7p0m*_SAzzg5Odnti9J+U4P)5MFzDG4G%olzh&iM(zH&geQs96jXf0 z#OWHs_>Qp6ewwa_MOoQ#(_BbCJAEr%N*7N0?HW|~xf#378S(pXP)qy2qL$3`rr1W$ z^^btd2C&lNPq5O&>isjJsoYo%@T3aMgU2ZEN2ZoTkuZ)$=GHJ#;3=~khah9Tpzh8) zw(MwRo*((*`STfEXCh2zg-XDC+llYmbR9Mc5v+t-HqNq91T4Gv;gZguero)gm}}`6 zDJ=}km4g)-T1eX@LM|gt3jsC~ywaBqwS8W*mAU2hJq9oQL10?JTV*IMWn4ligq6%S z`2)SQYeFxzE;?KVv*W^*sUvK$3?ydAkZ%+uP#Di7sSwIAfPbKUTG}emE|L2iC2@Th zW2{Z%y_J>A92$9Y5#`uyC#)7Fdkt1tu#hi9A8#rF7! zMT7R;5GozH+0iW-uj%_%PfFxLT$!I9GoZNIs|LR)l@^+?A_A)HmzNN)i2T)rynj0V zxcz6*xF&Zb`vBlD%R4Dz2I7{ zF%8>ghTXH879J$ah-)_KUBSR=D(T^9H=PO5+^gprC!m6iXD7p4G#RjwGX08nFL!7^ zKM22I8cFE6qFG7RK0M#2FBAEb8UiE{8XlKy7tnPX8bCso3T`*@FXn5nqbnYcCu&@!ZahP^+H zL>lmjhRN64U%Y%7T==7Xl8lA}{e+2{m3t^pPui!N7x7`1AHA2cfPi*Na56lu_b;4c zzm{`{kP{$>t<^h+^Ct(;g;{aCkRoc4sZh*tB`jtJGXB~tN3O|;E~GyspE&(Kc>J6n z6KMjEu3Blnc2Sqjsf%E^ZzO_thaEk zQdcus|7_(uE#(yrjln;(X#Md3AA6%T595)K#}+u9o-}3o6_xt8n?BU^>G^(n`pJ{0 zze+a!C?~eN)0m#`eKKiG@yz9)&nVayIO*dbSNRyVe@{b0WARdd{ijnt8?tlph~~{N zRz;fLy;Ga$oU_dCasEmF+QjlJJLsVAFX@(P8)Joe1slk13Wlgv1(P|V%%fj4J<>^E z)U`dAi#W=>eB%}B4oP{QHRy24#ifx~ZDVR|-feyssUf8$dcLHwpPX41lLbvQfMV_` zULq4TcF3|aD4icVm4u4Zc)pU}TpB2vZCJEwYZ$_YzY5K(hAON_%uCRpRkP6? zPYh5Huu@Qt8{CE%8Nz26I}Bgruclx3+S~nI!=QJAfeA-ZNtJ*T1qTJq96x>&(X2Xx z1&HvGZltzrz#OU_Bfbd)-u!?voJYtdW}?eVy&Mu4D1koeTrH#8)gOD6)Ima!=-uTx z`g=8P>%6liZY@17g4ods{Z>9`O2mEZ;Ly;DwOzbcMdcLY57VuClg~dfK?X96!FbGK zpAUwqGB!64<+;kp63YjtgZz(F9N?y5x&z%31KxfZRmOiMv0~D6?b_vd)qR3vyt!OW z$RL7S)*Jv4pe4sxf2gi3x2{Zexyg6`d|+m68-?e=&uuUH*bmRaA|wwprQ2r5p|Z*%UkBd6NES{ zt{yz*H4c&aLpS}-=*&IW#$$ryrAdgfIORy{p5a$X!6{}d4%SR;%U>70`z@F&ni?eG zHCkyu~nEXG$pAi9U`DNZjt2Zx2-rF4+N=#pe7!gd}#8jHi+JXT2Vu=f0- zA=+-r@tdm$&YzB2;6}b%OVP1nGvM|$2E>B>7wJFWCG=Hv&9V7Awa%(RT#c0+alz0K zZQU)X`C#OKv){)Ws{o+7QIQe`l@bJ!vG7f#g&7Si~= zKKfo{Vy72hZ7P+`QUvIcTC{+HRmv=zP0V4;k<}-B7!~9G2uG`M*}6YLJ%&`T__)5bnTkV^z^4^ z3J)0ZteEK-OrJ`HFa^?=LW4&vVj5J@;@|)$g$c?G69Vj3=SH+pF)MSXrK1UP|S- zx^!#!r5E>6I)R*RzGppxJmC5GgE9~*vZfy0!FN@9rye0^hU6rbmRfVh$=oPpkhc0+ z`x3W3o=mXH#=#&-%ED!b*0rafmIh}{mi*3@>knR@G-=Wx*8xpmXx68Sx}pnF_grs0 zG#uG^+xi#X(x5j~Pfks_QINMTMQ6y6J2vr)cAbYBDLK8~d1~hv=Zjep#A1XCS}C@H z-cwa;+$=WA^+hbJ!>*yl2)o6GgrZSXTl;>=n`~_cw&JvrX%OjIg<~NPc?>b4)rZZ! zx->Efc2=kv+{aH&xg}}2s%1Jqa%+EJWX`!N<0;#3c5a<*^Fx0nExbronX4Cq(za!C z{O*8-jk8)6it>mSGkR+8y7%I=@zfZu@&-gHU^~Ch%PbtWv=bF0j*DNxBH)8#wkt4E2wv|;0xUG~+ z`)r-HdpFugjUqWPrcU+Jd;6pVdob?oXXUrZxFAC68x)>YdoQlOfrj6qA)(U%;xeGD z(+)y9ZhyBjIimA8?w|SV9=)$D%nj2@%Vdlr3XaVE6oE;m)R)wT{$375VFaTxl}i{8hy$(z zRK6Dnt$`krs3$(5>ZX3S7rri@v|n;pamirNXvjT52Bn?p8Xg>chcq>@7>Hemg0b>` zl)1>BAjBn=QRH4oLQ!kovaz6uLE$UM4A#rWw8032nVf4AHx;3SdwyAqa+mx-kWy^!X{pYVjry|30y znewyD*x9$QWamoA2Jw}GSBZR3thU9kWg7bahWs&syksmvFF%V{u9$>n%wR%3-Fh+N z*>uo0nN5CUzjoR&U5e%Kvo9z64SzKdWN~w{X9^;LTf7R_A=3~sA>Wr-Ych?2r$aOQ z{9Zj1y3^;`C5R1G)bGgTp5I%G^6aB+`bZ>D$}UIbE(UCad35ppvp7`5Z z$pQ%u*Qj{*aGvZ-vQCdsU&Rz6MQC^Pp6jCk{n{X5j?hw?iE}bb4@@{yYJ0lgrSJiRI0}-L!BZ^9pjTnScE2(4?-&~ zf(l-@02-WV#bvo5FXERWXvP>nlL(kN;l#5=KF>_bcR{YX|D(=F96{)U>O)?YB!kKv z+j+KU#slm6i|t6%91b`4Fuf9FG7u0@)G0Dcfs^NTq<`%cp_*@MK93I9fDe?^Us3b| zC_f$X8^sZI3Yx!=^Cec2T3HhAUK@gT^f*#BdXh=-+EO`5gc_MB2J>w{Xnd?5&Ydns zxP9Q^5sh?#x_c_py=`b}^Y56_YJi@7)I-mV<9L|vWi}Tl@x1cV76IOT}_OPjtEgbDk;ej6w1Hng{We}TR2`! zsJCm?J`9`5hr4-fMYs4V{p<%*vx#W{R`J8uk6ah-HX^iS-;LwEwfP@Z+`%ZchGvFhednK3{=aTYUB=5CpxiAd4fj6>V!_6OEdFs7Lzb{d+s+TXO2ZsTO2x-T9*pN%Y> z2x^qGzXL5TKK`v#k-3A3qoYz@(MU-as@s;PhjgysLYt;ls8GE3aZ}60Klz_uH$ImC zj?Y1Vl7T@QaBE5VpuC=$cl-3!$T|1qg~>@BWq6I0XQA`;MENQ73$pP#-wdEc5Q*R5O9p_;FiV72K4VTRB6Hmv&# zLQpJ89OB+_sHUd0LL$)>R2`*|%ZO+SSOiMa(TG@q`a*UBra%WO9hnp%nsY)&UUhe` zUq1p$znbaXC*q&Q8Bh=3%>UwxFTnSIk&t&B-m@uheMg&uJP5NXVJy?;VeOG4a(;r7 z`OA?_-(qxp@KVJ+>u4wUuu9Jpjr1?tCm+iGDJCl#||;0k+FAtAEj>et~5ZV4UF>FlGZ0b)c)~5%53C9|`srkb`BQJi%;7j(GvX(goAD3+oj4vtx+%zvEqfrPBEWzQ5bG9Doa>`5E=L|%b zO_HePHb%ToayrEWW1#W_S@=5atjSS`+S4?`X`^rGH`exKHOkPOkqug z*u>Tvar=eS>K^S7NJ};WQV#m}%B!`i|3`rotKz+k7^zDQse>vK9Y_VW+}-qbe{7!K ze^VINb_*YM*E8u&|Ha%!z&Z(a)g{Eg+pFv21e5J3%CQSSw06)dN2?_Hc)`KJ`;++_ z-fy|hsV%0f%pRYy|EP9rW?I#!HDWU^T<{h~QyK%|#>In-_{(M0)TQf&nnJNTRh9agR24D|X2NQd=B(e+?eBb=_ZyB~KzmDLJh;HoUf^W!1#8l9h%)kXfEDm+HQ{ zK2$;sQzB>z#Ly>>gr(PaKN|A4e10Rwv;8UMHUOEx6>=hp6$Z6IWn8#M;k;U!0QGzu z7KMx*K)UwX=0_19FO12OBOu0R>6Si-2aYy9B!yYaSxcII-m~Y$vW>s8AL3oNmwI6w z4(107AqrrM!VtmV3Cix}6e@CxNq9r41@(c*K1@tZx{g{CNWGhJV$M(sb(l{IH7U`N zg-R$gm1zcHaWQsPnE|Ix-FfTbjKxmoCQ}+C8#-rrR?MY@&m@Cie7ZD;vz8U@5p+&8AJe9p5@(-W)1LkWRiRinM58uU>*14EHL--5 zD8;T@QfqC8?&@D-D_eT}OKj!Yzr9VWEen)7K%y=O5NOFYH zVgM!?RA*+TF3s66AK4Byt_WKZ<&4bq_ol99c{nghLF_%^7=L25>iHV~ZgH7jY9TVh zkxUcN>yqo2XY-pi@XjQhcYbxHr}rckuvs^=c{$fzNB<79oS%Jma1+e(**HFdSX5+& ztYwr8lo?Q)3M;6*xnxWC!eJb^6ma5J4ob|($e==(I)CF}ouv~Hi(N<`zVGcreZq5s zBAV7+dU^2vW+zE^u~i317m!fCGNge8 z_MiKUEQVIyUa1TIvSLstyZ;LQvSHd^@R!5}`~`I2flU@38Q+%4v9n>%GYgx(=kj|d za}=@m=4&ig$9#Ho)1vwBHm_&jYGlMu@ftWXC${qR4_p2{`l4IcguZyqU#*Y9MNGd) zt&n!+NBHll;hj$;3-ueYztEW2JTK9NbEHuaO-gVbAVFj?IZg&N%n~32qKmun5OOw@ zZr=2TAh-2o{jewJ)H({!G&c8Q$_hq-r`K$V-h)rq8zYdIzYQ5Tk32btD;m1 z!5k)*E1|k1lmmN!@X|85WJ*QU+)#Y5cR8NB{hSqXCOluyDJ9JzV;N`8@jojTt5b@+ z*~fp4$WFN=kv||AY#QaLdi&Uj0dA4;gS&ToMzwd>#+e#TBZ%ic-#t1>dMedx8uLK# z2I+Z`o0;br+WqWYo-hlTP?SDWZbp0aPW~RF(d<2)$m^a;`R?o^EwXYBq!J48)nVu7o0uHqlP#z56aN7KSZSnHydhCoAmJ6D!j=HzG;uQi zBGbPExEQUxA@n0R#jY&9rO%Ea>;2^`BZ<&u?BJ56OUZb>cWk>6cZkGu0HTw@Xtgl{ zJc=;4Gpl!IJ$Nveo4E*#$iew0*FqGzR^ZJeeGOsvZcDD2L2*ANvHI~x-TSX7m}X-W zih$`jstu!kZzszf_6+h{CR9K)p3Gs~wNd_`JMv7cF^fi%`v`uNF6op2H#gRg21W#{ z1qrOUIuayVDl@79(NYO;<4`U0HEz1A^XG|9Ul$w%XzR2(u%?U-D<3J-@3@tQ!@p4; z8)3d&v!Wd-0^raTt1)LUSLRW5U8mjEC-hva zWp*fd*6J+VN~!URLIoPVyqX!ppK3pcK8i+D)*0RWs`U(b1bXBY7eILb5c zuZax|yrMnsydN#kZXOer>s?>~2@~dz&MDK@fA@UjP)9j(MGPs^G=)T|^2cBzIvqi? zwr{r@@qSYp(yRol%A$GycR-v%y=Hgb7T7`|i;PDsgG(caJDI=bqO{`hmxfM4f(f}5 z-#10138hd_MMlY@m@M7sx0d}~JlWA!6#hc)(yAQEZJ)H8RfX!}HDeE)N*7h?MI&^^ z9(M=QP=1OCH0bT1PK>C|WYmqAf+%ck2Hkx6bh$JZA}$rw2CGf+u6ee%F%Jju{GSSp z<+oboK_be=%-<XoML>$a3oPK6ABG-?}x!-z>tEH8d$h48n?VZ2nL;J7Sc7hSW=BPh$ zqm>CzISg7lm6^Ne1}kH5WC&Nq{|~0~e-2}s z0g|EkcsAtIF&?(N=l52>JhYuf3y3;bV7LWT;40CK0bf*WcQp$UwO0JY0c35Un)0F+ zW6SK&;NNPF9CFWvEtaM4;yn<*c5M>aM4?lbiinkhr_Gg>V z=VnZ~hX;!ibgG|0Glj==G1O2(%@l}}l#Lpl?q)~0Q()I7eNgYbVZ9_RLvD0)zq)CT zWBkLnz8%i}%!w|>2Fb-eU!V2e-WyAIURwC*`)*T0f`eCe(g0oiP<3{qv>Qnmo7ww;@Bn)F zYJAnR=eSh8niKv#-?L8;6EE{E`zoFCy|mUqT~up-smKh`uY2JwXQ+l4=|-P@KTiv7 zrPz|1kdCz6M`l{1g@@wXrejg@AN=*FkINN`7MsOgjzvKmd72B0Cy6~sLGV?GH(oiF<5hKJm4jAA{YmLy+#mvId; z!^6NY|H)U1rT5Al$s9EnH^SX8^APF<0~JV;CNiKGqa(FF&E7w!7J25!@~H}!GN3nU z*^nk3hCAXXay#KfP?iN5bcz1;riWw2yadW<5JjM6Kki_RCUAeh?@Hh^02ki+5-uv$E+4ZkZyS#ll zDwz@7qxIGd-M9LRiDLBNom({$wVFL|C=nq()U)y*KbC0UD_5?JvRS(7Z*Q-}>?UmG zbW&YKxWqsctt?K(kR>U*M$xZG@RaaaNwsBm6(YQ@x%8>xtW-S0dU+Ka@S~;SS6`Rc zjON&Y3p$;k_j`HTOINo&^PxwdrK@gldXv-QTxa4P9U#t27_23>G14aoK$D?7k&OI1 z689lttiY6^tHT-|O#e!S;=3)(R>riWp#+JS$u$BQ}BHR0V$DSAzk6_j^2Qrr?Km zTr#3?dx*m9qbuVT*I{>7{r1tm8^7II+B;^uw~Kc#55?|Pp#Ms#${t3GVMryKj`=~` z6=r>yovklW73Y+!dSNnd;6W9JSYDPcLXTRlnu}4T*0qZ zy%oM$?)6pf1}cc`838w@*nZLDt@==fVmI(bPo=P`SsNiD0)m_o`L%4}j`(~8w)xUg&JibD|N0N@i7O%HNr5%SBqxkf`tNow! z%w0sIWz_wrdpmXy{B3qs+2bM$#doIAauOTWpx`=8{D;Vps`Go)2eKIgiQ=SHT3Oj= zdb3#7_20U$>gbX3J)3Vp48pDDVm)A{`!Kq|7}r1F=VZ*AM_=uWj9m>`t27)t_Cm+4 ztEi5T>5SKn*(nN2QFoZay)6ylPl3K2t+A6O?#RgY!p?Zo--Jw|L~!0jKQdSU&CbMD)uf5{_6T|4PQO) zr#)t}gcGB&Z;O{)W%erd($drep)8Zw?n8IZyD~Ac<7lQW1=Y2E?_AVXWB?q+!YoRR z1Znmn;FnSMt5bE!Tb}Li`N8L71l5rSONw^#i-LnSC10J8k_?nQf&_^c=jM937|0NR zN+<5KpiA6yzps*$NNEC)3*;2NIim4i=rHupdjU(uFHiQm|6kMl2b|7|t?)Tm~``%ZtcGWqz9@S?zM`5is=N#kzzx0oOC@pz`VIAW-3WdTz zy?9QBLRpP(R|Nk|{-u_k;)Q>$zIpk=Is6-6GiNg$@vpTe7q6L7C`=E?|IxX1j%ZRS zdnnX%r{(VYe{Hc>mD5~Y8kwSBvG3I(rG3{5!*4vw2>V)IVRXcd=V(ibc@xbutTV-T zz>76r*N4wX|8}}o)Ldk$G$e8N+cv_9o@R={NMwhvAKI|y4M$$($hcQ ztx;Z(SI}{+J0pI~=VZNqRKHo7MFV}_v7f$uI{eR(_k;aEzNa`%J^TCnx4&Kd`}^ys zS^xh2^`2k;{$A-HYybZK$RB^dCS}{X6@UNv`h9dizIR&npTE45_~!tt)~jM-PAgWd z7;n%Hl2<;!&#y#BN7vVyZM*V<)nZ38r8`x_VdnfvtrF?-K;hafYqK$%`WQv7#FDf- z9VPYnGnJv^)^i!3$}F-{=<_Nj>NRLiPL$FY$Ma$g>%FTZq&SWplg3M4l9HOT;3psJ zI+c}D5&8c8d!KuU@fUh68Oi>V5ls`ava%dC8-M<}!kJ-L-|^3lC+W{_ctHMfz9FX^ zZs16zQdeH6e~mjSN=r-QPwi7Z)SbUMS-?%q{$q-vUt_XWaH6DDs zonB{GP+XO%)Q18uKAZ4A4+x0k%AKzon0@&0;nu$Tf?)c-H7jRZ|Fr&{Ca`-$i%oxA z&W4byW`Y43ON(=C)RB=9z1FOBxBaGV?;dVuqwd_f(`Ks0%6>Nkxpt+EYbi=)>$$Sp z719&6%h?YfjtUH+qsSc;7FM&iwssH2jqmTN3^5f9I6;pK@9{Iv8M*U&ckV=gegDTd zx7vuHil?Wi^LR-~ zO7f--WsQ~DxWw$;x_x``G5Udq#De;l{#N{aZ)bYn{<^Yj^6}1-HSubv8U{Rn%Ern%&F|aT z+n5|9X!-RJ)tA@M*A4dqU;2CLD8*@`MI06#u6&o=yGndy4I5Uj+0c_Yl;gp=FhO&S zs~t&5NJ!GD+}GkTH;^&?*=6gNEulROWK_by3DOz1G)`~3N4_GF_zBfm+oa+1zV zg*fHj$tL6a+{Fp5t=qO`v`CtmyvD+>$+n$hFXrF9VWC@esq)o%7jC_pLl%S0*N&>B z$l*saEC-_3u-Hi-K75!bUqe;ZfOF5>1JU_E?d-eD0&K=BFVw!dbz#-2RZ+4LlD_#C(h<6>wz%B6mMigS|#JVwp@nzwJ?9T&-NNM)Dx z9#aauv17I`hBp3Tzgwj3)Zn@e8x-!|Ob}n|Ty+-pY7x5C;fIeNEscBsKD+Wss>obP$(8K!s>`zrLyk1d zfyTqwzH!RQRmP5UDlKN^!Zr&N^`)mfW(`8vA8cScF{jip&gDM7wAi*3lfvVHq5Y)q}})Ha9A##@5BHzYb(EXAjHF?L|P@Z>yLn48*Vh=rRFfCaE~&4%5_ zc#WEMa=hH#Wpq^*7Z;sbJECLaqet(ab*7IxZb=ota^>-z@t#Wdro-&)CyF=hJn_y% zFd+ZM@mtY`W|LnVcmmz}zI1hEY|Uit*yuQY??QK1{ZPRtlO2xJc`VTexz`f4#Kpy( zuPt?YYsB*gzIWMPKfRdMlG@iHGom^QALb&vn#t>VwF(}r@~gQH3*$AiQngBx{j^+#2+4rwK0enpeNb0o z%(~0EKD&ArmX#@ZbE-Y}_3g9tZ+)#_&uP(HbzZy7KkAKvgF}wED`Qw^vA3cM=ia@i zS?q>?O+6FKH#0Mn(edO|l2J>BUh()~i^~1`_iYA}>&Gk3Zj^88njY!!3=CB7bTFQZ zn>GLZZmq@Fk5_{n7p+}2muBm8^_tV}F#Mx-=}yGZw(Z;dGy3DJQMCHZj~FL)l$I~X zrM6amDfG~1a!G9*4s%}QoEa5VUo4yd^WGZUWJ9aFi8NJ*na-}E5p1VEPu_3q>k8dZ zE^DzR@y=}2vF>u3xy=Jo>HP(7e*O4{Ihlopg(fAsAm_e?kuf^#viG;LmG|jsai3!{g-ji2VJwny1e09GrP9*|=hpvKJ(^t%uE0=22^4!}y zBHgUpW{bYOpm|U5%viTRYKWjk-}6TJ3W!jtjM1^NQr>cZfslYxR(f@@*VZvG z#HCth%`|vxtk;~M9+_R78!A;QnjL<&|H5;Bf7Q;<-K{zy2fWoReHseX9TzOdCdx&Z zvZ@@ECWl&WhvME0IL~v=^a-kWEljoXrP6X{^=K&r8;mEnX12sTEX-2fPnn}Z(muDw3Dl(XAX0`diCn@ zN$oPZo!-^G+^ZQFZ+o>R>(>it%E-u+EWCXAQfof9%Y^@Ne|%>AU)<{~d{%s5I)DDW zI39CJM`vfJymGkR6-CuM_n-Ossp#4Q?raS&;0MqM_>7*arSj&@8>8Bh+v|c8OtBF> zy;@QXn*?N4zP4s(Rwdxkh@LM{m6hqnZMX=FP%3sa2u+!E>wWw7u~NCR$7Sx@17Rp9YPp71_39Y#`ZW!3s-%=Ox4yn{4-NOK=C#Zg z^&5izj!ScG-OsOOm`9~&+s&BXfAB!DQNiPY1bduD5CNWOfz|VK*qG68%2bTAHCuNs z>7y|Fir8n&Ol=gMm!8_w-;lesV2rM%kU_)suUotJ_>$zsi_)k;>_?lDbY&Mhxg3u# ziJ13P2xyXGD?8)h_u@t56Q)xN%4J%Kx~*B(89lFDSg8e1n5qfJ5*D$V9du{ATr!Zm zFkrkjP+|CYzDCqt4c-MGx!I(1hId04H1v9g+_`8SfMKFbGj6O=sO@?{H;PR(s{OcU zS->g3CWbrN8zyA8ce9yqc+b&;G`Z8-3W0 zuAN*t(>KkI9b#ka^k3*)bI&MyqE4^r(I0f3}C8Y!#t?V@EQ?3gIhEaFdg>y}Am zS&wNk?Bc!R&aGc}gj!X~*B1Nw^|90@4tDmchno+wQUOQ00tPkp>7Q%pzdc58mT7S8 zOT9~OS7)b>nfTP#23e2+p8R6~05pbRM(3BtxeE#au1`{oTB096rVjwNI`g%&t$J}` zF2-=kS3f>#ME6lwsh?j{r^kuz{Z_3~GmF*nYMFY)DFzKy&74P$#J(CL|@p87dy~qV;j@5DxJBw$E^zM>qkb{I*qREW+-g351UUO z1;UMTdrI0&`){BVUgoIWhdDVVqoSgGPg%u-;e_8?vr!N9$vw1y*|sEPvdmvV_S4Y( zyq#O$lFi#we0=rIgEdheDu$|-4VuhMiR>5Lm}>#nQG+;B`)kG>iZ>1_zW3<$vMUXk zx|O=rwo*>QSI+Tp++enCrg3dV!u!OqN3s@j5!mQagHjH6Lx#K<8ZXPZF$?Q4x$rec zxs{`^PtMMC2l1G7eS>_a{JR^|?%cW`5oDC!xlJNSM6F)k)-Y_q23tYr`&Mw5laaY; z#5X=JifyJ?q;a`?>fCX%7Pz;eoffnEtv+=0s6_7ksEb0Z(%vZZ#uZW#Hx4hJ&d6Xi&Z<$ul|C zxJ@MW=5W5Q~%r7zhcYQ`(;#p2vmgo<7-4P66_M8&eIJ~sw!nt$5cb_I#Ln%9r zb+mQIj>t94cg19So0l|YErq~#m{ZZgW1l|#2USK-PcLA*ApM37Ub(rsti33yrZL$d z5B0q-s+Nu_H=HgK7ikCCYZ+Pf*TvP1SjP;lUbV{S-qb-!|455h#k&T$$F+yLyCc-I zZFKPyT@%{*k9RV(iree#%^Dd*|BX3Oy?j{a-v8`s){qwg~$&U(E2BtqJ8rQ}8fb_9b1+7PK#|7>~DV%uu zvRwPDMnQ36(?Hkk=FaUsmJd#?-&8-oVCj9(o^AjByyhoQo=g^fBQEV{F5pQ40H&^U zc`7pUZgaBw<4G>Z8JBeXa^a~op6%(?y)}KcF%unbqJfFVz?xl?*;B1CKzoV}`G8>h zo9>*q%v5u5aB#m=e?D^1sMa`VMqEl{=5~PFwV-|b_p^C!*ugUyLBSFf`qXQEM6^fv z#$P`%;WCR72xF)Wxxhv$T3=Pz<+z*UmTgCuwp4(a=?fp~cO_VhMc78J*qe(sB01jN ztZLSX0;hh1)7m)c(`AMQHNBqxX&S?hV{e-mQ5{<1rz$V7$e%K-EMRer#V5(1&rHxi zi*_*3lSbjmU|MU6Z{C)M zB`hMMzfqqyQKS~a>nD-gY7-M$wMrhJM#~-$uB+V@_w-ZV1D;#?^lJ7KwH6}k_AV|i z9&(IRpWnOen(&}tEd&ma3r+S`7x-6azJ4uDKH4thtQ(SRzL=(u<5~2@XAV}yUP~;o z`9?UhDbcBOMqoeOpxt9bbSqcu;87KQ_;9Q|;>M1m^749eC7|i*9E$O=-rpeX^XEN) zuZl`aFQ8e35Me=7w5{23^6NGG+1`lRmLUi2vLS*})&-#iewyEl16d1`P4Zr5{JZld_*!mzSxmJ7`EVE-FD))O2L)-k zPWbT}>dg-rJDyyUq*9}jgrQXc1=q?e%4diQ3%3ls2(s?lX=eM^?`yl0+ zV4{JA-{ft`EHGg{*nd{5b42Ui4u-^Rs49BJPj;TnKjP=%A*;L7*n!~L9nMqW#r(FD zu??-*Rw{-KkO2HNjWY*$^NdmzcM*kxW8N^e$raq(Z@@Z}Hjnb8)nGl=RXfv67Bb~h z088puI@fc+PDz@@+pt0_;!dd($Q!4TtFEYStr<2K^6FKR?UWI)yLX1t0`)8_) zQ3L&;iz(bn2Tv28AI>97k&#>HX*|RzGj%Ke-DtC*RU@b6lDn6&{U3k)yfB=%v9BRf z+jXEk;FKbVLTuzjjSB9T)yfqslI-U!B?5)gCGS{=Fd5rVdaK(+0pfgC2-1PDVL8|w zH962^o6Vr1-!mjbs+2y+7Z?j`l=*;5!l?oMDw>99HdzdV8dy%@SA1k{lW-^{6^@{JQqTS0Z+*f3xz@#5HN@cBwor$m>=L?1nRFk?=J_9(Tpcrc#+{;??hvLJvB)+ZULhSr(J z>9!?cL_|f>)zzJakj3pVfA{=_3x4*!U4F)OqKhLNffmm|idCOe#XVeDSeW>lSl)*= zeCf)Sn&8v-KL3XbROTkSm?p9?E-O6xVgE$q6Fw1JztV8POnof$#&olYz`LK< zzR%AuLN^CSef02QCB$#CGEj2gslKRfGW6ewHeOQ!82GsZY693E(dC-st(pu|b+NA* zg>90~oIP6`d+ns_j^k&7>?eH=TzRpF+L&dX`1$ka8vJ<+9t32K%#zvGK@M<)SFBOE zpBeL`#lk}C$*OdU{s`^cj){oWLfxk6TXyb@x>fL`H>Js_8i11h=oBepe7Q5OtcQ;u zf72MMaJDJaiZ+wj;w}OhkN!w+7 z^BUVI6tVqXKm(9VF0p6(iEwe17i>zWeeJ!^LCcZ>L{zBR_qCz z$p&qErY9@FrvD*{}}m% zZ>!R3i9hu1YkdNk{j}iEKmPxAHBi^(uYcu-{P>xFlil+7%LgCG*+3btfs!AI=T}&c zR`QbK)%8vP=^Ppw>X)VzqiVaeX10_K?UF8^wqMD(A=g+e?>PNgHa0fBs?dkH4YWME zBXOaj=bUeFPYMTg|;&V?IYyTRR525-Y{z(~e`;ox&vp`f!&o zgUHDk8O8tg*I#x_>#kda&cUMi_19m)#z!ppox)%)a2z~%0k|V)!>ZR=ki!c*O%Lzc zBL=!UOnv~wk_cBI!gwAviC@1Oj6JMEt>pc1yt~vdV*iCFHPM`h@BX+?{~z70A20Lo zewzOtZ|?6;|823jmZRVhp+r`~x59q;?`ndA9A>G+?gCfY%FG-O2;S>{nRCQK$#wPq zwBZ-kz2g=?Ho*}C$p5o*ZAHf z0KC6~j!tC$6Q(AyN*)nbiuBREW8C;5Y85afl>P{yetlRp?2r^d^v!3-by+Sf+o8d4 zNU;mF8>ObMUMilH^5?&ba-(qW+_|&Af9yH7>goIE&!6jje0_shED&qS?kn^-s6RdY zNjcLp?pl0gVS&lfLUs(O7RZ@lc(kbfc#5R=fC!JIjx&aN(-rEdifm#$-um*qnD?Pzzj zCK~vs``i1DN9Vg9q#XIsYt9a)Io4Gw3oduRo~?KIQy%dv<)o#r4?>@lzI5pk1jwZC zI@)Ejm06>JT$taR6fjvG0%gAJb>u1<&epA4*`l~l@R**peY{IkzOdWvsifWy8BZjRwDo#Tp5bD-lMVTPh zPtFF^eA+38`83*D^oRaw`?I&aJUl|M$Q%b^Q-5Ru>Y@iBG49DbcF{@xx5G|H4Dc4f zIw#gFvFXBcD=ICm1zg~^{Hm0!S9=K$9mEU;j8VicO*z%b&?~jUz^2Pbd&{98439Kh5?E2Tcddtueg(dV>>a8(Il)lamugCDO6sZCp%nBrj2!vAGIe*7v_ z#ESWuF&@pLEpbY3&cI=ePBMbomo5yAGj%bKi=Dklm9M=%XZrJcu>UIr^IjODbJE7c zdG6;IgX_|GutG^)LBWeYPx|`x;4^2=*fDLmt_$c@R9F}_uC({N5fg#B3IDdyKqpYkP)``*q&}+y%SF5NYucf6G@Z=l%!4k7!w&{7fI?ihE9y*g> z(}DlkJmVh^Flb)u1j4&CMZ;wx4B*SH>mCSO3-AjLc#WhmTS_EHx|gjKJDkZo=V^BlWOYyPx;A zWTvJMz`%lF78=S*mBDs}1x}(Bi6!8lp&apPug>fOYVZ{>3x|lo1Ic1+0#Yjcvr8cI z;k?GJvA?cdV>5SjImx0EiZu_9F&dUVO*zHDN0k%)3oHX}{3;Z*%K#rDe z2MgA4Zh>!vLKF9N%TLmxh&9~a;k;ty%B{cr^10sxu#1yZK~nO`UwL`<1a?7?aEAkl z{R@xf6Zru^MM1N!$GBG|6O42gJ4%WyTkt?5>0nWOX%TTos*`rlgW;RC_SU z?iKVB4p!E4ckbL_6uSGG6ULcdzhFSw>PNps20-)EFM59X5|t{TtwB@I9xpjr-s7cW zG;;d(_m>mP+l%dpM9&K#DN>no6qJ-A5ns|r(P@M=Xuzv-U+|z*pq!~`0x{7wwY2&M zGlvvVW{t8&#J}_G+?Q>urN4zoK;i)os}@dKekF)=3ru+dvo8PYZ+sAM8AGZqI8;5t zN3VYSZN&tV1ygN~x#({Dy^F&@uypap-8FzaZbbR`l#Cxj1wiIS0$aKk!4Ag0qZE0Y zPESQ{>(MWaYbF3a0_`WSCF@k4S-W;E!xpCRS61=*B1QE&v7nJPI>gJXASE>NyMS~b z=q@%hk$Sck?Q(vJH@fV8K*Bc^88ufHQFWJXM`f;FeFl9f4B9N;^c=-ufP{PSdG}G} zTNgC)kI^?6@JjgcO5`~+$O60V+IQ~zI|iR_uxFxVg@EPZuLxd8X%LwoK8u!q4RMTm z_=%+_pyIj9Wjv*wk`02p(gS%bV{x{>7Mc$X(;}_JLdX{ItNUPfz{@g~%tm=8Mjg;@ znZO*{y+xb-R4;i1Mn*bfe&mRGX4Z`zrpSMZIywl8Lo*;>(;K8HN`F-M z%7F>OdyA;4saZ$6Tm`e9l?oshb?0T<2~Fy6_$%8j#Y|SsF9Fw%UQ0L!w_gE*ZfMo% zdbp^EIXEtp#6?2O{QNw7(2+w(ogi>m7AV|*^~&oMe7c(GR&=(~gFixz9DC`mAJ4QL zkO9&CW%Fi>22F25oSUtX6rsvMFYGkoN3=xHup!|*f^?92LWri6mX@||<;%T$_da_3 zxCS4pHbRO;&7xM`=>3hv25yT!IafHuc*vx?K-(fF4U}g6k{8GOP|iIkQVpBJp=8Nt z(6CnY8WO^wv~?>Sc`bsaMH*ysw4aYp6hRc++%?5lm%BsG`z>PIhz*LuF27^m`_fRf zcPP4%@ZxlbaIKN-~aRulJfq2+* zv@;DF`nbF3OmVOXi8V*|L$rL%mR-AInv8R^9a@DrFFN0dMDMMeaC!77YsWGyF>z>L zOL5Vyj}Jfx;b_^8NE#K$H6X*h_Z3{qYnwK0!ZSwfDwwQ!#LIMmShue3$@|}en{EwA zlS%k;Q<1?UeH~5c+a`)oNk@E-=g#MMm!|CJM+(;c{IfLHX|n)Znpl!o-X9*m+6S-`#J>1W%F zQaK?aSbyJ0u~w>%AMlk%IJ_i>lyd+*%3b*pp$u7KaeKl;v{Kkw7OdcG0C zxR+X`zP(kKx#He1sqz!)9q6;D!-lWfBu_x9`1?AiD7?ipyp^iB@J#&Nxr^-CA-M*_ zxmn;Fm)HX~w;X${=e8M%L%r=?5}tStYbPE$ZO!y^y7nkV4SRVIwr8R29!i=tsCa4w#x)gke!qpm zZ*DLEyP`>OUw=!PY*z6B1l7;8f+o*v$=T^#PZOOA3v_MI``ng z1O1WD@5!oyX0d@u5F&bTGK5$n;lmYF{h=igD)SRHD=qU5_AcI z119=1u#Jb473dVDGl#SSR9pf&kx(OP=Xhk4TJ97u&6XNFbo3wl{?wdoF06RF5A5I- zB-zyBsh-NS0H-D~2DfjAia*}*a?^hCi|&Kz-OOOQU;TewI05xRIpH?da{$f5EMsqQ zj;d)P8(|l;yyYcq=ghPG9pxKz8-4)=|DTZ^M4vav>COEU0KEI7;C{!4%fJ6$K{fp^ z0I&YvN9=#x|9=y5wlg4tmXLJGtx19%U{=;(>@c>Az?P5;ZeFEYV^@D)zS`K>s|P4RoZ;X`(31UVh(PKA zgem7bWW(Bg8yxK&AY?6rL?ZE!Jkdar>sC2_{CLJl{;sXNc5%Q>)Oc`L{Tg(+#qkJH zh#0S{07{4IiA|1o)J5q+!b-3G=j97hQVY3EL8It@c7gdSd}V}e;}D0_03vx-+*t(? zDam2MM&p5wfbHbhO61qsvlOJIgOifDu`PA6VHx2{xxG5IWYCl%0p4e>|837gIOu`o zcMzJ=x39M`jA|>|@h6IS5BRMU?>0-lxEBtwgun|_(61do$GtyBUy7*+cW&J(R)`V0 z$TWhfJ%etMgy>Fyh<#(h)j;B>nZpsaNfQ4Hg#0COxPUO?3O+2~LsgwJzn{c_iAem# z?D|rOn+TE0iBGMEs!x)%c-XISGpOupf7G>{3U_R=ggDr0-OaQB+l*xOf%aa(#Zqh} zDhctFk#3a%0VjVqJ2?=u_pEayz?dg94caG*!}Loii{|Zb=?HZs*3&>r6F|_x)SG31 z*8n~f2(0TuenKu3A72JGvIWB6#pUHg{(_p-<8a5%qOX(m>&=@txlP)|)T}!_x3&gl zYMPmvn!^NFb6l9{tEUCA7Jf&ir%#^-Dm4xpImpJQTN^D;`h$6YT&luHSm==udt<;# zh@c5l-y(R>^-qW(D96$m8U|a zS-5Q1ZY%*rOnkiM78M-))-EnMSPV@I6sU5vvlzm=`mHSDAZ`HZ|CB6jJE;RWN|Loa z$Z$jEF>Ay68wUg^Iz~U1Ohk4x*2WBr7Fdj_tsKzJy}V z7?X&(Z;3p7*5`SjDl#nkiJ6Ja74Z`pVfjF?incqk2XZpe-L`S6M&j`oYbEv~gizDA zv}k3IHoEL-B8(zd{^B^2Rk*~ya6cm%sBxxdW)rYtNu=(Z=>Tcc_c(&v|3V8+{wvtt z0%6Da-1$zfzKWOkpn+)aaFz@Z43m#h=*0$*!TKg9SK>V24w%p&5(NtY;fm7IPa(@8 z0_5rLF7rvqMur#k_1Uv$#9f8x8WIzqQ4}}*zfhFJ8zc4t-u*{#pFtN-G&vsb$)fj9 z%NvwJyJO6q@hbsT$ZB_AG4lut;-aD|Rbh+9;}ai-mkn_Rb5He%MuN8*iyW8s0e9^g zE#~q@C;n=g8K3rf9T}={4~3Oecx0+KBB-d-RF`aUEWcXhwb0z}|NgrU((f5i6g@pX z!;mWRwSdYSkK_&pY%b!F;oahHCpO%M$O;`AYc&R8Posc)cRKQ;NMirafMq7oKT+Js z( z+SGzx67GVVt&c1%VKXR%7HBY;7R-!(SUAe{N7>m&Z?Z1mCros-l=Tk+U>%LMb*Y!V@by>q*IVOc{-Zgp*6l(XCgUcO+VsS_P z03}*xac~9=+Q(&hc4h{1CYSJeL-XBOXdv*HHd8dK=jN3gl7u?D--%*4AT+u=hsz~w zUT6Zc$#d3ZgNB5nsrC(!vayT%5E!fVIy?lxT!D}yOs-IpXhx03=5sYdKx$&BE%%Jf zdyfQ7thiSpAw-CW3QCFr@}vZ!LKk_pl|vyC>&P>oan~+=qm3*gS&g^P`ha+uwK!?a zp{S6If|^Zl7*9%d1;NV*NtSfjV3!$j{bQMHQU>{l!YR>4Pv%ibwERtsTyR z4zs${u)v0k-|V#5soK>tZrKF$6mhsIqNb-E&_5XnIyv|(~Msu-HQIh zM%}Jvel=i??5&$OS*bxV7sKW}JUrMuCFNzi5b*F~HEd3MBU!MB)E66-$WGX1TQQcD z6ND99`{Mc`m6$#FT-Zy`SmRXF6UsDWqPgUSrxyMrYWJ6b)G?*=!286-bn7$601PHK zbcD|@f6n$ZwUNJ2+=&@Q4Re_ZM8w7U#)o6{Od@tliCU%Za)P3cY7+xZics&dAu>d! z+gF-7Wujdns!>BC$v_Y!S$U%W-TU_>%}(?<1a)6xQsrb0R1BSteAl9~viOmYnl8if z$U0$XxQ8NsM|1&Xemv_)jGrWqP<+OEA7I3euzL%3Ka8z-awzt}uH3q9{wODB9bC0w z5{`4P!NiMMA6&wJ#V2PDyN=avmJ)i2=whZk%5VxX7)_%OFISPsxG^IJC*SeD+RH0f z(^rsD2gG38{TF~5G2nMSz^xjisZj5A;NRJdyx%^76|3-(1XF!ZY9p*yZg=!Qa4nMH z84oeKwd6WFLIb#DoIT;yih<5`bHuDBvpCz>4 z)>UiPkXaf4M(*NfRHm*oMVip>xsj(nFD|Z!++0^b`G7on&j}2N!P&qOR6CPzl-lpO zH03za)V8QVQlFBNl3|?$t>GD^H(LB~go0B5H{YV`etN*701K#&ra^1Tv;yFgg785I zDN1iPulMYb!_=vxY8i5E~ftRXWPe64rSYS@k3hb{<1aXZ6qercq@yE?#`fN>DN)>tD70pGFH$phtc_#x}6iGcXc2j))lt8{7GUCku{~gQD!w{jEz& z`a9@0{iD?B(X@x}PmZr&MZJ`$JfIiH$9Rv`H%3B1jYscMGj}|%9>tNH@z^ikGS%;1 zoEzeKrcA%@)xa6o_bjLB)9dA<4@kN56V?24p^-bJejdB;umt z<0YAynK3I86H`n_AD5D%;LWAs_5P-A>h@c7+;Lf1s_>u(2L}OYGdXS@KpAgNH-n_7 z7BkmsW%~o3P@J0fQ^aCg(uS5f5~aP>ylsGvQjd8VkC@9pey(}7#*c3)*TsHRL<(ic zKYsikhU?G${Uc6voBsa(|AZgkpJ)^IBMU$-?7zolTbNqVr7e{pDN2T71uZ_8ugPyW z;U^oP1RoLpKyK69Vbmk&15&xQVat!wP^)LBYD{f(Z0r#xeiJcbCDLd#w5$niY(n|s zIfrsE0H~(6qJk5-5Hfi~>H*Rl42{jr&4kjTi^+hgT3o&VeI1B3?c}9kGNTUQLrz_N zPzYRu2P}pIDW^TOMvH||fZ23WxqfdayvSMBWV61zRUya?PA5D*|)6b!@%BNsv% zIxvB$l~t~b{7S3%@NjYTwW=V900)}-`}zoh#_;+DwUwGH1~8F(h@CyUp>S!}wK#=rpn?RYBeU?-9JWU<3)YPf_O5h7)r`!@ zP{xNQbI}3Dvwo#oxLbz>1smUQZ572mgj~W(rb`v!KZDVY!)J-cbzxGARDI=#T~&pcI8kK~_W*X(fJ1-|CYNZDY7rYANa8R_1`Q{uRgizfP!6@* zf)>7NKYH>+;r#jg@v7;s4hG&m15)D2>T~5ldS+&Eaq(qfSQs!O? zx>y3NiA#cnzMqxs@9(S~yLD_!uW=lw&w{0)$)#z=276x#mk!t@HKL0N{t!EXGj7LWR#cR z5_$waO+UgMwJeLnYw*-~t}Ve)dG6uSA*2p<2ovQhWB~ad*Y?I+xN=YPh0-oRx0dP5 z9OpX8Dp6SaMa9J=ddrQOHDH0u8H?vn+u3E|y^}C)qD51Ym#_Wmy$Wy)|0u?*>dH$v zvD!l!AiBHX>|kTE%a39@fb+Bp<$DF_R)5NI?{_>5!zP6tBvEO^y8PKc1f7?Ov%z5DD` z?ou{uFNV|Wpcj7W?Tsobx zqC-AUO-&^{8y}gF=Z(VS(uoTj5!b*#0e1s0WFxR<2ra?qlPP>8Ma}q=M%)NQw^Xxb zIa{pYj+q6W)js6PU;r>2NWwE`rK+o|E5E+}EBqmO2xHOF>|}-vNh2(1z2TI(QiXWc zC=79YFyJjNEtR;pnxU%1=Oi1o&0#KXEQ`#xqwit}zXId}kX0LtcV>2$q}#|D5AxV5 zq_z~^!G7k}sn~;hQHYnp`s1TD}YOk-S*Z5}HH447f zlBz)=WAlItu1{?5-o5A!sK;&IBTbx@b@cRdYH9%(A`BtY1J*m9r;+I|vo9YoqsAMD zbl`&BS=Dmv8mzyvEKNUP)rF)WQMcoJhMfEYII(`kwtxI1`0d-b;`W#zk3wyTf-;z# zoJ=Zm#~WW;g`=8pl*a#D!-8y$81%KPIOzbQ;d30Tf@yi8c0x#yfL4@BBiTvV9wgkg z&E@?1?VMQyt@I!TCLx_(eITfg9y^#|J^>5Co!zh6bScDkvGmWqtqdoepG1a`KIb zJ@E=?F8Azm8NiqiSpO!7PWi`X~BUm z4HDHr`S$el^8*KI5@N1khO(fN^)lI9_ydu8U;GxcX7O`C~uu_b8#8hpbW%A22cWXW#FApR*sv+L|HP7JE{aN z#^LM7<3#a?zfV%mP@=*KzS+*HS^;T!aC$v`Fz|I2F95UknkSFjH@ko^;E`1v;p-_4*I@42d_lY`$1RJmtfstB?*N~hbXWGEl zAG|vgWFtCT=|+anbRqpAu_mvp8--=UV>7NJJXUgYbYj9VA;{a?8}k1*sMeG!g#-i< zlyPRj_!kc;-fJ2v1sMU5z6$g5&ccciv>Nn>Dm7*Z%g2!nS7B3<%q<`ho7%<|Brgn& zOAjs=L%gDjN(}BRRR$)wpoQMFHZM+rA)m9qo~B4&HmTFal@R3|8=;&b49%kx@}sH8t7x{%o@Sxu<90CzB7=)rqCQia2?_QI3m_jC_jW z+nCFA^h2mez@nti!8q>gGo_r3iHoa+;ff;KI1r{tk$`#tSKm7`GZQ(O!J-#PQIIoIK*q$GMN}#l$HDb{{H{}@qhoFY3Fo-clg)+^=fMQ zOg=ap011YeVv689Y=LBm(S{#ipT_>5g#@CewhRU;4g{#GiCqRWK>;8qc#$Jy?CkBy z-i7+DOo9Uz)+S80=d2u-3>1ob@#4km0_-RBoEWH&BqRlLXnNJ+ zZGbgcFhJ%(k3!Z5d6i$S4|q_K&>;HAkoU;&s}5={cl2 zpJICMsFjr!2_TmXjXfrj^lid!bx&*$PFaJP1DQ#YliMJQ5)X#_80Z}aHH}P+{%`cn zd_h77uLK2@5JZVqDa-)@T$5o21iqpwr(t^~D8~^A8H`?e{IS!d7t9A=U*By(Lniz% zqX?|R@_qR?i5>L6oJ)D#Gyp^*haPdym9L-AM;HZ<6=Pz-^1Buq2P}b!Ng@cnp{#@C z+fl_YV0fY*bBz)q4&*GEWboA01;`4C!9)|F@PLqlnpzx$ z3X=3j7Sv;YVZr#Cu}Z#Szx}qYTYFP;7Yy&&0AZtqhd~b^R0Le+PD<^XpW^~T9g(yl zr!|qp{c!uAW!L|NAOOBW8g90YMPhwibhO^@|I;`MwyT0R%b#BsMx~ic15d8St8F^SaYy69m*x za2!B^7pGb@q5>bl<1H*KfWCqF-FXcgL-A+|h|a`{^G}e7I1SVR=Q4yF!%*86GJUTc zAcO#vgzS5SIXedi;vnoFhGLG5o6%XniL6AN!Q*SN3upA917gal;+3*fcnwq#2p5L3 z$eYZyW!OwaXJuzMrL%v(slf})HkPxT58d1pO-xKe)((Q}QQZMMwjEIl#*)Boj)Vw+ zg-eEgAxrsd&^H?(GD3g|C^ZqXz~G35=gufGPuvq+7ulA?+{39p#kWt8Di;eqgQ04HC7&XNQ7@I>Hrd%V9{3HUkjcIC$A(blFDMk+&NaOD66DsXj# zyOYz=P?P|u5Q8z3OlzCw`So8gL|^+!Vw-5g&mdPq4(=oF4XzCf{P4bgpS{Xg_2@uT zz~?p`Z1WAfx4hgGO=h-Ju#}7}AMW0`aU&U7`8Ib4XG#NcG*r)O?0gb$AoEDbzquZG z&SKNE7fhEoqYKIoD-~L^k;(i&QN&;VFBB2SFSac$1hMicorp+oJTd61Y!(DC=)npl zti(FjVMWa+6Mnwa!hmM?^ntVNv7p%x9jYLwc>z^pRxm6y^g}_x1(GfoG}rN%m;#R? z`WO}!IWq=~`TqLtt(Kw>Fu#&ksOihvYwS4ZCnO|<(-cjL^(m>SyYo}Ky^mb`+)Q7O;*Rr7p{e8Wg6GJ3Fs`ETaSoY<%(7Yc9n9=k z%P^0p>OtsCf(vRKD|53#%q!!#Clqo)c1T7F(`p#8 zKytBnytkT|#02hQ$U^Jjx&O%IThYUE4uHm4NkSd;ZB{p_4j;O*? z;P210n@K>GwrHAo-*jRypgDwSQed7in4`0@n$yoc1s#9_>51VZoMb9EhxX#bgE>JMoLVz1-yeSScGaApDh7lmKi(pztwJFU0sQ0B+lV7-Wu=5I3OaCL7tzlE z*lfB3tjLHdw+^3QDPeyoX=5)UA|l{i9wi5!lIcL?Lt1+>CN{ea2pFkY+t`qiJ6iUn zFH!Vyk-XNeh<5nrA{PQ<4_C=f9i5!4gRaPfjoU2%8`#W9P?Z)Ndj&^PNF!gPZr!=H zdjz5ZPWC;EK@oWv`kC`hbXI?1FFVdPwQWJF7lL+bAx#z^sH-d>2Cv4KF1LMod2?lS zucUYsk~3P-+=x4X6NH{N7$|_bk&23ppQY`tsSBdB&qQW>_75OT291rVW{49J-liRB zEuNE;<2p;fVL zqKOcT`f)NMNiw1oAmjGdGE+48C`el@mUbUdMci^U2kp1_*EP%)I3x5d2EF8ATbo$; ze7_lDF)wz<=KZEX67x8X^rOzrB_kgM*TCZeW4ql)ejRcFri191a_GZPCfX2`aY`}7 z+J^W)MV<1o{LqDQsOnIk3?(nqyw@Eb$Cpo^USj4lBV+g53SbJ0nNdxYU$3}Tf=brb z>EPG^<|z7BiuqU26``4vgE$qYvb(3ge$sPIcVF&)FmaN#CL>v+behK|UP3=RxVO)pTr|GyHk!j?oZ|RbW+6jaGR!m_`WT(Gu(MZPuxe>>Xo($Z7o2W#EhGiC zf{4GM7o3sw-(U6Z6dj$|E-dkHL;PG^R?L{_@ddZU$*=L45GuNTBK`GWlZwj9(U36U zIAEOR99P!xZ)j;eS|vMB`wLrIT58!^Wl0tS2l0e8y#9jG31Z!0x`zPeLId8mAGRQ6 z2NRtb2N*>!2?1GHB$GK_a=0-WM}b@pZ5Z!7*!N3Q3ubM$Zr)to4k(z6Vn9eHnde5D zgfn`ubqqJ>8r0#;0m3bb=L$fIH0j;#?8~a}u>BcI#U+&#gR6J}^w)8yj;GqjQKF&v z%V5O7g~LGO$K(Jy3kSLq2o#Bl%FD`zkl-dl&}Mf$r=9?>5P!y~G95pUwKup10)ja#4;m8f{5$HV>k|xRhU`&AnZ1uA0A{px~tmV_GvtqViL~B zV?uBitn4Zd-sFadg_k%4nDZwO&ITc1L>Q-?5n(m7-#8wk)(`7%R2^r#6Ndv$O&^&K zhDKDXaAeD%U=V!+nq-{Klc@x-tw?yJ@4GRHORd6*i(%laR&v+AuO3RygP$oz*CA?L zyB38E9-`%Z{G3#nnI5c2YI8UCOj!cqV#bjjONZYLQ+hoEscm(*tk!n@-)u1DEKTI& zTS(E>;CWBrC~$cwZg|}KwZdDrZvAWUDgKKBd%pcQ0ti8j!>a`t^6>DW{>qS1lv3X? zEDHXnK7G9b)&=A?BVb~Y3&4o6H$R%Q~|I{s5Ihcy>O%SQkD?+Ouk*{exM18 z?IFN4JgB5dugqSY{-^CXOSUV5wy8MvtgY+^6r9d6&0IL#CW`w@#EPVMl8}v9;gDY@ zPZbveAxchOJ`B$TxkhpkWvK(kUQeHb)2t>&9fF|vMay_vkiUO(&pi5{9(X;8S%cw% z5t1XyQBTeX1_ojl!ZBv>)4yhL+M1dIbFdz=XS)0l4IpPiVb-2jRV4#{!|%Y|A;~u)Dx1={o{{6wB}mM(WIN2Q^UiHGJukurQWea!z@F^N!?VTcktFJYtgqyPvE!P7gxFwxPc+ zwT1t<0{|=1Il7pYASuP#WPL?MBu>$0Afj^bqHtSnoY*{`>Kkhem4xfQv$Gz~rG$JU zk7--%_lh1NXf-epkThr}bHHebEgr^0sSmK8Qw~$^;soDQ!HmnFt4;eWUBx;Krx51@ zCCq=0uDJ(7vwJABuno8J=PrC-Ch@zm9NH}i`2XncJfNb!)4e~0sEIYrm{q|TK_e(8 zL@bD6V#{CwsW!xoeE>Tu5&^Fo6B{}TL=hzdN)apw2#8>eA{Yy0K*g>If`B53ipcwU za7c1@?`HR&^PY3hZcdWpQDKJv{L1ru+k@`l(8(&xnxM=R+>oSy1VUUq*~y2IgR*my zvsh4!l;noGMA!A(e`4SL6GoTO*Rv4Kd|rJky%3L@_nI0SUsXBN&!XykKDbGmVgYqY zzdYAAN?TT@*S6hE+& zo3mgZ8hk?~fG}jrPH~V3X$`OJW>+o-q`&FlD$@Rcc5oewFOS^D+G%*^*DxnL2^#y5 zbXapv&DB2ZV|KlC@~r#@KmAdTW$}Q}!)>}cY}l|Gg0#&%1r-Nm-gK3$8riA_fo10gl&%sHN7{)}qjkFPNGO9fVISzx%~bpMSIFNg_5-pji4g zL*sHSu~SaEdT=yXo{Kq%@UByu~AU8D(N-?R_Xw*?rNJId?vY#+vLTHgs zSefhn3@CK?0+z@gN(?c5QXhz`#w{-c&8i>|V&{6m$ts_rXl!L*i{v?N9U2w>ze7!BHB}8l0$!}PnpRV^OzTz?0GX}I#&3IBS&mM+;CbGuJ{hD z24J--A0yyeV^{XCw`~F4UB)!K$nIF$xwPeNKyg&Wqj_-RiSX{;XeH7SopKrsU-0wn-+_mQdD8 z41gq6vF!WJc~V`SC;Oi*5zT#U67|mO2Yt-!4d11x&kvBG6bUxw`H;{FOifO(f*1jM zZp&Qaq{=*dc21)37=NbeoS%4D;be^36aOWZ#n$eH&@V?9-W@4ka}-f|)(BQprgVM% zx(mGCRFn(){ZAyFm%B@r2$;s|>6AwzO5m;(Lksn0QiOTPN=;tgr-;%Ki_PsflG6!Z--{&p|k#$2MP;})x*CjXR^b-E|c0ZkY zIvi@K5JX8!B`#T@;;_SJq~ZX)u=sV;);+2Bj<=3KP6px^UPZF9pb`b&Lp*qh5P+c4 ztsUpTF@;`;@5MoW{K`)5;`S^aI%%uqAxWNpXvi!E4@MMt59JA{k5=%xD6}k$FfLP5 zTW)8Uj`7YZOUI_6BN9UQ&<>-Do)8RN4ojo!r0c^IFrr11W9F!yi{j`OE}}o^FpnAV zy5rQK^p~PGd6ykbQE8%@&)4hl-@CAYd^=O_S00(Ri+Q$+40MEnaDI z><%d%Nm2>ROpq>)Z-msccT}@EkunbD{K_;|?9u~TjPBTCDMz%;Qr|069UKgme5aiM zYSxOGDhH@cg=U3_qy2^D8^5}L^?as8{B5(8D$P>qik)AeZ!I4F^8C40LYAo|H>LP< zu-yJPzqR8@prc+vQaFJLQSdu-bA7!m|CGPlJEG=|Wp?iF?m>0=d3i^t8@}H1>A`nf z`8t*~^*>J@J=!9%38E=n!8i=bzE4gz7rYk}n9Sf|r(B;?HHe5&$gNGWpbOSi_M_1p z!7lixqLLF^$8&G_Kj?V6{f`}w z8&4s_#yE)R0T#ahh-sZd1- z%3G9y{NKpLBtWBbH&x8pfR$J!5od(CdDo`gRH}ss=ko;g3C%qCHl3{SQ^aaZfdr1g zh@O1V2(YbCygw4_I(BnYw_`th!Xjf)uoi8ZC((#nbz|=&=aAD<|B#fAl`KZHGGkMx z0-dH-+&$yHp)t4a=fAug<+J+c-{>1d!~Rf+r8@d_Qp-x8``y_k@G@A5d_a=sz6Ld0r5Q| zKKPyT+pGu)euiF{bWVVm#T6|Ugwhjyt;TVbJ?D84zaG&4-4o*xs`0+)q0>jAX^cdG zrc8d-FIA%wJPbEu-af;%2AQh(epgPgP=p*MF;j9u<$-qU~I zQ5}H@g?j!*$#FP&G1rmAL> zzhffL*w8**eZ9V9kk|HrfbR3>R~GIrBOmFT)9agenyp0;YgfAs*wiHKo-n`=T|(Z1KCxUIW;xaxHbQQ{_x8F z!7pDHTRNe{rX1hxd4EUuz`xMz7SQISisIv*63n2woSKiP{ecJyu?A;AH)SZYB0!AW zd#*tJdJwE5l0`IQQ($fID$uTK{dV&l4P=7?QhdUzK>~6ig7k&M2+QYu* z?oHGCFi>J?&~pej1m2gDyz9fDzbA%vjW*CJ`G~3w@yvEW29KV;x8ayx%Ma}!#$ruc zeAbuxkMqN^a%HoS8n$y7=Or+sc%Vy|Veg z$OB_$^$Wrmr2V~H{VwY&ViKSQ@6MlW?7Uz=TaR~pSS&emTA4B>^~c2nK7RYHV^_+K*f#JXz+9uegwhjaA7|;(E_CQ8&;Tkbd9@m z0Q6tB7+??pGc8Q2_#n)%i|+ddB=Bo=M`lY?)vgG=G$m%y+qPDO@8dWc#>JV75Xk{T zTNQ-!tuaauZWg;`TPy7%O`oF*Q=C0}_7XrV`)g+10jv(vorr#bLUPBLeLKJ3yJpRr zj!B!duO)ko=173b&*yeE!-XH)cn3<=;M zoHF91j^mnM`1`0-1tP0lhK(YI`c_OMc##wHz#1e)8MmC+Mk?M~K3o_Wf~_MjQt%Ub zv6re#JPj5W*S>t9O61O)b16jBSl`|{VL0L>B?Hv)MBNA4mG;rZ_=7r!B=CcAM2H`| z_`E!fA?p*=le1^f7A?KR>>S?TFy0eu7R_ORfru>y!A2Ydyt-c^c*xaYCgb7NcKK6% z(5`n;JxcopnbAQ^^bXTM(Y}<&2>+XkLlb(51KNFB1LDtYz<-ZdFFobng4f_A%LcbL zs83$-@KoFChNstXq2~!ffWu9g4hcpOc!!!P(ER49dt1Go-+UIie|L_^S(J1Sa;}QK z7)93hpdR4m5RNMt8w)-4D9U>#rIUArSI?~w5TXMo7}}i4Ae@mh?^evs2(q@t#VuZY zv#|ceYS=G5^CiM{Brkuwm!=7LxKT?r$Kx+y z@7^~dk-B7k3ib>HJGiWaJ;YPqcLo<|aLQjN-A2sXh38 z?RJkCt?${!7ufJiHkT9lBe@8fw$|Y{*~;oXihXWOX_>{%E~kcoiPZPDoCikVesK%^ z*cRF34E88gREZP^>7!WwAdE||r_>HBjy#JPM5-B#N)ksBo*(36(`W*~-3Jj|gxT{Tt+&B+R1->4gH1jax?f zjXN@*gQw=&;)@cy&}imhqq)M`@=g-@%S<_RHQgbZkurHjvTM-QVnsRXUf53}v!RR8 z7#(=@jJL|-@J|sbC5(*3xOXwy5V{L3XI94ULCZEb-81Rk4xj6&!2M zsRsA$3&|sfKb$=HbtNn*o-}#Xka2nMzer0&Tq;@WL=y1%$d|e;&Y4eWovo))4q;G* zw~lI5z2nQlaMfXGcGj5})Z0IuDheLpTG)AK7;CAjcC`JwNRcI10J)nC z&^uB8bh7*q6pDU*{d4aA?AFie`DGU7mCvE?TTpehr7PP%@i0!igVxIAbv*@DB;u`sNzww>l;~*fG&jI7qt^E z8F^AU2Xi$N8-@u><~xR8nCs_-tu==v3&Obn8jcmZfB(e11Spn3ubA~GR;zpD0PMNe z9hhNm5Uo)eTVl+zDIEZxD)}ZdW`Jr|x^V(zxyd4lU&Ndgz#F%n7eILYTrw_YLD9?$ zlmN1Cv0(7`qWg!o`!cCeGyqA-$@wo%uanW3Mbl9w%uV}PdnA_{q&5Y06Cl}?c}_IwzQe2vmouuO8{bm=*@~t8lz*=o>ozAWVrjr0aR)!Fwyp@ z&@r~F?{~7k>c;%S%F1x22vnvuoB%kPbbBETRgw49>}6ZFZteQur1ieQTKhEYk{JI0 zib4c}p_~{06@e%+I{>$&8L-H;C!C#EyxX>F71w@PZ7wfq+UmW)ug8rGK$UW~+2^ae$%fX)>t4LL+PuLhddBYOywfaIe1NCX zOFpIcyHjQqR<_ty8CdMiGbfu!Fe}R6%I=q9fO`@Fjy?Qz(&GHdF^=M# z%Q=|VLWF13Au&EHZt9aft06~~rQ%e24BZS!-_f16O{bvo!z0ayjzD9d$EOKubTwc1 zSqxu}*%2Fc#rDt0u21Z3@RAehdJZK@9%dz5>julH@u4G?FKXUiOu>YlKmyGDciTo- z_@@RoAma5mkccz(={B5p<%5#(yUB?he4CjcTMf7dBa9MlV%1~Xr#igDYNywfDnN$* z@cChPFz(f7BQY`~d{B=XK3HX^@6W|}f)(Q!d|12I^4`@S#4UkCgVRyvi~J0kSYX*FQM?c@!~#) z*1na%#jFms0a9V!l^`Eh1=v0P!`XLYgIb zDQ)d^L0kl|lpm2qC3~?nA>pD3p`7_JeDnU z!sYGWrm4DL{(+xGvrDUA-frhZ-L+a0>ZAsknb3l;Em8=KYA>_Cl8zlKp|CQJi(!jP z7_)Pn`Jh4CplzY_ckSAh7don4%C3|nwWiph<$RN(3$Xf}Z6R{QCDkS4uM;$C`xj6N z8395aCQ@2R*WSz0Zr)f-%rqQo`z~GjG@^ZE#f)y>4gJ(tJH9OA5|&U@+{5DaFMlGe z8Z{VSE_#Qx4G%Znqb{-MI;|nhs0<{us3MmWku&MSytMh+Pt>NonJ<7EM0n%CN6s;G z^d`H4g9$wfp=_g`jQIJ%cu{M!nRx?c*e`^lL^~2H!DK!Sui6ccv6^|DNCl4HZ6FF{ zc|GiR+Gb`Yj>%E1>jKds5tA21;Vr^laRf2a%MTaDa{on$*R4cQESbNMr5wV@97)=n zg6YWyz{9HdiL&D2{T$pS-19^M98T4{Ra6vClE14cKG^(`uH4mvd#lAtflT#9fg5m< z{3K{-LUA9(O8`-A)qubBbNf-UuEd=oKM1m6u7N!ED$?SxtKNIGdo<6vyKC=V>rNws zK-nwAD=}$$dM(nv;5~~4=GS!Zu{+3SMcCn<+e0TpAML#zLTIoi)ul@KG3YC5{h0%F#VQ5|LKkaV)IB<%-9Rvx|t%t+PF^SoX z-8JCw&i4nNp=i<5Yx?R(iufan2&aR)XS&V{|+sD#O_dC`#|Csn7%twVq7`+LF&Uu4jGkUx<*X4K<80T7Z0TkS-w$n!<}!s;WeZj{4{F5a_T)(>|GgJ7u{00*EJS z)CUNn0y6m%s=h=dga}k@LewjW}+E~C&&OlTG&ShhxGn=PrbJ- z@mq5HleLv~eK)oe;m%MrNn6d1avjk00?WUfqI(PKOdZCo+vW}Bw`gtXSqj)X9`!Fg zltLo#1|-i!!nsbqJw6Z&a-@tPT=1wNQLG!}E{it3xmvpm;x}|{1*0F3XI!ID1#q>n%rL+2^%2H9X?*C)5q&A??zdH!EjvzsD6AZCb^G1@c^^!KHdz*Q`kV2T z|8&sC{%`xG2_0>ffhw*9y>6}~#|&y3QlRQHti1x7NG5_wR<3wtu9EW}`DF$7c+u7i z7&W6LZIh^5$WedZi;xm@aAmkr^Z8E(gFC)BPSGsZ0RCJEK^E&dFb39@T%=g^aixzO zO!|x}|G<@QGdm&*k_?XR+wJdX){6kLM~`S~L2iPr2A*DC3}llb7Yi@gS59 zF=zxtspI0}sOjB1z12`|_sZcsbX||ap)V_ME*StHVu0WF*QYzEI^Z^nXm~iXQW-9Q zb1?w1DY?Q|Z0ApTxf{K)B(U=UgtwAd7csj)v|@5SUgh#Z>G4q$e@&d>uGKY!#D137 zNuh~>JOM*AdE&XQt)78$8PSG0p4JGDl+tFF$EoKEQQ#i(iWm3Wl?nZTZ5qN8`XRA= zHg-z-a}<2hAnf6rAJ^1qcv}*6EV%?AgOoUS@VbN^ALNloQic}Ym<)T_m$_HuJGdh6 z;||ws{L2^m6E0W~+$__mvaUacX*#RX_@7=^7Q%vYnoEeNOrHqO)jst2PR)iI+V@Sh z&g|5}!TGHLG-+z6kjfMnPwPS_Lz$JP4PjVGuf|wUH07ur#h*m6c5bi>!C3TQB3$5Y zlnHBulZduk8e3Rw{~*IpKRx?&F^29b&d!xyd(?uL6(;MX1@79_3sF=2yz4Jk6|Xwn z8V4~}KK~&XV1wlJitef{ENr|qk#B_Di+r+vUyMXqWe(_Ps9RjyX?S97jn)jyU<1j4 zpyu3W02cS?rwc5(EunWD{+9I%3F+tY}tKK{$=Rb`Ws z7unO--~nbx4I4Zjac1GI`0BEw1CYF8x;yxI3=&UCXcaqxM4X&C6OiKKr$6}N(y?rJ z!JwI@%kl=Av`Z>xhMO&oQn}Y-qzBTB_%{2 zz^_;|mZtQ`(-U7PD^*^OB(9`u;H(cq(eagWn#A5-(sZTR6u0z6(>h1kbG*h_T<_sE zri&M7qW!ow_V3eQh4WDv16v}9c0{`b04d?Ve3{_6?M>ECc95aFoG9!gGe)t|uWi2~ zx<%v{!a@MFf8*8aB$9J}lmh5%#JdHy8UI2nksn*THu<(Zd$3aRV~bHHpM@oQ904sQ zj+kPp;Zp9K+LbhN#u3wYt&Ai*9w2boj#c$LO$px<%#aqPZPE}Mr)w$8thsJEK0KCu zkp2ia963keZP2~*M`h@=K959m(4dqYR~Ma#<17rxQjd*|Rb2{M6?#|kolIpC{<@$b zaNTWRRRBIYaAAIE%(?qV#wO8TIwvg}!G{@Deb|E(kQ1pbCRm(b}=->Y=M zjiz719sWC%*8kzmUdW24=7QYF%>b@970Q4HSLQIKj`N!|ZiWn*`y!L_Df?a5aQ66DppMd)Ec4mV z>e>2Lr%MteJf?U%(dVx{?2;hHZPnJw$xA3B(O@iG_*l30I-)HRjlBQtYCH3a4?tfC7xjVzRRX?+1wqVktD9v{XCe?O-Xx4e)GXkx63#Ce4no23 zr!iLh5KFKw#sR#DawF^f7IG}4IAe+j66)pQRhC(`ODb;+UP&~j`J#K@gL4a5Dl-{5 z@$9I}-RnfA1oZ<8CpC)!1s0#w2+6<2r;&68IP0HLYPPlY1D-KQ!~-(Ts!Jj$IrCDF zcGTvuC?Z_-BNc}x#e{#jroKG)g5ic>SYd}}A1ujyoaXXT{JmoojFdp!4B1bgBfqG@ z_%#+bKon=uyXqltBqoDT!+j6uz6j=MP3#Ht1d!A3X~!FHjIPHb1E|8``sI$!peQy# zaTu6f!s{Y<26%CS>SFRziwQDe6r(&0e81v-QXcVd;jb6g<-au~nT`&#LGu*lBvkp%{av$;V;X|vLQA%DaB4;5^Y8!M+w7%uLv~2QF=OXV?M?c@?~lOrzyL9{d9u<(Vr>`wtE6s)U!2T~$=aV` zD)fLDrdVSVs46Hp*gcR!o;cw!#|^gKN4G3)A(*@scu__NOFTAxU}=6#5CC@6Q$q(+ zf&7G9XD9JSCQ@4PLO-!7C~vm^_~WNN_BU95At8|z2T}|$&@Uw~sADZbl7B{z9nTAD zo)!o?j{sm%B4xQFu0mG)6vGqYJ8LY7jCC--po%vdJUF=NHcIan2SaA4dq#73`2&(V z^7f7G#94BVa*r*23HZ=ZX$gDie}TDxN?EB$e(`q5UZ6Llkfz#qElhthe^10g74)e2 zmF6dW8up!{nKxAOgE=JoMa?i@cxMe3Lo+m#Lha$m!%abfw2hBTBtOKZ{+y8Z=k1N} zKW=YAtgM$+ANxG$yu*-$8DpES>E$29uh86}@y#kMO!>8#A7_ifbu@!k#kicd8_Xrv zGU1}tzMj;U39DYfx>+phPFslbnH)sMNMBFb1GIs2Pf8Tn7sm%fqSO!Qc(;X_=61U7 z2S-O=vY%{(Qta@=dE3zCP&-NgEm1n)wmoYv|IcLApjv@K3ijNYTqkQEsWe%7SB(f2_;zdcQAGsy? zlthDpO_r_NF!~)4p`|a_RFr)D^-;C|GgQDsw;wqU&FzIhZDXOOh799rdmL-;ze_ zL7(ksSt9G=E-H*oeck+MO83{6-A< zdYs-S%j$??k9tzoUZz#6UcR8oQyXwo5=PX>LNjj#o>bLqb#+7KN`RH616?wwd5oBE z_Y3O*RfPatv>M1C!jPM@Zm$--h$m_^M%2kxZC=5iD8cMw&)91}zEZWS_n-Ab`^@{e z{KO19i4_vtG?pC>05{!u#JGH@b~Fy~i!%~kn={0c-V*)!T4KO@@+jC|h2<~Xi47G1 zp>gUswF#&~VR8!^_-qagQSKC4GG$V3RWZz^X8yHb5Toq|it0Y+;Oc^Z!uLd5tj)dq z4cLO@N$IOxe0+RJPeTUZSwlw8kRd0MyKTP> z`z;nD;1K!}TuE+8bu}f~r{)zbS-Mn$FW4~>#sf}rrRHTj$)%-HXY5OEHQmAkY?MZE z7ikRU*Cm1OBj--=8AsGbG66r4Rd?2Qn0l!9fGM94w<`mj)6#q*_g~ee;$aJj{T6Wn z<2nK#uG|p+9mkC%Hqq^r;KdW^Mb`B`pm#h&N5Ys?O^B(YTlCX6LNJ<$@se)LgUKsk zNYSKe(4UQ2Yp1JOBfA=cT*8&81~7z~K*UjSNr1RacYV=2~)fImTvviW=oUYq@5%PxAosQTj`%KK6ZILM+QkVbvAX(D6~h~ zbm0DQhbIHBX9#1n)Lpv?(@))Qx)G2dmK^rcO)o5*3@){K^W(D{7irUH6uwti_1Aud z#|CHpPPOg-W#A$ymd@D{7ZY^jy6@b=cy1tLd+JOC(;~y zpW}lGEfp61s9|I(20AYnYQYycp*!on-Kfc>$I(P*>}eU2%q2WZeXq1MtKq1QW@Fm? zp?t5*@e3Co246>|_dv+K$GrMLTKfc_n^4-Sdpj|ut0?9CH=6~qkU0_ ziD#YE>IDlvQ79gUV%(CjEx-wZ%Rm7X=_bNoLN7{^J6S#pmXJ5~@EiIA^dxG`O(d18 zMrC+@od4Sb_+NM3r31|sj}B20p$afmN@T+VJjf4cLq}kZmm-tLt(ewd>nca}*lN@$ z-r77FRtI7c1rE4*bCt~)$7oGyi58zlIeg;BKPZRy{`2?O_<^@OrHU5>TNG@-EU&C( zO0&R5=qeBo4K&wRDEu2|6oiFII=+UB72rhl7i|a@LMY*sy5i;Rj*454K^-LyU65o5Vg7(^VC1Bqn~X7zYwD0{F1pcFundME4d)inVIb> zJ-Pg7>-Zb69s zFPnjN3t@afoVQvfPIX|~%hTD6Gmba{Ml=UzP*SIevg#;nDkKXpk>tkEz_^I}NRp?_ z=3Se>jv*KH5>$bn-r=u~>-bJOuZkB84kxSKm@yk6r|eaQBAo{z7Zi0xY2^OSKf)x` zoz2Y5=2J6Nx~#16XD@W7k@1cCVf}hFA`Yq?$T6cIpFU8L+OAWaGN=Y^(})fv^DHiZ@lUh>Rzv#;M! zq*tON5F|h?69F?SDhZ2I#iI`STFogiwc;sP*Vk%q3>iDuzo{4+&pxvu69f#=1Zi61 zW69wy;jw5bvub}`Jw>6gm}hmS2My8`*A6dIyW}f|#w;z%@2#{2bj`Y6arbUFrA(CF zG?UNQTw+Aj)krS}4S+>=;8N}=wwJS8x^70&m)wyD5e?YMCV<*#!5z9Ea=%hKB_BXXN zP$=}5iQ56Gj2WRYg4S%_tg9Fr&J&f{-y)IZDg|{^OzU8HcN-U^6Xkj}qX?Wu*~#fg z9A*T{VHwIU6FM0qrMD}gSLyOR75N2fZ|By>EI3ltVaSW}Cv@j<=}j1#XhrCzfk~#i zy681i-13I;F;WWfvw9n^Whq;~yqM)Lqufy!LSRF121BZKQ_{06u>YkF3^Gq;XuSz1 zWGN%yddAf^dI0I=G;^3^{O}|T7&WLk0Y#g%Nq_Lw?5&&vM|hkfP@#@Cs!7tQ;_ExJ zLK`Dehz4@)%hl?T%}6SxOju#>pL3fJQ(+(^4Ch09#VV7Qyf8n#q%3$pyWN6|AtRw= z{tt{=P}&l>*6j{w#7uUS5Hn)-VXzVa`v7x1-Al)tI=IeE{ zZjZ}K+3>ha!|jr`D7_m&*M=ok$|GTJ`iGSTI6_3N+$ z`bASP76#4ZXzcDXb0IHi5GCoAEgTgex9!pI zC0KL&x*N*hE+4;*+M*8Jn-4*s^%x&9!Sy7jInTEVV{^ z!-`PwhTUh1UK4`qG-EzrWspcj51^ zH=UmU`|IVq=KcEGanX}sUsAIEI{*9YKTojy{`&QffBg1qcJLb120ebf=FaWg9kIp2 z5w9;;S|*)5dD3*e)uY{)Xu|#(?$J(`PMK4@m4~;jfO2Y&ns*- z?(9qLcV`jz6;#A1jhLMF^*VU@FBZ1lyHE9}kNWxr{&;NNJLgdftooAM1=%gyK5dCo zOHX-(zma7X5>mCYvZ4j~3fXjZlm;3ns~lc&3gcO4lu0+a-JW6AUDf&djRq}fvM;r` zxYRP_%!5rSy$N+J)X^pf5u+b(?&$i2;;6Y|EAItboL(h+Yg?PVvM@h?jY>wVyK>k5 z=m}XBmHpWVho?uICXYQcS=GMyC?C_&>sczk!geXO2?iXg>EF~P-1jS9*|XS_TUT0Q zt#4huVPcLeGZ&SSTjz0YoNjab-87Hq&-YOUEWi6FT&wxku0tMameP4j*5U1zU*?%u zHRrfgy8H3yyR+zKInI0Nu!>?YZ7w+5R_HZ(h?e!t(=%M%VOoyHt(m_;2CGe@Y0#LZ{NmU z|9W!ecEL+g%8BxqEF$BI1V&lKRVnrJEO3ifwSV{liiicCfYpuRTsW~{n}L< zAJLaSsumm+B)iq&#*H`pH+$4)ClrQ;e2!Uky<5U8i>u$bY16BVJ_5S$Z!et~$YmB1 zew5$R+RDbla{Ar7cWv6by1LrpE!!})m5tKl>k}${yz(ElW5t!@Y9!1$N={t9e3^U@ z?lj8V+dH;vtkpw(xaFxt*L{v?Niw3*s>fWIj>&J?vPF$4glkg%jGoE%0!$H%Wjq;o zRr~SQWvf>!6u2L#%ye)_|Nee?etv$qoOfn>M8>2|O-+r`+pG7SRx?MN_tvs;bIW4P zswx%KqjI;~T)_2h7w7DIU~OAD^5Vq{>wympbdSubGX`}DaymMpWawtc{boy8f~`$+nfeJf+3V!8CJ*Hq$ga>9BDm`~Hj%zsalG=?c0<*nV}@+;sYIxr7+) zuUoe&1JAjN7EDhK6}KhZe7(aE9%WJJ$)hzMlQ9vV|2Ct8BiQJW?KHg_^Xkv|fgjUZ z@G52AeqrIp$5+oEK78be3nqHg)HpuW&5+NamirWK?YebWHZU-3#ma0m@6VVtbel9i zx~*+QZhEqrc~)oJG4se;jnA15nWeA9y+pfp8`F|+e94-pk?pjyO`DC4ZDZBOZQHJ$ zKg^lh^Hy|}Pp8CRPs8Kt-yc3~Ip?}PD$X|`U{`F9|A|{GP)Htb7fQ(&&@S|p>m3gj zH8hMq_eSjS%tUpjwV9#4gWxLX>@iGBCEaNkMxMj?@u^oGPlUZ$F-}J+KDWI)Lyn>S zjjWc|tI}BQV!cH5*MHvpYM!dUOWEJ?hs0>YnSarXGnM4cJ+kmG^-&&!zP)K zi(KDh|_ z7p>)GW$Xv=;H7ypw0*5!)sB%xO7Z==l5$DZPuOn5h7BxKYm7F>{$}IkxIf>`r?ReJ z3Ru4DT5lLjPbKR0%p=$T3W%HtC)o&i+qlGJ>`>UId)80HN{j) zPcJ<8#>D$*)zpe$F$Nz}Mc$5&k2CTc2f1^qDrqLO$-L^wUM(^#ch_u>h=@90lWlBO zw5qb^3zWI=*RLgGGG|g|23#Fv72A_;G(Yq8RqM1?AB{>e{r2}#v!2gVehxEM@tU*r z7zbT!H}o}?vjai>n;00nyCPz$hC9pkxCBKGu31v}}zWHcOiI{tYG1%Q#y(3?efW@>!ns{Zd- zcAlrsJ=}66Ct_l+gl}YTU7{Fm*REZ|wfZrg)#?sz*o_TnL@SC(*Zq(Q0%ow{; z=qI9n%%ZQtD0BMNw{KVQ+GG_@O>J%c@>k;b@7;UCg0UBM6&yStZ)QI=kgF80=f;`z zWj^cPz1_HX$GCGb+gpk|ZZmzzuSSq~bf_VNM)aEORBMGoQeYm-evw16J&-n}aj zk?UcgZqE7aMsrSQF0%u-23v3TxkuZijE#+hpZZM(JnD)wYHIA!FiIP68Xs@>b5Of1 zvVYnF4_#i_!p`1f%8ZGNj#B)*Ktbik9f|Id+gy|P8w?dN)mf-0nfV0;5#^srQTdW4 z<-oO-k}*2D({V-i!3^xC?9K-^3)?2`%uDJBc<|{ZRdCDv(4NN|4;?y`(^($E;Zo3Q zyk)`S6$cCYYva2k52J3hP29cv$B~&PlcU>mP(oD=H{YpUF|Xww>P4V(qG8+2;NT$p zei`0ZVw}l;e=IDFdY$p@+c)EEjcr&M@&kCzvC(5=maYi{T7USL8Q-~cXQO*Vf8d{I)c<2otkvuNlFfS>uoRD1Y*k&01FW z8B6B}2KD`koP2x=5%N(q*~8mh3blrk8d=5MpBHpj$0%R|a~#l5tSeaQJTy{gb-2H&E{3V53i&wJOXK)hW8SJ5U*kOk3)D3Mu7LAAe9?qtJ`SPc@7jNN| zRa1st{OY%l(x*r2maSYFbzK#=Ul~MQKh%!W5-R4wxzXL=^Xr#=nX~po?Wdeq`N-u| z+eL7?^(JCd=mKE6(|V293)mxMIcL&wnrYAHL%lVzAw|tYLH(R+X`fYQMl)ws`wSKt zjRm0U+I4={md>kN$Mf~U?=rI0>E$e5MGHFX!Wecr+etVoQvf3*V9|GtvpSdl1DO{s zVZrF|dKGS)&=?w2fMo%h;v1-g4<&x3~#WvfvW4m72h=?`g1ii+kdb{90R zNEyi48WG9C&MsQ5YT?88wMyyQwaDbDW>*n;#RT2*R|K9!>>tV%nJHBfwjI0P`&Wbp zh9>H*ivh3Kx8~+TzjH2(a+-F*r(DjL4K(K#EA?Zq@o2Q}K46lZ(rj4bfAiIa7guJ| z03Zb(L_~H?7}j_tJl!i1Jz#Gu<;qnjeDvt0YBifEmQK{ZsvMWCt=EsH-Opt(8q5j=7J>?J&VIHZ=L|2j?*pQW6+Qyhczs4 zWVj9MKdW$hJ>zGvG8WXFlmH2c*k2c^c*G?6_3PL50%S9J=I3XW!_35_+FD*29Gx+t zXEL7JpAliUBEB~jb3Q*W?+Hu%wHoOtrTB2EZ5g2!l#(2OghtU3hT4qeM=6Z^zk$3f8^-;IC)%gULah@df z)Nu%W;!@cn1{MF?w-*M#dZkz7&Ce)c8oFw`U?@0=8g01b)M_iaCKQ{3X>UKj{>qWe z%&$IPUizFCT@`tO0=0=o{guKTCc_<4^!_IGRP)|JORug+i9LnW`IblOX_>fn^U2xt zTEU#gsRtnz+F<-?Atv54|h3%6_QFyp7zspg#*e77o_uEFKS$sEjgkqrOsiqyN01P z9Q7$MDd}j8p?`p3rDjvOnD0pL+dS9WZ4nzM4OQdqhT00_fk#?_o zeU2#rG1EkSPphU|$FE`%2&%7F!RCz8eWWciGE%93b>)y*Q+UiJhq13qToc%sXlK~1 zl#*WAR$3ISQkM1FdCyi#LN(Fu`t{c-X5Ft2Y2@fshRfv_7b{?R_#Hlk%SFWLlm-aI z1ZGr>TI8u$4@hh7RTVMsd0yOgpw&1zjlKUthV;mRN1>tn`friDp?Kd}NZHQ;gV8}HZXWm&@Wzvv5IDA8VJjJN;+1~a;f`auIe3`Ic z)jvM&Hr^9k{HfKjA*J%DusXfr_3MK}ZPNeGbZQ?>);Q1MEzVQ7vQ)4#_YTgFR zPnsmFw3UBOx2A`idruOCDL)w@rfD>yblF=+ee{4tWsBgW&4=Ers3jX~x@oF%dbE9d zp)q6I8((eB@aGF_+Zqe8^|xpM!GAG+Xo;|%DjflYmqx8-r4j^Ks?3rR8pw&8iR|yT zR5VX*@OB93S=iwF{pzl7T^UWjgRf$)UcLIf;LV#i!Zjj4o>V{Ba2cMvyy3dCbK9+g za-NnpI?PVD4FY3*Expvj=^@6U5M3c5GHqIwg1Pa$z@pJA1O!q}mnrb9OZbVuTTyaQ zo2cwB7+!{l$YoBCC=1PuHODtgHDOS1(JOgp6mH`_H>6l5&o)~||WY=Me(ZR8q&Vb%gi#OWUdEI`kJi%)}&Qq1wAR%uY7775|{a48Q5{ zvg(kK5Swj7G7>_XoUY6wGm$Cx@8ADK2W|@=+16hZo4Y^La^Ra@fr2*PV`B~zzH{M{ zC0nzdS92+3q?k1K4m`x7+wbS+r>Bn|6%kDzH zChl%AF|mlZJy6RE-}3YGZ*(7MwFpb;cDg(^Bhcq^M7!uYy}_#8N6x(g5`f~!D=)*t zJ?1uU14W)Z5%tAb$d}@Do+$doOy(Dh%wBW%;WJW;Dqcy3)Bo?}fsfnQ?11RykA0^D zlw-8xUiAacl=IzHQRP6aN?#|QKi}Njn6CWf$rHD#wcEFY1e;e{P7S{$^&UW2R+*EZ zUvad-LLF1lWATd3{t?kBU6I91KO{};qRau|{B!l`?3pvV*rvKl1JA|Ni(ec$2Nfq` zphP*?w!z}m$&+y!xvNm$!{mWCwyVcapJ7l9!ev=j>;)nVgbWpq&lZl!Zt9v$m2IjX zcneA!Id8$@^XxAs1BR)SU7%a%h&~eBO$asXo;~hfM{;}3JtCT_?OM}E8;^L1wab$m zr&MfTO34y4PgTVdt_C8BH*OW3p6+*0z*_w4ufM<*qj4LePxpwIVcACG?G$e}fet{42-+j= z8H&ZF1W5!k5Ac@1Qq$`weOyFcqLG5J@mqob;*FYSytg<7y|Qgc6l~BIFVeu1aC3Km z#g#F35(1eFKEKApFzM@Jp`lMl02XiWk?`$_H6Ji*TDfXfReiDv^n^pKtgJ+oynpxZ zW6(oj4Y$XS{UIt|!Y5TPSS=_SLLUq01+tzP>5UMw8PRDk^097ta&7}Na|}2M=*m7$ z&Wk7a`dRBsmhGko>ttgPDh6I$hqx1^|*l&GH1TBHhLU(%`#-*dI?O^kLz_ z71>QE@IP5LVDF`+r2>EphAEwUqSP}p-W!Wd4?msx?ksYih9BV<^ePi^1J8}NUaLxokYBI)Z}M7xzkNkk(>zM!L`R@2A)^?s@nah-^IDCm>kJqiRX9Dc z7qPG%J^H!0G)ozenbYGz!t&$6279S18Mz;WWt*J-?sR#xv4BsUDuvzPSXj&Grc|Hy zSMy!UJD)WehV;&Vj4v*4ep_=*uf$P#)6JY#XC;&^ungT5q(kL9aC6PUfkb9-7?FB2LwjT|5IIW#;j!-RwtM?E6=o4tC%xF~1qo z(_||*-T1=CCki^4_d-e$^YjG09OBV5)8e#ePoM5iZHNZ(oWww|?cICs!-o%V>v~z5 z=1X3_{1V%&ZYo9g(xp%!aH=$x?D!qwtfU`0S-JVV(70X}Ho#x#=k|~OXoOoMkIIAZ zc;@3{kdgcuOwhr30T(vYyiU_H^La%2!kE*7utl#6otFa#2gUK{P*U}<8J#?Jieo>Y zQKKNizGo+QuwqvK`0>AMw*8&}|2CtL3J&qJPw@?0E|@mYQO|C6dK6aQ{!v9h&a$$yXV^EOU+N5Z zl-l24_4AD!_|AlYiTLl7#1X~AtZc$J{iiMpnlSK~wN`XKME zT?Ki0r7wW+f^v zeqc12g-O`<5^+zLEnD`<49iHAN|nNJL+dB9o+u4c8%r2OT(u9^0jxPd;2$t>$zu=Q zxPJZaFqR{HCT$lW0}-*^t;!3~u+wW13XG|T>=iC+*ZyS6<%k`sRCF6aI z{Gp9++_gDXkg)ffe=B`y-u$1zkHeTN&ARyq`vu8n|E*$&zotMsYxt;fPZv;LI;JEDd z*Y3&xN`Hs z;~F^+rBGQlV{0(t8@FsBGG`bJW-Tj_xe#A#QGi^mpNj8av&{xus8K4((ol?fn%G0n zquRnK-QU{Yt`9IuR&(5y56eE}=IVd{^3Ke(vD9L=m+qK17KJ`CAEm<$!!t^C*D{LpJ20fFmFT{H%8*{W61QoDAr zv)`W`<#?y~CKS(8e$1*9{}q?NSSrXh{xx)tV3@-SZh3&wBsQ1Q*H-OV} zk4|IOupc=B;pPXN1Berv9m^HzGD{trx72ay(?$iAoncqCuBq=UWQX~ukYr!;Rx|(O z$CAJAt*1kp$~R2Z&ws`i&saXUSv%5KFbT*K30k49-n`DB3+s;Q%!aY^6mM;a0+4QZ z12e0EWyxH;_-I8okPW#D-fN%#%;?+imS&%9J8q0(msEe65oiPgte>ylh$2-QrL4HN z8ZKzOd9M=csaaQfh%2!NN$>3XD2a{slLk=V3j+rsQk4a{;t-*HE*Em@egGsH;E zqp@PjYP%tTQ;JLGK}{y>VP}5UiTPgyD_)*jk`6bfHq9y)ll2wY9V+JqsKm(t@H$27 zcTh1iD+10uAW4q6IBxi==cTE;{811X5B}+xf`N&)cg}tZf95<*tI*S|YDGP+y#%@= zl0LgI*Sk>4qMLXB8lruKts+u%2Bt)nCy#y{WDwXrMnu1Y!NGIw^FhK(W>y{9@tE@Z z`Qnv~`}p~jYmEW<$OZ~>qGV75#c(CFunO3f2TQ|^TqcAa@)Y?-#Gr%f4}AOJR;3+V z!wrt3H##>(zD&`bMW#-G$POaDV&H|2GKze|z;Sr+%fz_CPAo`SJ-+~Gjp!=V zg9Th9Hv{<~#iF0ntFW!VWbPsOHLvQk3J2tXr&|d)89qHZ8iBnW;WJ|Oo4s4aAe$Uj z&>9}HZ(h?_XNcc0NL?2!%qQiY`xB$>CPzFEYu@jJ?m}1|+sU7An>C6mtOVgG4thzf?_FW5!5|nVbm&eTM~=uOHrc1bKsH4ficMHp4UrncO9(ZnJv}Mz7ziWUARI4R zU2oMJjodhh`>_e*km%f=Kflx$``2IdgM))nro~S=ttf@W*4@2^;_5b1jO)-VFszNE zl8b7z8&$38z2N%81En}-okIZ`f;3Bj*TBF4f#sj}PTzuV#KaT@t35`=D*GUG=>60( zly0KE04(Z$eSe1?a2EoaDG-sh$SQvU2;@W%Imb6Eh8xoVaDU^(WYesg^OHGRPrsF` za^QWZsUG|TPa&HG0P}Oqc0qVJy4Wa{VzpcpwJ-uS(LICotKZ5I#6T|TY_*Ds%fxVJ zU`dH2KmbYu$F5x`0XM3U@hPe`q<2-4f&!%js{H%+Co$ZrDX2soOzw+9qu`y8_}O>s z)S6iB>J!{QpXTxD=9QG?HNBAV7`NPI2}2a8^5U>^I5+i6Z&C-b zCd$go<1GiSnDx~wB40ogZQS=9dNY!2+zvBSqTPkX#WBN$^FzwnAb10+S#DfE6@#(l z^%8fwTrr+OvNM6b;7Ng)iruRn#%{Up{yFxPE(V~}ntzW@KdM+DNkf%(-7W+;9f#Ts z&*Th(hOov1C+OWFw{PDzHd>76%xUOJq~;UqRKS_~Dex$EE@axmiFJj|m88esXJ^MF zSBMmcKA01pl??bqU4l50dzbEXlSB*2%wZ#-@7v_<2Xj%b* zcaIU9@I;$vD(1np3zo*#ld4C>46feqD^}(hCpIS*`4;B@T1!aY8 z&z`dgek2hp3ceESTasAUd*8)H4)si0M#c?11-VHb5H5n>-)a_AV3IBy-O9{t#JPGa z@23l=Wg!RWc=LT3%^3T(oG6hDs-{x$^e^?eJqR;>bnkUMhpvA)ZukA&5;dc0n2E$e zUbXA@ygNlveAu97^%NpDmE9^JbGXex5q8cK7ELWJ`D0Xl1T#@I$TJqBfqS#>N3Pe` zc93e4NwR-Xd?Q5G_`9Edv@Hxmuw{CK&}e<&;*}p=ety7??@uU4T~RYGkdUXmygNVh zaYaxb4;Izy?-o_ADwPS3Q_*aW;sRVoN`No}0@a{QiN82}W|ecG)46$;doXzf-dPFJc;*ZJ2{bl9>b(LSooWC3WPY_fb%{tDBuj*bNk0lm>XA=U$8uFgzZ!vF~4v z*Utcg>O-x!9;wl0r9yod*8h>>0yQLY)i5w}=*uNY(7gmQ(|`BZqRI?SN<|g079BoM zdEi^ZrY>HLHr>bZvxw{{Iau_;str?1Hq(B37(u2E&~SczI~5i0iP3(enI44ntm%44 z3oFrx1P?6kLfjP-MEJUCVw`LW5*Qf>6)%BIdsKn2X)q{+M;*f#eUuO= z;3lv`Y^Wq%kfB^6QM1VETgAJ(`3eYWu*tcSP`I_yl zkLN=RI@XtTO3ZzKm}x)-Bzr{DlFBAf%lPZpNUD4C8iXU`rV9ozvue@Y9W#9TEfy1z z&#@Xt#}w1AqUF!HV&1}-1F9(%O*?;n1BDWf^6~4(|K-g7uaEs7fQXU!FOK~eZ6w2x z8hc8dgPcc993kbM{Rihe0s1JY+XZjrkkVL_aByC;25DY3>rU1}q)0Lm!AK_i z3(4vey@F5~`}=c?&CzYq)%jn5ONnm;zFk-hF^en$)Vhnv(Ro1c*SK9}0?mcsI#|I9 zNDv!lPMhPRI#ar%Wo&KJ5U!qP`o`Z1KvoW0G!m(Txc79tV4`VuTAlD*Sbx#c$!(s$ z7rA5WB9-|&5XfCE_}vjwTSct4M1$REgI;C08x%DHPC;15kDV^~Cx~!*Lql@z*Xy!Y zLz$6~5`F}v0H(~*aiH-ogf@u} zXGY>$&xeMF;&E+u*dA(AEn;BlT)A?kBGE`))ufOI!yusVRd(4rW1@=#8)P^_R%ld^ znVp$7>kRgAKPD_u(ALt@fy6*co2Pz7hy*j0_EX#iP=dJIzpPmuktF%ZOE00+o8~A1XR#jrJA*epSP1)MPrsZDIcYSyPd~u?QJJGA=C(7OMml(QCFF z`|A8-Q}rVX{RG$t9XkPX`c^Q2+EU=NlAXZ~zLPehI2E`Ek}yg~BvKD>s9IBO{k+D; zpv>_$FE?M`=noGVBB0-s@O1H#|zH<_bzi_V)I{Mw_7SLc;Xe}($YAOofgEI|@3Cx2ZO$fxPW zts4O7V9=PRNHi)<57joQDS!ade(?N|2I~hqlHz(10LK1R#E+nuEdhBJiLiQ@?PFKlGkjTFvPMhVidUQNG)`u=2w328g zBcET;Yp&n&@d*jiR=&P`3d|00`!w0YtsQGosW-q z>NTX8x#ZVg;}xP;$PkI`%9Q}pVFMvcuQlJTt>m;D=;%v`V8OUmq;|#C?dWdg(LmA# zu=yM~v_=Q^gI<~eoR`(R=T_$RjAQMM6dgoagHN@9pq;0YW&%#tln%fmdBm@=ut|6{ z*`%Ev-DO)LpM76!g7{bkwzyc~Oz49w)DQ_jUJ+34eika)7VPf4A&MxP4P?)rb%I96 zPMv7;GGd{E-46_3=YY@~XEzDuwlky_VHr%uf~ZL-8u@Os1?n>aa~YUw^xhCh&$GRI zG>wgeilHO;G0vi2t@rbrQ+auLO3B8-^3f_`pdpEgdJ@npMFO~QS2=t)edK&!1^eW`nmT>n7bvo?ddi1Lml*$2Bj|Ie zs>6su>DMRSAZYsFJV}AH;(oVP1v2Irrkd<0#id&{nmlr(&Alh^KtySf7Ueq+S-!{m zMVpq~BUbf^4Gv+5=$|IpP)Nk|eur83?P9o$GLkDJsVlK?OPK`t>O>zxdzl+F&!8X{ zQul}2ixu#^0fS#*wkmAa$5xyyc zYfQFFfg$5!dllydP>TA|b|*@>-oq(mJ*lh`K^~1$ToITpw4hI)J{j{3=?4sJnb+*? zFJMm}Q0EO>vtm z8Xl_VFOtOp{fO~`ny*hxh`hW*&BuOP2mU=hJ$j?60!#ZrvOc}M3cvyBfOI7-OSD4T zl<3;9Q$3ADFy`G)C4|G|YJi(akj8m6Gbi6yBQzJ1JS5^l^0W%9?%0F|gonuELk{*L zY!#`~r*D(a3^K;cH|-ClD>Jskecnev9%%|lh`hX+XpS@JSExR9b?)wq_O{n=qf{ot zkFShT7a>HR0H`7*W;}bO>8q_ph<@>mO$G}21=2ZajYXaxwR+jIG9<%cr(U(+geG2e zF2ShSUPd%})U?k{KaZrXt!cdw-mu%f^Zev5PoLt-FtV4hL znKOS%uH87`ekgnE#i~PEjHVZSjJcPy4ZY;wTl`!phkN2^@M6m&nqSUu*SyAfq)`?i*@)K@Fcw2ahO?VgBC zANK1`uQKcGsfisN9|Kkz-X?f09Hw($qtzrPH-$|XREatZsv z^_o|&R&);G!bvcg^y|)yBxZ&M1e}~VZywq5uyG%1S6CG7TZiVoDAiQbT#BC2GR!;{ z)z$M!>I*3~eQb2`dST(=(x#?yEX2VxsI8dM<^?1m(@?)US`NtrXo(gDO+h><2&9{R z|8fGKO|oFxUT9My!uuEWnk_Otvqe(dZ#pg_AHQRwR zixw|thb(oVIj|Gx^D3`bO~3y}b~ZLCP0e8F1=yl{`i#Gj8&-^x_f_QpS9n=gCQX&b zE~sZ`b=SQZ`*%{(bM5M7m4e4QCmwM5`uZA1{}Ij3$w|84tjwb%vD$jfQw90X@*%wZ zGYcRn*wWqIP2TzK+ruaZ$kj2knY%?afGF>#I2Ksm`jITfpDJa@CoZAX8{skaan5b|l&$qT zC0M)Lix*)4c~&+yWWg{VzIykD1>)OYKU-;JQlzh4yLPJ`u@-jNIl$P2PN1=B1KQD{g^^zH z?c29oywUTwBCS@%!jqAh(DFv$b~6@2lRdE{Z2qH40&Hg%Y@B0C(MPUQ{)|`RvFKAl zq3%^|DTj6m4KvJ(d+K0sD*Y5cFasD6haj%gXBj1fHCg{W@pyJG4k~fd6uA1nq6?H(!N?hL&JkQ&FnYLqR9X z3t=$FE^YZawAUwxo=zAs$g$aNcbK|?SntbsH;|?c#arv( zyU?I2L;A9zd4eC}u@BE}usG1>>v z%HDX=!ngO^9d!qXQw0 zo1|gakodm}jUbk1O@$%*_)pW#X@YeeV@Lo{j(wy|+$b(}Ocwv5KUEVF9sH zn{0<%hSH$MhNYw^5phAoRp=F0g^9cU(FAVi>OTM+_k<3|Y~nAbWd9*4Nj2%{)TcQh<{Z zDIYmf#7IPFQqI!S^47FtYA~L7o*iU8&o^^t<@k@s*K$!Hal8cUuHbKkQAjPr zT;Rsx6hz@#_QxNRW@hn4zCwgp?L*=U`Ok2Rb=K%D7#tV~GfBgtBeWpQ(W9=@$lSQG zxNJG{s*!Q`u3e_+;zU}D$OrMYQ`6HM*Q}8Yk-*siB<_!B6@Zo~)^ehd{HaVi4XAIO zK(KN+Z-O{dz`f9cInY+7s!}uz z%ki6?(njJ=9*bB!V{g(qpeU2o_uT!Fy)V+t_AL9+y+xtufO?IyS48X8FcM zL*>DT0Mg$N?FZo*DJ3PP^m)e%2ZfuodDUkxeane2Af0K{l`*dBGGcc6HBHwBU*k=Q zibFmlVAwoIuOrd;PR%uWfJ7+Os3EdXZmNOF)JDeA3W=~ z!3tOHo7?W|4Wf7{I(K7YVu;^{+1zeV;X^MTjU^0weWK7!hIQ*uo5(pWy*PV?7R{wC zqt4{Pr5NmzwPHMlBthYp?WX%h=Yixf198_w{*>ETj^Y(F<+4)HC)wXYT|qfONqD5>!U# z88WKIj&b$yi#Tkpy$z|={7co;)S~hJ-H>cAO#>yu*}V;=mvomZ88^R6Euk_IWn@Hu3W zk%%nc4j==AzG37jSrv~S$wR9l{qN}zRO4$8YuprY#mLuqQa2n{s zAmNQ+E27txOPFo_(d~3Bh92uTeF1m^SZprb%#v47AcoK~;nlITkPy7RSgQBI1Av0P zVe{rt(%MpGCxNss{Qg=j;#k2YU(BBuYNgN4Os3#JBIR}xdC8Xn+dEitZt}y;KX0j| zY|CNF!50^Zb_g95hP@fuS{3(iBC)lpu>lk*g9Li2!*C#TCpL<5LaITLkxf~&aG}oM zch_2fySKNcxmm_Y1mzezoG!L>Vmc6I8jb^Uo!wuZnWGakUOh77AjS~JKZ0~pCS5;) z2DtGA2lQZ(SP1yqK7cZO`%_b)KQCwh>g$|Fu{^jz4yGp5i)oJQw zB3dQ+eXRZ+JzpP|@v*T`z)L(?SX)pLb+FbrT`zwW`uTYA>zMXA3dLh!@h`tP&eo}Z z0mXuxv(TVAHyV^LoBp8my+tA1ci=!_15T;?`D4W+R>xmoADqL%J!6oaM=RdQ<4?*1HStFLl*e;RhMI%99A~K zN;`DbP+B`vR<6F^+5zb$ZtDG{2MrUK8)8r?%aMia`Yo6wC8 zA1*80$mo^*RT7|&g_wyzgXP}*Cc_97cf*zg=D+0AD&<(!!VB&oXB)B&h;nGjN88a3~W#e)Qoti&NHrXxLy zM(_gVl3`zi2CqJN`%hXu5d$D(6!mRwQeRd)%59U8xrp-=6LA59yB#ZWiq+$ICKS>Gef04)Nu zvW}Dd7wKEZiy7%E;(MNgf{_&OnRDm#L6iYDNIt*~4Nnm7>xaAVlE@)a_w)o}jb~(J zz<4!~J#bvZ4qLi-pA9T+t;jiDGs%w6&nH6+-rB|u8)UWrs?&=XrD2ceahS11GBF&f z0ZgZwni??P>i2h+`>3z5C6YxY;0?wb7=WCKgGK4VVuzly_#z?Gj>q8<5jCa`}Xvgx6?!P0PtD97?Nk0rKdKR5#%N)qkM z=uGF+tbf(m{$%$#f;vE%^${>8el*^6|E34lqkX;J*E0w7=Yw`5jByG<1GooeFcIX? zv)a;f6_yY0Se=+OROgKh40|Ig!!eD290&*Z5Z*Gnf~c6F8T z(Z?wd>Sgr!45Q)d%o&`wN%|P|?;)88?CpkAcmVFs(`E)eGS5p#v6`qdvf& z4FfctUpJ}q#C|NBxeG#MDZ)#tU87vHgIuJ~s83Sv=j=LO9(PxW!uYMbI|A8%h@u~p znX_D=cd$@_K)MaY(MpShd|7m%SJM+hf`h3k8QkJ7OSW4cr@_iBN)<4asjTSkYH2I1 znCe?;C-)j>brEF)4_^rhCBSvC201yo%4G&m z5~(*hV4s8Vh$1c8$kb+hP_tc$j(vc5?m^w%EltsDcc1-u^{_7bwFtQ}Ihl%m-;2+v z3Sp$3@W9aT`mts&x|Gn1R04oQP7Ooy`Dk~laqE5azWOk@&|1vcK1)I6loPH=A&G#( z=p(ie9*=68r4(W?u#~)GCH@tIRbmYN_YC$(BRQbMppKUWd2oV`Jj(wMb_c41T#THL z=5t5)9SAbOkUJ4L!UkqXc2aV{#8?r-oZX-Fu~&@Jkbi5na47mNx&SUJvAVkBoNwRO zL6jj;=uu)~B1UfG)~yjZ>`KfCheAY|Lx({eCGX0cqpn0l%$)8uB2jcSoCuRJnrwSY zqSB@ywq{;AC{ZM6M;fX?NTD=_kETubXEu!|V%J8q?vEpo0UX&mILcx9dbeZO%t`LN z?gE*D^c>#2dD9w6H1Av-Ji?74O7Dh3F5>k3kHj_`XY0pAz!{`UES3Mgsn3y>&PI}dG(32ktE(%*Mcg>{zzku@s${SN=uP5oydt|B3Vaffk3}&5 z66$9}`3RBR3Ou-~(K=r*Ip@Mr0(Vn%{`!Xo=gy~jEji1))DfE_Fa+K!8rHC7i<9$w zdGwwESG6K+(6>%`186iPIx4`C!FO+%n-@S9aH2vYH#Ym!OLOP&J31_0Na1{Y$}8l{ zuPlI46lwk;h#CpjPMnDQG&3_3z|sx88a|AL$LAh&i@XdC4OPm;tB5X#9hulON3=d& zmoYm~9ubofj$)k;687~vx211`VKqe6P_TVnG*nrU@N}e-E~-`va*sKF>K!77=^AA zIu4S;xS|WoGQAp#8^M9(AY_1CG+~qD5O7@aUG(y>J^1i#Q0RQM2M5`)SHW$9w-XMo zN;>Rdq7ty*?TNi51?TpW-XH9&Vl-fCL1Zvc;j!aa*u;>$Fg!%;k8~V@P^lLI>lQ>F z1u_iz^t`&dy5Oca!OFnDEIihO>NH4m0pujTB9BdTWvN7VA%*XCT`#O}Ig~O4vhBjo#@J*9ble)37V>1hev_)tD~_73ZEZ3g}kF_LS;qEf3PwC0S(Q4|8Hoh#VH7l z!s9JZ_s|gm+xsi`;iz>A|6atuA)S6oMm6dgwu&^84hGuNMJkXyFt7>JVxdtT9GeaK zBVyEG26B7eFO$*fKbVYa5yd1~qz;nXRUP9;(#x20H~?54W*KRKCy7%4nWWNDNjbS- zC`*{vq?erh!vNrGa;mCig0Ql%=pfiKfit}$(eW)t@-ajuhkrx5bMRuxK>Kt58y01~ zI5`?X?+!=wQJimaL}6}2`r`LuyeedB=pI_%Bqb$%Sj}PgvE-GP%gp685xl<&=NcRp zj}HX6WISPd6v>G&huN9KUWNFHR~Sdf_@Vu^eF`{3A4iAJkw-vT;&YHPf?`$s!+HH8-VK!MhZ?)$Nv>jy{|{(ANZ0zD(;~>|G6uv6dN8M{%`3ZWh%CL zxnqAPj>aR$IvOeCNwZS%OF0l39og=EJ9Zq$autB&Lh^XLIkI#*CIek7Bi1f^)@ zh<=B`kW=4Iq*7=o9yMQhSSu&xGye;&q)j@Sh1;8OOn~uXHoo;lqB!-95g{5P0f7A5 z6?7+M6Cg{Z4bIVsnybGyFwX_^vPNwkWE!?sroHQLZ&&E|YUJr|W5D4wU$0kK7fi$H zTB(-!syFA}0Q3@aFcm086_@?M^64*2L>@akI}dr{>>mAt6rGOkdV4yI{!0|F?k5GT z-PP1+#L1QR{jY*~j(Jzhu$%Wwo|!9(Gh5y)aa?X|XIB}e%m=c|Ke`~P6siOZm55#c zPkUz`mUF)U|Jyn?zDcew%h*^r6nlOX75upWbW=xi%LPaHYIG9D2JIjz3N3`i~ zENQW1EMsVF)m=j=TT-b|Nm6|uuiVXYe&>AWod3@CyUtwaT$gjEbocqZm)GmLy$+wf z#GiMEzFHXbJ1(*)P}GA;l^7GfOEP6Ngtt=_aY7pUR7Z6a&hpLr!XOr%)B$SVlh{Fs z-M{B5s~0D1E6i-jOK%A6<@ey-9nX)WHWeFC#qU1c>xz^G(hNocrIi8oTu!RG5-}qzPWM!Ic=^Cjjndn$ zSbFWBwR|K3H-*9+v!@;Dd_&W1AD*a z(#GNpo3Njh?k$lR zP>B`iw&J}@xzWO8>WXv|O^hlEw%Rl#Z^r(~*ATc$lnZ=oJQ@Pav>n^k+>>~|1ml!c zt`e%aOi-_Au#3_Gqw2nf^x0i+q1{QNmwov0hP2KdE53t07A(}=->rdcd~2TWvO4`E zy{K@wTAn<8>a%>1Cywy1X}ev9hsu1JMu5uw1yK!GAWZ$SjK6%#>!$Txfx30ptesS) z21@YAnv?n8Y>)p}WUF(!Xn(JlB;z02yIcM_n7T^a3yc=nx3gc=XgTMpMY5N%YxY1gi!Poyv-kRs zt@AIrCY2%`y$1AG%K29=;hNQ$Ukjyqz_(ZV8%_DT!nhw0JjZ?<7@}m^$%R%|UmuSk zO}vhlmfp+1wp@xu1jbHdYKt0%!-PY3A@&)Ga|n%Vvug)4!_c$o?S7HIMdPXg>?fXf zB*@jBq1Me|<_d*zuU4Z!lv{^gC;|tJ#+thQ>7Za74V;%Z9rl#*_?!JP$WUh>|G*fx z7Zb0&P=P>$)d;^*Qzu5&MMXsoG%(nAt=Nw89tGd?^rrezC;$5L9gY6>bpKPq=v7Ib z+rx#KfmTTdORa9#5$lP50B6|cW!Pv9N}l&m4W4zs_{TC^J3BWJJt@w@app+iG^N+( z9-YUBlx`_?Z|yL9b{uK7k^-fZLpCNfmKX&NxaIzwtmm?&5$R10l}U}2+J$D+%2{Eo`oCyJ zlU&D^CT-ato3y!Qv32!7S_YjsaiS)%>3Je&;B*e!Rgc#6&W@cA?ZOf12ghh|;bV1j z^76fv6fu6KgG3IAe~%kJ67E#rvFUGp&_wal@vyn9$xWJ_ko0s~$`-;Pp@5~viF>WW z&dF(L$OUVU?=^2Y02?#2V)67sXd+ko`AZI3)&5m4poEY9URU~2-ca;c%>j>8rbhsg zrSE24i515fMjEJ8Q}1$$7cZO%(J>znxOipv$9pMz@Cl324+?I1Z1}oQXbbrrGvRj8nF-;bzheXdzFU5a&;=A1{2lVfs<}h`P1OxB>s;SZb7i1GEeWJdsRRH;e#5A;NmYw@xZKgXXe3-~9#>Um33P_fT7<|PYch+8Tx;Y^1Y_<+L7r>o z1c+@+>Wwte7|Up5WDC2ejz0}V9?yA|lZUWsq*lc_^rl&U;-N#Csq4p1BB3w;k8M*> z9*ENFKXy&FJX?Jwr5QmUQpU+)bL7Yo(^jW0_3unjy_gqlY;AM&6vpS!=_Ns-h^G^^ z>>>RUx-~Hk@C%kT>^g-Kmzgn?c$8*V_~BsU_L9fLW}g^3e6d(?N_+msntguZrI>Tf z^OK~wieiDpCHJ4p|JDw42jJVsck0*2_8~NB?o6wy94pLVD$T5Z-AzMU-D`a~^>#%3 zeVtW*r{;_~TzwfzR`0mGrF}ri{SooS^QfO>qNO-AMY$CGmf zD6t>ZgcmdQ4}a98w8lKGu+uV5FC~iwik_!@sfg+t?sQL2Y137EPFapuT%G(+8>bil zpm91pZ08f1ftS`eJb-&ta5OA;BNi&(jlG?e^^f$NM>rqcE87Q|-NWwd{-`Wu-EpFt zOLG$Pdd6uLUJG=&K40c&(I0ukn4#Df(e|i7Cln5_(c-iosH#z~CW+QLl+3skxrh4cZDeG1w&`~~DQzO!f)nKT(^>in6)=!Y(=9<|}BHu3u`kkuv5;0jMI*%(yzOPk1d%%9y_ zBMgZ|X`n$lJjEY^kviY5atT<(I17uMg?jkXRz1&(81A3IS{2tY`-En&AA|_?fBI!# zkYs@cmC7ypwDz$KW3iq29@6^ad8bWa-UVym04yb=e`&8SsCZell7b|T*Lr_N#c(9t z4Og08Y;sz0yPe!pHQ{%mK&4pgo@PE? zEoQsXYhcp%a8B_hZq;=_u^I$Mj=FpA2ftvH%W!-1WYhD7h3V6BU+dH#I;XE?YVnW-&RI9MXL`XeCk)t;?TK&*FhYf*_i&c!dx9^TG;f= zztZUR{l11P^s-gik52asd%ypt<)%dsR)9=nO&KkPr%WuZa+w$@GYg>+Q%AK%T=XAlt!rqO)jDIUT_|&>{Wp&*XGL{GA zI6a$F8<1F8>-N~I#nBREHm5_Ml*IsH;lFw9UTLf7b+6)vmcURb@{RT@TK>m>Rh0i> z`qG#m+9_z-(K-4gIAZG@Oya3HjFQ}Pj&MX}5PO@p!LJ;FwM<%QtWR&UCmLf0IXRTq z(HYwJI;T&tYnk-Rq7$Q)Z_eIt+g9SUo6{eTE}CWU0x$=`dL&0}=VRH=yF$0b$u$qr z+Axr$(Gt)oWKOvoDfu$DP~?qh=6c1oWcf_Xo~ZDw$p2W(R#YkK#UlA5Q%EH7usaAC zG!}zIva+r0ZMi5Ugq#~u^atdG*`eX1TI1w?l~cqw?X2lAS{`wDalsAF4}5%QoczTM z3_Ho#-Rbc^XeH!|yRnZIrvS8IsAfQifk`GvVzbfgBUWhiL}SOXp6m5m%6KXOu>z(p zrqq-onQ$Aat!U4>*w~E{yjP6d+~gH29sy{dSx#P^o)8H_SBiX0u#<5VpsIqSrOjT3znM1q+-p>(>B#3i1 z*WTa*#h9ohm zK5~uNmbg(QnOLT0a;;ErCdHQgGEx6tW9v7Nmrn=N&3dIKjF7 zt|ACY5D9G2Q-Clb3b8EbfU_DQmog08U-JXyLk)^9O?j21L@4RtB}k?KX3x z)2P1-2EZ|W@{99n{RuEQV7+`R?tQ)n>+Fd7#1FSeJ{TWNNC&xhS&NH6MO-s zQ(-L61`KdJhWC*tc(c1{+wRyq-AVsfM{!2NE3*6~bD*x>jiQZuVQB#y$P z;CP2xslxe?q?G>TsJXL{R2rLYSIqsY2Wrb)MUY|ab`yo@$`R|>o8~bQNB;uyZYnWx z6f!w;ARxP>SD+Ze88)bPUE?LT`vD5Wi!aT3$mUE2G_2Fn%a4oxfTCxK_Y||R%S-F2 zfQ^)R*HYt;x}U%4zZ16}bXH&bR`@e`Rk6N+zw)?p;HYPpBpE*M1pFKgxhS?LfM6A1 zrX?i?tg;lc^EtnxC1~Wds#z+3=Gbh7)?XLvhoNXFQi^_j!PC6 z9dINSvj47$u_p;MP(MlKN{IiJbTZbj{iOA+Gz)v+&6l|V<3~N;g41Pies0Q=xk^#? zXG1qMluQkr&Kj}?FQHO>AO$f?fdlDi2eZH0A6c*m3MBu~33_>wf|8_70;pfQEUHi) zevyxS?(ErtxNwEe<-Z1w5o*b-#WN#5;+w9AO)JikRl}bFwRiAf_lxB#Z%0VTjN3_u z^_?Kq`zR%F+|B;F*Muq2SzTB4poGl#l@5=TCP{>#)e_UUwqS+_BoIvGel{~Fp%arl zI$2%>@bc)IIii$aXN9KVa#NoUkOP-oF$a%sy-&i?#I1Cv1&D7kNh)-dNo^I|5PPPU z75i4*zmS`2r;=L$v`a=+aCFIS_nsofv3Ne;$Qt|@1#ICP3hQxSei_B15Yw5&ji{mk z7fNAd_+j~uoBF3Xo=DDHUUh;g3k%3}G3AWgS4PW<;LxKVSjkhZIy^S}pPh{vqWDU;dC(#5fr&5q9K zK6czVp3sHzsv+GvzMMHk4-j+6zq7*K>90>MTs)4y(ym>qX_JTb@GCF4j*GlZJ$whh zfK%Ic)bVKL{mb|AG|SBRX*0OQCG!Q@9Jv%?lu$KKZ-~95m+C)^cnyA)4S;_&0*Zli zY=NOE`;fwa<-S&|DMK- z>o+?zxic;(ciDu|3wo%ku<1hB2SIqTOj4%ys zJgy&$q_FFh*OoQD@Xh_~bhANGEUm2Ct^V~*PLkM>Su^72Z=uIHZJ3{Rt$fg0!#fox z#4oW~UsA8=h9qj*G2)sWY+wkfkho-fY(FRCGB>qV-N)QCL zUFM_HU$HsyUiVQh-~BvhGBBZI*%&Q~KH4UGfuawI&Xy{D@t<}d>fm|FBv3|A(buXZ zV6LQ2X3(Igv8gx?LNZac>hZVE)@}(BGs5v9m+aLF1aHh-2l8uUDlFUeS)VKE%w8sXD3b;Wh07@Qqx z(Mc_mx?ADVinI_U7BfZSP2pApZcun=6nz|ZS?r^H#(Gj2in;uRi!*RhT)-+XbfM(` z>;oYtDG8@FwakI-M{l0kAtAw1PDtLHAb5k4hk?)F6t@MPvo~2mP6aTNOgn4|j9N0H z;4r2cC{(;U29A}xhYlP#u=|EjK-1N0Loyr?nMf)lEj#Dm{Tp~G)wnJPfytRch*n?M zo5tBI@QciIL{OxD^c`uBV>z@=7LSY8-Yk(nHcLb0=94k=yonlgOc%*UV&eW?CxHDAz{^4k!Jt-cE*hQGLl!O((^taH zsg#!ncYah=HG>dsVbf2FWZF>Lr;IBNK~s>rQBO!B-!Bx7*vZS2tKcN#!7!To!k9#t)YL zCx0jU%lyoP&i0bX4ZM|Gt&ACkjDuvHB5XG$({JtPe&lpzYsGUGhYx+l9XyWY$h+4y zV`xM~W~CoX$|eX#FZHVxWMyE=DB@qbT$z&Ac;{PvRRwybWr?gifzMejN_O9rRmcKBvATFfUXh(35(eJesFfrX{w(P6_nj{s9{{TOz zu5Vhrr9Ab95`~MQy>nAt)Zdz z?hzD>!gNXf2yFdp%N}FCu9Jcqo-UGD_O@&j1okV^qWmgh2&i2IM4;4-K_nm}mgQWB zMrBKU;@DR=MN%G-v`LPlVZH~||99WT0I!JvPmC6>sh_=Eppib9ynm7*lUz8<8x?mzsjrr zqX9_;Ucs)gN56#8Jl4=fSP@9DXqYtW#iKRyXM|?fD;f(MpN_!(RVJNXYB^0A5RK3Z z+R!^RTv9!7p=W`B>PKh!Ua9F$JIg^RSB^l)1RpJ6%DVb>o!Z&LuZg7v)55+?T}ir- zFj6KJsJ0>&p{kHfao}0$p)PzWx)!-ynU%4S7m$1;gj7bpL1^r*1;rk#s`SV}cS3*W zT|2k+#Z->If|XU4$ybo))RMn(O*cl1qsQoVs`=))OzRlE7+NMZAhV|3B9DBhYjs_{ z@0<1LOwT}lJkZ?yW|HK;%CunOYGuaoiHk`hp%fMqpVxyMz_2ESJBbBBKx=F3Y;z5U z$i!v^3s?)i|1RT&ODFXd0EcsxYiytr{#3o}=3_jb1I^6rVcw65%n)QjnLFyPL@ogC zOVG;^N1849#?t{jY4#62`Lg)_E5acsFMJtST{y>PCBJ)7N7=oTxv{SFhg8A-;bu5=plWraZ8Isb@vthlIxb$xr<#j%v&`!p>8)4(iwM?)DM2w2r_H zBBCBdRE=B@kz8Pc&rqA$(0Emrh69C2V?wbf`Etyu-U9E3lOTo;Qxw&pq7kD+TX>CZi zKfP$#x8Hmd*V0Nwy1$?OYS1o`I1=nY%ZLW4IX=cZ_9nC}gI9;lymiBN__%MfO1!+Y z0VH08yYaGUqecEjZ+PGIGRMGg?PEq5TE!?j&k}@OBEc4!{7YRJVh1z2+hLRmVdfOG6 z-Ni{Q&Yx_PwhH%{MSc;7UVp{L@zrP2s;QT6ESNIRBhPN%ehfh@Ua@gWz@)y6R~K}X zlIWvZL$-Iw>)5fQ=pY1SAtOelWDJp!VHW(3lHU5c5h+;eh`GdRr!2XfR}ig_2qY~> zCuP>}`?)n~2E5mKhp(5L7`V@8yQ>T5E|*c08e6S4!z$M}MiKciq3YuPgoD=?CC%D6 zY1a9=a?@+^^?vjYg5SX!5pq$-pj}&4PmQNhs*Ua2J(6?|IUmhG7Od$Zj!)FYkj>Rh?4Xk9L9lZO%io zTw9O1`0kA%=Zi=SSd!oz$VXPG(=DB07=oN`8crw9} zp{yb7J3)6}`c~8SSCHN&dSXc?;f8iSHjloPPhLZ?FyiO{#@|8cJv2Hmb0S+hqb+ZO zvr959R+6D5&+nWbVa8ZHk%NA^roGH@;g-~h+a3*P84z2{ldZ~Am*nU}XIHDzpsJ0&^14D1kz0DN25Ub*-U zT#xNXZ$riq8;;v~;Nj~IpV#A-k(LQkJHnxYp*v!JcyVNDKvZetc_pQ8LAL+ zPV%OBlp@B-(F$4gOK)A~If-LpIgo-Dh=mv8WoPY#`;xsbV*^6E8ri5%?m0AnfRcx1XMCQHz;D}@v|rytGrtD-$Cs+{ubl;U+>$0fFv?ICQUcZ^Y&_x$7+q8Gh4xm z`-J-?L4AMP`pMy+%o=QafVghW)3U5Sj0zAjvT*9Fp51iswQt(KPhF!a)r%?cIh6XmXbHh^kJYxam>)HZM{M` zL(o+Z#=uU&9e=L0~GC=2&aqP&j}c`_29NHII+D{cvP#*OwAP@Ep$Q zY9>&Y(3?o$uspdgcC$u^D-ho4Mo+UQ50RrcJe)sj1~wfXJME2p>On>9`BgyOes_aM zI4nCo3XL1}jVg+GJ-WV9f?9$lHVnG%$@Z!yoCpgU)+PBDWZ9SAaHoOut6rcbB(o() zg(R2J+$Lf0jWQaj?BMxc%N*n5P>58691TWJhn-7g(~|NhatUMOBl!nyVkN0dLa8*2 zL?PcW{d99Xf(WnSd2V_R#njEXCa00n*a=IB@V+KL3idXG!wLT6Dq(5_chApV0#GM- z251rjl0j1GgVw0Pbs6wvc);k-xxT>Uieo2N5Rax`qBd(X7=(3&)p-^FpKII@?F-g9 zYu-*VCHipw>hGz=i=HZTi$|v~@gG-gm;Gre)062*UnX_tJ{5j~;V{`e3KL$GVeTq0 zwFY9s?P$Z@erH~ja+`l@t;O!R>Pbk1#DekLFl6_Fk@s=RX)+7M7O|~juVF+M=0X{( zxwO`aRVD7qh=8X%C9#}P1?AGUuT=PCj-tU~F1v7;2}2#zQd)OqxZR(2H~VkUm5ckq zwj`e#^Vg#^Wq$2jifVcp$&{1-iG$}(Ln_pJq zs+z%s%Vn4Q0N~;O?7?c63`;KHZM+(x%i(A!JtYiV3>Yk)fTU`HfOcmW%@?GF; zhkbjFa0+4OT)DheQ7}2`iHk{XpUP_$5ileF3`kLUXysKAZlMpLR?8eH_ z@um;)->X0~XY8wwnP@2qM0D&XUJtA!Ck5hzHdKY1>g7}hM$9eCeN4cNg!Ix;0P(~# zMeu=uDp+pVY!`zSsXMUKSnOVW__r=Q%MPncJ*bnQ)vwS(KGX0QEvgj%De_MpP#*V z!@g2}6_II!GtsVOWZd*D@cBW?;^p);YKc=r0;|)cfsEKLfOjo@~fiIWv2!3x+;{&Ickvi%y>ipTWF~If9k2_K9 z3qIYURum0rhQ;J)Uu%^o$`Sa&w15IaC1$tLj$BhLSm0``80epI?9jq5@C{fxot*B{ zQ?nA`6=mcGawV0$jNd#JlS{dJKV88VllHAHoZfRIX3<8w)99Dn~ZPzd24?|GS; zkl5|&*5oecYTk#|szw1_JiGQ5rM^rb!dGHVtt0rQZVrdbC0r}OgcY2CB1fJ(M5 z(`XY7C(@M#+koJe3tW=^a!QPf=)V6Z|uqJ4R+@%l-ugWqsbrY6;qW@9mJR2UXuk-Vo%A!{G5Rd8O=D8%R7E4Ys9h zZ|T3wB1M($9YCh)`oXIKNY}G2eIbjk9}ZEcKl>tSwz7lpQE!p<^0TVd)OQ`v=rt3L{$r*-gmmrt#CNHVowZ3#$w&&4 zvV(3d-(1nTpZ2>TMk4)2weEv)8u&MS=-u#lig?j4|M70~yD$6yC4MtzOLRv?+#Obx z4e?{q89|{eI0Gf~U!Hmzc#@QQke5nX0txtuW9NKoFqh;!-Z1^P9dAfqQo8$xTsYJ9 zhn`e7wDj7xT`+lFlRJT-rJ<Tz0L{fu50IYB1D8f4OCmJ7>e!Qmi zw(Bi5nRXOm!FQ=+?4@3RxPQ9sbNT_`Mcrf!k$B6`y5 z(2J&A6-)cF$D6#EUl2CZ%!vpKt-v~Wg zjW)mQWr`VfK#AWoi}AJ%XKF7$XKq1Z&53h`g@y8QDXIauR?d%IPut)SwwYq*_OVIw zZAG3Ry?V0jUAS6UQDyF#wlLE zjI;q7g`I zEazCe+5E*^eLU*(h31jlVZp>rt1ynwyXAE{Y!+jWLlKDZ)hkf++ zzbVajy;ssY=$I^)y5a~oL;%kb1H_^;5PvV>&|o_e(HU(z#qw$--IOFis{LjFP9-iL zA~StcOi!hV5QZ*UZ2eFoOmxo{u{!|fLdk{5{wmR9v?ZE_Y($4ipl%Hfm4S9BE9Byc zU~q*D0HO4SD7-ocC_z+C&zpy_35~OUaO({v3CRVSqCPEY!y=I?=X-vq5g@H3Nu z8uiE>K|u;B2tc4_aO=jGoA#%)J#aK9NY@Iz8FoS&vaZrygxhSS29gBjUNN2CJBkuW z=2|2#Dm>)Uv6aGVj3~#DWSq=wfcumSIz2tm$hMtvCla(^`Q7)`!!NqjpmXUqxV5fY z`YB)q!!q>*;4IH^LGN?;77SO+gw99W;Circo@c{nRg#2?L7oKn$XM1arsESNj~tF874}>h;d(HJ>x;BY)WyL4(+pIWlwt-J|SW z!m#5Xx%}+^gRUYbi!Ci>f-;jC59~NM>6Q{~%^Rw-N(m{K)gn2+z0_~L7cRX{Y;^ea z6)Qe+ZvU6rOBrn`QyekPhVZgDTq!zP3nQC#OkRkFkhZPhqplE77LSFyQZj=u?LnA< z{>vx{PGN7j^Qk*td)tW|8&HopnBn}aeF~lS!>n5;xzPfHgj&N-%lstNzth>USZMJ3 z_>ofO?wu%XNu6c+L)R2UWahznm%pFDYk{-D8wGu|v>xww%O;t<%eXXo{@ zjk|excqqSkZWOsr2t7zjQ1$&|-cZb$01*lE6Qa+Q_Eg)(g7@3~Pw5d-I47yVQ>NWU zk(=(Us+QRxM<=#coa)C~pcoKo*-z)spU)~%=&Z)S&wLA*?kK2z##mgez&|pK4-{u>^QH3o+vrJcIz=ByJk0Xfq+P8n{~tx# zUxH|pX{{NJ10J%plWds<7ydotI+`sl<_@pTSp-PXT*V(@MBCRQ(=92)Gi>hg&YVRu zn}CyS6|dBv!|jLECAMq1jl?s`gQju#`1S~^OBeTVeaNXtWE*@zf3ez9&RXGrlQ|J= z-ssum+so%c?6zGWDk0@`gUiArm*&MM?LuF;SjKh<8!K7(B(s2Qzh}Ju%ry613G_`g zFq5GuT`YS2Mto3{%j4M{{@-1xNI*XW+b7$&+zO`Hu|?}^vfL3@5F_Ys+%2)Su?DITsyqO06i zUkPp}GloQW-hXQN0Z0a!{=f}TW3@Ku@zxq|cQkWwM_HVk14M=;yz-Jee|7RNHxa)i z%Pb4rExu^i*s_=`WVi;7&Ye>Fvb|Mjdox<=T_I=~!XkbEF*6jLZ0)**WepZ;vhtay zIZ&dg$T^%UOAaZ{Tt~mGzmUw=Uh1}^-yv#Y*Tynx^`x2f^ zW5Y*>r`n;!=8JMqNyQO9u!|zd z)sBmT%@lwhfKf|#jK&;pm3>k=hRmkmDebHp+#USSgas(#B3M7o%{w=7m8VJ2!M5$& z)79FFNOaNgJfn9{q31PFqV+y-^z~b9ISo0%R@G%V%gjj$ixgf?A~d+X5MkV1;z7_Y!8BHw(|^dmnNm$Zbdi0F~KciXuyljdWc)GzQzn83r=lY7C7j+2(g(6v4B-6ah^zK$g0Q= zLRL^h<)~qXmhs{n#scN5q^V%0yERW@Reb0E#ld$=gG}YnXY*M3_&hbLM}aRBzEakm zSHz5z%&F=--wvCYHnQz8zACe3j(W)2RahJu*;H{*x7FS{{_PRAq_U_f;pQSffqK~2 zii(>6Ex=#?d2?A>GG{YoyJ2hY?^4}%XyB~Vaqg9p(-z|u$ZsHEEp4pk3!BkrZh4u? zc9sDcryGF(A?H6&vOIV0RYkThGEbqL5gN3n7oNtmNZ4VJsK-JI?oyc6XJMG;X~hK*$_T3Ud;a@kd&`Q z^$7+a2lggr`R7l|<1K<83~%eYnp`2G2I4us7jVHp$Gd^lLgMK}{@Azg-)`)0+Vb|V wWLwa?2ct%`)OG*KVHqu-@ei~2t~Rv^zO}`5^{T?l^6!=7ri@j8HfQz!0+ROJJpcdz diff --git a/dev/articles/Performance_files/figure-html/unnamed-chunk-30-1.png b/dev/articles/Performance_files/figure-html/unnamed-chunk-30-1.png index da307e60109e6245c22a3015c228c954653a226f..98513b6dcb2b16257d69b280c09e2fbf12decc63 100644 GIT binary patch literal 41723 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 literal 41711 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 U;mUe_hdvNnQ}^@49Ts2x8$tK`FaQ7m diff --git a/dev/articles/Performance_files/figure-html/unnamed-chunk-32-1.png b/dev/articles/Performance_files/figure-html/unnamed-chunk-32-1.png index 45a89fabbeace48ba6323c41823b73ac932ffbd2..f072a8b076f76434d3516b929f0fa93d50340704 100644 GIT binary patch literal 55439 zcmeFZ2{e^$-#5G)uI6%Gl?E9aXdpvnC_-J0n?&YW5}8FdnKe-&o zjSxcSkU8`FJJkKW-?N_QeZOaYYkl8(*7{!SzOPi;``qVw9RL4s`XBe?&YxMkie(jr zLRm{ads3c4S%z;HhpiyLXyv8*;g@BXq|cnhulSlgk>i42R$e`;c8x+|b0_~_$&chF4?uJ zcRM{S`pw=<%KiIWmu_{_*S6GEReW$*AoJvfC-?5Y*uLV0E|c`J6q>ho@9eETLPp6n z?_TRFN6ES(ecQSi1zX>)p!0QFv{HjDZaWsP4FCC4?&b{JzkWk`#lG_2zF++3|Ht18 z4a`oosHmzwef#$9=ww%@zZxGmx0J4~Zf`@H$=cH@B3Df>3RyI4>@R1zbLURymg{{9 z8B=0G#v?Z8Chi;)^E+l{^ZoOIvY;ah;`XC*vr}Vb`L-RtDgpY%o@^%0A;G~~yDZfv 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 GxBn01#WR%v diff --git a/dev/articles/Performance_files/figure-html/unnamed-chunk-36-1.png b/dev/articles/Performance_files/figure-html/unnamed-chunk-36-1.png index 1713453a4f7e2f3a15d7014c02cfd3040725fb5d..6fb3f308c0f80d2143932c773950db490d82d442 100644 GIT binary patch literal 32164 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 literal 32138 zcmeFa2T+vh)-~GZF^>)gOpFSmAfQN&W^IrlIk!rX3=$qC`<8j;p1P(Uxo!)f%t3b1;tax@i+cVAItN>U(4-J>pD^>+i#HnEx6b9 z!<0h#okBf+MB{SkK%1Krhvp3XhswokQ44;%w*K&9PSxXL8`hmTeBjEJ1y8S*Nql-N zEV1U+t*3hzJ-xb1c-7Sxdp~Sa-Nv!x%iUe;4~Jeky>zpxiRi%c`+p`C)DGX9Q+s$n zS-RJ$x@*>1xgy@FEqAiFPd{MHE5WvDRq=tvKQ9dbx1T32X3@X?g;IEG;lE$6+_m6e zudgh5@UNGY7gtaJ`}Mga-2Z-^`uqBSzt;J6`M+Q9|LfnMMcH`#|Nia0iw9itUcGu% z`^>l`c+Ha3B;%6179*YS`&x6-`|1*7Q&SIIzkadT&(DnKPIreW8fuR{cg!(x zkl5yZt8}uY@cd@8Ip6bBQ5DU;qo(B}PHelTv=fGTE&(lrg3s<&uGug>H(D9+=uzCq zkE(aJil@XB|Ijfpi3<0c&@K4>YGv;1P+q20gW!@Sm%=vTI#+y;*r~dFtC;o2ru2*D z3vSAKOni%t@J{GWy|O;R>LdN-$6J!y)~wzpks4D>@jhfA$e5WNruBW2S6zo&Tejo! zVY-O-+~vANZKm(;k&4KBa(vY0^o#f8W(U%@+$DjWxqLb0@p>b-u7LH-@(B5&rMniW z>htjOhPWRHg zwR-nG8MWf7%fqi$3e^@&w)0bG%4n>kyH?>d_N=E|VN_RFk99F<3iOkAx5f7}i;U2GtKI(Ws&3k^v z`_`}RpFDME2V1f$4N|^6T6D`HuWidAv)kPJ1O=539y}>F{)M>m<+v@dS z>)d<7Tt5g!)jca{v(?toc_igBpmRRS&CN|O|MD~2f^jWT^N)wmo;|xo=5i`)y3&VF zTwI$zhE2h@fB%{D=g&7kzhrz%cf;)>g&Bk=l=Q?Yu7el=~GT| zdDTYt@cC=@yuGt^yhom`E1;L5dinBmEPSj*P0YUCyCaWpKXq?Mo&P>{r*hGTIHLl0 z%lf3ClXtd6BlI*Hz0X=$SOiPErYv2%BMD#KCnIBE)0|Ni!5ZVm-|?+2KfH46($dnf z+sq~usR{}T!u>)sjtz#cZgVV8O(q_4u5;oJkAZ{E1C3{0@(fpR71Lm|=EvV|wR@y~ zdFod2=Z_PEEusjGHpfcY+>ug#=a)-1y|c|u#FEd{M6jY>zdjyuhG9ST{k$U=hw_`> zsrZI~vwXnB!=NDD^U|8VR_&#gl?~O=igiUkY~g!eG%5Q}S8{~fFMqwWqReON^9{3U z0sSn0-IUx)M%^WE{!YJ9W_Chu(XE6ER$uu+27}Raso+GmyvIb+sg`Y$4zF9yzJGcd z9r&ZmJ6VudCA>Dot}uS1fL8ju5HkjGKO?~p@36hy(j;U3@WPBC6urwOKU6gvS6V3PIuu&s^>w1fj`@9lI;|a%%PHP!f9!fo zWvFD0eO}v+60Pv(&n50%uLMkKKsp^ZZ7O+`ktL& zO?E#jD=#0v%r)0fV+&{NV-uWe$!E>xT)f*?ie=g?VPt&hF8~tW-rk|<3nF|RZ>E2?>r|X}KZ-meiDnccV3t2TP@r}{ShUZyPSX72;}!jWw{8hLI5^zqQ4G9X%R=OqS$BN4-`tkxIyse&pZMbvs+(n- zc&6wA`!BDT?-mxW{wlS@^ZSu|#{BnUms6-GO-xJzmbNDxTJR~6EZX+j8*915P`*4J z20V%zu3539Xj&!H<%}Mh%Cx1=bXw6CU-oa5prD{`mkm6nsPe70*+KhPu2~~CGBR>2 zd9u!XoCgoqb9ONM?Z+p_6z_cQOJs_*drcZfy#7*|m7i(bCUxlUWQR}DtC7s{ZJO`8 z9D+&|L&R+OZX-e|^#BLoRjXcB9=WzOK*#6J2JJ`JHY>-bx8`mUx3#Vx|6aUytNi@f z!v|quHqYB^iw9k{N=izeR8Y9};Qsw{tF}vJyk-<6*wW&jE)d9Wu|e?GTl4ermFg6@ zXFdoDvcT``78h@5Of&VX%5m&jPgCVrpm4AZJb%17dGzSj2jStijH1COpRbG|gsJWPbdqD~Of9j5WD~G|q`#fiOPl;*#~uZM6Hs?6*LD+aG0xmvRiu zaw@{48M+nv0r3rkE}Q(MB_tYkQqTSIATUsCpdd_MhmF#qE!j>|>7#?jzRzr0#J-O8 z)|~YAF8u70x0+FAiX8uTYOF@(PN0B(u+7~avbm);TYS&wk5)*Vg>5jba%ay^hM1Nq zP^J=?oW2)Jyl<@8ert7w_gK}blP6F5x(%>rJJ^C+G5N+FTMKs>j5bVHHR2PDKBB8C>00gE9K)aE9m{9dY?sooZ3>fi4K`)Z^~f`Hh7;%YG;On68lM^8_<;(* z2>xW%o}Y8@VnyhR;dgO1Hkv1@I-7)w=G4wlH@n~EOQ02bn}zjMge9iRkezY|JLSpK zMJuCMr*Ie+A>xJm-@kuR&x7W=Df8ja<^~892V|89V&XDjka%)aA zRopErTTq+3D)QV%&lgt~m`!h&cF~wEyp-2w79?nx>(3dI&8I#bqZD#$HH!`SWLj_N zq>%jR(dObVhw1$jX`NkN8@7I^C@oEJ2rCN|;CKBP8~0TGjej8JyD9C^?OXTeU%!5R z;aWBdFkfb9@#h2XW8cnN{YGKQ&}L>fPmE7D{8rdZD;#3_e%4+1BE-1jw+`>wWZjMo zi<(jaeUZcl<67b@djJk3g+D7v}HpJocfB^N^Xp zu8O^VYK~`=1t=Ic6nMDSF=-uhUa$UKp4*p@s33q6WH{d?Wp77fkkEnIMsb00t`ZZGPO_l5Lk`DwO+e*PFL* z-3?r?EnQ8Rj6<1$$6#jn2(yUQcQ$OWIg{V9pxjKIA!zuaW2HPZ&1tB$$w2PXm*Y3b zS8m*YpZf&rc#G{5;HRKP@i%YYG!0C=>!n`P?lCOunDcag$NKe8m;bisQ4v!=JEi#x zUjo2nx5MWjM*14sG=9aZBaMG7S{A6Eb?NI{JVr)?&D1sdO2&!lFPl>;M(uPxGmGZh zXo-raPye;Ut#ch!O;0bFH5$S8*Rus#DlIP$;0E(h77IykoC*GRLosmwSuhZ+L<;uZ zBW8zdhZn$PB+~3ycG0}jb}6U5>+Ec7%Nj`HHTB_L9^Kc!6;Qi-1Ta0(fK=CoKNtA= zHBP$7h1Y)xm&r~v8smyTDOm*W*S%n5x^dH{*j(p+%a4zb1RuJ1mxW}_FD;$ddO0Dt zfERD;9}yuGf9`h~5s{2nHcMA+{&Z=+!N|kr`l1EneRYQzjt&lLmC*_b`1 zfcLXZAl)vb)dq0@y4?=C*KC2bjv>PZOF1VX)+5czg9E0lw}@Jr1a@F&2ega@^bJ@= zOR^i+u3VXDAJSr*S6=4YCC`$eg) zd)URB&b6&wDSz!~f%|wh(q*PouNr`(($1Yb7c>PjHz-j!wu?;0_I=xWg6$*eGVrMK z!V(JQ@Hr53jo;f z>-}TxSNtB|=PCh+e4M0ggiUPu%o!nizT31zEy zT;*@yzP*297J*b7Mg5J$n1Zr$V9VeHRhngPg>CnSexir%FIpGK8>$?eGcerivqJM! z$KDyXl8tl>!t|35H|5F-&-w9&?oBKpM#d~phH{vcl=s|o?tMHwC!}46_NTYU#qBK* zl~mW&)y3P_%d>v0UAI~vWL9yt_O%1Ud_sWMCN1#t`HmfUuCy*h{2 zMAOCYk*ObF%aY3?=D#DsYgk$)w7d5UWLnlKsJ#rcMhIwOaXGecPu^s7`3OL(VnFkc zQ~JK=ITSYrOsMOgSXNqDR8tw@*(QE#kJzi?;zR*k-0x!F=J`9@>{oYaSk+Aji5QHfuIm+|DS|h8Fl#JJo&WepB@he=E%s zlPZ%#ZKj)jwdJqZc+73&Xwzn63(GdgeDhy#YIwH)rZ&w>6ZqnRhJC=ytquH6AZMub z%7P3<0Fk*f;QoAV%FZLMH2&uHN_qA`l~|o^t; z!@68&D^aWZGd=)M&R`^0%*z`3jtFUkDiQ(54tCPXU{lyI3#f8KAVSF_x@Dve z7|^nRy5Zsc2J@biDk7G(ryFQK1>E~~?tCe8BTVAbQ7V;6j{;_Q8}ocvJr&7isB*C1{_0XA={Wb|rd}|!l)_?ZwSzVyWt-t;{ zz*xIY;?wxViP(O=GF*LrO17%$?8z#VlYSco_}b(UR!M&>rl{V10ddx7tQ- zC)8ekBD$1beAez=yJ}MmrKxI&;Rc$0VlFCS&34z;o$;T%l2FfDM`BeXSV}w;?%sPo zbCFS3=hfSfMOZ0Ry|kfKEHDUiA1<7=b#$8^>FNq}&N1jd$W0aR@Jx4IurWUNyYkf# z+uZn9ZcPjUeXV$xxtASYHs3xzG4r5#Pn+hLs)R~BK@dzO4Pp;FPNSCZ%T9uzpl?^8 z*(H|fUO1N7?9ECx_oWI@|pI_k-6~t zmwVkot~myJg`PPR!yUA+CqXN?jB+kk?uck#^2w&)#B4RFia(vMX4VAZDX8X{h;^f? zwxP3T^o3O`RtPhtl)%L&A5BBw8*eCLWvUHMT`QVxKDJiYM6kn$Jul@kVI5?%ic7Aw zf2PbhyJf@n?E+L%Rx<253f0OueV>qL|C9N5RU*^Xy`FB+p5_0w;!gXP1Lv;f%t2lN zL{o~814M%i3lPc3v9TGv0o|&vCib4(bmwo;v9bMat{nm{C3R3_ovFk^lat{emmL}Mrp72s8JFR za@^e0-JJk@K(tE9xL%jMOdqy)8>HtqbTh*5_~-4_L(0vJY=R#=c+%LYGY=W>;4(dE zwBGaM+DhRvx(x=7O3}^VH~CCvA_5bj9?_$KkTR{C)FOOXIn$ETVagDA`=Pjv_13Y~ zUiOH&kC~57Zneul3ozQ<(`_%20S$Wf<^zYJ*YITv`h*L4CGV*y0!#YC-gZpu`0+p8 zcxxbbj92=wYR;Gtj@wwP*|YLb@5aYR7PWZ{7oc8R7#?p1tXRkC58mfFi_I#q3U*gaFL z4^aI1Z&&CI^=Z^u#rx>7V|R*gtev%sV7^q zY|1>jh+eUdgG1xIG!|Ag{PLIOqm$4b{p0wBgencVHf_@WEZ17#k*(|f^6C=kd|4HF z!-XyTBf`QAZJPkNO83ta!C3DtREg|X2S4qIo7~2zh??$P;R9QX58S>d&wBpBd)<~T zmaDdkCB4e>)EovXyE8N1?~#8G`$P^hi8f#1QJ~Bn*^>ZYL1o5oZ^x_U`JUg5(sHO@ z5gRaj0McD~8nzKGL6df9Rps4zuh|LCmoH!L*gmTwHyt(YapA&KSLp-}q);*A{lmOc zQq7w|W`bs$B6`aDBz(QxSmS>RO)`XL6VG3+zgQsI&1d}e?Vaei`A|I^vPZkT$9W;j z3^Zq!T?W6o10J9klRRo_W)?il0>@#d&Vk2&7y++I_`VrQ&GK2twX0WeLnPt!JuB<= z^~E2H%%%ZiXHB@!H~KxbZjQ(Huz-JfcuD}jc5qRLLz#e4!$FgGzdE{ge+cS6woRyD zOf6YA{iL?Rr4!ek!Nbk*NJs&k)0xck#J&NI89-cRz-}IkAlHFzO(6R}c+>L<3^KK=!|0I3>yv|VM4{;mdJbTK6Tgp^Q-H(?%dG?xH8Rd!8^*6vdya;dLTCbN9I=B z=ST4RBR@0$DO5dvz&oP5K;cL+Eeo_5ZZEKGOg*3DT>Bd6Y7SdxoRv`C^R^V?Z#_C? zdIOnY*qWQuH_SY#!{r&#K~tH@`q}Q8gOE<3Y>KVsk~4Vl-~nLM$JF!18JE7Eyu*3u zBz^47CR!YlJNY^nd+HQP-}Ho7yZj$-x6-4)IN~9c7!?pvNatbsfmM+)*C^*!V==n( z(?L6UQv4TFG}cxW9q!6$vqgo{Aj%6qveYZ(Eo**uoOCMbB3AYL2?t`WNIwdxRBTvm zs`H`Bhn`P(*H77Zq>(dU|M*%`{xX&ba8rvZ-mj)N#RWfp{QGF>H1+{N<5S<=387@8 z(4F4%FyegJtpBr>MM?PZ+1?!M(>)w{>R!rAbG+%bQK3&;fBg7y>*mb|+~r}?*}joK z+R>QIGE|~qsHimXMtDBe zO4hR|_FYYnLLXH2`-?@QoWc~Hg*~(vK3A_@8%OIwk?%QOj-NjfZA<0P+gBlfT(`{| z%=%Z;vXVmi`4P;Rho?`URy8m%5Iwn=QnWhMX8~Jy)iDG_4Y;N#G#8~H;ppQ*%~Pwc zfJX6wLx3d9&walJkQW@hhP1FVPm^Zwi!Hl$?aFW;w}iA)@3fclJp}9ZeRW8A3=k>$ zwBPlhk{Af0L5a+FMeo*P$`uFb4gCqAq^6)c>(09$}tept((*l(00M_LW8y*N9ycF+9AKcc>KovFzA zMFj74qKx7y{)5?-4Y zM5YcyrFY2wec?%T-Jpf=kei}IDFKZ(M3NTWzT(rf+qYMtvkhkO7x^ZT8nzv2!p9tY zmW1-j500qTLJ$1cWB>okZt-6}(*JdCj{m&<|AW=#Ka2C4UNR>wN8{NE=Czoc8lScaqRdzg!()#EbHRS-jRsH1E`{L zZ-*?TIzwwiDDXs9mvroo15r+E85HH<`TG+nv>DVm(etks+n_b~I+s8dwAt&xCI{Fr zEG361zfhp)I7o$UIe6hutrUZJf?U!3dQ%z|6JuHR^n^R)JEy+dee|jx=z&$GA`$NjLY$Z{0AyZg@5_;d-f8ahoA1WbzMa*-_i1V9?O3!UE z(D-cT)3vp=sppRg&CeMk&X5f%zelFp~dj`=Rlf2bLrBhuE74bylkj0S=LQo zV&DD!ag?cMbWn&fs>wQQ1#>{ifL*Ju();PO_&23c%@xtnBl}OCdwo zgx0VL_HKGhOee7I@bBJz49$PyadV#>5{Uo3g|w}{f46rYZf|1_^GHhSqAf`0Cd2?x ztveSQ0iitfs15vD-w^6`5R>9a1IfJq^9?R7^sP7U*LjR*PNf&JSsp(X_p&xSB9C)> z0i2r_5?dqrliBhi=ukm;dn((8ufC0NcYmxx^h&eWOl1{x~4 zL|13$qkeQ>{NZZ;b^pw*UvRtd6>wGXx&& z{^cg`tv3%CjEjL>k`7V6t2otcL!ftiJhrP^ws_Oqvl6N_iPJ_~+ZC%M{NB=>rteA* zsX92Mk$VB&uRgO2Wt&0s)+K(WgT^PHO=?~~;d3H_W^Nt_N6Hw?Go=S^3)_+1q3P}I zeY2sarlu^pNCvXb^z?Led-8%>EvPooOa;exb{@7d+3YJ>9&nBn5vuL?beT65H5 zofli~hSeh6u{ZA*Zv0khS(&<-nHel>m-qAXo?3I`7$6CL!5>)oUdl)2Z9o8R%RHzB zj~2gRZ@M4pFYPj*3W5%vwqMk)y>*UP1RWo&jyAT`moHzOU<%_C7FP2;{|!s8mu(w% z^(voue-$<>_AQYk+uZw;Vef)@4kBF=g3)h&_kg{`2Yq$cOhXY7f5>-R2J0a(62?HD z0sK;$XU?1nvYGf+bxhWM>?5AuIGA`}m}~o41nRATcv?|mu$WDPP~p^3@iwQ2%>YV~ z!_g2C2>-^zc#0=&j%Hc(+jHqnKbtW&~9a)X$O@lVuBNCm+@egjen^-}l7>hbZWDn1a=(HJ%$sQjc})sjz^f zfaFS!4I6lnSb)Qz;PzKY57%DbWTX>6vBFODrk|fWwx8}Wz7n_dm~Y(K$dhJGgswu1 zAsV`r>yUNeTCl=shEc-J-*^@12-%*qE!U}j)hQ;~P1eK(M!GW>BfPZ0YDiEA3ei%C z+}5Z$$#NIEeo1TW++ETFg)ytNqM{ys%nZ}AjRo*~_Eksw!A@t8WDP(G9ZwLFiHb`Q z)}N0mawB3dmdA>`=Eb&sNDur)$Euz2Uiv6Z-1-3HuA5#cYn6F=HaIxO0NI?`;Wo%t)ROn zXfwmZJ%%I=o$E9+M+y)%XYk-j6K?E_pAcbC=%PE_>^yRQ*KQe^)=2mM+W6h^bBko< zrM*`3v)oe6j(HbYp+7t&2LX}9d4Jq$D_KW)5p%#(0M&kmp2F?~hkPqNq`sMHNyh0I$uSS7~a`N5|!_`%b z_b9d%xxqtvn(uO{qca{Md`5-M*>+5_r1T7v_w@CbJRzmmZMng_BDQ*8{|Z*0r%?EZ zn#{{TE)dO)1YHMfLVU@RB^I!<@ML8+S?8jC9S{_>FSbVad;ts{0a3zS6k;*PpT{o! zE!oVatG9I4i6JuxI(Fad*rmur!LEz>>#tvujSBS0lZ3@eQpL;NJy(u3Weh?Xqvl)$ zha^&52yo%W3Xce=Ja&cCF~^%A*Ol33_aiM9EnUf=vJ7?;wd{G>l6PZ>MaozJhPw-)*hNrWr7j{o}}v5k#-E$B ze^2MRy?o=k`|6Z{XoyShT>;u6sJ>osy3PRqDf;Jp_T9>-If-rnwz+Ee41D2_b+$on zZ+L#`>losqml(F4LlT*VxoXciuvaoJyjhW~^Xw@7!!qMmbSun)^lfuaB=DQ{9sp`HOp>fPfN8##2%{4jR9G)PkEfB7lj6o)?TyeH}$b zIYTgIHqdz#Gtdr2Z@{0^=kubQ@5la0a(@h7T`Bkxr9u?&j2O~un~p$WKx~<#e^j6s zJ@nxprIW_P!L?j*=;T%)1eeQC_g9AzA8Xf9EaO;9~{#V zytUwT6Se2b3I7pHn&R55KGJ6kL@q}Dr$?*SjdH2cNAK@QUT$QB%617Uyw3LH< zDw3PPGdUq46$E4rIDvDA*Q92`9YjJR!jr@mwn6_77YHEmJ^}l5e=h!I?|&(WELmF+ zJG@JkW1{WdyVHuSh^1D4qn{XVWGq#n`+%^pRD-1!2i> zUn2RhuWG&gAAaEf#Wc)6@ADt^hb+YZ4r=Frq%q2W#}wFq;{Lx?8vAFt|2KcMhXvL{ zwt|r)x7L{q*;p|PVt~4|Az}be=mm{q9#8>;2)VD4E}?0w0bvi`rdtI=PEw?dS)e~5 z%E5_yJtqLV4C+r^_d_5!QHDeC` zkUPM?1~DAgf{~nt`?JY0y?QLDyx7YUTo#2EPR2+ArBRpSTqSj*(>c7nD@kI-K)1_*PDg#BZ} zZ^2d~vdGZL+{WAJkB;_KGE+kVTfbFBj>E<{wUZCu(^$Iv3gte7!5e?>R>&wML3DBz z=!BcV%y*dJs*$cT(m^CH@7!-s{pPmVIYaxb0`Nu0SKBtHy}+Yv(8UTy3GZ731El&A zZVoi=Uv4&fIRtFI7yj+K%^UDNzB1lQ3RZ-4pmUvipI!`iI|*!12Z1qz7-`5%+1I<$ z+#6Pz_(0rJICG{Jk{glGa9LeV``@K=GFgeew?jZdKl66#A@@tDbE@~1q1dR#guCx<+q z4DWe&A~CO9w+?#1Lo!SUJgqgw60>f69CYYnu;UE-^ID$+Etf~j#p{3$O-)Sp9y+8> zX7JFq=Aj}2FlYv8M;kU2#pJx)c14I^dz6B?sm(C5eEIsd+?h1jJ0G0lrh=<{grOyI z8JDN(qGfCLSJlH1m;^kA2ssQ8HtU1IN__a&~aOQBdtDP{d)Z)|J~TR9!h3UxpT>1SzqN@yJ6b0$r^-4T8^gfD8^TX*)vRbFs#&C6XijNc!^~$-RGCe5OE=A zXXp6D#Ii+eW$qVDG$*DFLsfkz+F($VRD|V@%P1PFR;*#tipD3B4FtvYKf0DLxf;@E z?tZpojP7~NdZ;i-ww0F4 z&`i-c$)@u+wx>bW@187TdzE&LNG*B{TTXOgp?C7&%1wd>!_y71PoC@?A0HRETYtr- z4y&MMXxR2;S7)jKAEPY5qP?^$?IL6FWKDV=$oIxr=RcEeppLk~$06R=NMp}5z&dxu z=HnhO#pxUJb2~*vML8uMOeU}%rCefoUqU0(Ag+bFbq7g;*41E#`j>U>*Gc`IEJs4~ zRMTJ3Odi0{%!_ZUfOrS0#rtC%RT?6qdbkg3+5nPNFBUg?9^;v#D(o>8Dm^hJmyb8p z{wT8NLyXaxv_8KSB;)2_o7)>B1K~PAP6ml#AERt~$h9a$U0ITcwAphEDo`qdp;3s; z?zTnlCl{y27a)uz3A-LYex@Axc?8R90y{9LsHMhTyxRaWYX3mPvyvSl#`k2!Cfi(T z;kX<0g7<($Ii`z|UD=RgIEwkLo|X=l3rNcN^+_woiLS@j)|7&#lZQGs&~yk4%lw%y zZV$G(gGADYDoV#xm09a%p$3n!Zx5ad zw^#qm3xM{J$&W8@tlHA|AOOojG3%QPyVFNZi7|W{7cvS@rgLQF0t$zIO|VjG@-#Xh zV(#0M(I|KPO?wgLMNI1Z2FhkJYn@!ELIXS_5WvB&13NQnl*=|~8$2*{Z4-@F+o!3i z*$W>{h3sVOKvs(_tvA=T_0lO+$RZ7G?bw6_K4`)3t}IwY=k}Q{qXlPrLDfvNtVGF3w?oa#B4O08do?jpAM%{~zTYrc1U@E3BW(TK+oi=&-70i1hSenv z!h>Gj*!YO7;4xcW)3LYkoTMEYTtN9`XIRs0yw%wF8cg6~OeLv>=P=P_dC5JnV}8h$ zI&xjT-8yN0vO^w$pkw8MRvtY`HoDA*)#I~=sx0yO&yAH0m?}OKAtwuOWT|-3bUF9? zeX*f*s9Itq=#lFqpr%N}CuI9$3cY?_s;S^yXHo1Mgm6H-E40~yCx!-0l$$PS=A{Uq z2M~&Q(6lMV48S4WE?l*8;_a7>*T{T-p)hL`F9bJB8B8R?4xR5>y=Mo>Lrf`R&1Am1 z7V~=~B7Lhk9V$aBU?h@je(#+-cOb7Q z&P)u3{H7xFO!qq(L*(xFnGTJ5!yFaYLQJ|(3T62uioL7{PFrX{Z`g{-Uw?a%120S z#Fy;AJnw;n172kS;$TmYbyO3TvAMa~z_rbpQ`qD*I@5s< zRpi`4`W2DTY_i(|O~xHZpxMP@Ba?MYcY#nuMRvvfZrf_9;Tv4ukGPFqW6v|b7Yus| z0p?CKq_8QwFz?oSX2Sx?cTMXD&q{9Wa5txSB5#ZbK5yNWkesYU&xf&3U?>7T1A6Dy zj;WJ=vmx~>6J|UqL_UL-4EDb(WjI&l^acVw({C>U1M(I=%sG z|DsSDv#cLbK7EV4SD`FD=pP&I&Ua6CLI;EN8bR{jaPm!$GkwCAtlVgQQ;p7Dvd!^~ zLbMu2nI59(rHnXuHl>+z%DOwjK3_MGRwmesW?I*yQ#;(aAzxMEiSVhfsB38G!Io6= z>#;);C%+2^pD9ee0mfUlY#D)cW(FmB>zwH945?bU=?Wl+1_-w^Gc)-}NI8(`9&#_+ zX8&Sizhb-w!49MK`gX~aljy{Z$so=oF)@G-jBpxgJc#DDmE6p?$X59Ktd!cEAh_~Q z5ATbvk47PO?Edin$g=HY*H^B?YOs?v6Sdr+-;LrXy{L1B76`2i2A+-5E?ddwEccxZIgA1Vz8l7Zg&4B1N$S<<;!_PRds)rY!dd8?2URj0$w2liSu;YOgQY`;y{mQ z=pQ2FAr#=K3yS4%4^$IsU{nW1tMG~tNQ*P7UV>GeADyv!;>gHUlC!^Xu0 zPUojcvKCOTIJbb^jQ|LDFO#1-0xpnOe?#(p-;!%~&p-RNI@KuEXCPdBZJznWDA!B9wSN{S$~ z>I&Icl;)K$WPm>ICgzM_+HgcKek$?R!)2m;*hf9-@ zh-@BQ82dYmYWBv!d_X`B^-Gg!UYh6h2r1pLbGFnAE)i?Q{IMF176AlODcBMKZ)`MP zLW=Kbj^?QUYu)YkIj)mh|e=0N9zPI)G|UI_zV0oBTRHYhiQDNeV#clQ%+n zKlS=6LM6Za{k^@v|0CdY-2eLvlogmu`T1wbKT6}3h5wwVba=r(hbcY2^3O?1s)zqM zM(ICq^Pjc(Pu%=(zZuSLtp+hLKw1?TnneK_6=IJF;kbj@ys_a9c`&UKsY*w*W@DZ_ zIqw*dQwMX`A&jwB;y9iV8#{CJcNiK71x<0_*L<6G0f>CM+|K(Ud%TFH&6;GhI)a2v z75e)7vt6KrKqfhn+1$LudJVul(IGGn{s?GQlzhF_~zYl&p-SODIGxlAkM< zHv#ID?2C(Zz_}dJ_@Zv6r6#;@58(o`9b7M73i2Gr4VI_kC&Xq?mB^EmqRO*yEX96E zxnJy0{;-`?YjfJ}R_1oN^{ zqNz4GD?wRVsyE6Lz>?NDfw3K9Wyvo8d`O769K)=`&g6PiojEL5UqQc}Tx&1XNY)Q7 z_CY*-4^+Q|#6(ivS8bE9&zqf*r)nkXJTMvO5RcFnWDp9?{T{?}gh*W&o2noL6ebQr zPryFPHYU3|64*in2vI1h-R>>py*0dvTFIrrZ&}y*jICy??s;b%5n_kT;Y_j$w3Nk- zPyD>7ahpxMDFEH%k!TtX6rlpUfsKzsZs@@?`9O3pUteFc_V4>n*o&9=v0^M-2$Ltz zorp2yxdTadgRH#OYcK#<0|dyKo5(II$G0B>W9@^YXq0mueCTD9 z01B|0Ybl!72gFOmXzhNZdymGO49q2x*Y`^$@pg(% z4bWS?2W#BI-2AkcmzQ6pXrqkxcp}ZF_7aj4dFGC+=^nc;w@6r=Ye_XMh@LCvV%-l8 z4#u#TFbJ1j`t)~s&?@ftcqD=7lXTzY4S$Cu6GC_i5hfi$oO(bU+rK?npdvf20g1G5 zwr#lEUtO7s={I#j#weWMW;hX`+)@`#Zd=d@e}!nAMkRt%Hx%$ABm;WlYz3ldVlplO zrxgk#ntG&|ZkYV;#+iWSBx4}R_h2&fJuq-}wuB~krTVUTvQ?yd+6LEbV07v?;8;W$|s zGujg$PJZo_Gjt;4Hd(}mK{r*?)C~Ba(CxTEXtp{HCM47q#RR_cgA9r}w-O>up_dVg znOu29M;X$|D5i`v8av9{7%@^sd##)PCzU(GF}bHP*CrMx+rk7%zay6wz3z8%@2VUv zb-!GJ_-++eQ$#oxb>#JLDxEJDt^Gh$d4yLI1TdKOl)XnDMwr0U2UU4QPlzG@`oGZY z@*K)5L*%^N=^EXyR9GH*p$<7Xi{K)J99r((Kw`9CD?6r2ju6a;^ce&dg(PeEvtnVN z%Yi=W`00;jwhz5}p|lYd2zJ|Uq&gLNza7wLVs6+WvV;>-UEAZ)EM)ulGqg1k;AfVdMxkb8CZMLanh4^N@e$CCezC%@}A9#pIhhgUs-vSbB3U7*`<|4O@)FG z%T2T)sJ`Jisi7Nux&ppZF+K_!aHnAEEF_6bex~Xk(Lxa#QIN%mRu;14Hxy{<$Q#-o zy8-h*12r@?qv5$F+>;y?LbfGle7XKBqj>{_L zSgM>7&4tO|cv?$Hp_NYfcjTfg2*4PuOMpjtw`+xDPbb+8wP` zV++2}Ku}z6-FZ>ZnliSiXnCf*>rm^s;Ho@1qItsjUc73H$X*!i-lM}uz=J6?22MH8 z%Y{Hkd#GJq!@)vr*%{>Xva-Z*c!wd8;mH9%h?(~88Kg}|EEtdOe4Yo2XblD>osd~| z^PrbT<>pEOA`LAKn?yhC%zB|O?4_8{l_tUh(&CTkyZxx^D2LC2{++I|*@ysLR;*mYCMeE`g#HdsB}CD?FlY8kg0S+VfhU&s+;%q=N5kI z2=%hivpVNRG|msfqWmykm*P#r5)u+14wxhxD@LnLz`jQ6*6P)(X_wn$-WWDyQVzU1 zi@l26burobNIf}_HV0CGn6V~V*VOS1dnl*rXg2PmI-uHh!snjy;Vc_4!xUM9N=IR{ ztIgqZ>wG{YY%Fa22M-#!cgI|}xK*ZX_aozKw7W<@1h(|Dt4mh$m4GyNVu3zD(iNMs zni$tjJ$D3xKo}q*vq?mTBzbfx9nnkSrLK|qbVZ<^fqVcjWe*z1rFe^a-C3MvGD>zQ zaIp&X)oOH(h*^0WY0?2tO*5sY6RM{Q{X>YjUBP73{~(_Q6z|AdTe8E$ddKBYe~jN< zZ<$6a5#~Q6zdgQ|b=dUpySCO=r+7WURmujBOTIi2v zRLldn>UQ-Y08Eg%bC5p{L8irFASrK**GP8Wzms691fUjl;QUb>_IjV&0!kt|F4q8u zP6ddOMpb&ea@KJg0cLYJkfD-vOp?Nji?F#kCG5}9P0$m`fuoe*E>9ds!`!B=uO9*{ z+ySzrzz=N$lg_W#oif3ZEJU<1Rfr7~5jgFMiHDT*)o&c9yBHVI6D?=YMX(RC$7$@k z3q&)Pnfi21K#=v*1b0F`j`A4NE0k49=#PgkeR=%>bON#r*~3s*GZ4rgkww20L1Ga` z2Zr=QeQ>HsI;0ouxX#q#HD#!n;Sh@=b!Ulu4Jk8 zH%8$XkW5%Py|6?S^8;0XfqfQJ0*ZhKC~qZYwM)jsyZmj zWM^`dy$fqLYcn~+i`+ei7+9pAMw@MJpmUQf2)rhYqnn)tKZTGo1E^NMaZ|TlF+jm1 zHkc4C+*0dkQjNAxC>+d0C1V8h{S;raE=G^^^yr??6F>LjiVT*>sz68R zDh~FLg*jB8e5TW2vvcx1dbRIxv_k|kt`N@l`Ekk}l zXuFoe<&citLppEzc^r-B;HXdlUcwE? zfd+6o#_4TDkGfLi=JW8Y_$DEvP>f5NUuzD(^p=zK^TZubgw*3lvs{*kXxiA=`1x(l zwyd)Z^W*sW0dvU*|KZ>(zS%h}J`8ZAH+OX#`E1IqSO1Z`el7&%KRVujG|vA?;r7{A z-w^!A0+y2hM!?S?`u}AN{V$Zivb;#rA|?jp;2!jK-s5x=Vhyn#Od|_)MJcK-Fjp1H z6IOx|%p`RKXeb~bIRJ_E+&)zCj$q&D(#9B3F)=f^|Ez3ixlR^^lLf<~9`PNGjnCUh zIW*C5g)bt&7&Z`c&`lN-4LZ^oa2PI_?2dY8D7BI;pO%o*uyWQ?eJkF0h`0F+E;#RyO7kRhzOC93~Fb76BHNXboH#uT!Al8XDeFBU!NkEYrIM8s= zkoCjxS=XXjLm~^HfHB|96Mf?+?hh8(hm!(7?9ud8S(X}4yZxDk2rFUa|Ce_&Z>z)YTIH-+i!B)V+z<|3T z?+q|m#(M%o2#><)BZM7_TdZzL$0QnavWp!|*ee!J6c!CV0>qaj{47OcndOB`U*L2a z;zlBnojrAr{RrS$7A_Y8g3!~%p>5y#*+Quo-rV9&jD0?x57iCFfAdlaJEO5i7`>Q! zBpi;!7%T?R_6)Pk3qs0B*+t)+DG7wp(2@eUN;E$rObKW-O?-}(pYL5-FlRS{>+be| zoNAWzv-UNHin%X7jFT-$`>fP&9?QQI1m3zGcl*;o1GT04 zLRyjRQ6H8HE~x0IzJhV%AUGv1g*AkMUxWkK5V?IyA_!*DW@ z0B~73J~k96kpQ9Tx8jA*>Yd@x39ESev*LwF3EpebLW&tfL?xHm2zfmw6?VJ!G$TV~)0GpLzKlrIKHZ4v+e@QGZR02%7sW=DDeYgcY zEQH$)LQz8#yGRu3#0Sg=*9dvF0yp0$_Xx#w$}Eoj$5<$hp@r2Phk?;`(@dza);@p> zBByD>WPDQ#6`l!3dDcfe;t@nM6f`_0B_$SLcmD68AWrZEC6m%C^yLiA<$(~aDXz@uF@>hP)0|X^l?G-({M$a6JF4h&|I`4 zQCLdSghn$BN^friv%`H>OOO#F@GY-<;Y%fFk%BlocWU8IF;`lBl4JQy!`yVJW5s*0 ztPxnby00u+6ZhvY5VbLtQ-*ecBOtU`zjn>0d1$gmc5Jfl#JDz%`IQKVocs!kIWj~* z)dnkgh^yQyi{!8tP$TUwCB!86qE*0dv0i;w$QYgDzY*L2(cYN`MRjIj_#$o*jTu9U z8QfwT0TD<*1;RQ^kTg4rGJt>!i^?j9K^7s2juk+NjYwqIAdAqTK#N2X69WhWEn6#% zqM+;;1Vja)d*0JHshK}kQZ+S|sTzJ^S-|akzwdnKyzg_)z4vZ-_eMta?6@J>*l69a z!|iS#s_d;^6_LWy8M=702>C714HAhKqt&}HPCCR2bJmulx^+G5b_3U1gysAMB`g~b zIjY=IQgXABeQTliq?@aivEcRQmr$S;^{0!J*#Q{e)P3}QtIwfl6#+Ozg{2m+Xx(6` z_23kuPG(a&5g_=~1YQN!DraXx9wE#RR=g(gO^<1p->2lg4*Fe6UU=uUFeRL-NDah7 zidLX&>)BMLQP68uV(R3XV4QiYP<-#co z`o|EXPW}tdM{HX3)~@`C{4fX7FbHmMtoBnYgodNm9na0*VM)>KE-1C(P1UQGiP z537bEoQDrBM^eEMjCNUJ3f>T$5!6%t(CG_s4a*@*P-Ma8HQW|U!YRitYu>s9Gva$N zZRs?|F1mx!$tj@|l1dZ|AU=nM0;Jva`(b1C>?ZG@f10%0#uaVk$(};}F$E*U z3d)y8@UurLpgzxFrYwb8KyBYwhF&du-DKA*H%AvJ#U9MZNW+%x!2tdmcnYVn4YMFJ z=?vxGHL$g|3i&+R){ zlQj5VzIC(x;NXHyoYv?irFiHDZGB7z;sbof@NO4B6=GQFlI6!k9qnx-V_Ur2uLm%9 zo^#3-04{?cKilzqG{Vwy>>(dfv^<*UyWdjXGjY8`({5)=b&=t!^#=z9s)kdYi!}kY zkpV-JCuM1bjJ@`QAB<{*9ZgwjP(C{Zz4=y&CXt3IxMn%vY2`ek2d0&0?E` z6iIGg>+n{AF}i%pntUc!4GiCVT_PBq3he76C;UpTRO~B{#Q!W@si)1>Kpd(SVSMWb z_9zjP7dTpu&Ed{><))I0)#WvYr;zlX#!2Xoeg`7nwn9)uoXZdL&b6zBOOX!I0xWr_ z48Og^|LG4)8IjWlc!fmW$+ukYFQcC+E$f#cFp-Oj9i$^!WnED!oP3wemlDBI{#U_q zJHM<#VFj`lgdO-G7G&Yo-X1|ytvlqe!|4Am2CkL~p(SAtQqf;kNegAWH>#v+S_O_{ z`dJ`siDW3pQh7imB=|M&XLpANi+BF`Rm@8LPm#I16!$x0caX)>gS&6V0m>)kl&_A& zkPJ>t0#3lM$S;0@4ckjL6Lc>Kl9QS6_sWpZk0I8Rhv?`vkVSGLTf?v8+IR<9m6X~; z8@{u2(do-UWZqJkS!!Ay=7LfJarjcDxP7J&NG;Txb4N}Gk6mJ1A*HK31dXu0f zUyboVCww~Yxf@j3i8lU`)9KSgp7k%#ozRPOwXjY%okj1;iCMU}22Stxi82%oWZv9* z6LPuFBNcX58%@}C{s?}&0MEa z0z~2N2441;*wZ(%O4_6&p$KE@%|KvI_ob0aKrpf3EWa?{85mq5A}7N?$pY zOOxi}b{xybBHa_a9dRPVt4v{~IbT+}ov6+yMi~v&K2Nvo{2H@ml!!;UaA9<)$l0M} zuPv#w7%0niHrsUqSqs{>jzG}FG~po+S7~O``QIRE?ycv^L=oUj9yf{sn~BL{Hp(nA zaglX?)+MRFrs~_Xs{GVom4Fy&oXgXH9HSY4d+Xa1b=ewCKtiE{_jcTGRkhvsq1^_l zZIS5c&q}NQDO_gw?0=(a7ExOr8tVdnMg0DwjNT2g-*AU<{sr--NJFRUo5A0inbt}F zY0;Wp#+&<1WX(F3?KPQm$au*Qx$|RUZT1~cp08dcW7|Lbq{0Ws9H-0sb}q@3Rz7Q| zy*qov!$NPvKwn*m`e)+d4Z^{gt1onK^XFajpB5~>E|=`d7xG=aq)&bOMzuBj{0)t$ zkSY0mOyrU+Gv64!qdfCX#!-4(3chTNC50BlD1Ashllc1oulb+3H#W}Pd6D8m1fFt4 zsev_=)$yw3(@?>8HB7;RQw&fdhWW;1b^r=8Ot4 z;fzq>?D7T7t7sTNU>Q^~rKKJnoczNNA-^=YwVjcYo=bX~_|Z`t=WNl9gMYD(u$47= zcctEUPo5mNRg3Mjwo1`HiPIu$OKwYuthOSi-&%);hH}WSBZuvT;#YxNWlhLn^60l0 zwzmgPy&ADwmjI)(C1km_C&DzlEAUtZ&E#!@+m&6Oa84;|9bZ~5lOP;;Yt98%x}wm} zkR^D`oD#sU)j)#JszFVcj?Rgks`sT%-Gww)jIxzggPP|I4mrW0)sag=VbYDlF!BUN z+=jkPZncz|v8qIrVt&)UqAPJ+EaiR?YFr7AM*tl1&Vq4m=6q{o<4H_AR%BxkUJ9V* zmf$s!qmxJ+n(p6EVUbscn78fmH%#pysIz(mQ;F-3Ob0)1#8#Tws2NA~X3fO3w{7^= z))1y|IO^OjXoq9yn{k85Nj-AJhY%G`HXXNGy3Zarxk)HYLh9WOILX4?+?+#Zu*LZ; zI)erd3-9Q1xm;jp=9hgRBq5E@R*KrNaicrI7P#JlfrcZwN`X=#z3A)N=j+=5Y#|o9so1Jx{LRp`So7<4%!lTv7gmB2k7DMIqBLZiczl9NO8(IdQ`6hJU6TfeSh zCbLmTeuU|awsDW~27nO<8HO%IRaF&7PNTzJc~p#0WKbrbt4^w$(^rm!&rK|v_H;%m z+N+7|ePy+~n$4mGjP_!PsJC!lk^-QI9t9GtFw8#bi;lyJ05J$)A;+|0TCk20V*+5( za=Z))P=GaLUxK8b4A1;+v@F#iI}IcP2uZRzR4&|G%mhjz_J*IPFOi9`npTFos~HWK zqsRCR`O$dLNGw@3*gpg?^+3Y3e3N8=d&p@wI3r{C^(PMPMKMwUv#;7$SF#<*ClNePR>@7F3Bk(l~Bte|lgL!zp80Um^kXz_X^- z2e{k*lUM5IT&Rp={<;cdi?p6TeM*#Rsa6*&*KS=I+Wj~zCk*|r3})nJJ1n$uMh&Nz znw^@O`as~OW;DKtnixX#4q5ihYV9(OJR1kCvy@eX$vNRw<5(_w>>}tE5nilFnb`Gn za|-aBJ@6nXw1L>Q@^PG+;ShSZXD0qhGWv<5MUPi6k_Tk^!YLv?|a|?ZyOU zK_r}Ug(lazZ#VRAMW$kT)T$gw7NMtv1aEvCyo?+l~10ar}hA8Wq|7%ipjz&d_(Fr2c+RU39*$SW}840V)WZ9hO4 zh$Xle;0+OvcyVMp+JK(_O$_OhL%mnxQd8+GJ8$idyxu=BfJ)#R2OE~O6i7=VahWL| z@HG8|=@JEow1wWq^ch_{2)%(gN}A0}D^^WncmuIT{=n791>j25ip zVaz93LsB$_Dw0dlkENd-t|6E4($Udz6dIH}lI865c2`*w^e82Qy6`|#JDY=&@nE|m zo>{J}iET^B{Jug2v!dXUF3k>(J&H@L(v8%hyJ)R+U-}Uc#?)ubwsKhpX-h%pu++hU zOS0NG1-pW~%d3aV-a$_;KRYXM4duMPuqh8RVt}vo*9pmQTDa4uJ4opNjYK{1{ z?t*L)J`^=VLjrv9Jc+JBAP{&9OO)9!!=?u-2$zOb@!&=6j>rzW8Y&N|wFvJJwZg_i zCEVQ7atf|h4?$eeGY?diV{y#=V&Links

License

diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml index d6d1813..4ed9b60 100644 --- a/dev/pkgdown.yml +++ b/dev/pkgdown.yml @@ -6,7 +6,7 @@ articles: Introduction: Introduction.html Performance: Performance.html Portable: Portable.html -last_built: 2024-09-05T15:30Z +last_built: 2024-09-06T07:28Z urls: reference: https://r6.r-lib.org/reference article: https://r6.r-lib.org/articles diff --git a/dev/search.json b/dev/search.json index ea644ce..5a3b424 100644 --- a/dev/search.json +++ b/dev/search.json @@ -1 +1 @@ -[{"path":"https://r6.r-lib.org/dev/articles/Debugging.html","id":"enabling-debugging-for-all-future-instances-of-a-class","dir":"Articles","previous_headings":"","what":"Enabling debugging for all future instances of a class","title":"Debugging","text":"R6 generator objects method called debug() enable debugging method. affect instances class created debug() called. disable debugging future instances, use generator’s undebug() method:","code":"# An example class Simple <- R6Class(\"Simple\", public = list( x = 10, getx = function() self$x ) ) # This will enable debugging the getx() method for objects of the 'Simple' # class that are instantiated in the future. Simple$debug(\"getx\") s <- Simple$new() s$getx() # [Debugging prompt] # Disable debugging for future instances: Simple$undebug(\"getx\") s <- Simple$new() s$getx() #> [1] 10"},{"path":"https://r6.r-lib.org/dev/articles/Debugging.html","id":"debugging-methods-in-individual-objects","dir":"Articles","previous_headings":"","what":"Debugging methods in individual objects","title":"Debugging","text":"enable debugging method single instance object, use debug() function (debug() method generator object). Use undebug() disable debugging object’s method. can also use trace() function specify method want drop debugging console.","code":"s <- Simple$new() debug(s$getx) s$getx() # [Debugging prompt] undebug(s$getx) s$getx() #> [1] 10"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"r6-classes","dir":"Articles","previous_headings":"","what":"R6 classes","title":"Introduction","text":"R6 classes similar R’s reference classes, lighter weight, avoid issues come along using S4 (R’s reference classes based S4). information speed memory footprint, see vignette(\"Performance\"). Unlike many objects R, instances (objects) R6 classes reference semantics. R6 classes also support: public private methods active bindings inheritance (superclasses) works across packages name R6? R’s reference classes introduced, users, following names R’s existing class systems S3 S4, called new class system R5 jest. Although reference classes actually called R5, name package classes takes inspiration name. name R5 also code-name used different object system started Simon Urbanek, meant solve issues S4 relating syntax performance. However, R5 branch shelved little development, never released.","code":""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"basics","dir":"Articles","previous_headings":"R6 classes","what":"Basics","title":"Introduction","text":"’s create simple R6 class. public argument list items, can functions fields (non-functions). Functions used methods. instantiate object class, use $new(): $new() method creates object calls initialize() method, exists. Inside class methods, self refers object. Public members object (’ve seen far) accessed self$x, assignment done self$x <- y. object instantiated, can access public fields methods $: Implementation note: external face R6 object basically environment public members . also known public environment. R6 object’s methods separate enclosing environment , roughly speaking, environment “run ”. self binding found, simply reference back public environment.","code":"library(R6) Person <- R6Class(\"Person\", public = list( name = NULL, hair = NULL, initialize = function(name = NA, hair = NA) { self$name <- name self$hair <- hair self$greet() }, set_hair = function(val) { self$hair <- val }, greet = function() { cat(paste0(\"Hello, my name is \", self$name, \".\\n\")) } ) ) ann <- Person$new(\"Ann\", \"black\") #> Hello, my name is Ann. ann #> #> Public: #> clone: function (deep = FALSE) #> greet: function () #> hair: black #> initialize: function (name = NA, hair = NA) #> name: Ann #> set_hair: function (val) ann$hair #> [1] \"black\" ann$greet() #> Hello, my name is Ann. ann$set_hair(\"red\") ann$hair #> [1] \"red\""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"private-members","dir":"Articles","previous_headings":"R6 classes","what":"Private members","title":"Introduction","text":"previous example, members public. ’s also possible add private members: Whereas public members accessed self, like self$add(), private members accessed private, like private$queue. public members can accessed usual: However, private members can’t accessed directly: useful design pattern methods return self (invisibly) possible, makes chainable. example, add() method returns self can chain together: hand, remove() returns value removed, ’s chainable:","code":"Queue <- R6Class(\"Queue\", public = list( initialize = function(...) { for (item in list(...)) { self$add(item) } }, add = function(x) { private$queue <- c(private$queue, list(x)) invisible(self) }, remove = function() { if (private$length() == 0) return(NULL) # Can use private$queue for explicit access head <- private$queue[[1]] private$queue <- private$queue[-1] head } ), private = list( queue = list(), length = function() base::length(private$queue) ) ) q <- Queue$new(5, 6, \"foo\") # Add and remove items q$add(\"something\") q$add(\"another thing\") q$add(17) q$remove() #> [1] 5 q$remove() #> [1] 6 q$queue #> NULL q$length() #> Error: attempt to apply non-function q$add(10)$add(11)$add(12) q$remove() #> [1] \"foo\" q$remove() #> [1] \"something\" q$remove() #> [1] \"another thing\" q$remove() #> [1] 17"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"active-bindings","dir":"Articles","previous_headings":"R6 classes","what":"Active bindings","title":"Introduction","text":"Active bindings look like fields, time accessed, call function. always publicly visible. active binding accessed reading value, calls function value missing argument: ’s accessed assigning value, uses assignment value value argument: function takes arguments, ’s possible use <-: Implementation note: Active bindings bound public environment. enclosing environment functions also public environment.","code":"Numbers <- R6Class(\"Numbers\", public = list( x = 100 ), active = list( x2 = function(value) { if (missing(value)) return(self$x * 2) else self$x <- value/2 }, rand = function() rnorm(1) ) ) n <- Numbers$new() n$x #> [1] 100 n$x2 #> [1] 200 n$x2 <- 1000 n$x #> [1] 500 n$rand #> [1] 0.2648 n$rand #> [1] 2.171 n$rand <- 3 #> Error: unused argument (quote(3))"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"inheritance","dir":"Articles","previous_headings":"R6 classes","what":"Inheritance","title":"Introduction","text":"One R6 class can inherit another. words, can super- sub-classes. Subclasses can additional methods, can also methods override superclass methods. example queue retains history, ’ll add show() method override remove() method: Superclass methods can called super$xx(). CountingQueue (example ) keeps count total number objects ever added queue. overriding add() method – increments counter calls superclass’s add() method, super$add(x): Note , unlike classical OOP languages (e.g. C++), R6 subclasses also access private methods superclass. instance, following example, Duck class private method $quack(), subclass Mallard can access using super$quack().","code":"# Note that this isn't very efficient - it's just for illustrating inheritance. HistoryQueue <- R6Class(\"HistoryQueue\", inherit = Queue, public = list( show = function() { cat(\"Next item is at index\", private$head_idx + 1, \"\\n\") for (i in seq_along(private$queue)) { cat(i, \": \", private$queue[[i]], \"\\n\", sep = \"\") } }, remove = function() { if (private$length() - private$head_idx == 0) return(NULL) private$head_idx <- private$head_idx + 1 private$queue[[private$head_idx]] } ), private = list( head_idx = 0 ) ) hq <- HistoryQueue$new(5, 6, \"foo\") hq$show() #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 5 hq$show() #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 6 CountingQueue <- R6Class(\"CountingQueue\", inherit = Queue, public = list( add = function(x) { private$total <- private$total + 1 super$add(x) }, get_total = function() private$total ), private = list( total = 0 ) ) cq <- CountingQueue$new(\"x\", \"y\") cq$get_total() #> [1] 2 cq$add(\"z\") cq$remove() #> [1] \"x\" cq$remove() #> [1] \"y\" cq$get_total() #> [1] 3 Duck <- R6Class(\"Duck\", private = list(quack = function() print(\"Quack Quack\")) ) Mallard <- R6Class(\"Mallard\", inherit = Duck, public = list(quack = function() super$quack()) ) myMallard <- Mallard$new() myMallard$quack() #> [1] \"Quack Quack\""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"fields-containing-reference-objects","dir":"Articles","previous_headings":"R6 classes","what":"Fields containing reference objects","title":"Introduction","text":"R6 class contains fields also reference semantics (e.g., R6 objects, environments), fields populated $initialize() method. field set reference object directly class definition, object shared across instances R6 class. ’s example: avoid , populate field initialize method:","code":"SimpleClass <- R6Class(\"SimpleClass\", public = list(x = NULL) ) SharedField <- R6Class(\"SharedField\", public = list( e = SimpleClass$new() ) ) s1 <- SharedField$new() s1$e$x <- 1 s2 <- SharedField$new() s2$e$x <- 2 # Changing s2$e$x has changed the value of s1$e$x s1$e$x #> [1] 2 NonSharedField <- R6Class(\"NonSharedField\", public = list( e = NULL, initialize = function() self$e <- SimpleClass$new() ) ) n1 <- NonSharedField$new() n1$e$x <- 1 n2 <- NonSharedField$new() n2$e$x <- 2 # n2$e$x does not affect n1$e$x n1$e$x #> [1] 1"},{"path":[]},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"adding-members-to-an-existing-class","dir":"Articles","previous_headings":"Other topics","what":"Adding members to an existing class","title":"Introduction","text":"sometimes useful add members class class already created. can done using $set() method generator object. new members present instances created $set() called. prevent modification class, can use lock_class=TRUE creating class. can also lock unlock class follows:","code":"Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) Simple$set(\"public\", \"getx2\", function() self$x*2) # To replace an existing member, use `overwrite=TRUE` Simple$set(\"public\", \"x\", 10, overwrite = TRUE) s <- Simple$new() s$x #> [1] 10 s$getx2() #> [1] 20 # Create a locked class Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ), lock_class = TRUE ) # This would result in an error Simple$set(\"public\", \"y\", 2) #> Error in Simple$set(\"public\", \"y\", 2): Can't modify a locked R6 class. # Unlock the class Simple$unlock() # Now it works Simple$set(\"public\", \"y\", 2) # Lock the class again Simple$lock()"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"cloning-objects","dir":"Articles","previous_headings":"Other topics","what":"Cloning objects","title":"Introduction","text":"default, R6 objects method named $clone() making copy object. don’t want clone method added, can use cloneable=FALSE creating class. loaded R6 object clone method, function uses 84.11 kB bytes, additional object, clone method costs trivial amount space (112 B bytes). Note cloneable inheritance: superclass cloneable=FALSE, subclasses cloneable. (subclass sets cloneable=TRUE, message printed objects instantiated objects cloneable.)","code":"Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) s <- Simple$new() # Create a clone s1 <- s$clone() # Modify it s1$x <- 2 s1$getx() #> [1] 2 # Original is unaffected by changes to the clone s$getx() #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"deep-cloning","dir":"Articles","previous_headings":"Other topics > Cloning objects","what":"Deep cloning","title":"Introduction","text":"fields objects reference semantics (environments, R6 objects, reference class objects), copy get reference object. sometimes desirable, often . example, ’ll create object c1 contains another R6 object, s, clone . original’s clone’s s fields refer object, modifying one results change reflected . make clone receives copy s, can use deep=TRUE option: default behavior $clone(deep=TRUE) copy fields R6 objects, copy fields environments, reference class objects, data structures contain reference-type objects (example, list R6 object). R6 object contains types objects want make deep clone , must provide function deep cloning, private method named deep_clone. example R6 object two fields, b, environments, contain value x. also field v regular (non-reference) value, private deep_clone method. deep_clone method called field. passed name value field, value returns used clone. c1$clone(deep=TRUE) called, deep_clone method called field c1, passed name field value. version, environment gets copied, b , v (doesn’t matter since v reference object). can test clone: example deep_clone method , checked name field determine , also check value, using inherits(value, \"R6\"), .environment(), .","code":"Simple <- R6Class(\"Simple\", public = list(x = 1)) Cloneable <- R6Class(\"Cloneable\", public = list( s = NULL, initialize = function() self$s <- Simple$new() ) ) c1 <- Cloneable$new() c2 <- c1$clone() # Change c1's `s` field c1$s$x <- 2 # c2's `s` is the same object, so it reflects the change c2$s$x #> [1] 2 c3 <- c1$clone(deep = TRUE) # Change c1's `s` field c1$s$x <- 3 # c2's `s` is different c3$s$x #> [1] 2 CloneEnv <- R6Class(\"CloneEnv\", public = list( a = NULL, b = NULL, v = 1, initialize = function() { self$a <- new.env(parent = emptyenv()) self$b <- new.env(parent = emptyenv()) self$a$x <- 1 self$b$x <- 1 } ), private = list( deep_clone = function(name, value) { # With x$clone(deep=TRUE) is called, the deep_clone gets invoked once for # each field, with the name and value. if (name == \"a\") { # `a` is an environment, so use this quick way of copying list2env(as.list.environment(value, all.names = TRUE), parent = emptyenv()) } else { # For all other fields, just return the value value } } ) ) c1 <- CloneEnv$new() c2 <- c1$clone(deep = TRUE) # Modifying c1$a doesn't affect c2$a, because they're separate objects c1$a$x <- 2 c2$a$x #> [1] 1 # Modifying c1$b does affect c2$b, because they're the same object c1$b$x <- 3 c2$b$x #> [1] 3 # Modifying c1$v doesn't affect c2$v, because they're not reference objects c1$v <- 4 c2$v #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"printing-r6-objects-to-the-screen","dir":"Articles","previous_headings":"Other topics","what":"Printing R6 objects to the screen","title":"Introduction","text":"R6 objects default $print() method lists members object. class defines $print() method, overrides default one.","code":"PrettyCountingQueue <- R6Class(\"PrettyCountingQueue\", inherit = CountingQueue, public = list( print = function(...) { cat(\" of \", self$get_total(), \" elements\\n\", sep = \"\") } ) ) pq <- PrettyCountingQueue$new(1, 2, \"foobar\") pq #> of 3 elements"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"finalizers","dir":"Articles","previous_headings":"Other topics","what":"Finalizers","title":"Introduction","text":"Sometimes ’s useful run function object garbage collected. example, may want make sure file database connection gets closed. , can define private $finalize() method, called arguments object garbage collected. NOTE: R6 version 2.3.0 (released 2018-10-04) , $finalize() method public. version 2.4.0, can public private. Private preferable ’s reason finalizer needs publicly accessible. use private finalizer R package, set R6 version dependency R6 (>= 2.4.0). 2.6.0, R6 prints message finalizer public. future version, emit warnings, finally, longer support public finalizers. Finalizers implemented using reg.finalizer() function, set onexit=TRUE, finalizer also called R exits. useful cases, like database connections.","code":"A <- R6Class(\"A\", private = list( finalize = function() { print(\"Finalizer has been called!\") } )) # Instantiate an object: obj <- A$new() # Remove the single existing reference to it, and force garbage collection # (normally garbage collection will happen automatically from time # to time) rm(obj); gc() #> [1] \"Finalizer has been called!\" #> used (Mb) gc trigger (Mb) max used (Mb) #> Ncells 701830 37.5 1364540 72.9 1364540 72.9 #> Vcells 1324395 10.2 8388608 64.0 3573020 27.3"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"class-methods-vs--member-functions","dir":"Articles","previous_headings":"Other topics","what":"Class methods vs. member functions","title":"Introduction","text":"R6 class definition contains functions public private sections, functions class methods: can access self (well private super available). R6 object cloned, resulting object’s methods self refers new object. works changing enclosing environment method cloned object. contrast class methods, can also add regular functions members R6 object. can done assigning function field $initialize() method, object instantiated. functions class methods, access self, private, super. trivial class method get_self() simply returns self, well empty member, fn. example, ’ll assign function fn body get_self. However, since ’s regular function, self refer something R6 object: R6 2.3.0, object cloned, member (non-method) functions enclosing environment changed, one normally expect. behave way:","code":"FunctionWrapper <- R6Class(\"FunctionWrapper\", public = list( get_self = function() { self }, fn = NULL ) ) a <- FunctionWrapper$new() # Create a function that accesses a variable named `self`. # Note that `self` in this function's scope refers to 100, not to the R6 object. self <- 100 a$fn <- function() { self } a$get_self() #> #> Public: #> clone: function (deep = FALSE) #> fn: function () #> get_self: function () a$fn() #> [1] 100 b <- a$clone() b$get_self() #> #> Public: #> clone: function (deep = FALSE) #> fn: function () #> get_self: function () b$fn() #> [1] 100"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"class-definitions","dir":"Articles","previous_headings":"","what":"Class definitions","title":"R6 and Reference Class performance tests","text":"’ll start defining number classes class-like entities, using reference classes, R6 classes, simple environments created directly functions. number options R6 can affect size resulting objects, use number variants. classes used speed memory tests follow. lot boring code, may want skip ahead results. classes basic characteristics: field named x contains number. way initializing value x. method named getx retrieving value x. method named inc incrementing value x. fields methods accessed $ operator, object named obj, use obj$x obj$getx().","code":""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r-reference-class","dir":"Articles","previous_headings":"Class definitions","what":"R reference class","title":"R6 and Reference Class performance tests","text":"reference classes, binding points back object named .self. Within method, assignment can done using .self, .self$x <- 10, using <<-, x <<- 10. create object, simply call $new() class:","code":"RC <- setRefClass(\"RC\", fields = list(x = \"numeric\"), methods = list( initialize = function(x = 1) .self$x <- x, getx = function() x, inc = function(n = 1) x <<- x + n ) ) RC$new() #> Reference class object of class \"RC\" #> Field \"x\": #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class","dir":"Articles","previous_headings":"Class definitions","what":"R6 class","title":"R6 and Reference Class performance tests","text":"Creating R6 class similar reference class, except ’s need separate fields methods, can’t specify types fields. Whereas reference classes use .self, R6 classes use self (without leading period). reference classes, objects instantiated calling $new(): R6 object essentially just set environments structured particular way. fields methods R6 object bindings (, names) public environment. also separate environment enclosing environment methods (“run ” environment contains binding named self, simply reference public environment).","code":"R6 <- R6Class(\"R6\", public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- x + n ) ) R6$new() #> #> Public: #> clone: function (deep = FALSE) #> getx: function () #> inc: function (n = 1) #> initialize: function (x = 1) #> x: 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-without-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, without class attribute","title":"R6 and Reference Class performance tests","text":"default, class attribute added R6 objects. attribute adds slight performance penalty R attempt use S3 dispatch using $ object. ’s possible generate objects without class attribute, using class=FALSE: Note without class attribute, S3 method dispatch objects possible.","code":"R6NoClass <- R6Class(\"R6NoClass\", class = FALSE, public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- self$x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-non-portable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, non-portable","title":"R6 and Reference Class performance tests","text":"default, R6 objects portable. means inheritance can classes different packages. However, also requires use self$ private$ access members, incurs small performance penalty. portable=FALSE used, members can accessed without using self$, assignment can done <<-:","code":"R6NonPortable <- R6Class(\"R6NonPortable\", portable = FALSE, public = list( x = NULL, initialize = function(value = 1) x <<- value, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-cloneablefalse","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with cloneable=FALSE","title":"R6 and Reference Class performance tests","text":"default, R6 objects clone() method, fairly large function. need feature, can save memory using cloneable=FALSE.","code":"R6NonCloneable <- R6Class(\"R6NonCloneable\", cloneable = FALSE, public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- self$x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-without-class-attribute-non-portable-and-non-cloneable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, without class attribute, non-portable, and non-cloneable","title":"R6 and Reference Class performance tests","text":"comparison, ’ll use R6 class without class attribute, non-portable, non-cloneable. stripped-can make R6 object.","code":"R6Bare <- R6Class(\"R6Bare\", portable = FALSE, class = FALSE, cloneable = FALSE, public = list( x = NULL, initialize = function(value = 1) x <<- value, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-public-and-private-members","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with public and private members","title":"R6 and Reference Class performance tests","text":"variant public private members. Instead single self object refers items object, objects self (refers public items) private.","code":"R6Private <- R6Class(\"R6Private\", private = list(x = NULL), public = list( initialize = function(x = 1) private$x <- x, getx = function() private$x, inc = function(n = 1) private$x <- private$x + n ) ) R6Private$new() #> #> Public: #> clone: function (deep = FALSE) #> getx: function () #> inc: function (n = 1) #> initialize: function (x = 1) #> Private: #> x: 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-public-and-private-no-class-attribute-non-portable-and-non-cloneable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with public and private, no class attribute, non-portable, and non-cloneable","title":"R6 and Reference Class performance tests","text":"comparison, ’ll add version without class attribute, non-portable, non-cloneable.","code":"R6PrivateBare <- R6Class(\"R6PrivateBare\", portable = FALSE, class = FALSE, cloneable = FALSE, private = list(x = NULL), public = list( initialize = function(x = 1) private$x <- x, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"environment-created-by-a-function-call-with-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"Environment created by a function call, with class attribute","title":"R6 and Reference Class performance tests","text":"R, environments passed reference. simple way create object ’s passed reference use environment created invocation function. function captures environment, attaches class , returns : Even though x isn’t declared function body, gets captured ’s argument function. Objects created way similar created R6 generator created .","code":"FunctionEnvClass <- function(x = 1) { inc <- function(n = 1) x <<- x + n getx <- function() x self <- environment() class(self) <- \"FunctionEnvClass\" self } ls(FunctionEnvClass()) #> [1] \"getx\" \"inc\" \"self\" \"x\""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"environment-created-by-a-function-call-without-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"Environment created by a function call, without class attribute","title":"R6 and Reference Class performance tests","text":"can make even simpler type reference object previous one, class attribute, self object: simply environment objects .","code":"FunctionEnvNoClass <- function(x = 1) { inc <- function(n = 1) x <<- x + n getx <- function() x environment() } ls(FunctionEnvNoClass()) #> [1] \"getx\" \"inc\" \"x\""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"tests","dir":"Articles","previous_headings":"","what":"Tests","title":"R6 and Reference Class performance tests","text":"timings using microbenchmark(), results reported microseconds, useful value probably median column.","code":""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"memory-footprint","dir":"Articles","previous_headings":"Tests","what":"Memory footprint","title":"R6 and Reference Class performance tests","text":"much memory single instance object take, much memory additional object take? ’ll use functions obj_size obj_sizes (shown bottom document) calculate sizes. Sizes type object, bytes: results plotted . Note plots different x scales. preliminary observations first instance various classes: Using reference class consumes large amount memory. R6 objects, option largest impact cloneable: clone() method saves around 40 kB memory. subsequent instances classes, isn’t nearly much difference different kinds. appeared using reference class takes huge amount memory, much shared reference classes. Adding object different reference class doesn’t require much memory — around 38KB:","code":"sizes <- obj_sizes( RC$new(), R6$new(), R6NoClass$new(), R6NonPortable$new(), R6NonCloneable$new(), R6Bare$new(), R6Private$new(), R6PrivateBare$new(), FunctionEnvClass(), FunctionEnvNoClass() ) sizes #> one incremental #> RC$new() 2032832 1400 #> R6$new() 97200 1016 #> R6NoClass$new() 97920 896 #> R6NonPortable$new() 96872 960 #> R6NonCloneable$new() 14288 904 #> R6Bare$new() 13488 728 #> R6Private$new() 98112 1128 #> R6PrivateBare$new() 14512 840 #> FunctionEnvClass() 13424 616 #> FunctionEnvNoClass() 11944 504 RC2 <- setRefClass(\"RC2\", fields = list(x = \"numeric\"), methods = list( initialize = function(x = 2) .self$x <<- x, inc = function(n = 2) x <<- x * n ) ) # Calcualte the size of a new RC2 object, over and above an RC object as.numeric(obj_size(RC$new(), RC2$new()) - obj_size(RC$new())) #> [1] 0 0"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"object-instantiation-speed","dir":"Articles","previous_headings":"Tests","what":"Object instantiation speed","title":"R6 and Reference Class performance tests","text":"much time take create one objects? shows median time, microseconds: plot shows median instantiation time. Reference classes much slower instantiate types classes. Instantiating R6 objects roughly 5 times faster. Creating environment simple function call another 20-30 times faster.","code":"# Function to extract the medians from microbenchmark results mb_summary <- function(x) { res <- summary(x, unit=\"us\") data.frame(name = res$expr, median = res$median) } speed <- microbenchmark( RC$new(), R6$new(), R6NoClass$new(), R6NonPortable$new(), R6NonCloneable$new(), R6Bare$new(), R6Private$new(), R6PrivateBare$new(), FunctionEnvClass(), FunctionEnvNoClass() ) speed <- mb_summary(speed) speed #> name median #> 1 RC$new() 203.4195 #> 2 R6$new() 30.9830 #> 3 R6NoClass$new() 31.3240 #> 4 R6NonPortable$new() 31.5435 #> 5 R6NonCloneable$new() 31.2230 #> 6 R6Bare$new() 27.7870 #> 7 R6Private$new() 42.9850 #> 8 R6PrivateBare$new() 39.1130 #> 9 FunctionEnvClass() 1.4875 #> 10 FunctionEnvNoClass() 1.0020"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"field-access-speed","dir":"Articles","previous_headings":"Tests","what":"Field access speed","title":"R6 and Reference Class performance tests","text":"much time take access field object? First ’ll make objects: get value objects: Accessing field reference class much slower methods. ’s also obvious pattern accessing field environment (created R6 function call) slower class attribute. , objects class attribute, R attempts look S3 method $, lookup performance penalty. ’ll see .","code":"rc <- RC$new() r6 <- R6$new() r6noclass <- R6NoClass$new() r6noport <- R6NonPortable$new() r6noclone <- R6NonCloneable$new() r6bare <- R6Bare$new() r6priv <- R6Private$new() r6priv_bare <- R6PrivateBare$new() fun_env <- FunctionEnvClass() fun_env_nc <- FunctionEnvNoClass() speed <- microbenchmark( rc$x, r6$x, r6noclass$x, r6noport$x, r6noclone$x, r6bare$x, r6priv$x, r6priv_bare$x, fun_env$x, fun_env_nc$x ) speed <- mb_summary(speed) speed #> name median #> 1 rc$x 5.7555 #> 2 r6$x 0.6515 #> 3 r6noclass$x 0.2100 #> 4 r6noport$x 0.6915 #> 5 r6noclone$x 0.7110 #> 6 r6bare$x 0.2110 #> 7 r6priv$x 0.7120 #> 8 r6priv_bare$x 0.2310 #> 9 fun_env$x 0.6260 #> 10 fun_env_nc$x 0.2200"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"field-setting-speed","dir":"Articles","previous_headings":"Tests","what":"Field setting speed","title":"R6 and Reference Class performance tests","text":"much time take set value field object? Reference classes significantly slower others, . case, ’s additional overhead due type-checking value. , -class objects significantly faster others, probably due attempted S3 dispatch `$<-` function.","code":"speed <- microbenchmark( rc$x <- 4, r6$x <- 4, r6noclass$x <- 4, r6noport$x <- 4, r6noclone$x <- 4, r6bare$x <- 4, # r6priv$x <- 4, # Can't set private field directly, # r6priv_nc_np$x <- 4, # so we'll skip these two fun_env$x <- 4, fun_env_nc$x <- 4 ) speed <- mb_summary(speed) speed #> name median #> 1 rc$x <- 4 29.4650 #> 2 r6$x <- 4 1.1720 #> 3 r6noclass$x <- 4 0.6765 #> 4 r6noport$x <- 4 1.2130 #> 5 r6noclone$x <- 4 1.2570 #> 6 r6bare$x <- 4 0.7110 #> 7 fun_env$x <- 4 1.1625 #> 8 fun_env_nc$x <- 4 0.6865"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"speed-of-method-call-that-accesses-a-field","dir":"Articles","previous_headings":"Tests","what":"Speed of method call that accesses a field","title":"R6 and Reference Class performance tests","text":"much overhead calling method one objects? getx() methods simply return value x object. necessary, method uses self$x (R6 classes, portable=TRUE), others, just uses x (portable=FALSE, reference classes). reference class slowest. r6 also somewhat slower others. two reasons : first, uses self$x adds time, second, class attribute, slows access r6$getx self$x. One might expect r6priv speed r6, faster. Although accessing r6priv$getx slow r6priv class attribute, accessing private$x faster class attribute. objects can access x directly (without self private) lack class attribute fastest.","code":"speed <- microbenchmark( rc$getx(), r6$getx(), r6noclass$getx(), r6noport$getx(), r6noclone$getx(), r6bare$getx(), r6priv$getx(), r6priv_bare$getx(), fun_env$getx(), fun_env_nc$getx() ) speed <- mb_summary(speed) speed #> name median #> 1 rc$getx() 5.9010 #> 2 r6$getx() 1.5580 #> 3 r6noclass$getx() 0.5460 #> 4 r6noport$getx() 0.8620 #> 5 r6noclone$getx() 1.6580 #> 6 r6bare$getx() 0.3610 #> 7 r6priv$getx() 1.0620 #> 8 r6priv_bare$getx() 0.3655 #> 9 fun_env$getx() 0.9120 #> 10 fun_env_nc$getx() 0.4560"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"assignment-using-selfx---vs--x--","dir":"Articles","previous_headings":"Tests","what":"Assignment using self$x <- vs. x <<-","title":"R6 and Reference Class performance tests","text":"reference classes, can modify fields using <<- operator, using .self object. example, compare setx() methods two classes: Non-portable R6 classes similar, except use self instead .self. reference non-portable R6 classes, assignment using .self$x <- somewhat slower using x <<-. Bear mind , default, R6 classes portable, can’t use assignment x <<-.","code":"RCself <- setRefClass(\"RCself\", fields = list(x = \"numeric\"), methods = list( initialize = function() .self$x <- 1, setx = function(n = 2) .self$x <- n ) ) RCnoself <- setRefClass(\"RCnoself\", fields = list(x = \"numeric\"), methods = list( initialize = function() x <<- 1, setx = function(n = 2) x <<- n ) ) R6self <- R6Class(\"R6self\", portable = FALSE, public = list( x = 1, setx = function(n = 2) self$x <- n ) ) R6noself <- R6Class(\"R6noself\", portable = FALSE, public = list( x = 1, setx = function(n = 2) x <<- n ) ) rc_self <- RCself$new() rc_noself <- RCnoself$new() r6_self <- R6self$new() r6_noself <- R6noself$new() speed <- microbenchmark( rc_self$setx(), rc_noself$setx(), r6_self$setx(), r6_noself$setx() ) speed <- mb_summary(speed) speed #> name median #> 1 rc_self$setx() 35.8470 #> 2 rc_noself$setx() 20.0420 #> 3 r6_self$setx() 2.8800 #> 4 r6_noself$setx() 1.3075"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"overhead-from-using-on-objects-with-a-class-attribute","dir":"Articles","previous_headings":"Tests","what":"Overhead from using $ on objects with a class attribute","title":"R6 and Reference Class performance tests","text":"overhead using $ object class attribute. test , ’ll create three different kinds objects: environment class attribute. environment class \"e2\", without $.e2 S3 method. environment class \"e3\", $.e3 S3 method simply returns NULL. one environments contain object x. Now can run timing tests calling $ type object. Note e3 object, $ function nothing — simply returns NULL. Using $ e2 e3 much slower e1. e2 e3 class attribute. Even though ’s $ method defined e2, e2$x still 6 times slower e1$x, simply R looks appropriate S3 method. e3$x slightly faster e2$x; probably $.e3 function doesn’t actually anything return NULL. object class attribute, R attempt look method every time $ called. can slow things considerably, $ used often.","code":"e1 <- new.env(hash = FALSE, parent = emptyenv()) e2 <- new.env(hash = FALSE, parent = emptyenv()) e3 <- new.env(hash = FALSE, parent = emptyenv()) e1$x <- 1 e2$x <- 1 e3$x <- 1 class(e2) <- \"e2\" class(e3) <- \"e3\" # Define an S3 method for class e3 `$.e3` <- function(x, name) { NULL } speed <- microbenchmark( e1$x, e2$x, e3$x ) speed <- mb_summary(speed) speed #> name median #> 1 e1$x 0.191 #> 2 e2$x 0.541 #> 3 e3$x 0.842"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"lists-vs--environments-and-vs-","dir":"Articles","previous_headings":"Tests","what":"Lists vs. environments, and $ vs. [[","title":"R6 and Reference Class performance tests","text":"Lists also used creating classes (albeit reference semantics). much time take access items using $ lists vs. environments? ’ll also compare using obj$x obj[['x']]. Performance comparable across environments lists. [[ operator slightly faster $, probably doesn’t need convert unevaluated symbol string.","code":"lst <- list(x = 10) env <- new.env() env$x <- 10 mb_summary(microbenchmark( lst = lst$x, env = env$x, lst[['x']], env[['x']] )) #> name median #> 1 lst 0.181 #> 2 env 0.170 #> 3 lst[[\"x\"]] 0.131 #> 4 env[[\"x\"]] 0.110"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"wrap-up","dir":"Articles","previous_headings":"","what":"Wrap-up","title":"R6 and Reference Class performance tests","text":"R6 objects take less memory significantly faster R’s reference class objects, also options provide even speed. tests, biggest speedup R6 classes comes using class attribute; speeds use $. Non-portable R6 classes can also access fields without $ , provides another modest speed boost. cases, speed increases negligible – order microseconds noticeable tens even hundreds thousands class member accesses performed.","code":""},{"path":[]},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"functions-for-calculating-object-sizes","dir":"Articles","previous_headings":"Appendix","what":"Functions for calculating object sizes","title":"R6 and Reference Class performance tests","text":"","code":"# Utility functions for calculating sizes obj_size <- function(expr, .env = parent.frame()) { size_n <- function(n = 1) { objs <- lapply(1:n, function(x) eval(expr, .env)) as.numeric(do.call(lobstr::obj_size, objs)) } data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) } obj_sizes <- function(..., .env = parent.frame()) { exprs <- as.list(match.call(expand.dots = FALSE)$...) names(exprs) <- lapply(1:length(exprs), FUN = function(n) { name <- names(exprs)[n] if (is.null(name) || name == \"\") paste(deparse(exprs[[n]]), collapse = \" \") else name }) sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) do.call(rbind, sizes) }"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"system-information","dir":"Articles","previous_headings":"Appendix","what":"System information","title":"R6 and Reference Class performance tests","text":"","code":"sessionInfo() #> R version 4.4.1 (2024-06-14) #> Platform: x86_64-pc-linux-gnu #> Running under: Ubuntu 22.04.4 LTS #> #> Matrix products: default #> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 #> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 #> #> locale: #> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 #> [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 #> [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C #> [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C #> #> time zone: UTC #> tzcode source: system (glibc) #> #> attached base packages: #> [1] stats graphics grDevices utils datasets methods base #> #> other attached packages: #> [1] scales_1.3.0 ggplot2_3.5.1 R6_2.5.1.9000 #> [4] lobstr_1.1.2 microbenchmark_1.5.0 #> #> loaded via a namespace (and not attached): #> [1] gtable_0.3.5 jsonlite_1.8.8 highr_0.11 #> [4] compiler_4.4.1 jquerylib_0.1.4 systemfonts_1.1.0 #> [7] textshaping_0.4.0 yaml_2.3.10 fastmap_1.2.0 #> [10] labeling_0.4.3 knitr_1.48 tibble_3.2.1 #> [13] desc_1.4.3 munsell_0.5.1 bslib_0.8.0 #> [16] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 #> [19] cachem_1.1.0 xfun_0.47 fs_1.6.4 #> [22] sass_0.4.9 cli_3.6.3 pkgdown_2.1.0 #> [25] withr_3.0.1 magrittr_2.0.3 digest_0.6.37 #> [28] grid_4.4.1 lifecycle_1.0.4 vctrs_0.6.5 #> [31] evaluate_0.24.0 glue_1.7.0 farver_2.1.2 #> [34] codetools_0.2-20 ragg_1.3.2 fansi_1.0.6 #> [37] colorspace_2.1-1 rmarkdown_2.28 tools_4.4.1 #> [40] pkgconfig_2.0.3 htmltools_0.5.8.1"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"the-problem","dir":"Articles","previous_headings":"","what":"The problem","title":"Portable and non-portable R6 classes","text":"example cross-package inheritance problem reference classes: Suppose ClassA pkgA, ClassB pkgB, inherits ClassA. ClassA method foo calls non-exported function fun pkgA. ClassB inherits foo, try call fun – since ClassB objects created pkgB namespace (environment) instead pkgA namespace, won’t able find fun. Something similar happens R6 portable=FALSE option used. example: create instance ClassA, works expected: ClassB, can’t find foo function:","code":"library(R6) # Simulate packages by creating environments pkgA <- new.env() pkgB <- new.env() # Create a function in pkgA but not pkgB pkgA$fun <- function() 10 ClassA <- R6Class(\"ClassA\", portable = FALSE, public = list( foo = function() fun() ), parent_env = pkgA ) # ClassB inherits from ClassA ClassB <- R6Class(\"ClassB\", portable = FALSE, inherit = ClassA, parent_env = pkgB ) a <- ClassA$new() a$foo() #> [1] 10 b <- ClassB$new() b$foo() #> Error in b$foo() : could not find function \"fun\""},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"portable-r6","dir":"Articles","previous_headings":"","what":"Portable R6","title":"Portable and non-portable R6 classes","text":"R6 supports inheritance across different packages, default portable=TRUE option. example, ’ll simulate different packages creating separate parent environments classes. method inherited superclass, method also gets class’s environment. words, method “runs ” superclass’s environment. makes possible inheritance work across packages. method defined subclass, method gets subclass’s environment. example, ClassC subclass ClassA, defines foo method overrides foo method ClassA. happens method looks ClassA’s – just calls fun. time finds pkgC$fun instead pkgA$fun. contrast ClassB, inherited foo method environment ClassA.","code":"pkgA <- new.env() pkgB <- new.env() pkgA$fun <- function() { \"This function `fun` in pkgA\" } ClassA <- R6Class(\"ClassA\", portable = TRUE, # The default public = list( foo = function() fun() ), parent_env = pkgA ) ClassB <- R6Class(\"ClassB\", portable = TRUE, inherit = ClassA, parent_env = pkgB ) a <- ClassA$new() a$foo() #> [1] \"This function `fun` in pkgA\" b <- ClassB$new() b$foo() #> [1] \"This function `fun` in pkgA\" pkgC <- new.env() pkgC$fun <- function() { \"This function `fun` in pkgC\" } ClassC <- R6Class(\"ClassC\", portable = TRUE, inherit = ClassA, public = list( foo = function() fun() ), parent_env = pkgC ) cc <- ClassC$new() # This method is defined in ClassC, so finds pkgC$fun cc$foo() #> [1] \"This function `fun` in pkgC\""},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"using-self","dir":"Articles","previous_headings":"","what":"Using self","title":"Portable and non-portable R6 classes","text":"One important difference non-portable portable classes non-portable classes, ’s possible access members just name member, portable classes, member access always requires using self$ private$. consequence inheritance implementation. ’s example non-portable class two methods: sety, sets private field y using <<- operator, getxy, returns vector values fields x y: attempt portable class, results error: make work portable class, need use self$x private$y: small performance penalty using self$x opposed x. cases, negligible, can noticeable situations tens thousands accesses per second. information, see vignette(\"Performance\").","code":"NP <- R6Class(\"NP\", portable = FALSE, public = list( x = 1, getxy = function() c(x, y), sety = function(value) y <<- value ), private = list( y = NA ) ) np <- NP$new() np$sety(20) np$getxy() #> [1] 1 20 P <- R6Class(\"P\", portable = TRUE, public = list( x = 1, getxy = function() c(x, y), sety = function(value) y <<- value ), private = list( y = NA ) ) p <- P$new() # No error, but instead of setting private$y, this sets y in the global # environment! This is because of the semantics of <<-. p$sety(20) y #> [1] 20 p$getxy() #> Error in p$getxy() : object 'y' not found P2 <- R6Class(\"P2\", portable = TRUE, public = list( x = 1, getxy = function() c(self$x, private$y), sety = function(value) private$y <- value ), private = list( y = NA ) ) p2 <- P2$new() p2$sety(20) p2$getxy() #> [1] 1 20"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"potential-pitfalls-with-cross-package-inheritance","dir":"Articles","previous_headings":"","what":"Potential pitfalls with cross-package inheritance","title":"Portable and non-portable R6 classes","text":"Inheritance happens object instantiated MyClass$new(). time, members superclass get copied new object. means instantiate R6 object, essentially save pieces superclass object. way packages built R, R6’s inheritance behavior potentially lead surprising, hard--diagnose problems packages change versions. Suppose two packages, pkgA, containing ClassA, pkgB, containing ClassB, code pkgB instantiates ClassB object, objB, build time. contrast instantiating ClassB run-time, calling function. code package run binary package built, resulting objects saved package. (Generally, object can accessed pkgB:::objB, means created build time.) objB created package build time, pieces superclass, pkgA::ClassA, saved inside . fine . imagine pkgB built installed pkgA 1.0, upgrade pkgA 2.0 without subsequently building installing pkgB. pkgB::objB contain code pkgA::ClassA 1.0, version pkgA::ClassA ’s installed 2.0. can cause problems objB inherited code uses parts pkgA changed – problems may entirely obvious. scenario entirely possible installing packages CRAN. common package upgraded without upgrading downstream dependencies. far know, R mechanism force downstream dependencies rebuilt package upgraded user’s computer. problem happens, remedy rebuild pkgB pkgA 2.0. don’t know CRAN rebuilds downstream dependencies package updated. doesn’t, ’s possible CRAN incompatible binary builds pkgA pkgB, users install pkgB source, install.packages(\"pkgB\", type = \"source\"). avoid problem entirely, objects ClassB must instantiated build time. can either () instantiate functions, (B) instantiate package load time, adding .onLoad function package. example: might wondering ClassB (class, instance class objB) doesn’t save copy pkgA::ClassA inside package built. , inherit argument, R6Class saves unevaluated expression (pkgA::ClassA), evaluates $new() called.","code":"ClassB <- R6Class(\"ClassB\", inherit = pkgA::ClassA, public = list(x = 1) ) # We'll fill this at load time objB <- NULL .onLoad <- function(libname, pkgname) { # The namespace is locked after loading; we can still modify objB at this time. objB <<- ClassB$new() }"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"wrap-up","dir":"Articles","previous_headings":"","what":"Wrap-up","title":"Portable and non-portable R6 classes","text":"summary: Portable classes allow inheritance across different packages. Portable classes always require use self private access members. can incur small performance penalty, since using self$x slower just x.","code":""},{"path":"https://r6.r-lib.org/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Winston Chang. Author, maintainer. . Copyright holder, funder.","code":""},{"path":"https://r6.r-lib.org/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Chang W (2024). R6: Encapsulated Classes Reference Semantics. R package version 2.5.1.9000, https://github.com/r-lib/R6/, https://r6.r-lib.org.","code":"@Manual{, title = {R6: Encapsulated Classes with Reference Semantics}, author = {Winston Chang}, year = {2024}, note = {R package version 2.5.1.9000, https://github.com/r-lib/R6/}, url = {https://r6.r-lib.org}, }"},{"path":"https://r6.r-lib.org/dev/index.html","id":"r6-encapsulated-object-oriented-programming-for-r-","dir":"","previous_headings":"","what":"Encapsulated Classes with Reference Semantics","title":"Encapsulated Classes with Reference Semantics","text":"R6 implementation encapsulated object-oriented programming R, simpler, faster, lighter-weight alternative R’s built-reference classes. style programming also sometimes referred classical object-oriented programming. features R6: R6 objects reference semantics. R6 cleanly supports inheritance across packages. R6 classes public private members. contrast R’s reference classes, R6 built S4 class system, require methods package. Unlike reference classes, R6 classes can cleanly inherited across different packages. See Introduction article usage examples.","code":""},{"path":"https://r6.r-lib.org/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Encapsulated Classes with Reference Semantics","text":"install R6 CRAN: install development version (requires devtools package):","code":"install.packages('R6') devtools::install_github('r-lib/R6', build_vignettes = FALSE)"},{"path":"https://r6.r-lib.org/dev/index.html","id":"documentation","dir":"","previous_headings":"","what":"Documentation","title":"Encapsulated Classes with Reference Semantics","text":"Introduction R6 Debugging methods R6 objects Performance tests - Speed memory comparisons R6 classes reference classes. Portable R6 classes - Inheritance across different packages.","code":""},{"path":"https://r6.r-lib.org/dev/index.html","id":"why-r6","dir":"","previous_headings":"Documentation","what":"Why R6?","title":"Encapsulated Classes with Reference Semantics","text":"name R6? R’s reference classes introduced, users, following names R’s existing class systems S3 S4, called new class system R5 jest. Although reference classes actually called R5, name package classes takes inspiration name. name R5 also code-name used different object system started Simon Urbanek, meant solve issues S4 relating syntax performance. However, R5 branch shelved little development, never released.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an R6 reference object generator — R6Class","title":"Create an R6 reference object generator — R6Class","text":"R6 objects essentially environments, structured way makes look like object typical object-oriented language R. support public private members, well inheritance across different packages.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an R6 reference object generator — R6Class","text":"","code":"R6Class( classname = NULL, public = list(), private = NULL, active = NULL, inherit = NULL, lock_objects = TRUE, class = TRUE, portable = TRUE, lock_class = FALSE, cloneable = TRUE, parent_env = parent.frame() )"},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an R6 reference object generator — R6Class","text":"classname Name class. class name useful primarily S3 method dispatch. public list public members, can functions (methods) non-functions (fields). private optional list private members, can functions non-functions. active optional list active binding functions. inherit R6ClassGenerator object inherit ; words, superclass. captured unevaluated expression evaluated parent_env time object instantiated. lock_objects environments generated objects locked? locked, new members added objects. class class attribute added object? Default TRUE. FALSE, objects simply look like environments, . portable TRUE (default), class work inheritance across different packages. Note enabled, fields members must accessed self$x private$x; accessed just x. lock_class TRUE, possible add members generator object $set. FALSE (default), possible add members $set. methods $is_locked, $lock, $unlock can used query change locked state class. cloneable TRUE (default), generated objects method named $clone, makes copy object. parent_env environment use parent newly-created objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create an R6 reference object generator — R6Class","text":"R6 object consists public environment, may also contain private environment, well environments superclasses. one sense, object public environment ; reference object identical reference public environment. another sense, object also consists fields, methods, private environment . active argument list active binding functions. functions take one argument. look like regular variables, accessed, function called optional argument. example, obj$x2 active binding, accessed obj$x2, calls x2() function active list, arguments. However, value assigned , obj$x2 <- 50, function called right-side value argument, x2(50). See makeActiveBinding information. public private lists contain items reference semantics (example, environment), items shared across instances class. avoid , add entry item NULL initial value, initialize method, instantiate object assign .","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"the-print-method","dir":"Reference","previous_headings":"","what":"The print method","title":"Create an R6 reference object generator — R6Class","text":"R6 object generators R6 objects default print method show screen: simply list members parameters (e.g. lock_objects, portable, etc., see ) object. default print method R6 objects can redefined, supplying public print method. (print members functions ignored.) method automatically called whenever object printed, e.g. object's name typed command prompt, print(obj) called. can also called directly via obj$print(). extra arguments print(obj, ...) call passed obj$print(...) method.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"portable-and-non-portable-classes","dir":"Reference","previous_headings":"","what":"Portable and non-portable classes","title":"Create an R6 reference object generator — R6Class","text":"R6 classes portable (default), can inherited across packages without complication. However, portable mode, members must accessed self private, self$x private$y. used non-portable mode, R6 classes behave like reference classes: inheritance across packages work well, self private necessary accessing fields.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"cloning-objects","dir":"Reference","previous_headings":"","what":"Cloning objects","title":"Create an R6 reference object generator — R6Class","text":"R6 objects method named clone default. disable , use cloneable=FALSE. clone method present slightly increase memory footprint R6 objects, since method shared across R6 objects, memory use negligible. default, calling x$clone() R6 object result shallow clone. , fields reference semantics (environments, R6, reference class objects), copied; instead, clone object field simply refers object. make deep copy, can use x$clone(deep=TRUE). option, fields R6 objects also cloned; however, environments reference class objects . want different deep copying behavior, can supply private method called deep_clone. method called field object, two arguments: name, name field, value, value. Whatever method returns used value field new clone object. can write deep_clone method makes copies specific fields, whether environments, R6 objects, reference class objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"s-details","dir":"Reference","previous_headings":"","what":"S3 details","title":"Create an R6 reference object generator — R6Class","text":"Normally public environment two classes: one supplied classname argument, \"R6\". possible get public environment classes, using class=FALSE. result faster access speeds avoiding class-based dispatch $. benefit negligible cases. class subclass another, object classes classname, superclass's classname, \"R6\" primary difference behavior class=FALSE , without class attribute, possible use S3 methods objects. , example, pretty printing (print.R6Class) used.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an R6 reference object generator — R6Class","text":"","code":"# A queue --------------------------------------------------------- Queue <- R6Class(\"Queue\", public = list( initialize = function(...) { for (item in list(...)) { self$add(item) } }, add = function(x) { private$queue <- c(private$queue, list(x)) invisible(self) }, remove = function() { if (private$length() == 0) return(NULL) # Can use private$queue for explicit access head <- private$queue[[1]] private$queue <- private$queue[-1] head } ), private = list( queue = list(), length = function() base::length(private$queue) ) ) q <- Queue$new(5, 6, \"foo\") # Add and remove items q$add(\"something\") q$add(\"another thing\") q$add(17) q$remove() #> [1] 5 #> [1] 5 q$remove() #> [1] 6 #> [1] 6 # Private members can't be accessed directly q$queue #> NULL #> NULL # q$length() #> Error: attempt to apply non-function # add() returns self, so it can be chained q$add(10)$add(11)$add(12) # remove() returns the value removed, so it's not chainable q$remove() #> [1] \"foo\" #> [1] \"foo\" q$remove() #> [1] \"something\" #> [1] \"something\" q$remove() #> [1] \"another thing\" #> [1] \"another thing\" q$remove() #> [1] 17 #> [1] 17 # Active bindings ------------------------------------------------- Numbers <- R6Class(\"Numbers\", public = list( x = 100 ), active = list( x2 = function(value) { if (missing(value)) return(self$x * 2) else self$x <- value/2 }, rand = function() rnorm(1) ) ) n <- Numbers$new() n$x #> [1] 100 #> [1] 100 n$x2 #> [1] 200 #> [1] 200 n$x2 <- 1000 n$x #> [1] 500 #> [1] 500 # If the function takes no arguments, it's not possible to use it with <-: n$rand #> [1] -1.400044 #> [1] 0.2648 n$rand #> [1] 0.2553171 #> [1] 2.171 # n$rand <- 3 #> Error: unused argument (quote(3)) # Inheritance ----------------------------------------------------- # Note that this isn't very efficient - it's just for illustrating inheritance. HistoryQueue <- R6Class(\"HistoryQueue\", inherit = Queue, public = list( show = function() { cat(\"Next item is at index\", private$head_idx + 1, \"\\n\") for (i in seq_along(private$queue)) { cat(i, \": \", private$queue[[i]], \"\\n\", sep = \"\") } }, remove = function() { if (private$length() - private$head_idx == 0) return(NULL) private$head_idx <<- private$head_idx + 1 private$queue[[private$head_idx]] } ), private = list( head_idx = 0 ) ) hq <- HistoryQueue$new(5, 6, \"foo\") hq$show() #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 5 #> [1] 5 hq$show() #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 6 #> [1] 6 # Calling superclass methods with super$ -------------------------- CountingQueue <- R6Class(\"CountingQueue\", inherit = Queue, public = list( add = function(x) { private$total <<- private$total + 1 super$add(x) }, get_total = function() private$total ), private = list( total = 0 ) ) cq <- CountingQueue$new(\"x\", \"y\") cq$get_total() #> [1] 2 #> [1] 2 cq$add(\"z\") cq$remove() #> [1] \"x\" #> [1] \"x\" cq$remove() #> [1] \"y\" #> [1] \"y\" cq$get_total() #> [1] 3 #> [1] 3 # Non-portable classes -------------------------------------------- # By default, R6 classes are portable, which means they can be inherited # across different packages. Portable classes require using self$ and # private$ to access members. # When used in non-portable mode, members can be accessed without self$, # and assignments can be made with <<-. NP <- R6Class(\"NP\", portable = FALSE, public = list( x = NA, getx = function() x, setx = function(value) x <<- value ) ) np <- NP$new() np$setx(10) np$getx() #> [1] 10 #> [1] 10 # Setting new values ---------------------------------------------- # It is possible to add new members to the class after it has been created, # by using the $set() method on the generator. Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) Simple$set(\"public\", \"getx2\", function() self$x*2) # Use overwrite = TRUE to overwrite existing values Simple$set(\"public\", \"x\", 10, overwrite = TRUE) s <- Simple$new() s$x #> [1] 10 s$getx2() #> [1] 20 # Cloning objects ------------------------------------------------- a <- Queue$new(5, 6) a$remove() #> [1] 5 #> [1] 5 # Clone a. New object gets a's state. b <- a$clone() # Can add to each queue separately now. a$add(10) b$add(20) a$remove() #> [1] 6 #> [1] 6 a$remove() #> [1] 10 #> [1] 10 b$remove() #> [1] 6 #> [1] 6 b$remove() #> [1] 20 #> [1] 20 # Deep clones ----------------------------------------------------- Simple <- R6Class(\"Simple\", public = list( x = NULL, initialize = function(val) self$x <- val ) ) Cloner <- R6Class(\"Cloner\", public = list( s = NULL, y = 1, initialize = function() self$s <- Simple$new(1) ) ) a <- Cloner$new() b <- a$clone() c <- a$clone(deep = TRUE) # Modify a a$s$x <- 2 a$y <- 2 # b is a shallow clone. b$s is the same as a$s because they are R6 objects. b$s$x #> [1] 2 #> [1] 2 # But a$y and b$y are different, because y is just a value. b$y #> [1] 1 #> [1] 1 # c is a deep clone, so c$s is not the same as a$s. c$s$x #> [1] 1 #> [1] 1 c$y #> [1] 1 #> [1] 1 # Deep clones with custom deep_clone method ----------------------- CustomCloner <- R6Class(\"CustomCloner\", public = list( e = NULL, s1 = NULL, s2 = NULL, s3 = NULL, initialize = function() { self$e <- new.env(parent = emptyenv()) self$e$x <- 1 self$s1 <- Simple$new(1) self$s2 <- Simple$new(1) self$s3 <- Simple$new(1) } ), private = list( # When x$clone(deep=TRUE) is called, the deep_clone gets invoked once for # each field, with the name and value. deep_clone = function(name, value) { if (name == \"e\") { # e1 is an environment, so use this quick way of copying list2env(as.list.environment(value, all.names = TRUE), parent = emptyenv()) } else if (name %in% c(\"s1\", \"s2\")) { # s1 and s2 are R6 objects which we can clone value$clone() } else { # For everything else, just return it. This results in a shallow # copy of s3. value } } ) ) a <- CustomCloner$new() b <- a$clone(deep = TRUE) # Change some values in a's fields a$e$x <- 2 a$s1$x <- 3 a$s2$x <- 4 a$s3$x <- 5 # b has copies of e, s1, and s2, but shares the same s3 b$e$x #> [1] 1 #> [1] 1 b$s1$x #> [1] 1 #> [1] 1 b$s2$x #> [1] 1 #> [1] 1 b$s3$x #> [1] 5 #> [1] 5 # Debugging ------------------------------------------------------- if (FALSE) { # \\dontrun{ # This will enable debugging the getx() method for objects of the 'Simple' # class that are instantiated in the future. Simple$debug(\"getx\") s <- Simple$new() s$getx() # Disable debugging for future instances: Simple$undebug(\"getx\") s <- Simple$new() s$getx() # To enable and disable debugging for a method in a single instance of an # R6 object (this will not affect other objects): s <- Simple$new() debug(s$getx) s$getx() undebug(s$getx) } # }"},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a list from an R6 object — as.list.R6","title":"Create a list from an R6 object — as.list.R6","text":"returns list public members object. simply calls .list.environment.","code":""},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a list from an R6 object — as.list.R6","text":"","code":"# S3 method for class 'R6' as.list(x, ...)"},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a list from an R6 object — as.list.R6","text":"x R6 object. ... arguments, ignored.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":null,"dir":"Reference","previous_headings":"","what":"Is an object an R6 Class Generator or Object? — is.R6","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"Checks R6 class generators R6 objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"","code":"is.R6(x) is.R6Class(x)"},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"x object.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"logical value. .R6Class returns TRUE input R6 class generator FALSE otherwise. .R6 returns TRUE input R6 object FALSE otherwise.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"","code":"class_generator <- R6Class() object <- class_generator$new() is.R6Class(class_generator) #> [1] TRUE is.R6(class_generator) #> [1] FALSE is.R6Class(object) #> [1] FALSE is.R6(object) #> [1] TRUE"},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-2519000","dir":"Changelog","previous_headings":"","what":"R6 2.5.1.9000","title":"R6 2.5.1.9000","text":"R6 methods longer recommends initialize .__enclos_env__ autocomplete. deprecated lock parameter removed. R6Class() now prints message finalize method public instead private. superclass cloneable, subclasses cloneable (@IndrajeetPatil, #247). Fixed #253: Errors occur deep cloning member object environment class $ method. Deep cloning now uses get0() instead $. R6 now requires R >= 3.2. (@zeehio, #274)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-251","dir":"Changelog","previous_headings":"","what":"R6 2.5.1","title":"R6 2.5.1","text":"CRAN release: 2021-08-19 Removed unused packages Suggests section DESCRIPTION.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-250","dir":"Changelog","previous_headings":"","what":"R6 2.5.0","title":"R6 2.5.0","text":"CRAN release: 2020-10-28 Resolved #195: Slightly clearer message error initialize() method. Fixed #214: non-portable object inheritance cloned, methods inherited (overridden) wrong environment. (#215, #217) Printing R6 objects, longer includes .__active__.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-241","dir":"Changelog","previous_headings":"","what":"R6 2.4.1","title":"R6 2.4.1","text":"CRAN release: 2019-11-12 Cloning active bindings previously relied buggy behavior .list.environment(), return active binding’s function definition rather value invoking function. R 4.0, behavior chang returns value. R6 now longer relies buggy behavior. (#192)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-240","dir":"Changelog","previous_headings":"","what":"R6 2.4.0","title":"R6 2.4.0","text":"CRAN release: 2019-02-14 Fixed #146: Finalizers can now private methods. (#181) Fixed #167: Finalizers now run cloned objects. (#180)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-230","dir":"Changelog","previous_headings":"","what":"R6 2.3.0","title":"R6 2.3.0","text":"CRAN release: 2018-10-04 Vignettes longer included part source package large size. Documentation now https://r6.r-lib.org/. Fixed #125: print.R6 method now always returns object passed . Fixed #155: cases, cloned object’s methods refer wrong super object. (#156) Fixed #94, #133: cloning object contained function method, corresponding function new object environment changed, though method. Now longer changed environment. (#156) Fixed #121: finalize method present, prevent objects passed initialize getting GC’d. Fixed #158: $set method R6 generator object given value NULL, previously removed named item. Now adds named item value NULL. Fixed #159: Printing R6 object containing large vector slow.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-222","dir":"Changelog","previous_headings":"","what":"R6 2.2.2","title":"R6 2.2.2","text":"CRAN release: 2017-06-17 Fixed #108: object super object active binding super object cloned, new object’s super object get active binding – normal function. Fixed #119: class two levels inheritance, instance class’s super object contain methods incorrect enclosing environment.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-221","dir":"Changelog","previous_headings":"","what":"R6 2.2.1","title":"R6 2.2.1","text":"CRAN release: 2017-05-10 Vignettes now try use microbenchmark package present. package builds properly platforms microbenchmark present, like Solaris. Fixed ending position trim().","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-220","dir":"Changelog","previous_headings":"","what":"R6 2.2.0","title":"R6 2.2.0","text":"CRAN release: 2016-10-05 Classes can define finalizers explicitly, defining public finalize method. (#92, #93) Added function .R6() .R6Class(). (#95) Fixed #96: R6 now avoids using $ [[ class assigned object. allows user provide methods $ [[ without causing problems R6’s operation.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-213","dir":"Changelog","previous_headings":"","what":"R6 2.1.3","title":"R6 2.1.3","text":"CRAN release: 2016-08-19 plot S3 method R6 objects call $plot object present. (#77) Fixed printing members R6 objects. (#88) Fixed deep cloning non-portable classes. (#85) Added .list.R6 method. (#91)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-212","dir":"Changelog","previous_headings":"","what":"R6 2.1.2","title":"R6 2.1.2","text":"CRAN release: 2016-01-26 Implemented format.R6() format.R6ClassGenerator, former calls public format method defined. might change functionality existing classes define public format method intended purposes (#73. Thanks Kirill Müller) Functions shown interface print format, limited one line (#76. Thanks Kirill Müller) R6 objects generators print class inherit . (#67)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-211","dir":"Changelog","previous_headings":"","what":"R6 2.1.1","title":"R6 2.1.1","text":"CRAN release: 2015-08-19 Fixed bug printing R6 objects [[ method defined class. (#70) Fixed cloning objects call super method accesses private. (#72)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-210","dir":"Changelog","previous_headings":"","what":"R6 2.1.0","title":"R6 2.1.0","text":"CRAN release: 2015-07-04 Added support making clones R6 objects clone() method R6 objects. deep=TRUE option allows making clones copies fields reference semantics (like R6 objects). (#27) Allow adding public private members public private members begin . (#51) Previously, R6 object printed, accessed (called) active bindings. Now simply reports field active binding. (#37, #38. Thanks Oscar de Lama) Printing private members now works correctly portable R6 objects. (#26) ‘lock’ argument renamed ‘lock_objects’. Also, new argument, ‘lock_class’, can prevent changes class. (#52) Fixed printing NULL fields.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-201","dir":"Changelog","previous_headings":"","what":"R6 2.0.1","title":"R6 2.0.1","text":"CRAN release: 2014-10-29 superclass validated object instantiation, class creation. Added debug undebug methods generator object.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-20","dir":"Changelog","previous_headings":"","what":"R6 2.0","title":"R6 2.0","text":"CRAN release: 2014-08-19 [BREAKING CHANGE] Added portable option, allows inheritance across different package namespaces, made default. Added set() method class generator object, new fields methods can added generator created. functions involved instantiating objects encapsulated environment separate R6 namespace. means generator created one version R6, saved, restored new R session different version R6, shouldn’t problems compatibility. Methods locked can’t changed. (Fixes #19) Inheritance superclasses dynamic; instead reading superclass class created, happens time object instantiated. (Fixes #12) Added trailing newline printing R6 objects. (Thanks Gabor Csardi) print method R6 objects can redefined. (Thanks Gabor Csardi)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-101","dir":"Changelog","previous_headings":"","what":"R6 1.0.1","title":"R6 1.0.1","text":"CRAN release: 2014-07-17 First release CRAN. Removed pryr suggested packages.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-10","dir":"Changelog","previous_headings":"","what":"R6 1.0","title":"R6 1.0","text":"First release","code":""}] +[{"path":"https://r6.r-lib.org/dev/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2024 R6 authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://r6.r-lib.org/dev/articles/Debugging.html","id":"enabling-debugging-for-all-future-instances-of-a-class","dir":"Articles","previous_headings":"","what":"Enabling debugging for all future instances of a class","title":"Debugging","text":"R6 generator objects method called debug() enable debugging method. affect instances class created debug() called. disable debugging future instances, use generator’s undebug() method:","code":"# An example class Simple <- R6Class(\"Simple\", public = list( x = 10, getx = function() self$x ) ) # This will enable debugging the getx() method for objects of the 'Simple' # class that are instantiated in the future. Simple$debug(\"getx\") s <- Simple$new() s$getx() # [Debugging prompt] # Disable debugging for future instances: Simple$undebug(\"getx\") s <- Simple$new() s$getx() #> [1] 10"},{"path":"https://r6.r-lib.org/dev/articles/Debugging.html","id":"debugging-methods-in-individual-objects","dir":"Articles","previous_headings":"","what":"Debugging methods in individual objects","title":"Debugging","text":"enable debugging method single instance object, use debug() function (debug() method generator object). Use undebug() disable debugging object’s method. can also use trace() function specify method want drop debugging console.","code":"s <- Simple$new() debug(s$getx) s$getx() # [Debugging prompt] undebug(s$getx) s$getx() #> [1] 10"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"r6-classes","dir":"Articles","previous_headings":"","what":"R6 classes","title":"Introduction","text":"R6 classes similar R’s reference classes, lighter weight, avoid issues come along using S4 (R’s reference classes based S4). information speed memory footprint, see vignette(\"Performance\"). Unlike many objects R, instances (objects) R6 classes reference semantics. R6 classes also support: public private methods active bindings inheritance (superclasses) works across packages name R6? R’s reference classes introduced, users, following names R’s existing class systems S3 S4, called new class system R5 jest. Although reference classes actually called R5, name package classes takes inspiration name. name R5 also code-name used different object system started Simon Urbanek, meant solve issues S4 relating syntax performance. However, R5 branch shelved little development, never released.","code":""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"basics","dir":"Articles","previous_headings":"R6 classes","what":"Basics","title":"Introduction","text":"’s create simple R6 class. public argument list items, can functions fields (non-functions). Functions used methods. instantiate object class, use $new(): $new() method creates object calls initialize() method, exists. Inside class methods, self refers object. Public members object (’ve seen far) accessed self$x, assignment done self$x <- y. object instantiated, can access public fields methods $: Implementation note: external face R6 object basically environment public members . also known public environment. R6 object’s methods separate enclosing environment , roughly speaking, environment “run ”. self binding found, simply reference back public environment.","code":"library(R6) Person <- R6Class(\"Person\", public = list( name = NULL, hair = NULL, initialize = function(name = NA, hair = NA) { self$name <- name self$hair <- hair self$greet() }, set_hair = function(val) { self$hair <- val }, greet = function() { cat(paste0(\"Hello, my name is \", self$name, \".\\n\")) } ) ) ann <- Person$new(\"Ann\", \"black\") #> Hello, my name is Ann. ann #> #> Public: #> clone: function (deep = FALSE) #> greet: function () #> hair: black #> initialize: function (name = NA, hair = NA) #> name: Ann #> set_hair: function (val) ann$hair #> [1] \"black\" ann$greet() #> Hello, my name is Ann. ann$set_hair(\"red\") ann$hair #> [1] \"red\""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"private-members","dir":"Articles","previous_headings":"R6 classes","what":"Private members","title":"Introduction","text":"previous example, members public. ’s also possible add private members: Whereas public members accessed self, like self$add(), private members accessed private, like private$queue. public members can accessed usual: However, private members can’t accessed directly: useful design pattern methods return self (invisibly) possible, makes chainable. example, add() method returns self can chain together: hand, remove() returns value removed, ’s chainable:","code":"Queue <- R6Class(\"Queue\", public = list( initialize = function(...) { for (item in list(...)) { self$add(item) } }, add = function(x) { private$queue <- c(private$queue, list(x)) invisible(self) }, remove = function() { if (private$length() == 0) return(NULL) # Can use private$queue for explicit access head <- private$queue[[1]] private$queue <- private$queue[-1] head } ), private = list( queue = list(), length = function() base::length(private$queue) ) ) q <- Queue$new(5, 6, \"foo\") # Add and remove items q$add(\"something\") q$add(\"another thing\") q$add(17) q$remove() #> [1] 5 q$remove() #> [1] 6 q$queue #> NULL q$length() #> Error: attempt to apply non-function q$add(10)$add(11)$add(12) q$remove() #> [1] \"foo\" q$remove() #> [1] \"something\" q$remove() #> [1] \"another thing\" q$remove() #> [1] 17"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"active-bindings","dir":"Articles","previous_headings":"R6 classes","what":"Active bindings","title":"Introduction","text":"Active bindings look like fields, time accessed, call function. always publicly visible. active binding accessed reading value, calls function value missing argument: ’s accessed assigning value, uses assignment value value argument: function takes arguments, ’s possible use <-: Implementation note: Active bindings bound public environment. enclosing environment functions also public environment.","code":"Numbers <- R6Class(\"Numbers\", public = list( x = 100 ), active = list( x2 = function(value) { if (missing(value)) return(self$x * 2) else self$x <- value/2 }, rand = function() rnorm(1) ) ) n <- Numbers$new() n$x #> [1] 100 n$x2 #> [1] 200 n$x2 <- 1000 n$x #> [1] 500 n$rand #> [1] 0.2648 n$rand #> [1] 2.171 n$rand <- 3 #> Error: unused argument (quote(3))"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"inheritance","dir":"Articles","previous_headings":"R6 classes","what":"Inheritance","title":"Introduction","text":"One R6 class can inherit another. words, can super- sub-classes. Subclasses can additional methods, can also methods override superclass methods. example queue retains history, ’ll add show() method override remove() method: Superclass methods can called super$xx(). CountingQueue (example ) keeps count total number objects ever added queue. overriding add() method – increments counter calls superclass’s add() method, super$add(x): Note , unlike classical OOP languages (e.g. C++), R6 subclasses also access private methods superclass. instance, following example, Duck class private method $quack(), subclass Mallard can access using super$quack().","code":"# Note that this isn't very efficient - it's just for illustrating inheritance. HistoryQueue <- R6Class(\"HistoryQueue\", inherit = Queue, public = list( show = function() { cat(\"Next item is at index\", private$head_idx + 1, \"\\n\") for (i in seq_along(private$queue)) { cat(i, \": \", private$queue[[i]], \"\\n\", sep = \"\") } }, remove = function() { if (private$length() - private$head_idx == 0) return(NULL) private$head_idx <- private$head_idx + 1 private$queue[[private$head_idx]] } ), private = list( head_idx = 0 ) ) hq <- HistoryQueue$new(5, 6, \"foo\") hq$show() #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 5 hq$show() #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 6 CountingQueue <- R6Class(\"CountingQueue\", inherit = Queue, public = list( add = function(x) { private$total <- private$total + 1 super$add(x) }, get_total = function() private$total ), private = list( total = 0 ) ) cq <- CountingQueue$new(\"x\", \"y\") cq$get_total() #> [1] 2 cq$add(\"z\") cq$remove() #> [1] \"x\" cq$remove() #> [1] \"y\" cq$get_total() #> [1] 3 Duck <- R6Class(\"Duck\", private = list(quack = function() print(\"Quack Quack\")) ) Mallard <- R6Class(\"Mallard\", inherit = Duck, public = list(quack = function() super$quack()) ) myMallard <- Mallard$new() myMallard$quack() #> [1] \"Quack Quack\""},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"fields-containing-reference-objects","dir":"Articles","previous_headings":"R6 classes","what":"Fields containing reference objects","title":"Introduction","text":"R6 class contains fields also reference semantics (e.g., R6 objects, environments), fields populated $initialize() method. field set reference object directly class definition, object shared across instances R6 class. ’s example: avoid , populate field initialize method:","code":"SimpleClass <- R6Class(\"SimpleClass\", public = list(x = NULL) ) SharedField <- R6Class(\"SharedField\", public = list( e = SimpleClass$new() ) ) s1 <- SharedField$new() s1$e$x <- 1 s2 <- SharedField$new() s2$e$x <- 2 # Changing s2$e$x has changed the value of s1$e$x s1$e$x #> [1] 2 NonSharedField <- R6Class(\"NonSharedField\", public = list( e = NULL, initialize = function() self$e <- SimpleClass$new() ) ) n1 <- NonSharedField$new() n1$e$x <- 1 n2 <- NonSharedField$new() n2$e$x <- 2 # n2$e$x does not affect n1$e$x n1$e$x #> [1] 1"},{"path":[]},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"adding-members-to-an-existing-class","dir":"Articles","previous_headings":"Other topics","what":"Adding members to an existing class","title":"Introduction","text":"sometimes useful add members class class already created. can done using $set() method generator object. new members present instances created $set() called. prevent modification class, can use lock_class=TRUE creating class. can also lock unlock class follows:","code":"Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) Simple$set(\"public\", \"getx2\", function() self$x*2) # To replace an existing member, use `overwrite=TRUE` Simple$set(\"public\", \"x\", 10, overwrite = TRUE) s <- Simple$new() s$x #> [1] 10 s$getx2() #> [1] 20 # Create a locked class Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ), lock_class = TRUE ) # This would result in an error Simple$set(\"public\", \"y\", 2) #> Error in Simple$set(\"public\", \"y\", 2): Can't modify a locked R6 class. # Unlock the class Simple$unlock() # Now it works Simple$set(\"public\", \"y\", 2) # Lock the class again Simple$lock()"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"cloning-objects","dir":"Articles","previous_headings":"Other topics","what":"Cloning objects","title":"Introduction","text":"default, R6 objects method named $clone() making copy object. don’t want clone method added, can use cloneable=FALSE creating class. loaded R6 object clone method, function uses 84.11 kB bytes, additional object, clone method costs trivial amount space (112 B bytes). Note cloneable inheritance: superclass cloneable=FALSE, subclasses cloneable. (subclass sets cloneable=TRUE, message printed objects instantiated objects cloneable.)","code":"Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) s <- Simple$new() # Create a clone s1 <- s$clone() # Modify it s1$x <- 2 s1$getx() #> [1] 2 # Original is unaffected by changes to the clone s$getx() #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"deep-cloning","dir":"Articles","previous_headings":"Other topics > Cloning objects","what":"Deep cloning","title":"Introduction","text":"fields objects reference semantics (environments, R6 objects, reference class objects), copy get reference object. sometimes desirable, often . example, ’ll create object c1 contains another R6 object, s, clone . original’s clone’s s fields refer object, modifying one results change reflected . make clone receives copy s, can use deep=TRUE option: default behavior $clone(deep=TRUE) copy fields R6 objects, copy fields environments, reference class objects, data structures contain reference-type objects (example, list R6 object). R6 object contains types objects want make deep clone , must provide function deep cloning, private method named deep_clone. example R6 object two fields, b, environments, contain value x. also field v regular (non-reference) value, private deep_clone method. deep_clone method called field. passed name value field, value returns used clone. c1$clone(deep=TRUE) called, deep_clone method called field c1, passed name field value. version, environment gets copied, b , v (doesn’t matter since v reference object). can test clone: example deep_clone method , checked name field determine , also check value, using inherits(value, \"R6\"), .environment(), .","code":"Simple <- R6Class(\"Simple\", public = list(x = 1)) Cloneable <- R6Class(\"Cloneable\", public = list( s = NULL, initialize = function() self$s <- Simple$new() ) ) c1 <- Cloneable$new() c2 <- c1$clone() # Change c1's `s` field c1$s$x <- 2 # c2's `s` is the same object, so it reflects the change c2$s$x #> [1] 2 c3 <- c1$clone(deep = TRUE) # Change c1's `s` field c1$s$x <- 3 # c2's `s` is different c3$s$x #> [1] 2 CloneEnv <- R6Class(\"CloneEnv\", public = list( a = NULL, b = NULL, v = 1, initialize = function() { self$a <- new.env(parent = emptyenv()) self$b <- new.env(parent = emptyenv()) self$a$x <- 1 self$b$x <- 1 } ), private = list( deep_clone = function(name, value) { # With x$clone(deep=TRUE) is called, the deep_clone gets invoked once for # each field, with the name and value. if (name == \"a\") { # `a` is an environment, so use this quick way of copying list2env(as.list.environment(value, all.names = TRUE), parent = emptyenv()) } else { # For all other fields, just return the value value } } ) ) c1 <- CloneEnv$new() c2 <- c1$clone(deep = TRUE) # Modifying c1$a doesn't affect c2$a, because they're separate objects c1$a$x <- 2 c2$a$x #> [1] 1 # Modifying c1$b does affect c2$b, because they're the same object c1$b$x <- 3 c2$b$x #> [1] 3 # Modifying c1$v doesn't affect c2$v, because they're not reference objects c1$v <- 4 c2$v #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"printing-r6-objects-to-the-screen","dir":"Articles","previous_headings":"Other topics","what":"Printing R6 objects to the screen","title":"Introduction","text":"R6 objects default $print() method lists members object. class defines $print() method, overrides default one.","code":"PrettyCountingQueue <- R6Class(\"PrettyCountingQueue\", inherit = CountingQueue, public = list( print = function(...) { cat(\" of \", self$get_total(), \" elements\\n\", sep = \"\") } ) ) pq <- PrettyCountingQueue$new(1, 2, \"foobar\") pq #> of 3 elements"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"finalizers","dir":"Articles","previous_headings":"Other topics","what":"Finalizers","title":"Introduction","text":"Sometimes ’s useful run function object garbage collected. example, may want make sure file database connection gets closed. , can define private $finalize() method, called arguments object garbage collected. NOTE: R6 version 2.3.0 (released 2018-10-04) , $finalize() method public. version 2.4.0, can public private. Private preferable ’s reason finalizer needs publicly accessible. use private finalizer R package, set R6 version dependency R6 (>= 2.4.0). 2.6.0, R6 prints message finalizer public. future version, emit warnings, finally, longer support public finalizers. Finalizers implemented using reg.finalizer() function, set onexit=TRUE, finalizer also called R exits. useful cases, like database connections.","code":"A <- R6Class(\"A\", private = list( finalize = function() { print(\"Finalizer has been called!\") } )) # Instantiate an object: obj <- A$new() # Remove the single existing reference to it, and force garbage collection # (normally garbage collection will happen automatically from time # to time) rm(obj); gc() #> [1] \"Finalizer has been called!\" #> used (Mb) gc trigger (Mb) max used (Mb) #> Ncells 701836 37.5 1364680 72.9 1364680 72.9 #> Vcells 1324403 10.2 8388608 64.0 3573209 27.3"},{"path":"https://r6.r-lib.org/dev/articles/Introduction.html","id":"class-methods-vs--member-functions","dir":"Articles","previous_headings":"Other topics","what":"Class methods vs. member functions","title":"Introduction","text":"R6 class definition contains functions public private sections, functions class methods: can access self (well private super available). R6 object cloned, resulting object’s methods self refers new object. works changing enclosing environment method cloned object. contrast class methods, can also add regular functions members R6 object. can done assigning function field $initialize() method, object instantiated. functions class methods, access self, private, super. trivial class method get_self() simply returns self, well empty member, fn. example, ’ll assign function fn body get_self. However, since ’s regular function, self refer something R6 object: R6 2.3.0, object cloned, member (non-method) functions enclosing environment changed, one normally expect. behave way:","code":"FunctionWrapper <- R6Class(\"FunctionWrapper\", public = list( get_self = function() { self }, fn = NULL ) ) a <- FunctionWrapper$new() # Create a function that accesses a variable named `self`. # Note that `self` in this function's scope refers to 100, not to the R6 object. self <- 100 a$fn <- function() { self } a$get_self() #> #> Public: #> clone: function (deep = FALSE) #> fn: function () #> get_self: function () a$fn() #> [1] 100 b <- a$clone() b$get_self() #> #> Public: #> clone: function (deep = FALSE) #> fn: function () #> get_self: function () b$fn() #> [1] 100"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"class-definitions","dir":"Articles","previous_headings":"","what":"Class definitions","title":"R6 and Reference Class performance tests","text":"’ll start defining number classes class-like entities, using reference classes, R6 classes, simple environments created directly functions. number options R6 can affect size resulting objects, use number variants. classes used speed memory tests follow. lot boring code, may want skip ahead results. classes basic characteristics: field named x contains number. way initializing value x. method named getx retrieving value x. method named inc incrementing value x. fields methods accessed $ operator, object named obj, use obj$x obj$getx().","code":""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r-reference-class","dir":"Articles","previous_headings":"Class definitions","what":"R reference class","title":"R6 and Reference Class performance tests","text":"reference classes, binding points back object named .self. Within method, assignment can done using .self, .self$x <- 10, using <<-, x <<- 10. create object, simply call $new() class:","code":"RC <- setRefClass(\"RC\", fields = list(x = \"numeric\"), methods = list( initialize = function(x = 1) .self$x <- x, getx = function() x, inc = function(n = 1) x <<- x + n ) ) RC$new() #> Reference class object of class \"RC\" #> Field \"x\": #> [1] 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class","dir":"Articles","previous_headings":"Class definitions","what":"R6 class","title":"R6 and Reference Class performance tests","text":"Creating R6 class similar reference class, except ’s need separate fields methods, can’t specify types fields. Whereas reference classes use .self, R6 classes use self (without leading period). reference classes, objects instantiated calling $new(): R6 object essentially just set environments structured particular way. fields methods R6 object bindings (, names) public environment. also separate environment enclosing environment methods (“run ” environment contains binding named self, simply reference public environment).","code":"R6 <- R6Class(\"R6\", public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- x + n ) ) R6$new() #> #> Public: #> clone: function (deep = FALSE) #> getx: function () #> inc: function (n = 1) #> initialize: function (x = 1) #> x: 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-without-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, without class attribute","title":"R6 and Reference Class performance tests","text":"default, class attribute added R6 objects. attribute adds slight performance penalty R attempt use S3 dispatch using $ object. ’s possible generate objects without class attribute, using class=FALSE: Note without class attribute, S3 method dispatch objects possible.","code":"R6NoClass <- R6Class(\"R6NoClass\", class = FALSE, public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- self$x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-non-portable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, non-portable","title":"R6 and Reference Class performance tests","text":"default, R6 objects portable. means inheritance can classes different packages. However, also requires use self$ private$ access members, incurs small performance penalty. portable=FALSE used, members can accessed without using self$, assignment can done <<-:","code":"R6NonPortable <- R6Class(\"R6NonPortable\", portable = FALSE, public = list( x = NULL, initialize = function(value = 1) x <<- value, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-cloneablefalse","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with cloneable=FALSE","title":"R6 and Reference Class performance tests","text":"default, R6 objects clone() method, fairly large function. need feature, can save memory using cloneable=FALSE.","code":"R6NonCloneable <- R6Class(\"R6NonCloneable\", cloneable = FALSE, public = list( x = NULL, initialize = function(x = 1) self$x <- x, getx = function() self$x, inc = function(n = 1) self$x <- self$x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-without-class-attribute-non-portable-and-non-cloneable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, without class attribute, non-portable, and non-cloneable","title":"R6 and Reference Class performance tests","text":"comparison, ’ll use R6 class without class attribute, non-portable, non-cloneable. stripped-can make R6 object.","code":"R6Bare <- R6Class(\"R6Bare\", portable = FALSE, class = FALSE, cloneable = FALSE, public = list( x = NULL, initialize = function(value = 1) x <<- value, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-public-and-private-members","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with public and private members","title":"R6 and Reference Class performance tests","text":"variant public private members. Instead single self object refers items object, objects self (refers public items) private.","code":"R6Private <- R6Class(\"R6Private\", private = list(x = NULL), public = list( initialize = function(x = 1) private$x <- x, getx = function() private$x, inc = function(n = 1) private$x <- private$x + n ) ) R6Private$new() #> #> Public: #> clone: function (deep = FALSE) #> getx: function () #> inc: function (n = 1) #> initialize: function (x = 1) #> Private: #> x: 1"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"r6-class-with-public-and-private-no-class-attribute-non-portable-and-non-cloneable","dir":"Articles","previous_headings":"Class definitions","what":"R6 class, with public and private, no class attribute, non-portable, and non-cloneable","title":"R6 and Reference Class performance tests","text":"comparison, ’ll add version without class attribute, non-portable, non-cloneable.","code":"R6PrivateBare <- R6Class(\"R6PrivateBare\", portable = FALSE, class = FALSE, cloneable = FALSE, private = list(x = NULL), public = list( initialize = function(x = 1) private$x <- x, getx = function() x, inc = function(n = 1) x <<- x + n ) )"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"environment-created-by-a-function-call-with-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"Environment created by a function call, with class attribute","title":"R6 and Reference Class performance tests","text":"R, environments passed reference. simple way create object ’s passed reference use environment created invocation function. function captures environment, attaches class , returns : Even though x isn’t declared function body, gets captured ’s argument function. Objects created way similar created R6 generator created .","code":"FunctionEnvClass <- function(x = 1) { inc <- function(n = 1) x <<- x + n getx <- function() x self <- environment() class(self) <- \"FunctionEnvClass\" self } ls(FunctionEnvClass()) #> [1] \"getx\" \"inc\" \"self\" \"x\""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"environment-created-by-a-function-call-without-class-attribute","dir":"Articles","previous_headings":"Class definitions","what":"Environment created by a function call, without class attribute","title":"R6 and Reference Class performance tests","text":"can make even simpler type reference object previous one, class attribute, self object: simply environment objects .","code":"FunctionEnvNoClass <- function(x = 1) { inc <- function(n = 1) x <<- x + n getx <- function() x environment() } ls(FunctionEnvNoClass()) #> [1] \"getx\" \"inc\" \"x\""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"tests","dir":"Articles","previous_headings":"","what":"Tests","title":"R6 and Reference Class performance tests","text":"timings using microbenchmark(), results reported microseconds, useful value probably median column.","code":""},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"memory-footprint","dir":"Articles","previous_headings":"Tests","what":"Memory footprint","title":"R6 and Reference Class performance tests","text":"much memory single instance object take, much memory additional object take? ’ll use functions obj_size obj_sizes (shown bottom document) calculate sizes. Sizes type object, bytes: results plotted . Note plots different x scales. preliminary observations first instance various classes: Using reference class consumes large amount memory. R6 objects, option largest impact cloneable: clone() method saves around 40 kB memory. subsequent instances classes, isn’t nearly much difference different kinds. appeared using reference class takes huge amount memory, much shared reference classes. Adding object different reference class doesn’t require much memory — around 38KB:","code":"sizes <- obj_sizes( RC$new(), R6$new(), R6NoClass$new(), R6NonPortable$new(), R6NonCloneable$new(), R6Bare$new(), R6Private$new(), R6PrivateBare$new(), FunctionEnvClass(), FunctionEnvNoClass() ) sizes #> one incremental #> RC$new() 2032832 1400 #> R6$new() 97200 1016 #> R6NoClass$new() 97920 896 #> R6NonPortable$new() 96872 960 #> R6NonCloneable$new() 14288 904 #> R6Bare$new() 13488 728 #> R6Private$new() 98112 1128 #> R6PrivateBare$new() 14512 840 #> FunctionEnvClass() 13424 616 #> FunctionEnvNoClass() 11944 504 RC2 <- setRefClass(\"RC2\", fields = list(x = \"numeric\"), methods = list( initialize = function(x = 2) .self$x <<- x, inc = function(n = 2) x <<- x * n ) ) # Calcualte the size of a new RC2 object, over and above an RC object as.numeric(obj_size(RC$new(), RC2$new()) - obj_size(RC$new())) #> [1] 0 0"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"object-instantiation-speed","dir":"Articles","previous_headings":"Tests","what":"Object instantiation speed","title":"R6 and Reference Class performance tests","text":"much time take create one objects? shows median time, microseconds: plot shows median instantiation time. Reference classes much slower instantiate types classes. Instantiating R6 objects roughly 5 times faster. Creating environment simple function call another 20-30 times faster.","code":"# Function to extract the medians from microbenchmark results mb_summary <- function(x) { res <- summary(x, unit=\"us\") data.frame(name = res$expr, median = res$median) } speed <- microbenchmark( RC$new(), R6$new(), R6NoClass$new(), R6NonPortable$new(), R6NonCloneable$new(), R6Bare$new(), R6Private$new(), R6PrivateBare$new(), FunctionEnvClass(), FunctionEnvNoClass() ) speed <- mb_summary(speed) speed #> name median #> 1 RC$new() 204.4965 #> 2 R6$new() 32.9465 #> 3 R6NoClass$new() 33.1615 #> 4 R6NonPortable$new() 33.9235 #> 5 R6NonCloneable$new() 33.6880 #> 6 R6Bare$new() 29.3445 #> 7 R6Private$new() 45.1240 #> 8 R6PrivateBare$new() 41.1620 #> 9 FunctionEnvClass() 1.6180 #> 10 FunctionEnvNoClass() 1.0170"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"field-access-speed","dir":"Articles","previous_headings":"Tests","what":"Field access speed","title":"R6 and Reference Class performance tests","text":"much time take access field object? First ’ll make objects: get value objects: Accessing field reference class much slower methods. ’s also obvious pattern accessing field environment (created R6 function call) slower class attribute. , objects class attribute, R attempts look S3 method $, lookup performance penalty. ’ll see .","code":"rc <- RC$new() r6 <- R6$new() r6noclass <- R6NoClass$new() r6noport <- R6NonPortable$new() r6noclone <- R6NonCloneable$new() r6bare <- R6Bare$new() r6priv <- R6Private$new() r6priv_bare <- R6PrivateBare$new() fun_env <- FunctionEnvClass() fun_env_nc <- FunctionEnvNoClass() speed <- microbenchmark( rc$x, r6$x, r6noclass$x, r6noport$x, r6noclone$x, r6bare$x, r6priv$x, r6priv_bare$x, fun_env$x, fun_env_nc$x ) speed <- mb_summary(speed) speed #> name median #> 1 rc$x 5.8410 #> 2 r6$x 0.6420 #> 3 r6noclass$x 0.2110 #> 4 r6noport$x 0.6910 #> 5 r6noclone$x 0.7010 #> 6 r6bare$x 0.2105 #> 7 r6priv$x 0.7220 #> 8 r6priv_bare$x 0.2255 #> 9 fun_env$x 0.6115 #> 10 fun_env_nc$x 0.2200"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"field-setting-speed","dir":"Articles","previous_headings":"Tests","what":"Field setting speed","title":"R6 and Reference Class performance tests","text":"much time take set value field object? Reference classes significantly slower others, . case, ’s additional overhead due type-checking value. , -class objects significantly faster others, probably due attempted S3 dispatch `$<-` function.","code":"speed <- microbenchmark( rc$x <- 4, r6$x <- 4, r6noclass$x <- 4, r6noport$x <- 4, r6noclone$x <- 4, r6bare$x <- 4, # r6priv$x <- 4, # Can't set private field directly, # r6priv_nc_np$x <- 4, # so we'll skip these two fun_env$x <- 4, fun_env_nc$x <- 4 ) speed <- mb_summary(speed) speed #> name median #> 1 rc$x <- 4 29.1750 #> 2 r6$x <- 4 1.1920 #> 3 r6noclass$x <- 4 0.6710 #> 4 r6noport$x <- 4 1.2620 #> 5 r6noclone$x <- 4 1.2575 #> 6 r6bare$x <- 4 0.7515 #> 7 fun_env$x <- 4 1.1720 #> 8 fun_env_nc$x <- 4 0.6810"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"speed-of-method-call-that-accesses-a-field","dir":"Articles","previous_headings":"Tests","what":"Speed of method call that accesses a field","title":"R6 and Reference Class performance tests","text":"much overhead calling method one objects? getx() methods simply return value x object. necessary, method uses self$x (R6 classes, portable=TRUE), others, just uses x (portable=FALSE, reference classes). reference class slowest. r6 also somewhat slower others. two reasons : first, uses self$x adds time, second, class attribute, slows access r6$getx self$x. One might expect r6priv speed r6, faster. Although accessing r6priv$getx slow r6priv class attribute, accessing private$x faster class attribute. objects can access x directly (without self private) lack class attribute fastest.","code":"speed <- microbenchmark( rc$getx(), r6$getx(), r6noclass$getx(), r6noport$getx(), r6noclone$getx(), r6bare$getx(), r6priv$getx(), r6priv_bare$getx(), fun_env$getx(), fun_env_nc$getx() ) speed <- mb_summary(speed) speed #> name median #> 1 rc$getx() 5.9065 #> 2 r6$getx() 1.5830 #> 3 r6noclass$getx() 0.5210 #> 4 r6noport$getx() 0.8810 #> 5 r6noclone$getx() 1.6685 #> 6 r6bare$getx() 0.3510 #> 7 r6priv$getx() 1.0510 #> 8 r6priv_bare$getx() 0.3510 #> 9 fun_env$getx() 0.8815 #> 10 fun_env_nc$getx() 0.4410"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"assignment-using-selfx---vs--x--","dir":"Articles","previous_headings":"Tests","what":"Assignment using self$x <- vs. x <<-","title":"R6 and Reference Class performance tests","text":"reference classes, can modify fields using <<- operator, using .self object. example, compare setx() methods two classes: Non-portable R6 classes similar, except use self instead .self. reference non-portable R6 classes, assignment using .self$x <- somewhat slower using x <<-. Bear mind , default, R6 classes portable, can’t use assignment x <<-.","code":"RCself <- setRefClass(\"RCself\", fields = list(x = \"numeric\"), methods = list( initialize = function() .self$x <- 1, setx = function(n = 2) .self$x <- n ) ) RCnoself <- setRefClass(\"RCnoself\", fields = list(x = \"numeric\"), methods = list( initialize = function() x <<- 1, setx = function(n = 2) x <<- n ) ) R6self <- R6Class(\"R6self\", portable = FALSE, public = list( x = 1, setx = function(n = 2) self$x <- n ) ) R6noself <- R6Class(\"R6noself\", portable = FALSE, public = list( x = 1, setx = function(n = 2) x <<- n ) ) rc_self <- RCself$new() rc_noself <- RCnoself$new() r6_self <- R6self$new() r6_noself <- R6noself$new() speed <- microbenchmark( rc_self$setx(), rc_noself$setx(), r6_self$setx(), r6_noself$setx() ) speed <- mb_summary(speed) speed #> name median #> 1 rc_self$setx() 35.0260 #> 2 rc_noself$setx() 19.6565 #> 3 r6_self$setx() 2.9555 #> 4 r6_noself$setx() 1.2975"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"overhead-from-using-on-objects-with-a-class-attribute","dir":"Articles","previous_headings":"Tests","what":"Overhead from using $ on objects with a class attribute","title":"R6 and Reference Class performance tests","text":"overhead using $ object class attribute. test , ’ll create three different kinds objects: environment class attribute. environment class \"e2\", without $.e2 S3 method. environment class \"e3\", $.e3 S3 method simply returns NULL. one environments contain object x. Now can run timing tests calling $ type object. Note e3 object, $ function nothing — simply returns NULL. Using $ e2 e3 much slower e1. e2 e3 class attribute. Even though ’s $ method defined e2, e2$x still 6 times slower e1$x, simply R looks appropriate S3 method. e3$x slightly faster e2$x; probably $.e3 function doesn’t actually anything return NULL. object class attribute, R attempt look method every time $ called. can slow things considerably, $ used often.","code":"e1 <- new.env(hash = FALSE, parent = emptyenv()) e2 <- new.env(hash = FALSE, parent = emptyenv()) e3 <- new.env(hash = FALSE, parent = emptyenv()) e1$x <- 1 e2$x <- 1 e3$x <- 1 class(e2) <- \"e2\" class(e3) <- \"e3\" # Define an S3 method for class e3 `$.e3` <- function(x, name) { NULL } speed <- microbenchmark( e1$x, e2$x, e3$x ) speed <- mb_summary(speed) speed #> name median #> 1 e1$x 0.191 #> 2 e2$x 0.551 #> 3 e3$x 0.831"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"lists-vs--environments-and-vs-","dir":"Articles","previous_headings":"Tests","what":"Lists vs. environments, and $ vs. [[","title":"R6 and Reference Class performance tests","text":"Lists also used creating classes (albeit reference semantics). much time take access items using $ lists vs. environments? ’ll also compare using obj$x obj[['x']]. Performance comparable across environments lists. [[ operator slightly faster $, probably doesn’t need convert unevaluated symbol string.","code":"lst <- list(x = 10) env <- new.env() env$x <- 10 mb_summary(microbenchmark( lst = lst$x, env = env$x, lst[['x']], env[['x']] )) #> name median #> 1 lst 0.180 #> 2 env 0.161 #> 3 lst[[\"x\"]] 0.140 #> 4 env[[\"x\"]] 0.110"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"wrap-up","dir":"Articles","previous_headings":"","what":"Wrap-up","title":"R6 and Reference Class performance tests","text":"R6 objects take less memory significantly faster R’s reference class objects, also options provide even speed. tests, biggest speedup R6 classes comes using class attribute; speeds use $. Non-portable R6 classes can also access fields without $ , provides another modest speed boost. cases, speed increases negligible – order microseconds noticeable tens even hundreds thousands class member accesses performed.","code":""},{"path":[]},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"functions-for-calculating-object-sizes","dir":"Articles","previous_headings":"Appendix","what":"Functions for calculating object sizes","title":"R6 and Reference Class performance tests","text":"","code":"# Utility functions for calculating sizes obj_size <- function(expr, .env = parent.frame()) { size_n <- function(n = 1) { objs <- lapply(1:n, function(x) eval(expr, .env)) as.numeric(do.call(lobstr::obj_size, objs)) } data.frame(one = size_n(1), incremental = size_n(2) - size_n(1)) } obj_sizes <- function(..., .env = parent.frame()) { exprs <- as.list(match.call(expand.dots = FALSE)$...) names(exprs) <- lapply(1:length(exprs), FUN = function(n) { name <- names(exprs)[n] if (is.null(name) || name == \"\") paste(deparse(exprs[[n]]), collapse = \" \") else name }) sizes <- mapply(obj_size, exprs, MoreArgs = list(.env = .env), SIMPLIFY = FALSE) do.call(rbind, sizes) }"},{"path":"https://r6.r-lib.org/dev/articles/Performance.html","id":"system-information","dir":"Articles","previous_headings":"Appendix","what":"System information","title":"R6 and Reference Class performance tests","text":"","code":"sessionInfo() #> R version 4.4.1 (2024-06-14) #> Platform: x86_64-pc-linux-gnu #> Running under: Ubuntu 20.04.6 LTS #> #> Matrix products: default #> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 #> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3; LAPACK version 3.9.0 #> #> locale: #> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8 #> [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8 #> [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C #> [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C #> #> time zone: UTC #> tzcode source: system (glibc) #> #> attached base packages: #> [1] stats graphics grDevices utils datasets methods base #> #> other attached packages: #> [1] scales_1.3.0 ggplot2_3.5.1 R6_2.5.1.9000 #> [4] lobstr_1.1.2 microbenchmark_1.5.0 #> #> loaded via a namespace (and not attached): #> [1] gtable_0.3.5 jsonlite_1.8.8 highr_0.11 #> [4] compiler_4.4.1 jquerylib_0.1.4 systemfonts_1.1.0 #> [7] textshaping_0.4.0 yaml_2.3.10 fastmap_1.2.0 #> [10] labeling_0.4.3 knitr_1.48 tibble_3.2.1 #> [13] desc_1.4.3 munsell_0.5.1 bslib_0.8.0 #> [16] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 #> [19] cachem_1.1.0 xfun_0.47 fs_1.6.4 #> [22] sass_0.4.9 cli_3.6.3 pkgdown_2.1.0 #> [25] withr_3.0.1 magrittr_2.0.3 digest_0.6.37 #> [28] grid_4.4.1 lifecycle_1.0.4 vctrs_0.6.5 #> [31] evaluate_0.24.0 glue_1.7.0 farver_2.1.2 #> [34] codetools_0.2-20 ragg_1.3.2 fansi_1.0.6 #> [37] colorspace_2.1-1 rmarkdown_2.28 tools_4.4.1 #> [40] pkgconfig_2.0.3 htmltools_0.5.8.1"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"the-problem","dir":"Articles","previous_headings":"","what":"The problem","title":"Portable and non-portable R6 classes","text":"example cross-package inheritance problem reference classes: Suppose ClassA pkgA, ClassB pkgB, inherits ClassA. ClassA method foo calls non-exported function fun pkgA. ClassB inherits foo, try call fun – since ClassB objects created pkgB namespace (environment) instead pkgA namespace, won’t able find fun. Something similar happens R6 portable=FALSE option used. example: create instance ClassA, works expected: ClassB, can’t find foo function:","code":"library(R6) # Simulate packages by creating environments pkgA <- new.env() pkgB <- new.env() # Create a function in pkgA but not pkgB pkgA$fun <- function() 10 ClassA <- R6Class(\"ClassA\", portable = FALSE, public = list( foo = function() fun() ), parent_env = pkgA ) # ClassB inherits from ClassA ClassB <- R6Class(\"ClassB\", portable = FALSE, inherit = ClassA, parent_env = pkgB ) a <- ClassA$new() a$foo() #> [1] 10 b <- ClassB$new() b$foo() #> Error in b$foo() : could not find function \"fun\""},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"portable-r6","dir":"Articles","previous_headings":"","what":"Portable R6","title":"Portable and non-portable R6 classes","text":"R6 supports inheritance across different packages, default portable=TRUE option. example, ’ll simulate different packages creating separate parent environments classes. method inherited superclass, method also gets class’s environment. words, method “runs ” superclass’s environment. makes possible inheritance work across packages. method defined subclass, method gets subclass’s environment. example, ClassC subclass ClassA, defines foo method overrides foo method ClassA. happens method looks ClassA’s – just calls fun. time finds pkgC$fun instead pkgA$fun. contrast ClassB, inherited foo method environment ClassA.","code":"pkgA <- new.env() pkgB <- new.env() pkgA$fun <- function() { \"This function `fun` in pkgA\" } ClassA <- R6Class(\"ClassA\", portable = TRUE, # The default public = list( foo = function() fun() ), parent_env = pkgA ) ClassB <- R6Class(\"ClassB\", portable = TRUE, inherit = ClassA, parent_env = pkgB ) a <- ClassA$new() a$foo() #> [1] \"This function `fun` in pkgA\" b <- ClassB$new() b$foo() #> [1] \"This function `fun` in pkgA\" pkgC <- new.env() pkgC$fun <- function() { \"This function `fun` in pkgC\" } ClassC <- R6Class(\"ClassC\", portable = TRUE, inherit = ClassA, public = list( foo = function() fun() ), parent_env = pkgC ) cc <- ClassC$new() # This method is defined in ClassC, so finds pkgC$fun cc$foo() #> [1] \"This function `fun` in pkgC\""},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"using-self","dir":"Articles","previous_headings":"","what":"Using self","title":"Portable and non-portable R6 classes","text":"One important difference non-portable portable classes non-portable classes, ’s possible access members just name member, portable classes, member access always requires using self$ private$. consequence inheritance implementation. ’s example non-portable class two methods: sety, sets private field y using <<- operator, getxy, returns vector values fields x y: attempt portable class, results error: make work portable class, need use self$x private$y: small performance penalty using self$x opposed x. cases, negligible, can noticeable situations tens thousands accesses per second. information, see vignette(\"Performance\").","code":"NP <- R6Class(\"NP\", portable = FALSE, public = list( x = 1, getxy = function() c(x, y), sety = function(value) y <<- value ), private = list( y = NA ) ) np <- NP$new() np$sety(20) np$getxy() #> [1] 1 20 P <- R6Class(\"P\", portable = TRUE, public = list( x = 1, getxy = function() c(x, y), sety = function(value) y <<- value ), private = list( y = NA ) ) p <- P$new() # No error, but instead of setting private$y, this sets y in the global # environment! This is because of the semantics of <<-. p$sety(20) y #> [1] 20 p$getxy() #> Error in p$getxy() : object 'y' not found P2 <- R6Class(\"P2\", portable = TRUE, public = list( x = 1, getxy = function() c(self$x, private$y), sety = function(value) private$y <- value ), private = list( y = NA ) ) p2 <- P2$new() p2$sety(20) p2$getxy() #> [1] 1 20"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"potential-pitfalls-with-cross-package-inheritance","dir":"Articles","previous_headings":"","what":"Potential pitfalls with cross-package inheritance","title":"Portable and non-portable R6 classes","text":"Inheritance happens object instantiated MyClass$new(). time, members superclass get copied new object. means instantiate R6 object, essentially save pieces superclass object. way packages built R, R6’s inheritance behavior potentially lead surprising, hard--diagnose problems packages change versions. Suppose two packages, pkgA, containing ClassA, pkgB, containing ClassB, code pkgB instantiates ClassB object, objB, build time. contrast instantiating ClassB run-time, calling function. code package run binary package built, resulting objects saved package. (Generally, object can accessed pkgB:::objB, means created build time.) objB created package build time, pieces superclass, pkgA::ClassA, saved inside . fine . imagine pkgB built installed pkgA 1.0, upgrade pkgA 2.0 without subsequently building installing pkgB. pkgB::objB contain code pkgA::ClassA 1.0, version pkgA::ClassA ’s installed 2.0. can cause problems objB inherited code uses parts pkgA changed – problems may entirely obvious. scenario entirely possible installing packages CRAN. common package upgraded without upgrading downstream dependencies. far know, R mechanism force downstream dependencies rebuilt package upgraded user’s computer. problem happens, remedy rebuild pkgB pkgA 2.0. don’t know CRAN rebuilds downstream dependencies package updated. doesn’t, ’s possible CRAN incompatible binary builds pkgA pkgB, users install pkgB source, install.packages(\"pkgB\", type = \"source\"). avoid problem entirely, objects ClassB must instantiated build time. can either () instantiate functions, (B) instantiate package load time, adding .onLoad function package. example: might wondering ClassB (class, instance class objB) doesn’t save copy pkgA::ClassA inside package built. , inherit argument, R6Class saves unevaluated expression (pkgA::ClassA), evaluates $new() called.","code":"ClassB <- R6Class(\"ClassB\", inherit = pkgA::ClassA, public = list(x = 1) ) # We'll fill this at load time objB <- NULL .onLoad <- function(libname, pkgname) { # The namespace is locked after loading; we can still modify objB at this time. objB <<- ClassB$new() }"},{"path":"https://r6.r-lib.org/dev/articles/Portable.html","id":"wrap-up","dir":"Articles","previous_headings":"","what":"Wrap-up","title":"Portable and non-portable R6 classes","text":"summary: Portable classes allow inheritance across different packages. Portable classes always require use self private access members. can incur small performance penalty, since using self$x slower just x.","code":""},{"path":"https://r6.r-lib.org/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Winston Chang. Author, maintainer. . Copyright holder, funder.","code":""},{"path":"https://r6.r-lib.org/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Chang W (2024). R6: Encapsulated Classes Reference Semantics. R package version 2.5.1.9000, https://github.com/r-lib/R6/, https://r6.r-lib.org.","code":"@Manual{, title = {R6: Encapsulated Classes with Reference Semantics}, author = {Winston Chang}, year = {2024}, note = {R package version 2.5.1.9000, https://github.com/r-lib/R6/}, url = {https://r6.r-lib.org}, }"},{"path":"https://r6.r-lib.org/dev/index.html","id":"r6-encapsulated-object-oriented-programming-for-r-","dir":"","previous_headings":"","what":"Encapsulated Classes with Reference Semantics","title":"Encapsulated Classes with Reference Semantics","text":"R6 implementation encapsulated object-oriented programming R, simpler, faster, lighter-weight alternative R’s built-reference classes. style programming also sometimes referred classical object-oriented programming. features R6: R6 objects reference semantics. R6 cleanly supports inheritance across packages. R6 classes public private members. contrast R’s reference classes, R6 built S4 class system, require methods package. Unlike reference classes, R6 classes can cleanly inherited across different packages. See Introduction article usage examples.","code":""},{"path":"https://r6.r-lib.org/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Encapsulated Classes with Reference Semantics","text":"install R6 CRAN: install development version (requires devtools package):","code":"install.packages('R6') devtools::install_github('r-lib/R6', build_vignettes = FALSE)"},{"path":"https://r6.r-lib.org/dev/index.html","id":"documentation","dir":"","previous_headings":"","what":"Documentation","title":"Encapsulated Classes with Reference Semantics","text":"Introduction R6 Debugging methods R6 objects Performance tests - Speed memory comparisons R6 classes reference classes. Portable R6 classes - Inheritance across different packages.","code":""},{"path":"https://r6.r-lib.org/dev/index.html","id":"why-r6","dir":"","previous_headings":"Documentation","what":"Why R6?","title":"Encapsulated Classes with Reference Semantics","text":"name R6? R’s reference classes introduced, users, following names R’s existing class systems S3 S4, called new class system R5 jest. Although reference classes actually called R5, name package classes takes inspiration name. name R5 also code-name used different object system started Simon Urbanek, meant solve issues S4 relating syntax performance. However, R5 branch shelved little development, never released.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":null,"dir":"Reference","previous_headings":"","what":"Create an R6 reference object generator — R6Class","title":"Create an R6 reference object generator — R6Class","text":"R6 objects essentially environments, structured way makes look like object typical object-oriented language R. support public private members, well inheritance across different packages.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create an R6 reference object generator — R6Class","text":"","code":"R6Class( classname = NULL, public = list(), private = NULL, active = NULL, inherit = NULL, lock_objects = TRUE, class = TRUE, portable = TRUE, lock_class = FALSE, cloneable = TRUE, parent_env = parent.frame() )"},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create an R6 reference object generator — R6Class","text":"classname Name class. class name useful primarily S3 method dispatch. public list public members, can functions (methods) non-functions (fields). private optional list private members, can functions non-functions. active optional list active binding functions. inherit R6ClassGenerator object inherit ; words, superclass. captured unevaluated expression evaluated parent_env time object instantiated. lock_objects environments generated objects locked? locked, new members added objects. class class attribute added object? Default TRUE. FALSE, objects simply look like environments, . portable TRUE (default), class work inheritance across different packages. Note enabled, fields members must accessed self$x private$x; accessed just x. lock_class TRUE, possible add members generator object $set. FALSE (default), possible add members $set. methods $is_locked, $lock, $unlock can used query change locked state class. cloneable TRUE (default), generated objects method named $clone, makes copy object. parent_env environment use parent newly-created objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Create an R6 reference object generator — R6Class","text":"R6 object consists public environment, may also contain private environment, well environments superclasses. one sense, object public environment ; reference object identical reference public environment. another sense, object also consists fields, methods, private environment . active argument list active binding functions. functions take one argument. look like regular variables, accessed, function called optional argument. example, obj$x2 active binding, accessed obj$x2, calls x2() function active list, arguments. However, value assigned , obj$x2 <- 50, function called right-side value argument, x2(50). See makeActiveBinding information. public private lists contain items reference semantics (example, environment), items shared across instances class. avoid , add entry item NULL initial value, initialize method, instantiate object assign .","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"the-print-method","dir":"Reference","previous_headings":"","what":"The print method","title":"Create an R6 reference object generator — R6Class","text":"R6 object generators R6 objects default print method show screen: simply list members parameters (e.g. lock_objects, portable, etc., see ) object. default print method R6 objects can redefined, supplying public print method. (print members functions ignored.) method automatically called whenever object printed, e.g. object's name typed command prompt, print(obj) called. can also called directly via obj$print(). extra arguments print(obj, ...) call passed obj$print(...) method.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"portable-and-non-portable-classes","dir":"Reference","previous_headings":"","what":"Portable and non-portable classes","title":"Create an R6 reference object generator — R6Class","text":"R6 classes portable (default), can inherited across packages without complication. However, portable mode, members must accessed self private, self$x private$y. used non-portable mode, R6 classes behave like reference classes: inheritance across packages work well, self private necessary accessing fields.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"cloning-objects","dir":"Reference","previous_headings":"","what":"Cloning objects","title":"Create an R6 reference object generator — R6Class","text":"R6 objects method named clone default. disable , use cloneable=FALSE. clone method present slightly increase memory footprint R6 objects, since method shared across R6 objects, memory use negligible. default, calling x$clone() R6 object result shallow clone. , fields reference semantics (environments, R6, reference class objects), copied; instead, clone object field simply refers object. make deep copy, can use x$clone(deep=TRUE). option, fields R6 objects also cloned; however, environments reference class objects . want different deep copying behavior, can supply private method called deep_clone. method called field object, two arguments: name, name field, value, value. Whatever method returns used value field new clone object. can write deep_clone method makes copies specific fields, whether environments, R6 objects, reference class objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"s-details","dir":"Reference","previous_headings":"","what":"S3 details","title":"Create an R6 reference object generator — R6Class","text":"Normally public environment two classes: one supplied classname argument, \"R6\". possible get public environment classes, using class=FALSE. result faster access speeds avoiding class-based dispatch $. benefit negligible cases. class subclass another, object classes classname, superclass's classname, \"R6\" primary difference behavior class=FALSE , without class attribute, possible use S3 methods objects. , example, pretty printing (print.R6Class) used.","code":""},{"path":"https://r6.r-lib.org/dev/reference/R6Class.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create an R6 reference object generator — R6Class","text":"","code":"# A queue --------------------------------------------------------- Queue <- R6Class(\"Queue\", public = list( initialize = function(...) { for (item in list(...)) { self$add(item) } }, add = function(x) { private$queue <- c(private$queue, list(x)) invisible(self) }, remove = function() { if (private$length() == 0) return(NULL) # Can use private$queue for explicit access head <- private$queue[[1]] private$queue <- private$queue[-1] head } ), private = list( queue = list(), length = function() base::length(private$queue) ) ) q <- Queue$new(5, 6, \"foo\") # Add and remove items q$add(\"something\") q$add(\"another thing\") q$add(17) q$remove() #> [1] 5 #> [1] 5 q$remove() #> [1] 6 #> [1] 6 # Private members can't be accessed directly q$queue #> NULL #> NULL # q$length() #> Error: attempt to apply non-function # add() returns self, so it can be chained q$add(10)$add(11)$add(12) # remove() returns the value removed, so it's not chainable q$remove() #> [1] \"foo\" #> [1] \"foo\" q$remove() #> [1] \"something\" #> [1] \"something\" q$remove() #> [1] \"another thing\" #> [1] \"another thing\" q$remove() #> [1] 17 #> [1] 17 # Active bindings ------------------------------------------------- Numbers <- R6Class(\"Numbers\", public = list( x = 100 ), active = list( x2 = function(value) { if (missing(value)) return(self$x * 2) else self$x <- value/2 }, rand = function() rnorm(1) ) ) n <- Numbers$new() n$x #> [1] 100 #> [1] 100 n$x2 #> [1] 200 #> [1] 200 n$x2 <- 1000 n$x #> [1] 500 #> [1] 500 # If the function takes no arguments, it's not possible to use it with <-: n$rand #> [1] -1.400044 #> [1] 0.2648 n$rand #> [1] 0.2553171 #> [1] 2.171 # n$rand <- 3 #> Error: unused argument (quote(3)) # Inheritance ----------------------------------------------------- # Note that this isn't very efficient - it's just for illustrating inheritance. HistoryQueue <- R6Class(\"HistoryQueue\", inherit = Queue, public = list( show = function() { cat(\"Next item is at index\", private$head_idx + 1, \"\\n\") for (i in seq_along(private$queue)) { cat(i, \": \", private$queue[[i]], \"\\n\", sep = \"\") } }, remove = function() { if (private$length() - private$head_idx == 0) return(NULL) private$head_idx <<- private$head_idx + 1 private$queue[[private$head_idx]] } ), private = list( head_idx = 0 ) ) hq <- HistoryQueue$new(5, 6, \"foo\") hq$show() #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo #> Next item is at index 1 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 5 #> [1] 5 hq$show() #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo #> Next item is at index 2 #> 1: 5 #> 2: 6 #> 3: foo hq$remove() #> [1] 6 #> [1] 6 # Calling superclass methods with super$ -------------------------- CountingQueue <- R6Class(\"CountingQueue\", inherit = Queue, public = list( add = function(x) { private$total <<- private$total + 1 super$add(x) }, get_total = function() private$total ), private = list( total = 0 ) ) cq <- CountingQueue$new(\"x\", \"y\") cq$get_total() #> [1] 2 #> [1] 2 cq$add(\"z\") cq$remove() #> [1] \"x\" #> [1] \"x\" cq$remove() #> [1] \"y\" #> [1] \"y\" cq$get_total() #> [1] 3 #> [1] 3 # Non-portable classes -------------------------------------------- # By default, R6 classes are portable, which means they can be inherited # across different packages. Portable classes require using self$ and # private$ to access members. # When used in non-portable mode, members can be accessed without self$, # and assignments can be made with <<-. NP <- R6Class(\"NP\", portable = FALSE, public = list( x = NA, getx = function() x, setx = function(value) x <<- value ) ) np <- NP$new() np$setx(10) np$getx() #> [1] 10 #> [1] 10 # Setting new values ---------------------------------------------- # It is possible to add new members to the class after it has been created, # by using the $set() method on the generator. Simple <- R6Class(\"Simple\", public = list( x = 1, getx = function() self$x ) ) Simple$set(\"public\", \"getx2\", function() self$x*2) # Use overwrite = TRUE to overwrite existing values Simple$set(\"public\", \"x\", 10, overwrite = TRUE) s <- Simple$new() s$x #> [1] 10 s$getx2() #> [1] 20 # Cloning objects ------------------------------------------------- a <- Queue$new(5, 6) a$remove() #> [1] 5 #> [1] 5 # Clone a. New object gets a's state. b <- a$clone() # Can add to each queue separately now. a$add(10) b$add(20) a$remove() #> [1] 6 #> [1] 6 a$remove() #> [1] 10 #> [1] 10 b$remove() #> [1] 6 #> [1] 6 b$remove() #> [1] 20 #> [1] 20 # Deep clones ----------------------------------------------------- Simple <- R6Class(\"Simple\", public = list( x = NULL, initialize = function(val) self$x <- val ) ) Cloner <- R6Class(\"Cloner\", public = list( s = NULL, y = 1, initialize = function() self$s <- Simple$new(1) ) ) a <- Cloner$new() b <- a$clone() c <- a$clone(deep = TRUE) # Modify a a$s$x <- 2 a$y <- 2 # b is a shallow clone. b$s is the same as a$s because they are R6 objects. b$s$x #> [1] 2 #> [1] 2 # But a$y and b$y are different, because y is just a value. b$y #> [1] 1 #> [1] 1 # c is a deep clone, so c$s is not the same as a$s. c$s$x #> [1] 1 #> [1] 1 c$y #> [1] 1 #> [1] 1 # Deep clones with custom deep_clone method ----------------------- CustomCloner <- R6Class(\"CustomCloner\", public = list( e = NULL, s1 = NULL, s2 = NULL, s3 = NULL, initialize = function() { self$e <- new.env(parent = emptyenv()) self$e$x <- 1 self$s1 <- Simple$new(1) self$s2 <- Simple$new(1) self$s3 <- Simple$new(1) } ), private = list( # When x$clone(deep=TRUE) is called, the deep_clone gets invoked once for # each field, with the name and value. deep_clone = function(name, value) { if (name == \"e\") { # e1 is an environment, so use this quick way of copying list2env(as.list.environment(value, all.names = TRUE), parent = emptyenv()) } else if (name %in% c(\"s1\", \"s2\")) { # s1 and s2 are R6 objects which we can clone value$clone() } else { # For everything else, just return it. This results in a shallow # copy of s3. value } } ) ) a <- CustomCloner$new() b <- a$clone(deep = TRUE) # Change some values in a's fields a$e$x <- 2 a$s1$x <- 3 a$s2$x <- 4 a$s3$x <- 5 # b has copies of e, s1, and s2, but shares the same s3 b$e$x #> [1] 1 #> [1] 1 b$s1$x #> [1] 1 #> [1] 1 b$s2$x #> [1] 1 #> [1] 1 b$s3$x #> [1] 5 #> [1] 5 # Debugging ------------------------------------------------------- if (FALSE) { # \\dontrun{ # This will enable debugging the getx() method for objects of the 'Simple' # class that are instantiated in the future. Simple$debug(\"getx\") s <- Simple$new() s$getx() # Disable debugging for future instances: Simple$undebug(\"getx\") s <- Simple$new() s$getx() # To enable and disable debugging for a method in a single instance of an # R6 object (this will not affect other objects): s <- Simple$new() debug(s$getx) s$getx() undebug(s$getx) } # }"},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":null,"dir":"Reference","previous_headings":"","what":"Create a list from an R6 object — as.list.R6","title":"Create a list from an R6 object — as.list.R6","text":"returns list public members object. simply calls .list.environment.","code":""},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create a list from an R6 object — as.list.R6","text":"","code":"# S3 method for class 'R6' as.list(x, ...)"},{"path":"https://r6.r-lib.org/dev/reference/as.list.R6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create a list from an R6 object — as.list.R6","text":"x R6 object. ... arguments, ignored.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":null,"dir":"Reference","previous_headings":"","what":"Is an object an R6 Class Generator or Object? — is.R6","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"Checks R6 class generators R6 objects.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"","code":"is.R6(x) is.R6Class(x)"},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"x object.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"logical value. .R6Class returns TRUE input R6 class generator FALSE otherwise. .R6 returns TRUE input R6 object FALSE otherwise.","code":""},{"path":"https://r6.r-lib.org/dev/reference/is.R6.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Is an object an R6 Class Generator or Object? — is.R6","text":"","code":"class_generator <- R6Class() object <- class_generator$new() is.R6Class(class_generator) #> [1] TRUE is.R6(class_generator) #> [1] FALSE is.R6Class(object) #> [1] FALSE is.R6(object) #> [1] TRUE"},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-2519000","dir":"Changelog","previous_headings":"","what":"R6 2.5.1.9000","title":"R6 2.5.1.9000","text":"R6 methods longer recommends initialize .__enclos_env__ autocomplete. deprecated lock parameter removed. R6Class() now prints message finalize method public instead private. superclass cloneable, subclasses cloneable (@IndrajeetPatil, #247). Fixed #253: Errors occur deep cloning member object environment class $ method. Deep cloning now uses get0() instead $. R6 now requires R >= 3.2. (@zeehio, #274)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-251","dir":"Changelog","previous_headings":"","what":"R6 2.5.1","title":"R6 2.5.1","text":"CRAN release: 2021-08-19 Removed unused packages Suggests section DESCRIPTION.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-250","dir":"Changelog","previous_headings":"","what":"R6 2.5.0","title":"R6 2.5.0","text":"CRAN release: 2020-10-28 Resolved #195: Slightly clearer message error initialize() method. Fixed #214: non-portable object inheritance cloned, methods inherited (overridden) wrong environment. (#215, #217) Printing R6 objects, longer includes .__active__.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-241","dir":"Changelog","previous_headings":"","what":"R6 2.4.1","title":"R6 2.4.1","text":"CRAN release: 2019-11-12 Cloning active bindings previously relied buggy behavior .list.environment(), return active binding’s function definition rather value invoking function. R 4.0, behavior chang returns value. R6 now longer relies buggy behavior. (#192)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-240","dir":"Changelog","previous_headings":"","what":"R6 2.4.0","title":"R6 2.4.0","text":"CRAN release: 2019-02-14 Fixed #146: Finalizers can now private methods. (#181) Fixed #167: Finalizers now run cloned objects. (#180)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-230","dir":"Changelog","previous_headings":"","what":"R6 2.3.0","title":"R6 2.3.0","text":"CRAN release: 2018-10-04 Vignettes longer included part source package large size. Documentation now https://r6.r-lib.org/. Fixed #125: print.R6 method now always returns object passed . Fixed #155: cases, cloned object’s methods refer wrong super object. (#156) Fixed #94, #133: cloning object contained function method, corresponding function new object environment changed, though method. Now longer changed environment. (#156) Fixed #121: finalize method present, prevent objects passed initialize getting GC’d. Fixed #158: $set method R6 generator object given value NULL, previously removed named item. Now adds named item value NULL. Fixed #159: Printing R6 object containing large vector slow.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-222","dir":"Changelog","previous_headings":"","what":"R6 2.2.2","title":"R6 2.2.2","text":"CRAN release: 2017-06-17 Fixed #108: object super object active binding super object cloned, new object’s super object get active binding – normal function. Fixed #119: class two levels inheritance, instance class’s super object contain methods incorrect enclosing environment.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-221","dir":"Changelog","previous_headings":"","what":"R6 2.2.1","title":"R6 2.2.1","text":"CRAN release: 2017-05-10 Vignettes now try use microbenchmark package present. package builds properly platforms microbenchmark present, like Solaris. Fixed ending position trim().","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-220","dir":"Changelog","previous_headings":"","what":"R6 2.2.0","title":"R6 2.2.0","text":"CRAN release: 2016-10-05 Classes can define finalizers explicitly, defining public finalize method. (#92, #93) Added function .R6() .R6Class(). (#95) Fixed #96: R6 now avoids using $ [[ class assigned object. allows user provide methods $ [[ without causing problems R6’s operation.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-213","dir":"Changelog","previous_headings":"","what":"R6 2.1.3","title":"R6 2.1.3","text":"CRAN release: 2016-08-19 plot S3 method R6 objects call $plot object present. (#77) Fixed printing members R6 objects. (#88) Fixed deep cloning non-portable classes. (#85) Added .list.R6 method. (#91)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-212","dir":"Changelog","previous_headings":"","what":"R6 2.1.2","title":"R6 2.1.2","text":"CRAN release: 2016-01-26 Implemented format.R6() format.R6ClassGenerator, former calls public format method defined. might change functionality existing classes define public format method intended purposes (#73. Thanks Kirill Müller) Functions shown interface print format, limited one line (#76. Thanks Kirill Müller) R6 objects generators print class inherit . (#67)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-211","dir":"Changelog","previous_headings":"","what":"R6 2.1.1","title":"R6 2.1.1","text":"CRAN release: 2015-08-19 Fixed bug printing R6 objects [[ method defined class. (#70) Fixed cloning objects call super method accesses private. (#72)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-210","dir":"Changelog","previous_headings":"","what":"R6 2.1.0","title":"R6 2.1.0","text":"CRAN release: 2015-07-04 Added support making clones R6 objects clone() method R6 objects. deep=TRUE option allows making clones copies fields reference semantics (like R6 objects). (#27) Allow adding public private members public private members begin . (#51) Previously, R6 object printed, accessed (called) active bindings. Now simply reports field active binding. (#37, #38. Thanks Oscar de Lama) Printing private members now works correctly portable R6 objects. (#26) ‘lock’ argument renamed ‘lock_objects’. Also, new argument, ‘lock_class’, can prevent changes class. (#52) Fixed printing NULL fields.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-201","dir":"Changelog","previous_headings":"","what":"R6 2.0.1","title":"R6 2.0.1","text":"CRAN release: 2014-10-29 superclass validated object instantiation, class creation. Added debug undebug methods generator object.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-20","dir":"Changelog","previous_headings":"","what":"R6 2.0","title":"R6 2.0","text":"CRAN release: 2014-08-19 [BREAKING CHANGE] Added portable option, allows inheritance across different package namespaces, made default. Added set() method class generator object, new fields methods can added generator created. functions involved instantiating objects encapsulated environment separate R6 namespace. means generator created one version R6, saved, restored new R session different version R6, shouldn’t problems compatibility. Methods locked can’t changed. (Fixes #19) Inheritance superclasses dynamic; instead reading superclass class created, happens time object instantiated. (Fixes #12) Added trailing newline printing R6 objects. (Thanks Gabor Csardi) print method R6 objects can redefined. (Thanks Gabor Csardi)","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-101","dir":"Changelog","previous_headings":"","what":"R6 1.0.1","title":"R6 1.0.1","text":"CRAN release: 2014-07-17 First release CRAN. Removed pryr suggested packages.","code":""},{"path":"https://r6.r-lib.org/dev/news/index.html","id":"r6-10","dir":"Changelog","previous_headings":"","what":"R6 1.0","title":"R6 1.0","text":"First release","code":""}] diff --git a/dev/sitemap.xml b/dev/sitemap.xml index 71675ab..044c61c 100644 --- a/dev/sitemap.xml +++ b/dev/sitemap.xml @@ -1,5 +1,6 @@ https://r6.r-lib.org/dev/LICENSE-text.html +https://r6.r-lib.org/dev/LICENSE.html https://r6.r-lib.org/dev/articles/Debugging.html https://r6.r-lib.org/dev/articles/Introduction.html https://r6.r-lib.org/dev/articles/Performance.html