From 502aa60e6d31f909520ab1a53e83080eb27b064b Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Sun, 28 Nov 2010 15:35:59 +0000 Subject: [PATCH] Add Splash Screen --- gui/MotorSim.java | 8 ++- gui/SplashWindow3.java | 55 ++++++++++++++++++ .../visual/workbench/MotorWorkbench.java | 2 +- gui/splash.png | Bin 0 -> 19049 bytes 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 gui/SplashWindow3.java create mode 100644 gui/splash.png diff --git a/gui/MotorSim.java b/gui/MotorSim.java index 6f1a07f..3352311 100644 --- a/gui/MotorSim.java +++ b/gui/MotorSim.java @@ -1,6 +1,8 @@ import javax.swing.SwingUtilities; import javax.swing.UIManager; +import com.billkuker.rocketry.motorsim.visual.workbench.MotorWorkbench; + public class MotorSim { public static void main(String args[]) throws Exception { @@ -14,13 +16,17 @@ public class MotorSim { } catch (Exception e1) { e1.printStackTrace(); } + SplashWindow3 sw = new SplashWindow3("splash.png",null, 4000); + final MotorWorkbench mw = new com.billkuker.rocketry.motorsim.visual.workbench.MotorWorkbench(); + Thread.sleep(4000); SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { - new com.billkuker.rocketry.motorsim.visual.workbench.MotorWorkbench().setVisible(true); + mw.setVisible(true); } }); + } } diff --git a/gui/SplashWindow3.java b/gui/SplashWindow3.java new file mode 100644 index 0000000..86a8a85 --- /dev/null +++ b/gui/SplashWindow3.java @@ -0,0 +1,55 @@ +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.Toolkit; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.JWindow; +import javax.swing.SwingUtilities; +class SplashWindow3 extends JWindow { + public SplashWindow3(String resName, Frame f, int waitTime) { + super(f); + JLabel l = new JLabel(new ImageIcon(this.getClass().getResource(resName))); + getContentPane().add(l, BorderLayout.CENTER); + pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + Dimension labelSize = l.getPreferredSize(); + setLocation(screenSize.width / 2 - (labelSize.width / 2), screenSize.height / 2 - (labelSize.height / 2)); + addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + setVisible(false); + dispose(); + } + }); + final int pause = waitTime; + final Runnable closerRunner = new Runnable() { + public void run() { + setVisible(false); + dispose(); + } + }; + Runnable waitRunner = new Runnable() { + public void run() { + try { + Thread.sleep(pause); + SwingUtilities.invokeAndWait(closerRunner); + } catch (Exception e) { + e.printStackTrace(); + // can catch InvocationTargetException + // can catch InterruptedException + } + } + }; + setVisible(true); + Thread splashThread = new Thread(waitRunner, "SplashThread"); + splashThread.start(); + } + + + public static void main(String args[]) { + SplashWindow3 sw = new SplashWindow3("splash.png",null, 4000); + } +} diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java index 098cf88..c2c4031 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java @@ -57,7 +57,7 @@ public class MotorWorkbench extends RememberJFrame { setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - setVisible(true); + //setVisible(true); } diff --git a/gui/splash.png b/gui/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..3e627da20ac5c735510d3a98522ae67c3bde3d79 GIT binary patch literal 19049 zcmY&=b97|Q^LK1+>}+h?wr$(Clih4=+qO2glZ|cL#w5RazURDuymMymow?Jex~uwA z)m3$?Z-kP9BqAIx90&*qqO_El3J3_O5b*mg3>5I_Oy6w_JVCgMNUOmBUw$xVe}KPX zousr~f$dlR`+$m2WqAQF;<$-xxv4r@xOp18n1gtFdNNo$*t(h;JDD>$x>#mi^WlPk z5Q9jI39ET!U*>rF=?%BM_ImoN-wY?xwZA}(pySn_bwh%Y{qznCTa;Xv6%i4+7YTs% z{s~(EAr-8I-yzS)QQE%0?W@}0v$lPG6PKc~PO+8ZQPRS0=zlG_?rV9RtNVO9mBDIR z+;shs6D>rH5-q}(NEXwK02VC7L}C^8js^o!gkcN{2N9wir4$4fY_v#%o-ag<-C`B? z^}qjO!e;-w>_*bj_us#T%CL}BC@>P#1JM7S=>Pwd2q>HcB(C&8xrV7yRXk`f-RLSY zanvSp5$ql~dUms!6||x32XThw)$4@5)DG-^^Q%;J{EtEOLD{8r`x-qn@{(D zM=yW3H^0|k^L*B*0z$&;MTx|+Rpg3gq>6Q;jo)Y5RR>BHOE z{oCoOMs$vW;b|K$id08*$l=e9zK~`Sdg;T{juicu8~hwhcii4G%oyA#3Hb(LBKIjY znAyE2=Ygw&{;SgdqmjLrxS-?^Ef`2DY-P1Xu?B-t?4*Prp}BN5sbZHr(uqvCFA>iC31awz@v@g+-24lp#` zVBHD{Cu>%0DoRR10RaNu-riPhnZ;u!EE!B0a_CrC2M=$not}*0NCYB;1^oy`I`S#w zQYqswL7c=3r?5JIC^rc+`3RY36G?`M{}7W)2_*>6V21{~6cJW|9hIn5j7?7?Qu9X* zC%UzF88F)0+ZWVycM}+9x(m0^M5u%Yo8%y6t@rb2AE#Tsc3k~$>d7#QbcVT_BJM2E zFk5{3?i0xpva)2oy}8B3#mg}kl_TjU-Q3;hwzmmYyg0Jxt*^@9@@B%PEe7|ToTO@w z{;q_-=9WSMF+}$3M|UoeifJ^IxIbLdxEPRzxw$!Z%t-Or?w!{_vObTFCt%N`vtiAS zD@TD$dOuxbG@uUojzFGZ01O=gH&jMEW_*mR3APGsQocq*RYgSvNCNm0zu- z#;t>EZV23|QP(p80u0oS1J9$A-v+%y+R>w?0CvleM(dD)6q;Z!(0luaND5?mNQ_iE zniVI*jKxH${1pKT9F0OQzq*>PcAqz;rc=sHdt}easA&x<+uwv0du<;XX3{bJKaIoI zkv7R5?-NTx?G_m>o3kpft+lvZZBW+VlDeqv?)G1`G(g}C=q2jhik-F~%_qhQ88k9W zGQKgyU5bRl4Umt(AP*${Zkzk$?8yg#6_+Q^zUfl*A9UV?Q zIgyqre-R}(AVXXWAqV4bL1SIq5{JB!5}YN#*C7m`Qe?#4-PyIZwefk}tQNIA8=Ttp zfN%lMGFp`-TO)JO?OP1-05q3OLJ)3I@HniFAOBe6RFD5hBIByG2r&xG+shAv`UJ8F zi=v2bP;IJSR0*m+WvK>*Nw*|r0N-mGIhAf+Yf)TbOLqBFB8rTw=7BuZjp%iNU=;+>D-7Qi)b1G&V z4K)=$ZnaLGdBu$H*r{-npjc_R(t-R41*pP!i^}Q#FVf$`4VL%Dpfd7hHToYqMBDDMJt~Z~*F0Y(D|Rv3Xg} z66pM8t9tF~#dCz9`d0}w6BM(sS&$_g4Dm|U2hdl*SA0oYa#$g?P>IGts}`3TQ-oKK zvdsDi$d&ySzIJb#bkqq+4vGGd9#H9ZL^$U|$Z&dhh#DW~)z5@yM=e>ixC=OE(X^7b zcff=zrEDR+tfm#ZBqz$LUr{$w1;pOCxet>uVw$x=CBW6H$l&H*QYqyW&tKJ!mSiy# z$$sLXcG+ctN9NGehEkC6gSQ;w|Ly3!^sOkeOiE5`n&$l1DEeb4>obh5NJ8}MdT z=onUWB`?=-meKO({|^sHvZW~n`6^X+8T8pqna+76{4m1zQoKaFb1@(FSO1LO(|!MZ ze)E-{{>ZNNw)4409nn_`W@ofC3zGw(XVM7iV(XlVnCI+H-ndfuFlS!!;rD3zB@voH zD6M!eNh}3AAD7mhis{%mdSr59yFtyYr>Jmz2s%krts7Z+$;57{Kmc_HCCR{~kvNB> z#o{kLOd?z%Qlb((CzZ7(6aH-0a}lyfLhl#UvVlC`s6Bnym{+JmEql$~dg$urPH4O^ zAINexAAw!7j4oS&Pp|Y#j^V6^X+NRb-6ua-=TQQT@N2Te3p;!b0Q>S-I*-)JodKZ_U1W`Pyuu|0KiX&8-j2!%&e$xpOP`ITQy3x0^6-T&`+7x@;!sw^Cq8KMCOTi8K5O5AXJ4 z?Rmt4WiyIuf|s@39@_7+27m|IRNywTTHLxt^vflPh1+RfF6Z8hZ}sXKb-JnyJ;oqz z#;SPQtiObN?b1fLgLLa*M0cnI(*5em5>E!((jT;9R6J=mP=OeiEO+uj%k`EJ z@OHd0Xw$<+R8i#ajzJCyAAaQLE>G*Ey~1?0&rK$}mSvt18H6l~tLuM8*ikrV1B)HQ z6+^*;C}GC@=O^~h-~0#^y^YC(wgRPLd&)uNZzp>mGsau0$gIZFIBVp;LTw}=lVAN0 zq32oY$WUO6+BSd-gZ0X=dWBkfv;?07DMu1c8_y>F&&52W;`o54=gvU~l4edeE&b@vPs=$txF#)IDyE&ul*Yphd9Z<6+ZA_}0!4 zA?eXl#BLtWpdW6wK~dQMzQ0W)8AcuQMl&h%jMk6P>JQCcbPY%+li$0{N(z=vfQ#Rn zoi$od;j&eHw8SO_8b=bj-K~h0SBRVV`;O-}9%@rTRZ9%`q`F$F9_x>?6QivrEgJ=< zuPJNhILi+}@@seb!dT@wtVZja9qIP8dc{)tBb1*6DN+(n+O?Y012MLJw3f{0)F!^) zGW%E~ku>g?Inik9rkLdc=rSLGuBk3Fw%-I)h;}mBhhJ-c?EK-)Z`H09_3F4%jb;%F zT%ZWHY&=Ysh|rE9L>+>Xbl!1Cm)V3Owy7$LV1~DxrrWt#OehunvhD*Kl9g{NOIbd6 zC5glEIN|d6IjjsKnnI6)RiWti09Jutf(<8xniQPclQN(ey2Zz=Ln*P?MDI+~YNIzr z(X)5RJWXDbGh~ZfI~6!bgWJ<7WYlaO=ylE)p%JG+7U))>?kVfm}6qA6UQ-GF0BW%J6U!&WdG|cJ#q4IW#{3?j`8ZmFc8AH_Qg0?WLl5E zHf*;U3g`AWV6^@A{*yWXjr$YU42kFqOI;l?+u!3Ht@>F``QrRs#+p;JM5Bl!<2Hky zs|M$FX;5&L45gUWIsrw!YQebTbjbcjsBQ*0LQl8LlBNgi+P@}X+S(QB0fPmvKp>^l zd$Ck=Men)RN`6VhL!AA346G8scZNp^VRj%A?1^$FH^fVQ7;nrYmCQ972vblH^f!r| zN#PkTQ>jqOl7pbr$i~5W6`!CA7Gfs72EP=pQAy(6j%sR$E&3@~a$;k<@q6J7Y{h^V zr>ULH{Nzm8FDEBQTAsdc*+yBr+KZLNDV^SUbpF5^4uTSz6cdIZ$~wxT;r#BTg1Up1 z{0bV(AePWSx>)R!3jb zO!mKtoH`}@FAJ6RhmS3M-e;I5OIf*`OrENlJ*U~ZIc75;!&P%ybgxZ~&cK!Cxopk! z2aE#j{0Q`FS|qmxkH-pKE%itz|189qChDC^Z zp*un?gqY}x)v^ADXL2WLwZGA`;ADe6`VcHG@lRQo;bbrwJ0zA|aEGS>J?Nj1 zOt#HBYHMp=_i!TcU&T8MC@>28^D3ZVi`faX3mx`{X2S}a7;z&b7^hD}&I|Iav&F<@ zLpLuAYiki(4n%7H(uuQ~QxNy}cNXSP*NUmY7+;9l`UL#4z{G|fdZmU8+8l27;Hm8}wW#i9*+=B1q<avuC&yWq`7-w`k^F1gz(5%~rC7+4O~gQ8J6n%$pp6ox7{hu4 zGBxO~lQK&4_Q{@CKY{g) z4K%`Cpy2&2D8A-hK7II!!BQYY+$gU6f)eRWU3io{M;9qKk8NQ_X=9%a7-WC#oJHZJe)bwL5DMT}Uutgks8NN2w??7=Pstz#$vwPj}ja z%)6VgE$Y&p+1$-8m$qcQ4CeG-)7%$Ho>R8rq(5TjNLrvrV@ zn0m26NgbpRh(+8EmZmW)M{r_F%BcPQ7`a?M1qB6{l)RmrGGMe_wovgmmQL1cN}^eP zX>7~Zym(Tduil<^^!YkwUC{U$KeDP4YUz00b9-cM38N*jza*^yEi!O59vsx8T7UAN zyDj%$Q)q(eX|5}dMH@t%c5bu7!^DIn(YM_uE+btiCz{j5;+HY^0 zZYwV;{?yi@>qsG9Kyyln3?<35eO=vDO4;HMG?i<1ZXO;q*Vhw`a9Q?X)6+=}mOXu& z)TPbJe*D#eH~ib)$7kh$GJPjd!|!QFG>5v9p4{Foz(V?q)pDWhT->gSH1Be4|MDDY z5I1RP#ls9Xv$o3g=w#~MeG&44&%W5yfxUc;@&^J1E1JcO#kf2t^U>qm9bTMQ#DY3y zaY*w6=<{$wM#S=g@YO@%y;r&S8TqrmC&4`mcsBIHR?AwYwS7+943?bC>=MkG*UkQT z^I0ge(|QM!c1;8P&|cC?+9&|}r!=WAvVq@e9sYU)cu-^nT876+MHvXt+=Fl7xk^A~ zw6}wpnOWu~zAzJ7pMhV>zD*!&-A)?jJ9B}QYj-5SvtrGv3s4kzTzc>l5D-L$W|(V> z`+m@^Z&;E}&IO>y^hU-WV>aI3|41ZV5)+sXnP}2s?1DkV!Yf_fF`Xd4uzm^34n9{+_-8+j>vwrxC3#^~lbpPKSliml zQkBk}(G|46;dgDnGHM%d<6Ig%Kv?SKu3s*}qTTV$bnL?!_`LoEL9*MC03-}1tI^;g zyg98k&h7vaB3zObhMcx zm+RnzCU znmHJ>Md{-$zqE5i%@b0f9)#|QKLs09tM7{|EU^{w@vCR8K@@Gga z-@c~Jh<3zv*NV$I`~--A`L@4X4#Ou`=b2)%lYU^J-TOSXNc?9W-z3Az6=eU~_u+EC zFG4~5KG$6YUalOGxh#Ev!rwdh;606zIA&}oo**hulsbLqci;r-+g{%@fm>_Kz6Vc( zg?W;y*4QH?JXKXKVLf8m*6*4kG#Dh5$K4kn>x#NKT}EC(q8N=0$BlsAJpL?>M#}>V z9vxjLk2NMsv-p&}(L?VtWqx;>2rU%?dU~&p9pM%oc?DzRQ!Qc?qmOlV{Oy*g=kO4kbGU+gXNdKc#UYoc7OT@&*VZFDH>Ca~vnDli2DhLao zrmq|r10m+(wj-c}t6;>0OO3Dk?-9~cMNb*EO`aRY=;C|{f2}F&xWfl1ByLDZIevf} z#Z>06JA{#QEKVbe|saGMgd$l)f|3O~BrG{T4@7Ol&ODZ~;A` zBGUBq$*v0qIbEG_rjV*WKV(UTt`@a3NnY8|0BzmjuW%v}BnT^88HuBs zr*qnZUPVI}P>CjPnRXfiulkm@hlzu@yY0X)wD-c{!s?F98UKroDgK+Tzvdb}k1XFk z-!IA^aaTJto(w%y4&8==4|Geari{Ml&Yj*5JKx7GfdDjJU*Am*7dW`T$F_zio3^#e z$!-S)d0%1nRhr=OIfi|rH@(Pxx{89+v~hwGlCrXDIg^ebEKo(vk27V^q2tN%_wr%A zfPE}Gy(i)1?1t9|yUbcsp7IF|E+0kMR*IOff&K^o(` z?Y_CI`+nI-pQx+LCdWuI{hfjsQ9mjLL z&8pjuEo!1&RS-H}6Z}em{yvdpPBBD=_PpHP-sq9r>KCPMzi<8nUTx5k%>Dggd#bFb z-3PhV3vG1yTXU7=Ktu3y$ftYZvxySuRjmm7`0mPfXQwiUPiz}qH=U%ns9sH)0}D ziEHVWtEZ^6d3AK#Pomo9H_I;Qq<@$%u}5bK#Oz1P#9nVq_SEQFbNR5TS-h0SYu?v%@F@ie!{@F#=C%Q-@M>=M9Wr>iLC~vdJ=^)w=)Stc&KQnN0Z}4s?u91 zujhT;w$HE@dmN?Kb6hXD@I|YONqw$F(cW$D*5&(UQ#^crRd-DI^%v~-$0Mus z4N{yJme*&JBFlm2cb%ssPJMbl1O84$4Nj$Dujd=K`b0D-i++n$_i1fhyO$e z#dyAD@$=(wl=r4dzjf1|d#5&FIg74+&sF)zT-#!)QByPzOW)mm^V%S=sE@EMN)T`h zZ9Ku)Rv-WEeQFGh>;CYZGzIzuX%YtVH9HPYU~~a4oAmr1rj5-{==8?2f5C&k-o@m> zQ}=~5vh?_V6TNq0DD(NfC=Mp)&DkCIe%}U8@zJjH-+o0g-oAFf{Ko9&X|zNJ+Jk@| zmzOO-cEQWGTWjn6y=fe%6403Lylvf3uHy$!SsZ-bt_qLQ|>AkeLjmJ5LO!p(JLWibpY#cVIm*x2;4*^Z!%mgUNx`}R;f!~vSQ$IGnthk5>PD)2T?gNlP-@7e`>!3dTR)Nxt}OEoUW3648p+kwH(xeYfT)V5 zsZy!<`__B2A8YtYQVlry`lQtJ@D*Ia^~iwTDvKeiH31In*ST&}Qc_Nu)F?{Vu{(FGcE9S@~ zks^3^^J9&aZ9 zyn&SQy%MVudF8*H%fNW}Lg#iO@&*Bn>>Vt=WEl~)Hg7nUH9aA(uErHJGqZR@`SDZ^ z^022A$^7GTJfGML0KRQ@1=mW=n?zmnysymG*LrZ16BsQ76rl(=42W?%U2mP9393q~ zb(gZW-}q>j(@0Cs>sQr&Z$|;O>MCT4)p>1s{tVUEM}{3Sk#}hCHLO4k(RGpV;h#>I znAd`gB=X-#$IRI(K}^a(o5e$h*O# zfjlUjb|imBOX2S}e|P3dZ}qo>po3$9%9OtP1a03^jX17{wd6Trl{F9;byoo)#lFU!ePR*H-Ycs-@m`!Iy(usik=@C0nDYlgSsjrL-<697Gc z-=^IHP4}6&3Wk0?Bx`j&faiMG>VOk_@s+hazJ#oeGo#6}ys-0(8V!cG&l8NL?sM92 zjN@>fq#(bvO&53^?loBcNo~uV;XDK1oOW{E@6WxK?={%K~-q~ zZr^FS(P=KL)lR-*7$;MrLiW8W9yRvwCP&}ZXcP%7An?*Q=6#>0Qxd4{l(UwgAFPb+ z5J^jwB7^=t53@z(x%MycgMb5e6T&`FQxQndQj10$=$btji-=A1%+dj6*H%vdY zQ`cH85O+F{Z43g>D}rxg22OD4@C-UECe*}N;`LDkcC}dDBO86Z_gHJ}atNdWJqWhM zZvCS~tY`hbkJt4mm(Min0iZ^{H>2H#A3Uvh2Xi19B_+*7$p3VoJ`mYBa*0yXl`Wr?YC!-nVO13?G*6-`6ibqn70w=!#RpfXtt5bj=$O- z3fO3KHJiyTr-F%_9NxM4KxF95!MpBi%1a$IKi3=)2w%jF*|(jDP%h>)&VMdO-2Ok^H80eW1$hVL=mpD!)756{?h<<>JN^jqlp?R}_gr}#ZX*?46Y1=6>@hV#tbTh3+C?sbTjRv#79edX>(U0L^t-wN|~ABmP! zm(Rs_s~_QK6Z3o1fyj!5ibz-fZFM_?)m~oSPU{KOQQ(6P+QSZ+_T!Tj*>!n1P0U^N zpg?V8Gel(3#(X(S0_z%F?Onl&4YkP=Y~o0Dp#BwPiIDT52O#g}4^Do9dig~$uq+Vx zb#Gv%PqdRIL*jc(SIMXsoeiMo*w`c6Bs}6;ccbo&i)@8yH%ZaJBZX+T$yqi6A9ZIT; zi^f@7D_^Y0;>}f!pMhL4ocZp)1@rv8JTVTCsT&;>4E+9nuc7V_&#DByHwDF?ZYOXdx|~}I^NAAP%WG1a5PwySNF7}?0JkzyZto$ z3SED~i2kkj8(gytl^aDVIfSo7jQ^ii;Ns_S6tkt7(aq)1fycw%MO{BLkqHO$lDwG6*5Wu8!-kXJ3Rz3$q(gTK+GyN^ zjAt}qUu_H?MxG!lcS>5!vYE{J$d_bV*GKxjaC~HmEOlT5XF3`yKYSOt1QEdd^8Esu z@8)TzfuyNI{7Cd!bRf`7wD* zE0{L)8GwTS$+ZnAGf)H^X(IR;(_nB0e(S`x@(B^guMQlC{-mw?9jc4=K~iF(`X0h? zwt#qjewqW$>%MJ`o{~oUQ8?s{<9a_xus!_*OOxK=1eu-Z8)xCCbM(WpR2f6dj2*+=DX0=%JPx5 zBeX`2lu$Q?uFVr>MPsw01 zg)+4%WVNH~dDaoXdfxGP1=E1`xK^U;oOCFw^*sZJi3J0ilM%Wql_!suqoC?ne6-T= z4@0Eu)r!yU2^MJ2>&tHF#GzN~1!w@iO8eVK*gMD;=&ER%E7J;wbR%$(4%7`G>cJqa zy&nV!{+)0%LT?>(dymqX%AQM0u;V6;T7SPb;JLLvls=!6!a5g1c24k?zaPN?qhcfu zYviaGq1bX1|9TD+e|}@-v3NQtr8;cubfBj#R7ibs=J_I7=BX*Eo=ivSwmNnhY5HdE z`>L@Ui)iVTw$N%Sc^>{L?7-8g+1JXW4luQ`5xKAu+hH`H`H7)B*kGz$bjSVX4c^NN zK8Ew=g81C6rl+{a%ehKV4(GH9gw}Og-fzP@bmGmY!fXdf>{%OYLBM0!(Kz+kNg|`- zk=0-?G<6V5V~u5_|JAaw|6Eb)7*=Us+T#SHU&83NKVviC>dKQTV_GyI;vq6JV~esN zsHP~iE!WpWXbm7h#Q5U839jcgc(R{5!+4EIYUOCH%txeAqS5r4xosWnLfjV>2as3Z zIwA5W)9aZTPGd|I%Ps0|N}3V)beg^Cx7`ArZg+(dtp znj%Pgu#*FRk~fmy=V>^yu>fP^W{lJn>VP+Bn~%zk9(;}G3PFLsjuhJcR8MY#&l}Dj zRGDuGCFTIW2Tb}%UCO$0PW<7EyW8;%N9rC$&CT~;^>e#zd4ah{iu@RDUHCA!w~T?~ z&rjVCO!OHUdW&%(gpp7CZd`vqS{d)QY-^7f+IBQHn?Ssd^1gRVdIeEEt{>`pD5zbK zo--5G8P`&qB`})81*FU}#y!8$sRv&A>_TLmnDB1^O;^#Z*pXdH778PC?ZI0_0a5|~ zxI-Pv1np`ve~xph6=P!>H6BLTi7zQ`Jk0RNJ=Aq%zH}bI=OFREYzFYQ`QLodwIA!; zM}{nC0TVbcsndL3Gc(+OZ8aS?Y}j|cw{DbW?;d({+7H3L-oigb7uK)8`;k{W&1u5~@2H%6Hb)xXf60Z7-| z(>sCRyvv@J^4EL1y`LBwwx162)gL9vxs9Eij>p?|fr!BTsimPC>Vjh4OtE$o6%8XY zaUJ+^$|{Rs{B33%x}xas{ScpDx*#6)*7TKPANi&o&FPSfLl(=C_D-L&(d z8C|tEa8Y|OeLcnMP?mH;^r1V|80hbggJuzi9I)wjl7qk59i?8^OSs;4SwX4&yqIKm ze5j$HBQe5L=9^1c6ARePz~V`ba*y$?ufad*2to-Zk|O(BB?ii0MFCYhBH zQ@g!=^QA7(m~GThnE750Fu}cQ8>y@)y+yV5gS!kYaT#*CrA_tWI{?rBcRK{M5LBp~ z<7`6Aabb|X_3VefxUH+s;{>}pO@6GC_wa2^C;>@!M`@MT9=}VR&pQsO7$5x&8 z?+i=sm&j9$BcR0By3Jja?)w zT?RF8gb0*-i&|20@Hi!?1%XRdj$m&%Z{U|J#fdYWxkunGkr%Qan8!?cwOR?!ha5;i2(-iwShI zc28sP90g9J4XC7uJpNbB+OPREuf4m`wcEXLu6MJDYhyWg#1lOiX3ot!b~>C1$w}ZC zUvG9cN98>OLYHoOWL-tUrzvr*xaa=t?BIP{H|m%K1~1w4c)V=sxh%x+z08VMYd0i5 zryiHPK$4TwX*GsrU4KHo4Ns_4sVnB<>$Ed8@t&2bOli;x0wxXryTjwSHqe2r(HO8q z6HCA+rJ3C#OD0|DHHEF9+x&-oMQ^fLd%}mylu`kXKPmVSpVQpNDpkqBxM1Iwrmhyr zmr>mr-G&UZgxvTkdMngzTtvtF@o(cVw)g%<3;g4=^I=Z@a%= zP#)iV-@j+I?7jkaSPxHoVihcLTy(DpHel0t_C_4_dGp0tbbx^}zM$Wq*i?;dBoL^z%&dA(599GEvbOr5!p1$>T4of7w5U`xN-GDeKI1lH7F{N7 zx?~LvljyNs(o>?dP*YLOAk`ipUT?=9oH-UJwEkqx&?D0P4aR`eaKXdVwjTbl5tD^(+6=IZPWYKG|td~oQo0_&lWHlyW9%I(> zNJw*OwK%hf->O;1;p5Jo@2jd;N&9tYC{{NvZsj7s=Zd-Z{TwG*Ety2hgu|Pn}DL4*}K{Z8F0+H44mpg0N@s(`a1M%Q@{F^r8?8%iv3d zn3K9jN%aTbc-R?QgQtVppe|8-UK7=&mgS1UqBbosBcdrr|3C@6@hrerbGequsYjh`v>^PQ?s-#Z6E;@?kZ`1RO2QYR7lq7(JXTDwt0 z8x!}zp1l-NAomFJQ>dGu*qvWY+K2>m&}u>~`{GwYRWGKt+8&n)$LOqQje5^@@2m?m zbV4P}v44Q2@5Js1HXQ@mN4lm&R3zM6JGXqXY-yIG44epybaHNIJi$Uvjq&x6R+lc! z-b>r7(6r$UC@3W$y0T4SPvj^tiLt*So+chWJqqrIw9U#*PQgHDE!Q-3V{zJ)B@12P zAi(;C$nbSIy_a%Vpmi#!+ElRD-U5 z;S_$*qQIz#i0JQ5Opnfa0UD4;F1}h(E_;s2iPiHM>Nn^*dVxb{xB4;1aIj1e?cawW zc8rb)k`-*D~Fbmrdy>jfmpSl zhX(+sOeMsG$VfsJ3o=~Sgy=Hst)%WAoC-hRm~qxq$6oW*xJ{bY4_FdFOio1zN!a$~ z^cl)8!vNAHUUwgAHkPR0k%kup$sfP`ytW*snyfX@Ej}`5=8`R2T2k& ztmAmfRi9`i5 z`&k4Nf(ZjrA#z9MqzAdWFbw!pkMK`Osa?GE?jw0ybws8Ds{%w`CkzTmsX{0LGJVc& z&?qhmqz+{jen@5o%X*7|q$>)awwOr<6b@bqhz}@nfxeKzIe2mK{wYQYBl+ye^FK2Q z(q<-ys#kd6FuN>pM7vf6PhNQ89E2rLUc5FjkzEsd6gjL&H9s3JHyE3V9Vnzwd0vD)Ry)C^=gmgLhQoBsY;`7dF5^ptB3r=>T1^B(`c>V6eq zoJ~fOAoXK`@l;>4u%$KUV8fRAB)uY6v!WU?m;_z?^y%VzLne6%v#<{A5mX*^)RemK zPb(iqf=>Y3?EwGe+QVG{h?@kxKwMssU|(df|Im`Bp~$eDc?1P7UZ>Y_IODuaHKJ`U zq-19jumR+b-q2>11(KHG^CaE(7B6$0wHxlS0e{j%uaC#-*At^7(l}w1cAC6tf6T*v zD_#V80f;8xK-HsmGgPB)kC$;X*g#Bz3{hNvH)OD;0r?P3=dYiT0!qy-K5Cx7*c<9F z@z|*l(pdJxFl)Ncmsn#|laojL>RUhI_WLB9LC1^xwckC*<8g43e2>$N%lZZH+viPf ziOn;1mjlsv`-l4W*Q5+w?y+2w52OFoW-)1cJ-n+@wrg0a1h0aq3myS$kMnA?G zrVDFYb8={3m@X2n!MCAH>^e!rp@OWu5WJ7H3DP7PvI3?+B2)|fD_%S4cCzOZpw7eC%HG8&(}K%TRVjB7Rzz$ASBoXL)wpZb}q~y4&j!46dr--dUfWTpAE(z ztoJqOakOSLqtNl;w=>OU7uM74$Q?0aYxm1YEcf(k(}aVI50omMO}VM2GCf{k+}x7heQ3lAGHnH|eB(;FFZCs-C>{UrdQ)$~*;5eU19^{Z#K=_m}0S z?MG{`{sH**vB5L&#AxrAt{+?-M_g53?YPq9%zIPkfA0C+e{>7H*La!)k|KWKW&qJb zX0*N^A*4hd`{>H8&LJL3{H_HzyYR93QG$f6xQGyk;!ofAX8{J@$?ak7z6O6sd#0<( zB2k&isa0Rs*2$oRdI8&g%4#WmBHg#672xExz#QOv777CK33?bLr{PRt2-u)Mj2Vy6 zK0#jL`{DZS{-TGemI>Q38pEqXe!blKcfv|?fC!s#sx_2t@8crzCsYc30}DZhgGwo zuI!Q_K#;y|_Xo5s`O|fhCE;K}LGyg}fQ+`TINSNsI|97Pu>xFwzG1X0tIzy3M#9x^ zmPc)rI>@Fqvw!Ztd1?Xx_>-d<5vm03@5r{jy)dAci7YnH)bHv<^Z$TK1|zm|fzHZ2 zB|@)m&D{0CF^SATEz%sFpk}k+Z)r@<=h0JEQ6((` z@N-yZygOEXXjvFT!8@emd6WaKPk8S=nIqr`+yMY+QFh1NWa9iH9uqo==IVJ_2<7V3 zo9eWoXk9iS@*9q3A(J+l)aAwT%v1^zHSeo%a<&X28~7Ixy9T3^gj+}_M2&JVjgmc& zzoR@epT{_uXu5yAWAKZ5A!y#SFA?o>-J@ll$s&xF#J96s5eE{N>9@uN^>neH3@lJM z#*Usw{~|AKke~fyYTMd7KR)(UZC`IIPBWlBmI(&t_WrDGVNqG$Vj2nJ=P8M;<^J9# z0B4^AJ^Y~y3J2h{Dc@S?Yw~0qOtwBu-7yFy-^iYQV9e1PvaGW|xGgnBe>^LE?+%Ey zt0@9n<`|6{xo`2Wt(fkuV7kfG4g7S{6ve`K#((WRS$6pAUeS%?!&4nrGHNZU>mCC7 z9l`cDH+zp&&`8&qLzY5BMkH{vb;@_oX*0zhdZ2CJyW&SGY(Lb3Q1y57!O(G?*pzyE z6D$MYX`rHFb+0=kqxoEWX96}pI?rqxT;JJQm2E@5x}`0bZm)}o8t!7QrnFe7(Od7= zY&UMX_@~<4&iigu@q4p(PApHtKdfu)M~#+~uv#@*Hg!1*Uf4alYi_Q^Qq2`QU7(Ww z)kahvy}YfxzH_wpG$k$6WhV5!K_nn>!Qo&2ra2hy#B6e(^D6a657beTI}er?(+;W> zs&01)QBBYc{AO_Igmz7hF#moDSiD=qQZ$|@yepW&GuV*W%0-)Mx6_dVwQ;ja^?RaA z{l4@6dg{i?aPvUCLL{)$Z3w@o9+u+`EHv@PMPj?VoJj@UeSs?9@CB=zjFKojo*<$V zE{Pxv)_;#$F^QeRjGaCR;r$o8PK1Wj+SLi)EsfD`lfdO6p zq-d@}xne-luPlcXG*o=%_mQsl%Y;RByT!4-K#prK8&Qlx&8~kU4r>hrNFF8jIkEH) zw14F!ZERT?SPDq*s2|Nqh6$lflNgnP@t6E&$GZQuELuY0*>>s5iS~nEz)}<|QXfw7 z97&XJUTlTLFp{sX9t0zo67;{q1N5MleBi#l2MX>ulGcdheBL$a#+MjzegFD?O>Q#W zOim}`{DDt*mc)Gg8YV*cHs~JFLW%+d0f)nsIA2A?rQx$xvLG^n+_%2I1F^@oC@z~M z^`iTq|770BP;UtWdAel%YIirpq`GAll}1!WbRK+pt6vCD2lUv+gN&I7{lDK{TN&`f z7w~&L>J0jao~X_vbc7Yoc@2S~3{2uwQ1GmQ=yxcwEklls86MOJF?xPXxtDN?A%qA# zM93m@KClOyc=C9YQUR%l%vFNRg^?%TbL^h&y|kZn>ui+QGOghWPlqJ|b{18ry!-42|MiDWFhKqi#JZc5M~?#2p!+vg zPYV^c3|e@)Z2}B1083Od1BD{9qODKV+~NIkxiX}%RP=<RsFla_CH8Vm`lY2^JVNfKZ)-f#c_D z4XxEZThPX=Kt9{<>jnk1M4B6Fqf}a26LC4__g|ON+C0$%cb;PNMAG+>qQMO&=1L$% zhCRQSf?j8^{;s{;wstSA4VH|Kkw&OOg@Fj^p=t%u2bK+Dtf3PjmD(x4nNrgHDZ>Wk z$mSKOj;*lW9jfpN*F^{eHcig=LV?)5E#8j@WAprLf)q0JfaqbKwJO-nRvr7};-A&S zA0sQE?0=xk|GL$LGG;QW-U@0m|lPB3?{a25>xT@e^W1cgZigI?nJASu$BUH*fbB0ySq z9bAFGv;7Z#e5?)sOlOn|LAIDL{tNz;q*uWpR(X0O8+h^RhyFlDv%}1%(*6�SGdn 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 literal 0 HcmV?d00001 -- 2.30.2