From 8e45e177689844ea9ed15ab0d3eba1ebdfcef883 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Fri, 9 Dec 2022 14:13:47 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=87=AA=E7=94=B1PK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/activity/LiveRyAnchorActivity.java | 4 +- .../live/adapter/RandomPkRecyclerAdapter.java | 38 ++++++++-- .../java/com/yunbao/live/bean/LivePkBean.java | 20 +++++- .../live/dialog/FreePkDialogFragment.java | 66 +++++++++++++----- .../com/yunbao/live/http/LiveHttpUtil.java | 9 +++ .../layout/view_live_search_list_empty.xml | 27 +++++++ .../img_live_search_list_empty.png | Bin 0 -> 30277 bytes 7 files changed, 137 insertions(+), 27 deletions(-) create mode 100644 live/src/main/res/layout/view_live_search_list_empty.xml create mode 100644 live/src/main/res/mipmap-xxxhdpi/img_live_search_list_empty.png diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 6ef053c4a..327305f16 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -392,8 +392,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl break; case Constants.LIVE_FUNC_LINK_MIC://连麦 if (isDRPK != 1) { - openLinkMicAnchorWindow(false); - //openFreePkWindow(); + //openLinkMicAnchorWindow(false); + openFreePkWindow(); } else { ToastUtil.show("您已在PK中"); } diff --git a/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java b/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java index ffacaeae0..6dbcd5701 100644 --- a/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/RandomPkRecyclerAdapter.java @@ -13,7 +13,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.adapter.RefreshAdapter; import com.yunbao.common.bean.RandomPkUserBean; +import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.manager.IMRTCManager; import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; @@ -43,9 +46,9 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (getItemViewType(position) == ITEM) { - ((ItemViewHolder) holder).setData(mList.get(position-1)); - }else{ - ((HeadViewHolder) holder).setData(mList.get(position)); + ((ItemViewHolder) holder).setData(mList.get(position ), position ); + } else { + ((HeadViewHolder) holder).setData(mList.get(position), position); } } @@ -69,7 +72,7 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter { super(itemView); } - public void setData(RandomPkUserBean bean) { + public void setData(RandomPkUserBean bean, int position) { } } @@ -103,12 +106,33 @@ public class RandomPkRecyclerAdapter extends RefreshAdapter { ((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString() ); }); + mFollow.setOnClickListener(v -> { + RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag(); + LiveNetManager.get(mContext).setAttents(bean.getId(), new HttpCallback() { + @Override + public void onSuccess(SetAttentsModel data) { + bean.setAttention(data.getIsattent()); + if ("1" .equals(data.getIsattent())) { + ToastUtil.show(R.string.following); + mOnItemClickListener.onItemClick(bean, 1); + } else { + ToastUtil.show(R.string.unfollow_cancel); + mOnItemClickListener.onItemClick(bean, 0); + } + + } + + @Override + public void onError(String error) { + + } + }); + }); } @Override - public void setData(RandomPkUserBean bean) { - super.setData(bean); - int position = getAbsoluteAdapterPosition(); + public void setData(RandomPkUserBean bean, int position) { + super.setData(bean, position); if (bean == null) { return; } diff --git a/live/src/main/java/com/yunbao/live/bean/LivePkBean.java b/live/src/main/java/com/yunbao/live/bean/LivePkBean.java index 509f66921..14dde6181 100644 --- a/live/src/main/java/com/yunbao/live/bean/LivePkBean.java +++ b/live/src/main/java/com/yunbao/live/bean/LivePkBean.java @@ -3,6 +3,7 @@ package com.yunbao.live.bean; import android.text.TextUtils; import com.alibaba.fastjson.annotation.JSONField; +import com.yunbao.common.utils.StringUtil; /** * Created by cxf on 2018/11/15. @@ -19,6 +20,20 @@ public class LivePkBean { private int level; private int levelAnchor; private int sex; + private String attention; + + @JSONField(name = "isattention") + public String getAttention() { + if(StringUtil.isEmpty(attention)){ + attention="0"; + } + return attention; + } + + @JSONField(name = "isattention") + public void setAttention(String attention) { + this.attention = attention; + } public String getUid() { return uid; @@ -56,6 +71,9 @@ public class LivePkBean { @JSONField(name = "pkuid") public String getPkUid() { + if (pkUid == null) { + pkUid = "0"; + } return pkUid; } @@ -94,7 +112,7 @@ public class LivePkBean { * 是否在连麦中 */ public boolean isLinkMic() { - return !TextUtils.isEmpty(pkUid) && !"0".equals(pkUid); + return !TextUtils.isEmpty(pkUid) && !"0" .equals(pkUid); } } diff --git a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java index bb82dda15..5fbec0e06 100644 --- a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java @@ -1,9 +1,6 @@ package com.yunbao.live.dialog; -import android.app.Dialog; import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; @@ -13,7 +10,6 @@ import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; @@ -21,18 +17,14 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.alibaba.fastjson.JSON; import com.google.android.material.tabs.TabLayout; import com.yunbao.common.adapter.RefreshAdapter; -import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.custom.CommonRefreshView; import com.yunbao.common.dialog.AbsDialogFragment; -import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; -import com.yunbao.common.manager.RandomPkManager; -import com.yunbao.common.utils.DialogUitl; +import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.utils.DpUtil; -import com.yunbao.common.utils.ToastUtil; -import com.yunbao.common.utils.WordUtil; +import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.WordsTypeUtil; import com.yunbao.live.R; import com.yunbao.live.adapter.RandomPkRecyclerAdapter; @@ -42,8 +34,6 @@ import com.yunbao.live.http.LiveHttpUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; /** * 自由PK @@ -137,10 +127,18 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl private void initRecycler() { helper = new DataHelper(); + helper.setStatus(DataHelper.LIST_MODEL_LIST); adapter = new RandomPkRecyclerAdapter(mContext); mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); mRecyclerView.setDataHelper(helper); mRecyclerView.initData(); + mRecyclerView.setEmptyLayoutId(R.layout.view_live_search_list_empty); + adapter.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(RandomPkUserBean bean, int position) { + mRecyclerView.initData(); + } + }); } @@ -166,13 +164,19 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl mSearchLayout.setVisibility(View.GONE); switch (tabStatus) { case TAB_STATUS_SEARCH: + helper.setStatus(DataHelper.LIST_MODEL_LIST); mSearchLayout.setVisibility(View.VISIBLE); mRecyclerView.setVisibility(View.VISIBLE); mRecyclerView.initData(); + mRecyclerView.setRefreshEnable(false); + mRecyclerView.showEmpty(); break; case TAB_STATUS_FOLLOW: + mSearch.setText(""); + helper.setStatus(DataHelper.LIST_MODEL_FOLLOW); mRecyclerView.setVisibility(View.VISIBLE); mRecyclerView.initData(); + mRecyclerView.setRefreshEnable(true); break; } } @@ -202,12 +206,31 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl } public class DataHelper implements CommonRefreshView.DataHelper { + private final static int LIST_MODEL_LIST = 0; + private final static int LIST_MODEL_FOLLOW = 1; + private int status; + private String searchKey; + + public void setStatus(int status) { + this.status = status; + } public void search(String key) { + if (StringUtil.isEmpty(key)) { + adapter.getList().clear(); + adapter.notifyDataSetChanged(); + mRecyclerView.showEmpty(); + searchKey = null; + return; + } + searchKey = key; LiveNetManager.get(mContext) .randomPkSearchUser(key, WordsTypeUtil.changeTraditional(key), new com.yunbao.common.http.base.HttpCallback>() { @Override public void onSuccess(List data) { + if (!data.isEmpty()) { + mRecyclerView.hideEmpty(); + } List list = new ArrayList<>(); list.add(null); list.addAll(data); @@ -228,7 +251,16 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl @Override public void loadData(int p, HttpCallback callback) { - LiveHttpUtil.getLivePkList(p, callback); + if (status == LIST_MODEL_LIST) { + if (searchKey == null) { + callback.onSuccess(0, "", new String[]{}); + mRecyclerView.showEmpty(); + return; + } + search(searchKey); + } else { + LiveHttpUtil.getHomeFollow(p, callback); + } } @Override @@ -236,14 +268,14 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl Log.i(TAG, "processData: 获取数据成功"); List beans = JSON.parseArray(Arrays.toString(info), LivePkBean.class); List list = new ArrayList<>(); + list.add(null); for (LivePkBean bean : beans) { RandomPkUserBean userBean = new RandomPkUserBean(); userBean.setId(bean.getUid()); - userBean.setSex(bean.getSex()); userBean.setUserNiceName(bean.getUserNiceName()); userBean.setAvatar(bean.getAvatar()); userBean.setPk(bean.getPkUid().equals("0") ? 0 : 1); - userBean.setAttention("0"); + userBean.setAttention("1"); list.add(userBean); } return list; @@ -256,7 +288,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl @Override public void onRefreshFailure() { - + mRecyclerView.showEmpty(); } @Override @@ -266,7 +298,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl @Override public void onLoadMoreFailure() { - + mRecyclerView.showEmpty(); } } } diff --git a/live/src/main/java/com/yunbao/live/http/LiveHttpUtil.java b/live/src/main/java/com/yunbao/live/http/LiveHttpUtil.java index f200f9881..864ec1fe6 100644 --- a/live/src/main/java/com/yunbao/live/http/LiveHttpUtil.java +++ b/live/src/main/java/com/yunbao/live/http/LiveHttpUtil.java @@ -917,4 +917,13 @@ public class LiveHttpUtil { .execute(callback); } + /** + * 首页关注直播 + */ + public static void getHomeFollow(int p, HttpCallback callback) { + HttpClient.getInstance().get("Home.getFollow", "Home.getFollow") + .params("p", p) + .execute(callback); + } + } diff --git a/live/src/main/res/layout/view_live_search_list_empty.xml b/live/src/main/res/layout/view_live_search_list_empty.xml new file mode 100644 index 000000000..6c4319be8 --- /dev/null +++ b/live/src/main/res/layout/view_live_search_list_empty.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/img_live_search_list_empty.png b/live/src/main/res/mipmap-xxxhdpi/img_live_search_list_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..696d55a5258f0359a43870579ec54f07ae8695ec GIT binary patch literal 30277 zcmV)RK(oJzP)Px&08mU+MMrQYoPzu;{4y{`*ol1Lxb+w<^9{`{Mh6C*yR0qp6ATn{?6L|)8PBs z<^9m${(GS3ccJlmpXSZo{?Oh0*y8znq3YJ*`P$_C#MS-U<@|b|=gQmq&foja+V#`k z_xSJl&)oRY-1hbI`_HXvE{QL6x zuF3tv*8I!d{NCyPn!Ekr>HGTR^4{qD`||qD-TU6?{B)o6ccAX#>i+%n`u^|t{_ggz z$^L4b|9PP5;p+UEy#C+n{r~d#=<)w=p8v|%^J$y^-st@Q?e>|x|NrUr+~)iL@c94i z_LRB)|LgT?nf`2>{r~Ux|L^x-kN<9+|Nrat#@6DnHywv9J|ERqBq{04#ul@YX;QrL<(Bc1vu>Xy< z|B0~uiL(Fuw$8cI|NhbF`nb{l(CDef|GwD&_@}}A#n^qO|M|AelD7Z+!ri69|8JcC zV2%H7o&R5u|JdjMaGL+%?Elu~|Jv#Q`mD*`>;LNW|L5@k`(p#S=>%=xm;kW^|N6Di?DPNnyVm@^+5E!Y(&PWn;s4a+|M|DljkEvU>Hlq@|9q+c{-3{(xBq~w z|AepqyW0Q##^7|L|NhP9{iDK`zW<4^|N6Pqcc%ZF!vFrss>lEL zpuW4)|8<}K_@%DRI)`4?=PFP`V zP+;$Ay=wUN+*{6mT*kL_s7{``jfa!>>9uj%_{xgy+?#vtyWY&GqVulnKX~=!g!Ofm z(ZrY1F{A9(lm6Jfvcl=~<*(PSwdm;B!}8Zr>uJL7t&3p?WB>pl07*naRCwC#oX<}h z-5ST=1Qvt^q<~RmQH?FBw^)oL(J1L9q-Y|rFuH*R8xxzfY2Lr!WkI-hfnC6=QImGz zp2ZDw&17a4v*~7HlSx?mADEE-3-@`>nKM5C`y%4Iu;)9&nVG|kCZ5lHpXWRy{P73Z zq~!H_JpN=Tk;O{T{E^$NxaTF&ds=G9)BY>0F_>e{fJPAC(Ud z4)zQATq+@i!bv~Jm6>MktlvFW27!7N=K3)a_nf z0VA#E;Ze1aON2QdzmaPQ>EgQptmbb19o(mE^`QXxoB`5*4lXBu9wKas~^f|k+! z6&hX3LEZx&=@8FOAG>J;Vb;2Tcw01alVKSM*hdrafb5k21s}0*BvZxmVe7Qp?RIaa zV(^`=u48zq=0kq|H+-~c2)To1%Str5x3SUf%S{0#{q*9zRnMn59*+|Ze>hjHQ`aB^ zPSz_1LzgbyfoTgh888q1;=FlONCkOpd4$29upf$AzyBt zlA*p`4lpPa=7wHF;ZPv96w_gzc|0CA{OMw|b)oCOLc?N%*#$8UQ(!EF4WL80Xx4KA zw~l`#Pqg&pp?-x&$Q=P14j&kxL}zSJk8pCq=wNW5dDJ1aa6JBjqLd&cP}8C019`Qd zgcMb`9ARMSEjGIB*u{rR;m{czihKg0CCSs$hb1GNSPXpF+4%hV^Ty7HDJ(%w{C@QL z6Zv}ULRA?C*4R5EN7qK9pBxpb&{@ubaLDq-S+krD@j2}S)*V9WshzdG|7`Al{P=M< zTgt=(i;3W*??;bNte=}`IK84TXwdn{pj5Kxgbvd;z&QYqRyh~u-tkb0Kr$A{ln59f z{|5{3v76o7hzXO$!;>g9fekXkjwqoHvf=7fnRK=xosI(z==Kq9bjF6&=U~DKhfd)@Gyo2*c3e+~cx0J)CK_Jf zK-<_I5HXL)jCWGLQK+9^IHH3cDlAZladdU7+Z|4r6q2>51Px@v064U><7$r2StiX! zB9h74Ky2>1_c!-;62XbgVZk>pU_8|!vg|>p4^D2Ef@HuCvEV>9P?}LYsq-1_gk#F{ zsn6TM0F%8(_8~8=OwD*E;ZM2xIkKVLI`9}qOy3yd6%-7zV1o%Mi6|5f&5)#8vncRN z`Xt#1#^$$ygY0H@Hw)`#Hp>pk7T?MQ?q5Xkh12yG8V8$V40jN#fYIj`CJ|<%5bIEB zwn5;K3=QBoYkm`WxnqJ8h?x&11R|TI4SQt?8DwX3do32e_wPwnX;4v|_dgkF7ApV) z^P!2^r6`J%3JWWW7J&n}z(&#}O_M|jEV(eBvP?=(l7UM07Hz{qHrdin?4GgQBkVWN z44Gt*3LA9W3CzJK&rF<1sQpYRY=)u`I1HL^7=#T;?1-F>3CcegFKz#wvfHbH`^^%4 z!CdpCCd+hO6$Xjy8giVfbX8>-4U7qTJ!YXM925;;Lqc^rFl9;boOD7nl~A+-qhH!C zl}J;fTh_5{HrsF3VxD`kktzclq+Vq$_70;&hoItS#&MSHyciD{9Mm;Xq6lSPPYKqsT=P?8QoLi0qjAW`}i{$!yGw_t?Uh1mh419OxdJAz`uG8gH4FI1Q|F zkg2JOhhdq8!!slkFPxwN9EJ@?r$g{)BOSd<{)}auX+tQs6rW#Mn7^|Y<~QcXdp7Gy zRgcdA4l?63B+AC16rIdIej#!xK19JBRMQj_jy~TYaD3&TR=B%wgcqZ;^Yg2yHP)=H zuC1+MyGnQHYmIKL!`0R0SQx+2Z;aY#{j4Tp=7_;S!>6a3K`GJ5^D>Q?i3%Bqp&6PT zc%&h#gi{k@91?L3SGK{}xV~=itmE!%#8#fI&EBFlva(&*8{{}1S)7}hPTuvCsorq$ zxF(8{Lz-l|2zgva7zrlInk&Y02~-4NZo?bVHpKwLbD#B5Xq{dv2bFO(QEf` zZG7QH^t+YHXSSB(BkSKodv{g>>oa%xmt(I`Xr4i~NaeNaF?KeV_MUtWgwmx}*+%PDcPEH6i=o`y%iDLv`xNzH;o#F3TE z#wi)+DjMt8-1JyX5H4s63OErsXgskZ3UQ9!b+7mJOF`gS$LO`Mxd@K&%HP1Ta{DP} z|4Jk_ddb88t$rrja5zOrn$m!C6@%G=lLl%N{g-wK9J1($Cx`_u00ye@l|Q<_Q#Kl1 zUKy$-vN{icspX|eY}9J0FIZ^S(D|)VWm!UpBqDU^2^?q~qIqoDgozM6(ME&7p#U7r zH+nW5rW&8pJn0x2j+v?G($dn0r6t_ZHp*7o;d~=X--#}<)66dX0V~nK+-P}+FDO)x z+ijW_n0NUl2pZTUofH&EAPh;g8DP|y2mQu@S15`hx-wBG8#g~2Ukd!&21oYyxk&VO z1)_J;`e=d08_LyBkb}!>(2ssy6Co@e{4XvTa;q9HIiio#F^J*7nG!@5$<9NWYg{up zZf=gNi6kHP(eykPi3V)F4%|zT(LN=KAB{bO!ACB>_vr_17$oQ=Fy@A#i8M#)IDim4 z?vO;`5bZqFWaF}D!+}*&o^_0xazp}=*OAv-=1O05-NH5!adl&#b$X<4eH~e!8KubN z$I^Lk2pJY1E*rV*uuOtvDQ0RiMBp^4u8EGyhLvj&G!PD6CB4g2m95Cu-zhS3=ZmMo z5x)Az|5x>-F$l#Cu0Out{P_OE^bV>^l6!R8Bq13DqTRL$Uru3 zV7`*#Nylh#Ovk3SrcicE_s9-i`nv76?H%*#t*OOPz78Y!?Nb9t_(@g^3>r?HSoFwx z-7!>EkuX8IBpGX)X00@JZ9D53BAf{)_E<&KX&g6HKO3L^;&6izUDJ&DycQO#ebeh}Tnp?xQWtwgm5?UHYT{P{c#a03dB;3XQ z0J;z{47y3Lq_c?R3)D&}#Pq^VZ$b-!EbAKx;ySzgoO9~sobqKVbCs#w_^72R?QUp) z`9J^XIj7E1n~j0P1(Qzbn?5%K~%d4(t4B2op%3y?qV^l58XYGjpe>irZY{PfDZGE}qhi&TB_BMI4Pi<{)Ij5LE zgHL);4uL4gXkr!XavX++E>r3_!hw`SC(2>+F|_#5ajk+{UIt}D?Tmuq06fl5qRTdz zM@JgoMiIt0{K5+7)ubQkKSaG1_OhFWdQlyXRk2_D0}6_v`OrG(;@6hLhG{tr+-j#X z3kZkSyS!{0Y=JU#kugGW6y@a?@2!&^{$JvE*U#Heyev4*Rx2Y)HmKZ!?P$N%y}G)j z90z8@Aj2?*UDl!iI6B?y7L!kCG;BQ18^y@-i}#jSHlINJZr$w%^TK{@hW+s{`yM=d z8JHD|rSqCwI{IcQYr75H9_@U&xw>w-WW!ypn0*e^H#J-~)FH!;TBEsy!&3;N{A8Z7 zDSCi|Q&NrE$Yn@v&7dr)p zcyDw_^5z`F+iWmNDOCro`flaWoLZ$t4f132;qn@0HnF7R z_I7lBv4q28gm!H@Wb-i|@+SM1Y(KM~4|-eKn3GeLvpy{xB&7_T_6E)>*l~1p1`cBa z9xW3OGIi7#QfQ!@VtY{>gC!i^rGwj*gK`k=vTQ!aZ*tJ}mi4s8d_L%HDwrTelG#%< z_BLXAqlgTrTrv7O>o{~{+;FrgG+JZ`A6*zbw5gy~!&Z*y@@x0%NyXhDiM61InDwDu zZ&!uzs*=p_pMohJ*>1zt7bQK8>#J{99nCPtvx-i;Q4@@oHSGt{F|-oOfW_k$%9V@o z@>{T%p$wv8E;ie}FDv9Ta*^x)RP>M@|Q2|?rb zp~G?a5ov+LA>x~PHxKq3*3miVoWM_B|5-thW0`C|84=YYB_7y}4yg%X;5Zh3M?3CvF(if~5#gY0X=3p( zn;b*CP(fMc^5)ysweIeXvN@&2xY4#P9O!_aTaaALY;tSeAG9I;Q*fXSAb9~Fczoc| z6HiX@_@n@Tv3Zu9w?B;TcgbRrSRTP4f)|F=(x}#k&YW`s2-LAXlvO&eF%?~7N?EKM z=49hGr5rtSgJ^5EcwjVck#d9|FdO`0_V=9I-^xW2`GZUXFSEm|(dGr@mH{>U%MuRK zq6J$Mzau_(PT;C8o z>Kcq4t6_1|yxpd=iX$6lw2|?!qE=nP;peWKl02Z{5O_(3+)}O8hPa20=+G{|fgRQQ z(?;sa@*7tFi!M~`q(TAG)+jn2@R0reP>zGcOpLmsS>S^TR*#{{hK{m|Gg$AS;Tmmg zQ_5kILAg;9-Cp;)*BV-MoIhYV1SmFr4u`0u0FEegg@C|`D&Wzmp6N(Ea2?xiv30D* z47phy4wrJ+Wvs);b+6k+;$gz^fTsxxe8~685ltNe9PX*e0Z@?2z_GudiB6h|EU2I!rAoaFa9Hz-ojS#xRY(!r zW<FAoiqfwH%B^b{sud z`-_GHNe5^LvK@_!#a<4{iIS=YRaKQlZVAWT4QVt3%ArjAuj3_nKbQMdKN}7$IG7O? zdhSiV5 z+Rv6wQ1PPaMt?{yuGh!OWW(O;vdkqyRY{?#9wXrYj>ys zcOT%$7YgaAzgB{p$QF(clEq^4qSUC@YBf*~O`}KZ%>lPI+ZyfJg^F7^EbZv&qw~_@ z;NaxMtB-H@-o5)b#JhKUZ$JLFG7?N5h; zQ__XpQ5tPoD~J)SAC)Qyh+d-xW7{oe4hJ=+LMew^IJ&(uT1{|4aB!R7$M@d7rUDSz zi?91<4KnWWeSjld*iTJ^Ly%(GquhRy?5ZSi;Qk{Cq964$#&x*p=uN9s96HKpm6*6V zHa>#c7~8=+e(amf5?WpLI~>?kOoxM)QwK*!2lh6wfq=jTm141YQ97-km8r?26J~!g zNu^6QIZQa}3tQe=kY4`!c8_f3&cuhEmws7FD73cbcQ|-8ITMa(zHn4v+aLnZa~v@s zjDk2TWRG_^#?b&aD#=CdX)kU)eM7c!|3Dt*)7!ldPq#VWz~Og43UC}04yVE)#y~iL z9d5i%1pR0>Z4086wK6prJKi>T;{i#fq%6oD3c>aGw0*nd>p@>gN8s_JHNRU9K8WB* zP8%APl3+&uFSXRJl8t#Y>K?tdZA0Z~4yS5gYMD95q= zY<&A}a}V$L&%(Zt4u18~s^8(@f~gsB2*K3Re~z-#f5QU-DH2QN53-qbse)3>*;yGy zyIdywf4QnyBpE2`r@+Si7kuKuFaxsk#;@*dDA#`?3Ln7x_*VLtHjr*&T}VEA}#?XlnC5NE-`sj+M>cbJ;_zbVMER5}siL^%?L zGNuVm1XQF#@{FYS?8t&F0eydG3BgkT##M|MC=Vl)2+5?96x0rJM_7r*0FLPVTT%Sx^PiuQeRi!)cPGY+AO00q zdEu{CbpE>^SN+ZgeE$H)L1GFVvBO;MAR*8AEf*vOgd?fArx}{pYI0mi3`rzHA*3r2 z1cx&B9hx|K$dbtNh$PM9^A%0UrCPT z#8y&c%?kZGb!4Zdj`Y&|^XvQlei$Oki;^hB=pJ7iG8z~;Y17rS<7b8Z{);2SfqsgI z)8er>Pc!pyAN8!Ve|W=BqtO~9pJ#pQwU^r3m`a-1*^iJ=rj`?=!PW5qCGz?lq)$t^0p)C z?pqCx8T5Hfp8~@d7vRW?(e{BXp68R$OJowVa3t81Ty9VqQA&$K?{8Q#>Q0WleT&2~ zcfX{Aumn$m%Q2w9(H4NHke`_@X7s9KBrR_!#-GH8fS@-arKJSh`-%!;{li0Yqq`ye zr92u3ZI9&_5r3cD4#pYwodTDGj3x3N;2=4%GCfz4SltYmn9D<~LY#yRR%U~zd#~ll z<&UT>@RH4TcrAym5B1wvpK_&)&F2_A1?zQUV!qfxIbu?AZn~n^4+VicTF9q`6J#6_ z!3t73E%H$VZdTIepNLFE@RvF!4)?p8IC!4WymT9!D@BNK!XQxVFO4k0u+#h4~Fd)i^UU+$9>HSqt>uDZ2F1k_&4BXINEp(6pxodRwNxC0pi#~xnPWt^5Jw;9#ubcs%H_IpqqI&Et)St&K_AmSFre2#37sQ+qh*L>cGK zbrug0cn4E(M~_tlg2rrQjB!R)&)C&fyCTl0kO8|Dai7Jix*7za;zkObq>)esB0+%EM?ebOAOf82+UTp^=q zb$a4itzW@d9oeAjc7Sk%PsP3ys3ROvX=ZM&BzAT-Q4~B55RT*IfFxo9u#py6!noT7 zg*evbvNU=aX`Wf-j|E;SKW61`7JS4RRheaM!K}9>KaK{oahr?;0()b|)H#E9K4uur zX8i<)qnK+42L!Tn6`d3Y5tH)eyc9dG=7y(=<#K6}HFAwRL(p>b85?Wkl!yAQ@dn4* zSoJ+teiM#DG&1NTF^+89-U1%!1g~RI_EW*$n2ilY(IGfRtOZU?C`7AW6$n1v4i1u_ zg~Hr#r^_8fPZHvsT)BL7GqEGO!3t?yeu)u=npyb7p|>5z?dQUPaJ1G=7~}&V1Un<} zBfHtyh{gi`u}I`9jO*9^0ahuSBOzS^I1X*h1tvT&bpDtBnJ#p+86+iS^5sJMIFCct zjY39@8NN3LqVTc=itacL|A<0{eIx_~9IBmwHSv1je1x-Eb9o$i<5}^{* zRzLK&3s`6Y3rAXi6Hy3a6FFRbiBag?f@8oL&ZgoX?UFVON6?W?1qaP@E)bWPy!Oe` z53d1@J(&(gI<{){+RELv8$+MU4rvn(YV1xGz`$d@R;vRY?xVgW;-q{DdmOq;;iwqc z6uh{NCf_kO1{kX^JC$`fHCY2&HkAcpOjM3V(Zr`8Eq(v}4?xFj84h6MCD8GFzgFLP ze0S~ad&O2b=;Z3c&OSV3?WomPE<}zb!oXbQDkYrb&<|o0zy@|k-!Ri z;%wxQK#;T`l_69SqPp|aV`46!&q#bfbc12~eGy2fJ(vPKd=@L7?_;%ir{<@ECejU( z6DO|#8(QUf2Fd|&fOKrtH{QHiUb%gxl+j3lRZ$K_IDn4Y%Ib|n(g8-LP%0JlS2AIn zlF#SF{y3xkhXZdy8}?>_k5o1u&!$qqM%>y38zeF&>ZTKuSH9kEz_F)BD~fVFf4WoK zeEjCgn}u6H$!JnpbmU%Dqa3w*{qBX_SQQlx@HzmFS3fS?Jfnew8ojfq2**(q#QXEJ3y!L>& z^!eX>4P*O2ITU|Xwkpq`egk&p@fGI1O#lEO07*naRFfyK-mH$dgt8;|s#{xFIci(A z8ir#v=|Wl`R|KO{&gd*;A_ zt#CA~ifmT4WV`a{i@UR$WESFv?@18jMV(2p)${7>hUoZv|z<4lSn* z4%Go-7{Z&v>GN(9ReYl7)1(k9fl+Buj;2+CXyqG#16)#o#WB(V5UcP(7-MosVpuo{oj+G17L*xO+iCn2zDd;R`Y1kBFXK?5Xhv_maj5C!A z+PeFy9*Z|8=rJ4wf9d0|4m^&gKdJ^RARIe5 z6nXsZqc2`u{yfqwo09(7DuzSWjeplSH|xs)2WkXBxWh(8ry7fOqg=ra(EC? zWj@tyITleYOUsiCdZolv;%|yKdI*k}O7RefZgGdF0qoYy56Gk(6nGLFsY?yDYp))+6vUM#xT#V(SG|{tU7$sh8 z2uCwNy8BF{98Ea>@#nvea@uGG;82tU*x1-ye)xM84qQ{2Ddwe4Dn}wNkuFy%c!?z0 zKRBGGQx4J=pU-w(t0(E0z{j{~ujnA7(lsSg(Wbzfm6aAa{`KJVtFDIrxyM%*)>SrY z{{%QT4&cDkk&82>j_VaL8{ltL3SvJSS1=|N4irvJdAr|{1A$M<$D+NO*oe5yA6nc| zjX(O`0UY)E#<%}t@9KWiO7n2TIWPxk#RH1E0=4W~b(UFb2@~1a>Gp$;6s%;|I2(tN zC4pVKNdryOMoE^*+&ErnlWyC1VH47nIQRSqBt%KP;KuEuN!hUZ?vQzZD7Els+gm$*8lzkgFLCtru|^xP}y!?mEzcafh^8|;Yc=}+ggQar8sf_ zn{UbY6?*%ZVx*TNokPTdz>!H1&mpKRQvqK%=su+9Pk=Zj7zn}iY$LJ3;7LwV?!D)D zpVm=0;;K=7sI-yBLbDuLR%)9$YQT}Bp=@E|?l<3xMBPr`0^-1a^cAwBxN`gGOSuTx z7!8E6sMP;IYHaTD5WTH{v=05RcM~00uHXDe-05xdL7`gmCj|+Usx+YzA(@$a9Zb--xr>8 z9wI6#;0=Fh(rIbz^;Q%7R%Rz}F zTV6{Rip4+N2XOGZ?pqMXritYMY#>!BB_7}I;Zzn+$ma`89nxwpbFVGxzN1rzB1nWVhY;6`&nFIO;Dk`-HBQ5Rd=S~Tuo{f%f!RaLgD%t7oZ{On&A zzkB<~OTX*owL^nTv6V`(ek%uo>}qK_@n}G!aZe&_1f4d%zQOTK`oVA5xJC~l@Cw!r zateBc4I^7qT`K392NE`_szNKWn~(w90&uLQ3dQe!fA{OtIxX@Wq*hOf1J_kDspZ6_ z9(;Jk7Z|N;C}81aFyIeBoYMH9Q7&g|`>UvQL`O`Ftt;m2X8{~LH8~E94Jmg{h$Dkk z1%c!KjqZUP&v0fG_i?P?FqWvw#NDrL_VKU}mKoQpSqR$UQE2}eAGS4~It95>!4!e> z3iC+R%i57p4uvZZ_Jbo|Q&$0SWXh@KA_B*w8`o|>drYuVsj8qqhcrmy{%yM(nNcJv z^;YC_Fd6Abyy0emH$+}3V@g%@GGjE#)aW$*K)ZkPV5fqOzwhk0(u6EcfZ%kCqfV5{12!P1 zK0d5t;pC!TsXoRzW%0+LAvd}ZZ?JfHTCh5Q`e0|T;{a?>a1d;y02{?rW;L75<%r{; zb`&hfyG*H&czQO3cq3HrdV-*_xhMT$#2a=i3(U#O)yEjC@cMtrm7?6>fGIaMlj|o` zmS2ASWT!G)Ps=K}L6Cq08H!}F`1WmK4Iv|&ORucgib@u#N~V-dES>TDU?J(jA3q9H zoCF(A9SiS(sFxXz?-+roFqvfXLqtrkko5sHyseC078W%_XFq*%Kvbme(N$z9k_Ci~ zVrdmbB$t+mqoOJZJrfUSuOe(r9i#?4fe;M){F5F#6E~hu@JfUF_=p3=s4lP3AlLJI zhGayM=k*GM*$cz5M%HMfTE63L?PucO(~T{!t0lJ=c*+q(1;9~EX0mAlju-3I)=?rm zrNqJ)pCdC`hc{GO=XeNVBgo3)9#Nq_&ckVf0y&Bim)Bu5^%-PJxdJ_MrA*ytGCKen zQI}E1SU!&DG&-x~964JXLPsTWPHXi98#s(D6pO`D8Hvgk@*FE9|0VGTPI8p~9KVdP z;XE)G%d0HNZa}rA!R;HhVPl{A7~=vIikQ5v=)HRsA*R+=lgVuKdPk!75Hh^RJ~?A~ zd|soooVMFE95sygu8*I*eq9R=+B*tSDirIB%jGN%Yl-Dprzs8~j(4kT$ul1NK7`#Glgyjk&h$p0H1g7e}W`lxfY@Lz7b@q1+Uc7j& zy@wXSH1_j%;$$3whi=iGtW15fMxr=?ZfIHp->ayZO%pqx-iM3o5N0>;_J6Fv1%rL|JQVV=@Yy z9=wK3EmOm76}dvsV(cntI=g1#+Xw|4@x`vwR9UQ+wzIQw9K?dC?5@)x$W$_!ER{1k zYCox{tW(EFGZ|xHub&?NUiWoKPy4Gpkv` z8(V3@8|$=>gQ`kux%}|wH}~z#$Nhi-AL5NhPCOo@c7zQX|9=o1`u^yy%>Xj6`OMG9 zXIgr+y&AmbTcaIrKexCLgL2zyCR0XFCW8W47(Ym3NqHefDi|y|6scs&%P$iP*PVOG z0hXwPq@WO%9lHT}bCc0<3_TN~*reoS?KwA#PyyIL==e)Mc4zRjYu!DaHmz3M(cM0X z!2wtD#IwCsdV$k9M?>LABpmYC8QMI{D_b3=qmK_n zn5An@bZ7_W;(5v(z#aM6!qVd4Cv9!*?QJdR2bUJ6r=_-XTz6f8b#N;L83Y?rRb`9R zPFJE}dZL_k24MAacn2$ciAu41trM@}A(b11W74pmjIyMkK;()Dp)lsgHwfgBqxA z5e4Hi?)OEI-S9AV1wmAp97lhrRn#l{jKBRz-K@+pG(*7w&V#@MUI-QNb$)|96d#)s zMCh{OY9j}&xTR8wg`bUDsCo#T)$W<}Biiu)*sX-)#)iJn;W&CT$|+A7$Hq>{n)Eh^ zw)^5Nj$<(}<|T9xKy1`JggY=aHVJc7p+UNeAxD-fO~=0qc}V*gr_tJx6Gglcm}G3x zy(l+Vj&dHM<&~Wr1Kw!XXj#?Sb%#VN6?|;eA_TZYl9qkocu|>0NYlJ|Dhb8e_!cd=QtDwZo`wT~w{gSqhi@fsW*w{&#zG<^;ymjc}HV6ul6#UF@{7?Ei`$CHwwCNF%9H*-*|iv}(G<)Z^ZBZ(5X-Si;PFrL&OfBh{0!j5 zq$SPn-pu@Heif4Sj7_%mV(K}AnnceZ18oD(M_v zI1aCh4q6ikVSjW*42=-DAjsAVcAIOjE$1IL|1?~p?s>l7_k9z~{j>G$&cr8)Mkr`~ zKYpI)`Tly*9AC5LD20R8qJRdNfv?_H=`MpWMa|S~HDB>8q=& ztO)9Y!Ky%K_vqnb|Fe+DjM~Yoj~*5B@u)DX@O>;V4z5>W&s@M&$H|T4#`MM)6CO>? zuP!z>_xBTRoNleQi6r}k4TVv4va&)~s|(f!bvn0m*rS&hJsbyQ4OO>>o^p85r1Ef= zHu896Xg!))m{{;^(i>NIkPYZjTKCa?Vaugz)rm@-TgQgm>9hkQL0>}&s8b@Xw)iK>G}~&y zxaiY-IT~Usj#bVZR2=LYpCwXuM5e#Wg?6@pjq_lQ{dDV3v0SgMa=YCu9&Wqc?#9x? zXHiH>0e!i}H8wevSpj`uW0D7?ppPYq1?!E1xq4j2fovr3$m^G(ZNi4nY7^}zHWZLk z2pRx~n`HydQRR@Ah8dxvIx#glKA3?Ezm}nhu#usYv9Aq|KH#<^kliW(M?6KmvGtMP zY}&hM;H@)+9hfRVqEVtZP#wqyzya^DWocK*ON4)kTJP~sjSmgNMPFGXd=$2?^y{xP zg%wANH3y0#o?zMdbiAokF50UDgTfyiD3Qv|em57y8$=vXm$o|;rD8{sNv<)U7@Hiw zd2?`(EiCd&h%w<5jBzY1Jm9kmMI*C~wdmG%?rh&gw`Q-F9HPTV1zvk2Rv28M3Ok}v z;dZl0h2YU{v6W2CEfI_4`nG_7>=qQKgX9D-Zi5QES;=H*TFG$b=)dVEH-sax5MtTL z%--(pYwFfW_oO?@4<3I<;I%geZ{6-oA-|!L;YxQGVn{?;IEQh$peh5U{gB;oyr89W*PYH$p5COQkZ?L4{mn z(3{P!6Ylpvx|&I)R%pS&9S=vhKY}$dqYyT>L)nel*~gDxJ)h~laAkP!O)ZGa-uo*^9**LoCtW{?!pCB&hl?+RRSh~?1Y*`43VhWn&SBRx>c0X1rM$HjgqCQ?fT z4&sd!c5UDi0K;ixC$xax$bJ=xOamM6zXu zO#!oU5A1)G+B8Osqr+k8IVSW>n8_0GI|&^;Ae0Zc+i%v$N_|q=*73Xk=KgczHxj88 zIsnEEo2OP*U$AJPHZW$h)3_6VdY!nV_j2FFuvv51B>ExO35sQq8I_EWVO*Xzi?GK{ ziPaut1L+|8$mbWgU28Cv{5mK3FE2LtU;N3fn>SMYd9(`)U=2tpTt?YOHfFQL8_7sy zahjzg-P?C%Vz{%%sFq2|&5?fyHWV6%l3^I1*5z?A$_62;Wbq+=z{!T4^9M!4e$t^R z@#!UzRMCLq_@r)Ze2^USgy+WnYvI9KhEFJfMv6!S(1;`>6b?#9I-Tyl{D;2l&VbUa zH)zzh|Npotw3;eL3*PWCE|<&au?SE$6YN~hwvzCnp84G8pIkHs$IvtGE>S>iIowI(M%3gtoQ@SBaM z(qRMIR%AkBH0T|;fV!?ySKHXw)pBlR02mlJbLR6$OYsyLCS3(I2pL2hhz6381vHj{ zjU>Xc4sdXEq=`Q++#I_4$DjZ7XYV!E27`6&KIW7|Ut_gWO5UDNL~08mLrd6z^r}*+48X89w000Gf*%kje(_=bnKPFz&4m$ySoqH0UMwvq z7BWvmPuNm}W)zlta~Wdwk@6b?tjB<8|%b9d&#e<5^4|NLzRYS1TaI>Cg3btsDlWRzv313Hz+BDAt- zj%OIGI{*&&I5YDq{`4PrqS0`49>O~?0H7cx?LK8kYmK#9A#~j;QkxkR2E&R&t7R;L z!67OGaZof0lZ(^uF{_I>r=TuuifXF?v8bzUY#FIPGca(;>-C27fowp8V}y?8@cnI2 z2I~xz23mvH#>-_0!bXG>2h#DJ&n%lX(i@My`7Rvg!izBgkN_jWI*N!~VG`^%$_hi9 zi*Vs$#lbKZ!TzQXj$Wf=H0`1z;4!F+b$={^A(Pj%su++(*T_hH{lI|N8=c2%6%Nyn zlnulK0Exz$Ukf6QOe&YnaTz7POtT7sgG(yF23M2<6)YW_$<=SZEKVql|qTX=SOVSE?@pJ$gB%Lgzayj${J`%_Vq!hN|KsXAL3N1-D3nTL4 zUMw1Z4UQOn#UQ+t5Om0CNHcG+XHKkeaAbHW9$J@0r~&jtN3k5;rH)}hqv*6D7TM(1 z8pkQfBQ2OlSS%pmqnCc>{Sl>j@RbLtJEHin!&}4|APs^BVIz)g#9tqDjV%A z%qmU8!=2s7)Wy}Lh;eC`Rj(oiM!gq)_jm8c_+SYEMCREGMT?Jozrx`G<;dK1*U@0b zPUgS+&6k^uZGZ*$AYm44+;S8vj^8&;P%^G{cK3{ynZ(62(+16|RAJS3_yCMTU+`3r zN9?YbeV3O9cjcnz+JP&!B?a)b>u2VfCdj=x-7r{X9y$7|x4N&NHvf2cdZ zmp0Najzg2SF+xPmR2REMgf0~XFSeyYdm&5Pg|-MPUM#ZUt$6dY|AF+P7ycWQ#H5m6 z5JE0gqJt9&7*hOErN$U-qBzKoF-_UG7wkErrN>UWF=R4?;tqZmdJJuYmz}^G&bBa*W@6I$Ns2+mK5&vfcu~@8xRs=g^_VMGJBMd+p8LY0D(7+@% zR|t!rJ|%ED;({^cIQ5)X#vHlrye}Hm{Z>e)FseiyK?A__B^e-(p4%P2_MX3f#@u#) zkeR9-gWdJ(vLBlQ-S`iI(FJ7OsY??c^_v60w3UF9!+qN=AQ3QXMH_3s2Qrq;QjXcRfCUBO-+rB zjs5%@$Y?UvXPl0?sinQs;cz_cY58$AWSFsX6VpUS<)2t#AsT~6F(88N2!*N+8V_^< z1Hp*TKeI45H@~sFyL*zw)^ahCQi{$&IsPliq#Om0JMr#lYda;dN-$#g+2fP^#)3Z-jK)e#rU(p1DK=uB>FLXP=>^x4py3z2KZLxEIcjmim{GnXRpDPi@mmVxoZ&qZ^??Y?La% zVE@8_(Bi`UZaxoC9BsW_-CSNy?XiK5EFFPlBq_w>GA_6RKmUwReU=4c1Kmna7Q-1Y zJ}XKYJ%z0_j{tz}Y`;4ILU!jDX8pmKt|H9WXfjfj;A)XErZ9i@*&hGe`&Iog-32&s zV~4@<*L7`zXl|}^TbIR(Y~aQrB9H4`(P-`Mc{g{< z?dDIAi0!pFjYARAEG=bSBpHKw6LC?NQ6JE!;7j2wEhWN{G_YyvcyArKoRae&gi$=)+EYkCr@e=ag77 zQ$d6m4{%NS3@@fqf`pDm@hWm!CRrgkQnD8fEM8FntZ_d=w$y$AJWyeOS$q*m)3R^4z?p7PdnRso9dF% zntC1FFU+4*q<~7B1!f~E7~n?os1|D}F^!E^iu(X6a_|^WLo4&q)Co>ufaf%6m4Sb3W|ySoexLZm6iF~kOBxw2&PQfVH{K& z<`g(!!{(3Y&YCL<-f0{ko*Kq|c)Y9e=9Oooxv7(@G{{*TkkgvK+g&}K7yy4_BqN|$ zOqYyUXkp{zU~4Cy5QqvEQy>y35boN>hr?kVjtnoP5^`9Q1=chwtFdYhSGN}>)e|Xq zC>S)+Al(B4-rA=6FJ3~uN$tEnI#|iS@dpVJ0)zx4q&K^3y~pTXCTcW%-eMsKHD2B{ zUG;uai?z4S!Brdh7RSaA-`fBHAOJ~3K~#5!N+xnB{T2R%!NDYh$S4KyYmw0c74e)3+eFqwkZ4a0~304Fe6la`~CkgoHkB>eri)q&FQH_PF5vqh>+<_q@ z7+&NgzNl; zA?~2!Ko)YqdjmJJx9s|=!JEK4yHsV-g#~jQ2vw>O;lr}Hx4C|hpYxU2?^23Z(4m&Q zh9-X-nCPtVEe*HFf5twKtKUy*xd)-BT{F&bql43Nx%Mz~@8gL-`$r8ur%`Gf2ZvHD zk~i^fWVe>Z|+iRPGjPo)B zvYR0_p8n&n(O@MUC>o?1#ps)pqa86FcB>%^8|g5x z0dROcZdoep5_5h;Twh>>Wi(z|AszXc3Bs?1ctk=zBOg@kI@$lE&#C)o^PM}_W7>6V zoAa6dtHxboo)1f_<2iVgh)#y)P*8)5{*$9MG3ho$o=ZxlmRfRwRCq3IuCgo&$(%c! zOj64^s~pAQkB1~37pJ3IN~#&bWEawy{ndl~Y~+lhD24|S;!_LdCx08UUAu{vEcZI$ z`rB$!VZ+^q(qX>vyLL=G`Ag0Fbv9V6Q4GyzR})DLKM4yuEGgqya}-t_st)6#aCp4n zSlk()0|!9T=vac|^fV_)8IR{&VsQ>YGL>;EpA`1rX7jUArXC>`jgVUH>h})~*xIkz z9Brm{r_F{4&{4h7IXyQWVMD6ACi!Gd$2nTzvEdf;;S-0(D8d8cdZ5@ zTAFZ79y5Ezo$)7~7aM_YYOy^U(kiG7E(N`EaO3@EdP(yqVb+Vr3UEC2FvwVhFlrJD zY(Y6NTY-=i9E*f-crMRHwT9??u*Osw@R;`%u@fK!JRlSd4cz>bzdyKE6ONnjbr@jy zg4r)r-Dokl*`EykJK6}8AV(=J94r$Wnq(juh?lFDV5>wICU>VV4M z^&1^MB->e@L789mmg_TfFf2tKwPdJxnaFal3RETiP;Liy~Ip z&}p$t358H0VQK_hUDy3lDTSM`UEzjhe{4{WU3Y2n@FXb&@ed6?8`>eX+;P`hxz4nD zTCvEP)H$C0v(M-IeSRg{n#APbnV%%JX`knb;d$}?{P=#qpKqa_l%sqHvlOJ#ai*~J zM7vj=lB>oW|K8vhAJ1T^4WKscXn+uAMnS$=?DMhW3R@%0%1Z{4m7dh2NfnA#T=F$*eFk>6SC>R?;A(~ zS!P2TX4`nR@o4ec%yUdx$;6#>$-sb;!hkoqcc2&TBG?sbU01rm>PH4$WG1mxJ&V$2 z9MR~xTO+@gj=X|rUBuJjG7>OO=Pp8#O@)t7*B?i?*sDK%r{ ziYAK%0I(=e%^Ui&+?+z4V}I$5PBOR@>`sM)tWxQ&w{LS2V`PyS z$_v6mN$E?#L_>@AmB0s?GxBm_F&G==MGggnmvsZ+@U@>fs29glRZ(Dhqm`SJ&s7XZ zHBKe2FdA5WK-hS`oYYXs9Z4yG36uy#0>nWEf-q5(e>nf};r#bBcUWUa7U(!9lOYQS z(9vDrQHcjAXW>=g1=o|WK|s-Bf|NL&&ZGkqg2&6LCI6UL6b03(a0rLT1CB*6CDM}W zx|$k`rACIKCgDeEMe;7P@TZW)Y9bDK@3z=C{#6eN>Ts|Nh!KeCTxI&k*WmV z$)Y0VJ{rk`{w2W}7Ceg+YhN^3k(Fa`$e}$7Po$TSa48}mLBs@%MM@|m5+X?jBc%AT zzQRE|E0VB70RN)E(SG%$PSV-D+_HlOmKrwz0xvKNd0F5cKFUi|7!b%iT5zLht8##F z2$B1rlSvydWHgjm@pV+RNKh!ggV9QZaYtiNJ6z5v@hPfT8L_i(IERryq3XmC1Z7A- zNMuI(b_`P?`1o{kEkxlUvO(YgG(4Q=c>g}V6gvvbPBx)NARBH(qlR*UkknPD(tFPE z{!ePXG8}5m0TD;|$>%e~rO>5_+kk;yMCJnh2ZBLvk%osPkkA@Nr7q%7WH!it2}zzU zV}ic|K?Iyl8_LLQRAh6DcuX(yAwd)=8Y0IL+3}yq#YM^m2`lo6=h)U=q+;kMf{fyolO#3UU&1Q2` zfraXZr2yWUt1I>wrnGj&@Usg&-mO&*fWtR?j|{nPYVn|SVAu(Q(bWQ67?~o;;WN9U zLgQI(N_2c11vcuhJ1Wz^8qpAld)~`uh@0s`2>}Ipje11?^^MPqaB!HX5Zw@c9*@t% z&tL1%Q-5iLsj8}^Wd8wk9pX`LK2TEfPJ{(K1~=h!-Zs(j_V_XE>|Bsx_d|J-xO~oPY4ZM^Nlhg1KTP{^v?RC zho|mD4n=_sAHXqjZAe#R_r-a|#l;3wSw$1*M$-Y40p6z8EDz!MIe{ajfrHjZV;i0? zpMOS1J7n&v*Q?sZh-@oWB%GHJ#O5YXF@p4RcXOtI$CpFkQN5U!+~^! z7AK#7hIk+ukd;thk|n_)P+;zfqbQPLdd#xQ|7Y^^=r=(JL;XuMy7@3N?v;c?$x|@m z2>V1~>9_TJ503XgIL-wEs$U7jjjn_v(?AFMlP*Am=7q+ruwkS{2^?L+2QgcY42W_} zMn4q4kFhNW!qYxTkM2ybOz>WTOMruV75&0tP8SXwu6KXv3k8DP6wnDBp|!b}E=opL zoQYDFkO$GWGn+JImj$^Z^3m3OrMK_yaszX5n{Zy9WQT#_^cN3RF83*&xCZ46poA zuW(pT??yS6e13l@0S-0ph;`nuwpQk6%b_SkWjmWK3*uo!Ma*|}3?Ju%UUg7K0|y9) z5aidM-mceUwt{e2-D$#+3vjHBkB$XGn*P69Jb;c%H!iqaStd&X2LoAUQfy>{4jj;B z9Ie(LooNR)I8K3sqT%s{felYE7+$>Z(k&dr07qKI-P|(wN0IrU-yhI)hmO+@A|ADk zr~B<$3P{ zUHkM1hpF1)uB%Sdt?V1RwXz!aj{0e%o6y$4V~qA~iCsE>0p!DBWHOw$v?UJ*R$7=0 z#h{GQVehvdIbVxp;KVO!vN=grRN)Z$P#_$6I;~SUigPQPn#>iZwBh(BGT{j#9YJ-B zMcaVEKPEMN+NeE?cvNPzNctTshcv`uWF6>F8ag|J@&YEZf{BjQtEExV8w_~Yo;+OF zDI6djRaI4Kww%d*=lbB&*`;wF>Ch&$fy72}ezN1irP{_rZUBT%-^dIf$;KQl7<25J z42&~SGcKRUhTXLF0$mp?DF>%kzld%K^RtudFYmgV_vvyQzG8zR-QLIu$HH7>$;XF~ z4yD7M(!j;9HU*>V(Rt}c;~{H5j(d;*mHDnRS#T=5ibo|dSVu>{^=jjp+MZ6*5e$U` zpLE)&z{!~kj;M&

