CINXE.COM

404: File not found

<!DOCTYPE html> <html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#"> <head> <title>404: File not found</title> <style> body { background: rgba(0,0,0,0.7); color: #ffffff; font-family: 'Open Sans', Arial, sans-serif; font-size: 20px; text-align: center; } .loading-message { overflow: hidden; position: absolute; left: 0; right: 0; top: calc(50% + 50px); } .lds-roller { display: inline-block; position: absolute; left: calc(50% - 40px); top: calc(50% - 40px); width: 80px; height: 80px; } .lds-roller div { animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; transform-origin: 40px 40px; } .lds-roller div:after { content: " "; display: block; position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #fff; margin: -4px 0 0 -4px; } .lds-roller div:nth-child(1) { animation-delay: -0.036s; } .lds-roller div:nth-child(1):after { top: 63px; left: 63px; } .lds-roller div:nth-child(2) { animation-delay: -0.072s; } .lds-roller div:nth-child(2):after { top: 68px; left: 56px; } .lds-roller div:nth-child(3) { animation-delay: -0.108s; } .lds-roller div:nth-child(3):after { top: 71px; left: 48px; } .lds-roller div:nth-child(4) { animation-delay: -0.144s; } .lds-roller div:nth-child(4):after { top: 72px; left: 40px; } .lds-roller div:nth-child(5) { animation-delay: -0.18s; } .lds-roller div:nth-child(5):after { top: 71px; left: 32px; } .lds-roller div:nth-child(6) { animation-delay: -0.216s; } .lds-roller div:nth-child(6):after { top: 68px; left: 24px; } .lds-roller div:nth-child(7) { animation-delay: -0.252s; } .lds-roller div:nth-child(7):after { top: 63px; left: 17px; } .lds-roller div:nth-child(8) { animation-delay: -0.288s; } .lds-roller div:nth-child(8):after { top: 56px; left: 12px; } @keyframes lds-roller { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style> <script> var validPrefixes = [ 'en-gb', 'en-au', 'en-hk', 'en-ph', 'en-sg', 'en-in', 'en-nl', 'en-nz', 'en-ae', 'en-my', 'en-ca', 'es', 'pt', 'de', 'es-us', 'es-co', 'es-mx', 'es-ar', 'es-cl', 'es-ve', 'es-pe', 'pt-br', 'de-at', 'de-de', 'de-ch', 'vi', ]; // Determine the correct language prefix. var url = new URL(window.location.href); var path = url.pathname; var languagePrefix = '/'; var timeout = 10000; var alias = '404'; for (var i = 0; i < validPrefixes.length; i++) { var validPrefix = '/' + validPrefixes[i] + '/'; if (path.indexOf(validPrefix) === 0) { languagePrefix = validPrefix; break; } } // Make the GET request. var http = new XMLHttpRequest(); var url = languagePrefix + alias; var showSimple404 = function() { document.querySelector('body').innerHTML = '<h1>File not found</h1>'; } var delayedLoadTimeOut = setTimeout(showSimple404, timeout); http.onreadystatechange = (e) => { // Inject 404 page contents. if (http.readyState === 4 && http.status === 200) { clearTimeout(delayedLoadTimeOut); document.open(); document.write(http.responseText); document.close(); } // If we're done but we didn't get a 200, just output generic message. else if (http.readyState === 4) { showSimple404(); } } http.open("GET", url); http.send(); </script> </head> <body> <div class="loading-message">Loading...</div> <div class="lds-roller"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> </body> </html>