<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">
<title>Web hosting, domain names, VPS - 000webhost.com</title>
<script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
        ga('create', 'UA-10701068-1', 'auto');
        ga('require', 'linkid');
        ga('send', 'pageview');
    </script>
<link href="https://fonts.googleapis.com/css?family=Open+Sans|Press+Start+2P&display=swap" rel="stylesheet">
<style>
		body{margin:0}html{font-family:OpenSans,sans-serif}canvas{display:block;margin:auto;image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;font-family:'Press Start 2P',cursive}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.mr-20{margin-right:20px}.mr-5{margin-right:5px!important}.m-10{margin:10px}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-row-col-1500{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.container-small{-ms-flex-preferred-size:50%;flex-basis:50%}.main-container{height:100vh}.button{color:#cf0b16;border:2px solid #cf0b16;border-radius:6px;padding:22px 20px;text-decoration:none;font-weight:700;letter-spacing:1px;font-size:18px;margin:0 10px}.button:hover{-webkit-transition:.4s;-o-transition:.4s;transition:.4s;background:#cf0b16;color:#fff}.button-full{background:#cf0b16;color:#fff}.button-full:hover{-webkit-transition:.4s;-o-transition:.4s;transition:.4s;background:#fff;color:#cf0b16}.title{font-size:72px;text-align:center;margin-top:155px}.text{font-size:16px;line-height:1.75;text-align:center;width:80%;margin:20px 0 40px 0}.badge-text{color:#777;font-size:12px}.badge-text b{color:#777}.game-container{font-family:'Press Start 2P',cursive;color:#fff;background-color:#000;width:100%;height:100%;overflow:hidden;-ms-flex-preferred-size:50%;flex-basis:50%}.game-title{font-size:24px;letter-spacing:1.7px;width:80%;text-align:center}.game-img-holder{margin-bottom:50px}.game-description{font-size:16px;line-height:1.75;text-align:center;width:80%}.game-controls{width:80%}.move-control{background:#fff;border-radius:5px;padding:25px 38px;color:#000;margin-right:30px}.left-triangle{width:0;height:0;border-style:solid;border-width:11px 21px 11px 0;border-color:transparent #000 transparent transparent}.right-triangle{width:0;height:0;border-style:solid;border-width:11px 0 11px 21px;border-color:transparent transparent transparent #000}@media (max-width:1500px){.flex-row-col-1500{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}@media (max-width:1200px){.game-container{display:none}.button{font-size:16px}.container-small{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:768px){.button{font-size:14px;padding:18px 8px}.title{margin-top:100px}}@media (max-width:480px){.main-container{padding:0 50px}.title{font-size:60px;margin-top:70px}.button{font-size:12px;padding:14px 8px;margin:0 5px}svg{margin-top:50px}}
	</style>
</head>
<body>
<div class="flex justify-center main-container">
<div class="flex justify-center flex-col align-center container-small">
<svg height="100px" viewBox="0 0 330 100" width="330" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="m135.287 41.795c0-4.114.726-7.281 2.179-9.504 1.452-2.222 3.465-3.333 6.039-3.333s4.587 1.111 6.039 3.333c1.452 2.223 2.178 5.39 2.178 9.504 0 4.113-.726 7.281-2.178 9.503-1.452 2.223-3.465 3.334-6.04 3.334-2.573 0-4.586-1.111-6.038-3.334-1.453-2.222-2.179-5.39-2.179-9.503zm12.964 0a30.35 30.35 0 0 0 -.23-3.83c-.154-1.206-.413-2.258-.78-3.156-.365-.898-.855-1.613-1.47-2.145-.613-.532-1.369-.798-2.266-.798-.898 0-1.653.266-2.267.798s-1.104 1.247-1.47 2.145-.626 1.95-.78 3.156a30.35 30.35 0 0 0 -.23 3.83c0 1.347.077 2.624.23 3.83.154 1.205.414 2.257.78 3.156.366.898.856 1.613 1.47 2.145s1.37.798 2.267.798 1.653-.266 2.267-.798 1.104-1.247 1.47-2.145c.366-.899.625-1.95.779-3.156a30.35 30.35 0 0 0 .23-3.83zm6.634 0c0-4.114.726-7.281 2.178-9.504 1.452-2.222 3.465-3.333 6.04-3.333 2.573 0 4.586 1.111 6.038 3.333 1.452 2.223 2.179 5.39 2.179 9.504 0 4.113-.727 7.281-2.179 9.503-1.452 2.223-3.465 3.334-6.039 3.334s-4.587-1.111-6.039-3.334c-1.452-2.222-2.178-5.39-2.178-9.503zm12.963 0a30.35 30.35 0 0 0 -.23-3.83c-.153-1.206-.413-2.258-.78-3.156-.365-.898-.855-1.613-1.469-2.145s-1.37-.798-2.267-.798-1.653.266-2.267.798-1.104 1.247-1.47 2.145-.625 1.95-.779 3.156a30.35 30.35 0 0 0 -.23 3.83c0 1.347.077 2.624.23 3.83.154 1.205.413 2.257.78 3.156.365.898.855 1.613 1.47 2.145.613.532 1.369.798 2.266.798s1.653-.266 2.267-.798 1.104-1.247 1.47-2.145c.366-.899.626-1.95.78-3.156a30.35 30.35 0 0 0 .23-3.83zm6.634 0c0-4.114.726-7.281 2.178-9.504 1.453-2.222 3.466-3.333 6.04-3.333 2.573 0 4.586 1.111 6.039 3.333 1.452 2.223 2.178 5.39 2.178 9.504 0 4.113-.726 7.281-2.178 9.503-1.453 2.223-3.466 3.334-6.04 3.334-2.573 0-4.586-1.111-6.039-3.334-1.452-2.222-2.178-5.39-2.178-9.503zm12.964 0a30.35 30.35 0 0 0 -.23-3.83c-.154-1.206-.414-2.258-.78-3.156s-.856-1.613-1.47-2.145-1.37-.798-2.267-.798-1.653.266-2.266.798c-.614.532-1.104 1.247-1.47 2.145s-.626 1.95-.78 3.156a30.35 30.35 0 0 0 -.23 3.83c0 1.347.077 2.624.23 3.83.154 1.205.414 2.257.78 3.156.366.898.856 1.613 1.47 2.145.613.532 1.37.798 2.266.798.898 0 1.653-.266 2.267-.798s1.104-1.247 1.47-2.145c.366-.899.626-1.95.78-3.156a30.35 30.35 0 0 0 .23-3.83zm22.75 12.305a146.997 146.997 0 0 1 -2.108-5.834 96.59 96.59 0 0 1 -2.037-6.826 103.314 103.314 0 0 1 -2.019 6.826 131.841 131.841 0 0 1 -2.09 5.834h-2.868c-1.087-2.435-2.15-5.213-3.188-8.334a146.415 146.415 0 0 1 -2.94-10.106h3.542a94.38 94.38 0 0 0 .85 3.617c.33 1.3.679 2.6 1.045 3.9.366 1.301.75 2.554 1.151 3.76a62.79 62.79 0 0 0 1.133 3.156 87.713 87.713 0 0 0 1.187-3.529c.39-1.24.762-2.494 1.116-3.758.354-1.265.69-2.506 1.01-3.724.318-1.217.595-2.358.832-3.422h2.727c.212 1.064.472 2.205.78 3.422.306 1.218.637 2.459.99 3.724a125.97 125.97 0 0 0 1.117 3.758c.39 1.241.785 2.418 1.186 3.529.354-.899.726-1.95 1.116-3.156s.773-2.459 1.151-3.76c.378-1.3.732-2.6 1.063-3.9.33-1.3.614-2.506.85-3.617h3.4c-.92 3.617-1.9 6.986-2.94 10.106-1.039 3.121-2.101 5.899-3.188 8.334h-2.869zm11.06-9.185c0-1.63.237-3.055.709-4.273.472-1.217 1.098-2.228 1.877-3.031a7.622 7.622 0 0 1 2.692-1.809 8.4 8.4 0 0 1 3.117-.603c2.48 0 4.38.774 5.703 2.323 1.322 1.548 1.983 3.906 1.983 7.074v.55c0 .225-.012.431-.035.62h-12.61c.142 1.915.697 3.37 1.665 4.362.968.993 2.48 1.49 4.534 1.49 1.157 0 2.13-.101 2.922-.302.79-.2 1.387-.396 1.789-.585l.46 2.766c-.401.213-1.104.437-2.107.674-1.004.236-2.143.354-3.418.354-1.606 0-2.993-.242-4.162-.727-1.17-.484-2.131-1.152-2.887-2.003s-1.316-1.862-1.682-3.032c-.367-1.17-.55-2.453-.55-3.848zm12.645-1.808c.024-1.49-.348-2.713-1.115-3.67-.768-.958-1.824-1.436-3.17-1.436-.756 0-1.423.147-2.002.443a4.72 4.72 0 0 0 -1.47 1.152 5.306 5.306 0 0 0 -.938 1.632 8.056 8.056 0 0 0 -.443 1.879zm11.097-6.631c.401-.26 1.01-.532 1.824-.816.815-.283 1.753-.425 2.816-.425 1.322 0 2.497.236 3.524.709a7.325 7.325 0 0 1 2.604 1.986c.708.85 1.245 1.867 1.611 3.05.366 1.181.55 2.482.55 3.9 0 1.49-.22 2.83-.656 4.025-.437 1.194-1.057 2.204-1.86 3.032a8.196 8.196 0 0 1 -2.904 1.915c-1.133.449-2.409.673-3.825.673-1.535 0-2.893-.106-4.074-.319-1.18-.213-2.148-.425-2.904-.638v-26.418l3.294-.568zm0 14.751c.33.095.797.184 1.399.266.602.083 1.352.124 2.25.124 1.77 0 3.187-.585 4.25-1.755 1.062-1.17 1.593-2.83 1.593-4.982 0-.946-.094-1.832-.283-2.66-.189-.827-.496-1.542-.92-2.145a4.456 4.456 0 0 0 -1.648-1.418c-.673-.343-1.482-.515-2.426-.515a6.52 6.52 0 0 0 -2.48.461c-.755.308-1.334.627-1.735.958zm17.189 2.873v-26.95l3.294-.568v9.433c.614-.237 1.269-.42 1.966-.55.696-.13 1.387-.195 2.072-.195 1.464 0 2.68.207 3.648.62.968.414 1.741.994 2.32 1.738.578.745.986 1.637 1.222 2.678.236 1.04.354 2.186.354 3.44v10.354h-3.294v-9.646c0-1.134-.077-2.104-.23-2.907-.154-.804-.408-1.454-.762-1.95a3.014 3.014 0 0 0 -1.417-1.082c-.59-.225-1.322-.337-2.196-.337-.354 0-.72.024-1.098.07-.377.048-.737.101-1.08.16-.342.06-.65.125-.92.195a5.47 5.47 0 0 0 -.585.178v15.319zm36.103-9.22c0 1.466-.213 2.79-.638 3.972s-1.021 2.198-1.789 3.05a7.868 7.868 0 0 1 -2.745 1.967c-1.062.461-2.22.692-3.47.692-1.252 0-2.41-.23-3.472-.692a7.868 7.868 0 0 1 -2.745-1.968c-.767-.85-1.364-1.867-1.789-3.05-.425-1.181-.637-2.505-.637-3.971 0-1.442.212-2.76.637-3.954s1.022-2.216 1.79-3.067a7.868 7.868 0 0 1 2.744-1.968c1.063-.461 2.22-.692 3.471-.692 1.252 0 2.409.23 3.471.692a7.868 7.868 0 0 1 2.745 1.968c.768.85 1.364 1.873 1.79 3.067.424 1.194.637 2.512.637 3.954zm-3.436 0c0-2.08-.466-3.73-1.4-4.947-.932-1.217-2.201-1.826-3.807-1.826-1.605 0-2.875.609-3.807 1.826-.933 1.218-1.4 2.867-1.4 4.947s.467 3.73 1.4 4.947c.932 1.217 2.202 1.826 3.807 1.826 1.606 0 2.875-.609 3.808-1.826.933-1.218 1.399-2.867 1.399-4.947zm11.982 6.844c1.346 0 2.344-.177 2.993-.532.65-.355.974-.922.974-1.702 0-.804-.319-1.442-.956-1.915-.638-.473-1.689-1.005-3.153-1.596a48.009 48.009 0 0 1 -2.036-.869 7.141 7.141 0 0 1 -1.683-1.046 4.565 4.565 0 0 1 -1.133-1.454c-.284-.567-.425-1.264-.425-2.092 0-1.63.602-2.925 1.806-3.883 1.204-.957 2.846-1.436 4.924-1.436.519 0 1.039.03 1.558.089.52.059 1.004.13 1.452.213.449.082.844.171 1.187.266.342.094.608.177.797.248l-.602 2.837c-.355-.19-.91-.384-1.665-.585-.756-.201-1.665-.302-2.727-.302-.921 0-1.724.183-2.409.55-.685.366-1.027.94-1.027 1.72 0 .402.077.756.23 1.063.154.308.39.586.708.834.32.248.715.478 1.187.691s1.039.438 1.7.674a34.51 34.51 0 0 1 2.338.975c.685.32 1.27.692 1.753 1.117.484.426.856.94 1.116 1.543s.39 1.341.39 2.216c0 1.702-.632 2.99-1.895 3.865-1.264.875-3.064 1.312-5.402 1.312-1.63 0-2.904-.136-3.825-.408-.921-.271-1.547-.478-1.878-.62l.603-2.837c.377.142.98.355 1.806.638.826.284 1.924.426 3.294.426zm14.214-16.064h6.977v2.766h-6.977v8.51c0 .923.07 1.685.212 2.288s.354 1.076.638 1.418c.283.343.637.585 1.062.727s.921.213 1.488.213c.992 0 1.789-.112 2.39-.337a66.013 66.013 0 0 0 1.258-.479l.638 2.73c-.331.166-.91.373-1.736.621-.826.249-1.77.373-2.834.373-1.251 0-2.284-.16-3.099-.479-.814-.32-1.47-.798-1.966-1.436-.495-.638-.844-1.424-1.044-2.358-.201-.934-.302-2.016-.302-3.245v-16.454l3.295-.567v5.71zm-181.653 29.009c1.414 0 2.5.254 3.256.763.758.51 1.136 1.343 1.136 2.5 0 1.168-.383 2.01-1.15 2.529-.765.518-1.86.777-3.283.777h-.67v3.25h-2.134v-9.568c.465-.093.957-.159 1.477-.196s.976-.056 1.368-.056zm.137 1.863a7.4 7.4 0 0 0 -.458.014c-.15.01-.28.019-.39.028v2.801h.67c.74 0 1.295-.103 1.67-.308.373-.205.56-.588.56-1.149 0-.27-.048-.494-.143-.672a1.106 1.106 0 0 0 -.41-.427 1.82 1.82 0 0 0 -.65-.224 5.245 5.245 0 0 0 -.849-.063zm8.863 3.095c0 .476.057.906.171 1.289s.278.712.493.987c.214.276.476.488.786.638.31.149.666.224 1.068.224.392 0 .745-.075 1.06-.224.315-.15.579-.362.793-.638a2.97 2.97 0 0 0 .493-.987 4.51 4.51 0 0 0 .17-1.289c0-.476-.056-.908-.17-1.295a2.962 2.962 0 0 0 -.493-.995 2.173 2.173 0 0 0 -.793-.637 2.442 2.442 0 0 0 -1.06-.224c-.402 0-.757.077-1.068.23-.31.155-.572.37-.786.645a2.962 2.962 0 0 0 -.493.995 4.529 4.529 0 0 0 -.17 1.281zm7.238 0c0 .831-.121 1.562-.363 2.192s-.572 1.158-.992 1.583a4.06 4.06 0 0 1 -1.498.96 5.329 5.329 0 0 1 -1.867.322 5.193 5.193 0 0 1 -1.834-.323 4.202 4.202 0 0 1 -1.505-.959 4.497 4.497 0 0 1 -1.012-1.583c-.246-.63-.37-1.36-.37-2.192 0-.83.128-1.561.384-2.192.255-.63.6-1.16 1.033-1.59.433-.429.934-.751 1.505-.966a5.06 5.06 0 0 1 1.799-.322c.647 0 1.258.107 1.833.322a4.156 4.156 0 0 1 1.505.967c.428.43.766.959 1.012 1.59.246.63.37 1.36.37 2.191zm9.246-3.81c.11.383.23.815.362 1.296s.274.978.424 1.492c.15.513.304 1.027.459 1.54.155.514.305.99.451 1.43.119-.477.24-.995.363-1.556.123-.56.24-1.139.349-1.736.109-.598.216-1.193.321-1.786s.203-1.165.294-1.716h2.217c-.32 1.625-.687 3.273-1.102 4.944a73.156 73.156 0 0 1 -1.347 4.762h-1.957c-.319-.896-.63-1.837-.93-2.822-.301-.985-.597-1.972-.89-2.962-.291.99-.583 1.977-.875 2.962a54.929 54.929 0 0 1 -.917 2.822h-1.956a73.156 73.156 0 0 1 -1.348-4.762c-.415-1.671-.782-3.32-1.1-4.944h2.311c.091.551.192 1.123.301 1.716.11.593.224 1.188.342 1.786.119.597.24 1.176.363 1.736s.248 1.079.376 1.555c.164-.457.324-.943.479-1.457.155-.513.305-1.027.451-1.54.146-.514.28-1.009.404-1.485.123-.476.235-.901.335-1.274h1.82zm7.85 8.67v-9.706h6.403v1.835h-4.268v1.905h3.79v1.793h-3.79v2.339h4.583v1.834zm12.311-9.818c1.423 0 2.513.26 3.27.777.757.519 1.135 1.324 1.135 2.416 0 .682-.152 1.235-.458 1.66-.305.425-.746.759-1.32 1.002.191.242.392.52.602.833s.417.64.622.98c.205.341.404.696.595 1.065.192.369.37.73.534 1.085h-2.394l-.527-.966a26.248 26.248 0 0 0 -1.101-1.828 9.47 9.47 0 0 0 -.548-.75h-1.052v3.544h-2.134v-9.566c.465-.093.946-.159 1.443-.196s.942-.056 1.334-.056zm.123 1.863a5.57 5.57 0 0 0 -.417.014l-.349.028v2.633h.602c.803 0 1.377-.103 1.724-.308.346-.206.52-.556.52-1.05 0-.477-.176-.815-.527-1.016-.351-.2-.869-.301-1.553-.301zm7.468 7.955v-9.706h6.403v1.835h-4.269v1.905h3.79v1.793h-3.79v2.339h4.583v1.834zm11.667-1.777c.1.009.217.016.35.02.132.005.289.008.471.008 1.067 0 1.859-.276 2.374-.827.515-.55.773-1.312.773-2.283 0-1.018-.246-1.788-.739-2.31-.492-.524-1.272-.785-2.34-.785-.145 0-.296.002-.45.007a4.17 4.17 0 0 0 -.439.035zm6.17-3.082c0 .84-.127 1.574-.382 2.2a4.071 4.071 0 0 1 -1.088 1.552c-.47.41-1.042.719-1.717.924-.675.206-1.432.309-2.271.309-.383 0-.83-.017-1.34-.05-.512-.032-1.013-.1-1.506-.203v-9.454a12.294 12.294 0 0 1 1.54-.189 22.96 22.96 0 0 1 1.374-.049c.812 0 1.549.093 2.21.28s1.229.481 1.703.883c.474.401.84.915 1.095 1.54.255.626.383 1.378.383 2.255zm10.708 4.987c-.52 0-1.037-.017-1.552-.05a10.735 10.735 0 0 1 -1.608-.23v-9.415a13.35 13.35 0 0 1 1.437-.189c.52-.042 1.003-.063 1.45-.063.602 0 1.156.044 1.662.133s.942.24 1.307.455c.364.215.65.498.855.848s.307.782.307 1.295c0 .775-.364 1.387-1.094 1.835.602.234 1.012.551 1.231.953.22.401.329.854.329 1.358 0 1.018-.363 1.784-1.088 2.297-.725.514-1.804.77-3.236.77zm-1.08-4.356v2.507c.155.018.323.032.506.042.182.009.383.014.602.014.638 0 1.153-.094 1.546-.28.392-.187.588-.533.588-1.037 0-.448-.164-.768-.493-.96-.328-.19-.798-.286-1.409-.286zm0-1.667h1.04c.656 0 1.126-.087 1.408-.26.283-.172.425-.45.425-.833 0-.392-.146-.667-.438-.826s-.72-.238-1.286-.238c-.183 0-.379.002-.589.007a6.24 6.24 0 0 0 -.56.035zm11.366.182a53.75 53.75 0 0 0 1.095-1.989c.346-.663.666-1.33.957-2.003h2.354a62.792 62.792 0 0 1 -1.615 3.04 78.951 78.951 0 0 1 -1.765 2.955v3.711h-2.134v-3.683c-.62-.99-1.21-1.98-1.772-2.97a63.726 63.726 0 0 1 -1.62-3.053h2.475c.292.672.607 1.34.944 2.003a42.63 42.63 0 0 0 1.081 1.989zm17.056-3.992h2.134v9.706h-2.134v-4.118h-3.584v4.117h-2.136v-9.706h2.135v3.712h3.584v-3.713zm7.358 4.846c0 .476.057.906.171 1.289s.278.712.493.987c.214.276.476.488.786.638.31.149.666.224 1.067.224.393 0 .746-.075 1.06-.224.315-.15.58-.362.794-.638a2.97 2.97 0 0 0 .493-.987 4.51 4.51 0 0 0 .17-1.289c0-.476-.056-.908-.17-1.295a2.962 2.962 0 0 0 -.493-.995 2.173 2.173 0 0 0 -.793-.637 2.442 2.442 0 0 0 -1.06-.224c-.402 0-.758.077-1.068.23-.31.155-.572.37-.786.645a2.962 2.962 0 0 0 -.493.995 4.529 4.529 0 0 0 -.17 1.281zm7.237 0c0 .831-.12 1.562-.362 2.192s-.572 1.158-.992 1.583a4.06 4.06 0 0 1 -1.498.96 5.329 5.329 0 0 1 -1.868.322 5.193 5.193 0 0 1 -1.833-.323 4.202 4.202 0 0 1 -1.505-.959 4.497 4.497 0 0 1 -1.012-1.583c-.246-.63-.37-1.36-.37-2.192 0-.83.128-1.561.384-2.192.255-.63.6-1.16 1.032-1.59.434-.429.935-.751 1.505-.966a5.06 5.06 0 0 1 1.8-.322c.647 0 1.258.107 1.833.322a4.156 4.156 0 0 1 1.505.967c.428.43.766.959 1.012 1.59.246.63.37 1.36.37 2.191zm5.607 3.194c.301 0 .55-.026.746-.077.196-.052.353-.122.472-.21a.7.7 0 0 0 .246-.316c.046-.121.069-.256.069-.406 0-.317-.146-.581-.438-.791s-.794-.437-1.505-.68c-.31-.111-.62-.24-.93-.385a3.42 3.42 0 0 1 -.835-.546 2.606 2.606 0 0 1 -.602-.798c-.155-.313-.232-.694-.232-1.142s.082-.852.246-1.211c.164-.36.397-.666.698-.918a3.168 3.168 0 0 1 1.094-.58 4.807 4.807 0 0 1 1.45-.204c.639 0 1.19.07 1.656.21.465.14.848.294 1.149.462l-.616 1.723a5.755 5.755 0 0 0 -.882-.371c-.324-.108-.714-.161-1.17-.161-.51 0-.878.072-1.101.217-.224.145-.335.366-.335.665 0 .178.04.327.123.448.082.122.198.232.349.33.15.098.323.186.52.266.196.079.412.16.65.245a14.1 14.1 0 0 1 1.285.553c.365.182.668.395.91.637.242.243.422.528.54.855.12.327.178.723.178 1.19 0 .906-.31 1.609-.93 2.108-.62.5-1.555.75-2.805.75-.42 0-.798-.026-1.135-.077a7.18 7.18 0 0 1 -.896-.19 5.06 5.06 0 0 1 -1.143-.476l.602-1.737c.283.16.632.302 1.047.428s.923.189 1.525.189zm13.378-8.04v1.863h-2.86v7.843h-2.133v-7.843h-2.86v-1.865h7.853zm2.611 0h2.134v9.706h-2.134zm11.928 9.706a49.057 49.057 0 0 0 -1.984-3.291 33.388 33.388 0 0 0 -2.271-3.067v6.358h-2.107v-9.706h1.737c.301.308.634.686 1 1.135.364.448.736.926 1.114 1.435.379.51.755 1.037 1.129 1.583s.725 1.071 1.053 1.576v-5.731h2.12v9.706h-1.791zm9.848-8.025c-.994 0-1.713.282-2.155.847s-.664 1.338-.664 2.318c0 .476.055.908.165 1.296.11.387.273.721.492 1.001.22.28.493.498.821.652s.711.23 1.15.23c.236 0 .44-.004.608-.013.169-.01.317-.028.445-.056v-3.378h2.134v4.804c-.255.103-.666.213-1.231.33-.566.116-1.264.175-2.094.175-.711 0-1.356-.113-1.935-.337a4.039 4.039 0 0 1 -1.485-.98 4.395 4.395 0 0 1 -.95-1.583c-.224-.625-.336-1.34-.336-2.143 0-.812.123-1.531.37-2.157a4.658 4.658 0 0 1 1.012-1.59 4.258 4.258 0 0 1 1.512-.987 5.092 5.092 0 0 1 1.853-.336 7.326 7.326 0 0 1 2.142.301 4.255 4.255 0 0 1 1.005.441l-.616 1.751a5.49 5.49 0 0 0 -1.005-.413 4.184 4.184 0 0 0 -1.238-.175zm6.222 8.025v-9.706h6.403v1.835h-4.268v1.905h3.79v1.793h-3.79v2.339h4.583v1.834zm12.311-9.818c1.423 0 2.513.26 3.27.777.757.519 1.135 1.324 1.135 2.416 0 .682-.152 1.235-.458 1.66-.305.425-.746.759-1.32 1.002.191.242.392.52.602.833s.417.64.622.98c.206.341.404.696.595 1.065.192.369.37.73.534 1.085h-2.394l-.527-.966a26.246 26.246 0 0 0 -1.101-1.828 9.47 9.47 0 0 0 -.547-.75h-1.054v3.544h-2.134v-9.566c.465-.093.946-.159 1.443-.196s.942-.056 1.334-.056zm.123 1.863a5.57 5.57 0 0 0 -.417.014l-.349.028v2.633h.602c.803 0 1.377-.103 1.724-.308.346-.206.52-.556.52-1.05 0-.477-.176-.815-.527-1.016-.351-.2-.869-.301-1.553-.301z" fill="#1a1a1a" /><path d="m39.78 38.642c-5.065 46.42 36.692 53.58 48.552 40.247-20.878 51.728-69.924-6.79-48.552-40.247zm-8.03-5.802c-18.037 2.592-44.845 60-13.095 53.456-19.52-7.037.123-47.654 13.095-53.456zm0-7.284c-6.3-2.963-29.28 5.802-31.009 23.456 4.324-9.382 15.566-22.098 31.01-23.456zm7.907-6.544c-9.636-7.53-21.126 1.111-24.709 3.087 9.637-11.235 24.091-9.383 24.709-3.087zm9.142-2.345c6.671-6.05-3.336-17.531-12.972-8.272 3.46-1.481 15.072-3.457 12.972 8.272zm10.995 1.728c12.725-12.099 2.1-16.79-1.235-17.037 17.79-4.568 9.883 14.815 1.235 17.037zm2.1 7.407c13.22 5.062 52.629-16.79 21.25-21.11 7.165 1.728 8.77 16.172-21.25 21.11zm-9.264 10.988c8.771 25.309 87.096 22.963 53.37-11.234 7.288 11.728-10.872 32.592-53.37 11.234z" fill="#d10303" /></g></svg>
<h1 class="title">Error 404</h1>
<p class="text">Looks like the page you were looking for went missing in action or simply doesn't exist. How about a round of Space Invaders or starting your own website?</p>
<div class="flex flex-col">
<div class="flex flex-row justify-space-between">
<a class="button mr-20" href="https://www.000webhost.com">Back To Homepage</a>
<a class="button button-full" href="https://www.hostinger.com/special/000webhost?utm_source=000webhost&utm_medium=frontend&utm_campaign=000_invader">Create Your Website</a>
</div>
<div class="flex flex-row justify-end">
<p class="badge-text">And get an <b>SSL for FREE</b></p>
</div>
</div>
</div>
<div class="flex fb-50 justify-center flex-col game-container">
<div id="pre-game-overlay" class="flex flex-col justify-center align-center">
<div class="game-img-holder">
<img src="https://cdn.000webhost.com/000webhost/space-invaders-logo.png" alt="Space invaders logo">
</div>
<h2 class="game-title">Press "Enter" to play</h2>
<p class="game-description">Complete Space Invaders floor to get an extra discount for your hosting and special prizes.</p>
<div class="game-controls flex flex-row-col-1500 align-center justify-space-between">
<div class="flex flex-row align-center m-10">
<div class="move-control mr-5">
<div class="left-triangle"></div>
</div>
<div class="move-control">
<div class="right-triangle"></div>
</div>
<span>MOVE</span>
</div>
<div class="flex flex-row align-center m-10">
<div class="move-control flex align-center">
SPACE
</div>
<span>SHOOT</span>
</div>
</div>
</div>
<canvas style="display:none;" id="game-canvas" width="640" height="640"></canvas>
</div>
</div>
<script>
	if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
		var game = document.getElementById('game-canvas');
		game.style.display = 'none';
	}
	!function(){var a=!1,o=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){},Class.extend=function(t){var s=this.prototype;a=!0;var e=new this;for(var i in a=!1,t)e[i]="function"==typeof t[i]&&"function"==typeof s[i]&&o.test(t[i])?function(i,n){return function(){var t=this._super;this._super=s[i];var e=n.apply(this,arguments);return this._super=t,e}}(i,t[i]):t[i];function n(){!a&&this.init&&this.init.apply(this,arguments)}return((n.prototype=e).constructor=n).extend=arguments.callee,n}}(),function(){var t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;window.requestAnimationFrame=t}(),window.performance.now||(window.performance.now=Date.now?function(){return Date.now()}:function(){return(new Date).getTime()});var IS_CHROME=/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor),CANVAS_WIDTH=window.innerWidth/2,CANVAS_HEIGHT=window.innerHeight,SPRITE_SHEET_SRC="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAEACAYAAAADRnAGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA2LTExVDE2OjQ0OjI5KzAzOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNi0xMVQxNjo0NTo1NiswMzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNi0xMVQxNjo0NTo1NiswMzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjYzliNTYzNy1mM2Q3LTRiNGItOTY3OC05ZGU3ZmNjZGNjNzUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Y2M5YjU2MzctZjNkNy00YjRiLTk2NzgtOWRlN2ZjY2RjYzc1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Y2M5YjU2MzctZjNkNy00YjRiLTk2NzgtOWRlN2ZjY2RjYzc1Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjYzliNTYzNy1mM2Q3LTRiNGItOTY3OC05ZGU3ZmNjZGNjNzUiIHN0RXZ0OndoZW49IjIwMTktMDYtMTFUMTY6NDQ6MjkrMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Z7uSdAAADnElEQVR4nO2dUW7jIBgGockBqj1I73+NvciqB+jK++KuqtSVbfhhTJh5jGr4MgJqbCA5BbAsy1Jzfc45R+Q4w2fkl94VXw0F0AFophewOfjUDmqtiRg0HQRXFEAHoMlX7+9HOTsuOAasKIAOQHMvuWivv+2NK7XXRzJ9C1AAHYCmaAyo7aNXuveYvgUogA5AUzSvbv1/vsdDUucCKwqgA9Ac6mtn+2zrv4/AMWBFAXQAmkPPBImXl19pkdExYEUBdACaF7p/R1DzHZpMhmpxMtQRBdABaKYXEDIbbI2zwYYogA5A4yqx6jSDowA6AE3RKrGzT3V7lOcToUIUQAegQVaItC7vDNO3AAXQAWiK5gL0fYBzgUAUQAeg8e1wYaanQQF0AJomq8TO4ioxEAXQAWimF+AKkdYVXR0F0AFophfgCpHogkdDAXQAGleIVKcZHAXQAWhcIXK2omdDAXQAGleIUBVfBQXQAWhCHopGvxnyoWhHFEAHoNm8D5hhldgn07cABdABaIpWifU+S8xVYg1RAB2AxjNEIgL4KzMDowA6AM30Anw7XJ1mcBRAB6DxV2aapBkIBdABaPyVmV4VXRUF0AFo/JUZOgCNAugANE12jET/n3fHSEMUQAegCTlH6GrXH8ExYEUBdAAazxCJLng0FEAHoJleQJOHorXl+VC0IwqgA9BML2Dz7fDZ2VrvPUMlmTfKSCnZAhQwvYBDN0J7Nyat9xK3XEo7fQtQAB2AZoh9gy0nR9O3AAXQAWg8Q4Sq+CoogA5A446R6jSDowA6AE3R2+HWW1171OcYsKIAOgDNofsA+oyBFnkcA1YUQAegmV6AN0LRBY+GAugANNMLGPJU2WVZfj1+lnP+c7LOlJItQAHTC/CXpqILHg0F0AFoQvYNjniytGPAigLoADSeJdYkzUAogA5As7lKjNzGtkXLPNO3AAXQAWgusXX2EbfOdkQBdACakPcC3wq9wDlBezgXWFEAHYDm/vt2Cy90r8y/7+/fPru9vh6+PpLcs7IvPA6C3ZfhvX18pJTsAgpQAB2Apmg2WMDe7A4bFKdvAQqgA9AogA5AowA6AM1P9wH0G+Po+n+8r5i+BSiADkBzT3x/78HWd8wp2QIUoAA6AI0C6AA0CqAD0CiADkCjADoAjQLoADQKSMDihAvw/zvnJ9kxU4xdgA5AowA6AI0C6AA0CqAD0CiADkCjADoAjQLoADQKoAPQTC/gHxDa9P6zkmwaAAAAAElFTkSuQmCC",LEFT_KEY=37,RIGHT_KEY=39,SHOOT_KEY=32,PLAYER_CLIP_RECT={x:0,y:204,w:62,h:32},ALIEN_BOTTOM_ROW=[{x:0,y:0,w:51,h:34},{x:0,y:102,w:51,h:34}],ALIEN_MIDDLE_ROW=[{x:0,y:137,w:50,h:33},{x:0,y:170,w:50,h:34}],ALIEN_TOP_ROW=[{x:0,y:68,w:50,h:32},{x:0,y:34,w:50,h:32}],ALIEN_X_MARGIN=40,ALIEN_SQUAD_WIDTH=11*ALIEN_X_MARGIN;function getRandomArbitrary(t,e){return Math.random()*(e-t)+t}function getRandomInt(t,e){return Math.floor(Math.random()*(e-t+1))+t}function clamp(t,e,i){return Math.min(Math.max(t,e),i)}function valueInRange(t,e,i){return t<=i&&e<=t}function checkRectCollision(t,e){var i=valueInRange(t.x,e.x,e.x+e.w)||valueInRange(e.x,t.x,t.x+t.w),n=valueInRange(t.y,e.y,e.y+e.h)||valueInRange(e.y,t.y,t.y+t.h);return i&&n}var Point2D=Class.extend({init:function(t,e){this.x=void 0===t?0:t,this.y=void 0===e?0:e},set:function(t,e){this.x=t,this.y=e}}),Rect=Class.extend({init:function(t,e,i,n){this.x=void 0===t?0:t,this.y=void 0===e?0:e,this.w=void 0===i?0:i,this.h=void 0===n?0:n},set:function(t,e,i,n){this.x=t,this.y=e,this.w=i,this.h=n}}),canvas=null,ctx=null,spriteSheetImg=null,bulletImg=null,keyStates=null,prevKeyStates=null,lastTime=0,player=null,aliens=[],particleManager=null,updateAlienLogic=!1,alienDirection=-1,alienYDown=0,alienCount=0,wave=1,hasGameStarted=!1,BaseSprite=Class.extend({init:function(t,e,i){this.img=t,this.position=new Point2D(e,i),this.scale=new Point2D(1,1),this.bounds=new Rect(e,i,this.img.width,this.img.height),this.doLogic=!0},update:function(t){},_updateBounds:function(){this.bounds.set(this.position.x,this.position.y,~~(.5+this.img.width*this.scale.x),~~(.5+this.img.height*this.scale.y))},_drawImage:function(){ctx.drawImage(this.img,this.position.x,this.position.y)},draw:function(t){this._updateBounds(),this._drawImage()}}),SheetSprite=BaseSprite.extend({init:function(t,e,i,n){this._super(t,i,n),this.clipRect=e,this.bounds.set(i,n,this.clipRect.w,this.clipRect.h)},update:function(t){},_updateBounds:function(){var t=~~(.5+this.clipRect.w*this.scale.x),e=~~(.5+this.clipRect.h*this.scale.y);this.bounds.set(this.position.x-t/2,this.position.y-e/2,t,e)},_drawImage:function(){ctx.save(),ctx.transform(this.scale.x,0,0,this.scale.y,this.position.x,this.position.y),ctx.drawImage(this.img,this.clipRect.x,this.clipRect.y,this.clipRect.w,this.clipRect.h,~~(.5+.5*-this.clipRect.w),~~(.5+.5*-this.clipRect.h),this.clipRect.w,this.clipRect.h),ctx.restore()},draw:function(t){this._super(t)}}),Player=SheetSprite.extend({init:function(){this._super(spriteSheetImg,PLAYER_CLIP_RECT,CANVAS_WIDTH/2,CANVAS_HEIGHT-70),this.scale.set(.85,.85),this.lives=3,this.xVel=0,this.bullets=[],this.bulletDelayAccumulator=0,this.score=0},reset:function(){this.lives=3,this.score=0,this.position.set(CANVAS_WIDTH/2,CANVAS_HEIGHT-70)},shoot:function(){var t=new Bullet(this.position.x,this.position.y-this.bounds.h/2,1,1e3);this.bullets.push(t)},handleInput:function(){isKeyDown(LEFT_KEY)?this.xVel=-175:isKeyDown(RIGHT_KEY)?this.xVel=175:this.xVel=0,wasKeyPressed(SHOOT_KEY)&&.5<this.bulletDelayAccumulator&&(this.shoot(),this.bulletDelayAccumulator=0)},updateBullets:function(t){for(var e=this.bullets.length-1;0<=e;e--){var i=this.bullets[e];i.alive?i.update(t):(this.bullets.splice(e,1),i=null)}},update:function(t){this.bulletDelayAccumulator+=t,this.position.x+=this.xVel*t,this.position.x=clamp(this.position.x,this.bounds.w/2,CANVAS_WIDTH-this.bounds.w/2),this.updateBullets(t)},draw:function(t){this._super(t);for(var e=0,i=this.bullets.length;e<i;e++){var n=this.bullets[e];n.alive&&n.draw(t)}}}),Bullet=BaseSprite.extend({init:function(t,e,i,n){this._super(bulletImg,t,e),this.direction=i,this.speed=n,this.alive=!0},update:function(t){this.position.y-=this.speed*this.direction*t,this.position.y<0&&(this.alive=!1)},draw:function(t){this._super(t)}}),Enemy=SheetSprite.extend({init:function(t,e,i){this._super(spriteSheetImg,t[0],e,i),this.clipRects=t,this.scale.set(.5,.5),this.alive=!0,this.onFirstState=!0,this.stepDelay=1,this.stepAccumulator=0,this.doShoot,this.bullet=null},toggleFrame:function(){this.onFirstState=!this.onFirstState,this.clipRect=this.onFirstState?this.clipRects[0]:this.clipRects[1]},shoot:function(){this.bullet=new Bullet(this.position.x,this.position.y+this.bounds.w/2,-1,500)},update:function(t){if(this.stepAccumulator+=t,this.stepAccumulator>=this.stepDelay){this.position.x<this.bounds.w/2+20&&alienDirection<0&&(updateAlienLogic=!0),1===alienDirection&&this.position.x>CANVAS_WIDTH-this.bounds.w/2-20&&(updateAlienLogic=!0),this.position.y>CANVAS_WIDTH-50&&reset();Math.floor(Math.random()*(this.stepDelay+1));getRandomArbitrary(0,1e3)<=5*(this.stepDelay+1)&&(this.doShoot=!0),this.position.x+=10*alienDirection,this.toggleFrame(),this.stepAccumulator=0}this.position.y+=alienYDown,null!==this.bullet&&this.bullet.alive?this.bullet.update(t):this.bullet=null},draw:function(t){this._super(t),null!==this.bullet&&this.bullet.alive&&this.bullet.draw(t)}}),ParticleExplosion=Class.extend({init:function(){this.particlePool=[],this.particles=[]},draw:function(){for(var t=this.particles.length-1;0<=t;t--){var e=this.particles[t];e.moves++,e.x+=e.xunits,e.y+=e.yunits+e.gravity*e.moves,e.life--,e.life<=0?this.particlePool.length<100?this.particlePool.push(this.particles.splice(t,1)):this.particles.splice(t,1):(ctx.globalAlpha=e.life/e.maxLife,ctx.fillStyle=e.color,ctx.fillRect(e.x,e.y,e.width,e.height),ctx.globalAlpha=1)}},createExplosion:function(t,e,i,n,s,a,o,l,c){for(var h=0;h<n;h++){var r=Math.floor(360*Math.random()),A=Math.floor(Math.random()*o/2)+o,u=Math.floor(Math.random()*c)+c/2,p=r*Math.PI/180,d=Math.cos(p)*A,m=Math.sin(p)*A;if(0<this.particlePool.length){var w=this.particlePool.pop();w.x=t,w.y=e,w.xunits=d,w.yunits=m,w.life=u,w.color=i,w.width=s,w.height=a,w.gravity=l,w.moves=0,w.alpha=1,w.maxLife=u,this.particles.push(w)}else this.particles.push({x:t,y:e,xunits:d,yunits:m,life:u,color:i,width:s,height:a,gravity:l,moves:0,alpha:1,maxLife:u})}}});function initCanvas(){canvas=document.getElementById("game-canvas"),ctx=canvas.getContext("2d"),setImageSmoothing(!0),(spriteSheetImg=new Image).src=SPRITE_SHEET_SRC,preDrawImages(),window.addEventListener("resize",resize),document.addEventListener("keydown",onKeyDown),document.addEventListener("keyup",onKeyUp)}function preDrawImages(){var t=drawIntoCanvas(2,8,function(t){t.fillStyle="white",t.fillRect(0,0,t.canvas.width,t.canvas.height)});(bulletImg=new Image).src=t.toDataURL()}function setImageSmoothing(t){this.ctx.imageSmoothingEnabled=t,this.ctx.mozImageSmoothingEnabled=t,this.ctx.oImageSmoothingEnabled=t,this.ctx.webkitImageSmoothingEnabled=t,this.ctx.msImageSmoothingEnabled=t}function initGame(){document.getElementById("pre-game-overlay").style.display="none",document.getElementById("game-canvas").style.display="block",dirtyRects=[],aliens=[],player=new Player,particleManager=new ParticleExplosion,setupAlienFormation(),drawBottomHud()}function setupAlienFormation(){for(var t=alienCount=0;t<55;t++){var e,i=t%11,n=Math.floor(t/11);switch(n){case 0:case 1:e=ALIEN_BOTTOM_ROW;break;case 2:case 3:e=ALIEN_MIDDLE_ROW;break;case 4:e=ALIEN_TOP_ROW}aliens.push(new Enemy(e,CANVAS_WIDTH/2-ALIEN_SQUAD_WIDTH/2+ALIEN_X_MARGIN/2+i*ALIEN_X_MARGIN,CANVAS_HEIGHT/3.25-40*n)),alienCount++}}function reset(){aliens=[],setupAlienFormation(),player.reset()}function init(){initCanvas(),keyStates=[],prevKeyStates=[],resize()}function isKeyDown(t){return keyStates[t]}function wasKeyPressed(t){return!prevKeyStates[t]&&keyStates[t]}function updateAliens(t){updateAlienLogic&&(updateAlienLogic=!1,alienDirection=-alienDirection,alienYDown=25);for(var e=aliens.length-1;0<=e;e--){var i=aliens[e];if(!i.alive)return aliens.splice(e,1),i=null,void(--alienCount<1&&(wave++,setupAlienFormation()));i.stepDelay=(20*alienCount-10*wave)/1e3,i.stepDelay<=.05&&(i.stepDelay=.05),i.update(t),i.doShoot&&(i.doShoot=!1,i.shoot())}alienYDown=0}function resolveBulletEnemyCollisions(){for(var t=player.bullets,e=0,i=t.length;e<i;e++)for(var n=t[e],s=0,a=aliens.length;s<a;s++){var o=aliens[s];checkRectCollision(n.bounds,o.bounds)&&(o.alive=n.alive=!1,particleManager.createExplosion(o.position.x,o.position.y,"white",70,5,5,3,.15,50),player.score+=25)}}function resolveBulletPlayerCollisions(){for(var t=0,e=aliens.length;t<e;t++){var i=aliens[t];if(null!==i.bullet&&checkRectCollision(i.bullet.bounds,player.bounds)){if(0!==player.lives){i.bullet.alive=!1,particleManager.createExplosion(player.position.x,player.position.y,"#cf0b16",100,8,8,6,.001,40),player.position.set(CANVAS_WIDTH/2,CANVAS_HEIGHT-70),player.lives--;break}hasGameStarted=!1}}}function resolveCollisions(){resolveBulletEnemyCollisions(),resolveBulletPlayerCollisions()}function updateGame(t){player.handleInput(),prevKeyStates=keyStates.slice(),player.update(t),updateAliens(t),resolveCollisions()}function drawIntoCanvas(t,e,i){var n=document.createElement("canvas");return n.width=t,n.height=e,i(n.getContext("2d")),n}function fillText(t,e,i,n,s){void 0!==n&&(ctx.fillStyle=n),void 0!==s&&(ctx.font=s+'px "Press Start 2P"'),ctx.fillText(t,e,i)}function fillCenteredText(t,e,i,n,s){fillText(t,e-ctx.measureText(t).width/2,i,n,s)}function fillBlinkingText(t,e,i,n,s,a){~~(.5+Date.now()/n)%2&&fillCenteredText(t,e,i,s,a)}function drawBottomHud(){ctx.fillStyle="#d10303",ctx.fillRect(0,CANVAS_HEIGHT-30,CANVAS_WIDTH,2),fillText(player.lives+" x ",10,CANVAS_HEIGHT-7.5,"white",16),ctx.drawImage(spriteSheetImg,player.clipRect.x,player.clipRect.y,player.clipRect.w,player.clipRect.h,70,CANVAS_HEIGHT-23,.5*player.clipRect.w,.5*player.clipRect.h),fillCenteredText("SCORE: "+player.score,CANVAS_WIDTH/2,20)}function drawAliens(t){for(var e=0;e<aliens.length;e++){aliens[e].draw(t)}}function drawGame(t){player.draw(t),drawAliens(t),particleManager.draw(),drawBottomHud()}function drawStartScreen(){fillCenteredText("Space Invaders",CANVAS_WIDTH/2,CANVAS_HEIGHT/2.75,"#FFFFFF",30),fillBlinkingText("Press enter to play!",CANVAS_WIDTH/2,CANVAS_HEIGHT/2,500,"#FFFFFF",28)}function animate(){var t=window.performance.now(),e=t-lastTime;100<e&&(e=100),wasKeyPressed(13)&&!hasGameStarted&&(initGame(),hasGameStarted=!0),hasGameStarted&&updateGame(e/1e3),ctx.fillStyle="black",ctx.fillRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT),hasGameStarted?drawGame(!1):drawStartScreen(),lastTime=t,requestAnimationFrame(animate)}function resize(){window.innerWidth,window.innerHeight;IS_CHROME||navigator.userAgent.search("Firefox")?(canvas.width=1*CANVAS_WIDTH,canvas.height=1*CANVAS_HEIGHT,setImageSmoothing(!0),ctx.transform(1,0,0,1,0,0)):(canvas.style.width=1*CANVAS_WIDTH+"px",canvas.style.height=1*CANVAS_HEIGHT+"px")}function onKeyDown(t){t.preventDefault(),keyStates[t.keyCode]=!0}function onKeyUp(t){t.preventDefault(),keyStates[t.keyCode]=!1}window.onload=function(){init(),animate()};
</script>
</body>
</html>