if (typeof tiMonitor == "undefined"){ var tiMonitor = tiMonitor || {}; (function(){Function.prototype.bind=Function.prototype.bind||function(a){var c=this;return function(){return c.apply(a,arguments)}}})();var EMPTY_FUN=function(){},UNDEF; (function(){function a(){}var c=null;try{c=function(){return this}()}catch(b){}a.global=function(){return c};a.namespace=function(b,d,f,h){b=b.split(".");var g=a.NAMESPACE_BASE||a.global(),m=null,k=null,g=f||g;for(f=0;fb;b++)c["abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*!-#$&+()@'%./:<>?[\"]^_`{|}~\\;=".charAt(b)]=b;taginspector.Define.clazz("taginspector.Cookie",a);a.cookieAlphabet="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ*!-#$&+()@'%./:<>?[\"]^_`{|}~\\;=";a.cookieAlphabetMap=c;a.decode=function(b){return decodeURIComponent(b)};a.encode=function(b){return encodeURIComponent(b)};a.set=function(b,d,c,h,g){if(c){var m=new Date; m.setTime(m.getTime()+864E5*c);c="; expires="+m.toGMTString()}else c="";g&&(b=a.encode(b),d=a.encode(d));b=b+"="+d+c+"; path=/;";h&&(b+=" domain="+h);document.cookie=b};a.get=function(b,c){for(var f=b+"=",h=document.cookie.split(";"),g=0;gb;b++)c["abcdefghijklmnopqrstuvwxyz0123456789'%./:<>?[".charAt(b)]=b;for(var e={},b=0;45>b;b++)e['ABCDEFGHIJKLMNOPQRSTUVWXYZ*!-+()@{|}"]^_`~$&#'.charAt(b)]=b;for(var d={},b=0;45>b;b++)d["abcdefghijklmnopqrstuvwxyz0123456789'%./:<>?[".charAt(b)]='ABCDEFGHIJKLMNOPQRSTUVWXYZ*!-+()@{|}"]^_`~$&#'.charAt(b);var f="abcdefghijklmnopqrstuvwxyz0123456789'%./:<>?[".split(""),h=f.length,g=new taginspector.compression.LZW({});taginspector.Define.clazz("taginspector.compression.Compressor", a);a.prototype.compress=function(b,a){for(var c=(a||g).encode(b),n=[],p=0;pl;e&&(l=-l);var s="",v=!0;do r=l%h,v?(s=d[f[r]],v=!1):s=f[r]+s,l=(l-r)/h;while(0?[".charAt(e[y]));r+=c[y]*Math.pow(h,f++)}l=r;d.push(l)}else n+=l}return(a||g).decode(d)};a.prototype.decompress=function(b,a){for(var c=[],n=0;n/g,">")};a.getUrl=function(){return document.location.href};a.getQueryParam=function(b){var c,l,d,e;c=a.getUrl();if(0fts&&(fts=0),fts.toString()):a};a.prototype.getPageCurrentTime=function(){return Date.now()};a.prototype.getPageStartTime=function(){return this.startTime}; a.prototype.isBeaconSupported=function(){return"sendBeacon"in navigator?!0:!1};a.prototype.getMaxBodySize=function(){isSendBeaconRequest=this.isBeaconSupported();return 5E3};a.prototype.createRequestBody=function(){for(var a={requestList:[]},b=0,e=this.getMaxBodySize(),d=0;0e&&0!=d)break;else a.requestList.push(this.pendingRequests.shift()),d+=1;else this.pendingRequests.shift()}return a}; a.prototype.createPixelRequest=function(a){reqPixel=new Image;reqPixel.src=this.pixelHost+"?"+a};a.prototype.createAjaxPostRequest=function(a){XMLHttpRequest.prototype.sendAsBinary||(XMLHttpRequest.prototype.sendAsBinary=function(b){for(var a=b.length,c=new Uint8Array(a),e=0;eMath.abs(currentTs-foundTag.startTime)&&(!1==newIdentifiedRequests.hasOwnProperty(a)&&(newIdentifiedRequests[a]=[]),newIdentifiedRequests[a].push(foundTag));this.identifiedRequests=newIdentifiedRequests}catch(b){console.log(b.message)}};a.prototype.sendRequests=function(a){if(!1==tiMonitor.dataCollector.currentlySendingData){tiMonitor.dataCollector.currentlySendingData=!0;for(base_req_data="pid="+this.pageId+"&sid="+this.siteID+"&purl="+encodeURIComponent(tiMonitor.sendData.currentUrl)+ "&pst="+encodeURIComponent(this.getPageStartTime())+"&pct="+encodeURIComponent(this.getPageCurrentTime())+"&sblf="+encodeURIComponent(tiMonitor.sendData.sampleblackListFlag)+"&sr="+encodeURIComponent(tiMonitor.sendData.sampleRate)+"&mts="+encodeURIComponent(this.getPageCurrentTime());0performance.now()- tiMonitor.dataCollector.offsetTime)||"DOM Load"==a.triggerTiming){try{if("resource"==b)if(!0==this.isValidResourceStartTime(this.adjustTimeForOffset(a.startTime)))reqName=a.name,req="rt="+b+"&ce="+encodeURIComponent(this.adjustTimeForOffset(a.connectEnd))+"&cs="+encodeURIComponent(this.adjustTimeForOffset(a.connectStart))+"&dle="+encodeURIComponent(this.adjustTimeForOffset(a.domainLookupEnd))+"&dls="+encodeURIComponent(this.adjustTimeForOffset(a.domainLookupStart))+"&d="+encodeURIComponent(a.duration.toFixed(2))+ "&et="+encodeURIComponent(a.entryType)+"&fs="+encodeURIComponent(this.adjustTimeForOffset(a.fetchStart))+"&it="+encodeURIComponent(a.initiatorType)+"&n="+encodeURIComponent(a.name)+"&rde="+encodeURIComponent(this.adjustTimeForOffset(a.redirectEnd))+"&rds="+encodeURIComponent(this.adjustTimeForOffset(a.redirectStart))+"&reqs="+encodeURIComponent(this.adjustTimeForOffset(a.requestStart))+"&rse="+encodeURIComponent(this.adjustTimeForOffset(a.responseEnd))+"&rss="+encodeURIComponent(this.adjustTimeForOffset(a.responseStart))+ "&scc=&st="+encodeURIComponent(this.adjustTimeForOffset(a.startTime))+"&sz="+encodeURIComponent(this.adjustTimeForOffset(a.decodedBodySize)),this.resourceCounter+=1;else return;else if("pageload"==b){dom_complete=dom_content_load=dom_interactive=page_size="";try{var e=performance.timing;0!=e.domInteractive&&(dom_interactive=e.domInteractive-e.fetchStart);0!=e.domContentLoadedEventEnd&&(dom_content_load=e.domContentLoadedEventEnd-e.fetchStart);0!=e.domComplete&&(dom_complete=e.domComplete-e.fetchStart)}catch(d){console.log(d.message)}conn_type= conn_downlink=conn_roundtrip=conn_downlinkMax=conn_effType="";req="rt="+b+"&ref=&top="+encodeURIComponent(this.timeOnPage())+"&domint="+encodeURIComponent(dom_interactive)+"&domcl="+encodeURIComponent(dom_content_load)+"&domcom="+encodeURIComponent(dom_complete)+"&condl="+encodeURIComponent(conn_downlink)+"&conrt="+encodeURIComponent(conn_roundtrip)+"&coneff="+encodeURIComponent(conn_effType)+"&psz="+ +encodeURIComponent(page_size)}else if("validationerror"==b&&!1==tiMonitor.sendData.preventFiringValidationRules)req= "rt="+b+"&fr="+encodeURIComponent(a.failedRule)+"&rv="+encodeURIComponent(a.ruleVersion)+"&pm="+encodeURIComponent(a.pageMacros)+"&fc="+encodeURIComponent(a.failedConditions)+"&vt="+encodeURIComponent(a.validationTime);else if("validationsuccess"==b&&!1==tiMonitor.sendData.preventFiringValidationRules)req="rt="+b+"&pr="+encodeURIComponent(a.passedRule)+"&rv="+encodeURIComponent(a.ruleVersion)+"&vt="+encodeURIComponent(a.validationTime);else if("jserror"==b)req="rt="+b+"&msg="+a.message;else if("pageBeforeUnload"== b){e=performance.timing;dom_interactive=e.domInteractive-e.fetchStart;dom_content_load=e.domContentLoadedEventEnd-e.fetchStart;dom_complete=e.domComplete-e.fetchStart;dom_content_load_end=e.domContentLoadedEventEnd;response_end=e.responseEnd;navigation_start=e.navigationStart;firstContentfulPaint=first_paint=timeToFirstPaint=void 0;if(window.performance){var f=window.performance.getEntriesByType("paint");void 0!=f&&0=n&&f.length>=q&&b.push([f,c]));return b=b.sort(function(b,a){return b[0].length===a[0].length?0:a[0].length>b[0].length?1:-1})}var h= taginspector.Define,g=taginspector.Cookie,m=[['","referrer":[{"url":"http://',"1-"],['","referrer":[{"url":"https://',"2-"],[',"referrer":[{"url":"http://',"3-"],[',"referrer":[{"url":"https://',"4-"],[',"sessionStartTime":',"5-"],['":{}}',"6-"],["www.google.com","7-"],["www.google.co.uk","8-"],["www.google.","9-"],['"landing":"',"Z"],['"landing":',"L"],['"time":',"A"],['"sessionStartTime":',"S"],['"pageViews":',"P"],['"sessionCount":',"B"],['"sessionLandingPage":',"E"],['"referrer":',"R"],['"url":"http://www.', "J"],['"url":"https://www.',"M"],['"url":"',"I"],['"url":',"U"],["http://www.","W"],["https://www.","V"],["%2Fen%2Ftsuk%2F","K"],["http%3A%2F%2Fwww","F"],["http%3A%2F%2F","D"],["http://","H"],["https://","X"],['""',"O"],['",',"Y"]],k=a(m);h.clazz("taginspector.datapulse.compression.Encoder",b);b.prototype.encode=function(b,a){for(var c=b.replace(/\*/g,"**"),g=0;gd.maxCookieLength&&5>h;)3<=g.referrer.length?g.referrer.splice(2,1): 2===g.referrer.length?g.referrer=[g.referrer[0]]:1===g.referrer.length&&(g.referrer=[]),m=JSON.stringify(g),h+=1;f.referrer=g.referrer;n&&a.rm(k);k=e.compress(m);a.rm(q);a.set(q,k,365,d.cookieDomain);f.setVariable=function(b,c,f){g.__v[b]=[c,f?f:0];b=e.compress(JSON.stringify(g));a.set(q,b,365,d.cookieDomain)};f.getCookie=function(b,c){var d=a.get(b);if(d&&(c||0===b.indexOf("x_")))try{d=e.decompress(d)}catch(f){}else d=a.decode(d);return d};f.getVariable=function(a){var b;if(a=g.__v[a])if(b=a[1], 0===b||b>(new Date).getTime())return a[0];return null};f.on=function(a,b,c){b.attachEvent?b.attachEvent("on"+a,c):b.addEventListener&&b.addEventListener(a,c,!1)};f.getTagCookie=function(){return b.readCompressedCookie(q)};return b.lastSession=f};b.referrerIsSameAsPrevious=function(a,e,h){var g,m;return 0e):!1};b.isReferrerDifferent=function(){var a,c;c=b.getReferrer();a=c.indexOf("://");if(-1=== a)return!0;try{return 0!==c.substring(a+3).indexOf(b.getDomain())?!0:!1}catch(e){return!0}};b.getReferrer=function(){return document.referrer?document.referrer.substring(0,300):"direct"};b.getDomain=function(){return document.location.host}})(); (function(){taginspector.datapulse.Utils.namespace("taginspector.datapulse.filter.pattern.PatternType",{CONTAINS:"Contains",MATCHES_EXACTLY:"Matches Exactly",STARTS_WITH:"Starts With",ENDS_WITH:"Ends With",REGULAR_EXPRESSION:"Regular Expression",ALL_URLS:"All URLs",EQUALS:"Equals",DOES_NOT_EQUAL:"Does not Equal",DOES_NOT_CONTAIN:"Does not Contain",DOES_NOT_STARTS_WITH:"Does not Start With",DOES_NOT_END_WITH:"Does not End With",MATCHES_REGEX:"Matches Regex",DOES_NOT_MATCH_REGEX:"Does not Match Regex", LESS_THAN:"Less Than",GREATER_THAN:"Greater Than"})})(); (function(){function a(c){this._lockObject={};var d={comparisonType:b.CONTAINS,sourceVariable:void 0,comparisonVariable:void 0};if(c)for(var f in c)c.hasOwnProperty(f)&&(d[f]=c[f]);a.superclass.call(this,d)}var c=taginspector.datapulse.Utils,b=taginspector.datapulse.filter.pattern.PatternType;c.clazz("taginspector.datapulse.filter.JsExpressionFilter",a,taginspector.datapulse.filter.BaseFilter);a.prototype.match=function(){var a=!0,d=this.config.sourceVariable.getValue();if("object"==typeof this.config.comparisonVariable)var f= this.config.comparisonVariable.getValue();else if("string"==typeof this.config.comparisonVariable||"number"==typeof this.config.comparisonVariable)f=this.config.comparisonVariable;else return!1;switch(this.config.comparisonType){case b.LESS_THAN:case b.GREATER_THAN:if(!1==c.isInt(f))return!1;f=parseInt(f)}switch(this.config.comparisonType){case b.DOES_NOT_CONTAIN:case b.CONTAINS:a=0<=d.toLowerCase().indexOf(f.toLowerCase());break;case b.EQUALS:case b.DOES_NOT_EQUAL:case b.MATCHES_EXACTLY:a=d.toLowerCase()=== f.toLowerCase();break;case b.STARTS_WITH:case b.DOES_NOT_STARTS_WITH:a=0===d.toLowerCase().indexOf(f.toLowerCase());break;case b.ENDS_WITH:case b.DOES_NOT_END_WITH:a=d.toLowerCase().substr(-f.length)===f.toLowerCase();break;case b.MATCHES_REGEX:case b.REGULAR_EXPRESSION:case b.DOES_NOT_MATCH_REGEX:a=(new RegExp(f,"iu")).test(d);break;case b.LESS_THAN:a=df;break;case b.ALL_variableValueS:a=!0}switch(this.config.comparisonType){case b.DOES_NOT_EQUAL:case b.DOES_NOT_CONTAIN:case b.DOES_NOT_STARTS_WITH:case b.DOES_NOT_END_WITH:case b.DOES_NOT_MATCH_REGEX:a= !a}return a}})(); (function(){function a(b){this._lockObject={};var e={uniqueId:"Macro-"+c++};if(b)for(var d in b)e[d]=b[d];this.reportValue=!1;b&&(this.uniqueId=b.uniqueId,this.reportValue=b.reportValue);this.valueSetTimestamp=0;this.isCachedValueSet=!1;this.cachedValue="";a.superclass.call(this,e)}var c=0;taginspector.datapulse.Utils.clazz("taginspector.datapulse.pagevariable.JsExpression",a,taginspector.datapulse.pagevariable.BaseVariable);a.prototype.getValue=function(){return!0==this.isCachedValueSet&&3>=performance.now()- this.valueSetTimestamp?this.cachedValue:this.value(!0)?(this.isCachedValueSet=!0,this.valueSetTimestamp=performance.now(),this.cachedValue=this.value(!0).toString()):""}})(); //version: v2.0 tiMonitor.dataCollector = new taginspector.datapulse.DataCollector({siteID:"5fa72f109fe511eca6d20a33479ee2ef", pixelHost:"https://collect.analyze.ly", tagDefinitions: [{id: '2527', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)aarp\\.go2cloud.org\\/)', 'i')},{id: '2667', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(autotrader|kbb)\\.com\\/pixall\\/v2\\/pageload)', 'i')},{id: '2808', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(autotrader|kbb)\\.com\\/pixall\\/pix-(at|kbb)\\.min\\.js)', 'i')},{id: '2809', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(autotrader)\\.com\\/pixall\\/v2\\/event)', 'i')},{id: '2526', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adobedtm\\.com([\\/a-zA-Z0-9]*)?\\/launch|\\/\\/([\\/a-zA-Z0-9].*)adobe([\\/a-zA-Z0-9].*)launch([\\/a-zA-Z0-9-].*)\\.js))|(grainger\\.com([\\/a-zA-Z0-9].*)adobe([\\/a-zA-Z0-9].*)launch([\\/a-zA-Z0-9-].*)\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)d1g3myji5lplsh\\.cloudfront\\.net)', 'i')},{id: '59', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)offermatica\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)tt\\.omtrdc\\.net\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adobetarget\\.com\\/.*\\/rules\\.json))|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)d4isvpgrs7dwu\\.cloudfront\\.net\\/adobetarget\\/)|(\\/mbox\\.js)|((\\/m[0-9]\\/(.*)\\/mbox\\/|target\\.nationwide\\.com))', 'i')},{id: '85', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)leadback\\.advertising\\.com\\/)', 'i')},{id: '139', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)atdmt\\.com\\/mstag\\/site\\/(.*)\\/(mstag\\.js|analytics\\.html))', 'i')},{id: '273', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)js\\.stormiq\\.com\\/[0-9]*\\.ct\\.js)', 'i')},{id: '384', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleadservices\\.com\\/pagead\\/conversion\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleadservices\\.com\\/pagead\\/conversion\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google\\.(.*)\\/pagead\\/1p-conversion\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleadservices\\.com\\/pagead\\/conversion_async\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com\\/.*id=(AW|aw)-)', 'i')},{id: '740', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)constantcontact\\.com\\/(.*)\\/safe_subscribe_logo\\.gif)', 'i')},{id: '882', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/urchin\\.js)', 'i')},{id: '1385', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)s3\\.amazonaws\\.com\\/searchdiscovery-satellite-production\\/|\\/satellitelib([a-zA-Z0-9-]*)\\.js)|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adobedtm\\.com([\\/a-zA-Z0-9]*)?\\/satelliteLib)', 'i')},{id: '1420', regex: new RegExp('(^http(s)?:\\/\\/ct\\.pinterest\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)pinimg.com\\/ct\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)log\\.pinterest\\.com\\/)', 'i')},{id: '1436', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)snap\\.licdn\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(dc|imp2|px).ads\\.linkedin\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)bizographics.com\\/insight\\.(min\\.)?js))|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)linkedin\\.com\\/px\\/li_sync)', 'i')},{id: '1473', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)yimg\\.com\\/wi\\/ytc\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)sp\\.analytics\\.yahoo\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)yimg\\.com\\/wi\\/config\\/.*\\.json)', 'i')},{id: '2532', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(demdex|omtrdc)\\.net\\/id\\?d_visid_ver)', 'i')},{id: '2547', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com(.*)(\\?|&).*id\\=(G|g)-)|((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(google-analytics|google)\\.com(\\/[a-z])?\\/collect\\?.*v=2(?:&|$)|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)stats\\.g\\.doubleclick\\.net(\\/[a-z])?\\/collect\\?v=2))', 'i')},{id: '294', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)doubleclick\\.net\\/activity)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(.*)fls\\.doubleclick\\.net\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adservice\\.google\\.com\\/ddm\\/fls\\/z\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)doubleclick\\.net\\/.*\\/rul\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com\\/.*id=(DC|dc)-)|(gtag\\/js\\?id\\=(DC|dc)-)', 'i')},{id: '401', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/siteopt\\.js)', 'i')},{id: '747', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)liveagentforsalesforce\\.com\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)salesforceliveagent\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)force\\.com\\/(.*)\\/(ChatInvite|LiveAgent))', 'i')},{id: '1406', regex: new RegExp('((^http(s)?:\\/\\/connect\\.facebook\\.net\\/(.*)\\/fbevents\\.js|^http(s)?:\\/\\/www\\.facebook\\.com\\/tr(\\/|\\?)|http(s)?:\\/\\/connect\\.facebook\\.net\\/signals\\/(config\\/|plugins\\/identity.js)|^http(s)?:\\/\\/facebook\\.com\\/(platform|common)\\/cavalry_endpoint\\.php)|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)facebook.com\\/privacy_sandbox\\/pixel\\/)', 'i')},{id: '2851', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|).*\\/g\\/collect\\?v=2\\&tid\\=\\.*)', 'i')},{id: '1393', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)platform\\.twitter\\.com\\/oct\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ads-twitter\\.com\\/(uwt|oct)\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)t\\.co\\/(.*\\/i|i)\\/adsct|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)analytics.twitter.com\\/i\\/adsct)', 'i')},{id: '1450', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/gtm\\/optimize\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/gtm\\/js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com.*(opt|OPT)-|googleoptimize\\.com))', 'i')},{id: '2924', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.])\\.|)graph\\.facebook\\.com\\/.*\\/events\\?access_token\\=)', 'i')},{id: '1480', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com\\/gtag\\/js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com\\/.*\\/service_worker\\/.*\\/sw_iframe)', 'i')},{id: '2889', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/privacy-sandbox\\/)', 'i')},{id: '396', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com\\/|\\?id=(gtm|GTM)-([a-zA-Z0-9]{4,10})))|(^donotmatch$)', 'i')},{id: '1', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com(\\/r)?\\/__utm\\.gif)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/u\\/ga\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/p\\/__utm\\.gif)|(\\/u\\/ga_debug\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/ga\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google\\.com\\/js\\/gweb\\/analytics\\/autotrack\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google\\.com\\/js\\/gweb\\/analytics\\/doubletrack\\.js)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/ga_exp\\.js)|((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/analytics\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com\\/plugins\\/ua\\/))|((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google-analytics\\.com(\\/[a-z])?\\/collect|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)stats\\.g\\.doubleclick\\.net(\\/[a-z])?\\/collect)|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googletagmanager\\.com(.*)(\\?|&).*id\\=(UA|ua)-)|((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)stats\\.g\\.doubleclick\\.net\\/dc\\.js|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)stats\\.g\\.doubleclick\\.net\\/__utm\\.gif))', 'i')},{id: '1397', regex: new RegExp('(^http(s)?:\\/\\/(.*)fls\\.doubleclick\\.net\\/(.*)type=visua0)', 'i')},{id: '2548', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)(googletagservices|doubleclick)\\.(com|net)(\\/tag\\/js\\/gpt\\.js|\\/gpt\\/|\\/gampad\\/ads)|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)tpc\\.googlesyndication\\.com\\/safeframe\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googlesyndication\\.com\\/pagead\\/show_companion_ad\\.js)', 'i')},{id: '2549', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleapis\\.com\\/adexchangebuyer\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adexchangebuyer\\.googleapis\\.com\\/)', 'i')},{id: '2550', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)cm\\.g\\.doubleclick\\.net\\/)', 'i')},{id: '291', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleads\\.g\\.doubleclick\\.net\\/pagead\\/viewthroughconversion)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google\\.com\\/ads\\/user-lists\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)google\\.com\\/pagead\\/landing)', 'i')},{id: '292', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)gan\\.doubleclick\\.net\\/)', 'i')},{id: '1458', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)bid\\.g\\.doubleclick\\.net\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)googleads\\.g\\.doubleclick\\.net\\/dbm\\/ad)', 'i')},{id: '296', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adx\\.g\\.doubleclick\\.net\\/)', 'i')},{id: '390', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)survey\\.g\\.doubleclick\\.net\\/)', 'i')},{id: '1398', regex: new RegExp('(^http(s)?:\\/\\/(ad\\.doubleclick\\.net\\/(.*)visualiqinc(.*)|((.*)\\.|)myvisualiq\\.net\\/))', 'i')},{id: '295', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)www\\.googletagservices\\.com\\/tag\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad-ace\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad\\.[a-z]*\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad-apac\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad-emea\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)pubads\\.g\\.doubleclick\\.net\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)securepubads\\.g\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)m\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ad-g\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)2mdn\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)static\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)iv\\.doubleclick\\.net\\/)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)cm\\.g\\.doubleclick\\.net\\/)|(^donotmatch$)|(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)g\\.doubleclick\\.net\\/)', 'i')},{id: '1312', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)ads\\.yahoo\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)analytics\\.yahoo\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)advertising\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adsonar\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)tacoda\\.net\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adtechus\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)adtech\\.de\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)atwola\\.com\\/)', 'i')},{id: '1427', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)bluecore\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)triggeredmail\\.appspot\\.com\\/))', 'i')},{id: '2205', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)go2cloud\\.org\\/)', 'i')},{id: '1446', regex: new RegExp('((^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)yieldify\\.com\\/|http(s)?:\\/\\/d33wq5gej88ld6\\.cloudfront\\.net\\/))', 'i')},{id: '1699', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)heapanalytics\\.com\\/)', 'i')},{id: '2601', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)tvpixel\\.com\\/)', 'i')},{id: '2718', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)cloudflareinsights\\.com\\/|^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)cdnjs\\.cloudflare\\.com\\/)', 'i')},{id: '2956', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)youtube\\.com\\/iframe_api)', 'i')},{id: '2940', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)s81c\\.com\\/cognitive-tooling-unified-chat\\/v1\\/webchat\\.bundle\\.js)', 'i')},{id: '2945', regex: new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9-\\.]*)\\.|)s81c\\.com\\/)', 'i')}]}); tiMonitor.sendData = { pageId: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);return v.toString(16);}), sentUnload: false, currentlyIterating: false, pageBeingSampled: true, externalTagStartTimes: [], internalTagStartTimes: [], currentUrl: window.location.href, minimumBeforeUnloadRestriction: 5, pageTitle: '', sampleRate: 7, sampleBlackList: new RegExp('.*'), sampleBlackListEnabled: false, sampleblackListFlag: false, createFakeReq: function(reqUrl){ fakeHit = { connectEnd: 0, connectStart: 0, decodedBodySize: 0, domainLookupEnd: 0, domainLookupStart: 0, duration: 0, entryType: "resource", fetchStart: 0, initiatorType: "script", name: "", redirectEnd: 0, redirectStart: 0, requestStart: 0, responseEnd: 0, responseStart: 0, startTime: 0 }; fetchStart = performance.now() fakeDuration = 10.47999999905005; fakeHit.fetchStart = fetchStart; fakeHit.startTime = fetchStart; fakeHit.duration = fakeDuration; fakeHit.responseEnd = fetchStart + fakeDuration; fakeHit.name = reqUrl + "&post=1"; tiMonitor.dataCollector.identifyRequest(fakeHit); tiMonitor.dataCollector.queueRequest(fakeHit, "resource"); }, isSinglePageApp: function(){ if(window.angular){ return true; }else{ return false; } }, isPerformanceObserverSupported: function(){ if(window.PerformanceObserver){ return true; }else{ return false; } }, isInIframe: function(){ try { return window.self !== window.top; } catch (e) { return true; } }, isPerformanceObserverInitialized: false, performanceObserverCallback: function(list){ if (tiMonitor.sendData.pageBeingSampled == false){ var perfEntries = list.getEntries(); for (var i = 0; i < perfEntries.length; i++){ var req = perfEntries[i]; if(tiMonitor.sendData.isValidRequest(req) == true){ tiMonitor.sendData.externalTagStartTimes.push(tiMonitor.sendData.getUniqueReqKey(req)); tiMonitor.dataCollector.queueRequest(req, "resource"); }else{ tiMonitor.sendData.internalTagStartTimes.push(tiMonitor.sendData.getUniqueReqKey(req)); } } tiMonitor.sendData.isPerformanceObserverInitialized=true; } }, suportedBrowser: function(){ var isSupported = true; ua = navigator.userAgent; var isNativeAndroid = ((ua.indexOf('Mozilla/5.0') > -1 && ua.indexOf('Android ') > -1 && ua.indexOf('AppleWebKit') > -1) && (ua.indexOf('Version') > -1)); var isIE = ((ua.indexOf('Trident') > -1) || (ua.indexOf('MSIE') > -1)); var perfMonSupport = false; var isEventSupported = false; if(typeof Event == "function"){ isEventSupported = true; } if ('performance' in window) { if ('getEntries' in performance) { perfMonSupport = true; } } if(isNativeAndroid == true || perfMonSupport == false || isIE == true || isEventSupported == false){ isSupported = false; } return isSupported; }, blackList: new RegExp('http(s)?:\/\/(col\.eum-appdynamics\.com|((.*)\.|)mouseflow.com|akstat.io)'), lastPerformanceObjLength: 0, areTriggersActivated: false, isDuplicateRequest: function(req){ lt = tiMonitor.sendData.getUniqueReqKey(req); return !(tiMonitor.sendData.externalTagStartTimes.indexOf(lt) == -1 && tiMonitor.sendData.internalTagStartTimes.indexOf(lt) == -1); }, isBlacklistedRequest: function(req){ return this.blackList.test(req.name) == true; }, isExternalRequest: function(req){ externalReq = true; windowOrigin = window.location.protocol + '//' + window.location.hostname; if(req.name.length >= windowOrigin.length){ truncReqName = (req.name).substr(0, windowOrigin.length); externalReq = (truncReqName).indexOf(windowOrigin) == -1; } return externalReq; }, isTIRequest: function(req){ return !((req.name).indexOf(tiMonitor.dataCollector.pixelHost) == -1); }, isValidRequest:function(req){ var validReq = false; var identifiedTag = tiMonitor.dataCollector.identifyRequest(req); if(this.isTIRequest(req) == false && (this.isExternalRequest(req) == true || identifiedTag == true) && this.isBlacklistedRequest(req) == false){ validReq = true; } return validReq; }, getUniqueReqKey:function(req){ return (req.startTime).toString() + "-" + (req.responseEnd).toString(); }, isBufferFull:function(){ bufferFull = false; if(window.performance.getEntriesByType("resource").length == 150 || window.performance.getEntriesByType("resource").length == 250 || window.performance.getEntriesByType("resource").length == 400){ bufferFull = true; } return bufferFull; }, iteratePerformance: function(){ if(this.currentlyIterating == false){ this.currentlyIterating = true; var pe = performance.getEntriesByType("resource"); if(this.lastPerformanceObjLength != pe.length){ this.lastPerformanceObjLength = pe.length; for (var i = 0; i < pe.length; i++) { var req = pe[i]; if(this.isDuplicateRequest(req) == false){ if(tiMonitor.sendData.isValidRequest(req) == true){ tiMonitor.sendData.externalTagStartTimes.push(tiMonitor.sendData.getUniqueReqKey(req)); tiMonitor.dataCollector.queueRequest(req, "resource"); }else{ tiMonitor.sendData.internalTagStartTimes.push(tiMonitor.sendData.getUniqueReqKey(req)); } } } } if(this.areTriggersActivated == false){ this.areTriggersActivated = true; tiMonitor.validationRules(true); } this.currentlyIterating = false; } }, domLoadCompleteEvent: (document.readyState == 'complete'), windowUnloadEvent: false, preventFiringValidationRules: false, pageVariableFiredEvents: {}, fire: function(){ tiMonitor.dataCollector.sendRequests(false); }, clearBuffer: function(){ if(window.performance.clearResourceTimings){ startBufferLength = window.performance.getEntriesByType("resource").length; tiMonitor.sendData.iteratePerformance(); window.performance.clearResourceTimings(); endBufferLength = window.performance.getEntriesByType("resource").length; if (startBufferLength == endBufferLength){ this.preventFiringValidationRules = true; } } }, handleUnload: function(){ tiMonitor.windowUnloadEvent=true; if(tiMonitor.sendData.isPerformanceObserverSupported() == false){ tiMonitor.sendData.iteratePerformance(); } tiMonitor.sendData.fire(); }, fullBufferEventListener: function(){ if("clearResourceTimings" in window.performance){ if("addEventListener" in window.performance){ window.performance.addEventListener("resourcetimingbufferfull", function(){ tiMonitor.sendData.clearBuffer(); }); }else{ if("onresourcetimingbufferfull" in window.performance){ window.performance.onresourcetimingbufferfull = function(event) { tiMonitor.sendData.clearBuffer(); }; } } } }, initialized: false }; tiMonitor.ruleVariableCache = { spaRulesFiring: false, _cachedVariableValues: {}, censor: function(n) {var o = 0;return function(r, t) {if (0 !== o && "object" == typeof n && "object" == typeof t && n == t) {return "[Circular]"}else if (o >= 500) {return "[Unknown]"}else {return (++o, t)}}}, updateCache: function(maxCacheTime){ globalVars = tiMonitor.getGlobalJsVars(); for(var p=0; p performance.now() || this.spaRulesFiring == true){ this._cachedVariableValues[variableName]["cacheTime"] = this._cachedVariableValues[variableName]["cacheTime"] + 30; return this._cachedVariableValues[variableName]["val"]; } } try{ try{ var tmpVarVal = eval(variableName); } catch(err) { console.log(err.message); var tmpVarVal = window[variableName]; } if(typeof tmpVarVal === 'object'){ try{ if(tmpVarVal.hasOwnProperty('length')){ tmpArray = []; objStart = tiMonitor.spaRuleObjectLengthTracker.getLastValidatedObjectLength(tmpVarVal, variableName); for(z=objStart; z < tmpVarVal.length; z++){ try{ tmpArray.push(JSON.stringify(tmpVarVal[z])); }catch(err){ } } retVal = tmpArray.toString(); }else{ retVal = JSON.stringify(tmpVarVal); } }catch(err) { retVal = JSON.stringify(tmpVarVal, this.censor(tmpVarVal)); console.log(err.message); } }else if(typeof tmpVarVal !== 'undefined'){ retVal = tmpVarVal; } this._cachedVariableValues[variableName] = {"val": retVal, "cacheTime": performance.now() + maxCacheTime} } catch(err) { console.log(err.message); } return retVal; } }; tiMonitor.spaRuleObjectLengthTracker = { spaPageCounter: 0, spaRuleObjectLengths: {0:{}}, _checkIfObject: function(obj){ return typeof(obj) == 'object'; }, isTrackable: function(obj){ if(this._checkIfObject(obj)){ return obj.hasOwnProperty("length") }else{ return false; } }, _trackObjectLength: function(obj, objName){ if(this.isTrackable(obj)){ objLen = obj.length; this.spaRuleObjectLengths[this.spaPageCounter][objName] = objLen; } }, getLastValidatedObjectLength: function(obj, objName){ if(this.isTrackable(obj)){ if(this.spaRuleObjectLengths[this.spaPageCounter].hasOwnProperty(objName) == false){ this._trackObjectLength(obj, objName); } lastValidationLength = 0; if(this.spaRuleObjectLengths[this.spaPageCounter - 1].hasOwnProperty(objName)){ lastValidationLength = this.spaRuleObjectLengths[this.spaPageCounter - 1][objName] } return lastValidationLength; } }, incrimentSpaPageview: function(){ this.spaPageCounter = this.spaPageCounter + 1; this.spaRuleObjectLengths[this.spaPageCounter] = {}; } }; tiMonitor.getGlobalJsVars = function (){ try { var tiGlobalJsVars = []; return tiGlobalJsVars; } catch(err) { console.log(err.message); jeErrorObj = { message: err.message }; tiMonitor.dataCollector.queueRequest(jeErrorObj, "jserror"); return []; } }; tiMonitor.validationRules = function (){ try { macro_function_75fb5e78_d29f_5db2_b178_6d059a427692 = function(){ returnVal = 'false'; if(tiMonitor.dataCollector.identifiedRequests.hasOwnProperty('2547') == true){ returnVal = 'true'; } return returnVal; } macro_75fb5e78_d29f_5db2_b178_6d059a427692 = new taginspector.datapulse.pagevariable.JsExpression({uniqueId: '75fb5e78_d29f_5db2_b178_6d059a427692', reportValue: false}); macro_75fb5e78_d29f_5db2_b178_6d059a427692.setValue(macro_function_75fb5e78_d29f_5db2_b178_6d059a427692); macro_function_31dad1ae_f686_5581_8cbc_52bf9629b428 = function(){ return tiMonitor.sendData.currentUrl; } macro_31dad1ae_f686_5581_8cbc_52bf9629b428 = new taginspector.datapulse.pagevariable.JsExpression({uniqueId: '31dad1ae_f686_5581_8cbc_52bf9629b428', reportValue: false}); macro_31dad1ae_f686_5581_8cbc_52bf9629b428.setValue(macro_function_31dad1ae_f686_5581_8cbc_52bf9629b428); condition_e5f1dd24_e587_4f01_a1c8_7c51d49d6bbf = new taginspector.datapulse.filter.JsExpressionFilter({sourceVariable: macro_75fb5e78_d29f_5db2_b178_6d059a427692, comparisonVariable: 'true', comparisonType: 'Equals', uniqueId: 'e5f1dd24_e587_4f01_a1c8_7c51d49d6bbf'}); rule_24925 = new taginspector.datapulse.BaseRule({uniqueId: '24925', triggerTiming: 'Window Before Unload', ruleVersion: 2, dataCollector: tiMonitor.dataCollector}); rule_24925.addFilter(condition_e5f1dd24_e587_4f01_a1c8_7c51d49d6bbf); condition_758120f5_a61b_40f7_bdce_0b34c53b6c8e = new taginspector.datapulse.filter.JsExpressionFilter({sourceVariable: macro_31dad1ae_f686_5581_8cbc_52bf9629b428, comparisonVariable: '.*(\\/summary|\\/payment)', comparisonType: 'Matches Regex', uniqueId: '758120f5_a61b_40f7_bdce_0b34c53b6c8e'}); trigger_function_trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd = function (cb) { if(triggerFired == false){ triggerFired = true; try { if(condition_758120f5_a61b_40f7_bdce_0b34c53b6c8e.match() == true){ cb(true); } } catch (err) { console.log(err.message); jeErrorObj = { message: err.message }; tiMonitor.dataCollector.queueRequest(jeErrorObj, "jserror"); } } } trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd = new taginspector.datapulse.trigger.BaseTrigger({triggerScript: trigger_function_trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd, uniqueId: 'b0f144fc_8b21_11f0_8393_12bd34c4c6fd', triggerFired: false }); trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd.addRule(rule_24925); rule_24925.addTrigger(trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd); function _asyncFireTrigger(tgr){ return new Promise(function(resolve, reject){ tgr.initTrigger(resolve); }); } function initUnloadTriggers(){ var tiTriggerListInit = []; tiMonitor.ruleVariableCache.updateCache(100); tiTriggerListInit.push(_asyncFireTrigger(trigger_b0f144fc_8b21_11f0_8393_12bd34c4c6fd)); Promise.all(tiTriggerListInit).then(function(values){ }); } window.addEventListener("unload", function (event) { tiMonitor.sendData.fire(); }); window.addEventListener("pagehide", function (event) { tiMonitor.fireValidationRules(); }); window.addEventListener("beforeunload", function (event) { tiMonitor.fireValidationRules(); }); document.addEventListener('tiSimulateUnload', function (e) { initUnloadTriggers(); }, false); } catch(err) { console.log(err.message); jeErrorObj = { message: err.message }; tiMonitor.dataCollector.queueRequest(jeErrorObj, "jserror"); } }; tiMonitor.fireValidationRules = function (){ try { //fire unload triggers: if(typeof Event == "function" && tiMonitor.sendData.pageBeingSampled == false){ var event = new Event("tiSimulateUnload"); tiMonitor.sendData.handleUnload(); document.dispatchEvent(event); } } catch(err) { console.log(err.message); jeErrorObj = { message: err.message }; tiMonitor.dataCollector.queueRequest(jeErrorObj, "jserror"); } }; tiMonitor.enableEnhancedTagSupport = function (){ try { scInterval = 0; var tiScPostSupport = setInterval(function() { scInterval = scInterval + 100; if(scInterval >= 20000){ clearInterval(tiScPostSupport); } if(typeof(s) != "undefined"){ if (s.hasOwnProperty("registerPostTrackCallback")){ s.registerPostTrackCallback(function(requestUrl) { if(requestUrl.length > 2048 || navigator.userAgent.indexOf("iPhone") > -1){ tiMonitor.sendData.createFakeReq(requestUrl); } }); clearInterval(tiScPostSupport); } } }, 100); fbInterval = 0; var tiFbPostSupport = setInterval(function() { fbInterval = fbInterval + 100; if(fbInterval >= 20000){ clearInterval(tiFbPostSupport); } if(typeof(fbq) != "undefined"){ if (fbq.hasOwnProperty("on")){ clearInterval(tiFbPostSupport); fbq.on( "fired", function(reqMethod, reqData) { if(reqMethod == "POST"){ params = [] for(x=1;x c ? a.href : a.href.substr(0, c) } return b } getUrlDict = function (a) { var b = document.createElement("a"); a && (b.href = a); var c = b.pathname; "/" !== c[0] && (a || ld("TAGGING", 1), c = "/" + c); var d = b.hostname.replace(portRegex, ""); return { href: b.href, protocol: b.protocol, host: b.host, hostname: d, pathname: c, search: b.search, hash: b.hash, port: b.port } } getUrlComponent = function (urlDict, uriComponent, c, d, e) { uriComponent && (uriComponent = String(uriComponent).toLowerCase()); if ("protocol" === uriComponent || "port" === uriComponent){ urlDict.protocol = stripSemicolon(urlDict.protocol) || stripSemicolon(document.location.protocol); } "port" === uriComponent ? urlDict.port = String(Number(urlDict.hostname ? urlDict.port : document.location.port) || ("http" == urlDict.protocol ? 80 : "https" == urlDict.protocol ? 443 : "")) : "host" === uriComponent && (urlDict.hostname = (urlDict.hostname || document.location.hostname).replace(portRegex, "").toLowerCase()); var uriComponentCopy = uriComponent, h, k = stripSemicolon(urlDict.protocol); uriComponentCopy && (uriComponentCopy = String(uriComponentCopy).toLowerCase()); switch (uriComponentCopy) { case "url_no_fragment": result = stripFragmentFromUrl(a); break; case "protocol": result = k; break; case "host": result = urlDict.hostname.replace(portRegex, "").toLowerCase(); if (c) { var l = /^www\d*\./.exec(result); l && l[0] && (result = result.substr(l[0].length)) } break; case "port": result = String(Number(urlDict.port) || ("http" == k ? 80 : "https" == k ? 443 : "")); break; case "path": urlDict.pathname || urlDict.hostname || ld("TAGGING", 1); result = "/" == urlDict.pathname.substr(0, 1) ? urlDict.pathname : "/" + urlDict.pathname; var m = result.split("/"); 0 <= n(d || [], m[m.length - 1]) && (m[m.length - 1] = ""); result = m.join("/"); break; case "query": result = urlDict.search.replace("?", ""); e && (result = getQueryparameters(result, e, void 0)); break; case "extension": var q = urlDict.pathname.split("."); result = 1 < q.length ? q[q.length - 1] : ""; result = result.split("/")[0]; break; case "fragment": result = urlDict.hash.replace("#", ""); break; default: result = a && urlDict.href } return result } getUrlFragment = function (a) { return getUrlComponent(getUrlDict(a), "fragment") } stripSemicolon = function (a) { return a ? a.replace(":", "").toLowerCase() : "" } isFunction = function(a) { return "function" == typeof a } getQueryparameters = function(a, b, c) { for (var d = a.split("&"), e = 0; e < d.length; e++) { var f = d[e].split("="); if (decodeURIComponent(f[0]).replace(/\+/g, " ") === b) { var h = f.slice(1).join("="); return c ? h : decodeURIComponent(h).replace(/\+/g, " ") } } } addListener = function(a, b, c, d) { a.addEventListener ? a.addEventListener(b, c, !!d) : a.attachEvent && a.attachEvent("on" + b, c) } var avb = function(){ function getNewUrlOnEventCallback(event) { return event.target && event.target.location && event.target.location.href ? event.target.location.href : getUrl() } function listenToHashChangeEvents(winObj, histObj) { addListener(winObj, "hashchange", function(event) { var newUrl = getNewUrlOnEventCallback(event); histObj({ source: "hashchange", state: null, url: getUrlwithoutFragment(newUrl), L: getUrlFragment(newUrl) }) }) } function listenToPopstateEvents(winObj, histObj) { addListener(winObj, "popstate", function(event) { var newUrl = getNewUrlOnEventCallback(event); histObj({ source: "popstate", state: event.state, url: getUrlwithoutFragment(newUrl), L: getUrlFragment(newUrl) }) }) } function bindToHistoryEvent(eventName, windowObj, historyObj) { var windowHistoryObj = windowObj.history; var eventType = windowHistoryObj[eventName]; if (isFunction(eventType)) try { windowHistoryObj[eventName] = function (q, r, u) { eventType.apply(windowHistoryObj, [].slice.call(arguments, 0)); historyObj({ source: eventName, state: q, url: getUrlwithoutFragment(getUrl()), L: getUrlFragment(getUrl()) }) } } catch (q) {} } function orgHistoryObj() { var historyDict = { source: null, state: getWindowParam("history").state || null, url: getUrlwithoutFragment(getUrl()), L: getUrlFragment(getUrl()) }; return function(winObj) { var l = {}; l[historyDict.source] = !0; l[winObj.source] = !0; if (!l.popstate || !l.hashchange || historyDict.L != winObj.L) { if(historyDict.url !== undefined && winObj.url !== undefined){ var historyDictUrlNoQs = (historyDict.url).split("?")[0]; var winObjUrlNoQs = (winObj.url).split("?")[0]; if (historyDictUrlNoQs !== winObjUrlNoQs) { historyDict = winObj; if(performance.now() - tiMonitor.dataCollector.offsetTime > 200){ tiMonitor.ruleVariableCache.updateCache(100); tiMonitor.ruleVariableCache.spaRulesFiring = true; setTimeout(function() { if (tiMonitor.sendData.pageBeingSampled == false){ tiMonitor.fireValidationRules(); tiMonitor.sendData.iteratePerformance(); tiMonitor.sendData.fire(); } tiMonitor.ruleVariableCache.spaRulesFiring = false; var pageBeingSampled = true; tiMonitor.sendData.pageBeingSampled = true; var randomInt = Math.floor(Math.random() * (tiMonitor.sendData.sampleRate - 1 + 1)) + 1; if (1 == randomInt) { tiMonitor.initializeNewPage(); pageBeingSampled = false; tiMonitor.sendData.pageBeingSampled = false; } else if (tiMonitor.sendData.sampleBlackListEnabled == true) { if (tiMonitor.sendData.sampleBlackList.test(tiMonitor.sendData.currentUrl) == true) { tiMonitor.initializeNewPage(); tiMonitor.sendData.sampleblackListFlag = true; pageBeingSampled = false; tiMonitor.sendData.pageBeingSampled = false; } } if (pageBeingSampled == false){ tiMonitor.dataCollector.queueRequest(null, "pageload"); tiMonitor.sendData.iteratePerformance(); tiMonitor.sendData.fire(); tiMonitor.sendData.sentUnload = true; } }, 200); } } } } } }(function(f) { f() })(function() { var winObj = getWindowParam("self"); var histObj = orgHistoryObj(); listenToHashChangeEvents(winObj, histObj); listenToPopstateEvents(winObj, histObj); bindToHistoryEvent("pushState", winObj, histObj); bindToHistoryEvent("replaceState", winObj, histObj); }) }(); }; tiMonitor.patchPostRequests = function (){ var SCHEDULE = 'schedule'; var INVOKE = 'invoke'; var ADD_EVENT_LISTENER_STR = 'addEventListener'; var XMLHTTPREQUEST = 'xmlhttprequest'; var FETCH = 'fetch'; var SENDBEACON = 'navigator.sendBeacon'; var ERROR = 'error'; var BEFORE_EVENT = ':before'; var AFTER_EVENT = ':after'; var gaRegex = new RegExp('(^http(s)?:\\/\\/(([a-zA-Z0-9\\-\\.]*)\\.|)stats\\.g\\.doubleclick\\.net(\\/[a-z])?\\/collect|^http(s)?:\\/\\/(([a-zA-Z0-9\\-\\.]*)\\.|)(google-analytics|google)\\.com(\\/[a-z])?\\/collect|gtag\\/js\\?id\\=(G|g)\\-|\\/g\\/collect\\?v=2)','i'); var globalState = { fetchInProgress: false }; function convertHitToGetRequest(tagUrl, bodyParams){ if('URL' in window){ var parsedTagUrl = new URL(tagUrl); if(parsedTagUrl.search != ""){ //has qstring tagUrl = tagUrl + "&" }else{ tagUrl = tagUrl + "?" } } tagUrl = tagUrl + bodyParams.join('&'); return tagUrl; } function shouldCollectPostBody(tagUrl, method, body){ if(method == 'POST'){ if(body && body != ""){ return gaRegex.test(tagUrl); } } return false; } var EventHandler = function () { function EventHandler() { this.observers = {}; } var _proto = EventHandler.prototype; _proto.observe = function observe(name, fn) { var _this = this; if (typeof fn === 'function') { if (!this.observers[name]) { this.observers[name] = []; } this.observers[name].push(fn); return function () { var index = _this.observers[name].indexOf(fn); if (index > -1) { _this.observers[name].splice(index, 1); } }; } }; _proto.sendOnly = function sendOnly(name, args) { var obs = this.observers[name]; if (obs) { obs.forEach(function (fn) { try { fn.apply(undefined, args); } catch (error) { console.log(error, error.stack); } }); } }; _proto.send = function send(name, args) { this.sendOnly(name + BEFORE_EVENT, args); this.sendOnly(name, args); this.sendOnly(name + AFTER_EVENT, args); }; return EventHandler; }(); function apmSymbol(name) { return '__apm_symbol__' + name; } function isPropertyWritable(propertyDesc) { if (!propertyDesc) { return true; } if (propertyDesc.writable === false) { return false; } return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); } function attachOriginToPatched(patched, original) { patched[apmSymbol('OriginalDelegate')] = original; } function patchMethod(target, name, patchFn) { var proto = target; while (proto && !proto.hasOwnProperty(name)) { proto = Object.getPrototypeOf(proto); } if (!proto && target[name]) { proto = target; } var delegateName = apmSymbol(name); var delegate; if (proto && !(delegate = proto[delegateName])) { delegate = proto[delegateName] = proto[name]; var desc = proto && Object.getOwnPropertyDescriptor(proto, name); if (isPropertyWritable(desc)) { var patchDelegate = patchFn(delegate, delegateName, name); proto[name] = function () { return patchDelegate(this, arguments); }; attachOriginToPatched(proto[name], delegate); } } return delegate; } var XHR_IGNORE = apmSymbol('xhrIgnore'); var XHR_SYNC = apmSymbol('xhrSync'); var XHR_URL = apmSymbol('xhrURL'); var XHR_METHOD = apmSymbol('xhrMethod'); function patchXMLHttpRequest(callback) { var XMLHttpRequestPrototype = XMLHttpRequest.prototype; if (!XMLHttpRequestPrototype || !XMLHttpRequestPrototype[ADD_EVENT_LISTENER_STR]) { return; } var READY_STATE_CHANGE = 'readystatechange'; var LOAD = 'load'; var ERROR = 'error'; var TIMEOUT = 'timeout'; var ABORT = 'abort'; function invokeTask(task, status) { if (task.state !== INVOKE) { task.state = INVOKE; task.data.status = status; callback(INVOKE, task); } } function scheduleTask(task) { if (task.state === SCHEDULE) { return; } task.state = SCHEDULE; callback(SCHEDULE, task); var target = task.data.target; function addListener(name) { target[ADD_EVENT_LISTENER_STR](name, function (_ref) { var type = _ref.type; if (type === READY_STATE_CHANGE) { if (target.readyState === 4 && target.status !== 0) { invokeTask(task, 'success'); } } else { var status = type === LOAD ? 'success' : type; invokeTask(task, status); } }); } addListener(READY_STATE_CHANGE); addListener(LOAD); addListener(TIMEOUT); addListener(ERROR); addListener(ABORT); } var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) { if (!self[XHR_IGNORE]) { self[XHR_METHOD] = args[0]; self[XHR_URL] = args[1]; self[XHR_SYNC] = args[2] === false; } return openNative.apply(self, args); }; }); var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) { if (self[XHR_IGNORE]) { return sendNative.apply(self, args); } var task = { source: XMLHTTPREQUEST, state: '', type: 'macroTask', data: { target: self, method: self[XHR_METHOD], sync: self[XHR_SYNC], url: self[XHR_URL], status: '' } }; try { if(shouldCollectPostBody(task.data.url, task.data.method, args[0])){ var bodyParamArr = args[0].split("&"); var convertedTagUrl = convertHitToGetRequest(task.data.url, bodyParamArr); tiMonitor.sendData.createFakeReq(convertedTagUrl); } } catch (err) { console.log(err.message); } try { scheduleTask(task); return sendNative.apply(self, args); } catch (e) { invokeTask(task, ERROR); throw e; } }; }); } function scheduleMicroTask(callback) { Promise.resolve().then(callback); } function patchFetch(callback) { if (!window.fetch || !window.Request) { return; } function scheduleTask(task) { task.state = SCHEDULE; callback(SCHEDULE, task); } function invokeTask(task) { task.state = INVOKE; callback(INVOKE, task); } var nativeFetch = window.fetch; window.fetch = function (input, init) { var fetchSelf = this; var args = arguments; var request, url; if (typeof input === 'string') { request = new Request(input, init); url = input; } else if (input) { request = input; url = request.url; } else { return nativeFetch.apply(fetchSelf, args); } var task = { source: FETCH, state: '', type: 'macroTask', data: { target: request, method: request.method, url: url, aborted: false } }; try { if(shouldCollectPostBody(task.data.url, task.data.method, args[0])){ var bodyParamArr = args[0].split("&"); var convertedTagUrl = convertHitToGetRequest(task.data.url, bodyParamArr); tiMonitor.sendData.createFakeReq(convertedTagUrl); } } catch (err) { console.log(err.message); } return new Promise(function (resolve, reject) { globalState.fetchInProgress = true; scheduleTask(task); var promise; try { promise = nativeFetch.apply(fetchSelf, [request]); } catch (error) { reject(error); task.data.error = error; invokeTask(task); globalState.fetchInProgress = false; return; } promise.then(function (response) { resolve(response); scheduleMicroTask(function () { task.data.response = response; invokeTask(task); }); }, function (error) { reject(error); scheduleMicroTask(function () { task.data.error = error; invokeTask(task); }); }); globalState.fetchInProgress = false; }); }; } function patchBeacon(callback){ var nativeSendBeacon = window.navigator.sendBeacon; window.navigator.sendBeacon = function (url, data) { var beaconSelf = this; var args = arguments; if ('Request' in window) { try { var request, url; request = new Request(url); url = request.url; if(shouldCollectPostBody(url, "POST", data)){ var bodyParamArr = data.split("&"); var convertedTagUrl = convertHitToGetRequest(url, bodyParamArr); tiMonitor.sendData.createFakeReq(convertedTagUrl); } } catch (err) { console.log(err.message); } } return nativeSendBeacon.apply(beaconSelf, arguments); } } var patchEventHandler = new EventHandler(); var alreadyPatched = false; function patchAll() { if (!alreadyPatched) { alreadyPatched = true; patchXMLHttpRequest(function (event, task) { patchEventHandler.send(XMLHTTPREQUEST, [event, task]); }); if ('Promise' in window) { patchFetch(function (event, task) { patchEventHandler.send(FETCH, [event, task]); }); } if (window.navigator) { if(window.navigator.sendBeacon){ patchBeacon(function (event, task) { patchEventHandler.send(SENDBEACON, [event, task]); }); } } } return patchEventHandler; } patchAll(); } tiMonitor.initializeMain = function() { if(tiMonitor.sendData.suportedBrowser() == true && tiMonitor.sendData.isInIframe() == false){ if(tiMonitor.sendData.initialized == false){ tiMonitor.sendData.initialized = true; var pageBeingSampled = true; var randomInt = Math.floor(Math.random() * (tiMonitor.sendData.sampleRate - 1 + 1)) + 1; if (1 == randomInt) { pageBeingSampled = false; tiMonitor.sendData.pageBeingSampled = false; } else if (tiMonitor.sendData.sampleBlackListEnabled == true) { if (tiMonitor.sendData.sampleBlackList.test(tiMonitor.sendData.currentUrl) == true) { tiMonitor.sendData.sampleblackListFlag = true; pageBeingSampled = false; tiMonitor.sendData.pageBeingSampled = false; } } if(pageBeingSampled == false && tiMonitor.sendData.isBufferFull() == false){ tiMonitor.dataCollector.queueRequest(null, "pageload"); tiMonitor.sendData.iteratePerformance(); tiMonitor.sendData.fire(); tiMonitor.sendData.sentUnload = true; if(false){ tiMonitor.dataCollector.session = taginspector.datapulse.Session.setupSession({"containerId": "5fa72f109fe511eca6d20a33479ee2ef"}); } tiMonitor.sendData.fullBufferEventListener(); tiMonitor.spaRuleObjectLengthTracker.incrimentSpaPageview(); if(tiMonitor.sendData.isPerformanceObserverSupported() == true){ var iteratePerformanceCompleted = false; while(iteratePerformanceCompleted == false){ tiMonitor.sendData.iteratePerformance(); pe = performance.getEntriesByType("resource"); if(tiMonitor.sendData.lastPerformanceObjLength == pe.length){ iteratePerformanceCompleted = true; } } var observer = new PerformanceObserver(tiMonitor.sendData.performanceObserverCallback); observer.observe({entryTypes: ['resource']}); }else{ setInterval(function () {tiMonitor.sendData.iteratePerformance()}, 1000); } tiMonitor.enableEnhancedTagSupport(); if(false){ tiMonitor.patchPostRequests(); } try { tiMonitor.enableSpaSupport(); } catch (err) { console.log(err.message); jeErrorObj = { message: err.message }; tiMonitor.dataCollector.queueRequest(jeErrorObj, "jserror"); } setInterval(function () {tiMonitor.sendData.fire()}, 1000); } } } } tiMonitor.initializeMain(); }