From e0a148a30e39973b0d7ea1e34faaa0280fd6296a Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Wed, 7 May 2025 06:04:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B6=E4=BD=9C=E5=9B=BA=E5=AE=9A=E7=BF=BCHU?= =?UTF-8?q?D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/AircraftOverlay.java | 184 +++++++++--------- .../entity/vehicle/A10Entity.java | 39 ++-- .../entity/vehicle/base/AircraftEntity.java | 6 +- .../screens/aircraft/crosshair_ind.png | Bin 0 -> 205 bytes .../textures/screens/aircraft/hud_base.png | Bin 0 -> 3376 bytes .../textures/screens/aircraft/hud_base2.png | Bin 0 -> 7313 bytes .../textures/screens/aircraft/hud_line.png | Bin 0 -> 49161 bytes .../textures/screens/aircraft/hud_line2.png | Bin 0 -> 5264 bytes 8 files changed, 125 insertions(+), 104 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/aircraft/crosshair_ind.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base2.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line2.png diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java index 4bdf39568..a1dd9baf2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java @@ -5,7 +5,6 @@ import com.atsuishio.superbwarfare.client.ClickHandler; import com.atsuishio.superbwarfare.client.RenderHelper; import com.atsuishio.superbwarfare.entity.vehicle.base.AircraftEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.MobileVehicleEntity; -import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.WeaponVehicleEntity; import com.atsuishio.superbwarfare.event.ClientEventHandler; import com.atsuishio.superbwarfare.tools.FormatTool; @@ -23,7 +22,6 @@ import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.ClipContext; import net.minecraft.world.phys.Vec3; @@ -31,8 +29,6 @@ import net.neoforged.api.distmarker.Dist; import net.neoforged.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import org.joml.Math; -import org.joml.Matrix4f; -import org.joml.Vector4f; import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit; @@ -73,7 +69,7 @@ public class AircraftOverlay implements LayeredDraw.Layer { RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); - scopeScale = Mth.lerp(partialTick, scopeScale, 1F); + scopeScale = Mth.lerp(partialTick, scopeScale, 0.75F); float f = (float) Math.min(screenWidth, screenHeight); float f1 = Math.min((float) screenWidth / f, (float) screenHeight / f) * scopeScale; float i = Mth.floor(f * f1); @@ -81,42 +77,55 @@ public class AircraftOverlay implements LayeredDraw.Layer { float k = ((screenWidth - i) / 2); float l = ((screenHeight - j) / 2); - if (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) { - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/heli_base.png"), k, l, 0, 0.0F, i, j, i, j); - renderDriverAngle(guiGraphics, player, mobileVehicle, k, l, i, j, partialTick); + float diffY = Mth.wrapDegrees(Mth.lerp(partialTick, player.yHeadRotO, player.getYHeadRot()) - Mth.lerp(partialTick, mobileVehicle.yRotO, mobileVehicle.getYRot())) * 0.5f; + float diffX = Mth.wrapDegrees(Mth.lerp(partialTick, player.xRotO, player.getXRot()) - Mth.lerp(partialTick, mobileVehicle.xRotO, mobileVehicle.getXRot())) * 0.5f; - preciseBlit(guiGraphics, Mod.loc("textures/screens/compass.png"), (float) screenWidth / 2 - 128, (float) 6, 128 + ((float) 64 / 45 * mobileVehicle.getYRot()), 0, 256, 16, 512, 16); + float fovAdjust2 = (float) (Minecraft.getInstance().options.fov().get() / 30) - 1; + double zoom = 0.96 * 3 + 0.06 * fovAdjust2; + Vec3 pos = aircraftEntity.shootPos(partialTick).add(mobileVehicle.getViewVector(partialTick).scale(192)); + Vec3 posCross = aircraftEntity.shootPos(partialTick).add(aircraftEntity.shootVec(partialTick).scale(192)); + Vec3 lookAngle = player.getViewVector(partialTick).normalize().scale(pos.distanceTo(cameraPos) * (1 - 1.0 / zoom)); + + var cPos = cameraPos.add(lookAngle); + + Vec3 p = RenderHelper.worldToScreen(pos, ClientEventHandler.zoomVehicle ? cPos : cameraPos); + Vec3 pCross = RenderHelper.worldToScreen(posCross, ClientEventHandler.zoomVehicle ? cPos : cameraPos); + + if (p != null) { poseStack.pushPose(); - poseStack.rotateAround(Axis.ZP.rotationDegrees(-aircraftEntity.getRotZ(partialTick)), screenWidth / 2f, screenHeight / 2f, 0); - float pitch = aircraftEntity.getRotX(partialTick); + float x = (float) p.x; + float y = (float) p.y; - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/heli_line.png"), (float) screenWidth / 2 - 128, (float) screenHeight / 2 - 512 - 5.475f * pitch, 0, 0, 256, 1024, 256, 1024); - poseStack.popPose(); - poseStack.pushPose(); - poseStack.rotateAround(Axis.ZP.rotationDegrees(aircraftEntity.getRotZ(partialTick)), screenWidth / 2f, screenHeight / 2f - 56, 0); - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/roll_ind.png"), (float) screenWidth / 2 - 8, (float) screenHeight / 2 - 88, 0, 0, 16, 16, 16, 16); - poseStack.popPose(); + if (mc.options.getCameraType() == CameraType.FIRST_PERSON) { - guiGraphics.blit(Mod.loc("textures/screens/helicopter/heli_power_ruler.png"), screenWidth / 2 + 100, screenHeight / 2 - 64, 0, 0, 64, 128, 64, 128); + RenderSystem.disableDepthTest(); + RenderSystem.depthMask(false); + RenderSystem.enableBlend(); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); + RenderSystem.setShaderColor(1, 1, 1, 1); - double height = mobileVehicle.position().distanceTo((Vec3.atLowerCornerOf(mobileVehicle.level().clip(new ClipContext(mobileVehicle.position(), mobileVehicle.position().add(new Vec3(0, -1, 0).scale(100)), - ClipContext.Block.OUTLINE, ClipContext.Fluid.ANY, mobileVehicle)).getBlockPos()))); - double blockInWay = mobileVehicle.position().distanceTo((Vec3.atLowerCornerOf(mobileVehicle.level().clip(new ClipContext(mobileVehicle.position(), mobileVehicle.position().add(new Vec3(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y + 0.06, mobileVehicle.getDeltaMovement().z).normalize().scale(100)), - ClipContext.Block.OUTLINE, ClipContext.Fluid.ANY, mobileVehicle)).getBlockPos()))); + preciseBlit(guiGraphics, Mod.loc("textures/screens/aircraft/hud_base.png"), x - 128, y - 128, 0, 0, 256, 256, 256, 256); - float power = aircraftEntity.getPower(); - lerpPower = Mth.lerp(0.001f * partialTick, lerpPower, power); - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/heli_power.png"), (float) screenWidth / 2 + 130f, ((float) screenHeight / 2 - 64 + 124 - power * 980), 0, 0, 4, power * 980, 4, power * 980); - lerpVy = (float) Mth.lerp(0.021f * partialTick, lerpVy, mobileVehicle.getDeltaMovement().y()); - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/heli_vy_move.png"), (float) screenWidth / 2 + 138, ((float) screenHeight / 2 - 3 - Math.max(lerpVy * 20, -24) * 2.5f), 0, 0, 8, 8, 8, 8); - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(lerpVy * 20, "m/s")), - screenWidth / 2 + 146, (int) (screenHeight / 2 - 3 - Math.max(lerpVy * 20, -24) * 2.5), (lerpVy * 20 < -24 || ((lerpVy * 20 < -10 || (lerpVy * 20 < -1 && length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 100)) && height < 36) || (length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 40 && blockInWay < 72) ? -65536 : 0x66FF00), false); - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(mobileVehicle.getY())), - screenWidth / 2 + 104, screenHeight / 2, 0x66FF00, false); - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/speed_frame.png"), (float) screenWidth / 2 - 144, (float) screenHeight / 2 - 6, 0, 0, 50, 18, 50, 18); - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72, "km/h")), - screenWidth / 2 - 140, screenHeight / 2, 0x66FF00, false); + preciseBlit(guiGraphics, Mod.loc("textures/screens/compass.png"), x - 128, (float) 6, 128 + ((float) 64 / 45 * mobileVehicle.getYRot()), 0, 256, 16, 512, 16); + + poseStack.pushPose(); + poseStack.rotateAround(Axis.ZP.rotationDegrees(aircraftEntity.getRotZ(partialTick)), x, y, 0); + preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/roll_ind.png"), x - 8, y + 112, 0, 0, 16, 16, 16, 16); + poseStack.popPose(); + + + double height = mobileVehicle.position().distanceTo((Vec3.atLowerCornerOf(mobileVehicle.level().clip(new ClipContext(mobileVehicle.position(), mobileVehicle.position().add(new Vec3(0, -1, 0).scale(100)), + ClipContext.Block.OUTLINE, ClipContext.Fluid.ANY, mobileVehicle)).getBlockPos()))); + double blockInWay = mobileVehicle.position().distanceTo((Vec3.atLowerCornerOf(mobileVehicle.level().clip(new ClipContext(mobileVehicle.position(), mobileVehicle.position().add(new Vec3(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y + 0.06, mobileVehicle.getDeltaMovement().z).normalize().scale(100)), + ClipContext.Block.OUTLINE, ClipContext.Fluid.ANY, mobileVehicle)).getBlockPos()))); + + + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(lerpVy * 20, "m/s")), (int) x + 146, (int) y, 0x66FF00, false); + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(mobileVehicle.getY())), (int) x + 104, (int) y, 0x66FF00, false); + preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/speed_frame.png"), x - 144, y, 0, 0, 50, 18, 50, 18); + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal(FormatTool.format0D(mobileVehicle.getDeltaMovement().dot(mobileVehicle.getViewVector(1)) * 72, "km/h")), (int) x - 140, (int) y, 0x66FF00, false); // if (mobileVehicle instanceof Ah6Entity ah6Entity) { // if (weaponVehicle.getWeaponIndex(0) == 0) { @@ -127,52 +136,63 @@ public class AircraftOverlay implements LayeredDraw.Layer { // } // } - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("FLARE " + aircraftEntity.getDecoy()), screenWidth / 2 - 160, screenHeight / 2 - 50, 0x66FF00, false); + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("FLARE " + aircraftEntity.getDecoy()), (int) x - 160, (int) y - 50, 0x66FF00, false); - if (lerpVy * 20 < -24) { - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("SINK RATE,PULL UP!"), - screenWidth / 2 - 53, screenHeight / 2 + 24, -65536, false); - } else if (((lerpVy * 20 < -10 || (lerpVy * 20 < -1 && length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 100)) && height < 36) - || (length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 40 && blockInWay < 72)) { - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("TERRAIN TERRAIN"), - screenWidth / 2 - 42, screenHeight / 2 + 24, -65536, false); + if (lerpVy * 20 < -24) { + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("SINK RATE,PULL UP!"), + (int) x - 53, (int) y + 24, -65536, false); + } else if (((lerpVy * 20 < -10 || (lerpVy * 20 < -1 && length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 100)) && height < 36) + || (length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y, mobileVehicle.getDeltaMovement().z) * 72 > 40 && blockInWay < 72)) { + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("TERRAIN TERRAIN"), + (int) x - 42, (int) y + 24, -65536, false); + } + + if (mobileVehicle.getEnergy() < 0.02 * mobileVehicle.getMaxEnergy()) { + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("NO POWER!"), + (int) x - 144, (int) y + 14, -65536, false); + } else if (mobileVehicle.getEnergy() < 0.2 * mobileVehicle.getMaxEnergy()) { + guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("LOW POWER"), + (int) x - 144, (int) y + 14, 0xFF6B00, false); + } + + //角度 + poseStack.pushPose(); + + RenderSystem.disableDepthTest(); + RenderSystem.depthMask(false); + RenderSystem.enableBlend(); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); + RenderSystem.setShaderColor(1, 1, 1, 1); + + poseStack.rotateAround(Axis.ZP.rotationDegrees(-aircraftEntity.getRotZ(partialTick)), x, y, 0); + float pitch = aircraftEntity.getRotX(partialTick); + preciseBlit(guiGraphics, Mod.loc("textures/screens/aircraft/hud_line.png"), x - 128 + diffY, y - 512 - 5.475f * pitch, 0, 0, 256, 1024, 256, 1024); + preciseBlit(guiGraphics, Mod.loc("textures/screens/aircraft/hud_line2.png"), x - 128 + diffY, y - 512 - 5.475f * pitch + diffX, 0, 0, 256, 1024, 256, 1024); + poseStack.popPose(); } - - if (mobileVehicle.getEnergy() < 0.02 * mobileVehicle.getMaxEnergy()) { - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("NO POWER!"), - screenWidth / 2 - 144, screenHeight / 2 + 14, -65536, false); - } else if (mobileVehicle.getEnergy() < 0.2 * mobileVehicle.getMaxEnergy()) { - guiGraphics.drawString(Minecraft.getInstance().font, Component.literal("LOW POWER"), - screenWidth / 2 - 144, screenHeight / 2 + 14, 0xFF6B00, false); - } - } - Matrix4f transform = getVehicleTransform(mobileVehicle, partialTick); - float x0 = 0f; - float y0 = 0.65f; - float z0 = 0.8f; - - Vector4f worldPosition = transformPosition(transform, x0, y0, z0); - - float fovAdjust2 = (float) (Minecraft.getInstance().options.fov().get() / 30) - 1; - double zoom = 0.96 * 3 + 0.06 * fovAdjust2; - - Vec3 pos = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z).add(mobileVehicle.getViewVector(partialTick).scale(192)); - Vec3 lookAngle = player.getLookAngle().normalize().scale(pos.distanceTo(cameraPos) * (1 - 1.0 / zoom)); - - var cPos = cameraPos.add(lookAngle); - - Vec3 p = RenderHelper.worldToScreen(new Vec3(worldPosition.x, worldPosition.y, worldPosition.z).add(mobileVehicle.getViewVector(partialTick).scale(192)), ClientEventHandler.zoomVehicle ? cPos : cameraPos); - - if (p != null) { + // 准星 + if (pCross != null) { poseStack.pushPose(); - float x = (float) p.x; - float y = (float) p.y; + float x = (float) pCross.x; + float y = (float) pCross.y; if (mc.options.getCameraType() == CameraType.FIRST_PERSON) { - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/crosshair_ind.png"), x - 8, y - 8, 0, 0, 16, 16, 16, 16); + + RenderSystem.disableDepthTest(); + RenderSystem.depthMask(false); + RenderSystem.enableBlend(); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); + RenderSystem.setShaderColor(1, 1, 1, 1); + + preciseBlit(guiGraphics, Mod.loc("textures/screens/aircraft/hud_base2.png"), x - 96 + diffX, y - 96 + diffY, 0, 0, 192, 192, 192, 192); + + preciseBlit(guiGraphics, Mod.loc("textures/screens/aircraft/crosshair_ind.png"), x - 16, y - 16, 0, 0, 32, 32, 32, 32); renderKillIndicator(guiGraphics, x - 7.5f + (float) (2 * (Math.random() - 0.5f)), y - 7.5f + (float) (2 * (Math.random() - 0.5f))); + } else if (mc.options.getCameraType() == CameraType.THIRD_PERSON_BACK) { poseStack.pushPose(); poseStack.rotateAround(Axis.ZP.rotationDegrees(aircraftEntity.getRotZ(partialTick)), x, y, 0); @@ -210,26 +230,6 @@ public class AircraftOverlay implements LayeredDraw.Layer { VehicleHudOverlay.renderKillIndicator3P(guiGraphics, posX, posY); } - private static void renderDriverAngle(GuiGraphics guiGraphics, Player player, Entity heli, float k, float l, float i, float j, float ticks) { - float diffY = Mth.wrapDegrees(Mth.lerp(ticks, player.yHeadRotO, player.getYHeadRot()) - Mth.lerp(ticks, heli.yRotO, heli.getYRot())) * 0.35f; - float diffX = Mth.wrapDegrees(Mth.lerp(ticks, player.xRotO, player.getXRot()) - Mth.lerp(ticks, heli.xRotO, heli.getXRot())) * 0.072f; - - preciseBlit(guiGraphics, Mod.loc("textures/screens/helicopter/heli_driver_angle.png"), k + diffY, l + diffX, 0, 0.0F, i, j, i, j); - } - - public static Matrix4f getVehicleTransform(VehicleEntity vehicle, float partialTicks) { - Matrix4f transform = new Matrix4f(); - transform.translate((float) Mth.lerp(partialTicks, vehicle.xo, vehicle.getX()), (float) Mth.lerp(partialTicks, vehicle.yo + 1.45, vehicle.getY() + 1.45), (float) Mth.lerp(partialTicks, vehicle.zo, vehicle.getZ())); - transform.rotate(Axis.YP.rotationDegrees(-vehicle.getYRot())); - transform.rotate(Axis.XP.rotationDegrees(vehicle.getXRot())); - transform.rotate(Axis.ZP.rotationDegrees(vehicle.getRoll())); - return transform; - } - - public static Vector4f transformPosition(Matrix4f transform, float x, float y, float z) { - return transform.transform(new Vector4f(x, y, z, 1)); - } - public static double length(double x, double y, double z) { return Math.sqrt(x * x + y * y + z * z); } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java index 54280463a..25e602729 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java @@ -22,7 +22,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; @@ -198,8 +197,11 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity } } } - - this.terrainCompact(4f, 4f); + if (onGround()) { + this.terrainCompact(4f, 4f); + } else { + this.setZRot(this.roll * 0.99f); + } this.refreshDimensions(); } @@ -254,14 +256,14 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity } if (backInputDown) { - this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.002f, onGround() ? -0.04f : 0.01f)); + this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.002f, onGround() ? -0.005f : 0.01f)); } if (!onGround()) { if (rightInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.2f); + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.3f); } else if (this.leftInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.2f); + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.3f); } } else { // 刹车 @@ -277,7 +279,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity float roll = Mth.abs(Mth.clamp(getRoll() / 60, -1.5f, 1.5f)); float addY = Mth.clamp(Math.max((this.onGround() ? 0.1f : 0.2f) * (float) Math.max(getDeltaMovement().dot(getViewVector(1)), 0.05), 0f) * diffY - 0.5f * this.entityData.get(DELTA_ROT), -1.5f * (roll + 1), 1.5f * (roll + 1)); - float addX = Mth.clamp(Math.min((float) Math.max(getDeltaMovement().dot(getViewVector(1)) - 0.2, 0.02), 0.5f) * diffX, -1.3f, 1.3f); + float addX = Mth.clamp(Math.min((float) Math.max(getDeltaMovement().dot(getViewVector(1)) - 0.17, 0.02), 0.5f) * diffX, -1.8f, 1.8f); float addZ = this.entityData.get(DELTA_ROT) - (this.onGround() ? 0 : 0.01f) * diffY * (float) getDeltaMovement().dot(getViewVector(1)); float i = getXRot() / 90; @@ -318,8 +320,6 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity } else { entityData.set(GEAR_ROT, Math.max(entityData.get(GEAR_ROT) - 5, 0)); } - - player.displayClientMessage(Component.literal("speed: " + FormatTool.format2D(getDeltaMovement().dot(getViewVector(1)) * 72)), true); } this.entityData.set(POWER, this.entityData.get(POWER) * 0.99f); @@ -515,6 +515,23 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity return true; } + @Override + public Vec3 shootPos(float tickDelta) { + Matrix4f transform = getVehicleTransform(tickDelta); + Vector4f worldPosition; + if (getWeaponIndex(0) == 0) { + worldPosition = transformPosition(transform, 0.1321625f, -0.56446875f, 7.85210625f); + } else { + worldPosition = transformPosition(transform, 0f, -1.76f, 1.87f); + } + return new Vec3(worldPosition.x, worldPosition.y, worldPosition.z); + } + + @Override + public Vec3 shootVec(float tickDelta) { + return new Vec3(getViewVector(tickDelta).x, getViewVector(tickDelta).y - 0.08, getViewVector(tickDelta).z); + } + @Override public void vehicleShoot(Player player, int type) { Matrix4f transform = getVehicleTransform(1); @@ -530,7 +547,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity var entityToSpawn = ((SmallCannonShellWeapon) getWeapon(0)).create(player); entityToSpawn.setPos(worldPosition.x, worldPosition.y, worldPosition.z); - entityToSpawn.shoot(getLookAngle().x, getLookAngle().y - 0.01, getLookAngle().z, 20, 0.5f); + entityToSpawn.shoot(getLookAngle().x, getLookAngle().y - 0.062, getLookAngle().z, 20, 0.5f); level().addFreshEntity(entityToSpawn); sendParticle((ServerLevel) this.level(), ParticleTypes.LARGE_SMOKE, worldPosition.x, worldPosition.y, worldPosition.z, 1, 0, 0, 0, 0, false); @@ -589,7 +606,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity shootAngle = new Vec3(worldPosition.x, worldPosition.y, worldPosition.z).vectorTo(new Vec3(worldPosition2.x, worldPosition2.y, worldPosition2.z)).normalize(); heliRocketEntity.setPos(worldPosition.x, worldPosition.y, worldPosition.z); - heliRocketEntity.shoot(shootAngle.x, shootAngle.y - 0.01, shootAngle.z, 8, 0.5f); + heliRocketEntity.shoot(shootAngle.x, shootAngle.y - 0.07, shootAngle.z, 8, 0.5f); player.level().addFreshEntity(heliRocketEntity); this.level().playSound(null, BlockPos.containing(new Vec3(worldPosition.x, worldPosition.y, worldPosition.z)), ModSounds.HELICOPTER_ROCKET_FIRE_3P.get(), SoundSource.PLAYERS, 5, 1); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/AircraftEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/AircraftEntity.java index acebe6298..91e9e3781 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/AircraftEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/AircraftEntity.java @@ -1,5 +1,9 @@ package com.atsuishio.superbwarfare.entity.vehicle.base; -public interface AircraftEntity extends AirEntity { +import net.minecraft.world.phys.Vec3; +public interface AircraftEntity extends AirEntity { + Vec3 shootPos(float tickDelta); + + Vec3 shootVec(float tickDelta); } diff --git a/src/main/resources/assets/superbwarfare/textures/screens/aircraft/crosshair_ind.png b/src/main/resources/assets/superbwarfare/textures/screens/aircraft/crosshair_ind.png new file mode 100644 index 0000000000000000000000000000000000000000..1a1458cfab0fe4f178fccfdc54259166cf874c06 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAP_W+9 z#WAE}&fD7?1)CiNSPoXRdIxxYOVwm(>^k^@uVHqSaM#QW8`I^h%Wi(q>bGxXeAO@u z69WxmV948cu5Mo4`pEG9`uzW&Blmyu;sJ^_NdHWJ!pIZAegzx03$PN>nPlh|12VwV L)z4*}Q$iB}Tq;D7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base.png b/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base.png new file mode 100644 index 0000000000000000000000000000000000000000..901400713089f3b279edda7d3251739a6b5bdd68 GIT binary patch literal 3376 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 G%l#9rh98Xp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base2.png b/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_base2.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9428a10b929797ae28263186f40df90e236c02 GIT binary patch literal 7313 zcmeHsc~Dc?*6#sDTM)R;%Gk;YG$H|+K?Ymf3&#*>i4#KzhzK&u5E&$Z+6}j_fO4XQ z8I;Mi$UI0u25F^_ASfUR2oX7`3;~TK7((D}`gVQw>eZ`yufD&(R3#^=z1P}nuX+9Q z+s_WR^0G>@5Cq91c0V~mkTm!z4Slx(JQgDRm%wAwB|GOZ2$I{j_LhP&vv)&~%2DK} zA5TVR^G2^!c%NcueV(5ymbz+EDPx?Ozwg@d-FKgDHGaRFzCHQh|Jp-;ezI_U4!i!X zb+1>($?Xr&s&FICy_#V}qhigBKkbdIxBiiomh#KLPH$G)5VQBkbNzOGA-JdMC}VKB zQaE{8S&fm^95Kr1{z!RUyOez;c(Gnw8YT=be=Ky_1jPHF*MCm~N$!IdPzC41afKPw zmS7$dIh~2VHRDdEBvi(qsw<;I9&|dEia0p(o5u&I+QV8mpMY9tomu!TD>e14c{2K8 zO;b`H8?+(l|La4wADqSqr}0n?G{8PIK0EbuF}&h%fhrCYP4 z+O~fpnGm94P$tvzAoc}O%f)S(mfvFu{aadyqgpgBnFE&K}7di~aSTyeVQwWi6F-Cm z+3{b)gIc0zpWoJv&y0|&s$n@f#5pfq4&%_V1fsc-z@V)dRwU^X)w1wMaL4AJKzr2_ z-^P1xQro#-hG3RvLqP8&P2o-4`b&p_sPfaK6vrxaEQ7sqT>eT-13Z+AXCc-soQag} z#{^%gmrIY-9d-J+#gc$kqn75FhSQBiD;vt?;*@_h*6hm-y95SRLWtrDD74!kvA$E(8S-og;n@bwc}?O=fh3C%H0hN2Y)HLyWqa zP4N}U*Q6s(K!=YqumspgD=KjMXYtZFNsiqFw6gjQC4q?b?dY@^dO_qy zH(F@u^rvT2?5C~oeR_DviY1n%MGf-Zu6O~JhEAWL@hQkyZuDqO$UbfgdzP#nLsP)xI7YjknVYpDCq5|MY^-XMUm~1`hx9H#kB;(l||V6pg?jOjj_Ul?K#UA zI|KX?8vi*QOy;K_kl0X}I4kM9*5^M%t+Knzz62wxAKWb`T8NmkCe?btV8msBWvPc9 zVp{GcX-J=ehXPU{m9w&tS^S6NCgIqxNcZu_5piFVR*jiN^+2VdpO(;%TB4kO!3Ivh zu?!Ijoh$6@P8;%Y`2l(d?MbMN)5ESOmIOJ3t`v5v*OH8b7+8;1lr372P!fdb7O&Vg zp43;}4qdVl5NtI?)o_m;!;xnfIhc+TPE5hY3hjQDN)D%^RhykhttUiD3OkRHueaF&pR(z? zqcZ$jCLou!WX&-a3>a@L*kQ7r+LFW3K7mkmza$|n9@zTl50FPjf~(m27QUCgF(2rL z^r11pKP%w!0wD{H(Z~8IHXY4bcu~-vUl=7&y!R(ktS**C@%c7y$1g@$5w&FF#wGMC zx_o;2ZF~+gW-!Hf4WzW00lw-2g1Q6$N&n&tGUBd36&g5la)F=)Hyogk;3%%ANp*i~ zvZItC3q4X~U?ZBpc|?NdGNhroV>JFB zaGu@c`nU*`n;jk%HgfVUvl+hzx1@0%@^z71t114|I<`lk6Vz(;iR3`yufT}}(T`|e zR(Mn#*vx9iyWmwTY#sVG74Je=og>B9YHg*UhyuN+Q`0Uh%4h(|in)Ab<7%1{=?Wb)np9$dirm0@8EA8Y;i?=( zab++K=XOU7y)xUm*yo1rrSe6vR^d*mk4l>$83=Be$y_C{+t+sCQ6t?B$(~ss9#C$? zQxW$-2dLUXsahWKVNB15){Sb(|DeZ0sKQaNFWGY%c#A=0scESR!1PZVs6AR#f(UVOKw) zd8g(L8BB%J(L54EqHemdF=5|u zsSl7oWeLqY&d2)qtg^_QW%~&`qXCv%8ZKf-Y*+>b;7+ne+wc0)tzGFl=0?~?Ad4w4 z$!Y>Q&c6qn771@CF4X3=_ER8zLk@l&QA5w$qPyIBy(1>i^5muJ6?X?|V>*Jk2w*WcnHKUM;1Eqm_2v5tlP^g^lA`2C}(D>?1OAWg3qJT*p zQL;TJue{VTLlJixCakQZU<9ampkm$IdditAjefn8?1zR26&RQg3JQsCBdR`f&d09! z))uJvG|MeL`ZG5bpG=<6C+a!!Ockx~3pLU$z!6R~emd+Uuc((D-oW-&d*=N~@5aWJ z>Lt|6<-^rG`H+VTHJek>`9cm8J#5#vju?my3-hxX?ln_Txdh0&E8fnt+1nbrTkexC zs{FPkI+$nru|!xvNsN`D9F=M{igxtlHpli(-gHUyY)V)OWBA2IJ5HFbRmSxF3@i-I zPLCcC4nGS?S13n#j#@&(YBPPe+0WY{`>cqfv9ajU!cJS)M9*d5{Eneizm{kpK;8NS zl&;inJiN`RXJG85nL^)WQ-3V|S_5P+Cj<52JT_x#2IOLY)r6^oQ~Wc|nR1_n&qChC z{|xExND$ZLWk;t8m4PyH#q)=sEX`-3mfPm54efqRG(Uumv;FI{ieCI%yEcwz#|zF< z?zk#G2JRm@`qCYUASp)D{l3=5Q4dZUb7EB*Y3O{jrNP$rG)yz&S6M?;ch(A-9!^`d>EJcz^fE zW;>L0nid*^CK8>cA(D2*MgQJf_?_+_paGNt1Wj${uf){{9gcj>z?bbv5Gf*eQH z-x;s*I|1om@KJc^9d~j3`CW!*-}Z_;zzw)XK5Sdk{j9kVh}QT1-eJW#Qpy^;>(cR+ zOBpc8e%xB4y>h2t9O0+JjZQYUv=DW!f`7`|vf@$kq%QTcDfx*#=f1EpSV56CWFR-I zCsqo=#L`A6#J%lvF}; zAdjMSaoHou&C5HdbD%~voEqvfV_Bgh3qAW3byWO9m%1}k)3ca*Qq0wDKU%-eVE@_* z`>42~SUZ2|{Yz{1McK2O;P8b%?@G@1ZU31O&L688x`P@*YWsuKiZfSP`dsWI3lUV5qa7Dx`P z@anG|me6kuHIJGp%w7y}eMb)?BpQ>Y#dcDy=>hhM zCTxi(nwRN`+N_tmjv#g25e;6yR=15hK`-rDmiw_OL}92y-8|Hngy!g^ZW4AJ3H`WK zl<0GwyL0{UD}ws*&{5f^*RB*n`9<59%LB2?ZrXGn{p_{@LgQlOx38VwUMb&$^0$OR zyNiAWNy-07kR)}Bf%IY0ARI*zO18EhWiFSDFOL2jz9y;miCdmH@KEkj@a4khjrp5o zpcl9CXG9TmR&3YrSiBP&U0O11oSzVTo+>SOJ*l_U37_G$-_*T*en$4#HE|)7pW!L| zYF++mkfm~PxsF8r$DcnP9{2@SY3le#>mX=T19ol@rkX=Z7>_;ZGDtA53EBCmlY>{B zEx48nf&&^|3J;)#?l?V;S0wHLNt}At1wX%Xq8W7h%TSoZX znxTMm2sm+|WUj4AzP%)#9lBWwa*@dmQmNXgk<2Xb;L$5S|K$>qf=V)_bu2}BcqFSh z-g|8$S7~@+PSEH<*A;fm1AqC;DVhyxI*itQrwOJr{-*wL2bFO{+o5sLF_$+<6ASaC4T_9mdEy zXsypEFqo>+r5Dp#xOVcyVbn6%H{wNvsH7P2*aJNE)%y)cdi*k_fB(4oAt8Rxj|=N1U{zbH~gSs(B0jv5)AzlXu79eI?h=8Ib|^g7pabseDPJl*Qn6+m#DAnJqJq(>F$>oUIrbf|wKuTXg@bc~{l@S&b&%S9kQWEDzDY#YOn7 zUO(Xk>H9H>rkWy`>3~_&I&ynbq?ccuc(}0Brbc0%n6y@97GGL3%5Ynd27iBX$5J0- zx3_aIX2{Ix0UOrea?8eraAG*7?DEkwT3#}93$AAk&wJDW8;%{LUM7gXj*siDl{N9x zyOOUW;-M_ft72ffn#i!}oo%*4LU{nFq=pL*G$`Vsze*cfs`X@gc*9=0Z5W-EF*9fm;g8x`gS?c+G%kx*90+OqHzRme|@56|?U_WlsiU9n&of6k!@5 zkhJYl$yRp2CkH3Y0G zRRVeJmtVX{GqAL**NZyeX_-W#g@&VHiHR)G+duYJJG%*VL<4h6Qn94zVV*G1$DBy! znbyy`?_clnJCNUH*I?~%96=y_2-?&z(9W%2LaUkC=y0%mSf%l5hLfh0fk2r4k4S$+ z&6w-$3cAh{VT3FW{tQ<3daq9D{tlv)!+NApS2UT*ZySg@+nBIYc@PUEh=vBDJP4qr ziUv@NW)yY$)?AYzkb4z=qJTBbElVC1ca;s%F8xYGWe0fIW{0FCn>NZx(wkNwhn_dlI9CE=kP7mdzYtZBv{25x)h zL<{|K+WRhwOS?)8NL^AMntx4y_uximQ%vuq1RV5y2{okbT6WIEHJC)bAeBw0?|?Dn zH7iCNn?RSp$NE4Zy)@hUpis|T8{@)JhfzI8j%70#0q8_2{Z0omb^kXh#QGJ>vMEIE zblYc(xP1b83js46*1Tr29qKAYsOs;AkU6_5ZOliECI?a~(S*Up-}?u}DR58jBW~WF zBFLi{^h*b^3}nupKY>_tSt`9IJ9IoFsjDWKV`29ix3_9UN`}m@LM!^t3PKYLT1*VS-jv~1)31^fyr7L{wAN(>6=C$VL z7BCEV1X6yyA`9&X6Jb4EPPVekzJ)7=Nk0oLJ3qm}=c~g%$AMN@-6TcE|C%%;)Su#u zkyvvQYh77bM5~#Apg52ER~ya70j%NIWUsc&yHLEkLDKpr3(~fAo&8>8c>Bj19K#Z4x@>Mxgjfb6hvQuzfwR#*PVcAR8cc3divv=2xe1w z@8t73%)>GXYBeBp+?-Kc%?L8_kTI6bz=q_#UL-Z+*~Er}f>kSosE28&E_+6St&*3l zY$jgMR7tf^`aA@er-zIF+2=vI4+0)tB$yKf)iZVdcO=9hrOp35E(I<2U1GK770u~z z2}7y)lS9m}+>s(9c~cqpQ@yHbO&av_griP!4;{6lGMrZ`RslQ{zd$Ir=U+k8EG_9_ z=vOdo+^7B?GDC9D!FfoEQZ9!;H_WpM+$mf9i!`K=UrkbQ$y<&^tI+^ED_2Q0ItX%2 z&BaGsrbxMYcm&f@QxG=Y4bP9}WM2tk<&fLkZm*$OpGYZ46@h+lnA3mc9S05u*EkD6 zFJ~IR37)s-|I*)6@@xOGbQ4F;+m{B)_R2C)Y5sUx+kbGfI4 znQc17|B@#17zQxY4tWjfU`IX}l;1OmF0ZU}Y`0f=wIR*xe^^cXaNCT?3vu{TytiFdk zw9Ji2c?ac?<{Z2iZZVw-^}3PWx)m_`k%4_-`}Ft}&xO}}-qh3ExqkI_^yo4`eUI~N z5tgb>PGA{+i)e0wQBX@Ax^=ro)uNOQyYcJjZO-xc1kgV?PX)9#Q=nF*L6+qYm>k+< z2>?B^bLQbk_Y2i70qimdHibog=nON)D>BFxbtUPlUDkAdLyaqQrP(T*gbTiJ4*7OS zEsZnvsuD>dg?4>@`>g*Oo@irpSw61Ahw0{mc7AAF?vz>zh7|N=prkH0ER~w`W1I_G z0?=obT#LAOxnq5kL9skh?Piz@FDRF@VNgS*B2y7 zwji-a*gB`4H}kxA?m}PEw6XZV0DX&%<2R5pBE|v$qH9~+)`}YvAIXe@Q>s1`d-JYY9EkR$Mh}fT2a?IhUvLhbX{uh#P>V^OS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line.png b/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line.png new file mode 100644 index 0000000000000000000000000000000000000000..0c1f9117c20eeab0ab847ce51b8c217d775f22c3 GIT binary patch literal 49161 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%0ALYiL9Y!$#qg1j z(aX>p!)!>8m1Fg{KRHos0;eggVXwS-|1Dwmz?hPV35~CqwUs%95ldn(386cY$NCcb z3-3Sb#7jPA+5YD@UeoYzd{rZI^ta|G8NH$Av5e-> zx+D)&r9q%MxJ`6O4=@Q!gQ(LE?>;MBh*Cvo9e?9-%J3&w4vGVZP=X{RMjJ(NrDp+b zR=-vjh?U1E70v#AtgQ?D*QvHA+c0nhRSqdqn*#e-b97tr4#1f3U~NT4M&#eT9!r?# zz&wccr_=r9>Na}f+9MNO{4;^%g~VjWJxi&ey;6q03ZiLN|L2T%fD-nO zk=36FsY>@AAu4EKOi+*yqS;6;04EX<5o{5lj^yGFHZGOrvCMno5S0owTL6+Ig7bt7 z%ZHv5AGzhKt#(4tLb1Xnnhb%Y0ZR2ri~4R(P$b(E>)LdPGRhx!8R=MQYWfy^PsR@< z+m)IT1FgN4X-v&WZmIVeva@zAoY>*Dz_9O)=JM2;vG3?5jJ9_eZ#HLZ^UNr*5v%CT zgn*HPAT2hC2P%oxx_}KgK@ls2(CMF0taa=Uz|L>tiw43;x*wzw+$v}5zYc=IJN>g6vyPjsAd|o9kl?haa!{`#nt~`*sK_ci|ZZhVMo2oSTFR4`dv=l?p2)|J?Xo zyoqXBUMt)8r=$w|?Hx$qm$Np<}uEw73@Nwvng5zLCj9AGu#vl}Dgei1^ig ztuCMAL{s$Rf1&uD*YO;z})KPoUetoMoF)Zd#UCn?@( zi;b7|Kq{sDdQH9!*7lLG6ibnjVEZ;>>?(d1s-)-9e7NuGc75idu`53w;`hBR*P1*g z`v}MWZ*i$wB6Q`VZaI$8O`bVQX7&6U2`eV$0(P{m_~3n&GWP5k+4og&qHIi52gE`G zpJ9zeja=~->(Jo6qvAmWcrHv$y!Rd-It{7v{$C3U%&M|-&xBy-~H8-_?B^? zvunX-e!%g3rsuAlzbJsVy&4>-$Vonx(>Dge1TR*k zm>pLXrNSL)mok`lc|F9FAG?-1v_@K(!x>&I;nZy1Rk^!|xqYqSZM|8Q^AI7M4Gzwx z50Y~bL_BbCs~s`uT^DVcy~!CRc&S`@mRGTNT`PVu%d~Bd*!sG~B;I7$fqBxe4kj~B_3DGV zpyr@`*W|q^$&sRIOTJ7mXx;ex_gzDQNg9N%J2?U>G@RW@7p(0a)M%PxvmmSZRVmGX zlrK7YOoz$iKn(fyEfPWO{QF+(uw)D}-nR69>(FS75cTxJyo(V1NEma%wNJ(5G;)Ox z0a$x242>Bsh=t>uKkdd1?k~UY1TP)2`DwX0o>Dtqwp+KA!omdvimi#Q=@SBtboK?u zLc+7@G7Th{rZGFsj=1CS^vr{rpi0d9S{zxYqS~Q)V88FPRf$@2o04nJpnB;D`jc$L z%YG+qNxv@E5Eredn=*`xCv+X8ClW6iJ8XImp#H}H$^x8Pzq2&}vAMg-En^MF1-NMU zg*PkSn8WEzj^6u;sTW9XI)qa0{_0q;HG0*WV4@wgKPEJZS)r5TF4nrfw*}_DNlpVy z+=qCKg;DthpWjCe?>{gytOMifS9pvdg4vZ%RMPchX7nk>%C%i{Giz{52Qj#j$#7lr zc_YtG<@=3D6^&1-;0(Zr!%9!7Xk9>4ls@{#x+5E)ffojteITEG92nZPwHsk8ijv;y znXlrmI#57L5$3|d$y*fqHSRdPN;?I%ZI++RaA1q=Zl#^%aB;H_j@^k z_qTuAI?3J3WfYg#3*Snc$17EHeCNC|D77QutWO-Of1ls(tJ&Ico68~;2agahZ=e+9;k=>eW@yqVMzD%a_qg^FM655RtA@6vdG|DfE?hK+2VFhwtwJlu zfi4X5vy$-a%_a~c5I3p*cm zm*LvsJG^DMAAkQPj4!2|W+9a|jkOL-oH8h)gSI7n`r<^y;Z_Ocu_pL_LS#@92c3hI$q!r3^lW*{eEJ0WIj z|D{wJk0Kk|29==|NKi=q0elu0R;vo|9{r848B)NXXawX%q^mW2|d30I@sSH`XSjo zZX zPJqSZASdjWIZ7d$IbsOd?(I%)Wo~TIsCv72TCXV)S4l)^msa zz&?`DG(~Bnu1zJM4WsHn2F!a{SGY_d=(2SBawe)7Am+7+SBYBKB$_wh#P6f>w4Rw~!+VBhgw8aK7XH(s&UwwCwB zX=2nOEu!bBwiUGe{hwv!Wgu=_`Q$lm6}E)6lAPRv2vl@TOn#^xB_l))BT3<$DUkg^ zxTvbao)_A8e`#SMx#KPENgYD{xFi&xCl7DlNr`orrRo5OI4JDR>!Vjfixg#^lYI*Y zX}a?C3bt^X6>8nHTyURs>eE=niR`}#rm+wM|(3Y9bL^6c6L>mPH1%xcK&?^!q4(z6;q6~6jxE- zkW&~Gqz&Od|3X9LsNg4e?q_!ds&oCTZ;Su>D%$*!z2}q~?G)O%nSd8ZiBzD9ZZ*Mb zcP+u6R0-yv-c?0OS~-$gyJ30Jc4bzlSB&q%%-1}WCj$3nszR^xqT7!R!7umj0@}`Z#|o-v^G0-82$kSCuU%Q)G+KukAWyCu zd?ZV2B(%!Z%FoSDN{N%E29gSeAlT(V2MLpADfv>%!=;Se`f3r){U7C8xvw+e$(`@R zlmMn|5nh~-M^OWC9jgjkPyONpsl7kFb9e)a68X&04@kisN{=Jbe5^nmal^bOv02dgoZ= zcV78L$EWY!h`%mFvSI%4?4Y*#{`Yb+g}Wt*FS9b9B{JDA?zo6Q%qd$4H!Q?KuDPGx znHmk)KZ*fza0eDCr|-~IAEVQL^o@=fP&s~6B3G@WwUA9o2^jFyY#OCmZS5{h|77d& z+D?OFBYWI}CT6Bg+XizO?4M8fHg9fkhAH3Q2-a1u{TQK3X7DaZT;;lPy6lwV%{yh_ zHbara!}lIP?Bf1@6O`_n$U-UPky7ZmCVYW}Oh9!aS*9?o&0@j0I>quSQGWP)!|qOT zSt^O;U;OPBq3TYO?$h0SFMrvNxppMcxd|GLw7#SZ*gzDw&fg@)j~~!Jz3qNtq_7vK zBr6#WbhKF(#c!b!;TYELv%S4p&qdfu->~C?5wA{%zvU^bwmt9Fj=C?aOuPexzE~mlHGijUUOklo zXs#wKG__0|cNofq_X*b_g;Ykgr*=(Y6_Z!eByD?ccg3q)CJ0JVY1*g5U`|Y#bMdw< zyQhtt>AGa3G?t*y=UZ0i8;VFZiKJ!-8W|mOVIQNbglUfWzp5g0+Gk}d@R4*<{6G-K zY|4%36~GI))prG@hd>2ToEV@C0@Yz32g5;~{{~DH7wND@T>Ns>Ww1|{cA0}_=iIVqBJ5+paGk~0!)LMu5pxd{z-`@HXa zzkBMQs`KwuojTtieo)z){d9wG0NGn|`CYlKtXAv>&CKmB z5ey}9?N8x0Uvn^#WA+PUq|}<43i}&%PQ^=s8LNYtzj-Rbq}BcMbyv@cKey|s;|d8l zI9!z3hs4!|8$C{)=S&6{%}g7(#{2nzUWg0C!I$uP!JBzh>Pc2;+ce+2dva=FztD?Q z@elu;4H=G6N;HQO@0RN(3NyG<0re%*2Lc<2;G8pu$;xuIgs+T?vK7zQ9`GWrbj*?c z$?HIgYpL!-PD3Ba+uW&CZU;!C)dg>)OvX{8%725kf6sswr{gKu-edULU!VUSEG77H z=k6M^e0DKh0=HeN&?#ALlq9JZU+0!(^<=<#Q>x4M?nkrrDEy9W=ux)Y5IxCXc9N-u z`3t!(u^?;++8at4hxG4g!Qu#t^Eu#u$6hqS+{nLt|0e&^Hsp?K5=8Pi+*`HVzsS6k za+YMrVSajhcsBsPdDVUi2hMf@r!k``V6$bs07~LTsGGM4F%)qvKA&jXIUDkJEOt~- zT8K7FNkM`frSQg7_C4(c(f8Qk`ddd>)6Nh?p}bL_s;bv(+>eS~t4v4OGRCP**b&dy zy;^@1vv-?J2P0B>^-GH?*__^f7pT1jCT`ftH92L=0v|DzawkVqq0&RUwsB0GzXt0= zM30A%Z&{LsY6*tn}-LicxudWj8(fJbI-~Zc<@ppz6ToBq$dnV zwckewq3%e^XS_NVeba8biu7KQs5Lkf1J&(0ltvzlPVFDe%UU?J2xmO$!d+x=%uKI3 zyche(gc>Y`*yDj=*k|`4r;)*PS+;_%>BwUGgcBuY3j@1X2LSw^y13@nyhpo@_9+JmvT$fSP&rK6O3`7Kg#4c?xeAI+cV3o&i6 zmpv~Ty`Fx4-M6fL%v(_(Mn8>w;VeZL`!TxA(};_rCpl7N_14onC;SRpe_kv-lop~J za6V;z^N4UoGAs&F&wsir`f`CSJwlIko=<>x)g{<~C@^c4z}o~kt3QygmC%|#+gkiw zWSx~7wYzn)4NriiuU%%n0QPn@)44YagkEWw^$|x?7NSDvF;)O=$q-rs7KjMNVV&_& z0G5Q-cg<#B16eow5A}Dd^ojTDjh&3$#mf$j%8>4(gh-3s-!ZoPJ;s@$Zwh=qc9H=q zs&ArS_}Cn$4cKBO1j-OGNh?<$2BI?R24F~H}izb=FHyXOF^b;4rzD~CHLX_)Ifhv z5@CE|Iw2{5R^j~ESTFN_YR}O^ixyi!vKK!I)(BOIW?{w@=4MLUC%bu|g|g$8bgQj4 zC6guI&tFRzklRa|3EfMI=h>3oXx5O})eh|nyfb|6wp&JS(U$IqiDHts5t@dJeX5lN?=YkKt&!zu+RV(Rh+1 zs_Nk^L*n&)sd9dhb&Ro~G=1$&->%9+LP^ijAjd=Q7!vUc(dZNM)0g29AB zt_k<6xyzj`u_LP4C3)WtBKYTFs0K72&%XCT6u6Uf3Fr)G?05s{x4f1mv!@B|bpq|Q z>4u@)18lK@;P6nk*egpmAF#d!=GOO@1m8&UD5H338SCxw@?wwY#8SdPr%CZ(#xwhV zLqqor1M!R&RSR{CKsT}zh0_-KtFMSEul)EEUoMh~(DrF~oSJNVvC1)jXjbZaVCr4B zp2s-bnxei7&Ts{KU|EU@lSm6K1%05D(33W6hoF``<7nM+_$qfu7}*jIPMwk{U1^eWgomDKxE)M5Vud~%mo10Q3TW2 zUkVzri-t%Dr_|JorM6|i?N3+*8fZ1|o1au~TMYITwty))x@MR+J79XGYdvW_h)sWC zTR)YXrsj+qy%t=fRfc|LIOPbAxhh}rYdY^M%z+;>*XJyl`Dne+K`GT|iCC zBB^sGI@K@l7Bl@&^KJ?rd(K`J_LtQs*aAKbdc~l${KrBNPL|`K>5^TWcK)n(M?(TA z1Rdl(5-@{;Pyi9OrEbuwhp_oxeI}mwD#9O}tEkcQtv_EgeJZtPc-h7CtM2Rlg8M6b zfdP_bysf8Gme|ucDMsaqQXpj%VBwi|$%uIqNZq}C*aR?VqIp*0A4D_xE-6RY;0Nx! zXea=F^Q%#tg+ezpE4@q81oKGW_yzccbvv4{|EH44Xi zYF0I_!Rt2-F!R?f=~Ppp*Sg2ga}hEPN#Zydl8M=y2Z)Ybgksc=scE&|#7gbXAdWfj zCXPC|x$5)MaHvS(-1RWsjarn_46%gj!~MVFu>S$GKxIMm)Gz@iJ_psOz7mKwr4Y-& zVZ4YR=~j;@D>31G0AzX13P2VPWN4Z4)f1inEe7TP6JXH~FYP?;`Inf4!<>s<4f zwyRoplH~^JgJvL;b_Xxl|L~(YWh4k)SzRw6UDryl6ssY!_|lt@u48GmF3JKga&dKKe>t-FOeIh!nJ-DhnfJf@Mb? zWIHFC)^6&iJ@{8{ptZRt_XHG`WCXQg5bo*UCyKhb#stOHb9M{!k_AQ;oUcl%hpAtBm3WBFlAvPU$}{t`q!M+;|)m?f!DeQ;NPvxy2lgOfXZ zsc2?o8dgy=-Tp0*x3LKDP0M+Dn6uT~$bCQEr#ozq+44_ov@WU-=>!J*YcD*A`+i~f z_GFZLTc6A?PX;t${jzK)-vzi;fMW=Jk9(+87tDxhXb*N;mTbB%>KCgdmB?>ZFar82 zVPq4ggi}@PA?0`R~8r^$e#}mTstTxbUQ)z0CSM<6y)1? z#0W{`ntX0^69~*HkohbxhgxDMe)umG`HUv6&p}z$ic<%!&!;(m0Zh%0-k|RnlX?bS zLE-UFC#G#ogxUW7GwSV$ej`UhW{ghZ>)@Gd*Z<$3Rt1z8;!U#4M-LOu5_mAguCEtQ zL;Wx-i6swlfD3%IxzU{Z*98Vca8K7yTtJ)OC19=L$t zC8?t}99OVx)QcsF{2K=c_&!wnM?BvxlSC!;?q9A0b4>)qVi9pzYoQ$S-0oQ5S6%Xx z!nXm8Tv$3?Wk6}IvsR+)g?O=U@Xsgz!?1sE=}P{g|0W9BPUK7Rmwb1>`j?)B|F~`= zACktUC{@ptvDG~f?mgoCKOsE*?+{AIrPR*BJ`4lwHT4e8ZK+U^>>%l6v1k9DsnAFB zJImv1rGI%}KOSE`^fQ!ALlV>9&rF-~Zwo*dGqyo$rT;{ra=T=nFyM&3=eoqjl2GV% z8%2mpMd%{z;5CkW;d82bGAd^pHP;#Nf0N~|spE=S&OZe@0n9lZd72ci8K-7K2QS9)| zZH)eIpVY%pBL)qE@9YllIr?*E>;L-Bo6j5qIKd3QSB5(Q_kgx6wM@`!oG;ui0i`OAU zz8HhL;GgJ{?Z;U$4(__}TWmV#O^eSu^JijQ{lWgts(rYIr;1<2N+FxSD9J6A?tiB} za)QqeHlK(I7XV%Y7V>hbS!AyEu9VS4aE zI2lAAPvWuZz{x9DhWnhjA13xJgQ^bP8A z5kDbjMGlJ;I zis*ZNu8!#z>L&+o#`(qUkq{%~I)_R%o@(&-53GM?cB5RMJL_0(jI>raS+f7jQxZdd zhxsKE#@O(#8NZ2j>0$GU+Vta~)Fm$*S>tXdNy7^GcBua3jrz6?vjP6*>59&C()dP{ zj~$24?XJ(fq1?%>EeXw5&so`reAt>MhG1Enm%Gg>Xsq6+DuwnLD38MOi4 z0q80p(QEnYr*7fVd$Z?+d|t1ELZ={Rw6szC%N$fciQd>o~>PjnK zn0D!0O?MLb%7hbq3xor`NyR<*R#rd~Vk9Bblr0I@EdjR_*Zw!RE|z|`!v8lpwZ!kuFsU1zQpzWyl>+8Pg~ol;ilul-1^gn zaIr3Y)w4F+{HNvf-ci97L1#K4L0MEUmdH^q%BkK&n016kGS8}094?;GE02{W*PkIQ z9tfJ)p!E&d!EziDNThr$>e4CUPG}#ntYNdL$6%b^%Nq7U+fuT|Eq8cUbblbwECFxi z9_>6uv`7*M__|nnl3inD$IEc5+VFxzF`DSSt!&~>cNc8&nOwIcDdlc)KJ6ps2L9mJ z+J#I09iz{?CULdu{alpv5fvfZ8XR#oKG31{!r#6X2LU9mp7gTg@zSFC+~Rs=S8p;X z-aqW-ONc9Iwk~3eJt0P{8~rPo$Ec%}qz>IDFefC1&v#o22i64OXC!_vWe5a8le-dv zdW)6#XP|(W;S2j-gImpzKud;W%dFqnVZif5ZPkDb$~tZ{x}#ef;4U6gdeQ5dLzOdl z`w~*dsi_yQ7~00}N%K)WHSBP=(0QnJ)vK6zO>%-yH|>dfSGJ( z;Xty1v*)O23cVt95JplXzv=MbZ(7n>k%@I|tYZtem*=$}IrX+MIYT>?#pkh3m5HPYa zWY{q5>tLcT8w%FnA(?2?%Y-j&`WkDq0$+ZVUDgeF7a{?kBsxBVqi2>HS!d|O&k#+<7w^&hTLOc(r`zL}gQ%7$R zROGl5s`RL|JsC$n3kl+OHG0!_gw_sf8mQPjV;1F>5er})C|V2w`+AT$*9WR`0UrM8 zcw>#{5auU@(?@(P+;Sr*>o04|9x?{@cn4*oRJBtlr1vs3#w4dFB+F`aHK|kVwvpdg zOIY=E3D;C+D$FA++Sn2_*4Gzc^HT&pH#s#w@(B=cvg1@|D9=C0xs{UsS_m|vMh5s1 zA1~m!J4`Ml*60};yJwkpIz32^v3%?jJ=P{EvHtY`mSkSc^lz@d^(*Ohs0*x<jpmHw-TtR9`qzh{WZsZ{7sqSIy5Of$hbDg5fI}x7 ze%Keuv4|qK7Q!zs9r3yoz74YUa$F#z(aG2o4Is6Z{RcZb{evBMj{agtFS&=xDc>&a ziGYLtF)%}LajNWK7%M^+MeT>|{xKO3B%@VJ}I(EO@e6Gd@&pd5+R2o^_q;R|$F(5)HCh(x)KDYBQKRAmR}Bd8K%oQop^v zrUp|gnV+(x9O4kbpbBAx1yf@B z)lt>{`ReBJ!Nm(ZdToscT{n-J+Y9R~gG4PDA^(ObRmZ+khY-}s`JN0yz!TEd{B_R< zVg{3LVe+#B8gaIF

