Implement Tic-Tac-Toe Game

Fix Currency Counter Sometimes Adding Decimals
This commit is contained in:
Alan Moon 2025-07-05 13:40:16 -07:00
parent 7b599863d8
commit 042671da91
20 changed files with 1458 additions and 222 deletions

View File

@ -0,0 +1,13 @@
namespace QtCNETAPI.Enums
{
public enum GameStatus
{
WaitingForPlayer,
SelectingSymbol,
Ongoing,
P1Win,
P2Win,
NoWin,
PlayerDisconnected
}
}

View File

@ -0,0 +1,9 @@
namespace QtCNETAPI.Enums
{
public enum TicTacToeSymbol
{
X,
O,
Blank
}
}

View File

@ -0,0 +1,16 @@
using QtCNETAPI.Enums;
using QtCNETAPI.Models;
namespace QtCNETAPI.Schema
{
public class GameRoom
{
public string Id { get; set; } = string.Empty;
public GameStatus Status { get; set; }
public TicTacToeBoard Board { get; set; } = new();
public User? Player1 { get; set; }
public TicTacToeSymbol P1Symbol { get; set; } = TicTacToeSymbol.Blank;
public User? Player2 { get; set; }
public TicTacToeSymbol P2Symbol { get; set; } = TicTacToeSymbol.Blank;
}
}

View File

@ -0,0 +1,17 @@
using QtCNETAPI.Enums;
namespace QtCNETAPI.Schema
{
public class TicTacToeBoard
{
public TicTacToeSymbol Square1 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square2 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square3 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square4 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square5 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square6 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square7 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square8 { get; set; } = TicTacToeSymbol.Blank;
public TicTacToeSymbol Square9 { get; set; } = TicTacToeSymbol.Blank;
}
}

View File

@ -0,0 +1,10 @@
using QtCNETAPI.Models;
namespace QtCNETAPI.Schema
{
public class TicTacToeMove
{
public User User { get; set; } = new();
public int Point { get; set; }
}
}

View File

@ -21,7 +21,6 @@ namespace qtc_net_client_2.Forms
IApiService _apiService; IApiService _apiService;
AudioService AudioService = new(); AudioService AudioService = new();
private List<User> UserList = new();
public ChatRoom(IGatewayService gatewayService, IApiService apiService) public ChatRoom(IGatewayService gatewayService, IApiService apiService)
{ {
_gatewayService = gatewayService; _gatewayService = gatewayService;

View File

@ -32,6 +32,7 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
ListViewItem listViewItem1 = new ListViewItem("Stock Market", 0); ListViewItem listViewItem1 = new ListViewItem("Stock Market", 0);
ListViewItem listViewItem2 = new ListViewItem("Guess The Number", 1); ListViewItem listViewItem2 = new ListViewItem("Guess The Number", 1);
ListViewItem listViewItem3 = new ListViewItem("Tic-Tac-Toe (Multiplayer)", "Tic-tac-toe.png");
tbcMain = new TabControl(); tbcMain = new TabControl();
tbpContacts = new TabPage(); tbpContacts = new TabPage();
lvContacts = new ListView(); lvContacts = new ListView();
@ -229,7 +230,8 @@
lvGames.Anchor = AnchorStyles.Left | AnchorStyles.Right; lvGames.Anchor = AnchorStyles.Left | AnchorStyles.Right;
listViewItem1.Tag = "StockMarketGame"; listViewItem1.Tag = "StockMarketGame";
listViewItem2.Tag = "GuessTheNumberGame"; listViewItem2.Tag = "GuessTheNumberGame";
lvGames.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2 }); listViewItem3.Tag = "TicTacToeGame";
lvGames.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2, listViewItem3 });
lvGames.LargeImageList = ilGames; lvGames.LargeImageList = ilGames;
lvGames.Location = new Point(0, 0); lvGames.Location = new Point(0, 0);
lvGames.MultiSelect = false; lvGames.MultiSelect = false;
@ -247,6 +249,7 @@
ilGames.TransparentColor = Color.Transparent; ilGames.TransparentColor = Color.Transparent;
ilGames.Images.SetKeyName(0, "dollar-money.gif"); ilGames.Images.SetKeyName(0, "dollar-money.gif");
ilGames.Images.SetKeyName(1, "NumberGuessGameIcon.png"); ilGames.Images.SetKeyName(1, "NumberGuessGameIcon.png");
ilGames.Images.SetKeyName(2, "Tic-tac-toe.png");
// //
// ilTabIcons // ilTabIcons
// //

View File

@ -274,7 +274,7 @@ namespace qtc_net_client_2
var result = await _apiService.AddCurrencyToCurrentUser(tokenJackpotSpinner.TokensWon, true); var result = await _apiService.AddCurrencyToCurrentUser(tokenJackpotSpinner.TokensWon, true);
if (result.Success) if (result.Success)
{ {
lblCurrencyAmount.Text = (_apiService.CurrentUser.CurrencyAmount + tokenJackpotSpinner.TokensWon).ToString("N"); lblCurrencyAmount.Text = (_apiService.CurrentUser.CurrencyAmount + tokenJackpotSpinner.TokensWon).ToString("N0");
llblClaimSpin.Visible = false; llblClaimSpin.Visible = false;
} }
else MessageBox.Show("We Were Unable To Claim Your Prize At This Time. Please Try Again Later.", "Uh Oh.", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("We Were Unable To Claim Your Prize At This Time. Please Try Again Later.", "Uh Oh.", MessageBoxButtons.OK, MessageBoxIcon.Error);
@ -322,6 +322,10 @@ namespace qtc_net_client_2
GuessTheNumber guessTheNumber = new GuessTheNumber(_apiService); GuessTheNumber guessTheNumber = new GuessTheNumber(_apiService);
guessTheNumber.Show(); guessTheNumber.Show();
break; break;
case "TicTacToeGame":
TicTacToeGame ticTacToeGame = new TicTacToeGame(_apiService);
ticTacToeGame.Show();
break;
} }
} }
} }

View File

