/* * Copyright (c) 2011, Yahoo! Inc. All rights reserved. * Copyright (c) 2011-2012, Log-Normal, Inc. All rights reserved. * Copyright (c) 2012-2017, SOASTA, Inc. All rights reserved. * Copyright (c) 2017, Akamai Technologies, Inc. All rights reserved. * Copyrights licensed under the BSD License. See the accompanying LICENSE.txt file for terms. */ /* JavaScript MD5 1.0.1 Copyright 2011, Sebastian Tschan. Licensed under the MIT license. */ /* Boomerang Version: 1.571.0 b6042ad58ed5e3d5254653e63beeab81eeab2730 */ function BOOMR_check_doc_domain(a){if(window){if(!a){if(window.parent===window||!document.getElementById("boomr-if-as"))return;if(window.BOOMR&&BOOMR.boomerang_frame&&BOOMR.window)try{BOOMR.boomerang_frame.document.domain!==BOOMR.window.document.domain&&(BOOMR.boomerang_frame.document.domain=BOOMR.window.document.domain)}catch(b){BOOMR.isCrossOriginError(b)||BOOMR.addError(b,"BOOMR_check_doc_domain.domainFix")}a=document.domain}if(-1!==a.indexOf(".")){try{window.parent.document;return}catch(b){document.domain=a}try{window.parent.document;return}catch(b){a=a.replace(/^[\w\-]+\./,"")}BOOMR_check_doc_domain(a)}}}BOOMR_start=(new Date).getTime();BOOMR_check_doc_domain();!function(a){var b,c,d,e,f,g,h,i=a;a.parent!==a&&document.getElementById("boomr-if-as")&&"script"===document.getElementById("boomr-if-as").nodeName.toLowerCase()&&(a=a.parent);d=a.document;a.BOOMR||(a.BOOMR={});BOOMR=a.BOOMR;if(!BOOMR.version){BOOMR.version="1.571.0";BOOMR.window=a;BOOMR.boomerang_frame=i;BOOMR.plugins||(BOOMR.plugins={});!function(){try{void 0!==new a.CustomEvent("CustomEvent")&&(e=function(b,c){return new a.CustomEvent(b,c)})}catch(b){}try{!e&&d.createEvent&&d.createEvent("CustomEvent")&&(e=function(a,b){var c=d.createEvent("CustomEvent");b=b||{cancelable:!1,bubbles:!1};c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail);return c})}catch(b){}!e&&d.createEventObject&&(e=function(a,b){var c=d.createEventObject();c.type=c.propertyName=a;c.detail=b.detail;return c});e||(e=function(){})}();f=function(a,b,c){function f(){try{d.dispatchEvent?d.dispatchEvent(g):d.fireEvent&&d.fireEvent("onpropertychange",g)}catch(b){BOOMR.debug("Error when dispatching "+a)}}var g=e(a,{detail:b});g&&(c?BOOMR.setImmediate(f):f())};if(void 0!==d.hidden){g="visibilityState";h="visibilitychange"}else if(void 0!==d.mozHidden){g="mozVisibilityState";h="mozvisibilitychange"}else if(void 0!==d.msHidden){g="msVisibilityState";h="msvisibilitychange"}else if(void 0!==d.webkitHidden){g="webkitVisibilityState";h="webkitvisibilitychange"}b={beacon_url:"",beacon_urls_allowed:["^//[a-z0-9]+\\.akstat\\.io/?$"],beacon_type:"AUTO",beacon_auth_key:"Authorization",beacon_auth_token:void 0,site_domain:a.location.hostname.replace(/.*?([^.]+\.[^.]+)\.?$/,"$1").toLowerCase(),user_ip:"",autorun:!0,hasSentPageLoadBeacon:!1,r:void 0,r2:void 0,events:{page_ready:[],page_unload:[],before_unload:[],dom_loaded:[],visibility_changed:[],prerender_to_visible:[],before_beacon:[],beacon:[],page_load_beacon:[],xhr_load:[],click:[],form_submit:[],config:[],xhr_init:[],spa_init:[],spa_navigation:[],xhr_send:[],xhr_error:[],error:[],xhr_send:[],netinfo:[],rage_click:[]},public_events:{before_beacon:"onBeforeBoomerangBeacon",beacon:"onBoomerangBeacon",onboomerangloaded:"onBoomerangLoaded"},translate_events:{onbeacon:"beacon",onconfig:"config",onerror:"error",onxhrerror:"xhr_error"},listenerCallbacks:{},vars:{},singleBeaconVars:{},varPriority:{"-1":{},1:{}},errors:{},disabled_plugins:{},localStorageSupported:!1,LOCAL_STORAGE_PREFIX:"_boomr_",xb_handler:function(c){return function(d){var e;d||(d=a.event);d.target?e=d.target:d.srcElement&&(e=d.srcElement);3===e.nodeType&&(e=e.parentNode);e&&"OBJECT"===e.nodeName.toUpperCase()&&"application/x-shockwave-flash"===e.type||b.fireEvent(c,e)}},clearEvents:function(){var a;for(a in this.events)this.events.hasOwnProperty(a)&&(this.events[a]=[])},clearListeners:function(){var a;for(a in b.listenerCallbacks)if(b.listenerCallbacks.hasOwnProperty(a))for(;b.listenerCallbacks[a].length;)BOOMR.utils.removeListener(b.listenerCallbacks[a][0].el,a,b.listenerCallbacks[a][0].fn);b.listenerCallbacks={}},fireEvent:function(a,b){var c,d,e,g;a=a.toLowerCase();this.translate_events[a]&&(a=this.translate_events[a]);if(this.events.hasOwnProperty(a)){this.public_events.hasOwnProperty(a)&&f(this.public_events[a],b);e=this.events[a];"before_beacon"!==a&&"beacon"!==a&&BOOMR.real_sendBeacon();g=e.length;for(c=0;c")}for(c=0;c0&&null!==a[d]&&"object"==typeof a[d]?e.push(this.objectToString(a[d],b+("\n\t"===b?"\t":""),c-1)):"&"===b?e.push(encodeURIComponent(a[d])):e.push(a[d]);b=","}else for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(c>0&&null!==a[d]&&"object"==typeof a[d]?e.push(encodeURIComponent(d)+"="+this.objectToString(a[d],b+("\n\t"===b?"\t":""),c-1)):"&"===b?e.push(encodeURIComponent(d)+"="+encodeURIComponent(a[d])):e.push(d+"="+a[d]));return e.join(b)},getCookie:function(a){if(!a)return null;a=" "+a+"=";var b,c;c=" "+d.cookie+";";if((b=c.indexOf(a))>=0){b+=a.length;c=c.substring(b,c.indexOf(";",b)).replace(/^"/,"").replace(/"$/,"");return c}},setCookie:function(a,b,c){var e,f,g,h,i;if(!a||!BOOMR.session.domain||void 0===b){BOOMR.debug("Invalid parameters or site domain: "+a+"/"+b+"/"+BOOMR.session.domain);BOOMR.addVar("nocookie",1);return!1}e=this.objectToString(b,"&");f=a+'="'+e+'"';if(f.length<500){h=[f,"path=/","domain="+BOOMR.session.domain];if("number"==typeof c){i=new Date;i.setTime(i.getTime()+1e3*c);i=i.toGMTString();h.push("expires="+i)}d.cookie=h.join("; ");g=this.getCookie(a);if(e===g||void 0===g&&"number"==typeof c&&c<=0)return!0;BOOMR.warn("Saved cookie value doesn't match what we tried to set:\n"+e+"\n"+g)}else BOOMR.warn("Cookie too long: "+f.length+" "+f);BOOMR.addVar("nocookie",1);return!1},getSubCookies:function(a){var b,c,d,e,f=!1,g={};if(!a)return null;if("string"!=typeof a){BOOMR.debug("TypeError: cookie is not a string: "+typeof a);return null}b=a.split("&");for(c=0,d=b.length;c=e.expires))return e.items;this.removeLocalStorage(c)},setLocalStorage:function(c,d,e){var f,g,h;if(!c||!b.localStorageSupported||"object"!=typeof d)return!1;f={items:d};"number"==typeof e&&(f.expires=BOOMR.now()+1e3*e);g=a.JSON.stringify(f);if(g.length<5e4){try{a.localStorage.setItem(b.LOCAL_STORAGE_PREFIX+c,g);h=a.localStorage.getItem(b.LOCAL_STORAGE_PREFIX+c);if(g===h)return!0}catch(i){}BOOMR.warn("Saved storage value doesn't match what we tried to set:\n"+g+"\n"+h)}else BOOMR.warn("Storage items too large: "+g.length+" "+g);return!1},removeLocalStorage:function(c){if(!c||!b.localStorageSupported)return!1;try{a.localStorage.removeItem(b.LOCAL_STORAGE_PREFIX+c);return!0}catch(d){}return!1},cleanupURL:function(a,c){if(!a||BOOMR.utils.isArray(a))return"";b.strip_query_string&&(a=a.replace(/\?.*/,"?qs-redacted"));if(void 0!==c&&a&&a.length>c){var d=a.indexOf("?");a=-1!==d&&d10?BOOMR.utils.MD5(b):b)}):a},pluginConfig:function(a,b,c,d){var e,f=0;if(!b||!b[c])return!1;for(e=0;e0},arrayFilter:function(a,b){var c=[];if(!(this.isArray(a)||a&&"number"==typeof a.length)||"function"!=typeof b)return c;if("function"==typeof a.filter)c=a.filter(b);else for(var d,e=-1,f=a.length;++e0&&(h.timer=setTimeout(g,b))}var h={observer:null,timer:null};if(!this.isMutationObserverSupported()||!d||!a)return null;h.observer=new BOOMR.window.MutationObserver(g);c&&(h.timer=setTimeout(g,h.timeout));h.observer.observe(a,b);return h},addListener:function(a,c,d,e){var f=!1;if(a.addEventListener){e&&BOOMR.browser.supportsPassive()&&(f={capture:!1,passive:!0});a.addEventListener(c,d,f)}else a.attachEvent&&a.attachEvent("on"+c,d);b.listenerCallbacks[c]=b.listenerCallbacks[c]||[];b.listenerCallbacks[c].push({el:a,fn:d})},removeListener:function(a,c,d){var e;a.removeEventListener?a.removeEventListener(c,d,!1):a.detachEvent&&a.detachEvent("on"+c,d);if(b.listenerCallbacks.hasOwnProperty(c))for(var e=0;e1?decodeURIComponent(f.splice(1).join("=").replace(/\+/g," ")):""}return null},generateUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)})},generateId:function(a){return"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".substr(0,a||40).replace(/x/g,function(a){var a=(Math.random()||.01).toString(36);return"0"===a?"0":a.substr(2,1)})},serializeForUrl:function(a){if(BOOMR.utils.Compression&&BOOMR.utils.Compression.jsUrl)return BOOMR.utils.Compression.jsUrl(a);if(window.JSON)return JSON.stringify(a);BOOMR.debug("JSON is not supported");return""},getMyURL:function(){var a,b=document.currentScript||document.getElementById("boomr-if-as")||document.getElementById("boomr-scr-as");if(b)return b.src;var c,d=document.getElementsByTagName("script");for(c=d.length;c--;)if("interactive"===d[c].readyState)return d[c].src;try{throw new Error}catch(e){if("stack"in e){a=this.arrayFilter(e.stack.split(/\n/),function(a){return a.match(/https?:\/\//)});if(a&&a.length)return a[0].replace(/.*(https?:\/\/.+?)(:\d+)+\D*$/m,"$1")}}return""},scroll:function(){var b=void 0!==a.pageXOffset,c="CSS1Compat"===(a.document.compatMode||""),d={x:0,y:0};if(b)if("function"==typeof a.pageXOffset){d.x=a.pageXOffset();d.y=a.pageYOffset()}else{d.x=a.pageXOffset;d.y=a.pageYOffset}else if(c){d.x=a.document.documentElement.scrollLeft;d.y=a.document.documentElement.scrollTop}else{d.x=a.document.body.scrollLeft;d.y=a.document.body.scrollTop}"number"==typeof d.sx&&(d.sx=Math.round(d.sx));"number"==typeof d.sy&&(d.sy=Math.round(d.sy));return d},windowHeight:function(){return a.innerHeight||a.document.documentElement.clientHeight||a.document.body.clientHeight},windowWidth:function(){return a.innerWidth||a.document.documentElement.clientWidth||a.document.body.clientWidth}},browser:{results:{},supportsPassive:function(){if(void 0===BOOMR.browser.results.supportsPassive){BOOMR.browser.results.supportsPassive=!1;if(!Object.defineProperty)return!1;try{var a=Object.defineProperty({},"passive",{get:function(){BOOMR.browser.results.supportsPassive=!0}});window.addEventListener("test",null,a)}catch(b){}}return BOOMR.browser.results.supportsPassive}},init:function(c){var e,f,g=["autorun","beacon_auth_key","beacon_auth_token","beacon_url","beacon_type","site_domain","strip_query_string","user_ip"];BOOMR_check_doc_domain();c||(c={});void 0!==c.log&&(this.log=c.log);this.log||(this.log=function(){});if(!this.pageId){this.pageId=BOOMR.utils.generateId(8);BOOMR.debug("Generated PageID: "+this.pageId)}if(c.primary&&b.handlers_attached)return this;void 0!==c.site_domain&&(this.session.domain=c.site_domain);void 0!==c.autorun&&(b.autorun=c.autorun);for(f in this.plugins)if(this.plugins.hasOwnProperty(f)){if(c[f]&&c[f].hasOwnProperty("enabled")&&!1===c[f].enabled){b.disabled_plugins[f]=1;"function"==typeof this.plugins[f].disable&&this.plugins[f].disable();continue}if(b.disabled_plugins[f]){if(!c[f]||!c[f].hasOwnProperty("enabled")||!0!==c[f].enabled)continue;"function"==typeof this.plugins[f].enable&&this.plugins[f].enable();delete b.disabled_plugins[f]}if("function"==typeof this.plugins[f].init)try{this.plugins[f].init(c)}catch(i){BOOMR.addError(i,f+".init")}}for(e=0;e0||a.BOOMR_onload>0},onloadFired:function(){return b.onloadfired},setImmediate:function(b,c,d,e){var f,g;f=function(){b.call(e||null,c,d||{},g);f=null};a.requestIdleCallback?a.requestIdleCallback(f,{timeout:1e3}):a.setImmediate?a.setImmediate(f):setTimeout(f,10)},now:function(){return Date.now||function(){return(new Date).getTime()}}(),getPerformance:function(){try{if(BOOMR.window)return"performance"in BOOMR.window&&BOOMR.window.performance?BOOMR.window.performance:BOOMR.window.msPerformance||BOOMR.window.webkitPerformance||BOOMR.window.mozPerformance}catch(a){}},hrNow:function(){var a,b,c=BOOMR.getPerformance();if(c&&c.now)a=c.now();else{b=BOOMR.plugins.RT&&BOOMR.plugins.RT.navigationStart&&BOOMR.plugins.RT.navigationStart()||BOOMR.t_lstart||BOOMR.t_start;a=BOOMR.now()-b}return a},visibilityState:void 0===g?function(){return"visible"}:function(){return d[g]},lastVisibilityEvent:{},registerEvent:function(a){if(b.events.hasOwnProperty(a))return this;b.events[a]=[];return this},disable:function(){b.clearEvents();b.clearListeners()},fireEvent:function(a,c){return b.fireEvent(a,c)},subscribe:function(c,d,e,f,g){var h,i,j;c=c.toLowerCase();b.translate_events[c]&&(c=b.translate_events[c]);b.events.hasOwnProperty(c)||(b.events[c]=[]);j=b.events[c];for(h=0;h1?" (*"+b.errors[c]+")":""));f.length>0&&(b.vars.errors=f.join("\n"));b.errors={};b.fireEvent("before_beacon",b.vars);for(c in b.vars)b.vars.hasOwnProperty(c)&&(g[c]=b.vars[c]);BOOMR.removeVar("qt");for(var j in b.singleBeaconVars)b.singleBeaconVars.hasOwnProperty(j)&&BOOMR.removeVar(j);b.singleBeaconVars={};if(!b.hasSentPageLoadBeacon&&i){b.hasSentPageLoadBeacon=!0;BOOMR.setImmediate(function(){b.fireEvent("page_load_beacon",g)})}if(BOOMR.session.rate_limited){BOOMR.debug("Skipping because we're rate limited");return!1}BOOMR.sendBeaconData(g);return!0},hasSentPageLoadBeacon:function(){return b.hasSentPageLoadBeacon},sendBeaconData:function(c){var d,e,f,g,h,i=[],j=[],k=!0;BOOMR.debug("Ready to send beacon: "+BOOMR.utils.objectToString(c));b.beacon_url=b.beacon_url_override||b.beacon_url;if(!b.beacon_url){BOOMR.debug("No beacon URL, so skipping.");return!1}if(!b.beaconUrlAllowed(b.beacon_url)){BOOMR.debug("Beacon URL not allowed: "+b.beacon_url);return!1}if(0===c.length)return!1;b.fireEvent("beacon",c);i=this.getVarsOfPriority(c,-1);j=this.getVarsOfPriority(c,1);d=i.concat(this.getVarsOfPriority(c,0),j);e=d.join("&");b.beacon_url.match(/^\/\//)&&(b.beacon_url="https:"+b.beacon_url);f=b.beacon_url+(b.beacon_url.indexOf("?")>-1?"&":"?")+e;("POST"===b.beacon_type||f.length>BOOMR.constants.MAX_GET_LENGTH)&&(k=!1);if(a&&a.navigator&&"function"==typeof a.navigator.sendBeacon&&"function"==typeof a.Blob){var l=new a.Blob([e+"&sb=1"],{type:"application/x-www-form-urlencoded"});if(a.navigator.sendBeacon(b.beacon_url,l))return!0}BOOMR.orig_XMLHttpRequest||a&&a.XMLHttpRequest||(k=!0);if(k){try{g=new Image}catch(m){BOOMR.debug("Image is not a constructor, not sending a beacon");return!1}g.src=f}else{h=new(BOOMR.window.orig_XMLHttpRequest||BOOMR.orig_XMLHttpRequest||BOOMR.window.XMLHttpRequest);try{this.sendXhrPostBeacon(h,e)}catch(m){h=new BOOMR.boomerang_frame.XMLHttpRequest;this.sendXhrPostBeacon(h,e)}}return!0},hasSentPageLoadBeacon:function(){return b.hasSentPageLoadBeacon},sendXhrPostBeacon:function(a,c){a.open("POST",b.beacon_url);a.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(void 0!==b.beacon_auth_token){void 0===b.beacon_auth_key&&(b.beacon_auth_key="Authorization");a.setRequestHeader(b.beacon_auth_key,b.beacon_auth_token)}a.send(c)},getVarsOfPriority:function(a,c){var d,e=[];if(0!==c){for(d in b.varPriority[c])if(b.varPriority[c].hasOwnProperty(d)&&a.hasOwnProperty(d)){e.push(this.getUriEncodedVar(d,a[d]));delete a[d]}}else for(d in a)a.hasOwnProperty(d)&&e.push(this.getUriEncodedVar(d,a[d]));return e},getUriEncodedVar:function(a,b){void 0!==b&&null!==b||(b="");"object"==typeof b&&(b=BOOMR.utils.serializeForUrl(b));return encodeURIComponent(a)+"="+encodeURIComponent(b)},getResourceTiming:function(a,b){var c,d=BOOMR.getPerformance();try{if(d&&"function"==typeof d.getEntriesByName){c=d.getEntriesByName(a);if(c&&c.length){"function"==typeof b&&c.sort(b);return c[c.length-1]}}}catch(e){}}};c.url=c.utils.getMyURL();delete BOOMR_start;if("number"==typeof BOOMR_lstart){c.t_lstart=BOOMR_lstart;delete BOOMR_lstart}else"number"==typeof BOOMR.window.BOOMR_lstart&&(c.t_lstart=BOOMR.window.BOOMR_lstart);"number"==typeof BOOMR.window.BOOMR_onload&&(c.t_onload=BOOMR.window.BOOMR_onload);!function(){var a;"object"==typeof console&&void 0!==console.log?c.log=function(a,b,c){console.log("("+BOOMR.now()+") {"+BOOMR.pageId+"}: "+c+": ["+b+"] "+a)}:c.log=function(){};a=function(a){return function(b,c){this.log(b,a,"boomerang"+(c?"."+c:""));return this}};c.debug=a("debug");c.info=a("info");c.warn=a("warn");c.error=a("error")}();try{var j=c.getPerformance();j&&"function"==typeof j.now&&/\[native code\]/.test(String(j.now))&&j.timing&&j.timing.navigationStart&&(c.now=function(){return Math.round(j.now()+j.timing.navigationStart)})}catch(k){}b.checkLocalStorageSupport();!function(){var a;for(a in c)c.hasOwnProperty(a)&&(BOOMR[a]=c[a]);BOOMR.xhr_excludes||(BOOMR.xhr_excludes={})}();f("onBoomerangLoaded",{BOOMR:BOOMR},!0)}}(window);!function(){if(!BOOMR.plugins.ConfigOverride){var a={safeConfigOverride:function(b,c,d){for(var e in c)if(b.hasOwnProperty(e)&&c.hasOwnProperty(e)&&("object"!=typeof c[e]||"object"==typeof b[e]))if("object"==typeof b[e]&&"object"==typeof c[e]){d[e]=d[e]||{};a.safeConfigOverride(b[e],c[e],d[e])}else{d[e]=b[e];BOOMR.addVar("c.o","")}},allowedConfigOverrides:{Angular:{enabled:!0},Ember:{enabled:!0},Backbone:{enabled:!0},History:{enabled:!0,auto:!0,disableHardNav:!0},PageParams:{enabled:!0,pageGroups:!0,customMetrics:!0,customDimensions:!0,customTimers:!0,abTests:!0,defaultDecimal:!0,defaultThousands:!0,xhr:!0,pci:!0,pciBlacklist:!0},CrossDomain:{cross_domain_url:!0,sending:!0,session_transfer_timeout:!0},IFrameDelay:{enabled:!0,monitoredCount:!0,registerParent:!0},instrument_xhr:!0,RT:{cookie:!0,session_exp:!0},BW:{base_url:!0,enabled:!0,test_https:!0},ResourceTiming:{enabled:!0,clearOnBeacon:!0,trimUrls:!0,serverTiming:!0},AutoXHR:{alwaysSendXhr:!0,filters:!0},Errors:{enabled:!0,onError:!0,monitorGlobal:!0,monitorNetwork:!0,monitorConsole:!0,monitorEvents:!0,monitorTimeout:!0,sendAfterOnload:!0,maxErrors:!0,sendInterval:!0},TPAnalytics:{enabled:!0},Continuity:{enabled:!0,monitorLongTasks:!0,monitorPageBusy:!0,monitorFrameRate:!0,monitorInteractions:!0,monitorStats:!0,afterOnload:!0,afterOnloadMaxLength:!0,afterOnloadMinWait:5e3,waitAfterOnload:!0,ttiWaitForFrameworkReady:!0,ttiWaitForHeroImages:!0,sendLog:!0,logMaxEntries:100,sendTimeline:!0},UserTiming:{enabled:!0},LOGN:{storeConfig:!0},autorun:!0}};BOOMR.plugins.ConfigOverride={init:function(b){if(BOOMR.window&&BOOMR.window.BOOMR_config){BOOMR.debug("Found BOOMR_config on global scope: "+BOOMR.utils.objectToString(BOOMR.window.BOOMR_config),"ConfigOverride");a.safeConfigOverride(BOOMR.window.BOOMR_config,a.allowedConfigOverrides,b)}return this},is_complete:function(){return!0}}}}();!function(){function a(a){BOOMR.debug(a,"Continuity")}function b(a){var b=window.UserTimingCompression||BOOMR.window.UserTimingCompression;return b?b.jsUrl(a):window.JSON?JSON.stringify(a):""}function c(a,b,c,d,e){var i,j,k,l,m,n="",q=0;if(!c||!BOOMR.utils.Compression)return"";if(0===c.length)return"";if(b){void 0===c[d]&&(c[d]=0);for(i=d+1;i<=e;i++)void 0===c[i]&&(c[i]=c[i-1])}for(i=d;i<=e;i++){q="number"!=typeof c[i]||isNaN(c[i])?0:c[i];a===f?k=q<=63?o.charAt(q):p+q.toString(36)+p:a===g?k=q.toString(36):a===h&&(k=q<99?q<=9?"0"+Math.max(q,0):q:"__");if(i+3<=e&&(c[i+1]===q||0===q&&void 0===c[i+1])&&(c[i+2]===q||0===q&&void 0===c[i+2])&&(c[i+3]===q||0===q&&void 0===c[i+3])){j=1;for(;iimpl.logMaxEntries&&Array.prototype.splice.call(B,0,B.length-impl.logMaxEntries)}function j(b,c){var e,f=0,g=0,h=1/0,i=0,j=Math.floor((c-a)/d);if(!z[b])return 0;for(var k in z[b]){k=parseInt(k,10);if(k>=j&&z[b].hasOwnProperty(k)){e=z[b][k];f++;g+=e;h=Math.min(h,e);i=Math.max(i,e)}}return{total:g,count:f,min:h,max:i}}function k(a){var b,c,d,e,f,g,h=0;if(!BOOMR.window||!BOOMR.window.document||"function"!=typeof BOOMR.window.document.querySelectorAll)return 0;if(!q||"function"!=typeof q.getEntriesByType)return 0;b=a+", "+a+" * img";c=BOOMR.window.document.querySelectorAll(b);if(c&&c.length)for(d=0;dy)g=0;else if(z.interdly&&z.interdly[f])g=0;else{g++;if(g>=v){C=a+(f-v)*d;C=Math.max(C,D);break}}C>0&&impl.addToBeacon("c.tti",r.timeToInteractive())}}}function t(){z={};B=[]}function u(){for(var a in z)z.hasOwnProperty(a)&&(z[a]=[]);B=[]}var v=5,w=20,x=w/(1e3/d),y=50,z={},A={},B=[],C=0,D=0,E=0;BOOMR.fpsLog&&BOOMR.fpsLog.length&&(a=BOOMR.fpsLog[0]+s);r.timeToInteractive=function(){if(C)return C-s};r.timeToVisuallyReady=function(){if(D)return D-s};r.timeToHeroImagesReady=function(){if(impl.ttiWaitForHeroImages&&E)return E-s};r.timeToFrameworkReady=function(){if(impl.ttiWaitForFrameworkReady&&impl.frameworkReady)return impl.frameworkReady-s};r.log=function(){return B};return{register:b,set:g,log:i,increment:h,getTimeBucket:e,getStats:j,analyze:p,stop:t,onBeacon:u}},u=function(a,c){function d(a){var b,d;if(p){b=a.getEntries();Array.prototype.push.apply(o,b);for(d=0;d0&&(f.a=i);h.push(f)}impl.addToBeacon("c.lt.n",r.longTasksCount(),!0);impl.addToBeacon("c.lt.tt",r.longTasksTime());impl.addToBeacon("c.lt",b(h))}}function i(){p=!1;n.disconnect();g()}function j(){g()}if(a.PerformanceObserver&&a.PerformanceLongTaskTiming){var k={unknown:0,self:1,"same-origin-ancestor":2,"same-origin-descendant":3,"same-origin":4,"cross-origin-ancestor":5,"cross-origin-descendant":6,"cross-origin-unreachable":7,"multiple-contexts":8},l={unknown:0,script:1,layout:2},m={unknown:0,iframe:1,embed:2,object:3},n=new a.PerformanceObserver(d);try{n.observe({entryTypes:["longtask"]})}catch(s){return}c.register("longtask",f);var o=[],p=!0,q=0;r.longTasksTime=function(){return q};r.longTasksCount=function(){return o.length};return{getTasks:e,clearTasks:g,analyze:h,stop:i,onBeacon:j}}},v=function(a,b){function c(){var a=BOOMR.now(),b=a-n;n=a;if(b>2*i+j){var c=Math.floor((b-i)/i);o+=c;p+=c;b-=c*i}o++;b>i+j&&p++}function d(){var a=b.getTimeBucket(),c=a,d=0;if(0!==o){for(;o>l+1&&d<=m;){b.set("busy",100,--c);o-=l;p=Math.max(p-l,0);q+=l;s+=l;d++}q+=o;s+=p;b.set("busy",Math.round(p/o*100),a);o=0;p=0}}function e(a){impl.addToBeacon("c.b",r.pageBusy())}function f(){t=!1;if(u){clearInterval(u);u=!1}if(v){clearInterval(v);v=!1}}function g(){q=0;s=0}b.register("busy",h);var i=32,j=4,k=100,l=Math.floor(k/i),m=100,n=BOOMR.now(),o=0,p=0,q=0,s=0,t=!0,u=!1,v=!1;r.pageBusy=function(){return 0===q?0:Math.round(s/q*100)};u=setInterval(c,i);v=setInterval(d,k);return{analyze:e,stop:f,onBeacon:g}},w=function(a,b){function c(d){if(n){d-j>=k&&m++;j=d;l++;b.increment("fps");a.requestAnimationFrame(c)}}function e(a){impl.addToBeacon("c.f",r.fps());impl.addToBeacon("c.f.d",r.fpsDuration());impl.addToBeacon("c.f.m",r.fpsMinimum());impl.addToBeacon("c.f.l",r.fpsLongFrames());impl.addToBeacon("c.f.s",r.fpsStart())}function g(){n=!1;i=0}function h(){n&&(i=BOOMR.now());l=0;m=0}b.register("fps",f);var i,j,k=50,l=0,m=0,n=!0;if(BOOMR.fpsLog&&BOOMR.fpsLog.length){j=i=BOOMR.fpsLog[0]+s;for(var o=0;o=k&&m++;j=p}l=BOOMR.fpsLog.length;delete BOOMR.fpsLog}else i=BOOMR.now();a.requestAnimationFrame(c);r.fps=function(){var a=r.fpsDuration();if(a)return Math.floor(l/(a/1e3))};r.fpsDuration=function(){if(i)return BOOMR.now()-i};r.fpsMinimum=function(){if(r.fpsDuration()){var a=b.getStats("fps",i).min;return a!==1/0?a:void 0}};r.fpsLongFrames=function(){return m};r.fpsStart=function(){return i?i.toString(36):0};return{analyze:e,stop:g,onBeacon:h}},x=function(a,b,c){function e(a){var d=BOOMR.now();t++;d-w>m&&v++;w=d;var e=BOOMR.utils.scroll().y,f=Math.abs(o-e);u+=f;b.increment("scroll",f);if(0===p||Math.abs(p-e)>n){b.log(i,d,{y:e});p=e}c.interact("scroll",d,a);q+=Math.round(f/A*100);s+=Math.round(f/A*100);o=e}function g(){var a=Math.min(q,100);0!==a&&b.set("scrollpct",a);q=0}function j(a){impl.addToBeacon("c.s",r.scrollCount());impl.addToBeacon("c.s.p",r.scrollPct());impl.addToBeacon("c.s.y",r.scrollPixels());impl.addToBeacon("c.s.d",r.scrollDistinct())}function k(){if(x){clearInterval(x);x=!1}BOOMR.utils.removeListener(a,"scroll",e)}function l(){s=0;t=0;u=0;v=0}if(a&&a.document&&a.document.body&&a.document.documentElement){var m=2e3,n=20,o=0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=!1,y=a.document.body,z=a.document.documentElement;b.register("scroll",f);b.register("scrollpct",h);var A=Math.max(y.scrollHeight,y.offsetHeight,z.clientHeight,z.scrollHeight,z.offsetHeight)-BOOMR.utils.windowHeight();r.scrollPct=function(){return s};r.scrollCount=function(){return t};r.scrollDistinct=function(){return v};r.scrollPixels=function(){return u};BOOMR.utils.addListener(a,"scroll",e,!0);x=setInterval(g,d);return{analyze:j,stop:k,onBeacon:l}}},y=function(a,b,c){function d(a){var d=BOOMR.now(),e=a.clientX,f=a.clientY;l++;var g=Math.round(Math.sqrt(Math.pow(p-f,2)+Math.pow(o-e,2)));if(q===a.target||g<=i){m++;if(m+1>=k){n++;BOOMR.fireEvent("rage_click",a)}}else m=0;o=e;p=f;q=a.target;b.increment("click");b.log(j,d,{x:e,y:f});c.interact("click",d,a)}function e(a){impl.addToBeacon("c.c",r.clicksCount());impl.addToBeacon("c.c.r",r.clicksRage())}function g(){BOOMR.utils.removeListener(a.document,"click",d)}function h(){l=0;m=0;n=0}b.register("click",f);var i=10,k=3,l=0,m=0,n=0,o=0,p=0,q=null;r.clicksCount=function(){return l};r.clicksRage=function(){return n};BOOMR.utils.addListener(a.document,"click",d,!0);return{analyze:e,stop:g,onBeacon:h}},z=function(a,b,c){function d(a){var d=BOOMR.now();i++;27===a.keyCode&&j++;b.increment("key");b.log(l,d);c.interact("key",d,a)}function e(a){impl.addToBeacon("c.k",r.keyCount());impl.addToBeacon("c.k.e",r.keyEscapes())}function g(){BOOMR.utils.removeListener(a.document,"keydown",d)}function h(){i=0;j=0}b.register("key",f);var i=0,j=0;r.keyCount=function(){return i};r.keyEscapes=function(){return j};BOOMR.utils.addListener(a.document,"keydown",d,!0);return{analyze:e,stop:g,onBeacon:h}},A=function(a,b,c){function e(a){var c=(BOOMR.now(),a.clientX),d=a.clientY,e=Math.round(Math.sqrt(Math.pow(q-d,2)+Math.pow(p-c,2))),f=Math.round(e/z*100);u+=f;v+=f;w+=e;p=c;q=d;b.increment("mouse",e)}function g(){var a=Math.min(u,100);0!==a&&b.set("mousepct",a);u=0}function i(){if(s!==p||t!==q){if(Math.round(Math.sqrt(Math.pow(t-q,2)+Math.pow(s-p,2)))>=n){b.log(k,BOOMR.now(),{x:p,y:q});s=p;t=q}}}function j(a){impl.addToBeacon("c.m.p",r.mousePct());impl.addToBeacon("c.m.n",r.mousePixels())}function l(){if(x){clearInterval(x);x=!1}if(y){clearInterval(y);y=!1}BOOMR.utils.removeListener(a.document,"mousemove",e)}function m(){v=0;w=0}b.register("mouse",f);b.register("mousepct",h);var n=10,o=250,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=!1,y=!1,z=Math.round(Math.sqrt(Math.pow(BOOMR.utils.windowHeight(),2)+Math.pow(BOOMR.utils.windowWidth(),2)));r.mousePct=function(){return v};r.mousePixels=function(){return w};x=setInterval(g,d);y=setInterval(i,o);BOOMR.utils.addListener(a.document,"mousemove",e,!0);return{analyze:j,stop:l,onBeacon:m}},B=function(b,c,d){function e(b,d,e){d=d||BOOMR.now();if(x){t++;p||(p=d);var f=0;if(e&&e.timeStamp){f=e.timeStamp>14e11?d-e.timeStamp:d-s-e.timeStamp;u+=f;null===q&&(q=Math.round(f));if(f>m){c.increment("interdly");v++;w+=f}}c.increment("inter");if(!C&&impl.afterOnloadMonitoring){z=BOOMR.now();if(!y){a("Interaction detected, sending a beacon after "+n+" ms");y=z;B=setTimeout(i,o)}if(A){a("Clearing previous interaction timeout");clearTimeout(A);A=!1}A=setTimeout(i,n)}}}function g(){C=!0;h()}function h(){if(A){clearTimeout(A);A=!1}if(B){clearTimeout(B);B=!1}}function i(){a("Sending interaction beacon");h();BOOMR.fireEvent("interaction");impl.addToBeacon("rt.tstart",y);impl.addToBeacon("rt.end",z);impl.addToBeacon("rt.start","manual");impl.addToBeacon("http.initiator","interaction");BOOMR.sendBeacon()}function j(a){impl.addToBeacon("c.ttfi",r.timeToFirstInteraction());impl.addToBeacon("c.i.dc",r.interactionDelayed());impl.addToBeacon("c.i.dt",r.interactionDelayedTime());impl.addToBeacon("c.i.a",r.interactionAvgDelay());null!==q&&impl.addToBeacon("c.fid",r.firstInputDelay(),!0)}function k(){x=!1}function l(){w=0;v=0;t=0;u=0;y=0;z=0;C=!1;h()}c.register("inter",f);c.register("interdly",f);var m=50,n=d,o=3e4,p=0,q=null,t=0,u=0,v=0,w=0,x=!0,y=0,z=0,A=!1,B=!1,C=!1;r.interactionDelayed=function(){return v};r.interactionDelayedTime=function(){return Math.round(w)};r.interactionAvgDelay=function(){if(t>0)return Math.round(u/t)};r.timeToFirstInteraction=function(){if(p)return p-s};r.firstInputDelay=function(){if(null!==q)return q};BOOMR.subscribe("spa_init",g,null,impl);return{interact:e,analyze:j,stop:k,onBeacon:l}},C=function(a,b,c){function d(){g=!1}b.register("vis",f);var e={visible:0,hidden:1,prerender:2,unloaded:3},g=!0;BOOMR.subscribe("visibility_changed",function(a){var d=BOOMR.now();if(g){b.increment("vis");b.log(m,d,{s:e[BOOMR.visibilityState()]});c.interact("vis",d,a)}});return{stop:d}},D=function(a,b,c){function d(a){var d=BOOMR.now();if(g){b.increment("orn");b.log(n,d,{a:screen.orientation.angle});c.interact("orn",d,a)}}function e(){g=!1;BOOMR.utils.removeListener(a,"orientationchange",d)}b.register("orn",f);var g=!0;BOOMR.utils.addListener(a,"orientationchange",d,!0);return{stop:e}},E=function(a,b){function c(){var a=q&&q.memory&&q.memory.usedJSHeapSize;a&&b.set("mem",a);r=s.length;b.set("domsz",l.documentElement.innerHTML.length);b.set("domln",r);if(p>0){var c=Math.min(Math.round(p/r*100),100);b.set("mut",c);p=0}}function d(){m&&o&&b.set("bat",o.level)}function e(a){a.forEach(function(a){if("childList"===a.type)for(var b=0;b0){BOOMR.removeVar(impl.addedVars);impl.addedVars=[]}for(a=0;aimpl.waitAfterOnload){impl.complete=!0;BOOMR.sendBeacon()}else{impl.timeline.analyze();if(r.timeToInteractive()){impl.complete=!0;BOOMR.sendBeacon()}else setTimeout(b,e)}},e)}else impl.complete=!0},addToBeacon:function(a,b,c){if(0!==b&&void 0!==b||c){BOOMR.addVar(a,b);impl.addedVars.push(a)}else BOOMR.removeVar(a)}};BOOMR.plugins.Continuity={init:function(a){BOOMR.utils.pluginConfig(impl,a,"Continuity",["monitorLongTasks","monitorPageBusy","monitorFrameRate","monitorInteractions","monitorStats","afterOnload","afterOnloadMaxLength","afterOnloadMinWait","waitAfterOnload","ttiWaitForFrameworkReady","ttiWaitForHeroImages","sendLog","logMaxEntries","sendTimeline"]);if(impl.initialized)return this;impl.initialized=!0;impl.timeline=new t(BOOMR.now());if(BOOMR.window){if(impl.monitorLongTasks&&BOOMR.window.PerformanceObserver&&BOOMR.window.PerformanceLongTaskTiming){impl.longTaskMonitor=new u(BOOMR.window,impl.timeline);impl.ttiMethod="lt"}if(impl.monitorFrameRate&&"function"==typeof BOOMR.window.requestAnimationFrame){impl.frameRateMonitor=new w(BOOMR.window,impl.timeline);impl.ttiMethod||(impl.ttiMethod="raf")}if(impl.monitorPageBusy&&(!BOOMR.window.PerformanceObserver||!BOOMR.window.PerformanceLongTaskTiming||!impl.monitorLongTasks)){impl.pageBusyMonitor=new v(BOOMR.window,impl.timeline);impl.ttiMethod||(impl.ttiMethod="b")}if(impl.monitorInteractions){impl.interactionMonitor=new B(BOOMR.window,impl.timeline,impl.afterOnloadMinWait);impl.scrollMonitor=new x(BOOMR.window,impl.timeline,impl.interactionMonitor);impl.keyMonitor=new z(BOOMR.window,impl.timeline,impl.interactionMonitor);impl.clickMonitor=new y(BOOMR.window,impl.timeline,impl.interactionMonitor);impl.mouseMonitor=new A(BOOMR.window,impl.timeline,impl.interactionMonitor);impl.visibilityMonitor=new C(BOOMR.window,impl.timeline,impl.interactionMonitor);impl.orientationMonitor=new D(BOOMR.window,impl.timeline,impl.interactionMonitor)}impl.monitorStats&&(impl.statsMonitor=new E(BOOMR.window,impl.timeline,impl.interactionMonitor))}BOOMR.addVar("c.e",s.toString(36));BOOMR.addVar("c.tti.m",impl.ttiMethod);BOOMR.subscribe("before_beacon",impl.onBeforeBeacon,null,impl);BOOMR.subscribe("beacon",impl.onBeacon,null,impl);BOOMR.subscribe("page_ready",impl.onPageReady,null,impl);BOOMR.subscribe("xhr_load",impl.onXhrLoad,null,impl);return this},is_complete:function(a){return impl.complete||a&&"error"===a["http.initiator"]},frameworkReady:function(){impl.frameworkReady=BOOMR.now()},metrics:r}}}();!function(){function a(a){try{return a.frames.length}catch(b){return 0}}var b,c,d,e,f,g;if(!BOOMR.plugins.PageParams){var h=".",i=",",j=/(-?(?:[1-9][\d,]*)?[0-9](?:\.\d+)?)/,k=500,l=["img","iframe","script","link","object","svg","video"],m={name:1,"honorific-prefix":1,"given-name":1,"additional-name":1,"family-name":1,"honorific-suffix":1,username:1,"new-password":1,"current-password":1,"street-address":1,country:1,"country-name":1,"postal-code":1,email:1,tel:1},n=["cc-","address-","tel-"],o=[/(?:3[47][0-9]{13})/,/(?:3(?:0[0-5]|[68][0-9])[0-9]{11})/,/(?:6(?:011|5[0-9]{2})(?:[0-9]{12}))/,/(?:(?:2131|1800|35\d{3})\d{11})/,/(?:(?:5[0678]\d\d|6304|6390|67\d\d)\d{8,15})/,/(?:(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12})/,/(?:4[0-9]{12})(?:[0-9]{3})?/,/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/],p=function(){return{pageGroups:{varname:"h.pg",stopOnFirst:!0,isDimension:!0},abTests:{varname:"h.ab",stopOnFirst:!0,isDimension:!0},customMetrics:{cleanUpRE:j},customDimensions:{sanitizeRE:/[^\w\. \-]/g,isDimension:!0},customTimers:{cleanUpRE:j,method:BOOMR.plugins.RT&&BOOMR.plugins.RT.setTimer,ctx:BOOMR.plugins.RT,preProcessor:function(a){return Math.round("number"==typeof a?a:parseFloat(a,10))}}}},q=["src","href","data","codebase"],r={".,":j},s={".":/\./g,",":/,/g," ":/ /g,"'":/'/g};g=function(a){this.varname=a.varname;this.method=a.method||BOOMR.addVar;this.ctx=a.ctx||BOOMR;this.preProcessor=a.preProcessor;this.sanitizeRE=a.sanitizeRE||/[^\w \-]/g;this.cleanUpRE=a.cleanUpRE;this.resourceTime={};this.resources=[];this.RTSupport=!1;this.MOSupport=!1;return this};g.prototype={apply:function(a){this.preProcessor&&(a=this.preProcessor(a));if(!a&&0!==a)return!1;"function"==typeof this.method&&this.method.call(this.ctx,this.varname,a);return!0},handle:function(a,b,c){var d=this;if(!this.isValid(a))return!1;if(a.label)if("ResourceGroup"===a.type&&f.resourceGroupHandlers[a.label])d=f.resourceGroupHandlers[a.label];else{d=new g(this);d.varname=a.label}return d[a.type](a,b,c)},isValid:function(a){return a&&"object"==typeof a&&a.hasOwnProperty("type")&&"function"==typeof this[a.type]&&(this.varname||a.label)},cleanUp:function(a,b){var c,d,e,g,j=this.cleanUpRE;if(!a)return a;if(j){d=b&&b.decimal?b.decimal:f.defaultDecimal;e=b&&b.thousands?b.thousands:f.defaultThousands;if(d!==h||e!==i){g=d+e;j=r[g];if(void 0===j){j=new RegExp("(-?(?:[1-9][\\d"+e+"]*)?[0-9](?:\\"+d+"\\d+)?)");r[g]=j}}c=a.match(j);if(c&&c.length>1){a=c[1];j=s[e];if(void 0===j){j=new RegExp("\\"+e,"g");s[e]=j}a=a.replace(j,"");d!==h&&(a=a.replace(d,h));return a}return""}return a.replace(this.sanitizeRE,"")},isValidObjectMember:function(a,b){return null!==a&&("object"==typeof a||(!("function"!=typeof a||!a.hasOwnProperty(b))||!("string"!=typeof a||!a.hasOwnProperty(b))))},extractFromDOMElement:function(a,b){var c,d,e="";if(f.pci&&this.hasSensitiveData(a)){BOOMR.appendVar("pci.redacted",b.label);return!1}null===a||!a.nodeName||"INPUT"!==a.nodeName.toUpperCase()&&"TEXTAREA"!==a.nodeName.toUpperCase()&&"SELECT"!==a.nodeName.toUpperCase()?null!==a&&(e=a.textContent||a.innerText):("checkbox"!==a.type.toLowerCase()&&"radio"!==a.type.toLowerCase()||a.checked)&&(e=a.value);if(f.pci&&this.isSensitiveData(e)){BOOMR.appendVar("pci.redacted",b.label);return!1}if(b.match&&"numeric"!==b.match){if("boolean"===b.match)e=1;else if(b.match.match(/^regex:/)){c=b.match.match(/^regex:(.*)/);if(!c||c.length<2)return!1;try{d=new RegExp(c[1],"i");d.test(e)&&(e=1)}catch(g){BOOMR.debug("Bad pattern: "+b.match,"PageVars");BOOMR.debug(g,"PageVars");BOOMR.addError(g,"PageVars.URLPatternType",b.match);return!1}}}else e=this.cleanUp(e,b);return e},hasSensitiveData:function(a){var b;if(!a)return!1;if(a.nodeName&&("INPUT"===a.nodeName.toUpperCase()||"TEXTAREA"===a.nodeName.toUpperCase()||"SELECT"===a.nodeName.toUpperCase())){var c=a.autocomplete||a.getAttribute("autocomplete");if(c&&c.length){c=c.toLowerCase();if(m[c])return!0;for(b=0;b0});if(!e||0===e.length)return!1;f=h[e.shift()];try{for(;e.length&&this.isValidObjectMember(f,e[0]);){BOOMR.debug("looking at "+e[0],"PageVars");h=f;f=f[e.shift()]}}catch(i){BOOMR.addError(i,"PageVars.extractJavaScriptVariable",a+"::"+e.join("."));return!1}if(0!==e.length)return!1;if("function"==typeof f)try{f=f.call(h,this.varname)}catch(i){BOOMR.addError(i,"PageVars.extractJavaScriptVariable",a+"()");return!1}if(void 0===f||"object"==typeof f&&null!==f)return!1;BOOMR.debug("final value: "+f,"PageVars");if(!c||"boolean"!==c.match){f=this.cleanUp(String(f),c);return this.apply(f)}if("string"==typeof f){f=f.replace(/^\s+|\s+$/g,"").toLowerCase();if("0"!==f&&"false"!==f&&f)return this.apply(1)}else if(f)return this.apply(1)},URLPattern:function(a){var b;if(!a.parameter2)return!1;BOOMR.debug("Got URL Pattern: "+a.parameter1+", "+a.parameter2,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;b=BOOMR.utils.getQueryParamValue(a.parameter2,c);if(b){BOOMR.debug("final value: "+b,"PageVars");b=this.cleanUp(b);return this.apply(b)}},URLSubstringEndOfText:function(a){return this.URLSubstringTrailingText(a)},URLSubstringTrailingText:function(a){if(!a.parameter1)return!1;BOOMR.debug("Got URL Substring: "+a.parameter1+", "+a.parameter2,"PageVars");return this.handleRegEx("^"+a.parameter1.replace(/([.+?\^=!:${}()|\[\]\/\\])/g,"\\$1").replace(/([^\.])\*/g,"$1.*?").replace(/^\*/,".*")+"(.*)"+(a.parameter2||"").replace(/([.+?\^=!:${}()|\[\]\/\\])/g,"\\$1").replace(/([^\.])\*/g,"$1.*")+"$","$1",c.href)},UserAgentRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,navigator.userAgent)},CookieRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,a.cookieName?BOOMR.utils.getCookie(a.cookieName):d.cookie)},URLRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,c.href)},Regexp:function(a,b){var d;b&&"string"==typeof b&&(d=b.match("http(|s)://"));return d&&d.length>0?this._Regex(null,a.parameter1,a.parameter2,b):this._Regex(null,a.parameter1,a.parameter2,c.href)},_Regex:function(a,b,c,d){if(!b||!c)return!1;if(!this.checkURLPattern(a))return!1;BOOMR.debug("Got RegEx: "+a+", "+b+", "+c,"PageVars");return this.handleRegEx(b,c,d)},URLPatternType:function(a){var b;BOOMR.debug("Got URLPatternType: "+a.parameter1+", "+a.parameter2,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;if(!a.parameter1||a.parameter2||a.queryselector)if(a.queryselector){b=this.runQuerySelector(a.queryselector);if(!b)return!1;b=this.extractFromDOMElement(b,a)}else{if(!a.parameter2)return!1;b=this.runXPath(a.parameter2);if(!b)return!1;b=this.extractFromDOMElement(b,a)}else b="1";BOOMR.debug("Final value: "+b,"PageVars");return this.apply(b)},ResourceTiming:function(a){var b,c,d,g,h,i;if(!a.parameter2&&!a.url&&!a.queryselector)return!1;if(!a.start||!a.end&&"*"!==a.start)return!1;if(!e||!e.getEntriesByName){BOOMR.debug("This browser does not support ResourceTiming","PageVars");return!1}BOOMR.debug("Got ResourceTiming: "+a.parameter1+", "+a.parameter2+", "+a.url,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;"slowest"===a.parameter2||"slowest"===a.url?c="slowest":a.url?c=a.url:a.parameter2?b=this.runXPath(a.parameter2):a.queryselector&&(b=this.runQuerySelector(a.queryselector));if(b)c=b.src||b.href;else if(!c)return!1;d=this.findResource(c,null,f.deltaFromNavStart);if(!d){BOOMR.debug("No resource matched","PageVars");f.mayRetry.push({handler:this,data:a});return!1}"slowest"===c&&BOOMR.addVar("dom.res.slowest",d.name);if("*"===a.start){for(i in d)d.hasOwnProperty(i)&&i.match(/(Start|End)$/)&&d[i]>0&&BOOMR.addVar(this.varname+"."+i.replace(/^(...).*(St|En).*$/,"$1$2"),Math.round(d[i]));return this.apply(d.duration)}if(a.relative_to_nt||"navigationStart"===a.start)g=f.deltaFromNavStart;else{g=parseFloat(d[a.start],10);if(!isNaN(g)&&0===g){BOOMR.debug("Start was 0 (not supported on this resource)","PageVars");return!1}}h=parseFloat(d[a.end],10);if(isNaN(g)||isNaN(h)){BOOMR.debug("Start or end were not numeric: "+g+", "+h,"PageVars");return!1}if(0===h){BOOMR.debug("End was 0 (not supported on this resource)","PageVars");return!1}BOOMR.debug("Final values: ns:"+f.deltaFromNavStart+", st:"+g+", en:"+h,"PageVars");BOOMR.addVar(this.varname+"_st",Math.round(g-f.deltaFromNavStart));return this.apply(h-g)},findResource:function(a,b,c){var d=this.findResources(a,b,c,1);return null===d?null:d&&d.length>0?d[0]:null},getFrameResources:function(a,b){try{a.location&&a.location.href;return"performance"in a&&a.performance&&a.performance.getEntriesByName&&a.performance.getEntriesByType?b?a.performance.getEntriesByName(b):a.performance.getEntriesByType("resource"):null}catch(c){if(BOOMR.isCrossOriginError(c))return null;try{if("TypeError"===c.name&&"Invalid calling object"===c.message&&a.document.location.pathname.match(/\.pdf$/))return null}catch(d){}BOOMR.addError(c,"PageVars.getFrameResources");return null}},findResources:function(c,d,e,f){var g,h,i,j,k,l,m,n=[];d||(d=b);e||(e=0);if("slowest"!==c){i=this.getFrameResources(d,c);if(null===i)return null;if(i&&i.length>0)for(g=0;g0)for(g=0;gh.duration)&&(h=i[g]);else if(i[g].name&&this.checkURLPattern(c,i[g].name,!1)){n.push(i[g]);if(f&&n.length===f)return n}}if(d.frames){k=a(d);for(j=0;jh.duration)&&(h=l[g]);else{n.push(l[g]);if(f&&n.length===f)return n}}}}return h?[h]:n},UserTiming:function(a){var b,c;if(!a.parameter2)return!1;if(!e||"function"!=typeof e.getEntriesByType){BOOMR.debug("This browser does not support UserTiming","PageVars");return!1}if(!this.checkURLPattern(a.parameter1))return!1;b=e.getEntriesByType("mark");for(c=0;b&&c0){if(a.value[c].on&&a.value[c].on.length>0&&(BOOMR.utils.inArray(h,a.value[c].on)||"init"===h&&BOOMR.utils.inArray("onload",a.value[c].on)))for(var l in a.value[c].resources)a.value[c].resources.hasOwnProperty(l)&&k.push(a.value[c].resources[l]);break}if(0===k.length)return null;this.resourceSet=k;d=BOOMR.getPerformance() ;d&&"function"==typeof d.getEntriesByName&&"function"==typeof d.getEntriesByType&&(this.RTSupport=!0);this.MOSupport=BOOMR.utils.isMutationObserverSupported();this.eventsrc=h;if(this.RTSupport)for(e=0;e=k)clearInterval(e);else{g.traverseElements(d,a);f+=BOOMR.now()-h;h=BOOMR.now()}}var c=this.resourceSet[a],d=this.getNode(a),e=null,f=0,g=this,h=BOOMR.now(),i=0,j=null;"resource"===c.type&&(d=BOOMR.window.document.body);if((!d||null===d)&&BOOMR.window.document.body){this.resourceSet[a].found=!1;this.resourceSet[a].fallback=!0;d=BOOMR.window.document.body}if(BOOMR.window.document.body!==d||null!==d){if(d&&d.length>0){this.resourceSet[a].found=!0;for(i=0;i0){for(e=0;e0){g=d.addedNodes;for(h=0;h0){c=this.getNode(b);this.RTSupport&&this.refreshResourceGroupTimings(this.lookupResources(b),b);for(f=0;f0&&!g[0][k]&&"resource"!==f.type)for(i=0;i0&&(this.resourceSet[a].found=!0);return g}return h},refreshResourceGroupTimings:function(a,b){if(a&&a.length>0){for(var c=0;c0)return b}break;default:return null}},getStartTime:function(a){var b=this.resourceSet[a],c="fetchStart";b.start&&(c=b.start);return c},updateResourceGroupDelta:function(a,b){var c,d=this.getStartTime(b);if(a){c=a.responseEnd;if(!c){BOOMR.debug("Tried to update ResourceGroup delta with unfinished resource! Using now as responseEnd","PageVars.ResourceGroup");c=BOOMR.hrNow()}"navigationStart"!==d?(!this.resourceTime.start||this.resourceTime.start>a[d])&&(this.resourceTime.start=a[d]):this.resourceTime.start=f.deltaFromNavStart;(!this.resourceTime.stop||this.resourceTime.stop0){d.resourceSet[b].found=!0;d.refreshResourceGroupTimings(c,b)}}else d.refreshResourceGroupTimings(d.findResources(d.getNodeURL(f)),b);else{g=d.getNodeURL(f);if("resource"===e.type&&g&&d.checkURLPattern(e.value,g)){f._bmr_rg.responseEnd=f._bmr_rg.responseEnd||BOOMR.hrNow();d.updateResourceGroupDelta(f._bmr_rg,b)}else if(f._bmr_rg&&f._bmr_rg.responseEnd&&f._bmr_rg[h])d.updateResourceGroupDelta(f._bmr_rg,b);else{f._bmr_rg.responseEnd=f._bmr_rg.responseEnd||BOOMR.hrNow();d.updateResourceGroupDelta(f._bmr_rg,b)}}d.applyTimedResources()}var d=this,e=this.resourceSet[b];a.complete?c({target:a}):a.addEventListener?a.addEventListener("load",c):a.attachEvent&&a.attachEvent("onload",c)}};BOOMR.utils.runXPath=g.prototype.runXPath;BOOMR.utils.runQuerySelector=g.prototype.runQuerySelector;g.prototype.XPath=g.prototype.URLPatternType;g.prototype.URLQueryParam=g.prototype.URLPattern;f={pageGroups:[],abTests:[],customTimers:[],customMetrics:[],customDimensions:[],xhrPageGroups:[],resourceGroupHandlers:{},complete:!1,initialized:!1,configReceived:!1,rerunAfterConfig:!1,unloadFired:!1,onloadfired:!1,defaultDecimal:h,defaultThousands:i,hasXhrOn:!1,hasXhrIgnore:!1,autorun:!0,pci:!1,pciBlacklist:[],pciBlacklistQueried:!1,pciBlacklistMatch:[],beaconQueue:[],mayRetry:[],deltaFromNavStart:0,matchPageGroupList:function(a,b,c){var d,e=0;for(e=0;e0)for(h=0;h-1||f.pageGroups[h].ignore){f.xhrPageGroups.push(f.pageGroups[h]);f.hasXhrOn=!0;f.pageGroups[h].ignore&&(f.hasXhrIgnore=!0);if(f.pageGroups[h].on&&1===f.pageGroups[h].on.length||f.pageGroups[h].ignore)continue}i.push(f.pageGroups[h])}f.pageGroups=i;void 0!==a.autorun&&(f.autorun=a.autorun);f.pci&&BOOMR.addVar("pci",1);if(f.initialized){f.configReceived=!0;f.initResourceGroupHandlers("init");for(var j=0;j0&&f.retry();return f.configReceived||f.unloadFired},readyToSend:function(){return f.configReceived||f.unloadFired}}}}();!function(){function a(a){BOOMR.debug("(url: "+BOOMR.window.location.href+"): "+a,"IFrameDelay")}if(!BOOMR.plugins.IFrameDelay){var b={registerParent:!1,monitoredCount:0,finishedCount:0,runningCount:0,messages:{start:"boomrIframeLoading",done:"boomrIframeLoaded"},checkRunningFrames:function(){setTimeout(function(){if(b.monitoredCount!==b.runningCount){a("monitoredCount("+b.monitoredCount+") did not match registered running count("+b.runningCount+")");b.monitoredCount=b.runningCount;b.checkCompleteness()}},50)},onIFrameMessage:function(c){a("Received message: '"+c.data+"' from child IFrame");if(c&&c.data&&"string"==typeof c.data){c.data===b.messages.start&&(b.runningCount+=1);if(c.data===b.messages.done){b.runningCount-=1;b.finishedCount+=1;b.checkCompleteness()}}},checkCompleteness:function(){if(b.is_complete()){BOOMR.addVar("ifdl.done",BOOMR.now());BOOMR.addVar("ifdl.ct",b.finishedCount);BOOMR.addVar("ifdl.r",b.runningCount);BOOMR.addVar("ifdl.mon",b.monitoredCount);BOOMR.page_ready()}},is_complete:function(){return!(b.enabled&&!b.registerParent)||b.finishedCount===b.monitoredCount&&0===b.runningCount}};BOOMR.plugins.IFrameDelay={init:function(c){BOOMR.utils.pluginConfig(b,c,"IFrameDelay",["enabled","registerParent","monitoredCount"]);if(BOOMR.utils.hasPostMessageSupport())if(b.registerParent){a("Found registerParent=true, trying to notify parent window");BOOMR.window.parent.postMessage(b.messages.start,"*");BOOMR.subscribe("page_load_beacon",function(a){BOOMR.window.parent.postMessage(b.messages.done,"*")})}else if(!b.registerParent&&b.monitoredCount&&b.monitoredCount>0){BOOMR.utils.addListener(BOOMR.window,"message",b.onIFrameMessage);BOOMR.attach_page_ready(b.checkRunningFrames)}else{a("Missing configuration. Setting monitored, finished and running to 0 and closing this plugin");b.finishedCount=b.monitoredCount=b.runningCount=0}},is_complete:function(){return b.is_complete()}}}}();!function(){function a(a){BOOMR.debug(a,"AutoXHR")}function b(a){if(!a)return null;a.href=a.href;var b=a.pathname;"/"!==b.charAt(0)&&(b="/"+b);return b}function c(a){if(a.href){if(a.href.match(/^(about:|javascript:|data:)/i))return!0;if(0===a.href.indexOf(BOOMR.getBeaconURL()))return!0}return BOOMR.xhr_excludes.hasOwnProperty(a.href)||BOOMR.xhr_excludes.hasOwnProperty(a.hostname)||BOOMR.xhr_excludes.hasOwnProperty(b(a))}function d(){this.watch=0;this.timer=null;this.pending_events=[];this.lastSpaLocation=null}function e(){BOOMR.subscribe("click",function(){if(!n){var a={timing:{},initiator:"click"};if(BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest!==BOOMR.window.XMLHttpRequest){a.timing.requestStart=BOOMR.now();k.addEvent(a)}}})}function f(){if(!BOOMR.proxy_XMLHttpRequest||BOOMR.proxy_XMLHttpRequest!==BOOMR.window.XMLHttpRequest)if(BOOMR.proxy_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest===BOOMR.window.XMLHttpRequest){BOOMR.window.XMLHttpRequest=BOOMR.proxy_XMLHttpRequest;d.start()}else{BOOMR.orig_XMLHttpRequest=BOOMR.window.orig_XMLHttpRequest||BOOMR.window.XMLHttpRequest;d.start();e();BOOMR.proxy_XMLHttpRequest=function(){var a,b,c,d={timing:{},initiator:"xhr"},e=!1,f=!1;a=new BOOMR.orig_XMLHttpRequest;b=a.open;c=a.send;a.open=function(c,g,h){function loadFinished(){var a,b,c,e,f=!1,g=BOOMR.now();if(!d.timing.loadEventEnd){d.status&&BOOMR.fireEvent("xhr_error",d);d.timing.loadEventEnd=g;a=BOOMR.getResourceTiming(d.url,function(a,b){return a.responseEnd-b.responseEnd});if(a){b=BOOMR.getPerformance().timing.navigationStart;d.timing.loadEventEnd=BOOMR.now();c=Math.floor(b+a.startTime);if(d.timing.requestStart-c>=2)f=!1;else{if(0!==a.responseEnd){e=Math.floor(b+a.responseEnd);if(e<=d.timing.loadEventEnd){d.timing.responseEnd=e;f=!0;d.restiming=a}}if(f){d.timing.requestStart=c;d.timing.fetchStart=c;0!==a.responseStart&&(d.timing.responseStart=Math.floor(b+a.responseStart))}}}d.index>-1?k.load_finished(d.index,d.timing.responseEnd):m.alwaysSendXhr?k.sendResource(d):n&&!o||k.addEvent(d)}}function i(b,c){a.addEventListener(b,function(){if("readystatechange"===b){d.timing[p[a.readyState]]=BOOMR.now();if(4===a.readyState&&0!==a.status){(a.status<200||a.status>=400)&&(d.status=a.status);d.response={text:""===a.responseType||"text"===a.responseType?a.responseText:null,xml:""===a.responseType||"document"===a.responseType?a.responseXML:null,raw:a.response,json:a.responseJSON};loadFinished()}}else{d.status=void 0===c?a.status:c;loadFinished()}},!1)}l.href=g;if(m.excludeFilter(l)){f=!0;BOOMR.debug("Exclude found for resource: "+l.href+" Skipping instrumentation!","AutoXHR");return b.apply(a,arguments)}f=!1;void 0===h&&(h=!0);BOOMR.fireEvent("xhr_init","xhr");if(!e){h&&i("readystatechange");i("load");i("timeout",r);i("error",t);i("abort",s)}d.url=l.href;d.method=c;delete d.status;h||(d.synchronous=!0);e=!0;try{return b.apply(a,arguments)}catch(j){d.status=u;loadFinished();throw j}};a.send=function(b){if(f)return c.apply(a,arguments);a.resource.requestPayload=b;BOOMR.fireEvent("xhr_send",a);d.timing.requestStart=BOOMR.now();n&&k.watch&&!m.alwaysSendXhr&&k.add_event_resource(d);return void 0===d.status||d.status!==u?c.apply(a,arguments):void 0};a.resource=d;return a};BOOMR.proxy_XMLHttpRequest.UNSENT=0;BOOMR.proxy_XMLHttpRequest.OPENED=1;BOOMR.proxy_XMLHttpRequest.HEADERS_RECEIVED=2;BOOMR.proxy_XMLHttpRequest.LOADING=3;BOOMR.proxy_XMLHttpRequest.DONE=4;BOOMR.proxy_XMLHttpRequest.prototype=BOOMR.orig_XMLHttpRequest.prototype;BOOMR.window.XMLHttpRequest=BOOMR.proxy_XMLHttpRequest}}function g(){BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest!==BOOMR.window.XMLHttpRequest&&(BOOMR.window.XMLHttpRequest=BOOMR.orig_XMLHttpRequest)}function h(a){a.initiator="xhr";BOOMR.responseEnd(a)}var i,j,k,l,m,n=!1,o=!1,p=["uninitialized","open","responseStart","domInteractive","responseEnd"],q=1e3,r=-1001,s=-999,t=-998,u=-997,v=["xmlhttprequest","script"];if(!BOOMR.plugins.AutoXHR){i=BOOMR.window;if(i&&i.XMLHttpRequest&&(new i.XMLHttpRequest).addEventListener){d.stop=function(){d.pause();d.observer=null};d.pause=function(){if(d.observer&&d.observer.observer&&!d.isPaused){d.isPaused=!0;d.observer.observer.disconnect()}};d.resume=function(){if(d.observer&&d.observer.observer&&d.isPaused){d.isPaused=!1;d.observer.observer.observe(j,d.observer.config)}};d.start=function(){if(!d.observer){var a={childList:!0,attributes:!0,subtree:!0,attributeFilter:["src","href"]};d.observer=BOOMR.utils.addObserver(j,a,null,k.mutation_cb,null,k);if(d.observer){d.observer.config=a;BOOMR.subscribe("page_unload",d.stop,null,d)}}};d.prototype.addEvent=function(a){var b,c,e,f={type:a.initiator,resource:a,nodes_to_wait:0,total_nodes:0,resources:[],complete:!1},g=this.pending_events.length;for(b=g-1;b>=0;b--)if(this.pending_events[b]&&!this.pending_events[b].complete){c=this.pending_events[b];e=b;break}if(c)if("click"===c.type)0!==c.nodes_to_wait&&c.resource.url||(this.pending_events[b]=void 0);else if("xhr"===c.type){if("click"===f.type)return null}else if(BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)){if("xhr"===f.type)return null;if(BOOMR.utils.inArray(f.type,BOOMR.constants.BEACON_TYPE_SPAS)){BOOMR.debug("Aborting previous SPA navigation");c.resource.timing.loadEventEnd=BOOMR.now();c.aborted=!0;this.sendEvent(e)}}this.watch++;this.pending_events.push(f);if(d.observer){BOOMR.utils.inArray(f.type,BOOMR.constants.BEACON_TYPE_SPAS)?this.setTimeout(q,g):this.setTimeout(50,g);return g}if(BOOMR.utils.inArray(f.type,BOOMR.constants.BEACON_TYPE_SPAS)){d.start();this.setTimeout(q,g);return g}a.url&&a.timing.loadEventEnd&&this.sendEvent(g);return null};d.prototype.sendEvent=function(b){var c=this.pending_events[b],d=this,e=BOOMR.now();if(c&&!c.complete){this.clearTimeout();if(BOOMR.readyToSend()){c.complete=!0;this.watch--;c.resource.resources=c.resources;BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)&&(c.resource.url=j.URL);if("spa"===c.type&&0===c.total_nodes&&c.resource.url===d.lastSpaLocation){a("SPA beacon cancelled, no URL change or resources triggered");this.pending_events[b]=void 0;return}if(BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)){d.lastSpaLocation=c.resource.url;c.forced||0!==c.total_nodes||(c.resource.timing.loadEventEnd=e-q)}this.sendResource(c.resource,b)}else setTimeout(function(){d.sendEvent(b)},500)}};d.prototype.sendResource=function(a,b){var c=this,d=c.pending_events[b],e=a.timing?a.timing.requestStart:void 0,f=function(d,f){d&&(a.timing.loadEventEnd=f||BOOMR.now());BOOMR.real_sendBeacon();a.onComplete&&a.onComplete(a);if(BOOMR.plugins.ResourceTiming&&BOOMR.plugins.ResourceTiming.is_enabled()&&a.timing&&a.timing.requestStart){var g=BOOMR.plugins.ResourceTiming.getCompressedResourceTiming(a.timing.requestStart,a.timing.loadEventEnd);BOOMR.plugins.ResourceTiming.addToBeacon(g)}if(BOOMR.utils.inArray(a.initiator,BOOMR.constants.BEACON_TYPE_SPAS)){c.calculateSpaTimings(a);if("number"==typeof b&&c.pending_events[b].aborted){BOOMR.addVar("pgu",j.URL);BOOMR.addVar("rt.quit","");BOOMR.addVar("rt.abld","");m.addedVars.push("pgu","rt.quit","rt.abld")}}BOOMR.responseEnd(a,e,a);"number"==typeof b&&(c.pending_events[b]=void 0)};if(a.wait)a.waitComplete=function(){f(!0)};else{if("spa_hard"===a.initiator&&(!d||!d.aborted)&&j&&j.readyState&&"complete"!==j.readyState){BOOMR.window.addEventListener("load",function(){var a=BOOMR.now();BOOMR.setImmediate(function(){f(!0,a)})});return}f(!1)}};d.prototype.calculateSpaTimings=function(a){var b=BOOMR.getPerformance();if(b&&b.timing)if("spa_hard"===a.initiator){a.timing.responseEnd=b.timing.responseStart;a.timing.fetchStart=b.timing.navigationStart}else{if(!BOOMR.plugins.ResourceTiming||!BOOMR.plugins.ResourceTiming.is_supported())return;var c=BOOMR.plugins.ResourceTiming.getFilteredResourceTiming(a.timing.requestStart,a.timing.loadEventEnd,m.spaBackEndResources).entries,d=Math.round(a.timing.loadEventEnd-a.timing.requestStart);if(!c||!c.length){a.timers={t_resp:0,t_page:d,t_done:d};return}for(var e=a.timing.loadEventEnd-b.timing.navigationStart,f=0;fe){c[f].responseStart=e;c[f].responseEnd=e}else c[f].responseEnd>e&&(c[f].responseEnd=e);var g=Math.round(BOOMR.plugins.ResourceTiming.calculateResourceTimingUnion(c)),h=d-g;if(g<0||d<0||h<0){BOOMR.addError("Incorrect SPA time calculation");return}a.timers={t_resp:g,t_page:h,t_done:d}}};d.prototype.setTimeout=function(a,b){var c=this;if(a){this.clearTimeout();this.timer=setTimeout(function(){c.timedout(b)},a)}};d.prototype.timedout=function(a){var b;this.clearTimeout();b=this.pending_events[a];if(b&&BOOMR.utils.inArray(b.type,BOOMR.constants.BEACON_TYPE_SPAS.concat("xhr")))0===b.nodes_to_wait&&this.sendEvent(a);else{this.watch>0&&this.watch--;this.pending_events[a]=void 0}};d.prototype.clearTimeout=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}};d.prototype.load_cb=function(a,b){var c,d,e=BOOMR.now();c=a.target||a.srcElement;if(c&&c._bmr){d=c._bmr.idx;b=void 0!==b?b:c._bmr.res||0;if(!c._bmr.end[b]){c._bmr.end[b]=e;this.load_finished(d,e)}}};d.prototype.load_finished=function(a,b){var c=this.pending_events[a];if(c){c.nodes_to_wait--;if(0===c.nodes_to_wait){c.resource.timing.loadEventEnd=b||BOOMR.now();BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)?this.setTimeout(q,a):this.sendEvent(a)}}};d.prototype.wait_for_node=function(a,b){var c,d,e,f,g,h,i=this,j=!1,k=!1;if(a.nodeName.toUpperCase().match(/^(IMG|SCRIPT|IFRAME|IMAGE)$/)||"LINK"===a.nodeName&&a.rel&&a.rel.match(/\/i)){a._bmr&&"number"==typeof a._bmr.res&&a._bmr.end[a._bmr.res]&&(k=!0);g=a.src||a.getAttribute("xlink:href")||a.href;if("IMG"===a.nodeName){if(a.naturalWidth&&!k)return!1;if(""===a.getAttribute("src"))return!1}if(!g||g.match(/^(about:|javascript:|data:)/i))return!1;c=this.pending_events[b];if(!c)return!1;h=c.resources.length;a._bmr||(a._bmr={end:{}});c.urls||(c.urls={});if(c.urls[g])return!1 ;if("SCRIPT"===a.nodeName&&n)return!1;if(!c.resource.url){l.href=g;if(m.excludeFilter(l)){BOOMR.debug("Exclude for "+l.href+" matched. Excluding","AutoXHR");return!1}c.resource.url=l.href}a._bmr.res=h;a._bmr.idx=b;delete a._bmr.end[h];a.addEventListener("load",function(a){i.load_cb(a,h)});a.addEventListener("error",function(a){i.load_cb(a,h)});c.nodes_to_wait++;this.clearTimeout();c.total_nodes++;c.resources.push(a);c.urls[g]=1;j=!0}else a.nodeType===Node.ELEMENT_NODE&&["IMAGE","IMG"].forEach(function(c){d=a.getElementsByTagName(c);if(d&&d.length)for(e=0,f=d.length;e0){BOOMR.removeVar(m.addedVars);m.addedVars=[]}}};BOOMR.plugins.AutoXHR={is_complete:function(){return!0},init:function(a){function b(a){if(a.length)for(d=0;d0)for(e=0;e50&&BOOMR.plugins.SPA.route_change.call(null,null,arguments);e=a;clearTimeout(f);f=!1}if(void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;a.$on("$routeChangeStart",function(a,e,f){if(c){b("$routeChangeStart: "+(e?e.templateUrl:""));h(a,e,f);g=!0}else d=!0});a.$on("$locationChangeStart",function(a,d){if(c){b("$locationChangeStart: "+d);BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),d]);g||(f=setTimeout(h,0))}});a.$on("$stateChangeStart",function(a,e,f,i,j){if(c){b("$stateChangeStart: "+e);h(a,e,f,i,j);g=!0}else d=!0});return!0}var b=!1,c=!0,d=!1,e=0,f=!1,g=!1;if(!BOOMR.plugins.Angular&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Angular");BOOMR.plugins.Angular={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){c=!1;return this},enable:function(){c=!0;if(b&&d){d=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){function b(a){BOOMR.debug(a,"backbone")}if(void 0===BOOMR.window.Backbone||void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;b("Startup");a.on("route",function(){if(c){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL]);b("route");BOOMR.plugins.SPA.route_change()}else d=!0});return!0}var b=!1,c=!0,d=!1;if(!BOOMR.plugins.Backbone&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Backbone");BOOMR.plugins.Backbone={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){c=!1;return this},enable:function(){c=!0;if(b&&d){d=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){function b(a){BOOMR.debug(a,"Ember")}function f(a){this._super(a);if(!d){e=!0;return!0}b("beforeModel");if(a&&a.intent&&a.intent.url){b("[beforeModel] LastLocation: "+a.intent.url);a.promise.then(function(){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL])})}if(!c){BOOMR.plugins.SPA.route_change();c=!0}return!0}function g(a){this._super(a);if(!d){e=!0;return!0}b("willTransition");if(a&&a.intent&&a.intent.url){b("[willTransition] LastLocation: "+a.intent.url);a.promise.then(function(){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL])})}if(!c){BOOMR.plugins.SPA.route_change();c=!0}return!0}function h(a){this._super(a);if(!d)return!0;b("didTransition");c=!1}if(void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;b("Startup");a.ApplicationRoute?a.ApplicationRoute.reopen({beforeModel:f,actions:{willTransition:g,didTransition:h}}):a.ApplicationRoute=BOOMR.window.Ember.Route.extend({beforeModel:f,actions:{willTransition:g,didTransition:h}});return!0}var b=!1,c=!1,d=!0,e=!1;if(!BOOMR.plugins.Ember&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Ember");BOOMR.plugins.Ember={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){d=!1;return this},enable:function(){d=!0;if(b&&e){e=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){BOOMR.debug(a,"History")}function b(){if(d.enabled){if(d.disableHardNav&&!BOOMR.onloadFired())return;if(d.routeChangeInProgress)a("routeChangeInProgress, not triggering");else{a("routeChange triggered, sending route_change() event");d.routeChangeInProgress=!0;BOOMR.plugins.SPA.route_change()}}else{a("Not enabled - we've missed a routeChange");d.hadMissedRouteChange=!0;d.routeChangeInProgress=!1}}function c(c){function e(a,b){d.routeChangeInProgress||(a&&b?BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),b]):a&&!b&&BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),a]))}c||(c=BOOMR.window.history);var f={listen:c.listen,transitionTo:c.transitionTo,pushState:c.pushState,setState:c.setState,replaceState:c.replaceState,go:c.go};c.setState=function(){a("setState");b();f.setState.apply(this,arguments)};c.listen=function(){a("listen");b();f.listen.apply(this,arguments)};c.transitionTo=function(){a("transitionTo");b();f.transitionTo.apply(this,arguments)};c.pushState=function(c,d,g){a("pushState");e(d,g);b();f.pushState.apply(this,arguments)};c.replaceState=function(c,d,g){a("replaceState");e(d,g);b();f.replaceState.apply(this,arguments)};c.go=function(){a("go");b();f.go.apply(this,arguments)};BOOMR.window.addEventListener("hashchange",function(c){a("hashchange");!d.routeChangeInProgress&&c&&BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),c.newURL]);b()});BOOMR.subscribe("beacon",function(){a("Beacon sending, resetting routeChangeInProgress.");d.routeChangeInProgress=!1});return!0}var d={auto:!1,enabled:!0,hooked:!1,routeHooked:!1,hadMissedRouteChange:!1,routeChangeInProgress:!1,disableHardNav:!1};if(!BOOMR.plugins.History&&void 0!==BOOMR.plugins.SPA&&void 0!==BOOMR.plugins.AutoXHR&&BOOMR.window&&BOOMR.window.history){BOOMR.plugins.SPA.register("History");BOOMR.plugins.History={is_complete:function(){return!0},hook:function(a,b,e){e=e||{};e.disableHardNav=d.disableHardNav;if(d.hooked)return this;if(c(a)){BOOMR.plugins.SPA.hook(b,e);d.hooked=!0}return this},init:function(a){BOOMR.utils.pluginConfig(d,a,"History",["auto","enabled","disableHardNav"]);d.auto&&d.enabled&&this.hook(void 0,!0,{})},disable:function(){d.enabled=!1;return this},enable:function(){d.enabled=!0;if(d.hooked&&d.hadMissedRouteChange){d.hadMissedRouteChange=!1;BOOMR.plugins.SPA.route_change();d.routeChangeInProgress=!0;a("Hooked and hadMissedRouteChange sending route_change!")}return this}}}}();!function(a){var b,c,d=1800;if(!BOOMR.plugins.RT){c={onloadfired:!1,unloadfired:!1,visiblefired:!1,initialized:!1,complete:!1,autorun:!0,timers:{},cookie:"RT",cookie_exp:604800,session_exp:d,strict_referrer:!0,navigationType:0,navigationStart:void 0,responseStart:void 0,loadTime:0,oboError:0,sessionHistory:[],t_start:void 0,cached_t_start:void 0,cached_xhr_start:void 0,t_fb_approx:void 0,r:void 0,r2:void 0,beacon_url:void 0,next_beacon_url:void 0,basic_timers:{t_done:1,t_resp:1,t_page:1},crossdomain_sending:!1,addedVars:[],updateCookie:function(a,b){var e,f,g,h;if(!this.cookie)return!1;g=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(this.cookie))||{};for(h in g)g.hasOwnProperty(h)&&(isNaN(parseInt(h,10))||delete g[h]);if("object"==typeof a)for(h in a)if(a.hasOwnProperty(h))if(void 0===a[h])g.hasOwnProperty(h)&&delete g[h];else{"nu"!==h&&"r"!==h||(a[h]=BOOMR.utils.hashQueryString(a[h],!0));g[h]=a[h]}g.dm=BOOMR.session.domain;g.si=BOOMR.session.ID;g.ss=BOOMR.session.start;g.sl=BOOMR.session.length;c.session_exp!==d&&(g.se=c.session_exp);BOOMR.session.rate_limited&&(g.rl=1);g.tt=this.loadTime;g.obo=this.oboError;this.sessionHistory&&(g.sh=this.sessionHistory.join(","));f=BOOMR.now();if(b){g[b]=f;c.lastActionTime=f}this.beacon_url&&(g.bcn=this.beacon_url);BOOMR.debug("Setting cookie (timer="+b+")\n"+BOOMR.utils.objectToString(g),"rt");if(!BOOMR.utils.setCookie(this.cookie,g,this.cookie_exp)){BOOMR.error("cannot set start cookie","rt");return!1}e=BOOMR.now();if(e-f>50){BOOMR.utils.removeCookie(this.cookie);BOOMR.error("took more than 50ms to set cookie... aborting: "+f+" -> "+e,"rt")}return!0},refreshSession:function(a){a||(a=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(this.cookie)));if(a){a.ss?BOOMR.session.start=parseInt(a.ss,10):BOOMR.session.start=BOOMR.t_lstart||BOOMR.t_start;a.si&&a.si.match(/-/)&&(BOOMR.session.ID=a.si);a.sl&&(BOOMR.session.length=parseInt(a.sl,10));a.tt&&a.tt.match(/\d/)&&(this.loadTime=parseInt(a.tt,10));a.obo&&(this.oboError=parseInt(a.obo,10)||0);a.dm&&!BOOMR.session.domain&&(BOOMR.session.domain=a.dm);a.se&&(c.session_exp=parseInt(a.se,10)||d);a.sh&&(c.sessionHistory=a.sh.split(","));a.bcn&&(this.beacon_url=a.bcn);a.rl&&"1"===a.rl&&(BOOMR.session.rate_limited=!0)}},maybeResetSession:function(a,b){BOOMR.debug("Current session meta:\n"+BOOMR.utils.objectToString(BOOMR.session),"rt");BOOMR.debug("Timers: t_start="+b+", sessionLoad="+c.loadTime+", sessionError="+c.oboError+", lastAction="+c.lastActionTime,"rt");var d=0;BOOMR.session.start&&BOOMR.session.length&&(d=(BOOMR.now()-BOOMR.session.start)/BOOMR.session.length);var e=1e3*c.session_exp;if(!BOOMR.session.start||b&&BOOMR.session.start>b||a-(c.lastActionTime||BOOMR.t_start)>e||d>e){BOOMR.session.start=b||BOOMR.t_lstart||BOOMR.t_start;BOOMR.session.length=0;BOOMR.session.rate_limited=!1;c.loadTime=0;c.oboError=0;c.beacon_url=c.next_beacon_url;c.lastActionTime=a;c.sessionHistory=[];c.updateCookie({rl:void 0,sl:BOOMR.session.length,ss:BOOMR.session.start,tt:c.loadTime,obo:c.oboError,bcn:c.beacon_url,sh:c.sessionHistory.join(",")})}BOOMR.debug("New session meta:\n"+BOOMR.utils.objectToString(BOOMR.session),"rt");BOOMR.debug("Timers: t_start="+b+", sessionLoad="+c.loadTime+", sessionError="+c.oboError,"rt")},initFromCookie:function(){var a,c;c=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(this.cookie));if(c){c.s=Math.max(+c.ld||0,Math.max(+c.ul||0,+c.cl||0));BOOMR.debug("Read from cookie "+BOOMR.utils.objectToString(c),"rt");if(c.s&&(c.r||c.nu)){this.r=c.r;a=BOOMR.utils.hashQueryString(b.URL,!0);BOOMR.debug(this.r+" =?= "+this.r2,"rt");BOOMR.debug(c.s+" c.s&&(this.t_fb_approx=parseInt(c.hd,10))}else this.t_start=this.t_fb_approx=void 0}c.s&&(this.lastActionTime=c.s);this.refreshSession(c);this.updateCookie({s:void 0,r:void 0,nu:void 0,ul:void 0,cl:void 0,hd:void 0,ld:void 0,rl:void 0});this.maybeResetSession(BOOMR.now())}},incrementSessionDetails:function(){BOOMR.debug("Incrementing Session Details... ","RT");BOOMR.session.length++;isNaN(c.timers.t_done.delta)?c.oboError++:c.loadTime+=c.timers.t_done.delta;c.sessionHistory.unshift(BOOMR.now()+"="+BOOMR.session.length+":"+c.oboError+":"+c.loadTime);c.sessionHistory.length>5&&(c.sessionHistory.length=5)},getBoomerangTimings:function(){function a(a,b){var c=Math.round(a||0),d=Math.round(b||0);c=0===c?0:c-d;return c||""}var b,d,e,f,g;if(BOOMR.t_start){BOOMR.plugins.RT.startTimer("boomerang",BOOMR.t_start);BOOMR.plugins.RT.endTimer("boomerang",BOOMR.t_end);BOOMR.plugins.RT.endTimer("boomr_fb",BOOMR.t_start);if(BOOMR.t_lstart){BOOMR.plugins.RT.endTimer("boomr_ld",BOOMR.t_lstart);BOOMR.plugins.RT.setTimer("boomr_lat",BOOMR.t_start-BOOMR.t_lstart)}}try{if(window&&"performance"in window&&window.performance&&"function"==typeof window.performance.getEntriesByName){d={"rt.bmr":BOOMR.url};d["rt.cnf"]=BOOMR.config_url;for(e in d)if(d.hasOwnProperty(e)&&d[e]){b=window.performance.getEntriesByName(d[e]);if(!b||0===b.length||!b[0])continue;b=b[0];f=a(b.startTime,0);g=[f,a(b.responseEnd,f),a(b.responseStart,f),a(b.requestStart,f),a(b.connectEnd,f),a(b.secureConnectionStart,f),a(b.connectStart,f),a(b.domainLookupEnd,f),a(b.domainLookupStart,f),a(b.redirectEnd,f),a(b.redirectStart,f)].join(",").replace(/,+$/,"");BOOMR.addVar(e,g);c.addedVars.push(e)}}}catch(h){BOOMR.addError(h,"rt.getBoomerangTimings")}},checkPreRender:function(){if("prerender"!==BOOMR.visibilityState())return!1;BOOMR.plugins.RT.startTimer("t_load",this.navigationStart);BOOMR.plugins.RT.endTimer("t_load");BOOMR.plugins.RT.startTimer("t_prerender",this.navigationStart);BOOMR.plugins.RT.startTimer("t_postrender");return!0},initFromNavTiming:function(){var b,c,d;if(!this.navigationStart){c=BOOMR.getPerformance();c&&c.navigation&&(this.navigationType=c.navigation.type);if(c&&c.timing)b=c.timing;else if(a.chrome&&a.chrome.csi&&a.chrome.csi().startE){b={navigationStart:a.chrome.csi().startE};d="csi"}else if(a.gtbExternal&&a.gtbExternal.startE()){b={navigationStart:a.gtbExternal.startE()};d="gtb"}if(b){BOOMR.addVar("rt.start",d||"navigation");this.navigationStart=b.navigationStart||b.fetchStart||void 0;this.fetchStart=b.fetchStart||void 0;this.responseStart=b.responseStart||void 0;navigator.userAgent.match(/Firefox\/[78]\./)&&(this.navigationStart=b.unloadEventStart||b.fetchStart||void 0)}else BOOMR.warn("This browser doesn't support the WebTiming API","rt")}},validateLoadTimestamp:function(a,b,c){var d;if(b&&b.timing&&b.timing.loadEventEnd)return b.timing.loadEventEnd;if(!("xhr"!==c||b&&BOOMR.utils.inArray(b.initiator,BOOMR.constants.BEACON_TYPE_SPAS)))return a;d=BOOMR.getPerformance();return d&&d.timing?d.timing.loadEventEnd?d.timing.loadEventEnd:a:BOOMR.t_onload||BOOMR.t_lstart||BOOMR.t_start||a},setPageLoadTimers:function(a,b,d){var e,f;if("xhr"!==a){c.initFromCookie();c.initFromNavTiming();if(c.checkPreRender())return!1}if("xhr"===a){if(d.timers)for(var g in d.timers)d.timers.hasOwnProperty(g)&&BOOMR.plugins.RT.setTimer(g,d.timers[g]);else if(d&&d.timing){f=d.timing.fetchStart;(void 0===f||d.timing.responseEnd>=f)&&(e=d.timing.responseEnd)}}else c.responseStart?c.responseStart>=c.navigationStart&&c.responseStart>=c.fetchStart&&(e=c.responseStart):c.timers.hasOwnProperty("t_page")?BOOMR.plugins.RT.endTimer("t_page"):c.t_fb_approx&&(e=c.t_fb_approx);if(e){f?BOOMR.plugins.RT.setTimer("t_resp",f,e):BOOMR.plugins.RT.endTimer("t_resp",e);"load"===a&&c.timers.t_load?BOOMR.plugins.RT.setTimer("t_page",c.timers.t_load.end-e):bc.oboError&&(c.oboError=a.RT.oboError);if(a.RT.loadTime&&!isNaN(a.RT.loadTime)&&a.RT.loadTime>c.loadTime){c.loadTime=a.RT.loadTime;isNaN(c.timers.t_done.delta)||(c.loadTime+=c.timers.t_done.delta)}}},domloaded:function(){BOOMR.plugins.RT.endTimer("t_domloaded")},clear:function(){BOOMR.removeVar("rt.start");if(c.addedVars&&c.addedVars.length>0){BOOMR.removeVar(c.addedVars);c.addedVars=[]}},spaNavigation:function(){c.onloadfired=!0}};BOOMR.plugins.RT={init:function(d){BOOMR.debug("init RT","rt");a!==BOOMR.window&&(a=BOOMR.window);d&&d.CrossDomain&&d.CrossDomain.sending&&(c.crossdomain_sending=!0);if(a&&a.document){b=a.document;BOOMR.utils.pluginConfig(c,d,"RT",["cookie","cookie_exp","session_exp","strict_referrer"]);d&&void 0!==d.autorun&&(c.autorun=d.autorun);if(d&&d.beacon_url){c.beacon_url&&!d.force_beacon_url||(c.beacon_url=d.beacon_url);c.next_beacon_url=d.beacon_url}void 0!==b&&(c.r=c.r2=BOOMR.utils.hashQueryString(b.referrer,!0));c.initFromCookie();if(c.initialized)return this;c.complete=!1;c.timers={};c.check_visibility();BOOMR.subscribe("page_ready",c.page_ready,null,c);BOOMR.subscribe("visibility_changed",c.check_visibility,null,c);BOOMR.subscribe("prerender_to_visible",c.prerenderToVisible,null,c);BOOMR.subscribe("page_ready",this.done,"load",this);BOOMR.subscribe("xhr_load",this.done,"xhr",this);BOOMR.subscribe("dom_loaded",c.domloaded,null,c);BOOMR.subscribe("page_unload",c.page_unload,null,c);BOOMR.subscribe("click",c.onclick,null,c);BOOMR.subscribe("form_submit",c.onsubmit,null,c);BOOMR.subscribe("before_beacon",this.addTimersToBeacon,"beacon",this);BOOMR.subscribe("beacon",c.clear,null,c);BOOMR.subscribe("error",c.markComplete,null,c);BOOMR.subscribe("config",c.onconfig,null,c);BOOMR.subscribe("spa_navigation",c.spaNavigation,null,c);BOOMR.subscribe("interaction",c.markComplete,null,c);BOOMR.getBeaconURL=function(){return c.beacon_url};c.initialized=!0;return this}},startTimer:function(a,b){if(a){"t_page"===a&&this.endTimer("t_resp",b);c.timers[a]={start:"number"==typeof b?b:BOOMR.now()}}return this},endTimer:function(a,b){if(a){c.timers[a]=c.timers[a]||{};void 0===c.timers[a].end&&(c.timers[a].end="number"==typeof b?b:BOOMR.now())}return this},clearTimer:function(a){a&&delete c.timers[a];return this},setTimer:function(a,b,d){a&&(c.timers[a]=void 0!==d?{start:b,end:d,delta:d-b}:{delta:b});return this},addTimersToBeacon:function(a,b){var d,e,f=[];for(d in c.timers)if(c.timers.hasOwnProperty(d)){e=c.timers[d];if("number"!=typeof e.delta){"number"!=typeof e.start&&(e.start="xhr"===b?c.cached_xhr_start:c.cached_t_start);e.delta=e.end-e.start}if(isNaN(e.delta))continue;if(c.basic_timers.hasOwnProperty(d)){BOOMR.addVar(d,e.delta);c.addedVars.push(d)}else f.push(d+"|"+e.delta)}if(f.length){BOOMR.addVar("t_other",f.join(","));c.addedVars.push("t_other")}if("beacon"===b){c.timers={};c.complete=!1}},done:function(a,b){BOOMR.debug("Called done: "+b,"rt");var d,e,f=BOOMR.now(),g=!1;c.complete=!1;e=c.validateLoadTimestamp(f,a,b);if(("load"===b||"visible"===b||"xhr"===b)&&!c.setPageLoadTimers(b,e,a))return this;("load"===b||"visible"===b||"xhr"===b&&a&&"spa_hard"===a.initiator)&&c.getBoomerangTimings();d=c.determineTStart(b,a);c.refreshSession();c.maybeResetSession(e,d);this.endTimer("t_done",e);a&&"xhr"===a.initiator&&this.setTimer("t_done",a.timing.requestStart,a.timing.loadEventEnd);BOOMR.removeVar("t_done","t_page","t_resp","t_postrender","t_prerender","t_load","t_other","rt.tstart","rt.nstart","rt.cstart","rt.bstart","rt.end","rt.subres","http.errno","http.method","xhr.sync","rt.ss","rt.sl","rt.tt","rt.lt");c.setSupportingTimestamps(d);this.addTimersToBeacon(null,b);BOOMR.setReferrer(c.r,c.r2);"xhr"===b&&a&&a&&a.data&&(a=a.data);if("xhr"===b&&a){g=a.subresource;if(a.url){BOOMR.addVar("u",BOOMR.utils.cleanupURL(a.url.replace(/#.*/,"")));c.addedVars.push("u")}a.status&&(a.status<-1||a.status>=400)&&BOOMR.addVar("http.errno",a.status);a.method&&"GET"!==a.method&&BOOMR.addVar("http.method",a.method);a.headers&&BOOMR.addVar("http.hdr",a.headers);a.synchronous&&BOOMR.addVar("xhr.sync",1);a.initiator&&BOOMR.addVar("http.initiator",a.initiator);c.addedVars.push("http.errno","http.method","http.hdr","xhr.sync","http.initiator")}if(g&&"passive"!==g){BOOMR.addVar("rt.subres",1);c.addedVars.push("rt.subres")}if("load"===b||"visible"===b||"xhr"===b&&!g||"unload"===b&&!c.onloadfired&&c.autorun&&!c.crossdomain_sending){c.incrementSessionDetails();c.updateCookie(null,"ld")}BOOMR.addVar({"rt.tt":c.loadTime,"rt.obo":c.oboError});c.addedVars.push("rt.tt","rt.obo");c.updateCookie();if("unload"===b){BOOMR.addVar("rt.quit","");if(!c.onloadfired){BOOMR.addVar("rt.abld","");c.addedVars.push("rt.abld")}c.visiblefired||BOOMR.addVar("rt.ntvu","")}c.complete=!0;BOOMR.sendBeacon(c.beacon_url);return this},is_complete:function(a){return c.complete||a&&"error"===a["http.initiator"]},updateCookie:function(){c.updateCookie()},getCookie:function(){var a;if(!c.cookie)return!1;a=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(c.cookie))||{};return a},incrementSessionDetails:function(){c.incrementSessionDetails()},navigationStart:function(){c.navigationStart||c.initFromNavTiming();return c.navigationStart}}}}(window);!function(){function a(a){BOOMR.debug(a,"CrossDomain")}if(!BOOMR.plugins.CrossDomain){var b=BOOMR.window;if(b){var c=BOOMR.window.document,d=864e5,e={enabled:!1,cross_domain_url:void 0,session_transferred:!1,debug:!1,iframe_name:"boomerang-cross-domain-session-fetch",iframe:void 0,sending:!1,session:{ID:void 0,start:void 0,length:void 0},session_transferred_time:0,plugin_start:0,session_transfer_timedout:!1,session_transfer_timeout:5e3,session_transfer_complete:!1,setup:function(a){var d=BOOMR.session;if(BOOMR.plugins.RT){var f=BOOMR.plugins.RT.getCookie();if(f){f.obo&&(d.obo=f.obo);f.tt&&(d.tt=f.tt)}}a=a+"#"+BOOMR.utils.objectToString(d,"&");c.body.appendChild(e.buildIFrame(a,e.iframe_name));b.addEventListener?b.addEventListener("message",e.onIFrameMessage):b.attachEvent("onmessage",e.onIFrameMessage)},onIFrameMessage:function(d){var f;if(b.JSON&&-1!==e.cross_domain_url.indexOf(d.origin)){try{f=b.JSON.parse(d.data)}catch(g){a("JSON parsing failed. exiting...");return}if(f){e.session={ID:f.si,start:parseInt(f.ss,10),length:parseInt(f.sl,10)};e.session_transferred_time=BOOMR.now();f.bcn?BOOMR.fireEvent("config",{beacon_url:f.bcn,RT:{oboError:f.obo?parseInt(f.obo,10):0,loadTime:f.tt?parseInt(f.tt,10):0}}):BOOMR.fireEvent("config",{beacon_url:BOOMR.getBeaconURL()});a("Session transferred at: "+e.session_transferred_time+" session data is: "+BOOMR.utils.objectToString(e.session));e.session_transferred=!0;BOOMR.sendBeacon();setTimeout(function(){e.debug||null===c.getElementById(e.iframe_name)||c.body.removeChild(c.getElementById(e.iframe_name))},0)}}},buildIFrame:function(b,d){var e;a("Adding IFrame!");try{e=c.createElement("