init
This commit is contained in:
		
							
								
								
									
										62
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <title>Alfieking.dev</title>
 | 
				
			||||||
 | 
					    <link rel="icon" href="/static/content/icon.webp">
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="/static/css/index.css">
 | 
				
			||||||
 | 
					    <meta name="description" content="Alfie King's personal website.">
 | 
				
			||||||
 | 
					    <meta name="keywords" content="Alfie King, Alfie, King, Alfieking, Alfieking.dev">
 | 
				
			||||||
 | 
					    <meta name="author" content="Alfie King">
 | 
				
			||||||
 | 
					    <meta name="robots" content="all">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <meta name="theme-color" content="#63de90">
 | 
				
			||||||
 | 
					    <meta property="og:site_name" content="Alfieking.dev">
 | 
				
			||||||
 | 
					    <meta property="og:url" content="https://alfieking.dev">
 | 
				
			||||||
 | 
					    <meta property="og:title" content="Alfie King">
 | 
				
			||||||
 | 
					    <meta property="og:description" content="server backend survivor">
 | 
				
			||||||
 | 
					    <meta property="og:type" content="website">
 | 
				
			||||||
 | 
					    <meta name="og:image" itemprop="image" content="static/content/icon.webp">
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    <nav>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					            <li><a href="#home"><img src="/static/content/icon.webp"></a></li>
 | 
				
			||||||
 | 
					            <li><a href="#about">About</a></li>
 | 
				
			||||||
 | 
					            <li><a href="#projects">Projects</a></li>
 | 
				
			||||||
 | 
					            <li><a href="#links">Links</a></li>
 | 
				
			||||||
 | 
					            <li id="music">
 | 
				
			||||||
 | 
					                <img id="music-icon" src="" alt="">
 | 
				
			||||||
 | 
					                <div id="music-expand">
 | 
				
			||||||
 | 
					                    <h1 id="music-title"></h1>
 | 
				
			||||||
 | 
					                    <h2 id="music-info"></h2>
 | 
				
			||||||
 | 
					                    <div id="music-progress"></div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					    </nav>
 | 
				
			||||||
 | 
					    <main>
 | 
				
			||||||
 | 
					        <header id="home">
 | 
				
			||||||
 | 
					            <div class="row">
 | 
				
			||||||
 | 
					                <img src="/static/content/icon.webp">
 | 
				
			||||||
 | 
					                <div class="column">
 | 
				
			||||||
 | 
					                    <h1>Alfie King</h1>
 | 
				
			||||||
 | 
					                    <h2 id="typing">server backend survivor</h2>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </header>
 | 
				
			||||||
 | 
					        <section id="about">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					        <section id="projects">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					        <section id="links">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </section>
 | 
				
			||||||
 | 
					    </main>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					<script src="/static/js/typing.js"></script>
 | 
				
			||||||
 | 
					<script src="/static/js/music.js"></script>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								static/content/icon.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/content/icon.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 49 KiB  | 
							
								
								
									
										188
									
								
								static/css/index.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								static/css/index.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,188 @@
 | 
				
			|||||||
 | 
					:root {
 | 
				
			||||||
 | 
					    --primary-color: #5cdd8b;
 | 
				
			||||||
 | 
					    --text-color: #b1b8c0;
 | 
				
			||||||
 | 
					    --background-color: #090c10;
 | 
				
			||||||
 | 
					    --secondary-background-color: #0d1117;
 | 
				
			||||||
 | 
					    --font-size: 0.5cm;
 | 
				
			||||||
 | 
					    --font-family: 'Helvetica', sans-serif;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
					    background-color: var(--background-color);
 | 
				
			||||||
 | 
					    color: var(--text-color);
 | 
				
			||||||
 | 
					    font-size: var(--font-size);
 | 
				
			||||||
 | 
					    font-family: var(--font-family);
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    overflow-y: hidden;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav {
 | 
				
			||||||
 | 
					    height: 100vh;
 | 
				
			||||||
 | 
					    width: 4rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul {
 | 
				
			||||||
 | 
					    list-style-type: none;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    height: 100%;     
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li {
 | 
				
			||||||
 | 
					    writing-mode: vertical-lr;
 | 
				
			||||||
 | 
					    text-orientation: upright;
 | 
				
			||||||
 | 
					    padding: 2rem 0rem 0rem 1.4rem;
 | 
				
			||||||
 | 
					    width: fit-content;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li a {
 | 
				
			||||||
 | 
					    color: var(--text-color);
 | 
				
			||||||
 | 
					    text-decoration: none;
 | 
				
			||||||
 | 
					    font-weight: 100;
 | 
				
			||||||
 | 
					    font-family: 'Impact', sans-serif;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li a img {
 | 
				
			||||||
 | 
					    width: 1.5rem;
 | 
				
			||||||
 | 
					    height: 1.5rem;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					    border-radius: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li a:hover {
 | 
				
			||||||
 | 
					    color: var(--primary-color);
 | 
				
			||||||
 | 
					    font-weight: 900;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li a:hover img {
 | 
				
			||||||
 | 
					    border-radius: 35%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music {
 | 
				
			||||||
 | 
					    margin-top: auto;
 | 
				
			||||||
 | 
					    padding-bottom: 2rem;
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music img {
 | 
				
			||||||
 | 
					    width: 1.5rem;
 | 
				
			||||||
 | 
					    height: 1.5rem;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					    border-radius: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music div#music-expand {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    width: 0rem;
 | 
				
			||||||
 | 
					    height: 0rem;
 | 
				
			||||||
 | 
					    border-radius: 0 500px 500px 0;
 | 
				
			||||||
 | 
					    background-color: var(--secondary-background-color);
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: row;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					    overflow: hidden;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music h1 {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    font-size: 100%;
 | 
				
			||||||
 | 
					    max-width: 90%;
 | 
				
			||||||
 | 
					    writing-mode: horizontal-tb;
 | 
				
			||||||
 | 
					    margin: 0.5rem 0 0 0.5rem;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music h2 {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    font-size: 1rem;
 | 
				
			||||||
 | 
					    max-width: 90%;
 | 
				
			||||||
 | 
					    writing-mode: horizontal-tb;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    font-weight: 100;
 | 
				
			||||||
 | 
					    margin: 0.5rem 0 0 0.5rem;
 | 
				
			||||||
 | 
					    transition: all 0.3s ease-in-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nav ul li#music div#music-progress {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    margin-top: auto;
 | 
				
			||||||
 | 
					    height: 1rem;
 | 
				
			||||||
 | 
					    background-color: var(--primary-color);
 | 
				
			||||||
 | 
					    transition: all 1s ease;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100vh;
 | 
				
			||||||
 | 
					    overflow: scroll;
 | 
				
			||||||
 | 
					    scrollbar-width: none;
 | 
				
			||||||
 | 
					    scroll-behavior: smooth;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100vh;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header div.row {
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    left: -3rem;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: row;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    gap: 1.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header div.column {
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header img {
 | 
				
			||||||
 | 
					    width: 13rem;
 | 
				
			||||||
 | 
					    height: 13rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header h1 {
 | 
				
			||||||
 | 
					    font-size: 5rem;
 | 
				
			||||||
 | 
					    font-weight: 900;
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header h2 {
 | 
				
			||||||
 | 
					    font-size: 1.75rem;
 | 
				
			||||||
 | 
					    font-weight: 100;
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    top: -1rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main section {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100vh;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    flex-direction: column;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										81
									
								
								static/js/music.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								static/js/music.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					var enableMusic = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					document.getElementById('music').addEventListener('mouseover', function() { musicHover(); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function musicHover() {
 | 
				
			||||||
 | 
					    if (!enableMusic) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    let icon = document.getElementById('music-icon');
 | 
				
			||||||
 | 
					    icon.style.width = '8rem';
 | 
				
			||||||
 | 
					    icon.style.height = '8rem';
 | 
				
			||||||
 | 
					    icon.style.borderRadius = '500px 0 0 500px';
 | 
				
			||||||
 | 
					    let div = document.getElementById('music-expand');
 | 
				
			||||||
 | 
					    div.style.display = 'flex';
 | 
				
			||||||
 | 
					    div.style.width = '20rem';
 | 
				
			||||||
 | 
					    div.style.height = '8rem';
 | 
				
			||||||
 | 
					    let title = document.getElementById('music-title');
 | 
				
			||||||
 | 
					    title.style.display = 'block';
 | 
				
			||||||
 | 
					    let info = document.getElementById('music-info');
 | 
				
			||||||
 | 
					    info.style.display = 'block';
 | 
				
			||||||
 | 
					    let progress = document.getElementById('music-progress');
 | 
				
			||||||
 | 
					    progress.style.display = 'block';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					document.getElementById('music').addEventListener('mouseout', function() { musicOut(); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function musicOut() {
 | 
				
			||||||
 | 
					    let icon = document.getElementById('music-icon');
 | 
				
			||||||
 | 
					    icon.style.width = '1.5rem';
 | 
				
			||||||
 | 
					    icon.style.height = '1.5rem';
 | 
				
			||||||
 | 
					    icon.style.borderRadius = '50%';
 | 
				
			||||||
 | 
					    let div = document.getElementById('music-expand');
 | 
				
			||||||
 | 
					    div.style = '';
 | 
				
			||||||
 | 
					    let title = document.getElementById('music-title');
 | 
				
			||||||
 | 
					    title.style.display = 'none';
 | 
				
			||||||
 | 
					    let info = document.getElementById('music-info');
 | 
				
			||||||
 | 
					    info.style.display = 'none';
 | 
				
			||||||
 | 
					    let progress = document.getElementById('music-progress');
 | 
				
			||||||
 | 
					    progress.style.display = 'none';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function fetchData() {
 | 
				
			||||||
 | 
					    let data = fetch('https://alfieking.dev/api/v1/current_song')
 | 
				
			||||||
 | 
					    .then(response => response.json()).then(data => { return data; }) 
 | 
				
			||||||
 | 
					    .catch(error => { return null;});
 | 
				
			||||||
 | 
					    return data;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function updateUi(data) {
 | 
				
			||||||
 | 
					    enableMusic = true;
 | 
				
			||||||
 | 
					    document.getElementById('music').style.display = 'flex';
 | 
				
			||||||
 | 
					    document.getElementById('music-icon').src = data.image;
 | 
				
			||||||
 | 
					    document.getElementById('music-title').innerText = data.title;
 | 
				
			||||||
 | 
					    document.getElementById('music-info').innerText = data.artist + ' - ' + data.album;
 | 
				
			||||||
 | 
					    let progress = data.progress / data.length * 100;
 | 
				
			||||||
 | 
					    document.getElementById('music-progress').style.width = progress + '%';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function hideUi() {
 | 
				
			||||||
 | 
					    enableMusic = false;
 | 
				
			||||||
 | 
					    document.getElementById('music').style.display = 'none';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update() {
 | 
				
			||||||
 | 
					    fetchData().then(data => { 
 | 
				
			||||||
 | 
					        console.log(data);
 | 
				
			||||||
 | 
					        if (data != null) {
 | 
				
			||||||
 | 
					            if (data.idle)  {
 | 
				
			||||||
 | 
					                hideUi();
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                updateUi(data);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            hideUi();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					update();
 | 
				
			||||||
 | 
					setInterval(update, 10000);
 | 
				
			||||||
							
								
								
									
										42
									
								
								static/js/typing.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								static/js/typing.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					const values = ["Web developer", "Pc games enjoyer", "Server backend survivor", "python programmer", "Javascript disliker"];
 | 
				
			||||||
 | 
					var direction = 1;
 | 
				
			||||||
 | 
					var text = "";
 | 
				
			||||||
 | 
					var speed = 100; 
 | 
				
			||||||
 | 
					var selectedValue = 0;
 | 
				
			||||||
 | 
					var currentValueIndex = 0;                                                  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function type() {
 | 
				
			||||||
 | 
					    if (direction == 1) {
 | 
				
			||||||
 | 
					        if (currentValueIndex < values[selectedValue].length) {
 | 
				
			||||||
 | 
					            text += values[selectedValue][currentValueIndex];
 | 
				
			||||||
 | 
					            currentValueIndex++;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            direction = -1;
 | 
				
			||||||
 | 
					            speed = 1500;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        if (currentValueIndex > 0) {
 | 
				
			||||||
 | 
					            text = text.slice(0, -1);
 | 
				
			||||||
 | 
					            currentValueIndex--;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            direction = 1;
 | 
				
			||||||
 | 
					            selectedValue++;
 | 
				
			||||||
 | 
					            if (selectedValue >= values.length) {
 | 
				
			||||||
 | 
					                selectedValue = 0;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function typing() {
 | 
				
			||||||
 | 
					    type();
 | 
				
			||||||
 | 
					    document.getElementById("typing").innerHTML = "$ " + text;
 | 
				
			||||||
 | 
					    if (direction == 1) {
 | 
				
			||||||
 | 
					        speed = 80 + Math.random() * 100;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        speed = 60 + (Math.random() * 100) / 2;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    setTimeout(typing, speed);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typing();
 | 
				
			||||||
		Reference in New Issue
	
	Block a user