@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA0A0AAAJNU0Z0AUkBTAMBAQAB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA0A0AAAJNU0Z0AUkBTAMBAQAB
2AEAAdgBAAEgAQABIAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAYADAAEgAwABAQEAASAGAAFAEgAD 4AEAAeABAAEgAQABIAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAYADAAEgAwABAQEAASAGAAFAEgAD
rQH/A7oB/wO6Af8DuQH/A7oB/wO6Af8D2gX/A/wB/wP+Df8D/QH/A/wR/wP8Af8D/g3/A/0B/wPZAf8D rQH/A7oB/wO6Af8DuQH/A7oB/wO6Af8D2gX/A/wB/wP+Df8D/QH/A/wR/wP8Af8D/g3/A/0B/wPZAf8D
ugH/A7oB/wO6Af8DugH/A7oB/wO6Af//AIEAA58B/wO6Af8DugH/A7oB/wO6Af8DugH/A9oJ/wP9Af8D ugH/A7oB/wO6Af8DugH/A7oB/wO6Af//AIEAA58B/wO6Af8DugH/A7oB/wO6Af8DugH/A9oJ/wP9Af8D
/g3/A/0B/wP9Ef8D/AH/A/4N/wPaAf8DugH/A7oB/wO6Af8DugH/A7oB/wO6Af//AIEAA6IB/wO6Af8D /g3/A/0B/wP9Ef8D/AH/A/4N/wPaAf8DugH/A7oB/wO6Af8DugH/A7oB/wO6Af//AIEAA6IB/wO6Af8D
@ -196,93 +196,93 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAKhQAAAJNU0Z0AUkBTAIBAQQB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAGhQAAAJNU0Z0AUkBTAIBAQQB
AAGQAQABkAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ AAGYAQABmAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B
0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB 0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB
BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD
YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA0sB9QMkAfsDNgH+AzYB/gMkAfsDUwH0A2IB YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA0wB9QMkAfsDNwH+AzcB/gMkAfsDUwH0A2IB
4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQBRQFXAUUB9QEhAVIBIQH7ARIBUgESAf4BEgFSARIB/gEhAVIB 4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQBRgFYAUYB9QEhAVMBIQH7ARMBUwETAf4BEwFTARMB/gEhAVMB
IQH7AU0BUwFNAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AFFAlcB9QEhAlIB+wESAlIB/gESAlIB IQH7AU8BUwFPAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AFGAlgB9QEhAlMB+wETAlMB/gETAlMB
/gEhAlIB+wFNAlMB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAkUBVwH1AiEBUgH7AhIBUgH+AhIB /gEhAlMB+wFPAlMB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAkYBWAH1AiEBUwH7AhMBUwH+AhMB
UgH+AiEBUgH7Ak0BUwH0A2IB4QNRAaEDHgEqDAADGwElA1gBvQNaAfIDOgH+AzAB/wM5Af8DPAH/AzYB UwH+AiEBUwH7Ak8BUwH0A2IB4QNRAaEDHgEqDAADGwElA1gBvQNaAfIDOwH+AzAB/wM5Af8DPAH/AzYB
/wMqAf8DJAH/A0AB/QNYAfADVgGyAxoBIwgAAxsBJQNYAb0BVQFaAVUB8gESAVoBEgH+AQABVwEAAf8B /wMqAf8DJAH/A0AB/QNZAfADVgGyAxoBIwgAAxsBJQNYAb0BVwFaAVcB8gETAVsBEwH+AQABVwEAAf8B
AAFnAQAB/wEAAWwBAAH/AQABYQEAAf8BAAFMAQAB/wEAAUABAAH/ASQBQAEkAf0BUwFdAVMB8ANWAbIB AAFnAQAB/wEAAWwBAAH/AQABYQEAAf8BAAFMAQAB/wEAAUABAAH/ASYBQAEmAf0BVAFeAVQB8ANWAbIB
GQEaARkBIwgAAxsBJQNYAb0BVQJaAfIBEgJaAf4BAAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8B GQEaARkBIwgAAxsBJQNYAb0BVwJaAfIBEwJbAf4BAAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8B
AAJAAf8BJAJAAf0BUwJdAfADVgGyARkCGgEjCAADGwElA1gBvQJVAVoB8gISAVoB/gIAAVcB/wIAAWcB AAJAAf8BJgJAAf0BVAJeAfADVgGyARkCGgEjCAADGwElA1gBvQJXAVoB8gITAVsB/gIAAVcB/wIAAWcB
/wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wIkAUAB/QJTAV0B8ANWAbICGQEaASMEAAMDAQQDUgGlA14B /wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wImAUAB/QJUAV4B8ANWAbICGQEaASMEAAMDAQQDUgGlA18B
8wNJAf8DVQH/A2UB/wNxAf8DdQH/A3EB/wNkAf8DTAH/AzEB/wM2Af4DXAHuA1ABmgMDAQQDAwEEAVIB 8wNJAf8DVQH/A2UB/wNxAf8DdQH/A3EB/wNkAf8DTAH/AzEB/wM3Af4DXQHuA1ABmgMDAQQDAwEEAVIB
UwFSAaUBUAFvAVAB8wEAAYIBAAH/AQABmQEAAf8BAAG2AQAB/wEAAcwBAAH/AQAB0wEAAf8BAAHLAQAB UwFSAaUBUQFvAVEB8wEAAYIBAAH/AQABmQEAAf8BAAG2AQAB/wEAAcwBAAH/AQAB0wEAAf8BAAHLAQAB
/wEAAbMBAAH/AQABiAEAAf8BAAFXAQAB/wESAVIBEgH+AVkBYAFZAe4DUAGaAwMBBAMDAQQBUgJTAaUB /wEAAbMBAAH/AQABiAEAAf8BAAFXAQAB/wETAVMBEwH+AVoBYQFaAe4DUAGaAwMBBAMDAQQBUgJTAaUB
UAJvAfMBAAKCAf8BAAKZAf8BAAK2Af8BAALMAf8BAALTAf8BAALLAf8BAAKzAf8BAAKIAf8BAAJXAf8B UQJvAfMBAAKCAf8BAAKZAf8BAAK2Af8BAALMAf8BAALTAf8BAALLAf8BAAKzAf8BAAKIAf8BAAJXAf8B
EgJSAf4BWQJgAe4DUAGaAwMBBAMDAQQCUgFTAaUCUAFvAfMCAAGCAf8CAAGZAf8CAAG2Af8CAAHMAf8C EwJTAf4BWgJhAe4DUAGaAwMBBAMDAQQCUgFTAaUCUQFvAfMCAAGCAf8CAAGZAf8CAAG2Af8CAAHMAf8C
AAHTAf8CAAHLAf8CAAGzAf8CAAGIAf8CAAFXAf8CEgFSAf4CWQFgAe4DUAGaAwMBBAMtAUQDYAHoA3UB AAHTAf8CAAHLAf8CAAGzAf8CAAGIAf8CAAFXAf8CEwFTAf4CWgFhAe4DUAGaAwMBBAMtAUQDYAHoA3YB
/gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8DQAH9A14B3QMqAT8DLQFEAWAB /gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8DQAH9A14B3QMqAT8DLQFEAWAB
aQFgAegBEgGQARIB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgBAAH/AQAB+wEAAf8BAAH5AQAB aQFgAegBEwGOARMB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgBAAH/AQAB+wEAAf8BAAH5AQAB
/wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/ASQBQAEkAf0DXgHdAyoBPwMtAUQBYAJpAegB /wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/ASYBQAEmAf0DXgHdAyoBPwMtAUQBYAJpAegB
EgKQAf4BAALGAf8BAALcAf8BAALuAf8BAAL4Af8BAAL7Af8BAAL5Af8BAALvAf8BAALUAf8BAAKcAf8B EwKOAf4BAALGAf8BAALcAf8BAALuAf8BAAL4Af8BAAL7Af8BAAL5Af8BAALvAf8BAALUAf8BAAKcAf8B
AAJaAf8BJAJAAf0DXgHdAyoBPwMtAUQCYAFpAegCEgGQAf4CAAHGAf8CAAHcAf8CAAHuAf8CAAH4Af8C AAJaAf8BJgJAAf0DXgHdAyoBPwMtAUQCYAFpAegCEwGOAf4CAAHGAf8CAAHcAf8CAAHuAf8CAAH4Af8C
AAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8CJAFAAf0DXgHdAyoBPwNOAZUDdwH4A38B AAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8CJgFAAf0DXgHdAyoBPwNOAZUDdwH4A38B
/wOFAf8DigH/A40B/wOOAf8DjgH/A44B/wONAf8DiQH/A3cB/wNNAf8DJQH/A1oB8gNKAYsDTgGVATwB /wOFAf8DigH/A40B/wOOAf8DjgH/A44B/wONAf8DiQH/A3cB/wNNAf8DJQH/A1oB8gNKAYsDTgGVAT0B
kgE8AfgBAAHlAQAB/wEAAe8BAAH/AQAB+AEAAf8BAAH9AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB kAE9AfgBAAHlAQAB/wEAAe8BAAH/AQAB+AEAAf8BAAH9AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wEAAf4BAAH/AQAB9gEAAf8BAAHVAQAB/wEAAYsBAAH/AQABQQEAAf8BVQFaAVUB8gNKAYsDTgGVATwC /wEAAf4BAAH/AQAB9gEAAf8BAAHVAQAB/wEAAYsBAAH/AQABQQEAAf8BVwFaAVcB8gNKAYsDTgGVAT0C
kgH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC1QH/AQAC kAH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC1QH/AQAC
iwH/AQACQQH/AVUCWgHyA0oBiwNOAZUCPAGSAfgCAAHlAf8CAAHvAf8CAAH4Af8CAAH9Af8CAAL/AgAC iwH/AQACQQH/AVcCWgHyA0oBiwNOAZUCPQGQAfgCAAHlAf8CAAHvAf8CAAH4Af8CAAH9Af8CAAL/AgAC
/wIAAv8CAAH+Af8CAAH2Af8CAAHVAf8CAAGLAf8CAAFBAf8CVQFaAfIDSgGLA18B0wN+AfwDkwH/A44B /wIAAv8CAAH+Af8CAAH2Af8CAAHVAf8CAAGLAf8CAAFBAf8CVwFaAfIDSgGLA18B0wN+AfwDkwH/A44B
/wONAf8DjgH/A44B/wOOAf8DjgH/A44B/wONAf8DhQH/A2cB/wM0Af8DQQH5A1oBxAFbAV8BWwHTASsB /wONAf8DjgH/A44B/wOOAf8DjgH/A44B/wONAf8DhQH/A2cB/wM0Af8DQQH5A1oBxAFbAV8BWwHTASsB
vAErAfwBDgH7AQ4B/wEDAf0BAwH/AQAB/gEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB ugErAfwBDgH7AQ4B/wEDAf0BAwH/AQAB/gEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wEAAf8BAAH/AQAB/QEAAf8BAAHvAQAB/wEAAbkBAAH/AQABXQEAAf8BNQFBATUB+QNaAcQBWwJfAdMB /wEAAf8BAAH/AQAB/QEAAf8BAAHvAQAB/wEAAbkBAAH/AQABXQEAAf8BOAFBATgB+QNaAcQBWwJfAdMB
KwK8AfwBDgL7Af8BAwL9Af8BAAL+Af8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAv0B/wEAAu8B/wEAArkB KwK6AfwBDgL7Af8BAwL9Af8BAAL+Af8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAv0B/wEAAu8B/wEAArkB
/wEAAl0B/wE1AkEB+QNaAcQCWwFfAdMCKwG8AfwCDgH7Af8CAwH9Af8CAAH+Af8CAAL/AgAC/wIAAv8C /wEAAl0B/wE4AkEB+QNaAcQCWwFfAdMCKwG6AfwCDgH7Af8CAwH9Af8CAAH+Af8CAAL/AgAC/wIAAv8C
AAL/AgAC/wIAAf0B/wIAAe8B/wIAAbkB/wIAAV0B/wI1AUEB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B AAL/AgAC/wIAAf0B/wIAAe8B/wIAAbkB/wIAAV0B/wI4AUEB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B
/wOOAf8DjgH/A44B/wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAUoBhQFKAfUBNgHbATYB /wOOAf8DjgH/A44B/wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAUsBgwFLAfUBNwHZATcB
/gEnAf8BJwH/AQsB/wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB /gEnAf8BJwH/AQsB/wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wEAAf8BAAH/AQAB/wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wEkAUABJAH9A2IB4QFKAoUB9QE2AtsB /wEAAf8BAAH/AQAB/wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wEmAUABJgH9A2IB4QFLAoMB9QE3AtkB
/gEnA/8BCwP/AQED/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAvkB/wEAAtYB/wEAAoEB/wEkAkAB /gEnA/8BCwP/AQED/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAvkB/wEAAtYB/wEAAoEB/wEmAkAB
/QNiAeECSgGFAfUCNgHbAf4CJwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8C /QNiAeECSwGDAfUCNwHZAf4CJwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8C
AAHWAf8CAAGBAf8CJAFAAf0DYgHhA3UB9gOKAf4DqwH/A5kB/wOQAf8DjgH/A44B/wOOAf8DjgH/A44B AAHWAf8CAAGBAf8CJgFAAf0DYgHhA3QB9gOIAf4DqwH/A5kB/wOQAf8DjgH/A44B/wOOAf8DjgH/A44B
/wOOAf8DjQH/A38B/wNVAf8DQAH9A14B4gFIAYsBSAH2AVkB2wFZAf4BQgH/AUIB/wEZAf8BGQH/AQQB /wOOAf8DjQH/A38B/wNVAf8DQAH9A14B4gFIAYcBSAH2AVoB2QFaAf4BQgH/AUIB/wEZAf8BGQH/AQQB
/wEEAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH9AQAB /wEEAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH9AQAB
/wEAAeQBAAH/AQABmAEAAf8BJAFAASQB/QNeAeIBSAKLAfYBWQLbAf4BQgP/ARkD/wEEA/8BAAP/AQAD /wEAAeQBAAH/AQABmAEAAf8BJgFAASYB/QNeAeIBSAKHAfYBWgLZAf4BQgP/ARkD/wEEA/8BAAP/AQAD
/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALkAf8BAAKYAf8BJAJAAf0DXgHiAkgBiwH2AlkB2wH+AkIC /wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALkAf8BAAKYAf8BJgJAAf0DXgHiAkgBhwH2AloB2QH+AkIC
/wIZAv8CBAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/QH/AgAB5AH/AgABmAH/AiQBQAH9A14B /wIZAv8CBAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/QH/AgAB5AH/AgABmAH/AiYBQAH9A14B
4gNhAdYDjAH8A7gB/wOjAf8DkwH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOCAf8DXAH/A00B 4gNhAdYDiQH8A7gB/wOjAf8DkwH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOCAf8DXAH/A00B
+gNaAccBXAFhAVwB1gFkAcABZAH8AV8B/wFfAf8BLwH/AS8B/wEMAf8BDAH/AQEB/wEBAf8BAAH/AQAB +gNaAccBXAFhAVwB1gFkAb4BZAH8AV8B/wFfAf8BLwH/AS8B/wEMAf8BDAH/AQEB/wEBAf8BAAH/AQAB
/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/gEAAf8BAAHqAQAB/wEAAaUBAAH/ASYB /wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/gEAAf8BAAHqAQAB/wEAAaUBAAH/AScB
TQEmAfoDWgHHAVwCYQHWAWQCwAH8AV8D/wEvA/8BDAP/AQED/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC TQEnAfoDWgHHAVwCYQHWAWQCvgH8AV8D/wEvA/8BDAP/AQED/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC
/gH/AQAC6gH/AQACpQH/ASYCTQH6A1oBxwJcAWEB1gJkAcAB/AJfAv8CLwL/AgwC/wIBAv8CAAL/AgAC /gH/AQAC6gH/AQACpQH/AScCTQH6A1oBxwJcAWEB1gJkAb4B/AJfAv8CLwL/AgwC/wIBAv8CAAL/AgAC
/wIAAv8CAAL/AgAC/wIAAf4B/wIAAeoB/wIAAaUB/wImAU0B+gNaAccDUAGaA44B+QPFAf8DsgH/A5wB /wIAAv8CAAL/AgAC/wIAAf4B/wIAAeoB/wIAAaUB/wInAU0B+gNaAccDUAGaA40B+QPFAf8DsgH/A5wB
/wORAf8DjgH/A44B/wOOAf8DjgH/A48B/wOOAf8DgwH/A2AB/wNaAfIDTAGQA1ABmgFqAaUBagH5AXwB /wORAf8DjgH/A44B/wOOAf8DjgH/A48B/wOOAf8DgwH/A2AB/wNaAfIDTAGQA1ABmgFqAaEBagH5AXwB
/wF8Af8BUQH/AVEB/wEfAf8BHwH/AQcB/wEHAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB /wF8Af8BUQH/AVEB/wEfAf8BHwH/AQcB/wEHAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wECAf8BAgH/AQIB/gECAf8BAAHrAQAB/wEAAa0BAAH/AVUBawFVAfIDTAGQA1ABmgFqAqUB+QF8A/8B /wECAf8BAgH/AQIB/gECAf8BAAHrAQAB/wEAAa0BAAH/AVcBawFXAfIDTAGQA1ABmgFqAqEB+QF8A/8B
UQP/AR8D/wEHA/8BAQP/AQAD/wEAA/8BAAP/AQID/wECAv4B/wEAAusB/wEAAq0B/wFVAmsB8gNMAZAD UQP/AR8D/wEHA/8BAQP/AQAD/wEAA/8BAAP/AQID/wECAv4B/wEAAusB/wEAAq0B/wFXAmsB8gNMAZAD
UAGaAmoBpQH5AnwC/wJRAv8CHwL/AgcC/wIBAv8CAAL/AgAC/wIAAv8CAgL/AgIB/gH/AgAB6wH/AgAB UAGaAmoBoQH5AnwC/wJRAv8CHwL/AgcC/wIBAv8CAAL/AgAC/wIAAv8CAgL/AgIB/gH/AgAB6wH/AgAB
rQH/AlUBawHyA0wBkAMvAUkDbAHrA6wB/gPGAf8DrgH/A5wB/wOTAf8DkAH/A48B/wOQAf8DkwH/A5MB rQH/AlcBawHyA0wBkAMvAUkDbAHrA6oB/gPGAf8DrgH/A5wB/wOTAf8DkAH/A48B/wOQAf8DkwH/A5MB
/wOFAf8DVAH9A2AB4AMtAUUDLwFJAWwBbQFsAesBgAHbAYAB/gF/Af8BfwH/AUkB/wFJAf8BHwH/AR8B /wOFAf8DUwH9A2AB4AMtAUUDLwFJA2wB6wGAAdkBgAH+AX8B/wF/Af8BSQH/AUkB/wEfAf8BHwH/AQwB
/wEMAf8BDAH/AQUB/wEFAf8BAwH/AQMB/wEFAf8BBQH/AQoB/wEKAf8BCgH+AQoB/wEBAe0BAQH/ASQB /wEMAf8BBQH/AQUB/wEDAf8BAwH/AQUB/wEFAf8BCgH/AQoB/wEKAf4BCgH/AQEB7QEBAf8BJgG2ASYB
tgEkAf0BYAFmAWAB4AMtAUUDLwFJAWwCbQHrAYAC2wH+AX8D/wFJA/8BHwP/AQwD/wEFA/8BAwP/AQUD /QFgAWYBYAHgAy0BRQMvAUkDbAHrAYAC2QH+AX8D/wFJA/8BHwP/AQwD/wEFA/8BAwP/AQUD/wEKA/8B
/wEKA/8BCgL+Af8BAQLtAf8BJAK2Af0BYAJmAeADLQFFAy8BSQJsAW0B6wKAAdsB/gJ/Av8CSQL/Ah8C CgL+Af8BAQLtAf8BJgK2Af0BYAJmAeADLQFFAy8BSQNsAesCgAHZAf4CfwL/AkkC/wIfAv8CDAL/AgUC
/wIMAv8CBQL/AgMC/wIFAv8CCgL/AgoB/gH/AgEB7QH/AiQBtgH9AmABZgHgAy0BRQMDAQQDVgGuA38B /wIDAv8CBQL/AgoC/wIKAf4B/wIBAe0B/wImAbYB/QJgAWYB4AMtAUUDAwEEA1YBrgN8AfUD2QH/A8sB
9QPZAf8DywH/A7cB/wOnAf8DnQH/A5oB/wOcAf8DnwH/A5sB/wOJAf8DaAHwA1IBowMDAQQDAwEEA1YB /wO3Af8DpwH/A50B/wOaAf8DnAH/A58B/wObAf8DiQH/A2gB8ANSAaMDAwEEAwMBBANWAa4BbwGDAW8B
rgFwAYUBcAH1AagB/wGoAf8BiQH/AYkB/wFcAf8BXAH/ATcB/wE3Af8BIgH/ASIB/wEbAf8BGwH/AR8B 9QGoAf8BqAH/AYkB/wGJAf8BXAH/AVwB/wE3Af8BNwH/ASIB/wEiAf8BGwH/ARsB/wEfAf8BHwH/ASYB
/wEfAf8BJgH/ASYB/wEdAf8BHQH/AQUB8wEFAf8BUwFsAVMB8ANSAaMDAwEEAwMBBANWAa4BcAKFAfUB /wEmAf8BHQH/AR0B/wEFAfMBBQH/AVQBawFUAfADUgGjAwMBBAMDAQQDVgGuAW8CgwH1AagD/wGJA/8B
qAP/AYkD/wFcA/8BNwP/ASID/wEbA/8BHwP/ASYD/wEdA/8BBQLzAf8BUwJsAfADUgGjAwMBBAMDAQQD XAP/ATcD/wEiA/8BGwP/AR8D/wEmA/8BHQP/AQUC8wH/AVQCawHwA1IBowMDAQQDAwEEA1YBrgJvAYMB
VgGuAnABhQH1AqgC/wKJAv8CXAL/AjcC/wIiAv8CGwL/Ah8C/wImAv8CHQL/AgUB8wH/AlMBbAHwA1IB 9QKoAv8CiQL/AlwC/wI3Av8CIgL/AhsC/wIfAv8CJgL/Ah0C/wIFAfMB/wJUAWsB8ANSAaMDAwEEBAAD
owMDAQQEAAMcAScDXQHHA38B9gO7Af4D1wH/A8wB/wPCAf8DuwH/A7cB/wOxAf8DgAH+A2sB9ANZAbwD HAEnA10BxwN9AfYDuQH+A9cB/wPMAf8DwgH/A7sB/wO3Af8DsQH/A4AB/gNpAfQDWQG8AxsBJggAAxwB
GwEmCAADHAEnA10BxwF4AYsBeAH2AZMB2wGTAf4BpQH/AaUB/wGLAf8BiwH/AXQB/wF0Af8BZgH/AWYB JwNdAccBdwGHAXcB9gGRAdkBkQH+AaUB/wGlAf8BiwH/AYsB/wF0Af8BdAH/AWYB/wFmAf8BXAH/AVwB
/wFcAf8BXAH/AU4B/wFOAf8BQgHbAUIB/gFQAX8BUAH0AVcBWQFXAbwDGwEmCAADHAEnA10BxwF4AosB /wFOAf8BTgH/AUMB2QFDAf4BUgF9AVIB9AFXAVkBVwG8AxsBJggAAxwBJwNdAccBdwKHAfYBkQLZAf4B
9gGTAtsB/gGlA/8BiwP/AXQD/wFmA/8BXAP/AU4D/wFCAtsB/gFQAn8B9AFXAlkBvAMbASYIAAMcAScD pQP/AYsD/wF0A/8BZgP/AVwD/wFOA/8BQwLZAf4BUgJ9AfQBVwJZAbwDGwEmCAADHAEnA10BxwJ3AYcB
XQHHAngBiwH2ApMB2wH+AqUC/wKLAv8CdAL/AmYC/wJcAv8CTgL/AkIB2wH+AlABfwH0AlcBWQG8AxsB 9gKRAdkB/gKlAv8CiwL/AnQC/wJmAv8CXAL/Ak4C/wJDAdkB/gJSAX0B9AJXAVkBvAMbASYMAAMhATAD
JgwAAyEBMANZAbYDbQHuA6EB+gO+Af0D1AH/A8wB/wO+Af0DigH5A2wB6wNVAawDHwEsEAADIQEwA1kB WQG2A2wB7gOfAfoDvgH9A9QB/wPMAf8DvgH9A4kB+QNsAesDVQGsAx8BLBAAAyEBMANZAbYBagFuAWoB
tgFrAW8BawHuAYoBqwGKAfoBrgHJAa4B/QGfAf8BnwH/AYwB/wGMAf8BZAHJAWQB/QFoAaUBaAH5AWEB 7gGHAakBhwH6Aa4BxgGuAf0BnwH/AZ8B/wGMAf8BjAH/AWMBxgFjAf0BaAGhAWgB+QFhAWwBYQHrA1UB
bQFhAesDVQGsAx8BLBAAAyEBMANZAbYBawJvAe4BigKrAfoBrgLJAf0BnwP/AYwD/wFkAskB/QFoAqUB rAMfASwQAAMhATADWQG2AWoCbgHuAYcCqQH6Aa4CxgH9AZ8D/wGMA/8BYwLGAf0BaAKhAfkBYQJsAesD
+QFhAm0B6wNVAawDHwEsEAADIQEwA1kBtgJrAW8B7gKKAasB+gKuAckB/QKfAv8CjAL/AmQByQH9AmgB VQGsAx8BLBAAAyEBMANZAbYCagFuAe4ChwGpAfoCrgHGAf0CnwL/AowC/wJjAcYB/QJoAaEB+QJhAWwB
pQH5AmEBbQHrA1UBrAMfASwUAAMGAQcDNgFYA1UBrANmAeUDrwH8A5kB+wNlAeIDUwGnAzMBUQMGAQcY 6wNVAawDHwEsFAADBgEHAzYBWANVAawDZgHlA60B/AOYAfsDZQHiA1MBpwMzAVEDBgEHGAADBgEHAzYB
AAMGAQcDNgFYA1UBrAFmAWcBZgHlAX4BwAF+AfwBeQG2AXkB+wNlAeIDUwGnAzMBUQMGAQcYAAMGAQcD WANVAawDZgHlAX4BvgF+AfwBdwGyAXcB+wNlAeIDUwGnAzMBUQMGAQcYAAMGAQcDNgFYA1UBrANmAeUB
NgFYA1UBrAFmAmcB5QF+AsAB/AF5ArYB+wNlAeIDUwGnAzMBUQMGAQcYAAMGAQcDNgFYA1UBrAJmAWcB fgK+AfwBdwKyAfsDZQHiA1MBpwMzAVEDBgEHGAADBgEHAzYBWANVAawDZgHlAn4BvgH8AncBsgH7A2UB
5QJ+AcAB/AJ5AbYB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQAB 4gNTAacDMwFRAwYBBwwAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+BAAHgAQcB
AQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEBgAEBAYABAQGAAQFQ 4AEHAeABBwHgAQcBwAEDAcABAwHAAQMBwAEDAYABAQGAAQEBgAEBAYABAVAAAYABAQGAAQEBgAEBAYAB
AAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBws= AQHAAQMBwAEDAcABAwHAAQMB4AEHAeABBwHgAQcB4AEHCw==
</value> </value>
</data> </data>
<metadata name="ilGames.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilGames.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -292,142 +292,166 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAoh8AAAJNU0Z0AUkBTAIBAQIB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAPCUAAAJNU0Z0AUkBTAIBAQMB
AAFQAQEBUAEBASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6 AAFYAQEBWAEBASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6
AANcAecBCAEKAQAB/wMqAUAMAAMqAUADNgFXAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwD AANcAecBCAEKAQAB/wMqAUAMAAMqAUADNgFXAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwD
PwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAI7AToBYgMzAVEDGAEh/wB1AAMhATADRgGAFAAB PwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAI7AToBYgMzAVEDGAEhVAADZAGiA28BwCAAA2YB
FQEfAQQB/wENARUBAAH/AQgBCgEAAf8BCAEKAQAB/wwAA0QBegNTAacCYQFdAc8CYQFdAc8CYQFdAc8C pgNtAbzwAAMhATADRgGAFAABFQEfAQQB/wENARUBAAH/AQgBCgEAAf8BCAEKAQAB/wwAA0QBegNTAacC
YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8C YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8C
YQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQP8AaQADWgG/AQgBCgEAAf8BCAEKAQAB/wEIAQoB YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQFQAA3QB0AN7Ae4g
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8DWgG/A1oBvwFDAXQBBwH/AUcBdwEMAf8B AAN1AdQDegHp5AADWgG/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
JQFHAQAB/wEOARkBAAH/DAACSwFKAYoCWgFYAb0CZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoC AAH/AQgBCgEAAf8DWgG/A1oBvwFDAXQBBwH/AUcBdwEMAf8BJQFHAQAB/wEOARkBAAH/DAACSwFKAYoC
ZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoC WgFYAb0CZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoC
YwFaAekCXwFbAdMDVQGvAy4BSP8AZQABCAEKAQAB/wEQAR4BAAH/ASEBQQEAAf8BJwFLAQAB/wEmAUoB ZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCZwFdAeoCYwFaAekCXwFbAdMDVQGvAy4BSFQAA3QB
AAH/ASEBQQEAAf8BEAEeAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEpAU4BAAH/AVoBlgEQAf8B 0AN7Ae4gAAN1AdQDegHp4AABCAEKAQAB/wEQAR4BAAH/ASEBQQEAAf8BJwFLAQAB/wEmAUoBAAH/ASEB
WgGcARAB/wFzAbYBJgH/ARgBLgEAAf8MAANJAYYCWgFYAbcCZQFgAeMCZQFgAeMCZQFgAeMCZQFgAeMC QQEAAf8BEAEeAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEpAU4BAAH/AVoBlgEQAf8BWgGcARAB
agFhAeYCagFeAe0BdAFoAVMB9AGuAXcBKwH8Af8BeAEAAv8BeAEAAf8BcAFuAU8B9QJqAWEB5gJlAWAB /wFzAbYBJgH/ARgBLgEAAf8MAANJAYYCWgFYAbcCZQFgAeMCZQFgAeMCZQFgAeMCZQFgAeMCagFhAeYC
4wJlAWAB4wJlAWAB4wJlAV4B4gJeAVsBzQJVAVMBqgIuAS0BRv8AYQABCAEKAQAB/wE9AXEBAgH/AUwB agFeAe0BcwFoAVMB9AGsAXcBKwH8Af8BeAEAAv8BeAEAAf8BbwFuAVEB9QJqAWEB5gJlAWAB4wJlAWAB
hgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AUwBfwEPAf8BOwFnAQgB 4wJlAWAB4wJlAV4B4gJeAVsBzQJVAVMBqgIuAS0BRlQAA3QB0AN7Ae4gAAN1AdQDegHp3AABCAEKAQAB
/wEhATQBCAH/AVMBjgELAf8BWgGcARAB/wFyAbMBJwH/AVMBgQEbAf8QAAMrAUEDNgFZAkABPwFuAkAB /wE9AXEBAgH/AUwBhgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AUwB
PwFuAkABPwFuAkABPwFuA0QBewJRAVABnwJdAVsBxQFmAmIB7gH/AXgBAAL/AXgBAAH/Al8BXQHJA0UB fwEPAf8BOwFnAQgB/wEhATQBCAH/AVMBjgELAf8BWgGcARAB/wFyAbMBJwH/AVMBgQEbAf8QAAMrAUED
fAJAAT8BbgJAAT8BbgJAAT8BbgM/AW0DOwFjAzMBUgMZASL/AF0AARUBKQEAAf8BSgGEAQQB/wFSAYwB NgFZAkABPwFuAkABPwFuAkABPwFuAkABPwFuA0QBewJRAVABnwJdAVsBxQFlAmIB7gH/AXgBAAL/AXgB
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8B AAH/Al8BXQHJA0UBfAJAAT8BbgJAAT8BbgJAAT8BbgM/AW0DOwFjAzMBUgMZASJUAAN0AdADewHuIAAD
WgGUARAB/wFWAZABDAH/AVoBmgEQAf8BWgGcARAB/wFyAakBMAH/AQgBCgEAAf8BCAEKAQAB/wwAAwwB dQHUA3oB6dgAARUBKQEAAf8BSgGEAQQB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
EAMRARYDFQEcAxUBHAMVARwDFQEcAyEBMAI+AT0BaQJTAVIBpQJmAV8B5QH/AXgBAAL/AXgBAAH/AlUB jAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFWAZABDAH/AVoBmgEQAf8BWgGcARAB
UwGqAyIBMQMVARwDFQEcAxUBHAMUARsDEwEZAxABFQMHAQn/AFkAARYBJwECAf8BSQGAAQcB/wFSAYwB /wFyAakBMAH/AQgBCgEAAf8BCAEKAQAB/wwAAwwBEAMRARYDFQEcAxUBHAMVARwDFQEcAyEBMAI+AT0B
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQsB/wFSAYwBEAH/AVIBjAEQAf8B aQJTAVIBpQJmAV8B5QH/AXgBAAL/AXgBAAH/AlUBUwGqAyIBMQMVARwDFQEcAxUBHAMUARsDEwEZAxAB
WAGSARAB/wFaAZQBEAH/AVoBmwEQAf8BWgGcARAB/wFcAZ4BEgH/ATsBbQEDAf8BCAEKAQAB/wEIAQoB FQMHAQlUAAN0AdADewHuIAADdQHUA3oB6dQAARYBJwECAf8BSQGAAQcB/wFSAYwBCAH/AVIBjAEIAf8B
AAH/AQgBCgEAAf8IAAMFBAYECAEKAwgBCgMIAQoDCAEKAxcBHwI5ATgBXQNRAZ4CZQFgAeMB/wF4AQAC UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQsB/wFSAYwBEAH/AVIBjAEQAf8BWAGSARAB/wFaAZQB
/wF4AQAB/wNSAaMDGAEhAwgBCgMIAQoDCAEKAwgBCgMHAQkDBgEHAwIBA/8AVQADXQHfAUcBgAEDAf8B EAH/AVoBmwEQAf8BWgGcARAB/wFcAZ4BEgH/ATsBbQEDAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8I
UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwB AAMFBAYECAEKAwgBCgMIAQoDCAEKAxcBHwI5ATgBXQNRAZ4CZQFgAeMB/wF4AQAC/wF4AQAB/wNSAaMD
EAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B GAEhAwgBCgMIAQoDCAEKAwgBCgMHAQkDBgEHAwIBA1QAA3QB0AN7Ae4gAAN1AdQDegHp0AADXQHfAUcB
WgGYARAB/wEWASoBAAH/AQgBCgEAAf8BCAEKAQAB/xwAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgB gAEDAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB
AAH/AlEBUAGfAxIBGP8AcQABLAFQAQAB/wFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB /wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoB
jAEIAf8BUgGMAQgB/wFSAYwBDgH/AVUBkgEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEQAf8BWgGcARAB nAEQAf8BWgGYARAB/wEWASoBAAH/AQgBCgEAAf8BCAEKAQAB/xwAAxIBFwM1AVYDUAGaA2IB4QH/AXgB
/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWAGSARYB/wEQAR4BAAH/AQgB AAL/AXgBAAH/AlEBUAGfAxIBGHAAA3QB0AN7Ae4gAAN1AdQDegHp0AABLAFQAQAB/wFKAYwBAAH/AVIB
CgEAAf8cAAMSARcDNQFWA1ABmgNiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARj/AHUAA0sBjwEzAV4B jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBDgH/AVUBkgEQAf8BWgGcARAB
AAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BfwHAATMB/wFfAZ4BFwH/ASABPwEAAf8B /wFaAZwBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoB
CAEKAQAB/wFSAYwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGVARcB/wFaAZQB lAEYAf8BWAGSARYB/wEQAR4BAAH/AQgBCgEAAf8cAAMSARcDNQFWA1ABmgNiAeEB/wF4AQAC/wF4AQAB
GAH/AVoBlAEYAf8BWgGUARgB/wEIAQoBAAH/AQgBCgEAAf8YAAMSARcDNQFWA1ABmgNiAeEB/wF4AQAC /wJRAVABnwMSARhwAAN0AdADewHuIAADdQHUA3oB6dQAA0sBjwEzAV4BAAH/AVIBjAEIAf8BUgGMAQgB
/wF4AQAB/wJRAVABnwMSARgUAAQBAwMBBAMGBAcBCQMHAQkDBAEFBAIEAf8ATQABQgF7AQAB/wFSAYwB /wFSAYwBCAH/AVIBjAEQAf8BfwHAATMB/wFfAZ4BFwH/ASABPwEAAf8BCAEKAQAB/wFSAYwBEAH/AVoB
CAH/AXsBxgEpAf8DMwFQBAADDAEQATkBawEAAf8BWgGcARAB/wFaAZwBEAH/AV0BlwETAf8BVgGUAQwB nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGVARcB/wFaAZQBGAH/AVoBlAEYAf8BWgGUARgB
/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BKQFQAQAB/wEIAQoBAAH/GAAD /wEIAQoBAAH/AQgBCgEAAf8YAAMSARcDNQFWA1ABmgNiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgU
EgEXAzUBVgNQAZoDYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMBGgMSARgD AAQBAwMBBAMGBAcBCQMHAQkDBAEFBAIEARQAAxIBFgMkAS8DJAEvAyQBLwMkAS8DJAEvAyQBLwMkAS8D
CgENAwQBBQQB/wBRAAEIAQoBAAH/DAABEwEjAQAB/wFaAZQBEAH/AVoBnAEQAf8BlAHWAUoB/wENAREB JAEvAyQBLwN1AdkDfAHxAyQBLwMkAS8DJAEvAyQBLwMkAS8DJAEvAyQBLwMkAS8DdwHcA3sB7QMkAS8D
AgH/ATEBWgEAAf8BWgGUARIB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaUBFwH/AWsBpQEhAf8B JAEvAyQBLwMkAS8DJAEvAyQBLwMkAS8DJAEvAyQBLwMOARG4AAFCAXsBAAH/AVIBjAEIAf8BewHGASkB
EAEeAQAB/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwUBBgMdASkD /wMzAVAEAAMMARABOQFrAQAB/wFaAZwBEAH/AVoBnAEQAf8BXQGXARMB/wFWAZQBDAH/AVoBnAEQAf8B
MAFKAjsBPAFlAjsBPAFkAygBPAIVARYBHQMGAQj/AD0AA10B3wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB WgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wEpAVABAAH/AQgBCgEAAf8YAAMSARcDNQFWA1AB
/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wMzAVADOgFgAUsBhQEHAf8BWgGUARAB/wFaAZwBEAH/ATkB mgNiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAQCAwkBDAMPARQDEwEaAxIBGAMKAQ0DBAEFBAEU
awEAAf8DCQEMARABHgEAAf8BVAGOARIB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AXMB AAN7AegDfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
tAEpAf8BEAEeAQAB/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwkB /wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
DAMzAVACTAFNAZECXQFfAckCWwFdAcoDRAF6AykBPQMMARD/ADkAAQgBCgEAAf8BCAEKAQAB/wEIAQoB /wN/Af8DcwHPvAABCAEKAQAB/wwAARMBIwEAAf8BWgGUARAB/wFaAZwBEAH/AZQB1gFKAf8BDQERAQIB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/ATMBXwECAf8B /wExAVoBAAH/AVoBlAESAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wFrAaUBIQH/ARAB
WgGUARAB/wFaAZwBEAH/Aa0B5wFjAf8BEAEeAQAB/wEIAQoBAAH/ARQBJgEAAf8BVAGOARIB/wFiAZsB HgEAAf8YAAMSARcDNQFWA1ABmgNiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMFAQYDHQEpAzAB
GAH/AWMBnAEYAf8BYwGlARcB/wFjAaUBFwH/AWMBnAEhAf8BGAEuAQAB/xgAAxIBFwM1AVYDUAGaA2IB SgI7ATwBZQI7ATwBZAMoATwCFQEWAR0DBgEIFAADRgFkA1wBjwNcAY8DXAGPA1wBjwNcAY8DXAGPA1wB
4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwkBCwMuAUcDSAGEAlkBXAHDAlwBXwHLA0kBhQMuAUcD jwNcAY8DXAGPA3oB6gN9AfgDXAGPA1wBjwNcAY8DXAGPA1wBjwNcAY8DXAGPA1wBjwN7AewDfAH1A1wB
DwET/wA1AAEIAQoBAAH/ASsBUgEAAf8BQQFyAQUB/wFKAYQBBgH/AUoBhAEGAf8BSgGEAQYB/wFCAXMB jwNcAY8DXAGPA1wBjwNcAY8DXAGPA1wBjwNcAY8DXAGPAz4BVqgAA10B3wEIAQoBAAH/AQgBCgEAAf8B
BgH/ASkBUAEAAf8BEAEeAQAB/wEfAToBAAH/AVUBjwELAf8BWgGVARAB/wFaAZwBEAH/AdYB/wGMAf8B CAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wMzAVADOgFgAUsBhQEHAf8BWgGUARAB/wFaAZwB
EAEeAQAB/wEYAS4BAAH/AUIBeAEDAf8BWgGUARgB/wFiAZsBGAH/AWMBnAEYAf8BYwGlARcB/wFjAaUB EAH/ATkBawEAAf8DCQEMARABHgEAAf8BVAGOARIB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUB
FwH/AXMBtAEpAf8BEAEeAQAB/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIB FwH/AXMBtAEpAf8BEAEeAQAB/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIB
GBQAAwYBCAMkATQDPAFmA1MBpwNYAbgCRwFIAYMDMQFNAw8BFP8AMQABKAFNAQAB/wFOAYgBBwH/AVIB GBQAAwkBDAMzAVACTAFNAZECXQFfAckCWwFdAcoDRAF6AykBPQMMARA8AAN0AdADewHuIAADdQHUA3oB
6cwAAQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8B
CAEKAQAB/wEIAQoBAAH/ATMBXwECAf8BWgGUARAB/wFaAZwBEAH/Aa0B5wFjAf8BEAEeAQAB/wEIAQoB
AAH/ARQBJgEAAf8BVAGOARIB/wFiAZsBGAH/AWMBnAEYAf8BYwGlARcB/wFjAaUBFwH/AWMBnAEhAf8B
GAEuAQAB/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwkBCwMuAUcD
SAGEAlkBXAHDAlwBXwHLA0kBhQMuAUcDDwETPAADdAHQA3sB7iAAA3UB1AN6AenIAAEIAQoBAAH/ASsB
UgEAAf8BQQFyAQUB/wFKAYQBBgH/AUoBhAEGAf8BSgGEAQYB/wFCAXMBBgH/ASkBUAEAAf8BEAEeAQAB
/wEfAToBAAH/AVUBjwELAf8BWgGVARAB/wFaAZwBEAH/AdYB/wGMAf8BEAEeAQAB/wEYAS4BAAH/AUIB
eAEDAf8BWgGUARgB/wFiAZsBGAH/AWMBnAEYAf8BYwGlARcB/wFjAaUBFwH/AXMBtAEpAf8BEAEeAQAB
/xgAAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwYBCAMkATQDPAFmA1MB
pwNYAbgCRwFIAYMDMQFNAw8BFDwAA3QB0AN7Ae4gAAN1AdQDegHpxAABKAFNAQAB/wFOAYgBBwH/AVIB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB
/wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFjAaUBFwH/AUIBewEAAf8BSgGEAQYB/wFSAYwBCAH/AVoB /wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFjAaUBFwH/AUIBewEAAf8BSgGEAQYB/wFSAYwBCAH/AVoB
mAEUAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUBFwH/AZQByQFNAf8EAAMQARUD mAEUAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUBFwH/AZQByQFNAf8EAAMQARUD
GgEkAyEBLwMRARYEAgQBAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwMB GgEkAyEBLwMRARYEAgQBAxIBFwM1AVYDUAGaA2IB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwMB
BAMTARkDJQE2AjsBPAFkAkEBQgFyAzMBUQMhAS8DCQEM/wAtAAEpAU4BAgH/AVIBjAEIAf8BUgGMAQgB BAMTARkDJQE2AjsBPAFkAkEBQgFyAzMBUQMhAS8DCQEMPAADdAHQA3sB7iAAA3UB1AN6AenAAAEpAU4B
/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIB AgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B
jAEQAf8BWgGUARAB/wFaAZUBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB UgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZUBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB
/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGlARcB/wFlAaABIQH/BAAD EAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8B
HgErAjEBMAFMAzsBYwMiATEDBwEJAwQBBQMSARgDNgFXA1ABmgNiAeEB/wF4AQAC/wF4AQAB/wJRAVAB YwGlARcB/wFlAaABIQH/BAADHgErAjEBMAFMAzsBYwMiATEDBwEJAwQBBQMSARgDNgFXA1ABmgNiAeEB
nwMSARgcAAMHAQkDHAEnAyMBMgIZARoBIwMPARQDBAEF/wApAANGAYABTgGIAQcB/wFSAYwBCAH/AVIB /wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMHAQkDHAEnAyMBMgIZARoBIwMPARQDBAEFPAADdAHQA3sB
7iAAA3UB1AN6Aem8AANGAYABTgGIAQcB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB
/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMB
oQEYAf8BYwGlARcB/wFjAaUBFwH/AXgBugEsAf8BCAEKAQAB/wQAAyQBNANFAXwCWgFYAbcDTgGUAz8B
bQMoATsDHwEsAzkBXgNQAZoDYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADEgEXAzwBZgNKAYkD
QAFvAy4BRwMOARI8AAN0AdADewHuIAADdQHUA3oB6bwAATUBXgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB
/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoB /wFaAZQBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZYBFgH/AVoB
lAEYAf8BWgGUARgB/wFjAZwBGAH/AWMBoQEYAf8BYwGlARcB/wFjAaUBFwH/AXgBugEsAf8BCAEKAQAB lAEYAf8BXQGXARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFwAbMBIAH/ASsBUAEEAf8IAAMnAToC
/wQAAyQBNANFAXwCWgFYAbcDTgGUAz8BbQMoATsDHwEsAzkBXgNQAZoDYgHhAf8BeAEAAv8BeAEAAf8C UwFRAaIBmgFfASEB+wJlAVwB5wJcAVoBxAJDAUIBdQMxAU0CQAE/AW4CUQFQAZ8CZQFgAeMB/wF4AQAC
UQFQAZ8DEgEYHAADEgEXAzwBZgNKAYkDQAFvAy4BRwMOARL/ACkAATUBXgEHAf8BUgGMAQgB/wFSAYwB /wF4AQAB/wJRAVABnwMSARgcAAMZASIDTgGVAlsBXgHNAlYBVwGyA0QBegMdASkDBgEIBAIEATAAA3QB
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B 0AN7Ae4gAAN1AdQDegHpvAABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
UgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZYB jAEIAf8BZwGpARcB/wFSAYwBCAH/AUoBhAEGAf8BSgGEAQYB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB
FgH/AVoBlAEYAf8BXQGXARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFwAbMBIAH/ASsBUAEEAf8I /wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFfAZgBGAH/AWMB
AAMnAToCUwFRAaIBmwFfASEB+wJlAVwB5wJcAVoBxAJDAUIBdQMxAU0CQAE/AW4CUQFQAZ8CZQFgAeMB ngEYAf8BYwGlARcB/wFrAakBHQH/ASkBUAEAAf8MAAMiATEDTgGYAm8BXAHzAmgBXgHwAmoBYQHmAloB
/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMZASIDTgGVAlsBXgHNAlYBVwGyA0QBegMdASkDBgEIBAIE VwHCAlUBUwGqA1MBpwJZAVcBvAJsAWEB6wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAxQBGwJDAUQB
Af8AHQABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGpARcB dwJWAVkBtgJbAV4BzQJWAVgBswM/AWwDJgE4AwwBDwMCAQMIAAMCAQMDDgERAw4BEQMOAREDDgERAw4B
/wFSAYwBCAH/AUoBhAEGAf8BSgGEAQYB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB/wFaAZwBEAH/AVoB EQMOAREDDgERAw4BEQMOAREDdAHTA3sB7wMOAREDDgERAw4BEQMOAREDDgERAw4BEQMOAREDDgERA3QB
nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFfAZgBGAH/AWMBngEYAf8BYwGlARcB 1wN7AeoDDgERAw4BEQMOAREDDgERAw4BEQMOAREDDgERAw4BEQMOAREDBAEFlAABSgGEAQYB/wFSAYwB
/wFrAakBHQH/ASkBUAEAAf8MAAMiATEDTgGYAm8BWwHzAmgBXQHwAmoBYQHmAloBVwHCAlUBUwGqA1MB CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AWkBpAEeAf8BLAFQAQMB/wEIAQoBAAH/ATcBYQEHAf8B
pwJZAVcBvAJsAWEB6wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAxQBGwJDAUQBdwJWAVkBtgJbAV4B UgGMAQ4B/wFSAYwBEAH/AX8BwQEyAf8BWwFeAVsB0wNaAb8BLwFZAQAB/wFEAXoBBQH/AVABigEIAf8B
zQJWAVgBswM/AWwDJgE4AwwBDwMCAQP/AB0AAUoBhAEGAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B WgGcAQ4B/wFaAZwBEAH/AVoBnAEQAf8BTwGGARAB/wFEAXQBDAH/A1oBvxAAAhoBGQEjA0QBewJdAVsB
UgGMAQgB/wFpAaQBHgH/ASwBUAEDAf8BCAEKAQAB/wE3AWEBBwH/AVIBjAEOAf8BUgGMARAB/wF/AcEB ygJjAV8B2gJpAWAB6AJnAVkB7wJlAV0B7AJhAVwB1gJfAVsB2AFzAWgBUwH0Af8BeAEAAv8BeAEAAf8C
MgH/AVsBXgFbAdMDWgG/AS8BWQEAAf8BRAF6AQUB/wFQAYoBCAH/AVoBnAEOAf8BWgGcARAB/wFaAZwB UQFQAZ8DEgEYHAADDwETAzQBUwNNAZICXQFhAc8CXQFhAdQCUgFUAagCQQFCAXIDJgE4AxQBGwMGAQgD
EAH/AU8BhgEQAf8BRAF0AQwB/wNaAb8QAAIaARkBIwNEAXsCXQFbAcoCYwFfAdoCaQFgAegCZwFZAe8B AgEDA3ABwgN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
ZgFlAV0B7AJhAVwB1gJfAVsB2AF0AWgBUwH0Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADDwETAzQB fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
UwNNAZICXQFhAc8CXQFhAdQCUgFUAagCQQFCAXIDJgE4AxQBGwMGAQgDAgED/wAVAAFKAYwBAAH/AVIB fwH/A38B/wN4AdyUAAFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGdAScB
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGdAScB/wEIAQoBAAH/AQoBDwEAAf8BQgF3AQMB /wEIAQoBAAH/AQoBDwEAAf8BQgF3AQMB/wFSAYwBEAH/AVoBnAEQAf8BJQFBAQUB/wQAAzoBYAEIAQoB
/wFSAYwBEAH/AVoBnAEQAf8BJQFBAQUB/wQAAzoBYAEIAQoBAAH/AQgBCgEAAf8EAANGAYADRgGAA0YB AAH/AQgBCgEAAf8EAANGAYADRgGAA0YBgBwAAwoBDQMiATEDNAFUA0QBeAJRAVABnwJhAV0BzwJqAV4B
gBwAAwoBDQMiATEDNAFUA0QBeAJRAVABnwJhAV0BzwJqAV4B7QFmAWUBXQHsAmgBXQHwAZsBXwEhAfsB 7QJlAV0B7AJoAV4B8AGaAV8BIQH7Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADBgEIAxgBIQMxAU0C
/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMGAQgDGAEhAzEBTQJMAU0BkQJYAVoBvQJdAWEB0QJZAVwB TAFNAZECWAFaAb0CXQFhAdECWQFcAcMCUQFTAaIDPQFnAhkBGgEjAwwBDwNMAW8DaAGtA2gBrQNoAa0D
wwJRAVMBogM9AWcCGQEaASMDDAEP/wAVAAE7AW0BAgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB aAGtA2gBrQNoAa0DaAGtA2gBrQNoAa0DewHwA30B+gNoAa0DaAGtA2gBrQNoAa0DaAGtA2gBrQNoAa0D
jAEIAf8BUwGOARAB/wEPARsBAAH/ASMBQwEAAf8BUgGMARAB/wFSAYwBEAH/AXsBvQEwAf8BCAEKAQAB aAGtA3wB8QN9AfgDaAGtA2gBrQNoAa0DaAGtA2gBrQNoAa0DaAGtA2gBrQNoAa0DVQGBlAABOwFtAQIB
/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/ygAAwMBBAMJAQsD /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVMBjgEQAf8BDwEbAQAB/wEjAUMBAAH/AVIB
IgExAzgBWwJPAU4BlwJfAVwByAJmAV8B5QGGAW8BUQH3Ab4BXQE2Af0B/wF4AQAC/wF4AQAB/wJRAVAB jAEQAf8BUgGMARAB/wF7Ab0BMAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB
nwMSARgcAAQBAwIBAwMVARwDNQFWAksBTAGPAlwBXwHIAl0BYwHfAmABZQHjAlIBUwGlAzQBUwMcASf/ /wEIAQoBAAH/AQgBCgEAAf8oAAMDAQQDCQELAyIBMQM4AVsCTwFOAZcCXwFcAcgCZgFfAeUBhQFvAVEB
ABUAAQgBCgEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AU4BggEPAf8B 9wG+AVwBOAH9Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAAEAQMCAQMDFQEcAzUBVgJLAUwBjwJcAV8B
SgGEAQYB/wFSAYwBEAH/AWMBpQEXAf8BCAEKAQAB/wEIAQoBAAH/ARMBIwEAAf8BQgFzAQYB/wEgAT8B yAJdAWMB3wJgAWUB4wJSAVMBpQM0AVMDHAEnKAADdAHQA3sB7iAAA3UB1AN6Aem8AAEIAQoBAAH/AVIB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/yAABAEDAwEEAwwBEAMYASAD jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFOAYIBDwH/AUoBhAEGAf8BUgGMARAB
KQE9Az4BagJXAVYBtQJmAV8B5QGGAW8BUQH3Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYIAAEAQMHAQkD /wFjAaUBFwH/AQgBCgEAAf8BCAEKAQAB/wETASMBAAH/AUIBcwEGAf8BIAE/AQAB/wEIAQoBAAH/AQgB
FAEbAyoBQANDAXYDVQGvAloBYwHpAlsBXwHQAlABUQGfAzMBUf8AGQABQgFzAQYB/wFSAYwBCAH/AVIB CgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8gAAQBAwMBBAMMARADGAEgAykBPQM+AWoCVwFWAbUC
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AUoBhAEGAf8BEAEeAQAB ZgFfAeUBhQFvAVEB9wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGCAABAEDBwEJAxQBGwMqAUADQwF2A1UB
/wExAVoBAAH/AU0BhAENAf8BWgGcARAB/wFaAZwBEAH/AVIBjAEIAf8BEAEeAQAB/wEIAQoBAAH/AQgB rwJaAWMB6QJbAV8B0AJQAVEBnwMzAVEoAAN0AdADewHuIAADdQHUA3oB6cAAAUIBcwEGAf8BUgGMAQgB
CgEAAf8DRgGALAADAgEDAwsBDgMgAS4DQwF2AlcBVQGxAmYBYAHgAXcBYwFIAfYBjgFqAUEB+QJRAVAB /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFKAYQBBgH/ARAB
nAMSARcMAAQBAwwBEAMXAR8DHQEoAx0BKAMMAQ8IAAMPARQCJgEnATkCRwFIAYMDYgHhAlwBZQHnA14B HgEAAf8BMQFaAQAB/wFNAYQBDQH/AVoBnAEQAf8BWgGcARAB/wFSAYwBCAH/ARABHgEAAf8BCAEKAQAB
0gI/AUABbv8AHQABSQGJAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B /wEIAQoBAAH/A0YBgCwAAwIBAwMLAQ4DIAEuA0MBdgJXAVUBsQJmAWAB4AF2AWMBSAH2AY0BagFBAfkC
UgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB UQFQAZwDEgEXDAAEAQMMARADFwEfAx0BKAMdASgDDAEPCAADDwEUAiYBJwE5AkcBSAGDA2IB4QJcAWUB
EAH/AVoBlAEYAf8BQgFzAQYB/wEKAQ4BAAH/MAAEAQMDAQQDDAEPAx4BKgM6AWECWQFXAbkCYwFbAeQB 5wNeAdICPwFAAW4oAAN0AdADewHuIAADdQHUA3oB6cQAAUkBiQEAAf8BUgGMAQgB/wFSAYwBCAH/AVIB
ZgJiAe4CTwFOAZcDEgEXDAADAgEDAyEBLwM2AVkCQgFDAXUCQQFCAXMDHgErCAADBAEFAwwBDwM4AVwC jAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB
XQFgAc4CXQFmAewCWQFnAe8DRgF//wAhAAE6AWsBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB /wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AUIBcwEGAf8BCgEOAQAB/zAABAEDAwEEAwwB
jAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB DwMeASoDOgFhAlkBVwG5AmMBWwHkAWUCYgHuAk8BTgGXAxIBFwwAAwIBAwMhAS8DNgFZAkIBQwF1AkEB
/wFaAZQBGAH/AVoBlAEYAf8BYwGlARcB/wEZASwBAwH/OAADAgEDAwgBCgMgAS0CQQFAAXECTQFMAZED QgFzAx4BKwgAAwQBBQMMAQ8DOAFcAl0BYAHOAl0BZQHsAlkBZwHvA0YBfygAA3QB0AN7Ae4gAAN1AdQD
UAGaAjsBOgFiAwwBDwwAAwMBBAMrAUEDRAF6A1MBpwNVAa0DNwFaAxgBIAMJAQsDBgEHAw0BEQM5AV8C egHpyAABOgFrAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB
XQFhAdECWQFnAe8CWwFvAfMCRgFHAYH/ACUAASwBVQEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B /wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMB
UgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQB pQEXAf8BGQEsAQMB/zgAAwIBAwMIAQoDIAEtAkEBQAFxAk0BTAGRA1ABmgI7AToBYgMMAQ8MAAMDAQQD
GAH/AVoBlAEYAf8BIQFBAQAB/0AABAIDBwEJAxAEFQEcAhYBFQEdAw8BEwMCAQMMAAMDAQQDMANLAUwB KwFBA0QBegNTAacDVQGtAzcBWgMYASADCQELAwYBBwMNAREDOQFfAl0BYQHRAlkBZwHvAlwBbwHzAkYB
jwJbAV0BygJbAWEB3gNOAZQDNAFTAxUBHAMNAREDHgErAkMBRAF3Al0BYwHfAmEBcAHxAloBYwHpA0QB RwGBKAADdAHQA3sB7iAAA3UB1AN6AenMAAEsAVUBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIB
e/8AIQABEgEiAQAB/wFMAYYBBgH/AVIBjAEIAf8BWgGcARAB/wFQAYoBCAH/AVIBjAEQAf8BWgGUARAB jAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB
/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAERAf8BaQGrAR8B/wEIAQoBAAH/bAAD /wFaAZQBGAH/ASEBQQEAAf9AAAQCAwcBCQMQBBUBHAIWARUBHQMPARMDAgEDDAADAwEEAzADSwFMAY8C
AgEDAyEBLwM6AWEDVQGtAl8BYwHaA1oBvwJQAVEBnwNEAXoCQQFCAXIDSQGFAlYBVwGyAl4BagHtAmAB WwFdAcoCWwFhAd4DTgGUAzQBUwMVARwDDQERAx4BKwJDAUQBdwJdAWMB3wJiAXAB8QJaAWMB6QNEAXso
ZAHbAlUBVwGxAzgBW/8AIQABEAEeAQAB/wFIAX0BBwH/AVkBkwETAf8BVQGIARgB/wgAASEBQQEAAf8B AAN0AdADewHuIAADdQHUA3oB6cgAARIBIgEAAf8BTAGGAQYB/wFSAYwBCAH/AVoBnAEQAf8BUAGKAQgB
QgF7AQAB/wFSAYwBCAH/AVUBkQEIAf8BOQFmAQQB/wNZAe94AAMGAQgDFwEfA0QBewJZAVwBxgJbAWMB /wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEQH/AWkB
5AJTAXQB9AJiAWYB7gJiAWYB7gJhAXAB8QJIAXcB9gIrAa4B/AJZAVwBvgM+AWsDJAE0/wApAAEeAToB qwEfAf8BCAEKAQAB/2wAAwIBAwMhAS8DOgFhA1UBrQJfAWMB2gNaAb8CUAFRAZ8DRAF6AkEBQgFyA0kB
AAH/nAAEAgMJAQwDKgM/AUABbgNOAZYCVgFYAbMCWQFcAcECWgFdAccCWgFdAccCVwFZAbkCUQFSAaQC hQJWAVcBsgJeAWoB7QJgAWQB2wJVAVcBsQM4AVsoAAN0AdADewHuIAADdQHUA3oB6cgAARABHgEAAf8B
QAFBAXEDJQE2AxMBGf8A0QAEAQMLAQ4DJgE4AzkBXgNGAX0CSgFLAYsDSgGJAz4BawMqAT8DFwEfAwIB SAF9AQcB/wFZAZMBEwH/AVUBiAEYAf8IAAEhAUEBAAH/AUIBewEAAf8BUgGMAQgB/wFVAZEBCAH/ATkB
A/8ABQABQgFNAT4HAAE+AwABKAMAAYADAAEgAwABAQEAAQEGAAECFgAD/wEAA/8BxwIAAQcB/wgAAv8B ZgEEAf8DWQHveAADBgEIAxcBHwNEAXsCWQFcAcYCWwFjAeQCUwFzAfQCYgFlAe4CYgFlAe4CYgFwAfEC
zwGHAgABBwH/CAAB/wH+AQABBwIAAQcB/wgAAf8B/AEAAQcCAAEHAf8IAAH/AfgBAAEPAgABBwH/CAAB SAF2AfYCKwGsAfwCWQFcAb4DPgFrAyQBNCgAA3QB0AN7Ae4gAAN1AdQDegHp0AABHgE6AQAB/5wABAID
/wHwAQABBwIAAQcB/wgAAf8B4AEAAQMCAAEHAf8IAAH/AcABAAEBAfwBAwL/CAAB/wHAAQABAQH8AQMC CQEMAyoDPwFAAW4DTgGWAlYBWAGzAlkBXAHBAloBXQHHAloBXQHHAlcBWQG5AlEBUgGkAkABQQFxAyUB
/wgAAf8B4AIAAfwBAwHgAR8IAAH/AfwBIAEAAfwBAwHgAR8IAAH/Af4B4AEAAfwBAwHgAR8IAAH/AcAC NgMTARkoAAN0AdADewHuIAADdQHUA3oB6f8AeQAEAQMLAQ4DJgE4AzkBXgNGAX0CSgFLAYsDSgGJAz4B
AAH8AQMB4AEfCAAB/wGAAgAB/AEDAeABHwgAAf8DAAH8AQMB4AEfCAAB/gIAAQEBAAEDAeABHwgAAfwC awMqAT8DFwEfAwIBAywAA2QBogNuAb8gAANmAaYDbQG7qAABQgFNAT4HAAE+AwABKAMAAYADAAEgAwAB
AAEBAQABAwH4AR8IAAH4AgABAQEAAQMB+AEfCAAB+AIAAQMBAAEDAfgBAwgAAfgCAAEHAQABAwH4AQMI AQEAAQEGAAECFgAD/wEAA/8BxwIAAQcC/wHPAfMB/wQAAv8BzwGHAgABBwL/Ac8B8wH/BAAB/wH+AQAB
AAH4AgABDwEAAQMB+AkAAfgBAAFEAX8BAAEDAfgJAAH4AQABAQH/AYABAwH4CQAB+AIAAX8BgAEDAfwJ BwIAAQcC/wHPAfMB/wQAAf8B/AEAAQcCAAEHAv8BzwHzAf8EAAH/AfgBAAEPAgABBwL/Ac8B8wH/BAAB
AAH8AgABfwHwAQMBgQGACAAB/gIAAf8B8AEDAYEBgAgAAf8CAAH/AfwBAwGACQAB/wGAAQEB/wH+AQMB /wHwAQABBwIAAQcC/wHPAfMB/wQAAf8B4AEAAQMCAAEHAv8BzwHzAf8EAAH/AcABAAEBAfwBAwP/Ac8B
gAkAAf8BAAEDA/8BgAkAAf8BDAEPA/8BwAkAAf8B3wT/AcAJAAb/AfABAQgACw== 8wH/BAAB/wHAAQABAQH8AQMD/wHPAfMB/wQAAf8B4AIAAfwBAwHgAR8IAAH/AfwBIAEAAfwBAwHgAR8I
AAH/Af4B4AEAAfwBAwHgAR8IAAH/AcACAAH8AQMB4AEfAf8BzwHzAf8EAAH/AYACAAH8AQMB4AEfAf8B
zwHzAf8EAAH/AwAB/AEDAeABHwH/Ac8B8wH/BAAB/gIAAQEBAAEDAeABHwH/Ac8B8wH/BAAB/AIAAQEB
AAEDAfgBHwH/Ac8B8wH/BAAB+AIAAQEBAAEDAfgBHwH/Ac8B8wH/BAAB+AIAAQMBAAEDAfgBAwH/Ac8B
8wH/BAAB+AIAAQcBAAEDAfgBAwgAAfgCAAEPAQABAwH4CQAB+AEAAUQBfwEAAQMB+AkAAfgBAAEBAf8B
gAEDAfgBAAH/Ac8B8wH/BAAB+AIAAX8BgAEDAfwBAAH/Ac8B8wH/BAAB/AIAAX8B8AEDAYEBgAH/Ac8B
8wH/BAAB/gIAAf8B8AEDAYEBgAH/Ac8B8wH/BAAB/wIAAf8B/AEDAYABAAH/Ac8B8wH/BAAB/wGAAQEB
/wH+AQMBgAEAAf8BzwHzAf8EAAH/AQABAwP/AYABAAH/Ac8B8wH/BAAB/wEMAQ8D/wHAAQAB/wHPAfMB
/wQAAf8B3wT/AcABAAH/Ac8B8wH/BAAG/wHwAQEB/wHPAfMB/wQACw==
</value> </value>
</data> </data>
<metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -438,7 +462,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAuhIAAAJNU0Z0AUkBTAIBAQQB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAuhIAAAJNU0Z0AUkBTAIBAQQB
AAFQAQIBUAECARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ AAFYAQIBWAECARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ACIAA2cB7wJnAVkB7wFnAV0BWQHvAWcBWwFZAe8B AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ACIAA2cB7wJnAVkB7wFnAV0BWQHvAWcBWwFZAe8B
ZwFbAVkB7wFnAlkB7wFnAWQBWQHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvAwcB ZwFbAVkB7wFnAlkB7wFnAWQBWQHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvAwcB
CQMqAT8DRQF8A1kBuwNjAd8DaAH0A4AB/gOBAf8DgQH/A4EB/wOAAf4DaAH0A2MB3wNaAboDRAF6AycB CQMqAT8DRQF8A1kBuwNjAd8DaAH0A4AB/gOBAf8DgQH/A4EB/wOAAf4DaAH0A2MB3wNaAboDRAF6AycB
@ -464,7 +488,7 @@
YAH/AYMBggF/Af8BhQGCAX0B/wGzAZMBRAH/Ac8BlAEAAf8B3gHMAZ8B/wOwAf8DsAH/A7AB/wOwAf8D YAH/AYMBggF/Af8BhQGCAX0B/wGzAZMBRAH/Ac8BlAEAAf8B3gHMAZ8B/wOwAf8DsAH/A7AB/wOwAf8D
sAH/A7AB/wOwAf8DsAH/A6gB/wMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D sAH/A7AB/wOwAf8DsAH/A6gB/wMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D
gQH9A2gB8ANhAdQDUwGlAzYBWQMYASAIAAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0B gQH9A2gB8ANhAdQDUwGlAzYBWQMYASAIAAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0B
AAH/AagBeAEAAf8BlQFqAQAB/wKAAUoB/gFcAlkBxgNXAbUDFgEeCAAB/wGyAW8B/wH9AYABEQH/AfwB AAH/AagBeAEAAf8BlQFqAQAB/wKAAUsB/gFcAlkBxgNXAbUDFgEeCAAB/wGyAW8B/wH9AYABEQH/AfwB
dwEBAf8B/QF3AQAC/wF4AQAC/wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcB dwEBAf8B/QF3AQAC/wF4AQAC/wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcB
AAH/AeUBbAEAAf8BsQFUAQAB/wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwB AAH/AeUBbAEAAf8BsQFUAQAB/wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwB
ogEUAf8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/RAAD ogEUAf8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/RAAD
@ -501,7 +525,7 @@
zgGfAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DZAHbA2gB9AOBAf8DgQH/A4EB zgGfAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DZAHbA2gB9AOBAf8DgQH/A4EB
/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DVQGvAwcBCQNiAe4B8QG8ATsB /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DVQGvAwcBCQNiAe4B8QG8ATsB
/wH6AeoBwgH/A9wB/wN3Af8DaAH/A2gB/wNoAf8DMgn/AfIB3QGpAf8B6gGpAQgB/wM+AWoEAANeAdIB /wH6AeoBwgH/A9wB/wN3Af8DaAH/A2gB/wNoAf8DMgn/AfIB3QGpAf8B6gGpAQgB/wM+AWoEAANeAdIB
fwFxAWoB+QH/AbsBfQL/AaMBUgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0B fQFvAWoB+QH/AbsBfQL/AaMBUgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0B
CQL/AYABDwL/AX8BDQH/AfgBhgEgAf8DaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIBbQH/AeAB CQL/AYABDwL/AX8BDQH/AfgBhgEgAf8DaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIBbQH/AeAB
rwE3Af8B5wGpARAB/wHrAdUBoAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/AzwB rwE3Af8B5wGpARAB/wHrAdUBoAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/AzwB
ZANfAckDfQH6A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DfQH6A1UB ZANfAckDfQH6A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DfQH6A1UB
@ -511,7 +535,7 @@
8QHBAUkB/wH5AeMBrAH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/AwYBCAMxAUwD 8QHBAUkB/wH5AeMBrAH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/AwYBCAMxAUwD
UAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQgAAyIB UAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQgAAyIB
MQNfAckCfQFnAfoB8wHKAWUB/wH5AeEBpgH/AfsB7QHMAf8B+wHsAcgB/wH4Ad0BmwH/A4AB/gJlAV4B MQNfAckCfQFnAfoB8wHKAWUB/wH5AeEBpgH/AfsB7QHMAf8B+wHsAcgB/wH4Ad0BmwH/A4AB/gJlAV4B
4gM9AWgEAQwAA0IBcgNjAdUBfwF1AWoB+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8B 4gM9AWgEAQwAA0IBcgNjAdUBfQFzAWoB+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8B
SwL/AaMBUQL/AacBWAH/A3wB+ANdAccDOwFiBABA/wgAAwUBBgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB SwL/AaMBUQL/AacBWAH/A3wB+ANdAccDOwFiBABA/wgAAwUBBgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB
9gNiAe4DXgHSA1EBngM5AV8DEQEWAwUBBhQAAw8BEwNHAYIDZAHbAn4BbwH8A2cB6gNUAagDKAE7HAAD 9gNiAe4DXgHSA1EBngM5AV8DEQEWAwUBBhQAAw8BEwNHAYIDZAHbAn4BbwH8A2cB6gNUAagDKAE7HAAD
PAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8BhgL/Ac0BoQL/AekB1gH/A1wB PAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8BhgL/Ac0BoQL/AekB1gH/A1wB