7#Lr*aqIc<29XzwqSXcs4Z~nfKw|TK+&lQjfT9@{)p#lJ@tp zjSU3k?4e`sRy$jXQ+;;lW5`4;TT(t{7qKV&mJAE=r+fJF56`ssbmG=xnqCWNqBe^K zG$0fWgnaWWbJN&LxqI)yVL&(*9(=Vr@9~BLel;wW8@P_D{zYC0htVnBRPUIzzZE1z zGr1!jNN9!BmhlRyx|RX>gBYXLZM}NrOhY?vgzS|iLtasjP6g+VDv63m1U7=6rN#d| zB#n~0Ti(vwi*P)fdN3P#vm0n6p8+AZ3|K!bLw(jE35Fy2~6dNNeel4qV_Sl5kYcVo9`t+TvSUnUh+u zcjtU>Pb$Z=g{ip}svUAl8>B5c6MKY9Te$_uzD(E<3M8cV%-KVy0TArqN+qP|aH{nX zGEcQ8M`7qhkQ^kV-vZal@Uw#rdLvolgiip+S zPxdH_Tf3N~j7Ue(2_0=V@}P@ojmeDH$1RA%50$a_6JRkB7I6t1q#>N>;W$o^%H&dl z!fVQ3v}*1VAQBDo6KgAT_oe3hdlQb1PY4{3zxXP$G%nC3v!rvpR{=!3za#A@uPTXO zE`;EwX|)YRMTUrsu*PkcJTg11C(!trWE}_-2L|InDiDkRv3E8hainP+ca3qCoDLLkXyHxVKUVL_5Zz$CDV5X>ofGN*yXggpz5RNF;mT97b@szwo` z2ueiTR+M&88$u5aIV?z@=J|Txdf%#Q!wh??eM;@_vP=`|*Z=41{dhGv^e?bGc(cPG zQyItvDTS(uHXX`g>53(ADMhbPu75t+xWLCeK8OSO9COv^@U;dtl!}?;~xSMTzd}s+J7t z$O~4Ip}{NP{RJq2umtqvZ?riDq5{?j*57aE8KEHqHJ;2pny;eCEzytspy+yF5d92~qd zKK|;}n;(FdtIyD$qsgY6vRxJ%{o*-Z0+(KWLo{50e_#k?LLostGuNf=h|8{|BxnR0 z4Y9I3$|>K#rQq<=3yu%b#@XUWla2i26vENNaI7#KyBqr`9<{)kTQKlYB}6Z>ifgfj zphWd$L3U$&Pmc?j=>RNu5Ei24{{8FMuU`Qh2WG(j4F}nk@j*CyeGsky6o7?m-+vGC z;F*O@&N;Y|s$4`Ngu|ku9F&#eGdNMka|8*buT89;0~#P3XON|sY@|{-dO8peK!cS7 z47bm#*L-(QtH+#fN*R#wf_qU;RD{CBsE3x=$ZzKE7K?Wm?iS&I_k(9(@B)89N4V~z z=Y>S@MCWEW+c_N97djM;M#QRB-1WE$PY99#WP{i6DU}<525w7euc-g{Vfx@`>lpn> z3&#f87W$TY)pv_(YbzS@z_ZT70zu5w(!X6Lueov&}!_fi8tpn*ajQee@{N9l}xxM=!x~Ov=G*5FH0cYk=KHe5hiRV8jJ1S#=$I@^g3Lul@Z@k^Pt~aSJ?Z_OnCX0j$gmuW5(>pd z#6UO#pHdf44IfnF^Vy~yY-l+8(yAQ0mT~|c;9DRvCFjERQohZ4$qK$r@+n^8C6YW1 zNl1*h6f^Cj__;>RC21n^+$A?+O;@k66M@1h!~%_w4HJ!;$wmVXMg!TPKliJE#_4u6 z*hn)RJ)>_)IdsUubTA(ES{V}CB9%QD4;Oov(a$c{rP=>OOy@S2&NDai)K#jWmP@hC zL7{NzJzN8fruHR{p&1$uGt^N2L{p)_K!-v}3Xws(C2uFI2Ep<2&mHMgj=r}O$0}FR z%0YBgATnL61~|f&OQtLyONq*k^=JH|)eH3Jou-bF8c-_0svs0B$=8z0-l{2oNbL`K z?KGPSK1AXSN6AJB4=i;__8JQ|EWv1yI}y>qd9Z*6gc>J%hloZCHqr@4&(!N_Ga%g( z;Q%;xL_IM0DE_SY;K1G!f9(ls8OvN z-o$ZAr81JSzqr|&4D8td^HK`o$V|RFHj@=m4n+sz(Wv@3D(d}v+-g&a2LU3IUa-vh zDk+)~!lU_>3nTxyhJzJ@ok_`05RJ0!Q8X9gO(=Es5slNc&DC?!$mgFv%JifTj;_wp znTeH9I<^!X$_^lNK|a{Ma6f;}3w?`<1a%d<5HsZrS_n+R@D~N$2P?>ctU{8RJrZAM zt`RhJiozLdnJc2c3=eHK3#b_wgJS9`xofLUu16l;x|lvV+Ad7}IBlk~8=@P6#{trD zLh=!mTnaxv&~A!Sl{9Y_cebRz%JS z{DZ>Bw=rvB78ij6qFh!jwUTt>n6k+4h@`SRVbFnS2p$-Itknb%>8DYQ8a6|%+h>`)4$%pMuiX3SzeVSQBrAt+qKaA$ zFGL*nV^A@wjrz%F^d$hsx{5Q-3pON=y?rU0=}eFJ)FVK{cfRQ7a7D~Fa2vLoW7 zTK07WA~C8ffJB8M_@nl_{?ZrsQQ-QmOFqO?4MI?iLcqS{^bE-O_yt2yiwE^80g{oY zxB3UNnN$WHZ9P+y?BHT*76{6rkgVScL3(~MK$fmoCvB|$DuDtr3`#xg6$IVur9 zKY{^AHk(Z=9FWg~cIZNw6?Gh7&JtG-Eg=x4G9m@XB}Bpjs8}sCl3hFc^jk!n;k{=7 zjHjwJrOVj{|g2@UGT?Q90<$fOpIwyxf(;hE`HDa*mmP7Cee@~MoP;Yu|% zJK;XMG^oQE_C=sb<29i$9)loWPvuq|cYk?Gyc%N;Su8q``Vld4x_<~zY@!=k|5f}* z&M*s(R-%#PJmqFTk%4erXiKa0W+&fHB+cY1E`LO@+zY8ipe1X!Hmx9I}%% zE{s_*+Vm~@Z>ssyY+6K>1PPRh213D9oNbd6SzabL!fKJX$j~n%{v?+-BU8d> zeVKL=j`lRe(bd&H%C2R@Dx)(W75t8&QEyN@Y9y`Y+EEy=LQ2zU=s`6BS0Ef29wZ}! zJ@$aBAc?lQYv3s!+OdzGp$rCn+oNGMGYEosZ$!6K z8-xPF05l*Dl|2Ar{|rT9k-Y~B1;iCV#r%APio6YlIu-XOA}RVM$i~h7fs8@};OIy( z91wV9Eb*`dj|wF%nAyrOkAUk7`Xf$opmfmXdtr@rr&0l2Dw-A|Mwm%5zTz`tP(c#* zPJso0;qXv!K#dS0zO1hU5(ourMLu*QvoT7PV(@k0X(N5rbc{TGdHXVYlXhk4hNG?L zLU;e<+m?7x_(4NFuti&N%#j#{0-*s>p}=7ncqg<|F!%vC8&96{!(M2oWcz5q0oeA+ z$|A!6IIIc~;y5s%Af1?>pPfYv@aJsqJj+|LN8UaeDRGR9J-m7E5`ZCWbhmeRr?Px* zi$`|!HTo7A+z}2MRD6&-@f|g?*i~!ql_X(+bRo_KnG8{7L+7=7xGT0ohEwkrkB|Su zEFcU-!}6C;aIBLF5Azxav0P3)l4i7|ByT@8crXJFK;zN9%UP`%-DIh3yhZ9^-BZIq zzMGDY3{#_yQ8Wr_5V1s)2!|giG%BG(IR!ct9u&n07>5QC%mg4owyLOLEIy$rEY`J9 z7&OG-knh=CvX119bk>lRy!sWQ@p$azt^NT}3xx*Jaj~~2^>DOx^>hwAVD;d8xli|& z=Q`B_XGta*NlJ=UPy>y<)5GnJtxz~3%E6*>sP*D_B}#^&7@t0ca40l19dTnolyb}_ z%ZJ7wZ@L*J9PkWP<4^tB?ruvpz&bnr&jyAb9i0QiuV*0k*k(YmTf1{Y6BRsrsw`Hu z5DmyFj}om)kJYGfn98v}uU$$DK%#KuW`ASv{9>BQ z@;JWIf~9r(kCqk+ZLMvQth=qkE~Uwu%)>Cy7sx)aCcI4K!E`bt7&63t(Kj_AAwiw^ zuqN}c#Ed%ep~*g~5eR=m(g{Q%nlVhbjxS?O_HEV-WHIS>;vbv7pf1} zOh;n>z(rDSd^OA;JRJmyW|n3oXIh8Y}EN9=*x z5+kom1dS25ltBd=jYq;EcRiXKj*oqgeUDd22DZbsC;VVPd;wN(gP**GdCxb?&!G*q zvA(*kCDE6fY)F}d<3Z>s3u6)Dfow23Bs>Tc?<+|Mw-J##*k?mN)wN3n97HrGhlWWE z1xL}5LD)DF4mEr)!cYN?_FL!yHU zM_IDtf(ZZs5)Vm4K~(sPkd6&fsR-?OUl7JJZ>AjcB9fY94jBtIZakPD1wR=Yj&%SQ z0*vNH!bUT)aU>i%@kj(S6I1tgp8UYjz-O|sH5-zjyn=ZyKm%@LVR5~*{qk3-#!+k7 z;1*XY!9~eC5vAgHfs( z$2yNwGSsBe%*bdu(hXTOtbxe+bEp11_Y~$(c@EW4hBSn6g0S>9I>I0 z;qpdKr~eMm{e?9Y@`9a*G-*h7@)NTY1_rRPxU{UNLKiipe))EpDo3d#We%zvS~0t1 z)(G2`4<1s5X55!UDgoo0X_7!sbg{~$!6azVabzjNPXeKVvr|Mgp1{7r1yQ~}L_1+C zc8O>dsc0;1tka~y*&uPWs2hldj0WmPS)@^+8=}#%B-x5Sklrus5;{ckP>lrskeSK& z(1p%0L{P;|3~aQvT8?xBM8lF`WNg7QzmM8FKgb-=?Sef)ALMS=h7gScV`F2LV<4Nz zwk~OCozdm8tQ#eL~_1Qj(wQcL?C*8f{4c4Q@ZYRL3`#K>?6b_-Lysi z-#5>n3p){9P&8JTHF1#Ag%FHoVI@j`LpSdx1yZGyUEdEJtV4Pqu>dY6$4Oxlb`vrP z2&S6Rq>w?-*q3ZrEv`f=m2z1R5h$CDRF*wGJuUY7T-D>TS_0i|XQ%!)w}oqhaeokd z65xUe8ZhNrd{JiQNkK=(;`+wYYN^acL1RH3Xe5G=BOKIFMn}Jf zh%r7i(i!`#tD#v329nWi%Eta2#b$H$L_%MD5jm5v9G+^l1Vb6W&*$@JB0ct6TObjo zMBw!0n^SW;TYR;6>ZceYfZ+n3Mha(QRwPpLy{w%ffS ze?Er?xok95Qz{{YMg}h5y*@X$189J1Xx~!9)@f)nuH}-sonZK%92}gya|Z|^h}^z% zt5h-v!hi*1g9*pVikYn#^Jt+e7K93d1^Gu29~q9F=<0A7GDf4+0aXn&W^W@F@?dBz2~RQWkivD%l!8VJA{Im~pddL; z@`a%$F-S&}&P*U_>|dTO0l##goKe?d^c}nzr?_S=oAX6nwi=>wnV>;8L*q(v{v1eQ zC(4W~_{sXBBpbA2FgP;O4{-F4^pl^2kHNulg2*gEgfmhy-Z$fd;GqTQH+#PhEN%Jm(p(+N`42#wCX_?O2 zi`eTQIHJC6HpdS*Wpf8N7MrED@y6K1UE(Kn12jeBBYx%XBe5WqWYFSr zSvRdFqcMqS7)EDjel5X|q-bsBiUE@0`P8^?fg6=gr-2UOBbV{oEp;wwTl{&7 zV-A@_EPbH^8H>$g_ud%0_Rs5AVF&cq7XQis+>D6NF5uM(saxe~wMCVTX&}RZ1yZ5W z5fg)I7#>HARSu>2h)rXzd!{2Rjp1IO{$ZAp%g}$P?%7L zn~g5^LmnMeAvBSokjQ{EIE-MJSxEJ&L=%jfU_sTrhd4^SJ&t3By=Le~^2fP46}1*u zAVc9WQ>>gnv61ohn-|rplj*?`jDb`rj1Ceu#X?wzK`)qQ zC`c%};b3~fC#*|!CxPlRXTN2^G z(+vHMsumf^oIkqv=wVF^+|;1~bl}raG%}VeipD4*12iLMHcW*g+!Y26@T9}R3<`%H z35Sjd-R4AnnYvpGqm`+VODQcWx`E?0EGyfaUoN| zm7;?^T1ko*`c%P@(C;cy7K-a;(2xoXwUPRi43Tr~y?xb2dpeY;v7_{Kx1~{9R$fQc~j5LS)~P&l;8LoyFc7RD;X zTq)FvGXodQLRh${-&!uK*B|dCqp!E}=<|DPdd*bOm!&=yXD2{`dK&&N?P`m+AOUao8nPFy#I zW9@D61zYpCQDN?+zmrv7%PI$#pCk=`Y2Oyj`iG@^THEJh9e3jMNQ44Z6O zPIIG47o1MC)B2Q%h0Sv~D?eSCB)R)1tBq5q+M+cK9Tx9Ey0V4oKK>!Imy+dw?VZnW z+GZHXvlvnmB#3c}&DeqoapE7s0fbC;2xu47U9zf&vSXwjdP$^3NY#9x(k|&P+clT` z75x`lwTg1uF1_@SZc;D%C-(mEYizK=q=up8`5K5#4k&p)e%|NT`?988z6gQi?Z?3B z1i7H6&woPG3C>EmNNh6~bDvlVVk=y)0@pQ?xKD;ptt0+1!*ToeU2yH>6vwSJnYr&~C|nXo!%4ZOa{7pXS{KF1_~9&ImX4EjxY>K_tjTfpHE;qdpTmO zY*1C`v*KQ`SHmpC=X3A}cpgI|U-mzm!;|vxS#Itf3R6FumqOvVe*fmRUt}|a$2;3W z7Gi`7iUyfX$nE=CfAMhSG_i^LF$mF1AqWpGSTMvTt^mNL!q3~FVjyQGP5 z%khsN4$`FY`0J4D#J)dkMcXIH{si+FEdl}0uvsQ1h7PH=XPBm8BKr_}lvN?VX{^{F zgKm=tdpcL-!Z~5TYD}Nf_+0xU)N=gs`Y+dJkid0klR$uB7^`=D<&8@z8TWZj7$;W| z91~^KV(cf)sk>$B_2Q#aw%KW!dBg4r^?_=o>HdzQ_QM>~k2k}V26i+y_tXAaW26Yi zvJ<$|KY!oXpQjY9W9m8sL8niBc&6)}!x(!y#D`7l``Y6!u+84FJ-^zG0LMmf@*L^I zyBlOVo<4nciaZUxfHWPN#Y}t4=IgLc7BL-CwW3dwQI+D0RZ`*>3xS;HWEqvc2ypO1 zyB`e4pEoq6@gv^b#&IOl0d^woOxL*EGv)RVKKI%8k)+WHz~ME@SxGB2I!LC~>sjdNnKrtrH!_;I z5pSc9aM;1o5e=W6pQiKTKc{LQ3X#T&liL?wr}XOT;_};HzJGv|SQDvmw^AcJE&>?= z|JrO$luJdeTkGox4K$f(#bQYk@7e}FA?hsELPBRF;D>JP$`R>Ylg=+`-#I4Z#l_{> z@yRw>Njh324=Rt^?I6oxv`d1bWarUXoXBlehLN*Z`uLS@mJ32e zJo&_G@w|R{fz`h}dvfwJJ%&Nhq7Py+*7C5W-n9QO?u_V~J*zXvRn%FUSJ6#xP-Obv zaIWy9b{KtHOXT-Yj?a#cj?T`HU#3^Xff(tk0W>1}1Zsc2aB$+*L^t{J)&fegzs3Nz;4_yjJAJAF1}#t3b^V>W|Jz}Htr z{qG*A2##Opxj6@))f%RgP|@j&bK;)sG}qG4+$H};`A8qo9qww{hsFA@k`p?(A*C@h9QwTBKp#@9+Q>H0oQj_anr1<78lA3u z=Nt>~cItT>uk!4OW9|99g~Oino=?0|Ds&9J$7H#Ob8YqQYWH(8j?x0Q5=`Okk`+ae)Ow$yVb)biP!5zVcjvu*K=X%VA^S`cw*c=c zq_sQP|Iq8IxPjh)#KW>GTROArRdHj1ADL3bu8rX67er{kT59D5xmc2v#g0-|>-3Pl z>IwkIQVV~*1-IywvZC3&!JyyH0UV%l%YoqNnE(eU01g!_2MFK*-3<D8 zAX-uF!C;`bA