From 77d3d228106ed6179e6a833f5e57c437156b8389 Mon Sep 17 00:00:00 2001 From: Regalis Date: Thu, 25 Feb 2016 22:54:10 +0200 Subject: [PATCH 1/8] Camera twitching fixes, fixed crashing when loading a sub with no hull, fixed server lobby player count only working for 0-15 players, progress on downloading subs from the server --- Subsurface/Source/Camera.cs | 12 +- Subsurface/Source/Map/Submarine.cs | 59 +++---- Subsurface/Source/Map/SubmarineBody.cs | 21 ++- .../Source/Networking/FileStreamReceiver.cs | 123 +++++++++++--- .../Source/Networking/FileStreamSender.cs | 49 ++++-- Subsurface/Source/Networking/GameClient.cs | 146 +++++++++++------ Subsurface/Source/Networking/GameServer.cs | 153 ++++++++++++------ .../Source/Networking/NetBufferExtensions.cs | 16 +- Subsurface/Source/Networking/NetworkEvent.cs | 4 +- Subsurface/Source/Networking/NetworkMember.cs | 25 +-- .../Source/Networking/ReliableSender.cs | 7 +- Subsurface/Source/Screens/NetLobbyScreen.cs | 61 +++++-- Subsurface/Source/Screens/ServerListScreen.cs | 17 +- Subsurface_Solution.v12.suo | Bin 923136 -> 907264 bytes 14 files changed, 464 insertions(+), 229 deletions(-) diff --git a/Subsurface/Source/Camera.cs b/Subsurface/Source/Camera.cs index 12aacd1be..c8b75de5b 100644 --- a/Subsurface/Source/Camera.cs +++ b/Subsurface/Source/Camera.cs @@ -127,11 +127,11 @@ namespace Barotrauma //UpdateTransform(); } - public void UpdateTransform() + public void UpdateTransform(bool interpolate = true) { - Vector2 interpolatedPosition = Physics.Interpolate(prevPosition, position); + Vector2 interpolatedPosition = interpolate ? Physics.Interpolate(prevPosition, position) : position; - float interpolatedZoom = Physics.Interpolate(prevZoom, zoom); + float interpolatedZoom = interpolate ? Physics.Interpolate(prevZoom, zoom) : zoom; worldView.X = (int)(interpolatedPosition.X - worldView.Width / 2.0); worldView.Y = (int)(interpolatedPosition.Y + worldView.Height / 2.0); @@ -149,6 +149,12 @@ namespace Barotrauma viewMatrix; Sound.CameraPos = new Vector3(WorldViewCenter.X, WorldViewCenter.Y, 0.0f); + + if (!interpolate) + { + prevPosition = position; + prevZoom = zoom; + } } public void MoveCamera(float deltaTime) diff --git a/Subsurface/Source/Map/Submarine.cs b/Subsurface/Source/Map/Submarine.cs index d7af79305..dbcc754f9 100644 --- a/Subsurface/Source/Map/Submarine.cs +++ b/Subsurface/Source/Map/Submarine.cs @@ -713,37 +713,42 @@ namespace Barotrauma } } - Vector2 topLeft = new Vector2(Hull.hullList[0].Rect.X, Hull.hullList[0].Rect.Y); - Vector2 bottomRight = new Vector2(Hull.hullList[0].Rect.X, Hull.hullList[0].Rect.Y); - foreach (Hull hull in Hull.hullList) + Vector2 center = Vector2.Zero; + + if (Hull.hullList.Any()) { - if (hull.Rect.X < topLeft.X) topLeft.X = hull.Rect.X; - if (hull.Rect.Y > topLeft.Y) topLeft.Y = hull.Rect.Y; - - if (hull.Rect.Right > bottomRight.X) bottomRight.X = hull.Rect.Right; - if (hull.Rect.Y - hull.Rect.Height < bottomRight.Y) bottomRight.Y = hull.Rect.Y - hull.Rect.Height; - } - - Vector2 center = (topLeft + bottomRight) / 2.0f; - center.X -= center.X % GridSize.X; - center.Y -= center.Y % GridSize.Y; - - foreach (Item item in Item.ItemList) - { - var wire = item.GetComponent(); - if (wire == null) continue; - - for (int i = 0; i < wire.Nodes.Count; i++) + Vector2 topLeft = new Vector2(Hull.hullList[0].Rect.X, Hull.hullList[0].Rect.Y); + Vector2 bottomRight = new Vector2(Hull.hullList[0].Rect.X, Hull.hullList[0].Rect.Y); + foreach (Hull hull in Hull.hullList) { - wire.Nodes[i] -= center; - } - } + if (hull.Rect.X < topLeft.X) topLeft.X = hull.Rect.X; + if (hull.Rect.Y > topLeft.Y) topLeft.Y = hull.Rect.Y; - for (int i = 0; i < MapEntity.mapEntityList.Count; i++) - { - if (MapEntity.mapEntityList[i].Submarine == null) continue; + if (hull.Rect.Right > bottomRight.X) bottomRight.X = hull.Rect.Right; + if (hull.Rect.Y - hull.Rect.Height < bottomRight.Y) bottomRight.Y = hull.Rect.Y - hull.Rect.Height; + } + + center = (topLeft + bottomRight) / 2.0f; + center.X -= center.X % GridSize.X; + center.Y -= center.Y % GridSize.Y; + + foreach (Item item in Item.ItemList) + { + var wire = item.GetComponent(); + if (wire == null) continue; + + for (int i = 0; i < wire.Nodes.Count; i++) + { + wire.Nodes[i] -= center; + } + } + + for (int i = 0; i < MapEntity.mapEntityList.Count; i++) + { + if (MapEntity.mapEntityList[i].Submarine == null) continue; - MapEntity.mapEntityList[i].Move(-center); + MapEntity.mapEntityList[i].Move(-center); + } } subBody = new SubmarineBody(this); diff --git a/Subsurface/Source/Map/SubmarineBody.cs b/Subsurface/Source/Map/SubmarineBody.cs index 7e45546b9..9fb1fcbb9 100644 --- a/Subsurface/Source/Map/SubmarineBody.cs +++ b/Subsurface/Source/Map/SubmarineBody.cs @@ -226,25 +226,32 @@ namespace Barotrauma if (dist > 1000.0f) { Vector2 moveAmount = ConvertUnits.ToSimUnits((Vector2)targetPosition) - body.Position; - Vector2 displayerMoveAmount = ConvertUnits.ToDisplayUnits(moveAmount); + Vector2 displayMoveAmount = ConvertUnits.ToDisplayUnits(moveAmount); body.SetTransform(body.Position + moveAmount, 0.0f); - if (Character.Controlled != null) Character.Controlled.CursorPosition += displayerMoveAmount; + if (Character.Controlled != null) Character.Controlled.CursorPosition += displayMoveAmount; - GameMain.GameScreen.Cam.Position += displayerMoveAmount; - GameMain.GameScreen.Cam.UpdateTransform(); + GameMain.GameScreen.Cam.Position += displayMoveAmount; + if (GameMain.GameScreen.Cam.TargetPos!=Vector2.Zero) GameMain.GameScreen.Cam.TargetPos += displayMoveAmount; + GameMain.GameScreen.Cam.UpdateTransform(false); + + submarine.SetPrevTransform(submarine.Position); + submarine.UpdateTransform(); targetPosition = null; } else if (dist > 50.0f) { Vector2 moveAmount = Vector2.Normalize((Vector2)targetPosition - Position); moveAmount *= ConvertUnits.ToSimUnits(Math.Min(dist, 100.0f)); - Vector2 displayerMoveAmount = ConvertUnits.ToDisplayUnits(moveAmount); + Vector2 displayMoveAmount = ConvertUnits.ToDisplayUnits(moveAmount); body.SetTransform(body.Position + moveAmount * deltaTime, 0.0f); - GameMain.GameScreen.Cam.Position += displayerMoveAmount * deltaTime; - if (Character.Controlled != null) Character.Controlled.CursorPosition += displayerMoveAmount; + GameMain.GameScreen.Cam.Position += displayMoveAmount * deltaTime; + if (GameMain.GameScreen.Cam.TargetPos != Vector2.Zero) GameMain.GameScreen.Cam.TargetPos += displayMoveAmount; + if (Character.Controlled != null) Character.Controlled.CursorPosition += displayMoveAmount; + + //GameMain.GameScreen.Cam.UpdateTransform(false); } else { diff --git a/Subsurface/Source/Networking/FileStreamReceiver.cs b/Subsurface/Source/Networking/FileStreamReceiver.cs index 45cfbe9e1..886d5c8e4 100644 --- a/Subsurface/Source/Networking/FileStreamReceiver.cs +++ b/Subsurface/Source/Networking/FileStreamReceiver.cs @@ -4,13 +4,36 @@ using System.IO; namespace Barotrauma.Networking { - class FileStreamReceiver + class FileStreamReceiver : IDisposable { - private NetClient s_client; - private ulong s_length; - private ulong s_received; - private FileStream s_writeStream; - private int s_timeStarted; + public delegate void OnFinished(FileStreamReceiver fileStreamReceiver); + private OnFinished onFinished; + + private NetClient client; + private ulong length; + private ulong received; + private FileStream writeStream; + private int timeStarted; + + private string filePath; + + private FileTransferType fileType; + + public string FileName + { + get; + private set; + } + + public ulong FileSize + { + get { return length; } + } + + public ulong Received + { + get { return received; } + } public FileTransferStatus Status { @@ -24,47 +47,97 @@ namespace Barotrauma.Networking private set; } - public FileStreamReceiver(NetClient client) + public float Progress { - s_client = client; + get { return length / (float)received; } + + } + + public FileStreamReceiver(NetClient client, string filePath, FileTransferType fileType, OnFinished onFinished) + { + client = client; + + this.filePath = filePath; + this.fileType = fileType; + + this.onFinished = onFinished; Status = FileTransferStatus.NotStarted; } public void ReadMessage(NetIncomingMessage inc) { - int chunkLen = inc.LengthBytes; - if (s_length == 0) + try { - s_length = inc.ReadUInt64(); - string filename = inc.ReadString(); - s_writeStream = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None); - s_timeStarted = Environment.TickCount; + TryReadMessage(inc); + } + catch (Exception e) + { + DebugConsole.ThrowError("Error while receiving file ''"+FileName+"''", e); + Status = FileTransferStatus.Error; + } + } + + private void TryReadMessage(NetIncomingMessage inc) + { + //int chunkLen = inc.LengthBytes; + if (length == 0) + { + + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + + byte fileTypeByte = inc.ReadByte(); + if (fileTypeByte != (byte)fileType) + { + Status = FileTransferStatus.Error; + return; + } + + length = inc.ReadUInt64(); + FileName = inc.ReadString(); + writeStream = new FileStream(Path.Combine(filePath, FileName), FileMode.Create, FileAccess.Write, FileShare.None); + timeStarted = Environment.TickCount; Status = FileTransferStatus.NotStarted; return; } - byte[] all = inc.ReadBytes(inc.LengthBytes); - s_received += (ulong)all.Length; - s_writeStream.Write(all, 0, all.Length); + byte[] all = inc.ReadBytes(inc.LengthBytes - inc.PositionInBytes); + received += (ulong)all.Length; + writeStream.Write(all, 0, all.Length); - int passed = Environment.TickCount - s_timeStarted; + int passed = Environment.TickCount - timeStarted; float psec = passed / 1000.0f; - BytesPerSecond = s_received / psec; + BytesPerSecond = received / psec; Status = FileTransferStatus.Receiving; - if (s_received >= s_length) + if (received >= length) { - s_writeStream.Flush(); - s_writeStream.Close(); - s_writeStream.Dispose(); - - Status = FileTransferStatus.Finished; + Status = FileTransferStatus.Finished; + if (onFinished!=null) onFinished(this); } } + + public void Dispose() + { + Dispose(true); + + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + writeStream.Flush(); + writeStream.Close(); + writeStream.Dispose(); + } } + + } diff --git a/Subsurface/Source/Networking/FileStreamSender.cs b/Subsurface/Source/Networking/FileStreamSender.cs index 7eaf60a97..24eb282da 100644 --- a/Subsurface/Source/Networking/FileStreamSender.cs +++ b/Subsurface/Source/Networking/FileStreamSender.cs @@ -1,4 +1,5 @@ using Lidgren.Network; +using System; using System.IO; namespace Barotrauma.Networking @@ -8,7 +9,12 @@ namespace Barotrauma.Networking NotStarted, Sending, Receiving, Finished, Error } - class FileStreamSender + enum FileTransferType + { + Unknown, Submarine + } + + class FileStreamSender : IDisposable { private FileStream inputStream; private int sentOffset; @@ -16,6 +22,9 @@ namespace Barotrauma.Networking private byte[] tempBuffer; private NetConnection connection; + + private FileTransferType fileType; + public FileTransferStatus Status { get; @@ -28,8 +37,8 @@ namespace Barotrauma.Networking private set; } - - public static FileStreamSender Create(NetConnection conn, string fileName) + + public static FileStreamSender Create(NetConnection conn, string fileName, FileTransferType fileType) { if (!File.Exists(fileName)) { @@ -37,19 +46,21 @@ namespace Barotrauma.Networking return null; } - return new FileStreamSender(conn, fileName); + return new FileStreamSender(conn, fileName, fileType); } - private FileStreamSender(NetConnection conn, string fileName) + private FileStreamSender(NetConnection conn, string fileName, FileTransferType fileType) { connection = conn; inputStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); - chunkLen = connection.Peer.Configuration.MaximumTransmissionUnit - 20; + chunkLen = connection.Peer.Configuration.MaximumTransmissionUnit - 100; tempBuffer = new byte[chunkLen]; sentOffset = 0; FileName = fileName; + this.fileType = fileType; + Status = FileTransferStatus.NotStarted; } @@ -70,7 +81,9 @@ namespace Barotrauma.Networking if (sentOffset == 0) { // first message; send length, chunk length and file name - message = connection.Peer.CreateMessage(sendBytes + 8); + message = connection.Peer.CreateMessage(sendBytes + 8 + 1); + message.Write((byte)PacketTypes.FileStream); + message.Write((byte)fileType); message.Write((ulong)inputStream.Length); message.Write(Path.GetFileName(inputStream.Name)); connection.SendMessage(message, NetDeliveryMethod.ReliableOrdered, 1); @@ -78,7 +91,8 @@ namespace Barotrauma.Networking Status = FileTransferStatus.Sending; } - message = connection.Peer.CreateMessage(sendBytes + 8); + message = connection.Peer.CreateMessage(sendBytes + 8 + 1); + message.Write((byte)PacketTypes.FileStream); message.Write(tempBuffer, 0, sendBytes); connection.SendMessage(message, NetDeliveryMethod.ReliableOrdered, 1); @@ -88,12 +102,25 @@ namespace Barotrauma.Networking if (remaining - sendBytes <= 0) { - inputStream.Close(); - inputStream.Dispose(); - inputStream = null; + //Dispose(); Status = FileTransferStatus.Finished; } } + + + public void Dispose() + { + Dispose(true); + + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + inputStream.Close(); + inputStream.Dispose(); + inputStream = null; + } } } diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 63ad27adb..29ca1f730 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -4,6 +4,7 @@ using Microsoft.Xna.Framework; using System.Collections.Generic; using Barotrauma.Networking.ReliableMessages; using FarseerPhysics; +using System.IO; namespace Barotrauma.Networking { @@ -15,6 +16,8 @@ namespace Barotrauma.Networking private ReliableChannel reliableChannel; + private FileStreamReceiver fileStreamReceiver; + private GUITickBox endRoundButton; private bool connected; @@ -99,7 +102,7 @@ namespace Barotrauma.Networking NetOutgoingMessage outmsg = client.CreateMessage(); client.Start(); - outmsg.WriteEnum(PacketTypes.Login); + outmsg.Write((byte)PacketTypes.Login); outmsg.Write(myID); outmsg.Write(password); outmsg.Write(GameMain.Version.ToString()); @@ -221,7 +224,7 @@ namespace Barotrauma.Networking { // All manually sent messages are type of "Data" case NetIncomingMessageType.Data: - byte packetType = (byte)inc.ReadEnum(); + byte packetType = inc.ReadByte(); if (packetType == (byte)PacketTypes.LoggedIn) { myID = inc.ReadByte(); @@ -262,7 +265,7 @@ namespace Barotrauma.Networking CanStart = true; NetOutgoingMessage lobbyUpdateRequest = client.CreateMessage(); - lobbyUpdateRequest.WriteEnum(PacketTypes.RequestNetLobbyUpdate); + lobbyUpdateRequest.Write((byte)PacketTypes.RequestNetLobbyUpdate); client.SendMessage(lobbyUpdateRequest, NetDeliveryMethod.ReliableUnordered); } else if (packetType == (byte)PacketTypes.KickedOut) @@ -445,12 +448,12 @@ namespace Barotrauma.Networking { if (inc.MessageType != NetIncomingMessageType.Data) continue; - byte packetType = (byte)inc.ReadEnum(); + byte packetType = inc.ReadByte(); if (packetType == (byte)PacketTypes.ReliableMessage) { if (!reliableChannel.CheckMessage(inc)) continue; - packetType = (byte)inc.ReadEnum(); + packetType = inc.ReadByte(); } switch (packetType) @@ -474,6 +477,22 @@ namespace Barotrauma.Networking AddChatMessage(otherClient.name + " has joined the server", ChatMessageType.Server); + break; + case (byte)PacketTypes.RequestFile: + new GUIMessageBox("Couldn't the file from the server", "Sharing files has been disabled by the server."); + break; + case (byte)PacketTypes.FileStream: + if (fileStreamReceiver == null) + { + //todo: unexpected file + } + else + { + + fileStreamReceiver.ReadMessage(inc); + } + + break; case (byte)PacketTypes.PlayerLeft: byte leavingID = inc.ReadByte(); @@ -510,7 +529,7 @@ namespace Barotrauma.Networking break; case (byte)PacketTypes.Chatmessage: - ChatMessageType messageType = inc.ReadEnum(); + ChatMessageType messageType = (ChatMessageType)inc.ReadByte(); AddChatMessage(inc.ReadString(), messageType); break; @@ -691,24 +710,59 @@ namespace Barotrauma.Networking spriteBatch.DrawString(GUI.SmallFont, "Sent bytes: " + client.Statistics.SentBytes, new Vector2(x + 10, y + 75), Color.White); spriteBatch.DrawString(GUI.SmallFont, "Sent packets: " + client.Statistics.SentPackets, new Vector2(x + 10, y + 90), Color.White); - + + if (fileStreamReceiver!=null) + { + GUI.DrawString(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), "Downloading "+fileStreamReceiver.FileName, Color.White); + GUI.DrawString(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), + MathUtils.GetBytesReadable((long)fileStreamReceiver.Received)+" / "+MathUtils.GetBytesReadable((long)fileStreamReceiver.FileSize), Color.White); + GUI.DrawProgressBar(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), new Vector2(200, 15), fileStreamReceiver.Progress, Color.Green); + } + } + + private void OnFileReceived(FileStreamReceiver receiver) + { + if (receiver.Status == FileTransferStatus.Error) + { + + } + else if (receiver.Status == FileTransferStatus.Finished) + { + new GUIMessageBox("Download finished", "File ''"+receiver.FileName+"'' was downloaded succesfully."); + } + + receiver.Dispose(); + fileStreamReceiver = null; } public override void Disconnect() { NetOutgoingMessage msg = client.CreateMessage(); - msg.WriteEnum(PacketTypes.PlayerLeft); + msg.Write((byte)PacketTypes.PlayerLeft); client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); client.Shutdown(""); GameMain.NetworkMember = null; } + public void RequestFile(string file, FileTransferType fileType) + { + NetOutgoingMessage msg = client.CreateMessage(); + msg.Write((byte)PacketTypes.RequestFile); + msg.Write((byte)fileType); + + msg.Write(file); + + client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); + + fileStreamReceiver = new FileStreamReceiver(client, Path.Combine(Submarine.SavePath, "Downloaded"), fileType, OnFileReceived); + } + public void Vote(VoteType voteType, object userData) { NetOutgoingMessage msg = client.CreateMessage(); - msg.WriteEnum(PacketTypes.Vote); - msg.WriteEnum(voteType); + msg.Write((byte)PacketTypes.Vote); + msg.Write((byte)voteType); switch (voteType) { @@ -729,7 +783,7 @@ namespace Barotrauma.Networking public bool SpectateClicked(GUIButton button, object userData) { NetOutgoingMessage msg = client.CreateMessage(); - msg.WriteEnum(PacketTypes.SpectateRequest); + msg.Write((byte)PacketTypes.SpectateRequest); client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); @@ -760,7 +814,7 @@ namespace Barotrauma.Networking if (characterInfo == null) return; NetOutgoingMessage msg = client.CreateMessage(); - msg.WriteEnum(PacketTypes.CharacterInfo); + msg.Write((byte)PacketTypes.CharacterInfo); msg.Write(characterInfo.Name); msg.Write(characterInfo.Gender == Gender.Male); @@ -837,8 +891,8 @@ namespace Barotrauma.Networking (myCharacter == null || myCharacter.IsDead)) ? ChatMessageType.Dead : ChatMessageType.Default; ReliableMessage msg = reliableChannel.CreateMessage(); - msg.InnerMessage.WriteEnum(PacketTypes.Chatmessage); - msg.InnerMessage.WriteEnum(type); + msg.InnerMessage.Write((byte)PacketTypes.Chatmessage); + msg.InnerMessage.Write((byte)type); msg.InnerMessage.Write(message); reliableChannel.SendMessage(msg, client.ServerConnection); @@ -848,41 +902,41 @@ namespace Barotrauma.Networking /// sends some random data to the server (can be a networkevent or just something completely random) /// use for debugging purposes /// - public void SendRandomData() - { - NetOutgoingMessage msg = client.CreateMessage(); - switch (Rand.Int(5)) - { - case 0: - msg.WriteEnum(PacketTypes.NetworkEvent); - msg.WriteEnum(NetworkEventType.EntityUpdate); - msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); - break; - case 1: - msg.WriteEnum(PacketTypes.NetworkEvent); - msg.Write((byte)Enum.GetNames(typeof(NetworkEventType)).Length); - msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); - break; - case 2: - msg.WriteEnum(PacketTypes.NetworkEvent); - msg.WriteEnum(NetworkEventType.ComponentUpdate); - msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); - msg.Write(Rand.Int(8)); - break; - case 3: - msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); - break; - } + //public void SendRandomData() + //{ + // NetOutgoingMessage msg = client.CreateMessage(); + // switch (Rand.Int(5)) + // { + // case 0: + // msg.WriteEnum(PacketTypes.NetworkEvent); + // msg.WriteEnum(NetworkEventType.EntityUpdate); + // msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); + // break; + // case 1: + // msg.WriteEnum(PacketTypes.NetworkEvent); + // msg.Write((byte)Enum.GetNames(typeof(NetworkEventType)).Length); + // msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); + // break; + // case 2: + // msg.WriteEnum(PacketTypes.NetworkEvent); + // msg.WriteEnum(NetworkEventType.ComponentUpdate); + // msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); + // msg.Write(Rand.Int(8)); + // break; + // case 3: + // msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); + // break; + // } - int bitCount = Rand.Int(100); - for (int i = 0; i c.Connection == inc.SenderConnection); if (dataSender == null) return; - byte packetType = (byte)inc.ReadEnum(); + byte packetType = inc.ReadByte(); if (packetType == (byte)PacketTypes.ReliableMessage) { if (!dataSender.ReliableChannel.CheckMessage(inc)) return; - packetType = (byte)inc.ReadEnum(); + packetType = inc.ReadByte(); } switch (packetType) @@ -490,7 +504,7 @@ namespace Barotrauma.Networking break; case (byte)PacketTypes.Chatmessage: - ChatMessageType messageType = inc.ReadEnum(); + ChatMessageType messageType = (ChatMessageType)inc.ReadByte(); SendChatMessage(inc.ReadString(), messageType); @@ -500,6 +514,33 @@ namespace Barotrauma.Networking break; case (byte)PacketTypes.CharacterInfo: ReadCharacterData(inc); + break; + case (byte)PacketTypes.RequestFile: + string fileName = inc.ReadString(); + byte fileType = inc.ReadByte(); + + switch (fileType) + { + case (byte)FileTransferType.Submarine: + + var requestedSubmarine = Submarine.SavedSubmarines.Find(s => s.Name == fileName); + + if (requestedSubmarine==null) + { + //todo: ei voi ladata + } + else + { + var fileStreamSender = FileStreamSender.Create(dataSender.Connection, requestedSubmarine.FilePath, FileTransferType.Submarine); + if (fileStreamSender != null) dataSender.FileStreamSender = fileStreamSender; + } + break; + default: + DebugConsole.ThrowError("Unknown file type was requested ("+fileType+")"); + break; + } + + break; case (byte)PacketTypes.ResendRequest: @@ -541,7 +582,7 @@ namespace Barotrauma.Networking private void HandleConnectionApproval(NetIncomingMessage inc) { - if (inc.ReadEnum() != PacketTypes.Login) return; + if ((PacketTypes)inc.ReadByte() != PacketTypes.Login) return; DebugConsole.NewMessage("New player has joined the server", Color.White); @@ -649,6 +690,8 @@ namespace Barotrauma.Networking UpdateCrewFrame(); inc.SenderConnection.Approve(); + + refreshMasterTimer = DateTime.Now; } @@ -886,7 +929,7 @@ namespace Barotrauma.Networking private NetOutgoingMessage CreateStartMessage(int seed, Submarine selectedSub, GameModePreset selectedMode) { NetOutgoingMessage msg = server.CreateMessage(); - msg.WriteEnum(PacketTypes.StartGame); + msg.Write((byte)PacketTypes.StartGame); msg.Write(seed); @@ -910,7 +953,7 @@ namespace Barotrauma.Networking if (myCharacter != null) { - msg.Write(0); + msg.Write((byte)0); WriteCharacterData(msg, myCharacter.Info.Name, myCharacter); } @@ -949,7 +992,7 @@ namespace Barotrauma.Networking if (ConnectedClients.Count > 0) { NetOutgoingMessage msg = server.CreateMessage(); - msg.WriteEnum(PacketTypes.EndGame); + msg.Write((byte)PacketTypes.EndGame); msg.Write(endMessage); if (server.ConnectionsCount > 0) @@ -989,7 +1032,9 @@ namespace Barotrauma.Networking private void DisconnectClient(NetConnection senderConnection, string msg = "", string targetmsg = "") { Client client = ConnectedClients.Find(x => x.Connection == senderConnection); - if (client != null) DisconnectClient(client, msg, targetmsg); + if (client == null) return; + + DisconnectClient(client, msg, targetmsg); } private void DisconnectClient(Client client, string msg = "", string targetmsg = "") @@ -1007,14 +1052,14 @@ namespace Barotrauma.Networking Log(msg, messageColor[(int)ChatMessageType.Server]); NetOutgoingMessage outmsg = server.CreateMessage(); - outmsg.WriteEnum(PacketTypes.KickedOut); + outmsg.Write((byte)PacketTypes.KickedOut); outmsg.Write(targetmsg); server.SendMessage(outmsg, client.Connection, NetDeliveryMethod.ReliableUnordered, 0); ConnectedClients.Remove(client); outmsg = server.CreateMessage(); - outmsg.WriteEnum(PacketTypes.PlayerLeft); + outmsg.Write((byte)PacketTypes.PlayerLeft); outmsg.Write(client.ID); outmsg.Write(msg); @@ -1028,6 +1073,8 @@ namespace Barotrauma.Networking AddChatMessage(msg, ChatMessageType.Server); UpdateCrewFrame(); + + refreshMasterTimer = DateTime.Now; } private void UpdateCrewFrame() @@ -1086,7 +1133,7 @@ namespace Barotrauma.Networking } NetOutgoingMessage msg = server.CreateMessage(); - msg.WriteEnum(PacketTypes.Traitor); + msg.Write((byte)PacketTypes.Traitor); msg.Write(target.Info.Name); if (server.Connections.Count > 0) { @@ -1175,7 +1222,7 @@ namespace Barotrauma.Networking try { NetOutgoingMessage msg = server.CreateMessage(); - msg.WriteEnum(PacketTypes.VoteStatus); + msg.Write((byte)PacketTypes.VoteStatus); Voting.WriteData(msg, ConnectedClients); server.SendMessage(msg, server.Connections, NetDeliveryMethod.ReliableUnordered, 0); @@ -1199,7 +1246,7 @@ namespace Barotrauma.Networking if (server.Connections.Count == 0) return true; NetOutgoingMessage msg = server.CreateMessage(); - msg.WriteEnum(PacketTypes.UpdateNetLobby); + msg.Write((byte)PacketTypes.UpdateNetLobby); GameMain.NetLobbyScreen.WriteData(msg); server.SendMessage(msg, server.Connections, NetDeliveryMethod.ReliableUnordered, 0); @@ -1275,8 +1322,8 @@ namespace Barotrauma.Networking foreach (Client c in recipients) { ReliableMessage msg = c.ReliableChannel.CreateMessage(); - msg.InnerMessage.WriteEnum(PacketTypes.Chatmessage); - msg.InnerMessage.WriteEnum(type); + msg.InnerMessage.Write((byte)PacketTypes.Chatmessage); + msg.InnerMessage.Write((byte)type); msg.InnerMessage.Write(message); c.ReliableChannel.SendMessage(msg, c.Connection); @@ -1343,7 +1390,7 @@ namespace Barotrauma.Networking if (items == null || !items.Any()) return; NetOutgoingMessage message = server.CreateMessage(); - message.WriteEnum(PacketTypes.NewItem); + message.Write((byte)PacketTypes.NewItem); Item.Spawner.FillNetworkData(message, items, inventories); @@ -1460,38 +1507,38 @@ namespace Barotrauma.Networking /// sends some random data to the clients /// use for debugging purposes /// - public void SendRandomData() - { - NetOutgoingMessage msg = server.CreateMessage(); - switch (Rand.Int(5)) - { - case 0: - msg.WriteEnum(PacketTypes.NetworkEvent); - msg.Write(Rand.Int(Enum.GetNames(typeof(NetworkEventType)).Length)); - msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); - break; - case 1: - msg.WriteEnum(PacketTypes.NetworkEvent); - msg.WriteEnum(NetworkEventType.ComponentUpdate); - msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); - msg.Write(Rand.Int(8)); - break; - case 2: - msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); - break; - case 3: - msg.Write((byte)PacketTypes.UpdateNetLobby); - break; - } + //public void SendRandomData() + //{ + // NetOutgoingMessage msg = server.CreateMessage(); + // switch (Rand.Int(5)) + // { + // case 0: + // msg.WriteEnum(PacketTypes.NetworkEvent); + // msg.Write(Rand.Int(Enum.GetNames(typeof(NetworkEventType)).Length)); + // msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); + // break; + // case 1: + // msg.WriteEnum(PacketTypes.NetworkEvent); + // msg.WriteEnum(NetworkEventType.ComponentUpdate); + // msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); + // msg.Write(Rand.Int(8)); + // break; + // case 2: + // msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); + // break; + // case 3: + // msg.Write((byte)PacketTypes.UpdateNetLobby); + // break; + // } - int bitCount = Rand.Int(100); - for (int i = 0; i < bitCount; i++) - { - msg.Write(Rand.Int(2) == 0); - } - SendMessage(msg, (Rand.Int(2) == 0) ? NetDeliveryMethod.ReliableOrdered : NetDeliveryMethod.Unreliable, null); + // int bitCount = Rand.Int(100); + // for (int i = 0; i < bitCount; i++) + // { + // msg.Write(Rand.Int(2) == 0); + // } + // SendMessage(msg, (Rand.Int(2) == 0) ? NetDeliveryMethod.ReliableOrdered : NetDeliveryMethod.Unreliable, null); - } + //} public override void Disconnect() { @@ -1523,6 +1570,8 @@ namespace Barotrauma.Networking public List jobPreferences; public JobPrefab assignedJob; + public FileStreamSender FileStreamSender; + public bool Spectating; public ReliableChannel ReliableChannel; diff --git a/Subsurface/Source/Networking/NetBufferExtensions.cs b/Subsurface/Source/Networking/NetBufferExtensions.cs index 0bec997fb..b328e20a5 100644 --- a/Subsurface/Source/Networking/NetBufferExtensions.cs +++ b/Subsurface/Source/Networking/NetBufferExtensions.cs @@ -5,14 +5,14 @@ namespace Barotrauma.Networking { static class NetBufferExtensions { - public static void WriteEnum(this NetBuffer buffer, Enum value) - { - buffer.WriteRangedInteger(0, Enum.GetValues(value.GetType()).Length - 1, Convert.ToInt32(value)); - } + //public static void WriteEnum(this NetBuffer buffer, Enum value) + //{ + // buffer.WriteRangedInteger(0, Enum.GetValues(value.GetType()).Length - 1, Convert.ToInt32(value)); + //} - public static TEnum ReadEnum(this NetBuffer buffer) - { - return (TEnum)(object)buffer.ReadRangedInteger(0, Enum.GetValues(typeof(TEnum)).Length - 1); - } + //public static TEnum ReadEnum(this NetBuffer buffer) + //{ + // return (TEnum)(object)buffer.ReadRangedInteger(0, Enum.GetValues(typeof(TEnum)).Length - 1); + //} } } diff --git a/Subsurface/Source/Networking/NetworkEvent.cs b/Subsurface/Source/Networking/NetworkEvent.cs index 9f98d3c68..563b7ffd8 100644 --- a/Subsurface/Source/Networking/NetworkEvent.cs +++ b/Subsurface/Source/Networking/NetworkEvent.cs @@ -132,7 +132,7 @@ namespace Barotrauma.Networking public bool FillData(NetBuffer message) { - message.WriteEnum(eventType); + message.Write((byte)eventType); Entity e = Entity.FindEntityByID(id); if (e == null) return false; @@ -189,7 +189,7 @@ namespace Barotrauma.Networking try { - eventType = message.ReadEnum(); + eventType = (NetworkEventType)message.ReadByte(); id = message.ReadUInt16(); } catch (Exception exception) diff --git a/Subsurface/Source/Networking/NetworkMember.cs b/Subsurface/Source/Networking/NetworkMember.cs index 72c83b042..7f75d07ed 100644 --- a/Subsurface/Source/Networking/NetworkMember.cs +++ b/Subsurface/Source/Networking/NetworkMember.cs @@ -7,7 +7,7 @@ using Lidgren.Network; namespace Barotrauma.Networking { - enum PacketTypes : int + enum PacketTypes : byte { Unknown, @@ -32,6 +32,8 @@ namespace Barotrauma.Networking Vote, VoteStatus, ResendRequest, ReliableMessage, LatestMessageID, + + RequestFile, FileStream, SpectateRequest } @@ -163,7 +165,7 @@ namespace Barotrauma.Networking if (msgBytes.Count == 0) return null; NetOutgoingMessage message = netPeer.CreateMessage(); - message.WriteEnum(PacketTypes.NetworkEvent); + message.Write((byte)PacketTypes.NetworkEvent); message.Write((float)NetTime.Now); @@ -295,25 +297,6 @@ namespace Barotrauma.Networking } public virtual void Disconnect() { } - - protected byte PlayerCountToByte(int playerCount, int maxPlayers) - { - byte byteVal = (byte)playerCount; - - byteVal |= (byte)((maxPlayers - 1) << 4); - - return byteVal; - } - - public static int ByteToPlayerCount(byte byteVal, out int maxPlayers) - { - maxPlayers = (byteVal >> 4)+1; - - int playerCount = byteVal & (byte)((1 << 4) - 1); - - return playerCount; - } - } } diff --git a/Subsurface/Source/Networking/ReliableSender.cs b/Subsurface/Source/Networking/ReliableSender.cs index b90244522..27059b237 100644 --- a/Subsurface/Source/Networking/ReliableSender.cs +++ b/Subsurface/Source/Networking/ReliableSender.cs @@ -94,7 +94,7 @@ namespace Barotrauma.Networking.ReliableMessages var reliableMessage = new ReliableMessage(message, messageID); - message.WriteEnum(PacketTypes.ReliableMessage); + message.Write((byte)PacketTypes.ReliableMessage); message.Write(messageID); @@ -184,7 +184,7 @@ namespace Barotrauma.Networking.ReliableMessages //Debug.WriteLine("Sending ack message: "+messageCount); NetOutgoingMessage message = sender.CreateMessage(); - message.WriteEnum(PacketTypes.LatestMessageID); + message.Write((byte)PacketTypes.LatestMessageID); message.Write(messageCount); @@ -244,7 +244,7 @@ namespace Barotrauma.Networking.ReliableMessages Debug.WriteLine("rerequest "+missingMessage.ID+" (try #"+missingMessage.ResendRequestsSent+")"); NetOutgoingMessage resendRequest = receiver.CreateMessage(); - resendRequest.WriteEnum(PacketTypes.ResendRequest); + resendRequest.Write((byte)PacketTypes.ResendRequest); resendRequest.Write(missingMessage.ID); @@ -443,6 +443,7 @@ namespace Barotrauma.Networking.ReliableMessages public void SaveInnerMessage() { + innerMessage.WritePadBits(); innerMessageBytes = innerMessage.PeekBytes(innerMessage.LengthBytes); //innerMessage = null; } diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index c88ea34af..1cd4d37fe 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -37,6 +37,10 @@ namespace Barotrauma public bool IsServer; public string ServerName, ServerMessage; + const float NetworkUpdateInterval = 1.0f; + private float networkUpdateTimer; + private bool valueChanged; + private Sprite backgroundSprite; private GUITextBox serverMessage; @@ -327,7 +331,7 @@ namespace Barotrauma modeList.OnSelected = VotableClicked; modeList.OnSelected = SelectMode; subList.OnSelected = VotableClicked; - subList.OnSelected = SelectMap; + subList.OnSelected = SelectSub; traitorProbabilityButtons[0].OnClicked = ToggleTraitorsEnabled; traitorProbabilityButtons[1].OnClicked = ToggleTraitorsEnabled; @@ -484,8 +488,8 @@ namespace Barotrauma if (GameMain.Server == null) return false; GameMain.Server.AutoRestart = tickBox.Selected; - - GameMain.Server.UpdateNetLobby(tickBox); + + valueChanged = true; return true; } @@ -501,8 +505,8 @@ namespace Barotrauma if (index > 2) index = 0; SetTraitorsEnabled((YesNoMaybe)index); - - if (GameMain.Server != null) GameMain.Server.UpdateNetLobby(null); + + valueChanged = true; return true; } @@ -515,9 +519,9 @@ namespace Barotrauma } - private bool SelectMap(GUIComponent component, object obj) + private bool SelectSub(GUIComponent component, object obj) { - if (GameMain.Server != null) GameMain.Server.UpdateNetLobby(obj); + valueChanged = true; //Submarine sub = (Submarine)obj; @@ -558,7 +562,7 @@ namespace Barotrauma { if (GameMain.Server == null) return false; ServerName = text; - GameMain.Server.UpdateNetLobby(null, null); + valueChanged = true; return true; } @@ -567,7 +571,7 @@ namespace Barotrauma { if (GameMain.Server == null) return false; ServerMessage = text; - GameMain.Server.UpdateNetLobby(null, null); + valueChanged = true; return true; } @@ -692,6 +696,18 @@ namespace Barotrauma { if (GameMain.Server.BanList.BanFrame != null) GameMain.Server.BanList.BanFrame.Update((float)deltaTime); } + + if (valueChanged && GameMain.Server != null) + { + networkUpdateTimer -= (float)deltaTime; + if (networkUpdateTimer <= 0.0f) + { + GameMain.Server.UpdateNetLobby(null); + + valueChanged = false; + networkUpdateTimer = NetworkUpdateInterval; + } + } //durationBar.BarScroll = Math.Max(durationBar.BarScroll, 1.0f / 60.0f); } @@ -803,7 +819,7 @@ namespace Barotrauma GameModePreset modePreset = obj as GameModePreset; if (modePreset == null) return false; - if (GameMain.Server != null) GameMain.Server.UpdateNetLobby(obj); + valueChanged = true; return true; } @@ -818,8 +834,8 @@ namespace Barotrauma //textBox.Text = LevelSeed; //textBox.Selected = false; - - if (GameMain.Server != null) GameMain.Server.UpdateNetLobby(null); + + valueChanged = true; return true; } @@ -904,7 +920,18 @@ namespace Barotrauma Submarine sub = Submarine.SavedSubmarines.Find(m => m.Name == subName); if (sub == null) { - new GUIMessageBox("Submarine not found!","The submarine ''" + subName + "'' has been selected by the server. Matching file not found in your map folder."); + var requestFileBox = new GUIMessageBox("Submarine not found!", "The submarine ''" + subName + "'' has been selected by the server. " + +"Matching file not found in your map folder. Do you want to download the file from the server host?", new string[] { "Yes", "No" }); + requestFileBox.Buttons[0].UserData = subName; + requestFileBox.Buttons[0].OnClicked += requestFileBox.Close; + requestFileBox.Buttons[0].OnClicked += (GUIButton button, object userdata) => + { + GameMain.Client.RequestFile(userdata.ToString(), FileTransferType.Submarine); + return true; + }; + requestFileBox.Buttons[1].OnClicked += requestFileBox.Close; + + return false; } else @@ -949,7 +976,7 @@ namespace Barotrauma //msg.Write(AllowSubVoting); //msg.Write(AllowModeVoting); - msg.Write(modeList.SelectedIndex); + msg.Write((byte)modeList.SelectedIndex); //msg.Write(durationBar.BarScroll); msg.Write(LevelSeed); @@ -991,7 +1018,7 @@ namespace Barotrauma //AllowSubVoting = msg.ReadBoolean(); //AllowModeVoting = msg.ReadBoolean(); - modeIndex = msg.ReadInt32(); + modeIndex = msg.ReadByte(); //durationScroll = msg.ReadFloat(); @@ -1001,9 +1028,9 @@ namespace Barotrauma restartTimer = msg.ReadFloat(); int playerCount = msg.ReadByte(); - + playerList.ClearChildren(); - for (int i = 0; i 3) ? arguments[3] : ""; - string playerCountStr = (arguments.Length > 4) ? arguments[4] : ""; + string currPlayersStr = (arguments.Length > 4) ? arguments[4] : ""; + string maxPlayersStr = (arguments.Length > 5) ? arguments[5] : ""; + string hasPassWordStr = (arguments.Length > 5) ? arguments[5] : ""; - var serverFrame = new GUIFrame(new Rectangle(0,0,0,20), (i%2 == 0) ? Color.Transparent : Color.White*0.2f, null, serverList); - serverFrame.UserData = IP+":"+port; + var serverFrame = new GUIFrame(new Rectangle(0, 0, 0, 20), (i % 2 == 0) ? Color.Transparent : Color.White * 0.2f, null, serverList); + serverFrame.UserData = IP + ":" + port; serverFrame.HoverColor = Color.Gold * 0.2f; serverFrame.SelectedColor = Color.Gold * 0.5f; - var passwordBox = new GUITickBox(new Rectangle(columnX[0]/2, 0, 20, 20), "", Alignment.TopLeft, serverFrame); + var passwordBox = new GUITickBox(new Rectangle(columnX[0] / 2, 0, 20, 20), "", Alignment.TopLeft, serverFrame); passwordBox.Selected = hasPassWordStr == "1"; passwordBox.Enabled = false; passwordBox.UserData = "password"; var nameText = new GUITextBlock(new Rectangle(columnX[0], 0, 0, 0), serverName, GUI.Style, serverFrame); - int playerCount, maxPlayers; - playerCount = GameClient.ByteToPlayerCount((byte)int.Parse(playerCountStr), out maxPlayers); + int playerCount = 0, maxPlayers = 1; + int.TryParse(currPlayersStr, out playerCount); + int.TryParse(maxPlayersStr, out maxPlayers); var playerCountText = new GUITextBlock(new Rectangle(columnX[1], 0, 0, 0), playerCount + "/" + maxPlayers, GUI.Style, serverFrame); @@ -208,7 +211,7 @@ namespace Barotrauma if (client == null) yield return CoroutineStatus.Success; - var request = new RestRequest("masterserver.php", Method.GET); + var request = new RestRequest("masterserver2.php", Method.GET); request.AddParameter("gamename", "barotrauma"); // adds to POST or URL querystring based on Method request.AddParameter("action", "listservers"); // adds to POST or URL querystring based on Method diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index c08510be14b570519ce41687ba10f6f0ec458f01..a02bd522ab502f7e976221c4486133cd075df81a 100644 GIT binary patch delta 16517 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 From 9f8f4e290e3e74fe81f634da820432f8c037d43f Mon Sep 17 00:00:00 2001 From: Regalis Date: Fri, 26 Feb 2016 22:21:00 +0200 Subject: [PATCH 2/8] Fixed propulsion applying force to _every limb except_ the ones it's supposed to, fixed pressure building up in enclosed rooms that are full of water, fixed netlobby displaying multiple votes for clients, progress on file transfer --- .../Source/Characters/AI/EnemyAIController.cs | 44 ++----- Subsurface/Source/Characters/StatusEffect.cs | 4 +- Subsurface/Source/GUI/GUI.cs | 24 +++- .../Items/Components/Holdable/Propulsion.cs | 2 +- .../Items/Components/Machines/Engine.cs | 33 +++-- Subsurface/Source/Map/Gap.cs | 47 ++++++- Subsurface/Source/Map/Hull.cs | 5 - Subsurface/Source/Map/Submarine.cs | 4 +- .../Source/Networking/FileStreamReceiver.cs | 124 ++++++++++++++++-- .../Source/Networking/FileStreamSender.cs | 13 +- Subsurface/Source/Networking/GameClient.cs | 38 ++++-- Subsurface/Source/Networking/GameServer.cs | 21 ++- .../Source/Networking/GameServerSettings.cs | 2 + Subsurface/Source/Networking/ServerLog.cs | 2 +- Subsurface/Source/Properties.cs | 24 ++-- Subsurface/Source/Screens/NetLobbyScreen.cs | 65 +++++---- Subsurface/Source/Screens/NetLobbyVoting.cs | 9 +- Subsurface/Source/Screens/ServerListScreen.cs | 2 +- Subsurface_Solution.v12.suo | Bin 907264 -> 907264 bytes 19 files changed, 330 insertions(+), 133 deletions(-) diff --git a/Subsurface/Source/Characters/AI/EnemyAIController.cs b/Subsurface/Source/Characters/AI/EnemyAIController.cs index 5dcb56769..7dccdc1a4 100644 --- a/Subsurface/Source/Characters/AI/EnemyAIController.cs +++ b/Subsurface/Source/Characters/AI/EnemyAIController.cs @@ -558,27 +558,12 @@ namespace Barotrauma bool wallAttack = (wallAttackPos != Vector2.Zero && state == AiState.Attack); - message.Write(wallAttack); - - //if (wallAttack) - //{ - // Vector2 relativeWallAttackPos = wallAttackPos - Submarine.Loaded.SimPosition; - - // message.WriteRangedSingle(MathHelper.Clamp(relativeWallAttackPos.X, -50.0f, 50.0f), -50.0f, 50.0f, 10); - // message.WriteRangedSingle(MathHelper.Clamp(relativeWallAttackPos.Y, -50.0f, 50.0f), -50.0f, 50.0f, 10); - //} - - //message.Write(Velocity.X); - //message.Write(Velocity.Y); - - //message.Write(Character.AnimController.RefLimb.SimPosition.X); - //message.Write(Character.AnimController.RefLimb.SimPosition.Y); - + //message.Write(wallAttack); message.Write(MathUtils.AngleToByte(steeringManager.WanderAngle)); - //message.WriteRangedSingle(MathHelper.Clamp(updateTargetsTimer,0.0f, UpdateTargetsInterval), 0.0f, UpdateTargetsInterval, 8); - //message.WriteRangedSingle(MathHelper.Clamp(raycastTimer, 0.0f, RaycastInterval), 0.0f, RaycastInterval, 8); - //message.WriteRangedSingle(MathHelper.Clamp(coolDownTimer, 0.0f, attackCoolDown * 2.0f), 0.0f, attackCoolDown * 2.0f, 8); + + coolDownTimer = MathHelper.Clamp(coolDownTimer, 0.0f, 30.0f); + message.WriteRangedSingle(coolDownTimer, 0.0f, 30.0f, 8); message.Write(targetEntity==null ? (ushort)0 : (targetEntity as Entity).ID); } @@ -612,9 +597,8 @@ namespace Barotrauma //targetPosition = new Vector2(message.ReadFloat(), message.ReadFloat()); wanderAngle = MathUtils.ByteToAngle(message.ReadByte()); - //updateTargetsTimer = message.ReadRangedSingle(0.0f, UpdateTargetsInterval, 8); - //raycastTimer = message.ReadRangedSingle(0.0f, RaycastInterval, 8); - //coolDownTimer = message.ReadRangedSingle(0.0f, attackCoolDown*2.0f, 8); + + coolDownTimer = message.ReadRangedSingle(0.0f, 30.0f, 8); targetID = message.ReadUInt16(); } @@ -629,14 +613,10 @@ namespace Barotrauma return; } - //wallAttackPos = newWallAttackPos; - steeringManager.WanderAngle = wanderAngle; - //this.updateTargetsTimer = updateTargetsTimer; - //this.raycastTimer = raycastTimer; - //this.coolDownTimer = coolDownTimer; - if (targetID > 0) targetEntity = Entity.FindEntityByID(targetID) as IDamageable; + if (targetID > 0) targetEntity = Entity.FindEntityByID(targetID) as IDamageable; + updateTargetsTimer = UpdateTargetsInterval; } } @@ -647,14 +627,8 @@ namespace Barotrauma //and if the target attacks the Character, the priority increases) class AITargetMemory { - //private AITarget target; private float priority; - - //public AITarget Target - //{ - // get { return target; } - //} - + public float Priority { get { return priority; } diff --git a/Subsurface/Source/Characters/StatusEffect.cs b/Subsurface/Source/Characters/StatusEffect.cs index 8f15f84fd..89f038175 100644 --- a/Subsurface/Source/Characters/StatusEffect.cs +++ b/Subsurface/Source/Characters/StatusEffect.cs @@ -10,9 +10,9 @@ namespace Barotrauma class StatusEffect { [Flags] - public enum TargetType + public enum TargetType { - This = 1, Parent = 2, Character = 4, Contained = 8, Nearby = 16, UseTarget=32 + This = 1, Parent = 2, Character = 4, Contained = 8, Nearby = 16, UseTarget = 32, Hull = 64 } private TargetType targetTypes; diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index a3cc951f0..b5e750d23 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -304,24 +304,34 @@ namespace Barotrauma return texture; } - public static bool DrawButton(SpriteBatch sb, Rectangle rect, string text, bool isHoldable = false) + public static bool DrawButton(SpriteBatch sb, Rectangle rect, string text, Color color, bool isHoldable = false) { - Color color = new Color(200, 200, 200); - bool clicked = false; if (rect.Contains(PlayerInput.MousePosition)) { clicked = PlayerInput.LeftButtonHeld(); - color = clicked ? new Color(100, 100, 100) : new Color(250, 250, 250); + color = clicked ? + new Color((int)(color.R * 0.8f), (int)(color.G * 0.8f), (int)(color.B * 0.8f), color.A) : + new Color((int)(color.R * 1.2f), (int)(color.G * 1.2f), (int)(color.B * 1.2f), color.A); - if (!isHoldable) - clicked = PlayerInput.LeftButtonClicked(); + if (!isHoldable) clicked = PlayerInput.LeftButtonClicked(); } DrawRectangle(sb, rect, color, true); - sb.DrawString(Font, text, new Vector2(rect.X + 10, rect.Y + 10), Color.White); + + Vector2 origin; + try + { + origin = Font.MeasureString(text)/2; + } + catch + { + origin = Vector2.Zero; + } + + sb.DrawString(Font, text, new Vector2(rect.Center.X, rect.Center.Y) , Color.White, 0.0f, origin, 1.0f, SpriteEffects.None, 0.0f); return clicked; } diff --git a/Subsurface/Source/Items/Components/Holdable/Propulsion.cs b/Subsurface/Source/Items/Components/Holdable/Propulsion.cs index 5b29339db..2a2435e52 100644 --- a/Subsurface/Source/Items/Components/Holdable/Propulsion.cs +++ b/Subsurface/Source/Items/Components/Holdable/Propulsion.cs @@ -76,7 +76,7 @@ namespace Barotrauma.Items.Components { foreach (Limb limb in character.AnimController.Limbs) { - if (limb.WearingItems.Find(w => w.WearableComponent.Item != this.item)==null) continue; + if (limb.WearingItems.Find(w => w.WearableComponent.Item == this.item)==null) continue; limb.body.ApplyForce(propulsion); } diff --git a/Subsurface/Source/Items/Components/Machines/Engine.cs b/Subsurface/Source/Items/Components/Machines/Engine.cs index 3b01a68d4..f4b279a0f 100644 --- a/Subsurface/Source/Items/Components/Machines/Engine.cs +++ b/Subsurface/Source/Items/Components/Machines/Engine.cs @@ -48,6 +48,24 @@ namespace Barotrauma.Items.Components : base(item, element) { IsActive = true; + + var button = new GUIButton(new Rectangle(160, 50, 30, 30), "-", GUI.Style, GuiFrame); + button.OnClicked = (GUIButton btn, object obj) => + { + targetForce -= 1.0f; + item.NewComponentEvent(this, true, false); + + return true; + }; + + button = new GUIButton(new Rectangle(200, 50, 30, 30), "+", GUI.Style, GuiFrame); + button.OnClicked = (GUIButton btn, object obj) => + { + targetForce += 1.0f; + item.NewComponentEvent(this, true, false); + + return true; + }; } public float CurrentVolume @@ -80,7 +98,7 @@ namespace Barotrauma.Items.Components voltage = 0.0f; } - + public override void DrawHUD(SpriteBatch spriteBatch, Character character) { //isActive = true; @@ -93,18 +111,7 @@ namespace Barotrauma.Items.Components //GUI.DrawRectangle(spriteBatch, new Rectangle(x, y, width, height), Color.Black, true); spriteBatch.DrawString(GUI.Font, "Force: " + (int)(targetForce) + " %", new Vector2(GuiFrame.Rect.X + 30, GuiFrame.Rect.Y + 30), Color.White); - - if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 80, 40, 40), "-", true)) - { - targetForce -= 1.0f; - item.NewComponentEvent(this, true, false); - } - - if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 30, 40, 40), "+", true)) - { - targetForce += 1.0f; - item.NewComponentEvent(this, true, false); - } + } public override void UpdateBroken(float deltaTime, Camera cam) diff --git a/Subsurface/Source/Map/Gap.cs b/Subsurface/Source/Map/Gap.cs index d483046d2..b89793040 100644 --- a/Subsurface/Source/Map/Gap.cs +++ b/Subsurface/Source/Map/Gap.cs @@ -154,9 +154,12 @@ namespace Barotrauma if (GameMain.DebugDraw) { Vector2 center = new Vector2(WorldRect.X + rect.Width / 2.0f, -(WorldRect.Y - rect.Height/ 2.0f)); - GUI.DrawLine(sb, center, center + flowForce/10.0f, Color.Red); - GUI.DrawLine(sb, center + Vector2.One * 5.0f, center + lerpedFlowForce / 10.0f + Vector2.One * 5.0f, Color.Orange); + + + GUI.DrawLine(sb, center, center + new Vector2(flowForce.X, -flowForce.Y)/10.0f, Color.Red); + + GUI.DrawLine(sb, center + Vector2.One * 5.0f, center + new Vector2(lerpedFlowForce.X, -lerpedFlowForce.Y) / 10.0f + Vector2.One * 5.0f, Color.Orange); } if (!editing || !ShowGaps) return; @@ -288,6 +291,25 @@ namespace Barotrauma } } + + + if (flowTargetHull != null && lerpedFlowForce != Vector2.Zero) + { + foreach (Character character in Character.CharacterList) + { + if (character.AnimController.CurrentHull != flowTargetHull) continue; + + foreach (Limb limb in character.AnimController.Limbs) + { + if (!limb.inWater) continue; + + float dist = Vector2.Distance(limb.WorldPosition, WorldPosition); + if (dist > lerpedFlowForce.Length()) continue; + + limb.body.ApplyForce(lerpedFlowForce / dist/10.0f); + } + } + } } @@ -444,7 +466,7 @@ namespace Barotrauma if (open > 0.0f) { - if (hull1.Volume>hull1.FullVolume && hull2.Volume>hull2.FullVolume) + if (hull1.Volume > hull1.FullVolume - Hull.MaxCompress && hull2.Volume > hull2.FullVolume - Hull.MaxCompress) { float avgLethality = (hull1.LethalPressure + hull2.LethalPressure) / 2.0f; hull1.LethalPressure = avgLethality; @@ -497,21 +519,31 @@ namespace Barotrauma lowerSurface = rect.Y; if (hull1.Volume < hull1.FullVolume - Hull.MaxCompress && - hull1.Surface > -rect.Y) + hull1.Surface < rect.Y) { - float vel = (rect.Y + hull1.Surface) * 0.03f; + if (rect.X > hull1.Rect.X + hull1.Rect.Width / 2.0f) { + float vel = ((rect.Y - rect.Height / 2) - (hull1.Surface + hull1.WaveY[hull1.WaveY.Length - 1])) * 0.1f; + + hull1.WaveVel[hull1.WaveY.Length - 1] += vel; hull1.WaveVel[hull1.WaveY.Length - 2] += vel; } else { + float vel = ((rect.Y - rect.Height / 2) - (hull1.Surface + hull1.WaveY[0])) * 0.1f; + + hull1.WaveVel[0] += vel; hull1.WaveVel[1] += vel; } } + else + { + hull1.LethalPressure += (Submarine.Loaded != null && Submarine.Loaded.AtDamageDepth) ? 100.0f * deltaTime : 10.0f * deltaTime; + } } else { @@ -523,7 +555,12 @@ namespace Barotrauma { flowForce = new Vector2(0.0f, delta); } + if (hull1.Volume >= hull1.FullVolume - Hull.MaxCompress) + { + hull1.LethalPressure += (Submarine.Loaded != null && Submarine.Loaded.AtDamageDepth) ? 100.0f * deltaTime : 10.0f * deltaTime; + } } + } private void UpdateOxygen() diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index 37bce6d95..c0eb3cf8f 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -433,11 +433,6 @@ namespace Barotrauma update = false; } } - else - { - - LethalPressure += ( Submarine.Loaded!=null && Submarine.Loaded.AtDamageDepth) ? 100.0f*deltaTime : 10.0f * deltaTime; - } } public void Extinquish(float deltaTime, float amount, Vector2 position) diff --git a/Subsurface/Source/Map/Submarine.cs b/Subsurface/Source/Map/Submarine.cs index dbcc754f9..8c2879ee4 100644 --- a/Subsurface/Source/Map/Submarine.cs +++ b/Subsurface/Source/Map/Submarine.cs @@ -590,7 +590,7 @@ namespace Barotrauma { try { - filePaths.AddRange(Directory.GetDirectories(subDirectory)); + filePaths.AddRange(Directory.GetFiles(subDirectory).ToList()); } catch (Exception e) { @@ -604,6 +604,8 @@ namespace Barotrauma //Map savedMap = new Map(mapPath); SavedSubmarines.Add(new Submarine(path)); } + + if (GameMain.NetLobbyScreen!=null) GameMain.NetLobbyScreen.UpdateSubList(); } private XDocument OpenDoc(string file) diff --git a/Subsurface/Source/Networking/FileStreamReceiver.cs b/Subsurface/Source/Networking/FileStreamReceiver.cs index 886d5c8e4..8030dfff3 100644 --- a/Subsurface/Source/Networking/FileStreamReceiver.cs +++ b/Subsurface/Source/Networking/FileStreamReceiver.cs @@ -1,11 +1,14 @@ using Lidgren.Network; using System; using System.IO; +using System.Text.RegularExpressions; namespace Barotrauma.Networking { class FileStreamReceiver : IDisposable { + const int MaxFileSize = 1000000; + public delegate void OnFinished(FileStreamReceiver fileStreamReceiver); private OnFinished onFinished; @@ -18,12 +21,17 @@ namespace Barotrauma.Networking private string filePath; private FileTransferType fileType; - + public string FileName { get; private set; } + + public string FilePath + { + get { return filePath; } + } public ulong FileSize { @@ -35,12 +43,23 @@ namespace Barotrauma.Networking get { return received; } } + public FileTransferType FileType + { + get { return fileType; } + } + public FileTransferStatus Status { get; private set; } + public string ErrorMessage + { + get; + private set; + } + public float BytesPerSecond { get; @@ -49,13 +68,13 @@ namespace Barotrauma.Networking public float Progress { - get { return length / (float)received; } + get { return (float)received / (float)length; } } public FileStreamReceiver(NetClient client, string filePath, FileTransferType fileType, OnFinished onFinished) { - client = client; + this.client = client; this.filePath = filePath; this.fileType = fileType; @@ -78,8 +97,75 @@ namespace Barotrauma.Networking } } + private bool ValidateInitialData(byte type, string fileName, ulong fileSize) + { + if (fileSize > MaxFileSize) + { + ErrorMessage = "File too large (" + MathUtils.GetBytesReadable((long)fileSize) + ")"; + Status = FileTransferStatus.Error; + return false; + } + + if (type != (byte)fileType) + { + ErrorMessage = "Unexpected file type ''"+type+"'' (expected "+fileType+")"; + Status = FileTransferStatus.Error; + return false; + } + + if (!Regex.Match(fileName, @"^[\w\- ]+[\w\-. ]*$").Success) + { + ErrorMessage = "Illegal characters in file name ''"+fileName+"''"; + Status = FileTransferStatus.Error; + return false; + } + + switch (type) + { + case (byte)FileTransferType.Submarine: + if (Path.GetExtension(fileName) != ".sub") + { + ErrorMessage = "Wrong file extension ''" + Path.GetExtension(fileName)+"''! (Expected .sub)"; + + Status = FileTransferStatus.Error; + return false; + } + break; + } + + return true; + } + + public void DeleteFile() + { + string file = Path.Combine(filePath, FileName); + + writeStream.Flush(); + writeStream.Close(); + writeStream.Dispose(); + writeStream = null; + + Status = FileTransferStatus.Canceled; + + if (File.Exists(file)) + { + try + { + File.Delete(file); + } + catch (Exception e) + { + DebugConsole.ThrowError("Couldn't delete file ''" + file + "''!", e); + } + } + } + private void TryReadMessage(NetIncomingMessage inc) { + if (Status == FileTransferStatus.Error || + Status == FileTransferStatus.Finished || + Status == FileTransferStatus.Canceled) return; + //int chunkLen = inc.LengthBytes; if (length == 0) { @@ -90,14 +176,17 @@ namespace Barotrauma.Networking } byte fileTypeByte = inc.ReadByte(); - if (fileTypeByte != (byte)fileType) - { - Status = FileTransferStatus.Error; - return; - } length = inc.ReadUInt64(); FileName = inc.ReadString(); + + if (!ValidateInitialData(fileTypeByte, FileName, length)) + { + Status = FileTransferStatus.Error; + if (onFinished != null) onFinished(this); + return; + } + writeStream = new FileStream(Path.Combine(filePath, FileName), FileMode.Create, FileAccess.Write, FileShare.None); timeStarted = Environment.TickCount; @@ -106,6 +195,15 @@ namespace Barotrauma.Networking return; } + + if (received + (ulong)inc.LengthBytes > length*1.1f) + { + ErrorMessage = "Receiving more data than expected (> " + MathUtils.GetBytesReadable((long)(received + (ulong)inc.LengthBytes)) + ")"; + Status = FileTransferStatus.Error; + if (onFinished != null) onFinished(this); + return; + } + byte[] all = inc.ReadBytes(inc.LengthBytes - inc.PositionInBytes); received += (ulong)all.Length; writeStream.Write(all, 0, all.Length); @@ -117,6 +215,7 @@ namespace Barotrauma.Networking Status = FileTransferStatus.Receiving; + if (received >= length) { Status = FileTransferStatus.Finished; @@ -133,9 +232,12 @@ namespace Barotrauma.Networking protected virtual void Dispose(bool disposing) { - writeStream.Flush(); - writeStream.Close(); - writeStream.Dispose(); + if (writeStream != null) + { + writeStream.Flush(); + writeStream.Close(); + writeStream.Dispose(); + } } } diff --git a/Subsurface/Source/Networking/FileStreamSender.cs b/Subsurface/Source/Networking/FileStreamSender.cs index 24eb282da..86c2caf4b 100644 --- a/Subsurface/Source/Networking/FileStreamSender.cs +++ b/Subsurface/Source/Networking/FileStreamSender.cs @@ -6,7 +6,7 @@ namespace Barotrauma.Networking { enum FileTransferStatus { - NotStarted, Sending, Receiving, Finished, Error + NotStarted, Sending, Receiving, Finished, Error, Canceled } enum FileTransferType @@ -22,6 +22,8 @@ namespace Barotrauma.Networking private byte[] tempBuffer; private NetConnection connection; + float waitTimer; + private FileTransferType fileType; @@ -56,7 +58,7 @@ namespace Barotrauma.Networking chunkLen = connection.Peer.Configuration.MaximumTransmissionUnit - 100; tempBuffer = new byte[chunkLen]; sentOffset = 0; - + FileName = fileName; this.fileType = fileType; @@ -64,10 +66,13 @@ namespace Barotrauma.Networking Status = FileTransferStatus.NotStarted; } - public void Update() + public void Update(float deltaTime) { if (inputStream == null) return; + waitTimer -= deltaTime; + if (waitTimer > 0.0f) return; + if (!connection.CanSendImmediately(NetDeliveryMethod.ReliableOrdered, 1)) return; // send another part of the file! @@ -98,6 +103,8 @@ namespace Barotrauma.Networking connection.SendMessage(message, NetDeliveryMethod.ReliableOrdered, 1); sentOffset += sendBytes; + waitTimer = connection.AverageRoundtripTime + 0.05f; + //Program.Output("Sent " + m_sentOffset + "/" + m_inputStream.Length + " bytes to " + m_connection); if (remaining - sendBytes <= 0) diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 29ca1f730..7b938b5d6 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -697,6 +697,25 @@ namespace Barotrauma.Networking { base.Draw(spriteBatch); + if (fileStreamReceiver != null && + (fileStreamReceiver.Status == FileTransferStatus.Receiving || fileStreamReceiver.Status == FileTransferStatus.NotStarted)) + { + Vector2 pos = Screen.Selected == GameMain.NetLobbyScreen ? + new Vector2(GameMain.NetLobbyScreen.SubList.Rect.X, GameMain.NetLobbyScreen.SubList.Rect.Bottom+5) : new Vector2(GameMain.GraphicsWidth / 2 - 200, 10); + + GUI.DrawString(spriteBatch, pos, "Downloading " + fileStreamReceiver.FileName, Color.White); + GUI.DrawString(spriteBatch, pos + Vector2.UnitX*300, + MathUtils.GetBytesReadable((long)fileStreamReceiver.Received) + " / " + MathUtils.GetBytesReadable((long)fileStreamReceiver.FileSize), Color.White); + GUI.DrawProgressBar(spriteBatch, new Vector2(pos.X, -pos.Y - 20), new Vector2(300, 15), fileStreamReceiver.Progress, Color.Green); + + if (GUI.DrawButton(spriteBatch, new Rectangle((int)pos.X + 310, (int)pos.Y + 20, 100, 15), "Cancel", new Color(0.88f, 0.25f, 0.15f, 0.8f))) + { + fileStreamReceiver.DeleteFile(); + fileStreamReceiver.Dispose(); + fileStreamReceiver = null; + } + } + if (!GameMain.DebugDraw) return; int width = 200, height = 300; @@ -711,27 +730,28 @@ namespace Barotrauma.Networking spriteBatch.DrawString(GUI.SmallFont, "Sent bytes: " + client.Statistics.SentBytes, new Vector2(x + 10, y + 75), Color.White); spriteBatch.DrawString(GUI.SmallFont, "Sent packets: " + client.Statistics.SentPackets, new Vector2(x + 10, y + 90), Color.White); - if (fileStreamReceiver!=null) - { - GUI.DrawString(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), "Downloading "+fileStreamReceiver.FileName, Color.White); - GUI.DrawString(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), - MathUtils.GetBytesReadable((long)fileStreamReceiver.Received)+" / "+MathUtils.GetBytesReadable((long)fileStreamReceiver.FileSize), Color.White); - GUI.DrawProgressBar(spriteBatch, new Vector2(GameMain.GraphicsWidth / 2 - 100, 20), new Vector2(200, 15), fileStreamReceiver.Progress, Color.Green); - } } private void OnFileReceived(FileStreamReceiver receiver) { if (receiver.Status == FileTransferStatus.Error) { - + new GUIMessageBox("Error while receiving file from server", receiver.ErrorMessage); + receiver.DeleteFile(); + } else if (receiver.Status == FileTransferStatus.Finished) { new GUIMessageBox("Download finished", "File ''"+receiver.FileName+"'' was downloaded succesfully."); + + switch (receiver.FileType) + { + case FileTransferType.Submarine: + Submarine.Preload(); + break; + } } - receiver.Dispose(); fileStreamReceiver = null; } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index 94ebb4ee0..b970c6c9d 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -312,9 +312,9 @@ namespace Barotrauma.Networking foreach (Client c in ConnectedClients) { - if (c.FileStreamSender!=null) + if (c.FileStreamSender!=null && Rand.Range(0.0f, 1.0f)<0.01f) { - c.FileStreamSender.Update(); + c.FileStreamSender.Update(deltaTime); if (c.FileStreamSender.Status == FileTransferStatus.Finished || c.FileStreamSender.Status == FileTransferStatus.Error) @@ -516,8 +516,17 @@ namespace Barotrauma.Networking ReadCharacterData(inc); break; case (byte)PacketTypes.RequestFile: - string fileName = inc.ReadString(); + + if (!allowFileTransfers) + { + var outmsg = server.CreateMessage(); + outmsg.Write((byte)PacketTypes.RequestFile); + outmsg.Write(false); + break; + } + byte fileType = inc.ReadByte(); + string fileName = inc.ReadString(); switch (fileType) { @@ -552,11 +561,11 @@ namespace Barotrauma.Networking case (byte)PacketTypes.Vote: Voting.RegisterVote(inc, ConnectedClients); - if (Voting.AllowEndVoting && EndVoteMax > 0 && + if (Voting.AllowEndVoting && EndVoteMax > 0 && ((float)EndVoteCount / (float)EndVoteMax) >= EndVoteRequiredRatio) { - Log("Ending round by votes ("+EndVoteCount+"/"+(EndVoteMax-EndVoteCount)+")", Color.Cyan); - EndButtonHit(null,null); + Log("Ending round by votes (" + EndVoteCount + "/" + (EndVoteMax - EndVoteCount) + ")", Color.Cyan); + EndButtonHit(null, null); } break; case (byte)PacketTypes.RequestNetLobbyUpdate: diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index e945fe803..afeb6fb39 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -45,6 +45,8 @@ namespace Barotrauma.Networking private bool saveServerLogs = true; + private bool allowFileTransfers = true; + public bool AutoRestart { get { return (ConnectedClients.Count == 0) ? false : autoRestart; } diff --git a/Subsurface/Source/Networking/ServerLog.cs b/Subsurface/Source/Networking/ServerLog.cs index 4b02144de..19c0986df 100644 --- a/Subsurface/Source/Networking/ServerLog.cs +++ b/Subsurface/Source/Networking/ServerLog.cs @@ -9,7 +9,7 @@ namespace Barotrauma.Networking { class ServerLog { - const int LinesPerFile = 300; + const int LinesPerFile = 800; public const string SavePath = "ServerLogs"; diff --git a/Subsurface/Source/Properties.cs b/Subsurface/Source/Properties.cs index a2fae550f..dde192783 100644 --- a/Subsurface/Source/Properties.cs +++ b/Subsurface/Source/Properties.cs @@ -207,6 +207,11 @@ namespace Barotrauma return dictionary; } + public static Dictionary InitProperties(object obj) + { + return InitProperties(obj, null); + } + public static Dictionary InitProperties(object obj, XElement element) { var properties = TypeDescriptor.GetProperties(obj.GetType()).Cast(); @@ -226,16 +231,19 @@ namespace Barotrauma } } - //go through all the attributes in the xml element - //and set the value of the matching property if it is initializable - foreach (XAttribute attribute in element.Attributes()) + if (element!=null) { - ObjectProperty property = null; - if (!dictionary.TryGetValue(attribute.Name.ToString().ToLower(), out property)) continue; - if (!property.Attributes.OfType().Any()) continue; - property.TrySetValue(attribute.Value); + //go through all the attributes in the xml element + //and set the value of the matching property if it is initializable + foreach (XAttribute attribute in element.Attributes()) + { + ObjectProperty property = null; + if (!dictionary.TryGetValue(attribute.Name.ToString().ToLower(), out property)) continue; + if (!property.Attributes.OfType().Any()) continue; + property.TrySetValue(attribute.Value); + } } - + return dictionary; } diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 1cd4d37fe..215131455 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -187,24 +187,7 @@ namespace Barotrauma voteText.UserData = "subvotes"; voteText.Visible = false; - if (Submarine.SavedSubmarines.Count > 0) - { - foreach (Submarine sub in Submarine.SavedSubmarines) - { - GUITextBlock textBlock = new GUITextBlock( - new Rectangle(0, 0, 0, 25), - sub.Name, GUI.Style, - Alignment.Left, Alignment.Left, - subList); - textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); - textBlock.UserData = sub; - } - } - else - { - DebugConsole.ThrowError("No saved submarines found!"); - return; - } + UpdateSubList(); columnX += columnWidth + 20; @@ -213,8 +196,7 @@ namespace Barotrauma new GUITextBlock(new Rectangle(columnX, 120, 0, 30), "Game mode: ", GUI.Style, infoFrame); modeList = new GUIListBox(new Rectangle(columnX, 150, columnWidth, infoFrame.Rect.Height - 150 - 80), GUI.Style, infoFrame); modeList.OnSelected = VotableClicked; - - + voteText = new GUITextBlock(new Rectangle(columnX, 120, columnWidth, 30), "Votes: ", GUI.Style, Alignment.TopLeft, Alignment.TopRight, infoFrame); voteText.UserData = "modevotes"; voteText.Visible = false; @@ -533,6 +515,33 @@ namespace Barotrauma return true; } + public void UpdateSubList() + { + if (subList == null) return; + + subList.ClearChildren(); + + if (Submarine.SavedSubmarines.Count > 0) + { + foreach (Submarine sub in Submarine.SavedSubmarines) + { + GUITextBlock textBlock = new GUITextBlock( + new Rectangle(0, 0, 0, 25), + sub.Name, GUI.Style, + Alignment.Left, Alignment.Left, + subList); + textBlock.Padding = new Vector4(10.0f, 0.0f, 0.0f, 0.0f); + textBlock.UserData = sub; + } + } + else + { + DebugConsole.ThrowError("No saved submarines found!"); + return; + } + + } + public bool VotableClicked(GUIComponent component, object userData) { if (GameMain.Client == null) return false; @@ -921,7 +930,7 @@ namespace Barotrauma if (sub == null) { var requestFileBox = new GUIMessageBox("Submarine not found!", "The submarine ''" + subName + "'' has been selected by the server. " - +"Matching file not found in your map folder. Do you want to download the file from the server host?", new string[] { "Yes", "No" }); + +"Matching file not found in your map folder. Do you want to download the file from the server host?", new string[] { "Yes", "No" }, 400, 300); requestFileBox.Buttons[0].UserData = subName; requestFileBox.Buttons[0].OnClicked += requestFileBox.Close; requestFileBox.Buttons[0].OnClicked += (GUIButton button, object userdata) => @@ -938,10 +947,20 @@ namespace Barotrauma { if (sub.MD5Hash.Hash != md5Hash) { - new GUIMessageBox("Submarine not found!", + var requestFileBox = new GUIMessageBox("Submarine not found!", "Your version of the map file ''" + sub.Name + "'' doesn't match the server's version!" +"\nYour file: " + sub.Name + "(MD5 hash : " + sub.MD5Hash.Hash + ")" - +"\nServer's file: " + subName + "(MD5 hash : " + md5Hash + ")"); + +"\nServer's file: " + subName + "(MD5 hash : " + md5Hash + ")\n" + +"Do you want to download the file from the server host?", new string[] { "Yes", "No" }, 400, 300); + requestFileBox.Buttons[0].UserData = subName; + requestFileBox.Buttons[0].OnClicked += requestFileBox.Close; + requestFileBox.Buttons[0].OnClicked += (GUIButton button, object userdata) => + { + GameMain.Client.RequestFile(userdata.ToString(), FileTransferType.Submarine); + return true; + }; + requestFileBox.Buttons[1].OnClicked += requestFileBox.Close; + return false; } else diff --git a/Subsurface/Source/Screens/NetLobbyVoting.cs b/Subsurface/Source/Screens/NetLobbyVoting.cs index d69bd5f92..acafcfb9e 100644 --- a/Subsurface/Source/Screens/NetLobbyVoting.cs +++ b/Subsurface/Source/Screens/NetLobbyVoting.cs @@ -128,7 +128,7 @@ namespace Barotrauma voteText.UserData = "votes"; } - voteText.Text = votes.ToString(); + voteText.Text = votes == 0 ? "" : votes.ToString(); } } @@ -233,6 +233,11 @@ namespace Barotrauma AllowSubVoting = msg.ReadBoolean(); if (allowSubVoting) { + foreach (Submarine sub in Submarine.SavedSubmarines) + { + SetVoteText(GameMain.NetLobbyScreen.SubList, sub, 0); + } + int votableCount = msg.ReadByte(); for (int i = 0; i < votableCount; i++) { @@ -252,7 +257,7 @@ namespace Barotrauma int votes = msg.ReadByte(); string modeName = msg.ReadString(); GameModePreset mode = GameModePreset.list.Find(m => m.Name == modeName); - SetVoteText(GameMain.NetLobbyScreen.SubList, mode, votes); + SetVoteText(GameMain.NetLobbyScreen.ModeList, mode, votes); } } diff --git a/Subsurface/Source/Screens/ServerListScreen.cs b/Subsurface/Source/Screens/ServerListScreen.cs index 13a49f10e..26a57b4c6 100644 --- a/Subsurface/Source/Screens/ServerListScreen.cs +++ b/Subsurface/Source/Screens/ServerListScreen.cs @@ -169,7 +169,7 @@ namespace Barotrauma string maxPlayersStr = (arguments.Length > 5) ? arguments[5] : ""; - string hasPassWordStr = (arguments.Length > 5) ? arguments[5] : ""; + string hasPassWordStr = (arguments.Length > 6) ? arguments[6] : ""; var serverFrame = new GUIFrame(new Rectangle(0, 0, 0, 20), (i % 2 == 0) ? Color.Transparent : Color.White * 0.2f, null, serverList); serverFrame.UserData = IP + ":" + port; diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index a02bd522ab502f7e976221c4486133cd075df81a..26a27c602f22cebfec34d68c4979a3770a3e4918 100644 GIT binary patch delta 14405 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 delta 14788 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 From 7309201b11ba49b57997c5714c2fd997248b34e4 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 27 Feb 2016 00:25:13 +0200 Subject: [PATCH 3/8] File sharing fixes: canceling transfers, displaying transfers & progress server-side, invalid sub files aren't selected or sent --- Subsurface/Source/DebugConsole.cs | 14 +++ Subsurface/Source/GUI/GUIMessageBox.cs | 2 +- Subsurface/Source/Map/Submarine.cs | 12 +- .../Source/Networking/FileStreamReceiver.cs | 102 ++++++++++++----- .../Source/Networking/FileStreamSender.cs | 28 ++++- Subsurface/Source/Networking/GameClient.cs | 7 +- Subsurface/Source/Networking/GameServer.cs | 108 ++++++++++++------ Subsurface/Source/Screens/NetLobbyScreen.cs | 27 +++-- Subsurface_Solution.v12.suo | Bin 907264 -> 875520 bytes 9 files changed, 217 insertions(+), 83 deletions(-) diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index 881ba1590..d5d4b87db 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -417,6 +417,20 @@ namespace Barotrauma //Hull.DebugDraw = !Hull.DebugDraw; //Ragdoll.DebugDraw = !Ragdoll.DebugDraw; GameMain.DebugDraw = !GameMain.DebugDraw; + break; + case "sendrandomdata": + int messageCount = 1; + + if (commands.Length>1) int.TryParse(commands[1], out messageCount); + + for (int i = 0; i < messageCount; i++ ) + { + if (GameMain.Server!=null) + { + GameMain.Server.SendRandomData(); + } + } + break; case "netstats": if (GameMain.Server == null) return; diff --git a/Subsurface/Source/GUI/GUIMessageBox.cs b/Subsurface/Source/GUI/GUIMessageBox.cs index 5d25a0f2c..3546b5766 100644 --- a/Subsurface/Source/GUI/GUIMessageBox.cs +++ b/Subsurface/Source/GUI/GUIMessageBox.cs @@ -7,7 +7,7 @@ namespace Barotrauma { public static Queue MessageBoxes = new Queue(); - const int DefaultWidth=400, DefaultHeight=200; + const int DefaultWidth=400, DefaultHeight=250; //public delegate bool OnClickedHandler(GUIButton button, object obj); //public OnClickedHandler OnClicked; diff --git a/Subsurface/Source/Map/Submarine.cs b/Subsurface/Source/Map/Submarine.cs index 8c2879ee4..c1cc4d92d 100644 --- a/Subsurface/Source/Map/Submarine.cs +++ b/Subsurface/Source/Map/Submarine.cs @@ -631,12 +631,16 @@ namespace Barotrauma if (extension == ".sub") { - Stream stream = SaveUtil.DecompressFiletoStream(file); - if (stream == null) + Stream stream = null; + try { - DebugConsole.ThrowError("Loading submarine ''" + file + "'' failed!"); - return null; + stream = SaveUtil.DecompressFiletoStream(file); } + catch (Exception e) + { + DebugConsole.ThrowError("Loading submarine ''" + file + "'' failed!", e); + return null; + } try { diff --git a/Subsurface/Source/Networking/FileStreamReceiver.cs b/Subsurface/Source/Networking/FileStreamReceiver.cs index 8030dfff3..89f8c32fd 100644 --- a/Subsurface/Source/Networking/FileStreamReceiver.cs +++ b/Subsurface/Source/Networking/FileStreamReceiver.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Text.RegularExpressions; +using System.Xml.Linq; namespace Barotrauma.Networking { @@ -18,7 +19,7 @@ namespace Barotrauma.Networking private FileStream writeStream; private int timeStarted; - private string filePath; + private string downloadFolder; private FileTransferType fileType; @@ -28,11 +29,6 @@ namespace Barotrauma.Networking private set; } - public string FilePath - { - get { return filePath; } - } - public ulong FileSize { get { return length; } @@ -69,14 +65,13 @@ namespace Barotrauma.Networking public float Progress { get { return (float)received / (float)length; } - } public FileStreamReceiver(NetClient client, string filePath, FileTransferType fileType, OnFinished onFinished) { this.client = client; - this.filePath = filePath; + this.downloadFolder = filePath; this.fileType = fileType; this.onFinished = onFinished; @@ -92,8 +87,10 @@ namespace Barotrauma.Networking } catch (Exception e) { - DebugConsole.ThrowError("Error while receiving file ''"+FileName+"''", e); - Status = FileTransferStatus.Error; + ErrorMessage = "Error while receiving file ''"+FileName+"'' {"+e.Message+"}"; + DeleteFile(); + + if (onFinished != null) onFinished(this); } } @@ -102,21 +99,18 @@ namespace Barotrauma.Networking if (fileSize > MaxFileSize) { ErrorMessage = "File too large (" + MathUtils.GetBytesReadable((long)fileSize) + ")"; - Status = FileTransferStatus.Error; return false; } if (type != (byte)fileType) { - ErrorMessage = "Unexpected file type ''"+type+"'' (expected "+fileType+")"; - Status = FileTransferStatus.Error; + ErrorMessage = "Unexpected file type ''" + type + "'' (expected " + fileType + ")"; return false; } if (!Regex.Match(fileName, @"^[\w\- ]+[\w\-. ]*$").Success) { - ErrorMessage = "Illegal characters in file name ''"+fileName+"''"; - Status = FileTransferStatus.Error; + ErrorMessage = "Illegal characters in file name ''" + fileName + "''"; return false; } @@ -125,9 +119,7 @@ namespace Barotrauma.Networking case (byte)FileTransferType.Submarine: if (Path.GetExtension(fileName) != ".sub") { - ErrorMessage = "Wrong file extension ''" + Path.GetExtension(fileName)+"''! (Expected .sub)"; - - Status = FileTransferStatus.Error; + ErrorMessage = "Wrong file extension ''" + Path.GetExtension(fileName) + "''! (Expected .sub)"; return false; } break; @@ -138,12 +130,17 @@ namespace Barotrauma.Networking public void DeleteFile() { - string file = Path.Combine(filePath, FileName); + if (FileName == null) return; - writeStream.Flush(); - writeStream.Close(); - writeStream.Dispose(); - writeStream = null; + string file = Path.Combine(downloadFolder, FileName); + + if (writeStream!=null) + { + writeStream.Flush(); + writeStream.Close(); + writeStream.Dispose(); + writeStream = null; + } Status = FileTransferStatus.Canceled; @@ -170,9 +167,9 @@ namespace Barotrauma.Networking if (length == 0) { - if (!Directory.Exists(filePath)) + if (!string.IsNullOrWhiteSpace(downloadFolder) && !Directory.Exists(downloadFolder)) { - Directory.CreateDirectory(filePath); + Directory.CreateDirectory(downloadFolder); } byte fileTypeByte = inc.ReadByte(); @@ -183,11 +180,12 @@ namespace Barotrauma.Networking if (!ValidateInitialData(fileTypeByte, FileName, length)) { Status = FileTransferStatus.Error; + DeleteFile(); if (onFinished != null) onFinished(this); return; } - writeStream = new FileStream(Path.Combine(filePath, FileName), FileMode.Create, FileAccess.Write, FileShare.None); + writeStream = new FileStream(Path.Combine(downloadFolder, FileName), FileMode.Create, FileAccess.Write, FileShare.None); timeStarted = Environment.TickCount; Status = FileTransferStatus.NotStarted; @@ -218,10 +216,60 @@ namespace Barotrauma.Networking if (received >= length) { - Status = FileTransferStatus.Finished; + writeStream.Flush(); + writeStream.Close(); + writeStream.Dispose(); + writeStream = null; + + Status = IsReceivedFileValid() ? FileTransferStatus.Finished : FileTransferStatus.Error; if (onFinished!=null) onFinished(this); + + if (Status == FileTransferStatus.Error) DeleteFile(); + Dispose(); } } + + private bool IsReceivedFileValid() + { + switch (fileType) + { + case FileTransferType.Submarine: + string file = Path.Combine(downloadFolder, FileName); + Stream stream = null; + + try + { + stream = SaveUtil.DecompressFiletoStream(file); + } + catch (Exception e) + { + ErrorMessage = "Loading submarine ''" + file + "'' failed! {"+ e.Message + "}"; + return false; + } + + if (stream == null) + { + ErrorMessage = "Decompressing submarine file''" + file + "'' failed!"; + return false; + } + + try + { + stream.Position = 0; + var doc = XDocument.Load(stream); //ToolBox.TryLoadXml(file); + stream.Close(); + stream.Dispose(); + } + catch + { + ErrorMessage = "Failed to parse submarine file ''"+file+"''!"; + return false; + } + break; + } + + return true; + } public void Dispose() { diff --git a/Subsurface/Source/Networking/FileStreamSender.cs b/Subsurface/Source/Networking/FileStreamSender.cs index 86c2caf4b..8832ba541 100644 --- a/Subsurface/Source/Networking/FileStreamSender.cs +++ b/Subsurface/Source/Networking/FileStreamSender.cs @@ -11,7 +11,7 @@ namespace Barotrauma.Networking enum FileTransferType { - Unknown, Submarine + Unknown, Submarine, Cancel } class FileStreamSender : IDisposable @@ -39,6 +39,20 @@ namespace Barotrauma.Networking private set; } + public float Progress + { + get { return inputStream == null ? 0.0f : (float)sentOffset / (float)inputStream.Length; } + } + + public int Sent + { + get { return sentOffset; } + } + + public long FileSize + { + get { return inputStream == null ? 0 : inputStream.Length; } + } public static FileStreamSender Create(NetConnection conn, string fileName, FileTransferType fileType) { @@ -68,7 +82,10 @@ namespace Barotrauma.Networking public void Update(float deltaTime) { - if (inputStream == null) return; + if (inputStream == null || + Status == FileTransferStatus.Canceled || + Status == FileTransferStatus.Error || + Status == FileTransferStatus.Finished) return; waitTimer -= deltaTime; if (waitTimer > 0.0f) return; @@ -112,7 +129,12 @@ namespace Barotrauma.Networking //Dispose(); Status = FileTransferStatus.Finished; - } + } + } + + public void CancelTransfer() + { + Status = FileTransferStatus.Canceled; } diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 7b938b5d6..486858c4d 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -713,6 +713,11 @@ namespace Barotrauma.Networking fileStreamReceiver.DeleteFile(); fileStreamReceiver.Dispose(); fileStreamReceiver = null; + + NetOutgoingMessage msg = client.CreateMessage(); + msg.Write((byte)PacketTypes.RequestFile); + msg.Write((byte)FileTransferType.Cancel); + client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); } } @@ -736,7 +741,7 @@ namespace Barotrauma.Networking { if (receiver.Status == FileTransferStatus.Error) { - new GUIMessageBox("Error while receiving file from server", receiver.ErrorMessage); + new GUIMessageBox("Error while receiving file from server", receiver.ErrorMessage, 400, 350); receiver.DeleteFile(); } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index b970c6c9d..b408f8d6f 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -312,13 +312,36 @@ namespace Barotrauma.Networking foreach (Client c in ConnectedClients) { - if (c.FileStreamSender!=null && Rand.Range(0.0f, 1.0f)<0.01f) + if (c.FileStreamSender != null) { + var clientNameBox = GameMain.NetLobbyScreen.PlayerList.FindChild(c.name); + var clientInfo = clientNameBox.FindChild(c.FileStreamSender); + + if (clientInfo==null) + { + clientInfo = new GUIFrame(new Rectangle(0,0,180,0), Color.Transparent, Alignment.TopRight, null, clientNameBox); + clientInfo.UserData = c.FileStreamSender; + new GUIProgressBar(new Rectangle(0, 4, 0, clientInfo.Rect.Height-8), Color.Green, GUI.Style, 0.0f, Alignment.Left, clientInfo).IsHorizontal = true; + new GUITextBlock(new Rectangle(0,2,0,0), "", GUI.Style, Alignment.TopLeft, Alignment.Left | Alignment.CenterY, clientInfo, true, GUI.SmallFont); + } + else + { + var progressBar = clientInfo.GetChild(); + progressBar.BarSize = c.FileStreamSender.Progress; + + var progressText = clientInfo.GetChild(); + progressText.Text = c.FileStreamSender.FileName + " " + + MathUtils.GetBytesReadable(c.FileStreamSender.Sent) + " / " + MathUtils.GetBytesReadable(c.FileStreamSender.FileSize); + } + c.FileStreamSender.Update(deltaTime); if (c.FileStreamSender.Status == FileTransferStatus.Finished || - c.FileStreamSender.Status == FileTransferStatus.Error) + c.FileStreamSender.Status == FileTransferStatus.Error || + c.FileStreamSender.Status == FileTransferStatus.Canceled) { + clientNameBox.RemoveChild(clientInfo); + c.FileStreamSender.Dispose(); c.FileStreamSender = null; } @@ -522,11 +545,13 @@ namespace Barotrauma.Networking var outmsg = server.CreateMessage(); outmsg.Write((byte)PacketTypes.RequestFile); outmsg.Write(false); + outmsg.Write("File downloads disabled by the server"); + server.SendMessage(outmsg, dataSender.Connection, NetDeliveryMethod.ReliableUnordered); break; } byte fileType = inc.ReadByte(); - string fileName = inc.ReadString(); + string fileName = fileType == (byte)FileTransferType.Cancel ? "" : inc.ReadString(); switch (fileType) { @@ -544,6 +569,12 @@ namespace Barotrauma.Networking if (fileStreamSender != null) dataSender.FileStreamSender = fileStreamSender; } break; + case (byte)FileTransferType.Cancel: + if (dataSender.FileStreamSender != null) + { + dataSender.FileStreamSender.CancelTransfer(); + } + break; default: DebugConsole.ThrowError("Unknown file type was requested ("+fileType+")"); break; @@ -1079,6 +1110,12 @@ namespace Barotrauma.Networking server.SendMessage(outmsg, server.Connections, NetDeliveryMethod.ReliableUnordered, 0); } + if (client.FileStreamSender != null) + { + client.FileStreamSender.Dispose(); + client.FileStreamSender = null; + } + AddChatMessage(msg, ChatMessageType.Server); UpdateCrewFrame(); @@ -1516,38 +1553,38 @@ namespace Barotrauma.Networking /// sends some random data to the clients /// use for debugging purposes /// - //public void SendRandomData() - //{ - // NetOutgoingMessage msg = server.CreateMessage(); - // switch (Rand.Int(5)) - // { - // case 0: - // msg.WriteEnum(PacketTypes.NetworkEvent); - // msg.Write(Rand.Int(Enum.GetNames(typeof(NetworkEventType)).Length)); - // msg.Write(Rand.Int(MapEntity.mapEntityList.Count)); - // break; - // case 1: - // msg.WriteEnum(PacketTypes.NetworkEvent); - // msg.WriteEnum(NetworkEventType.ComponentUpdate); - // msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); - // msg.Write(Rand.Int(8)); - // break; - // case 2: - // msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); - // break; - // case 3: - // msg.Write((byte)PacketTypes.UpdateNetLobby); - // break; - // } + public void SendRandomData() + { + NetOutgoingMessage msg = server.CreateMessage(); + switch (Rand.Int(5)) + { + case 0: + msg.Write((byte)PacketTypes.NetworkEvent); + msg.Write((byte)Rand.Int(Enum.GetNames(typeof(NetworkEventType)).Length)); + msg.Write((ushort)Rand.Int(MapEntity.mapEntityList.Count)); + break; + case 1: + msg.Write((byte)PacketTypes.NetworkEvent); + msg.Write((byte)NetworkEventType.ComponentUpdate); + msg.Write((int)Item.ItemList[Rand.Int(Item.ItemList.Count)].ID); + msg.Write(Rand.Int(8)); + break; + case 2: + msg.Write((byte)Enum.GetNames(typeof(PacketTypes)).Length); + break; + case 3: + msg.Write((byte)PacketTypes.UpdateNetLobby); + break; + } - // int bitCount = Rand.Int(100); - // for (int i = 0; i < bitCount; i++) - // { - // msg.Write(Rand.Int(2) == 0); - // } - // SendMessage(msg, (Rand.Int(2) == 0) ? NetDeliveryMethod.ReliableOrdered : NetDeliveryMethod.Unreliable, null); + int bitCount = Rand.Int(100); + for (int i = 0; i < bitCount; i++) + { + msg.Write(Rand.Int(2) == 0); + } + SendMessage(msg, (Rand.Int(2) == 0) ? NetDeliveryMethod.ReliableOrdered : NetDeliveryMethod.Unreliable, null); - //} + } public override void Disconnect() { @@ -1559,6 +1596,11 @@ namespace Barotrauma.Networking log.Save(); } + foreach (Client client in ConnectedClients) + { + if (client.FileStreamSender != null) client.FileStreamSender.Dispose(); + } + server.Shutdown("The server has shut down"); } } diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 215131455..bcad8ce5e 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -55,6 +55,11 @@ namespace Barotrauma get { return modeList; } } + public GUIListBox PlayerList + { + get { return playerList; } + } + public GUIFrame InfoFrame { get { return infoFrame; } @@ -505,14 +510,11 @@ namespace Barotrauma { valueChanged = true; - //Submarine sub = (Submarine)obj; + + var hash = (obj as Submarine).MD5Hash; - //submarine already loaded - //if (Submarine.Loaded != null && sub.FilePath == Submarine.Loaded.FilePath) return true; - - //sub.Load(); - - return true; + //hash will be null if opening the sub file failed -> don't select the sub + return hash.Hash != null; } public void UpdateSubList() @@ -657,10 +659,7 @@ namespace Barotrauma public void ClearPlayers() { - for (int i = 1; iM$0Hgc(2<*Hh=6#>6pmFJwsQYleC3^>Z4p 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 Pc=i~Q@A<)hA29ttUM!M> From cc4ada952f5fc061c9e0b742cf2934c2c88b7e45 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 27 Feb 2016 21:01:10 +0200 Subject: [PATCH 4/8] - File transfer improvements (switching the sub selection during transfer works, max transfer duration, waiting for transfers to finish before starting the round) - Firesource changes (more particles with shorter lifetimes, combining bugfix) - StatusEffects can target hulls and always be active - Cyrillic character support - Saving server settings - Swapping items in inventory by dropping an item to a non-free slot --- .../Content/Items/Artifacts/artifacts.xml | 6 +- Subsurface/Content/LargeFont.xnb | Bin 177755 -> 345514 bytes .../Content/Particles/ParticlePrefabs.xml | 4 +- Subsurface/Content/SmallFont.xnb | Bin 62043 -> 126378 bytes Subsurface/Content/SpriteFont1.xnb | Bin 79451 -> 163242 bytes Subsurface/Source/Characters/Character.cs | 19 ++- Subsurface/Source/Characters/StatusEffect.cs | 14 +- Subsurface/Source/DebugConsole.cs | 9 +- Subsurface/Source/GameMain.cs | 6 +- Subsurface/Source/Items/CharacterInventory.cs | 23 +++ Subsurface/Source/Items/Item.cs | 23 ++- Subsurface/Source/Map/FireSource.cs | 14 +- Subsurface/Source/Map/Hull.cs | 14 +- Subsurface/Source/Map/Submarine.cs | 8 +- .../Source/Networking/FileStreamReceiver.cs | 26 ++-- .../Source/Networking/FileStreamSender.cs | 56 +++++-- Subsurface/Source/Networking/GameClient.cs | 93 +++++++---- Subsurface/Source/Networking/GameServer.cs | 145 ++++++++++++------ .../Source/Networking/GameServerSettings.cs | 64 ++++++++ Subsurface/Source/Networking/NetworkMember.cs | 2 +- Subsurface/Source/Networking/ServerLog.cs | 8 +- Subsurface/Source/PlayerInput.cs | 32 ++-- Subsurface/Source/Properties.cs | 6 +- Subsurface/Source/Screens/EditMapScreen.cs | 10 +- Subsurface/Source/Screens/NetLobbyScreen.cs | 79 +++++----- Subsurface_Solution.v12.suo | Bin 875520 -> 879616 bytes .../bin/PSM/Content/SpriteFont1.spritefont | 2 +- .../bin/PSM/Content/SpriteFont1.xnb | Bin 79451 -> 163242 bytes .../LargeFont.spritefont | 2 +- .../SmallFont.spritefont | 2 +- .../SpriteFont1.spritefont | 2 +- 31 files changed, 470 insertions(+), 199 deletions(-) diff --git a/Subsurface/Content/Items/Artifacts/artifacts.xml b/Subsurface/Content/Items/Artifacts/artifacts.xml index 9b81e1a74..f195a8fdc 100644 --- a/Subsurface/Content/Items/Artifacts/artifacts.xml +++ b/Subsurface/Content/Items/Artifacts/artifacts.xml @@ -16,7 +16,9 @@ - + + + - + diff --git a/Subsurface/Content/LargeFont.xnb b/Subsurface/Content/LargeFont.xnb index 3f9a445ef933231c04759fe563aed7754cec3f34..9982c5a6aa4316dd5fac912b23c5249c1768b39f 100644 GIT binary patch literal 345514 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 Ra*k4SzN>EXk6zIHe*p$Hx3vHO literal 177755 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 P)!*gBzK_i1;qLJbAUZ6* diff --git a/Subsurface/Content/Particles/ParticlePrefabs.xml b/Subsurface/Content/Particles/ParticlePrefabs.xml index e8db4ff60..83cce1985 100644 --- a/Subsurface/Content/Particles/ParticlePrefabs.xml +++ b/Subsurface/Content/Particles/ParticlePrefabs.xml @@ -115,8 +115,8 @@ sizechangemin="0.1,0.1" sizechangemax="0.2,0.2" startrotationmin ="-20.0" startrotationmax="20" startcolor="1.0, 1.0, 1.0" startalpha="1.0" - colorchange="-0.6, -1.0, -4.2, -0.8" - lifetime="5.0" + colorchange="-0.9, -1.5, -6.3, -1.2" + lifetime="2.5" growtime ="0.05" drawtarget="air" collideswithwalls="true" diff --git a/Subsurface/Content/SmallFont.xnb b/Subsurface/Content/SmallFont.xnb index 31fcd83923bbd5188b6ee209442e622a68e7964f..ba36953823109dda663469a99706a42ee725dd3f 100644 GIT binary patch literal 126378 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 TvnY&>6hovHLB2O%@c#b~+XCgX literal 79451 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 cCAuyZ`l`2{SDE$trNUe7X*7#* 0.0f; @@ -1421,9 +1434,9 @@ namespace Barotrauma return true; case NetworkEventType.EntityUpdate: - message.Write(keys[(int)InputType.Use].DequeueHeld); + message.Write(keys[(int)InputType.Use].GetHeldQueue); - bool secondaryHeld = keys[(int)InputType.Aim].DequeueHeld; + bool secondaryHeld = keys[(int)InputType.Aim].GetHeldQueue; message.Write(secondaryHeld); message.Write(keys[(int)InputType.Left].Held); @@ -1469,6 +1482,8 @@ namespace Barotrauma message.Write(SimPosition.X); message.Write(SimPosition.Y); + networkUpdateSent = true; + return true; default: #if DEBUG diff --git a/Subsurface/Source/Characters/StatusEffect.cs b/Subsurface/Source/Characters/StatusEffect.cs index 89f038175..48b95af00 100644 --- a/Subsurface/Source/Characters/StatusEffect.cs +++ b/Subsurface/Source/Characters/StatusEffect.cs @@ -273,20 +273,21 @@ namespace Barotrauma if (disableDeltaTime) deltaTime = 1.0f; Type type = value.GetType(); - if (type == typeof(float)) + if (type == typeof(float) || + (type == typeof(int) && property.GetValue().GetType() == typeof(float))) { - float floatValue = (float)value * deltaTime; + float floatValue = Convert.ToSingle(value) * deltaTime; if (!setValue) floatValue += (float)property.GetValue(); property.TrySetValue(floatValue); } - else if (type == typeof(int)) + else if (type == typeof(int) && value.GetType()==typeof(int)) { int intValue = (int)((int)value * deltaTime); if (!setValue) intValue += (int)property.GetValue(); property.TrySetValue(intValue); } - else if (type == typeof(bool)) + else if (type == typeof(bool) && value.GetType() == typeof(bool)) { property.TrySetValue((bool)value); } @@ -294,6 +295,11 @@ namespace Barotrauma { property.TrySetValue((string)value); } + else + { + DebugConsole.ThrowError("Couldn't apply value "+value.ToString()+" ("+type+") to property ''"+property.Name+"'' ("+property.GetValue().GetType()+")! " + +"Make sure the type of the value set in the config files matches the type of the property."); + } } public static void UpdateAll(float deltaTime) diff --git a/Subsurface/Source/DebugConsole.cs b/Subsurface/Source/DebugConsole.cs index d5d4b87db..e01da3187 100644 --- a/Subsurface/Source/DebugConsole.cs +++ b/Subsurface/Source/DebugConsole.cs @@ -381,7 +381,8 @@ namespace Barotrauma DebugConsole.ThrowError("Illegal symbols in filename (../)"); return; } - if (Submarine.SaveCurrent(fileName +".sub")) NewMessage("map saved", Color.Green); + + if (Submarine.SaveCurrent(System.IO.Path.Combine(Submarine.SavePath, fileName +".sub"))) NewMessage("map saved", Color.Green); Submarine.Loaded.CheckForErrors(); break; @@ -493,6 +494,12 @@ namespace Barotrauma DebugConsole.NewMessage("Deleted TutorialSub from the submarine folder", Color.Green); } + if (System.IO.File.Exists(GameServer.SettingsFile)) + { + System.IO.File.Delete(GameServer.SettingsFile); + DebugConsole.NewMessage("Deleted server settings", Color.Green); + } + if (System.IO.File.Exists("crashreport.txt")) { System.IO.File.Delete("crashreport.txt"); diff --git a/Subsurface/Source/GameMain.cs b/Subsurface/Source/GameMain.cs index dd83c7cb0..0d9117ada 100644 --- a/Subsurface/Source/GameMain.cs +++ b/Subsurface/Source/GameMain.cs @@ -157,8 +157,8 @@ namespace Barotrauma Hyper.ComponentModel.HyperTypeDescriptionProvider.Add(typeof(Character)); Hyper.ComponentModel.HyperTypeDescriptionProvider.Add(typeof(Item)); - - //Event.Init("Content/randomevents.xml"); + Hyper.ComponentModel.HyperTypeDescriptionProvider.Add(typeof(Items.Components.ItemComponent)); + Hyper.ComponentModel.HyperTypeDescriptionProvider.Add(typeof(Hull)); } /// @@ -353,7 +353,7 @@ namespace Barotrauma protected override void OnExiting(object sender, EventArgs args) { if (NetworkMember != null) NetworkMember.Disconnect(); - + base.OnExiting(sender, args); } diff --git a/Subsurface/Source/Items/CharacterInventory.cs b/Subsurface/Source/Items/CharacterInventory.cs index b7c9697d9..3fd75bb56 100644 --- a/Subsurface/Source/Items/CharacterInventory.cs +++ b/Subsurface/Source/Items/CharacterInventory.cs @@ -172,6 +172,29 @@ namespace Barotrauma combined = true; } + //if moving the item between slots in the same inventory + else if (item.ParentInventory == this) + { + int currentIndex = Array.IndexOf(Items, item); + + Item existingItem = Items[index]; + + Items[currentIndex] = null; + Items[index] = null; + //if the item in the slot can be moved to the slot of the moved item + if (TryPutItem(existingItem, currentIndex, false) && + TryPutItem(item, index, false)) + { + new Networking.NetworkEvent(Networking.NetworkEventType.InventoryUpdate, Owner.ID, true, true); + } + else + { + //swapping the items failed -> move them back to where they were + TryPutItem(item, currentIndex, false); + TryPutItem(existingItem, index, false); + } + + } return combined; } diff --git a/Subsurface/Source/Items/Item.cs b/Subsurface/Source/Items/Item.cs index ac9d4ea0f..fe5e3c6cf 100644 --- a/Subsurface/Source/Items/Item.cs +++ b/Subsurface/Source/Items/Item.cs @@ -487,7 +487,8 @@ namespace Barotrauma public void ApplyStatusEffect(StatusEffect effect, ActionType type, float deltaTime, Character character = null) { if (condition == 0.0f && effect.type != ActionType.OnBroken) return; - + if (effect.type != type) return; + bool hasTargets = (effect.TargetNames == null); Item[] containedItems = ContainedItems; @@ -501,10 +502,10 @@ namespace Barotrauma List targets = new List(); - if (containedItems!=null) + if (containedItems != null) { if (effect.Targets.HasFlag(StatusEffect.TargetType.Contained)) - { + { foreach (Item containedItem in containedItems) { if (containedItem == null) continue; @@ -528,9 +529,14 @@ namespace Barotrauma } } - if (!hasTargets) return; - + + if (effect.Targets.HasFlag(StatusEffect.TargetType.Hull) && CurrentHull != null) + { + targets.Add(CurrentHull); + } + + if (effect.Targets.HasFlag(StatusEffect.TargetType.This)) { foreach (var pobject in AllPropertyObjects) @@ -550,7 +556,7 @@ namespace Barotrauma // effect.Apply(type, deltaTime, container); // //container.ApplyStatusEffect(effect, type, deltaTime, container); //} - + effect.Apply(type, deltaTime, this, targets); } @@ -575,7 +581,10 @@ namespace Barotrauma public override void Update(Camera cam, float deltaTime) - { + { + + ApplyStatusEffects(ActionType.Always, deltaTime, null); + foreach (ItemComponent ic in components) { if (ic.Parent != null) ic.IsActive = ic.Parent.IsActive; diff --git a/Subsurface/Source/Map/FireSource.cs b/Subsurface/Source/Map/FireSource.cs index 24898c8bf..218cf4709 100644 --- a/Subsurface/Source/Map/FireSource.cs +++ b/Subsurface/Source/Map/FireSource.cs @@ -116,11 +116,13 @@ namespace Barotrauma if (!fireSources[i].CheckOverLap(fireSources[j])) continue; - fireSources[j].position.X = Math.Min(fireSources[i].position.X, fireSources[j].position.X); + float leftEdge = Math.Min(fireSources[i].position.X, fireSources[j].position.X); fireSources[j].size.X = Math.Max(fireSources[i].position.X + fireSources[i].size.X, fireSources[j].position.X + fireSources[j].size.X) - - fireSources[j].position.X; + - leftEdge; + + fireSources[j].position.X = leftEdge; fireSources[i].Remove(); } @@ -140,7 +142,7 @@ namespace Barotrauma public void Update(float deltaTime) { - float count = Rand.Range(0.0f, (float)Math.Sqrt(size.X)/3.0f); + float count = Rand.Range(0.0f, size.X/50.0f); if (fireSoundBasic != null) { @@ -173,10 +175,10 @@ namespace Barotrauma spawnPos, speed, 0.0f, hull); if (particle == null) continue; - + if (Rand.Int(20) == 1) particle.OnChangeHull = OnChangeHull; - particle.Size *= MathHelper.Clamp(size.X/100.0f * Math.Max(hull.Oxygen/hull.FullVolume, 0.4f), 0.5f, 4.0f); + particle.Size *= MathHelper.Clamp(size.X/60.0f * Math.Max(hull.Oxygen/hull.FullVolume, 0.4f), 0.5f, 3.0f); if (size.X < 100.0f) continue; @@ -218,7 +220,7 @@ namespace Barotrauma if (particleHull.FireSources.Find(fs => pos.X > fs.position.X-100.0f && pos.X < fs.position.X+fs.size.X+100.0f)!=null) return; - new FireSource(new Vector2(pos.X, particleHull.Rect.Y-particleHull.Rect.Height + 5.0f)); + new FireSource(new Vector2(pos.X, particleHull.WorldRect.Y-particleHull.Rect.Height + 5.0f)); } private void DamageCharacters(float deltaTime) diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index c0eb3cf8f..de63e87d8 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -11,7 +11,7 @@ using Lidgren.Network; namespace Barotrauma { - class Hull : MapEntity + class Hull : MapEntity, IPropertyObject { public static List hullList = new List(); private static EntityGrid entityGrid; @@ -19,7 +19,7 @@ namespace Barotrauma public static bool ShowHulls = true; public static bool EditWater, EditFire; - + public static WaterRenderer renderer; private List fireSources; @@ -36,7 +36,11 @@ namespace Barotrauma //how much excess water the room can contain (= more than the volume of the room) public const float MaxCompress = 10000f; - public readonly Dictionary properties; + public readonly Dictionary properties; + public Dictionary ObjectProperties + { + get { return properties; } + } private float lethalPressure; @@ -161,9 +165,7 @@ namespace Barotrauma fireSources = new List(); - properties = TypeDescriptor.GetProperties(GetType()) - .Cast() - .ToDictionary(pr => pr.Name); + properties = ObjectProperty.GetProperties(this); int arraySize = (rectangle.Width / WaveWidth + 1); waveY = new float[arraySize]; diff --git a/Subsurface/Source/Map/Submarine.cs b/Subsurface/Source/Map/Submarine.cs index c1cc4d92d..1fd6db4ca 100644 --- a/Subsurface/Source/Map/Submarine.cs +++ b/Subsurface/Source/Map/Submarine.cs @@ -511,17 +511,17 @@ namespace Barotrauma return true; } - public static bool SaveCurrent(string fileName) + public static bool SaveCurrent(string filePath) { if (loaded==null) { - loaded = new Submarine(fileName); + loaded = new Submarine(filePath); // return; } - loaded.filePath = SavePath + System.IO.Path.DirectorySeparatorChar + fileName; + loaded.filePath = filePath; - return loaded.SaveAs(SavePath+System.IO.Path.DirectorySeparatorChar+fileName); + return loaded.SaveAs(filePath); } public void CheckForErrors() diff --git a/Subsurface/Source/Networking/FileStreamReceiver.cs b/Subsurface/Source/Networking/FileStreamReceiver.cs index 89f8c32fd..2fc14244b 100644 --- a/Subsurface/Source/Networking/FileStreamReceiver.cs +++ b/Subsurface/Source/Networking/FileStreamReceiver.cs @@ -21,7 +21,7 @@ namespace Barotrauma.Networking private string downloadFolder; - private FileTransferType fileType; + private FileTransferMessageType fileType; public string FileName { @@ -39,7 +39,7 @@ namespace Barotrauma.Networking get { return received; } } - public FileTransferType FileType + public FileTransferMessageType FileType { get { return fileType; } } @@ -67,7 +67,7 @@ namespace Barotrauma.Networking get { return (float)received / (float)length; } } - public FileStreamReceiver(NetClient client, string filePath, FileTransferType fileType, OnFinished onFinished) + public FileStreamReceiver(NetClient client, string filePath, FileTransferMessageType fileType, OnFinished onFinished) { this.client = client; @@ -116,7 +116,7 @@ namespace Barotrauma.Networking switch (type) { - case (byte)FileTransferType.Submarine: + case (byte)FileTransferMessageType.Submarine: if (Path.GetExtension(fileName) != ".sub") { ErrorMessage = "Wrong file extension ''" + Path.GetExtension(fileName) + "''! (Expected .sub)"; @@ -163,9 +163,12 @@ namespace Barotrauma.Networking Status == FileTransferStatus.Finished || Status == FileTransferStatus.Canceled) return; + byte transferMessageType = inc.ReadByte(); + //int chunkLen = inc.LengthBytes; if (length == 0) { + if (transferMessageType != (byte)FileTransferMessageType.Initiate) return; if (!string.IsNullOrWhiteSpace(downloadFolder) && !Directory.Exists(downloadFolder)) { @@ -174,6 +177,7 @@ namespace Barotrauma.Networking byte fileTypeByte = inc.ReadByte(); + length = inc.ReadUInt64(); FileName = inc.ReadString(); @@ -233,7 +237,7 @@ namespace Barotrauma.Networking { switch (fileType) { - case FileTransferType.Submarine: + case FileTransferMessageType.Submarine: string file = Path.Combine(downloadFolder, FileName); Stream stream = null; @@ -255,16 +259,20 @@ namespace Barotrauma.Networking try { - stream.Position = 0; - var doc = XDocument.Load(stream); //ToolBox.TryLoadXml(file); - stream.Close(); - stream.Dispose(); + stream.Position = 0; + var doc = XDocument.Load(stream); } catch { + stream.Close(); + stream.Dispose(); + ErrorMessage = "Failed to parse submarine file ''"+file+"''!"; return false; } + + stream.Close(); + stream.Dispose(); break; } diff --git a/Subsurface/Source/Networking/FileStreamSender.cs b/Subsurface/Source/Networking/FileStreamSender.cs index 8832ba541..6a7ebedde 100644 --- a/Subsurface/Source/Networking/FileStreamSender.cs +++ b/Subsurface/Source/Networking/FileStreamSender.cs @@ -9,13 +9,15 @@ namespace Barotrauma.Networking NotStarted, Sending, Receiving, Finished, Error, Canceled } - enum FileTransferType + enum FileTransferMessageType { - Unknown, Submarine, Cancel + Unknown, Initiate, Submarine, Cancel } class FileStreamSender : IDisposable { + public static TimeSpan MaxTransferDuration = new TimeSpan(0, 2, 0); + private FileStream inputStream; private int sentOffset; private int chunkLen; @@ -24,8 +26,9 @@ namespace Barotrauma.Networking float waitTimer; + DateTime startingTime; - private FileTransferType fileType; + private FileTransferMessageType fileType; public FileTransferStatus Status { @@ -39,6 +42,12 @@ namespace Barotrauma.Networking private set; } + public string FilePath + { + get; + private set; + } + public float Progress { get { return inputStream == null ? 0.0f : (float)sentOffset / (float)inputStream.Length; } @@ -54,30 +63,45 @@ namespace Barotrauma.Networking get { return inputStream == null ? 0 : inputStream.Length; } } - public static FileStreamSender Create(NetConnection conn, string fileName, FileTransferType fileType) + public static FileStreamSender Create(NetConnection conn, string filePath, FileTransferMessageType fileType) { - if (!File.Exists(fileName)) + if (!File.Exists(filePath)) { - DebugConsole.ThrowError("Sending a file failed. File ''"+fileName+"'' not found."); + DebugConsole.ThrowError("Sending a file failed. File ''"+filePath+"'' not found."); return null; } - return new FileStreamSender(conn, fileName, fileType); + FileStreamSender sender = null; + + try + { + sender = new FileStreamSender(conn, filePath, fileType); + } + + catch (Exception e) + { + DebugConsole.ThrowError("Couldn't open file ''"+filePath+"''",e); + } + + return sender; } - private FileStreamSender(NetConnection conn, string fileName, FileTransferType fileType) + private FileStreamSender(NetConnection conn, string filePath, FileTransferMessageType fileType) { connection = conn; - inputStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); + inputStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); chunkLen = connection.Peer.Configuration.MaximumTransmissionUnit - 100; tempBuffer = new byte[chunkLen]; sentOffset = 0; - - FileName = fileName; + + FilePath = filePath; + FileName = Path.GetFileName(filePath); this.fileType = fileType; Status = FileTransferStatus.NotStarted; + + startingTime = DateTime.Now; } public void Update(float deltaTime) @@ -87,6 +111,12 @@ namespace Barotrauma.Networking Status == FileTransferStatus.Error || Status == FileTransferStatus.Finished) return; + if (DateTime.Now > startingTime + MaxTransferDuration) + { + CancelTransfer(); + return; + } + waitTimer -= deltaTime; if (waitTimer > 0.0f) return; @@ -105,6 +135,7 @@ namespace Barotrauma.Networking // first message; send length, chunk length and file name message = connection.Peer.CreateMessage(sendBytes + 8 + 1); message.Write((byte)PacketTypes.FileStream); + message.Write((byte)FileTransferMessageType.Initiate); message.Write((byte)fileType); message.Write((ulong)inputStream.Length); message.Write(Path.GetFileName(inputStream.Name)); @@ -115,12 +146,13 @@ namespace Barotrauma.Networking message = connection.Peer.CreateMessage(sendBytes + 8 + 1); message.Write((byte)PacketTypes.FileStream); + message.Write((byte)fileType); message.Write(tempBuffer, 0, sendBytes); connection.SendMessage(message, NetDeliveryMethod.ReliableOrdered, 1); sentOffset += sendBytes; - waitTimer = connection.AverageRoundtripTime + 0.05f; + waitTimer = connection.AverageRoundtripTime; //Program.Output("Sent " + m_sentOffset + "/" + m_inputStream.Length + " bytes to " + m_connection); diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 486858c4d..6ff789457 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -38,6 +38,11 @@ namespace Barotrauma.Networking get { return otherClients; } } + public string ActiveFileTransferName + { + get { return (fileStreamReceiver == null || fileStreamReceiver.Status == FileTransferStatus.Finished) ? "" : fileStreamReceiver.FileName; } + } + public GameClient(string newName) { endRoundButton = new GUITickBox(new Rectangle(GameMain.GraphicsWidth - 170, 20, 20, 20), "End round", Alignment.TopLeft, inGameHUD); @@ -479,7 +484,20 @@ namespace Barotrauma.Networking break; case (byte)PacketTypes.RequestFile: - new GUIMessageBox("Couldn't the file from the server", "Sharing files has been disabled by the server."); + bool accepted = inc.ReadBoolean(); + + if (!accepted) + { + new GUIMessageBox("File transfer canceled", inc.ReadString()); + + if (fileStreamReceiver!=null) + { + fileStreamReceiver.DeleteFile(); + fileStreamReceiver.Dispose(); + fileStreamReceiver = null; + } + } + break; case (byte)PacketTypes.FileStream: if (fileStreamReceiver == null) @@ -710,14 +728,7 @@ namespace Barotrauma.Networking if (GUI.DrawButton(spriteBatch, new Rectangle((int)pos.X + 310, (int)pos.Y + 20, 100, 15), "Cancel", new Color(0.88f, 0.25f, 0.15f, 0.8f))) { - fileStreamReceiver.DeleteFile(); - fileStreamReceiver.Dispose(); - fileStreamReceiver = null; - - NetOutgoingMessage msg = client.CreateMessage(); - msg.Write((byte)PacketTypes.RequestFile); - msg.Write((byte)FileTransferType.Cancel); - client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); + CancelFileTransfer(); } } @@ -737,28 +748,6 @@ namespace Barotrauma.Networking } - private void OnFileReceived(FileStreamReceiver receiver) - { - if (receiver.Status == FileTransferStatus.Error) - { - new GUIMessageBox("Error while receiving file from server", receiver.ErrorMessage, 400, 350); - receiver.DeleteFile(); - - } - else if (receiver.Status == FileTransferStatus.Finished) - { - new GUIMessageBox("Download finished", "File ''"+receiver.FileName+"'' was downloaded succesfully."); - - switch (receiver.FileType) - { - case FileTransferType.Submarine: - Submarine.Preload(); - break; - } - } - - fileStreamReceiver = null; - } public override void Disconnect() { @@ -770,8 +759,13 @@ namespace Barotrauma.Networking GameMain.NetworkMember = null; } - public void RequestFile(string file, FileTransferType fileType) + public void RequestFile(string file, FileTransferMessageType fileType) { + if (fileStreamReceiver!=null) + { + CancelFileTransfer(); + } + NetOutgoingMessage msg = client.CreateMessage(); msg.Write((byte)PacketTypes.RequestFile); msg.Write((byte)fileType); @@ -783,6 +777,41 @@ namespace Barotrauma.Networking fileStreamReceiver = new FileStreamReceiver(client, Path.Combine(Submarine.SavePath, "Downloaded"), fileType, OnFileReceived); } + private void OnFileReceived(FileStreamReceiver receiver) + { + if (receiver.Status == FileTransferStatus.Error) + { + new GUIMessageBox("Error while receiving file from server", receiver.ErrorMessage, 400, 350); + receiver.DeleteFile(); + + } + else if (receiver.Status == FileTransferStatus.Finished) + { + new GUIMessageBox("Download finished", "File ''" + receiver.FileName + "'' was downloaded succesfully."); + + switch (receiver.FileType) + { + case FileTransferMessageType.Submarine: + Submarine.Preload(); + break; + } + } + + fileStreamReceiver = null; + } + + private void CancelFileTransfer() + { + fileStreamReceiver.DeleteFile(); + fileStreamReceiver.Dispose(); + fileStreamReceiver = null; + + NetOutgoingMessage msg = client.CreateMessage(); + msg.Write((byte)PacketTypes.RequestFile); + msg.Write((byte)FileTransferMessageType.Cancel); + client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered); + } + public void Vote(VoteType voteType, object userData) { NetOutgoingMessage msg = client.CreateMessage(); diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index b408f8d6f..f6e6b2826 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -30,6 +30,7 @@ namespace Barotrauma.Networking private DateTime sparseUpdateTimer; private DateTime refreshMasterTimer; + private RestClient restClient; private bool masterServerResponded; private ServerLog log; @@ -96,6 +97,8 @@ namespace Barotrauma.Networking banList = new BanList(); + LoadSettings(); + //---------------------------------------- @@ -160,7 +163,10 @@ namespace Barotrauma.Networking private void RegisterToMasterServer() { - var client = new RestClient(NetConfig.MasterServerUrl); + if (restClient==null) + { + restClient = new RestClient(NetConfig.MasterServerUrl); + } var request = new RestRequest("masterserver2.php", Method.GET); request.AddParameter("action", "addserver"); @@ -171,7 +177,7 @@ namespace Barotrauma.Networking request.AddParameter("password", string.IsNullOrWhiteSpace(password) ? 0 : 1); // execute the request - RestResponse response = (RestResponse)client.Execute(request); + RestResponse response = (RestResponse)restClient.Execute(request); if (response.StatusCode != System.Net.HttpStatusCode.OK) { @@ -191,7 +197,10 @@ namespace Barotrauma.Networking private IEnumerable RefreshMaster() { - var client = new RestClient(NetConfig.MasterServerUrl); + if (restClient == null) + { + restClient = new RestClient(NetConfig.MasterServerUrl); + } var request = new RestRequest("masterserver2.php", Method.GET); request.AddParameter("action", "refreshserver"); @@ -205,7 +214,7 @@ namespace Barotrauma.Networking sw.Start(); masterServerResponded = false; - var restRequestHandle = client.ExecuteAsync(request, response => MasterServerCallBack(response)); + var restRequestHandle = restClient.ExecuteAsync(request, response => MasterServerCallBack(response)); DateTime timeOut = DateTime.Now + new TimeSpan(0, 0, 15); while (!masterServerResponded) @@ -312,40 +321,7 @@ namespace Barotrauma.Networking foreach (Client c in ConnectedClients) { - if (c.FileStreamSender != null) - { - var clientNameBox = GameMain.NetLobbyScreen.PlayerList.FindChild(c.name); - var clientInfo = clientNameBox.FindChild(c.FileStreamSender); - - if (clientInfo==null) - { - clientInfo = new GUIFrame(new Rectangle(0,0,180,0), Color.Transparent, Alignment.TopRight, null, clientNameBox); - clientInfo.UserData = c.FileStreamSender; - new GUIProgressBar(new Rectangle(0, 4, 0, clientInfo.Rect.Height-8), Color.Green, GUI.Style, 0.0f, Alignment.Left, clientInfo).IsHorizontal = true; - new GUITextBlock(new Rectangle(0,2,0,0), "", GUI.Style, Alignment.TopLeft, Alignment.Left | Alignment.CenterY, clientInfo, true, GUI.SmallFont); - } - else - { - var progressBar = clientInfo.GetChild(); - progressBar.BarSize = c.FileStreamSender.Progress; - - var progressText = clientInfo.GetChild(); - progressText.Text = c.FileStreamSender.FileName + " " + - MathUtils.GetBytesReadable(c.FileStreamSender.Sent) + " / " + MathUtils.GetBytesReadable(c.FileStreamSender.FileSize); - } - - c.FileStreamSender.Update(deltaTime); - - if (c.FileStreamSender.Status == FileTransferStatus.Finished || - c.FileStreamSender.Status == FileTransferStatus.Error || - c.FileStreamSender.Status == FileTransferStatus.Canceled) - { - clientNameBox.RemoveChild(clientInfo); - - c.FileStreamSender.Dispose(); - c.FileStreamSender = null; - } - } + if (c.FileStreamSender != null) UpdateFileTransfer(c, deltaTime); c.ReliableChannel.Update(deltaTime); } @@ -542,20 +518,16 @@ namespace Barotrauma.Networking if (!allowFileTransfers) { - var outmsg = server.CreateMessage(); - outmsg.Write((byte)PacketTypes.RequestFile); - outmsg.Write(false); - outmsg.Write("File downloads disabled by the server"); - server.SendMessage(outmsg, dataSender.Connection, NetDeliveryMethod.ReliableUnordered); + SendCancelTransferMessage(dataSender, "File transfers have been disabled by the server."); break; } byte fileType = inc.ReadByte(); - string fileName = fileType == (byte)FileTransferType.Cancel ? "" : inc.ReadString(); + string fileName = fileType == (byte)FileTransferMessageType.Cancel ? "" : inc.ReadString(); switch (fileType) { - case (byte)FileTransferType.Submarine: + case (byte)FileTransferMessageType.Submarine: var requestedSubmarine = Submarine.SavedSubmarines.Find(s => s.Name == fileName); @@ -565,11 +537,13 @@ namespace Barotrauma.Networking } else { - var fileStreamSender = FileStreamSender.Create(dataSender.Connection, requestedSubmarine.FilePath, FileTransferType.Submarine); + if (dataSender.FileStreamSender != null) dataSender.FileStreamSender.CancelTransfer(); + + var fileStreamSender = FileStreamSender.Create(dataSender.Connection, requestedSubmarine.FilePath, FileTransferMessageType.Submarine); if (fileStreamSender != null) dataSender.FileStreamSender = fileStreamSender; } break; - case (byte)FileTransferType.Cancel: + case (byte)FileTransferMessageType.Cancel: if (dataSender.FileStreamSender != null) { dataSender.FileStreamSender.CancelTransfer(); @@ -881,6 +855,13 @@ namespace Barotrauma.Networking { GUIMessageBox.CloseAll(); + if (ConnectedClients.Any(c => c.FileStreamSender != null && c.FileStreamSender.FilePath == selectedSub.FilePath)) + { + new GUIMessageBox("Couldn't start a round", + "Can't start a round while sending the selected submarine to clients. Cancel the transfers or wait for them to finish before starting.", 400, 400); + yield return CoroutineStatus.Success; + } + AssignJobs(); roundStartSeed = DateTime.Now.Millisecond; @@ -960,7 +941,6 @@ namespace Barotrauma.Networking GameMain.GameScreen.Select(); - AddChatMessage("Press TAB to chat. Use ''d;'' to talk to dead players and spectators, and ''player name;'' to only send the message to a specific player.", ChatMessageType.Server); yield return CoroutineStatus.Success; @@ -1166,6 +1146,65 @@ namespace Barotrauma.Networking } } + private void UpdateFileTransfer(Client client, float deltaTime) + { + if (client.FileStreamSender == null) return; + + var clientNameBox = GameMain.NetLobbyScreen.PlayerList.FindChild(client.name); + var clientInfo = clientNameBox.FindChild(client.FileStreamSender); + + if (clientInfo == null) + { + clientNameBox.ClearChildren(); + + clientInfo = new GUIFrame(new Rectangle(0, 0, 180, 0), Color.Transparent, Alignment.TopRight, null, clientNameBox); + clientInfo.UserData = client.FileStreamSender; + new GUIProgressBar(new Rectangle(0, 4, 160, clientInfo.Rect.Height - 8), Color.Green, GUI.Style, 0.0f, Alignment.Left, clientInfo).IsHorizontal = true; + new GUITextBlock(new Rectangle(0, 2, 160, 0), "", GUI.Style, Alignment.TopLeft, Alignment.Left | Alignment.CenterY, clientInfo, true, GUI.SmallFont); + + var cancelButton = new GUIButton(new Rectangle(20, 0, 14, 0), "X", Alignment.Right, GUI.Style, clientInfo); + cancelButton.OnClicked = (GUIButton button, object userdata) => + { + (cancelButton.Parent.UserData as FileStreamSender).CancelTransfer(); + return true; + }; + } + else + { + var progressBar = clientInfo.GetChild(); + progressBar.BarSize = client.FileStreamSender.Progress; + + var progressText = clientInfo.GetChild(); + progressText.Text = client.FileStreamSender.FileName + " " + + MathUtils.GetBytesReadable(client.FileStreamSender.Sent) + " / " + MathUtils.GetBytesReadable(client.FileStreamSender.FileSize); + } + + client.FileStreamSender.Update(deltaTime); + + if (client.FileStreamSender.Status != FileTransferStatus.Sending && + client.FileStreamSender.Status != FileTransferStatus.NotStarted) + { + if (client.FileStreamSender.Status == FileTransferStatus.Canceled) + { + SendCancelTransferMessage(client, "File transfer was canceled by the server."); + } + + clientNameBox.RemoveChild(clientInfo); + + client.FileStreamSender.Dispose(); + client.FileStreamSender = null; + } + } + + private void SendCancelTransferMessage(Client client, string message) + { + var outmsg = server.CreateMessage(); + outmsg.Write((byte)PacketTypes.RequestFile); + outmsg.Write(false); + outmsg.Write(message); + server.SendMessage(outmsg, client.Connection, NetDeliveryMethod.ReliableUnordered); + } + public void NewTraitor(Character traitor, Character target) { Log(traitor.Name + " is the traitor and the target is " + target.Name, Color.Cyan); @@ -1590,6 +1629,16 @@ namespace Barotrauma.Networking { banList.Save(); + + if (registeredToMaster && restClient != null) + { + var request = new RestRequest("masterserver2.php", Method.GET); + request.AddParameter("action", "removeserver"); + + restClient.Execute(request); + restClient = null; + } + if (saveServerLogs) { Log("Shutting down server...", Color.Cyan); diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index afeb6fb39..778717b80 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Xml.Linq; namespace Barotrauma.Networking { @@ -18,6 +19,8 @@ namespace Barotrauma.Networking partial class GameServer : NetworkMember { + public const string SettingsFile = "serversettings.xml"; + public bool ShowNetStats; private TimeSpan refreshMasterInterval = new TimeSpan(0, 0, 30); @@ -91,6 +94,66 @@ namespace Barotrauma.Networking public float EndVoteRequiredRatio = 0.5f; + private void SaveSettings() + { + XDocument doc = new XDocument(new XElement("serversettings")); + + doc.Root.Add + ( + new XAttribute("AllowSpectating", allowSpectating), + new XAttribute("RandomizeSeed", randomizeSeed), + new XAttribute("EndRoundAtLevelEnd", endRoundAtLevelEnd), + new XAttribute("AllowFileTransfers", allowFileTransfers), + + new XAttribute("SaveServerLogs", saveServerLogs), + new XAttribute("LinesPerLogFile", log.LinesPerFile), + + new XAttribute("SubSelection", subSelectionMode), + new XAttribute("ModeSelection", modeSelectionMode) + ); + + try + { + doc.Save(SettingsFile); + } + catch (Exception e) + { + DebugConsole.ThrowError("Saving server settings failed", e); + } + } + + private void LoadSettings() + { + XDocument doc = null; + if (System.IO.File.Exists(SettingsFile)) + { + doc = ToolBox.TryLoadXml(SettingsFile); + } + else + { + return; + } + + if (doc == null) + { + doc = new XDocument(new XElement("serversettings")); + } + + allowSpectating = ToolBox.GetAttributeBool(doc.Root, "AllowSpectating", true); + randomizeSeed = ToolBox.GetAttributeBool(doc.Root, "RandomizeSeed", true); + endRoundAtLevelEnd = ToolBox.GetAttributeBool(doc.Root, "EndRoundAtLevelEnd", true); + allowFileTransfers = ToolBox.GetAttributeBool(doc.Root, "AllowFileTransfers", true); + + saveServerLogs = ToolBox.GetAttributeBool(doc.Root, "SaveServerLogs", true); + log.LinesPerFile = ToolBox.GetAttributeInt(doc.Root, "LinesPerLogFile", 800); + + subSelectionMode = SelectionMode.Manual; + Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "SubSelection", "Manual"), out subSelectionMode); + + modeSelectionMode = SelectionMode.Manual; + Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "ModeSelection", "Manual"), out modeSelectionMode); + } + private void CreateSettingsFrame() { settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f); @@ -227,6 +290,7 @@ namespace Barotrauma.Networking else { settingsFrame = null; + SaveSettings(); } return false; diff --git a/Subsurface/Source/Networking/NetworkMember.cs b/Subsurface/Source/Networking/NetworkMember.cs index 7f75d07ed..8902102b6 100644 --- a/Subsurface/Source/Networking/NetworkMember.cs +++ b/Subsurface/Source/Networking/NetworkMember.cs @@ -172,7 +172,7 @@ namespace Barotrauma.Networking message.Write((byte)msgBytes.Count); foreach (byte[] msgData in msgBytes) { - if (msgData.Length > 255) DebugConsole.ThrowError("too large networkevent (" + msgData.Length + " bytes)"); + if (msgData.Length > 255) DebugConsole.ThrowError("Too large networkevent (" + msgData.Length + " bytes)"); message.Write((byte)msgData.Length); message.Write(msgData); diff --git a/Subsurface/Source/Networking/ServerLog.cs b/Subsurface/Source/Networking/ServerLog.cs index 19c0986df..aef024fc3 100644 --- a/Subsurface/Source/Networking/ServerLog.cs +++ b/Subsurface/Source/Networking/ServerLog.cs @@ -9,7 +9,7 @@ namespace Barotrauma.Networking { class ServerLog { - const int LinesPerFile = 800; + private int linesPerFile = 800; public const string SavePath = "ServerLogs"; @@ -21,6 +21,12 @@ namespace Barotrauma.Networking private Queue lines; + public int LinesPerFile + { + get { return linesPerFile; } + set { linesPerFile = Math.Max(10, linesPerFile); } + } + public ServerLog(string serverName) { this.serverName = serverName; diff --git a/Subsurface/Source/PlayerInput.cs b/Subsurface/Source/PlayerInput.cs index 3b488c34c..179828393 100644 --- a/Subsurface/Source/PlayerInput.cs +++ b/Subsurface/Source/PlayerInput.cs @@ -155,24 +155,28 @@ namespace Barotrauma if (held) heldQueue = true; } - public bool Dequeue + public bool DequeueHit() { - get - { - bool value = hitQueue; - hitQueue = false; - return value; - } + bool value = hitQueue; + hitQueue = false; + return value; } - public bool DequeueHeld + public bool DequeueHeld() { - get - { - bool value = heldQueue; - heldQueue = false; - return value; - } + bool value = heldQueue; + heldQueue = false; + return value; + } + + public bool GetHeldQueue + { + get { return heldQueue; } + } + + public bool GetHitQueue + { + get { return hitQueue; } } diff --git a/Subsurface/Source/Properties.cs b/Subsurface/Source/Properties.cs index dde192783..7453e99d6 100644 --- a/Subsurface/Source/Properties.cs +++ b/Subsurface/Source/Properties.cs @@ -193,7 +193,7 @@ namespace Barotrauma return editableProperties; } - public static Dictionary GetProperties(object obj) + public static Dictionary GetProperties(IPropertyObject obj) { var properties = TypeDescriptor.GetProperties(obj.GetType()).Cast(); @@ -207,12 +207,12 @@ namespace Barotrauma return dictionary; } - public static Dictionary InitProperties(object obj) + public static Dictionary InitProperties(IPropertyObject obj) { return InitProperties(obj, null); } - public static Dictionary InitProperties(object obj, XElement element) + public static Dictionary InitProperties(IPropertyObject obj, XElement element) { var properties = TypeDescriptor.GetProperties(obj.GetType()).Cast(); diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index 6bb028409..22f711a76 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -2,6 +2,7 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System; +using System.IO; using System.Linq; namespace Barotrauma @@ -291,7 +292,14 @@ namespace Barotrauma return false; } - Submarine.SaveCurrent(nameBox.Text + ".sub"); + string savePath = nameBox.Text + ".sub"; + + if (Submarine.Loaded != null) + { + savePath = Path.Combine(Path.GetDirectoryName(Submarine.Loaded.FilePath), savePath); + } + + Submarine.SaveCurrent(savePath); Submarine.Loaded.CheckForErrors(); GUI.AddMessage("Submarine saved to " + Submarine.Loaded.FilePath, Color.Green, 3.0f); diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index bcad8ce5e..bf26560a3 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -512,9 +512,17 @@ namespace Barotrauma var hash = (obj as Submarine).MD5Hash; - + //hash will be null if opening the sub file failed -> don't select the sub - return hash.Hash != null; + if (string.IsNullOrWhiteSpace(hash.Hash)) + { + (component as GUITextBlock).TextColor = Color.DarkRed * 0.8f; + component.CanBeFocused = false; + + return false; + } + + return true; } public void UpdateSubList() @@ -590,7 +598,7 @@ namespace Barotrauma public void AddPlayer(string name) { GUITextBlock textBlock = new GUITextBlock( - new Rectangle(0, 0, 0, 25), name, + new Rectangle(0, 0, playerList.Rect.Width-20, 25), name, GUI.Style, Alignment.Left, Alignment.Left, playerList); @@ -629,7 +637,7 @@ namespace Barotrauma var closeButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Close", Alignment.BottomRight, GUI.Style, playerFrameInner); closeButton.OnClicked = ClosePlayerFrame; - return true; + return false; } private bool ClosePlayerFrame(GUIButton button, object userData) @@ -925,50 +933,47 @@ namespace Barotrauma public bool TrySelectSub(string subName, string md5Hash) { + //already downloading the selected sub file + if (GameMain.Client.ActiveFileTransferName == subName+".sub") return false; + Submarine sub = Submarine.SavedSubmarines.Find(m => m.Name == subName); - if (sub == null) + if (sub == null || sub.MD5Hash.Hash != md5Hash) { - var requestFileBox = new GUIMessageBox("Submarine not found!", "The submarine ''" + subName + "'' has been selected by the server. " - +"Matching file not found in your map folder. Do you want to download the file from the server host?", new string[] { "Yes", "No" }, 400, 300); + string errorMsg = ""; + if (sub == null) + { + errorMsg = "Submarine ''" + subName + "'' was selected by the server. Matching file not found in your submarine folder. "; + } + else if (sub.MD5Hash.Hash == null) + { + errorMsg = "Couldn't load submarine ''" + subName + "''. The file may be corrupted. "; + } + else + { + errorMsg = "Your version of the submarine file ''" + sub.Name + "'' doesn't match the server's version! " + + "Your MD5 hash: " + sub.MD5Hash.Hash + " \n" + + "Server's MD5 hash: " + md5Hash + ". "; + } + + string downloadMsg = GameMain.Client.ActiveFileTransferName == "" ? + "Do you want to download the file from the server host?" : + "Do you want to download the file and cancel downloading ''" + GameMain.Client.ActiveFileTransferName + "''?"; + + var requestFileBox = new GUIMessageBox("Submarine not found!", errorMsg+downloadMsg, new string[] { "Yes", "No" }, 400, 300); requestFileBox.Buttons[0].UserData = subName; requestFileBox.Buttons[0].OnClicked += requestFileBox.Close; requestFileBox.Buttons[0].OnClicked += (GUIButton button, object userdata) => { - GameMain.Client.RequestFile(userdata.ToString(), FileTransferType.Submarine); + GameMain.Client.RequestFile(userdata.ToString(), FileTransferMessageType.Submarine); return true; }; requestFileBox.Buttons[1].OnClicked += requestFileBox.Close; - - + return false; } - else - { - if (sub.MD5Hash.Hash != md5Hash) - { - var requestFileBox = new GUIMessageBox("Submarine not found!", - "Your version of the map file ''" + sub.Name + "'' doesn't match the server's version! " - +"Your file: " + sub.Name + "(MD5 hash: " + sub.MD5Hash.Hash + ") " - +"Server's file: " + subName + "(MD5 hash: " + md5Hash + ")\n " - +"Do you want to download the file from the server host?", new string[] { "Yes", "No" }, 400, 300); - requestFileBox.Buttons[0].UserData = subName; - requestFileBox.Buttons[0].OnClicked += requestFileBox.Close; - requestFileBox.Buttons[0].OnClicked += (GUIButton button, object userdata) => - { - GameMain.Client.RequestFile(userdata.ToString(), FileTransferType.Submarine); - return true; - }; - requestFileBox.Buttons[1].OnClicked += requestFileBox.Close; - return false; - } - else - { - subList.Select(sub, true); - //map.Load(); - return true; - } - } + subList.Select(sub, true); + return true; } public void WriteData(NetOutgoingMessage msg) @@ -1011,7 +1016,7 @@ namespace Barotrauma public void ReadData(NetIncomingMessage msg) { - string mapName="", md5Hash=""; + string mapName = "", md5Hash = ""; int modeIndex = 0; //float durationScroll = 0.0f; diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index b209e5e1c24b52803cec2bf97a31c9a009b4cc9c..a1f5ff7d2574466c7873de09de20fec9b4beca0e 100644 GIT binary patch delta 14987 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 delta 13197 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 diff --git a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont b/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont index 285dd2a0d..f8b3c56dc 100644 --- a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont +++ b/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont @@ -53,7 +53,7 @@ with. - ~ + Ұ diff --git a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.xnb b/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.xnb index 37d6342fc649ad21a244656aa7c57e5e8d3965bd..5723d123849f4f3f1f97fe5327c1cb0e8555ab5d 100644 GIT binary patch literal 163242 zcmeFa-Ht5TnVz?6&k!zxvm|`N=>3<X*Oy z_Lsl;$v^#f-~Hk@-~MA-|K!`B{i|=k`;$L@kK(`j?q~n*-~8g|zy6ay{%7BQ_v>H$ z>X(1@7eDz^eg5Q+|N8I$_BVh3-M4@B%WwbwH{bp2Z~x?v&wu|nfBTD{|JUFChwHEY z?YF=DtH1nk?mz=70V| zGymy-`1NnT{kxz1^}qQUN%D8U{`s%I``cgq%@45PZ~oyw{Mk=`{?q^B&;HS$|HZd| z`j`JG7W}7=ERft)`Tye!m4A=>KO;uJ`tHwv{}KAn-qWB(s5Dtk{Pgrk2gT`+K7IPX z_~%J~|8M?({q_BCfBWgv?RHz#`1E~iFSNhri?2T!e!X1{|MdOWh5wrNr@&zV?)TqA zV))A|?OcVg_V@b6?M3+CTY}q{tKeS?!|l`JHmX(othTQWKftIj{SP+`GIsFKxATlI z%-=@;Pq*WaeS>~5Z}u$5J^7=)qkd{fzuQeAu))@MIl<55(f4{O{=ZH8wx>S^Hhm7F z|Lt$3u=#xw{nr8)Kl_tbwH=@D<*&s1>Go{k9ej+Btp7gzj8tus z@T2p4l^^>Au6zi*w=Zgg-r)P=fxsJjq__O?`0&u*YrTEm?H|C)U(0EyKPo^4zg>6o z*X*NT#;-wNlx_Lw{%Q4t-|PLIeQP~GWIT|CiJ$BF;4gLHf}dXGPhY{ee~0$>Bz*PX z*SD*K1%~h!`~UO)3^e$p&rP|YkLXF))DJQ!@|OkAS%lh`^W~z^N0-`9(DQHi|0nrB z?u6R@^eR@4nGB7;!2;}@-=cLTmOA^`*ah1i!aj~$?y6uH~Npg9emtl z|57lE-^&ZczQhl8&9C|6dOMv$p7|2#{yOP9@;5^8;g|UpJ`sPWXFKDd0?SJICr z1{wc+TB2RSqd(EAdU!hR)Wc9jp7_a~RUa;wz4}YORz4jrj8~4B{d+qu_7@5@|Gy{{ zGSU1!{!IGze8PRnr-pC+9p2Epz8F32tLt}U$3fn z`m6NQcucHYyqA}kmp}{4@rF4}On*6@MmWaOJtOaUx?H1u>Iv#k^+fvo79#VzeyZ_5 zZN#DPYCq*Y^rb)fvCzAnQKEl+L4Psiqjv9~%|7{ahFgH};?^quLS&e$7|t9@CJr+QHO+|IA`kJX-Cf2dkRE?B0sk$lpGN=9EA-Be(4T=v zn@#*T`~jCe!LPPR>`&^M`V;NykIV8l)f4dpL;9W|kal8__D;TK`e*pt3;jpjahmX# zBeK5q7J(Npf|zlev4`7wXj zzq{KI+fvY$fmdM80Z0Q2qDy z?KIYukoqDS z&7V{J2K}sEw~zcP+R%U6&FAl{ew|KF7x4$T^83?*E@25z%2}&tt3D&V43a$g8}U6~ zG~QrIkH_uk_1S$ru)eLnePaB|3`_i2-dFx_^E)eA+sA@d{YxLW=>Sr%&F6_$+8~(U z=kdwqyOc#)x)#_xADsUAiR@5Qhh3)kGDmbjFAUK7+vv0r_au4u{De{d z!eIRCloI__`~SE{399y@{h*{<^Z{SY8$Ie6_urB2hAdXGJ{N}sFh8TQ?c7uG)Va2IeWn*JJpMtvXJ z8wW}M^v6N|$S?UH`x!7s`F2kEgW=Zpig)}&|I>1=;EA^&1t$V>Z)-=N6;AhspS)4{ z$MElM`$MfJ&++K|acBBt!BJ2C@+B#x!z4e@mEXhm<_Q<5T|%|{RrQrU!oED z(!auCf0CYGu5SfM_L82mzsq0X|Iofd5WV!D@DpC^cglXWQ96DF*#4G$P9ub1eLfIR zjprTz)$+Uks<+`(@lw8IJ1_hxU{+a}`H{uBeF?vw&l(T+^1taT zd82&Nz3boRYoEn02F;&ye_8Xb^}j8@QNJ<&CVvh6WAv|Qy9kgzuWz$`nAiP#-SO|3 z->G)t$MkroUc>>-e)6~bU-3!x4ZZVw@Ye*N`l~pHp5b8XkL(ngqp;p~@~OnN`K;#G zx-uTKUMjf9L(*ZXw*9xsj{&}p?-h>Bcf`-?WV|K)uh9;6{DFFh@L$if5{=l0d&|Di zQx7xW@9W<~=0kM3_`B9~Fiku0R)Ev?c?v^t+n;`I>-jr-q+{^={Rbnw{C95t+Q`%F zw*0Ys-dh$UB>t47lE*iO!XWZ9|JC1Ve*%uJ`cL%N^R)iabfe4PnJ-FIhaWtjT;*4N zRmw%)yngUx5r-PSd;ToiqQ9^|QCIlcKA=VK^De~G=?!PYbO+xR+i(gtaFvMQXTEQe z4S%bc_5!~7M_->0V;q;^i}ksiznEEr6Ckj$mTDyDfWAc^h+d14|C%E$2`|&hs zZ;t08PyDQ1_)(9aN;}(wddEq=qm_6QuIxWzf%qROD8}F9KgM+bJZb%m`k=>OY=9R3 zHJ=OH`gZrP{V}6|i|U63to-C3uJ~i+XL{82{8-$? zFX^WMHhx+^h(X$P2cOq8e&olbpK6Z;il5JG)F^uq_t;)UAn-O~>Gxj$EPk+i%rEXv ze0TQuOT6WCoSXS#JI^>Q&w_XV=KdfIkb%_CzYvV; z1AX7>B?Wov4-SSsN`2Vd&ycXJ=#Ax9B{@BGl>*R%1qmRemaKt|ijtt?W4*P#7i&NCT-riottmU82(}C*> zKJj*ArFXOJW&2z9l0ktJZjB#em;Sl$zY#8VBM*ncx}P81US4Xv-1tk-;?H?6{nf)k z=yhHVx0de<`yoWe87_NH>?cW_wfW zVD>L9%M-)MW4}1+xc$WblMjDNKDS>?n_-MXL2eLffzaZ}-(`}vaNj~4H&32K_ckb(7%AN5U4~5_31G>%w zZGq_30UyGLd~@(16}{Kv8+oV~eM>*YP5BV?)Jw{-_nV}U_~HJl_pz6BCI6&;#g_$= zjVXM>+v1u20Dj=5ANVFNdX}#@jW_y8-mA{9LXi3*eIK>qrAzd%V?CNr*FWGD?(C0! z9{+9+{$8oq^;5OyvOmsmZ!Z(S zA%CDZNAaUPQ}0&$ch5ftdnWxxe{J|FA7XEfN0=LM+Df+{#;@|P_NS$y>~a2$@gMac z^bLCGH~HB8E7wa$@&CyDq{N#Zep9?2*&Fqu59!5x^ZS^G{7=uz!Np8U(LP?hKkN!* z{WQMm-nfFl?X0KZtdPfF$A$4kSMmpW^rv;aIQjmjV2D5P-0w!VsZD~n-3I%I{%}OJ zJ#KwmPg1blrhu3Irl-3c8u#K~`BC-52_lThLwwN7KH4pzY!A1)sh&6l=BNG`b>4+n zdc+^1H+9{=b~?Ql-2Dsiv-tIT#)N&JzVZe66TH5Veweq!+lhzn2l3qjRo`^KRv8@q zF?h@`)j}0S@q2lB)qKUD#y|9{|3V*mq-Vx&z7#&{PW3*_Dqk+`JS_Q#wo`t)7@>mr zy>Y-d>03KM>rps!#9iRKL;-Z!Vh|1Eq-1<3d8bAN9}J_gfgCqPM80+ zf5K30jTevC$8nhOnQm%*X^v`Ze_h_P3urILoq8GZmXG-CPnN#SCpF%~GWz*^NtVD+ z{7-mP{_b!lbZ!*B_+d@Am-D^-{I}CGd|`=d?GDy(t~&c!34vp7-Rh@^HzVA0mgU! z;SV_lsi&vYqP4&F%+-El$Gp&EPv4&^d75u)@Q~8rQx2#63VrewaV=jzqmPUYKJ_g3 zLp1$P$Hcq*yEooEw0E#S(MNssC*Pd!IwP?^POsc=tIzxJL@RL0k?t3hcJ>F`jpwnx zRd?(+C=2?zr0 z`l6hP{neo>p75`D22T9u_NX7c8b792!iQVYFOruGwLHyN0ChMHobp#dF5yeQqfu>+ z-)DV{eTQ$BmdE)c^j#j)5#(7t^JlwkkKdjC*L(I4 z@Rff5yfOxgf33f}eY@vpga0wVgl&-skGs&`!3zh=FC zG_k&c4swlmT-CpBH{H*!%k=>FFKJf2BY_HT{=ld4)$AbZ{s@CMzdKZT4afc7-;>G0 zN8f4x;2r%}e&)aK&sRF9UhL>+cVTeJYx>(>)G2#wyjbat5Bya2Sw8VTwB90qn*J33 zW>5Jy^#lK(9O{yqJp-+Vuk8LaV@ z9lHE4`lPk;o8oH&vR+x*^Fc)qdC{-@V=v|)2Ya8Azk!p#%rA6B9`?6W`&g%dZws^GE;6 zzs-8x1f#z<{)huReX2*`l#k}Gp08tlsQB4_^soLH{n2L{zalRAp!}?Sbbf%}6TbV~ z_QPKP0@hqam)bAjm%pta@RQLCPXDib2|i7?HAaaJ^Ctbmy!orn+dF=@r}=-eF08P_ z@0%&Uf}^taN8Tard-)?=J`KN&?=UENo}Z$A>9^j0eXkF;g z4|wO;w5MVIm$$v=2Q5Ny<)8Esjq&yTWnB#(+q0oDOBeoPjmgthk99sN&T!VPJX?r=&jsIj4 zaN>QCe;fZx<6ruDJrV8AAN7x*>l^dKT{T{2JfNN(WBq6Jm%!q`+&F)6f<<3$=Uv2` z|01vYN7L`TryuCLVh=r1^wnO7FS6tg!%w&U`=t?A^wc-u;~V`)?<1eBZo$3Z0=MwH z>^%<*y+dUB;5U5~U%Ru>v%nH=!`FU;aJeepx?dkzY(hw%%jKB<2ST&=9r_Lzv&Ns{ zMeAi3B+=`6M!~t>m)F#jJ(Z90XvsgryypYkA@-Lf7Toq|M<{JQ-^o>N%2%7u8K3+i zpPE3e$I2fNg+Ba+k#^wQ_UK=Z`h5xinXA}aALn<}>HL(AjUUf{NB@c!<(K>I(*eX! z@gL;@?)K5Yru}N=TI0|27n;xe3-d!EH63&KbGrcX35D(5d7cGnROcFx4thRNnB^~e zxcK!p4u&1Uj{ms5$o5I1`6CcqXNcP#FV*{s-`@F#xfR^!8%9sOb3f7Vnx9V)tzYg> zvxTL<`n$L6)aG&aXK&_|eP{VI?%&4W4la8i&WCVy?>{=fwsZNv$j85X{G0#iAMPxr z59{@b9&-Or{H|}OIuB0&pT3EU90B2XeR-bx=Z<~m(CAAa%R?X4^Lzbh30MCC-K`g*2tW4kxLW&dec-VByWH(| zuNP?4^cmsF&hRHa8BZ1d;4|G*{D@Yym((LR0IkpUdYsS4W1szrx!x~>huf}~Gk>7* zZ^m!;uh@IUBc-tPcYO+f!|l%jPS1785I(m9HGg;fBDX)tpE>{c`LFtqaQBwVH`gn9 zYxQ^O|2cYbv_9BV{iW9D><@<9hM$TR6tZuTe}?&0tPi}N_rBAo)bIAY|B~S1_x$=? z{jZHDtXE`T({JZ|VB|OIJLa2QqlA(?Ziixg3kS77a(_U2d+NK#uM%i}?~RvD-VS`y zuM84D<<}%{%C{&We9u=O=`+wz`5pS?zxL0KkbIy&Px&zFKeosCJhEq`AKT*B&L5e7 zP2>G2Z?tcOi@(!L@#g_4;Vb3j&pdCY$rVlc_i#95^iKY0euTTMlHfNzk8J^<)7I@^ z!K{4K_+JVLuJ~5Cl8@q71`DowGwM6y=X@jeQ0KiP{P)cd{c4-GcLH z&GzF@4zP4Tw7Z<_J2FAFei#{hbABgmwKKgEb@?v~WVs~s8OGN-p0NM+?w>P%xhMY2 z`?*RU@sfOn-}LBz=GA+MOM7|s{v;aLe(LFT9QBnsy2M}S6&fF3^jPU1q{lQ=8=a1mK{Q*%;o}Yh(mv{*O<>>WO zB#54R<;iHt<2W?&fNEN)aQhd1RWFqO=6AX+)xT>$R`MO48ZV`v z&5i!#tJk+pAID>sFLS&8^dDc+|ETzdzvW|pdmoqa8J?M+=F{w-=)C;Uyn9^aS~f6*V#W!}iI;99vu@`&R^Yts|>*dYh-)?8( z2};FB=goDAzSjRT!ScxeCGuAPjq>A-ZT_tOAslT!V0&o3#=iIidmG&P34iimeNpzg z{(3|}Uv8J1>gBXvi8|$f>H(K{g&*rHJ0$JJ=g;a~1<(6FP&w_r^$*B)vG~>bs5Nf- zhFj?M{O_3GFn1RdzQ>Cn$#2SEb8q%hpK|qln%YSi`)3`G5?}h0_d}FIWuNK=SK>*1 zsQ9h$@DCjNz-zyp?)e<*hF|9=?(pirS+C<7=g&>gHx$E?PydWxj&=&$E(jH zTRbr*{=kUPCqK6KmAq!J@fE}1@1OVRp7Fr@^O1M-xU1~x`w@3=tAo+F%lq38<^4!~ zMtP%u9>MX^T|Vu^>&`w8U$&3;KX6U*=u+|D?*5z7?aqJdLc#C%_ut8z{HO9~`3L(~ zI;5Tcp&D2GYJaogCmy4|uq*uYS-c=G{pS1o1m4l7@DI*!%rAe|`3y97`fbKv@zb@1 z)4YqvsP71$;x+hJyu<&U{w1*e`Hp{>WEFk-D+;B3-0y!iKCwR>e-8FgKFVMF=cAAE z>jU|7@4xPkm(-sJ@g4K0-JeFid#64&|7gB3_XqSXe^q^&{ZsJduSTRh|H3ovf=}_h zhieE5e)`{-AANk}{xIp=&i~+^@nO(cyuvT}Gx}%9Pj!#r`+e^k(W`x`=j&RV0Y$y3 zK=vN^kMv9{pT+%kK^yuyG{NoS9D3A zqy33S?1?8{FE2HpFr4X&mgq)-A z{v&=YivQ#>m@9{_mYXHG0pV#HsR`8HN5Pg;X z^49aI*z5dP?=Jta!V|T6obf+;e)Tzh@TNMD`0;oo`uHmSQV-F-@=g0c4o~T~8!x4A z=wJQ*`uli=-1;kj)NJ;U9%}nUNcymTdWpRE^GEwjim>o`98USmr`->H;{J`?(QAL@ zc~-M@yWQ_Ca_CV<`$O`U`O!VF*Wbh*=bJFccvgJe{}j(^^FXV7M>GD)`y0F^WBEQG z1RV#st@BF}SKIdwmn_5Uyk8MZd%-{YtLU9yCJ#U5kGoBQKPzs8I0P4pSzQNaAwe;uv(=R|+R*%D{|7r*aez#si@?BFYZMtOjHf4_dH zzmNWt`IT?H0DI3r_%!}t2dL!t{(?1J883KU&#~Z%hw69W$v3&Xt`-lO*T#1}4<)cN zDDb}i>io(bZc{$Vw_J^%bd^Wd_Wcy(mM*u^r;e-KX8Yx;xsrGaexM#owsJ`A_s*}> z1qJ7I>+}6m@+OzyI`5A3$VYtg6CALJclbQ0g}_jmu+ z{4)~H|7h=?KGctj$J4%l&^7vU zKV$;zHv4bX57(d2U!RDd+!g#hFSd>k+-^v`JY3kHdY^>ctB?Jw{z^XRQk&PaKbQW7 z6JFIr(1TBUTr!$Oe}^v@xR1dOVyt*&gW5o zdnfi*{qcm${#lO9A9Ja#cqsRjb87GQcg-&daOm}ZgnN3oz%ZQoyqM`yTjwKArs99n z_@&H1XTcXL6n}dLD=zKKKN%76Zpimvad z%lS*N#n0*DcJc4@8Shmeqfh)n)A=us)}H}LwvBDU0`L1%=^q?;i(i9NE$AQmto+T6 zE+8EGr^kE#v^<8Rx&A{g8sTfbU*@=tIg@{cE0N*f$CDpBzQ0fJ;XeN0{yWuIt04LG zzv#!`YO^186R^ck^>xG_^R3vGzjVJ&F7b1|+dtvY>x<#P!gYQq@9Q#t^4DLet>@9K zY{C7!UVR~Wn@=@*`x|>(oBIQzf6?#Zv$7Jp<)3+=L#3{@>;0=8-uqYKyT7|Pgr4po zc^!XI{Ii@k|Go1d<$?&By`fH9_B`?r)Rt&^1WxiseJrW?6Y+RIZN)3Sz1oZyW4zNd z3J(1U-_fW0liL?(|4jNsBiWPr^AOK+kl-Kj&y+tEaM2$;-mU(-;lIhA2l+PU<Z{ z%lJ$AG3hhLPxX?^_Wb~Tik<0MZcp)?^|{aYDSrlkkMvW%5AmG+`T2N`{+sfD%;yLF zYs}{{-(lDD^9S|!$vGIirpT@I?a4E-S{pql2t?hCCXyXLt54uY|uNr*1Yo0%1 z$SwFwvdihsOFllM_bV$BEjej#75hriI1PBq>O-|*n$o{4|(vmZzIItyKWI{a$< zulfCYzO&jZe8~uY&YQ=!WE4N!Gq#nnf$RA({)R!?b$&*tN!#m5k!Sv+{c~ex{Y<_b z1=Gj)ObBQP!~SXKGtEAory4!-w4R#jg%G&s7v5k?`>pQJ*!ah`m%bc#wE30wfj#T9 zB%t)m{T4RI{FqKm^Q~wXeKo(AJ-Xr#2V5n^{B^&S@?8=HXTKru$0+@Am-9^$1+Vux zsu}V1%c3x$7Me`xu` z&;KeP;Es6Us6U?<1#WuawY~^{^8MBHxFq!LeG<)n_dog1`mlV|{+RsH_}z3COUv+Y zUdgW%6!W7V;tv^+{=;~9w)3qp^EqzN3wq#;U+3xmDut`|6S%!E`P$^)&K_U&$`$EP z^!0po*Y|+FsRz;b#q~rCgRlEjF{bO!@!>K0#h-d#agZy2O1^m7UpL)fMK0+-%58rox>OfGwg@594)BXbv6nokCmDW@GM1HNeL{j>+ zdKi4nt>-OL{}R4ni=XPD?JIeE>+{HK_U-P6qGJ5Xde8Tx%4YHZ#Pd^%FZ+w}$A$L= z>XK2G&wAFyEc8#;gWeATcE#uPQvEsf=<$~ycP=Cr-e0Sw}a65Q(X?tvo?!HZSyVdB64V(@nq6$*0$wC+dg7 z6MwK?ls|lxJkfvl`~k2(!q@&sHJ#7&*PQQ2ByjYlUMjm2Z{6QL;oE(Ivpu2xldccx zgnijD6TkI+f2j`!n|s+qg4^Db=lrTKOuv)gqdgP75iP#4>_7R#2~_pR{*8nm3`cdTWPdO~t6VE4YM*qz3#i%0?LWw0;eOxOkA#2F zKN&xK-l70RUymOezhPqiUw7)2pv@kikGUMh|J8q+ea;U#gUkLTp&V`)sO|g?xWh;N z$F_9q`t9V~gkJ*f|JHvt`i%HvTefz4MPCT^&yM`jzI4CTD~_Ks-fiT|6`lV9{yD#} zKRCZ=3lz82UkMK)Qcs`X^!w9m-EK-~9$9&lz)5Fj6jbL9q40gbnX60M zeqVG65L^TF6pyesJ^iuiYyTmBdOoGpH9qX7dJBJzD5k%109?b5^(X(ADPF};`iY#MyTM7 zU&gNWCh2pGcA-Z--dDZSA3J^V{{io7tavy1UQg+U3F*W1=2f5ep%i+lv{Nwpk9Gd=>*;U}rhC5w*d@a86f$m!K?dXSp&kpBC-}pcA zQU8tpb$KUzS(F_w#!AQ46nIHLnrc@b2@?ZEO zow59t=ZWll>-XyYHuF}S)e-eNm)cCPH2!OeV*bxB>Q9=mrG0p&t=n}sDnWo#+8|kl)+r)dW z=No;v9kcpJ@FB-PCO173+{s_~x5ta0PZ53B_lCZs{%SXUwf?97cKT=HEpUss_8-cf zt34b0tY0yd{q&bskBy)G#MPf?`E!V8(?#@n3wiOV+K87v3UTD?{^6vX+dBUm?U~v| z+xS;FOt0}{wAb`f8TqYV>F-7_eVaavzlm?*`+im!l4C{x;&@K<1*cq)PpV$Qr+ZKF zmpoOV$k%)|->CgU0Mb&gb3JA}^|g+7VqW7J@i@l2IF;{l?-Kl~kJ@j^7p5mYrut}Z z&_xZS`Tx@Au0V|FTa>9Ju+RaJ6}U zn(Ho~^aWS&L;uKr+;b;iT`crEU*Q_$Ym5s#@1vXWNBP~}dfpIQLQj7d?!ZqHOaJ(< z^Q-)>`6lUQ{Rl_l=Xo^Eu|j`zydK)$`Io;tzxWq$@hfW=sPACE-Rt~#^Zax4#~8msKHB0w(Q`f{*kq5?HGlPIXIu2w?~MWL^@Rxz zO(7&6M`jEHLR9?aFSSEYfzaQ8TfEgD>@DLneCOKC_rfmp`n{L13xB^)Q{Jom^nB9I z@Yi}TSCdCO*p`>_pdqC6RlSinOJ6;IAOfjlf9d&5{$#_|?N8r)W4OPxKY>s7$o}SU z)4M5tDTjay?)q8ig6nawx-8H2&m&&sUs7*C+1O`mVvp`mj>9(cC;cQL@YHV{MAP=# zef(AY4~nniUGX_OA4DH{6gY{KhNfpiV0V}y_UQepnjmr+&Va<9v@_o&ACCgr0?9u( z9+Dq?jridA`m?BBiPILY>QeG~pNt^A-ZLShEtTT0yzg|4HwT2#xA-yOsf|Lh&p#+= z14F;&SM;m++~?y%`BHyF@8*459+E$Bkldv+$@rJwS21z5sgIGJHtC&u+3OeMm7F2> zz>oRm!O5>CZ9nei=)`|?SH^dQ@ey42ugh7W*dJ{7^FCS62o2|ThPq$DpW;tG_=>+U zAkE0zxGVhS&wcu`-|;sK@rOS1DQKF!DBJAk{$?)0g5U19jD5`KTu($}IQ2u~+jtL@ z^9J$GekayG$6v*N-LG2pw{~lN%X~ZXm~VSMNbj*cmfL60&C>F7zbwql-{0tbdEM{e z@mAtL=C=>HqCd}9VG9JM-?PSRI3vOQ*XMJB-~5M>f_pyda7SOxYw%Al(}SPrho7G( zwZqdUd@bH9{~h|f^D4$}_c7$Z?wnV}-_eKsEPZfy;$Qa{1WtFg{YqKEFWhh{e<`Po zpYsoE?DkIoRs31f8UK2HW_~RF;vcOq+$w+Z{Ho%CfXZjr^ZR&6xCC0B&c}#na*X_K z@#^}jKi}&c_m({x-$bnR0b)SeVd((`39!54LNKi;3EFKR!R;p1HT8IF2$e{wai@%6-dI@Uy=zJI;x-@EyMImpMI(|#}PdcC^7 zyv^rFc31qF`)jR`|V7` z{k);%-OimHc(X?pO7xe@H=eIZ8@IjPXMGxd#V7izzlYzZzXW~7PXOJf`;bo#pxb-% zg(C0tAz$O8+`~r0+j$kOhL3%speg&>{(I#&>3JOW9r-6e2LBd4`X5LA3P1IXfK2cR zuzt4R2=TANo!Nf!i-0_#wnAup?%&M)cv5E@uR2fn`{Hd-n;)Lenhxj^zV=6boCJ>A zJRa`*GaLLU1BsT5_3QrTeW#wR4ChCfQ~6c-y6wMG zhD-8M$MZ$0q_*b^0`f)Rx_>Rz*6^O6Yy2mBM9;P159hS?dsyNu7Ye=*0O{J`>aWtI z>w`vuHG5dT`u;t5*uTe}{LuKSOZ@BobP-2;w_Z7(2>s#kK7T(Q^n3NvF801?zdjwr z`cRL#KTgnslMui^qTl=ZE@nim{LTE)?Cf9a&AIqTzUr5+_@D6C`~z_8ul=UG_$fOq zpZqu$d-JFKJ6}Z``QGnW_}u1pOX^kr7M%16etmc2e%u%z9I`?Eqo3#a{KO6oobtL$ z-(+Af=O6UQlK;$vFv^rZoL8vb@O2*YyO6IritXb(s>H{BZn#W+h<~XM?f0SVZ@R-* zqJ!G_bV$X^m%cv{Alaf0sW#n%`%zZ7>xscN-g1AUn;;1vakU<6ZSBwH3cS^u2Cwy- za@h3Lrycw@e}&roKy`kge(Lc9`sQE<{b{6qI9r{LAA1E0yz*;k zkNp3DfA6n9_~+gqV}ATc;GgOrFZ=bN?>`>ge@A=O=hDCS>jnL}`tS8cxT;pc@5{YA zdJx9?Qf<~VTpBV%|IT^W*uSAD{Ic&}U-7)tzt@j?{(siz4u7N{+bl>*|NZxOQqQVB zKKXq!(k1$&UdiIp&-y>Cubc6{>9XZF`cGRTf#>(e^!FBjlt0zqd;Op;dImK8)#b4Q zFoZGN{COfv)xF1?1*m9sMZWW??@!cu!V1^@0HA8bHol%0(16Ma@Ag^yuU02;8c(5IG(BeUh^g1jX%7;mw{X*-}9Sh59Sqp`Hux!vsU;9 zSG25e4_C|YydOc*@9=B=!T!L}#=xWKTf8g(n!NBs-ivBYt2cY^n!rkLv>)}4$T=hIAP$oE%kA8da z%j@SIC(b*B-~8kK>WzHFYrMXTN3<<{kMn+>_~{e*ef)}lwLY#(aGGsDrR<;il{%)^ ze%Hur_0I2Mn77i)@jch`%h~T?fBPt1bv1p3ZyMvf|HuTx32(_S{c!-w zclsmoLEYYdr5*i)kN$0bvXN)>*sJ-pZ>nDKj8ntKlGRXKjg!H ze|3LKJ#Iaw>Svn0|E2$?ztDd*RB@$E|1Iw6|8!sPuTl^|@OeV^lPPJ*H_n4JxEewJ z&-3vbf(yUR@7*Rm8vnQgU$kFcSLHA38&$*hehPkHDEy1Q>d{vI=#PP)l|yLhv-7+( z3`&2t(-*BZTU)=UsoJPZ^thur$o|+ne@HcL`0e?z_}Ar73T@ACL{Rk>`BiU&ui;PT zHGgv4KF=Qpd#h=Eq4#>Rjc0nFFP=cT=yy4@-!JBvDEm0i&jeyy{~fP_OCi_aYV-R- zqdapfe)wmC$Jo$w+-3QQF8Mq6*Gs$7_nq?ztKj$&AGu38?RdSs?%FStjL&{P;pqOq zymG#vy@;ZJ;=IS38HHcJza@E&|HA#7;-fjD|7Aa4EiU&*+*S8GB%V1g3xe=zmw(pv zxS)Wle`WuDXFsa*H-7mCZssS0#GmeEeUx%(*ZG@d7#{gM@H_q^KiCz#=AVz+8-ILE z-)4X2SCjll`m2Z8zT6*2IGaE09|bt@w*S)L6_3h)!e@NY%ii4o-fSRz;YY;Ezh}X8 zZT(C0&Yyw>zQ12M(og!%_7(qn9-_;C=YIaafB5NHvWVxMztFAPdENqbOW*Kwm$ZK~ zzf%v2J+F)Tb^P+@&{oL_e(rbN$-jI54f!S7(7%)KLwt3B82mg>Asy51`rXH;!(%Vv z?)u}D|6L#InXhJF#<$sD4gQ+(Z?F#*_xg1H&EBSetq+Fh6()U^o_tBUIz+!lANv6} z|0I7O@q3`32CedM?0dvd;jwm%i>=~MaGHv6653UA;(--rj|@3uZ|@-==-yK1w57p<<~!w>Db96x@p+VjJv zKk8wR_5N`73A^ZLW9 zgV3`)nDSN5-{z-sL6_uhe(%%#tzQU|fB2`=HC*$Z0+&AYA3GrVRO`>U#Qv-Ip`oMX z>A+0x)}^-YR~EAF5R3hJex}3KA7=i>H9hlPft!77w@v$hAy0kAy=Qpe=hK7u+I<); zdAOs!56Jx)d#CZV{A2&pzrBB|??g}A`+ZGcn)Chqph~9Y9sGVkxx@4-Aj$vui*h;H zi*+4;5q=gh<_A0V9~A_*`MsRi^#1VE`w%N#qwk*o%fRjrNvr(iem>%nOK?5ku*XjW zg5ccGy*!F<*q6N+3@O@IzU=JhC*B2Df3m*o`^IK@Uhdgm_Gg`M@=)pbBKi7T|KUy7 z^Aa@Ve=+~9ymGhUEq~g2fc5;ee=^zcY>z)EXXtB>SU%-- zv3_ME;Zpo$UcuY_qS0^fes+=aiT=D`JN{n#i}Vpk*_87seM9$gJL#_+Njv)`b_Z~} zN8Wdd!GhDBj`+hSy3Kx*^Q-jb`Jg4*N1pD_w0#9^ZuP38aU~~?=``UkN6$%H~;uj zTkp5BwoTtYKTG@tPB_EQ_p^%|m*_#S`rhXCH(VsbN8jXk$@Bf~<`;VSdHzHO zIRAK@;R*TPjT8Op^{mmM>yLQ7&%+!9mqG=#JiuoG`Luk_c}wLh?l^+qVE@c!T5pS$-RTVm|TJb#JdMmj0?oh2Glpem;2N(4OBAg&0!r6#obE zvYttPu%7v-KIV^p)DwN;FY>GEL*zUEEI;;jb4x$sTl2})e(O{A`*~)JbNVViex78_ z2l-p<<%0N2@5h!x)zD75`j~ zKJIVu^@R%!KH}S*d?~ocM=_|j<dW`TFhoRc%P! zpBa9;5M1j}-$s_(AkmV1( z-_#85{G*Cg^1Qws{nPHRL0kK)#h?3=67SJoMBLdozy%9D^ZhA42nam$?@_-;{=u9( z|HH2QU*`)lH~G=(LDTna{|x$1{vP0MJ;VE~UQCaI;XkkM18@GW=X?8kz`^+<+R%6Z zl>WS*oeS?2obj%%;3uCZ|BU)<*GtgjpVIf3eDC?Nvp)y^!~XE4{JZ@4Yx4I1*B)W) zJvd*-{6PJJFIA6PK2?2?&71x@=DSQRxce)p<)8k%&Ru?Sw^#9dOFRbscIbbcenWmg zvVXE~q#yNv?7utzwDFJfx?2x+^!vR3e&6zYJ*f40xBry*)%t~cJw4y2%<1;z{(YIB zcplyV2zRwv5csd=Z#L)zB0uB5%(qv3Dzticr)U1I-lngdkI$$0xAFIQtKqrwoBQ92 zeekv4tj^Hr`2h|!_$F}uezdMTe=A!Hp5L=J%BH_qLATk^G?4#W;qi{!*)G*?QsRB; z?=RipBdzsst?zYh`j3RQ{=@6K^uC`CKl%MYE1aJ<3B6Dt!aeMdQLW1VSAHPU$`>5> zWwR*G%hn24;Pq^9x2)~`*`?dB}zYdDeeLNJ&7Ek~FD!x+!nE#Ra zihu}Fo8^_)GfhACGgJ@n{AugSIN?9@fTxtT3+*30|EZ^4vS0H2#QQhuvON1Q8mUco zkzew6tG}H0BF*YppZ+|5jjv8OkwjlQR2pRu8-k3T`pWjbIN#HV{DbHBO<$HL^*+$h zYr<;pp@a3)d4{b|n{;aX$(GN2dvP$!e{Q2%z|7d>hcE7*)MbGOJm~nT9y@yFKlNv4SNwbXLGW~#ck?6S z*LtDoaT%WgI@w4$wJE=fr>_pTLsRd_Kk}RY4u;^DW3B(It@Smr(Qs@ykHe9#u0NK4 zTdpsnYyYtta6xVTnf(Nxca8TSHve8U{^RX7o*pjw{il`>XXQh>kL_9bfn(`|Jj-Xb zqul?r{T*$h_ zk8lw$RcF+peR_VL=5yhf`8(pyXw&JL-cV21w)Z2V@3vlxMf$h)V--)i9C_T{TKhfi zyo=}W`QGl~-vj$gK~MeTxKZPwXQQHjspSORTKzbdI^Dii~KT%;PrlVhg|K9|0XZ~^Z9%3rb+&AJIxd? zT-Et8ouAKV0*^l4ug`=>@~`U+;fCX{sh(6iT0hNKcc0%<#NfyJYd-IedELHLKbqh( z{O$Z+gv~KN{h`IL>sS6T+`osi;qUV(`06VD)BAnmt;7d+&GYe1eK7w`e>`G;w99-8 z^`4V&$yeNWPJJo+*pE(qN&Zt`j=z7n&3C@zU-Cg3Cx7WroS{jg8^sk+%;$J^=r zqv4hp{`jZPV^;r^|157ez8|80#Q%2-rzBSXy}m{Nd;VVne;9uRwDELV=J)5cSSr6+ zjk$g*hUtGtjW-N_Y4`WbyxOFL<}Z4{&F$0a8@I(!aE1%(*X(Kg{f*zUWPeAv`cL+Z z`oN294&3h};%{BSuk}gMM;}G68UUD?_$Tls$XfQo&Zn%^Z+aU z-rL^^KHanMTm8&_tomT|t@rJA{p>uehLRWrxe}Qx?f4%d3f^rNWwD_q< zq@4|?|F`L#F4iySjiWxQLD6?VKOD2r+yAZq_5IZ^q*qCayjqVA^rO5{KRq%YdVVjN zYvQMxVts4=@_>JJxrd|QB_BGFoGieBZ_Uq8U=u>}K&lLVU=aGZ|NBb4P@ZUd={L=XD z@Gt#RU&s3Okbk%LUH^UFzk~f_eHin5(BA{B{p05aRsG8UjHmoLz{$M^&+iu@z4F!j zyW(E?nf<4Me&Vn2RD77*Uvz@K=hcEFvt@D4!e{cSp>QwfNJ`PMidVQtnybqV}oB!T< z-}-%gy}Oq9vYj&TUnqPPf35E#J@R+;7ed943&I0hU|G^Lv{0M*M@0dphUxU|?YQMbue=ooH6eLu&46tmChx5;s@nf>j)ur@r z^#u*YpY5vTU$Za!y<%Z|wf|z~OU2l>U%^)2pN{V#nHBK=rzE>?!GqOa#i zga20hbAA&I-}9fLpE(~2b@PwM7ke=JFn_i5zzJXOPghV-gX8eFf1Uj^99-JjpM>Z5 zX#b}8zfUjce8zw2z0q&){`p7t{aE^4|5Scq|Gxh=@JISNJIdcozvxf*@mFb6N;zNH z0PyZX@qgt7;^7Y%EW+pguP@mjD*YOL8$T@%^L!pH9p2-QcB(Lm?~?rq^&>kWU6aM<_~zrFJxzP3ce>pbwY^3l!ihj34S zL4OR~{SOw>XRS|iSo9C~wCO%xzXCFx^6LJnJ|O%(c)26^m7mHv;a@rM`w0KG|Kx0`Z1_^>Yibv`!uf7E}H z-}7(3f9Q$g=>OvLhaLaj$*2F7e)WF&LH{W~NBnM23eKeOV4u^){;l_Kbo#0%C?Ea5 zIs@{xjmPMpu|4JU;C}}6;{W1$g1Oax=lxFu{dT;tatv6}Z}EAB=4ffx`<+JnM}9Eb z+Bf=dv~P;X1O0W!Q26gZZ-YCU{qe_8f9L^4-=3#w_}*WCu>YX!D}Q)@R-<##ADu5U zC-QgC57zb9{{E-DQ}rSHTez>}Wq(%Yh5yp>^G<)&m$HAseyf*u_KzRYkM@~`{hj9l za9-)h{Z-OM*Bb9f_IZ9Ed|vParTC|R>wHA!^ASI-Z^C`$uUt}g3a;DTa<%?-YwL6K zWB%CmtNOwIs;CG|e^Jo(BH)p}a*ZgA-}ck>rRs$zG#Wjszv=mn zTA&Ed?H2Nn@+tXxv_I6nV~^gSHbN*@eSZx+q`~`XOuiuXb9Dclkr|!Rtzw`cVRqs@2U7K#B0nC zkDhD)OLU^2_AjKI!w0|9=~chS$XCVxruog}&sAUOV_p2E^(4T%{vvr&QTp=wqnfWp zKI9WU<_X>Q@%~HX=W_f@U+Jti^LPE;sVp%5^XusuNnPIMYRf=SltpeF|)SDxais_;dacc=QME_0{&gM)F#{J*nO*A)5bLz{)&bw%7F{9Mf*k zdt|+WJC365^zYW!HUA6U{Gp%j*A6$#ArW9V-CsT0Kk}3Q`ZRsV_K2^szm5OAKOp%7 z1Jk=dgu-p~6>n7_we@~pB|lxv_-}8|oVn%}z~}upE1dk;JsMyRlFEcjdn~?ysks^1tK@>rdFoJEq5ff=fNe zgM7+-zvXwYuaHAXf2nj?<0Ix=wr`<-Wq+~w=l*_MQ2M8SZunDcP&oFU`GI6}+t_dQ z5F&c~+ulb|_UL}E)!%;K19(=4f7vgc?jLWXqxgBaR{1Y|c>GMyhwzF1$M{DKyFAD` zy!@vE9r(`g>ynQU0ESSnyNH3(T``NdNc; zbIz2+_CAC!;^{_48mdS#ZTG=#fvkihPxS;6G@*9{oA%1Lul21+UOu zPf+J&)TiKG-?2U6YxLKY2r0a;=Vi>FQpfyUpOvk2Sm86D%XwAxmp84?VJ3wI&;B;w z6ui|J^(oWW{yQDA__JR)(yRIwzt_vWKOg-Xz3+#UyNds<`cvBE$IZYE+}yYFDP~Ro zc0SSMV?X|;6G}My6D3k?b5cp9I$FzejBfDH=UQtxy_!ZB53V*{LK_B{Az!Dj4wO`uY4NX zkQcpv&ob8*e~iC+NZ_?!q!G>emi>88U)?@1znl4~BnAJq%~$X8Y4RT|?)3T6cu2 z(2x2K@+4#HFAV@`>wY@&tK%oX$NbX{T=}E*&wGCj`U^Ms`~6>Qz`*09S7UBA>v%=vNpJ?2;XRDbOK;ne!W0B`!t^B=|YQM^9j z|E)Zy!LAug6@XY6xUTHHRTffH7>j#iYNXO%<^`gnE?fU8w z*KqE)2z`r}QlqQe+liXVqpC|CM8y){^ zL(lVD94vl34x4;{Cj1ZPufO#l*);1HcN)&^$izz)hacT_$}g#}CA#JDLMhEPT72KQ z|1|W`A9~+k)#4TZ+oPp#i%0MYM~hGKZ@>2(|E=#!ZT4VM*scCmFt}oG`LpV`<0lxM zG;rn%AE5_H_|{(rSO0l?WB(QFn|->UOw9(rqOgG=h~B@q9e=xxzo-6bbw01JE0XxJ z|G;?(yX72UsQr9=uKH5-cxOF4*=yxne$LO^S)YylM(_GD-!BB~)9k7I<9?ng|4Ll> z^W5U?w)!K^GfVMf{W#T2CEHGaH$C(17ufF5`?+aV|9;W)F8LT=@wNep58+;D zaORz<1uyGQK}87Fiw!mHp-iz3Len#y+MSZTvKxeC2%15ek0o->9I8pZ6nR zsK50e)kX6c|804y|E^B?j`Eav7fzlxxW`v=Hy&*F*7y+|!sqk477yxcD?b!&6&&fuaogk%1-t8C`PTH4|H>Vvr|I?`oKhnO z;{WnQzF2zcyWY@yuW#Ao{xs+-U3A%>wr^~Y`bv24cYhDH42=EBXZ@}Jh%WwwfWX4YSG)xz)l+k7E<=f~)Oa}QkpiZ=?M4hA=Cp#MK9!qLS4Pq=se z-Sky{<9;WE=}$9$Mz3&X_|os)`Vv0pyFSls{LbQ62_`t({gSWnN1sLUR`pDqpC_C3 z^K2pT7x=-a`%6rJoMGnqRHoVNHafYU+L@ny~08E$X|%> z^pvNm|Cf5!hw#fjc{uA627JkG^AXh1`nL0{_j_u3Tk+F;d6m!OROPSj{)VvAhj=~; zex{B*-5*nz^hX}_*3feb@Rz7p@>s9!Ls zkDC8UpK3E8gX%9#-_{?EzUzOd&wwv?Z|xcRXT@#)L=??L5PuyNAL0uG!=H4&z^MPj zc=i0ey(C@|V1BFzWL|G;zsIeuzWSotnIA(??RI~zih$y&`{9bA+qr*o@OLt(!_^I$j{(ijrdW7ZTydE+4+OPBdax8dTeD!;3z~w;8^ZUH{ zix9f48StilaC`~A;#={{d|qEf-|TP7oMtcdzS3p_V)GjR{`)N@zvo-|-}dh68+jZ^ z!rcM3zAYY&zx9s-hMPb6So;q*cJNH!@OSfniVwjoe=fe?PYD`**e`?MgLot$)+hA| z{VU#!&Z{&bEB~?K5$(7B8TC>8T0Xl!n?d-it!TA)xgHMw0-?deC(a#EA90WT>b;S`-A(lu@~N@59{|9 zKksJ|zeDv#>&xS^N6;k~1>FV_}yI;|t?XTwF*q8Z)JrsWP`%%PP z0tNT`W5n4Ku{ZTn;K=Lxq>VoEe}~gt#`qLC{7InEU**1vm+R48{};Y4>8JUh8`UO# zH6QfH`on*Mv$rN0g7b3?s>i<67Co@;A6{3Den~LP%kPEW`)902j&}6R{(~sfZu9?^ zAKH&>yOq`_!@FHzeaIhhHQZa@>&x3)P6MJp`=8q1y4PonmxS>VKhP(8HP-1PIQvx^ z?|fOl{4uu6!GbHk6WsaP>?hyd8`B@?j+(#dO8!s~w7aOB7C#=pPyT=q{*kZ0^&c(A zR|%;$x0`AF;;({d{=eF*`J-BL5?H$5x&C&Wmh_iJ?teGVFRd<6;k$g>-uMS|%Rhl9 zT_hmqbA;<`;TSD?+CIOy^FN^8=Dkr|>Q}R(q@?~!1YyPq6PYeA?cnvNGxR|1nzGwgQLfdWPX_qX{NLWV zANjt2%NW&E!TGst#Y30d3pcRodtLrl{x)|a%J-C;X*>^h=?{LHXME5ze&SQnW3SrE zfVB6{GsRFjAbHH!_|pojP4}*RD1Eg5@8|@day->1@e+#YDaWmTxQ)8v2ZW~N@q-k~ zUHzx_^|+J20Hvbf++GO1{>uNi`rO;_x3LBH{z3e0s>Sl}>C?NykM0cpDv#Ga(7!D% z@|ke$@V5kU&3+2Tmwb*V%73LV{8hUfoa2Vc9wH~O<*}Vhd{=$h&KG{?ul3vSULT9M zRMaK^SAEVq`#Db6(pUDPj|rr;_jfk>e<)rN-{p_|3*6z#e_fL2`dDA6ZT~x)1NZoz z<)`r%{0DiD$KLqw@>KlW`?s4s`DgUM>VJcKKX1@y#7BCU|DpWZ@Rz-)-~FxUDb@Fy ze4S5C{0)sir2jY`hr0YJ_@IB0zwiHn|7h<+ebYV6U;Cw#{=Z{=@Lu;n#}PVT^`-pL z`s$JW6WrY5KiJ{lH6H8!Ka;&1eP9Q_T+&bNa>q9RyFKsZd(W5MdOG%pNB!kX z;XhV?jaFQ?e^GoAG52=@*4f8DhqN=l!d++Kae4f~fto+2$@ebDY8D)Pt?$wVu5_&a zk@1T0o9Tcq&o5pXK!cz05&SmZTVK>wKI_W-4gS$5;~)AQ4K+gI8-amSUK_l|Yp;(@ zB0daP0hDj1c&d%sUP%8zy}UrIkV z9i$K8dyRgvN6+t$_QijhHR8W(P2XZa{*HA8mwk9!5e$ERPg@tV)TY0 zg$c4?oZ|K&hI3CNk`)|-jI(*4?Xc9{p=v|f1^J^jq=e4|3L4(3de)pAJuEE zD6H>|4Q$A)lIYI|_8Ved%lD(W#b@~A0RJ54S^nY3^Kc+E`>*I5&*lF$f8V_yMdA^J zIoy96@7O=uALDynYHNJrUlJzcF$=`AflYtpc{)+~@N^{~xWZBVVTksv&F%a2&oUSO zPv`dhJmP5M{zKebH$GW8@lbr_pOJp! zzoX#38#?yAKF5Dbn9#Fd1Rq^$yMLzXw#Vn$za5|L!pHs@^&9Pb1Rwps(eESnL(Ua@ z7hZ6PnLR)4U$VEw_i4vJz^tMCQ}5@$xBs#JBmJ14NQnRY{cYM2<2%Zgp8vNAYNHNRhYz~-K{0)8V2hM!c3|;S7&$M`0U*fS8f#J}%`!DQI=nsJ>KY^b$f9Eos z_hW1RnI>{hlJ9o(gFo|E!P7=Q>j__-KiOViP!F5{YN8&9G@mB=$hW@mXa3{M_CT-v z)a5q%l>M-SAM#7T#2fl!=xhDS3m8nz|CRi5XwFZupZ5j%GXIT#jSqk7r>^J^y!4Mg zz_niC3P0eCPq`#-wLkj7?pX0#`49eW0T(^`mHf!Fer6we@Yne-SK@(xsK>eP#Jd`Cake_iIcD86+SKdrX}wtNz% z&7X}A`?f!4IPorhBj5gtKa3B&&ePZUPyR^&jSv02-Zj7I13!(IR#19kPt(8aXDHg; z`zQX#Kh?iMPkifr0^yH2RWHPV`8548{cp|h5Bjso=e$zaD!=TvzUp6NJ|;fVhxknK zio4=Z#SFCk@$@X|l+$W|a+?WZ>9>3p?UE0;$NrS<@n4>Q(vXpMd;fOx zSKYtN7!mlv;~(hNo}Y)7JcfYcm-PkiDSWLjbA?~!^8m+Zh0ps8xxlTq_ctsc^h?W+ zk{5m&G6K(hgm(Fd`#HpqfCcXRIr*aL%M3(U&4&q}@!4Z5`n)fCY)|$L_Dt~Z|Ga-g zKe!uxzOsDHAxeL@$N02-BRy)q)#97}BHGX=zOp#&+d1|%`xpBcdCfo0pUFR-F=%`# ze~)dL7XO>w*Zp7T{UmYVi{VH;Y z>Y~SAO8v&q?=u!<;ro6-?Cw}R8#r}dJYt(qHn)(b5@L|6HykR{)Ee=FhO ztHke>4P4Rd3cdDAq)za;{gZm5FM`kQgqjcd3*j@}cRnv(U%(^qwq9!ZzF)~01t*_jR{r32xE+7U z+p$mgKNPy<>-?zXRsUB1$fxnAJM{e@?~i#mGxdY*%op+2C49mK|7@76O?vrxdc{m_ zZZ`zq9!kC))j#tQT=hxPZ4Pb1<@GYwN8jt^9BHe(A}{{fUkoFUdcaf$3k?72tLNtt zKJpv&mu#hg^*eh$cJF^zll0F6^#JS+ul+NN6utK^H~3nB#~X<^?ofSL>k|wOY5B_= zNTrXr0N{7wg{$w_6aO+mRXE+IKfF}C{F(T`!|_MFp1UU(cs@ne&FU0zngro zdxB;EGcPa*IBmkM{?qqsblxJ#!m+=}2-$n*e<0FOaJ^rfTIvi{`$&Q+p7hYNU-P>) z|9SkM^S1;@_+RO~q%QL#e`UTjR-4C{YCPKHn;jJW2p_-qq$};Ww>S6at^bT(`l=p1 zYSY==!zBNi4(8&6%4+-m$S|<|$Y(yh+Nb-;qDl0<&?9NvLen#W#$CPr!U7?fWgqxe ze$8L&E7_(?^lwbK$F}^{;JLpo0xgdP4w`p*?T4#(cYOFM)~&7c1o^JDc|1$?-(QFy z>4d(y)JDA;AEF;%+N1}U@sG48`71x)|D$v({KGdp{4^OYxS#)=_^tZ-eylP;@^gPt z47NTm*sJ+P@q1R==^A}`-Q;X<*vB5*x6&`riqu9Q*&H{t<0b^A6QLUBAE5_!sM4KWQJ!{)~sf6be#I%2)Dl?pY)piH`-I# zY5wxx6u-g$kKz;Y$v@=R{@xnjf?FQow*TUIN#Buw@Iw#$n0V5?@HhE)c&Batz^D6x zCjO)U!qECG=u^FU^}ogoK9bMvIKuFDS zWY6WOK{Vm>&AJZTDpIR$_$X5C2w{!m9;YYzuUH!S{|4o0uTJQGx z-Ew-K?_b=LU;6v^r$w)HL@}PXc&gFF_R&Ai6%WJd@AM}EphW}toL9B}YB>3Mh<$-G zzdx3Jq33|Q;N}nfT>c6D3O9e#$9~5T^Pka{`DEg|_xl$bf7OQ)pZ5E=u@Cz8`xxer z`_TW##b=j(#@>BcI9Zr5U{Tn>~1x5J8*Y`Uq2BCkd z`xmzS#V`IjaD!>$A9~^+dbzX7$2O&~`2&|a%*m4v*JsZ2Qo#h*{F#59VQMSEB+cZs z@&7^D*W#u7No6lr$xFToL-e{I(R`$?_|g5vtm(si?kYthfb|PM@F3}7DDfWet%2yZ z{;c?w|1az}DPmiBrLN>@ImG-l9R_~dUlDS}i~Wn%KHZJPhwmVJ&d`W&oF z$zLL0{LK%r`Q6EXq@TD~{5bxWeqtB>@_sm4#b5D~u1!73|)_zTIKa=l>_YRKpg$Gm{uG)2e(e0N!b)ROB`qQNEM&8Z&rs5iZusf>y z*5xmppQU^S&hRh&EyDV+Awa9=e|w*0^S}DfXrHWUHgMkOda8hkAN%!gw|uYnQFeLM zXXLH^^7Aq%-2AEjFv*j;WuJdvPS%yY>s9q-g;-ZTw?`JN?BV_OADXHha%ddc|z|qtAQnFt;_|vUWvpf8E!2 z>yHh_Ki}YI>zaR#Qio6EYyBO9;4{IC=J|g;9|U>Nx4gekoVV~y2qRDN`LFKXY_@){u6!PKcg+8(7*b8 zSNev2Y5Qe`@B6QqPl93kSH=q~xXmB*b%2yF^1rxO{xIMey~%6#bodhZOdtKY0RVXl zK;%<^#a|}JAHH9SR{4YHzpP)w*Z7q$;=kK9_s2nO`rF}be&B?k;wJ~wl)rB0gW7P9 ze{_E^$|z$E*Z9R3+Ou(c(eLHyuYx-t_!}X`kNAjP!8IQ(+`yR+$QRuo`n@Rmzxcn( zpRzvdYi`$i6}egP|9YQDIHSJWVi$1qbAAhQ2Orvx_+fq1=j!+oix!XEZ`9*)b36nu z|LA@ci=%;OyDFx%R1kni3oy; z5*5!03L19wg~J9AHFnmW3=s=KPY zdUsuMSGQ4DLD^mL*j?5Y_xJtR|LytBGgaL^MEqEpcmB`seeUOd-uM5n>Y5H8SY+zC zeSN(r|NOsG6)i`)zh(WS&r|eyD*By%;PX7K4FP0){(UB9d0}6-XFcy-JHPbn-}t;} zQeNrYk;zH~`Rx5V$>dnaW&VBBj=zE$>@WDVLk^L@U2hONr(s85A3v!+*ZOVp`74*# z?I1hfQ+x_9d%jBcGJY0a$DY!;L#mVYQam@*E3=i`S9tooO|{l1Hd+1;7v4_uiJj$l z@9kaebrvw=KdgFC&J>@1eRJpgXEK64ZEwDBJZZ1HQ}jvV8RbB3VMn@FU7U@1G2-f4V&HT$9h9XQ_U!pJQMre(9?} zCo#|C@;xa}y_Lx%zw>-_O`e~Z=i;4sc%E0fyompH1*l?7+T(sXZTy*bp0DDgc*&mL zE@^*fE82-)ANY%%1(?-K_iM>d`g>UZw9=FM+3y?5-u-v%zg-(t`A^EVC){-ZNIzdn{lfR%GKtKd!pS}lOZlk0+4oskV&d1&H|cl1 zI`-6Fg^oH6nEkx!_I$ZI^_6}eZpPR7_42&@8DBpytb#SNOWuN`aE88!U&puzI2Z&$%muK8O9)+jxvog~;ewI7eqbX&mYO|=Sna6>wF*khVQ%UQ0~NcOO{_cpVba}e(xCU@H@Xx zTP>5v`*0So!p-x`o|nZ;`F5U1Xt9od_Iz{g{lO#o|36X%?C^E|^STk|`gc46d-8cE z{r@lX{#E@89qrto4j|48g_G&)>www)j0yZ@pAU*Z8DHn~1JcR(d>%tA`Y*$}-DUn| zF2m|4aCRhR@$-Dh+U0ycPnk}i^DFt!J}=T*(UaKI&r>pe-7<3jg^vF`ezp4z{_=1$ zdEKvXh&Ky1x0gO&O6!%~59B+=)A{^J7IXOrAG$Y-C&}M&N9XfP6o|K5y<$9_pVoBb z_2Zf>{;Bk-HLt9`syEe2@#*%N-~T&&-TsLWcBfuCP*l5Yhoi6W*TT`Y(nML#N%j=#?LYp=y4Hu{tC>EnCi znUudnHwbB7~KXS|MvZu2!mw)8#+3%~Itk)x| z7q`2~dg~XkQ7*kb$@KO6N>#t??Pl&z_OipM!@orVYqci(S&uime{^o3#HZiqsr8Zn z++IO9NbZlRziz)>{go>qe~W%T#NJ5pyj-7el7GVde4$HxSw*vY^+*xt>4`rV(cN})~r{`zdxxM?k+Ph|7--n?838xcJ)}Ng_68`jYs^Srm^Et#g~^i^UwGDIDZmf z#}E5!Qa-QWBtQSW5AkgO$X)*ZD@Ca&6b`?i26o2Rc6)mU^ZTRfaR*%XH1aA>dj81n zcM7lbej=Aw`ge4)Q&N(bKYd>r{m%Vc{<8N67|imQd=@-Kki62<`+-b8i|1j*)5)$A zzwF=ed?{64nZ5gDuTz~)yed!U_xa@c-HyG^E3>bBZv1_1odRU`RF6A4tI_eVeD(dE z?3L*&-W&AucF*|KyAxhVU-=}Q*%!|9@9?oF>)AJ)vU=+aPO4pIGQ&D=lxlY1W%%B& zhCjLfozK@)3pvgB{QGMuP@@j!{m~8QWo97bv!6TS9r^6@9I2}&8ULZoA0i#BpI?Z| z-oj-3+lV*%yLMhYlG~q*N9POqkwB)e2G8P4{@%{>W@krq__{w%>o4Y~<2%KBug-T> zbJAb-|4+K1o*_SNu%!PG`UIQD%kv8$)mLB8fjepc7V^m?I{ESQeAX}7OP?Pm%<~tk zm1F($q#N!>88`Q*uM6BLAN8^3^5Om_URDt5tAD@WxnJe-xA6SP`Iq#CIc`#ZJfCIF zMvl_gzYpR()t?UL`?p#1^Ke?%KnruCvLus8CroyYvXT&>4sykDNZYx$}j@HZKM5Br4IiBAXYjq%-J?;lzI z+WqAb?k{1zvS3pDIzaQs|16(-SwCA(ZEvk#wj3E>+kaYql#e*S-DURFemC6DW54`k z%d-!7WmnZ_THF!ORzB;lj(xSS_Fu;UdfE;*=x3WXkLM2YbM?%hwk!KBd!euG z$bOr|TD}|Qjel+bqY(2aEzTbg&(s_|7C{Dk;k@ekv~$_Yw~eeSNJc~AU@>D2YGz_kp3FYX=IqYMHg}2I1s@Il)UoK31^c()hG(6sY z!QQcezfJP*%yrS<)5SjdrG7jc^iK#=5BSvMXwXOAhZEa9e++T9?us7eoFEc&9RrT$JugOgM7d*5}*Erk5A46xBrQN>0giU zcctU@zK9KtRG_K^QW@$c4^eCfGA514*){)3WvjmhJe^A~;SM>U-PeZt&tIqUKF z0S)KhE_{y$`QV@Xh2uK|{($1~dj7Te^b7SupYzi({q-izv3~H0ADiS)yx%E4@v+v# z_Yn<`?|+NW{Rck!g4upd7#r-*gzpHL{XsnNk=>)=&tsLq|5fqb|8E7nAYi^V;Pqb- z_=B>)Uvt!#{JvKBqd8_x_!_6xVwF)YA2LO5mxS zkNwMm&;5Y+qv*o_K4IVgJl`aL@P9GK_`^SX?w{v%ujfHw_x~$FpS5s(&Rf?%8T9`u z@Gk^@RrWl8o|k;RTY+B+eBN)Re97-8G}tfX%X)IZaQkIpsbu_@={lj|{MQP9g9iHa z--k4)FLh%)CT04A^`ySo!yo4{{@$VS77fm8_?z?i{Jf@qY5z7vyZ-kIFVH|9eV(u3 zr}O`?>~Wr>PkfwL#1AHao_|j0s!J9lz3B1(u(0RX7IyzXklV*U_VuY<#!vNpL*W03 z_?I=1rzY>yz+RHC=klCy*!%gw=l!bZ^C@BPzrU0`^+@%6g=p`;{}cF9&prXTSOW{Ayvh_n9Dnm+a9mFVbNB?$q%7sLd-i z;L~593;Mq+e7Etx5cq3_SLM3Y<0pkr>54CE^ipAu?@OBVdh>kfd}#QoKff#R$=CHc zpIrZ61pU_qKE31i-x&CB3;eeQK5Omz?+W}s5Fa0DKRpuooWJ*rPkz*hp4q06`sroj zvp(ok&z}qWUljI!`i|Tl`q*Q=eSLo+=yUdQ54u$Y-@hFAPioHh*HeMd{&4*{f&YZC zpI_|9SsKJfe|=nh@86|C|E-eo^W)XxQ?HaC{pRcaka)fxuMP672lb%d)N@F5BxFlITMj(&_BeFK7)F>|Nj!? z`Fz;pr5`+=*9E*j$a6lg&V5m@9fAKX!nfso&Rd>;Jiqh84``&`{#D8APgZ;6tAW2r zOzMpc`4)1V&eL6*bNlZX_VwcP3~-Xi&IdK<7wmmj6JF1!g^?jQ;(3FH*N1v|ec@3L zn5qAH- zCmruUp8uTB^M?LpwWnSuH9VhB3VVFq&pf{WCjJ2p){mO+)R>ji#QUd`r^fUP>&yL! zGa>cQ1<~$rrLa^oTkOGQ8s7hJG(P)(UEm)Po~1!7`2UoK+utJW_PJNO{d2;zG?G5g z0v_+rO4;lGZQ}DhL~e}NX;6<_HL$_+G4*?)2K>)!JfM-z(=P_h`F5v9@=v~w8^Zp4 z@*e`eFUZdk_VrsFa9!Bz!}HZ?4c3Rj`wjQ^y~3XF5#{%|=7^X4KBD3E;{DY9nxh`% z+}3b^74fNOy8r)Q(VEI+>BrA%xc}D+yZ^rxzN|t25$`!EKdx(v=P!i4|CS415}$aG zzpCN+t`GcAi|_HiP<;2dJ;<}4J^#NH_V~FUyZ>VWUlu+k9pWcG?oTd%CE!|+|5{;> zkMoN4r@pMuZwmYV|BU85zd`ZcANS^uY7h(h>1|5gp}pLYiQ?ZTe# zs{(Gxp4aDh0%pIH--|Tx_cjgsE8!1{Pki(%@vaiC=t@11e^l7l>-%z?@_kLfKNv9m z>-M-GxjpWu-XGr_@CL=;_5MZiJzm~FgNcXuw+DHiZ@vGC-`D%Agx@R~^5uN~2@S8$ zABgYu{Z3(zcPN*qR*c^l-}{k!ldm7=jqh*HTkluyhs1|1)@ZMW=l=rnU7q`k^Vx6C z$CvYO5B!qwQ*-`~D~fd?1(SJR!ax*QjdHuhfWsbVVNN<+9}em@xXfWaA-Sy;PY9>oX3ve zC>f8B_n*{5Pnh=$zCLde zW`F6D<@3wBy8Vv_%-QDrrvqkxkw0rgj{h;>9~Gv4#Dfga4<7#y1kCfT*NgS__zSY( z{fzA~4SGSMeG?j<|A#f{{msuOz{HCD&ugGh?HKbkJYSwa+&}jpkM9qJSwC!Hb8*n; z{^tgu&eVwqcKhIZ=KQDb>Po6&ZUE z@A`M-IO)Gh82wxF!TGyDG_`)Q#uZ^-&p*?g=YLk%>$@!YXZ@UC7WVc0PRWDWpTz$$ z4c~8^H;&f^`}C);=NIyLIg9C;^^q^^@xMIxpXxUtzQ;>!jwPPeH`)JFO;j{T{g`9F zp#!Fd-<#WqM}9BSpq|hS?q{$uZBq z*#A}ykB?`0$MiGLv-o07z9;bS3ivev|Ew_n@rC~50pBXaUeDhX_IlKE`E-80UfARN zk$~w3fB*l%fPX3APX_#yF!jVA+(M)`PG`^ zJb=Ga0}Rdhyv6|ydI9`b8XgbNqsYHl13vr3`CEkD-XF=|D$UXF$PZ~O(7--6=tqzD z4Z`@Rp2*)D@DB^S{QZGn=)!mT2SfgM3*(Re$KOL5?*Bc)uD?&%^ZVC<&-1M7|4i`r zp&+^7BKI>sVVEjn*B(Q=_l~(gn1@reON#G z*Vps^3V)Xd{FiDhmppu3GWj&O#gOWJ)TE{{Nn+?BFOW+;_=@Z_;&@&^PSi8V*&I1i_;q9#`tmZJ>S=9 z&f{&0|G4I;EA@IR*!$hU|E%z-Tps(pAMyS0gyy`TX9s(W17^QJp4-DepKp3UuL|<- zk&LhJcL(|9;yebU#TELSj}Z+QLq{P+W! zCqC+dACGUd_#Qv+*Svo?KRo`Y1O8@V?5FrwNT2?|7cqWo@XvYe{r5Y<hVeqkMDkAmwzbWMZ%u%H{|y4hrRC+#$KxD-J;$8 zYXX0j_->E$(e-~c;CBVQLi)bmOT;G!;^BN9*I2DV{TX{T-mC$ie#gJxk2VL)=X(b< zm+ohLUW9$t1N(oa0UwNgv9tHsFU#>?XaXO|!Y^nLPwKU!qCK9wgkP&cZxG)P1kCx2 zfB4wkt>N*1Oqh7c4}VVuJUd{1zJq^cv9~zz#m?eQ@so?&KO*e@-z4nuZwm7Cudl~v z13n|{_CBNlkbjW|F$5Z17dy)*)#s;$S?{#Iuato2`_BUYh_L%R80^zW=qLLp1HUeP zuQz<}r;Wn5Yp`~l&ws43K!fv&7%ymey?!Oc!}A65x@7Wi7J>bA9`f@S?k8WZfqgz7 zreEk+eDXZznDf=od+tXb|EB}y{)m108~eoT`Mp~B0S)#c`EbAWdc8^de!u6ubpPnR zQ-gTXf2D@&^M0HA5%q`9&qI7Y-x2J8L^AMSq(S~?#eYQCWdCl_ZvSCn;wLxke?szJ zFY?n=W{Wj(l`@Asz;S=Md8t#whU*e&T z$b3-4^I0N1O9R{RzeV!CpZGjYf3o^upXZ}D>q@<;*)M9q$3BDSG3W0Q_UE(D2zx(q zKl!KzYe5XJ6~C%0{X`G%5^n0set02RgL{UiGrTuo&R3VG9>{*Z2Jt~BOkCfPWAXvN zUBmB>oTt>2ej&ck348q9?>zo51paE_`z1p@)Qk6v><{w6=bhqvz3ZCu_5XhHy`TPE z`~@256Az#7QEzNBzE*fO*L>{M)z6nNitq6YX8%5u{LufD2JsOuHt_H9@$;lhnrFQj zAJXuCs|kBO4hcV?L2nW7$2ENaaXxv!@bhZ-R~GjD`E=0#ePM}Yy-$DsD*-=Geo1p4 zAOGHj{D_^Lj|qE!QY-39{>1yzoKG#V|AJgUtsm#D$4hT|{`Uob_DhjCjK5U_BQzi{ z<|I3bX?}+D2{>VR1eq}UETH2kAMK-)c4LBGUxjV?EM^Z>{s}{Uc@?`J#V7-1(-s?j=Q(^o?zSj%=h>0QjN8j^@=l#&F9+7`D z7=JF0Z_l4to!`yB%SZl9>hJZ!-#;X#er}KW97Ct`Mr6iw{>{b{{h?0{()xD8%q2eh zj-j7VJk#mNc;otmpO61&|7PQf{S)oQev9^zkLx>CKS%xP>_6Z5y4m-5iQnTTKHqQn z_x0&kALqyXrqhr1u;upRev0#19dB03&kM;BY8}q}T^RXY}nTn4+e?Nk*KVNmr z2OaO9SdX~g&L=+C?`D5GedlA#?GwNAr?VgR!BfT8ZNIwz>Gb3JU@z*&^>cpIkNJUb zMnC3{uKUBD_XGaDf202xU(BzYysuZ3CqCy-r;mSMKd|Q$V@cziv($;WtOeY}3%>fwCy zi+C#g*o*PHKJmu-M|ro8Y|PjB(H`+mSHH;j_}D*=yREPDu@&Qw>l^Fu@y{f`DDU-y zb{y*go=TtmrsAVNU4OcMl$Uz;gDdZ6|9lI1zkh=H%){kly^(Q#v={5`>m$|c))!kI zKm2IlG5i>h*B`$7L)ZEG-!lKb^QrC4@V^xF@#p%}@sV|T;_-aq{b4#j@^QVU>VJI4 zdb|HvFNt4QPq4?2yz9sOh|l@m?0Y=$<9QQt`hmPevtEh)=lzV#RQ~Z7>*x8Q@BK1e z{IQ?FaX)xG@Tary^7!|93Eq%jRtnbb8qyMNM{ZCil zsrcQ_XZIiZVE0cwU7p;XFL>ShgS|fJ$M|ADMS1s!zOO&B&hNHAUA~*X`|EZ-IiK^; z*QeY5a6bNAe>(d!iQn_Zw%3ofaDUJ|gLpstc?#cgd|rtd`*HmoM|teWcpb<3ARpJu z?IZ8`g1z4Ocl}t8=nu@8sy!Gw|Ze8AXnzUxQ-*z^1WVhy(7lI*9Xi<_2?F# z+lTM{NPLkWakL-#o)5Av->n`~@w@4Jyzrwx$Iw&NC&m-~fqlJ@cY9GEj83XQ*zZr> zusf!nD-pcj)g0d#w3qNAFAM1g_U&Ov)f4V<(BaZR<`XEbAX@625=R>=GtY5c$ zJbq}mFL<53XdinnAMGRW&!@!i`9>`E4eR6aVc+$;Vb4F>$ClSC#tWWGAHF|73toru z=Y0CxF}@uOUWc*IJuIy+_B{WH#l9||$e#|Q@Ae}`f2w+r4>B{27hm!H#?4~)M}Iqh zzV_pOqPM-jXM+DB&^9w1(qhwtYj*!vCa_M(6IQ>|Awd*1KU#f!ez zyBqfWX2Os1F@Iu8{W}wTv0l-Bj6eFDO1@jYqx^Juy7(gBF}>^S4|adV=lR9;?8f*0 zi+pTFdyb)}@(UYDQKYY)(o4l{*O!zKO|5Kx0`ytk^ z8+Lo}<9R_$$v%9~ubaF-Kd@HOUaW`jH+)6=9$%~v{-geM@w$KX-F~agY{T})5ANh!hA?>eto+Iz;0p^(}$%FlV4fg(v@qpcb#OOP}8;s1%zv<$O`o6ySiuw^x6(9Q1evIF7 z>?iVbf8go-IUjlUbXs5RGnX(la|siR_iMz+$9Oz`_)}qck?-d%Jg*n_d_B7PkMTx* z$JmeYyM6e6Ug2*#`+P>xtA1kL;4kJsU3`%r_5Hkp=koY>KKVGGwU71pe7IkFedsN( zpWt=%LEi22{U)~``NZS(CjOY8`$IqSr|Ng?d;f!79(#NymDUeg$AZ`8gTBWT;|It1 zTt4O(^I<(aKJZlf(I57s{&f92m3{nAwLabAb9=<+{Q!=9?@!`)f7o|@_)$OR=lb~b zen#K>ImXw`zT1P(Nd3}HKi1#ljrP5Mx2zJHb>}O;`+HvX>hJx&yT1RQ{qwtD^V)k} z_XDs0!GG~XKl~$ac;lPi{FZ<_haw)@%tZm=evI5-9P!@L+|-l4?ptW zpZe)Xf97BR?E8N1{f|BVfe(J@=Rf=l|K^Eb{K&t3@}s}>%OCrdfA^~&|HQBT`cuF0 z$>02~-+sE(Uz%N-Q<__vSDIg1P+C}8R9akGQd(MirnIcIytJaUvb3tSy0oUWwzRIa zzO<;vDjhBzDIF~xD;+PL zD4i^wDxEGpTRKxZTRK-dU%F7bSh`fYTzal_rF6C2U!Gl_Q=VI%SDs&9P+nMGR9;+O zQeIkqro61Yyu6~kvb?Iiy1b^mw!E&qzPzElvAn6gxxA&kwY;soy}YAbEblDuD(^1u zDeo=sEAKBKC?6~zDjzN%DIYB#D<3bPD4#5!DxWStTRu}hTRvAlU%pVjSiV%gTz;;6 zrF^y0UzuH*Q<+usvNEysT{2ws~oSKsGO{v zs+_JoTRBrXTRB%bU%61ZSh-ZWTzRf?rE;~}U!7f@Q=MC#SDjy7P+eGER9#$MQe9eo zrn;=Uyt<;gvbw6ey1J&iwz{smzPh2hvAU_cxw@sgwYsgky}F}XtnRGts_w4tsqU@r ztM0EJs2;2ysvfQ$sUEE!s~)eOsGh8zs-CVsTRl@fTRm4jU%gPhSiMxeTz#&3rFwO+ ze{lBToWZ$+^9JV+E*M-mxM*A`0Q&kUX&JU4iL@WSB5!Apae2cH|fGI+JtUz=TXREf`ujv}kDY(2}90L(dE?8(KcJVrb>is-e|GYlhYits7cD zv|(uD(59iyLtBQn4s9FSKD1+~IJ9$U*U;{vJwtnk_6_YHIxuu_=+MyNp(8^_hmH*$ zA38B~a_H31>7i$b&J3L$IyZEF=)%y&p-V%Thn^d{GIX`xU!Pr{Q=eO(SD#;BP+wSI zR9{?QQeRqsroODcyuPBovc9Umy1u5qw!W^uzP_QpvA(IkxxS^owZ5&sy}qMftnaMv zs_(Avsqd}ttM9KLs2{8!svoW&sUNK$s~@kQsGqE#s-LbuTR&4jTR&GnU%yblSie-i zTz{^9rGB;1-aSFBo1pyl8mw z@RH%B!_N#a8(u!VVtD27s^QhcYlhbjuNz)JykU6b@TTF-!&`>84sRRYKD=YNIJ|Rs z*YNJ)J;Qs4_YLnKJ}`W6_|Wj-;UmLGhmQ>(A3iaBa`@En>EUOG&kUa(J~w=R_`>kT z;Y-7pho2k1GJJKUe`NN^oRPUB^G4>6EErihvS?)S$dZwzBhQR18(BWGVr1pWs*%+r zYev?NtQ%QBvSDQ7$fl9aBU?tcj%*v*KC)w^II?qO*U0XXJtKQZ_KoZxIWTf?5*qg&WxNLIX7~CCCYVL0CY3^k8(luSVsz!`s?pV>Yev_Ot{YuHx?yzV=%&%lqgzI|j&2*> zKDuMHIJ$Fm*XZuiJ)?U^_l@o!JurH3^w8+x(IcZrM~{sjA3ZU8a`e>b>CtCL&y1cO zJvVxO^up-H(MzM3N1q$LGJ18ae{A;HoUyrM^Ty_nEf`xkwrFhe*pjiOW6z8&8(TiM zVr=Eus9J?W&WxQMJ2!TI?84Z^u}fo@$DSLzGIq7y z-=5u`)1KR&*Ph>A&|cVH)Lz_P(q7trroF7ayuG5mvc0Oky1k~ow!N;szP+KnvAwCi zxxJ;mwY{yqy}hGdZ0~IEYVU6EY42_CYwvF#Xdi4JY9DSNX&-GLYaef)XrFAKYM*XD z+dk7i+dkJm-@eek*uK=h+%FZ^KE7kTIKFdy*ZA)7J>z@F z_l@r#KQMl9{LuK}@gw6$$B&I4A3wqGj^y<o17bfKJy!j8AO<+)u%-X>P(|=tUPz#%t*E11971PP>fLF5`3|x7nvx(d-Wd8a_42)>Kz$x6^0q z?z%po(N}NObvud1AHLG-L8H@rjA2r@aII(1CmvqN7YZUYJQvM${vS463mqBckQvCY zUk+VFH_x}19qeWUx!|i$uStF`=k@Ppv)4TKd113yFxy7=(oKHRpOF0ID_@sr6Z?G{ z1r2yy!NnXiM?Wy<^Hb6AGCf@Mk5t6+5B4C43or5@PoGaJkeCoy0>{!HkC$@h!qMVyHS7YqEIzidq>3c0N0Qy-#xGjyM9V25keb^A9<59Ic+`IVq= zvpRga_LX&~KXoO}0x@4@_S(GDU#VOs3fI>0`Q*a7^YS>e37hZbtJi#1XVnCoSzqOJ zFZr*;JTdeQWSLyo+xX(;`Tk?mUx|DN3fKCfn|*T5Y678Gl7TK3_`CD!FUU^b&puz! ze0rsM-@KE3emetXFe^sw`M=BXR66ob=VlT1i|J!taX`XQ4u z8PCh;ExUeMUdUb?y+a!K(d z-9E{keWKmYJr@5gqbDRcU7Rj6VDi1_ zUh=)>@t?zcD}GrC}OFZ&OgjK|Y0e)=)R13f9< zckQfWKKX)9cCM3G9!aK8bg~KEYu;rBB$wF^x;|et8K?Vg-f8zcU@|kAcl$2y_ER1D zWZUg`nkS5MHft_&uH>tFjw?>qg{T$ z=Di1c(Gw=`wA*po>)>?J>=b&?{Wjl=?xkBa-I>sC-{mLFPN4_wc@3CMFFU^0Zr^FQ z%!JJsjqWqrb$$M3>4MpGdcx*sLibC)FCW*@J2%;{7h)K<8*&+XJDYScGxQBbf0JjbJQQ1Voo#PZ}f!G zKHqH}`v>|myVzh9G^ShMZg$Wunr?qD+Un+ZdePWT@i<+ud8dmu@A6K&d@s6x8au2@ z7PI8A-P4ZcI}@3rY^8ji?x}0?{YJa4&!>Atw(i__2Kuu2r<3oK?Vd6{{1#>~kKL5- zgwa0lbkSt8`m4V12YSpW`Iv9PDx#pW_Ip^KJRUk|#M9e<{p3Ej*7Omtnwb04snyV1xJKfW1m z=VoYZWPbB&QCI9SH<4cxF2LiJdR64)nu;zKuJ!F?44R*$#h;`#@4Bh4($5gnXVEDJ z;u*;8Ct4=57j}51d9DoCbvnh5Org+`ok};w8EtwzZqt1wnLhbRxko!L?{xA@Zk}VB z$4;V=DHizq#@q)A*K$M#J%-Pxxj64KPEYi(Q?z+#UQ^k0zu267^;pvZ$s`?UUQ^lc zC7*nuTP$2}GuijrvcA0FrFo~}6$<=4^LUb-zQVQMfF97mHuQwisehO+q&+Cw=Zhv! z%-!s`-+>>{rbGy??t=cnbj3Q$qs%!uUKbf89rYupw)Tx()DWJ)Rq@^ zQk-CX@nRmjTg*uwUaB)XF7I@48auArC)t56@-Bm4Z1RG3dFE5h>55!I^SrX>szOHw zoO%G+L^D58xMs)gCmI>A;pDvZ9!otbI@PLA^kl6>PiWwi`ANT`UEXPzcRR!|ot+1J z$hge`i>H@gpLh9!*>{<4^Thg?) z^F^D7pJWov6`8(#{Ic11+GCh7n>P~=z6S84*QDPL%z7p#CuN8Ud1RrBISsxi)J+nZ z%tS7O{6J1;`jY1b-D@7*?4@h3d<#~elsh(&=LPL{Qk;DSF-`YDqi5yxRCZi9#g9#o TvnY&>6hovHLB2O%@c#b~+XCgX literal 79451 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 cCAuyZ`l`2{SDE$trNUe7X*7#* - ~ + Ұ diff --git a/Subsurface_content/Subsurface_contentContent/SmallFont.spritefont b/Subsurface_content/Subsurface_contentContent/SmallFont.spritefont index 2ddab2ef8..90f94d0fe 100644 --- a/Subsurface_content/Subsurface_contentContent/SmallFont.spritefont +++ b/Subsurface_content/Subsurface_contentContent/SmallFont.spritefont @@ -30,7 +30,7 @@ with. - ~ + Ұ diff --git a/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont b/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont index 285dd2a0d..f8b3c56dc 100644 --- a/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont +++ b/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont @@ -53,7 +53,7 @@ with. - ~ + Ұ From 00c1edad09915dd394320d14f88c97ac67958dd5 Mon Sep 17 00:00:00 2001 From: Regalis Date: Sun, 28 Feb 2016 14:33:03 +0200 Subject: [PATCH 5/8] - Changes in UpdateNetPlayerPosition - Holdable items don't try to change the pose if hand anim is disabled (e.g. when dragging someone or using a railgun controller) - Indicator which shows the position of the sub when spectating - Bugfix in controller selection logic - Saving attributes on separate lines in serversettings.xml - Safer validation of received sub files --- Subsurface/Barotrauma.csproj | 6 +- Subsurface/Barotrauma.csproj.user | 2 +- .../Content/Characters/Mantis/mantis.xml | 2 +- Subsurface/Content/Orders.xml | 12 +- Subsurface/Content/UI/orderSymbols.png | Bin 9077 -> 0 bytes Subsurface/Content/UI/uiIcons.png | Bin 0 -> 14222 bytes .../Animation/HumanoidAnimController.cs | 3 +- .../Source/Characters/Animation/Ragdoll.cs | 26 ++-- Subsurface/Source/Characters/Character.cs | 2 +- Subsurface/Source/GUI/GUI.cs | 18 +++ .../Items/Components/Holdable/Holdable.cs | 2 +- .../Items/Components/Machines/Controller.cs | 5 +- .../Source/Networking/FileStreamReceiver.cs | 18 ++- Subsurface/Source/Networking/GameServer.cs | 15 +- .../Source/Networking/GameServerSettings.cs | 136 +++++++++++------- Subsurface/Source/Screens/GameScreen.cs | 24 +++- Subsurface/Source/Screens/NetLobbyScreen.cs | 3 - Subsurface_Solution.v12.suo | Bin 879616 -> 875008 bytes 18 files changed, 181 insertions(+), 93 deletions(-) delete mode 100644 Subsurface/Content/UI/orderSymbols.png create mode 100644 Subsurface/Content/UI/uiIcons.png diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index f8a142aa3..5025b8910 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -692,9 +692,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest @@ -873,6 +870,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Subsurface/Barotrauma.csproj.user b/Subsurface/Barotrauma.csproj.user index df35fcf91..1782abafa 100644 --- a/Subsurface/Barotrauma.csproj.user +++ b/Subsurface/Barotrauma.csproj.user @@ -9,7 +9,7 @@ en-US false - ProjectFiles + ShowAllFiles diff --git a/Subsurface/Content/Characters/Mantis/mantis.xml b/Subsurface/Content/Characters/Mantis/mantis.xml index e8657ac5b..f7dbf3fb7 100644 --- a/Subsurface/Content/Characters/Mantis/mantis.xml +++ b/Subsurface/Content/Characters/Mantis/mantis.xml @@ -1,5 +1,5 @@  - + diff --git a/Subsurface/Content/Orders.xml b/Subsurface/Content/Orders.xml index 6f7450632..225e02a97 100644 --- a/Subsurface/Content/Orders.xml +++ b/Subsurface/Content/Orders.xml @@ -1,27 +1,27 @@  - + - + - + - + - + - + \ No newline at end of file diff --git a/Subsurface/Content/UI/orderSymbols.png b/Subsurface/Content/UI/orderSymbols.png deleted file mode 100644 index 60b8a7267778d1da87c9424f98301ab3af9ee4e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9077 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 I-|gvt0gc7Dj{pDw diff --git a/Subsurface/Content/UI/uiIcons.png b/Subsurface/Content/UI/uiIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e87c5c7a4ea47bfb83b52d409749c84bff69c7 GIT binary patch literal 14222 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 0.01f) { correctionMovement = - Vector2.Lerp(targetMovement, Vector2.Normalize(diff) * MathHelper.Clamp(dist * 8.0f, 0.1f, 8.0f), 0.5f); + Vector2.Lerp(targetMovement, Vector2.Normalize(diff) * MathHelper.Clamp(dist * 5.0f, 0.1f, 5.0f), 0.2f); } else { - foreach (Limb limb in Limbs) - { - //if (limb.body.TargetPosition == Vector2.Zero) continue; + refLimb.body.LinearVelocity = Vector2.Lerp( + refLimb.LinearVelocity, + Vector2.Normalize(diff) * MathHelper.Clamp(dist, 0.0f, 5.0f), + 0.2f); - limb.body.SetTransform(limb.SimPosition + Vector2.Normalize(diff) * 0.1f, limb.Rotation); - } + //foreach (Limb limb in Limbs) + //{ + // //if (limb.body.TargetPosition == Vector2.Zero) continue; + // // Vector2.Lerp(limb.LinearVelocity, Vector2.Normalize(diff) * MathHelper.Clamp(dist, 0.0f, 1.0f)) + // limb.body.LinearVelocity = Vector2.Lerp( + // limb.LinearVelocity, + // Vector2.Normalize(diff) * MathHelper.Clamp(dist, 0.0f, 5.0f), + // 0.2f); + + // //limb.body.TargetVelocity .SetTransform(limb.SimPosition + Vector2.Normalize(diff) * 0.1f, limb.Rotation); + //} } } else { //clamp the magnitude of the correction movement between 0.5f - 5.0f - Vector2 newCorrectionMovement = Vector2.Normalize(diff) * MathHelper.Clamp(dist * 5.0f, 0.5f, 5.0f); + Vector2 newCorrectionMovement = Vector2.Normalize(diff) * MathHelper.Clamp(dist*2.0f, 0.5f, 5.0f); //heading in the right direction -> use the ''normal'' movement if it's faster than correctionMovement //i.e. the character is close to the targetposition but the character is still running diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 9db3d668a..d43e7c342 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -965,7 +965,7 @@ namespace Barotrauma key.DequeueHeld(); } - networkUpdateSent = true; + networkUpdateSent = false; } if (needsAir) diff --git a/Subsurface/Source/GUI/GUI.cs b/Subsurface/Source/GUI/GUI.cs index b5e750d23..63570b380 100644 --- a/Subsurface/Source/GUI/GUI.cs +++ b/Subsurface/Source/GUI/GUI.cs @@ -43,6 +43,18 @@ namespace Barotrauma public static Color ScreenOverlayColor; + private static Sprite submarineIcon, arrow; + + public static Sprite SubmarineIcon + { + get { return submarineIcon; } + } + + public static Sprite Arrow + { + get { return arrow; } + } + public static void Init(ContentManager content) { GUI.Font = ToolBox.TryLoadFont("SpriteFont1", content); @@ -72,6 +84,12 @@ namespace Barotrauma t = new Texture2D(graphicsDevice, 1, 1); t.SetData(new Color[] { Color.White });// fill the texture with white + submarineIcon = new Sprite("Content/UI/uiIcons.png", new Rectangle(0, 192, 64, 64), null); + submarineIcon.Origin = submarineIcon.size / 2; + + arrow = new Sprite("Content/UI/uiIcons.png", new Rectangle(80, 240, 16, 16), null); + arrow.Origin = arrow.size / 2; + Style = new GUIStyle("Content/UI/style.xml"); } diff --git a/Subsurface/Source/Items/Components/Holdable/Holdable.cs b/Subsurface/Source/Items/Components/Holdable/Holdable.cs index c640e3f69..cef636e57 100644 --- a/Subsurface/Source/Items/Components/Holdable/Holdable.cs +++ b/Subsurface/Source/Items/Components/Holdable/Holdable.cs @@ -252,7 +252,7 @@ namespace Barotrauma.Items.Components item.Submarine = picker.Submarine; - if (picker.SelectedConstruction != null && picker.SelectedConstruction.GetComponent() != null) return; + //if (picker.SelectedConstruction != null && picker.SelectedConstruction.GetComponent() != null) return; //item.sprite.Depth = picker.AnimController.GetLimb(LimbType.RightHand).sprite.Depth + 0.01f; diff --git a/Subsurface/Source/Items/Components/Machines/Controller.cs b/Subsurface/Source/Items/Components/Machines/Controller.cs index c9d9a6442..dc8f4afb9 100644 --- a/Subsurface/Source/Items/Components/Machines/Controller.cs +++ b/Subsurface/Source/Items/Components/Machines/Controller.cs @@ -210,6 +210,8 @@ namespace Barotrauma.Items.Components limb.pullJoint.Enabled = false; } + if (character.SelectedConstruction == this.item) character.SelectedConstruction = null; + character.AnimController.Anim = AnimController.Animation.None; } @@ -225,9 +227,6 @@ namespace Barotrauma.Items.Components IsActive = false; CancelUsing(character); character = null; - } - else - { return false; } } diff --git a/Subsurface/Source/Networking/FileStreamReceiver.cs b/Subsurface/Source/Networking/FileStreamReceiver.cs index 2fc14244b..52dedefc2 100644 --- a/Subsurface/Source/Networking/FileStreamReceiver.cs +++ b/Subsurface/Source/Networking/FileStreamReceiver.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Text.RegularExpressions; +using System.Xml; using System.Xml.Linq; namespace Barotrauma.Networking @@ -259,15 +260,26 @@ namespace Barotrauma.Networking try { - stream.Position = 0; - var doc = XDocument.Load(stream); + stream.Position = 0; + + XmlReaderSettings settings = new XmlReaderSettings(); + settings.DtdProcessing = DtdProcessing.Prohibit; + settings.IgnoreProcessingInstructions = true; + + using (var reader = XmlReader.Create(stream, settings)) + { + while (reader.Read()) + { + + } + } } catch { stream.Close(); stream.Dispose(); - ErrorMessage = "Failed to parse submarine file ''"+file+"''!"; + ErrorMessage = "Parsing file ''"+file+"'' failed! The file may not be a valid submarine file."; return false; } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index f6e6b2826..3b34a030f 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -846,6 +846,14 @@ namespace Barotrauma.Networking return false; } + + if (ConnectedClients.Any(c => c.FileStreamSender != null && c.FileStreamSender.FilePath == selectedSub.FilePath)) + { + new GUIMessageBox("Couldn't start a round", + "Can't start a round while sending the selected submarine to clients. Cancel the transfers or wait for them to finish before starting.", 400, 400); + return false; + } + GameMain.ShowLoading(StartGame(selectedSub, selectedMode), false); return true; @@ -855,13 +863,6 @@ namespace Barotrauma.Networking { GUIMessageBox.CloseAll(); - if (ConnectedClients.Any(c => c.FileStreamSender != null && c.FileStreamSender.FilePath == selectedSub.FilePath)) - { - new GUIMessageBox("Couldn't start a round", - "Can't start a round while sending the selected submarine to clients. Cancel the transfers or wait for them to finish before starting.", 400, 400); - yield return CoroutineStatus.Success; - } - AssignJobs(); roundStartSeed = DateTime.Now.Millisecond; diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index 778717b80..efa8d83c8 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Xml; using System.Xml.Linq; namespace Barotrauma.Networking @@ -96,29 +97,25 @@ namespace Barotrauma.Networking private void SaveSettings() { - XDocument doc = new XDocument(new XElement("serversettings")); - - doc.Root.Add - ( - new XAttribute("AllowSpectating", allowSpectating), - new XAttribute("RandomizeSeed", randomizeSeed), - new XAttribute("EndRoundAtLevelEnd", endRoundAtLevelEnd), - new XAttribute("AllowFileTransfers", allowFileTransfers), + XmlWriterSettings settings = new XmlWriterSettings(); + settings.Indent = true; + settings.NewLineOnAttributes = true; - new XAttribute("SaveServerLogs", saveServerLogs), - new XAttribute("LinesPerLogFile", log.LinesPerFile), - - new XAttribute("SubSelection", subSelectionMode), - new XAttribute("ModeSelection", modeSelectionMode) - ); - - try + using (var writer = XmlWriter.Create(SettingsFile, settings)) { - doc.Save(SettingsFile); - } - catch (Exception e) - { - DebugConsole.ThrowError("Saving server settings failed", e); + writer.WriteStartElement("serversettings"); + writer.WriteAttributeString("AllowSpectating", allowSpectating.ToString()); + writer.WriteAttributeString("RandomizeSeed", randomizeSeed.ToString()); + + writer.WriteAttributeString("EndRoundAtLevelEnd", endRoundAtLevelEnd.ToString()); + writer.WriteAttributeString("AllowFileTransfers", allowFileTransfers.ToString()); + writer.WriteAttributeString("MaxFileTransferDuration", ((int)FileStreamSender.MaxTransferDuration.TotalSeconds).ToString()); + writer.WriteAttributeString("SaveServerLogs", saveServerLogs.ToString()); + writer.WriteAttributeString("LinesPerLogFile", log.LinesPerFile.ToString()); + writer.WriteAttributeString("SubSelection", subSelectionMode.ToString()); + writer.WriteAttributeString("ModeSelection", modeSelectionMode.ToString()); + + writer.Flush(); } } @@ -152,17 +149,58 @@ namespace Barotrauma.Networking modeSelectionMode = SelectionMode.Manual; Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "ModeSelection", "Manual"), out modeSelectionMode); + + FileStreamSender.MaxTransferDuration = new TimeSpan(0,0,ToolBox.GetAttributeInt(doc.Root, "MaxFileTransferDuration", 150)); } private void CreateSettingsFrame() { settingsFrame = new GUIFrame(new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Black * 0.5f); + GUIFrame innerFrame = new GUIFrame(new Rectangle(0, 0, 400, 400), null, Alignment.Center, GUI.Style, settingsFrame); + innerFrame.Padding = new Vector4(20.0f, 20.0f, 20.0f, 20.0f); - new GUITextBlock(new Rectangle(0, -15, 0, 20), "Server settings", GUI.Style, innerFrame, GUI.LargeFont); + new GUITextBlock(new Rectangle(0, -5, 0, 20), "Server settings", GUI.Style, innerFrame, GUI.LargeFont); - var randomizeLevelBox = new GUITickBox(new Rectangle(0, 30, 20, 20), "Randomize level seed between rounds", Alignment.Left, innerFrame); + int y = 40; + + var endBox = new GUITickBox(new Rectangle(0, y, 20, 20), "End round when destination reached", Alignment.Left, innerFrame); + endBox.Selected = endRoundAtLevelEnd; + endBox.OnSelected = (GUITickBox) => { endRoundAtLevelEnd = GUITickBox.Selected; return true; }; + + + y += 30; + var endVoteBox = new GUITickBox(new Rectangle(0, y, 20, 20), "End round by voting", Alignment.Left, innerFrame); + endVoteBox.Selected = Voting.AllowEndVoting; + endVoteBox.OnSelected = (GUITickBox) => + { + Voting.AllowEndVoting = !Voting.AllowEndVoting; + GameMain.Server.UpdateVoteStatus(); + return true; + }; + + var votesRequiredText = new GUITextBlock(new Rectangle(20, y+20, 20, 20), "Votes required: 50 %", GUI.Style, innerFrame, GUI.SmallFont); + + var votesRequiredSlider = new GUIScrollBar(new Rectangle(150, y+22, 100, 10), GUI.Style, 0.1f, innerFrame); + votesRequiredSlider.UserData = votesRequiredText; + votesRequiredSlider.BarScroll = (EndVoteRequiredRatio - 0.5f) * 2.0f; + votesRequiredSlider.OnMoved = (GUIScrollBar scrollBar, float barScroll) => + { + GUITextBlock voteText = scrollBar.UserData as GUITextBlock; + + scrollBar.BarScroll = MathUtils.Round(barScroll, 0.2f); + EndVoteRequiredRatio = barScroll / 2.0f + 0.5f; + voteText.Text = "Votes required: " + (int)MathUtils.Round(EndVoteRequiredRatio * 100.0f, 10.0f) + " %"; + return true; + }; + votesRequiredSlider.OnMoved(votesRequiredSlider, votesRequiredSlider.BarScroll); + + y += 40; + + + + var randomizeLevelBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Randomize level seed between rounds", Alignment.Left, innerFrame); randomizeLevelBox.Selected = randomizeSeed; randomizeLevelBox.OnSelected = (GUITickBox) => { @@ -170,37 +208,23 @@ namespace Barotrauma.Networking return true; }; - var endBox = new GUITickBox(new Rectangle(0, 60, 20, 20), "End round when destination reached", Alignment.Left, innerFrame); - endBox.Selected = endRoundAtLevelEnd; - endBox.OnSelected = (GUITickBox) => { endRoundAtLevelEnd = GUITickBox.Selected; return true; }; - var endVoteBox = new GUITickBox(new Rectangle(0, 90, 20, 20), "End round by voting", Alignment.Left, innerFrame); - endVoteBox.Selected = Voting.AllowEndVoting; - endVoteBox.OnSelected = (GUITickBox) => + y += 40; + + var shareSubsBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Share submarine files with players", Alignment.Left, innerFrame); + shareSubsBox.Selected = allowFileTransfers; + shareSubsBox.OnSelected = (GUITickBox) => { - Voting.AllowEndVoting = !Voting.AllowEndVoting; - GameMain.Server.UpdateVoteStatus(); - return true; - }; - - var votesRequiredText = new GUITextBlock(new Rectangle(20, 110, 20, 20), "Votes required: 50 %", GUI.Style, innerFrame, GUI.SmallFont); - - var votesRequiredSlider = new GUIScrollBar(new Rectangle(150,115, 100, 10), GUI.Style, 0.1f, innerFrame); - votesRequiredSlider.UserData = votesRequiredText; - votesRequiredSlider.BarScroll = (EndVoteRequiredRatio - 0.5f) * 2.0f; - votesRequiredSlider.OnMoved = (GUIScrollBar scrollBar, float barScroll) => - { - GUITextBlock voteText = scrollBar.UserData as GUITextBlock; - - scrollBar.BarScroll = MathUtils.Round(barScroll, 0.2f); - EndVoteRequiredRatio = barScroll/2.0f + 0.5f; - voteText.Text = "Votes required: " + (int)MathUtils.Round(EndVoteRequiredRatio * 100.0f, 10.0f) + " %"; + allowFileTransfers = GUITickBox.Selected; return true; }; - votesRequiredSlider.OnMoved(votesRequiredSlider, votesRequiredSlider.BarScroll); - new GUITextBlock(new Rectangle(0, 95+50, 100, 20), "Submarine selection:", GUI.Style, innerFrame); - var selectionFrame = new GUIFrame(new Rectangle(0, 120 + 50, 300, 20), null, innerFrame); + + y += 40; + + + new GUITextBlock(new Rectangle(0, y, 100, 20), "Submarine selection:", GUI.Style, innerFrame); + var selectionFrame = new GUIFrame(new Rectangle(0, y+20, 300, 20), null, innerFrame); for (int i = 0; i<3; i++) { var selectionTick = new GUITickBox(new Rectangle(i * 100, 0, 20, 20), ((SelectionMode)i).ToString(), Alignment.Left, selectionFrame); @@ -209,8 +233,10 @@ namespace Barotrauma.Networking selectionTick.UserData = (SelectionMode)i; } - new GUITextBlock(new Rectangle(0, 145 + 50, 100, 20), "Mode selection:", GUI.Style, innerFrame); - selectionFrame = new GUIFrame(new Rectangle(0, 170 + 50, 300, 20), null, innerFrame); + y += 45; + + new GUITextBlock(new Rectangle(0, y, 100, 20), "Mode selection:", GUI.Style, innerFrame); + selectionFrame = new GUIFrame(new Rectangle(0, y+20, 300, 20), null, innerFrame); for (int i = 0; i<3; i++) { var selectionTick = new GUITickBox(new Rectangle(i*100, 0, 20, 20), ((SelectionMode)i).ToString(), Alignment.Left, selectionFrame); @@ -219,7 +245,9 @@ namespace Barotrauma.Networking selectionTick.UserData = (SelectionMode)i; } - var allowSpecBox = new GUITickBox(new Rectangle(0, 210 + 50, 20, 20), "Allow spectating", Alignment.Left, innerFrame); + y += 60; + + var allowSpecBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Allow spectating", Alignment.Left, innerFrame); allowSpecBox.Selected = allowSpectating; allowSpecBox.OnSelected = (GUITickBox) => { @@ -227,7 +255,9 @@ namespace Barotrauma.Networking return true; }; - var saveLogsBox = new GUITickBox(new Rectangle(0, 240 + 50, 20, 20), "Save server logs", Alignment.Left, innerFrame); + y += 30; + + var saveLogsBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Save server logs", Alignment.Left, innerFrame); saveLogsBox.Selected = saveServerLogs; saveLogsBox.OnSelected = (GUITickBox) => { diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 1f3b4da72..478f2971f 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -177,7 +177,7 @@ namespace Barotrauma //{ // cam.TargetPos = Character.Controlled.WorldPosition; //} - + cam.UpdateTransform(); DrawMap(graphics, spriteBatch); @@ -200,6 +200,8 @@ namespace Barotrauma if (GameMain.GameSession != null) GameMain.GameSession.Draw(spriteBatch); + if (Character.Controlled == null && Submarine.Loaded != null) DrawSubmarineIndicator(spriteBatch, Submarine.Loaded); + GUI.Draw((float)deltaTime, spriteBatch, cam); if (!PlayerInput.LeftButtonHeld()) Inventory.draggingItem = null; @@ -348,5 +350,25 @@ namespace Barotrauma GameMain.LightManager.DrawLOS(graphics, spriteBatch, cam); } + + private void DrawSubmarineIndicator(SpriteBatch spriteBatch, Submarine submarine) + { + Vector2 subDiff = submarine.WorldPosition - cam.Position; + + if (Math.Abs(subDiff.X) > cam.WorldView.Width || Math.Abs(subDiff.Y) > cam.WorldView.Height) + { + Vector2 normalizedSubDiff = Vector2.Normalize(subDiff); + + Vector2 iconPos = + cam.WorldToScreen(cam.Position) + + new Vector2(normalizedSubDiff.X * GameMain.GraphicsWidth * 0.4f, -normalizedSubDiff.Y * GameMain.GraphicsHeight * 0.4f); + + GUI.SubmarineIcon.Draw(spriteBatch, iconPos, Color.LightBlue * 0.5f); + + Vector2 arrowOffset = normalizedSubDiff * GUI.SubmarineIcon.size.X * 0.7f; + arrowOffset.Y = -arrowOffset.Y; + GUI.Arrow.Draw(spriteBatch, iconPos + arrowOffset, Color.LightBlue * 0.5f, MathUtils.VectorToAngle(arrowOffset) + MathHelper.PiOver2); + } + } } } diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index bf26560a3..e5ba845ef 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -440,8 +440,6 @@ namespace Barotrauma UpdateJobPreferences(jobList); - //UpdatePreviewPlayer(Game1.Client.CharacterInfo); - UpdatePreviewPlayer(characterInfo); } } @@ -510,7 +508,6 @@ namespace Barotrauma { valueChanged = true; - var hash = (obj as Submarine).MD5Hash; //hash will be null if opening the sub file failed -> don't select the sub diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index a1f5ff7d2574466c7873de09de20fec9b4beca0e..9461ffab388f6ac3c0c30809b8a7ad858e0cbc2c 100644 GIT binary patch delta 8786 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 B0ssI2 delta 11064 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 X%`x Date: Sun, 28 Feb 2016 21:08:52 +0200 Subject: [PATCH 6/8] Resizing structures/items in editor --- Subsurface/Source/Items/Item.cs | 4 +- Subsurface/Source/Map/Gap.cs | 72 ++++++++--------- Subsurface/Source/Map/Hull.cs | 23 +++++- Subsurface/Source/Map/MapEntity.cs | 124 ++++++++++++++++++++++++++--- Subsurface/Source/Map/Structure.cs | 2 +- Subsurface/Source/Map/WayPoint.cs | 2 +- Subsurface/changelog.txt | 22 +++++ Subsurface_Solution.v12.suo | Bin 875008 -> 850432 bytes 8 files changed, 193 insertions(+), 56 deletions(-) diff --git a/Subsurface/Source/Items/Item.cs b/Subsurface/Source/Items/Item.cs index fe5e3c6cf..8d38540e3 100644 --- a/Subsurface/Source/Items/Item.cs +++ b/Subsurface/Source/Items/Item.cs @@ -286,7 +286,7 @@ namespace Barotrauma } public Item(Rectangle newRect, ItemPrefab itemPrefab, Submarine submarine) - : base(submarine) + : base(itemPrefab, submarine) { prefab = itemPrefab; @@ -1219,7 +1219,7 @@ namespace Barotrauma element.Add(new XAttribute("name", prefab.Name), new XAttribute("ID", ID)); - if (prefab.ResizeHorizontal || prefab.ResizeVertical) + if (ResizeHorizontal || ResizeVertical) { element.Add(new XAttribute("rect", (int)(rect.X - Submarine.HiddenSubPosition.X) + "," + diff --git a/Subsurface/Source/Map/Gap.cs b/Subsurface/Source/Map/Gap.cs index b89793040..5b24d7b07 100644 --- a/Subsurface/Source/Map/Gap.cs +++ b/Subsurface/Source/Map/Gap.cs @@ -20,15 +20,15 @@ namespace Barotrauma //private Sound waterSound; //a value between 0.0f-1.0f (0.0 = closed, 1.0f = open) - float open; + private float open; //the force of the water flow which is exerted on physics bodies - Vector2 flowForce; + private Vector2 flowForce; - Hull flowTargetHull; + private Hull flowTargetHull; - float higherSurface; - float lowerSurface; + private float higherSurface; + private float lowerSurface; public float Open @@ -39,11 +39,6 @@ namespace Barotrauma public Door ConnectedDoor; - //public Vector2 FlowForce - //{ - // get { return flowForce*soundVolume; } - //} - public Vector2 LerpedFlowForce { get { return lerpedFlowForce; } @@ -64,6 +59,20 @@ namespace Barotrauma } } + public override Rectangle Rect + { + get + { + return base.Rect; + } + set + { + base.Rect = value; + + FindHulls(); + } + } + public Gap(MapEntityPrefab prefab, Rectangle rectangle) : this (rectangle, Submarine.Loaded) { } @@ -73,7 +82,7 @@ namespace Barotrauma { } public Gap(Rectangle newRect, bool isHorizontal, Submarine submarine) - : base (submarine) + : base (MapEntityPrefab.list.Find(m=> m.Name == "Gap"), submarine) { rect = newRect; linkedTo = new ObservableCollection(); @@ -169,34 +178,21 @@ namespace Barotrauma GUI.DrawRectangle(sb, new Rectangle(WorldRect.X, -WorldRect.Y, rect.Width, rect.Height), clr * 0.5f, true); - if (isHorizontal) + for (int i = 0; i < linkedTo.Count; i++) { - for (int i = 0; i < linkedTo.Count; i++ ) - { - if (linkedTo[i].Rect.Center.X > rect.Center.X) - { - GUI.DrawRectangle(sb, new Rectangle(WorldRect.Right, -WorldRect.Y, 10, rect.Height), Color.Green * 0.3f, true); - } - else - { - GUI.DrawRectangle(sb, new Rectangle(WorldRect.X - 10, -WorldRect.Y, 10, rect.Height), Color.Green * 0.3f, true); - } - } - } - else - { - for (int i = 0; i < linkedTo.Count; i++) - { - if (linkedTo[i].Rect.Y - linkedTo[i].Rect.Height / 2.0f > rect.Y-rect.Height/2.0f) - { - GUI.DrawRectangle(sb, new Rectangle(WorldRect.X, -WorldRect.Y - 10, rect.Width, 10), Color.Green * 0.3f, true); - } - else - { - GUI.DrawRectangle(sb, new Rectangle(WorldRect.X, -WorldRect.Y + rect.Height, rect.Width, 10), Color.Green * 0.3f, true); - } - } - } + Vector2 dir = isHorizontal ? + new Vector2(Math.Sign(linkedTo[i].Rect.Center.X - rect.Center.X), 0.0f) + : new Vector2(0.0f, Math.Sign((linkedTo[i].Rect.Y - linkedTo[i].Rect.Height / 2.0f) - (rect.Y - rect.Height / 2.0f))); + + Vector2 arrowPos = new Vector2(WorldRect.Center.X, -(WorldRect.Y - WorldRect.Height / 2)); + arrowPos += new Vector2(dir.X * (WorldRect.Width / 2 + 10), dir.Y * (WorldRect.Height / 2 + 10)); + + GUI.Arrow.Draw(sb, + arrowPos, + clr * 0.8f, + GUI.Arrow.Origin, MathUtils.VectorToAngle(dir) + MathHelper.PiOver2, + isHorizontal ? new Vector2(rect.Height / 16.0f, 1.0f) : new Vector2(rect.Width / 16.0f, 1.0f)); + } if (isSelected) { diff --git a/Subsurface/Source/Map/Hull.cs b/Subsurface/Source/Map/Hull.cs index de63e87d8..c65d22791 100644 --- a/Subsurface/Source/Map/Hull.cs +++ b/Subsurface/Source/Map/Hull.cs @@ -74,6 +74,21 @@ namespace Barotrauma } } + public override Rectangle Rect + { + get + { + return base.Rect; + } + set + { + base.Rect = value; + + Item.UpdateHulls(); + Gap.UpdateHulls(); + } + } + public override bool IsLinkable { get { return true; } @@ -151,13 +166,13 @@ namespace Barotrauma } public Hull(MapEntityPrefab prefab, Rectangle rectangle) - : this (rectangle, Submarine.Loaded) + : this (prefab, rectangle, Submarine.Loaded) { } - public Hull(Rectangle rectangle, Submarine submarine) - : base (submarine) + public Hull(MapEntityPrefab prefab, Rectangle rectangle, Submarine submarine) + : base (prefab, submarine) { rect = rectangle; @@ -691,7 +706,7 @@ namespace Barotrauma int.Parse(element.Attribute("height").Value)); } - Hull h = new Hull(rect, submarine); + Hull h = new Hull(MapEntityPrefab.list.Find(m => m.Name == "Hull"), rect, submarine); h.volume = ToolBox.GetAttributeFloat(element, "pressure", 0.0f); diff --git a/Subsurface/Source/Map/MapEntity.cs b/Subsurface/Source/Map/MapEntity.cs index ac310e5bb..12713e97f 100644 --- a/Subsurface/Source/Map/MapEntity.cs +++ b/Subsurface/Source/Map/MapEntity.cs @@ -23,7 +23,9 @@ namespace Barotrauma protected static Vector2 selectionSize = Vector2.Zero; protected static Vector2 startMovingPos = Vector2.Zero; - + + private MapEntityPrefab prefab; + protected List linkedToID; //observable collection because some entities may need to be notified when the collection is modified @@ -66,6 +68,9 @@ namespace Barotrauma //the position and dimensions of the entity protected Rectangle rect; + + private static bool resizing; + private int resizeDirX, resizeDirY; public virtual Rectangle Rect { get { return rect; } @@ -139,12 +144,24 @@ namespace Barotrauma set { isSelected = value; } } + protected bool ResizeHorizontal + { + get { return prefab == null ? false : prefab.ResizeHorizontal; } + } + protected bool ResizeVertical + { + get { return prefab == null ? false : prefab.ResizeVertical; } + } + public virtual string Name { get { return ""; } } - public MapEntity(Submarine submarine) : base(submarine) { } + public MapEntity(MapEntityPrefab prefab, Submarine submarine) : base(submarine) + { + this.prefab = prefab; + } public virtual void Move(Vector2 amount) { @@ -232,6 +249,12 @@ namespace Barotrauma /// public static void UpdateSelecting(Camera cam) { + if (resizing) + { + if (selectedList.Count == 0) resizing = false; + return; + } + foreach (MapEntity e in mapEntityList) { e.isHighlighted = false; @@ -245,7 +268,7 @@ namespace Barotrauma } if (GUIComponent.MouseOn != null || !PlayerInput.MouseInsideWindow) return; - + if (MapEntityPrefab.Selected != null) { selectionPos = Vector2.Zero; @@ -412,6 +435,11 @@ namespace Barotrauma if (selectedList.Count == 1) { selectedList[0].DrawEditing(spriteBatch, cam); + + if (selectedList[0].ResizeHorizontal || selectedList[0].ResizeVertical) + { + selectedList[0].DrawResizing(spriteBatch, cam); + } } else { @@ -443,6 +471,89 @@ namespace Barotrauma public virtual void DrawEditing(SpriteBatch spriteBatch, Camera cam) {} + private void DrawResizing(SpriteBatch spriteBatch, Camera cam) + { + isHighlighted = true; + + int startX = ResizeHorizontal ? -1 : 0; + int StartY = ResizeVertical ? -1 : 0; + + for (int x = startX; x < 2; x += 2) + { + for (int y = StartY; y < 2; y += 2) + { + + Vector2 handlePos = cam.WorldToScreen(Position + new Vector2(x * (rect.Width * 0.5f + 5), y * (rect.Height * 0.5f + 5))); + + bool highlighted = Vector2.Distance(PlayerInput.MousePosition, handlePos)<5.0f; + + GUI.DrawRectangle(spriteBatch, handlePos - new Vector2(3.0f, 3.0f), new Vector2(6.0f, 6.0f), Color.White * (highlighted ? 1.0f : 0.6f), true); + + if (highlighted) + { + if (PlayerInput.LeftButtonDown()) + { + selectionPos = Vector2.Zero; + resizeDirX = x; + resizeDirY = y; + resizing = true; + } + } + } + } + + if (resizing) + { + + Vector2 placePosition = new Vector2(rect.X, rect.Y); + Vector2 placeSize = new Vector2(rect.Width, rect.Height); + + Vector2 mousePos = Submarine.MouseToWorldGrid(cam); + + if (resizeDirX >0) + { + mousePos.X = Math.Max(mousePos.X, rect.X + Submarine.GridSize.X); + placeSize.X = mousePos.X - placePosition.X; + } + else if (resizeDirX <0) + { + mousePos.X = Math.Min(mousePos.X, rect.Right - Submarine.GridSize.X); + + placeSize.X = (placePosition.X + placeSize.X)-mousePos.X; + placePosition.X = mousePos.X; + } + if (resizeDirY < 0) + { + mousePos.Y = Math.Min(mousePos.Y, rect.Y - Submarine.GridSize.Y); + placeSize.Y = placePosition.Y-mousePos.Y; + } + else if (resizeDirY > 0) + { + mousePos.Y = Math.Max(mousePos.Y, rect.Y - rect.Height + Submarine.GridSize.X); + + placeSize.Y = mousePos.Y - (rect.Y - rect.Height); + placePosition.Y = mousePos.Y; + } + + if ((int)placePosition.X != rect.X || (int)placePosition.Y != rect.Y || (int)placeSize.X != rect.Width || (int)placeSize.Y != rect.Height) + { + Rect = new Rectangle((int)placePosition.X, (int)placePosition.Y, (int)placeSize.X, (int)placeSize.Y); + } + + if (!PlayerInput.LeftButtonHeld()) + { + resizing = false; + } + + //if (resizeHorizontal) placeSize.X = position.X - placePosition.X; + //if (resizeVertical) placeSize.Y = placePosition.Y - position.Y; + + //Rectangle newRect = Submarine.AbsRect(placePosition, placeSize); + //newRect.Width = (int)Math.Max(newRect.Width, Submarine.GridSize.X); + //newRect.Height = (int)Math.Max(newRect.Height, Submarine.GridSize.Y); + } + } + public static List FindMapEntities(Vector2 pos) { List foundEntities = new List(); @@ -518,13 +629,6 @@ namespace Barotrauma { mapEntityList[i].OnMapLoaded(); } - - - - //mapEntityList.Sort((x, y) => - //{ - // return x.Name.CompareTo(y.Name); - //}); } diff --git a/Subsurface/Source/Map/Structure.cs b/Subsurface/Source/Map/Structure.cs index 4811dc103..541cea00c 100644 --- a/Subsurface/Source/Map/Structure.cs +++ b/Subsurface/Source/Map/Structure.cs @@ -141,7 +141,7 @@ namespace Barotrauma } public Structure(Rectangle rectangle, StructurePrefab sp, Submarine submarine) - : base(submarine) + : base(sp, submarine) { if (rectangle.Width == 0 || rectangle.Height == 0) return; diff --git a/Subsurface/Source/Map/WayPoint.cs b/Subsurface/Source/Map/WayPoint.cs index e84e0548f..13d850e65 100644 --- a/Subsurface/Source/Map/WayPoint.cs +++ b/Subsurface/Source/Map/WayPoint.cs @@ -96,7 +96,7 @@ namespace Barotrauma } public WayPoint(Rectangle newRect, Submarine submarine) - : base (submarine) + : base (null, submarine) { rect = newRect; linkedTo = new ObservableCollection(); diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index d98901abe..d85390608 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,3 +1,25 @@ +--------------------------------------------------------------------------------------------------------- +v0.3.4.0 +--------------------------------------------------------------------------------------------------------- + +Multiplayer: +- missing submarine files can be downloaded from the server host +- player syncing bugfixes (aiming is visible to other players, smoother movement in water) +- creature syncing bugfixes (less teleporting around) +- fixed the server lobby displaying wrong numbers of votes at the client's side +- fixed the server list displaying 16/16 players as 0/16 +- saving server settings + +Other: +- skyholder artifacts consume oxygen +- thermal artifacts catch fire even if they're not being held +- placed items/structures can be resized in the editor +- items in the inventory can be swapped between slots by dragging them on top of each other +- slower underwater scooters +- fixed pressure building up in enclosed rooms full of water, even if there were no hull breaches +- an indicator which shows the direction of the sub when spectating +- fixed crashing when loading a submarine with no hulls + --------------------------------------------------------------------------------------------------------- v0.3.3.1 --------------------------------------------------------------------------------------------------------- diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 9461ffab388f6ac3c0c30809b8a7ad858e0cbc2c..96beba821636648f5f41c4cb7c05d1e6c016d91f 100644 GIT binary patch delta 13266 zcmds-3tUxIzQ_qcP}JUo^O9v*(UzjgceZ6lh2hrvJudV`e+E1&@RoPfY; zum%hOPlJVf7JbX){2i@A;~g`Er&*hlYl6nuL>U80!D3l7_MkB@No{Dlr@Jh7!khb%JBR#n*8h!6ERDkmKR;E&_+ad*BH8Jva*f0FHt8!Ex{b zI060$D!@r_3j7J21|Nctz{lVd@G1BVd=4tX7oZB90oC9vsL8>p zB-mETa*Q!Brc_Piz}{;RQlkMFdH$CSBIk}p{7MD^LvUNfuVfI0Av9P7d25t3<=;ei1-7 zf>}q$*7E@+QNBvhf3*-6U2-i#OY$Ft(ifp8X2H{hfUe*w;;NX#zdkU?a4B%l(JJ;HUEsl4E?rZCW(^7Zz@m+oLD45`K$K2TaOM-9JHzWIXCh_1AtdhBG z%+q<1d5`@K@{hon1VR=W6@Z+9%AH1>1I)(#N01LfJ_6<<%RbyoAOZXc3@sB8-xlfD za32l%3SM_D1j@R|ItO1z+!vrL;txZf0H=}P3vwBx(IHfh+C(nEow1Z@iJV64bI5T6 z_wRu;#Jz}8ze3z7a1nGsoE;eUPquHFcSqx?Vx+tSjBo+uIOKpk^B9488ga%&3E#4S zmPV*AQVnTbQ7GR_aeF#?iFO64kk6GNeEX!!F1ejLLMXkw~dN> zK+Z+F6&SwkNwDaiGL0%5OcorsgkT*d zZ7A2mf*m1W`tvAHR?6f6Om(wkZqH6UD3RS_WDjIpRMruSx`4Y@!0Q587sl;Lth!lg zD3)qGXcDWEon_)t3CqW(jLeU&m5DjZyJ*VR{xt7xah~RD=s+eTU-Mm-Cn(=!3E}w} zEYsv{&rq?Btcp?E7;`_eC99r%;FIh?Pp3t&TU((HYtacSfIoG$2;FkNM{qw%8i}NE z5C^(LSsTdRNSg|-f(qoB2e}PA3-*Bb5qAJwK=?0^k3)V5R)H3{e-JVQdk!r` z=3%kLW1WyR5Htf@@#qW4ZbR4;490yMP=@SJ;C>7^fcvSCy+Ap_)u0|2Hq!<281n9b zoPl(i_Gm)u-Yan%j_9`_ZvYWV{vZ(H2&nrCX%FMxFrz7uFCcy&#Z-w7iYifpcYb>u+7wo#j9uKGVz0kI?T0aPRboN8F4R7NweCZeZBkD04grjjw zA(uifMun$9`haNA7Q}+(j6xHHK0Zc=+(zC+kb%7KK$glhFG28+GNuPw=_BWx_W{42Mw$pEh2<>tr zF)(K24@I7ikltVrI0^Qkj7yN?K_bw=L&*0s>G_?jY2|Orc(K3nAtzZU^;v-ct=TgzW&E8Lt9QJI<5gdSlnIa~d7ovdYz}->j zbyGy0xuOJ5M{ZA;$_>owf}scu6{=*{21#%w3zE}Yu9fD(8}K@BS!WIIhzF+#l~&hK zCj1|r^ppM@lOCQMy_yG}L2nmAehtPN9f$j~2+s!p3r=AeRQz?P(EXov3Wi-YI0b%l znjqT$%kyZe5bpIi=1|Np=g@rg!aqBQjC$Rq4-&sM4QTzq~Z6@Ey|w8 z@){=7C-9h@rHQv0m5-5nQtm2K0NGcXx;Sd9+VjFnVX>(sXzzVYWkDz)%&<=L0TJm&HiC1;WlToQbu5_5L7 zh}QUvmG`?}-{*uPX6^}1#^U|1JJ3JGQpwmv7?;aS6kLNvfo2>R60DuF#;+|bNPSBd z_FNm{h>2{)GslYg%r#ULj1o(N@=?3%f?aUfH^8qaiIpN7L5p4#`t#@oQaNL@jhkp% zd_ec5>Sru=KKD`aInfo$1Xrq|)#7ZZKc7fZoq-w^dx}PjQXX(PH zrHc+m-QO^`q?YrfsT8wUN+g@A`L}=fV9v*Wh0TM;IF5dIReRBxsdpE0u^ruO$^B%T zFRiwvH(&n9vbU>0_w1W>X7i_i&Y(T>rD1r5!S78KZ{eM{67M|M0x^Uo6KgBRQ}lBd zPg`GyuW&^^5dC$}NS~jC7L)1ho2(^Y5FkCnD0YqLO9|bzARe(*d{3jSP}NTMQt6iM zv$93&4{twt`NCnJe(hHJd_v>?Aox(i8$uV#zgIl3Izt6Jx9<|# z!4`}elY8&zQ1)&i&ovLm*w7>B*mAMlM2i%qr|s)~kA9lAGj{z`RqIY~oo#)S?rSIb z^T&=$ThLp>wfkscbH$7IJSKi1lM*FG^2k)_Fms&}eOOAvC{c8xbckXS(VgW76+6us zF0FFv64s>`#d^_o5W^fKqHeWfwe~-@gD{#n5##hXb`Wj;?hb<9xX3z$8Jm!QcDrDx zb8i<6zwO2{p7y0L=)*hwJ}bsXATqrXIz*H(h;6^Cf$d*&7df(AgcB z4*4IO0yN{u1n%Fs=(`X8kETUL0rp{+rKkCTuJl>DBJ@cdpgft>Am&#bJ2!eJ+@}xmFs+Y%gEj zU%!0BX89HI?a7&Qu08GUiuvD3&$t#!7OOE$pT=_9kk8ZRc5wrs zL#_q|zya2Pb-;M^&b1!*8-S7jPZ;hG!Fc%9mk?J7HiIIt1#AT`0~go^wu9D!M_-TE z5V%vIA$Q?E9fjN*SAw{G;J1zOJ_3E$K@417=xsfW=p(?${<+blk&m5eyuDLGHSW)X z8t^4J2fhO5!Pnpd_y$}A--1iv&)_n+0&2l`;41K@MYE*7u4Vs^I!7PD&)8qU*Wy=^6UY zsuHXhZqXbJAY5v`ESpgn25> zzAW7mk|D213$;;ryI>n_T>SQT(kww)g~_VhXkMLkLx`1W_7~DZc_eZr)7(e_=X>8v zRVHq$mulJSLR;x+sgCJBc!?cjs3WdYK@Jvp@I|STImb#^o!yYOvWAw2A+@P?bw5cd zl$b3^-o98a-SIen2)725o-Jh>XOOGc1bfCHA{Gn)aSD0Pl6=}cg0S(>&_-#5hasE@ zQYmJZ)Iv!%Zr#RYltc?=Ntx`{>eVe=f-Jb~z|&2smy8omW|OZ-ch3~8cv1SwKS(3c za;o>06MPL{orF6>8jNlXQ>vf5nX^FoHY*K~jRk{`5e$+GnW61*XRw?k84u8yV0pjv zkg-zmZZB{5%0g&9`Xm!_CRili@y(?jWl10@M2-_Svc||1IvgVV2A;#40%bK^>k)nr z_@U?Dhx8TrjSyL3{|8+`?7#H3dIP3-r?I1G_$;ZzukzN4;8JI~9%f?_oWqO-Xq;Rr zyA)G;X|X&th8HI)D<7cRy%uls?5bRKcc4;~b$zsT3*pr0mVT!_1dN*G0vj7PmHg(d9(s?AObDlo^er5q5Jb zPwitaw37aq#gls`ny-qbxhBDrvUh0v=<+0sH$RqS?!!oUTq)+oWpZLm64ooRJT}>k zcD&QhsL5&hyva4jEV(K%>r%`D#ilA#D07W0QT2G)PGQ?+Gj~?WQ`%7MGnP0WH`aWR zx$0$wgy-}S+Esxg{a&f&S53DrT z$Sz++cU?jQtFN1M3i}KrVyiXRij=S5h{1ltTrE>>2R4-KHBg=;sXG~Y^;f5m{Y|q! zRe!0Psql<3jGk&Hl#OOyRQ&~du#3NX8upYA$L}4hUV^rORACa)Bw7hf<(8OUg3p}d5`-jyRMvrz6rLnD-PbopcXTRO#D!V_Pur(%V*J!l%Jqw+b+rLi}!rryo$)F;|+R zP;42DuWGf{k5cnhAD((pEo5sG%|Vp9Rx>+SXb1SYchmsUm99vRy>mi&=n?f4qu@AY zAzwIES!{A0Rq;{sM-!$-wt`6-8wfl0J!W*ysnJThbCn#0x)kyFHtPOhs(H<_!8ym| zMTz|^UcBtM8jEo(Gl%o=I29(j_yr}6^2zMUGf$}bjDof)7@2rAtvRL5F?FHhBj}{q z3bl;6QdEVCK2yTU-dV9x#*=U&X{XS9s;)96kS!GJp2ylsHaw( z_N3fyioyp=S}AI>S?xo1m@Vb^QY<{qtQ}1RHOvCrI<$Ld zH@!0-nxZWbDQP5*v8uNzKCaVhm}`oK{`P9pD`6r&yQTEQc>=!68wUd#702lD zv^z$h!a7peK&3Oyn5=bYGG$KIdeBp``b^sVh~Q0jmk?xhc>o^~VA-WoZLB_-rP87& zv;f)=tA}gTJf`7mafU~V2aZAS#I|jU9p8{T+hZbrM3Ii~PgC)iLNf;7tTc0gp5Azp zN_!@2-c&wJ4W^1kvcFR{hwvvmT9!s&3G68PV=~@_#U8XhXmOeU0`uDT62dHeR)`8pm>w}mp0|xS4wiZD< zp4Z;P{s(8RNt96vhcIWk_B`De!9poD%@RQ6E$|M@%(CQ*R5V}lrpP#bf_a0x4?TG9 zKs{HWfR$Q=l5F(w6pHZ_V`%Xpy^K!w(Icg49^*W=<(6xrmWd8(Y(70QQ18vAxQ~9> zVJ*iwNbf+mzta3D_pp{stMAu4Xs@t13{%5Jizev(D0-GYih_DeEol8yqNimKiwh6K z-~2FFu0?SjfekFR2(F`=Kn39pb1lzOG1GMnw_a8_JNqhCat!^*lXn!fPnhdC;$ef{ zl=yp?Y@njSU%qo1BT)QDErF+=&<3yFUs7RAshU+5 zsPWM%Sm`M()I>q0S~wN=h9woW)iN~QhT|;MU-c-W%;|a}t@=!BZJjnQGX+e{$ex@% zm+V!Voz8rwX>4Ot9+Q#hcjGdfQfc{Ftv5WD9!AAAnn^J-q|YMTc)cr?y{E-e&Un3Z z%bDY|CQi(lnKE(0;CeA2n2zjY56<7Yz$-z+e7I7A>%SfHjGB-_?i7C(jM9BOVh)3Q%iU3 z%#@#Ha%-ON-uFSDRPI37u${QSZx+9c&~a4vwBF1Fg((liWE$G=0G_;a%|M_vhQq$oeu^=;)UO`+V+w9bEPl6dN<*h3972U^0K zv{;P_-%WEX`t*+X@X*VR-xob@DB9lC34eDcXg06A#U;8Y$>rzt;1)mA)0oiE<;HKQ z+*iADC|^9?i>Zv|Oy;f`w4Jd_};|Q8M*%+S*mM@%(i4eg?1L{Ye*>4I@84*J(;3M ziqX#93<`6h`ZSk2Q&qYYUh!q~kFbi^~V-GbpRV$L6%h15Yk4?F( z&~d0=f7f!9UTij}@RXH$FxIa|HI3so(|C`WXx(BO-pTS91+390Q0}XGu4^sw_h_Mo zP{3KmheuA;4r5tYZw{uY3QIhnx>ZkNA|9kYJMcEnPeOvQ4&P?GWNN3yf5X=airucd zxNEldXme+=9>Utu=D+BVP=(zx1}6i006$->`-`qTO>oxf3au;G*YQpJbZnfi?#5Qb z?xzRwN%`7_4pj7^8cXF5SVDPbsgAX4!F9`6r?Krx^}%k>bBpN9^ABj5GG)Dm&q$YF z*B5i=4SkAQdPF~{TMHU3zCqIJL;C%^?v$=KC$AXu7(V8LwmqiwoF2)n!T2s^cxpqo za%ar`O3%ZpW0xg^XN2l&MJ`^@Z;GxyFwr-R|G!EIIFO_n`t@sc&(&|N#J*?CDXvK={T6vPSBV~Rd z*tlPqwKt=060H7|8Hr32##pg+Kr%nm+uB)i&&ha4?KFiC%hUHT7GZdXo^+zS)sKfh zY%O7~d|l#aK23udJ zwz(D8NhyD)1UMI=~n85uj$`DB!^TSnZKhpqnn$`I=b zMr9)rSr}zCQS<<73u+c?^)ZssGtk1r6Rq#y_*f65`r+0hdVk;@eN#Ob20BSo8#P&+^{Q*mFbhG}9ABkdt;IRBzlZ^!-vCVDu& delta 10892 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 Date: Mon, 29 Feb 2016 20:01:28 +0200 Subject: [PATCH 7/8] v0.3.4.0 --- Subsurface/Properties/AssemblyInfo.cs | 6 +++--- Subsurface/changelog.txt | 1 + Subsurface_Solution.v12.suo | Bin 850432 -> 886272 bytes 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index bcfba59b9..42e17de84 100644 --- a/Subsurface/Properties/AssemblyInfo.cs +++ b/Subsurface/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyDescription("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyCopyright("Copyright © Undertow Games 2015")] +[assembly: AssemblyCopyright("Copyright © Undertow Games 2016")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.3.3.1")] -[assembly: AssemblyFileVersion("0.3.3.1")] +[assembly: AssemblyVersion("0.3.4.0")] +[assembly: AssemblyFileVersion("0.3.4.0")] diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index d85390608..4ea04ccb0 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -15,6 +15,7 @@ Other: - thermal artifacts catch fire even if they're not being held - placed items/structures can be resized in the editor - items in the inventory can be swapped between slots by dragging them on top of each other +- cyrillic character support - slower underwater scooters - fixed pressure building up in enclosed rooms full of water, even if there were no hull breaches - an indicator which shows the direction of the sub when spectating diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 96beba821636648f5f41c4cb7c05d1e6c016d91f..07f64bd8d4fa889614eb85254af87c6050760cfe 100644 GIT binary patch delta 10118 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 H9OnFQPh_G( delta 9720 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 Date: Mon, 29 Feb 2016 22:06:48 +0200 Subject: [PATCH 8/8] Upgraded to MonoGame v0.3.4: rebuilt shaders, removed the old content project, added a default config file --- Subsurface/Barotrauma.csproj | 15 ++- Subsurface/Content/Content.mgcb | 28 +++++- .../Content}/LargeFont.spritefont | 0 .../Content}/SmallFont.spritefont | 0 Subsurface/Content/SpriteFont1.spritefont | 9 +- Subsurface/Content/effects_linux.mgfx | Bin 3699 -> 0 bytes Subsurface/Content/watershader.fx | 72 +++++++++++++++ Subsurface/Content/watershader.mgfx | Bin 2446 -> 0 bytes Subsurface/Content/watershader.xnb | Bin 0 -> 2593 bytes Subsurface/Source/GameMain.cs | 2 +- Subsurface/Source/Map/Levels/WaterRenderer.cs | 11 ++- Subsurface/config.xml | 6 ++ Subsurface_Solution.sln | 76 ---------------- Subsurface_Solution.v12.suo | Bin 886272 -> 903680 bytes .../Barotrauma_content.csproj | 65 ------------- .../Barotrauma_content.csproj.PSM.cachefile | 6 -- .../Barotrauma_content.csproj.user | 6 -- .../Sbmr_content.csproj.PSM.cachefile | 1 - .../Sbmr_content.csproj.Windows.cachefile | 1 - .../Sbmr_content.csproj.Windows8.cachefile | 1 - .../Subsurface_content/StyleCop.Cache | 7 -- .../Subsurface_content.csproj.PSM.cachefile | 6 -- ...ubsurface_content.csproj.Windows.cachefile | 6 -- .../bin/PSM/Content/SpriteFont1.spritefont | 65 ------------- .../bin/PSM/Content/SpriteFont1.xnb | Bin 163242 -> 0 bytes .../bin/Windows/Content/SpriteFont1.xnb | Bin 79451 -> 0 bytes .../bin/Windows/IgnoreMe.dll | Bin 3072 -> 0 bytes .../bin/Windows8/Content/SpriteFont1.xnb | Bin 20142 -> 0 bytes .../bin/Windows8/IgnoreMe.dll | Bin 3072 -> 0 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 2709 -> 0 bytes ...Microsoft.Xna.Framework.RuntimeProfile.txt | 1 - .../Sbmr_content.csproj.FileListAbsolute.txt | 80 ---------------- ...ntent.csprojResolveAssemblyReference.cache | Bin 3297 -> 0 bytes ...0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt | 6 -- ...{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml | 78 ---------------- ...gnTimeResolveAssemblyReferencesInput.cache | Bin 5865 -> 0 bytes .../obj/Windows/IgnoreMe.dll | Bin 3072 -> 0 bytes ...Microsoft.Xna.Framework.RuntimeProfile.txt | 1 - .../Sbmr_content.csproj.FileListAbsolute.txt | 10 -- ...ntent.csprojResolveAssemblyReference.cache | Bin 3297 -> 0 bytes ...0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt | 6 -- ...{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml | 60 ------------ ...gnTimeResolveAssemblyReferencesInput.cache | Bin 5883 -> 0 bytes .../obj/Windows8/IgnoreMe.dll | Bin 3072 -> 0 bytes ...Microsoft.Xna.Framework.RuntimeProfile.txt | 1 - .../Sbmr_content.csproj.FileListAbsolute.txt | 5 - ...ntent.csprojResolveAssemblyReference.cache | Bin 3297 -> 0 bytes ...0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt | 1 - .../Barotrauma_contentContent.contentproj | 86 ------------------ .../SpriteFont1.spritefont | 65 ------------- .../Subsurface_contentContent/StyleCop.Cache | 7 -- ...ntContent.contentproj.FileListAbsolute.txt | 16 ---- ....contentprojResolveAssemblyReference.cache | Bin 87651 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6660 -> 0 bytes ...ntContent.contentproj.FileListAbsolute.txt | 2 - ....contentprojResolveAssemblyReference.cache | Bin 87651 -> 0 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 6678 -> 0 bytes ...ntContent.contentproj.FileListAbsolute.txt | 1 - ....contentprojResolveAssemblyReference.cache | Bin 87651 -> 0 bytes 59 files changed, 129 insertions(+), 680 deletions(-) rename {Subsurface_content/Subsurface_contentContent => Subsurface/Content}/LargeFont.spritefont (100%) rename {Subsurface_content/Subsurface_contentContent => Subsurface/Content}/SmallFont.spritefont (100%) delete mode 100644 Subsurface/Content/effects_linux.mgfx create mode 100644 Subsurface/Content/watershader.fx delete mode 100644 Subsurface/Content/watershader.mgfx create mode 100644 Subsurface/Content/watershader.xnb create mode 100644 Subsurface/config.xml delete mode 100644 Subsurface_content/Subsurface_content/Barotrauma_content.csproj delete mode 100644 Subsurface_content/Subsurface_content/Barotrauma_content.csproj.PSM.cachefile delete mode 100644 Subsurface_content/Subsurface_content/Barotrauma_content.csproj.user delete mode 100644 Subsurface_content/Subsurface_content/Sbmr_content.csproj.PSM.cachefile delete mode 100644 Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows.cachefile delete mode 100644 Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows8.cachefile delete mode 100644 Subsurface_content/Subsurface_content/StyleCop.Cache delete mode 100644 Subsurface_content/Subsurface_content/Subsurface_content.csproj.PSM.cachefile delete mode 100644 Subsurface_content/Subsurface_content/Subsurface_content.csproj.Windows.cachefile delete mode 100644 Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont delete mode 100644 Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.xnb delete mode 100644 Subsurface_content/Subsurface_content/bin/Windows/Content/SpriteFont1.xnb delete mode 100644 Subsurface_content/Subsurface_content/bin/Windows/IgnoreMe.dll delete mode 100644 Subsurface_content/Subsurface_content/bin/Windows8/Content/SpriteFont1.xnb delete mode 100644 Subsurface_content/Subsurface_content/bin/Windows8/IgnoreMe.dll delete mode 100644 Subsurface_content/Subsurface_content/obj/PSM/DesignTimeResolveAssemblyReferences.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/PSM/Microsoft.Xna.Framework.RuntimeProfile.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csprojResolveAssemblyReference.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/PSM/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/IgnoreMe.dll delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/Microsoft.Xna.Framework.RuntimeProfile.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csprojResolveAssemblyReference.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/IgnoreMe.dll delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/Microsoft.Xna.Framework.RuntimeProfile.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csprojResolveAssemblyReference.cache delete mode 100644 Subsurface_content/Subsurface_content/obj/Windows8/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt delete mode 100644 Subsurface_content/Subsurface_contentContent/Barotrauma_contentContent.contentproj delete mode 100644 Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont delete mode 100644 Subsurface_content/Subsurface_contentContent/StyleCop.Cache delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentprojResolveAssemblyReference.cache delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows/Sbmr_contentContent.contentproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows/Sbmr_contentContent.contentprojResolveAssemblyReference.cache delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentproj.FileListAbsolute.txt delete mode 100644 Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentprojResolveAssemblyReference.cache diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj index 5025b8910..611aea7c1 100644 --- a/Subsurface/Barotrauma.csproj +++ b/Subsurface/Barotrauma.csproj @@ -301,6 +301,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -971,6 +974,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -1064,6 +1070,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -1250,7 +1259,7 @@ PreserveNewest - + PreserveNewest @@ -1272,10 +1281,6 @@ {49ba1c69-6104-41ac-a5d8-b54fa9f696e8} Lidgren.Network - - {1e6bf44d-6e31-40cc-8321-3d5958c983e7} - Barotrauma_content - - + _ - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.PSM.cachefile b/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.PSM.cachefile deleted file mode 100644 index 2a3436749..000000000 --- a/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.PSM.cachefile +++ /dev/null @@ -1,6 +0,0 @@ -Content\SpriteFont1.xnb -Content\SmallFont.xnb -Content\LargeFont.xnb -Content\SpriteFont1.spritefont -Content\SmallFont.spritefont -Content\LargeFont.spritefont diff --git a/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.user b/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.user deleted file mode 100644 index fe7dc2232..000000000 --- a/Subsurface_content/Subsurface_content/Barotrauma_content.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ShowAllFiles - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.PSM.cachefile b/Subsurface_content/Subsurface_content/Sbmr_content.csproj.PSM.cachefile deleted file mode 100644 index b1ac40206..000000000 --- a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.PSM.cachefile +++ /dev/null @@ -1 +0,0 @@ -Content\SpriteFont1.xnb diff --git a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows.cachefile b/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows.cachefile deleted file mode 100644 index b1ac40206..000000000 --- a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows.cachefile +++ /dev/null @@ -1 +0,0 @@ -Content\SpriteFont1.xnb diff --git a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows8.cachefile b/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows8.cachefile deleted file mode 100644 index b1ac40206..000000000 --- a/Subsurface_content/Subsurface_content/Sbmr_content.csproj.Windows8.cachefile +++ /dev/null @@ -1 +0,0 @@ -Content\SpriteFont1.xnb diff --git a/Subsurface_content/Subsurface_content/StyleCop.Cache b/Subsurface_content/Subsurface_content/StyleCop.Cache deleted file mode 100644 index 9e0c058e4..000000000 --- a/Subsurface_content/Subsurface_content/StyleCop.Cache +++ /dev/null @@ -1,7 +0,0 @@ - - 12 - - - - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_content/Subsurface_content.csproj.PSM.cachefile b/Subsurface_content/Subsurface_content/Subsurface_content.csproj.PSM.cachefile deleted file mode 100644 index 2a3436749..000000000 --- a/Subsurface_content/Subsurface_content/Subsurface_content.csproj.PSM.cachefile +++ /dev/null @@ -1,6 +0,0 @@ -Content\SpriteFont1.xnb -Content\SmallFont.xnb -Content\LargeFont.xnb -Content\SpriteFont1.spritefont -Content\SmallFont.spritefont -Content\LargeFont.spritefont diff --git a/Subsurface_content/Subsurface_content/Subsurface_content.csproj.Windows.cachefile b/Subsurface_content/Subsurface_content/Subsurface_content.csproj.Windows.cachefile deleted file mode 100644 index 2a3436749..000000000 --- a/Subsurface_content/Subsurface_content/Subsurface_content.csproj.Windows.cachefile +++ /dev/null @@ -1,6 +0,0 @@ -Content\SpriteFont1.xnb -Content\SmallFont.xnb -Content\LargeFont.xnb -Content\SpriteFont1.spritefont -Content\SmallFont.spritefont -Content\LargeFont.spritefont diff --git a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont b/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont deleted file mode 100644 index f8b3c56dc..000000000 --- a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.spritefont +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - Verdana - - - 10 - - - 0 - - - true - - - - - - _ - - - - - - Ұ - - - - À - ə - - - - diff --git a/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.xnb b/Subsurface_content/Subsurface_content/bin/PSM/Content/SpriteFont1.xnb deleted file mode 100644 index 5723d123849f4f3f1f97fe5327c1cb0e8555ab5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163242 zcmeFa-Ht5TnVz?6&k!zxvm|`N=>3<X*Oy z_Lsl;$v^#f-~Hk@-~MA-|K!`B{i|=k`;$L@kK(`j?q~n*-~8g|zy6ay{%7BQ_v>H$ z>X(1@7eDz^eg5Q+|N8I$_BVh3-M4@B%WwbwH{bp2Z~x?v&wu|nfBTD{|JUFChwHEY z?YF=DtH1nk?mz=70V| zGymy-`1NnT{kxz1^}qQUN%D8U{`s%I``cgq%@45PZ~oyw{Mk=`{?q^B&;HS$|HZd| z`j`JG7W}7=ERft)`Tye!m4A=>KO;uJ`tHwv{}KAn-qWB(s5Dtk{Pgrk2gT`+K7IPX z_~%J~|8M?({q_BCfBWgv?RHz#`1E~iFSNhri?2T!e!X1{|MdOWh5wrNr@&zV?)TqA zV))A|?OcVg_V@b6?M3+CTY}q{tKeS?!|l`JHmX(othTQWKftIj{SP+`GIsFKxATlI z%-=@;Pq*WaeS>~5Z}u$5J^7=)qkd{fzuQeAu))@MIl<55(f4{O{=ZH8wx>S^Hhm7F z|Lt$3u=#xw{nr8)Kl_tbwH=@D<*&s1>Go{k9ej+Btp7gzj8tus z@T2p4l^^>Au6zi*w=Zgg-r)P=fxsJjq__O?`0&u*YrTEm?H|C)U(0EyKPo^4zg>6o z*X*NT#;-wNlx_Lw{%Q4t-|PLIeQP~GWIT|CiJ$BF;4gLHf}dXGPhY{ee~0$>Bz*PX z*SD*K1%~h!`~UO)3^e$p&rP|YkLXF))DJQ!@|OkAS%lh`^W~z^N0-`9(DQHi|0nrB z?u6R@^eR@4nGB7;!2;}@-=cLTmOA^`*ah1i!aj~$?y6uH~Npg9emtl z|57lE-^&ZczQhl8&9C|6dOMv$p7|2#{yOP9@;5^8;g|UpJ`sPWXFKDd0?SJICr z1{wc+TB2RSqd(EAdU!hR)Wc9jp7_a~RUa;wz4}YORz4jrj8~4B{d+qu_7@5@|Gy{{ zGSU1!{!IGze8PRnr-pC+9p2Epz8F32tLt}U$3fn z`m6NQcucHYyqA}kmp}{4@rF4}On*6@MmWaOJtOaUx?H1u>Iv#k^+fvo79#VzeyZ_5 zZN#DPYCq*Y^rb)fvCzAnQKEl+L4Psiqjv9~%|7{ahFgH};?^quLS&e$7|t9@CJr+QHO+|IA`kJX-Cf2dkRE?B0sk$lpGN=9EA-Be(4T=v zn@#*T`~jCe!LPPR>`&^M`V;NykIV8l)f4dpL;9W|kal8__D;TK`e*pt3;jpjahmX# zBeK5q7J(Npf|zlev4`7wXj zzq{KI+fvY$fmdM80Z0Q2qDy z?KIYukoqDS z&7V{J2K}sEw~zcP+R%U6&FAl{ew|KF7x4$T^83?*E@25z%2}&tt3D&V43a$g8}U6~ zG~QrIkH_uk_1S$ru)eLnePaB|3`_i2-dFx_^E)eA+sA@d{YxLW=>Sr%&F6_$+8~(U z=kdwqyOc#)x)#_xADsUAiR@5Qhh3)kGDmbjFAUK7+vv0r_au4u{De{d z!eIRCloI__`~SE{399y@{h*{<^Z{SY8$Ie6_urB2hAdXGJ{N}sFh8TQ?c7uG)Va2IeWn*JJpMtvXJ z8wW}M^v6N|$S?UH`x!7s`F2kEgW=Zpig)}&|I>1=;EA^&1t$V>Z)-=N6;AhspS)4{ z$MElM`$MfJ&++K|acBBt!BJ2C@+B#x!z4e@mEXhm<_Q<5T|%|{RrQrU!oED z(!auCf0CYGu5SfM_L82mzsq0X|Iofd5WV!D@DpC^cglXWQ96DF*#4G$P9ub1eLfIR zjprTz)$+Uks<+`(@lw8IJ1_hxU{+a}`H{uBeF?vw&l(T+^1taT zd82&Nz3boRYoEn02F;&ye_8Xb^}j8@QNJ<&CVvh6WAv|Qy9kgzuWz$`nAiP#-SO|3 z->G)t$MkroUc>>-e)6~bU-3!x4ZZVw@Ye*N`l~pHp5b8XkL(ngqp;p~@~OnN`K;#G zx-uTKUMjf9L(*ZXw*9xsj{&}p?-h>Bcf`-?WV|K)uh9;6{DFFh@L$if5{=l0d&|Di zQx7xW@9W<~=0kM3_`B9~Fiku0R)Ev?c?v^t+n;`I>-jr-q+{^={Rbnw{C95t+Q`%F zw*0Ys-dh$UB>t47lE*iO!XWZ9|JC1Ve*%uJ`cL%N^R)iabfe4PnJ-FIhaWtjT;*4N zRmw%)yngUx5r-PSd;ToiqQ9^|QCIlcKA=VK^De~G=?!PYbO+xR+i(gtaFvMQXTEQe z4S%bc_5!~7M_->0V;q;^i}ksiznEEr6Ckj$mTDyDfWAc^h+d14|C%E$2`|&hs zZ;t08PyDQ1_)(9aN;}(wddEq=qm_6QuIxWzf%qROD8}F9KgM+bJZb%m`k=>OY=9R3 zHJ=OH`gZrP{V}6|i|U63to-C3uJ~i+XL{82{8-$? zFX^WMHhx+^h(X$P2cOq8e&olbpK6Z;il5JG)F^uq_t;)UAn-O~>Gxj$EPk+i%rEXv ze0TQuOT6WCoSXS#JI^>Q&w_XV=KdfIkb%_CzYvV; z1AX7>B?Wov4-SSsN`2Vd&ycXJ=#Ax9B{@BGl>*R%1qmRemaKt|ijtt?W4*P#7i&NCT-riottmU82(}C*> zKJj*ArFXOJW&2z9l0ktJZjB#em;Sl$zY#8VBM*ncx}P81US4Xv-1tk-;?H?6{nf)k z=yhHVx0de<`yoWe87_NH>?cW_wfW zVD>L9%M-)MW4}1+xc$WblMjDNKDS>?n_-MXL2eLffzaZ}-(`}vaNj~4H&32K_ckb(7%AN5U4~5_31G>%w zZGq_30UyGLd~@(16}{Kv8+oV~eM>*YP5BV?)Jw{-_nV}U_~HJl_pz6BCI6&;#g_$= zjVXM>+v1u20Dj=5ANVFNdX}#@jW_y8-mA{9LXi3*eIK>qrAzd%V?CNr*FWGD?(C0! z9{+9+{$8oq^;5OyvOmsmZ!Z(S zA%CDZNAaUPQ}0&$ch5ftdnWxxe{J|FA7XEfN0=LM+Df+{#;@|P_NS$y>~a2$@gMac z^bLCGH~HB8E7wa$@&CyDq{N#Zep9?2*&Fqu59!5x^ZS^G{7=uz!Np8U(LP?hKkN!* z{WQMm-nfFl?X0KZtdPfF$A$4kSMmpW^rv;aIQjmjV2D5P-0w!VsZD~n-3I%I{%}OJ zJ#KwmPg1blrhu3Irl-3c8u#K~`BC-52_lThLwwN7KH4pzY!A1)sh&6l=BNG`b>4+n zdc+^1H+9{=b~?Ql-2Dsiv-tIT#)N&JzVZe66TH5Veweq!+lhzn2l3qjRo`^KRv8@q zF?h@`)j}0S@q2lB)qKUD#y|9{|3V*mq-Vx&z7#&{PW3*_Dqk+`JS_Q#wo`t)7@>mr zy>Y-d>03KM>rps!#9iRKL;-Z!Vh|1Eq-1<3d8bAN9}J_gfgCqPM80+ zf5K30jTevC$8nhOnQm%*X^v`Ze_h_P3urILoq8GZmXG-CPnN#SCpF%~GWz*^NtVD+ z{7-mP{_b!lbZ!*B_+d@Am-D^-{I}CGd|`=d?GDy(t~&c!34vp7-Rh@^HzVA0mgU! z;SV_lsi&vYqP4&F%+-El$Gp&EPv4&^d75u)@Q~8rQx2#63VrewaV=jzqmPUYKJ_g3 zLp1$P$Hcq*yEooEw0E#S(MNssC*Pd!IwP?^POsc=tIzxJL@RL0k?t3hcJ>F`jpwnx zRd?(+C=2?zr0 z`l6hP{neo>p75`D22T9u_NX7c8b792!iQVYFOruGwLHyN0ChMHobp#dF5yeQqfu>+ z-)DV{eTQ$BmdE)c^j#j)5#(7t^JlwkkKdjC*L(I4 z@Rff5yfOxgf33f}eY@vpga0wVgl&-skGs&`!3zh=FC zG_k&c4swlmT-CpBH{H*!%k=>FFKJf2BY_HT{=ld4)$AbZ{s@CMzdKZT4afc7-;>G0 zN8f4x;2r%}e&)aK&sRF9UhL>+cVTeJYx>(>)G2#wyjbat5Bya2Sw8VTwB90qn*J33 zW>5Jy^#lK(9O{yqJp-+Vuk8LaV@ z9lHE4`lPk;o8oH&vR+x*^Fc)qdC{-@V=v|)2Ya8Azk!p#%rA6B9`?6W`&g%dZws^GE;6 zzs-8x1f#z<{)huReX2*`l#k}Gp08tlsQB4_^soLH{n2L{zalRAp!}?Sbbf%}6TbV~ z_QPKP0@hqam)bAjm%pta@RQLCPXDib2|i7?HAaaJ^Ctbmy!orn+dF=@r}=-eF08P_ z@0%&Uf}^taN8Tard-)?=J`KN&?=UENo}Z$A>9^j0eXkF;g z4|wO;w5MVIm$$v=2Q5Ny<)8Esjq&yTWnB#(+q0oDOBeoPjmgthk99sN&T!VPJX?r=&jsIj4 zaN>QCe;fZx<6ruDJrV8AAN7x*>l^dKT{T{2JfNN(WBq6Jm%!q`+&F)6f<<3$=Uv2` z|01vYN7L`TryuCLVh=r1^wnO7FS6tg!%w&U`=t?A^wc-u;~V`)?<1eBZo$3Z0=MwH z>^%<*y+dUB;5U5~U%Ru>v%nH=!`FU;aJeepx?dkzY(hw%%jKB<2ST&=9r_Lzv&Ns{ zMeAi3B+=`6M!~t>m)F#jJ(Z90XvsgryypYkA@-Lf7Toq|M<{JQ-^o>N%2%7u8K3+i zpPE3e$I2fNg+Ba+k#^wQ_UK=Z`h5xinXA}aALn<}>HL(AjUUf{NB@c!<(K>I(*eX! z@gL;@?)K5Yru}N=TI0|27n;xe3-d!EH63&KbGrcX35D(5d7cGnROcFx4thRNnB^~e zxcK!p4u&1Uj{ms5$o5I1`6CcqXNcP#FV*{s-`@F#xfR^!8%9sOb3f7Vnx9V)tzYg> zvxTL<`n$L6)aG&aXK&_|eP{VI?%&4W4la8i&WCVy?>{=fwsZNv$j85X{G0#iAMPxr z59{@b9&-Or{H|}OIuB0&pT3EU90B2XeR-bx=Z<~m(CAAa%R?X4^Lzbh30MCC-K`g*2tW4kxLW&dec-VByWH(| zuNP?4^cmsF&hRHa8BZ1d;4|G*{D@Yym((LR0IkpUdYsS4W1szrx!x~>huf}~Gk>7* zZ^m!;uh@IUBc-tPcYO+f!|l%jPS1785I(m9HGg;fBDX)tpE>{c`LFtqaQBwVH`gn9 zYxQ^O|2cYbv_9BV{iW9D><@<9hM$TR6tZuTe}?&0tPi}N_rBAo)bIAY|B~S1_x$=? z{jZHDtXE`T({JZ|VB|OIJLa2QqlA(?Ziixg3kS77a(_U2d+NK#uM%i}?~RvD-VS`y zuM84D<<}%{%C{&We9u=O=`+wz`5pS?zxL0KkbIy&Px&zFKeosCJhEq`AKT*B&L5e7 zP2>G2Z?tcOi@(!L@#g_4;Vb3j&pdCY$rVlc_i#95^iKY0euTTMlHfNzk8J^<)7I@^ z!K{4K_+JVLuJ~5Cl8@q71`DowGwM6y=X@jeQ0KiP{P)cd{c4-GcLH z&GzF@4zP4Tw7Z<_J2FAFei#{hbABgmwKKgEb@?v~WVs~s8OGN-p0NM+?w>P%xhMY2 z`?*RU@sfOn-}LBz=GA+MOM7|s{v;aLe(LFT9QBnsy2M}S6&fF3^jPU1q{lQ=8=a1mK{Q*%;o}Yh(mv{*O<>>WO zB#54R<;iHt<2W?&fNEN)aQhd1RWFqO=6AX+)xT>$R`MO48ZV`v z&5i!#tJk+pAID>sFLS&8^dDc+|ETzdzvW|pdmoqa8J?M+=F{w-=)C;Uyn9^aS~f6*V#W!}iI;99vu@`&R^Yts|>*dYh-)?8( z2};FB=goDAzSjRT!ScxeCGuAPjq>A-ZT_tOAslT!V0&o3#=iIidmG&P34iimeNpzg z{(3|}Uv8J1>gBXvi8|$f>H(K{g&*rHJ0$JJ=g;a~1<(6FP&w_r^$*B)vG~>bs5Nf- zhFj?M{O_3GFn1RdzQ>Cn$#2SEb8q%hpK|qln%YSi`)3`G5?}h0_d}FIWuNK=SK>*1 zsQ9h$@DCjNz-zyp?)e<*hF|9=?(pirS+C<7=g&>gHx$E?PydWxj&=&$E(jH zTRbr*{=kUPCqK6KmAq!J@fE}1@1OVRp7Fr@^O1M-xU1~x`w@3=tAo+F%lq38<^4!~ zMtP%u9>MX^T|Vu^>&`w8U$&3;KX6U*=u+|D?*5z7?aqJdLc#C%_ut8z{HO9~`3L(~ zI;5Tcp&D2GYJaogCmy4|uq*uYS-c=G{pS1o1m4l7@DI*!%rAe|`3y97`fbKv@zb@1 z)4YqvsP71$;x+hJyu<&U{w1*e`Hp{>WEFk-D+;B3-0y!iKCwR>e-8FgKFVMF=cAAE z>jU|7@4xPkm(-sJ@g4K0-JeFid#64&|7gB3_XqSXe^q^&{ZsJduSTRh|H3ovf=}_h zhieE5e)`{-AANk}{xIp=&i~+^@nO(cyuvT}Gx}%9Pj!#r`+e^k(W`x`=j&RV0Y$y3 zK=vN^kMv9{pT+%kK^yuyG{NoS9D3A zqy33S?1?8{FE2HpFr4X&mgq)-A z{v&=YivQ#>m@9{_mYXHG0pV#HsR`8HN5Pg;X z^49aI*z5dP?=Jta!V|T6obf+;e)Tzh@TNMD`0;oo`uHmSQV-F-@=g0c4o~T~8!x4A z=wJQ*`uli=-1;kj)NJ;U9%}nUNcymTdWpRE^GEwjim>o`98USmr`->H;{J`?(QAL@ zc~-M@yWQ_Ca_CV<`$O`U`O!VF*Wbh*=bJFccvgJe{}j(^^FXV7M>GD)`y0F^WBEQG z1RV#st@BF}SKIdwmn_5Uyk8MZd%-{YtLU9yCJ#U5kGoBQKPzs8I0P4pSzQNaAwe;uv(=R|+R*%D{|7r*aez#si@?BFYZMtOjHf4_dH zzmNWt`IT?H0DI3r_%!}t2dL!t{(?1J883KU&#~Z%hw69W$v3&Xt`-lO*T#1}4<)cN zDDb}i>io(bZc{$Vw_J^%bd^Wd_Wcy(mM*u^r;e-KX8Yx;xsrGaexM#owsJ`A_s*}> z1qJ7I>+}6m@+OzyI`5A3$VYtg6CALJclbQ0g}_jmu+ z{4)~H|7h=?KGctj$J4%l&^7vU zKV$;zHv4bX57(d2U!RDd+!g#hFSd>k+-^v`JY3kHdY^>ctB?Jw{z^XRQk&PaKbQW7 z6JFIr(1TBUTr!$Oe}^v@xR1dOVyt*&gW5o zdnfi*{qcm${#lO9A9Ja#cqsRjb87GQcg-&daOm}ZgnN3oz%ZQoyqM`yTjwKArs99n z_@&H1XTcXL6n}dLD=zKKKN%76Zpimvad z%lS*N#n0*DcJc4@8Shmeqfh)n)A=us)}H}LwvBDU0`L1%=^q?;i(i9NE$AQmto+T6 zE+8EGr^kE#v^<8Rx&A{g8sTfbU*@=tIg@{cE0N*f$CDpBzQ0fJ;XeN0{yWuIt04LG zzv#!`YO^186R^ck^>xG_^R3vGzjVJ&F7b1|+dtvY>x<#P!gYQq@9Q#t^4DLet>@9K zY{C7!UVR~Wn@=@*`x|>(oBIQzf6?#Zv$7Jp<)3+=L#3{@>;0=8-uqYKyT7|Pgr4po zc^!XI{Ii@k|Go1d<$?&By`fH9_B`?r)Rt&^1WxiseJrW?6Y+RIZN)3Sz1oZyW4zNd z3J(1U-_fW0liL?(|4jNsBiWPr^AOK+kl-Kj&y+tEaM2$;-mU(-;lIhA2l+PU<Z{ z%lJ$AG3hhLPxX?^_Wb~Tik<0MZcp)?^|{aYDSrlkkMvW%5AmG+`T2N`{+sfD%;yLF zYs}{{-(lDD^9S|!$vGIirpT@I?a4E-S{pql2t?hCCXyXLt54uY|uNr*1Yo0%1 z$SwFwvdihsOFllM_bV$BEjej#75hriI1PBq>O-|*n$o{4|(vmZzIItyKWI{a$< zulfCYzO&jZe8~uY&YQ=!WE4N!Gq#nnf$RA({)R!?b$&*tN!#m5k!Sv+{c~ex{Y<_b z1=Gj)ObBQP!~SXKGtEAory4!-w4R#jg%G&s7v5k?`>pQJ*!ah`m%bc#wE30wfj#T9 zB%t)m{T4RI{FqKm^Q~wXeKo(AJ-Xr#2V5n^{B^&S@?8=HXTKru$0+@Am-9^$1+Vux zsu}V1%c3x$7Me`xu` z&;KeP;Es6Us6U?<1#WuawY~^{^8MBHxFq!LeG<)n_dog1`mlV|{+RsH_}z3COUv+Y zUdgW%6!W7V;tv^+{=;~9w)3qp^EqzN3wq#;U+3xmDut`|6S%!E`P$^)&K_U&$`$EP z^!0po*Y|+FsRz;b#q~rCgRlEjF{bO!@!>K0#h-d#agZy2O1^m7UpL)fMK0+-%58rox>OfGwg@594)BXbv6nokCmDW@GM1HNeL{j>+ zdKi4nt>-OL{}R4ni=XPD?JIeE>+{HK_U-P6qGJ5Xde8Tx%4YHZ#Pd^%FZ+w}$A$L= z>XK2G&wAFyEc8#;gWeATcE#uPQvEsf=<$~ycP=Cr-e0Sw}a65Q(X?tvo?!HZSyVdB64V(@nq6$*0$wC+dg7 z6MwK?ls|lxJkfvl`~k2(!q@&sHJ#7&*PQQ2ByjYlUMjm2Z{6QL;oE(Ivpu2xldccx zgnijD6TkI+f2j`!n|s+qg4^Db=lrTKOuv)gqdgP75iP#4>_7R#2~_pR{*8nm3`cdTWPdO~t6VE4YM*qz3#i%0?LWw0;eOxOkA#2F zKN&xK-l70RUymOezhPqiUw7)2pv@kikGUMh|J8q+ea;U#gUkLTp&V`)sO|g?xWh;N z$F_9q`t9V~gkJ*f|JHvt`i%HvTefz4MPCT^&yM`jzI4CTD~_Ks-fiT|6`lV9{yD#} zKRCZ=3lz82UkMK)Qcs`X^!w9m-EK-~9$9&lz)5Fj6jbL9q40gbnX60M zeqVG65L^TF6pyesJ^iuiYyTmBdOoGpH9qX7dJBJzD5k%109?b5^(X(ADPF};`iY#MyTM7 zU&gNWCh2pGcA-Z--dDZSA3J^V{{io7tavy1UQg+U3F*W1=2f5ep%i+lv{Nwpk9Gd=>*;U}rhC5w*d@a86f$m!K?dXSp&kpBC-}pcA zQU8tpb$KUzS(F_w#!AQ46nIHLnrc@b2@?ZEO zow59t=ZWll>-XyYHuF}S)e-eNm)cCPH2!OeV*bxB>Q9=mrG0p&t=n}sDnWo#+8|kl)+r)dW z=No;v9kcpJ@FB-PCO173+{s_~x5ta0PZ53B_lCZs{%SXUwf?97cKT=HEpUss_8-cf zt34b0tY0yd{q&bskBy)G#MPf?`E!V8(?#@n3wiOV+K87v3UTD?{^6vX+dBUm?U~v| z+xS;FOt0}{wAb`f8TqYV>F-7_eVaavzlm?*`+im!l4C{x;&@K<1*cq)PpV$Qr+ZKF zmpoOV$k%)|->CgU0Mb&gb3JA}^|g+7VqW7J@i@l2IF;{l?-Kl~kJ@j^7p5mYrut}Z z&_xZS`Tx@Au0V|FTa>9Ju+RaJ6}U zn(Ho~^aWS&L;uKr+;b;iT`crEU*Q_$Ym5s#@1vXWNBP~}dfpIQLQj7d?!ZqHOaJ(< z^Q-)>`6lUQ{Rl_l=Xo^Eu|j`zydK)$`Io;tzxWq$@hfW=sPACE-Rt~#^Zax4#~8msKHB0w(Q`f{*kq5?HGlPIXIu2w?~MWL^@Rxz zO(7&6M`jEHLR9?aFSSEYfzaQ8TfEgD>@DLneCOKC_rfmp`n{L13xB^)Q{Jom^nB9I z@Yi}TSCdCO*p`>_pdqC6RlSinOJ6;IAOfjlf9d&5{$#_|?N8r)W4OPxKY>s7$o}SU z)4M5tDTjay?)q8ig6nawx-8H2&m&&sUs7*C+1O`mVvp`mj>9(cC;cQL@YHV{MAP=# zef(AY4~nniUGX_OA4DH{6gY{KhNfpiV0V}y_UQepnjmr+&Va<9v@_o&ACCgr0?9u( z9+Dq?jridA`m?BBiPILY>QeG~pNt^A-ZLShEtTT0yzg|4HwT2#xA-yOsf|Lh&p#+= z14F;&SM;m++~?y%`BHyF@8*459+E$Bkldv+$@rJwS21z5sgIGJHtC&u+3OeMm7F2> zz>oRm!O5>CZ9nei=)`|?SH^dQ@ey42ugh7W*dJ{7^FCS62o2|ThPq$DpW;tG_=>+U zAkE0zxGVhS&wcu`-|;sK@rOS1DQKF!DBJAk{$?)0g5U19jD5`KTu($}IQ2u~+jtL@ z^9J$GekayG$6v*N-LG2pw{~lN%X~ZXm~VSMNbj*cmfL60&C>F7zbwql-{0tbdEM{e z@mAtL=C=>HqCd}9VG9JM-?PSRI3vOQ*XMJB-~5M>f_pyda7SOxYw%Al(}SPrho7G( zwZqdUd@bH9{~h|f^D4$}_c7$Z?wnV}-_eKsEPZfy;$Qa{1WtFg{YqKEFWhh{e<`Po zpYsoE?DkIoRs31f8UK2HW_~RF;vcOq+$w+Z{Ho%CfXZjr^ZR&6xCC0B&c}#na*X_K z@#^}jKi}&c_m({x-$bnR0b)SeVd((`39!54LNKi;3EFKR!R;p1HT8IF2$e{wai@%6-dI@Uy=zJI;x-@EyMImpMI(|#}PdcC^7 zyv^rFc31qF`)jR`|V7` z{k);%-OimHc(X?pO7xe@H=eIZ8@IjPXMGxd#V7izzlYzZzXW~7PXOJf`;bo#pxb-% zg(C0tAz$O8+`~r0+j$kOhL3%speg&>{(I#&>3JOW9r-6e2LBd4`X5LA3P1IXfK2cR zuzt4R2=TANo!Nf!i-0_#wnAup?%&M)cv5E@uR2fn`{Hd-n;)Lenhxj^zV=6boCJ>A zJRa`*GaLLU1BsT5_3QrTeW#wR4ChCfQ~6c-y6wMG zhD-8M$MZ$0q_*b^0`f)Rx_>Rz*6^O6Yy2mBM9;P159hS?dsyNu7Ye=*0O{J`>aWtI z>w`vuHG5dT`u;t5*uTe}{LuKSOZ@BobP-2;w_Z7(2>s#kK7T(Q^n3NvF801?zdjwr z`cRL#KTgnslMui^qTl=ZE@nim{LTE)?Cf9a&AIqTzUr5+_@D6C`~z_8ul=UG_$fOq zpZqu$d-JFKJ6}Z``QGnW_}u1pOX^kr7M%16etmc2e%u%z9I`?Eqo3#a{KO6oobtL$ z-(+Af=O6UQlK;$vFv^rZoL8vb@O2*YyO6IritXb(s>H{BZn#W+h<~XM?f0SVZ@R-* zqJ!G_bV$X^m%cv{Alaf0sW#n%`%zZ7>xscN-g1AUn;;1vakU<6ZSBwH3cS^u2Cwy- za@h3Lrycw@e}&roKy`kge(Lc9`sQE<{b{6qI9r{LAA1E0yz*;k zkNp3DfA6n9_~+gqV}ATc;GgOrFZ=bN?>`>ge@A=O=hDCS>jnL}`tS8cxT;pc@5{YA zdJx9?Qf<~VTpBV%|IT^W*uSAD{Ic&}U-7)tzt@j?{(siz4u7N{+bl>*|NZxOQqQVB zKKXq!(k1$&UdiIp&-y>Cubc6{>9XZF`cGRTf#>(e^!FBjlt0zqd;Op;dImK8)#b4Q zFoZGN{COfv)xF1?1*m9sMZWW??@!cu!V1^@0HA8bHol%0(16Ma@Ag^yuU02;8c(5IG(BeUh^g1jX%7;mw{X*-}9Sh59Sqp`Hux!vsU;9 zSG25e4_C|YydOc*@9=B=!T!L}#=xWKTf8g(n!NBs-ivBYt2cY^n!rkLv>)}4$T=hIAP$oE%kA8da z%j@SIC(b*B-~8kK>WzHFYrMXTN3<<{kMn+>_~{e*ef)}lwLY#(aGGsDrR<;il{%)^ ze%Hur_0I2Mn77i)@jch`%h~T?fBPt1bv1p3ZyMvf|HuTx32(_S{c!-w zclsmoLEYYdr5*i)kN$0bvXN)>*sJ-pZ>nDKj8ntKlGRXKjg!H ze|3LKJ#Iaw>Svn0|E2$?ztDd*RB@$E|1Iw6|8!sPuTl^|@OeV^lPPJ*H_n4JxEewJ z&-3vbf(yUR@7*Rm8vnQgU$kFcSLHA38&$*hehPkHDEy1Q>d{vI=#PP)l|yLhv-7+( z3`&2t(-*BZTU)=UsoJPZ^thur$o|+ne@HcL`0e?z_}Ar73T@ACL{Rk>`BiU&ui;PT zHGgv4KF=Qpd#h=Eq4#>Rjc0nFFP=cT=yy4@-!JBvDEm0i&jeyy{~fP_OCi_aYV-R- zqdapfe)wmC$Jo$w+-3QQF8Mq6*Gs$7_nq?ztKj$&AGu38?RdSs?%FStjL&{P;pqOq zymG#vy@;ZJ;=IS38HHcJza@E&|HA#7;-fjD|7Aa4EiU&*+*S8GB%V1g3xe=zmw(pv zxS)Wle`WuDXFsa*H-7mCZssS0#GmeEeUx%(*ZG@d7#{gM@H_q^KiCz#=AVz+8-ILE z-)4X2SCjll`m2Z8zT6*2IGaE09|bt@w*S)L6_3h)!e@NY%ii4o-fSRz;YY;Ezh}X8 zZT(C0&Yyw>zQ12M(og!%_7(qn9-_;C=YIaafB5NHvWVxMztFAPdENqbOW*Kwm$ZK~ zzf%v2J+F)Tb^P+@&{oL_e(rbN$-jI54f!S7(7%)KLwt3B82mg>Asy51`rXH;!(%Vv z?)u}D|6L#InXhJF#<$sD4gQ+(Z?F#*_xg1H&EBSetq+Fh6()U^o_tBUIz+!lANv6} z|0I7O@q3`32CedM?0dvd;jwm%i>=~MaGHv6653UA;(--rj|@3uZ|@-==-yK1w57p<<~!w>Db96x@p+VjJv zKk8wR_5N`73A^ZLW9 zgV3`)nDSN5-{z-sL6_uhe(%%#tzQU|fB2`=HC*$Z0+&AYA3GrVRO`>U#Qv-Ip`oMX z>A+0x)}^-YR~EAF5R3hJex}3KA7=i>H9hlPft!77w@v$hAy0kAy=Qpe=hK7u+I<); zdAOs!56Jx)d#CZV{A2&pzrBB|??g}A`+ZGcn)Chqph~9Y9sGVkxx@4-Aj$vui*h;H zi*+4;5q=gh<_A0V9~A_*`MsRi^#1VE`w%N#qwk*o%fRjrNvr(iem>%nOK?5ku*XjW zg5ccGy*!F<*q6N+3@O@IzU=JhC*B2Df3m*o`^IK@Uhdgm_Gg`M@=)pbBKi7T|KUy7 z^Aa@Ve=+~9ymGhUEq~g2fc5;ee=^zcY>z)EXXtB>SU%-- zv3_ME;Zpo$UcuY_qS0^fes+=aiT=D`JN{n#i}Vpk*_87seM9$gJL#_+Njv)`b_Z~} zN8Wdd!GhDBj`+hSy3Kx*^Q-jb`Jg4*N1pD_w0#9^ZuP38aU~~?=``UkN6$%H~;uj zTkp5BwoTtYKTG@tPB_EQ_p^%|m*_#S`rhXCH(VsbN8jXk$@Bf~<`;VSdHzHO zIRAK@;R*TPjT8Op^{mmM>yLQ7&%+!9mqG=#JiuoG`Luk_c}wLh?l^+qVE@c!T5pS$-RTVm|TJb#JdMmj0?oh2Glpem;2N(4OBAg&0!r6#obE zvYttPu%7v-KIV^p)DwN;FY>GEL*zUEEI;;jb4x$sTl2})e(O{A`*~)JbNVViex78_ z2l-p<<%0N2@5h!x)zD75`j~ zKJIVu^@R%!KH}S*d?~ocM=_|j<dW`TFhoRc%P! zpBa9;5M1j}-$s_(AkmV1( z-_#85{G*Cg^1Qws{nPHRL0kK)#h?3=67SJoMBLdozy%9D^ZhA42nam$?@_-;{=u9( z|HH2QU*`)lH~G=(LDTna{|x$1{vP0MJ;VE~UQCaI;XkkM18@GW=X?8kz`^+<+R%6Z zl>WS*oeS?2obj%%;3uCZ|BU)<*GtgjpVIf3eDC?Nvp)y^!~XE4{JZ@4Yx4I1*B)W) zJvd*-{6PJJFIA6PK2?2?&71x@=DSQRxce)p<)8k%&Ru?Sw^#9dOFRbscIbbcenWmg zvVXE~q#yNv?7utzwDFJfx?2x+^!vR3e&6zYJ*f40xBry*)%t~cJw4y2%<1;z{(YIB zcplyV2zRwv5csd=Z#L)zB0uB5%(qv3Dzticr)U1I-lngdkI$$0xAFIQtKqrwoBQ92 zeekv4tj^Hr`2h|!_$F}uezdMTe=A!Hp5L=J%BH_qLATk^G?4#W;qi{!*)G*?QsRB; z?=RipBdzsst?zYh`j3RQ{=@6K^uC`CKl%MYE1aJ<3B6Dt!aeMdQLW1VSAHPU$`>5> zWwR*G%hn24;Pq^9x2)~`*`?dB}zYdDeeLNJ&7Ek~FD!x+!nE#Ra zihu}Fo8^_)GfhACGgJ@n{AugSIN?9@fTxtT3+*30|EZ^4vS0H2#QQhuvON1Q8mUco zkzew6tG}H0BF*YppZ+|5jjv8OkwjlQR2pRu8-k3T`pWjbIN#HV{DbHBO<$HL^*+$h zYr<;pp@a3)d4{b|n{;aX$(GN2dvP$!e{Q2%z|7d>hcE7*)MbGOJm~nT9y@yFKlNv4SNwbXLGW~#ck?6S z*LtDoaT%WgI@w4$wJE=fr>_pTLsRd_Kk}RY4u;^DW3B(It@Smr(Qs@ykHe9#u0NK4 zTdpsnYyYtta6xVTnf(Nxca8TSHve8U{^RX7o*pjw{il`>XXQh>kL_9bfn(`|Jj-Xb zqul?r{T*$h_ zk8lw$RcF+peR_VL=5yhf`8(pyXw&JL-cV21w)Z2V@3vlxMf$h)V--)i9C_T{TKhfi zyo=}W`QGl~-vj$gK~MeTxKZPwXQQHjspSORTKzbdI^Dii~KT%;PrlVhg|K9|0XZ~^Z9%3rb+&AJIxd? zT-Et8ouAKV0*^l4ug`=>@~`U+;fCX{sh(6iT0hNKcc0%<#NfyJYd-IedELHLKbqh( z{O$Z+gv~KN{h`IL>sS6T+`osi;qUV(`06VD)BAnmt;7d+&GYe1eK7w`e>`G;w99-8 z^`4V&$yeNWPJJo+*pE(qN&Zt`j=z7n&3C@zU-Cg3Cx7WroS{jg8^sk+%;$J^=r zqv4hp{`jZPV^;r^|157ez8|80#Q%2-rzBSXy}m{Nd;VVne;9uRwDELV=J)5cSSr6+ zjk$g*hUtGtjW-N_Y4`WbyxOFL<}Z4{&F$0a8@I(!aE1%(*X(Kg{f*zUWPeAv`cL+Z z`oN294&3h};%{BSuk}gMM;}G68UUD?_$Tls$XfQo&Zn%^Z+aU z-rL^^KHanMTm8&_tomT|t@rJA{p>uehLRWrxe}Qx?f4%d3f^rNWwD_q< zq@4|?|F`L#F4iySjiWxQLD6?VKOD2r+yAZq_5IZ^q*qCayjqVA^rO5{KRq%YdVVjN zYvQMxVts4=@_>JJxrd|QB_BGFoGieBZ_Uq8U=u>}K&lLVU=aGZ|NBb4P@ZUd={L=XD z@Gt#RU&s3Okbk%LUH^UFzk~f_eHin5(BA{B{p05aRsG8UjHmoLz{$M^&+iu@z4F!j zyW(E?nf<4Me&Vn2RD77*Uvz@K=hcEFvt@D4!e{cSp>QwfNJ`PMidVQtnybqV}oB!T< z-}-%gy}Oq9vYj&TUnqPPf35E#J@R+;7ed943&I0hU|G^Lv{0M*M@0dphUxU|?YQMbue=ooH6eLu&46tmChx5;s@nf>j)ur@r z^#u*YpY5vTU$Za!y<%Z|wf|z~OU2l>U%^)2pN{V#nHBK=rzE>?!GqOa#i zga20hbAA&I-}9fLpE(~2b@PwM7ke=JFn_i5zzJXOPghV-gX8eFf1Uj^99-JjpM>Z5 zX#b}8zfUjce8zw2z0q&){`p7t{aE^4|5Scq|Gxh=@JISNJIdcozvxf*@mFb6N;zNH z0PyZX@qgt7;^7Y%EW+pguP@mjD*YOL8$T@%^L!pH9p2-QcB(Lm?~?rq^&>kWU6aM<_~zrFJxzP3ce>pbwY^3l!ihj34S zL4OR~{SOw>XRS|iSo9C~wCO%xzXCFx^6LJnJ|O%(c)26^m7mHv;a@rM`w0KG|Kx0`Z1_^>Yibv`!uf7E}H z-}7(3f9Q$g=>OvLhaLaj$*2F7e)WF&LH{W~NBnM23eKeOV4u^){;l_Kbo#0%C?Ea5 zIs@{xjmPMpu|4JU;C}}6;{W1$g1Oax=lxFu{dT;tatv6}Z}EAB=4ffx`<+JnM}9Eb z+Bf=dv~P;X1O0W!Q26gZZ-YCU{qe_8f9L^4-=3#w_}*WCu>YX!D}Q)@R-<##ADu5U zC-QgC57zb9{{E-DQ}rSHTez>}Wq(%Yh5yp>^G<)&m$HAseyf*u_KzRYkM@~`{hj9l za9-)h{Z-OM*Bb9f_IZ9Ed|vParTC|R>wHA!^ASI-Z^C`$uUt}g3a;DTa<%?-YwL6K zWB%CmtNOwIs;CG|e^Jo(BH)p}a*ZgA-}ck>rRs$zG#Wjszv=mn zTA&Ed?H2Nn@+tXxv_I6nV~^gSHbN*@eSZx+q`~`XOuiuXb9Dclkr|!Rtzw`cVRqs@2U7K#B0nC zkDhD)OLU^2_AjKI!w0|9=~chS$XCVxruog}&sAUOV_p2E^(4T%{vvr&QTp=wqnfWp zKI9WU<_X>Q@%~HX=W_f@U+Jti^LPE;sVp%5^XusuNnPIMYRf=SltpeF|)SDxais_;dacc=QME_0{&gM)F#{J*nO*A)5bLz{)&bw%7F{9Mf*k zdt|+WJC365^zYW!HUA6U{Gp%j*A6$#ArW9V-CsT0Kk}3Q`ZRsV_K2^szm5OAKOp%7 z1Jk=dgu-p~6>n7_we@~pB|lxv_-}8|oVn%}z~}upE1dk;JsMyRlFEcjdn~?ysks^1tK@>rdFoJEq5ff=fNe zgM7+-zvXwYuaHAXf2nj?<0Ix=wr`<-Wq+~w=l*_MQ2M8SZunDcP&oFU`GI6}+t_dQ z5F&c~+ulb|_UL}E)!%;K19(=4f7vgc?jLWXqxgBaR{1Y|c>GMyhwzF1$M{DKyFAD` zy!@vE9r(`g>ynQU0ESSnyNH3(T``NdNc; zbIz2+_CAC!;^{_48mdS#ZTG=#fvkihPxS;6G@*9{oA%1Lul21+UOu zPf+J&)TiKG-?2U6YxLKY2r0a;=Vi>FQpfyUpOvk2Sm86D%XwAxmp84?VJ3wI&;B;w z6ui|J^(oWW{yQDA__JR)(yRIwzt_vWKOg-Xz3+#UyNds<`cvBE$IZYE+}yYFDP~Ro zc0SSMV?X|;6G}My6D3k?b5cp9I$FzejBfDH=UQtxy_!ZB53V*{LK_B{Az!Dj4wO`uY4NX zkQcpv&ob8*e~iC+NZ_?!q!G>emi>88U)?@1znl4~BnAJq%~$X8Y4RT|?)3T6cu2 z(2x2K@+4#HFAV@`>wY@&tK%oX$NbX{T=}E*&wGCj`U^Ms`~6>Qz`*09S7UBA>v%=vNpJ?2;XRDbOK;ne!W0B`!t^B=|YQM^9j z|E)Zy!LAug6@XY6xUTHHRTffH7>j#iYNXO%<^`gnE?fU8w z*KqE)2z`r}QlqQe+liXVqpC|CM8y){^ zL(lVD94vl34x4;{Cj1ZPufO#l*);1HcN)&^$izz)hacT_$}g#}CA#JDLMhEPT72KQ z|1|W`A9~+k)#4TZ+oPp#i%0MYM~hGKZ@>2(|E=#!ZT4VM*scCmFt}oG`LpV`<0lxM zG;rn%AE5_H_|{(rSO0l?WB(QFn|->UOw9(rqOgG=h~B@q9e=xxzo-6bbw01JE0XxJ z|G;?(yX72UsQr9=uKH5-cxOF4*=yxne$LO^S)YylM(_GD-!BB~)9k7I<9?ng|4Ll> z^W5U?w)!K^GfVMf{W#T2CEHGaH$C(17ufF5`?+aV|9;W)F8LT=@wNep58+;D zaORz<1uyGQK}87Fiw!mHp-iz3Len#y+MSZTvKxeC2%15ek0o->9I8pZ6nR zsK50e)kX6c|804y|E^B?j`Eav7fzlxxW`v=Hy&*F*7y+|!sqk477yxcD?b!&6&&fuaogk%1-t8C`PTH4|H>Vvr|I?`oKhnO z;{WnQzF2zcyWY@yuW#Ao{xs+-U3A%>wr^~Y`bv24cYhDH42=EBXZ@}Jh%WwwfWX4YSG)xz)l+k7E<=f~)Oa}QkpiZ=?M4hA=Cp#MK9!qLS4Pq=se z-Sky{<9;WE=}$9$Mz3&X_|os)`Vv0pyFSls{LbQ62_`t({gSWnN1sLUR`pDqpC_C3 z^K2pT7x=-a`%6rJoMGnqRHoVNHafYU+L@ny~08E$X|%> z^pvNm|Cf5!hw#fjc{uA627JkG^AXh1`nL0{_j_u3Tk+F;d6m!OROPSj{)VvAhj=~; zex{B*-5*nz^hX}_*3feb@Rz7p@>s9!Ls zkDC8UpK3E8gX%9#-_{?EzUzOd&wwv?Z|xcRXT@#)L=??L5PuyNAL0uG!=H4&z^MPj zc=i0ey(C@|V1BFzWL|G;zsIeuzWSotnIA(??RI~zih$y&`{9bA+qr*o@OLt(!_^I$j{(ijrdW7ZTydE+4+OPBdax8dTeD!;3z~w;8^ZUH{ zix9f48StilaC`~A;#={{d|qEf-|TP7oMtcdzS3p_V)GjR{`)N@zvo-|-}dh68+jZ^ z!rcM3zAYY&zx9s-hMPb6So;q*cJNH!@OSfniVwjoe=fe?PYD`**e`?MgLot$)+hA| z{VU#!&Z{&bEB~?K5$(7B8TC>8T0Xl!n?d-it!TA)xgHMw0-?deC(a#EA90WT>b;S`-A(lu@~N@59{|9 zKksJ|zeDv#>&xS^N6;k~1>FV_}yI;|t?XTwF*q8Z)JrsWP`%%PP z0tNT`W5n4Ku{ZTn;K=Lxq>VoEe}~gt#`qLC{7InEU**1vm+R48{};Y4>8JUh8`UO# zH6QfH`on*Mv$rN0g7b3?s>i<67Co@;A6{3Den~LP%kPEW`)902j&}6R{(~sfZu9?^ zAKH&>yOq`_!@FHzeaIhhHQZa@>&x3)P6MJp`=8q1y4PonmxS>VKhP(8HP-1PIQvx^ z?|fOl{4uu6!GbHk6WsaP>?hyd8`B@?j+(#dO8!s~w7aOB7C#=pPyT=q{*kZ0^&c(A zR|%;$x0`AF;;({d{=eF*`J-BL5?H$5x&C&Wmh_iJ?teGVFRd<6;k$g>-uMS|%Rhl9 zT_hmqbA;<`;TSD?+CIOy^FN^8=Dkr|>Q}R(q@?~!1YyPq6PYeA?cnvNGxR|1nzGwgQLfdWPX_qX{NLWV zANjt2%NW&E!TGst#Y30d3pcRodtLrl{x)|a%J-C;X*>^h=?{LHXME5ze&SQnW3SrE zfVB6{GsRFjAbHH!_|pojP4}*RD1Eg5@8|@day->1@e+#YDaWmTxQ)8v2ZW~N@q-k~ zUHzx_^|+J20Hvbf++GO1{>uNi`rO;_x3LBH{z3e0s>Sl}>C?NykM0cpDv#Ga(7!D% z@|ke$@V5kU&3+2Tmwb*V%73LV{8hUfoa2Vc9wH~O<*}Vhd{=$h&KG{?ul3vSULT9M zRMaK^SAEVq`#Db6(pUDPj|rr;_jfk>e<)rN-{p_|3*6z#e_fL2`dDA6ZT~x)1NZoz z<)`r%{0DiD$KLqw@>KlW`?s4s`DgUM>VJcKKX1@y#7BCU|DpWZ@Rz-)-~FxUDb@Fy ze4S5C{0)sir2jY`hr0YJ_@IB0zwiHn|7h<+ebYV6U;Cw#{=Z{=@Lu;n#}PVT^`-pL z`s$JW6WrY5KiJ{lH6H8!Ka;&1eP9Q_T+&bNa>q9RyFKsZd(W5MdOG%pNB!kX z;XhV?jaFQ?e^GoAG52=@*4f8DhqN=l!d++Kae4f~fto+2$@ebDY8D)Pt?$wVu5_&a zk@1T0o9Tcq&o5pXK!cz05&SmZTVK>wKI_W-4gS$5;~)AQ4K+gI8-amSUK_l|Yp;(@ zB0daP0hDj1c&d%sUP%8zy}UrIkV z9i$K8dyRgvN6+t$_QijhHR8W(P2XZa{*HA8mwk9!5e$ERPg@tV)TY0 zg$c4?oZ|K&hI3CNk`)|-jI(*4?Xc9{p=v|f1^J^jq=e4|3L4(3de)pAJuEE zD6H>|4Q$A)lIYI|_8Ved%lD(W#b@~A0RJ54S^nY3^Kc+E`>*I5&*lF$f8V_yMdA^J zIoy96@7O=uALDynYHNJrUlJzcF$=`AflYtpc{)+~@N^{~xWZBVVTksv&F%a2&oUSO zPv`dhJmP5M{zKebH$GW8@lbr_pOJp! zzoX#38#?yAKF5Dbn9#Fd1Rq^$yMLzXw#Vn$za5|L!pHs@^&9Pb1Rwps(eESnL(Ua@ z7hZ6PnLR)4U$VEw_i4vJz^tMCQ}5@$xBs#JBmJ14NQnRY{cYM2<2%Zgp8vNAYNHNRhYz~-K{0)8V2hM!c3|;S7&$M`0U*fS8f#J}%`!DQI=nsJ>KY^b$f9Eos z_hW1RnI>{hlJ9o(gFo|E!P7=Q>j__-KiOViP!F5{YN8&9G@mB=$hW@mXa3{M_CT-v z)a5q%l>M-SAM#7T#2fl!=xhDS3m8nz|CRi5XwFZupZ5j%GXIT#jSqk7r>^J^y!4Mg zz_niC3P0eCPq`#-wLkj7?pX0#`49eW0T(^`mHf!Fer6we@Yne-SK@(xsK>eP#Jd`Cake_iIcD86+SKdrX}wtNz% z&7X}A`?f!4IPorhBj5gtKa3B&&ePZUPyR^&jSv02-Zj7I13!(IR#19kPt(8aXDHg; z`zQX#Kh?iMPkifr0^yH2RWHPV`8548{cp|h5Bjso=e$zaD!=TvzUp6NJ|;fVhxknK zio4=Z#SFCk@$@X|l+$W|a+?WZ>9>3p?UE0;$NrS<@n4>Q(vXpMd;fOx zSKYtN7!mlv;~(hNo}Y)7JcfYcm-PkiDSWLjbA?~!^8m+Zh0ps8xxlTq_ctsc^h?W+ zk{5m&G6K(hgm(Fd`#HpqfCcXRIr*aL%M3(U&4&q}@!4Z5`n)fCY)|$L_Dt~Z|Ga-g zKe!uxzOsDHAxeL@$N02-BRy)q)#97}BHGX=zOp#&+d1|%`xpBcdCfo0pUFR-F=%`# ze~)dL7XO>w*Zp7T{UmYVi{VH;Y z>Y~SAO8v&q?=u!<;ro6-?Cw}R8#r}dJYt(qHn)(b5@L|6HykR{)Ee=FhO ztHke>4P4Rd3cdDAq)za;{gZm5FM`kQgqjcd3*j@}cRnv(U%(^qwq9!ZzF)~01t*_jR{r32xE+7U z+p$mgKNPy<>-?zXRsUB1$fxnAJM{e@?~i#mGxdY*%op+2C49mK|7@76O?vrxdc{m_ zZZ`zq9!kC))j#tQT=hxPZ4Pb1<@GYwN8jt^9BHe(A}{{fUkoFUdcaf$3k?72tLNtt zKJpv&mu#hg^*eh$cJF^zll0F6^#JS+ul+NN6utK^H~3nB#~X<^?ofSL>k|wOY5B_= zNTrXr0N{7wg{$w_6aO+mRXE+IKfF}C{F(T`!|_MFp1UU(cs@ne&FU0zngro zdxB;EGcPa*IBmkM{?qqsblxJ#!m+=}2-$n*e<0FOaJ^rfTIvi{`$&Q+p7hYNU-P>) z|9SkM^S1;@_+RO~q%QL#e`UTjR-4C{YCPKHn;jJW2p_-qq$};Ww>S6at^bT(`l=p1 zYSY==!zBNi4(8&6%4+-m$S|<|$Y(yh+Nb-;qDl0<&?9NvLen#W#$CPr!U7?fWgqxe ze$8L&E7_(?^lwbK$F}^{;JLpo0xgdP4w`p*?T4#(cYOFM)~&7c1o^JDc|1$?-(QFy z>4d(y)JDA;AEF;%+N1}U@sG48`71x)|D$v({KGdp{4^OYxS#)=_^tZ-eylP;@^gPt z47NTm*sJ+P@q1R==^A}`-Q;X<*vB5*x6&`riqu9Q*&H{t<0b^A6QLUBAE5_!sM4KWQJ!{)~sf6be#I%2)Dl?pY)piH`-I# zY5wxx6u-g$kKz;Y$v@=R{@xnjf?FQow*TUIN#Buw@Iw#$n0V5?@HhE)c&Batz^D6x zCjO)U!qECG=u^FU^}ogoK9bMvIKuFDS zWY6WOK{Vm>&AJZTDpIR$_$X5C2w{!m9;YYzuUH!S{|4o0uTJQGx z-Ew-K?_b=LU;6v^r$w)HL@}PXc&gFF_R&Ai6%WJd@AM}EphW}toL9B}YB>3Mh<$-G zzdx3Jq33|Q;N}nfT>c6D3O9e#$9~5T^Pka{`DEg|_xl$bf7OQ)pZ5E=u@Cz8`xxer z`_TW##b=j(#@>BcI9Zr5U{Tn>~1x5J8*Y`Uq2BCkd z`xmzS#V`IjaD!>$A9~^+dbzX7$2O&~`2&|a%*m4v*JsZ2Qo#h*{F#59VQMSEB+cZs z@&7^D*W#u7No6lr$xFToL-e{I(R`$?_|g5vtm(si?kYthfb|PM@F3}7DDfWet%2yZ z{;c?w|1az}DPmiBrLN>@ImG-l9R_~dUlDS}i~Wn%KHZJPhwmVJ&d`W&oF z$zLL0{LK%r`Q6EXq@TD~{5bxWeqtB>@_sm4#b5D~u1!73|)_zTIKa=l>_YRKpg$Gm{uG)2e(e0N!b)ROB`qQNEM&8Z&rs5iZusf>y z*5xmppQU^S&hRh&EyDV+Awa9=e|w*0^S}DfXrHWUHgMkOda8hkAN%!gw|uYnQFeLM zXXLH^^7Aq%-2AEjFv*j;WuJdvPS%yY>s9q-g;-ZTw?`JN?BV_OADXHha%ddc|z|qtAQnFt;_|vUWvpf8E!2 z>yHh_Ki}YI>zaR#Qio6EYyBO9;4{IC=J|g;9|U>Nx4gekoVV~y2qRDN`LFKXY_@){u6!PKcg+8(7*b8 zSNev2Y5Qe`@B6QqPl93kSH=q~xXmB*b%2yF^1rxO{xIMey~%6#bodhZOdtKY0RVXl zK;%<^#a|}JAHH9SR{4YHzpP)w*Z7q$;=kK9_s2nO`rF}be&B?k;wJ~wl)rB0gW7P9 ze{_E^$|z$E*Z9R3+Ou(c(eLHyuYx-t_!}X`kNAjP!8IQ(+`yR+$QRuo`n@Rmzxcn( zpRzvdYi`$i6}egP|9YQDIHSJWVi$1qbAAhQ2Orvx_+fq1=j!+oix!XEZ`9*)b36nu z|LA@ci=%;OyDFx%R1kni3oy; z5*5!03L19wg~J9AHFnmW3=s=KPY zdUsuMSGQ4DLD^mL*j?5Y_xJtR|LytBGgaL^MEqEpcmB`seeUOd-uM5n>Y5H8SY+zC zeSN(r|NOsG6)i`)zh(WS&r|eyD*By%;PX7K4FP0){(UB9d0}6-XFcy-JHPbn-}t;} zQeNrYk;zH~`Rx5V$>dnaW&VBBj=zE$>@WDVLk^L@U2hONr(s85A3v!+*ZOVp`74*# z?I1hfQ+x_9d%jBcGJY0a$DY!;L#mVYQam@*E3=i`S9tooO|{l1Hd+1;7v4_uiJj$l z@9kaebrvw=KdgFC&J>@1eRJpgXEK64ZEwDBJZZ1HQ}jvV8RbB3VMn@FU7U@1G2-f4V&HT$9h9XQ_U!pJQMre(9?} zCo#|C@;xa}y_Lx%zw>-_O`e~Z=i;4sc%E0fyompH1*l?7+T(sXZTy*bp0DDgc*&mL zE@^*fE82-)ANY%%1(?-K_iM>d`g>UZw9=FM+3y?5-u-v%zg-(t`A^EVC){-ZNIzdn{lfR%GKtKd!pS}lOZlk0+4oskV&d1&H|cl1 zI`-6Fg^oH6nEkx!_I$ZI^_6}eZpPR7_42&@8DBpytb#SNOWuN`aE88!U&puzI2Z&$%muK8O9)+jxvog~;ewI7eqbX&mYO|=Sna6>wF*khVQ%UQ0~NcOO{_cpVba}e(xCU@H@Xx zTP>5v`*0So!p-x`o|nZ;`F5U1Xt9od_Iz{g{lO#o|36X%?C^E|^STk|`gc46d-8cE z{r@lX{#E@89qrto4j|48g_G&)>www)j0yZ@pAU*Z8DHn~1JcR(d>%tA`Y*$}-DUn| zF2m|4aCRhR@$-Dh+U0ycPnk}i^DFt!J}=T*(UaKI&r>pe-7<3jg^vF`ezp4z{_=1$ zdEKvXh&Ky1x0gO&O6!%~59B+=)A{^J7IXOrAG$Y-C&}M&N9XfP6o|K5y<$9_pVoBb z_2Zf>{;Bk-HLt9`syEe2@#*%N-~T&&-TsLWcBfuCP*l5Yhoi6W*TT`Y(nML#N%j=#?LYp=y4Hu{tC>EnCi znUudnHwbB7~KXS|MvZu2!mw)8#+3%~Itk)x| z7q`2~dg~XkQ7*kb$@KO6N>#t??Pl&z_OipM!@orVYqci(S&uime{^o3#HZiqsr8Zn z++IO9NbZlRziz)>{go>qe~W%T#NJ5pyj-7el7GVde4$HxSw*vY^+*xt>4`rV(cN})~r{`zdxxM?k+Ph|7--n?838xcJ)}Ng_68`jYs^Srm^Et#g~^i^UwGDIDZmf z#}E5!Qa-QWBtQSW5AkgO$X)*ZD@Ca&6b`?i26o2Rc6)mU^ZTRfaR*%XH1aA>dj81n zcM7lbej=Aw`ge4)Q&N(bKYd>r{m%Vc{<8N67|imQd=@-Kki62<`+-b8i|1j*)5)$A zzwF=ed?{64nZ5gDuTz~)yed!U_xa@c-HyG^E3>bBZv1_1odRU`RF6A4tI_eVeD(dE z?3L*&-W&AucF*|KyAxhVU-=}Q*%!|9@9?oF>)AJ)vU=+aPO4pIGQ&D=lxlY1W%%B& zhCjLfozK@)3pvgB{QGMuP@@j!{m~8QWo97bv!6TS9r^6@9I2}&8ULZoA0i#BpI?Z| z-oj-3+lV*%yLMhYlG~q*N9POqkwB)e2G8P4{@%{>W@krq__{w%>o4Y~<2%KBug-T> zbJAb-|4+K1o*_SNu%!PG`UIQD%kv8$)mLB8fjepc7V^m?I{ESQeAX}7OP?Pm%<~tk zm1F($q#N!>88`Q*uM6BLAN8^3^5Om_URDt5tAD@WxnJe-xA6SP`Iq#CIc`#ZJfCIF zMvl_gzYpR()t?UL`?p#1^Ke?%KnruCvLus8CroyYvXT&>4sykDNZYx$}j@HZKM5Br4IiBAXYjq%-J?;lzI z+WqAb?k{1zvS3pDIzaQs|16(-SwCA(ZEvk#wj3E>+kaYql#e*S-DURFemC6DW54`k z%d-!7WmnZ_THF!ORzB;lj(xSS_Fu;UdfE;*=x3WXkLM2YbM?%hwk!KBd!euG z$bOr|TD}|Qjel+bqY(2aEzTbg&(s_|7C{Dk;k@ekv~$_Yw~eeSNJc~AU@>D2YGz_kp3FYX=IqYMHg}2I1s@Il)UoK31^c()hG(6sY z!QQcezfJP*%yrS<)5SjdrG7jc^iK#=5BSvMXwXOAhZEa9e++T9?us7eoFEc&9RrT$JugOgM7d*5}*Erk5A46xBrQN>0giU zcctU@zK9KtRG_K^QW@$c4^eCfGA514*){)3WvjmhJe^A~;SM>U-PeZt&tIqUKF z0S)KhE_{y$`QV@Xh2uK|{($1~dj7Te^b7SupYzi({q-izv3~H0ADiS)yx%E4@v+v# z_Yn<`?|+NW{Rck!g4upd7#r-*gzpHL{XsnNk=>)=&tsLq|5fqb|8E7nAYi^V;Pqb- z_=B>)Uvt!#{JvKBqd8_x_!_6xVwF)YA2LO5mxS zkNwMm&;5Y+qv*o_K4IVgJl`aL@P9GK_`^SX?w{v%ujfHw_x~$FpS5s(&Rf?%8T9`u z@Gk^@RrWl8o|k;RTY+B+eBN)Re97-8G}tfX%X)IZaQkIpsbu_@={lj|{MQP9g9iHa z--k4)FLh%)CT04A^`ySo!yo4{{@$VS77fm8_?z?i{Jf@qY5z7vyZ-kIFVH|9eV(u3 zr}O`?>~Wr>PkfwL#1AHao_|j0s!J9lz3B1(u(0RX7IyzXklV*U_VuY<#!vNpL*W03 z_?I=1rzY>yz+RHC=klCy*!%gw=l!bZ^C@BPzrU0`^+@%6g=p`;{}cF9&prXTSOW{Ayvh_n9Dnm+a9mFVbNB?$q%7sLd-i z;L~593;Mq+e7Etx5cq3_SLM3Y<0pkr>54CE^ipAu?@OBVdh>kfd}#QoKff#R$=CHc zpIrZ61pU_qKE31i-x&CB3;eeQK5Omz?+W}s5Fa0DKRpuooWJ*rPkz*hp4q06`sroj zvp(ok&z}qWUljI!`i|Tl`q*Q=eSLo+=yUdQ54u$Y-@hFAPioHh*HeMd{&4*{f&YZC zpI_|9SsKJfe|=nh@86|C|E-eo^W)XxQ?HaC{pRcaka)fxuMP672lb%d)N@F5BxFlITMj(&_BeFK7)F>|Nj!? z`Fz;pr5`+=*9E*j$a6lg&V5m@9fAKX!nfso&Rd>;Jiqh84``&`{#D8APgZ;6tAW2r zOzMpc`4)1V&eL6*bNlZX_VwcP3~-Xi&IdK<7wmmj6JF1!g^?jQ;(3FH*N1v|ec@3L zn5qAH- zCmruUp8uTB^M?LpwWnSuH9VhB3VVFq&pf{WCjJ2p){mO+)R>ji#QUd`r^fUP>&yL! zGa>cQ1<~$rrLa^oTkOGQ8s7hJG(P)(UEm)Po~1!7`2UoK+utJW_PJNO{d2;zG?G5g z0v_+rO4;lGZQ}DhL~e}NX;6<_HL$_+G4*?)2K>)!JfM-z(=P_h`F5v9@=v~w8^Zp4 z@*e`eFUZdk_VrsFa9!Bz!}HZ?4c3Rj`wjQ^y~3XF5#{%|=7^X4KBD3E;{DY9nxh`% z+}3b^74fNOy8r)Q(VEI+>BrA%xc}D+yZ^rxzN|t25$`!EKdx(v=P!i4|CS415}$aG zzpCN+t`GcAi|_HiP<;2dJ;<}4J^#NH_V~FUyZ>VWUlu+k9pWcG?oTd%CE!|+|5{;> zkMoN4r@pMuZwmYV|BU85zd`ZcANS^uY7h(h>1|5gp}pLYiQ?ZTe# zs{(Gxp4aDh0%pIH--|Tx_cjgsE8!1{Pki(%@vaiC=t@11e^l7l>-%z?@_kLfKNv9m z>-M-GxjpWu-XGr_@CL=;_5MZiJzm~FgNcXuw+DHiZ@vGC-`D%Agx@R~^5uN~2@S8$ zABgYu{Z3(zcPN*qR*c^l-}{k!ldm7=jqh*HTkluyhs1|1)@ZMW=l=rnU7q`k^Vx6C z$CvYO5B!qwQ*-`~D~fd?1(SJR!ax*QjdHuhfWsbVVNN<+9}em@xXfWaA-Sy;PY9>oX3ve zC>f8B_n*{5Pnh=$zCLde zW`F6D<@3wBy8Vv_%-QDrrvqkxkw0rgj{h;>9~Gv4#Dfga4<7#y1kCfT*NgS__zSY( z{fzA~4SGSMeG?j<|A#f{{msuOz{HCD&ugGh?HKbkJYSwa+&}jpkM9qJSwC!Hb8*n; z{^tgu&eVwqcKhIZ=KQDb>Po6&ZUE z@A`M-IO)Gh82wxF!TGyDG_`)Q#uZ^-&p*?g=YLk%>$@!YXZ@UC7WVc0PRWDWpTz$$ z4c~8^H;&f^`}C);=NIyLIg9C;^^q^^@xMIxpXxUtzQ;>!jwPPeH`)JFO;j{T{g`9F zp#!Fd-<#WqM}9BSpq|hS?q{$uZBq z*#A}ykB?`0$MiGLv-o07z9;bS3ivev|Ew_n@rC~50pBXaUeDhX_IlKE`E-80UfARN zk$~w3fB*l%fPX3APX_#yF!jVA+(M)`PG`^ zJb=Ga0}Rdhyv6|ydI9`b8XgbNqsYHl13vr3`CEkD-XF=|D$UXF$PZ~O(7--6=tqzD z4Z`@Rp2*)D@DB^S{QZGn=)!mT2SfgM3*(Re$KOL5?*Bc)uD?&%^ZVC<&-1M7|4i`r zp&+^7BKI>sVVEjn*B(Q=_l~(gn1@reON#G z*Vps^3V)Xd{FiDhmppu3GWj&O#gOWJ)TE{{Nn+?BFOW+;_=@Z_;&@&^PSi8V*&I1i_;q9#`tmZJ>S=9 z&f{&0|G4I;EA@IR*!$hU|E%z-Tps(pAMyS0gyy`TX9s(W17^QJp4-DepKp3UuL|<- zk&LhJcL(|9;yebU#TELSj}Z+QLq{P+W! zCqC+dACGUd_#Qv+*Svo?KRo`Y1O8@V?5FrwNT2?|7cqWo@XvYe{r5Y<hVeqkMDkAmwzbWMZ%u%H{|y4hrRC+#$KxD-J;$8 zYXX0j_->E$(e-~c;CBVQLi)bmOT;G!;^BN9*I2DV{TX{T-mC$ie#gJxk2VL)=X(b< zm+ohLUW9$t1N(oa0UwNgv9tHsFU#>?XaXO|!Y^nLPwKU!qCK9wgkP&cZxG)P1kCx2 zfB4wkt>N*1Oqh7c4}VVuJUd{1zJq^cv9~zz#m?eQ@so?&KO*e@-z4nuZwm7Cudl~v z13n|{_CBNlkbjW|F$5Z17dy)*)#s;$S?{#Iuato2`_BUYh_L%R80^zW=qLLp1HUeP zuQz<}r;Wn5Yp`~l&ws43K!fv&7%ymey?!Oc!}A65x@7Wi7J>bA9`f@S?k8WZfqgz7 zreEk+eDXZznDf=od+tXb|EB}y{)m108~eoT`Mp~B0S)#c`EbAWdc8^de!u6ubpPnR zQ-gTXf2D@&^M0HA5%q`9&qI7Y-x2J8L^AMSq(S~?#eYQCWdCl_ZvSCn;wLxke?szJ zFY?n=W{Wj(l`@Asz;S=Md8t#whU*e&T z$b3-4^I0N1O9R{RzeV!CpZGjYf3o^upXZ}D>q@<;*)M9q$3BDSG3W0Q_UE(D2zx(q zKl!KzYe5XJ6~C%0{X`G%5^n0set02RgL{UiGrTuo&R3VG9>{*Z2Jt~BOkCfPWAXvN zUBmB>oTt>2ej&ck348q9?>zo51paE_`z1p@)Qk6v><{w6=bhqvz3ZCu_5XhHy`TPE z`~@256Az#7QEzNBzE*fO*L>{M)z6nNitq6YX8%5u{LufD2JsOuHt_H9@$;lhnrFQj zAJXuCs|kBO4hcV?L2nW7$2ENaaXxv!@bhZ-R~GjD`E=0#ePM}Yy-$DsD*-=Geo1p4 zAOGHj{D_^Lj|qE!QY-39{>1yzoKG#V|AJgUtsm#D$4hT|{`Uob_DhjCjK5U_BQzi{ z<|I3bX?}+D2{>VR1eq}UETH2kAMK-)c4LBGUxjV?EM^Z>{s}{Uc@?`J#V7-1(-s?j=Q(^o?zSj%=h>0QjN8j^@=l#&F9+7`D z7=JF0Z_l4to!`yB%SZl9>hJZ!-#;X#er}KW97Ct`Mr6iw{>{b{{h?0{()xD8%q2eh zj-j7VJk#mNc;otmpO61&|7PQf{S)oQev9^zkLx>CKS%xP>_6Z5y4m-5iQnTTKHqQn z_x0&kALqyXrqhr1u;upRev0#19dB03&kM;BY8}q}T^RXY}nTn4+e?Nk*KVNmr z2OaO9SdX~g&L=+C?`D5GedlA#?GwNAr?VgR!BfT8ZNIwz>Gb3JU@z*&^>cpIkNJUb zMnC3{uKUBD_XGaDf202xU(BzYysuZ3CqCy-r;mSMKd|Q$V@cziv($;WtOeY}3%>fwCy zi+C#g*o*PHKJmu-M|ro8Y|PjB(H`+mSHH;j_}D*=yREPDu@&Qw>l^Fu@y{f`DDU-y zb{y*go=TtmrsAVNU4OcMl$Uz;gDdZ6|9lI1zkh=H%){kly^(Q#v={5`>m$|c))!kI zKm2IlG5i>h*B`$7L)ZEG-!lKb^QrC4@V^xF@#p%}@sV|T;_-aq{b4#j@^QVU>VJI4 zdb|HvFNt4QPq4?2yz9sOh|l@m?0Y=$<9QQt`hmPevtEh)=lzV#RQ~Z7>*x8Q@BK1e z{IQ?FaX)xG@Tary^7!|93Eq%jRtnbb8qyMNM{ZCil zsrcQ_XZIiZVE0cwU7p;XFL>ShgS|fJ$M|ADMS1s!zOO&B&hNHAUA~*X`|EZ-IiK^; z*QeY5a6bNAe>(d!iQn_Zw%3ofaDUJ|gLpstc?#cgd|rtd`*HmoM|teWcpb<3ARpJu z?IZ8`g1z4Ocl}t8=nu@8sy!Gw|Ze8AXnzUxQ-*z^1WVhy(7lI*9Xi<_2?F# z+lTM{NPLkWakL-#o)5Av->n`~@w@4Jyzrwx$Iw&NC&m-~fqlJ@cY9GEj83XQ*zZr> zusf!nD-pcj)g0d#w3qNAFAM1g_U&Ov)f4V<(BaZR<`XEbAX@625=R>=GtY5c$ zJbq}mFL<53XdinnAMGRW&!@!i`9>`E4eR6aVc+$;Vb4F>$ClSC#tWWGAHF|73toru z=Y0CxF}@uOUWc*IJuIy+_B{WH#l9||$e#|Q@Ae}`f2w+r4>B{27hm!H#?4~)M}Iqh zzV_pOqPM-jXM+DB&^9w1(qhwtYj*!vCa_M(6IQ>|Awd*1KU#f!ez zyBqfWX2Os1F@Iu8{W}wTv0l-Bj6eFDO1@jYqx^Juy7(gBF}>^S4|adV=lR9;?8f*0 zi+pTFdyb)}@(UYDQKYY)(o4l{*O!zKO|5Kx0`ytk^ z8+Lo}<9R_$$v%9~ubaF-Kd@HOUaW`jH+)6=9$%~v{-geM@w$KX-F~agY{T})5ANh!hA?>eto+Iz;0p^(}$%FlV4fg(v@qpcb#OOP}8;s1%zv<$O`o6ySiuw^x6(9Q1evIF7 z>?iVbf8go-IUjlUbXs5RGnX(la|siR_iMz+$9Oz`_)}qck?-d%Jg*n_d_B7PkMTx* z$JmeYyM6e6Ug2*#`+P>xtA1kL;4kJsU3`%r_5Hkp=koY>KKVGGwU71pe7IkFedsN( zpWt=%LEi22{U)~``NZS(CjOY8`$IqSr|Ng?d;f!79(#NymDUeg$AZ`8gTBWT;|It1 zTt4O(^I<(aKJZlf(I57s{&f92m3{nAwLabAb9=<+{Q!=9?@!`)f7o|@_)$OR=lb~b zen#K>ImXw`zT1P(Nd3}HKi1#ljrP5Mx2zJHb>}O;`+HvX>hJx&yT1RQ{qwtD^V)k} z_XDs0!GG~XKl~$ac;lPi{FZ<_haw)@%tZm=evI5-9P!@L+|-l4?ptW zpZe)Xf97BR?E8N1{f|BVfe(J@=Rf=l|K^Eb{K&t3@}s}>%OCrdfA^~&|HQBT`cuF0 z$>02~-+sE(Uz%N-Q<__vSDIg1P+C}8R9akGQd(MirnIcIytJaUvb3tSy0oUWwzRIa zzO<;vDjhBzDIF~xD;+PL zD4i^wDxEGpTRKxZTRK-dU%F7bSh`fYTzal_rF6C2U!Gl_Q=VI%SDs&9P+nMGR9;+O zQeIkqro61Yyu6~kvb?Iiy1b^mw!E&qzPzElvAn6gxxA&kwY;soy}YAbEblDuD(^1u zDeo=sEAKBKC?6~zDjzN%DIYB#D<3bPD4#5!DxWStTRu}hTRvAlU%pVjSiV%gTz;;6 zrF^y0UzuH*Q<+usvNEysT{2ws~oSKsGO{v zs+_JoTRBrXTRB%bU%61ZSh-ZWTzRf?rE;~}U!7f@Q=MC#SDjy7P+eGER9#$MQe9eo zrn;=Uyt<;gvbw6ey1J&iwz{smzPh2hvAU_cxw@sgwYsgky}F}XtnRGts_w4tsqU@r ztM0EJs2;2ysvfQ$sUEE!s~)eOsGh8zs-CVsTRl@fTRm4jU%gPhSiMxeTz#&3rFwO+ ze{lBToWZ$+^9JV+E*M-mxM*A`0Q&kUX&JU4iL@WSB5!Apae2cH|fGI+JtUz=TXREf`ujv}kDY(2}90L(dE?8(KcJVrb>is-e|GYlhYits7cD zv|(uD(59iyLtBQn4s9FSKD1+~IJ9$U*U;{vJwtnk_6_YHIxuu_=+MyNp(8^_hmH*$ zA38B~a_H31>7i$b&J3L$IyZEF=)%y&p-V%Thn^d{GIX`xU!Pr{Q=eO(SD#;BP+wSI zR9{?QQeRqsroODcyuPBovc9Umy1u5qw!W^uzP_QpvA(IkxxS^owZ5&sy}qMftnaMv zs_(Avsqd}ttM9KLs2{8!svoW&sUNK$s~@kQsGqE#s-LbuTR&4jTR&GnU%yblSie-i zTz{^9rGB;1-aSFBo1pyl8mw z@RH%B!_N#a8(u!VVtD27s^QhcYlhbjuNz)JykU6b@TTF-!&`>84sRRYKD=YNIJ|Rs z*YNJ)J;Qs4_YLnKJ}`W6_|Wj-;UmLGhmQ>(A3iaBa`@En>EUOG&kUa(J~w=R_`>kT z;Y-7pho2k1GJJKUe`NN^oRPUB^G4>6EErihvS?)S$dZwzBhQR18(BWGVr1pWs*%+r zYev?NtQ%QBvSDQ7$fl9aBU?tcj%*v*KC)w^II?qO*U0XXJtKQZ_KoZxIWTf?5*qg&WxNLIX7~CCCYVL0CY3^k8(luSVsz!`s?pV>Yev_Ot{YuHx?yzV=%&%lqgzI|j&2*> zKDuMHIJ$Fm*XZuiJ)?U^_l@o!JurH3^w8+x(IcZrM~{sjA3ZU8a`e>b>CtCL&y1cO zJvVxO^up-H(MzM3N1q$LGJ18ae{A;HoUyrM^Ty_nEf`xkwrFhe*pjiOW6z8&8(TiM zVr=Eus9J?W&WxQMJ2!TI?84Z^u}fo@$DSLzGIq7y z-=5u`)1KR&*Ph>A&|cVH)Lz_P(q7trroF7ayuG5mvc0Oky1k~ow!N;szP+KnvAwCi zxxJ;mwY{yqy}hGdZ0~IEYVU6EY42_CYwvF#Xdi4JY9DSNX&-GLYaef)XrFAKYM*XD z+dk7i+dkJm-@eek*uK=h+%FZ^KE7kTIKFdy*ZA)7J>z@F z_l@r#KQMl9{LuK}@gw6$$B&I4A3wqGj^y<o17bfKJy!j8AO<+)u%-X>P(|=tUPz#%t*E11971PP>fLF5`3|x7nvx(d-Wd8a_42)>Kz$x6^0q z?z%po(N}NObvud1AHLG-L8H@rjA2r@aII(1CmvqN7YZUYJQvM${vS463mqBckQvCY zUk+VFH_x}19qeWUx!|i$uStF`=k@Ppv)4TKd113yFxy7=(oKHRpOF0ID_@sr6Z?G{ z1r2yy!NnXiM?Wy<^Hb6AGCf@Mk5t6+5B4C43or5@PoGaJkeCoy0>{!HkC$@h!qMVyHS7YqEIzidq>3c0N0Qy-#xGjyM9V25keb^A9<59Ic+`IVq= zvpRga_LX&~KXoO}0x@4@_S(GDU#VOs3fI>0`Q*a7^YS>e37hZbtJi#1XVnCoSzqOJ zFZr*;JTdeQWSLyo+xX(;`Tk?mUx|DN3fKCfn|*T5Y678Gl7TK3_`CD!FUU^b&puz! ze0rsM-@KE3emetXFe^sw`M=BXR66ob=VlT1i|J!taX`XQ4u z8PCh;ExUeMUdUb?y+a!K(d z-9E{keWKmYJr@5gqbDRcU7Rj6VDi1_ zUh=)>@t?zcD}GrC}OFZ&OgjK|Y0e)=)R13f9< zckQfWKKX)9cCM3G9!aK8bg~KEYu;rBB$wF^x;|et8K?Vg-f8zcU@|kAcl$2y_ER1D zWZUg`nkS5MHft_&uH>tFjw?>qg{T$ z=Di1c(Gw=`wA*po>)>?J>=b&?{Wjl=?xkBa-I>sC-{mLFPN4_wc@3CMFFU^0Zr^FQ z%!JJsjqWqrb$$M3>4MpGdcx*sLibC)FCW*@J2%;{7h)K<8*&+XJDYScGxQBbf0JjbJQQ1Voo#PZ}f!G zKHqH}`v>|myVzh9G^ShMZg$Wunr?qD+Un+ZdePWT@i<+ud8dmu@A6K&d@s6x8au2@ z7PI8A-P4ZcI}@3rY^8ji?x}0?{YJa4&!>Atw(i__2Kuu2r<3oK?Vd6{{1#>~kKL5- zgwa0lbkSt8`m4V12YSpW`Iv9PDx#pW_Ip^KJRUk|#M9e<{p3Ej*7Omtnwb04snyV1xJKfW1m z=VoYZWPbB&QCI9SH<4cxF2LiJdR64)nu;zKuJ!F?44R*$#h;`#@4Bh4($5gnXVEDJ z;u*;8Ct4=57j}51d9DoCbvnh5Org+`ok};w8EtwzZqt1wnLhbRxko!L?{xA@Zk}VB z$4;V=DHizq#@q)A*K$M#J%-Pxxj64KPEYi(Q?z+#UQ^k0zu267^;pvZ$s`?UUQ^lc zC7*nuTP$2}GuijrvcA0FrFo~}6$<=4^LUb-zQVQMfF97mHuQwisehO+q&+Cw=Zhv! z%-!s`-+>>{rbGy??t=cnbj3Q$qs%!uUKbf89rYupw)Tx()DWJ)Rq@^ zQk-CX@nRmjTg*uwUaB)XF7I@48auArC)t56@-Bm4Z1RG3dFE5h>55!I^SrX>szOHw zoO%G+L^D58xMs)gCmI>A;pDvZ9!otbI@PLA^kl6>PiWwi`ANT`UEXPzcRR!|ot+1J z$hge`i>H@gpLh9!*>{<4^Thg?) z^F^D7pJWov6`8(#{Ic11+GCh7n>P~=z6S84*QDPL%z7p#CuN8Ud1RrBISsxi)J+nZ z%tS7O{6J1;`jY1b-D@7*?4@h3d<#~elsh(&=LPL{Qk;DSF-`YDqi5yxRCZi9#g9#o TvnY&>6hovHLB2O%@c#b~+XCgX diff --git a/Subsurface_content/Subsurface_content/bin/Windows/Content/SpriteFont1.xnb b/Subsurface_content/Subsurface_content/bin/Windows/Content/SpriteFont1.xnb deleted file mode 100644 index 37d6342fc649ad21a244656aa7c57e5e8d3965bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79451 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 J4*S3Ez#r~J1la%p diff --git a/Subsurface_content/Subsurface_content/bin/Windows8/Content/SpriteFont1.xnb b/Subsurface_content/Subsurface_content/bin/Windows8/Content/SpriteFont1.xnb deleted file mode 100644 index 51c4abd741c4fb2fbfa74a827fdbf96670c6a7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20142 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 diff --git a/Subsurface_content/Subsurface_content/obj/PSM/DesignTimeResolveAssemblyReferences.cache b/Subsurface_content/Subsurface_content/obj/PSM/DesignTimeResolveAssemblyReferences.cache deleted file mode 100644 index f72fc26e02c5a279bc9cba1cbcb276ea095f796f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2709 zcmdT`-EQMV6m}9Pu~WAxDr$bRV(LINXFxR9O188X^lcP5_CVNBPB>!t(=T{A@iQl z$r-<(@qVw?2%5omP_O&V8flO`?)JgzO*#{)Xw*?eQJiH4ETqXO_ul0vyT!whdI}&& z`!SINMS3Ac*k%rdj^ZDu7GXl^3r_qt@e~)usXa!EM?)g0*hHl*?$Z;&$IPd~z!x3% zg6d$AES!^YM5U(Xa#}vWW~|!lFx7Q$1?Iyg{ja{<`3#LMl@PqCqsW8U#2$Vq6hOqS zy)HoN3lde@;1yZ<==sirkGrQdpn}F8tsF>6Bk(+x-I;T{ZJ1BL<>I1iA3r*qkH%Ye z4fUaeyDeB0t8OGcE<)C`{V?1_1W5?cVR;nyXIdBX;!4QwBd{b~h}a5=R7c!r0i(V} zF40Yn0gvU=A&q@N4PY(l5v8a|jM@;RSh0vsqp}{P@Nt=@XS12?di6Sv&Hw`E+f)0K z9UeVbG{!u|%)r0adim3@KmPLAG@xH96-<1f6YNHibs3CTHD#p<6gHyi*DN>@~R~UksT#i+_#wQuxJ=kbj7^^kq|wPO3B56@CHml zQ9ujgw3kMWduXEI}hO98$k6c$CAi>hDi&h5VV;(}Dvtnas<~%pLQR`<%v9 zFfS>+4pm>(pFX`!II5NFv)?eeJbQ+LO!#08It2^FlQgm4KukfMxeh`{?f>FK+&k}L zBueg#6U*~%LXVa^<htxYH8YaFH+$!af&F4Whe?!!{Q!9xK7aJ1(RN zkNdbC5Y-7`;_XyN!bghrSjg0*;I>23m*qs!e0`=^)H1oG6|-4mV;cJ@ismd8;(+x> zf*=8>2?Ir(b|(v9UvJfi%bB@k+NU?gGsVB)ffXBEt+>QJ*}?`y&qy=JEW^m$1o0jG z3vYoKBX#aMj?>z6RuHqZikO{Q_B%5wb{2@)K~6$_sNK0FW+z2~#BAPyz4brg(0)Dd zV(}Npc!;^KX6WAo%fA9;s1UwrCH)WR{U`S>?vRkp@1XN0USC}L4dTgTwf#@22+#AS z3x?4mL*hXpYPx1DovAC%vh+5Aq-G$yVKd*kd}?LPOiaw=l*5;JZNOH>w|E3)e}2(D ze|PJ*A9T!}Yn6?&3+@s5nhSWa7$3>C&vZ}enBiFhGc*HQsu;)E@`&L!7GQYqdT?{Y Wd(|mbMD#(x{S8Y_%b*3BwZ8$8d1F=p diff --git a/Subsurface_content/Subsurface_content/obj/PSM/Microsoft.Xna.Framework.RuntimeProfile.txt b/Subsurface_content/Subsurface_content/obj/PSM/Microsoft.Xna.Framework.RuntimeProfile.txt deleted file mode 100644 index e6776c3a8..000000000 --- a/Subsurface_content/Subsurface_content/obj/PSM/Microsoft.Xna.Framework.RuntimeProfile.txt +++ /dev/null @@ -1 +0,0 @@ -Windows.v4.0.HiDef diff --git a/Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csproj.FileListAbsolute.txt b/Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csproj.FileListAbsolute.txt deleted file mode 100644 index 9dfe7d99d..000000000 --- a/Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,80 +0,0 @@ -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_content\bin\PSM\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_content\bin\PSM\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_content\obj\PSM\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_content\obj\PSM\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_content\obj\PSM\IgnoreMe.dll diff --git a/Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csprojResolveAssemblyReference.cache b/Subsurface_content/Subsurface_content/obj/PSM/Sbmr_content.csprojResolveAssemblyReference.cache deleted file mode 100644 index 391c283557da2ec23cbdecb535cbaa48c27da00d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3297 zcmdT`TW=dh6yA00^{(T@p-@OAR9xBzP$OSR(p*G@Qmdv>NfhEJFLkv{cE`?;y|^=L zQ}>0w@{af?6@LPWXD$y&T%Pz3aK6pju^S7L5|9|nXJ&S1&z$qkcg`72*EH=9YUt7O zDH8U!aAc^$R#dv%6`ot#XX;p$de!$zm4)H~mr8`e24?sz6l+~C>Po&5@NOiTw@}>e z9(uxg!2A2*F%LElD~qk=)=H~db(bq_k!7&kjmeud`YPgnBVrN9Dyt-zETLWFUCfK}nM*r_0uYLdrayb}pr6DpT z<}ktw!ypmV)|+HfTQa{`Csb7NohPez-fiyj7MDD5cyUuH?i2D{HHY9f>$IMK7Ruvh zY3JVl>8!U@sz4tAZr13dAZq%`38g0vORnb`!0GY7zvmDk$+7Jm9FI@aq=99T$Y6AP z=+PJ_N9b}Jpu|)GT6vGDXghR8OK>;OPLS#E5EgltcX;3uVgyuPIV_5}i~*gM-5?S^ zPZ%-N8bF87v~((^r)Cyjw4-rEq;X3L_VEt)o`&N#|xtuYL z4hK+LtSna7ays0Em&1j5tjHNN=tdUiXX(Mt2xO<>2yN$!#+4Pe>@44@t}QO{%IaDM zMqS7);5*CIsLLi(jYx{1ofoPh{Eo+g*{vg{h++;`DwLbjIT8^?E~SdCpxy;QSY!#` z@5Vu#m)vKa4tMJ^^rsO1>FbHFMDir)$B@=_{kcAb<1{aP$OA5g6X%Bpk3OkBe0Y&_ zTPVJ``jRu?qenQ%nC1l<7;_{Z45IH6&Xm+yuaMAV9$|Kcgz+kgOJ)yrzeXYrKmO*l zU`)owndj_bi71>7<7$z&lX9{Zv_i{9BEHKMH|-=UXKm!qO|KnF5gqyS^WG9j-Hbj0a75{JSQQQxrZ9&4*YtmyQ6J)70^skmiRDRVYqSz^WV zkaR&yw7Zg_9u25Td1Wx{j~V-NU)?+#17}=&|Gf4j_KzVjVS~}wj^RleSLyW30Y|OZ zX=c4a;&b{N^CWtxBQs3cXXRmKDv#BvGO{1^L3{b6PL&5%pkP?n zXz%oIbccC4bdhGVJ=ApD*39%X3YuR@85GhREtmdEU{F=DuatScf?jh+0}R&y@KI<#lkmLi#k3N71b7C%vX4)5S^kEgDP@<3e() zNDr(VBx26KO@sb_$Jr4>V%pxM?e!lMrlp_JH!Zyu$4ft$;Aa?IQK{)8@gorJue?BW7O6XjpC7+w9X&QYQj*@$KKT z_jpgBTGI;6q&85DIa&tTU*zQA)4W3$cwDddc*JCz1YP5iYBU`l=!GK5$^PI7$NbR& MW}FA8A8pfr0xx<58UO$Q diff --git a/Subsurface_content/Subsurface_content/obj/PSM/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt b/Subsurface_content/Subsurface_content/obj/PSM/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt deleted file mode 100644 index 2a3436749..000000000 --- a/Subsurface_content/Subsurface_content/obj/PSM/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt +++ /dev/null @@ -1,6 +0,0 @@ -Content\SpriteFont1.xnb -Content\SmallFont.xnb -Content\LargeFont.xnb -Content\SpriteFont1.spritefont -Content\SmallFont.spritefont -Content\LargeFont.spritefont diff --git a/Subsurface_content/Subsurface_content/obj/Windows/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml b/Subsurface_content/Subsurface_content/obj/Windows/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml deleted file mode 100644 index d4c649161..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - SpriteFont1.spritefont - SpriteFont1 - FontDescriptionImporter - FontDescriptionProcessor - None - E:\Subsurface\Subsurface_content\Subsurface_content\bin\Windows\Content\SpriteFont1.xnb - - - - SmallFont.spritefont - SmallFont - FontDescriptionImporter - FontDescriptionProcessor - None - E:\Subsurface\Subsurface_content\Subsurface_content\bin\Windows\Content\SmallFont.xnb - - - - LargeFont.spritefont - LargeFont - FontDescriptionImporter - FontDescriptionProcessor - None - E:\Subsurface\Subsurface_content\Subsurface_content\bin\Windows\Content\LargeFont.xnb - - - true - - {8C1D2051-F0F3-457B-AAAE-4E155FC7C75C} - Windows - HiDef - Windows - false - E:\Subsurface\Subsurface_content\Subsurface_contentContent\ - E:\Subsurface\Subsurface_content\Subsurface_content\ - E:\Subsurface\Subsurface_content\Subsurface_content\obj\Windows\ - E:\Subsurface\Subsurface_content\Subsurface_content\bin\Windows\Content\ - - - - C:\Program Files (x86)\MSBuild\MonoGame\v3.0\MonoGameContentProcessors.dll - 2015-02-12T06:10:24+02:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.XImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.VideoImporters.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.FBXImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.EffectImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.AudioImporters.dll - 2011-09-01T16:22:30+03:00 - - - C:\Windows\Microsoft.Net\assembly\GAC_32\Microsoft.Xna.Framework.Content.Pipeline\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Content.Pipeline.dll - 2014-09-15T20:04:13.234089+03:00 - - - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_content/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache b/Subsurface_content/Subsurface_content/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index c28b17377cf0cceaefbbe0b9a1884e7fa3868e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5865 zcmeHLdrw<86i*QV`sK6 zAwztYeS&EpaXTlEO9+%rQzG$49OcCE1!cg`$G(#p)>=&X_zQO$_}<~=Tb;d2Y!k<@AyD`61iG_OHJ>630(k(aUW z!Ii$83VgKpYicZVT?HFWD}-eO_B}E&&qY-#4ck!R=!#uwEb4cuU7PU_w-0KwYY%-W zZf5c1T6^y-CqO%m?Nf7GXz;Ak0?cgPw_F#1YwviE+ha3Z?Q58>YgIuHkyUdVs=`>^ zyqu6k!z_>s7m!h}GkT=V_jSEfQk;N(c60N#F!g{pNnroPPM|HeC+=zGfiX(IM(u?~ zn=s@$Q^3!M(ux{%ru1`ad&#gdHqKZqHjZ>G9*;BpBK>2c&@>im7<9O5o~1Bye*y_w zcggq|w$CuI2g4IG+(@xEJN(Z8RxpP+j^Tt_Qx-h<_CW0%1eOnz2$`jIUJOr+3X9fji0T*Vh^w~MNRJV(sE`a`6d2Ok<;nR=83osA!|M( z5T9`UAYhMLH8_J5tqUy^dyGV8H%lm~iXh!-VRq+xl<=Yy+2?dzi@3ID2_k*3E=Gxz zB7S6LsclH93(Q(-ETGKahA%UMks3&Bg2Hfgc8<=@fxZ$34Lw@B_XyuyH8XK!#P2Y9 zblOe=V9#HPD5kH!o<>h2N`HLv6*r8yAN1l67$_bbPEIBl@zm><6kWoU5Mo~;$q)Vr zPSFM567U2oi5zBf;&j=!5J0acak~AlwWbITP)QLaAZ6K8B#+LsH>Q>@n1j7@=Wm6y zlw-+h%w*xtxnR$*ec`-#bKazR!M?%%LEwvTk)q`b-ndyY*%{vXIu7BYey tDMAu0KYoW5KKO;|yPs2p9;n=FEfPtlGXCf2!1=d)>*&CVGG>R<{{Yt7ky`)& diff --git a/Subsurface_content/Subsurface_content/obj/Windows/IgnoreMe.dll b/Subsurface_content/Subsurface_content/obj/Windows/IgnoreMe.dll deleted file mode 100644 index 5c634cfcf018df3d7a43354f1baa08000477c5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 zcmeHJ&u<$=6#mw6Qzs#%sHlL1V3V{G2edN82aqao6Q|S=H&L9V6+&v(_QY9ry<^R; z+k^wk0ip|8Qb?BZ%F$(M{vG+`1n{ zI&o{tHJ!)}BDb_qbz8cjyz%kTbKTI3bHKbagr9%iTj^!nM`mKo8B2>APOZO8a&|e2 z9KdNSXHtk5q<%}=B zzkEpd61AC7e4OGQ@i85L>*ZLMoGORQ0jLsSH2 z4yjiBVKTKyZ5f=vhRbreR?dXbq6@rgrGLj>ChTeuHT136yIJt^-sPaA*2hO@svpld zaBL8%(fX$I)9<`5rV|Ls?{Z9i!F+_>7rC04AZo@Gu}7Qqb84lEpD4>uI`z>?xy1Pq z^$ViUgu2FAh+A+@vX~M2@Z|h7&eD+D`!g|C7P|~-SUL}*2p7XxCl^YsQvV3nhEqQ73DR;5UsebO&HWr z-HH>{@|HSL610>zt6S|LRHmxT&7iJgqy|3;bhM;Gf743w#e|)!brJ=yo@j&aasd-i z3&J4T8en>vQ3>is$9g^Su0_6giI-U2(&k1l`=Zh7OwPmMrnR>p-@Xx#ezNo1?FZ%E zy*tQ#_xWe5uNC&c&bp41Bg)A+-COX6G;cX`_NwvQS9CPDSyyc-dU?a}s5rPcnT8bp zqsXpEf2H1e9eA$KYEufsiXTL2+f>>@K^&ZC9DDl*_+#nsJK)%6@xE^##iTbk{}j96 znG5tOg;xx6C?q%=t3OcMQAu6D~`IJaI7L!Ns zQ$UR}@HQ)Q`uGyF$Ee#l?IU?yV)H!z1MDiXhUh^pdA=WmA@A5Y@v@u5Vk6cbvR^)0 z)Im>^KFuf!6%G##`sMWm-m-Pg)7rGFW{GQK%U0IJ1|z~=tCG#J(6!6%B}cE5qCGoT z!R~93F*GaaaQ_K^k)yjC>`V3tyl2;3fC3plf50&bLxPb{%6>K_c_Hs J4*S3Ez#r~J1la%p diff --git a/Subsurface_content/Subsurface_content/obj/Windows/Microsoft.Xna.Framework.RuntimeProfile.txt b/Subsurface_content/Subsurface_content/obj/Windows/Microsoft.Xna.Framework.RuntimeProfile.txt deleted file mode 100644 index e6776c3a8..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows/Microsoft.Xna.Framework.RuntimeProfile.txt +++ /dev/null @@ -1 +0,0 @@ -Windows.v4.0.HiDef diff --git a/Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csproj.FileListAbsolute.txt b/Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csproj.FileListAbsolute.txt deleted file mode 100644 index 1bab82cac..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,10 +0,0 @@ -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\Windows\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\bin\Windows\IgnoreMe.dll -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\Windows\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\Windows\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_content\obj\Windows\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows\Sbmr_content.csprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows\IgnoreMe.dll diff --git a/Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csprojResolveAssemblyReference.cache b/Subsurface_content/Subsurface_content/obj/Windows/Sbmr_content.csprojResolveAssemblyReference.cache deleted file mode 100644 index 391c283557da2ec23cbdecb535cbaa48c27da00d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3297 zcmdT`TW=dh6yA00^{(T@p-@OAR9xBzP$OSR(p*G@Qmdv>NfhEJFLkv{cE`?;y|^=L zQ}>0w@{af?6@LPWXD$y&T%Pz3aK6pju^S7L5|9|nXJ&S1&z$qkcg`72*EH=9YUt7O zDH8U!aAc^$R#dv%6`ot#XX;p$de!$zm4)H~mr8`e24?sz6l+~C>Po&5@NOiTw@}>e z9(uxg!2A2*F%LElD~qk=)=H~db(bq_k!7&kjmeud`YPgnBVrN9Dyt-zETLWFUCfK}nM*r_0uYLdrayb}pr6DpT z<}ktw!ypmV)|+HfTQa{`Csb7NohPez-fiyj7MDD5cyUuH?i2D{HHY9f>$IMK7Ruvh zY3JVl>8!U@sz4tAZr13dAZq%`38g0vORnb`!0GY7zvmDk$+7Jm9FI@aq=99T$Y6AP z=+PJ_N9b}Jpu|)GT6vGDXghR8OK>;OPLS#E5EgltcX;3uVgyuPIV_5}i~*gM-5?S^ zPZ%-N8bF87v~((^r)Cyjw4-rEq;X3L_VEt)o`&N#|xtuYL z4hK+LtSna7ays0Em&1j5tjHNN=tdUiXX(Mt2xO<>2yN$!#+4Pe>@44@t}QO{%IaDM zMqS7);5*CIsLLi(jYx{1ofoPh{Eo+g*{vg{h++;`DwLbjIT8^?E~SdCpxy;QSY!#` z@5Vu#m)vKa4tMJ^^rsO1>FbHFMDir)$B@=_{kcAb<1{aP$OA5g6X%Bpk3OkBe0Y&_ zTPVJ``jRu?qenQ%nC1l<7;_{Z45IH6&Xm+yuaMAV9$|Kcgz+kgOJ)yrzeXYrKmO*l zU`)owndj_bi71>7<7$z&lX9{Zv_i{9BEHKMH|-=UXKm!qO|KnF5gqyS^WG9j-Hbj0a75{JSQQQxrZ9&4*YtmyQ6J)70^skmiRDRVYqSz^WV zkaR&yw7Zg_9u25Td1Wx{j~V-NU)?+#17}=&|Gf4j_KzVjVS~}wj^RleSLyW30Y|OZ zX=c4a;&b{N^CWtxBQs3cXXRmKDv#BvGO{1^L3{b6PL&5%pkP?n zXz%oIbccC4bdhGVJ=ApD*39%X3YuR@85GhREtmdEU{F=DuatScf?jh+0}R&y@KI<#lkmLi#k3N71b7C%vX4)5S^kEgDP@<3e() zNDr(VBx26KO@sb_$Jr4>V%pxM?e!lMrlp_JH!Zyu$4ft$;Aa?IQK{)8@gorJue?BW7O6XjpC7+w9X&QYQj*@$KKT z_jpgBTGI;6q&85DIa&tTU*zQA)4W3$cwDddc*JCz1YP5iYBU`l=!GK5$^PI7$NbR& MW}FA8A8pfr0xx<58UO$Q diff --git a/Subsurface_content/Subsurface_content/obj/Windows/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt b/Subsurface_content/Subsurface_content/obj/Windows/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt deleted file mode 100644 index 2a3436749..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt +++ /dev/null @@ -1,6 +0,0 @@ -Content\SpriteFont1.xnb -Content\SmallFont.xnb -Content\LargeFont.xnb -Content\SpriteFont1.spritefont -Content\SmallFont.spritefont -Content\LargeFont.spritefont diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml b/Subsurface_content/Subsurface_content/obj/Windows8/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml deleted file mode 100644 index b066c356a..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows8/ContentPipeline-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - SpriteFont1.spritefont - SpriteFont1 - FontDescriptionImporter - FontDescriptionProcessor - None - C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows8\Content\SpriteFont1.xnb - - - true - - {8C1D2051-F0F3-457B-AAAE-4E155FC7C75C} - Windows - HiDef - Windows8 - false - C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_contentContent\ - C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\ - C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows8\ - C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows8\Content\ - - - - C:\Program Files (x86)\MSBuild\MonoGame\v3.0\MonoGameContentProcessors.dll - 2014-04-06T00:56:18+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.XImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.VideoImporters.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.FBXImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.EffectImporter.dll - 2011-09-01T16:22:30+03:00 - - - C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.AudioImporters.dll - 2011-09-01T16:22:30+03:00 - - - C:\Windows\Microsoft.Net\assembly\GAC_32\Microsoft.Xna.Framework.Content.Pipeline\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Content.Pipeline.dll - 2014-09-15T20:04:13.234089+03:00 - - - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache b/Subsurface_content/Subsurface_content/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index 5b0e26ae05dbe29f40cae0acdb7b1d52eff2db03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5883 zcmeHLZBJV_6iy(x1j%o)a^8GwKR&T|EEfA43;j~LKZeBL6`oc`Rc&Tp zn2-l08~Q?J3aVaLa%XcZ?d*d#Ldo^q%S@I&X{QhdHq@{#A+(wYX=g921j73XT4i+t za=ntxSC^|R)m+YB&hk8;Ad#ydk+cztz$bY-(t=ivcbYdEpfg3TcVr{9<{?gg%!5ER z!GB{6)GI-2>&${At;`ILE+|nb%s6^ zH?w&1LHpHNPJnhA+o$HH(BN661(?}}Z@Df3*WU3Sx5s9-*4HrI(5i|aBCF;!)P%9R zbvYr4hFKsNE+C_;&bT6FzOQRnNpS-D+0D(H!ZZTjB7yxAyMeaYnYgEw2gWG<2DKL! zZNiZ2P659dN-OHnozl;#<0Zq!*f?Xc*f`R$cs$PVi}a6)Qp;GVW6hShwDBcJcTqM28VY(QX1KvQR03AjQjRJH~7v~{? z+vGTssbqqx6GRXT#FF=r;LjwHB#|j1(@3V+eWa`q2#}V|V147f*abzeONf!1T!S0o zSU2-_s~o|@^eJBR=^nQ1;>fMD3-$@}(S_IUF9w07`=e5l8+Q}TiB%1^w6R+}%4c&q zw^XU?BTpd+miGD|Rr%F@C#0{MW|bx)t}G+=DS}bKX#{kOPz4PVF;m9l-Z3OUC0k~Z zytuAs56`#tMU+MOZ@p`C3Wq;YD$s40`r z=5uSw&+&hXyiZ>?PbAY6vhFiN^NEZf1ng0}24|3>1)}w0kC8}p6-ufhT6fyu-T4+J zyl^A?oUV@%;9gmaNZ;$L;*wItkF0b%hPXY1)>dNyW&SpNnGv4UKw=XVkE26$bchc0 zxiDx9(%!vC`1q=ui6bL^hsmSUPBs90{z^nK{oyle^hTmQ$VZ=Z!-)GqFaCfLwrp!mY2nVfV9&69;k1j_|`j!irN2YXb6yu=7D=Wu{^#iA`L_)0 M=;VoVXou7P0H))WI{*Lx diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/IgnoreMe.dll b/Subsurface_content/Subsurface_content/obj/Windows8/IgnoreMe.dll deleted file mode 100644 index 9a1c8db466acbfafc2430910cc26ceec33df3f0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 zcmeHJ&ud&&6#m|18YhXVN+l|Yz9cOu$YV4EDiob2leUpe6Ef4ZNTGQ%b2EAP=H21G zH*F#!0V~vn;NG?3qCyvi7D4b2u;QZYl12CK6^!4xZ+=Cq)kVQY&dfdc{P^xU=bpLu zGUfNbzzBdW$NoNWhqF-8@_%N#bRT{ByQ8=@c6a)YvwU~Dx)sE3+vuk8TW;NtBAvK3 z<(f|929aA@skklOP~PO^`0;M&)kR?08NpXyU#s@A?IANg;Y_4Oji%Q7Gn`$HA_wra zl`|x^3wp$L4_T_5{o{3GJZd+Tii|h7;nx!JE_lycPfwtBSnkCja#}E~P`61Pc zKg^^SsV##e*m7A8*UFg?T6KZvt@Q8MvxHp;qK3X2dshlx-a8wV)aK;)eC54)2aXLQ zHCo?Xe(v?R#dHKA`3;WQkC~6KTOwBy6GY9JB7USz`Z;^Pf_s$ZC!IZWeyPOy0riuj z&xg9kS%_P3o?tO!^x@YNbC{wbwfARYtSojJ(y(+MMG-DWu}LnJTBZImY!LMf`BU&P zfn(&y@FKFigdL!3)cU8AvV-UPeu?*as+}zBMkiG7V5u2tqsq!_gdtjSU7Ikdp|TSv zs^zV9q9kZ3Z$Y=(L8wecnJYnE#Yhc)66k16h5ojc;!_DbSL-ASUOmwU-Q@x%pcaHd zvNOQ+GNT;SjgIwZ;$4h?8R>1c7guG&&`b<6OmIJh~JwnO+& zBD*5}m3rrO;JLh@O(_h^eh{T?Q)vqYv44Vb?Cl@m52e5FfMc7*`@VY+liu9?L+pZ+ zx8q`w?|4SEl$J9E3hR7ZFOx4~jnWcUaE|&C`Dw~R-)DdMy?4K?q08Rw&T@l>!dh#I z++kE7hH(PE9f~m{-d1h>$L+nV((BV2)9)i8PE$+iX7&cJpu?IHq5|5R4~cZ$V)E#H z3aC*AUSma0A75hj7TAOy&0Z*vgvNVno<$RkAr&x^~&U11bOj diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/Microsoft.Xna.Framework.RuntimeProfile.txt b/Subsurface_content/Subsurface_content/obj/Windows8/Microsoft.Xna.Framework.RuntimeProfile.txt deleted file mode 100644 index e6776c3a8..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows8/Microsoft.Xna.Framework.RuntimeProfile.txt +++ /dev/null @@ -1 +0,0 @@ -Windows.v4.0.HiDef diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csproj.FileListAbsolute.txt b/Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csproj.FileListAbsolute.txt deleted file mode 100644 index 81f024ed4..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,5 +0,0 @@ -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows8\Content\SpriteFont1.xnb -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\bin\Windows8\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows8\Microsoft.Xna.Framework.RuntimeProfile.txt -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows8\IgnoreMe.dll -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_content\obj\Windows8\Sbmr_content.csprojResolveAssemblyReference.cache diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csprojResolveAssemblyReference.cache b/Subsurface_content/Subsurface_content/obj/Windows8/Sbmr_content.csprojResolveAssemblyReference.cache deleted file mode 100644 index 391c283557da2ec23cbdecb535cbaa48c27da00d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3297 zcmdT`TW=dh6yA00^{(T@p-@OAR9xBzP$OSR(p*G@Qmdv>NfhEJFLkv{cE`?;y|^=L zQ}>0w@{af?6@LPWXD$y&T%Pz3aK6pju^S7L5|9|nXJ&S1&z$qkcg`72*EH=9YUt7O zDH8U!aAc^$R#dv%6`ot#XX;p$de!$zm4)H~mr8`e24?sz6l+~C>Po&5@NOiTw@}>e z9(uxg!2A2*F%LElD~qk=)=H~db(bq_k!7&kjmeud`YPgnBVrN9Dyt-zETLWFUCfK}nM*r_0uYLdrayb}pr6DpT z<}ktw!ypmV)|+HfTQa{`Csb7NohPez-fiyj7MDD5cyUuH?i2D{HHY9f>$IMK7Ruvh zY3JVl>8!U@sz4tAZr13dAZq%`38g0vORnb`!0GY7zvmDk$+7Jm9FI@aq=99T$Y6AP z=+PJ_N9b}Jpu|)GT6vGDXghR8OK>;OPLS#E5EgltcX;3uVgyuPIV_5}i~*gM-5?S^ zPZ%-N8bF87v~((^r)Cyjw4-rEq;X3L_VEt)o`&N#|xtuYL z4hK+LtSna7ays0Em&1j5tjHNN=tdUiXX(Mt2xO<>2yN$!#+4Pe>@44@t}QO{%IaDM zMqS7);5*CIsLLi(jYx{1ofoPh{Eo+g*{vg{h++;`DwLbjIT8^?E~SdCpxy;QSY!#` z@5Vu#m)vKa4tMJ^^rsO1>FbHFMDir)$B@=_{kcAb<1{aP$OA5g6X%Bpk3OkBe0Y&_ zTPVJ``jRu?qenQ%nC1l<7;_{Z45IH6&Xm+yuaMAV9$|Kcgz+kgOJ)yrzeXYrKmO*l zU`)owndj_bi71>7<7$z&lX9{Zv_i{9BEHKMH|-=UXKm!qO|KnF5gqyS^WG9j-Hbj0a75{JSQQQxrZ9&4*YtmyQ6J)70^skmiRDRVYqSz^WV zkaR&yw7Zg_9u25Td1Wx{j~V-NU)?+#17}=&|Gf4j_KzVjVS~}wj^RleSLyW30Y|OZ zX=c4a;&b{N^CWtxBQs3cXXRmKDv#BvGO{1^L3{b6PL&5%pkP?n zXz%oIbccC4bdhGVJ=ApD*39%X3YuR@85GhREtmdEU{F=DuatScf?jh+0}R&y@KI<#lkmLi#k3N71b7C%vX4)5S^kEgDP@<3e() zNDr(VBx26KO@sb_$Jr4>V%pxM?e!lMrlp_JH!Zyu$4ft$;Aa?IQK{)8@gorJue?BW7O6XjpC7+w9X&QYQj*@$KKT z_jpgBTGI;6q&85DIa&tTU*zQA)4W3$cwDddc*JCz1YP5iYBU`l=!GK5$^PI7$NbR& MW}FA8A8pfr0xx<58UO$Q diff --git a/Subsurface_content/Subsurface_content/obj/Windows8/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt b/Subsurface_content/Subsurface_content/obj/Windows8/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt deleted file mode 100644 index b1ac40206..000000000 --- a/Subsurface_content/Subsurface_content/obj/Windows8/cachefile-{8C1D2051-F0F3-457B-AAAE-4E155FC7C75C}-targetpath.txt +++ /dev/null @@ -1 +0,0 @@ -Content\SpriteFont1.xnb diff --git a/Subsurface_content/Subsurface_contentContent/Barotrauma_contentContent.contentproj b/Subsurface_content/Subsurface_contentContent/Barotrauma_contentContent.contentproj deleted file mode 100644 index 14690175f..000000000 --- a/Subsurface_content/Subsurface_contentContent/Barotrauma_contentContent.contentproj +++ /dev/null @@ -1,86 +0,0 @@ - - - - {8C1D2051-F0F3-457B-AAAE-4E155FC7C75C} - {96E2B04D-8817-42c6-938A-82C39BA4D311};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Windows - x86 - Library - Properties - Sbmr_contentContentContent - v4.0 - v4.0 - Windows - bin\$(MonoGamePlatform)\$(Configuration) - Content - x86 - - - Windows - - - Windows8 - - - Android - - - iOS - - - OSX - - - Linux - - - PSM - - - - - - - - - - $(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGameContentProcessors.dll - - - - - SpriteFont1 - FontDescriptionImporter - FontDescriptionProcessor - Designer - Always - - - - - Designer - Always - SmallFont - FontDescriptionImporter - FontDescriptionProcessor - - - - - Designer - Always - LargeFont - FontDescriptionImporter - FontDescriptionProcessor - - - - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont b/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont deleted file mode 100644 index f8b3c56dc..000000000 --- a/Subsurface_content/Subsurface_contentContent/SpriteFont1.spritefont +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - Verdana - - - 10 - - - 0 - - - true - - - - - - _ - - - - - - Ұ - - - - À - ə - - - - diff --git a/Subsurface_content/Subsurface_contentContent/StyleCop.Cache b/Subsurface_content/Subsurface_contentContent/StyleCop.Cache deleted file mode 100644 index 2330220c8..000000000 --- a/Subsurface_content/Subsurface_contentContent/StyleCop.Cache +++ /dev/null @@ -1,7 +0,0 @@ - - 12 - - - - - \ No newline at end of file diff --git a/Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentproj.FileListAbsolute.txt b/Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentproj.FileListAbsolute.txt deleted file mode 100644 index e56544335..000000000 --- a/Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentproj.FileListAbsolute.txt +++ /dev/null @@ -1,16 +0,0 @@ -D:\Omat tiedostot\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Downloads\SBMR\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Documents\CBGAM\SBMR_1809\SBMR_1509\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Documents\CBGAM\SBMR_1809_2\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_2909\SBMR_2909\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -E:\CBGAM\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -E:\CBGAM\SBMR_2710\SBMR\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SMBR_1311\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_2111\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_2811\Sbmr_Solution\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_1312\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache -C:\Users\Joonas\Desktop\SBMR_1512\Sbmr_content\Sbmr_contentContent\obj\PSM\Sbmr_contentContent.contentprojResolveAssemblyReference.cache diff --git a/Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentprojResolveAssemblyReference.cache b/Subsurface_content/Subsurface_contentContent/obj/PSM/Sbmr_contentContent.contentprojResolveAssemblyReference.cache deleted file mode 100644 index fd0ad5bddb1d28ef783de8c955ba3b3d9149e38a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87651 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 PTj&NATD3oP39a{kwUQn+ diff --git a/Subsurface_content/Subsurface_contentContent/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache b/Subsurface_content/Subsurface_contentContent/obj/Windows/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index d2d037b2852bc292eea0d92e20b9176640ad8bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6660 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 PTj&NATD3oP39a{kwUQn+ diff --git a/Subsurface_content/Subsurface_contentContent/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache b/Subsurface_content/Subsurface_contentContent/obj/Windows8/DesignTimeResolveAssemblyReferencesInput.cache deleted file mode 100644 index e124943b549bd0c9de2c7619f7e0668f637a77b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6678 zcmeHMZBH9V5VnK4U>tx3eAQB&Vb4pqevR#72A+o+(n=R*EYj+Rh zB0g7@+TYM$Q1vIaGiUpZ%}XoQ7JTrc8}H5T&d$!x>^(a~qLE1CZz%YS<=!12?k01j zP@<%*9j1KZ<+blJVXcZvMevQa^`yB&rDB3FrC(Vo{7agvzNdXjmpJvcBwo_o_KO~K zzNhtqIHG*1n97vqO7o?3+MP?03>n5L7p|CT#b=(2^KEcVrKrA_q*|rY$`QH2tG-qb zVDKa2d7?($Wu<7P=+)OxH07w38i(Gif|po1%RD;e5biRUXxi$DTs2ejJufRsh1P^T zYBd!|5!&u|v}J|o!g`+|vp{5->Tp=zFDk0HK#2O1mAQ~~jg|vJ( zHAkZxS#K$)k~!87V1f_ny}fI?fS>OW&!^jj$q%o>u6ZpPFDK24a)k6)u^lxB>)CXe9*pKPJZCW2f)IWs;2IrY^y_Kyl6rTtC_PL#by)sYreJHN7- zJIJKcX**x6$OA_J{N=ji1#oS^6UCqG_l&!urWSBK0Lub^pBz=fI}VXoI4IN#MqU_D`TTbh7Z;xDS<4WLcS1CcPN{ z6y6hPV0?@zBvy^_ifbTXk6Etg84rURJ)sHQ1GKpD2*__yFbd$iG9Yp@0O;m(nBqm- zz~=7OvJH><7I323xRcm8x!qo6%Oo}oZI85eIkCc}0K^MSXl=79^%$qtGG1>sDpeuj zwxI$or*BxL^->8?XiKL+r5RA^*Bi7_c4fCipU*&_-)~T#0zEH)qO;ESH#qBzxxBT)t| zf5k$dzL;Scqz^Dfcx9%eAAaBK&F}GLYHxpJB>oIey;eyeP{pLF@i~xO@6X%>g5Y3+ zFQ5|3LbfxC@GL;d=QW8ULcYLFAY{gpK-i4R8eaiC?jHxyAaK@f_NFfy7^cobl5fsUh0L+~b+?5?H%n+5Zd9i;RazGz94h o#NL5@zlBOaHW1-Amb<}j;Z#_L{v4b<|Mt&`!O0V*m-om10Sq6hvH$=8 diff --git a/Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentproj.FileListAbsolute.txt b/Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentproj.FileListAbsolute.txt deleted file mode 100644 index 73e6e3752..000000000 --- a/Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentproj.FileListAbsolute.txt +++ /dev/null @@ -1 +0,0 @@ -C:\Users\Joonas\Desktop\SBMR_3011\Sbmr_content\Sbmr_contentContent\obj\Windows8\Sbmr_contentContent.contentprojResolveAssemblyReference.cache diff --git a/Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentprojResolveAssemblyReference.cache b/Subsurface_content/Subsurface_contentContent/obj/Windows8/Sbmr_contentContent.contentprojResolveAssemblyReference.cache deleted file mode 100644 index fd0ad5bddb1d28ef783de8c955ba3b3d9149e38a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87651 zcmeI5349gR^~ZBV^1=+kM+8(9YEY=G3COM@sT{>L6R3=5)lMJ0TqGT zR#4eA3Wy81P^fi5M4?o~wOXqnqKH<-zjfh{RnY(M+`M~pCNon)q?P|T!{?pM`MvYz z-Z}HVv)q}vB#4BBgdZ@`Uz$=AVe*DW@?+7`==idXe&vzEf{YQN(#fS6S9Lr$qeHv& zQQ=r=BwE~uJo?uzJ*&L1tUMO(QyeZYi-ii?rC(G&t}v26Bs_IQbaJ@3&$teq#&;Rt zZG6X$1zkFXI)##{wC2u*Y0lwO^Ahx(gz?brRlA%?%uU^?(p#Va4cM$A5QOES{g1w z=EJ4AI=Q(65FefrjZMzYxS;=tD(|Y!869%t)w?88To9d7nlT_6D=N(>C@c(6lJfoo z1s0X&M`MMNak7xQC}iA!pb(w(SXh>0pqvH5r68TD^wAge&BZ5uAQG0IQ&wIOiRQ{I z=?s_V#xs?R%va?&V{~ySLuVF%7MF#K%Q7yCl!OZ-#o>(pa~ft+>vFG!blm2$e=ZmMb|^o-CT+umLnT{?yzWal+uuURVPq#L0`&+ z{BbINJl5sMKc?RCO-AU|M-jbUig2#q)NolOqo^oc5DCdjo`fY#bXmfWsbp1hM@34@ zLxowgv>-|=`Hz-Xxf8AejIz`Kr7rvlnH~|on)dk?sMAoVLYGYF+#R=OMp-x+C3bf! z(UIkxiJ@3Y_Gr1~8sgU>mtX%FPU0|+E-IA8G(s^mT#7mVX|e5nC{K-1g&TiDT1Hzq zIR&-(Dfh>6ccyAodAvInRhst`CTKuEYl==oecX-@$Df&ju~5mxNPcB1nxN>xZn!$O zDRs1nqlc4}{BUV$G*-F1)3Lm;%kqvxE6a|BrbLP-$d+~nit6K1l=GouSg1HOAzX0L zsNo|j_vUoE6?0pJIxRkK`>;_szpOm4Haq65$B)YKGm>F+^rQ2)P?=1{FR;9yvW>|# zv$nA_QKf9R)H;HtcGlUQvgwQ(C%u(tPw80FfAGXHJ5*MABGDY>^f;y(SDuQLbfRt0 zfX?BGC*v$KXOn3`rX`tQk~xP=D>ALgv?0@$Ogl2|$z+hpB-4RRM>6M<=|rY8nJ#3y zlIcdKJDDD2dXniyrZ<^BFv(Pxwt5$0xxlMDZpo{ywseId=jhTSwJ=m#HY{2Y86OE3 zq=qUlGp1gE6U5Yla7nnh0GA&)$4o8F50&8zS6-c*6e}+-ixh?9msj=2tLqT@SwdoB zqDZVyS8WMd8*h7g(a!Tt(+vCyt|?DcJ9X&Pv4<%rXH;PxbYAr!%4zkWUsnrC?F(U0 zm&8}d(bqjUL@6xqnk4~M#9lG~OrcL30tG+d<*@O!+;+KPR zJN3UBmn3xAPAShgmLH56OFua$eoiyIa-(L%w<_&;^?506SV}X+Cw%_!$Sqx8I^XDr zc_WKVHcX&D4BNuS0QiEM!ddw6tvnDe3pA6dshk)YPyDZBTxN0RL;KD-^VRc>^Re>A zATont0z+WTtEm5_ONVafb~6R-LaJwQs0<>+D;rZX?P7j*8Jx8&p(AB*7*^i6fXsz3 zfs0@)8KhmW%;1M_cU~6X9bGJgsxl~O*IYf#!>a`))2{nxmuA)6bFlKp2r?sK0;6Co zt(XpJKilM7LU|cYhWhyem%&()Lx=hkBRMDNLFKImAIja~7|LNTnXxc|%VAg|jXd~* zPMNB=)hn!lW-^^p`57-h`e8hTL>c4ATm@rE4qYmr7|A(7o8h{hLY^;Ap&VXKW-3fz8VpOM zaSePyT@KX`vD2-AW-@h2oERDZFSga;Gv1dcDl@S1#L%)K&AdOOD#p zUx$@9t|v1aCNKxak{s&7`q?E%UGdMQyxc(MMwq}&F#LKonY#8)jO3i4J2FMtJj&tC zWah&J7QisdjD_%%sf*N4=D)cNP#0dmL86RX$ov*2@H-fu%-_Qo)YV-5sBo(_&`hST z=o2I3|HY$%>Wf;0l{XfXxeX?8I}C5zsdqrQAl~7c6^(_DM~8JkEc2K;iUat;Nug5S ziCi~Sno}0T#bRotG$&G2QW&N#-xd=?rTUg%-&p>{NEx1Xp=Se%2b5EnGX)uuqM~y7 zq*iJyTofuP2^S2AMT_bPl#=ud)wvuVAAhpT(swO{*eG;5sviCt7%mRSBKh(mu$*w& z6&=TnIhKy?cInllkMm=0W5?2lOvJ}n0uxvYGp(x3V|r+)76^3jd~W{u?&HE83&LGG zbm>CZOvW;p6zYvnpv2d~C+V1=kSntsKQmU4xf3Rh`t@l_9spC*`vggdO)bj9?N8h! z!d<19QIvO8<%5NoD~Uzvxj(ZgZ+v-SA@L*X2ys%Jf%v_LzF0)yE|~h32iuGa((i^z zFa`CS6ZytHX1Uc z!E&AJ;%_b1c|Cq+{DI5{G8@VKk<4Rc{zT?+n6!~FG>J=KWFDTtjLiL$m`NE8^J8-V z6n<`OBJ(tv%`j<~!q6nfz{oP6!Hg_(3uaPsVSWr~&*JCCb7Z!X*+%BiFll39XcE-d zNewTs9j01K_zUUJlgYwEp~YpU2*Hun+<_Tc%@;6}G7d&oGZlYpv59u#XU2@lfPr8+M2ut$)GlEit(^=6?S1Jup6el z#+2)4Y>pG(@1XP)>hzPzqkPsPd3*3P<6Sa)$-GDAeKPyVd_ZPDnGeZ)1d}!qh9)ry zM&{xlmbH{dS>M~W#lWApF+KLG9$Iz1%8d68wbh!FPTGR zz9I83GT)N<4kqnN7@9;WjLgAd%*b|r1T!gRFtQ%W_*;uD^F4lM{6L15VhA#cFlpt` zXcALkWWjW17f6D+$o1*4stk9^=$IkjEjZen1jRTVKnVuDL6CB_EDQf@B(yNh5PInTBK%D(iAf(*UK+qYS}!SVIjsZ z$ean2Hk%fQNz8?j#ic`*#WlxF$_?^Mm_&SPv6arElFp`*Zlon)67yhWNi84;TEf(P zw`YAWtqQ>!KMLe@TK!8@A?0RSH<()H^&Bk3Xho(qOxk=}944_4Mk3V)ay6vdQuy5n zFvV|RWm4Khlj+aEOv){gB~rCae-VEv&Dh=1oi(iMFlt(Z0^evnajYY~P7M*5w@knMC-Uo?A z3s26&#dEZH0u_fBi7pC7VvW@@HQCNA#bT{?S6H({d(QDYQ1Y(pLiB68E_~-RiCma z(~}tJh0Wcq#)o$6OE^Yv0;UfP?Jfhq!ptH;*PJ~wGc&V#W;(oRm8pxO$A2@cy(yGQ zk1b~E=b1}0Kw5N*;`v zqzcH@b|BOv5y%@BniP%UPo$Xs$QO@{yy4-iBGi$Gh=jVBD3m68ag-);4;e7QawHY8TFIl7d;OgCQ=b=l^jv>B$BCzN=8psav{kNDY;0= z#UwurS*9imue;vW9&LwNt>4Nh!LN-gVPr02m|1)R?AEK*Qf{46)J-giZ;+%}aOTGy zWCB~~W_Wt*%!5N)r@8#rkZ&dP4BvUV)-176_o$9jXjhpeM zF&{>5*aes=J6a>*Z|fYF!!o9#&i*f-l# zP-SXw#ggS_TSP@{Qu1OY-$wG&O1@pmcaXeU$xD>Hl;me1%hWD|mlA)Q#x$10lWAOm znO`3*jgC8J^=1yGCp=}35nZkz<*2;xW+biG3!-zH> zfsuKB6f<*Afc+3{t@Wsj7{<5OP|MaD!nfAo_||HUESTa2So_x62~`68CoEZRt;eYd z>JFCj6H0!PBEl#(}*{IZgtR`O<&Us3WiO5Q^9t4e-W${IC;1H}?@;m!BvXgAT*yu(zeqB5VN3ZXCBIDaTaYX8vEj4}qQvPH zgq>ScoHBIBwec!`XS@a@!TKv^ZaD$K()E*vw%1WB(Uv3D#)4RDj#w)TV(%b7cEt8T zm05lpOO}Z3q9Wc^@@^%+L-JlF?@{u*B)_NRy-I$MX;43?+%y6+zdHfiZnam>jYQN- z967=+8xF@EWB^Bj@8Ib(oNwV&o#D{U4*Pcb8mi26T`XB{7lVp8sAN;g^+={W9R2Vy zXec5XO|OXxy5}L~law4JneKu}xq*_?NdA|SPgZh6lIc!KKYWZvN^VT@cS=4*$)}P` z_fF&%KMfvxSj76^hI)72Xo4u?bQrmH&%n%#qn%nE_cK&g8QH*^q6%Uk-;nQHHspJJ zL+-U~$Rk*F`-c2p<>@ReS#FxMsfZtx+(OAMNyfj*WdBmh=a4Lv+)Bx>NO$-R`^n`BeTeU$tw zlItn?JSG2{nk}+$=M{Iq~!ie9zb$X$pe*qKFJM~JV?odNlsJp5G4;K z`D7&zQ}P8QH&pV4O1_BXMoPX|$-_ye`)n0RyloeL8orP)oBOpnBMq;La z?f9uSmV_~iYI8qF<~|EDYdA9Z#*wMKFlvIT+L1Y3t#B@uERms?v&9)|y)K8>%~Y^q=}|9?aVTG`;2BzO$o^;x5ykg1k0qF?-A>1K>2jxYB~|A) zJUBr9NN%m!ulYA~@$EoWMivqs>`Ihw`$Jaj;U;lIo3*7*>uRq<< z?uYMk-2?xEy0O1_Weo=U!7$q!&A*c&qK>=F}N z;BYxBA%Tvl0enOL@SMIK6YAo}__uxb*jw+}JZf9P@;3FB9-K9?&SR@ynR9u`_TZ39 zUU_R_huNZJMrhonBR88X`~P;ytu4M9_t368$`35=vO1;5@gUo~r3a^&w*hVVppqrD@OO;ckqUL-~9UI27?1@zL;I{Z2pt=mtHz& z-}a*P;p@cSLs<_ExxC5YE$jdGe5C!yw=H?((CwK+21L!Ay*p0ZGvb>4m%W>{GF))V zn8U61wESkxh7R4=w@dlHd9zM0v{-lR_y628Y{L5MyFUG1>qq7<>eXy>Nt;O>E}Qhn zU>_s~xkyNy)9#z6o9$1|5$8dvfTGSaFe|6zYa9Tb_Go`Uchlk5Tu?a93 z)0A#=fi0xeC?q$B}-teDE@$I{5j3avF}Y|r^f0SJC&uhpjrOrp zyCrX)Sp5~m=%eB58l*P}q&AEl(V96Jype-+js>Jk9YMOx2g%zY?E*3C@!a_M)~2yr z1N9C8brxetG-r+}(m7CPT7Vkk2vn{Ql(&J}2V&~!H!@;j)A&Hsw4Z1?odG18Fvk?9 zahguG&@|SGreGdani53_a}}723kjne;Xk!0!O8jrDE=9ihtIG+1yt;0{eY(JGotNe z2AD`=jwu>&+JY9^CITA!SyjYG$=my`uRx5;$@co3#T-+715ZCrdB_4(u@g|i5~%6;_&05jcGLDsWXXEdmR`D| z6VmE8ZIhV5aaertZ6jWWHlqQ z-e)k0_n2dfy_~FfEo5EmNY+fBEN_!_Hi$XuJ1wTsLL=6a5PO?ZCEj9=DgMq8d((p0 zEJwty^AYnlVr@Z;wbQwsrl~#A^cn+5yviI?yuxXE*+SFxjx^2oY4SEroj{E4uj#Bo z>OvsxVC;zJnPZB-aFDiJK$_zS(p(=TZ-dke#JKb)_tseTA*`NdB#AA|F~u_+tIZay zZg9lvMjtD0W0eJB(yHFQ8x<)n4;5yaMz&_EKQZ+L!$>^N98>&>GxeB-shgab3f>IW z?+L8Q>l^ctDQi#QLMVh!hO8%WsBWLbsC}+yO;S9{98)~P+vmfU z_PGeq*n0wL=q4W}52KU=VyssW{xQ;I7oL{K)S;bq$NH`-aZx02Qf~kq6M0%Ffp~1VI-C? z#}s#Prf#<|wbY5J;Bu%mC5k&SS3z_5B;%u|q*Xq4-o|b+pkgOhg_^b^qV4w#F!4L) znBupbwp%Q;t#+a<>0TctZ=+NSV)UV~OoLQTAl=N^5%ZX1ikmn{H(Eei;|S7yK1kjM z=^7B@(%Cm%V>N@Yx}K3Fu49fVW^t@$TClp`5vvD$th|lYY!G96L1&HzYAyjajWHyq zGRG8GbD*YJfO^mosI@*&-Uezuh_Uu0EYLJ9B${FjAaNygFyuI=DQclmp6-a`&>-za}sNkBElR~Oyuoz zf~9>v4ruH>eNXr(d3$fa48*uU*0)@fwSveR$6yj6=9uCNPF9|UtS24Gdderu+hnZ- zF*SIsZ|yFbe;vI=Nv)W>VxEMke&lEW_-Yu(M5%(u~oyg zjbQ4@_z^vrgW={lOx-LnZF7X_&pu4vhUoHjF9JnmHJQjstd% z1+eEG0o&mN=54@sftV)M0UHp*h~-nFvB?;YPP6q6v2_;1Ni=5;hNI(booQj~1xL1a z`fPcdt$iTIcKh@L4b*-D>U74CXu=$fNXLOX)dJLujzGQS1LbX?J_RxV{y)AljRTsm z&xo&+8B!vRIT(YE^A)u4^|BLRLHbWw{Tr$^xuN(;P3;%|yhi|BU zg=WZZsD7>6=RsfQ*5X4yT z-8a%SH71%qVE~DbnS;^kI87f}XxisU(+56H-lpjcMpNaz`=*+vW<=Bb3?T6yb1)(u zr|De_P5T{b`p~Dz+ccdGV)VWH78<0M1k&4#9q|@(Fzy@&=}ikrA31{b4<96NgVYwp zxV-b#PGi-cuzHP=Bwl3>2B70uy==kiV@Iq$@v-tYR-HhM<&lui8m2A;(+Gq_~?o80wF=&$}$`(*QK~a|Y8#$=f^nd=PUCr>6xPwJ@Q! zl+h)YFb5+5a@20OpjOWjwNxK9Z=*ID#JE5BP^if&BC>wZU=qJ$4o3UqWZhyRtG**y zC;4P~o2*h0W4$X~rfDiCnr>zQiFwSykbj(}8!a>i9cgOd)8uWMu3FPTjnX-2EHHG5X)pr)Y@Vojv+|{=X&5(8V zE!XXH1+~v{tVxOxb1<|YZ=ZRV_IWm-v3K>g@KN&iK7S>Mv0f#w(lo6mnl57iiA$M- zQT#Yfmsn_O=}6NreVV*Y(}N&JU)QYFAgv>ihBJ1=#mvC~ejKC=Eg+ra2vRE_ByWTC z2N2_QD!M^4wUL+_%rFvzn1f;bI8y^HOtp4os*TT-x0!kp#JJyTcuJGCiOA~5U=n?q zgK_;hS?5{EYU@N+usu|o5=AEFDlmulgA?$OgZ%HT@FyXuiw~c-;d>5Hu~YV~nzn63 zTTcd<=)oKe{KskQW}&UC6KzS|e3ZP6(hDG_Va~)*tR#DMMs}y{tY}e5q%a&ajh&jR z7m2EK8Azfdb1?KDrz+DzRd+|KdiYd%o2tKpn3OnG7~@Zq^ahdChQT9RGY4b*agxrl zkkr$Wq+UKr-X>`mh&hI*hjwe!-XYY^Vswe-%)yX<9JMnosP%S4t&fkIw^7>%VswAQ z2O6aP1k&k@9npk280wFMbgBiUUpazwo)40@LHZQL)L@j90~)c<2(gnHRU(Z!810WE z7PKJtYe&TT`iOZOv9CZ(;DWy81(B#}e62w`NFbSv9bqsB!_sk(QY;|#a|9{N2g%zY zeFtLP`>_sdvW^g0i3}zon1fO1I9We@%SWNhb|kC6PnNgIs*_y(W?&MO_{ejZ6W@Z8 zs*&fIgOTUpRgFAnp=p34O#^+JyiHR*5My~ZEmgx*pJ4iu@gu%q4#t?{Fnw-;>3m0+ z2Kg{~8>WUJrb*@5Q^qBc;)3Xu(qZ9(NN7MbRun2TjYgWS#>Cbq3@7n1b1>o@XX_&i zTZ0|h8sf9%ZMMz;G4-Z~%OV*?MZ}b8G}SaUBbwf40EzdQgAwOAP48N08tO>XFrOxG z({wh7sar`?Nhi~2p;2l{D80?-5pOXEW6p7u-n5`}fg?&6`Y3rDrM84pQE7fORu~y) z8tpVn?FpsV7(L=u=3tyTj?&8(lrC~a>0%!xZ==)+#H0=j6^AB-3oaTpd_l5c~;(7rpw)5((Y3oC@ zJ<9+STbP3}=s0bgEwqhwq%99>Isi*dXn{wmW?`I8I01;{56|h_kzSk-__uxb*jw+} zJZf9P@;3FB9-K9?&SR@ynR9u`_TZ39UU_R_huNZJMrhonBR88X`~P;ytu4M9_t368 z$`35=vO1;5@gUo~r3a^&w*hVVppqrD@OO; zckqUL-~9UI27?1@zL;I{Z2pt=mtHz&-}a*P;p@cSLs<_ExxC5YE$jdGe5C!yw=H?( z(CwK+21L!Ay*p0ZGvb>4m%W>{GF))Vn8U61wESkxh7R3p@)F4vNQ(6(l5tQfkSX*P zTBf9l_`-jQ#KSLl3VnipQCQA?J8=eazBaBVfq>PRS&nEN}1m zhkzKi=O3z38b&CsXY`0inS&wcI7$y&P@3$BQlXEMw^7OgF*Ud^KSComk`Q}|PVmq{4P1{(a?H&f0xSKf` zT8-0omxZ>gooGv%>Z9asl=4B0ehQ>OgA^u^mNIt466RpwG!D}37LcYnffSq$HQm1^ zYM1hT^Jbl1XtD0r@Bg`H*o5`hcYXT3){o3z)T`O%k~Wh%TsG;C!5PSu^_plV6xz|- zu8HR23;&wP!`DQU(F~8_(d9zjev7F6{+=~i@jK>VcskyGZ?UxB8vvF4BI!mSHE$mX zNPW9+NM}&TMTIIN5I>Bl)Sy$nh#>C-Z)&KNm@uG#TY!|O6FkTI!;p5LelL{ zBn6j1r72M?!(0XCRM*YuMhOWGN^qusw-1}QVY?Mjx%~Hii!^zQiM&Y+HW6VChPUJ7 zO|X!6j}v)GD}AiIjny&`V|{dRxu$6a(KL<$BtpzF#TA^UJPS>$9BEqZ)8uWMR)QFI za~K*WHlinI8=q|x(;(& z>IhrtNVm{jTj*G~&;k{z>l%)S+Ui=ULUmn>+?HBq3oUmGoo)-A;TAeah3dM_bqigf zLUmmix`i&Xg)VjrU9Lhk+AG{bSJ^^WyM?Y*p}MZ?+(I|lLN~gFK4lBt=xS87TU}$w1q9SrCVq_TWEW?(9X8d zE^eW{Rj4MbPdwB{R<;V&o1nkjQirNgovdMQp(AXeBi%xCZJ}e`LJL%=u4~vWw9pn> zlV7e7P`FUCXYRLpYP___{x z!!2YtzOe3i-ie3Ce=Ex%6Z}Ah>bmWB3q7Dh^%{TX7Wy^5pea!tjE7MFeu~r*5)Awe z9=0v*h}+VVu>Nv&bRCnSRA4FbV&coiQd4cA_1!`n;R~7)MdNsgx(A{D2Ak@TX4OK} zZHizE9n#V*q#eGnR=<5b)OMQPSud?iwWU?o6>HerwzNL+P+KyxRjA%z{oO)`s!*Nc zVQ!%#RH$C+NVm{j6{?pyHXdqQ^8$Q9Q=$mRLu|wps-@|Ii{hcSH7`@4y5MrR(CN0& z8E&C-Y@u`ALKonR%GFsI53#l5MYg3aW}%foue8DCdTA@-Aqr8=;VRqGR=X{2tu1t& PTj&NATD3oP39a{kwUQn+