[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] [ernie/master 2/2] Add Servlet-based prototype to dynamically generate graphs.
Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date: Thu, 22 Apr 2010 15:43:56 +0200
Subject: Add Servlet-based prototype to dynamically generate graphs.
Commit: 0606ead115f5f07ddef94c2300e0896856052624
---
.gitignore | 6 +
R/consensus.R | 48 ++++
build.xml | 30 ++
doc/tomcat.txt | 65 +++++
etc/web.xml | 22 ++
lib/servlet-api.jar | Bin 0 -> 97501 bytes
src/org/torproject/ernie/web/ImageServlet.java | 91 ++++++
.../torproject/ernie/web/NetworkSizeServlet.java | 294 ++++++++++++++++++++
8 files changed, 556 insertions(+), 0 deletions(-)
create mode 100755 R/consensus.R
create mode 100644 doc/tomcat.txt
create mode 100644 etc/web.xml
create mode 100644 lib/servlet-api.jar
create mode 100644 src/org/torproject/ernie/web/ImageServlet.java
create mode 100644 src/org/torproject/ernie/web/NetworkSizeServlet.java
diff --git a/.gitignore b/.gitignore
index 9390d7f..87ad427 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,9 @@ doc/*.log
# Generated websites
website/consensus-health*.html
+# Temporary directory for generating web archive
+dist/
+
+# Generated web archive
+ernie.war
+
diff --git a/R/consensus.R b/R/consensus.R
new file mode 100755
index 0000000..e07ffb3
--- /dev/null
+++ b/R/consensus.R
@@ -0,0 +1,48 @@
+options(warn = -1)
+suppressPackageStartupMessages(library("ggplot2"))
+
+args <- commandArgs()
+
+days <- args[4]
+fname <- args[5]
+
+consensuses <- read.csv("/tmp/consensus-stats", header = TRUE,
+ stringsAsFactors = FALSE);
+consensuses <- consensuses[1:length(consensuses$date)-1,]
+
+plot_consensus <- function(directory, filename, title, limits, rows, breaks,
+ labels) {
+ c <- melt(consensuses[rows], id = "date")
+ ggplot(c, aes(x = as.Date(date, "%Y-%m-%d"), y = value,
+ colour = variable)) + geom_line() +
+ scale_x_date(name = "", limits = limits) +
+ scale_y_continuous(name = "",
+ limits = c(0, max(c$value, na.rm = TRUE))) +
+ scale_colour_hue("", breaks = breaks, labels = labels) +
+ opts(title = title)
+ ggsave(filename = filename,
+ width = 8, height = 5, dpi = 72)
+}
+
+plot_pastdays <- function(directory, filenamePart, titlePart, days, rows,
+ breaks, labels) {
+ for (day in days) {
+ end <- Sys.Date()
+ start <- seq(from = end, length = 2, by = paste("-", day, " days",
+ sep = ""))[2]
+ plot_consensus(directory, filenamePart,
+ paste(titlePart, "(past", day, "days)\n"), c(start, end),
+ rows, breaks, labels)
+ }
+}
+
+plot_current <- function(directory, filenamePart, titlePart, rows, breaks,
+ labels) {
+ plot_pastdays(directory, filenamePart, titlePart, as.numeric(days), rows,
+ breaks, labels)
+}
+
+plot_current("", fname,
+ "Number of relays and bridges", c(1, 5, 7),
+ c("running", "brunning"), c("Relays", "Bridges"))
+
diff --git a/build.xml b/build.xml
index a6c83f2..2f0207c 100644
--- a/build.xml
+++ b/build.xml
@@ -24,5 +24,35 @@
<fileset dir="${sources}/" includes="**/*.java" />
</javadoc>
</target>
+
+ <!-- This target is a hack -->
+ <target name="tomcat">
+ <mkdir dir="dist"/>
+ <mkdir dir="dist/WEB-INF"/>
+ <mkdir dir="dist/WEB-INF/classes"/>
+ <javac srcdir="src/org/torproject/ernie"
+ destdir="dist/WEB-INF/classes"
+ debug="true" debuglevel="lines,source"
+ classpath="lib/commons-codec-1.4.jar;lib/commons-compress-1.0.jar;lib/servlet-api.jar"/>
+ <copy todir="dist/WEB-INF" file="etc/web.xml"/>
+ <copy todir="dist/WEB-INF" file="R/consensus.R"/>
+<!-- We could copy all R files, but we don't need them.
+ <copy todir="dist/WEB-INF">
+ <fileset dir="R"/>
+ </copy>-->
+<!-- We could copy static files (HTML, JSP), too, but right now we don't
+ have any such files.
+ <copy todir="dist">
+ <fileset dir="web"/>
+ </copy>
+-->
+<!-- We could copy libraries (JDBC Postgres driver, Commons, etc.), too,
+ but right now we don't require libraries
+ <copy todir="dist/WEB-INF/lib">
+ <fileset dir="lib"/>
+ </copy>-->
+ <jar jarfile="ernie.war" basedir="dist"/>
+ </target>
+
</project>
diff --git a/doc/tomcat.txt b/doc/tomcat.txt
new file mode 100644
index 0000000..9c4c241
--- /dev/null
+++ b/doc/tomcat.txt
@@ -0,0 +1,65 @@
+Dynamic graphs prototype based on Apache Tomcat 5.5
+===================================================
+
+ERNIE lacks a way to dynamically generate graphs based on user input. It
+would be desirable, e.g., to change the displayed date interval or further
+break down data by certain criteria. These functions cannot be implemented
+(easily) with the current approach of hourly generated graphs and a static
+website.
+
+This prototype uses Java Servlets deployed in a Tomcat web container in
+combination with an external R process to generate graphs on demand. Note
+that the prototype is still very limited in functionality.
+
+
+Development
+-----------
+
+The following files are relevant for developing the prototype:
+
+- src/org/torproject/ernie/web/NetworkSizeServlet.java creates the web
+ page containing a generated graph and controls for customization.
+- src/org/torproject/ernie/web/ImageServlet.java generates and returns
+ a graph as PNG file.
+- R/consensus.R contains the R code for generating a network size graph
+ with configurable date interval length.
+- lib/servlet-api.jar contains the class files required for compiling
+ servlets (copied from remote Tomcat 5.5 installation).
+- etc/web.xml is the deployment descriptor.
+- dist/ is the temporary directory used for generating the web archive.
+- build.xml has a "tomcat" target that can be used to compile and package
+ the prototype for deployment.
+- doc/tomcat.txt is this file that should be kept updated while the
+ prototype evolves (and should turn into a real documentation once the
+ prototype is ready for prime time).
+
+
+Deployment
+----------
+
+Deploying the prototype is straightforward and requires minimal changes on
+the target system.
+
+- /var/lib/tomcat5.5/webapps/ on the target system should be writable for
+ the developer.
+- A recent stats/consensus-stats file needs to be uploaded to /tmp/ on the
+ target system.
+
+Actual deployment consists of two steps: packaging a web archive and
+uploading it to the target system:
+
+ $ ant tomcat && scp ernie.war <server>:/var/lib/tomcat5.5/webapps/
+
+(It is assumed here that Tomcat auto-deploys web applications in its
+webapps/ directory, which it does in the default Debian configuration.)
+
+The example web page is then available under
+
+ http://<server>:<port>/ernie/networksize.html
+
+The included PNG file can also be requested directly, with or without
+parameters
+
+ http://<server>:<port>/ernie/graphs/networksize.png
+ http://<server>:<port>/ernie/graphs/networksize.png?xaxis=180d
+
diff --git a/etc/web.xml b/etc/web.xml
new file mode 100644
index 0000000..0445b40
--- /dev/null
+++ b/etc/web.xml
@@ -0,0 +1,22 @@
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+ <servlet>
+ <servlet-name>NetworkSize</servlet-name>
+ <servlet-class>org.torproject.ernie.web.NetworkSizeServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>NetworkSize</servlet-name>
+ <url-pattern>/networksize.html</url-pattern>
+ </servlet-mapping>
+ <servlet>
+ <servlet-name>Image</servlet-name>
+ <servlet-class>org.torproject.ernie.web.ImageServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Image</servlet-name>
+ <url-pattern>/graphs/*</url-pattern>
+ </servlet-mapping>
+</web-app>
+
diff --git a/lib/servlet-api.jar b/lib/servlet-api.jar
new file mode 100644
index 0000000000000000000000000000000000000000..0480f079f77114b677c645fbb559a6524ce70daa
GIT binary patch
literal 97501
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	}49}|fWA7W$)JtofdA@>?<
zEqH4CF1}%7m09>MRS|EsUwHU^e|DcNf1T5n{d-<8UpOQ-9#CjU{4)C%4ay5FdT-$B
z7F)mA5{IhmA*&)fVw6)o#oT%!&ceNNN^efsPF%fw;gs2IWMAv=xy6=v<UR>H>eTRw
zj%;J|$2G2mN#5Pkmu0Qb68&R&j?IHaoe+x&J!`O*IG1cp9;AzE(cfCpn^nM1^AGwl
zWJ}M#;al0PGjN**wpHCtN>8w6&xjZ!qye0TtfjT^z2?0MTG0LFLwil{RG*|1TP}w=
zm7n>nq>*{-g8S;3iQSd}^n{m~8k@0a*jx$A!duSF)V)RQ93yhRj@K@F*P=nub52H5
zitA7v+lF>a%!Ds81u|Hk7IyJitZ=PM<yYwPl*5^7FS;R>)X26AExenCGC1Hj(*`na
z`rMfZ0jc~qW4g;?KdwHpCH1Q*&!>5PB&)pivSn+RtgBk3EfhvlA*?pa3{bv`=C2m6
z;H#AV(N8+D1S77@j!6+<JR!9PpT@<efzzZo%_>XH8fYbJONm8)<+WDhY3i^e7kjXy
ziROSt<Zc!uHtnMRIB{uYnl46oM*{NJv?u{Km0*(D^M`}r6!NKM_JK*InJe6?q!0Jt
zW;;9PW63E4;*8@*j|d*>`j>b62sgB;uXR3Xe^Wu~gbKS!aoZ75%~}Hw?bZk*t`^wp
z(9Ak)G%Frm_~;93zDb)wxz-R+7oxMB;!Iw3Do7=9{}qa7;eK0wIa2+{;7mE<WV6=p
zVtXYSu0`G&$%@rebPyaYK@Wjf31VrrN?G+u+E=g-p+{qi>eK-@qKa-kl2kn#kedCg
zvj|gl!{~uD+kd1^s46pb09am9M%&C!0w_!VQP*Rio#Ki0!g>6%e8C-+D3JJ|ZeTlu
zzAoB+0s21byT>F6zAqu3Aqj!%GXVO5rO9v#yK|jJ#cOq{-Os2YoKQ<-f!=xfX}_y*
z$1I?fg0?ukm~?6q%Up+U3(v!YXRu<+hpc{2(j%hx!(g<Xc27R$ox<!)@#I)cm(--j
za}~r^{<N3LZmp!vCU`2}wgaEdlQk7pQLlG1sQe1p!!-a1fw%TSL~K)6a#D1P2?nrd
zHb_x|KR$2x@ySy;)}eW3sH4{wtO^Tq3IXbK06@V<h9^%-MJEdFUUA#+TKm%6gI)Pe
zFK*<M))NTF!i;lu1%YJ)W#*M5Jm4L@zgduW5f<j!#t4<)r7BG?_1U>RiNG|y8u=xx
zMq^k}NR|n=Ep~cQn04X|P)+jLS&bPXFBSK`WP8FMYL3@*!3p9MI<&s!>g!|3V2Fpe
za`IilUp)b%7T2bvDdqe?rVeChL9@T@prx?$kjf#WP1q#d=Qc>!O)O)Jqakx&M-4Hh
z2$Dv=QPeaHd>Um?HupCE@U|;<bLJCJdswgZVN+H^>%_y%s~*DLcJH~Wdkxm&?&KPB
z+}dDoEF!z9{uq?Z={Vy9Z9PM5L1GO0T|gZ&$0-M9H%iiqGwrN_5=Bgm9rcZF=5e<Y
zv~ox-K0tAy3?l=2AnIkT6g_(kqIu%Cf}vYAHHeY+zD^&nA4EgphlpXzRSzkt*DEGf
zUn|E+)b;{+RH<hFbmXpOcV(Cxs5ohFFM`$*dqe&K*nL}0DXs7&qGCrumP&{zYK0L7
zKaw|0CI<F2H73yt;syunt~V`7i$Wh)j1lFM?#!u}E^AP1;8gMGNDE+2V8{ICi#69B
z(!@7Ub=#kLf-=X}r)%bv8T-e;IE4(DJ6QQ@01895LolD-jIou4zo`EO_Uu?#;gD@b
z{F7ZyoXWc(uLRdp^yS6nZVJkUY(fpEGnC_lonVp7fqnQ@yIB^cY54Va2d*z}iqIuT
zYQhP^X6F9e6+2hEyF>}xcDFCrGn4H|5z({0)of;6byjJ2(y}s|=U=orZA46G45U#e
zg8-B2gVwL{*gd^T(p0{-FXMvvtVlEI+ai1LG{Q9*q%-`Hn@tzTYg_X4b{DtCr<Wp%
z&?ytrV2?x*+{3_aZIZhngVReup=3n+)~dRxt9^8Mft#m#d7+kh_t|22Ynr<z<>ubJ
zdS!lBrswyve_p#b<>mxWRr2+1NQFu=_6Re(Z+DSJ(vo}U5Nn0gS7Y*Bu;jo~YqETI
zo150C__VY+!k1U$9LJ}<xlrcDez>f+v{_~c^pR7Oyv6xux9tN&a#(rX7o7JO|Gzc`
zt&Bgq@!<dfnm7Rf82*1&wX3m#?tgNA&Hr@=|M}Jo|Hrr1+;-e#LGms6fl_*nI}$0l
zDuP$lJ;*WOtab=b6qzZ`mLUU<j|&PSR11iz`n<Gt1&qrR`q)f&I(dj20;%g<`@Tj8
z;QhY$O0J_LTvaHZ{rKG1$qi>#sFy;Y{kWagf%%>Py{~(H>fEmzU5lS!Y1g8LesQzC
z^>k@LvC6uK_(`vDuRm$mqf<&B=>o9eR=blBAzUUjxsyMtDnnn32mFlPpT-OIy!s<^
zwweD^=nE7aO}QRnt5yM}VgX28Wa5|(K{`Vek1AC{tx!oF&lL@#IcXqnMIDbI_GKbo
zrrxj568et$#r%58pp)12W~z>|-fz~VQ!6Ob5JIUNg~TKqt0NsFBU4Hy7>BOfC5xQ@
zcXBwlcuK#p5%v&M4EY{&EbZ>EBKu*aR-anF+=eqP^xTb~c_mXGlBD*Lg9;j~GW)vT
z=nse-nyk7nmvN$bE;qg`*&^WF8$J8y`}8N%i~iTm_S=({1EaC+PW`{%@MvP=c&6gp
zIVg7S&&UrqJ2xIZU<44$0oSCw4}wAgl5iAOCe%EFUQHAq2XcJYB*aTHtwaxkRXzYG
zg;l6Ap{{sz$r6DMj1p3N0w_QKtqtWBY^YzQBQCz#+<gQSfI&s>Gxu|CZrlZ+<!7O;
zZg0jymk%8u6)Kl**g;Zl5ExOo#WvYbaA=2=Aiyw$Sd0Sq$CDaFXH*)_Ug%{t0DCQU
zhS-oq(J*v!ZOm|1s`!1?ujx4QTvpgMj*glmi%IhN3)d{u>t|@5(gKETKdx9~D2T=f
zMrD~$&yMTJ&-0yatQ`~ns=<qV<QKG=uJ6`w8~y+iF2J&P%d1;cFYkt@fmpPLdHO8R
z?&X+4uz67IsFg;^RdbX>F>40`6}Mg@GZgq$Xty^DXi)5;K(WI5@GVL#_!W&T3N~3V
zRvpn&640If%iyc*OAgH1ryW*|AchP^{k#hW0gg+|TnqjNdn3u}US6;m5+bS|M9MLg
zp0-uXI0+6n#&<iyJfm{BhLsw%69@|^I4D^u{lBmSkb5V~q5Gdg#{GAI?x2HYO6XZt
zurrdgryK$sdqo^53&!XKMl=Kz5RQ8Zewdbg*kwQ%=(xV{96k&{K=*x7_E2xm<fDhN
z^<u6Vl8I1@dSrb8(uK6HT%PthQ?Hz*y_7_Hq4Wb85OW|dzOxBZ)1DDC(wqLpTMvpt
zl0@NRv$&=N8&<y#zvz|F{4q5v3ZoczBR+9}!8;Z}M!<$x&=b`3IU50&iZM5l_M9>o
z?hOM{KTHe?TB1Op92<I<8gi<>U)6v>ovi6bt%@z$(INmWqpqNOt)J91Lb@PI2_pVo
z6G=+&t_gOer{vU8!6aM7;$;6}up7@BzS3q|{jooU4m{y?06gK7YmZvhVV$(|WeA~O
zub5452piD7K;U+><v?+gZ(m3URA1k3M?>dWy;Ac;j(4ZQe(YobFE~$tZKM6CMP#9X
zUqJPSJm@nUqQ)Xx2mn=M?lAqVzfyiv!$1r%<!kr^!W+vpIktHo>|(kQerRreYynQS
z<M>a2V=WrtTnY4Y%lv{b$i*T8kDg(?9SS>F$ZmhZV$A`&-0)Q0Utk={)?ec#qC44l
zRAVMr;V0o^@!a#>14_i&ou5yOQz+0NYV(l>e*34m6x;jBLhdaiT)$CXo;r79V@6F6
zcRjlSsAR^BXye<JB2kex=v3uMI&5pq{NJZ&&OqzOkec%$Nn?zHCj>`GgDY)<@{2*=
zJ6f^OGf`1?B1nSdf${`qS%b!J8R!UX03YOTR1oXY)#f<$29Y3g<!m%_u*djx>63sT
z6snX#57a9eN4pK=QQM+}qAG4zw(FG3p;0J;FCbQ)baS(!LlYO#iDaGsEdBKk_0$!H
zUn9#=42B(p-m%=62i(+v5==Ak)@+(6h^9xHgOSLqXh46fw7LfeM2c@ILrv{ixB+m}
zR;cKQSvt2m#9)_b@p8bdk512CfX1=OgP4<Smf;T!*C28g$ft8^RO&ABtCAFRcZXz8
zDyOYWEJwFAr#e!d*gI1g=_a^)8(WVcb;IVX#c@svM!l>)SoDD%oU0fjb2sZ=9M?S-
zRV`Tp&{Jm*6flAuv)BONvxZU9G<AJ-KG$+*J19n1@+;5mYnSK?5~HfG<fh*iW3Bs&
z<%PTLR^YLOfS=!kmSU(z9ZG}^!GXIG#cq9;v?Q)e8~KUcP%;I}++RV$W{}i}$nVwR
zo1YdED$}m((JTlEZ#?gnpKKX|W`^s==`D=+ua5hZwErKJy<@Xz;kKl?Y@2)8wr$(C
zZQHhO+qSWnZQDleQxzTE_eMoW)jyaY-Wf4+jLdxEjL~1@LkWkm1O#${dHOSftPIxv
zWK{88@D-XvWi2z7g6JkR0HzFfWxfJ2b{@a*uND9m9=MmP2=1AiY|pa(t=y>6Faj<*
zHfLQQKx}SBphyMX8HGiymIF4gKP3$NUQ4%`r9qg8Zy9WXZIwq06aYC?^^G!9ln@C(
zkb??5Ac<jRSzu@)j&B&XBU`1xz~R;*YrwT0M}Oh-l`Aj+c|2zh|NaK^!+7~Z6+*Xn
zD4P4og?`a!m<ZnY-t*xLs`Ht1YsIY`D*4$^0cH{jny_c9#H#es&YrIU+ca1N#HqTU
zGi)*%DQLSUfP*to?K2?HQ=hlxJY+<dH$kAnXI2FZM`4*Et=RJ<SB)ZYb(~*NbgOC!
zRKzvH_kcIUD;=wo78f$<!TII%etm&xR818~hfn}07Mj*JQ7L_xTYwL^zDGyhshEE`
z=uwPCYlr7Q<QUz-HM>I%&^@mK(ILJ^O-=aO(j<aTFNZ@~A%U~IzEh>;EJZy%8$qLy
z+1wiK$x2q&nbI(_GBe9QgW0`P<hGkQRp*uOiYZjpjxHNBl*L8J%$nD)k|cywA-V-k
z0Rb*$+!XY{dhL_UA=zq=dDRGnpDIV+;|QFO<!i2Jx$DbbNUT7_(L7~W!tb`&vIkyP
zr%PvU9jLE^vpYW51h^^awo)&~9QV-|B!NomHot*Q?3f8ok=_+n$Pkk0Sp}cta^t(U
z6Yz>k`dct?PfKO@^wK>~-^G1*d2PWqu-Smiohym%gHD0n(6r4Iczx4ROQXfE%Bw`i
zYzv?^<CTvKtBtV1#DyF}Q9mhSS<639qe@AOOs#vyO+6MIri2TbL<1X|wF3s2T2>3h
zr2OaYx}<2&?11SsNeeNvF8P``Q|q3su*PgGmQ1B7)Iq(XMlxGwTjh}K6vxd$A0{l*
zPT^sHBJ!c9oO?;;Ps>bgxX~P<bG!9?hG?cjH?pr4E}4*VA2jE`&bZOg6Dpy(ai4Bn
zdKoX#v1oZ+(i0<}O3K!v?7u(XR~sb428XBhk^o(n>1h&;n5u3}L*#(<dTM0o?M7|X
zDQX)VvRSIb)Z0i_Y!n{3T}gB}36wTlU>6<g6@oZ}OZGLYOuE59romd~ew>Yuy>PWT
zstlbl45iH=%hwdfOA5<jZSp!m-pC2J3zn3ZMLBLMSMsGy-7M%1O&C@un!rsLS3{;H
zYtNGGoE)qm(~fojyk{iZMyqV($FZR8s<uL*B_cGKyMu<~zN|%=BJtGjDEs$d@1fEr
z0cr%^B80KMcg4fxL<Y7#^~Py(3mt|FZUM4)pL<=3%gQ!QE#{g>mDBkOS+}a9eEahu
zs6i?-IVn)M_Zy=~Q#D*uA7TRH<8wK$hnup1C=s_5`fMqKGVLZV?IeYwcsEP^0<Kj)
z?P4NJ=5`U{Zyw@reXbat_|=rTuxWu~HUjku^x7G_HSv;P2$k6~yV1LhM424_%Att`
zvIP+%0ShT*VNt{WEq@s0H990ad!Bxhg;PQf`?SQ>T^u-#^P$pdabgZAao5=`m?dzj
zTsvVTb`o}e1Se{HwA=R+M&KGIg?|Ks+(a9YRRSH<z(Y73LQ`0|Jl?mSlt?uLDz*X9
z<zL{a1*tEKOOqV57m3Yh3r0Lj=ffZXV}_8E)EuDmOoxO^^KL1UM5RdRxV`Pa+_q<8
z+M#X-8yOHqz%l)n$V?2*CSGBU+8Y9_hS<zm8Q`X3%l*1_E$gao2Dy+ZE}$`-1a+UO
zXvEZ?@E2OIPPSrH%6Dv?1|>z6z&o?{SOaua4&~}y5RmqBq_M!k@vc}B_O&?%W?wAY
z|4Q;amvCmIQGR?$L4GSP^RkRu^mIjc8yHCH`hs8@a7C%amEN(3Ue;tUTPw9jc*`)i
z<yr5}h$P54kg;wa9$gGzX?FJ(HLUX6VavSTYzrNZ2i0a^oyx<)oxC6v*85nrQYHzS
zN*r>G)H^I6m9Jl9dzo<bZkN~bgm($>>5%M0pW`6JQ+&49J=^#EJ8o*8|ANo#ZU{Vz
zyz;xPi0r%!-i)fbw!S{yT-$nExYdc(kh^I$sZ!gm6eJGf?ymq3Rc5`itS;1VhLN#r
z=3K1WVaW^XdA;r)`yHHmpuyHi+=@8RP}3?A%nVSD$XDbMWtmaLTpIQ3G@udI;59B7
zAdgkOFFX~!ykhEadGYA<ATo3GO9|gh<TAB0WD-1FtJj_nrs1ZxinV@AVeNk`3w#n3
z|6bsmSAYcG2=-rHmY)85*kPkx&O50HL6o?y-C*`&e~UbKZnpgn%k7mjR(77;)}H8=
zlJxF)&u->)xOVie`ac63pJw%ajoiDWu<N3%JcJzXOX#WZ>C$R_@nE3a?1JmuQDLaG
zXoKn;p<$@HZUX9@0k?b-5kYi;(Y5bK+0MGJV6S}Eazw&w=)Dc{&AmeG7v2Bj(qBdG
zwg&ppunKWqc}!~OMy+uRu;NKxiEiI&?c51yJYQy>$oJ#!cAbv<>+ZP~t!lkgZ9Z=Y
z%NFT)ra|)k!2egZIjIs1jQEeL`u4BUoc;ewZ5mlynAkf1KcaJ6Q_F306w#N|ZzR>H
z!Ao2|@o~O9K}j<axwG{sQZa}7yxO0ngV8^v!C(Ak^);&p03UL_Gu=YY#}Nl|Ehppq
zBx`e!@4H*t(3Q-QM#Xb!6aK|hy0{?Hn3L;5N2eF}tL63a@<z@N3#Ky~x5_$YYQ0+@
z+{=rveyT&iC_3zIS6C(rbPm+3YLfW?wAiI#zXwL7Qe^l}{-5MzYiIL$p{vTm1@XE9
zr8(<R>q+wq3QnQa7*wNH0i|m3hp1Rr9u15zA#V(vNDiT#Fq~MFuMeR<5sg7c;vc@1
z4eq31S9PkMyW4E;h`kTID&c!99ES@V8Zkt)H?qoqSf_8je7gI7`;Q>x^zUgtq>Kq!
zp+?t}%s9+vqZ(yWM}ELw!*~S!r#PFm_jC%zH$-Tm^Eb^l48SN7mPBanCJkXJ?XYFH
zv;pefCq0WGvE@9kX3QCLp9l^Y-yT*UtE65moE;cAyKwSk*WN+7c=@<6^<wA#eUKI_
z=V#8hk+<uD84$lfjJheuIy@0c06C$cHQ{h3pppsfLI%XKawxkRC)K-jeFl)5BF;a#
zDOXIYW|@vIAW4m^fkAn8Ed;tf0MM;@aV8IZ7|evguq@UC_7$ZD=4o%^_qG}KiriGY
zdL5qzl{+WwFp6BTPpoj=b?nAHZ-V8IA{35O>gn!<AG~RrjI$6lcI}@7&nh!ah-h)I
zdOQ)4{=i5Z>!~OC2bcq~gQeU4Mq5jzH0u&8p<~wzRvy-nTZA3MSPy$4Gb{m0YGKoT
zc5PSh>zxGm#FN0bwq^X*zqc1||E#%vr*8+oUdavLJMJ16=JhqqtFC(3pi2C+z2b*~
zlp|}UaU3u!nc@?FNc%j6R=DufIy+P#@4LNijuiicoJN^4Wz)OBeaQ^Zqk4^;RyhwB
zSsx1L=xPj4_qykzsY)Ly8mK!qL!oF}6#*9jVQ4$Zb;f#@<=~%Zo_Y}IM_;41|HiO|
zg7ySu9Aza0;<O@i*?NSqK&TzfAyS=feX<CFzk4(5zB}Fk^RZiQz;GdzGD>v(i9((H
z1v~U@=JF(ci*%8mmMCBgpF9;gMEQylX8<q+l=`l8Y@C!n9(~66RH&bZ#g%2aqlP<@
zcwMZ%Jw!b|f|*gGpZfuGKD0Mrz>aMcV}kTMxEu`vq<|_<n-!6X>Kq2v8{G+WHiMcn
z-@w9T+x5@0M^<;7TEX+0_IUQB#O@N%<Y*R9G_<%6ae4RnS~jV^*(Cd1;3oa@HJRQP
z1bI+WA!9T3-g%^=xnU%*uPg{S?arwNt;$WSk_|v$beenGlpl6Uaa6hFiuj&QT(RSw
zimZe_ayK_tyiZkS=Myg5*_INhv=#OJBopBigG94`?i%`yMJ-a1PTG-jagpiUla^ul
zmxx>e;68@}e#h{kn|RaP=ibwjk&GNEN&?4$2WkBYit$_kxVs$PE=D#t_!*?*m@{Q}
zTin#NIRQ{T;VGh{{m(iABRbOoyUNiCG;s0eHqv`)<u2*D7N8{okSIZAFYA3iyn$9?
zICrwULW>aaOH@UC=#1JpUnkJ*37Ue;gpndY`dm@vmTqD4h7(@ZQfSud_g?qcTl3e!
zn+Xw1+yp9xTftB15@QMPJ}?&H2PD;_^l@rl@+h8#?rL-L6`kDMP`Sh1DN{|Jx^6Aw
zfFd)n7>~LN%o&5DnkI}RLrGfC=sg=l2Y3oxOWWpxw@2A9fThxhL2K>-<gq~WT$Qbu
z24zS%J9Ccy-=%uRs<&9egr*3Z(LL{E3S*C`H<TXfHef~j7YoOSoinj*{@#gdD#K!g
z8dP;v{+5UqSb=R>l8M%#ZUtLbIFvQ-s9$BMiSclSwjk;j8&4B^|JF;Q;D1~ngK;Th
zrsB%*5c-<PI4^U1x!=9JRr7*?9CfEi@Xe1E7JA_QSkCyLV)L|eJ<7d{qCYI$VT(xW
zu$8`+2#FoBP&qVzoNtH%WU9=4ZdJDNhnIrE%tYC$oV6%O{V=Hj=p^ZuA(Y)K^KERa
z-}x<~v@lu7qAhCJ-8K>hV0)Wdp+3>l*~Iato*r3ymB|(}ymH5%xM8MnzPZ50gXzBQ
zKIMeEMgpNsKSKC-;AGe^<?ob}CO;}YWrrx2&Ou572I$CdF;=g9DHnFO)%ipa0jYvQ
zUEH{7Yt%GhWh8at?Jqp1b7Mq695-$Ce3^UX=6T(t$iEb|qOJ~GQesS@dE%HEV$`Vm
zJDWc#e0lI)x0Od4G}RB*Q(}7(G^lOurWLMS%dVcbv6+hNBtGD{tMO{g0H(0`$T%z~
z%TL9{?Z(J@40QCcTK1k_E9siF3ntX(c=v|sp4v5({v>qQ_mE^>q>+mG5LHh;h2Ch;
zlYZR&L-1^R)}ERZ8YW;*!qyk7jqQkX`_d3%ayeAQxbK}y@o~MUI-Z1(@ufoufB9Al
z#fqj5@MdphEUJ=oqAoDQ1{6!dU^{{5H3hBhtrFaiDr^!0hiX`)0HlgBEb=l8zu7Wx
z+8VJ!-Vgtj5R}$9R4io8WabUav>mpl*A6`cbXxLlEv2l#Lo6zyIZ1Iloi8S=1=wbC
zkt}}+=GHmZ(YdHVUb}H&JW=76PO32JR}0>ZHF(CLnLFdZZJ)IbjEot9h@}?%Ie%99
zEru@q_?SF*;kPyq5oW^Q(h6&#!fK7Ox=vofX5->-J+qfy;xbRS9t_mOJ;(lOl(2fM
zM=>cfrjpw>{KHU}yDQ;Ave`W>9rl2vrJ12yL0O{G@bn7ROPJYZ5K?o&1Pt&5W^D?~
z*kvfn21p=dnao?`++4c}x@*2Fjm~_n^wapsBRaGrt3?mLfVaEX`rI;02XY~5WreLt
zRic66t!^9A37dY>E!-rgPZF)vj{Hn?v{BJivm!Vs6wcjQsRK4e4EI0{^Tj{7Hh$S;
zXbRLY9wk~@;bpPuzsLd`*8*v_I+yM>u+8CIP~^_POVf%QF;e90;=<r7e(Yx`q*GDX
zty$vgbm+iP`%rBoLlMz&gV<#qP^X%XUx?knh3rh)L8an;$|m&{yVrdzC9l8N_`}n$
zc)d$dO2gV*q{a4S3VV!0Rnj|XJsOP+VT%S$u<-FP1(HA^%v^3H?*KgK?E`U#ZrU2X
z^1f>}9SI%4A$DzIRo)yE;6!K8zTK;#_=O00C*_4Z2&S~@cDBO;y^&<VVuDq^9oiDd
z-`WqbfGt4VvK&$>r_aYqcQ$025_l%arlKl{+vq%Fy?nzeW+S&m!?5hz^K#~K%&`gx
z-xopzIM*4$bpPDF$*#4Q>p~<(nCnE<#x?miaA^fxlPBmVot$K9%$WjLEEDeM^38T9
zvHiM6kFsH#QbB!&4J9{?8P*Cq(LPOa+c_uZnwG>QTUL2v&mUj0e71P58UA{Cy(2!^
zu6Zc@qgi>NeDoIh5=LyPW^nDgyZMu+H{k8Us(ZMCY<fhNSUP|{-3?DL{jGiO+AEM6
zc2~S<K_Zz%q_*K5!)*<xFPF|oMcw!N*5NAPv>Wn>{4nTrQ+w0V;py7$g9^Y@eC2$=
z)p4s8f*rqb(i6cn1v`%tlhUnIs4%9YWfeCDjBF7{MKx5%niFXj)Ul_aCE_JL^<K@W
zy11;XmoZ`B$onx~ZP8lx#N?1lB`Jb!6G-+dtK}?6rDl_~I>Zad(?nJMWGANsM`ueL
zIg<wah}y&8$)ea8vY>73$n;r`JIAWh`%4F?wwg5~m$tm7PS?O@d<h$sTg4cw$(i!I
zuR9#c{3{FJ_w(Nf)D<uG{vH3u>@+d}0HXiDG26*rk5P~QKWCg{&41;OZHPb8-%!cl
z2wg+y5--xoY_5`1j*@B#Jf+%fdD?ey#QT2$!P=2Wem;1+-1id_uQp<{T{9<$7jXT3
zyk6Eva(jRG|CIts9e1~$IJ}zMuc1z&v@V(cw11u)c>HeOz{|n){_6Dk;SWdX*ktF@
zSvq*TzsYM;Cu7tY2mH!hRqINX4Lfb7E3U9#17OcO7euR-^a~ve_iQ8VJ`L{%T03yF
zqr936u=QT-{36S)t%*_}i(+U+jZ)zh^rW9lLb|AwtI#wfhUnB%(#RAHYpz10A;V+t
zh36e2x@t;Qr>gf2+BLm!5?C#y{b(#bU;MRi*R2Cjbiq|;!&5cL!OM-2lbs_g^Es2^
z+DVu6pv(R!`3n~+%O+TxFGEl^-;ii!kQ47zc30b4e7$jwwQ~)L=M$<Vd2LlzCew3R
zS&U6>OXuHIjJW+*IGRl7-kBLw&XfJ{`t5*@ZdW_Jt!TAQ>=gZQF~a>_GrODHkF^)0
zk9*8+ZshFC?0)tBy(w4T9%Z<^Duw8~pqP}bGLf5A!BQ+B0~YE%h4M)ny?$yMn?ude
zHUJmcX;`wO<OM|%{#i0x@w}uK6Y8f^At=Zfuf6l(m<S$^t^@!f#&64}!|&T)2fi8?
z_V;ITJ$Tgxo)e`+v$Lae?pV<SMB>=z_P7M+Z4?F|k{}ibi_hDyT6t?!@Xy~MxlKTx
zU!!H^lGMqixf(5AC8l-d=ffMinCd+al~I<)*!?Yy<@9eC4kp018)Wtr9#Yta0G`ia
zfhl+?EoS1jXYFvl-OumuSKsHGx9xp^DDP8q`zJAnH+}b~>$^LFHSTT)H}|d7CyIrl
zH{3yXw4~ASJm>xD-8W4dAGv55hO>xUxVT}E^gkIJST=_ztE#Cy_mZlr(Ulu7!;tTz
zK(>nBuXh9cLAmZs=`f<e-L)W5_YPF_HCrSB9K7usjq2iY$<-<<6@{UfBa<2c9XnTe
zY7&zglY5$|&_+~TyWxuOKnlW=gf$uIiRfVLyf-=$YL|r-#g_`Y^g`>UwkBe64}lBa
zCE^?1Rd9>xtRl<FP|W${Hfd<p*b~uPfB`Jb;+1OnaOC8dtaT*KV<pvUm+kE;sU@V}
z<1`KgXw}IS9J}udgkAB+SE0>0Df>wo7EmZ)`nvBpNl~q1?j-B;54WBLQ6cj#uFT9c
z8#-mv!hcbGx+w*R(ImMlad=972zS1L*+GbVm6au&M^<2lJC652Pg|8^J}J<YKn)-i
z*HHjL7p%i+(zL<v9u+0tNJhMmn_V2ZQUKlM$H8v1f6$>xG(c1qM2B_<h%f!sc#42G
zXPr#)o;HsJ7oyhiyUfsdw?B~TkO(7_lR%)yD->gLIl7F`dkgXdJvPo4y9mO_b)Qg>
z;&YLq<E^-T0Yyjr{$YfZ>dq&E85aohPNA%10bRlU0A8OSC_X6+{B!-eOqo&&eHN<K
zp#b@pWK;9CUgf}wm7E6IQFmXUU5&SVgigTAeQ}ECQ1e4zFi^?wavuly0&S;C979H<
zw%(sc;<RBfXYBg<c)9F8{%FV?F;oypbuy~0Kr7GazecbSY$slI9hu1Td`Z#rzatg+
z9&`R0K16;tDArJR83YMJ)m}vJdNu`Sfv^Qw_*5T()`!VLy9T5=?Z!*MTCDmXWkZD)
zX(fAOqz0Cbr--7OOBQd&&y`;i0WLj}q%kU&s8?BJ`D;!Ts7Lf`F!&TXzE#{8C=e~%
z3*(99^Ya!1Wz3fSgOf|KERu%L^~iC*RS8FE)>SrIO`4DQ3@6U(516~cd88xJIBduO
zO2I<97;IHr;=}$?LVUK8xmM>ch<jSI-3teq8ZaAvhYm`OA^|5uY!TVGb@zNWe9GK?
zGF<Lf{-UyZJjnf14tO6bBEJuQRZ+n^$bGZbHFV=63K0F=c~m?*CVw9ymfbQu0gfwb
znfwxiPWl`OaBO~I6S80*b(S@vx?`#}lq-&;U`YRf7IC+sjae9(y1$Q7se#+P&UCCV
zC!JyMMKB4D4~`%2Z@0vaL1Vo1o1YYi@D3uY<ca_>gOYV!5=P#t*n-i6<wwh{<c8RI
zJRLgixm6PTwyhwZc!O~HE=&G%hxrR}@s-5g+f`8ojR4REo%mG=e`)F|3*S{ky)Kud
zl~^Y9v&}<d#zP<M=mTjU;bBs?cUxcXus^%;H+0gCeAI>$=I{RHA@60lgG>xDKnIwA
zrp4qRf0<b-9+OleA4Rs+Jg&`Z$H{G^BCSG{n3r~Y!Z*t?WCcfO<M`MpVX_66@Pnee
z>>TVJnidZYl$fFGOM0F}wQ~idQs*)?oENPSownP~y-O=zy@<Um9XgQs;w%+q>9p-~
z;2vB)Xz<``nme8jEq-M0UX)pb3&fsWD{4UJ73HlWIv@tJ?my10SKV=%&9zQ8(xv<q
zKMY?d&;%05ATCIghp`eJ1Y{ixWZdziSIOJyH+YXNMlQg@efXBEa#l%*e8G=0P1%LN
z#f@m`qfQN*;ev|g!#Kyo#FLY4gJ>GCaGcK2vsrC!N|m@JK$hxz%_3$6C<2Bz3>#{_
z_#i#@3j}!YXZSE=A4|<Ev#QE1?S8yGM2AmX|1wxRt>jN6#I&!N#YL=X?YpNshik<E
zt4=OhVu@a8w>2=|L^{9Lhfpt0;-TIX-C?G$z8kMlE}4=#XT4GqY7A0l=;yK5xBf*!
z!wOSINX5LcUVg?KUkFpIwSzhEucBtPi&mE=S!#SK6DrGbfZYYo?V`_SXUR)8)89w=
zPBb!{ZO0H6_DKCHNP-e|e>Xgx8HP1C@^WJ~?I+j7_(+XD_QWC?0Ym7&lS!Gl6)r<k
zV_pC=px!KvFFNMYWUJPsdqCM@H-e%^fvp`B)4D1T2ZTE9W^;hna1bx{EHy^{2E2G{
zuPxeEakcrEIpK2Hl#ir)<I5V`^37b-g+*ep@%=U;Af`CjF8E=Os8!;g@2k$r_*f=!
zs9sN(=<Sh)Wzn}sbDm@(GsimN-uxQeE!45pBAz){d^TEBzs$^kCSFSv!+#n&Y$h~c
z101MZt2x8`rFI1FJMxH%kaOi699A$uUn@`_Za})-+7M_1_n3)gNBl`=Scel^%q%Bx
zEvM=nM@@0|;3jUf4wZ5Cc*P#Rj10S(Aj6|KUJd20htUe6Ny#h%Aa;2NlH)rvUxhB-
z_D0lMQ0^2(MU_&aF8=F#ev9<n;r?XQ^9CzHN$OLTpKv)88^@?*r8MklT-^1P`{E<N
zqUNxU(GjNPRgb~7;2hSUtdj)g(wv7*&pBj%^PCZW9Q|IRGwwr|$OI3A4Uh7XNmx9j
zu5fR^=;V3C6I6|%g*BR{0iH_GV`o@2ya=huw~d}NO3tFUOz{ef{G%HHW!k7<v3JlX
zYZAT<ttn?~UmM27wv*@j{82sFP$peUU_0xc>Z<a(I83|@n`?%EMP41^6235r6&tn1
zsFBI_H@62V*4V2{K0sLu>D-9S_ll&yWHghcmIcdPn5!+IvGU<GRdFk6GZUC(A)k0P
z<&*Hh%c}`!G=-W_;lwbB7j2szsohE5f9Ti`oKQUJ7nq&=qw{VPVBgPNd;v?+=fuRz
zOAu!>Y+d{+wtNOYN4b2_z}x$=n|p`IA-_K&wpU0#CN)h_P5bVU*wYLGqqm~Cs*weN
zF!e7wf!Lzx&t;^bQh*j9(pLh7_h>u27h2u**1&xer*D5e{g6+IfI*+b$BNZ38QF)p
zwcHHF>PKwU1239=bj7pvkdD_!S8UB<$9AWOH)`3Ll9sI_pPm`Q6-3Og#UWm|I5Jn*
zQ;7eQ_^#{0sryG%&NTuaG+0Kr{N48;tBQmeRu++j-zxG=kOvmti~Z@=LZqF1pP;87
zbEXQ;wx9ncA4fS2eA%JhAMw&Q1MKofp45)xAXzA<=sDJv*F!NxYB9|)x?yzx2@QV<
z^<Qf)QAoVfg}YwRa=oc*H-W05YdyjJRlom+PLYREIT3{g09Y3M-?7>MKg}af_U<;;
z|I5E+^B@1#kM=KAa>vvfhg4(Il#J!-3wtYL*-8sjYNGb+gbO)RV!S+vlz;0|=kK@c
zy<lMDj`W0!-O0lMV#W5zP0)y;8=#LLGnVL4W@+GkI*xnSGw$t~{o$vbRST@3tUIHu
zh9CaKV@^(A(yV{t;V}GOAM5P|HebmR?A*b8T7M59j2U%)Lq0)38Z$|wKK-tB(yM9p
z=`(I)1W4}t<mLuAq)~1{0Us$t8Zk18Fui~$bzyKUP^S2xA<~@z5(6I`d53{xekg<B
z1^z)1;y~8|xFy~hvin7c^Ke=@-4C{S#uW<|8ylO8-nr(fMIWLC=U;ZK9Ok*r8LYD?
zoZEwNC;`O}sZmAxW-d}+pbZdTbm!<V>_Mf2S0$)jiP(*uV(G^AKAGSFnBrjR@njb!
zjljtZFtjcZfK)u>+jbdEo49|Sk!>5B_=iGOk8@FOxDWep4-aqMi<YeuBP1Lh?0hyZ
zn&_u@PoX$@e#CsOvvO^ap!xb3oRW%5c*({Pgs_MWtR*C%p4wEzNLclMp!;jv^WJ?V
zKXANBz?{Sd7YY6i*+5Is0+Pd_(v)flZZVa1OO|J9W$0u%aduh40P{k5+7xO;c0LpW
zwfLFkkSET(iK^m8kcUCUg55K66Lw~OyFcEaX*6H%Kc6=D2N|dJE~Ah<uVKnFwXe<b
zjeYMGH@vCqyv;3q2)9Y(K7X-Dxl=?lQDYl<c{VvarQE@k%D`3QKC|TbnqS-Q<9w9<
zw8<QACX-2il~(Q0jJrY7S%94BF1n?e@q0e!^^nELiRI<l+<dn-^*nxFr+8MUdCZz`
zg`pM(>s>GPetun@C;fd)`y}a!6X{PEneO7O{obtmh8pHu<xOMuxfP@4-fsXwMFeMN
zJl(cq&trT2yECJ|R~9%KR6}&y#b_#dqGexWigSm6YgH<rcI~oqNzqpC`h9KH7OVo!
zvpt>B_?B-g4c<5xhK)UW-;Z(kT+m<Q`ABGQG%y2=3XXqw&HD4asG;>q^>I4-N`!c0
z0j|mbB1qnT19%VfiT=A$7e!qwlyCVp@4LzW*&XN%|AzaJQPe@LC)~INu^{)UOsEf3
zh^Z4BA?gf~^Z{1SUc$o{Mf~ucIB?`o6`BdLQVu79Y^<S;@W(J(`R$D%*d7%Y4z<k_
z^8tS-Ap14gzh}5VDgc~$Xr{pS&<WfP0GW1AX;tl03P=HQNJ^5RTfFfd8RRR?u|9@t
z`6kui`|bb)@(p2hDJvPP0D~UyNFA0+i4U!Q++P&N9WA8)I|K~rkdA(NUd_9rjflfv
zP8!2^tCrpnoDnO@>dE2&98fMrEXYY>3?lxIBP9y_EmWqi5)mjY6ux)hAL`V4XpHuL
zeTbcAI7?1SMw&re5mhj{7a4{8O6LUxefw2m-ybYs&f4YXTCyqzm)0jMH`8TjBM`m;
zo{U)KyJdqdPQm;>1wf)vd|=wg%rK+5`zQ&sj8ocRd^SjnxDonfNdjUyOT?bi1T!6t
zy_GD-SSRo<=I28+>Ss^dq9A{yY5l}xH-pDe7=hdPR6Ut`2VjsWi76i79E-Q3(kG={
z5_&Zrt6tCj1cE5KKzu2cueAU(KV@z+2lPcMb+s5EU+}ph9AA=}=&nD1MYQ41$x&h0
zuVzWcW8PI45xA-PWy*5(>&>afrVj8Y2SJYr#We_tDAC1B1dhs}X5WKJTQtPMo!+sw
z3<4ZIl}amc=E$z-q}owP>lF!vU`~-q6jscjpVFL}BdYM?QrOCE_WQjagx|Zue((Tn
zP4(1#(cg)tti5U7P`<0VCp5loq)7?R%18cX{6p`hcF0jgC?K?5Gnb9}8zQ}w$1{zE
zBqJxr;#2>ks#1<C1mKwLn+8=<LhspZy-H4!aM~>!5$-GHxL>91I|-v<poLG1oU@$%
zr7TDkI}#nKrzO#G2U?wzqR_AwuGiYH(m|zlQ;l$Ly5st-aJn~o+#)jRixFtn-2shc
zoVlS+ws7X*Ly|&_txyl8K506YY1nalh_vqgK;cwD7*dR4e@A-<bmSa#j0{U}JO0|K
z(7HMQ#9GD#*l?`k^!8wZ*t<_Rd|^65C?JgwGL9f^pF7LsJyJX(R8ArYg)-<bhRcf!
zbJF#zMLsUH*BOwBI&cHBuu#tR$5?dKL&01R!_hfDRT#F5kAIN|6D8>*laUi>;4Q2>
zEv<DylP1dlKv|OwghQ6y^3QO8aks~8S&2+pgszB9+msiW7Ef)I+6WrNx1$-Xgm(uq
zHKH1V?{CcBbSM2ViYwWBiLr4Emgie1trnx--stvrdiWY~`(3L9_+fKO06)K_)q+k+
z80=>;C5~^K@#l+Dm?OY-wWx$1cu+=^e#d(KBhS`QIoD(nXwXw#xy$}@c~}EhBONkA
z51xMl!8I>^QLCQy-8txMp=CubQU{nqe*s8Ix@xSmXR*C<Hg#IBz=L3!E<3uU1=;9T
zXgXm=+}4mpRaeBQ0c;D#8c;v*f#Y*s2?|wN+bCEzTF@00EIs`bJ<jY#<hZfFtUxcQ
zTw1J{<K0HE)H?E<0iz!rlRgHmmt+QDr5$xc!S6z?0A=xmso-?2MPz;LUw7cusX-$j
zuBy%rAldq&ryVF~#UxvVyr|`~C@xcEj;ZLBe94Nvy0@yZVmDGH0>LBY>6@(dDclCA
zGVQ*Ec`0jAI{PnB`%(*c=`j33Rp{yV>M=gLisVCA{*%h@I6g?PX_?~Ok?h?LV<PM&
zRfFJyTRcc?nAUC)r|OAQ^{ME$_EL9!b?|ovN(PS`b9e}kD)qI#C?D>fI!YcC5C)xc
zp%5|QU%>CkzYK^jsXP%*vWJ1#%@9DYGs{kHjj%Qdtb5fg_^tzC?P5I(g?URAv`DD5
zwz7XCpO@NF0jCjao+AyP?E0Q2+|Z7wtTAlrN`L>aW6X%)0W4PC9@;dHWgey#+(|AD
zu#oyt(R^mh4wW*;i~uW{`Gvo70R4)Z)TrP>!J@yClCUgSSqF@Z+t?1eLu`PmMp4NS
z(^%ZJSJE0vY_X3M2wg~5b<U$y7;RqHR@BT0<v(d2Udi<PZ|aac^*9D8+>c%-hxJrv
zbjvJMngw;D*wEV|c6BU~!MRt_bu!^-Z(sUb?K$4}_{Z?!=D_xr%EMjS`j#ReeQwM*
zl$iy!fZYAD_K9$|zXDEM<<7m9A%4g_uXzK#MXgTPS8bE#s7qv|kN}CzN)>$hE|Cl(
z2M?7{YT}tNLz;yh+O&+XJAC=Xgv9EeoeaGct{E-jyfUYQ_;`7>mdLo!GK*+(j@S>`
z#IU|nR@xbi;(4fbw}@&g5H>%Pu9QM<c_b%$(`J;WwLk;HUV5I);&r6RW94FuyJX*a
z)@6jm%egmn-uTr9JLjqiJHJ<fEw-9-1hQhMsG}1~xE8Z#fJU<fr5$Vp4|&~wXeO<r
z=Ywe#JvAdl!%2SYZ~949Rf!pj+|{+4=d0S#fO$&3_D(}KHVM4pO0Y^*DXkRt$(H{+
zQ7M(Htxokwy@qSW6tz{$8IMfYouxQFxQzaYe4tVFP`C!`nwD6K3M){!>=wzRN<@5R
z6t>`A3%1J?Y?JBf1uIKU4#o0}gzsN_xtV$%hY<0<CJk6RpzLLY_ez~^Y6t{-yMpml
z*#&b)s&h-rr5-+2PlL`Dmyg7cL?w6NQe=13*~r#8o47F~#uV%)BneLLC6oA64Vq6>
zja07`$50X!pYzvaV^n%uS)M8AX+$7iw+_47)XO&TxL59KI-s&J+elQC_Gf>D)K+^W
zuMJ3vG2d2EQo&-Je8)wNCx@uzWk*qaB<Y@DdDO2m`b%5iX~4fGH2T7g=R_g&+VYi?
z==~Gk=6f5*Jodu4`yr4{fObA9hVtt7Xf%KTN)8L%VmVi%HhMXL97>5apwKQ3@K`CH
zTJwDohYl88tf-2DYEV#RAJo_<1G-8b%i+7tb`*^-Y~s$_>W|^zxto-z=WKT>Gy0}@
z8BXD|E=Mevcc{LmDUq(BGH7OYcr~=`fNE1D(Lv9-XH^)Ne>eyIiH5&CuYL{m8DX{<
zUeC_Tjga7|tN1-K2S3KNba{W|XPLw9-4M_w73~%YBT8FW9Fy+lItOngwQNqa6w&4y
zwf7L!wY8t~;?3z&FH3y#@`zDXrQsN=e0vrnDi%EFDaNlT+r5P>VE0FKr+@PXJCP)*
zI7{9g24S+FIO5MEk^YDs+AUMav%C!heYr|moG)2~6qa3r>!CwAZZYAgWy9qR&1J)#
zrn@_6ab&NF&-nD4U^D<!4qqJxSPf`o_t6?l2LZOOkdhX8kA)`pMlJCeme1Z_232UD
zob4hSwSrZR0bPSB<64}!W^9H=MPrp$O`6~v+-i-#l9aqx#3O^cUCvRFs5n$K3SoI|
zb<^WknfJp&1Ll4XqC(?hHZoTpc}LTZ^cmhQD46)h=b@IS!aa6H4Sg;3H%|VPJiCYE
zoa@q-QTcZ?-smCqdt<dLCwR2q>-|@oQ?(1ccKkp5Ru1p~4q*BJs<3}~8X5!p|J-00
z|7Wi>_NL<|>kF=4fD0aFS)!vw8T`5|Q)Er?BxmcG;>I}<u^^ICq`pT(b&l^>t`h(P
zKBS_p+2cVvJ3IR;_Fmo(O9uUHowDoX;dbwloo>%ZK;28?9AiTOo>U7>9AVm5Q00Pn
za)TtMb$bLGBaQL!e$lkYIcs_f!>`H-DE}kdqMCOw0J`b<!Nacqelevl0$FZlqFM+D
zio-yg17U~v#(4FS!z9~9JV}E%TO!_}qudw<u@e7%mq5Wv34l4^9p+c-^L{&dg6>xv
z-PG0fRNB~~17-M1#iSb@GOSv6w}$qNUD_k$d=yu2aRfC~?i61YJGkg787*VJDbWhQ
z5n-(MvG$cCq*aNaWt@lh=(+7QG!auj(uhdL*kz@4_~Zf@&L;pqb;3i`dLmsa`q#I0
zhk7jFm|fH|otvKOSKIo~(3NXTI^Fv=a9?Lvk8U-ZTie|xIB(Z?&aat+7taY22<X^&
z8MW9)z&J(-IZ^VO;v^WLRtY2}V@E{WJ=mM1TgsY5uTmVNTmWwF#1{g3`6SSI6o3>G
z-a(>t!5JfqNz%kz^mlM*h^uq*B_u@bl<*&8O~N^d9IE*)1r_2Z;T&_8#1YcCCZsc<
zjr9I&)f;0ku=g+19}nNI%7(au7|Gojg=`H%*(7Bg;vdWT5m$vNER{FgX?-b*yh#aC
zM+bL6&!l%FLaEoj2|)WGm^0`IeIT#adpK6SgP^CCI7UFL6y)YT2_WzR55_qaxHUH<
z0LccagXbs);FfaA-Ej%pwqSRqfc<O)rg-qsXb|Fm@ysC{`C26YQR5GGK!;;8fE2ye
z;ERPc&d4G(jt5A00iSO6aN>-4$}=QhV#3{t2>999PxmG^QU^j%5=p7NZUpL{CC_J6
zp;F_!qznYZdLHJ|%6ZvDDP~Dxir@h4x5G40{z~IXGZJ+CV`g6EFa{s0w*tz&%g}?N
zu@Uft{l)JuqFi5u65iVM)|%ioY>pj)!q{6k*Z~iqi*P%BlxZ`NY0Wcv)7C<4jrC~V
z-?yg^vD^_k#*U?A#AVz<9!b&NEj^t%)h4hKotf`l^5sr!pWl=7Pqw-Ir6OYSirZv?
zqOGd#qh`$;&=80_Ajkv~Lw%M@tRT3d72!x$+!&|9<aYNxaAK=GjoLql<G@}Zk@$l4
z4XP>=@_`6c_DSnoh#`LbdDPl4jpn1{s@iDUUEsxB4<W8s(4!L!{h|;A&@?=f#kjka
z81!vH>}~+61|(`4e}+nrhGW7ZIj95AP;qX^NRi<({$@-AC%(34`t|C4-!N@MG#gmO
z9Dz-bH%+Ei_-d(BQnTWtJk*FE{9fn;Yp2S)I5#hF`w8=nOOAT39w`u~SeHhHu5889
zKQ{{+uPQr--`RuE3>6W3hwFN-P+&2;N2eUrqxIhvtRXvNF=>^0|I<J;jFXOM?4`E+
zNrB?kMX}+e@nlhoM<&N*KBk7h82irbAI;rjr*(-CGzcpVd%#OrxP^m_CAjFYz^uoc
z+BMG{$^i8VA)vHT2Xs>t$LZD;wZNL(&5w3$n;*o%pk0U+k^{*}8_IiDG;4p*z@tkB
z#NWnkQv98MH3GuoLz&47jZ1Gh-MV)Wx%*fHcZvp(8Vtwe11(AQb0XC7-`&j1;UWIq
zE}>46jUP%~17(C4P!9~Igbae(Nfs)xwHy5i%%8c0@OQV0>UaS!uEg;GBAVM{cy2Bf
z#mXSU>KmfmD2kI=Mm5rAr<VHysRcn4My7A!FkQn*x(lJA0k{WF5`BzUU>WDebH}m#
znY3F<@P|Z(;A)cs07=O>@;aj-uu_MJB(7jYoQWecvQ%%??RFvn+pE_=sh0Uv?@E`E
zg=n8?SX2-OGgdtV8UVpx7Wg~sLNi<~4t;h<f9g7wnfe2U`_~z$rI@G#RC6BddQvl0
zjDn#~%W4tTJte7*pZ?aF&E}}cv^ppUxv5DY>6PayZzq8jC4;E+iz#zll_Y}mLbN83
zcWqS=O6Mq4`|O#@Do$$X@0IUBT4@^0XN#Ox9RIgy717*6fIDVh=7{`0a<~ob6VWG^
zCfJhuZD4cy2tLD|p8|=AOmYB;*4#j_ixJ5EJOGM!l9Ym_1ek=VnW^mFi~VI+Y11l1
zzU+pO<bj2YdeCtYXTDKjW{nnbiw7jsuAOC`(WJhf9D*f6LxbsX|CG{-OBvXWLXTZF
zy1i6TG8X<C1Ahyoy7QTi(qdwx=NJlWlu+t;+gG7CCEZ3c`_i`{zo#IXm4Wb|yk~<e
zps49IdEa4+Q|T~fcT+R(y_}4Te?f%>ptCi8B}JO_g2t)`+J%JQ^DbSe&gez8?E(s{
zRY)S3W}lNq;1R`^^+Qf$ly~Osv@qlF`g-oCX5ytH%p55tH30l@lbooprTtxe%=0|t
z^1UkzQ^Tyo{sM^8^<G}sj_-$hj7M$KPHr&8FWRh*X>K1*Vs6DO$u`${`BIZ^p7Rw?
z(5D@9PZp_CreD~NoOS-K2lGpaYUk!vncq8cec_9yB=Qy0Nxa#X!bK7goO+R95V3g{
zzPn+6GUM}&OFxM&*Fkq(x!9L{k#+;kaT=inNHzdzkY`)l&`Fg1zmTv+%0-G|CME+z
zhc&Vg4olIZAL!f>zsGP31UAz_r6)G`xZi2Z7du4WFl##xc)H&Ryt%DmA<IWA$jW|d
z`CdJ82MW!tZcod`4Q8Cr+(OKvD~Y^ZMBfHd_u$q02s>CT&EB_K*&lWT;|>Txu+g)Q
z9H}d4ZepY{LSi!=Ox62lN-g_#<ZR!33Mrqg&n)&bJvCsNi(q<=)>Nz|K=97RMC#$P
zVZCzRGgqtJ-oj{trcM<#Q?mCW6zYA>VAdm(1oH#}^#zwO-2HiG`}zDO>@}oh<HoVb
zdxMyYh_{N=h%@uht^$v+sqneS`_9NT8vwXUmO}X=&1fN3LyY8HtPI3n*!KC;i$!L{
zmF0|`76TT!U90gO6qN*KI@{Z|rcs;kzzYr8d|#eSdLhOl3uhE@T&ti3)Q}qr*x9$s
z*y)?{XPeCNc!>`EV6eEgrXIk{eYE#nL@V?6MBTv^*Sj`9w$t(O@F?DZ5YuGlls~7c
z1W3bZ2MeXD)eu!KfUx3IRA-}-Vk+h+FO-zcq$>ME>3|+)C*fjeQwR!7vpl1a$}8K|
zelSCS)-EkC6IKEKEMPN3g@<8s2V~Mx=aeE%Q&%&5J#f~c8+F3uoC)bZMdcL=+b?Li
z(YgRQ4#O;L;kk1sc1ry9#`DRp!=KpMrP&{I=IpV~J0^n6MPlsFx5>a5ew~L<vJOgj
zDp&l#SPlV``NQv3KFa(MitwYYl!A|e>EgMMKvA;=sJBR{<iWA765pI(VcjYb@T|Xw
zR)U$R{zqOe6*3Mmo1VG6ucs>~?)|`(<@b%gYv3Iwi2TLC0TzealuZc;;5mGWYt*e!
zT!N>aLG7G9+<;}hn-u%Y{KRzYr5|v58vjYv!c+!5n&*Szs-`3~QmM2H)fa`#>0SAt
z{zVIFHLFM5tyEMj@X&G6=Y++9dfXM>!K$cHNIMhL-+xKxied|&nE5r%)4lBWo}fRa
ze9)#APP--nkgLdQ=AHUL@U=e*MUaa%F}^>tK|=4ub0T=+-+xi^U;}jg!4Rsi+$Asr
z=IU4P*U>HD)^JPIDdN*l9|X5Pi8#Pe;i?t8=td-OlW$G){0V|Ystbc2QhR+!m^}BC
zkMh@?Z%j4xT<VxQiEx!DWwyERwX;sftLtv)8{;mMp!LW5hOt5xt-VM~dD+~P(*89V
zA7$@JGUXDTU>tHI(}4zAfJdR|_+X_$qMne$U9D9HgDv)v+faKKQ2=RyElM;kol1#<
zNR7ilrUVl}avu8d03m(O6DC$1HPf21BY@WnGI)(N1|7BLq3MJ~`{85y;#{n{3CW8t
z(p{)gsiQ;vEY&GBu|AV?_!&U}pIC4k&+yhlP)_R2q4KzlN^L`oB=WVP#D+<uZu!y{
z=7}E9>O4Nq%>vIOFJ6$ydzJR}e#iXk``vQ;k_FqzbQED}_%<3<aPLKCetg<{`vABV
z5YCxtx2mxJYyURkd`Y#>(S8mqRvpjMF@_PJ&VV_{Hz&uWKTq^2RQ+(lj}Hmsw@Qp7
z$Kx5M%W|A185&<AG3)Be3dt}?0nf)$IXZ-<)~Qak(9P9iszf^&_b>#q6bNd=>wYaC
z9d8{~*L6u-L>FeC%@N#&I|VajpWGF_TznFgx4Wwo<1y-TWbED1g~1dZ@8%D$-u(8`
z$np%(5pPE(Up4LEyMFnHb#ba$Z*Vym`$mz8X$v}AS7gNQQGkVw_T|Qf4bUqvuZd5@
zRo*d!q+YydPO-}Z%bvSQ)j|Zfas0)TxnFwsUi=7>(NEU!Ii8N?z12AAnHSZ5rvlU>
zo#FIZUq*@thFcI{HnX~g{A!Pl`OFdvnx9r#`v%{Un^+iGz)Q*AV>FFTPe;JDL#^V5
zxOt}K6BYk=Z1^?mF;uP4ei_@N$9Hs_HTQl2YsFL?QG3ar=YaY8x9rZ>tQRU~yNspv
zO~Ya`Te=zUiI)ZL_$>|N9M3-vfxj;n*q?7^lE>~>LgrH;doJbkc*F75b!lD`7YMsH
zOZJk*+QPb23a0enq&EW0SxcnPR3A{m(l>gK58Z$U=yKxiGLjJJ->E@vsJj=PD$5u)
zrJJcR;RsufT_h#-<c|)UH%q7-i3J-$BVU+Q<w@=-Bl7B%{{Cb)SyuH;);d0|D7L=y
z^LyQMiw8hPvNhgn0~B|3!WRw!&f`b9TMe1^d#6Xu&&BKK!KxRjTNa2JJprI4w`=0w
zIdl6unz9LB_*Ws_qlQ1G#jU+{&)yrcWf`;wunLHb8&ZSy2MQ;1kAHqM(6hmFrM=Eo
z`q3U7&1_3THN<Fs7n5dgcA929Z_fvcEgF?KarqBVj@xf!nsq$j06!7)FqJNs)%Dg&
z(#iSlFmUKUx(%Gn*dNJPf@GyB(qa^(NLl^%x{M>~T*yU!xRy4>P*R=EeiBN8uW)De
z3y1_w7xTQ)SGQ8;8gTCphOj(m;QA!Z@ddoV@574YkU!HfW+NguqO7G@pUjX)?anc(
zJI`@=)D#s!AJ7xfh=aA^1N>qbBFh$j`&S-{r7v}p@hK9-c>J37uRDpA$W#7#Z<paK
zo=kt4nf@tM?h+pXex2G>n23N-y_0`AP30&FzJPip%Y7RJ>mNnpukg;5OY4?S4eIUP
zlwm~5`>c^uFY?bizZd)`ueTkO+h<?C_*eU0yz=`>AAspD4?N)$o~4^GtKRgRu*W|v
zdBBWu-ybBVNRt}jPGc;2buU95VbkA|uJHWe&1;@y?zxPgngw_Zexz){b@%Dl-1$CV
z%kb;&CCl(9x$-#zBJa(3rJus*9`(TbC(Cmj0G^UgXyY+1A0qpqbf^C1s#r*thdLwi
zBRM6N_kRo!rd4!@^v%pG>uSQP>%Ba<i*N2^PMO@Y_s9FlaO{WXVYmJNg4}R_6l|t}
z12@)y(+IKd#~6eyDaRFk26Q@Yn+@dN2fUO&L>tdimT@$Al5TPMm6uTf+iJ>@=K?y(
zE?vKTbHtl*|4ltIBbZ${c@+k(EuI~Q+xCI^gN*Y23-Di;8ohFpKca*H0O0}ur%Mf{
z|134Od90i^MHBOw`V3Xy@j0i$@G6vTR!Gok{<8L<l%Q4^KmJQtI|>hg0fGUL+*|s6
zxx97<01A+F^mJ}^Mu`;uUEE$=tUJf-{Z^_QW9OS|{p8l&P5XMDO51&W@7Wu&X%6-?
zUDtWXI1cn1cRi=1Jft?c8zk0^Y(}7h(~HbbdjWkep7KNT0G$7F`6ao<?~m|wemJP}
zH^{qwBi(pprh2bM@F%2w)5(UQ%}q7bdSE}EvTl+&AlHHV!AN^$juu=1N9iL+SuczR
z-~@W3@$PimcULCtdF%UZ-1=e1;O6ChAu4RiJH8Yk+>abE_U6r;73IlC-))ycRzTrK
z@4Gp`!O*$#Xa==R{R?C+T_~1&%&mC}l$(O7_?bRtl3m-?Ezbx{UDZzh=-xoZqhPV&
zZ-fpIj9T(#%zk*d4(Z329b=}`fB)$IbAI7E>-T483#RPx-h8yq_U(Q7$&edQPiB7+
zoHzSt@Rv1L*SP~gV1WL>B8%vo-#A(jg(`VX8Y0fWOBzYpdW5kzDy?6wb4SE#V0Arc
zTuDF7PNX*iI{V*}LklpKcxRZTLQui1@*l*V=>_e1a<MXv=WULPceCV+QTIfnflji4
zqSHH@_VbJG4I&+{)FgEjvu~nMB~3?6Vl+%5!{z-w{;|*d_vAQ>w(olGV~95l9Fpvb
zT`FW8FJ6pQjA!Fy-Lj23;Zvn`%SKq!@!f?YwIq9{qyVnn@iagpx7iTi(Y^Vf(UAeB
zRp@%O&7yH83O|+>(ws!z?l71b#95Z9H|9Z+(lnhNh(t#hA{81E(6~^w%qzPTmID8)
z2N5wGH%+LO3Q!HkT>eoKu%7FUHSSl6RtW>XBxZ|XJu#0OJYmc&ToQ^(57EV|sO64b
zhqMc|(JL)rkKg#!BGvfP2R+362<(ZVD}oi&&7-vdF$$L!Mg4~!$omG26c-h&FUQy_
zeM=)%*aJq-FZK`N`!43J*=(Hv`tqwamQ6hA(J4^sQRDOjkGUMhLzg+Ev0tydU+nL9
zR&ZbRL9o9V1W+K5&)Ds55kMD=jb?@zRYSx>U9+rXLudy|``R|Rn?cS<hXAcSHYQxs
z-%hQ-3=kiLaW2ZUD^GW)n}Z<-w-ray4QW8IJYv^)VnM0tGUiPMLNz3(@dJX!w-)6-
zAZ6HKI3N=3YQY0SLaeq0Qjzxu-qDh#ATg?Y{6uRiH3fGbCf6L)W9y7DElqcYcw}Sa
z_DQsSsGli3kZ@ATH+#s@w(yCCF9=!7Cd7BfQ1DTz=QlA%<>o=V0SFZSzX#CrP@)+#
zlJWc?Shd&NIM$dN4E(9J#D*BR2N(Z?v2$wDL<_@f+nTnGuWj3$wtL#PZQHhO+qP}n
zc1}{2i{v7e->|RVUC&zU>&1a38*x4-;Qn}(U5!7QUJPRd6R{M-izEGRp1;OcjG3wL
zaPo58&8feN=;k5w58q0f$x{aFX5Y?}mxCu`j*m#-G%5uAJuLRa<oxtI#T$bce@@hC
zuhV<zy;lT@j~`JeZixjSUvD;??b`G8^z*V+P?1b+N%#HJAUq*H5rH;e7uJ2`{goFJ
zu5L^pb<~eNUq?>kJ6f(Uc7G|SK!5HaXYO{6Z$lnCv&ZwInL|JD+jp3p7=gb%q07gj
z9a9gG`S)Y&2Z3iu=vhNv<eokTBS@s?lg%QgiEGYv-}H%wjL$(5?l9#H7dOTN`lw!{
z>xzP3duq;s6Rqq#$AF@9S1=%YI&^eCP(5H+?Zg?{*Kfk1Zup2*q)YaXu>;HxQFx?;
zM|hA>vih8E4ye8#UN1^%4<go0N~dyMag06qL$Mrp+uhhJISo~W6;`BD|Gg;ijL;XP
z{7|x||1lgnfe4D^(wU(jq0#GVw#44=JNag0(!Q>AP_#6Z_1rsY>7H5Ntb~gnf;~1F
zDmw79fO|}v+CpDp)1I+H9r)Uz$dz930EU#N-yLez6FxY4f0E3eWJ`?y6__y)pS3t@
zzMu3HKwBgXS?vA@1f5A@lA{bWn_}V$81CXG+?E+P6yl$lJ6O&yzoQdHsA<}X-&y3c
z67CP(rXY_pY6hrY&3ZT4kod^);V<Q_*Z`DgD+nHY0=x@4c^sf865TzjQ4;2mk89fm
z91w952@b-7TB@zWQe6f^tqdMV8D<`934^W`9@#HQuZ{MH6azR~q@uJ5sD9t^WfO}0
z70oUfI3wKb1ZA3{V9pZyXUxG4+ZYrQZu@{zzE?Q;k4mqbRE&M3CBpJaoNZFgAGAOB
zWAS=u671<DA<N~bILn=hM6cb;W^9nVcAm_5v2WvM6BMN+ZVm(Ddb>oHen$Fk+>oV5
zq;T3Uj3AD_g;}TqKDZZCLYy2^j5hCHZhT^Jjg^!L4vw4|GGqOD{OMaUNQ+1eKnkga
z>$DsQn3oqOJUG#FO8c*gm5c;Bfw|lSJ-JaGUl@6Z57+{I=F_36VNrjwLm<x8?e*+R
zQS$C71R~3Rd|(lvdb)8FBD;XB?!M3OJos{Ub)wedc4fuCTo7U$$&CxUkKMqEfce3G
z@V_28-A4aNfssDyL;X%viI&hN3HJT!V?M`DLieWWrinmf*nmVlb^Jn{cxD=TI$-5x
zv*c^+q$=p*U;<Wa04hcB9zls*zsDX!$}b+NWRfoc;XAKK67nM3-y*%Y!vC;;jN{eT
zTS57&%)}i%q?P7=pzvP}8ba>Ut>z@G_so7h7G8gL71=Lv8u4DBNC*?>Ix00#)**h~
z-^afMe7SyB|A5=U=o+7Z(-Pl_q8dh>I6#QJeBdpRj&j09_SDk&6jSho86bwB(Q5cc
z(!?9^@A}})+zFC7Fpoc0Pca7Hk>IVH7EDkMq!{S$_W!IJ0aNms>`~$Ch#D6m(;&!l
zPEu+-iMw?{Rt^vp7>Sp2o*eA?5uW_Fto>Ha8k-Ug1o|Mu1hccH6e~xB7n!`mUSO|-
zIrhf31`C%^<z`4!VnM$HllKWp4vg*C;$Z#?yG83lc@-rn7f`HsQB1-_AzW1_;>618
z0z&;S>sJ=xCi<tfA9V0Qz&$0oL$*L1v{H;DZ>>(5;UB67$Viv@)khn{xoAl`INSr-
zu-0W9?r{q`CB#pPV;}@4NT@G`Ll&nj8I=Y=C^}^QLYPlL-5%fH5}y)c0AMDX7^c@=
zG}%qdfM#)xP&+z7rCz;CEjL};f=uTq7(6<!9#nftj6CdIq0IE3hS>0SNMMbdiq<O8
zY*+Z<zEB9`GL*?`sP9rcb$<d$&KMC_uIardvH&R7?B~oHh*<{1D;{a`N#_0o4-D>s
z9um%gjppMC=w7=k<PZD37{@GuD9DP?ll%$q5VVM&StG85IxG;N&>5M&XK)<MHkV#h
zt_YDg4d|8ny&h>2PbAtCx2n%Mi})|*Jm(=!9*;B<zX2%Yspr?{q)>hVf1(u@+0!uW
zs+qp`5Y~WfArrp?8xeQt6t{GcPS5K)oko3dTyb3j48bJX2Cb%?z5W_-bO5F+W#9{^
zIRq5sX{^GGT!dtbZt{5w7Qhf#<7J}e?=u9Iatchb+SK6=c3N^<q*C#Wh?MAPhx)oY
zlu3n`Uixc^&PkNZ!*;k)>Vh*|Es@U2F#gpwN_j0ZvW8YwSG?cSMGX}j!S20ihzoF?
zK|ECcGF8wUV4@gLWd-*LX%e6sH!cDL!!3~u+`^(nB8F=IXHokr#e|yt?y8=NIbeX3
z1!)}*cCI{SNhpO0HzID_PxeJJl4d!x?B9-IFjA>V!|5j|5-TPNZmGz!V3!PX*!!uq
zAXyKAu&|1Zu!<vh4<o}O=G<#EP++&iU-WWfD2W;xIBjY0D4%~3A=ZTD5rkGdX=|ly
z<HAd*X)G1-7->(y3(d&6*^pJ52b~`AdHyk}uM_y(XzOK~{Y`ML`lK1=nmn)bf#US4
z6)?EUfAfzljNSVPeeuW^>@i&G&GHE;Db(%wArXBY7=NG?o+VSW^`<<9q|c6U3&zg7
zT=_cEbDy%?9ix@a7Lwk$cPHY8GYMu*a14@s&?d5Jh&-c`kR2b0rqaP>#F7RT*ZipF
zx&aD8M?tvHwRYpGJtac*a`K@+MBNusEWF5hw-G!sS&&50f#*JcX+bF27We1wfxtkT
zp&=8)p?8v=R)(hXwH(6?8V`|TG;M3net9r=c`~tohRqPP(^d094tvNO^%>5?Bzjx~
zYjlt3`(AEaf#6D1u{)S16NEZ|jLonWGU^Eo8T_cg<SX=y`o}7OmfJ?WfUz0d?;R9G
z_bP;jTb#UU&pr^A+cfQ7HhwQK3#BVcbt^r*ch3h)wKpQ`l=rz>B2rW1r20FJfITqB
zJCB%(C$tyLnM0n3(C}PUsM@Hu>neKyBul+rM@&&_2q@cX9SK|rGphRXjnR&^%Nl<v
zy0Z>eh(hj=G_DkBoZ1=-M6vJSV?>^qObScQ8vlYBMc8V8%!=VGNKXAr<erc|EOz6*
z)2je+c(+Z6i{@<(>lmX+mS^bbYe2XjS4GVRKRm3#2oN=9Na_!QRrZ13XciRj4MyDL
z2}w1YX`kz7myBbgadlN0kHUK0wt)9$6Hi@z)cr>}*Acc@%PL$NK-?@p=jkRrX3|?M
znM%642PB@m>o}oM1XeGW;*%VKR$O-^Q*TRDkmPb_bhMA4Nd^<x4hJm^Ilus!Tw7M(
z{N1P4E7FbwsvuBN?vFVDH*4pX$-H05WkTkOacrr89F2N6ztM-=jbw%=)vPsEw7&4<
z_mk!2S&$O(opE5v@4vi~pkh{S5v7xx0Xb-)5~KW>kAzIkEQw{Ch^@ST6lR3Yvgj~B
zNd{K|6$3Vqz`fznN`>B1V6u;1=g{k3X*x@@i35x^aB<zobC>t=?Y|*I_e9{G)^EFv
zPH>j+T2i|$rW7E(MbcWb&qZ1#N}=jJ8P$KJCIU4NLv;Ka$N7>R+6qwSi{Z`!#Ng9~
zSy5Yd<a`E-b9D8po6&87w@s;vkyM(T;mA(dZ&cuT(A+mA`%|s>v#jiGK=qoumjn~?
zk973tE-?~^0~d+moBU+$m0A+hTB>c>wP*<HqELm0DjK4ZT*v_m=sr(y-mxFHlHpw8
zmv1dLULY^mdzA)@*n+2Ld*ueBY>o{;HI{#|jy+m5C4&?GwU{XjBdJ-`hEFKlcNDQy
zorD%A9Djx+K*}%=wcF>6tAbf{P^vH6>Suq8JB@+@t=P9XxQQSZx02%<$=bK6avK>Q
zZ=|eY5EaTfxo(&mlr#GT*c$tzgE4WqhX@ZyETA1=5x2#>Af-?&RHjkvbMhkbcc5VB
zWX);nO<M|r3kh~<7PX|9u+v8^F56~D_c^C}P7-=+fM<*^n4wjuwCHpGY1ZdFhr4{+
z@T*OnT9zDenj`I4iQ}YhxTM82AE0vUYzQ28&y@mKUlE^}DuJ=q7_$+k+1oEVgI2UQ
zq;A<z&`p>|tq69YPOaFULu@)`$PM>%m0gfBK$QN(EL2E#{)674y{@eK&C`uJ8H+aA
zmt&6g)S{p#*RR!wFKwF1foD^Pa&?{eFtn`wT_kxHirzx8T?cjRBH3{J-4Thr0DPf2
zH<<<QENvc(a1w0|m8z&mJV#5NsP{@qqH-#;B}FJxEXS+~wgEpZyY}Nbwmr_urF$*C
z@59%dnoZXJd0Zs||I*W6;QtBEMpO0ON}m2Z6G|G{<x1CpXH+noQArXN`44A*JRvs6
z^xqM;rY;Fxuzm?5{wR5a64?%3OQ+eU!BpT9j0R#@4@^Zj5c$|tlGk7JM5(4QCI))#
z&kaT2)h4O1r$#k;-51>+r`52pAB})iMJVYUmvMkglW}p9Z^mrxF>?fUzX$L4Sg-GU
zH+R*#Ze@(60zM|PE}Tl!QVG6{+B*Qu*-MkF4srRWX@XKAlRB-S((d22Z*XAp3&UK(
z>N!W(*JKRMb@LR-UE^$yT<##Y298ZN{9AWHok>>w^S$mZ0hwKF4MaYFa@(Jyq?&Ci
zgYv8_$^b)e@!t8+)MB59#D{VodkKeDeM^yZV9Td}aigWIq|}koTCPT{XcB@If`a@?
z+$r(vwtbI?UoR#B9)8nm*oD3OR+E8EqJy|l8Q{j7%<MqF0<-qaw5*>JdeqqLY|1=_
zj}3R^JeZ5PS-Me$BY%J=;%CfXN62Naamb_uJW6-;&+b}ymEwv*Y`V90+h8rKaeO6N
zo;~d2WH>bwWz*i~50)VWuWwhR>zTwGaPm8auCvuncEXv<H=uLvGevKHCD#J<%@?2G
z=lyXMl9+OalvvGv8oj``9`0@`W#G?f<wxs93c2f&go@IJ$iEnc2$Ivk*TfVL7V`Lq
z5;Rc=`M3E6sr<-MdNz+G<!a%bWQm!Cm(?K4Xh`kf&~6}zRH^{4;d9MM<Gj#95ySbJ
z2ALe*V|9vE9*Qiajzl=*5TY_yn(v9E@n;gPA!XT~v<g>m0@cuuN>8UhT&6zCd&B5&
z`_-VH5aoRZrWHp%1VJD?j~X0JH?i8&A)zs?S==`)Ka-hf7&`^UGsf}_eO$-Nx-0H}
zbcKCxI|ld~-*t65Z3J{+OD|DgJ_A#1koW3$=ind^>&`^Y(w_Sf82Sy*6-$30DZscM
z8aEA^yd}9$$tkwtvmpmZ=Pu~uqO>cTazLVk)kixZ2+~J-{i&MQ5RfGZ5uZE1dAjaJ
zLZ<N725VsoH4NyGJJqTUG-#WhX%LMx&i&@=|B5B;m46iQJc*9lo$*>!*!NUDSpql@
zHj`>FWD}9nAs3(AWG;oW3u7M97PhM+N+gMUg+r@e0ND(p`jq2!C3T0a$9kqmw)3c=
z$9X04(Jy69Yqc$IpEea8crj{1&OAYUS|*u3sK=F|fZvVX2_YR_v?o5`zD;0%m9_%^
zfvTiqRoB*~1<dW|2YVLCOm}bAK;Mt=pU4VYo821MQ0N7JB6aN|@V3t)@maG@aCTBp
zx-uuvDOzKt-(aglAv_Y)hAOh%Q-V<fhKp}6-VZ=%G<#D(v*2hUYul@K$OmJY=HtDK
z3_S3D_RmB~4?Prio#DI3s&m^z<SttkoH72`z5v&*HR|b-Whz9VWnz3~^`lruWzojH
zuQ1|#s=;O=WPj#LxDyoWsdtWcr}t973tj_c`MFBWn=gXwr_QH#7__jM{N)AAvNE9R
zM#<9nqRV|c_bqdk9#@5FJyoy8%*+baej67$3ti?mvho09e@Xk6N>$}H0U?mCP-+q{
zr$_s5O*1PVO-vus7&C(^wyDtdzgL)bOQGE!_wT0@=if<}Z<jqkRj`{d78-};)~&gg
z%ORgNOyawutbb$8C7h8`*7!|Bp%7h#zX_BoaXiV^8nLFxw(kOe{iI_eBGMft&@qhv
z#(Otp8)#j<#R;1i3JS<|;VXZa`9GK7Dnj(kSELs6av|4kLY#`fKAjm23~|HlLSS>%
zIouunmzNJbZkR;DiI~fB(y_ZLMXAK#Q7R=nGNbA0uU#PP&XojrPM2Yz=V)-ANcuX@
zNC`W4a$%-SPUeJ|58oigKrKwZY4U4FvuyW5^O!&wuiTuriP}oKEOQnML^urqLB$Pp
zAmrr<nFm2c7V7Benr#4?bzP-gGikulQ1S!os)`YI$ope-P~GKkhX-Uq7IVvPoL*C@
z84v?l<!1O`sFD9sH7FQ#)_p!9b+I|k;KHh*s#b?m?=$%dXt&)Sz4Sb7_Hfs$4KgtO
zlMK$Nl;LeUr;6>#<9*{VG+AAx8mpiU**sjJ3QHb78x34pty_{<!U)y$ZNkcQ-witS
z?4y*lA+f)&zMO!S*RYD~lW|2PQR;5NMPLDLAs2~w3@kWV5Q#B`Gkq@0?k-NYW>y8j
zA%(w!XqY_oe5dq6AkEMw%Lc4-;8iCZq00G=DPi5TBXc=~8YWi^E2g{u>t5TiU_S$x
zlR;#~e7Tff8t2N=^X9k;1UUOQr=-2_7irPg9_R0OBWjD8GQEkzHD~)X%<t&o1xn!M
zR9JIn+6vou@NF1|vS)%^fwhK0Zh{HKZsF7kgFjD(oLk>lQFgv^qE$_qqHmPi&}eED
zP+y<0xtH1P#ku(fAF?siqV%T6f#P`0c)(x;Y=Mi5r^(BvaWuXv{GtCgWDrlWy2>yk
zj_4Tp@jDQ1?yai+BHS+rx=*u4kF(HAm|NwoDWTNvUw$i?$9ALg095*=5wR6`Q6wQP
z>=^v1T@0B2Mr$bLp*oI-KLl->T@x{HQq7#A+i+Zzlr?2VA_6bnU*$9|cvWy%JyRcP
zQdbumHsO+5d4^2Dp<Q02JA-t3jB03?$rV*d&r`B=jo}5?ESwmvTEH(h_Bz2O8f{nH
z?LZ2VeQjTcfBh1-PFNOUlXa|4pVd`Z;Zr$|X?LZPmd0&LzFD?=!Tx3Ea*9bF+o$6S
z0^FP<l<L$^wGhplIX5!_mYm%U!1;J*T`aNQYWx?QY8pe0N+-bJ%;)-j<!8?Z7)#G9
zYg}lmT<~2@nQ<Xw4J57~2q6CZ;ExQvEhDjXou{L;9xxhlACY-~oa4~WseDCSv;HWa
zggJ6kta?MD{%T<r3sp^y%H6=4BJ*J~oprFRNVl#k0%dk%CsZ(0=m;dB_d6LY@Iau!
zy=Zb_>cHD|QgjMFHCJgSO;qz4r;aW2%cJu4uyc`FrDLN`8GRMb7(RFre4jq(pkBbu
zK`<iSZ!IoalWo=0S9)$=Hc;Gs|2W_;++?uSos3?k&op45ZaiM?y&aORNe5B}g|G+^
zrG8(6<oPB?ZBT3Z$-8-__E6$|#4Ui|91JAER~|p*L`To6?^P_HpdMYu!P*7|n`Zvt
z_C`M6y0sURqN07YUt?Z2%^SXH9#^BA2@xvIChd^E^aK9lg(J{E{NeZvX*Y~1mX7ZH
z-HcjP$oWT?ozN14{h#t$<|tS5!$C!<kp0vrz2Hzs5iHSUU>u|Q#=+6BTAE5}hfnq(
z;RYB%l=mS+F}6PD{*8gkF(72a#dx^w!zIot4Nka9P@6UdH2Vz56XVvH(7?LftG_;b
zxK{EP#Op4qPRh<3X5X&p`ztRT6Y~w1g(jd5+(q`>jH{D8O>Jb2V2OTaj_CHnUFFv;
zRSA0DH2<7+Jy2C#AVqE$<yg~>V)7mdP3Ca*l>xj~^Zv3oS@=Sw9IImBWMHdfLDBLa
z%SHCng1o$`1bIe;N8wkYNBU_*ZK5>wv9dS11akJXGV!hJn$#z398}h?jtx!VNZ4Ju
zWofi^o7q=SR?lk{X?f9jbtGi=ejFzq5w^LwqE^DX!+!XX(@vdVxr)`k!o9!!LgZR3
zuI0olaFgKXnsNqBSk#h}Nkp!6A$Mag<o=Yd5-`zu2M%{TfNZxa`@FV*XH9ReYi6XU
z+6=p}ci&}+OQl9?U*6jx@L$>9!!AnW6;p8Y0?sW&9IxH#f~4qz4%yv2eh0V|_P7kU
zX43s3ij)G4!Fn1ZrxMSRpYQYJx{u(!T7kE56@h%qtJKOP_zR+$@F2HzeFGEMopd_$
z->ZnR5+6Cq-n;i(9Jb|3fX$%MD#DeE25TCj^xvG41N{+T*ZddDbfq}~Ol>=*5)B)k
ziA%&MRy0A!8|VHNyueL{N`wU@ehZ3~rTS(ROm83G8Yv}v`xx$%caCo0CcI}h1jgZY
z6<$pb_75cu8<oYUXe(d{Ft<XNZ|84|F&F%WCOx=(&Ku2Ajb?zu?R#AhZ`lAi-i3Va
z)A73S;@BaYe3P@8l}_KJ*i}r|MMk<dcc$UyzwM{mxpI6zlB$LyiCp|Uk5NPdf-^Jq
z39FxC4bOc%vNP3mk5X^1XY}q5G<W<T&`j`t5>}eWkKqmPN`6g-sIq@DZc_+3STZ)d
z*AF5D3Y;z$SLiwX?6TBuabqWGHdw_Pn%0P|5mMadn)E*6x2@z`=j2s&OMP~ZxTm|I
zSXW0Xgg4>1jiz3HM<tYZBbR5hZZ;H~%LDMY`f*&^d&|mH>SC<G482UsBk;KSJ|{-d
zluG5<VvFY(r)dS)|28e2H>r^YgA{-|3bsuI*(2`%W*yjYYFkRI*LmPUc!U!X?1X7u
z&-^j3pY-;@v?1pmLTVjXMHl7vptyh*3iab2_1n-5t8v3Is+EMH4zjNHcDXFPD!=af
z@aMl*<NxwC^KM#zYUS(s*gs!JY<QjruAbPAU;#L|CtCoL=h)RNRMmlk%uM3N-+R1^
zDXZ|_Z4tKudYYQmxQ#WisXWA8cAN?ZXfJpR2Ty`K`Y{Og(WKdVV^^$@>HX-#nyilG
ze6)9w7yG(MxyL+j?G~faq72oGx?s6JIc`*?8$x_b>Fa-+B&TATou0qtJ==->82REw
zJmW8B4f;d$JKe*Gidd(l@r%KALN^-m-1E11sFKgutz61$rp#A6WDLAJC5e0o`ox46
zE6<^P_l@{I+?ccWOgMj7CPMGQ<=OFNKfv;QddA=mwMR0b*P+XO9ARx;j6$q7CDfnZ
z=R&4E`asjth0b`AGyjc6nnb77)VCrbQ^{)77e3m@#&=ZFmMBq{8r|2In^&J8K*#hK
zcTPzksK;GH9H3iFECmmqNv>%tZ)N`Vy<<ddC{B*TK~pR{#JbE}53q{sMqa-5Sq_U7
za>cV^n$jo`0*o5g+$l*}1^r7`_DL17bXO|2d1<!N(}Mj`p0^^tEsy6fI-znX%aT{Q
z^xJ@V-sCODV3Co<EL&G3QpnW}I5lzj)krR_3o_y5k?<{%+Nsrf*1ddvCR*HoPMh8e
zc>3d?{(aEq$Ux_-4-6KB^?+$oaO1BLWa?6_G-_?fyCy$0?Ynf`-M?UVm;?b`T@>tZ
z{+ebTrxB-XY{U4m*53foFg6taAxv_#DvzT*N$cZwMd#)=)42q|<=-&3ymt>``d9Q^
zu{?(4?-D*vLiqr5`HBCwfv`qW^30<6CZ2KafF?(JjF%P$#2IoyHuhNN;6xk;?B|D9
z{SDjum-BOFXz(l;7&+A4)MG<F1<bIWj8V=f6VbZddC`hh#GRL0gCzI;>5%BgqINS<
zt8f`NF9p!QliqIs(ueeh+9a#i%g2kf15+m`KJ<AujV-zdZ~afwtcfyjU=UZ8jjUZg
zRhazc%t|$X?#MZ1{ZC1aqEnZ4h;NZq>wD6AW^?8*!i*OEnNSClQub{5e=t|7_R*2R
z^K+pE!a1pp@=*8&EURZ=a92aSsSk$IPhHT4b8Vh=-YUO89|e|zEsF@pM}r6IzQwXw
z8+MB|+%qWc;JX)7&T?&3tQtq)ZUsR$ccoAT{=EsHmiq-LODl~Z=varz3u&r7pcQLo
zN6ig$Xv@$Y^9B&cw$c5$jo_C)IThn)j<?wRc8)2q+^_&=UVCT`THrVf>G#F$hyZ-y
zX_cY>gvLq>RME5sQv&N#?MI6u-%XzfzQBEChiV0@>b_R;UhkOEfhDDCoI$X8*gY-K
za<Kz-fcwS+R1{0o64*53+`Qrol`x}<=d)w^r=@#u4`@u`@fMHT9N1DrYlbp{Est$-
zFN@<p^AI8|E|7fnZm3`kL))|1)?giNLIo=!KBC8e?!=V_l0B_425Smh2J55qn<#QW
zdENd$a}J+R9Bt^T&pMLSB9#hdHt$WsEfTd2{__ZCY(N=A*4}Mc63LF6Kpx_0WTk0t
zKmhp+^AMLy49Gm8W`7gA?@04dBBAx0c-tnK=G0L<Nb<!hs;mFoa)7*U4p_he0%D8%
z|DB?+{4do3@3-S-O9H>NFF3v_*I$p1u~nxU_rF{f)lC!aE;BB4uO-*V0GNa{`68*f
zmSvsa*G+9Nq`gp5X%~anZkf_>3BCF?`YSs0z1CfAT4I-er9b5Nu($TN@uP0Iq=^hU
z-FG`Vy%#^7uiKL^t-hBon^AbAlPcIVCs>{jXY<T1e5Y1*PoQs?H0dU(J`?Meq_Gq}
z5OW)I`v5pMnzx{S;hcu5v%DRrHQ(|2^~4>L7a$zBi{#h4TOj@9Bdh&d^(-SA3|xVr
zfWL!b%syy$#v=o1;Nu2Z!9KWlE?6dx*kZuvz+t`sq;ZbN{AR@K)H_RyRzshVw}V{w
z6x!U^&(zdZ-dwwDvhyl}ahC#L7A{QuT=-5u`WH7G@qbV$54#Tx!QnA#Q@S8*{`?TQ
zB)<t{l#iyAp{^PMYdR(R5KGq#`DPIE<oRO@c3Gwf<t#P~hMmAjld<XS9EOF=vEKX~
zIN8oXBc1c_u@ttm>z)1Q=X-BnEIfu3rB{1LZ+1?6T$~}gwQGBC1XuiGqoH^s{_+fP
zy_zLq{DfG<f8N0;T}Iji`&i<k!pRT^%rX1A4m56NIWoxzxfx|bY27=Zz#9~SJW%|Q
zgCiM86p)rBpEtJY#+H-QcrXMGgJ%Vh4DSaT$9&(DBoG^3+J1NW@v;@TYqy2yjD5Hc
z*Xw)tK+=Z(_9FfS@1nSGf##oqj``4h5aig^bj%aZ-uFLy0Oe>Ej*#^1*}qUpVuX5K
zoGQEweA2#><l*L)vH6s&oi|M!I&c@J%X!Rpr3xq)q!9#iAsOo?%q<K`A|G+oJZII@
z?|Aq3VEPbgJzHjukFt$j!WE8CYJ@cMnD7S+W`re=y$Lz30T4X!UZx92ui%1QkxV6V
z$txbs59GM6q6x^Xkc=fm@d*DQ$5H2cKVF>|mg2p%xUS$l?KuybVdi%P+&w&j6sz)<
z5u{Ih19zm}0}ccsSWG5afWxO%jqT!NC&DW-?)C5~6qvN?p)r8#V4V=3QfcB!gb@2G
zd!+fN2MA-ongU@2N&w@`((qhmKxMPt;12<w#$2nAjPg1ej-r^LXI6;<d7pb%3)
zpwS*+=paZ>%$t7Z^{RiN>0z@jF679G4nmC-;Pd+vMo|>4Jc_C_lud~PZ)C@ijF>2a
ztAGf%{$b{1ZK4*Ya6m@(q&_mFH8L;<LCC<nsBD&5Gdd9HfF~F_;+M3EIF0ob2GfEP
zqVL_I#7K)_&Rcn0aS)wI9%z<T{ES61hW7hOCi287?u}BjM8Yz?-Q9w}`qO2cPO``-
zF5_ME%E!HPc1aKJn#<$DilWs+`|mhNNy0o}%l^sx+vT(%`lV_zd<IzWbC*NOGZ&P0
zD<&hJ;|ezbJ{0j_%qbZU5X0bPLX(NA=F7&$6Y|+t!USG=qyZ*E+`qSE$iDlf7|btW
z<>M5NmJ!S~#od4tTvN(}9OLcz$~h}C2FmrjPLpjvc@gX>QjiByPx(Npt2`G+9!r{)
zAF)qv)<q&xxy7DNE$GmY(6vXRo%0g}qHZVjMw$g~9S$fJgrbj%Tr}pNs}NuKLcfY-
z7{c)dsunx6Pw7|p;bN3N<D`jo*nyO!S^gXAP3@v#@N~WF!^eS}h3I3`s#O$xN1zCr
zLPNev)7V0?N{sN*`3m=Bh($)7k-IczoKnOK)_=KMFG|OxoPddb1pT-J-+LPqqx($%
z-UbO<Rthf$i@%m~BrT7{Pv%=QI@V#yViEf18XX=L1RU7UNl}V0-GM@Y-Z38zG~BEc
z&C+(CGtO}E0+BXO<1iUtCQy;Op=HRV$)yrgwpAeqC~#PODsd7MfJ&Ci!Nmy4a0_xm
zHftKlujod)ZxUOCGeRsp+IB`GbZm!5mY_%9rBiFVlZuP*jH(I9`h+=8wWdVy05W8G
z-Y~W|OOMre&Ir^)9kOhtxj;**EKqBcBCQ~kMMwB$3HNJ(qEO^*-D}91{-n6geHMt!
z8?Ei_>2kI`-|A<VIDj=H<~2n+Lc>NPaPmK?SgF&jR(c4&VHG9HxR{vG4mmTWhSFvT
z6%DmQhzW2y)&Cw~^@(9AjyHA-4qDcvzFWTRr|dol(4Pk^${B!rBE7gFu7-nI;mrYm
z7@Z;ZKZObF?0QO&<B?MjKx5g1LS)nCNo0_w$HVbrt3wT1vHUTN7a@gh7G6cf2_KqL
z`7dG>fUO|gpf8fQ5jEPzqK=X(KPPT3_{DNeIaNyWPBo~A`me5;*Lu5e23VMIO8JfY
z4|xJ66zQG_p?cqeo(fcJOGF@hp*9Bm_1~0ag5|w$L&_hW-{X-JkmTcdo9+M7I-eGy
z{BWQGfjMl+5-Autiqf&hmH#~hpW5uqez>W*y2dp&YHU<8Tbl<%Gq$FI9;Ifdu{pNG
z2t7S(-~C~b6)pfJz0qrHnQFzx+*L6a{jCkiZ2fW39?C|h17sEADSx!*)ISyrp&ZzU
zyt@V*EQBZq(}dhqzX{U^=M?=B9xu*UmeCDk$P9ai%g+IfE!I^5suPpM3A1jl3qp;W
zCHgoa^aN$&f=1pIn0chPp1Eoz0NgR`ry1wm`!xT@L$@EMAdrNTSs<GrQ5u1~SE-=N
zdf@3}-X?xI{}|7a*ALm)a_MVZGL?MYW?d=45m2&hczcp%7W0w%pc!|To&*(4cgm$X
zra{T$Uhxm*?e9#0&L`YsK3+_5RZu?>bO28>m|gp&1G*?04cN&_719JYk92$OwZ|T8
zldw;mC^fB((Ez=7R5KhSkO{K*Ub~*e8JwwVGz9aao>|h(vHhFYjJC=RjQK#vTNAa`
zP@mZBye5uLrA{o_H!4eLmjHD6Y*PX-tM_(QY3Dr7btM%`WN=NvF2g?(;0p=8X%RcP
zJHenDJ8KnknS7GzDswJ)cNU`Es*R+v;>}55vJISbcn7%p1^9R^kWCTm^@|!LErUk*
zYFfo>5sM%FEi&o(;N-6mfKG6`{|6&Z&kw$5B0DfTY!(I>m|UcI*~1)iUeO3sA5C2*
zPV)U5u}tC`snysQ#|`$2VCx5GiQ>ncPDWd0RcrX?TB9IP-}c0jIxxh}J(!_4i#Zs)
zPF^jl&V9JUt)G<l?FiXu{x=&)5FSgWOG;j5a<;GJ^l4m%92q?&hGY)JS^7VuqHg07
zkoiCO&G&<N=R`l5F$j;*XJ6S3nHWAvj>p!9^qu8NR3PcF+4{96&V9g#HxmIu<2nQc
zF-NlwEawtfF3JI70UEtjDtKR+De+9nt$$K9XRb(Dk?df6M>_X>5<?^Co}!`TQ1+~i
zC7w-He|^K{1EE;wJa8m6M@zJ)=iuqI*qWXd2ff;jC?^~54AanyWeo^1A3QEd_EldR
zOx9w&YX{vMMXdMNe1uRMy5H9p*?}8{v0apQ!a;47Wa{T<3FW)Fibs4__iCsKTZeb1
zZGy;WRbzsLC;wi3kEt1h%M#PA!`!;;o%(Si#l2|iQ&2@_|C_+gR2A|61~`kDL*pNr
zr&W`Z&q-_v%~`|OCy$&_wm${ECx=0wu`M*F)vnq!pQUDwZe_jzs$rnBUoprOQL^i;
zgQuA0b?+t!9kn=PeUdS>wCaMG9PUS9_<;oCpHxGRARHE8u&AgH)za)#tww0Qrl=xl
zz?G7(6C-MXRSZblm?-Z>O`bPs8RZ=E5HQIqnkUS3`JwC%L*Z~l1sv?nS_6WpWB}5C
zBP&hnoZ<n$;%u^L0pOA_*{PB|=B-mcQ8yqdX%%86D%r-OJ)R(fs#PwGP?-tUS9)U3
zQ;||kbqJL%(y4dqhwi%WOnxL<F<yShS>b4NcQE~i73)?L2eRp;O2P)=(Ir+{dV8Ug
z7EjxC?Hj%tbnUq*itWmIi9&M{&?-ZMdjLNwgg{TByw`ASROShb6Fe^|E7)Kb?-1dT
zvPshAX98zF3k7o)9Z5Ac{a|L+Ao?S*YEAG9Sbo?OGox@$hlC_Vbe@rl5Lo<j+`AxC
zfEbttal7t{n%xsD$jw+!XLaG@&m2lMF-yaXYgKBIdIK<_TL7iQ{eb6D|5eRXEf2n7
zIc08=Oc=L;{v`Ebx*B&hIpzM01~zb`HZ3C*g$D-gZVbXQzE-c1zRpg=vgVytj?7Do
zIyh#MJrfz>nnNL(T(OOz@YZY!@wN>u#|>t%fxg9GDr_zRUdZ4=CQT$Ir{#_6bX#c(
zT8;Y%E=z6-<@2;HvA;}pZbe*WC&dAkLZ)0(shUzRwl}&QfX8s{aeWgA;M^RsSiJjm
zg7G+IY#_u+JH#&8&SSh7AIzL=PrQ?EF3xZ0Up@|O_}JM_$U!A98Jutoo*YthwbezC
z4ut6=1nlZzTVsLGt@VWsIl20|RD!W@K<ITz76Joi;Pf0d2TznKSwB7KdlCpQ^l-w|
zzm8ZQ4EZuHCm4`n;>h}0EQY)7y{EcC+0fs2^t28A!o$GA)==SQB`zLbUQY0Rm2qf>
z^NP?42oYcpGFMqTVfA9YYm#z`KZQ~wN=*dB+$?2J0-|)^P7ixT>eqmQ;SrG9JAq_P
zL|rr~@^i2QFQ`CJHwo@JpakW}6k@x2dE966bl!vvvqKR-pc#qf@G_8qjqoNdk&bAi
zhKUjP41>Q^L+>eq3YEG1=t(6dK`#>~RqOl1Ytb!f_J!it2bw=AvC<qXdMI#J{rL-0
z7If^AWK`FxD3Tg@qWqCL7jgch44PEe(0_h{ONUTY+UuhazBbsT5LR1=5VR~EdxPFh
z8^|31lWAw&-`+Ce@WPyd0nrenpjF8d{jSFVl=U10)#PgyqG@MX$v9!mg}Q^&-*?fk
z58E1Gdi#NsL0T=_g(Et0!&l;Ve?_Ahz3JckudnC^w6~hUw`Iqdt9fQmvSjV?BrnD9
zAT?X$^T61=#VH!yYOa!RruW11+~5%FQ`H@^zm^9)$UeR^mH_nE^p;D*9Bl{L(jpiI
zfkkVyQ=;pCjl9k5jaS+;iXF3K@lr=yUUR5ZiAV&^79bfyH!5QXLo8(510da+gc)$#
zRbk$^0*kl?k2RdpOYp?HP_#A98Wkov<Kdje@hnx-oY*nx`<U>ho#^9wTy%R6b)}Kz
zmu0&ZBtDf%bPesLl)Jd{7Y7FxJkT~;7-ZuL7s$~WltEAPb(f9@C)IT7!#1oSmq#er
zmR8}r&iR<c23rEA|4``4Nv!s0Kb^pieLr=j*p`^{8BNuX2YDkZv~?ZS0$s)gmy|MV
zJ65EC(ND%S*3swd<z*(*6A@IBmeQk%d6Qt1wVgH%9%cxIZfL#`^sSTkn_Yq!LD<1B
zoKDbGvC!c5$5mz4%Pm$ms*<GSl-OThoJ8`&Y%4O8;YKAp`~X)Ay1;2eN97e`5)M^&
zdujN2NBi83is`a4l55M(s0pB)k1Q7#te7ZhTkL^oMv4m?{T8aue01Sx2E<yT<g~<;
z0z-Q0T?Yp-oPi8I5_}KgbV4hC$?Bx44jv$(|0>a~2|N`s88h=HZ!b9|i&if(MLR_;
zapyWR)2#n9hj@}zS7n1!Rl;1L@}@hEOcvl~o}+-pmc`z7z+a$yt6a0cEY=Ze{g+7#
zU7@8^y^3vzhg$m32od$&6O`8&!aCCv7HgSMXJcV3topRhI~9_$-dTtd@gL6l9qniU
z&9z~i;2d|`V7)T<a+I&$tzV5&o|mXduS`j6I5+@<R()w<p82i3-l^1L+=}vfR|&_C
zy){N5d$4biUOfX)Z4Q1x5FtyT`5Y4h?msC`09L}-##CBETglH0))kV6O`$Y2UFhiL
z<u&lgS7f;S>ru*~u4cNX4_3)@lB}6=mlPq}X4uOR5{CBWkSwMf0Ih3hQBH1lQH>ol
z)2EnxVvl~%mTznPi2z8YW#24uTf0aEQ)^@yPvyA3Xjw#jv$%Fyz=sv5C5&*iAgqq;
zsUc8X5>rzdbOz<~dJIyC>LBG=K3_PbgFb$KIdCZu^Ot0ud4S&RS&A(t2zaVsSc=ui
zCg&KHLB;!h7b3D->wNiH(iv$&P%npz(@{brC*#?moq{+Qt}c-hS`C=6#P<3U#VaSw
zb5mdU8g$m!VPlzRcfp)Z!F|ON0XQ9xSzpayh14?QgNNH4w8lpO;1zJCl*X+o829j@
z^9*>Mw^U44P5$LdN5botICUVb19B&Fl$5QSD}^=M8FPa#bl|D?=T=K$W%3~!{s6Na
zai8tpLX@^z9E6#Ox;(6`DZ<r<(<ZaT4yPChPbY2UJrcZA|CO#lj^|ONB64tm)8n1*
zN`j+C>Y9}46h}v^rClp9GAv|l-cxRsTyo@LWsV%&t<E4h_Hs7DKbjDKT0<OsMDTPB
z*xYl&8^YV%0J~bT5hp&l#Oc!h{jqan;nD4-{W!F%^RazCg5Mr$X_<aM-_vs=aB*D8
zj^3ef&~g0Pf~xn9RH@9L1iimoQIdogR*Uu(7T(<dwoJ;b&ODor5FvtZ@Ry0(I}W7X
zPQrgy2Oi?>$|ttEmDn}~u&>-<2je<c2DlS=)fQfI&-2C1$ad)Re?u70UO)f%)g);y
z`@8*qL__LCmuAfQ6j3~iAncXK_WpdJNLnTO*+l(gHLe88l8Wf0Yfa`tvi$IrELQ>r
zVdGt5w^));c&*>!ZpYfW)gd@=_5FR0rSRo*`}N%p-Q|6IPdz3O_x)K2?v0`FJ%|k5
z-A+D;&x~NA20me}&=|L@2xsNC@SKcAUzljKuB%$AiE*Vme2&H!qg7^+mOM&(48NZ-
zI-=TsC_uVNESmWzthWrRW-Zu$(nem~*kXkfz7}Vq1ab|sNtw~0uHw5jcVbNZdF<p{
z>Xg^}DvH@=Ji^|D*h6`hO01d4Q8hipg7Q0)aawUgKLFkfty=&$x_0sLLDZd11m7&T
z{da%-x^nBKlxn(1`mdr=MHJsZA+qNr9ENNUt_jbXt}Cj?7tUpMI#xwt7ODp>Zh@%=
zi=?WZljUwZcI>0|z1~;`OTrgylN;Tq=*@kJ8~OUq?T5QNOJ6MiGPf3qO^=840B@5Y
z7UgETUk<3BqJx#5$4kDTSys=2Rdf*d(*F{QjKx<CdqoT&SmXzFK%^tW#vL^6uHG{{
zK!(L+f#Bz1qm5QIoF8v|chx6IJABw%Kr<`Gx?!YH-d!w;tu3<5<vf+%l5O5X6MWEA
ze1WND4ioS_S>G+=D(hLe<#?E<rZ-XmGx@~iTH7{bgOYVtI`ySJ{8X^B3_7M9y-V4z
zDP3-P?aJO5xiaZ|n?Bkq;N}_TCX1^v+Nni}RU@w$^{NsRtImje?Dh)O`f7Up&Qjt=
z+wWBP(jFb|JN<C_)iA8~^YIBfTG3Ui>kc&2s~<EQ%8hLxj7;g)2v`wuvX=~p71%d+
zOm%14c>P-_Sm8Sz&5qTTc1%$U&w`;`r^GgCSJhK#CGD!3Diq~`<nm9=^~*+f)dBPL
z3R`svw>HQFIVn+S*TxVFdadS~FICs($O@ZZ`ABAqZn8Xk=Uhds6eR)8ES&8}8EIPY
zCWe)GvED^eR}quP@-(gT8%+ukvgPs^80{-z7uLWVH<3}S);7tlj*ehDP(+pOG`73o
z6Dd(+#G~m|jkC+!MpSW2A+CB{lZ!i+T%I8%2vQ=8t%DCFC5OY6MDn8Oy0^2)QWcE;
z>{#XWY=#P35|3nlH-#+yJ|Cv4rl4jfW+v~GI=>90<dyq$mQ)KuE;qqqK=68@9HbuN
z=Fd8N<6gE{7L}+S3r>828Tc*ks4x*>Yj_{5mQ@fbowPHOQhuok!W$1&tOQs={n*sR
zNd;0IchFsNOQ*P#5uyfmrCe~5->kzNQlDR?rw>hizs25DVNV+>eUc<=Lj(HXgnuts
zkCbA*&Dy8?RyNOMJVx}NaWhi!QwQ7<@G*jr+9hOLQ>V~p4))@#9fXA<H=8nHrS4nL
zmJ_DOkJ<qh7vIXPu*&7*vSQad?o%(upP%kp#uBpo86MWjX{}m+T_wG92&D^Ri?1Yg
zP^@+rGL*1eTh8RPb@S1bkriF@0=VbI+<9msoIv|QzAS*)O{#O2ki!o&`Jq)_7=uwC
zxDzfm&GdrLU&_50Q^>)>{5&%%<mJ;119S9Z&kSLK@~pgxNXM1vB80@e<wny69k33v
zX@_44&mL75J`Bn9+vLd+AQUY9o>>vJ7s^gm-m?PJbNULy(;0*<yHa`J6UX^?$5-K0
zsr_HmoTn$6V^z$6POXM3ZY%emcigR74xHJ<w1)%ulHzuAsJ#*n6Ay`YHXZrC_MPm4
z=)^mn?Hs-=oH%&+2;gHpmIk&&3LzY7jHKHhq?g2X&J(Z#o$I|K7vQ-ZB%n2Y7K%Z%
z1e?T4<dJy^5-kg=1f3%c=`w@gu=u&4B6MHlio298zKz91AwMi>%eKQDp*r+X^rn}l
zqbA>?(N>qpf{GrLbf?D8;t)Ys_JlmLmGy$bQ8miwij2lFPxZ9xjk(L-C{aLYk4BCF
zCXpgzu^E6zLhr%8puZtY#wQKtN3%!8LMxEtOEO2TE^F)Sf7;DIV0&gJ6jS-SEt6{j
zy*M^c@kbh)W8|COYa!<UNe#_{GxnBkDrOQVT_RcX>m=0kl+3EE6C;+VD!`dqmpLC)
z8*!XgZ;iI>Ba22Z)Ix1F&2Ms1w7EX&6T><PZkY*$)i!&HvxXf8b7%C<ZugqCE-*t@
zUyp#J4xU60`(X)Uwa4fkt`lr}82?*d-`~FWba<AOD@s({x~lGWY-Jy2w93-Wb5-X<
z%;nM-Dn!=iok%O=N{t%X*l0<^(6$uMrmGHCZMW;{#%7QaxL>6duF#0TJ<oG1I$Zd;
z)}`f4McBB?EN5Klv^$=XShJ$7wW&4QhstTY^;-9=7$w%CHE{(ll@3?K3Myx@RqNFK
z7BjrFf;S`uCK@Om!P&fq<$jf@56<64C%ML+v*!@Dwl=Pk_n&j;JHMT=;|QM7FR)$@
zTEXVI%Q|~LT>@`N7I3*GJ1vdC42T_3i56c{OG)X5RaKHvvaUlpZM)Aec)MTrp%U~}
z1yJr-3w}lXwv&TuK6I_#u2xZN)hN^0W*2V9<yHf$w)7J8l@p-vqHrE7)vqJ0dP$aw
zwN*s7<S9Mww^q+4sgTy1;MA_jsm=&^M=P(F#z#8{9)B>oupMqIP<Z_<UX9^<$BvUd
z;^>Ei^0v@AGW5?>nb@bYVG=*x;!34HN+GxzQE$zzl-pNHk;E0z4xX`y09y{8XhK`D
z84l-0vLS7Emv3HI2QRwyM*qM$X3Lw!o8X#K_jEHV<?#ad`eu)enEa?KY|oqjARMK&
z3HL5B`_U9N<c`tLHm;3P;A8m3*om!tWpruLJ+9T+Tm_p$XVA$kut89+HZ~DJWry?$
zndZQ;7soB@U3y>*Xek5+j8uiNJSk_R3I8`+Wxkp`Mgy|g(EsqWgTmB)K3OO3=+u%#
zCiPy$^ZDWbKM8efDrviM3?LvF8z3OY|3~)de`@zE9POO+O|8rg9P}OB|91rG`hT+O
zY%RIPy8g>D6fZF%6z2R*>*RQ>EuP!XSvzCqH#^zca3VrXC=trg3k_VKhqvxPgl}=y
z<1XauIC7=U;j8`q?zx~(qq#Nc;cd$8F^x~}dy;o<gv!_^3RyF`h&wq1u{{J|PX)h+
zx?+VrNc4@zT(PGZ!EPUK_pS$DLgDv{A$PfwY}BeuY6l$DixTJzS_BYTBl%Lz5nx`*
z?SKm45@UeRY4h;nUj5o20_Y;k+Aq#j-HcRyoMpU8FrYbr(ty^)z96UrX1M{$o@&6V
zUdA9j<i7*wARvV?5sYD&e+qTIDQ-?n=$Gt^_3;y0gRtw(Q2}+*6cVy>nJNy<GVb^>
zFzE9<a4|7e+%&Q9PhTX-PD%KJ=Fvqg(~N%MVso6dA9<3JA7eaq{ISrCBe=C_$Xv}s
z8_*R(FdIjpMu9qpI}dFnb_I=9onbF1p>&A>Lrz%YxWE@rPL@mv!)RyX<FCi}%fBw1
zUUz0bZhp>;uvOck$yL)(ic^Z(*}YmrM!wI`x6kqQeR+TYDotTc3g-Z#z(|+~8qo;3
z)G|<-@qY(F1w+m-(G_)eszc2X59o%ZKDR;ngJ{(~fYlG9pGLAP43-#tdq;VWAlk2{
z#_350GzKG~UU$r^CW5(L9^0-q2XV^WD=wAkzo=-R1_97Ge$mI?pi(ge4_r^t2bRy8
z4H(TW#GZd`Pw^ncg^$A>f2}M9n1=Td@i{hdHe$}#-QX)^Irw&zVz_2m6UWTMaDK)(
z6J-wK55O42Oga9X1lF;oS;u(e>U0g&%=QkXJob)4Ne^M*5%xlyppb^fUjMceX}9ZB
z%<FNIed{u>5y!Vi&iztliiwr+URh>BxhrCjXVFr-EEqo`kp(W~Aaqo22n^t!g|2~Z
zYI2t;BPM*GDZ|7l8({^|Ax35*WTNzWyV)GwMHt@vFE0veCJRPeI4z%Nl&nh(or$<j
z9SK|R{|7dil!^vu)F9ndpl7&)Q=2$mDc%+qO{YjBVS1HVkt^sBL=4P?+}@}jsqe|;
zO7TP#Hzj;3bPS#}wV~n8%^+;cZ|WM@0CKgTXdkUqUr`JuO_!*Vjw!BLEQp9puOEc4
zE{}qc4oE=bZDEQj@LbByeK9?sDZ(HKao&JSD709L<iO#>NEG*xEx#XuLeI=3fu5)g
zl+dPlJ3Z?^Xe6f%60x^3lA{aBejf=wj_YhAU;)O2$J-3%eTYsutFQ+%p-$X>Gs`aq
zC^Z)KB9<e68|;9laM19`BQN9L?Y}TmWIvIp@t88<BJ0E$xTNo!cRuOfaLzkZY~vQ3
z_&y>gYC}*9&rc%yaC4mUpA5{qX{`x|yj8all#j8=!aoD8E*FMoW}vUUlR%|tbot|o
zB4+N$;~*=NRVF#d>jA2(WcXBJn7Q5|csxO;!Mgh3db5%cBKU)+x`KNHy}9^!8vhPc
zp&g76zIfE;PNBkhA-#aM4G(97D5OE(z>P+&O0LX%X;PbDko^D-SpF<C{K$eQ7BMU_
zRI9dxA{p~|S+hkR%<=ftgtU8p_D~kuDEw!pK$`~n4-6p?rngZ;^hF@y8M^^r^9b&X
zh<(cd9&+$1vd6LWMaQ}1uG>_Ni7S)Uo@VtOosZwQRNo#R+}zmT_1o7l*nNT_h%>tW
zj2X%gU5egtM^3o|bGk?8-qETyng$*uQrAi`g=YUED(Csz;W`Q=1S?@w2RbXYm8UVX
zVm2#Htr5yuQ=kKQ4_psIkWv7)IVX4ie1a-h2kU3Ig~H~jnJF-gpsrCRsyg?$Y8w|(
z72%rt<L*G+S$Kx|pIs}>r~_pTvo_U0XDhgZ#VGKrM?oa8nr?m2wA#5rKd(N9-aKZp
z>w!mZMw8}nSD{G<n2!S?(Qh608%$g4F{;7hUEvAA9gLg*BGz6hWPU1HB#b1s_C1i)
zta#pYlLPakpQX11kOJEbFS@@T^*F8StQ#VXHE%!TpSN~D{lHHYsp4PGp#=UR|D&?=
zj;H$jANWN!*?W~)Hd$HOvSmf~xVYxcz1PepWXsH`%xsbnii8Ns-YYX?Wo7hx`+Pq2
z`BL3JzvJP$e>l(A>%7kEyw2;q?>*-f8+L0^X3p*V311;>_RM$xU?We=hnv<^<=@(*
z)-qw{@_~;=M&9I#>Z*W423WqKo>4HocgT+R3dYw!_Sy(0ao;J{83P7ZHd5gWwWHPo
z-HDJx#r%Tt==CZhU$w>!%D$a>jStHc#e@?+TrRSjUQ;9f@k!x$ZzGyTpRB>7zT%Vx
z&?^y)hwq1`E7Iqqi7~xKXNTI+;NdP7a9|5RZeWr_^Q!_?FFDG+V||m{X&0==P}WIC
zsY{VaJ$pF0LlHn4_JQWygcNaX+B(L?mFEmRZQWFXb>4&({P;u}ArkoJN&61vjwp3k
z;`RgmkLa^QP=ZitKH=1Kr;Q1O4=~B`7FA?55YF4Y?y9r!@F&LBK%wv>n7Zm`R()=e
zgE32L<|1Z`lizz5c^2hPA_9B<<ok*f@7&Ae#-)0d64jS-bm<p^ryF?R!35%M!S#2k
zN|KGuXINS&32~`t%z2#?ZPSeH@OK!Nc~;(F2#(Mzq&<ESYmHgWug*|beXasut*R_2
zxR+6Sw7$dR=17Z(PLL=Lh60W^L$-b6GZiQ`I^>*FhjlSKJ6uZT)!?$Zru@~FEJSG>
z)d3x^Q!E6IeXYPsEuBw<tl132WMpBM#Tocmv(e}Yx=8wk+~(O=8s%cPJFho&Uxn=L
z`o54tq+xeNmA$5X5E>J8|4B2kczBdjD2+c+J{sKWezc6~b`<}cC$zk99C!5fMC=r*
zPX(amhYgZ5F(e~(5m-S+Lg#`(*CM2{5bK=jW(`^QZ8hDaj>!x1XDHM{w&GIqTll*Y
z&c)<v8R|wd^zJt(%O<?GyUM^xL;w*{<hjHt<QgPlI;!se^0^`cHRFq@t<)OR<4WV>
zm9}IG0=BBD!^W+!yfDUmmRVA>AX&`#xw$TD4R5{KODQk%muB@#3_KJz3*L4=L{Yik
zf9_!lZoGwj5F6KW%_NgLs6QvX8uX4rWXJMe1{zO1wzHjZ&Vu(NGBxA$)iFxutIXgA
z)I^6S1Vv!ctwaLWs3O68#cUy}st@A?iilr^AB{c}sB3yYz=Z|D`;hFXqMVCf&E@(i
z3~z6uAcr~`jb)PT(!~rSG5U0j)By#|Wf_wI|19py_oiq>9Rl-UecS`Emd2fh?VfX!
z-5~geD}gI5g*{=R{nLq+YCh4js|Qr)UHViYZ=^KH+O=2g?$Q_s<B-iq$P$FIa`xF)
zDc%p^XQ@@q8f@qV4!rf#1$nYQ!4`Ov5II!ZWkJf?^C@9+Z+%GXQLIAxjj~WNMk#Wv
zJZBHN!4=Vryr-9>!~1O9CPQRK9<g#+E=X1?5m;UgW{p~wwyFirYhk((7{DnlO6lm#
zpw;vGCULEU2rg@|++N>(^W<)In~;x+?J2{W))YeQR4m6g=TgGCYS$u6Tjkd!+(y3`
zD68`g7#P~TZN-x_#{|(Wxs*R!Y8=<Cl8I)~5p3gqU*U4uMexd}5!r5@p}w-s<&3K-
zyWRm$Kc_|e^;M9b7rW?lMXO+NCq}3(&ydhpYFw1>!{}mvpK(+qO(9IzE4+eVX@Duo
zZpNv0^=XTGqz8VfkU=u0OKQ2gW5oGRLqcysJ(scZHLJAIkI<XUq8C3XST%``;oD~r
zKIIcpKx?agq0c9>n8<|~EAw|s<H$%>bh|FE5gb4}JCv?~=ob@8XDeB&uzBB1gZ?UR
zhn!^N-i0@Z#mR?3z=`1T(L3~wm>a1bkFnEOj!2I8ZNJ@^iymQcmfQ*~oSMW6tnwT5
z48RcXF^KXm&^?sQyfu!tGHFrzRh<`~Cg$FeP(*(yH|6BxaBNDFy0@mm73v>YgPW{A
zp0Br?A--`tEN>uY^DB8rJ$q|K{Ip`9%+O1X7j_V><!ETSV!#z`X3JHmMyjKZB?&qn
zWf)VJBHs8=5`{~cnD?f4x5Bx#QkiROaRXuFt)ely3yMyWII~<*h%BzR2+jPBP{iZN
zMeQ=G@lR$lW9(98zH$~L_JZcOiW@3?Me;335r*+nH!%Wcd4+jqz91+QYkVZ#>*{07
zox@fG^wQLG)Ai7!nR{PXU0#R3D7vS?<d<&TQ(R=c#oCdgvDxm!-g`NbGvC%Ln_leQ
zEB-`YQS)MY1riJy-VW&~rbNEBVbx&yoW@+7x?swdn8tYv+g&SC%7s_fyxzGP7plcu
zZ)dt9&JnbQ%~SfZsdOKIUjLMqD@UM^*@sg`(=t|UGuS~6ee05-+i#L#Gq~ElI^Q)u
zl2V()Q5DJLR!kG3&zD#v%?HW%AwZkkF3CPeq$fh!wI+6`S8ZcRphjhMi@MYw*O@zE
zyOJ*$%<^7YO>LpzoP2Uo<>cDn28~I0=Aif+Hnc4HnmcG-n7IPM+CxFuf~_tR9TxO;
zVqZPrF0K*7x{>l!l}FHBBMAS;2vjd&pDS_==S}F+qf;$C<bnyEInjET&?iPP#}-j6
zbRJ}myqsiv?sg<3;=_Bpcj16wW3MC?3-U^W$fy4HB84+ba$Pr?-7$5!4~FtLTKAp8
zm#=udeOogzNkkM^9s7vcs0{5GvJbGA*ErFamZ2zmKC}4;2cgr)zBl%(C3v(rjJQA-
zxFd;+3bXV~hqpWz?Tpd&3savk?mbF+g5{qVV7k4TCK!K@1{N*dILy^(0A-q2EJ-J{
z7LzGPpbmvVj#fO-`RBM+2LrtKR8m@X8YdNO6XM|MpF#}z9-v7o72Jt-9T}Rs-}|xV
zs%h}PMA)!F0nMBWnh+!^o4R-!Gy|Pg!+M@r>~3DrdQ1Hg>#FY71HvNVdz>^^Xp$T+
zCQ-)YbiBiNRDVN@5%%m>Xd8UO9TXydG*oPdq1keWRTf?4!96#e`|qtX`)@8U;6C-C
zMTpzl4u5qeB`O|z#aK7{R6CwB$1t3(qSTMF88wcQBeqW_;0_MoSjs5holO6siiwH9
zmVmT3qZpC9<`fg5!}efy%-D*t)}(~q1M6UtCZBbJ2ePpBmA#!nUBbh3ca~{;+<82g
z6uXjlc`(nn0%4`pBZ}QOTq{`~EcfeiUNfpe=;m3*=%=g@;VM3Zl&Q}vt?Lvu+<S~l
zj6zH%;BjfSS%jXP#w)}A;WKuem((%1+$b9efuya4_DIz$u~th)=Fk`AJH1nUdcJ7O
z*YOv`)H*JWIyT{m6q**Jaznwm+PZP7!vk?8*Owow58JKmV2>uM-RWPIFk+)j&s`<2
zDA_;Ob1=kM%~`-P!e6|CPM0&Q5WQ5``?Vi(1ng}RE#{gS|KMHx+#15Ri8@sB;S(0;
zFf+lu_@Z^2^|<GQ`^C8{j)5Q9Q|IB+O+(YvLL4rKFS(_heDu1cH+Jc~c5|;Nx8LeT
z$-A`f#GgcMDi%!YkrGF>Agk%VZ<*(yns4fe^TpGqCXFXeW3e=NYmlPCdrd275Yi=V
z<$<7d+@BVlc(}8;gVl{ktD8SYGmhf*NX$MX9bca$LHLdfeoCw-ZxFeT5WBKOk*ZJz
zm*Pe`_BkQE{oKIEp=i2o%_IEV25Zb@-gqGt1`%(1><KkW56-c-P*s!eub!8I(<<aS
zEE}_pc?xHQR_qlSgi=xH_6Os(w|*eU8oy%`E$7c=vXRL-uUt~@!%VKz@M>eTvIfoZ
zjs#_pML+@3)11Qj_~&o#QiPTjp~aXT#+W3L^o+(C-MV1fjd6rHIG>lU)61pF&JKh3
zs*%V8hh0Ls*HV~`Ac|F-)<%AwVyxa%OxHgyUw~R~quK3;9=KcS4P-T_>$wyg_R}@0
z?|qhX>vdT|knvC^Olx|oSUY^Ir&&$~XAv5izAqZmu@3dYb9+#-vN33RsTDW`ZQPyB
zPEk*&&RX%sR6d1CSN{_nuyUR2gOa77XLKwZ^!M)BxmgztUXQ&V%eDSoT-mWz-4z-*
zD)pK<tl9o!5vKPy@lm$%+g;<X$NoGKg*>Ja!y^W5FTB#x<)JI_U8J*KCdqI&kz{s$
zqv1Nl5;?WhF-8nQeTG@j5lEynIVr3s?UhFJaN*XV?={hbH^M%T+BjEeBp)_<KX{H=
zV^3UsHP#pL+Jt1+>9K7VzoW_W;g@bv2KO?yU|*hYaL3|3+@xgoop<A%$;`Od9&iMZ
z9=_i7O|y7jsB<(fKxAAHOF3C!Jh?$G=s|X8nkjbYHtSk~f5W)^9PV;gM}Oq9m^(Q1
z9O>70LL7tv<vlA)T45Qk_Qq2eE3LRM6Jgb$GTxLO!!MHw-No|2@LKK~S9%slT&}(w
z_O(6=SN<(O9C!log>HDkx+<sAVwAwv2)&lI<90U}SUB8ZZG+`OWnZc|@x<)c)l`zI
zcE`D$yoE2Az6@q>->=5#uSMY}S91?mk0yCI<Q#+6#n(R$mJP%>Ih$C4iBqg#QTfZ7
zbF^2T78<bGzZr^6+055Ts+oY_mLCWzZ5AamI_I_=6}h9(P!Ct};XR4W<3AjE`ZdS2
zjw_tktIa1w!@f~Kn2fq^`aCCZ98ddZlk^vMGMp?`zq$)V<Ccvr5aY|_`L`a~SugK9
zbCQbCD%%7~wFV<HY>9wP@hf#y5=DWp-rO7-9@|srx+u?QG91No*;8x2JX%ln#cPTZ
zDv)W%_5RA@?JF?NxOAsb8;>n1zbOr>q*t}v+q7a5&;-5hU8g56<l=63j_}Yf%sS)i
zm9*Iph9`^jkuB&N=j%Ib`??WyA095*Bt)wlr$5VQ$e$p{>b2#LB)xh0(Y2~}P3JBR
zCd&b>J~tIj(^9I>@eg+lN;p8zwd_ah>=lMzax1(oU#Uw<49{=hm3aA_MUGWVjxo>k
zT$H#+0Oo3hd%5G6h52<2I=%!>kLqQ+lDHR_^G1l<+m-3v>m!I?`pux|DI>7*otEA-
z>C5TzD?5;D>YG_?_U+(*=$AKobOZfvfCnmfmXPsOld};y$$Lw$cX(!*dGm0rvE4@y
zrkK=pgGxRF_Fa0ugu^e|m&{xw`*XXa@V(ZnpSKqlEUS~XY)!r0!wz%Dc$NAEnk&*6
zO*U$1?N+6}M(y|^VNy^nwY+-#mR|F-q^De?!Shwd3}urSL9;Dm%bl(}Evl^bvVE0_
zwZ*r6muuKOMBB~k+)zIw0tJl^Jgn@OByzq51+9{^r`7ri+$6f@JUI8p@taIS>EeD$
zW@5>12a`{z=1>F?m6rki#(jmZH=~7@504xtb2d9KhnKz=_0&(w5EFT9d4uYJOQUc@
zKmI9-w5MnATMCWH43B`49kSMz`V#$GEG91%!DI&U_1lAYR-<~}Ic|~+nz?$|_S@5L
z6T{-J_Y;M4sSn}peA;6u6TzEQcvFR#%Ul*BxI-VCP*Z$s^6_kbKsFPWOgDX5V{QCx
zb^6eJ&&&lnl=t(-<_~5j#$tIcjhYwkE0|UAtZC*1@?+RkCR`OT-WIjnVw957SZI<e
zl}r5Mnmx5n?6~Z@x6PkA7*BdYmqw@76@4C4mXGq`t8e>@N%t#IAnu1-i!0FeVF_1j
z(96%U{8jg9M5m8m`rYiXlg|{pYjJedVNpStA+I3zCW0mhht5Oe(&!6&l9U*W_wT}X
z^JmRX{VMRR7EN5NE<2XU)-=Q!=T2@pi}_0l_16eK-O2V==W*4%Bh;)YFFi*Yl15LF
zq#q@1?pMR^BWyoK>vbSx+T)J%>@Jf*Jv>@u<O`Jis9KD%_?FQ5itPdk7kXQ{{>5#j
zAYWD5%|{mqTH0~K5=_NOg>NRH>d6|j_VIi)G+#vxEE_B^;2pZvtn}J=9)3_`Vs<lx
zq3ZyltTrLUzx7m!!rg>SXUZ6AXH-Ev)4{O>OG3dRU_vSV;Hey#39P6x4VBYiB*hQi
zOz2Dz{>rt?bnnkIV{-;?@-O5m)Ze+L{yw1kW5^RoR(#@y0AJ{{VcQ|TwsO%!x7cS7
z6>po?+ZGvrYGv-#jqB0ftg_q=v&7u>je#t8h~2btn6OAkm+UtYE|c8dO!4irIwqey
z=;z)I;eA+r<dTR_f0yTy<n}7FT*155Y_1P|j2t9Sih`_G&v)jEmWABwr%7=Qxi#dt
zF{d(E5?-*wCBt-N<d+)Eb?p1Fq|&%pabB0dy7!`CzfNl9?6&N_1M?^0$@z_yZ(g-g
zPa(@Kv_8q5*MioXwR^r{p&TEc`CNcu>0n149Rz9wE=FZQ^0~l2H=-8n-OwIYAoSTS
z9s2YbVpAsfhyXvVO{7IhoP{+|4MP9Er)@xI;IbQA&^PZ__4iq%Rh6wRtU)SXwUa&v
ztDoyVyj}r^0odKoxA-yxc0Zh1-Jj~@X`1%4&1_Ha8lX{OYi;%Ic42}T-J|p+XRoa6
zj+-bfxE|CzjdI?|x|}mY6^kH;b(GF_g7(9tBx!n3>lYfDbDf1#yMyax+GLK+Q8?gy
zeqwHZSxBNv+-^B17Z|<S&Tu~El7$k&T9{k)BXdwVPb6;TQ`7;}9hR3l-eSaw8=E$k
zjvnOl2;-2~=J*LFiZxYNKFm4rr}N~>PR)@B%X3Fw<a(u-qL5ig7e;JrQI6VT)R!#~
zR+;E-LzY#Hu&%K1mdl;SGl}caPcLRa@GFoIvKkWx8Du^(t9vxe_{i;Jv%~Fk3{@3#
zt%a#9<58uhty^;rFCG=zKQQX#v3@t)Pdho$>wX-3{GgL3>UzMXpxE6U>qAfqUl_l6
z3%QmgD2AQjZ9IQh52u1j^9y2oC42OI((570`Bf>?TGS0HQ!MYFry#U=Ct1nP-<2Kc
zZ|=9+pWBN6+?j$hXej;AdBWck=k5)-muOgK_#FDt){+a~zQ~b)^>n?sWLV~s_#;1t
zT3K_8`+ifUFw0;Q6)_4!2=HVH#}iSkVXSsr+;jg^|HB*QRXA9mcshpbuUfq?&l1Y5
zkg#M`@aGJGJ@Ib}N7X_YJPbthiF;B#(w^zHxaWO74QlxzBBK)xGjZ_4Hk^O<?i>yn
z-N)IOl$b-;V3IRkxP^ocG)up8`x?)E7BA-^b*l$t#0gcAs_9tzd8;J1>~#~=?h~cp
z%uLanFOCft8t-;p6<oBgFn4@>TP~w;gzqJ>xX{j6h0DHgk~z<vWn8PbM*Mb7Uq=Ns
zo22c_b(nE6gZE`j^)@iHGus>tsovE;hBxK;PGn5%ViXMCh&;v_ym&EKhYt!H82R>K
zbTD!`#<y!!_}FVVfh)D4nV`KI)^o7;B#GU1&I{OHlShPwzotekw?L;7ZU^R_ZLoYP
zmRXwcmJgdZ@|kK*qPSO$vb>l+LBi`RbMWqX6f|uY^JUKW5T?(EV@lb#n{;yXBZ}Ez
z>weO;9CNTe`x|$l(kQN^?lop{VRs@1@AhVYP7a*;AdSwgS>JX6d-wHykviG0`mi{%
z46>HZ%_Sp&fUVIdb8;z?9M>vHY|xK5z-`4n+)@Ks3_9?GX>=>xh_LQ9pDN(0ha{X@
z9Q4W~Yp1k>2$koG1ZJ}IX)@7rA8~k}zl`c2bZIqtQr5!REKcZ>1zfVD&`dJpWpcp1
z|8#@$;S}#40ww{Y@yW6a`*LZ*jQ_gH^9aUbha8sD>pq#!M&)pB4c(jH1d-Pq8Gd$|
zQfR@~PLpoUg;_>+^u}Pl;iyuyuWnv^+tWH$B{A&Buh^A&yR$1z$i3Ok;OH95OMwX%
z!*CG{)INd9`p=l|PW^S)URrrPyjI6Ca``=WG%9^3aQ5Su)T^VD6an=<4D4UavPo=N
z^?>i!nP%<L=+1?$37O3?3sSGD`#l|=xu<^DX)f(N3{u=@EZo9AjhJn@#wrnD+qnBg
zYx>1&gyNN(Wzdfw&3Y!S$Hj+jj!5x4b5MKbbZY3(?+nL%E&15EUaZ31sQnI2b&A>5
zKFuwi2`V|AsyY=yXSlj$#u4I6DsW>=#A~D=c&gKgzCOnBIYEpBkD<aShbRUE_0~Si
zwL2WISum-=gG6g1fvKzcg&Mf)HVOUCvEGhe9NB75bFz&EqY@UyFiLK|w3*T+^+tRD
z7)8O9N7%Uw^Ban$3JNMI8V(S4L7*n6lJH+|{&~R$o%`n<A!t?l<gJ>#jx?8&x&qH}
zI|w*`{Cia_&}*P7Eo5tb0r;mR6cC8?pNc1cvi&)L*B@2Yq}7!a<h6CU)fE0E0MY-9
zaEu>>6X9|I)6U%0+?@wmo%5&a*#4*k1G~67fZ<5%lANj=|5IICI2?);KzRz#{1d<h
z40A@fSb|~yL&5s1*-WgnSW7_dV4x2556X$*4t}C2Kpfy;7j8=ja~SMjQ~b@rnsK;N
z1Ju6=)H<0+zn5%(TD0%x`)-QAIkL9q5T{?m4l?2z#sC5sfL-`b0{&+E69ZoHcVC==
zIXhWHY<^7}q}hXa07`ts`upPZ@4#$-PGIIgO;ZFrfn6Y$+JAT2uX)te9Zh|JW~-<m
z5X*PiU)qUapXI4KTbes)!(AXwHZX3ei!&7L0*8QqvR)VC$l@4)+yRi6P9ZgLks(d3
zU64>ov7sDm0F?@8{AucKAl*6L@c&iR)Xp3UwY@HWvJ22r86cl-elEdTsuuV*0t|!8
zL10jGxTWpyoTp+3FBJp84FkWx-t8YH+rNtNED~wgNTzyDi~!Y7hTp{>m=nj@A^HtS
z7K!I{FHGAC09|qi@Ds*UI09hEo;Kh=dI2~%*d6|B&jH27tN~}Af~0{C;XTC*Bty=V
zh66rifq;YMUBOPjp)cSL&^G{7NkGDtQ*<5Rn=i<;{XtiSz~Cn%;MeNoHOs1=z@dOi
z*iH!m0|5w`03=$gOJS{505Dtt%zg^GNQE4VT-k&@{q0_WSp?Xc`4smf5a)iWth~D=
z7z&3t|0XI4#}wXr0T82r=Cht6?$Q2+sN@7iz=7cpHh28BNkx;@#(e?rvcx-U(jEHW
zFf|bHKS1{a2uSS!CBZ+r?F+yXzij$H1NGNR8ff^dWB?5>`^jys05?F!`{7tf9KbId
ztG*F1=g)4ddHFxmk$VDDqj^afpuRew{%N<h02~gP`bf0quP1~*1+@OzZFxD7Ly;>h
z6aYO60QyY_2z)^Ef0S&0b}r=Hn=Zh8vA-L-_@iX!Pp0^Bz%7`5Ku-eW7XNRtFsQQ=
z4E$@Kfce)1e+3N62&8YPhi#3(AAm>|b>vLsa|aZR2Yy*jDS9CC6Bn3O9l$!a!0@tC
zbG8CI{94rs)^HqmpxqpRSx--c&##_E>N)|59>l@i!U6n;Xb?clwL1kQio8JLcRJyL
zi=U<bmA}b4JKIBkV@-R!q=Bm^vnN109jszye+jz|WQ0g(!bw5d79XI|5kR9)QsD0;
z+aFK+Pei1_AiC|cx-O7~9RMi=;5t7_wtuhge*`0SfPwQA_mTnr6~M88k@TZv`@7%z
zGas4DzRBlJ-UnQ^4@jv_&yTlE|0@}(>Wp+FiWR^hvjv2l?!|0NBm!Wt-%dHyUvV{R
z0TVC-RG}ZHI2pDn;6D+iE#VMX^ONZedBjmeTcT(M*b;yY!BaAxSpQMR_p}7L2+^a@
zE&~Am#BWaLJ+E#4Btiz_WCe_KB%wIJ4dt*BP@D{qaJpaTA^(w%T>Yh{#-;{9zy(0S
z>9Mq8_a^~J^T7-`{qmD(&j}c)r-S{r{hz={3?f67fjBV;7JxoIgghPpghg%%HHB3?
zR%{Sx6qubD0SVtrw!a7P#p=^j>0d$bBu?qVAr7!#hvtNrac>=f#`gk_ae5Y+bo(Xm
zf0rpp)+ko?k_UAFR~3kUz_j_JWc%Ou{3F*CjBKf<Q0t%+382}2LO<~SGaBi7jq30?
z4+O-HIn1+KyZHSXjdamgIxQ*G2WY(m82Ype*9ZO*t?n%2Y~}IiT$5?FLi7lj2HQx^
zCRZbOk$|<p$RaiK>xh|oz{M^}pG^X2qs~JAeYBykrm79BF&)iM?v^|Ie4?%uYmWqY
z0KgBdFIj&0!$~BSfB1W(l{wrT?g0fH;ulEe5D`KMkfmn;W9@XfPtE&1(vBYtHsv$@
z>(sHcN;-hQ)-wS4#51wKcPV_=GuvOG<qt$)<ANy+cxnLw9`XQqzLP`E&f?p3gV2b8
z$!`xBYCtmeqh$L(>-+!UEgc}hBJ_7s@^_$qHGq^PwzH`w%@h(TFzENK7H8Gg#M7Nu
z0J4pKnX^HMYy~OspAT)$@`?}yMlpbQrAwZ5+0^~t^G<e#00}mrB>%6R;p`QN-;JB?
z55++_6B++?*?*ybU5I#A)3b-!{R=(d{4da7I@#H+F#ke{m5@V!xiRLf&SyVS`xnn{
b{(Jn7u0jW52?!(${1B6aK$X_O6bAY~MCHT!
literal 0
HcmV?d00001
diff --git a/src/org/torproject/ernie/web/ImageServlet.java b/src/org/torproject/ernie/web/ImageServlet.java
new file mode 100644
index 0000000..8e3f1a7
--- /dev/null
+++ b/src/org/torproject/ernie/web/ImageServlet.java
@@ -0,0 +1,91 @@
+package org.torproject.ernie.web;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import java.io.*;
+import java.util.*;
+
+/**
+ * Parameterizable graph, generated by R.
+ *
+ * TODO Separate functionality into 1 servlet that dispatches requests
+ * depending on the requested graph (or answers with 404), n servlets
+ * to parse and verify parameters, and 1 class that invokes R to
+ * generate graphs.
+ * TODO Implement a cache of the least recently used 100 (?) graphs, plus
+ * invalidation of graphs in the cache when new data is available.
+ * TODO Use another directory for storing stats input data and generated
+ * graphs than /tmp/.
+ */
+public class ImageServlet extends HttpServlet {
+
+ public void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws IOException,
+ ServletException {
+
+ /* Find out which file we should return. If we don't have it (and
+ * cannot generate it), reply with 404. */
+ Set<String> knownImages = new HashSet<String>(Arrays.asList(
+ "networksize.png".split(",")));
+ if (!request.getRequestURI().startsWith("/ernie/graphs/") ||
+ !knownImages.contains(request.getRequestURI().substring(
+ "/ernie/graphs/".length()))) {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ return;
+ }
+
+ /* Look if we have a valid parameter value for xaxis. If not, we'll
+ * use 30d as default value. */
+ Set<String> validXaxisParameters = new HashSet<String>(
+ Arrays.asList(("3d,10d,30d,90d,180d").split(",")));
+ String xaxisParameter = request.getParameter("xaxis");
+ String days = "30";
+ if (validXaxisParameters.contains(xaxisParameter)) {
+ days = xaxisParameter.substring(0, xaxisParameter.length() - 1);
+ }
+
+ /* Execute external R process to generate the graph we want and write
+ * it to a temporary file in /tmp/. */
+ String tempFilename = "/tmp/networksize-" + System.currentTimeMillis()
+ + ".png";
+ try {
+ File rFile = new File(this.getServletContext().getRealPath(
+ "/WEB-INF/consensus.R"));
+ String[] cmd = { "sh", "-c", "/usr/bin/R --slave --args "
+ + days + " " + tempFilename + " < " + rFile.getAbsolutePath() };
+ Runtime rt = Runtime.getRuntime();
+ Process p = rt.exec(cmd);
+ p.waitFor();
+ } catch (IOException e) {
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ } catch (InterruptedException e) {
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ }
+
+ /* Read file from disk and write it to response. */
+ BufferedInputStream input = null;
+ BufferedOutputStream output = null;
+ try {
+ File imageFile = new File(tempFilename);
+ response.setContentType("image/png");
+ response.setHeader("Content-Length", String.valueOf(
+ imageFile.length()));
+ response.setHeader("Content-Disposition",
+ "inline; filename=\"networksize.png\"");
+ input = new BufferedInputStream(new FileInputStream(imageFile),
+ 1024);
+ output = new BufferedOutputStream(response.getOutputStream(), 1024);
+ byte[] buffer = new byte[1024];
+ int length;
+ while ((length = input.read(buffer)) > 0) {
+ output.write(buffer, 0, length);
+ }
+ } finally {
+ output.close();
+ input.close();
+ }
+ }
+}
+
diff --git a/src/org/torproject/ernie/web/NetworkSizeServlet.java b/src/org/torproject/ernie/web/NetworkSizeServlet.java
new file mode 100644
index 0000000..7c15ca8
--- /dev/null
+++ b/src/org/torproject/ernie/web/NetworkSizeServlet.java
@@ -0,0 +1,294 @@
+package org.torproject.ernie.web;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+import java.io.*;
+import java.util.*;
+
+/**
+ * Web page showing a generated network size graph and controls to
+ * customize this graph.
+ *
+ * This servlet accepts three parameters that are used to customize the
+ * generated network size graph and prepare the controls:
+ * - xaxis: date interval to display on the X axis
+ * - yaxis: metric to display on the Y axis
+ * - category: categorization of values as colored lines
+ *
+ * The controls consist of HTML forms each having two of these three
+ * parameters fixed and allowing to change the third parameter. Users
+ * start with a non-parameterized graph and can change one parameter at a
+ * time.
+ *
+ * TODO Populate x axis options with actual values we can generate graphs
+ * for. Right now, it's just constants.
+ * TODO Implement graphs for bandwidth (y axis) and categories other than
+ * "Relays and bridges".
+ * TODO Make code parts easier to re-use in other servlets.
+ * TODO Maybe switch to JSP.
+ */
+public class NetworkSizeServlet extends HttpServlet {
+
+ public void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws IOException,
+ ServletException {
+
+ /* Read parameters. Only consider the first value for a given name. */
+ String xaxisParameter = request.getParameter("xaxis");
+ String yaxisParameter = request.getParameter("yaxis");
+ String categoryParameter = request.getParameter("category");
+
+ /* Check parameters. */
+ Set<String> validXaxisParameters = new HashSet<String>(
+ Arrays.asList(("3d,10d,30d,90d,180d,2010-04,2010-03,2010-02,"
+ + "2010-01,2010,2009,2008,2010-q2,2010-q1,2009-q4,all").
+ split(",")));
+ Set<String> validYaxisParameters = new HashSet<String>(
+ Arrays.asList("number,bandwidth".split(",")));
+ Set<String> validCategoryParameters = new HashSet<String>(
+ Arrays.asList("rnb,flags,versions,platforms,countries".
+ split(",")));
+ if (!validXaxisParameters.contains(xaxisParameter)) {
+ xaxisParameter = null;
+ }
+ if (!validYaxisParameters.contains(yaxisParameter)) {
+ yaxisParameter = null;
+ }
+ if (!validCategoryParameters.contains(categoryParameter)) {
+ categoryParameter = null;
+ }
+
+ /* Prepare HTML snippets depending on which parameters are given. If
+ * a parameter is set, keep this parameter as hidden input in forms.
+ * Also prepare the parameters for the contained image file. */
+ String xaxisLine = "", yaxisLine = "", categoryLine = "",
+ pngParameters = "";
+ StringBuilder pngParametersBuilder = new StringBuilder();
+ if (xaxisParameter != null) {
+ xaxisLine = " <input type=\"hidden\" name=\"xaxis\" "
+ + "value=\"" + xaxisParameter + "\" />\n";
+ pngParametersBuilder.append("&xaxis=" + xaxisParameter);
+ }
+ if (yaxisParameter != null) {
+ yaxisLine = " <input type=\"hidden\" name=\"yaxis\" "
+ + "value=\"" + yaxisParameter + "\" />\n";
+ pngParametersBuilder.append("&yaxis=" + yaxisParameter);
+ }
+ if (categoryParameter != null) {
+ categoryLine = " <input type=\"hidden\" "
+ + "name=\"category\" value=\"" + categoryParameter + "\" />\n";
+ pngParametersBuilder.append("&category=" + categoryParameter);
+ }
+ if (pngParametersBuilder.length() > 1) {
+ pngParameters = "?" + pngParametersBuilder.toString().substring(1);
+ }
+
+ /* Print out a notice or warning that this is just a prototype with
+ * limited functionality. */
+ String prototypeNotice = "Please note that this page is an early "
+ + "prototype with limited functionality. Right now, "
+ + "customization is restricted to changing the \"Past days\" "
+ + "value for the X axis. Other changes have no effect. Further, "
+ + "the displayed data is not updated automatically.";
+ if ((xaxisParameter == null || xaxisParameter.endsWith("d")) &&
+ yaxisParameter == null && categoryParameter == null) {
+ prototypeNotice = " <p><font color=\"gray\">"
+ + prototypeNotice + "</font></p>\n";
+ } else {
+ prototypeNotice = " <p><font color=\"red\">"
+ + prototypeNotice + "</font></p>\n";
+ }
+
+ /* Write result. */
+ PrintWriter out = response.getWriter();
+ out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 "
+ + "Transitional//EN\"\n"
+ + "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+ + "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
+ + " <head>\n"
+ + " <meta content=\"text/html; charset=ISO-8859-1\"\n"
+ + " http-equiv=\"content-type\" />\n"
+ + " <title>Tor Metrics Portal: Graphs</title>\n"
+ + " <meta http-equiv=Content-Type content=\"text/html; "
+ + "charset=iso-8859-1\">\n"
+ + " <link href=\"http://www.torproject.org/"
+ + "stylesheet-ltr.css\" type=text/css rel=stylesheet>\n"
+ + " <link href=\"http://www.torproject.org/favicon.ico\" "
+ + "type=image/x-icon rel=\"shortcut icon\">\n"
+ + " </head>\n"
+ + " <body>\n"
+ + " <div class=\"center\">\n"
+ + " <table class=\"banner\" border=\"0\" cellpadding=\"0\" "
+ + "cellspacing=\"0\" summary=\"\">\n"
+ + " <tr>\n"
+ + " <td class=\"banner-left\"><a "
+ + "href=\"https://www.torproject.org/\"><img "
+ + "src=\"http://www.torproject.org/images/top-left.png\" "
+ + "alt=\"Click to go to home page\" width=\"193\" "
+ + "height=\"79\"></a></td>\n"
+ + " <td class=\"banner-middle\"></td>\n"
+ + " <td class=\"banner-right\"></td>\n"
+ + " </tr>\n"
+ + " </table>\n"
+ + " <div class=\"main-column\" style=\"margin:5; "
+ + "Padding:0;\">\n"
+ + " <br/>\n"
+ + prototypeNotice
+ + " <br/>\n"
+ + " <table>\n"
+ + " <tr>\n"
+ + " <td style=\"vertical-align:middle; "
+ + "text-align:right\">\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + " <input type=\"hidden\" name=\"yaxis\" "
+ + "value=\"number\" />\n"
+ + categoryLine
+ + " <input type=\"submit\" value=\"Number of "
+ + "nodes\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + " <input type=\"hidden\" name=\"yaxis\" "
+ + "value=\"bandwidth\" />\n"
+ + categoryLine
+ + " <input type=\"submit\" value=\"Advertised "
+ + "bandwidth\" />\n"
+ + " </form>\n"
+ + " </td>\n"
+ + " <td>\n"
+ + " <img src=\"graphs/networksize.png"
+ + pngParameters + "\" alt=\"Network size graph\"\n"
+ + " width=\"576\" height=\"360\" />\n"
+ + " </td>\n"
+ + " <td style=\"vertical-align: middle; width: "
+ + "25px;\">\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + yaxisLine
+ + " <input type=\"hidden\" name=\"category\" "
+ + "value=\"rnb\" />\n"
+ + " <input type=\"submit\" value=\"Relays and "
+ + "bridges\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + yaxisLine
+ + " <input type=\"hidden\" name=\"category\" "
+ + "value=\"flags\" />\n"
+ + " <input type=\"submit\" value=\"Relays by "
+ + "flag\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + yaxisLine
+ + " <input type=\"hidden\" name=\"category\" "
+ + "value=\"versions\" />\n"
+ + " <input type=\"submit\" value=\"Relays by "
+ + "version\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + yaxisLine
+ + " <input type=\"hidden\" name=\"category\" "
+ + "value=\"platforms\" />\n"
+ + " <input type=\"submit\" value=\"Relays by "
+ + "platform\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + xaxisLine
+ + yaxisLine
+ + " <input type=\"hidden\" name=\"category\" "
+ + "value=\"countries\" />\n"
+ + " <input type=\"submit\" value=\"Relays by "
+ + "country\" />\n"
+ + " </form>\n"
+ + " </td>\n"
+ + " </tr>\n"
+ + " <tr>\n"
+ + " <td/>\n"
+ + " <td align=\"center\">\n"
+ + " <form action=\"networksize.html\">\n"
+ + " <select name=\"xaxis\">\n"
+ + " <option value=\"3d\""
+ + ("3d".equals(xaxisParameter) ? " selected" : "")
+ + ">Past 3 days</option>\n"
+ + " <option value=\"10d\""
+ + ("10d".equals(xaxisParameter) ? " selected" : "")
+ + ">Past 10 days</option>\n"
+ + " <option value=\"30d\""
+ + (xaxisParameter == null || "30d".equals(xaxisParameter) ||
+ !xaxisParameter.endsWith("d") ? " selected" : "")
+ + ">Past 30 days</option>\n"
+ + " <option value=\"90d\""
+ + ("90d".equals(xaxisParameter) ? " selected" : "")
+ + ">Past 90 days</option>\n"
+ + " <option value=\"180d\""
+ + ("180d".equals(xaxisParameter) ? " selected" : "")
+ + ">Past 180 days</option>\n"
+ + " </select>\n"
+ + yaxisLine
+ + categoryLine
+ + " <input type=\"submit\" value=\"Update\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + " <select name=\"xaxis\">\n"
+ + " <option value=\"2010-04\">April "
+ + "2010</option>\n"
+ + " <option value=\"2010-03\">March "
+ + "2010</option>\n"
+ + " <option value=\"2010-02\">February "
+ + "2010</option>\n"
+ + " <option value=\"2010-01\">January "
+ + "2010</option>\n"
+ + " </select>\n"
+ + yaxisLine
+ + categoryLine
+ + " <input type=\"submit\" value=\"Update\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + " <select name=\"xaxis\">\n"
+ + " <option value=\"2010\">2010</option>\n"
+ + " <option value=\"2009\">2009</option>\n"
+ + " <option value=\"2008\">2008</option>\n"
+ + " </select>\n"
+ + yaxisLine
+ + categoryLine
+ + " <input type=\"submit\" value=\"Update\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + " <select name=\"xaxis\">\n"
+ + " <option value=\"2010-q1\">Q2 2010</option>\n"
+ + " <option value=\"2010-q2\">Q1 2010</option>\n"
+ + " <option value=\"2009-q4\">Q4 2009</option>\n"
+ + " </select>\n"
+ + yaxisLine
+ + categoryLine
+ + " <input type=\"submit\" value=\"Update\" />\n"
+ + " </form>\n"
+ + " <form action=\"networksize.html\">\n"
+ + " <input type=\"hidden\" name=\"xaxis\" "
+ + "value=\"all\" />\n"
+ + yaxisLine
+ + categoryLine
+ + " <input type=\"submit\" value=\"Show all "
+ + "data\" />\n"
+ + " </form>\n"
+ + " </td>\n"
+ + " <td/>\n"
+ + " </tr>\n"
+ + " </table>\n"
+ + " <br/>\n"
+ + " </div>\n"
+ + " </div>\n"
+ + " <div class=\"bottom\" id=\"bottom\">\n"
+ + " <p>\"Tor\" and the \"Onion Logo\" are <a "
+ + "href=\"https://www.torproject.org/trademark-faq.html.en\">"
+ + "registered trademarks</a> of The Tor Project, Inc.</p>\n"
+ + " </div>\n"
+ + " </body>\n"
+ + "</html>");
+ out.close();
+ }
+}
+
--
1.6.5