^bev-CUwi>vw|0_*vVhDYEbWsDzcT~)Ku{RbTK#IeTWm#5D)U9q_M+y8QK;>2Hpx6Y}mdO}A>76r}0V3k43OJ$E+nNSV zhq`#+z3`J@=rhM9{N`DR)`$>_^kUglZjRt8>c`E21gaN^!0 z3>ETV z7&;h>Toi2&5p!q1X_=}6@|*}y`7;C93$ywxo4e$zl?#ztqrGNp(=p0 z?~yl@G)W+t3gln*(=BNJ{{!3{v#sc*`)|_SHf@(9NO6U8o31VM>|K`&@ ztJmaT#lGNUmXy{D&Xh``PT8J1J1-Cf(o^9y1 zL?9dVEjZJ#1a^=QF=e#d9~PmHU!_Jp-AG&5Z^7+KXf!4^&e=C3l1}n;I%>rY5kfam zUug>9R^LVs7Y>%~vEpKcX9aLu0*wSx$`vn+i)pWNULqb42dkHaj^ch1f86~1GEjVz zY?iSopHG?=H3;q`WCX|Sxi&IMPK0yVkbS*Y$_Ud_QhrjI@x|IgYq3Pn9H=?7TTK%J zoHKqE&*xt;SfMi$V!Y$G(4EZ4u7Ia2d3yBW&bYo0(H?#`4(0)-{M=r@XBIBK9xW|O zym=&Np4xpaik)_xtH)Bf7Jj$>m$nkemwWS%@M^76hbi|9pf%P}6Brq~t(2Z#MHzuR zVfIN1Kc|0C+O-4aWMXp_unK0KI~m-#vZI_kL2rzWA6zKtA8gKM*OT-PO1G(JIuWXH^_kY-Wuyc1+HuU5aUByij6 z;fIV68o^c>A`U~Cy;TOt{s~W!1+WM%Kk9oAjyx-VLip8-7yGA-iug1s+>ex$CQ7IO z<{4Zgk>}tx`lN6$XOBzw%8NHRDR|Wsb|PusS=t_efFf9u!!E}y4f|@`qJv+^G5($k zMOYrlcHPpd2zIc&r26KQV7uB?rl%6<9GzqErY6-+Rl$HSn0FzwFCXUnD$m%En$B6!lCr6H5`g>{R#`4$7StzPD)x3WM`|>=Lb%}pkifWWmt7<16|o@8MOO+(mFL1G z$NBX*k4t{sm3HR`(!|K@!<83e4zypFR)AvMm|rt!>w_$rTc3n~#YS*fbnw~b_hX~A zfY5|tg+0Qu$JI(E^);Nj170dY0ahKIA%vLRM2feGOG*h-7qSX+vjSr^iRnCR?Mq9F z1_n6A6CQHpDDCsAZy83el7zSyRoIWIo}@31hIb!|OIno6Eq(0akUV%OODU<@jTH(} z>zId(nh>h!x4pd=`u4Es5z@Y@BHZ|pd!jUnosT40!%vl_|lmx{V49F z1?1wQ==}Dc5V39+=sZyCt1BPzh@k{wPAt~+jkCw~SI>(Dxh(7M>A%Isv06Fu_Nkwy zOOckUxs9FS#t!N|(A_=`uWeaGN@#k-6i-`5YPcWnyneUbO7%jlX9v0@kq221k$Eha zF@q!npLu^oZsjXp+;oYb^TS&J4Fd5L_%2@r+6cAK!As%W{OcT|O3<6Bm zt9ts5UG%?eHb=LDA!rJ%=55l86jau7CAU&lPSJtu#Lg~R3dDE8l4V1yDxKexgRis1 zo(_1d``!8#*Oyiby{4c0-TyROeifwjqxH>@_S7Z88(U0xx`&S*kj_W_`B5)wow~oz zhHctri#An~G3ZsYaiA&VE>Mr(R!%HY?$OK#b*eu1tN;N*PiaX_QU{6cyAIX;7lB+fnj^M1BdVeBVnhJ|t81#JX??;Z6B*P=p^ zN3+g%;Xd2!1z3a??h>SKc;PF~#ZsH2CUn?F%1e{$z+B(-cjb zPqzvsn;B_K*n2(&d~M>K)|VRA^F-3~DmGQjwgD7qEiFT&iku-Wp#5YF&IY=^BeDZr zQ#!0u`u`<2PDzIMCbr(v5SexQQpr#^+awwgJd0D*`no^%>BEro_Xf8O>FZ0I#kqf} zi%7)ONiu3KF3Hn-|Bq^8f^?0x!IJqiZZeW=CDA|YA}W+sepq4y*--K0?W@qt8% z?;tqin6^J1049U4zmj^vH($Q??88iF23$$sdI6$fdIWXC5F(ljL9c6C|2j!;M4|E?{k zUum}BJNJSwnXC5`&*iobi$gfTh69e2dx$E8H|ke=3sF0uqbK<%2|2F|k4u-(t2BGC z(j`$r@aQFrNRn$)O6`x~J6&hwZX@|vynj=~rA%{pjr7@VxroPZA%wobpHR`ar*4Ua zjKr!asX5<{e<$I>yM5iveCp2yhpKw-p$@%Q6yDH& zP$X39z!!Qfu!2-RHx}!DG{=$z;B%m6=z)ER){b-9$1&BOzY#_YDAS!S1FvfAgks{o zSAMCZm=G3PwjDIHKYcqEzF*8ITGhJCknLtb0^aztj#V^|DioLNfb|NG@@fdnibQIu zkbAJ;()1tCXvDAL9K)C!%SBJG0f6euAvwM1=y3(fTgG!nFZe_syO$?&PUa#KpJlZKz za7vb4JF)=sGT`1cxzRi*-E~Y(O(O?cBH=tGGHD-3Lnyxdf0^VG=_=og-6y8*mXRRm z=r{9$#4VS(wlqhM)(>H6gOAHA`E$2m^Z(?KP0JM79D4htBo(t6QG=u22e^MP)v zwUDrh*wF`Kmru?^2tBc+p1Zk|)GRmqrc+b25mJ z{$+n<)%q@^Lo+ZQ;#u?0H^y959Hw!EJz$Yk#@O&85G?0%%y`X~$2_~_H?HUs9q=6}3zTWS3S58K7Z7FZ;ub4RH2 z*~wB9Z6gF2`1=RN+_xJsmAn^A+PwQ`ceE^BqmQvugE9Z$9cZgbY57zD+7qSJ7xS2m zbohtpCz+M{x(tf=FZdlomw6+b9gZ*lMc)4EWWbE>_AMaRfh8i_=6fYav(17N{NB?o zf2Ns34tE|bEiQLGt&ZY|n@MmCWrhci7raOc^J8@E_SqJ~%zK4MqALS|l9=)a?8>CD zZV>2&E%daN{+FD0s2<_nbm)>QA=>WH{ryx&AlL2>AuZffUDO`GC&0G*Q(sY|cMILd zl=9|pzcu1+mM1Or0Er|mgZIj~RkY?Ox;k(q#=|50o6L#!@MIrv)wRUF|KO#ZkG(f> z7ASPD+a7?n<=GH_K(BViSH`_2dVWcI&-`ZxEUIK;x7z{p4QSMj?O2t>zdv#CEiql1 z&VrX%5@+N-evQvRwHd)*@hLnR+eccL^yq7K)J?g#Cq(gAQaV%)I{&DgIA5jw)(ymW zDRG9S1(n}sv#lq_ru#>w>NGJu@a7MwYbky{5BeH6kO=*7f_PbYcApjZK>HYa8577* z5nOvsj}9ng?V`d_lK+iU_A@x_`rV1hjgSedQ1-g#t*h_Q%h+um*udVa%bkRrjIDj5 zvFx~ca`VXGy$sOX6Ho1(&{fv1JPqgvNLTvsu|7GHFm z4gV-w`qc%xzV9kZOe)R@A^pq|#jX-!#qncYdUDx#3w~0a(AW(SShLdY-Vd=!alI)& zCSMl1jdbn4S=Ark`VVD`)|udxyZK0Yk>VX`kWRR%$j+t_K_=wY6$LtGZFEl$gqx7x zZgs6s|6#W6JQtFl(9x;&`zasU8d5pGcL|(7e80BbcSqFqO)zJ0RzdQ}VE5I0tK}Z> z#z5Wf5|1|qTX^yJl+Bs{yy_0Z;l8%geAZ2pzU&NKC1;ItsuG4 zqpii(>_z|mfRXduCCT+F^~k$Lr}NvkZ?|y7DQ$}SZ+kVbNxyvH-nEtUIvsKoDrO`~ zFUqJoZZAu`qlCU0vfj&k%X;SoHH5?Kj+5SE&E<|)E|#502JQ-SAE}_c7!vxaNY4R< zb5`p3i>L3p-3v+f5J|YXSme&ZrB&-^VWMNm?bp#o!fVuOoAf6RbXC`0svM8#abi9* z2Nu($+E2F4J~|%IOG|L%nJRW)P!wIf9CR|_8ML4td@uV*^m>8$s%KcCW`cGF$Io*~ z1^PR=Ui-y4GmHMGrh7@^*4~wHx&EP=3%Iv$nWWjWK=KR zNhp(@prr%Z%NLD{?x~TL^QUq+JrBms9T4jFn{=IYwDl-^SI)yVf#v=s8rb~UQLC~d zI(EOAqR@iiZnP-Y_Ls7EfIaUw+*GUc^Ul49=eEK=AfHsXQ&rW)myNKp)!oQmTL0O^ zIWg*#2imXF-%RH|^PL?H1Y;b2eQ3Hzv%q@h_)9rf(Omxa4x=S;$33D?Pju7}ZOvgf z9$ZJ~JdwFtvHhMmRI?_LjNa*NQN?^KtxUhN%vJ>{?ig^TNkZYPRhc*$@Xg>gBweDZN>~%(- zLObKWBRI2lm}gtM{fE%M$Jgwsarli|W2n1GXkCBc?$&1;d!MZ#6;=qkc%A`=&k7GT zh@>x243TyFUem+3Q|A+~H*By$Mb!K7Ow(U8H^vhgDrfs!q1CF1SW)|3mydQfvc$4r zp-k}Y%fb2L8o3=;U#_FOuKV*}&pEv0JhUTcyy{=|B1gCebVNeQ3x?DtNmC!JHW-eN z<-T>bU-9PDTq{Alw-5eG&c>}ixT~^O4P8{$c{KcP!})35?6+cEmBMJZu`V3uO60&j z&I}$0%z3|OOVHvElP&wm#psZ=^wu(rnmQKd4tl=GHA0ep*m0!@ANzAuFhw(C zt!yZ>enn6r#g!QIj<1#I6M}6y1$BEu)ncSK zvE$Y{DT`n=b=-8Q3(Qm~+wj3AHp%lawf>qAwOd3wCj8*RCexVpkTnH5uz-Cw50!#Q z>)%T)Ou643f!Kz7A<{#KQx-VXV(H*E<%QU3$ZPl!e6xQqsZc1B;PzdM|7ZcY2CnD} zfZ=TLP*jtnSG2Xvec|5%Zu?zpp>PpD5l<26a555#Hk$J-A$RGWY>`lw;#g^Mv)uid-OkM$wRTO4soU_{w!2pb_%=pyqo z!b`yd2@QmNDUm*fpyUl25p$PvV61AYL%;#uS}TdRTmzmjzw13GjxO2nyPOI&&5G|k zm|bD6J+5>?WKWc+D{-#HQ3JlwE$#t@I5=b=BZu(t%gamwQi_1=(R-oORGg2L#)+zW zuZeP7JI6ittf&4tTeKDAj(QL`2eblnpeys1n>G1A;YDH6gzdP#hH^)H@_(E-_C=tA z1r96V=T`Y})7T$v4ns3g8g7h^+)?TTNDaJ16nM+vsVI7QS`?%9WX4g^Aa6;YE7&J` z*&lD$?Il?tj3{A}4dsO$%D2nl1Md!}bJB>2e)WEb$#hfJl z=mVjs#zre)KvzZfz{Cxccz@-VVFWISfwCvqR^PAvtKs$Vtj8;Q%%>MiV{|@yc6!iJ zB_UHk`Anf8HozFoQ}FQ>{ZZD&&v~sUd*2mRp?2iG0r-rz797*NbAUWK%i>It(u4b4 z-%MCGDdA>IuFU4Rqu3(2rfT#FZxVWe|FD z@vgp#-Bu;PyRKv6+|*{%Z4YuSRht_@f}K8`y~+^V{nl(Vi4hm$iXXDRF5r`MT2mDD z;F=!CgQ}U=lFp{moW9JqS|Y9xMLtFNkS~pP*YDykE{q0p^}1v}5qD zS>2?`z;=-JTQUR1ngE3dbrqFg%*e>@ztRmGEgt#e=^c4l5Kn^{vOeYf!aY9H+*ijm zN7XAq9(N-L+Q;MnL~@%ShZ*;ja_NBQPk@n1V6$#KUWej4vm3^wv^=ugT7m0Q0Zymp zuq1iRFV?!QhJ0NTU4hQ!p|W&&U-nD?`t5&q9L|XdZ**+wYY8RB`=d7?^dzDOfrQ1h zUA(24+ta-|O_25}^#~d6^T_1P0B7{;lpX(4X=N^8Gmy_t?lLDFfn8r`4Vma7!*A3J zU?E~oP**&+{$*+e_}4%%i|ZE=J!49l^d0GXyfP52p6T z_F3)2f}8UFNbA0>-9xyLP~0pF$=Zo)%IB&b>$Ht*&C3ZM&d)O3?9m1?#a&p+U_u@r z|7zR3Ac}b&^uUQMn9x_z#e(eGxBw=nsDqNS=RN4)W29LmozMAgKe=%%B5sR$PDv$d z)dOPCs9IcbsL2sme8!UBzcYw7_sDxdDXA@L>*c4Gi?S^cZ;Ma9$AhH5jh8U|y?&&~ z`j)>F-fxm`Ez>xuFs=8!Oz$ml%@t!&sESW?Z-{k&N{(_R%5O}AQ>qh0ZSg=Ux|AIe z)x{8BZnv_<4nzbHN78!p4V^0vXRqb|L|tZL8)Y)9_fk9e%&b}RjtNULjelm!=SPR= zjVt$`6~JyHGKX>js zfibvUrdvjmXSnzLhKekB*alUhB$Q!&kO$U^1Lc$<}*5D)q4cS+bU*OM4 z+TVM(pOe99(l0N;7nwxSo)V2BV~Y2EE2a9KlbEkwJ#;uXoi`&2tj}*L8gi_GyKqlm z*ARbPQWpET6m+n+u;2-#DT5WM961p zARlBY!wE9>)*~oOw2Wd*9v!cZeyl3YT2v#$(AVY3=xa*m%D=-harvXwo}S*d>DQfO zhB#MSu`h%%2c{G>!)l7Qgn+FIH(8Lx|EYv$!KJP5g!eJ~o>YEQ&I6lWRn$8i-38KA z6Vmq9tDE6((@(zfL@LJAe-`IWDoN^$<;%r{ld-e z{nuJ)rzo%1hoO@AQu>Gx7h(Kdw$BX)z#}D^mw99H({|t#gp3w$&$`>Amg!Va1T)NV zd%ah~SCjwe&hWR8Fd)V__TL9jS^)r@)t}fe5p%^pny;DH6#= ziyiJbhQ-F>sgPVlW|O#FmuU5TNHlHK(v0YeinVux=YW6ZPhkdOhlgQrTs|4sB}aHT zjj++5@5N^B?ZzHnX`)OXw4cSKjdEAWPFMq=-3mLDs&LDdZoH2LHS2b^H+q?!7tqYz zg)<|rQqr;JPp7u_L4@YF>TNvSPe=}tuGMfpGR{a1KdqENVvvzUm<4=Ry^(J*E2 zk`3ySLYrOR6hCdF^%BMq%kzxwyGsAJ2$=p?YW|6P_tpGiqLLz+I^D0#of9PhaGxZ~ zj2(JzULFa}rtq7%{M29iPdY%z4_hQ{w-jr5HF3$Yxx#CMrA8oCm_FDHfXp+q`tP95 z6`rD7acIwWiG!-(%M`e0@aawSk;LrYU%>H}q}7(eV;7MLwM$ zwg^E4uK;Q&0$>*UJKjEK&G(Wn0f?{^2>fr+!OES9N}i3u%1t z9Zd~?v)H(Q= zUMi#fdj0n7KHhi54*f)&Al^Q#@smVP1g`~!f9q9T%zv1jha-|%9!uE7gCs;9nijrX zZ^qHMf3^<^rky1iEbgv|#-OOMxw z2m{z76O5Sf(QH{DmXd#oT6! zr`Gr{p4wb^n&V+?3qrf7Hpp$9UabT_6}=kVQrWnwUI%G_r@>3$A@W}LYLA;>c2?m1 z%WBx6T(3*=4hqMgEsm*~;gkmo>TM||EDrC8L20$Z&n{*V31Al5JF;k6fu;W!@Hb?d z#xhSC!P8Gf_L=W2iXF-Z+;G?m>xR8&D{4yjyp3)w-)%7?HP-5WhN{`Juk=SWLmCh~ zzn*m>YngCKQ!g*0-*0?eJlw=;2hTkDwja#p=GfLfzBPh<3wPnIxnUef6Ib|Nzxrb! zm-ze?G%KCm@>Zfr@`?KD^iH?Xe^Ekw7P{}ou?FV{Ni|1@>F<%m#-Lgup&dK#&n&%Z zPZyhW9_Ayi4tw8QWxLQ0EWeIk+|brKR-GZY${S^;$BNi9ln`Ha_kmRv^iX%lH}*dk zHq*>CL3`*)`AdonvMEkf*TxBhVXeT5cZt_+i6vvAo>gsq=Ib8y-Yt9S<*OuvqyWU zNlatN)?c9r=K2rZ4{G+@V{thgaadIpanRlDm{G9OKxUggVT|%3;8#Vjz83b;)zs7l zJSlC_k?X1j-DW1vl;Z)p9Q5bm2#e1$J$G0eSB~9nzk5IE$p^)Hilcz92SaQ_1afO`!r;>=Fn(x zgaP7J$9=mdaDd186}`J|JuHg#=2ZB)lW_afL#GoN0aWvnpTU_)A;a-)+ z>|4BbM^s<|tShC7+`&JSY~pl79BQ_hAu%ymgQS=bjk{XbiyyCbBzliR$+8R5dQV__ zg4a?IH|kP+M>>}3@+rBScrNQuJMPlR@!GTKbNZVYOf}j2-K69Pv(w>Dh$jS1Rgq5E zp^?3-Fp^AB>hXq5oa}<~*df9K_APo+3dKRJN6df&OlWR1>=5&^AiWhA zbC>T+^yqccsMJ(Tmu=F5K|QtpWS_Xq`Qlf%^P|wW#TJ*2Yabb9KF4N!yy7ZgbK$x9 znd=m9KSp*db=<=8(16Q-;|$WJ%y_hmI3-33GxEhfQ!C-_61wl$_#C=waFnuA7Zxu6 z2jRHpLD2aqTd4GT8tUB?UeI>*=l!#KbepWP^C*;`Z6x*HFY^xs*I6E``qlkcL9veN z&&iFeq0C!$-VcsQB6EkpDpC>#wPq@X|B$7s(>0J97QY>=0%4{kW{0ZMfq&A-cKVu1 zbC#8V?LgD=beH*8qt}dK?j`J5o{?a6E7h@xZe-a+pP3R}_3as%>qZbUf3sgTCT&&fw_i^D%CoRa@dtsoP7AQK5?W)?G{V z&u*a=5&X|_jhmblT&`UwYq|RrKkkvT&4$Yby+=5WqnxzaUHW#6!6EM*xFfg>l%)n#xNR7^SNg2MQCtRtL|CNkTiYgfs z83(ZMOA>laCRO9i63rX#Ej>Hd$(tK(4@vZW;&;`O+r0FpPf>O=bx4(~NTOLQ*6p;I z-DKu9H>!$5E4nKQ)!?NQMqL+ty{b^unh!wtD5eU8HZ|&@9HZ{KhNp$;QoDOg7*9OD&n)i4*7r+NGZ%-GiS%Y9lEMGT+Sz%2&BTo z5N`*u*i|geEy_=`XmH3Nv0es%rLF?-yM|fSOpt0OG z;1LkIwBLUE7o&&FFIQoQwqt}wXwue0ED|x3Pp=bjBWjU-349-o)XK)Rkl|etPX*R* z%27w0pXZ>}cczIFil3cP(%8?bOVw?4t`RyHMR{?cTN$a%)DzcP&jzrBhc3TTW+-0J z|2ltv{#rPDTOxll(SR)xdFVl2E7xQElnxsGlO(?|x7MFaDAf6WFR2&y2@j1tPxlX> zlDk$?73zt`-(N-SN)F6iY5iEnfpNc#{{a~D{+_x`l7FQ9ZRhC4p)3q{u1o#Q6MYNw z{ix9*h}Y52R{_f8&!j@RyN(EfAb1ixbneN8Jb73aU`gCq_P({_{2odmdTyrW%CG;^ zHygPG3hJJ~(Oh*G*`5&`Me+N_FF!NP28GA9s|$6V(`JT~Nc#WCJ!;*va~`T?`#h+p z*nmevnPQ^<0um=2Rm={F4N;jQC#uI&STm>Dt^Mk4Zqzc}?QMDJsJ*9An3KB$%zaa# zE&TPz!zi1)r^luFkB_T;z#)=Ky_Ge%AMz!`OBt)#ZAF(JC1i|q%~_FsGYa>NA~zL{a&;++{@j!YZ+7slSbysW=+>SK zD0eh7QXu!UYtQCg^+xW701sQ9DyXTfKf8>|>WE2nrBT^WXi|nR_uc83a3JOlSOqoZ!Ixn~a7DZyLn?E_DSQ8ky*xRN<}D1O zCIp3-O=LnWMH=W7f7YBZWlGwD(?}0s+SL1>;8v!j^40A(+hf*AE@ar^d+sopK_x zalgTVP+;$fy3Z!FDAo91+9oK`8(Vvt2R)w4>e)_5=u!?bb4?W{w6oTsr)bv8XZCQw zZ^Y|d)_t-F!8nc7X**8F86nIa3vg-9uy?x(VrR>m@k0K;PZ~AwH*Z-7??$(s11^6$ z`CoI|@9}=e;i@Uz9It_f0&zXGGl}=F0Lf)-jg5jcg})&+`Q_wK4(J_LZFJ21kQF1r zj~6E^hFC&38M6BqHflUh`!{b%FRT|9Vit;`n;z*Xx*i%E`o?U8m`b1ZISK@)_8)vj zW`bjR^^LiccEg12b`pqzirY+ycS<-Oo-Xu4zGOY-33zZrbN zu5t*97rk_RFMa5Ddq#tNb*EdB+l z$*>GU`w#W#S?MU{5NEjl9g*WfjPj$^*>y}OC2wb+E0ZQ-(B}Hi8PD!j6rkGxEd~hg_SDG7x>91WtHO){hK1eZjzHV5!wb(FHao}3) zU+4Z*di~T4d4xew;tn&D?wONQi*{U<9$xl4x;|hlM+Npg&bqwIdl;OVl57TDOVhUB z${=JiOvvpp1R&fSqJvg@>hWq1k9QR**G-U!YT@)}!LlRMQg~9jos|yvkJ|~`03sey zRNy(2V)@Y1#Cj4NhO`CM@G9Y7)7`n*P|Doao=59$!R;GGTt39!mOw2ApMWwQKnL(RYrHy>L4K;t zVK!a*yS4KCK)RoPcs7(UJU!ObzPI*!WAvrJmkwOK;B&C*2eYe-!=vt6ic3{w7VW%_ z_8Bezoz}#(iI!wLDQ`TYe$1s^z>%>sN1^kN-y(xoUCEKBX>gp^zJ;DnJHVAY_Yu0a zV=qXMO0%@$duL36gzFP|_xf!@7GirmodS16sc(2A%MURIO~=T9gCNmPv7M0S0iVnP?M{VS&R<2;6|$-U;NSQ+ zli(HsK+j@uUb_ve+wqk?l09G?A^b(_^Kv+Wb#U}QabVwt9`fX2Tr1O=(H*d;@IH(% zdWmSu_7qQ60U@LXcgf|K%!uH0jOwXyw@3&w)TY%_Sumi}uF#mPa2P$+%V;x)ix+>9UKnk+z3FF6|Nd?|MW<4$-OE{qhcVurY2SPr-|`+jN2rrth1tD#dhp|NBq z$$RQGOA;zW|IM+jHlB!o1fY@d$m&-AdUTMUaa7yv?fR99XgngfK4$kE*o?WEWV-%N z`B7_d0@m?2T}Xn8uUFB5hMq1Q8>7w1;Y%8~kb!MYh+9%CRa(^8?(k_Kr_}Mc|2Rm_ zOVQ<_d6ca$p+MRz)y7ieNf6jlvy!L!(rhx$DU}MMfQ}7BG{Mma_l)q79cK5Pz}}#v z=jcFQqmL>Y^6EU~cp$)rL6GBs?BW~mGy+q$`Xl_W8PCj+-@zO9@48IaxA&9+(p9%b za;pMu=spJgl@e32L$lJwpMrHdCddMgiUmnfoFp#UeeWuh1XiC4vl2{^oidO3hvV7U?^UGLS(G>4A z;S_?3p=Fc;%Cl9D!!rDcJ!?Ic83`6s?r6%lgc%Z^TW~nWH*fCVtA26h1*iV3i@V*&X1$Y&5 zrTUvvmZH4q19L?ugnpNV_^?lBzHzG0EqjipscAuv6z(!H(__ovlM04&}^e%E=>+OG>s9KRHoB>yo9Drb zR=pclM{1e_Rui7~@2Q>;?rp2nmqt$zNweD7;YEN3>e_3hB?#I*G&a;YL8bD6r(c2C z+a;A}lEY9$QwU$|-{TLbppH8gbS3h}tpJs0EuLYwcsl9+W&=tw-K~-Lf&*9*R<3|- zVD(D$h_-uc_I$kXchQ!58~ziz?ZIH?&L!$(9X-ZiT(aJ0OgULeQ^y-jIBnXznc?UO z@&;)ARPl4V z+G>#sI0L%HcFgn}dW!wm#AMtb-rMu03CfY<_lr@9GVO#S z%19RDbNO92=wdXVIZZCZR3tgk>MPRRoNCuL0)6m6KLPwofc`X~PL*$s*&0MyCp=^H z{j%M$se^K`9knkDNJb2`WGUt^-X*&^Nktd-7#=_rEeWdK`M*M?JSSCSPOT`emtHf+ zB;4_hgtuSbe>UjJ(MVf^PhNy+kIf%7zzSQ#O?agEOm<+E8xfEnj=eyyMQ*PO465E~s|Is$xCxXEH zDXzuLE;iqF4Q8SLUqOQ2y3gIn;QQDOa36g{KsTj1CEH^Lt*A#D4T_!j1K?w!+!>F% zcXdLWLxW|*vnr+NTUm5zGx4wJ-IT%x;SUD&J01Yee^L%}Ctq(B-K=5Is*PX?@Xqw? zmmTk;R(JC(6wQ|%AZ@MBZv9wq@| zWS7K+=$dqTtfdK7ERauL7uvC!ij+rsbyZ;n;vV84*{1#ql7bz+{ianZv`{V;z7$ao z%!tfH`F6cD9B38xzv0DU46lbftF9ep3oBYnV%D&vMenJ3^z?*gHR7)ERsyC2H8!$I zJ^Zc$qRb{7W+U5rzxOx?H!TocQMfTbhAhfHJvXJKYQH2!2F|{zOC%;Qj3WHi9R0=% z$9LChV>ra}LC2UVhp$6e^93|3DMs!=?@SKztT6N_s=EEuy=^mp@*maY5PwF$Km3dd zW%~r@nk?b_Ie4tC8|jK`HaXl95btZexvFhT<4oHAA={d3 z^*Hrb>v>6tEsZn)RXoEM`Ma4@baKV63XPoMGvJ+4Q-C2WZLOYI7K=S%hHsX1!um`q zc^u z#fkYKGel0B`?A`Sa@DLG&xPbVXuGO*8EX}-$cC8ls%>$W$ef56aZU@j>|Kgk2QhuX z8Zzh(>(k{7YcY|#9$ZHUNzt{V{*9zGSpcmb8f*%l7kl19Yaud*zsDW7B=Ov2$#3o- zol;fgjA|F!(ok5M2a=~BylQSLVHp4?3;Izo;&*eOaQ3!6<+L(GQC^puiq6aeY2f3| zd8%KO92Hm-2*G>1_v55u2K=;v~L0NyB3Xe>KEEn#86xV?5!2&@qAmzIzR$F_4p84q_?h5k10-UGbb}i&#h{Y zIXz{_bvGnvDG3XRO!!`*oxdMPMLR9C;=4#GB_A`hq;&iXonnUh{3(m@x-(k*jy>Y- ziYii9&_hb?)B=d5ggYJ8koA#2?nr$~({X!p>$b_$z$xy~ZEBnivu1%+iPv9j%)^wU zojUIH>vv#kpzqcA_VzC?`i(H>%2)ncd$eOv!wF?uvJ{$b3*fG*%*k zM#r_(HP^Zh(kx6B zGuz$+0WBPM3+_tx&OOWGM{0}h-jnB}FYvQ+*Lg$^C&JG_~43 zsA6a^h))HUdjwHGBHN>dDo zxPp$TDj#;FHd7p{7nUPI$kwhCz9-ysMp?Tav$Q15p~KeG)vVQ&KmkQBABaPZshv1! zC^sV$fT-?_?>q1|9@4)wqeZoY80ec!VeXdg5GyE84yrpD1O_0&;olsj^LDSwnh~4e z*t&eKLhY(@W_q+5jfu#F{?Lwnz@f$~bP0UWOMNZO?ij_K@>u%0&@no7?y;Wn&Ws{Jn%jUrwoZw6itB*?+fNwW9Z5l7hpZ1DIQ{e^JSc+j@BX?m_QHi6;py<+=RaF8tjt%_nrCLXlU z*!CbzGRi>IyXTRpRlP=s$bEn5TUjx34Yy`>w zvbuUEAsF_DCikF-^_}h=mY&RCCo^9oTNep5J?o;sScWUzDm{Kj| zU?^W>8S7p{QvmY6eRkXVqODn4(H1&Mb*TKzUu|GJOoATPjn^-?^0P!x^b}bLnr081 z{%9zc^ppId6e-!z$x(DqEuH+d7Bnzz#iYHx^!fDsaG+)UEZuQ0cL2v$_>ySkKS@hh za$UbGr|hD@^Q-0875D!OFnWEp8=>fb1k6*7Ju(kmV0`K$ZzhN@+kN?j;7KvE4T`{I z)g2oEzPxsx#s%Z7stYB*`>&T4Y7Za~P9s`%5MAU(8 zoV*UIHqbm9)`&sA51p+W}q=)DL} z?LbXYucds6VNlO{FlWc4M9)ge;aO9c;Z}L|l4Mj;kZ44EL1Yk*M2B$44k@s6v1x+VlD_c&>Bt$%GQTlxM>^4ndJ z{`ewRF*~V*kPEA+e;PY3@xI}!*jusPX2J1k$<60Gttle+p&{G!PrlqS<14cN-7I~+ zR}Z_FI*g+?hd-l!C6`%NTZ3Zye5{`CHKykDtX4>Woq9ar0%|Ncuiwx~Tx_CV)O=y> z36+`_nuXfE7=9QQ9`tZ-@wT;#+5{ny@vld5W3}to;b9>VlfO1YN`r81@TXl&7j=#c z{!+}8D9zz1jlt=+_glqFTDN~2dzKbdgf5o|nya{}jr|n8t4Vi+0%cL(AqxkJKkA)B zn|>nA19oYspPyEqaVs8~#wfx(A>=i&7om_tw@Ow9@Px8@fuQbVV@*#F2V-M*sz6za5 z1GV)TK;qPdm}kCQU{XP7xM=lmPC$z}#VCEbD=8Z(8fhEx@7dhL6Xu&w13C~|1!HsL z`94n}f)EwjQo;?w=uXHYY^+1Q@T&#;$WNHu+)vqNPb|5G(#+lsu(h}sb^s+oU_v4F zK~aHsk=)l@pWw&)WpLVBiXb1!*_l&Zuefy`lGLR-5Ew0P zK`%zrNaahq&kMvCdxY0jVU$1{FYR5R0_(7qzn;+RPEv>WRE)401Q${{#8!8o#o{R3 zM}_7!PGwhe)o4jbFp<=|FG8+2uASl=9gj~i2mo1&TAcV#`J}lb;}84>=MLE=ks)ys zhqezCe_<%%>aGvl0z611*K0c3K!1^=ZgMZ$VW3RR6pc_-5^_@xeFz65aSD8lUD|a! z6$Xm$)^qY__DSg~<-DaOt6?j#$1f0!lK3T$6o;GZyPbkPM(=&@5zCxyOjCgIEv&3&VLw6%Ni&xiOkd6lP@cN+1e0A^NLU&3mV{0;q(4# z*;|LJT|&_m)J(37^GQE2h*uUABVrn`B=eQqz+XuRoR%{ZU#@)(Mf~GHFx=Vzo5^IEdQoKUUwW5c1JPmF$=ZABt7#LI-v`{<->DHl@6>DIwkzny zOaY|Zl`V1!KdI+RBDZoER|a=phcN(mpP4}iscma4lKwUbz|}-o`>i#*{BwOg2}br| zru8Rq0>yQ4Hu_9_MM~IsVO=}v)s1~&Wa#0v+mq2NuX+QC3ibUA*qSIrg~WyayFnrA zJ-aYqz>lqVSkd^+RDiAX5gti1eNOHu%`~l=^iG;&Z?~K8JJX<5y-05`sG68l!6lNm z=OBRh7Kh1c?~8vPz4fTwdDsKCJ18^s5DNfZcM2t#=Y;~p;+K60`n6)F-OBzzer`sT0Wi)WouYb zGPjk~M8lVzRxSh5&dj_KHjzzP6$fP`dl`{~fI!f(BJ&{ddeE`FZ6c$2>~mlFAF_M) zo8S>s*!g(S7?t#>-=JE*Gsyp|lREh&)O7veLwE0)R>>kZQvH`4uL4)=k0P8U-DF+x zhdD3BRWRXxIq6>co5vE0RQr4*@8&gP;#@$nSpD2(S$UOJrii?S>^Jr~PG>O1j633m z08^@9b4hydZ6sx3^ivCI{>7{D>MUgw&m5u`^jOAyA>=1Tc%^8Ew}mGGTBHGkc<0H! z!xz46pThoM;8$fWW(htJ)xR?f-k6Gx7G2WG#!kq+HaBtvoBREqlv}wNvYj7o3O)eL zTu!6UgH~L*cqNjY3%cE?GgmvEv(3@MgDI+=J;z*w#*8mlJGbxV7wg1Kw9_>5c48E} zVJtQkOc57CjyE)o)&s;wuUc3tCVh}MYHaCCO>DqyGo0SN(1!S)Z&Qs9pwT$DTZxQT

^nv)KgUBAHtH?RqRvYx|v3Fvva4Xw*ZSkP>=Gi_LCT&~PY++p8+y|E7 zLm%IQp7 zG{Fhttvq^tg*O`+qkNZpQl6$$0`|D7ESeBk30?O^>-p;?Lo+sdR znHX8;fg?zymBE8!MvKG7yFImJ8{V66HxT4O3M zab5~tHwOuPtdhR={v8U-#(o36$F`()Sj^^1*Kqz;_0gqbKXgFJv%=>9c`)GE@?L{3 z-k}?9cTc-Qy2pV1Trtt{mqnn`1=V%;30S#*Q#yN1celfJhYdNx)=&`6T;#k>hLXRU ztD4R5nin^C>#L94MktwndQW#6BblAK@kN%=Bq;}wa(4wmu#d-yyBT;5+a65TUeId|<;Jf`yd9-kZp zt%?L_%eygY9){AVOG2wV2j5Rb2DNFGA2bZv-$3?=43<{3q2$j#7PDM+uT}BZLq!S> z{gXyrgVlnT?iP`M<(-_<;oS8aF3cRka$8r*Nd6dLbV}ryJrd;|02%RK)U*#i)Ht-u zK!7J)ZEHY&j|zCNXOni%zaB%zr8#Z8CAC2}dLdFxX;)ss8Z10X(cNAeFnKZQFG}{x zn=%nU5kZTCjB(Qzz}RoQ(KT+)lFw!9>1+WztDT-p_hpt0P)wS|zQMhXgS!xrd6{|e z64I6_Eg;L&W52>yL{eM+EVc0O4+t20zu(>(&tUY#*3y(6U7YmpGCJwqwJNb}LHv%P z&hUnN&%x%?*) zZfwF4@iGx^tOaMszr{b8l*Qm0TS&bI#@9HRDr+BFHzx+Zowr%a@B8dt491=zH@{_} z%GsETs6IDh)g)vW3Xvx_Rx%Wvx;UR`>M8R)b7{QJJECQRNp5I8gt z`|F8{%7nl$08XDaqKT{{BXYjiRBRnBa@ zBm2nAnbs*ipKh`lQCI41N^CmoI9)HHHe>E$50Nb@HQ-k@3PoXxU%snn@C7Uzby1b( z#qNY2=fxC{-8gRTyW8i%G6PM(W#P+;V?3wP*Z=hus<>f@DKRi;)GD0~0^*IC3uIvr z2EXaY@d#2CyW&*=*9Q_C)@*kMXt8=~{)Q zX;bSvMcWEzT2m2vW_6AI{$(a^GOtSTKVM!@ILAI=Yd70MH%V`!D+-Ri2%4LxwoV5x zFc~^S{aQkGtJaqBT#`R+($|tLO*@=U0{qG#JD={wO+RJD*$jOZax|1gppgQR5>UHt znw&Xk9NbHiTW#fZ%wx(FIvF+#l;M-(J6Y+M=jv2O?L#1--Eo}=k; zpX-1(esp8i=GYb~TsCy0W$PKr^%d zEUk%p>GQHgZS?N_Jyp&wX-HBPTrnts8h5&<$GKdsNosR3NlD!7he;b){2XmZ^?k~m z(pbmGZ}mw8AGae#i*Q9bcOy@MF9D@PS>8;V|=T`5{<;Zm+&$ z{l#+FB<<;wsR7F(Z?^o~j6>j& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line2.png b/src/main/resources/assets/superbwarfare/textures/screens/aircraft/hud_line2.png new file mode 100644 index 0000000000000000000000000000000000000000..e060ca4919e5e50121ae4a326b8b1065f7e4660c GIT binary patch literal 5264 zcmeI0dr;C@6vwYj zk1Z9$+}WtWRm#RUN?U`rKCl!;!mwpm6CpD}78QQ`bN2uJzZuTVopa}&J9EDCIp_Rw z?~R1GXctF!M*x6J%!#N(01)sN36S=%OF-Uy3cHQDC(`l&aB^K=HlVi74S;PCF;T~o zFV|_OdZqY$FY%(WLl(2yAu_^s$Ns3u2kE;5`z2)oez)6=1wpT4);!W5T-TA+lt2C= z?8yA~*v9^`{hNt_)dx4F?hM$%Rp-WS;cVBA4v4B|d$L|)xJBGNw6R6GYOY%_S@ysZ ztY#%(C153BC153BCGhzWsCIc12jq=;r04t|{9P_eRE%SG1|Fmy@F%qNJki;)hTJJB zVQJ=bX#LHGx6SCutW+`27Z4b8HsxNe3OWLaXM6!5I271{u7P{ua$+GM^eG?7up7l6 zUfIHDUmTSa9f3Tco^0p~@wBCvM*|?dst4i^7uBeclPCbRUu*zcw-&(qgaq^&x(~e? z0qBFd>~I%*)|9#k6*8@q-$)6|F#ozzV)#vScBwaeGnMI8)ci3-L-~TB-z6TIWm-~j3C-`guN)SuJw}+mruuN$y!VZr~1xqqp zS%s$KYC~I(wytz25zaoyu=LU>YbuX<(?I0JLV)B^LkT`?JlSq-`e;1x`yn3?h%;0u zqXHT=D*nOZy*tt4qq3sBM(lXqm%{HH0q&;)v1(59+%ybHPLYNt&?-Iho!-*}hui@C zUc8mx;Jvb>+^M`c%j~-9E4gpd#V(xzPWJ%onj5dc@|A!?!sAHqoiGQGal`dCek=sI zt-i)v(4WmdsDQFOPd?7#ka~qp?P7YGqg&-IxZsrZ2HK%z)#xQElj#sY^Z>uQHL)wz z++IjwYUddtb9oohp^a5d&dWY5b%YJ*>!-M1fCQSwHy*1HarncoC9=`1h3F)_4^Li& zT~O+}r7ulWDQ3M=KD0Ly%4C#?MQ~vjpHRL=#Cg9{WaxD4`PkW{HgDg?;B+dJ(`?|_ z_LckZ^7Ln8oEEOAkrU|GWBq91_>U`>I;LwstqyF7P(IwmUb$SHW@C(8mq47tVWf(x zK>KNwjKNRB?6qkcbLzKaB=AvOY3-s&g~P26Fz$US5XPLQFad$@b1I?^C{ zHlmvF^pGP)0r5yvQ2r|@m$vqFz|u4Hm|H{2#$z)HUE6?gv(E%gfa0@fyv*aLD-8*T zXGBrwIyboMca|K{$K+oqDJr39$IKFC{pq@TRaSRkvAqzq+Frjl=~E z@}btIh71iVv@{UvinD@VHtPEA0_IY94y7a1MuH~j6E%1;FF8F8O^mN4ph-5PR`cM zP`AQ@rAY+m7r^q$rD|XBx#tzb#+Mq73_Ht&1S@9^Ir#=*)**!t*iNBoU$nw+4XarR zSP57OSP57OSPA?e0T#2(!D09MjWSCwHTvHA_uXe<;%suhK5^^e$4TpQW4?)tYKkC~ F{R=00gvtN_ literal 0 HcmV?d00001