From 970883b106229f11a071c5470538bfb29dc83871 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 29 Nov 2018 16:06:02 +1300 Subject: Add possibility to queue tracking requests so they are sent in bulk (#13616) * add possibility to queue requests * add tests * update changelog --- CHANGELOG.md | 4 +- js/piwik.js | 79 ++++++++++++++++++++++++++++++++- js/piwik.min.js | 106 ++++++++++++++++++++++----------------------- piwik.js | 106 ++++++++++++++++++++++----------------------- tests/javascript/index.php | 13 ++++-- 5 files changed, 196 insertions(+), 112 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f876032e03..1639b3bd9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,9 @@ The Product Changelog at **[matomo.org/changelog](https://matomo.org/changelog)* ## Matomo 3.8.0 -### Breaking Changes +### New APIs + +* It is now possible to queue a request on the JavaScript tracker using the method `queueRequest(requestUrl)`. This can be useful to group multiple tracking requests into one bulk request to reduce the number of tracking requests that are sent to your server making the tracking more efficient. * The output type "save on disk" in the API method `ScheduledReport.generateReport` has been replaced by the download output type. ## Matomo 3.6.1 diff --git a/js/piwik.js b/js/piwik.js index 2ab3bdff4d..a530a10fd7 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -997,7 +997,8 @@ if (typeof JSON_PIWIK !== 'object' && typeof window.JSON === 'object' && window. enableCrossDomainLinking, disableCrossDomainLinking, isCrossDomainLinkingEnabled, setCrossDomainLinkingTimeout, getCrossDomainLinkingUrlParameter, addListener, enableLinkTracking, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer, enableHeartBeatTimer, disableHeartBeatTimer, killFrame, redirectFile, setCountPreRendered, - trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, trackSiteSearch, trackEvent, + trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, queueRequest, trackSiteSearch, trackEvent, + requests, timeout, sendRequests, queueRequest, setEcommerceView, addEcommerceItem, removeEcommerceItem, clearEcommerceCart, trackEcommerceOrder, trackEcommerceCartUpdate, deleteCookie, deleteCookies, offsetTop, offsetLeft, offsetHeight, offsetWidth, nodeType, defaultView, innerHTML, scrollLeft, scrollTop, currentStyle, getComputedStyle, querySelectorAll, splice, @@ -1098,6 +1099,8 @@ if (typeof window.Piwik !== 'object') { coreConsentCounter = 0, + trackerIdCounter = 0, + isPageUnloading = false; /************************************************************ @@ -3229,7 +3232,10 @@ if (typeof window.Piwik !== 'object') { configHasConsent = null, // initialized below // holds all pending tracking requests that have not been tracked because we need consent - consentRequestsQueue = []; + consentRequestsQueue = [], + + // a unique ID for this tracker during this request + uniqueTrackerId = trackerIdCounter++; // Document title try { @@ -5584,6 +5590,58 @@ if (typeof window.Piwik !== 'object') { return hookObj; } + + var requestQueue = { + requests: [], + timeout: null, + sendRequests: function () { + var requestsToTrack = this.requests; + this.requests = []; + if (requestsToTrack.length === 1) { + sendRequest(requestsToTrack[0]); + } else { + sendBulkRequest(requestsToTrack); + } + }, + push: function (requestUrl) { + if (!requestUrl) { + return; + } + if (isPageUnloading) { + // we don't queue as we need to ensure the request will be sent when the page is unloading... + trackerInstance.trackRequest(requestUrl); + return; + } + + this.requests.push(requestUrl); + + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + // we always extend by another 1.75 seconds after receiving a tracking request + this.timeout = setTimeout(function () { + requestQueue.timeout = null; + requestQueue.sendRequests(); + }, 1750); + + var trackerQueueId = 'RequestQueue' + uniqueTrackerId; + if (!Object.prototype.hasOwnProperty.call(plugins, trackerQueueId)) { + // we setup one unload handler per tracker... + // Piwik.addPlugin might not be defined at this point, we add the plugin directly also to make + // JSLint happy. + plugins[trackerQueueId] = { + unload: function () { + if (requestQueue.timeout) { + clearTimeout(requestQueue.timeout); + } + requestQueue.sendRequests(); + } + }; + } + } + }; + /**/ /************************************************************ @@ -7196,6 +7254,23 @@ if (typeof window.Piwik !== 'object') { }); }; + /** + * Won't send the tracking request directly but wait for a short time to possibly send this tracking request + * along with other tracking requests in one go. This can reduce the number of requests send to your server. + * If the page unloads (user navigates to another page or closes the browser), then all remaining queued + * requests will be sent immediately so that no tracking request gets lost. + * Note: Any queued request may not be possible to be replayed in case a POST request is sent. Only queue + * requests that don't have to be replayed. + * + * @param request eg. "param=value¶m2=value2" + */ + this.queueRequest = function (request) { + trackCallback(function () { + var fullRequest = getRequest(request); + requestQueue.push(fullRequest); + }); + }; + /** * If the user has given consent previously and this consent was remembered, it will return the number * in milliseconds since 1970/01/01 which is the date when the user has given consent. Please note that diff --git a/js/piwik.min.js b/js/piwik.min.js index ab31c2e309..f3fdc7998c 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -18,60 +18,60 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00" }else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah0){for(ad="",af>10&&(af=10); ad.length=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++; return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y(); -if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON_PIWIK=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Matomo=window.Piwik=(function(){var r,b={},y={},G=document,h=navigator,W=screen,T=window,i=T.performance||T.mozPerformance||T.msPerformance||T.webkitPerformance,t=T.encodeURIComponent,S=T.decodeURIComponent,l=unescape,I=[],E,e,ad=[],x=0,m=false; -function p(ak){try{return S(ak)}catch(al){return unescape(ak)}}function J(al){var ak=typeof al;return ak!=="undefined"}function A(ak){return typeof ak==="function"}function V(ak){return typeof ak==="object"}function w(ak){return typeof ak==="string"||ak instanceof String}function B(al){if(!al){return true}var ak;var am=true;for(ak in al){if(Object.prototype.hasOwnProperty.call(al,ak)){am=false}}return am}function ag(ak){var al=typeof console;if(al!=="undefined"&&console&&console.error){console.error(ak)}}function ac(){var ap,ao,ar,al,ak;for(ap=0;ap0;if(an){aq=ar.split("::");am=aq[0];ar=aq[1];if("object"===typeof e[am]&&"function"===typeof e[am][ar]){e[am][ar].apply(e[am],al)}else{if(ak){ad.push(ak)}}}else{for(ao=0;ao0;if(at){aq=ar.split(".");if(am&&"object"===typeof am[aq[0]]){am=am[aq[0]]; -ar=aq[1]}else{if(ak){ad.push(ak);break}}}if(am[ar]){am[ar].apply(am,al)}else{var au="The method '"+ar+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: https://developer.piwik.org/api-reference/tracking-javascript';ag(au);if(!at){throw new TypeError(au)}}if(ar==="addTracker"){break}if(ar==="setTrackerUrl"||ar==="setSiteId"){break}}else{ar.apply(I[ao],al)}}}}}function aj(an,am,al,ak){if(an.addEventListener){an.addEventListener(am,al,ak);return true}if(an.attachEvent){return an.attachEvent("on"+am,al)}an["on"+am]=al}function n(ak){if(G.readyState==="complete"){ak()}else{if(T.addEventListener){T.addEventListener("load",ak,false)}else{if(T.attachEvent){T.attachEvent("onload",ak)}}}}function q(an){var ak=false;if(G.attachEvent){ak=G.readyState==="complete"}else{ak=G.readyState!=="loading"}if(ak){an();return}var am;if(G.addEventListener){aj(G,"DOMContentLoaded",function al(){G.removeEventListener("DOMContentLoaded",al,false);if(!ak){ak=true;an()}})}else{if(G.attachEvent){G.attachEvent("onreadystatechange",function al(){if(G.readyState==="complete"){G.detachEvent("onreadystatechange",al); -if(!ak){ak=true;an()}}});if(G.documentElement.doScroll&&T===T.top){(function al(){if(!ak){try{G.documentElement.doScroll("left")}catch(ao){setTimeout(al,0);return}ak=true;an()}}())}}}aj(T,"load",function(){if(!ak){ak=true;an()}},false)}function Z(al,aq,ar){if(!al){return""}var ak="",an,am,ao,ap;for(an in b){if(Object.prototype.hasOwnProperty.call(b,an)){ap=b[an]&&"function"===typeof b[an][al];if(ap){am=b[an][al];ao=am(aq||{},ar);if(ao){ak+=ao}}}}return ak}function ae(){var ak;m=true;Z("unload");if(r){do{ak=new Date()}while(ak.getTimeAlias()=0;ap--){ao=aq[ap].split("=")[0];if(ao===am){aq.splice(ap,1)}}var au=aq.join("&");if(au){ar=ar+"?"+au}if(at){ar+="#"+at}}return ar}function f(am,al){var ak="[\\?&#]"+al+"=([^&#]*)";var ao=new RegExp(ak);var an=ao.exec(am);return an?S(an[1]):""}function a(ak){if(ak&&String(ak)===ak){return ak.replace(/^\s+|\s+$/g,"")}return ak}function D(ak){return unescape(t(ak))}function ai(aA){var am=function(aG,aF){return(aG<>>(32-aF))},aB=function(aI){var aG="",aH,aF;for(aH=7;aH>=0;aH--){aF=(aI>>>(aH*4))&15;aG+=aF.toString(16)}return aG},ap,aD,aC,al=[],au=1732584193,ar=4023233417,aq=2562383102,ao=271733878,an=3285377520,az,ay,ax,aw,av,aE,ak,at=[];aA=D(aA);ak=aA.length;for(aD=0;aD>>29);at.push((ak<<3)&4294967295);for(ap=0;apap.offsetWidth+ap.scrollLeft||ar+av-awap.offsetHeight+ap.scrollTop||ax+at-awat?-1:1});if(ak.length<=1){return ak}var al=0;var an=0;var ao=[];var am;am=ak[al++];while(am){if(am===ak[al]){an=ao.push(al) -}am=ak[al++]||null}while(an--){ak.splice(ao[an],1)}return ak},getAttributeValueFromNode:function(ao,am){if(!this.hasNodeAttribute(ao,am)){return}if(ao&&ao.getAttribute){return ao.getAttribute(am)}if(!ao||!ao.attributes){return}var an=(typeof ao.attributes[am]);if("undefined"===an){return}if(ao.attributes[am].value){return ao.attributes[am].value}if(ao.attributes[am].nodeValue){return ao.attributes[am].nodeValue}var al;var ak=ao.attributes;if(!ak){return}for(al=0;al1000){break}ak++}},findPieceNode:function(al){var ak;ak=ab.findFirstNodeHavingAttribute(al,this.CONTENT_PIECE_ATTR);if(!ak){ak=ab.findFirstNodeHavingClass(al,this.CONTENT_PIECE_CLASS)}if(ak){return ak}return al},findTargetNodeNoDefault:function(ak){if(!ak){return}var al=ab.findFirstNodeHavingAttributeWithValue(ak,this.CONTENT_TARGET_ATTR); -if(al){return al}al=ab.findFirstNodeHavingAttribute(ak,this.CONTENT_TARGET_ATTR);if(al){return al}al=ab.findFirstNodeHavingClass(ak,this.CONTENT_TARGET_CLASS);if(al){return al}},findTargetNode:function(ak){var al=this.findTargetNodeNoDefault(ak);if(al){return al}return ak},findContentName:function(al){if(!al){return}var ao=ab.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_NAME_ATTR);if(ao){return ab.getAttributeValueFromNode(ao,this.CONTENT_NAME_ATTR)}var ak=this.findContentPiece(al);if(ak){return this.removeDomainIfIsInLink(ak)}if(ab.hasNodeAttributeWithValue(al,"title")){return ab.getAttributeValueFromNode(al,"title")}var am=this.findPieceNode(al);if(ab.hasNodeAttributeWithValue(am,"title")){return ab.getAttributeValueFromNode(am,"title")}var an=this.findTargetNode(al);if(ab.hasNodeAttributeWithValue(an,"title")){return ab.getAttributeValueFromNode(an,"title")}},findContentPiece:function(al){if(!al){return}var an=ab.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_PIECE_ATTR); -if(an){return ab.getAttributeValueFromNode(an,this.CONTENT_PIECE_ATTR)}var ak=this.findPieceNode(al);var am=this.findMediaUrlInNode(ak);if(am){return this.toAbsoluteUrl(am)}},findContentTarget:function(am){if(!am){return}var an=this.findTargetNode(am);if(ab.hasNodeAttributeWithValue(an,this.CONTENT_TARGET_ATTR)){return ab.getAttributeValueFromNode(an,this.CONTENT_TARGET_ATTR)}var al;if(ab.hasNodeAttributeWithValue(an,"href")){al=ab.getAttributeValueFromNode(an,"href");return this.toAbsoluteUrl(al)}var ak=this.findPieceNode(am);if(ab.hasNodeAttributeWithValue(ak,"href")){al=ab.getAttributeValueFromNode(ak,"href");return this.toAbsoluteUrl(al)}},isSameDomain:function(ak){if(!ak||!ak.indexOf){return false}if(0===ak.indexOf(this.getLocation().origin)){return true}var al=ak.indexOf(this.getLocation().host);if(8>=al&&0<=al){return true}return false},removeDomainIfIsInLink:function(am){var al="^https?://[^/]+";var ak="^.*//[^/]+";if(am&&am.search&&-1!==am.search(new RegExp(al))&&this.isSameDomain(am)){am=am.replace(new RegExp(ak),""); -if(!am){am="/"}}return am},findMediaUrlInNode:function(ao){if(!ao){return}var am=["img","embed","video","audio"];var ak=ao.nodeName.toLowerCase();if(-1!==M(am,ak)&&ab.findFirstNodeHavingAttributeWithValue(ao,"src")){var an=ab.findFirstNodeHavingAttributeWithValue(ao,"src");return ab.getAttributeValueFromNode(an,"src")}if(ak==="object"&&ab.hasNodeAttributeWithValue(ao,"data")){return ab.getAttributeValueFromNode(ao,"data")}if(ak==="object"){var ap=ab.findNodesByTagName(ao,"param");if(ap&&ap.length){var al;for(al=0;al0}var al=an.clientWidth;if(T.innerWidth&&al>T.innerWidth){al=T.innerWidth}var ak=an.clientHeight;if(T.innerHeight&&ak>T.innerHeight){ak=T.innerHeight}return((ao.bottom>0||am)&&ao.right>0&&ao.left=0){c7=c7.slice(0,c6)}c6=c7.lastIndexOf("/");if(c6!==c7.length-1){c7=c7.slice(0,c6+1)}return c7+c5}function cx(c7,c5){var c6;c7=String(c7).toLowerCase();c5=String(c5).toLowerCase();if(c7===c5){return true}if(c5.slice(0,1)==="."){if(c7===c5.slice(1)){return true}c6=c7.length-c5.length;if((c6>0)&&(c7.slice(c6)===c5)){return true}}return false}function cc(c5){var c6=document.createElement("a"); -if(c5.indexOf("//")!==0&&c5.indexOf("http")!==0){if(c5.indexOf("*")===0){c5=c5.substr(1)}if(c5.indexOf(".")===0){c5=c5.substr(1)}c5="http://"+c5}c6.href=v.toAbsoluteUrl(c5);if(c6.pathname){return c6.pathname}return""}function aW(c6,c5){if(!af(c5,"/")){c5="/"+c5}if(!af(c6,"/")){c6="/"+c6}var c7=(c5==="/"||c5==="/*");if(c7){return true}if(c6===c5){return true}c5=String(c5).toLowerCase();c6=String(c6).toLowerCase();if(R(c5,"*")){c5=c5.slice(0,-1);c7=(!c5||c5==="/");if(c7){return true}if(c6===c5){return true}return c6.indexOf(c5)===0}if(!R(c6,"/")){c6+="/"}if(!R(c5,"/")){c5+="/"}return c6.indexOf(c5)===0}function an(c9,db){var c6,c5,c7,c8,da;for(c6=0;c60)&&(c8.slice(c7)===c5)){return true}}}return false}function ch(c5,c7){c5=c5.replace("send_image=0","send_image=1"); -var c6=new Image(1,1);c6.onload=function(){E=0;if(typeof c7==="function"){c7()}};c6.src=ay+(ay.indexOf("?")<0?"?":"&")+c5}function aZ(c6){var da="object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob;if(!da){return false}var c9={type:"application/x-www-form-urlencoded; charset=UTF-8"};var c8=false;try{var c5=new Blob([c6],c9);c8=h.sendBeacon(ay,c5)}catch(c7){return false}return c8}function cS(c6,c7,c5){if(!J(c5)||null===c5){c5=true}if(m&&aZ(c6)){return}setTimeout(function(){if(m&&aZ(c6)){return}var da;try{var c9=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;c9.open("POST",ay,true);c9.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var db=m&&aZ(c6);if(!db&&c5){ch(c6,c7)}}else{if(this.readyState===4&&(typeof c7==="function")){c7()}}};c9.setRequestHeader("Content-Type",co);c9.send(c6)}catch(c8){da=m&&aZ(c6);if(!da&&c5){ch(c6,c7)}}},50)}function b7(c6){var c5=new Date(); -var c7=c5.getTime()+c6;if(!r||c7>r){r=c7}}function cf(c5){if(b3||!aY||!bt){return}b3=setTimeout(function c6(){b3=null;if(!a5){a5=(!G.hasFocus||G.hasFocus())}if(!a5){cf(aY);return}if(bI()){return}var c7=new Date(),c8=aY-(c7.getTime()-cN);c8=Math.min(aY,c8);cf(c8)},c5||aY)}function bB(){if(!b3){return}clearTimeout(b3);b3=null}function a3(){a5=true;if(bI()){return}cf()}function at(){bB()}function c2(){if(aH||!aY){return}aH=true;aj(T,"focus",a3);aj(T,"blur",at);cf()}function ct(c9){var c6=new Date();var c5=c6.getTime();cN=c5;if(cs&&c52000){cS(c6,c7)}else{ch(c6,c7)}b7(c5)})}if(!aH){c2()}else{cf()}}function cb(c5){if(cG){return false}return(c5&&c5.length)}function c1(c7,c5){if(!cb(c7)){return}if(!bt){cA.push(c7);return}var c6='{"requests":["?'+c7.join('","?')+'"]}'; -ct(function(){cS(c6,null,false);b7(c5)})}function aM(c5){return bc+c5+"."+bX+"."+bg}function bW(){if(bd){return"0"}if(!J(h.cookieEnabled)){var c5=aM("testcookie");c0(c5,"1");return ax(c5)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function ba(){bg=bY((cM||cK)+(bh||"/")).slice(0,4)}function bO(){var c6=aM("cvar"),c5=ax(c6);if(c5.length){c5=JSON_PIWIK.parse(c5);if(V(c5)){return c5}}return{}}function cu(){if(aJ===false){aJ=bO()}}function cH(){return bY((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cV)+(new Date()).getTime()+Math.random()).slice(0,16)}function au(){return bY((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cV)).slice(0,6)}function a8(){return Math.floor((new Date()).getTime()/1000)}function aD(){var c6=a8();var c7=au();var c5=String(c6)+c7;return c5}function cR(c7){c7=String(c7);var da=au();var c8=da.length;var c9=c7.substr(-1*c8,c8);var c6=parseInt(c7.substr(0,c7.length-c8),10);if(c6&&c9&&c9===da){var c5=a8();if(aS<=0){return true}if(c5>=c6&&c5<=(c6+aS)){return true -}}return false}function c3(c5){if(!cD){return""}var c9=f(c5,aq);if(!c9){return""}c9=String(c9);var c7=new RegExp("^[a-zA-Z0-9]+$");if(c9.length===32&&c7.test(c9)){var c6=c9.substr(16,32);if(cR(c6)){var c8=c9.substr(0,16);return c8}}return""}function cE(){if(!bF){bF=c3(bE)}var c7=new Date(),c5=Math.round(c7.getTime()/1000),c6=aM("id"),da=ax(c6),c9,c8;if(da){c9=da.split(".");c9.unshift("0");if(bF.length){c9[1]=bF}return c9}if(bF.length){c8=bF}else{if("0"===bW()){c8=""}else{c8=cH()}}c9=["1",c8,c5,0,c5,"",""];return c9}function aR(){var dc=cE(),c8=dc[0],c9=dc[1],c6=dc[2],c5=dc[3],da=dc[4],c7=dc[5];if(!J(dc[6])){dc[6]=""}var db=dc[6];return{newVisitor:c8,uuid:c9,createTs:c6,visitCount:c5,currentVisitTs:da,lastVisitTs:c7,lastEcommerceOrderTs:db}}function aB(){var c8=new Date(),c6=c8.getTime(),c9=aR().createTs;var c5=parseInt(c9,10);var c7=(c5*1000)+cz-c6;return c7}function aF(c5){if(!bX){return}var c7=new Date(),c6=Math.round(c7.getTime()/1000);if(!J(c5)){c5=aR()}var c8=c5.uuid+"."+c5.createTs+"."+c5.visitCount+"."+c6+"."+c5.lastVisitTs+"."+c5.lastEcommerceOrderTs; -c0(aM("id"),c8,aB(),bh,cM,bJ)}function bD(){var c5=ax(aM("ref"));if(c5.length){try{c5=JSON_PIWIK.parse(c5);if(V(c5)){return c5}}catch(c6){}}return["","",0,""]}function bP(c7,c6,c5){c0(c7,"",-86400,c6,c5)}function bo(c6){var c5="testvalue";c0("test",c5,10000,null,c6);if(ax("test")===c5){bP("test",null,c6);return true}return false}function az(){var c6=bd;bd=false;var c5,c7;for(c5=0;c5dv){dl.visitCount++;dl.lastVisitTs=dl.currentVisitTs}if(!bn||!dd.length){for(ds in ci){if(Object.prototype.hasOwnProperty.call(ci,ds)){dd=f(dw,ci[ds]);if(dd.length){break}}}for(ds in bx){if(Object.prototype.hasOwnProperty.call(bx,ds)){c5=f(dw,bx[ds]);if(c5.length){break}}}}dz=d(bf);dg=dr.length?d(dr):"";if(dz.length&&!aO(dz)&&(!bn||!dg.length||aO(dg))){dr=bf}if(dr.length||dd.length){dc=df;dq=[dd,c5,dc,bT(dr.slice(0,c9))];c0(dm,JSON_PIWIK.stringify(dq),cT,bh,cM)}}c7+="&idsite="+bX+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+c6.getHours()+"&m="+c6.getMinutes()+"&s="+c6.getSeconds()+"&url="+t(bT(dw))+(bf.length?"&urlref="+t(bT(bf)):"")+((bq&&bq.length)?"&uid="+t(bq):"")+"&_id="+dl.uuid+"&_idts="+dl.createTs+"&_idvc="+dl.visitCount+"&_idn="+dl.newVisitor+(dd.length?"&_rcn="+t(dd):"")+(c5.length?"&_rck="+t(c5):"")+"&_refts="+dc+"&_viewts="+dl.lastVisitTs+(String(dl.lastEcommerceOrderTs).length?"&_ects="+dl.lastEcommerceOrderTs:"")+(String(dr).length?"&_ref="+t(bT(dr.slice(0,c9))):"")+(di?"&cs="+t(di):"")+"&send_image=0"; -for(ds in cV){if(Object.prototype.hasOwnProperty.call(cV,ds)){c7+="&"+ds+"="+cV[ds]}}var dy=[];if(dt){for(ds in dt){if(Object.prototype.hasOwnProperty.call(dt,ds)&&/^dimension\d+$/.test(ds)){var db=ds.replace("dimension","");dy.push(parseInt(db,10));dy.push(String(db));c7+="&"+ds+"="+dt[ds];delete dt[ds]}}}if(dt&&B(dt)){dt=null}for(ds in be){if(Object.prototype.hasOwnProperty.call(be,ds)){var dh=(-1===M(dy,ds));if(dh){c7+="&dimension"+ds+"="+be[ds]}}}if(dt){c7+="&data="+t(JSON_PIWIK.stringify(dt))}else{if(ak){c7+="&data="+t(JSON_PIWIK.stringify(ak))}}function de(dA,dB){var dC=JSON_PIWIK.stringify(dA);if(dC.length>2){return"&"+dB+"="+t(dC)}return""}var dx=c4(bN);var dn=c4(cd);c7+=de(dx,"cvar");c7+=de(dn,"e_cvar");if(aJ){c7+=de(aJ,"_cvar");for(ds in dp){if(Object.prototype.hasOwnProperty.call(dp,ds)){if(aJ[ds][0]===""||aJ[ds][1]===""){delete aJ[ds]}}}if(bH){c0(dj,JSON_PIWIK.stringify(aJ),cg,bh,cM)}}if(aV){if(ce){c7+=">_ms="+ce}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c7+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) -}}}if(aE){c7+="&pv_id="+aE}dl.lastEcommerceOrderTs=J(c8)&&String(c8).length?c8:dl.lastEcommerceOrderTs;aF(dl);b4();c7+=Z(du,{tracker:bz,request:c7});if(cO.length){c7+="&"+cO}if(A(b2)){c7=b2(c7)}return c7}bI=function a0(){var c5=new Date();if(cN+aY<=c5.getTime()){var c6=ck("ping=1",null,"ping");bw(c6,bA);return true}return false};function bi(c8,c7,dd,c9,c5,dg){var db="idgoal=0",dc,c6=new Date(),de=[],df,da=String(c8).length;if(da){db+="&ec_id="+t(c8);dc=Math.round(c6.getTime()/1000)}db+="&revenue="+c7;if(String(dd).length){db+="&ec_st="+dd}if(String(c9).length){db+="&ec_tx="+c9}if(String(c5).length){db+="&ec_sh="+c5}if(String(dg).length){db+="&ec_dt="+dg}if(cP){for(df in cP){if(Object.prototype.hasOwnProperty.call(cP,df)){if(!J(cP[df][1])){cP[df][1]=""}if(!J(cP[df][2])){cP[df][2]=""}if(!J(cP[df][3])||String(cP[df][3]).length===0){cP[df][3]=0}if(!J(cP[df][4])||String(cP[df][4]).length===0){cP[df][4]=1}de.push(cP[df])}}db+="&ec_items="+t(JSON_PIWIK.stringify(de))}db=ck(db,ak,"ecommerce",dc); -bw(db,bA);if(da){cP={}}}function bQ(c5,c9,c8,c7,c6,da){if(String(c5).length&&J(c9)){bi(c5,c9,c8,c7,c6,da)}}function bk(c5){if(J(c5)){bi("",c5,"","","","")}}function bR(c6,c8,c7){aE=a9();var c5=ck("action_name="+t(ah(c6||bb)),c8,"log");bw(c5,bA,c7)}function aT(c7,c6){var c8,c5="(^| )(piwik[_-]"+c6;if(c7){for(c8=0;c80){c6+="&"}else{c6+="?"}var c7=bj();c6=F(c6,aq,c7);ab.setAnyAttribute(c5,"href",c6)}function av(c8){var c9=ab.getAttributeValueFromNode(c8,"href");if(!c9){return false}c9=String(c9);var c6=c9.indexOf("//")===0||c9.indexOf("http://")===0||c9.indexOf("https://")===0;if(!c6){return false}var c5=c8.pathname||cc(c8.href);var c7=(c8.hostname||d(c8.href)).toLowerCase();if(an(c7,c5)){if(!cx(cK,L(c7))){return true}return false}return false}function cw(c5){var c6=cZ(c5);if(c6&&c6.type){c6.href=p(c6.href);cQ(c6.href,c6.type,undefined,null,c5);return}if(cD){c5=ap(c5);if(av(c5)){ca(c5)}}}function cn(){return G.all&&!G.addEventListener}function cL(c5){var c7=c5.which;var c6=(typeof c5.button);if(!c7&&c6!=="undefined"){if(cn()){if(c5.button&1){c7=1}else{if(c5.button&2){c7=3}else{if(c5.button&4){c7=2}}}}else{if(c5.button===0||c5.button==="0"){c7=1}else{if(c5.button&1){c7=2}else{if(c5.button&2){c7=3}}}}}return c7}function bK(c5){switch(cL(c5)){case 1:return"left"; -case 2:return"middle";case 3:return"right"}}function aU(c5){return c5.target||c5.srcElement}function aw(c5){return function(c8){c8=c8||T.event;var c7=bK(c8);var c9=aU(c8);if(c8.type==="click"){var c6=false;if(c5&&c7==="middle"){c6=true}if(c9&&!c6){cw(c9)}}else{if(c8.type==="mousedown"){if(c7==="middle"&&c9){aK=c7;bs=c9}else{aK=bs=null}}else{if(c8.type==="mouseup"){if(c7===aK&&c9===bs){cw(c9)}aK=bs=null}else{if(c8.type==="contextmenu"){cw(c9)}}}}}}function am(c7,c6){var c5=typeof c6;if(c5==="undefined"){c6=true}aj(c7,"click",aw(c6),false);if(c6){aj(c7,"mouseup",aw(c6),false);aj(c7,"mousedown",aw(c6),false);aj(c7,"contextmenu",aw(c6),false)}}function bu(c7,c9){al=true;var c8,c6=aT(br,"ignore"),da=G.links,c5=null,db=null;if(da){for(c8=0;c80){c9=parseInt(c9,10);dc(c9)}})}function cv(){var c6,c8,c9={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(c6 in c9){if(Object.prototype.hasOwnProperty.call(c9,c6)){c8=h.mimeTypes[c9[c6]];cV[c6]=(c8&&c8.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){cV.java="1" -}if(A(T.GearsFactory)){cV.gears="1"}cV.cookie=bW()}var c7=parseInt(W.width,10);var c5=parseInt(W.height,10);cV.res=parseInt(c7,10)+"x"+parseInt(c5,10)}cv();ba();aF();this.getVisitorId=function(){return aR().uuid};this.getVisitorInfo=function(){return cE()};this.getAttributionInfo=function(){return bD()};this.getAttributionCampaignName=function(){return bD()[0]};this.getAttributionCampaignKeyword=function(){return bD()[1]};this.getAttributionReferrerTimestamp=function(){return bD()[2]};this.getAttributionReferrerUrl=function(){return bD()[3]};this.setTrackerUrl=function(c5){ay=c5};this.getTrackerUrl=function(){return ay};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),by)};this.addTracker=function(c5,c7){if(!c7){throw new Error("A siteId must be given to add a new tracker")}if(!J(c5)||null===c5){c5=this.getTrackerUrl()}var c6=new Q(c5,c7);I.push(c6);return c6};this.getSiteId=function(){return bX};this.setSiteId=function(c5){bU(c5)};this.resetUserId=function(){bq=""};this.setUserId=function(c5){if(!J(c5)||!c5.length){return -}bq=c5};this.getUserId=function(){return bq};this.setCustomData=function(c5,c6){if(V(c5)){ak=c5}else{if(!ak){ak={}}ak[c5]=c6}};this.getCustomData=function(){return ak};this.setCustomRequestProcessing=function(c5){b2=c5};this.appendToTrackingUrl=function(c5){cO=c5};this.getRequest=function(c5){return ck(c5)};this.addPlugin=function(c5,c6){b[c5]=c6};this.setCustomDimension=function(c5,c6){c5=parseInt(c5,10);if(c5>0){if(!J(c6)){c6=""}if(!w(c6)){c6=String(c6)}be[c5]=c6}};this.getCustomDimension=function(c5){c5=parseInt(c5,10);if(c5>0&&Object.prototype.hasOwnProperty.call(be,c5)){return be[c5]}};this.deleteCustomDimension=function(c5){c5=parseInt(c5,10);if(c5>0){delete be[c5]}};this.setCustomVariable=function(c6,c5,c9,c7){var c8;if(!J(c7)){c7="visit"}if(!J(c5)){return}if(!J(c9)){c9=""}if(c6>0){c5=!w(c5)?String(c5):c5;c9=!w(c9)?String(c9):c9;c8=[c5.slice(0,bl),c9.slice(0,bl)];if(c7==="visit"||c7===2){cu();aJ[c6]=c8}else{if(c7==="page"||c7===3){bN[c6]=c8}else{if(c7==="event"){cd[c6]=c8}}}}};this.getCustomVariable=function(c6,c7){var c5; -if(!J(c7)){c7="visit"}if(c7==="page"||c7===3){c5=bN[c6]}else{if(c7==="event"){c5=cd[c6]}else{if(c7==="visit"||c7===2){cu();c5=aJ[c6]}}}if(!J(c5)||(c5&&c5[0]==="")){return false}return c5};this.deleteCustomVariable=function(c5,c6){if(this.getCustomVariable(c5,c6)){this.setCustomVariable(c5,"","",c6)}};this.deleteCustomVariables=function(c5){if(c5==="page"||c5===3){bN={}}else{if(c5==="event"){cd={}}else{if(c5==="visit"||c5===2){aJ={}}}}};this.storeCustomVariablesInCookie=function(){bH=true};this.setLinkTrackingTimer=function(c5){bA=c5};this.getLinkTrackingTimer=function(){return bA};this.setDownloadExtensions=function(c5){if(w(c5)){c5=c5.split("|")}cU=c5};this.addDownloadExtensions=function(c6){var c5;if(w(c6)){c6=c6.split("|")}for(c5=0;c51&&al!=="addTracker"){ag("The method "+al+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}aq[al]++}}}}return ap}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","requireConsent","setConsentGiven"];function aa(ak,am){var al=new Q(ak,am);I.push(al);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){ac(_paq[E])}}_paq=new H();return al}aj(T,"beforeunload",ae,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(an,am,al,ak){var ao=typeof ak;if(ao==="undefined"){ak=false}aj(an,am,al,ak)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(al,ak){if(!y[al]){y[al]=[]}y[al].push(ak)},off:function(am,al){if(!y[am]){return}var ak=0;for(ak;ak0;if(ao){ar=at.split("::");an=ar[0];at=ar[1];if("object"===typeof e[an]&&"function"===typeof e[an][at]){e[an][at].apply(e[an],am)}else{if(al){ae.push(al)}}}else{for(ap=0;ap0;if(au){ar=at.split(".");if(an&&"object"===typeof an[ar[0]]){an=an[ar[0]]; +at=ar[1]}else{if(al){ae.push(al);break}}}if(an[at]){an[at].apply(an,am)}else{var av="The method '"+at+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: https://developer.piwik.org/api-reference/tracking-javascript';ah(av);if(!au){throw new TypeError(av)}}if(at==="addTracker"){break}if(at==="setTrackerUrl"||at==="setSiteId"){break}}else{at.apply(I[ap],am)}}}}}function ak(ao,an,am,al){if(ao.addEventListener){ao.addEventListener(an,am,al);return true}if(ao.attachEvent){return ao.attachEvent("on"+an,am)}ao["on"+an]=am}function n(al){if(G.readyState==="complete"){al()}else{if(T.addEventListener){T.addEventListener("load",al,false)}else{if(T.attachEvent){T.attachEvent("onload",al)}}}}function q(ao){var al=false;if(G.attachEvent){al=G.readyState==="complete"}else{al=G.readyState!=="loading"}if(al){ao();return}var an;if(G.addEventListener){ak(G,"DOMContentLoaded",function am(){G.removeEventListener("DOMContentLoaded",am,false);if(!al){al=true;ao()}})}else{if(G.attachEvent){G.attachEvent("onreadystatechange",function am(){if(G.readyState==="complete"){G.detachEvent("onreadystatechange",am); +if(!al){al=true;ao()}}});if(G.documentElement.doScroll&&T===T.top){(function am(){if(!al){try{G.documentElement.doScroll("left")}catch(ap){setTimeout(am,0);return}al=true;ao()}}())}}}ak(T,"load",function(){if(!al){al=true;ao()}},false)}function aa(am,ar,at){if(!am){return""}var al="",ao,an,ap,aq;for(ao in b){if(Object.prototype.hasOwnProperty.call(b,ao)){aq=b[ao]&&"function"===typeof b[ao][am];if(aq){an=b[ao][am];ap=an(ar||{},at);if(ap){al+=ap}}}}return al}function af(){var al;m=true;aa("unload");if(r){do{al=new Date()}while(al.getTimeAlias()=0;aq--){ap=ar[aq].split("=")[0];if(ap===an){ar.splice(aq,1)}}var av=ar.join("&");if(av){at=at+"?"+av}if(au){at+="#"+au}}return at}function f(an,am){var al="[\\?&#]"+am+"=([^&#]*)";var ap=new RegExp(al);var ao=ap.exec(an);return ao?S(ao[1]):""}function a(al){if(al&&String(al)===al){return al.replace(/^\s+|\s+$/g,"")}return al}function D(al){return unescape(t(al))}function aj(aB){var an=function(aH,aG){return(aH<>>(32-aG))},aC=function(aJ){var aH="",aI,aG;for(aI=7;aI>=0;aI--){aG=(aJ>>>(aI*4))&15;aH+=aG.toString(16)}return aH},aq,aE,aD,am=[],av=1732584193,at=4023233417,ar=2562383102,ap=271733878,ao=3285377520,aA,az,ay,ax,aw,aF,al,au=[];aB=D(aB);al=aB.length;for(aE=0;aE>>29);au.push((al<<3)&4294967295);for(aq=0;aqaq.offsetWidth+aq.scrollLeft||at+aw-axaq.offsetHeight+aq.scrollTop||ay+au-axau?-1:1});if(al.length<=1){return al}var am=0;var ao=0;var ap=[];var an;an=al[am++];while(an){if(an===al[am]){ao=ap.push(am) +}an=al[am++]||null}while(ao--){al.splice(ap[ao],1)}return al},getAttributeValueFromNode:function(ap,an){if(!this.hasNodeAttribute(ap,an)){return}if(ap&&ap.getAttribute){return ap.getAttribute(an)}if(!ap||!ap.attributes){return}var ao=(typeof ap.attributes[an]);if("undefined"===ao){return}if(ap.attributes[an].value){return ap.attributes[an].value}if(ap.attributes[an].nodeValue){return ap.attributes[an].nodeValue}var am;var al=ap.attributes;if(!al){return}for(am=0;am1000){break}al++}},findPieceNode:function(am){var al;al=ac.findFirstNodeHavingAttribute(am,this.CONTENT_PIECE_ATTR);if(!al){al=ac.findFirstNodeHavingClass(am,this.CONTENT_PIECE_CLASS)}if(al){return al}return am},findTargetNodeNoDefault:function(al){if(!al){return}var am=ac.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_TARGET_ATTR); +if(am){return am}am=ac.findFirstNodeHavingAttribute(al,this.CONTENT_TARGET_ATTR);if(am){return am}am=ac.findFirstNodeHavingClass(al,this.CONTENT_TARGET_CLASS);if(am){return am}},findTargetNode:function(al){var am=this.findTargetNodeNoDefault(al);if(am){return am}return al},findContentName:function(am){if(!am){return}var ap=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_NAME_ATTR);if(ap){return ac.getAttributeValueFromNode(ap,this.CONTENT_NAME_ATTR)}var al=this.findContentPiece(am);if(al){return this.removeDomainIfIsInLink(al)}if(ac.hasNodeAttributeWithValue(am,"title")){return ac.getAttributeValueFromNode(am,"title")}var an=this.findPieceNode(am);if(ac.hasNodeAttributeWithValue(an,"title")){return ac.getAttributeValueFromNode(an,"title")}var ao=this.findTargetNode(am);if(ac.hasNodeAttributeWithValue(ao,"title")){return ac.getAttributeValueFromNode(ao,"title")}},findContentPiece:function(am){if(!am){return}var ao=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_PIECE_ATTR); +if(ao){return ac.getAttributeValueFromNode(ao,this.CONTENT_PIECE_ATTR)}var al=this.findPieceNode(am);var an=this.findMediaUrlInNode(al);if(an){return this.toAbsoluteUrl(an)}},findContentTarget:function(an){if(!an){return}var ao=this.findTargetNode(an);if(ac.hasNodeAttributeWithValue(ao,this.CONTENT_TARGET_ATTR)){return ac.getAttributeValueFromNode(ao,this.CONTENT_TARGET_ATTR)}var am;if(ac.hasNodeAttributeWithValue(ao,"href")){am=ac.getAttributeValueFromNode(ao,"href");return this.toAbsoluteUrl(am)}var al=this.findPieceNode(an);if(ac.hasNodeAttributeWithValue(al,"href")){am=ac.getAttributeValueFromNode(al,"href");return this.toAbsoluteUrl(am)}},isSameDomain:function(al){if(!al||!al.indexOf){return false}if(0===al.indexOf(this.getLocation().origin)){return true}var am=al.indexOf(this.getLocation().host);if(8>=am&&0<=am){return true}return false},removeDomainIfIsInLink:function(an){var am="^https?://[^/]+";var al="^.*//[^/]+";if(an&&an.search&&-1!==an.search(new RegExp(am))&&this.isSameDomain(an)){an=an.replace(new RegExp(al),""); +if(!an){an="/"}}return an},findMediaUrlInNode:function(ap){if(!ap){return}var an=["img","embed","video","audio"];var al=ap.nodeName.toLowerCase();if(-1!==M(an,al)&&ac.findFirstNodeHavingAttributeWithValue(ap,"src")){var ao=ac.findFirstNodeHavingAttributeWithValue(ap,"src");return ac.getAttributeValueFromNode(ao,"src")}if(al==="object"&&ac.hasNodeAttributeWithValue(ap,"data")){return ac.getAttributeValueFromNode(ap,"data")}if(al==="object"){var aq=ac.findNodesByTagName(ap,"param");if(aq&&aq.length){var am;for(am=0;am0}var am=ao.clientWidth;if(T.innerWidth&&am>T.innerWidth){am=T.innerWidth}var al=ao.clientHeight;if(T.innerHeight&&al>T.innerHeight){al=T.innerHeight}return((ap.bottom>0||an)&&ap.right>0&&ap.left=0){c9=c9.slice(0,c8)}c8=c9.lastIndexOf("/");if(c8!==c9.length-1){c9=c9.slice(0,c8+1)}return c9+c7}function cz(c9,c7){var c8;c9=String(c9).toLowerCase();c7=String(c7).toLowerCase();if(c9===c7){return true}if(c7.slice(0,1)==="."){if(c9===c7.slice(1)){return true}c8=c9.length-c7.length;if((c8>0)&&(c9.slice(c8)===c7)){return true}}return false}function ce(c7){var c8=document.createElement("a"); +if(c7.indexOf("//")!==0&&c7.indexOf("http")!==0){if(c7.indexOf("*")===0){c7=c7.substr(1)}if(c7.indexOf(".")===0){c7=c7.substr(1)}c7="http://"+c7}c8.href=v.toAbsoluteUrl(c7);if(c8.pathname){return c8.pathname}return""}function aY(c8,c7){if(!ag(c7,"/")){c7="/"+c7}if(!ag(c8,"/")){c8="/"+c8}var c9=(c7==="/"||c7==="/*");if(c9){return true}if(c8===c7){return true}c7=String(c7).toLowerCase();c8=String(c8).toLowerCase();if(R(c7,"*")){c7=c7.slice(0,-1);c9=(!c7||c7==="/");if(c9){return true}if(c8===c7){return true}return c8.indexOf(c7)===0}if(!R(c8,"/")){c8+="/"}if(!R(c7,"/")){c7+="/"}return c8.indexOf(c7)===0}function ao(db,dd){var c8,c7,c9,da,dc;for(c8=0;c80)&&(da.slice(c9)===c7)){return true}}}return false}function cj(c7,c9){c7=c7.replace("send_image=0","send_image=1"); +var c8=new Image(1,1);c8.onload=function(){E=0;if(typeof c9==="function"){c9()}};c8.src=aA+(aA.indexOf("?")<0?"?":"&")+c7}function a1(c8){var dc="object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob;if(!dc){return false}var db={type:"application/x-www-form-urlencoded; charset=UTF-8"};var da=false;try{var c7=new Blob([c8],db);da=h.sendBeacon(aA,c7)}catch(c9){return false}return da}function cU(c8,c9,c7){if(!J(c7)||null===c7){c7=true}if(m&&a1(c8)){return}setTimeout(function(){if(m&&a1(c8)){return}var dc;try{var db=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;db.open("POST",aA,true);db.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dd=m&&a1(c8);if(!dd&&c7){cj(c8,c9)}}else{if(this.readyState===4&&(typeof c9==="function")){c9()}}};db.setRequestHeader("Content-Type",cq);db.send(c8)}catch(da){dc=m&&a1(c8);if(!dc&&c7){cj(c8,c9)}}},50)}function b9(c8){var c7=new Date(); +var c9=c7.getTime()+c8;if(!r||c9>r){r=c9}}function ch(c7){if(b5||!a0||!bv){return}b5=setTimeout(function c8(){b5=null;if(!a7){a7=(!G.hasFocus||G.hasFocus())}if(!a7){ch(a0);return}if(bK()){return}var c9=new Date(),da=a0-(c9.getTime()-cP);da=Math.min(a0,da);ch(da)},c7||a0)}function bD(){if(!b5){return}clearTimeout(b5);b5=null}function a5(){a7=true;if(bK()){return}ch()}function av(){bD()}function c4(){if(aJ||!a0){return}aJ=true;ak(T,"focus",a5);ak(T,"blur",av);ch()}function cv(db){var c8=new Date();var c7=c8.getTime();cP=c7;if(cu&&c72000){cU(c8,c9)}else{cj(c8,c9)}b9(c7)})}if(!aJ){c4()}else{ch()}}function cd(c7){if(cI){return false}return(c7&&c7.length)}function c3(c9,c7){if(!cd(c9)){return}if(!bv){cC.push(c9);return}var c8='{"requests":["?'+c9.join('","?')+'"]}'; +cv(function(){cU(c8,null,false);b9(c7)})}function aO(c7){return be+c7+"."+bZ+"."+bi}function bY(){if(bf){return"0"}if(!J(h.cookieEnabled)){var c7=aO("testcookie");c2(c7,"1");return az(c7)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function bc(){bi=b0((cO||cM)+(bj||"/")).slice(0,4)}function bQ(){var c8=aO("cvar"),c7=az(c8);if(c7.length){c7=JSON_PIWIK.parse(c7);if(W(c7)){return c7}}return{}}function cw(){if(aL===false){aL=bQ()}}function cJ(){return b0((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cX)+(new Date()).getTime()+Math.random()).slice(0,16)}function aw(){return b0((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cX)).slice(0,6)}function ba(){return Math.floor((new Date()).getTime()/1000)}function aF(){var c8=ba();var c9=aw();var c7=String(c8)+c9;return c7}function cT(c9){c9=String(c9);var dc=aw();var da=dc.length;var db=c9.substr(-1*da,da);var c8=parseInt(c9.substr(0,c9.length-da),10);if(c8&&db&&db===dc){var c7=ba();if(aU<=0){return true}if(c7>=c8&&c7<=(c8+aU)){return true +}}return false}function c5(c7){if(!cF){return""}var db=f(c7,ar);if(!db){return""}db=String(db);var c9=new RegExp("^[a-zA-Z0-9]+$");if(db.length===32&&c9.test(db)){var c8=db.substr(16,32);if(cT(c8)){var da=db.substr(0,16);return da}}return""}function cG(){if(!bH){bH=c5(bG)}var c9=new Date(),c7=Math.round(c9.getTime()/1000),c8=aO("id"),dc=az(c8),db,da;if(dc){db=dc.split(".");db.unshift("0");if(bH.length){db[1]=bH}return db}if(bH.length){da=bH}else{if("0"===bY()){da=""}else{da=cJ()}}db=["1",da,c7,0,c7,"",""];return db}function aT(){var de=cG(),da=de[0],db=de[1],c8=de[2],c7=de[3],dc=de[4],c9=de[5];if(!J(de[6])){de[6]=""}var dd=de[6];return{newVisitor:da,uuid:db,createTs:c8,visitCount:c7,currentVisitTs:dc,lastVisitTs:c9,lastEcommerceOrderTs:dd}}function aD(){var da=new Date(),c8=da.getTime(),db=aT().createTs;var c7=parseInt(db,10);var c9=(c7*1000)+cB-c8;return c9}function aH(c7){if(!bZ){return}var c9=new Date(),c8=Math.round(c9.getTime()/1000);if(!J(c7)){c7=aT()}var da=c7.uuid+"."+c7.createTs+"."+c7.visitCount+"."+c8+"."+c7.lastVisitTs+"."+c7.lastEcommerceOrderTs; +c2(aO("id"),da,aD(),bj,cO,bL)}function bF(){var c7=az(aO("ref"));if(c7.length){try{c7=JSON_PIWIK.parse(c7);if(W(c7)){return c7}}catch(c8){}}return["","",0,""]}function bR(c9,c8,c7){c2(c9,"",-86400,c8,c7)}function bq(c8){var c7="testvalue";c2("test",c7,10000,null,c8);if(az("test")===c7){bR("test",null,c8);return true}return false}function aB(){var c8=bf;bf=false;var c7,c9;for(c7=0;c7dx){dn.visitCount++;dn.lastVisitTs=dn.currentVisitTs}if(!bp||!df.length){for(du in ck){if(Object.prototype.hasOwnProperty.call(ck,du)){df=f(dy,ck[du]);if(df.length){break}}}for(du in bz){if(Object.prototype.hasOwnProperty.call(bz,du)){c7=f(dy,bz[du]);if(c7.length){break}}}}dB=d(bh);di=dt.length?d(dt):"";if(dB.length&&!aQ(dB)&&(!bp||!di.length||aQ(di))){dt=bh}if(dt.length||df.length){de=dh;ds=[df,c7,de,bV(dt.slice(0,db))];c2(dp,JSON_PIWIK.stringify(ds),cV,bj,cO)}}c9+="&idsite="+bZ+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+c8.getHours()+"&m="+c8.getMinutes()+"&s="+c8.getSeconds()+"&url="+t(bV(dy))+(bh.length?"&urlref="+t(bV(bh)):"")+((bs&&bs.length)?"&uid="+t(bs):"")+"&_id="+dn.uuid+"&_idts="+dn.createTs+"&_idvc="+dn.visitCount+"&_idn="+dn.newVisitor+(df.length?"&_rcn="+t(df):"")+(c7.length?"&_rck="+t(c7):"")+"&_refts="+de+"&_viewts="+dn.lastVisitTs+(String(dn.lastEcommerceOrderTs).length?"&_ects="+dn.lastEcommerceOrderTs:"")+(String(dt).length?"&_ref="+t(bV(dt.slice(0,db))):"")+(dk?"&cs="+t(dk):"")+"&send_image=0"; +for(du in cX){if(Object.prototype.hasOwnProperty.call(cX,du)){c9+="&"+du+"="+cX[du]}}var dA=[];if(dv){for(du in dv){if(Object.prototype.hasOwnProperty.call(dv,du)&&/^dimension\d+$/.test(du)){var dd=du.replace("dimension","");dA.push(parseInt(dd,10));dA.push(String(dd));c9+="&"+du+"="+dv[du];delete dv[du]}}}if(dv&&B(dv)){dv=null}for(du in bg){if(Object.prototype.hasOwnProperty.call(bg,du)){var dj=(-1===M(dA,du));if(dj){c9+="&dimension"+du+"="+bg[du]}}}if(dv){c9+="&data="+t(JSON_PIWIK.stringify(dv))}else{if(al){c9+="&data="+t(JSON_PIWIK.stringify(al))}}function dg(dC,dD){var dE=JSON_PIWIK.stringify(dC);if(dE.length>2){return"&"+dD+"="+t(dE)}return""}var dz=c6(bP);var dq=c6(cf);c9+=dg(dz,"cvar");c9+=dg(dq,"e_cvar");if(aL){c9+=dg(aL,"_cvar");for(du in dr){if(Object.prototype.hasOwnProperty.call(dr,du)){if(aL[du][0]===""||aL[du][1]===""){delete aL[du]}}}if(bJ){c2(dl,JSON_PIWIK.stringify(aL),ci,bj,cO)}}if(aX){if(cg){c9+=">_ms="+cg}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c9+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) +}}}if(aG){c9+="&pv_id="+aG}dn.lastEcommerceOrderTs=J(da)&&String(da).length?da:dn.lastEcommerceOrderTs;aH(dn);b6();c9+=aa(dw,{tracker:bB,request:c9});if(cQ.length){c9+="&"+cQ}if(A(b4)){c9=b4(c9)}return c9}bK=function a2(){var c7=new Date();if(cP+a0<=c7.getTime()){var c8=cm("ping=1",null,"ping");by(c8,bC);return true}return false};function bk(da,c9,df,db,c7,di){var dd="idgoal=0",de,c8=new Date(),dg=[],dh,dc=String(da).length;if(dc){dd+="&ec_id="+t(da);de=Math.round(c8.getTime()/1000)}dd+="&revenue="+c9;if(String(df).length){dd+="&ec_st="+df}if(String(db).length){dd+="&ec_tx="+db}if(String(c7).length){dd+="&ec_sh="+c7}if(String(di).length){dd+="&ec_dt="+di}if(cR){for(dh in cR){if(Object.prototype.hasOwnProperty.call(cR,dh)){if(!J(cR[dh][1])){cR[dh][1]=""}if(!J(cR[dh][2])){cR[dh][2]=""}if(!J(cR[dh][3])||String(cR[dh][3]).length===0){cR[dh][3]=0}if(!J(cR[dh][4])||String(cR[dh][4]).length===0){cR[dh][4]=1}dg.push(cR[dh])}}dd+="&ec_items="+t(JSON_PIWIK.stringify(dg))}dd=cm(dd,al,"ecommerce",de); +by(dd,bC);if(dc){cR={}}}function bS(c7,db,da,c9,c8,dc){if(String(c7).length&&J(db)){bk(c7,db,da,c9,c8,dc)}}function bm(c7){if(J(c7)){bk("",c7,"","","","")}}function bT(c8,da,c9){aG=bb();var c7=cm("action_name="+t(ai(c8||bd)),da,"log");by(c7,bC,c9)}function aV(c9,c8){var da,c7="(^| )(piwik[_-]"+c8;if(c9){for(da=0;da0){c8+="&"}else{c8+="?"}var c9=bl();c8=F(c8,ar,c9);ac.setAnyAttribute(c7,"href",c8)}function ax(da){var db=ac.getAttributeValueFromNode(da,"href");if(!db){return false}db=String(db);var c8=db.indexOf("//")===0||db.indexOf("http://")===0||db.indexOf("https://")===0;if(!c8){return false}var c7=da.pathname||ce(da.href);var c9=(da.hostname||d(da.href)).toLowerCase();if(ao(c9,c7)){if(!cz(cM,L(c9))){return true}return false}return false}function cy(c7){var c8=c1(c7);if(c8&&c8.type){c8.href=p(c8.href);cS(c8.href,c8.type,undefined,null,c7);return}if(cF){c7=aq(c7);if(ax(c7)){cc(c7)}}}function cp(){return G.all&&!G.addEventListener}function cN(c7){var c9=c7.which;var c8=(typeof c7.button);if(!c9&&c8!=="undefined"){if(cp()){if(c7.button&1){c9=1}else{if(c7.button&2){c9=3}else{if(c7.button&4){c9=2}}}}else{if(c7.button===0||c7.button==="0"){c9=1}else{if(c7.button&1){c9=2}else{if(c7.button&2){c9=3}}}}}return c9}function bM(c7){switch(cN(c7)){case 1:return"left"; +case 2:return"middle";case 3:return"right"}}function aW(c7){return c7.target||c7.srcElement}function ay(c7){return function(da){da=da||T.event;var c9=bM(da);var db=aW(da);if(da.type==="click"){var c8=false;if(c7&&c9==="middle"){c8=true}if(db&&!c8){cy(db)}}else{if(da.type==="mousedown"){if(c9==="middle"&&db){aM=c9;bu=db}else{aM=bu=null}}else{if(da.type==="mouseup"){if(c9===aM&&db===bu){cy(db)}aM=bu=null}else{if(da.type==="contextmenu"){cy(db)}}}}}}function an(c9,c8){var c7=typeof c8;if(c7==="undefined"){c8=true}ak(c9,"click",ay(c8),false);if(c8){ak(c9,"mouseup",ay(c8),false);ak(c9,"mousedown",ay(c8),false);ak(c9,"contextmenu",ay(c8),false)}}function bw(c9,db){am=true;var da,c8=aV(bt,"ignore"),dc=G.links,c7=null,dd=null;if(dc){for(da=0;da0){db=parseInt(db,10);de(db)}})}function cx(){var c8,da,db={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(c8 in db){if(Object.prototype.hasOwnProperty.call(db,c8)){da=h.mimeTypes[db[c8]];cX[c8]=(da&&da.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){cX.java="1" +}if(A(T.GearsFactory)){cX.gears="1"}cX.cookie=bY()}var c9=parseInt(X.width,10);var c7=parseInt(X.height,10);cX.res=parseInt(c9,10)+"x"+parseInt(c7,10)}cx();bc();aH();this.getVisitorId=function(){return aT().uuid};this.getVisitorInfo=function(){return cG()};this.getAttributionInfo=function(){return bF()};this.getAttributionCampaignName=function(){return bF()[0]};this.getAttributionCampaignKeyword=function(){return bF()[1]};this.getAttributionReferrerTimestamp=function(){return bF()[2]};this.getAttributionReferrerUrl=function(){return bF()[3]};this.setTrackerUrl=function(c7){aA=c7};this.getTrackerUrl=function(){return aA};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bA)};this.addTracker=function(c7,c9){if(!c9){throw new Error("A siteId must be given to add a new tracker")}if(!J(c7)||null===c7){c7=this.getTrackerUrl()}var c8=new Q(c7,c9);I.push(c8);return c8};this.getSiteId=function(){return bZ};this.setSiteId=function(c7){bW(c7)};this.resetUserId=function(){bs=""};this.setUserId=function(c7){if(!J(c7)||!c7.length){return +}bs=c7};this.getUserId=function(){return bs};this.setCustomData=function(c7,c8){if(W(c7)){al=c7}else{if(!al){al={}}al[c7]=c8}};this.getCustomData=function(){return al};this.setCustomRequestProcessing=function(c7){b4=c7};this.appendToTrackingUrl=function(c7){cQ=c7};this.getRequest=function(c7){return cm(c7)};this.addPlugin=function(c7,c8){b[c7]=c8};this.setCustomDimension=function(c7,c8){c7=parseInt(c7,10);if(c7>0){if(!J(c8)){c8=""}if(!w(c8)){c8=String(c8)}bg[c7]=c8}};this.getCustomDimension=function(c7){c7=parseInt(c7,10);if(c7>0&&Object.prototype.hasOwnProperty.call(bg,c7)){return bg[c7]}};this.deleteCustomDimension=function(c7){c7=parseInt(c7,10);if(c7>0){delete bg[c7]}};this.setCustomVariable=function(c8,c7,db,c9){var da;if(!J(c9)){c9="visit"}if(!J(c7)){return}if(!J(db)){db=""}if(c8>0){c7=!w(c7)?String(c7):c7;db=!w(db)?String(db):db;da=[c7.slice(0,bn),db.slice(0,bn)];if(c9==="visit"||c9===2){cw();aL[c8]=da}else{if(c9==="page"||c9===3){bP[c8]=da}else{if(c9==="event"){cf[c8]=da}}}}};this.getCustomVariable=function(c8,c9){var c7; +if(!J(c9)){c9="visit"}if(c9==="page"||c9===3){c7=bP[c8]}else{if(c9==="event"){c7=cf[c8]}else{if(c9==="visit"||c9===2){cw();c7=aL[c8]}}}if(!J(c7)||(c7&&c7[0]==="")){return false}return c7};this.deleteCustomVariable=function(c7,c8){if(this.getCustomVariable(c7,c8)){this.setCustomVariable(c7,"","",c8)}};this.deleteCustomVariables=function(c7){if(c7==="page"||c7===3){bP={}}else{if(c7==="event"){cf={}}else{if(c7==="visit"||c7===2){aL={}}}}};this.storeCustomVariablesInCookie=function(){bJ=true};this.setLinkTrackingTimer=function(c7){bC=c7};this.getLinkTrackingTimer=function(){return bC};this.setDownloadExtensions=function(c7){if(w(c7)){c7=c7.split("|")}cW=c7};this.addDownloadExtensions=function(c8){var c7;if(w(c8)){c8=c8.split("|")}for(c7=0;c71&&am!=="addTracker"){ah("The method "+am+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') +}ar[am]++}}}}return aq}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","requireConsent","setConsentGiven"];function ab(al,an){var am=new Q(al,an);I.push(am);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){ad(_paq[E])}}_paq=new H();return am}ak(T,"beforeunload",af,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ao,an,am,al){var ap=typeof al;if(ap==="undefined"){al=false}ak(ao,an,am,al)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(am,al){if(!y[am]){y[am]=[]}y[am].push(al)},off:function(an,am){if(!y[an]){return}var al=0;for(al;al-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah0){for(ad="",af>10&&(af=10); ad.length=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++; return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y(); -if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON_PIWIK=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Matomo=window.Piwik=(function(){var r,b={},y={},G=document,h=navigator,W=screen,T=window,i=T.performance||T.mozPerformance||T.msPerformance||T.webkitPerformance,t=T.encodeURIComponent,S=T.decodeURIComponent,l=unescape,I=[],E,e,ad=[],x=0,m=false; -function p(ak){try{return S(ak)}catch(al){return unescape(ak)}}function J(al){var ak=typeof al;return ak!=="undefined"}function A(ak){return typeof ak==="function"}function V(ak){return typeof ak==="object"}function w(ak){return typeof ak==="string"||ak instanceof String}function B(al){if(!al){return true}var ak;var am=true;for(ak in al){if(Object.prototype.hasOwnProperty.call(al,ak)){am=false}}return am}function ag(ak){var al=typeof console;if(al!=="undefined"&&console&&console.error){console.error(ak)}}function ac(){var ap,ao,ar,al,ak;for(ap=0;ap0;if(an){aq=ar.split("::");am=aq[0];ar=aq[1];if("object"===typeof e[am]&&"function"===typeof e[am][ar]){e[am][ar].apply(e[am],al)}else{if(ak){ad.push(ak)}}}else{for(ao=0;ao0;if(at){aq=ar.split(".");if(am&&"object"===typeof am[aq[0]]){am=am[aq[0]]; -ar=aq[1]}else{if(ak){ad.push(ak);break}}}if(am[ar]){am[ar].apply(am,al)}else{var au="The method '"+ar+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: https://developer.piwik.org/api-reference/tracking-javascript';ag(au);if(!at){throw new TypeError(au)}}if(ar==="addTracker"){break}if(ar==="setTrackerUrl"||ar==="setSiteId"){break}}else{ar.apply(I[ao],al)}}}}}function aj(an,am,al,ak){if(an.addEventListener){an.addEventListener(am,al,ak);return true}if(an.attachEvent){return an.attachEvent("on"+am,al)}an["on"+am]=al}function n(ak){if(G.readyState==="complete"){ak()}else{if(T.addEventListener){T.addEventListener("load",ak,false)}else{if(T.attachEvent){T.attachEvent("onload",ak)}}}}function q(an){var ak=false;if(G.attachEvent){ak=G.readyState==="complete"}else{ak=G.readyState!=="loading"}if(ak){an();return}var am;if(G.addEventListener){aj(G,"DOMContentLoaded",function al(){G.removeEventListener("DOMContentLoaded",al,false);if(!ak){ak=true;an()}})}else{if(G.attachEvent){G.attachEvent("onreadystatechange",function al(){if(G.readyState==="complete"){G.detachEvent("onreadystatechange",al); -if(!ak){ak=true;an()}}});if(G.documentElement.doScroll&&T===T.top){(function al(){if(!ak){try{G.documentElement.doScroll("left")}catch(ao){setTimeout(al,0);return}ak=true;an()}}())}}}aj(T,"load",function(){if(!ak){ak=true;an()}},false)}function Z(al,aq,ar){if(!al){return""}var ak="",an,am,ao,ap;for(an in b){if(Object.prototype.hasOwnProperty.call(b,an)){ap=b[an]&&"function"===typeof b[an][al];if(ap){am=b[an][al];ao=am(aq||{},ar);if(ao){ak+=ao}}}}return ak}function ae(){var ak;m=true;Z("unload");if(r){do{ak=new Date()}while(ak.getTimeAlias()=0;ap--){ao=aq[ap].split("=")[0];if(ao===am){aq.splice(ap,1)}}var au=aq.join("&");if(au){ar=ar+"?"+au}if(at){ar+="#"+at}}return ar}function f(am,al){var ak="[\\?&#]"+al+"=([^&#]*)";var ao=new RegExp(ak);var an=ao.exec(am);return an?S(an[1]):""}function a(ak){if(ak&&String(ak)===ak){return ak.replace(/^\s+|\s+$/g,"")}return ak}function D(ak){return unescape(t(ak))}function ai(aA){var am=function(aG,aF){return(aG<>>(32-aF))},aB=function(aI){var aG="",aH,aF;for(aH=7;aH>=0;aH--){aF=(aI>>>(aH*4))&15;aG+=aF.toString(16)}return aG},ap,aD,aC,al=[],au=1732584193,ar=4023233417,aq=2562383102,ao=271733878,an=3285377520,az,ay,ax,aw,av,aE,ak,at=[];aA=D(aA);ak=aA.length;for(aD=0;aD>>29);at.push((ak<<3)&4294967295);for(ap=0;apap.offsetWidth+ap.scrollLeft||ar+av-awap.offsetHeight+ap.scrollTop||ax+at-awat?-1:1});if(ak.length<=1){return ak}var al=0;var an=0;var ao=[];var am;am=ak[al++];while(am){if(am===ak[al]){an=ao.push(al) -}am=ak[al++]||null}while(an--){ak.splice(ao[an],1)}return ak},getAttributeValueFromNode:function(ao,am){if(!this.hasNodeAttribute(ao,am)){return}if(ao&&ao.getAttribute){return ao.getAttribute(am)}if(!ao||!ao.attributes){return}var an=(typeof ao.attributes[am]);if("undefined"===an){return}if(ao.attributes[am].value){return ao.attributes[am].value}if(ao.attributes[am].nodeValue){return ao.attributes[am].nodeValue}var al;var ak=ao.attributes;if(!ak){return}for(al=0;al1000){break}ak++}},findPieceNode:function(al){var ak;ak=ab.findFirstNodeHavingAttribute(al,this.CONTENT_PIECE_ATTR);if(!ak){ak=ab.findFirstNodeHavingClass(al,this.CONTENT_PIECE_CLASS)}if(ak){return ak}return al},findTargetNodeNoDefault:function(ak){if(!ak){return}var al=ab.findFirstNodeHavingAttributeWithValue(ak,this.CONTENT_TARGET_ATTR); -if(al){return al}al=ab.findFirstNodeHavingAttribute(ak,this.CONTENT_TARGET_ATTR);if(al){return al}al=ab.findFirstNodeHavingClass(ak,this.CONTENT_TARGET_CLASS);if(al){return al}},findTargetNode:function(ak){var al=this.findTargetNodeNoDefault(ak);if(al){return al}return ak},findContentName:function(al){if(!al){return}var ao=ab.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_NAME_ATTR);if(ao){return ab.getAttributeValueFromNode(ao,this.CONTENT_NAME_ATTR)}var ak=this.findContentPiece(al);if(ak){return this.removeDomainIfIsInLink(ak)}if(ab.hasNodeAttributeWithValue(al,"title")){return ab.getAttributeValueFromNode(al,"title")}var am=this.findPieceNode(al);if(ab.hasNodeAttributeWithValue(am,"title")){return ab.getAttributeValueFromNode(am,"title")}var an=this.findTargetNode(al);if(ab.hasNodeAttributeWithValue(an,"title")){return ab.getAttributeValueFromNode(an,"title")}},findContentPiece:function(al){if(!al){return}var an=ab.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_PIECE_ATTR); -if(an){return ab.getAttributeValueFromNode(an,this.CONTENT_PIECE_ATTR)}var ak=this.findPieceNode(al);var am=this.findMediaUrlInNode(ak);if(am){return this.toAbsoluteUrl(am)}},findContentTarget:function(am){if(!am){return}var an=this.findTargetNode(am);if(ab.hasNodeAttributeWithValue(an,this.CONTENT_TARGET_ATTR)){return ab.getAttributeValueFromNode(an,this.CONTENT_TARGET_ATTR)}var al;if(ab.hasNodeAttributeWithValue(an,"href")){al=ab.getAttributeValueFromNode(an,"href");return this.toAbsoluteUrl(al)}var ak=this.findPieceNode(am);if(ab.hasNodeAttributeWithValue(ak,"href")){al=ab.getAttributeValueFromNode(ak,"href");return this.toAbsoluteUrl(al)}},isSameDomain:function(ak){if(!ak||!ak.indexOf){return false}if(0===ak.indexOf(this.getLocation().origin)){return true}var al=ak.indexOf(this.getLocation().host);if(8>=al&&0<=al){return true}return false},removeDomainIfIsInLink:function(am){var al="^https?://[^/]+";var ak="^.*//[^/]+";if(am&&am.search&&-1!==am.search(new RegExp(al))&&this.isSameDomain(am)){am=am.replace(new RegExp(ak),""); -if(!am){am="/"}}return am},findMediaUrlInNode:function(ao){if(!ao){return}var am=["img","embed","video","audio"];var ak=ao.nodeName.toLowerCase();if(-1!==M(am,ak)&&ab.findFirstNodeHavingAttributeWithValue(ao,"src")){var an=ab.findFirstNodeHavingAttributeWithValue(ao,"src");return ab.getAttributeValueFromNode(an,"src")}if(ak==="object"&&ab.hasNodeAttributeWithValue(ao,"data")){return ab.getAttributeValueFromNode(ao,"data")}if(ak==="object"){var ap=ab.findNodesByTagName(ao,"param");if(ap&&ap.length){var al;for(al=0;al0}var al=an.clientWidth;if(T.innerWidth&&al>T.innerWidth){al=T.innerWidth}var ak=an.clientHeight;if(T.innerHeight&&ak>T.innerHeight){ak=T.innerHeight}return((ao.bottom>0||am)&&ao.right>0&&ao.left=0){c7=c7.slice(0,c6)}c6=c7.lastIndexOf("/");if(c6!==c7.length-1){c7=c7.slice(0,c6+1)}return c7+c5}function cx(c7,c5){var c6;c7=String(c7).toLowerCase();c5=String(c5).toLowerCase();if(c7===c5){return true}if(c5.slice(0,1)==="."){if(c7===c5.slice(1)){return true}c6=c7.length-c5.length;if((c6>0)&&(c7.slice(c6)===c5)){return true}}return false}function cc(c5){var c6=document.createElement("a"); -if(c5.indexOf("//")!==0&&c5.indexOf("http")!==0){if(c5.indexOf("*")===0){c5=c5.substr(1)}if(c5.indexOf(".")===0){c5=c5.substr(1)}c5="http://"+c5}c6.href=v.toAbsoluteUrl(c5);if(c6.pathname){return c6.pathname}return""}function aW(c6,c5){if(!af(c5,"/")){c5="/"+c5}if(!af(c6,"/")){c6="/"+c6}var c7=(c5==="/"||c5==="/*");if(c7){return true}if(c6===c5){return true}c5=String(c5).toLowerCase();c6=String(c6).toLowerCase();if(R(c5,"*")){c5=c5.slice(0,-1);c7=(!c5||c5==="/");if(c7){return true}if(c6===c5){return true}return c6.indexOf(c5)===0}if(!R(c6,"/")){c6+="/"}if(!R(c5,"/")){c5+="/"}return c6.indexOf(c5)===0}function an(c9,db){var c6,c5,c7,c8,da;for(c6=0;c60)&&(c8.slice(c7)===c5)){return true}}}return false}function ch(c5,c7){c5=c5.replace("send_image=0","send_image=1"); -var c6=new Image(1,1);c6.onload=function(){E=0;if(typeof c7==="function"){c7()}};c6.src=ay+(ay.indexOf("?")<0?"?":"&")+c5}function aZ(c6){var da="object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob;if(!da){return false}var c9={type:"application/x-www-form-urlencoded; charset=UTF-8"};var c8=false;try{var c5=new Blob([c6],c9);c8=h.sendBeacon(ay,c5)}catch(c7){return false}return c8}function cS(c6,c7,c5){if(!J(c5)||null===c5){c5=true}if(m&&aZ(c6)){return}setTimeout(function(){if(m&&aZ(c6)){return}var da;try{var c9=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;c9.open("POST",ay,true);c9.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var db=m&&aZ(c6);if(!db&&c5){ch(c6,c7)}}else{if(this.readyState===4&&(typeof c7==="function")){c7()}}};c9.setRequestHeader("Content-Type",co);c9.send(c6)}catch(c8){da=m&&aZ(c6);if(!da&&c5){ch(c6,c7)}}},50)}function b7(c6){var c5=new Date(); -var c7=c5.getTime()+c6;if(!r||c7>r){r=c7}}function cf(c5){if(b3||!aY||!bt){return}b3=setTimeout(function c6(){b3=null;if(!a5){a5=(!G.hasFocus||G.hasFocus())}if(!a5){cf(aY);return}if(bI()){return}var c7=new Date(),c8=aY-(c7.getTime()-cN);c8=Math.min(aY,c8);cf(c8)},c5||aY)}function bB(){if(!b3){return}clearTimeout(b3);b3=null}function a3(){a5=true;if(bI()){return}cf()}function at(){bB()}function c2(){if(aH||!aY){return}aH=true;aj(T,"focus",a3);aj(T,"blur",at);cf()}function ct(c9){var c6=new Date();var c5=c6.getTime();cN=c5;if(cs&&c52000){cS(c6,c7)}else{ch(c6,c7)}b7(c5)})}if(!aH){c2()}else{cf()}}function cb(c5){if(cG){return false}return(c5&&c5.length)}function c1(c7,c5){if(!cb(c7)){return}if(!bt){cA.push(c7);return}var c6='{"requests":["?'+c7.join('","?')+'"]}'; -ct(function(){cS(c6,null,false);b7(c5)})}function aM(c5){return bc+c5+"."+bX+"."+bg}function bW(){if(bd){return"0"}if(!J(h.cookieEnabled)){var c5=aM("testcookie");c0(c5,"1");return ax(c5)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function ba(){bg=bY((cM||cK)+(bh||"/")).slice(0,4)}function bO(){var c6=aM("cvar"),c5=ax(c6);if(c5.length){c5=JSON_PIWIK.parse(c5);if(V(c5)){return c5}}return{}}function cu(){if(aJ===false){aJ=bO()}}function cH(){return bY((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cV)+(new Date()).getTime()+Math.random()).slice(0,16)}function au(){return bY((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cV)).slice(0,6)}function a8(){return Math.floor((new Date()).getTime()/1000)}function aD(){var c6=a8();var c7=au();var c5=String(c6)+c7;return c5}function cR(c7){c7=String(c7);var da=au();var c8=da.length;var c9=c7.substr(-1*c8,c8);var c6=parseInt(c7.substr(0,c7.length-c8),10);if(c6&&c9&&c9===da){var c5=a8();if(aS<=0){return true}if(c5>=c6&&c5<=(c6+aS)){return true -}}return false}function c3(c5){if(!cD){return""}var c9=f(c5,aq);if(!c9){return""}c9=String(c9);var c7=new RegExp("^[a-zA-Z0-9]+$");if(c9.length===32&&c7.test(c9)){var c6=c9.substr(16,32);if(cR(c6)){var c8=c9.substr(0,16);return c8}}return""}function cE(){if(!bF){bF=c3(bE)}var c7=new Date(),c5=Math.round(c7.getTime()/1000),c6=aM("id"),da=ax(c6),c9,c8;if(da){c9=da.split(".");c9.unshift("0");if(bF.length){c9[1]=bF}return c9}if(bF.length){c8=bF}else{if("0"===bW()){c8=""}else{c8=cH()}}c9=["1",c8,c5,0,c5,"",""];return c9}function aR(){var dc=cE(),c8=dc[0],c9=dc[1],c6=dc[2],c5=dc[3],da=dc[4],c7=dc[5];if(!J(dc[6])){dc[6]=""}var db=dc[6];return{newVisitor:c8,uuid:c9,createTs:c6,visitCount:c5,currentVisitTs:da,lastVisitTs:c7,lastEcommerceOrderTs:db}}function aB(){var c8=new Date(),c6=c8.getTime(),c9=aR().createTs;var c5=parseInt(c9,10);var c7=(c5*1000)+cz-c6;return c7}function aF(c5){if(!bX){return}var c7=new Date(),c6=Math.round(c7.getTime()/1000);if(!J(c5)){c5=aR()}var c8=c5.uuid+"."+c5.createTs+"."+c5.visitCount+"."+c6+"."+c5.lastVisitTs+"."+c5.lastEcommerceOrderTs; -c0(aM("id"),c8,aB(),bh,cM,bJ)}function bD(){var c5=ax(aM("ref"));if(c5.length){try{c5=JSON_PIWIK.parse(c5);if(V(c5)){return c5}}catch(c6){}}return["","",0,""]}function bP(c7,c6,c5){c0(c7,"",-86400,c6,c5)}function bo(c6){var c5="testvalue";c0("test",c5,10000,null,c6);if(ax("test")===c5){bP("test",null,c6);return true}return false}function az(){var c6=bd;bd=false;var c5,c7;for(c5=0;c5dv){dl.visitCount++;dl.lastVisitTs=dl.currentVisitTs}if(!bn||!dd.length){for(ds in ci){if(Object.prototype.hasOwnProperty.call(ci,ds)){dd=f(dw,ci[ds]);if(dd.length){break}}}for(ds in bx){if(Object.prototype.hasOwnProperty.call(bx,ds)){c5=f(dw,bx[ds]);if(c5.length){break}}}}dz=d(bf);dg=dr.length?d(dr):"";if(dz.length&&!aO(dz)&&(!bn||!dg.length||aO(dg))){dr=bf}if(dr.length||dd.length){dc=df;dq=[dd,c5,dc,bT(dr.slice(0,c9))];c0(dm,JSON_PIWIK.stringify(dq),cT,bh,cM)}}c7+="&idsite="+bX+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+c6.getHours()+"&m="+c6.getMinutes()+"&s="+c6.getSeconds()+"&url="+t(bT(dw))+(bf.length?"&urlref="+t(bT(bf)):"")+((bq&&bq.length)?"&uid="+t(bq):"")+"&_id="+dl.uuid+"&_idts="+dl.createTs+"&_idvc="+dl.visitCount+"&_idn="+dl.newVisitor+(dd.length?"&_rcn="+t(dd):"")+(c5.length?"&_rck="+t(c5):"")+"&_refts="+dc+"&_viewts="+dl.lastVisitTs+(String(dl.lastEcommerceOrderTs).length?"&_ects="+dl.lastEcommerceOrderTs:"")+(String(dr).length?"&_ref="+t(bT(dr.slice(0,c9))):"")+(di?"&cs="+t(di):"")+"&send_image=0"; -for(ds in cV){if(Object.prototype.hasOwnProperty.call(cV,ds)){c7+="&"+ds+"="+cV[ds]}}var dy=[];if(dt){for(ds in dt){if(Object.prototype.hasOwnProperty.call(dt,ds)&&/^dimension\d+$/.test(ds)){var db=ds.replace("dimension","");dy.push(parseInt(db,10));dy.push(String(db));c7+="&"+ds+"="+dt[ds];delete dt[ds]}}}if(dt&&B(dt)){dt=null}for(ds in be){if(Object.prototype.hasOwnProperty.call(be,ds)){var dh=(-1===M(dy,ds));if(dh){c7+="&dimension"+ds+"="+be[ds]}}}if(dt){c7+="&data="+t(JSON_PIWIK.stringify(dt))}else{if(ak){c7+="&data="+t(JSON_PIWIK.stringify(ak))}}function de(dA,dB){var dC=JSON_PIWIK.stringify(dA);if(dC.length>2){return"&"+dB+"="+t(dC)}return""}var dx=c4(bN);var dn=c4(cd);c7+=de(dx,"cvar");c7+=de(dn,"e_cvar");if(aJ){c7+=de(aJ,"_cvar");for(ds in dp){if(Object.prototype.hasOwnProperty.call(dp,ds)){if(aJ[ds][0]===""||aJ[ds][1]===""){delete aJ[ds]}}}if(bH){c0(dj,JSON_PIWIK.stringify(aJ),cg,bh,cM)}}if(aV){if(ce){c7+=">_ms="+ce}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c7+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) -}}}if(aE){c7+="&pv_id="+aE}dl.lastEcommerceOrderTs=J(c8)&&String(c8).length?c8:dl.lastEcommerceOrderTs;aF(dl);b4();c7+=Z(du,{tracker:bz,request:c7});if(cO.length){c7+="&"+cO}if(A(b2)){c7=b2(c7)}return c7}bI=function a0(){var c5=new Date();if(cN+aY<=c5.getTime()){var c6=ck("ping=1",null,"ping");bw(c6,bA);return true}return false};function bi(c8,c7,dd,c9,c5,dg){var db="idgoal=0",dc,c6=new Date(),de=[],df,da=String(c8).length;if(da){db+="&ec_id="+t(c8);dc=Math.round(c6.getTime()/1000)}db+="&revenue="+c7;if(String(dd).length){db+="&ec_st="+dd}if(String(c9).length){db+="&ec_tx="+c9}if(String(c5).length){db+="&ec_sh="+c5}if(String(dg).length){db+="&ec_dt="+dg}if(cP){for(df in cP){if(Object.prototype.hasOwnProperty.call(cP,df)){if(!J(cP[df][1])){cP[df][1]=""}if(!J(cP[df][2])){cP[df][2]=""}if(!J(cP[df][3])||String(cP[df][3]).length===0){cP[df][3]=0}if(!J(cP[df][4])||String(cP[df][4]).length===0){cP[df][4]=1}de.push(cP[df])}}db+="&ec_items="+t(JSON_PIWIK.stringify(de))}db=ck(db,ak,"ecommerce",dc); -bw(db,bA);if(da){cP={}}}function bQ(c5,c9,c8,c7,c6,da){if(String(c5).length&&J(c9)){bi(c5,c9,c8,c7,c6,da)}}function bk(c5){if(J(c5)){bi("",c5,"","","","")}}function bR(c6,c8,c7){aE=a9();var c5=ck("action_name="+t(ah(c6||bb)),c8,"log");bw(c5,bA,c7)}function aT(c7,c6){var c8,c5="(^| )(piwik[_-]"+c6;if(c7){for(c8=0;c80){c6+="&"}else{c6+="?"}var c7=bj();c6=F(c6,aq,c7);ab.setAnyAttribute(c5,"href",c6)}function av(c8){var c9=ab.getAttributeValueFromNode(c8,"href");if(!c9){return false}c9=String(c9);var c6=c9.indexOf("//")===0||c9.indexOf("http://")===0||c9.indexOf("https://")===0;if(!c6){return false}var c5=c8.pathname||cc(c8.href);var c7=(c8.hostname||d(c8.href)).toLowerCase();if(an(c7,c5)){if(!cx(cK,L(c7))){return true}return false}return false}function cw(c5){var c6=cZ(c5);if(c6&&c6.type){c6.href=p(c6.href);cQ(c6.href,c6.type,undefined,null,c5);return}if(cD){c5=ap(c5);if(av(c5)){ca(c5)}}}function cn(){return G.all&&!G.addEventListener}function cL(c5){var c7=c5.which;var c6=(typeof c5.button);if(!c7&&c6!=="undefined"){if(cn()){if(c5.button&1){c7=1}else{if(c5.button&2){c7=3}else{if(c5.button&4){c7=2}}}}else{if(c5.button===0||c5.button==="0"){c7=1}else{if(c5.button&1){c7=2}else{if(c5.button&2){c7=3}}}}}return c7}function bK(c5){switch(cL(c5)){case 1:return"left"; -case 2:return"middle";case 3:return"right"}}function aU(c5){return c5.target||c5.srcElement}function aw(c5){return function(c8){c8=c8||T.event;var c7=bK(c8);var c9=aU(c8);if(c8.type==="click"){var c6=false;if(c5&&c7==="middle"){c6=true}if(c9&&!c6){cw(c9)}}else{if(c8.type==="mousedown"){if(c7==="middle"&&c9){aK=c7;bs=c9}else{aK=bs=null}}else{if(c8.type==="mouseup"){if(c7===aK&&c9===bs){cw(c9)}aK=bs=null}else{if(c8.type==="contextmenu"){cw(c9)}}}}}}function am(c7,c6){var c5=typeof c6;if(c5==="undefined"){c6=true}aj(c7,"click",aw(c6),false);if(c6){aj(c7,"mouseup",aw(c6),false);aj(c7,"mousedown",aw(c6),false);aj(c7,"contextmenu",aw(c6),false)}}function bu(c7,c9){al=true;var c8,c6=aT(br,"ignore"),da=G.links,c5=null,db=null;if(da){for(c8=0;c80){c9=parseInt(c9,10);dc(c9)}})}function cv(){var c6,c8,c9={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(c6 in c9){if(Object.prototype.hasOwnProperty.call(c9,c6)){c8=h.mimeTypes[c9[c6]];cV[c6]=(c8&&c8.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){cV.java="1" -}if(A(T.GearsFactory)){cV.gears="1"}cV.cookie=bW()}var c7=parseInt(W.width,10);var c5=parseInt(W.height,10);cV.res=parseInt(c7,10)+"x"+parseInt(c5,10)}cv();ba();aF();this.getVisitorId=function(){return aR().uuid};this.getVisitorInfo=function(){return cE()};this.getAttributionInfo=function(){return bD()};this.getAttributionCampaignName=function(){return bD()[0]};this.getAttributionCampaignKeyword=function(){return bD()[1]};this.getAttributionReferrerTimestamp=function(){return bD()[2]};this.getAttributionReferrerUrl=function(){return bD()[3]};this.setTrackerUrl=function(c5){ay=c5};this.getTrackerUrl=function(){return ay};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),by)};this.addTracker=function(c5,c7){if(!c7){throw new Error("A siteId must be given to add a new tracker")}if(!J(c5)||null===c5){c5=this.getTrackerUrl()}var c6=new Q(c5,c7);I.push(c6);return c6};this.getSiteId=function(){return bX};this.setSiteId=function(c5){bU(c5)};this.resetUserId=function(){bq=""};this.setUserId=function(c5){if(!J(c5)||!c5.length){return -}bq=c5};this.getUserId=function(){return bq};this.setCustomData=function(c5,c6){if(V(c5)){ak=c5}else{if(!ak){ak={}}ak[c5]=c6}};this.getCustomData=function(){return ak};this.setCustomRequestProcessing=function(c5){b2=c5};this.appendToTrackingUrl=function(c5){cO=c5};this.getRequest=function(c5){return ck(c5)};this.addPlugin=function(c5,c6){b[c5]=c6};this.setCustomDimension=function(c5,c6){c5=parseInt(c5,10);if(c5>0){if(!J(c6)){c6=""}if(!w(c6)){c6=String(c6)}be[c5]=c6}};this.getCustomDimension=function(c5){c5=parseInt(c5,10);if(c5>0&&Object.prototype.hasOwnProperty.call(be,c5)){return be[c5]}};this.deleteCustomDimension=function(c5){c5=parseInt(c5,10);if(c5>0){delete be[c5]}};this.setCustomVariable=function(c6,c5,c9,c7){var c8;if(!J(c7)){c7="visit"}if(!J(c5)){return}if(!J(c9)){c9=""}if(c6>0){c5=!w(c5)?String(c5):c5;c9=!w(c9)?String(c9):c9;c8=[c5.slice(0,bl),c9.slice(0,bl)];if(c7==="visit"||c7===2){cu();aJ[c6]=c8}else{if(c7==="page"||c7===3){bN[c6]=c8}else{if(c7==="event"){cd[c6]=c8}}}}};this.getCustomVariable=function(c6,c7){var c5; -if(!J(c7)){c7="visit"}if(c7==="page"||c7===3){c5=bN[c6]}else{if(c7==="event"){c5=cd[c6]}else{if(c7==="visit"||c7===2){cu();c5=aJ[c6]}}}if(!J(c5)||(c5&&c5[0]==="")){return false}return c5};this.deleteCustomVariable=function(c5,c6){if(this.getCustomVariable(c5,c6)){this.setCustomVariable(c5,"","",c6)}};this.deleteCustomVariables=function(c5){if(c5==="page"||c5===3){bN={}}else{if(c5==="event"){cd={}}else{if(c5==="visit"||c5===2){aJ={}}}}};this.storeCustomVariablesInCookie=function(){bH=true};this.setLinkTrackingTimer=function(c5){bA=c5};this.getLinkTrackingTimer=function(){return bA};this.setDownloadExtensions=function(c5){if(w(c5)){c5=c5.split("|")}cU=c5};this.addDownloadExtensions=function(c6){var c5;if(w(c6)){c6=c6.split("|")}for(c5=0;c51&&al!=="addTracker"){ag("The method "+al+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}aq[al]++}}}}return ap}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","requireConsent","setConsentGiven"];function aa(ak,am){var al=new Q(ak,am);I.push(al);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){ac(_paq[E])}}_paq=new H();return al}aj(T,"beforeunload",ae,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(an,am,al,ak){var ao=typeof ak;if(ao==="undefined"){ak=false}aj(an,am,al,ak)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(al,ak){if(!y[al]){y[al]=[]}y[al].push(ak)},off:function(am,al){if(!y[am]){return}var ak=0;for(ak;ak0;if(ao){ar=at.split("::");an=ar[0];at=ar[1];if("object"===typeof e[an]&&"function"===typeof e[an][at]){e[an][at].apply(e[an],am)}else{if(al){ae.push(al)}}}else{for(ap=0;ap0;if(au){ar=at.split(".");if(an&&"object"===typeof an[ar[0]]){an=an[ar[0]]; +at=ar[1]}else{if(al){ae.push(al);break}}}if(an[at]){an[at].apply(an,am)}else{var av="The method '"+at+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: https://developer.piwik.org/api-reference/tracking-javascript';ah(av);if(!au){throw new TypeError(av)}}if(at==="addTracker"){break}if(at==="setTrackerUrl"||at==="setSiteId"){break}}else{at.apply(I[ap],am)}}}}}function ak(ao,an,am,al){if(ao.addEventListener){ao.addEventListener(an,am,al);return true}if(ao.attachEvent){return ao.attachEvent("on"+an,am)}ao["on"+an]=am}function n(al){if(G.readyState==="complete"){al()}else{if(T.addEventListener){T.addEventListener("load",al,false)}else{if(T.attachEvent){T.attachEvent("onload",al)}}}}function q(ao){var al=false;if(G.attachEvent){al=G.readyState==="complete"}else{al=G.readyState!=="loading"}if(al){ao();return}var an;if(G.addEventListener){ak(G,"DOMContentLoaded",function am(){G.removeEventListener("DOMContentLoaded",am,false);if(!al){al=true;ao()}})}else{if(G.attachEvent){G.attachEvent("onreadystatechange",function am(){if(G.readyState==="complete"){G.detachEvent("onreadystatechange",am); +if(!al){al=true;ao()}}});if(G.documentElement.doScroll&&T===T.top){(function am(){if(!al){try{G.documentElement.doScroll("left")}catch(ap){setTimeout(am,0);return}al=true;ao()}}())}}}ak(T,"load",function(){if(!al){al=true;ao()}},false)}function aa(am,ar,at){if(!am){return""}var al="",ao,an,ap,aq;for(ao in b){if(Object.prototype.hasOwnProperty.call(b,ao)){aq=b[ao]&&"function"===typeof b[ao][am];if(aq){an=b[ao][am];ap=an(ar||{},at);if(ap){al+=ap}}}}return al}function af(){var al;m=true;aa("unload");if(r){do{al=new Date()}while(al.getTimeAlias()=0;aq--){ap=ar[aq].split("=")[0];if(ap===an){ar.splice(aq,1)}}var av=ar.join("&");if(av){at=at+"?"+av}if(au){at+="#"+au}}return at}function f(an,am){var al="[\\?&#]"+am+"=([^&#]*)";var ap=new RegExp(al);var ao=ap.exec(an);return ao?S(ao[1]):""}function a(al){if(al&&String(al)===al){return al.replace(/^\s+|\s+$/g,"")}return al}function D(al){return unescape(t(al))}function aj(aB){var an=function(aH,aG){return(aH<>>(32-aG))},aC=function(aJ){var aH="",aI,aG;for(aI=7;aI>=0;aI--){aG=(aJ>>>(aI*4))&15;aH+=aG.toString(16)}return aH},aq,aE,aD,am=[],av=1732584193,at=4023233417,ar=2562383102,ap=271733878,ao=3285377520,aA,az,ay,ax,aw,aF,al,au=[];aB=D(aB);al=aB.length;for(aE=0;aE>>29);au.push((al<<3)&4294967295);for(aq=0;aqaq.offsetWidth+aq.scrollLeft||at+aw-axaq.offsetHeight+aq.scrollTop||ay+au-axau?-1:1});if(al.length<=1){return al}var am=0;var ao=0;var ap=[];var an;an=al[am++];while(an){if(an===al[am]){ao=ap.push(am) +}an=al[am++]||null}while(ao--){al.splice(ap[ao],1)}return al},getAttributeValueFromNode:function(ap,an){if(!this.hasNodeAttribute(ap,an)){return}if(ap&&ap.getAttribute){return ap.getAttribute(an)}if(!ap||!ap.attributes){return}var ao=(typeof ap.attributes[an]);if("undefined"===ao){return}if(ap.attributes[an].value){return ap.attributes[an].value}if(ap.attributes[an].nodeValue){return ap.attributes[an].nodeValue}var am;var al=ap.attributes;if(!al){return}for(am=0;am1000){break}al++}},findPieceNode:function(am){var al;al=ac.findFirstNodeHavingAttribute(am,this.CONTENT_PIECE_ATTR);if(!al){al=ac.findFirstNodeHavingClass(am,this.CONTENT_PIECE_CLASS)}if(al){return al}return am},findTargetNodeNoDefault:function(al){if(!al){return}var am=ac.findFirstNodeHavingAttributeWithValue(al,this.CONTENT_TARGET_ATTR); +if(am){return am}am=ac.findFirstNodeHavingAttribute(al,this.CONTENT_TARGET_ATTR);if(am){return am}am=ac.findFirstNodeHavingClass(al,this.CONTENT_TARGET_CLASS);if(am){return am}},findTargetNode:function(al){var am=this.findTargetNodeNoDefault(al);if(am){return am}return al},findContentName:function(am){if(!am){return}var ap=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_NAME_ATTR);if(ap){return ac.getAttributeValueFromNode(ap,this.CONTENT_NAME_ATTR)}var al=this.findContentPiece(am);if(al){return this.removeDomainIfIsInLink(al)}if(ac.hasNodeAttributeWithValue(am,"title")){return ac.getAttributeValueFromNode(am,"title")}var an=this.findPieceNode(am);if(ac.hasNodeAttributeWithValue(an,"title")){return ac.getAttributeValueFromNode(an,"title")}var ao=this.findTargetNode(am);if(ac.hasNodeAttributeWithValue(ao,"title")){return ac.getAttributeValueFromNode(ao,"title")}},findContentPiece:function(am){if(!am){return}var ao=ac.findFirstNodeHavingAttributeWithValue(am,this.CONTENT_PIECE_ATTR); +if(ao){return ac.getAttributeValueFromNode(ao,this.CONTENT_PIECE_ATTR)}var al=this.findPieceNode(am);var an=this.findMediaUrlInNode(al);if(an){return this.toAbsoluteUrl(an)}},findContentTarget:function(an){if(!an){return}var ao=this.findTargetNode(an);if(ac.hasNodeAttributeWithValue(ao,this.CONTENT_TARGET_ATTR)){return ac.getAttributeValueFromNode(ao,this.CONTENT_TARGET_ATTR)}var am;if(ac.hasNodeAttributeWithValue(ao,"href")){am=ac.getAttributeValueFromNode(ao,"href");return this.toAbsoluteUrl(am)}var al=this.findPieceNode(an);if(ac.hasNodeAttributeWithValue(al,"href")){am=ac.getAttributeValueFromNode(al,"href");return this.toAbsoluteUrl(am)}},isSameDomain:function(al){if(!al||!al.indexOf){return false}if(0===al.indexOf(this.getLocation().origin)){return true}var am=al.indexOf(this.getLocation().host);if(8>=am&&0<=am){return true}return false},removeDomainIfIsInLink:function(an){var am="^https?://[^/]+";var al="^.*//[^/]+";if(an&&an.search&&-1!==an.search(new RegExp(am))&&this.isSameDomain(an)){an=an.replace(new RegExp(al),""); +if(!an){an="/"}}return an},findMediaUrlInNode:function(ap){if(!ap){return}var an=["img","embed","video","audio"];var al=ap.nodeName.toLowerCase();if(-1!==M(an,al)&&ac.findFirstNodeHavingAttributeWithValue(ap,"src")){var ao=ac.findFirstNodeHavingAttributeWithValue(ap,"src");return ac.getAttributeValueFromNode(ao,"src")}if(al==="object"&&ac.hasNodeAttributeWithValue(ap,"data")){return ac.getAttributeValueFromNode(ap,"data")}if(al==="object"){var aq=ac.findNodesByTagName(ap,"param");if(aq&&aq.length){var am;for(am=0;am0}var am=ao.clientWidth;if(T.innerWidth&&am>T.innerWidth){am=T.innerWidth}var al=ao.clientHeight;if(T.innerHeight&&al>T.innerHeight){al=T.innerHeight}return((ap.bottom>0||an)&&ap.right>0&&ap.left=0){c9=c9.slice(0,c8)}c8=c9.lastIndexOf("/");if(c8!==c9.length-1){c9=c9.slice(0,c8+1)}return c9+c7}function cz(c9,c7){var c8;c9=String(c9).toLowerCase();c7=String(c7).toLowerCase();if(c9===c7){return true}if(c7.slice(0,1)==="."){if(c9===c7.slice(1)){return true}c8=c9.length-c7.length;if((c8>0)&&(c9.slice(c8)===c7)){return true}}return false}function ce(c7){var c8=document.createElement("a"); +if(c7.indexOf("//")!==0&&c7.indexOf("http")!==0){if(c7.indexOf("*")===0){c7=c7.substr(1)}if(c7.indexOf(".")===0){c7=c7.substr(1)}c7="http://"+c7}c8.href=v.toAbsoluteUrl(c7);if(c8.pathname){return c8.pathname}return""}function aY(c8,c7){if(!ag(c7,"/")){c7="/"+c7}if(!ag(c8,"/")){c8="/"+c8}var c9=(c7==="/"||c7==="/*");if(c9){return true}if(c8===c7){return true}c7=String(c7).toLowerCase();c8=String(c8).toLowerCase();if(R(c7,"*")){c7=c7.slice(0,-1);c9=(!c7||c7==="/");if(c9){return true}if(c8===c7){return true}return c8.indexOf(c7)===0}if(!R(c8,"/")){c8+="/"}if(!R(c7,"/")){c7+="/"}return c8.indexOf(c7)===0}function ao(db,dd){var c8,c7,c9,da,dc;for(c8=0;c80)&&(da.slice(c9)===c7)){return true}}}return false}function cj(c7,c9){c7=c7.replace("send_image=0","send_image=1"); +var c8=new Image(1,1);c8.onload=function(){E=0;if(typeof c9==="function"){c9()}};c8.src=aA+(aA.indexOf("?")<0?"?":"&")+c7}function a1(c8){var dc="object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob;if(!dc){return false}var db={type:"application/x-www-form-urlencoded; charset=UTF-8"};var da=false;try{var c7=new Blob([c8],db);da=h.sendBeacon(aA,c7)}catch(c9){return false}return da}function cU(c8,c9,c7){if(!J(c7)||null===c7){c7=true}if(m&&a1(c8)){return}setTimeout(function(){if(m&&a1(c8)){return}var dc;try{var db=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;db.open("POST",aA,true);db.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dd=m&&a1(c8);if(!dd&&c7){cj(c8,c9)}}else{if(this.readyState===4&&(typeof c9==="function")){c9()}}};db.setRequestHeader("Content-Type",cq);db.send(c8)}catch(da){dc=m&&a1(c8);if(!dc&&c7){cj(c8,c9)}}},50)}function b9(c8){var c7=new Date(); +var c9=c7.getTime()+c8;if(!r||c9>r){r=c9}}function ch(c7){if(b5||!a0||!bv){return}b5=setTimeout(function c8(){b5=null;if(!a7){a7=(!G.hasFocus||G.hasFocus())}if(!a7){ch(a0);return}if(bK()){return}var c9=new Date(),da=a0-(c9.getTime()-cP);da=Math.min(a0,da);ch(da)},c7||a0)}function bD(){if(!b5){return}clearTimeout(b5);b5=null}function a5(){a7=true;if(bK()){return}ch()}function av(){bD()}function c4(){if(aJ||!a0){return}aJ=true;ak(T,"focus",a5);ak(T,"blur",av);ch()}function cv(db){var c8=new Date();var c7=c8.getTime();cP=c7;if(cu&&c72000){cU(c8,c9)}else{cj(c8,c9)}b9(c7)})}if(!aJ){c4()}else{ch()}}function cd(c7){if(cI){return false}return(c7&&c7.length)}function c3(c9,c7){if(!cd(c9)){return}if(!bv){cC.push(c9);return}var c8='{"requests":["?'+c9.join('","?')+'"]}'; +cv(function(){cU(c8,null,false);b9(c7)})}function aO(c7){return be+c7+"."+bZ+"."+bi}function bY(){if(bf){return"0"}if(!J(h.cookieEnabled)){var c7=aO("testcookie");c2(c7,"1");return az(c7)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function bc(){bi=b0((cO||cM)+(bj||"/")).slice(0,4)}function bQ(){var c8=aO("cvar"),c7=az(c8);if(c7.length){c7=JSON_PIWIK.parse(c7);if(W(c7)){return c7}}return{}}function cw(){if(aL===false){aL=bQ()}}function cJ(){return b0((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cX)+(new Date()).getTime()+Math.random()).slice(0,16)}function aw(){return b0((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cX)).slice(0,6)}function ba(){return Math.floor((new Date()).getTime()/1000)}function aF(){var c8=ba();var c9=aw();var c7=String(c8)+c9;return c7}function cT(c9){c9=String(c9);var dc=aw();var da=dc.length;var db=c9.substr(-1*da,da);var c8=parseInt(c9.substr(0,c9.length-da),10);if(c8&&db&&db===dc){var c7=ba();if(aU<=0){return true}if(c7>=c8&&c7<=(c8+aU)){return true +}}return false}function c5(c7){if(!cF){return""}var db=f(c7,ar);if(!db){return""}db=String(db);var c9=new RegExp("^[a-zA-Z0-9]+$");if(db.length===32&&c9.test(db)){var c8=db.substr(16,32);if(cT(c8)){var da=db.substr(0,16);return da}}return""}function cG(){if(!bH){bH=c5(bG)}var c9=new Date(),c7=Math.round(c9.getTime()/1000),c8=aO("id"),dc=az(c8),db,da;if(dc){db=dc.split(".");db.unshift("0");if(bH.length){db[1]=bH}return db}if(bH.length){da=bH}else{if("0"===bY()){da=""}else{da=cJ()}}db=["1",da,c7,0,c7,"",""];return db}function aT(){var de=cG(),da=de[0],db=de[1],c8=de[2],c7=de[3],dc=de[4],c9=de[5];if(!J(de[6])){de[6]=""}var dd=de[6];return{newVisitor:da,uuid:db,createTs:c8,visitCount:c7,currentVisitTs:dc,lastVisitTs:c9,lastEcommerceOrderTs:dd}}function aD(){var da=new Date(),c8=da.getTime(),db=aT().createTs;var c7=parseInt(db,10);var c9=(c7*1000)+cB-c8;return c9}function aH(c7){if(!bZ){return}var c9=new Date(),c8=Math.round(c9.getTime()/1000);if(!J(c7)){c7=aT()}var da=c7.uuid+"."+c7.createTs+"."+c7.visitCount+"."+c8+"."+c7.lastVisitTs+"."+c7.lastEcommerceOrderTs; +c2(aO("id"),da,aD(),bj,cO,bL)}function bF(){var c7=az(aO("ref"));if(c7.length){try{c7=JSON_PIWIK.parse(c7);if(W(c7)){return c7}}catch(c8){}}return["","",0,""]}function bR(c9,c8,c7){c2(c9,"",-86400,c8,c7)}function bq(c8){var c7="testvalue";c2("test",c7,10000,null,c8);if(az("test")===c7){bR("test",null,c8);return true}return false}function aB(){var c8=bf;bf=false;var c7,c9;for(c7=0;c7dx){dn.visitCount++;dn.lastVisitTs=dn.currentVisitTs}if(!bp||!df.length){for(du in ck){if(Object.prototype.hasOwnProperty.call(ck,du)){df=f(dy,ck[du]);if(df.length){break}}}for(du in bz){if(Object.prototype.hasOwnProperty.call(bz,du)){c7=f(dy,bz[du]);if(c7.length){break}}}}dB=d(bh);di=dt.length?d(dt):"";if(dB.length&&!aQ(dB)&&(!bp||!di.length||aQ(di))){dt=bh}if(dt.length||df.length){de=dh;ds=[df,c7,de,bV(dt.slice(0,db))];c2(dp,JSON_PIWIK.stringify(ds),cV,bj,cO)}}c9+="&idsite="+bZ+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+c8.getHours()+"&m="+c8.getMinutes()+"&s="+c8.getSeconds()+"&url="+t(bV(dy))+(bh.length?"&urlref="+t(bV(bh)):"")+((bs&&bs.length)?"&uid="+t(bs):"")+"&_id="+dn.uuid+"&_idts="+dn.createTs+"&_idvc="+dn.visitCount+"&_idn="+dn.newVisitor+(df.length?"&_rcn="+t(df):"")+(c7.length?"&_rck="+t(c7):"")+"&_refts="+de+"&_viewts="+dn.lastVisitTs+(String(dn.lastEcommerceOrderTs).length?"&_ects="+dn.lastEcommerceOrderTs:"")+(String(dt).length?"&_ref="+t(bV(dt.slice(0,db))):"")+(dk?"&cs="+t(dk):"")+"&send_image=0"; +for(du in cX){if(Object.prototype.hasOwnProperty.call(cX,du)){c9+="&"+du+"="+cX[du]}}var dA=[];if(dv){for(du in dv){if(Object.prototype.hasOwnProperty.call(dv,du)&&/^dimension\d+$/.test(du)){var dd=du.replace("dimension","");dA.push(parseInt(dd,10));dA.push(String(dd));c9+="&"+du+"="+dv[du];delete dv[du]}}}if(dv&&B(dv)){dv=null}for(du in bg){if(Object.prototype.hasOwnProperty.call(bg,du)){var dj=(-1===M(dA,du));if(dj){c9+="&dimension"+du+"="+bg[du]}}}if(dv){c9+="&data="+t(JSON_PIWIK.stringify(dv))}else{if(al){c9+="&data="+t(JSON_PIWIK.stringify(al))}}function dg(dC,dD){var dE=JSON_PIWIK.stringify(dC);if(dE.length>2){return"&"+dD+"="+t(dE)}return""}var dz=c6(bP);var dq=c6(cf);c9+=dg(dz,"cvar");c9+=dg(dq,"e_cvar");if(aL){c9+=dg(aL,"_cvar");for(du in dr){if(Object.prototype.hasOwnProperty.call(dr,du)){if(aL[du][0]===""||aL[du][1]===""){delete aL[du]}}}if(bJ){c2(dl,JSON_PIWIK.stringify(aL),ci,bj,cO)}}if(aX){if(cg){c9+=">_ms="+cg}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c9+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) +}}}if(aG){c9+="&pv_id="+aG}dn.lastEcommerceOrderTs=J(da)&&String(da).length?da:dn.lastEcommerceOrderTs;aH(dn);b6();c9+=aa(dw,{tracker:bB,request:c9});if(cQ.length){c9+="&"+cQ}if(A(b4)){c9=b4(c9)}return c9}bK=function a2(){var c7=new Date();if(cP+a0<=c7.getTime()){var c8=cm("ping=1",null,"ping");by(c8,bC);return true}return false};function bk(da,c9,df,db,c7,di){var dd="idgoal=0",de,c8=new Date(),dg=[],dh,dc=String(da).length;if(dc){dd+="&ec_id="+t(da);de=Math.round(c8.getTime()/1000)}dd+="&revenue="+c9;if(String(df).length){dd+="&ec_st="+df}if(String(db).length){dd+="&ec_tx="+db}if(String(c7).length){dd+="&ec_sh="+c7}if(String(di).length){dd+="&ec_dt="+di}if(cR){for(dh in cR){if(Object.prototype.hasOwnProperty.call(cR,dh)){if(!J(cR[dh][1])){cR[dh][1]=""}if(!J(cR[dh][2])){cR[dh][2]=""}if(!J(cR[dh][3])||String(cR[dh][3]).length===0){cR[dh][3]=0}if(!J(cR[dh][4])||String(cR[dh][4]).length===0){cR[dh][4]=1}dg.push(cR[dh])}}dd+="&ec_items="+t(JSON_PIWIK.stringify(dg))}dd=cm(dd,al,"ecommerce",de); +by(dd,bC);if(dc){cR={}}}function bS(c7,db,da,c9,c8,dc){if(String(c7).length&&J(db)){bk(c7,db,da,c9,c8,dc)}}function bm(c7){if(J(c7)){bk("",c7,"","","","")}}function bT(c8,da,c9){aG=bb();var c7=cm("action_name="+t(ai(c8||bd)),da,"log");by(c7,bC,c9)}function aV(c9,c8){var da,c7="(^| )(piwik[_-]"+c8;if(c9){for(da=0;da0){c8+="&"}else{c8+="?"}var c9=bl();c8=F(c8,ar,c9);ac.setAnyAttribute(c7,"href",c8)}function ax(da){var db=ac.getAttributeValueFromNode(da,"href");if(!db){return false}db=String(db);var c8=db.indexOf("//")===0||db.indexOf("http://")===0||db.indexOf("https://")===0;if(!c8){return false}var c7=da.pathname||ce(da.href);var c9=(da.hostname||d(da.href)).toLowerCase();if(ao(c9,c7)){if(!cz(cM,L(c9))){return true}return false}return false}function cy(c7){var c8=c1(c7);if(c8&&c8.type){c8.href=p(c8.href);cS(c8.href,c8.type,undefined,null,c7);return}if(cF){c7=aq(c7);if(ax(c7)){cc(c7)}}}function cp(){return G.all&&!G.addEventListener}function cN(c7){var c9=c7.which;var c8=(typeof c7.button);if(!c9&&c8!=="undefined"){if(cp()){if(c7.button&1){c9=1}else{if(c7.button&2){c9=3}else{if(c7.button&4){c9=2}}}}else{if(c7.button===0||c7.button==="0"){c9=1}else{if(c7.button&1){c9=2}else{if(c7.button&2){c9=3}}}}}return c9}function bM(c7){switch(cN(c7)){case 1:return"left"; +case 2:return"middle";case 3:return"right"}}function aW(c7){return c7.target||c7.srcElement}function ay(c7){return function(da){da=da||T.event;var c9=bM(da);var db=aW(da);if(da.type==="click"){var c8=false;if(c7&&c9==="middle"){c8=true}if(db&&!c8){cy(db)}}else{if(da.type==="mousedown"){if(c9==="middle"&&db){aM=c9;bu=db}else{aM=bu=null}}else{if(da.type==="mouseup"){if(c9===aM&&db===bu){cy(db)}aM=bu=null}else{if(da.type==="contextmenu"){cy(db)}}}}}}function an(c9,c8){var c7=typeof c8;if(c7==="undefined"){c8=true}ak(c9,"click",ay(c8),false);if(c8){ak(c9,"mouseup",ay(c8),false);ak(c9,"mousedown",ay(c8),false);ak(c9,"contextmenu",ay(c8),false)}}function bw(c9,db){am=true;var da,c8=aV(bt,"ignore"),dc=G.links,c7=null,dd=null;if(dc){for(da=0;da0){db=parseInt(db,10);de(db)}})}function cx(){var c8,da,db={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(c8 in db){if(Object.prototype.hasOwnProperty.call(db,c8)){da=h.mimeTypes[db[c8]];cX[c8]=(da&&da.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){cX.java="1" +}if(A(T.GearsFactory)){cX.gears="1"}cX.cookie=bY()}var c9=parseInt(X.width,10);var c7=parseInt(X.height,10);cX.res=parseInt(c9,10)+"x"+parseInt(c7,10)}cx();bc();aH();this.getVisitorId=function(){return aT().uuid};this.getVisitorInfo=function(){return cG()};this.getAttributionInfo=function(){return bF()};this.getAttributionCampaignName=function(){return bF()[0]};this.getAttributionCampaignKeyword=function(){return bF()[1]};this.getAttributionReferrerTimestamp=function(){return bF()[2]};this.getAttributionReferrerUrl=function(){return bF()[3]};this.setTrackerUrl=function(c7){aA=c7};this.getTrackerUrl=function(){return aA};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bA)};this.addTracker=function(c7,c9){if(!c9){throw new Error("A siteId must be given to add a new tracker")}if(!J(c7)||null===c7){c7=this.getTrackerUrl()}var c8=new Q(c7,c9);I.push(c8);return c8};this.getSiteId=function(){return bZ};this.setSiteId=function(c7){bW(c7)};this.resetUserId=function(){bs=""};this.setUserId=function(c7){if(!J(c7)||!c7.length){return +}bs=c7};this.getUserId=function(){return bs};this.setCustomData=function(c7,c8){if(W(c7)){al=c7}else{if(!al){al={}}al[c7]=c8}};this.getCustomData=function(){return al};this.setCustomRequestProcessing=function(c7){b4=c7};this.appendToTrackingUrl=function(c7){cQ=c7};this.getRequest=function(c7){return cm(c7)};this.addPlugin=function(c7,c8){b[c7]=c8};this.setCustomDimension=function(c7,c8){c7=parseInt(c7,10);if(c7>0){if(!J(c8)){c8=""}if(!w(c8)){c8=String(c8)}bg[c7]=c8}};this.getCustomDimension=function(c7){c7=parseInt(c7,10);if(c7>0&&Object.prototype.hasOwnProperty.call(bg,c7)){return bg[c7]}};this.deleteCustomDimension=function(c7){c7=parseInt(c7,10);if(c7>0){delete bg[c7]}};this.setCustomVariable=function(c8,c7,db,c9){var da;if(!J(c9)){c9="visit"}if(!J(c7)){return}if(!J(db)){db=""}if(c8>0){c7=!w(c7)?String(c7):c7;db=!w(db)?String(db):db;da=[c7.slice(0,bn),db.slice(0,bn)];if(c9==="visit"||c9===2){cw();aL[c8]=da}else{if(c9==="page"||c9===3){bP[c8]=da}else{if(c9==="event"){cf[c8]=da}}}}};this.getCustomVariable=function(c8,c9){var c7; +if(!J(c9)){c9="visit"}if(c9==="page"||c9===3){c7=bP[c8]}else{if(c9==="event"){c7=cf[c8]}else{if(c9==="visit"||c9===2){cw();c7=aL[c8]}}}if(!J(c7)||(c7&&c7[0]==="")){return false}return c7};this.deleteCustomVariable=function(c7,c8){if(this.getCustomVariable(c7,c8)){this.setCustomVariable(c7,"","",c8)}};this.deleteCustomVariables=function(c7){if(c7==="page"||c7===3){bP={}}else{if(c7==="event"){cf={}}else{if(c7==="visit"||c7===2){aL={}}}}};this.storeCustomVariablesInCookie=function(){bJ=true};this.setLinkTrackingTimer=function(c7){bC=c7};this.getLinkTrackingTimer=function(){return bC};this.setDownloadExtensions=function(c7){if(w(c7)){c7=c7.split("|")}cW=c7};this.addDownloadExtensions=function(c8){var c7;if(w(c8)){c8=c8.split("|")}for(c7=0;c71&&am!=="addTracker"){ah("The method "+am+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') +}ar[am]++}}}}return aq}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","requireConsent","setConsentGiven"];function ab(al,an){var am=new Q(al,an);I.push(am);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){ad(_paq[E])}}_paq=new H();return am}ak(T,"beforeunload",af,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ao,an,am,al){var ap=typeof al;if(ap==="undefined"){al=false}ak(ao,an,am,al)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(am,al){if(!y[am]){y[am]=[]}y[am].push(al)},off:function(an,am){if(!y[an]){return}var al=0;for(al;al([0-9]+)\<\/span\>/.exec(results))[1], "40", "count tracking events" ); // firing callback ok( trackLinkCallbackFired, "trackLink() callback fired" ); @@ -4014,6 +4018,9 @@ if ($mysql) { // custom tracking request ok( /myFoo=bar&baz=1&idsite=1/.test( results ), "trackRequest sends custom parameters"); + ok( /myQueue=bar&queue=1/.test( results ), "queueRequest sends queued requests"); + ok( /myQueue=bar&queue=2/.test( results ), "queueRequest sends queued requests"); + ok( /myQueue=bar&queue=3/.test( results ), "queueRequest sends queued requests"); // Test Custom variables ok( /SaveCustomVariableCookie.*&cvar=%7B%222%22%3A%5B%22cookiename2PAGE%22%2C%22cookievalue2PAGE%22%5D%7D.*&_cvar=%7B%221%22%3A%5B%22cookiename%22%2C%22cookievalue%22%5D%2C%222%22%3A%5B%22cookiename2%22%2C%22cookievalue2%22%5D%7D/.test(results), "test custom vars are set"); -- cgit v1.2.3