View File

@ -0,0 +1,457 @@
namespace qtc_net_client_2
{
partial class TicTacToeGame
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
pBoard = new Panel();
btnSquare9 = new Button();
btnSquare1 = new Button();
btnSquare7 = new Button();
btnSquare8 = new Button();
btnSquare6 = new Button();
btnSquare4 = new Button();
btnSquare5 = new Button();
btnSquare3 = new Button();
btnSquare2 = new Button();
pbBoard = new PictureBox();
pSymbolSelection = new Panel();
btnOSelect = new Button();
btnXSelect = new Button();
label1 = new Label();
pLoading = new Panel();
btnPlayAgain = new Button();
lblPlayAgain = new Label();
lblLoadStatus = new Label();
lblPlayerOne = new Label();
lblP1Username = new Label();
lblP2Username = new Label();
lblPlayerTwo = new Label();
lvUserlist = new ListView();
rtxtChatbox = new RichTextBox();
btnSend = new Button();
rtxtChat = new RichTextBox();
lblJackpotWon = new Label();
pBoard.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pbBoard).BeginInit();
pSymbolSelection.SuspendLayout();
pLoading.SuspendLayout();
SuspendLayout();
//
// pBoard
//
pBoard.Controls.Add(btnSquare9);
pBoard.Controls.Add(btnSquare1);
pBoard.Controls.Add(btnSquare7);
pBoard.Controls.Add(btnSquare8);
pBoard.Controls.Add(btnSquare6);
pBoard.Controls.Add(btnSquare4);
pBoard.Controls.Add(btnSquare5);
pBoard.Controls.Add(btnSquare3);
pBoard.Controls.Add(btnSquare2);
pBoard.Controls.Add(pbBoard);
pBoard.Enabled = false;
pBoard.Location = new Point(30, 18);
pBoard.Name = "pBoard";
pBoard.Size = new Size(541, 474);
pBoard.TabIndex = 0;
//
// btnSquare9
//
btnSquare9.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare9.FlatAppearance.BorderSize = 0;
btnSquare9.FlatStyle = FlatStyle.Flat;
btnSquare9.Location = new Point(374, 341);
btnSquare9.Name = "btnSquare9";
btnSquare9.Size = new Size(99, 90);
btnSquare9.TabIndex = 11;
btnSquare9.UseVisualStyleBackColor = true;
btnSquare9.Click += btnSquareX_Click;
//
// btnSquare1
//
btnSquare1.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare1.FlatAppearance.BorderSize = 0;
btnSquare1.FlatStyle = FlatStyle.Flat;
btnSquare1.Location = new Point(79, 49);
btnSquare1.Name = "btnSquare1";
btnSquare1.Size = new Size(99, 90);
btnSquare1.TabIndex = 4;
btnSquare1.UseVisualStyleBackColor = true;
btnSquare1.Click += btnSquareX_Click;
//
// btnSquare7
//
btnSquare7.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare7.FlatAppearance.BorderSize = 0;
btnSquare7.FlatStyle = FlatStyle.Flat;
btnSquare7.Location = new Point(79, 341);
btnSquare7.Name = "btnSquare7";
btnSquare7.Size = new Size(99, 90);
btnSquare7.TabIndex = 10;
btnSquare7.UseVisualStyleBackColor = true;
btnSquare7.Click += btnSquareX_Click;
//
// btnSquare8
//
btnSquare8.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare8.FlatAppearance.BorderSize = 0;
btnSquare8.FlatStyle = FlatStyle.Flat;
btnSquare8.Location = new Point(229, 341);
btnSquare8.Name = "btnSquare8";
btnSquare8.Size = new Size(99, 90);
btnSquare8.TabIndex = 9;
btnSquare8.UseVisualStyleBackColor = true;
btnSquare8.Click += btnSquareX_Click;
//
// btnSquare6
//
btnSquare6.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare6.FlatAppearance.BorderSize = 0;
btnSquare6.FlatStyle = FlatStyle.Flat;
btnSquare6.Location = new Point(374, 195);
btnSquare6.Name = "btnSquare6";
btnSquare6.Size = new Size(99, 90);
btnSquare6.TabIndex = 8;
btnSquare6.UseVisualStyleBackColor = true;
btnSquare6.Click += btnSquareX_Click;
//
// btnSquare4
//
btnSquare4.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare4.FlatAppearance.BorderSize = 0;
btnSquare4.FlatStyle = FlatStyle.Flat;
btnSquare4.Location = new Point(79, 195);
btnSquare4.Name = "btnSquare4";
btnSquare4.Size = new Size(99, 90);
btnSquare4.TabIndex = 7;
btnSquare4.UseVisualStyleBackColor = true;
btnSquare4.Click += btnSquareX_Click;
//
// btnSquare5
//
btnSquare5.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare5.FlatAppearance.BorderSize = 0;
btnSquare5.FlatStyle = FlatStyle.Flat;
btnSquare5.Location = new Point(229, 195);
btnSquare5.Name = "btnSquare5";
btnSquare5.Size = new Size(99, 90);
btnSquare5.TabIndex = 6;
btnSquare5.UseVisualStyleBackColor = true;
btnSquare5.Click += btnSquareX_Click;
//
// btnSquare3
//
btnSquare3.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare3.FlatAppearance.BorderSize = 0;
btnSquare3.FlatStyle = FlatStyle.Flat;
btnSquare3.Location = new Point(374, 49);
btnSquare3.Name = "btnSquare3";
btnSquare3.Size = new Size(99, 90);
btnSquare3.TabIndex = 5;
btnSquare3.UseVisualStyleBackColor = true;
btnSquare3.Click += btnSquareX_Click;
//
// btnSquare2
//
btnSquare2.BackgroundImageLayout = ImageLayout.Stretch;
btnSquare2.FlatAppearance.BorderSize = 0;
btnSquare2.FlatStyle = FlatStyle.Flat;
btnSquare2.Location = new Point(229, 49);
btnSquare2.Name = "btnSquare2";
btnSquare2.Size = new Size(99, 90);
btnSquare2.TabIndex = 3;
btnSquare2.UseVisualStyleBackColor = true;
btnSquare2.Click += btnSquareX_Click;
//
// pbBoard
//
pbBoard.Image = Properties.Resources.Tic_tac_toe;
pbBoard.Location = new Point(27, 15);
pbBoard.Name = "pbBoard";
pbBoard.Size = new Size(501, 444);
pbBoard.SizeMode = PictureBoxSizeMode.Zoom;
pbBoard.TabIndex = 0;
pbBoard.TabStop = false;
//
// pSymbolSelection
//
pSymbolSelection.BorderStyle = BorderStyle.FixedSingle;
pSymbolSelection.Controls.Add(btnOSelect);
pSymbolSelection.Controls.Add(btnXSelect);
pSymbolSelection.Controls.Add(label1);
pSymbolSelection.Location = new Point(161, 109);
pSymbolSelection.Name = "pSymbolSelection";
pSymbolSelection.Size = new Size(275, 255);
pSymbolSelection.TabIndex = 3;
pSymbolSelection.Visible = false;
//
// btnOSelect
//
btnOSelect.BackgroundImage = Properties.Resources.O;
btnOSelect.BackgroundImageLayout = ImageLayout.Stretch;
btnOSelect.FlatAppearance.BorderSize = 0;
btnOSelect.FlatStyle = FlatStyle.Flat;
btnOSelect.Location = new Point(157, 104);
btnOSelect.Name = "btnOSelect";
btnOSelect.Size = new Size(91, 89);
btnOSelect.TabIndex = 2;
btnOSelect.UseVisualStyleBackColor = true;
btnOSelect.Click += btnOSelect_Click;
//
// btnXSelect
//
btnXSelect.BackgroundImage = Properties.Resources.X;
btnXSelect.BackgroundImageLayout = ImageLayout.Stretch;
btnXSelect.FlatAppearance.BorderSize = 0;
btnXSelect.FlatStyle = FlatStyle.Flat;
btnXSelect.Location = new Point(34, 103);
btnXSelect.Name = "btnXSelect";
btnXSelect.Size = new Size(91, 89);
btnXSelect.TabIndex = 1;
btnXSelect.UseVisualStyleBackColor = true;
btnXSelect.Click += btnXSelect_Click;
//
// label1
//
label1.Font = new Font("Segoe UI", 15F, FontStyle.Bold, GraphicsUnit.Point, 0);
label1.ForeColor = Color.White;
label1.Location = new Point(11, 14);
label1.Name = "label1";
label1.Size = new Size(250, 49);
label1.TabIndex = 0;
label1.Text = "Please Select Symbol";
label1.TextAlign = ContentAlignment.MiddleCenter;
//
// pLoading
//
pLoading.BorderStyle = BorderStyle.FixedSingle;
pLoading.Controls.Add(btnPlayAgain);
pLoading.Controls.Add(lblPlayAgain);
pLoading.Controls.Add(lblLoadStatus);
pLoading.Location = new Point(161, 109);
pLoading.Name = "pLoading";
pLoading.Size = new Size(275, 255);
pLoading.TabIndex = 2;
pLoading.Visible = false;
//
// btnPlayAgain
//
btnPlayAgain.Location = new Point(97, 223);
btnPlayAgain.Name = "btnPlayAgain";
btnPlayAgain.Size = new Size(75, 23);
btnPlayAgain.TabIndex = 2;
btnPlayAgain.Text = "Play Again";
btnPlayAgain.UseVisualStyleBackColor = true;
btnPlayAgain.Visible = false;
btnPlayAgain.Click += btnPlayAgain_Click;
//
// lblPlayAgain
//
lblPlayAgain.ForeColor = Color.White;
lblPlayAgain.Location = new Point(28, 134);
lblPlayAgain.Name = "lblPlayAgain";
lblPlayAgain.Size = new Size(218, 86);
lblPlayAgain.TabIndex = 1;
lblPlayAgain.Text = "If you wish to play with a different user, you can close\r\nthis window and match up again. Otherwise click\r\n\"Play Again\"";
lblPlayAgain.TextAlign = ContentAlignment.MiddleCenter;
lblPlayAgain.Visible = false;
//
// lblLoadStatus
//
lblLoadStatus.Font = new Font("Segoe UI", 21.75F, FontStyle.Bold, GraphicsUnit.Point, 0);
lblLoadStatus.ForeColor = Color.White;
lblLoadStatus.Location = new Point(11, 4);
lblLoadStatus.Name = "lblLoadStatus";
lblLoadStatus.Size = new Size(250, 130);
lblLoadStatus.TabIndex = 0;
lblLoadStatus.Text = "Text";
lblLoadStatus.TextAlign = ContentAlignment.MiddleCenter;
//
// lblPlayerOne
//
lblPlayerOne.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblPlayerOne.ForeColor = Color.White;
lblPlayerOne.Location = new Point(30, 501);
lblPlayerOne.Name = "lblPlayerOne";
lblPlayerOne.Size = new Size(29, 23);
lblPlayerOne.TabIndex = 2;
lblPlayerOne.Text = "P1";
//
// lblP1Username
//
lblP1Username.AutoSize = true;
lblP1Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic);
lblP1Username.ForeColor = Color.White;
lblP1Username.Location = new Point(26, 519);
lblP1Username.Name = "lblP1Username";
lblP1Username.Size = new Size(105, 28);
lblP1Username.TabIndex = 3;
lblP1Username.Text = "Username";
//
// lblP2Username
//
lblP2Username.AutoSize = true;
lblP2Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic);
lblP2Username.ForeColor = Color.White;
lblP2Username.Location = new Point(466, 519);
lblP2Username.Name = "lblP2Username";
lblP2Username.Size = new Size(105, 28);
lblP2Username.TabIndex = 5;
lblP2Username.Text = "Username";
lblP2Username.TextAlign = ContentAlignment.MiddleRight;
//
// lblPlayerTwo
//
lblPlayerTwo.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblPlayerTwo.ForeColor = Color.White;
lblPlayerTwo.Location = new Point(540, 501);
lblPlayerTwo.Name = "lblPlayerTwo";
lblPlayerTwo.Size = new Size(29, 23);
lblPlayerTwo.TabIndex = 4;
lblPlayerTwo.Text = "P2";
//
// lvUserlist
//
lvUserlist.Alignment = ListViewAlignment.Left;
lvUserlist.Location = new Point(577, 48);
lvUserlist.MultiSelect = false;
lvUserlist.Name = "lvUserlist";
lvUserlist.Size = new Size(309, 211);
lvUserlist.TabIndex = 6;
lvUserlist.UseCompatibleStateImageBehavior = false;
lvUserlist.View = View.SmallIcon;
//
// rtxtChatbox
//
rtxtChatbox.Location = new Point(577, 497);
rtxtChatbox.Name = "rtxtChatbox";
rtxtChatbox.Size = new Size(230, 49);
rtxtChatbox.TabIndex = 8;
rtxtChatbox.Text = "";
rtxtChatbox.KeyDown += rtxtChatbox_KeyDown;
//
// btnSend
//
btnSend.BackgroundImage = Properties.Resources.SendIcon;
btnSend.BackgroundImageLayout = ImageLayout.Zoom;
btnSend.FlatAppearance.BorderSize = 0;
btnSend.FlatStyle = FlatStyle.Flat;
btnSend.Location = new Point(811, 497);
btnSend.Name = "btnSend";
btnSend.Size = new Size(75, 50);
btnSend.TabIndex = 9;
btnSend.UseVisualStyleBackColor = true;
btnSend.Click += btnSend_Click;
//
// rtxtChat
//
rtxtChat.Font = new Font("Segoe UI", 10F);
rtxtChat.HideSelection = false;
rtxtChat.Location = new Point(577, 265);
rtxtChat.Name = "rtxtChat";
rtxtChat.ReadOnly = true;
rtxtChat.Size = new Size(309, 227);
rtxtChat.TabIndex = 10;
rtxtChat.Text = "";
//
// lblJackpotWon
//
lblJackpotWon.AutoSize = true;
lblJackpotWon.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic);
lblJackpotWon.ForeColor = Color.Blue;
lblJackpotWon.Location = new Point(744, 18);
lblJackpotWon.Name = "lblJackpotWon";
lblJackpotWon.Size = new Size(142, 21);
lblJackpotWon.TabIndex = 11;
lblJackpotWon.Text = "3 Wins = Jackpot!";
//
// TicTacToeGame
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = Color.DodgerBlue;
ClientSize = new Size(898, 558);
Controls.Add(lblJackpotWon);
Controls.Add(rtxtChat);
Controls.Add(btnSend);
Controls.Add(rtxtChatbox);
Controls.Add(lvUserlist);
Controls.Add(lblP2Username);
Controls.Add(lblPlayerTwo);
Controls.Add(lblP1Username);
Controls.Add(lblPlayerOne);
Controls.Add(pLoading);
Controls.Add(pSymbolSelection);
Controls.Add(pBoard);
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
Name = "TicTacToeGame";
StartPosition = FormStartPosition.CenterScreen;
Text = "QtC.NET qGame - qTic-Tac-Toe";
FormClosed += TicTacToeGame_FormClosed;
Load += Main_Load;
pBoard.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pbBoard).EndInit();
pSymbolSelection.ResumeLayout(false);
pLoading.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
}
#endregion
private Panel pBoard;
private PictureBox pbBoard;
private Button btnSquare9;
private Button btnSquare7;
private Button btnSquare8;
private Button btnSquare6;
private Button btnSquare4;
private Button btnSquare5;
private Button btnSquare3;
private Button btnSquare1;
private Button btnSquare2;
private Panel pLoading;
private Label lblLoadStatus;
private Label lblPlayerOne;
private Label lblP1Username;
private Label lblP2Username;
private Label lblPlayerTwo;
private Panel pSymbolSelection;
private Button btnOSelect;
private Button btnXSelect;
private Label label1;
private ListView lvUserlist;
private RichTextBox rtxtChatbox;
private Button btnSend;
private Label lblPlayAgain;
private Button btnPlayAgain;
private RichTextBox rtxtChat;
private Label lblJackpotWon;
}
}

