From 3b1ac756ed1c8ee1a2e462670c85f62ed0790a1d Mon Sep 17 00:00:00 2001 From: Kosuri Indu Date: Sun, 28 Jul 2024 12:14:24 +0530 Subject: [PATCH] Added Shadow Runner game --- Games/Shadow_Runner/README.md | 60 +++++++++ Games/Shadow_Runner/index.html | 35 +++++ Games/Shadow_Runner/script.js | 227 ++++++++++++++++++++++++++++++++ Games/Shadow_Runner/style.css | 139 +++++++++++++++++++ README.md | 3 +- assets/images/Shadow_Runner.png | Bin 0 -> 40086 bytes 6 files changed, 463 insertions(+), 1 deletion(-) create mode 100644 Games/Shadow_Runner/README.md create mode 100644 Games/Shadow_Runner/index.html create mode 100644 Games/Shadow_Runner/script.js create mode 100644 Games/Shadow_Runner/style.css create mode 100644 assets/images/Shadow_Runner.png diff --git a/Games/Shadow_Runner/README.md b/Games/Shadow_Runner/README.md new file mode 100644 index 0000000000..c746a16fd3 --- /dev/null +++ b/Games/Shadow_Runner/README.md @@ -0,0 +1,60 @@ +# Shadow Runner + +Shadow Runner is a simple browser-based game where the player must navigate through obstacles and collect power-ups to score points. The game area scrolls continuously, and the player must avoid obstacles while collecting power-ups to increase their score. + +## Table of Contents + +- [Gameplay](#gameplay) +- [Usage](#usage) +- [Controls](#controls) +- [Code Structure](#code-structure) + +## Gameplay + +- **Objective**: Avoid obstacles and collect power-ups to score points. +- **Scoring**: + - Yellow Squares: -5 points + - Green Triangles: +10 points + - Red Balls: +15 points + - Double points in darker areas + +## Usage + +1. Open `index.html` in your web browser to start the game. + +## Controls + +- Use the **Arrow** keys to move the player. + +## Code Structure + +- **HTML**: [index.html](index.html) + - Defines the game layout and elements. +- **CSS**: [style.css](style.css) + - Styles the game elements and animations. +- **JavaScript**: [script.js](script.js) + - Implements the game logic and interactions. + +### Key JavaScript Functions and Variables + +- **Variables**: + - `gameArea`: The main game area element. + - `player`: The player element. + - `startButton`: The button to start the game. + - `scoreDisplay`: The element displaying the score. + - `timeDisplay`: The element displaying the remaining time. + - `gameInterval`: The interval for the game loop. + - `lights`, `obstacles`, `powerUps`: Arrays to hold game elements. + - `isGameRunning`: Boolean indicating if the game is running. + - `score`: The player's score. + - `time`: The remaining time. + +- **Functions**: + - `startGame()`: Starts the game. + - `resetGame()`: Resets the game state. + - `updateHUD()`: Updates the HUD with the current score and time. + - `moveElements()`: Moves game elements (lights, obstacles, power-ups). + - `updateGame()`: Updates the game state. + - `checkCollisions()`: Checks for collisions between the player and game elements. + - `gameOver(win)`: Ends the game and displays the win/lose message. + - `createLights()`, `createObstacles()`, `createPowerUps()`: Creates game elements. \ No newline at end of file diff --git a/Games/Shadow_Runner/index.html b/Games/Shadow_Runner/index.html new file mode 100644 index 0000000000..16ae2bd8bd --- /dev/null +++ b/Games/Shadow_Runner/index.html @@ -0,0 +1,35 @@ + + + + + + Shadow Runner + + + +
+
+
+
+
Game Over
+
Game Over
+
+
+
Score: 0
+
Time: 60
+
+
+ +
+
+

How to Play

+
    +
  • Use Arrow keys to move the player.
  • +
  • Yellow Squares: -5 points, Green Triangles: +10 points, Red Balls: +15 points
  • +
  • Double points in darker areas
  • +
