From 9b90b4b624b915ef1e1a68ad588b21f6754e1609 Mon Sep 17 00:00:00 2001 From: Will Eastbury Date: Thu, 23 Nov 2023 13:15:48 +0000 Subject: [PATCH] Game is operational in a rough fashion. UI Sucks. --- api/Lobby.cs | 19 +- api/Program.cs | 22 +- api/bin/Debug/net7.0/api.dll | Bin 26624 -> 27648 bytes api/bin/Debug/net7.0/api.pdb | Bin 26144 -> 26528 bytes api/bin/Debug/net7.0/html/index.html | 693 +++++++++++++-------------- api/html/index.html | 679 +++++++++++++------------- api/obj/Debug/net7.0/api.dll | Bin 26624 -> 27648 bytes api/obj/Debug/net7.0/api.pdb | Bin 26144 -> 26528 bytes api/obj/Debug/net7.0/ref/api.dll | Bin 9728 -> 10240 bytes api/obj/Debug/net7.0/refint/api.dll | Bin 9728 -> 10240 bytes 10 files changed, 699 insertions(+), 714 deletions(-) diff --git a/api/Lobby.cs b/api/Lobby.cs index 7663844..a16d151 100644 --- a/api/Lobby.cs +++ b/api/Lobby.cs @@ -1,14 +1,17 @@ +using Microsoft.Net.Http.Headers; + public class Lobby { public static int MaxPlayers = 8; public static int MaxRounds = 8; - public static int CardsDealtPerPlayer = 10; + public static int CardsDealtPerPlayer = 8; public string Id { get; private set;} public List Players { get; private set;} = new List(); public List QuestionDeck { get; private set;} public List AnswerDeck { get; private set;} public List PlayedCards { get; private set;} = new List(); - public int RoundNumber {get; set;} = 01; + public Dictionary LobbyHistory {get;set;} = new(); + public int RoundNumber {get; set;} = 1; public int JudgeIndex { get; set;} public string CurrentQuestionCard => QuestionDeck[RoundNumber]; public Lobby(string id) @@ -16,7 +19,7 @@ public Lobby(string id) Id = id; QuestionDeck = ShuffleCards(GetQuestionCards()); AnswerDeck = ShuffleCards(GetAnswerCards()); - JudgeIndex = new Random().Next(0, Players.Count); + JudgeIndex = 0; } List GetQuestionCards() => new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, "Cards-PNG")).GetFiles("*Black*", new EnumerationOptions() {RecurseSubdirectories = true}).Select(e => e.Name.Replace(".png","")).ToList(); @@ -32,10 +35,13 @@ public bool PlayCardForPlayer(string playerId, string cardUrl) if (Players.IndexOf(player) == JudgeIndex) return false; // Validity: Check if the player has the card in their hand if (!player.Cards.Contains(cardUrl)) return false; + // Remove the card from the player's hand player.Cards.Remove(cardUrl); + // Add the card to the played cards PlayedCards.Add(cardUrl); + // set the lastplayed card for the player player.LastPlayedCard = cardUrl; return true; @@ -58,7 +64,12 @@ public string JudgeVoteOnCard(string cardUrl) { player.LastPlayedCard = null; } - JudgeIndex = new Random().Next(0, Players.Count); + JudgeIndex ++; + if (JudgeIndex >= Players.Count) { + // if the judge index is greater than the number of players, reset it to 0 + JudgeIndex = 0; + } + LobbyHistory.Add(CurrentQuestionCard, cardUrl); return Winner.Name + " won the round! with Card this card , they now have " + Winner.Score + " points!"; } } diff --git a/api/Program.cs b/api/Program.cs index 35fd86d..fb0ace3 100644 --- a/api/Program.cs +++ b/api/Program.cs @@ -4,7 +4,7 @@ var builder = WebApplication.CreateBuilder(args); var players = new List(); var lobbies = new List(); -var names = new List() { "Janus (Windows 3.1 and MSDOS 5)", "Anaheim (Microsoft Edge)", "Astro (MS DOS 6)", "Bandit (Schedule Plus)", "Sparta (Windows for Workgroups 3.1)", "Snowball (Windows for Workgroups 3.11)", "Chicago (Windows 95)", "Memphis (Windows 98)", "Millennium (Windows ME)", "Razzle (Windows NT 3.1)", "Daytona (Windows NT 3.5)", "Tukwila (Windows NT 4)", "Cairo", "[] (Windows 2000)", "Whistler (Windows XP)", "Longhorn (Windows Vista)", "Vienna (Windows 7)", "Midori (Application Shim for Singularity, used in SQLPAL)", "Blue (Windows 8.1)", "Threshold (Windows 10)", "Redstone (Windows 10 Creators Update)", "Sun Valley (Windows 11)", "Hudson Valley (Windows 12?)", "Pegasus (Windows CE 1.0)", "Rapier (Windows Pocket PC 2000)", "Maldives (Windows Phone 7)", "Red Dog (Azure)", "Singularity (MSR Managed OS)", "Denali (SQL Server 2012)", "Thunder (Visual Basic 1.0)", "Bullet (MS Mail 3.0)", "Opus (Word for Windows v1.0)", "Wren (Outlook)", "Utopia (Bob UI)", "Marvel (MSN)", "Argo (Zune Player)", "KittyHawk (Visual Studio Lightswitch)", "DirectX Box (Xbox)", "Natal (Kinect)", "Natick (Underwater DC Pod)", "Roslyn (.net compiler platform)", "Aspen (Visual Studio 6.0)", "Rainier (Visual Studio.NET 2002)", "Whidbey (Visual Studio 2005)" }; +var names = new List() {"Janus (Windows 3.1 and MSDOS 5)", "Anaheim (Microsoft Edge)", "Astro (MS DOS 6)", "Bandit (Schedule Plus)", "Sparta (Windows for Workgroups 3.1)", "Snowball (Windows for Workgroups 3.11)", "Chicago (Windows 95)", "Memphis (Windows 98)", "Millennium (Windows ME)", "Razzle (Windows NT 3.1)", "Daytona (Windows NT 3.5)", "Tukwila (Windows NT 4)", "Cairo", "[] (Windows 2000)", "Whistler (Windows XP)", "Longhorn (Windows Vista)", "Vienna (Windows 7)", "Midori (Application Shim for Singularity, used in SQLPAL)", "Blue (Windows 8.1)", "Threshold (Windows 10)", "Redstone (Windows 10 Creators Update)", "Sun Valley (Windows 11)", "Hudson Valley (Windows 12?)", "Pegasus (Windows CE 1.0)", "Rapier (Windows Pocket PC 2000)", "Maldives (Windows Phone 7)", "Red Dog (Azure)", "Singularity (MSR Managed OS)", "Denali (SQL Server 2012)", "Thunder (Visual Basic 1.0)", "Bullet (MS Mail 3.0)", "Opus (Word for Windows v1.0)", "Wren (Outlook)", "Utopia (Bob UI)", "Marvel (MSN)", "Argo (Zune Player)", "KittyHawk (Visual Studio Lightswitch)", "DirectX Box (Xbox)", "Natal (Kinect)", "Natick (Underwater DC Pod)", "Roslyn (.net compiler platform)", "Aspen (Visual Studio 6.0)", "Rainier (Visual Studio.NET 2002)", "Whidbey (Visual Studio 2005)" }; var app = builder.Build(); // Non-authenticated endpoints first @@ -18,6 +18,18 @@ return Results.File(filePath, "text/html"); }); +// GET => Serve the root +app.MapGet("/Restart", () => +{ + Console.WriteLine(".Restart Request Received"); + + // Clear all lobbies and players + lobbies.Clear(); + players.Clear(); + + return Results.Ok("Game Engine Restarted!"); +}); + // GET => Serve the root app.MapGet("/Card/{CardId}", (string CardId) => { @@ -183,7 +195,13 @@ app.Run(); -string GetRandomName() => names[new Random().Next(0, names.Count)]; +string GetRandomName() { + + // Fetch the list of used lobby names + List usedlobbynames = lobbies.Select(f => f.Id).ToList(); + // Return a random name from the list of names that are not in use + return names.Except(usedlobbynames).OrderBy(x => Guid.NewGuid()).FirstOrDefault(); +}; bool SetAuth(HttpContext context, string Claim = null, string Value = null) { diff --git a/api/bin/Debug/net7.0/api.dll b/api/bin/Debug/net7.0/api.dll index 0881f502308bb4c7ee9c0962432906381426a0a4..19b41a8a924624721a966ffbd907c0ed2e000543 100644 GIT binary patch literal 27648 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%0DFfG`zc~ztl*8^# zB#Uh9!;$(L6Z;abtZU3M`J8Q@az0PXXUuP+utumVLcVY)7KxXd}-@nT?=51{F{0V$|<+So! zR7GRaCLA4q+iRiGidS6KI5&9~uEi^?yI6)|6QOv8>N<%9&6M?Ufrw{6CwjU-#FHRf zn=4OZ73bqBHv-@`-#a5ZO~<}TbqG9yy;iH)t2HbK&Sx&p_qZqDH^QuES2cK?TxaSh zSt8qfB#1zjhMHP%V-blKw9$ooLJOK$pE%w9J$w!3?v}Z?J%e(}_Ffwx`H)Im*>nRM z=1=v!f1y^&OPx)1IhJ@10ILdJz22RY`bm~Zs;U4LTHfQD+m`D!cLBrOymDj)md9@y znSPcxy&}JJ*16EXm5fVak?ig6HB^3H#q9^xrGqXBDs7sod@?NktYimkHEK2Zpl#iI zwrTP$l=@EV)SBj1&8@3iTQ+bQ1B4<%Kfx}r7@3luOY|BhesOo!%8U$R!Qs0$oT@8P zgccv}rt7dFqYl#IU57g`OgaI2CG#!H#Uns1hTI2xqh2*Z++XtaW! zhH8*fCC^5Jv@jjQAk(9 za)f@StqVlxyuL1QfPT#9F1lZ5&91U#fgpW2@CT()`e^C3y*{oh`pF7NoCh ztaBA?*3eYN6BYAlRr%{>^Ke=DI=uP{q>E^6>^|VLV~l?tcnxLZPgDeHTN$^yx$=pM z8hW#oVPhHdZzyMiZ4Vi#cIexzcqBO{E3PNdb#5DvIg1-ZyRV{`QIU)AC}0}`nc`&=&PB2 zSb1OBYPu`3r!q=6V(g1(0{&l3=i>L3T|*5O>tO8;SmW7R6ksS>h)a%V!#7o|%~1<6 zk4$miRMHB}=UU)?q5fKAK4hteyt^G&O>K|_g+j1F1#zvyvfmR~jFt$6%M8e>@C_Zy zUcrpD(Hy#3s8b@lim-D*b|)@%+VCxTJNarWsTF=QwS#={DsWt&FLV~1V?oyZGl8!DZQyuurSH}J`(Up>NVmg&kmiLM zc7+(;6CMEkc`4)XiE@wsDn68o{m%lwn#uz2hKJv#-vj)a!0mJ&^hd{IdexB~3T(i$B>zXKsqpoIN__9~rXzcIY2KCPAGa~AV%kfQZpT+FDWX_v5wLIbSRE>jK1km@2>0(#Obdb>I0Q0K)t3Y zcx?r$Xd@1AZuV5uEs7GG)$~q>Vw=_UZiixj#j&1EPdgOHdJcWXp*Yra=o^X>Kj+ecW#VVJGkzv8kB$m86}~b4q&AO^E1As0 zeEKIv(dE*Kzydm-lyRx*cE1eWpozklvTjQ$ne^T|&{gp%Y==TKH z(f1tcAJM~ldefn*{m%q8PCtkX%7Xip&o~-@-g*shq}r4Jg8@JUBR>Y z72gYiO|-p5QP=oi2yCW@S1amW{_h61(4Vy`>MtSNM$h7w7q_bnd^gZe-@$Dmrb=jo zwv)PWt;|%P_F7;kJ%?K#OzHYR20CbqoZD5tbkJ_0Zlk2{{gB=0k?oi34mS5wl~Br;1GK=A^~2@? zTIrE>(RxR=mYxZ8(O!@2AoV!1ofyMG8gi%yG1G_8nMN0ICGnqy=L6jKz9_@LFK0Lc zj!siJ_h}CF+UKu-eqCQ)oq6HB&1&F2IxRiEE`50|E8M7H{g2Ct6l@XwPn9uWLFK1{ z$3^PZ|G&jQBYk1pfc-~h)b9dRFAb*_j>bErmzQvrrx8O}%D7I0IcXtZ#qgzAWu=bO zOl75yJ}7;uQE)FBDd-)Ym#=U&qOL#*X;BS(AJ_J|fDu{_SczwR7;X^QCa^=`L4nr` zOaTUI9B>xC&(NatDI=URfm05CZ|O4ZgRHqgU`o3uel2CRBjGJ{v&OxQ1Hz8>Vsr;M zuSfUr6-D$IO~J7~z&m5_q$YCqP}{tfUW5r(XD zzxL0STj+weFFaSPrhh44q-~^*ShIG&_SJZ+_EGKS$Ohp5T)7GS&&Arc$F%o{gVZ8k zmC^IKimRr>*kwO2n%l+yebVnG?Q8xa?Gk-3U};mtb}nhP6{ocx(Rm*5LE!Ae59pQH zA8S9LCn`Uo9RvT1v>f)I)ZPGoQF{UKIqfCDAibcySo*4_X=UYaYH8v8lxjn|J_P(2 zy`)vfVtQ8aTLs=O@GeJs52Tv5uMB5TopHG8t#7>DGioH*t(*7d!Exk-4_OL|kVTn(PZbABSM{`-|eR{3--tq;$ zx%$T{>U^IO{**QtUgMk6mc|bGo~L&@5q`VQakhN-YbB*0_Wh}&*&BP(SE~)ge(bB& zjmn?i+w+Z^ldf8}z42qy86&Ew^Z2!8rkEY(!~;_DJ~-z{f%ilVOId;tc1< zXZc^yzFNA#U#mS(-rzq7{T9HJrImD0dpFKw2eqfmcY*L&4J8s z7yP)ulmnUHFZiUuDF-tDHo?yeyx>6QKP31?ftMV}{AUEeEbtWvGXGV<$tV6hkoi8r z69N|t+$ykL;42PfP0cTD{fyTNUMqMTGW1Kql)x#0=S6x!@QZ?968y5@uLw>7v4#!k zOTk)!Z32%AKP7k?@VVfmaLx<7DDV=l6uuq2EI0+(PD0>TfyV_-3cM)rvcT;j?(2Mr z^)H0x(W}9S!FeutQ8<@`^Q>?#3+EN#ye6$EEWHTaDsX$4+ol1L?cq8=Dq)xqcwFFl zffQl>ae;|)&i_e)7X@AxNKxh|1b&%*L4(?a_Cu{ppVEI<|B(KS{<>c7OZ#r|{hse3 z-#2~haGyZKQzt$=K~aXYVH9hz3YDQ68}S37f5yIiSMi5PMLT6r>d$}jf7P??T$K5xd`7T`v zpbig1z{>!2eAiq8JPN4edqs7(t`v9-5)Boj9C#HZIEw)4G>cCFxC@Lg+i-nZ1$+*m zjuXKw;PU`=nh%Li^?XXeJ+HaImw~5I5>Q8lTnM}gP{*a#Rlu78by|sQJ&jfY@^izB zfv*PCQA_KAuL0C?k8m0Ab$~kV*)0dY8BnJ!u!?(QfI79os)iqctl(=$wCkY{&^KtA zwpTl(eNg+f_A@Q4FVdIktMyH~p+BPkK>wNEzWP#lH#Xv0~m5 zzU5w|_dc8>70<^AUc3GG$;plF<$3D$`-{M=6YRLZ|O*ct4M}U&H%R>ILot&*yuT-sM|IpYeSgx?huaohsBDJ5!mF%}Z#b zgKQq`?cHT$52Z%Z=J5X1uyJe4s=TnTw|8|R*$Q&=hTh&at9pTTpBNh$7&6*ZR@&YS zWyNK=h}}LQ5qfifZ}0YuJvx*cZy!q8wqinibqiZ-?$4SQn^9!3_L|kKG>zLTTo`Fx z&lm=CaLll?8FM7(mXferts5Mjwh{ZZVdXW1&l-Z{JP~ToSbESnVrGp4Vv;>XM_oJ$ z41A|)F=~kC;JbrHV7rZM+gSF*tt~BiwhT|ja8++>p+GT;N4ToDP^*P@j*avmZ=wBT zLqn;)Ap>Z~j*+op!*ZzuR@$(PbOCc;#?C_1>tDNNq_RfaNV+YZ-fx`VXZH1tcMR+| zyGK*~NQBj{o2!Aj!;-mVhMMKpVi6b}BUxrEg=Pb0e z7WK{y$9S=5bxzb;EMms=o(r{Fl^=!7mNfBb6mSVawBeX%hx zoBQ33R#uwu5+CI!P03X-Im3(AAMusqyJG1)si&{MUN<_beN-+qnsW%N_n2U zpXNE!{K$*iY}**_8yfG)WW6?eQWm1H6F-JGPMg-r>H0h;M-0oxE;n7+F)|?afVaS* zx75N^4rB($tQ2pRc_W96f$kKhYWxstn4RaV=!o(mV<>e-Fpu0FNtcD{*PqQdbmM{k z_^0c6f!l&Dr$)x}0w*5_fgvpi)!$~WM zst-bL&sZ>n0xOi%ev8rVSyT2%n~~0ODaC@$P%4^tXS1WOW2iGX=jInD)^q+@*+< zM)tfxB!ITWR{E49hb``TY45ckcjB%c zc0{%I?CPGyqU31c757V{!VRX`E$iKebt=les@T# z>^KKts99FDjqPtFi>rDYC31QS=NZ(LkRJCz(6o+SF z7M3E9a1gVWJ7JeShB?~1f#V?Jj+9`!67jfRkea|jDzp{%oJT1Bn&k(2Z{m@B#b48$!(g}R~ znk9qj*by>;XJ`a}o#h%li9@k2(I1E0QXC(+r3pOuXyZ;T@Rl8TI{1*t_M>$IeQ^(} zMS{9%6m9!qa{zCH|A=p%u?PJowyZIi~pN#iapOWC6nz}zt;Xd`SUz_Xw~ zfcu5ZaEI8Ht|YBJ0nTP=m4Rmo^r%M9Ems2HjC;&(f8)SL(Bo;bn8H}t2Q8L>ucnMX z3mdgXqwiqfXL(1rA9jb)mMZq4T_65oDp+goHgIvNEAnpOmh@pEa=Q_c)wCA(u4&62 z$VV`4_BV-{;JBy7FXpr&zAgA(Q-TfYEw7xwYbksEp3pbB!U_E!8ST!qhF$F z!_ENWk-&4PY0RdCYJS;gXz$|L znXBxu*ys#iSDxWxDO5bB>l^-GObarDTJRg0qGlYNtSz9ga)$(?D%yCGeKhDVM zvE85|xV#f18iqHl&mPUBxt?vVX}lJoZ0hrtYve|c|BP8 zWSec6sZsc&=9cS}sv_Mof4ls0@{N!vNmkPj{%h{X|4X#fI@sxNMZ0{4# zxIT_SW2P~zmlX-m5PMaLY#H;A*qa`o78T3Ahonc2CHp(GZPw*_$Mr2Gnm7%Ea~LB| z3rAM)%5Hea5k3N*%15qdGxaTNVcl-%^B$lg_3K-$#UC?^@Dq_rh`(|HkpR08^+~Ct*8@4Cb2a#-=Uzknk?T^QGEym0}On+zfO3R^EI0ETmfh zs?lHVuBkR&Q|xUbKlG2r>Hi@Rzm`-^WS&Oa-$LU=85 zEP0owh2B%w+1v??Pd)hU4D{WT5POWDq+P2xgEEShbQW>(o|GnVHam-`aJ1Bkk>`fb zRLWW>xUNMUY|Hb#!}f~e-d5($o@~`U0Xn{2_14XOG8O3vc(~eVAyS_bkgNVikElaSq8EOF^G=hW+NX z%BvA0UAY5Nbv2Nmn*^>h639Tleqak+W7N4(n?i@~q^pBBtMJlL#j*)hpESr9vvHB~ zvE!7u!v_K0vT>a(fnbWaQ{GN^L2bdn_{}hZMc^Lj)CSE3mRs;4ll$h4s2_HC7~DH2 zAaA>TG)M@}T3k@MFgMFacT!rbO9pl6pnOb70c3q1usTK#z!v+?9wq2nUj8fcmr33v zo;hSx`>P{{NmyGvd1_?&sJaK7A&gdCnxNILyccc{YM~Y`9X>4b<}v~A)s%WC6m}Y? z+i@?d3g;HOd%c%&`K8YD!E?zo!HI1nBh*I7mfTG(ug?ibv-17AKH?IzBR{iw{r{Bx zEqVLX%RxTkY<&1kE{mDBt-M253V9ffbf?6`+ts^Cjao-MWU z&|0^Z@-TrPL>`q*!Mj>Up>JYk@v4&Iw`m8KIM2gq&T;}jS?s_lw+q|_fB7gih*iMF zg^yZ$p+D}-N^xt|+&0 zLc#d@coKgHS66)}^{Pq@eH3)4`y+53Ey7g;eWbeh64`eeKbe@6gTo4D5|e@KI~___GxD}I~~ z*zbjb=)w?`5m6(ai4V_;-K@pN;^VO~g+*1g4UQs0j8`N?iDG&~bq%;(W_b5##RTfBEEMSvMqOf!wI+(+jbe$tJRbGM|;KYm@Dz^-M z&NS;PDaDde2Jds-ve`N1FncWO^s0x*&oPOXA!(1h+>ja!LKTju!Hg;ou(0%K7!l$% zs1^leylxgmXYxYUPhF@oej*wlMp8}we%#Pu>VCXGgdB)ZKBDWf$&bp&VghF&Jz`UH zIp6gtaA@%dKEGd{@L~Lz+YeQOE6k~KPRDRKgk(az7lc2xrS~1N7bDk%TfVsd$S1De zzc&1d&yTNP{x_dI?kBu_!G!@Gzupao^}Ti{0~-U~|x*DkCg%rQb72H_yW zh$l-NPCUuAK>SrK_Pi{iw518JM=md19AH%Hqb7~8!kcn-nnZ5_D#^k?Fd@qWWkg$u zYKdj~Ho#blanuf;jV3mU1$w7U4Sv-NULuY~3k8%0G*S2h6ar{Pc?kH#;82eh0+tWx zz3djn7xJT- zgr|r`0eR#Ce*grgTk!Wk@K5oDz#ksr{sPh|AU@Gpz3}%o`DG{ zSdU)bHZ)|O?!?zZnNd6m)1#MkjNm~Pd_$jRwS9P4{Wnl!!@o`qPUU{OMytNjjh_j1 zc5%Z_yf5O9iCjzpabE0j72eD6E}z7^4~XX_4Q{HrlT_){Sq;`i*1TjPy`y_!u6O;SYrNnAvyJF^TN45hII`GqZU#-ACQK+g7i= znjCxO)s8**yx@2DesJID)UE$ek@@Pg$0qX*oMJqYr@h#TNiWrleAscu;75*W*yhL0 z40#BGb$(e-iLGAc|Hl8nL_o(g>oT2_bMVvo-gV0;8e>|Q`VFn8nFeE`ScUO9g61kSIg{I6e;CC$rPUg~p; zL;3OPN*opr@XX^ozZQ=4>K;`Gj_`b(=GPM9Ry~mNeNeu`<+;2NjZgVsgHa7W@pnh+ z_&?p!MbS~;ATV5m%T5$7-0Ab9Z9977dt}_lIL76Ca|XG(YmDE*h@NYg@4ni&B;o$@ z7bWaYUOx=GuKp3|^Br^bodD~pJJWo3n%``n^?BrcCx*YL;QJhTPn6weToUm`Kl`mi ze;;)DKKPJ~U=+TyN9x`rQ387F#qI%z&(UFR*Dt2zJ3@T&9YU{tj!PHX@f}9K5YBqM z@s1NG*CM^*(dNhM`onh{`F6%IW`XZn@;3&B5z4nw@mcZ^(GM|)?(6k0d~xHJGs8oP zQ|fW4O?B9R>JoVRQl3HEREH;zSFEo~*jYRUlo~Qej7@dphF!O1b9tmZvJt;+kcR^k zFfn3psvEOLuCe=17{e)h#jyJj%8Gt-_?nbG+m?; z0}6cN4YDr5kGE{9>m2ty(bb$99j#lbEM%=Q8&4(;n7^SvtLvm4`osI`YX%MbH?-R7T20`Uw}TC$9}ni4Bm0a~#!zC2;ikHj-7#_s&$?N4iLp#u zKc4?4|okP{BRN|@F}#VE$!o#v~~l$(((wr4=oK3 zocBHF&g{-g3ef)3KiW<9%=vZCJ@?#m&%HA{a?hRbrT`HI@qObBqUUkt&u)P~AIv}; zzv+L(=@VsNt$SWO{MEXFvsouKVOyhiW-K+F86UUusUb6EPmZUuXg*J&mvLvl{_vvCW(XMfQ~*!Q9u1#Mi zUl1^&9zzf?$~}f4U?7mH3qin$c??0oz&MqLAYhgy;|87~+_44!XXfO_1zc5i#QuJ zEJmvy*(fW{#z-cfXs9i_g!v3U(XhmRi!hd!UE)rkXjoZq z)#_j}m|hR$iF6B~>j1iJ1-1Txzo|^>H);%`<<Z zZGjes!%L;w&=W@O9h{uZ;$T_rY|}s7>TpwaGA!e*j!+`9NWw^9i9g?hKjBh;e%``Z z;RY=12CCNnpu}Z~7nh~>4~4NTd@oi*Fpc;|pJ-TaZ`KfC2}pHW6D7(TNyDPhsf}iy zBdmVL>$FsdCiu}+Gl)=d)l3-hrszxrm&S(*3tfs>8mYz0coTX^W4^I!QCYCuRb>$b z43rba5Cr{jT{+Ah;#05~uu#nm*JQxrns6V|M=fOJ9~N>ic+O^Y)-c18Gzw=^8eTTJ zo&R&em~s!fR&Wn_!8pbi( z22w#W1d*{iYN+$Zs{C`u3POz)%LQY-9X`2ZWr=UBY9s**E*b7n0$ex^cRT@$*Lu1z zC{W5FK{)oa@CQXFp{H-*aA3Vgqe;3^0|kwtMH z#9qj2TCbVre029eUep*E;$zTLxT1U|$hi&n8|?ka)PS>%JKPRH4faWJf+ZXaoRE(b zweJTcUAme20=PH@t@0Q5BS)o^wLwXdL!)4{sIq;X?$6g44XlqG`B z9`MSYPQZ#t*y>`9FcwW1Cj$Kv52N-D8BODF7lyBL4h~CBp*vg^4_zU@UMgq?Wa*}r zYCz1fd(aO^u}iB4NTyXBB|c0D0tU7X#SjFHl*bT6t*s-NT&#_RGX$d;?_M5^p*CP7xmA3o~CKjy=K=EK(pifwQA;j=#cIUoM2 z4^IS(ZCCp64j(?|!$0K1zu?2ShKhCuefT3j{2M;J%qZ%2_;AOEf82+E*N2ydi)}l7 z_@od2s1N_T53h_A+phQFJwANYhd<)Ozv08*@Zl@ViZ=Uw_^KKA3N$N#wEo6JA#<9|W%&&=ijx#Ev9zlZg)d$5aIx%7K>u6~{3XXofI zvW}n~;e&PP9@1MJ6a-_Y4x=eD?+jRd(6swuN0z;X5*}@Q6ZSGGmc`Zw1DB*!UTWYF zA*9g~8COeP9jQdt!b3769gQ0HEbv81?Z#s4>C3~5YSKsuoa-pk=-NV2rSO8bP@EUj^vRIlO`V`{@*W?^S!d+}qrT z$Odne1f9?KNM(L(fSCU-hgV{*r*jx_RKLU(`aYai{LAS$L=FH}9!t^)a#I=>n$l$e z5;8uU{}gt?NH}9`3il0|T%66HDRy#6wt^eRI2$b7LM*xwh?O-b?B`e!dEZnW-0~c3 z8JF0Ag9C$6u1nLfx=T^cR)iyb+i2VePl9QjyBvfV z491#vs@Xurnt+D$R(Q$}57aG}+*UzH3n3n;K2;oUM zcXR*P@r!*T?n$y&#oRs-c)pD^0@i7CW@P~G+W;r!&X(8j4dV`W1)Dr_fhB3oKvNoL z*Cq>PGCGaZPOzkTTWRx?#pW!T+k7{8g;CqAJ7?5<&sa(JVfL6ujj&IJ<>ZbqIov?f z3NzW1#(B93H>cG`!r(UJzBYRuOo-7Cws1-`EabC6AP{x~X7aeqF(Y@b7LwbbiU{9^ zdGpQly9^;i3M8CK$QO$5Q@;3qpA*|3-}ce~A!EJxvSe<6I>7U{#)SK42TAU=X33n^ zSVg?NF~sw%C!ww3Na1+hR1x7=x$*s;FIKxE;h=@HAMQL6$QlaTOX4&UPGkFvda1vh z>=7`7_B|pRWf3Q_yDHQf@gFdBFcZ!N7+WY#pGRZ2*_O}Fjnk&mkz(C?BW1~)kxuUc z&mX7FrLFHOwr0tk*2OqoWW8T9PL&aLe}ql7blhR&2i9%EnVL6lS;bg^!AfuBp)KE- zJ8~32{~W^|Z{#eQU(Gfhh8}bhm^zon5-;O)@&0O?`T7f zg`$YN(;5r44%b=>#Y(QIJ-8-<7M6CDs-qN$gcH$ZxrN0RwUEascz@GaT|xFwxZjGo z{RS2(CGP+0$UyAA9B!@&u|%vHL941l(2la9S_JJmsQ4BbYRa@1mtszFIl=B;9Z$rY zaokwsx6ouKD{pFAn#Q7tCM)eFEJM;oDOstyPGj1cvNx27c=ijTgC!!K1lfi>c^Wg} zK8wS+$q7D(zs? z&Cn|znR&0loXAH#y3*wcVV#DW+N@hkT|MDVNy7|FBvn;_N-ZDs%<=ZEdM(@??EZNy zpWiYv{ZdCkeZGu~@|-ahdgih=IoZr;4p=INSjcu4ZeqxaWJb;S5`aYsh;M$i2-k-O#ix&M;SxOynr}E(@5xz1K>34`rJY#$L>X>uiGHGOBvHC?<^yG$;|9GZ@Ji&vu}V4y zRfB#Q8HgJ6mu1hE8`L8(DsZj9rv(152usgI*g_!M2>f^z!`TSKcME4ZT)(pcwX;l}bBT2k3l zxs1M8@leGwdc6Fh3WNR+q^syFRjt5(AAPN&yArJxHS~I-r_!Krlyj>{RZnFN{g-lv zF9Bj)73^(Hyxj{OgZ@JNd^F0QydnPlapl*8^)wpphUGW3Zv&6%j8CA|8hQu(fzQ&` z7JOXBawvLxqK5P&_q90IQ`tz9l@C=k(kt+}k)Er#fOxh@WPT$0KR{nCGzER+(s|P|2SSlD`Aai>nlNql7+ZE7>H<s1s zn9t3?(EwCVr~tB5Lw+o;;9nerm;X*VoZZlfWg{-;>kL1RMYG3XB3NtRH5CDbnb`p5k>1z6TWlR`Zp)E?AqmVHgA zPMQ*`QM~S=OYrXd@rK|U+8131c%{5KsL_L=R=_T!Jy=7xRpI9*dOpVRB%nsOi!@_w z1^%a@cEIloTnl}Tq6X{SBhb_A0LPEd*Zei30U6m2%LaWU%b$Y>*#a{;Xc|}R@0eaQb3~j?3 z7XK*JY$P12!Y>s+a%J^ZUkL{3r>?A}>g%9Fb%f7Dk&i}S2!<#o)NJI_(U(EhxU#Q8 zX3#2E_D#qPTI!ccv)Id^wz#r06`SyEX17b7uh2ksyVO)-6P~Z!?ow}0 zXrS(Nsk-ns4No5xh4EG4#PI{6X6ZHbS55=>~BF`7wRE868m1T zf_~sqW3m4mjL|z+%V_B}<6m%>lEZstDRqQuW7v~jKY8F?kK zEVPui2{jw}$Hep6QtDDNnTKWc7mA__CbArN<9tX!4kja;C`A#MS`pDeC0y#uSRHk=)TO>@R8bw>EYy3j zPS%9#>HcQ1BE7Gsw+p4_b~Qa(BKx3Fm+3dD89#7+!lgb3>Sp>Qm%5Is*Fb;fYqy5} z+LiTbTSBPMKG|COu`9a`vbA^$$G)iE(^Mmr%B(cqB-CYU)^>){wAQD&jyC!<*U@%Y z^H*qRXdQL=G#jbUr`brST+M#k8)~HAaj7q9hd}+4OKsGT;-2+qE_FxXWT=@cTiDOb z^c<-5ROeDRK()|Dm->))GSo_YU8+|<8QMT6TxuCK+bHW&4ybmz3PrMA+^&}MqhrT$PK4BbLs5K2YqR{B#{_OQM;bSv>M{p{!WbQ9F>4T{x-u;=7}`&-_+$s@JFcuJI2bxW zue;Q{f?Gn}R3Rt$%gFaFp@VdjP^!N}ly+s$AWDa5n@@I_x?I^y=n9)?Rwlr3Nv#M=(;2+Hm6k*Tdcrw`z?uyg$Zp1vok-a5B?e=(qe~ zocn%JFMgemgo`$x0v@0S>G2`y%WqlXKNU~5%UBfrTRx1^{)!@0ekvFjYkvKIExt=e zS_`N?8cr7+f%RfJE8}J8Ng3B^aY0(jS8>ZGs;YFHI;yGy)Ffk3{&O#=|kA30T`4dWo7{&S$Fr8l0WcA5jJ6Dt`iaYm_1DT+tq`+Cz_P-wZF; z7STImDQy#7tJR)~-`e)kn1f@L$4vLGO<} zuYDKzXSFW_{-O3YK!d)f<;t&XuhWwiKh#bM=ZEy1@rE`6e2~7OJzW*kbAsmu-Yf6{ zSDH%1^w;Uta-0-(-dC?^Tf_VG$F<(ba*gABr(UMt7tZQ0()S^KR9cnkzY~2L{NJj2 zTA$U1!e7xVBt9RI_5;-l=m`&jzk&SE7#wDrEMTYX4mI=|G+S)5@0u>-4(vFG1Ro{FA^|eW3g= z0$(P!xlTI{58EUk+O+Ml1JtHep$X3t2iW(qWO#2!GavG8Vxf6Zp6bng68VR|UT4Lgv3L_%(so zUC8`b1t*s-kE)q?L9*x^FvcM5)5V8(^a9~OK@;H(Roe_8Oy1U~LU z=07R;Re>+MkohkQeof$Y7c&15R5pW$V6-slR8%`od{gfk+X8R5(d=K*kz8IK9)s=#Xk zza^R!;kLnu=tSzFc~#&wfvGa)oECUhU@FR-nF`MHYXVa-#&-)mEpSHQm$3Pn+9mDp zwZriEq_Jryelo`6KdIAXx7AKXmL`rqn5)awJm89vkaKTqMrgCkVo6AFG+$Wq=5@@%q{ z*HqvI+}3gVg;3cm^3-!pf7{yN&*t?}8+^22&vPae?8ZrQu78&oXp5J!=IGT1NBJ>% z$=GUx*XQ+78+;#5v2*qQSa>nCj^kU2ZxymBfs9EahpO>igzsW}Yw)ebcL}~r@m+@R zHo6}(^=o({`Dr}Me+~3WZ3ms!w$X3uJLn1hWAv>49ONIz_hb0JfbV{KUH_cWH}o%3 zC-&{mz!%Z>%lLkbjsbsN|1!QGqiM)kzf*;Hdru}izVl|da*vXTzXtsJ)G`mf^f*?_~Qz zvYCyWSg_yB-#%$N`K&eGnXyM4)=?7C+3f0cj5`-hyQm?2(YS>*`p-_DIg>Msa^cSP zY2y~woyXlOTzDi%!Be3QPL7P4$F011MBHQVV4{yl32*mVHlwDD418aBJ8d(QH#^2h zIz~o%%?pREp`oenGrd;-L}u8$x2?^Kayu}u85>7{N*Egpnx*^=gDjXA^fuZzIX-;4 zjd~|@xy(?`1lqlKd~(dRJ?e-(V%p|N3G;B)$wSkf`L^~F7tj?LYUbPLismpjwo~_b z9&iEQN}IMTPfM9?8%ug_2dVnqSSmm=vS{A$OSLwtE=rkgn>?HCz)C~UqIot;wF<4< zHqU9z3^zz~MeQt_XSh_W(7NrGxrR#_?I7nHE7f5YS;TF(&NT*x>*ZWgJB#LdS*le^ zwQVUF16CT#Ei`K82agTxE0vT|_|??ktR3V|9}8s)_2Fn{e8d{-&5W6NWU{@-8kx+Q zJE?!l$(v&>-A8DU-S+5CE0;5extusH`^|CF&JK$s-6Q0{A6$6h;xeo*T(C?Vv|6Df zgr8oqQb!2umO3UT%yC}jW0`#393d>^{gc@d+TJ~~^W5Ozp3Lw${I0t%Yv#Z^oN@9} z4Mwk9knLMM|vm6hETKSjiBhgGhgVh zzzesu7icB*vwM8Ryg1*YV-DM9{*XB}Pqb$;i-`7G`F-pzov_BmZ<)x_Fw3OQVa=)8 z(#ne%PmQ!GVQ{8)PTICPUa}d{Q4{GgY)XUUnOt^+OZwzU)*J_u8}*oulNmK>Aal;7 zVnwBH-U=;;OD^rp0=U`QiL|spa$BBpu`GznLqWUH%Rtr@dfgt*o-y;xbS)j792fG0 zoz0tvv*RXpT4O_eW!nQ&6DFNFi#ks|*B!^VhM`ID(fyl| zP;L(#r6SMUxQd*4eiTI=j$@7u<)#L*dB2T;jEyMl!yiSP7cBeSe0`pi9bMa zhV#XSUOdnr{|R$Z;I&}OnenNjz)cO|=d(lETsH5M?wP_|agHFfCOK*I5D#QV511L8 z3l#Ibh>n_L)_D{AIacqHGqf+48HM_=HG-NqCk|=JCVt`75p&Phz$yz zw2b6(Qu~kDIYO}cFXyG#ZtN!Rs7Niw?h&y@!)%k(E<}4Qtl!KyN<(I3z&dA+lea<@ zC96ZB-a4j7plh9U|@aUK}J~_l(U5+ z?)ho|{SSBIEg^P9wf1e_zBQxdXy6wQOQX_#rp2r7{ic0BJ8U{`?Z#5Zfea)co3gla z;Er;VJ7)jn(1@FQEI}_^b{!f=S;pYrEX!K<;m&E&RxP+%Ij9r-{v4(OcZ$A-doSkA zajxM`3s(GCHlIBYxmPf`UO9xFz~7`3&UT=zPdQnb&5n-4E^==KJAXEl152GMz4g|j z>WRePMT>rSORM}82O!rXE84*>IG)GNwu4GJKZT19`$kdRmSvH(bPPFpJEM-UoiDK`oEjDPsChR(T%bLf5f9};=HUYt-}rLJeOPi{ zuos%w7E}!C!FJfo|BQ&6B?FAJJ$G-WVYNq#6TNs*dK957o`5B?K2mPP_e`lf4|U%m zDyq!5$%*5!FiUHYPsn`~PST=Ur241EFu}M5^75Ijb*psfLdcOq8GFhfzrtQY*2Li6 zyC-qz&7+CKi|UBIcWeR_KOU^^qzu`FvoxM7_E9gMHEDR$aSz^q&EOZ6bNp{#fIdNI z@f&5HOr{gZ@n&8g^f-;uZTOv?5`CgS1-Y#_0dUJxbRKqFSfgz(-upW$vR<@Kp)c-1 zwMbDvO`z>CY@Wf_gg?}u!drb7`beR#v*4v*+roQ)2-aG<2VC5!io74VEq&OC+yO+S9nXaEcO1J8 zLOzahv%hJ~1jl_u{9?{V#J3Gs))~RI2Q9ns#$`Y7&3JZ9Z5@zgB!XG^!8UqeV_2f; zz|I-OBZc?JM=+Zvx2WqtUwM%$ZMNmvyoEK^?{WL%oM4@P*yA}GfuA{C)%>#0(B99p z%W=*FE;NQS@WO`Vgj{iWl)fj?syIT}>FLKvcs_<;Cx`$3t+v|Ot9705nB$N^f1Hu? zW4l#Fa9s~ZGzM>2pFLVga|_#S<;b#UCOjPnKIuk$?yU77-mHHVz2AfXRLthv?Zv;H z`D3^PYn^@P?B|Mc7FQeCLb}H#!ki~)(ZH07T1iC;opYx6NRi<#p6zjPfK^w+_ z7MnRM)Gp@5KxO@;SV>{;<#=-T`r@{3589}iR27%~QeJVzQ8hv$y!8m;TbvDEYwWL= z^K&cF`QqHHJR$K=EAt3!@T#`(-#PaCrel(CJa=j}?tx?omXBdKgM2ARNbO*%GP8%h zENSQf->b2A%GkXf!aD&#>(C)s&f~u+{AED~73&;qr;)*2bG_K~L(ZAXYdVFsn1$W5 z;5ky^^0EtYk6n=P+zvx_2Q=B&i(>B%_{=!8R`#MFt~JVE?w@mp+d#TmNqHWWC&wTi zky*VU?bPgbNrrOPj&LjFw*_x<7=?;si`e8j8-|2;5uPvAma7zdpyp7fByM!2UY}EOXXM#^q%32S&o<$sD zW5wQKd;Q$rS_>ylw(6btT;Fbbb8TMb)HYv^zoUSJtAO9$F=Shg{VQvM=e(y-pam4? z<`^WjSe@ETWL}G8tZ=LOM12uDtv()~(o~&kE!a8?d&h`w^`9&GbgJUQr@x%!dj`Jo z{IOMDH@q_7N9$fl)ycdVxfD+PDP#km<=FzScXfu-W&?gTK6J4Pr>QDj&7g*)L9wt* ziIk53=fxe~lzIEajVLr#(d4a-OFJj`E~=9+!xR$IJ6x&Fl8YU;_xk2dVHkFJ7~DIj z2XBGAO{WBB54pH;k!+Do=bW@w$9Hv%S3ahs7_mMNSRLukz!v+?UZwCOK9=J8;w_6m z#TE`3)&2a4VG=gaoxHhG^$r_3L`mHypw<4O7hVr)8I>kBAKbXmPs4jPrTz(pou>JA zyc?X-xrOc_|1DKaXZ*uoY|uOzsdft zqW$@cwHR@>yJUup*!Lsib+Jkmb3z@b zd418^;^9@*1m1FajTW|D&f5JhQRyN7vdnE~8*d(;|4RpoM@W5=_Pg z-70WzXmPSfIMoy}7*D359SNoMNF;*SXX1D>EFO<@JH0HWuS}kdCucqrUYtCp1BIHl zV#(4fU0`GU4eQx{_KDq5w5qO4U_r9sf6tpcC5@K>^0Tuj6hce#zfT$K76L(Xni zQ#5QOwQ5p^SKDl4dfyI5DOr?oLi7?p9b_*~@SM5nZ&p8xAM#j=>Ms1fi`Ag&|GOd^^4@ zWk5@Yn#?E#&!CagFd-j|gagUL$*JTtUOG%pt#r+=z;Ke&aARf`b{?#tKyv1X$(esb zi`Qi&Kpu=j{IfvZMKP^2kFc(AfioXoA_rpOKwP?=c^EvrMF<|Ik^P-{7!d>$3{PXW zOs@#*9yRk|IIJgEKt)AxMKZ+^#Dyc6iXcNETSbwmWJ)rX42P3_i0}&d^B~U+9K?i6 z3<|Rz35ldU97+x-O*cDMNG7ac+c(Ey=??U?ge~cM2qBq`m0{jF7n2#4P8og4JnJeC z#ZsmM4i>s)vrA$ydn)ess)s4a(TGebJefsu z%)BR=(II*tzE?1p$(hIT_WR6-#nXhq#hB*A>{8BIJq{dNeBtDXr2-faX6Z^5xWb%` zaau(pVI&3Ow<7ZFuEF~gUyt4vY5Uxk3^7d*$~}BlA$ajFlnX!2c25 zh#Qib@vvJA+-q~dNN(Z+Am1A22fr29$=2jI3?p0aay^WudCtYAE<Z6%5smeNVU#9fSIeRHIn*(8?sgA(=!CHkr43Q@rFh1v=%Q^@1& zDXtg;3Z+883IKhC9irrlK$_y=v^y+yMY&B=B;pdy!8E+WUmZqxUQj^sta(7MIbmle zdVRll4xHt85;W+AHP+jK*KJ#R_YUyO4frLs+5I_s$N5`ZHo!o9QQ=(x_Z>xk(IUbv zQqX{z0RR3>QH?_KwgLWa2bgZdKkb136kiDZ`wiS*NIC_?6^+#g|CEBfZOJqY>C6Sb zMxzJL@n0AX=&_Dm&brWppF*+|cnM@cFY6x1I~w?LdW6*uFZ!j_*zhm12B!*t|AfEM zop|tN(t7&1We>ie$G>9odHjPT-iJNrx3bsbo8X%z{F^@hkGv%7V;t@8>VMc>w*!{(_y=149xb_%bE@CC6wWevUUl!W%wxS2=Hnb|Ti zGDQ6cI@&kiLax2_G1ngZ{P&leYu=Ha`Gd>atxuhXU*6{)##0_udiDN&b;TV-LhQY0 z^6RfO=J3l@rn~^a(l;6?wOgtEyFnfA49ievmf+e)G*jw|WEkPk6zB0-Zw?b2rGIvw zh-U}?rakiW-7`cFNNx%XIR8QBaUA&u0r>#ek7M8w9LomfIJgfue?Aj@?S|wt=d^s( z75~7Ce1d?U#AV??$vl24Xyb^fo?mq1Sjk5{{@hI5Y5-DxM#fJ+e8*kUcsBSg7}ekt z|E{2pqw_6Y6&>|-nc*hf24U6WDNqn?JJB0IKjA*6FfR9370A^SMS?Etd3O29oP#4W z_g6e5vpYroh)@4G^!aJ3drXI(dTPl}F8Ry$S)WJF_wD=)oA0}eo+!I5IHL1SDEqBL z|1fm<8EH;NFah7$BlX;hC5<<)kGBu)_~{ehnB{%m z_{WLE)EvFJqb-ir^M{{A@$K~(W`Un)@zdne2o>9?_}qM%=pQhL-siO!KDT|>#j#xK zym~)oM?H#feF|^g$-758>hV_T`YrV-Cy&=YGC6D9+)+PeI`zAD#-g$4cD#KqFNLLG zV%*tLKWUHO<_w=T$1=|PG4HK|^~2WKZ5d~*<$POxYAiF3*Xx|Tw{1v&FqTRcjCnr_ zm-xiHLw$eo24Y>!ls~#t*sjvXD!IW2@h@ z%@Mrsa2_vHjGE3bX?3G#HHA;n4vOP2UdXb>51Z%BTq?(KM}5ZW9zTzlo9z13WVT}% zuX`YjXYhW6=?+Sav@YO{=Xz_2@7r4oL4d;cR&R!OdNckX=sKbP-Kcl&_zyJZ{~T%| G0{wZ6Hvf-~lO@B$(Mw7Z?1L&HHzc5Q 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 - - - - - Bedlam - - - - - -
- -
- -
-
-
-
-
-
-
-
-
-
    -
  • - : -   - You -
  • -
- -
-