From ea1606633a2f74a3e893f21a2e7c2a1558f666bd Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Wed, 21 Sep 2022 10:49:32 +0200
Subject: [PATCH] doc: Describe how to implement a model

---
 README.md                            |   2 +
 docs/illustrations/arch_themodel.png | Bin 0 -> 40785 bytes
 docs/illustrations/oqRhTc.png        | Bin 0 -> 16179 bytes
 docs/illustrations/v2S0bs.png        | Bin 0 -> 19783 bytes
 docs/implement_model.md              | 532 +++++++++++++++++++++++++++
 5 files changed, 534 insertions(+)
 create mode 100755 docs/illustrations/arch_themodel.png
 create mode 100644 docs/illustrations/oqRhTc.png
 create mode 100644 docs/illustrations/v2S0bs.png
 create mode 100644 docs/implement_model.md

diff --git a/README.md b/README.md
index 51eeead..29c353b 100644
--- a/README.md
+++ b/README.md
@@ -52,6 +52,8 @@ Add the model jar file, and edit module.xml accordingly.
 
 You also need to make sure you have the dependency modules available.
 
+## Implement a model
+See [implement_model.md](./docs/implement_model.md)
 
 ## Create client for a model
 See [create_client.md](./docs/create_client.md)
diff --git a/docs/illustrations/arch_themodel.png b/docs/illustrations/arch_themodel.png
new file mode 100755
index 0000000000000000000000000000000000000000..5a617b04c92d01f32a8a4ba079fdc6b3146a8ee5
GIT binary patch
literal 40785
zcmeAS@N?(olHy`uVBq!ia0y~yU_8daz$n7O24YQKHk*NgfwRCPvY3H^?+6GpPSxg<
zW?-1l?CIhdQgQ1|EoVgN^{xM{8k!!7sLwgNLQq8XipGo;7OH%nSGTM`SQ3yFcjcSv
z#Vx*De5F7C+GoG)toE|At2g>~nKjQcTO@g;Cu>oYGM|RUdBOBKf)_r=@2|Zv{qWOs
z%y+n}YwtH!pSMk)pZNZM+~YWHpX;SuDzmJ=S9*E>p6q{{hkJ$kl9yFcvwobvt+Y1G
z_Q{{0`>#JgV;TCivAa9|x{{Jo)?sJA=j>bldb=Dcej4#<U3m5z#qREIU;c-GTq`~=
zFq03uY*JV_Z;Hw5zt3u~-M{<N_PhJTlG?MgCYz+4$vUgf-zhzvKkL0}#kYb@;T`{e
z9M8M5ua>#$QKzlme9JT+_x`G@?+Uhl6)2kjwf?8^y!&z0+Tned+xg`kB_%hSq<ART
z9cUAgl|8%vjUfM@)$y`LuU%DD)-1ep=kcub1~0SD>&ESwvCMC7*5_qvelGelOT={L
zmaGo9zVP5+tcJb)e7j#6HnrdH-qK3{^U~k;#|@8JMyc&*v!6ceE8H0#Tje3%zAWu;
z!^VxWU;h00xUB5ZitOv_M8w37?VaKF;smdB-64LP8TEfBRsVLhs@&AU#w+C_YbCST
ztyk*e(QfmMlR}H0&%d9)J^cCk_YTF+{)Byg`6g?1`s#PH<6bh}uQ7JCxzoyh|H9*b
zbHk0D9IL|D%kBN>mj7%0|6304_uKcBy}hL>XQHCgVwV4GHczq56kfUP{o%G%9_|&f
zdw%5BzPh3tdTyqna`>P4tywa2t*^IL7xLHsDKy%e73!s`s`{s)`o*=ieT%-o+x_0|
z)#c~^k9-VY@3*k*?X8c?_v$5HoyPDm+0HU{JEx~`?9QTAz4(1+4i~A&+SkpA_hX6O
zUDo^W*Y$lN`|E10>g)7N-~E~UwBn1ATf@c6=hBm+nOtV*%U`%DSpLprp>FiH54_Va
z?S9X<@Y-7Cj6*F~zqH$zEESKlh_U1DUpm`-amM3gX;*d>`dbx0leoLD_V!ZtE$R*}
zp~nw<a`Emx#ec#l*<Wd{UG1!@Z+oVT>ApJ7zoWU@WJ>=IZ&z1WrtY6VkH0)IaqE{4
zhxtEG*!$|^UdM(HzZ54=vRnS<P5T|I^t-!WUs>uczN>n>-RINazPzvBF2G;@@saDl
z{qsZDdfO~vzx?;R`Eo&JyT$+iz5gb6|NiUs_b=?JJMret;#s?GrNqV6KXkCO-rFE+
zQ!!y)RaW-Tl*@BJefqQ_e0|@d<@Mip%gWumtE8)adiji)C88oW>y95WDXs`{b5lxw
ztMv87#pdc)x*PS4i+N<N%X;j7J_*#)&=BCiyWC&is&tj%_Y#TPABo<EiEnRj?~ki~
zJL|Hwq;;8WYU<nTe~fk?JEBv5Yqh1NrAgKm4Wnokg?n>ttEX+ty?sn)siA4+C8sk7
z5>#gt8h(6mFt*a+X7$wtS&3nr|1Rhj6a4#m{`QRHeX=%!wwihWcE9)gczCPOo-c2=
zTX(U0dw3)?K9GMj=k)a58zruHOw;pCldJBVSDhC>wTzoPKWMhu`yYN11z#Pxxw(HH
z(hskU_!9K_+1Z~D_dRCk72T!U_V~}w*oqr@OP@S>;&nX#-krXFOZC3PJGZU7x~!Ld
zleSvxV)y=AGi9%b?i7r^;uf<rYyG)7l@qJ8<^9e6zC5k}{=@gVQ_n?jdLkCPtE98?
zmC41+4<CmAs8h;(bVSE`@iA9MTQjq1sb_1>_6VO?tfQ3K+1XiPQ2X}Q)=%bzGW?ph
z=H}tX_BJbCaYroio%LnHyqPy$YgWhqU-RSs-rr^W+%9XGm%a=Ve9xcy@L^wtM@Q|8
zm*Meyr^nTN?66q2AYq%Bu<+w~cA0e!0Y8~%e$NcOI`@v(Z<()oY0sXUsV~jDyDr4C
z?An^<KNDCVeLmFsF|<lb|LoD{t2L$1E9JhqAy*X^wuxEydEe9Gnwo{3rXnBC?6kAs
zi4?Utvy)-sl#q<+rYxPFLdGBbznJAp-Lh3OEj8vAux`Gr5^2c1|M7xw@k~j{d-2K*
zcUVN%91~3D|J1(bL1mvrwQhyS{|Qwd`6niNAH2o;a8>l7xZUT@EUT;b_{?mvi!r;r
zW$*OIFB(7IzgYUmE+%)U$eY@-rxxkIbL>(U?7W=)^~mHYBJ0!B`L(voE#W%5e46c(
zlGDshLc+!s6{!=}KVr-JqFDa!&dTG*^-F$y*jI63!>l)Ze^gxW)7H{jn0D5v=DFYZ
zmid*R8s5p=T@zWmzRL8>y(#ZG50|^8Z9P@{e$&UIv~zd-xW)4>*O<k~el&Rf{`556
z#Z#t;w449<_nXtC`Wxq|)3e>)-hRJus`l(a4-XMptCEI!_5T)lo9`(|tlwU3dS=>}
zMBTMJguWV9eoC1uAGCVamt(IbC6ArCxg|3=YGV?|)%Ep071PagZa5?+n&;Xn+<EzJ
z@9AUS-d?wSZr-%MTfF@CYt3}qtoj-L+ies$&ILv=3JcwPDEFsDFMgh*w0YhVZt<#s
z)6;&pa=(ArKKt_9+qEs$wWp`Ce{_1e`MllY>2X$(OG}&ITD-q%5dZM3Px5iT%bPbP
zt@`5A&iA#Y(L&`(*v^Ts<fqJ@?XWuBeBtHg`N8-1t$q38V%nblTMew<-`^i^k(g_{
z;OprU6^9+7j~?CPo)Pzy(NUu6{a*2-d&?T_{{Q*?<$|;PC+20BHYRJooEomj!F~7l
z`|@Sy=0-<0spZ}IA((q>OJ~`e7ruXgS(Y8L5>luUGY$v{SaAHv5^J0F!OQ&)ZDi)Z
z_VqRYXM-4(oUOa|O}%v4y1+kt-&}UN6N{SJcYkyV?eFhhwzIf@=ZSe*_AB~Z8ei_x
zK6dZv>FM0zziw`}ec7#_$MyWY{J(-p({x^*u#I(izvprnpS+#V#EHf$*YGq7*h<Wg
z&bYNjH}8IbWW$QEaw|Cj5z(#vh8a69)&D$Q+jB9=s?MgZJ;nak?sEOjovn+m=ij^I
zZd?6r$@=|$O9hob-QA_VnIZ6PlB`X*ZuGV#>tbhj-u(8s|Mmxiw+d-D@9w_*a_x4f
zm+kf~mzOj9&fL_wX_MZC1C7`B>{`YzS2WSA{$KO2IhK24tg6n<Sv+OtP3I%e4)8~Y
zg{kd1{a|5*1M}yJN(r2de!9`GuB^DIIj`ZDVSee|wQ|zGHJ?78f2pSJq-C+$j+Afl
zyUkp8Fu%XE(?M8m&GrqGE?v@8l6rF4f4{rB-yDHA%7z;yO*1YyR4nP2shpAiNJr>m
zrry3Ee`@w;Dt2#q^l15)j*bB9Rag1A`12KFiYhB@SNhL?n`AG?_T}So`QrC4zr3&S
z7yHq&oA3Cc!`IeC8ZQrz-}A%3ckZvH&)OeG%~Vplx9Rrk&FS(2|HIc*%vcxOo%GM#
z;lZb~=JCrD4_96K@R0fC-SXGQ-I@z_m!CH_<DGu@?(WMj{`KE(ChG{U-SE5Vt!wko
zt8?>SJ2q~<aG`rq`=P^!kN#(ut7tekf4|RUwYyIwcQmBm*T}kSC048dbJLBmH4z8-
zGv7za`PpzNY%=wU5&tQc*)6{RtaC>9)5KJTg$o0ZT(1B3oKx(Qey2g8uXgf2&oAri
z@1DPOj`!BSznO)1R)xxUc?f(6EtfmDwEYM(pS)d6!l7Gt^IkjV?!3I*Z|<@B<u~74
zU9sZzBgWour;hyJvLz$y-X9_Ui@TFL9@)!%`1SR*ob3Yd!=cAGXUJcO)3@TA7O~{$
zv9d?vrq?z--*|kL*4effX&w0;bJm2f@2RfV-#qKt)5CkGn<XFH+?f6N<azstVI8*~
z99$l$yffj>iWeVU|1>xzpI{1ee;K^Ith8cEje~JAzgBiEt9|jc)l(&_CrC}t-7Hnz
zW9uP*$tKwE`dq_r3UwaeZ#oIsFRAyiU84TvL~xGxgbh!pZLm9cZRfXdH-$p}+?xDN
zFYA0p?)wOLHq+PBBXn(FcHO=cYQAG}@|-mcYyM0qJvjH>+KJ~bA6=PMwAN8e%j+s{
zb{cD_&VklRTe`O%l<_T1VYoEQ^l{1J%}YFQ*)3iAb!*8gYwo^K_g|f7<|W?jd>3?d
zQ5K8h&S$(~vM-svJYFn%{!GeS;q1Nq_<+{qvor4PdA4V1rsKtlX*X|N_3$ru4yko~
zR$zOx^WU<{&w7zoSFbBJ*}eBjuWB~_cx%3_hVkzN-M7npl`GEkp3W}_P?)yFwR`uM
zX891Eo}%lTFSJ5k3>DIQ^NqM!Pha8ch~B3YyDOwv=27YdOC{!;-47BDUb@-Fo800r
z5T{yEeS15<s4VCH!|n3h#8wA9yuPFKwb<H-i#J{x-F|x7z2lo)tx5Ooov*Johx*w(
ziFOW~v07^H=8ih|Tl;5gT)A^Ow^#Fw)hm|M0{1JQJAS;h@zS@6?s5x1KR@4nj^$t|
zhqzshO-F2l^2uGo_iN2NtG?{;{(gV|%}xA~x*KYLWy<FT?-Fr-(Q96H$@u(}owfJx
zwQb*ZW#YMI{^85Q|NAWbX3KSYI{zcTi>C!6{EtNONSpO+%l&=k(S~U)r4JMp4`=-T
z_BP4Y=vs4fr|CIKqa}*}>w3%H=XtR6^9jE-&AT%rDOvewQw-0xsoJ->QWhr*{_kiI
zJ5s&FSya&Co}}ENn60aKX15oM-#vG$c-yW`PCIsb{(t}fY2aivUl)&7o~;JfPgN7w
z{<i)8LTQSiZ1ewuE8BB#Pdk6t-Mz0z?6Sck2J7;7I#$Al+Dn%%EpYw3<!-={6$?H$
zep%H$@vidbhX?OoU6goF>BQB?v7&uv_Ro}^zOF=RMeuT4oeK{xi*BrwH_VPW+`sf~
z#PR+E3MG72dNzNw)<$jZV&jw1Xi^FaF5WTu7kA6wzwh5x8r%_NtaEPXd-|>HLIY#v
zo|D>ZpC?BfF50iYXr+Ozexy;vobC|g{r|oeuD7}x(7&Ybm+5MAcH90RD>#kThm}98
zEz4=_OnbPfBQPvUuq@@CfWR`B4<0O03c7qPvQP9X9=6Wik`tN#?!)dg?(a91+;)<=
zz2YKsO<1bjj?Bv$dEeJbXjt$CYR$D$j9I?W|GsD0H;(0P?F}zHiWNE*Phoy1z~nw*
z!O1zx7+MsB6gGvferDr4PvCdm$8O_0kq@VF%sx4}SF`B%w+gG06+0bnoSdw_GH&mG
zq09Q``g?j(MC2D-T^-)t;(uc6r_J-<e)_%JNLud9&DU8wlzXL(+&}-Al%lS5_Wr-W
z_c>GeWUFS`e_yn(_V>mMNq^=|{>;E_v|CeeT}S*C{};FO_lq9luSjlY+vOnj#h$~l
zC~I0r-J6YZHh;yq_Wk^QzkI>{f8Rp3?zNq{kpK1fY#Y}W#U|y9_pbYYURLwFbHFCQ
z!QtY@<c`n#eA3U&5!}Nctd(>i|L&`EvT{fN_jmR=&)A~->va61BmXA|JSyvoyrFo_
z*ZD=K`nRh$emnOyHOz?WJ>mU$*|jy1hc87h^S3U&yUVd>N1GDE$A7=yiwCXrab<mV
z!?5eqr+w-IZAVQxo~c`9|NMJu>bo!BZYwI)-zz>ZyG+*lQG}PQOZ7L2?BESvnNLp@
z$Qj&r2@BS_#L0U#CNBS(=X2IQ8;sL<Y`Bt5oLT%6U#?wweD1Eavnn5hW}95BSgl^v
z?fAm5d{JVdrT6jv{KS;6!fZ?&4kt|5?{Sp;`*odtW#;8Zr=t-Y7cCAjUl(s5Hg91l
zOV6k8Y>R~R@9oj#5qSC1y!M-4jHi_7g?s%yJ*iDsBe`AH@pt(g+OeZ-EqCp&Oy-M%
z0oL1cfBT1h`<(gZ1+Nl&X4$vLI=R<`yH{3yeWhx}zsjT4OGK?gC1~MEhEIuy!#Ycw
z*pw0{%vU_u9M{RWui)X52=f=3x^XrE#)sywj#}HaPWfzz;NR#-*TPmQQ>$aliEBLE
zIPZ0&RtLP;*upq>Q}*?&iGT8*oS5ju@6ztUY%Rd{m`UL8S@ZiBCMY_uh}|7Kja6sT
z2DPH!-!u<-G`y_*`f6Iwi(iXuuZNut_51NOZ_5&OS<U6Uq>2~K5{}o4n6T#jtgD9~
zevGe|^`C8CuXW+a?E7;Tcuv0H#`(Jc*q85bHlJNl`ug*qm&UW~?s_Oxyp3A!wOZz0
zb^eMMH6EK16aOClbnN0{<JO0N7WcaawDaAKEZVCZ(EH`2{ZCIn(W}R|y$Tg<e480$
z?CpMTwz+@()2ZPxo37m{K5u*G!~Dgr-C{3oc4@b6T)KSu<u#F;kEDN?_2fwkuP4{(
z|H(^REy|vqnW-bQM&x<*?UkF;)?U`C=zOcQTG{>Cr?ATS-`~nJzQ4QtsQC0W(aaA$
zscNleI&O1YD)~B?{f}g=S{?4r#mMp7{_mG;Df7HJFLD+L1aDh*cSGg*$?EBsFD>0|
zn!N1e*$2~PSAKkUiSy&fkB=g9xW#k?7H{9M;X+f;PfJ6?z~)aqsYVV>6MOC}l>9i<
z%3a&{qRVGfAMfi0cC}@npGEEVsO|l_OJV1ds}b9yWAcvoE{OlbG{2|hhQgZ1zP`E!
zANO><__@@(*4}%k?bcIEZP}#KI9aAGzOkr%_T2!XyDvO`-i$vN`a9`Y$@(jjGw<E@
zDazfn@c7luZ>C$G<#n!iU1S@-PJkmT@woV0u79GkbDtT@hCZ88x@1MT_|=sUw3Dmi
zpKOq8Sua|8bz+^`wTnNF`fH2-ZohfP>k+qWY-!5YRmQKka+NM9x+|MK%YJ{eS^ByB
z*sv?1?$>5KT$mKPmM1CA_3ovc-%edx*~gP1{Ll|<Qdd^IdsR5w#$WGGPX1lGc1?_|
z(~`YQdDiJ<7krnAFWGT3Bj~l@%X7`UHcvTtt#Y2r@5(CvcSm@w-+F9Kiu`yy$~#Sc
z+s%Wktqe0Vs+MZ7q$E^-KKniMSkHQstDTH~D_3f+`C`8H=j|TJyC*ozYh1H~=ZY0v
z?OZ23=Ypi<xy#v$<}E6<^t;+=>Z2WAx59tU4@=9{SF_ZV%}$u7>V&9QdA?iXxb3)g
za`I*^)`pdSYt)=haQb&YiDj2c;czhRK4o>i)6+Ayq`Z6j?ygf;u4s2`y~?yqxOU@=
ztI@X?*vD<Dx4NL<vCVDDy-x?cb|+~sUAX$2$Lr5?r|$SD|EsF-xow25{uO}<%U++J
z#(Om=s7_?Z<(0e3JYSdeoC`AfHEF`z{kyC#_-Jb0fARUbzRA>Zjtzcau6RGln7?17
zym)8Z_4xOiLdFeu^mU)vNj6RX&&%THtvd7n?V^P{qUtWk`Zt<SnQYu?y}>m1_B0P>
zwh)~)2N#7NIUXhbS3mxp*V$RM$D3bIi;vs1pO+<1aii4_@%<TpudR)ii%mZ}%hW0?
zNL6i{nD%l3k-f#w|Mr~v`{k&(@=DikX(joFg&X`+;%2&U&uhJ?KHp@~=jW$0-o=!p
ztc;&`dOllIL$Kkg>o>VqFqp0@Te0;~AK#HEZk_M{9yHg5?ElBR@e-%^?FN^UXX5cL
z-K?w1-^Ym_&%1wb^2F?V-Tx;i@6CLFFR$d=8^KvdM=zWH-)Anc<4Whd6<q7u3@jcm
zUAJi8iWMID*WMh}>iVr;7wFL~{#|Hpb84;zTYE{eM{|>oRD@pN`3RrpWGQpK;v0<%
zrfQdJ>3*&2+_9dQCGlO!0_~MY_RKB1Yk7a-qqv|;5g!~%L;~7Hk9cfr5J~Yk)WEv@
z2j7#&)$8M~uX*RZ`2XMgd0$S)hw1!vOTS&TX#dYN`B&HbGaekcYnr6MQOw@B?~Ouy
z$jj0tJM^Q)d?!v!OnMnrQ)44*S=3SY=W*|}`{8T57H`XC=Tu3OP0Gs)7V`e5d+4GF
z7w1VaPuAPpavk<o^FMsNZK6*|#j`Uu&kjb~FnCoSxby7gZ?V!h5{HkAh3sxrI1|3&
zL#yersh@>~-d!#(ZomEa@89q3ol_4-m~^$cMRa$hK6=K-;yYu)ai{YFfg1!o84g-c
zRA)Hx=GxmO5uH3w616om6~Z*`SHItzbk)$R==Qc;8((u>|41>dO`Ug&`_r@kE^SPB
zda6C+(UJGrcCTH^HyP}*etK&cUtejNjYzq>EQeLypB)bxJ#Ms5@8vu4C@{JuQ{+&e
zPgIMFTSUmOyXA^!g82>neTC+7$npmpi9KDUJEysk>0XzJ?t+_}og)RT-(J1LH2ub(
zpD%aqW@|FYXO*meQ5rh2eCgSp#q+OUzLYm%uT^(i6GQV8&JzYa|56p6$W1i6Y$d*G
zj+7#+@@=-D#S)%fiz>TbtE)t=+2*uLe2L0op+Xf4CnE<Qp)IrL&h=dzy*<rzsi^O~
znni9rEQ#y(MTDz()@ytUxO4eZ)b5%;O{{H)_El`0=*V^A$dsMM&o7IJZf(4^_4H%S
zjmoliHjUPA#NOZce0zJlc*dX4^Yf=~FKV&-XED)wmE7BVd!u!J=Uqq;_J7KL@`T-7
zU7`PP?^rsPC`_pQU8X!=nxl>Xe^=#O#j}rJZds<OuI}#db4H+Rx4KDbR-ebF3ya<P
z7y2ozJ^Au-XGp}428WEt#~w0OI%uifnE$V2y#+rfbK@p8Unf?7R;de~FC2`ou1;6E
z<*J?(b=0JrC&IyGv)?R}mkrn7C%nBi@kyxUw^>Ve77Ldy{@41v<lUXUP5Fwg5>}7i
zZoi*qd%?q)?O)rg(+(OT{2bc(`);<@{rh}(>as`ytK)y}&N^Uhcy(64Wx3vw<M~H6
zHYzNz3e<XcuS_BB)AxI;&u8q^Dskm7;J5p+z(LH4RbP%%<-q>~&w2K4YWeqRx|~T#
zM)I?jsdp}xAFVubg5zHKyO?mdyNQ=gd!mk?aA++vjHvpevACK2{iVtNzwFjZ@UXc3
zeY$;1!`mY*E$4Oxt~gTN<iomU;pAJ}co)8}ukSvgHFe^}`;)S3K0S$5`g!Q??uj~)
z_XKSM!=BYXU|f{H|Lu9%5Upi#3*H>*6x@=3-{IM6^~kQ=v$9f0SL7)y%ksH-!F=Mj
z;3wz43QIP{hB7-glsqb#Uz*T5rF@F@GF$r}4?p$k3d^>hb3Oj&{r_!`YS$ip&dS|4
z;cJg&%89ax1#+)Wg~!*rHnZ^x{dxcEtA|*hRL7gp*VorCUl+T(%j_&?{~zCLY)w*c
zk1Sboud3`@f_>ke%TI&jIp$glt5?V`a|pP+%vZPO%o^UeH!k-7`g;4|rCcWEoe@6!
zBew4^eI1r4(y)v1vMkG@kB^UcXNojG{{L@%f9vuvc28zT9ud=Po#(Ed{XJ=0&P*?9
zvz!GJm1lnnxiKYb>njiUJ{dt-7L`M%n$H9n%!uDrGB<4fyA!h2fgUSgsLXhpkUiB#
zbec2|8;8jW<MzIzg)d(k+L(%mysmC}z4n-uVD>Y^CT(%?kG8RUZUmPow9LG_`}OCq
zB`rE#nL%kPZtXR{-`0Qlu3R%mPry1OK-=xU>nzjPeD95~^l!hnD}IHvLUGfb<@4>-
zTIPqx>#j<3ys+YK;Nr_GC$?ryOj~#FS$5XNBzf;;%`@92UNH!?zWM91lJlhKGP8)p
z3zh-)2?`beDj%J<&iL};R4!xg4Tom|{rms&E|j}^yOEPKd+VJ$%#F%76kamMrTF;l
ziVvuK(lN18erC7f*Mk~-|JaTk+``t)6T(`e6(A`YX{vAGWb5Un*Qs+tf+u6Knv*S0
z)Dc;U2CcS<U(zS0>2<u+*3#uo-WL}CLBB%#&|&ipAA$rmzTQml-+1I^pIQDr9V_<B
z&w~APO-mODzG~DgzP85c*Q0KBSG%jP_`Z60{hG9CGe7&fc@YO!glB(#{$Fn9>%DHO
zR);w*8mzj#VDSO=v$7mjKOTy1sr`NV%En}O#XSs(6MiW)E?ctZtM`ib-+$hR>RRuP
z{4nG0sm+#|+p>6eJ70KeVC!_MrJGZhW9c0+$5$-=EsYGv6<^A~S@3?}?bs`iK9sI#
zf34=RxUXn)nq!*vRF;#cV=OMmIx$6+_yq+`+Ax1n^M_5V{kEUg)ndNFxq$l~_nhB{
zxH%qXybfK_zI;pG-4tEj+=-VTGu1izx~`P_{(1Jluj>QeyuUC>HFeSC1=7ck9_?JY
z*?+#MjcQy%D7$O0kYpk+%P)l|TXLgQEXAMXu4vyqWpZ(!kg)OACn?wa_!or+cANOW
zT`jCOCtXflZ%MF4&&9yqWxhfl%tf!RU!SqO)^Tt3cQK~ZCnmbx<%w^tI&$>sPQzL^
zqhCgMtM)C3y46<nW}XCx-OnYO+_Fc-_O)vj7(^|0K47jmwJ&X{KyLEwO-s#rWp*4-
zUno~tc<%ki9Y6REI!~PT>|ZtKuCJY!91N<zIoR6T9(?&RzW(lXF7EXahj<%xG=4cu
z3p~Ap)%ME;=cel?{r)_goixuZ`lrs7!?H*33Kwk`&fde*yyVLl-6%glzsiN_zfF>k
z=sBG$<B-3+OmtIJ!8GeNysNqHvaI^BXu026z4ssDwv@isHC%daef>N!9fMmR%)lnS
zpSz>tV^ZCNm3hzYAB(TpyyV5_KJ!y+)vZhg4*0Kl-72Q-RZ*enUm7^gX||~BzUh-D
zEAK4Up6>s_<jUcVkN#P5=epO5GxoXaNZ1Oc_64;reAo8V`b_E!Cjn8m{K~MfY3J^n
z_SAIz_>u1sW0};lY}v9`l9G~AS%nL{cC6=NF;Y4w7diXjl6x7lRf%^S74n^I-)O(<
zt}&Z&_!RH%S&Clzt3xD?&QfSv{EY38#<Mdsn_v3Ow=Q3o=9B;O%a6zXuP-b=)66ip
zJ4u5r>xh$h$p&YU<fua{rcHU%v}W$KZ_7VTYFH=9QTKKA<1ZhN&yCnr5~Fi#c0hmn
zyqoX0J$m=GWY(lfi#|SU61sP0Q^@R#OAo*6RMJd7-Y0q~uCkr^?yR*duigyGf01-g
zf}@Rpe|-GzZSxO5c5-@W@z#O);Jwx=kEE%GRgd0%ZzHI&Mq;5GdrEqG^tYMbyeIFU
z=3Z_Qlk+M&YIoV{<7`Z~(;SX3lzZV|DXJf_Ae8Itgs$H+44;^<da4;<V=fR9nyc0R
zVz#sGnu)J_AFZ>x*w=VKerfT>CvWBdzwiuRCi7(_NYsvBe8m^nfK4;!)fCOwJvx{D
zT;qXL$-%QZCM}GSd$9hcwfXj6^H-l+%IeJN_)lBxRmHAzhv#?ge&w>=%J}li#si|C
zwt|d#`|_%RfJC;8(_O3bdwXo|nf;0>44?aA<F60Xp5;jH-1^8a|K6g8o%L5c#X_Gn
z1T#C9YP?$|T&t3J%WJJsaoWah1&L`6_cp$Ak!JA>UN?10*Y88Ejn(^C3BQ%*sHlo{
zxf=97s&tXk)y`GIqAUGELcUvF4DY<pywNLbuJa=Gsf=qr_gSyvc#tuF?<%IgcgH6`
zzN6J7`DXEjtL<OI>%xkc|9Dhqvvc`|gm*UO@pEiLs)BxB-=!Nan8H2r)8^${oenh#
zmcC<&wp_*WfM@QyIj_BfoXXFAOi2s4l$k4#6Ox$WI`6`xqxr9MZ`F82*iD?U!Hs3f
z%I%B3)Vf}E=`fDo{%*RG<EJYtZzQitHgc-w4bM@y!Wx<o5~9tyH9o%bsbJKO4f{P7
z%$@OK2V0KoPq8CRd1k3`0ZR_7IFWm3)xwR*k4sdP-BTGDE(#kJ-SD|SF|gp<n`qOZ
z&EbuKfdP|ZeA_;VEY@ns=iqKIHhRUKASNPmaZ~E|tk2Jut`uK)V8scajT`5dIB%J<
zYkoav<c8;GcOOZ5QxdiLnM(J;``4HG&0S{Y)VMKE=#s*^SZfE7+zAeAIE{pE<|HQM
zEo9~Xw%N`qezK;uh=l0XC@0z9U%s$8rF=1wUumCtZH?R?am~X<5&O?96_5XOV*S>4
z*}M{eWnG_T{oZG{ZrerB(g$_FGs24$SKVddmgJO-7Zba=G5LC6+A}>}C5da1EKKQJ
z#3w(|2s<gI@NE%qZtUq@y6*dLW}Ux#V|BtJ)9h;>Hvf(6XefTh@!2!L-ajnN=)Y;u
z{cGPIFwO5;c}-!<z4u(xi$tzGKehAP@taxa@71zti;9T6&<?j#o%8XS)bqZrMH{Yt
zd(afM(D<5bp{V!V^z(jdA`hLu$}i5TNd0x({@2A97a!}qR4RXS!;zU?ETCJA)$#wI
zt%f@k*6cc<WI4(7c#%rct*!;zO8c}GKW}qM^LKuo-SwbH-p(dWrO%;HHvQ^{yt`V9
zMYY2sj0}|de%{&XG0SLaS>c&mLNN~nCFbfH7nDji*#=&_+UmMaulB=Nq0U!okuqXt
zJPaQXwXQ39;$c+#^Xc?Ozuxsox@($jDPmo6=~A@|+Z!!exv;d)Qp^3mE?U1YOUo#u
z{>w#olk97OY#-k)kUDeiAggxxv4u7>!&V=Bv5rst$&%T{zYni!-^IKxCG>mS8P2n3
zLT3ev3bo30?AzGzcJ20E-A#=rZt+e0azSx1N8;mSilMKB6jE((y|}Y;^NOae`S<Mt
z@Bg{8v$*8*v(jHb9{0O$ov>w#*_HkE$yGld?pg50Bx1tzGnTGyGv7|ux%R)~_Z#=E
z!aeKOtSw9byH)%3qPwyFx$mX!b#+Zv_rF%jtf4zKvBnWJk!WnZn>&5a-ZM>$-Rs@l
z`|qhwn!0$x)Jo^r*ek6LPyGd6X+Esm=pT04ZK>Fmi3|yhRwCz|90lj}|NYVbOWf15
zkjLdcm)jx_<E|pp{ChD|>>Ml?FfuD?T2`iS<ttL&@jzNu_{N`~E6P4cIk1UWtTnzR
zb>~~yB`c<8?UO<=JEvJ+FDSjI$v!vUD&gCknZLUA<CdG{N(F_5^;~`&_$={QPfXSO
zy)Mt1dUY1GG~1Y)hhN#oblus}zd?vK`izybL#LO`igV3O8FzP;3d;y3ICeTtnOgC<
zm&5M-?^A0ZT-(8?#wl>1Z&kUeXWPQl9C{wUch3kNnAO0k$MIQ}<F4iLxvJmx?Q7fp
zBwIl*;sd*_q2cTa+iYxQtEG08{@ed=stVU@h6sV#ftBJ5TK2UI$xHlsP_}Dd|Ixdz
zdG@_N!>Sx{KIcfZI3rhxtjof%D?e>&er(X_RXv^i_w)SPj8jwQc%?d?`EroG^U6YJ
z{$I~#=O1yIFz3z`*IR3!zK==flkkt;*0NC|Hr{W|w383My|vbnI=)$A=X}Qc(?#cQ
z=YL<?$Sg0wn#M0@;~}hWwrt0a+B(@kZH#9)^d#*5XwT#MoMp1Zq4jX6@IlG=h#ykS
zyS2~GYPDT=o!_E%7k{&6Ovq8InjLm`cQCFK);i)};LxD0rFAOk+^+in<v(vEY3sRO
z*=@e9=40*6O^R3cR<C(5he3%;aM6zSPv+(Cy*k^i_tMWO#XVCm?fpJ2V0Bpgi~s-D
z^E3a|nQK)VSrE}6cvSt{8_z}aY^%8vnhz&UwpuOObK}$J_eKiQoa=fnWwpKA?SJJA
zbNjK+Yobc$9(}s*%VT-@b<_SChONAkQ_#q?Sf2CT4^{7FLZ@CzocpmZZ+qjx{#`o+
ze)i~I2@;WHmWvU5`jNq>CjVYdw5Y<ZMe_d&wBO!Jz4E!$RqSg`V0HkLrp+G1+MiEz
z6}R2n7wZ;Z8+xi?zrV<oGw0qNci0*2n*R6Q?)NKVcb7St*cLzQxggGHa!22x?OR}+
zSVN0NZ`0We(Sb?=#~;q{p03B4_xI1|hc*8mO1<1Zi%YM7%Psokn>mtUGINv9KX~MI
zVvc#6MEJbJ!rdE94@%CT^-Cc&%}!y?$9-$ERd;sJRG63KaQbgM|Mg_Q=X>VPHeak0
zdhX!E3w$mn49DW)mQ;Q1ak|ynxpPZ>{UQdD29;j>3yy*B#B&cAums$`6j`X-z<;25
zA6NFeIX+Qavt0e{YbU>dnc?8G!e|FW<&$>)`_HaFXfhDDx}PU8b8q9TGwaj2CDPjW
zSWk-%Klu2?Je#uxnads?u6~hyU5z{4rs0J)llmdumsQGlEcu@aRDHi2H_fs3{oe0f
zvVzUh%{xn9GuHg|xVF>m#?_x?Zx5aN>)0gB$a3K#L(jI{+g)WFOJ9e%G_$|g-CyP$
zcquY$>;LEWlYi_9V039ne|>GOQ#|VmM!kmjmzK&%+5Z!$Ul+6J(~FDmN?ruSAAHJ~
zR*(`Se@F6n!MiTexf-fZ)tdh}9q_Q+Q1IJ&#{uo-`<EXRE0_KBF6O-S;Yr$JvBsY1
zdlnX}{LWQi2$@y3_RcJ?FE^5(XFNS+mh>Qr!P%tc9J?&fy6&>KyDs<1Zk+b%I)koV
zv+={tAMa{3);>8QD5z#$@*?1)EJN;<7mFB_UfkIkx90v)&JE4X&N^zlbZ#BqR{1&Y
zn(glH`vv*}w)G#H_21ZePuF8Vx~()@-mY##1>2Pg?fZp=yXT}#)9)8O-}JkE1&?6G
ztu4tlXT44NeCk=nHRfLQ?cQjcUQ-%0S*<<u!UDG`lZ7({|5}y4QgL9l<$b`i+)*-O
zW&9%x2Hs!lI%_YyEPH=Xw@%(HXNK$Y!}<O8btj6}ifSK<_;Swh<(h}n%$9O+^=Xuz
zWn@0L;|mWn+nc3tZ?kurDabwEw=mo3$x*vI{0+PckM@12zqm+anus3j6^V^}dJ0w3
zj`c_`)-?Fl`Jg9$*Oxd$<y}$F&c~NLa`C^ldHL)M=e@kUb*+@y^w%s3`p&exF<G8@
z=caq%{tV*B`(!MG=5UvDoIB2TVc$nL^Ns&!rk^u%cd^Ot+;HVlOoL3qlxcx7>;eaU
zn>-VLf79sdE0fz={ANa?&7r@J_m9{*luxnJHuI6$BxT+A_SV-thkjw@9SldG8kMq$
z_eg$b>&c$Qw0L^Us_mDTi+?(h^=6XszFjX4^S?Jb5%#&(wVRQvL1B}s<xjg;_y0?+
zjpMzm?X<&c0rRaQ-Gl;X_n!X!$L7@8|NXjtFH3=<npc7|f9y`9S<8Gjmi?Q*<Y@O~
zokw{wF>?e;56TwK^_#oP;J9CEY!Q2N`gGpIfz`J*C<Zd{UuXP&?%X-CIZ}>XMMXdR
z|680BKKOEhti4-7;|i%2yQN|l9LP{gIoa3w)5YTPWtUHzjxm<^Z%!Bg(2#rVd-?2h
z^R2xL_bz_fU%%(n{v6@`_CHgOZmj?RyFu&PnX<P6v6q8(I6Ex&oBH9wfAj5u{c+WA
z+d2Z@USF@g_XE=%<!#fWd}nT&`tRrY#%b?kcb6?)?B36n;P{_8c2|jg?9NFUmuKDD
zvr}+Q!K*8piGLi|yuGn8nKk@~S<;c#1#F8<XEt*Ogx9^jRWth_YpGn%iAk{mA0`zX
zlWsIy%lvPivvc>0rPI4k?SH$mTBfEd%xc4hv*+e$Ht>fu94SaXa5S(#z4)bH!M1xJ
z`R0codz30%$jiVphwts)|Nnj;`pI7?cD<>Ob7SPIH5PJ>T$PoTPW(Q8e#<T{cIOTZ
zf3<eGU+ae@f!4=o2b%xfS(H$B_C9}BsZ`I2Nq>L67H;LgaAMM3(--qOw=GLO&1P7h
z<-EJ>?V^RwvyG=~B~JXX<LJzOfgQ_y^9>YcO^MDl?e_op?XC8qLs2`=3jDf#|Iv(K
zK9QuHoHwp{>wDPvWX{Cs&vrd`+sUUbLUZlvf<lk~N^`#d{{CLvO)-YMO7)JUz`}<@
z2P*}<7m9m*l!z|d=J)z~`Qz6umo_B+&VFlg=A4}4vj<I9oNm+ZZe8Yk{PMZEyTAPS
zA?Ens=6K)H%Z<#jFOPJ_Jgah>acf;HheChCT!Y39PK^8ZELx<rtID*+a$4F&)unPX
zr(T_GRZ`)>GRL{3<>Qj__xH|x-NrqaFTt{Ik4u3g%Q@x{gFOeXbG-ZhX0!Q<y1(xw
zUd)yB(5*PMTK(H%+ZXF588;hGn-a5RqO$jo?KKa#{rq;@&Sv79%^f>Fgi1}jdBG}4
zA?En|itS<PN3U2G*J;mS{<mb=GK1-BmM1@TF$gO8;>VWQk;*Az7Gblrk$sNP{fGQ5
zekUe1{@_huIq^aIh!2Cn{>SDWGaj@V`S2PpvG{j0z0>ketenmF4ITBf_h;9<aXh`(
z#Z7K`;p4vU^W9=!S0_1e@v}=j++5SMK9yxs{QiB-|9<cHt_Zp)F+=ss?E6=e=YA?#
zD_39q{9V%B>WyutD<UJk(oHmPoYpzu<JFbUTHVms(Vehp$r4!+`TG;?ek@qbAk4s~
z&}4m(_tN(K_=U$EQ;yb4a<MaQpS(zw$5238(ao!w>sI!CyGeDQCfi*8TK4(bk9kY%
zGTD^FiX855nah`A{q=o(_3@jJj<##6J*z(wb;?BgDzAvd>JuNWbr1M>yjb@9Sszc=
zZ#~`KMNdy#8*uQh<G6l&neXh3D=Pw<P9Kb5n)vC4Aq&r(^u4@^*{N&Jn=b8@R$duv
z-Q0a}Z^M6qY(^KCgAb}bJ&RABe(hXXxclur=c^?O*Ck3G*7R2K9141M$8w5X#RKcA
z?|0=w*^_jA*(Xgd?&IQ;6IA7yv-U`ELW#r9o$Xt={4T_ri@ZCq;P&?0#>ca@E2WD+
za|r5l>9tk(uQ7ddKF94<No(uumlxf?hdi|5m725IbMl8w_19T*XBhX1E3nMiD8u#7
zV~5Uxy=8A0R#Y2bI8;$@*u6SYM7nyy!N442*%Q|9?<lXEJ0V~qpNjEj-?jeiK@k;`
z<LdWLoi^>;@*?Ji+0Qi%cAYWg72aa$9PNAQ*Vj(5*b5xN#?wq3@7NSPXkbwB(A&%;
zFgNh>GW8#Ka$a4_ov@*35ibMJ|EH7I-rcQydU|N)p1Vt?YA??C@L<vcFZM_LP9J_e
zIqAM-&6=-^dg5lWyKWPaxT|83y?Jwg)-j%l6J0+f?na(+sTZ(lU%S-rM*BhT#onwZ
zW_6um5b&NGSW(g1%&#!fGW_h@+3UIauCKbf7G$Wmmq*0vr_baBR+lbOJQf_3@TJM%
zf{{_r*IY|W%Po0#^-H5qw)}P6oc8oH1K;yT89j$>X}&VW2dt9<npZQd5zv2lnR&ss
zoS&LsUwq_!Z=JGv@9uKx4Kscil)k#+*0GX7NGavP>?sTL8BR_1e<yrkceS{}T6H_`
zRWC~vuDWjAI6tWFpXS+s)SBz-m=^bQh;2G@gm+PM*t$Ox*dO2CC1~-+o{O_l@vuQ!
zkM#D|X*!-Men|y$;`UZ?>aip=o@NkX=U3aDVc}IEb#mf|olYS-!pG#EEMycou<%37
z122Y0TQYa+9-BO2f)HD{&w(Y(AI*8?_w{}K^mkGH=g)tOd0E};FC6K-|9t;_aar^F
zfA4=*&+A)i_HWtze<j?yaW)r}yqvBdu8&Y;^r&IK-f}~0Coh}D4goV3)|yWz)t&yZ
znIC?|$H3X}?(Xj@RqeC|OPObyy=^#u|M?P6>Bvtv7dRe@*nRE)W4FeO=Tk&u5>`%p
z;cay2TGhqB-}%${rYZ9%+)&6$3h)kKD2U#cBPerzR)T}$0du9YC#N`zXWV*rR`JW*
z?Hg-){QB*p5`x1`gMF7Ue`K9G_v6f&SFOWDBvwy6lPMKodn4S{n_u>obM?13ON*at
z30XH5Cm8t8F6-O(&#Fr=CPU=_=SR`Ryh}fnc50aM{P3Rcck#)|=aDu!j^5Mdw*Qc2
z)Ok_8yZriMcezfE6D11sgywv_cu_x-BkKDRE-8_Om^~F6?TVlIcz;Vv@owg5nQ3Ki
ze*Jl8?XHrSi<H0G#c3T`?Vz_I(=SIv`nKoyWpm2Ezq5YXYu;h^e-G>0xLSvfZvFjt
zS`Jq1h?%dmMW*^oMm$@3g{r;$fzMZht+gYg*?Bac^zPUzaBJh?6MP?b-*+vTt?o1J
z$}Dg8q?q4r$KRikO|R)~7POnI>OJiRx0ud>1=kiFsLm>kiB>F#o)mEKmxg22dE4(V
zE`&44?dwaOvSit^S3DUH8$gYQZsVW(zJ$luhDPryS!wa?#>V7dr>1IejdU{#I<0cx
z`KN}Ona|G7R=?$ZFDOR%<&TST3KK0w6P%pV?|O*7u(SPgLGRuN&f3zW&kUcRpT2Qj
z`EDVJ-Y182fBqE@v#h(bWAC1wWq)7!us`CgeATmF&|u%sXS0tm$3AC_V-47rad%f~
znKauD29-bT%bRYrY;C^0++SQ_rgix`z1s)gi*8=KjQ@dV<?U^`(`t9fi-qcJ;%yF-
zx2xIl)T*6N_EPxTDAhS9_4oZ))YrOdl0?rh?e%*OC0#v#^bOBDp5;5H{y$@6boP6Y
zu*&4;O`H8^T?seW`u?krjmN?*GSc^GwK3E7!;vMq>B1fF0!o)Nb8_!~bE#JG=%Xc`
z?0bujUFVQUKQp88Z0g60HxICuALYq;)}ynHt6)a3>8JOzByEbHow>*m^K8yE(Tf)E
zUR+!(WuaJX>${CJ;Pb{u)_sxtYIZ)Tso{++a{ZUTQ$0q0vfqO66Nie^Q{Qf95#RIg
zm&;vo%ZP{KH9u1~SFr0vJt^INbuQl%cKZUJV=XOPZ8pkYFsRv6dh9ya+`y)TKHTDZ
zR}M(3y0d6}`1$pEym(TlO?&<2h(98~FCG+#H+1;9*+O2{GVP4SyqA|u3IwzHj{j!0
z(2w7@CehHaCUnvU{TV#=6MQaRD$+T~%F3$$@`R6o$CF&E32MIUE<ZUrH9Px&M@ZPU
zD^E)l{uLd&o|Ub|Ha+qSt440&%}!zUuCucOI*!HkxIHU2oW1X0Y^Cu0NcW3xW*%+s
z?Rn6oZ|ZEm?!--DjwilW6QZ}jx+%9HF?@&q(tpvSEhjXU4-5Z&+Oz&@LdX;8SyrV|
z{D(51KKk|f*A&g=E3KNi_bk<mJ+x{GbLB(U>(gC*=gm1Qbj^I$#K?8uzAR@-)?K(|
zi+!X^e(}8P4of(NzkLYn4Bxfj)0052Q@0OE#^-sgFI{pVf?HENd+*86poxsOH#pAy
zFw3o5dC)9j)4{7zK?!S~vUDf4HZERd=CMF%&PPj2&s%FE^;vq1;~E1ep7)HBa`g0!
z{rcujAY);C!Lj|nvXpggYZD!;9*atd{+zmLGe392p`Y_-{aWzuv{Bi*30sZtX)KT1
z?%BApPgrNt%$b!;GoE>!{<kQh<e0XB)~d3u&d!UME)^YlUi$jl%j122`F|?yP`EMo
zBUevX))WE8qxDCho8SMlSx$ccwY3kLZawJ<PY4k)FiAePS*oj{Ng(FKo#N*w!@iYH
zvGewi4}U!eq>*XTnr7}c-rdf^>ibmZe3X=Y^;g3{Yn7l8ySPSBLdX)2#=wb6u3SA`
zBANzTt9)iPU%3`x(tCgJS&awXW`8b*mELzQy}Nt$^^eE@Y8X^GK08-%#WL-}tjoPO
zvQLXX@ZNAc>-xR?bGM40TYZ~%`l9WL_s`0odfmR~({XOz^+@S+_ZBlHPiVSkBVju;
z^KIk(u<AZFuJr5WPpz)y-q=<D`tzEltkt<UvQCR$xLM`r{`Tgtvv<=&64or8b5(xP
zw8e~1-hQnu{J-s10b5l3p2@S`DYG8SVw$$McAG`NvEYe&me1a=`}geB*Soo=#lJs(
zSNJaOy7>23=WI0%w1PyQEIAOtZn0&N0%LNnXX1-<6{^8?p|0~TH?h`VNIzTUxYzrr
zr0w;mq1&tdjpqCLol~j3yQ?m$@})H>G*)#7IIP(4!E{pR+6~7H4L?pf_h8MGWcP_o
zi<RtyTyGs;wfaBfxzy8g*Jhi})(z6u3Q7oh!aiwd;hd-OzMh@W_Rp+xI<$FekPBFX
z`4H2iGiToAsjg(ocz(V<V0w3-sHTC|r>3s1t}io<+k?WwCb>U9Kl5^TS9kp7<9)U(
z#1yp+v_4HqnKyf>_vAfU>Pkve8YP@puKc*`Oz&b)ly#fbRPfiny_NFs%7ygYv=p92
zhYqEGxw*M_&BHDc2~kUh$k!Jc7QN@Z`Q*~&_pdxXV|6rTKz43g)YWA1Pk+~}xql~c
zh)g(|3yOB7z)3Os8Wo+Zb{kC<)F_Bx<<c<FV)A6KOG>&fwVU0Csaw4NQYx<-tD9?S
zS4`=HaB<14HX#cdn383cBjfJO4_#)X>cjW>neBqpK@UNRRrO$_edQ;GQ>VQ6Ui_Y8
zuD{NYolC>uT2T{o{jV>F8rT;t*(Ia#Kv05N@qe1aUH1h+PEP5z=HhJ=k2#jVU*^E*
z<sZL7)8HCY!&TP<UhMlAk33lV$$`<!>(!#`tqzR_@w{clvuxA%Tb|0-+#kI?)$ZE0
z{5~Pp=;aJs?ADbP9$t5b*FCV*;=}6hlm!RQ%{{zT(s*8ILdn$M7EH5@^`7de?pxfl
z>)GE=yVw4iy{&IGudJr*4>o~pdC5km>g>`54gLpSc*S{VuY0m~M`pjY^{&3v$62LS
zRllYg<`wi>eOTR{RlLAq?Z#!l7MVG32uw^|`0v+iVNQoN-XYP<tcS9=1!6r9zk5}9
z(BYiSkL&B*FCXjut6^ssSEH|~xlmO5pYM6w@PKTGPKU;w#ll}TgT=0QIW%r~#niP}
zNqt?{p><chSG<+kv|~rae3O;ygZDrD_jhf^^>wjZs=w!bwqCNkTv=1)iQ8I66}82;
zgft$M8{E3|b`7u9H?Q`at4b428)d!UY<--S`Cy}c>Z#1>vOgX^d|32Iapsy|@9wf~
z<?2z8)G(+llCOPuD8I=pK;cYq!%gFRJEE=}y=yjS?(^48T8(a^e1Fnv?ki52ZayJu
z%MQ=Cx8826ta*HF7lU#`#<B?$UYFg=*66OSb)7xenti!Ow}~Q$$PDZ4qQz(IGfSCz
zx>of+IMCl0ms$8A`Cr7g90k+tYi)LaOT>9)Z_Q`pzn90V)7vMz`K)CA-7Lq66PK^;
z<6pS{?^^M%udnx;<yyH+*T0?|TkIdOPoITr$<n(VryLmfH*GZg@j>C#vL#D0Bqb$v
z_*_F?Z%t0Ne);of^3P!F)B8eK%PpvWzqkL|+GzK$udXi6z1_9av6=CV<#xl4q?fDL
zM+N=<7Q51W`m~aNf5aGFj3vt7N*#5ub=zAVzjViry?d7TFy5cO|NFxHeLveyojUd6
z!^5Dw&E{WUY*f$qeO5%n!8pxk_0>v)UD;1ozBGGtaZ~E)l6yy<zhY36`C(oDuZ>3`
z?83(6k5@J%PGRl1ap=&YjNfIw{jzSIot--K<dz7l`(0QWyj&+~6^rt=_xpbL9jwup
zzuxxm?|ZS5udhPclJfJCcW3y^{eIXU9_fB`=fT&UTKpm!{@Ox68krKeiaPw;)waKJ
z<`j|hkFF}nx!lcp(Wts5`FNj~gGv3pU8UNsZEZn+e|?QK=MkJ8nZBp``#OeOGmX<(
zA{H-N#A5LM%}wQ76G|Q*<Gt8c9yIZo)t$dJ=hq(H3)+GwSMx#W_2SB_b|;!u0~F4D
zo}RngZP)sS#Mt7ySBq<F<-cV-I?}nN;Gxre#*K#>?N7Wj)Qx(xIPvf=!xwqc4ICF9
z7(1x%2Q8yNH`lt|On1NIpCkEeqqi@!E`N8x)k$1GPULvPewMdWwZo5mpa1_)UwF*N
z3k&N?etl8x>dRAl$6a?W^>p4PZvBL&9no)@Z6%mkYs572WdCPst6iCD_4!&tdC8o$
zWpiQ=OP8}ToS1Xr`LfR^C#%2U7B?%;WUULj#P_VCIrICwNm_R{I=AyRosQjK7t2ue
z;lV+jYi1&M1Rhw||J%c$xg+HHxw$W|t&J9A=3lX8%apu(dpz~`Mf58v`&WMTadlnT
z<UQY}@{-c8M{)1(WS;x4f8|C4{}Tts`D|Ugg@mJG+hnWf+>ZUP#2nDE=--D}Muo|0
zU$5Sc{c(Hwc~32k7ZIEt7x+Ja`s8xN_wq7d))xnU>c#KNsbjygF4mgy7HBx@!Pcy+
zr<kU(@k#}Jf45em<6ifq#KfgjE%J`qPPzJH0sj?Hp~hDgUR&|5V^Uw=*Kbnm0@Bi!
z#mD{GQ(63V$`oa}wFlyNZjvp1b*1y%JX>vso10R-#kl!5`h8o#u;32=xfHVp4(UhO
z_&C-TJUGC}7}gN}FD&fZk(Xch|6Zq_d*i}1y_g*i#%VH}Bwa2n@zn4aSZMZVPI&IN
z$}br@_S5y={hXQ3_px&OU#kzP3l1#tEUa=n*4DrwvO<u#Z!5<u4UGe$g;xc?Z!O(t
z{b-Z@i8lwzr+axXe(~+CKw=By^OrX^Dued6x%En=UKHH;|G_~fDU%mAuCB3ycV67u
zx@=2fvP$u>x<};_nFkd4<!m%|XfW``3O#@R^y|VM7Pk+wTwhnZG<f->7e79Jef0bO
z|9j2z>a6CkFI+w6_V(n!4YIO!cNz{>TxW92Jp1=SGowk_n@YCVf!?#z&y}Rx?vTA(
z9>1ibjg@;*=Cw74uO4zWHkRj@;lMawvY=_=s^5~+bgTXIuf4HdANC;sjzsRpDM``$
z>-IjF^dRVx>B7wTV6RgPy`Gz96!h(6I8fAfzOo@|ONOF_%8@I7{?sJiU<^MrZL;vW
zgf&%fCrvWjQvaXhS=arJ*9<!hcv4foB>vqpr9Rua_V>3`+pk<(GmGO2GL6$&Bp$l$
ztg)PA_rFHlG{0`*t`f~uzPoeR#aJrd(aYdJHt)-q>X$#C^M`ovKjFZ*_}qy)-4_Q|
zoUmP0@Swcp^`6_?Z*RVFbK9TWvCljhdKiyXzuW0<@j-P0L*Jo8XTQ8y+%D6Ro~~(F
zDBa!qxHUpbQd094;|#@B3u6n;y}ez%`3Ki@7emu5kz?QMC+v*1{`II^U+d+nOR7N;
zH<}NIxy&}t7yGVsd*ioaF%glD*JfE)I;_h567=@;cXgfXtlgw5Q~vmv??3slwN`4c
zdK3Z{EO;O|%c^vi*oTA=&jojsEk0ad`#V*Xec$RWnU@9F4kj8NNL;eBczHwvW3%j{
ztjEWCk3KkB-ZAs>arvTKX_uF&w=lBHh(2eOINmRx?sqkY;dqAitaJ1Eg>&UBi+aP>
z>n)4_lcX<yJNAun^Tin~S}rMfv~L}%FNkO0ef!8dM%_YwTFeih)RYM~Z!}j+8!XVS
zw-0^$H<g7e=i$lcPqX+%R($1LS(E7U>5G&o-=8?S`|51QJvtI=7#3TudUk7T_M!8d
z`^7~?4JYL7ypg9k|8nG<cC-BZ`*JhcrSB-*P&e=Be|_D2`TW0cEcX8WRx1|XTFT(`
z``g>h_xJW5+RL<#n_KsmvowRkJIRA=MNW>p)B0x2p6%`2_GOv+yc?m59|y2;xw!9N
zqN=XW&L(lUaM$hPE7qTEtBfAla&mllQZ<iBknc};T;-94%=bf?!VPVk*FN9$XZzRP
zwp_edb)Pdx^sQ5Td1a+r%{|FkW^XzEex7fu!*Hbj#k>!ihZI=$3eFKcz|8THhe6JP
zznpJTJ;OJ>*j*eKyqFBwc~(>^co{LVPJ6}4=^yUBz+uK}=1cRK?@pU~>7Hd@U+I%2
z+r@1j^s-)$pJQQa>gw;G@4zko?Yn37g^f!z)c>D8|G?_OoKMx0)qG>FZ9a79R`eGO
z2Di5TGuNl?lXI9gp&+j2-tO(IIkXs#Pg^&2u623Wg<W>Fzc@BDa?f)9q%e!Af<etf
z*(LeKZVtPKRPpOf5&8FY7CS6{#U=7#<&0Na?L}-?61KcaIwo&z<`=)aY)QZFzVagr
zrdCCrpJ&TjU{LW;-X*|-K~wgB^|vpn4mssYi_FA-Dcx$Bq3!A=xx0(^?V+cQwG1&i
zIpVLbuJ)L-KiS=u?Q-ct=0`Ot!X15m%htv2=2Cc6kz*m>rnsfCx>cGj_w?&~<@akJ
z#oXcUJ6<R#$UDP%+k^Mw%v=+$3Tix<I^&hj(nadeEtqEQe!i>7e;>mq=-LhCcxFM9
z>Tis4OCHwDpV;(xZKSZDxPDjz+aiS?C5bx{Pf}BBBg^+Vot-7SN%@=E0{#6mUb(j>
zSje%&3de-8u_Yw^y!(EgQTXn|_YWGr{+NFFY{8$3Jr7D|Fc@fhoYp9DZMm6vf1<K`
z#+ez+SJvOxT%B#c<oo^i=N9;FdU3de<JR_k`DWW|kD@A{&*jreWD%3#_1;p?%z8&G
zIM(;{i&vKGIu7r%I6k?$i1o=mix06&CkVJKmJrl*Zkw}QRQpzxQksI)q513vClWp!
zZg)2@xD`-T#8`ZW`{{Z4gG%}SV!GAF3`(u~{Cd1kPBKay+*)9F>&>O5H-tikg@O*%
zd+U7v^maS1&Lj18tpa--o7p-qSk<)O`*B#lE;%@ak8`J|{lAZTf|-|B22WzJXEQOo
z)1NbaMPtNQ!4;>s{}I(#@TW(vYk&5&H4i6#dY<LK@cs@%rSL^8;fLA!*bIf=HRRph
z#hI7<qOfqv{QK7z{cn8Ckijc;XCs5)xqp|J`*(jX<T=3cx9~^@SNiYc^8Jg%bZ>Qk
zK4|Fe-EVM!_dEMK=8wYjRl}u?o=gayTY9L)c1xnOeBpb6^$TAgGHvQm*wR`%zwTED
z!}gfOOB)_~R{eOmm(kcv%ZRJw>gLV-*<3xQF7vED)Vd0*#VqN!%gSX`;Zgb^>{P?j
zepulc!?bhdnJZZyZ0KVC&FJ!?^@n}kp9;pLEus7WP4y~V`1O@(+Jl@8J3`N_6LmSm
z5WsewTabHd^j51kO}UQgd{tADk{%tYEOIj39kw9fYde=3|DD?p4hq^xin3pcIB`zy
z>1GE;RyXsE=jZ1Bnq~U`=|<-J;a9f2Oq83W%W`1JR-s+uH6;>zI7*qfGhR2^t!40F
z;dMuyR(*jx90#9fxaZkcw?#$99?n^_$AE!(!hsLU^~blyUf;hiq-ZTe&a>Au8Z~$R
z-v93^XxUo*fnM%-P@ip=N5O;jvDOWb9#>y|QR`4t_kM4kQl-cNb#`r+-HpubT{dPN
zry5VNFE~*V%D{U}P9prlV`c`oe!1MjJ*RVjmvyx5-MQ9QjN!KOmfUa6r&uD^1w=+}
z_G)0?Ubble=8RaG3&}2QTt|-l;SXAn!PR4@X7S<qIoZd;?EAhum~7f{x4ypq){esD
zr6H1+gt+|J<>hszM0ln8e&9UxfN8nS4#6YAIcW}gw?d9RKXzepzgWl7Q<InvCviXD
zx8+IG??cx$_BRXP-*vU|sNeI%oV8J<8+HUK++#YCCa=Cj=N8*{R>vu|PbLa8+Q;=c
zH1c?P{8;%eZ$SgoV&*1hd)>A3H10@pY$?mlXFRcf|G!&m0#DoS3keCWdUC)}zTGj8
zZGox5_jkIB+vW3I?SDrK@5_^Tz2HGjV##AS*9+zhED8rR^>;oIk3VAA;cvaACGVz@
zgAdyd_8qPVHm3II-a4>%OHSqV(o<<`xZ|I`U${nH{IjW7bK08<A&mtGGMW?qNZ8qg
zx$oNVu&7VgG-{)gzeJA8i6w{YZfz;%xumhHVBtgtx7OJWT5D$=U=x@!EpFk-$>)t<
zL|wSF^myw-_pZ$umpd%?9{csY^4CHBGm9daa_>rIF`6=Hifb^t$Xb;w>$j6S*Kj9D
zHPOiBP5%D9^ZR8L)-g8;a#ZP*#GTaa?p}X!ie`0Fos43@f)y`9Yv0^Z)&nJosEH*H
z*rfy<@9uuT#B;LHi)Q{JSBaTh8tlGaiDWw(DP_KH!<`A2+8R5j{+Kv*ngJuj<72T4
zuC3*dx+P<<V8YI5{iuC4>pw&uitk9CUn{1tZq?$WN8X6e@r^1HjPL4UG>|$N-%<VQ
z#zyPnw!E6Zm(M)xicr7u^3hQ?oo8halBGI-Px#JaaA<E+hD@eu?VF8{qKxOwGF`3D
z#Cojn?Lz(7T{ja!5!fjtv}?m0egU?;wQUoXiz^R&TY7ahKZp3S)B5Iu4kp1B6^hMj
zU5t@Io<2t%{y&*~%%tjz_q2!*on$GC4GlX3_5amuwfUviwDT>eb=wr7uD*S~>i%uh
z-2Y7BR5<9%RG^q9x}eE%S?TM(GqTp*pCwj{eUx}7+Hz8{B=7&fzgJd=>vQi=+_WvL
zbi=h?-6i3LVj2q$c%-rab9OA;&u_b>d(z~^5j}fOJ+R0;9wnI;DVBOoGXI{A>dfz<
zm!6*H1??EUFvD=-q2ntuUHR7Am%Px6+VrIEw3JuoMAt98|ClEj?C`K(=%dWZEO3Cs
zk7GO6qWS{89;cvoS<_cxYh}~VF|od~k(fNG>SK51gsfAI?=`QkufO*2{d9eCV}W-e
zjEkRir2UW0T)FZ5)mI_u=gXcqUUjp0mTFzFG(pgWY5!6_PCkuTZKFwSbNEkgW{8O>
zd)Q|fU2Ol~W=`4}j_=h@t7fTGH!_uq^{}$C{yH_)e<I_NTaMxD%hLa@W&QeozdMWR
z^eJ~%r5s=sZ`$ad);l?&r)SS&hAXj}_WL#cqueg7Jap*Ymi%~mtNMRi7$!=-xnOzl
z;e*#K9EpZg^|*IL3pi`Xih6o_ipgHiIqF(n|I^$2*U$6*A8O-PZ+(0|Y=OgEmc=Cx
z&d<EO`kKw<R_@rBCnhfZ@^pIqrDtbjU%p&^J}511MaQ;@c^!<*yDooy9Xj{*_Wav@
zs<x%8#B0BX20z>#v*Cf--!IEO8m_i6Rvp;nbU$Zhs~^V#<zU$c{y>pwK@0*)T4J)w
z@%<(7Gwy0%TM)Bhfv)ZUKfO{X?c(O9@QJJ_PKep|#@5UKy^@7{?n3SGU6(f|pH#}0
zW@uvEo8qZn^>S&=sZ+0xIqYozZZ58Eo$zxDUvzihyMxC|AN*Y&A+9TQdi}XMoeO2H
z7fBkVXCCbmU3B(n_rqg1l;`|SvsZUHpLSMB!o}^u_MXmG39i};I%>=fZgtm;o=uxB
zF(t9&%ZtK9S+n1^iC1;?`jYN`_E{@GnM1_GYgWwn12ZOlQvUZ_d2Q0m;19ume)+dH
zr_cSNQ+%o6^PbOs`4iVjR4IKiv3QaCi`)3%0;YzeM|c+g{k?vJ#I2x$4c+4BIX`$j
zU_8RW8}{|FJ;wt%(^clR@2hW1<m~YC|Me}pVPoCYq_qr+Oe~Kcy)&3@ckpf8liJ=H
z+}p$%Ukgo$@UcyBFlT%8FUnr7yUQ!%+nea9vTql6tu}u4Oz!%#bG7r9`B<)1zN9>Z
z^W(AyR?m8JCpjl(PK~*zVmYmpVcV6L0ycaHc%;pImc&f)T&~4qo}T&T#kDi0i*<h8
zXXZb`r69E{v-3l1*?Yf|PbyiiW~*7;7~b0dFOFVX?VfO8^Z9uTw``fFlqPm;{*ooX
zcf@De3j_z7e=c5s(a7l5m0V^%4c)i?7glcBn9Tli-jbXABD3uND*Sz$|2@=mp~hs_
zMCRqp2jw|dFY_r*Y?-%J<d{f-AA=j)g4w$38M1<cWbW4g5A*Wa(f;q>_r5FJay5MC
z?6~~QcIp(Dh#u3ly`OGvmAJKK<?<DrNiyMwl0NKzd40d$lAfNhJ82@l^7G?YACE2k
zC@W=GBVBy>)cbYkcAFV+Y~J+ESfTymrKR6rb<E%}Yw~{daykE}gm;;dlT;cxzBBcx
z7pznEVoTD#!xyx@Wgq+V-DjThPG|jMx_MrE!bf)bH>oFYiHViXOgp#d&4+n;cN~88
zP10I7b+P+x?*B?L3eWz|3iI-}E!}XffBVnR-!IKD%r_8ty!y|wIscwcnYvYOSJ$^!
zt2y}IOSd%aIk&)BtH*8HEJ+5j9Wp%T{I*{v2rw_)?5JYey^=va$vN@w5v9}=9)~#D
zpVn&@Xlm}hJLhk&$=}dm`&VLfug2Vy*;yI$wU|x&=&`iSpFh8a&(kmn+oa{T`Ngco
zsw#JuE5EYa;UfR!DCg!KG6y~eO355xGH(fV2{WBm=eF6KX_2-Ar@hLK6+R|9%!jzS
zb_JfF*Y|m5lB;LjJ%?up%vUBK4|*6jF-GkAktYIzg<HE4-Tl<I-R619xpaNT=Hll~
z3uMBxuPJ!Fie!7F)P7vk;FifdnF~clMHLMDmPo(8%rxKbpT(_7v*Z<+ei-~vJ<jZ)
zIO)|dyK6r;TzYK9Y~Iu-lX)ase4<{U)ki_!=C2bvELo?sPS}={dBS-2UzNa!i5qin
zI?Q9abz%AZcc8^Kn=P(Q`t;ekb^V6K!$wtKE=Et8d-sT1`kvC&toJX!)Ov92m#@x}
zds|)##O{mfFFpGp>g>cRUrg;kJ5Il5s%3C%;gKUQ_x7de-JH7f$%=-3;VOD*FE3Bh
z;5sJtqS0Vdf~ClghyVWmT=V(uiYfo(XS}#89c{NZO7wVx$)bq|WG}MmY>bFvHDEd;
zu7A&6H~QALqIFSU8SYlUuicV&*Q)T%w%ns8DIQBU%!}K{b2>|;`0TnXOS#u9i`H7J
z#`yM@sh5uec!1JEWuDgJquswheYaCu#4hvy!^5Dg3k%G@z7YJ;prfI&XsY((2=kIy
z{;-6SQ>y&gpmSjs-BY)6n!(iSH~-yXW|NpFX0|mE$EHbTOC<hmnZc#d#O+vK{iyTp
zpV@zxdJ3yOF-+gxzN_5))AUC*KjhCw9yB&S-0J`FSg*i6FUcC!E32+5vIW`{@6+HG
zSo#q(wrTm;z;L5!UQIwmk)h{|$x)txl58q1mre8TfJZeCZR-A1D6sYHL_7JqimA`e
z@!m1%V>ACV=i0in*Por~EO>3h>L#A?>PqIH@>yvvx3AkwkJ(ov(A_V1NFaEB-QiD-
zwa1xcelSl=i?93tZnrI8qsGgJ?dLCid|b%X6Vcdz_4~7^3B6LL>3r4wJLJ~Qom@P}
zt*>YCwp{NcK{~IMEIxg{wl-S#*DA?7lb$R}3c1P@v2Z=pj17-wDc2^{OnNuXL1i=Z
zec_;llI9I>SR0wn+m^>2FPbrH5x01r;d6^<&Dupb)it~~pLCR$uRp%DY_^$g=)1HF
zIu9ml%BPxHtl4G|zWml6%Q?$@tsM@xeNDb_cN>G?^HXPvK3Pu-OI+HnBd>1E{lL8A
zXi+LV6IVgcP9K>yyMO%qJpVqY$GVKS2f`E9uyM6GFjmjJ@+NfUs&M@yOUn{7CMIlo
z7Psw|sn_1tY29fT+}SU`yQ><yLz&0vL6N|0#uEpd*}4BOpO~~bVn+-^5X)3$6~373
ze{2kN4r={=)crMLzO87$<Ad{<;~O{5Iw7L5AU&;Y{kH|hk;;n?H3aYUni|s>AE;|F
zWmiezy?4FRxvUpbmlbVM6la;O9dt4~G5g92CC`xgcIrQ)WVIOuW299X5`3Covn*hK
z?tEjm<c$r#n6?;5F;;LGOs`UUx3v0u7|)SC4N~lVGC#O_uKIWwwM@$Op60XmnnR<z
z{MDEK^;X(DxY%?`te32tz%X&@QiC78Q~qgu+<W<D(Gp&1tIhk;euy5NyI}FmM)nC!
zhaGKLpSR?h=fxa#*;15h{ZOg#oR;@dMF&~$4Ga!D<Gc0><y@N1$;UBYqv`xprqrL&
zk&%-dUR9^_)vz9uQs9~QicjRll}!Gn%aaw%nL;Wyy!!HPw<uptf#i#b3x^GUFkYLg
zEx({s*!;%T?PYIYomWbkvvik8*Su3s%Y}Mut74MxzS#Cb^OcpB(EP0od$yQ#^_zRm
zeq6J|#Vq%h$~CiD-aYa*5f064bJG>#1x+p2#b$d+o4b9o{Vu#enTetO$k&6ej2V)F
zQ>I^UfApyAdPe=>#`qYUvnxSy!N%FhWbjtr`kVb#Aq|Fr%vl?S?wvRhaWHW~|G{1c
zb$d38BWGW{i2HI>d~Kz{`}7NMH#fX^cDC=!)9H63d){g`XjqB}xjDv6IrxMjEhwn*
z<*ljC*Uj>J)}>U&f`>6P+;^#&yv_FVTp6=!onv#cNv2TAdgGdN%u01)*V|`wrH0N3
zc+xd_&YXgM|7X2^+|pv2w6%Z#t?+~|ijrIJPu_at2A@?}LAbi@w;Pqu>T-1=uLXpN
z`js>Y-eIkhXZ!W@vvXvM&$a^Tf<1n7dqThe;JYa9y-6XCPuA*6klH%e?$?KEm0o^(
z`%R~8o9_Rz>3#C-2|Nmm4vDVQZEPvy<~HA4QG4RuUw4-|OOG7MU1QuQe%<*2<1NM+
z3m2ajD!IM=d)i0S9=%wtv|3Tu82(#6nlHU4@zt;`ieJC@zzcRKzsctJ{}>-VzJBdC
zhekDDKI08hkq0^sa-U=2>pa+d{sQyI$SAL~ZIT_E3O+fXanX=r(CKw#cv1hy{b}Ql
z%*z538@LjhCq6qTn;a>2%T3zIdB+(A^SVEZ%g<lf@{%+0z`?yzb!Xj_3S@VdENT6I
zW@g5`fF37H_r93LS66qxoWB3d{jC0nhxad9v&Lq-><_LUMi=8W8*dIiKd)Coxie1+
z3qR~wU$DyAh9$kRgHz#<0+XI{ZOtYo!$q+IjLZUwnZgzVuL@7pn6w>SR+LryhfSHg
zZ>ydt`$q{km7lVVkDnRXxQ9eVop@d%_I#o5%vXVV1<f=5&e^fQ^!2SxA&+i<k-5~k
zzwGV8ENNq|p1Ngk-Yn)2xiG)_oy||<fCqPWR#(10%lvHxL)Q|EuuTk7S0Y@#<#()N
z;If!?#*?{^W24Y~!JkZvr&wBw9Qb{G|2=o(bh&Lh#YW-tH$A^U<-hDt?X{XFA?ri5
z&RsNBnQL|R#Pau-#6ek#K{aIpTlox|$`$)cGAEtCZC|)Z{q4=my`?*vnH(-9D4nr-
z`dZYzM?%rXVaeqQ+8<OOR&=yQELCL8n!AzrLG|CSeP7NPryqTkw4-Fr-`Ssx|1=dj
zO}M&B;LN)<i#AG3NPMe%ExN!?GBRb~w4YTK=UQ4m+g0}OD|w)8z-HiR6SJ#i`*~*8
zo~mB+oqL(Z5@xcm-Lj!c_|V-34)I6<_n=n&^DEp~CyG@qI>V-5yp3@QxA?X+hebSh
zWDokLuHu*IVUXdhd$Fo0sbR;?bpQBQm(zC(3vS&xL*&A;FH;XqNG@ByAa;k%2L3t5
zX4|;Gz6yQvwYr7b-twm@+oNbxGdB^5)iYBT9N3h4`Ag;JJ=-rIKHJd9{aRhj-TTn@
zCr^H_sIQl>oMoh-B%`)ul0pw?^>vzk_tL#bl#)BvPV#nIFJp9M$FVmz*(C%#0%SBT
z?#(iNSn}~vZ1B3-*@v!oRvRld1x$R|<-wfUz2VaT)B5e3G~xvlSu&YouI*v?Rla|>
zR@kaLd%62Mv!dDe)U|Ki7&&Erz0>NK8z1HyL{-l)Wp!5$NVvDB*N$7H;@i#lFZ%1>
zXz27m(AiMLCx379v3_%-jkZ6RY<%|d&d%R2F8fP|NB&&!I{Zba`UK7gt5W5^9KIfx
zt?kgeMK;6O(6FuULvz>FZ;Fa1_GdjwkTrT@vo_-5wL__lNiKIE#7Oeg{rJGKt7Ijw
zzYyygL;Wf7)=jSW=B>H@ZCTk{CD!k)-prLn3~mL*FXLWbT6$yA=C&4xD|#Pa?frSV
zQNAGI$eY=7=HxIw*j4(P#p3)N%f*SJyX4m$pS(hEoq7H}n~khSiUA2{XPMf(xb$_(
zl#Kq{j2(4fR|{P8y?vqe^Ye@c2PA&|`(7ToceYVi*RA6*=?+VqEZY3S!#F#RCG2-R
zZ(r}oAS7tw+;-$be|?VqTi3_OBFscm3)eO*c0AKEuj`8ZgEej)F*3yq_f5-gj+R!e
zF4u8r*(~p-I!E98=EHgJJr)l(m%q<vuXE^HnSFiTS`)RfbulZq=ia`?Bvmiq@c-BA
z_1TSlZWm@4dMvRy_S&KG!Ud&YXY<!}-s%w)td@C^x^(KA$r5i|U1!NApAxP5=o-Se
zuif7IyuESaA=h6o7GD!{P%0C>BXymr-B|zRq^i|C8SYmEzA<-P;Qm<u=f}rsQd7RZ
zj{oRsIOkQ-gWn=O-QxP!#C4-wPOv`qeh^XYvX5`+vSqK@t{VEzHcs!maelL*gSOrB
zB}+2Ar|XH%Z|9d^XM8~S`{9P<yV-F|e@Aah>6A#nq0iX)ctcUbqa&S+np(;M46RX<
zCznrH-pJH3p|iu{?FWf$?^O%?uNJSE+}0Xf^zxVQY`L@tTLc&;@6vpfGI1f_9Ns+9
zh_J*5hP$;6Fm9~jO48gU(jct7<IbFS`_uj3^Ts6~U$^+onb@n34t!_pvEnb9Xm;>A
zi@=HV9k=Q~pEdv4n$k7TVb+hEo71Crq)gX~{qo{PM(;uOYkN=r<>chFl3%`b`SS3c
z$HU_)mv&inU1`$!m&xJ(cxFWV2^NO>Z#UCTGB2s@FG|hNI5+2h*Y8j13mUe}n6<L9
z_`UdRsj$0sN|jT5nsnCg*7)598q0JPu+Uj@>2K5T#*OTX6$LMxr^wn?ZCUzk@ttk?
z>(76`JNtH#{r}#Q2kEJ-Wz&i{-EtouYW?zR^?I(p7q^(jI1MZXM4#4Q)V{qv|GMD4
zFP~29AHL3N7-X^NV&#J}3pQC(&|#(K-FzCiA7{Vh7Sq{K;Qo2*nfr`&Gwv`t-C?%S
zU&nn>RP9@l!|QE5UMH?Hy^i-4W@1e{H)qlQKc8afvvZZampl0W?~bLr3`(|4nUWpH
zbn(Qavj2boW<EaFJ2fcP!&}2bcFk6ft%sN7_;T!bzQXTx-ym{EGvAYKnZc6trJeij
zUR9ksHq&_f=NZ43+>-qf*ST`Tht!mmgv+Onx)jLD&N(A?Fh7mO?Y7z<wsonGQlv^;
z3zolmljGaeTiV){G|@);k<H5VCS|V!^0rkW%`fGi&o~<LxxA(=ql>e(RJ6NeSKZ$#
z+3!qAh2g~|_x(x&ckh3A@60;Z{LF`kRFwi0Oid%tpOAR6xlG;XhVxwO?Mq~>tpal1
zs6I1Emz=UR?iOnmw?p0Euh-2QHO&7UtBq3aZun_YJk#Rj(X$8c?B3oZSGPm-^@MY>
ze?2{CXP;?&A3RrZmu#{3LBm?t4U3oz7$m-!Gf2$|YGSTZD!Ed`cigLNUD}KV*Es~Q
z1%DKBFq`t7Nv>g|mHlk@hA$#V<_X>NcRS{n`=emVj~8z@J2d|I!JYJ3wDir2i(R6X
zhZ2+>)nvb2UN$#*g4@Mb?p_v&r$XA9E|cm!C4UA-Rkbc%{F!H$m`$Oac$>WDxkbLp
z%?-(ZaSso~yBu`6`tA$+ch=*~8yNhqJ+D}h%Bd~=y7<Watwpf{zm$FFT7^oaM6_Ia
z!r<%cEBe;saDVRVNXEL$3b!`>So=8Y!M_<S1#1%)ZOu0Cc4(ZcJ^vE(#sk_~{=T!O
zILOyb&{nEh!un<9@(Cudb$X@4HTs&Det*6GwvmCd_S!G(7moGrc32x7zGk0<!Ga0v
z;@-NRp8j6c&U?+;BOA}#dGk&8VeMkJe{dk9d$Qq<mK~gX`TiI39Px~}EpUNn!^z^r
z5GDb2pBWC9W}Q0T@%KV$0*90JwO{h<7#Dc$f4nMmwazc~H7nb!6?bq5pPXYU&9v>y
zffEyV@*LQ=rRpo=!$TE6pQ<r+q;c`<KY8Af<Pf&*Amf8=S)rzTA9e^<S3Y`kRO##0
zPcLS3JlnP{IQBqee8`u@4TTTbS<|<uzPtIEJ?f`M?mP4CsiGU!%<NllI?>)Jpy9>&
zUo#A4nP1(LtI81n?k>_jF<df7{cS|?VJ%kK6Lq_bmv{P#pW0FA@k>Orre{`~HJhn`
z><>p~H`jX;*E6yHas2vve(8_jPfs7^Ic6PtAR?^IX7#r78^h;nO#n5(N_$ck9GGFa
zJ3>59P~<z0a){^2wO(v8%1e)hZokD@!oH6wSyqLG%VEBkSJ&EYJxuokV(uie1qMG{
z&L;5i_uH$hWtl%M^M20W4QiYB2{DNZXiS*Z<+T3m3N>$j3+0YE`~T(|c2AGhF!{pA
z{86a%^|td%i<?h2u0IfQTvIuDW?Mq<l`DpJydocL72aP+?%z2*TI~j?57gzdfsKiE
z(xgXUw`Q}4RKH}5zud(7Thp+x?t<k9Q3=t=j-4J3>|8sX4!$`Mo)8k!sl~*)>*da!
z%FWOAJv^YV^QSJr8l>*#k~?>tIYcgW{_|-R(@5~$dbDx<ffXn8dL@n9*ndcPdA(Yf
zp5D)~<99Q2{mo6)*}cs1je!%ncRg_w)G#PalIz}hmg&*FCCv5r_H<a?HRtLnoxr3T
zu)qv#_)ec^4vk;Fuw7Xb`8R9tzc)8`etFa_e>IAIAJbx`?JLzl9x&s+-d**ZtEX$t
zid{^suO@-b4`<1nI(hQq_0iwGKb0<Uh%J5qTAw&;!aWtkLgwb>ljqI1zxMjut5smd
z=Q(0>Zf^SiCGG6J&lUj-^uSjCoDvjNcf{eBVDqZY^Jc%Ux~E|AVY*Ic{BlsNcKvaB
zkhhMF%Y(fxDypTbkgKQbkE2mQ!kZiWs=~sGrrv*eV7}$&Nkt%ASMfP5U}#?Jwcx;=
zox5M`d>)qNJzWdrfkj!MMS`{8-n<X=^Xr7D^>pfN`SL~gm8*t<R?w0ID?BDDvAVf}
zR!C|>xJ-+cpj^;e*ojQZA11D8$>~m67#3-Hb9Qz`@xJ}HSFd{={=9Z~k#7Cnex}9k
zDerjdOZ|MA+$TQj**dE^ius1*i!%!4t-`mh&IR6HH|PDy(wx6)-%tL3R{QQ=yY}_M
zueG2hgztkI4LdAXn5vgf-F!>9e(iqi?AupAzm-kT-mm>V!FK13?8Ddc-+5^~E0(cs
z|N7a=>iGRfo0yUrUd=gJP#b@z-giH9wn239wO9M>S&uPDupF!ai7t43<Z5j_R}bSM
z)#kIOUanm6_O;m_*4fH?_w0J_-?*_YEhe1DVxO7R&sV=b)%f4qVD{if*5PS|$LGJl
zJuUF$?DUWX9*4qXRr_t3+gJbU(SEzD%6^{A<5z!gTc5xB`^%HRJAU`=sdTGv3~CIV
zxQIa!8hD}0Ppkp0LRE5I*EBIb=&P8BW>83Oi^=?zEBk|e&ggb^t@2+T7AyYJJ~=7r
z%IUx*OF~?`M6U8`X=z<bKR@r_d@c=J+r~|sv}Qb*W9f4A==zt%&!1g9H}~NgmFd|l
z?yvTkm;_poyehQC$aDRkPuaE4&-u^1$@^rj=6l(c&k-W){JmdCpL2P>$!+H8=jGSL
z^kSUO&N2<w4~FRDigQvtAG-RV;*7*7sTon5qMt9`66w~Ku%IgOp|MHX8?mlFzblt6
zi+37jbctvlTj4QrQNwc3%IbX?7yn;6)cQB$+?;EBY@bXnyS*jT<7sQ<*QO@TDYJI9
zPMWNqnVDH1q#p~lNGEFB8{5BA!{e5G`C@01?B;&&*pIJOhK6S~tfhIrx6PYu+?jUn
zj$^<5zbT+|3q#X2f_gyftxcU@Ut4=Q{oEhTy+0n+nv`aRdwEL6D}SFj<HoF_;)5Oj
zFSD=pEWWw9{Il)eMZR;bd`l-O9hDH(40;lO>f}kmGao)4PgHvA`txTp^Q(WydR}Un
zEz<q<=&1M0tKs|`#D1ISo|$2|>NCV|O7{aC9UJG(n&ouzq~MoNrwiB2<>l}C-6q!E
zs}UT(A;C^J@{_D?%nyHEL&Lz*RZx56PPTr}y%m#~X4J50Gdt_o&u3;`b<S~-{I#cY
z|AO;&yB7*^LjBU`skcX8>s0cx!uqAH-?w%?JKO#EtcMCieTt(a^HdK9NKhGh=<SK$
zt~c4pSY9W-;=jY(iZT@;hi9_R8U{j~0!KgWGdG2)y=rJAc27Ue&0;~#!@tg@ziMX)
zaRwwlG`14rJaVMxLHXo$D_xkn47GxmteAEQbSg==*xB@6jde8-|7v^<$_a2)YTO+X
zVBqSm)YvZXck$U-?_hm*Lr}J7wO$*!*=@e<Z_SM#>Rw&x+tVAMf0TEXhf2Z8NgfHO
zrp(XYoVIsCTpu{~afumSllnJfUbSA7PPl||+MX&+y9He?OzojcjNrHsdC{`9ZL)g(
z`Ar|}%*&TlY1XMs^>8qBn?HG3<|3scgK0CqAK&|X)7gZ&?Ok^kCm-)KG@c_-!u>v5
z8t#6!lY2hMdGj{aKCI1E25a7*o$_h3X=JwZy?Kwjo~7Ph_j9-Qt(kj&fBI5UeLng9
zzdO19fe$9cRK!Qj(0(O#?ON;it-WVDS<=qkIVn}Q#7kv?#NzKfm#(Gs{_U$PF6lGp
zIWWs{*R4Kdwyf^NorkupoqzS>-^xq#7R^%qe5iWyqrJaf>qJ@E6ek`y)cW^y>ztjx
zo}9d08Sf8v%X!I(`sWH=lUJ>LzOgiaol!vky4cI_ohRlVI`sSL>H9*OH!od^3W$xb
zh`-Iz$udpPS7?5!Qsa*wAHRG${oh|zD4-{BqV=q0w!9nEZU;ZHK6L1JczkW7fphZ1
zy{{+szBm@V{Lzcs`O*Oy8Om8VHYi?Q9nSyPd+E}pC2wz;YH9CwI(f2uMey?4JJ-vv
za`Ov-qUrD?kAy@2^WS?nEZ((A=lyjqk2OrqEi6LaH*`1NaHwSTx#<vk(;-<pqx#f}
zRf`)}^d0o^H_2GEyK!BYz`GfmZ#riln72Z1#maRIF%Owmopx<p%u^<@S=nGW<3{Ba
zf!z}>e0x4``mUAh{k=|22?|PkHLpY7>+he_zx9ppS3cic{ciS8;eUVrd%EXMk!bc-
z<6XIU8BaZ%v!<EZpWAmn{rYWV6(VKzLE`=YYbgsqO1z)_%+#hlkLT}8|D_>ub+ac;
z(&_5zTC{4F)@QknjeGXY>FSohc&s<nr0&mUlgvxzUVVxkw_KRQGvD94X(q&}6Z7Ny
zwMDM~BemT-4J}kc?pJ>m3{$xN(KVx2&~L%_tQS9)X&gz2@xNGeLTSJEv@fd-@0r(6
zyuZ7AF|VYXySuW-@f_3n`vZF!?j8R>U9ZukI>6_Q?q35ZiLIS1eig!;Ya%|*GtIvj
z9c4Mur-xUt(_ZEBobR)v`<}7A|M5F+!~4Zq8*>>R|9y1yf9Epa?)8TE*so_x2nQ#&
z`8n3ykYbWQc0A-&yO7%oUzHC__tyQj@>N;T6}XVY|3J1y{Xd^~KckOT>@R*U5w3o8
z(V;_$Uw%H1)zn)j9J{aP<{4hQ&pzx@*553&_XzEOe|4$1iSRskLo>IY*j*tXw!UY-
zaI$Mrw|M)7Z*Mn-L`9ubkx34D(ZYE#=9+QM{^P$Aw=2!*WC>gUk2Uw!m$_;}0ZAb(
z%w~CaJT|ADUGz;Xk$rul-?`aW*4{1$xgdSp`NwiL5+1j=eO>hBi=at@gX-IRdvBlN
zoHk|3h3WCrE<HT#oN;GIhLrI$3t|74!Y#jk6dDQV=c`@I*j03N(Wg&*K0RBD+wzL0
zJPi4>x6*i)-M<Q%Ua3&Ol`Fq%7=C0EPF>0GwB?6f^NY*=!ZUm(zo@=1ed_xzCw_T5
zliPi=tugOPs(wDrkTQG}9l9`=p~o)4S*h{Po$}1<>x_I=794r;Pw}-u;))uP&(F`V
z-^|Q%(k1ik982Rz9GlmyITN?5L~-@1y~nb5R2H+nKl`CFr?OK1*X8+ahKjt4w`}41
z^=kF{6`M9)I`jYN(W8~mIXCA2|CeP|^(8Z`|Eh?5yz6rR<HkQrmOputQuS)(a-NB0
zuf9w;`PK05{`&b{-QBg57R^?$E`N9C`I6x8@9w@lH@9eC-o(Jw{Bn1e|NE=0p}o3g
zz4&o2vuUSip8NlOfwFsF!Q$QBt5&bxE8Ujo?R`4q^t3FslZ+<ybt2Q>ZmIiyo1?Na
z()7N&uZn=-5ecnhMdg-GTVoyu&FA~n(6wcuigK$#aq<7|>lORU*47{U{rP$Di(6ZN
zm%O@?-gdyDNn)0WQ^~)hY)_saH<-w~Xv!47lE1%7_Z_R;Rq(LMGM*`GLu16;BQI1u
zmM7Kx`C<6X=4|%O`7>sCG_&y<EtxsLzL9hNlr~;(qwh^#B1%W%1&sck`YZS`D(F+k
zzfaREs$Q>^2<^+|@m0CtbY#Zl$;s>E_wVzS`X8{Oq3zPD)}Wn-mfA6^`UpI^v$Ht!
z-kwTDb0&pjzqe)|FW~>H$#tc|zT^d`+T6e`)#Zy6MJ6nm%yIYs>3!1Xc@_V~Q#F@#
zoMU;W_W1GR-b*5%gdQDMJI*z+@kfEoy~FW;_=S#S2d+_wXK3lDb?Vr`_OHvUwdw8k
z^~QVuRTa*j_~>x^%P${~+pfsJUm|5!vt#?@fYnz{zx?s>@t3#Tm%n_wy>rr}TkV^!
zx-dDa94mc&EppG+l~P6TCSTw8&2-rWDXZi2lcltyi{HOpe<{23d4^+Zrnwk{63Yp%
zi-+z9ygS+TQLg)sUi>_<2_OHR{8i_Zd`xD^nl<OP)c;SgDm!D;@;Iz#-<8FC-rd@|
zI<Ue#|K5`K`+lFB!ym*V*>Ge-Cl~9-#wP_lW&$i`E8JxIABL=O5m+oRe}b}|^G)^C
zDU}!U_y3({;9_3)N1*EK)!#L}!nwaB=UQIwmb1}VxY)h_lKK6b;Q!*2Unl?m=6C0%
z7l+0UO`!#yEVDd&7KTWqAAYNL+(C5GZS5OE-fmmjW_^;;{rRR&U_to`lbE)mBNh9T
zjv7R5P}qC&*zaEgvVR-Y{A_&A+ufck{c2%INJ@2kSnbLaa<)}7z8i{1goLD=Sd)H!
zp3jEJHjP4_6MRe5T{xVCPn0^$xY7Uk-QC^kMvp|q#H5mrq%$vS=@Ngc`6|F8(4+Xy
zj=(R^W|!}fad%$+u&cB1zuIeoMGF=w_03<Lyj%I$E@g3lHKB-2Pv-xu{uiuzvOwXO
z1LtDJLs=&)w_iKsd~3?{jHj0Fr*8_hav!Pqf6iJn?c{<4iTBd~&P9|wI^qyko6@H2
zXt6!-?keXV1(yk8P4Ny5o}Qj-ERF{_IWgVcS$uqjdCs|=Zp)_!^88aUognMs-xj{m
z$dKjs`gr?YwZFIRymz!){A}gl-`~x@i#nCWiFa*T!}FeXG2bGemUm0NJ$>G|XlnNF
z&^!0JmPvW-xw*OTC#;_>GWSWxUrx?|{rt>2>O$&EF1K>W{=C`w>s#%SuVpVgJ02Fe
z<SI4(y`%W&h?`R5o<00Kl&#%8H|cg>oG!G+U)F5PeP6d5&tK2_Cp2rn%cJvqnN@GJ
zU5O2zr#zwfR&a@a&v#49&l$J2uxz#o$kzK*{p?JJRgJ|pp6)~c8m{Czb<Ozi_(XH^
zR>@B;A}=>29_HD}+1a=y<wVFczK!x)0<QuW#TN2(Z1JA1*B0Z*ckZX_1l4!u1rHp8
z`B;9;u`E6&Gkw~$Z!8a+G^|Trc+~%J)~|ZpE3~h!aIzKa(WA^SHlMHhSnEDx=czw`
zYJ%^bo6COb#l?*#b$_<IMVgn*J#{LN#g5(Z*AKhNyC;A9QK&k(PU!kc)BPR4Z*5Kd
z@^bkPAEC2<Qs3XReertz_sj3={Y_H6bXI@MS3Y(+a<)eT``Y;Z*W8pCD^%3|=dC#+
zaf)k$;h`)qH<|d;W<RTIHk`V8<74Br)Ax(EyLWf%e6lXd(EQ#rKX0;Yoqp`8WwpPp
z1X_4IPFl8bP3361wX<0L>#M8XZ9I}mSLU)jI8mrz%5q{sWBtQcA+>!@`{F{Izpq{Q
z?#TCd-n+}oAF<VKknEdk=`w}cg~^FcGMVr5larI%rdXG~`Eg{cmbUe!{JP0r`TKcA
zU)ERctp3jSdGlAZX;T@QSM{W_&Sesip2xqQUvAB#YW}4glXFj<vrC*385%0StA4+}
zsEEp^;_?T4uKw?9vfbR+-wD(_u5D}UFtn}ZkhQfs#G|@c`Qpl8&dJ51<xFxPzUqCp
zeA*_Ef9FIB>(z;&Rb0JNS0`Wn%lYfmY5l#QH>}uf|8HZ9-TyuEe?PR#Y8ZbunIA1^
zxPS637bfX9S6BbvcvoF0LpUjfKPjW!?U3xI6Zw%hJ%vx*o7Vkj+O%aeLk%wMuo9i`
zGRNuTLP0jiL=R!!-;3S*UrkVdCS`2I_2R6#K8pyal<3!v^VX-OpWRxwS;#9*NiOxo
zQOlIBpKhHwx*8e_4mPt_hrgb1R(S8NiG8x(X|3%YSB|xx*N;1sW@^=N@`TYok2}oQ
z1%pb?t$noDxqZ>hBb$8p@<<pQxYC(=H#M~KvVgSN@>#CzixiWNyw1M9Zsy+^%a59V
zToZ66{anSLIWML>*z8zvu|sh0ne@iuInzX+@5zpgw5<K)X*v0aK-JT!!Xlk3J5(n+
zMBZF~D_4o}Y|Y{hjuT4z-TP{yHlN53zh}Mi==<mplS$v+zfTt7mCBm={m=z9Gm~ec
zqDM=0L^d^Q2u5<Mwy;G@#lH~`I%4x+i6`qCwe#ky=WN_)p84!d^qO-WUS9LQO<MeX
zZ$vQL3iB(<S5{5flH(+z?q9a}_4WEEs+A7UOg1VOiFtA?^V3Z+(lU4HwwjQj5P#4u
zZ_<&%faBBkVn1D*xhMYqomKsQ@v`>n&jKz!WO#Y9dT;gjv?l57DJn|&3ukSVKd(7)
z=Q)koE4=eqPuXc|T0N={{@`IH%=zSr%#-(S*UKh)EC}r|yz_jMQm&p}#Cc(^uT1M7
zUR(SB`h>)|xYz3|_LpYw`S>-lE<mbQk>PoKd2?Tz*yrku3d0gjJ7e|2L)J6q#N5aU
zTJv|0K}e*>{@=0bVeXM}hYs&`c%{K^b|!mQb3uymCt;(Ke^ak-&yV(TvVHmczW#z%
z?!}q+?Re5}#p$QlmWlq17m~2(6mmYNq5Le^)wb!4%C7Jefg<x*WE?dg&9rfJNnOTM
z#PiI`vF+2E9m^+kJhfO+wZgkZY||#T3vX_g?@TV7a!c4@((7xz>m?_i+?syg?!erg
z69s2`D5%Zo%}sVL>6I0JvFh8`O1{54`_~uO-i`jYySYSaw_EWkv7U$Le!UC6|M|yn
z$u=gtKOgFE$=80d@A-Id^NIZ1Yb*4*{HJtBAKlUZYtC^C-~X3(Sf6L+<dG0~B42YR
zH}A>2%I5kxsfUUag!xrY+`9hRWE=mIlD}0Z!UgrePWqpdSbgfp$Ig-m2QHWVsaSfQ
z?UI0H)0G8h9J~U~Di{dJC}l6q6TI2|-!bjdM}Z*Wr`^Rzmo@!gC{bv0&Q)^b`OM(L
zNlIo{{;v#P&a>0*{~wO9JKHrC7uE_c(pQ*x;Mv*pGp~E77^I$(n`Q8DYloN0g`A`*
zZ2Jw9Yn)Ra_W#OwRV!t@-@NSZu|HFEBezZaVN+x4U;EsIt^So-#Enf)g{{rYI}PvY
zM@=~vouPBEnN93-h_Cd$p0$e$?l4&1*)1-8<x^OAx#`5YMfr>#Y+(Y5y77VYd#^Tc
zW)=`m4*vcw^<M1;ADh2lM6Jr#>EE|MCNRfZTHs$3&%!AaXR^!rO-Lv!+a~!<WK(mH
zOQd7TSKYm;WxR9vAGyRf87vf9*ip#;#(jg}x~E@?x|)t;SGWu6TIb*US@yPd4ZnxV
zhT`WTlU$fi+_uWSbvtpshr*IYLDIqAz8|@)q~EvcC@x$u<<HhgmPKNRC3ly-HHtf&
zdfLeM$elHj_B=a{)Kmmyt;^12w@!E%peQcD@J9Gjgtd8u)`cI=GatlEm|X0~-}`H4
zv8{%&@zndfrKWs}+c)RblgY34wioO1r8E{bxTMTGYw52peTv&?A`5eotmL&8t=ISO
zFIySBzWRN1*t9cqXN%aGwf*|)ZTfk}xrb?2Sl?B@xS;r1s?liX%$dvd7K$yDn)|ue
z==jU9_4`h}4ryO;dCC-##VUc{pP!p+d`jZ?-QpQW?9q`oTc!Uxn$+xAb+oO)g~__y
zZ<&XOia^jo^Ipw$(+sY)-}<xAewFcs>=xn3u8(!^?kx97xwA6Z*lE`u`+pw`!xWr%
zJbdHQ+WK^j*8+<Ly9~_ROmdH$I##8$x#vvdK_^Bhr^h@_2RF>!TzKw;gv<O|F>hhD
zgp7>~P6kfcc6TD5jKsk#?a5VNUWBQu$}kl=*aRd8?AMrV{lQI$y+L4pRo4s^D@p4U
ze}8`nR;uo65Bc@2cVXdUxlguPr=tQd&i?n<{!;Hsd$nUmH_PXI-neq*N;MA7>uv$Z
zPfS$ieQ8yE%u7X^<L&PE2Jfqm>pZ-=Rl8<p|IaAV7`ZFOHu1}uC&%$jj<cCRIceR?
zIrc|t1H$fvUwS*&w))xx<tZ!mS$Eaj&-<P!W%ww<#cdIr^uu``3ThF&JMG)PAM4BX
z&^0|CasR@Ecmp9umdjt>_h)@O?))-8*82YE^u8^sR-#FJ=G*LSj(oD+wD<d2);%qr
zp6V}mK7VEZ?8?fE$Bw^HaaXi6xfPHgaj$rlPoTC#R#v^1hQ~77>R-m0BF2&PzH86s
zwwrb7l89Bs27T>iCYN6vKYBB6D!al8R>1{3?9C=9_xwAjy1Yf?^eMT5_y5hNzmH;g
z>)aE0eB#a%=_z_TlJPYkTVJXqyyN#0lx&<++`r@hOylJ<db)pD7oB}xH7QS&|C5|4
z*MHfEMc<dby<KhCm{v9Y!z9Jvz|R`u972aTOT<lm@o3lFZ599a80~yq;5JjA;mTx>
z2K&<|6}=}p2KW3kx#ny5#Qdq<!3zBwY`?CVJv3jc*EDm>0>h4v`~2ru|528_u6FGA
zHR&X)gS~$>)VBYyYEkDca&v2&`TNiXxekucISM*^#DtnRd3j5pIbzyk&G$Il=-!?5
zqn|sZ{}eqI)zM#{Rw{N_OK;lwX32e<16??zO7s+2gANp^UJ;+RWKwl<b9>+#nRC2e
zMd#)i&0q54M`3*3J{3E?a}x}Ig-;93y;9`pC=<JjCAvMfU0|bPxOPqRqopjF5AFP-
z*{yiX-^nc8|L^tY8o$WNul75)E6uXp+%f;VUGD8`^X>a5mfEpTSbW1bfL$SN$>ZYH
zX)Dg1o&7lT%#6T4KNUV`wRvuzb#lucoAT%9W+>~XKH78Ye280@`a=&Dht=W#7x%g_
zy}nkPlPDM29we&kRIxBl%<$g*9TWYf&1%;B_I_WxTI=-7pU?Y?9?x<W*FR=&7}DM*
z?$U8gLX0nh*<g>>$-@hk90ksqN;>9DyLxrC&FRy&*PYJr#2>r8!1}7<6peH3cbUE)
zwEbah_?_AF&}H?mQ#%`5;;Yy8NdMjJZ*zN@@8h3yc#Lhd4jKdoZY^$?bJF|ncEGAr
z@OeYWf|QRolROS&{@P#nS7PtKUpv(%FA_dcVw@W#^Y+%%1S{opzueOul)@LzxoBB9
zY0(r-!;S3IcN?!heaj=|iXl_AUW|tE`QSjtR+00s{_QY};9X!g@xcF0#l`*YAxey@
zZm!)<J>Mgqlz)EqJiF)n<lC{f3dv`?_2r(nm8!^EU;Eg(&`Pm&U+r(HWa~vnj#CWg
zH!G<A*L<dwY9ZEZD3!`tGqEiyN4$vt%=Jc=LS2(T6}`vgyM>y+7;OJ`$y;C2^~o0%
zF3o*^iX@jVne*vq%=Wygn?9{JNG;Q{-9G(t?#lyh*^g`Qh|jJzOq)<vRu;P0d3oc+
z$D!-CyR6&%#j1E`lAxnyL3~aAQlE3YrG1Lw+uJYy6u+_k{G(l-%T7+_-YS?8a`C#F
z(2nZww$|$E`_Bq<Y8YxovB*9CTlKG~f3@Mg{g>9gW`4A51xL2gv6+>w5qu6j=S&5k
znl?E(OgJIMEH4|PJViz-Phhdh11GC<FMI+m9zCD@Rl>0?pzFp5`-ay}s;B0t^_8zX
z*}?n$=ElR%9=lyIK0l{gsd3ws+vVv8vM%l0wYu7c^=t6~f&7v!Z{PY@2<vsoUz%@p
zy}aj#g}i;=ven_jTNOD3z-_2AGd`OBk8|5z1rGWP4X$<ezcNhgJKe8Iyx)KS-RmRH
z9nCM!*ZVE0`)f2art0#;!|lCF6B&e`7tAfb!Plq(8reABq_RG4Z`KKK9R;Temo{`K
z9W<Q8v^M5gL^gxbk)SZ6cFj|lC6~TZapx4VDo~j9?VYTPvU}L&C7$7XwG$smoC)UA
z+#Oor{5!$_V9h*@_~*Zq(k*MPW?j0R%ydfdwt$z{q?ruAXH|(?bD2$XoucqcL{?z=
z+@o`wum0V0u6D)xBS*NTY=2EN<2tM2c|Pg%JQpTm^}3^6HD#++K;v#E+!0UA&A+Fw
z;cCCo#G1Kh?~<uO&5s@(+>+?b^YztKpTq6x5>748FJ@+xtF06(DrR5#z+%m=#+~AU
z77E@xKMz(Z*m(r%JUV??U=7dyUCf>ZeS6CC^O8#b*_N#6`t*5n=A9iPRUeOT{_<+I
zS?wp!sWYP|mt^l)H$_^dPs3ke=k4eYBQF(=ro1_ak4##$Hu<<>OuAUF)YSYdam4|F
z7n}F}TD3oN@}-}9cIaCPX)wPERtmj)MC0Pl8Iz9&Y~h)2)t-Fu<BO}SjsHGipZe$5
zx_=x^EGj}Dbhf?mRB70=);L`+W1|a`S5H^N!;ez?e7&bFna#2J<>gRGyOkn~Gw$2z
z7}Ru6y~mrZGW}@jT<7IZEKVT`#ucAdtxDQk-1=^(dAf4X+I?sAKZ&<I&AU^$|J5rY
zFW<Gxyr(~k*m*U|^p57GIrW8daq@O|rp~L~W<L3hVbrcGi+ggd``&9zT&Z9fb9kAo
z^`n=&-@mbv^Ha2+@itMMk#kX<z{*!9Hx}D@d2h}*J<ZP~)k|^m%byLkEmyBbh^AP?
z?w^<T?zx=SvG^5*B_<zg6mrxxPi2?bwei=xyx&tifBxf*<t_)dO;pv`wk$d5$n104
z+f*iaB%GJqVmZ%+$$Pro@>cHY?4}bNgccvt2M^_D$33pC`xmly3L8Vx47<NJ=5J<h
zss5guynub?!PV+%#S>Vr2wf2i@kvVyw|maDzkctsi@lG(Pu}VH-Y@-p(piVoe^TbQ
zl?Qh2>j>O*#o=bjn+Q*4_NcU{-Scd_ea?j_&Up38Mei|#Rl$Phjs6vD6f^x*F14*?
zE}r}MSLws|2c7q&Eqq-0cGl11yNV}hJmS{BlM;IKcD1hhLFd4v6A@vT4(t_Ns^#b^
zG-b*>yQXvV<&UMFFnVH~bR;$`%{*(~;#*(e1T^gZF>CLRd%He<UMAV(>$y_ZB}QDO
zC!I+%$s@cY@Y>pvat<S-QyGtrTrRzK@QaOk+v?L_z3;O*C^gzv8+e7z_DDE8EB@pA
zjH=BZL7jnt`a2BMjpm3>JN7%kA><0PTC4M&8EO~L&0YMHJtl=i=;AV?o{q#l&*w?I
zt>0JG?fGa;cg$%`#fL(?ay@Iy{!i6DobmhHk*a1_7KQ0OJhRW&=3HypQ)4-ibAj;W
zR|3vFGj20K3=O;Y`23Ep(~&OoYo~d#^WQT+ZLo08jOymC%ui+Q>jciu40h`5Y?QoX
zUB1tu{%d&PmdfJw>NRs1-Wk^XD7fr+z(CcCn_~-uV`ZCz_8#Xm8o?nU`s;RU)QO#z
zexuZ)J#mNAs=vQNt3x+e2paC`QCMP}eokUGmxti@qjTQ=`1p9QnYg;9nyT%R>2X%K
zUp%_dwaqzKsqyTVy1(`2oh;YZ{+@BN*y(`E$|EaQFjw$CKR-XS=X>_Gp1zF7wb_bl
z%VxyY?VPd9=jFLoIVQ4}NwZn=)qPJbSs9#o+(PKW*HfphE2Q5>32l9~!u99x4~hK0
z{=T1h{fn9TyRD8^P8JG1j~=;iDNGif>||xGbN_<&`jUr6e9!v=ROiS0CLiZ}TBMX4
zd)atj$;+a7Y3F(tt&N_@(NLomqv2{JoTJjQh&9vkWuwYNW06TrnLFF3vA+AWu7dwa
zw;xNJ(?S8qrWXPS_BDN#+{o|kr6@XAB~&1_^Y_uCcNfe5`*2EFaA(&A*IcE>(k)eA
z>!-Rfd3d}R_tY}fdL{9G<GRFZ!+YE99PcHDwymwauBo{)&1v<j$MIiS&j)1XD)6*%
zZRDKD)yQ#D!Pz%7lwa?;uG-<<dsx5!G_<!!bW;EI>vf+$%hnTjl>a5k37CoU6duap
z-`dq6v2oRjTN5`ibyR2S2i7Q<@_!VceVt>&!Oz^1i;^2&+x`FZ+0E6<h-G=d@bg}&
z)`XQ@f0^1fWja|j%)jr5o$SGIFlU<3;zfLOj#Z!U`o4DmiS>(C&X?7Z+$xzX6;;N0
zyusmB^t_XtAAC0C2$r61vRNXzCE1-nEX_Id%nUuX%pC#~Z?9q!YOgw+EpX%G<Kw)Y
z2a}X8ZWCJb`1EnjC2fk4E1Yry<|oBARvnr1?m#2+-qjrse!WXjj?DgiL9zSWyVk46
zmK8qcD*3t6pjCS!!_y~EZhuu33P{RHZ}?bud0G6&=?^9UO;QQ0How=d<e<{pdicfX
z^Sg~0ON^ZBIf5#m&E#A2s4qBbR{A}kCf7Tk%O)LVJ*b+Qx$(<~#GJXI?_N7k*Au<-
z;y(X^Ie{e~9|_#rXFKg`#7;%QDcOfwGW4|DVzpnKn!0dHZnVkLWoZ{aJUm(Q<b>d5
z&En{=If1+UPIGk#bn&H5cThcZx#`UvIp6y!^4aSe6O_(GHpR3$6xz?ME}67weMU@9
ze0{9z?(*dq7dW~Yr-{rIWN@um1TOvGGDw^MyB4=KYo?-e|HryrVO|}N4mLOXsO<F-
zQJWTeYj5@T@|8>U_v<V@+}^$+t8>}>ziT@9<ldZANi^0xy5X18v>94?KXw~wmMKN3
z%Gv2GZECt?)y?<&)Mc&u{Chpi`t9Z17rRY0o_Kfhkt5P}mp3-<$iE}uGQY0Nq}21v
z-uJwwpPN1~Cf(k+_`;eMh9w#KR%LHyNiK6S;BRwp6}YPvc;Z61Uua-U1)qS-m3ixb
zy2h`%x!3Y~{}Efq9wAvC(N||=o^-2hoNJL-yw~29TU=@GUEjZ#+!#D}33F-~Zeu<(
z`};K0%1<G)Y^$w`%x`rV9No~QR1y$(ul?Vb<&Hichj)BjzhM2oU#Fx~n%JT}n16qJ
zzkb<b_sNmAVaA?HpLv8Pmz#$Pcrx)dO$sTH==<W@l_zviK=sUzfLZ15rhG2#&SDCE
z7ySR9=#;6Uhpu-gt4g1K>ht`6wFK*q?Ca~S+A0MiGBYJ*tx67R#7^L^nIo~TXx5LX
z`W~EuyLOaURmu3y<?>Gqf5%etpiOJu)X2Mv!SPEX;y+9bmh}o#Smdt8{(3{=_MJB7
zJLfoO-rtvz9D1;j<4B=eyg<;Dg^^bZi;OycHP#g>bG*JjfBE-&zppt>=o3n|W|UfL
zTkZ2@ajQt2rDgtwGc#jzeY~`9$vr>6{KD4k?~$Rk&$h~*(E55V(LFH0p{|Zc_@siD
z=gSlwQ4brw&3mjB89J_d%6*;4(IIl5H=WDGrCCW=*2CETe-medq?yjiJKS1<9T(<0
z@qK4ktP(SOm*(L=Nk(A@+xfO+!31Wf`38#3bzc@suPN)!+PB{P1-pHLP&rThdUfG6
zezh|dS~@+S&&{<ud2!}4UKa`3Sf|U&rUnHC3GV-9>tmC5hf~T}t&!7iZfM2Kz-<Zz
zQ-rS{F;2Lc;&L`Eefj0r>+K)?vRE5`i{rrj|23`C^!^@e`d)aj>E)ivZ`y|2oE5g-
zm}h(3Cwf!)`?!Bef3C#sFxaWKC-S1%{F8_ouE?c_W{RErx&KY^x+48kK^}s=)*{l+
zq~{7wf0q%UKC$sf$_l~ykM<q`&ln43C+I62)IV1$_c1&~i(`HK{&QcBNpJsg!|2!P
z_)QUS@0rOR+7XdgwML`r+s%b0>E~j-JS=V{{8iA<u#<aI()?Phn{(^6X@T({1W!$x
z&~PP3eCK7uD;1WD7YqB&UGQe#o;mt^3TE5=&S9zjd{+6hT+sf9H^k#4yf&vVp5xW=
zuy1em{>8I$EUz`O%3myzH}>}Gc`GBV=94hVCb6>0zy6v2nftdqnBEzl(u(5#aH3bT
zc*3SlR>qY)W<MS0e$LA)Dw({DWtGFj#0a4$&7V~-T1b`WEOMHwRyH$x@>Gigo3>!v
zmp8m#pV@v=W<l{i-)9^P*BDIixY+sear=eU>yvy>3g1hwc{+9XmrtiJ`dFOM5k8#i
zd~H@T<Mq(gRG+gGG)z5u4&2=>Cj8Uo*JJtopD&-j@i$JZIV^3(H+RRJk8YV!(}a>N
z9)EecJ7jYF)u?@cl=D7I*~N7RK0I3T&dPUw-OVjVudn}?uKjRO|IOCy&Azu(U0*Y-
z4)d8)F=J{-`K^7m8ls{%?=1|C*AfbxRv};9*l}aZ(caCQHt_^LlKA-9a`R4(CssyV
zIv*$GHgp|wI;7y{^0HAw&{yl!Wmya5C6;-2G^#%Ps_0ro`Li?p^z5D$>R$eCN}=Uy
z=`V#`hGF5yKYc!8cJg#)q-xe#j^sN#K6Zrei=22kYU3kjHRu1~PXdxcejI6Hwg0O2
zG<NT==UXx_uYbcUtu}*YU)MC&MRxvkBu=dAKU1J0RkB34SV);ea7pU}aRG&(rHPiB
z64wM3n7+2H-Pa(h$QrqdYl-^d)d4dl@?5^Cw+R*6MyN2bEPJresiX9|U(eImQ-VT5
zPG93^I<BRCdj5u$JDy9}er<_a&42sO>6IC>clJj6eSR+ex^-*X*>;~c-|Y2MBt(0Y
zetxPqI=y?r$1`XD=5NWqo~CxPbIQDXk=n~y3*ggMO1nf3*E)60Fn0-2dDdq5q;tWv
z#KUcpMZ!XpUCUh~omi9XLlzh>mFi=hc*u{jXle_Ck$wAl>F>>ga!(x^_&;?&vbdpk
zr-ggbs|yR2|32j3`=Zy}%SUU^vl6~npNsnBVjaZwzC84E+^9KyMZ`>PR?bE5etmb}
z^m%s4*R1sSH5u8}mZrTiuO~dbwDjj1f!$HBujMYvz5UDN_bjiTE{3XCvKspDr~i31
zU94?!QIU_7rS#0=4RNy;{oGNaIs4n&*A5x`k8<cshbVO<JU=&AEmZ1SM$4|r3^JB{
zDvb;?TUxTe9O72Jb3@#0)}LLwb_w6#t^fAk-Oj4-a&KZ2nNr$|8Uh?nC?uaroM%&c
zX@XJE=AD6&Hz(G8o*h#4J9ov21LCi9@0^~Qwr7t0uZy)-Wowv4MQo1tCd;gT7PM}9
z(5riUnd`%=i}niS-kp_Kbo$t_U+1)6D{i0mxhTo6^hig3Xe*m!YHH|~tgD6ZmQ0WI
zc)u+#w%~GvmZ8=xmNV85xjW0)ct7_@7Ei3W<MyafB2Bb$@fMS_E`CiD=5+Zh`7QkM
zU@J3tmdJ8Xso$rTO{Y$1EHJ;nM<5_s20BN?6tu3mdHxv}n^PM4&nIZwl_Tbelx^mo
zc4?I9m-S974S)0fS7&3jrMraw^A8W@^wk5cu16b9-g^A>&6Ss(H=hZMuCm;ovodXx
zjKk;W?tw*{*glwuuMVHTz<2gO<G90n_Pi0>-7mCw(M<=DN857aXOywq?T|Enc5_q6
zR5hU$u7MXl@-F-~xcSAz%YT}OlXE|>qdt7PXJWjF^E?IhnU4?GDY~9v_L~)QVAac-
z&8H-#t0$+O+vCd4uax-na$M1uJ<mNiwmpp1@GR+SSu&UV_oE$?)puX~`r7`}BpZd|
zSvLeMxgX84+InHlYKfh3=iI+c-+$zCbpFv5MLA4!j{SamTK&VdPv1k5LRduQ`kx41
zezib-?&QzQbi1Xum*?D-%CD)NAunPioK*a;^!(k0jjoIP*~FcvOI-T4Vo%hg7A-G7
zy&N;mYkcOnrp%26Pu55oDxLPO*fD)gUL)`4S??5NZnpes;h9_i^y}N(CmL@}-uM5n
zyWrcWHGjV*sUBqrNZxaN(cx*AEAB@HB!z5|*tB``&i21+6+I^~dKBH<bf#>!hl9vG
z4YBQ2h3SQba*tKGIF$<Lu`e}FaF`(7F0sUC_jBHVh0{3CH~QL4P*8|JfBA;pg!5lt
zU-UWf_oceMrSQi%Ki9t>j#sQdvZ6ynVd8<6!P8|sS^gc1+x+Zh*;J1Mn+rZ1R^!V*
zRwbRbT-CARn0(#dghjh{X$!lXzu(Im(51kj$eBK=sQ&fAn~WWu8)vqh+VflK?&*~)
zTo)XxR&{eda%i&0gH_5C5A45@eZ8;qhYJ%Y=Mk+JGp=(z%$ee-C-JGd*6GCIod<&&
z-Q;;~&aqlrKL6st@ci7@1!vBL)V<FNI92_#NbBpXsi3KXd%VuA8tfdA*Gx*zT|L?M
zsmY~v$`dQ6l7O_ozi*qAzA6>3Ts7S|i1G2?KR>H~eE%190PKd{4b~G6e0%#pZ_`_s
zB&A0A|356uH#zT^ey4M)hh=EUg2dKS4h6hz-#X-MH_Z!Bz7*ih+Bm@=htsLisL1S;
zq-67p&F7PL9_&na(*9sA^~KZmI(Q_%w_a_s|8}dx9TLk}936Ze|1R=*cR*TE+MlU#
z(Zj>m;Bow?YT3T2OWRlc`qrCR`gOwlk13H?PfJENTsKgE&Y=B%B6vMj#{Yd&B}5gO
z%at1UR{u{B;&kb97m7QyWXa?&cZ$Et7r(la@i@6;(qfZcGqyV|?mKpWrO{l;grMNx
z!H$kb-w*x1d}88JpJ~s3TJ`eZcUm}g+Oi7=n`>wCTsq?=R9Lw6wK!8i28Y$bzZ)A<
z9QgcZH%&;2yvh9T!<}cJV!3zByK-7mvf+Bc$4AX^kN-Y9TYG5P8?T<O3C;a3OyBPA
zK7Q8e^u%`)T~eN{jb1$C&ZF98Hm6UVFu2$!5$3v>w}>I~L{;;nMjyzC_NULsudi70
zd(A$%!n@OqBO}$WXSllZtlkk}$Iqxex7X_Rwcb}Z_#Dgvf@c&r_d34o<&|^WSY%-?
zaD9$ts;|<~Z||P=uo&fdKHe*|*vavp3sc&Pt!fh+=FW?A%D$H3zQp~~rc<C{WFy0r
zi$}XZ+HKy_z+pJQEzx!YLtD7&0~TJBkfoQ8vnOp{v+iEo-aU7Ub&s6+kUB5ou3UrA
z(Vrb}j?@<Lmjo5qPk3@;WAff^C2Mnm>)Gq48Ya&F`m^TM)0`WpCD#c&{(Ecd|9<PO
z!iWBquQ;-TL;8w}kb%#`$ef##JrwlywGW-xI4Q2?qlWo0<;cR4FO%9Q%WPbqe}7-e
z%S)<{H!=q%@$s@~7N-T=Gm`0cli}T1?8>$Lt<$^4ofZ=m*0HL#U6(LxohZA6-KpZ`
z(&;@_#Zj^?BJp)QdxC=euKvyeyW-}~;>a5{{@Fd>kECSi#@p=-?fLH2!{yrS+_$xp
z<-!TQxId3OJXIQg?pvhv<HsYPbOyl*3bM=l{o<A{TPD?XWP)7Sy!Nb?NzR9PKMC;9
zpU|gas2Cw>Hno&<p_!vW#+i)|>lv=MdQGwPm3jZ=W8&f3vNs!k?hyQP#`t-S+J!Lv
z^v7}M0@@_rfBs~*K}=`H<yW9w)OyJOfU;&MOUlNl1wJYd6puLm;ptqn3O3AowqP#H
zG>g#gKS#|PBpEYL7wC9=dUbX6GDC6h4uK^r^aHgm*p6_QM(8E4F=dcE^iQF9#v+@!
zfvfzArZ_BQW?!^(vr&gz-<oBflh;YbFA9FUYWn6v{d5h+W517f^Ix8%`v1-|uqzgE
z7U*r;Q}{SP^XjV9#EBjYc2pST-Vku!TcvvW!$Zk7frphPX_bOO0!CAMwBLzjc3f#$
zB$mpw>Bt`isiKdLUd=pHn;!=996a@5b@e))=O?niKT~sie&4x$)sDlHd>$WLdZAl?
z-qYWqtEU??=%+_Bf$Z<Uuq88J`f+Vt-R~^-DH5WB-Ibs39ZK`~^!NM!sdax}|CgQA
z$+BVD{e86tOYbKwEpL|oUVKkx&bfubft^kv3Y%YKXzYl1zhRzr<u;Rj0rfX(*6KaX
zIdieXTDsKa+m86sQqHBz!Y(iME-ZN+wl>uH)RS%*<WbDfg;kc!ABwh_-8uGquC?`+
z+uNKw125`*c(?n1!`TgoPEFnU?b}-p)p|1(Ax;NR-}!a(q<{L{+WUK3W{G3ki62eJ
z;!iLho*UqE;@G5_H>aN8dFXxo`pgrLfBa3^RkzoAuC4UZ-Z`mt_cj%*cX7Gq-m@rY
zL55Y?nk9|Qy283QH>XdWnLgQV_b#i6r!5*h7dLP8tyrU2$|=;s7|s67>i5^fNeB6P
zHLKpOk2@FOv_ta!R0-*WzrMbHJ7>-uxBkNuE<HIpdF`G(Ho}i&^=|AgU*DTJ>&=@S
z?K!7p`66~2oqu$er&%|4*A=_kU&UFkk4{^>NbUl+zRaRd;mJD+rOx(NO;q%7nVr-j
z&{ni!32gjN`u1kMBHiUJE#4*-2HS4^4PVEz`0Z`sy;+;=7JNK^V#TuQaaK1xEai(V
z_dhHuOH7@1Ql;p=%2_u{!!4aB0;iP!`Qd1i?#H=$^?_#3Tf3)kUMhGFl(y_A&YPEa
zQpn(|z>3U2c7HxNJ5M+<Ly&KVef_>niNH9$?Kh9xdsUyBqWQr$a$gg_NF$@m=Crd>
zr!N=pJ6-y(@9x6Gs#&LxPMhfT=IQkA%u`d|tvTg(d7`qJdCF6h%pf)2xm?!ACN`{V
zzxw*F=jPYZ-5*X(b+3tG5_asAf4axtIBm|7@VJ-9Qf1CP2|k$;02!A{TCw@%#i<kD
zJ<ZX6@=T7m`f+W9pz;-7b0e{7l3b=b5gQuP&dy3Tdi?&@*3<VkrFOUeuVr*;;XP~`
zFsqJXZP(SP^GwQyW=j?Zv4{sel{U*+JK00Q`gh@M-EA_$#qFVz+n&WPU&6B5HRS3?
z{a<o!ESd+ZE*#ZQ5^-_ApW1Xl?9TK46#evUrAs~E6&-sd%p9KmTI}9`>qD2}Mw2r_
ziYt<Ayb|_R@*WcYs(Rw&$&CxOJ~Bsb$(Z=_(&P4HELrE~+STsbntR*q`PVm{ccKdK
zM)=GVTi5A6eb>SNYd+~HhD|UGiK{)eZR2;=nx5}+KKIJb^50%9^D*+FgvqOYR_xi=
z)?8GKw122Q@xYmxory0e>S#BsE)HY8YJU8MVn>AWeMzp46#aB>XV6ILA9>+GDbHiS
z%@o}P9Npa7diOUr?Jp>EwhbzOzh~tuq320+O$D}gtGr@;#&EClxvX=TLKS0M#7F!8
zTjQ$VZnb*;;p3N|&*$H^|NrxR?iUyPzh8p6>n!cAnM~6TTeD!Qc6gQb4%1UNf4tc6
zbEU;!wiDazgr@#g$XX-+oQ0$A+nbx;j`d3CzGIA@Wa#oxzD89jVuwMmbzt+MMSn6g
z=OqaIS*GfB<?C+KBaMPn)8`-kf4`MM(QVuG&8iB=ev4|~Gmbm#VR~;nr(sjcg^FKN
zNi9)7A9d^ZWKAqR`RX6TWvLLGgKU#0?XCS?Hve;52FrqZ4pj;hZL7Zp^ln=H*~e+p
znq@inUhNfc3v|g{8@pSqbM4#E)nSRozYVr<{=ai)XK|q3>GJb?&n$m5&FI0ebKjTt
zEo5kI5In}8kaXYi)U)HfpN`9@)J@4a!_Fs@v2fx6A<GrYGUmz0da7<K$6GtHJTm1L
zdGW&}bm5}lLt59lw#s*}cVVimRL;D%=E7GGHTC(6_W#~}?@qw?C-0}6Wf3@hUwqAv
zfTPh{Zw3V=W!~9Q{YQ4!t!1gX`f=wH9DBZVi~rlZH6!r1!M*k)0jn5z?b{x|%3gD!
z!h9=ZF6RQrbLY>uA2MR;-0;2pe(m+5N%J>fe0FcqeJ`%#x%c+mEV8qf@|<Auj&;&U
zQ=P8QcMk6`3Q>Rh@vEKG<I2y^uJTM=v;6+QZ`<#1%SN_KeEj|IsD7Q|tBGd0w^){D
zY(Di>?!fg8*Vab6f3;b@)V}q=10R)!qtotJ=eO=Hdz<l(C)jD-nvWk{zx?@p!)d$S
z?a9+OTYgwmv44Krxj&w}P42ae7@Dzdm*N&}$XL+O&MTd^|Np<=Zf~0mT05rc$LFn$
z+k5Mbq*LfF&*YDfj;hTPedT`c@K%Sk8Jm+gnVyfkoN4geK&1C!tV^HOYu3G?IeDV2
zLfLvn#l>f3HfZSDm`_=|hyT#AfUK}EvHvql4k_L!(A}1kf9s1j*HIUyg+1S%JmnEF
zxYx|Hd2_wQChdFLhHV$}PsV?Zh=|BA{3-eA#f^=N&t{#QAhxI1dz#M1wDa?Fzx}qF
z9y)F70mFp)S64K%kM&5JJySQl|00{C@NgS%T+o`20k;(N&pd9ZDdaiTbY0>4v8Gvb
zuCEJh{r2MG;<E;ZtHYzV<;*<#UpoGI_4~c)pN(fGst9~!m#;}!*Z<S~j`zh)2b@kv
z6zojfnEI|Kmv5#E(?Y(lMUxgQ$DWh@?EGiX;ogsRx6S_k(=hzS$fLTeO<0;m+iA7k
zR_?75Ckh^I%e~DcRn=mY>#?$NLG70WUHKy~dYxEra{g>O;P|bg*V0=+sYCqm2A@lc
zt6wNfns)1cPXFZXJjv3M`;D~ur`t9Y9U@G;-d;J)`S|aprS3b7CnWTImo|IxKCClP
zP@v|lyH#jv?R)K8Z7Qi7Q%j=K&dkXC{<3(zuP|o|yW=)~{pFV{_Lr@ddOuY{w5yD5
zMfFDyrGo57M_#6Fe7em`<$|0*SKK+N$9p56g!h6PV6BVT<|Y17?sH+vzhRtS*4uG(
znltCZM^8h*4c3Jm4D(!=j_(2O+xfe4Z$V<w4c%=rT^Zi`%fU8qxe7EaSZQ1B=b^-C
zZT>xd%5-y;C*sk3sauv!4~Cl0+8DF<!*|Bl*Z<G{dyswqg00z`uPRF>2|WJ0CG+!|
zsoGaT{j>m$C{_=ph7_g-6`>m&5}T@2ZgV8<k+=Gys;&S2de)xsq!0~}T+aAT7PFig
z9xq?c-C7hSU~o@Amdny21Y(hr$U`5Mh83sh%yCtlc%Y5<esF)v1ct}8dGE|iewDZ<
z?}^{;2UV%_z%y~j#&b!hXL&4m8L{(|MehB$q*o<prA+T>8)}JkZD_0B_*ByPS*8-B
z{fB?Q(_dWQzb~)nyLPzW0)|a~T2mxMxm<S~*m>jAL}m9kbLN<5zPq#BWTFG_oMXSs
z@6Yv{l^wtE$clh1$_j$Db^o?M`+9G0HLs^$^t7Argg84s*4^9`nzbif!%$0vi(k!W
zM#5aH(wlqkL6*{Su3olW*=%Bi#QXb|&(qiNT&-9i0P;I;!nHM)V)@Uus!u$y-{nZs
zX{ZTZX@}=}B>etXZ+^4vkm|$+srRB@JzTAejy~{H*--vo-bbl1AUY?q_dA!WTdUK>
zRUf8$ELihKMf>E&+-DP8KGt1b^|<7T#~zrrw-3Bj63)*soPO!DcgERSZ^Ax$Bu%`(
zHd=m`(UYeuKgNOlrQyU;`|HcbZMnY>?Xj!<wPo&P<NgWYe#DCJKR+BU{&LYhyys)x
z&rh7YPONw83|tt{V%NqeoAvf)@sT}k?nNIT$(w6WJaDX6JoD<R;A0j0GcJ}yZSi;=
z0XF=Q$OjKEB}ScXdrDs3|25U)K<=LT=KimPz>-Ql^Nvol?PPf{vF80=(Nb_|zPq!3
z<23#7$9ut6ZBe$co%DYH|Mg{o7kRby^EX3%=JfI1?*9pyx*DL!Yjs)(4pgpIupSK&
zaNsNqz%8kCV}s7=yi=9ia--j6TYTSowRlUa<e`l@Yh(G>hO$qLcz&>ES-~oKRX5kw
zi}%U9?J(7OJGVq>EAz4d4MQ!ZO@cWcTWU;a_$pe)yS%&ie9!dtkD1=;uzZ?xu;O2W
zy??NMv%{-{f8%OX^InxJO3ZiExSCr$Pcve_s;XP-B36!zcPE&*ME#Syf2ZhS)H%2H
zmf!iGSpLmCGOOr+f{lN%J#+o5gT5yF)``E_)PAUZsp<TcruE*S-c`egua6J!`xW9`
zd)&JI%E2FwyVpO|33h(Z`fJX=X}foxm+yJbc`W_G`{%M5>8myt{iybft__d+JTvO|
z_9dVcJn7Jt=hx3WJXhHI4-{^f8fFGm{0sQWV^ZPu+P^dK;=B4IjpuCJlHTuG`IN8q
zIser23pAg8_&%rLSDpFSnTP&@P5JTS;jU)sLl50$dRANssQ7nHr+GJH`Mt%OPcw8Z
zmaXO7WIA7S4#>S-9kR1Nx+`w|A~3<;QR|>yut6Vpn63G9xyCv+-@S1gPG6i;-I{fG
zTiD-L;Y2M^_GxtjB@35%U11s`pk(i~5ER}bT&+$QC;j*z&dhgIuhOuZfq{X+)78&q
Iol`;+0Oi&nZ2$lO

literal 0
HcmV?d00001

diff --git a/docs/illustrations/oqRhTc.png b/docs/illustrations/oqRhTc.png
new file mode 100644
index 0000000000000000000000000000000000000000..f340ecc7275d9dedc76f6b723d540aa74ebb8545
GIT binary patch
literal 16179
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

literal 0
HcmV?d00001

diff --git a/docs/illustrations/v2S0bs.png b/docs/illustrations/v2S0bs.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d596b29914b61e050e025902228bb9159c9b6dc
GIT binary patch
literal 19783
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
Nc)I$ztaD0e0ss#cHCq4x

literal 0
HcmV?d00001

diff --git a/docs/implement_model.md b/docs/implement_model.md
new file mode 100644
index 0000000..818cd99
--- /dev/null
+++ b/docs/implement_model.md
@@ -0,0 +1,532 @@
+# A step-by-step introduction to implementing prediction models in VIPS
+
+Tor-Einar Skog, Senior developer, NIBIO
+
+Updated: 2022-08-30
+
+
+
+## What you will learn
+This document describes how to implement and test a forecasting model that can be used on the VIPS platform.
+
+Prerequisites
+* You should be familiar with how the VIPS system works. It is recommended that you read the [VIPS introduction](https://gitlab.nibio.no/VIPS/documentation)
+* You should have a basic understanding of the Java programming language. 
+* You should be somewhat familiar with NetBeans, or use another IDE that your’re familiar with, just bear in mind that some of the instructions may be irrelevant to you in that case.
+* For model implementation in [R](https://www.r-project.org/) or [Python](https://www.python.org/) (**currently not recommended**), familiarity with the language at hand is of course recommended
+* You need the library VIPSCommon (a file called VIPSCommon-2022.1.jar) somewhere on your local computer. You can clone and build it from here: https://gitlab.nibio.no/VIPS/VIPSCommon 
+* You need the example NetBeans project «FungusPilosusFlavisModel» somewhere on your local computer. You can clone it from our GitLab: https://gitlab.nibio.no/VIPS/test/funguspilosusflavismodel 
+
+## Model design in VIPS
+### The structure of a model
+
+![Model concept](./illustrations/arch_themodel.png "Model concept")
+
+A model is conceptually illustrated above. You have a set of input data in some form, you have the analysis/algorithms happening inside the model, and the model returns a set of results. In VIPS, certain design requirements must be met:
+* The model must be programmed in Java or another language that can run on the Java Virtual Machine. This includes R and Python (**only 2.7, not recommended**)
+* The model must implement an interface (a design contract)
+* The model must be packaged as a JAR (Java Archive) file
+* The input data must be in a specific format (details below)
+* Results must be returned in a specific format (details below)
+* The model must provide its own description and usage information in at least English and aditionally in any preferred language
+
+When a model meets these requirements, it can be deployed to the VIPS Core runtime server and be made available without any more configuration. The model can be called over HTTP/REST from any authenticated client on the Internet. In order to set up batch jobs (running at regular intervals) in the VIPS admin, some configuration classes need to be added to the VIPSLogic system, which acts as an authenticated client.
+
+## Developing a model
+What you need to develop a VIPS model is:
+* A decent coding environment (IDE) like [NetBeans](https://netbeans.apache.org/), [Eclipse](https://www.eclipse.org/) or [IntelliJ](https://www.jetbrains.com/idea/).
+* A library of VIPS classes called VIPSCommon.jar
+* A testing framework like [Junit](https://junit.org/). This is normally bundled with your IDE (see above)
+
+The normal workflow is that you have some correctly formatted (see other documentation) weather data in a file that you put on the project’s classpath, you mix this with the other configuration data and develop the model based on these input data. You must have one main class that implements the Model interface, which is available in the VIPSCommon.jar library. The test framework can be used to test single methods that are part of the algorithms or you can test the complete model.
+
+When you’re happy with how the model works you can test deploy it to the VIPSCore server (TODO: Document this)
+
+## Implementing a forecasting model step-by-step
+In this project, we are going to implement a forecasting model for a virtual fungus called «Fungus pilosus flavis» (please bear with me, any phytopatologists who might read this). Let's say that it there is a forecasting model for it that states that 
+* There is no infection risk until you have reached 500 day degrees (Celcius)
+* After that, the risk multiplies by 2 for each consecutive hour of leaf wetness (starting at 1 on the first hour). When reaching the threshold of 24, there is serious risk of infection, and measures should be taken.
+
+We’ll be using NetBeans IDE for this example, but the process should be transferable to other IDEs. NetBeans can be downloaded from here: https://netbeans.apache.org/download/ Select either the Java EE version or the one with everything. Follow the install instructions and start Netbeans.
+
+## Creating a new NetBeans project for the forecasting model
+1. Start the NetBeans application and remove the «Start Page». Select `File -> New Project` and select project type `Java Application`. Put it somewhere that you’ll remember. 
+2. NetBeans sets up the project structure for you, but you should create a package. Right click `Source Packages` and select `New -> Java Package`. Name it whatever you want, e.g. `com.acme.vips.funguspilosusflavis`
+3. Create the main model class: Right click on the package and select `New -> Java Class`. Name it e.g. `FungusPilosusFlavisModel`
+4. The next thing you should do is to add the basic dependencency for the model: The library called VIPSCommon. Right click on `Libraries` and select `Add JAR/Folder`. Locate the file (it should be included with this documentation) and add it.
+
+Now you should be ready to code.
+
+## Working on the model class
+
+1. To make sure that the file is compliant with the VIPS Model specifications, change this
+
+    ```java
+    public class FungusPilosusFlavisModel {
+    ```
+    to this
+    ```java
+    public class FungusPilosusFlavisModel implements Model{
+    ```
+2. NetBeans complains. Click on the light bulb that pops up in the gutter, and select `Add import for no.bioforsk.vips.model.Model`
+3. NetBeans complains again. Click on the light bulb and select `Implement all abstract methods`
+4. NetBeans creates all the methods that are part of the Model interface. Please note that these methods at the moment do not do anything, except cause an error (throw an UnsupportedOperationException) if they are called. The implementation of the methods is entirely up to you.
+
+Now the class is ready to be programmed and do some calculations.
+
+## Create the method for finding when 500 day degrees has been passed
+To find out when 500 day degrees (since some date) have passed, you need the mean temperature of each day. All weather observations in VIPS are represented by an instance of the object WeatherObservation. This object has a few important properties:
+* `ElementMeasurementTypeId`: Rain, mean temperature, leaf wetness etc.
+* `TimeMeasured`
+* `LogInterval`: Hourly, Daily, Monthly measurement
+* `Value`: the numerical value of the weather observation
+
+We need a list of one WeatherObservation with mean temperature per day. So we could start by writing this method:
+
+```java
+public Date getDateWhenDayDegreeLimitHasPassed(List<WeatherObservation> observations)
+{
+}
+```
+
+NetBeans complains, because it can't find the definition of `WeatherObservation`. Click on the light bulb and select `Add import for no.bioforsk.vips.entity.WeatherObservation`, and then `Add import for java.util.Date`). NetBeans still complains, but that's because the method does not return anything yet. So a simple approach could be:
+
+1. Loop through all the `WeatherObservation` objects, and add the value to the total day degree sum as we do so
+2. When the threshold of 500 has been reached, return the date of that `WeatherObservation` object.
+
+Sample code for this could be:
+```java
+public Date getDateWhenDayDegreeLimitHasPassed(List<WeatherObservation> observations){
+
+// Make sure the observations are in chronological order
+Collections.sort(observations);
+// Initalize the day degree counter
+Double dayDegrees = 0.0;
+// Iterate through the list of observations
+for(WeatherObservation obs:observations)
+{
+    // Make sure it's only daily temperature observations that are used
+    if(obs.getLogIntervalId()
+            .equals(WeatherObservation.LOG_INTERVAL_ID_1D) 
+        && obs.getElementMeasurementTypeId()
+            .equals(WeatherElements.TEMPERATURE_MEAN))
+    {
+        // Add to dayDegree sum
+        dayDegrees += obs.getValue();
+        // If threshold is reached, return the date of the current temperature
+        // measurement
+        if(dayDegrees >= 500.0)
+        {
+            return obs.getTimeMeasured();
+        }
+    }
+}
+// We have finished looping through the observations, and dayDegrees has
+// not passed 500. So we can't return a Date, we must return NULL (nothing)
+return null; 
+}
+```
+
+## Creating the method to calculate the infection risk
+We can operate on hourly weather data for leaf wetness and calculate the infection risk. Data in will be a list of weather observations (leaf wetness, hourly). Output data will be a dictionary with timestamp as key, and the infection risk as value. So for instance for 24th July 2014 14:00 UTC there will be only one value.
+
+An example of a solution can be:
+
+```java
+public Map<Date, Integer> getInfectionRisk(List<WeatherObservation> observations)
+{
+    // Create the map with dates and infection risk values
+    Map<Date, Integer> riskMap = new HashMap<>();
+    // Make sure the observations are in chronological order
+    Collections.sort(observations);
+    // Counter for consecutive hours of leaf wetness
+    Integer consecutiveHoursOfLeafWetness = 0;
+    // Loop through the list of observations
+    for(WeatherObservation obs:observations)
+    {
+        // We define a lower threshold for leaf wetnes to be 10mins/hour
+        if(obs.getValue() > 10.0)
+        {
+            // Leaf wetness registered, add to consecutive hours counter
+            consecutiveHoursOfLeafWetness++;
+        }
+        else
+        {
+            // No leaf wetness, reset counter
+            consecutiveHoursOfLeafWetness = 0;
+        }
+        
+        // We set the risk value
+        riskMap.put(obs.getTimeMeasured(), consecutiveHoursOfLeafWetness * 2);
+    }
+    // Return the map with all values
+    return riskMap;
+}
+```
+
+## How can we be sure that these methods work? Testing to the rescue!
+In order to ensure that the methods work, we should test them. Ok, maybe these methods are so simple that they do not need testing. But in most models you will have complex calculations, and for that you need testing to ensure correctness. 
+
+For Java, the most common method is to use a testing framework called Junit (which is part of a larger family of testing frameworks for different programming languages called «xUnit», see: http://en.wikipedia.org/wiki/XUnit). To set up a test for the model class, right click on it (In the `Projects` tab and select `Tools -> Create/Update tests`. Click OK in the dialog box. A test class is created for you, and all public methods in the model class have gotten their corresponding test methods.  When you run the test, which you can do by right clicking the model class and select `Test File` or just hit `[CTRL-F6]`, you will see that all tests fail. This is by design. It’s now up to you to select which test methods to keep.
+
+A weather data file is included in the documentation. Copy this into the `test` folder
+
+## How testing works in JUnit 
+Let's begin with writing a very simple test method:
+
+```java
+@Test
+public void HelloTest()
+{
+    String expected = "Hello Test!";
+    String result = "HellOOO Test!";
+    
+    Assert.assertEquals(expected,result);
+}
+```
+
+The method has `@Test` before the declaration. This is a so called annotation, which helps JUnit find which methods in the class are actually meant to be methods to run during a test. The test consists of two string variables (expected and result). These variables are asserted (or expected) to be equal, and this is tested using the `Assert.assertEquals` method in JUnit. Of course the two strings are not equal, so the test will fail. You can try that by simply entering the key combination `[ALT]+[F6]`, which runs all tests for the current project. You should see this in the lower part of NetBeans:
+
+![Failing JUnit test in NetBeans](./illustrations/v2S0bs.png "Failing JUnit test in NetBeans")
+
+Now you can try to make the test pass. You can do that by setting the strings to have the same value. Run the test again (`[ALT]+[F6]`), then you should see that the test passes:
+
+![Passing JUnit test in NetBeans](./illustrations/oqRhTc.png "Passing JUnit test in NetBeans")
+
+So now we can add a test for one of the methods that we created in the `FungusPilosusFlavisModel` class. Let's start with testing if `getDateWhenDayDegreeLimitHasPassed` can find the correct date for when we have passed 500 day degrees. We use the data from the file `JSONWeatherdata.json` (you'll find it under `Other Test Sources`). These data are quite easy to import into a spreadsheet. By doing that, you can add the temperatures, and find that at July 8th 2012, the day degrees have reached a value of 509.5. So we can test this in the following way.
+
+```java
+@Test
+public void canFindDateWhenDayDegreeLimitPassed()
+{
+    FungusPilosusFlavisModel instance = new FungusPilosusFlavisModel();
+    // We create the expected date
+    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Oslo"));
+    cal.set(2012, Calendar.JULY, 8, 0, 0, 0);
+    cal.set(Calendar.MILLISECOND, 0);
+    Date expected = cal.getTime();
+    ModelConfiguration config = new WeatherDataFileReader().getModelConfigurationWithWeatherData("/JSONWeatherData.json", "FUNGUSPILO");
+    List<WeatherObservation> observations = (List<WeatherObservation>)config.getConfigParameter("observations");
+    Date result = instance.getDateWhenDayDegreeLimitHasPassed(observations);
+    
+    assertEquals(expected,result);
+}
+```
+
+If you run the tests now, you'll (hopefully) see that both tests passed. Both tests? Yes, you have two tests: 
+
+* `helloTest`
+* `canFindDateWhenDayDegreeLimitPassed`
+
+Each time you change the program and compile it, these tests are run. This means that if you change something in the program (either intentionally or unintentionally) that makes these tests fail, **you will be informed**. This might not seem so relevant for such a simple program, but believe me, it will save your day when the code gets big and ugly. Also, writing tests helps you think of how the program works. If you write the tests first, you will think more clearly about the problem, in my experience.
+
+**Exercise: Write a test for getInfectionRisk()**
+
+## Putting it together
+We now have the most important methods created (and successfully tested). What we need to do now is to get data in (set configuration, get weather data etc) and get the results out in the expected format.
+
+### Data in
+Input data are sendt in a large lump called a `ModelConfiguration`. It's a key based store of many different kind of objects, in principle almost any Java object: Numbers, strings, dates, WeatherObservations. This configuration object is sent to the model through the method setConfiguration. So to get the weather data, we need to extract them from the configuration object in that method. An example of how to do this is as follows:
+
+First, at the top of the class, declare the object that holds the weather data:
+
+```java
+List<WeatherObservation> observations;
+```
+
+This list will stay empty (`null`) until `setConfiguration` does something about it. So let's do that, e.g.:
+
+```java
+@Override
+public void setConfiguration(ModelConfiguration config) throws ConfigValidationException {
+    // We use an object mapper, because we don't know if the objects inside
+    // the ModelConfiguration are simply instances of HashMaps or instances
+    // of proper classes. Usually (when sent over the wire using REST), they 
+    // are the former.
+    ObjectMapper mapper = new ObjectMapper();
+    // Get the observation list
+    this.observations = mapper.convertValue(config.getConfigParameter("observations"), new TypeReference<List<WeatherObservation>>(){});
+    // After this we should do validation of the data, but that's for another lesson
+}
+```
+
+So now we have the weather data in a list, and we can start using them
+
+### Data out
+Data out are sent as a list of `Result` objects. The method to get the data is called `getResult()`, surprisingly. An example of this method could be:
+
+```java
+ @Override
+public List<Result> getResult() throws ModelExcecutionException {
+    // Initialize the list of results
+    List<Result> results = new ArrayList<>();
+    // Ensure that the observations are in chronoligical order
+    Collections.sort(this.observations);
+    // Which date did day degree sum exceed 500?
+    Date dayDegreeLimitReachedDate = this.getDateWhenDayDegreeLimitHasPassed(this.observations);
+    // Get infection risk for the whole period
+    Map<Date, Integer> uncontrolledInfectionRisk = this.getInfectionRisk(this.observations);
+    // Get all dates from the map of infection risk
+    List<Date> dateList = new ArrayList(uncontrolledInfectionRisk.keySet());
+    Collections.sort(dateList);
+    // Loop through dates
+    for(Date currentDate:dateList)
+    {
+        // Create a new result object
+        Result result = new ResultImpl();
+        // Set the timestamp on it
+        result.setResultValidTime(currentDate);
+        // If we're after the date of day degree sum > 500, use the infection risk
+        if(currentDate.compareTo(dayDegreeLimitReachedDate) >= 0)
+        {
+            // Set infection risk
+            result.setValue(this.getModelId().toString(), FungusPilosusFlavisModel.CONTROLLED_INFECTION_RISK, uncontrolledInfectionRisk.get(currentDate).toString());
+        }
+        else
+        {
+            // Set infection risk to 0
+            result.setValue(this.getModelId().toString(), FungusPilosusFlavisModel.CONTROLLED_INFECTION_RISK, "0");
+        }
+    // Set the warning status
+    // If controlled infection risk < 64, status is NO RISK
+    // Otherwise it’s HIGH RISK
+    result.setWarningStatus(uncontrolledInfectionRisk.get(currentDate) < 64 ? Result.WARNING_STATUS_NO_RISK : Result.WARNING_STATUS_HIGH_RISK);
+        // Add result to list
+        results.add(result);
+    }
+    // We're done!
+    return results;
+}
+```
+
+Netbeans will complain, because you haven't defined the global constant `CONTROLLED_INFECTION_RISK`. You can define it at the top of the class:
+
+```java
+public final static String CONTROLLED_INFECTION_RISK = "CONTROLLED_INFECTION_RISK";
+```
+
+How do we know that `getResult()` works? Let's test it! We can start with writing this test method:
+
+```java
+@Test
+public void modelWorksAsExpected()
+{
+    try {
+        FungusPilosusFlavisModel instance = new FungusPilosusFlavisModel();
+        // Get weather observations from file
+        ModelConfiguration config = this.getConfiguration("/JSONWeatherData.json");
+        instance.setConfiguration(config);
+        List<Result> results = instance.getResult();
+    } catch (ConfigValidationException | ModelExcecutionException ex) {
+        fail(ex.getMessage());
+    }
+}
+```
+
+This test does not (yet) test the results, it only tests that the method doesn't fail when run. If you try to run the tests, you'll see that it actually fails. This is because the method getModelId() has not been implemented correctly. Fix that by adding the `modelId` to the class (at the top):
+
+```java
+public final static ModelId modelId = new ModelId("FUNGUSPILO");
+```
+
+The string `"FUNGUSPILO"` is now the unique ID for this model. The ID must be a string of 10 characters. It could be anything (as long as it's 10 characters long), but it's recommended that it is some sort of abbreviation that gives a human reader a clue about which model it is.
+
+Running the test again should make all tests pass.
+
+One behavior that could be tested, is that the infection risk is always 0 and the warning status == LOW when the result is from before the day when day degree sum exceeds 500. We put that into our test:
+
+```java
+@Test
+    public void modelWorksAsExpected()
+    {
+        try {
+            FungusPilosusFlavisModel instance = new FungusPilosusFlavisModel();
+            // Get weather observations from file
+            ModelConfiguration config = this.getConfiguration("/JSONWeatherData.json");
+            instance.setConfiguration(config);
+            List<WeatherObservation> observations = (List<WeatherObservation>)config.getConfigParameter("observations");
+            Date dayDegreeLimit = instance.getDateWhenDayDegreeLimitHasPassed(observations);
+
+            // ***********************
+            // Check that all results before date for day degree limit are zero
+            List<Result> results = instance.getResult();
+            for(Result result:results)
+            {
+                if(result.getResultValidTime().compareTo(dayDegreeLimit) <= 0)
+                {
+                    Assert.assertEquals(
+                            "0", 
+                            result.getValue(FungusPilosusFlavisModel.modelId.toString(), FungusPilosusFlavisModel.CONTROLLED_INFECTION_RISK)
+                    );
+                    Assert.assertEquals(Result.WARNING_STATUS_NO_RISK, result.getWarningStatus());
+                }
+            }
+            // **************************
+            
+        } catch (ConfigValidationException | ModelExcecutionException ex) {
+            fail(ex.getMessage());
+        }
+    }
+```
+
+**Exercise: Write a test (or add to the one above) that checks that the infection risk is calculated correctly after the day when day degree sum exceeds 500.**
+
+###Implementing the meta information methods
+So, now you have a forecasting model that produces the expected results. When this model is deployed to the VIPS core runtime, it is discovered automatically and added to the list of available models. In order for other systems (like VIPSLogic or another client) to be able to query and show information about the model, it needs to implement the methods that provide documentation:
+
+* `getModelName()` - the name of the model. For instance «Fungus pilosus flavis model»
+* `getLicense()`  - Open Source? Proprietary? Your pick
+* `getCopyright()` - For instance «(c) 2014 NIBIO»
+* `getModelDescription()` - Detailed description of how the model works, from a biological perspective
+* `getModelUsage()` - How to configure the model (what parameters are needed, what values may they have and so on) 
+* `getSampleConfig()` - A sample Json configuration file.
+
+Most of these methods have two versions: One takes language into account, one doesn't. Translation in model documentation is part of a presently unwritten chapter. For now, you can do this if you want as a general pattern:
+
+```java
+@Override
+public String getModelName() {
+    return this.getModelName(Model.DEFAULT_LANGUAGE);
+}
+
+@Override
+public String getModelName(String language) {
+    return "Fungus pilosus flavis model";
+}
+```
+
+This way you only need to change the implementation one place, in the language dependent method.
+
+## Learning from an existing model's code
+So far we have done the very basics of the most important parts of the model implementation. There's a lot more to it than this. For further study, we recommend that you take a look at the version of NIBIO's forecasting model for apple scab. You can find it here: https://gitlab.nibio.no/VIPS/Model_APPLESCABM
+
+## Even more functionality
+### Translation utilities
+You can extend the `no.nibio.vips.i18n.I18nImpl` class for easy translation of text that the class provides.  In that case, provide a set of properties files (which makes up a resource bundle) that you can specify in the model constructor, e.g. like this:
+
+```java
+public AppleScabModel()
+{
+    // Setting the file name of the resource bundle
+    super("no.nibio.vips.model.applescabmodel.texts");
+    this.weatherUtil = new WeatherUtil();
+    this.modelUtil = new ModelUtil();
+}
+```
+
+NetBeans has good support for this, read more about resource bundles here https://docs.oracle.com/javase/tutorial/i18n/resbundle/concept.html 
+
+To get a translation from the resource bundles, follow this example:
+
+```java
+@Override
+public String getModelName() {
+    return this.getModelName(Model.DEFAULT_LANGUAGE);
+}
+
+@Override
+public String getModelName(String language) {
+    return this.getText("name", language);
+}
+```
+
+### Including images in the description
+You can include images in the description text for the model. The images are embedded to the text as `<img/>` tags with the image base64 encoded inside the `src`-attribute. For instance:
+
+```html
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAc[...]" alt="Illustration 1A" title="Illustration 1A"/>
+```
+
+The `<img/>` tags are created from template tags that you insert into the document. These tags look like this:
+
+```
+{{filename="/path/to/filename.jpg" description="Sample description" float="[CSSFloat property]"}}
+```
+
+The path is relative to the path in your jarfile.
+
+To enable this functionality, use the `ModelUtil` class from VIPSCommon. For instance like this:
+
+```java
+@Override
+public String getModelDescription(String language) {
+    try
+    {
+        return this.modelUtil.getTextWithBase64EncodedImages(this.getText("description", language), this.getClass());
+    }
+    catch(IOException ex)
+    {
+        return this.getText("description", language);
+    }
+}
+```
+
+## Implementing models using R
+Renjin is a JVM implementation of R, which makes it possible to run R scripts on the JVM and pass data between Java and R. Read more here: http://www.renjin.org/ 
+
+This has been done successfully in the Leaf blotch model: https://gitlab.nibio.no/VIPS/model_leafblotch Please use this as a reference for how to do it
+
+## Implementing models using Python **(currently not recommended)**
+**Please note that Jython only supports Python 2.7 at the moment. (2022-08-30).** Another alternative is using GraalVM, but the Python support and how to integrate it is in an early stage. **At the moment, we do not recommend writing models using Python.**
+
+We’re using Jython to accomplish this. Read more about Jython here: http://www.jython.org/ . 
+
+The basic approach is that you create a model Java class and a corresponding Python class, and you forward all calls to the Java class methods to the corresponding Python class methods. How to do it is documented here: http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html#more-efficient-version-of-loosely-coupled-object-factory . The nuts and bolts of this are however implemented in VIPSCommon, so following the instructions below should work.
+
+Create your project the same way as before, add VIPSCommon to your libraries, as well as Jackson-Core. You must also add Jython standalone jar to your dependencies. Download from here: http://www.jython.org/downloads.html 
+
+Your model class must extend the JythonModel abstract class: 
+
+```java
+public class FungusPilosusFlavisModel extends JythonModel {
+```
+
+The Python modules **must be placed in a folder called «python» under «Source Packages»**, e.g. like this:
+
+**-->TODO ADD ILLUSTRATION<--**
+
+You should instantiate the Python model like this:
+
+```java
+private final Model pythonModel;
+    
+public class FungusPilosusFlavisModel extends JythonModel{
+    
+    private final Model pythonModel;
+    
+    public FungusPilosusFlavisModel()
+    {
+        super();
+        pythonModel = this.getPythonModel("FungusPilosusFlavisModel", "FungusPilosusFlavisModel");
+    }
+```
+
+The first string in the `getPythonModel` call is the relative path to your module. In our example this is just the file name, since the file is placed directly under the /python folder. The second string is the name of the python Class inside the module.
+
+The Python Class itself must implement the Model interface, so it starts something like this:
+
+```python
+from no.nibio.vips.model import Model
+
+class FungusPilosusFlavisModel(Model):
+
+    def getModelName(self):
+        return "FungusPilosusFlavisModel"
+```
+
+```java
+The corresponding code in the Java class would be: 
+@Override
+public String getModelName() {
+    return this.pythonModel.getModelName();
+}
+```
+
+In the Python class, you only need to implement the Model interface’s methods that you’re actually going to use there. If you’re fine with e.g. returning the model name directly from the Java class method, you can do so and omit the declaration in the Python class.
+
+### Testing
+Create the test class like before, you test the Java Class that calls the Python Class
+
+### Example
+The FungusPilosusFlavis sample model has been implemented successfully using this approach. The NetBeans project should be included with this documentation.
+
-- 
GitLab