(function(){var supportsPassive=false;try{var opts=Object.defineProperty({},'passive',{get:function(){supportsPassive=true;}});window.addEventListener('testPassive',null,opts);window.removeEventListener('testPassive',null,opts);}catch(e){}
function init(){var input_begin='';var keydowns={};var lastKeyup=null;var lastKeydown=null;var keypresses=[];var modifierKeys=[];var correctionKeys=[];var lastMouseup=null;var lastMousedown=null;var mouseclicks=[];var mousemoveTimer=null;var lastMousemoveX=null;var lastMousemoveY=null;var mousemoveStart=null;var mousemoves=[];var touchmoveCountTimer=null;var touchmoveCount=0;var lastTouchEnd=null;var lastTouchStart=null;var touchEvents=[];var scrollCountTimer=null;var scrollCount=0;var correctionKeyCodes=['Backspace','Delete','ArrowUp','ArrowDown','ArrowLeft','ArrowRight','Home','End','PageUp','PageDown'];var modifierKeyCodes=['Shift','CapsLock'];var forms=document.querySelectorAll('form[method=post]');for(var i=0;i1){keypress.push(keydowns[e.key][1]);}
keypresses.push(keypress);}}
delete keydowns[e.key];lastKeyup=keyupTime;},supportsPassive?{passive:true}:false);form.addEventListener("focusin",function(e){lastKeydown=null;lastKeyup=null;keydowns={};},supportsPassive?{passive:true}:false);form.addEventListener("focusout",function(e){lastKeydown=null;lastKeyup=null;keydowns={};},supportsPassive?{passive:true}:false);}
document.addEventListener('mousedown',function(e){lastMousedown=(new Date()).getTime();},supportsPassive?{passive:true}:false);document.addEventListener('mouseup',function(e){if(!lastMousedown){return;}
var now=(new Date()).getTime();var mouseclick=[];mouseclick.push(now-lastMousedown);if(lastMouseup){mouseclick.push(lastMousedown-lastMouseup);}
mouseclicks.push(mouseclick);lastMouseup=now;lastKeydown=null;lastKeyup=null;keydowns={};},supportsPassive?{passive:true}:false);document.addEventListener('mousemove',function(e){if(mousemoveTimer){clearTimeout(mousemoveTimer);mousemoveTimer=null;}
else{mousemoveStart=(new Date()).getTime();lastMousemoveX=e.offsetX;lastMousemoveY=e.offsetY;}
mousemoveTimer=setTimeout(function(theEvent,originalMousemoveStart){var now=(new Date()).getTime()-500;var mousemove=[];mousemove.push(now-originalMousemoveStart);mousemove.push(Math.round(Math.sqrt(Math.pow(theEvent.offsetX-lastMousemoveX,2)+
Math.pow(theEvent.offsetY-lastMousemoveY,2))));if(mousemove[1]>0){mousemoves.push(mousemove);}
mousemoveStart=null;mousemoveTimer=null;},500,e,mousemoveStart);},supportsPassive?{passive:true}:false);document.addEventListener('touchmove',function(e){if(touchmoveCountTimer){clearTimeout(touchmoveCountTimer);}
touchmoveCountTimer=setTimeout(function(){touchmoveCount++;},500);},supportsPassive?{passive:true}:false);document.addEventListener('touchstart',function(e){lastTouchStart=(new Date()).getTime();},supportsPassive?{passive:true}:false);document.addEventListener('touchend',function(e){if(!lastTouchStart){return;}
var now=(new Date()).getTime();var touchEvent=[];touchEvent.push(now-lastTouchStart);if(lastTouchEnd){touchEvent.push(lastTouchStart-lastTouchEnd);}
touchEvents.push(touchEvent);lastTouchEnd=now;lastKeydown=null;lastKeyup=null;keydowns={};},supportsPassive?{passive:true}:false);document.addEventListener('scroll',function(e){if(scrollCountTimer){clearTimeout(scrollCountTimer);}
scrollCountTimer=setTimeout(function(){scrollCount++;},500);},supportsPassive?{passive:true}:false);}
function prepare_timestamp_array_for_request(a,limit){if(!limit){limit=100;}
var rv='';if(a.length>0){var random_starting_point=Math.max(0,Math.floor(Math.random()*a.length-limit));for(var i=0;i=2){rv+=","+a[random_starting_point+i][1];}
rv+=";";}}
return rv;}
if(document.readyState!=='loading'){init();}else{document.addEventListener('DOMContentLoaded',init);}})();