+
+
+ + + \ No newline at end of file diff --git a/Games/Shadow_Runner/script.js b/Games/Shadow_Runner/script.js new file mode 100644 index 0000000000..8162307d8b --- /dev/null +++ b/Games/Shadow_Runner/script.js @@ -0,0 +1,227 @@ +const gameArea = document.getElementById('game-area'); +const player = document.getElementById('player'); +const startButton = document.getElementById('start-button'); +const background = document.getElementById('background'); +const scoreDisplay = document.getElementById('score'); +const timeDisplay = document.getElementById('time'); +const winMessage = document.getElementById('win-message'); +const loseMessage = document.getElementById('lose-message'); + +let gameInterval; +let lights = []; +let obstacles = []; +let powerUps = []; +let isGameRunning = false; +let score = 0; +let time = 60; + +startButton.addEventListener('click', startGame); + +function startGame() { + resetGame(); + isGameRunning = true; + gameInterval = setInterval(updateGame, 20); +} + +function resetGame() { + isGameRunning = false; + clearInterval(gameInterval); + lights.forEach(light => gameArea.removeChild(light)); + obstacles.forEach(obstacle => gameArea.removeChild(obstacle)); + powerUps.forEach(powerUp => gameArea.removeChild(powerUp)); + lights = []; + obstacles = []; + powerUps = []; + score = 0; + time = 60; + updateHUD(); + winMessage.style.display = 'none'; + loseMessage.style.display = 'none'; + player.style.top = '50%'; + player.style.left = '50%'; + createLights(); + createObstacles(); + createPowerUps(); +} + +function updateHUD() { + scoreDisplay.textContent = `Score: ${score}`; + timeDisplay.textContent = `Time: ${time}`; +} + +function moveElements() { + lights.forEach((light, index) => { + const top = parseFloat(light.style.top); + if (top > gameArea.offsetHeight) { + gameArea.removeChild(light); + lights.splice(index, 1); + createLights(); + } else { + light.style.top = `${top + 2}px`; + } + }); + + obstacles.forEach((obstacle, index) => { + const top = parseFloat(obstacle.style.top); + if (top > gameArea.offsetHeight) { + gameArea.removeChild(obstacle); + obstacles.splice(index, 1); + createObstacles(); + } else { + obstacle.style.top = `${top + 2}px`; + } + }); + + powerUps.forEach((powerUp, index) => { + const top = parseFloat(powerUp.style.top); + if (top > gameArea.offsetHeight) { + gameArea.removeChild(powerUp); + powerUps.splice(index, 1); + createPowerUps(); + } else { + powerUp.style.top = `${top + 2}px`; + } + }); +} + +function updateGame() { + moveElements(); + checkCollisions(); + updatePlayerPosition(); + updateHUD(); +} + +function checkCollisions() { + const isShadowPresent = document.getElementById('background').classList.contains('shadow'); + const player = document.getElementById('player'); + const gameArea = document.getElementById('game-area'); + const scoreElement = document.getElementById('score'); + + lights.forEach((light, index) => { + if (isColliding(player, light)) { + if (isShadowPresent) { + light.style.width = `${parseFloat(light.style.width) * 2}px`; + light.style.height = `${parseFloat(light.style.height) * 2}px`; + score -= 10; + } else { + score -= 5; + } + gameArea.removeChild(light); + lights.splice(index, 1); + createLights(); + } + }); + + obstacles.forEach((obstacle, index) => { + if (isColliding(player, obstacle)) { + if (isShadowPresent) { + obstacle.style.width = `${parseFloat(obstacle.style.width) * 2}px`; + obstacle.style.height = `${parseFloat(obstacle.style.height) * 2}px`; + score += 30; + } else { + score += 15; + } + gameArea.removeChild(obstacle); + obstacles.splice(index, 1); + createObstacles(); + } + }); + + powerUps.forEach((powerUp, index) => { + if (isColliding(player, powerUp)) { + if (isShadowPresent) { + powerUp.style.width = `${parseFloat(powerUp.style.width) * 2}px`; + powerUp.style.height = `${parseFloat(powerUp.style.height) * 2}px`; + score += 20; // Double score if shadow is present + } else { + score += 10; + } + gameArea.removeChild(powerUp); + powerUps.splice(index, 1); + createPowerUps(); + } + }); + + scoreElement.textContent = `Score: ${score}`; +} + +function isColliding(element1, element2) { + const rect1 = element1.getBoundingClientRect(); + const rect2 = element2.getBoundingClientRect(); + + return !( + rect1.top > rect2.bottom || + rect1.bottom < rect2.top || + rect1.right < rect2.left || + rect1.left > rect2.right + ); +} + +function updatePlayerPosition() { + if (keysPressed['ArrowUp']) { + player.style.top = `${Math.max(0, player.offsetTop - 5)}px`; + } + if (keysPressed['ArrowDown']) { + player.style.top = `${Math.min(gameArea.offsetHeight - player.offsetHeight, player.offsetTop + 5)}px`; + } + if (keysPressed['ArrowLeft']) { + player.style.left = `${Math.max(0, player.offsetLeft - 5)}px`; + } + if (keysPressed['ArrowRight']) { + player.style.left = `${Math.min(gameArea.offsetWidth - player.offsetWidth, player.offsetLeft + 5)}px`; + } +} + +const keysPressed = {}; +window.addEventListener('keydown', event => { + keysPressed[event.key] = true; +}); +window.addEventListener('keyup', event => { + delete keysPressed[event.key]; +}); + +function gameOver(win) { + isGameRunning = false; + clearInterval(gameInterval); + if (win) { + winMessage.style.display = 'block'; + } else { + loseMessage.style.display = 'block'; + } +} + +setInterval(() => { + if (isGameRunning && time > 0) { + time--; + updateHUD(); + } else if (isGameRunning && time <= 0) { + gameOver(true); + } +}, 1000); + +function createLights() { + const light = document.createElement('div'); + light.className = 'light'; + light.style.top = '0px'; + light.style.left = `${Math.random() * (gameArea.offsetWidth - 100)}px`; + gameArea.appendChild(light); + lights.push(light); +} + +function createObstacles() { + const obstacle = document.createElement('div'); + obstacle.className = 'obstacle'; + obstacle.style.top = '0px'; + obstacle.style.left = `${Math.random() * (gameArea.offsetWidth - 30)}px`; + gameArea.appendChild(obstacle); + obstacles.push(obstacle); +} + +function createPowerUps() { + const powerUp = document.createElement('div'); + powerUp.className = 'power-up'; + powerUp.style.top = '0px'; + powerUp.style.left = `${Math.random() * (gameArea.offsetWidth - 40)}px`; + gameArea.appendChild(powerUp); + powerUps.push(powerUp); +} \ No newline at end of file diff --git a/Games/Shadow_Runner/style.css b/Games/Shadow_Runner/style.css new file mode 100644 index 0000000000..e16f332e21 --- /dev/null +++ b/Games/Shadow_Runner/style.css @@ -0,0 +1,139 @@ +body, html { + margin: 0; + padding: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + background: #333; + color: #fff; + font-family: Arial, sans-serif; +} + +.game-container { + display: flex; + flex-direction: column; + align-items: center; +} + +.game-area { + position: relative; + width: 800px; + height: 400px; + background: #444; + border: 2px solid #666; + overflow: hidden; +} + +.background { + position: absolute; + width: 200%; + height: 100%; + background: linear-gradient(to right, #666 50%, #444 50%); + background-size: cover; + animation: backgroundScroll 5s linear infinite; +} + +@keyframes backgroundScroll { + from { transform: translateX(0); } + to { transform: translateX(-50%); } +} + +.player { + position: absolute; + width: 30px; + height: 50px; + background: #000; + bottom: 10px; + left: 50px; + transition: left 0.1s, bottom 0.1s; +} + +.light { + position: absolute; + width: 100px; + height: 100px; + background: rgba(255, 255, 0, 0.5); + border-radius: 50%; + animation: lightPulse 2s infinite; +} + +@keyframes lightPulse { + 0% { opacity: 0.7; } + 50% { opacity: 1; } + 100% { opacity: 0.7; } +} + +.obstacle { + position: absolute; + width: 50px; + height: 50px; + background: red; + border-radius: 50%; +} + +.power-up { + position: absolute; + width: 30px; + height: 30px; + background: green; + border-radius: 50%; +} + +.win-message, .lose-message { + display: none; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 2em; + color: yellow; +} + +.hud { + display: flex; + justify-content: space-between; + width: 800px; + margin-top: 20px; +} + +.controls { + margin-top: 20px; +} + +button { + padding: 10px 20px; + border: none; + background: #444; + color: #fff; + cursor: pointer; + font-size: 16px; +} + +button:hover { + background: #555; +} +.light { + position: absolute; + width: 100px; + height: 100px; + background: yellow; + border-radius: 0; +} + +.obstacle { + position: absolute; + width: 30px; + height: 30px; + background: red; + border-radius: 50%; +} + +.power-up { + position: absolute; + width: 40px; + height: 40px; + background: green; + clip-path: polygon(50% 0%, 0% 100%, 100% 100%); +} \ No newline at end of file diff --git a/README.md b/README.md index da4d9182b4..b745e3df2d 100644 --- a/README.md +++ b/README.md @@ -205,7 +205,8 @@ This repository also provides one such platforms where contributers come over an | [Candy_Crush_Saga](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Crush_Saga) | [numeral-whiz](https://github.com/Ishan-77/GameZone/tree/main/Games/numeral-whiz) | [candy_match](https://github.com/kunjgit/GameZone/tree/main/Games/Candy_Match_Saga) | [Crossy_Road](https://github.com/tanujbordikar/GameZone/tree/Crossy_Road) | [HueHero](https://github.com/kunjgit/GameZone/tree/main/Games/HueHero) | [Puzzel_Winner](https://github.com/kunjgit/GameZone/tree/main/Games/Puzzel_Winner) | | [Emoji_Intruder](https://github.com/kunjgit/GameZone/tree/main/Games/Emoji_Intruder) | [Guess The Weapon](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_The_Weapon) | [Guess Who](https://github.com/kunjgit/GameZone/tree/main/Games/Guess_Who) | [Pop My Balloon](https://github.com/kunjgit/GameZone/tree/main/Games/Pop_My_Balloon) | [Tower Stack](https://github.com/kunjgit/GameZone/tree/main/Games/Tower_Stack) | | [DNA_Sequencer](https://github.com/kunjgit/GameZone/tree/main/Games/DNA_Sequencer) | -| [Boom_Blast](https://github.com/kunjgit/GameZone/tree/main/Games/Boom_Blast) |] +| [Boom_Blast](https://github.com/kunjgit/GameZone/tree/main/Games/Boom_Blast) | +| [Shadow_Runner](https://github.com/kunjgit/GameZone/tree/main/Games/Shadow_Runner) | | Game | Game | Game | Game | Game | diff --git a/assets/images/Shadow_Runner.png b/assets/images/Shadow_Runner.png new file mode 100644 index 0000000000000000000000000000000000000000..46dbba31bbaccc54486a439c5060acccf773dfd5 GIT binary patch literal 40086 zcmeFZcT|(v-Y|;es52rUDjk9jqo_0y>5%9kUXs_mBIn_1<;PUW>)Ue)hBXuk8Kno7g)h#sY^W z5A*Ty30%K+^)4UZAtWE)e%qf8a(jd_w$5;W?eo8D{2O1zfb=5wj~`vH+`hucSDnny zd~ksK_s@^6+4}SG33l*)_F;XC9`f;JDqO#M#R3Linc~m1bZ*<`R9^lm?(FLX*y%g| zcM`-eeQ3Q8UjJy?eM?{bRm#UtUuOnYlSAGg$CgoCiK^2ZJFMN09XsEm;|>U?}n zFE=%&@#u*=zo|Z@py_>*<7#;5yKmoEYxTH6a9IDOC;4&Ih--Fz!?||FdxTx89TghR5(fDDx!mf28-G{`o(tu-<8$ zK7BgJ#fk5AHh!?%>qou}3?YNlwu@-YM_CdK&b#!dzf9zN{VibWOYttE=f$}ZI^Sgn z7oIK+PbyfskiW|_9M*03G;YpwW*I>nH&EO@GQh{{AGhHNu6OfqA7LsdcuL`&>*>8u z1wC9@qZb)Gox5Ge+w2j8@0VP5(^)(X6E3>cHfJpZ03@f2@;uQO5?^ZuI1;QK`H zcL#RMooPJXU-f1WqW=3%E*sw=^7@Hq9^5~U`(%r*@B2RY)4jQ4;jbiGT{t|`V)^DC zj88R!{$7o`hppFd0;>Lhtp?w-Br-m_W>M{Wzhm-O*ENHIarHfl*ob{!&8_I~)kY2X z=KfKm>z2cJiqs492qS4@F!(pv8a%RH-j92s7VsVa(W|_#+%9K${0))%_s>4frKWj) zM^@+iR})`q5uRy#^e;=|q4w#r#(aYP_r-Si2y(Eh`EOzuneI)^mxI0a*O=e-nC4p7 z{5NOM{<_C&qn!C8e~r2Keaw1D|384fvq!Y;Ba$6`cHh_1+e2OsKK(a5GkYA8Dpu`p z`c9xdqfX;Dr?h|2aL=L}|0xk#P`be0|)`em~|^iClZB@1eKBctOzQzPrD?hmqIQJTYk*8TQ1f zu&te5@=Zhz_gzGJ%HD^<>F`O#B*>%iywrV}glJ~_4E<;B>+#U<%b%0AWAu@aI{;Vy zRGMIJRAvzledC>iJ(PfX%)lTaBxim5Lm}kjE3eRi=Q^$C!a_oQLbu z>}ntl4~M(aM(p~HO5PIRN$Ga7{8eL|oEShtzCGA6V7JM+fY(?;VbxA#FD;Vkc^)3i{=}b9;>)h*d&@rS0vN z3%#!#zkP_D_=!)_BtyfyggoDuW)2tP`%-`V`t|O@330w6dAk2aseSKUHxadTQq~-~ zGYkS#5!J90kIzu5Ncxa7!+uVW#3S!n)W=x$-ZRW__I8{%4N7uIS(DUN!WHj^jDPM+ zS67hQce!KnOYz*wdGmr>#qEdqmX7g^PA(ZD66M%GRGs6Vq^h8b|FTK{|7pShcY`~k zC0z*ua3F-M(X!O!Y2oCyap$4j@o%K$(i9cX$xG~^T*FpeOJHmB<^bhJw4f?{P`@sA{kY8P#r9zD?bAtGwH;C99mL)(AOg0P=2u$k)`@bQ&(JWzA#v_x~@ zR4+o*9|RLb*v=|Tq5vZNj{k->kC*;1sfHVl$ zt_lyOxeb5x1#xt^bN;1$sw8(Lnxos9e%x0*=p>1E+*jdNyfe=CYIrkw+42r8-^cD8zn#r&s+|H_HfOB3kSk`!{r1Gc zAH&psO{v?D`pL!!BzNR}gFW@|M=d#1d!h*H=EdNlPLk)z(aQtbQy0bZ(J{F2JJCI;FV^B3Ie1sj90Y{sA@f~h^POEU1n2`B z&6VdNnw(u;zv>=5XV<~YqfkgCcp|S~fzz@x#zWw{C2(2)cw9Uww!)#-IK!At-KgYI zN@`CjMU043>npoDRp95s>fC1`@|;layLH<=7F8V#mW6hn$>GX)1Ur!1|FxDYp12%T z+EDW&Yp+z%toCm?1qY;EFeVUkbZ|FeXtf^tc%ae#~C=zuzp z61?_LL6>*#Ib7+TNt58S$+GipQ^~&fXO#G47`VUcoYtxuUs=|FobLZdwf}^w zcm(nR)(7e!Og#Hhk_&)-cM}>b+0qbRc_wI(f#zDTNZdNAOhUI!YPO8p5 zFSz>n#6M}^y|5#XNWZ@8gYbU;o04nK1L0x+Pr|wCAMqEP!rXuc%E&s$4+ZjF4D8g|ow)b#t4j@-OMUHSVNhV-^cqh6Qh1I?t>1HQN7 z2oAyC%%Hn1#yGxDf26N9;Cu{fRr#u{9Eh2AKJmQ_8F5sd4S?LnzS~M0ZB1=_YrBGf z<8*?)avUqY{($McvIWy*#03N-pOTBh?m!4~_Y@JQvk@~C7%iXfh|{Mf?-vA~H(8j_ zI|JIr_t4>e?ojp^EoPS7Dy`C{AwSpO3pY{l@$E{8b#mIsm}udW)vh=T{Y8%EwtMA0 z<#Xd_3$GXn;2Qd46v^zRMtag^~-4ZXbQ&!l1h%8&~PgeomRbkHEZqr3r0rg)Q z^)3X>ESkMgGUZW`kNY`Xyqu^ zyp}oOHd1iXh_MJr`n zo_(8oVJ=%d$ZD`fwb|EJ@6RwqXC#YQVrGhYi--AjrHZq&ST!O`ZQ#|Q0ecprGTFFd z+ht4Vt#KLQbbe?T*sx#j)j*==`5HqmMZ<$8DEDV$PSx}0t~^V}P7O+n(i76|z!PlX zcQ%9+yf3L=6XP54X4b`B~_h0UGULTdupabKo!$ z!%Z7W|FMuqu$#=URoO$Nrq4DZ2kvt-AH2Y4wh@SaSFvY`OhqC@km6uTS7}Ro`bpSY z;1C*nYG^sbx>If4eBkRhRmW@Jgb_64F$>@^X9f9HpVztKusid3xMg41a&x+&nY2t$_f#9leZ~J~ zh@P3MHeK?is{4o3CfD(_X8j+z5vD8kAmu2BM*(#Zt#d~6Ny75&lii7PRb$x7l zvl2Emn^#QvRJ0+k=?|@&%(Ko6o3*SaKDrcaKSoZ+k#;v3orrQ#OkH&|>Ei}P)pMs} zD33Ej!PSIf^9+nEWJ%>mK6zT%`#%!TSury=W zk8#5{T&v#(l2?%=1whKbQl9|o07CCEw^QVZgCZo-(1vbq*;ay932cNAtt<&cWLn`b zz8a90c#_02c_E0>hdTKM=>QP;6rb^;H5x7%E}V8qHU#B zi-OX`%or*;Rgwndt|%n;mDYRdsI7@V3bGGctvajEkbj2mdo-jy-*xVgk8JN@aAl}& zAy~$A&{v|%mHDgk+MnL9_nn|Ju7@x8a<|~E_`7zMl12{FSbev|o>};|4M2OxTJTib>to z%0u>Vd}cq%3%BywS)0lYu3YgdBjhgHzJn6^uruM~S(C%xO@byK9*3-HNgQi>cP!I<21 z;qc&G_>IbnA-y?l=d-}dmv;XBxz5$$bY*D3R@|`QY9`~2o&tcqv)(fHB?}&m--c12 zg-GM)o4g*l&^VYUfy$8!y1b!B2~fRo>$h|4ZX%1T&@$2hho-lmpEb!&@nA3 zxGc%B#B9mmZQj-E54(mE)m3OPNm_VamiQzh>XrnA-s%yzSm z6RWZdJDXEj=hvj|glp%NW1WW-CjnnT70j-kiT9p_h4E9IydZFE{SEv6=&@|5O%5_X zjHFN<9F5OC;M*0iGOA~{&@~T9-f3pgP-IB$$y(TZ-2;c#Lk?j9tDBYd!Epp9o|qfI zG|hHSDX6|g_hL*ffuF&gPRPLB@pnc+adyhF5^_AYV!3P01DA;n(^|8{0o2@JG1KhQImxOX z=!_x5%Ni~{Q3A)-U!7EMRys&s6N#4AI2kpjua&UzIn2Z5Oz@g0+$!wRxc)#ZrJ!kh zoz`ry1cg%HDH!Y?h@kQ)WRxK@jG30woO7+ueq@u0=pRjYQFC4t5(x2A0ePo0D z0;Xvlum=y_?JekM5v$p$BFI5PZy-cPvbgPFLR!=pksP$~#*1zkd)=gnVT4MNPSN(;9kZkY+|5Xxg5A{W(otzr%+h5befW#p;?_rT82#34q{A* zFWRE^exeH|j6A=VPL^R*ZiF_k+UuM@W1Wy}W(|0$G;v`n8ZUv?X$)JjpqeBwW?wgb zT^kwP)}J4Z6IUaSHf?QL3a!VtPixaYPN`&5!}adg{=~IP2K(_a*DLIlRNbqEPppr- zGYI0Qx6_ZB;sbmd?(fg^_q0fm5N-sA?v|vm&h3TDWxWF~1PzxcGe=LC8zy%ELA^)5+L*YZ7s>L80>a(i5A(Ph-WLxY z%RHX%xihjn^l}I8b_}Akmb+lxB-FfrCx@$Ncmmho$=HRT>j7-*B}y~w*Upw-Kf&qE zhu*+?Jpd0?tFF`;=V+0Lq^x15_C*5I@saXF~q+6c|2e6F8wfv@0}#qs1IhJAJBTlz(1hW*wlQ@ zf{|7ut1mSq)3RtW4h_D5+pk)Mo!A5+Qjdt(uRZYom~X1DVYuyevbocTVPt%Ad`s82 z=v7(o3@&okIU@NZ%c2$Z-)?0y9s9hiO?}$ds&O<+$^dDsQ#<9wSf(S-2)tMq+}ZR7 zYVXcE?mOaB=&WeBes_&pAmSzOINelAD*NoEJM<6JdC+^Q$;R3IKzms4(`~clSHkhr z35%8Ug<_RUPtI{3-Ho(x*Bvn$BQK{ zX0V)<9`Z4!2M?Vn!7bX+u6>cdI|?`?YKX2OVDj5=#%mFm3QS-+Y#P)oK$lrHj`jv( zl44FZkKKc=6`qpI^}7u1jDy?Mt~Ccn&yRXHdtGULfm^Fg3(8TT>FYW%EO7H1arIXStD?Nks!bdGt&xif^y@0c7x&X6I&XRo63rOf` z6g9Lgog&_JKpBly$mHEtOqdX%V`ul9DF1{GX|9yGa8en~iL_}YU4gDF78;}FbPR`s z&pXZJ*MDmaYC8q(;2L^VTC&`37NAfz?9NIP%q4+EMSEXXEQh!CzzW?9(^t0^0lF%T zFpH$tx|2+wn0Dw_F}u+tcI31$^bWmssT@XbP+u+!l5H`}5J2$6r&p+dUh7twICHsL z)gPL%Fe)E>WUMlHW!MkVdWja*@-2A(Z5iOngZ2odMf>n29ho5&6HuFJfM>0iOA;%P zY3IG&uL~oLm+o?keE_R;2bQYqSOw#1^wLYNKvn&(!2f@R9sZM!;nMy8CLQy4Ap>7k zq&qkDukm|S?W1oWxFHhJB9 zL~zr?H-FiyKYOoX$DEqoZff$nBV8L7ALATPBG(cUgn+T*KJ#sP2B`Fi-5zps?3Kp3 zQT-q{JS5bu4n9kV-lF~JSg_?t62{vM72&LJ z+Y@Po1Ty>4qay%4t$|hK-ONX8BG9o;O{bw6uUSmV^1CLFPpZ}PK{rXO^1dEtO*2U=(7dgD@$HW1js#I*PU;5kENdqxk1bI`$l5@Ohtis%tj>^XJv&}8q1~}U zIQRGX@7~$NKv^jRvPz->PC0QgIQyvBbcPZ*(J6XbHb1(dA0QHX8iDM4ofF~qtLWAcXB%a$zyJ=8BRroId_%g`dfAP=)Jy4Uhs42aM-D5c z+K3jGFG_!kwwDg(%&QK)@d#qNuhU6r@W89ej#EcA|p|jT>|4s(S$p%%SJlu0F#Fb86i(UMUDy zVYo8xf^yqUMq?9feY?WAF6+pKFsxH^BouRG< zM#`hJ=#B$@-IN)~^Z=4tVxq-$M?NV#jy{KuIJ~5oHNYGM$3L;A*zwT5Zw^jlDoi!t zy&Apr20U;QLFpaJ-+Vko?rS&0x10y=y18H7d^OYphXxQfpEPm0Cy!03ADj+wV1E5H zmAlAL>E!6qZr#e*yk18LL!SlCRB08>@~gVspq6_3$s(Ch?qvk-Npj>B6ulGm+U#TY zFX~+IY1ze%6y8oM$**3>(j?}moF}PpHUkoJ)^AKn6d$O)pDYpJ+3-jyNE^r|Vfaa& z-t(PKAbmB2wsvD#kd&E-Z0puFyyga-676c0T@>>5c5+uE-Qno*UXytB+cYH$UAd6* z+9zXUleEUAyj1E(0o9cj`4UrwDQa|Mr@DM_(p@F9%4IhdFd%3O8tUQ=t?!LY+#iw9_mHgS}F@fVmpOu)-yC&LdbFn z6`01_uKVrn{xEuRH>L4F^Ltvk)BMuu=uXP%FyrSX*2GxOd9JP}Ps^B^4z_{glc4V? z6BoIs(netKm{T{_UJ$xIk&$XiAO@DQNx+Mlny~Gda7vBa=T?UR?VUo(<|&6-^)a78 z-*9<03*?)GLU6F#Bw3EM5Qt{Ota`}6tKp27(~q^>9oab8HsJmI%PwwM)Ep|4TPZE#N~nCjl9tidqS=*@O1W9qm<(C$M- z>&~2~DzzJgX+qDse)iEprrG&RlCpwuD(x2fC4tuVTm8Nm&01Uzq*v4$m%w09v+`QV zK4{Y|3r* zEf;}CYV%Vb3+z4|{1UkVET86_PTZ`xA=;0X|Ed3rf`+6uN~z85uHcm zu?<~On0Kd)vD3{%AQvl4$Btpn!?9-XDP_Taf-5)-38iji(X^^g{z{f0Xf-OfGe#OF zNYq-d5X8-L$3llOdD2{)G>6LI#M1pBqcqPaxn2wC3N;ta8FmFOk23y3+ic{mlXTe7 zA6l*K_SKz4Ee;xSJf)J=I?08|YxZ9i^ow?>vBX7Lhm3h7vg!OQ8_3Ifp_3R9wet|3@bm{2xpCu#g@(4V79!gSR)$AS4lcahW~n~O-Bk$E z){C-tkc8{bfiKWQ$?dFrt#q@_AYHPI%%rzie}>|BgPKx2((SFZ1U8Ee=#K`JRa+09fu?Y13kE=c6VDcGi-5OgUCX6sm-Ee z6%Go`SCU)h)O`FsvbQYrp4 z$L3fsFjTVu6ljVMr{_3g@GHeXw5Raax^#x;+*K`#P!oog(Q*Jbd9(IFqC>4)bBAEH zfmz`~;3U`nZEM85TbnTFeemfTufo<#M@A@_EQFE=z}GQn^%q}{=Ns0p#46o_x2qU_cLXwoOGzcJ~|Y8X~XWhq0SSJ)qcG3N6B{_;z- zk#8~}&{zIQ%%%$Cc0va0frWGFh=;Y`txWFiMefMg)jX;E`V(G)vNFy|`fQGno~>P) zC5+0DBEa0rd)|5y-1T0YDa2(LIsh~iB#)EM+=}bz=}E`E{h8vnBV(qq-FX(=ALxd% z*YTKbX~xY68~E9kR6^|O3q64wjmDMBDf-s0d-GLG?q~IM%Q=43set1eSDq~eM$>#! zl)6s{*)(V2f#n{gX>x(8x=+qlqnCXtH>j;4?~3xIevJ%qHjq!!;RD# z=P{FN#KXg}UbB)8%I%;tl{PBDjLj;oi(x*Ng_w1D{?YQX7~G+j%c@)i-i;b@so_@E zk|WV!3=-FTm3^X3N2E(oiC;MrSLXaZ88FA?NfD^C%6uuRL#(&3tIR8N?Cs{h>Yfpg zF!*VmG5$1fUF7K{Q!gc*0?(8VIFg1R3@$5uwp4*dfmnbRj^}!OoS`ny*HjIHcL7 z$-8n9fw{$lHi0{(aK|C+8`S8z$kLIAjHID?B91uvc&hfawhB;0ZF&F`(oc`C+#1BB zDI1Go*Ct?*Q}Lva$`e|{^oW529JjK#u>z2&K(+{InKAWi3szg7-i@gT#zaP1!n1ZU z>Ky|y`x_xS$RN#lhh%_s$|%?Zwgy*yu={!C3OIUuLvo2+937PSfrf%D9fy|EcxB90 zBfR}0c?UIZz;Duq+QpqO{0-do3_9}C^(wS?<-v5#0Sc34jcqR6;^sU|V*M-ILD`Th z#juNo-6lh2uVY{=ISpFdc zeML5O9ORALS54A7?EtPQUCb1M^vV1a$>AP?c%<67xsm3wN6X`!uao3qd{aF!vgkPy z9lqsZ!V340zUMkg&fQ)fmgCk7aGTw6-qwG1PEzY+(nOoj1?k}a2rbmg<5Ue@^!=b) zVXqYj0FQ1bC@4mAIpLcfJP~rJ4>WGTn5?*7x z9B;JL7|2jp>d`!js7Q_qMN8$cOLo>bg7BhakWd%t7V8Iz1Eq1cgL+3zxwQ~j{GrN3 zSqS`QLOD!(diTD2D{Dc8^dYQZcG`^HEkT(_ z_)-oU#XgraZyJj=a(3e3({P@vzb@z9<)*4e)ep~4DrbQKW3MXbq}%;Bdke?XBqlfB zfuVQ31>hccTP?IG4eKuk;Pm7+>(*1+PIHE zKGX0J(+2GyF|RdVc3(??(H`T7HSb-oqJ3v*)SBHzm``6gYI{Wy#8FUHW@Yd79z9(w*#T z&R7jJA&D|57S)wRnQd36Hjce#h+Li0R`tI3K6I6q^rXakS>zDeTAqceGd^DfHE{n( zM-^LiMXSlilqyRCq*4*ql|@?Zlk*8pUu$Zb@|dwrTQT)H2gAR}Dl83r1un#hK!M16 zYv4noCjAKA0$|-K|K~hmc`cTEec)5XT(VTlMtXy1Q@NiEUMDD4hTjg{mmCc4k1ACQ zcKMQ}HK`Fap({0)fLP17(e|yo9$vkyYIeeb_>nkO>#V)$ipj|iJuT`gwE3)QJ2f{( z+1TithpKC6g69Ga_m157#zKj8flWz1KpEX65!X1|KADr8C0O`v!_cg_-0e<(r*VNi z$G+{jR6Uog%+T>~Mvs=Gs~tCdIbgFw)iHzDbDSH@6NmqsZF%`XYUr2<>gTROjl(t#SgSq_q#Om~c=>o1k&W`j-Z z17^@Mk$J-$a8|AxV@`@9v|i{qqgGo3o$fIQ(aC}L%e>H*6c6W+{W-6sxNt=%?UA;q z6+l-07&S84RgqQuZRtc{oCD5<Y_$PP93W(`d>N#g?ATNNEbymUJRR!Q&rRD$7|o`^;67Jodl$n$y*t~3 zp^9V$T+W(kuHK@;iotm@J1J?^j(2_Q;sD0Q7hiHPZG)AA4SNf17BoMqEvQV6y23uKL!c0+h+A*l$a>{3BH(iu;RjAItR(Zv6r3>+{@(?@mM?$AF~ z+ihvLhEa2)km$s&8XK@peV(^;_*~WY7%_ZYIgXguF6%7BRNM_H3JG$Uo4#izPt

{qHx~^agYAy-)Q)gEV|zrkX)CG7zDm)q#>G;0 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