
ŽËÓÊŒþʹÓà MIME žñÊœ¡£ÓÉÓÚÓÊŒþÔĶÁ³ÌÐò²»ÄÜʶ±ð ŽËžñÊœ£¬ÒòŽË£¬¿ÉÄÜÎÞ·šÊ¶±ðžÃÓÊŒþµÄ·Ö²¿»ò²¿·ÖÄÚÈÝ¡£
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</di= v><div style=3D"color: rgb(0, 0, 0);"> private void backup()</div><div st= yle=3D"color: rgb(0, 0, 0);"> {</div><div style=3D"color: rgb(0, 0,= 0);"> BackupInfoParameters param =3D new BackupInf= oParameters();</div><div style=3D"color: rgb(0, 0, 0);"> &= nbsp; Frontend.RunAction(VdcActionType.Unknown, param, new IFrontendActionAs= yncCallback() {</div><div style=3D"color: rgb(0, 0, 0);"> = @Override</div><div style=3D"color: rgb(0, 0, 0);"> = public void executed(FrontendActionAsync= Result result) {</div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style= =3D"color: rgb(0, 0, 0);"> }</div><di= v style=3D"color: rgb(0, 0, 0);"> });</div><div sty= le=3D"color: rgb(0, 0, 0);"> }</div><div style=3D"color: rgb(0, 0, = 0);">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= </div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, = 0, 0);">The BackupInfoCommand.java is :</div><div style=3D"color: rgb(0, 0, 0)= ;">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</=
--B_3490360482_1321406 Content-type: multipart/alternative; boundary="B_3490360482_1326353" --B_3490360482_1326353 Content-type: text/plain; charset="GB2312" Content-transfer-encoding: quoted-printable hi=A3=AC Oved: I don=A1=AFt know how to add a VdcAction, Is this could work: public enum VdcActionType { Unknown(0, QuotaDependency.NONE), Backup(9000, QuotaDependency.NONE), I don=A1=AFt know whether is it need a ActionGroup. =B7=A2=BC=FE=C8=CB: Oved Ourfali <oourfali@redhat.com> =C8=D5=C6=DA: Fri, 8 Aug 2014 04:20:58 -0400 (EDT) =D6=C1: =C1=A6=B2=A8 =CD=F5 <wlbleaboy@126.com> =B3=AD=CB=CD: <devel@ovirt.org> =D6=F7=CC=E2: Re: [ovirt-devel] add a ***Command for a button Hi Didn't do a too deep code review, but from a first glance You need to add a new VdcActionType that is called BackupInfo, and use that when you call RunAction. Hope it helps,=20 Oved On Aug 8, 2014 11:11 AM, =3D?UTF-8?B?5Yqb5rOiIOeOiw=3D=3D?=3D <wlbleaboy@126.com> wrote: Hi, everyone: I added a button on the Template Tab, in the client side, It=A1=AFs OK, Added the button=A1=AFs callback like this: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D private void backup() { BackupInfoParameters param =3D new BackupInfoParameters(); Frontend.RunAction(VdcActionType.Unknown, param, new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { } }); } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The BackupInfoCommand.java is : =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D package org.ovirt.engine.core.bll; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.action.BackupInfoParameters; import java.io.IOException; import java.util.Collections; import java.util.List; /** * Created by leaboy on 8/7/14. */ public class BackupInfoCommand <T extends BackupInfoParameters> extends CommandBase<T>{ public BackupInfoCommand(T parameters){ super(parameters); } @Override public List<PermissionSubject> getPermissionCheckSubjects() { return Collections.emptyList(); } @Override protected boolean canDoAction() { return true; } @Override protected void executeCommand() { int a; a =3D 1; try{ Runtime.getRuntime().exec("touch /tmp/tmp.txt"); }catch (IOException e){ e.printStackTrace(); } } } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D And the BackupInfoParameters.java is: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D package org.ovirt.engine.core.common.action; /** * Created by leaboy on 8/7/14. */ public class BackupInfoParameters extends VdcActionParametersBase implement= s java.io.Serializable{ private static final long serialVersionUID =3D -1363077467684414051L; private VdcActionType _actionType; //public BackupInfoParameters(){} public BackupInfoParameters(){_actionType =3D VdcActionType.Unknown;} public VdcActionType getActionType() { return _actionType; } } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Built the code success, but when I clicked the button, got a dialog with th= e error info: Error while executing action: A Request to the Server failed with the following Status Code: 500 I debug it , find the error is raised at : protected VdcReturnValueBase evaluateCorrelationId(CommandBase<?> commandBase) { VdcReturnValueBase returnValue =3D null; // Evaluate and set the correlationId on the parameters, fails on invalid correlation id returnValue =3D ExecutionHandler.evaluateCorrelationId(commandBase.getParameters()); if (returnValue !=3D null) { log.warnFormat("CanDoAction of action {0} failed. Reasons: {1}"= , commandBase.getActionType(), StringUtils.join(returnValue.getCanDoActionMessages(), ',')); } // Set the correlation-id on the command =20 commandBase.setCorrelationId(commandBase.getParameters().getCorrelationId()= ) ; return returnValue; } _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel --B_3490360482_1326353 Content-type: text/html; charset="GB2312" Content-transfer-encoding: quoted-printable <html><head></head><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: s= pace; -webkit-line-break: after-white-space;"><div style=3D"color: rgb(0, 0, 0= ); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;">hi=A3=AC Oved:</div><div sty= le=3D"color: rgb(0, 0, 0); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;">I = don’t know how to add a VdcAction, </div><div style=3D"color: rgb(0= , 0, 0); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;"><br></div><div sty= le=3D"color: rgb(0, 0, 0); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;">Is= this could work:</div><div style=3D"color: rgb(0, 0, 0); font-family: =CB=CE=CC=E5, s= ans-serif; font-size: 14px;"><div>public enum VdcActionType {</div><div>&nbs= p; Unknown(0, QuotaDependency.NONE),</div><div> <b> Backu= p(9000, QuotaDependency.NONE),</b></div></div><div style=3D"color: rgb(0, 0, 0= ); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;"><b><br></b></div><div>I = don’t know whether is it need a ActionGroup.</div><div style=3D"color: r= gb(0, 0, 0); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;"><br></div><div= style=3D"color: rgb(0, 0, 0); font-family: =CB=CE=CC=E5, sans-serif; font-size: 14px;= "><br></div><span id=3D"OLK_SRC_BODY_SECTION" style=3D"color: rgb(0, 0, 0); font= -family: =CB=CE=CC=E5, sans-serif; font-size: 14px;"><div style=3D"font-family:Calibri= ; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; = BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RI= GHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-= TOP: 3pt"><span style=3D"font-weight:bold">=B7=A2=BC=FE=C8=CB: </span> Oved Ourfali <<a= href=3D"mailto:oourfali@redhat.com">oourfali@redhat.com</a>><br><span styl= e=3D"font-weight:bold">=C8=D5=C6=DA: </span> Fri, 8 Aug 2014 04:20:58 -0400 (EDT)<br><= span style=3D"font-weight:bold">=D6=C1: </span> =C1=A6=B2=A8 =CD=F5 <<a href=3D"mailto:wlblea= boy@126.com">wlbleaboy@126.com</a>><br><span style=3D"font-weight:bold">=B3=AD=CB= =CD: </span> <<a href=3D"mailto:devel@ovirt.org">devel@ovirt.org</a>><br><= span style=3D"font-weight:bold">=D6=F7=CC=E2: </span> Re: [ovirt-devel] add a ***Comma= nd for a button<br></div><div><br></div><div><div><div><p dir=3D"ltr">Hi</p><p= dir=3D"ltr">Didn't do a too deep code review, but from a first glance <br> You need to add a new VdcActionType that is called BackupInfo, and use that= when you call RunAction. </p><p dir=3D"ltr">Hope it helps, <br> Oved</p><div class=3D"quote">On Aug 8, 2014 11:11 AM, =3D?UTF-8?B?5Yqb5rOiIOeOi= w=3D=3D?=3D <<a href=3D"mailto:wlbleaboy@126.com">wlbleaboy@126.com</a>> wrote= :<br type=3D"attribution"></div><br><div><div style=3D"word-wrap: break-word; -w= ebkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14= px; font-family: =CB=CE=CC=E5, sans-serif;"><div style=3D"color: rgb(0, 0, 0);">Hi, ev= eryone:</div><div style=3D"color: rgb(0, 0, 0);"><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>I added a button on the Template Tab, in the= client side, It’s OK,</div><div style=3D"color: rgb(0, 0, 0);"><img src= =3D"cid:871E2E8A-B375-456F-B2CF-9E25AB718A23" type=3D"image/png"></div><div styl= e=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);">Added t= he button’s callback like this:</div><div style=3D"color: rgb(0, 0, 0);"= div><div style=3D"color: rgb(0, 0, 0);">package org.ovirt.engine.core.bll;</di= v><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0= );">import org.ovirt.engine.core.bll.utils.PermissionSubject;</div><div styl= e=3D"color: rgb(0, 0, 0);">import org.ovirt.engine.core.common.action.BackupIn= foParameters;</div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"c= olor: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);">import java= .io.IOException;</div><div style=3D"color: rgb(0, 0, 0);">import java.util.Col= lections;</div><div style=3D"color: rgb(0, 0, 0);">import java.util.List;</div=
<div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0)= ;">/**</div><div style=3D"color: rgb(0, 0, 0);"> * Created by leaboy on 8= /7/14.</div><div style=3D"color: rgb(0, 0, 0);"> */</div><div style=3D"colo= r: rgb(0, 0, 0);">public class BackupInfoCommand <T extends BackupInfoPar= ameters> extends CommandBase<T>{</div><div style=3D"color: rgb(0, 0, = 0);"> public BackupInfoCommand(T parameters){</div><div style=3D"=
color: rgb(0, 0, 0);"> super(parameters);</div><d= iv style=3D"color: rgb(0, 0, 0);"> }</div><div style=3D"color: rgb(= 0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);"> @Overri= de</div><div style=3D"color: rgb(0, 0, 0);"> public List<Permi= ssionSubject> getPermissionCheckSubjects() {</div><div style=3D"color: rgb(= 0, 0, 0);"> return Collections.emptyList();</div>= <div style=3D"color: rgb(0, 0, 0);"> }</div><div style=3D"color: rg= b(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);"> @Over= ride</div><div style=3D"color: rgb(0, 0, 0);"> protected boolean = canDoAction() {</div><div style=3D"color: rgb(0, 0, 0);"> = return true;</div><div style=3D"color: rgb(0, 0, 0);"> }</= div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,= 0);"><br></div><div style=3D"color: rgb(0, 0, 0);"> @Override</d= iv><div style=3D"color: rgb(0, 0, 0);"> protected void executeCom= mand() {</div><div style=3D"color: rgb(0, 0, 0);"> = int a;</div><div style=3D"color: rgb(0, 0, 0);"> a = =3D 1;</div><div style=3D"color: rgb(0, 0, 0);"> try{= </div><div style=3D"color: rgb(0, 0, 0);"> &= nbsp; Runtime.getRuntime().exec("touch /tmp/tmp.txt");</div><div style=3D"colo= r: rgb(0, 0, 0);"> }catch (IOException e){</div><= div style=3D"color: rgb(0, 0, 0);"> e= .printStackTrace();</div><div style=3D"color: rgb(0, 0, 0);"> &nb= sp; }</div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"co= lor: rgb(0, 0, 0);"> }</div><div style=3D"color: rgb(0, 0, 0);">}= </div><div style=3D"color: rgb(0, 0, 0);">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div style=3D"color: rgb(0, 0, 0);"><= br></div><div style=3D"color: rgb(0, 0, 0);">And the BackupInfoParameters.java= is:</div><div style=3D"color: rgb(0, 0, 0);">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div style=3D"color: rgb(0, 0, 0)= ;">package org.ovirt.engine.core.common.action;</div><div style=3D"color: rgb(= 0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);">/**</div><div style=3D"= color: rgb(0, 0, 0);"> * Created by leaboy on 8/7/14.</div><div style=3D"= color: rgb(0, 0, 0);"> */</div><div style=3D"color: rgb(0, 0, 0);">public= class BackupInfoParameters extends VdcActionParametersBase implements java.= io.Serializable{</div><div style=3D"color: rgb(0, 0, 0);"> privat= e static final long serialVersionUID =3D -1363077467684414051L;</div><div styl= e=3D"color: rgb(0, 0, 0);"> private VdcActionType _actionType;</d= iv><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, = 0);"> //public BackupInfoParameters(){}</div><div style=3D"color:= rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);"> pu= blic BackupInfoParameters(){_actionType =3D VdcActionType.Unknown;}</div><div = style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);">&nb= sp; public VdcActionType getActionType() {</div><div style=3D"color: rg= b(0, 0, 0);"> return _actionType;</div><div style= =3D"color: rgb(0, 0, 0);"> }</div><div style=3D"color: rgb(0, 0, 0)= ;">}</div><div style=3D"color: rgb(0, 0, 0);">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div style=3D"color: rgb(0, 0, 0)= ;"><br></div><div style=3D"color: rgb(0, 0, 0);">Built the code success, but w= hen I clicked the button, got a dialog with the error info:</div><div style=3D= "color: rgb(0, 0, 0);"><br></div><div><b><font color=3D"#ff2600">Error while e= xecuting action: A Request to the Server failed with the following Status Co= de: 500</font></b></div><div style=3D"color: rgb(0, 0, 0);"><br></div><div sty= le=3D"color: rgb(0, 0, 0);">I debug it , find the error is raised at :</div><d= iv style=3D"color: rgb(0, 0, 0);"><br></div><div><div style=3D"color: rgb(0, 0, = 0);">protected VdcReturnValueBase evaluateCorrelationId(CommandBase<?>= commandBase) {</div><div style=3D"color: rgb(0, 0, 0);"> = VdcReturnValueBase returnValue =3D null;</div><div style=3D"color: rgb(0,= 0, 0);"><br></div><div style=3D"color: rgb(0, 0, 0);"> &n= bsp; // Evaluate and set the correlationId on the parameters, fails on inval= id correlation id</div><div> <b> <font color=3D"#ff2= 600">returnValue =3D ExecutionHandler.evaluateCorrelationId(commandBase.getPar= ameters());</font></b></div><div style=3D"color: rgb(0, 0, 0);"> = if (returnValue !=3D null) {</div><div style=3D"color: rgb(0, 0, 0= );"> log.warnFormat("CanDoAction of= action {0} failed. Reasons: {1}", commandBase.getActionType(),</div><div st= yle=3D"color: rgb(0, 0, 0);"> = StringUtils.join(returnValue.getCanDoActionMessages(), = ','));</div><div style=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color: r= gb(0, 0, 0);"> }</div><div style=3D"color: rgb(0, 0= , 0);"> // Set the correlation-id on the command<= /div><div style=3D"color: rgb(0, 0, 0);"> commandBa= se.setCorrelationId(commandBase.getParameters().getCorrelationId());</div><d= iv style=3D"color: rgb(0, 0, 0);"> return returnVal= ue;</div><div style=3D"color: rgb(0, 0, 0);"> }</div></div></div>= </div></div>_______________________________________________ Devel mailing list <a href=3D"mailto:Devel@ovirt.org">Devel@ovirt.org</a> <a href=3D"http://lists.ovirt.org/mailman/listinfo/devel">http://lists.ovirt.= org/mailman/listinfo/devel</a></div></div></span></body></html>
--B_3490360482_1326353-- --B_3490360482_1321406 Content-type: image/png; name="871E2E8A-B375-456F-B2CF-9E25AB718A23.png" Content-ID: <871E2E8A-B375-456F-B2CF-9E25AB718A23> Content-disposition: inline; filename="871E2E8A-B375-456F-B2CF-9E25AB718A23.png" Content-transfer-encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAxMAAAA+CAYAAABQgEYlAAAKQWlDQ1BJQ0MgUHJvZmlsZQAA SA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJj RRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFY FO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3 QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnO Gbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J 8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyO MBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2 JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/K v4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR 6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3r WxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4w AixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfA DXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgY KoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvh SrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHk AwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3E VmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/Bi fCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7Y QbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRP ShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TX l3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGS txJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPK UgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2q bapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqX NMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNY Z6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/ YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1 u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJpr XWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuE fdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV 25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+ Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHB u4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uN FksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNc lrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyR BJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10z PSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTk muRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41l G99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr 31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mP ZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFt xWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sT q+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3O HS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5 cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972 un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm9 9Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV 0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4 T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAqqElEQVR4Ae2dB9xUxfX3D0qvIiJNlGIEaQqo qBAb2LBiL1hfg4lKyD8xiW9MLB+NbzRIokYTjRV7B/OqCIgVsYAo2AAVEQRBEJAOiv/9zpOz zHO59+7d8iy7POd8Prszd+qZ38ydOWfKnRpvvvnmj2JkCBgChkAVIVCjRo3NUg5zI5DvrnY1 /UTC3Hx/7D/+uKlrUzum2klD7Ro3+KzuZhoChsCWQyDsvQy6+c9qjzIpifoF7X4p/TC+u9kN AUOgMgI1Kz/akyFgCFRnBJII6YXAJ8kgTRh+QZ5UCVB3DeObymOYm++n/upmpiFgCGwZBHgX w8h3D7MndSNtP6yfV5S7H8bshoAhEI1ATR2Qo4OUng8vfia+rXMovXozjqoOgUzvQ9XlXNiU N27cuFmCwXfZf/btRPSfwUSfw/BRN8KoPZh5lHswnD0bAoZAPAL6LgZDBd395zC7uqmp6fnP vl39MaPc/TBmNwQMgewRKMuViSQDfJIw2cO1KYZ1SpuwMFtmBLQ9RrUb9c+c0tYVIgoPdY8z 8QM3DQMy6haGko+x2tUkfJhd0/b9gmnH+QXD2rMhsLUioO9KsHxh7r6b2tUkfhJ7MJyfrx/f dze7IWAIVA0CZalMVA0U2aVaDgJEsEOF56BbdqUu79BaZ4qBPhezVFsiz2KWL1Neir0fzndT u2/6duLpM/YkKxmEg4LYRz377knsyo8ftiLHTf9xfptCmc0QKE0EtI2HcRf0i3v2/dSupqad 6VnDYQbD+n5mNwQMgeIhkFGZ0JdVTVjz7cVjtXrk5Asdvj2Iu9VBeHvwMfPthPYFT8Mve/x8 zHx7eErh/YQfT+3Zmn5+Gtd3i7IH20MwXNA/6jnKnfS22WabdLK+HUd41bhRfKt/OpFqZvHL 79sVP4UjCj/1r66mj5lvj8IvE45h/r5btvYgH2HPwbrz8wj6VZdnrUs1g+VWjNQM+lf3Z8VN zSAeipuaQX973jQZF4VhRmUCEAFYfwhkBnjVNS0qCiFEK0xNxR/T6iAaf8MvGpskPrniF9Yn +G5Buz5HmfCqfsp38FndC2XquxaVXtA/7FnfXUzeUz8M/GsZfMXWD+PnHeWuYTL5a7hyMimT YgjfWkbFDtP6v/AaBRvFDtz0R+ggfn77U38/VcL75D/79mzj+mmqPZieupu5CQG/XrH7pO8D OAbr1Q9Xne2GX/61nwnDjMoEDZTfDz/8kO7ErcHmXzFRKVBh4Iu57bbbpoNZHaShiLUYfrHw ZPRMgh/tM9gH0D6VgnZ9jjKJp36aRjmaviDMuwuW/CDKB2b0o5Dip8Kyc0z9ZXomXDBMVFx1 DzOj0ggLW0y3JO1PsSwmX8XMK5t3IRgW/Khb2h+m1rNi9v3336fbImXy4/v2oJ+WPxgmKpyG N7MwCNBf+P2J9iu4+7+w+ikMB+WdiuGXf/1lwjCRMsEAWLduXenQoYM0adIk3UHlz56lEESA zmD58uXy+eefy9q1a9MKhdVBEKnwZ8MvHJekrkH8/EHL+oDMKILf0qVLZcaMGbJmzZq0sEZH XK9ePenUqZM0bdrU+tAIKIPtTydUrP+LACzgDH7Lli2TWbNmufFDlQltf127dpXtttvO2l8A t1J/pP6oV/qV1atXp9nFvX79+q5foV61v04HMItDIBN+ffv2NaQSIjBx4sTQNphImaAiWrdu 7bJC0DWqegTA+9NPP013DlYH2WFu+GWHVzA0+CGQKDGjaX2AohFvMqDvsssu8uGHH6YDIgzj hp/1oWlYIi3a/lQYBj9rf5FwVfIAs5122kk++ugjqVmzYojn/f3JT37ilAhrf5XgKpsHv1/R 9wK5QPuV7777rmzKsiUYjcNvS/BTrnnq2LZZG8xUIBorsx3MqhkVDwHwBnfwtzrIHnfDL3vM /BjghwCCEMcPu/UBPkLxdmYL9b3V9xg3o2QI0Na07alp7S8ZdoRq0KBBeuzQMQQ3o/JGwPqV /OovDD8Ub6PkCIBX2NiWcWWCLBgMIdVE3IP9VTkCijsZqd3qIDnsipnhlxwzPyRCnJLarf0p IplN2p+2QUzDLjNmfggUWCW1G4aKSGZTlQhCYocMPwdDWf9Zv5Jf9QXxyy+16hk7iCH9SkZl QiNhGhUXAcWeXH17cbko39x8zHx7+ZaouJyrAkGu2MHQKDsEfMx8e3apVM/QtDkVfq395dYG /Dbn23NLzWKVCgJ+Xfr2UuGv1PkwzPKvIR9D7DWZsdAOO5i8uvuRgmHsueoQ8HH37VWX49aV so+Zb9+6Sll1pQEzxU3Nqstt60vZx8y3b30lrZoShc2sV01OW2eqfpvz7VtnaatPqfy69O3V B4H8Supj5tvzS7V6xfZxU7tTJoBBFQffTiD9VS+orLSGgCGgnYQhYQgYAoaAIWAIGAKGQBQC Nf2lZAKpUqEm/rrfMioRczcEDAFDwBAwBAwBQ8AQMAQMgeqHQOg2J1UkgCOpMvHNN9/IiBEj 0gjySbqWLVvKXnvtJfvss09aSUkHCLHMnj1b+LzZHnvsEeIb7QSPr776qrz77rvuW8zk3a5d OznssMOkVatW0RET+uTKV8LkqzxYJnz4Lv4NN9wgffr0keOPPz4vfsodq2wLr+2+Z8+ecsop p6SjP/nkkzJ58mQZOnRo+pOWac8sLeWGqWJCPzJs2DBp0aKFK/GkSZPkmWeeSYRJscpcyLaf ZbVmHZy7Z8aPHy9fffWV+7oW35Xv1auXHHLIIa5/LRZmWTNe4hG0vSqbYWNX0naSNJzmVUrm HXfcIbSh3/3ud+4uFOXt9ttvly+//FJ+8YtfyK233ho7ThSqDUbh6NcVYxVjFsQB/WuuuUbW r18v++67rxx33HHKflZmVL6aSCZ/DVfupo+zlqVhw4bSrVs3Oeqoo9KfHFa/bM1ywvHsoTfI goVLQot41kkD5OxTDg31K6Tjwm+WyuCL/yJHD+gjw4acEJv09E++kMXfLpeD989Ojo5NNIHn NrqNyTd1r6pvJkjLBWnTpo0cffTRcuCBB7oXe9SoUU6ASBJ/3Lhx8v777ycJWinM448/LmPH jpXatWu7fBHs6NToBJcsCW8ElRLI8JArX6WyTaSq8fHhK3es/LKUij1XTLc0/7T/559/Pic2 ilHmUnk/kwDEBXj33XeffPvttzJw4EA56aSThMEd5WLKlCkuiXwwKycskuCVS5i4sQuszzrr rLTwmkv6pR6HcRP65JNP0qyuWrVK5syZIx07dnSTAlEYaPvJpw2mM01g4c6Ajz/+OB2S8X7D hg2JJi3TkXKwVId24MPC3S5HHnmkHH744dKsWTN58803hTquTnTmif3lF+ccI+eeergrdts2 O7pn3PbuuVvJQXHvI2Plpdezl6PzLYj7mpN2BGGJ4cfPX60IC6f+O+64o/Tr188FOfjgg91M xltvveXcdthhBzfwMQBycc7222/vZhC4TGf48OGyePFiF+/qq6+Wq666KjKsn//ChQudAsK3 b5k50RtT99xzT3nhhRfcSgX5zpw50wk2ixYtSue76667ujzJ+6CDDnI313LRFHydeeaZrvMM 4ytTWpSfC+fId/DgwfLKK6/IG2+8IStWrHA3iIMLqzXZkmKcTbwk+NBJKM2dO1duu+02t6rD jCd0xRVXuBUe8IWiylNKWDlG//uXtA37cZLa/Trx7RofN37z5s2TZ599VsC3Vq1asvvuu8sx xxyTvrshG0yjwmqeVWWGlS8sLw3HqiA3tn722WfCu6akmES9R8F2pCuNvEvz58+Xm2++WRo1 aiSXX36565voK5gxO/nkk2Nxpn8hbf/9ZJZNCb5efvllGTNmjJx66qmCcFVIrBUXzS8bEyWC Wde9997bzbwSd7fddnP47rzzznLjjTdu1n/GtbkwLMAXxSSsfyY/+nEECVY66Rvo06iHiy66 CO/IPtZ5FuAvH/zistd048YuxpX777/fKRODBg2KbBeaFvlhr8r2FFemMD+ftzD/7t27u4k/ Lrvbf//9XRAUC/pPxlMUC8Xgpz/96Wbv0tdff12pDZ5//vkZx5Ko9ubzGmZHyKVfQYFgEhE+ 6W8WLFjgcCdOVNoUjPH5ueeeE8ZHFATGZFY0NC/KzOrye++9V0keCMMgSnYgn6g+Dr9C9S3K M2kWijRNVpWZGIa4JRrZjPbBhEZc/0L4OH9Nn3DYC4UF6RWaDj+ot0ty+YpVcu+jL8iOOzSV E46qkHHxmPz+TPn3A8/Ll/MWSquWzWTo/zleenbrKPPmfyPn/Wq4nHzsgfLFlyk59cNPpXuX jvLzswfKdTc9kvJfJEccsrf88oJBMm9BKuyw4XLkIfvIoiXLZdpHn0mbljvIH4adJu133nx3 zdhXpsjIx8a5FYhWLZrJxecfJ3v1+InLj3yh48+9Ukbde3Ukf4R5dPQrMmrMRPl26Qpp3qyJ nD7oYDkqtfqRLVGH2ySJxIuVCyEEIDQTn5eXAeyJJ54QOu2LL77YJfnwww+7MxkI71CHDh1k yJAhsWFdwP/+ffHFF87Gcr8qEjhwSx/pIMSguIwcOVLq1KnjtljwgjzwwAPCbB8zHNDbb78t nTt3dqsqKBysdEBBvpKkRSeGcEPnxAvF7CwdNYMuQiRps8xXDEqCTzZ8xJWn1LDSlTXaX65t OCk2bD1BWdAfOCmtXLlS7rrrLreFj5k9tt9NnTpVWDGCssE0LqzmVyomAghbcWj/Qfzj3qNg O2qX2rKoeLLVBwEWxZz+hOX4devWSfv27SUTzvqu+++njxWKDxMQ/fv3d4pEKWHdvHlzp3gi 0D/11FNuAoX23bt3b8EviFkuWMT1z/ixyly3bl057bTTnBBGHapQEFefPsblYg+OXT7fSdtF Kbcnvzxq51LATp06uVV93ikIIR0sGM98CnuXgm3QDx9mj2tvYeF9N/oEtjYhrEPwieyg/Uxc 2rwbyAPQeeedJ6RF26ZvUUJgbtq0qROgkQfoF4KkGETJDnHvRNI2FMxzSz4zCUZboN/J1L9k 8vfLUY5YKP/fLFkmV95wn9SvV0duu36o7NymuVw9fKSsWLUmhdW2LtjYlyfL0Yf1kX16dZYp 78+Qa//2kFx49lHSaded5T9j35TP58yXWilcoVcmTZMzTzxErr3sPKeM/O32p527//fVgsVy 422Pp/JqIbdcd4lr8//vpodSkzwb5U//c4YL2qNLB7nxqgsljr9Zn8+TOx98Tn7ap7vc/OeL ZN/eu8s9j7wgbKnKhSpKkCCmvqRRQX1/347WDyG4Y2cPNSa3cSLwM7AjGKBgQAj8zDDQmUWF bdy4sQvL3+rVq52d9Px80wFSFlYb6HhQbFAkmFX54IMPXAcEDxAmwg80YcIEN1iSXpAv9n1n SotVEgQSiL2mELM2y5YtczN6zEhDUfw6z5C/bMOTRBJ8/HSj7KSFH7OSUFh56GQgrcMtiRV8 +MoEfPtlw78QpGky4PALEv60P9r/EUcc4WaTCTN9+nS3TE87zwbTQranIK+ZnrWsScOh3KM4 PfbYY0550niKSdR71KNHDxdU2xFCAu8rAxSzkV26dHHYsbVBhVmUiUw4a/7++6lKPcIHExvM 9vPuwmNcvSTFQvPEzCWOxmf29Wc/+5m8+OKLbrYUAQZi+wlbnoL9FP5xbU7T9bGI63OZDIJ/ VnXASPtu0sE9ro/VflXzzNXMB7+4PP10fbs/dvnuce2imO0prkxhfn4Zwvxxo66oS4Rz3jOE dSbZaH/MygfJbz/B/l/7KuIE8+Y5Th7ww4fZmaRgLGerE8o0K3fw+/rrr7u84tKmbKzysfrC +8MqB+c0kSs0L9x0ZR4Zhb4dP/X3cYiSHeLeCXY/QGHjaFgefn5Be7bhg/HDnjVN+gSw5Xna tGlOLkOxzNTXZvLX9Mk77n3yw4XxuaXdJk35WNZv+N4pC6wgnHLsQTLx7Q/l7akzpFunCtmy ++7tZf+9ujiF4fW3PnBKRe/UKgLnMD74ZLbMXbBEOnesuIV77z13k+6d27lidUnFn/bR57Jm bYVir2Vtul0juX34rwSzSaMG0jUVbuzLU2Tpdytll51aumAN6teTju1ayzNjJ0Xy17pFUxd2 zrxFKaXju5QS018uSa1w5ELUU2JlIpcMiIMADfFysySJhs8MAA1IO5+wBpM0LEoEhEISJNJn 9kA7QZYtmdVT4jyFKhO+gkLHGcYT8ZKkxYyGElsQEE7YEsBqCMIPqxOnn356xkNM8KB8qKnp JjWT4JM0LcLFlUdnajS9YmKlefom9a8dVa74+enF2aMOYBNH22aTJk3SSTC7Dk9glA2mcWGZ NSo1Qjh57bXX3PYY3ToBj3FtI1gGZg4hZrBYaUMZR1CmH+FdRbBgcM6Es0sk9ee/n+qGkgJ+ CA20GeylhjWTLGxFol0jhLzzzjtuDzOH2nH3KRcs4vpc8Ia0n0TRY5VCKZv61Dilbvpjl89r XLvQcOXQnpRX30RxoG4R0jERuuOUwbB3yU8vzh7X3uLiqR/KAx+5QJlgnGvbtq16xcoa+m6o ssiKDGMypMqgXy7aedz4oe8E8X3ZIe6dANNc5QLyKRaxQsNPCQWO8xM6mRE1pinGUf6aHmbc +1SKY5rP+7JlK93j8Fsflxv/+QRas3tm9UCVie1SAj9Ur25tZzZuUN+ZdevWcabKwTxs16Ri 8h17o4b1MGTlqrXO1D+Ul7sfHuu2TW1I2X/YWJHnj/81NRxmHH/9++0pHCB/+vmJqdWUmU42 3W+vrm5rVZ3atfxkEtmrVPpg5pEBDyGTGQC+uEQnhSDN7OMjjzwSeeA6aVhmLRHQ+ZITX3bQ xsehMZYy2dunnQZ2zmco0YnQoWVDSdLS2VJNlxkOOg4EAGY5Jk6c6Gam9cCbhguaCDUqoPsN Lhgu7jkJPoRR0vyYkYAQIoIYRZUn+BWuYmKl/PsmmCluavr+xbLrYKPCCfmyBM7MPUoFlBTT uLCZ2pPLqMh/vAusyNxzzz1uRl2zj2sbGkZNvgrHu8o7TnukvdI+UVJwZ1UCyoSzDnDB95O4 CCZ8eY4+4+XUuYkBAwbgHFkvxcaaGWJWs1gZYEBn5vTYY491/YnfrhzTqb9csIjrc8EZUgzB f+3aTYNcNvXpEirxv+DYFWQ36n1VxbfU21OwPPrM+MnMM+M0QjQ/tj5FUdi7pGEzjSVx7U3T iDPB+KWXXnKCLcqA5kecuLTr168Q5rQts+LJu8U7pe9NXL5J/TK9E1FtqNh9S1x56Gs5K0E9 o7CxEgXOipPf9/hjWiZ/xV7zLgcslFffZHUAGpLatsSZBaVGKQVi3br1+pjYXLR4eTrskm+/ k21SuDdqWF+Wp1YdlB4d9bJMmvyh/OFXZ6a+2NQjdf7iYXlp4nvqXcmM44+Ag0/qL4NPHiBf zP1axkyYLE8/97q8+uZ0OfSAXpXSSfKQWJmI08zJSP050MSLzIwGWxOY6WMAZPZQhVK23rDU yDYFiP3mzIggXCFwM3DGhUUA006MGUnOJrClhs/Wde3a1QkcCO0QWi97/djLTofBFztmzZrl tG0ObDL7AsG/liH47PMFn9mkxQEuVkOYTSVvFR79GQzHQMgfArDOrGP3+QsJHuqUBB9NF5MZ GToLsGI7A/xTfgj/uPIQZkthRd5Bgl+/bGoPhsvnWdP08wqmx0DHoMx7wXvAO4Gyi/IFXpyf iGojpOVjysD39NNP59Segnxl+6xlzRRPwykmKPBMJjBbqxT3HjHY+2Xm3BMriMyQ0Z4ZqFAg Ro8e7cIxiUBemXAO8gUv6sbAD08MnhwG5AwWdRRVLxpPy5PEzCWOny6zsGCI0kO/hZ1+UpUp H7NcsIjrc8mDPpdtJMw20j9oH0y54upTV0f9suRizxe/qDw13bixS2esCRv3vmpaxWhPUeWJ clfeovzVnX6J8ZNyoljQroir8aPsxPfbIMJ53FgS195QmCE/L31WU4V/tuHwBUnlD/+4tHk3 OHytbZlJCsa1c889Nz0+h+Xru0XZlTf8494JZJBC9S3kVWjSNOlrwcsn/DL1L5n8NX3MJO+T n38p2TlncPvI/y+vvfmBdOrYVia/NyMl6H8sv7vk5NQ5ik0rt0l5njp9lox/baqsTSkiMz6b J906t5e6dWrJJhVDUtuWKibAV65cLW+9+4lM+7hCjp41+yt37qFm6n1FOZg8bVbquXOKv1qh /HFwfMQ/H5ehFxwvu7ZvI82aVhwf4PxHtkQ9Vpw+ThCTwJl+JMPXVjhwyYwBAjAvOTOTxGWb A50Ewjjbfs444wy3asD2I2aCEArQWDmYioIQF9bnhS+ysOqAG7OKDLoIHxdeeKH7nBkvBNsA mNXkW9qslqD9a4elxdc0/WfsPl8MEtmkhXLD4M/2LpQdyo0WTkej+UWZ4Kc/lIqocJncM+Gj 5cVkBpL6QuF76KGHnAIEfqrMxJWH+FsKqzAM4MensDCFcNM8gmnhjhvC8TnnnOPaOl9DoY3S JvgWOv7ZYMrgnmt7CvKX6VnLpWam8L5/MA5L477wmemd9NsRbQ9hlj4Ck3x0awPvhbplwll5 wlReg270I6SJsBFXLxo/zvTT9vOMixPlh0JFf4lgTt8Kf0y8HHDAAW7bAen7mKG8xrU5nzfN M65/RgnmE5Eos5yBYbWICRGI+HH1qelna/o8aj7ZppE0POnHjV0+L3Htwg9H3oVsT0nLouF8 XrCreyYThZpJL1af2EGg4YPp6bPvH2yDcWNJXHvTSbQwvjVfTMZRJguZrIAPpbi06Sd0WyCf W2bSgDsr/F0LpOOXS581/aAZFjbunYhrQ5pWlBmVd1T4XN01n7D4mfraTP6aNmY+WITxlsnN zztfO19AuvLSs+W71Jeefn3lP+W5Ce9I/wN6hn6BKUle/fp0k/GvvCu33jVaOuzSSv5nyKDN op0wsJ+0a9tS/nnvM6kvMb0hV1062J2f4FA2h7CPOXw/WZw6GH79LY86BSGKvwP36+G+HnXX g2Pkkstucdud2PbE+Y5sCcxrpAamTW9gSAp0KAzifJLQqLgIoPToti2rg+yxN/yyx8yPYfj5 aGRv39rw07EAhQZhj0vCEOL4QllV0NaGX1VgFJem4ReHTvn6Wb3mV3dB/PzPg+eXcu6x05fS HbqvDPvZ5gpE7ilXTUwWBIKyaeJtTv5MQdWwZ6lmQsDqIBNC8f6GXzw+mXwNv0wIxfuXM34c Jh0xYoRb6WXwZYsV5WHFpFjlKlY+8bVYvr6GX/nWXRznVq9x6JSZn7e6Vk6c0wYTKxNsNTDa sghYHeSHv+Fn+OWHQH6xy7n9sf3xxBNPdJ/NZmsI2xg4C8c9F8UqV7Hyya+WSze24Ve6dZMP Z1av+aBncQuBAG0wsTKhB5oKkbGlkRsCVge54aaxDD9FIjfT8MsNN41V7vixpYmfT2y/LBaV O37FwikqH8MvCpnydrd6Le/6g/sWzZvKuMeuL9uC0AZNmSij6rNOI7/KMvwMv/wQyC+2tT/D Lz8E8ott7S8//Eo1ttVrqdZM9eGLNphRmeALLPyKOQNVfaogvqSKPaHKpQ441V+qZJ1uRc3Q lpJQOba/JOUqVhjDLz+kDT/DLz8Ets7Y9l7kV69B/PJLrXrGDmKIfpBYmbB9ecVvNMEKK9U6 qPH5HKk16W1JncSs9Hm+4iNWOcfmqdvXa9So+Prxjz+m9vSlPm9Znen7ZtvL+oP6idSp7b7/ ru0LM4zUHz/spdr+wngvBTfDL79aMPwMv/wQ2Dpj23uRX70G8csvteoZO4hhojMTROLiGVuZ KH6jAXfwh0qxDmqNf1UaPztKGn49ofjgJMhxxwRhqluQDQ+0ksW9Bsp3g46VGq1bukumaFv8 glTq7S/Ib6k9G3751YjhZ/jlh8DWGdvei/zqNYhffqlVz9hBDNEPaqSuQ0/vS/nXv/5VCZng leeVPO2hWiPQYu4COeudu6s1BuVc+Nk1O8nI/ke6b0XzvWi/cyjnchnvhoAhYAgYAoZAqSPA ze1cEHnCCSc4Mxt+J0yY4C5C5iJmLkcsBYrd5nTttdeWAo/GQwkisPScIWmuNjTuKau67Ss/ pLYSbdxYcVN62tMsJYNAzdS2r+0+fV622bhS2n8/Qy4+9CZp0LOHu1WZT3+iVOhKWMkwbYwY AoaAIWAIGAJbIQJjxoyR8ePHy4ABAxIrFCgSU6dOlUGDBsm+++5bMqjEKhMlw6UxUlIIfL9w kcjkBxxPP9RuJ/NvvVPWfr/BXV7l76UrKaaNGYfAqtGdpe3oa5x9m4ceke86tnOrEro6se22 2xpShoAhYAgYAoaAIVDFCBxxxBGSjUKhikTfvn1LSpEAJlMmqrixbI3Jr5v8ntT4cY0r2prW 3Z0iwZ65WrVqSe3atd0MN9tmjEoLAfelrb16iYyu4KvurGmyfPVqqVOnjvtRf7bdqbTqzLgx BAwBQ8AQ2HoR6N+/v8yZM0fGjRsn7du3l0MPPXSzHQIrV66Up556yslYZ555puywww4lB4gp EyVXJaXP0I+prUxKnOJ3V6mntsg0aNBAGjZs6BQKE0oVodIxqasNjRduYihVjXwud926dc60 rzVtgsZshoAhYAgYAoZAVSPAJB5nJ5o2bSqTJk2SO++8UwYOHCht2rRxWX/44Yfy2muvyR57 7CFdu3YtmTMSQVxqNmnSJOhmz4ZALAJ8ZnUTVSgWrEjUr19fGjVq5Ga5bbvMJoRKxcbKxNqG jdLs8KEwFEEUCkyUCcLYuYk0RGYxBAwBQ8AQMASqFAEmX5s1ayYHH3ywfPzxx/Kf//xHOnXq 5MblpUuXOuWiVatWbmWiShnJI3FbmcgDvOoYNXgpHXfUIXyiPKBQ6JYZUyZKr3VQdz/Uqinf e6zhhhKhioTnZVZDwBAwBAwBQ8AQKBIC7O7o2bOnm5idOXOmm5w95JBDnKJRJBZyzsaUiZyh q74RUSCChEKBdq0/m90OIrTln6kTvcSvgpuKO0xQKPS35bk0DgwBQ8AQMAQMgeqJABOxXbp0 cb9yQsBOyZZTbRmvhoAhYAgYAoaAIWAIGAKGQAkhYMpECVWGsWIIGAKGgCFgCBgChoAhYAiU EwKmTJRTbRmvhoAhYAgYAoaAIWAIGAKGQAkhYMpECVWGsWIIGAKGgCFgCBgChoAhYAiUEwIF PYC9OnUB1oMPPuhOoPsgtGvXbrPb+vhu7o477ui+mfvRRx8JF3d8+umnsuuuu/pRs7Jr/o0b N07H40AwV463bds27VaOFi0bn171KQxb3z9fe751smTJEjnyyCPT+PMZUurjsssuc4e1s+Hv 7bffloceekj+/ve/ZxOtYGGDZeHQMt+IHjZsmOy///455cPtl9yCaWQIGAKGgCFgCBgChkA5 IlBQZQIA+DzoaaedlhgLvp3LjxuUp02blpcyofmfeuqp6fwXL14szz77rAwePNh9vjTtUYaW bLHNp4gIytw9UIg6QQF68sknHTtckHb66afLlClTZO+9986HxS0S1y8LDHzyySdy0UUXyQsv vJD1N6DXrl0rDzzwQGJlgjqxr2RtkWq3TA0BQ8AQMAQMAUMgAoGCKxMR+bjv2E+YMEG4Fpxb khFUoa+++kqmT5/u7idYvny5vPTSS+7ijqh0snXn2nEEsDVr1rh8EWLJE8GMFYwDDjhAFi5c KFOnTnXP8IDAiN+3334rPDNzzIVsb731lixYsMDNqBOGuM8884yblW7RooVjDcWlR48ebiY+ LK+quH8BgX/ZsmWOHy44GTt2rJxwwgnpcsGr3nLMVe3cBRFWFnB47733XF117NhRvv76a1f+ QtYJfEDgRRu4+uqrXX2gTO62227yhz/8wdXXLbfcIqxE4D5o0CA55ZRTXDz941bI6667Tv7x j3+4S15QVm688Ubnfc0110jv3r1l++23l7vvvltat24tK1askFWrVslf//rXzVbONM1czM6d OzsllVWLli1byh133OH4pn1xg+Uf//hHhyEmdzmsX79ejj32WDnxxBMd/19++aVceeWVDoeb b75Z3n33XamZuk2cuJdffrlT5u677z53sdzhhx/usAjLA0XTyBAwBAwBQ8AQMAQMgWIjULQz E3PmzHGC1PHHHy9cwoHw6xMXdSDAcwNgIYl82YrCZSAoEaxUIMwdd9xxTmhj ZpmtUPDDVpWj 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 TkSuQmCC --B_3490360482_1321406--