<script type="text/javascript">var showJsErrorsMessage="Unexpected error :( ";function showAlert(e){if(document.body){var n,o="snackAlertsContainer";if(!(n=document.getElementById(o)))(n=document.createElement("div")).id=o,document.body.appendChild(n);var r=document.createElement("div");r.innerHTML=e,r.className="snackAlert show",r.onmouseenter=function(){t&&(clearTimeout(t),t=0)},r.onmouseleave=function(){s()};var t=0;s(),n.appendChild(r)}else setTimeout(function(){showAlert(e)},200);function s(){t||(t=setTimeout(function(){r.className=r.className.replace("show","hiding"),setTimeout(function(){r.parentNode.removeChild(r)},1e3)},3e3))}}window.onerror=function(e,n,o){return showAlert(showJsErrorsMessage+e),!1},window.addEventListener("unhandledrejection",function(e){showAlert(showJsErrorsMessage+" Broken promise - "+e.reason)})</script><style type="text/css">#snackAlertsContainer{position:fixed;z-index:1;bottom:0;right:0;width:0}.snackAlert{display:none;margin:auto;position:relative;right:54vw;width:50vw;bottom:20px;margin-bottom:16px;background-color:#933;color:#fff;text-align:center;border-radius:2px;padding:16px;opacity:1;-webkit-transition:opacity 1s ease-in-out;-moz-transition:opacity 1s ease-in-out;-ms-transition:opacity 1s ease-in-out;-o-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}.snackAlert.hiding{display:block;opacity:0}.snackAlert.show{display:block;opacity:1;-webkit-animation:fadein 1.5s;animation:fadein 1.5s}@-webkit-keyframes fadein{from{bottom:0;opacity:0}to{bottom:20px;opacity:1}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:20px;opacity:1}}</style>