View File

@ -0,0 +1,522 @@
using Microsoft.AspNetCore.SignalR.Client;
using qtc_net_client_2.Forms;
using qtc_net_client_2.Services;
using QtCNETAPI.Enums;
using QtCNETAPI.Models;
using QtCNETAPI.Schema;
using QtCNETAPI.Services.ApiService;
using System.Threading.Tasks;
namespace qtc_net_client_2
{
public partial class TicTacToeGame : Form
{
private HubConnection? GameHubConnection { get; set; }
private GameRoom? CurrentRoom { get; set; }
private IApiService _apiService;
private AudioService _audioService = new();
private int WinCount { get; set; }
private bool JackpotWon { get; set; } = false;
public TicTacToeGame(IApiService apiService)
{
_apiService = apiService;
InitializeComponent();
}
private async void Main_Load(object sender, EventArgs e)
{
// first, connect to the game hub
GameHubConnection = new HubConnectionBuilder()
.WithUrl("http://localhost:5268/tttgame", options =>
{
options.AccessTokenProvider = () => Task.FromResult(_apiService.SessionToken)!;
})
.WithAutomaticReconnect()
.Build();
pLoading.Visible = true;
lblLoadStatus.Text = "Connecting\nTo\nHub...";
GameHubConnection.On<GameRoom>("WaitingForPlayer", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
lblLoadStatus.Text = "Waiting\nFor\nPlayer...";
});
});
GameHubConnection.On<GameRoom>("GameStart", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
pLoading.Visible = false;
pSymbolSelection.Visible = false;
});
});
GameHubConnection.On<GameRoom, string?>("GameEnd", (room, usernameDisconnected) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 == null) lblP1Username.Text = "Username";
if (room.Player2 == null) lblP2Username.Text = "Username";
ToggleBoardControl(false);
switch (room.Status)
{
case GameStatus.P1Win:
{
if (_apiService.CurrentUser.Id == room.Player1?.Id)
{
lblLoadStatus.Text = "You Won!";
WinCount++;
if (WinCount >= 3)
{
JackpotWon = true;
lblJackpotWon.Text = "You Won A Spin!";
}
}
else lblLoadStatus.Text = "You Lost!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
case GameStatus.P2Win:
{
if (_apiService.CurrentUser.Id == room.Player2?.Id)
{
lblLoadStatus.Text = "You Won!";
WinCount++;
if (WinCount >= 3)
{
JackpotWon = true;
lblJackpotWon.Text = "You Won A Spin!";
}
}
else lblLoadStatus.Text = "You Lost!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
case GameStatus.PlayerDisconnected:
{
if (!string.IsNullOrEmpty(usernameDisconnected))
lblLoadStatus.Text = $"Game Ended.\nUser {usernameDisconnected}\nDisconnected.";
lblPlayAgain.Visible = false;
btnPlayAgain.Visible = false;
break;
}
case GameStatus.NoWin:
lblLoadStatus.Text = "It's a draw!";
lblPlayAgain.Visible = true;
btnPlayAgain.Visible = true;
break;
}
pLoading.Visible = true;
});
});
GameHubConnection.On<GameRoom>("RestartGame", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (pLoading.Visible) pLoading.Visible = false;
});
ClearBoard();
ToggleBoardControl(true);
BeginInvoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
{
if (button.BackgroundImage == null)
button.Enabled = true;
}
});
});
GameHubConnection.On<GameRoom>("SelectSymbol", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
if (!lvUserlist.Items.ContainsKey(room.Player1.Id)) lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
if (room.Player2 != null)
{
lblP2Username.Text = room.Player2.Username;
if (!lvUserlist.Items.ContainsKey(room.Player2.Id)) lvUserlist.Items.Add(room.Player2.Id, room.Player2.Username, room.Player2.Status);
}
if (pLoading.Visible) pLoading.Visible = false;
pSymbolSelection.Visible = true;
pBoard.Enabled = true;
ToggleAllSquareButtons(false);
});
});
GameHubConnection.On<GameRoom>("SelectingSymbol", (room) =>
{
CurrentRoom = room;
BeginInvoke(delegate ()
{
if (pSymbolSelection.Visible) return;
if (room.Player1 != null)
{
lblP1Username.Text = room.Player1.Username;
if (!lvUserlist.Items.ContainsKey(room.Player1.Id)) lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status);
}
if (room.Player2 != null)
{
lblP2Username.Text = room.Player2.Username;
if (!lvUserlist.Items.ContainsKey(room.Player2.Id)) lvUserlist.Items.Add(room.Player2.Id, room.Player2.Username, room.Player2.Status);
}
pLoading.Visible = true;
lblLoadStatus.Text = $"Player 1\nIs Selecting\nSymbol...";
});
});
GameHubConnection.On<GameRoom, TicTacToeMove>("UpdateBoard", (room, move) =>
{
CurrentRoom = room;
UpdateBoardUI(move);
});
GameHubConnection.On<GameRoom>("StartTurn", (room) =>
{
CurrentRoom = room;
ToggleBoardControl(true);
AddChatMessage("[SERVER] Your Turn!");
});
GameHubConnection.On<GameRoom>("EndTurn", (room) =>
{
CurrentRoom = room;
ToggleBoardControl(false);
AddChatMessage("[SERVER] Other Players Turn");
});
GameHubConnection.On<string>("ReceiveMessage", (msg) =>
{
AddChatMessage(msg);
if (msg.Split('[')[1] != _apiService.CurrentUser.Username)
_audioService.PlaySoundEffect("sndMessage");
});
try { await GameHubConnection.StartAsync(); }
catch (HttpRequestException ex)
{
MessageBox.Show($"Sorry, We Couldn't Connect To The Game Server Due To An Error. Please Try Again Later.\n\n{ex.Message}", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Environment.Exit(0);
}
lblLoadStatus.Text = "Finding\nRoom...";
await GameHubConnection.SendAsync("FindRoom");
}
private async void TicTacToeGame_FormClosed(object sender, FormClosedEventArgs e)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected)
{
if(JackpotWon)
{
// start a jackpot spin
CurrencyJackpotSpinner currencyJackpotSpinner = new CurrencyJackpotSpinner();
var dialogResult = currencyJackpotSpinner.ShowDialog();
if (dialogResult == DialogResult.OK)
{
await _apiService.AddCurrencyToCurrentUser(currencyJackpotSpinner.TokensWon, false);
_apiService.CurrentUser.CurrencyAmount += currencyJackpotSpinner.TokensWon;
// find the main form to refresh currency count
Main? mainForm = (Main?)Application.OpenForms[0];
if (mainForm != null)
mainForm.RefreshCurrencyCounter();
}
}
// stop and dispose connection
await GameHubConnection.StopAsync();
await GameHubConnection.DisposeAsync();
GameHubConnection = null;
}
}
private async void btnXSelect_Click(object sender, EventArgs e) => await SelectSymbol(TicTacToeSymbol.X);
private async void btnOSelect_Click(object sender, EventArgs e) => await SelectSymbol(TicTacToeSymbol.O);
private async void btnPlayAgain_Click(object sender, EventArgs e)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
{
await GameHubConnection.SendAsync("RestartGame", CurrentRoom.Id);
}
}
private async void btnSquareX_Click(object sender, EventArgs e)
{
// create move
TicTacToeMove move = new TicTacToeMove
{
User = _apiService.CurrentUser
};
if (sender is Button btn)
{
switch (btn.Name)
{
case "btnSquare1":
move.Point = 1;
break;
case "btnSquare2":
move.Point = 2;
break;
case "btnSquare3":
move.Point = 3;
break;
case "btnSquare4":
move.Point = 4;
break;
case "btnSquare5":
move.Point = 5;
break;
case "btnSquare6":
move.Point = 6;
break;
case "btnSquare7":
move.Point = 7;
break;
case "btnSquare8":
move.Point = 8;
break;
case "btnSquare9":
move.Point = 9;
break;
}
}
// send move
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
await GameHubConnection.SendAsync("MakeMove", CurrentRoom.Id, move);
}
private async void btnSend_Click(object sender, EventArgs e)
{
if ((GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null) &&
!string.IsNullOrWhiteSpace(rtxtChatbox.Text))
{
await GameHubConnection.SendAsync("SendRoomMessage", CurrentRoom.Id, $"[{_apiService.CurrentUser.Username}] {rtxtChatbox.Text}");
_audioService.PlaySoundEffect("sndSendClick");
rtxtChatbox.Clear();
}
}
private void rtxtChatbox_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
btnSend_Click(sender, e);
}
private void ToggleBoardControl(bool toggle)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
pBoard.Enabled = toggle;
});
}
}
private void ToggleAllSquareButtons(bool toggle)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
button.Enabled = toggle;
});
}
}
private async Task SelectSymbol(TicTacToeSymbol symbol)
{
if (GameHubConnection != null && GameHubConnection.State == HubConnectionState.Connected && CurrentRoom != null)
{
await GameHubConnection.SendAsync("SetSymbol", CurrentRoom.Id, symbol);
ToggleAllSquareButtons(true);
}
}
private void UpdateBoardUI(TicTacToeMove move)
{
if (IsHandleCreated && !IsDisposed && CurrentRoom != null)
{
// play move made sound
_audioService.PlaySoundEffect("sndTTTMoveMade");
Invoke(delegate ()
{
switch (CurrentRoom.Board.Square1)
{
case TicTacToeSymbol.X:
btnSquare1.BackgroundImage = Properties.Resources.X;
btnSquare1.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare1.BackgroundImage = Properties.Resources.O;
btnSquare1.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square2)
{
case TicTacToeSymbol.X:
btnSquare2.BackgroundImage = Properties.Resources.X;
btnSquare2.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare2.BackgroundImage = Properties.Resources.O;
btnSquare2.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square3)
{
case TicTacToeSymbol.X:
btnSquare3.BackgroundImage = Properties.Resources.X;
btnSquare3.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare3.BackgroundImage = Properties.Resources.O;
btnSquare3.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square4)
{
case TicTacToeSymbol.X:
btnSquare4.BackgroundImage = Properties.Resources.X;
btnSquare4.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare4.BackgroundImage = Properties.Resources.O;
btnSquare4.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square5)
{
case TicTacToeSymbol.X:
btnSquare5.BackgroundImage = Properties.Resources.X;
btnSquare5.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare5.BackgroundImage = Properties.Resources.O;
btnSquare5.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square6)
{
case TicTacToeSymbol.X:
btnSquare6.BackgroundImage = Properties.Resources.X;
btnSquare6.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare6.BackgroundImage = Properties.Resources.O;
btnSquare6.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square7)
{
case TicTacToeSymbol.X:
btnSquare7.BackgroundImage = Properties.Resources.X;
btnSquare7.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare7.BackgroundImage = Properties.Resources.O;
btnSquare7.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square8)
{
case TicTacToeSymbol.X:
btnSquare8.BackgroundImage = Properties.Resources.X;
btnSquare8.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare8.BackgroundImage = Properties.Resources.O;
btnSquare8.Enabled = false;
break;
}
switch (CurrentRoom.Board.Square9)
{
case TicTacToeSymbol.X:
btnSquare9.BackgroundImage = Properties.Resources.X;
btnSquare9.Enabled = false;
break;
case TicTacToeSymbol.O:
btnSquare9.BackgroundImage = Properties.Resources.O;
btnSquare9.Enabled = false;
break;
}
});
}
}
private void AddChatMessage(string msg)
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
rtxtChat.AppendText($"{msg}\n");
});
}
}
private void ClearBoard()
{
if (IsHandleCreated && !IsDisposed)
{
Invoke(delegate ()
{
List<Button> buttons = [btnSquare1, btnSquare2, btnSquare3, btnSquare4, btnSquare5, btnSquare6, btnSquare7, btnSquare8, btnSquare9];
foreach (Button button in buttons)
button.BackgroundImage = null;
});
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -189,6 +189,16 @@ namespace qtc_net_client_2.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap O {
get {
object obj = ResourceManager.GetObject("O", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -248,5 +258,25 @@ namespace qtc_net_client_2.Properties {
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Tic_tac_toe {
get {
object obj = ResourceManager.GetObject("Tic-tac-toe", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap X {
get {
object obj = ResourceManager.GetObject("X", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
} }
} }

View File

@ -124,15 +124,21 @@
<data name="SendIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="SendIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\SendIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\SendIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="X" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\X.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="left-horn-animated" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="left-horn-animated" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Anims\left-horn-animated.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Anims\left-horn-animated.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="DefaultPfp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DefaultPfp.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="OfflineIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="OfflineIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\OfflineIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\OfflineIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="dollar-money" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Anims\dollar-money.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Tic-tac-toe" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Tic-tac-toe1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="OnlineIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="OnlineIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\OnlineIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\OnlineIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -148,8 +154,8 @@
<data name="CurrencyIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CurrencyIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\CurrencyIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\CurrencyIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="AddContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="DefaultPfp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\AddContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\DefaultPfp.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="RequestSentIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="RequestSentIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\RequestSentIcon.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Icons\RequestSentIcon.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
@ -169,10 +175,13 @@
<data name="DeclineContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="DeclineContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\DeclineContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\DeclineContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="AddContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\AddContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AcceptContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="AcceptContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\AcceptContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Icons\AcceptContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="dollar-money" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="O" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Anims\dollar-money.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\O.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

View File

@ -62,6 +62,9 @@
<None Update="Sounds\sndTokenWin.wav"> <None Update="Sounds\sndTokenWin.wav">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Update="Sounds\sndTTTMoveMade.wav">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>