From de3ac029e532e4b7d549bd12afae75b7fab8eb18 Mon Sep 17 00:00:00 2001 From: John Deck Date: Mon, 22 Mar 2021 10:38:57 -0700 Subject: [PATCH 01/17] adding two files --- wiki_images/Field_Login.png | Bin 104762 -> 66330 bytes wiki_images/Notes.jpg | Bin 0 -> 32211 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wiki_images/Notes.jpg diff --git a/wiki_images/Field_Login.png b/wiki_images/Field_Login.png index eeaeb041b3fff1de2fe0fc4be1c4787f0e522391..8882ef916ca8404edf9740ab698e2eda8fc454f2 100644 GIT binary patch literal 66330 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

2e6t3+=3q}p3z!Dv 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 F{0{*+fK&hg literal 104762 zcmY&=2Urt9*KVjmktP~IAT$Ayjz}l;CQU^Jq<4`{AP{PhsRYA6Fr2U&20lWXpp#!vtNw0iYTv>2yCODJIM_{_-5NLNS3#?3{@ z%GS-=PRQ5AolqJ8kn@!xd~~t%vSRmjadw5u_{wwsD<@*+g+w?Z*V)KxT}|yub?ZG>pu_qpXaFBL2W!8-Mt*$T-mRlYh~@`?Iq92c~#N> ze*Nb?y&UcTZ%wYy|2B)zK;f&u2#X4d2>YsNBDj|KGL$ z)*~l;Rr&w(GXH7mzpI3%LaxgR|8KWJuIse(8Up}|04-IeXTC)E8DO2=b8p~QsGgtj z$GilkCk0w=BN050=!l;tQ&6aK-F$d_x5n~J+=BMDTD~SH(Jk6rk8u&R{z>=Qr4Zuu z^rQahbHN?9_@Tp%?DzcxP48*21#ut zyS&dFv}hPqIC!}nd{Kl=)MsGYtD2IQSJ-`^U?5iDL_aZX++7{N6tWaTcAzNIKHWck zo)&zZmH}OIUrIkd&~Dw+e&|*x%Vw#M=_h+J`4ylr;5M!%EIV*Ys3G|N4J5U2&>x1N z59NKwLl^j=R91III3tglycCgxb-tWSfkqA>`i)t+Ll!E+ile5A?}%l-IaposD}NRR++Z!A#}IGSQd2Q)nEgd_lMiy zC|wDH(phwj?4X?Ts4YFYP@y0_urEO==K!f2;a8j~1&_X?Fy2QFBY!Z_J8PLO(I$qY zuHpFD=hPz=QUb~VUL8EU067-W8-upTzBqNJc$1Bm(+&SSb<&92?DU8iDE{loL=ihk zRYhJ*wIAxohk(_j!k7T8z8{PcD@y+O5yQ%jsF!&^pF}{YtbF%A=a+PKOE=>U)Ej1K z8g8PWrpgcY(*JLZOvQ!<40eB<-O8-eWP8IW7=~ey+{7L(FSi>h+PmM|&u0exXe&kD z6Fnb!V>a^ht?m|=_b)>|Ru}hgB_yA;*my}ziV~HA%2QaK-7#)$kPGgfHdtiMy`Djj z_PYI^;h9wl8gUvOH=3CCviSm|3HRo?Gt3;`o-Cc@BOU060izb>lhe%B<4j`9co@PI z#=c16i~#2SqA?=Y;;?ix{Ofjk;P$n&i;tW$f}+UNSR8#Do1mK;&@lc*Xp7r`bw_Sh zo2g-fQy6grRT#}GC{CzNpb7YfV=4dGcH{lmrEKZtNx2B_C62$gkmc&^@Ub%;U73}L zYkQ-D=?fzFVQ5N7n+5c%UL$5C<>NW-t z`PQ`4H&b>#S?0}OQm%Z++`7%Yi~US9unt+ua>nkr0oeqkV~!$&k0Lp<`m8&IgOB_9 zYmE5V+#T{!dONgwm9DMl2QTN74RTmu*u}N#TBc>HoGIbuWMdRwxv6 zy@-E@FO-(7i|83@?JPk9%-6m$S^9T3=dkI1WDMkNt7B&Fd}i*p$XBQ3oA*ot05-Ny zqXZyZD3Y0lcm;FMgx?IUM_tb^PUkLz=$?8TzH}_y2p0~pqU%LI@~o5%DNhXTY<%9tA8`$g52Ixqxr%zonEvat?c@PFkGO&DD@VDxG?+d0t>t7j++-xFNFd;i zBwi!TtV7by@|Fpm^!mv!i}PO_WWv5mT>^@v)q$p`8owNp#M++u_CV^;Wn1rKCCE&t zNXw_DdS=-U$KRN3>r!G!u8t%)K!}R6oWD*W!qC0SeN2n`+VuirL>2V7gYBYx1h2yx z4!cFfo(B%FDh9)+n7j|EN)T+;MJ;BeV!h?;d=7M+9n{>9(|Yd7mP83mjQqMit^$^Z z8Lb51D|+q^an_ve^pA1m>cBzt6=p;`BRmx_;%xy4_vgTWbD$h(83})FEV>%7l#3=T>A>uqCfXW?K1l{)Ces6GdF)yYx zN=8$dNwYXqR~cN}Z{m>c-A8R}$SOf%D_aDAj@l@aus7tfe8l4*_3{e!)j+>YcGuLQXYlMwkgOYk3qzGuH~Z|FDDU|d-Wl$ zhqL}pMbIQ&iQ=(j^X+$r$(u9ZJD$5#(aV$uF8pTek^JVmtGJ8WI{=tJypQ@e&oUj> zCgKGe;UO~82B55Q_iYbHK3W4+6mO6L9EKBI>2_9@xrO0cg}q$7?-r#sjver zlK4_ag!git3EY7h()Nzm{C&p{Dt{fYv4taTBBo6RewLpcdcz3Er-F)}6&?&MnnQL~np1^k-nY_7euF~))g86z;&gI#%56r_VZ!8e-^#mWPv=zL z2ggaTH=&h6GrG~VJ2=@K);RLpBKZ7%zAn0vIbcy@+%mL%W_L&-*gW&ti20A$K$sJj z<1>Zy>6p3y`XtekY{UM9{Nc2L3(qK(KYj_SkE|is5@!viIQz>#SCEBiA;j|UGpbZK zGm6#$8NjkVhch+Da(yZ}lBkxeQ~!>&MmeGxim0~BQ-&n#|H6{J=-)yXL%%< zXa&qCY6`~<3f`gy+!y44)!WC*V9O1pJqFE|HP1nkSBpy zf2$mZgm%Jh>l3mbIOr87#lC8zw!Pk4*x!gVH1$x+<|>#w9`t$5JBq19xpvYs+4GBi z)t&rgCPHmK?Yj`Gc9X6j|1N0%tHt^Op^o-4dOfKR&T7eYW{gp2xXz$!L0Ujv1jR@w zDd#(9s~*A_nMoD05@ykhY8nnTfj=Ud=%>5kqF{Oun~WJaf91NBI8%kWNP zTUrHD;ZA)pBDJhZE}EKbC6B4mws>7R(QVN@KWvRL(OHM26GOTF=ZAF5e=h?ak+p_9Oi9o%65 zOTlk`IynXk5sSBqWmT)Jne|(nG!~Cccw{>i_ff{gxk4>L?OVg@m#^0!(8`FdKds!J zbSnEcqZu~z@VM>M2~|S~3+zYuG>=8&cnj`RCTN=rxSbStgW$3S7rAnxxaZho@l{h= zMPu)29etO)x$A(2$J9^M>gd!rJ9dX={Wr~g-?8knjcBF%I3ABVsXME#G_Sq;JgHWb zsUxItZ^1OjY%W$}^0O;7t;GQa{>g@&u)lHdXzf4zLNKBjprxHJNWfzqwP+t6!!2r= z#F$6qKn(cY#T6YRwnLPv0tTezoFq&Ad}7f8-N_owbh4xhD5O-pZB&^cCo11d^I6*= zU(E6INnZt@i%leSv9s@>|LdsomDf4*N69@B2_}QSKCm>zoT(h()j1tu#PY-vhM|;8 zMbfT%?-K6crN`~uW3*DqL#vN;wz1nKr^S8dcw0^iW`D&I>s$%NO>Tg97PsnN!qb%_ z0$`t`0e&ok*=Ekx(Hc|OB5*xLjn}az*Usuod6&g}%X^96sM$Dbw+!UVxH%Ag#Y4e( ziU^M6zNv@L*?NE4&tV-TnVa6^waCEyQw$=7Tz-;Y?CP}yuR$z8$ z;Ntdb^s`zQ@+h7-&vLFIBBSn!l>)mAF}ay<;R6>cVv^?J8Yo) zE3{3~y%L@A>oCOx^~Sobm^0)g?TdpSW%4^KN*|kpEG6l4mQwO}2W8#Njdz;V6+a!c z+t*A{acjt!bZS=lxE!0v%N%9K)7mImY)8*MdXcLOB`*`Mvy$3DbFDoOZ%Tc9ds2fi z?1X_Q_62m?x=={8@%A+JY>3^$_jnoILhzx;&Jg2PA?}*MhE-z8yiFO;WU@&`F$Coe zB2fgliWwXLX6L8e<5CeY`Ys;!2X!+lNd+RkgXYLJqu!KA5JoOM)_WP(=gf8mdnoZl zP(Im^r4JZ|rd*levn&0Ad zKHXxhJYTca%ycuBvwgzudlE(CO4x&d58w&nOj>up`Ma5x+{z{EFy`IH-l)Q!Lv!9O z^RFs_@f|5?WpbRwf|ID)t(VND1Z?hSajSc{O&y}PnynofuPOd_ZF2BywpC!CVIR<+ z!PoNp^{d7`m?d#1%c1aPmb-QwurXis7=qnkVB|4SO1XIgAdR9IV2^S{fYOOgJeBXK zr07H553&M8?Pzj`+7Ee28_$(FIN0UxaeNS5HSDrQ53;KwV($Zi|&fY1z|<*jCQ@p0!0zahPP;Ts_&q~&9D{mmRA zaj*#hQu^%*Us;QENlQ;ZMXpn1C7hVVgjNnG0)S(5Jwhf?JYw^)($r8(N>jxaY<+}m zX>SO_-juxBB+`OoT*Gz8>OBmrtsH!Gi1gM!{A%w3HJ2wsTa+h7}#DhD75jm zl?rA4xogtok=4C>Nudd?N36uYmP$b~HED&!f=eLdSUSPHzd^7*@!xO7pb+KO*?g!thXHnB*s1D4> zyB!ne#RN(Ik_A_8G|Wr@E`-g_XeTMp5gKy(~msm@! zK58ViT6r(?y8X1dY|4C?QljQE_sq}4@1GG}8PY#v(%Dx$%4Ge~G{T1w?XP7I)8Ndkt zJj~Fa3*(>ln9JzN4&9(#)WAN#^{t9u;7vNrM$va;NMic><2k<}>Xk$o^HfAQc}_>u z=)ZgaL*!ij1hoRU9yE>E+neJ$rPnI_#ddtvts+^~oPU9Ei8t`fppiT)yO-wwU%Ls@ z=VN&MeBz->??|BRY&2eE8VF{bV0aq{lY(un}&CQu5wFsg+gl1g2OT(xEPwgoFV_wC+r2bZH6M0&WdLONlF^>NxBHV#lQH!F_!3G1oNn z{fG=~T@L0qm(GIAD=+Nz@D@^lfZ}*8i^NezY_3Gw)s?KHx($lM%~G0|A8MR*7~8d?gqL zbZyKsJffu-m$k)6WvyvUl%2COdlpE2t!7`#8V3;Zn#OAnbXV|uTjkX#5Xg>S8hA>0 zXw^ydjPtL^0Q$shkp=w1XrHFHSG8dW0599hFyqsS*0z=#f04 z>;|PP<2DmZH_J6i5#YItOKD_pdNF+exhEx(3vpx1l!Q6>_Ojx4TG8MxM+Z>=A1k1E z4e+QGTAO30gQF-6b!LxHT@`8DgiM&JkrSos)r#PZ?9BM16^Wg)vrjbd&1iB5UXU0| zd#)t$M*XsT@V<{-`!6$K<#|1O?G~FqU;!!>xqg zTa>2RiU9w_{s6uv#6pKsM4$wk;O`bwy@SVzIUUX+9)vL2#46?Bb?u%dms}!wWfWvA05eMnAyQw^*qZ9wwFWTSlxCzY z<#-5VnyUZ&ZpVVt$pl!41m~@vRGPqdF_JzGIdJ>+$HZcmRRoOWLx@s>)^A00l7&gJ zX%Y)$BWz`W865c|W~0D5ubdMA~>L|Rpz4)Al-^f61K=+jj}_&mys9|_^srmPD;BUMgTx`cx~W`0J88t&|+NJRZf z6nF8+_7ve;o+L~AZgA{zY7|&UVbiroiEWIdIX2Q{Yd5hnJ?AbUpaKC7nwUGSOCKs+ zsWWJn$b_IhtUf=pjFs($Z@*rf+Mr;}Q{JH!MR?*0(_mLYTn z*f74kHvpTU@y>nl{evR>PVk4~%)_D;)lWFy$RO-PN+cAAy$@WOKtXV;@VmnL*#L!e z=j)8Zx0`2TvOK^drLi_p7Euv4jKVHPN&}s0D^fPV1tVX9x(f9%^VVtod_fsj@7$8n zLG38wphX^-uRqWIw|?Xi|84b(SOvL+Vg0tdfxKq2<3bT??wIpx3#meOze-Lir*$VuiQ1QM#zf1|z#lySw8Oj$<@ zt`1@ew8z>DBdhR@Kap&uW7m<-UG~wlahrm*(<6jZfp#R!F1gH_pl$){eDWo%kXtc^ zBzlNsiD3UhnXTP!t{Gy>47m>#iuoi%I1C=y#x2@!@;YIHuNza`YT_80_D&M4Gaund zC)S?-k~ieJ5s{mHLQ6jNd^mWga67X`n$+{8PJH8UPihQP!*Lwzgi)S??I=e1GDTpK zfMAS%%OgED$mu>c460|W5qef}J%E^B7D3d|1NJYWV5%h7L9n5!NGO_`N&Kcgdc30+ zoy>PLHX7&7T@&Qk!=?j|`z?f)E~i@0r}lLZ$^zG&yd}#C0XA$o3##X$wb`&%T5SUV z6V3qp`mN^W%szkQ^vQwjdznG53x)Gh1;LLeCu6NGtL*P!I_O>W>wdx7l9RcMgIcGa z-=zYak7^dE+*sc}K zcmHds072o=<=E7h-+%U}go@k~SDr8Q1G9uQ^8hV+?A114NJb|}%DIVh7^cpW%Lt4}wTd5sA--Ll47|1O=XW{k|AnGzMkju;bvJwS*04E&{A>(7m?(0t zihdVRMhKh=uf~jDw#gI4yL0r$x#s%h)$;9ifOu??1K1WUY^Q7PyaeGzg#=s&kWEw?%r7edBt@V;-(uDR zRQ3yn10Bt#>Ib;o;C-B7fFG;?&g-{`lFd4?!?6PsZvihfKO9PzH6Kil#IqzW$1%Ts z2D)aOJ7Y`|>WnpFqD)22Ht}~!G?LC1?WCJ!B431dG&13T+gDQEJwd*f{m6EN0yYc< zZa}N=jV%74u7K?mNus9yI)L(yLRwjrM~?K_r15=ByxU*J7h@jUd<_2s-g+0aomt_i zb0@QVyP^j?6}W1U`$c%69bP`$qW;e)?^2TZ`CV9g z|LUj+V!wn<7a6%gN#@^ zu}DB?gskO*zD};EW6y0v(H43<&kG^aCmN^I$X)$O)MmwVi1R1ya=r3?Z`ll*)Ze0yL*Zx*_dE;Lj0zh5 zm+6xv`!0ug_xtu9#2Fi(T8}Yqzh&dI&>v9U?8MI$=Oh~>rktx@s^YC*&I1^b$!-or z*Y;Ml%~;=<5=$T)Dk|0;b5DOMY#{>DnnQE&(Ontt9kKb%Bq)}x2D{~|tUFW2#Gi28Sko$T$XXHvl{A0itlh3fKT zSMov|zST^ASxOtzJoen*!vX;*dEgY3%RpUk+^2afU#Cnl-kbbsf}`+Qe$Ic* zVI3*V3NIQx&46*Nzu?RP<4hD0bGV{h^BsYwBj`^Z{D7hyzt`2QMz81A%nuu0K3@6m zewP)eCRaV|`c^HKr63hEsmfzvj3i#2e3;bn`M`wqlp~DY5hUe^U7=Y91ubaIyj?UX z>l*S!8DWK67KCk{iv-QgbEGa6Z1)wN;ptW_E*33*2dI9cRoe9n=0vwR5wqfqTPhr7Jt>)3GzM1g`)7E&)DP^ktgBdht@6`~)G?Gl4U3 zot&Nt8rtVdN`Jtv-trjjdN%=oh5OW2kgNw>gvO9?+gUn#!^kb zp5>gGoHyI^Xun)k57%{vSh0Un2M^#eXe zO8dfbR~k7=Iejr1|+AJNbh^dBdS{O%BhE|PiUhc00T>O=RcoHmPE32Q3f(*bfU zTk3XWP|#@R?6W|4C!NMKvx}{-?5=k#iq#Zm-I`JQ#B~1Ww z_J_uBf-7FGa_{q6pu6|msF_${%RsFq4nup9T&uE7GgDcASayt-QYG$vVlF#-d2z_VM0L^jg`m^6 zMoo+MuoxV0O*=!k7^dWYU*;>E;b`%G=#u9TqT(XIpZdA&G2ze1&hY*^an@9 zGMQAfxILrX8FVph{rjlizPa4fclbLt-H|iaQe_J3_Zts_{L?5142UgZv~>_Q zUEGZc0BT16P}N0yjkHNKN3H)O!V+K|pG0aW z_z}h@z;4S|CNLq3FIQQAQyERQBWMn|9Yt&;hIZgRR-Dr-A~U#y`X#YmJ)h78n~zN& zaY)l--NETH?OW?J$sLuuhu!0L`P6mdU_>FkPCs~2-|}5?x2kgIXriufU*!0Ke0=MX z9=aahRn%P~4#|-nKZZiXy*R?q(Z?=9ldRP$k>9uLnbmf6<;%*_6_zxY-e>CVVixRF zRl#C!<@}y&hy=^or)lu8^p@T|Q+$^q8j0ny-s8wPG0(|_7@@!g+xV&>A^AQGxGBhn zA(0BNk@KrUg^%62JXUzzO>!vqdp0B}FA{^de4tFNz#@W*yJy{{fEO9EqG;YrAd~&B z##DJGBzD;#A$-IYU$Gww=}m{pzutHSWGy$4$Fjav6`xsg(8%0G!#c|JC%(jPC73zi zC6Rtce&I;j{yF$8Im@eNa{VXy{t+!*wZsZga_6kKOoCO24Qa;cG>s&&z?hxHYT21w z$?F7qXniLVigBVDPvx)Sit|2l7N+Sl_(bVhgk=cM>rMx$b1@|hhJ#Kh0R$mz< zZU(yVSIAE@A0oJA7#X-%nPz@4gcW&Bv{*(8Sp$v*4AoMER|eb}5pK3xdxZf002-mLBkTLgRyIBnr9k0;$+Vk@*se|`>T+KCsD$@qVx1C}pz^&^I>hsy zzZ8tUikw{tBqTbt0Tr*~0WytdJKig5A?vC3#Dfsu#4RbKxO!|JG@yqe>*O^cv;C?% z{tnmUN%A8HPsU$CkXx1WdUDGaEm(_XYgqy8m(eoAHV06D zHpunF<~Kc2V>cox})LNZfI9 zUZh;cB0n^b;B)-&I=mmbF>Ma`Maj0bEV+aaq1p9J5zK?J21+dlTl8X^)$9%*f?V>+468P zlvPLnP0U-g=PogSbECFo?hnB^Oze!?;)2Qr&5Oh#`^w`F|IeD1C-@R^dmM11En6aw z$Py+F5Z_XL6v760t^v=ZA|*=bBH8*33`BB+&7xx#M%%n0%G=E{+AgK{ zLl$H#x0^~i{uOeV_iJBu`8-%e_*iULTOsUBbBuR^)N?eg9CZd-lf_~A>6ur=$j8}J zh4xMxg27EIMf*dcTHLnR0$$}yqo^wgJl)?X2aXCBN6K`ZH&l+hvVIswu?2*Eu)RMu z)>Hf5z^gvBti5JKLl2)!Kg7+5qw zGPYF8{91B-$%#^72jM+SFDZG(6-;(}1)va3q3j4uh7#TIWcv7u7v)MMvY(Tnp@+C7 zMI_-3$Q-mnoRqF-tkjvV3HTgi!+hT@%91uRM!m}({g*uQ=>WluplwGoY*(==n|3Or z+4}gDAJ3C#v@cU*H~X?@Oe`Kui)5f zVSsHEePVY`kc@w#r05HVnjZV{nKI@HL07QR3wh*rjx_R^Yv#-a3ti1&(}K)+Ox;!k zCn(;%Wu>Y)v&fk@f_$p_tlWRG)J&s*q_f^1_+~Iclk}_)KyIOXKZXjlBcG= z#fuRJp8+9_R@On@N!b*$6J?WR9|N#4hiAD^<5)mKOH6?GX-lkt#9m<9PK8R4bIzAI zFG(T3G?}-(Pa|}#ZKy)@WX?wjYcHWKmKXL}yfq&7aZ%f;S7c{Eg8rro9E(-~OLOg~h4DN(uBCHz&s#4A zJYj7Ww5s~zufuDIfuv(avG9=Zs}FEX<9!6&QE!O{Gagy7B!YLcdQB6v7biS-lv=CdjbBxH$KlX?X}_+e@k)_Sl`2w5c|uVkP^-^AlTRPeEOZ6 z&54sjV=?UMy7LH*@*egp$pF4(qkcJu%xmW#B1@kpp-{R+&qyJ?*d-Q7D?>`hP45~A zV1{|wN>7!tgEWJz;nMm7F4ppn+V{)(5AMc&J8vq+@Af5nx(;UVvgI28?6ln}GBWo< zGT;p?j+0Y(F$wI#-bra|L15{fe0o>jy+v-!pn&Y?W_MD9qlQ;OKy)TBm79j~vb&+) zY6CmD7MgQWBT@}iPt->d-#XWMH+QKjE>B!r#YC%e=lpITffU|Y1qAmln*kMc|0*EP z3qNV>2l@Y~mDHEP6>xqGit8NmK8p9vhW&bO_^XxiSX=wj=r6Ad-hE{4aOdpooyOiQ z+5Tx*Pa_YzX+hq(x(*FiHP&Quz=T9G6(z{%8F@CjHH4%}3O|m%; zi*T_O{fiToR$diic)#a6?RIcHY#l$bZhEpNamm))cmM0p)=2CO&*ihfqVi&^Zmal+ zAe^?v7h$^N^Oo9{{cq3b+}7a%`jHyjL8Ea2!tEKkeH3A)L}d%o6S z6czt=hnCS%)43&l?n7h1Ry-q2B02$Zy7TR>Nc#zkU_?czqhXJSTl-*u<84KvoC>eFN$gSOM3W zxNt)P&Y%xJQ_}W2`C4C@h*TA3s&J4DhS*#(j>#^454tr49mO&l+)C|!8ww=(RsG;#*3A?GZ=kT&{4|z-H>)izvPDz7DV(})78zDQ$UZwsM41<#M0Cv*opW8f8 zY{{l(qhlM7K(uStks1C;k>)Ui+abC1LuvDIETDasCEk_~Me)p~tN~q-24q1x@|8y! zbH5fW=2$h^?*2A(?~my9I=pJxN$>z~XrzSRo zD&gF2H>9 z8}XIewTr1HzZdqdXbL=l-InNv7#`*~?Yev$g)i@*&h}9Wfm3P^lAKq3wD5G%!O7Zu zAs}VDUnEg6ys|;j^br{(-OYg3Cg$8sFF3`Q`VgbSGm*J4BP#x?d%NQ@0x?b&0cv`- z;l3mN4$ibdZOa%xYxrt07e<;b5_=fzFwAddTy^&Mot($NH2vr~lKyPJ)nfhA1F1am zHr-d7b|8}Sk4CR=`Pc9CVh~r_C+<+Sw3QTP&8|O~}?Ru9F1zfFq{ZPJi0>s_Gty)@> z8$0(Sm~WitihhczT$QP%w4$rkPRLymYr#qrRJQa|u*gP&zKx{K!!X{<4e|#Mx?}y1 zyIZ_=31ap-Gf3<*GKDFX;dtAuuUi;vLRmti?9P+PU7GU85K_Z~v|C3=zG;wnQljSG zJu0~t1<3qQ#*`dbVzp4SMq7wrS3uO_w-@*^v024Mk?YC%>tkqgMWUn2d_O z2kw2n7~us0A}jJOVq>osKRcSRy(lYCOlW?2FXlV5+ir(kh}j#sRa_nTp~g?MM62YB zCkOGB&H6I=PS$rUUPi9`)zI%MVYT)?8pgPsIm%ZUbLjpMZlPVP7Cg^qQT{^n5t^JW zc$M`uKe3MzNE)&Q=I}_~Ob}0+I?bHL4X8?3CFmy2Q5W^%BNsy6Tq|p-DuPp9p_hlmQB8;h1oYnfeh zG`b6f^GqA5McVoIxo>uXOk3B3+EvEM83ysjxebr7~a4>ee+T;+wb&i zi|l(zQo{ZA_~%Q@L#EwQ%@i_Xm?{x5XK_hy{O8Y^**|DO ziv>wVHy-<}M?dQ8qq)aX2Rs34t)=zbPbETQnkC8i-9w2nDAnh6bnn;XnGw zGWWKS5JqryW?0J8e$^nq>L9p|Lk zg>72hq=|y(LiD-4Q5+xdqiHl%KWS||@z>6>su?t(BKM#^B%f7}2%T{xZ8+qu zcsK7R`!z=#y}maNcvIR?_%4rk^4sbAL} ze|&qRqo{fEbD_p3^$Aagd=1t8$2TU8e(^YJR_B7bI;sPrIhc+;uSxHXXhcBmCLD?G zs=(o;DO?tiMktAT+;MUxNXL8N;Ub!D{HqX?vj_644!%G3qePVf>%M`c#Jg})ew8vc zc^7uW)84@(O3xLfM(c_5^TBE_32F3OD#uI-ZC(`}w*Wnf#5}eve;QLASf2*30@@}` zCZ`6;8{2#hTNLXI{l-RmVW&TW(}ei{T1Xo25ju8lDeN`0FiA-odeJt{k=x8*?rSCK zvvr^Dw27^()Z+GbVPE5BOXDi?Yuo{a^})ThG}SO#BbVBa9tHRgd#9#cS>xqH>wv`{#t%f{y;|Z~At#wBGCCIUW%Mj|iQkA$EIJ z+Z-#hkxsZi!sgI&0e_Sc8|+nMz%Hj0rR)F|)GJHGqN*QTD4^ajsOK;Th|ZJ^LOHdG zO|Z6*(M&g8cDfUxkCr)wv8PPjNoJ4rSS|1BHOK*c)~m;0RlqsqA=hpKcUky*91&%V zO8F0|p^twi|GFiJ!eX^8h%4M1Qr%dlW@^)!`oSqLvjnhMwB)RyAJ#W*=<7Y0fj~=l zz@AZnV7gOjz5TD}klh7BMnYCm(l^^vu^iC>^$-CYNHixa$Q9aVqXzA^)`<+&)g=39 z=Q>T$^b0%OmagLmlZaqO$+$v;)8lup%OhPC;Q{MU6`&bHb_E=ufPFMq{4Ms(uQy;AY=T9kX_fC%5$lcarIObwZ!DNU7xOYwu?V(ztgN} zA439rWM`j@oglx77&IJ|8(J{ZFiB3{i)CZ&uD!5gZeHEtW23|mzpzos94|9lP3$e& zA*8FrqZSC_si9v={^-yeJj0u?pAF`}UTydgJdhhnP#92^t0BGJ!L8qxs0RiKX)(wg>7T-_?8{ue zMY0oD+AIYpqWm6!PQjZLfnWfnxzg=f`w}B83tA^gOZ!ZGlS#xuwwKp7O?E-nMB_#j zWK=buNnf4I(Ic)hf*L1Ch+kW=6KrKIM8HT6sn#9V$LS;&ZfShv*0^5NfU7{fG>S2_ zB`&TgXBwI{<1uWh;7xz!`tdC1TkrA`ugy@kC;FaQRH##Bj9v7f!Zh=jV(6NCiObse zKrU^ZY{ajoGxaACn(V&VVwEDY%o|tflqJHz`?WjsJ|4gF6&l3!tD{SQ8W-`< zVsA%tVl*U0uX0?@hr3^Y{r19!vV|$vRb~&^9`)HiW>@-rCs|2+pGe-C6l3&3MK)%6 zo>zg1a`NvFkloP>@Ox*k(Y(2%nA`#Sz(;Yx^;P8T-=lcXUPJ_Wn`W|I9QZD0`;=Z( zz+Q#MlKUk)tOcE}8%pxoo|*$pR_^xy$ixWh2%nqz-Ap$|Z!Q-u<=7X%WMMSb9RRnl!s9hGA-Iy$dk7 zR3>dgY6a(CJ0i;LnrH_i^yIcXjqghw{?GpcIJrDv^_i}SDiq_{>46+nOnPs*Y2L}B zHYP?AuP8nv!I2Aro{ymzUX6B9YfwIzA_2AQAbs1bE4U!kK$DNt;(}SjF&%nMpKw{bQ!Q^8)|DdpBE?f{F0t zD#KIsGYMO=`7MTetQ~j+H(b$hAxF$N{9^s7y8H=t_jY?I?G~3 z*m8Ru%|_HHr}bXGj;K)k@eBFJ*3}a+&I#~ZpG|JIsLaZ;+ex+4#{71z*yIpo9~Z;g z9V;_=qbG~M?EjE;7H&~}(YvQ41Yr;*1O|p7l?Fj-=#m%#C8S%VQ-+itq-IEwR1id@ zyAcrvB&4K67`kNWzK8Gc-uv9=xqrZ%XZAUJuf6wL@B3L=2ak$b&fL39x|A1VC6?6u zL6|N5plwI<;w-7a&g+XeE9v%s2B7m02NGtlXOm9i!*NpIysN_MF9&unwBssb1X}Bx zfC8f<1^FV0lKN2LL!%` zlb7>*bhz%i&5}B^8WKB3y_HBG-2Him`C$}ROMJGvD|Jr|#(1KYqb8F5xpRx;L1RWN6*cd{?57f_|%W{}zUgaf#mv5~qlx}{ykz`r}hxDjhrz^3i3xeiM z4d54m03D4Tv9eigY$9@_NSDD2WW6H?01mFc;eEFu8IEH1G1Qt62-=G|yt-RnlPfq} znh-2Sp!+sXIw`|x_gUUYlX&-UlK#Iq`_O(r9&#+4>{x56b;kh1tq8A#bBol&evU*18Ob zAfgz~^z?dKx9=U!Lj{VlGs7W$tk36i^r*;$yMPUO_T|4z?-Ggdw;%jhKB!)-WZYtQ zD5r6RDVYtRDg0(9(AKc26s5Z$Vk~WiPS*&<_IoK-YqdMZ)&1J3r?0agI?l1(QmbHm zCZ5>~;n@?o_75J4dl-z~{0FzQT0e`F_B*i#l)7bNCc&47$|hLI!+%x-3o8b}Y|=gx zC6d(r zms%RzX{rSSD$vI}YcXXl3g2@s?7j^$$KG*<8vEB6H^q{{GGyp;x_-VeFnt04)%R$r z%kV{)A+8&;H8cpG9I?#a6G^uU60TeS{KGf3!2D-ukYHp@bljPm#6FzCM}3@D*s`;; zef%t{ZA@LZ5?ZVIZKM=PqumD*hd&fn(84QW4awflhApQ(jOs8gyW99NKM1Vv5_*t_ zbw}^i-=qcyvL2Tod(uu*T-D7o*JZ(T$*>`r*LFEFcwZz4K_t)Q=-ct&tWK6nCXc5G zNCHyo^ft}_VQR7JlgzG2TDw{j-j`k0oYBgipOyt(n7agp?QyJrq_LhcNd_?9c+yWl zhpfUyCAM@wyz=3uW+&>W7d^_K7P_l&H_qDUHy?Lc`9z2{$*Ee>&!N!hY6!ks;^vK{ ziB|q7-MA>h#HIW@agAG*vH!N2Lz;jy%37x&EohhQA=iAf-+sotiG!1ZQuPZ7_7HOv zzIddX(A`KP2Z1b~a@1?A{sW5Nv@xv>#e4xO+0qVP`z%&5mxmPvhlXCZ}2k(4l zG^%AyFjEF`QSBvn+nu2`mEQNazF*>sLwSUc8vZN&_*QAdktpH%=UMvf)KV8M#69V+ z4&U(Vkf4Whyw3!Bl-72V{Kt$Ns|y8>s5vXUmR7w1l>%z5uqK`ACk&AMZ^|5TZ>A#S}QY`nP4)&ic->qd}`&l zJ>VJTEe5X*M)yp;ntM;^){kJ><$Tn}>Hr*O$nHGhRq!F_CK(3T*#0F5r5y;!qh2s_ zqc4WB-U4oE_zQ2t)Ty3rDNUqQtl>#C<TMx?;k8Chv+9ZF)UG{UE%XU9|Qygd0gbtXfdvC@=O0^O!|bZRvhPHRdT) zuT|1!NU_yjyR{*=*+R!I$&tJyLf6QHZ)RZoo8Hz7DZ_RNY^flVJ>$QWM+9_sG;_caN+G0x=mOc%bQxA+$OiLcoC!?TYD*hPiqfp#!%9-?45IO1+%| zq{eM6q>n$Tkz^dEyWgLICbgMx{Yxi=h;xo9uYHal`FK#Y{R~cW&49}GTg9u= zp1hbGA|GRclgI!B7GqD>;b6k3;Z<*x*j=|#$rY5A1B;snOazZy`y?|}#Tjmm`qUnrE?)X`DID04hze#Xxt`%qkbb>Qyj491h?eD5)fU-`2EZW`0suKMv;B%Lx2ZL z2utxjU5ZsJTiBN<0rh)T?pgoiCNuE$>zvxxX-B^i?f4|g0b>6u8v5bA2$Ss=IP67~ zOQ({|{sR?M)@gC;Y&S~b2q*r{?O#eG!KY8M%uZuvTgoa2T%RJED`U*pK4oZO%h43e zr>6cV;g>dvKf#y1Du)V{>*L3iSL3il#kcEkz)V)=17r73*nA!hiaBg8Gm8DbY-&4i zI`oP%M>)3&yUaGT0J{D|XPhFHOm#pc_cq`pIJ~EZC=(3)7skSyGc|PdWG>GuKVh~P zx|jWcfyKZKVY^-6H##6D&d`fIed<5U&YIFiYkZo}GSzKv<%}lIIAruc)s{Nsx%-7> zm9i^~%j!bAE$EnX6F3>XXgX1=&0w{D4i4;HmpVK|KMpAgC`?%Q_$Rv2Fn+i7)| z_IJy(mhKtn->xv*^FCWjpF15Y6uy*8V;vY8bX^6~`H3XLbA_*yYJN7;h4vREZ5D0B zKMmf&V}fCY;(DkIHJ@8Je}A2P>xpNONgUKjv!e>L5i1wlm~G%F`=Hzu|=H&aSTyH)|Mi3vC4>e%Md3IKH=U6bwi5T0p$4; zp|)t7m{~e<4jI~qOXwC_1@a27rQZY&Li${`V|tO`1ld(eTBH0B%5~ZxBJOZP_X^{P z1)hYpS7pjmOBS99R8{|qyJa^fy+_36Lu%N$nxD=1z!sd~NWy^0t}TMH8e;dt zT7C5H7=RqDqxvtt!Y9$D^7(4!n_R0__3VEV&eU1buqbz6Mbxr8Pn{IvH`sXX|5TKED|&Kk??E zAqlP+VIDNKa37ufmUtSr0&XWhQP}wgV5*U;mn>SHqVS~ zq5`%(v}J=g>74(}+qB;w56BE!cyl#oX02l?e86=X0PTNle(Ss%-@$+dyvLmLsGG7i zH)&=e&2hQfz!;bPZ9D?Qq0tD1Eh_r_`v~2KtZ#JAdwr&mZK6$9M_k!P<<1{aWt`-g z*?#`KyQU$@*h7bv;sPAX`8?1#P4Aw>0t%_Ip~1zg$1Ph!0vDgnu0L!|$hTco4?fPy z_Ui|OOoYSN3(9QTf3xSXHA3g)M%W?yhf=Ikd2RD+_EI$ zluDW62Sd!vJJV7ivx$@$UZh#StW7LwZNv_*W;$=NlkcTOF{v4l?6I0pW8TEMb(tXo z=%!DFZNSvprpqxljp6{Vx6200h48PO}a2Y%yVtY1_G(-bj@`qy@L6HgCwtzi#50Y`GBoR zRv4?sxi#SWn<*C$TsH}>-@}c5zmv>tca}2FwMSz5A5i3?o}{lvSsA9-!d zJGggW(UISPMJ>T|@ zCU%pW}L=- z=7C4uk~r%x##Ft!?Q}ms$)Qv^>b)~oBca3yRlImT{vwh$D0d!VQ@m-yTdw+yf7ujD zhsnE`Nb(us(_)UQZQ#^nsC{=DzT2ZERsE}GLAsW^FxC<9`&#ySqNYb`VDl*E-G&MV!ttu?D+52yP{)&Z*K z*kfzhO5p^ne%jm`C)~|BsNh@0@=AYc;rQzvgNFD8uk7A<8 z?vN6w3~SjePz&O5;@@(hy2vR9zEyE~Ykzy+7zemT z_Wlam#nOF$B9hAcdKk+P)AhyOVW!9$qDb_ar;I{(SisdJQL(^pkvDaNRUiA|kri%K zD5ythZtRy~ty@!p#JpXQ~<%5F)MG z`zt}yFt-G|pHRzY>m#?W(mt{5#?Q*;z?Jil@N~G7z|>|>c5Up(UU_5-UNa zQW5QPm;!}Mhz&2B7)c&5PaYt9?4msO$QgQv2kkeS;>XJbS?(R+ z%H&nWT9wu#@<5i~WwDZ5v28t`rQd`p{z-W~!)q z_&+4PpDQ6~tVm3*`h&OjS)Tai_@3=xxo7$hEbi)x(U>x~^Bimv`M!-g!xS$(sQ*Gj z@sq&qW;=UN5?cfm)?)3g2i_-UM?80OiXIc1>on?%HCWPSK8$l%k|0m7w0ZjL6Kx^{ zE_rG-9@sKG+V88);6OXao4oOxrKviK&naa*hi>b(yM>g5mG?44(Pn7=QYMUK5+iN8RagAe&f}AT z|LDh<>(lsvqt|6#BnV`B<5tX_4OEISwn0DA#AB2uzsG=<%)3Menb_TglNLUD@Xj2Z zn*;+a{251I7$*agj^5Rz1bL6%KO4u@Xt2U9;8;g0sl~9^`<40o4ev`wshd)@T`wS} zAKo*OWDSQ;fDxtZI_8(S=Ou3TB2Ptukxw$Yj%~pIy4<-Tx;)dW@=-Cr#AWl#5fmF|+Dd-8vflM43OM zMtNa8w(LYeI61Go=ICqL<<>L(bJJgRofSseD6y`b-rrn+WqirnIakD^r?&x?T;?2l zFu@fk-AJ@-rCPfDxzzJ8g{H};-iLJfmUlh_qfMm&i(_!tJ7IKx8!mZF`*3vCRch$q zU!Gj5U+;gKymA|9!Nh6@RO5qGvHf-~uD=!e`i(C*1W>=oOG#b2kqX zqTE+w_)bQRnc!3m9H(tYv5t31_>V$Vjg}<*Chv!$BC`5>$tvP_Q=@H;ao^#t|1;H95(nRAt7ll;C6|MIXNRi=mHuqE`ikn_$K?$o zWM{qQej&{3HfiljNh*D9|9bElvQ{k^m50ZEOzttPVYU5OtRa0@H8`^M-JqZ| zwj=H&(Iw6^sNzgo5A8UmFcX;*8DfltfeJTbcbFfO@`hcjp*3iEh3iWWO431ZzBL(L zpxp)^p}l-Bc>yWc$#IlAKS)x{74U>vR|x}9s&;m;U}|K<0+PNJOFZ~qG)j0U@&<09 zC(@C=f&Q~|!+bkE!gIUhE(cQJJzEVwly44(&A+3qWbFuj+sQvpODxtmIAGwU)fbDQ zi4xSd%@+Ql5Fq}7;Z#C5lJD|}J+ShLa~3!B@O=BjH`w`Mg-6BX?X<3(rSJ)%lvr%c z2(cgY)`Ob*1l;xW8~6+!l}#Uf`Hr|?R{_F8bBgF$cfD6qQbuvn#vt}U1!nKDTURSi z6}ujS62N299i}5gaYdp?+%Z2pg$Mt52Md);S?c^-W-(8+^7rX4819DoynHsC8f2`> zr=2$?{!Y5W@l)*D>h9K}mThoOfVN%mnd{dxul%`A;Vt^Ht7vadGq}@q=S6JM#CP+d zqMa{iG|M%cDl7w2qs3oLXU83^sWJKAP1tC&{}IWVhp>1^#rh#T_e76* z*CzwM61Dd__MI^xG>r?;-bqWHx{(R9faO{hDDLgj3`Q?(z9ePkD(zH0u!Q8MWm%Dj zw-Fy@BrNJ+;jmDV7mTXt9Gz40DJN&l#~p55Mg)qvg5&UT?8})K3Ubh6f88idhqF$; zhKgP7CZtzGZ2`J#dA-bn0J`PZj`#hdPDZz^k_M^|)ItiD0K40s1=X-kdFE5*`)n|1M&kv^%`|VZR`1?Ob z?wu?O=1514L6|vRv}E@%#e`FBRQmSo2yy{X>nUV`QJo^JN2l4 zVV*LNpMECU9k`781+j=OPZR?hbdsFkt0vC`$kB$AT-m;# zqyXdkW?Og4P>>k8&FUND$)fF{!1L|8H#g|UD2PC8hXQ9%o zy@~4=8S@u*b=OztY1#QP>n~tO4pg(a%4Pu&^V9aJdF5dK zM_X*54b)%8JO~XUghhToNo@oA6%ISKL8}HEtH&RUjj4X)*qCbmgyIY=tGq=k}GcPIl@zG_9IRhvog zWESD+YxlszN%~4<;x@8?Mf2=oe!rAKZJVjDPHF&_&LEX3T%UP;%Q6fGsy2|Qb$~W3 zcC!RGPbpBg6?YS#?%`)J@8txns@X|SUk^Z4^a1r_DWm>9nl|1SOUsPNA`2B zFV5onHTWCykw5i~oyTs-&$C%?<|btTPU`G&+w~=)(`g`6VixyHz&y(IIZhnl39t!s zWqIjRPnOipH3pee@iYMVmrYj*G`F7}6=oYKB#$~bt`{hqoMDMVAaGI!t2Y?B#Xe4t z?M1t^LFh?wS!?64*+~bTPnrMh=DTNXc0TMqqx#`4B{hE@PJ;oX_s+0}z;<O3b zS%$t)N38EGz-dVGEtH9&cg}a)+K~LX8>p!_pt-h0SKm0| zX8~gG9~q#~Im_R)r7N~ZwOn())3m#DlVxZ7z4gZ>{4|6Fy!HpcY@D%pVR0Sg0^cMb zl~n82T^>yvNM57DG%J^i3bQv_0W?B#Tx)X;z-~xpLG=OXnaZgU_8ac;?10p+Nzj4p zCMN&A>*Pj(4X_w?^i93TZh95SAEyrn6tq%w@k^q8ybo3-H^1q5ulqPt{L?_z!IXXf z2hOf(P9=(y2s|$^`Xep4E%WvwyxQpBwm!s8Z9-M{Y{<{45dikyuV@BHJexXI0a#K8 zL)(-Wjeu;bKnegJyyp51XN73s=7DPN*y&BxmHp25y|rCoA z2f&wkLPNhnxP4Ag5=4~p@+dSzQ`nZWU_|xb8}c*k`gCwS?>epRVwpJu&Gr|7>~8`r zaO0)`r*aYh3CpOIk{h!HwVYJ5T8c-I?}LW3-%+s98~nz@j_Bs8?|}ea*Ho%A;JYjk zG^}o9V*1QB&%Jj}+jKEGSE~V@_L#Gxa^;BL0 ztnvJ$Th{EXQ>~a;(dPc1*S{fv)?yNVH)J_#1TNb`N%WrIwi*s*0nG9LfMyJ<-g@8p zl|YdD&>c*n*JXrBBU!F&NJ8^)Zq7l()ks>-)j^?DcoxfzV*G*lRD9;h@pr1Aa*T{@ zWrm4$Da(VsE&n_qJD~}us_xzysWSiY0uXsekf4~bc+ur+P$UrJ%FHlqtY*8%zkShYhoPgo;{nlp1wh``e@u#pVa9~0E79sr4Ra|<3n1CUWe9+Ft}#GErQ(A+=lJu(oH3#-(dM|sw9%cc zqlji`rVk?>djY3H1$pOm?^z5KBW89L)YtXa1!SlV7(nV6=9o3 z58)!*t8IFnmI3D?KWq5U^trwnQoH~EtN;pD2BhZP;XY>aJQlfjgIQ3bN-x)YwYu}( zI=*N^`$0#jA$QwO<0h@p$gA+pNJf|Usu$R4Ev466xe#v*Nus4arTgB*g!aRZNLIvd z5)*cWpXD5-?XY#U|1o}6r>T}8(eFln zljq2Oa99=`n39(8jIGv8Nbb`FPdNjRDe&rl>9gxG;O|+-RDv&|7d{+6Nk7kOO7+`7 z-`zl)#-Muh|D;&TABnM{F(Q*d$Z=g(SA?DR?tC^iZA$fl)MT}-d$_13o9rI@_2U=m z=M3IzsyK_7Mf%O}Iw_dMF$dw)Oh0t*I~_cXgbBeee8pR)=H?~%IKrrwnaIv6g0l|( z18Zvv+ysu6vpk~_>GJ0YJWItsl%NesL$#u9p<_!iJX+MLz=m~(Y^$x@4fuRXaRqga*L-s->y`WVDiP0tyGplhgo~V4aswE61 z{<@Oy)&``im-T~_^>}oc>XOq*%lvtZA9h=)0c7<~Qvv{zAI97Z`b%#9C956SH}YB! zua^aa8`Mg=|9G*!AkA+F(h06<@3SBYTVpUHZR4|$`P1?9kEG?Qdl$CHDce(CgEGhW zc=GA+>9#m~_2wTDAz=&{aIoaoMWYHO+VaY}(8q5(q-?9aaq{>0nLaAg#IM?AT+h6U zSzYxR`h_@IX$$#ld;L~sgY9go`kwL_K66HtDJ*yTWKsO`JJ;|*UVH0F(cS;JzwOnB za{gN|=cWP%AmU!iyp@LFkRYcDXQyhFP#0 zAcr!)H^l?Gb(ie{h~O}qvB|B~#Ks_wNpkxG1Wnn<)GFus{TAJ*OMw@5<$9uN*JAc7 zE@(k&|NK#su(ek#>+-O?{JNH3iq%I$!sw8RytVi0OxCe{G{&KvI(gLi_&PezK}tMk zI?q0Mq1a5`y^DA+mX0mE7_jd-Zj{M9o;}Vs%eJ@6X*qs4==TQ*uYZmM|4f~;dOB^B z<2Yo`O`&y|%)kV*g1t%_4`?u{D1j}4p4xlBqT$Q(F*PX@;Wh!jSoc|U(gR}|C5*2bmh7U+D+QTn}mBYf@yszAZ{sKX*&6yj1!4gFO}`o-21TzUgJ>-Tgh%Q;%T z-vpdBGwAxBDCR2)GEGr1QzFiV%7o$SN02AND;Ep2e(M|%~zFL zclk7=-OOKZETN?%*_FYJ-h|p#fMf4fhe{T;#$x(HT+J;4{4t+wzS?tK$m-(TXcnGJ zq0hFNCxmT@3Kpf*g1hulu^eaR6~ByF`k6$>#ri%6dH;ShrkdlObNZrTb9ykgf*~!~ zda;V*x^RTigaSrP-&THym&b|!kwIe`i~!6%sD;dq&N1k~7C=923FCiwFH=5jKm5-E zn$0PlBn(fCR%!egl|h+Q-{Qh)h?s<$FQ&peV(N$;xY#it`Ou2nMYA<+wSRV|!Z1sM zbFBBLW@QrJ3nBT#J6qh5uVftQZi~XH-PyI+itkPsQ$6&ZU{7O2fxqxWs6Zxc# zJrP2=D|uN07cis|C0VWx4u6(ekwij!+FQjdfadDdhxw>0ny6}8c}2t)v&`h96J*?2 zapX}6m1EQL7M=Wvv5YTa+th08nPV>)E5yY(O#CD*?AJ{jlrG7fEamE&dzIz%z_S?P zgs*T>#7FK=+QYw!OA*8idD`h=`FcJFTx~~Th0Qo_J=m(Wv4gdx($vkn1^q7DQaldp z7g2{<7&axQ@QK4N+Ye+EJW-UsqRLy;!YwKBIp|vNIgjvN7vj77!ec_Pahl> z(CxAH>eQhOEQi$u%BsK9$p5N2D~dV~GDBE!@r95~&&24N6Og-mky;mfVx$#{wI%_6 zgdI+$&e0Z9EB$j01J4*@YziOJN^5*gXbWxbjcc9Y)J9z5YKnZLE+`W{o6;9yf4%vM z>Av0-ESR%3Y_1IUt9BGG872bk}L zn4(_oDe{(Xs37a@Qbbd}$gBN=h-y~RVKORrg=7%FC62}&M~_7dBNSeOg#AEFjmxU# z*!%oh0TB2wwd8~b0IwbU!7#a$wT#y5=5_ehz4U;JZML^C2E5E_`d!}7a%0dXbo8g# zdmbt5vj>OI?U4MJz0?I}lxN92@yH~2gO?O}QlvIJgM-prMYXZV_3bZT()X}@(yXf` zRdI9U%c=@kTn}Z)h#2}MX8Ysa<-b_47Zm6Ly8|nv@5W_B?X1?T2T*2da**0 zVO752-!0;7)TX&adhGwjgYD0l7uWBt2-a(8&?zXCc_HD%!M1F?7%Hh`c(}T&D;uN9 zh9RiX$@)lXZclOSFdPdb|)ZD1?X(?GozBd)gG}CBLD)}-b z23NS1Z$M0e)d^A)Nqn7d)-c@hj(HJLWIA$7PmD+ENx25N_DScen?T9=e=Gc7Cc;NO zTYk{AM-Z6KQ9@tuMaV$}3GfMBIT2w3WcZ}firgULe4?U-$waO_OoTKJ%1C-!I808R zt0h1Qd=?G`cPP5875w+9oY6ewsMEIw-E+5w!u?L=aG z&?hrw`4h=?lzzh`3pt5*E{&LAGTg7j2eGD~-PmCF#wkf)q9Yqtd)G!6aj??xF(I73 zIL6B@-yq$qu+*!mkkMu5vzDJvPnzH{M?|{`WI^Ic+8?%0v7rhK+^^>q(Yt{7t^%vu zAqp0F_}K4qj6w@+AY!X9LE*b>927>RXpL5iQBqO`8mqf9UJq4+&J^6jp-(Y7oOt<9 z8KeUiLHCwb3k7|8V&0c4H&;$T24p<)G}(oSc=9#O@^7anbNOYi>rgq2{^T+YI1PcZ zCj<_a!7AY3W8}9g|MfKk{=2l(TZQ*huM^psWxjW}I387yfP15;;T*U~(2@IdRmo&{ za#=hMTD}1VYFWd>fB)sAOt8;g8QcEQx|~#~^O{m;@&{=;e_}G%w=Av&b?L9Cd^A~B zCGoHRc;TfXz?{j+vH|&)4|@NINP6Tf+J0!V>V44KS+D*SCD6<-v|ka zCtB$P(BxK&gWkiMM@kVE^!aEA8>aMIOQ_Iw9hhVP7O_;vC$Hh+&xhQKL123k9VBqtP2Mlz&(J#zd=sSuh$ zrxW*QMw6JS=ddUpOI%TsB#lo`(nS#oQwmpE)!@sY(=noK6F5Uyn%J@=Nnz{uMr!Rx z8VJ{LrF_5!bB0x#hXwVPb+NQkAd^xyFq8SIf6vSOK)9r&*b5D=n54EPd()ko^p+UZ z(gEQ)79{A7La~oyG?048*njJ!E#y29hdd{>%ZcdlBeIO9@C%0wrz2HU%>M#wqFk7o8`mH_-SXO$^d12XDXXU1UEKZM2NsJFSv+dwTCk{Q zKnOC%XxXPL&eoG;-5>?F%+_wKBuU~*GPvJxuQZ!7JJ;7X3c0IUQF3wfK(CtzdQF$| z3J~26VPJc!1j!+#??|`Z<)yJdebe}pw|dnTdBKK+%+@}5(##tX%a(Q&{Z3VZTElYh z6{lu%T86J0+K7ZegM>)~n7g^4_px$7#uzyoc=IjkiL_-e4^+NX8ldfg*sK)Q9Jxs_ zY{iv>%x{cxf+pXjM$TFG&0fE&^E})b+qUJHzPGi1k3WZwA7ldbpuB!L`0Lr?7@&A* zl;%h&02v}k@12?;oXsBd1An(0G!d}hKb^63B!pYo^OD>rW&0??k)W8}-Qa?R5R?QV zYi)hdo{y+Kt4t|_u?%mLcsH`A_dmoHscZ@_#$vagzpnhQCAZ~cr^ zQziH6@`sJmMk|P$$nH*vFDMJqkx9*H-x>cVj^vK|U6#s4C-n)V2YWb3L~3YKDtJzE z-GqkyDfoD}Cygrmkq83Cdo~l5-;iq7I%z0e@Mh+_+59{O{&VpT;zYkyv-gdNQ!cBV zhwD*A2FfHz0LGY6U@i2(`Ukm0Ybw|y`{tCE`t>1LxQi(({bdsdY z|8CY|#vwKL^v{@3yIQ?5&mif;G;k6BU%07&;Av(|IO>2lf|fMD&kAK8&e_kv+6#Mz6N zI99Jt@@Dlf$^$WO(IKWXA7toG>Z`sCT&CdAETc1(<{QjGZDtHs`Y##$)trt^Pw-GQ zS9~4lFHV4YTRhoiDNfuaoXnj~4U~}ODUFc!j|VkI5SeC8_yL6ouNx1wzvBhaIP3MV z*|Olv&2c|Av?N0ZPwJKS)RK zmW5FAmwtxdUe&ib92VeY>R^AC=aBk^-!jQvmwHtyw1y1|-ge!w<*- zh!pfG?ndmpZM`-(qaqzxmqk;d=9YHxyK=)nK!Pk zA6r1Odh4c78ZC(`Hbwh=cx<;G!?)4Fwm~H&%YjGzKgeXA2^8mSv3h2Wp^upV_nL_S z7G}}2qVk*AMn{DD#U-<@p2e|vk>K{LNfwyCO`D}nrRRP2u#skmX2;-vB*DMcc*^EU zVE;l=&8GNjCq4l^#9IHTee)u{FKiP%St;xhV**h@X8U%&67q#nOS0cpw;Q=3vm*|AYRU31Bc` z{m^&ei72fJ))Y!J__lSAnY4hY436~&Qc!^R+*bu1K>rIG+ftfBPqllU8QlM#PVgj>A5`ykYTioIif4p-R{3lBaUX#!lc)zli;-o&b9ADg~Y zWdT2(I$%YJ;og0LX!pv!Q;@7WruqKzm8Hm@dftu04*e>8htCzE0ZnvzL8Xe!6#vav z6ukV%eEn!X_}T?X^_mt#9ni|yXW*QtI0+tqaRYb&FPKLa)*=cx*SH=h@|e0Qc%i+0 zfiz410VG*aFVY`uj{xZ)LMy7=EWMKd8-gH1h~IReFq^kI5GwW~@yfX1>6h`Os{pon z#LVh%Np<({OMDWh-_2e}3TLhC3O#xcFV^xBTx^mGMQoz?n%!=4!B7hfh&n-fZw4r~ z{ILSnPH?Sfq^FLEPrb@J(xnRJri`|JgAwk#@$uCP{2^Dn@dX=8o(rJe{H>^!Iv*c~ z3sDtwoR7C2)y&>hgpP2aVaBp@4+XZrpQIZV*dx9trX>aCkG|1G7_C1`^>s(Sc1tVE z2SV@d5E#Mo=~kZ3IPf_H%SiuaLy~TIyG=I)e`>{WVru2rwKE>SjufantgoSL*gNj_ zmZ_-ERaDfL%Djlp&L-6-h?VdrmC{a#zuK?@d0ClXc`%R-bPAtrD+&PUKU3R4?qpk; zSB%XA@~ipBp#R+d)Lv~}O9?`rN^&h%rGqc7xNbQh6x8u7Ym82Q)@wv7ga6zSfkwPj zWc^FXwQjj$%kO@=ftR&~QjxOVEm`*6hH9U;8?=J#PM`j_(USs0ptuX%NpFW3sp6eN z_S%0+t;F8z3X7b<_B+fq6LL0x0QxC9uZFEi`=-uN3x;>=KGqF;1(6`lyg&}~ z@^siTy(hrz@$(TEle!0UWrSPBFY1iXIX%>Yc>}%29r2A7(GyM4eHE%Q+kux@F4@T~ zB~ogaj{SN&D;BQBhcoGg@44=&)bh0t#JnWs94xeb^8^9SE_@+DZKLBy&z87xNBpl- z-u$1p;w|f1vp{#)tDXC0zRDw9nOPf)yfT`<_8Dw8O@K+1M9n?8`oDL^l{@%Y_cT)< z2b)_(3b7zvfq`Z$hrs%P^nPD0%ROqzzu`15pLlSvScPw~mLNwt(oBZ4fDR1({>WEn z*~^|e=QAs0O0lH6N^K&4Ig}Pbqp07sLVF}+iuo(L6F-|yZV=3Y;z`VE8Fk~^uJ>Kr zie3G2K9z?zQ0FNPrHzp1eiA)b+DgN1-%VuX1+Nd_*VUIfK49A?lac=x>Dua>fR=+( zu$MNzK*HK+^H520UC&3YS#&3&d-EF;%ZDftUB~k<(XHf2us2Gz1qbLruzp@Pd zHHJYqV+xmT+3yP}pcI}g^(d7VyrXI-9SuOXl$bGv;y3;M9_AoL@OOK;=LJdrOw=sj zn;6xHV`=4d^2f~D*-w9M7jw3*Mk^%&&3aoegMH2w0*%@=)HbNzEca45l6+e;u)}aL z1;R&LjU~IHACK?EkL%x677Fw;)O{d0C)> z&GyLqm0|6qs&2klD7MZ>gS&tCn4kG=r7OK#Q+N-0f~L_FF=yW!H0%R59Z*K z3Y7@A+<@j4QfcH3uqpPZSnzHw7-i0NdJtPrQ z9v)+u>#)GhWmi1N}4LT!b5_|98AfqW(e`&k5B%z6n6C zq^!okTevrj6oeR)-t!0-+*^aBwuVH%hdfU8r&i0BS;eL#XlsmgPzz&w9=lWakbl3Q zQx98L!mQw)aTJ5WJ)Y9u z|7i=g>tK;g<`DB@QAwvG9lak-PRTH&?*Hz!2w0)Q=Z>3Ouo+119@!wvr*KUPs6Z*2 z2`ma+W98jIJPw@@Nz8juwG2Yb6iUm_;^EP-zr#%`wV8^CltG8CE3c zXhpFqk=l9{@MPW&@?#@3cgIozEVLv_5Aa@=yBBRfnM zk|_8LZlyna{(o2i`6#|E74ETHJdx31vygtAAA%I@M3-RFOCAF<0BiUG2N$DqPg3$B z0xpMt#0vyyj+;vv$BeJ7 zAEcZKBzL5s3*xqtFnFRaofttx-5JBGChbhLt`0s{yGx*6SC14`qpOUXK>HFUbs-+plnEN{b9 z()XmoA*@;H?3v6W9IA?^dPm%D_8)?i=YHOWJ#YJIWj|RVOucr^opn3pqn?dRPFgx6~&DMjc`dAesoWTh#r+hnioXh&E7YnThnv z(oC;Hcb{FZ{D^#*2cnN?*UW(z-|D){p3J`#Q(-3-G!b8kXb1-`?)-d4hc}ybH>CaC zf`?+ri#5!s@=f+ScE6s0>sH_MYt4PQaG?uuMahkl(^v45-}H8vj=3CU(DT(5DP=8~ ztgSSAYM=)67JZcevG_wo`%|TM;rBi5N^&O9kDOUob3G|Yt+57>;X0{J@F6!-WY7hJ z0aL59V?wo~HTkYR^`H(gre@5lZ@|Oa{}~e}eiFr^1H%=dpxC z!p`bE0L$EA4|Dn=d^<#kltLy)@sg_NK)oW2Qt}I0OV%k+r^DBpXD%_IXY^+NK1jRG z2aL}4?c3;fA}h9qb!_^=okKE+>!;f}(S2UH4-Qx96EGG;)P^{V*mH)6c5WinPj_J@ zSfF2D{o=L{`@MD1t`i-p5spiDAHJx1AXWMCelg`uMByMv{h>*W;S}OI0X1H8wE;JX z8jcelky7gg)T-Aj0^rf!qMqLq?~J*Arzj3345}^PNHPI4xGuPWHCQx zK~LBypv)S5IXm|PZd)776CV#TNUw#cOMmY8OvCRwe7sG)f>LQ+ON`{N1?_F+aV4t5 z87>3L<-X)KB^coTGyosSjs!o@Gm}0B3?vo)1drsznVyxvc1(mH6GZg=m)t&kBi0eZ8(CxgODz@DK7HQ&f%;vn0JILm4LCL2so_ z!uF8r)B05pJjkQ!ds}RN2LJk$D<$1dmjQkNcK)ySyQL(p}yp{h+gG-y@~F@xFH(^`e3r^WT6!JUMsRYy^gI zJLFUexTpqvGPS)=5JM5da(&X>uYuvk-Y%+04o9+~nq!b4D|U)?rBsx#4IJp|m=@gs zzsP#?a46q5?!TB%Ms~`+jnPQfkadh0`&uN)z9reW%-GkE-B=PvS(9X6vKF$IWe`Jl zvSb~DZ28^O_xU~lJbyWk4vy}b`?{~|KHul-{XSzjAzs@lhTQ7myug2*ah`$WO^2rw z+-pbF%Y_{pOHNCa&YgsufjV~kOvzLFPm%&D7Z2(SzRCBFdgWH$mP^JQL|=Yy?^g9d ztE{i%bnDUVw1wx_>mn86Vz4Ttq85Vl`;&Y2}#r} z3yfh4@2BO~w7e%@IAf2|d!692V9LLje=DMOvv@Ac0#|i|KgrVRE5<$Kbb6))aZtJq z5L9mV0f54l8zBPbArlSKywmZXlQDdQedIxi(+V;&eMfilZl)J9ZQR%be7d}{kno*Q zV-m!Px#64NlOnIDZ$dh$?}3G-NFS-`zxQV<)|VL?|A`as?X3(@)t4pPQ_dAzKRy6p zLm1vY*7|F~(ay!+odjX+q(=~q<4K9|M$#)?>dhpnL-fnlszN$twX|iLtm|T2gd4QC zk#Ckwuz$=Wbh3I`1BzIHNMt&#LY*ueqrEPd7Z~_jlqr-q%mW~lDJ!uD;fxZc)cjeM zVi!hOO9!U*j|4UXpB8=l7KISPIe|jDS!0jgkyZg~QyipNOH(j~M$21ToD3e&z8Q zKwhSSM>xc(JhimeH);QHrxIlRQP4PH8~vtoMk&#G`Ig# zGaSp`u@Xd`0)WDC9IFifqc8!f=xJ997eLO1_>sh(G68r7i3KgAGAz{})U==Tj`C8VJ!5xV zcXo6j8};pg3P+XxZH9?2$Z(O0Z6N zkO~C^oJjFqVZkbZaNGvVObb(h&d7cnesQ)x9c%=;T6Mmrp)>`CbvzUNd3cHc`sF3X z<#hXK5waK_+!?9pNm0gje3zd7kW!T_v6qOFOUH;urhO)N8cda;gEHPMF9(HO9EHr0 zCe)R~yLN|w*qhhiTk1)wtshW@*EK=geYkwb?*AjfHtTsF2BrA;&H@E`Gl?>rSyj3? zR^JqpFMkWX>hie8ZQePlEYx?n`X<-eJL@!8sI|?Vg z9pUadJb{R_fO##ztjbNoLQn~Cc7UZ0R+At61*tDmP9hgYf=NYo*9IV6KC@3p42+S2 zcsQI?`hg!-Qi~@IA*T(wM9XW77PYml0L0`+B9EKv=a@`sQdCgrv**B?{Y9C!U2$k?mGG{ObhXC9Ly%-ct>J{7ae0c(Si8L z2|^c>!Dh>)sJmD|E%~Q9sH+qyOPsUZ7+CSJW08o9cdr|NI3t;N{4Im-2fW_$WN~kK zBnm1f#DTUHS>1n4XzO^GrFj5o)H6O#P-zOutpe`B#Q&97%uuqr%{ErEB9~jBUzC>% z|Ld#j0>-tQX;S4!JZ%MrWVy|LA_WR3h_?blwo4?~MrCjiak{C#k$kI*sxLLkkJbhW zZvYS}H{fx1)4})NtX^~V<aI5SiQy!f(6O0D`U7hl%d>JIpsN)BYU)Bz#4M%;#h(>pR`<-fMkiRB(k|)bMHkN9 z=`4ch%-XMCutbXNrRqMv!lsomY)DMlMdMGG0Ai$HMHl~47CK@1cTumds|^s$8x*T8 z7x`R}2&hrY_tK8kwn3n+3Y}-O)XZ|aNVaO1pwsCYxtsN};ip45MHfj&L~o`uNJ8?IeD-z0}zxHZK7@Mgl(W6~63W;HJW2z0po z_3p{uE`HSsKk-+aB79>M2?-}eJqja>mF(S*=Sz;^7~&^;Av`q@>!NL!mB&46&_$15 z98qOWQ7NP{MZ(gTqIgabz%%r-{)owQ-(51@q5YRK1=rZ723W*FNM_jx-D?VdjZ#ew z(k%1vWl0nk%HwVtr`#(@%3Yj{|G<|_qEk6UHD&S#ABKOJs{UMnCXQ&xbhyy{lkPJ% zQtq2wK^3?PTGQc#ax|iPP~)l!=7D=(%i&_e48HfpRyjrT|0jc1f=R6}Fh`Ltu-d6E zyJtcHjgCRRaI{TV=Vu4QZTAA`!`Y5R8F8^MC@OAc{@L)OVmU6;_w{ole>Ed1wf3uN z$h4IJ?(g`WV#S-HfaOG!QL}@7^{GuNHR-LaYu&V}@hp3$L;eq;g@-1DDLzM1Hk3}1 z>oL+VoLBt3mEWSi&%Z3`i4gp65gdbv_X6a_BV>>L!Dozp*A?Om3ltnh}2 z^MIG5XWmug=rq0#`J&n@zWJIKT}&|iNr-JVyy%IuxpW85`hX@L_ClE9+&`m92o%h9 znJH%#Mow8llk^aFp<5gi)n^%h4U;j`IRCKvtvYYv61LGLVeOP0GIChn+oVld+5D|dai$49! ze0d_{Q>_1}no`il8%vO|( z;yFcHX+bLQfl;D8eJVraX{U{PZb27Om# z)G~=F3WQ+6Ok_pyJtEYsBSoZ(=@V6$WK1;is!T7$+^2Hjl9-YrAqE3GtV}46fm&=z zTKBJhd+6IgUn=aBkK|eh@A>344P<+)ROfM}xKMfQP+SifXOg~RrS$H<0Ce%BOLQ=mm^6qQ z!1uB;+8>a!sXdQeIn8Oo;1s%`T3|-9Xb(AP6pRH#dCYgHkJHK&r!bI9eb$$QrPo>> zn%)D8b3ux?@$1;06qM2yY8g@P65+P!ZS4k6E9a+h%4xv}lnrRGV+bYsO-j zwUCGO%7s@y>9Q9Zvzb@M^_*B)2Y~r8G~M_WBk*c)5}D+| zm*C-RpA=w5yUFA$mMbn@eRq1o9rZzU$>mJ%U&J907M5AelRL56wAi>vjNh*04m z1*J7&-`UOVTUH$}hypY3YCLUW5)axcZ2w$#`DVmpM|XcN3id;?^eAvygdoRr(}azr z1M`A;3ww*Ty6i&>3CXY1gr~DXq;{UQ8~yMqiUmoQVh}Wvqzw9w&f%YHlv-MR(Yw^x zviJgA7_`;D+xhVE!Tq^0{G<_3*s38)x{FjuUD_;OYujG?H`?%)ZLPtrV$vr2*&iaV zN_#%JPi`Qu`t5ldeFsXd=elfRh`FVwp!3ZcpCz<>0whMt?DTNZ7e88uu38o%e0uaa zf0I;*0$qhYDab2cPFTy&=8u%NKOkaJQJ)`!a69w{8X40EI!8g(_0mQ=w#Db(njsbM z1jV8WHDXJ#O^n?476y^WCBi;YAmC|$&{&KMgC6pc!6N%kt8~GzE0{cQk_@U#2k1xz zNqe+>c97Iy;(BJrd~|(ls- zf#8f2UFyB?*YrzSDDxLrN!RPE{>GrOxIZ#fE5c*L4}E-dUsFKdi^m_1Pxre94U!q!Gy&^xDB{R&Q=Q@?v1}!fmE*1 zgVAFXf#I$|@}bpftaz8`Ufker5A_D7ztn|VE?pF>KY=_h#?=9YRp7^3=86+$G9mC~ z?u?il65OnLUMhDjtb&hMVn2EV*Zo0&3}RkTz3zSTI=JyGvsvv$#xJvuV9>9g`FAZH z$nEYTHkOi{tlp*!9>xTp_Z2*?{0ov*HlKcp5I&ik)o&PsKS0U$?y}0#WNgz+A$+g~ z*V%OSm=QN@J!sGaVrSHiglv!Hq0d_Z*@$IsI(r0Xp4ZwzIeY>9)~o2~wtrK;5u4Aj z$j?;yW|Z+-Z)@yeT_tCgMlc$m5P8DWS@y8}nS-`YUbV%k646J{3g018ptaO_*uVQL za53%e$3cQt31_spuQwOhYk`9|(1Qo{QZB}cjV*8U&dVx|uDGX4dx<4@)iPKdZ&E36 z@p}?=D$aoCr3s80?2dKB@1FwU#y)MaS+~D)`7XSmX2V5b1ri)KbI_ zA^5l1+_Rwrbq?1tzzOwyE9m0(+u0T)!FgkebX&ReUIHDKJ7iZ3$t%8$&A(P2`+Q3`P?Oi|RV|LK5c#C= z&U}*$??Ch}YprD8pI2}d$4fF_V*H9J!csGX{ppdI%dKp?LH8^<0}3TaWJh9|7ELeLjz2UjKd%g8H-lG$DJEQu>*0jcBy|{!>DgbQG}J+cfxJUmyN{s4 zNiM$M?U<8c!soLcFuwJXvvcnUA6$$h%PAir)=1hj_e3B;@-*C7sRiIJ50u|rZ0e

0z=r_DzBhJ?}A12wIlOq3c{%JZxfRdO1GmT_NlT?%K1? z&t!wW5~TVw&s-j0QU3TFNde1yBN{xe4oy#FIPj{`f!lh_{QUPG!ET~;H8(Mq>>99~ zOORVbj790HYCZy^VjHvqZ!w~ajk~bmp#UoM|)QQ{|PL5-5 zNzovekg)T*&Fc83WI_=a!D}iid3ib6($t4fyCZ6ZWpM-R=1(sqzg{xxtC=P)Ke^rl zOi8aN66_^Xx|JgZ5-o^KC;3)w!Ipdd@r^H-IOmne!YmiR>8q4TE#{6JuyXZF3t}d3 zB(!Xw%A4i){OuJ80ZRwb`dVY0kL}ES`X&TgVt0Oj{H7oXT-^jTAq+@x>5jG#tuKHx`0**ux@+ggp;+FE$;OoV#`f4ba*gI`IPF zd6LcSBndIkc0Eye77)9>2YdoBGC%Npz}l^Jf&ML2-%%*mcQmsT+yJOFZ4=$nvm+#} zpFvNldVT*)foOV6q?tIm;#sW0g$tR?m8TwW6)aVPl2#Yv>z6>2M2W07DeMo)-`Tbs zB_>5z6gv-yh_3eAB)2Q{jV3ni7#Q1Y%TdUngaM_@@w$qugJ{;a(Tu2H)ISJ)N%XIE z(}Y?ZlNBZ)s*CIMY;_MZocYHU1G+|RY{k)MyU|K62lqbu5MSqXIp*Jc(HYdS2EmM8 zrIIU{voA$3NTOP5etf@@Hc*x^<^JFpHTCe&(<|Sb#FC+8a`h;Bh?Q>lrxv={S zKC)>726?RfA-SZD>a(PRK7ljfp~Wg<;sg_H?KI>4e#bvdGlaweP1n4X<-?vFIhEx8 zKqNgs+v{oI>CN~RyP7K!Q{+5wZe1HvQ;HE16qI z;(iNl`p^pMDRG-zyyPH(c_Wh#bRm_SK=cyF17N*Pkw7D^JV0jn=P2DOk-E*Bpb4|x zFbmpK*?r1BCSn!fZT_c|PU$E7+M+Ih#uq*6jISb|Y@b7j1w3`Jy=L#>EC89L(eTWc zGC_nya6wIA`3W+!jpOPgY$E?wWE(3q!bfr5&!qAylY{C3uRr7#GGo=?B;Llc{RuZJH! z4pI!x)1!S}dh-t8hRd=2c6J13iml%oDlU%D051O3=SCq{!wytG*GTKb-Q`mC=RA9V zb4rv9O_Fb9wfsH#-Ao5ChFf@P7?=0A+cOTC7C(Ycr{}g00g-lF4%iquC~$Mc-^Bmq z5ANF^kSyzFuF8h%N1fM8$5#({>_(09PR694RJj9Mp6j`$Wsu)^*Q+jtxNo;2dW=K7 z$~n&~?fpreDQ>s)GWti%U|y>$4$D{iRITX|Ox-{(=GY>@+Enc;mi#Ag~*6Kdi8vfsyn7Gih=3l79br z!>qrv-{0faf6N}o*ahI?tV$6q>^Gdso+TDPnZP^d&18%uTbYq{<#`XvB{V{Oz#klf zW=#gX=gxk~G_$m>seMO0hsH3}XUQfjV8F2@#BeInr%btUF?63!lf`p(<-2-jV_KY{IahWUn3OA> zGB}$h^91z1`|B2{9ejA2vdUI6M`z`kceX45kZwy#Zb7Q}?%M->i0ynGQOdnMhs$J=2g#VX`N2oldi1B$(=ZnRWQx`s9Z8ld|?_nD8&$ZzZ-P6#IxfDbWVO<#sjn`M_8TXc;wfbchm>Ue>i*J^`)?Mwf609lvTJr zhpu=m+)(xp;@bdB$G-uy?u67i%mBLp+_ASJD?s46Z?4Ey%U7WZwVLon*Xn@rGRyJ) z`xzoM;G%Ny;4aby?bvn9D$|1YwK{5=xHCkhLep#jIKQ_>@AV!4xA$Zl8?fz!eQNoZ zG;QMiX0idg(zfLA47laf#P=2Am>`Cs^ywYPvR{x)sG)R#lU6K*U?Aqca*L#q zCx(V`?@5G0V>4c%xKLCmRup4OJ_*e{1$OzL;4J0YSwZra%dc3B5dOM1Tf%xrre_c9 z)r*sr>{D1UnV8J5)geX>1IVI7ejkCvWKYAGxHSrga8)aJ>R;0*8x^uR)m__~vj42m zA*wp6`hvBZVqMC!%7803#f~YtX;^4>0jt6pk;-YI{*0KgatIkT*P|1 z^KlAS{jJLB<-vmAn{5D?s|kWnW6?wHtBi8|CsBVxiR%+5Z*T08Ca7;Ivqb+{zwkk| z9Z(Ln2j}xV4idk@#OKu==sworhtlC4fCRurr}Qymlwn$>X6WHqutPOMj*Kmd{e?qB7FIKICTgjHI2W zO8c6<@mePRl@98!T?}~@kg-3RS+7Z{ux^St@ z#O|v>`g1jk-5asNPtGJW)WB<)81kkoX1a01Ogj6mwh=+3QqPI|g zP}is%GxAW3KLeP!7bLWH-vK8x*<)LEaEh+Z{Kq2XBbr%o7UkFZkJQUsB(@l8a~S`c zeiN^1OG6Z#9?q=kUZini`piNI(r%M=L=o^imSukByTmb z`ahonjGL5m1oVYaA%S-tD%xc-fP1@@xi-@p1 zUR!|ds^9Ws%Y0g&&*_D3|MV%U$k5f{n$ikXB9~@iXVSfMB+uPH@VV|=g(=I?1;H3` z{xNPBG0u~P;=I-c8uzDS`+LCz6noykj@tg@vCa_@%BmW_JV&c&)E8f1+jZ-&(4VY0Bn8HrQM!uH$g}^kap=31 zr-XYr)q}d*b-Lm%F&vyx!=Txv6CBYRz^`N0zZ%cWrh}rL;V=@ef;wTZyNdqY|3c39 z4Rkk8f?nI7!DQv8f)hUagZ2QGP6=U?Af zCrp`pd=6qgHPT@mE#*?5Wa^(L#V7nWa^Kq42;&)FIX356zU2z3{6;Sx%34SRyJB$! zBj@}1dAkQ>=sqtFb~K$0b-P;+5~ZuQ=M^A8uw}3o<_=Ey`zv1LZI@||Rj%pDYUYN0 z2dzv&xE5nkQ9g3nH#vP?fj2$BEk~MXNliXUwUJc3qMNEL$@E$RucyLqF<=YR>HhL7je;Wo zLmE?S|3kpeZw+DCjo*;z=5{=ChJoMkM0Lj#i~eS{_SqG6)~%ZHj1C>psFWbB4#a_%PgRM}6J5hh|-IC$9^{v4u)bQpsp$-=vqqgr9Y+Cl9_6(aq@#%|voL zMkq=+&CA^01tKh&gBCTxkRTW}hQgrKE5*KWqD^Ey4N2jd;8E2BY1N{FAo96-jsG62D&vCcy!ZABN4e;k_gp|Qq$z`@m=69lU6@2to?&(B#64^Pg-6W!307QhqvGEkqcp}$U(e)w2#>;5 z?%Zp35p8%-vA)p6>2>|soVNUtFG;Y(uHd7KiM?&f&Qu&b67)aW{BqDs3PT?6 z=YSal0Lo2=lu6?9BarX{fa z0;BQ$W$##N^Q?cax`@!e;V+|E4xf`peh%qt6&2AxG6nPInCf}d&*75b=l#zj{-mbI z0!4T_e%tsr>9X(g&gxsTYV`hE_6{=!)bmj!Z;)=D%H0_#cHM4t^zo+*dEng2^ry-= z2R^#ED~Mp25<6^T>(i*NUZX0zMRv;$QW?%r`O|H#q|IJI2mY2a0`sa9o^jDxxQcCed4S5SBr9;J^hx>lY+%ef7C{1%?YYlHyJKXC4$_Nw6|)v zG%Di4DW!$n%Dw&&47wZ?dxR-e+6&DPrUen*l`e6zQGLsj3*;N1qqyK#ee9ZP;J^lT zn4BbWKeaePuiYOkcm5J+C?y1C@P zZ_kh`CV{{`61D^pB6yV=?VMt6!6mZSKVC0Ljo&H2wUg_>5yl;$>eXy+3$B2a*^tPDsa2c}LNWR27 z>6SObh10lx_bmbMe#y|l2|$=anrD;%rDBE&yBo>;Yof|(_~O9oVjSVRqC zV}cpC5~c8`BxuZlNHt2$)xF{ne-E+ zm#D~Mr8jIX^lTJiTAFK3)K7ve^u81-L25AJ6UWl--qjez7?WPJLu7ePwICyH-9_^G zW<;*fCRO5~%Z-m;tIV3ZinztcL}S`ezG}DX$__D^xr_8}uFDjWCz=2ApRtf+Dyj!M zt1neQ7b=?SZZ6rshcDrV{5bPVX=(YHlo#ZXPv}_>p^_c@eL~9uM=?oKF@_f(xFL#5 z8>*|a_kZYuVv8ekA^sc867plgNQY?NL~R-Skjf~>-IsbDD4BHSq-0PFt}^|HS4oy_QhN)y6yO$D0Jh;!%0RhZl5tPnI+;20mzIIQ zAvCvPE;vA8b*^Hs8sbiCf5piQuq|oRHb#QvbR_jvYSoL_`1}e8H#m=NjflJ!Ri=~4 zK_ikIx)ZWmp9*lFQ-dm@n*$4$vK{ZZ2Vy`J)vFua5?vsM6CmJnQV}p(%nSiY zpOhGO9$})VBH` zZ0Z9XSaMurw+u)&$RI)tr|QWBrP)izuCF?RkTjAc2!)Z#SSqH9kG-^F5VFYl$EmAP zH6KK%^gxYL$=sL zygpP?T^M!@2u0(Hd$9&CT}Iqn1s2IR%cHY1cbtFt%mH3)l3lf8-<`Nt1a)+vUQja5 zz4hTAh7AF>HCo7ny{ONupp#`j{?HUw^iNfe*n0?WzWiW4JC!K|7_HkgLjUCE5-%PXkYlm$CU)+ zd?-7wjIQwp^Lafr{du{kOYv;C^B-+XN}`m#XG#pdC~%vdZW6uUP{WPBJP-3hny}-}hhK-TUyhIYaS9!G`mMS+sM zz@)Q1vf!iUxh*$<+jQ%sk=dkGI@|q67(TD@gXLqF?0f&hm2gq-M*G|-l3<$)R643- z!9M}XwqzPeYilA6lA8wT;R(_2&IahU^x1t!JkS@5bhbLe(WI<;`j#~U>-Hu{9U}hM z@%Wwjbzp;L1nH*2dXw)my?16Rp`2EI7Vhhc`%7xF%mAxHBq;#>6~ayG@MZg4EGhjh zIPG9*8@2!v-CQN4ZAO)Mj#u;Ma3{p%)+C~Z&xo4HIcciXVHAzOh&L_@{1dnukwn_r zI}|o0MfX6LfH!6Linm2>{>fw=vtvozM+AC)Ez8qCZ5QV|GK~3w3qHfEoYiH6xaiL@ z1w)4A&L>~1M4Hwy8kW)!d0ecYfy_66GB>Cr(2vLf83QwP!MhPppy$2sBP=z*Mw`{~ zA2{=comRX>&VX>t`}?{bak&?V?icm-t`#kW{vX^}%EmYYMYIi`(tXx+0ZS8kVzJ|I z;s=aLeGcT7>P?Fs$61}(x;FQAO3N?2#g3HHj4Q*1V`LZl9c4~Yk@(-1LF50qZDR7c zK1S(42Nzz01za4HYBzXu^sr1$DHi|>sBaZ$|5d-{se0+3J^MCgmS$;&}XY-j)i zjMP0O#Chcx$0zEl*NZ9eDtFVk%v4k-T}tt9!as~eqljvFqMG@DL4%~Q-;`6yHXuqn zO^5}p>tvgF0xW^^!37{vOu0P#`!D#dic+0P3rHYbO2mr%|idj68MVX z3`xRQe+o2-dVamNml;}7y4Y8e;ZyIa!5(~g(#&(s8FncB{z4MF7hg=#Ej~PmrSN^S z19b9c#Y2E>(J7a(3Z7e2uQbwHcUMjA%TD;-gCzs%gp^N`QH7ZAKr+Q+g-!gynzpvi*`L7q$t3YP z^Q^n`QGfsP=+*2+y6OLO-`?ybVd5omjne9@Oz|8aCFc@HZ{KnY>?`mxMnNips*3@I zk??#?okF&%nnNeF!f<6`{hp7OJ3;LkJ#zW3!2XK{AD_`M&a7nyfV_W} zf>`DU8CdeGAyogJCxGuh*+7w={Lq{@RT% z$No3bVWFcjhD1$8i}F7<^S2~WLyDYqq+b>w6-SG4>TBKx7qTf0B!gmx0NF`<)ilaF z*vp;sb~gvliCy;zDa#~?p^O-J^)jZ4QXJG5xixH>%$5t%@({~C_2Fh}*J8atTAHu( zUlfF5miQ29%pD*`^l6u|EH3&T z;6o4A3h)r zMw4yPNsE&iM2QECG)<%w%oK*EF1Z@0qf<)yGSkP89%}4g+1@29O*7AznPYV(NQ1pQ zeCFgrkWM7bq6+e7sNNbqp>Mdn-EnRSu^V|@T?G(O>j)<9=(843s%sFSX4 z_Zg35d4vcj0ueX27~c(o`M%jyY}qV+4_XP(N69R_YZYzT?NH}su-{V2JP9I!K)yc# zD*}g2E0AXUIC$uiZF%|Rd{3VSf{?OJibAM~W??>7rLW6&T>i6^*bd-~PNTSHU8X3#C%rkqIJ0|M3Nue6%=T9*WciiM@`M#WeKc z3k6$I7!j}1h>;#Uhtv!!+5E+#YYw~I+G1R`J|vThiMglRzWrmvbQyn!ODE|)121?Z zmwD~M9~}Y zhsCra1Y!SGf7~M>mW4X=vO&mQ;%E`~1~pIPCj<5aCR*?OZFo7!tRX}SGDSmM>Tg$C zF#7r7AcrwOxD6t}3i(CVkUtcozQjrICj3$P;j`^Fef(w2@dQGA>^e)%>kvNk}cGs%rbQ7{^gnzdBy? zE1JBzPuk&24(;V*8iI>+nT`dX1PD3DwKqF-8dUd7a44AN#+D zKPIN#P_m(tfJ@0~nUG!&b(k*O&B@*tW!>42kakL7Q$s|k=bG@7!R~Q^O7BWYWWBzo zR~S>!XVIkFglpE|EA&ga)CbjPHFV&?wnoM<&9p?wbE>FrLYBX()S~e8UrFiA>Fewx zi=Ha7KJ&?P4v@GGls>u_C4hd2o=Il(bXonPYA!rpJy%D-M~m-uLzuyI5*Qkz(t`B=LF%Cyb><3KvE7>CaU}0~(wnS1&|f z@1gp1jES;P3hb9N+#j`m*J#9ow9oTz5X_w^MRGaeL zhAs%=u?g9H=;--LKc}YhXZE$R%Wubj!GCLhJRBWdJl8bL@UrGnp)`uFuBGvuVR@d& z^omqFea5MNM#1&tGfz<6soyBOsU{>-2!VtDlQdq%_=32)R9~WAMFI$x1|mhoKJ?Wq z$|O>|r({mhX9+pOI>5(MxAM?I8``QE4);8SOf~dkp61iZB`3K>lFNOI z91@Kt;9cl@2ZTE4LC2FeY%F0_V}Q$2$dW7dAy9Vi%(`BsaN}L@}&e|I)>CO9A z(Ur-m2uSRCd1b7UrkLSPFTfpj?wosse^I@xWC1-5v&uu1T;5om(A=PtJZ4xrXZ zU-#WS9)XAY-#Bn=Oq|^ew$%M}tDf@eU#}l?M(IY0QG#@nL+Z?b%~hvh@O!leAdj zUPrdMJJ~9>s9|~wP)x(slzWMi7X2z$(u$U#nwqo<=}4O92icYHy?fF}&!9K}Y-+6RHYTozsUe$YF=`)l{^*_hGg@ ziKI-H?}$gx_h1Q*KA1-dceHRj@^w?p1Ld7@lz+;!)9tkaz3jv z#5fnNq!`yyi4|I}OD9^6atqU%3MHFccz z3XMxW{eh9y3X}(YJz&K|#@FLrjgQCo&XR@UjtCs&DyhQSbW%nQ(jA5s+;EbE6CadV=#$oc!{zsW#6*)=5E0 z7Vf;EBSS`O@P~2Lyg3s#L?4gIIG@t8h&f!n9UbP6v&nm3zx#9d*VO{CAY`y>uiGC& zaPyNI*~JgvNJ{vlHZb*p=TiLMSd#A&%WbSZr^H8HlVH0=49~^tMD>@RP~>g**x1kW z2&R?MJMRf1A|TyGY&N_X9(yS9`dtbmQ!eFLp^Mj{?#kuo-^rOeJ`XtJRN-ATiXrls z39+>!VqyWyOsnxIR9ozMNTh3rUW;aAjf6#ZV+u!PnkdETva%|^42ru^?lm^LoFM*= z!vd%d>tm7E=t0qqs5zfq-7{j%e;Ji3v}4Mq{b2=X8`=%EF-!q#nTaCX3|{`pOwVyq zKI?OE%n3@fnI%-1hsv>?{G$ug6PJ0XLZ0p~ly7Y^y$U_)59M&dgS6{jnwgd63UNb< zr)$ws5f+Ph_4#twdBGOY+HVNggwcfGf41q}3`F zsa!DXrXGAB|Je*2_^dg_Ltd4AquWjp>wf!Jw(8>=Ygy2bLFNyHz>h-D(%rQ9lC?N& zBq_5$6kwDO)tlNi$zxI5@Is7IM-FEQz#vo5Y>)+0t8}Gve^3a{bGGx0mis% zyy5bu*T6t?= ziUTNR##d$8;;gch*&gUIBY$5$EERfQb4)HmXw#7UwCH+CpySGb0Ns84DGUu!o9S$M zL>+kR!{{x6^ruuFYY;|OruNCi4saQ`-iUkEl4Mk96?HsifY^hoFA(goa-LW2|A|<0 z1r)Ww8jHv4LZDx4VY-bk@02oP+O@8miYr5}!={qOCKh!kVSdMjOzL^D>~HA}k}pNe zHWm39SoNz=n`aY|ch``YB1ig)*U~1!-u10|7^GojBSral4#ez~xGeXAUofx^8Mntt7lNo6h+f9`B|_*8*{;fYYFfv480b%k_sTyW!m7|7|rof2RY)vQs= zW>yL5Kx0M~%D&vm1NTEjw#W~i0;SREZ$+zKvC(fEv8ypqSvHNqt9+4o4`N> zDyY9M(8tkBL;Yu*iFynbBZMZX#oZ^8cT^-^)Zr8Js)ycM5#3u1Ep5zWpW!5UUj_A{ z4o?RR?(n{*Mf2r(ay>t4@1;qK$*Zj|fQe|l?``108?$pt3tWvF%7u3C_gqcbmd{JS z=LSDJ5e{ExC+TtTg^yzhg>jWy!P1N;T?0ZnqMjWmho3St%f)r%SKehx;A3;30mLs! zv=h4mf(BEz`jtEe;em`ExesA9Igpue=T1iib*Rk9O zMvkfvES)Ar+MPkutr3bDUxHL(Ccar34b;0Nwi2`izAac<=41Jf`g#zHSmKV6^f_Ua zD_0PcOVG}KPG5}J;0XLWpu@;>-e1@p5))y(c(O7K(Le1-noZtFc3~~iTl? zj|f}D(O!=H+~urt2h#j}&{vbDGb-z|Hu?w}9DmU_-{3yA*3#HbQ_uY>WafY5)5xL^6zv-F=(WMRz%S_*BRiY- zXcah1jW&(3@=j(be#^%W!{47z{4XEr+kZe`bCqly_vtA;xKDEAwJrk;Q+}%ZS2H5^ zrwtB9fJnpD7K`pcr~ry|0p`nxC{%e3#=(MG;^4M8$R(Gng2@_a$fZ5~C+NBCZ;&gH zJ1tmEaxTpndCetk@Cr<%HREyASLZm*eu1Rjt+WmTt-Ij!D&6jv#7_b`f6C|BtITkB9R8zsK*H z!N@k0H8Hjm_ih?WJ%V_k|Jea#<=IzV&4_AX316v5m~0yQudwfWM_<>!S9~l zpYK1v|MGam<6f@ozMju>&hwmt2FgH!V$OO0=LWBy<)-b4$$K|xxGfp@wxC{6Y8=sZ zI)ybged0qS7u5~|9JKrG_ub{vSqlu7yfRe2d)M3(J-)26BPLtdIib=XtYCGbKUR3Z z=VmqA?p##e!Q&Zix#2q#GC>P}_2T-J15a=1&FV#q?&Ps7zpPA)8f_`3LK6eZg>N<5 zqi6e3CV`i2yX4CCuLtR5@a6_72OmA)v~BzNu7(RP%}G2QSN6+XY?L+gjbZRs8Cb=} zm9k8>72IsQrfTk_E_0>BN)(?Qld7*MtnPB0`!mPKoHXfu@v7Z?_dVapn)EXz=*tB+ z7Ycr}8~BM=p$?Sel(r8PrciuSX#zGi?n#CNv%k-t zxZx5d+f`)nReKO?IU(hvV=LcgpR!)_H&5MF)UC;>wpXgbHfquLf%cDXRzkK9UpZ-ADNoqH?r z+C%&g;m=+Ar;&kQ$Dz^bP|XGTjLj>>5N2AxC3nN`QdzAdA66{EI{t$}(gw3sAcd`J zlWTKfHpQy_aQcs1l~o>ochB!*(S-x*;=_~;Prbg8eo;s@3Ry^XtS35on-Btu1BZSS z{HD7-T%|_+-s~Srrp!u1{!Msc>lscsGl&y6e|kSC^Y`>9$`V*-2#-iRUKkD=9u$65 zwh{Uh-_v?{BSU)f3%TJ>+F;W+BA&98%X(M(^KnH}fw)K5w!jGY<>Sk*3 z6o-;6$&p`b&_%hsO%&P+mwxA9Ja^7cb@JSt0ZTHS`$}W0!{)jc+^t45L;RJ@>2=Ri zHScm!uVZ}f>WRlOS6{~NU~LW-g(*_5UEAGEPqhd#dS})Bjti>((a!T2Qkn1DekVH@ z;_At;PWb$;Wb}H20(%lQ^+vH*dQtO4brqbFjXub)^Soa@QZ8X&J&Z{v5#S`=HEc*F@`*FzTY+e2wfwHRi8QA`XRY+6a_4dzPYGkOgV#f^mPe(~$ zDpXcIVf?+p*X-d4WoBTnN3ruft*W}F z;rs0KN<8l!4=Hgj2YciB1{`Ve%i(~SKuX$R61lpKA~o^`(|4&>hxGfbuAex!32d6n@@Ql(vU02k~e*&eGfkb_Z#R5aNT;s5z&u0`Uk z_Q_!EB;UrnJU6{ukKAW!gzlc}1%AEd?6+WyNxrd&Bc^qlj(r=VqN>VK&6x}P@ofy> z*ctm7uFvAP&mFmQez?NTk|}IKal(0}wQh7>6OCZqIE@Z`l@oZh(jr~5^v{vIC1+Oo zx4TzJ2#-Ha*X|jOq3DE%2f7gE-UQc}Lz4)teKE&&=h)?3mzdX1IEk<~Do#tdz4=M- z*3Mb`TZ6&A%sSiEDczC*2~8mWq& zFJ_=XxFH+DbwQPN*TEhwfdRemmdEilxjZx@;qY)cfzLDWBbzgUNNNm%o=^PFC*1Qnp>gB3%rl6z*kvZZP@; zcIzv7(Sp>fAb;FfH!LQna~m(7I>DW`vUn?**Z1nr<_?buizuB%WzQ`u{~P9IkWQ)j zy{(rm2cr;k(7IAk_cA1nj|6D^wCjIW#{?%dBG|7W;dXWv!5pFN=;K7pr=ZCb83Tt; z+3ucRy_rr)c#-WXtZMUh?NuJ}Rmk}-G~vX1mJ|Cl>|!Nt74PITpPT6IGwSEGO-mgN z=!#G8Ib=RzN!1qhrUq@Td>$?@t3@BRg&7D1J!7Zm^Ixq)32?qVD`YKZlyD!X8LA8S z{$WUG)CqcCfn?lgjC0OQ{^Tk*qp(v{OLWIdgVxn%%bouIme2dse|vwaZq@zc=eljL z)pqPcr|t-V7IMmcX;v8E4?KslAC{vIyNKfr2g42T-AQO6Ejee>n6tpA(m1=I zoU@KN6#NPWdZu;R1_tA|gdAcnXlK*nD^E`mE0^o-sY9O>QF_NvxA3w*OX~L?_;hOV z^iB$p@11LaEPt3z0f97=r@;7?WT*6b!653|?Iv0Z7o4-GxaI*ZvW~mMckKrc%_Qjk z@SR`*COj1yWRb+t|9MpUh2dkS`ex5f(=EtrectTWo#&4rGap$j$WaQf!0b-P(`y0( z3N-T@pD%!bRySa1hscLr2jF&#PzYSX1}K;b6Y_)Xo0v=U8z66AFMihwBOjVA*80yZ zYtkUZq};--LnB~w0~7nH3$9T3rm5hkH=m!rqoFClxd2=L`P?WpwNys{a1J3OyfwKw z_6On2sl^f45OWF- z{lYHIY3nSo=M%K;Gm@KVbNc{s3%Rr*;qQC@6140WVGJ42!>OiTu2<|8x9_+ta5(J# zOIFu)E2atx1AT?TuXS(X4qBDQtoGb$*M8 z%GAr%lCNy%$^{mHKcM+7Yus@%%$Qj6vF~;fsilOlSp>Jmrm~nE{8efw2moo$X?qi(Nlm^Wt!^;joDGLoi^;Xq;xCGY^qI(Vif4%sdxtoX!vcwXP1r zO}bclkMDB2A~Hc2j#@P2e`Wdziv8reSO;C$Kl^iNx=^zoyW4Ewy*(P>whh@gah484 z!V2ab`r33TPLRG&Q)5kw#DNaogG=B9ZL)l_Ls)4!p=tp6`FmST^W78Rb0v^&dQb(K zQ|n0Lp)y1~D55#bna-+??cNv!S0V1v#6OgMjIh5L-V;^xWAidD-Ptep={|aPX|3K>va2iC( z!yPsAV&=p;XuK^~3<8j)09-;q#0ta*a#@!rShupgopEHh`J1tp97>TUP(09U=OMTGwMBj5t~YpZT+ zsL0YW*@5X4?7GKno2(5`k}qtB)g-;4fTBVWTTG%n_lErZ?=hu@?NRFHQjrL+Ey!)F z@EbSb<=;SSR~0vzxW$W%+cr_wBQA@@iKC z`-{op=H%VVd~!JwIg|pm$?8q1GXi!Ms{-21R%e`2qu_NnytD385g4h73km9a3Be(<>6eM=q~;|@&M1;I9tlS9Tx z-fpoO|IZp=$^2=y1@zk>O7&T&0(kNldK{UDkD<5$awX#g=^qjAA7-B52XRIk1iOC8 zo(qsK(Nmt z^+bwYCge~oI-bXQP0a)jWP#(4``j?6{D6*8HjZCVCTTYQ@0)Lk;QFlhM!unU!&4`9 z)v<5G-Dw(|mow)p5jCFLu%wM~wD!)r(f>Qw7_f;Ew*38niBc0VyN>@*o&zl(N#QJ^ zcUusXnn{{RGJnAIZ5)i11m6K}Xi91&f!9Ic@z=)x&Qhcn>?bPirXIqonk@go0363B z4p~lpgqTY=^r`s?rK#G0NTK8B5DcKr9`F$q!vg0z;6m`Kwgo^Kj)NDij=)Dl`d@jjAu=@+W>>ctDTYbiDM`QIGJ z$xzmWWQQL#e9bdn{+`uERa0p`Yh(wX=G7-vddxmdJp6Wm_DvNbE%nS)!oox3;iUGs zr3(7ml)4HK2RaXh%FNp%$$73D9Derm20Ij(g-d6~#%byRGa0s{qb{O*&xzJ&5 z8B-GNH)~4AYv_&AY!e7q%<%i0Y{~%goR+W@aMiEW$lxeo@E>gK-+PLb3cS@IoT#_C z^Gpsj+1_)<<#~#g7_H;hNpWkqVQ*Unf~ysjgZ>N&#`)a?ySK`HF2We;G(#OfJi-^uN=gLhY1eH zanIaDKNjVAj7Z3VX@L(YgRl!QBK3Eb$QzJ@y~KKlRY*)C7PGtaAV>wUA2JU#YAp#| ze&~SADERfLvmYvh3aNBW6RgiD$g~9d=?&pP4Swf-(AwW$;L7*jhYT*8F>r9o06V&%FILnMa_ZK|ZSU)& zQHDz+2CJV{T)G#tb&h)SPF_S^K*{i-sGHEtvqxBHtG&b5^A^eWF55}@EL~Sy5!o1_ z<8Q{E$uM$*AX~V$$hnsJo64WLpFBC9X93)%B4yd!YYm>DrJ~hFhFt)8?M!;O4UfxyV@3gH z7X9`EHK!8^D==Xk^W0W_QInuD7`^NQL}JuCV45(~%|ZKmF=VHf?W|nc+;YSJ3X_2 zaebfM<{i5Pw?DJyhkMF=QP69MUjv`~l~0cxvy(X(e1kG@$jaCxS>3CxSzW9v-Ahqg zR^Uwxy12Fb@~FItw}+eeL}+MJj^Le}gUb3kXY!9P)7TEkl+|%(=%#?A@;P z-+5Vu``q_I_7xcFdJVxf7o*fuUEXAQVa+@dyKvfVKH&bmGYN@rYY;p$@{p%qVKg`V zD*Vz)8u7a2=o*^zcS!8am=y&o!%6SpfJ6C{pO1$btxA4&uCD6ikDEh$L= z=ic@HR{%T>cB*V%8>Ijm;$GuxTP^o^_!g4LYU~r&xC5qRTg~F7MRd_-W&&Po!og=- zVjD9S7OHkaw-&}kau-y4%oA5OavK=Y`^PV`H1*r|HlDBNcBb3d6UzuP;{GuG*$G|x zqAAA`;7p0oLK?r)v;QsSl-d=FP6)@;&LwT#l<+I&IBc1-)Ull?ius_g{at-XCm=TE zT=Bu~YnztOiita3s+mhX6l$I|yY-sAM3>;kxX!w7154 z^Zo3M)PVcR%xXf5pZAinFa7Qs?bh3FM(E%BnL2X^8r1v3t!Te=HXqx^PYi>Kna>ZS zy_pw2nic!mo%AQs-C4UhVL{eE#qBz-@%s5FU&py~aJ4QF!+f6o_;_CZH3=L-=L=E? zup<9NB*EBE;rIzV`A$S6e2%OB4-*NN4ScEn@O~M@VAdGq2Ve=~DZvrIS-XUHpe>Gp z-JN0Xl&|DHg&*-O{ay1&7G<(eyV*FSoAVM~;ar>eR*K%dBx`cSAVj2|e>}ywru6l^ zlNVejcatdbc|HZNIHg~Y*&cdfyUTghH04%Fmsy>t9keWLT?gVEH0&vfln(~!hZ;QI z@mk_zLVKCuC5O2dGinU>zb5xqZ#>5HS=pzxDqM)|aCxHOkcmYZ+O4BRKhi^>Y8Cx z!>Q@c(*$E~VEX1v(_54=w!azGG$B!=(ycZwGeeF{^Zn4PW-FrTT+$QY*FGyzM%Lai zR8-jI-aIII_Y_^BH54646_VQ|8%0IzoUQq!O^NmN)}cOJFTypu`*PWprOMAPaR$H9`46~uEfUnkNEha=Yl~_ z+oUY5v5P|USTM{bxcOFK&O09tA`E0=jB)zUJJLYh4gUwh>Y4cv#~c7&ataPP4TSy8 z*ch35bIOAB@&YIw{uFcg_36mQy=-?8_Z6bL*W8aAIf7}av6QvyhdCH!Pf`jh;ZBNY zZ7vchGv)Jd@kmoNMXEdG{;-7=Om{}Q>`8}5SN0vYbaEM#&8JhkzNTQi5ChW%=>6vA zk7YYu7YTieE+z)pdixKNR?b7pIVeiqw$fmZTZmPcrCO!$rMu=XhUOMXWr~$__?)PI zLl!fZ&3PkJW9epk8`QyY_ac5K*T1)2y!X>$&v)-Ii;}*wd2%OpMRs7rO^|m27XI!> z&oksDv9FHj6gh4u5ldw1DYDbtfy^J>7m_t$%*@{6Cber`_7jS4Ci&%I^3%7KH(`q5 z80<7c9-udVbrw7(q@~Et!9U%Nk|T*aOm_=Y5QgNR?Qe?lW%D6%a$P5bLMA7F*pvDxu~Lz0(?1(F8p97-;#O7WcgmVOOSF~zyRP{uI*Yo_{Z<;C z_|e!Gh=(jF2XdqEGjpPmtWnd_Q@63nHXcIlUj!)?*(yW4>NWm>|J8d6Tke4}-A2~A zO0`gXFcn`FL%g)@NxmUbY!;Glh$YlSni-6h$~f?R(vHPgH=

o7a?iW+ChDm7h1x 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

O%q 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 gfu;|Mj?8~e;{z)c^nh literal 0 HcmV?d00001 From 0ff2fdc046c6a0648e66f0203e3f4e5fa3a9f810 Mon Sep 17 00:00:00 2001 From: John Deck Date: Mon, 22 Mar 2021 10:48:54 -0700 Subject: [PATCH 02/17] adding plate editor --- wiki_images/Plate_editor.jpg | Bin 0 -> 40808 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wiki_images/Plate_editor.jpg diff --git a/wiki_images/Plate_editor.jpg b/wiki_images/Plate_editor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35e4b732d13c29acdd62d7ade686ee9da23ff6fe GIT binary patch literal 40808 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 z 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 Date: Tue, 9 Aug 2022 16:00:57 -0700 Subject: [PATCH 03/17] updating help email --- .../src/com/biomatters/plugins/biocode/server/Info.java | 2 +- biocode-server/web/partials/about.html | 2 +- development.md | 2 +- doc/readme.html | 2 +- doc/release_notes.txt | 2 +- readme.md | 2 +- src/com/biomatters/plugins/biocode/BiocodePlugin.java | 2 +- .../plugins/biocode/labbench/connection/ConnectionManager.java | 2 +- .../plugins/biocode/labbench/reporting/ReportGenerator.java | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/biocode-server/src/com/biomatters/plugins/biocode/server/Info.java b/biocode-server/src/com/biomatters/plugins/biocode/server/Info.java index 6901d068e..9d6f7d246 100644 --- a/biocode-server/src/com/biomatters/plugins/biocode/server/Info.java +++ b/biocode-server/src/com/biomatters/plugins/biocode/server/Info.java @@ -77,7 +77,7 @@ public String getErrors() { if(errors != null) { return "

The server configuration file is located at: " + LIMSInitializationListener.getPropertiesFile().getAbsolutePath() + "

" + - "

Please report any errors to support@mooreabiocode.org

" + + "

Please report any errors to geome.help@gmail.com

" + "

" + errors + "

"; } return ""; diff --git a/biocode-server/web/partials/about.html b/biocode-server/web/partials/about.html index ec1364b13..7d3be285b 100644 --- a/biocode-server/web/partials/about.html +++ b/biocode-server/web/partials/about.html @@ -10,7 +10,7 @@ A user community, and technical support is available from
http://connect.barcodeoflife.org/group/lims Here, you can engage with the wider community, get help from experienced users, and make suggestions about how to improve the software. If you have and questions or suggestions that you don't want to post to the community, you can email - support@mooreabiocode.org + geome.help@gmail.com

\ No newline at end of file diff --git a/development.md b/development.md index 536b45af0..003961aac 100644 --- a/development.md +++ b/development.md @@ -53,7 +53,7 @@ depends on some Geneious core classes and this is not reflected in the Ivy confi In the gradle build, the complete Geneious runtime is downloaded and the required libraries are extracted from it. ## Contributing -Please contact support@mooreabiocode.org +Please contact geome.help@gmail.com ## Biocode LIMS Server The Biocode LIMS server is an extension to the original LIMS that adds security, user management, access control and diff --git a/doc/readme.html b/doc/readme.html index c62b83ebb..6aa3e3f85 100644 --- a/doc/readme.html +++ b/doc/readme.html @@ -16,6 +16,6 @@

Getting Help

A great source of help can be found on the discussion forum at http://connect.barcodeoflife.net/group/lims or you can email -support@mooreabiocode.org.

+geome.help@gmail.com.

diff --git a/doc/release_notes.txt b/doc/release_notes.txt index 0391ba246..1870aa3ae 100644 --- a/doc/release_notes.txt +++ b/doc/release_notes.txt @@ -174,7 +174,7 @@ Beta release of 2.8.11. '''Additional Notes''' This version will apply a schema fix to MySQL LIMS databases which may take anywhere between a minute and an hour to perform. The amount of time depends on the number of traces stored in the database. If your database has over 30,000 traces -then it is recommended that an administrator perform it beforehand. Contact support@mooreabiocode.org for instructions. +then it is recommended that an administrator perform it beforehand. Contact geome.help@gmail.com for instructions. ==Biocode Plugin 2.7.1 - 18 July 2014== * Fixed a problem where seqeunces could be downloaded without annotated FIMS data. diff --git a/readme.md b/readme.md index d41e73301..024cebcc1 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,7 @@ The Biocode LIMS is a Geneious plugin that comprises everything you need to mana * Official releases are available from our [releases page](https://github.com/biocodellc/biocode-lims/releases) * Official [Wiki Page](https://github.com/biocodellc/biocode-lims/wiki) for more information including the user guide. -* Support email support@mooreabiocode.org +* Support email geome.help@gmail.com * Information for developers on contributing to the Biocode LIMS plugin is on our [development page](https://github.com/biocodellc/biocode-lims/blob/develop/development.md) diff --git a/src/com/biomatters/plugins/biocode/BiocodePlugin.java b/src/com/biomatters/plugins/biocode/BiocodePlugin.java index 77be30eca..bdd2b0082 100644 --- a/src/com/biomatters/plugins/biocode/BiocodePlugin.java +++ b/src/com/biomatters/plugins/biocode/BiocodePlugin.java @@ -48,7 +48,7 @@ public class BiocodePlugin extends GeneiousPlugin { private static GeneiousActionOptions superBiocodeAction; public static final String PLUGIN_VERSION = "3.0.15"; - public static final String SUPPORT_EMAIL = "support@mooreabiocode.org"; + public static final String SUPPORT_EMAIL = "geome.help@gmail.com"; public static GeneiousActionOptions getSuperBiocodeAction() { if (superBiocodeAction == null) { diff --git a/src/com/biomatters/plugins/biocode/labbench/connection/ConnectionManager.java b/src/com/biomatters/plugins/biocode/labbench/connection/ConnectionManager.java index b912c5312..75f7abb97 100644 --- a/src/com/biomatters/plugins/biocode/labbench/connection/ConnectionManager.java +++ b/src/com/biomatters/plugins/biocode/labbench/connection/ConnectionManager.java @@ -384,7 +384,7 @@ public void fromXML(Element element) throws XMLSerializationException { e1.printStackTrace(writer); Dialogs.DialogOptions dialogOptions = new Dialogs.DialogOptions(Dialogs.OK_ONLY, "Error restoring Connection"); dialogOptions.setMoreOptionsButtonText("Show details", "Hide details"); - Dialogs.showMoreOptionsDialog(dialogOptions, "There was an error restoring one or more of your saved connections from disk. The affected connections will not be loaded. Please send the detailed report to support@mooreabiocode.org", stringWriter.toString()); + Dialogs.showMoreOptionsDialog(dialogOptions, "There was an error restoring one or more of your saved connections from disk. The affected connections will not be loaded. Please send the detailed report to geome.help@gmail.com", stringWriter.toString()); } } selectedConnection = Integer.parseInt(element.getChildText("SelectedConnection")); diff --git a/src/com/biomatters/plugins/biocode/labbench/reporting/ReportGenerator.java b/src/com/biomatters/plugins/biocode/labbench/reporting/ReportGenerator.java index e0a8105bf..312f79d49 100644 --- a/src/com/biomatters/plugins/biocode/labbench/reporting/ReportGenerator.java +++ b/src/com/biomatters/plugins/biocode/labbench/reporting/ReportGenerator.java @@ -279,7 +279,7 @@ public void run() { BiocodeUtilities.displayExceptionDialog("Error creating Chart", "There has been an " + "error creating your report:

"+e1.getMessage()+"

If you believe " + "that this is a bug, please click Show Details below, and send the text along " + - "with a screenshot of your report options to support@mooreabiocode.org.", e1, reportCombo); + "with a screenshot of your report options to geome.help@gmail.com.
", e1, reportCombo); setReportPanel(null); progress.setComplete(); } catch(Throwable e1) { From e06fa5b86067c9339974644b4bcf48ab4cc835bd Mon Sep 17 00:00:00 2001 From: John Deck Date: Wed, 24 Aug 2022 16:34:43 -0700 Subject: [PATCH 04/17] adding tentative feature --- .../plugins/biocode/BiocodePlugin.java | 5 +- .../AddAssemblyResultsToLimsOperation.java | 59 ++++++++++++------- .../lims/AddAssemblyResultsToLimsOptions.java | 6 +- .../biocode/labbench/lims/LIMSConnection.java | 4 +- .../labbench/lims/SqlLimsConnection.java | 6 +- .../rest/client/ServerLimsConnection.java | 2 +- ...ReverseAssemblySequencesOperationTest.java | 2 +- 7 files changed, 50 insertions(+), 34 deletions(-) diff --git a/src/com/biomatters/plugins/biocode/BiocodePlugin.java b/src/com/biomatters/plugins/biocode/BiocodePlugin.java index bdd2b0082..e1a3e1416 100644 --- a/src/com/biomatters/plugins/biocode/BiocodePlugin.java +++ b/src/com/biomatters/plugins/biocode/BiocodePlugin.java @@ -375,8 +375,9 @@ public DocumentOperation[] getDocumentOperations() { new VerifyTaxonomyOperation(), new AnnotateLimsDataOperation(), new AnnotateFimsDataOperation(), - new AddAssemblyResultsToLimsOperation(true, false), - new AddAssemblyResultsToLimsOperation(false, false), + new AddAssemblyResultsToLimsOperation("passed", false), + new AddAssemblyResultsToLimsOperation("failed", false), + new AddAssemblyResultsToLimsOperation("tentative", false), new MarkSequencesAsSubmittedInLimsOperation(), new GenerateBOLDTraceSubmissionOperation(), new ReverseAssemblySequencesOperation() diff --git a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java index ee87b8722..af55fda10 100644 --- a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java +++ b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java @@ -32,28 +32,45 @@ */ public class AddAssemblyResultsToLimsOperation extends DocumentOperation { - private final boolean isPass; + private final String passedString; private final boolean isAutomated; - public AddAssemblyResultsToLimsOperation(boolean isPass, boolean isAutomated) { - this.isPass = isPass; + public AddAssemblyResultsToLimsOperation(String passedString, boolean isAutomated) { + this.passedString = passedString; this.isAutomated = isAutomated; } public GeneiousActionOptions getActionOptions() { - GeneiousActionOptions geneiousActionOptions = new GeneiousActionOptions(isPass ? "Mark as Pass in LIMS..." : "Mark as Fail in LIMS...") - .setInPopupMenu(true, isPass ? 0.65 : 0.66).setProOnly(true); + double thisPassDouble = 0.65; + String thisPassDescription = "" + + "Mark as Pass in LIMS...."; + if (passedString == "tentative") { + thisPassDescription = "Mark as Tentative in LIMS...."; + thisPassDouble = 0.66; + } else if (passedString == "failed") { + thisPassDescription = "Mark as Fail in LIMS...."; + thisPassDouble = 0.67; + } + + GeneiousActionOptions geneiousActionOptions = new GeneiousActionOptions(thisPassDescription) + .setInPopupMenu(true, thisPassDouble).setProOnly(true); return GeneiousActionOptions.createSubmenuActionOptions(BiocodePlugin.getSuperBiocodeAction(), geneiousActionOptions); } public String getHelp() { - return "Select one or more sequences, contigs or alignments of contigs to mark them as " + (isPass ? "passed" : "failed") + " on the relevant workflows in " + + return "Select one or more sequences, contigs or alignments of contigs to mark them as " + passedString + " on the relevant workflows in " + "the LIMS (labratory information management system)."; } @Override public String getUniqueId() { - return isPass ? "MarkAssemblyAsPassInLims" : "MarkAssemblyAsFailInLims"; + if (passedString == "passed") { + return "MarkAssemblyAsPassInLims"; + } else if (passedString == "failed") { + return "MarkAssemblyAsFailInLims"; + } else { + return "MarkAssemblyAsTentativeInLims"; + } } public DocumentSelectionSignature[] getSelectionSignatures() { @@ -79,7 +96,7 @@ public Options getOptions(AnnotatedPluginDocument... documents) throws DocumentO throw new DocumentOperationException(BiocodeUtilities.NOT_CONNECTED_ERROR_MESSAGE); } try { - return new AddAssemblyResultsToLimsOptions(documents, isPass); + return new AddAssemblyResultsToLimsOptions(documents, passedString); } catch (DatabaseServiceException e) { throw new DocumentOperationException(e.getMessage(), e); } @@ -102,7 +119,7 @@ public Map getAssemblyResults(AnnotatedPluginDocument[] ann break; } - markDocumentPassedOrFailed(isPass, annotatedDocument); + markDocumentPassedOrFailed(passedString, annotatedDocument); AssemblyResult assemblyResult = new AssemblyResult(); @@ -131,7 +148,7 @@ public Map getAssemblyResults(AnnotatedPluginDocument[] ann if (consensus == null && SequenceAlignmentDocument.class.isAssignableFrom(annotatedDocument.getDocumentClass())) { consensus = (SequenceDocument) BiocodeUtilities.getConsensusSequence(annotatedDocument, options.getConsensusOptions()).getDocument(); } - if (isPass && consensus == null) { + if (passedString == "passed" && consensus == null) { assert false: "there should be a consensus here!"; } int[] qualities = null; @@ -164,11 +181,11 @@ else if(consensus != null) { * Saves the reaction status to a field on the document. This should handle consensus alignments, contigs, and * individual sequences (marking only the traces) * - * @param isPass pass or fail + * @param passedString pass or fail * @param document the document to mark * @throws DocumentOperationException */ - private void markDocumentPassedOrFailed(boolean isPass, AnnotatedPluginDocument document) throws DocumentOperationException{ + private void markDocumentPassedOrFailed(String passedString, AnnotatedPluginDocument document) throws DocumentOperationException{ if(SequenceAlignmentDocument.class.isAssignableFrom(document.getDocumentClass())) { SequenceAlignmentDocument alignment = (SequenceAlignmentDocument)document.getDocument(); for(int i=0; i < alignment.getNumberOfSequences(); i++) { @@ -177,20 +194,20 @@ private void markDocumentPassedOrFailed(boolean isPass, AnnotatedPluginDocument } AnnotatedPluginDocument reference = alignment.getReferencedDocument(i); if(reference != null) { - markDocumentPassedOrFailed(isPass, reference); + markDocumentPassedOrFailed(passedString, reference); } } if (alignment.isContig()) { - updateReactionStatusField(isPass, document); + updateReactionStatusField(passedString, document); } } else { - updateReactionStatusField(isPass, document); + updateReactionStatusField(passedString, document); } } - private void updateReactionStatusField(boolean isPass, AnnotatedPluginDocument document) { - document.setFieldValue(BiocodeUtilities.REACTION_STATUS_FIELD, isPass ? "passed" : "failed"); + private void updateReactionStatusField(String passField, AnnotatedPluginDocument document) { + document.setFieldValue(BiocodeUtilities.REACTION_STATUS_FIELD, passField); document.save(); } @@ -537,7 +554,7 @@ public List performOperation(AnnotatedPluginDocument[] seq.numberOfAmbiguities = assemblyResult.ambiguities; seq.editRecord = assemblyResult.editRecord; - int seqId = limsConnection.addAssembly(isPass, options.getNotes(), options.getTechnician(), + int seqId = limsConnection.addAssembly(passedString, options.getNotes(), options.getTechnician(), options.getFailureReason(), options.getFailureNotes(), options.isAddChromatograms(), seq, reactionIds, progress); if(progress.isCanceled()) { return null; @@ -551,7 +568,7 @@ public List performOperation(AnnotatedPluginDocument[] } } - attachChromats(limsConnection, isPass, options.isAddChromatograms(), assemblyResult, chromatogramExportOperation); + attachChromats(limsConnection, passedString, options.isAddChromatograms(), assemblyResult, chromatogramExportOperation); } } catch (DatabaseServiceException e) { throw new DocumentOperationException("Failed to mark as pass/fail in LIMS: " + e.getMessage(), e); @@ -574,7 +591,7 @@ public List performOperation(AnnotatedPluginDocument[] } private static void attachChromats(LIMSConnection limsConnection, - boolean isPass, + String passedString, boolean addChromatograms, AddAssemblyResultsToLimsOperation.AssemblyResult result, BatchChromatogramExportOperation chromatogramExportOperation) @@ -605,7 +622,7 @@ private static void attachChromats(LIMSConnection limsConnection, } entry.getKey().addSequences(traces); } - entry.getKey().getOptions().setValue(ReactionOptions.RUN_STATUS, isPass ? ReactionOptions.PASSED_VALUE : ReactionOptions.FAILED_VALUE); + entry.getKey().getOptions().setValue(ReactionOptions.RUN_STATUS, passedString); } } catch (IOException e) { throw new DatabaseServiceException(e, "Failed to create temporary files and directories to export traces: " + e.getMessage(), false); diff --git a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOptions.java b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOptions.java index f6e6e28f9..ed46b7f11 100644 --- a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOptions.java +++ b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOptions.java @@ -24,7 +24,7 @@ public class AddAssemblyResultsToLimsOptions extends Options { private InputType inputType; - public AddAssemblyResultsToLimsOptions(AnnotatedPluginDocument[] documents, boolean passed) throws DocumentOperationException, DatabaseServiceException { + public AddAssemblyResultsToLimsOptions(AnnotatedPluginDocument[] documents, String passedString) throws DocumentOperationException, DatabaseServiceException { inputType = InputType.determineInputType(documents); if(inputType == InputType.MIXED) { throw new DocumentOperationException("This operation only works on documents of the same type. " + @@ -40,7 +40,7 @@ public AddAssemblyResultsToLimsOptions(AnnotatedPluginDocument[] documents, bool } } - if(passed) { + if(passedString == "passed") { String sequenceOrSequences = documents.length > 1 || inputType == InputType.ALIGNMENT_OF_CONSENSUS ? "sequences" : "sequence"; StringBuilder message = new StringBuilder("The "); @@ -63,7 +63,7 @@ public AddAssemblyResultsToLimsOptions(AnnotatedPluginDocument[] documents, bool Options details = new Options(AddAssemblyResultsToLimsOptions.class); details.addStringOption("technician", "Your name", ""); - if(!passed) { + if(passedString == "failed") { reasonOption = FailureReason.addToOptions(details); details.addMultipleLineStringOption("reasonDetails", "Reason Details", "", 4, true); } diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java index cea502b8a..86b1c5f2b 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java @@ -67,7 +67,7 @@ public abstract class LIMSConnection { TABLE_TO_FIELDS.put("extraction", Arrays.asList(EXTRACTION_ID_FIELD, EXTRACTION_BARCODE_FIELD, EXTRACTION_DATE_FIELD)); } - public static final DocumentField SEQUENCE_PROGRESS = DocumentField.createEnumeratedField(new String[]{"passed", "failed"}, "Sequence Progress", "Whether the sequence passed or failed sequencing and assembly", "assembly.progress", true, false); + public static final DocumentField SEQUENCE_PROGRESS = DocumentField.createEnumeratedField(new String[]{"passed", "failed", "tentative"}, "Sequence Progress", "Whether the sequence passed or failed sequencing and assembly", "assembly.progress", true, false); public static final DocumentField SEQUENCE_SUBMISSION_PROGRESS = DocumentField.createEnumeratedField(new String[]{"Yes", "No"}, "Sequence Submitted", "Indicates whether this sequence has been submitted to a sequence database (e.g. Genbank)", "assembly.submitted", false, false); public static final DocumentField EDIT_RECORD = DocumentField.createStringField("Edit Record", "A record of edits made to this sequence", "assembly.editRecord", false, false); @@ -81,7 +81,7 @@ public abstract class LIMSConnection { String serverUrn; - public abstract int addAssembly(boolean isPass, String notes, String technician, FailureReason failureReason, String failureNotes, boolean addChromatograms, AssembledSequence seq, List reactionIds, Cancelable cancelable) throws DatabaseServiceException; + public abstract int addAssembly(String isPass, String notes, String technician, FailureReason failureReason, String failureNotes, boolean addChromatograms, AssembledSequence seq, List reactionIds, Cancelable cancelable) throws DatabaseServiceException; public abstract void savePlates(List plates, ProgressListener progress) throws BadDataException, DatabaseServiceException; public abstract void saveReactions(Reaction[] reactions, Reaction.Type type, ProgressListener progress) throws DatabaseServiceException; diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java index e3948f4b3..29c2da619 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java @@ -23,11 +23,9 @@ import jebl.util.ProgressListener; import javax.sql.DataSource; -import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.lang.reflect.InvocationTargetException; -import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.sql.*; @@ -2899,7 +2897,7 @@ public void saveReactions(Reaction[] reactions, Reaction.Type type, ProgressList } } - public int addAssembly(boolean isPass, String notes, String technician, FailureReason failureReason, + public int addAssembly(String passedString, String notes, String technician, FailureReason failureReason, String failureNotes, boolean addChromatograms, AssembledSequence seq, List reactionIds, Cancelable cancelable) throws DatabaseServiceException { PreparedStatement statement = null; @@ -2920,7 +2918,7 @@ public int addAssembly(boolean isPass, String notes, String technician, FailureR } statement.setString(1, seq.extractionId); statement.setInt(2, seq.workflowId); - statement.setString(3, isPass ? "passed" : "failed"); + statement.setString(3, passedString); if (seq.consensus == null) { statement.setNull(4, Types.LONGVARCHAR); } else { diff --git a/src/com/biomatters/plugins/biocode/labbench/rest/client/ServerLimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/rest/client/ServerLimsConnection.java index 3f9cdc13e..08439f93e 100644 --- a/src/com/biomatters/plugins/biocode/labbench/rest/client/ServerLimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/rest/client/ServerLimsConnection.java @@ -274,7 +274,7 @@ public void setAssemblySequences(Map assemblyIDToAssemblySequen } @Override - public int addAssembly(boolean isPass, String notes, String technician, FailureReason failureReason, String failureNotes, boolean addChromatograms, AssembledSequence seq, List reactionIds, Cancelable cancelable) throws DatabaseServiceException { + public int addAssembly(String isPass, String notes, String technician, FailureReason failureReason, String failureNotes, boolean addChromatograms, AssembledSequence seq, List reactionIds, Cancelable cancelable) throws DatabaseServiceException { //not sure if this need batch try { WebTarget resource = target.path("sequences"). diff --git a/test/com/biomatters/plugins/biocode/ReverseAssemblySequencesOperationTest.java b/test/com/biomatters/plugins/biocode/ReverseAssemblySequencesOperationTest.java index e626908fb..562ddae59 100644 --- a/test/com/biomatters/plugins/biocode/ReverseAssemblySequencesOperationTest.java +++ b/test/com/biomatters/plugins/biocode/ReverseAssemblySequencesOperationTest.java @@ -36,7 +36,7 @@ public void testReverseSequence() throws DocumentOperationException, DatabaseSer LIMSConnection activeLIMSConnection = BiocodeService.getInstance().getActiveLIMSConnection(); saveExtractionPCRAndForwardCycleSequencingPlatesToDatabase(BiocodeService.getInstance(), extractionID, locus); - activeLIMSConnection.addAssembly(true, "", "", null, "", false, createAssembledSequenceWithSuppliedFieldValuesAndZeroOrEmptyValuesForRestOfFields(assemblyID, workflowID, locus, sequence), Arrays.asList(assemblyID), ProgressListener.EMPTY); + activeLIMSConnection.addAssembly("passed", "", "", null, "", false, createAssembledSequenceWithSuppliedFieldValuesAndZeroOrEmptyValuesForRestOfFields(assemblyID, workflowID, locus, sequence), Arrays.asList(assemblyID), ProgressListener.EMPTY); AnnotatedPluginDocument annotatedSequenceDocument = DocumentUtilities.createAnnotatedPluginDocument(new DefaultNucleotideSequence("", "", sequence, new Date())); annotatedSequenceDocument.setFieldValue(LIMSConnection.SEQUENCE_ID, 1); From fcedf82a1ce2c27a3744465ba1ccbe9eb6ea399a Mon Sep 17 00:00:00 2001 From: John Deck Date: Thu, 1 Sep 2022 11:48:32 -0700 Subject: [PATCH 05/17] updating error message to include tentative as well as failed --- .../plugins/biocode/labbench/lims/SqlLimsConnection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java index 29c2da619..8c6ecfcc6 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java @@ -3472,7 +3472,7 @@ public void setSequenceStatus(boolean submitted, List ids) throws Datab int count = set.getInt(1); if (count < ids.size()) { - throw new DatabaseServiceException("Some of the sequences you are marking are either not present in the database, or are marked as failed. Please make sure that the sequences are present, and are passed before marking as submitted.", false); + throw new DatabaseServiceException("Some of the sequences you are marking are either not present in the database, or are marked as failed or tentative. Please make sure that the sequences are present, and are passed before marking as submitted.", false); } StringBuilder updateString = new StringBuilder("UPDATE assembly SET submitted = ? WHERE id IN "); From e7a555b6f67f3cef84fe21baba6db9eea13c00f8 Mon Sep 17 00:00:00 2001 From: John Deck Date: Fri, 11 Nov 2022 12:02:29 -0800 Subject: [PATCH 06/17] v3.0.16 commit messages --- PluginVersions.xml | 6 +++--- build.gradle | 2 +- src/com/biomatters/plugins/biocode/BiocodePlugin.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/PluginVersions.xml b/PluginVersions.xml index 8305287e7..315009e7e 100644 --- a/PluginVersions.xml +++ b/PluginVersions.xml @@ -1,7 +1,7 @@ - 3.0.15 - https://github.com/biocodellc/biocode-lims/releases/download/3.0.15/BiocodePlugin_3_0_15.gplugin - ==Biocode Plugin 3.0.15 - -24 Feb 2021== + 3.0.16 + https://github.com/biocodellc/biocode-lims/releases/download/3.0.16/BiocodePlugin_3_0_16.gplugin + ==Biocode Plugin 3.0.16 - -24 Aug 2022== diff --git a/build.gradle b/build.gradle index 431dcb052..ddc2a985f 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ plugins { apply plugin: "java" apply plugin: "idea" -version = '3.0.15' +version = '3.0.16' defaultTasks 'createPlugin'; diff --git a/src/com/biomatters/plugins/biocode/BiocodePlugin.java b/src/com/biomatters/plugins/biocode/BiocodePlugin.java index e1a3e1416..a0c9cad5d 100644 --- a/src/com/biomatters/plugins/biocode/BiocodePlugin.java +++ b/src/com/biomatters/plugins/biocode/BiocodePlugin.java @@ -47,7 +47,7 @@ public class BiocodePlugin extends GeneiousPlugin { } private static GeneiousActionOptions superBiocodeAction; - public static final String PLUGIN_VERSION = "3.0.15"; + public static final String PLUGIN_VERSION = "3.0.16"; public static final String SUPPORT_EMAIL = "geome.help@gmail.com"; public static GeneiousActionOptions getSuperBiocodeAction() { From c5e92796d182212afaa652e1dd5ad07fccd7fd03 Mon Sep 17 00:00:00 2001 From: John Deck Date: Fri, 11 Nov 2022 12:05:11 -0800 Subject: [PATCH 07/17] updating connection message to GEOME FIMS to be more explicit about possible reasons for failure --- .../biocode/labbench/fims/geome/geomeFIMSConnection.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java index b3363dc29..2be4387fe 100644 --- a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java @@ -91,7 +91,9 @@ public void _connect(Options options) throws ConnectionException { } } catch (Exception e) { - throw new ConnectionException("Unable to connect to GeOMe: " + e.getStackTrace()); + throw new ConnectionException("Unable to retrieve projects from GEOME. This may be due either to " + + "an invalid username/password combination or the user has not opted to retrieve public projects " + + "and does not have access to any private projects " + e.getStackTrace()); } } From 95710b8ef30c6a711c10c3b52dc01c015013b045 Mon Sep 17 00:00:00 2001 From: John Deck Date: Fri, 11 Nov 2022 12:06:42 -0800 Subject: [PATCH 08/17] Set forward and reverse primer names to temporary names if they are null --- .../bold/GenerateBOLDTraceSubmissionOperation.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/biomatters/plugins/biocode/submission/bold/GenerateBOLDTraceSubmissionOperation.java b/src/com/biomatters/plugins/biocode/submission/bold/GenerateBOLDTraceSubmissionOperation.java index ecdfb7460..3f56fa5b3 100644 --- a/src/com/biomatters/plugins/biocode/submission/bold/GenerateBOLDTraceSubmissionOperation.java +++ b/src/com/biomatters/plugins/biocode/submission/bold/GenerateBOLDTraceSubmissionOperation.java @@ -114,6 +114,7 @@ public void performOperation(AnnotatedPluginDocument[] annotatedDocuments, Progr throw new DocumentOperationException("Could not find any primer information for your traces. " + "This could be because they are not annotated with LIMS information or that matching reactions could not be found in the current LIMS."); } + Set docsMissingPrimers = new HashSet(); for (AnnotatedPluginDocument document : annotatedDocuments) { if(traceEntries.get(document) == null) { @@ -183,6 +184,14 @@ private static RenamingOptions.RenameMap askUserAboutRenamingPrimers(Collection< Set primers = new HashSet(); Set loci = new HashSet(); for (TraceInfo value : values) { + // Set forward and reverse primer names to temporary names if they are null + if (value.forwardPcrPrimer == null) { + value.forwardPcrPrimer= "ENTER FORWARD PRIMER"; + } + if (value.reversePcrPrimer == null) { + value.reversePcrPrimer = "ENTER REVERSE PRIMER"; + } + primers.add(value.forwardPcrPrimer); primers.add(value.reversePcrPrimer); if(!value.sequencingPrimer.isEmpty()) { // Might be empty since it's a non required field From 2f30d0a479708fd75d5f1576b3800a37574195e5 Mon Sep 17 00:00:00 2001 From: John Deck Date: Tue, 15 Nov 2022 10:44:25 -0800 Subject: [PATCH 09/17] upgraded development environment to work with java 11 and geneious prime 2022.2.2, includes obsoleting dynamic class loading and using packaged dbcp package in SqlLimsConnection class --- build.gradle | 7 +- .../labbench/lims/LocalLIMSConnection.java | 2 +- .../labbench/lims/MysqlLIMSConnection.java | 4 +- .../labbench/lims/SqlLimsConnection.java | 87 ++++--------------- 4 files changed, 23 insertions(+), 77 deletions(-) diff --git a/build.gradle b/build.gradle index ddc2a985f..e91ae9c6f 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,8 @@ ext { shortName = "BiocodePlugin" pluginName = "com.biomatters.plugins.biocode." + shortName //pluginName = shortName + version - geneiousPublicAPIVersion = "11.1.5" + geneiousPublicAPIVersion = "2022.2.2" + //geneiousPublicAPIVersion = "11.1.5" //geneiousPublicAPIVersion = "2019.1.1" //geneiousPublicAPIVersion = "9.0.5" pluginDistFilename = "${shortName}_" + version.replaceAll("\\.", "_") + ".gplugin" @@ -150,8 +151,8 @@ jar { } compileJava { - sourceCompatibility "1.8" - targetCompatibility "1.8" + sourceCompatibility "11" + targetCompatibility "11" } sourceSets { diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/LocalLIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/LocalLIMSConnection.java index f077bfb70..a904d33f9 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/LocalLIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/LocalLIMSConnection.java @@ -58,7 +58,7 @@ public javax.sql.DataSource connectToDb(Options connectionOptions) throws Connec throw new ConnectionException(e.getMessage(), e); } String connectionString = "jdbc:hsqldb:file:" + path + ";shutdown=true"; - return createBasicDataSource(connectionString, BiocodeService.getInstance().getLocalDriver(), null, null); + return createBasicDataSource(connectionString, null, null); } static String getDbPath(String newDbName) throws IOException { diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/MysqlLIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/MysqlLIMSConnection.java index 61dd3f0ec..803ffb016 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/MysqlLIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/MysqlLIMSConnection.java @@ -6,6 +6,7 @@ import com.biomatters.plugins.biocode.labbench.ConnectionException; import com.biomatters.plugins.biocode.labbench.PasswordOptions; import com.biomatters.plugins.biocode.utilities.PasswordOption; +import org.apache.commons.dbcp.BasicDataSource; import javax.naming.NamingException; import javax.sql.DataSource; @@ -45,7 +46,8 @@ public DataSource connectToDb(Options LIMSOptions) throws ConnectionException { String connectionString = "jdbc:mysql://" + serverUrn + "/" + schema; serverUrn += "/" + schema; String password = ((PasswordOption) LIMSOptions.getOption("password")).getPassword(); - return createBasicDataSource(connectionString, BiocodeService.getInstance().getDriver(), username, password); + + return createBasicDataSource(connectionString, username, password); } } diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java index 8c6ecfcc6..cdfe1d5fa 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java @@ -21,6 +21,7 @@ import jebl.util.Cancelable; import jebl.util.CompositeProgressListener; import jebl.util.ProgressListener; +import org.apache.commons.dbcp.BasicDataSource; import javax.sql.DataSource; import java.io.PrintWriter; @@ -35,6 +36,8 @@ import java.util.Date; import java.util.concurrent.atomic.AtomicBoolean; +import static java.util.stream.Collectors.joining; + /** * An SQL based {@link LIMSConnection} * @@ -410,17 +413,7 @@ public Dependency(String name, String version) { } /** - * Creates a {@link org.apache.commons.dbcp.BasicDataSource} using a custom ClassLoader. - *

- * Note:This method is required because there is an older version of commons-dbcp in Geneious core class - * loader. This - * means the class uses that class loader when looking for the JDBC driver class and cannot access the MySQL driver - * bundled in the Biocode plugin. - *

- * We are unable to make use of {@link org.apache.commons.dbcp.BasicDataSource#setDriverClassLoader(ClassLoader)} - * because the version that is part of Geneious core is version 1.1 and does not have that method. - *

- * So we are forced to create a custom class loader that only has access to the plugin classes and libraries. + * Connect to LIMS database * * @param connectionUrl The URL to connect to * @param username @@ -428,71 +421,20 @@ public Dependency(String name, String version) { * * @throws com.biomatters.plugins.biocode.labbench.ConnectionException */ - public static DataSource createBasicDataSource(String connectionUrl, Driver driver, String username, String password) throws ConnectionException { - - ClassLoader pluginClassLoader = SqlLimsConnection.class.getClassLoader(); - if (pluginClassLoader instanceof URLClassLoader) { - URLClassLoader urlClassLoader = (URLClassLoader) pluginClassLoader; - URL rootResource = urlClassLoader.getResource("."); - System.out.println(rootResource); - // We need DBCP including dependencies as well as the two JDBC drivers. - // See http://commons.apache.org/proper/commons-dbcp/dependencies.html for dependencies. - List required = Arrays.asList( - new Dependency("commons-dbcp", "1.4"), - new Dependency("commons-logging", "1.1.1"), - new Dependency("commons-pool", "1.6"), - new Dependency("mysql-connector-java", "5.1.6"), - new Dependency("hsqldb", "2.3.0") - ); - List urlsOfJar = new ArrayList(); - for (URL url : (urlClassLoader).getURLs()) { - for (Dependency toCheckAgainst : required) { - if (url.toString().contains(toCheckAgainst.name) && url.toString().contains(toCheckAgainst.version)) { - urlsOfJar.add(url); - } - } - } - ClassLoader bootstrapClassLoader = ClassLoader.getSystemClassLoader().getParent(); - if (bootstrapClassLoader == null) { - throw new IllegalStateException("Expected system class loader to have a parent"); - } - // We specify the parent class loader of our new one as the bootstrap classloader so it wont' be able to load - // Geneious core classes. - URLClassLoader classLoaderForPluginLibsOnly = new URLClassLoader(urlsOfJar.toArray(new URL[1]), bootstrapClassLoader); + public static DataSource createBasicDataSource(String connectionUrl, String username, String password) throws ConnectionException { - try { - Class dataSourceClass = classLoaderForPluginLibsOnly.loadClass("org.apache.commons.dbcp.BasicDataSource"); - DataSource dataSource = (DataSource) dataSourceClass.newInstance(); - // We have to use reflection here because we can't cast the class we created to the one loaded by Geneious core - dataSourceClass.getDeclaredMethod("setDriverClassName", String.class).invoke(dataSource, driver.getClass().getName()); - dataSourceClass.getDeclaredMethod("setUrl", String.class).invoke(dataSource, connectionUrl); - if (username != null) { - dataSourceClass.getDeclaredMethod("setUsername", String.class).invoke(dataSource, username); - } - if (password != null) { - dataSourceClass.getDeclaredMethod("setPassword", String.class).invoke(dataSource, password); - } - - if (Geneious.isHeadless()) { - dataSourceClass.getDeclaredMethod("setMaxActive", int.class).invoke(dataSource, 25); - } - return dataSource; - } catch (ClassNotFoundException e) { - throw new ConnectionException("Failed to load data source. Missing library.", e); - } catch (InstantiationException e) { - throw new ConnectionException("Cannot construct BasicDataSource", e); - } catch (IllegalAccessException e) { - throw new ConnectionException("Failed to load data source.", e); - } catch (NoSuchMethodException e) { - throw new ConnectionException("Failed to load data source.", e); - } catch (InvocationTargetException e) { - throw new ConnectionException("Failed to load data source.", e); - } - } else { - throw new IllegalStateException("Expected plugin class loader to be a URLClassLoader, was " + pluginClassLoader.getClass().getSimpleName()); + try { + BasicDataSource dataSource = new BasicDataSource(); + dataSource.setUrl(connectionUrl); + dataSource.setUsername(username); + dataSource.setPassword(password); + return dataSource; + }catch (Exception e) { + throw new ConnectionException("problems connecting with LIMS database"); } } + /** * @return true if this implementation supports automatically upgrading the database */ @@ -3663,4 +3605,5 @@ public boolean supportReporting() { static boolean isGrantStringForMySQLDatabase(String grantString, String databaseName, String tableName) { return grantString.matches("GRANT.*ON\\s+(`?((" + databaseName + ")|%|\\*)`?\\.)?`?(\\*|" + tableName + ")`?\\s+TO.*"); } + } \ No newline at end of file From a189d4cfbee0783fa733d64534bb4c4e21ba8924 Mon Sep 17 00:00:00 2001 From: John Deck Date: Tue, 15 Nov 2022 10:54:52 -0800 Subject: [PATCH 10/17] updating list of available FIMS connections, deleting biscicol FIMS as it is no longer running and updating name of GEOME to user proper casing and noting Moorea FIMS as a legacy instance --- .../biomatters/plugins/biocode/labbench/BiocodeService.java | 6 +++--- .../plugins/biocode/labbench/fims/MooreaFimsConnection.java | 2 +- .../biocode/labbench/fims/geome/geomeFIMSConnection.java | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/BiocodeService.java b/src/com/biomatters/plugins/biocode/labbench/BiocodeService.java index 7683c378f..8bd6405bd 100644 --- a/src/com/biomatters/plugins/biocode/labbench/BiocodeService.java +++ b/src/com/biomatters/plugins/biocode/labbench/BiocodeService.java @@ -302,12 +302,12 @@ public static Map getSearchDownloadOptions(boolean tissues, bool public static FIMSConnection[] getFimsConnections() { return new FIMSConnection[] { new ExcelFimsConnection(), + new geomeFIMSConnection(), //new FusionTablesFimsConnection(), new MySQLFimsConnection(), - new MooreaFimsConnection(), + new MooreaFimsConnection() //new TAPIRFimsConnection(), - new BiocodeFIMSConnection(), - new geomeFIMSConnection() + //new BiocodeFIMSConnection(), }; } diff --git a/src/com/biomatters/plugins/biocode/labbench/fims/MooreaFimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/fims/MooreaFimsConnection.java index 1c04f6851..b21c9040e 100644 --- a/src/com/biomatters/plugins/biocode/labbench/fims/MooreaFimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/fims/MooreaFimsConnection.java @@ -68,7 +68,7 @@ public String getName() { } public String getDescription() { - return "Connection to Moorea Biocode (FIMS1) at http://biocode.berkeley.edu/"; + return "Connection to Moorea Biocode (legacy) http://biocode.berkeley.edu/"; } public PasswordOptions getConnectionOptions() { diff --git a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java index 2be4387fe..df9788b48 100644 --- a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java @@ -30,17 +30,17 @@ public class geomeFIMSConnection extends FIMSConnection { @Override public String getLabel() { - return "GeOMe FIMS"; + return "GEOME FIMS"; } @Override public String getName() { - return "GeOMe FIMS"; + return "GEOME FIMS"; } @Override public String getDescription() { - return "Connection to GeOMe (FIMS3) at https://geome-db.org/"; + return "Connection to GEOME at https://api.geome-db.org/"; } @Override From 14feeae97702b7d124297a5671c5d8d1abcd19a8 Mon Sep 17 00:00:00 2001 From: John Deck Date: Tue, 15 Nov 2022 13:00:50 -0800 Subject: [PATCH 11/17] set precedence of viewers to prioritize those that load faster... this might have a small improvement in perceived document viewing speed --- .../biocode/labbench/MultiPrimerDocumentViewerFactory.java | 5 +++++ .../plugins/biocode/labbench/PlateDocumentViewerFactory.java | 5 +++++ .../plugins/biocode/labbench/TissueSampleViewerFactory.java | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/MultiPrimerDocumentViewerFactory.java b/src/com/biomatters/plugins/biocode/labbench/MultiPrimerDocumentViewerFactory.java index 0ee535954..97cb8a581 100644 --- a/src/com/biomatters/plugins/biocode/labbench/MultiPrimerDocumentViewerFactory.java +++ b/src/com/biomatters/plugins/biocode/labbench/MultiPrimerDocumentViewerFactory.java @@ -5,6 +5,7 @@ import com.biomatters.geneious.publicapi.documents.DocumentField; import com.biomatters.geneious.publicapi.plugin.DocumentSelectionSignature; import com.biomatters.geneious.publicapi.plugin.DocumentSelectionOption; +import com.biomatters.geneious.publicapi.plugin.DocumentViewerFactory; import com.biomatters.geneious.publicapi.plugin.Options; import com.biomatters.plugins.biocode.labbench.reaction.Cocktail; import com.biomatters.plugins.biocode.labbench.reaction.PCROptions; @@ -59,6 +60,10 @@ public DocumentSelectionSignature[] getSelectionSignatures() { }; } + @Override + public DocumentViewerFactory.ViewPrecedence getPrecedence() { + return ViewPrecedence.LOW; + } private static class PrimerIdentifier{ public enum Type { forward, diff --git a/src/com/biomatters/plugins/biocode/labbench/PlateDocumentViewerFactory.java b/src/com/biomatters/plugins/biocode/labbench/PlateDocumentViewerFactory.java index 86858c121..7292d7ae7 100644 --- a/src/com/biomatters/plugins/biocode/labbench/PlateDocumentViewerFactory.java +++ b/src/com/biomatters/plugins/biocode/labbench/PlateDocumentViewerFactory.java @@ -3,6 +3,7 @@ import com.biomatters.geneious.publicapi.plugin.DocumentSelectionSignature; import com.biomatters.geneious.publicapi.plugin.DocumentViewer; import com.biomatters.geneious.publicapi.documents.AnnotatedPluginDocument; +import com.biomatters.geneious.publicapi.plugin.DocumentViewerFactory; import com.biomatters.geneious.publicapi.utilities.SystemUtilities; /** @@ -26,6 +27,10 @@ public DocumentViewer createViewer(AnnotatedPluginDocument[] annotatedDocuments) return new PlateDocumentViewer(pdoc, annotatedDocuments[0], annotatedDocuments[0].isInLocalRepository()); } + @Override + public DocumentViewerFactory.ViewPrecedence getPrecedence() { + return DocumentViewerFactory.ViewPrecedence.HIGHEST; + } @Override public String getHelp() { return "

The plate viewer shows a representation of your plate (or set of reactions). The main view contains the plate itself, " + diff --git a/src/com/biomatters/plugins/biocode/labbench/TissueSampleViewerFactory.java b/src/com/biomatters/plugins/biocode/labbench/TissueSampleViewerFactory.java index 68aaa743c..5c6d9e13d 100644 --- a/src/com/biomatters/plugins/biocode/labbench/TissueSampleViewerFactory.java +++ b/src/com/biomatters/plugins/biocode/labbench/TissueSampleViewerFactory.java @@ -35,7 +35,7 @@ public String getHelp() { @Override public ViewPrecedence getPrecedence() { - return taxonomy ? ViewPrecedence.HIGH : ViewPrecedence.HIGHEST; + return taxonomy ? ViewPrecedence.MEDIUM : ViewPrecedence.MEDIUM_HIGH; } public DocumentSelectionSignature[] getSelectionSignatures() { From 486d347f109b0413af1752162796160b9c3ce32b Mon Sep 17 00:00:00 2001 From: John Deck Date: Wed, 16 Nov 2022 10:20:54 -0800 Subject: [PATCH 12/17] implemented well sorting that address issue#132 --- .../labbench/TableDocumentViewerFactory.java | 35 +++- .../plugins/biocode/labbench/TableSorter.java | 27 ++- .../plugins/biocode/wellUtilities.java | 159 ++++++++++++++++++ 3 files changed, 218 insertions(+), 3 deletions(-) create mode 100644 src/com/biomatters/plugins/biocode/wellUtilities.java diff --git a/src/com/biomatters/plugins/biocode/labbench/TableDocumentViewerFactory.java b/src/com/biomatters/plugins/biocode/labbench/TableDocumentViewerFactory.java index dea70678f..34bbdf466 100644 --- a/src/com/biomatters/plugins/biocode/labbench/TableDocumentViewerFactory.java +++ b/src/com/biomatters/plugins/biocode/labbench/TableDocumentViewerFactory.java @@ -12,6 +12,7 @@ import com.biomatters.plugins.biocode.labbench.reaction.SplitPaneListSelector; import com.biomatters.plugins.biocode.utilities.ObjectAndColor; import com.biomatters.plugins.biocode.utilities.TableExporter; +import com.biomatters.plugins.biocode.wellUtilities; import org.virion.jam.util.SimpleListener; import javax.swing.*; @@ -51,7 +52,7 @@ private static Preferences getPrefs() { protected void messWithTheTable(JTable table, TableModel model) { } - + protected int getColumnWidth(TableModel model, int column) { return -1; } @@ -415,6 +416,7 @@ protected static Color getBrighterColor(Color c) { private static class ColumnHidingTableModel implements TableModel{ private TableModel internalModel; private int[] visibleColumns; + private Integer wellColumnPosition = null; private java.util.List tableModelListeners; public ColumnHidingTableModel(TableModel internalModel, int[] visibleColumns) { @@ -432,6 +434,7 @@ public void tableChanged(TableModelEvent e) { column = e.getColumn(); } listener.tableChanged(new TableModelEvent(ColumnHidingTableModel.this, e.getFirstRow(), e.getLastRow(), column)); + assignWellColumnPosition(); } } }); @@ -449,11 +452,25 @@ public int[] getVisibleColumns() { return visibleColumns; } + /** + * Assign the position of the well column based on column name + */ + public void assignWellColumnPosition() { + wellColumnPosition = null; + for (int i = 0; i < getColumnCount(); i++) { + if (getColumnName(i).toString().equals("Well")) { + wellColumnPosition = i; + } + } + } + public void setVisibleColumns(int[] visibleColumns) { this.visibleColumns = visibleColumns; for(TableModelListener listener : tableModelListeners) { + assignWellColumnPosition(); listener.tableChanged(new TableModelEvent(this, TableModelEvent.HEADER_ROW)); } + } public int getRowCount() { @@ -476,7 +493,22 @@ public boolean isCellEditable(int rowIndex, int columnIndex) { return internalModel.isCellEditable(rowIndex, visibleColumns[columnIndex]); } + /** + * before getting value of a cell, reformat the well value + * @param rowIndex + * @param columnIndex + * @return + */ public Object getValueAt(int rowIndex, int columnIndex) { + if (wellColumnPosition == null) { + assignWellColumnPosition(); + } + if (wellColumnPosition != null) { + if (columnIndex == wellColumnPosition) { + String well = internalModel.getValueAt(rowIndex, visibleColumns[wellColumnPosition]).toString(); + return new wellUtilities(well).toPaddedString(); + } + } return internalModel.getValueAt(rowIndex, visibleColumns[columnIndex]); } @@ -515,6 +547,7 @@ public void setColumnVisible(int col, boolean selected) { Arrays.sort(newVisibleColumns); } setVisibleColumns(newVisibleColumns); + assignWellColumnPosition(); } public boolean isColumnVisible(int col) { diff --git a/src/com/biomatters/plugins/biocode/labbench/TableSorter.java b/src/com/biomatters/plugins/biocode/labbench/TableSorter.java index 2175b877d..c1a2be9de 100644 --- a/src/com/biomatters/plugins/biocode/labbench/TableSorter.java +++ b/src/com/biomatters/plugins/biocode/labbench/TableSorter.java @@ -1,5 +1,7 @@ package com.biomatters.plugins.biocode.labbench; +import com.biomatters.plugins.biocode.wellUtilities; + import java.awt.*; import java.awt.event.*; import java.util.*; @@ -216,6 +218,10 @@ protected Comparator getComparator(int column) { if (Comparable.class.isAssignableFrom(columnType)) { return COMPARABLE_COMAPRATOR; } + // The well column is stored as string but we want to sort it numerically + if(getColumnName(column).equals("Well")) { + return COMPARABLE_COMAPRATOR; + } return LEXICAL_COMPARATOR; } @@ -307,11 +313,28 @@ public int compareTo(Object o) { } else if (o2 == null) { comparison = 1; } else { - comparison = getComparator(column).compare(o1, o2); + // well comparison + if (getColumnName(column).equals("Well")) { + Integer x1 = (Integer) ((new wellUtilities(o1.toString()))).number; + Integer x2 = (Integer) ((new wellUtilities(o2.toString()))).number; + + int sComp = getComparator(column).compare((Integer)x1, (Integer)x2); + + if (sComp != 0) { + return sComp; + } + String y1 = Character.toString(((new wellUtilities(o1.toString()))).letter); + String y2 = Character.toString(((new wellUtilities(o2.toString()))).letter); + return getComparator(column).compare(y1, y2); + } else { + comparison = getComparator(column).compare(o1, o2); + } } if (comparison != 0) { return directive.direction == DESCENDING ? -comparison : comparison; } + + } return 0; } @@ -360,7 +383,7 @@ && getSortingStatus(column) == NOT_SORTED && modelToView != null) { int viewIndex = getModelToView()[e.getFirstRow()]; fireTableChanged(new TableModelEvent(TableSorter.this, - viewIndex, viewIndex, + viewIndex, viewIndex, column, e.getType())); return; } diff --git a/src/com/biomatters/plugins/biocode/wellUtilities.java b/src/com/biomatters/plugins/biocode/wellUtilities.java new file mode 100644 index 000000000..b92434859 --- /dev/null +++ b/src/com/biomatters/plugins/biocode/wellUtilities.java @@ -0,0 +1,159 @@ +package com.biomatters.plugins.biocode; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +/** + * @author John Deck + * tools for working with well names + */ +public class wellUtilities { + public final char letter; + public final int number; + public String wellName; + + public wellUtilities(String wellName) { + if (wellName == null || wellName.length() < 2) { + throw new IllegalArgumentException("wellName must be in the form 'A1', or 'A01', but your well name was '" + wellName + "'"); + } + wellName = wellName.toUpperCase(); + char letter = wellName.toCharArray()[0]; + if (letter < 65 || letter > 90) { + throw new IllegalArgumentException("wellName must be in the form 'A1', or 'A01', but your well name was '" + wellName + "'"); + } + this.letter = letter; + + int number; + try { + number = Integer.parseInt(wellName.substring(1)); + } catch (NumberFormatException ex) { + throw new IllegalArgumentException("wellName must be in the form 'A1', or 'A01', but your well name was '" + wellName + "'"); + } + this.number = number; + } + + public wellUtilities(char letter, int number) { + this.letter = letter; + this.number = number; + this.wellName = this.letter + Integer.toString(this.number); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + BiocodeUtilities.Well well = (BiocodeUtilities.Well) o; + + if (letter != well.letter) return false; + //noinspection RedundantIfStatement + if (number != well.number) return false; + + return true; + } + + @Override + public int hashCode() { + int result = (int) letter; + result = 31 * result + number; + return result; + } + + + /** + * zero indexed... + * + * @return + */ + private int row() { + return ((int) letter) - 65; + } + + /** + * zero indexed... + * + * @return + */ + private int col() { + return number - 1; + } + + /** + * @return eg. "A1" + */ + @Override + public String toString() { + return "" + letter + number; + } + + /** + * @return eg. "A01" + */ + public String toPaddedString() { + String number = "" + this.number; + return "" + letter + (number.length() < 2 ? "0" : "") + number; + } + + /** + * Numerical Index for displaying a well by its sorted order in the plate + * that a machine expects + * @return + */ + public Integer wellIndex() { + int cols = 8; + //return (this.letter - 65) * cols + this.number - 1; + int letter_position = this.letter -65; + int number_position = this.number; + //return (this.letter - 65) * cols + this.number; + return (number_position * cols)-cols + (letter_position) + 1; + } + + public static void main(String[] args) { + // An example of using order function to order a list + List list = Arrays.asList( + new wellUtilities("A1"), + new wellUtilities("A02"), + new wellUtilities("B1"), + new wellUtilities("B2"), + new wellUtilities("E12"), + new wellUtilities("H12"), + new wellUtilities("H1")); + + // The list in its original order + System.out.println("natural order: " + list); + // run the sorting + wellUtilities.machineFriendlyOrdering(list); + // display the list as machine friendly sorting + System.out.println("sorted list: " + list); + + // Demonstrate some of the features of this class + System.out.println("well utilities:"); + for (wellUtilities well : list) { + System.out.println(well.wellIndex() +":" + well.toString() +": " +well.toPaddedString()); + } + } + + /** + * Sort a list of wellNaming wells in a machine friendly way + * @param wells + */ + public static void machineFriendlyOrdering(java.util.List wells) { + Collections.sort(wells, new Comparator() { + public int compare(Object o1, Object o2) { + Integer x1 =(Integer)((wellUtilities) o1).number; + Integer x2 =(Integer)((wellUtilities) o2).number; + + int sComp = x1.compareTo(x2); + if (sComp != 0) { + return sComp; + } + String y1 = Character.toString(((wellUtilities) o1).letter); + String y2 = Character.toString(((wellUtilities) o2).letter); + return y1.compareTo(y2); + }}); + } +} + + From 8dfb7934b6ddd4270633eeffcd340d9ad2c1b141 Mon Sep 17 00:00:00 2001 From: John Deck Date: Wed, 16 Nov 2022 10:29:59 -0800 Subject: [PATCH 13/17] adding descriptive text to plugin dropdown menu --- .../lims/AddAssemblyResultsToLimsOperation.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java index af55fda10..0e3d13a42 100644 --- a/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java +++ b/src/com/biomatters/plugins/biocode/assembler/lims/AddAssemblyResultsToLimsOperation.java @@ -42,17 +42,20 @@ public AddAssemblyResultsToLimsOperation(String passedString, boolean isAutomate public GeneiousActionOptions getActionOptions() { double thisPassDouble = 0.65; - String thisPassDescription = "" + + String thisPassDescription = "Sequence has been checked for both quality and taxonomic accuracy and is ready for submission to public databases such as GenBank"; + String thisPassHeading = "" + "Mark as Pass in LIMS...."; if (passedString == "tentative") { - thisPassDescription = "Mark as Tentative in LIMS...."; + thisPassHeading = "Mark as Tentative in LIMS...."; + thisPassDescription = "Sequence has been checked only for quality - taxonomy is still under scrutiny."; thisPassDouble = 0.66; } else if (passedString == "failed") { - thisPassDescription = "Mark as Fail in LIMS...."; + thisPassHeading = "Mark as Fail in LIMS...."; + thisPassDescription = "Sequence has been checked for either quality and failed to meet barcode data standards, or for taxonomic accuracy and is a contaminent. It will not be pushed to public databases."; thisPassDouble = 0.67; } - GeneiousActionOptions geneiousActionOptions = new GeneiousActionOptions(thisPassDescription) + GeneiousActionOptions geneiousActionOptions = new GeneiousActionOptions(thisPassHeading,thisPassDescription) .setInPopupMenu(true, thisPassDouble).setProOnly(true); return GeneiousActionOptions.createSubmenuActionOptions(BiocodePlugin.getSuperBiocodeAction(), geneiousActionOptions); } From 1d2bc39adc94c3b159c727488e1321fcd249f7ec Mon Sep 17 00:00:00 2001 From: John Deck Date: Mon, 21 Nov 2022 10:37:41 -0800 Subject: [PATCH 14/17] updated ordering of search options to put search options that are faster at the top of the list --- .../plugins/biocode/labbench/lims/LIMSConnection.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java index 86b1c5f2b..c325ca3d2 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/LIMSConnection.java @@ -258,14 +258,14 @@ public static Condition[] getFieldConditions(Class fieldClass) { }; } else if (String.class.equals(fieldClass)) { return new Condition[]{ - Condition.CONTAINS, Condition.EQUAL, + Condition.BEGINS_WITH, + Condition.ENDS_WITH, Condition.NOT_EQUAL, + Condition.CONTAINS, Condition.NOT_CONTAINS, Condition.STRING_LENGTH_LESS_THAN, - Condition.STRING_LENGTH_GREATER_THAN, - Condition.BEGINS_WITH, - Condition.ENDS_WITH + Condition.STRING_LENGTH_GREATER_THAN }; } else if (Date.class.equals(fieldClass)) { return new Condition[]{ From 6c034c9a4f1a5ab556bb902b52cb7bf228dfa423 Mon Sep 17 00:00:00 2001 From: John Deck Date: Mon, 28 Nov 2022 12:40:31 -0800 Subject: [PATCH 15/17] adding driver class name in basic data source connection, fixing bug where LIMS connection fails on plugin release --- PluginVersions.xml | 6 +++--- build.gradle | 4 ++-- doc/release_notes.txt | 13 +++++++++++++ .../biomatters/plugins/biocode/BiocodePlugin.java | 2 +- .../biocode/labbench/lims/SqlLimsConnection.java | 1 + 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/PluginVersions.xml b/PluginVersions.xml index 315009e7e..8b9490de4 100644 --- a/PluginVersions.xml +++ b/PluginVersions.xml @@ -1,7 +1,7 @@ - 3.0.16 - https://github.com/biocodellc/biocode-lims/releases/download/3.0.16/BiocodePlugin_3_0_16.gplugin - ==Biocode Plugin 3.0.16 - -24 Aug 2022== + 3.0.17 + https://github.com/biocodellc/biocode-lims/releases/download/3.0.17/BiocodePlugin_3_0_17.gplugin + ==Biocode Plugin 3.0.17 - -21 Nov 2022== diff --git a/build.gradle b/build.gradle index e91ae9c6f..ff9fb0cc0 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ plugins { apply plugin: "java" apply plugin: "idea" -version = '3.0.16' +version = '3.0.17' defaultTasks 'createPlugin'; @@ -73,7 +73,7 @@ dependencies { compile group: "commons-dbcp", name:"commons-dbcp", version:"1.4" compile group: "commons-pool", name:"commons-pool", version:"1.6" compile group: "commons-beanutils", name:"commons-beanutils", version:"1.9.2" - compile group: "mysql", name:"mysql-connector-java", version:"5.1.6" + compile group: "mysql", name:"mysql-connector-java", version:"8.0.22" compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.8' compile group: 'commons-httpclient', name: 'commons-httpclient', version: '3.1' diff --git a/doc/release_notes.txt b/doc/release_notes.txt index 1870aa3ae..b00de4659 100644 --- a/doc/release_notes.txt +++ b/doc/release_notes.txt @@ -1,3 +1,16 @@ +==Biocode Plugin 3.0.17 - 21 November 2022 == +* updated ordering of search options to put search options that are faster at the top of the list. Helps user select options for faster searches +* adding descriptive text to plugin dropdown menu +* implemented well sorting for sorting A01, B01, C01, etc... +* updated list of working FIMS connections +* upgraded development environnment to synchronize with geneious prime and java 11 +* fixed issue where BOLD export crashed when forward/reverse primer names were null. New behaviour asks user to name them prior to submission. +* fixed error messaging to be more descriptive if FIMS or LIMS connections do not work + +==Biocode Plugin 3.0.16 - 24 August 2022 == +* Update contact email for asking for help +* Adding "tentative", in addition to "passed" or "failed". Tentative to be used in cases where we may still need to check taxonomy but sequence is OK. Note that you should not be able to submit as "passed" while in "tentative". + ==Biocode Plugin 3.0.15 - 24 February 2021 == * Fixes issues with large tissue queries against GEOME failing diff --git a/src/com/biomatters/plugins/biocode/BiocodePlugin.java b/src/com/biomatters/plugins/biocode/BiocodePlugin.java index a0c9cad5d..c71978d60 100644 --- a/src/com/biomatters/plugins/biocode/BiocodePlugin.java +++ b/src/com/biomatters/plugins/biocode/BiocodePlugin.java @@ -47,7 +47,7 @@ public class BiocodePlugin extends GeneiousPlugin { } private static GeneiousActionOptions superBiocodeAction; - public static final String PLUGIN_VERSION = "3.0.16"; + public static final String PLUGIN_VERSION = "3.0.17"; public static final String SUPPORT_EMAIL = "geome.help@gmail.com"; public static GeneiousActionOptions getSuperBiocodeAction() { diff --git a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java index cdfe1d5fa..79a3af747 100644 --- a/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/lims/SqlLimsConnection.java @@ -428,6 +428,7 @@ public static DataSource createBasicDataSource(String connectionUrl, String user dataSource.setUrl(connectionUrl); dataSource.setUsername(username); dataSource.setPassword(password); + dataSource.setDriverClassName("com.mysql.jdbc.Driver"); return dataSource; }catch (Exception e) { throw new ConnectionException("problems connecting with LIMS database"); From 6167b5124d506e4dc1985d66111a179ab1cc01e0 Mon Sep 17 00:00:00 2001 From: John Deck Date: Tue, 29 Nov 2022 12:16:31 -0800 Subject: [PATCH 16/17] adding TENTATIVE to Status enumeration in sequencingresult file --- .../plugins/biocode/labbench/reaction/SequencingResult.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/biomatters/plugins/biocode/labbench/reaction/SequencingResult.java b/src/com/biomatters/plugins/biocode/labbench/reaction/SequencingResult.java index 4c2f018cf..14bddfea4 100644 --- a/src/com/biomatters/plugins/biocode/labbench/reaction/SequencingResult.java +++ b/src/com/biomatters/plugins/biocode/labbench/reaction/SequencingResult.java @@ -42,8 +42,9 @@ public class SequencingResult implements XMLSerializable { enum Status { PASS("passed", "PASS"), - FAIL("failed", "FAIL"); - + FAIL("failed", "FAIL"), + TENTATIVE("tentative", "TENTATIVE"); + String databaseString; String htmlString; From de38ab1311f99038a1436d66766a4313c06f4a6f Mon Sep 17 00:00:00 2001 From: John Deck Date: Wed, 28 Dec 2022 13:23:21 -0800 Subject: [PATCH 17/17] speeding up detail view in LIMS and commits releated to releasea v3.0.18 --- JBD_readme.md | 8 ++ PluginVersions.xml | 6 +- build.gradle | 4 +- doc/release_notes.txt | 3 + .../plugins/biocode/BiocodePlugin.java | 2 +- .../fims/geome/geomeFIMSConnection.java | 130 ++++++++++++++++-- 6 files changed, 134 insertions(+), 19 deletions(-) diff --git a/JBD_readme.md b/JBD_readme.md index d1a2710dc..bf25bfa0a 100644 --- a/JBD_readme.md +++ b/JBD_readme.md @@ -15,4 +15,12 @@ there is probably a more elegant way to proceed here but this is what i've found # only run from the command line ``` ./gradlew quickCreatePlugin + ``` + +There may be errors related to running gradle from the command-line, in which case we want to invoke sdk-specific versions of gradle and/or java: + +``` +sdk use java 11.0.17-amzn +sdk use gradle 5.6.4 ``` + diff --git a/PluginVersions.xml b/PluginVersions.xml index 8b9490de4..fe79c6eeb 100644 --- a/PluginVersions.xml +++ b/PluginVersions.xml @@ -1,7 +1,7 @@ - 3.0.17 - https://github.com/biocodellc/biocode-lims/releases/download/3.0.17/BiocodePlugin_3_0_17.gplugin - ==Biocode Plugin 3.0.17 - -21 Nov 2022== + 3.0.18 + https://github.com/biocodellc/biocode-lims/releases/download/3.0.18/BiocodePlugin_3_0_18.gplugin + ==Biocode Plugin 3.0.18 - -27 Dec 2022== diff --git a/build.gradle b/build.gradle index ff9fb0cc0..f6b30b358 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ plugins { apply plugin: "java" apply plugin: "idea" -version = '3.0.17' +version = '3.0.18' defaultTasks 'createPlugin'; @@ -41,7 +41,7 @@ repositories { ivy { url "http://assets.geneious.com/developer/geneious/ivy" layout "pattern", { - ivy "[organisation]/[module]/ivys/ivy-[revision].xml" + ivy "[organisation]/[module]/ivys/ivy-[revision].xml" artifact "[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" } } diff --git a/doc/release_notes.txt b/doc/release_notes.txt index b00de4659..4af0a72d3 100644 --- a/doc/release_notes.txt +++ b/doc/release_notes.txt @@ -1,3 +1,6 @@ +==Biocode Plugin 3.0.18 - 27 December 2022 == +* Improves performance in browsing plates by limiting the set of metadata fields + ==Biocode Plugin 3.0.17 - 21 November 2022 == * updated ordering of search options to put search options that are faster at the top of the list. Helps user select options for faster searches * adding descriptive text to plugin dropdown menu diff --git a/src/com/biomatters/plugins/biocode/BiocodePlugin.java b/src/com/biomatters/plugins/biocode/BiocodePlugin.java index c71978d60..427c73a08 100644 --- a/src/com/biomatters/plugins/biocode/BiocodePlugin.java +++ b/src/com/biomatters/plugins/biocode/BiocodePlugin.java @@ -47,7 +47,7 @@ public class BiocodePlugin extends GeneiousPlugin { } private static GeneiousActionOptions superBiocodeAction; - public static final String PLUGIN_VERSION = "3.0.17"; + public static final String PLUGIN_VERSION = "3.0.18"; public static final String SUPPORT_EMAIL = "geome.help@gmail.com"; public static GeneiousActionOptions getSuperBiocodeAction() { diff --git a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java index df9788b48..ccc0ec3c9 100644 --- a/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java +++ b/src/com/biomatters/plugins/biocode/labbench/fims/geome/geomeFIMSConnection.java @@ -75,21 +75,119 @@ public void _connect(Options options) throws ConnectionException { List taxonomyFieldNames = Arrays.asList("urn:kingdom", "urn:phylum", "urn:subphylum", "urn:superClass", "urn:class", "urn:infraClass", "urn:subclass", "urn:superOrder", "urn:order", "urn:infraOrder", "urn:suborder", "urn:superFamily", "urn:family", "urn:subfamily", "urn:genus", "urn:subGenus", "urn:tribe", "urn:subTribe", "urn:species", "urn:subSpecies"); + //TODO: come up with a better way to manage constrained fields + // Here we just name the most common GEOME Fields that we use in the LIMS + // application. More ideally is a list of all non-null fields, but those are only returned AFTER + // a query. Another approach is to return just the fields of a project but we can query across + // multiple projects and that could be very many fields. + + String[] arrayFields = {"urn:eventID", + "urn:principalInvestigator", + "urn:samplingProtocol", + "urn:sampleCollectionDevicee", + "urn:recordedBy", + "urn:continentOcean", + "urn:country", + "urn:county", + "urn:dayCollected", + "urn:decimalLatitude", + "urn:decimalLongitude", + "urn:enteredBy", + "urn:habitat", + "urn:environmentalMedium", + "urn:island", + "urn:locality", + "urn:maximumDepthInMeters", + "urn:maximumDistanceAboveSurfaceInMeters", + "urn:coordinateUncertaintyInMeters", + "urn:microHabitat", + "urn:minimumDepthInMeters", + "urn:minimumDistanceAboveSurfaceInMeters", + "urn:monthCollected", + "urn:permitInformation", + "urn:eventRemarks", + "urn:stateProvince", + "urn:taxTeam", + "urn:yearCollected", + "urn:fixative", + "urn:sampleOwnerInstitutionCode", + "urn:collectionCode", + "urn:preparations", + "urn:preservative", + "urn:relaxant", + "urn:license", + "urn:EnteredBy", + "urn:catalogNumber", + "urn:boldBIN", + "urn:fieldNumber", + "urn:genbankSpecimenVoucher", + "urn:otherCatalogNumbers", + "urn:materialSampleID", + "urn:occurrenceID", + "urn:subProject", + "urn:subSubProject", + "urn:boldProcessID", + "urn:voucherURI", + "urn:establishmentMeans", + "urn:vernacularName", + "urn:dayIdentified", + "urn:basisOfRecord", + "urn:family", + "urn:genus", + "urn:identifiedBy", + "urn:infraClass", + "urn:infraOrder", + "urn:kingdom", + "urn:lifeStage", + "urn:taxonRank", + "urn:order", + "urn:phylum", + "urn:scientificName", + "urn:sex", + "urn:species", + "urn:subclass", + "urn:subfamily", + "urn:subGenus", + "urn:suborder", + "urn:subphylum", + "urn:subSpecies", + "urn:subTribe", + "urn:superClass", + "urn:superFamily", + "urn:superOrder", + "urn:tribe", + "urn:wormsID", + "urn:yearIdentified", + "urn:tissueID", + "urn:geneticTissueType", + "urn:plateID", + "urn:wellID", + "urn:tissueInstitution", + "urn:tissueOtherCatalogNumbers", + "urn:tissuePreservative", + "urn:associatedSequences", + "urn:biosampleAccession"}; + List allFieldNames = Arrays.asList(arrayFields); + + for (ProjectConfig.Entity entity : config.entities) { if (!Arrays.asList("Tissue", "Event", "Sample").contains(entity.conceptAlias)) { continue; } for (Project.Field attribute : entity.attributes) { - allAttributes.put(attribute.uri, attribute.asDocumentField()); - if (taxonomyFieldNames.contains(attribute.uri)) { - taxonomyAttributes.put(attribute.uri, attribute.asDocumentField()); - } else { - collectionAttributes.put(attribute.uri, attribute.asDocumentField()); + if (allFieldNames + .stream() + .filter(x -> x.contains(attribute.uri)) + .collect(Collectors.toList()).size() > 0) { + allAttributes.put(attribute.uri, attribute.asDocumentField()); + if (taxonomyFieldNames.contains(attribute.uri)) { + taxonomyAttributes.put(attribute.uri, attribute.asDocumentField()); + } else { + collectionAttributes.put(attribute.uri, attribute.asDocumentField()); + } } } - } - } catch (Exception e) { throw new ConnectionException("Unable to retrieve projects from GEOME. This may be due either to " + "an invalid username/password combination or the user has not opted to retrieve public projects " + @@ -204,6 +302,7 @@ public List getTissueIdsMatchingQuery(Query query, List pro // .queryParam("_projects_:", projectIds) .queryParam("entity", "Tissue") .queryParam("limit", 100000) + .queryParam("includeEmptyProperties", "false") .queryParam("q", "_select_:[Event,Sample,Tissue] " + queryString) .request(); Response response = searchRequest.get(); @@ -390,7 +489,7 @@ private Map> mapResults(String idField, List _retrieveSamplesForTissueIds(List tissueIds, RetrieveCallback rc) throws ConnectionException { - + try { // Strip out empty tissue IDs -- they will make queries to Geome fail parser check @@ -407,7 +506,7 @@ protected List _retrieveSamplesForTissueIds(List tissueIds, // Here we loop queries to GEOME in chunks of 1000 records each int chunk = 1000; // chunk size to divide - for(int cnt=0;cnt _retrieveSamplesForTissueIds(List tissueIds, String queryString = tissueIDsToQuery + " _select_:[Tissue,Sample,Event]"; Invocation.Builder searchRequest = client.getQueryTarget().path("records/Tissue/json") + .queryParam("includeEmptyProperties", "false") .queryParam("limit", chunk) .request(); @@ -428,9 +528,15 @@ protected List _retrieveSamplesForTissueIds(List tissueIds, .param("query", queryString) .param("entity", "Tissue"); - Response response = searchRequest.post( - Entity.entity(formToPost, MediaType.APPLICATION_FORM_URLENCODED_TYPE)); + // was APPLICATION_FORM_URLENCODED_TYPE + Entity

formEntity = Entity.entity(formToPost, MediaType.APPLICATION_FORM_URLENCODED); + // this line is REALLY slow and the reason for pauses when downloading data (slower than equivalent curl) + // The only difference between this request and curl is content-length of a sample query here is 108 + // while the same content-length in curl is 3555. I read a comment in stack-overflow that this + // could be the issue with slowness, however, i'm not able to set content-length encoding as a param + Response response = searchRequest.post(formEntity); + SearchResult result = geomeFIMSClient.getRestServiceResult(SearchResult.class, response); List samples = transformQueryResults(tissueIds, result); @@ -630,7 +736,6 @@ private String getGenbankLatLong(String latText, String lngText) { * * @param country * @param locality - * * @return */ private String getGenbankCountryValue(String country, String locality) { @@ -672,7 +777,6 @@ private String getGenbankCountryValue(String country, String locality) { * @param yearCollected * @param monthCollected * @param dayCollected - * * @return */ private String getGenbankCollectionDate(String yearCollected, String monthCollected, String dayCollected) {