From 6d86aab39b959418abdfb9717a5d5784654731b8 Mon Sep 17 00:00:00 2001 From: xmu-xiaoma666 <775629340@qq.com> Date: Sun, 10 Oct 2021 10:51:54 +0800 Subject: [PATCH] mobileViTAttention --- README.md | 41 ++++++++++++++++-- .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 326 bytes fightingcv/attention/MobileViTAttention.py | 10 ++--- .../MobileViTAttention.cpython-36.pyc | Bin 0 -> 4411 bytes .../MobileViTAttention.cpython-38.pyc | Bin 0 -> 4347 bytes fightingcv/img/MobileViTAttention.png | Bin 0 -> 51222 bytes main.py | 13 +++--- 7 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 fightingcv/__pycache__/__init__.cpython-38.pyc create mode 100644 fightingcv/attention/__pycache__/MobileViTAttention.cpython-36.pyc create mode 100644 fightingcv/attention/__pycache__/MobileViTAttention.cpython-38.pyc create mode 100644 fightingcv/img/MobileViTAttention.png diff --git a/README.md b/README.md index 341463c..3f127eb 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,9 @@ $ pip install fightingcv - [27. Coordinate Attention Usage](#27-Coordinate-Attention-Usage) + - [28. MobileViT Attention Usage](#28-MobileViT-Attention-Usage) + + - [Backbone CNN Series](#Backbone-cnn-series) - [1. ResNet Usage](#1-ResNet-Usage) @@ -227,6 +230,8 @@ $ pip install fightingcv - Pytorch implementation of [Coordinate Attention for Efficient Mobile Network Design ---CVPR 2021](https://arxiv.org/abs/2103.02907) +- Pytorch implementation of [MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer---ArXiv 2020.10.05](https://arxiv.org/abs/2103.02907) + *** ### 1. External Attention Usage @@ -907,8 +912,6 @@ output=triplet(input) print(output.shape) ``` -*** - *** @@ -917,8 +920,7 @@ print(output.shape) #### 27.1. Paper -[Coordinate Attention for Efficient Mobile Network Design ----CVPR 2021](https://arxiv.org/abs/2103.02907) +[Coordinate Attention for Efficient Mobile Network Design---CVPR 2021](https://arxiv.org/abs/2103.02907) #### 27.2. Overview @@ -945,6 +947,37 @@ print(output.shape) *** +### 28. MobileViT Attention Usage + +#### 28.1. Paper + +[MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer---ArXiv 2020.10.05](https://arxiv.org/abs/2103.02907) + + +#### 28.2. Overview + +![](./fightingcv/img/MobileViTAttention.png) + +#### 28.3. Usage Code + +```python +from fightingcv.attention.MobileViTAttention import MobileViTAttention +import torch +from torch import nn +from torch.nn import functional as F + +if __name__ == '__main__': + m=MobileViTAttention() + input=torch.randn(1,3,49,49) + output=m(input) + print(output.shape) #output:(1,3,49,49) + +``` + +*** + + + # Backbone CNN Series - Pytorch implementation of ["Deep Residual Learning for Image Recognition---CVPR2016 Best Paper"](https://arxiv.org/pdf/1512.03385.pdf) diff --git a/fightingcv/__pycache__/__init__.cpython-38.pyc b/fightingcv/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f85fe007192bf25011f0b14dd1870e7b2cf7006f GIT binary patch literal 326 zcmY*T%TB{E5L_ogihy1@aOyRO@&O1TP+M`Sasc&$ELkBojaA2v>@85P;-N?F`29rf23ds3}ku( zMOM@PAEI+g6%L7zoI6HZAZ=1UA2iAsH-2>9$b$8Io!1s$!AH|TpXKzFFN5-d&*qB- zpQ*4$*YPWj&E}5JpHO*QnaL%hvZ$S%bX#=3Zuq@kHK^^Xe&9lAt5JxPZrf+50>=0d q37F4_`&@{&(pHGFNPZ@^YLyVbw|xK7L4VddxiRW|NQx18nzJv*W=U-T literal 0 HcmV?d00001 diff --git a/fightingcv/attention/MobileViTAttention.py b/fightingcv/attention/MobileViTAttention.py index 14f6230..9befdaf 100644 --- a/fightingcv/attention/MobileViTAttention.py +++ b/fightingcv/attention/MobileViTAttention.py @@ -14,8 +14,8 @@ def forward(self,x,**kwargs): class FeedForward(nn.Module): def __init__(self,dim,mlp_dim,dropout) : super().__init__() - self.net=nn.Sequetial( - nn.Lineqar(dim,mlp_dim), + self.net=nn.Sequential( + nn.Linear(dim,mlp_dim), nn.ReLU(), nn.Dropout(dropout), nn.Linear(mlp_dim,dim), @@ -36,7 +36,7 @@ def __init__(self,dim,heads,head_dim,dropout): self.attend=nn.Softmax(dim=-1) self.to_qkv=nn.Linear(dim,inner_dim*3,bias=False) - self.to_out=nn.Sequetial( + self.to_out=nn.Sequential( nn.Linear(inner_dim,dim), nn.Dropout(dropout) ) if project_out else nn.Identity() @@ -58,7 +58,7 @@ class Transformer(nn.Module): def __init__(self,dim,depth,heads,head_dim,mlp_dim,dropout=0.): super().__init__() self.layers=nn.ModuleList([]) - for _ in nn.range(depth): + for _ in range(depth): self.layers.append(nn.ModuleList([ PreNorm(dim,Attention(dim,heads,head_dim,dropout)), PreNorm(dim,FeedForward(dim,mlp_dim,dropout)) @@ -79,7 +79,7 @@ def __init__(self,in_channel=3,dim=512,kernel_size=3,patch_size=7): self.conv1=nn.Conv2d(in_channel,in_channel,kernel_size=kernel_size,padding=kernel_size//2) self.conv2=nn.Conv2d(in_channel,dim,kernel_size=1) - self.trans=Transformer() + self.trans=Transformer(dim=dim,depth=3,heads=8,head_dim=64,mlp_dim=1024) self.conv3=nn.Conv2d(dim,in_channel,kernel_size=1) self.conv4=nn.Conv2d(2*in_channel,in_channel,kernel_size=kernel_size,padding=kernel_size//2) diff --git a/fightingcv/attention/__pycache__/MobileViTAttention.cpython-36.pyc b/fightingcv/attention/__pycache__/MobileViTAttention.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..187ed05f09fa72d17ffd549e37fb599955ad9bfe GIT binary patch literal 4411 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 a8J*umQrFa5PHUxgz13>99sKE71MPnT_>2Mo literal 0 HcmV?d00001 diff --git a/fightingcv/img/MobileViTAttention.png b/fightingcv/img/MobileViTAttention.png new file mode 100644 index 0000000000000000000000000000000000000000..7c6237e0a42df031e60b22d96a24589f222cb51b GIT binary patch literal 51222 zcmZU4V|XlEyKQV^#kOtRSh158+qP}nw(Vrawr$(E+53FwJont&KlQFAbreb*d1NqKr5BrFt|_H{ z7Ok(Yve|5XxHP<8XRt8^DnMBpK+uDr1Hk|W0|@yN^djg%8~^}yV$X~!G5+tv^dRgY z=*x!Bfd4t|KUeX~67;qj%My$~{6FVIF!S4)LpsMS8`2YMDJxC$~Jqr_$-JYY%8Td4+uq(@u9qKdF*G=+wyx&#QLw+z zq^MlDO7OpJ0}$c|^#jQ9jlRM`qt#-!T4PR9G#>){1K!RqaiPSe1-as*vH8MOB2ji6n+IHiZj= z*&iMsl0@=bSn}`uZ5rGdrI0A~DF;ImeH6|*UXPp)iWsI9jxK&lU1SEMI%jN1+sr7v zSl~pts3gQx=Oik#sDXoQ`0vWE5#%NdmG7pnnHebj>jnJaAi}|DG3zya<}N(w9E2=2 zm*3{fwVLU0zrONT58t&I`4xtlBF-1@-&=YAEKV*i6W_IDa!fmoTlgsZ5{uR}smjy6; zU!9g~o_tfnM+%_I2>*6oV2+o}kal+}Gf}|wRh-nL_}7ba!9iA##o_TAD1VmF4+SK0 zuLJ%`bBkbVO0XXo>3+nyLvD$k*njp|yB+t4>ERqB!#{i0(r9@iGN0Qaapg zW0g&#k!QIvC4v6H%kObrKHXXLqN0EQoQve^>fV(AQ4Ji(vBX&(Bu{1OzDJ zD9wP7Cl+flT9z$)apzeTguU6%_2j(F_sWiz?9L7=r4dD`eO34Ea zKF5EC*#^0G{)M}4^*&r+>JLQNuSmIA%BgKXqlx{?Nhvw{rC8Uuf8Kl^qptge7;40k zkH23*7s!1Kf>yV~wMMv8{g)!cT4 zy|e|T#Eg8ulDC;}xmY&L?Y$dnXSK&7tW6q}p2=y|bL#(kj)J{VHaFvG7r1+Q&Uy~N zisMcgDWj`G>3TczaR+?maF|5T*#$8E&(xv=afAZwr*lBiDo+07Q^QCAy02%r* zi1Eo|*hA*)chrnnjX#GAFAuKMaA@}@TK085`bJy{96m~=A1#{|AS8zhyKyW*s=CeU zb@^%$TZidZtcNdo!nR&wb-JR7=Dg)M5}>+Dl)!WR6|+4_H7!F6b%t{TO-7Va_MRv? zp4r!!oP}`5$|Cp8S_otAy>6;g8SahId-`JY=0~f8j%8_f(!_jqUh}PyL&xGh8giPu zwg>(Lg*{R#S1RULOe|5uBa4w4a$A`c3RQ|_uXuk^VJFF8>2&|3PnIanWo}?&TC*5g zh9QPbcp>}pJSJTOCL8|@-5wY4X<^hYQXTdumH2Xkn9eQ{SXFUs?_Mf4%gtPqGi-Q7 zIhzweM@wtszj^23eye#v7X&|sS1W$M@0j0Q=`QPJNGqaX9Vn zT^c8~G~O=dT-@7$xV~3j_aRa`%a7yj7wmD{*0_6YIU_uH{!hhp7ygMR9{-W1zQcp#t#{Htp90bo^rg*=n z$V(Kyu$<<=i&&1Lr0b=Z-&bU7EoUASmK>md-ar%=IMbt%5#LEmvolD-_Eu%ll&-61oPdU1sTbhyGeW5wK%I@(>*G?aQQB68*_Fk@DfCo$gdG*B+ znW)egKZ?Qq74@u;Jb?tnS>malflarkh$rq!{KDqpcVzyD=6eK8x8Ihe#BuVjzu+7> zh1wWL8vfUF^lWwnbpdgIfY{~5zC=eEB!;`h{OPoLa6?sUg$m)rCmcT3Xkw*+(EVp* zKHp88{yj({*61Lb6UOPfh>A4BMV4z0_15Yzdw*=toycJSSonqE;sxHnm3;;nDAM8# z&`<^Rp9BL4`PVk%$^P8zhzM$%hX1*h;p^HTNzuFD)0DyA^31D!pf3ovKAVAW+ zsE)$3EaDXVYg{0!DXI!Hj^rJ!6h8A)Sh7mHr+(8`(BNb96*`Q@pqUNH$Tt zd6JS`88&ppV9KFr`aph2huB+)9;?+^yfQFr-y+T-_NQOAgdoD*&E6H~Po?$n9 zRH7TXjQ)ADELCORs|XS$S_=O6ubvjp4+^WY10wU|U)?9y*UC}+53AlM_7yha$>mAL zY5(>H_}~b7T1?>lMwA#oEn^f!Y^rPDvwXD1uCY2>YYf&QSJ3w?x!Vh~3_c`d{x7WY z6eEfC2dL^lf+V_8TVb^z-&HjTCUQ1&T&;QX#s2HJ`bKpbf2JpOBFcV;#oo%aX+bWp zMq|Z|P)hA_PPPd#L_gMrqi<*h62$+0))Kv7@_C*-Swn2;>yW91*ETC?;tXD3EkuXn z$dyf>-K0!c3>VjbnPr4!j?Ph04i{e&2BHhLsN8vyGGGuNcY!*y3_6G#DY1&Tl~xeC zC&_XTPW~mIS?u_l*)PU>hpZ1XZRxQ3iZRL%mqC?;G%vZ$3Kz=s_cddxBZ`|!dOotT z`NLCe4@Ba*o=1bLWhmxPWm?dnvtt88s<-_cXz}yJdd#U4GOOO&aWY-;yDE;a*@q+L z79@OtPLP57ZEjI2Z`Toaam{sC)M-!qN7U&cor3f}85fI7c6HZLOv`7jvz679^!?T= zxO@gSY-65WQMc>Ms}4Z1YK(ToX+Q*=!CPP5a4PPyJy5Y5VsPqE40CEsNW%JO*eMtI zwZYp79~pg@=L?iHIQLidDXx)+9wr~p_;de&ub5xz6LuZayjU{M@WbW+JOfYJC5rSs z0$}m&05sa(Zr~C!LzJ??+s+OVNBY*B_|hH!Ltg2AbaJP zAJ4LIR9R!XMl%wi9mR>7DhuzUr3;|pO3Zj^D1B~*B>fE@I4xN%9JhcW*nqoai)J`$ z9hc9$i$=2QN$2>el~{_-KC`(;e}2(v6P}0B@Wh~_o}$-!Nw;=Mo1S1V}*G)z#Cpvn?nnElpiZOUqC=FfT7J zs)|PCmWLi8C@V7yl0d_Jh)|6_#$rem)a#ozPTcbHB2e&;u&}VFR%RMU3kflCU`Ws( z(rm#{1acH-NBg~7R|x!mQzI)YOG|8IWMmvvBTIdKBcmW+B6f0LeR68C-l?sv-d_G{ z^=KOZNcnM=3cZR-b??PQmJ+Qd=JcfMbglast)_?PfS{tHva+(ZcfjjL)$43r_AY}R zUEsPdP_qgPEtkPs#O&;B$|!v;MNkCik$=#wHi&p>&+R+9U0OV$g-BsB`2zk1}+A5d9iLESM>Mr!9z*1HT#0Vm1GJaw&{%zm-)W|VzMTbqd&dj zYBWInKINel&NGLxnPRSBDbrqh__0$n@F>c^pwjO`)OW3Ys0@Z1ZH?5H&I zo^2bA{CG~o*)QAa`N&_DnPJ0Pc*V7xN(d(l73XXLF_dYbkFj=>{_aNV9seN?@P$Ao zs3$5T6Un-!USMqK~F5}?-zFW zNzyyk*jEfCbU$XTLc*VM zuH5UT|Itf@>_=P`c*G-?8cmL!Elmv%@_+abzmL$~6ggejzP#62dm77Mn>-IwUXJir zE-5D34XP!P;d-4r$uye&{{Dz055NBvFSBEaxq4Ho+>ax*L=HQe$rH-qcAKj=k|O!-MI2{Jt6mRc z(VrG$n@{egl=ggV-kXhY!PQCqqy$?9RdWuY+i>ku6<5kzZkSJPaH z5!~m3gjR)O_-w4z?E>b1EchWYiY3$b2xA^zK?y>JguA{U)Io45dfG{+?EGwmag!9? z(GP|1FV|a^YjlUr@E=#riPPEbiaUpLOz@rE1AD+cCF~I)VHK+-+~X3lM^ilfX0+5` z%PHy!@iuNBOEoDb*8}#na6fVsZ__1Q=-%4dD9d+tWYA|P0?=~O27ls{9>iM(q!ZU| zv&*SLuQ~fzW$<7rECNxo3Yj#_5V~`$ULo}8_5Ro)!ZbKA@S_n|=G6&fp=mn=4KJ}e zE|^#*^x^YOokM(ng5v31Q~StuUS0|=Thi@(bc>T%_X;dtH*wWHb9ocsnX@RdA$!Zy z{qaQkvu8;!3S0%R6~%sZ?ANlt0oH$JbZu?z7s|oo44j|A?|l=pD-p-i5>Lh>kN(e+x_7h?T%#k${LjF%SM-L9Yfq(x`}dyBj6=?l^6&6Eeg?>Tl=o zxz98&V_9@AfoVGB7Zxl&Z*D@Q9pv8D;$W_Ttbd>fIuIy2psI^1Q-`GvG$q=uq-*_m z?=h0q`k>`Uh1|NY!E-TPw%yyZch}@n4W_#0&BaRI36zknh^n426IxB2R29F9n7z9^ zjKw4&*4xZ*bOP|0s~L8q*dzf31#THuAz5ZQTrTw*ovujg@i5Pi^xg1^($%3UQN36p zt7*uAG}-?UbtAGM=}u-UzI!ZxyT3@II+m)4OFQ0tTlaUQct6U7Vm4@7ygvKf5@?mp z*<978_e9 zH%mt6Dt&B%rBGZMQRbw$?>)5G)Y#I@1oiam1-+Y0uz;k$%{JT7xRV6q^KE2$9M&kS+q@f5o6!*R683MNK{Y$v7;8SxT$9vxtCxWNm9;b?~Z zGN9>B)Cg*+&zVF1{4j=ew;WUb0f%UdeEV+gfan2C$He{d(Bd(#Avg>mcOhTmFahcz z9z-bx-cyJ8zlnxQ_BX1~2Hm0DH|Yw}4l?q@tsjjXoDhosa&Wwd_wmo%xW$U_w0C^cmpD*6w01J}pqH5|>k zX*_bW%st+pXP1|kJ3G15Df6d+fglD329-s^VMy-PoFy5_G;bBl)n%V6xeqKqZph(a zOgm({_qaGzK+(c2)@Dq}9%)*v->1OG14R6LPzr(M8X3tgOhR~oS45#L(OyG`^|!FF z1O<1z)W|CdX<@j48z0Y|IUxUCcwxeRR`5plJ33Tcz!>t_D+W|((O080qbB*f2~R)YT+=EBEN~aoQekF3&zD@2<`h9@yY`oDpKl&rfD#iTHrML1 z#fI{Pj0CvHBhFdjn5HLTWUNy7>esui@i-b$eWSKmJUagXKefoCn1L5Xi&#lF zJIKxz*DK_d-WVB~ai+FR6u>l?BeIA;-dciCJqPFn``&J+#)7o6NW!uBb3#6p!xmA7 z*eI(d{=Vk2@&;*!V0ZW#YD9E>X*QM|^}C_;5B-6oiuX}}*D%K%tk*`>XPy4b@rtBU zmX>aEq^}P846bCtPkLE?>I|R$AcSy*Qkg=Vzq(2oDP|dbH3r77Fcz5{UhVH(YPH&2 z=gYN7(=)u+P8A|fxYyrxA0z12c&OtM@g({C@uvluXp{*esIp;N#4T);J5o`Bnd34> zF&m&b_M*XBJ+;0$Z++@rAnFrwX5xyHB;Xy*kk0nNEvm$=I@gUHcZyowf}|vIZS=o> z5I13;mp#yDef_|KblF~FyyNE=lE{B!B2LnIgMB->E zDnAKlCzEZb%F`7=05z8Lh$6`msR9%7h6AL-e4>z>#-Y6W4%u-TLmWe=txSWQ$-v<# z4=RQBF=)K$-b0Wo?U&1I4|G^QbyU^t_9K2^Ydh-crj4)HkR3FRyJNG{f|20+%8Ht$ zgtcAyVuh;7XaNPdHl9|(^fB9K(dozQ{i913Dht8#!oAjQc>3yhrl9X2*~qItl#4WJ z^l4ckVF(&d!~#JHjKW-m4pmth!*OwcS6SVlQgUot4ZBTpBw{(Eh|yIlAyJCb78azB zy>TvxgN}r~qhe4kWt@_ZC*kqgkX$>+)&NG9;2%%Ax$M7VkG;?IIQ((Rd)jNi0J zwcn{iEnf~RQk*K>GTFa%U!hPJe_^wFCtBa8qk~3xPj2ifwNIkfz*m?3GD;pr*zqPk z{1Qp4`8|a*e=xEUTgKsvjx!uYVEi0B#d=XDT^vkl_*(#5QM?e0;a613rYfo2`9Ah2 zM;$Q;Er(yEA`zZUarp~uc-R0PXt&I6wiG#z{zSF$%Yh_J{gfh!@sR!8=%vvGQ&4d6 zfu8?(BXfe9W-gOX14*0xQcfffmS36h!RzC^3ec1C;m1;aNelUpmAT|cQ zT}k4+99&51+>$qb#--Nkq3KA*f=;2f61|75(^m8 zmuYp+)|xD~$kHLcY=FUK)3`Y(C?qbGj+usJvReOmzG5Ca95SA^DGaeZ!nl4_z7W7N+jbru*d7uh~y|g)%cx4I&0Xi(c!f)al>B_&q@6rf5eFY+bft z{Ay??xnDqWp?KmG9)cj$Z*39tEE?=0>@ym(pFzv`O@n?j1`Wjq0W~eoPl87V7`vht zZq+6yDQIaxP}kJoW&ai9D!t9?H4aVdt2IA53dv>bV07{vj!H!zPbU^ex8s1`65q|>{_3|q$2ss5Dki!Swl(_86cgJzXX62a zc9gV@h_taW@YqS`5V=UCXV5Rb5Y;x+!}#F|@PlWE3zaEAlyb*GvPDHtl2fA=RJi%& zf%)a7u>x+3D~^~-5~d{)DkmW-M(1f{l=x)l@{Mwq1JJ5inwqY3x;e7=fqKbYeH>A>S$(Kihsqx1{rV) z9L0e@&4i_h2Coi)Q76hsCUFo>0};aaA@X&I2*@M5nM~TlqFWBjd6GD^v@kPDg8+Z}jiqUBAys8n*xamVR;G^1 zHU85EocR9ic5wP8LyOp&<2K2P9ZE;*2aDOw4}SCpFUUu!@~;ZvyP&G2F@e1T(>LV9 z_~qaN;>zJxmZ2gbK|XsbKD3v1%TnEOs9JZ#15!b&kJV^L3%E0{%DyyvGI12+= z7!nl_I^3e1z3<>(!SW zmQ^cUbDM#fI>1B%dKtAW5EWgRieBRq$HBIhySyxVdQ!@EwvE+?ldUuzNe&x>5p(`J z=J$PNaX8~Nu;m%*hxYHk86fd*bF_ym7HYj++fbXrTe0Oa&6E?yO-KwDpafkQryv!T z{^IAUB>xv@jNn1+nC20qd3+d}U$r%bP=C7hI9-iF!;<`Yfh5u*lzxIdoZGF>ys;G& za!w5YZ!N%L<%0+kk~lvA2#9H_MPhmy3DfU`T<52H=HZ_uKyir8D~2atG<4I-ygiA7 zl=>FPsUT%=rsc!0J-nf{%S-*xGhQgR5g zC5A=2Bgb<|tNuFMPdZorI(olcTGc#SI;wJS>aU9x zTf*x*YP?!so9MqdO3U!`_EW}Gv8&nn+Wi}1(vr=A=2X31?CmK0(DVL9!ae7tri#Mb z^UPg+Je#WxO!kAbnG05SokE%xrNx(br5k{bwZsO-I+d?gG;{L(#(cBP_D^ewN-st_FG_jERHnte-E~O)jYD~`fV$IG$$wSX0{!HDQ{4%H3F`#|ln0*9%1WV9G$@eX-|S3JURnvz z2gX0!MwBIpGpUiGzU#n?=tQQ~%xqo1h!O-OI5#zG5cIFVfj|A^{w;k}f1Hk(kWjzX z87l3O+ELneMkI^P80uuRzR9JPEX;9{h)}|0nz{GYH!EnAG)qQey+q&ZFiVG{V+%`t zf^MHQi&z)OFQiOQP^Kmh zwt&w5gxME{Nmnv(p5rUnw#jrBqWfeY#RJpQIu7c`>T$41@9++|*%?uXQz*dG8Sy%f zx69j|+#ACTrumDFyuhqDFG@@^7Cw)!LX&q{s&8%eF`;3Syj#Ga`Rx4!@ZWQdi2WkA zguB2lGWzvXE*#fNwljJR3ckx&il!Bu+YFCon9GF(r1W&lZ=hB92Z{i_0$jhB^_g|4ut z(fOJ#S5&M?HtkE?KbOL@fXg#Sx3{+^C#}xf%j|XgW7Zv>`#1N;V|2T1Ux$^Al!1Bo ze*l>C=^ROtzcSC*H&dw-gTp+EY}#I-a7fV_J1#2hDZCvGEOFeZl0w`L9K(dTcPR2E zYG~8uft4d%ns(Zf ze_A}~k!F-^N+TofJrfP`Q)4!m8Rlabm|3K%sze6F!h_*TWMz{DqYd0#U0XXk@Oa#r zqcU~iZott@v?Rslak77!;#Dts(yrWqCeQ;}4G2p*hdJ z!LU?WR~Of%iGVt%b~b7Qlef#W=*43wn(l^t5nQN*zh#e~{sS@#QN$K%CF#iq0Saq6 zu;qV#(2@4};bD-6w8ctcp2<<hZri%;&cicPL)#YDc%Pi)Y~t!eaoE48uk;5(xixe_`mcp z8T4aqp$^5yuiei$uj3;Dbnxlv8OD^A)V&Q>TqZsle@LQOU(uH`8w_(JP4j&xYxco$ z+PsP{uP!$;ACCZOQ=f|%H_YdMduA*39*-_T50w$NMO&^;*xFyE4q;G?54Wu@oV}(o z!M=c*Z!dZqORKH_Q|P=1Z}xVX=I?-Dz?btBE?ONT=t_k8GHLYx5H!{LB9SaC>9?BZ z%~oQ#LUApTIGu%Ou%NNo5R|F#xPfu{ZKVcioZHhk)K*lKrLEd{d0cYYa~Gu#YQ9H% zRxtG>WSZKq9>I#iMIa5i;cR&-YmF=%PjwLXd~Zs)T7Mldfmu;X*=T#}x;?!)Uz_l? z9(#?r?=^GCAjwW>U@+;K`M9Br?!8NqRlnbiD>p?##=K$ct()l?geVES*}=Eiq&VYj z*R{$&?5^+)!??>xYeVvvnW9HYsIvY&U=D-Z+@EqzE&XF1Z^^{ME<)`=y+-+B)T7R8)!f}vnr|NbYERP!;L1x zbHjQ#yP6%VZ$Y#`)lJLN025blM(;e)c?gFq=K+_eAVsro-r}eSu0V!(wtAA2a?eX- znm3dRswSpO?QrGdX!rb$x^un5E@Yw3#6SOX*omvo^3*S##1j|uIeVkploItf?b_Ue zT+zk0k8FH7*3RzdZI;m=rVGcV4O?!_Je44<5}QVCALw~1%>PGc@ z*VCJzD(i_F)MlSK^MTP}PWIxtlgiS0WmZ&bZ5Bfljz61_T<6iQ%r$27>d(SPVsh7t z+T^}|(4xF%Jwslbb#|zXJ;ZC8$XacQR&I~i(Q8z%X(YfsAo_-%(~$rcTt7`xYzG88 zCl?f~)5UP7>q)-dN`YU`cU*_eh{7c#ld)fta&q_q^zON84Y${Wd_x&}13DTS)vt&G z!h+tQb9YvI`^Ipnk8r6S3dMlIqLfMMd1{l@)RdhA_-U zmU63g8P12^eNO9mNo_uB?Ct||_CwVVugiyE7cmwqz1AAo4l=DdE3Z^xfLipt{%z)U0Lq2M8(9g($Vig(?X>5*OB*;_w)BZ zK0fNlSO6>2CpFpb>?=^^zA<=9=4z+UC%?J3WJmv0U_4!LW`NaPD7+cCN0xuL8Erj+ zAy-%8F_xWXMJdxpW#e(Y^`=^qr1KdQP)!olzAiX7)e@0(Nfi9U1o$PoE4^z$@yec6c>a4+}}u3B%AtnF}=oZtNqiZvkCRc>$)Q} zjYyJECjH=1!_Ve23_q9g$jBnLxltHrReR!?v&o^dFGI6f^tc_$EQ?_ z-|>5^1!-~<6v6v-JCqZdxJJh>Bz|1$z+vOQar_}cF{e_^xpTNsmLze@UYHJ5WIn}f z?@`C9b2Sihpb0zV%VoOo(<(?(6iJoOydExkPL50L;f&R`U_UcyQ~SO!PouGDCtRsU7dSv1%KBYx{GaLY zkL1rvcJjWQ$-{4{1!$tVS#R0oYR2JkYSt%-Sujpp__SEgkN=Lo;QDjB2dl|e`C+o! zjD~c~Y4E+gdp}epMvJ}vShn>sTlA^x4e|E%RaA4mkJg>XOULVgEO(p9`BKI@@ z#`kBgS8VIai4x17m|ID0>Vlq+4;3VNjqvbx`uY)AmI4?j4NRN+ARVXP zWx9o&`&GB|mQ`QE5NjKtOf^s}JY^1>_0!&KMO4&kxbT`bHRMH>_>>PYlNfzOP_HS1 z8t_mfcpzX6_a=iP7m0=xNp}#34`Pp?9wyx7(R{N=6KxtB=wDkKvQ>B7Q0P{4p-#jq zO;}t{Uv*@G(WY3dV!l;j67?_|tl`ixd+N>1d#ys(I5i&Q;hzrQ4w82FtP!l?foAPBZb9JIAH%6wCMupIcWn#` zObrXBG5`r@pTp#m&{B@+siZ)1Wu@));r3?VKDY1)Xh=rrAV{YU-*d<8xDtCD9}aH6 zJ7ca^U51r{meP4Z4<`ut9|%^hP13Q`9r;s6%S? z&FArLEtlg4sbxV^ia(~E@%>U#1Xki{?+S~6b|xfRrA{Z39BtiNy{J0sV*9Tk4L3zh zd41n9ecdty5;s{+lyzY$uf*46{R9h6gOweh^f~i6Z$Gj!KR`H`J0uR5m|v(l9I`>o z;lyPFAG1cf#o;1n#14+2TkSEFOwO066!^4_(7Q?;7Fw5yYC2l1zZ_!^r@;*HG(Ll) z80)iajxMx1T^VN+p>L%ts|w(w;;PM)Ii3^aEVqkYB-vPo8eAlItTf$8-HwWM^ynLtXt=Aih5~y$_4kVa54Cm=72cSF=H1MAK)F{Sipsr;62SmeOEvhsPRHt zWb4G4=7EtsM(KbfEr$YDux3_s9kbRqX5!x)?6qEK%~=ihv2zEka}(kI$Ye;Lwve@6 zLexd8Y|_$eitokPT)2=miKPecuz9i4`w}tsjpy}bLqD`3l8KDl3+;DJ zm35?yqr>TSg>~n53p;dt3FVGEUWJ*3z!4oC;Vpy^|&$n~i8yzWY(%CYq-c9&sT;ed#n@<4i%aa*e zy(ADZv^cDnCQ3Q*)>s*E{JFH~ELavx{tI{u9*J0hJ#w{_0v6zrP21}HPet)*hDKF8 zYz#;XI7C0l!Ss270syk})=vM-H-Jw4hnVzQGad*01aLvDH5<~x;NL<0#hb3Usg%JgdunViWYCr2oT)DtlHp^ zzS^j7VixQzX`O6EM5KNeC>NR%ov-*|MUNqZjcm# zP0URyM9p|d>!}qpdOFXR#*Uv|Y!PlMB`>X5@ok4Ll}V0{kl)kN{@EgRe3lHz*-TJT zJ0U+mMswSIQ>*kA+2luNP3DF zY!`z(T!m<4ahKT$8ikG#1$K*dlHM$*nvuYB}R&Uc=Twh z3@D5Ls4f=`GBZYM>rI652p>vZ>qWjwn#Ytf1KG55%4N#wpZvE)oYyg3iYv*l_P)@_ z;jWN4i!q4Ql3=o<_ovA^8`#t~JmzHdfo}7`fU_n_TA!zT*E=?@|I#hh#`B!&E5tRN z;waTZ)WHt1GuTZ4DfGS(Q>+h}8=W_uGoEuJC2kYcCb-yy!#a+~QQcYNSaG7P;<1_2 zny{E3>1~oX0?As$s;0%q5feb~J)Sh&AvNWT`LcnEa+fAd>OKjZ9&IoM0>M^ZDn$}( zIO0<%nZh6S zyD<+#B$jI`?=wT7g0R+x3%j*{R-eW9zNy36tU?wTn@c{VcY}iIgZHJ3E5S`?eoDsU z@jRzZD?2InjoasPtx$#`ZJp}s?|p2$73P{@!8`dh>jxPF_1Wq@09QZ@+Vmxdi}i8z z=W!)BX8Q4Vu?f*KNZGU|-m=DH1ctrj{#F-snNm%jk;;|l=sFG&SBu3~<@b_YpQ?(b zSGb%N!X}@W*nysrC4#G|<-6=Ac#T_PkI?kpbydFk>)_YEzCjY$URk!uum({t@GFX6 zQpjvT%E_&RqoEr;BOoRmB2ujj0B(>=4Li~R8vr1n4kD*J^Mm!@*XfyaieCZC9yeU# zUmFk~&5nP35HNvrG}+K2Cjfb-JAUjG;un{Sb+AUz_?kW@Zc z*64E8nVuA_rhsj`71XGZtRHxuWy+~fqB6dmI!?i8eOft{k^>?H%GOz7sE2xvAgW|D zyGE^%H)NUZewM>sV=QlX9uU0eym{U3jz5&TeXSqX`m&MAHU$LyY0*~&_eJ&0fS~c_ zg}U_i(d*x!md~?;O-D=NcQd^LGi0_A+`qw+5o--#%G9$qRNOG6{Fkp|N&LbrG58ce zBqjUKMeHNOI8qBdYJiw~B~B9Ac!w8l2Y7Y?mx6xjT{k>?SjV6^oDw4a#v9VxuG>S@ zH~uS;Yy(wF+TX9pO?9Q5TgbJxSVVN z?!-cn6~_VV9)!1cLavT$QVm-G9Bb=ssbM56LO3){ znGi{N;{!aB11iwfn^bOZWC=ZFXk^4_TW;{;LJ%h)4?W-d#Dy8es{xT>K=Vs)htzvPDz${dgO4}pE?d>%8cjvTuNGKuRWu_H#Fv5b zk0sWMj$&2K_T^{_r2ZSQ^x0-6bD7})C%aMZUwwFiVsJ}BB3HI5&DXv-xu1JWuDQxyMg(Hq_nZIy;^d-Za9 zqlXP%GQMP^(35t5bgsZimx$QY_VW;vsP?Oe@}_gNb($ zl}BM9Yti3098?Gp^A4q$&`@#&nOOrO!rhhck!}+;BFG-eqiPTv$d_-iYW#@!-l8bm zcPf)e0XK~SKglh@9OHwy*z=<=&t$C^fMGZR6!+_`cmuheL5ZnpGB=UvF255l!#$;y z9=vMsew%{bS=l>5;aF%~4Tu>3yf5kYM(_cNokJXpVvU39# z&AT(Q(cy4&!I8N;16IRyBf6w%v=r%F2Ep@gH(TAB#$2eW>iZ~DZw^n*2lH6+dm8Y@ zlFls(cS@Yy4T^Yarhy1uxPKwo@WmMcOCFpclNVNB$aDqaMWVJA)~zpuhz!vt)I)Tt zTNS*uzN!-y(%qwx~RYWOm_1Iq6b_w=BvF{KH!PJ zf-c!^_{#=g5$hK8B?uojGwfy*E7I1pePXptgQNKbXK+Q(j>=j-&Ph@N62#S^Jah4t zv=K;)Nu}Jm)<79#C<i5v6LJ72neOFn*a@E#lH*L6j zcKK^hEW_VTN;H!=8YW^8AD4=YwimX;*j5BeN>j@7Hask{4_ybD3E4o=Kzb+7Z>G0@ z4G8prhn*FU)fKjuosyx2aag%z&tQLFe-FWh3A*8sH}Uo(XtiqiUIxjd(YP%jH7<3_DWc%9;sy-TT9B7BgP ziJCZ7FN;A^p0zU}h977}vUz%*Jdx}R`f*SJQ@YigD1VTtansw>rhBDYyWw3Tg-{3# z1C!!&c8YQo2YyUXHl0pqD!biYj?eUjxK{{nmK9FJX}Fi!rKYDvpR?{xO4W#9C4bI!KWa=TX{uV8Zx`%aPJ>S4@qAVZ z=~}TYm)2h%;KHUaSE)4_9g5PhWOL$H{I?b$=EGqkw@xU*N~NOheUOb#XWU9<>EmFl zKp^WKK9e)|IdIF|&dJe^7|Bg5W9^bjgZokz=5hK zl&NgAI@Nj(obuuJ<1dUys`cW(#+-bXNtAph9`w6RG{joy$SB@qq-uc zSJy+Z*JCGt!T%q!zA-wJaO*No$LZL%ZQDl2Nk?yN+qU1>wma^mW81cEOzt;xXRTRN zf2w}fs;Z}+qrLYz49`WpAWm~#E%F!v4x8=@hvB~ z-0Cs7^Ij9gTuMfrFnImAUHcYG>go$zSJOAgJ;+d(s*^mD)8WX!x={LbByCA1UM#i! z>{w|O|JzcZb@w>r8!@e2Tye2Ei2isDyUXGvi+L4r-E_C#S)UT?S z+Mf<6JL#)roL~wWE+~D-NT$z~r`KPi91-gH%1a)yhdSI-0gj?_hQuX;k#&G5UOO_1 zUgsDWYk=(wLvM$^)s$>Vd@Lx)hU)be;S*NSwtr8@bNF;@`B8HdmB`@Vd` z+r0~Mbv6`h^g5vD2NN#1CE$C%d;`ZQ(#YgZ$)EVV7Znr`4~QKUpIW96&5PGD5+&{T zMhMLU)Mz!9$fhv>ac@x_gKfT! z95$)fQM~V7C=7ffeFg#!Dk!gv3)<`D2AFuxC68!h^ORsPPa|zkO^QwrJ^^NjmZU@` zP$*0?yg**kMt16vvS@-kLI#pOH&I<^c&@C8a13B zx18MjwK^6WG?_nzG-06zPfF0FEjL~foN0BgWniK-4zmeb2U{K0H3O6#kVa-^&cG@( zoDPEW>a6zXFwM|q_h@SV*kY+ipe6m3M}Kd@TRqU9(IaOi#J5yrt5+5rTh5CPrw~EL z|B0WLbmn;{--ksQ+J=%Bn%}{*Vc==#Nl{Yb=QXKfwK2J{CV}*dYTl;gm1_D;nN-ao zs(@8!APiI-8ae-1mpf6s3@m3?!;{OTUitZim`XLt;4+}_vkMI#ZE}F%euEu_&x?`}-N(LN5=6cf_G6`_RqU@lJ7y9X-;|3)gCYdy zG3Mdgt~hpz$ioVD7tY^tmVsO@D{55WlFJm+rxbo7ur~vT=;-}h-Bf{@aSrqI#(tZT zDI4C^d=BU8M~?AGwmnsMnmcedRKR4Bn8{N7Nglc$7ALmOi)7^i*7CmK__B)tB0Fui z2N<;FaNFb8o>8>vTjX~h3MHX5gz%|_l#NL-HC^r>{4oUy5&DEZ?;ag|LRvmBy zY&Ue?tV%T39sZXJwsRD=Mbn8+V2LKBAKPVo*ntg_Jnc-2`xIKCW|OzicfFUk@ZGJSY9}_18&$v?wd01N%G`a+NxMmTuDEfC zj3Fxg3}uP2m_@za2DPY9{j83M`l?zh+=kH?h70p}BHbPwQ6)r(MIZGLR@#9o(_9 zX=GiQ^RwzF3)#)m&Eulo1W*PYRA?<}uGzSM5Y6J_ z{<3i_X!m?LmFt*PUDdd5FEJ~K5Nd1h;N~7Xe3BIwH-Ons_TwP-6DSZZox^}BvIB2` zA@upl)PeqTMvl)C!owGu;4>0LmA(>S{VozVp0`nL=pe`x{Wk~NnI|sm3wB0vWcGk;8EsPl z6b@I2H*=oi3{sK zQs^hAZH0%m0vSWPEhuMc;-HVzZ%zQ&-38I=?A5+bi@5%noH=hca(c6K_bYmF^R(;B z@xe!jn+5T6QuwuvH9d*w-+u{lIkOcLQNJWYLZbRF1<>a!{!MUJk5Nzp@p+uN9QVT+ z4zx1(B7`C(8?7`Se5sl>&dQPa`RLx)TJ0?9hfl`8l>u?OOe!8s@iH;yPgytiur||W z^)lTAh(0Yz*>-u~5ug;7F%r>PpA$J7ogzmMNSwZ*)sG3!-ct8d8W2*{yd7j>P%r4- ze;Hd{VDu^tTe)TFWecS|=bs zKCIA>HQ4An-$^kSWSqEcdYZT;$~u?)wuB4}3UZ24-T5Q@e4E!LscPFJ&{iVLoW`kd z$5-(QFo{+pk(b#mxtIXBC^x4S>BczXgi~O6xV~jLc+mPd$uoO@!rJMJpiIhHjlTE? zmpseL2O7-jz{Jl|s`=4WGg>YD9co&FS>_5A>)i3RFJCP=6eV>IKCsZCvC{jVc^xao1Ga6hj{c4zYMIr-IiKWzu7-p|)yq0sbVU;HujOZ`ymITlZeIUZ(HF87*(+@;JyXuvYA#DF z%@7X2km6G$ni>&~wi8Bu>B}Kbz|emMR>P#7yu})4l{li;*EP^)e8Hz~=Bv9U^|!K9 zO&+S2l$0FzL?(!3q&Jyo&RfRt-T7XY0N7F@ih>$d!(S%PLd^Lm!?p(hV$a**8U#0vnD&x_{ANSxeW50P9F?GPbB0 z!Grn4UB0b)?Os?|aI@apA$ibq-UGJ%WwJfD;fB=AiP1Y5eef+G_&C3=K9^O01nlI? zPNif4zEyfTF4?7ql^o2*@AECjI_)XWs$LqR6q5wxiEd^V$fL%k_kHYlzmn7^EN1hi z>x<6GYH84kQj*>9DZKnaP&WS-wJYslsX6)YW)j`=KEYw){g8$Lx&=_gZZ~9mbHl7j z&M2c3UvqfBC@kue&(1bw!Fj&{R}-i-)6bWb%h@v#Z?xWbHoU?jEkmbqv2joM)}%PJ zhUV>mBx8$*AyQ%n0VE{>Z*XMF_9AJSKlCpsb7GETaqk%+70A72D)oA&2tC&eQyXeO z?cR<7tl@8n!WSo33JqAYxI(^<>agNjL>468#Y*Epg`^{Nv11Xm@1kpz0fS#=>^s-I zuM5!Oa9qZ9g;hw|20(=`La_-DP3R1Oq^Cjo9zkP8T8`CbC!_)#`Mj?_)%w z4~_%aVee4WLWHEwK*j!hO@{VmULr8k_^GO4(FjNie>2o4B*hj-zz+;tO{J9gaDEal z1buK^Wy|7vu=p`}&8uOh$$s+Kj%kENb)Z(Lho9!pTS@>O=rN)|?->78)D-I=-;3=N z5n(a2`%hJ9WKirJ?phbBdzc(lfsq0Vo%j@0mkVZ-?^qvCj%K==b~t>&WP#w+59?I1 zFbBLB_PB(b$y#6>Amr*LbmnkBRnZg*p5+7Q155}|@5|~vYTOrbJN1bqEmuYw*0Nju z$B$dBppK4?y;3NgR{2v?r4g;X!+=0bCf!LARFdJ7Gtg-4c!tz|3s~g=S9vva=&ps* z+eq7;Tf{2+!x~PMRuvK7Bt(b`(PTw^p4b9a*}6WmRgl z%6IvwQ@+o?WdausA)EKIf%WIw~wl|g0vxV3RFpjbd-dpuS_KLV#8CFN`uGk zOlHRgjhsGM?4OXj;xf|+YZ1f!eTP2}B4(-|9%>Vnnze`oeCaxa-|ABG+kVPeSBBlH z;yT@PX1>WpK3G{=zg6WO!}2p)UC7$Lz5YX3N}A0Fy1#ySYE%arQXAN`KOvg zGZH~i*mE-1PsFcoj^5f0+wT+Q@?$;@KPKXVmsCu|=M-hT=~nB7%jigRz7 zwxN>xcaKasSslok>R;$L%2?c!Jkk83V*qUhd1&_vvk7Wi zTH1SqikKy9z516FTqHWW`P$SPEqdNeD9{KgvEX&IQNflS`>RO3Hbwnqn)@PI&qGMj zh6Sj9$>;oo3lZUGA-e-5>nA-me+u=LPYh`;_y=IIa&3pL_(46 z{e0s~`gLnON6UzFlfCfbVpBOZh164=*ZXQ|>egi`UE6u$ zXJTIdtC@(53s#dpUMp??ZM^f}{OV(9}>=^%O0 ze;H6>?zVN8d_Fet6Hez^IM3wBh1{$h;n_2YpeL?;UHUzqUmTKV zxv`Ovf0sgI_3l}cQeAuZO{q^>RaHH0Xsj<(V;8cha{_pe)h zJ|br^^Lr4=IAS!-`(f+&dyp*8D5*LBSs`azL1aHv?mO7{h~w>iqGK$Tf)LMIkV^@o z2Wl=yXzC=Put`uD$#_mQ=LKIwAY?3oB@7wIkbY$DEOc>SI{9uBt*JqWOQ$YlR{b^3LyRMgy>H(U> zb4jx>+%MIDx|m39F^t6_KP|0{Vu#X+HMiJIu6AYS0SG?J-kQ>`K*#1Jyf_31GE!=q zxkwgNfyz^Eo?%QH4fK*BNou##^8SYjazg{W%n0PgWF_@PS{dq+)Io_rhL5I$)_0l` z44;T(CPIewk>!)t{+V%)-&gIGOC&HjM6@_$-5@v8!!#aD0FGfO6OeerTm=B(OE7CK$MTKUjVs5+rH@6%i*s8(345PtoL79 z?CnnU1-}6JN6-t`e9*nV(Mzcw&Ep=ofD=At^$p&_Si`5ulS*YYe=B6(ubdxw)Iidcv2`eC%9uIN$&Yfi4_@ zV%?utrWv>f!rSJdz8g^R)*Y4@m&16_JQZojFs*SMefXixIZS3I`nH$rC#vl1&94Y} z^Aw>Aw?WHIPlN$I$&t}Y|f)XI8$aVodqjAeA}e62ndjjx%^6oFu!Eck*dbeqguLJX1vx#tC` zpr{ZB{SuLq1c^St0XybQ`I)}D0i~qcdjQRT0P<@}!j4b!icjp#PlUkC{}IYx2J(+K z(Wd~)4Y)KFDCp;KhN9s$g|oN$^@WNLkcx$rj-*NZ1WEiT8a!GELM=YN_nJJuh9gQy zQG*=o3Lcc@HjfBbsHn93?=U4=61-uGSaX-G48br;z9bkC^MnDLy#w#F0+bnsKM@>V zwD2X|{;-pTt1z{6=zb7pP<@h;6G|RMU@p^NZ+I$cC|rynCYU-`Ov{=AdzNFmk`hkF zRieqT*mCS{IN9H%Q5SfQh!=>1`WB{O6CI>uA<%3=KA_Slo5;ICnh41Qp()Fc11)FEE(j_2t6=dIBLza+3=uEnNgHAi)qNls!{FfG!^)7Qa%d^xPlI2c$Q&+M=@ zHw-d+%cLSS@+xU1wPcx3tWsNJFx6FR8ku*`FV!)O9JrV3wff;wGd&PxLoqZJc4&p{ ze2b)?tuH$YCQs-C4$RjLW@$kn^A-G_tbUs29-%2eltL}a7yO+J;<2Z~B_N0oYc8aW z?CR{^~;r0A{1uzJ&SAV0Ro`P!zbz5Z%JF%%f;M;7}!oPy3E2 zd>oxV{sY01L1>iG9gc%K=6*6TU5?ZBboc!1<~PE=+7e4{;IM(=la4WZJO|~Q)JMWt@tR| z4nNj7=_$R=j=3p$$HxEO&WssS*}Ca;(6-vPT5WZ^gfrZ#C=l{f3-IVa|3-N@s?p(4 zX~r=?j(O)`d{Q$S!ug9SocstS+*@7t-42aEuMr-vEjTc;-r?wTaN?REq~oV4b;G>p zsssplDmv)i%yDQpy9*O1+*sc`k+NEUct8Qs6qDj#v8l>dki%2#E@Z%lu+3yZHnb3c zsG*zjbjcs;R>5p%>ZFMdKAJE>Y$dO@Ca97y;mITGN9EYhyaIS37@DBxTtyYbo>gyde)j!1wXsv|W5ztK z-SQK3YcnmagK3JpwYT_ic2o9i6E3hSPaSFX@smqa7Idi_Acg1^7sS4>6&Ku!MfG|5lMRaF!yhWJXkGO3%d9F$PymXAfV48me+}jSM#tG7 zB`=W~(Cye#Lb_med{DgoCcDOk`+N7_a^~L7Q`rZZ%Jl^A^0<{ z&QE8rW8ZZjt_qpIfa%~q8S&M{#|c=rH(fDU8Z5?2fk_6x!cVKgswHKEZIE6j&b)|n z3k1rWEeSRuk_4hf>tHF}i8v?%A9oA0A?jda!DwypYAPdnqVgiBxp`)!#0Kpya#N%7 zJ2!7fGwquw+Gw$nCKLNZw&AkSZ>Lq@+a>G@GAoL7()h#KbeEM15>^C>7&Vj#bJl;z z*7*;Nlt*M|FqAZoyDwO0rT)AIK>&evXoYD&Mryb?(taiPF$t)^x#S`N1g9O*N_KB& zeI9X)5#NvZf!?q!!oVrzZQ(2T4|HwUUl11lUwNVzSey|?VE@12`Rda z`aD8w@SVxYv?D+F={k4D@+F;sV$1y!BA)hsTNKN3NY0HQU7=f_zx${_f2-+CI%e;i z6Yf}DDfOTOA_L4Y3uRL+US4j}oP%>gTM$>}X%|0Z!wByK@oMyI1W+kqW^Ze)`&)@&c1;9kYfkq$#*rZ&>fJ_6QH1t&6FaXaQA`l-6>!u<5BRrAnNZ_KI{62YnO zF@)?QZ})0c1TLW0YutWo0yTy%8fU&~H!z2V|7bD??ha-iS2PB@UjJsx+2R234+bE@ zPUQxHA(yB1-IR_cj1~qbGzLUoNwwQef2sLPygFZV6|zSS0>hAC)=TgYBRh^qC{fY0ol>TCs#Lk8Zu zczY?^|0u$IrBOI~0gm|03* z$o=@6Z@nr0}PEzVADS57TxD=3IAu5lbyvAl1ZG5*)j7w-dAP~A8j({O3g&l=%Z$%X) zA}r_AaO%HlWx2Cr19`@j_2<&6JrZmLzBkJ9%m#eE%GMfUY-Ljx>fv)2F0MT8ktCfmNx9 zExgp;Ag19EAF<1EN3GAfw`3Wycmz|7TgHZQ8RDknF%d{t>q~BnKk3G{224?T6RMdG z>^?%8272#qFz$T*#1H=Q`-6`s%ie6g8^^D#k|=|Ih4A-ovCidqhOU17CRxi+U%vAL z;!-mh2k6Rru{^0141q$fY#3_|=%E9{`UE2WX>otELQ!LLQNy6S+U`2&n?~*DhQ8_X zIG7DJb(%ydpEl$ft+%p1Q6-|4<#G_|k;RN&MqH{n@cW8%cTwkD`um*ysi)?`9C2y0 zVi$@Jl}uNv_9t8GhZm}Z=NSeBP;#Bu&OL*!Iy44;xtX^6_nZ(M*o13jQRPfIKNS}c z=WGqx8nc0&S0d5rP}r4-BJnT~5uqYx;);Ziz#R>Jt?cc~qI{YQ z+Gw+8e2)B;_~K;7zDP&SVD@{WpZAH8;~Ev-szKfaw}Yss=WYXV2pEKm&zm()hDPjH zRaX8O3u@oZ6LZBFdL(eXK4GXs{lUws+=F5)zs+uJA_<$586)O1`H~#>vko6__GTnh z@;1?K=idfiqoVaU$1#rf5SAYmAn;Vfw9vcFeJ1dnF5l)hH9a9;Z}jkT*AD$?rr5OT z%&KPbD^pF$fw{r3VPd;W6x+XHQ(2)#ZH)&D#JX&Q2i*!Z!wX-Pc&cM zo)VTURR`mDUJmU>1!Z)IH45Of@`4 z@_r|On1HD_EMo0Yg>s(93od6Kx7Dj1gOJmhpH>Xmgzi^Zg9?^l(!>7#S%Yc7VaxV? zRiX?H?4JysJMu>Zh4ls@Cp#%mbcBnd)ydHkhaER4BGZU!ty1tX!?O~m z#gWfMcNzG_$WGtP!OQm;u;BYxhxsM1S=yT8$mW#8VKuqM2EZGvD6R~dM#jUcZ=jlr zdPY+|-0<5!1x3}&I^j-1_y`A^P9|+;&&$wIGpk-Rb?U+XifS9@LEm*^zyUbqX$j|V z+^@XvA5mr%7C8EVh$8_0!i%lJyO#}A$;>6VL=uXm zrq8svI(7Ip$xRO=4RVYTjR&u((-=1r(lG5o;gTqYmz3Y;Mp0*cQqvLcutmsVB-cD=!zvirw{#{DmtVky>LCfDI1eAx2ElVI3tV>gzM_OoQb zLcj1PXPaPL5f=})c6Yaxl3UO?E2f!K%Q5g>|q-;s|q9nvj&H;Zp9DI$1>Nad`$0A$@5d+!*3$o zqrpSK6J&r3-CtO`q;=%zcg-|QdXzb-UU+yl85f;|& zQNr1WHlR>`kV2AUMwP6Uw`-Y(yg~#f8m%?mu<0c|a5-NV^-LV5rCD_S#$$Lp4#Ix& zXaFeGLIGQ5XWh;32fyD88?fp3#wJT6&9vYb^)4}NQTPiLL?ulN^lE$xzoXt`#Yy(* zq_K-voe~|C9+536De1dejP|czRLfP(#Tpm)tFqFZMjaZJvmxIh1b8Lla_0R_#`OF^ z+rhy>d5@n{<=A#-!~iqyW*RBIJx6u)Ii&#x!=&0@1VYMCK>Ms~ z7?fq>h0d^cM`fMZJM#PsHlM;d=hQV}G=GY5{|S;A10T=VL-G2aLjz~%WQ>&Lv=nxS z-ZxiU!8-G_$Vga{3c+PIn&zrb@4dx~J<7LRfnQqO?agnThO@bX?yfucDJm)=?{rpc zLa3H062^v69b4O9d20fhM*=02FZ4xsP;5tIwC?+6m`72C%-2QRoW%L$Pc z^*HjeCU;OEGur4!BFe+O+B#&JDb=nJ>L|C@`uxpVC*&BF&DrlYSL61jNu!MjEWqN4 zi1*?-4)Pj%-#~GaoYV%e;Dr`*(xAip=Vb*e6B7WI(5N*gHkN?h(iz(4LtqkX=ZwiK z%vA}{GjPAeS7&q;eFGN~#x9NlC^0Gik_#VF!|VxR!|C5~naX*5=hzSNJ(-=?Y2|TP zg@;I+%)pR`njW8`5A9a#WI~?TIj4OKvBW^ryV63?=Wc zEG`vLs4-AQT~|Y-@MC4@k(ar>p+JSHxs$J>+%3CUrwm##jco~bPjK0IFBbfe-_-$!n(Qf_Ha965$ z8_RA)^aN)<=}G5kSLV}d^zp2hU^g7B8ZituaS(?%bW}XNy8M3p;n}(ayLbvP0~mjB zUvb#<+e_4vTB4d84@P^uKQphxC+qpJt)*{6TcKtfF4lG^pE3<@$Xt#ge)S`**&wZK8HA6Gd&An80I<-U z8A@0uTgN(q!eCoU@52aK(^M zJbR1i@8Y&-01Rd7KR%ShmRQKB1WtS8HI*|UU}PoV3fnH$D6)XYC>#49#%Wk?gx{-A zX96N$`C`r*#JE^cgL7j4Ogk#XN<#{2>cG=_bwO1(l-cm70d4ltO?0cr?`yGI=enh? zwRLFca62~y3*b1rlHo6lwt=G1Y*VEh%`U7qY_7$6P+~Z-dN4GKq(fONorCM`lE~1X ze6m_vcyILh+|IQrus=Qz_VB3fXBH34&MB>`{MWCat!?3vAf71Zh`)%G#3FDQ2CQee z)Ik-)1Gr{&HeRFd{fik>R#Aa}@qV3Gb2C!-+nX|oO1iuYSZoBa1e7%7+pHI>J4gCk zC5&$x4F~#h)b#j0DQLCVh4x#dcczJ^#eIT9f7tC|Ajr#a>MRs?65d0kc79P+8NIFo z7NQDA%x0=Uf$cL>PTgH!ui`y9?(&^z4tW;cBt(zb`>V`30?wUp0ND$~)n@X}Tz9#< z?SBS$7iZggI-Em;gH7Arija{1W;O-JmfjWpi^;IDu{k+80rUHMtnSK_xq@HA38cTH zC@6hSTkI&W(@-dLNOTwmfq6%H`l+Y#w@XzS8x^gZ;4FBYUK-%?68R#z9*t4bd3=wH zBWcNxw-Ll!4<(;dN%!_+x6p~ARVPQGHSozvhrZF6FI8 zaQG9FlGc2T2upenu_$Y6Z=|0k0H{8B)U{U8##M+veC7{|&7GG3&Lj{-&y-xIHC>3` zvq2Pu?$%NkHaQf?$b^Ev-oN~ow&RRuXUB<{yr0%P zN(-Gevh=(lyLC7gw-;*vB2klff=qPQGO}z!&r+*vYrFFph6_w56E*lKZgqRg_O#X* z{zCmN>2Cj}?fZ3kL3TB>)?)kJx}MQ(bnvi6`a$cvwGxL7klErrQpaN3A661Semhp_`IqDxtNVEHl>621!ZltjRhY} zye3aJu^J-v*^_ZtH*Ce)ykJNxpDHA~h!IIWfcS+jzokFLKveGD$YGITk2yyx=RGYK zkMG)>!zAgcFF^!Uf13N&O7opIQlWtn%U&uHXIbXB1n~AVz1Pj*{fQ8WfpsjbEup;) zAWa9e*6uL7n#9-971CwcGw3oN(z&L_AJ4ATP!sF$>F~wagGP#+%pPl;PgRX4@s+9W zp-IpZ>HZ{_RFtk%lsxOGe?To%SElX`&@pslTH-c?l{qeiNt?_UM+KYkRAK*^Rg+v1 zk*zuLX5z;CNEa3ZkrRet1$Te|YHH3^(A-0xN}Izn3}$YBIW{zYcKOvp`o%G`PuJN` zZt8O!yJ32O$XgmH*Z_Z+Y9ROBk1TfKm7qm)x;QWPDx6~EY5n8=R6<_HI;A${OuB9`{%|aGCGi9 zP!I@vb6+gJyj&ZMYMjh4?OBoUXM$yqrVF%?03w0;`j=ql$=z*dB*c=yj-JDui!~0L zbuQcWHqSkqLs@+MY^$Z3jEsz-e}n0+>{f@H|2ANx!Hup2AF|hFrN+f$Z1DMhvX21e zbK1hW#1tm;R7)wIsH&@rzXzEhrY-)$XR9puyBELHV6Ut;P z#-lQ)Y$ip6osf*4c-*rIHWbqQpp{K4_={)0(NN+QBD4k2ZeC4#3ovjjkGBybL`NBLn`9Q42SlVo}Pb7X40MMB{(X zF>s2!;oLr>eMTxQ_)`Yhmk>vk= zz5c9O;W`(iVg}4_2s^z^aso3R5!D(lyJc`ToayLbtoM3IWum4*BY( zNDuDM!_YP6z6raT;I2~jqq1=ZQc+rt5^H(7`D9g_fdVZAwqo_7e%Ii+;Xui#;72=% zBOexdJf7A=WYj|EKIpgYzMgn5Pie^Dko7-5n=VVH%+k*~mGiLOUcAhlHR=|}R_-ui zSJm}+)6ep~B>&Y(!$a?e4o!JaKR~Fc|C?Eo0%FyB*;BHwyyo`HX*dO{FvMsrZIwxi zPS%N;b;0R60e&q|O$W;hgozJl{QMr$g3DpoWHO(n?1`?|o}|9DT;OQVda2_;qIHS7 zSYa6!_lS0ymMBFn8qFS{0d2$X;-YIN-f{$tTKj7Ky%`L_Y0g?)QNSW**Q;i%)8ohY zu5bxU#UU?$-fWsLJyNuLJR zbk8S^UtY#&>LYi$Plwd?T3a-w;@0N8>9DfQ8^+)VCy#z9Got+>L3Jm4oV*5O+pGPQ@k-Ikcu-?khXkyh0_%b@H7ErLz!VKw@hSb} zsbZ`#uezQ(EsC*6R>DJbT11+C5A@z^@97z-D5wyU&FEBPc?tWSzgF&;Po{pLg<1;= zQ!KEa{9Jv@Stjj&{(Z%D*PE(R(dnJtN^w3q={A$Q=x=h|o{a5$q6qU;!af1K=cMI_ z^S$Sc2>HQj3zav5*A-cnSkhVNdwsaEMH+x?2rGkChd($|wc+xK@Cs-Ek+(!&*f236 z0nG(@AmOWg4u_KW$8j9}o6auJJ(xXR_8&K})z|Zl!*QH5(vt>Fm5D{b#R;KCRuxyu zC;rx&+A&8{wBt*m|8bYi6O=3QTe}|0ey;bXD=ZC%5yM!19gSu;n#u$=MIxk!@Ogxq zxOT35vj9<8Lp;L@8sVd68$+7=1qhNV=Hbx|VJ)Jn!5kGC3B~)=LEseA9PiZF>8p)*fKd7Ao*RsDRT~d=e!I;_z;=2FO+bTL`XO z9t0prmw{U z=>gTdLJxkd*`)ikmE*Zcd}IaZm(IP*T78LE0_?1Z4es$`YD%iQ*NEruwY69&tDq+& zx4aDen>IFj0YSpt+%h|ddZl9W{nrjpt%vnwC#wRJLJavIY_gRywnLkF(;>U8t7tFc zjW*laI!bjU`4iglf1ntJ?yR5dbK7r(Tfs}Ga%h2(C_)ty0f$o^9iSx76dW1}|C^&x zpBg^(4+o%tV7>Yl*J~g%K~2fv(=1%&AEiGamyQ#!slB~iD|Q3e}D{+7Ok}= z1BVL<9EpqT%Zk&J!(CD7-Me03XOk$i!XuWxk($EPdb^)DVqsZNo5U7M()A>NrGo%6 z-4GhQe`)XL*VvMhkcJI!+d*|}YqS)U`D5mJeBNc)wKJRGtl0GSaW2*-)?e`qK*<@kcWQtHEi%E^Q>bb_2qJP_rs3_HAQ9Q_v(&0%Dzu zc0(k&5iSu_V!Eql7)XCGgx<)_N?RGBdaX~=)vKGncPMwlYJDb2cMGzb`{^o#v4(nS zUT{VL&MV*(6sT-YWO8!Mw^kNKgi9Ap`ED@Q&H+hYTI}?L&A5?dr>gmkqo8>p!_t|< z0|K~4wUJz8)glBYRICE|h!Y1B~* zzkogDu|orBM{npP&RsE$&r8kCv(Nf1(UzE4$yeq*Z5A}Tojm|!Q z5I+G;(NId)ibvWO+`${yJ&FO7@6cL8y{t`3A|%422Bug+rs(v#9%uibNKRfp*oOFE zpxLPj5l{5gkx=w_Oi5%iO~32Sk_P%CN`2%J;KH8=EcCf#AXuO4mu7ska|CUUV#4AOoq zF+V7u1<}Uwn@{Jy9X5Gc(MB6yw6V65t4F(j-%4N8IyBVA!D>x;ipJg4?YBJ-47?P+$bdII_{ zum63Pzt-6=>5HDSzL5*SvogQgxJ3hbAFENYP+<2 zJCnUO*l-DARiLKIL}WA4Qs&@A2akl&FunPAt0* zin`9&6wJd}zvK&rZ;ODJ&5K1S=|v*so$edbuh#NU`4blVUlj$-6&7}QZ@(KxW8IUV zw?P<%SeXH`T9b^)5(GTn5C*^BpLSmgJQ_)j{iqsCtEVO>KNB?~toQ%Ii^tn5EQoqK&wfMR>7T&#tH=MRIv}+7pX$I) zLy0$@?Ah{t&0HnHNol-3=4KDA+gx_o%rM$8onp0H0GUd#-;Hq`bTe#=;V++U_U!YZX>cw@H&Qd1e3 z5&e(XHhK82t5595r4di_#YGF`_5B<*c17rEz+g1swi+c%b^koEz3BGu1qkD%wXoogM_;71W zy`86W2-=Sf5oo54_xkElRsZ!u?wYdW7PK3AD;hMH_4yQMb@CucuaEobWK$1$Xpe)z zpwm3)w*HHrzFO-Jqi%8bgiS^(pUDiNAq1bq(>t$9>pxmN30SxjZt`hOy57}Mu#ih&vEwfxSUU<5|EJ6I>0hGw?rGj-<8 zi=nuNp0&zNeS~5A_4Dr-9s3^E=Wv37B4uc^qJ#D8NZPY4OmAwka|&H7{dweApYh&r+&(!Bx-5`t(LQTI3r5mVxUP0iW4juga`W3;rjryhNk zI8ULMwJAo~1J2$EINW`naFLp@B298sj-%2sc1Y}d~?TMDhe8@+biA} zx$Pbtb8sWn(@Tc+#_GFk{eJC=c7Trth@3%<#^QJ|*>LWj#Q4G$L>!-{5N>;UrM*4! zq86sR1jN7`9ncWV$W-aoQ*&`G2l{6XDypkfJP++|Pb-q3`E9?a@m4Yvs;l+8woU`E zbJKrU;tRJjCkhPNQ|V7iK8^K4*Ou1Kly-Ue$wovJTi9Qby7$A+gn>=pXWWsU4)^!L zL!xw-=fmYncR31C5)E|-uqYd?u zqN3M2Gxhh9lNUS{rL#FY?L%Tec62811*o9n~=O1x3Vl^h=nDE>gvs9A5D5{W4q8Ha#1N2a~v}dnLoeUg*{|r z%9A1hxJ1`cWug0pg_=y+eX%>sH3oY%m^!lW(_!0gxshBjBr>u-UN^5`A!mi4Ts4UJ zT$Q^ZGHy6HYH^$7PCc`Uk;pq-9eK(}5q1)Vzzqv*QF3D9Ux}RSlCz%F=`JeyN=QKM zMP!`kj2vcBg0*{uFh8advv`m4zty~?uLORf_7;Zoso_$U?ToGy$kV%rM>)|!V0Ohi)hmx_eQS~OsNetG$1 z^LjFpb7hg|N<$)im}J0w*Ol0Oagv&axxK$Af+U`r1e7cS1wi)u%0Nsj(Ckp0>O^dI}c;|7xrAGaY4nybSql=5nJIj_JhA_(S>{ zj(wKxr#d9)a*aX;PlrY)szCv+!UNKW7NL+INS2n`;`1G#^g?2ViXTjYIwJC^)H42Q zL$VE)SjA6`zci_~>0-8);cipV19QBzY=6x;kRBRN)TS%l{yb2A@q^5qF1 zK=90`)zr5G^um=|^YFX&t3YfLgUa6H5EtvIotc?l55pVB zU0GNTdP+*lImaH|>|8I9C{31Mk>AXxAgZ2gq^w+Bt#9~(4b+RAHfr{N^Z+$!3yk@F zyu5ysv*~+8f8B7t0qa>7Bpx{xA@SS*DJ-es@iqIG--VHp@$-`oOZ8&T9PWZ5+G}4` z4k}Q>$D^UX{>0RzP39K~K)kRzN=xPD&J_WA`$RF&vj#v6`$Wv)-HO(aa z*4uevR7c+}0`#@uZ+LsIUQkGgf#(9?@)YUED}l@ajS-4ucj$e53bG?q9eFe(f?^)< z+(97+xvMJcVX5lqR z78lo=N<5I_jXR;7_Bg8@Fa|O)7=U%eqpgs<9UQBA^yW@-=>K|EVLZL|-RAo}BCo@{ zrPL(m<2K@#uBx6M1{&((;%^4rq_eos!9#D}n1^M9y0&Xo!27x9{cO!YLGqvE>H2Ng zjLlu>RNeeJmSbH1CSL?<7aEX+16oPMV-VB$4;}*9-ANOd3nZnX40MO zg#&-TOx|nG@EH2yu-$FBef|Q^@S9gdQ}*E&XVYOL`s`-Qm5(iuT`u5{#VJQCTjHv= z%(qyg8ovIoy$JzmGtgO!r8?V&71-12v4N{%WCKTcr^QbaWR2BY;x%40ufy}DY14hH z=6on@rz{c8md)X5L%!367isofH0;JsC_4h5AEs?B@9gXu5XGAv9t#}%EgiM7M7f%R ze&%=UweGWGnw@wx;4B{;1a9^{LsU0sHR*|nRkZ0}f`N;&!4~*BD4NOWcbJ#^1k-P7 z5drTYh~FQAC>y+;eVmI;6fEabmskBSu*iJP`b{B4}h;qJfLXBv}vyuvZjwq0Jzq2^~sM;1H450Fa#KssmGQ`O(&8s?^I0=Z^IvoK`_ZaI z7V=Zp->i?4cYQF@)A0$PUj?WO!{H`tWa`nEga+al?-inrg1a$pKG z33PY;%qJz2m+xpc$bErPC{`-F-ZK5ZxSREcjrY8pq0DjbxcB%~ zmBvNVH@PZbR$huQi^seebup!9m2h*6az>D)wYMO#?rKt_DfE`cQG2T7x@RCkiM=l_ zUaYlRVZQk&1Yo;4p6g3Lf}+qH$+5_?n6L(+9coc$r05-kM3Qt_`cc5P6ZKyi9wLX40SYF zJZ62l-6!B%=StKLoUe%_lCSmyrpV-k>oniAKwvrj(Y9>bG{5EzJY1G|ih6vBLb`&o zQc4EyUtRsWBU7}$O#a(bWBr}985gt&_Lc8Xo|8-F*k5$O?rXnbWxe0qKFQ6NESK@Ve?cQlOiZo|0t0Z^SGQoV(`1gTOJ;aE|0Yq>ecKhxN$YAB$*UEeU{*JW8`L4)c(Xc(M^8(HlYL+Mci z$AYht^QTiuMWx?vQ5N1C6o6jLdw39kgG>B7Op0p$BnW6o+7^xNI%1jj6Ppau+}(nB z37De(Cl|#=q;`MmE5ESe4_EWllG2pM86}4$u>Mu-0)KTJE4MMpfQPN8eV5<|LAxz4 zf8gysx}A#FjYCE3bxLa8gsn`tfnm24nwqZ3-R|)9T{|D*imJWEo^&M)KCH^so-fv~ zBIsWV?SL={r)Qw0z_>l5W&mn=KMB@3eJq#Y-8AU7eB9dPoBK1aQFp`EcAV>0l!F z@ph}x#-~$+>wZ#L_l<+S6yS)@D~`bu9q=Y{K$ozQ{r5=eY>E8*-+^A>OU*Ne^L@1~ zHLLVXqMcKg+Zk!9DG%(spz;%;IN(L2i896=y?S|qHOz`Y|=QCRtY4DU*1;or;_ zq1fhk62tF1lKd*}r$2B(&fw`ZittB|H}c=dcE)C=dD66d#NJqC#R-u2hgJk?qp6F+ zt`xN|saiDTENkC%j~SmCxFmo5_=1{i#UIM*1wt^mQi*LiKTZlpApqK#YVd0MQ6o9) z;7>nGw_HOBh!cGWikB0jT$xpsSa}-26`Hq-y`l~M7N$ERd30$UvHy$Og0h`s+v+TN zTB+0}=&qrC*Vjumh*^$?|3feM@dK_5MO3TG}oBFF2W*x4q*eszoPG+;i49eaV7oNGy%9b_rk7>AE8pE^4*}!{VN{l)D$$VnS+) zm)cBKI9Yrkfjd!QX$WujI}^%tnHa=nZ+$p^6-1ehXro2nw<~0>Q`I;UM)YoZAJU2t z(mw{hM`pBncwu^5TMOgu++4ouH{?}%X_03>jqjAd|eQ%;VhqyvAbCX%pG5!+~~Uz9icGiMtw zpZ&1|u83^AraD`6NGtm#W2s z^{k2;C(Z;%Aq{t}iIREPEwrC69L2%zQJTQjYGq=olBK^{iD?Ls&l7dKd3Y{loML~l zkpSewiW?i<4hzdV2#v%ewF8|B=;iT8pMrNalbT;IzKca9OAk4tiS~ZB<@fOXg|~~Q zU2WlCzVAlz-cZn;%OiMHS=)W5RUp352)XF?L}ad|1WFh9L6l}yW;S%bo}FJ)Ru4~j z=Q891uHm|GcU>u`a-q;f+nVYF@WSSHaD5*$o&Y4^kYWR0y!)4z{m;A_hN;^wd)Ys> z+kmv{LI9e9k3e}ltUPF6TnKrPt3b1b^D*5@(qFKP z|M~!1D$Mgdf*)^^fN~~XazHllgP>zz!=Sn~;nrQXuIsbw*=qK87v+eTMMqAfiPF6`1>8{J| zZmpEEi@3870#H>021#=Nx9?L_;69pkB3Pu(sOlK$GlA-E1_E;1SMQ1H9+$sm*v`*p zf3jHjn)lAA!MbvYNo@>H#dyD-EzYiCBxR;d;b1A4nDJmn3_$y5>OW(G-+?Cm00sCI z^J-kCZP3E8xsZh%qMWnX8t+Q(*G1M<7UOev@}L{cLLURjR@RBD^I*j*C+vYL_6pNR z9HTVl@TqZcvgZLQ!FMtn{euNZM=}n4EapC-6aEtorzt(8H&08oa*Kzx;&vzXfbB;+UJ;V%M%8}z`L)n{?dD_L#|PwRT-gK+@(Sx$-1{XL zpO0~uG;YO_*sV}uy^D+OlVh))=jYC9_`GI+;R+B{fMtQ}jVozp9{m^~CiTioDCA1#f9zJoWOm{ZNQoH1Jn{B`Me4Qj5O*i=?bhs&_Xvqy zu2lU|5D5mw$d&LBoZ2QM8MqZt(rg%3An2LW1&W`|jLpm`e3ywU=Ljcls83)qQ0B5o z(a{Vu@gMkJpZ!!a7hAid>@6`XD?O_c7@pKiAkBy;HFM*I=84f1_F*jh|CeYA_aCGR zD4L!J#xK>KSQa&XQBfJ=RU9qExbh$@@A5d416iJ6L|@C_h9g2tf3E5J4Rrp}C)e6u zLjaVP_NdD%6B|R$_l@zE^nT-AsED4wQjGjC5X7yu5;LM+?44SH|%9JYmCEX|MUa z#dEAP2^1hujkG)vim&z82Zw~aOBk^x^Z?QthH+(~T2~it+-~b?1FjV-&@Ye8(Srpx zX?TnGC1K7$kY&GPYvIc~fzUzwQ`qGP$H!)aSB3hg4wvSZnzoNef!x8S`@>14($Uig?c!oq}byNc_n`MJ^~Y6M@N}dsfpW>of$1wuuKJ? zVq~|-#Gbj{R|XgpIOH|Cz4%lA;TIwGu)I;9L*nin<~b28?{)n9@j67!9M0jqwq;Ei ztQLRK38LBxs{x^1+YsnfLanoXo(K0K-x%8elE$>R5FyMl&27#vi-Kv7YGUT{kE<^` zc5)XBNL(Px624n%w2piE2$Xr9{y$>bDmnQH_oV&~zu(|i6ye_#`bsE(-9xKhZ_9cx z;u~|_;bqjDxwT)*3aWhsYAc5CTl*; zD17$^4HpvFqP{TM`^+2jviHEXq&$(r;lB!~{%LR+c8Z?~0{HkZr?P*DdV%TN-#E)x z{636ica~)F{*F??0$WLo$whIvrX0`|?e}M%mm6&YzK>3&j@^6D&(F2BwQOBkfEqbx zMbV|+|KcY}JV|NKftZ?jxL*o~Di+vM($bO&$Cv|~=#BX!n;_us z_|vxR7-`^^Un%gG zjs!asW$}QRh={v)ET936B7j{+UHZfa7d5!#bgsT0=};=yZbx7^#at@9z1k1^R<;K3+h4s@S-Xp_?kqxGFKpJ+!A{2dGjnj$68Q zICE7G`%Yg>EVz!wuJ99xkzIrx*O(DWsi;GCscNd?#7!)fgxx&fw3EFvO>MXa8FMtI zyPvPobB44>-ClQ`gf8n6=rsk7gsO8^{%DRVwg%F5E*(tg1NY1LfA=3a1ZA|_2tN!?mPg_o-9S$fi4(rVe`k+TNQ!L&Cc9%yvC{3%xb0qtZgKXcCFqu+bX3&(TB z&~aJ~GEznVijc6KcRtNPCow<8feB*U`xt?xKsm#HY~*!2X8=E3&HqF>hnx%YFMLlm zfq<8IgcvLMJoFKW*w|Qi`Fx!mCXYKivp6Y!n=T(pM0u5P! zU9pnq!+Z7< z#UROMA4;ajFEO4;divGzR(;I>pLfjv5AVqD88@&%?ksYK3gN4q4QHh~1EP4m*qbm#$>;rOP!-Hvr-_lE8*5M9V+}aY{={pO<YJH! zHrwiB3D=7S3~m0s3G{ zXF|tDod$9ya-PWqcm#w4dk=-jl%7e8ah?J7!TNKO>+;Q=Ljnv$Va09hRw8hk)-1YQ z=f)6*U0+`xXcUf|Wv_F??1bh&H3!M8O#6L8JS$o$U|-yS=KOY35Hrm=&5VD=?3x7+9KuQH zxDlb~MspZQCmOZT15(!CAqO_52&^beKAO)9>r5Ya)Khi%yNeT?k@xxtspvx;6u1(G zyOE#2b=68+yS*Ny-5%S)U7`spmWPP~Bk?%h7&vEaAlfT>O%vqvDtL#+5_SKAj)by= zHzW1&uaEma%ElFOSZ{N0Ogna&sqZOqB8wfaejr7KIuj z3>P9D&$EE1*?E7y7O^LLTtrirE}DrO8#!`Wx0bV;V+ki{0f8-VQO}9E1ts~wNs&W` znyoNeS`$26@2mV2w06>G!lz_n&c-8FX%C*O)$YeMT8cxzdA!dwxNTwY^nhjGkEC>TQh9m7+jWz5h!SYIK%~vva$G!; zN2=m@1(>W<4bD(2X>`^#rdF&RbO!c3^^1O73*1s$sBGj<_Ryj4BY?P++lhdc=?Oeg z-Mh;;b?KD>fmh4w_*cKDjM4QD>|fK?jpc;(KP&(qm7rg;*fJpIkbo+yx0&;xR-?gP*`!uoK&2u31C$Evy;a zw~gd8`>W3#*8IwQdU+;wMg<*Zbv6)%(&)@gyXQbD;t|F*$>bMcXF2dgy_A0yMlkHY zlS0}0T9jZpGIlifp9pbEIL+w#iWYo zeDw=vb>D1FXiE^W5-LX2c$1|u1{{8mGSJfEo^SleWy`(fGAq>J4sm>4SmqA+@YLGc ztJ$|u^W(g*V%Ar)6N$uFB;aWwXi#=FM+MsO>~GIm6C-pdE6NJWWrG5dMzR@d6*n4o zE5R$y&%a;wde3i3C|cQn5{;+e96Daw&My&cT|HRSSxrKH3X1~?SwF9e<;-Z|CM_{s^^} zArg~mMrwC5&N1WmN*a3SQS{B^-UL>zArVOQBJLkSlV`wKA}*6vl7ipX$a-6PT(M8+X}Wo4|l;oE>(Wj49l?2&j+mFJ3yhmS(%(V&2I$)w^{vW)MMe? zJ#-S@r6#KoGawU?o~K*d6A>BjOII5{t(?KolnNDecHeVhlf^8BMNondL58wX-jRVS z@>-MF<_41eS~qea?DOu3v~|H{YwlWTO!m|HYOIIqInKrI+)FoK`zP|U#O23P^|TE# z8D|HTkiZVm{^#8kRwq7617z3ipz+Ds$O3B5>>r(Te0-116v*&E^b@$H2!-zvc5R*S z4Uas`ST*(yaUn|l*(6g?x6$Tm#qcjk3wT`{-O2gxkD#uU{i}lVTf0)T@vZOuPMo>& z%cAX@Em#jh6oT@(07X8J`21_V|A6RI$rU$Khdb?|(jDNrnxU zz5QNReHpHJA_vYN(Wv6Su^Z2)Ech&;aU|ak*MhDcv6-?4V+Zr*GPcjCWz;9qTh&|O zu~E0V+w1ziDLY`jZsG=>eb-H;Os!Q)w$?iuHhPqn=5n#4#%NMkj?UNj4H6!UoSdA! zr}ytrbg1CRp8ioLyO94xVbL%){A1CdpCuzHK;N36e|AQGM-N!5ID?wCx3{+pXPorh z+%+WYGy(I4MHx)^Dq^754A#IU{UB0l%fhH78{KD*4~vrP2Zv)-n*=$k@qgpZKv1d@ znteDXgBk(H>rh7N>XPFtWceKcm58;JIlA`7SiwVu<6X&K-ey(T1K?ew?BdI4--+cg zPcpl7>_B$S;xx4{`m6Oj zyi`zLmNTH^+h)?GDmr|*#yTQrUtokAFE$9=Rkk*fr@?L|{h@SRVDtu6p-o6R5qpEo zy$0z`|I#I3n^eLwUbb1;&iEcXody~;XQ-|uxo3{l7dqHrmT)}{j{+S>B4HC#bdROrT2Dz0iN8$6&_1-9Iva zetK<^fEEhiHFY}h#01gpdy`b4?e(*cQd;JD(}1>1yK(cCH$EZd@gd_E%~RCdwA3RJ z6AjHzZ8~9+EJPz_lvXjqTpJDHBVwR;E4zn_O163&>gS}4;jbye%uCFNxxNRzrG|=A4w44<7Z4tW#DN5%$WN`l zrnOvQG;=1t76|>0{^u=q+2B)$7r4zBpltI@Zuzji0=Wc_yi9{%W*E9(*5mY^&Gkb5 zcAmuty=6PC*PifvM@982Yx~Q8n~+%=g;M0{eQQWx{-=&kT2nR|2f0iFnuMN1Xh(lt-*0xmqrlu&pD$AXTM5fvPOO{j_tvELfbln(V z0rhScV=gy*3X8XQ74U>HRB3)>CS18Xfu&H~oqKl8-!rJ^2F-Q@SC#_5E?HsmIyt+9 zjzYgB;GY_I=QZC<5dC=jgd$y9PJ{79Ux+0UAX%mNfbsQ{q3|&9Rld=Ec(Rz7-W)9` z1R<2mwW#VAJMLRp^<5w5fa!=ZNO#GshoNw6@V8`9T3KKbUU?-Nnya!Y-4Gy1w18fV z+kfl4s91ln*tPi${qjcdlxulr3k2PE%Zs2?*!G6IalfzyIlsJXwJOrRAcFs0=VEfp zKCQrGtV0SF!O`OhG{vp}tq9)RI~=?3Ysfz;Au)cxk#`lt+xS|7WybCo7|XgS-b?YO z+`4T`YQ$T$lRyCZN65Ptcr(23NoUz!Vqo|?Ub<#ihFLA*!9c-r$mu3|D1n=b*kxe# zmcpI|i8z%I@|7}}Z)cyPImB|!K{2f=#+qCOwaOivshCy7M+e;@wc4SjWS9Cmt9T?a zT>lNpKnI!h6qMTnEBh_J%Pu;|*m30pv9-`Ggip6s-sz!H6SP+sQCkKad8x20<^w(y zp@I0VHL(=@!v)g7Z14{`=^bRXhzRO?5vf*Ca1gK-vKqFaFdSYPXdZV0j3z1UD)43n zY34TXFAoZIR8H)>ysIG@=KxL4t-NF9USyxdElDxx*3J*K;_~ulyUYHC{iK644bPS< z=a>5zXwQ&WL>!pB=L01_=SvVC z@IT*Y6Xzpib+vR~9XHbwvl@)X*ytxf|Tz5Y&I{3%_p#j**A z?e1yqSilHVpO0o#lg4p`pLkyh!)J$-A>_-9;M1Tx*Swlpj~Kw*xt7uOyy3d3Eta8* z8}K$Jtr)5>*P!xZKSI_8$p5{PKUz@jMb+W?#7X{{^_lTR>8A{3M~F;-4+Mmjp#e^6 zDv1ll$+uGySfNt|tI*xFZtYuYmCoEgEiDnmfS zBzHYY-x9&d!O)T48o11axlX@aBJylFUlNr}=^(QwUL^I<;yItq8MuaPNi}kCBT<&kPEe_=a$zZUL z?X9lZFfzlw8AihI;Q3d~L+tYPD6~aWJE)AewU`JVTfH6|B=zjg=K7W=u-vCjgnanX(=k#0Y8A?D(EWbSAxU2Wu97t2U>;VJGQI*TcE zky-DW%I4a%M~9Fw=g4{GlKJ1(SEG%uOm`oNIlsr8ao|;yp1jdlhnIoU!yNSzZ5_y1 zuO|Ia!t82iKSXlezz&_@05EQKE4n}2Lv`@s8?Z{E+Gzd$aCnGx+*@edSncNUTUn3M zGh}*E3_TYh>b40)F~y&RtG|9>t9f}ZDl}j8`!u<_9rhEPknhXssXF6gsMiLzbEkQV z$wL6sh63}|jLq9@?EA*iZEUHTO0rp06JJu%WX?k_n7yB(c_L+vlE#+MNgbor<>RTN zhcOyO^%*q+FgF{7s>6-suOj3{9ZI-*idWIyvy*OY-J8NVyOJ~0jq~c_HC7EXXZYMl z&;P*Fexdsr72L3D_Qc_7x3R}kmO2q7e7puW_aJK6@C$w-N=BvnL(f)e)vYeLWj}#w z$2X=lI`sIaSW1C2lCUY`yF7!!E`xVrUYT->v}uAjRA>9D6-C>SB-UT9`}Z`L$) z3HSI84olqmGz1EGm)YFTV6v8nw1@0&q9LK!1KLM$zY12NI`C-Lsyk#<5)#Jc$89W% zaFvx`FLu!*GcZ?V0wX+eq=i{WsLK&(#{xs8hj6uc!^Y8~T;k>C?Rpy>!9hU#D;=?Lwdpc6_^c@74qr_d3+5T0)f;?){t>wd~l|d)B%S zEq?x=^j(I^@0ZrMW(e9oTA6~OYaig=xQa!{#5oKoiku`pgk)_dq`!*4Z=s!KMR>c5 z5-L#<{i0e<53E6%-P81v{?@~%c_=~5P#uYdgL4xt53f=xE&ztQJU~LN(v@-HJUWN% zc5?bsEO%hzksa^9Ts_dvYRl2lU&^3!|5gnSJv*!R%_tnkV&X^fAD^L1O4zP%ugq^R z)I^5ijihk?(GavIZBH0IXG~SHSl&;$E4DPF*l{uZ2?WBl*b<57z zzgDh#1gh9nPGmi#ezD~wuvdGv^TbcYcRe+H+fsMO$Lv||r@om>O4!hCvpV_mV07_F z{bC##I)}ph#Y2R|c8o>Q zU|!9tkBdBAA8B!nIxn7D&Deg1`o^paB>`^BP%gT)*!{%NfrikDkv%NlkBXY4cdA!_ z>{jnDwrR^-t(e-;#pPcWZ|bA?p}ZBVkn%c{TP2P?=V&BoX$iV(xD9-EOF`(X)5R*%mq>yM#6)&D6_7RAf@Ns-id{Z>57`KmG$J^>Mr;93z z6UKuLgW4XUmUAdTfx^@T_6x2laRB~=g@uK#0={3?GkRB1p)w`M_nxCR2xbc?swRT6 z(5FWWUCkypq>>Twdtp2f^S*lX&bBa@|9FdF;zb|v#ke0%&Ok26UCcMhE{S>}sGY@_ zHOL5D*%92BT1+|`z_7R)9ibJ%iw@)DENJuCU}4HR(sR?NXrRV5nYXt$1!LPT`5 zRv~3!F|r%o`d$IDYqqt>o!yH9058^6D7nj{Ehk$<{$4 z?CIu|igM39O6cvaMyR9R!?JW=4Em8nLClDpnT74+tp?uL!(n_x+V%AGmQ>K;;q?9ZYNrir_xWL{_{5ck{ClC#9zM)0eAYiMUDHUYB z8~nARPFoj@Gn?0WVrAi5%<%hgx4?zQek=xXqFXW_?rGey%N&P0j z(QpH=cs_?RJV8DH6-|m|-z3@5Qa7 z)fy6E?I_^2G$)su#q8qk@9zMZ_oVK~PBx4Nzs04Cy}YKjCy}R~K!Al-lGjCK*;WMJ z)b!P_9>;^I^yk2y2*>GU?b71r!&f%jnw*}`91nRys*rY9rW7r?B)1z2dOxHhd?cX}a}boNq%6JlnV4HU2&uokZRp%#*`74F)#S&-W{ ziPqyPt~BoBhmw~z${rn(W8+vZ9@DG4q+1KN)c%T48^wA5V~Ow4ZH%j?V*`Mmn{%Hd znVc;LfrMbMq$v-}D!eNUOVl<=fRDXJP~BCg6hfUdi87JKw#5>|WgWJa4DOM3r#^65 zIq3|u#Fr&)`$G<0Uvye5%IQu}C(b$yFiBRIX51^(JWd~;!Yo{n#?rS7Ct@vI@PUg&Xe=qrIbg~@CsW;e*oeVg1XJm~^6GtmxPKK2zx& z(1$~3GQDlBKEl`aMGz(hCOb8cDThOTtmr635n-tvzV4;Zl~@~mUZkdbc0}pn#(m3T z!bv_1`JIY}G6kF41ZgY>f0g05z4jlziT%}id~YS=5ediYnr)>~;vk>F0L`4Y{)HrH z8`A5=v<+S7?AKk-z-8UP|LCpeL`J^Ud->AldUFuI8eWaZgm7Le%Eojt&^g(J6}I7J zVnpOAcrD>A;-NhKa1^;_RM3=eBL-R$L)dat&)oFqVjppJhk#s|4D8r;u9PLM2u?E! zUQRu&hz-4oq0L=jtnaCVMR154wlD3GuFdtsAe9AADw?xTQq`)!`>nfxmr9l{i5yM} z42~kG2Nv^}W_ma@Rm7cF=McT$J+mx~T;!Frgo&aRIF+tXdR(?Vh6Z!ct6Vo+SvUc(4>8w7KegWGNF z7KgP`d90>ThWtjp63b3s;`^T8JnqFazqmhNflm*uV4v;_y66wo4xAVbA+?JoFp`}$ja;j%#Gc_fY z3JVuWJHRxo$v%zTO+0lC^$@y0y9&5c42yFr7&$8e99in~m}CaIaux;R;t; z|KC?>b?TcGahflCPg47I4yv!eNqMiVskvQmtEeT-ocUC1KQH+lVN1%kNm!>ve_i-+ ze-DK~$m;Pfo>N!z2f#p2ztQ3P7Jhfs%L|3L5t7Pe4GA7>v`?K=VI04sHXF^aa9>vs zOx0ldJ@0(_^LcJ`xn@x6a8yD0?Tw9%v9q(k-rxCHHcl^`5cOvPNM~|(y^`5Vz8iGh zB6}5aWaUwU+oQ*PpPIMud!9XSLsS$Ja@vC#S}wF7$TN}7jQ|;PsSyeOxrAz^PVeb7 z)gR*c{$xms@I9ztz8$be=4s2WGYJp`Ff@gJTX=!a}smYSbsdzn{N`N-Cb)-N8}ul6%-3Qleum< zF69m_@(5F8d%m>?H`kWqnd5ZSZ{uCC5zjENodICcgD%6)lgry!vMPU<;WerZ8R!ah+n+$FV^w-_!wPrn?ZZakG_c z^8LK7onaExZ@oQRB?GDD$Ae{==E3Dsd^l`fS_DRrN8qCH4wVU^XAT@x?8;kqBuT?ALd6rkwFhu z;+rh7VoLYlo$g0ov>UQ5LhW>=DMlM>({SI={n=P0C^RK{&<&zot!`QRkGWOiv<%bo zV0wci14-0v`Lrg!zPgfVsI)xuGc#w;^;e_ps4O)p)uh+6ql&ACZ}T~L&MzWet@(r2 zKl^-pblgdsJ0l{gxps&0Fy$1**{q-ZqaV|Z;6Sl@qTt{9Z=VEtvI`xp%*dH%XafDb zhHs7@9yI3|Ul)(Y4gYkPI?@}E0bep3826rN1C((LZ;pa4H|Y{IEghiV?V?g) zwVi-BUEK?CZE}<8>v@&6E=K$zrtEidf1q*|%^&OC!A}lp^R?J`ytcfm#nAqUWPHMR z@5-*;p?-u#86N}&Q+mU@j$7wWum9%dr6viuKVR9^2!(~FxX3qN7USPOs{$#fMgvA; zZ?w42CfaFSrIZA;TF;ZYt-*nC5D@5O8F3LcV6%w^yQ0&Iag&Mx>A=3b+??1&RI2S=dyY}{{YXS@ z+LaPTQWigO)s%Z=J0-#FDTNn3*pyF+O8!PZBcT;hSgzWcYTVc8NXN5J(p@BUMxYg$qD$Cy+|h^9Z@pBKm%r(&;zDMPI7 z1+9+8!lg6D!1OdVMvSGgN<-Y5_#jePtF~$Fok{g{#&-LG!&GM`Ojrza;7}xn2CMO_ z8xtY?B@FhPr1xTLzUKp zVV$H`QVC|KT6hFgQ9-Y^yv!ajbhmyfMO>i-&m&f#WkGIgTsxQ0k zh0lDxFYl|{tMON+chTp-HYPD9p}XvkfWw}E#0a5p=ho>d0}6-&Pbd|7 zmnepJH3cHmV+Owhgs`md444{z?SiMIm%GgZ^)ORE1>Psc1w>eB7$rpHXIW|K+WLB( zdjHYZ)xRj{XjZ>L6oIq;d}c-Ua045YTqsJBX`bcE%3KNaqf}xn>Q@7+tXs6#+@~J; zVTrjaQ152VD?X(ATgZ^`J3TH)52jQY+aG|TZ`5UB!nT@}0%5BMd>gCKx|Jy!tK z8a=2{6Bn}(JXl>Qps1)w0$M={8u+hTV(;o1wkpS8^?8p*Tv+BGAg=&~|8H43RV!Z^ zSL(QTbPK+`s%sk|j$HS`Zpwb>+eq{!nzso()%HR>Am@|9+|_FTKtOH-vEragORX=!=rQ;}?J zEMI$YL_|bP2ym2l<=VBp+*ZZKMG;w9HFZZPJ``Y-eI)ncM~y^pL#^vlRn@3lw*&(B zE?Kff!G8YQb?cTdR~PDhpv__=&B5|P-^)$P=o_zC_xkns55=+H6|zeAu9o#$_xoj@ zy_EKJ{WAGy$HI>18@|~2!-;8&TEpX6Tk_D^H5li80fye4)U9g899h>ik<*i%!O`i(*&=ng#fC^3Y3#wV+Pr{9RwT zJtkk6ptZ9o*5n!WA46QRgxFyEJ0T6s8Jpc*+OsxuTemoGmORb?d^?7VDsIY*$5mJUlvjds`(; zOv?=#kKO5<|Ywrc1T~k}QdWsQwA) z2j-uz4G&b|t_22F!yOJ_qt1Ma1_!dc7RWXJXO>!gj{V9r?{#K B$9ez& literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 7e36f98..b97f57a 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,16 @@ -from fightingcv.mlp.sMLP_block import sMLPBlock +from fightingcv.attention.MobileViTAttention import MobileViTAttention import torch from torch import nn from torch.nn import functional as F if __name__ == '__main__': - input=torch.randn(50,3,224,224) - smlp=sMLPBlock(h=224,w=224) - out=smlp(input) - print(out.shape) + m=MobileViTAttention() + input=torch.randn(1,3,49,49) + output=m(input) + print(output.shape) + + +