From 6441aee9d31d11778a860809cff54ed5d4ac20c8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 1 Mar 2022 11:55:32 +0100 Subject: [PATCH] handheld barrel yeeting --- .../hbm/handler/BulletConfigSyncingUtil.java | 2 ++ .../com/hbm/handler/BulletConfiguration.java | 1 + .../hbm/handler/guncfg/GunFatmanFactory.java | 34 +++++++++++++++++- src/main/java/com/hbm/items/ModItems.java | 3 ++ .../entity/projectile/RenderBullet.java | 8 +++++ .../textures/gui/processing/gui_chemfac.png | Bin 15176 -> 5056 bytes .../hbm/textures/items/ammo_nuke_barrel.png | Bin 0 -> 423 bytes .../hbm/textures/items/ammo_nuke_hive.png | Bin 0 -> 315 bytes 8 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_nuke_barrel.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_nuke_hive.png diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index a4e6294a1..64d4a98eb 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -210,6 +210,7 @@ public class BulletConfigSyncingUtil { public static int NUKE_TOTS = i++; public static int NUKE_SAFE = i++; public static int NUKE_PUMPKIN = i++; + public static int NUKE_BARREL = i++; public static int NUKE_PROTO_NORMAL = i++; public static int NUKE_PROTO_LOW = i++; public static int NUKE_PROTO_HIGH = i++; @@ -451,6 +452,7 @@ public class BulletConfigSyncingUtil { configSet.put(NUKE_TOTS, GunFatmanFactory.getNukeTotsConfig()); configSet.put(NUKE_SAFE, GunFatmanFactory.getNukeSafeConfig()); configSet.put(NUKE_PUMPKIN, GunFatmanFactory.getNukePumpkinConfig()); + configSet.put(NUKE_BARREL, GunFatmanFactory.getNukeBarrelConfig()); configSet.put(NUKE_PROTO_NORMAL, GunFatmanFactory.getNukeConfig().accuracyMod(20F)); configSet.put(NUKE_PROTO_LOW, GunFatmanFactory.getNukeLowConfig().accuracyMod(20F)); configSet.put(NUKE_PROTO_HIGH, GunFatmanFactory.getNukeHighConfig().accuracyMod(20F)); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 656119fa4..4aa8c75ee 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -120,6 +120,7 @@ public class BulletConfiguration { public static final int STYLE_METEOR = 13; public static final int STYLE_APDS = 14; public static final int STYLE_BLADE = 15; + public static final int STYLE_BARREL = 16; public static final int PLINK_NONE = 0; public static final int PLINK_BULLET = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 8348012fc..3b69fecce 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -213,7 +213,39 @@ public class GunFatmanFactory { @Override public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - if(bullet.worldObj.isRemote) { + if(!bullet.worldObj.isRemote) { + + double posX = bullet.posX; + double posY = bullet.posY + 0.5; + double posZ = bullet.posZ; + + if(y >= 0) { + posX = x + 0.5; + posY = y + 1.5; + posZ = z + 0.5; + } + + ExplosionLarge.spawnParticles(bullet.worldObj, posX, posY, posZ, 45); + } + } + }; + + return bullet; + } + + public static BulletConfiguration getNukeBarrelConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); + bullet.ammo = ModItems.ammo_nuke_pumpkin; + bullet.explosive = 3F; + bullet.style = bullet.STYLE_BARREL; + + bullet.bImpact = new IBulletImpactBehavior() { + + @Override + public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + + if(!bullet.worldObj.isRemote) { double posX = bullet.posX; double posY = bullet.posY + 0.5; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4e7fe4e28..1ebf0c8ff 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1551,6 +1551,7 @@ public class ModItems { public static Item ammo_nuke_tots; public static Item ammo_nuke_safe; public static Item ammo_nuke_pumpkin; + public static Item ammo_nuke_barrel; public static Item ammo_mirv; public static Item ammo_mirv_low; public static Item ammo_mirv_high; @@ -4216,6 +4217,7 @@ public class ModItems { ammo_nuke_tots = new ItemAmmo().setUnlocalizedName("ammo_nuke_tots"); ammo_nuke_safe = new ItemAmmo().setUnlocalizedName("ammo_nuke_safe"); ammo_nuke_pumpkin = new ItemAmmo().setUnlocalizedName("ammo_nuke_pumpkin"); + ammo_nuke_barrel = new ItemAmmo().setUnlocalizedName("ammo_nuke_barrel"); ammo_mirv = new ItemAmmo().setUnlocalizedName("ammo_mirv"); ammo_mirv_low = new ItemAmmo().setUnlocalizedName("ammo_mirv_low"); ammo_mirv_high = new ItemAmmo().setUnlocalizedName("ammo_mirv_high"); @@ -7251,6 +7253,7 @@ public class ModItems { GameRegistry.registerItem(ammo_nuke_tots, ammo_nuke_tots.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_safe, ammo_nuke_safe.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_pumpkin, ammo_nuke_pumpkin.getUnlocalizedName()); + GameRegistry.registerItem(ammo_nuke_barrel, ammo_nuke_barrel.getUnlocalizedName()); GameRegistry.registerItem(ammo_mirv, ammo_mirv.getUnlocalizedName()); GameRegistry.registerItem(ammo_mirv_low, ammo_mirv_low.getUnlocalizedName()); GameRegistry.registerItem(ammo_mirv_high, ammo_mirv_high.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index b19c898bb..deffd0ab3 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -68,6 +68,7 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_METEOR: renderMeteor(trail); break; case BulletConfiguration.STYLE_APDS: renderAPDS(); break; case BulletConfiguration.STYLE_BLADE: renderBlade(); break; + case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; default: renderBullet(trail); break; } @@ -217,6 +218,13 @@ public class RenderBullet extends Render { case 2: bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/models/BaleFlare.png")); bf.renderAll(0.0625F); break; + case 3: + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotated(90, 0, 0, 1); + GL11.glRotated(90, 0, 1, 0); + bindTexture(ResourceManager.waste_drum_tex); + ResourceManager.waste_drum.renderAll(); + break; } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_chemfac.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_chemfac.png index 3ec12aba3973d977e96b49347bda8450cd890b26..9f8823a1971dd90b5046583069f442b21b0e160d 100755 GIT binary patch literal 5056 zcmb7Ic|4SD+rDPTGC~H0hcG5dWs3)89g}(}V~e6NWO)i1dNL|Yqhu}nzE`qUwy~7G zRElJ8Xc|(=I%Lhz=)H$}p7;IU@Av(F-~4mWecjh}-sg3m$8jF#bw`++{=vURda_H0dV2cDgY&@_b@$tAOzEfYpF*(|x>|nL5dz=ZlkHZ!^vydui6LpTbquDc*x&M^AL?8Rt9O zDwU3oj+TF)8~!0E829I_!}c~$H~ous-Ah!Vbo$g%t@W~K5fbRlH8ruSlBWl-H4^q$ z73E2X9&(uMJe%}u!2TWUQ;dGwm4=}o-s>Its?wJJajj#tZKfo5`2C7vv~!w?+&7mA#ITDFkOPly z=Iafcyk7qtGF|h;(fe!cm_MiQf#UsS#uEN+jsmk&FWBKwFVQUxpZDxA3%q}J})b5WX% zGzX~1QMr%DZDl>Kb!u8f^48UbKo5&wdaZO@R$CzVf`RB_q-Gq_A9fkHc)GWnrQ>@2 zx(W<5h`hbF5nJ==P#!RDYtCCsA7Aw_D3@>-M+NHH{k$!c*b8zEt!cTmTO~~*9Cc1d zL1KEF#yIKjR4M0kuT(%r;q5n*v|$L-zfg>ixpBp7M5kKmz_Kq`Jbe|*N!GHcdR1IktsmTb_(WN4;>+*|n*!8cuV0-MrM72!PW znG%KPupRa8%Qj!W;}aWRjEUYszuujZJN&vrFL(=(x9I=r&l9gyA#g9hg8$c6{zaHK&ihIRcvH?moL%Nl8fb* zyu@Pyuti0l*Z&EU@5zK+y*?-R`u<}|7#J2)PqYe1+XT`cD5D?j(cE|iTpbxMWPN^f zEoxec0bA)&+}G1`&x;*6;=vD9RPw}u%Q*i}V8e-H_x7Pe2< zd%Wx-8nze!qkLy#-M+lk=gi0;go{t(>}j!+553Q09E zHyPB^%wpb+0p3WuId3qEbn-Fyh05)~^N)TAy%N4!h+P?po0~iifAr42s-bbt4V#Zl zw0CvwA_lGT|AIf#_8A8|j{H_U=GMp0mlDNUE_07hN0=W=|KBs0Yl`o$)K2Y?Y9#Hl zaDN4nuZhJa4E_`Kt6aq#-WJE10mApteerS-K_8gq!pV%nNN?eY51W*IVCMLLqI53| z<-S++7ou;&!BMNKpO7h&$mjSUSx0vFasC5$v?VJ)DZdq`JImCmu0_{7z1Y|!j}<6f z%YIx7RWO*3+U>vnfRm%rC!t#PO;h-&qAeHeOUuwO~EGcUub3yLiti5E2_mGgkR;ex5)2 zF}p@BB^vg-ZvHFILB-qFs;7xj1{>;d`yE~6lNPx##aXU*E=bs@Hga;X?&J;Cj6s17 z4urV-NjQqYeUt_j7Pdo`I(LA-3WXdA+5Qtp(3bGu)a`kYy$Dpfv~>+tbExl(oOy-u zZ%{V!?|DjMg`vdXr&~7;o5LtpzGGvY0S{vnwrZbg z_Y&O)s8dyZVTT4iHMCPfv%;BV<`zi#JqH->Ori(`VoUqu>bfG6mpjMG`#Bpz^P%d$ zxA-mMnU4aEQ9YlI9@_eT)TYoZM;YxUx2SLws`S1q3ygYJwz4sXF#K@)rLT0q`H_~e zHjfq3haJ0j$22shb$Og!?TDrmytrq!xF&E>M}v95yR+$1FKw0wzh&$RnI>?sPQ;Xo z^2S9{;3iZo9^wARrd_H%vnis2dNW6-;%*+ItF!Me?Iy zdGqCBiZQOYRB_XsUBrHGK5~_dfVesW>S%T#%1r3}F0U@WPdb`~!YvmJFIGw-$UFek z?{WWAm_YsIsbYL|pfX_Pj~$B_^9R<{e{VLhG5@Vf$Lg}8|9jM8=th$_5W6E?xwbOo84(7qZnJ=B*9pGhbqAU zk|oNqlwnqD8gKR!k`>)yxYD9Pt&1WLDNfbMlsHjP!yfUs zKCSxpj@M0$Yt{sP5+id4Y|@QRG|1vcTQ<}crUq2YU3OA%TPYs6+TYkWv}Jv zPC!)Rx8pX)Y&2zCR&}%>zs`+lk%esS*>qcm&vy}{@II`IqnY$xurwsLy`>~WqI8m zKUt|Re#_-|aY+TbVnUr~Ym`*;6t(np&D_W5yv&ukoir!yNm3*8OU7G9qD5ul*!+Bt zymH%z>UYL-7!dwmE0>=*R38^3tzRKoeb=kis+3mvIZEnTMVMO0hr`1j_az0BLC68u z28ZGHH+a22)#@IS<}dX^{{7i=*g$-e??qaWpK6*F>GM=|!YmJTZ0(U@hCQ03Op(L@ zvgk>GUTNL7l_3+XHNO`|JCb-mONS4#C#Nq?sOr$nXrKtxKO|Lnqhe#pP5}K(hS|-O zOLc=)GDg|A`zP9T7_<56>^U1JV)oj+SMSz!5?+luEZ20KO1*)jKBj&j4@~f?KPQ5v znTl`$oV&SS0pX(e>o1Cj7gh!z*va|zn{I(3C}~lttsLmsKB`0$gv{rORGTjEx&Jxi z?Mn4K_WhxX1tv2gAab;X1_h`7(j0E6{&EXxz_gT+dX^%gVz%n|#e=E(xSdpgNg0@N zoYB^+OwbpUUvnVW5dIi0BB0$L`GSsDlM& zb2XAcZ{(6V;g>HY^xM;ts9M&3xBtRs|f9x*8T|DU0` zGumau-7RHVDl{HJWm68!vp-H{BRLFQdCG(b@9EpxE}P+ya!D|BZB)QS4l^vrfQ+(Z z2cY?PDUO?lcRb(5DD)lC*`CT+=`vln`hY6r1A`?&)jM7WRR^0Dv{bMS`*_!?f<)a> z4e219k^XyLz$^)*bbNflO+j1CLFO0T%-2{YVpOQ;@AZDY@+yKMMD~HHuCSS$P8$kP}y` zhnv<@P8vh7R-rMJS1IGel%`pS^SE&SE&jllYrP_;Hx1~04{@~cP&2nq_ACEA6?O52 znbgul+^#A(w)cqv?xkWQckokSuD(RQ=pGvzJ9iMd<0dT8b*-XEPl;3RcGnjJDgDc` z_j9h67v7S*ghtB1K0VihavbIg<@osX;U9CuN2os*==c4b*1ppUs;%Am%{b-qLZ*wF zXFG>9)>)M#23n}EbDjch_|AZa~bPHGZ*TuuTZ=ZpEcY@nXf@-QC^YC6pG5Q``xK;_eiO0tJe@ySqEQ^m}iummf)1 za?ZVHj?C=Ydv1h^k~A7JF){!EK$De`Py+yf(62xMB0TiNz^&K{`T^@MCaZx6eFY#| zd;N%%H-^-OA_Oi?=cSg;lZc#;d6BCfDNRiY#A zsMwEN&sOlbxS}RH5|VI{n_-A%EA;$B=wD&rT zXlTH4Qss8lYRRZwIfDMn^pPSeJW&L!@FrKgBkLQ13TV_|WQjcj#3V^gco7Or`Y1L4 zj3|y2As_^TM2!j-8UKO>{oSSq5k!H>Y1+2T3>JaF!=n8pkVP@v$5m8a< zpfp_h2GkJ{#|YNN_M@jER@KUGXl{bx^5HuBrJ;|7!-j@T|n?G20DB8 zw@DY*+;Cjf9$j3;e$??ZlYIL9Q%kth(c{29l?Gt-z$Bw%%*sR|#Oez=Z#ZKiU`Ex{ z)Z9FqaqGYl*-mO7d{sOPKpbYpY8hMzpi zH8Hp_iy>r*&%lew+B=*HUG#e)sPO;$r9mA)yJvR$dLHBWTI2;CU)%sOc)gs-=UkNP z`q6HU;7S-eQ+pTl3|-mAK}flQ{Xc&HCLTs4uNK({yZe*_?|uIgp5N_-C1C#|<yr*C%-^q+3<5cjW4(TCb^ zU=7&Z+{}s$s$mM>SHKT5gJxBi)H`U>+65LDho927#B=U%N3Oo-kqs#m?elyWy54 z1SXZ(L%z3$&bO7zLWDEWxrc@=05Hm8@aNTWX`g_6>@8bxcz0TZqqp}%GS*dRzi5Hc zSTxTX4TW&7LfHpiHkB+m6~K%l(Ba{|5ZQYrnl1~op-8;?KYyAlqj^y(-G+vA+;&lc z4-e3p)S7sx_~rxnxBoG#T`0?ql}nYvon6^+v?_X*Y|1sH?!lU)!>l+ZbLQta?Uh%d z^C+84rCb2K4lQBfoRh_5?BL+fZtgAKz3?=3EpF+2Hl;!)%6t7dbn7uZ^ocY=nV%BN zXDdFmS8bn7Xn2Y=*aI5zxfkYA(UgTp#N|`5JvU*gg`c8Hw+5mfawCxj|Cs!x%LOxC zX@#Tz;aPSuB&vajo>x+!$d0d;({M_FkU6}ikzR=Nq+&-!jO}Mw3 zq^a%cv14XEeI4CezzR7oFIwb4!S4#i*nH|EU~{1e8ctDF>y2RVTP&9*`nj!&-Sj8$ z5O+CgvJQD31v#89`~&Wv4Kj+vcjOHlDQo#L zPgSz&{+xnhl-Kkm%-X-yH!zLvieTl`Z@g_l4bs<`h)H6Ez&k3w&b`f3O4(4sjC&6V zH}UnaDAUd-&viZ?l|)KG(lCthtpQ2_lAwFwFAvuy4HoGHnqsR91nnacsjwYCa(;Nj zR!hm`D-LQN?8lPFPqQR z?O^hKJJB#s^-PGIe#qVNLholdlq{#NjNx+1!EYKMLi34ByDhi=CSi;Zq@%t3Np4gG5e&XR<3xA2S3k z?eeSbwMSo}W4!J`d8VZOYKS4wRi)|G&#+=;-q%@-C>2dnT2Mgs#aoqm!0#lF(xVG! z(ZNRJ9R?sN?r(zo(@7TV7&qtf)mY2Ly=!XI!hCiA+1@;R!pk%6!E*y870jpbQZ(>~ zQLCaj(&58zh%|NS{=$#n8V3hioa<^#GTTBc4b%OvMp#asDa>GaqwJuKsq4yPqqm!Y zpmPplUz3$zkpZ9>X5#1sjge*X00G_ARTf8e30OBW&2pedcv;2y-QAk9iWhgbQm)lu ztz`hGbIuRnePW!MpC=hpfS@4PJ8!a?Sb#`Ni;m~R=3inoW2HHZ1}lYhkpD16r4le&NXQ|BD=GmDfVxVer)~t;mp$Rgh7vC^ zj*saVyP5TJinMi#?}XAn7K!o;Hyi!y-Ku(m3lY-QJ4z(trsGV)*c;p1upHj^c;uuu z3c#|fIkg)?JwjcD2PJA%ma|(Mi;t`Dtvh7qMBAZ>i0f^%r7%Bu>?*vk(h*e-1seH} z>^S;y5GO`F3EzXQT3V7|Vb2G%KB28Xh?WECLrRMPXz4`U%p3`<pjHx{{y zw$+$x{}wm%^5uLIcNGDU3*O*?s0(uxR|I zX^pVa^Mefbno`!EzDy^#CK)p{5ugS?4B+k&ymmYu0v+0>w#M&i%V8Vay7v(LBWKo= z#00`RSLy_&tKRlIw;$fl-ccGM^9buCrQCqiYhWf#$)r?XcnUN1^QC3@q6R3hq-41> zNN};1<95xL4gmqft4Ssq^9hjEyX6j={X%ySu6Xygze-o!MGHSMm38l^mLrInH9y5( z*W7<^thXyfMGZ#1X!5KVm7qByaC0+nQGT2bbsD`YhJkPvvO)7X zABw#)k#u#_h}gQL389O$F3}x`=lTre=T9>4e_$*!D$4vVoV@mMTlRB|)GfEOl7kwy zCAtN=ogANvK9TYqP*Vc7^gx;^;PnAn-a$D%gAaUDY4X&O?|2G#iB4|iVL&2ycly<| z*T$BU!{cyTufueunVL%F+r*z=P*lf8%z%h)W$eJTMe?_39@i66$dNOhTY3oA0ntk% zk)M~O5ejAS#68Dj&bMdY#gfytMP`mqU5pNHWUCh;($iNvTx4^hxMCZYZI~4?W^Hdzv<<4{MJs*(@SE4%qTNfIy_tA+w>&oqGcO#ThMeOys;)2$lUlZYzvt(QPkj$+5x zR8su@$Gw~~#9XeO74HRJe{M-p(a0ei);tm4y)#$heY=slA}SDsoAg{lLl917N%wpc z4B#HgQMB^mWuBZ$Hy~3j%0uEHoQF&Dew`8*Z5ZU6DFo$&{j(vk>y#U2~V5*suaFoui?ADbjNqD5RM_26?4oji)4?55);%m(L|4qlRxB#GhV<8Ggy|>{7?H z2RPYH*}<0E!z5}~dYoi{CuCBEUn15w%`QFpPB{rx-1iV}j=*$~MJzzEFslL76J%PA zP(dA*UO~~vmx?Bv^wZBm48v^p_}x#p->arB=1hBKG&=B_AYP;{JkXOBvw^NcLind} zp^m|BHX8gKK<2lX9oY;c#}36t8|`;&4^LN*5Yd8P3opeqF`@{|5l|P-ziU=$SI5g1 zue|%0vdL23gO*mos3YqX0iBoH4sMn=$j3kN{_)5F5lOYcNEyO@0B(hvLN;loWJ7On z>=VM@=v-tRAmHt|D6u4;x_(e}q)Dz3yESk)v+Z??iiC7iIW}eEz_*SrAVd`}ctcOh zELp;RL_3GV+7*U&{u>9+70xP}Y=lJmC?YPr^SO`XEqDtpO^Eb38iB&2YlLsT$FGzM zSj#jF@Ir{jY|a7ymT>Yrp!Kk|O$rN3xUULU9k0kV%)Jrzj&*Y1+tk$gGb2q#>3eDb z_y^8Zt)OYY$-|52zDQzTDY_3ZfkxI%Oib)258P>yZf6kFd~53I!ND>#!?HIwoA>NR zYX~azRK_Va3T9$WGgbX(~xgQnz>{{Yy!NE?r6uL@-9;&Ht@V71}Hs@2Cj z3^I$^JaM1&k(m?>R{HfD!&b!Eqfe8CXlK_aQB1OP$z^VLO;jEbB$pR2qYlji zeKO1|_>J5jb+)qN$~?hRwVIEb!UGav zQU)UajZvlaIkekL-&qW%pm6q~26kAft5mr8|M-bTL|8NGZ+gw96I6=k5LJRUwQ@AT94-rHB8^h8$7RP>0HX z&|0_TygUK}NsjJX2gZoCP5LvPvEy^cpn-4xd|G|G(Qb#sml!(_R4LkU0f5*_hEAl7 zL>sr_XB#OyMdANm^Ir3`EO&*w3=O^b!00CHf~B0#Z~*=QWmRnC_PP-qm!w>*-oqOk zLz6iiceGFN?qcG)ch6TeD*+#0p#aG5&hSThWsj7M`Xo>rq6ZpJ`q7O#I+%B+ENlvm z=?=RJwR%mJ4Q&$x;T3U0L*HLtF1U$_?pFP)&A$HN@P$#7MKJivI14DvAJlpMEny^E zOLFyKdaP49?MgBqSw2zi{_Jz9S8sCO=*VV`enRg1d-G0HORQKH==gP2k@5%V!r zerOW7@f#^2FmPex3(CGvuF(0-T-x&sk=q3o>)R#Dq0Flx&wuUhiU2W!A07UV3F8Fr zW5U8;niVNsPaI^G#(k&$^l-c6k;W63Ggs+KLWpFDt?C>J?ym%)g+QU0dCuEcIy!x` z2YKvr{eeEosQoRE3Kc@q5#unlt(&vXqW11CjB|0;{hzbfA~CuM#K=%miP+p~KK|O{ zeYsK0ti@*6diVPFX;o=|JdXBvLbV!)Q3_OJ0DvY$%G}N+A zc{t@c;BMunvWUBq+rFQuP8;-@s3T?sIcpy=) z={<|gnd>7b>btNwxl@Djdyg*C{}y8yVR^48*XDbUl2Vx#2{GrNjj_2@H)?>OU)RBu zgzyb+MRY&B{hBUuB6>4O^BuT<6XcYVD*a~I3b+qi=2b94<7XQN%r~I;U3am5O1CUh z!ivvbgK$iz_WuB#_WTFDppo0lI5YyM+XNheL-f}9W_Z_FRz(ZQ%R683#$5~ICmqeT z9zC2%dH&3^qH)If6`dCX@?0;q_ss@=i;8mRd;G@rIRg8p>!!D)>nloCUG;5}D=h6| z{T}i4$gugr!PGt%abcFAyx!Yu@~ZZw-fYV_9)ADePx%90Cz1*^^}(~%?1hO5gY&C0 zZGSNYfhyq=4k{HzVY7{^F>M_)|Dow=V7WKk(p|D$U86mOD?JU0^8v@5M=Ym=eAmA? zDx=}mNukO5u9S4$<0LJVkn%Y@*6m2+j@cf~CUsKY7g^ym!Kj=D*1)U8@&|OC>fM(` z$#-;=`)IX244n|H;Mg8lJd4|}$E z`sUP&5~fP=KwhU7zl(AwsRXm{pH9oTH;VaHTG4%Aa(;TEL%hh(SIC2-8_T1w8y#EL ze~V?xf2YBgilGvw`J$@dh

4$~io2zBFAzSSCU0g0&36EOa0WDkRjmN3OzFBTeeD#amQHZaoYn8cMS!igon`t* zXiEC=O|AJwY0Xt~={(s@0+l5L6UW`AIp5T;dW;Pi>rmpH@~y+kB+v{(6_4aq-09p|NlB)K4$?ZBi(i8hrF+KOsYfDLPAfjN9}~R> z2PG7<{s@PmZq&YO#6V#*zk!hf!K1pAQN%v^?p%mY_pv zvFE@)m~MfANV7)|oo5~9GH$iQi#XFtP$r9sY*f%pgylo9$1T9u&SyGIe(4nT(lvhP za=>-0Ln-Eg(gn`nvE zU--_W6hd0=p?kea|!vk(M z&rJ#Wa4)YY=@HRMz$}K#%*nknDb)w1`}%ggsM`>!5MFji0H@%rSlu5j7r< z5Q-?Q{aG}8Ch)O?xBM<9bhb@CV()_jW4peujxPnOX~q$kCk>owT>mxQFmNzOJ{MJa^*cmTOC-}QQkkWx?s!;!vag=#HY#ZH#+_y zMq`*NY|+n>3h4;+S7I@WuCbJ#Bnya-W;b7ER%<_p-=th!x}-xf3CWcFg+7x5e~rrr zZDql&PDmQlfs}pk&h-%Z=yE>Hy232gZfmIV8wFmCcAGCD4tA@oPIVs?dUF@_MxD1uRkup>f?6e#6S{MA}TvQm86Xk6;o$bA?8V!J{RD zPWe>&mJRrXT)&|aY`!oy0Qz{)gBz6O`|-}XfQ@f)WfPG&tt*l4;NmyVy-`Q>;99P_ ze2NMtsp3(EKD)oa`>k`Z`iftC8VoPE-vrRLeRgIg3yY>WKWFUT+w;{%PJTjK!o_bx zj0WRLoK!;>9U8-P01UB1dkUyyL1Afm3!;Y)YdGd{D99b3HGPeCvN|f^0dq%!+G+ZR*?PSoHSp6J7iuvxH zyn#X1$_)vulQx9x=Qh?&b79W;aB6zB9UfmOFf^CkRaqd!xz$TYK5n%hiB&f&{Ubx$ zgH@45Ni6+0J!E;{Zf}6LBdu0D5Xy%aK81jy@2}O{hKBw)E+mXujnWLi&(^&vXZl4d z6kR?+(SD6>Va3SO%X1#X#l1z3eqj98 z^R_7|$LCd$z3}eLq;I<6oSh9n`-82zdY-n2PjH0S42xi0iH0#c}3-f;XDMt9$>w3jIHy-hk9oHf*Q;M2t^1ridz^6 zpX7Fw2{_@RNsNHfIz2_@(eIRUcWd1D{z;zf#F!dXoXjy#vsH9Zbyhc@(sWzqHkz>8 zo&9!?lC(LHf26KXHY$314hX_cb><3yYkxRPLREXQN+L;esmH)u&&GVIgy&RjhO= z%w_dQhZ|&qIvNHF+h0*^hKJG~NBIp7rX!&8U!r}uB>|^V{d=6ipvMT{T2R!i#Se`l z^P^}Y1Gn=oB^x_N_Ev9dd(Pu5HlS|)G2|0T&)Vmv^0zm%pe6JrJjVijfmy&a#w!nQ z7!028CURXZV{*&!(eSP`S>DLbu)y^wzYX-1=L!xRzT>$ZTy8nV)L#dB$S7Fc&sIRy zQ2<50qkc!g{RXl2oxNCsrIh2sKLE78-fa-|O~qiAtNK0RXP_FTCl!5XmkP>I74Tj{ z66@li=*!<6#ner+UrEWX=3d-D@$g0cJ{3YfM0g-BkVHVoKH*Qj*U7!jYrx-~*_NFK z`_VvzkjHpSzN}BZP}$aE^X*kSDjKy`TzujAH%_^6b=SryhRf0E3RFB)$0YfCs+x~W z@W9|>hZ+rx8fJwzGiW&|;!7e0-g}%XwB`nhEft~xxB4|nzE6Jnf_bsxoyKCYez-lD zM8c<`&-KnERJ+CD32f?xx->~eEgSa@0-X#m=3_)+1j_XE=;$bFnvaQAzP^C8dOd8Z zxLv5dbB^@7}fPWr9b%T2Su1nClcL|`qJ|sezhJFyqZH6#J1juDEv2y;7ft_ICvZ;^)R5 zEu;bt`XjXVm5B#Y29Qe0)i8$)c5OF!dn?p|lgihhIyITn*FRKAdb=YqjTJf%NenYY zpMAbLqg4#Q+0Q8zf6onyG*-m|Sgx){1~7+MyYI~zZ<#|q_0&b*^?||hvhH{H2gk%j z+rS$}tBMpy^+I|ITg#xY#_e75@DE1KbB5W*L;>bz&FrjkEVT**b?MM|>-LV#vqiG( z8$YT>$6h+d(iD7)5C4!S843YQeOpa%C)1HfEov(9oX(`yEg z5|R^Ez3?7^j}*2Ib1M(u3yQs}rxS!jt&PI#24^vbIoxa+)E<7zvCyv%jpuQdqy2Gv zP%sh13J01PIom@b}5fG5( zG0dDay>Xk#W(osBKrg>u-0X`2&bRq~oWHKo-k9m^UIV;hyq+na)9rP9y_#MF)UUM? ztSvc#5(h6oYelsbBgS-gdXn5Oa1iqJTvo0ELdnBG1Lb&WBWYJx6R-&SudKrs0uMBw z%Ct0XOQ2eT{|+)KSx_3jl>94RVk)%MAzMBpl;M}Tx%t6bXD1bwm4x77<-n4S#cuGM zeBH7^qhj`uEI&6&Uw^-mw|VI(Ao^=fZtotp%vw*AcekNZAnl%;E zHUarPRtC|n6Gwies285&WwbE0^O^3Bk@NBS$U-ig44wf49h-+v8mwOdzS)Y#Ej=T_ z&(wm}e~b5@`$9t6?v~xry@Nu!Qi9fkm7({ql$3Il>vkB+H?42D$_>BDnSAJ;kQB)s z%|`M+Vh%WK2G#4a5l__H0Krm4p+j3g3x?V3-d~@X9y}+&+8d?r#C6mYBgxiA6ApbJ z9+%Ed+Rj=ba5Q#-oli>(g_$bBxOJFUKxmd#gKxGeGa@m*er!3ci;95OWTU)$E`e;>0 ztE;=+=rH(DX_#F(#`7t?b6{Xg`!tUaHeBd)Tvp}0FXy`izX za{>gBvUMFK2cKn;{DSJiAwPfWGy#QB#xlCiL$$S>0b*7or8-$4CemfMp8mrnR;DnB z2yZog{Z{_(Av<%b^#^Ou9} z&cn-DuzuiEJ307SEDG!X9F0782ro@RrZy{^PS&{{W5GB1NM!a%HkYSL2!=pP+C5-L z?yr#0ecA}>!(rK@1~umS^-p<<;ezmRbC;g{?d(kX>nY`};8%f1uM@W9GQW1*wvdul zfW_ZT?Um})l;2To4q;50f5)5Xjt%IBRk3zd`6uj{G4z@CK8U2W@Od%)+&d(_hp_Qw zP?HCAVKD2RLuKdLCSp&1mn!9kEbTkGnzzD;r+JB}?VWIVCrOjINLNLep6_r5%oZ1_ybGR>w z9N{*yc-YvZXb&J3I`$&;(^sSpzZ^@KXk!WS|87Av6qh|ccQZ#t9ZKZf1{{c0T`s|a zE*9PSG($j@(T<)8MYtg*-!dL_i^+{;Z>d!orA;z-Bme#Rb50qBhT(t%HOuS*%g1&j zv9E#oCvnV8_7e)M+{D4QEN^fQuJM{*%c~glI(a|kk?85c=PpVthLP+vU(PSL`j+y4 z;PT6_+u5xlYWUqUr6Qo$lPt{~Fj0R#Iy>KE>0Vu93eIgY37p~EYkCMC+Mj4}y2nB! z29zDKR(jfp^B>00DV>i)MctI7__-f&&*va0<(fgtFLf1)!2a-vUA3+YGuBlkpBh;# z%q8&@LCi9ods;1E{1#-(FhcHEoKvAKVYJX0*c!00V7>FQ)TAAYxJ~mT=e-6rmew*s zg$hiH&X>4g-rEIQc?;eAn&pK;h3`9?X7b6xFEpw3jvt08_U?{#?IkFbdxNg_rhcN3 z#*)-HpmPv2KfzQAV|tMOl#X?&(PpKyNZPp!`Q2xo`*Ta*+4UmbS|(c{9S#MbSG5AJ zL827vhF*PaD3Pw^Cj^`nOG>o%%X5Vs&^BUa^vfm0pX1~A5H2jN@`z{&mejrP?f$lP zmME4XAtc7_8NrSVFb3pUe{gEvcwKDGsI=iR3Jt|R?+{iGYG9o-{kU3cvl<l)M+Qf+*?za)M{rbLBq;^IrCn9% z>%}dV9a~kTMBAj#)33i{yF%RP(0#nsTS6;OZ@ac?+OiyB4itsDl=Vw6uzsm^Zga1S zW1#8rby!VZwoz9^<6A9+Ld_nLhyrt3a&9e1TwASY2A$MKKd8BZ8@ewnFC+1w%Llo; zGKUs#CQLLs_B~aotF0$%1Dem5-EpO)=QNTBHhpBO6F>+uL|n*!caOYKGEh($R$CH3 zh=IGd!-0!YT(TX8Sky&YIA}{Ws6cPcMp+Dc#+}$Ac zN%m7k{C>^S6gKouQE>%-V8^T@xD7(jZTi}X<{L2oX)tPY>ytJat_H=q35R}D;Z%vbK}omt8i!yu z!d!Vt{k*oiT(z7%lJ_c-X3ys(dAj{;g8N~Qv`V-NgH!Hj{EiCkuQwtz6F8i{|8k_} zo1+VM!cxQIvd9xXv5}v4g&#ZuF;=5O2%XQlKVMLgIG|PViw$Uvml_!tkkRLo8Bm;y z^r)$S5Cqv+qyzcA*j#Vypjoe*Uc)b^nkvTFa$1c67s3wm+co$mTah~SSG;3a(T29xqbAYeu5IP8)+Xx2v)O){8+MIC=61IG<{ zj(4zHYUHY<)dnEd


CXi8bDC7*ll;vL1Hg0xhq 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