From bc21bb95a3aba818ab1c416638a0ded06b574ebf Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Mon, 17 Sep 2018 16:56:55 +0200 Subject: [PATCH] --- config/config.properties | 5 +- devices/img.properties | 20 +-- devices/led_ctrl_1.properties | 4 +- devices/led_ctrl_2.properties | 4 +- devices/led_ctrl_3.properties | 4 +- devices/smart_magnet.properties | 2 +- plugins/Commands.form | 87 +++++---- plugins/Commands.java | 84 +++++---- plugins/MXSC-1.10.0.jar | Bin 254017 -> 261081 bytes script/data/pucks.py | 14 ++ script/data/samples.py | 268 +++++++++++++++++++++++++++- script/devices/RobotSC.py | 15 +- script/devices/Wago.py | 2 +- script/local.py | 13 +- script/motion/get_dewar.py | 2 +- script/motion/mount.py | 9 +- script/motion/move_cold.py | 18 ++ script/motion/put_dewar.py | 2 +- script/motion/tools.py | 20 ++- script/motion/unmount.py | 4 +- script/test/TestCameraStability2.py | 23 +-- 21 files changed, 486 insertions(+), 114 deletions(-) create mode 100644 script/data/pucks.py create mode 100644 script/motion/move_cold.py diff --git a/config/config.properties b/config/config.properties index 12dbfc1..393cf29 100644 --- a/config/config.properties +++ b/config/config.properties @@ -1,5 +1,6 @@ -#Wed Jun 13 10:31:31 CEST 2018 +#Mon Sep 17 09:27:01 CEST 2018 autoSaveScanData=true +commandExecutionEvents=false createSessionFiles=true dataLayout=default dataPath={data}/{year}_{month}/{date}/{date}_{time}_{name} @@ -11,7 +12,7 @@ dataServerPort=-1 depthDimension=0 hostName=null instanceName=MXSC -logDaysToLive=-1 +logDaysToLive=30 logLevel=Fine logLevelConsole=Off logPath={logs}/{date}_{time} diff --git a/devices/img.properties b/devices/img.properties index 785c9ea..9dffde8 100644 --- a/devices/img.properties +++ b/devices/img.properties @@ -1,4 +1,4 @@ -#Thu Aug 30 15:04:59 CEST 2018 +#Wed Sep 12 14:06:31 CEST 2018 colormap=Grayscale colormapAutomatic=false colormapMax=18.133 @@ -9,16 +9,16 @@ grayscale=false invert=false rescaleFactor=1.0 rescaleOffset=0.0 -roiHeight=887 -roiWidth=887 -roiX=59 -roiY=56 -rotation=229.76067253596318 +roiHeight=899 +roiWidth=893 +roiX=48 +roiY=45 +rotation=230.05382605006437 rotationCrop=true scale=1.0 -spatialCalOffsetX=-444.0 -spatialCalOffsetY=-444.0 -spatialCalScaleX=0.5295623677991782 -spatialCalScaleY=0.5294932790504361 +spatialCalOffsetX=-447.0 +spatialCalOffsetY=-450.0 +spatialCalScaleX=0.5262180258614136 +spatialCalScaleY=0.5227145226413789 spatialCalUnits=mm transpose=false diff --git a/devices/led_ctrl_1.properties b/devices/led_ctrl_1.properties index e363697..02e7676 100644 --- a/devices/led_ctrl_1.properties +++ b/devices/led_ctrl_1.properties @@ -1,5 +1,5 @@ -#Fri Aug 24 20:52:17 CEST 2018 -maxValue=0.4 +#Tue Sep 11 11:02:40 CEST 2018 +maxValue=1.0 minValue=0.0 offset=0.0 precision=2 diff --git a/devices/led_ctrl_2.properties b/devices/led_ctrl_2.properties index e363697..02e7676 100644 --- a/devices/led_ctrl_2.properties +++ b/devices/led_ctrl_2.properties @@ -1,5 +1,5 @@ -#Fri Aug 24 20:52:17 CEST 2018 -maxValue=0.4 +#Tue Sep 11 11:02:40 CEST 2018 +maxValue=1.0 minValue=0.0 offset=0.0 precision=2 diff --git a/devices/led_ctrl_3.properties b/devices/led_ctrl_3.properties index e363697..02e7676 100644 --- a/devices/led_ctrl_3.properties +++ b/devices/led_ctrl_3.properties @@ -1,5 +1,5 @@ -#Fri Aug 24 20:52:17 CEST 2018 -maxValue=0.4 +#Tue Sep 11 11:02:40 CEST 2018 +maxValue=1.0 minValue=0.0 offset=0.0 precision=2 diff --git a/devices/smart_magnet.properties b/devices/smart_magnet.properties index 86d4f7c..0a1a7c4 100644 --- a/devices/smart_magnet.properties +++ b/devices/smart_magnet.properties @@ -1,4 +1,4 @@ -#Fri Aug 24 14:18:31 CEST 2018 +#Wed Sep 12 12:51:56 CEST 2018 holdingCurrent=30.0 mountCurrent=35.0 remanenceCurrent=-10.0 diff --git a/plugins/Commands.form b/plugins/Commands.form index 97e6aa0..a1a2ffe 100644 --- a/plugins/Commands.form +++ b/plugins/Commands.form @@ -40,43 +40,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -104,7 +112,10 @@ - + + + + @@ -112,8 +123,8 @@ - + @@ -438,6 +449,14 @@ + + + + + + + + diff --git a/plugins/Commands.java b/plugins/Commands.java index eecc33f..98f8b76 100644 --- a/plugins/Commands.java +++ b/plugins/Commands.java @@ -145,6 +145,7 @@ public class Commands extends Panel { spinnerDrySpeed = new ch.psi.utils.swing.HorizontalSpinner(); buttonRecover = new javax.swing.JButton(); buttonEnableAll = new javax.swing.JButton(); + buttonMoveCold = new javax.swing.JButton(); panelCommands.setBorder(javax.swing.BorderFactory.createTitledBorder("Commands")); @@ -338,43 +339,55 @@ public class Commands extends Panel { } }); + buttonMoveCold.setText("Move Cold"); + buttonMoveCold.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonMoveColdActionPerformed(evt); + } + }); + javax.swing.GroupLayout panelCommandsLayout = new javax.swing.GroupLayout(panelCommands); panelCommands.setLayout(panelCommandsLayout); panelCommandsLayout.setHorizontalGroup( panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelCommandsLayout.createSequentialGroup() .addContainerGap() - .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) - .addComponent(buttonRecover, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMoveHeater, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMoveGonio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMovePark, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonGetGonio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonPutGonio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonUnmount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonGetDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonPutDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonDry, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGap(18, 18, Short.MAX_VALUE) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCommandsLayout.createSequentialGroup() - .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(buttonMoveScanner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMoveHome, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonMoveDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(buttonHomingHexiposi, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGap(1, 1, 1)) - .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(buttonEnableAll, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(panelCommandsLayout.createSequentialGroup() - .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel6) - .addComponent(jLabel7)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(spinnerDrySpeed, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE) - .addComponent(spinnerDryTime)))) + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(buttonRecover, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMoveHeater, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMovePark, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonGetGonio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonPutGonio, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonUnmount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonGetDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonPutDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonDry, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(buttonMoveCold, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCommandsLayout.createSequentialGroup() + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(buttonMoveScanner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMoveHome, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonMoveDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(buttonHomingHexiposi, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(1, 1, 1)) + .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(buttonEnableAll, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(panelCommandsLayout.createSequentialGroup() + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel6) + .addComponent(jLabel7)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(spinnerDrySpeed, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE) + .addComponent(spinnerDryTime)))) + .addComponent(buttonMoveGonio, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); @@ -399,15 +412,17 @@ public class Commands extends Panel { .addComponent(buttonGetGonio) .addComponent(buttonHomingHexiposi)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(buttonPutGonio) + .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonPutGonio) + .addComponent(buttonMoveGonio)) .addGap(18, 18, 18) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonMovePark) .addComponent(buttonMoveHome)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(buttonMoveGonio) - .addComponent(buttonMoveDewar)) + .addComponent(buttonMoveDewar) + .addComponent(buttonMoveCold)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonMoveHeater) @@ -529,6 +544,10 @@ public class Commands extends Panel { execute("robot_recover()"); }//GEN-LAST:event_buttonRecoverActionPerformed + private void buttonMoveColdActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveColdActionPerformed + execute("move_cold()"); + }//GEN-LAST:event_buttonMoveColdActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonDry; private javax.swing.JButton buttonEnableAll; @@ -536,6 +555,7 @@ public class Commands extends Panel { private javax.swing.JButton buttonGetGonio; private javax.swing.JButton buttonHomingHexiposi; private javax.swing.JButton buttonMount; + private javax.swing.JButton buttonMoveCold; private javax.swing.JButton buttonMoveDewar; private javax.swing.JButton buttonMoveGonio; private javax.swing.JButton buttonMoveHeater; diff --git a/plugins/MXSC-1.10.0.jar b/plugins/MXSC-1.10.0.jar index 3789066765ffb890be956842c20cf87a26be50ae..478123329cd78c4a6a480c8b28406a1aaaaa9916 100644 GIT binary patch delta 72890 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
    bSgD1#5dY6g3d57#zQ5Qet&f30 zC3(MrFaxMhr71JoA#Vi;2Uf>Md9Fumne5;0?>=^td0fcyvvfjhK_&P21_>fsb5S$2 z4SpS-pT{=Rp9&c-4{hPC2zF|ohSC_>f#d4{A|)AU<_T@Io18PtY&j$onULtdznUl! zN$0-p>uKNn)Vpg3^cnIOa;Z6KU7oPf%LfOibBYA*feAP1eeI zoZJw!i)4LC>mM`)L~1RspPo(PAEZ!D8>I?9ONN1w^bH%ue(k2`j*hr#R%Mn1+>e@w zTgNsjJ_7u=%@kKw*12(VS~Ua_+X&s0u6u(!Nze(5J!JVFSKQt;sPkSz;DL<3oH=V(^Jk^ z**!vep{&81FwxeUu_}!yI+rNn7julE%vn{3Xn~Iz8DW&eTK!cIc;R0jEGp%`@RE~R zoKznris#k@sS)>6dU{dUMw$ZLRbVb5%f4`h2VP{<2jcXs(4WF5w0U*ky55vHet|Gm z!y%_oVvUZg2 zC-<*#*>uwG$$8#Q@B%I`VEt|CG0K65ltGYLP-35hDY*a;qU4VMj|u+oL3Mu~+#s18 z?1Gx~4GfeC02UeX#V1j{sUcquCqFf`8x9>M^cz1T4GKDtO%ti@oMIO8Un|5a)NXwc zH}YhRCBM6hL>syr-HoOIE!6q#9-|Yg4Mv8ark6cYfLgC_pfrkw;20j&Re9-&wTGXu z<+5JU_PiDSl0x|@+&twBbti9{l2@mgMM!5&i#{HpR!D?R88Uq}Bl&{{c*kOfoB=C? zZxJS!{5S!)cqO%fLvH=38bza0tUB(vHsGfKBc;a9@BvebCyT1I6V^QL5c>IbGGIi1 zDd}qzBHUn1Eu3uT$v!;QL>E@Ky?q>vYk7Lr;XvuR21)|=G$D)9;fQ>Sv*f^lkiW9a zr!HXt2meO7=%E{V0MVk*5^~%}gt6>U6QO zR*xq04!?-`aqBYkaJ#I%TZiUiHVrlu0$#bA<3ippb{^X|ktxxdkAu!JRn50><&U`f zys#4AwTD657z+n80pE0S6tk=FaPxq+2UaQ21EM_n0@H8{wFW4i{N(awcx?x@Wg~{R z6RwRI2hm<|oD1VXJ9kctzhJNkfhzjpKMhDyaJ*yQfg}Pj|LZ0##aF%|dCjLsgp?#@ z{%ALwyYs*H@ArM^BOJ{6+^b}A`MkC^uRe4t#;Wz)2%8v6@C5cEyJg{K!n-0W!pQVI z$}}-Py83#m{eg24T859imw3%zrMo5yoxs|&oUx7EZJ4zI8$*6doVG&jiMK*Ts%g4N zV+3Fk^*JkEsgFmXoddGgwO__GtlP;6vE`89I%=cSZTjG7tv#JEdkIxoBukb4hQ z%u^bftSX2bc~XB~+6EaYG?T|q6*0b9T>-shIqM7@&j!q!EV12Z#~8f$XaVD-TrLiB zti&uo27m1_McSPhyKW==GA|oZg*%zBQGiOpgtWmFlO};V^86*OZ&V4i50HDis+fUZ zQe%FiiATD_fj0lMBoz@!!7#=<_wvTRb8nsG+w?p2x=K1vMZ_13-b`SE2-kng4GD~6 zkz4;VFXF_XhC!Bp$ag+0)0tbcu7l;af`vbPL$&xc2!qcTV$%a8Y@IEwLbds1_%!7y zFJG{#?#2(uzokI(wcsVTTUi}FVVdCLWcum#)&_Nfa||L@9EjC-jRdE1Q@x|VGyvP9 zvL@TmFh-vhEahRUxYFK0$g}fKzBA6?u0H^E!_L^Hw_lPYm;&Wy>PQ4QWYzFB9n~41 z2h}MA3sH$&-1?bzU%aYzh8e#@sg0DU*uBR;T`%>@oWyyff|cPsF-v4|j)rNv1(_Nb z_)(AhT#4Kz*DgQ2PdHnVc89das~)hzzi_cAr$iIPqq08AIF69WE_u?(=_l~;#sgdj z>O9MZTzry{J;H^d)8EOr`<;Aqy@qdHJyu$xeVJ(x;^WEF#E+nRPQI~D?;A}quZrhU zM7ZtEtqKaf$3J&YX+n=ii|P2*m`bMNLVRFQWeO{|CayvU2uN}_FsiLU@?Bhfft-Jc zj9CUnol2_ta1M!TF!3s=D~p2u*Jxp9JS*FIlqZ|OmR~^52^0@Lw$WkTcl;K{)p3xV?AQc`nptBt0=*nWcnMF-5zHx?@{Lo@J8^W{$x zipU_1V^%#>H!WF=4I3(3P1FI(CUYOU2sWZ($F=-UgT6<$rlol9r5GFUZC;+?cVZ}k zxx8cP5v)r6pmK9LKY-E`)|O{s>8DGIobfPR+VtEL`VdX!*~M3zZ-hy0{599)5hy-v2L_W0voZR2k?})m`U%0u-2hQIJtzNSDG0aLRAG@3AbE#9gz~vj!jUHs<0Jjo4c; zzw<_h{^<7G6oj+`h}Jg3R6M=nj)Z>TZ~TfoykS8eOBJ8q|8%|){Q(j3mw*3ha^fjx z32beF?Jb%o~2B1U7x&XDYh^h*!Y6bli>_e&kXZb_FMbktjW7W)n_@8=%=9Ui4bdwenom@P~&@BzpptlmZZq7VMvX`=Vc9GPEN<%N- zF@8PA>1>R^5?e>)L4O3RkdLX8CH&L(xWU%@XQ3f>-=uvgCI-&Th zh#CUTKZl;3B@)1r}t&{BrB!y7v%)WPd}d{(SN*va<|$R@_J3Kc+Bh;WuyPXZ#~Y9&43={{lja(rUsVTHSo9k3jrOt7}P1IYVwWJymkRye4blg*wVm`-p3e_A}==?e_!& zUSkzE_&UJv4Qv%Swd{WlhBc#nmuz20qc(a=?H^lY zl0a-~fYRXGhP8ObC;%wra9)fvY-+yzq1EIr`&a(C?Y#N_IMi_S<_9JDcmPrf>?D~(bD|jCM(F01V#kBE;+KgLxScxn)O@R-H zLk2bG7Rbu~Pz_v8?1LB^^RwHnQQ_ z4_1TumPa22E29z_F?EeJhrIARn99TpYWa7-G|eA>n0(u@mIG&X0Ls;^4+JiUVo+Eo$|p%D;MVHc%JZo#aJ)%pFH;GPFAA1B`UEo%qj15a;2a zTj<#cd!l1vbj6_ERYy)w5+*YlYc74w`|M|cTV=24@&3M4`gvs$pp-{a>3T0b2rEF;X(XoNP4PnmXI~ zz%Z{hds0VA+@xaaD2sK}cSBY-7b*>(mJntnh-)=jLrH`y> zaIKXy;aNN}gCUHPr_b2eqjC!_=Y@o};W>V#5u|-X0p!P#l#@}Fs|wmWCj2fBrFu4vez54kt-}C)A9Q%Zk@#8ZESoGP#?mJi zzuYOBh$j12Tj$VH;-!v;$VY;9ljBun74LY2xI6u#dWsL-KF zkZs?uc-A%?=!K3?9(}LrjC6T?6rUo;v9%gDLv-l)>N*z+c)m_ORpVwr?zUq~%PNh; zg)y&d5nyEvNAPf45a=d~PEG9{+zwmmTo>Z%pBZTWHPX&5+tLCEoOS$!u;7s*HBE2m zo#*0PS3wvcIr#xVGRZ!GET9Y_{)7qgeXw;-Q)mO$>-Y&~n%dXU|IR_9?|#m*iO2)Y z?n7-b{7w86Kqb%)A_>O{+?+Ud$2CTkno3|5Ii0VVjyVk7u>1s0PyoP}Xq5e3z()pK z(sMJ@q$ylcd6FO5m-T)~ z*4Y?|V;@&CTxGn(vWM=5pCY~ty?JM4$(xXIgJ6?Q0Y)`(rSfo%FPI(7ux1%b61r@| z^}zK#WNJKEs5`*6@lIH2iGr}%A7akO5zvCUC2vGmdeMG&aqyn!jov^Q)#Iw0>_aMZ zFAmR1X?(|Phemm1ZqViA@0H#bt?Z8f9jUFgd}z$%mCf58zDernyn+2Qva!^$O)%eB z^(Rl|vlLRZK#%~V)6gQ#&|=Ti@FLZ!5GotgLu-U%zBBZyObqCqJR!gM#G~gm*WD%W zU{obI>$7Kf+O~T4+yAMw+S*t_wk4fn{C`#SWviKQNZiX!j;E=l;BIj3{L%cBn=*=R z-js^6R9~9wM0@QB`0$UI8 z-W66r{Y#7jjJze*b0ZYKef|l`*-g%XC z6bOtBpUM9Ohi>H8k*3coAr~k=2p_P*kl2q|%;4dA>X;NlpC}fJE{o<TH{Hc zziJ5Ex(6o{;BECcNR`k1pRj$)F<5o@uge}J&3_C146_>)1;mNvQT3bqX-tnI56 zrhzZXsqHSq&pjcH1_?m^F#Qz^Y>rLyGZQF=aBft@6UK!gb8+va*m?0D0F~$|%nE?v zyhL+-?8=eO?_W<}-*5egQH;7B&^#BI{rCLW z7+?Yo|Gxwp@NWh!|8E8zY5yg^zP>&}F?F{{*Uzm*TP2qT8{&Uqd(OMkWn0tmu5?vj z;g;J*#AHE`=F%C00B`Y$Iw|B0Bup0P+?iTL==>2=v{ zib&C^v#~DT!#lI=?h>^kxUO@gIvfer&#+i{Lv46dQYmEx&ie663=g1&vGJJpK+uL<*>$~ ziyYsA#l_-2Z(KO5l5q`5;bA}e$!q-Ae%-lT_K**>`PNEEY2x_-5+dq{K27PG0RLjd zXNvixY25yiK>}+232-H_99QX0aR+dWUg$kTIv)Y9qLh6cd2Ujb{5dF z+2T-XsK^jRX|Dtyd89Mtf7*W*`vlde>QzG^K-jh$r0PGbgUlFclp-@lWo-fGwK~J~ zN$!oRdE9H8KY0=T{iUee68KY!j2NFWcrrd&P4R8DbpR15QiH-dfzW=2&q-?VBF`ZHIJ6Sk^X+SW!U5e$l)!8g_kIQ%UIw6D-CmP5BNh0dQUy-;9D6Gord z>JS={SEd*Q&=%31HwE*D(%l~P#^1!el$SD{b_{io1|#iapi1z~by-syv*21cQf43f zs-_7?wh{jjK{Xe4E%Q>ponu1@CY5$3BM1|;k#HqMd$Ha1d9Z&CX zoUN+?u-FbJOj6@#+k^OeImSVzxn;8W84cfA*$zF04N1)8YiG3f=iU+(To65-<8G0n zID>^}z!$6`DO^pT_PFvT(U~6{TsfqL<3lN1kP)N3^L{i3qb&v<|SPfvdN zHT~+j4_$!!qiBfupPu|_C5#^v*MEYI`o_PbG1O7tLswpk5h4&y(~gTJV$)Psv8QkZ zg2wi$q#aVgoPX`yk#J8v{WvPUl*;HCOgQ;wJb4}wQD7y*Rk`af`&Y(Cr`>mmYlt`l z-j=hxXk=8o<;q7Q^@D2y_sCrde4rU;d-KCbZwy=xdLMXV$9T@D_iFJ*xj!zvWD3cTfWM= z^Pe~NY^nI+m#io(dDAUFjbr9%pheY1OFEgvbzXmu`y@L^xCp5g1MVo4+5f6P5r_5hL1Jx6%izG)Tqu;=YXYC{OVVB-G#07RQ*pKZw zf1ki!ic~O0d~WHASi&@eEBL+Xlcrw*LT>@HA`DY)KykM*lc5j9_t{pRK_$Y;0cK97 z)uLSFWa}!O908r8xxAs;*vtd-)R3-U|2qgZ4QL9je2f6W|BL`@R;RRbMhJ|wGExYv zv?^kV4^fXk{JOR|Pfi{7a}f#+xSuCxgO^J-gEB)ut5~2&Kz~?2q{uhYkQR@UThV5n zI=`App{I4b-%me&`~o}Q4M0WZfz+tOHo%}Wal9G#pCSO zUnG2}S1J_van29tH&Rx%D;sJUk`b!{RNttm?F~>*6esx}8i)0D5k_}>A^vD~)k=A) z*aGgiUQ|a(3wz*r%)p-u!_PCr_wf~|?oNcKAMYJXxcQ)Q6v*BGSWcN^Q>PFDF^ z2uIXOkR92gvt8F_*T5E9g?NHjuAa5I_|Z@D!yQi;D+n~K#x zn4i`|xwkgFkYbI1%^rNx6FPI1mX8KR@m-KtR8ecbROyYhO+{Q6D z?fjs-v65NJ20wBWUUV8Lx^u>64tu1xLBu9Fi#_7!wthI4TNmwf<`@#+GXCGlrxBd> zET>gdLXiKDJA?X$<3}6v_m1KV3~_B33wt)af)DJ;ptL2DR6nqHRD|%pqOrW$=hytM z5ndt|h%34)vl|GzorgAbsljrL!#E^NyY({pv=lrdP&b~P&M5`;z_z6s>gS&P~b z&VNB~rbGBY&^JyM3GV}XrNsYY-;P9>tEu zR(%}7epOPN>g#x7r>|!3kLsiO2`A**MaM-3q!GcUUveh;3&qRm(ADvytfw3VfNDn^scX)r%b2#O~(wHCt7uubB9VL)ZS@3L8m2i zEWpVkhT9bYdG_8tiyOu#Q~xjaiD_1J--i&kl~ZG8YBDS7g>=DAE&C_vQOJwMtd2C3|{~`TPyo&t)AL-MI7$I=erYJwU z()W`?-~u}^5@wMf%ZS_X*p&HF{k?xNxy}0*9>7wQX~USt0{ka@ti+N0^Z|3kxYo$RQu&)>Nbzs(nG-(*K2xF zjYVFm@T)8;M@yb`QS$li2FOy3hp!rvNWYWpVRV_25h&ObKWw=#8rS&tC`srrV6S|v zD8@^46gP|N2>VWBctdxGgL#f#;v|xjs4k+Cdj#Y|ZRj@TT}Mav;ih6xHIHIYG!y0g z0B^Ee-iQz90T5)Cusq%Gbg7LY91?Y&YI>-?L1f*o*k>{x-TC4+^-j!9yqCX|}yTPG~m<%Z|i1meXvGgTJSH$Y`?qYj~&9dki@LX% zs`+q~omg;ct@~PAf-*JRu^K}mIu%k~QO7t1?iJQ$1~@W`rvI-A!Bvmlr=@?Xp5{0A zPs%*$U%!D+;~Jax;A!_D4sN{Yst=|+1@sS0Q_Tlxlm*EJZMH`={~P8R2WueMMRx;9 zyW_-(+SOZg_4A+ij)kUPYX6((dwHm+&5+4;=qALTAJ()3G!jK0Azm1yb1`7U$-zP3 z&*}UR&$mBlp4gGBhXb@DomC-nei)`3(SF4E&nmVz9)d*Se}qWs>MQT-(<_9hiZ*@_ z3K6D~pW8Cu#_kTntyWJQ@ffS({8W5uC5TcUeW;Vgd$e4MR%A$y#9&XT3x8a1oD>DiN4ZZCTZGQMOL_VsPiuyrwBEWJ_5a&x_RXsQ3PT4;^ zU;KyXL;vzT(ucgMmN-AqHe8BRVtojbKL+uG=k9W;H5kGS_Bb)E|M1-Ngo#@FHc2Q% zYpE%Bz8>T!DDOp%GG4~FFO$zpt!QU7RV$}mrq~?0aK`;bk9oQoj#NXW%ERUhv)Jz& zo?74$mC4sRlaW*F19)lKy_hlt?K-HIlp=QTGaX^858P!MwuB*lZi$P4((cv|+^tZS zauBR|Nf}!XdtX{&L)Cv{H3ndGR>Znu+Hv~a%dCq}uxAwfKe%H!ZGV>j*kRa0{rB?j zV{-q;a;b_D0u}gg$AOT~|K&n5r_#oBp;rbMPN&5Tt;;E#ZX&BVvs@^J*@)VuIzMPKn*LN73VOa>Hke?`iVw?PwpX8zjg;7R3e0x6bZ_ zs0r!m%o_Lm>pY%|no8(`Lug3qTmx)g<8M+4V93$+wFljP*}X;MSgl4onPq2R zybV;f3Ej^^)<>DQYP_x;!#KeMt!<~8zOc_5AS>w^j&!9h+`iDEKGkV=cKlzj!5UbQ zzxp~8tnXU@I)l*8vP`jM%p9wBGbUows}oR(d;ie-Bi*w9f)Ivs^0r!=YZ7N@ioy;a zP!E!-IpqtJpt}k(HAeb59uzKP#bNv|WBJDwOOCbC-8NrEZX$H_BR`2?l1|z8GJP1- zGBha0M!>%tqLH@Sn58c-EHv->QR=Pw8s>oh0KpUIj_GcnJ`5U^1ka)&F=0eq>*pq! z{bq2@jbxXG^*nwMB+FHtn66BT_N+tzu#O15$RSHtmB}kD%{xZJuq-StCTW&YiUy8B-2+Ofu4v_-A5gQnEEn9wIIrbOr2=}gL@C`HEOts z*t&Bi3&T>Xkkw`D)B4c(6`=hKtYh%;gLN7qQ9~p-Ue+8Mvk9D4X-F|foCuRKNQ3H_ z(0(irxE~t{>a^z1WA^}Y-|t6e;h~|FT9=ct9UdjKNT5iMIqF$Glr&! zm(wU|)BO}lK4EfgB@PuZ#y?DarkIytw=f~^6UV9;(K$*z6%z#HC~nkN!&lwOS?wWC zosDG}xIh1Rl;V#JBjNV7Hye||$0jAw<9yKPH(jo$nCmuB^^M2I_C=%h&7ZaB_9G}T z(_xG*S(h$^_4Ta|9+6qG#zh_=kt>O(cau(HiC6H9SU77!6i4wRIqYUrIc7V0o1FV$ zl5I7`y7Onaqx{~YCLVX0lnL!}{LgU}I6lLamv~g^N2WBjRx#4eR%hbV`HWtDWYHCm z+h5DJ34EWbGZSRbPlm9_;wU#y^&9+`bEmuDB)ceiw$+ML!2e!I{zAo_B$ovPGs#Ws zVgAsn{9t`G2JW60pDtNg(-`Ru#NpA%f-^H{4_)@TB7XmL)#>xZ(wh6H>u(LIht+>RPZtNj&wIj1$b*qSTec6s z_=3@dq$Bm4qtOJh;|GqYr6UcPB-Iz{RBVJqM0ptylvUd2Jm z9wsAzxxS%Q5 zYXn@OSki)9kRerCT+cqQV(gH)KZbF)ifCZ&C~li9c#UHI)g41hm_cE@b{p_a(WP^s zU~rE~;&F{>=u2PYk`)fttkFEqf?#< zE7C6zu)kCfa9d?V)Vh{?Sk-`+A{LhpwXX3VR_zz;k7DT2GYx<0Lv6m71>er7FWZE5 zUdS{{W-i1uO9d@Fx#m0+ZkPz(pJD%|fo!HH)-9>@@HP`cZk7Db( zz1Ek9=BeeF%D-mx$~8grkH5t|S^i&CeaAs_L=FHlD(taB3| z)qEYM*)=yny3@|K65}U$O0gmeHZWxH$N4=t4(%ODe9Elg$l%Y{cVk>2;8*yFLV8E# zt#<*j9aQNS+XxUG+#jVq)DD^e7U!t#D9cf0g(v% zUD8}E()>zN(}SUO-`#EC2miAb$~#|bm(vWydr?rp>aX6FzXSunVUoVEzf8)|{T&(j zIGbv6qpj$Fhdv1O4gw~(B~iXpe?Px$>F^#?#N9}M!3V-?Lc1oEn5@8EVu;Jq!AW74 zM+wGxymvZ*QGJ&^bD1%sfG0;zGFMz@>!W}sN5we%X{6|z{w(GIP+;eA;$~0$3YIMF z^OEG>fX@sAI|ek{hQ!aAVEsZQ8|vlPh-`g2@JNR*#kh$San!!JF2@B@LuA^-x8R zM5Hqf6zXCBEH8DPsmtG#8VXNBTlpqez>w*bacam3sz*vXDAx(-Tbf~H=fh7@XVWc; zRG;BFb}uR0b>l?stR+bLq~Tl~rG=N?piu{tU16jXHL}9%uBE0F*8mYqt*{<~2+H$lI@ua?>aw zxQ8~y-|vcY(;@L^iQGtaAd00eLz}-};TYN|^h7edEAXWPrS9Vw*Kj|!tX+4-&2A{2 zt_UEz^W%_3h1stt;mC_EwE=KkKZqVr;$5NdOYKf8B6*QdhWEP30QczM00v>V8Ql0w zN=@JMd{)Zm2nJ#InNB$W;>an(dv~Z`s?aU5&8lCw_L703$QsR?m?#pot@2#~gW#>8 z)^JjyT^Y?kg^@pqcX7j>7s&lxXW~o`0*ios(^~<(DN>f3l4k{Mp#8WxRE^jzQX)}Q z?Q@uU?RRR}Myzz%Ws}0dh;sQb&JH1lL)4T0{t!6~DhSLnF&++l%w~yVlS^k=)VBHYgdf2S{P(+wtIG+UCwf)ZEd;r)#Mr`8Wdk8O6whUOHD13 z*9|p0y?jf{I5qUKZQ%m$jX*6u2TIU;eLbiAL{)N}4Q4m% zI-0IFVYx%(Olp``dSll!2~wet>H0MN2_DZRcch%&GAC{EPUZ9E*clFMHA;+wqiuN~ zJ3rFutc(0-+|yy_p3`gb^t)+ZA^~cfn~SQ{s*xzWz$jCfpLA_7NU#<>ktUkRY_&Rm zh8Ov4=?P18;+m!PBj@ZZ{agT4+F7yXBd00!GR3Lf5Ai5_8l9ramGkoX@0?M&oKV?3 z`QX|t@R}@K%c_YpwtBUW_8SOz8CuwSIMqm8nX8l0bB|v7#M9+by$cI@q2S4MnC_(y zzK~-?1u)vZiPMozeukiB^K9%P@A^)Rqr?8h?OxRfFq0et*2>ssH6$Q9APBS_kH zf%topo99O^ZF2%Mdth(GUjLjW#x@=Jt<1wr*FwVZ zXO~`{1zDFxWi?$6mRF$$Xll-0m|1fuxyi#cpI?IuPj`sbrywd(RWm^hqR&Hun`WJ@ zfqZ`1+Dk-K5hYI{1E|A#2`iWH)ifDUA{$B{ExzVR=0k5|WA`>OyU*=E?g^Eoc2DU! zt>4a9#mwX(I|mKk-uI^W>*TDo)U(T91-TH$JfErk21)c}o;o>{R>Dum9G|+|6EpoF zP^~c{AhkzWgz71&3193hM-1(W+?c^&+HoR&mYa|~W(>iI1Jsas7PVou3F--u@)c%| zyQf*?W#p!UKbbqtdnS~UQ)el~q+l|qDYDKJ1C0fV(`MJDwO1!av)8-SN;Boh@tx8( z79jOfnn>5P1o+m zp_4Wh`hbj_O@jusKG3$+GVuC`UtF+jXoGdB)dlT#ugY4CQ)u?c%J;L#@|&o zJx&g8!d?;^F4H*HwJs-(CY_Urlf&ibg)Yk=BKMzofLO2zi&qPbZ#!*M&?zC@X?}GR zUVrEtr!U87f_`*w!*t}ak$EsKrj|zN>CEOdDmQ0e?5x3B;Vom{Q=8uRp6M29QCOna zedz%QM+9vioZ}R!2&d%)dr34a25|6WH#I{E`AnvX7is_gdsSRf*5rCE#W8vp`HsfDBzFsB6#HZOcMU31&pc z?q4ZV0O&~gDmYE<0Gm6k8zsH{gLk-_NM&UFy zEwsBQfb}%{TV)kQOsG7_LZXFaLU6ejZ+zVWNucS}0dDSyJ2VrC)iPPCx`)o(o0~Nf z16g-mY0EC$Dl`>l64G}t3PCLoo9AvYg(G%iF_m|lB*GyQN3!*8Q#M&i@Hx12YT`0f8I1zGgRav(EYBu zSuN{`T5D2_DQ9}e>L+BAePC7YAB^z_Rx@GjcsQD>61PX&4vQDTXQ*^w9;C4y!EW@O z8Y4s;J)?)DtN0_8Vni$?XGSawakhBddi3h4;VARn@f|!Ct(EjDx+x-`Ry_{AzME#M z8F-&{Q{*h`q^o_OB1x7^$k7o+lWHx<@@GUwveqQQ+R8v@l5&>+32(jezG zjXJs#yvayMl+~Y?tUn%h3#K;#WtWD;mAX3E<1e(PE-+2E@x`BhnvSN43KkEgcVhBw zGzJ&eGAY83I|#svucNmP{b3dQdB{r^$`Mpd#GBq0m{QA2==%B;Ccd@qkw3l}0kUrD z9W)gM^z+aVC00RCDhlyccxWK5=}FJ{PPSzuJTq1z3s$6`xS^)x^fdKACns682A(#- z$AzWMvCo!Y6Jff(xxT3LdqDH;d-u zw7JTPLP~4qIrAN7>KNc%Q6EQhXJM@Lm;_C*)|WH8?7Cc3^1zMg^N#n-gYzB}1YmA& zNh&?2u?65)*$i=qRaA&0XEG&2vf~$y^qhk2v*qHG4lLY2417RCVY0S`TLiclVF|m>ahQxT91)no z5OvsFfM2hx1LZ^|BR4J(9*B^cRJ0ZKI!WsL8k(urE}7q}NAWYC)h1`n%b4cOTfbM0 z@VQje9E~6-kwB_p`VAQ3gTegig&Mlj7)L4Qp>#VYZTc$i9gP{|QbQ=8V@;s-B>U@ljC0Vxq3P*#Gl zgBqPiNLUc`f>*unv~><>)rMOVq+hFBzEDYmBJy|slrBc-Ta~%QMsHiO$4IE{xfsQb$&Zxz3$GAvoU zR0$H&0F-$~8ed~+rUuw^Xs4F;q0d1|Ms%#74+b(jpl~Cs>!_nP<@!mrok?4agn)ZA&TH^ zs(a-P7JK%_>Bv@Tllp3LS;C%{rk(R^T*ngS6{N++)s9W(I#YA$Ex3{}U9&9*MYD}d zJFpJ^6V-+Z)!T&j(=`V3t?3*)4X>s(QAb;H?ft{sAvfJ+?l~1`Pv$y9X z6I?sx*ZEGRVku;sjxVJ&q)Bl@zDoIDI5T|%JBvqX4@hE=E#Ej_uwGvaz|5f2@1@q~ z!UdrBt$u#UFOlMvUNDTIbvv29IC)~clK`y~v%Bd^rmwPa&B)(TT$BEi`7=^C0u|=) z(2>`{(otNlmqcIPq?%#v9XIrvzlTl%^m|6|9G6KocDKmeAE&3zd2?p)G>+hpVw-rL zGJVy%7TN~q4co9|6m8+OV~|<6tt7gbpX|r;+MT;?ialn78L-rEj1-(OQ5y9XbIi^~x%?q~VhE1(8w?|LGvQ%X_dIx4`gPJK=B^J}^nd;8L%x(y@~1N80|F6$tG{H>h{zlx zI>p>7yreMvT3p6ISCl7%;fu;H8v(vJZCEw^l~V+bO}l+sZM|R8LBlv=iiB<}=`o>XG=dwSY*J)=F zqa-tR-yi{0Vp;g|)Jz zr`fVOx8{}y&8edD{XNVy0xi&u=$v~CHp$14dfrp$gT@l7Ns@dGI^5e(R)4=1*Co{o zv$WI;@7dVX*V8Z1c4ec=5oGlpHW`J!+K7W1>K+7Pz~`UN>6h;&;>zUj6#~~he6$Rg zzD2%>C5iM}G6B7QQp%-eLx7IBvbA+-Q0S!1&Z-m0uLUPHn7^Id-k`eT6Ap7PBBuR& z0|PL#|K-+G>7D%V?Ecnmd^ws@-p4$}7E%#8kEQ8s9jWe2P9vwusU)W*nC@j-v_i2? z?T)N8t#M-$X)L#p%t>vi&hd?>@$8$Ns5(cAM*P_0iu7s8yB0w+G|>6RMXhiG=T_@- zom8el@S$ohfldw{pa3L%3yqodSP2CwouGFX+qAW4YnINapt8k_^7 zR{HgGDt2>*b|<7$^K(_r`bC*3Tj}U?e=&V$ilFZfdbMt?6s6vD2 z{Dx!U>r*$xUDCJ9B-LMNq|cb^IYGZw5$I0rtyD1_?dw_QADWyvB|mEQjW~}U*aDFw z5es7+ML*7}X#@E3@c`N`Cv^Y@?tRK!;}4U&pc#fyGzXFTk6!c$zfpshD& zh11s5fnIQQE~Ir-OSqiViOT^3B`oixvCbee86UEDrV1tDImC!zhs`9hP{|% z@=vuB<)u%G!aXWUYiArg%`m4Fu-+`vhqFiVDT&2~UHCT2U;JwEU1K3M6TvbqbsP5` zSocz#=Nz{lwfd_{=qEoze+eJN{3jy@ZZGM2-N^yFYvnlQIm-pf22HOoB9DwSfPRQk zNgW4pv{O@EUhl*6S*HRSU>Q#etcyn!FmrSjHQR1I)iN^YfJa8oVY;Gbux~AlrfqAx zpEcN=S+Q%eO3lPQ;Vo`cI376cR_hl4HRPwK4@=ZDQ;*VfqKtCqhDb`*lJGv6!O|qv zoC19Wz@y0gC(4-3N6njuG_p(RI;IW#|*ZlNuA>7TG-Ut5E0jSdNNk71Q!*GQzpHG6}=S=Z=b{F+yjwC<+J4Z6u zQ?!ep-NmdWX-qRoN5K-S^TcJ(hXHM)8-y?!fj)=jx<;Q}GJZ+oJzo2>m2y{;j)^J( zf|l4cj_!c3lV<+j%(g%)j;3Q zA5IBjiKRlHfT1VJu!49wf3~WeTm!WuQ_pZEE{2aY?4?8M$KED9NM6P6JG--2k&b;w z03;?8w}I6CG}%n27JgEoq>>j!^@5Mvka;$ay&goBT_EFlkxn$VZ`f71G~PFz=o(vZ z8jfyB6orMY=?R_tDWyt4m0##7y&sXdBcRUpnD(ndZ_|;pp}xS2*3_;WD=CD{AZK-D zRpI_|@Rv<{7G#g5(LypTdpOfW9o>4APtuEO{a!A(lDj546;sw@w6x3>J+8o=oi0d-rrh8y=&I|=4WGC z)9A>W`Dii*mOnq1!E#E6Rh7BDtmA zSJrvO;yAjGvG7`1&>Z72d%hJ+H9ME3QQg9MwFRzlOqAFO7?-#XYJ}k~5nK&qbL%i? zYHc`NIb-q)VIY(I1dt-E2OuI$@92}%EXc|!a^v-izI*O(9?!3guZ>l>t zda4>b;6~#J4DP>RkT1-_Q-elt{v;aTUS(k8gBm?Z{Gwf5tY?vcAp^O4j-ARrbfwilPXapRqd6?UokQq@%uH;tj!Jmh7gT$%^3oIZ2oV`>f3 zGqm(*a0mSwk8AJ!{`h5m@xv*QTjuLY`Yy%>(9UnA(!6*u3(QUY<@v2KsFZFboR^#! zNvSs>V~x46vsyH`i8ahD+|)_eQU8|ycD>3=kXPd}{P(5in>3h?}M(VOfm z01uGQE8nNgS{sloEODi$$=3N;?SV*j$ccJ(=1YK-s*;ud!c9|AWifMx{ON*#vbVhV81L+0ORF8D5Pss${!Bfddt6OjbuKtpyZ{+ zGE>8X;?wD#P6$hSD)gE`JTcFU1~J=qaOVCD+4X=ashLqsKbN9QFlBDXMY2uInbRZC z=q+UK%2At&ayHAEGdkDJ1oFdQa_NQy9@&s5Eu!*i9}6>ee} z_;^=%LU}Tk((o?0JnZAzjQR zRPX!V;*%E!qWNY=0V2@Ga%W#Nb9`=O;DYN>!YPDhA(+%_rp$;RIxx>Fj|_F1ay+^2 z94p&%j%rD~H|NHEGQP5$#o!AAMGJSnpRUGUPre3ZJn`H>j=SV#pmN@cS-zPx2=W z@^Eg#H#B34^G?^&Xms?xV}0Bz>xGD0d+I3TYls{Wok2PlJ9qc-cvl9%%65l2E@*v- zIMFdXUNJ6cei$|GTbIGgepj3E!+P}R{CLGg$Kbf#M91X#*~A~JPhU)8yf@8LvnG5q zGFW-;ur0f0$5puR)W?0X1vIBrKqY4{wx2|TvdfOFPF{FxSGeq%3#~B4r>Fu;zxnZf zA-p+!@zswIQL(2kQ&k)TqT=u2My}n%<3%?;5;LC2Mpni7rDaP5NyxMF+7L;1)I1W; z5iZa4w8(uoMi~lgd~`#0$LK3m{e(sth`Mqt=59&xN5aB6XHG0RSVWYtP}0o86N`Br z$=|+}(29Hij9-s*DD)JSmNm-6Aoru760t)r@`XKN93}{Hxy!4-$zMWFtn@-EEhgUsE6qa%<7 zG5aa^-DI^PePK?dCn;Xck&!&BgyY?g>63Vu`8}xfmP^RH02WT#M#6A6?Dkc(Xn3^f zpdLk7=Rt8RU33nV-!btwU%TMZIh=Vi+z9bdb1OMyArD5-KYu^UGRxH)*7#nKNNi3p zo)xkwR;-Re{^{2DQ-NDUd^M*$&!^aGrYUWbqO2G<*L=4FXE)b7-@AM_Y*|mmj6dY%`m@r#O+}0nKg(OeBH>d6cz(Fw= zcZy;2i(?f)xrOVc9;Cf#nuy|_#n+6OF( zOu05xm~HrUqAiV2=1U;=9}4IAw0vT6(_|shr3ON`EZ2HMaI;z%$9mscnOd6KH`dUb z`ENaOkwE-vRUr!6!*vadxbmv#cYWDDntXfm81z}FWy^}e9sQ;V*{xeRUGSEaN1T`} zSyZ|oMC2vMu0OLXBjeT8M{Le&22K}n`jq+&17n)wKiz*GN))t}H_5G)+2S}BPrFo1 zpJ-@`=W0%>(;wC=6%Y`gToLvCCd?x~dG|uG9|$NFmas;K$0Jhi=fkynLADq|h7eKg zCr+?EI-6rxt}$GXA0X8+u@=S{B<`srfe+lk@NSG+ucfI}evYMH_&|j1V9+FC|2xr-Sh+dqu z9}kQ=3PbG%5Vj|?(UqR3t}wJeprOe)HwS{UAT{qWrmYuXqMOa&brd3t;;% zjEHl5VV|#iXeV_XhYKfmYX8^%sY}bJV?^7+pI|ceJ}Z8Quc^Vbt=@sTPx^sINc*oW z<_O+%(!1btj4xBeCdrv7V`@s zek@ESatb*G&p`XEzj96b7-Jq$hQL4fL+BM>vMf?_1?ZJou_hE5vb9to@nW&Re#18H zpPNO1J+WAmGMTkEIJuk`rnr^dRLI7>q>zygy0qNfwva5 z#+5Uk1UGZg*WW&VSpn4#s<7Rvh^Fa~BXs=X;~||*nIuxFGkN=N{OjEF3yZ4SYoU6w z$tlGJP^4eWMw^-*D*$fJwnZdCYiXvTulamshGJdJ=(pW4iHS!(s-#1UN|LJUz4c@| z(f$1%XQt~jYyy;W+{6}`brtkxAI0a*br*~Fwf8d&Yv6Cf{d(j6GT@l@`G*hSaX+gT zCRK(oLSh@7wW@k5&P@fm&c;15$BXgusGav8PTMN zFU5Bo7Pp45^LVMA5MAi?lr?h_`{WRx);K&dv{&X4vm+Qq>Ka(zJRtiEY?;EcRTijy=aa9cUAN8> zmuP>f2cM5CU;?NKGG-j3f`aH79ItstUifk3{(8{2%)uj-P*N2sVVvXm;C^ zy^*gGlgC}s#DU+pICFlbKzX71vj#b=WKN$b2u-_+bBpy|;Kyb;kJtLsxW}!1upsUd z1EL+0mWnVm=nMIjMABc!g_R5@}fX0LJ4eA|`fix=URo|qS{(5=Bj zP2!Eee0Pu=&nU}cDDyhUIHKx}jjvQglXT+!S)3>EM<)!H8*y3TQc$8JSPInhSc$KxGdBOeobapCbOoQHGDts(SV zKrYy~Eyed6RQre(gspH~JnL?z--TFQw)58}Dhm@B?=p+NLoGu#Vt z1I{fh+zl;U0JTIc+zTU3=+5BdH@zH)pMsF@54v!@ISng1o@0Y;4Qb0`uT75#fX~8t zqezbb^x<{W`PFacE(Eg^MD7I!HDP;Jp9y=za4QBs^?51b<+eA*rpLw5;m5kAD%JV2 zFmE+1}u>S3+(bAk@W~+KSt{jP;;?{!Aito zWMR#fMch*z3aa6hY&)f{C>u_~0PczLI?hjFojsfLTz5D=YxgHlnQNOeXk&gRMsGb( z`v+&_MC0P`PCa46jmI;NunTmp8PTY4ms4NtafP3|D!nC#4$qiDB_F(54vSo`JD- zfL(P-enMNz>@Qz`Y-KY0BPrq@@w5Cds-d}>;fQY)B_i=$_cAWXZxQRFKqv|TF7sF5 zYvQ|@Q9h99nfopw?XIK}YB8IUT>tj^wJ~8nOBLs9W+&ut!9iM5-Mi}qe+4=BV?htm zA4PG??O^yfax`jxX|iv$fLj%g2ULo`6iB)78vtx9*5A-*8*Q$`9Pm2!hlj6`-_)La zS|57K3d-tcPCa^{N!o0y18mOMELw_L0>E91Bp$tpj zKuajct1rLY-_UG2yB*+Ao!`hj z883(-@5~Y(!0m-ifZvWqZ%h!kmeGB}-8f)Pf3@nVVY+ZBmoY)yU~mWlCfi!|6B!}-)aLvYgl-31`1=Kfkr(6T;gS&jYNf&C&H#z|2M zkyyV+D7$&a`6mA9UV^_PCU#4nwjXa^-(JoY$wvjr=L=Fhz(Lb1*{uw5zF)P!zf2be zf>Jlz*2rZBU$xP<(L=f)$W)4(82!S29=+UnQ7_8>Ntz9@w&)x4nmo-=?ZLNfn<{henA^zk@!rf_txTel0u zfid6QcQ_$%pcj&$KPdDEOaC2gRj}p{cv^u@v_SC^oVLA`PDy4?bNuxXiGRiqF*pUUSsTJ10=0L4*Gv9CuFfeqkTzJ@;bvpo z*2cDNY_jpjPBwNXwrz7`+qTV(ZS&7L-_`kVrn>5#zIbbHx_Y{wX9`1;FqhId+A?HX zTuX{@Na%nID_2g-%prijPha%t=DUvmqKk#f7F#8Mv7A>^^UKB8NJ;;~qnXOqTuJnF zBHW@a>tfgh1}G8o3tWCWM7 z&Q;Zol#ukzQ-tz42Q_+a8Y53I4>pE@g*7B^PfS0CQrd!webflH1L-+MdWeD%S?fq_ zu>3B_kBt!Xv@h4|?GD9~)9cT%+ewF!f9DPTz-}3kty_c`(7qzfFyyPP4nl6d z&Hz_nt0xoG$(dx7PuX2L*C4$KAqQsHRbsy@4!TnwWFCu6FZ zq%#;)+JB%S_T80(KrC=T8VL?QN%||G1)7-D9muBN2xaP~Ssby5%j;unn<;NZ&{U(} zJ58HKNe_zO2QmHidMR0z%uj}Qpm;Snklh5TQ(1<4S0&@1@nqA|wV+Mn_ac1Il%&iE zbx_hmQ_ZaTSRqL|@f^(bHD}w@W)3>x68em)A$_MZgOwI! zf(S5}4=0wH5>hbTkpB5|LCFy*$NglM1KVg&Gt#cxWL&0-sov*Ac?aW?D8+-iaB~)5 zfA>%%LHG3uLn#GaNRW(NMZ!nYVX@<*EMR3@H`0eZSKM$JsA_#GW=2=-B%6k*{@R za!03ir_=LBPzlg5Nm0HWgMT~OJHPAsz7ZCaEl%Q?Ub;^*UyJJNgW7Ng$2k$pGb7h} zC4kpDS6iBH*hfNZeMQIqq=u_)>u+1v^Vt6iGoQHtjjzvnn@>Ck*;CW4?dAy(WHVuM zBK-mheDU<-S5g;GR|+b#Vz2ekqU9g8@teT^DP%LCtSj zcPrJJPD6hd^D`WCo8ZAB4ZId?QmlOWoW{A;@yNvVRRcempq^uFNG(CLb#~2-epJHaUoPn|WxD89!!h z-OUjKro^_Q$oAUTjR2KxifTZWM@*AvbI91*%Q39xpX@?Yrz_}>s=Zo(cM{DI@@X|q zGQ#AqP`pWg%|v(u{B#fJ3mF8M6z5BUU|a)t@N(YZ&XZ0(RpV)8Si_fUVq!ecyp~a9 z^>>)zYY?{2`$2K^uk>@<7wV`34-Bl_f)#+**3#)MRYL-w=Ab+@s7rk)ykgY1<{h~+e3N!?E`k*u5 z;Lhj@c#V`SuLx;6bA3T@a?jp$F^rD6JLk0aiXt+ z!Ekz5Xv)q6#7GO^DFd^)2$@{aCAIKsC=N=0zo0C-qfFFI{KR z+Y!)a$=yB08E{3|r(006Fg(xNzu6(jQtvsU&H4*=`vb!6U(9AwNe%Y9UpX>J4%BSMK{obvK@!AT@TT`2f^tArY#MYK?ypU z4ss~tb4%G>NYPzL-d#x9ZA{kfB5^IQ^kP zaw+ij^=iiE1ucGvN;TA_ZVgIJghwxqGY;(h&KIm=7C87BF0qYhvMCrN@{-)mSrNx{a@YvjG0&|DvKo8vV; zc?G048$C{8Meqh3SMQ#4AHCkD+?x&P8n;BE466Sv6@y`WGU5JAj)_OY~S+C z^?@LLs?!K|nc)mVUL(fRig@aGVmofxj+aIVqH*{WXJd+jsf;Tm>@7`W0!N*NH*?wk zVYPc_6x&xLffR^gyFFZH?o6)Oh60vH-dGyLKD*_2ftrQhsYxXK6%7L-EmHC7Ix%V< z3B0jMRAOge&QKjHwc7B0^D_fGiZ;=5Wsg|Z-Zf}dg2DGQA`)^iu=K*J&2Erqo(3U7b7+ubaSwAL}J{xjPeHDC}u4CsM=fWJJaZ{#99l*Ek_s5394N-I2+&t~%#M;I{Bs;tmT zV|)Be9eSW))RIPDD^{&rN<=?{H-`66;ey(hS=JieS9Bqtt}uN~JYD7)tvK_s$MjHN z>HUHZ*F7fcoPir7zACzXyP5)@2tPwL7I;;CPV%aJo9tA?KjUFb1iY%8jRZ=*W(+Lo zU!~5cyw#!&x=Kh_s!q@z(z)TcSI%6V2A5oUiAVU>j;E_;7$Mqp7F3qRkLn@vjyI)-B>wG+@ zC&i&9&y-yT{&l+$L?>q5y@dAZVkSUBiq(z_YwAB-%lKXE)Q>)6e0{ z6Lb|iN$wfvz?FT*n~upd1^y(=Ki~#Et&4D8xi^>bc!fO~{Pg1xwSE4Xm%-&?zb;en zx@B_fnHO^xot{!)aQ|SaRr%SjvhvMUoq>OgErsC^`ZcOHDX73Vv%%ZI%F_1PpFL&T zLIn17|H8GM0MDATR0g{WpBrjL07vhn)knQ;@fv4|t$opnw8~+l_f+TcI$m4L&EJwI zK`ZA1d2`P_j-xGWe@y#xe@w^r2EFp#v+z`h3IK5;y!}~8_+(z$^>jiOn4P+JXiDz1 zXBpRe+aT5Qc2>aumQmpQwqB6?)?RS^_Etds=2xHry!95?Q>kBt#|gjf6coP26@2qH zS7u322RT1}t1V#3J=ffJpzk6%M(LzC$M0f3*7W{4Tk&>M@cR5xVC^X~D*|$PfE%B6 zutavgzeLe7Q6<9-ay9h!QZVK7A!GIm-$i|_;2lo!Y^@2iRRH;vsp;aKyqLUI5xK2Z z5B(+tSaV04-99;66L01Iyv4942Y&IyU(QeNMw?;Y>Z~q!HaUX>s%_x{Mb^8~meIGA z^_b7`t81Ro57dD4Ypg)UJJ>yNZ5js&uych9B%ke0QJP+TQn(y2kR9G&#zWmE#{~x{Zk z==D5O+U{MFZFM7(ZS`!)b!K-Zw5c;S99P*J6Cl~WfL-~-#&spP`{kmAfIFJNS|vR zsN2QQLXR?UF|TYw>#vYb09nebiVuLY{!Y97i9r&01x}rDsh|{)wu3pD5Y?MFt71kC zNy25EA}NJU%1eD4z_AbUPeB79QC5-1G^aiciAZqD6B%_PiLoymmTgfnDqN@IF0w+; zR3<>lR3SjuQO-hHq4p44N?6Km*K?G4R&-Q&*4``dq;xNM`@XN|^I-cWa2HJq4)>8j z?%>N5BUC_)y&OUH;tR~nHf^T5ia>tno9hRelJz+Z5uWm7nnp$O=cNQfd$K5e)I*80 z=6pY7&Dzx9Znf!yJSvgJveE~>Pj&2=P02IO-bP^UyAk|h2xH3fGAKW^W}3Y1#JYUe zl)ZYRqHsqDmC~iA@aV`}PNx}kW9i4TEuy-9K$&ar8-TkcW18bp8NZoCFWiL88*f9} zj!8MMz;I}nGpKao>ZSz34ciYxcH5Ifb~|wUJumU|M%%;!+M~k?H!(#U9-WkS`G_n! zvO~Bpm-04W<2gq>6j`4N%;mXbuY5Z;KvDD1mKN_eAql}X}ukBB$uBA^Pt}QG= zm(w+AbY(K(&ksWRN{7NYl#@d^R1{Eb3oDUqi?e7RinGW!r8-3MBsZuwX!Po$z^qoD17)eH>)H zV)Ag?+1Y_6^UQu1^Ns#T^Ol|9deEJrdZnG>`qG`l`rUp8bJ!d_l&&H=-SZP5A@j|^z zA?Z2kF(CUY+&b$WD`gHy(QOdN&uz?RW>Krm))i9n>ABCr7BYBMI~E}(TDZr`$`R7e z%~Fos-I+6!dNrQK5G45C;iRT^Dw`BmCF0LbL9P$fs=OEr)*&2KC9NF0j8q;Y4qqI% z8AsoF)!M#*t}whitO&egauL19{1{i<>y9Af0;u|Ep-jKrVa(iP`OK}tTu>+OBl_6y zdsh*@wN!>Fc(F`M1er=C5++|7cIx?wBtvG5Q9EC7d$(=W7LuzDUamiiS#hPKKT~bo zEQ<89lCWcnO&{XQSYAh2m|sQQi00vAO^pfYmW-kjEmR3$29GIgM4^1Y6?U7FY z0(+3Dlq0Y#3Q3s8S;P#Jyb8K;ZlUe0w>WMZ2XZ$z;~snHsffc)smR@zAZfw-KU1T} z%2@OgPFc2+aG4PWpS|3y50YUYBju2(-rV+&1`{tZ2( zqN1WGV?EIRg{pV`2R6Z8yWC5S2YA8R=e9@J2Rgy9Q?MzAGajFLvMy7+R|2Bo#@Tm- zS5P9;(bj^YGZ1l<&NTG?hR8p-!NMVoE z3DSqR6hN_J#Q%LD+pIm=^bO2{RB3>M#5Fw|>!`~k?lI2Mjc_F4aV<;6M1w)3j&pz9 zlRj1GSLx_8F>lAeF-3Z!!wi%l;Ipf!2!aw6+%x22GJLv<9r=*eb98f4!C=o{bl6%n zQ7cqLT(WlEhR-Es{KHjUwuP_seifS!(h~2!_)pV8?@9A1fP3dbH$m<>GdC z`u*L66gz84xT|7WylYLm3u^DN?YK$n2od>(^uuV|LEv4gOV#kU{chG8aKux#Di*LU z)U&0`{}RBFY;RQ|zi5@^W(v|&6rVGc@22Un{AvDbw^yNA%T!&P4n*3NHN8?BOxeG7_+*@~CCfwDwOEx>iL-(7l$uMm=Lg!e<`2KyERB>b7MnjzeN+f94M zUL0p2nydO8OPl!tP0vVv6uA|A6OnDVLf%~^{v;!g{@E?58&H$NJ6P}mdh;e#yRSzk zK|t1W6C+o-nWWueZSO?Ho2yNL^n)w*_mcyQP6R2ktUek3qDdo(WK>>^w%B_%gahRb zbHrzSvQk`#;=1ThfOSVPPO3KU2DoLWR(sqX?;46pI5hRMuQppbc_a*rZbs{}u9w1i zB=hHCyjw=Ie%oe&!lFSg5Vf->2eGdU$D~%v_~RKNBf!Wg zxeE&J2f$GZR$&V^J+=O#K>JHNdl?Y{4i#2VAyrhRRx)Td)KR5%**o4?h2s?hI4T!8 z@YdKxhmnMwuzy<5*SkfyO9NVEAr=M5zNx~jOR^V zj6Q`K&-Ro0^^vt)aM}e<{lXvDVq>dw1b2=G&zS&#Kfes{@9V=Q@**fK&mCgY=0v zO%^@dgXHvQH+&JGB>k0A_r4*P&TH3zM>4hczGt6 zo>6%-e+r&{e1rPPhkhprG@|*u{`|j8+@=Xvu65G>WBy9`Op3Rnh55C{J+T_KLUen zlRb*T41uZcp((~mZ5*&Lr}S~hi;OS8{`&LF=`JQn9o10oc4HJzifZgnrb5zCb9NS- zZ;sNFj60PoL<*O|!JRI|+qfUalRV!<)&o#xSZaBhCu$n(i zsJAlNewr^QHJL!t$2(!6Z~f)Tcnyz4OV-(fKZImHMAMqAnmPY7Rv5KY)OM_;PfJuJ z83mwft~_ujQz~re+-Tj~b0prXs&U{}bUSCYmNQKHNSQGHiFF~e+y*81>q^G>W=jH| zPleqaWd{x}iHl_vug?-tFSw;4cbC<;wCy5ycvF0*w$v0F%}W0HgPhUDoytB@`jBsA zMYu4~Tyvbv+QpH0Y!u|iA3yu}iTGhe-v&sDf!V&@8;BX#RAtV#734Xp3dUy(d0Nr#D~A8=8gtbe5dj%$gd?#xw)@4*5-j^na%ldLDWn-e+F6ck)bSdhLA8`CJ<#(k0*82SU{u z#9~qcqNEIRx~uF=`Kiemx)@_S(hThe(6*Y`uQ6IbjF$%!j3XLug-3__e-bd)Wnin{ z*7}|6?UGxO+w!<-42)Uma;MtS8S-m5x-ls@vJ^^SbkrWjd-h3PWn;n);Aq@=)JXo& z_ic!%*xl#W@JyiwKkIg{!a@^ihw~V?Hwb|L(!UIRt5L(i)v!Q~=U{R6$6N~W`O(O@ zKAM25@j}|Z-ajUh+8CLf6a2>9xYqHDNZc4X&XZP6LEtXWr2(_UATpu7b^Chz45~@G zv(?46`9ASNgSzFZaf|P5@FxOw%h}a-WvrOgh^dMv^}o|r#LeZWNfu@MpGOL#uLD(* zKqnje8p8W^jYpx;r)6O0L$I?M^R(DnHxj-lGmIGt>(XpL@Bu2J?+LVXpW zauaA_`z-fKnzpx=RsYMd@v7f4X?(ITX&fPYAZ*pSD0vn-@>04}C!0-JK0%#MZJZtJ z)1RD$#cYJE)1)@8Zz^hLi_5xS-{4NjfW^P zq!nD;J0p5IKmHK1DKzx-`m*#0z}sBGCfMRHBd_CIMM6mZH6_79+3JYwPO02^TPl8ru|QQ|uv>J=D^^h+ob@PyTAA?r&_ zP?Qoyw2lZWre-vM#X(*Q&j0u1$eCtm^)G^&GbdO!{G@;`fuyBag}AZ?=*U<{CA8k3 z=2*Ti_8${2z=pn%BQIybNDouuZdBaMXNh0CU!G3c8u#&`#e+Zg;Iw{uDj<-H`4|Ah zg$p!r&u}E0gQ1R>4ZuS|n{5Ac^d|X)$^?T?don{b5U`x3*cxKN&@MV^s7wQA+;SOp zicC_S`ew%$OW)i&SR^wD^sTUfrTf^(HS){$wIk+;kU% zU6;#S30lGswQyAqOvl7ML=ZYoO-YWNyVP^irJVR@D|w z*~Cn}t(@lCFu(p=ZdHI@g2ag=&csnzSj%0(A^Q`nc&q?tWK7e!MU9o+ns2IegqTSv zP$}7%wcrvV`lO=c8xgjItODkfED4_ZdDwuT2UPDhgx%Ow6_j*-V&oUAq|Cl$MoRxU zd4N8R{$KOf85Qssu;C*A8hOl5nEqqW;@`vEx&qe?QT!ieWRT{fIA$u|9D&6UDLzxX|yKKp?_z>)lC9PN$IyJ%bQDvV^O zo$RWS#N;Z;5A(_aa%-p##@jbuRd|K?A`4nV*j=`V$H3Q*EK9lH#;y(o>q6;@HA~-$ z0TzvV2ZR3*t+Q;K@Q*Sw;cg#4z0J=nnYVnulS(VC8{HM?s% z2|uw-@%*6`fa5#%Si#E5(H?iTs!9z|vb2!-aZ> zWyePB4RSMXfG_N+oU>%x_-%AJE=`9#j4FpJeCirB5HDvc++Z#7mJs>j1~!ZeIm}Pb zL0NZypQAoR^G!FG00U-o2r8^u{RdL>*{4@Hx?T1YkmpCZ9bEf_Vtb)}Mao;eJ@l08 zmwk1^YYT)OLLBHAu>a|X{L8Qj!n#b)eOBsLE1*{kr7%Ih%!(OY>J+*8@FzZUMr2@) zgvof3l1<@{yJj@X`RF((Q@s}y*OJ{oe*<(!iKKQuMS5brwdM
    p+&Q^ymNu%Iy< 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%0AJNcjE?H#x&Vg9o#~ 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�(nQqe^v6%j2q-#8F$OOGq%fnGQxnrA7~zw_hmdLw`RO3w`II5w`Y6+ z<$W@o@r~S>@jtmM;}3a%rjQS0`ekcoirkgiN$$?G0p1JQNm6wtVZ|!%egIEz_-vZ@fSh-yAVE(@ zg4Ki>kM0w5!i;SpaYZ?~9sle{?j=ILOjP+I(d0`ce?h+DJlnT__GA2n$Pp*eC64n0 zAcp@Z##Z;A;1gTOSMDNXH@UAjVe<2m}CsHYYCL#H&Gu%qoa929RUFjNb91&^5ORWJP;S9LZ z(zh2MM6;weVkyupTH}9$So=ww{EK+x-y{i6Keh-Smk3@*1aGv)3oHS8I|6KnPEddu zIp)uKHj!bi%!`jJeizBix03~mazXjYxyJ8He^^Sc2(#4OFiYD^bZi24`R&#mt8tj* zMC{Yhqe6*CVI)K0q?;m0A4QT}MIl2JmE5A?QB7^kceR#Gph#AfxX1E5y z2^|9i=o@p*JYqb+`L8vjB#~6b3o`lsFKZ^pk>FfQg1-2DD98M%np*<=YJ|VmRPhh7 zf55ux6p_c6R3#bYNg-KED(R(kBH2p1ORm0-Tzy?~bs{{bTwV~YUo64MUQ3L_609=_ z)&&IX3W8;UVBP;ug5}2aGU@;2Wt1a`P_l`t^d_3pha@O{|KGe!f2aG&=3k;9@i_sO zK{;4-W}DxBD7j#^{avGtceux!+=1Z$f0v@oAGP)ZhMmK#3uIj>$KQB9z`EJL@QfN| z2I=CA()ekXG8jgf2Sz!TbW!q2S7i+8sf=?*+SN7EUXCoiqDOj+HPV4GN17FTq!VGJ zlm26*gB*tAER(|DJF)I`CZ}>~fz31Iyh*)_~Tx02pAs`r*%V*b)8iYh&m`pr@fk zSB8-^Wd!M=jB@?{%&qRB_+xGZx1A3IS?@3mmZf<>lHq)WCCMq!4u7DL)gLA3Z%g3M z++<3TYf6#ZMhaR&1T7^=bRG%NfBB>^b^?vZ@Ubx( zCmmYjaeTbhc(h}_{dSVXwtv;8uiJFZ)&?}eur-ZOjLj$EaQRG%%|}06e?F6A^NBxP zK2u`z@fOQ9WI|~vH56+%V&CQKI-A}nGu_ha=3g7V)K!Q%V%b6KH_ls%!e)XyxBo`PWwdg_VC| z=Rx7{Lf68yP@@vf;LR0fUwN}2;%9mUDGAmzfV$Nq z2+FesRnAi`RL&>q0{?BD1z1$g_xNF#?nV}r?v(EClQ#& zq`SMNTa^E@;P?0UeP4Wh_CDu)=FFKhGk5Ntd*{wOf?a1oC{Gd_r*sjbcRi(miq&s0 z?5oKr&<`ZTwk)l`NCF(*Z6Us!0x&^_Z3wQC`9~&^4LH8rsa#Fi5w9LXUI?Irgd75q z>m70d9e3&2@&HG78?q}SVDdm76$0oX6h}}*Cm-+VN6{aVC@dxEC&ePZB|ZK3Gl^*ZQ=v}2G!RE`Y}*%$j40pF+}DBhyxk= z2;c`32VIk|^c7OR)~o-jywTqX{lsE+WxME8c#c>PGBlT+hA;&}eL_vaZblufIkAMR_H$&7B7GQR1P z@78J?ruEov$V;jx{S(>`GV*Vsio+i^`l zn$y=zi*WXL)LG=zk5oUbX!_jPJ}K`$bvox}LgA@ewRR1f!>TvhW^ifBY$L1#Kp$T7 zgY(jyD?R;>M(1eTwb^|&1=Os)YlhIAHcET1mN8yhApwc~k*kp&E#}3@0Y2Z*adN~Y zKihf0#}V@3nFKEhuarFcN%olZzI`C((+Mv&u%fGXaOQ=)=Fxx#z_U1#O1IQ&J|&A) z%iv|v7v*6eIpXSa3<|Ny!;BZ?7P(~W5n$9(iWlZafFF!96FtYp^_27Z8#qb61VdLz z@n2_gm*gIgcMQCd%h_fuJb)jPVu;%p2y2%d=a*e#(q0sff5F0~Of4xU&Z-<0OenjJOgEJkHJ7udhviDXYsB zsATGBPH*x!4)NmIu#U^NH)2=$a)x5Ov1+G$w$J^6T_!A;tJI$@y9S$ ze$=Ss8Q)*u5wBPI3;+PJ4jgGzj(_#kr(nUsu|0wqcL8X@#|^$V9x1alzRAia!qW0| zc8cQC0QVz66=gIkHgdUj&nyk_Gfkf|j+PdYv!m%r)y!|ZtxDrvhvpgQwWJV@DRslz zIv>Y+>}Ho8A7fqCapRdW?-{hf{$S;ZuOE4z?Pu+`w0ZXX_FuZ>h}>-I!}WG{x7y)j zw)7n?zkIm^{;cpg0dgri-EZ4P*us+dB~8@ti{w0uMfni*s|QFK!+nz$Ci45{?r9Jf zqwjG4zSe?7bQ8td`7H?%CLw7POkvR#l2bWrc&{NY^W$gNE2* zcY^g8h^ob-s<2E1t%ts(y7;{ArXP>0ZJAxf-|38Z0$=>)*E=AAoDXr_+zh1 z3kIiiiM$gIrM}bZcRF?fi$uPk9BQ*HvF`~Cssfgu<^I(9iG%k;V|{vAj!JX?2SoC8 zf41eOu%D5!=HeY6dC)1SI8{HO!1a9bO&mcrV_x||e0HRZeb7$@#u}z8xivLwc7;41 z?HR0_-;-e5!oF#Ul4S3rN$T)-{%zQ{3w~PP%7w(*Z?e_mP)3=g2R@5I!AWAcb~1)iXFEie(B$3)g+`ltM7=mGGr$EIk?{S6%{n+0ljiuL%&^XC7TUgB^$XO3tA^3e5K9jUA_f_dukv?`fu$9(o=)#HmcBwS% z_WE4F%`6etxP%8jJNCi+4@uQf79XH5Fn0jb(uFJl+f; zNj$BrAySuRwAcB?>RH3QY&XVfx$(kCy}A5ru!rORi=G^LC1FVoW6LBfEB*?41=+os zhPE2pL}@a^ukfyNzUO8GgHNz=3tqIliEg~AQE8SWPp7X1jFV+@DzV#a(9eV(DO+h8IR-X5 zx`G`V!Zq7J_KQ6!Q<0V6}7$gLYsJ(%4zUbIO`tpM>FqG&<`QrTu4PEuwr zQ08LZ;|eB7AKNegsZ5kXBB@0#rI>3EFkRx*LfU)==De6ZifRnPOa@JKDezH33!Ooq?H zOidSFLUV^-ihX1?uEd3t$7jY5lc;37o$KuZ+7O%~e^qu=Z!+BM@v8#5xiXnTotA~6Xy+Ux#P)Qp-Z+X2JX^2&pLU55J z{YaIck{l<=)C8$gVYH$Dq4n@Xy;3K(g7{+jKU*lOkR9)sGA5E5cf;v=ZiI zLS#M^>Hm*I-g773V{z^ zg?1l44<%nFNYi+lEJSa4Sdyc45K*Fi;4EAel}*J47tu_R^+k*$-3(qIcO|GZpFe+5 zAWNeYA-Bdb@k(r24(+Kjx0O6_fa{DjOY=bO0u_;0$b$E!hO~k5@EWnxqi4)FE>fgd3gCNSTU{ zEjQ|x;}@*1%Dc*O3$jyghClY!B3Y8TvrGs58d=<8;xDxYe%5m3 zlI2*`RS49WL|msfkv2E$$L1cq13x}WBtTqW7si0R`h9|!%xC;Vc~~!fWJR_Tg`3xf zl|mz=%YLWHXqw4$rEp-(%R~6lhQ6^?3;gxzH|r-Ud@i;$Uu6-a=U?x~s|?c5_1R{> z0y89?%%vpxIn3Ev2$%YjcpF0>&L)(YZ%?SK7l+46zIIAapzpg>UN6nW&j%YtS07#u zsSW6#etEY3bh7l)v?R#IcVrh^w@-@nQBmcM!&P<{BT80LHZWl@2dT6pugXyzREN~3 zm$+UBU%G}VKj-qXxZ)QV(RGdtcsyh=GDIiM_5(cFPW&K|_iVuMgxoOE=0ivEV_R{M z1yVtMX9zne5IKQ66h3ANasei+U>|xHP9Z|=boqs+%ma+g)j|tqgxnYC^|w zu-fWG(({uiGw zDXw>ixs4*#tt|E;Gx#v0e|drE({K>p48G3C$`|;}_Fgq`E|Jh%x&RscUC^o2`{g;m zRrQwsQAJCS@4DWR&9A4xb{@jgnjx4PDZAZB5UABeVF-N5&hd(=KP zThjl4pNT;P;X{ok!I-<2Y6q@Uj;!{37qpz$c|zgauk-lA;V60HMv=lsD3Stf14SCQ z#A0H&>`;(*)Xe+W1GAUGdFUH2tTn5Wli_zi6K=}jpnlNcF^ZhoO5PJE-lN%m>eOl6 zK+g$_O>a%FbO(&S7l;3Rh&1dY;yCWr_aAu_zNV>0g#mv%}4CZ=CKJJG2ODLTA zxFU$VTT!7-e#^hEJd4gg+H8h|r6AK_RB4|3ooP_rT;uGT?-;p^S=GW=)9@Ubo9!S+ ze9`ywCWe|yULo=oXO1u%(P3*ceFYxOpyXMR=K>c5uTbh1xgyX#8J#^#&Tb%h9U9K* zT#uOQ#g^4p`vcSS>A-8k=2<;Vs#b`zvQ+Fnsa$Al#-n%ypUh?4^R=ryD+0K-!fWlenAUZrF=`uIH8Y(P7KPM=;nhF_UB)QDu3wb0y{wCO+5$MeWr zs-gk=kVOP_KZ90N1hp4f-BU!Wo2^?-GselVkuK}>TzP8%T7 z(y9I?;zrV9(ALYP2htHzH75zjIgP{Jdgc7iuI($mhw`|M3X!c6?L_X{<+lNXlVa)A z{-(5PMwWs0H1foLPe@A|ah##Lj6S>^+2z_{Z0L(r;<)AMYX%dh5+n5|{xWSx%!p~V zPH1m*(7uJ1|3U=!yo+4)P+e)t(08<1@eT+Cr=-MJJMn%icXA8-xwKh0-uBT1hhUuP zA_0AeXG&&UbeX(#4Zl5ZV63Sv^oKAHd57Y&S@SVRtg?`w?jIg@q2=g1_cNkrbiGZ} z5EpDV@?kr_5P5pZzywTQ7-@GT~dFQQ&L`Gfh-4)H$J4_XxauMo2Ru z8oy&3>MF-r(OxJUfdA!$n|o;GJ%Z~H@I=Td@31|75oKtFyAx}eyCrv#@|7=Gf$Jca z`;_0jm*LouB3dy(q1DQ~mWK!1fIBBwu6j#2Ii(+~XG7gp`73$@$V9cMDn+I?&L$_D zc$2g{yYQF=?427qVAdAPJ2I{{1dF5KTejWU%ZaMr0YmtC|I&d zS$vFY$USR;*Fv|XgE^xdIzZzzfy09;LuXE-^hEiS9$2Svl4iFD#QGTZaJQh8-~lFQ@w7V#KNT6hX^aOcm4(4@&{AT|rlfk>lIjuZ;dIo1Y>bn%db3Kwq^zP- z!KkbjDWhhya>1-Dlaq7}ZhO4e+iW@wYw9sxy!S~U($d;DT02e!^U|uX<()6;*mu27 zBaQcdzX#8Zkf*Qye$R3mDI%>&OZAphT^l<|n|(-|oGa#K9!LI5652in>xgf0oHnUk z`Jp5ruIs)MD_KIWw;8x*vY1>B8S33}0i`zxiYoP5cpjxkv=23T&Xg<6CPqEZRJ5lA zYU5fpm8L{$pa0T~osy`H644^`QFk^Y9}Do&sIUaHkAZwNE3C!F;Dp}l)D$}qHov`^ z(ydL-)(+mS*tYi7#=bO^`u)w^_N&>X%*`Cg2Rnimv$W%Vxw!|&?vUFIg}*c4%@1nv zP9YROo?ZII5jVbPRQL=aEF6Y$w?sJa>0ks!o}iZ@4xyZw=lBd02af@SAW;eN5x1z2 z1%xy(NL1yu;%8e_EyoLH06bvF~N>eK~kR=NPFu2=+G@qD)Q)&8Hi~cG*~`Ky5kc?HxDxW z#!^{EM0n`JEd+W$`8d2#^`Y}S>rD^uH#4VCxlbB+E#sBC4Rir~A0@yHLl^|7CxW0 zrZXwI-P*9c)#ifi^fB#C(pm*8BxxHUC89=;quOrUM&;9~d;K7~^T?LQl6vU)Df^6FgMh?l#VmWJ`gu5L1(LV(cXDC zFflQG-qbR2WkM)(b<^LPL7Va9>Zb_pM$VehLR+@~;f`D`#T%{*OJZY*T>F!Dw(3D! z)uyc9Y7yY}=1tElNgFxq3yp|MtNoXXskiyO8 zx#U#s1QBWsEk+sDBDTRd7LI2&4gwJiTzciO0fMA#Y!tUV zhK2~-*pNirJ4n+@3t~@mt%)5!;+!&J`;1ogMUk&^nTSN^vuI1#7spG0L|`6%ayh;` z(bu_CPQQm^&UA#c3lxT;BnH+8z36)LgAuao>GT)DRsI0=zkNv}J=MQ+?U=+C8?fmLT$s;-&2_C{fqt<}t+ zkEYFH56Usjgm4_noY0UZtESz~BVL1vQYy-3COWhRv1c0vw#%G8J?hUQZBYkn4w3@v zmh9npej$epQ!PEPsdzH!P;}jy-4s<{Cb9^OEw*Z#!GR$?|2A5LrP8mq2by{A6EpZ_shF-M zDvY1pRVfIfzMBi?JH2Q79SxVFE1q=xsbZ0(o)YJX&&Sv0KrY=s&qCdKas%_-fh?e! zm+xW3$4}qQ`oFMLoxzQASl}=-D)zd(@COG!jBPPSD?Umr>3SUBEb-wxxuL^k;R4S~ zqSWl?O3I>)^;NRhqU zHHg3r`i^C{0>CyWD+jsi2U0%`5rl((fIQ}sI@(V@e0)v#E3w9-7Ba&wk6|2^Q6#}% zc?>8tDpQ0JGjXGS_%Wz0OgP3kc8=IoNhPl%Y;eZ)aXd`;AH2XAY?$V{rcCcDbPsWW ziJhYp zu1uab=@lh-&ll`=>p{An4MNMu17K`<#eTK#H6zb)vweoqIrOVH`{JcrAo6QN_Cmp? z#T8yW)s_8_Lq6}Oh`Oy4ref#_q+aue4wCfahcb4z8u)=x2R1^ zSmnq?KsNZJkas}T*=7*XwD>swTFMF`+m*8p%%;0HvDJN&@^l@qpREsmKLO#$q)+_V zCfj$&JlnU|4P7K3dcTs{Uw@py^En^*o3A-=W8!Q%J zp`Cqxd$E^&!wBi{mSU6Qik!D-XM+88L%-TV3JAK*2eF_SBId!!o0nkQ*UndnB8Ziv zm-?b_jypcA0^};!OFJ*1O%1=D*=rvi(=l$&yr2vIu$QEJt z!pgaKK)lJsB~Y~FI1p5aTpP+bcj(TwGV{Knfs{(G^_+1yRoL5#WyNsE_Ry(_j+=@8X zep9QI&jmy*_qn|s85jlVTP0+zPwNydR9NjI)NK@k>oeaN1}}k2hE~M+9l1lIsvu+I zXkAA6*70;ZUoLp)$Jz)nY#!+W^K`_nzJ$JRA9LzTjzX`>*!-M4BQOVSsvBK?MFHV+ zQ~MV2s{8<{Io?E#WkR52XrzZGIW~z9Ts{QdjJBS8Q%>{OXuKi3JB?RfH-P&JmKjF=a@yxOZAF+g5V*bn43&WXc6M zPYli|u_Y}0OQ;F5bD_PHWCU1D+_Y>TG+4WD3I?UKG z!d9^rWg=b_u(2KiHFy<~d|KAOmRo70?c!9#ouT-C=VXImu5{F}3`O<}m}6(f_ORt>W|j>aiQUDk1j)6;)h z&B@gr#ejpY*ejz_EXnQHG|$v^E>o!srUJf3Skhw|#cSriG_UD@PdpXt`Z9bw^@(OoO8EYxcXUK(i2?<;X)Zt2+maOk#|7<1nLP;myWo(l- z-i5yFq+w9aMW17>l2I;S=%pAkZFHc_ zPE-P;=*ang>gf^Z4%>Uv>>fxp8di_GH$ZjD3m>c8dZL-K2KuOX@Etc@_iPB|fYT!& zxmv1p3qz)2GDP`Fuln0Bp88E%_@>#>>=T`QZzWpHz3}ps9_Fg3zRC#Yo{-)~kdQ)1 zf9H!*V980H9lztL8kJfQ%bTRrQDH@2IolZkR?Jdd;XZo?Up=7tz#GU*`7=yvMSzDZ zrzy_w;0@OyOGteA1(7PAusevj_;BfnUuAN<%97$;IHLv;og3ls=l7LaE0=Z_zkr{# zvcL~HRE%gg*I#ayIlbifO)~TnfPQ9E-C9iAn)Q*NOI|nKsGMuqxhj_0loH`gkkIOD zJup^L0h#ibj;F8c=y3}zwM_Idx}8Gx(+4>W6!A+kw(UubqbfN>yUiFoE(E8``Yemb zJ|ryT^vd+wi#>$vHy;&8-co0<1!x7MxcLxP_*-4RQXSiTjIgyb1`>Jp)35rK1s@|e z704XLuraebe#*YN&*?-w)KaRjOrwwM(<*qE$lHPSgHA8oqi0AyO4NQK+y1`f+4F;P zBk^uGvRVBveZ=4{K_myZnpYHp#JwYjzVIjDbv7nZX)c4KEzFgLr-Ee=vd~h<03Szo z@besQ+hFeFN83C3Or8&m^<$7U)CJ=MuDyG6B`jYKzF!|X_E(Ad$Pu=l9(2W>>(T|* zkz%jl6h~JX{BgktcgFFX$0gN>2kk%PfYiy;6BDLO3F~I%6Vyqs>BMt~Wll^- zzlIYmFL^!I)lA(`=R>x~kF@7nP+m|3BR$;b73u8a8yY#mV4-Z|3{z}-Gr}D(t{K*G zMLR~op8oYs5-a|VNSuhXU8PQyo)}jIAf-d?B4ej~oBI?$B-WCca!nsBU>`N-P2n}_vQXzsI z9%8*DPQqXf5i_Kf8j@Cv8TDCae-^TOPN}))EL-7b%t4By0-4G4rX3pZb1~ z>q$)5@Y5%Pein+ALpyYZa<9Pzj7~iHzDY{k&g`PWA0AXFrd0sgM!Z7OU&@R}ykbK1 zE)|(%iY@gZE4B%A3w~Akpj;S>H%I&xn6ofwoMzNms=bJhAdu&TuC*{uJzv@EORN1s z3V(|o#`Ma<;Ec`XXwPy^!glnQ5UN_^{7LH60YSnNhQPNg9qXT>26gn{IT;fb-z3&8 zHjVP8kz$FT0v^<(u}jU=;w)R7HTax;s=gT(j_tiIO8XhJwM)zpy3pn~Ry_6R8jqO* zB&J_{=Y8MS{z}rvB6PQtpt=VOaokCJdx5;E*)XTEIgr}Y_gsSNQVYKInH=akOVZ#O zl2}C~&p}Hz?m*;8(zEV5FxK?ft~AV}hFA2e5#9JrO(X_M!Ne+WKL%-M888WB@#`hg z&4*8E@h}g^ByQ^HrV>l2J0fi3R5+`bp}(6_Bkr=FL*1*;9c+R}#;#1|n~^x;)VB7o z#u`RKYNob|(A_il&=nBrN9&lI4!lkQLcif=Yx$@5qfgKao+ERj6XlWG%gDd=m|m5G9JF8nh=O&#GLK|)9NzFC5ri2Jnm%aYov zaZ60mNAE~n;)n+ZHBkbyB)eFxvLt0~WcH})?S@v8xs3abJm_kuTIIVlmOdph6+dHQ zDhUxHlGC+i^3+U2p9B+Pd5fru$kZ8sm~Cik{Px40JWnuz88vCcE`EeIbVFnDutB|& zEk(FM*YEjZG@zI?x<^m-yJrRRv{h>`fxz>{XFgXC+^=2zjGu;zU-??4E_|v4M|#}^ zLSxMoI?=VpP@_9cuHNzcIr41oq3RVg)o<6R=L2w;z8~~*M{dA_#4jHfTAmOFZazrJ zUkReSI>oYSORZ=LcMigwfi6Y#qjwBqwmpRRIU>#aPVRYMk^S!mb~6i~iC}tdK9+#fjwR>l$ z-cEP61wZ3hjAI1M%HtLD4boJI@cncjXUQeH`S;7tU6r2i4s>EkdZW9VY2Man$bC)@ zbc|i9F1?DIbT9Y^>RFyW!lIyVd46`7U`Jka0sNqw{3SbxpkgccIdfX-r&Uo|?W4ZS zm~@AejeM=`^zlPxQ1l_cv8?LpN~dW-u?6qE)Ic&&NUvJk;AvYAO5UlIUTk|oy5$Gs z{G0TEM8xBhbE_1sJj$>8Ot!)J0z0?{EIA#F0!qo-rrM8wk_Kn4URo8hda$#{(hqI~ z$<;hX|Vx{el2Qy_*^xLIIN8y#)6I8;FVo(_Rt+FYdG_ARrP7 zO!kWk7E$Ia)G273zZIgIF%zFl26Tu6DG4+;h6P_XeHg^QOpNNO?oNj8L`3ZEC-3jZ zm2F=^5z03WnQBu5ZpmNAWMJowTy`0Mow%Tq0Nq65q-;V0@t zhd5%TC2ueEpQ+oN7WMYRqfd)IjLqpbRAM_0R+V#Zb>4Ssaq>X?y7OWKfse4WrZFb8 zQzKt?I4ODMaLgw-rJi@PNC~fI^nHe*IjdY2wK>(KPtTm+*ZF?FV0zPq(;wiV9;1^S zUNp2()I3Exjg(^;VeO3Dc;P9*tAZ9W5f$ zYogwvmgqbfNMzIV4YHUfJA>>hfL`2C5~T`NH>Glh2%L@p`a(^HhV3y?y6buWj##jO}?-^+Q03& zUUvz?jkk{dWsIXAwdA+>!!MpV^>-mY-R2V>RQE%gW*1axboJgx8AZOQ%Rey!YrNM) zj{OrM>wXe4R_yIe+}>MlV2xgLgPt}=FC>2A_khz2nqc`aTnI8=!WEic-$o2^HFnq; zz{7MA_68{$B};e}vUVZ84O9=Ul43uC#nYN7@^8ZQcw90LvGCR$K5<40%I`_B>PE6? zrhF=}E?SkXRh}bzikUB!8~@fO!=AA}u|u9XjWS=Efi6sQiOo8r2rO^~Dn@jxBrc0a zs93qc!!KEsy7(X#CA9fP1xWTKI4tpTKyi5nR{yT0)4u%jMnPEBV95qWxPG6)ua@#m zx3y#yBLqt0Uy(IGAMBegk16h^eNeW1E*Yb=U~exVlWcDlCE;d7p&t@IT@abEuyytIr$G`rM@2u;{+$vhPe#-`mO*X930DE_?GgmWeUiLX&?yZ;m|aY6fm!L zDFeAXhQT=7$sotGy{rd2j5c}i%4DCl=m1RLQGlUlLZ+_0; ze>@VTd@VS&V+1Cj!dgW(~IPvIXyl;(gKl(#iEnHtS@TNUWg=sfz%0#yh+ z>pe)Y6Sk$n4b{5LQJmX45U>%3H2nlEe|F-)h9D+R$WPw?% zcV3kex*!KCFh|m!M6ZsO(NE zummK4NuS(GPs{J5QGcYlx6;vfchZSJ(!E=0)%!as-SWK!k!7efwfau#{YM&iEA{(u zCoS5(XJ>AuCUtjGlRn(_5?n31H!Nf`8Ln09jfF z5&{^S?sQdubUd4BsYQ1>^cI*deHBOmYa`L2KF8mov622)Yz|s)NixWjRUjTLhpg(2 zuKOH*w%_S;R_~kIwO^>H5wt>=p=K!m3h{i$Ey@nFU?(winGKOxhx+K>3G)NGFV=nJ z)z_e<*6O;GM*orK-by)o?xY;c@W_z)H6RA8Qhwa3FuvWXXxHz}2(3eYjpHN|9NfddV)^V69zsD0cmP@4yss0<7r@`mkcBNEAyDPl zy^?wBz6YAo+CiG`l+ri%O5Z=qrN@BL2AC2c2oK5Ig$@w6Z5S4l3aqzlkohfWxY&Sq zDlBN@gjL~WC4ty|GD^fdoxvYniPq=byZiuz$alKiMh#0BW*dWfpAH@MPRB+KxNF)l zAn6iQq~*?^8?-w>bmzX2egdZswLlx`zfU{o7&D5RkX{kl5T6fZQue+PFR=awgdQ19LkaMEWj2aW%k>jB;!>au&^Qn1DLy8jzp zBe+FbV14bJ(}TF_KMhV3-5Essac?k1{Zrk4qk|9bP>nw*>y$~GCA8~FLeHgtpXIwi zcWBNZw9ZcY*BI0R;eQq0`XOZK2ap+76YE2jHxrO2dq6^XZ-~S;G$h=6_ijE30rGesdLDRBd#7WS0w6=k_U~&+ zTZFKT1nT5#=qUGhEpap4@n+Dj4GZc;!l#{es7uhVfByrGV!lH^%0W#x{<#d%$}`iN zSA>IWD1d__{i}DCvflF0l}vN@of_=`+NnSK-AP3cfDd53R{vJ|A>d9Le*h$cjcC2$ zuZM3(QCg@QRDYQz3lr_WDouCj8zm zbQRd$wZYWE7sT5CWX~e+*}*^T?FzB~_F*Ubo`o(QyR$o%j@J9%>{9GK>-L9j5s0>L z_)i}u;_umye^}VUv;SlV67E^(g0wpyDl|tki=gZ(w58Mh72lqud)Dk2NC>M7l8C2` zzoD%4zv|+B$~{~C$8LJ4{+uu_9NZk^Kd%k;(qJqpC!3{{xu@qpFERhO{0-XeDE@ND zt{C#{1Ulg$djcedHPH?1YtJ62-xSc+O#T;2@b(sEg;D>v$O#UP=r4+-0@8m1q=8XF zJ~&T%8si+AT5k_3 zK>;$R|GA>}HN!sZg+^N+6Aq60uPAw)!cam;8Z;rSwJghjMEU|PQ84uO;lW>Q$WOrS z)DbN#qf00c2!w+So&yOWOcy{9tgvnx)Q^;*A#s5kp#3ZHbCf$2I_-oHiM_Zl?5hi? z6@2vnsSqK97r;j_Q~#K>`k%3aX9Jl3<6$#cND!9GdwW8cP@YWDpaKvb z5fIMJ-i6K0#r7Y~7SayYtACS%={f%cP?_+!{Mw2Q2e%LXf4eyK&tJi_Qw>-uuK!2{ zVZH*Al1^Fx;k2xsoc;#j;BN1)&7lAwyaDp`3iuFqvz!AJ0IM5-kb@B*@&9+p4#QRc zXtRR*f8f>^KmY&$ diff --git a/script/data/pucks.py b/script/data/pucks.py new file mode 100644 index 0000000..7a0cc43 --- /dev/null +++ b/script/data/pucks.py @@ -0,0 +1,14 @@ +def get_puck_names(): + return [str(a)+str(b) for a in BLOCKS for b in range(1,6)] + + +def get_puck_info(): + ret = [] + #for puck in get_puck_names(): + for puck in BasePlate.pucks: + ret.append({"address" : str(puck.name), "status": str(puck.status), "barcode" : str(puck.id)}) + return ret + + +def get_puck_obj(address): + return BasePlate.getChild(address) \ No newline at end of file diff --git a/script/data/samples.py b/script/data/samples.py index 7db91a4..0580943 100644 --- a/script/data/samples.py +++ b/script/data/samples.py @@ -1,23 +1,279 @@ import json import org.python.core.PyDictionary as PyDictionary - +SAMPLE_INFO_KEYS = ["userName", "dewarName", "puckName", "puckBarcode", "puckType", "puckAddress", + "sampleName", "samplePosition", "sampleStatus", "sampleMountCount"] samples_info = [] + def set_samples_info(info): global samples_info if (is_string(info)): info = json.loads(info) if not is_list(info): raise Exception("Sample info must be a list (given object type is " + str(type(info)) + ")") - #for sample in info: - # if not (type(sample) is PyDictionary): - # raise Exception("Sample info element must be a dictionary (given object type is " + str(type(sample)) + ")") + #Sanitize list + remove = [] + for sample in info: + try: + if set(sample.keys()) != set(SAMPLE_INFO_KEYS): + raise Exception() + except: + remove.append(sample) + for el in remove: + info.remove(el) + print "Invalid samples info element: " + str(el) samples_info = info - return samples_info + save_samples_info() + #Trust beamline on assignments, so update puck info + update_puck_table() + +def clear_samples_info(): + set_samples_info([]) +def save_samples_info(): + data = get_samples_info(True) + output_file = open( get_context().setup.expandPath("{context}/samples_info.json") , "w") + output_file.write(data) + output_file.close() +def restore_samples_info(): + try: + inputfile = open(get_context().setup.expandPath("{context}/samples_info.json"), "r") + info = inputfile.read() + except: + print >> sys.stderr, "Error reading sample info file: " + str(sys.exc_info()[1]) + info = [] + set_samples_info(info) + def get_samples_info(as_json=True): global sample_info - return json.dumps(samples_info) if as_json else samples_info \ No newline at end of file + return json.dumps(samples_info) if as_json else samples_info + +def has_puck_datamatrix(datamatrix): + if samples_info is not None: + for si in samples_info: + if si["puckBarcode"] == datamatrix: + return True + return False + +def add_puck_datamatrix(barcode, address = "", dewar = "Unknown", user = "Unknown", puck = "Unknown", type = "unipuck", sample_prefix = "Sample"): + if has_puck_datamatrix(barcode): + raise Exception("Datamatrix already defined: " + str(barcode)) + for s in range(1,17): + info = \ + { "userName": user, \ + "dewarName": dewar, \ + "puckName": puck, \ + "puckBarcode": address if barcode is None else barcode, \ + "puckType": type, \ + "puckAddress": address,\ + "sampleName": sample_prefix + " " + str(s), \ + "samplePosition": str(s),\ + "sampleStatus": "Unknown", \ + "sampleMountCount": "0", + } + samples_info.append(info) + save_samples_info() + +def remove_puck_datamatrix(barcode): + remove = [] + for si in samples_info: + if si["puckBarcode"] == barcode: + remove.append(si) + for el in remove: samples_info.remove(el) + save_samples_info() + +def set_puck_datamatrix(puck, datamatrix): + if puck is None: + puck = "" + if datamatrix is None: + datamatrix = "" + if samples_info is not None: + for si in samples_info: + if si["puckBarcode"] == datamatrix: + si["puckAddress"] = puck + elif si["puckAddress"] == puck: + si["puckAddress"] = "" + save_samples_info() + +def reset_puck_datamatrix(puck = None): + if samples_info is not None: + for si in samples_info: + if (si["puckAddress"] == puck) or (puck is None): + si["puckAddress"] = "" + save_samples_info() + +def get_puck_datamatrix(): + ret = {} + for si in samples_info: + if si["puckBarcode"] is not None and si["puckBarcode"]!="": + ret[si["puckBarcode"]] = si["puckAddress"] + return ret + +def get_puck_address(barcode): + try: + return get_puck_datamatrix()[barcode] + except: + return None + + +def update_puck_table(): + dms = get_puck_datamatrix() + for barcode in dms.keys(): + address = dms[barcode] + puck = get_puck_obj(address) + if puck is not None: + puck.id = barcode + + +#Sample mount/unmount + +def update_samples_info_sample_mount(puck_address, sample_position, sample_detected): + try: + if (samples_info is not None) and (puck_address is not None): + for si in samples_info: + if str(si["puckAddress"]) == str(puck_address) and str(si["samplePosition"]) == str(sample_position): + if sample_detected: + if si["sampleStatus"] != "Mounted": + si["sampleStatus"] = "Mounted" + try: + mount_count = int(si["sampleMountCount"]) + except: + mount_count = 0 + si["sampleMountCount"] = mount_count + 1 + else: + si["sampleStatus"] = "Unknown" + save_samples_info() + return + except: + pass + +def update_samples_info_sample_unmount(puck_address, sample_position): + try: + if (samples_info is not None) and (puck_address is not None): + for si in samples_info: + if str(si["puckAddress"]) == str(puck_address) and str(si["samplePosition"]) == str(sample_position): + si["sampleStatus"] = "HasBeenMounted" + save_samples_info() + return + except: + pass + + + +test_sample_data = [ \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0001", \ + "puckType": "unipuck", \ + "puckAddress": "A1",\ + "sampleName": "MySample 1", \ + "samplePosition": 1,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0001", \ + "puckType": "unipuck", \ + "puckAddress": "A1",\ + "sampleName": "MySample 2", \ + "samplePosition": 2,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0001", \ + "puckType": "unipuck", \ + "puckAddress": "A1",\ + "sampleName": "MySample 3", \ + "samplePosition": 3,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0001", \ + "puckType": "unipuck", \ + "puckAddress": "A1",\ + "sampleName": "MySample 4", \ + "samplePosition": 4,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0001", \ + "puckType": "unipuck", \ + "puckAddress": "A1",\ + "sampleName": "MySample 5", \ + "samplePosition": 5,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0002", \ + "puckType": "unipuck", \ + "puckAddress": "C2",\ + "sampleName": "MySample 1", \ + "samplePosition": 1,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0002", \ + "puckType": "unipuck", \ + "puckAddress": "C2",\ + "sampleName": "MySample 2", \ + "samplePosition": 2,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0002", \ + "puckType": "unipuck", \ + "puckAddress": "C2",\ + "sampleName": "MySample 3", \ + "samplePosition": 3,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0002", \ + "puckType": "unipuck", \ + "puckAddress": "C2",\ + "sampleName": "MySample 4", \ + "samplePosition": 4,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + { "userName": "Alexandre", \ + "dewarName": "TEST", \ + "puckName": "My puck", \ + "puckBarcode": "AAA0002", \ + "puckType": "unipuck", \ + "puckAddress": "C2",\ + "sampleName": "MySample 5", \ + "samplePosition": 5,\ + "sampleStatus": "Present", \ + "sampleMountCount": 0, + } , \ + ] + \ No newline at end of file diff --git a/script/devices/RobotSC.py b/script/devices/RobotSC.py index 2024fff..fb61510 100644 --- a/script/devices/RobotSC.py +++ b/script/devices/RobotSC.py @@ -22,8 +22,8 @@ joint_forces = False class RobotSC(RobotTCP): def __init__(self, name, server, timeout = 1000, retries = 1): RobotTCP.__init__(self, name, server, timeout, retries) - self.set_tasks(["getDewar", "putDewar", "putGonio", "getGonio", "robotRecover", "moveDewar", "movePark", "moveGonio","moveHeater", "moveScanner","moveHome"]) - self.set_known_points(["pPark", "pGonioHome", "pDewarWait", "pGonioGet", "pScanHome", "pHeaterHome", "pHeater", "pHeaterBottom", "pScanStop","pHelium", "pHome"]) + self.set_tasks(["getDewar", "putDewar", "putGonio", "getGonio", "robotRecover", "moveDewar", "moveCold", "movePark", "moveGonio","moveHeater", "moveScanner","moveHome"]) + self.set_known_points(["pPark", "pGonioHome", "pDewarWait", "pGonioGet", "pScanHome", "pHeaterHome", "pHeater", "pHeaterBottom", "pScanStop","pHelium", "pHome", "pCold"]) self.setPolling(DEFAULT_ROBOT_POLLING) def move_dewar(self): @@ -31,6 +31,11 @@ class RobotSC(RobotTCP): self.wait_task_finished(TASK_WAIT_ROBOT_POLLING) self.assert_dewar() + def move_cold(self): + self.start_task('moveCold') + self.wait_task_finished(TASK_WAIT_ROBOT_POLLING) + self.assert_cold() + def move_home(self): self.start_task('moveHome') self.wait_task_finished(TASK_WAIT_ROBOT_POLLING) @@ -141,6 +146,9 @@ class RobotSC(RobotTCP): def is_park(self): return self.is_in_point("pPark") + + def is_cold(self): + return self.is_in_point("pCold") def is_home(self): return self.is_in_point("pHome") @@ -175,6 +183,9 @@ class RobotSC(RobotTCP): def assert_heater_home(self): self.assert_in_point("pHeaterHome") + + def assert_cold(self): + self.assert_in_point("pCold") def assert_heater(self): self.assert_in_point("pHeater") diff --git a/script/devices/Wago.py b/script/devices/Wago.py index 6650c86..c6fe109 100644 --- a/script/devices/Wago.py +++ b/script/devices/Wago.py @@ -125,7 +125,7 @@ def release_psys(): # Drier ################################################################################################### -MAX_HEATER_TIME = 15000 +MAX_HEATER_TIME = 45000 def set_air_stream(state): diff --git a/script/local.py b/script/local.py index 168cd01..1d173b2 100644 --- a/script/local.py +++ b/script/local.py @@ -7,6 +7,8 @@ from ch.psi.pshell.modbus import ModbusTCP import ch.psi.mxsc.Controller as Controller import ch.psi.pshell.core.Nameable as Nameable import ch.psi.utils.Chrono as Chrono +import ch.psi.mxsc.Controller as Controller + run("setup/Layout") @@ -76,6 +78,7 @@ add_device(img.getCamera(), force = True) ################################################################################################### run("data/samples") +run("data/pucks") run("motion/tools") run("motion/mount") run("motion/unmount") @@ -88,6 +91,7 @@ run("motion/move_gonio") run("motion/move_heater") run("motion/move_home") run("motion/move_park") +run("motion/move_cold") run("motion/move_scanner") run("motion/dry") run("motion/homing_hexiposi") @@ -216,7 +220,7 @@ for l in dewar_level.listeners: dewar_level.addListener(dewar_level_listener) dewar_level_listener.onValueChanged(dewar_level, dewar_level.take(), None) - + ################################################################################################### @@ -230,10 +234,15 @@ cover_detection_debug = False def is_puck_loading(): - return robot.state == State.Ready and robot.take()["pos"] == 'pPark' and feedback_psys_safety.take() == False + return robot.state == State.Ready and robot.take()["pos"] == 'pPark' and \ + feedback_psys_safety.take() == False and \ + not guiding_tool_park.read() update() +add_device(Controller.getInstance().basePlate, True) +restore_samples_info() + print "Initialization complete" \ No newline at end of file diff --git a/script/motion/get_dewar.py b/script/motion/get_dewar.py index b082cf6..d0559fc 100644 --- a/script/motion/get_dewar.py +++ b/script/motion/get_dewar.py @@ -4,7 +4,7 @@ def get_dewar(segment, puck, sample, force=False): print "get_dewar: ", segment, puck, sample, force #Initial checks - assertValidAddress(segment, puck, sample) + assert_valid_address(segment, puck, sample) assert_puck_detected(segment, puck) robot.assert_no_task() diff --git a/script/motion/mount.py b/script/motion/mount.py index 815dce6..a153c17 100644 --- a/script/motion/mount.py +++ b/script/motion/mount.py @@ -4,7 +4,7 @@ def mount(segment, puck, sample, force=False, read_dm=False): print "mount: ", segment, puck, sample, force start = time.time() #Initial checks - assertValidAddress(segment, puck, sample) + assert_valid_address(segment, puck, sample) assert_puck_detected(segment, puck) robot.assert_no_task() @@ -45,8 +45,11 @@ def mount(segment, puck, sample, force=False, read_dm=False): smart_magnet.set_mount_current() try: robot.put_gonio() - robot.move_dewar() - if smart_magnet.check_mounted(idle_time=0.25, timeout = 1.0) == False: + robot.move_dewar() + sample_detected = smart_magnet.check_mounted(idle_time=0.25, timeout = 1.0) + #TODO: Should do on finally? + update_samples_info_sample_mount(get_puck_name(segment, puck), sample, sample_detected) + if sample_detected == False: raise Exception("No pin detected on gonio") finally: smart_magnet.set_default_current() diff --git a/script/motion/move_cold.py b/script/motion/move_cold.py new file mode 100644 index 0000000..52dc9c9 --- /dev/null +++ b/script/motion/move_cold.py @@ -0,0 +1,18 @@ +def move_cold(): + """ + """ + print "move_cold" + + #Initial checks + robot.assert_no_task() + robot.reset_motion() + robot.wait_ready() + robot.assert_cleared() + #robot.assert_in_known_point() + + #Enabling + enable_motion() + + + if not robot.is_cold(): + robot.move_cold() \ No newline at end of file diff --git a/script/motion/put_dewar.py b/script/motion/put_dewar.py index 2f66fae..7d5c74d 100644 --- a/script/motion/put_dewar.py +++ b/script/motion/put_dewar.py @@ -4,7 +4,7 @@ def put_dewar(segment, puck, sample, force=False): print "put_dewar: ", segment, puck, sample, force #Initial checks - assertValidAddress(segment, puck, sample) + assert_valid_address(segment, puck, sample) assert_puck_detected(segment, puck) robot.assert_no_task() diff --git a/script/motion/tools.py b/script/motion/tools.py index 2cc47d5..2be0cbf 100644 --- a/script/motion/tools.py +++ b/script/motion/tools.py @@ -128,7 +128,7 @@ def update_tool(tool=None, x_offset=0.0, y_offset=0.0, z_offset=0.0): robot.save_program() -def assertValidAddress(segment, puck, sample): +def assert_valid_address(segment, puck, sample): if is_string(segment): segment = ord(segment.upper()) - ord('A') +1 if segment<=0 or segment >6: @@ -137,4 +137,20 @@ def assertValidAddress(segment, puck, sample): raise Exception ("Invalid puck") if sample<=0 or sample >16: raise Exception ("Invalid sample") - \ No newline at end of file + +def get_puck_name(segment, puck): + try: + assert_valid_address(segment, puck, 1) + if type(segment) is int: + segment = chr( ord('A') + (pos-1)) + elif type(segment) is str: + segment = pos.upper() + else: + return None + return segment + str(puck) + except: + return None + + + + \ No newline at end of file diff --git a/script/motion/unmount.py b/script/motion/unmount.py index d12f73f..ebebf29 100644 --- a/script/motion/unmount.py +++ b/script/motion/unmount.py @@ -4,7 +4,7 @@ def unmount(segment, puck, sample, force=False): print "unmount: ", segment, puck, sample, force #Initial checks - assertValidAddress(segment, puck, sample) + assert_valid_address(segment, puck, sample) assert_puck_detected(segment, puck) robot.assert_no_task() @@ -34,6 +34,8 @@ def unmount(segment, puck, sample, force=False): smart_magnet.set_unmount_current() try: robot.get_gonio() + #TODO: Shuld check if smart magnet detection is off? + update_samples_info_sample_unmount(get_puck_name(segment, puck)) robot.move_dewar() robot.put_dewar(segment, puck, sample) finally: diff --git a/script/test/TestCameraStability2.py b/script/test/TestCameraStability2.py index 30ef8bc..c6ef878 100644 --- a/script/test/TestCameraStability2.py +++ b/script/test/TestCameraStability2.py @@ -1,11 +1,14 @@ -cover_detection_debug=False - -for pos in ['A', 'B', 'C', 'D', 'E', 'F']: - print "Moving to ", pos - hexiposi.move(pos) - ret = run("imgproc/CoverDetection") - det = ret[0] - print "Detected: ", det - if det != pos: - raise "Position error" +cover_detection_debug=True +while True: + for pos in ['A', 'B', 'C', 'D', 'E', 'F']: + print "Moving to ", pos + hexiposi.move(pos) + move_home() + move_park() + time.sleep(2.0) + ret = run("imgproc/CoverDetection") + det = ret[0] + print "Detected: ", det + if det != pos: + raise Exception("Position error")